タグ比較結果の再利用に基づく...
DESCRIPTION
タグ比較結果の再利用に基づく メディア・アプリケーション向け低消費電力キャッシュ. ○ 井上弘士 1 V. Moshynaga 1 村上和彰 2 1 福岡大学 工学部 2 九州大学大学院 システム情報科学研究院. 発表手順. はじめに 従来型キャッシュにおける問題点 ヒストリ・ベース・ルックアップ・キャッシュ 定量的評価 おわりに. はじめに. キャッシュの大容量化. → キャッシュ消費エネルギーが増大!. チップ全体の消費電力において、キャッシュが占める割合. DEC 21164 CPU*. StrongARM SA-110 CPU*. - PowerPoint PPT PresentationTRANSCRIPT
タグ比較結果の再利用に基づくタグ比較結果の再利用に基づくメディア・アプリケーション向け低消費電力キャッシュメディア・アプリケーション向け低消費電力キャッシュ
○ 井上弘士 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”, I S LPED’97** Joouppi, et. Al., “A 300-MHz 115-W 32-b Bipolar ECL Microprocessor” ,IEEE Journal of Solid-State Circuits’93
→ キャッシュ消費エネルギーが増大!キャッシュの大容量化
タグ・サブアレイ ライン・サブアレイ
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、 ラインのリプレイス
Way 0 Way 1 Way 2 Way3
従来型 4 ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ ライン・サブアレイ
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、 ラインのリプレイス
Way 0 Way 1 Way 2 Way3
Index
従来型 4 ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ ライン・サブアレイ
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、 ラインのリプレイス
Way 0 Way 1 Way 2 Way3
Index
従来型 4 ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ ライン・サブアレイ
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、 ラインのリプレイス
Way 0 Way 1 Way 2 Way3
Index
Tag
従来型 4 ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
タグ・サブアレイ ライン・サブアレイ
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、 ラインのリプレイス
Way 0 Way 1 Way 2 Way3
Index
Tag
従来型 4 ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ー
従来型 4 ウェイ・アソシアティブ・キャッシュ
ー 動作と消費エネルギー ータグ・サブアレイ ライン・サブアレイ
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと ラインを同時読み出し
Step3. タグ比較
Step4.不一致の場合、 ラインのリプレイス
Way 0 Way 1 Way 2 Way3
Ecache = Etag + Eline
アクセス当たりの平均消費エネルギー タグ読み出し ライン読み出し
読み出されるタグ
数
Tnum×Etag_saタグ
サブアレイアクセ
ス
Lnum×Eline_sa読み出されるライン数
ラインサブアレイアクセ
ス
本来データ読み出しのために消費すべきエネルギーEline_sa
高速データ検索のために消費する無駄なエネルギー4×Etag_acc + (4-1)×Eline_acc
Way 0 Way 1 Way 2 Way3
参照データは唯一のウェイに存在するにも関わらず全てのウェイを活性
化
従来型 4 ウェイ・アソシアティブ・キャッシュ
ー 問題点 ー
提案型 4 ウェイ・アソシアティブ・キャッシュ
ー 本研究の狙い ー
目的:命令キャッシュにおける無駄な消費エネルギーを削減!
手段:過去のタグ比較結果を再利用! 効果: 0.2% の性能低下をもたらすだ
けで、最大 68% の消費エネルギーを削減!
ヒストリ・ベース・ルックアップ・キャッシュを提案
HBL キャッシュー 基本概念 (1/3) ー
事実 1 :命令キャッシュのヒット率は極めて高い→ キャッシュ内容の更新は稀にしか発生しない
事実 2 :プログラムはループ構造に基づく→ 多くの命令は繰り返し実行される
キャッシュの内容は変更されていないにも関わらず同一命令へのアクセス時、毎回検索を行っているのでは?
時刻
Miss! Miss!命令 A
参照
どのWay?
命令 A参照
どのWay?
命令 A参照
命令 A参照
命令 A参照
どのWay?
どのWay?
どのWay?
キャッシュ・ミス・インターバル
(無駄なキャッシュ検索はどの程度存在するのか?)キャッシュ・ミス・インターバル当たりの平均アクセス回数
16 KB 4-way set-associative cache with 32 B line size
HBL キャッシュー 基本概念 (2/3) ー
HBL キャッシュー 基本概念 (3/3) ー
1. 時刻 T にてある命令 A を参照•タグ比較を実行•タグ比較結果を保存
way0 way1 way2 way3
Hit!
Index
HBL キャッシュー 基本概念 (3/3) ー
1. 時刻 T にてある命令 A を参照•タグ比較を実行•タグ比較結果を保存
way0 way1 way2 way3
Index
Hit! (命令(命令 AA のヒット・ウェイのヒット・ウェイ =2=2 ))
HBL キャッシュー 基本概念 (3/3) ー
1. 時刻 T にてある命令 A を参照•タグ比較を実行•タグ比較結果を保存
way0 way1 way2 way3
Hit! (命令(命令 AA のヒット・ウェイのヒット・ウェイ =2=2 ))2. キャッシュ・ミスが発生したら記録した全てのタ
グ比較結果を無効化
Index
HBL キャッシュー 基本概念 (3/3) ー
1. 時刻 T にてある命令 A を参照•タグ比較を実行•タグ比較結果を保存
way0 way1 way2 way3
Hit! (命令(命令 AA のヒット・ウェイのヒット・ウェイ =2=2 ))2. キャッシュ・ミスが発生したら記録した全てのタ
グ比較結果を無効化3. 時刻 T+ x において命令 A を再度参照
• 有効なタグ比較結果が保存されていれば再利用
way0 way1 way2 way3
Index
Hit! (命令(命令 AA のヒット・ウェイのヒット・ウェイ =2=2 ))
Index
HBL キャッシュー 内部構造 ー
Branch-Inst. Addr. Target Addr.
Branch-Inst. Addr. Target Addr.
BTB (Branch Target Buffer) NotTakenPC
Write Address
Tag Check Result
WPvalid
I-Cache
Miss?
valid flag n way pointers
Taken
検索履歴テーブル
分岐予測結果
検索履歴レジスタ
前 PC 保存用レジスタ
前分岐予測結果
WPレジスタ
モード制御
検索履歴テーブルのエントリ
HBL キャッシュー 動作モード ー
検索省略モード:ウェイ・ポインタ( WP) レジスタに格納された WP の値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索を行う.ただし,検索履歴レジスタ (Look-up History Reg.) にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.タグ比較結果の記録は行わない.
HBL キャッシュー 動作モード ー
検索省略モード:ウェイ・ポインタ( WP) レジスタに格納された WP の値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索を行う.ただし,検索履歴レジスタ (Look-up History Reg.) にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.タグ比較結果の記録は行わない.
HBL キャッシュー 動作(検索省略モード) ー
Branch-Inst. Addr. Target Addr.
Branch-Inst. Addr. Target Addr.
BTB (Branch Target Buffer) NotTakenPC
Write Address
Tag Check Result
WPvalid
I-Cache
Miss?
valid flag n way pointers
Taken
検索履歴テーブル
分岐予測結果
検索履歴レジスタ
前 PC 保存用レジスタ
前分岐予測結果
WPレジスタ
モード制御
検索履歴テーブルのエントリ
HBL キャッシュー 動作(検索省略モード) ー
Branch-Inst. Addr. Target Addr.
Branch-Inst. Addr. Target Addr.
BTB (Branch Target Buffer) NotTakenPC
Write Address
Tag Check Result
WPValid== 1
I-Cache
Miss?
valid flag n way pointers
Taken
検索履歴テーブル
分岐予測結果
検索履歴レジスタ
前 PC 保存用レジスタ
前分岐予測結果
WPレジスタ
モード制御
検索履歴テーブルのエントリ
HBL キャッシュー 動作モード ー
検索省略モード:ウェイ・ポインタ( WP) レジスタに格納された WP の値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索を行う.ただし,検索履歴レジスタ (Look-up History Reg.) にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.タグ比較結果の記録は行わない.
HBL キャッシュー 動作(検索記録モード) ー
Branch-Inst. Addr. Target Addr.
Branch-Inst. Addr. Target Addr.
BTB (Branch Target Buffer) NotTakenPC
Write Address
Tag Check Result
WP
I-Cache
Miss?
valid flag n way pointers
Taken
Valid== 0
検索履歴テーブル
分岐予測結果
検索履歴レジスタ
前 PC 保存用レジスタ
前分岐予測結果
WPレジスタ
モード制御
検索履歴テーブルのエントリ
HBL キャッシュー 動作(検索記録モード) ー
Branch-Inst. Addr. Target Addr.
Branch-Inst. Addr. Target Addr.
BTB (Branch Target Buffer)
検索履歴テーブル
NotTaken
分岐予測結果
検索履歴レジスタ
前 PC 保存用レジスタ
PC
前分岐予測結果
WPレジスタ
Write Address
Tag Check Result
WPモード
制御
valid
I-Cache
Miss?
検索履歴テーブルのエントリ
valid flag n way pointers
Taken
BTB Hit!
HBL キャッシュー 動作モード ー
検索省略モード:ウェイ・ポインタ( WP) レジスタに格納された WP の値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索を行う.ただし,検索履歴レジスタ (Look-up History Reg.) にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.タグ比較結果の記録は行わない.
HBL キャッシュー 動作モード ー
検索省略モード:ウェイ・ポインタ( WP) レジスタに格納された WP の値に従って、キャッシュはウェイ選択を行う.
検索記録モード:従来型キャッシュと同様にウェイ検索を行う.ただし,検索履歴レジスタ (Look-up History Reg.) にタグ比較結果(ヒット・ウェイ番号)を記録する.
通常モード:従来型キャッシュと同様にウェイ検索を行う.タグ比較結果の記録は行わない.
Ecache = Tnum×Etag_acc + Lnum×Eline_acc
省略 0
( 連想度が4の場合 )
1記録 / 通常4 4
従来型 4 4
HBL キャッシュー 動作モード遷移 ー
省略モード
通常モード 記録モード
CONDtoNM
CONDtoNM
WP 書込みオーバフロー
WP 読出しオーバフロー
BTB ヒットValid==1
Valid==0
CONDtoNM :命令キャッシュ・ミス orBTB リプレースメント or分岐予測ミスからの復帰 orRAS アクセス
BTB ヒット時に省略モードか記録モードかを決定キャッシュ・ミス発生時には全ての valid フラグ
をリセット (記録したタグ比較結果を無効化)
HBL キャッシュー 利点と欠点のまとめ ー
•利点:タグ比較結果の再利用により無駄なウェイ・
アクセ スを回避して低消費エネルギー化(省略モード時)•欠点:
記録モードや通常モード時には従来型と同じ数の タグ / ライン・サブアレイを活性化
BTB 拡張に伴う消費エネルギー・オーバヘッド記録したタグ比較結果の無効化処理時における CPU からの BTB アクセス禁止(ストール発生) タグ比較結果の検索履歴テーブル書込み時にお
ける CPU からの BTB アクセス禁止(ストール発生)
評価ー評価環境ー
099.go, 124.m88ksim, 126.gcc, 129.compress,130.li, 132.ijpeg
102.swim
mpeg2encode, mpeg2decode, adpcm_enc, adpcm_dec
SPECint95
SPECfp95
Mediabench
Benchmark Programs
*) M.B.Kamble and K.Ghose, ”Analytical Energy Dissipation Models For Low Power Caches,” ISLPED97
SimpleScalar によるサイクル・ベース・シミュレーション
16KB の 4 ウェイ・セットアソシアティブ・キャッシュを想定BTBアクセスは分岐(又はジャンプ)実行時の
み発生消費エネルギーに関しては Kamble のモデル * を
使用BTB拡張に伴う消費エネルギー・オーバヘッドも含む
評価ー実験結果ー
099.go 126.gcc 130.li 102.swim adpcm(d) mpeg2(d) 124.m88ksim 129.comp. 132.ijpeg adpcm(e) mpeg2(e)
1.2
1.0
0.8
0.6
0.4
0.2
0.0
1.2
1.0
0.8
0.6
0.4
0.2
0.0
No
rmal
ized
En
erg
y (J
ou
le) N
orm
alized E
xe. Tim
e (cycle)
62%62% 0.2%0.2%# of WPs = 4
評価ー WP 数が消費エネルギーに与える影響 ー
1.0
0.8
0.6
0.4
0.2
0.0
No
rmal
ized
En
erg
y (J
ou
le)
Energy Overhead at BTBEnergy for Cache Access
1 2 4 8 16 32 1 2 4 8 16 32
# of Way Pointer
w/ Pre-Decodingw/ Pre-Decoding126.gcc
w/o Pre-Decodingw/o Pre-Decoding
評価ー連想度が消費エネルギーに与える影響ー
0.E+001.E+062.E+063.E+064.E+065.E+066.E+067.E+068.E+06
En
erg
y (J
ou
le)
Eothers EtagEdata,blEdata,prectlConventional HBL Cache
Associativity
mpeg2decode
0.8um CMOS* **
*) M.B.Kamble and K.ghose, “Energy-Efficiency of VLSI Caches: A Comparative Study,” 10 th 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 4 8 16 32 64 1 2 4 8 16 32 64
評価ー他方式との比較ー
099.go 126.gcc 130.li 102.swim adpcm(d) mpeg2(d) 124.m88ksim 129.comp. 132.ijpeg adpcm(e) mpeg2(e)
0.1
0.0
No
rmal
ized
Tag
-Co
mp
are
Co
un
t
0.2
0.3
0.4
0.5
0.6
0.7
0.8
ITC:Interline Look-up CacheHBLC:History-Based Look-up CacheITC+HBLC
おわりに
セット・アソシアティブ命令キャッシュの低消費電力化を目的としたキャッシュ・アーキテクチャを提案
2%の性能低下をもたらすだけで最大62%のキャッシュ・アクセス消費エネルギーを削減
性能ならびに消費エネルギーに関する詳細な評価・解析
今後の予定実設計に基づくより詳細な消費エネルギーの評価
Backup Slides
評価ー WP 数が消費エネルギーに与える影響
(1/2) ー
1.0
0.8
0.6
0.4
0.2
0.0
No
rmal
ized
En
erg
y (J
ou
le)
Energy Overhead at BTBEnergy for Cache Access
w/ Pre-Decodingw/ Pre-Decoding
1 2 4 8 16 32 1 2 4 8 16 32
# of Way Pointer
132.ijpegw/o Pre-Decodingw/o Pre-Decoding
評価ー WP 無効化が性能に与える影響ー
0
0.5
1
1.5
2
2.5
3
1 2 4 8 16 32
No
rmal
ized
Exe
. T
ime
(c
ycle
)
WP Invalidation Penalty (cycle)
126.gcc126.gcc
099.go099.go
mpeg2(d)mpeg2(d) 132.ijpeg132.ijpeg
0%10%20%30%40%50%60%70%80%90%100%
099.go 126.gcc 130.li 102.swim adpcm(d) mpeg2(d) 124.m88ksim 129.comp.132.ijpeg adpcm(e) mpeg2(e)
Cache Miss Cache Miss PenaltyPenalty
Bre
akd
ow
n o
f W
P invalid
ati
ons
BTB ReplacementCache MissBTB ReplacementCache Miss
評価ー連想度が消費エネルギーに与える影響ー
0.E+00
5.E+06
1.E+07
2.E+07
2.E+07
3.E+07
3.E+07
En
erg
y (J
ou
le)
Eothers EtagEdata,blEdata,prectl
Conventional HBL Cache
1 2 4 8 16 32 64
Associativity
099.go
0.8um CMOS* **
*) M.B.Kamble and K.ghose, “Energy-Efficiency of VLSI Caches: A Comparative Study,” 10 th 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 4 8 16 32 64
評価ー連想度が消費エネルギーに与える影響ー
0.E+00
1.E+07
2.E+07
3.E+07
4.E+07
5.E+07
6.E+07
En
erg
y (J
ou
le)
Eothers EtagEdata,blEdata,prectl
Conventional HBL Cache
Associativity
132.ijpeg
0.8um CMOS* **
*) M.B.Kamble and K.ghose, “Energy-Efficiency of VLSI Caches: A Comparative Study,” 10 th 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 4 8 16 32 64 1 2 4 8 16 32 64
評価ー連想度が消費エネルギーに与える影響ー
0.E+00
1.E+07
2.E+07
3.E+07
4.E+07
5.E+07
6.E+07
7.E+07
En
erg
y (J
ou
le)
Eothers EtagEdata,blEdata,prectl
Conventional HBL Cache
Associativity
126.gcc
0.8um CMOS* **
*) M.B.Kamble and K.ghose, “Energy-Efficiency of VLSI Caches: A Comparative Study,” 10 th 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 4 8 16 32 64 1 2 4 8 16 32 64
評価ー WP 数が消費エネルギーに与える影響
(1/2) ー
1.0
0.8
0.6
0.4
0.2
0.0
No
rmal
ized
En
erg
y (J
ou
le)
Energy Overhead at BTBEnergy for Cache Access
126.gcc126.gcc 132.ijpeg132.ijpeg
1 2 4 8 16 32 1 2 4 8 16 32
# of Way Pointer
w/ Pre-Decoding(BTB access occurs only at branch, or jump, executions)
評価ー WP 数が消費エネルギーに与える影響
(2/2) ー
1.0
0.8
0.6
0.4
0.2
0.0
No
rmal
ized
En
erg
y (J
ou
le)
Energy Overhead at BTBEnergy for Cache Access
126.gcc126.gcc 132.ijpeg132.ijpeg
1 2 4 8 16 32 1 2 4 8 16 32
# of Way Pointer
w/o Pre-Decoding(BTB access occurs for all instructions)