500 likes | 660 Views
SRAM/DRAM ハイブリッド・キャッシュ における 実行時動作モード決定法の提案. ○橋口慎哉 † 福本尚人 † 井上弘士 ‡ 村上和彰 ‡ † 九州大学大学院 システム情報科学府 ‡ 九州大学大学院 システム情報科学研究院. 発表手順. 3 次元実装技術 SRAM/DRAM ハイブリッド・キャッシュ 研究目的 実行時動作モード決定法 評価実験 まとめと今後の課題. 研究背景. 3 次元実装技術 グローバル配線長の削減、チップ面積縮小 異なるプロセスを経て製造されたダイ同士の積層
E N D
SRAM/DRAMハイブリッド・キャッシュにおける実行時動作モード決定法の提案SRAM/DRAMハイブリッド・キャッシュにおける実行時動作モード決定法の提案 ○橋口慎哉† 福本尚人† 井上弘士‡ 村上和彰‡ †九州大学大学院 システム情報科学府 ‡九州大学大学院 システム情報科学研究院
発表手順 • 3次元実装技術 • SRAM/DRAMハイブリッド・キャッシュ • 研究目的 • 実行時動作モード決定法 • 評価実験 • まとめと今後の課題
研究背景 • 3次元実装技術 • グローバル配線長の削減、チップ面積縮小 • 異なるプロセスを経て製造されたダイ同士の積層 • プロセッサ・ダイとDRAMダイを積層することによりオンチップ・メモリの大容量化を実現可能 →メモリウォール問題の解決策 TSV(Through SiliconVias) 出典:米インテル社
DRAMスタック法[1] L1キャッシュのアクセス時間[cc] L1キャッシュ ミスの割合 L2キャッシュのアクセス時間[cc] L2キャッシュ ミスの割合 平均メモリアクセス時間[cc] 主記憶の アクセス時間[cc] ベースプロセッサ(2次元実装) Core(s) + L1(s) 4MB L2 (SRAM) LU 削減量小 削減量小 FMM FFT DRAMスタック法(3次元実装) Ocean 削減量大 削減量大 64MB L2 (DRAM) Cholesky Barnes Core(s) + L1(s) 4MB Tag (SRAM) WaterSpatial Raytrace [1]Bryan Black et al. “Die Stacking (3D) Architecture,” International Symposium on Microarchitecture,2006
DRAMスタック法の問題点 プログラムによっては性能が低下する! ベースプロセッサ(2次元実装) 性能向上率 Core(s) + L1(s) 4MB L2 (SRAM) 3.0 Ocean 2.5 DRAMスタック法(3次元実装) 2.0 性能向上 64MB L2 (DRAM) 1.5 1.0 性能低下 Cholesky 0.5 Core(s) + L1(s) 4MB Tag (SRAM) 0 0 50 100 100 80 60 150 40 L2キャッシュ アクセス時間の増加 20 0 200 L2キャッシュミス率の削減率 5 [points] [cc]
SRAM/DRAM ハイブリッド・キャッシュ[2] • 異なる2種類の動作モードをプログラムのメモリ参照の特性に応じてプログラム間/内に切り替える 未使用 L2 Cache (DRAM) L2 Cache (SRAM) L2 Tag (SRAM) Core(s) + L1(s) Core(s) + L1(s) 切り替え SRAMキャッシュモード (高速・小容量L2キャッシュ) DRAMキャッシュモード (低速・大容量L2キャッシュ) DRAM Core(s) + L1(s) SRAM [2] 橋口慎哉, 小野貴継, 井上弘士, 村上和彰, “3次元DRAM-プロセッサ積層実装を対象としたオンチップ・メモリ・アーキテクチャの提案と評価,” 情報処理学会研究報告, Vol.2009-ARC-183, No.8, 2009年4月.
前回評価時における限界点 静的制御方式で平均35% 動的制御方式で平均43% の性能向上を達成 ただし・・・ • 適切な動作モード(※)は既知 • 実行時に動作モードを切り替える場合に発生する動作モード切り替えオーバーヘッド(フラッシュ)の影響は未考慮 ※より高い性能を実現 できる動作モード
研究のねらい • 研究目的 • SRAM/DRAMハイブリッド・キャッシュの動作モード決定法の提案 • 動作モード切り替えオーバヘッドを考慮した性能評価 動作モード 切り替え 動作モード決定 適切な動作モードは入力に大きく依存するため、 「動的決定・動的切り替え」を選択
プログラム実行中の適した動作モードの変化 twolf mcf ※区間=プログラムの実行を一定回数のL2キャッシュアクセスで分割した単位 ある実行区間とその次の区間の適した動作モードが同じである確率 mcf→ 95.9% twolf→ 100% 現在実行中の区間において高性能な動作モードは次の区間においても同じであると考える
動作モード切り替え例 動作モード切り替え (DRAMキャッシュモード→SRAMキャッシュモード) 動作モード切り替え (SRAMキャッシュモード→DRAMキャッシュモード) 動作モード判定開始 動作モード判定開始 区間ナンバー N-1 N N+1 N+2 N+3 M-1 M M+1 プログラムの実行 実行動作モード S S S S S S D D D D D SRAMキャッシュモードが高性能 SRAMキャッシュモードが高性能 DRAMキャッシュモードが高性能 ウォームアップ区間 (動作モード決定・切り替え、) ウォームアップ区間 動作モード決定区間 S:SRAMキャッシュ・モード D:DRAMキャッシュ・モード
動作モード決定のための判定式 以下の判定式を基に実行中の区間における適切な動作モードを求め、それを次区間の動作モードに設定 DRAMキャッシュモード SRAMキャッシュモード 動作モードを 決定したい区間 現在実行中の区間 :SRAM/DRAMキャッシュのミスの割合 プログラムの実行 :SRAM/DRAMキャッシュ、主記憶のアクセス時間[cc] 区間 1 2 N-1 N N+1
L2キャッシュミス率推定の必要性 DRAMキャッシュモード SRAMキャッシュモード ハードウェア特性にのみ依存するため、既知と仮定 • プログラム特性に依存するため、実行中にのみ得ることが可能 • 実行中の動作モードにおけるミス率 • →プログラム実行中に観測することは容易 • 実行中ではない動作モードにおけるミス率 • →何らかの方法により推測する必要
DRAMキャッシュモード時のミス率推測法 (L2キャッシュがSRAMキャッシュと仮定したときのミス率を推測) • 本モード時は下層SRAMのタグメモリは使用しない →DRAMキャッシュ用タグとは別に推測用にSRAMキャッシュモードを想定してタグを格納し、ヒット/ミス情報を取得 • を完全に知ることが可能 未使用 未使用 L2 Data L2 Data Core(s) + L1(s) Core(s) + L1(s) L2 Tag L2 Tag SRAMキャッシュ用タグ記憶・比較 SRAMキャッシュモード DRAMキャッシュモード
SRAMキャッシュモード時のミス率推測法 (L2キャッシュがDRAMキャッシュと仮定したときのミス率を推測) • DRAMキャッシュに格納可能なライン数分のタグ情報を保持するメモリを搭載 →極めて大きな面積オーバヘッド e.g. 32MB, 64B-LineSize・・・2.5MB-TagRAM • いくつかのセットに対応する、少数のタグ情報のみ保持し、面積オーバヘッドを緩和 ※実現のためのハードウェア・サポートは検討中
評価実験~評価環境~ • 評価法:事前実行でトレースを取得し、メモリ性能値を算出 • プロセッサシミュレータ:M5 • ベンチマークプログラム:SPEC CPU 2000、Splash2から選択 • 評価モデル • DRAM-STACK :DRAMスタック法 • D-HYBRID-IDEAL : 適した動作モードが既知であり、動作モード切り替えオーバーヘッドはゼロの動的ハイブリッド・キャッシュ • D-HYBRID : 提案する動的ハイブリッド・キャッシュ • 1区間の長さ:L2キャッシュアクセス5M回 • 性能オーバヘッド見積もり:動作モード切り替え後、切り替え先のキャッシュのライン数分のアクセスはミスすると仮定 SRAM$ モード 容量:2MB アクセス時間:6cycles 動作周波数:3GHz アクセス時間:181cycles 主記憶 L2 キャッシュ L1 キャッシュ コア DRAM-STACK、 DRAM$モード 容量:32KB アクセス時間:2cycles 容量:32MB アクセス時間:28cycles オンチップ
適切な動作モードの予測精度 頻繁に適した動作モードが入れ替わる
適切な動作モードの予測精度 区間数が少なく、1度予測が外れた時の影響が大きい
性能評価結果 3.01 3.01
性能評価結果 3.01 3.01 D-HYBRID-IDEALはDRAM-STACKに対して最大3.01倍、平均1.21倍の性能向上 ↑プログラム実行中のメモリ参照の変化に追従できるため
性能評価結果 3.01 3.01 mgrid プログラム実行中(ほぼ)全ての区間でDRAMキャッシュモードが高性能
性能評価結果 3.01 3.01 twolf プログラム実行中(ほぼ)全ての区間でSRAMキャッシュモードが高性能
性能評価結果 3.01 3.01 mcf 切り替え回数:11 適した動作モードが比較的変化する傾向にあり、動作モード切り替えオーバーヘッドが大きい
性能評価結果 3.01 3.01 Ocean 理想的には大きく性能が向上するが、1区間が長いとメモリ参照の変化に対して追従できない
性能評価結果 3.01 3.01 • D-HYBRIDはD-HYBRID-IDEALと比較してほぼ同じ性能 • 平均して約17%の性能向上を達成!
まとめと今後の課題 • まとめ • SRAM/DRAMハイブリッド・キャッシュ・アーキテクチャにおける動的動作モード決定法を提案 • 現在実行中の区間における適切な動作モードを次区間の動作モードとする • 評価実験で最大3.01倍、平均1.17倍の性能向上を確認 • 高い精度で次区間の適した動作モードを選択でき、また動作モード切り替え回数が少ないため • 今後の課題 • 消費エネルギーの評価 • プログラム実行前の動作モード決定法の考案
Q&A • マルチコアの場合、この手法でいけるのか? →今のままではだめだと感じていて、別の方法も考える必要がある • コンテキストスイッチのように複数のプログラムが切り替わっている場合はほとんど切り替わらない? →そのような状況も考えられる.今後の課題とします • 1区間の長さはどれくらい?(確認) →5M回で、比較的長くいです.これは,長さを変えて評価した結果です. • 切り替えオーバーヘッド見積もりはそれでよいのか? →ワーストケースであり、適当とは言えません.詳細に評価する必要があります. • DRAMキャッシュのサイズを変えた場合はうまみがなくなる?ほとんどDRAMキャッシュが高性能? →まだやれておらず,今後行う予定です. • ラインサイズ変える等して下のSRAMの半分をタグRAMとして使い、上のDRAMをL3として使えるのでは? →うまく答えられず
キャッシュ容量とキャッシュミス率の関係 LU FMM FFT 大きく低下する 大きく低下する 大きく低下する Ocean あまり低下しない あまり低下しない あまり低下しない Cholesky WaterSpatial Barnes Raytrace
プログラム実行中の適したキャッシュ容量の変化プログラム実行中の適したキャッシュ容量の変化 Ocean 適したキャッシュ容量:大 (300cc) L1ミスペナルティ=HTL2+MRL2×MMAT 適したキャッシュ容量:小
高性能動作モードの入力依存性 (2MBのSRAMキャッシュと32MBのDRAMキャッシュを想定) 入力により適した動作モードは異なる!
1区間の長さについて • 1区間を長く設定すると・・・ • 高性能な動作モードが切り替わる頻度は低下する→切り替えオーバーヘッド小 • メモリ参照の振る舞いに変化に対する追従性が低下する→適切な動作モードで実行する時間の低下 トレードオフ 1区間の長さは適切に設定する必要がある
SRAMキャッシュモード時のL2ミス率予測法 • DRAMキャッシュ用タグを、セットサンプリングすることで少量だけ保持するSSTを導入 • 対象セットに対するアクセス時のみアクセス数等カウント 0 0 1 1 2 2 3 4 SST:Set Sampled TagRAM(セットサンプリングされたタグRAM) ↑容量C/4[B] 8 容量C[B]→ 仮定: 連想度同一 1/4にセットサンプリング 本来必要なDRAMキャッシュ用タグRAM(SRAM)
ハードウェア・アーキテクチャ タグ インデックス オフセット 2bit 実際はサポートしないハードウェア フィルタ 00 0000 01 0001 10 0010 アクセス 0011 0100 もしインデックス下位2ビットが0なら 下位2ビットを除くインデックスを出力 0でないなら出力なし 1000 SST DRAMキャッシュのミス率 SSTでのヒット数 = 本来必要なDRAMキャッシュ用タグRAM(SRAM) SSTへのアクセス数
1区間の長さと性能の関係(1/3) mcf 切り替え回数増加によりキャッシュミス率増加 →1区間が短いほどD-HYBRIDは性能低下の傾向 追従性の向上と切り替えオーバーヘッド増加のトレードオフ mcfでは比較的区間が長い方が高性能(最適点は5M) メモリ参照の変化に対する追従性の向上→1区間が短いほどD-HYBRID-IDEALは高性能
1区間の長さと性能の関係(2/3) bzip2 追従性の影響が小さく、切り替えオーバーヘッドの影響が大きい →D-HYBRIDは1区間が長いほど高性能bzip2では比較的区間が長い方が高性能(最適点は10M) mcfの場合と同様の理由でD-HYBRID-IDEALはmcfと同様の傾向
1区間の長さと性能の関係(3/3) FFT プログラムの実行を通してほぼ全ての区間で適切な動作モードが同一 →区間の長さによらずD-HYBRID-IDEALとD-HYBRIDともにほぼ同性能 これら以外のプログラムに関しても、この3種類に分類ことが可能 →本評価では、D-HYBRIDにおける1区間の長さを5Mアクセスに設定
Sensitivity Analysis 今回の評価ポイント HTDRAM[cc] プログラム:FFT MMAT[cc] HTDRAMが小さいほど、またMMATが小さいほどDRAMキャッシュモードが適する区間が増加
Sensitivity Analysis 今回の評価ポイント HTDRAM[cc] プログラム:mcf MMAT[cc] HTDRAMが小さいほど、またMMATが小さいほどDRAMキャッシュモードが適する区間が増加 値が1より小さいのは切り替えオーバーヘッドのため
Sensitivity Analysis プログラム:Ocean 今回の評価ポイント HTDRAM[cc] MMAT[cc] 谷の形の部分があるのは、動作モード切り替えオーバーヘッドの影響が大きく見えているため その他の部分では切り替えが発生しない
実測ミス率と推測ミス率の誤差 ※DRAMキャッシュの容量:32MB 1区間の長さ:L2キャッシュアクセス1M回
L1ミスペナルティの変化(SPEC-1) ammp applu apsi art
L1ミスペナルティの変化(SPEC-2) gzip bzip2 mgrid mcf
L1ミスペナルティの変化(SPEC-3) swim twolf wupwise
L1ミスペナルティの変化(Splash2-1) Cholesky FFT LU Barnes
L1ミスペナルティの変化(Splash2-2) FMM Ocean Raytrace WaterSpatial
プログラムの入力とキャッシュミス率の関係 Barnes FFT FMM Ocean