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は複数の汎用レジスタを持ちます。