我正在寻找管道的编程示例,它使用管道技术执行指令/代码,也可以通过 nopipeline 技术执行。这样我就可以看到管道比无管道好。
有什么帮助吗?
您的 CPU 会假装它按顺序执行操作,就人们将其视为黑匣子(设置内存并读取内存)而言,这就是它的作用。流水线是指它对流水线中的每条指令执行一点操作,并在每个周期中沿其移动。
如果您的 CPU 只有一个加法器,那么第二个加法指令将停止流水线(第一个必须完成),编译器 (GCC) 意识到这一点,因此使用指令调度之类的东西来始终保持 CPU 忙碌。
您不能“将其关闭”以查看它是否更好。指令调度是我们可以做的最便宜和最有益的优化之一,您可以通过分配分析和其他东西免费获得它。
你真的想要一本书来谈论“之前和之后”,也很难说“流水线增加了这么多”,因为它取决于使用了什么指令,CPU 有多少 ALU,等等。