CPUの仕組みとCPU構造・動作原理を図解で説明
CPU【Central Processing Unit】(以降、CPUと呼ぶ)は中央処理装置と呼ばれ、プログラムを解釈・実行してコンピュータ全体の動作を制御しています。
コンピュータの中央処理装置と聞くと複雑な処理を行っているように思われるかもしれませんが、実は
- 四則演算
- 論理演算
- 比較演算 等々
の単純な計算処理と基本的なデータの処理しか実行していません。
この記事では、
- CPUの構造
- CPUの動作原理
- 人気CPU
それぞれについて説明していきます。
CPUの構造
CPUの内部は
- 制御ユニット
- 演算ユニット
- レジスタ群
- クロック
で構成されています。
制御ユニット
制御ユニットの基本的な役割は
- CPU内の演算ユニットやレジスタの動作
- メモリ(主記憶装置:以降、メモリと呼ぶ)の読み書き・入出力 等
を制御する事です。
制御ユニットの中のデコーダは
- 命令レジスタの命令部をデコード(解読)
- 演算ユニットの中の演算回路の選択
を行います。
演算ユニット
ALU(Arithmetic Logic Unit)は代表的な演算ユニットで
- 論理演算
- 加算・減算
を行います。
演算結果はアキュムレータに格納されます。
コンピュータの世界は人間の世界とは違い2進数で
- 数字
- 文字
を扱うため、CPUの演算処理は
- 0
- 1
で行われます。
実際の演算処理の大まかな流れは
- 2進数の機械語命令がメモリから読み込まれ
- デコーダを経て制御情報に変換
- 制御情報にに従って演算器が動作
- 2進数で表現されたデータで演算
- 結果を2進数で出力
というようになります。
2進数に関する記事はこちら
2進数の
- 0
- 1
それぞれの区別は、コンデンサの電荷の有無で判断しています。
トランジスタがスイッチの役割を担っており、
- スイッチをオン -> コンデンサに電荷が貯まる。ある一定値以上に電荷がたまった状態・・・1
- スイッチをオフ -> コンデンサに電荷が貯まらない・・・0
となります。
トランジスタに関する記事はこちら
コンデンサに関する記事はこちら
レジスタ群
レジスタはCPU内のメモリみたいなものです。
CPU内に、数個から数十個のレジスタがあり、内部バスや演算回路などと密接に結びついているため、高速に動作します。
レジスタは用途によって色々な種類があります。
プログラムカウンタ
プログラムカウンタ(Program Counter)は、メモリに記憶されたプログラム・データを読み書きする上で、次の「命令」を取り出すアドレスを記憶しておくレジスタになります。
「命令」の実行が終わるとプログラムカウンタの値は自動的にインクリメント(増加)されて,次のアドレスにある「命令」を指すようになります。
ベースレジスタ
ベースレジスタ(Base Register)はメモリに記憶されたプログラム・データを読み書きする上で、基準となるアドレス(一般には、プログラムの先頭アドレス)を保持するためのレジスタになります。
指標レジスタ
指標レジスタ(Index Register)は、メモリに記憶されたプログラム・データを読み書きする上で、基準となるアドレスからの増減値を記憶しておくレジスタになります。
命令レジスタ
命令レジスタ(Instruction Register)とは、メモリから読みだした「命令」を記憶するレジスタになります。
命令レジスタは、
- 命令部・・・デコーダに渡される
- アドレス部・・・ベースレジスタ・指標レジスタと共に「命令」を実行する為に必要なデータのレジスタをオペランドアドレスの選択に使用
に分かれています。
アキュムレータ
アキュムレータ(Accumulator)は、演算ユニットによって利用されるレジスタで、演算対象・演算結果を格納します。
- A・B・・・入力(オペランド)
- R・・・演算結果
- F・・・制御ユニットからの入力
- D・・・出力ステータス
をそれぞれ表しています。
汎用レジスタ
汎用レジスタ(General Registerは目的の定められていないレジスタです。
通常は演算結果などを記憶するために使われます。
クロック
コンピュータ内にあるCPUを含めた主要装置は、コンピュータ内部の主要装置の動作の同期をとるために、一定の間隔でパルス(クロック信号)を発生させるクロックジェネレータと呼ばれる電子部品があります。
パルスの速さはクロック周波数と呼ばれています。
CPUの基本動作
パソコンを使う際、色々なアプリケーションを利用すると思います。
例えば、オフィス・ワークなら
- Microsoft社のWord・Excel
- オープンソース・Libre OfficeのText Document・Spread Sheet
これらアプリケーションが起動する際には、CPUがアプリケーションのプログラムファイルを読み込み・処理しています。
CPUがプログラムファイルを読み込み・処理するまでの一連の流れを
- 補助記憶装置からメモリへ格納
- フェッチ・デコード
- 実行
- 結果出力
に分けて説明します。
補助記憶装置からメモリへ格納
プログラムファイルは、CPUに処理・実行させる「命令」の集合体です。
補助記憶装置である
- HDD(Hard Disk Drive:ハードディスクドライブ)
- SSD(Solid State Drive:ソリッド・ステート・ドライブ) 等々
に保存されているプログラムファイルをチップセットを通してメモリ上に格納します。
フェッチ・デコード
CPUは、メモリに格納されたプログラムファイルの「命令」を、順番に読み込んで実行しています。
メモリに格納されている「命令」を、
- 外部バスインタフェースを通して制御ユニットに読み込む(フェッチ:fetch)
- 制御ユニットにあるデコーダー(Decoder)で「命令」が
- 演算情報なのか
- 情報処理なのか
具体的な情報に解読(デコード: Decode)
デコードされた「命令」は「制御情報」になります。
- 「取ってくる」
- 「呼んでくる」
という意味です。
デコード:Decode・・・邦訳すると「復号化」という意味です。
実行
演算ユニットでは
- 制御ユニットの「制御情報」
- メモリから外部バスインタフェースを通して読み込まれた演算対象となるデータ
を利用します。
演算ユニットの中には
- レジスタ・・・演算対象となるデータを格納(レジスタは複数存在)
- 演算器・・・実際に演算を処理
が存在し、演算ユニットの演算器は「制御情報」の指示に従い、レジスタにあるデータに対し演算を行い、演算結果をレジスタに書き込みます。
結果出力
レジスタに書き込まれた演算結果はメモリに出力されます。
人気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
についての説明になります。
コメント
図を頂戴させてもらってもよろしいでしょうか。
返信が遅くなり申し訳ございません。図に関して、ご自由に転載下さい。
管理人 米澤淳司 様
androidスマートフォンを使い一年弱、無線で欲しい情報の入手、アプリケーションソフトの使い勝手が良かったりと、感心していると、ハードは、どうなっているのか、興味を持ち、電子取扱説明書で仕様を見て、解らない単語が多いので、たすかります。まだ、見つけただけで、良く読んでいませんが、ショートカットを作って、必要な時に、直ぐ見られる様にしました。有難うございます。
水位 様
貴殿のお役に立てて幸いです。
コメントを下さり有難う御座います。