- 实验要求
本实验提供一些流水线电路实践操作。
- 实验结果与分析
- 假设加法器块的传播延迟为50ns,乘法块的传播延迟为55ns ,寄存器的clk-to-q延迟为5ns 。计算该电路可运行的最大时钟速率。假设寄存器设置时间可以忽略不计,并且这两个输入都来自从外部源接收数据的时钟寄存器。
Tclk=Tadd+Tmul+Tclk-to-q=50+55+5=110ns
故最大时钟频率为:1110×10-9≈90,909,091Hz
2. 改进时钟周期
Tclk= max(Tadd, Tmul)+Tclk-to-q=55+5=60ns
故最大时钟频率为:160×10-9≈16,666,667Hz
3. 验证改进电路
非流水线电路结果依次是:[3, 5, 1, 2, 4, -1, …],流水线电路结果依次是:[0, 3, 5, 1, 2, 4, -1, …] ,故流水线电路结果正确。
- 实验小结
与非流水线设计相比,流水线设计将某个重复过程中每个指令执行结果放入寄存器中,使得计算机能够同时计算一条流水线上的多条指令,提高指令时空并行性,故运算速率相对较高。
在本实验中流水线过程中的缓冲寄存器作为流水线中的锁存器,保存了乘法和加法的计算结果,使原本有联系的两个操作分成两个子过程。进行极少量运算时(如只进行一次乘法和加法),由于缓冲寄存器的延迟,流水线操作可能不如非流水线操作快速。但进行多次连续的重复操作时,由于流水线操作每次计算最终加法结果的同时计算了下一个输入的乘法结果,故运算速率几乎提升了一倍。