CPU(中央処理装置)とは?仕組み・動作・クロックや主要メーカーを分かりやすく解説
CPUの仕組み・動作、クロック速度の意味、主要メーカー(Intel・AMD・ARM等)を図解と例でやさしく解説する初心者向け入門ガイド。
中央処理装置(CPU)は、すべてのコンピュータの中心的な部品で、プログラムからの命令を読み取り、それを実行してコンピュータ全体の動作を制御します。CPUは演算や制御の役割を担い、メモリや入出力装置、周辺機器と協調して動作します。
CPUの基本的な仕組み
CPUは、命令(コンピュータが実行する処理の指示)の列を順に処理する電子回路です。命令はメモリ上に置かれ、CPUはそれらを取り出して解釈し、実行します。一般にこの一連の流れは「フェッチ(取得)→デコード(解読)→実行(実施)」というサイクルで説明されます。
主な構成要素
- 演算論理装置(ALU):加算や論理演算などの実際の計算を行う部分。
- 制御装置(CU):命令の解釈とCPU全体の制御を行う部分。
- レジスタ:高速な一時記憶領域で、計算中のデータやアドレスを保持します。
- キャッシュ:CPUとメインメモリ(RAM)間の速度差を埋めるための高速メモリ(L1/L2/L3などの階層があります)。
- バス:データやアドレス、制御信号をやり取りする回路路。
フェッチ・デコード・実行(実際の動作)
CPUはプログラムカウンタ(次に実行する命令の番地を示す)を使って命令を順にフェッチし、命令をデコードしてどの演算を行うか決め、必要ならメモリからデータを読み込み、ALUで実行します。命令の種類によってはメモリへの書き込みや入出力制御も行います。これが極めて短いサイクルで連続して繰り返されることでプログラムが動作します。
クロックと性能
クロックレート(内部部品の動作速度)は、ヘルツ(Hz)で表されます。最近のCPUでは通常ギガヘルツ(GHz)が使われ、1GHzは1秒間に1,000,000,000回のサイクルである。 ただし「クロックが速ければ必ず速い」というわけではありません。性能はクロック周波数に加えて、1クロックあたりに処理できる命令数(IPC: Instructions Per Cycle)、コア数、キャッシュ容量、メモリの速度やレイテンシー、マイクロアーキテクチャの効率など複数の要因で決まります。
コア・スレッド・並列処理
現代のCPUは複数の処理ユニット(コア)を持つことが一般的で、それぞれが独立に命令を実行できます。また、1コア内で疑似的に複数のスレッドを同時に扱うSMT(ハイパースレッディングなど)技術により、並列処理性能を向上させることができます。マルチコア化は同時に多くの作業をこなす用途(マルチタスク、サーバー、動画編集、科学計算など)で特に効果を発揮します。
キャッシュとメモリの関係
CPUはメインメモリ(RAM)よりもはるかに高速に動作するため、頻繁に使用されるデータや命令をキャッシュに保持して、アクセス時間を短縮します。一般的にL1は最も高速で小容量、L2は中容量、L3は大容量でやや遅い、という階層構造になっています。キャッシュミスが発生するとメモリから読み込む必要があり、これが性能低下の一因になります。
消費電力と発熱、製造プロセス
高性能化は消費電力と発熱の増加を伴います。これを抑えるために、CPUは消費電力を最適化する省電力設計や動的にクロック/電圧を変える機能(ターボブーストや省電力モード)を備えています。製造ではトランジスタの微細化(例:ナノメートル単位のプロセスルール)が進み、より多くのトランジスタを小さいチップに詰めることで性能向上と省電力を両立しています。
命令セット(ISA)とマイクロアーキテクチャ
CPUは特定の命令セットアーキテクチャ(ISA)に従って命令を解釈します。代表的なISAにはx86(デスクトップ/サーバー向け)とARM(モバイル・組み込み向け)があります。同じISAでもマイクロアーキテクチャ(内部設計)によって性能や電力効率は大きく変わります。
用途別の特徴
- デスクトップ/ノートPC:高い単体性能とマルチコア性能のバランスが重要。
- サーバー:多数コア、高いメモリ帯域、信頼性(ECC対応)などが求められる。
- モバイル(スマホ/タブレット):省電力と発熱制御が最優先、SoC(システム・オン・チップ)化が進む。
- 組み込み機器:用途に特化した低消費電力やリアルタイム性能が重視される。組み込みシステムで広く利用される。
主なメーカーと市場の状況
デスクトップやノート向けでは、従来から多く使われている企業に、インテルやアドバンスト・マイクロ・デバイセズ(AMD)があります。これらはx86系のマイクロプロセッサ(マイクロプロセッサ)を設計・製造しています。
モバイルや組み込み向けには、設計を行うARM(ARMアーキテクチャのライセンス提供者)を採用した多くのメーカー(Qualcomm、MediaTek、Samsung、Appleなど)が存在します。サーバー向けには、IBM(Powerアーキテクチャ)や、近年はARMベースの製品や特殊用途向けのチップを提供する企業も増えています。
かつてGPU分野で知られた企業としてはATI Technologiesなどがありましたが、ATIはAMDに統合されるなど業界再編もあります。現在は各社がCPUとGPUを統合したSoCや、AI向けの専用アクセラレータを搭載するなど用途に合わせた多様な製品を展開しています。
まとめ(重要ポイント)
- CPUはプログラムを実行し、コンピュータ全体を制御する中心部品です。
- 性能はクロック周波数だけでなく、IPC、コア数、キャッシュ、メモリ性能、アーキテクチャ設計で決まります。
- 用途に応じて最適なCPU(高クロックのコア、多数コア、省電力設計など)を選ぶことが重要です。

コンピュータ内部のペンティアムCPU
CPUの種類
20世紀には、エンジニアがさまざまなコンピュータアーキテクチャを発明しました。現在、ほとんどのデスクトップコンピュータは32ビットCPUか64ビットCPUを使用しています。32ビットCPUの命令は、32ビットサイズのデータを扱うのが得意です(32ビットCPUでは、ほとんどの命令が32ビットで「考える」ようになっています)。同様に、64ビットCPUは64ビットのサイズのデータを扱うのが得意です(32ビットのデータを扱うのも得意な場合が多いです)。CPUが最も得意とするデータの大きさは、CPUのワードサイズと呼ばれることが多い。70年代、80年代、90年代前半の古いCPUの多く(そして現代の多くの組み込みシステム)は、8ビットまたは16ビットのワードサイズを持っています。20世紀半ばにCPUが発明されたとき、それらは多くの異なるワードサイズを持っていました。中には、命令とデータのワードサイズが異なるものもありました。あまり一般的ではないワードサイズは、後に使用されなくなりました。
ほとんどのCPUはマイクロプロセッサです。つまり、CPUはシングルチップにすぎません。マイクロプロセッサを内蔵したチップの中には、他のコンポーネントも含まれており、完全なシングルチップの「コンピュータ」となっているものもあります。これをマイクロコントローラと呼びます。
レジスター
CPUがコンピュータプログラムを実行する際には、命令が操作するデータ(読み書きするデータ)をどこかに格納する必要があります。この格納場所のことをレジスタと呼びます。CPUは通常、多くのレジスタを持っています。レジスタは、アクセス(読み書き)が非常に速くなければなりません。そのため、それらはCPUチップ自体の一部となっています。
メモリ
すべてのデータをレジスタに格納することは、ほとんどのCPUを複雑にしすぎます(そして非常に高価です)。そのため、レジスタは通常、CPUが「今」作業しているデータのみを保存します。プログラムが使用する残りのデータは、RAM(メモリ)に格納されます。マイクロコントローラを除いて、RAMは通常、CPUの外にある別のチップに格納されています。
CPUは、RAM内のデータを読み書きしたいときに、そのデータに対するアドレスを出力します。RAM内の各バイトにはメモリアドレスがあります。アドレスの大きさは、ワードサイズと同じであることが多いです。32ビットのCPUでは32ビットのアドレスを使用します。しかし、8ビットCPUのような小さなCPUでは、ワードサイズよりも大きなアドレスを使用することがよくあります。そうしないと、プログラムの最大長が短くなりすぎてしまいます。
アドレスのサイズが制限されているため、メモリの最大量も制限されています。32 ビットプロセッサは通常、4 GB の RAM までしか処理できません。これは、32 ビット アドレスを使用して選択できるさまざまなバイト数です (各ビットには 0 と 1 の 2 つの値があり、232 バイトは 4 GB です)。64 ビットのプロセッサでは、最大 16 EB の RAM (16 エクサバイト、約 160 億 GB、または 160 億バイト) を扱うことができるかもしれません。オペレーティングシステムは、より少ない量を使用するためにそれを制限するかもしれません。
RAMに格納されている情報は、通常、揮発性です。つまり、コンピュータの電源が切れてしまうと消えてしまうということです。
キャッシュ
最近のコンピュータでは、RAMはレジスタよりもはるかに遅いため、RAMにアクセスするとプログラムが遅くなります。メモリアクセスを高速化するために、RAMとCPUの主要部分の間にキャッシュと呼ばれる高速なタイプのメモリを入れることがよくあります。キャッシュは通常、CPUチップ自体の一部であり、RAMよりも1バイトあたりのコストが高い。キャッシュはRAMと同じデータを格納していますが、通常ははるかに小さいです。そのため、プログラムが使用するすべてのデータがキャッシュに収まらない場合があります。キャッシュは、使用頻度の高いデータを保存しようとします。例としては、最近使用したデータや、最近使用したデータにメモリ内で近いデータなどが挙げられます。
RAMのキャッシュを持つことに意味があるように、「キャッシュのためのキャッシュ」を持つことに意味があることがよくあります。多値キャッシュでは、L1キャッシュ、L2キャッシュなどと呼ばれる多くのキャッシュが存在します。L1キャッシュは、最も高速(バイトあたりのコストが最も高い)なキャッシュで、CPUに「最も近い」キャッシュです。L2キャッシュは一歩離れたところにあり、L1キャッシュなどよりも遅い。L1キャッシュは、L2キャッシュなどのキャッシュとして見られることが多いです。
バス
コンピュータバスとは、CPUがRAMやコンピュータ内の他のコンポーネントと通信するために使用する配線のことです。ほとんどのCPUには、少なくともデータバス(データの読み書きに使用)とアドレスバス(アドレスの出力に使用)があります。CPU内部の他のバスは、CPUのさまざまな部分にデータを運んでいます。
命令セット
命令セット(ISA - Instruction Set Architectureとも呼ばれる)は、特定のCPUによって直接理解される言語です。これらの言語は、マシンコードやバイナリとも呼ばれます。これらの言語は、メモリからレジスタにデータをロードしたり、2 つのレジスタの値を加算したりするなど、CPU にさまざまなことをさせる方法を説明しています。命令セットの各命令にはエンコーディングがあり、これは命令がどのようにビットの列として書かれているかを示しています。
CやC++などのプログラミング言語で書かれたプログラムは、CPUが直接実行することはできません。CPUが実行する前にマシンコードに翻訳しなければなりません。コンパイラはこの翻訳を行うコンピュータプログラムです。
マシンコードは0と1が並んでいるだけなので、人間が読むのは難しい。より読みやすくするために、マシンコードプログラムは通常、アセンブリ言語で書かれています。アセンブリ言語では、0と1の代わりにテキストを使用します。例えば、値 0 をレジスタ A にロードするために "LD A,0" と書くかもしれません。アセンブリ言語をマシンコードに変換するプログラムをアセンブラと呼びます。
機能性
CPUができる基本的なことをご紹介します。
- メモリからデータを読み込み、メモリにデータを書き込む。
- 1つの数字を別の数字に足していきます。
- ある数字が他の数字よりも大きいかどうかをテストします。
- ある場所から別の場所へ番号を移動します(例えば、あるレジスタから別のレジスタへ、またはレジスタとメモリの間など)。
- 命令リストの別の場所にジャンプしますが、何らかのテストが真である場合に限ります(例えば、ある数値が他の数値よりも大きい場合に限ります)。
非常に複雑なプログラムであっても、このような簡単な命令をたくさん組み合わせて作ることができます。これが可能なのは、一つ一つの命令が非常に短い時間で起こるからです。今日の多くのCPUは、1秒間に10億(1,000,000,000)以上の命令を実行することができます。一般的に、CPUが所定の時間内にできることが多いほど、高速であることがわかります。プロセッサの速度を測る一つの方法として、MIPS (Million Instructions Per Second)があります。フロップス(1 秒あたりの浮動小数点演算)や CPU のクロック速度(通常はギガヘルツで測定)も、プロセッサがある時間内にどれだけの作業を行うことができるかを測定する方法の一つです。
CPUはロジックゲートで構成されており、可動部分はありません。コンピュータのCPUは、ビデオカードやBIOSのようなコンピュータの他の部分と電子的に接続されています。コンピュータプログラムは、コンピュータのメモリ内の特別な場所に数字を読み書きすることで、これらの周辺機器を制御することができます。
命令パイプライン
CPUが実行する各命令は、通常、多くのステップで実行されます。例えば、単純なCPUで「INC A」(レジスタAに格納されている値を1つ増やす)という命令を実行するためのステップは次のようになります。
- メモリから命令を読み出す。
- 命令をデコードして(命令が何をするのかを把握して)
- Aを登録するために1つ追加します。
CPUの異なる部分は、これらの異なることを行っています。多くの場合、異なる命令からのいくつかのステップを同時に実行することが可能で、CPUを高速化することができます。例えば、メモリからある命令を読み出すと同時に、別の命令をデコードすることができます。これは、多くの命令を一度に「パイプラインの中に」持っていると考えることができます。最良のケースでは、すべてのモジュールが一度に異なる命令を処理していますが、これは必ずしも可能ではありません。
メモリ管理ユニット(MMU)と仮想メモリ
最近のCPUは、多くの場合、メモリ管理ユニット(MMU)を使用しています。MMUは、CPUからのアドレスを(通常は)異なるRAMアドレスに変換するコンポーネントです。MMUを使用する場合、プログラムで使用されるアドレスは、データが格納されている「実際の」アドレスではありません。これを仮想(「本物」の反対)メモリと呼びます。MMUを持つことが良い理由のいくつかを以下に挙げます。
- MMUは、プログラムから他のプログラムのメモリを「隠す」ことができます。これは、プログラムが実行されている間、いかなるアドレスも「隠された」アドレスに変換しないことによって行われます。これは、プログラムが他のプログラムのメモリを読み取ったり変更したりできないことを意味するので、セキュリティと安定性が向上します。(プログラムはお互いを「スパイ」したり、「お互いのつま先を踏んだり」することはできません)。
- 多くのMMUは、メモリの一部を書き込み不可、読み込み不可、または実行不可にすることができます(メモリのその部分に格納されているコードを実行できないことを意味します)。これは、安定性やセキュリティ上の理由の他に、他の理由でも良いことがあります。
- MMUは、異なるプログラムが異なるメモリの「ビュー」を持つことを可能にします。これは様々な状況で便利です。例えば、プログラムの「メイン」コードを他のプログラムと衝突することなく、常に同じ(仮想的な)アドレスに置くことが可能になります。また、プログラム間で共有されている(ライブラリからの)コードの多くの異なる部分がある場合にも便利です。
- MMUは、プログラムを実行するたびにライブラリのコードを異なるアドレスで表示することを可能にします。これは、メモリ内のどこに何があるかを知らないと、ハッカーがプログラムを悪さをするのが難しくなることが多いので、良いことです。これはアドレス空間のランダム化と呼ばれています。
- 高度なプログラムやオペレーティングシステムでは、MMUを使ったトリックを使用して、メモリ内の異なる場所間でデータをコピーする必要がないようにすることができます。
複数のコア
マルチコアプロセッサは、21世紀初頭に一般的になりました。これは、同じチップに多くのプロセッサを搭載して、一度に多くの命令を実行できるようにしたことを意味します。一部のプロセッサは、AMD Epyc 7601 のように最大 32 個のコアを持つことがあります。
メーカー
コンピュータのCPUを作っているのは以下の会社です。
- アーム
- インテル
- 先端マイクロデバイス
- エムシーエスティー
- しゅりょくしゅみんきょうかい
- サンマイクロシステムズ
その他の情報
質問と回答
Q: CPUとは何ですか?
A: CPU(Central Processing Unit)は、全てのコンピュータの重要な部分です。脳が身体をコントロールするのと同じように、コンピュータの他の部分を制御するための信号を送ります。CPUは、特定のタスクを実行するための命令リストに基づいて動作する電子機械です。
Q:CPUはどのように動作するのですか?
A:CPUは命令のリストを読み、一つ一つを順番に実行(実行)していきます。CPUが実行できる命令のリストがコンピュータプログラムです。
Q:CPUのクロックレートや速度は何で測られるのですか?
A:CPUの内部部品のクロックレートや速度はヘルツ(Hz)で測定されます。最近のプロセッサは非常に高速に動作するため、代わりにギガヘルツ(GHz)が使用されることが多く、1GHzは1秒間に1,000,000,000回のサイクルを表します。
Q:CPUを製造している会社にはどのようなものがありますか?
A:インテル、アドバンスト・マイクロ・デバイス(AMD)、ARM(最近Nvidiaが買収)、IBM、そして現在市場をリードしているATIテクノロジーズのAMDがCPUを製造しています。
Q:CPUはどこで使われることが多いのですか?
A:デスクトップPCに使われているCPUは、ほとんどがインテルかAMDのマイクロプロセッサで、その他は携帯電話や自動車、ゲーム機、軍事用途など、より特殊なものの組み込みシステムで使われています。
百科事典を検索する