超长指令字

维基百科,自由的百科全书
跳转至: 导航搜索

超长指令字(VLIW:Very long instruction word)指的是一种被设计为可以利用指令级并行(ILP)优势的CPU体系结构。一个按照顺序执行指令的非超标量处理器不能充分的利用处理器的资源,有可能导致低性能。

性能可以通过同时执行一系列指令中的不同子步骤来提高(这就是流水线),或者像超标量架构一样,甚至完全的并行执行多个处理器指令。进一步的提高可以通过指令的执行顺序与在程序代码中出现的顺序不同来提高,这就是乱序执行

这3种技术都要付出代价:增加了硬件的复杂性。在并行执行任何操作之前,处理器必须确认这些指令间没有相互依赖。例如第一个指令的结果作为第二个指令的输入。很明显,这样的两条指令无法同时执行,并且第2条指令不能在先于第一条指令执行。乱序执行处理器增加了硬件资源用于调度指令和决定相互依赖。

另一方面,VLIW通过另外一种方法来实现并行。VLIW的并行指令执行是基于一个确定的调度。这个调度是程序在编译的时候就已经确定好的。由于决定乱序执行的工作是由编译器来完成的,处理器不再需要上面三种技术所需的调度硬件。结果VLIW处理器相比其他多数的超标量处理器提供了更加强大的处理能力但是更少的硬件复杂性(编译器的复杂性提高了)。

正如一些其他比较新颖的架构,这种并行执行的概念只有当编译器能生成有效的代码的时候才变得有用。事实上,一些有着特殊目的的指令可以用来帮助一些复杂的操作,例如快速傅立叶变换或者在地貌计算中出现的计算。如果编译器无法准确的找出相关的代码并且生成可以利用CPU能力的目标代码,这些特殊目的的指令将变得毫无用处。例如,程序员可能需要将他的算法用一种可以降低编译器工作难度的方式进行描述。