計算機構成論 (Chap 4) @C401
計算機構成論 (Chap. 4) @C401
http://www.ngc.is.ritsumei.ac.jp/~ger/Lectures/CompArch2012/index.html
(user=ganbare, passwd = 初回の講義で言いました)
講義に出るなら、分からないなら質問しよう。
単位を取りたいなら、章末問題は自分で全部といておこう
(レポートと考えればいいんです!)
ご意見、ご要望、ご質問は、
山下個人か [email protected]
(レポ
トと考えればいいんです!)
山下 茂
山下個人か
受講者全員
にメールください。
[email protected]
[email protected]
0
情報システム学科
次世代コンピューティング研究室
山下 茂
Chap. 4のセルフチェック
以下の文章の意味がわからないなら、今から,寝ないで
聞いてみましょう。
聞いてみましょう。
27
パイプライン処理は流れ作業に良くたとえられる。
28
パイプライン処理によりスループットは良くなるが、レイテンシは良くならない。
29
MIPSのパイプライン ステ ジは 5 ある
29
MIPSのパイプライン・ステージは、5つある。
30
パイプラインのステージ間で情報を伝えるために、パイプライン・レジスタが必要。
31
パイプライン方式の制御線の値は単一サイクルの時と基本的に同じである。
32
パイプライン方式の制御線の値は必要があればパイプラインレジスタ経由で伝播する。
イプライ 方式 制御線 値は必要があれば イプライ
ジ タ経由で伝播する。
1
What to learn
•
パイプラインの概要とマルチサイクルとの違い
•
パイプラインの各ステージの詳細
Next Topic
イプラインの各ステ
ジの詳細
1. IF ステージ
(命令フェッチ)
2. ID ステージ
(命令デコードとレジスタフェッチ)
2. ID ステ
ジ
(命令デコ
ドとレジスタフェッチ)
3. EXステージ
(命令実行 or アドレス生成)
4
MEMステージ(データ・メモリ・アクセス)
4. MEMステ
ジ(デ
タ
メモリ
アクセス)
5. WBステージ
(書き込み)
•
パイプライン全体の動作(上記が同時並列的に動作)
•
パイプライン全体の動作(上記が同時並列的に動作)
•
パイプラインの制御
各命令
実行を
サイク
行う とを 複数
各命令の実行をマルチサイクルで行うことを、複数の
命令に対して1サイクルずらして同時並列実行
教材
教科書4 5章と4 6章
2
教材:教科書4.5章と4.6章
マルチサイクルの考え方
Chap3の復習
命令タイプ 命令メモリ レジスタ+α ALU操作 データ・メモリ レジスタ+α合計時間
R形式
形式
150
100
100
100
450
語のロード
150
100
100
150
100
600
語のストア
150
100
100
150
500
分岐
150
100
100
350
ジャンプ
150
150
クロックを150psにしてもいいかも!
New Idea
p
各サイクルで、ALUやメモリは一つでいい!(メリット②)
But, 各サイクルの最後に、(次のサイクルで必要となるデータ)を覚えるための
レジスタが必要となる。(これが理解できれば、マルチサイクルが分かったことになる:
後で確認してください )
3
後で確認してください。)
命令実行過程のクロック・サイクルへの分割
5段のステ プ(制御信号については省略)
れは
サイク
復習
1.命令フェッチステップ
IR = メモリ[PC]; PC=PC+4; (命令フェッチとPCの計算)
5段のステップ(制御信号については省略)
これは,マルチサイクルの復習
[
];
; (
2.命令デコードとレジスタフェッチのステップ
A=レジスタ[IR[25-21]]; B=レジスタ[IR[20-16]];
(rs,rtフィールドの読込み)
( ,
読
)
ALUOut = PC+(符号拡張(IR[15-0] <<2)); (分岐先の計算)
3.実行、メモリアドレスの計算または分岐の完了ステップ
ALUOut = A+符号拡張(IR[15-0]); (メモリ参照の場合)
符号拡張( [
]); (メ リ参照 場合)
ALUOut = A 演算子 B; (R形式命令の場合)
if(A==B) PC=ALUOut; (分岐)
PC=PC[31-28] || (IR[25-0]<<2); (ジャンプ)
PC PC[31 28] || (IR[25 0]
2); (ジャンプ)
4.メモリアクセス、またはR形式命令完了ステップ
MDR = メモリ[ALUOut]; (ロードの場合)
メモリ[ALUOut]=B; (ストアの場合)
メモリ[ALUOut] B; (ストアの場合)
レジスタ[IR[15-11]]=ALUOut; (R形式命令の場合)
5.メモリ読出し完了ステップ
レジスタ[IR[20-16]]=MDR; (ロード)
4
レジスタ[IR[20 16]] MDR; (ロ ド)
お絵かきスペース
マルチサイクル v.s. パイプライン
命令タイプ 命令メモリ レジスタ読み込み ALU操作 データ・メモリ レジスタ書き込み合計時間
R形式
形式
200
100
200
100
600
語のロード
200
100
200
200
100
800
語のストア
200
100
200
200
700
分岐
200
100
200
500
ジャンプ
200
200
p305の例題の類題で以下の問題を考えます。
今からの説明を聞いて、後で出てくる自己確認クイズに自分
上の状況をマルチサイクル方式とパイプライン方式で実現した時の
今からの説明を聞いて、後で出てくる自己確認クイズに自分
で回答してください。
違いについて述べよ。
6
パイプライン処理の考え方①:ステージに分割
命令タイプ 命令メモリ レジスタ読み込み ALU操作 データ・メモリ レジスタ書き込み合計時間
R形式
形式
200
100
200
100
600
語のロード
200
100
200
200
100
800
語のストア
200
100
200
200
700
分岐
200
100
200
500
ジャンプ
200
200
•MIPSの場合、仕事のステップは5つにわかれている
•仕事のステップのことを、パイプライン処理の用語で、ステージ という。
1.
命令メモリアクセス
2.
レジスタ読み込み
3
ALUで演算
3.
ALUで演算
4.
データメモリアクセス
5.
レジスタ書き込み
7
パイプライン処理の考え方②:
仕事が多い時を考える(1/3)
1.
命令メモリアクセス
•仕事のステップのことを、パイプライン処理の用語で、ステージ という。
• IF ステージ (命令フェッチ)
2.
レジスタ読み込み
3.
ALUで演算
4.
データメモリアクセス
• ID ステージ (命令デコードとレジスタフェッチ)
• EX ステージ (命令実行 or アドレス生成)
• MEM ステージ(データ・メモリ・アクセス)
リ
5.
レジスタ書き込み
l 命令を1つ実行する時
5ステ ジ分の時間でできる(マルチサイクルだと)
テ ジ(デ タ
リ
ク
)
• WB ステージ (書き込み)
•lw命令を1つ実行する時、
5ステージ分の時間でできる(マルチサイクルだと)
•lw命令を2つ実行する時、
10ステージ分の時間でできる(マルチサイクルだと)
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
最初の命令
2番目の命令
(Question) もっと早くできないか?
8
(Question) もっと早くできないか?
パイプライン処理の考え方②:
仕事が多い時を考える(2/3)
複数のステップ(ステージ)からなる仕事を複数個、連続して行う時、
パイプライン処理
各ステップ分ずらしながら、複数の仕事を同時並行的に行う処理
最初の命令
2番目の命令
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
2番目の命令
3番目の命令
4番目の命令
番
命令
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
5番目の命令
:
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
• 1命令の処理には5サイクルを要するが、
• 命令実行の結果は1サイクルごとに得られる
9
• 命令実行の結果は1サイクルごとに得られる
パイプライン処理の考え方②:
仕事が多い時を考える(3/3)
一つのタスク(今は一つの命令)の実行開始から完了までの時間
レイテンシ
プ
一定時間内に処理できる仕事の量
スループット
最初の命令
2番目の命令
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
2番目の命令
3番目の命令
4番目の命令
番
命令
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
5番目の命令
:
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
パイプライン
マルチサイクル
• レイテンシは、5サイクル
スル
プ
トは
1命令/サイクル
パイプライン
• レイテンシは、5サイクル
スル
プットは
0 2命令/サイクル
マルチサイクル
10
• スループットは、1命令/サイクル
• スループットは、0.2命令/サイクル
自己確認クイズ1
命令タイプ 命令メモリ レジスタ読み込み ALU操作 データ・メモリ レジスタ書き込み合計時間
R形式
形式
200
100
200
100
600
語のロード
200
100
200
200
100
800
語のストア
200
100
200
200
700
分岐
200
100
200
500
ジャンプ
200
200
上の状況をマルチサイクル方式とパイプライン方式で実現した時の
違いについて述べよ。必ず、レイテンシとスループットという用語を用いること
例えば、依存関係のないlw命令が10命令連続で続く場合を考えよ
(注意)教科書は、単一サイクル方式とパイプラインの比較
11
自己確認クイズ1:回答の方針
lw命令が10命令連続で続く場合
•マルチサイクル方式
総実行時間
1000 10
10000
• 総実行時間 = 1000x10 = 10000 ps
• レイテンシ = 1000 ps
• スループット = 0 2 命令 / 200 ps
• スル プット 0.2 命令 / 200 ps
•パイプライン方式
• 総実行時間 = 1000 + 200x9 = 2800ps
p
• レイテンシ = 1000 ps
• スループット = 1命令 /200ps
非常に多くの命令がある場合 両者の実行時間の比は いくらに
•非常に多くの命令がある場合、両者の実行時間の比は、いくらに
なるか? (スループットの比に等しい)
1 0 0 0
1
1
5
1
1
1
1 0 0 0
2 0 0
5
5
m
m
=
→
=
+
+
12
5
5
m
お絵かきスペース
単一クロック・サイクルのデータパスの5分割
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
命令アドレスPC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 読出 reg1 読出 reg2 ゼロ判定 読出 アドレス 命令命令メモリ
X
結果 reg 書込 データ reg2データメモリ
書込データ 読 データ命令メモリ
M
U
X
M
U
X
符号
拡張
32
16
図4 33
14
図4.33
ミニクイズ:もし、5クロックで行うなら、何を追加しないといけないか?
マルチ サイクルの時
マルチ・サイクルの時,
何を追加したか思い出そう
点線のところにレジスタ
4
加算
加算
命令アドレスPC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 読出 reg1 読出 reg2 ゼロ判定 読出 アドレス 命令命令メモリ
X
結果 reg 書込 データ reg2データメモリ
書込データ 読 データ命令メモリ
M
U
X
M
U
X
符号
拡張
32
16
図4 33
15
図4.33
単一クロック・サイクルのデータパスの5分割
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
命令アドレス
PC
2ビット 左に シフトM
U
レジスタ
読出 reg1ALU
ALU 読出 reg2 書込 読出 reg1 読出 2 ゼロ判定 読出 アドレス 命令PC
命令メモリ
X
結果 reg 書込 データ reg2データメモリ
書込データ 読出 データ アドレス命令メモリ
M
U
X
M
U
X
符号
拡張
32
16
図4 35
16
図4.35
命令実
パイプライン方式のデータパス
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
X
M
結果 reg 書込 データ gデータメモリ
書込データ データ命令メモリ
M
U
X
M
U
X
符号
拡張
32
16
図4.41
17
図4.41
例外処理を加えたマルチサイクル方式における全データバス
Chap3の再掲
CauseWrite IntCauseChap3の再掲
IorD MemRead MemWrite RegWrite R D t IRW i ALUSrcA MemtoReg ALUSrcB ALUOp制御
PC PCSource PCWrite PCWriteCond EPCWrite CauseWriteM
U
M 0 0 RegDst IRWriteM
U
命令[31-26] 2ビット 左シフト 26 28 [31-28] 0 1 ジャンプ先 命令[25-0]PC
メモリ
アドレス データ 読出 レジスタ1A
ALU
ALU ゼロ 判定U
X
M
B
命令[25-21] 命令[20-16] 命令[15-0] 読出 レジスタ2 書込 レジスタ 書込 読出 データ1 読出 データ2 M U X M U X 0 0 1 0 1 命令 [15-11]U
X
命令[31 26] 2 アドレス[31-0] 3 8000 0180ALU
書込み データOut
命令 レジスタ ALU 結果M
U
X
B
レジスタ
書込 データ デ タ2 M U X 符号 2ビット 1 0 1 1 2 3 4 [15-11] 命令[15-0]EPC
メモリ・ データ レジスタ 拡張 32 左シフト 16ALU
制御
命令 [5-0]Cause
M
U
X
0 1 0 118
ミニクイズ1
•図4.35や図4.41を見たときに,マルチサイクルのデータパ
スの図と比べて,大きく違うところは何か?
の図と比
て,大きく違うと ろは何か
・命令メモリ、データメモリ ⇒ 1つのメモリ
復習:単一サイクルとマルチサイクルの違い(Chap3)
・1つのALUと2つの加算器 ⇒ 1つのALU
・
主要な機能ユニットの後ろに、データ保持用のレジスタを追加
19
用語の確認
•パイプライン・ステージ
• IF ステージ (命令フェッチ)
IF ステ ジ (命令フェッチ)
• ID ステージ (命令デコードとレジスタフェッチ)
• EX ステージ (命令実行 or アドレス生成)
• MEM ステージ(データ・メモリ・アクセス)
• WB ステージ (書き込み)
•パイプライン・レジスタ
• IF/ID レジスタ
IF/ID レジスタ
• ID/EX レジスタ
• EX/MEM レジスタ
• MEM/WB レジスタ
後は
各ステ
ジの動作を確認していくだけです(楽勝?)
20
後は、各ステージの動作を確認していくだけです(楽勝?)
自己確認クイズ2
図4.35は、単一クロックのデータパス(図4.33)を5分割して、その分割の中間にレジスタを
挿入している。しかし、それではパイプラインは正しくは動かないため、それを修正した次の
ペ ジのデ タパス(図4 41)でこれから勉強していきます では
ページのデータパス(図4.41)でこれから勉強していきます。では、
1.
図4.35ではうまく処理できない命令は何か?
2
図4 35と図4 41の違いは何か?(修正点は何か?)
2.
図4.35と図4.41の違いは何か?(修正点は何か?)
(講義の後に解答を自分で考えてください。)
21
お絵かきスペース
What to learn
•
パイプラインの概要とマルチサイクルとの違い
•
パイプラインの各ステージの詳細
イプラインの各ステ
ジの詳細
Next Topic
1. IF ステージ
(命令フェッチ)
2. ID ステージ
(命令デコードとレジスタフェッチ)
Next Topic
2. ID ステ
ジ
(命令デコ
ドとレジスタフェッチ)
3. EXステージ
(命令実行 or アドレス生成)
4
MEMステージ(データ・メモリ・アクセス)
4. MEMステ
ジ(デ
タ
メモリ
アクセス)
5. WBステージ
(書き込み)
•
パイプライン全体の動作(上記が同時並列的に動作)
•
パイプライン全体の動作(上記が同時並列的に動作)
•
パイプラインの制御
各命令
実行を
サイク
行う とを 複数
教材
教科書4 5章と4 6章
各命令の実行をマルチサイクルで行うことを、複数の
命令に対して1サイクルずらして同時並列実行
23
教材:教科書4.5章と4.6章
重要問題1
メモリの番地10000からの内容が以下のようになっているとする.
パイプライン方式で,クロックサイクル100で10000番地の命令
フェッチを開始するとする.
100011
10000
01000
0000000000001100
10000
101011
01001
01011
0000000000001100
000000 10000 10001 01111 00000 100000
000000
00000 100000
000100
10001
10010
0000000000011001
000010
00000000000010011100010000
れ
降を理解する は
内容
理解が必要
注意!
24
これ以降を理解するには,Chap3の内容の理解が必要
重要問題1
10000番地の命令の実行のみに注目するとして(この問題では
他の命令のことを考えない) クロ クサイクルが100 104の各
他の命令のことを考えない),クロックサイクルが100~104の各
時点で,命令の実行に論理的に関わっているモジュールと結線
に色を塗り またその結線の値を答えよ
に色を塗り,またその結線の値を答えよ.
クロックサイクル100の時点で,
$8 から$12 の値は全て100
$8 から$12 の値は全て100,
$13 から$20 の値は全て200とする.
なお,パイプラインレジスタについては,読みだす場合は右側,
書き込む場合は左側だけを塗ること
25
重要問題1:clock = 100
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
26
図
重要問題1:clock=100 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
27
図
重要問題1:clock = 101
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
28
図
重要問題1:clock=101 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
29
図
重要問題1:clock = 102
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
30
図
重要問題1:clock=102 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
31
図
重要問題1:clock = 103
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
32
図
重要問題1:clock=103 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
33
図
重要問題1:clock = 104
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
34
図
重要問題1:clock=104 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
35
図
お絵かきスペース
自己確認クイズ3
重要問題1と同じ状況で、10004番地の命令の実行のみに注目
するとして(この問題では他の命令のことを考えない),クロックサ
イクルが101 105の各時点で 命令の実行に論理的に関わ
イクルが101~105の各時点で,命令の実行に論理的に関わっ
ているモジュールと結線に色を塗り,またその結線の値を答えよ.
37
自己確認クイズ3:clock = 101
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
38
図
自己確認クイズ3:clock=101 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
39
図
自己確認クイズ3:clock = 102
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
40
図
自己確認クイズ3:clock=102 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
41
図
自己確認クイズ3:clock = 103
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
42
図
自己確認クイズ3:clock=103 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
43
図
自己確認クイズ3:clock = 104
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
44
図
自己確認クイズ3:clock=104 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
45
図
自己確認クイズ3:clock = 105
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
46
図
自己確認クイズ3:clock=105 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
47
図
お絵かきスペース
自己確認クイズ4
重要問題1と同じ状況で、10008番地の命令の実行のみに注目
するとして(この問題では他の命令のことを考えない),クロックサ
イクルが102 106の各時点で 命令の実行に論理的に関わ
イクルが102~106の各時点で,命令の実行に論理的に関わっ
ているモジュールと結線に色を塗り,またその結線の値を答えよ.
49
自己確認クイズ4:clock = 102
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
50
図
自己確認クイズ4:clock=102 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
51
図
自己確認クイズ4:clock = 103
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
52
図
自己確認クイズ4:clock=103 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
53
図
自己確認クイズ4:clock = 104
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
54
図
自己確認クイズ4:clock=104 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
55
図
自己確認クイズ4:clock = 105
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
56
図
自己確認クイズ4:clock=105 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
57
図
自己確認クイズ4:clock = 106
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
58
図
自己確認クイズ4:clock=106 (予備スライド)
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
59
図
What to learn
•
パイプラインの概要とマルチサイクルとの違い
•
パイプラインの各ステージの詳細
イプラインの各ステ
ジの詳細
1. IF ステージ
(命令フェッチ)
2. ID ステージ
(命令デコードとレジスタフェッチ)
2. ID ステ
ジ
(命令デコ
ドとレジスタフェッチ)
3. EXステージ
(命令実行 or アドレス生成)
4
MEMステージ(データ・メモリ・アクセス)
4. MEMステ
ジ(デ
タ
メモリ
アクセス)
5. WBステージ
(書き込み)
•
パイプライン全体の動作(上記が同時並列的に動作)
•
パイプライン全体の動作(上記が同時並列的に動作)
•
パイプラインの制御
Next Topic
各命令
実行を
サイク
行う とを 複数
各命令の実行をマルチサイクルで行うことを、複数の
命令に対して1サイクルずらして同時並列実行
教材
教科書4 5章と4 6章
60
教材:教科書4.5章と4.6章
重要問題2
(これは少し難しいけど,類題が試験に出るかも)
重要問題1と同じ状況で,クロックサイクル104の時の,パイプ
ラインのデータパスの図のすべての結線において,論理的に
意味がある値が伝搬され
る結線全
値を
意味がある値が伝搬されている結線全ての値を示せ.
61
パイプラインの実行の全体像
ポイント
パイプライン実行の全体像は,実際には(最大)5命令の処理が
同時並行的に行われている
ポイント
同時並行的に行われている.
100 101 102 103 104 105
最初の命令
2番目の命令
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
2番目の命令
3番目の命令
4番目の命令
番
命令
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
5番目の命令
:
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
62
お絵かきスペース
重要問題2回答用スライド:WB
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
64
図
重要問題2回答用スライド:WB
命令デ
ド
命令実行
予備
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
65
図
重要問題2回答用スライド:MEM
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
66
図
重要問題2回答用スライド:MEM
命令デ
ド
命令実行
予備
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
67
図
重要問題2回答用スライド:EX
命令デ
ド
命令実行
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス
PC
2ビット 左に シフトM
U
X
レジスタ
読出 reg1ALU
ALU 結果 読出 reg2 書込 reg 読出 reg1 読出 reg2 ゼロ判定 読出 デ タ アドレス 命令命令メモリ
M
結果 reg 書込 データデータメモリ
書込データ データ命令
M
U
X
M
U
X
符号
拡張
32
16
図4.41
68
図
重要問題2回答用スライド:EX
命令デ
ド
命令実行
予備
IF: 命令フェッチ
ID: 命令デコード+
レジスタ・フェッチ
EX: 命令実行 or
アドレス生成
MEM:
データ・メモリ・アクセス
レジスタ
WB:
書き込み
4
加算
加算
IF/ID
ID/EX
EX/MEM
MEM/WB
読出 読出 命令アドレス