Document

Advanced Computer Architecture
03. 投機
五島 正裕
2015/10/1
Advanced Computer Architecture
内容
1. 前々回(RISC と命令パイプライン)の復習
2. スーパースカラ・プロセッサと分岐
3. 投機
4. 余談
2
Advanced Computer Architecture
1. 前々回の復習
RISCと命令パイプライン
2015/10/1
Advanced Computer Architecture
4
命令パイプライン
I1
I0
IF
ID
EX
MEM
WB
cycle
I0
I1
I2
I3
I4
I5
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
Advanced Computer Architecture
パイプライン・ハザード
 パイプライン・ハザード (hazard)

パイプライン動作を妨げる要因
 構造ハザード (structural hazard)

HW の資源の不足が原因
 非構造ハザード

SW の持つ依存関係が原因

データ・ハザード (data hazard)


データ依存
制御ハザード (control hazard)

制御依存,分岐命令の実行
5
Advanced Computer Architecture
インターロック と バブル
 パイプライン・ハザード (hazard)

パイプライン動作を妨げる要因
 パイプライン・インターロック (interlock) 機構によって対処
 パイプライン・バブル (bubble) が発生

「パイプラインが乱れる」
6
Advanced Computer Architecture
アーキテクチャ的対処
 インターロックする ⇒ バブルが発生 ⇒ 性能低下
 インターロックする機会を減らすことが重要!
 構造ハザード
 資源の不足が原因
 資源の追加で消える
 例えば,メモリ・ポートの場合,
命令キャッシュとデータ・キャッシュの分離 (separate)
 非構造ハザード:データ・ハザード と 制御ハザード
 プログラムが原因
 原理的に消えない
 バブルの削減
7
Advanced Computer Architecture
8
バブルの削減 (制御ハザード)
cycle
I0
be
I1
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
W
Advanced Computer Architecture
10
条件分岐命令
 if (cond) PC = PC + immediate;

PC 相対 (relative)

命令だけから(レジスタを読まなくても)飛び先アドレスが計算できる
op
31
Rs
25
Rt
20
immediate
15
0
Advanced Computer Architecture
11
条件分岐
branch on register
分岐
条件
判定に
必要な
処理
備考
compare & branch
1つのレジスタ値が,
0,正,負,
0 以上,0 以下
2つの値(レジスタ値, 2つの値(レジスタ値,
即値)の一致比較
即値)の大小比較
R[Rs] == 0,
R[Rs] > 0,
…
R[Rs]
R[Rs]
R[Rs]
R[Rs]
1. レジスタの読み出し
レジスタに,zero フラグ
を付加しておくと楽.
signフラグは msb.
==
!=
==
!=
R[Rt],
R[Rt],
imm,
imm
R[Rs] > R[Rt],
R[Rs] >= R[Rt],
…
1. レジスタの読み出し
2. 一致比較
1. レジスタの読み出し
2. 大小比較(減算)
一部の RISC は持つ
RISC は普通持たない
Advanced Computer Architecture
IF
12
100
PC
ID
0
200
5
Reg
File
IR
Rs
LD 1 2 10 100
Rt
1000
EX
MEM
DR
MA MD
WB
MDR
Main Memory
210
Advanced Computer Architecture
13
インターロックの排除(制御ハザード)
cycle
I0
IF
be
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
I1
I0
IF
IF
be
OR
EX
IF
MEM
OR
nPC
be
I0
I1
OR
nPC
IF
EX
OR
EX
MEM WB
MEM WB
OR
IF
MEM
next PC 計算器
MEM WB
IF
IF
EX
WB
EX
I1
ID
EX
OR
MEM WB
EX
MEM WB
遅延分岐
W
Advanced Computer Architecture
バック・エッジ
 もろもろの元凶は,パイプラインのバック・エッジ
 バック・エッジ

逆向きの信号の流れ
16
Advanced Computer Architecture
IF
17
100
PC
ID
0
200
5
Reg
File
IR
Rs
LD 1 2 10 100
Rt
1000
EX
MEM
DR
MA MD
WB
MDR
Main Memory
210
Advanced Computer Architecture
19
バック・エッジ長 と バブルの量
cycle
be
I1
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
Advanced Computer Architecture
2. スーパースカラ・プロセッサと分岐
2015/10/1
Advanced Computer Architecture
21
スーパースカラの命令パイプライン
I0
I2
IF
I3
ID
EX
MEM
WB
I1
cycle
I0
I1
I2
I3
I4
I5
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
Advanced Computer Architecture
22
制御ハザード
cycle
add r5 = r4 + r3
IF
bz
IF
r1
OR
nPC
EX
MEM WB
EX
MEM WB
add r8 = r6 + r7
IF
OR
EX
MEM WB
add r8 = r8 + 1
IF
OR
EX
MEM WB
Advanced Computer Architecture
3. 投機
2015/10/1
Advanced Computer Architecture
24
投機
 投機的実行 (speculative execution)
 投機 (speculation):
1.
偶然の利益をねらって行う行為。
2.
将来の価格変動を予想して、価格差から生ずる利益を得ることを目的とし
て行う売買取引。
(三省堂「大辞林 第二版」)
 この分野の投機:

予測に基づいて,あらかじめ処理を進めておくこと
Advanced Computer Architecture
25
投機のフェーズ
1. 予測 (prediction)
2. 実行 (execution)
3. 確認 (verification, confirmation)
4. キャンセル,回復,再実行 (cancellation, recovery, re-execution)
cycle
A
1. 予測
3. 確認
2. 実行
B 4. 再実行
Advanced Computer Architecture
投機技術の種類
 ○○予測

分岐予測

値予測

レイテンシ予測


キャッシュ・ヒット/ミス予測
etc.
 粒度 (granularity):細粒度 (fine-grain) ~粗粒度 (coarse-grain)

命令レベル

スレッド・レベル

関数レベル

WWW ページのリンクの先読み
26
Advanced Computer Architecture
27
分岐予測
cycle
3. 確認
add r5 = r4 + r3
IF
OR
EX
MEM WB
be
IF
OR
EX
MEM WB
r1 == r2
add r8 = r6 + r7
IF
OR
EX
MEM WB
PC 予測
add r8 = r8 1.
+ 1
IF
OR
EX
MEM WB
2. フェッチ
sub r9 = r6 - r7
IF
OR
EX
MEM WB
ld
IF
OR
EX
MEM WB
r8 = *(r9)
Advanced Computer Architecture
28
分岐予測
cycle
3. 確認
add r5 = r4 + r3
IF
OR
EX
MEM WB
be
IF
OR
EX
MEM WB
r1 == r2
add r8 = r6 + r7
IF
OR
IF
OR
EX
MEM WB
PC 予測
add r8 = r8 1.
+ 1
IF
OR
IF
OR
EX
MEM WB
2. フェッチ
sub r9 = r6 - r7
ld
r8 = *(r9)
4. 再フェッチ
IF
IF
OR
EX
M
IF
IF
OR
EX
M
Advanced Computer Architecture
29
投機のメリット/ディメリット
 予測 Hit 時

あたかも,依存がなくなったかのようになる

実行が省略されるわけではない
cycle
A
1. 予測
3. 確認
2. 実行
B
Advanced Computer Architecture
30
投機のメリット/ディメリット
 予測 Miss 時

非投機時より,確認の分だけ遅くなる


結果の比較:0~1~数サイクル
使用した計算資源(とエネルギー)を浪費したことになる
cycle
A
1. 予測
3. 確認
2. 実行
B
4. 再実行
Advanced Computer Architecture
31
投機のメリット/ディメリット
 (平均レイテンシ短縮)≒(予測率)× (
+(予測ヒット率) × H
-(予測 ミ ス 率) × M
)
cycle
A
1. 予測
3. 確認
2. 実行
H
B
M
4. 再実行
Advanced Computer Architecture
32
予測ミスの影響
 (予測ミスによるレイテンシの増加)=
(予測率) ×(予測ミス率) ×(ミス・ペナルティ)
cycle
A
1. 予測
3. 確認
2. 実行
ミス・ペナルティ
B
4. 再実行
Advanced Computer Architecture
33
分岐予測
cycle
add r5 = r4 + r3
IF
OR
EX
MEM WB
be
IF
OR
EX
MEM WB
r1 == r2
add r8 = r6 + r7
IF
OR
IF
OR
EX
MEM WB
add r8 = r8 + 1
IF
OR
IF
OR
EX
MEM WB
sub r9 = r6 - r7
IF
IF
OR
EX
M
ld
IF
IF
OR
EX
M
r8 = *(r9)
ミス・ペナルティ (= H, M = 0)
Advanced Computer Architecture
投機の効果
 「毎回かかるレイテンシを,ミス時のペナルティに」
 (予測ミスによるレイテンシの増加)=
(予測率) ×(予測ミス率) ×(ミス・ペナルティ)
 予測ミス率が十分小さければ (ex. 1%),

ミス・ペナルティは1~2サイクル長くなってもよい
34
Advanced Computer Architecture
35
バック・エッジ長 と ミス・ペナルティ
cycle
be
I1
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
Advanced Computer Architecture
IF
36
100
PC
ID
0
200
5
Reg
File
IR
Rs
LD 1 2 10 100
Rt
1000
EX
MEM
DR
MA MD
WB
MDR
Main Memory
210
Advanced Computer Architecture
投機の効果
 「毎回かかるレイテンシを,ミス時のペナルティに」
 (予測ミスによるレイテンシの増加)=
(予測率) ×(予測ミス率) ×(ミス・ペナルティ)
 予測ミス率が十分小さければ (ex. 1%),

ミス・ペナルティは,1~2サイクル長くなってもよい

バック・エッジは, 1~2サイクル長くなってもよい

⇒ クロックの高速化
37
Advanced Computer Architecture
投機 と キャッシュ
 キャッシュも,投機の一種?

「キャッシュにある」と予測してアクセス


さもないと,まったく効果がない
投機的性質を含む
 キャッシュ・ヒット/ミス予測

普通のキャッシュは,always hit と予測している
38
Advanced Computer Architecture
余談
2015/10/1
Advanced Computer Architecture
投機と日常
 この分野の投機

「あやしい」ことではない

ギャンブル性 低い,ばくち ではない

low risk, high return
 日常的投機

リスクが十分低いときには,予測に基づいて行動するのが当然

「信号が青なので進む」
40
Advanced Computer Architecture
投機と日常
 日常の仕事では,投機がうまくいく例は少ない

「絶対やることになる」のは投機ではない

投機によって,仕事は早く終わるが,量は減らない

むしろ,予測ミスの分だけ増える
 よい例

ホームに入ったら列車が来たので,とりあえず乗ってみる
41
Advanced Computer Architecture
細粒度の投機 と HW
 「SW でできることは HW でやってはいけない」

「ハード屋」というものは,何でもかんでも HW 化したがる

性能が n 倍違わないなら,SW のほうがよいに決まってる
 将来性が疑わしい?

○○専用 HW

リコンフィギュアラブル

GPU
 細粒度(命令レベル, etc)の投機:

HW でやるべき,数少ないことのひとつ
42
Advanced Computer Architecture
次回
 Out-of-Order スーパースカラ
+ 分岐予測
+ レジスタ・リネーミング
43