CPU

コンピューターの5大装置

5大装置

装置名称 代表的な機器とその役割
制御装置 中央処理装置 プログラムの命令を解釈してコンピューター全体の動作を制御する
演算装置 四則演算をはじめとする計算や、データの演算処理を行う。算術論理演算装置とも呼ばれる。
記憶装置 主記憶装置 動作するために必要なプログラムやデータを一時的に記憶する装置
補助記憶装置 プログラムやデータを長期に渡り記憶する装置
入力装置 コンピュータにデータを入力する装置
出力装置 コンピュータのデータを出力する装置

ノイマン型コンピューター

補助記憶装置にプログラムやデータを保管し、実行時には主記憶装置にプログラムやデータを移してCPUが1つずつ命令を実行する

  • プログラム内蔵方式:実行時にはプログラムをあらかじめ主記憶装置に読み込んでおく方式
  • 逐次制御方式:命令を1つずつ取り出して順番に実行していく方式

CPUの命令実行手順とレジスタ

レジスタ:CPU内部の記憶装置

レジスタの種類

名称 役割
プログラムレジスタ 次に実行するべき命令が入っているアドレスを記憶するレジスタ
命令レジスタ 取り出した命令を一時的に記憶するためのレジスタ
インデックスレジスタ アドレス修飾に用いるためのレジスタで、連続したデータの取り出しに使うために使うために増分値を保持する
ベースレジスタ アドレス修飾に用いるためのじれスタで、プログラムの先頭のアドレスを保持する
アキュムレータ 演算の対象となる数や、演算結果を記憶するレジスタ
汎用レジスタ 特に機能を限定していないレジスタ。一時的な値の保持やアキュムレータなどの代用に使ったりする

命令実行の手順

1 「命令の取り出し(フェッチ)」

プログラムカウンタ内にある取り出すべき命令を参照して取り出し、それを命令レジスタに記憶させる。取り出し終わったら、次の命令に備えてプログラムカウンタの値を1つ増加させる。

2 「命令の解読」

命令レジスタに取り入れた命令の命令部の中身を命令デコーダへ送る。命令デコーダは命令部のコードを解読して、必要な装置に制御信号を飛ばす。

3 「対象データ(オペランド)」

もし命令が演算処理の場合、演算の元となる数値が必要。それを読み取ってくる処理。

読み取ってくるデータ(オペランド)は命令レジスタのオペランド部を見るとその置き場所が示されていますので、そこからとってくる。それを汎用レジスタなどに記憶させる。

2 「命令の実行」

命令実行段階。演算処理なら演算をしてその結果を返して終わり。また1に戻る。

機械語のアドレス指定方式

実効アドレス(有効アドレス):計算によって求めた主記憶装置上のアドレス

命令の中には命令部とオペランド部があり、オペランド部のデータを命令部の命令を用いて処理せよという構成になっています。

そのオペランド部は、データがそのまま入っていれば、置き場所が書かれていたり、何らかのルールの下で修飾されていたりします。

即値アドレス方式

オペランド部に、対象となるデータそのものが入っている方式

直接アドレス方式

オペランド部に記載してあるアドレスが、そのまま実効アドレスとして使える方式

間接アドレス方式

対象となるデータが入っている箇所を示すメモリアドレス

インデックス(指標)アドレス指定方式

命令部 インデックスレジスタ番号 オペランド部

オペランド部の値にインデックスレジスタの値を加算することで実効アドレスを求める

仮にインデックスレジスタ番号が2なら、インデックスレジスタの2に該当する部分を読む。そこに10が入っているなら、10とオペランド部のデータを合算させるという考え方。

ベースアドレス指定方式

オペランド部の値に、ベースレジスタの値を加算することで実効アドレスを求める

相対アドレス指定方式

オペランド部の値に、プログラムカウンタの値を加算することで実効アドレスを求める

CPUの性能指標

クロック周波数

コンピューター内に備わっていて装置同士がタイミングを同調するために用いられる周期信号。

このクロックが1秒間に繰り返される回数のことをクロック周波数と呼ぶ。単位はHz。クロック周波数1GHzのCPUは、1秒間に10億回のクロックが振動している計算。

クロックに要する時間

1クロックに要する時間のことをクロックサイクル時間と呼ぶ。

クロック周波数は1秒で何回のクロック数なのかを示しますが、クロックサイクル時間はそれを逆にして、1クロックあたりの所要時間で表現する。

クロック周波数:1GHz/1秒
クロックサイクル時間:1秒/1GHz … 10-9秒

CPI

CPI(Clock cycles Per Instruction)とは、1命令当たり何クロックサイクルが必要かをあらわすもの

1命令に2クロック必要なら2Cpi

MIPS

MIPS(Milliom Instructions Per Second)は1秒間に実行できる命令の数

命令ミックス

良く使われる命令をひとつのセットにしたもの。

  • ギブソンミックス:科学技術計算で使われる
  • コマーシャルミックス:事務計算などで使われる

CPUの高速化技術

パイプライン処理

命令の出番待ちなどの無駄をなくし、全体の処理効率を高める手法をパイプライン処理と呼ぶ。

  1. F→D→O→E
  2.        F→D→O→E
  3.               F→D→O→E

普通にやるとこのように1つめの処理が終わってから次の処理となるところを・・・

  1. F→D→O→E
  2.   F→D→O→E
  3.     F→D→O→E

このように処理のステージ単位で次の処理へと移行して並行処理を行う

  • ステージ:命令実行手順の各段階
  • 分岐ハザード:次から次へと命令を先読みして行うので、分岐命令などが出てきた場合は先読み分が無駄になること

分岐予測と投機実行

  • 分岐予測:次の分岐結果を予測して、次の命令は何かを予測することで無駄な待ち時間を掃除させないようにする
  • 投機実行:「後々無駄になってしまうかもしれないが、多分これだから先にやってしまおう」と分岐先の命令を実行開始する手法が投機実行

スーパーパイプラインとスーパースカラ

  • スーパーパイプライン:各ステージの中身をさらに細かいステージに分割することでパイプライン処理の効率アップを図る
  • スーパースカラ:パイプライン処理を行う回路を複数持たせることで、全く同時に複数の命令を実行できるようにしたもの

CISCとRISC

CPUには次の2つの代表的なアーキテクチャ(設計思想)がある

  • CISC:CPUに高機能な命令を持たせることによって1つの命令で複雑な処理を実現する。回路そのものは単純にしておいて、マイクロプログラムで実装するイメージ。
  • RISC:CPU内部に単純な命令しか持たせないかわりに、それらをハードウェアのみで実装して、1つ1つの命令を高速に処理するアーキテクチャ
タイトルとURLをコピーしました