コンピューターアーキテクチャ

命令サイクル

CPUは命令の取得、解釈、実行を繰り返します。レジスタ間の移動を順に確認してください。

簡単なCPUの命令サイクル

1. プログラムを選択

2. 順に実行

矢印は値の移動、オレンジの枠は変更箇所、▶はPCの示す次の命令です。

PC次の命令アドレス
IR現在の命令
MARアクセス先
MDR転送データ
ACC計算結果

フェッチは全命令で共通

PC→MAR、メモリ→MDR、MDR→IRと進み、PCを増やします。実行段階は命令ごとに異なり、ジャンプはPCを書き換えて次の取得先を変えます。

メモリアクセスのコスト

命令取得に加え、LOAD/ADD/STOREはデータにもアクセスします。主記憶はレジスタより遅いため、 キャッシュや、命令処理を重ねる パイプラインを使います。

このCPUの命令

LOAD a ACC ← M[a], ADD a ACC ← ACC + M[a], SUB a ACC ← ACC − M[a], STORE a M[a] ← ACC, JZ a はACC=0ならPC←a、 JMP a PC ← a, HALT は停止です。ACCを中心に計算する構造をアキュムレータ方式と呼びます。実CPUは複数の汎用レジスタを持ちます。