CPU【Central Processing Unit】を分かりやすく説明する




CPU【Central Processing Unit】を分かりやすく説明する

CPU【Central Processing Unit】(以下、CPU)は中央処理装置と呼ばれ、プログラムを解釈・実行してコンピュータ全体の動作を制御しています。

コンピュータの中央処理装置と聞くと、複雑な処理を行っているように思われるかもしれませんが、実は

  • 四則演算
  • 論理演算
  • 比較演算 等々

単純な計算処理と基本的なデータのコピーしか処理・実行していません。

この記事では、

  • CPUの構造
  • CPUの基本動作

それぞれについて説明していきます。

スポンサーリンク

CPUの構造

CPUの構造

CPU

  • 制御ユニット
  • 演算ユニット
  • レジスタ
  • クロック

要素で構成されています。

CPUの構造

制御ユニット

制御ユニットの基本的な役割は

  • CPU内の演算ユニットレジスタの動作
  • メモリの読み書き・入出力 等

を制御する事です。

制御ユニットの中のデコーダ

  1. 命令レジスタの命令部をデコード(解読)
  2. 演算ユニットの中の演算回路の選択

を行います。

制御ユニット

演算ユニット

ALU(Arithmetic Logic Unit)は代表的な演算ユニットで、

  • 論理演算
  • 加算・減算

を行います。

演算結果はアキュムレータに格納されます。

演算ユニット

コンピュータの世界は人間の世界とは違い2進数・16進数

  • 数字
  • 文字

を処理します。

つまり、演算処理は

  • 0
  • 1

で行われます。

  1. 2進数の機械語命令がメモリから読み込まれ
  2. デコーダを経て制御情報に変換
  3. 制御情報にに従って演算器が動作し
  4. 2進数で表現されたデータで演算
  5. 結果も2進数で出力されます

演算処理

2進数・10進数に関する記事はこちら

コンピュータが動く仕組み【2進数・10進数を理解する】
コンピュータが動く仕組み【2進数・10進数を理解する】 コンピュータが動く仕組みを知る為には、2進数を知る事でより理解が深まります。 コンピュータのエネルギー源は電気です。 コンピュータの中の電気が枯渇してしまう(バッテリー切...

ビット・バイト【bit・Byte】に関する記事はこちら

コンピュータが動く仕組み【ビット・バイト】
コンピュータが動く仕組み【ビット・バイト】 コンピュータが動く仕組みは2進数が基本です。 2進数についてはこちら 僕たちが普段生活している世界では10進数を使っているので、2進数はしっくりこないと思います。 ...

2進数

  • 0
  • 1

の区別は、コンデンサの電荷の有無で判断しています。

トランジスタがスイッチの役割を担っており、

  • スイッチをオン ➡️ コンデンサに電荷が貯まる。ある一定値以上に電荷がたまった状態・・・1
  • スイッチをオフ ➡️ コンデンサに電荷が貯まらない・・・0

と認識しています。

演算処理

トランジスタに関する記事はこちら

【図解あり】トランジスタの仕組みと役割
【図解あり】トランジスタの仕組みと役割 今や、日本人の成人のほとんどの方が所有しているスマートフォン。 日本では、Apple 社のiPhone シリーズのスマートフォンを持っている方が多いようです。 そのiPhoneのSoC(...

コンデンサに関する記事はこちら

【図解あり】コンデンサ(キャパシタ)の仕組みと役割
【図解あり】コンデンサ(キャパシタ)の仕組みと役割 現代の生活の中で、身の回りを見渡してみると スマートフォン コンピュータ 等々 の電子製品は、もはや手放すことの出来ない必需品です。 これらの電子製品は、 ...

レジスタ群

レジスタCPU内のメモリみたいなものです。

CPU内に、数個から数十個のレジスタがあり、内部バスや演算回路などと密接に結びついているため、高速に動作します。

レジスタ

レジスタは用途によって種類があります。

  • プログラムカウンタ(Program Counter)・・・
    メモリに記憶されたプログラム・データを読み書きする上で、次の「命令」を取り出すアドレスを記憶しておくレジスタ
    命令」の実行が終わるとプログラムカウンタの値は自動的にインクリメント(増加)されて,次のアドレスにある「命令」を指すようになります。

    プログラムカウンタ

  • ベースレジスタ(Base Register)・・・
    メモリに記憶されたプログラム・データを読み書きする上で、基準となるアドレス(一般には、プログラムの先頭アドレス)を保持するためのレジスタ
  • 指標レジスタ(Index Register)・・・
    メモリに記憶されたプログラム・データを読み書きする上で、基準となるアドレスからの増減値を記憶しておくレジスタ
  • 命令レジスタ(Instruction Register)・・・
    メモリから読みだした「命令」を記憶するレジスタ

    • 命令部・・・デコーダに渡される
    • アドレス部・・・ベースレジスタ指標レジスタと共に「命令」を実行する為に必要なデータのレジスタをオペランドアドレスの選択に使用

    に分かれています。

    オペランドアドレス・・・プログラムの先頭番地からのアドレス

  • アキュムレータ(Accumulator)・・・
    演算ユニットによって利用されるレジスタで、演算対象・演算結果を格納します。

    アキュムレータ

    • A・B・・・入力(オペランド)
    • R・・・演算結果
    • F・・・制御ユニットからの入力
    • D・・・出力ステータス

    をそれぞれ表しています。

  • 汎用レジスタ(General Register)・・・
    目的の定められていないレジスタ。通常は演算結果などを記憶するために使われます。

クロック

コンピュータ内にあるCPUを含めた主要装置は、コンピュータ内部の主要装置の動作の同期をとるために、一定の間隔でパルス(クロック信号)を発生させるクロックジェネレータと呼ばれる電子部品があります。

パルスの速さはクロック周波数と呼ばれています。

周波数・・・電気振動等の現象が、単位時間(ヘルツの場合は1秒)当たりに繰り返される回数のこと

クロック信号

CPUの基本動作

CPUの基本動作

皆さんが使用しているパソコン(パーソナル・コンピュータ)。

パソコンを使う際には、色々なアプリケーションを利用すると思います。

例えば、オフィス・ワークなら

  • Microsoft社のWordExcel
  • オープンソース・Libre OfficeText DocumentSpread Sheet

これらアプリケーションが起動する際には、CPUアプリケーションプログラムファイルを読み込み・処理しています。

CPUプログラムファイルを読み込み・処理するまでの一連の流れを

  1. 補助記憶装置からメモリへ格納
  2. フェッチ・デコード
  3. 実行
  4. 結果出力

に分けて説明します。

アプリケーション実行の流れ

補助記憶装置からメモリへ格納

プログラムファイルは、CPUに処理・実行させる「命令」の集合体です。

補助記憶装置である

  • HDD(Hard Disk Drive:ハードディスクドライブ)
  • SSD(Solid State Drive:ソリッド・ステート・ドライブ)

に保存されているプログラムファイルチップセットを通してメモリ上に格納します。

補助記憶装置からメモリへ格納

フェッチ・デコード

CPUは、メモリに格納されたプログラムファイルの「命令」を、順番に読み込んで実行しています。

メモリに格納されている「命令」を、

  1. 外部バスインタフェースを通して制御ユニットに読み込む(フェッチ: fetch)
  2. 制御ユニットにあるデコーダー(Decoder)で「命令」を
    • 演算情報なのか
    • 情報処理なのか

    という具体的な情報に解読(デコード: Decode)

  3. デコードされた「命令」は「制御情報」になります。

フェッチ: fetch・・・邦訳すると

  • 「取ってくる」
  • 「呼んでくる」

という意味です。

デコード: Decode・・・邦訳すると「暗号を解く」という意味です。

フェッチ・デコード

実行

演算ユニットでは

  • 制御ユニットの「制御情報
  • メモリから外部バスインタフェースを通して読み込まれた演算対象となるデータ

を使用します。

演算ユニットの中には

  • レジスタ・・・演算対象となるデータを格納(レジスタは複数存在)
  • 演算器・・・実際に演算を処理

が存在します。

演算ユニット演算器は「制御情報」の指示に従い、レジスタにあるデータに対し演算を行い、演算結果をレジスタに書き込みます。

実行

結果出力

レジスタに書き込まれた演算結果はメモリに出力されます。

結果出力

コメント

  1. […] CPU【Central Processing Unit】を分かりやすく説明するCPU【Central Processing Unit】を… […]

  2. […] CPU【Central Processing Unit】を分かりやすく説明するCPU【Central Processing Unit】を… […]

  3. […] CPU【Central Processing Unit】を分かりやすく説明するCPU【Central Processing Unit】を… […]

  4. […] CPU【Central Processing Unit】を分かりやすく説明するCPU【Central Processing Unit】を… […]

  5. […] CPU【Central Processing Unit】を分かりやすく説明するCPU【Central Processing Unit】を… […]

  6. […] CPU【Central Processing Unit】を分かりやすく説明するCPU【Central Processing Unit】を… […]

  7. […] CPU【Central Processing Unit】を分かりやすく説明するCPU【Central Processing Unit】を… […]