読むだけでいい基本情報技術者試験対策8:CPUの処理速度の高速化

今回はCPUにおける処理をどのよういに高速化できるかということを勉強していきましょう。

我々のPCが高速化していく中で、処理すべき情報は幾何学級数的に増えていきます。命令の実行過程を工夫することで、このような大量の処理を効率良く行い、CPUによる処理を高速化できます。

 

前回、前々回の復習ですが、命令の実行過程には6つの段階がありました。

①命令取得→②命令解読→③実行アドレス計算→④オペラント取得→⑤命令実行→⑥演算結果の保存

でしたね。これらの段階を実行するやり方には幾つかあります。

大別して2つあり、一つは逐次制御方式、もう一つはパイプライン処理です。

 

逐次制御方式とは、命令サイクル①~⑥までを1命令ずつ繰り返し実行する方式です。これが基本的なやり方であり、イメージもしやすいと思います。

例 

命令1 処理①~⑥ → 命令2 処理①~⑥ →命令3 処理①~⑥→…

 

次にパイプライン方式です。これは命令実行サイクルの各段階を並行して実行することで処理速度を上げるやり方です。この処理方法では、分岐命令が出現すると、先読みしていた命令を破棄して新たに分岐先の命令を実行し直す必要があります。このようにして処理の順序が乱れることをパイプラインハザードといいます。このため、分岐命令に対処するための方法がいくつかあります。1つは分岐予測といい、実行される確率が高い方を予測しておくものです。もう1つは投棄実行といい、予想した分岐先の命令を予め処理し、その結果を保持して、分岐先が正しければその結果を採用し、異なればやり直すという処理があります。

命令1 ①→②→③→④→⑤→⑥

命令2   ①→②→③→④→⑤→⑥

 

パイプライン処理には幾つかの種類があります。

 

スーパーパイプラインとは、命令の実行段階をさらに細分化してパイプラインの動作効率を向上させる方式です。

命令1 ①→→②→→③→→④→→⑤→→⑥

命令2  ①→→②→→③→→④→→⑤→→⑥

 

スーパースカラとは、複数のパイプラインを設け、複数の命令を同時並行で実行する方式です。

命令1 ①→→②→→③→→④→→⑤→→⑥

命令2 ①→→②→→③→→④→→⑤→→⑥

命令3  ①→→②→→③→→④→→⑤→→⑥

命令4  ①→→②→→③→→④→→⑤→→⑥

 

今回はここまでです。次回はCPUの種類などについて勉強していきます。