スライド タイトルなし

タグ比較結果の再利用に基づく
メディア・アプリケーション向け低消費電力キャッシュ
○井上弘士1 V. Moshynaga1 村上和彰2
1福岡大学
工学部
2九州大学大学院 システム情報科学研究院
発表手順
• はじめに
• 従来型キャッシュにおける問題点
• ヒストリ・ベース・ルックアップ・キャッシュ
• 定量的評価
• おわりに
はじめに
キャッシュの大容量化
→キャッシュ消費エネルギーが増大!
チップ全体の消費電力において、キャッシュが占める割合
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
従来型4ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ
ライン・サブアレイ
Way 0 Way 1 Way 2 Way3
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと
ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、
ラインのリプレイス
従来型4ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ
ライン・サブアレイ
Way 0 Way 1 Way 2 Way3
Step1. アドレス・デコード
Index
Step2.全ウェイにおけるタグと
ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、
ラインのリプレイス
従来型4ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ
ライン・サブアレイ
Way 0 Way 1 Way 2 Way3
Step1. アドレス・デコード
Index
Step2.全ウェイにおけるタグと
ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、
ラインのリプレイス
従来型4ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ
ライン・サブアレイ
Way 0 Way 1 Way 2 Way3
Step1. アドレス・デコード
Index
Tag
Step2.全ウェイにおけるタグと
ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、
ラインのリプレイス
従来型4ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ
ライン・サブアレイ
Way 0 Way 1 Way 2 Way3
Step1. アドレス・デコード
Index
Tag
Step2.全ウェイにおけるタグと
ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、
ラインのリプレイス
従来型4ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ
ライン・サブアレイ
Way 0 Way 1 Way 2 Way3
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと
ラインを同時読み出し
アクセス当たりの
平均消費エネルギー
タグ読み出し ライン読み出し
Step3. タグ比較
Ecache = Etag + Eline
Tnum×Etag_sa
読み出さ
れるタグ数
タグ
サブアレイ
アクセス
Lnum×Eline_sa
読み出され
るライン数
ライン
サブアレイ
アクセス
Step4.不一致の場合、
ラインのリプレイス
従来型4ウェイ・アソシアティブ・キャッシュ
ー 問題点 ー
Way 0 Way 1 Way 2 Way3
参照データは唯一のウェイに存在する
にも関わらず全てのウェイを活性化
本来データ読み出しのために消費すべきエネルギー
Eline_sa
高速データ検索のために消費する無駄なエネルギー
4×Etag_acc + (4-1)×Eline_acc
提案型4ウェイ・アソシアティブ・キャッシュ
ー 本研究の狙い ー
ヒストリ・ベース・ルックアップ・キャッシュを提案
 目的:命令キャッシュにおける無駄な消
費エネルギーを削減!
 手段:過去のタグ比較結果を再利用!
 効果:0.2%の性能低下をもたらすだけで、
最大68%の消費エネルギーを削減!
HBLキャッシュ
ー 基本概念 (1/3) ー
事実1:命令キャッシュのヒット率は極めて高い
→キャッシュ内容の更新は稀にしか発生しない
事実2:プログラムはループ構造に基づく
→多くの命令は繰り返し実行される
Miss!
命令A
参照
命令A
参照
命令A
参照
命令A
参照
命令A
参照
どの
Way?
どの
Way?
どの
Way?
どの
Way?
どの
Way?
Miss!
時刻
キャッシュ・ミス・インターバル
キャッシュの内容は変更されていないにも関わらず
同一命令へのアクセス時、毎回検索を行っているのでは?
HBLキャッシュ
ー 基本概念 (2/3) ー
キャッシュ・ミス・インターバル当たりの平均アクセス回数
(無駄なキャッシュ検索はどの程度存在するのか?)
16 KB 4-way set-associative cache with 32 B line size
HBLキャッシュ
ー 基本概念 (3/3) ー
1. 時刻 T にてある命令Aを参照
way0 way1 way2 way3
•タグ比較を実行
Index
•タグ比較結果を保存
Hit!
HBLキャッシュ
ー 基本概念 (3/3) ー
1. 時刻 T にてある命令Aを参照
way0 way1 way2 way3
•タグ比較を実行
Index
•タグ比較結果を保存
(命令Aのヒット・ウェイ=2)
Hit!
HBLキャッシュ
ー 基本概念 (3/3) ー
1. 時刻 T にてある命令Aを参照
way0 way1 way2 way3
•タグ比較を実行
Index
•タグ比較結果を保存
(命令Aのヒット・ウェイ=2)
Hit!
2. キャッシュ・ミスが発生したら記録した全てのタグ比較
結果を無効化
HBLキャッシュ
ー 基本概念 (3/3) ー
1. 時刻 T にてある命令Aを参照
way0 way1 way2 way3
•タグ比較を実行
Index
•タグ比較結果を保存
(命令Aのヒット・ウェイ=2)
Hit!
2. キャッシュ・ミスが発生したら記録した全てのタグ比較
結果を無効化
3. 時刻T+x において命令Aを再度参照
way0 way1 way2 way3
Index
Hit!
• 有効なタグ比較結果が保存
されていれば再利用
(命令Aのヒット・ウェイ=2)
HBLキャッシュ
ー 内部構造 ー
前分岐予測結果
検索履歴レジスタ
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キャッシュ
ー 動作モード ー
検索省略モード:ウェイ・ポインタ(WP)レジスタに格納さ
れたWPの値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索
を行う.ただし,検索履歴レジスタ(Look-up History
Reg.)にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.
タグ比較結果の記録は行わない.
HBLキャッシュ
ー 動作モード ー
検索省略モード:ウェイ・ポインタ(WP)レジスタに格納さ
れたWPの値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索
を行う.ただし,検索履歴レジスタ(Look-up History
Reg.)にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.
タグ比較結果の記録は行わない.
HBLキャッシュ
ー 動作(検索省略モード) ー
前分岐予測結果
検索履歴レジスタ
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キャッシュ
ー 動作(検索省略モード) ー
前分岐予測結果
検索履歴レジスタ
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
== 1
モード
制御
WP
Miss?
HBLキャッシュ
ー 動作モード ー
検索省略モード:ウェイ・ポインタ(WP)レジスタに格納さ
れたWPの値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索
を行う.ただし,検索履歴レジスタ(Look-up History
Reg.)にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.
タグ比較結果の記録は行わない.
HBLキャッシュ
ー 動作(検索記録モード) ー
前分岐予測結果
検索履歴レジスタ
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
== 0
モード
制御
WP
Miss?
HBLキャッシュ
ー 動作(検索記録モード) ー
前分岐予測結果
検索履歴レジスタ
Tag Check Result
前PC保存用レジスタ
Write Address
BTB Hit!
検索履歴テーブル
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キャッシュ
ー 動作モード ー
検索省略モード:ウェイ・ポインタ(WP)レジスタに格納さ
れたWPの値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索
を行う.ただし,検索履歴レジスタ(Look-up History
Reg.)にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.
タグ比較結果の記録は行わない.
HBLキャッシュ
ー 動作モード ー
検索省略モード:ウェイ・ポインタ(WP)レジスタに格納さ
れたWPの値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索
を行う.ただし,検索履歴レジスタ(Look-up History
Reg.)にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.
タグ比較結果の記録は行わない.
(連想度が4の場合)
Ecache = Tnum×Etag_acc + Lnum×Eline_acc
従来型
4
省略
0
記録 / 通常 4
4
1
4
HBLキャッシュ
ー 動作モード遷移 ー
CONDtoNM:
命令キャッシュ・ミス or
BTBリプレースメント or
分岐予測ミスからの復帰 or
RASアクセス
CONDtoNM
省略モード
Valid==1
BTBヒット
WP読出しオーバフロー
WP書込みオーバフロー
Valid==0
記録モード
通常モード
CONDtoNM
 BTBヒット時に省略モードか記録モードかを決定
 キャッシュ・ミス発生時には全てのvalidフラグをリセット
(記録したタグ比較結果を無効化)
HBLキャッシュ
ー 利点と欠点のまとめ ー
• 利点:
 タグ比較結果の再利用により無駄なウェイ・アクセ
スを回避して低消費エネルギー化(省略モード時)
• 欠点:
 記録モードや通常モード時には従来型と同じ数の
タグ / ライン・サブアレイを活性化
 BTB拡張に伴う消費エネルギー・オーバヘッド
 記録したタグ比較結果の無効化処理時における
CPUからのBTBアクセス禁止(ストール発生)
 タグ比較結果の検索履歴テーブル書込み時におけ
るCPUからのBTBアクセス禁止(ストール発生)
評価
ー評価環境ー
 SimpleScalarによるサイクル・ベース・シミュレーション
 16KBの4ウェイ・セットアソシアティブ・キャッシュを想定
 BTBアクセスは分岐(又はジャンプ)実行時のみ発生
 消費エネルギーに関してはKambleのモデル*を使用
 BTB拡張に伴う消費エネルギー・オーバヘッドも含む
SPECint95
Benchmark Programs
099.go, 124.m88ksim, 126.gcc, 129.compress,130.li, 132.ijpeg
SPECfp95
102.swim
Mediabench
mpeg2encode, mpeg2decode, adpcm_enc, adpcm_dec
*) M.B.Kamble and K.Ghose, ”Analytical Energy Dissipation Models For Low Power Caches,” ISLPED97
# 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
Normalized Tag-Compare Count
評価
ー他方式との比較ー
ITC:Interline Look-up Cache
HBLC:History-Based Look-up Cache
ITC+HBLC
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
099.go
126.gcc
130.li
102.swim adpcm(d) mpeg2(d)
124.m88ksim 129.comp. 132.ijpeg adpcm(e) mpeg2(e)
おわりに
 セット・アソシアティブ命令キャッシュの低消費電力
化を目的としたキャッシュ・アーキテクチャを提案
 2%の性能低下をもたらすだけで最大62%の
キャッシュ・アクセス消費エネルギーを削減
 性能ならびに消費エネルギーに関する詳細な評
価・解析
今後の予定
実設計に基づくより詳細な消費エネルギーの評価
Backup Slides
Normalized Energy (Joule)
評価
ーWP数が消費エネルギーに与える影響 (1/2)ー
132.ijpeg
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
3
2.5
2
126.gcc
Cache Miss
Penalty
1.5
BTB Replacement
Cache Miss
099.go
1
mpeg2(d) 132.ijpeg
0.5
0
1
2
4
8
16
32
WP Invalidation Penalty (cycle)
Breakdown of
WP invalidations
Normalized Exe. Time (cycle)
評価
ーWP無効化が性能に与える影響ー
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
099.go 126.gcc 130.li 102.swim adpcm(d) mpeg2(d)
124.m88ksim 129.comp.132.ijpeg adpcm(e) mpeg2(e)
評価
ー連想度が消費エネルギーに与える影響ー
Eothers
Etag
Edata,bl
Edata,prectl
099.go
Energy (Joule)
3.E+07
3.E+07
Conventional
2.E+07
HBL Cache
2.E+07
1.E+07
5.E+06
0.E+00
1 2
4
8 16 32 64
1 2
Associativity
4
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
評価
ー連想度が消費エネルギーに与える影響ー
132.ijpeg
Energy (Joule)
6.E+07
5.E+07
Conventional
HBL Cache
Eothers
Etag
Edata,bl
Edata,prectl
4.E+07
3.E+07
2.E+07
1.E+07
0.E+00
1 2
4
8 16 32 64
1 2
Associativity
4
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
評価
ー連想度が消費エネルギーに与える影響ー
126.gcc
Energy (Joule)
7.E+07
6.E+07
5.E+07
Conventional
HBL Cache
Eothers
Etag
Edata,bl
Edata,prectl
4.E+07
3.E+07
2.E+07
1.E+07
0.E+00
1 2
4
8 16 32 64
1 2
Associativity
4
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
評価
ーWP数が消費エネルギーに与える影響 (1/2)ー
Normalized Energy (Joule)
w/ Pre-Decoding
(BTB access occurs only at branch, or jump, executions)
1.0
126.gcc
132.ijpeg
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
評価
ーWP数が消費エネルギーに与える影響 (2/2)ー
Normalized Energy (Joule)
w/o Pre-Decoding
(BTB access occurs for all instructions)
1.0
126.gcc
132.ijpeg
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