ソフトウェア開発技術者試験 2004年度 = 平成16年度 午前 問19

 すべての命令が5サイクルで完了するように設計されたコンピュータがある。パイプラインの制御の下で、20命令を実行するには何サイクル必要となるか。ここで、すべての命令は途中で停止することなく実行できるものとする。

ア 20 イ 21 ウ 24 エ 25

解答



解説

 パイプラインは、命令の実行サイクルを、命令の取出し、解読、アドレス計算・変換、データの取出し、実行のような複数の段階に分け、各段階の処理を別々の装置が担当することによって、複数の命令を並列に処理する方式です。
 最初の6命令を実行する様子は、以下のようになります。

┌─┬─┬─┬─┬─┐              │1│2│3│4│5│            5 └─┴─┴─┴─┴─┘                ┌─┬─┬─┬─┬─┐              │1│2│3│4│5│          6   └─┴─┴─┴─┴─┘                ┌─┬─┬─┬─┬─┐              │1│2│3│4│5│        7     └─┴─┴─┴─┴─┘                ┌─┬─┬─┬─┬─┐              │1│2│3│4│5│      8       └─┴─┴─┴─┴─┘                ┌─┬─┬─┬─┬─┐              │1│2│3│4│5│    9         └─┴─┴─┴─┴─┘                ┌─┬─┬─┬─┬─┐              │1│2│3│4│5│  10           └─┴─┴─┴─┴─┘    ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤   1 2 3 4 5 6 7 8 9 10 11  

 この図から、x個目の命令が完了するまでに必要なサイクル数が、x+4サイクルであることが分かります。したがつて、20個目の命令が完了するまでに必要なサイクル数は20+4=24サイクルです。


BohYoh.comトップページへ