第4章 数値予報モデル第4章 数値予報モデル 4.1 数値予報モデルの概要 天気予報用の数値予報モデルは、大気現象を支配す る物理法則の方程式をコンピュータで解き、未来の値
07. 値予測
-
Upload
brennan-saunders -
Category
Documents
-
view
18 -
download
0
description
Transcript of 07. 値予測
AdvancedComputer
Architecture
07. 値予測
五島 正裕
Advanced Computer Architecture
内容
1. キャッシュの復習2. 値予測
AdvancedComputer
Architecture
キャッシュの復習
Advanced Computer Architecture
キャッシュとは
キャッシュ: 本体の内容の一部を,より小容量ゆえに高速なメモリにコピー 参照の局所性 (locality of reference) を利用して,高速化を図る
一部をコピー ⇒ 連想メモリ (associative memory)
Advanced Computer Architecture
連想メモリ
表 (table) ,メモリ: key と value のペア,タプル (tuple) の集合
非連想表,メモリ すべての key に対して,タプルがある
連想表,メモリ すべての key に対して,タプルがあるとは限らない
ex.) 半分とか, 1/10 とか
Advanced Computer Architecture
ハッシュ表
ハッシュ表 (hash table)
ソフトウェアで連想表と言えば… ただし通常(一部ではなく)全体が入っている
Advanced Computer Architecture
keykey
hashfunctionhash
function
index
ハッシュ表 (chained hash table)
keykey
valuevaluekeykey
valuevalue
int hash(int key) { return 7 & (key >> 0) ^ (key >> 3) ^ (key >> 6) ^ /* ... */ ;}
keykey
valuevalue
Advanced Computer Architecture
hashfunctionhash
function
index
key
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
way #0
ハッシュ表 (配列)
int hash(int key) { return 7 & key;}
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
vv valuevalue
way #1
Advanced Computer Architecture
hashfunctionhash
function
index
ハッシュ表 (配列,最適化)
tagtag
int hash(int key) { return 7 & key;}key
vv valuevalue tagtag vv valuevalue
tagtag vv valuevalue tagtag vv valuevalue
tagtag vv valuevalue tagtag vv valuevalue
tagtag vv valuevalue tagtag vv valuevalue
tagtag vv valuevalue tagtag vv valuevalue
tagtag vv valuevalue tagtag vv valuevalue
tagtag vv valuevalue tagtag vv valuevalue
tagtag vv valuevalue tagtag vv valuevalue
Advanced Computer Architecture
キャッシュの構成
tag
address
value
index
valuetag valid
selectorselector
Advanced Computer Architecture
マッピング
direct map 2-way set-associative
address address
00
11
22
33
44
00 88 00
11
22
33
44 88
address spacecache
: cache line
setway
AdvancedComputer
Architecture
値予測
Advanced Computer Architecture
BBBB
1. 予測1. 予測
投機のフェーズ
1. 予測 (prediction)
2. 実行 (execution)
3. 確認 (verification, confirmation)
4. キャンセル,回復,再実行 (cancellation, recovery, re-execution)
cycle
AA
2. 実行2. 実行
3. 確認3. 確認
4. 再実行4. 再実行
Advanced Computer Architecture
分岐予測
cycle
be r1 == r2, L0
add r5 = r4 + r3
r8 = r6 + r7add
r8 = r8 + 1add
IFIF
IFIF
IFIF
IFIF
IFIF
IFIF
OROR
OROR
r9 = r6 - r7sub
r8 = *(r9)ld
OROR
OROR
IFIF
IFIF
EXEX
EXEX
OROR
OROR
IFIF
IFIF
MEMMEM
MEMMEM
EXEX
EXEX
OROR
OROR
1. PC 予測2. フェッチ
1. PC 予測2. フェッチ
3. 確認3. 確認
WBWB
WBWB
EXEX
EXEX
MEMMEM
MEMMEM
WBWB
WBWB
MEMMEM
MEMMEM
WBWB
WBWB
Advanced Computer Architecture
IFIF
IFIF
OROR
OROR
IFIF
IFIF
分岐予測
cycle
be r1 == r2, L0
add r5 = r4 + r3
IFIF
IFIF
IFIF
IFIF
OROR
OROR
r8 = r6 + r7add
r8 = r8 + 1add
r9 = r6 - r7sub
r8 = *(r9)ld
EXEX
EXEX
OROR
OROR
IFIF
IFIF
MEMMEM
MEMMEM
IFIF
IFIF
WBWB
WBWB
OROR
OROR
IFIF
IFIF
3. 確認3. 確認
4. 再フェッチ4. 再フェッチ
EXEX
EXEX
OROR
OROR
EXEX
EXEX
MEMMEM
MEMMEM
WBWB
WBWB
MEMMEM
MEMMEM
r8 = *(r6)ld
r9 = r9 + 1add
r9 = r8 << 1sla
r8 = r9 - 1sub
L0:
1. PC 予測2. フェッチ
1. PC 予測2. フェッチ
Advanced Computer Architecture
IFIF
IFIF
OROR
OROR
IFIF
IFIF
分岐予測
cycle
be r1 == r2, L0
add r5 = r4 + r3
IFIF
IFIF
OROR
OROR EXEX
EXEX MEMMEM
MEMMEM
IFIF
IFIF
WBWB
WBWB
OROR
OROR
IFIF
IFIF
EXEX
EXEX
OROR
OROR
EXEX
EXEX
MEMMEM
MEMMEM
WBWB
WBWB
MEMMEM
MEMMEM
ミス・ペナルティ (= H, M = 0)
r8 = *(r6)ld
r9 = r9 + 1add
r9 = r8 << 1sla
r8 = r9 - 1sub
L0:
Advanced Computer Architecture
値予測
値予測 (value prediction) : 投機の一種 個々の命令の結果を予測
先行制約の緩和 分岐予測:分岐命令の結果を予測
制御依存による先行制約を緩和 値予測:すべての命令の結果を予測
データ依存(フロー依存)による先行制約の緩和
Advanced Computer Architecture
値予測するには
値予測するには:1. どう予測するか?2. 予測するとどうなるか?3. 予測ミスしたらどうするか?
Advanced Computer Architecture
1. どう予測するか?
やっぱり,履歴 (history)
分岐履歴: PHT (pattern history table)
値 履 歴 : VHT (value history table)
予測手法: Last-Value
Stride
Context-Base
Hybrid
Advanced Computer Architecture
キャッシュの構成
address
value
valuetag valid
selectorselector
Advanced Computer Architecture
Last-Value + Stride 値予測器
キャッシュの value のフィールド: Last-Value
Stride
予測値は, Last-Value + Stride
確信度カウンタ (confidence counter)
ヒット:インクリメント ミ ス :デクリメント or クリア 閾値以上(最大値)なら予測
Advanced Computer Architecture
フロントエンドで予測する
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture
AdvancedComputer
Architecture
Advanced Computer Architecture
Advanced Computer Architecture