30
3 次次次次 SRAM/DRAM 次次次次次次 次次次次次 ○ 次次次次† 次‡ 次次次次† 次次次次† 次次次次† † 次次次次 ‡ 次次次次次次次 1

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

  • Upload
    cutler

  • View
    83

  • Download
    0

Embed Size (px)

DESCRIPTION

3 次元積層 SRAM/DRAM ハイブリッド・キャッシュ. ○橋口慎哉 † (現 ‡ ) 福本尚人 †   井上 弘士 †  村上和 彰 † † 九州大学 ‡ 富士通株式会社. 発表手順. 3 次元積層技術と DRAM スタック法 研究 目的 SRAM/DRAM ハイブリッド・キャッシュ 評価実験 まとめと今後の課題. 研究背景. 3 次元積層技術 グローバル配線長の削減、チップ面積縮小 異なるプロセスを経て製造されたダイ同士の積層 プロセッサ・ダイと DRAM ダイを積層することによりオンチップ・メモリの大容量化を実現可能  →メモリウォール問題の解決策. - PowerPoint PPT Presentation

Citation preview

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

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

○ 橋口慎哉†(現‡) 福本尚人†   井上弘士† 村上和彰†

† 九州大学‡ 富士通株式会社

1

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

発表手順• 3 次元積層技術と DRAM スタック法• 研究目的• SRAM/DRAM ハイブリッド・キャッシュ• 評価実験• まとめと今後の課題

2

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

研究背景• 3 次元積層技術– グローバル配線長の削減、チップ面積縮小– 異なるプロセスを経て製造されたダイ同士の積層

• プロセッサ・ダイと DRAM ダイを積層することによりオンチップ・メモリの大容量化を実現可能 →メモリウォール問題の解決策

3出典:米インテル社

TSV ( Through    Silicon Vias )

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

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]プログラムによっては性能低下の可能性

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

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

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

プログラム実行中のミス率削減効果の違い

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]

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

研究のねらい• 着眼点– 大容量 DRAM キャッシュの活用により必ずしも

性能が向上するとは限らない– 適したキャッシュ容量はプログラム間、ならび

にプログラム内で変化• 研究目的– DRAM スタック法の問題点を解決したメモリ・

アーキテクチャの提案と評価– 「大容量かつ低速キャッシュ」ならびに「小容

量かつ高速キャッシュ」を同一アーキテクチャで実現

7

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

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)

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

2 ウェイ・セットアソシアティブSRAM キャッシュ

1 Way

1 Way

2 ウェイ・セットアソシアティブDRAM キャッシュ

SRAM キャッシュモード時のデータ格

納場所

SRAM キャッシュモード時のタグ格納

場所

デコーダ

タグ情報のマッピング

9

タグタグ

L2Tag

L2 Cache

Core(s)+ L1(s)

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

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

.

..

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

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

.. .

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

動作モード決定法

以下の判定式を基に実行中の区間における適切な動作モードを求め、それを次区間の動作モードに設定

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 アクセス

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

下層 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

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

下層 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

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

下層 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

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

評価モデル• 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

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

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

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

評価結果

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

ベンチマークプログラム

メモリ性能向上比

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

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

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

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

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

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

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

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

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

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

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

まとめと今後の課題• まとめ– DRAM スタック法の問題点を解決する SRAM/DRAM

ハイブリッド・キャッシュを提案– 実行中の動作モードを切り替えで性能低下する場合

が多い• 今後の課題– より性能が向上する実行中動作モード決定法の考案– プログラム毎に動作モードの決定・設定をする静的方式の検討

– 消費エネルギー評価

24

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

ご清聴ありがとうございました

25

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

高性能動作モードの入力依存性

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]

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

入力依存性を考慮した動作モード決定・切り替え

プログラム実行前(静的)

プログラム実行中(動的)

プログラム実行前

(静的)

○ 動作モード切り替えオー バーヘッドなし× 適切な動作モードが入力に 依存する場合、対応不可

○ プログラムの実行中の適し た動作モードの変化に対応 可能× 動作モード切り替えオー バーヘッド発生× 適切な動作モードが入力に 依存する場合、対応不可

プログラム実行中

(動的)

○ 実行中の適した動作モード の変化に対応可能× 動作モード切り替えオー バーヘッド発生× 動作モード決定のためハー ドウェアサポートが必要

27

動作モード 切り替え

動作モード決定

適切な動作モードは入力に大きく依存するため、「動的決定・動的切り替

え」を選択

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

動作モード切り替え例

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 キャッシュモードが高

性能

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

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

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

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