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

Slides:



Advertisements
Similar presentations
1 広島大学 理学研究科 尾崎 裕介 石川 健一. 1. Graphic Processing Unit (GPU) とは? 2. Nvidia CUDA programming model 3. GPU の高速化 4. QCD with CUDA 5. 結果 6. まとめ 2.
Advertisements

CPU設計と パイプライン.
スーパースカラ Super Scalar From CPI(Clock/Instruction)to IPC(Instruction/clock) スーパースカラ/Super Scalar 考え方 - 複数命令の同時実行構造 Basic idea: Simultaneous issues of several.
計算機システムⅡ 命令レベル並列処理とアウトオブオーダ処理
第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
情報理工学系研究科 コンピュータ科学専攻 上嶋裕樹
Webプロキシサーバにおける 動的資源管理方式の提案と実装
07. 値予測 五島 正裕.
キャッシュ付PRAM上の 並列クィックソートと 並列マージソート
メモリコンシステンシモデル memory consistency model
キャッシュヒント自動付加を用いたソフトウェア高速化
07. 値予測 五島 正裕.
ヘテロジニアスマルチコアプロセッサ 環境を対象としたキャッシュシステム 自動生成ツールの開発
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
Chapter11-4(前半) 加藤健.
ノーマリ「オフ」と「オン」 九州大学 井上こうじ (ただのお友達).
Ibaraki Univ. Dept of Electrical & Electronic Eng.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
高性能コンピューティング学講座 三輪 忍 高性能コンピューティング論2 高性能コンピューティング論2 第4回 投機 高性能コンピューティング学講座 三輪 忍
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
Rearrangeable NoC: 配線遅延を考慮した分散ルータ アーキテクチャ
キャッシュ 頻繁にアクセスされるデータを入れておく小規模高速なメモリ 当たる(ヒット)、はずれる(ミスヒット) マッピング(割り付け)
神奈川大学大学院工学研究科 電気電子情報工学専攻
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
Explorations in Symbiosis on two Multithreaded Architectures
CMPにおけるオンチップルータの 細粒度パワーゲーティングの評価
高性能コンピューティング論2 第5回 Out-of-Order実行機構
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
パソコンの歴史 ~1970年 1970年代 1980年代 1990年~ ▲1946 ENIAC(世界最初の計算機、1,900加算/秒, 18,000素子) ▲1947 UNIVACⅠ(最初の商用計算機) ▲1964 IBM System/360(5.1MHz, 1MB, 2億円) ▲1974 インテル8080(8.
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
組み込み向けCPU 小型デバイスに搭載されるCPU 特徴 携帯電話,デジタルカメラ,PDA,センサデバイスなど 小型 低消費電力 多機能
メモリ管理 4.3, 4.4 章 さだ.
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
Lazy Release Consistency
Advanced Computer Architecture
・ディジタル回路とクロック ・プロセッサアーキテクチャ ・例外処理 ・パイプライン ・ハザード
プロジェクト実習 LSIの設計と実現 パイプライン実行とハザード.
アドバンスト コンピュータ アーキテクチャ RISC と 命令パイプライン
第6回 メモリの種類と特徴 主記憶装置、ROM、RAM
作りながら学ぶコンピュータアーキテクチャ(改訂版)授業資料 テキスト ページ対応 天野英晴
11. マルチスレッド・プロセッサ 五島 正裕.
情報理工学系研究科 電子情報学専攻 豊島隆志
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
リモートホストの異常を検知するための GPUとの直接通信機構
10. マルチスレッド・プロセッサ 五島 正裕.
Advanced Computer Architecture
レジスタ間接分岐ターゲット・フォワーディング
仮想メモリを用いた VMマイグレーションの高速化
Advanced Computer Architecture
Advanced Computer Architecture
「コアの数なんて どうでもいい」 五島 正裕(東大).
メモリ投機を支援する CMPキャッシュコヒーレンスプロトコルの検討
J-PARC E16実験におけるDAQ-Middleware を用いたDAQソフトウェアの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
08. メモリ非曖昧化 五島 正裕.
部分的最小二乗回帰 Partial Least Squares Regression PLS
サービス指向ルータ向け 問合せ処理用ハードウェアの検討
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
09. メモリ・ディスアンビギュエーション 五島 正裕.
コンピュータアーキテクチャ 第 9 回.
全体ミーティング (5/23) 村田雅之.
Mondriaan Memory Protection の調査
パイプラインとは何か? マイクロプロセッサ(MPU)の高速化手法の一つのこと。
SpectreとMeltdown ITソリューション塾・第27期 2018年3月20日 株式会社アプライド・マーケティング 大越 章司
コンピュータアーキテクチャ 第 9 回.
コンピュータ工学基礎 マルチサイクル化とパイプライン化 テキスト9章 115~124
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
Ibaraki Univ. Dept of Electrical & Electronic Eng.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
Presentation transcript:

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

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

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

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

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

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

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

Pentium4 の整数実行コア ALU L1 Data cache (16KB 1R/1W ports) Register file (64bit 144entries 6R/3W ports) ( http://www.chip-architect.com より転載)

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

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

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

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

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

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

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

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

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

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

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

パイプラインの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 命令は,パイプライン中では再スケジュールできない

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

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

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

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

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

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

ミスを仮定したパイプライン 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 のポートが不足した場合にストール

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

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

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%) 実際の評価でも10%以上の性能低下を確認

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% 14% 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

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

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

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

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スーパスカラ・プロセッサを想定

評価モデル 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 のみ

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

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

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

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%改善

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

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

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