处理器流水线混乱

山姆

在阅读了处理器如何使用管道(来自维基百科,SU和其他地方的各种文章)后,我对所读内容的某些部分感到有些困惑,因此我只想分享我所了解的内容如果有人可以澄清以下内容是正确的(请告诉我是否有任何错误),

缩略语:

周期=时钟周期
ICR =指令完成率
IT =指令吞吐量
IL =指令延迟

  1. IL是单条指令通过整个流水线所花费的纳秒数(因此,IL越低,ICR越高)。

  2. 管道的每个阶段都需要一个周期才能完成。

  3. 假设:管道没有任何“气泡”,缓存未命中等;流水线深达5级,处理器以2 GHz的时钟速度运行(每个周期0.5纳秒)。

    处理器将能够在一秒钟内处理800'000'000条指令(忽略流水线需要首先填充指令以达到最大IT的事实)。

  4. 如果流水线深度为10级,则一条指令的IL将为10个周期。

  5. 单核,非超标量设计器处理器可以实现的最大IT是每个周期1条指令。

  6. 处理器的周期由其流水线的最慢阶段决定。

  7. 管道的每个阶段花费的时间越短,IT和ICR越高。

  8. 理想的流水线具有:低IL,高流水线深度(但可以防止“气泡”,高速缓存未命中等),高时钟速度,高IT和高ICR。

有翼的潜艇

ICR = IT

1)它实际上与管道的长度有关。相比之下,高延迟的Internet连接不一定是带宽较低的连接。

2)是的,尽管有时指令不能在我们想要的时候离开管道的特定阶段(缓存未命中等)。

3)不,它将处理2,000,000,000条指令。管道的每个阶段都将随时有不同的指令,因此在没有气泡或缓存未命中的理想世界中,拥有5个阶段不会减慢它的运行速度。

4)听起来不错。对于某些处理器,一条指令要经过多少级取决于该指令。

5)听起来不错。

6)它们都必须在同一时钟上运行,但是当您设计一个时钟时,是的,哪一个时钟不能达到最高时钟成为限制因素。

7)是的,指令等待时间也较短,尽管要达到这些较高的时钟速度通常需要加长流水线。

8)较长的流水线可以让您获得更高的时钟速度,但更容易出现气泡或分支预测错误,因此,这实际上是一个权衡。最终,您只关心吞吐量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

流水线处理器与单周期处理器

来自分类Dev

编译器和高端处理器流水线中的布尔表达式优化

来自分类Dev

GPU Kepler CC3.0处理器不仅是流水线架构,还是超标量?

来自分类Dev

GPU Kepler CC3.0处理器不仅是流水线架构,还是超标量?

来自分类Dev

流水线是如何实现的?我们可以读取现代微处理器的固件吗?

来自分类Dev

英特尔x86_64处理器不仅是流水线架构,还是超标量?

来自分类Dev

Stackexchange.Redis中的流水线与批处理

来自分类Dev

bash协同处理如何实现流水线化?

来自分类Dev

如何在流水线中实现计数器?

来自分类Dev

建筑仿真器中的流水线

来自分类Dev

加快流水线化

来自分类Dev

SMB / CIFS流水线

来自分类Dev

流水线和xargs

来自分类Dev

具有流水线服务器端处理的 DataTable 在重绘时会丢弃本地更改吗?

来自分类Dev

HTTP流水线请求文本示例

来自分类Dev

多项式中的流水线

来自分类Dev

尾部调用流水线函数

来自分类Dev

如何绘制代码的流水线执行

来自分类Dev

流水线与Redis中的交易

来自分类Dev

流水线算法定义

来自分类Dev

复杂指令和流水线

来自分类Dev

linux shell管道是流水线的吗?

来自分类Dev

sklearn中的流水线问题

来自分类Dev

使用RxJava进行线程流水线

来自分类Dev

HTTP流水线请求文本示例

来自分类Dev

Verilog的流水线设计问题

来自分类Dev

流水线算法定义

来自分类Dev

通过流水线了解MIPS组装

来自分类Dev

向流水线命令添加输入