2014-07-01 35 views
1

我读过“计算机组织与设计”一书,第4章介绍了一个单周期MIPS计算机。然而,我有几个双打关于它。单周期MIPS计时问题

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

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

如果数据存储器设置在negedge时钟更新时,ID,EXE和MEM级可以被合并,但仍有留下三个阶段。

任何人都可以解释“单周期”是如何工作的吗?谢谢!

+0

在未处理的(单周期)处理器中,处理器周期时间可能比存储器周期时间长。 –

+0

但是,如果内存和寄存器只在posedge时钟进行更新,无论处理器周期时间多长,看起来不可能完成LD指令,因为它读取存储器并写入寄存器。 – JIE

回答

2

您在第4章中了解到的单周期处理器对实际可实现的内容略微过分简化。他们没有显示一些棘手的细节。例如,您可以做出的一个时间假设是假设您的存储器读取是组合的,并且有余量的写入需要1个积极的边缘完成,即与寄存器文件相似。所以在这种情况下,当时钟边缘到达时,您的IF阶段会填充一条指令。然后,在该周期的持续时间内,您解码并执行该指令,并在下一个时钟沿发生回写。如果数据存储是同样的事情,则内存将写入下一个时钟边沿。在负载情况下,你假定组合存储器被读取,所以你的数据将在时钟边缘之前到达,并且在边缘将被写入寄存器文件。

现在,这不是实现这个最好的方法,你必须做出几个假设。在稍微更实际的未经处理的处理器中,如果您正在等待内存请求,则可能会有一个停滞信号,该信号将转入下一个周期。所以你可以想象你会有一个Stall_on_IF信号和Stall_on_LD信号,告诉你停止这个循环直到你的指令/数据到达。当他们确实到达时,您锁定它们并继续执行下一个周期。

+0

当我阅读本章时,我曾怀疑过这个问题,现在你解释了我想知道的一切。非常感谢你! – JIE