1.01k likes | 1.45k Views
キャッシュ・メモリの 高性能化と低消費電力化. 福岡大学 工学部 電子情報工学科 助手. 井上 弘士. 発表手順. キャッシュのいろは 高 性能化技術 動的可変ラインキャッシュ 低消費電力化技術 ウェイ予測キャッシュ(とその後) タグ比較省略キャッシュ(とその後) まとめと今後の課題. データの記憶. DRAM. プロセッサーメモリ間性能差の隠蔽. オンチップ・キャッシュの搭載. データの記憶. 演算処理. +. CPU. Cache Memory. メモリ参照の時間的 / 空間的局所性を活用. CPU. Cache.
E N D
キャッシュ・メモリの 高性能化と低消費電力化 福岡大学 工学部 電子情報工学科 助手 井上 弘士
発表手順 • キャッシュのいろは • 高性能化技術 • 動的可変ラインキャッシュ • 低消費電力化技術 • ウェイ予測キャッシュ(とその後) • タグ比較省略キャッシュ(とその後) • まとめと今後の課題
データの記憶 DRAM プロセッサーメモリ間性能差の隠蔽 オンチップ・キャッシュの搭載 データの記憶 演算処理 + CPU Cache Memory メモリ参照の時間的/空間的局所性を活用
CPU Cache Main Memory キャッシュ・メモリとは? CPU Main Memory
スーパスカラ・プロセッサ 村上 監訳 マイクロ・コンピュータ 田丸・安浦 著 SpecCによるCPU開発 冨山宏之 著 メモリ参照の局所性 時間的局所性:メモリ上のある項目が参照されると、間もなくそれが再び参照される確率が高い、という性質 空間的局所性:メモリ上のある項目が参照されると、その近くの項目も間もなく参照される確率が高い、という性質 ヘネシー&パターソン コンピュータ・アーキテクチャ CPUについて 調べたい!
Largest number (14) 1st session on caches どのくらい研究されてきたのか? Jean-Loup Baer, "2K papers on caches by Y2K: Do we need more?“ HPCA-6 Keynote
性能差は十分隠蔽できているのか? NO! Alpha 21164 Fraction of time spent in Processor I-Cache Misses SPECint92 (22%) SPECfp92 (32%) D-Cache Misses L2 Cache Misses L3 Cache Misses Database (77%) Sparse (73%) From D. Patterson et al., (IEEE Micro)
高性能化だけで十分なのか? NO! • 携帯システムにおけるバッテリ駆動時間の延長 • 高性能システムにおけるチップ発熱の抑制 チップ全体の消費電力においてキャッシュが占める割合 DEC 21164 CPU* StrongARM SA-110 CPU* Bipolar ECL CPU** 50% 25% 43% * Kamble et. al., “Analytical energy Dissipation Models for Low Power Caches”, ISLPED’97 ** Joouppi et. al., “A 300-MHz 115-W 32-b Bipolar ECL Microprocessor” ,IEEE Journal of Solid-State Circuits’93
マイクロプロセッサの消費電力(汎用CPU:PentiumPro)マイクロプロセッサの消費電力(汎用CPU:PentiumPro) Srilaha Manne, Artur Klauser, and Dirk Grunwald, “Pipeline Gating: Speculation Control For Energy Reduction,” ISCA25, 1998.
マイクロプロセッサの消費電力(ARM920T) Simon Segars, “Low Power Design Techniques for Microprocessors,” ISSCC2001
発表手順 • キャッシュのいろは • 高性能化技術 • 動的可変ラインキャッシュ • 低消費電力化技術 • ウェイ予測キャッシュ(とその後) • タグ比較省略キャッシュ(とその後) • まとめと今後の課題
キャッシュ・メモリの性能 平均メモリ・アクセス時間(AMAT) AMAT=HitTime + (MissRate×MissPenalty) • HitTime:キャッシュにヒットした場合のアクセス時間(プロセッサがアドレスを出力して所望の命令/データを取得するまでの所要時間) • MissRate:キャッシュのミス率 MissRate=ミス回数/メモリ・アクセス回数 • MissPenalty:キャッシュにミスした際に,主記憶から所望の命令/データを取得してくるのに要する時間
キャッシュ・メモリの高性能化 AMAT=HitTime + (MissRate×MissPenalty) • ミス・ペナルティの低減 • ミス・ペナルティは, • 主記憶(DRAM)のアクセス時間 • キャッシュ-主記憶間バンド巾 • ブロック・サイズ • 等で決まる • ミス率の削減 • ミス率は, • キャッシュ・サイズ • ブロック・サイズ • 連想度 • 等で決まる • ヒット時間の低減 • ヒット時間は, • キャッシュ・サイズ • ブロック・サイズ • 連想度 • 等で決まる
キャッシュ・サイズとヒット時間 Direct-map, 16B block キャッシュ・ヒット時間 (キャッシュ・アクセス時間) • 傾向:キャッシュ・サイズの増加と伴にヒット時間が長くなる • 理由:負荷容量が大きくなるため S. Wilton and N. Jouppi, “An Enhanced Access and Cycle Time Model for On-Chip Caches,” WRL Research Report 93/5
連想度(ウェイ数)とヒット時間 16KB Cache Size, 16B block キャッシュ・ヒット時間 (キャッシュ・アクセス時間) • 傾向:連想度(ウェイ数)の増加と伴にヒット時間が長くなる • 理由:クリティカル・パスが長くなるため S. Wilton and N. Jouppi, “An Enhanced Access and Cycle Time Model for On-Chip Caches,” WRL Research Report 93/5
Address 31 ……………… 10 9 …… .... 2 1 0 8 8 22 Tag Index Data Data Data Index Tag Tag Tag Data V V Tag V V 0 0 1 1 2 2 253 254 255 22 32 4 - 1 MUX Hit Data 連想度(ウェイ数)とヒット時間 < ダイレクト・マップ・ キャッシュのヒット時間 4ウェイ・セット・アソシアティブ・キャッシュのヒット時間 Address Address Address 31 31 … … .. .. … … .. 12 11 .. 12 11 … … . 2 1 0 . 2 1 0 31 ……………… 10 9 …… .... 2 1 0 22 20 20 10 10 Tag Tag Tag Index Index Index Data Data Data Index Tag Tag Tag Data V V Tag V V Index Index Valid Valid Tag Tag Data Data 0 0 1 1 253 2 2 254 255 22 32 1021 1021 1022 1022 1023 1023 32 32 20 20 = = 4 - 1 MUX クリティカル・パス Hit Data Data Data Hit Hit
ブロックサイズとヒット時間 Direct-map • 傾向:ブロックサイズの増加と伴にヒット時間が短くなる • 理由:デコーダ遅延の低下 Set-Associative • 傾向:ブロックサイズが32Bを超えるとヒット時間が増加 • 理由:出力ドライバ遅延の増加(負荷の増大) Direct-map 4-way set-associative S. Wilton and N. Jouppi, “An Enhanced Access and Cycle Time Model for On-Chip Caches,” WRL Research Report 93/5
キャッシュ・メモリと高性能化ートレード・オフーキャッシュ・メモリと高性能化ートレード・オフー AMAT=HitTime + (MissRate×MissPenalty)
キャッシュ・メモリの高性能化 AMAT=HitTime + (MissRate×MissPenalty) • ミス・ペナルティの低減 • ミス・ペナルティは, • 主記憶(DRAM)のアクセス時間 • キャッシュ-主記憶間バンド巾 • ブロック・サイズ • 等で決まる • ミス率の削減 • ミス率は, • キャッシュ・サイズ • ブロック・サイズ • 連想度 • 等で決まる • ヒット時間の低減 • ヒット時間は, • キャッシュ・サイズ • ブロック・サイズ • 連想度 • 等で決まる
ミス率の削減 • キャッシュ・ミスの原因 • Compulsory Miss(初期参照ミス):メモリ・ブロックに対する最初のアクセスは必ずミスする • Conflict Miss(競合性ミス):1個のキャッシュ・ブロックを複数のメモリ・ブロックが共用する • Capacity Miss(容量性ミス):すべてのメモリ・ブロックをキャッシュに置くことは出来ない • 対策 • キャッシュ・サイズを大きくする • ブロック・サイズを大きくする • 連想度を大きくする
キャッシュ・ミスの原因の分析 • 傾向:連想度を高くするとミス率が低下する。 • 理由:競合性ミスを削減できるため。 14% 1-way Conflict Miss 12% 2-way 10% • 傾向:キャッシュ・サイズを増加するとミス率が低下する。 • 理由:容量性ミスを削減できるため。 4-way 8% ミス率 8-way 6% Capacity Miss 4% 2% 0% 2 4 8 1 16 32 64 128 キャッシュ・サイズ (KB)
ブロック・サイズとミス率 104.hydro2d 14.0 072.sc 12.0 052.alvinn 10.0 8.0 Miss Rate (%) 一度に多くの本を机上に持ってくるには、机上にある多くの本を本棚に返さなければならない! (競合性ミス) 6.0 4.0 2.0 0.0 32 16 64 256 128 16KB D-cache Direct-map Block Size [byte] • 傾向:ある程度までブロック・サイズを拡大するとミス率は低下する。しかしながら、極端なブロック・サイズの拡大はミス率の増加を招く。 • 理由:ブロック・サイズの拡大によりプリフェッチ効果によりヒット率は向上するが、コンフリクト・ミスが増加する。
キャッシュ・メモリと高性能化ートレード・オフーキャッシュ・メモリと高性能化ートレード・オフー AMAT=HitTime + (MissRate×MissPenalty)
キャッシュ・メモリの高性能化 AMAT=HitTime + (MissRate×MissPenalty) • ミス・ペナルティの低減 • ミス・ペナルティは, • 主記憶(DRAM)のアクセス時間 • キャッシュ-主記憶間バンド巾 • ブロック・サイズ • 等で決まる • ミス率の削減 • ミス率は, • キャッシュ・サイズ • ブロック・サイズ • 連想度 • 等で決まる • ヒット時間の低減 • ヒット時間は, • キャッシュ・サイズ • ブロック・サイズ • 連想度 • 等で決まる
ブロック・サイズとミス・ペナルティ TransferBl ockSize µ + MissPenalt y DramAccess Time CacheDramB andwidth • 傾向:キャッシュー主記憶間バンド幅以上にブロックサイズを拡大するとミス・ペナルティが増大する。 • 理由:ブロック転送時間が増大するため。 転送 時間 MissPenalty アクセス時間 ブロックサイズ
:相反する要求(トレードオフが必要) キャッシュ・メモリと高性能化ートレード・オフー AMAT=HitTime + (MissRate×MissPenalty)
高性能化技術 -キャッシュ・アクセス時間の短縮ー高性能化技術 -キャッシュ・アクセス時間の短縮ー セット・アソシアティブ・キャッシュの高ヒット率を維持しつつ、ダイレクト・マップの高速アクセスを実現したい! セット・アソシアティブ・キャッシュの高速化技術 Partial Address Directory 投機的ウェイ選択: MRU cache [Chang87] 部分タグ比較: Partial address matching [Liu94] Difference-bit cache [Juan96] Main Directory 完全なタグ タグの1部(例えば5b) Tag from Addr. タグの1ビットだけを見て選択すべきウェイを決定(2wayのみ) 投機ウェイ選択用 検証用
高性能化技術 -キャッシュ・ヒット率の向上 (5/6)ー メモリ階層の改良(水平方向) L1 Cache Dual data Cache [Gonzalez95] 空間的局所性の低いデータ(ラインサイズ小)と、高いデータ(大) Co-operative Cache [Park99] ダイレクト・マップ(ラインサイズ小)とセット・アソシアティブ(大) Non-critical Buffer [Fisk99] クリティカルなデータと、ノンクリティカルなデータ SCIMA [Nakamura2000], Scratch-pad Memory [Panda97], Column caching [Chiou2000] リプレイスが発生する領域と、発生しない領域
高性能化技術 -キャッシュ・ヒット率の向上 (1/6)ー キャッシュ・スペースの有効利用 (複数マッピング関数のサポート): Hash-rehash cache [Agarwal88] Column-associative cache [Agarwal93] Predictive sequential-associative cache [Calder96] Skewed-associative cache [Seznec93] 参照アドレス 1st 00 00 Index = 00 01 01 2nd 10 10 11 11 従来型ダイレクト・マップ (マッピング関数は1つ) Hash-rehashダイレクト・マップ (マッピング関数は2つ: 最上位ビットを反転)
高性能化技術 -キャッシュ・ヒット率の向上 (2/6)ー キャッシュ・スペースの有効利用 (動的適応可能なマッピング関数のサポート): Adaptive group-associative Cache [Peir98] 頻繁に参照されない領域 (hole) 00 01 頻繁に参照される領域 10 11 00 参照頻度の高いデータがキャッシュから追い出される時、holeに割り当てる 01 10 11
高性能化技術 -キャッシュ・ヒット率の向上 (3/6)ー 参照頻度の高いデータの追い出しを削減 (キャッシュ・バイパス): Dynamic exclusion replacement [McFarling92] Run-time adaptive cache management [Johnson97A] CPU CPU バイパス 00 00 L1 Cache L1 Cache 01 01 00 00 Main Memory Main Memory 01 01 10 10 11 11
高性能化技術 -キャッシュ・ヒット率の向上 (4/6)ー メモリ階層の改良(垂直方向) L1 Cache • Victim Cache [Jouppi90] • 追い出されるデータを保存 • Annex Cache [John97] • Pollution-control Cache [Walsh95] • リフィルされるデータを保存 Main Memory
高性能化技術 -キャッシュ・ヒット率の向上 (6/6)ー ラインサイズの拡大によるプリフェッチ効果 (可変ラインサイズ) ハードウェア制御: [Johson97B], [Inoue99A], [Vleet99] ソフトウェア制御:[Veidenbaum99], [Vleet99] データ圧縮技術の活用 Compression Cache: [Yang2000], データ再配置 プロファイルに基づくデータの再配置:[Tomiyama97]
高性能化技術 -ミス・ペナルティの削減ー DRAMアクセス時間の改善 要求バンド幅の削減 バイパス技術の活用 実効バンド幅の向上 DRAMロジック混載LSIの活用:[Murakami97], [Inoue99A], [Patterson97]
高性能化技術 -キャッシュの他の利用法ー キャッシュSRAMをリコンフィギュラブル・デバイスとして使用 [Kim2002]
Cache MainMemory CMR Time Time Energy Energy 動的可変ラインサイズ・キャッシュ アーキテクチャ 37% 52% 従来型DMキャッシュと比較
ラインサイズ ラインサイズ ミス・ペナルティ ミス・ペナルティ 高メモリバンド巾の活用 AMAT = TCache + CMR * 2 * TMainMemory TMainMemory = TDRAM + LineSize/BandWidth Processor Processor Cache Cache (On-Chip SRAM) (On-Chip SRAM) Main Memory Main Memory (Off-Chip DRAM) (Off-Chip DRAM)
104.hydro2d 14.0 099.go 14.0 072.sc 134.perl 12.0 12.0 052.alvinn 10.0 10.0 8.0 8.0 Miss Rate (%) Miss Rate (%) 6.0 6.0 4.0 4.0 2.0 2.0 0.0 0.0 32 16 64 256 128 32 16 64 256 128 Line Size [byte] Line Size [byte] ラインサイズ vs. ミス率 メモリ参照の空間的局所性が高いプログラム プリフェッチ効果によるヒット率の向上 メモリ参照の空間的局所性が低いプログラム 頻繁なコンフリクト発生によるヒット率の低下
Amount of Spatial Locality at each Cache-Sector LineSize:128B
サブアレイ D-VLS Cache D A B C D A B C D A B C E Main Memory 最小ライン 最大ライン 中間ライン 動的可変ラインサイズ・キャッシューコンセプト- 低い局所性 高い局所性 実行中に空間的局所性の度合いを予測し、 ラインサイズを動的に変更
Line-Size Specifier 動的可変ラインサイズ・キャッシュー内部構成- ダイレクト・マップDVLSキャッシュ (ラインサイズは32バイト、64バイト、128バイトで可変) Tag Index Offset SA Load/Store Data Line Tag Reference Flag 32B 32B 32B 32B Line-Size Determiner Main Memory MUX Drive SA:SubArray
動的可変ラインサイズ・キャッシュー評価結果-動的可変ラインサイズ・キャッシュー評価結果-
発表手順 • キャッシュのいろは • 高性能化技術 • 動的可変ラインキャッシュ • 低消費電力化技術 • ウェイ予測キャッシュ(とその後) • タグ比較省略キャッシュ(とその後) • まとめと今後の課題
キャッシュ・メモリの消費エネルギー 平均メモリ・アクセス・エネルギー(AMAE) AMAE=HitEnergy + (MissRate×MissEnergy) • HitEnergy:キャッシュにヒットした場合の消費エネルギー • MissRate:キャッシュのミス率 MissRate=ミス回数/メモリ・アクセス回数 • MissPenalty:キャッシュにミスした際に,主記憶から所望の命令/データを取得してくるのに要するエネルギー
キャッシュ・メモリの低消費エネルギー化 AMAE=HitEnergy + (MissRate×MissEnergy) • ミスEneの低減 • ミスEneは, • 主記憶(DRAM)アクセスに要するエネルギー • キャッシュ-主記憶間データ転送に要するエネルギー • 等で決まる • ミス率の削減 • ミス率は, • キャッシュ・サイズ • ブロック・サイズ • 連想度 • 等で決まる • ヒットEneの削減 • ヒットEneは, • キャッシュ・サイズ • 連想度 • 等で決まる
キャッシュ・サイズと消費エネルギー • 傾向:キャッシュ・サイズの増加と伴に消費エネルギーは大きくなる • 理由:ビットラインやワードラインの負荷容量が大きくなるため P. Shivalumar and N. Jouppi, “CACTI3.0: An Integrated Cache Timing, Power, and Area Model,” WRL Research Report 2001/2
キャッシュ連想度と消費エネルギー • 傾向:キャッシュ連想度の増加と伴に消費エネルギーは大きくなる(特に、キャッシュ・サイズが小さい場合) • 理由:タグビット数の増加によるワードライン負荷容量の増加、ビットライン・プリチャージ回路の負荷増大、など P. Shivalumar and N. Jouppi, “CACTI3.0: An Integrated Cache Timing, Power, and Area Model,” WRL Research Report 2001/2
キャッシュ・メモリと低消費エネルギー化ートレード・オフーキャッシュ・メモリと低消費エネルギー化ートレード・オフー AMAE=HitEnergy + (MissRate×MissEnergy)
キャッシュ・メモリの低消費エネルギー化 AMAE=HitEnergy + (MissRate×MissEnergy) • ミスEneの低減 • ミスEneは, • 主記憶(DRAM)アクセスに要するエネルギー • キャッシュ-主記憶間データ転送に要するエネルギー • 等で決まる • ミス率の削減 • ミス率は, • キャッシュ・サイズ • ブロック・サイズ • 連想度 • 等で決まる • ヒットEneの削減 • ヒットEneは, • キャッシュ・サイズ • 連想度 • 等で決まる
:相反する要求(トレードオフが必要) キャッシュ・メモリと低消費エネルギー化ートレード・オフー AMAE=HitEnergy + (MissRate×MissEnergy)