コンパイラ
ソフトウェアパイプライン化(ソフトウェアパイプライニング)の説明として正しいものはどれか。
- ACPUのパイプラインの段数を、ソフトウェアで増やす技術
- Bループを関数に分けて、複数のスレッドで並列に実行する技術
- C異なる繰り返しの処理を重ね、待ち時間を埋める技術
答えと解説を見る
正解:C. 異なる繰り返しの処理を重ね、待ち時間を埋める技術
ソフトウェアパイプライン化では、ループの1回の処理を「読み込み・計算・書き込み」のような段階に分け、例えばi回目の書き込み、i+1回目の計算、i+2回目の読み込みを同じ繰り返しの中で行うように命令を並べます。読み込みの待ち時間の間に、ほかの繰り返しの計算を進められるので、演算器を休ませずに済みます。ループの前後には準備と後片付けのコードが必要です。CPUの段数を変えたり、スレッドで並列化したりする技術ではありません。
- A. CPUのパイプラインの段数はハードウェアで決まっています。
- B. スレッドによる並列化とは別の技術です。
- C. 正しい。異なる繰り返しの処理を重ね、待ち時間を埋めます。