ハードウェアのWeb教科書―コンピュータの仕組みを学ぼう!

プロセッサとは

トップ 制御・演算装置 プロセッサとは

コンピューターの制御・演算を行う処理装置のことをプロセッサといいます。CPUやMPUなどはプロセッサーの一つです。

▲記事トップへ

目次

この記事の目次です。

1. プロセッサとは
2. プロセッサとCPUの違い
3. プロセッサのアーキテクチャ
4. プロセッサの構造と方式
5. プロセッサの動作原理
6. プロセッサの性能
7. プロセッサの高速化技術
8. 並列処理

更新履歴

1. プロセッサとは

プロセッサとは、データを処理する装置のことを言います。コンピュータでは、CPUやバス制御チップなどの半導体素子のことを言うことが多いです。 また、コンピュータから入出力装置を除いた機能を指す場合もあります。

2. プロセッサとCPUの違い

プロセッサとCPUの違いは意味に含まれる対象の範囲が異なります。 プロセッサはCPUを含む処理装置のすべてを言います。 CPUはコンピュータの処理装置の中の、中心に位置する処理装置のことを言います。

CPUとは

CPUは、Central Processing Unitの略で中央処理装置のことを言いい、パソコンやスマホなどコンピュータの中枢部に相当します。 CPUとは何か、パソコンやスマホなどとつながるように、初心者の方でもわかりやすく解説していきます。

詳細

3. プロセッサのアーキテクチャ

プロセッサのアーキテクチャについて見ていきます。

データ処理の単位

プロセッサのアーキテクチャによって、プロセッサが 1 命令で処理するデータサイズに違いがあります。

また、CPUの方が取り扱えるメモリ空間の論理上の上限にも違いがあります。 たとえば、32ビットCPUと64ビットCPUでは、64ビットCPUの方が取り扱えるメモリ空間の論理上の上限は大きいです。

4. プロセッサの構造と方式

プロセッサの構造と方式について補足していきます。

プログラムカウンタ

プログラムカウンタは、別名で命令ポインタなどといい、 割込み処理の終了後に、割込みによって中断された処理を割り込まれた場所から再開するために、 割込み発生時にプロセッサが保存するレジスタです。

5. プロセッサの動作原理

プロセッサの動作原理についてまとめていきます。

演算の仕組み

AND回路、OR回路、NOT回路などの基本となる論理回路の組合せによって半加算器、全加算器が実現され、演算が行われています。

NAND回路

NAND回路は、NOT ANDの略で、読み方はナンド、論理積の否定を行う回路になります。

命令とアドレッシング

命令の実行手順(命令の取出し、命令部の解読、データの取出し、命令の実行)などプロセッサーにおける命令とアドレッシングについて見ていきます。

命令の実行手順(マシンサイクル)

コンピュータの処理装置が一つの命令を取り出し実行する流れをマシンサイクルと呼びます。

マシンサイクルは命令取出し段階と命令実行段階に大別され、命令フェッチ→命令の解読→オペランド読出し→命令の実行の順で実行されます。

①命令取出し段階

命令取出し段階は、次に実行する命令を主記憶装置から取り出す段階です。

  1. フェッチ

    プログラムカウンタの指すアドレスをもとに、主記憶装置に記憶された命令を1語、命令レジスタに取り出します。

  2. プログラムカウンタの更新

    命令を1語取り出すたびに、プログラムカウンタの値を1増加させます。 プルグラムカウンタは常に次に取り出す命令のアドレスを指します。

②命令実行段階

命令実行段階は、命令レジスタに取り出した命令を実行する段階です。

  1. 命令の解読

    取り出した命令の命令部は命令解読器(デコーダ)に送られ解読されます。 解読の結果は制御信号に変換され、演算装置などに送られます。

  2. データの取出し

    アドレス部は、必要に応じてアドレス変換し、主記憶装置の指定アドレスからデータを取り出します。 データは汎用レジスタなどに記憶されます。

  3. 命令の実行

    命令を実行します。 演算結果ならば、演算装置によって演算が実行され、その結果で、いくつかのレジスタの内容が更新されます。 また、読み書きの命令の場合、主記憶装置の指定アドレスとデータの転送が行われます。

割込み

割込みの仕組み、内部割込み、外部割込みに分類される割込みの種類、多重割込み時の処理についてまとめています。

割込みの仕組み

マルチタスクを実現するためには、ある一定の時間間隔ごと、または入出力要求を出したタイミングなどでタスクを切り替えます。 この切り替える制御を割込みといいます。

割込みとは、プログラムの実行中に、何らかの条件によってプログラムの命令実行を強制的に中断し、他のプログラムに制御を移すことです。

割り込みが発生すると、コンピュータの各命令の実行ごとに、コンピュータの実行と非同期の事象が発生したかどうかを調べ、実行中のプログラムより優先順位の高い事象が生じていれば、特定番地の命令に制御を移します。

この場合、現在処理しているプログラムを一時待避させ、割り込んで入ってきたプログラムを実行します。 割り込みの処理が終了すると、待避させたプログラムを回復させ、中断したところから実行を再開します。

なお、ハード・ディスクやLANボードなど、 ハードウェアからの依頼により発生するものを外部割込み(ハードウェア割込み)といい、 ソフトウェアからの依頼により発生するものを内部割込み(ソフトウェア割込み)といいます。

内部割込み

内部割込みは、実行中のプログラムによって行われる割込みです。

内部割込みの種類

内部割込みの種類は大きくわけて2タイプです。

外部割込み

外部割込みは、入出力動作完了、タイマ通知、電源異常、各種センサ割込など、 プログラム(CPU)内部以外が原因で発生する割込みのことをいいます。

  1. 入出力割込み
    入出力動作が終了したときに発生
  2. 機械チェック割込み
    ハードウェアが故障したときに発生
  3. タイマ割込み
    プログラムの実行時間が設定時間を経過したときに発生
  4. コンソール割込み
    オペレータが介入したときに発生

6. プロセッサの性能

プロセッサの性能は、内部時計の速さや、単位時間に実行できる命令数などで表されます。

7. プロセッサの高速化技術

プロセッサの代表的な高速化技術の種類、特徴についてまとめています。

パイプライン処理方式(命令パイプライン)

パイプライン処理方式とは、命令の実行を「取出し」と「実行」など、命令の処理工程(ステージ)に分け、ある命令のステージと次の命令のステージを並列に行う処理方式です。 パイプライン処理方式は、複数の命令をオーバーラップさせて同時実行可能とすることから、命令パイプラインとも呼ばれます。

パイプライン処理方式の制御イメージ

例えば、RISCマシンは、ステージ1(IF:命令フェッチ)、ステージ2(ID:命令デコード)、ステージ3(EX:実行)、ステージ4(MEM:メモリアクセス)、ステージ5(WB:レジスタ・ライトバック)の5段階にステージに分割されていて、 これをパイプライン処理にすると表のようなイメージで実行されます。

表 パイプライン処理方式の制御イメージ
サイクル1サイクル2サイクル3サイクル4サイクル5サイクル6
命令1IFIDEXMEMWB
命令2IFIDEXMEMWB
命令3IFIDEXMEM

スーパパイプライン

パイプラインを更に細分化することによって、高速化を図る方式です。

スーパスカラ

複数のパイプラインを用い、同時に複数の命令を実行可能にすることによって高速化を図る方式です。

VLIW

VLIWとは、Very Long Instruction Wordの略で、 同時に実行可能な複数の命令をまとめて一つの命令として、同時に実行し、プロセッサの実行効率を上げる方式です。

VLIWは、プロセッサの高速化技法の一つとして、同時に実行可能な複数の動作を、 コンパイルの段階でまとめて一つの複合命令とし、高速化を図ります。

CPUの命令セットの中で、 同時に実行しても互いに影響しない複数の命令を組み合わせ、 一つの長い命令語とすることで、 並列実行におけるパイプラインの効率化を図る手法で 命令語を長く取り、一つの命令で複数の機能ユニットを同時に制御することによって高速化を図ります。

ベクトル処理方式

処理すべきベクトルの長さがベクトルレジスタより長い場合、ベクトルレジスタ長の組に分割して処理を繰り返す方式です。

その他

その他に以下のような方式があります。

8. 並列処理

代表的な並列処理方式には以下があります。

SIMDとは

SIMDとは、読み方はシムド、1つの命令で複数のデータを処理する方式です。

詳細

MIMDとは

MIMDとは、Multiple Instruction stream/Multiple Data streamの略で、代表的な並列処理方式の1つです。

詳細

その他

更新履歴

戻る

スポンサーリンク

カテゴリー

スポンサーリンク