high-performance low-power cache memory architectures
DESCRIPTION
High-Performance Low-Power Cache Memory Architectures. ( 高性能 / 低消費電力キャッシュメモリ・アーキテクチャ ). 九州大学大学院 システム情報科学研究科 情報工学専攻 博士後期課程 3 年. 井上 弘士. 論文の構成. 第 1 章:背景と目的 第 2 章:メモリシステム性能と消費電力 第 3 章:ウェイ予測セット・アソシアティブ・キャッシュ 第 4 章:ヒストリ・ベース・タグ比較キャッシュ 第 5 章:可変ラインサイズ・キャッシュ 第 6 章:まとめと今後の課題. 演算処理. データの記憶. +. - PowerPoint PPT PresentationTRANSCRIPT
High-Performance Low-Power High-Performance Low-Power Cache Memory ArchitecturesCache Memory Architectures
井上 弘士
( 高性能 / 低消費電力キャッシュメモリ・アーキテクチャ )
九州大学大学院 システム情報科学研究科 情報工学専攻博士後期課程 3 年
論文の構成
第 1 章:背景と目的第 2 章:メモリシステム性能と消費電力第 3 章:ウェイ予測セット・アソシアティブ・キャッシュ第 4 章:ヒストリ・ベース・タグ比較キャッシュ第 5 章:可変ラインサイズ・キャッシュ第 6 章:まとめと今後の課題
はじめにコンピュータ・システムの高性能化
CPU 性能 メモリシステム性能
演算処理 データの記憶
CPU DRAM+
プロセッサーメモリ間性能差の隠蔽
オンチップ・キャッシュの搭載
CPU DRAM+
演算処理 データの記憶
Cache Memory
データの記憶
メモリ参照の時間的 / 空間的局所性を活用
キャッシュ・メモリとは?
CPU Main Memory
CPU Cache Main Memory
メモリ参照の局所性時間的局所性:メモリ上のある項目が参照されると、間もなくそれが再び参照される確率が高い、という性質空間的局所性:メモリ上のある項目が参照されると、その近くの項目も間もなく参照される確率が高い、という性質 ヘネシー&パターソン コンピュータ・アーキテクチャ
CPU について調べたい!
並列
処理
マシ
ン
富田
・末
吉
著
マイ
クロ
・コ
ンピ
ュー
タ
田丸
・安
浦
著
スー
パス
カラ
・プ
ロセ
ッサ
村上
監
訳
キャッシュ・メモリの利点
CPU CacheCache Main Memory小容量
高速アクセス低消費エネルギ
小容量高速アクセス
低消費エネルギ
大容量低速アクセス
高消費エネルギ
メモリ参照の局所性により、多くのメモリアクセスがキャッシュ・メモリで完結!
ダイレクト・マップ・キャッシュMemory
000000000100010000110010000101001100011101000010010101001011011000110101110011111000010001100101001110100101011011010111
MemoryAddress
TagIndex
Cache
000001010011100101110111
Tag Index Offset
CPU から発行されたメモリ参照アドレス
=? MUX
一致ならヒット!
IndexTag Line
ダイレクト・マップ・キャッシュ
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
本研究の動機 (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”, I S LPED’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
ワークステーション
→ メモリ参照の振る舞いを静的に予測しにくい
→ オブジェクト・コードの互換性を保つことは重要
本研究における戦略 (1/3)
目標:高性能かつ低消費エネルギなメモリシステムを 構築するためのキャッシュ・アーキテクチ
ャを実現
手段:不必要な処理を削除
How?
本研究における戦略 (2/3)
手段:ハードウェアによる動的最適化
How?
要求:オブジェクト・コードの互換性を保ち、かつ、
様々なプログラム特性に対応
本研究における戦略 (3/3)
1. メモリ参照パタン ( ヒストリ )を採取
動的最適化により無駄な処理を削除
2. キャッシュ内部処理結果を予測3. 必要のない処理を削除
How?
Predict and Eliminate!
提案キャッシュ・アーキテクチャウェイ予測セット・アソシアティブ・キャッシュ ( 第 3 章 )
・不必要なウェイアクセスを削除
ヒストリ・ベース・タグ比較キャッシュ ( 第 4 章 )
・不必要なタグ比較処理を削除
動的可変ラインサイズ・キャッシュ ( 第 5 章 )
・不必要なデータ・リプレイスを削除
メモリシステム性能と消費エネルギ
平均メモリアクセス時間 (AMAT)= TCache + CMR * 2 * TMainMemory
平均メモリアクセス消費エネルギ (AMAE)= ECache + CMR * 2 * EMainMemory
提案キャッシュの効果
MainMemory
Time Energy
Cache
Time EnergyCMR
WPWP
HTCHTC
DVLSDVLS
WP: ウェイ予測セット・アソシアティブ・キャッシュHTC: ヒストリ・ベース・タグ比較キャッシュDVLS: 動的可変ラインサイズ・キャッシュ
第 3 章
ウェイ予測セット・アソシアティブウェイ予測セット・アソシアティブキャッシュ・アーキテクチャキャッシュ・アーキテクチャ
MainMemory
Time Energy
Cache
Time EnergyCMR
10% 70%従来型 4 ウェイ SA キャッシュと比較
従来型キャッシュの動作
Step3. タグ比較一致(ヒット) 不一致(ミス)
Step4.参照データをサービス後、 アクセスを終了
Step4.アクセスを終了後、 ラインのリプレイス
Step1. アドレス・デコード
Step2.全ウェイにおけるタグと ラインを同時読み出し
タグ・サブアレイ ライン・サブアレイウェイ 0 1 2 3
タグ
各キャッシュの動作ー従来型-
CPU Cache
並列処理マシン 富田・末吉 著
スーパスカラ・プロセッサ
村上 監訳
動作原理、または、並列処理に関する本の場所スーパスカラについて調べたい!
Way-0 Way-1
本の確認(タグ比較)
本を開く(ライン読出し)
本の確認(タグ比較)
本を開く(ライン読出し)
これだ!
不一致(ミス)
段階型キャッシュの動作ライン読み出しを遅らせることによる省エネルギー化
フェーズ 1
性能を犠牲にする事で性能を犠牲にする事で低消費エネルギー化を達成低消費エネルギー化を達成
Step1. 参照アドレスのデコード
Step2.全ウェイにおけるタグ読み出し
Step3. タグ比較
Step4. アクセス終了後、 ラインのリプレイス
一致(ヒット)
Step4.ヒットしたラインだけを読み出しフェーズ2
Step5.参照データをサービス後、 アクセスを終了
CPU Cache
並列処理マシン 富田・末吉 著
スーパスカラ・プロセッサ
村上 監訳
動作原理、または、並列処理に関する本の場所スーパスカラについて調べたい!
Way-0 Way-1
本の確認(タグ比較)
本の確認(タグ比較)
本を開く(ライン読出し)
これだ!
各キャッシュの動作ー段階型-
WP キャッシュー基本概念ー
段階型キャッシュ → ヒット時の性能を犠牲に!
高性能 / 低消費エネルギー化を実現するためには…•タグとラインの同時読み出しによる高速化
•無駄なウェイ・アクセスの回避による省エネルギー化
の相反する要求を同時に満足する必要あり!
従来型〇 段階型 ×
従来型 × 段階型〇
キャッシュ・アクセス前に、参照データが存在するウェイを予測ウェイ予測型キャッシュウェイ予測型キャッシュ
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 においていたので、こ
れだ!
各キャッシュの動作ーウェイ予測型-
あ、違った!
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)
実験的評価 ーウェイ予測ヒット率ー
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.04Average 95.873.49 0.6286.34 9.41 4.25
BenchmarksI-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)
おわりに (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 分岐命令のアドレス
実行フロー
ヒストリ・ベース・タグ比較- コンセプト (1/2) -
命令キャッシュ・アクセスでは極めて高いヒット率→ほとんどのタグ比較結果は一致
従来のキャッシュではアクセスごとにタグ比較を実行
タグ比較を行う事無しに参照命令がキャッシュ中に存在するか否かを判定可能?
→ タグ比較に要するエネルギーを毎サイクル消費
にも関わらず...
→ タグ比較処理を省略して低消費電力化を実現!
ヒストリ・ベース・タグ比較- コンセプト (2/2) -
事実 1 :命令キャッシュのヒット率は極めて高い→ キャッシュ内容の更新は稀にしか発生しない
事実 2 :プログラムはループ構造に基づく→ 動的基本ブロックは繰り返し実行される
ある動的基本ブロックの実行において、•過去に実行された事があり、かつ、•その時から現在までに 1度もミスが発生していないならば、タグ比較処理を省略可能!
従来型とヒストリ・ベース型の比較ー従来型ー
CPUCache
マイクロ・コンピュータ 田丸・安浦 著
動作原理について調べ
たい!
動作原理に関する本の場所 本の確認(タグ比較)
本を開く(ライン読出し)
CPU Cache
マイクロ・コンピュータ 田丸・安浦 著
もう1度、動作原理について調べ
たい!
動作原理に関する本の場所 本の確認(タグ比較)
本を開く(ライン読出し)
従来型とヒストリ・ベース型の比較ーヒストリ・ベース型ー
CPUCache
マイクロ・コンピュータ 田丸・安浦 著
動作原理について調べ
たい!
動作原理に関する本の場所 本の確認(タグ比較)
本を開く(ライン読出し)
CPU Cache
マイクロ・コンピュータ 田丸・安浦 著
もう1度、動作原理について調べたい!さっき調べたから、まだあるはずだ!
もう1度、動作原理について調べたい!さっき調べたから、まだあるはずだ!
動作原理に関する本の場所 本を開く(ライン読出し)
X
?
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
$
TCO
Tag-Comparisonis Omitted
Prediction Result
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
EFT EFN TCO
1-C
実行フロー
BTB 内部状態
時刻( インタレーション番号 - 分岐命令のアドレス )
BTB エントリ ( 分岐命令 )
ヒストリ・ベース・タグ比較- 動作例 -
Top
Branch to F
Branch to A
Branch to A
Top
A
B
C
D
F
1234 567
IterationCount
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
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!
ヒストリ・ベース・タグ比較- 動作例 -
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!
ヒストリ・ベース・タグ比較- 動作例 -
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-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-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!
ヒストリ・ベース・タグ比較- 動作例 -
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
ヒストリ・ベース・タグ比較- 動作例 -
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-D
Omitting!
ヒストリ・ベース・タグ比較- 動作例 -
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
評価ーハードウェア構成ー
評価- 実験結果 -
No
rma
lize
d T
ota
l Cou
nt o
f T
ag-
Com
pari
son
s
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%
高メモリバンド巾の活用
ラインサイズミス・ペナルティ
ラインサイズミス・ペナルティ
Processor Cache
Main Memory
(On-Chip SRAM)
(Off-Chip DRAM)
Processor Cache
(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.08.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.08.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! 並列処理マシン
つまり...ーラインサイズが大きく、空間的局所性が高い場合ー
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
動的可変ラインサイズ・キャッシューコンセプト-
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
動的可変ラインサイズ・キャッシュー内部構成-
ダイレクト・マップ 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) ー
No
rma
lize
d C
ach
e M
iss
Ra
tes
to th
e R
esu
lt o
f Be
st F
ixe
d-L
ine-
Siz
e
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) ー
No
rma
lize
d C
ach
e M
iss
Ra
tes
to 1
6K
B F
IX12
8
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
評価ー平均ライン・サイズー
Ave
rag
e C
ach
e L
ine
-Siz
e [b
yte
]
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*
EMai
nMem
ory
to 1
6KB
FIX1
28
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 の性能 / 消費エネルギ特性が与える影響を調査ラインサイズ指定フラグ・テーブルのサイズが与える影響を調査
第 6 章
まとめと今後の課題
本論文では (1/2)
動的適応可能な高性能 / 低消費電力キャッシュ・アーキテクチャ
• ウェイ予測セット・アソシアティブ・キャッシュ• ヒストリ・ベース・タグ比較キャッシュ• 動的可変ラインサイズ・キャッシュ
1. メモリ参照パタン ( ヒストリ ) を採集2. キャッシュ内部処理結果を予測3. 必要のない処理を削除
本論文では (2/2)
WP
HTC
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
MainMemory
Time Energy
Cache
Time EnergyCMR
WP+DVLSWP+DVLS
HTC+DVLSHTC+DVLS
WP: ウェイ予測セット・アソシアティブ・キャッシュHTC: ヒストリ・ベース・タグ比較キャッシュDVLS: 動的可変ラインサイズ・キャッシュ
I- or D-Cache
I-Cache
提案キャッシュの組み合わせ (2/2)
今後の研究課題 大規模化、複雑化するオンチップ・キャッシュ
• 大容量化と高速化の両立 ( 高性能 )• メモリセル・リーク電流 ( 低消費電力 )• 欠陥救済 ( 低コスト、高信頼性 )• 設計検証(低設計コスト、高信頼性)
最適化アプローチ
HW による動的最適化
SW による動的最適化
SW による静的最適化
本研究
Buck Up Slides(Introduction)
プロセッサーメモリ間の性能差CPU60%/yr.
DRAM7%/yr.
1
10
100
10001980
1981
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
1982
Per
form
ance
Year
Performance GapPerformance Gap
D. Patterson et al.,”A Case for Intelligent RAM,” IEEE Micro, vol.17, no.2, March/April 1997.
提案キャッシュ・アーキテクチャ (2/4)
MainMemory
Time Energy
Cache
Time EnergyCMR
WPWP
HTCHTC
DVLSDVLS
WP: ウェイ予測セット・アソシアティブ・キャッシュHTC: ヒストリ・ベース・タグ比較キャッシュDVLS: 動的可変ラインサイズ・キャッシュ
評価ー WP キャッシュ vs. DVLS キャッシュー
FIX128FIX128
W2FIX128
W4FIX128Double
P128W4
WP128WP128W4W4
DVLSDVLS128-32128-32
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
評価ー平均メモリアクセス時間ー
No
rma
lize
d A
MA
T 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
評価ー平均メモリアクセス時間ー
No
rma
lize
d A
MA
T 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
評価ー平均メモリアクセス消費エネルギー
No
rma
lize
d A
MA
E 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
No
rma
lize
d A
MA
E to
FIX
128
0
0.5
1
1.5
FIX128W2FIX128W4FIX128Double
P128W4WP128W4DVLS128-32
評価ー ED 積 (AMAT * AMAE) -
No
rma
lize
d A
MA
E 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) -
No
rma
lize
d A
MA
E 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
評価ー平均メモリアクセス時間ー
評価ー平均メモリアクセス消費エネルギー
Buck Up Slides(Way-Predicting Set-Associative Cache)
WP キャッシュ -基本概念ー
キャッシュ・アクセス前に、参照データが存在するウェイを予測ウェイ予測型キャッシュウェイ予測型キャッシュ
キャッシュ・ヒットの場合、唯一のウェイのみが参照データを有する
つまり...
残りのウェイ・アクセスは無意味!
評価 ー概要ー
従来型段階型ウェイ予測型
評価対象•キャッシュ・サイズ → 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.4
Nor
mal
ized
Tca
che
Nor
mal
ized
Eca
che
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
評価 ーキャッシュ消費エネルギ ー
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
0
Nor
mal
ized
Res
ult
s (%
)
Ecache Tcache
100
200
0
Nor
mal
ized
Res
ult
s (%
)
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 による参照アドレス計算と ウェイ予測フラグ読み出しの逐次処理
参照アドレス生成 + ウェイ予測フラグ読み出し
Buck Up Slides(History-based Tag-Comparison Cache)
低消費電力キャッシュ- Esram_tag/data の削減 -
メモリ階層 (L0 キャッシュ ) の追加
L1 Cache
L0 CacheProcessor
•フィルタ・キャッシュ•S- キャッシュ•ブロック・バッファリング
キャッシュ・モジュールの分割Cache•MDM キャッシュ
マルチプル・アクセス・キャッシュ•MRU キャッシュ•ハッシュ・リハッシュ・キャッシュ
Sequential Way-Access
way
0
way
1
way
2
way
3
低消費電力キャッシュ- Esram_data の削減 -
水平方向へのメモリ分割•キャッシュ・サブバンキング
シーケンシャル・アクセス•シーケンシャル・アクセス・キャッシュ•パイプライン・キャッシュ
Tag Line
Tag Line
Hit!Miss!
Replace
低消費電力キャッシュ- Esram_tag の削減 -
条件付きタグ比較 ( タグ比較回数の削減 )
•インターライン・タグ比較
イントラライン・シーケンシャル・フロー連続アドレス、かつ、同一キャッシュ・ライン
イントラライン・ノンシーケンシャル・フロー非連続アドレス、かつ、同一キャッシュ・ライン
インターライン・シーケンシャル・フロー連続アドレス、かつ、異なるキャッシュ・ライン
インターライン・ノンシーケンシャル・フロー非連続アドレス、かつ、異なるキャッシュ・ライン
連続して実行される命令 i と j の関係
インターライン・フロー時のみ命令 j のタグ比較を実行
低消費電力キャッシュ- 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)
Bre
akd
own
of E
ne
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_bit Esram_tag_bit
Esram_others
This calculation is based on Kamble, et. Al., “Analytical energy Dissipation Models for Low Power Caches”, I S LPED’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
Report
Total # of tag-comparison
8 integer and 5 FP programs from the SPEC95
評価ー評価対象 (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.909
9.go
124.
m88
ksim
129.
com
pres
s
126.
gcc
130.
li
132.
ijpeg
134.
perl
147.
vort
ex
102.
swim
107.
mgr
id
110.
appl
u
125.
turb
3d
141.
apsi
IL-TCH-TCH-TCidealHIL-TC
No
rma
lize
d T
ota
l Cou
nt o
f T
ag-
Com
pari
son
s
評価- 評価対象 (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 の組み合わせ )
•全てのプログラムにおいて高い削減率
低消費電力キャッシュ- インターライン・タグ比較方式 -
インターライン・フロー時のみ命令 j のタグ比較を実行
同一ライン 異なるライン
イントラライン・フローインターライン・フロー
インター・ラインイントラ・ラインThis Work
Our Work
連続して実行される命令 i と j
評価- 実験結果 (1/2) -
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.909
9.go
124.
m88
ksim
129.
com
pres
s
126.
gcc
130.
li
132.
ijpeg
134.
perl
147.
vort
ex
102.
swim
107.
mgr
id
110.
appl
u
125.
turb
3d
141.
apsi
IL-TCH-TCHIL-TC
No
rma
lize
d T
ota
l Cou
nt o
f T
ag-
Com
pari
son
s
評価- 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
No
rma
lize
d T
ota
l Cou
nts
of
Ta
g-C
ompa
riso
n
BTB連想度が与える影響 (BTB サイズは一定 )
2way8way32way128way512way2048wayH-TCIdeal
評価- 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
No
rma
lize
d T
ota
l Cou
nts
of
Ta
g-C
ompa
riso
n
命令キャッシュ・サイズが与える影響
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 回のタグ比較( タグメモリ・アクセスおよび比較 )
評価- エネルギー・オーバヘッド
(3/4) -
実行足跡の一括消去
0123456789
10
099.
go
124.
m88
ksim
129.
com
pres
s
126.
gcc
130.
li
132.
ijpeg
134.
perl
147.
vort
ex
102.
swim
107.
mgr
id
110.
appl
u
125.
turb
3d
141.
apsi
0.10.090.080.070.060.050.040.030.020.010.00A
ve. #
of E
rase
d F
oo
tpri
nts
p
er E
rase
-Pro
cess
[bit]
Ave. # o
f Era
sed F
oo
tprints
per I-fetch [b
it]
評価- HW制約による影響 (4/4)
-
BTB 拡張に伴うエネルギー・オーバヘッドは無視できる程度に小さい
•BTB における実行足跡の読出し /書込み
•BTB における実行足跡の一括消去
従来のタグ比較方式→命令フェッチ毎にタグ比較 ( タグメモリ・アクセスと比較 )
ヒストリ・ベース・タグ比較方式
→命令フェッチ当たり 0.2ビットの読出し /書込み
→命令フェッチ当たり 0.1ビットの消去
Buck Up Slides(Variable Line-Size Cache)
DRAM/ ロジック混載 LSI
•高オンチップ・メモリバンド巾の活用による高性能化•外部入出力ピン駆動回数の削減による低消費電力化
CPU-主記憶間の I/O ピン削除による恩恵
高性能化と低消費電力化を両立できる夢のデバイス !?
どのようなアプリケーションに対しても有効なのか ?もし有効でないなら、
様々なアプリケーションに対応するには ?
評価 ー実験環境-
CacheSimulatorCacheSimulator
BenchmarkProgram
ObjectCode
ObjectCode
Compile(GNU CC) QPT
RUN AddressTrace
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
Hardware OverheadCacheModel
SRAM [bit] Logic [Tr] Total [Tr]
FIX32
FIX64
FIX128
D-VLSD-VLS128-32LSS1128-32LSS1
D-VLSD-VLS128-32LSS8128-32LSS8
140,288
135,680
133,376
140,800140,800
140,800140,800
8,354
11,310
17,988
33,17233,172
21,20821,208
78,498
79,150
84,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
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 Size
32 bytes64 bytes128 bytes
AverageLine-Size
026.compress
3,164,502243,97914,498
34.68 B
052.alvinn
11,546,4151,465,880
18,806,730
90.22 B
54.5B
128B128B128B
Ave
. L
ine-
Siz
e
Fix128Fix128W4Fix128doubleD-VLS128-32
性能評価 ー 性能モデル -
( 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.0
0.50.830.82
1.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
性能 / 消費エネルギー評価 ー 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
Fre
qu
ency
(M
Hz)
Year
プロセッサーメモリ間の性能差( 動作周波数 )
動的可変ラインサイズ・キャッシュー効果ー
TMemory = CacheHitTime + MissRate×MissPenaltyEMemory = ECache + MissRate×EMain
ラインサイズの縮小によりコンフリクト・ミスの発生を回避→ アクセス時間オーバヘッドを伴う事無くヒット率を向上
ラインサイズに対応したオンチップ DRAM選択的アクセス→主記憶アクセスにおける消費エネルギーの削減
動的可変ラインサイズ・キャッシュー評価ー
1.5
0.0
1.0
0.50.800.81
1.071.00
Fix128Fix128W4Fix128doubleD-VLS128-32
平均メモリアクセス時間 (AMAT)
0.29
0.58
0.32
1.001.0
0.0
0.60.40.2
0.8Fix128Fix128W4Fix128doubleD-VLS128-32
主記憶アクセス消費エネルギー (CMR×EMain)
Performance Evaluations -Average memory access time-
13
Energy Evaluations -Average memory access energy-
14
Total Evaluations -Energy-Delay Product-
15