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