キャッシュ・サイズは? - System LSI Lab
Download
Report
Transcript キャッシュ・サイズは? - System LSI Lab
キャッシュ・メモリの
高性能化と低消費電力化
福岡大学 工学部 電子情報工学科 助手
井上 弘士
発表手順
1. キャッシュのいろは
2. 高性能化技術
動的可変ラインキャッシュ
3. 低消費電力化技術
ウェイ予測キャッシュ(とその後)
タグ比較省略キャッシュ(とその後)
4. まとめと今後の課題
プロセッサーメモリ間性能差の隠蔽
オンチップ・キャッシュの搭載
演算処理
データの記憶
データの記憶
CPU
+
DRAM
Cache
Memory
メモリ参照の時間的/空間的局所性を活用
キャッシュ・メモリとは?
CPU
CPU
Main Memory
Cache
Main Memory
メモリ参照の局所性
時間的局所性:メモリ上のある項目が参照されると、間も
なくそれが再び参照される確率が高い、という性質
空間的局所性:メモリ上のある項目が参照されると、その
近くの項目も間もなく参照される確率が高い、という性質
ヘネシー&パターソン コンピュータ・アーキテクチャ
マイクロ・コンピュータ
田丸・安浦 著
スーパスカラ・プロセッサ
村上 監訳
SpecCによるCPU開発
冨山宏之 著
CPUについて
調べたい!
どのくらい研究されてきたのか?
% of ISCA papers dealing principally with caches
Largest number (14)
99
19
97
19
95
19
93
19
91
19
89
19
87
19
85
19
83
19
19
81
35
30
25
20
1st session on caches
15
10
5
0
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
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)
高性能化だけで十分なのか?
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
マイクロプロセッサの消費電力
(汎用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
発表手順
1. キャッシュのいろは
2. 高性能化技術
動的可変ラインキャッシュ
3. 低消費電力化技術
ウェイ予測キャッシュ(とその後)
タグ比較省略キャッシュ(とその後)
4. まとめと今後の課題
キャッシュ・メモリの性能
平均メモリ・アクセス時間(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
連想度(ウェイ数)とヒット時間
ダイレクト・マップ・ < 4ウェイ・セット・アソシアティブ・
キャッシュのヒット時間
キャッシュのヒット時間
Address
Address
31 …..….. 12 11 …. 2 1 0
20
Tag
31 ………………10 9 …….... 2 1 0
10
Tag
Index
Index
Index V Tag Data
Index Valid Tag
8
22
Data
0
1
2
V Tag Data
V Tag Data
V Tag Data
0
1
2
253
254
255
22
1021
1022
1023
20
32
=
4-1 MUX
Hit
Data
クリティカル・パス
Hit
Data
32
ブロックサイズとヒット時間
Direct-map
傾向:ブロックサイ
ズの増加と伴にヒッ
ト時間が短くなる
理由:デコーダ遅延
の低下
Set-Associative
Direct-map
4-way set-associative
傾向:ブロックサイ
ズが32Bを超えると
ヒット時間が増加
理由:出力ドライバ
遅延の増加(負荷の
増大)
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
12%
2-way
Conflict
Miss
傾向:連想度を高くする
とミス率が低下する。
理由:競合性ミスを削減
できるため。
10%
4-way
ミス率 8%
8-way
6%
Capacity Miss
4%
2%
傾向:キャッシュ・サイズ
を増加するとミス率が低
下する。
理由:容量性ミスを削減
できるため。
128
キャッシュ・サイズ (KB)
64
32
16
8
4
2
1
0%
Miss Rate (%)
ブロック・サイズとミス率
14.0
12.0
10.0
8.0
6.0
4.0
2.0
0.0
16KB D-cache
Direct-map
104.hydro2d
072.sc
052.alvinn
16 32 64 128 256
Block Size [byte]
一度に多くの本を机上に
持ってくるには、机上にある
多くの本を本棚に返さなけ
ればならない!
(競合性ミス)
傾向:ある程度までブロック・サイズを拡大するとミス率は低下
する。しかしながら、極端なブロック・サイズの拡大はミス率の
増加を招く。
理由:ブロック・サイズの拡大によりプリフェッチ効果によりヒッ
ト率は向上するが、コンフリクト・ミスが増加する。
キャッシュ・メモリと高性能化
ートレード・オフー
AMAT=HitTime + (MissRate×MissPenalty)
キャッシュ・サイズ
は?
ブロック・サイズは?
連想度は?
ヒット時間低減
ミス率削減
小さく!
大きく!
??
(ある程度)
大きく!
小さく!
大きく!
ミス・ペナルティ低減
キャッシュ・メモリの高性能化
AMAT=HitTime + (MissRate×MissPenalty)
ヒット時間の低減 ミス率の削減
ヒット時間は,
- キャッシュ・サイズ
- ブロック・サイズ
- 連想度
等で決まる
ミス率は,
- キャッシュ・サイズ
- ブロック・サイズ
- 連想度
等で決まる
ミス・ペナルティの低減
ミス・ペナルティは,
- 主記憶(DRAM)のアクセス
時間
- キャッシュ-主記憶間バンド
巾
- ブロック・サイズ
等で決まる
ブロック・サイズとミス・ペナルティ
MissPenalty
MissPenalty DramAccessTime +
TransferBlockSize
CacheDramBandwidth
転送
時間
アクセス時間
ブロックサイズ
傾向:キャッシュー主記
憶間バンド幅以上にブ
ロックサイズを拡大する
とミス・ペナルティが増大
する。
理由:ブロック転送時間
が増大するため。
キャッシュ・メモリと高性能化
ートレード・オフー
AMAT=HitTime + (MissRate×MissPenalty)
キャッシュ・サイズ
は?
ブロック・サイズは?
連想度は?
ヒット時間低減
ミス率削減
ミス・ペナルティ低減
小さく!
大きく!
-
-
(ある程度)
大きく!
小さく!
小さく!
大きく!
-
:相反する要求(トレードオフが必要)
高性能化技術
-キャッシュ・アクセス時間の短縮ー
セット・アソシアティブ・キャッシュの高ヒット率を維持しつつ、
ダイレクト・マップの高速アクセスを実現したい!
セット・アソシアティブ・キャッシュの高速化技術
投機的ウェイ選択:
MRU cache [Chang87]
部分タグ比較:
Partial address matching [Liu94]
Difference-bit cache [Juan96]
タグの1ビットだけを見て選択す
べきウェイを決定(2wayのみ)
Partial Address
Directory
Main Directory
完全な
タグ
タグの1部
(例えば5b)
Tag from Addr.
検証用 投機ウェイ選択用
高性能化技術
-キャッシュ・ヒット率の向上 (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]
参照アドレス
Index = 00
00
01
10
11
従来型ダイレクト・マップ
(マッピング関数は1つ)
1st
2nd
00
01
10
11
Hash-rehashダイレクト・マップ
(マッピング関数は2つ:
最上位ビットを反転)
高性能化技術
-キャッシュ・ヒット率の向上 (2/6)ー
キャッシュ・スペースの有効利用
(動的適応可能なマッピング関数のサポート):
Adaptive group-associative Cache [Peir98]
00
01
10
11
00
01
10
11
頻繁に参照されない領域 (hole)
頻繁に参照される領域
参照頻度の高いデータがキャッシュから
追い出される時、holeに割り当てる
高性能化技術
-キャッシュ・ヒット率の向上 (3/6)ー
参照頻度の高いデータの追い出しを削減
(キャッシュ・バイパス):
Dynamic exclusion replacement [McFarling92]
Run-time adaptive cache management [Johnson97A]
CPU
CPU
L1 Cache
00
01
L1 Cache
00
01
Main
Memory
00
01
10
11
Main
Memory
00
01
10
11
バイパス
高性能化技術
-キャッシュ・ヒット率の向上 (4/6)ー
メモリ階層の改良(垂直方向)
L1 Cache
Main
Memory
•Victim Cache [Jouppi90]
追い出されるデータを保存
•Annex Cache [John97]
•Pollution-control Cache [Walsh95]
リフィルされるデータを保存
高性能化技術
-キャッシュ・ヒット率の向上 (6/6)ー
ラインサイズの拡大によるプリフェッチ効果
(可変ラインサイズ)
ハードウェア制御: [Johson97B], [Inoue99A], [Vleet99]
ソフトウェア制御:[Veidenbaum99], [Vleet99]
データ圧縮技術の活用
Compression Cache: [Yang2000],
データ再配置
プロファイルに基づくデータの再配置:[Tomiyama97]
高性能化技術
-ミス・ペナルティの削減ー
DRAMアクセス時間の改善
要求バンド幅の削減
バイパス技術の活用
実効バンド幅の向上
DRAMロジック混載LSIの活用:[Murakami97],
[Inoue99A],
[Patterson97]
高性能化技術
-キャッシュの他の利用法ー
キャッシュSRAMをリコンフィギュラブル・デバイスとして使用
[Kim2002]
動的可変ラインサイズ・キャッシュ
アーキテクチャ
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)
ラインサイズ
ミス・ペナルティ
ラインサイズ 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]
Amount of Spatial Locality
at each Cache-Sector
LineSize:128B
動的可変ラインサイズ・キャッシュ
ーコンセプト-
低い局所性
高い局所性
サブアレイ
D-VLS
Cache
Main
Memory
A
E
B
C
最小ライン
D
A
B
C
D
中間ライン
A
B
C
D
最大ライン
実行中に空間的局所性の度合いを予測し、
ラインサイズを動的に変更
動的可変ラインサイズ・キャッシュ
ー内部構成-
ダイレクト・マップ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
動的可変ラインサイズ・キャッシュ
ー評価結果-
F ix1 2 8 の ミ ス 率 で 正 規 化 ( 全 プ ロ グ ラ ム 平 均 )
1 .0
0 .8
0 .6
0 .4
0 .2
0 .0
1 .0 0
0 .6 2
0 .7 6
0 .4 2
F ix 1 2 8
F ix 1 2 8 W 4
F ix 1 2 8 d o u b le
D -V L S 1 2 8 -3 2
F ix 1 2 8 の A M A T で 正 規 化 ( 全 プ ロ グ ラ ム 平 均 )
1 .5
1 .0
0 .5
0 .0
1 .0 0
1 .1 3
0 .8 2 0 .8 3
F ix 1 2 8
F ix 1 2 8 W 4
F ix 1 2 8 d o u b le
D -V L S 1 2 8 -3 2
発表手順
1. キャッシュのいろは
2. 高性能化技術
動的可変ラインキャッシュ
3. 低消費電力化技術
ウェイ予測キャッシュ(とその後)
タグ比較省略キャッシュ(とその後)
4. まとめと今後の課題
キャッシュ・メモリの消費エネルギー
平均メモリ・アクセス・エネルギー(AMAE)
AMAE=HitEnergy + (MissRate×MissEnergy)
– HitEnergy:キャッシュにヒットした場合の消費エネル
ギー
– MissRate:キャッシュのミス率
MissRate=ミス回数/メモリ・アクセス回数
– MissPenalty:キャッシュにミスした際に,主記憶から
所望の命令/データを取得してくるのに要するエネ
ルギー
キャッシュ・メモリの低消費エネル
ギー化
AMAE=HitEnergy + (MissRate×MissEnergy)
ヒットEneの削減 ミス率の削減
ヒットEneは,
- キャッシュ・サイズ
- 連想度
等で決まる
ミス率は,
- キャッシュ・サイズ
- ブロック・サイズ
- 連想度
等で決まる
ミスEneの低減
ミスEneは,
- 主記憶(DRAM)アクセスに
要するエネルギー
- キャッシュ-主記憶間データ
転送に要するエネルギー
等で決まる
キャッシュ・サイズと消費エネルギー
傾向:キャッシュ・
サイズの増加と伴
に消費エネルギー
は大きくなる
理由:ビットライン
やワードラインの
負荷容量が大きく
なるため
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は,
- キャッシュ・サイズ
- 連想度
等で決まる
ミス率は,
- キャッシュ・サイズ
- ブロック・サイズ
- 連想度
等で決まる
ミスEneの低減
ミスEneは,
- 主記憶(DRAM)アクセスに
要するエネルギー
- キャッシュ-主記憶間データ
転送に要するエネルギー
等で決まる
キャッシュ・メモリと低消費エネルギー化
ートレード・オフー
AMAE=HitEnergy + (MissRate×MissEnergy)
キャッシュ・サイズは?
ブロック・サイズは?
連想度は?
ヒット時間低減
ミス率削減
ミス・ペナルティ低減
小さく!
大きく!
--
??
(ある程度)
大きく!
小さく!
小さく!?
大きく!
--
:相反する要求(トレードオフが必要)
低消費エネルギー化技術
-キャッシュ消費エネルギー (1/6)ー
構造的アプローチ
水平方向への分割:
Cache subbanking [Su95],[Kamble97]
Region-based caching [Lee2000]
Specialized Stack Cache [Huang2001]
for Stack
for
Others
従来型
for Global
Subbanking
Region-based
低消費エネルギー化技術
-キャッシュ消費エネルギー (2/6)ー
構造的アプローチ
垂直方向への分割:
Block buffering [Su95],[Kamble97]
Filter cache [Kin97]
L0 Cache [Bellas99]
Loop Cache [Bellas98]
Split Loop Cache [Jayapala2001] (デコード前と後)
CPU
CPU
従来型
本アプローチ
低消費エネルギー化技術
-キャッシュ消費エネルギー (3/6)ー
構造的アプローチ
静的/動的領域への分割:
Decompressor [Ishihara2000]
S-Cache [Panwar95]
Scratch-pad Memory
Replace
Replace
CPU
CPU
No-Replace
従来型
アクセス頻度の
高いデータ
本アプローチ
低消費エネルギー化技術
-キャッシュ消費エネルギー (4/6)ー
動作的アプローチ
キャッシュ・サイズや連想度の動的変更:
Selective cache ways [Albonese99]
Selective ways+sets [Yang2001]
連想度
サイズ
1
n/4
2
4
n/2
n
Selective cache ways
低消費エネルギー化技術
-キャッシュ消費エネルギー (5/6)ー
動作的アプローチ
選択的ウェイ・アクセス:
Phased cache [Hasegawa95]
Way-predicting cache [Inoue99B]
Direct Addressing [Witchel2001]
Way Memoization [Ma2001]
History-Based Tag-Comparison [Inoue:ICCD’02]
SCIMA [Nakamura2000]
従来型4ウェイ
選択型4ウェイ
低消費エネルギー化技術
-キャッシュ消費エネルギー (6/6)ー
動作的アプローチ
タグ比較の省略:
Inter-line tag-comparison [Panwar95]
History-based tag-comparison [Inoue2002]
低消費エネルギー化技術
-リプレイス時の消費エネルギー(1/2) ー
decoder
Main
Memory
encoder
キャッシュ-主記憶間バスでの消費エネルギー削減
バス・コーディング
Bus-invert coding [Stan95]
Address-bus encording [Benini97]
命令スケジューリング
[Tomiyama98]
アドレス・バスの並び替え
クロストークによる影響を最小化[Shin2001]
Cache
バス・コーディング
Main
Memory
Cache
命令スケジューリング
低消費エネルギー化技術
-リプレイス時の消費エネルギー(2/2) ー
主記憶アクセスでの消費エネルギー削減
可変ラインサイズを利用した主記憶のサブバンク化
動的可変ラインサイズ・キャッシュ[Inoue2000B]
サブアレイ
D -V L S
C a ch e
M ain
M em o ry
A
E
B
C
最 小 ラ イン
D
A
B
C
中 間 ラ イン
D
A
B
C
D
最 大 ラ イン
低消費エネルギー化技術
-DRAMリフレッシュ消費エネルギーー
データの生存区間を考慮したリフレッシュ制御
Selective refresh scheme [Ohsawa98]
DRAM動作モード制御
OSによるページ配置管理 [Lebeck2000]
コンパイラやHWによる制御[Delaluz2000],
[Delaulz2001]
ウェイ予測セット・アソシアティブ
キャッシュ・アーキテクチャ
Cache
Time
Energy
10% 70%
CMR
MainMemory
Time
Energy
従来型4ウェイSAキャッシュと比較
ウェイ予測アクセス方式
従来型(N)
ウェイ予測型(WP)
段階型(P)
従来型
段階型
ウェイ予測型
ヒット
ミス
予測ヒット
予測ミス
読み出されるタグ数
M
M
M
1
M
読み出されるライン数
M
1
0
1
M
所要クロック数
1
2
1
1
2
M:連想度
WPキャッシュ
-内部構成ー
Reference-Address
Tag
Index
Offset
2bits
ウェイ予測
フラグ
Access Control
Status
Tag Line
way0
ウェイ予測
回路
MUX
Drive
way1
way2
way3
実験的評価
ー性能と消費エネルギ(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. 参照データを有するウェイを予測
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
適応型ウェイ予測キャッシュ
要求性能に応じて
動作モードを動的に変更
従来型(N)
段階型(P)
高速/高消費電力
低速/低消費電力
ウェイ予測型(WP)
高速/低消費電力
低速/高消費電力
適応型ウェイ予測キャッシュ
分岐予測技術を活用した適応型WPキャッシュの設計
セット毎に2ビット飽和カウンタを実装
ウェイ予測結果に基づきカウンタを更新
カウンタ値に基づき動作モードを選択
正し い予測
3
(第4回IPアワード・チャレンジ賞受賞)
2
正し い予測
間違っ た 予測
0
1
日立0.18プロセス
(VDEC)で設計中
正し い予測
MPEGソフトウェア向け適応型WPキャッシュ
ロード/ストア・クリティカリティに基づく適応型WPキャッシュ
ヒストリ・ベース・タグ比較キャッシュ
アーキテクチャ
Cache
Time
Energy
30%
CMR
MainMemory
Time
Energy
サブバンキング手法を用いた
従来型DMキャッシュと比較
従来型ダイレクト・マップ・キャッ
シュ
Ecache = Edecode + Esram + Eio
Esram_tag + Esram_data
メモリ参照アドレス
Tag Index Offset
タグメモリ
Tag
データメモリ
Line
MUX
Hit?
Word Data
従来型キャッシュにおけるタグ比較
事実1:命令キャッシュのヒット率は極めて高い
→キャッシュ内容の更新は稀にしか発生しない
事実2:プログラムはループ構造に基づく
→多くの命令は繰り返し実行される
Miss!
命令A
参照
タグ
比較
命令A 命令A
参照 参照
タグ
比較
タグ
比較
命令A
参照
命令A
参照
タグ
比較
タグ
比較
Miss!
時刻
キャッシュ・ミス・インターバル
キャッシュの内容は変更されていないにも関わらず
同一命令へのアクセス時、毎回タグ比較を実行
無駄なタグ比較はどの程度存在するのか?
16 KB ダイレクト・マップ命令キャッシュ(32Bラインサイズ)
キャッシュ・ミス・インターバル当たりの
平均アクセス回数(100回まで)
HBTCキャッシュ
動的に無駄なタグ比較処理を検出・削除す
ることで低消費エネルギー化を実現
Miss!
命令A
参照
命令A
参照
タグ比較
タグ比較
Miss!
時刻
ある命令を参照する時、
• 当該命令が過去に参照された実績があり、かつ、
• その時から現在に至るまで一度もキャッシュ・ミス
が発生していない
場合にはタグ比較処理を省略可能(ヒット)
タグ比較省略条件の動的判定方法
実行履歴(実行の足跡)を記録
1. 時刻Tにおける命令ブロックAの参照
A?
命令ブロックAの実行履歴を残す
$ ための足跡フラグをセット
2.キャッシュ・ミス発生時、全ての足跡フラグをリセット
3. 時刻T+Xにおいて、命令ブロックAを再び参照する時
に対応する実行足跡をチェック
A
$
実行足跡が残っていればタグ比
較処理を省略
HBTCキャッシュ・アーキテクチャ
分岐予測
分岐命令アドレス 結果
実行足跡フラグ設定用アドレス
実行足跡フラグ
PBAreg
(Previous Branch Addr. Reg)
TF
分岐命令アドレス 分岐先アドレス
Target Instruction
Block
I-$
BTB
Not-taken
分岐命令アドレス 分岐先アドレス
PC
分岐予測
結果
モード制御
回路
タグ比較省略信号
HBTCキャッシュの動作
通常モード (Normal Mode:NM): タグ比較を実行
省略モード (Omitting Mode:OM): タグ比較を省略
記録モード (Tracing Mode:TM): タグ比較を実行
(ただし、BTBヒット時、PBAregで
指定された足跡フラグを1にセット)
Mode Transition
GOtoNM
足跡フラグ=1
命令キャッシュ・ミス
OM
BTB Hit
BTBリプレイスメント
RASアクセス
GOtoNM
足跡フラグ=0
分岐予測ミス検出
NM
TM
GOtoNM
全ての実行足跡フラグをリセット
1
0 .9
0 .8
0 .7
0 .6
0 .5
0 .4
0 .3
0 .2
0 .1
0
Ebtbadd
Eoutput
Etag
Edata
129.compress adpcm(e) mpeg2(e)
epic(e)
pegwit(e)
132.ijpeg adpcm(d) mpeg2(d) epic(d)
pegwit(d)
1 .0 4
Norm. Exe. Time
Normalized
Cache Energy
評価 -消費エネルギーと性能ー
1 .0 2
1
0 .9 8
0 .9 6
0 .9 4
0 .9 2
0 .9
129.compress adpcm(e) mpeg2(e)
epic(e)
pegwit(e)
132.ijpeg adpcm(d) mpeg2(d) epic(d) pegwit(d)
評価 -実行足跡無効化ペナルティが与える影響ー
129.compress
132.ijpeg
adpcm(e)
adpcm(d)
mpeg2(e)
mpeg2(d)
epic(e)
epic(d)
pegwit(d)
L1 Cache
1.1 Miss Penalty
1.05
1
0.95
1
2
4
8
16
Footprint Flag
Invalidation Penalty (cycle)
BTB Replacement
Cache Miss
Breakdown of
Footprint Invalidations
Normalized Exe. Time
1.15
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
129.compress adpcm(e) mpeg2(e) epic(e) pegwit(e)
132.ijpeg
adpcm(d) mpeg2(d) epic(d) pegwit(d)
1
0.95
0.9
0.85
0.8
4
8
16
32
Cache Size [KB]
64
Normalized Exe. Time
Normalized Energy
評価 -キャッシュ・サイズとBTB連想度が
与える影響ー
1
129.compress
132.ijpeg
adpcm(e)
adpcm(d)
mpeg2(e)
mpeg2(d)
epic(e)
epic(d)
pegwit(e)
pegwit(d)
0.95
0.9
0.85
0.8
1
2
4
8
16 32
BTB Associativity
ヒストリ・ベース・タグ比較キャッシュ
ヒストリ・ベース・タグ比較・キャッシュの提案
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
HBLキャッシュ
To be presented at ICCD’02
ー セット・アソシアティブ方式への拡張 ー
前分岐予測結果
検索履歴レジスタ
Tag Check Result
前PC保存用レジスタ
Write Address
検索履歴テーブル
Branch-Inst. Addr.
PC
Target Addr.
BTB (Branch Target Buffer)
Branch-Inst. Addr.
Taken
Not
Taken
I-Cache
Target Addr.
検索履歴テーブル
のエントリ
valid flag
n way pointers
分岐予測
結果
WP
レジスタ
valid
モード
制御
WP
Miss?
HBLキャッシュ
ー 基本概念 ー
1. 時刻 T にてある命令Aを参照
way0 way1 way2 way3
•タグ比較を実行
Index
•タグ比較結果を保存
(命令Aのヒット・ウェイ=2)
Hit!
2. キャッシュ・ミスが発生したら記録した全てのタグ比較
結果を無効化
3. 時刻T+x において命令Aを再度参照
way0 way1 way2 way3
Index
Hit!
• 有効なタグ比較結果が保存
されていれば再利用
(命令Aのヒット・ウェイ=2)
# of WPs = 4
1.2
1.0
62% 0.2%
1.2
1.0
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0.0
0.0
099.go
126.gcc
130.li
102.swim adpcm(d) mpeg2(d)
124.m88ksim 129.comp. 132.ijpeg adpcm(e) mpeg2(e)
Normalized Exe. Time (cycle)
Normalized Energy (Joule)
評価
ー実験結果ー
Normalized Energy (Joule)
評価
ーWP数が消費エネルギーに与える影響 ー
126.gcc
w/o Pre-Decoding
w/ Pre-Decoding
1.0
0.8
0.6
0.4
0.2
0.0
1
2
4
8
16
32
1
2
4
8
16
32
# of Way Pointer
Energy for Cache Access
Energy Overhead at BTB
評価
ーキャッシュ連想度が消費エネルギーに与える影響ー
Energy (Joule)
mpeg2decode
8.E+06
7.E+06
6.E+06
5.E+06
4.E+06
3.E+06
2.E+06
1.E+06
0.E+00
Conventional
1 2
4
8 16 32 64
HBL Cache
1 2
Associativity
4
Eothers
Etag
Edata,bl
Edata,prectl
8 16 32 64
0.8um CMOS* **
*) M.B.Kamble and K.ghose, “Energy-Efficiency of VLSI Caches: A Comparative Study,” 10th Int. Conf. On VLSI Design
**) S.J.E.Wilton and N.P.Jouppi, “An Enhanced Access and Cycle Time Model for On-Chip Caches,” WRL Research Report 93/5
発表手順
1. キャッシュのいろは
2. 高性能化技術
動的可変ラインキャッシュ
3. 低消費電力化技術
ウェイ予測キャッシュ(とその後)
タグ比較省略キャッシュ(とその後)
4. まとめと今後の課題
まとめ
まだまだキャッシュ・メモリの研究はこれから!
ヒット率の向上によるメモリウォール問題の解決
動的/静的消費電力の削減
多くの技術に共通する事は。。。
• 特性の異なるメモリ領域を複数個用意
• (物理的には1つのメモリ・アレイでもOK)
• プログラムの特性(特に局所性)に応じてこれ
らを効率良く使い分ける
References
[Chang87]:Chang,J.H, Chao,H., and So,K.,”Cache design of a sub-micron cmos system370,” 14th ISCA.
[Liu94]:Liu.L,”Cache design with partial address matching,”27th MICRO.
[Juan96]:Juan,T., Lang,T., and Navarro,J.J.,”The difference-bit cache,”23rd ISCA.
[Agarwal88]:Agarwal,A., Hennesy,J., and Horowitz,M.,”Cache performance of operating systems and
multiprogramming,” ACM Trans. On Computer Systems, vol.6.
[Agarwal93]:Agarwal,A., and Pudar,S.D.,”Column-associative cache: A technique for reducing the miss rate of
direct-mapped caches,” 20th ISCA.
[Calder96]:Calder,B., Grunwald,D., and Emer,J.,”Predictive sequential associative cache,” 2nd HPCA.
[Seznec93]:Seznec,A.,”A case for two-way skewed-associative caches,” 20th ISCA.
[Peir98]:Peir,J.K., Lee,Y., and Hsu,W.W.,”Capturing dynamic memory reference behavior with adaptive cache
topology,” 8th ASPLOS.
[McFarling92]:McFarling,S.,”Cache replacement with dynamic exclusiion,” 19th ISCA.
[Johnson97A]:Johnson,T. L. and Hwu,W.W.,”Run-time adaptive cache hierarchy management via reference
analysis,” 24th ISCA.
[Jouppi90]:Jouppi,N.P.,”Improving direct-mapped cache performance by the addition of a small fully-associative
cache and prefetch buffers,” 17th ISCA.
[John97]:John,L.K. and Subramanian,A.,”Design and performance evaluation of a cache assist to implement
selective caching,” ICCD 1997.
[Walsh95]:Walsh,S.J. and Board,J.A.,”Pollution control caching,” ICCD 1995.
[Gonzalez95]:Gonzalez,A., Aliagas,C., and Valero,M.,”A data cache with multiple caching strategies tuned to
different types of locality,” ICS 1995.
[Park99]:Park,G.-H., “Desing and analysis of an adaptive memory system for deep-submicron and processormemory integration technologies,” PhD thesis, Department of Computer Science the Graduate School Yonsei
Univ. 1999.
References
[Fisk99]:Fisk,B.R. and Bahar,R.I.,”The non-critical buffer: Using load latency tolerance to improve data cache
efficiency,” ICCD 1999.
[Inoue99A]: Inoue,K., Kai,K., and Murakami,K.,”Dynamically variable line-size cache exploiting high on-chip
memory bandwidth of merged DRAM/logic LSIs,” 5th HPCA.
[Johnson97B]:Johnson,T.L., Merten,M.C., and Hwu,W.W.,”Run-time spatioal locality detection and optimization,”
30th MICRO.
[Vleet99]: Vleet,P.V., Anderson,E., Brown,L., Baer,J., and Karlin,A.,”Pursuing the performance potential of
dynamic cache lilne sizes,” ICCD 1999.
[Veidenbaum99]: Veidenbaum,A.V., Tang,W., Gupta,R., Nicolau,A., and Ji,X.,”Adapting cache line size to
application behavior,” ICS 1999.
[Tomiyama97]: Tomiyama,H. and Yasuura,H.,”Code placement techniques for cache miss rate reduction,” ACM
Trans. On Design Automation of Electronic Systems, 1997.
[Murakami97]: Murakami,K., Shirakawa,S., and Miyajima,H.,”Parallel processing RAM chip with 256mB DRAM
and quad processors,” ISSCC, 1997.
[Patterson97]: Patterson,D. et. Al., “A case for intelligent RAM,” IEEE Micro, 1997.
[Su95]: Su,C.L. and Despain,A.M.,”Cache design trade-offs for power and performance optimization: a cace
study,” ISLPED 1995.
[Kamble97]: Kamble,M.B. and Ghose,K., “Analytical energy dissipation models for low power caches,” ISLPED
1997.
[Lee2000]: Lee,H.S. and Tyson,G.S.,”Region-based caching: an energy-delay efficient memory architecture for
embedded processors,” CASES 2000.
[Kin97]: Kin,J., Gupta,M., and Mangione-Smith,W.H.,”The filter cache: an energy efficient memory structure,”
MICRO 1997.
References
[Ishihara2000]:Ishihara,T. and Yasuura,H.,”A power reduction technique with object code merging for application
specific embedded processors,” DATE 2000.
[Panwar95]: Panwar,R. and Rennels,D.,”Reducing the frequency of tag compares for low power I-cache design,”
ISLPED 1995.
[Hasegawa95]: Hasegawa,A., et al., “SH3: High code density, low power,” IEEE Micro, 1995.
[Inoue99B]: Inoue,K., Ishihara,T., and Murakami,K.,”Way-predicting set-associative cache for high performance
and low energy consumption,” ISLPED 1999.
[Albonesi99]: Albonesi,D.H.,”Selective cache ways: On-demand cache resource allocation,” MICRO 1999.
[inoue2002]: Koji Inoue, Vasily Moshnyaga, and Kazuaki Murakami, “A History-based I-Cache for Low-Energy
Multimedia Applications,” to appear in ISLPED 2002.
[Stan95]: Stan,M.R. and Burleson,W.P.,”Bus-invert cording for low-power I/O,” IEEE transaction on VLSI
Systems, 1995.
[Benini97]: Benini,L., De Micheli,G., Macii,E., Sciuto,D., and Silvano,C.,”Asymptotic zero-transition activity
encording for address busses in low-power microprocessor-based systems,” 7th GLS-VLSI.
[Tomiyama98]: Tomiyama,H., Ishihara,T., Inoue,A., and Yasuura,H.,”Instruction scheduling for power reduction in
processor-based system design,” DATE 1998.
[Inoue2000B]: Inoue, K., Kai, K., and Murakami, K., ``Performance/Energy Efficiency of Variable Line-Size
Caches on Intelligent Memory Systems,'' Proc. of The 2nd Workshop on Intelligent Memory Systems, Nov. 2000.
[Ohsawa98]: Ohsawa,T., Kai,K., and Murakami,K.,”Optimizing the DRAM refresh count for merged DRAM/logic
LSIs,” ISLPED 1998.
[Lebeck2000]:Lebeck,A.R., Fan,X., Zeng,H., and Ellis,C.,”Power aware page allocation,” ASPLOS 2000.
[Delaluz2000]:Delaluz,V., Kandemir,M., Vijaykrishnan,N., and Irwin,M.J.,”Energy-oriented compiler optimizations
for partitioned memory architectures,” CASES 2000.
[Delaluz2001]:Delalus,V., Kandemir,M., Vijaykrishnan,N., Sivasubramaniam,A., and Irwin,M.J.,”DRAM energy
management using software and hardware directed power mode control,” 7th HPCA.
References
[Witchel2001]: E. Witchel, S. Larsen, C. Ananian, and K. Asanovic, “Direct Addressed Caches for Reduced
Power Consumption," Int. Symp. on Microarchitecture (MICRO34).
[Ma2001] :A. Ma, M. Zhang, and K. Asanovic, “Way Memoization to Reduce Fetch Energy in Instruction
Caches," ISCA Workshop on Complexity Effective Design, June 2001.
[Huang2001]: M. Huang, J. Renau, S. Yoo, and J. Torrellas, “L1 Data Cache Decomposition for Energy
Efficiency,” Int. Symp. on Low Power Electronics and Design (ISLPED2001).
[Kim2002]: H. Kim, A. K. Somani, and A. Tyagi, “A Reconfigurable Mulifunction Computing Cache Architecture,"
IEEE Trans. on VLSI Systems, Vol.9, No.4, Aug. 2001
[Shin2001]: Y. Shin and T. Sakurai, “Coupling-Driven Bus Design for Low-Power Application-Specific Systems,"
Int. Conf. on Design Automation Conference (DAC38), pp750-753, 2001.
[Nakamura2000]: H. Nakamura, M. Kondo, and T. Boku, “Software Controlled Reconfigurable On-chip Memory
for High Performance Computing,” 2nd Workshop on Intelligent Memory Systems, Nov. 2000.
[Chiou2000]: Derek Chiou, Prabhat Jain, Larry Rudolp, and Srinivas Devadas, “Application-Specific Memory
Management for Embedded Systems Using Software-Controlled Caches,” DAC2000.
[Yang2000]: Jun Yang, Youtao Zhang, and Rajiv Gupta, “Frequent Value Compression In Data Caches,”
MICRO33.
[Valla2000]: Luis Villa, Michael Zhang, and Krste Asanovic, “Dynamic Zero Compression for Cache Energy
Reduction,” MICRO33.
[Jayapala2001]: Murali Jayapala, Francisco Barat, Pieter Op de Beek, Francky Catthoor, and Rudy Lauwereins,
“Low Energy Clustered Instruction Fetch and Split Loop Cache Architecture for Long Instruction Word
Processors,” COLP’01.
[Yang2001]: Se-Hyun Yang, Michael D. Powell, Babak Falsafi, and T. N. Vijaykumar, “Exploiting Choice in
Resizable Cache Design to Optimize Deep-Submicron Processor Energy-Delay,” HPCA-8.
Back Up Slides
低消費エネルギー化技術(おまけ)
-レジスタ・ファイルー
オペランド・データの再利用とフォワーディング回路の活用
To be presented at PATMOS’02, SWoPP’02
R e du c tio n R ate R e ad A c c e sse s
1
0.9
0.8
0.7
R
0.6
R sw
0.5
R sk
0.4
R sw + sk
0.3
0.2
0.1
it
tr
ac
e_
pe
gw
b
1
0 .9
R
0 .8
R sw
0 .7
R sk
0 .6
R sw + sk
0 .5
W +R
0 .4
W + R sw
W + R sk
0 .3
W + R sw + sk
0 .2
0 .1
b
y.
pu
m
e_
cl
in
to
n
tr
ac
m
ei
16
v2
go
t
te
s
co
e_
en
tr
ac
e_
de
co
de
de
0
tr
ac
b
y.
pu
y.
pu
m
e_
m
tr
ac
v2
tr
ac
e_
cl
in
to
n
rif
y
ei
16
e_
m
tr
ac
v2
ni
s
t_
ve
te
s
te
n
go
ei
16
m
t
t
te
s
bi
gt
es
tr
ai
n
de
e_
en
tr
ac
tr
ac
e_
de
co
co
de
0
低消費エネルギー化技術(おまけ)
-命令ROMー
命令ローカリティを利用した命令ROMの低消費電力化
C
CB
B
U
UC
CB
B
1
R e f. V
1
60%
40%
20%
0%
BNEZ:
SW :
LW :
A D D I:
S p e c ia l:
S ense
A m p.
60%
40%
20%
読 出 しデータ
(4 )
(2 )
(3 )
(5 )
(6 )
出 現 頻 度 (R s1,R s2,R d -field )
100%
Base
(d lxs im )
O th e rs
80%
S ense
A m p.
000101
101011
100011
001000
000000
0%
R31:
R3:
R2:
R29:
R1:
11111
00011
00010
11101
00000
(0 )
(3 )
(4 )
(1 )
(5 )
In v e rt-F la g
O p -F ie ld
F u n c -F ie ld
R e g -F ie ld
Im m -F ie ld
H IS
IS+
+IE
IEa
all
ll
H
0
H IS
IS+
+IE
IEssp
p
H
1
Base
(d lxs im )
O th e rs
80%
IEa
all
ll
IE
0
IEssp
p
IE
0
m peg2dec
HS
SII
H
WL
出 現 頻 度 (O P -field )
100%
1 .1
1
0 .9
0 .8
0 .7
0 .6
0 .5
0 .4
0 .3
0 .2
0 .1
0
BA
AS
SE
E
B
BL0 BL1
N o rm a liz e d E n e rg y
To be presented at APCCAS’02