【发布时间】:2019-02-14 02:48:25
【问题描述】:
我正在研究mips r10000 的不同流水线阶段。论文说 该处理器每次从指令缓存中获取 4 条指令。但是指令缓存的延迟必须超过一个周期,虽然我不知道指令缓存的确切命中延迟,Haswell处理器中的L1数据缓存的命中延迟大约是4个周期。
如果我们假设 L1 指令缓存延迟为 3-4 个周期,处理器如何每个周期获取 4 条指令?
【问题讨论】:
-
MIPS 的工作频率为 200 MHz,而 Haswell 的工作频率超过 3 GHz。因此,Haswell 中的 4 个周期比 R10000 中的 1 个周期要短得多。 90 年代制造的处理器通常具有 1 或 2 个周期的缓存访问延迟。
-
谢谢,Haswell 不会出现同样的问题吗?
-
您链接的参考仅表明 L1 数据缓存 的访问延迟为 4 个周期。这并不一定意味着 L1 指令缓存具有相同的延迟。尽管它们都是流水线的,因此每个周期都可以执行访问请求。 Haswell 中的指令缓存具有每个周期 16 字节的吞吐量。在支持推测执行的处理器(例如 Haswell 和 MIPS R10000)中,L1I 延迟仅对分支错误预测惩罚很重要......
-
...我不知道 R10000 是否为 L1I 使用流水线设计设计来实现指令缓存的 1 个周期延迟(这就是我没有发布答案的原因),但它是它的延迟可能是 2 个周期(就像我认为的数据缓存一样),但它是流水线的,因此每个周期都可以执行请求。
-
一般来说,指令缓存必须能够在每个周期提供至少一条指令(就吞吐量而言,不一定是延迟)。否则,时钟频率会太高,只会浪费功率,这是一种荒谬的设计。这基本上是流水线的 fetch 阶段,也就是第一阶段。在负载缓冲区数量较少的有序流水线或低功耗 CPU 中,L1D 缓存具有最小延迟至关重要。例如,Intel Atom 处理器都有 3 个周期的 L1D 延迟。
标签: mips cpu-architecture processor