次の図のうち,パイプライン制御の説明として適切なものはどれか。
ここで,図中の各記号の意味は次のとおりである。
F:命令呼出し,D:解読,A:アドレス計算,R:オペランド呼出し,E:実行
正答3
解説
正解は3です。
パイプライン制御を表す図を選ぶ問題です。
パイプライン制御は、命令の実行を命令呼出し(F)、解読(D)、アドレス計算(A)、オペランド呼出し(R)、実行(E)の段階に分けます。
前の命令が次の段階に進んだら、空いた段階で次の命令の処理を始めることで、複数の命令を少しずつずらして並行処理します。
【選択肢別解説】
1:× 図のアは、命令1のEが終わってから命令2のFが始まっています。
命令を一つずつ順番に処理しており、重なりのない逐次制御です。
2:× 図のイは、命令2のFが命令1のRと同じ時点から始まり、3段階ずつずれています。
重なりはありますが、空いている段階が多く、1段階ずつずらして詰めるパイプラインの動きになっていません。
3:○ 図のウは、命令2が命令1より1段階遅れてFを始め、命令3もさらに1段階遅れて始まっています。
各時点で、異なる命令が異なる段階を同時に処理しており、パイプライン制御を表しています。
4:× 図のエは、命令1と命令2が同じ時点で同じ段階を処理しています。
同じ段階を複数の命令が同時に実行するのは、複数のパイプラインを並べるスーパースカラの考え方です。
単一のパイプライン制御の説明としては適切ではありません。
【ポイント】
パイプラインは「段階をずらして重ねる」、スーパースカラは「パイプラインを複数本並べて同じ段階を同時に処理する」と区別します。
理想的なパイプラインでは、1段階分の時間ごとに1命令が完了します。