ヒストリ・ベース・タグ比較

Download Report

Transcript ヒストリ・ベース・タグ比較

High-Performance Low-Power
Cache Memory Architectures
(高性能/低消費電力キャッシュメモリ・アーキテクチャ)
九州大学大学院 システム情報科学研究科 情報工学専攻
博士後期課程3年
井上 弘士
論文の構成
第1章:背景と目的
第2章:メモリシステム性能と消費電力
第3章:ウェイ予測セット・アソシアティブ・キャッシュ
第4章:ヒストリ・ベース・タグ比較キャッシュ
第5章:可変ラインサイズ・キャッシュ
第6章:まとめと今後の課題
はじめに
コンピュータ・システムの高性能化
演算処理
CPU
CPU性能
+
データの記憶
DRAM
メモリシステム性能
プロセッサーメモリ間性能差の隠蔽
オンチップ・キャッシュの搭載
演算処理
データの記憶
データの記憶
CPU
+
DRAM
Cache
Memory
メモリ参照の時間的/空間的局所性を活用
キャッシュ・メモリとは?
CPU
CPU
Main Memory
Cache
Main Memory
メモリ参照の局所性
時間的局所性:メモリ上のある項目が参照されると、間も
なくそれが再び参照される確率が高い、という性質
空間的局所性:メモリ上のある項目が参照されると、その
近くの項目も間もなく参照される確率が高い、という性質
ヘネシー&パターソン コンピュータ・アーキテクチャ
マイクロ・コンピュータ
田丸・安浦 著
並列処理マシン
富田・末吉 著
スーパスカラ・プロセッサ
村上 監訳
CPUについて
調べたい!
キャッシュ・メモリの利点
CPU
Cache
Main Memory
小容量
高速アクセス
低消費エネルギ
大容量
低速アクセス
高消費エネルギ
メモリ参照の局所性により、多くのメモリアクセス
がキャッシュ・メモリで完結!
ダイレクト・マップ・キャッシュ
CPUから発行された
メモリ参照アドレス
Tag
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
Index Offset
Cache
Tag Line
Index
000
001
010
011
100
101
110
111
=?
MUX
一致ならヒット!
Tag
Index
ダイレクト・マップ・キャッシュ
動作原理に関する本の場所
スーパスカラ
について調べ
たい!
マイクロ・コンピュータ
田丸・安浦 著
Tag:本の名前
Index:分野
回路設計に関する本の場所
並列処理に関する本の場所
CPU
スーパスカラ・プロセッサ
村上 監訳
並列処理マシン
富田・末吉 著
OSに関する本の場所
Main Memory
Cache
2ウェイ・セット・アソシアティブ
キャッシュ
CPUから発行された
メモリ参照アドレス
Index Offset
Tag
Memory
Address Memory
Cache
Tag
Index
00
01
10
11
00
01
10
11
=?
MUX
=?
MUX
一致ならヒット!
MUX
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ウェイ・セット・アソシアティブ
キャッシュ
スーパスカラ
について調べ
たい!
動作原理、または、並列処理に関する本の場所
並列処理マシン
富田・末吉 著
スーパスカラ・プロセッサ
村上 監訳
回路設計、または、OSに関する本の場所
CPU
Tag:本の名前
Index:分野
Cache
マイクロ・コンピュータ
田丸・安浦 著
Main Memory
本研究の動機 (1/2)
性能差は十分隠蔽できているのか?
Alpha 21164
Fraction of time
spent in
Processor
SPECint92 (22%) SPECfp92 (32%) I-Cache Misses
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
SPECint92 (22%) SPECfp92 (32%) I-Cache Misses
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**
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
ワークステーション
→メモリ参照の振る舞いを静的に予測しにくい
→オブジェクト・コードの互換性を保つことは重要
本研究における戦略 (1/3)
目標:高性能かつ低消費エネルギなメモリシステムを
構築するためのキャッシュ・アーキテクチャを実現
How?
手段:不必要な処理を削除
本研究における戦略 (2/3)
要求:オブジェクト・コードの互換性を保ち、かつ、
様々なプログラム特性に対応
How?
手段:ハードウェアによる動的最適化
本研究における戦略 (3/3)
動的最適化により無駄な処理を削除
How?
Predict and Eliminate!
1. メモリ参照パタン(ヒストリ)を採取
2. キャッシュ内部処理結果を予測
3. 必要のない処理を削除
提案キャッシュ・アーキテクチャ
ウェイ予測セット・アソシアティブ・キャッシュ (第3章)
・不必要なウェイアクセスを削除
ヒストリ・ベース・タグ比較キャッシュ (第4章)
・不必要なタグ比較処理を削除
動的可変ラインサイズ・キャッシュ (第5章)
・不必要なデータ・リプレイスを削除
メモリシステム性能と消費エネルギ
平均メモリアクセス時間 (AMAT)
= TCache + CMR * 2 * TMainMemory
平均メモリアクセス消費エネルギ (AMAE)
= ECache + CMR * 2 * EMainMemory
提案キャッシュの効果
Cache
Time
Energy
CMR
MainMemory
Time
Energy
WP
HTC
DVLS
WP: ウェイ予測セット・アソシアティブ・キャッシュ
HTC: ヒストリ・ベース・タグ比較キャッシュ
DVLS: 動的可変ラインサイズ・キャッシュ
第3章
ウェイ予測セット・アソシアティブ
キャッシュ・アーキテクチャ
Cache
Time
Energy
10% 70%
CMR
MainMemory
Time
Energy
従来型4ウェイSAキャッシュと比較
従来型キャッシュの動作
タグ・サブアレイ
ウェイ 0
ライン・サブアレイ
1
2
3
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと
ラインを同時読み出し
タグ
Step3. タグ比較
一致(ヒット)
Step4.参照データをサービス後、
アクセスを終了
不一致(ミス)
Step4.アクセスを終了後、
ラインのリプレイス
各キャッシュの動作
ー従来型-
スーパスカラ
について調べ
たい!
CPU
動作原理、または、並列処理に関する本の場所
スーパスカラ・プロセッサ
村上 監訳
並列処理マシン
富田・末吉 著
Way-0
Way-1
本の確認
(タグ比較)
これだ!
Cache
本を開く
本の確認
(ライン読出し) (タグ比較)
本を開く
(ライン読出し)
段階型キャッシュの動作
ライン読み出しを遅らせることによる省エネルギー化
Step1. 参照アドレスのデコード
フェーズ1
Step2.全ウェイにおけるタグ読み出し
Step3. タグ比較
一致(ヒット)
フェーズ2
不一致(ミス)
Step4. アクセス終了後、
ラインのリプレイス
Step4.ヒットしたラインだけを読み出し
Step5.参照データをサービス後、
性能を犠牲にする事で
アクセスを終了
低消費エネルギー化を達成
各キャッシュの動作
ー段階型-
スーパスカラ
について調べ
たい!
CPU
動作原理、または、並列処理に関する本の場所
スーパスカラ・プロセッサ
村上 監訳
並列処理マシン
富田・末吉 著
Way-0
Way-1
Cache
本の確認
(タグ比較)
本の確認
(タグ比較)
これだ!
本を開く
(ライン読出し)
WPキャッシュ
ー基本概念ー
段階型キャッシュ → ヒット時の性能を犠牲に!
高性能/低消費エネルギー化を実現するためには…
•タグとラインの同時読み出しによる高速化
従来型〇 段階型×
•無駄なウェイ・アクセスの回避による省エネルギー化
従来型× 段階型〇
の相反する要求を同時に満足する必要あり!
ウェイ予測型キャッシュ
キャッシュ・アクセス前に、参照データが存在するウェイを予測
WPキャッシュ
-基本動作ー
タグ比較とは独立に
ウェイを選択
Step0.ウェイ予測
Step1. 参照アドレスのデコード
Step2.予測されたウェイに対応する
タグとラインの同時読み出し
Step3. タグ比較
フェーズ1
不一致
一致(予測ヒット)
Step4.終了
Step4.残りウェイのタグと
ラインの同時読み出し
Step5. タグ比較
フェーズ2
一致(予測ミス)
Step6.終了
不一致(キャッシュ・ミス)
Step6.終了後、リプレイス
WPキャッシュ
-ウェイ予測ー
ウェイ予測型キャッシュの有効性は予測ヒット率に依存
多くのプログラムには高いメモリ参照局所性
ウェイ予測に MRU(Most Recently Used)アルゴリズムを採用
参照
予測ウェイ(見込みウェイ)
セット S
セット S
ウェイ2
T
ウェイ2
T+n
時間
各セットにおいて、前回のアクセスが
•予測ヒットもしくは予測ミス → 参照データが存在したウェイ
•キャッシュ・ミス → リプレイス対象となったウェイ
を次回の予測ウェイとする
各キャッシュの動作
ーウェイ予測型-
スーパスカラ
について調べ
たい!
CPU
前回、Way-0
においていた
ので、これ
だ!
動作原理、または、並列処理に関する本の場所
スーパスカラ・プロセッサ
村上 監訳
並列処理マシン
富田・末吉 著
Way-0
Way-1
本の確認
(タグ比較)
Cache
本を開く
(ライン読出し)
各キャッシュの動作
ーウェイ予測型-
スーパスカラ
について調べ
たい!
CPU
前回、Way-1
においていた
ので、これ
だ!
動作原理、または、並列処理に関する本の場所
スーパスカラ・プロセッサ
村上 監訳
並列処理マシン
富田・末吉 著
Way-0
Way-1
Cache
本の確認
(タグ比較)
あ、違った!
本を開く
(ライン読出し)
各キャッシュの動作
ーウェイ予測型-
スーパスカラ
について調べ
たい!
CPU
じゃ、こちらを
探そう!
動作原理、または、並列処理に関する本の場所
スーパスカラ・プロセッサ
村上 監訳
並列処理マシン
富田・末吉 著
Way-0
Way-1
本の確認
(タグ比較)
Cache
本を開く
(ライン読出し)
WPキャッシュ
-内部構成ー
Reference-Address
Tag
Index
Offset
2bits
ウェイ予測
フラグ
Access Control
Status
Tag Line
way0
ウェイ予測
回路
MUX
Drive
way1
way2
way3
理論的評価 (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-予測ヒット率)
理論的評価 (2/2)
(# of Edata)
従来型
段階型
ウェイ予測型
Energy
(Etag = 0.078Edata)
Performance
従来型と比較して
最善ケース (予測ヒット率=100%) : 性能低下を伴うこと無く75%の省エネルギー化
最悪ケース(予測ヒット率=0%) : 2倍の性能低下を伴い、かつ、省エネルギー効果なし
実験的評価
ーウェイ予測ヒット率ー
I-Cache
Benchmarks
099.go
124.m88ksim
126.gcc
129.compress
130.li
132.ijpeg
134.perl
147.vortex
101.tomcatv
102.swim
103.su2cor
104.hydro2d
Average
D-Cache
PHR (%) PMR (%) CMR (%) PHR (%) PMR (%) CMR (%)
94.55
4.04
1.41
81.31
17.45
1.24
95.76
4.05
0.19
95.47
3.63
0.91
92.32
5.09
2.59
87.4
9.59
3.01
99.98
0.02
0
91.64
3.63
4.73
97.28
2.71
0
92.82
3.91
3.27
99.74
0.25
0.01
92.6
6.38
1.02
94.93
4.65
0.42
92.64
5.78
1.58
91.65
7.11
1.25
89.38
9.16
1.46
91.61
7.3
1.09
87.96
9.96
2.08
97.96
2.04
0
50.27
31.71
18.03
96.48
3.23
0.28
85.22
8.14
6.64
98.28
1.43
0.29
89.41
3.55
7.04
95.87 3.49
0.62 86.34
9.41
4.25
実験的評価
ー性能と消費エネルギ(1/2)ー
Normalized Ecache
Normalized Tcache
Instruction Cache
段階型 ウェイ予測型
2
1.5
1
0.5
0
0.4
0.3
0.2
0.1
0
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)ー
Normalized Ecache
Normalized Tcache
Data Cache
段階型 ウェイ予測型
2
1.5
1
0.5
0
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
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)
ウェイ予測セット・アソシアティブ・キャッシュの提案
1. メモリ参照パタンをウェイ予測テーブルに記録
2. 参照データを有するウェイを予測
3. 無駄なウェイアクセスを回避し省エネルギ化を達成
AMAT = TCache + CMR * 2 * TMainMemory
4%
5%
AMAE = ECache + CMR * 2 * EMainMemory
51%
72%
CMR = 0.02
従来型4ウェイSAデータキャッシュと比較 TMainMemory = 10*TCache
(124.m88ksim)
EMainMemory = 10*ECache
おわりに (2/2)
ウェイ予測テーブル・アクセスに伴う性能オーバ
ヘッドを評価
ウェイ予測テーブル・アクセスに伴う消費エネル
ギ・オーバヘッドを評価
キャッシュ・サイズ、ライン・サイズ、連想度が与え
る影響を調査
ウェイ予測テーブル・サイズが与える影響を調査

第4章
ヒストリ・ベース・タグ比較キャッシュ
アーキテクチャ
Cache
Time
Energy
30%
CMR
MainMemory
Time
Energy
サブバンキング手法を用いた
従来型DMキャッシュと比較
従来型キャッシュ
ECache = Etag + Edata
Reference-address
Tag Index Offset
タグメモリ
Tag
データメモリ
Line
MUX
Direct-Mapped Cache
Hit?
Word Data
ヒストリ・ベース・タグ比較
- 用語の定義 動的基本ブロック
•1個以上の連続した静的基本ブロックで構成
•サイズはブロック中の条件付分岐命令に依存
•先頭はある分岐命令の分岐先アドレス
•最終は次に出現するtaken分岐命令のアドレス
実行フロー
(静的)基本ブロック
分岐先アドレス
条件不成立の分岐命令
条件成立の分岐命令
動的基本ブロック
ヒストリ・ベース・タグ比較
- コンセプト (1/2) 命令キャッシュ・アクセスでは極めて高いヒット率
→ほとんどのタグ比較結果は一致
にも関わらず...
従来のキャッシュではアクセスごとにタグ比較を実行
→タグ比較に要するエネルギーを毎サイクル消費
タグ比較を行う事無しに参照命令がキャッシュ中に
存在するか否かを判定可能?
→タグ比較処理を省略して低消費電力化を実現!
ヒストリ・ベース・タグ比較
- コンセプト (2/2) 事実1:命令キャッシュのヒット率は極めて高い
→キャッシュ内容の更新は稀にしか発生しない
事実2:プログラムはループ構造に基づく
→動的基本ブロックは繰り返し実行される
ある動的基本ブロックの実行において、
•過去に実行された事があり、かつ、
•その時から現在までに1度もミスが発生していない
ならば、タグ比較処理を省略可能!
従来型とヒストリ・ベース型の比較
ー従来型ー
動作原理につ
いて調べた
い!
CPU
もう1度、動作
原理について
調べたい!
CPU
動作原理に関する本の場所
マイクロ・コンピュータ
田丸・安浦 著
本を開く
本の確認
(タグ比較) (ライン読出し)
Cache
動作原理に関する本の場所
マイクロ・コンピュータ
田丸・安浦 著
Cache
本を開く
本の確認
(タグ比較) (ライン読出し)
従来型とヒストリ・ベース型の比較
ーヒストリ・ベース型ー
動作原理につ
いて調べた
い!
CPU
もう1度、動作原
理について調べ
たい!さっき調
べたから、まだ
あるはずだ!
CPU
動作原理に関する本の場所
マイクロ・コンピュータ
田丸・安浦 著
本を開く
本の確認
(タグ比較) (ライン読出し)
Cache
動作原理に関する本の場所
マイクロ・コンピュータ
田丸・安浦 著
Cache
X
本を開く
(ライン読出し)
ヒストリ・ベース・タグ比較
- 実行履歴 1. 時刻 T にて動的基本ブロックAを実行
•タグ比較を実行
A
?
$ •実行足跡を残す
2. キャッシュ・ミスが発生したら全ての足跡を消去
3. 時刻 T+x にて動的基本ブロックAを再度実行
A
A
$
•足跡が残っていれば
タグ比較を省略
ヒストリ・ベース・タグ比較
- 実行足跡の記録 BTB(Branch Target Buffer)を利用して実行足跡を記録
EFT EFN
Branch Inst. Addr. Target Address
Top
BTB
Not-taken
Tail
Branch Inst. Addr. Target Address
Prediction Result
TCO
Tag-Comparison
is Omitted
$
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
時刻
BTBエントリ(分岐命令)
(インタレーション番号-分岐命令のアドレス)
C Branch to A
D Branch to A
F
Top
BTB内部状態
実行フロー
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
1 2 34 5 67
A
Top
B Branch to F
C Branch to A
D Branch to A
Performing!
Top
F
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
1 2 34 5 67
A
Top
B Branch to F
C Branch to A
D Branch to A
Performing!
Top
F
EFT EFN TCO
1-C
Branch-C
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
1 2 34 5 67
A
Top
B Branch to F
C Branch to A
D Branch to A
Performing!
Top
F
EFT EFN TCO
1-C
Branch-C
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
C Branch to A
D Branch to A
Performing!
Top
F
2-C
Branch-C
Branch-C
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
2-C
B Branch to F
C Branch to A
D Branch to A
F
Top
Omitting!
Branch-C
Branch-C
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
2-C
B Branch to F
3-C
C Branch to A
D Branch to A
F
Top
Omitting!
Branch-C
Branch-C
Branch-C
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
2-C
B Branch to F
3-C
C Branch to A
D Branch to A
F
Top
Omitting!
Branch-C
Branch-C
Branch-C
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
2-C
B Branch to F
3-C
C Branch to A
4-C
D Branch to A
F
Top
Omitting!
Branch-C
Branch-C
Branch-C
Branch-C
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
D Branch to A
Performing!
Top
F
4-C
Branch-C
Branch-C
Branch-C
Branch-C
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
4-C
D Branch to A
Performing! 4-D
Top
F
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
4-C
D Branch to A
Performing! 4-D
Top
F
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
4-C
D Branch to A
Performing! 4-D
Top
F
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
5-C
EFN of Branch-C
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
D Branch to A
F
Top
4-C
Omitting! 4-D
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
5-C
EFN of Branch-C
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
D Branch to A
F
Top
4-C
Omitting! 4-D
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
5-C
5-D
EFN of Branch-C
Branch-C
Branch-D
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
D Branch to A
F
Top
4-C
Omitting! 4-D
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
5-C
5-D
EFN of Branch-C
Branch-C
Branch-D
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
D Branch to A
F
Top
4-C
Omitting! 4-D
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
5-C
5-D
6-C
EFN of Branch-C
Branch-C
Branch-D
Branch-C
Branch-D
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
D Branch to A
F
Top
4-C
Omitting! 4-D
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
5-C
5-D
6-C
EFN of Branch-C
Branch-C
Branch-D
Branch-C
Branch-D
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
D Branch to A
F
Top
4-C
Omitting! 4-D
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
5-C
5-D
6-C
6-D
EFN of Branch-C
Branch-C
Branch-D
Branch-C
Branch-D
Branch-C
Branch-D
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
D Branch to A
F
Top
4-C
Omitting! 4-D
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
5-C
5-D
6-C
6-D
EFN of Branch-C
Branch-C
Branch-D
Branch-C
Branch-D
Branch-C
Branch-D
Branch-C
Branch-D
ヒストリ・ベース・タグ比較
- 動作例 Iteration
Count
EFT EFN TCO
1-C
1 2 34 5 67
A
Top
B Branch to F
2-C
3-C
C Branch to A
D Branch to A
F
Top
4-C
4-D
Performing!
Branch-C
Branch-C
Branch-C
Branch-C
Branch-C
Branch-D
5-C
5-D
6-C
6-D
7-B
EFN of Branch-C
Branch-C
Branch-D
Branch-C
Branch-D
Branch-C
Branch-D
Branch-C
Branch-D
Branch-B
Branch-C
Branch-D
評価
ーハードウェア構成ー
命令キャッシュ・サイズ: 32 KB
命令キャッシュ連想度: ダイレクト・マップ
命令キャッシュ・ラインサイズ: 32 B
分岐予測機構: 2ビット・カウンタ
BPT総エントリ数: 2048
BTB総エントリ数: 2048 (512セットの4ウェイ)
RAS(Return Address Stack): 8
評価
Normalized Total Count of
Tag-Comparisons
- 実験結果 1
0.8
Integer Programs
0.6
0.4
FP Programs
0.2
0
099.go 129.compress 130.li
134.perl 102.swim 110.applu 141.apsi
124.m88ksim 126.gcc 132.ijpeg 147.vortex 107.mgrid 125.turb3d
おわりに (1/2)
ヒストリ・ベース・タグ比較・キャッシュの提案
1. プログラム実行の足跡をBTBに記録
2. 参照データのキャッシュ滞在状況を予測
3. 無駄なタグ比較を回避し省エネルギ化を達成
AMAT = TCache + CMR * 2 * TMainMemory
AMAE = ECache + CMR * 2 * EMainMemory
25%
30%
CMR = 0.009
従来型サブバンクDMキャッシュと比較 TMainMemory = 10*TCache
(107.mgrid)
EMainMemory = 10*ECache
おわりに (2/2)
関連技術(インターライン・タグ比較方式)との比較
BTBアクセスにおける消費エネルギ・オーバヘッドを
評価
キャッシュ・サイズ、BTB連想度が与える影響を調査

第5章
動的可変ラインサイズ・キャッシュ
アーキテクチャ
Cache
Time
Energy
従来型DMキャッシュと比較
CMR
37%
MainMemory
Time
Energy
52%
高メモリバンド巾の活用
AMAT = TCache + CMR * 2 * TMainMemory
TMainMemory = TDRAM + LineSize/BandWidth
Processor
Cache
Processor
Cache
(On-Chip SRAM)
(On-Chip SRAM)
Main Memory
Main Memory
(Off-Chip DRAM)
ラインサイズ
ミス・ペナルティ
(Off-Chip DRAM)
ラインサイズ
ミス・ペナルティ
つまり...
CPU
Cache
Main Memory
CPU
Cache
Main Memory
ラインサイズ vs. ミス率
メモリ参照の空間的局所性が高いプログラム
プリフェッチ効果によるヒット率の向上
メモリ参照の空間的局所性が低いプログラム
頻繁なコンフリクト発生によるヒット率の低下
104.hydro2d
072.sc
052.alvinn
16 32 64 128 256
Line Size [byte]
14.0 099.go
12.0 134.perl
10.0
8.0
6.0
4.0
2.0
0.0
Miss Rate
(%)
Miss Rate
(%)
14.0
12.0
10.0
8.0
6.0
4.0
2.0
0.0
16 32 64 128 256
Line Size [byte]
つまり...
ーラインサイズが小さい場合ー
スーパスカラにつ
いて調べたい!
MISS!
スーパスカラ・プロセッサ
OS
回路設計
マイクロ・コンピュータ
並列処理ついて
調べたい!
MISS!
スーパスカラにつ
いて調べたい!
HIT!
スーパスカラ・プロセッサ
並列処理マシン
スーパスカラ・プロセッサ
並列処理マシン
レイアウト技術
スーパスカラ・プロセッサ
OS
マイクロ・コンピュータ
Cache
Main Memory
つまり...
ーラインサイズが大きく、空間的局所性が高い場合ー
スーパスカラにつ
いて調べたい!
MISS!
スーパスカラ・プロセッサ
並列処理マシン
回路設計
マイクロ・コンピュータ
並列処理ついて
調べたい!
HIT!
スーパスカラにつ
いて調べたい!
HIT!
スーパスカラ・プロセッサ
並列処理マシン
スーパスカラ・プロセッサ
並列処理マシン
レイアウト技術
スーパスカラ・プロセッサ
OS
並列処理マシン
Cache
Main Memory
つまり...
ーラインサイズが大きく、空間的局所性が低い場合ー
スーパスカラにつ
いて調べたい!
MISS!
スーパスカラ・プロセッサ
並列処理マシン
回路設計
マイクロ・コンピュータ
OSについて調べ
たい!
MISS!
スーパスカラにつ
いて調べたい!
MISS!
レイアウト技術
OS
スーパスカラ・プロセッサ
並列処理マシン
レイアウト技術
スーパスカラ・プロセッサ
OS
並列処理マシン
Cache
Main Memory
高メモリバンド巾活用の問題点
DRAM/ロジック混載LSIの特徴である高メモリバンド
巾を活用するにはラインサイズを拡大する必要あり!
低い空間的局所性
AMAT = TCache + CMR * 2 * TMainMemory
AMAE = ECache + CMR * 2 * EMainMemory
不必要なデータ・リプレイス
によるヒット率の低下
従来の解決方法
セット・アソシアティブ方式の採用により
コンフリクト・ミスを削減
AMAT = TCache + CMR * 2 * TMainMemory
AMAE = ECache + CMR * 2 * EMainMemory
動的可変ラインサイズ・キャッシュ
ーコンセプト-
低い局所性
高い局所性
サブアレイ
D-VLS
Cache
Main
Memory
A
E
B
C
最小ライン
D
A
B
C
D
中間ライン
A
B
C
D
最大ライン
実行中に空間的局所性の度合いを予測し、
ラインサイズを動的に変更
つまり...
空間的局所性の度合いが低い場合
CPU
Cache
Main Memory
空間的局所性の度合いが高い場合
CPU
Cache
Main Memory
動的可変ラインサイズ・キャッシュ
ー狙い-
動的にラインサイズを変更し、
無駄なデータリプレイスメントを回避
AMAT = TCache + CMR * 2 * TMainMemory
AMAE = ECache + CMR * 2 * EMainMemory
動的可変ラインサイズ・キャッシュ
ー用語の定義-
Ref. Y
Ref. C
Ref. B
参照セクタ
現在のメモリ参照
参照サブライン
Cache
Y
B
C
D
メモリ
セクタ
ライン
A
B
C
1. 参照サブラインを除く参照セ
クタ内のサブライン
Y, C and D
2. 参照サブラインと同一メモリセ
クタに属するサブライン.
C and D
セクタ
サブライン
隣接サブライン
D
Y
Main Memory
3. キャッシュ滞在中、少なくとも
1回は参照されたサブライン
C
動的可変ラインサイズ・キャッシュ
ー内部構成-
ダイレクト・マップDVLSキャッシュ
(ラインサイズは32バイト、64バイト、128バイトで可変)
Tag
Index SA Offset
Load/Store Data
Reference Flag
Tag
Line
Line-Size
Specifier
32B
Line-Size
Determiner
MUX
Drive
SA:SubArray
32B
32B
Main Memory
32B
動的可変ラインサイズ・キャッシュ
ーラインサイズ決定アルゴリズム-
Line-Size
Specifier
Other Patterns
中間ライン
参照セクタ
参照サブライン、又は、
隣接サブライン
Initial
最小ライン
Other Patterns
最大ライン
Other Patterns
評価
Normalized Cache Miss Rates
to the Result of Best Fixed-Line-Size
ーキャッシュ・ミス率 (1/2)ー
2
1.5
FIX32
FIX64
FIX128
DVLS128-32
2.9
1
0.5
099.go
126.gcc
132.ijpeg
147.vortex
102.swim
104.hydro2d
124.m88ksim
130.li
134.perl
101.tomcatv 103.su2cor
評価
Normalized Cache Miss Rates
to 16KB FIX128
ーキャッシュ・ミス率 (2/2)ー
1
32KB FIX128
16KB DVLS128-32
1.04
0.8
0.6
0.4
0.2
0
099.go
126.gcc
132.ijpeg 147.vortex 102.swim 104.hydro2d
124.m88ksim
130.li
134.perl 101.tomcatv 103.su2cor MIX-IntFp
評価
Average Cache Line-Size [byte]
ー平均ライン・サイズー
128
16KB DVLS128-32
96
64
32
0
099.go
126.gcc
132.ijpeg 147.vortex 102.swim 104.hydro2d
124.m88ksim
130.li
134.perl 101.tomcatv 103.su2cor MIX-IntFp
評価
1
32KB FIX128
16KB DVLS128-32
0.8
to 16KB FIX128
Normalized CMR*2*EMainMemory
ー主記憶消費エネルギー
0.6
0.4
0.2
0
099.go
126.gcc
132.ijpeg 147.vortex 102.swim 104.hydro2d
124.m88ksim
130.li
134.perl 101.tomcatv 103.su2cor MIX-IntFp
おわりに (1/2)
動的可変ラインサイズ・キャッシュの提案
1. アクセス・パタンを参照フラグに記録
2. 空間的局所性の度合いを予測しラインサイズを変更
3. 無駄なデータ・リプレイスメントを回避し、高性能化と
低消費エネルギ化を達成
AMAT = TCache + CMR * 2 * TMainMemory
20%
37%
AMAE = ECache + CMR * 2 * EMainMemory
34%
従来型DMキャッシュと比較
(MIX-IntFp)
37%
52%
CMR = 0.06
TMainMemory = 10*TCache
EMainMemory = 10*ECache
おわりに (2/2)
他の従来型キャッシュ(セット・アソシアティブ方式)と
の比較
静的可変ラインサイズ・キャッシュに関する評価
ハードウェア・コストに関する評価
キャッシュ・サイズが与える影響を調査
オンチップDRAMの性能/消費エネルギ特性が与え
る影響を調査
ラインサイズ指定フラグ・テーブルのサイズが与える
影響を調査

第6章
まとめと今後の課題
本論文では (1/2)
動的適応可能な高性能/低消費電力
キャッシュ・アーキテクチャ
• ウェイ予測セット・アソシアティブ・キャッシュ
• ヒストリ・ベース・タグ比較キャッシュ
• 動的可変ラインサイズ・キャッシュ
1. メモリ参照パタン(ヒストリ)を採集
2. キャッシュ内部処理結果を予測
3. 必要のない処理を削除
本論文では (2/2)
AMAT = TCache + CMR * 2 * TMainMemory
AMAE = ECache + CMR * 2 * EMainMemory
WP
HTC
DVLS
削減項目
削除対象となる処理
ECache
ECache
無駄なウェイ・アクセス
CMR
無駄なデータ・リプレイス
EMainMemory
無駄なタグ比較
提案キャッシュの組み合わせ (1/2)
Instruction
DM
SA
Data
DM
SA
WP
HTC
DVLS
WP: ウェイ予測セット・アソシアティブ・キャッシュ
HTC: ヒストリ・ベース・タグ比較キャッシュ
DVLS: 動的可変ラインサイズ・キャッシュ
DM: ダイレクト・マップ方式
SA: セット・アソシアティブ方式
提案キャッシュの組み合わせ (2/2)
Cache
I- or D-Cache
Time
Energy
CMR
MainMemory
Time
Energy
WP+DVLS
HTC+DVLS
I-Cache
WP: ウェイ予測セット・アソシアティブ・キャッシュ
HTC: ヒストリ・ベース・タグ比較キャッシュ
DVLS: 動的可変ラインサイズ・キャッシュ
今後の研究課題
大規模化、複雑化するオンチップ・キャッシュ
•
•
•
•
大容量化と高速化の両立 (高性能)
メモリセル・リーク電流 (低消費電力)
欠陥救済 (低コスト、高信頼性)
設計検証(低設計コスト、高信頼性)
最適化アプローチ
HWによる動的最適化
SWによる動的最適化
本研究
SWによる静的最適化
Buck Up Slides
(Introduction)
プロセッサーメモリ間の性能差
CPU
60%/yr.
100
Performance Gap
10
1
DRAM
7%/yr.
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
Performance
1000
Year
D. Patterson et al.,”A Case for Intelligent RAM,”
IEEE Micro, vol.17, no.2, March/April 1997.
提案キャッシュ・アーキテクチャ (2/4)
Cache
Time
Energy
CMR
MainMemory
Time
Energy
WP
HTC
DVLS
WP: ウェイ予測セット・アソシアティブ・キャッシュ
HTC: ヒストリ・ベース・タグ比較キャッシュ
DVLS: 動的可変ラインサイズ・キャッシュ
評価
ーWPキャッシュ vs. DVLSキャッシュー
FIX128
FIX128
W2
FIX128 FIX128
W4
Double
P128
W4
WP128
W4
DVLS
128-32
Cache Size
16KB
16KB
16KB
32KB
16KB
16KB
16KB
#of Ways
1
2
4
1
4
4
Line Size
128B
128B
128B
128B
128B
128B
1
32,64,
128B
TCache
1.000
1.470
1.883
1.195
3.766
1.883
1.883
3.766
1.000
0.392 0.370
0.029 1.480
10.000 * AverageLineSize/128B
1.090
10.000
TMainMemory
ECache
EMainMemory
1.000
1.160
1.480
TCache [Tunit] is based on CACTI2
ECache [Eunit] is based on Kamble’s paper
1.838
P128W4
WP128W4
Cache Hit
Cache Miss
Prediction Hit
Others
評価
Normalized AMAT to FIX128
ー平均メモリアクセス時間ー
2
FIX128W2
P128W4
FIX128W4
WP128W4
FIX128Double DVLS128-32
2.4
2.5
2.7
2.0
1.5
1
0.5
0
099.go 124.m88ksim 126.gcc
130.li
132.ijpeg
Integer Programs
134.perl 147.vortex
評価
ー平均メモリアクセス時間ー
FIX128W2
P128W4
FIX128W4
WP128W4
FIX128Double DVLS128-32
Normalized AMAT to FIX128
2
2.1
2.7
1.5
1
0.5
0
052.alvinn
101.tomcatv
103.su2cor
Floating-Point Programs
104.hydro2d
評価
Normalized AMAE to FIX128
ー平均メモリアクセス消費エネルギー
1.5
FIX128W2
P128W4
FIX128W4
WP128W4
FIX128Double DVLS128-32
2.7
1
0.5
0
099.go 124.m88ksim 126.gcc
130.li
132.ijpeg
Integer Programs
134.perl 147.vortex
評価
ー平均メモリアクセス消費エネルギー
Normalized AMAE to FIX128
FIX128W2
P128W4
FIX128W4
WP128W4
FIX128Double DVLS128-32
1.5
1
0.5
0
052.alvinn
101.tomcatv
103.su2cor
Floating-Point Programs
104.hydro2d
評価
ーED積 (AMAT * AMAE)-
Normalized AMAE to FIX128
FIX128W2
P128W4
FIX128W4
WP128W4
FIX128Double DVLS128-32
1.5
1.5
1
0.5
0
099.go 124.m88ksim 126.gcc
130.li
132.ijpeg
Integer Programs
134.perl 147.vortex
評価
ーED積 (AMAT * AMAE)-
Normalized AMAE to FIX128
FIX128W2
P128W4
FIX128W4
WP128W4
FIX128Double DVLS128-32
1.5 1.6
1.6
1
0.5
0
052.alvinn
101.tomcatv
103.su2cor
Floating-Point Programs
104.hydro2d
評価
ー平均メモリアクセス時間ー
評価
ー平均メモリアクセス消費エネルギー
Buck Up Slides
(Way-Predicting Set-Associative Cache)
WPキャッシュ -基本概念ー
キャッシュ・ヒットの場合、
唯一のウェイのみが参照データを有する
つまり...
残りのウェイ・アクセスは無意味!
ウェイ予測型キャッシュ
キャッシュ・アクセス前に、参照データが存在するウェイを予測
評価 ー概要ー
評価対象
従来型
段階型
ウェイ予測型
評価項目
•キャッシュ・サイズ → 8KB I-Cache, 16KB D-Cache
•ライン・サイズ → 16B
•連想度 → 4
キャッシュ・ミス率は同一
消費エネルギ : キャッシュ・アクセス消費エネルギ (ECache)
性能 :キャッシュ・アクセス当たりの平均所要クロック数(TCache)
1個のタグ読み出しに
要するエネルギー
1個のライン読み出しで
消費するエネルギー
ECache = Ntag x Etag + Ndata x Edata
1回のアクセスで
読み出されるタグ数
1回のアクセスで
読み出されるライン数
評価
ー実験環境ー
Object
Code
Benchmark
Program
Compile
(GNU CC)
QPT
Object
Code
SPECint95
Address
Trace
RUN
Ultra
SPARC
Cache
Simulator
Benchmarks
099.go, 124.m88ksim, 126.gcc, 129.compress,
130.li, 132.ijpeg, 134.perl, 147.vortex
SPECfp95
101.tomcatv, 102.swim, 103.su2cor, 104.hydro2d
実験的評価
ー予測ヒット率ー
I-Cache
半分以上のベンチマーク
残り全てのベンチマーク
92.2%
予測ヒット率
D-Cache
90%以上
半分以上のベンチマーク
85%以上
102.swimを除く
残り全てのベンチマーク
87.4%
予測ヒット率
予測ミス率
キャッシュ・ミス率
Average of all benchmarks
ほぼ全てのベンチマークにおいて、高予測ヒット率を達成!
評価
ーキャッシュ消費エネルギ (1/2)ー
Normalized Ecache
Normalized Tcache
Instruction Cache
2
1.5
1
0.5
0
0.4
0.3
0.2
0.1
0
099.go
126.gcc
130.li
134.perl
101.tomcatv
103.su2cor
124.m88ksim 129.compress 132.ijpeg
102.swim
103.su2cor 104.hydro2d
評価
ーキャッシュ消費エネルギ ー
Normalized Ecache
Normalized Tcache
Data Cache
2
1.5
1
0.5
0
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
099.go
126.gcc
130.li
134.perl
101.tomcatv
103.su2cor
124.m88ksim 129.compress 132.ijpeg
102.swim
103.su2cor 104.hydro2d
評価 ー実験的評価 (6/6)ー
200
199.4%
I-Cache
104.1%
100
0
30.3%
28.1%
Ecache
Tcache
Normalized Results (%)
Normalized Results (%)
Average of all benchmarks
200
100
0
従来型
段階型
ウェイ予測型
195.8%
D-Cache
113.0%
29.4%
35.2%
Ecache
Tcache
評価 -定量的評価 (消費エネルギー・オーバヘッド) ウェイ予測回路の動作
単純な組み合わせ回路で実現でき、消費エネルギーは極めて小さい
ウェイ予測テーブルへのアクセス
•デコード → アドレス・デコーダによるオーバヘッドは無視できるほど小さい
•書込み → 予測ヒットの場合は書込みが発生しない
•読み出し → アクセス毎にウェイ予測フラグの読み出しが発生
ウェイ予測テーブルから読み出される信号線の遷移確立を測定
I-Cacheで平均0.4ビット
D-Cacheで平均0.8ビット
消費エネルギー・オーバヘッドは無視できるほど小さい
評価 -定量的評価 (性能オーバヘッド) ウェイ予測フラグを読み出すための遅延時間
参照アドレス生成 + ウェイ予測フラグ読み出し
命令キャッシュ → 通常、PCは専用インクリメンタを搭載しており、
参照アドレスが高速に計算される。
データキャッシュ → ALUによる参照アドレス計算と
ウェイ予測フラグ読み出しの逐次処理
性能オーバヘッドは回避可能
Buck Up Slides
(History-based Tag-Comparison Cache)
低消費電力キャッシュ
- Esram_tag/dataの削減 メモリ階層(L0キャッシュ)の追加
Processor
L0 Cache
•フィルタ・キャッシュ
•S-キャッシュ
•ブロック・バッファリング
L1 Cache
キャッシュ・モジュールの分割
マルチプル・アクセス・キャッシュ
Cache
Sequential Way-Access
•MRUキャッシュ
•ハッシュ・リハッシュ・キャッシュ
way0
way1
way2
way3
•MDMキャッシュ
低消費電力キャッシュ
- Esram_dataの削減 水平方向へのメモリ分割
Tag
Line
•キャッシュ・サブバンキング
シーケンシャル・アクセス
•シーケンシャル・アクセス・キャッシュ
•パイプライン・キャッシュ
Tag
Line
Miss!
Replace
Hit!
低消費電力キャッシュ
- Esram_tagの削減 条件付きタグ比較 (タグ比較回数の削減)
•インターライン・タグ比較
連続して実行される命令iとjの関係
イントラライン・シーケンシャル・フロー
連続アドレス、かつ、同一キャッシュ・ライン
イントラライン・ノンシーケンシャル・フロー
非連続アドレス、かつ、同一キャッシュ・ライン
インターライン・シーケンシャル・フロー
連続アドレス、かつ、異なるキャッシュ・ライン
インターライン・ノンシーケンシャル・フロー
非連続アドレス、かつ、異なるキャッシュ・ライン
インターライン・フロー時のみ命令jのタグ比較を実行
低消費電力キャッシュ
- Esram_tag削減の重要性 32-bit CPU
CS = 32 KB
L S = 32 B
100%
100%
Breakdown of Energy
64-bit CPU
90%
90%
80%
80%
70%
70%
60%
60%
50%
50%
40%
40%
30%
30%
20%
20%
10%
10%
0%
CS = 64 KB
LS = 64 B
8(1)
4(2)
2(4)
1(8)
0%
8(1)
4(2)
2(4)
# of words in a Subbank (Total # of Subbanks)
Esram_others
Esram_data_bit
Esram_tag_bit
1(8)
CS: Cache Size
LS: Line Size
This calculation is based on Kamble, et. Al., “Analytical energy
Dissipation Models for Low Power Caches”, ISLPED’97
ヒストリ・ベース・タグ比較
- 基本動作 (1/2) Start
BTBアクセス時
の動作
Cache hit?
N
Y
N
0
0
all RCTs
all RCNs
BTB hit?
Y
Y
RAS?
0 TCO
N
Taken Prediction?
Y
N
RCT TCO
RCN TCO
1 RCT
1 RCN
Go to start
ヒストリ・ベース・タグ比較
- 基本動作 (2/2) Start
PC復元時
の動作
BTB update?
Y
Replacement?
N
Y
Wrong
Prediction?
Y
TCO
RCT
0
0
all RCTs
all RCNs
N
TCO
RCN
0 TCO
RCN TCO
RCT TCO
1 RCN
1 RCT
0 RCN
1 RCT
Go to start
N
評価
- 実験環境 8 integer and 5 FP programs
from the SPEC95
SimpleScalar
Object Code
Address Traces
Branch
Prediction Table
Cache
Simulator
Branch
Target Buffer
Functional Execution
SimpleScalar Processor
Report
Total # of
tag-comparison
評価
ー評価対象 (1/2)ー
•C-TC (Conventional Tag-Comparison:Base)
→命令フェッチ毎にタグ比較
•IL-TC (Interline Tag-Comparison)
→インターライン・フロー時のみタグ比較
•H-TC (History-based Tag-Comparison)
→TCOフラグに従ってタグ比較
•H-TCideal (History-based Tag-Comparison)
→ハードウェア制約を無視した理想的なH-TC
→パーフェクト命令キャッシュ、かつ、フルアソシアティブBTB
•HIL-TC (History-based Interline Tag-Comparison)
→IL-TCとH-TCの組み合わせ
→TCOフラグが0、かつ、インターライン・フロー時のみタグ比較
0.6
0.5
0.4
141.apsi
0.7
125.turb3d
0.8
110.applu
107.mgrid
102.swim
147.vortex
134.perl
132.ijpeg
130.li
126.gcc
129.compress
124.m88ksim
099.go
Normalized Total Count of
Tag-Comparisons
評価
- 実験結果 (1/2) -
0.9
IL-TC
H-TC
H-TCideal
HIL-TC
0.3
0.2
0.1
0
評価
- 評価対象 (1/2) •C-TC (Conventional Tag-Comparison:Base)
→命令フェッチ毎にタグ比較
•IL-TC (Interline Tag-Comparison)
→インターライン・フロー時のみタグ比較
•H-TC (History-based Tag-Comparison)
→TCOフラグに従ってタグ比較
•HIL-TC (History-based Interline Tag-Comparison)
→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の組み合わせ)
•全てのプログラムにおいて高い削減率
低消費電力キャッシュ
- インターライン・タグ比較方式 連続して実行される命令 i と j
イントラライン・フロー
同一ライン
インターライン・フロー
異なるライン
インターライン・フロー時のみ
命令 j のタグ比較を実行
インター・ライン イントラ・ライン
This Work
Our Work
0.6
0.5
141.apsi
0.7
125.turb3d
0.8
110.applu
107.mgrid
102.swim
147.vortex
134.perl
132.ijpeg
130.li
126.gcc
129.compress
124.m88ksim
099.go
Normalized Total Count of
Tag-Comparisons
評価
- 実験結果 (1/2) -
0.9
IL-TC
H-TC
HIL-TC
0.4
0.3
0.2
0.1
0
評価
- HW制約による影響 (1/4) ヒストリ・ベース・タグ比較
•BTBリプレイス発生時に全ての実行足跡を消去
•キャッシュ・ミス発生時に全ての実行足跡を消去
BTB連想度が与える影響は?
キャッシュ・サイズが与える影響は?
Benchmark programs
132.ijpeg:高い削減率
099.go, 126.gcc, 147.vortex:低い削減率
評価
- HW制約による影響 (2/4) BTB連想度が与える影響(BTBサイズは一定)
Normalized Total Counts of
Tag-Comparison
0.9
0.8
2way
8way
32way
128way
512way
2048way
H-TCIdeal
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
132.ijpeg
099.go
126.gcc
147.vortex
評価
- HW制約による影響 (3/4) 命令キャッシュ・サイズが与える影響
Normalized Total Counts of
Tag-Comparison
0.9
0.8
4 KB
8 KB
16 KB
32 KB
64 KB
512 KB
Perfect
H-TCideal
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
132.ijpeg
099.go
126.gcc
147.vortex
評価
- HW制約による影響 (4/4) ヒストリ・ベース・タグ比較の効果は
命令キャッシュ・サイズに大きく依存
トランジスタ集積度の向上に伴い
キャッシュ・サイズは増加傾向
今後のCPUにおいて
ヒストリ・ベース・タグ比較方式は有効
評価
- エネルギー・オーバヘッド (1/4) ヒストリ・ベース・タグ比較方式はBTB拡張を伴う
→実行足跡(RCTおよびRCNフラグ)の追加
BTBアクセスにおける
消費エネルギー・オーバヘッドの影響は?
•実行足跡の読出し/書込み
•実行足跡の一括消去
評価
- エネルギー・オーバヘッド (2/4) 実行足跡の読出し/書込み
実行足跡の読出し/書込みはBTBヒット時のみ発生
分岐命令出現率が20%、
BTBヒット率が100%と仮定すると...
5命令実行に1度の実行足跡アクセス
(1ビットの読出し、および、書込み)
従来方式では、1命令実行に1回のタグ比較
(タグメモリ・アクセスおよび比較)
141.apsi
125.turb3d
110.applu
107.mgrid
102.swim
147.vortex
134.perl
132.ijpeg
130.li
126.gcc
129.compress
124.m88ksim
10
9
8
7
6
5
4
3
2
1
0
0.1
0.09
0.08
0.07
0.06
0.05
0.04
0.03
0.02
0.01
0.00
Ave. # of Erased Footprints
per I-fetch [bit]
099.go
Ave. # of Erased Footprints
per Erase-Process [bit]
評価
- エネルギー・オーバヘッド (3/4) 実行足跡の一括消去
評価
- HW制約による影響 (4/4) 従来のタグ比較方式
→命令フェッチ毎にタグ比較(タグメモリ・アクセスと比較)
ヒストリ・ベース・タグ比較方式
•BTBにおける実行足跡の読出し/書込み
→命令フェッチ当たり0.2ビットの読出し/書込み
•BTBにおける実行足跡の一括消去
→命令フェッチ当たり0.1ビットの消去
BTB拡張に伴うエネルギー・オーバヘッドは
無視できる程度に小さい
Buck Up Slides
(Variable Line-Size Cache)
DRAM/ロジック混載LSI
CPU-主記憶間のI/Oピン削除による恩恵
•高オンチップ・メモリバンド巾の活用による高性能化
•外部入出力ピン駆動回数の削減による低消費電力化
高性能化と低消費電力化を両立できる夢のデバイス!?
どのようなアプリケーションに対しても有効なのか?
もし有効でないなら、
様々なアプリケーションに対応するには?
評価
ー実験環境-
Object
Code
Benchmark
Program
Compile
(GNU CC)
RUN
Address
Trace
QPT
Object
Code
Cache
Simulator
Report
(Miss Rate)
Report
(Replace Count)
ベンチマーク・プログラム
SPEC92, SPEC95
9個の整数プログラム
5個の浮動小数点プログラム
Miss Rate for Benchmarks
- Integer Programs -
Miss Rate for Benchmarks
- FP Programs -
Miss Rate for Benchmark Sets
Hardware Overhead
Cache
Model
SRAM [bit] Logic [Tr]
Total [Tr]
FIX32
140,288
8,354
78,498
FIX64
FIX128
D-VLS
128-32LSS1
D-VLS
128-32LSS8
135,680
11,310
79,150
133,376
17,988
84,676
140,800
33,172
103,572
140,800
21,208
91,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
Breakdown of Miss Rate
評価概要
ー 比較対照 -
以下のキャッシュを搭載したオンチップ・メモリパス
Fix128:16KB従来型ダイレクトマップ(ラインサイズは
128B)
Fix128W4:16KB従来型4ウェイ・セットアソシアティブ
(ラインサイズは128B)
Fix128double:32KB従来型ダイレクトマップ(ラインサ
イズは128B)
D-VLS128-32:16KBダイレクトマップ動的可変ラインサ
イズ(ラインサイズは32B、64B、および、128Bで可変)
実験結果
ー ミス率 -
Fix128のミス率で正規化(全プログラム平均)
1.0
1.00
0.8
0.76
0.6
0.62
0.4
0.42
0.2
0.0
D-VLS128-32 vs. Fix128
Fix128
Fix128W4
Fix128double
D-VLS128-32
ほとんどのプログラムにおいてヒット率向上
D-VLS128-32 vs. Fix128W4
ほとんどのプログラムにおいて高いミス率
D-VLS128-32 vs. Fix128double
5~6個のプログラムにおいて、同程度もしくはそれ以下のミス率
実験結果
ー リプレイス・カウント -
D-VLS128-32でのリプレイス・カウント
Line Size
026.compress
052.alvinn
32 bytes
64 bytes
128 bytes
Average
Line-Size
3,164,502
243,979
14,498
11,546,415
1,465,880
18,806,730
34.68 B
90.22 B
Ave. Line-Size
リプレイス当たりの平均ラインサイズ(全プログラム平
均)
Fix128
128B 128B 128B
54.5B
Fix128W4
Fix128double
D-VLS128-32
性能評価
ー 性能モデル -
平均メモリアクセス時間(AMAT)
メモリシステムが、CPUからのメモリ参照をサービスする際の平均遅延時間
AMAT = ヒット時間 + ミス率×2×ミス・ペナルティ
ヒット時間 [ns]
(= 60 ns)
8.426
3.510
4.115 3.510
(CACTIモデルを使用)
Fix128
Fix128W4
Fix128double
D-VLS128-32
性能評価
ー 平均メモリアクセス時間 -
Fix128のAMATで正規化(全プログラム平均)
1.5
Fix128
Fix128W4
1.0
1.00 1.13
0.82 0.83
Fix128double
0.5
D-VLS128-32
0.0
Fix128W4 vs. Fix128
ヒット時間オーバヘッドに伴い、約13%の性能低下
Fix128double vs. Fix128
ヒット時間オーバヘッドは少ないため、約20%の性能向上
D-VLS128-32 vs. Fix128
ヒット時間オーバヘッドはないため、約20%の性能向上
消費エネルギー評価
ー 消費エネルギー・モデル -
主記憶アクセスにおける消費エネルギー(E)
ラインサイズnでの
総リプレイス回数
32バイトDRAMサブアレイに対する2回のア
クセスで消費されるエネルギー
E = ∑RepCount(n)×Esubarray×n/32bytes
N
ラインサイズnにおける、リプレイス当たりのオンチッ
プDRAM消費エネルギー
N = {n|n = 32bytes, 64bytes, 128bytes}
ただし、従来型キャッシュにおいて、
RepCount(32bytes)およびRepCount(64bytes)は0
消費エネルギー評価
ー 消費エネルギー -
Fix128のEで正規化(全プログラム平均)
Fix128
1.00
Fix128W4
0.72
Fix128double
0.42
0.32
D-VLS128-32
1.0
0.8
0.6
0.4
0.2
0.0
Fix128W4 vs. Fix128
ヒット率向上により約60%の低消費エネルギー化
D-VLS128-32 vs. Fix128
ヒット向上と選択的活性化により約70%の低消費エネルギー化
性能 / 消費エネルギー評価
ー ED積(AMAT×E) -
Fix128のED積で正規化(全プログラム平均)
1.0
Fix128
1.00
0.8
Fix128W4
0.6
Fix128double
0.51 0.53
0.4
0.28
D-VLS128-32
0.2
0.0
Fix128W4, Fix128double vs. Fix128
高性能化(×/〇)
低消費エネルギー化(○/×)
D-VLS128-32 vs. Fix128
高性能化(〇)
低消費エネルギー化(○)
72%のED積削減
プロセッサーメモリ間の性能差
(動作周波数)
Frequency (MHz)
1000
100
CPU: 22% per year
Performance Gap
DRAM: 7% per year
10
1
1975 1980 1985 1990 1995 2000
Year
動的可変ラインサイズ・キャッシュ
ー効果ー
TMemory = CacheHitTime+ MissRate×MissPenalty
EMemory = ECache + MissRate×EMain
ラインサイズの縮小によりコンフリクト・ミスの発生を回避
→アクセス時間オーバヘッドを伴う事無くヒット率を向上
ラインサイズに対応したオンチップDRAM選択的アクセス
→主記憶アクセスにおける消費エネルギーの削減
動的可変ラインサイズ・キャッシュ
ー評価ー
1.5
1.0
1.00 1.07
0.5
0.0
1.0
0.8
0.6
0.4
0.2
0.0
0.81 0.80
Fix128
Fix128W4
Fix128double
D-VLS128-32
平均メモリアクセス時間 (AMAT)
1.00
0.58
0.32
0.29
Fix128
Fix128W4
Fix128double
D-VLS128-32
主記憶アクセス消費エネルギー (CMR×EMain)
Performance Evaluations
-Average memory access time-
13
Energy Evaluations
-Average memory access energy-
14
Total Evaluations
-Energy-Delay Product-
15