我正在尝试了解指令级并行性中使用的方法以及它们之间的区别。我的问题是,给定一个最初要在处理器without指令级并行度上运行的指令集,可以使用这些方法中的哪一种来在新处理器上实现指令级并行度,以及为什么/如何进行? 。新处理器将执行相同的指令集,并运行与原始处理器相同的程序二进制文件,但性能会更好。选项是:
1)乱序执行(Tomasulo算法)
2)管道
3)超标量
4)VLIW
我会说OOO将是将大大提高ILP的第一件事。 OOO架构是完全独立于编译器工作的硬件技术(这意味着OOO架构将在没有OOO的情况下执行CPU的相同计算,并在不更改指令结构的情况下以更少的时间产生相同的结果)
管道内衬是一种众所周知的古老技术,它可以增加ILP,但是它有其局限性,增加阶段会增加硬件的复杂性,并最终会减少收益。
VLIW和超标量本质上是相同的,但是它们是不同的并行方式,它们需要特殊的硬件和特殊的编译器,因此它们与常规的控制流体系结构不兼容。该技术本质上依赖于编译器将多个指令打包成一个可以并行执行的超长指令字(VLIW)。
以流水线开头