[0027] パイプライン処理,分岐予測,out-of-order

平成12年度春期 (旧)第2種情報処理技術者試験より
 コンピュータの高速化技術のうち、一つの命令をn個の独立な処理段階に分割し、各処理段階を並行に実行できるようにして、複数の命令をオーバラップさせて実行する方式はどれか。
out-of-order実行
キャッシュメモリ
パイプライン処理
分岐予測

正解

解説

 CPUの高速化手法に関する出題です。

 選択肢の各用語を説明していきましょう。

■ パイプライン処理

 CPUにおける1命令の処理過程を、複数の小さな処理単位に分割して、複数の命令をオーバーラップさせながら同時実行する技術です。
 プログラムの各命令は、下の図のように、CPU上ではいくつかの実行段階に分かれています。それぞれの処理単位は、ステージといいます。



 パイプライン制御では、この実行段階に空きが発生しないように、複数の命令を段階をずらしながら同時実行を実現しています。複数の命令を並行して実行するので、1命令当りの平均実行時間は小さくなります。

 それでは、パイプライン処理で、どの程度高速化できるのでしょうか。下の図は、パイプライン制御を行なう場合と、行なわない場合の比較です。
 パイプラインなしの場合は、各命令を、ステージの進行に沿ってひとつずつ実行していきます。t秒から始まって、n秒後のt+n秒の段階では、ようやく1命令の実行が完了しました。
 パイプラインありの場合は、命令A~Dまでを、各ステージをずらしながら同時に実行していきます。t+n秒の段階では、2命令が完了しており、高速化されていることが分かると思います。



 ただし、パイプライン制御は、からなずしも高速化ができるとは限りません。パイプラインでは、作成されたプログラムの実行順番どおりに実行されるかどうかは、わからないからです。たとえば、分岐命令によって、プログラムの実行順番が変わってしまう場合もあります。このように、先読みされた命令を破棄せざるを得ない状態となることを、パイプラインハザードといいます。

■ 分岐予測

 分岐が発生するかどうかをCPUが予測し、分岐が起こると判断された場合、分岐先の命令を先に実行したりする処理のことです。分岐予測により、パイプラインハザードの発生が抑えられ、パイプラインを効率よく動かすことができます。


■ out-of-order処理

 パイプライン処理を行なう前に、命令の実行順序を並べ替えることによって、各命令がパイプラインをスムーズに流れるようにするための処理です。


■ キャッシュメモリ

 低速な記憶装置の同じデータに対して、2回目以降のアクセスを高速化するために、そのデータを保存しておくためのメモリです。その用途の性格上、キャッシュメモリには高速なメモリが使用されれます。


 エの選択肢だけは、パイプライン処理とは直接関係ない語句です。あとはすべて、パイプライン処理と、それを効率的に動かすための処理です。以上の説明より、ウが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題