[論文レビュー] The nanoPU: Redesigning the CPU-Network Interface to Minimize RPC Tail Latency
nanoPUは、メモリ階層およびキャッシュを回避し、RPCパケットをCPUのレジスタファイルに直接ルーティングすることで、65nsというワイヤートゥワイヤー遅延を達成するドメイン特化CPUコアであり、最新のシステムと比較して13倍速い。コア選択、スレッドスケジューリング、信頼性の高いトランスポートをハードウェアにオフロードすることで、1μs未満のバウンデッドなテール遅延を達成し、マイクロサービスおよび分散アプリケーション向けに高スルーレートでマイクロ秒未満のRPCを実現する。
The nanoPU is a new networking-optimized CPU designed to minimize tail latency for RPCs. By bypassing the cache and memory hierarchy, the nanoPU directly places arriving messages into the CPU register file. The wire-to-wire latency through the application is just 65ns, about 13x faster than the current state-of-the-art. The nanoPU moves key functions from software to hardware: reliable network transport, congestion control, core selection, and thread scheduling. It also supports a unique feature to bound the tail latency experienced by high-priority applications. Our prototype nanoPU is based on a modified RISC-V CPU; we evaluate its performance using cycle-accurate simulations of 324 cores on AWS FPGAs, including real applications (MICA and chain replication).
研究の動機と目的
- クラウドベースのマイクロサービスアーキテクチャにおけるRPCのテール遅延を低減すること。現状、応答時間の高い変動性がパフォーマンスを制限している。
- 従来のCPU-NIC通信経路におけるメモリおよびキャッシュ階層の根本的ボトルネックを解消すること。
- ネットワークパケットをレジスタファイルで直接処理できるように最適化されたハードウェアCPUコアを設計すること。
- ハードウェアベースのスケジューリングと混雑制御により、高優先度RPCのバウンデッドなテール遅延を達成し、決定論的なパフォーマンスを保証すること。
- CPU-ネットワークインターフェースを再設計し、パケットデータをメモリデータと同等に第一級の存在として扱うことで、低オーバーヘッドでマイクロ秒未満のRPCを実現すること。
提案手法
- 入力されるRPCパケットを直接CPUのレジスタファイルにルーティングすることで、キャッシュおよびメインメモリ階層を回避し、メモリアクセス遅延を排除する。
- JBSQに類似したロードバランシングポリシーを用いたハードウェアベースのスレッドスケジューリングとコア選択を実装し、ソフトウェア由来のスケジューリングオーバーヘッドを回避する。
- NICにP4プログラマブルパイプラインを統合し、ヘッダおよびトランスポート層処理を並列に実行することで、パイプライン化されたパケット処理を可能にする。
- ネットワークインシdent(インシデント)を低減し、エンドツーエンドの遅延を改善するために、ハードウェアに実装されたNDP混雑制御プロトコルを採用する。
- プロトタイプとして修正されたRISC-Vコアを用い、AWS FPGA上で324コアのサイクルアキュレートシミュレーションを実施してパフォーマンスを評価する。
- 従来のソフトウェアネットワーキングスタックに代わり、CPUへの完全なメッセージ配信を保証するハードウェアベースの信頼性の高いトランスポート層を実装する。
実験結果
リサーチクエスチョン
- RQ1キャッシュおよびメモリ階層のボトルネックを排除することで、RPCのワイヤートゥワイヤー遅延を最小限に抑えるためにCPUコアを再設計可能か?
- RQ2コア選択、スレッドスケジューリング、トランスポートプロトコルのハードウェアオフロードが、高スルーレートRPCワークロードにおけるテール遅延をどの程度低減できるか?
- RQ3ハードウェア最適化された、レジスタファイル優先アーキテクチャを用いて、RPCのバウンデッドなテール遅延(例:1μs未満)を達成するのは現実的か?
- RQ4従来のメモリベースのパケット処理と比較して、直接パケットをレジスタファイルにルーティングする方式は、中央値およびテール遅延においてどのように差がでるか?
- RQ5ドメイン特化のnanoPUコアは、実世界の分散アプリケーションにおいてもプログラマブルかつスケーラブルである一方で、マイクロ秒未満のRPCパフォーマンスを達成可能か?
主な発見
- nanoPUはワイヤートゥワイヤー遅延が65nsに達し、最新の技術(中央値850ns)と比較して13倍速い。
- キャッシュおよびメモリ階層を回避することで、アプリケーションのメモリアクセスによる干渉が排除され、テール遅延が顕著に低減される。
- ハードウェアベースのコア選択とスレッドスケジューリングにより、スケジューリングオーバーヘッドが低減し、決定論的で低遅延のRPC処理が可能になる。
- nanoPUはハードウェアにNDP混雑制御プロトコルを実装し、インシデント性能を向上させ、ネットワーク由来の遅延変動を低減する。
- システムはバウンデッドなテール遅延を達成し、NICに到着した任意の適合RPCが1μs以内に完了することが保証される。
- 324コアのAWS FPGAプラットフォーム上で実施したサイクルアキュレートシミュレーションにより、nanoPUは持続的な10Tb/sスルーレートで1秒間に5億件以上のRPCを処理可能であることが確認された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。