Transcript PowerPoint

非レイテンシ指向
レジスタ・キャッシュ・システム
名古屋大学大学院 工学研究科
塩谷 亮太
非レイテンシ指向
レジスタ・キャッシュ・システム
 レジスタ・ファイル(RF)の巨大化
 L1キャッシュに匹敵
 問題:面積,複雑さ,遅延,電力と熱・・・
 レジスタ・キャッシュ(RC)
 目的:巨大なRF による問題の解決
 しかし・・・
 多くの場合はミスによって性能が下がってしまう
 “速くない”レジスタ・キャッシュによる,問題の解決
 “速い”RC よりも高速に
 2.1%の性能低下で,24.9%まで回路面積を削減
 応用により,タイミング・エラー耐性を向上
2
背景 - レジスタ・ファイルの巨大化
 近年,スーパスカラ・プロセッサのRFは巨大化する傾向に
1.
エントリ数が増える
2.
ポート数が増える
3
背景 - レジスタ・ファイルの巨大化
1.
エントリ数が増える
 Out-of-Order スーパスカラ・プロセッサ
 In-flight な命令数に応じたエントリが必要
 マルチスレッド・プロセッサ
 マルチスレッディング
 色々な遅延を隠蔽する,有効な方法
 最大の問題:
 スレッド数に応じたエントリ数が必要
4
背景 - レジスタ・ファイルの巨大化
2.
ポート数が増える
 RF は非常に多ポートのSRAM によって構成される
 発行幅に応じたポート数が必要
 4命令同時発行なら,12ポート
 (Src 2 + Dst 1) × 4 = 12
 SRAM の面積は,ポート数の2乗に比例
⇒容量に対し,非常に大きな回路となる
5
SRAM(1bit)の回路レイアウト
12 port
2 port
6
背景 - レジスタ・ファイルの巨大化
1.
エントリ数が増える
2.
ポート数が増える
 L1 キャッシュに匹敵する大きさに
7
Pentium4 の整数実行コア
ALU
L1 Data cache
(16KB 1R/1W ports)
( http://www.chip-architect.com より転載)
Register file
(64bit 144entries 6R/3W ports)
8
レジスタ・ファイルの巨大化による問題
1.
消費電力や熱の増大
 消費電力は面積に比例
 動作周波数を上げられなくなる
2.
アクセス・レイテンシの増大
 RF はL1$ と同等のレイテンシを持つ
 2~3段にパイプライン化されるのが普通
 バイパス・ロジックの複雑化
 IPC の低下
3.
チップコストの増大
4.
周辺回路への影響
9
Pentium4 のチップ上熱密度マップ
 レジスタ・ファイル近傍は,非常に熱い
( A 9-GHz 65-nm Intel® Pentium 4 Processor Integer Execution Unit より転載)
10
レジスタ・キャッシュ
 目的:
 巨大なレジスタ・ファイルによる問題の解決
 レジスタ・キャッシュ:
 小容量の高速なバッファ
 メイン・レジスタ・ファイルの一部をキャッシュ
 ミス・ペナルティによって,性能が下がってしまう
 8 entry RC system の場合, 20.9%IPCが低下
11
研究目的
 レジスタ・ファイルの回路面積の削減
 “速くない”レジスタ・キャッシュによって実現
 提案するRC は,レイテンシを短縮しない
 “速い”RC よりも速い
 タイミング・エラー耐性の向上:
 性能を落とさずに,書き込みに時間をかける
 面積削減そのものの効果
12
目次
1.
既存手法 :LORCS
レイテンシ指向レジスタ・キャッシュ・システム
2.
提案手法:NORCS
非レイテンシ指向レジスタ・キャッシュ・システム
3.
評価
13
レジスタ・キャッシュ
 レジスタ・キャッシュ(RC)
 小容量の高速なバッファ
 メイン・レジスタ・ファイル(MRF)の一部をキャッシュ
14
レジスタ・キャッシュ・システム
Out of pipelines
Main Register File
Write Buffer
Register cache
Instruction
Window
ALUs
 以下のものを含むシステム :
 レジスタ・キャッシュ
 メイン・レジスタ・ファイル
 パイプライン・ステージ
15
レイテンシ指向レジスタ・キャッシュ・システム
 2つの異なる RC システム
1.
レイテンシ指向 : 既存手法
2.
非レイテンシ指向 : 提案手法
 LORCS : Latency-Oriented-Register Cache System
 通常,“レジスタ・キャッシュ”と言う場合,これを指す
 提案手法との区別のため
16
レイテンシ指向レジスタ・キャッシュ・システム
 ヒットを仮定したパイプライン
 全ての命令は,RC にヒットするものとしてスケジューリング
 通常のキャッシュと同様の構成:
 ヒットした場合
 1サイクルでアクセス可能なRF と等価に
 ミスした場合,パイプラインはストール(ペナルティ)
17
LORCS の挙動
I1 :
IS
I2 :
I3 :
Miss
I4 :
cycle
CR
CR
EX CW
IS
CR
CR
RR
RR
EX CW
IS
CR
Stall
CR
EX CW
IS
CR
CR
EX CW
IS
CR
CR
I5 :
 ミス時はバックエンドをストールさせる
 その間にMRF にアクセス
EX CW
CR
CR
RC Read
CW
CW RC Write
RR
RR
MRF Read
18
ミス・ペナルティ
 RC ミス時は,プロセッサのバックエンドをストールさせる
 OoO スーパスカラ・プロセッサは,長いレイテンシの命令を選択的に
遅らせる事が可能
 RC ミス時にも同じ事ができるのでは?
 RC ミスを起こした命令を選択的に遅らせる事は困難
 パイプラインのNon-re-schedulability
19
パイプラインのNon-re-schedulability
Out of pipelines
I0 misses
RC
Main Register File
Write Buffer
Register cache
Instruction Window
I0
I2
I4
ALUs
I1
I3
I5
 命令は,パイプライン中では再スケジュールできない
20
LORCS の目的
1.
レイテンシの短縮:
 理想的には,RF のパイプライン化によって生じる全ての問題を解
決できる
1. 予測ミス・ペナルティの削減
2. 資源の早期解放
3. バイパス・ネットワークの簡略化
2.
MRF のポート数の削減
21
MRF のポート数の削減
Main Register file
Register file
Register cache
ALUs
ALUs
 RCミスを起こした命令のみが MRFにアクセス
 MRF を少ポートに
 MRF の面積の削減
 RAM の回路面積は,ポート数の2乗に比例
22
目次
1.
既存手法 :レイテンシ指向レジスタ・キャッシュ・システム
LORCS : Latency-Oriented Register Cache System
2.
提案手法:非レイテンシ指向レジスタ・キャッシュ・システム
NORCS : Non-latency-Oriented Register Cache System
3.
評価
23
非レイテンシ指向レジスタ・キャッシュ・システム
 NORCS もまた,
 RCやMRF,パイプラインによって構成
 LORCS と同様の構成
 LORCS と同様にして,回路面積を削減
 重要な違い:
 NORCS は,MRF へのアクセス・ステージを持つ
 NORCSは,LORCSよりも速い
24
NORCS は,MRF への
アクセス・ステージを持つ
Out of pipelines
MRF
RC
IW
LORCS:
ALUs
MRF
RC
IW
NORCS:
ALUs
 物理的な違いは小さいが,性能に大きな影響を与える
25
NORCS のパイプライン
 ミスを仮定したパイプライン
 NORCS は,MRF へのアクセス・ステージを持つ
 全ての命令は,ヒット/ミスに関わらずミス時と同じだけ待つ
 キャッシュではある・・・しかし,
 速くない
26
ミスを仮定したパイプライン
I1 :
IS
IS
I2 :
I3 :
RC hit
I4 :
I5 :
CR
CR
RR
RR
CR
CR
RR
RR
RR
RR
IS
EX CW
RR
RR
EX CW
CR
CR
RR
RR
RR
RR
EX CW
IS
CR
CR
RR
RR
RR
RR
EX CW
IS
CR
CR
RR
RR
RR
RR
RC miss
RC hit
RR :accesses MRF
cycle
RC hit
:does not access MRF
 RC ミスのみでは,ストールは発生しない
 MRF のポートが不足した場合にストール
EX CW
CR RC Read
CW RC Write
RR MRF Read
27
パイプラインの乱れ
 ストールの発生条件:
 LORCS :
 1サイクル中に,1つ以上のRCミスが発生した時
 NORCS:
 1サイクル中に,MRF のポート数以上のRC ミスが起きた時
 ストール中にMRF を読む
 めったに起きない
 16 エントリのRC の場合で,1.0%
28
なぜ NORCS はLORCS より速いのか?
 一見不思議:
 NORCS : 常に待つ
 LORCS : 必要なときにのみ待つ
 なぜか:
1.
LORCS は高確率でペナルティが発生
 ストールの発生率は個々のオペランドのミス率よりも高くなる
2.
NORCS は,このペナルティを回避可能
 発生率の低い分岐予測ミス・ペナルティに転化
 常に待つので,予測ミス・ペナルティは増加
29
LORCS のストールの発生率は,
個々のオペランドのミス率よりも高い
 ストール条件:
 1サイクル中に,1つ以上のRCミスが発生した時
 Ex.: SPEC CPUINT 2006 456.hmmer / 32 entries RC
 RC ミス率: 5.8% ( = ヒット率:94.2%)
 サイクル当たりのオペランド数:2.49
 全てのオペランドがヒットする確率
 0.9422.49≒0.86
 ストールの発生率(1つ以上のオペランドがミス)
 1 - 0.9422.49 ≒0.14 (14%)
30
NORCS では,RC ミス・ペナルティを,
分岐予測ミス・ペナルティに転化
LORCS
I1 :
IF
•••
cycle
IS CR
CR EX
I3 :
•••
IF
IF
I4 :
I3 :
IF
•••
IS CR
CR
IS CR
CR EX
•••
latencyMRF
penaltybpred
NORCS
I2 :
IS CR
CR RR1 RR2 EX
CR
•••
IS
CR EX
IF
I5 :
I1 :
IS CR
CR EX
•••
IF
I2 :
RR1 RR2
RR1 RR2
EX
latencyMRF
IS CR
CR
•••
IF
•••
IF
•••
IF
I4 :
IF
I5 :
penaltybpred + latencyMRF
IS
•••
RR1 RR2
RR1 RR2 EX
CR RR1 RR2
CR RR1 RR2 EX
RR1 RR2
IS CR
CR RR1 RR2 EX
RR1 RR2
IS CR
CR RR1 RR2
EX
耐タイミング・エラーへの応用
1.
回路規模の縮小
 ナイーブなRF に対し,RC/MRF の回路面積は大幅に小さい
 レイテンシの大幅な短縮
2.
MRF 書き込みを複数サイクルにパイプライン化
 MRF の書き込み時間が延びても,RC で吸収できる
 書き込みタイミング制約の緩和
32
目次
1.
既存手法 :レイテンシ指向レジスタ・キャッシュ・システム
LORCS : Latency-Oriented Register Cache System
2.
提案手法:非レイテンシ指向レジスタ・キャッシュ・システム
NORCS : Non-latency-Oriented Register Cache System
3.
評価
33
評価環境
1.
IPC:
 鬼斬弐
 サイクル・アキュレートなプロセッサ・シミュレータ
2.
回路面積と消費電力
 CACTI 5.3
 ITRS 32nm technology node
 RC と MRF のアレイを評価
 ベンチマーク:
 SPEC CPU 2006 の全29種のプログラム
 gcc 4.2.2 を用いて,–O3 でコンパイル
34
評価したプロセッサの構成
Name
Value
fetch width
4 inst.
instruction window
int:32, fp:16, mem:16
execution unit
int:2, fp:2, mem:2
MRF
int: 128 , fp : 128
BTB
2K entries, 4way
Branch predictor
g-share 8KB
L1C
32KB,4way,2 cycles
L2C
4MB,8way,10 cycles
Main memory
200 cycles
 R10000風の6-issue OoOスーパスカラ・プロセッサを想定
35
評価モデル
1. PRF
 パイプライン化されたRF (ベースライン)
 8read/4write ports / 128 entries RF
2.
LORCS
 RC:
 LRU / Use based 置き換え

J. A. Butts and G. S. Sohi, “Use-Based Register Caching with
Decoupled Indexing,” ISCA, 2004,
 2read/2write ports / 128 entries MRF
3.
NORCS
36
Probability
ストール/分岐予測ミス 発生率
35%
30%
25%
20%
15%
10%
5%
0%
LORCS (LRU)
LORCS (USE-B)
NORCS (LRU)
Bpred miss ratio
4
8
16
32
64
entries entries entries entries entries
RC entries
 NORCSでは,ストール発生率はとても低い
 LORCSのストール発生率は,分岐予測ミス率よりも遥かに高い
37
Relative IPC
PRFに対する,平均相対IPC
1.1
1
0.9
0.8
0.7
0.6
LORCS LRU
LORCS USE-B
NORCS LRU
RC entries
 LORCSの4,8,16 エントリのモデルでは,大きく性能が低下
 NORCSの性能低下は非常に小さい
 64 エントリのLORCS と8 エントリのNORCS では,IPC はほぼ同じ・・・しか
し,
38
IPC と 回路面積のトレードオフ
RC エントリ数:4, 8, 16, 32, 64
Area -75.1%
Relative IPC
1
0.9
PRF
0.8
NORCS LRU
0.7
LORCS LRU
LORCS USE-B
0.6
0
0.5
Relative Area
1
 NORCS(8 エントリのRC) :
 2.1% の性能低下で,PRF から75.1%回路面積を削減
1.5
IPC と 回路面積のトレードオフ
RC エントリ数:4, 8, 16, 32, 64
Area -72.4%
IPC 18.7%
Relative IPC
1
0.9
0.8
PRF
NORCS LRU
0.7
LORCS LRU
LORCS USE-B
0.6
0
 NORCS(8 エントリのRC) :
0.5
Relative Area
1
 同程度のIPCのLORCS-LRU と比べて,回路面積を72.4%削減
 同程度の回路面積のLORCS-LRUと比べて,IPC は18.7%改善
1.5
IPC と 消費電力のトレードオフ
RC エントリ数:4, 8, 16, 32, 64
Energy -68.1%
IPC 18.7%
Relative IPC
1
0.9
0.8
PRF
NORCS LRU
0.7
LORCS LRU
LORCS USE-B
0.6
0
0.5
1
Relative energy consumption
1.5
 NORCS(8 エントリのRC) :
 2.1%の性能低下で,消費電力を68.1% 削減
41
0.8
RC8 WL1
 RC16エントリの場合,平均0.16%
RC8 WL2
RC16 WL1
average
301.apsi
300.twolf
256.bzip2
255.vortex
254.gap
253.perlbmk
252.eon
197.parser
191.fma3d
189.lucas
188.ammp
187.facerec
186.crafty
183.equake
181.mcf
179.art
178.galgel
176.gcc
175.vpr
173.applu
172.mgrid
171.swim
168.wupwise
164.gzip
Relative IPC
MRFの書き込みサイクルを伸ばした場合の性能低下
(SPECCPU 2000)
1.05
1
0.95
0.9
0.85
RC16 WL2
 MRFの書き込みレイテンシを1->2サイクルに伸ばした場合,
 RC8エントリの場合,平均1.4%
42
 巨大なRF による問題
非レイテンシ指向レジスタ・キャッシュ・システム のまとめ
 面積そのもの,消費電力やそれによる熱が深刻
 レジスタ・キャッシュが提案
 実際には,ミス・ペナルティによって性能が低下
 NORCS: Non-latency-Oriented Register Cache System
 “速くない”RC による解決
 “速い”RC よりも高速に
 2.1%の性能低下で,24.9%まで回路面積を削減
43