就CPU架构而言,流水线和通道之间有何区别?

时间:2019-03-10 02:41:09

标签: gpu cpu-architecture simd

我最近正在阅读 Jonh L. Hennessy和David A. Patterson的著作“计算机体系结构:一种定量方法”
我发现术语“ Lane” 在第4章中得到了广泛使用,但没有明确和正式定义。

它出现的第一个位置如下:
“所有现代矢量计算机都具有带有多个并行管线(或通道)的矢量功能单元,每个时钟周期可以产生两个或更多结果……” (第290页,第六版)。

我对术语“车道”和“管道”感到有些困惑。他们是同一回事吗?

2 个答案:

答案 0 :(得分:1)

在此上下文中,“通道”是SIMD元素。 (他们谈论的是向量执行单元, not 超标量CPU,它们在整个CPU的“管道”中并行运行多个指令。实际上,两者都有)

例如x86 SSE addps xmm0, xmm1用一条指令执行4x float32加法运算,将XMM寄存器视为4通道的32位float。

它在具有4个单精度FP加法器并行运行的SIMD执行单元上运行。该执行单元是流水线式的,通常需要3或4个周期的延迟和1个时钟的吞吐量。

在这种情况下,您的教科书所讨论的是一个执行单元内部的管道。就流水线而言,它与操作的内容以及4x 32位或2x 64位之类的操作几乎没有什么不同。在流水线阶段之间的缓冲区中,有一定数量的位需要锁存,而锁存器并不真正在乎它的解释方式。

答案 1 :(得分:0)

首先,请确保您了解什么是流水

  

流水线是一种执行技术,其中多个指令在执行中重叠。计算机管道分为多个阶段。每个阶段并行完成一条指令的一部分。这些阶段将一个接一个地连接起来,形成一个管道-指令在一端进入,在各个阶段前进,然后在另一端退出。

在您的情况下,一条道路上有多条车道会提高汽车的通行能力。您将有更多的汽车到达终点。但是,您的车速将是相同的。流水线也是如此。

  

流水线处理不会减少单个指令执行的时间。相反,它会增加指令吞吐量。指令流水线的吞吐量取决于一条指令退出流水线的频率。

检查this website以获得更多信息。

enter image description here