3ステージの命令パイプラインの例
3ステップ
命令フェッチ
メモリから命令を取ってくる
命令デコード
命令実行
例: 簡単なCPUの命令実行
table:メモリ
メモリアドレス バイナリ命令 ニーモニック表記 意味
0x1000 0xA1 LOAD A, 5 Aレジスタに 5 をロード
0x1002 0xB2 ADD A, 3 Aレジスタに 3 を加算
0x1004 0xC3 STORE A, 0x2000 Aレジスタの値を 0x2000 に保存
ステップ1: 命令フェッチ
PC = 0x1000
0x1000は最初の命令が入っているアドレス
メモリから命令を取得
IR(命令レジスタ) に 0xA1 を格納
code:_
PCを更新
次の命令アドレスに進む
次の命令アドレス (0x1002)を指す
code:_
PC ← PC + 2
ステップ2: 命令デコード
IR = 0xA1 なので、デコード結果は「Aレジスタに5をロード」
CPUが解釈して処理準備
ステップ3: 命令実行
Aレジスタに5をロード
code:_
A ← 5
次の命令(ADD A, 3)の処理
PC = 0x1002
フェッチ
IR に 0xB2 を格納
code:_
PCを更新
次の命令アドレス (0x1004)
code:_
PC ← PC + 2
デコード & 実行
code:_
A ← A + 3 ; A = 5 + 3 = 8