ソリューション概要
Cisco QuantumFlow Processor:シスコの次世代ネットワーク プロセッサ
要約
ネットワーク エッジが変化していること、そして既存のネットワーク プロセッサの設計では爆発的に増加するビデオ トラフィック、新しく台頭しつつあるコラボラティブ アプリケーション、およびネットワーク内のあらゆる場所であらゆるサービスを安全に提供するボーダーレス ネットワーキングの必要性に対処できないことをシスコが認識したのは、今から5 年前のことでした。汎用のプロセッサは、柔軟なネットワーク サービスや迅速な機能の開発を可能にしましたが、トラフィックの優先順位付けのメカニズムに欠けているうえ、フォワーディング能力の低さが問題となっていました。過去数年間で、より高速のネットワーク プロセッサ テクノロジーが主流となり、年率 100% 以上の速度で成長しています(Network Processors: A Heavy Reading Competitive Analysis — 2005 年 1 月)。ただし、過去数年間においても、市販の多くのマルチコア ネットワーク プロセッサは、高いスループットを提供しつつも、固定機能のパイプライン処理や、柔軟性に欠ける分類およびパケット処理プログラミング言語を使用するものであり、サービスの柔軟性が不足していました。Cisco QuantumFlow Processor は、このような硬直した処理テクノロジーから脱却し、分類、サービス統合、およびトラフィック管理を可能にする真の並列処理および柔軟なフロー処理に移行することで、一段階上のネットワーク プロセッサ テクノロジーを実現します。
シスコの開発チームは、先進的なネットワーク プロセッサである Cisco QuantumFlow Processor の開発に、600 人年以上を費やしてきました。このネットワーク プロセッサは、柔軟なサービスが可能な汎用プロセッサと高性能のフォワーディング エンジンの優れた面を組み合わせたものです。このプロセッサは、超並列処理、組み込みの Quality of Service(QoS)、および高度なメモリ管理を統合すると同時に、統一されたサービス展開とプログラマビリティを提供することを目的として設計された、業界初の、完全に統合されたプログラマブル フロー プロセッサです。このプロセッサが掲げる以下の 4 つの目標によって、サービス プロバイダー アプリケーションとエンタープライズ アプリケーションの両方にとって理想的なものとなっています。
スケール
Cisco QuantumFlow Processor は、現在のネットワーク サービス要件のほとんどすべてに対応可能な、高速のネットワーク処理とスケーラビリティの絶妙なバランスを実現します。このような高度な機能セットを備えた何百というプロセッサにより、多数のアプリケーションを柔軟にフロー処理することのできるネットワーク プロセッサ リソースを通じて、ネットワーク全体に配置された 100,000 以上のキューを処理することができます。
パフォーマンス
Cisco QuantumFlow Processor は、チップ本体内で、幅広い(5 から 100 Gbps 超)のパケット処理帯域幅を提供できます。これは、パケット処理にペイロード全体およびフレーム ヘッダーを使用できることを意味し、これにより、ディープ パケット インスペクションおよびアプリケーション固有の処理が加速されます。
機能の速度と多様性
Cisco QuantumFlow Processor は、超並列 CPU アーキテクチャを活用するとともに、新しいデータパス機能やサービスの迅速なデリバリを可能にするソフトウェア アーキテクチャを採用しています。このプロセッサは、シスコの多くの製品ラインで使用可能な新しいハードウェアおよびソフトウェア アーキテクチャが採用されています。シスコは、ミッドレンジおよびハイエンドのルーティング分野において、製品ライン全体を通じて真の一貫性を持つフォワーディング アーキテクチャを提供します。
複数世代
Cisco QuantumFlow Processor 独自のソフトウェア アーキテクチャにより、このネットワーク プロセッサの長期的な開発が可能となり、何世代ものハードウェアにわたり、同じソフトウェアを使用することができます。
概要
Cisco QuantumFlow Processor は、ハードウェアとソフトウェアの両方を包括するアーキテクチャとして設計されました。現バージョンの QFP では、2 つのシリコンが使用されています。今後のバージョンでは、ここで説明する同じソフトウェア アーキテクチャに基づき、シングル チップ ソリューションが採用される可能性があります。「Cisco QuantumFlow Processor」という呼称自体が、ネットワーク プロセッサのハードウェアおよびソフトウェアを包括するアーキテクチャを表しています。現在の Cisco QuantumFlow Processor は、最先端の 90 nm テクノロジーを使用し、3 つの主要コンポーネントを統合しています。
- 40 のカスタマイズされたパケット プロセッサ コア(900 MHz 〜 1.2 GHz)が 1 つのシリコンに集約されています。この大量の並列処理能力があるため、ルータ内で他のサービス ブレードを使用する必要はありません。すべての処理はチップ上で実行されます(図 1)。
図 1 Cisco QuantumFlow Processor エンジン
※ 画像をクリックすると、大きく表示されます。
- キューイング専用の柔軟なエンジンにより、バッファ、キュー、およびスケジューリング(BQS)処理の大幅なオフロードを実現し、今日のエンタープライズおよびキャリア ネットワークの両方において、加入者レベルおよびインターフェイス レベルの複雑なキューイング要件を解決します(図 2)。
図 2 Cisco QuantumFlow Processor の Traffic Manager
※ 画像をクリックすると、大きく表示されます。
- 最後に、Cisco QuantumFlow Processor は、ANSI-C 開発環境に完全に準拠したソフトウェア アーキテクチャを使用して真の並列処理環境を実現します。従来のネットワーク プロセッサでは、実装が困難なマイクロコードに依存しているため、新機能の追加は困難で時間のかかる作業でした。また、高レベル言語で開発されていても、結果としてパイプライン アーキテクチャが採用されているものもあります。Cisco QuantumFlow Processor では、強力な並列処理アーキテクチャ上に構築された業界標準のツールと言語を利用して、お客様の必要性に応じて新機能を迅速に追加できます。このアーキテクチャは、今日のネットワーク処理に関係するソフトウェア アーキテクチャのパラダイムの変化と進化を代表するものです。
シスコは現在のネットワーク処理テクノロジーおよび Cisco IOS® ソフトウェアを慎重に分析した結果、フォワーディングとサービスの組み合わせという重要な要件を解決する柔軟なプロセッサを開発しました。
Cisco QuantumFlow Processor はネットワーク処理における革新的な進歩というだけではなく、今後何年にもわたり、ビジネスおよびネットワーク ソリューションを提供するための基盤となります。
Cisco QuantumFlow Processor のアーキテクチャ
Cisco QuantumFlow Processor は、単なるチップまたはハードウェアによるソリューションではありません。これは、シスコの将来の製品にわたって使用される、次世代のハードウェアおよびソフトウェア アーキテクチャです(図 3)。
図 3 Cisco QuantumFlow Processor の主要ブロック図
※ 画像をクリックすると、大きく表示されます。
Cisco QuantumFlow Processor のアーキテクチャは、パイプライン式ではなく、中央の共有メモリを使用した並列処理です。プロセッサ エンジンは、フォワーディング パス ソフトウェアの実行に関連するすべてのフローのすべての処理を担当し、Traffic Manager 機能はシステム インターフェイスと I/O インターフェイスの両方のキューイングおよびスケジューリング機能を担当します。Traffic Manager はシステムの他の部分および I/O インターフェイスにパケットを転送し、リサイクル パスを通じてパケット プロセッサ自体にパケットを戻すことができます。Cisco QuantumFlow Processor は、高帯域幅の外部インターフェイスを多数備えています(この図はすべてを示しているわけではありません)。
- このネットワーク プロセッサ ファミリは、複数のインターフェイスにわたり、5 Gbps から 100 Gbps 超までの範囲の双方向の外部(チップ外部の)帯域幅をサポートします。これらのインターフェイスは、実際の Shared Port Adapter(SPA; 共有ポート アダプタ)インターフェイスや分散システム上のファブリック インターフェイス宛ての内部トラフィックと外部トラフィックの両方で使用される他、パントされたトラフィックを処理するルート プロセッサなどのシステム固有リソースへのトラフィックでも使用されます。
- Cisco QuantumFlow Processor が組み込まれたホスト システム上にある制御プロセッサへのアクセス用に別個の高速インターフェイスが使用されます。この高速インターフェイスは、プロセッサのプログラミングや、プロセッサとの間でテーブルやデータベースをやり取りするために使用されます。
- 大規模なソフトウェア ライブラリ、パケット バッファ、およびキューイング状態を保管するため、外部の低遅延のメモリ、Ternary Content Addressable Memory(TCAM)およびスタティック RAM(SRAM)との間の多数の高速インターフェイスが使用されます。
Cisco QuantumFlow Processor アーキテクチャの重要な特性の 1 つとして、このアーキテクチャは、さまざまなタイプのシステムで共通に使用できます。新しい Cisco ASR 1000 シリーズ アグリゲーション サービス ルータにはこのアーキテクチャが組み込まれています。Cisco ASR 1000 プラットフォームの場合、この非常に強力なチップセットだけで中央システムのフォワーディング エンジン全体が構成されています(図 4 の構成は、アクティブ/スタンバイ冗長性のための 2 番目のプロセッサを含みます)。
図 4 Cisco ASR 1000 シリーズ ルータ上の Cisco QuantumFlow Processor(6 ラックユニット [6RU] の集中フォワーディング プレーンの例)
※ 画像をクリックすると、大きく表示されます。
図 5 で示すような分散システムの場合、Cisco QuantumFlow Processor を将来のラインカード上で使用することで、ラインカードの入力または出力データパス処理の一部またはすべてを処理できます。
図 5 分散ラインカード上の Cisco QuantumFlow Processor
※ 画像をクリックすると、大きく表示されます。
高レベルのパケット フロー
図 6 は、システムの基本アーキテクチャを示しています。
図 6 Cisco QuantumFlow Processor の基本アーキテクチャ
※ 画像をクリックすると、大きく表示されます。
- レイヤ 2 フレーム全体が Cisco QuantumFlow Processor に到着し、パケット プロセッサのオンチップ パケット メモリで受信されます。このプロセッサ単体で、ヘッダーだけでなくパケット全体の処理と分析が可能です。たとえば、外部のプロセッサを必要とすることなく、Network Based Application Recognition(NBAR)および Flexible Packet Matching(FPM)を実現します。
- その後 Cisco QuantumFlow Processor は、パケット コンテキストを空いている PPE スレッドに割り当てます。プロセッサには、処理に使用可能なこのようなスレッドが常時 160 存在します。この数は将来的に拡張される予定です。PPE については、この次のセクションで詳しく説明します。
- PPE スレッドは、ソフトウェア内の機能チェーンに従ってパケットを処理します。PPE はパケット処理にあたり、パケット プロセッサ チップ上のさまざまなハードウェア支援(後述)を使用します。
- 処理の終了後 PPE スレッドは、出力キューに入れてスケジューリングおよび転送できるように、Traffic Manager および独自のパケット バッファに向けてパケットを解放します。この時点で、Traffic Manager は以下のいずれかを実行できます。
- 非常に柔軟で任意性の高い階層的キューイング構成に従って、物理インターフェイス上のパケットの転送をスケジュールする。
- 別の PPE スレッド(たとえば入力シェーピングまたはマルチキャスト処理)に戻すように、またはシステム自体がトラフィックを受信する必要がある場合は暗号装置やルート プロセッサなどのパケット プロセッサ外のリソースに戻すように、パケットの転送をスケジュールする。
パケットがマルチパス処理を必要とするかどうかは、パケットを最後に処理した PPE スレッドが決定します。すでに完了したパケット処理が後続の PPE 処理で繰り返されることのないように、パス間で状態の引き継ぎが行われます。
パケット プロセッサ エンジン
各 PPE は 32 ビットの Reduced Instruction Set Computer(RISC; 縮小命令セット コンピュータ)コアです。各 PPE は 4 つのスレッドを処理可能なため、これにより、4 つのパケットを独立して並列で処理できることになります。言い換えるならば、Cisco QuantumFlow Processor は、40 x 4、つまり 160 の独立したパケット処理リソースを潜在的に備えていることになります。パケット処理に使用されるソフトウェア モデルは、各 PPE スレッドによるパケットの独立処理を可能にするものであり、処理対象のパケットおよびチップ内のリソースの使用に関して緊密な結合は適用されません。1 つのスレッドが各種のハードウェア支援(次のセクションで説明します)を待つ間、PPE は他の 3 つのスレッドの処理を続けることができるため、PPE プロセッサの使用率を最適に保ち、パケット処理の遅延を最小化できます(図 7)。
図 7 パケット プロセッサ エンジン
※ 画像をクリックすると、大きく表示されます。
パケットがオンチップ メモリに到着すると、ディストリビュータ機能により、PPE のスレッドの 1 つに特定のコンテキスト(つまりパケット)が割り当てられます。割り当てを受けた PPE は、オンチップ メモリ内でのパケットのライフサイクル全体の処理を担当し、その後、スケジューリングのために Traffic Manager にパケットを送信します。各 PPE スレッドでは、ANSI-C で作成された組み込みソフトウェアが使用されます。PPE によるパケット処理で実際に実行される命令、および速度と遅延は、次のような多くの要因に依存します。
- この特定のパケットで使用可能な機能(プレフィクスのルックアップ、Weighted Random Early Detection [WRED; 重み付けランダム早期検出]、トラフィック ポリシング、Cisco IOS Firewall、および Network Address Translation [NAT; ネットワーク アドレス変換] 処理、ブロードバンド アクセス [BBA] など)の数も 1 つの要因です。
- 2 番目の要因は、内部リソースおよび外部リソースへの依存度です(次のセクションで説明します)。
- 3 番目の要因は、PPE によるマルチパス処理の使用度です。一般的に、各 PPE は、Cisco QuantumFlow Processor の 1 回のパスでパケット処理を完結しようとしますが、パケットの遅延の最適化が目標である場合は、パケットを 2 回または 3 回プロセッサでリサイクルする必要があります。
- 入力のシェーピング
- マルチキャスト(Cisco QuantumFlow Processor はパス間で状態を保持できます。パケット処理を段階的に実行できるため、ファンアウト スタイルのマルチキャスト処理の場合に特に有効です)
また、Cisco QuantumFlow Processor は、リサイクル中の高優先度のトラフィックが、新しく到着した低優先度のトラフィックよりも優先的に PPE リソースにアクセスできるようなパケットの優先処理の適用にも役立ちます。同様に、リサイクル中の低優先度のトラフィックよりも、新しく到着した高優先度のトラフィックが優先されます。
PPE の機能を要約すると次のようになります。
- 特定のパケットのパケット処理を完了するために必要な命令のみを実行します。各 PPE スレッドは、各 PPE で使用可能な、サービス単位の大規模データベースから検出されたすべてのフローを対象としてパケット処理を実行できます。PPE スレッドは、特定のフロー処理または特定の機能に専用のものではなく、Cisco QuantumFlow Processor に実装されたすべてのソフトウェアに従って稼働できます。
- キューイングまたはスケジューリングは行いませんが、高度な分類、NBAR、FPM、トラフィック ポリシング、および WRED などの操作を実行するためのハードウェア支援を使用できます。
- Cisco QuantumFlow Processor はフローのライフタイムの間は各フローの状態を保持できるため、フローが新規か既存かに関わらず、どの PPE スレッドでも到着したパケットを処理できます。
- Cisco QuantumFlow Processor はビデオの配布、音声の終端、NetFlow データの収集、および Cisco IOS Firewall や NAT に関係するセキュリティ フローなど、アプリケーションおよびサービスのフロー情報を収集できます。フローに関係する以下のような詳細なデータを収集できます。
- 期間、パケット、およびバイト カウント
- カプセル化された(Generic Routing Encapsulation [GRE; 総称ルーティング カプセル化])Remote Switched Port Analyzer(ERSPAN)、Flexible NetFlow、および合法的傍受など、パケットの断片やアプリケーションのコピー
- Cisco IOS Firewall および NAT のセッションの確立と解放の詳細なログ。Cisco QuantumFlow Processor は、セッションの作成またはパケットの解放をパントする必要はないため、ルーティング プラットフォーム内の制御プロセッサによる CPU の使用が減少します。
- Session Border Controller(SBC)アプリケーションのコール品質
- NetFlow コレクションの柔軟なフロー モニタリング。Cisco QuantumFlow Processor は、大量のフロー キャッシュ データをプロセッサ外へ直接エクスポートできるため、ルーティング プラットフォーム内の制御プロセッサによる CPU の使用がさらに減少します。Sampled NetFlow および各種の一般的な集約スキーマを使用することで、このキャッシュの使用が最適化されます。
- 監査。Cisco QuantumFlow Processor では、すべてのアクティブ フローに関する情報の監査が可能な他、フローのライフタイムの終了をポリシー機能に通知する必要がある場合にコントロール プレーンにシグナルを送ることができます。
Cisco ASR 1000 プラットフォームに組み込まれた Cisco QuantumFlow Processor の各 PPE は、1 秒間に 150,000,000 の命令(つまり、6.66 ナノ秒ごとに 1 つの命令)を実行できます。これは、機能を有効化した状態で、単一パスのパケットの遅延を数十マイクロ秒単位に抑えることができることを意味します。
パケット プロセッサ エンジンのリソース
各 PPE はオンチップおよびオフチップの多数のハードウェア支援機能にアクセスできます。
- レイヤ 1 キャッシュ(16 KB)は同じ PPE のスレッド間で共有され、レイヤ 2 キャッシュ(デュアル 256 KB)はすべての PPE のスレッド間で共有されます。レイヤ 1 およびレイヤ 2 命令キャッシュは、Cisco QuantumFlow Processor 内の各 PPE に命令への非常に高速のアクセスを提供します。一般的に、複数の PPE で処理中のパケットがすべて同じフォワーディング パス機能を必要とする場合でも、各 PPE スレッドが、PPE を最も有効に活用するような方法で、最も高速のメモリを使用してパケットを処理できるものと十分に想定することができます。
- 各スレッドは専用のレイヤ 1 データ キャッシュにアクセスし、各 PPE スレッドのアドレス空間に直接にマップされたメモリとして、外部の大容量の低遅延メモリにアクセスできます。
- さらに、各 PPE は、パケットの処理時に、ネットワーク アドレスおよびプレフィクスのルックアップ、ハッシュのルックアップ、WRED、トラフィック ポリシング、範囲のルックアップ、および高度な分類およびアクセス コントロール リスト(ACL)のための TCAM など、各種のハードウェア機能にアクセスして利用できます(図 8)。
図 8 ハードウェア 支援
※ 画像をクリックすると、大きく表示されます。
- 各 PPE の重要な内部リソースとして、ハードウェア ロック マネージャがあります。処理量の少ないフローが処理に時間のかかる可能性のあるフローの終了を待つ必要がないように、Cisco QuantumFlow Processor 内の個々のスレッドおよび PPE が直接に通信し合うことはありません。Cisco QuantumFlow Processor 内のフローは、ネットワーク アドレスやポートの任意のハッシュというよりは、必要とされる処理や高度な分類に基づいて定義されます。出力スケジューリングのためのオンチップ メモリからのパケットの送り出しに関してなんらかの調整が必要な場合は、ロック マネージャがフローのパケット順序を正しく維持します(ソフトウェア制御による)。
- Cisco ASR 1000 上の Cisco QuantumFlow Processor のもう 1 つの重要なリソースは、オフチップの暗号化エンジンです。PPE は暗号化機能にアクセスするためにパケットを Traffic Manager に送信します。暗号化エンジンへのバッファリング、キューイング、スケジューリングはここで行われます。暗号化操作が完了すると、パケットは追加の処理のために PPE に戻されます。この例は、Cisco QuantumFlow Processor での複数パスの処理を示しています(図 9)。
図 9 Cisco ASR 1000 暗号化支援
※ 画像をクリックすると、大きく表示されます。
一般的に PPE は、ハードウェア リソースを使用できるため、長い ACL や暗号化機能を使用する場合のような非常に重いコンピューティング処理を実行する必要はありません。また、ハードウェア リソースの使用中、PPE は他のスレッドのフローのパケット処理を続行できるため、各 PPE の使用を最適なレベルで維持できます。これは、Cisco QuantumFlow Processor を通じて効率的な処理パスを提供するという総合的な目標にかなうものです。集中的フォワーディング エンジンまたは分散処理のいずれにおいても、プロセッサ コンプレックスは豊富な処理機能を提供すると同時に、すべてのシステム リソースの効率的な使用とボトルネックの回避を保証します。
Cisco QuantumFlow Processor のバッファ、キュー、およびスケジューリング:Traffic Manager
図 10 は、Cisco ASR 1000 シリーズ組み込みサービス プロセッサ(ESP)に搭載された Cisco QuantumFlow Processor のアプリケーションを示しています。
図 10 Cisco ASR 1000 シリーズ組み込みサービス プロセッサ(ESP)で使用される Cisco QuantumFlow Processor
※ 画像をクリックすると、大きく表示されます。
パケット処理が完了すると、PPE スレッドはパケットを Traffic Manager 宛てに解放します。実際のキュー スケジューリングに関係するすべての操作はここで実行されます。Traffic Manager(図では BQS ブロックとして示してあります)は、高度で柔軟なリアルタイムのキューイング ハードウェアを実装しています。
- 128,000 のキュー。各キューに 3 つのパラメータを設定できます。
- 最大帯域幅(Cisco IOS Software Modular QoS CLI(MQC)では「shape」レート)
- 最小帯域幅(Cisco IOS Software MQC では「bandwidth」レート)
- 超過帯域幅(MQC では「bandwidth-remaining ratio | percent」)
- さらに、適用する QoS ポリシーごとに、2 つのプライオリティ キューを有効化できます。
- QoS ポリシー内のレイヤの数と構成は柔軟に設定できます。今日のネットワークで使用されている既存の階層とは無関係に階層を使用できます。Traffic Manager はソフトウェアの制御下でほとんどあらゆる階層を実装できます。
- Traffic Manager は、チップの 1 回のパスに複数レベル(無制限)の階層をスケジュールできます。さらに、キューイング操作を、チップセットを経由する複数のパスに分割できます(たとえば、入力シェーピングまたはキューイングの後に出力キューイング)。Cisco QuantumFlow Processor の Traffic Manager により、物理インターフェイスと論理インターフェイスに別個の QoS を同時に適用してから、それらを同じキューイング階層にまとめてリンクすることで、現在の業界で使用可能な中でも最も高度なキュー階層を、すべてソフトウェアの制御下で実現できます。
- パケットの優先順位は維持され、階層を下方に伝播されるため、VLAN レベル、物理ギガビット イーサネット レベル、および Cisco ASR 1000 上で、パケットを適切な優先度で処理できます。Traffic Manager 上のスケジューラでは、SPA インターフェイス プロセッサ(SIP)の帯域幅さえも考慮されます。
- 暗号装置やルート プロセッサなどの外部リソースについても、過負荷を生じることがないように、Cisco QuantumFlow Processor 上で適切なスケジューリングが行われます。ここでも、ネットワーク コントロール パケットを適切にパントできるように優先処理が適用され、高優先度の暗号化トラフィックは暗号化を必要とする可能性のある低優先度のトラフィックよりも先に暗号化されます。
リアルタイム スケジューリングの大きな利点は、Cisco QuantumFlow Processor 上のスケジューラが、SIP および SPA 上の出力バッファの空き状態を常にモニタリングしていることです。Traffic Manager は 64,000 のポートまたは仮想回路上で 1 秒間に何百万ものイベント(SIP および SPA 上の転送バッファからの出力キューのステータス情報)のモニタリングが可能な、今日の業界における最も正確なスケジューリング エンジンの 1 つです。Cisco QuantumFlow Processor は、対象のインターフェイスに対して 0.1 〜 1% の範囲の精度および正確性を実現するものと予想されます。出力インターフェイスは最大レートで使用されますが、プラットフォームの他の部分またはルータ(たとえば、Cisco ASR 1000 の SIP)によって発信トラフィックがドロップされるようなオーバーサブスクライブは決して発生しません。
結論
同一ネットワーク上にすべてのサービスとアプリケーションを統合した世界では、実際にサービスを提供するネットワーク内のエレメントが、増加し続ける要求に常に対応可能であることが求められます。Cisco QuantumFlow Processor は、表 1 に示す革新性により、将来の次世代ネットワークの実現を支援します。
表 1:他のベンダーと比較した Cisco QuantumFlow Processor の革新性
さらに、このプロセッサは最初の一歩にすぎません。Cisco QuantumFlow プロセッサは、シスコの複数世代プログラムとして、世代間のソフトウェアのポータビリティを可能にします。Cisco ASR 1000 および将来のシスコ プラットフォーム上の Cisco QuantumFlow Processor は、まだ設計されてさえいない統合およびサービスのモデルを実現するための基盤となります。品質やパフォーマンスを犠牲にすることなく柔軟なアップグレードを可能とする Cisco QuantumFlow Processor を使用することで、通信事業者および企業ネットワークの将来にも対応可能なネットワークの構築が可能になります。