我在第4章阅读了“计算机组织与设计”一书,它描述了一个单周期MIPS机器。但是,我有几个双打。
如果设计中的数据存储器和指令存储器是SRAM,那么如何在符号时钟周期内完成任何指令。以加载指令为例,我认为单周期MIPS设计仍需要经历以下阶段。只合并了ID和EXE阶段。
| 1 | 2 | 3 | 4 |
| WB | | | |
| | IF | | |
| | | ID\EXE | |
| | | MEM |
如果数据存储器在negedge时钟更新,则ID,EXE和MEM阶段可以合并,但仍然有三个阶段。
任何人都可以解释“单循环”的工作原理吗?谢谢!
答案 0 :(得分:2)
您在第4章中介绍的单周期处理器略微过于简单化,而不是现实中可实现的内容。他们没有展示一些棘手的细节。例如,您可以做出的一个时序假设是假设您的内存读取是组合的,而mempory写入需要1个正边缘才能完成,即与寄存器文件相似。因此,在时钟边缘到达的情况下,您的IF阶段会填充一条指令。然后在该周期的持续时间内,解码并执行指令,并在下一个时钟边沿发生回写。如果它是数据存储,则同样的事情是真的,存储器将在下一个时钟边沿写入。在加载的情况下,您假设读取组合内存,因此您的数据将在时钟边缘之前到达,并且在边缘上它将被写入寄存器文件。
现在,这不是实现这一点的最佳方式,您必须做出几个假设。在一个稍微更现实的非流水线处理器中,如果您正在等待内存请求,则可能会有一个停止信号转到下一个周期。所以你可以想象你会有一个Stall_on_IF信号和Stall_on_LD信号,它会告诉你在你的指令/数据到达之前停止这个循环。当它们到达时,你会锁定它们并在下一个周期继续执行。