什么是VLIW架构?
VLIW代表超长指令字。它是一种指令集架构,旨在充分利用指令级并行性 (ILP) 进行改进的实现。中央处理器允许程序仅按顺序确定要执行的指令,而VLIW处理器允许程序显式定义要并行执行的指令。这种设计旨在实现更高的性能,而不会像某些多指令设计那样复杂。
VLIW方法需要超长指令字来定义每个执行单元必须执行的操作。如果假定有n个执行单元,则VLIW指令的长度是传统RISC指令字长度的n倍。因此,包含大约十个执行单元的VLIW处理器需要数百位的字长。例如,Trace VLIW系列可以并行执行7到28条指令(取决于包含的模块数量(1-4)),字长为256-1024位。
VLIW架构与超标量处理器密切相关。两者都旨在通过处理指令级并行性来加快计算速度。两者具有相似的执行机制,它主要包括多个并行执行的执行单元(EU),并使用统一寄存器文件来处理所有数据类型,或者像图中所示的那样,为FX和FP数据使用不同的(分离的)寄存器文件。
VLIW和超标量处理器的区别在于指令的生成方式和调度方式。超标量架构旨在获取为顺序处理器设计的常规指令。VLIW架构包含长指令字,其中包括每个可用执行单元的控制字段(对于统一寄存器文件设计)。
VLIW架构是静态调度的。静态调度消除了处理器指令调度的负担,并将此功能完全委托给编译器。静态调度对于VLIW架构非常有利,因为它大大降低了复杂性。
与类似的超标量设计相比,VLIW设计的优势在于其较低的复杂性,从而可以实现更高的时钟频率。在静态调度中,编译器完全负责检测和消除控制、数据和资源依赖性。
明显的代价是编译器的复杂性,但还存在更不利的后果。为了能够调度操作,必须向编译器提供相当详细的VLIW架构设计。这意味着编译器必须熟悉处理器的所有重要特性和内存,包括可用执行单元的数量和类型、它们的延迟和重复成本、内存加载使用延迟等。