パイプライン方式によるコンピュータの効率化【CPUの処理方式】

CPUの制御方式


プログラムはメモリから取り出されCPU内部で命令実行サイクルにのっとって処理されます。そして、命令実行サイクルは以下のステップを踏みます(詳しい記事はこちらです)。

  1. 命令の取り出し
  2. 命令の解読
  3. 実効アドレス計算
  4. オペランドの取り出し
  5. 命令の実行
  6. 演算結果の格納


これらのステップによってCPUで利用されるリソースは異なります。そこに着目してCPUの処理の高速化が図られているわけです。この記事ではCPU処理方式処理の高速化について解説していきます。

逐次制御方式:ひとつずつ順番に実行する


1ステップずつ順番に繰り返し実行する方式を逐次制御方式といいます。

逐次制御方式

この方式はCPUの制御方式の中でもとりわけ単純なものです。それゆえステップごとに利用されるCPUのリソースが異なることによりリソースに遊びができてしまうため、あまり効率のよい方法とはいえません。そこで、処理の高速化のためにいくつかの方策がとられています。

処理を並行して実行する


リソースの遊びを減らすための工夫として主に2つの方式があります。それぞれパイプライン方式スーパーパイプライン方式と呼ばれるものです。

パイプライン方式:ステップをずらして実行する


パイプライン方式とは、1ステップずつ処理をずらすことで並行処理を実現するCPUの制御方式のことです。これでCPUのリソースの遊びを少なくすることができます。

パイプライン方式

スーパーパイプライン方式:ステップを細かく分けて実行する


スーパーパイプライン方式とは、ステップをより細分化させて処理を並行させることで処理の高速化と効率化を図るCPUの制御方式のことです。

スーパーパイプライン方式

パイプライン方式の欠点と対策


プログラムを実行する際、中には次に実行する命令が分岐しているものもあります。つまり、条件や場合に応じて先読みした命令を実行することを取りやめて一方の命令を実行する場合もあるわけです。そうすると処理の順序が乱れてしまいます。

この欠点はパイプラインハザードと呼ばれるものです。その対策としては次に挙げる2つがあります。

分岐予測:次に実行する命令を予測する


分岐予測とは、CPUにおいて実行される処理をあらかじめ予測する技術のことです。予測が当たればそのまま次の処理へと進めていくことができますが、外れた場合は別の分岐を最初からこなさなければなりません。これはのるか反るかにかかわらずヤマを当てにいく方法だといえます。

投機実行:あらかじめ予測した命令を実行しておく


投機実行とは、予測した命令を実行しその結果を有効利用する技術です。投機実行ではあらかじめ分岐先の処理を実行し、分岐先に応じてその結果を利用していきます。これはヤマを当てて得た利益を有効活用する方法だといえます。

スーパースカラ方式:同時に複数の命令を実行する


スーパースカラ方式とは、同時複数の命令を実行することで処理高速化を図る技術です。

スーパースカラ方式

ここにはパイプラインが複数存在します。この技術は主にスーパーコンピュータに利用されていますが、技術としては新しくありません。現代のスパコンではベクトル型コンピュータが主に採用されています。

なぜ「スーパースカラ」なのか?


パーソナルコンピューター(PC)ではスカラ型の処理方式を採用しています。つまり、PCにおけるCPUの高速化は単一の命令をこまかく分割してそれらを並行処理することで実現されるわけです。

スーパースカラ方式を採用しているCPUはそのための仕組みを複数保持しています(しかし単一の命令を扱うことには変わりはありません)。よってスカラ型を超えた方式、すなわち「スーパースカラ」方式なのです。

ちなみにベクトル型コンピュータ複数の命令をまとめて処理することが可能です。

ひとつのCPUに複数の演算装置(コア)を備えたものです。つまり、複数の処理機能をもったCPUといえます。





それでは、今回はここまでといたします。
最後までお読みいただきありがとうございます。


CPUの制御方式
最新情報をチェックしよう!