Upload
cutler
View
83
Download
0
Embed Size (px)
DESCRIPTION
3 次元積層 SRAM/DRAM ハイブリッド・キャッシュ. ○橋口慎哉 † (現 ‡ ) 福本尚人 † 井上 弘士 † 村上和 彰 † † 九州大学 ‡ 富士通株式会社. 発表手順. 3 次元積層技術と DRAM スタック法 研究 目的 SRAM/DRAM ハイブリッド・キャッシュ 評価実験 まとめと今後の課題. 研究背景. 3 次元積層技術 グローバル配線長の削減、チップ面積縮小 異なるプロセスを経て製造されたダイ同士の積層 プロセッサ・ダイと DRAM ダイを積層することによりオンチップ・メモリの大容量化を実現可能 →メモリウォール問題の解決策. - PowerPoint PPT Presentation
Citation preview
3 次元積層 SRAM/DRAMハイブリッド・キャッシュ
○ 橋口慎哉†(現‡) 福本尚人† 井上弘士† 村上和彰†
† 九州大学‡ 富士通株式会社
1
発表手順• 3 次元積層技術と DRAM スタック法• 研究目的• SRAM/DRAM ハイブリッド・キャッシュ• 評価実験• まとめと今後の課題
2
研究背景• 3 次元積層技術– グローバル配線長の削減、チップ面積縮小– 異なるプロセスを経て製造されたダイ同士の積層
• プロセッサ・ダイと DRAM ダイを積層することによりオンチップ・メモリの大容量化を実現可能 →メモリウォール問題の解決策
3出典:米インテル社
TSV ( Through Silicon Vias )
DRAM スタック法• DRAM スタック法 [1]
– 従来の 2 次元実装プロセッサ(ベースプロセッサ)上に大容量 DRAM キャッシュを積層
– 下層 SRAM をタグ格納領域として利用
4
4MB L2 (SRAM)
Core(s)+ L1(s)
4MB Tag (SRAM)
64MB L2(DRAM)
Core(s)+ L1(s)
ベースプロセッサ( 2 次元実装) DRAM スタック法( 3 次元積層)
[1]Bryan Black et al. “Die Stacking (3D) Architecture,” International Symposium on Microarchitecture ,2006
MMAT)MRHT(MRHTAMAT LLLL 2211
DRAMスタック法の効果
(?)
L1 キャッシュのアクセス時間 [cc]
L1 キャッシュミスの割合
L2 キャッシュのアクセス時間 [cc]
L2 キャッシュミスの割合
平均メモリアクセス時間
[cc]
主記憶のアクセス時間 [cc]プログラムによっては性能低下の可能性
2 4 8 16 32 64 1280
10
20
30
40
50
60
L2キャッシュ容量 [MB]
L2キャッシュミス率
[%]
プログラム間のミス率削減率の違い
• プログラム間でミス率削減率が異なる →プログラムによっては DRAM スタック法の導入で性
能低下5
削減量小
削減量大削減量大
削減量小FFT
LU
Cholesky
FMM
Raytrace
Barnes
Ocean
WaterSpatial20
60 40100 80 150
200
10050 0
0
1.0
0
1.5
3.0
2.0
2.5
0.5
L2 キャッシュアクセス時間の増加L2 キャッシュミス率の削減率
[cc]
性能向上
性能低下
性能向上率
[points]
Ocean
Cholesky
プログラム実行中のミス率削減効果の違い
6
Ocean
L1 ミスペナルティ =HTL2+MRL2×MMAT( 181cc )適したキャッシュ容量:大
適したキャッシュ容量:小
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 961010
20406080
100120140160180200
2MB の従来型 SRAM キャッシュDRAM スタック法
区間
平均
L1ミスペナルティ
[cc]
研究のねらい• 着眼点– 大容量 DRAM キャッシュの活用により必ずしも
性能が向上するとは限らない– 適したキャッシュ容量はプログラム間、ならび
にプログラム内で変化• 研究目的– DRAM スタック法の問題点を解決したメモリ・
アーキテクチャの提案と評価– 「大容量かつ低速キャッシュ」ならびに「小容
量かつ高速キャッシュ」を同一アーキテクチャで実現
7
SRAM/DRAM ハイブリッド・キャッシュ
• 異なる 2 種類の動作モードをプログラムのメモリ参照の特性に応じてプログラム実行中に自動で切り替える
8
切り替え
未使用
SRAM キャッシュモード(高速・小容量 L2 キャッシュ)
DRAM キャッシュモード(低速・大容量 L2 キャッシュ)
SRAM
DRAM
Core(s)+ L1(s)
L2 Tag( SRAM )
L2 Cache( DRAM )
Core(s)+ L1(s)
L2 Cache( SRAM )
Core(s)+ L1(s)
2 ウェイ・セットアソシアティブSRAM キャッシュ
1 Way
1 Way
2 ウェイ・セットアソシアティブDRAM キャッシュ
SRAM キャッシュモード時のデータ格
納場所
SRAM キャッシュモード時のタグ格納
場所
デコーダ
タグ情報のマッピング
9
タグタグ
L2Tag
L2 Cache
Core(s)+ L1(s)
MUX1= =
Hit/Miss(SRAM)
Data(SRAM)
64 ビットアドレス(物理アドレス)インデックスフィールドタグフィールド
オフセットフィールド
W・LClgI
SS
SS
WL
ClgIDD
DD ・
IS
I-Llg-64 SS
LS LS
IS
11
1
LS
下層 SARM (容量: ラインサイズ: 連想度: )
LSCS
WSデコーダ
Llg S
I-Llg-64 SS
I-Llg-64 SS
I-Llg-64 SS
通常のキャッシュ構成
10
.
..
MUX1
MUX3
= =
=
MUX2
Hit/Miss(SRAM)
Data(SRAM)
64 ビットアドレス(物理アドレス)インデックスフィールドタグフィールド
オフセットフィールド
=
Hit/Miss(DRAM)
Data(DRAM)
W・LClgI
SS
SS
WL
ClgIDD
DD ・
IS
I-Llg-64 DD
I-Llg-64 SS
IDLS
LDLD
LS
ISID
1 1
11
1
1
LD
LS
下層 SARM (容量: ラインサイズ: 連想度: ) 上層 DARM (容量:
ラインサイズ: 連想度: )
LD
LSCD
WD
CSWS
デコーダ
WL・CWL・Clg
DDS
SSD
・・
Llg S
Llg D
I-Llg-64 SS
I-Llg-64 SS
I-Llg-64 DD
I-Llg-64 DD
I-Llg-64 SS
I-Llg-64 DD
ハードウェア・サポート
追加HW
追加HW
追加HW
追加HW
追加HW
11
.. .
動作モード決定法
以下の判定式を基に実行中の区間における適切な動作モードを求め、それを次区間の動作モードに設定
12
プログラムの実行
現在実行中の区間 動作モードを決定したい区間
区間 1
2 N-1 N+1N
::
_2_2_2_2
elsethenMMAT
HTHTMRMR
SRAMLDRAMLDRAMLSRAML
DRAM キャッシュモード
SRAM キャッシュモード
if
MRMR DRAMLSRAML _2_2 / : SRAM/DRAM キャッシュのミスの割合MMATHTHT DRAMLSRAML ,, _2_2 : SRAM/DRAM キャッシュ、主記憶のアクセス時
間 [cc]
ハードウェア依存で既知
実行中に同時に得る必要がある→ ハードウェア・サポートによるミス率
推測
一定 L2 アクセス
下層 SRAM
ミス率推測法( SRAM キャッシュモード時)
推測用タグ RAM
L2 Tag( SRAM )
L2 Cache( DRAM )
Core(s)+ L1(s)
L2 Cache( SRAM )
Core(s)+ L1(s)
SRAM データ
推測用タグRAM
SRAM タグ
DRAM タグ
主記憶
主記憶
オンチップ
オンチップ
• DRAM キャッシュ用のタグを別途
保持し、タグ比較することでDRAM キャッシュモード時のミ
ス率推測•大容量のタグ RAM が必要にな
るため、サンプリングにより容量
を大幅に削減
SRAM キャッシュモード DRAM キャッシュモード
13
下層 SRAM
ミス率推測法( DRAM キャッシュモード時)
推測用タグ RAM
L2 Cache( SRAM )
Core(s)+ L1(s)
DRAM データ
SRAM タグ
DRAM タグ
L2 Tag( SRAM )
L2 Cache( DRAM )
Core(s)+ L1(s)
主記憶
オンチップ
主記憶
オンチップ
推測用タグRAM
上層 DRAM
SRAM キャッシュモード DRAM キャッシュモード
14
下層 SRAM
動作モード切り替え時の動作
推測用タグ RAM
L2 Tag( SRAM )
L2 Cache( DRAM )
Core(s)+ L1(s)
L2 Cache( SRAM )
Core(s)+ L1(s)
SRAM データ
推測用タグRAM
SRAM タグ
DRAM タグ
主記憶
主記憶
オンチップ
オンチップ
①
①ダーティラインの主記憶書き戻し
② ②キャッシュのフラッシュ(全無効化)
切替えオーバヘッド発生!•ダーティラインの書き戻し•切り替え後の初期参照ミス
SRAM キャッシュモード DRAM キャッシュモード
15
評価モデル• DRAM-STACK : DRAM スタック法• HYBRID-D-x :ハイブリッド・キャッシュ(下記参
照)動作モード 性能オーバ
ヘッド1区間の長さ その他
HYBRID-D-IDEAL
適した動作モードが既知、
かつ選択なし 最適( 100K
L2 アクセス)
HYBRID-D-OPT提案する動作モード決定法 あり(※)
最適 DRAM キャッシュミス率推測用タグ RAMは通常の 1/32
HYBRID-D 5M L2 アクセス
※8GB/s のメモリバンド幅を想定し、全ダーティラインのデータ転送時間でライトバックに要する時間を近似 16
L1
L2キャッシュ
コア
主記憶
オンチップ
評価環境• プロセッサシミュレータ: M5• ベンチマークプログラム: SPEC CPU
2000 、 Splash2 から選択• 評価指標: AMAT
17アクセス時間: 181clock
cycles
L1
L2キャッシュ
コア
主記憶
オンチップSRAM キャッシュモード
DRAM-STACKDRAM キャッシュモード
容量: 2MBアクセス時
間:6clock cycles
容量: 32MBアクセス時間: 28clock
cycles
容量 :32KBアクセス時間: 2clock cycle
評価結果
3.03
18
LU twolf art mcf Ocean ammp0
0.20.40.60.8
11.21.41.61.8
2
DRAM-STACK HYBRID-D-IDEAL HYBRID-D-OPT HYBRID-D
ベンチマークプログラム
メモリ性能向上比
LU twolf art mcf Ocean ammp0
0.20.40.60.8
11.21.41.61.8
2
DRAM-STACK HYBRID-D-IDEAL HYBRID-D-OPT HYBRID-D
ベンチマークプログラム
メモリ性能向上比
評価結果
3.03
実行中のメモリ参照の振る舞いに追従することが可能→ 実行中に動作モードを切り替えることで理想的には大きく性
能向上19
LU twolf art mcf Ocean ammp0
0.20.40.60.8
11.21.41.61.8
2
DRAM-STACK HYBRID-D-IDEAL HYBRID-D-OPT HYBRID-D
ベンチマークプログラム
メモリ性能向上比
評価結果
3.033.03
1 7 13 19 25 31 37 43 49 55 61 67 730
50
100
150
200
SRAM キャッシュモードDRAM キャッシュモード
区間平均
L1ミスペナルティ
[cc]
プログラム実行を通してほぼすべての区間が DRAM キャッシュモード 20
LU twolf art mcf Ocean ammp0
0.20.40.60.8
11.21.41.61.8
2
DRAM-STACK HYBRID-D-IDEAL HYBRID-D-OPT HYBRID-D
ベンチマークプログラム
メモリ性能向上比
評価結果
3.033.03
プログラム実行を通してほぼすべての区間が SRAM キャッシュモード
ハイブリッドにすることが有効
1 7 13 19 25 31 37 43 49 55 6105
101520253035
SRAM キャッシュモードDRAM キャッシュモード
区間平均
L1ミスペナルティ
[cc]
twolf
21
LU twolf art mcf Ocean ammp0
0.20.40.60.8
11.21.41.61.8
2
DRAM-STACK HYBRID-D-IDEAL HYBRID-D-OPT HYBRID-D
ベンチマークプログラム
メモリ性能向上比
評価結果
3.03
動作モード切り替え時のオーバヘッドが大きい
1 18 35 52 69 86 1031201371541710
20406080
100120140160180
SRAM キャッシュモードDRAM キャッシュモード
区間
平均
L1ミスペナルティ
[cc]
mcf
22
LU twolf art mcf Ocean ammp0
0.20.40.60.8
11.21.41.61.8
2
DRAM-STACK HYBRID-D-IDEAL HYBRID-D-OPT HYBRID-D
ベンチマークプログラム
メモリ性能向上比
評価結果
3.03
メモリ参照の振る舞いの変化に
対する追従性の低下
HYBRID-D は DRAM-STACK に対し性能低下
23
100K 200K 500K 1M 2M 5M 10M0
5
10
15
20
1区間の長さ( L2キャッシュアクセス数)
AMAT
[cc]
100K 200K 500K 1M 2M 5M 10M012345
DRAM-STACK HYBRID-IDEALHYBRID
1区間の長さ( L2キャシュアクセス数)
AMAT
[cc]
opt
opt
ammp
mcf
まとめと今後の課題• まとめ– DRAM スタック法の問題点を解決する SRAM/DRAM
ハイブリッド・キャッシュを提案– 実行中の動作モードを切り替えで性能低下する場合
が多い• 今後の課題– より性能が向上する実行中動作モード決定法の考案– プログラム毎に動作モードの決定・設定をする静的方式の検討
– 消費エネルギー評価
24
ご清聴ありがとうございました
25
高性能動作モードの入力依存性
26
( 2MB の SRAM キャッシュと 32MB の DRAM キャッシュを想定)
入力により適した動作モードは異なる!
tk17
.O
tk23
.O
tk29
.O
m18
m22
m24
n102
4
n204
8 8K 32K
64K 8K 16K
64K
n130
n258
n514 51
2 4K
Cholesky FFT LU Barnes FMM Ocean WaterS
0123456789
10
SRAM キャッシュモード DRAM キャッシュモード
ベンチマークプログラムとその入力
AM
AT[
cc]
入力依存性を考慮した動作モード決定・切り替え
プログラム実行前(静的)
プログラム実行中(動的)
プログラム実行前
(静的)
○ 動作モード切り替えオー バーヘッドなし× 適切な動作モードが入力に 依存する場合、対応不可
○ プログラムの実行中の適し た動作モードの変化に対応 可能× 動作モード切り替えオー バーヘッド発生× 適切な動作モードが入力に 依存する場合、対応不可
プログラム実行中
(動的)
○ 実行中の適した動作モード の変化に対応可能× 動作モード切り替えオー バーヘッド発生× 動作モード決定のためハー ドウェアサポートが必要
27
動作モード 切り替え
動作モード決定
適切な動作モードは入力に大きく依存するため、「動的決定・動的切り替
え」を選択
動作モード切り替え例
28
プログラムの実行
ウォームアップ区間(動作モード決定・切り替
え、)
ウォームアップ区間
NN-1 N+1
実行動作モード S S S S S D D D D
動作モード決定区間
D
動作モード切り替え( DRAM キャッシュ
モード→ SRAM キャッシュモー
ド)区間ナンバー
動作モード切り替え( SRAM キャッシュモー
ド→ DRAM キャッシュ
モード)
動作モード判定開始 動作モード判定開始
N+3N+2 M-1 M M+1
SRAM キャッシュモードが高
性能
S
未使用
SRAMキャッシュモード
L2Cache
(SRAM)
Core(s)+ L1(s)
DRAMキャッシュモード
L2Tag
(SRAM)
L2 Cache(DRAM)
Core(s)+ L1(s)
S : SRAM キャッシュ・モードD : DRAM キャッシュ・モード
DRAM キャッシュモードが高
性能
SRAM キャッシュモードが高
性能
DRAM キャッシュミス率推測アーキテクチャタグ インデック
スオフセット
フィルタ
もしインデックス下位 lg n ビットが0 なら
下位 lg n ビットを除くインデックスを出力
0 でないなら出力なし
アクセス
SST
本来必要な DRAM キャッシュ 用タグ RAM ( SRAM )
実際はサポートしないハードウェア
nlgW・LC
lg
※セット数(容量)を 1/n にサンプリングC : DRAM キャッシュの容量 [B]W : DRAM キャッシュの連想度L : DRAM キャッシュのラインサイズ [B]
nlg
29
L2 キャッシュミス率推測誤差
gzip
wupwisesw
immgri
dap
plu art mcf
ammp
bzip2
twolf
apsi
Cholesky LU FF
T
Barnes
FMM
Ocean
Wate
rSpati
al0
0.02
0.04
0.06
0.08
0.1
0.12
0.14Average Max
ベンチマークプログラム
L2キャッシュミス率推測誤差
[poi
nts]
※サンプリングにより容量を 1/32 に削減
最初の区間のみ0.02 を超えるのは全体の約 3%
30