VLIW 【Very Long Instruction Word】
概要
VLIW(Very Long Instruction Word)とは、CPU(マイクロプロセッサ)の設計様式の一つで、依存関係にない複数の命令を一つの命令としてまとめて投入し、複数の実行ユニットで並列に実行する方式。例えば、32ビット長の命令を4つ同時に投入・実行できる128ビット長の実行ユニットを搭載するVLIWプロセッサでは、プログラムを4命令ずつ一度に実行することができる。
同時に実行する命令同士には、前の命令の結果を次の命令が利用するという前後関係(依存関係)が存在しないことが必要であり、規定の数に達しない場合は空いたユニットが「NOP」(No Operation:何もしない)命令で埋められる。常にユニットの数だけ並列に命令を実行できるわけではない。
コンパイラによる最適化
プロセッサ内部の制御回路は分岐予測など依存関係の解析や調整などを行わないため、設計が単純で廉価に高速化を図れるが、並列度を高めるにはコンパイラなどのソフトウェア側でVLIWを考慮した機械語コードを生成する必要がある。
その際、特定のVLIWプロセッサに最適化されたコードは並列度が異なる別のプロセッサでは実行のタイミングがずれてしまうため、性能を最大限に引き出すにはプロセッサ毎に最適化されたコードを用意する必要がある。
(2024.1.25更新)