1.71k likes | 1.83k Views
High-Performance Low-Power Cache Memory Architectures. ( 高性能 / 低消費電力キャッシュメモリ・アーキテクチャ ). 九州大学大学院 システム情報科学研究科 情報工学専攻 博士後期課程 3 年. 井上 弘士. 論文の構成. 第 1 章:背景と目的 第 2 章:メモリシステム性能と消費電力 第 3 章:ウェイ予測セット・アソシアティブ・キャッシュ 第 4 章:ヒストリ・ベース・タグ比較キャッシュ 第 5 章:可変ラインサイズ・キャッシュ 第 6 章:まとめと今後の課題. 演算処理. データの記憶. +.
E N D
High-Performance Low-Power Cache Memory Architectures (高性能/低消費電力キャッシュメモリ・アーキテクチャ) 九州大学大学院 システム情報科学研究科 情報工学専攻 博士後期課程3年 井上 弘士
論文の構成 第1章:背景と目的 第2章:メモリシステム性能と消費電力 第3章:ウェイ予測セット・アソシアティブ・キャッシュ 第4章:ヒストリ・ベース・タグ比較キャッシュ 第5章:可変ラインサイズ・キャッシュ 第6章:まとめと今後の課題
演算処理 データの記憶 + CPU DRAM はじめに コンピュータ・システムの高性能化 メモリシステム性能 CPU性能
データの記憶 DRAM プロセッサーメモリ間性能差の隠蔽 オンチップ・キャッシュの搭載 データの記憶 演算処理 + CPU Cache Memory メモリ参照の時間的/空間的局所性を活用
CPU Cache Main Memory キャッシュ・メモリとは? CPU Main Memory
スーパスカラ・プロセッサ 村上 監訳 マイクロ・コンピュータ 田丸・安浦 著 並列処理マシン 富田・末吉 著 メモリ参照の局所性 時間的局所性:メモリ上のある項目が参照されると、間もなくそれが再び参照される確率が高い、という性質 空間的局所性:メモリ上のある項目が参照されると、その近くの項目も間もなく参照される確率が高い、という性質 ヘネシー&パターソン コンピュータ・アーキテクチャ CPUについて 調べたい!
キャッシュ・メモリの利点 CPU Cache Main Memory 大容量 低速アクセス 高消費エネルギ 小容量 高速アクセス 低消費エネルギ メモリ参照の局所性により、多くのメモリアクセスがキャッシュ・メモリで完結!
Memory Address Memory 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 Tag Index ダイレクト・マップ・キャッシュ CPUから発行された メモリ参照アドレス Index Tag Offset Cache Index Tag Line 000 001 010 011 100 101 110 111 MUX =? 一致ならヒット!
マイクロ・コンピュータ 田丸・安浦 著 並列処理に関する本の場所 並列処理マシン 富田・末吉 著 スーパスカラ・プロセッサ 村上 監訳 ダイレクト・マップ・キャッシュ 動作原理に関する本の場所 スーパスカラについて調べたい! Tag:本の名前 Index:分野 回路設計に関する本の場所 CPU OSに関する本の場所 Main Memory Cache
Index Tag Offset Memory Address Memory 000 00 000 01 000 10 000 11 001 00 001 01 001 10 001 11 010 00 010 01 010 10 010 11 010 01 010 01 010 10 010 11 Tag Index 2ウェイ・セット・アソシアティブキャッシュ CPUから発行された メモリ参照アドレス Cache Tag Index 00 00 01 01 10 10 11 11 MUX MUX =? =? MUX 一致ならヒット!
動作原理、または、並列処理に関する本の場所動作原理、または、並列処理に関する本の場所 マイクロ・コンピュータ 田丸・安浦 著 回路設計、または、OSに関する本の場所 並列処理マシン 富田・末吉 著 Cache スーパスカラ・プロセッサ 村上 監訳 2ウェイ・セット・アソシアティブキャッシュ スーパスカラについて調べたい! CPU Tag:本の名前 Index:分野 Main Memory
本研究の動機 (1/2) 性能差は十分隠蔽できているのか? 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)
本研究の動機 (1/2) 性能差は十分隠蔽できているのか? 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)
本研究の動機 (2/2) 高性能化だけで十分なのか? 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
本研究の目的 →プロセッサー主記憶間の性能差は拡大を続けている →キャッシュがシステム性能に与える影響は大きい →キャッシュ・ヒット率の向上を目的として、キャッシュ・サイズは年々増加傾向にある →キャッシュがシステム消費エネルギに与える影響は大きい 高性能と低消費エネルギを両立できる キャッシュ・アーキテクチャを考案
ラップトップPC 携帯電話 デスクトップPC ワークステーション →メモリ参照の振る舞いを静的に予測しにくい →オブジェクト・コードの互換性を保つことは重要 対象とするアプリケーション 汎用システム 組み込みシステム 車 ラップトップPC 電子レンジ 携帯電話 デスクトップPC ポット ワークステーション
How? 手段:不必要な処理を削除 本研究における戦略 (1/3) 目標:高性能かつ低消費エネルギなメモリシステムを 構築するためのキャッシュ・アーキテクチャを実現
How? 手段:ハードウェアによる動的最適化 本研究における戦略 (2/3) 要求:オブジェクト・コードの互換性を保ち、かつ、 様々なプログラム特性に対応
How? Predict and Eliminate! 本研究における戦略 (3/3) 動的最適化により無駄な処理を削除 1. メモリ参照パタン(ヒストリ)を採取 2. キャッシュ内部処理結果を予測 3. 必要のない処理を削除
ウェイ予測セット・アソシアティブ・キャッシュ (第3章) ・不必要なウェイアクセスを削除 ヒストリ・ベース・タグ比較キャッシュ (第4章) ・不必要なタグ比較処理を削除 動的可変ラインサイズ・キャッシュ (第5章) ・不必要なデータ・リプレイスを削除 提案キャッシュ・アーキテクチャ
メモリシステム性能と消費エネルギ 平均メモリアクセス時間 (AMAT) = TCache + CMR * 2 * TMainMemory 平均メモリアクセス消費エネルギ (AMAE) = ECache + CMR * 2 * EMainMemory
Cache MainMemory CMR Time Time Energy Energy 提案キャッシュの効果 WP HTC DVLS WP: ウェイ予測セット・アソシアティブ・キャッシュ HTC: ヒストリ・ベース・タグ比較キャッシュ DVLS: 動的可変ラインサイズ・キャッシュ
Cache MainMemory CMR Time Time Energy Energy 第3章 ウェイ予測セット・アソシアティブ キャッシュ・アーキテクチャ 10% 70% 従来型4ウェイSAキャッシュと比較
タグ・サブアレイ ライン・サブアレイ ウェイ 0 1 2 3 タグ 従来型キャッシュの動作 Step1. アドレス・デコード Step2.全ウェイにおけるタグと ラインを同時読み出し Step3. タグ比較 一致(ヒット) 不一致(ミス) Step4.参照データをサービス後、 アクセスを終了 Step4.アクセスを終了後、 ラインのリプレイス
並列処理マシン 富田・末吉 著 スーパスカラ・プロセッサ 村上 監訳 本の確認 (タグ比較) 本を開く (ライン読出し) 本の確認 (タグ比較) 本を開く (ライン読出し) これだ! 各キャッシュの動作ー従来型- スーパスカラについて調べたい! 動作原理、または、並列処理に関する本の場所 Way-1 Way-0 CPU Cache
段階型キャッシュの動作 ライン読み出しを遅らせることによる省エネルギー化 Step1. 参照アドレスのデコード Step2.全ウェイにおけるタグ読み出し フェーズ1 Step3. タグ比較 不一致(ミス) Step4. アクセス終了後、 ラインのリプレイス 一致(ヒット) フェーズ2 Step4.ヒットしたラインだけを読み出し Step5.参照データをサービス後、 アクセスを終了 性能を犠牲にする事で 低消費エネルギー化を達成
並列処理マシン 富田・末吉 著 スーパスカラ・プロセッサ 村上 監訳 本の確認 (タグ比較) 本の確認 (タグ比較) これだ! 本を開く (ライン読出し) 各キャッシュの動作ー段階型- スーパスカラについて調べたい! 動作原理、または、並列処理に関する本の場所 Way-1 Way-0 CPU Cache
WPキャッシュー基本概念ー 段階型キャッシュ → ヒット時の性能を犠牲に! 高性能/低消費エネルギー化を実現するためには… • タグとラインの同時読み出しによる高速化 • 無駄なウェイ・アクセスの回避による省エネルギー化 従来型〇 段階型× 従来型× 段階型〇 の相反する要求を同時に満足する必要あり! ウェイ予測型キャッシュ キャッシュ・アクセス前に、参照データが存在するウェイを予測
WPキャッシュ -基本動作ー タグ比較とは独立に ウェイを選択 Step0.ウェイ予測 Step1. 参照アドレスのデコード Step2.予測されたウェイに対応する タグとラインの同時読み出し Step3. タグ比較 フェーズ1 不一致 一致(予測ヒット) Step4.残りウェイのタグと ラインの同時読み出し Step4.終了 Step5. タグ比較 一致(予測ミス) 不一致(キャッシュ・ミス) Step6.終了 Step6.終了後、リプレイス フェーズ2
WPキャッシュ -ウェイ予測ー ウェイ予測型キャッシュの有効性は予測ヒット率に依存 多くのプログラムには高いメモリ参照局所性 ウェイ予測に MRU(Most Recently Used)アルゴリズムを採用 参照 予測ウェイ(見込みウェイ) セット S セット S ウェイ2 ウェイ2 T T+n 時間 各セットにおいて、前回のアクセスが • 予測ヒットもしくは予測ミス → 参照データが存在したウェイ • キャッシュ・ミス → リプレイス対象となったウェイ を次回の予測ウェイとする
並列処理マシン 富田・末吉 著 スーパスカラ・プロセッサ 村上 監訳 本の確認 (タグ比較) 本を開く (ライン読出し) 前回、Way-0においていたので、これだ! 各キャッシュの動作ーウェイ予測型- スーパスカラについて調べたい! 動作原理、または、並列処理に関する本の場所 Way-1 Way-0 CPU Cache
並列処理マシン 富田・末吉 著 スーパスカラ・プロセッサ 村上 監訳 各キャッシュの動作ーウェイ予測型- スーパスカラについて調べたい! 動作原理、または、並列処理に関する本の場所 Way-1 Way-0 CPU Cache 本の確認 (タグ比較) 本を開く (ライン読出し) 前回、Way-1においていたので、これだ! あ、違った!
並列処理マシン 富田・末吉 著 スーパスカラ・プロセッサ 村上 監訳 各キャッシュの動作ーウェイ予測型- スーパスカラについて調べたい! 動作原理、または、並列処理に関する本の場所 Way-1 Way-0 CPU Cache 本の確認 (タグ比較) 本を開く (ライン読出し) じゃ、こちらを探そう!
Access Control WPキャッシュ -内部構成ー Reference-Address Tag Index Offset 2bits Status Tag Line ウェイ予測 フラグ way0 way1 way2 way3 ウェイ予測 回路 MUX Drive
理論的評価 (1/2) 従来型 段階型 平均 Ecache 平均 Ecache 4 Etag + 4 Edata 4 Etag + 1 Edata *ヒット率 平均所要クロック 平均所要クロック 1 1 + 1*ヒット率 ウェイ予測型 平均 Ecache (1 Etag + 1 Edata)*予測ヒット率 + (4 Etag + 4 Edata)*(1-予測ヒット率) 平均所要クロック 1+ 1*(1-予測ヒット率)
(# of Edata) 理論的評価 (2/2) 従来型 段階型 ウェイ予測型 Performance Energy (Etag = 0.078Edata) 従来型と比較して 最善ケース (予測ヒット率=100%) : 性能低下を伴うこと無く75%の省エネルギー化 最悪ケース(予測ヒット率=0%) : 2倍の性能低下を伴い、かつ、省エネルギー効果なし
実験的評価 ーウェイ予測ヒット率ー I-Cache D-Cache Benchmarks PHR (%) PMR (%) CMR (%) PHR (%) PMR (%) CMR (%) 099.go 94.55 4.04 1.41 81.31 17.45 1.24 124.m88ksim 95.76 4.05 0.19 95.47 3.63 0.91 126.gcc 92.32 5.09 2.59 87.4 9.59 3.01 129.compress 99.98 0.02 0 91.64 3.63 4.73 130.li 97.28 2.71 0 92.82 3.91 3.27 132.ijpeg 99.74 0.25 0.01 92.6 6.38 1.02 134.perl 94.93 4.65 0.42 92.64 5.78 1.58 147.vortex 91.65 7.11 1.25 89.38 9.16 1.46 101.tomcatv 91.61 7.3 1.09 87.96 9.96 2.08 102.swim 97.96 2.04 0 50.27 31.71 18.03 103.su2cor 96.48 3.23 0.28 85.22 8.14 6.64 104.hydro2d 98.28 1.43 0.29 89.41 3.55 7.04 95.87 3.49 0.62 86.34 9.41 4.25 Average
099.go 126.gcc 130.li 134.perl 101.tomcatv 103.su2cor 124.m88ksim 129.compress 132.ijpeg 102.swim 102.swim 104.hydro2d 実験的評価 ー性能と消費エネルギ(1/2)ー Instruction Cache 段階型 ウェイ予測型 Normalized Tcache Normalized Ecache
099.go 126.gcc 130.li 134.perl 101.tomcatv 103.su2cor 124.m88ksim 129.compress 132.ijpeg 102.swim 102.swim 104.hydro2d 実験的評価 ー性能と消費エネルギ(2/2)ー Data Cache 段階型 ウェイ予測型 Normalized Tcache Normalized Ecache
AMAT = TCache + CMR * 2 * TMainMemory 4% 5% AMAE = ECache + CMR * 2 * EMainMemory 51% 72% CMR = 0.02 TMainMemory = 10*TCache EMainMemory = 10*ECache 従来型4ウェイSAデータキャッシュと比較 (124.m88ksim) おわりに (1/2) ウェイ予測セット・アソシアティブ・キャッシュの提案 • メモリ参照パタンをウェイ予測テーブルに記録 • 参照データを有するウェイを予測 • 無駄なウェイアクセスを回避し省エネルギ化を達成
おわりに (2/2) • ウェイ予測テーブル・アクセスに伴う性能オーバヘッドを評価 • ウェイ予測テーブル・アクセスに伴う消費エネルギ・オーバヘッドを評価 • キャッシュ・サイズ、ライン・サイズ、連想度が与える影響を調査 • ウェイ予測テーブル・サイズが与える影響を調査
Cache MainMemory CMR Time Time Energy Energy 第4章 ヒストリ・ベース・タグ比較キャッシュ アーキテクチャ 30% サブバンキング手法を用いた 従来型DMキャッシュと比較
MUX 従来型キャッシュ ECache = Etag + Edata Reference-address データメモリ タグメモリ Tag Offset Index Tag Line Direct-Mapped Cache Word Data Hit?
ヒストリ・ベース・タグ比較- 用語の定義 -ヒストリ・ベース・タグ比較- 用語の定義 - 動的基本ブロック • 1個以上の連続した静的基本ブロックで構成 • サイズはブロック中の条件付分岐命令に依存 • 先頭はある分岐命令の分岐先アドレス • 最終は次に出現するtaken分岐命令のアドレス 実行フロー (静的)基本ブロック 分岐先アドレス 条件不成立の分岐命令 条件成立の分岐命令 動的基本ブロック
ヒストリ・ベース・タグ比較- コンセプト (1/2)- 命令キャッシュ・アクセスでは極めて高いヒット率 →ほとんどのタグ比較結果は一致 にも関わらず... 従来のキャッシュではアクセスごとにタグ比較を実行 →タグ比較に要するエネルギーを毎サイクル消費 タグ比較を行う事無しに参照命令がキャッシュ中に存在するか否かを判定可能? →タグ比較処理を省略して低消費電力化を実現!
ヒストリ・ベース・タグ比較- コンセプト (2/2)-ヒストリ・ベース・タグ比較- コンセプト (2/2)- 事実1:命令キャッシュのヒット率は極めて高い →キャッシュ内容の更新は稀にしか発生しない 事実2:プログラムはループ構造に基づく →動的基本ブロックは繰り返し実行される ある動的基本ブロックの実行において、 • 過去に実行された事があり、かつ、 • その時から現在までに1度もミスが発生していない ならば、タグ比較処理を省略可能!
マイクロ・コンピュータ 田丸・安浦 著 マイクロ・コンピュータ 田丸・安浦 著 動作原理に関する本の場所 もう1度、動作原理について調べたい! 本を開く (ライン読出し) 本の確認 (タグ比較) CPU Cache 従来型とヒストリ・ベース型の比較ー従来型ー 動作原理に関する本の場所 動作原理について調べたい! 本を開く (ライン読出し) 本の確認 (タグ比較) CPU Cache
マイクロ・コンピュータ 田丸・安浦 著 マイクロ・コンピュータ 田丸・安浦 著 もう1度、動作原理について調べたい!さっき調べたから、まだあるはずだ! 動作原理に関する本の場所 本を開く (ライン読出し) X CPU Cache 従来型とヒストリ・ベース型の比較ーヒストリ・ベース型ー 動作原理に関する本の場所 動作原理について調べたい! 本を開く (ライン読出し) 本の確認 (タグ比較) CPU Cache
1. 時刻 T にて動的基本ブロックAを実行 • タグ比較を実行 • 実行足跡を残す ? A $ 3. 時刻T+x にて動的基本ブロックAを再度実行 • 足跡が残っていればタグ比較を省略 A A $ ヒストリ・ベース・タグ比較- 実行履歴 - 2. キャッシュ・ミスが発生したら全ての足跡を消去
ヒストリ・ベース・タグ比較- 実行足跡の記録 -ヒストリ・ベース・タグ比較- 実行足跡の記録 - BTB(Branch Target Buffer)を利用して実行足跡を記録 EFT EFN Top Target Address Branch Inst. Addr. BTB Not-taken $ Tail Target Address Branch Inst. Addr. Prediction Result Tag-Comparison is Omitted TCO