在阅读了处理器如何使用管道(来自维基百科,SU和其他地方的各种文章)后,我对所读内容的某些部分感到有些困惑,因此我只想分享我所了解的内容如果有人可以澄清以下内容是正确的(请告诉我是否有任何错误),
缩略语:
周期=时钟周期
ICR =指令完成率
IT =指令吞吐量
IL =指令延迟
IL是单条指令通过整个流水线所花费的纳秒数(因此,IL越低,ICR越高)。
管道的每个阶段都需要一个周期才能完成。
假设:管道没有任何“气泡”,缓存未命中等;流水线深达5级,处理器以2 GHz的时钟速度运行(每个周期0.5纳秒)。
处理器将能够在一秒钟内处理800'000'000条指令(忽略流水线需要首先填充指令以达到最大IT的事实)。
如果流水线深度为10级,则一条指令的IL将为10个周期。
单核,非超标量设计器处理器可以实现的最大IT是每个周期1条指令。
处理器的周期由其流水线的最慢阶段决定。
管道的每个阶段花费的时间越短,IT和ICR越高。
理想的流水线具有:低IL,高流水线深度(但可以防止“气泡”,高速缓存未命中等),高时钟速度,高IT和高ICR。
ICR = IT
1)它实际上与管道的长度有关。相比之下,高延迟的Internet连接不一定是带宽较低的连接。
2)是的,尽管有时指令不能在我们想要的时候离开管道的特定阶段(缓存未命中等)。
3)不,它将处理2,000,000,000条指令。管道的每个阶段都将随时有不同的指令,因此在没有气泡或缓存未命中的理想世界中,拥有5个阶段不会减慢它的运行速度。
4)听起来不错。对于某些处理器,一条指令要经过多少级取决于该指令。
5)听起来不错。
6)它们都必须在同一时钟上运行,但是当您设计一个时钟时,是的,哪一个时钟不能达到最高时钟成为限制因素。
7)是的,指令等待时间也较短,尽管要达到这些较高的时钟速度通常需要加长流水线。
8)较长的流水线可以让您获得更高的时钟速度,但更容易出现气泡或分支预测错误,因此,这实际上是一个权衡。最终,您只关心吞吐量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句