我在 these slides 中表示 GPU 通常比 CPU 具有更深的流水线。
我想找到更多数字,但尝试使用谷歌搜索并找不到任何数字。我注意到这个 wikipedia article 指出 Pentium 4 prescott 是深度流水线化的。
定性地说,流水线怎么可以有 3 个以上的级别?考虑到获取/解码/执行周期,这只有 3 件事吗?是不是有多个功能单元,例如有1个以上的解码器,所以一次可以解码1条以上的指令?如何一次从内存中将超过 1 件事变为红色?
请记住在您的答案中包含有关流水线级别的数字。
最佳答案
好吧,让我们从最后开始:
它总是如此。具有 64 位数据总线的处理器不会一次从内存中读取一个字节,而是一次读取 8 个字节。此外,解码指令不仅限于一次内存读取。
某些处理器可能会为此进行一些并行处理,但并非必须如此。处理器在内存读取之间有很多时间,它可以在这段时间内解码多条指令,直到可以完成下一次内存读取。
处理器中流水线的限制因素实际上是执行在代码中来回跳转。如果代码总是按顺序运行,那么管道可能会很长。处理器试图预测执行将在哪里进行,但是任何错误的预测都会使流水线中完成的其余工作变得毫无用处。
图形处理器执行的代码需要更多的数学运算,而且跳转的次数更少,因此它们可以使用更长的管道。
关于assembly - 现代 CPU 与 GPU 可以完成多少级流水线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22586394/