3 次元 DRAM プロセッサ積層実装を 対象としたオンチップ メモリ アーキテクチャの提案と評価 橋口慎哉 小野貴継 ( 現 ) 井上弘士 村上和彰 九州大学大学院システム情報科学府 九州大学大学院システム情報科学研究院
発表手順 研究背景 研究目的 ハイブリッド キャッシュ アーキテクチャ 評価実験 まとめと今後の課題 2
3 次元実装技術 研究背景 グローバル配線長の削減 チップ面積縮小 異なるプロセスを経て製造されたダイ同士の積層 プロセッサ ダイと DRAM ダイを積層することによりオンチップ メモリの大容量化を実現可能 メモリウォール問題の解決策 TSV(Through Silicon Vias) 出典 : 米インテル社 3
3 次元実装によるキャッシュメモリの大容量化 DRAM スタック法 [Black MICRO 06] 従来の 2 次元実装プロセッサ ( ベースプロセッサ ) 上に 3 次元実装技術により大容量 DRAM キャッシュを積載 オフチップメモリアクセス回数削減 DRAMキャッシュのタグRAMとして数 MBの容量が必要下層のSRAMをタグRAMとして使用 Cache Cache + L(s) TagRAM + L(s) ベースプロセッサ (2 次元実装 ) DRAM スタック法 (3 次元実装 ) Bryan Black et al Die Stacking (3D) Architecture, International Symposium on Microarchitecture,2006 4
DRAMスタック法の問題点 Lキャッシュの Lキャッシュ キャッシュの キャッシュ 主記憶の アクセス時間 [cc] ミスの割合 アクセス時間 [cc] ミスの割合 アクセス時間 [cc] AMAT L L L 2 L 2 HT MR ( HT MR MMAT ) DRAM スタック法の効果 (?) 性能向上率 3.0 2.5 2.0.5.0 0.5 0 00 50 0 80 00 60 40 50 20 200 Ocean 性能向上 Cholesky 性能低下 0 キャッシュ キャッシュミス率の削減率アクセス時間の増加 [points] [cc] プログラムによっては性能が低下 5
キャッシュ容量とキャッシュミス率の関係 キャッシュュミス率 [% %] 60 50 40 30 20 0 0 LU FMM Ocean Cholesky Barnes Raytrace WaterSpatial 大きく低下する 大きく低下する FFT 大きく低下する あまり低下しない あまり低下しない あまり低下しない 2MB 4MB 8MB 6MB 32MB 64MB 28MB キャッシュ容量 6
プログラム実行中の 適したキャッシュ容量の変化 L ミスペナルルティ [cc] Ocean 350 300 250 200 50 00 50 0 2MB(2cc) 32MB(60cc) 6 6 2 26 3 36 4 46 5 56 6 66 7 76 8 86 9 96 0 適したキャッシュ容量 : 大適したキャッシュ容量 : 小 区間 (300cc) Lミスペナルティ =HT+MR MMAT 7
着眼点 研究のねらい 大容量 DRAMキャッシュの活用により必ずしも性能が向上するとは限らない 適したキャッシュ容量はプログラム間 ならびにプログラム内で変化 研究目的 DRAMスタック法の問題点を解決したメモリ アーキテクチャの提案と評価 大容量かつ低速キャッシュ ならびに 小容量かつ高速キャッシュ を同一アーキテクチャで実現 8
ハイブリッド キャッシュ搭載プロセッサ プログラム間 ( 中 ) の適したキャッシュ容量の変化に応じて下層 SRAM キャッシュの動作モードを切り替える 未使用 Cache Cache TagRAM + L(s) 切り替え + L(s) キャッシュモード タグモード ( 高速かつ小容量 キャッシュ ) ( 低速かつ大容量 キャッシュ ) Cache ハイブリッド キャッシュ Cache + L(s) 9
ハイブリッド キャッシュ実現への課題 タグ情報のマッピング DRAMキャッシュのタグ情報はハイブリッド キャッシュのデータアレイに格納 ハイブリッドキャッシュのライン数より多いDRAMのタグ情報をどのようにマッピングするか? ハードウェア サポート ハイブリッド キャッシュ内のタグ情報をどのようにして読みだすか? 動作モードの決定アルゴリズム いつ 何に基づき動作モードを決定するか? 0
タグ情報のマッピング デコーダ キャッシュ モード時データが格納される領域 タグ タグ キャッシュ モード時タグが格納される領域 2 ウェイ セットアソシアティブ SRAM キャッシュ Way Cache TagRAM + L(s) Way 2 ウェイ セットアソシアティブ DRAM キャッシュ
通常のキャッシュ構成 タグフィールド 下層 SARM( 容量 : CS デコーダラインサイズ : LS 連想度 : W S ) 64 ビットアドレス ( 物理アドレス ) インデックスフィールド 64 - lg LS - IS IS lg L S オフセットフィールド IS 64 - lg - S LS LS I LS 64 - lg LS - IS MUX. = =. 64 - lg LS - IS. I I D CS lg LS W C D lg L D W S S D LS Data Hit/Miss 2
ハードウェア サポート タグフィールド 下層 SARM( 容量 : CS デコーダラインサイズ : LS 連想度 : W S ) 64 ビットアドレス ( 物理アドレス ) インデックスフィールド 64 - lg LS - IS 64 - lg L D - ID IS ID lg L lg L S D オフセットフィールド C D 上層 DARM( 容量 : ラインサイズ : L D 連想度 : W D ) IS LS LS 64 - lg L S - I S C D LS W lg CS L D W S D ID I I D CS lg LS W C D lg L D W S 64 - lg LS - IS MUX S D LS Data 64 - lg L - IS S = = MUX2 Hit/Miss 追加 HW. 64 - lg L D - I D 追加 HW 64 - lg L D - ID = =.. 64 - lg L D - ID Hit/Miss L D L D MUX3 Data L D 追加 HW 3
ハイブリッド キャッシュ搭載 プロセッサの利点 欠点 DRAM スタック法より高性能 もしくは同性能 高速小容量の キャッシュと低速大容量の キャッシュを選択的に活用 消費エネルギーの削減 キャッシュ モード時 上層 DRAM は動作しない 下層ダイの面積増加 マルチプレクサ等の追加 無視できる程に小さい 上層 DRAM キャッシュに関するすべてのタグ情報 をハイブリッド キャッシュに格納できない場合 メモリアレイを拡大する必要がある 4
動作モードの切り替え 静的切り替え 40 プログラム実行前により高性能な動作モードを決定する プログラム実行中に動作モードの切り替えは行わない 動的切り替え プログラム実行中に動作モードを切り替える 動作モード切り替えタイミングの決定はプログラム実行前 実行中のいずれか キャッシュミスス率 [%] 50 30 20 0 Ocean ルティ [cc] L ミスペナ キャッシュ モード キャッシュ モード キャッシュ モード 0 400 300 200 00 0 Barnes FFT FMM タグ モード 2MB 4MB 8MB 6MB 32MB 64MB 28MB 2MB(2cc) キャッシュ容量 32MB(60cc) タグ モード 9 7 25 33 3 4 49 57 65 73 8 89 97 区間 5
評価実験 ~ 評価対象モデル ~ 未使用 Cache Data Cache + L(s) TagRAM + L(s) 2D BASE (= ベースプロセッサ ) 3D CONV (=DRAMスタック法) Data Cache Cache + L(s) TagRAM + L(s) 静的切り替え :3D HYBRID STATIC 動的切り替え :3D HYBRID DYNAMIC 6
評価実験 ~ 実験環境 ~ プロセッサシミュレータ :M5 ベンチマークプログラム :SPEC CPU 2000 Splash2から選択 評価対象 2D BASE 3D CONV 3D HYBRID STATIC 3D HYBRID DYNAMIC 評価指標 :AMAT オンチップ コア L 2D BASE キャッシュ モード 容量 :32KB アクセス時間 :clock cycle どちらのモードが高性能となるか実行前に既知であるとする 切り替える適切なタイミングは既知とし かつ切り替えによるオーバーヘッドはなしと仮定 3D CONV タグ モード コア L オンチップ キャッシュ 容量 :2MB アクセス時間 : 2clock cycles 容量 :32MB アクセス時間 : 60 clock cycles キャッシュ 主記憶 アクセス時間 :300clock cycles 主記憶 7
評価実験 ~ 実験結果 ~ 性能能向上比 2D BASE 3D HYBRID STATIC 4 3.5 3 2.5 2.5 0.5 0 3D CONV 3D HYBRID DYNAMIC ベンチマークプログラム 8
評価実験 ~ 実験結果 ~ 性能能向上比 2D BASE 3D CONV Cache Cache + L(s) TagRAM + L(s) 3D HYBRID STATIC 3D HYBRID DYNAMIC 4 2D BASE 3D CONV 3.5 3 2.5 2.5 0.5 0 ベンチマークプログラム 3D CONV で性能が低下するプログラムが複数存在する 9
評価実験 ~ 実験結果 ~ 性能能向上比 2D BASE 3D HYBRID STATIC 4 3.5 3 2.5 2.5 0.5 0 3D CONV Cache Cache + L(s) TagRAM 2D BASE 3D HYBRID DYNAMIC + L(s) 3D CONV Cache 未使用 Cache TagRAM + L(s) + L(s) 静的切り替え :3D HYBRID STATIC ベンチマークプログラム 3D CONV で性能が低下するプログラムは 3D HYBRID STATIC と 2D BASE が同じ性能となっている 20
評価実験 ~ 実験結果 ~ 性能能向上比 2D BASE 3D HYBRID STATIC 4 3.5 3 2.5 2.5 0.5 0 3D CONV Cache Cache + L(s) TagRAM 2D BASE 3D HYBRID DYNAMIC + L(s) 3D CONV Cache 未使用 Cache TagRAM + L(s) + L(s) 静的切り替え :3D HYBRID STATIC ベンチマークプログラム 2D BASE や 3D CONV と比較して 3D HYBRID DYNAMIC の性能が大きく向上するプログラムがいくつか存在する 2
性能能向上比 評価実験 ~ 実験結果 ~ Cache 未使用 Cache 未使用 Cache TagRAM 2D BASE 3D CONV + L(s) + L(s) 3D HYBRID STATIC 4 3.5 3 2.5 2.5 0.5 0 静的切り替え :3D HYBRID STATIC 3D HYBRID DYNAMIC Cache + L(s) Cache TagRAM + L(s) 静的切り替え :3D HYBRID STATIC ベンチマークプログラム 3D HYBRID STATIC と 3D HYBRID DYNAMIC の性能がほぼ変わらないプログラムが複数存在する 22
考察 8.mcf や Ocean 以外のプログラムの多くは 3D HYBRID DYNAMIC の 3D HYBRID STATIC に対する性能向上が小さい 7.swim 79.art キャッシュ モードタグ モード 2MB 32MB 300 200 00 0 80 60 40 20 0 Lミスペナルティ 44 48 333 65 97 29 6 93 225 257 289 32 3533 4 8 2 6 20 24 28 32 36 40 Lミスペナルティ 区間 区間 23 プログラム実行の大部分でキャッシュ モードが高性能となるかタグ モードが高性能となるため
まとめと今後の課題 まとめ 高速かつ大容量なメモリを実現するハイブリッド キャッシュを提案 静的切り替えは DRAM スタック法に対し平均 35% の性 能向上を達成 動的切り替えはベースプロセッサに対し最大 5% の性能向上を達成 今後の課題 動作モード決定アルゴリズムの考案 (OSサポート等) 何か良いアイデアありませんでしょうか? マルチコア時の性能評価 消費エネルギーの評価 24
ご清聴ありがとうございました 25