VLIWと命令レベル並列性とは?ぶいえるあいだぶりゅーとめいれいれべるへいれつせい
VLIWと命令レベル並列性とは、1つの命令列にどれだけ同時実行できる命令が含まれるかを命令レベル並列性という。VLIWはこの並列性の抽出をコンパイラに任せ、同時発行できる命令の組を1つの長い命令語へ静的に詰めておく方式で、依存解析と発行順序の判断を実行時のハードウェアから外せる点が特徴になる。
最終更新:2026-10-06
エンベデッドSPを最短で暗記・合格する →背景
動作周波数を上げて性能を稼ぐ路線は消費電力と発熱で行き止まりになり、同時に何命令流せるかへ軸が移った。ただしスーパースカラは実行時に依存を解くため、その判定回路が面積と電力を食う。電池と放熱に縛られる機器では回路を削りたいので、判定をオフラインのコンパイラへ追い出す形にしたのがVLIWにあたる。
具体例
TIのTMS320C6000系のようなDSPでは、演算・ロード・分岐を1語へ詰めて同時発行し、ソフトウェアパイプライニングでループを詰める。依存が解けない位置はNOPで埋めるためコードが膨らみ、ROM容量と命令キャッシュのミス率に効く。速度とコードサイズのどちらを取るかが、そのままコンパイラオプションの選択になる。
試験での引っ掛け
スーパースカラは実行時にハードウェアが並列化を判断し、VLIWはコンパイル時に静的に決める。したがってVLIWでは発行スロット数の違う世代のチップで同じ実行ファイルがそのままは動かず、再コンパイルが要る。並列度を上げても、そもそも命令レベル並列性の乏しいコードでは速くならない点も混同しやすい。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。