【问题标题】:single-cycle MIPS timeing questions单周期 MIPS 计时问题
【发布时间】:2014-08-21 12:08:55
【问题描述】:

我阅读了《计算机组织与设计》一书,在第 4 章中,它描述了单周期 MIPS 机器。但是,我有几个双打。

如果设计中的数据存储器和指令存储器都是SRAM,任何指令怎么能在一个时钟周期内完成。以加载指令为例,我认为单周期 MIPS 设计还是要经过以下几个阶段。只有 ID 和 EXE 阶段被合并。

|   1    |   2    |   3    |   4  |
|   WB   |        |        |      |
|        |   IF   |        |      |     
|        |        | ID\EXE |      | 
         |        |        |  MEM |

如果数据存储器在negedge时钟更新,ID、EXE和MEM阶段可以合并,但还剩下三个阶段。

谁能解释“单周期”的工作原理?谢谢!

【问题讨论】:

  • 在非流水线(单周期)处理器中,处理器周期时间可能比内存周期时间长。
  • 但是如果内存和寄存器都只在posedge时钟更新,那么无论处理器周期时间有多长,LD指令似乎都无法完成,因为它读取内存并写入寄存器。

标签: mips timing computer-architecture


【解决方案1】:

您在第 4 章中读到的单周期处理器比实际可实现的处理器稍微简单化了一点。他们没有显示一些棘手的细节。例如,您可以做出的一个时序假设是假设您的内存读取是组合的,而内存写入需要 1 个上升沿才能完成,即类似于寄存器文件。因此,在这种情况下,当时钟边沿到达时,您的 IF 级将填充一条指令。然后在该周期的持续时间内,您解码并执行指令,并在下一个时钟沿发生回写。如果它是数据存储,同样的情况也是如此,内存将在下一个时钟沿写入。在加载的情况下,您假设组合内存读取,因此您的数据将在时钟边缘之前到达,并且在边缘它将被写入寄存器文件。

现在,这不是实现它的最佳方式,您必须做出几个假设。在稍微更真实的非流水线处理器中,如果您正在等待内存请求,您可能会收到一个停止信号,该信号将滚动到下一个周期。所以你可以想象你会有一个 Stall_on_IF 信号和 Stall_on_LD 信号,它们会告诉你停止这个周期,直到你的指令/数据到达。当它们确实到达时,您将它们锁定并继续执行下一个周期。

【讨论】:

  • 我在阅读本章时曾怀疑过这个问题,现在你解释了我想知道的一切。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 2014-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多