今回は、コンピューターを構成する5装置の一つであるCPUについて解説します。
CPUとは
CPUとは、中央勝利装置とも呼ばれるものでコンピューター内での演算処理を行っています。CPUはCentral Processing Unitの略です。人間でいうところの頭脳と例えられることが多いです。
CPUの性能
CPUの性能を評価するための重要な指標はいくつかありますが、ここでは2つ紹介します。
- コア数
- クロック周波数
コアとは、演算処理を行う部分で、コアの個数が多ければ多いほど複数の作業を得意とします。また、マルチコアであれば、作業量を複数のコアに分散させることが出来ます。そのため、1つのコアの作業量をシングルコアよりも削減でき、1コアあたりの発熱量や消費電力を抑えることが出来ます。仕事をする人の数という風に考えるとわかりやすいと思います。
クロック周波数はGHzで表され、1秒間にどれだけの処理が行えるかを表しています。そのため、クロック周波数が大きいほど処理速度が速くなりますが、電気使用量が多くなる傾向にあります。仕事をする人の仕事の速さと考えましょう。
CPUの動作原理
CPUは、プログラムから命令を受け取り、その命令を演算します。その演算を処理していく仕組みについて確認してきます。
まず、命令語について解説します。プログラムは、コンピューターに行わせる命令が集まったものです。そしてプログラム言語で記述された命令は、最終的にコンピューターが理解できる1と0の機械語に変換され、解読・実行されます。機械語の命令語は、ほとんどの場合が命令部とアドレス部で構成されます。命令部は、命令や演算を指示する部分です。アドレス部は、処理対象となるデータの主記憶上のアドレスなどを支持する部分です。
次に、命令語を処理していくレジスタについて解説します。レジスタとは、CPUに内蔵されている一時的な作業用メモリのことです。CPUが主記憶装置であるメモリから命令やデータを取り出して処理を行う際に、一時的にデータを保持しておくために設けられています。
レジスタには以下のようなものがあり、命令の実行時に使用します。
- 命令レジスタ
- 命令アドレスレジスタ
- 指標レジスタ
- 基底レジスタ
- アキュムレーター
- 汎用レジスタ
実行する命令を格納します。
次に実行する命令のアドレスを格納します。プログラムカウンタとも呼ばれます。
基準となるアドレスを格納します。指標アドレス指定方式で使用します。
基準となるアドレスを格納します。基底アドレス指定方式で使用します。
演算対象や演算結果を格納します。累算器とも呼ばれます。
演算対象や演算結果を格納します。そのほか各種の目的に使用します。
コンピューターが一つの命令を実行するとき、CPUと主記憶の間でいくつかの段階を踏みます。命令部とアドレス部のそれぞれでどのように処理されているかを意識するとわかりやすいと思います。
- 命令の取り出し
- 命令の解読
- 実効アドレス計算
- オペランドの取り出し
- 命令の実行
- 演算結果の格納
まずは命令アドレスレジスタを参照して、命令が格納されている主記憶上のアドレスを取得します。取得したアドレスから命令を取り出し、命令レジスタに格納します。要は、主記憶からCPUに命令を読み込みます。
つぎに、読み込んだ命令の命令部をCPU内で解読します。解読は、デコーダと呼ばれる解読器で行われます。
一方、読み込んだ命令のアドレス部の値は、アドレスレジスタに送られ、処理対象のデータが格納されているアドレスを計算します。
その後、処理対象のデータを取り出し、演算装置に送ります。
この時点で、命令と対象のデータをそれぞれ取り出せているので、あとは実行します。
最後に演算結果をCPUから主記憶に格納して終了です。
ここまでの処理のうち、命令の実行・演算結果の格納は演算装置としての役割、それ以外の処理は制御装置としての役割です。
キャッシュメモリ
CPUには、データアクセスの速度を向上させるためのキャッシュメモリが搭載されています。キャッシュメモリは、CPU内部にある高速なメモリであり、頻繁に使用されるデータや命令を一時的に保存します。これにより、CPUがデータを主記憶装置から直接取得するよりも速くアクセスできるようになります。キャッシュメモリには、レベル1(L1)、レベル2(L2)、レベル3(L3)といった階層があります。L1キャッシュは最も高速で小容量、L3キャッシュはL1とL2に比べて遅いですが大容量です。
先ほどのレジスタと似ていますが、目的や位置などが異なります。
レジスタの目的は即時のデータ処理であり、キャッシュメモリの目的はメモリアクセス時間の短縮です。CPUは通常、主記憶装置からデータを読み込むところを、キャッシュメモリから読み込むことでメモリアクセス時間の短縮を行っています。またレジスタはCPUコア内部、キャッシュメモリはCPUダイに統合されています。
私が使用しているWindowsPCを例にキャッシュメモリを確認してみます。
Ctrl+Shift+Escを同時押しします。
そして、パフォーマンスからCPUを選択します。
キャッシュの大小関係も確認できました。
CPUの発熱と冷却
CPUは、高速で大量の計算を行うため、大量の熱を発生します。適切な冷却がないと、CPUが過熱し、性能低下やシステムの安定性に影響を与える可能性があります。冷却方法には、空冷、液冷、さらにはヒートシンクなどがあります。空冷はファンを使ってCPUを冷却する方法で、液冷は液体を使って熱を分散させる方法です。ヒートシンクは、熱を効果的に拡散するための金属製の部品で、冷却効率を高めるために使用されます。
仮想化技術
仮想化技術は、1つの物理CPUを複数の仮想CPUに分割し、複数のOSやアプリケーションを同時に実行できるようにする技術です。これにより、システムリソースの利用効率が向上し、柔軟なシステム運用が可能になります。仮想化は、特にサーバー環境やクラウドコンピューティングで重要な役割を果たします。ハイパーバイザと呼ばれるソフトウェアが、物理ソースを抽象化し、仮想マシンに対して適切なリソースを割り当てる役割を担います。
CPUアーキテクチャ
CPUのアーキテクチャとは、CPUの設計や命令セットを指します。代表的なアーキテクチャには、x86、x86-64、ARMがあります。
x86アーキテクチャは、主にデスクトップやノートパソコンで使用され、x86-64は64ビット版のx86です。
ARMアーキテクチャは、モバイルデバイスや組み込みシステムで広く使用されており、低消費電力が特徴です。
各アーキテクチャには、それぞれの用途に応じた利点があります。
まとめ
今回はコンピューターの5台装置の一つであるCPUについて解説しました。
CPUの性能指標や、動作原理、キャッシュメモリなど以外にも、OSなど様々なシステムと密接に連動しているのがCPUです。
このサイトでは、ITに関する記事を投稿しています。ぜひ他の記事もご覧ください。