【发布时间】:2017-03-12 03:54:50
【问题描述】:
有两种执行指令的机制。
- 单时钟周期实现
- 流水线。
在 MIPS 架构中(来自计算机组织与设计一书),指令有 5 个阶段。
因此,在单时钟周期实现中,这意味着在一个时钟周期内,一条指令执行 5 个阶段。
例如,加载指令(它有 5 个阶段)在一个时钟周期内执行。所以其他指令可以在这个时钟周期之后执行。 假设一个时钟周期是 10 秒。
现在,在流水线中,多条指令可以重叠。与上面示例中的一个时钟周期的时间相比,我对这个概念感到困惑。
这里要执行 5 条指令,需要 9 个时钟周期。这意味着执行 5 条指令,需要 90 秒。但在单时钟周期实现中,执行 5 条指令只需要 50 秒。流水线需要更多的时钟周期。(不好)我想错了吗?还是我错过了什么??
那么,执行第一条指令lw $10, 20($1),需要50秒??
【问题讨论】:
-
假设一个时钟周期为 10 秒。 1 纳秒是更可能的选择(1GHz CPU)。即使是一个非常早期的 RISC,它可能使用如此简单的流水线,也可能以 100MHz 运行。因此,您对可能是一个好的/合理的例子的猜测相差了 9 或 10 个数量级......
-
您所缺少的是流水线允许您比整个指令必须在单个周期中获取/解码/执行/写回更快地为设计提供时钟。 (更典型的是,像英特尔最初的 8086 这样的非流水线 CPU 会为每条指令花费多个周期,而不是运行非常慢的时钟并将其细分为内部操作的时间。)
标签: mips cpu-architecture