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