390 likes | 584 Views
3 次元 DRAM- プロセッサ積層実装を 対象としたオンチップ・メモリ・ アーキテクチャの提案と評価. ○橋口慎哉 † 小野貴継 † (現 ‡ ) 井上弘士 ‡ 村上和彰 ‡ † 九州大学大学院 システム情報科学府 ‡ 九州大学大学院 システム情報科学研究院. 発表手順. 研究背景 研究目的 ハイブリッド・キャッシュ・アーキテクチャ 評価実験 まとめと今後の課題. 研究背景. 3 次元実装技術 グローバル配線長の削減、チップ面積縮小 異なるプロセスを経て製造されたダイ同士の積層
E N D
3次元DRAM-プロセッサ積層実装を対象としたオンチップ・メモリ・アーキテクチャの提案と評価3次元DRAM-プロセッサ積層実装を対象としたオンチップ・メモリ・アーキテクチャの提案と評価 ○橋口慎哉† 小野貴継†(現‡) 井上弘士‡ 村上和彰‡ †九州大学大学院 システム情報科学府 ‡九州大学大学院 システム情報科学研究院
発表手順 • 研究背景 • 研究目的 • ハイブリッド・キャッシュ・アーキテクチャ • 評価実験 • まとめと今後の課題
研究背景 • 3次元実装技術 • グローバル配線長の削減、チップ面積縮小 • 異なるプロセスを経て製造されたダイ同士の積層 • プロセッサ・ダイとDRAMダイを積層することによりオンチップ・メモリの大容量化を実現可能 →メモリウォール問題の解決策 TSV(Through SiliconVias) 出典:米インテル社
3次元実装によるキャッシュメモリの大容量化3次元実装によるキャッシュメモリの大容量化 下層のSRAMをタグRAMとして使用 オフチップメモリアクセス回数削減 L2 Cache (DRAM) L2 TagRAM (SRAM) L2 Cache (SRAM) Core(s) + L1(s) Core(s) + L1(s) ベースプロセッサ(2次元実装) DRAMスタック法(3次元実装) • DRAMスタック法[Black MICRO’06] • 従来の2次元実装プロセッサ(ベースプロセッサ)上に3次元実装技術により大容量DRAMキャッシュを積載 • DRAMキャッシュのタグRAMとして数MBの容量が必要 Bryan Black et al “Die Stacking (3D) Architecture,” International Symposium on Microarchitecture,2006
DRAMスタック法の問題点 L1キャッシュのアクセス時間[cc] L1キャッシュ ミスの割合 L2キャッシュのアクセス時間[cc] L2キャッシュ ミスの割合 主記憶のアクセス時間[cc] 性能向上率 3.0 2.5 Ocean 2.0 性能向上 1.5 プログラムによっては 性能が低下 1.0 性能低下 0.5 Cholesky 0 0 50 100 100 80 60 150 40 L2キャッシュ アクセス時間の増加 20 0 200 L2キャッシュミス率の削減率 [points] [cc]
キャッシュ容量とキャッシュミス率の関係 大きく低下する LU あまり低下しない FMM FFT 大きく低下する Ocean あまり低下しない 大きく低下する Cholesky あまり低下しない WaterSpatial Barnes Raytrace
プログラム実行中の適したキャッシュ容量の変化プログラム実行中の適したキャッシュ容量の変化 Ocean 適したキャッシュ容量:大 (300cc) L1ミスペナルティ=HTL2+MRL2×MMAT 適したキャッシュ容量:小
研究のねらい • 着眼点 • 大容量DRAMキャッシュの活用により必ずしも性能が向上するとは限らない • 適したキャッシュ容量はプログラム間、ならびにプログラム内で変化 • 研究目的 • DRAMスタック法の問題点を解決したメモリ・アーキテクチャの提案と評価 • 「大容量かつ低速キャッシュ」ならびに「小容量かつ高速キャッシュ」を同一アーキテクチャで実現
ハイブリッド・キャッシュ搭載プロセッサ • プログラム間(中)の適したキャッシュ容量の変化に応じて下層SRAMキャッシュの動作モードを切り替える 未使用 L2 Cache (DRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) Core(s) + L1(s) Core(s) + L1(s) 切り替え タグモード (低速かつ大容量L2キャッシュ) キャッシュモード (高速かつ小容量L2キャッシュ) L2 Cache (DRAM) Core(s) + L1(s) Cache (SRAM) ハイブリッド・キャッシュ
ハイブリッド・キャッシュ実現への課題 • タグ情報のマッピング • DRAMキャッシュのタグ情報はハイブリッド・キャッシュのデータアレイに格納 • ハイブリッドキャッシュのライン数より多いDRAMのタグ情報をどのようにマッピングするか? • ハードウェア・サポート • ハイブリッド・キャッシュ内のタグ情報をどのようにして読みだすか? • 動作モードの決定アルゴリズム • いつ、何に基づき動作モードを決定するか?
タグ情報のマッピング タグ キャッシュ・モード時 データが格納される領域 タグ デコーダ キャッシュ・モード時 タグが格納される領域 1 Way L2 Cache (DRAM) 1 Way 2ウェイ・セットアソシアティブ SRAMキャッシュ 2ウェイ・セットアソシアティブ DRAMキャッシュ L2 TagRAM (SRAM) Core(s) + L1(s)
通常のキャッシュ構成 64ビットアドレス(物理アドレス) インデックスフィールド タグフィールド オフセットフィールド 下層SARM(容量: ラインサイズ: 連想度: ) デコーダ . . . = = MUX1 Data (SRAM) Hit/Miss (SRAM)
ハードウェア・サポート 64ビットアドレス(物理アドレス) インデックスフィールド タグフィールド オフセットフィールド 下層SARM(容量: ラインサイズ: 連想度: ) デコーダ 上層DARM(容量: ラインサイズ: 連想度: ) = = 追加HW MUX2 MUX1 . . . = = Data (SRAM) 追加HW MUX3 追加HW 追加HW 追加HW Hit/Miss (SRAM) Data (DRAM) Hit/Miss (DRAM)
ハイブリッド・キャッシュ搭載プロセッサの利点・欠点ハイブリッド・キャッシュ搭載プロセッサの利点・欠点 ○DRAMスタック法より高性能、もしくは同性能 • 高速小容量のL2キャッシュと低速大容量のL2キャッシュを選択的に活用 ○消費エネルギーの削減 • キャッシュ・モード時、上層DRAMは動作しない ×下層ダイの面積増加 • マルチプレクサ等の追加→無視できる程に小さい • 上層DRAMキャッシュに関するすべてのタグ情報をハイブリッド・キャッシュに格納できない場合、メモリアレイを拡大する必要がある
動作モードの切り替え キャッシュ・モード FFT • 静的切り替え • プログラム実行前により高性能な動作モードを決定する • プログラム実行中に動作モードの切り替えは行わない • 動的切り替え • プログラム実行中に動作モードを切り替える • 動作モード切り替えタイミングの決定はプログラム実行前・実行中のいずれか FMM タグ・モード Barnes キャッシュ・モード Ocean タグ・モード キャッシュ・モード
評価実験~評価対象モデル~ 2D-BASE (=ベースプロセッサ) 3D-CONV (=DRAMスタック法) 未使用 L2 Data Cache (DRAM) L2 Data Cache (DRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) L2 TagRAM (SRAM) L2 Cache (SRAM) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) 静的切り替え:3D-HYBRID-STATIC 動的切り替え:3D-HYBRID-DYNAMIC
評価実験~実験環境~ • プロセッサシミュレータ:M5 • ベンチマークプログラム:SPEC CPU 2000 、Splash2から選択 • 評価対象 • 2D-BASE • 3D-CONV • 3D-HYBRID-STATIC • 3D-HYBRID-DYNAMIC • 評価指標:AMAT どちらのモードが高性能となるか実行前に既知であるとする 切り替える適切なタイミングは既知とし、かつ切り替えによるオーバーヘッドはなしと仮定 オンチップ オンチップ 2D-BASE キャッシュ・モード 3D-CONV タグ・モード コア コア 容量:32KB アクセス時間:1clock cycle L1 L1 容量:2MB アクセス時間: 12clock cycles 容量:32MB アクセス時間:60 clock cycles L2 キャッシュ L2 キャッシュ 主記憶 アクセス時間:300clock cycles 主記憶
評価実験~実験結果~ 2D-BASE 3D-CONV L2Cache (DRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) Core(s) + L1(s) Core(s) + L1(s) 3D-CONVで性能が低下するプログラムが複数存在する
評価実験~実験結果~ 2D-BASE 3D-CONV L2 Cache (DRAM) 未使用 L2Cache (DRAM) L2 Cache (SRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) L2 TagRAM (SRAM) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) 3D-CONVで性能が低下するプログラムは3D-HYBRID-STATICと2D-BASEが同じ性能となっている 静的切り替え:3D-HYBRID-STATIC
評価実験~実験結果~ 2D-BASE 3D-CONV L2 Cache (DRAM) 未使用 L2Cache (DRAM) L2 Cache (SRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) L2 TagRAM (SRAM) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) 2D-BASEや3D-CONVと比較して3D-HYBRID-DYNAMICの性能が大きく向上するプログラムがいくつか存在する 静的切り替え:3D-HYBRID-STATIC
評価実験~実験結果~ L2 Cache (DRAM) L2 Cache (DRAM) 未使用 未使用 L2 Cache (SRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) L2 TagRAM (SRAM) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) 3D-HYBRID-STATICと」3D-HYBRID-DYNAMICの性能がほぼ変わらないプログラムが複数存在する 静的切り替え:3D-HYBRID-STATIC 静的切り替え:3D-HYBRID-STATIC
考察 181.mcfやOcean以外のプログラムの多くは3D-HYBRID-DYNAMICの3D-HYBRID-STATICに対する性能向上が小さい プログラム実行の大部分でキャッシュ・モードが高性能となるかタグ・モードが高性能となるため
まとめと今後の課題 • まとめ • 高速かつ大容量なメモリを実現するハイブリッド・キャッシュを提案 • 静的切り替えはDRAMスタック法に対し平均35%の性能向上を達成 • 動的切り替えはベースプロセッサに対し最大115%の性能向上を達成 • 今後の課題 • 動作モード決定アルゴリズムの考案(OSサポート等) • 何か良いアイデアありませんでしょうか? • マルチコア時の性能評価 • 消費エネルギーの評価
64ビットアドレス(物理アドレス) インデックスフィールド タグフィールド パラメータ代入後(一例) 45 13 6 オフセットフィールド 43 15 6 下層SARM(容量:4MB ラインサイズ:64B 連想度:8) デコーダ 上層DARM(容量:32MB ラインサイズ:64B 連想度:16) 13 2 64B 64B 45 15 45 45 = = MUX2 MUX1 43 1 1 43 43 64B 64B 64B = = Data (SRAM) MUX3 1 1 IS = 45 1 Hit/Miss (SRAM) 64B Data (DRAM) ID = 43 Hit/Miss (DRAM) 1
ハイブリッド・キャッシュの動作条件 • 下層SRAMと上層DRAMの連想度が2のべき乗 • インデックスの分割を可能にするため • タグモード動作時、ハイブリッド・キャッシュの1セットにアクセスを限定するため • 上層DRAMのすべてのタグをハイブリッド・ • キャッシュに格納するため
評価実験~実験結果~ 38%向上 3D-HYBRID-DYNAMICは2D-BASEと比較し性能が平均38%向上 3D-CONVと比較し性能が平均43%向上
研究のねらい さらに大きなキャッシュ容量が必要 FFT • 着眼点プログラムによって、またプログラム実行中にミス率が変化 • 目的DRAMスタック法の問題点を解決する高速かつ大容量なメモリ・アーキテクチャの提案と評価 大きなキャッシュ容量が必要 FMM Barnes 小さなキャッシュ容量で十分 (300cc) L1ミスペナルティ=HTL2+MRL2×MMAT
プログラム実行中の適したキャッシュ容量の変化プログラム実行中の適したキャッシュ容量の変化 Ocean
ハイブリッド・キャッシュ搭載プロセッサ • プログラムのメモリ参照の振る舞いに応じて下層SRAMキャッシュの動作モードを切り替える • 必要なキャッシュ容量小・・・「キャッシュ・モード」 積載されたDRAMは使用せず、下層SRAMは通常のL2キャッシュ • 必要なキャッシュ容量大・・・「タグ・モード」 積載されたDRAMはL2キャッシュ、下層SRAMのデータアレイにタグを格納 未使用 L2 Cache (DRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) Core(s) + L1(s) Core(s) + L1(s) 切り替え タグモード (低速かつ大容量L2キャッシュ) キャッシュモード (高速かつ小容量L2キャッシュ)
各切り替えの特徴 ※1、動作切り替えタイミングの決定をHWで実現する場合、× それ以外なら○ ※2、動作切り替えタイミングの決定をプログラム実行中に場合、○ それ以外なら×
各切り替えの利点・欠点 • 静的切り替え 〇動作モード切り替えに要するオーバーヘッド小 ×実行プログラムの入力データによって適した動作モードが異なる場合、性能が向上するとは限らない • 動的切り替え ○プログラム実行中におけるメモリ参照の振る舞いにも対応が可能 →静的切り替えより性能が向上する可能性 ○実行中に切り替えタイミングを決定する場合、実行プログラムの入力データによって適した動作モードが異なっても、対応が可能 ×動作モード切り替えに要するオーバーヘッド大 ×実行中に切り替えタイミングを決定する場合、専用回路の追加に伴う面積増大
評価実験~実験結果~ 2D-BASE (=ベースプロセッサ) 3D-CONV (=DRAMスタック法) L2 Data Cache (DRAM) L2 TagRAM (SRAM) L2 Cache (SRAM) Core(s) + L1(s) Core(s) + L1(s) 3D-CONVで性能が低下するプログラムが複数存在する
評価実験~実験結果~ 2D-BASE (=ベースプロセッサ) 3D-CONV (=DRAMスタック法) 未使用 L2 Data Cache (DRAM) L2 Data Cache (DRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) L2 TagRAM (SRAM) L2 Cache (SRAM) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) 3D-CONVで性能が低下するプログラ ムは2D-BASEと同じ性能となっている 静的切り替え:3D-HYBRID-STATIC
評価実験~実験結果~ • 181.McfやOceanは3D-HYBRID-STATIC • に対し • 3D-HYBRID-DYNAMIC • の性能が大きく向上 • 3D-HYBRID-DYNAMIC • は3D-HYBRID-STATIC • に対し性能向上は平 • 均わずか5% 未使用 未使用 L2 Data Cache (DRAM) L2 Data Cache (DRAM) L2 TagRAM (SRAM) L2 Cache (SRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) 静的切り替え:3D-HYBRID-STATIC 動的切り替え:3D-HYBRID-DYNAMIC
評価実験~実験結果~ L2 Cache (DRAM) L2 Cache (DRAM) 未使用 未使用 L2 Cache (SRAM) L2 Cache (SRAM) L2 TagRAM (SRAM) L2 TagRAM (SRAM) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) Core(s) + L1(s) 静的切り替え:3D-HYBRID-DYNAMIC 静的切り替え:3D-HYBRID-STATIC
プログラム実行中のL1ミスペナルティの変化~FMM~プログラム実行中のL1ミスペナルティの変化~FMM~