执行指令有两种机制。
在MIPS架构中(来自计算机组织与设计一书),指令分为5个阶段。
因此,在单个时钟周期实现中,这意味着在一个时钟周期内,为一条指令执行5个阶段。
例如,加载指令(它有5个阶段)在一个时钟周期内执行。因此,在这一个时钟周期之后可以执行其他指令。 让我们假设一个时钟周期是10秒。
现在,在流水线操作中,可以重叠多个指令。与上面例子中的一个时钟周期相比,我对此概念感到困惑。
在这里执行5条指令,需要9个时钟周期。它意味着执行5条指令,需要90秒。但在单时钟周期实现中,执行5条指令只需要50秒。流水线需要更多的时钟周期。(不好)我在想错吗?或者我错过了什么?
而且,在这里,执行第一条指令lw $10, 20($1)
,它需要50秒?
答案 0 :(得分:1)
我认为您遇到的主要误解是您认为两个设计中的时钟周期持续时间相同,而不是。
让我们将单周期设计中的时钟周期表示为X
,将流水线设计中的时钟周期表示为Y
。
在单周期设计中,5条指令将采用5X
个周期,在流水线设计中,这将需要9Y
个周期。
现在我们需要找到X
和Y
之间的关系。
现在想想你只有一条指令来执行的情况。
在单周期设计中,这将需要X
个周期,在管道设计中,这将需要5Y
。如果两者的时钟频率相同,则X
应等于5Y
。
现在让我们做一些替换数学: - )
单周期 - 5X
管道 - 9Y
代替X
= 5Y
单周期 - 25Y
管道 - 9Y
你去吧。单周期设计比多周期设计慢2.7倍。