3次元積層SRAM/DRAM ハイブリッド・キャッシュ

3次元積層SRAM/DRAM
ハイブリッド・キャッシュ
○橋口慎哉†(現‡) 福本尚人†
井上弘士† 村上和彰†
†九州大学
‡富士通株式会社
1
発表手順
•
•
•
•
•
3次元積層技術とDRAMスタック法
研究目的
SRAM/DRAMハイブリッド・キャッシュ
評価実験
まとめと今後の課題
2
研究背景
• 3次元積層技術
– グローバル配線長の削減、チップ面積縮小
– 異なるプロセスを経て製造されたダイ同士の積層
• プロセッサ・ダイとDRAMダイを積層することに
よりオンチップ・メモリの大容量化を実現可能
→メモリウォール問題の解決策
出典:米インテル社
TSV(Through
Silicon Vias)
3
DRAMスタック法
• DRAMスタック法[1]
– 従来の2次元実装プロセッサ(ベースプロセッサ)上に
大容量DRAMキャッシュを積層
– 下層SRAMをタグ格納領域として利用
64MB L2
(DRAM)
4MB Tag Core(s)
(SRAM) + L1(s)
4MB L2 Core(s)
(SRAM) + L1(s)
ベースプロセッサ(2次元実装)
平均メモリ
アクセス時間[cc]
L1キャッシュの
アクセス時間[cc]
DRAMスタック法(3次元積層)
L1キャッシュ
ミスの割合
L2キャッシュの L2キャッシュ
主記憶の
アクセス時間[cc] ミスの割合 アクセス時間[cc]
プログラムによっては性能低下の可能性
AMAT  HT L1  MRL1 ( HT L 2  MRL 2  MMAT)
DRAMスタック
法の効果
(?)
4
[1]Bryan Black et al. “Die Stacking (3D) Architecture,” International Symposium on Microarchitecture ,2006
プログラム間のミス率削減率の違い
L2キャッシュミス率[%]
60
50
性能向上率
LU
FMM
40 Ocean
30
削減量小
FFT
2.5
削減量大
Raytrace
性能
向上
1.5
性能
低下
1.0
Barnes
0
WaterSpatial
2
Ocean
2.0
20 Cholesky
10
3.0
0.5
0
4
8
16 32 64
L2キャッシュ容量[MB]
128
100
Cholesky
80
60
40
20
150
0 200
L2キャッシュミス率の削減率
[points]
100
50
0
L2キャッシュ
アクセス時間の増加
[cc]
• プログラム間でミス率削減率が異なる
→プログラムによってはDRAMスタック法の導入で性能低下
5
プログラム実行中のミス率削減効果の違い
Ocean
DRAMスタック法
200
180
160
140
120
100
80
60
40
20
0
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
平均L1ミスペナルティ[cc]
2MBの従来型SRAMキャッシュ
適したキャッシュ容量:大
区間
(181cc)
適したキャッシュ容量:小 L1ミスペナルティ=HTL2+MRL2×MMAT
6
研究のねらい
• 着眼点
– 大容量DRAMキャッシュの活用により必ずしも性
能が向上するとは限らない
– 適したキャッシュ容量はプログラム間、ならびにプ
ログラム内で変化
• 研究目的
– DRAMスタック法の問題点を解決したメモリ・アー
キテクチャの提案と評価
– 「大容量かつ低速キャッシュ」ならびに「小容量か
つ高速キャッシュ」を同一アーキテクチャで実現
7
SRAM/DRAM ハイブリッド・キャッシュ
• 異なる2種類の動作モードをプログラムのメモリ参照の
特性に応じてプログラム実行中に自動で切り替える
未使用
L2 Cache
(DRAM)
L2
Core(s)
Cache
(SRAM) + L1(s)
SRAMキャッシュモード
(高速・小容量L2キャッシュ)
L2
Core(s)
Tag
+ L1(s)
(SRAM)
切り替え
DRAMキャッシュモード
(低速・大容量L2キャッシュ)
DRAM
SRAM
Core(s)
+ L1(s)
8
タグ情報のマッピング
SRAMキャッシュモード
時のデータ格納場所
タグ
タグ
デコーダ
SRAMキャッシュモード
時のタグ格納場所
2ウェイ・セットアソシアティブ
SRAMキャッシュ
1 Way
1 Way
L2 Cache
L2 Core(s)
Tag + L1(s)
2ウェイ・セットアソシアティブ
DRAMキャッシュ
9
通常のキャッシュ構成
タグフィールド
下層SARM(容量: CS
ラインサイズ: LS 連想度: W S )
インデックスフィールド
64ビットアドレス(物理アドレス)
64 - lg LS - IS
IS
lg LS
オフセットフィールド
デコーダ
IS
LS
LS
64 - lg LS - IS
MUX1
64 - lg LS - IS
.
= =.
.
64 - lg LS - IS
1
1
LS
CS
IS  lg
LS・WS
CD
ID  lg
LD・ W D
Data
(SRAM)
1
Hit/Miss
(SRAM)
10
ハードウェア・サポート
タグフィールド
下層SARM(容量: CS
ラインサイズ: LS 連想度: W S )
インデックスフィールド
64ビットアドレス(物理アドレス)
64 - lg LS - IS
64 - lg LD - ID
デコーダ
IS
ID
lg LS
lg L D
オフセットフィールド
上層DARM(容量: C D
ラインサイズ: L D 連想度: W D )
IS
lg
LS
LS
64 - lg LS - IS
CD・LS・ WS
CS・LD・ W D
ID
64 - lg LS - IS
MUX1
64 - lg LS - IS
=
=
1
1
MUX2
Data
(SRAM)
1
Hit/Miss
(SRAM)
追加
HW
.
= =
. .
64 - lg LD - ID
64 - lg LD - ID
LS
CS
IS  lg
LS・WS
CD
ID  lg
LD・ W D
追加
HW
1
64 - lg LD - ID
LD
LD
MUX3
1
LD
1
Hit/Miss
(DRAM)
追加
HW
Data
(DRAM)
11
動作モード決定法
一定L2アクセス
区間
1
動作モードを
決定したい区間
現在実行中の区間
2
N-1
N
N+1
プログラム
の実行
以下の判定式を基に実行中の区間における適切な
動作モードを求め、それを次区間の動作モードに設定
if HT L 2 _ DRAM  HT L 2 _ SRAM
MR L 2 _ SRAM  MR L 2 _ DRAM 
MMAT
then
:DRAMキャッシュモード
else :SRAMキャッシュモード
実行中に同時に得る必要がある
ハードウェア依存で既知
→ハードウェア・サポートによるミス率推測
MRL 2 _ SRAM / MRL 2 _ DRAM :SRAM/DRAMキャッシュのミスの割合
HT L 2 _ SRAM , HT L 2 _ DRAM , MMAT:SRAM/DRAMキャッシュ、主記憶のアクセス時間[cc]
12
ミス率推測法(SRAMキャッシュモード時)
オンチップ
オンチップ
主
記
憶
推測用タグRAM
L2
Core(s)
Cache
(SRAM) + L1(s)
主
記
憶
SRAMキャッシュモード
SRAMデータ
SRAMタグ
下層SRAM
L2 Cache
(DRAM)
L2
Core(s)
Tag
+ L1(s)
(SRAM)
DRAMキャッシュモード
•DRAMキャッシュ用のタグを別途
保持し、タグ比較することでDRAM
キャッシュモード時のミス率推測
•大容量のタグRAMが必要になる
ため、サンプリングにより容量を
大幅に削減
DRAMタグ
推測用タグRAM
13
ミス率推測法(DRAMキャッシュモード時)
オンチップ
オンチップ
主
記
憶
推測用タグRAM
L2
Core(s)
Cache
(SRAM) + L1(s)
SRAMキャッシュモード
主
記
憶
L2 Cache
(DRAM)
L2
Core(s)
Tag
+ L1(s)
(SRAM)
DRAMキャッシュモード
SRAMタグ
DRAMタグ
DRAMデータ
下層SRAM
推測用タグRAM
上層DRAM
14
動作モード切り替え時の動作
オンチップ
オンチップ
推測用タグRAM
主
記
憶
L2
Core(s)
Cache
(SRAM) + L1(s)
主
記
憶
SRAMキャッシュモード
SRAMデータ
①
②
SRAMタグ
L2 Cache
(DRAM)
L2
Core(s)
Tag
+ L1(s)
(SRAM)
DRAMキャッシュモード
①ダーティラインの主記憶書き戻し
②キャッシュのフラッシュ(全無効化)
下層SRAM
切替えオーバヘッド発生!
•ダーティラインの書き戻し
•切り替え後の初期参照ミス
DRAMタグ
推測用タグRAM
15
評価モデル
• DRAM-STACK:DRAMスタック法
• HYBRID-D-x:ハイブリッド・キャッシュ(下記参照)
HYBRID-DIDEAL
HYBRID-D-OPT
HYBRID-D
動作モード
性能オーバ
ヘッド
1区間の長さ
適した動作
モードが既知、
かつ選択
なし
最適(100K L2
アクセス)
最適
提案する動作
モード決定法
あり(※)
5M L2アクセス
その他
DRAMキャッ
シュミス率推測
用タグRAMは
通常の1/32
※8GB/sのメモリバンド幅を想定し、全ダーティラインの
データ転送時間でライトバックに要する時間を近似
16
評価環境
• プロセッサシミュレータ:M5
• ベンチマークプログラム:SPEC CPU 2000 、
Splash2から選択
• 評価指標:AMAT
DRAM-STACK
DRAMキャッシュモード
オンチップ
オンチップ
SRAMキャッシュモード
コア
L1
L2
キャッシュ
主記憶
容量:32KB
アクセス時間:2clock cycle
容量:2MB
アクセス時間:
6clock cycles
容量:32MB
アクセス時間:
28clock cycles
アクセス時間:181clock cycles
コア
L1
L2
キャッシュ
主記憶
17
評価結果
メモリ性能向上比
DRAM-STACK
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
LU
HYBRID-D-IDEAL
3.03
twolf
HYBRID-D-OPT
art
mcf
ベンチマークプログラム
HYBRID-D
Ocean
ammp
18
評価結果
メモリ性能向上比
DRAM-STACK
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
LU
HYBRID-D-IDEAL
3.03
twolf
HYBRID-D-OPT
art
mcf
ベンチマークプログラム
HYBRID-D
Ocean
ammp
実行中のメモリ参照の振る舞いに追従することが可能
→実行中に動作モードを切り替えることで理想的には大きく性能向上
19
評価結果
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
HYBRID-D-IDEAL
3.03
HYBRID-D-OPT
SRAMキャッシュモード
平均L1ミスペナルティ[cc]
メモリ性能向上比
DRAM-STACK
LU
twolf
HYBRID-D
DRAMキャッシュモード
200
150
100
50
0
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71
区間
art
mcf
ベンチマークプログラム
Ocean
ammp
プログラム実行を通してほぼすべての区間がDRAMキャッシュモード
20
評価結果
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
HYBRID-D-IDEAL
3.03
HYBRID-D-OPT
HYBRID-D
SRAMキャッシュモード
平均L1ミスペナルティ[cc]
メモリ性能向上比
DRAM-STACK
35
30
25
20
15
10
5
0
DRAMキャッシュモード
1 6 11 16 21 26 31 36 41 46 51 56 61
twolf
区間
LU
twolf
art
mcf
ベンチマークプログラム
Ocean
ammp
プログラム実行を通してほぼすべての区間がSRAMキャッシュモード
ハイブリッドにすることが有効
21
評価結果
DRAM-STACK
1.6
1.4
150 1.2
1
100 0.8
50 0.6
0.4
0 0.2
0
mcf
HYBRID-D-OPT
HYBRID-D
DRAMキャッシュモード
200
1
15
29
43
57
71
85
99
113
127
141
155
169
183
メモリ性能向上比
平均L1ミスペナルティ[cc]
2
SRAMキャッシュモード
1.8
HYBRID-D
HYBRID-D-IDEAL
3.03
LU
区間 twolf
art
mcf
ベンチマークプログラム
Ocean
ammp
動作モード切り替え時のオーバヘッドが大きい
22
評価結果
AMAT[cc]
20
15
DRAM-STACK
HYBRID-D-IDEAL
3.03
opt
HYBRID-D-OPT
HYBRID-D
2
HYBRID-DはDRAM-STACKに
1.8
対し性能低下
5 1.6
1.4
0
1.2
mcf 100K 200K 500K 1M 2M 5M 10M
1
1区間の長さ(L2キャッシュアクセス数)
0.8
DRAM-STACK
HYBRID-IDEAL
HYBRID
0.6
5
0.4
4
0.2
3
0
2
LU
twolf
art
mcf
Ocean
ammp
opt
1
ベンチマークプログラム
AMAT[cc]
メモリ性能向上比
10
0
ammp 100K 200K 500K 1M 2M 5M 10M
1区間の長さ(L2キャシュアクセス数)
メモリ参照の振る舞いの変化に
23
対する追従性の低下
まとめと今後の課題
• まとめ
– DRAMスタック法の問題点を解決するSRAM/DRAMハ
イブリッド・キャッシュを提案
– 実行中の動作モードを切り替えで性能低下する場合
が多い
• 今後の課題
– より性能が向上する実行中動作モード決定法の考案
– プログラム毎に動作モードの決定・設定をする静的
方式の検討
– 消費エネルギー評価
24
ご清聴ありがとうございました
25
高性能動作モードの入力依存性
DRAMキャッシュモード
Cholesky
FFT
LU
Barnes
FMM
ベンチマークプログラムとその入力
Ocean
4K
512
n514
n258
n130
64K
16K
8K
64K
32K
8K
n2048
n1024
m24
m22
m18
tk29.O
tk23.O
10
9
8
7
6
5
4
3
2
1
0
tk17.O
AMAT[cc]
SRAMキャッシュモード
WaterS
(2MBのSRAMキャッシュと32MBのDRAMキャッシュを想定)
入力により適した動作モードは異なる!
26
入力依存性を考慮した動作モード決
定・切り替え
動作モード
切り替え
プログラム実行前
(静的)
プログラム実行中
(動的)
動作モード決定
○プログラムの実行中の適し
た動作モードの変化に対応
○動作モード切り替えオー
可能
プログラム実行前
バーヘッドなし
×動作モード切り替えオー
×適切な動作モードが入力に
(静的)
バーヘッド発生
依存する場合、対応不可
×適切な動作モードが入力に
依存する場合、対応不可
プログラム実行中
(動的)
適切な動作モードは入力
に大きく依存するため、
「動的決定・動的切り替え」
を選択
○実行中の適した動作モード
の変化に対応可能
×動作モード切り替えオー
バーヘッド発生
×動作モード決定のためハー
ドウェアサポートが必要
27
動作モード切り替え例
動作モード切り替え
(DRAMキャッシュモード
→SRAMキャッシュモード)
動作モード判定開始
区間
ナンバー
実行
動作モード
S
動作モード切り替え
(SRAMキャッシュモード
→DRAMキャッシュモード)
S
N-1
N
S
S
N+1 N+2
S
S
N+3
D
D
動作モード判定開始
M-1
M
M+1
D
D
D
プログラム
の実行
SRAMキャッシュ
SRAMキャッシュ
DRAMキャッシュ
モードが高性能
モードが高性能
モードが高性能
ウォームアップ区間
(動作モード決定・切り替え、)
動作モード
決定区間
ウォームアップ区間
L2 Cache
(DRAM)
未使用
L2
Core(s)
Cache
(SRAM) + L1(s)
SRAMキャッシュモード
S:SRAMキャッシュ・モード
D:DRAMキャッシュ・モード
L2
Core(s)
Tag
+ L1(s)
(SRAM)
DRAMキャッシュモード
28
DRAMキャッシュミス率推測アーキテクチャ
タグ
lg
インデックス
C
 lg n
L ・W
オフセット
lg n
実際はサポートしない
ハードウェア
フィルタ
アクセス
もしインデックス下位lg nビットが0なら
下位lg nビットを除くインデックスを出力
0でないなら出力なし
※セット数(容量)を1/nにサンプリング
C:DRAMキャッシュの容量[B]
W:DRAMキャッシュの連想度
L:DRAMキャッシュのラインサイズ[B]
SST
本来必要なDRAMキャッシュ
用タグRAM(SRAM)
29
L2キャッシュミス率推測誤差
L2キャッシュミス率推測誤差[points]
Average
※サンプリングにより容量を1/32に削減
Max
0.14
0.12
0.1
0.02を超えるのは
全体の約3%
最初の区間のみ
0.08
0.06
0.04
0.02
0
ベンチマークプログラム
30