CPUコアの構造と役割:フェッチ・デコードユニットとは

CPUコアとは
コアとは「CPU内にある処理ユニット」で、命令・データを処理する機能を持ちます。1つのコアが1つのタスクを実行できるため、コア数が多いほど同時に複数の処理が可能です。
下図はCPUの核となるダイの画像です。ダイとは「シリコン基板上に形成された半導体チップ(集積回路,IC)」です。
CPU内部のダイには、様々な役割を持つ回路が形成されています。中でも、実際に計算処理を行う頭脳部が「コア」です。
このCPUには4つのコアが存在しています(クアッドコア)。各コアは数億~数十億のトランジスタから構成されています。1つのトランジスタはウイルスよりも小さく、非常に微細な回路が無数に形成されています。同じコアサイズであれば、回路が微細なほど多くのトランジスタを形成することができるため、CPUの性能が向上します。
CPUコアの構造
下図はコアを詳細に見た模式図です。
コア内部のトランジスタ群にはそれぞれ役割があり、ユニットと呼ばれます。コア内には以下のような様々なユニットがあります。
- 命令フェッチユニット (Instruction Fetch Unit)
- 命令デコードユニット (Instruction Decode Unit)
- 実行ユニット (Execution Units)
- キャッシュメモリ (Cache Memory)
- コントロールユニット (Control Unit)
- バスインターフェース (Bus Interface Unit, BIU)
- PLL (Phase-Locked Loop)
各ユニットの役割を解説します。
コアユニットの役割
命令フェッチユニット (Instruction Fetch Unit)
- 役割
- 詳細
プログラムの命令をメモリ(キャッシュやRAM)から読み取る
実行すべき命令のアドレスを保持し、次の命令を素早く取得してCPU内に供給します。命令キャッシュ(L1 Instruction Cache)を利用して高速化を図ります。
命令デコードユニット (Instruction Decode Unit)
- 役割
- 詳細
フェッチされた命令を解釈し、実行可能な形式(マイクロオペレーション)に変換する
複雑な命令を小さな単位に分解し、実行ユニットが理解できる形にします。これにより、CPUの効率的な処理が可能になります。
実行ユニット (Execution Units)
- 役割
- 種類と詳細
- ALU(算術論理演算装置):数値計算や論理演算を行います
- FPU(浮動小数点演算装置):高精度な浮動小数点演算を処理します
- その他:特化したユニット(暗号処理やAI用ユニットなど)が含まれる場合もあります
デコードされた命令を基に、実際の計算や操作を実行するユニット
キャッシュメモリ (Cache Memory)
- 役割
- 詳細
よく使用されるデータや命令を一時的に保存し、高速なデータアクセスを可能にするメモリ
キャッシュには階層構造(L1, L2, L3)があり、L1は最も高速でコア専用、L3は複数のコアで共有される場合が多いです。メモリから直接データを取るよりも高速な処理を実現します。
コントロールユニット (Control Unit)
- 役割
- 詳細
CPU内のすべてのユニットを制御し、指揮を取る
デコードされた命令に基づいて、どのユニットが動作するかを指示します。また、各ユニット間のタイミングを調整して、効率的な処理を可能にします。
バスインターフェース (Bus Interface Unit, BIU)
- 役割
- 詳細
- メインメモリからデータを取得する。
- 処理結果を外部メモリやI/Oデバイスに送る。
- 他のコアやチップとの通信も担当します。
CPUと外部メモリ(RAM)や周辺機器を接続し、データの送受信を行う窓口
PLL (Phase-Locked Loop)
- 役割
- 詳細
CPUの動作クロックを安定して供給する
外部クロック信号を基に、内部クロックを生成・調整します。これにより、CPUが正確なタイミングで動作することを保証します。オーバークロックや省電力モード時の動作周波数の調整にも関与します。