Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
HighHigh--Performance LowPerformance Low--Power Power Cache Memory ArchitecturesCache Memory Architectures
井上 弘士
(高性能/低消費電力キャッシュメモリ・アーキテクチャ)
九州大学大学院 システム情報科学研究科 情報工学専攻博士後期課程3年
論文の構成
第1章:背景と目的
第2章:メモリシステム性能と消費電力
第3章:ウェイ予測セット・アソシアティブ・キャッシュ
第4章:ヒストリ・ベース・タグ比較キャッシュ
第5章:可変ラインサイズ・キャッシュ
第6章:まとめと今後の課題
はじめに
コンピュータ・システムの高性能化
CPU性能 メモリシステム性能
演算処理 データの記憶
CPU DRAM+
プロセッサーメモリ間性能差の隠蔽オンチップ・キャッシュの搭載
CPU DRAM+
演算処理 データの記憶
Cache Memory
データの記憶
メモリ参照の時間的/空間的局所性を活用
2
キャッシュ・メモリとは?
CPU Main Memory
CPU Cache Main Memory
メモリ参照の局所性時間的局所性:メモリ上のある項目が参照されると、間もなくそれが再び参照される確率が高い、という性質
空間的局所性:メモリ上のある項目が参照されると、その近くの項目も間もなく参照される確率が高い、という性質
ヘネシー&パターソン コンピュータ・アーキテクチャ
CPUについて
調べたい!
並列
処理
マシ
ン富
田・末
吉著
マイ
クロ
・コ
ンピ
ュー
タ田
丸・安
浦著
スー
パス
カラ
・プ
ロセ
ッサ
村上
監訳
キャッシュ・メモリの利点
CPU CacheCache Main Memory小容量
高速アクセス低消費エネルギ
小容量高速アクセス
低消費エネルギ
大容量低速アクセス
高消費エネルギ
メモリ参照の局所性により、多くのメモリアクセスがキャッシュ・メモリで完結!
ダイレクト・マップ・キャッシュ
Memory000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100101011011010111
MemoryAddress
Tag Index
Cache000001010011100101110111
Tag Index Offset
CPUから発行されたメモリ参照アドレス
=? MUX
一致ならヒット!
IndexTag Line
3
ダイレクト・マップ・キャッシュ
CPU
CacheMain Memory
マイクロ・コンピュータ田丸・安浦 著
スーパスカラ・プロセッサ村上 監訳
スーパスカラについて調べ
たい!
動作原理に関する本の場所
並列処理マシン富田・末吉 著
並列処理に関する本の場所
回路設計に関する本の場所
OSに関する本の場所
Tag:本の名前Index:分野
2ウェイ・セット・アソシアティブキャッシュ
Cache00011011
Memory000 00000 01000 10000 11001 00001 01001 10001 11010 00010 01010 10010 11
MemoryAddress
010 01010 10010 11
010 01
Tag Index
00011011
=? MUX
Tag Index Offset
Index
=? MUX
MUX
一致ならヒット!
CPUから発行されたメモリ参照アドレス
Tag
2ウェイ・セット・アソシアティブキャッシュ
CPU
Main Memory
Tag:本の名前Index:分野
Cache
並列処理マシン富田・末吉 著
スーパスカラ・プロセッサ村上 監訳
動作原理、または、並列処理に関する本の場所
回路設計、または、OSに関する本の場所
マイクロ・コンピュータ田丸・安浦 著
スーパスカラについて調べ
たい!
本研究の動機 (1/2)
SPECint92 (22%) SPECfp92 (32%)
Database (77%) Sparse (73%)From D. Patterson et al., (IEEE Micro)
Processor
Fraction of time spent in
I-Cache MissesD-Cache MissesL2 Cache MissesL3 Cache Misses
性能差は十分隠蔽できているのか?
Alpha 21164
4
本研究の動機 (1/2)
SPECint92 (22%) SPECfp92 (32%)
Sparse (73%)From D. Patterson et al., (IEEE Micro)
Alpha 21164
Processor
Fraction of time spent in
I-Cache MissesD-Cache MissesL2 Cache MissesL3 Cache Misses
性能差は十分隠蔽できているのか?
NO!
Database (77%)
本研究の動機 (2/2)高性能化だけで十分なのか?
NO!
DEC 21164 CPU* StrongARM SA-110 CPU* Bipolar ECL CPU**
25% 43% 50%
チップ全体の消費電力においてキャッシュが占める割合
* 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
ワークステーション
→メモリ参照の振る舞いを静的に予測しにくい
→オブジェクト・コードの互換性を保つことは重要
5
本研究における戦略 (1/3)目標:高性能かつ低消費エネルギなメモリシステムを
構築するためのキャッシュ・アーキテクチャを実現
手段:不必要な処理を削除
How?
本研究における戦略 (2/3)
手段:ハードウェアによる動的最適化
How?
要求:オブジェクト・コードの互換性を保ち、かつ、様々なプログラム特性に対応
本研究における戦略 (3/3)
1. メモリ参照パタン(ヒストリ)を採取
動的最適化により無駄な処理を削除
2. キャッシュ内部処理結果を予測
3. 必要のない処理を削除
How?
Predict and Eliminate!
提案キャッシュ・アーキテクチャ
ウェイ予測セット・アソシアティブ・キャッシュ (第3章)・不必要なウェイアクセスを削除
ヒストリ・ベース・タグ比較キャッシュ (第4章)・不必要なタグ比較処理を削除
動的可変ラインサイズ・キャッシュ (第5章)・不必要なデータ・リプレイスを削除
6
メモリシステム性能と消費エネルギ
平均メモリアクセス時間 (AMAT)= TCache + CMR * 2 * TMainMemory
平均メモリアクセス消費エネルギ (AMAE)= ECache + CMR * 2 * EMainMemory
提案キャッシュの効果
MainMemory
Time Energy
Cache
Time EnergyCMR
WPWP
HTCHTC
DVLSDVLSWP: ウェイ予測セット・アソシアティブ・キャッシュHTC: ヒストリ・ベース・タグ比較キャッシュDVLS: 動的可変ラインサイズ・キャッシュ
第3章
ウェイ予測セット・アソシアティブウェイ予測セット・アソシアティブキャッシュ・アーキテクチャキャッシュ・アーキテクチャ
MainMemory
Time Energy
Cache
Time EnergyCMR
10% 70% 従来型4ウェイSAキャッシュと比較
従来型キャッシュの動作
Step3. タグ比較
一致(ヒット) 不一致(ミス)
Step4.参照データをサービス後、アクセスを終了
Step4.アクセスを終了後、ラインのリプレイス
Step1. アドレス・デコード
Step2.全ウェイにおけるタグとラインを同時読み出し
タグ・サブアレイ ライン・サブアレイ
ウェイ 0 1 2 3
タグ
7
各キャッシュの動作ー従来型-
CPU Cache
並列処理マシン富田・末吉 著
スーパスカラ・プロセッサ村上 監訳
動作原理、または、並列処理に関する本の場所スーパスカラについて調べ
たい!
Way-0 Way-1
本の確認(タグ比較)
本を開く(ライン読出し)
本の確認(タグ比較)
本を開く(ライン読出し)
これだ!
不一致(ミス)
段階型キャッシュの動作ライン読み出しを遅らせることによる省エネルギー化
フェーズ1
性能を犠牲にする事で性能を犠牲にする事で低消費エネルギー化を達成低消費エネルギー化を達成
Step1. 参照アドレスのデコード
Step2.全ウェイにおけるタグ読み出し
Step3. タグ比較
Step4. アクセス終了後、ラインのリプレイス
一致(ヒット)
Step4.ヒットしたラインだけを読み出し
フェーズ2
Step5.参照データをサービス後、アクセスを終了
CPU Cache
並列処理マシン富田・末吉 著
スーパスカラ・プロセッサ村上 監訳
動作原理、または、並列処理に関する本の場所スーパスカラについて調べ
たい!
Way-0 Way-1
本の確認(タグ比較)
本の確認(タグ比較)
本を開く(ライン読出し)
これだ!
各キャッシュの動作ー段階型-
WPキャッシュー基本概念ー
段階型キャッシュ → ヒット時の性能を犠牲に!
高性能/低消費エネルギー化を実現するためには…•タグとラインの同時読み出しによる高速化
•無駄なウェイ・アクセスの回避による省エネルギー化
の相反する要求を同時に満足する必要あり!
従来型〇 段階型×
従来型× 段階型〇
キャッシュ・アクセス前に、参照データが存在するウェイを予測
ウェイ予測型キャッシュウェイ予測型キャッシュ
8
WPキャッシュ-基本動作ー
フェーズ2
フェーズ1 不一致
Step1. 参照アドレスのデコード
Step2.予測されたウェイに対応するタグとラインの同時読み出し
Step3. タグ比較
一致(予測ヒット)
Step0.ウェイ予測
Step4.終了Step4.残りウェイのタグと
ラインの同時読み出し
Step5. タグ比較
一致(予測ミス)
Step6.終了
不一致(キャッシュ・ミス)
Step6.終了後、リプレイス
タグ比較とは独立にウェイを選択
WPキャッシュ-ウェイ予測ー
ウェイ予測型キャッシュの有効性は予測ヒット率に依存
多くのプログラムには高いメモリ参照局所性
ウェイ予測に MRU(Most Recently Used)アルゴリズムを採用
各セットにおいて、前回のアクセスが•予測ヒットもしくは予測ミス → 参照データが存在したウェイ•キャッシュ・ミス → リプレイス対象となったウェイ
を次回の予測ウェイとする
セット S
参照
セット S
予測ウェイ(見込みウェイ)
時間
ウェイ2 ウェイ2
T T+n
CPU Cache
並列処理マシン富田・末吉 著
スーパスカラ・プロセッサ村上 監訳
動作原理、または、並列処理に関する本の場所スーパスカラについて調べ
たい!
Way-0 Way-1
本の確認(タグ比較)
本を開く(ライン読出し)前回、Way-0
においていたので、これ
だ!
各キャッシュの動作ーウェイ予測型-
CPU Cache
並列処理マシン富田・末吉 著
スーパスカラ・プロセッサ村上 監訳
動作原理、または、並列処理に関する本の場所スーパスカラについて調べ
たい!
Way-0 Way-1
本の確認(タグ比較)
本を開く(ライン読出し)前回、Way-1
においていたので、これ
だ!
各キャッシュの動作ーウェイ予測型-
あ、違った!
9
CPU Cache
並列処理マシン富田・末吉 著
スーパスカラ・プロセッサ村上 監訳
動作原理、または、並列処理に関する本の場所スーパスカラについて調べ
たい!
Way-0 Way-1
本の確認(タグ比較)
本を開く(ライン読出し)じゃ、こちらを
探そう!
各キャッシュの動作ーウェイ予測型-
WPキャッシュ-内部構成ー
Status Tag Line
Access Control
ウェイ予測フラグ
way0 way1 way2 way3
2bits
ウェイ予測回路
MUX Drive
Tag Index OffsetReference-Address
段階型
ウェイ予測型
平均 Ecache4 Etag + 4 Edata
従来型
平均所要クロック
1
平均 Ecache4 Etag + 1 Edata * ヒット率
1 + 1 * ヒット率平均所要クロック
(1 Etag + 1 Edata)*予測ヒット率 + (4 Etag + 4 Edata)*(1-予測ヒット率)
1+ 1*(1-予測ヒット率)平均所要クロック
平均 Ecache
理論的評価 (1/2) 理論的評価 (2/2)
最善ケース最善ケース (予測ヒット率=(予測ヒット率=100%100%)) :: 性能低下を伴うこと無く性能低下を伴うこと無く75%75%の省エネルギー化の省エネルギー化
最悪ケース最悪ケース(予測ヒット率=(予測ヒット率=0%0%)) :: 2倍の性能低下を伴い、かつ、省エネルギー効果なし2倍の性能低下を伴い、かつ、省エネルギー効果なし
従来型と比較して
Energy(Etag = 0.078Edata)
Performance
従来型段階型ウェイ予測型
(# o
f Eda
ta)
10
実験的評価ーウェイ予測ヒット率ー
PHR (%) PMR (%) CMR (%) PHR (%) PMR (%) CMR (%)
099.go 94.55 4.04 1.41 81.31 17.45 1.24124.m88ksim 95.76 4.05 0.19 95.47 3.63 0.91126.gcc 92.32 5.09 2.59 87.4 9.59 3.01129.compress 99.98 0.02 0 91.64 3.63 4.73130.li 97.28 2.71 0 92.82 3.91 3.27132.ijpeg 99.74 0.25 0.01 92.6 6.38 1.02134.perl 94.93 4.65 0.42 92.64 5.78 1.58147.vortex 91.65 7.11 1.25 89.38 9.16 1.46101.tomcatv 91.61 7.3 1.09 87.96 9.96 2.08102.swim 97.96 2.04 0 50.27 31.71 18.03103.su2cor 96.48 3.23 0.28 85.22 8.14 6.64104.hydro2d 98.28 1.43 0.29 89.41 3.55 7.04
Average 95.87 3.49 0.62 86.34 9.41 4.25
Benchmarks
I-Cache D-Cache
実験的評価ー性能と消費エネルギ(1/2)ー
0
0.5
1
1.5
2
0
0.1
0.2
0.3
0.4
Nor
mal
ized
Tca
che
Nor
mal
ized
Eca
che
124.m88ksim 129.compress 132.ijpeg 102.swim 102.swim 104.hydro2d099.go 126.gcc 130.li 134.perl 101.tomcatv 103.su2cor
段階型 ウェイ予測型Instruction Cache
0
0.5
1
1.5
2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
段階型 ウェイ予測型Data Cache
Nor
mal
ized
Tca
che
Nor
mal
ized
Eca
che
実験的評価ー性能と消費エネルギ(2/2)ー
124.m88ksim 129.compress 132.ijpeg 102.swim 102.swim 104.hydro2d099.go 126.gcc 130.li 134.perl 101.tomcatv 103.su2cor
おわりに (1/2)
ウェイ予測セット・アソシアティブ・キャッシュの提案
1. メモリ参照パタンをウェイ予測テーブルに記録2. 参照データを有するウェイを予測3. 無駄なウェイアクセスを回避し省エネルギ化を達成
CMR = 0.02TMainMemory = 10*TCacheEMainMemory = 10*ECache
72%72%AMAE = ECache + CMR * 2 * EMainMemory51%51%
5%5%AMAT = TCache + CMR * 2 * TMainMemory4%4%
従来型4ウェイSAデータキャッシュと比較(124.m88ksim)
11
おわりに (2/2)
ウェイ予測テーブル・アクセスに伴う性能オーバヘッドを評価ウェイ予測テーブル・アクセスに伴う消費エネル
ギ・オーバヘッドを評価キャッシュ・サイズ、ライン・サイズ、連想度が与え
る影響を調査ウェイ予測テーブル・サイズが与える影響を調査
第4章
ヒストリ・ベース・タグ比較キャッシュヒストリ・ベース・タグ比較キャッシュアーキテクチャアーキテクチャ
MainMemory
Time Energy
Cache
Time EnergyCMR
30% サブバンキング手法を用いた従来型DMキャッシュと比較
従来型キャッシュ
Tag LineTag Index Offset タグメモリ データメモリReference-address
Hit? Word Data
MUX
Direct-Mapped Cache
ECache = Etag + Edata
ヒストリ・ベース・タグ比較- 用語の定義 -
動的基本ブロック
分岐先アドレス
条件不成立の分岐命令
条件成立の分岐命令
(静的)基本ブロック
動的基本ブロック
•1個以上の連続した静的基本ブロックで構成
•サイズはブロック中の条件付分岐命令に依存•先頭はある分岐命令の分岐先アドレス•最終は次に出現するtaken分岐命令のアドレス
実行フロー
12
ヒストリ・ベース・タグ比較- コンセプト (1/2) -命令キャッシュ・アクセスでは極めて高いヒット率
→ほとんどのタグ比較結果は一致
従来のキャッシュではアクセスごとにタグ比較を実行
タグ比較を行う事無しに参照命令がキャッシュ中に存在するか否かを判定可能?
→タグ比較に要するエネルギーを毎サイクル消費
にも関わらず...
→タグ比較処理を省略して低消費電力化を実現!
ヒストリ・ベース・タグ比較- コンセプト (2/2) -事実1:命令キャッシュのヒット率は極めて高い
→キャッシュ内容の更新は稀にしか発生しない
事実2:プログラムはループ構造に基づく
→動的基本ブロックは繰り返し実行される
ある動的基本ブロックの実行において、
•過去に実行された事があり、かつ、•その時から現在までに1度もミスが発生していない
ならば、タグ比較処理を省略可能!
従来型とヒストリ・ベース型の比較ー従来型ー
CPUCache
マイクロ・コンピュータ田丸・安浦 著
動作原理について調べた
い!
動作原理に関する本の場所 本の確認(タグ比較)
本を開く(ライン読出し)
CPU Cache
マイクロ・コンピュータ田丸・安浦 著
もう1度、動作原理について調べたい!
動作原理に関する本の場所 本の確認(タグ比較)
本を開く(ライン読出し)
従来型とヒストリ・ベース型の比較ーヒストリ・ベース型ー
CPUCache
マイクロ・コンピュータ田丸・安浦 著
動作原理について調べた
い!
動作原理に関する本の場所 本の確認(タグ比較)
本を開く(ライン読出し)
CPU Cache
マイクロ・コンピュータ田丸・安浦 著
もう1度、動作原理について調べたい!さっき調べたから、まだあるはずだ!
もう1度、動作原理について調べたい!さっき調べたから、まだあるはずだ!
動作原理に関する本の場所 本を開く(ライン読出し)
X
13
?1. 時刻 T にて動的基本ブロックAを実行
•タグ比較を実行•実行足跡を残す
A $
ヒストリ・ベース・タグ比較- 実行履歴 -
2. キャッシュ・ミスが発生したら全ての足跡を消去
3. 時刻 T+x にて動的基本ブロックAを再度実行
•足跡が残っていればタグ比較を省略
AA $
ヒストリ・ベース・タグ比較- 実行足跡の記録 -BTB(Branch Target Buffer)を利用して実行足跡を記録
Branch Inst. Addr. Target Address
Branch Inst. Addr. Target Address
BTB
EFT EFN
Top
Tail
Not-taken$
TCOTag-Comparison
is OmittedPrediction Result
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO1-C
実行フロー
BTB内部状態
時刻(インタレーション番号-分岐命令のアドレス)
BTBエントリ(分岐命令)
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
Performing!
14
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Performing!
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Performing!
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Performing!
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Omitting!
15
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Omitting!
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Omitting!
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Omitting!
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Performing!
16
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-DBranch-D
Performing!
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-DBranch-D
Performing!
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-D
Branch-C5-C
Branch-D
Branch-D
EFN of Branch-C
Performing!
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-D
Branch-C5-C
Branch-D
Branch-D
EFN of Branch-C
Omitting!
17
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-D
Branch-C5-C
Branch-C5-D
EFN of Branch-C
Omitting!Branch-D
Branch-D
Branch-D
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-D
Branch-C5-C
Branch-C5-D
EFN of Branch-C
Omitting!Branch-D
Branch-D
Branch-D
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-D
Branch-C5-C
Branch-C5-D
Branch-C6-C
EFN of Branch-C
Omitting!Branch-D
Branch-D
Branch-D
Branch-D
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-D
Branch-C5-C
Branch-C5-D
Branch-C6-C
EFN of Branch-C
Omitting!Branch-D
Branch-D
Branch-D
Branch-D
18
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-D
Branch-C5-C
Branch-C5-D
Branch-C6-C
Branch-C6-D
EFN of Branch-C
Omitting!Branch-D
Branch-D
Branch-D
Branch-D
Branch-D
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-D
Branch-C5-C
Branch-C5-D
Branch-C6-C
Branch-C6-D
EFN of Branch-C
Branch-D
Branch-D
Branch-D
Branch-D
Branch-DOmitting!
ヒストリ・ベース・タグ比較- 動作例 -
Branch-C7-B
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
Branch-C1-C
Branch-C2-C
Branch-C3-C
Branch-C4-C
Branch-C4-D
Branch-C5-C
Branch-C5-D
Branch-C6-C
Branch-C6-D
EFN of Branch-C
Branch-D
Branch-D
Branch-D
Branch-D
Branch-D
Branch-D
Branch-B
Performing!
命令キャッシュ・サイズ:命令キャッシュ連想度:
命令キャッシュ・ラインサイズ:分岐予測機構:
BPT総エントリ数:BTB総エントリ数:
RAS(Return Address Stack):
32 KBダイレクト・マップ32 B2ビット・カウンタ20482048 (512セットの4ウェイ)8
評価ーハードウェア構成ー
19
評価- 実験結果 -
Nor
mal
ized
Tot
al C
ount
of
Tag-
Com
paris
ons
0
0.2
0.4
0.6
0.8
1
099.go 129.compress 130.li 134.perl 102.swim 110.applu 141.apsi124.m88ksim 126.gcc 132.ijpeg 147.vortex 107.mgrid 125.turb3d
FP Programs
Integer Programs
おわりに (1/2)
ヒストリ・ベース・タグ比較・キャッシュの提案
1. プログラム実行の足跡をBTBに記録
2. 参照データのキャッシュ滞在状況を予測3. 無駄なタグ比較を回避し省エネルギ化を達成
CMR = 0.009TMainMemory = 10*TCacheEMainMemory = 10*ECache
30%30%AMAE = ECache + CMR * 2 * EMainMemory25%25%
AMAT = TCache + CMR * 2 * TMainMemory
従来型サブバンクDMキャッシュと比較(107.mgrid)
おわりに (2/2)
関連技術(インターライン・タグ比較方式)との比較BTBアクセスにおける消費エネルギ・オーバヘッドを
評価キャッシュ・サイズ、BTB連想度が与える影響を調査
第5章
動的可変ラインサイズ・キャッシュ動的可変ラインサイズ・キャッシュアーキテクチャアーキテクチャ
MainMemory
Time Energy
Cache
Time EnergyCMR
37%従来型DMキャッシュと比較 52%
20
高メモリバンド巾の活用
ラインサイズ
ミス・ペナルティ
ラインサイズ
ミス・ペナルティ
ProcessorCache
Main Memory
(On-Chip SRAM)
(Off-Chip DRAM)
ProcessorCache
(On-Chip SRAM)
Main Memory(Off-Chip DRAM)
AMAT = TCache + CMR * 2 * TMainMemoryTMainMemory = TDRAM + LineSize/BandWidth
つまり...
CPU Cache Main Memory
CPU Cache Main Memory
ラインサイズ vs. ミス率
メモリ参照の空間的局所性が高いプログラム
プリフェッチ効果によるヒット率の向上
14.012.010.0
8.06.04.02.00.0
16 32 64 128 256
104.hydro2d072.sc
052.alvinn
Mis
s R
ate
(%)
Line Size [byte]
メモリ参照の空間的局所性が低いプログラム
頻繁なコンフリクト発生によるヒット率の低下
14.012.010.0
8.06.04.02.00.0
16 32 64 128 256
Mis
s R
ate
(%)
Line Size [byte]
134.perl099.go
つまり...ーラインサイズが小さい場合ー
Cache Main Memory
スーパスカラ・プロセッサ
スーパスカラについて調べた
い!
並列処理マシン
回路設計
OS
マイクロ・コンピュータ
レイアウト技術
スーパスカラ・プロセッサ
OS
スーパスカラについて調べた
い!マイクロ・コンピュータ
スーパスカラ・プロセッサ
HIT!
MISS!
並列処理ついて調べたい! スーパスカラ・プロセッサ
MISS! 並列処理マシン
21
つまり...ーラインサイズが大きく、空間的局所性が高い場合ー
Cache Main Memory
スーパスカラ・プロセッサ
スーパスカラについて調べた
い!
並列処理マシン
回路設計
OS
マイクロ・コンピュータ
レイアウト技術
スーパスカラ・プロセッサ
並列処理マシン
並列処理ついて調べたい! スーパスカラ・プロセッサ
並列処理マシンHIT!
スーパスカラについて調べた
い!
スーパスカラ・プロセッサ
HIT! 並列処理マシン
MISS!
つまり...ーラインサイズが大きく、空間的局所性が低い場合ー
Cache Main Memory
スーパスカラ・プロセッサ
スーパスカラについて調べた
い!
並列処理マシン
回路設計
OS
マイクロ・コンピュータ
レイアウト技術
スーパスカラ・プロセッサ
並列処理マシン
スーパスカラについて調べた
い!
スーパスカラ・プロセッサ
MISS! 並列処理マシン
OSについて調べたい!
OS
レイアウト技術
MISS!
MISS!
高メモリバンド巾活用の問題点
DRAM/ロジック混載LSIの特徴である高メモリバンド巾を活用するにはラインサイズを拡大する必要あり!
低い空間的局所性
AMAE = ECache + CMR * 2 * EMainMemory
AMAT = TCache + CMR * 2 * TMainMemory
不必要なデータ・リプレイスによるヒット率の低下
従来の解決方法
セット・アソシアティブ方式の採用によりコンフリクト・ミスを削減
AMAE = ECache + CMR * 2 * EMainMemory
AMAT = TCache + CMR * 2 * TMainMemory
22
動的可変ラインサイズ・キャッシューコンセプト-
A B C DE
A B C D A B C D
高い局所性低い局所性
最小ライン 中間ライン 最大ライン
D-VLSCache
Main Memory
サブアレイ
実行中に空間的局所性の度合いを予測し、ラインサイズを動的に変更
つまり...
CPU Cache Main Memory
空間的局所性の度合いが低い場合
CPU Cache Main Memory
空間的局所性の度合いが高い場合
AMAE = ECache + CMR * 2 * EMainMemory
AMAT = TCache + CMR * 2 * TMainMemory
動的にラインサイズを変更し、無駄なデータリプレイスメントを回避
動的可変ラインサイズ・キャッシュー狙い-
動的可変ラインサイズ・キャッシュー用語の定義-
Main Memory
Y C D
サブラインサブライン ラインライン
セクタセクタ
参照セクタ参照セクタ
参照サブライン参照サブライン
隣接サブライン隣接サブライン
メモリメモリセクタセクタ
現在のメモリ参照Ref. YRef. CRef. B
B
A C DB
Y
Cache
1. 参照サブラインを除く参照セクタ内のサブライン
2. 参照サブラインと同一メモリセクタに属するサブライン.
3. キャッシュ滞在中、少なくとも1回は参照されたサブライン
Y, C and D
C and D
C
23
動的可変ラインサイズ・キャッシュー内部構成-
ダイレクト・マップDVLSキャッシュ(ラインサイズは32バイト、64バイト、128バイトで可変)
Reference Flag Tag Line
Line-SizeDeterminer
MUX Drive
Tag Index OffsetLoad/Store Data
Main Memory
Line-SizeSpecifier
32B 32B 32B 32B
SA
SA:SubArray
動的可変ラインサイズ・キャッシューラインサイズ決定アルゴリズム-
中間ライン
最小ライン 最大ライン
Other Patterns Other Patterns
Other Patterns 参照セクタ
参照サブライン、又は、隣接サブライン
Initial
Line-Size Specifier
評価ーキャッシュ・ミス率 (1/2)ー
Nor
mal
ized
Cac
he M
iss
Rat
esto
the
Res
ult o
f Bes
t Fix
ed-L
ine-
Size
0.5
1
1.5
2
099.go 126.gcc 132.ijpeg 147.vortex 102.swim 104.hydro2d124.m88ksim 130.li 134.perl 101.tomcatv 103.su2cor
2.9FIX32FIX64FIX128DVLS128-32
評価ーキャッシュ・ミス率 (2/2)ー
Nor
mal
ized
Cac
he M
iss
Rat
esto
16K
B FI
X128
0
0.2
0.4
0.6
0.8
1
099.go 126.gcc 132.ijpeg 147.vortex 102.swim 104.hydro2d124.m88ksim 130.li 134.perl 101.tomcatv 103.su2cor
1.04
MIX-IntFp
32KB FIX12816KB DVLS128-32
24
評価ー平均ライン・サイズー
Aver
age
Cac
he L
ine-
Size
[byt
e]
0
32
64
96
128
099.go 126.gcc 132.ijpeg 147.vortex 102.swim 104.hydro2d124.m88ksim 130.li 134.perl 101.tomcatv 103.su2cor MIX-IntFp
16KB DVLS128-32
評価ー主記憶消費エネルギー
Nor
mal
ized
CM
R*2
*EM
ainM
emor
yto
16K
B FI
X128
0
0.2
0.4
0.6
0.8
1
099.go 126.gcc 132.ijpeg 147.vortex 102.swim 104.hydro2d124.m88ksim 130.li 134.perl 101.tomcatv 103.su2cor MIX-IntFp
32KB FIX12816KB DVLS128-32
おわりに (1/2)
動的可変ラインサイズ・キャッシュの提案
1. アクセス・パタンを参照フラグに記録2. 空間的局所性の度合いを予測しラインサイズを変更3. 無駄なデータ・リプレイスメントを回避し、高性能化と
低消費エネルギ化を達成
CMR = 0.06TMainMemory = 10*TCacheEMainMemory = 10*ECache
37%37%AMAE = ECache + CMR * 2 * EMainMemory34%34%
AMAT = TCache + CMR * 2 * TMainMemory
従来型DMキャッシュと比較(MIX-IntFp)
37%37% 52%52%
20%20%
おわりに (2/2)
他の従来型キャッシュ(セット・アソシアティブ方式)との比較静的可変ラインサイズ・キャッシュに関する評価ハードウェア・コストに関する評価キャッシュ・サイズが与える影響を調査オンチップDRAMの性能/消費エネルギ特性が与え
る影響を調査ラインサイズ指定フラグ・テーブルのサイズが与える
影響を調査
25
第6章
まとめと今後の課題
本論文では (1/2)動的適応可能な高性能/低消費電力
キャッシュ・アーキテクチャ
• ウェイ予測セット・アソシアティブ・キャッシュ• ヒストリ・ベース・タグ比較キャッシュ• 動的可変ラインサイズ・キャッシュ
1. メモリ参照パタン(ヒストリ)を採集2. キャッシュ内部処理結果を予測3. 必要のない処理を削除
本論文では (2/2)
WPHTC
DVLS
ECache 無駄なウェイ・アクセス
EMainMemoryCMR
ECache 無駄なタグ比較
無駄なデータ・リプレイス
削減項目 削除対象となる処理
AMAE = ECache + CMR * 2 * EMainMemory
AMAT = TCache + CMR * 2 * TMainMemory
提案キャッシュの組み合わせ (1/2)
WP: ウェイ予測セット・アソシアティブ・キャッシュHTC: ヒストリ・ベース・タグ比較キャッシュDVLS: 動的可変ラインサイズ・キャッシュDM: ダイレクト・マップ方式SA: セット・アソシアティブ方式
Instruction
DM SA
WPWP
HTCHTC
DVLSDVLS
Data
DM SA
26
MainMemory
Time Energy
Cache
Time EnergyCMR
WP+DVLSWP+DVLS
HTC+DVLSHTC+DVLSWP: ウェイ予測セット・アソシアティブ・キャッシュHTC: ヒストリ・ベース・タグ比較キャッシュDVLS: 動的可変ラインサイズ・キャッシュ
I- or D-Cache
I-Cache
提案キャッシュの組み合わせ (2/2) 今後の研究課題
大規模化、複雑化するオンチップ・キャッシュ
• 大容量化と高速化の両立 (高性能)• メモリセル・リーク電流 (低消費電力)• 欠陥救済 (低コスト、高信頼性)• 設計検証(低設計コスト、高信頼性)
最適化アプローチ
HWによる動的最適化
SWによる動的最適化 SWによる静的最適化
本研究
Buck Up Slides(Introduction)
プロセッサーメモリ間の性能差CPU60%/yr.
DRAM7%/yr.
1
10
100
1000
1980
1981
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
1982
Perf
orm
ance
Year
Performance GapPerformance Gap
D. Patterson et al.,”A Case for Intelligent RAM,”IEEE Micro, vol.17, no.2, March/April 1997.
27
提案キャッシュ・アーキテクチャ (2/4)
MainMemory
Time Energy
Cache
Time EnergyCMR
WPWP
HTCHTC
DVLSDVLSWP: ウェイ予測セット・アソシアティブ・キャッシュHTC: ヒストリ・ベース・タグ比較キャッシュDVLS: 動的可変ラインサイズ・キャッシュ
評価ーWPキャッシュ vs. DVLSキャッシュー
FIX128 FIX128W2
FIX128W4
FIX128Double
P128W4
WP128WP128W4W4
DVLSDVLS128128--3232
Cache Size
#of Ways
Line Size
16KB 16KB 16KB 32KB 16KB 16KB 16KB
1 2 4 1 4 4 1
128B 128B 128B 128B 128B 128B 32,64,128B
TCache
TMainMemory
1.000 1.470 1.883 1.195 1.000
10.000
3.7661.883
1.8833.766
ECache
EMainMemory
1.000 1.160 1.480 1.838 1.090
10.000 * AverageLineSize/128B
0.3920.029
0.3701.480
Cache HitCache Miss
Prediction HitOthers
P128W4 WP128W4TCache [Tunit] is based on CACTI2ECache [Eunit] is based on Kamble’s paper
評価ー平均メモリアクセス時間ー
Nor
mal
ized
AM
AT to
FIX
128
099.go 124.m88ksim 126.gcc 130.li 132.ijpeg 134.perl 147.vortex0
0.5
1
1.5
2 2.7 2.4 2.5 2.0
FIX128W2FIX128W4FIX128Double
P128W4WP128W4DVLS128-32
Integer Programs
評価ー平均メモリアクセス時間ー
Nor
mal
ized
AM
AT to
FIX
128
052.alvinn 101.tomcatv 103.su2cor 104.hydro2d0
0.5
1
1.5
2 2.7 2.1
FIX128W2FIX128W4FIX128Double
P128W4WP128W4DVLS128-32
Floating-Point Programs
28
評価ー平均メモリアクセス消費エネルギー
Nor
mal
ized
AM
AE to
FIX
128
099.go 124.m88ksim 126.gcc 130.li 132.ijpeg 134.perl 147.vortex0
0.5
1
1.5 2.7
FIX128W2FIX128W4FIX128Double
P128W4WP128W4DVLS128-32
Integer Programs
評価ー平均メモリアクセス消費エネルギー
052.alvinn 101.tomcatv 103.su2cor 104.hydro2d
Floating-Point Programs
Nor
mal
ized
AM
AE to
FIX
128
0
0.5
1
1.5
FIX128W2FIX128W4FIX128Double
P128W4WP128W4DVLS128-32
評価ーED積 (AMAT * AMAE)-
Nor
mal
ized
AM
AE to
FIX
128
099.go 124.m88ksim 126.gcc 130.li 132.ijpeg 134.perl 147.vortex0
0.5
1
1.5 1.5
FIX128W2FIX128W4FIX128Double
P128W4WP128W4DVLS128-32
Integer Programs
評価ーED積 (AMAT * AMAE)-
Nor
mal
ized
AM
AE to
FIX
128
0
0.5
1
1.51.6
FIX128W2FIX128W4FIX128Double
P128W4WP128W4DVLS128-32
052.alvinn 101.tomcatv 103.su2cor 104.hydro2d
Floating-Point Programs
1.6
29
評価ー平均メモリアクセス時間ー
評価ー平均メモリアクセス消費エネルギー
Buck Up Slides(Way-Predicting Set-Associative Cache)
WPキャッシュ -基本概念ー
キャッシュ・アクセス前に、参照データが存在するウェイを予測
ウェイ予測型キャッシュウェイ予測型キャッシュ
キャッシュ・ヒットの場合、唯一のウェイのみが参照データを有する
つまり...
残りのウェイ・アクセスは無意味!
30
評価 ー概要ー
従来型段階型ウェイ予測型
評価対象
•キャッシュ・サイズ → 8KB I-Cache, 16KB D-Cache•ライン・サイズ → 16B•連想度 → 4 キャッシュ・ミス率は同一
評価項目
消費エネルギ : キャッシュ・アクセス消費エネルギ (ECache)
性能 :キャッシュ・アクセス当たりの平均所要クロック数(TCache)
ECache = Ntag x Etag + Ndata x Edata
1回のアクセスで読み出されるタグ数
1個のタグ読み出しに
要するエネルギー1個のライン読み出しで
消費するエネルギー
1回のアクセスで読み出されるライン数
評価ー実験環境ー
099.go, 124.m88ksim, 126.gcc, 129.compress,130.li, 132.ijpeg, 134.perl, 147.vortex
101.tomcatv, 102.swim, 103.su2cor, 104.hydro2d
SPECint95
SPECfp95
Benchmarks
BenchmarkProgram
Compile(GNU CC)
ObjectCode
QPT RUN
AddressTrace
CacheSimulator
ObjectCode
UltraSPARC
実験的評価ー予測ヒット率ー
予測ヒット率予測ミス率キャッシュ・ミス率
Average of all benchmarks
92.2% 87.4%
I-Cache D-Cache
90%以上半分以上のベンチマーク
85%以上
半分以上のベンチマーク
残り全てのベンチマーク102.swimを除く残り全てのベンチマーク
ほぼ全てのベンチマークにおいて、高予測ヒット率を達成!
予測ヒット率
評価ーキャッシュ消費エネルギ (1/2)ー
0
0.5
1
1.5
2
0
0.1
0.2
0.3
0.4N
orm
aliz
ed T
cach
eN
orm
aliz
ed E
cach
e
124.m88ksim 129.compress 132.ijpeg 102.swim 103.su2cor 104.hydro2d099.go 126.gcc 130.li 134.perl 101.tomcatv 103.su2cor
Instruction Cache
31
評価ーキャッシュ消費エネルギ ー
0
0.5
1
1.5
2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
124.m88ksim 129.compress 132.ijpeg 102.swim 103.su2cor 104.hydro2d099.go 126.gcc 130.li 134.perl 101.tomcatv 103.su2cor
Data Cache
Nor
mal
ized
Tca
che
Nor
mal
ized
Eca
che
評価 ー実験的評価 (6/6)ー
100
200
0Nor
mal
ized
Res
ults
(%)
Ecache Tcache
100
200
0
Nor
mal
ized
Res
ults
(%)
Ecache Tcache
I-Cache D-Cache
28.1%
104.1%
199.4%
35.2%
113.0%
195.8%
Average of all benchmarks
30.3% 29.4%
従来型段階型ウェイ予測型
評価 -定量的評価 (消費エネルギー・オーバヘッド) -ウェイ予測回路の動作
単純な組み合わせ回路で実現でき、消費エネルギーは極めて小さい
ウェイ予測テーブルへのアクセス•デコード → アドレス・デコーダによるオーバヘッドは無視できるほど小さい
•書込み → 予測ヒットの場合は書込みが発生しない
•読み出し → アクセス毎にウェイ予測フラグの読み出しが発生
ウェイ予測テーブルから読み出される信号線の遷移確立を測定
I-Cacheで平均0.4ビットD-Cacheで平均0.8ビット
消費エネルギー・オーバヘッドは無視できるほど小さい消費エネルギー・オーバヘッドは無視できるほど小さい
評価 -定量的評価 (性能オーバヘッド) -ウェイ予測フラグを読み出すための遅延時間
性能オーバヘッドは回避可能性能オーバヘッドは回避可能
命令キャッシュ → 通常、PCは専用インクリメンタを搭載しており、参照アドレスが高速に計算される。
データキャッシュ → ALUによる参照アドレス計算とウェイ予測フラグ読み出しの逐次処理
参照アドレス生成 + ウェイ予測フラグ読み出し
32
Buck Up Slides(History-based Tag-Comparison Cache)
低消費電力キャッシュ- Esram_tag/dataの削減 -
メモリ階層(L0キャッシュ)の追加
L1 Cache
L0 CacheProcessor
•フィルタ・キャッシュ•S-キャッシュ
•ブロック・バッファリング
キャッシュ・モジュールの分割
Cache•MDMキャッシュ
マルチプル・アクセス・キャッシュ
•MRUキャッシュ
•ハッシュ・リハッシュ・キャッシュ
Sequential Way-Access
way
0w
ay1
way
2w
ay3
低消費電力キャッシュ- Esram_dataの削減 -
水平方向へのメモリ分割
•キャッシュ・サブバンキング
シーケンシャル・アクセス
•シーケンシャル・アクセス・キャッシュ•パイプライン・キャッシュ
Tag Line
Tag Line
Hit!Miss!
Replace
低消費電力キャッシュ- Esram_tagの削減 -
条件付きタグ比較 (タグ比較回数の削減) •インターライン・タグ比較
イントラライン・シーケンシャル・フロー連続アドレス、かつ、同一キャッシュ・ライン
イントラライン・ノンシーケンシャル・フロー非連続アドレス、かつ、同一キャッシュ・ライン
インターライン・シーケンシャル・フロー連続アドレス、かつ、異なるキャッシュ・ライン
インターライン・ノンシーケンシャル・フロー非連続アドレス、かつ、異なるキャッシュ・ライン
連続して実行される命令iとjの関係
インターライン・フロー時のみ命令jのタグ比較を実行
33
低消費電力キャッシュ- Esram_tag削減の重要性 -
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
8(1) 4(2) 2(4) 1(8)
# of words in a Subbank (Total # of Subbanks)
Brea
kdow
n of
Ene
rgy
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
8(1) 4(2) 2(4) 1(8)
32-bit CPU 64-bit CPU
Esram_data_bitEsram_tag_bit
Esram_others
This calculation is based on Kamble, et. Al., “Analytical energy Dissipation Models for Low Power Caches”, ISLPED’97
CS = 32 KBL S = 32 B
CS = 64 KBLS = 64 B
CS: Cache SizeLS: Line Size
ヒストリ・ベース・タグ比較- 基本動作 (1/2) -
Start
Cache hit?
BTB hit?
RAS?
Taken Prediction?
RCT TCO
1 RCT
Go to start
RCN TCO
1 RCN
0 all RCTs0 all RCNs
N
Y
YN
0 TCOY
N
Y N
BTBアクセス時
の動作
ヒストリ・ベース・タグ比較- 基本動作 (2/2) -
PC復元時
の動作
Start
BTB update?
WrongPrediction?
RCN TCO
1 RCN
Go to start
RCT TCO
1 RCT
0 all RCTs0 all RCNs
N
0 TCO
Y
Y N
Replacement?Y
N
1 RCT0 RCN
TCO RCT TCO RCN
評価- 実験環境 -
CacheSimulator
Branch Prediction Table
Branch Target Buffer
Functional Execution
SimpleScalar Processor
SimpleScalarObject Code Address Traces
ReportTotal # of
tag-comparison
8 integer and 5 FP programs from the SPEC95
34
評価ー評価対象 (1/2)ー
•C-TC (Conventional Tag-Comparison:Base)
•IL-TC (Interline Tag-Comparison)
•H-TC (History-based Tag-Comparison)
•H-TCideal (History-based Tag-Comparison)
•HIL-TC (History-based Interline Tag-Comparison)
→命令フェッチ毎にタグ比較
→インターライン・フロー時のみタグ比較
→TCOフラグに従ってタグ比較
→ハードウェア制約を無視した理想的なH-TC→パーフェクト命令キャッシュ、かつ、フルアソシアティブBTB
→IL-TCとH-TCの組み合わせ→TCOフラグが0、かつ、インターライン・フロー時のみタグ比較
評価- 実験結果 (1/2) -
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
099.g
o
124.m
88ksim
129.c
om
pre
ss
126.g
cc
130.li
132.ij
peg
134.p
erl
147.v
ort
ex
102.s
wim
107.m
gri
d
110.a
pplu
125.t
urb
3d
141.a
psi
IL-TCH-TCH-TCidealHIL-TC
Nor
mal
ized
Tot
al C
ount
of
Tag-
Com
paris
ons
評価- 評価対象 (1/2) -
•C-TC (Conventional Tag-Comparison:Base)
•IL-TC (Interline Tag-Comparison)
•H-TC (History-based Tag-Comparison)
•HIL-TC (History-based Interline Tag-Comparison)
→命令フェッチ毎にタグ比較
→インターライン・フロー時のみタグ比較
→TCOフラグに従ってタグ比較
→IL-TCとH-TCの組み合わせ→TCOフラグが0、かつ、インターライン・フロー時のみタグ比較
評価- 実験結果 (2/2) -
IL-TC (インターライン・タグ比較)•全てのプログラムにおいて70%程度削減
H-TC (ヒストリ・ベース・タグ比較)•浮動小数点プログラムにおいて90~99%削減•幾つかの整数プログラムにおいて80~90%削減
•その他の整数プログラムにおいて低い削減率
H-TCideal (理想的なヒストリ・ベース・タグ比較)•全てのプログラムにおいて高い削減率
HIL-TC (H-TCとIL-TCの組み合わせ)•全てのプログラムにおいて高い削減率
35
低消費電力キャッシュ- インターライン・タグ比較方式 -
インターライン・フロー時のみ命令 j のタグ比較を実行
同一ライン異なるライン
イントラライン・フローインターライン・フロー
インター・ライン イントラ・ライン
This WorkOur Work
連続して実行される命令 i と j
評価- 実験結果 (1/2) -
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
099.g
o
124.m
88ksim
129.c
om
pre
ss
126.g
cc
130.li
132.ij
peg
134.p
erl
147.v
ort
ex
102.s
wim
107.m
gri
d
110.a
pplu
125.t
urb
3d
141.a
psi
IL-TCH-TCHIL-TC
Nor
mal
ized
Tot
al C
ount
of
Tag-
Com
paris
ons
評価- HW制約による影響 (1/4) -
ヒストリ・ベース・タグ比較
•BTBリプレイス発生時に全ての実行足跡を消去
•キャッシュ・ミス発生時に全ての実行足跡を消去
BTB連想度が与える影響は?
キャッシュ・サイズが与える影響は?
132.ijpeg:高い削減率099.go, 126.gcc, 147.vortex:低い削減率
Benchmark programs
評価- HW制約による影響 (2/4) -
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
132.ijpeg 099.go 126.gcc 147.vortex
Nor
mal
ized
Tot
al C
ount
s of
Tag-
Com
paris
on
BTB連想度が与える影響(BTBサイズは一定)
2way8way32way128way512way2048wayH-TCIdeal
36
評価- HW制約による影響 (3/4) -
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
132.ijpeg 099.go 126.gcc 147.vortex
Nor
mal
ized
Tot
al C
ount
s of
Tag-
Com
paris
on
命令キャッシュ・サイズが与える影響
4 KB8 KB16 KB32 KB64 KB512 KBPerfectH-TCideal
評価- HW制約による影響 (4/4) -
ヒストリ・ベース・タグ比較の効果は命令キャッシュ・サイズに大きく依存
トランジスタ集積度の向上に伴いキャッシュ・サイズは増加傾向
今後のCPUにおいて
ヒストリ・ベース・タグ比較方式は有効
評価- エネルギー・オーバヘッド (1/4) -
ヒストリ・ベース・タグ比較方式はBTB拡張を伴う
→実行足跡(RCTおよびRCNフラグ)の追加
BTBアクセスにおける
消費エネルギー・オーバヘッドの影響は?
•実行足跡の読出し/書込み
•実行足跡の一括消去
評価- エネルギー・オーバヘッド (2/4) -
実行足跡の読出し/書込み
実行足跡の読出し/書込みはBTBヒット時のみ発生
分岐命令出現率が20%、BTBヒット率が100%と仮定すると...
5命令実行に1度の実行足跡アクセス(1ビットの読出し、および、書込み)
従来方式では、1命令実行に1回のタグ比較(タグメモリ・アクセスおよび比較)
37
評価- エネルギー・オーバヘッド (3/4) -
実行足跡の一括消去
0123456789
10
099.g
o
124.m
88ksim
129.c
om
pre
ss
126.g
cc
130.li
132.ij
peg
134.p
erl
147.v
ort
ex
102.s
wim
107.m
gri
d
110.a
pplu
125.t
urb
3d
141.a
psi
0.10.090.080.070.060.050.040.030.020.010.00Av
e. #
of E
rase
d Fo
otpr
ints
pe
r Era
se-P
roce
ss [b
it]
Ave. # of Erased Footprints per I-fetch [bit]
評価- HW制約による影響 (4/4) -
BTB拡張に伴うエネルギー・オーバヘッドは
無視できる程度に小さい
•BTBにおける実行足跡の読出し/書込み
•BTBにおける実行足跡の一括消去
従来のタグ比較方式
→命令フェッチ毎にタグ比較(タグメモリ・アクセスと比較)
ヒストリ・ベース・タグ比較方式
→命令フェッチ当たり0.2ビットの読出し/書込み
→命令フェッチ当たり0.1ビットの消去
Buck Up Slides(Variable Line-Size Cache)
DRAM/ロジック混載LSI
•高オンチップ・メモリバンド巾の活用による高性能化•外部入出力ピン駆動回数の削減による低消費電力化
CPU-主記憶間のI/Oピン削除による恩恵
高性能化と低消費電力化を両立できる夢のデバイス!?
どのようなアプリケーションに対しても有効なのか?もし有効でないなら、
様々なアプリケーションに対応するには?
38
評価ー実験環境-
CacheSimulatorCache
Simulator
BenchmarkProgram
ObjectCode
ObjectCode
Compile(GNU CC) QPT
RUNAddress
Trace
Report(Miss Rate)
ベンチマーク・プログラム
SPEC92, SPEC959個の整数プログラム5個の浮動小数点プログラム
Report(Replace Count)
Miss Rate for Benchmarks- Integer Programs -
Miss Rate for Benchmarks- FP Programs - Miss Rate for Benchmark Sets
39
Hardware OverheadCacheModel SRAM [bit] Logic [Tr] Total [Tr]
FIX32FIX64FIX128DD--VLSVLS
128128--32LSS132LSS1DD--VLSVLS
128128--32LSS832LSS8
140,288135,680133,376
140,800140,800
140,800140,800
8,35411,31017,988
33,17233,172
21,20821,208
78,49879,15084,676
103,572103,572
91,60891,608
* The area of 2-bits SRAM cell is equal to that of one transistor.* Logic design using VHDL (Synopsys VHDL Compiler)
Hit-Time Overhead
Amount of Spatial Locality at a Cache-Sector Miss Rate versus Cache Size
40
Breakdown of Miss Rate評価概要ー 比較対照 -
以下のキャッシュを搭載したオンチップ・メモリパス
Fix128:16KB従来型ダイレクトマップ(ラインサイズは128B)Fix128W4:16KB従来型4ウェイ・セットアソシアティブ(ラインサイズは128B)Fix128double:32KB従来型ダイレクトマップ(ラインサイズは128B)D-VLS128-32:16KBダイレクトマップ動的可変ラインサイズ(ラインサイズは32B、64B、および、128Bで可変)
実験結果ー ミス率 -
D-VLS128-32 vs. Fix128double5~6個のプログラムにおいて、同程度もしくはそれ以下のミス率
D-VLS128-32 vs. Fix128ほとんどのプログラムにおいてヒット率向上
D-VLS128-32 vs. Fix128W4ほとんどのプログラムにおいて高いミス率
Fix128のミス率で正規化(全プログラム平均)1.0
0.0
0.60.40.2
0.80.76
0.620.42
1.00 Fix128Fix128W4Fix128doubleD-VLS128-32
実験結果ー リプレイス・カウント -
リプレイス当たりの平均ラインサイズ(全プログラム平均)
D-VLS128-32でのリプレイス・カウントLine Size32 bytes64 bytes128 bytesAverageLine-Size
026.compress3,164,502243,97914,498
34.68 B
052.alvinn11,546,4151,465,880
18,806,730
90.22 B
54.5B
128B128B128B
Ave
. Lin
e-Si
ze Fix128Fix128W4Fix128doubleD-VLS128-32
41
性能評価ー 性能モデル -
(CACTIモデルを使用)
平均メモリアクセス時間(AMAT)メモリシステムが、CPUからのメモリ参照をサービスする際の平均遅延時間
AMAT = ヒット時間 + ミス率×2×ミス・ペナルティ(= 60 ns)
Fix128Fix128W4Fix128doubleD-VLS128-32ヒ
ット
時間
[ns]
3.5104.115
8.426
3.510
性能評価ー 平均メモリアクセス時間 -
Fix128double vs. Fix128ヒット時間オーバヘッドは少ないため、約20%の性能向上
Fix128W4 vs. Fix128ヒット時間オーバヘッドに伴い、約13%の性能低下
D-VLS128-32 vs. Fix128ヒット時間オーバヘッドはないため、約20%の性能向上
Fix128のAMATで正規化(全プログラム平均)1.5
0.0
1.00.5
0.830.821.131.00
Fix128Fix128W4Fix128doubleD-VLS128-32
消費エネルギー評価ー 消費エネルギー・モデル -
主記憶アクセスにおける消費エネルギー(E)
E = ∑RepCount(n)×Esubarray×n/32bytesN
N = {n|n = 32bytes, 64bytes, 128bytes}
ラインサイズnでの
総リプレイス回数
32バイトDRAMサブアレイに対する2回のア
クセスで消費されるエネルギー
ラインサイズnにおける、リプレイス当たりのオンチップDRAM消費エネルギー
ただし、従来型キャッシュにおいて、RepCount(32bytes)およびRepCount(64bytes)は0
消費エネルギー評価ー 消費エネルギー -
Fix128のEで正規化(全プログラム平均)
Fix128W4 vs. Fix128ヒット率向上により約60%の低消費エネルギー化
D-VLS128-32 vs. Fix128ヒット向上と選択的活性化により約70%の低消費エネルギー化
0.32
0.720.42
1.001.0
0.0
0.60.40.2
0.8Fix128Fix128W4Fix128doubleD-VLS128-32
42
性能 / 消費エネルギー評価ー ED積(AMAT×E) -
D-VLS128-32 vs. Fix128
72%のED積削減
Fix128のED積で正規化(全プログラム平均)
0.280.530.51
1.001.0
0.0
0.60.40.2
0.8
Fix128W4, Fix128double vs. Fix128高性能化(×/〇) 低消費エネルギー化(○/×)
高性能化(〇) 低消費エネルギー化(○)
Fix128Fix128W4Fix128doubleD-VLS128-32
CPU: 22% per year
DRAM: 7% per year
Performance GapPerformance Gap
1
10
100
1000
1975 1980 1985 1990 1995 2000
Freq
uenc
y (M
Hz)
Year
プロセッサーメモリ間の性能差(動作周波数)
動的可変ラインサイズ・キャッシュー効果ー
TMemory = CacheHitTime+ MissRate×MissPenaltyEMemory = ECache + MissRate×EMain
ラインサイズの縮小によりコンフリクト・ミスの発生を回避
→アクセス時間オーバヘッドを伴う事無くヒット率を向上
ラインサイズに対応したオンチップDRAM選択的アクセス
→主記憶アクセスにおける消費エネルギーの削減
動的可変ラインサイズ・キャッシュー評価ー
1.5
0.0
1.00.5
0.800.811.071.00
Fix128Fix128W4Fix128doubleD-VLS128-32
平均メモリアクセス時間 (AMAT)
0.290.58
0.32
1.001.0
0.0
0.60.40.2
0.8Fix128Fix128W4Fix128doubleD-VLS128-32
主記憶アクセス消費エネルギー (CMR×EMain)
43
Performance Evaluations-Average memory access time-
13
Energy Evaluations-Average memory access energy-
14
Total Evaluations-Energy-Delay Product-
15