コンピュータ

VLIW(Very Long Instruction Word)とは

2021年10月6日

VLIW(Very Long Instruction Word)

VLIW (Very Long Instruction Word)とは、マイクロプロセッサ(CPU)の性能を向上させるための技術のひとつで、複数の命令をひとつの命令にすることで、複数の命令を同時に実行させる手法です。

VLIWを説明する前にパイプライン処理について説明します。

パイプライン処理とは

パイプライン処理は、マイクロプロセッサ(CPU)の性能を向上させるための技術のひとつであり、複数の命令を並行して実行するための方式です。

命令をひとつずつ順番に処理していく方式(逐次制御方式)だと、ひとつの命令が終わるまで次の命令を処理できず非効率です。

※以下は逐次制御方式のイメージ例

逐次制御方式のイメージ例

そこで、ひとつの命令を複数の段階に分割し複数の命令を並行して実行していきます。これがパイプライン処理です。

※以下はパイプライン処理のイメージ例です。(以下の例では1:命令の取り出し、2:命令の解読、3:対象データの読み出し、4:命令実行、5:結果の書き込み)

パイプライン処理のイメージ例

パイプライン処理では、段階ごとに制御できるため、命令1の「1」が終わったら、命令1の「2」~「5」の終了を待たずに、命令2の「1」を処理することができます。

VLIWとは

VLIW(Very Long Instruction Word)とは、依存関係のない複数の命令をひとつの複合命令として同時に実行させる手法です。

以下はVLIWのイメージ例です。本来は別々に実行される命令をひとつの命令として実行します。

VLIWのイメージ例

例えば、32ビット長の命令を4つ同時に投入・実行できる128ビット長の実行ユニットを搭載するVLIWプロセッサでは、プログラムを4命令ずつ一度に実行することができます。

VLIWは命令長を揃える必要があるため、複数の命令をひとつにまとめた結果が規定の長さに満たない場合は、NOP命令(No Operation:何もしない)で埋めます。(NOP命令は「何もしない」ため、NOP命令が増えるほど効率が落ちる)

VLIWのNOP

VLIWは、プログラムのコンパイル時に依存関係のない複数の命令をひとつの複合命令として同時に実行させるときなどで使用されています。

helpful