概念:
超长指令字(Very Long Instruction Word,简称VLIW)将多条并行执行的指令看成一条长指令,VLIW处理器的工作工程可以看成是每一条长指令的取指、译码、执行过程,甚至长指令字因此而得名。
软流水:
软流水是编译器优化循环代码的一种指令调度策略,用于在循环的多次迭代中提高指令的并行性。软件流水顾名思义,就是对软件(这里特指循环)进行类似的流水线调度。软件流水也称为循环级并行。
例子:
每次循环称为一次迭代(Iteration),每次迭代执行3条指令:K1、K2、K3(如去数、计算、存数) ,传统的程序执行过程如下:
而采用软件流水技术,程序的执行过程如下:
进流水的阶段称为Loop Prolog,全速并行的阶段称为Loop Kernel,出流水线的阶段称为Loop Epilog。
超长指令字成功的关键在于:
编译器是否能将高级语言翻译成并行性足够好的指令序列。