控制信号 °重要发现:N段的控制信号=Func(N段的指令) N=Exec、Mem或Wr °示例:Exec段的控制信号=Func(Load的Exec) Ifetch Reg/dec Exec Mem W ALUOp=Add Reg wr ExtOp=1 Branch PC+4 16 Imm16 A busA ZeroData busH Mem RA DO Rt RFile WA Di Rd RegDs-o aLUSrc=l Mem Wr Memtoreg 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ 0X[ ×f' ,),'5HJLVWHU ,'([5HJLVWHU ([0HP 5HJLVWHU 0HP :U 5HJLVWHU 3& 'DWD 0HP :$ 'L 5$ 'R ,8QLW $ , 5)LOH 'L 5D 5E 5Z 0HP:U 5HJ:U ([HF 8QLW EXV$ EXV% ,PP 0HPWR5HJ 5W 5G ,PP 3& 3& 5V 5W 3& =HUR %UDQFK ,IHWFK 5HJ'HF ([HF 0HP :U e¡U¥ 1X{ µË )XQF 1XÛ¸ 1 ([HFÃ0HPê :U e_ ([HFX{ µË )XQF/RDGX([HF ([W2S $/82S $GG 5HJ'VW $/86UF
流水线控制 °在 Reg/Dec段,主控产生控制信号 Exec( Extop, ALUSrc,…)的控制信号在1个周期后使用 Mem( MemWr branch)的控制信号在2个周期后使用 Wr( MemtoReg MemW的控制信号在3个周期后使用 Reg/dec Exec Mem Wr ExtO Exton ALUSre ALUSrc ALUON ALUOp Main RegIst e RegIst Control Mem wi Mem Wr a Mem Wr ranch r Branch Branch Mento Reg MentoRed Memtoreg t Mento Reg Regar Reger Reg Wr Reg wr 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ qdï×f eü5HJ'HFÈ{{ó{ µË ([HF([W2S $/86UFX{ µËüþ<óâSü 0HP 0HP:U %UDQFKX{ µËüþ<óâSü :U 0HPWR5HJ0HP:UX{ µËüþ<óâSü ,),'5HJLVWHU ,'([5HJLVWHU ([0HP 5HJLVWHU 0HP :U 5HJLVWHU 5HJ'HF ([HF 0HP ([W2S $/82S 5HJ'VW $/86UF %UDQFK 0HP:U 0HPWR5HJ 5HJ:U 0DLQ &RQWURO ([W2S $/82S 5HJ'VW $/86UF 0HPWR5HJ 5HJ:U 0HPWR5HJ 5HJ:U 0HPWR5HJ 5HJ:U %UDQFK 0HP:U %UDQFK 0HP:U :U
回写段的开始:现奥中的问题 Clk Clk Regadr WrAdr Reg wr MmwR I Reg wr's cik-to-Q :MemWr's Clk-to-Q RegAdr's Clk-to Q WrAdr's Clk-to-O Regw RegAdr Reg WrAdr Data Data Data Memory °在Wr段的开始,如果下式成立,现实中就会出现问题: RegAdr's (Rd or rt)cik-to-Q> RegWr's ciIk-to-Q ·在 Address和 Write enable之间出现了竞争! °同样,在Mem段的开始如果下式成立,现实中就会出现问题: WrAdr's cIk-to-Q> MemWr's cIk-to-Q 在 Address和 Write enable之间出现了竞争! 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ Éå´0û àÎ]´È eàü0HPXÔVpßãäÈrîÎÂl :U$GU¶V &ONWR4 ! 0HP:U¶V &ONWR4 ü$GGUHVV` :ULWH(QDEOHÈÎZ²] ([0HP 0HP :U5HJ$GU 5HJ:U 0HP:U 'DWD :U$GU 'DWD 5HJ )LOH 'DWD 0HPRU\ &ON 5HJ$GU 5HJ:U 5HJ:U¶V&ONWR4 5HJ$GU¶V&ONWR4 &ON :U$GU 0HP:U 0HP:U¶V&ONWR4 :U$GU¶V&ONWR4 eü:UXÔ VpßãäÈrîÎÂl 5HJ$GU¶V5GRU 5W &ONWR4 ! 5HJ:U¶V&ONWR4 ü$GGUHVV` :ULWH(QDEOHÈÎZ²]
流水线的问题 多周期设计是如何防止Adr和WEn之间的竞争的? ·确保在第N个周期结束时地址是稳定的 ·在第N+1个周期使WrEn有效 °这种方法在流水线设计中不能使用!这是因为 ·在每个周期,都必须能够写寄存器堆 在每个周期,都必须能够写数据存储器 Clock L「 Store Ifetch Reg/Dec Exec Men Wr Store Ifetch Reg/Dec Exec Mem Wr Rtype[ Ifetch reg ec[ exec mem ywr! R-type Ifetch Reg/Dec Exec Mem- 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ ü£þ<óÈÑOÑómDB,|< qdï´È e¡©üuáÑSü½´ &ORFN ü£þ<óÈÑOÑóm,<Ú 6WRUH ,IHWFK 5HJ'HF ([HF 0HP :U 6WRUH ,IHWFK 5HJ'HF ([HF 0HP :U 5W\SH ,IHWFK 5HJ'HF ([HF 0HP :U 5W\SH ,IHWFK 5HJ'HF ([HF 0HP :U eî<óuV)6$GGU`:U(QÈX²]XÛ B±ü1þ<ó§3ÊnX ü1þ<óS :U(QÝ
同步寄存器堆和同步存储器 °解决方案:将 Write Enable信号和时钟进行逻辑与 ·只有这里可以使用门控的时钟信号 必须咨询电路专家,确保没有定时违例: 例如: Clock High Time> Write Access Delay Clk 同步存储器和同步寄存器 I Addr 至少在时钟沿前的建立时间之间, I WrEn I Address, dataz和WrEn必须稳定 C WrEn 在捕获这些信号的时钟沿之后的 时钟周期,发生写操作 WrEn WrEn C WrEn WReN Address R Address Adr、 Reg File Data eg Data I Data or Clk Memory o Memory 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ <ô6 ¼ <Ø e· Ú :ULWH(QDEOHµË ` Ês ¯ eâ ¾Ý Ã¹Sü¼{XÊsµË O |¶ ÃçÈB±uÝnʱ_ _V &ORFN+LJK7LPH ! :ULWH$FFHVV'HOD\ :U(Q ,B$GGU ,B'DWD 5HJ )LOH RU 0HPRU\ &ON ,B$GGU ,B:U(Q $GGUHVV 'DWD ,B:U(Q &B:U(Q &B:U(Q &ON $GGUHVV 'DWD :U(Q5HJ )LOH RU 0HPRU\ à9,|< ` à9,< ÇåüÊs!XÎÊÈÈÈ $GGUHVVÃ'DWD` :U(QOn ü)oµËXÊsâX Ês<óÈ¥óm¡0