計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日...
TRANSCRIPT
![Page 1: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/1.jpg)
計算機アーキテクチャ
2014年 10月17日
電気情報工学科 田島 孝治
第18回 計算機アーキテクチャ 1
第18回 ハザードとその解決法
![Page 2: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/2.jpg)
授業スケジュール(後期)
※10/14は出張のため振替です。(10/17 9:00~の予定)
※11/4は研修旅行です。試験の日程は未定です。
2
第18回 計算機アーキテクチャ
回 日付 タイトル
17 10/7 パイプライン処理
18 10/17 ハザードの解決法
19 10/21 並列処理
20 11/11 マルチプロセッサ
21 11/18 入出力装置の分類と特徴
22 11/25 割り込み
23 12/2 ネットワークアーキテクチャ
24 12/9 中間試験(日程は仮)
回 日付 タイトル
25 12/16 メモリ構成の基本原理
26 12/30 記憶領域の管理手法
27 1/13 仮想メモリ
28 1/20 キャッシュ
29 1/27 システムアーキテクチャ
30 2/3 組み込みコンピューティング
31 2/10 コンピュータの設計と実装
2/24? 期末試験(日程は仮)
32 3/3? フォローアップ(日程は仮)
![Page 3: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/3.jpg)
先週の復習
パイプライン処理
単位時間当たりの処理量を増加 させる流れ作業
3
命令1 F D E W
命令2 F D E W
命令3 F D E W
命令4 F E D
命令5 F E
命令6 F 第18回 計算機アーキテクチャ
![Page 4: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/4.jpg)
パイプラインの破綻:ハザード
構造ハザード
データハザード
制御ハザード
第18回 計算機アーキテクチャ
4
![Page 5: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/5.jpg)
構造ハザード
同じハードウェアを同時に使わないといけない場合に起こる
第18回 計算機アーキテクチャ
5
メモリに同時にアクセスする
・命令フェッチ
・データメモリ呼び出し
![Page 6: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/6.jpg)
構造ハザードが起こる場合
第18回 計算機アーキテクチャ
6
lw $t4, 0($t2) F D E W
add $s1,$t3,$t4 F D E W
sub $s2,$s1,$3 F D E W
li $t5, 5 F E D
li $t6, 10 F E
bne $t5,$s2,loop F
命令メモリを呼び出したい でも前の命令がメモリを占有中
![Page 7: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/7.jpg)
構造ハザードの結果
第18回 計算機アーキテクチャ
7
lw $t4, 0($t2) F D E W
add $s1,$t3,$t4 F D E W
sub $s2,$s1,$3 ×
li $t5, 5
li $t6, 10
bne $t5,$s2,loop
![Page 8: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/8.jpg)
構造ハザードの結果
第18回 計算機アーキテクチャ
8
lw $t4, 0($t2) F D E W
add $s1,$t3,$t4 F D E W
sub $s2,$s1,$3 × F D E
li $t5, 5 × F E
li $t6, 10 × F
bne $t5,$s2,loop ×
次以降の命令も実行が遅くなる
![Page 9: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/9.jpg)
データハザード
前の処理の結果(データ)を使わないと、次の処理が実行できない場合に起こる
前の命令の変数を共有している
第18回 計算機アーキテクチャ
9
前の計算結果を次の命令で利用する
![Page 10: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/10.jpg)
データハザードが起こる場合
第18回 計算機アーキテクチャ
10
lw $t4, 0($t2) F D E W
add $s1,$t3,$t4 F D E W
sub $s2,$s1,$3 F D E W
li $t5, 5 F E D
li $t6, 10 F E
bne $t5,$s2,loop F
t4が決まらないとデコード できない(ALUにデータが送れない)
![Page 11: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/11.jpg)
データハザードが起こる場合
第18回 計算機アーキテクチャ
11
lw $t4, 0($t2) F D E W
add $s1,$t3,$t4 F D E W
sub $s2,$s1,$3 F D E W
li $t5, 5 F E D
li $t6, 10 F E
bne $t5,$s2,loop F
t4が決まらないとデコード できない(ALUにデータが送れない)
![Page 12: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/12.jpg)
データハザードが起こる場合
第18回 計算機アーキテクチャ
12
lw $t4, 0($t2) F D E W
add $s1,$t3,$t4 F × ×
sub $s2,$s1,$3
li $t5, 5
li $t6, 10
bne $t5,$s2,loop
t4が決まらないとデコード できない(ALUにデータが送れない)
![Page 13: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/13.jpg)
制御ハザード
分岐命令がある場合に起こる
第18回 計算機アーキテクチャ
13
先読みした命令が実行されない
![Page 14: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/14.jpg)
制御ハザードが起こる場合
第18回 計算機アーキテクチャ
14
loop: $t4, 0($t2) F D E W
bne $t5,$s2,end F D E W
add $s2,$s1,$3 F
sub $t5,$s2,$s1
j loop $t6, 10
end: add $t5,$zero,$zero
![Page 15: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/15.jpg)
制御ハザードが起こる場合
第18回 計算機アーキテクチャ
15
loop: $t4, 0($t2) F D E W
bne $t5,$s2,end F D E W
add $s2,$s1,$3 F × × F
sub $t5,$s2,$s1 F E D
j loop $t6, 10 F E
end: add $t5,$zero,$zero F
Wまで終わってPCが更新される =次に実行される行が決まる
![Page 16: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/16.jpg)
ハザードが起こった場合の手順
次のプログラムを実行する際の パイプラインを示せ
プログラムは次ページに明記する
ハザードは指定した条件を満たした場合のみ起こるものとする
この際のスループットも求めよ
全てのステージの実行時間は 1クロックとする
16
第18回 計算機アーキテクチャ
![Page 17: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/17.jpg)
実行するプログラム
第18回 計算機アーキテクチャ
17
la $s0, values addi $s3,$s2,4 sw $s1, 0($s0) lw $t1, 4($s0) add $s4,$t3,$t1 sw $s4, 8($s0)
![Page 18: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/18.jpg)
ハザードの条件
lw命令の実行(E)はフェッチ(F)と 同時にできない
sw命令の実行(E)は結果格納(W)と 同時にできない
前の命令の実行結果を使う命令の デコード(D)は、前の命令の結果格納(W)が終わった後にしかできない
制御ハザードはなし (分岐命令がないですね)
18
第18回 計算機アーキテクチャ
![Page 19: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/19.jpg)
ハザードのまとめ
何らかの原因により命令をパイプライン動作させられない状態を【ハザード】いう
【構造】ハザード:
同じハードウェアの同時利用が原因
【データ】ハザード:
変数の共有等が原因
【制御】ハザード:
分岐命令が原因
19
![Page 20: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/20.jpg)
ハザードのまとめ
何らかの原因により命令をパイプライン動作させられない状態を【ハザード】いう
【構造】ハザード:
同じハードウェアの同時利用が原因
【データ】ハザード:
変数の共有等が原因
【制御】ハザード:
分岐命令が原因
20
![Page 21: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/21.jpg)
ハザードのまとめ
何らかの原因により命令をパイプライン動作させられない状態を【ハザード】いう
【構造】ハザード:
同じハードウェアの同時利用が原因
【データ】ハザード:
変数の共有等が原因
【制御】ハザード:
分岐命令が原因
21
![Page 22: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/22.jpg)
ハザードのまとめ
何らかの原因により命令をパイプライン動作させられない状態を【ハザード】いう
【構造】ハザード:
同じハードウェアの同時利用が原因
【データ】ハザード:
変数の共有等が原因
【制御】ハザード:
分岐命令が原因
22
![Page 23: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/23.jpg)
ハザードのまとめ
何らかの原因により命令をパイプライン動作させられない状態を【ハザード】いう
【構造】ハザード:
同じハードウェアの同時利用が原因
【データ】ハザード:
変数の共有等が原因
【制御】ハザード:
分岐命令が原因
23
![Page 24: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/24.jpg)
ハザードの解消
第18回 計算機アーキテクチャ 24
![Page 25: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/25.jpg)
データハザードの対策
計算結果を次の命令の 実行ステージに書き戻す
レジスタから読み込まなくても、前の命令の実行結果を使えるようにハードウェアを改良
第18回 計算機アーキテクチャ
25
lw $t4, 0($t2) F D E W
add $s1,$t3,$t4 F D E D E
![Page 26: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/26.jpg)
フォワーディング機構
第18回 計算機アーキテクチャ
26
P
C
命令メモリ
命令レジスタ(F
D
レジスタ)
レジスタファイル(読み)
命令デコーダ
データ
選択
メモリ
アドレス
レジスタ
データメモリ
レジスタファイル(書き)
演算結果フラグ
選択回路
P
C
+
+
ALU デ
ータ選択
4
D
E
レジスタ
E
W
レジスタ
フォワーディング機構
![Page 27: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/27.jpg)
フォワーディング機構
フォワーディング(forwarding)
データハザードを解決する ハードウェア機構
バイパシング、ショートカットとも呼ばれる
計算命令で使う変数の共有を考える必要がなくなった
第18回 計算機アーキテクチャ
27
![Page 28: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/28.jpg)
制御ハザードの解消
条件分岐によるハザードの解消
命令アドレスがいつ決まるかが重要
第18回 計算機アーキテクチャ
28
無条件分岐 (j命令、jr命令)
Dステージ直後に決定
直後にPCを更新
![Page 29: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/29.jpg)
条件がある場合
Wステージが終わるまではどこに分岐するかわからない
どうやって無駄な時間をすごすか
質問です
あなたはゲームのトーナメント戦に出場しています
1試合目に勝ちました、2試合目までの時間をどう過ごしますか?
29
![Page 30: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/30.jpg)
1試合目終了時点でのトーナメント表 30
あなた
Bさん
Cさん
Dさん
Eさん
Fさん
Gさん どれか1つしか試合は見れません
①~③のどれを見に行きますか?
①
②
③
![Page 31: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/31.jpg)
遅延分岐
分岐をしてもしなくても直後に同じ命令を実行する場合に有効
第18回 計算機アーキテクチャ
31
beq $t1,t2,sub2
la $t0, a
lw $s0, 0($t0)
sub $s2,$s0,$s1
lw $s0, 0($t0)
la $t0, a
add $s2,$s0,$s1
sub1:
sub2:
同じ命令を実行
![Page 32: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/32.jpg)
遅延分岐の結果 32
beq $t1,t2,sub2
sub1:
la $t0, a
lw $s0, 0($t0)
sub $s2,$s0,$s1
sub2:
lw $s0, 0($t0)
la $t0, a
add $s2,$s0,$s1
beq $t1,t2,sub2
la $t0, a
lw $s0, 0($t0)
sub1:
sub $s2,$s0,$s1
sub2:
add $s2,$s0,$s1
命令を精査することで解決
![Page 33: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/33.jpg)
1試合目終了時点でのトーナメント表 33
あなた 8
Bさん 20
Cさん 17
Dさん 7
Eさん 18
Fさん 10
Gさん 2 どれか1つしか試合は見れません
①~③のどれを見に行きますか?
①
②
③
現在の 世界ランク
![Page 34: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/34.jpg)
分岐予測
分岐が起こるかどうかを予測して処理を進める
事前に起こりそうな方を進めておく
予測がはずれたら、事前に進めた分は破棄
第18回 計算機アーキテクチャ
34
ある意味で、当たり前な方法ですね
![Page 35: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/35.jpg)
分岐予測
分岐が起こるかどうかを予測して処理を進める
事前に起こりそうな方を進めておく
予測がはずれたら、事前に進めた分は破棄
第18回 計算機アーキテクチャ
35
でもどうやって予想するの?
![Page 36: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/36.jpg)
どうやって次を予測するのか?
あなたは、バス(または電車)に乗って通学しています
できれば椅子に座りたいと考えていますが、あいにく満席でした
どこ(どんな人の横、または場所)で席が空くのを待ちますか?
理由も考えてください
第18回 計算機アーキテクチャ
36
![Page 37: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/37.jpg)
方法1:常に分岐しないと予想
常に分岐すると予想しても同義
当たるか外れるかは運しだい
ただ待っているだけより良い
予想が当たれば無駄が少ない
第18回 計算機アーキテクチャ
37
![Page 38: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/38.jpg)
方法2:アドレスが小さい方を予測
もっともよく使われる条件分岐
第18回 計算機アーキテクチャ
38
ループ(繰り返し)処理
1回で終わることは少ない
繰り返す場合は、前のアドレス(少ない方)に戻る
![Page 39: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/39.jpg)
方法3:分岐予測テーブルを使う
2ビット予測器
予想が2回続けて外れたら予測を変える
第18回 計算機アーキテクチャ
39
00 01 10 11
入力 出力
T 分岐した B 分岐させる
NT 分岐しなかった NB 分岐させない
T/B T/B T/B T/NB NT/NB
NT/NB NT/NB NT/B
![Page 40: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/40.jpg)
分岐予測テーブル
2ビット予測器とテーブルを組み合わせて予測率を高める方式
各分岐命令ごとの履歴とすべての分岐の履歴を組み合わせる アイデア
平均的な成功率は90%を超える
第18回 計算機アーキテクチャ
40
![Page 41: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/41.jpg)
分岐予測テーブル 41
01
1 0
00 01 10 11
大域分岐履歴レジスタ
00
04
08
0C
10
14
18
1C
・・・
FC
命令アドレス の下位ビット
この値で分岐予測を行う
正解/
不正解に合わせて書き換え
![Page 42: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/42.jpg)
ハザードの解消のまとめ
データハザードには【フォワーディング】が有効
構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する
制御ハザードの対策は、【命令アドレス】をいつ決めるかが重要
先に共通して命令を実行する【遅延分岐】と、次にどの命令が実行されるか予測する【分岐予測】がある
42
![Page 43: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/43.jpg)
ハザードの解消のまとめ
データハザードには【フォワーディング】が有効
構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する
制御ハザードの対策は、【命令アドレス】をいつ決めるかが重要
先に共通して命令を実行する【遅延分岐】と、次にどの命令が実行されるか予測する【分岐予測】がある
43
![Page 44: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/44.jpg)
ハザードの解消のまとめ
データハザードには【フォワーディング】が有効
構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する
制御ハザードの対策は、【命令アドレス】をいつ決めるかが重要
先に共通して命令を実行する【遅延分岐】と、次にどの命令が実行されるか予測する【分岐予測】がある
44
![Page 45: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/45.jpg)
ハザードの解消のまとめ
データハザードには【フォワーディング】が有効
構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する
制御ハザードの対策は、【命令アドレス】をいつ決めるかが重要
先に共通して命令を実行する【遅延分岐】と、次にどの命令が実行されるか予測する【分岐予測】がある
45
![Page 46: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/46.jpg)
ハザードの解消のまとめ
データハザードには【フォワーディング】が有効
構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する
制御ハザードの対策は、【命令アドレス】をいつ決めるかが重要
先に共通して命令を実行する【遅延分岐】と、次にどの命令が実行されるか予測する【分岐予測】がある
46
![Page 47: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/47.jpg)
ハザードの解消のまとめ
データハザードには【フォワーディング】が有効
構造ハザードと、データハザードは、 【ハードウェア】の改良で対処する
制御ハザードの対策は、【命令アドレス】をいつ決めるかが重要
先に共通して命令を実行する【遅延分岐】と、次にどの命令が実行されるか予測する【分岐予測】がある
47
![Page 48: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/48.jpg)
練習問題
次のプログラムの分岐命令(3か所)に 関して、分岐予測の正解率を求めよ
次の4つの場合を考える事
常に分岐しないと考える
常に小さいアドレスに分岐すると考える
全体で1つの2ビット予測器を使う
分岐命令単位で個別の2ビット予測器を使う
第18回 計算機アーキテクチャ
48
![Page 49: 計算機アーキテクチャ計算機アーキテクチャ 2014年 10月17日 電気情報工学科 田島 孝治 第18回 計算機アーキテクチャ 1 第18回 ハザードとその解決法](https://reader036.vdocuments.site/reader036/viewer/2022062922/5f0909bd7e708231d424ef0a/html5/thumbnails/49.jpg)
FIN
第18回 計算機アーキテクチャ
49