目前,超级标量RISC cpus通常支持无序执行,包括分支预测和投机执行.他们会动态地安排工作。
与无序CPU的动态调度相比,编译器指令调度有什么优势?编译时静态调度对无序CPU有影响吗?还是只对简单的内部CPU有影响?
目前,大多数软件指令调度工作主要集中在VLIW或简单CPU上。GCC维基的日程安排页面对gcc的调度算法也没有多大兴趣。
发布于 2014-02-21 07:52:33
静态(编译器)调度的优势:
动态(处理器调度)的优势:
这就是我现在所能想到的。
发布于 2014-02-21 07:53:51
首先,我应该指出,当前的RISC体系结构首先是编译,然后进行重新安排,导致“高级”程序集命令被编译成较小的RISC命令。至少对于x86/x64体系结构是正确的。
然后我们可以想象一个执行周期:编译-优化/重新安排-减少规模-编译-优化/重新安排。
这就回答了这个问题,编译器在应用程序中的可见性范围要大得多,因此它主要在宏级别(应用程序命令块)上进行优化,而处理器则主要针对微级别( RISC命令块)进行优化。
https://stackoverflow.com/questions/21928286
复制相似问题