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
© Copyright 2024 ExpyDoc