Presentation is loading. Please wait.

Presentation is loading. Please wait.

非レイテンシ指向 レジスタ・キャッシュ・システム

Similar presentations


Presentation on theme: "非レイテンシ指向 レジスタ・キャッシュ・システム"— Presentation transcript:

1 非レイテンシ指向 レジスタ・キャッシュ・システム
名古屋大学大学院 工学研究科 塩谷 亮太

2 非レイテンシ指向 レジスタ・キャッシュ・システム
レジスタ・ファイル(RF)の巨大化 L1キャッシュに匹敵 問題:面積,複雑さ,遅延,電力と熱・・・ レジスタ・キャッシュ(RC) 目的:巨大なRF による問題の解決 しかし・・・ 多くの場合はミスによって性能が下がってしまう “速くない”レジスタ・キャッシュによる,問題の解決 “速い”RC よりも高速に 2.1%の性能低下で,24.9%まで回路面積を削減 応用により,タイミング・エラー耐性を向上

3 背景 - レジスタ・ファイルの巨大化 近年,スーパスカラ・プロセッサのRFは巨大化する傾向に エントリ数が増える ポート数が増える

4 背景 - レジスタ・ファイルの巨大化 エントリ数が増える Out-of-Order スーパスカラ・プロセッサ
In-flight な命令数に応じたエントリが必要 マルチスレッド・プロセッサ マルチスレッディング 色々な遅延を隠蔽する,有効な方法 最大の問題: スレッド数に応じたエントリ数が必要

5 背景 - レジスタ・ファイルの巨大化 ポート数が増える RF は非常に多ポートのSRAM によって構成される 発行幅に応じたポート数が必要
4命令同時発行なら,12ポート (Src 2 + Dst 1) × 4 = 12 SRAM の面積は,ポート数の2乗に比例 ⇒容量に対し,非常に大きな回路となる

6 SRAM(1bit)の回路レイアウト 12 port 2 port

7 背景 - レジスタ・ファイルの巨大化 エントリ数が増える ポート数が増える L1 キャッシュに匹敵する大きさに

8 Pentium4 の整数実行コア ALU L1 Data cache (16KB 1R/1W ports) Register file
(64bit 144entries 6R/3W ports)

9 レジスタ・ファイルの巨大化による問題 消費電力や熱の増大 消費電力は面積に比例 動作周波数を上げられなくなる アクセス・レイテンシの増大
RF はL1$ と同等のレイテンシを持つ 2~3段にパイプライン化されるのが普通 バイパス・ロジックの複雑化 IPC の低下 チップコストの増大 周辺回路への影響

10 Pentium4 のチップ上熱密度マップ レジスタ・ファイル近傍は,非常に熱い
( A 9-GHz 65-nm Intel® Pentium 4 Processor Integer Execution Unit  より転載)

11 レジスタ・キャッシュ 目的: 巨大なレジスタ・ファイルによる問題の解決 レジスタ・キャッシュ: 小容量の高速なバッファ
メイン・レジスタ・ファイルの一部をキャッシュ ミス・ペナルティによって,性能が下がってしまう 8 entry RC system の場合, 20.9%IPCが低下

12 研究目的 レジスタ・ファイルの回路面積の削減 “速くない”レジスタ・キャッシュによって実現 提案するRC は,レイテンシを短縮しない
タイミング・エラー耐性の向上: 性能を落とさずに,書き込みに時間をかける 面積削減そのものの効果

13 目次 既存手法 :LORCS レイテンシ指向レジスタ・キャッシュ・システム
提案手法:NORCS 非レイテンシ指向レジスタ・キャッシュ・システム 評価

14 レジスタ・キャッシュ レジスタ・キャッシュ(RC) 小容量の高速なバッファ メイン・レジスタ・ファイル(MRF)の一部をキャッシュ

15 レジスタ・キャッシュ・システム Instruction Window Out of pipelines Main Register File
Write Buffer Register cache Instruction Window ALUs 以下のものを含むシステム : レジスタ・キャッシュ メイン・レジスタ・ファイル パイプライン・ステージ

16 レイテンシ指向レジスタ・キャッシュ・システム
2つの異なる RC システム レイテンシ指向 : 既存手法 非レイテンシ指向 : 提案手法 LORCS : Latency-Oriented-Register Cache System 通常,“レジスタ・キャッシュ”と言う場合,これを指す 提案手法との区別のため

17 レイテンシ指向レジスタ・キャッシュ・システム
ヒットを仮定したパイプライン 全ての命令は,RC にヒットするものとしてスケジューリング 通常のキャッシュと同様の構成: ヒットした場合 1サイクルでアクセス可能なRF と等価に ミスした場合,パイプラインはストール(ペナルティ)

18 LORCS の挙動 IS EX CW EX IS IS IS I1 : I2 : I3 : Stall Miss I4 : I5 :
cycle I1 : IS CR EX CW EX CR IS Miss I2 : IS CR RR I3 : IS Stall I4 : I5 : ミス時はバックエンドをストールさせる その間にMRF にアクセス CR RC Read CW RC Write RR MRF Read

19 ミス・ペナルティ RC ミス時は,プロセッサのバックエンドをストールさせる
OoO スーパスカラ・プロセッサは,長いレイテンシの命令を選択的に 遅らせる事が可能 RC ミス時にも同じ事ができるのでは? RC ミスを起こした命令を選択的に遅らせる事は困難 パイプラインのNon-re-schedulability

20 パイプラインのNon-re-schedulability
Main Register File Out of pipelines I0 misses RC Write Buffer Register cache Instruction Window I4 I2 I0 ALUs I3 I5 I1 命令は,パイプライン中では再スケジュールできない

21 LORCS の目的 レイテンシの短縮: 理想的には,RF のパイプライン化によって生じる全ての問題を解 決できる 予測ミス・ペナルティの削減
資源の早期解放 バイパス・ネットワークの簡略化 MRF のポート数の削減

22 MRF のポート数の削減 Register file RCミスを起こした命令のみが MRFにアクセス MRF を少ポートに
Main Register file Register cache ALUs ALUs RCミスを起こした命令のみが MRFにアクセス MRF を少ポートに MRF の面積の削減 RAM の回路面積は,ポート数の2乗に比例

23 目次 既存手法 :レイテンシ指向レジスタ・キャッシュ・システム LORCS : Latency-Oriented Register Cache System 提案手法:非レイテンシ指向レジスタ・キャッシュ・システム NORCS : Non-latency-Oriented Register Cache System 評価

24 非レイテンシ指向レジスタ・キャッシュ・システム
NORCS もまた, RCやMRF,パイプラインによって構成 LORCS と同様の構成 LORCS と同様にして,回路面積を削減 重要な違い: NORCS は,MRF へのアクセス・ステージを持つ NORCSは,LORCSよりも速い

25 NORCS は,MRF への アクセス・ステージを持つ
Out of pipelines RC MRF ALUs IW LORCS: NORCS: 物理的な違いは小さいが,性能に大きな影響を与える

26 NORCS のパイプライン ミスを仮定したパイプライン NORCS は,MRF へのアクセス・ステージを持つ
全ての命令は,ヒット/ミスに関わらずミス時と同じだけ待つ キャッシュではある・・・しかし, 速くない

27 ミスを仮定したパイプライン I1 : IS EX CW I2 : IS EX CW I3 : IS EX CW I4 : IS EX CW
cycle I1 : IS CR RR EX CW RC hit CR RC miss I2 : IS CR RR RR EX CW CR I3 : IS CR RR EX CW RC hit CR I4 : IS CR RR EX CW RC hit CR I5 : IS CR RR EX CW CR CR RC Read CW RC Write RR MRF Read :does not access MRF :accesses MRF RR RC ミスのみでは,ストールは発生しない MRF のポートが不足した場合にストール

28 パイプラインの乱れ ストールの発生条件: LORCS : 1サイクル中に,1つ以上のRCミスが発生した時 NORCS:
1サイクル中に,MRF のポート数以上のRC ミスが起きた時 ストール中にMRF を読む めったに起きない 16 エントリのRC の場合で,1.0%

29 なぜ NORCS はLORCS より速いのか?
一見不思議: NORCS : 常に待つ LORCS : 必要なときにのみ待つ なぜか: LORCS は高確率でペナルティが発生 ストールの発生率は個々のオペランドのミス率よりも高くなる NORCS は,このペナルティを回避可能 発生率の低い分岐予測ミス・ペナルティに転化 常に待つので,予測ミス・ペナルティは増加

30 LORCS のストールの発生率は, 個々のオペランドのミス率よりも高い
ストール条件: 1サイクル中に,1つ以上のRCミスが発生した時 Ex.: SPEC CPUINT hmmer / 32 entries RC RC ミス率: 5.8% ( = ヒット率:94.2%) サイクル当たりのオペランド数:2.49 全てのオペランドがヒットする確率 ≒0.86 ストールの発生率(1つ以上のオペランドがミス) ≒0.14 (14%) 実際の評価でも10%以上の性能低下を確認

31 NORCS では,RC ミス・ペナルティを, 分岐予測ミス・ペナルティに転化
LORCS cycle I1: IF ••• IS CR EX I2: IF ••• IS CR EX I3: IF ••• IS CR EX RR1 RR2 I4: IF ••• IS CR EX I5: 0.46% % IF ••• IS CR EX penaltybpred latencyMRF NORCS I1: IF ••• IS CR RR1 RR2 EX I2: IF ••• IS CR RR1 RR2 EX latencyMRF I3: IF ••• IS CR RR1 RR2 EX RR1 RR2 I4: IF ••• IS CR RR1 RR2 EX I5: IF ••• IS CR RR1 RR2 EX penaltybpred + latencyMRF

32 耐タイミング・エラーへの応用 回路規模の縮小 ナイーブなRF に対し,RC/MRF の回路面積は大幅に小さい レイテンシの大幅な短縮
MRF の書き込み時間が延びても,RC で吸収できる 書き込みタイミング制約の緩和

33 目次 既存手法 :レイテンシ指向レジスタ・キャッシュ・システム LORCS : Latency-Oriented Register Cache System 提案手法:非レイテンシ指向レジスタ・キャッシュ・システム NORCS : Non-latency-Oriented Register Cache System 評価

34 評価環境 IPC: 鬼斬弐 サイクル・アキュレートなプロセッサ・シミュレータ 回路面積と消費電力 CACTI 5.3
ITRS 32nm technology node RC と MRF のアレイを評価 ベンチマーク: SPEC CPU 2006 の全29種のプログラム gcc を用いて,–O3 でコンパイル

35 R10000風の6-issue OoOスーパスカラ・プロセッサを想定
評価したプロセッサの構成 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スーパスカラ・プロセッサを想定

36 評価モデル PRF パイプライン化されたRF (ベースライン) 8read/4write ports / 128 entries RF
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 NORCS RC : LRU のみ

37 ストール/分岐予測ミス 発生率 NORCSでは,ストール発生率はとても低い LORCSのストール発生率は,分岐予測ミス率よりも遥かに高い

38 PRFに対する,平均相対IPC LORCSの4,8,16 エントリのモデルでは,大きく性能が低下 NORCSの性能低下は非常に小さい
64 エントリのLORCS と8 エントリのNORCS では,IPC はほぼ同じ・・・しかし,

39 IPC と 回路面積のトレードオフ RC エントリ数:4, 8, 16, 32, 64
Area -75.1% NORCS(8 エントリのRC) : 2.1% の性能低下で,PRF から75.1%回路面積を削減

40 IPC と 回路面積のトレードオフ RC エントリ数:4, 8, 16, 32, 64
Area -72.4% IPC 18.7% NORCS(8 エントリのRC) : 同程度のIPCのLORCS-LRU と比べて,回路面積を72.4%削減 同程度の回路面積のLORCS-LRUと比べて,IPC は18.7%改善

41 IPC と 消費電力のトレードオフ RC エントリ数:4, 8, 16, 32, 64
Energy -68.1% IPC 18.7% NORCS(8 エントリのRC) : 2.1%の性能低下で,消費電力を68.1% 削減

42 MRFの書き込みサイクルを伸ばした場合の性能低下 (SPECCPU 2000)
RC8エントリの場合,平均1.4% RC16エントリの場合,平均0.16%

43 非レイテンシ指向レジスタ・キャッシュ・システム のまとめ
巨大なRF による問題 面積そのもの,消費電力やそれによる熱が深刻 レジスタ・キャッシュが提案 実際には,ミス・ペナルティによって性能が低下 NORCS: Non-latency-Oriented Register Cache System “速くない”RC による解決 “速い”RC よりも高速に 2.1%の性能低下で,24.9%まで回路面積を削減 タイミングエラー耐性の向上 面積削減/MRF書き込みの分割


Download ppt "非レイテンシ指向 レジスタ・キャッシュ・システム"

Similar presentations


Ads by Google