CPUの仕組みとCPU構造・動作原理を図解で説明

CPUの仕組みとCPU構造・動作原理を図解で説明




CPUの仕組みとCPU構造・動作原理を図解で説明

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

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

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

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

この記事では、

  • CPUの構造
  • CPUの動作原理
  • 人気CPU

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

CPUの構造

CPUの構造

CPUの内部は

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

で構成されています。

CPUの構造

制御ユニット

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

  • CPU内の演算ユニットやレジスタの動作
  • メモリ(主記憶装置:以降、メモリと呼ぶ)の読み書き・入出力 等

を制御する事です。

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

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

を行います。

制御ユニット

演算ユニット

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

  • 論理演算
  • 加算・減算

を行います。

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

演算ユニット

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

  • 数字
  • 文字

を扱うため、CPUの演算処理は

  • 0
  • 1

で行われます。

実際の演算処理の大まかな流れは

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

というようになります。

演算処理

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

【図解】2進数・10進数とは?2進数から10進数に変換
【図解】2進数・10進数とは?2進数から10進数に変換 普段の私たちの生活では10進数を利用する事が多いため、2進数に馴染みがないかもしれません。 しかし、2進数を知る事で、現代には欠かす事の出来ないコンピュータが動く仕組みが理解が出来ます...

2進数の

  • 0
  • 1

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

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

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

となります。

演算処理

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

【図解】トランジスタとは?トランジスタの仕組み・役割
【図解】トランジスタとは?トランジスタの仕組み・役割 現代の生活で欠かすことの出来ないスマートフォン。 日本では、Apple社のiPhoneシリーズが人気です。 そのiPhoneのSoC(System-on-a-Chip)に搭載されているト...

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

コンデンサとは?コンデンサの仕組み・回路記号と容量
コンデンサとは?コンデンサの仕組み・回路記号と容量 コンデンサは スマートフォン コンピュータ 等々 の電子製品には必ず内蔵されており、電子回路の基本となる電子部品です。 コンデンサ(独:Kondensator)という言葉自体はドイツ語で、...

レジスタ群

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

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

レジスタ

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

プログラムカウンタ

プログラムカウンタ(Program Counter)は、メモリに記憶されたプログラム・データを読み書きする上で、次の「命令」を取り出すアドレスを記憶しておくレジスタになります。

「命令」の実行が終わるとプログラムカウンタの値は自動的にインクリメント(増加)されて,次のアドレスにある「命令」を指すようになります。

プログラムカウンタ

ベースレジスタ

ベースレジスタ(Base Register)はメモリに記憶されたプログラム・データを読み書きする上で、基準となるアドレス(一般には、プログラムの先頭アドレス)を保持するためのレジスタになります。

指標レジスタ

指標レジスタ(Index Register)は、メモリに記憶されたプログラム・データを読み書きする上で、基準となるアドレスからの増減値を記憶しておくレジスタになります。

命令レジスタ

命令レジスタ(Instruction Register)とは、メモリから読みだした「命令」を記憶するレジスタになります。

命令レジスタは、

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

に分かれています。

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

アキュムレータ

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

アキュムレータ

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

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

汎用レジスタ

汎用レジスタ(General Registerは目的の定められていないレジスタです。

通常は演算結果などを記憶するために使われます。

クロック

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

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

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

クロック信号

CPUの基本動作

CPUの基本動作

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

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

  • Microsoft社のWord・Excel
  • オープンソース・Libre OfficeのText Document・Spread Sheet

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

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

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

に分けて説明します。

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

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

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

補助記憶装置である

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

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

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

フェッチ・デコード

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

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

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

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

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

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

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

という意味です。

デコード:Decode・・・邦訳すると「復号化」という意味です。

フェッチ・デコード

実行

演算ユニットでは

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

を利用します。

演算ユニットの中には

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

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

実行

結果出力

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

結果出力

人気CPU

人気CPU

2020年6月時点における人気CPUベスト3は

  • Ryzen 5 1600 (AF)
  • Ryzen 3 3300X
  • Ryzen 5 3600

になります。

Ryzen 5 1600 (AF)

スペック
メーカーAMD
プロセッサ名Ryzen 5 1600 (AF)
世代第2世代
ソケット形状Socket AM4
コア数6
クロック周波数3.2GHz
最大動作クロック周波数3.6 GHz
スレッド数12
マルチスレッド
二次キャッシュ3MB
三次キャッシュ16 MB

Ryzen 3 3300X

スペック
メーカーAMD
プロセッサ名Ryzen 3 3300X
世代第3世代
ソケット形状Socket AM4
コア数4
クロック周波数3.8GHz
最大動作クロック周波数4.3 GHz
スレッド数8
マルチスレッド
二次キャッシュ2MB
三次キャッシュ16 MB

Ryzen 5 3600

スペック
メーカーAMD
プロセッサ名Ryzen 5 3600
世代第3世代
ソケット形状Socket AM4
コア数6
クロック周波数3.6GHz
最大動作クロック周波数4.2 GHz
スレッド数12
マルチスレッド
二次キャッシュ3MB
三次キャッシュ32MB

以上、

  • CPUの構造
  • CPUの動作原理
  • 人気CPU

についての説明になります。

コメント

  1. チューイン より:

    図を頂戴させてもらってもよろしいでしょうか。

  2. 水位 より:

    管理人 米澤淳司 様
      androidスマートフォンを使い一年弱、無線で欲しい情報の入手、アプリケーションソフトの使い勝手が良かったりと、感心していると、ハードは、どうなっているのか、興味を持ち、電子取扱説明書で仕様を見て、解らない単語が多いので、たすかります。まだ、見つけただけで、良く読んでいませんが、ショートカットを作って、必要な時に、直ぐ見られる様にしました。有難うございます。