Skip to main content
QUICK REVIEW

[論文レビュー] Packet Transactions: A Programming Model for Data-Plane Algorithms at Hardware Speed

Anirudh Sivaraman, Mihai Budiu|arXiv (Cornell University)|Dec 16, 2015
Interconnection Networks and Systems参考文献 44被引用数 11
ひとこと要約

本論文では、パケットトランザクション(アトミックで隔離されたコードブロック)を通じてハードウェアラインレート性能を実現する、データプレーンアルゴリズム向けのCに似たプログラミング言語「Domino」を紹介する。主な貢献は、ハードウェア再構成を必要とせず、動的ネットワーク関数を高水準で効率的かつポータブルに実装する手法である。

ABSTRACT

Data-plane algorithms execute on every packet traversing a network switch; they encompass many schemes for congestion control, network measurement, active-queue management, and load balancing. Because these algorithms are implemented in hardware today, they cannot be changed after being built. To address this problem, recent work has proposed designs for programmable line-rate switches. However, the languages to program them closely resemble the underlying hardware, rendering them inconvenient for this purpose. This paper presents Domino, a C-like imperative language to express data-plane algorithms. Domino introduces the notion of a packet transaction, defined as a sequential code block that is atomic and isolated from other such code blocks. The Domino compiler compiles Domino code to PISA, a family of abstract machines based on emerging programmable switch chipsets. We show how Domino enables several data-plane algorithms written in C syntax to run at hardware line rates.

研究の動機と目的

  • 展開後も更新ができないハードウェア実装のデータプレーンアルゴリズムの柔軟性のなさに対処すること。
  • 既存のプログラマブルスイッチ言語の複雑さに起因する、低レベルのハードウェアに密着した記述が、ポータビリティと表現力を損なう問題を克服すること。
  • ラインレートで効率的かつ正しく、保守可能なデータプレーンアルゴリズムの実装を可能にする高水準なプログラミングモデルを設計すること。
  • 高水準なアルゴリズム設計と低レベルのプログラマブルスイッチアーキテクチャの間の意味的ギャップを埋めること。

提案手法

  • パケットトランザクション(1パケットごとに実行される順序的でアトミックかつ隔離されたコードブロック)の概念を導入する。
  • データプレーン論理をパケットトランザクションで表現できる、Cに似た命令型言語としてDominoを設計する。
  • 現代のプログラマブルスイッチチップセットをターゲットとするPISAという抽象機械のファミリに、Dominoコードをコンパイルする。
  • コンパイル時にパケットトランザクションの隔離性とアトミック性を強制することで、正しさとパフォーマンスを保証する。
  • PISAの抽象化レイヤーを活用して、異なるプログラマブルスイッチプラットフォーム間でのポータビリティを実現する。
  • 静的解析とコンパイル技術を用いて、ラインレートスループットを実現するトランザクション実行を最適化する。

実験結果

リサーチクエスチョン

  • RQ1高水準でCに似た言語が、手作業で最適化されたハードウェア実装と同等のパフォーマンスを実現できるか?
  • RQ2パケットトランザクションが、正しさと隔離性を確保しつつもラインレートパフォーマンスを維持できる十分な抽象化を提供できるか?
  • RQ3Dominoが、異なるプログラマブルスイッチアーキテクチャ間で、どれほどポータブルで保守可能なデータプレーンアルゴリズム実装を可能にするか?
  • RQ4DominoからPISAへのコンパイルパイプラインが、機能的正しさとパフォーマンスをどのように保持するか?

主な発見

  • Dominoを用いることで、Cに似た構文で記述されたデータプレーンアルゴリズムが、プログラマブルスイッチでハードウェアラインレート性能を達成できる。
  • パケットトランザクション抽象化により、アトミック性と隔離性が保証され、並列パケット処理における正しさの考察が簡素化される。
  • Dominoコンパイラは、高水準コードを効率的なPISAマシンコードに成功して変換し、機能的意味を保持したままである。
  • 本手法により、高水準な抽象化でも低レベルのハードウェア実装と同等のパフォーマンスを達成できることが示された。
  • 本モデルは、混雑制御やアクティブキュー管理を含む複数のデータプレーンアルゴリズムを、パフォーマンス劣化なしにラインレートでサポートする。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。