メインメニューを開く

ネットワークプロセッサ

インテル FWIXP422BB

ネットワークプロセッサ英語: network processor)は、ネットワーキングアプリケーションに特化した機能を持つ集積回路(IC)である。

ネットワークプロセッサは、典型的にはソフトウェアプログラマブルデバイスであり、様々な種類の機器や製品で一般的に使用されている汎用中央処理装置(CPU)と同様の一般的な特性を有する。

開発の歴史編集

公衆交換電話網(PTSN)やアナログのテレビ・ラジオのネットワークなどの情報をアナログ信号として搬送する古い電気通信ネットワーク英語版とは違い、現代の電気通信ネットワークでは情報(音声、映像、データ)はパケットデータとして転送される(パケット交換)。これらのパケットの処理は、パケットデータを扱うのに最適化された集積回路(IC)の登場によって可能となったものである。ネットワークプロセッサは、ネットワーク内でのパケット処理を強化し最適化するための特定の機能やアーキテクチャを備えている。

ネットワークプロセッサは特定の機能を持つICに進化した。この進化により、より複雑で柔軟なICが作成されるようになった。新しい回路はプログラム可能であり、そのため、適切なソフトウェアをインストールすることで、単一のハードウェアIC設計で多数の異なる機能を実現することを可能にする。

ネットワークプロセッサは、次のような様々な種類のネットワーク機器の製造に使用されている。

一般的な機能編集

パケットプロセッサとしての一般的な役割として、ネットワークプロセッサには通常、いくつかの最適化された機能がある。

  • パターンマッチング - パケットストリーム内のパケット内のビットまたはバイトの特定のパターンを見つける機能。
  • キー検索 - 結果(通常はルーティング情報)を見つけるためにキー(通常はパケット内のアドレス)を使用してデータベース検索を素早く実行する機能。
  • 計算
  • データビットフィールド操作 - パケットが処理されているときにパケットに含まれる特定のデータフィールドを変更する機能。
  • キュー管理 - パケットを受信し、処理した後に送信されるようにスケジュールすると、それをキューに格納する機能。
  • 制御処理 - パケットを処理するマイクロオペレーションは、システム内の他のノードとの通信およびオーケストレーションを含むマクロレベルで制御される。
  • パケットバッファの迅速な割り当てと再循環

アーキテクチャパラダイム編集

高いデータレートに対処するために、いくつかのアーキテクチャパラダイムが一般的に使用されている。

さらに、トラフィック管理は、L2 - L3ネットワーク処理において重要な要素であり、かつては様々なコプロセッサによって実行されていたが、これはネットワークプロセッサアーキテクチャの不可欠な部分となり、そのシリコン領域の大部分は統合トラフィックマネージャに費やされている[1]。最新のネットワークプロセッサには、コア間で小さなメッセージを交換するために最適化された低遅延で高スループットのオンチップ相互接続ネットワークも装備されている。このようなネットワークは、共有メモリの標準的な使用とは別に、効率的なコア間通信のための代替機能として使用できる[2]

アプリケーション編集

ネットワークプロセッサの一般的な機能を使用して、ソフトウェアプログラムはネットワークプロセッサが実行するアプリケーションを実装し、その結果、物理機器がタスクを実行したりサービスを提供したりする。ネットワークプロセッサ上で動作するソフトウェアとして一般的に実装されているアプリケーションには、次のようなものがある[3]

  • パケットフレームの識別と転送、すなわちルータおよびスイッチングハブの基本動作。
  • Quality of service(QoS)の実施 - 様々なタイプ・クラスのパケットを識別し、低優先のタイプ・クラスのパケットを犠牲にして高優先のタイプ・クラスのパケットを優先的に処理する。
  • アクセス制御機能 - 特定のパケットがネットワーク機器を通過することを許可するかどうかを決定する。
  • データストリームの暗号化 - ハードウェアベースの暗号化エンジンを内蔵しており、個々のデータフローをプロセッサで暗号化できる。
  • TCPオフロード処理

関連項目編集

脚注編集

  1. ^ Ran Giladi (2008). Network processors: architecture, programming, and implementation. Morgan Kaufmann (Elsevier). 978-0-12-370891-5. [1]
  2. ^ Buono, D.; Mencagli, G. (1 July 2014). “Run-time mechanisms for fine-grained parallelism on network processors: The TILEPro64 experience”. 2014 International Conference on High Performance Computing Simulation (HPCS): 55–64. doi:10.1109/HPCSim.2014.6903669. http://ieeexplore.ieee.org/document/6903669/. 
  3. ^ Douglas E. Comer (2005). Network Systems Design Using Network Processors: Intel 2XXX Version. Addison-Wesley. ISBN 978-0-13-187286-8.