NoC のための 多電源可変パイプラインルータ 松谷 宏紀 (東京大学) 枚田 優人 (慶應義塾大学) 鯉渕 道紘 (国立情報学研究所) 宇佐美 公良 (芝浦工業大学) 中村 宏 (東京大学) 天野 英晴 (慶應義塾大学) Number of PEs (caches are not included) 最近のメニーコアプロセッサ picoChip PC102 256 picoChip PC205 ClearSpeed CSX700 128 64 Intel 80-core TILERA TILE64 ClearSpeed CSX600 Intel SCC 32 MIT RAW チップ内のメニーコア同士をつなぐために、 UT TRIPS (OPN) Network-on-Chip (NoC) が使われている 16 STI Cell BE 8 Sun T1 Fujitsu SPARC64 Intel Core, IBM Power7 AMD Opteron 4 2 Sun T2 2002 2004 2006 2008 2010 共有メモリ型 CMP: Network-on-Chip • タイル型 CMP の構成例 – 各タイルは、プロセッサ、L1キャッシュ、L2キャッシュバンク – L2バンクは全体として1つの共有メモリ NUCA [Hardavellas, ISCA’09] UltraSPARC L1キャッシュ (I & D) (各 16kB) L2キャッシュバンク (各 256kB、4-way) 共有メモリ型 CMP: Network-on-Chip • タイル型 CMP の構成例 – 各タイルは、プロセッサ、L1キャッシュ、L2キャッシュバンク – L2バンクは全体として1つの共有メモリ NUCA – タイル間の接続 Network-on-Chip [Hardavellas, ISCA’09] UltraSPARC L1キャッシュ (I & D) (各 16kB) L2キャッシュバンク (各 256kB、4-way) オンチップルータ CMP 向け Network-on-Chip の低消費電力化について検討 問題点: DVFS for Network-on-Chip • 各ルータに DVFS を適用すると、 – 動作周波数がルータごとに異なる – 異なる周波数ドメイン間の通信が必要 333MHz 400MHz 問題点: DVFS for Network-on-Chip • 各ルータに DVFS を適用すると、 – 動作周波数がルータごとに異なる – 異なる周波数ドメイン間の通信が必要 333MHz 400MHz 一般的な解決策 1. 隣接ルータの動作周波数 比を 1:k に制限(k は整数) – E.g., 150MHz、300MHz 2. 思い切って、非同期 NoC にする – 万能だが、コストが高い 解決策 1、2 の代替案として、多電源可変パイプラインルータを提案 多電源可変パイプラインルータ • DVFS for NoC の問題点 – ルータごとに周波数が異なる – 異なる周波数ドメイン間の通信が発生 • 多電源可変パイプラインルータ – 全ルータが同じ動作周波数で動作 – 電圧とルータパイプラインの深さを変える パイプライン、電圧の切り替えポリシの例 • 低負荷時は、3サイクルモード @ Vdd-low • 高負荷時は、2サイクルモード @ Vdd-high • 常温動作時は、2サイクルモード @ Vdd-high • 高温動作時は、3サイクルモード @ Vdd-high 発表の流れ: 多電源可変パイプラインルータ • DVFS for NoC の問題点 – ルータごとに周波数が異なる – 異なる周波数ドメイン間の通信が発生 • 多電源可変パイプラインルータ – 全ルータが同じ動作周波数で動作 – 電圧とルータパイプラインの深さを変える • 切り替えポリシ – 低消費電力化ポリシ – タイミング違反回避ポリシ • 評価 – 回路レベル評価 – システムレベル評価 オリジナルルータ: パイプライン構造 Routing comp (RC) Switch traversal Arbitration (VSA) (ST) Link traversal (LT) Arbiter X+ FIFO X+ X- FIFO X- Y+ FIFO Y+ Y- FIFO Y- Core FIFO 5x5 Crossbar Core 多電源可変パイプラインルータ Vdd-high 切り替え信号 Vdd-low 電圧スイッチ Arbiter X+ FIFO X+ X- FIFO X- Y+ FIFO Y+ Y- FIFO Y- Core FIFO 5x5 Crossbar Core 多電源可変パイプラインルータ Vdd-high 切り替え信号 Vdd-low 電圧スイッチ Arbiter レベルシフタ X+ FIFO X+ X- FIFO X- Y+ FIFO Y+ Y- FIFO Y- Core FIFO 5x5 Crossbar Core 多電源可変パイプラインルータ Vdd-high 切り替え信号 Vdd-low 電圧スイッチ Arbiter Pipeline control U 出力ラッチのバイパス用 レベルシフタ X+ FIFO X+ X- FIFO X- Y+ FIFO Y+ Y- FIFO Y- 5x5 Core Crossbar Core FIFO 出力ラッチをバイパスするかどうかで、パイプライン段数が切り替わる 可変パイプライン: パイプラインモード3種 すべてのルータに同じ周波数を与える • 3サイクルモード • 2サイクルモード – 出力ラッチを使う @Router 1 RC/ VSA ST LT – 出力ラッチはバイパスする @Router 2 RC/ VSA ST LT 通信遅延が大きい (3-cycle per hop) クリティカルパス遅延が小 Vdd-low (省電力) @Router 1 RC/ VSA ST,LT @Router 2 RC/ VSA ST,LT 通信遅延が小さい (2-cycle per hop) クリティカルパス遅延が大 Vdd-high (電力喰い) 可変パイプライン: パイプラインモード3種 すべてのルータに同じ周波数を与える • 4サイクルモード – 適応型ルーティングを使用可 @Router 1 RC VSA ST @Router 2 LT RC VSA ST 通信遅延が大きい (4-cycle per hop) 混雑リンク、故障ルータを動的 に回避できる LT 4x4 NoC (ホットスポット1ヶ所) 4サイクルモードは、ホットスポット発生時や故障時に効果を発揮する 多電源可変パイプラインルータ: 実装 • スタンダードセル – Fujitsu 65nm – 電圧スイッチ、レベルシフタ は芝浦工大・宇佐美研製 • 論理合成 – Synopsys Design Compiler VDD Vdd-low Vdd-high Clock Clock is stopped not to affect the current • 配置配線 Select – Synopsys IC Compiler • RC 抽出 – Cadence QRC • 回路レベルシミュレーション – Synopsys HSIM Energy is consumed Voltage switch Current (VddH) Fujitsu 65nm (0.8V1.2V, 25C) 可変パイプライン: 周波数と電圧の設定例 すべてのルータが 392.2MHz で動作する • 3サイクルモード • 2サイクルモード – 出力ラッチを使う @Router 1 RC/ VSA ST LT – 出力ラッチはバイパスする @Router 2 RC/ VSA ST LT @Router 1 RC/ VSA ST,LT @Router 2 RC/ VSA ST,LT 通信遅延が大きい 通信遅延が小さい (3-cycle per hop) (2-cycle per hop) 遅延: 1831psec @ 1.2V 遅延: 2550psec @ 1.2V Vdd-low: 0.83V Vdd-high: 1.20V 全ルータは 392.2MHz 動作、3サイクルは 0.83V、2サイクルは 1.2V 発表の流れ: 多電源可変パイプラインルータ • DVFS for NoC の問題点 – ルータごとに周波数が異なる – 異なる周波数ドメイン間の通信が発生 • 多電源可変パイプラインルータ – 全ルータが同じ動作周波数で動作 – 電圧とルータパイプラインの深さを変える • 切り替えポリシ – 低消費電力化ポリシ – タイミング違反回避ポリシ • 評価 – 回路レベル評価 – システムレベル評価 ポリシ1: スタンバイ時の低消費電力化 • 先読みルーティングにより、 パケット到着を予期 [松谷, ASPDAC’08] • パケットが来たら、 – 3サイクル 2サイクル 1. 電圧を Vdd-high にする 2. パイプライン段の切り換え • パケットが通過したら、 – 2サイクル 3サイクル 1. パイプライン段の切り替え 2. 電圧を Vdd-low にする ポリシ1: スタンバイ時の低消費電力化 • 先読みルーティングにより、 パケット到着を予期 [松谷, ASPDAC’08] • パケットが来たら、 – 3サイクル 2サイクル 1. 電圧を Vdd-high にする 2. パイプライン段の切り換え • パケットが通過したら、 – 2サイクル 3サイクル 1. パイプライン段の切り替え 2. 電圧を Vdd-low にする 昇圧は高々2サイクル 1ホップ目の先読みは困難 [松谷, NOCS’10] 1ホップ目のみ3サイクル転送 昇圧 3cycle ポリシ1: スタンバイ時の低消費電力化 • 先読みルーティングにより、 パケット到着を予期 [松谷, ASPDAC’08] • パケットが来たら、 – 3サイクル 2サイクル 1. 電圧を Vdd-high にする 2. パイプライン段の切り換え • パケットが通過したら、 – 2サイクル 3サイクル 1. パイプライン段の切り替え 2. 電圧を Vdd-low にする 昇圧は高々2サイクル 1ホップ目の先読みは困難 [松谷, NOCS’10] 1ホップ目のみ3サイクル転送 昇圧 3cycle 2cycle ポリシ1: スタンバイ時の低消費電力化 • 先読みルーティングにより、 パケット到着を予期 [松谷, ASPDAC’08] • パケットが来たら、 – 3サイクル 2サイクル 1. 電圧を Vdd-high にする 2. パイプライン段の切り換え • パケットが通過したら、 – 2サイクル 3サイクル 1. パイプライン段の切り替え 2. 電圧を Vdd-low にする 昇圧は高々2サイクル 1ホップ目の先読みは困難 [松谷, NOCS’10] 1ホップ目のみ3サイクル転送 昇圧 3cycle 2cycle 2cycle ポリシ1: スタンバイ時の低消費電力化 • 先読みルーティングにより、 パケット到着を予期 [松谷, ASPDAC’08] • パケットが来たら、 – 3サイクル 2サイクル 1. 電圧を Vdd-high にする 2. パイプライン段の切り換え 昇圧は高々2サイクル 1ホップ目の先読みは困難 [松谷, NOCS’10] 1ホップ目のみ3サイクル転送 3cycle 2cycle 2cycle 2cycle • パケットが通過したら、 – 2サイクル 3サイクル 1. パイプライン段の切り替え 2. 電圧を Vdd-low にする スタンバイ時は Vdd-low、パケットが来たら 2サイクル@ Vdd-high ポリシ2: 温度変化によるタイミング違反回避 • ルータが温度センサを持ち、 遅延マージンの変化を検出 近隣プロセッサによって ルータも温度変化する Normal temp. (2-cycle@Vdd-high) High temp. (3-cycle@Vdd-high) ポリシ2: 温度変化によるタイミング違反回避 • ルータが温度センサを持ち、 遅延マージンの変化を検出 • 動作温度が急上昇したら、 – 遅延マージンを増やす – 2サイクル @ Vdd-high 3サイクル @ Vdd-high • 常温に戻ったら、 – 遅延マージンを有効活用 – 3サイクル @ Vdd-high 2サイクル @ Vdd-high 近隣プロセッサによって ルータも温度変化する Normal temp. (2-cycle@Vdd-high) High temp. (3-cycle@Vdd-high) 発表の流れ: 多電源可変パイプラインルータ • DVFS for NoC の問題点 – ルータごとに周波数が異なる – 異なる周波数ドメイン間の通信が発生 • 多電源可変パイプラインルータ – 全ルータが同じ動作周波数で動作 – 電圧とルータパイプラインの深さを変える • 切り替えポリシ – 低消費電力化ポリシ – タイミング違反回避ポリシ • 評価 – 回路レベル評価 (面積、切り替え遅延、エネルギー、BET) – システムレベル評価 (アプリ性能、スタンバイ電力) 回路評価: 面積オーバヘッド Vdd-high 切り替え信号 Vdd-low 電圧スイッチ Arbiter Pipeline control U 出力ラッチのバイパス用 レベルシフタ X+ FIFO X+ X- FIFO X- 回路評価: 面積オーバヘッド オリジナルルータ、多電源可変パイプラインルータのゲート数 [kilo gates] Router Level shifter Voltage switch Original 59.41 0 0 Proposed 63.13 4.11 0.54 Vdd-high 切り替え信号 Total 59.41 67.78 (+14.1%) Vdd-low 電圧スイッチ Arbiter Pipeline control U 出力ラッチのバイパス用 レベルシフタ X+ FIFO X+ X- FIFO X- 回路評価: 切り替え遷移時間、エネルギー Vdd-high は 1.2V、 Vdd-low は 0.6V~1.1V • Vdd-low から Vdd-high • Vdd-high から Vdd-low – E.g., 0.8V から 1.2V へ 遷移時間は 3.1 nsec 231 pJ 消費 – E.g., 1.2V から 0.8V へ 遷移時間は 5.3 nsec 148 pJ チャージ Energy consumed Energy charged 切り替えエネルギー (左軸) 切り替え時間 (右軸) 回路評価: 切り替えエネルギーの損益分岐点 Vdd-high は 1.2V、 Vdd-low は 0.6V~1.1V • Vdd-low から Vdd-high • Vdd-high から Vdd-low – E.g., 0.8V から 1.2V へ 遷移時間は 3.1 nsec 231 pJ 消費 – E.g., 1.2V から 0.8V へ 遷移時間は 5.3 nsec 148 pJ チャージ 一度の電圧切り替えで 83 pJ (=231-148) 消費 Energy consumed Vdd-low にすればスタンバイ電力が減るが、 頻繁に電圧切り替えを行うと、逆に消費電力が増える Energy charged Break-even time (BET) は、オーバヘッドエネルギー 83 pJ を償却するのに必要な時間 切り替えエネルギー (左軸) BET は 58 nsec (23サイクル 切り替え時間 @392.2MHz)(右軸) CMP シミュレータ: GEMS/Simics • フルシステムシミュレーション – 16タイル構成、4x4 メッシュ NoC – Sun Solaris 9、Sun Studio 12 – NAS Parallel Bench (16スレッド) OpenMP version IS, DC, MG, EP, LU, SP, BT, FT [Hardavellas, ISCA’09] UltraSPARC L1キャッシュ (I & D) (各 16kB) L2キャッシュバンク (各 256kB、4-way) オンチップルータ • L2 共有型 CMP シミュレータ: GEMS/Simics – L2バンクを全タイルで共有 1つの大きな共有キャッシュ • フルシステムシミュレーション – トラフィック量が多い – 16タイル構成、4x4 メッシュ NoC • L2 非共有型 – Sun Solaris 9、Sun Studio 12 – タイルごとに、プライベートな L1/L2 キャッシュを持つ – NAS Parallel Bench (16スレッド) – トラフィック量が少ない [Hardavellas, ISCA’09] UltraSPARC L1キャッシュ (I & D) (各 16kB) L2キャッシュバンク (各 256kB、4-way) オンチップルータ 省電力ポリシ: アプリ性能オーバヘッド スタンバイ時は 3-cycle @ Vdd-low パケットが来たら可能な限り 2-cycle @ Vdd-high 常に2サイクル転送 @ Vdd-high 提案ポリシ 常に3サイクル転送 @ Vdd-low 省電力ポリシ: アプリ性能オーバヘッド スタンバイ時は 3-cycle @ Vdd-low パケットが来たら可能な限り 2-cycle @ Vdd-high 常に2サイクル転送 @ Vdd-high 提案ポリシ • L2 共有型 CMP – トラフィック多い – All 2-cycle @ Vdd-highと 比べて、性能 2.1% 減 常に3サイクル転送 @ Vdd-low • L2 非共有型 CMP – トラフィック少ない – All 2-cycle @ Vdd-highと 比べて、性能 1.0% 減 省電力ポリシ: NoCスタンバイ電力削減量 スタンバイ時は 3-cycle @ Vdd-low パケットが来たら可能な限り 2-cycle @ Vdd-high 常に2サイクル転送 @ Vdd-high 提案ポリシ 常に3サイクル転送 @ Vdd-low 省電力ポリシ: NoCスタンバイ電力削減量 スタンバイ時は 3-cycle @ Vdd-low パケットが来たら可能な限り 2-cycle @ Vdd-high 常に2サイクル転送 @ Vdd-high 提案ポリシ • L2 共有型 CMP – トラフィック多い – All 2-cycle @ Vdd-highと 比べて、電力 10.4% 減 BET以下の切り替え多発 常に3サイクル転送 @ Vdd-low • L2 非共有型 CMP – トラフィック少ない – All 2-cycle @ Vdd-highと 比べて、電力 44.4% 減 まとめ: 多電源可変パイプラインルータの提案 • DVFS for NoC の問題点 – ルータごとに周波数が異なる – 異なる周波数ドメイン間の通信が発生 • 多電源可変パイプラインルータ – 動作周波数は固定で、電圧とパイプラインの深さを変える – パイプラインモード3種類 • 切り替えポリシ – 低消費電力化ポリシ、タイミング違反回避ポリシ • 評価結果 – 面積オーバヘッドは 14.1%、BET は23サイクル – アプリ性能は1.0~2.1%減、スタンバイ電力は10.4~44.4%減 今後の課題 • 温度センサの実装 – 温度変化によるタイミング違反の検出 – Oscillation-Ring based Thermal Sensor (ORTS) Enable [Yang, ASPDAC’09] [Wolpert, NOCS’10] Pulse counter Thermal level • Break-even time を考慮した切り替えポリシ – 現状では、BET をまったく考慮していないため、 – オーバヘッド電力の影響で低消費電力化のメリットが小さい – E.g., 高負荷時は 2サイクル @ Vdd-high モードに固定 ご清聴ありがとうございました
© Copyright 2024 ExpyDoc