3次元実装プロセッサ向け

3次元DRAM-プロセッサ積層実装を
対象としたオンチップ・メモリ・
アーキテクチャの提案と評価
○橋口慎哉† 小野貴継†(現‡)
井上弘士‡ 村上和彰‡
†九州大学大学院 システム情報科学府
‡九州大学大学院 システム情報科学研究院
1
発表手順
•
•
•
•
•
研究背景
研究目的
ハイブリッド・キャッシュ・アーキテクチャ
評価実験
まとめと今後の課題
2
研究背景
• 3次元実装技術
– グローバル配線長の削減、チップ面積縮小
– 異なるプロセスを経て製造されたダイ同士の積層
• プロセッサ・ダイとDRAMダイを積層することに
よりオンチップ・メモリの大容量化を実現可能
→メモリウォール問題の解決策
出典:米インテル社
TSV(Through
Silicon Vias)
3
3次元実装によるキャッシュメモリの大容量化
• DRAMスタック法[Black MICRO’06]
– 従来の2次元実装プロセッサ(ベースプロセッサ)上に
3次元実装技術により大容量DRAMキャッシュを積載
オフチップメモリアクセス回数削減
– DRAMキャッシュのタグRAMとして数MBの容量が必
要
下層のSRAMをタグRAMとして使用
L2 Cache
(DRAM)
L2
Cache Core(s)
(SRAM) + L1(s)
ベースプロセッサ(2次元実装)
L2
TagRAM Core(s)
(SRAM) + L1(s)
DRAMスタック法(3次元実装)
Bryan Black et al “Die Stacking (3D) Architecture,” International Symposium on Microarchitecture ,2006
4
DRAMスタック法の問題点
L1キャッシュの
アクセス時間[cc]
L2キャッシュの L2キャッシュ
主記憶の
アクセス時間[cc] ミスの割合 アクセス時間[cc]
L1キャッシュ
ミスの割合
AMAT  HT L1  MRL1 ( HT L 2  MRL 2  MMAT)
DRAMスタック
法の効果
(?)
性能向上率
3.0
2.5
Ocean
2.0
性能向上
1.5
性能低下
1.0
0.5
0
100
Cholesky
80
60
40
20
150
0 200
L2キャッシュミス率の削減率
[points]
100
50
0
L2キャッシュ
アクセス時間の増加
[cc]
プログラムによっては
性能が低下
5
キャッシュ容量とキャッシュミス率の関係
60
50
L2キャッシュミス率[%]
大きく低
下する
LU
あまり低下
しない
FMM
FFT
40
30
20
10
大きく低
下する
Ocean
大きく低
下する
Cholesky
Barnes
Raytrace
あまり低下
しない
あまり低下
しない
WaterSpatial
0
2MB
4MB
8MB
16MB
32MB
L2キャッシュ容量
64MB
128MB
6
プログラム実行中の
適したキャッシュ容量の変化
Ocean
2MB(12cc)
32MB(60cc)
300
250
200
150
100
50
0
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
L1ミスペナルティ[cc]
350
適したキャッシュ容量:大
区間
(300cc)
適したキャッシュ容量:小 L1ミスペナルティ=HTL2+MRL2×MMAT
7
研究のねらい
• 着眼点
– 大容量DRAMキャッシュの活用により必ずしも性
能が向上するとは限らない
– 適したキャッシュ容量はプログラム間、ならびにプ
ログラム内で変化
• 研究目的
– DRAMスタック法の問題点を解決したメモリ・アー
キテクチャの提案と評価
– 「大容量かつ低速キャッシュ」ならびに「小容量か
つ高速キャッシュ」を同一アーキテクチャで実現
8
ハイブリッド・キャッシュ搭載プロセッサ
• プログラム間(中)の適したキャッシュ容量の変化に応じ
て下層SRAMキャッシュの動作モードを切り替える
未使用
L2 Cache
(DRAM)
L2
Cache Core(s)
(SRAM) + L1(s)
切り替え
キャッシュモード
(高速かつ小容量L2キャッシュ)
L2
Core(s)
TagRAM
(SRAM) + L1(s)
タグモード
(低速かつ大容量L2キャッシュ)
L2 Cache
(DRAM)
ハイブリッド・キャッシュ
Core(s)
Cache
(SRAM) + L1(s)
9
ハイブリッド・キャッシュ実現への課題
• タグ情報のマッピング
– DRAMキャッシュのタグ情報はハイブリッド・キャッ
シュのデータアレイに格納
– ハイブリッドキャッシュのライン数より多いDRAMの
タグ情報をどのようにマッピングするか?
• ハードウェア・サポート
– ハイブリッド・キャッシュ内のタグ情報をどのように
して読みだすか?
• 動作モードの決定アルゴリズム
– いつ、何に基づき動作モードを決定するか?
10
タグ情報のマッピング
キャッシュ・モード時
データが格納される領域
タグ
タグ
デコーダ
キャッシュ・モード時
タグが格納される領域
2ウェイ・セットアソシアティブ
SRAMキャッシュ
1 Way
1 Way
L2 Cache
(DRAM)
L2
TagRAM Core(s)
(SRAM) + L1(s)
2ウェイ・セットアソシアティブ
DRAMキャッシュ
11
通常のキャッシュ構成
タグフィールド
下層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)
12
ハードウェア・サポート
タグフィールド
下層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)
13
ハイブリッド・キャッシュ搭載
プロセッサの利点・欠点
○DRAMスタック法より高性能、もしくは同性能
– 高速小容量のL2キャッシュと低速大容量のL2
キャッシュを選択的に活用
○消費エネルギーの削減
– キャッシュ・モード時、上層DRAMは動作しない
×下層ダイの面積増加
– マルチプレクサ等の追加→無視できる程に小さい
– 上層DRAMキャッシュに関するすべてのタグ情報
をハイブリッド・キャッシュに格納できない場合、メ
モリアレイを拡大する必要がある
14
動作モードの切り替え
• 静的切り替え
– プログラム実行前により高性
能な動作モードを決定する
– プログラム実行中に動作
モードの切り替えは行わな
い
L2キャッシュミス率[%]
50
キャッシュ・
モード
FFT
40
30
FMM
20
10
タグ・モード
Barnes
0
2MB
キャッシュ・
モード
2MB(12cc)
32MB(60cc)
400
タグ・モード
300
200
100
キャッシュ・
モード
0
1
8
15
22
29
36
43
50
57
64
71
78
85
92
99
– 動作モード切り替えタイミン
グの決定はプログラム実行
前・実行中のいずれか
L1ミスペナルティ[cc]
– プログラム実行中に動作
モードを切り替える
8MB 16MB 32MB 64MB 128MB
L2キャッシュ容量
Ocean
• 動的切り替え
4MB
区間
15
評価実験~評価対象モデル~
L2
Cache Core(s)
(SRAM) + L1(s)
2D-BASE
(=ベースプロセッサ)
L2 Data Cache
(DRAM)
L2
TagRAM Core(s)
(SRAM) + L1(s)
3D-CONV
(=DRAMスタック法)
未使用
L2 Data Cache
(DRAM)
L2
Cache Core(s)
(SRAM) + L1(s)
L2
TagRAM Core(s)
(SRAM) + L1(s)
静的切り替え:3D-HYBRID-STATIC
動的切り替え:3D-HYBRID-DYNAMIC
16
評価実験~実験環境~
• プロセッサシミュレータ:M5
• ベンチマークプログラム:SPEC CPU 2000 、Splash2から選択
• 評価対象
どちらのモードが高性能となる
–
–
–
–
2D-BASE
3D-CONV
3D-HYBRID-STATIC
3D-HYBRID-DYNAMIC
• 評価指標:AMAT
オンチップ
2D-BASE
キャッシュ・モード
コア
L1
L2
キャッシュ
主記憶
か実行前に既知であるとする
切り替える適切なタイミングは既
知とし、かつ切り替えによるオー
バーヘッドはなしと仮定
容量:32KB
アクセス時間:1clock cycle
容量:2MB
アクセス時間:
12clock cycles
オンチップ
3D-CONV
タグ・モード
容量:32MB
アクセス時間:
60 clock cycles
アクセス時間:300clock cycles
コア
L1
L2
キャッシュ
主記憶
17
評価実験~実験結果~
性能向上比
2D-BASE
3D-HYBRID-STATIC
4
3.5
3
2.5
2
1.5
1
0.5
0
3D-CONV
3D-HYBRID-DYNAMIC
ベンチマークプログラム
18
評価実験~実験結果~
性能向上比
2D-BASE
3D-HYBRID-STATIC
4
3.5
3
2.5
2
1.5
1
0.5
0
3D-CONV
3D-HYBRID-DYNAMIC
L2
Cache Core(s)
(SRAM) + L1(s)
2D-BASE
L2 Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
3D-CONV
ベンチマークプログラム
3D-CONVで性能が低下するプログラムが複数存在する
19
評価実験~実験結果~
性能向上比
2D-BASE
3D-HYBRID-STATIC
4
3.5
3
2.5
2
1.5
1
0.5
0
3D-CONV
L2
Cache Core(s)
(SRAM) + L1(s)
2D-BASE
3D-HYBRID-DYNAMIC
L2 Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
3D-CONV
未使用
L2
Core(s)
Cache
+ L1(s)
(SRAM)
L2 Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
静的切り替え:3D-HYBRID-STATIC
ベンチマークプログラム
3D-CONVで性能が低下するプログラムは3DHYBRID-STATICと2D-BASEが同じ性能となっている
20
評価実験~実験結果~
性能向上比
2D-BASE
3D-HYBRID-STATIC
4
3.5
3
2.5
2
1.5
1
0.5
0
3D-CONV
L2
Cache Core(s)
(SRAM) + L1(s)
2D-BASE
3D-HYBRID-DYNAMIC
L2 Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
3D-CONV
未使用
L2
Core(s)
Cache
+ L1(s)
(SRAM)
L2 Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
静的切り替え:3D-HYBRID-STATIC
ベンチマークプログラム
2D-BASEや3D-CONVと比較して3D-HYBRID-DYNAMICの性
能が大きく向上するプログラムがいくつか存在する
21
評価実験~実験結果~
未使用
性能向上比
2D-BASE
3D-HYBRID-STATIC
4
3.5
3
2.5
2
1.5
1
0.5
0
L2
Core(s)
Cache
+ L1(s)
(SRAM)
3D-CONV
L2 Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
静的切り替え:3D-HYBRID-STATIC
3D-HYBRID-DYNAMIC
未使用
L2
Core(s)
Cache
+ L1(s)
(SRAM)
L2 Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
静的切り替え:3D-HYBRID-STATIC
ベンチマークプログラム
3D-HYBRID-STATICと」3D-HYBRID-DYNAMICの性能
がほぼ変わらないプログラムが複数存在する
22
考察
181.mcfやOcean以外のプログラムの多くは
3D-HYBRID-DYNAMICの3D-HYBRID-STATICに
対する性能向上が小さい
171.swim
タグ・モード
2MB
200
100
0
区間
32MB
80
60
40
20
0
1
41
81
121
161
201
241
281
321
361
401
441
481
L1ミスペナルティ
300
1
30
59
88
117
146
175
204
233
262
291
320
349
L1ミスペナルティ
キャッシュ・モード
179.art
区間
プログラム実行の大部分でキャッシュ・モードが高
性能となるかタグ・モードが高性能となるため
23
まとめと今後の課題
• まとめ
– 高速かつ大容量なメモリを実現するハイブリッド・
キャッシュを提案
– 静的切り替えはDRAMスタック法に対し平均35%の性
能向上を達成
– 動的切り替えはベースプロセッサに対し最大115%の
性能向上を達成
• 今後の課題
– 動作モード決定アルゴリズムの考案(OSサポート等)
• 何か良いアイデアありませんでしょうか?
– マルチコア時の性能評価
– 消費エネルギーの評価
24
ご清聴ありがとうございました
25
backslide
26
パラメータ代入後(一例)
64ビットアドレス(物理アドレス) インデックスフィールド
タグフィールド
45
13 6
オフセットフィールド
43
15
6
下層SARM(容量:4MB
ラインサイズ:64B 連想度:8)
デコーダ
上層DARM(容量:32MB
ラインサイズ:64B 連想度:16)
13
64B
64B
2
45
15
45
MUX1
=
=
1
64B
IS = 45
ID = 43
Data
(SRAM)
1
45
43
MUX2
43
43
=
1
Hit/Miss
(SRAM)
=
64B
64B
MUX3
1
1
64B
1
Hit/Miss
(DRAM)
Data
(DRAM)
27
ハイブリッド・キャッシュの動作条件
•下層SRAMと上層DRAMの連想度が2のべき乗
インデックスの分割を可能にするため
CS
CD

)
• IS  ID (
LS WS LD WD
タグモード動作時、ハイブリッド・キャッシュの
1セットにアクセスを限定するため
CD WS
(64 lg LD  lg ID)  LS
•
CS WD
上層DRAMのすべてのタグをハイブリッド・
キャッシュに格納するため
28
評価実験~実験結果~
性能向上比
2D-BASE
3D-CONV
3D-HYBRID-STATIC
4
3.5
3
2.5
2
1.5
1
0.5
0
3D-HYBRID-DYNAMIC
38%向上
ベンチマークプログラム
3D-HYBRID-DYNAMICは2D-BASEと比較し性能が平均38%向上
3D-CONVと比較し性能が平均43%向上
29
研究のねらい
• 着眼点
プログラムによって、ま
たプログラム実行中にミ
ス率が変化
L2キャッシュミス率[%]
50
さらに大きな
キャッシュ容量
が必要
FFT
40
30
FMM
20
大きなキャッシュ
容量が必要
Barnes
10
0
4MB
8MB 16MB 32MB 64MB 128MB
L2キャッシュ容量
2MB(12cc)
32MB(60cc)
350
300
250
200
150
100
50
0
1
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97
DRAMスタック法の問題
点を解決する高速かつ
大容量なメモリ・アーキ
テクチャの提案と評価
L1ミスペナルティ[cc]
• 目的
小さなキャッシュ 2MB
容量で十分
区間
(300cc)
L1ミスペナルティ=HTL2+MRL2×MMAT
30
プログラム実行中の
適したキャッシュ容量の変化
Ocean
2MB(12cc)
32MB(60cc)
300
250
200
150
100
50
0
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
L1ミスペナルティ[cc]
350
区間
31
ハイブリッド・キャッシュ搭載プロセッサ
• プログラムのメモリ参照の振る舞いに応じて下層SRAM
キャッシュの動作モードを切り替える
– 必要なキャッシュ容量小・・・「キャッシュ・モード」
積載されたDRAMは使用せず、下層SRAMは通常のL2キャッシュ
– 必要なキャッシュ容量大・・・「タグ・モード」
積載されたDRAMはL2キャッシュ、下層SRAMのデータアレイにタグを格納
未使用
L2 Cache
(DRAM)
L2
Core(s)
Cache
(SRAM) + L1(s)
キャッシュモード
(高速かつ小容量L2キャッシュ)
切り替え
L2
TagRAM Core(s)
(SRAM) + L1(s)
タグモード
(低速かつ大容量L2キャッシュ)
33
各切り替えの特徴
性能向上
面積オーバー
ヘッド
入力サイズが
変化してもよ
いか
静的切り替え
○
○
×
動的切り替え
◎
△(※1)
△(※2)
※1、動作切り替えタイミングの決定をHWで実現する場合、×
それ以外なら○
※2、動作切り替えタイミングの決定をプログラム実行中に場合、○
それ以外なら×
34
各切り替えの利点・欠点
• 静的切り替え
〇動作モード切り替えに要するオーバーヘッド小
×実行プログラムの入力データによって適した動作モード
が異なる場合、性能が向上するとは限らない
• 動的切り替え
○プログラム実行中におけるメモリ参照の振る舞いにも対
応が可能 →静的切り替えより性能が向上する可能性
○実行中に切り替えタイミングを決定する場合、実行プロ
グラムの入力データによって適した動作モードが異なっ
ても、対応が可能
×動作モード切り替えに要するオーバーヘッド大
×実行中に切り替えタイミングを決定する場合、専用回路
の追加に伴う面積増大
35
評価実験~実験結果~
2D-BASE
3D-CONV
3D-HYBRID-STATIC
3D-HYBRID-DYNAMIC
性能向上比
4
3
L2
Cache Core(s)
(SRAM) + L1(s)
2D-BASE
(=ベースプロセッサ)
2
1
0
L2 Data Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
ベンチマークプログラム
3D-CONV
(=DRAMスタック法)
3D-CONVで性能が低下するプログラムが複数存在する
36
評価実験~実験結果~
2D-BASE
3D-CONV
3D-HYBRID-STATIC
3D-HYBRID-DYNAMIC
性能向上比
4
L2
Cache Core(s)
(SRAM) + L1(s)
2D-BASE
(=ベースプロセッサ)
3
2
L2 Data Cache
(DRAM)
1
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
0
3D-CONV
(=DRAMスタック法)
ベンチマークプログラム
未使用
L2 Data Cache
(DRAM)
3D-CONVで性能が低下するプログラ
ムは2D-BASEと同じ性能となっている
L2
Core(s)
Cache
+ L1(s)
(SRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
静的切り替え:3D-HYBRID-STATIC
37
評価実験~実験結果~
2D-BASE
3D-CONV
3D-HYBRID-STATIC
3D-HYBRID-DYNAMIC
性能向上比
4
3
2
1
0
•181.McfやOceanは
3D-HYBRID-STATIC
に対し
3D-HYBRID-DYNAMIC
の性能が大きく向上
•3D-HYBRID-DYNAMIC
は3D-HYBRID-STATIC
に対し性能向上は平
均わずか5%
ベンチマークプログラム
未使用
未使用
L2 Data Cache
(DRAM)
L2
Core(s)
Cache
+ L1(s)
(SRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
静的切り替え:3D-HYBRID-STATIC
L2 Core(s)
Cache+ L1(s)
(SRAM)
L2 Data Cache
(DRAM)
L2
TagRAM
Core(s)
(SRAM)
+ L1(s)
動的切り替え:3D-HYBRID-DYNAMIC
38
評価実験~実験結果~
未使用
性能向上比
2D-BASE
3D-HYBRID-STATIC
4
3.5
3
2.5
2
1.5
1
0.5
0
3D-CONV
3D-HYBRID-DYNAMIC
L2
Core(s)
Cache
+ L1(s)
(SRAM)
L2 Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
静的切り替え:3D-HYBRID-STATIC
未使用
L2
Core(s)
Cache
+ L1(s)
(SRAM)
L2 Cache
(DRAM)
L2
Core(s)
TagRAM
+ L1(s)
(SRAM)
静的切り替え:3D-HYBRID-DYNAMIC
ベンチマークプログラム
39
プログラム実行中のL1ミスペナルティ
の変化~FMM~
FMM
キャッシュ・モード
タグ・モード
350
250
200
150
100
50
0
1
8
15
22
29
36
43
50
57
64
71
78
85
92
99
106
113
120
127
134
141
148
155
162
L1ミスペナルティ
300
区間
40