JP2009506645A - 高速ネットワークでの再構成可能ビットストリーム処理のための全プロトコルエンジン - Google Patents
高速ネットワークでの再構成可能ビットストリーム処理のための全プロトコルエンジン Download PDFInfo
- Publication number
- JP2009506645A JP2009506645A JP2008528063A JP2008528063A JP2009506645A JP 2009506645 A JP2009506645 A JP 2009506645A JP 2008528063 A JP2008528063 A JP 2008528063A JP 2008528063 A JP2008528063 A JP 2008528063A JP 2009506645 A JP2009506645 A JP 2009506645A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- data
- stage
- bitstream
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
Abstract
再構成可能なプロトコルに無関係なビットストリーム処理エンジン、及び関連するシステムとデータ通信方法論が、少なくとも毎秒10ギガビットの速度で動作する高速ネットワーク間のファブリック間相互作用性を提供するという目標を達成するように適応される。ビットストリーム処理エンジンは、既存の通信プロトコル間で相互作用性を可能にするだけではなく、将来の通信プロトコルを提供する能力も持つシームレスなネットワークファブリックを作成するために、適切なスイッチと関連するネットワーク要素で構成できる全プロトコル多段階プロセッサとして動作する。本発明の方法及びシステムは、ストレージネットワーク、通信ネットワーク及びプロセッサネットワークを含むネットワークに適用できる。
【選択図】 図1A
【選択図】 図1A
Description
本発明は、概してネットワークにおけるデータ通信の分野に関する。さらに詳細には、本発明は再構成可能なプロトコルに無関係なビットストリーム処理エンジンに関し、少なくとも毎秒10ギガビットの速度で動作する高速ネットワークに適応した関連システム及びデータ通信方法論に関する。
(関連出願)
本願は、それぞれの開示が参照することにより本書に組み込まれている、2005年8月23日に出願された「高速ネットワークでの再構成可能ビットストリーム処理のための全プロトコルエンジン(Omni−Protocol Engine for Reconfigurable Bit−Stream Processing in High−Speed Networks)」と題される米国仮特許出願番号第60/710,561号、2006年1月23日に出願された「ハードウェア/ソフトウェアにより実現された二重冗長構成のシェルフ管理コントローラ(Shelf Management Controller with Hardware/Software Implemented Dual Redundant Configuration)」と題される米国仮特許出願番号第60/761,129号、2006年7月25日に出願された「高度TCAベースのパッケージング及びイーサネット(登録商標)スイッチ型ファブリックを有する電気通信プラットホーム及び計算プラットホーム(Telecommunication and Computing Platforms Having Advanced TCA Based Packaging and Ethernet(登録商標) Switched Fabric)」と題される米国仮特許出願番号第60/820,243号、及び2006年8月11日に出願された「一意IDに基づいて制約を受けた近傍の中での短縮されたデータフレームのために強化されたイーサネット(登録商標)プロトコル(Enhanced Ethernet(登録商標) Protocol for Shortened Data Frames Within a Constratined Neighborhood based on Unique ID)」と題される米国仮特許出願番号第60/822,181号に対する優先権を主張する。
本願は、それぞれの開示が参照することにより本書に組み込まれている、2005年8月23日に出願された「高速ネットワークでの再構成可能ビットストリーム処理のための全プロトコルエンジン(Omni−Protocol Engine for Reconfigurable Bit−Stream Processing in High−Speed Networks)」と題される米国仮特許出願番号第60/710,561号、2006年1月23日に出願された「ハードウェア/ソフトウェアにより実現された二重冗長構成のシェルフ管理コントローラ(Shelf Management Controller with Hardware/Software Implemented Dual Redundant Configuration)」と題される米国仮特許出願番号第60/761,129号、2006年7月25日に出願された「高度TCAベースのパッケージング及びイーサネット(登録商標)スイッチ型ファブリックを有する電気通信プラットホーム及び計算プラットホーム(Telecommunication and Computing Platforms Having Advanced TCA Based Packaging and Ethernet(登録商標) Switched Fabric)」と題される米国仮特許出願番号第60/820,243号、及び2006年8月11日に出願された「一意IDに基づいて制約を受けた近傍の中での短縮されたデータフレームのために強化されたイーサネット(登録商標)プロトコル(Enhanced Ethernet(登録商標) Protocol for Shortened Data Frames Within a Constratined Neighborhood based on Unique ID)」と題される米国仮特許出願番号第60/822,181号に対する優先権を主張する。
従来、ネットワークは、既定のネットワークの目的に基づきさまざまな種類のインフラストラクチャまたはファブリックに分けられている。結果として、さまざまな種類のネットワークが、それぞれが異なるプロトコルと異なるネットワーク要件を有し、それぞれがそのファブリック内でのデータ通信のための特定の要件を満たすように設計されている、ストレージネットワーク、通信ネットワーク、及びプロセッサネットワークのために開発されてきた。
プロセッサネットワークのケースでは、ネットワーク性能は高性能クラスタコンピューティング(HPCC)アプリケーションにおける重要な要素である。通常は、HPCCアプリケーションは長期間実行し、クライアントとサーバ間だけではなく、プロセッサ間でもネットワーク上で大きなデータセットのI/Oが持続されることを必要とする。インフラストラクチャが、ハイエンドなクラスタプロセス間通信のための絶対的な要件であるマルチギガビットの帯域幅で、低遅延の非常に高い可用性のサービスをサポートできなければならないのは予想どおりである。従来、HPCCネットワークはスイッチ型ギガビットイーサネット(登録商標)を活用する。例えば、ミリネット(Myrinet)、インフィニバンド(InfiniBand)、及びクアドリクス(Quadrics)等の独自仕様のプロトコルはHPCC環境において処理クラスタを接続する上でも幅広く使用されている。
大量のデータに対するニーズは、例えばHPCCアプリケーションでのネットワーク化されたプロセッサがストレージネットワークファブリックに効率的に接続されることを必要とする。従来、インフラをサポートするHPCCは、ファイバチャネルスイッチ等のストレージ接続ネットワーク(SAN)スイッチングファブリック、またはギガビットイーサネット(登録商標)ベースのネットワーク接続ストレージ(NAS)環境のどちらかを含む。ファイバチャネルは、クライアントとストレージデバイスの間での大量のブロックストレージデータの移動に最適化されるマルチギガビット速度とトランスポートプロトコルのためにSANファブリックにとって優勢なプロトコル及びトランスポートである。
インターネットプロトコル(IP)通信ネットワークが、より幅広いインターネットファブリック上のクライアントとサーバ間の一般的な通信だけではなく、異なるHPCCアプリケーション間の通信のためのファブリックも支配する傾向がある。インターネットSCSI(iSCSI)、インターネットファイバチャネルプロトコル(iFCP)、及びファイバーチャネルオーバーIP(FCIP)等のIPストレージネットワーク上でブロックストレージデータを移動するのに適したピギーバックプロトコルを採用したストレージネットワークもある。しかしながら、これらのピギーバックプロトコルは、必ずしも通信ネットワークとストレージネットワークの間の直接的な相互作用性を可能にしない。
これらの異なる種類のネットワークファブリック全体でファブリック間相互作用性を提供するという目標は周知の目標である。ネットワーク内で必要とされる処理のすべてが標準的なプログラム可能プロセッサで達成できるであろう低速ネットワークの関連でこの目標を達成することは簡単である可能性があるが、このような解決策は1秒あたり10ギガビット以上で動作する高速ネットワークに必要とされる高い通信速度では単に実行可能ではない。大部分、ファブリックの特定のプロトコルと中心スイッチノードでの共通プロトコルの間で遷移を行うために特殊化されたアダプタが使用されてきた。この手法はエンドユーザに対してトランスペアレントであるが、このようなアダプタのパッチワークが増え続けるプロトコル数という点で飛躍的に増える問題を呈することは、当業者にとって容易に明らかである。複数のプロトコルを処理できるであろう高速ネットワークスイッチを提供する能力は、少なくともいくつかのネットワーク装置製造メーカが可能ではないと考える解決策である。Silvano Gai、「LAN/WAN/WLAN/SANスイッチ及びルータのための統一されたアーキテクチャに向けて(Toward a unified architecture for LAN/WAN/WLAN/SAN switches and routers)」、23ページ、HSPR2003、シスコシステムズ社(Cisco Systems,Inc.)(毎秒10Gbの安価なLANスイッチの非可用性を留意する)。したがって、ネットワーク間のファブリック間相互作用性を提供するという目標に対する、高速ネットワークにとって効率的であるだけではなく、スケーラブルでもある解決策を発見するニーズがある。
本発明は再構成可能なプロトコルに無関係なビットストリーム処理エンジン、及び少なくとも毎秒10ギガビットの速度で動作する高速ネットワークの間のファブリック間相互作用性を提供するという目標を達成するために適応した関連システムとデータ通信方法論を提供する。ビットストリーム処理エンジンは、既存の通信プロトコル間だけではなく、将来の通信プロトコルに対処する能力も備えて、相互作用性を可能にするシームレスネットワークファブリックを作り出すために適切なスイッチと関連ネットワーク要素で構成できる全プロトコル多段プロセッサとして動作する。本発明の方法及びシステムはストレージネットワーク、通信ネットワーク及びプロセッサネットワークを含むネットワークに適用可能である。
本発明の一実施形態では、全プロトコル処理エンジンは、各部が少なくとも1つのビットストリーム段階プロセッサを有する進入部分と退出部分の両方を含むデータフロー処理エンジンとして動作する。好ましくは、各段階プロセッサは、データフローにおける特定の段階のために最適化される。データの流れが処理エンジンを通って移動するので、異なる処理がアセンブリラインの異なる段階として達成され、処理のすべてがデータの流れに合わせて調節されるという点で、データフロー処理エンジンは、概念上、かなり生産アセンブリラインのように機能する。処理エンジンを通過するデータの流れは、処理エンジンが接続されるネットワーク(複数の場合がある)の回線速度での処理エンジンの継続動作を可能にする速度で確立される。本実施形態で活用されるデータフローモデルは、従来のプロトコルプロセッサで必要となるであろうようなデータを追跡調査するために深く広範囲なバッファ管理に対するニーズを回避する。さらに、任意の段階でのエンジンは、スケーラビリティをサポートするために本来カスケード可能である。
全プロトコル処理エンジン(OPE)の一実施形態では、複数の段階は、少なくとも1つの進入段階ビットストリームプロセッサと、二次段階状態機械と、トラフィックプロセッサと、スケジューラと、退出段階ビットストリームプロセッサとを含む。進入段階ビットストリームプロセッサはデータフローの物理層と接続し、ビットストリームのために決定されたプロトコルに従ってビットストリームのためのフレーム及び/またはフローを確立する。二次段階状態機械は、好ましくはキー生成をパイプライン化する、プログラム可能な超長命令語(VLIW)フロー分類子を使用して、決定されたプロトコルに従ってフレーム/フローを構文解析する。フレーム/フロー処理はトラフィックプロセッサによって処理される。スケジューラはトラフィックプロセッサからのデータフロー出力を管理し、進入段階ビットストリームプロセッサは全プロトコル処理エンジンの中からデータフローの物理層と接続する。段階のすべては、OPEがプロトコル無関係となることができるように、動的に再構成可能且つプログラム可能である。
一実施形態では、二次段階状態機械とトラフィックプロセッサは、OPEの効率を改善するために新規のキールックアップ機構を活用する。トラフィックプロセッサは、トラフィックプロセッサ内のセグメントがフレーム/フローの既定のプロトコルに応じて実現される、複数セグメント化データフロープロセッサ機構として実現できる。トラフィックプロセッサの実施形態では、複数セグメント化データフロープロセッサは、フレーム/フローのデータフローが常駐する共通の共有バッファメモリにアクセスすることに対する仲裁された、及び/または時分割多重化(TDM)の手法を実現する。このようにして、各データフロープロセッサがフレーム/フロー内のデータのいくらかまたはすべてを、そのデータを処理するためにそのプロセッサ内の内部バッファの中にコピーする必要はない。さらに、データフロープロセッサはカスケード可能であり、段階抽象化とクロック抽象化の両方の結果として拡張可能である。
本発明の一実施形態では、全プロトコル48ポート非ブロック化QoSギガビットスイッチは、SPI4.2デジタルスイッチと接続される4台のOPEを使用して実現される。本実施形態では、各OPEは、SPI4.2デジタルスイッチへの接続のために、外部接続用に12のシリアライザ/デシリアライザ(SerDes)ポートと、3つのSPI4.2ポートに接続される。ストレージネットワーク、HPCCプロセッサクラスタ、イントラネット、及びインターネット通信ネットワークの真中に設置されるとき、このようなスイッチはこれらのネットワークのどれかまたはすべての中でプロトコルに無関係なネットワーク接続を可能にする収束ファブリックとして効率的に動作する。本発明のこの実施形態は、スイッチが再構成可能であるだけではなくオンザフライでプログラム可能であり、各パケットを、「ポートプロセッサ」を備える瞬時にプログラミングし直される/再構成可能なOPE、つまり中心的なスイッチング構造を形成するデジタルスイッチに従って違う風に(つまり例えば、毎秒10ギガビットで100%のパケットバイパケットルーティング)処理できるようにするという点で、インテリジェントスイッチング解決策を提供する。このようにして、スイッチング解決策は、数千のノードにスケーラブルであり、既存のネットワークインフラストラクチャと相互作用し、電話会社に信頼性/フォルトトレランス(つまり、5つの9の可用性)を費用効果が高い方法で提供する、高性能(>=ポート帯域幅あたり毎秒10ギガビット)で低遅延(<5usecスイッチング)の、プロトコルに無関係なポリシーをベースにしたスイッチングを提供する。
本発明の別の実施形態では、OPEと関連付けられたネットワーク要素は、システムのための診断と保守だけではなく、符号生成、フロー制御、性能プロファイリングと統計も管理するGUI管理システムとともに、レジスタアクセス制御(RAC)及びサブモジュールアクセス制御(SAC)装置を使用して、すべて動的に再構成可能であり、プログラム可能である。特定の実施形態では、GUI管理システムはシステムを仮想設計するためのモジュールと、「ウィジウィグ」(WYSIWYG)様式で設計されたとおりのアーキテクチャの予想性能をシミュレーションできるシミュレーションエンジンと、必要とされる場合、OPEと他の再プログラム可能/再構成可能なネットワークデバイスをプログラムし直すためのマイクロコードを生成する符号生成部(マイクロコードマネージャ)を含む。
本発明はネットワークにおけるワイヤスピードデータ経路処理のための新規の装置、システム及び方法を備える。図1Aは、本発明によるシステムの一実施形態のブロック図を描く。本実施形態にとって中心にあるのは、全プロトコルエンジン(OPE)である。OPEは、1)ビットストリーム中のビットを、関連するプロトコルに従って適切な定義されたプロトコルデータユニットにアセンブルする機能性と、2)遭遇するプロトコルに関わらず、アセンブルされたプロトコルデータユニットを処理し、ワイヤスピードスループットを提供する機能性という二重機能性を含むプロトコルに無関係なビットストリーム多段階プロセッサである。従来の技術で一般的な特殊化されたアダプタとは異なり、OPEにおけるこれらの機能の両方とも動的にプログラム可能である。したがって、既定のプロトコルまたはプロトコルデータユニットに適用する処理規則に対するプロトコルデータユニットのどちらかまたは両方が動的に変更可能である。
別段に示されない限り、本発明のために、用語プロトコルは制御ビット及び(ヌルであってよい)データビットまたは情報ビットの定義された分類(複数の場合がある)を有する直列化されたパケット通信プロトコルを指し、そのすべてが一式の標準的な命令または規則に従う。表1は、本発明の全プロトコルエンジンの一実施形態の属性のいくつかの概略を示す。
図1Bに示されるように、OPEは、それがいくつかの一意の処理ブロックを備えるという点で多段階プロセッサ機構である。各ブロックは、全プロトコルフロー処理機能のために最適化されている。各処理ブロックは、データ経路に沿ってワイヤスピードでの追加処理のための「ゲート」を提供する。ゲートインタフェースは、処理ブロックの待ち時間要件を満たすために高速パラレルレーンだけではなく、高速シリアルI/Oレーンも使用する。各処理ブロックの状態、特長、及び関数パラメータは、説明されるように、好ましくは「オンザフライ」でプログラム可能である。その結果として、OPEは再プログラム可能であるだけではなく、再構成可能でもある。
図41を参照すると、基本レベルで、各段階または処理ブロックは、構成成分、つまりデータフローの依存性を改変する成分と制御構造間のデータフロー依存性という点で抽象化できる。最高レベルの抽象化では、各段階は、段階が入力パケットフローオブジェクトを受け入れ、入力パケットフローと処理済みのパケットフローのどちらかまたは両方と関連するメタデータオブジェクトだけではなく、処理済みのパケットフローオブジェクトを出力できるようにするために制御構造を実現するジェネリックインタフェースを実現する。各段階は、ベースクラスのメンバーである。各ベースクラスは、それがベースクラスのために実現するメソッドのセットによって指定されるインタフェースを実現する。抽象化の中間レベルでは、各ベースクラスは、ベースクラスの機能性を拡張し、サブクラスを形成する追加モジュールを追加することによって拡張されてよい。各サブクラスは、ベースクラスメソッドの機能性を拡張する追加のメソッドを提供する専用のサブクラスインタフェースを実現する。抽象化の最低レベルでは、サブクラスによって提供されるインタフェースが、ベースクラスに存在しなかった成分を提供するために他のメソッドを提供することによって、及び/またはサブモジュールを追加することによってさらに拡張できる。クラスとそのサブクラスは、メソッドと、メソッドが作用するオブジェクトを変更することで再構成可能である。このようにして、ビットストリームプロセッサの各段階は、分化されたリソースとサービスを提供するためにプログラム自在に再構成できる。このようにして、多様な段階は、プロトコルと無関係なアーキテクチャでデータ(パケット)フローマシンに構成される。
フレームはビットのストリームとして定義され、ありとあらゆるビットの意味が1つまたは複数の事前に定義されたプロトコルフレーミング規則によって定義される。抽象化モデルはビットのストリームを入力として受け入れるためのメソッドを有する。ありとあらゆるビットの意味は、各段階がビットのストリームを受け入れることができるように、メソッドによって抽象化される。プロトコル処理は、ビットストリームの中のどこかに位置する、ビットのストリームの内の1つまたは複数のビットの中の情報に基づくアクションのセットを実行する別のメソッドで定義される。メソッドのような実現できる任意のクラスまたはサブクラスはプロトコル処理ステップを潜在的に実施できる。代替実施形態では、各クラスまたはサブクラスは、クラスまたはサブクラスによって提示されるジェネリックインタフェース内のメソッドを実現することにより特定のプロトコルを処理するようにプログラムできる。インプリメンテーションの詳細は、このようにして、符号または成分の再利用を可能にするために1つまたは複数のメソッドの後に「非表示」にすることができる。抽象化の結果、データフローアーキテクチャは、本来、既定の段階の処理がパケット間のギャップ間隔で、つまり次のパケットが到達する前に完了されるように配置される一連のパイプライン化された、予測可能な待ち時間段階となる。
各段階の抽象化は、1つまたは複数のパイプラインサブ段階の各段階への追加を可能にする。パイプラインの段階の中の各サブ段階は段階の中でサブ段階数で除算されるパケット到着時刻に等しい時間内でパケットに対するその作用を完了する。したがって、第1の段階は、パケット復号のためにメソッドを実現するサブクラスを構成してよい――つまり、それはデータパケットについてのメタデータを作成する。メタデータは入信パケットストリームの中の特定のプロトコルの特殊なビットパターンの位置についての情報を含んでよい。この点で、パケットデコーダはフレーム(定義されたビットのストリーム)を「分析する」。用語「実現する」が、本書ではファームウェアとハードウェアの1つまたは複数という点でのインプリメンテーションを意味するために使用されることを留意する。任意のファームウェア、ハードウェア、または前述された基本的な機能を実現するファームウェア−ハードウェアの組み合わせは、前記に参照されたメソッドを実現するために使用されてよい。例えば、パケット復号段階は、比較加速器付きのプログラム可能状態機械として実現されてよい。プロトコルタイプを考慮すると、PSMは例えばアドレスルックアップのために段階プロセッサによって必要とされるパケット内でフィールドを抽出する。パケットデコーダは、これらの3つの層のヘッダから情報を抽出するために第2層/第3層/第4層の構文解析を実行する。したがって、この機能性を実現するメソッドは、これらの3つの層のプロトコルを処理し、このようにしてベースクラスを拡張するために調整できる。
一実施形態では、データフロー処理エンジンの進入部分と退出部分はそれぞれ、マルチポートデータフローパケットメモリと接続される複数のビットストリーム段階プロセッサを有する。各ビットストリーム段階プロセッサは一意の命令メモリを備える。一実施形態では、第1のスイッチバスが、データフローパケットメモリとファブリックインタフェースとプロセッサインタフェース間で接続され、第2のスイッチバスはデータフローパケットメモリと複数のビットストリーム段階プロセッサの間で接続される。この実施形態では、第3のスイッチバスは複数のビットストリーム段階プロセッサと共通メモリインタフェースの間で接続される。共通メモリインタフェースは、外部メモリと、または内容アドレス可能メモリ(CAM)インタフェースと接続できる。
一実施形態では、OPEは、最も一般的に遭遇するプロトコルに必要とされる共通処理ブロックのセットをサポートする。コンピュータ集約型プロトコル処理のような追加の特長は、独自仕様のプログラム可能多機能処理ブロックを追加することによって実現できる。これらの計算処理ブロックは、OPEに、収束ネットワークファブリックを達成しようとする従来の技術の試みの特徴である種類のコストまたは性能のペナルティを招くことなく、任意のプロトコル環境で動作するために必要とされる拡張性を与える「オンザフライ」プログラム可能性も備えることができる。事実上OPEは、マルチプロトコル処理機能、つまり異なる高速プロトコルの間でゲートウェイとスイッチを必要とすることなくコンピューティングセンタの異種成分をマージする能力を提供することにより収束型のファブリックを可能にする。該OPE解決策は、OSI第2層から第7層に対して機能する。
一実施形態では、OPEの処理ブロックは、好ましくは、その開示が参照することにより本書に組み込まれている「プログラム可能回路をグラフィックでプログラムするための方法及び装置(Method and Apparatus for Graphically Programming a Programmable Circuit)」と題される米国特許番号第6,671,869号に説明されるようなGUIをベースにした符号生成部によってプログラムされる。プロトコルテンプレートが提示され、特殊フィールド上のアクションがアクションバケットにドラッグアンドドロップされ、それによりシステムは通信エンジンコードを生成する。さらに、GUIは「ウィジウィグ」(WYSIWYG)様式で、エンジンの予想性能を示す。システムは、最大性能を取得するために必要とされるアクションについてユーザにプロンプトを出す。チップ環境では、これらの機能は適切なリンクスピードを選択するために使用される。例えばFPGA等のプログラム可能プラットホーム環境では、さらに高容量のチップを選択できる。
図35A及び図35Bに描かれているようなGUIベースの符号生成部の特殊な実施形態では、プロトコルテンプレートが提示され、特殊なフィールドでのアクションがアクションバケットにドラッグアンドドロップされる。システムは通信エンジンコードを生成し、「ウィジウィグ」(WYSIWYG)様式でエンジンの予想性能を示す。このシステムは、最大性能を取得するために必要とされるアクションについてユーザにプロンプトを出す。チップ環境では、これらの機能は適切なリンクスピードを選択するために使用できるであろう。(前述のFPGA例のような)プログラム可能プラットホーム環境では、さらに高容量のチップが選択できるであろう。
「オンザフライ」機能性は、共通のローカルバスを共有する1台または複数の汎用プロセッサ(CPU)と関連して、例えばフィールドプログラム可能ゲートアレイによって提供されてよい。1つのこのような手法は、開示が参照することにより本書に組み込まれている「再構成可能なネットワークインタフェースアーキテクチャ(Reconfigurable Network Interface Architecture)」と題される米国特許番号第6,721,872号で開示されている。このような「オンザフライ」機能性を提供するための代替手法は、開示が参照することにより本書に組み込まれている「マイクロプロセッサのローカルバスでのフィールドプログラム可能ゲートアレイによる媒体処理(Media Processing with Field−Programmable Gate Arrays on a Microprocessor’s Local Bus)」、Bove Jr.ら、MITメディアラボ(MIT Media Lab)、米国02139マサチューセッツ州ケンブリッジ(Cambridge,MA 02319 USA)に説明されている。
ここで図2を参照すると、図1に示されているOPEの進入動作の一実施形態が説明される。ポート集約は、PHYデバイスとMACデバイスに特有である物理層プロトコルのフレーミングと、媒体に特殊なパケットデータをSPI4.2バーストフレームに変換することを含む。複数のポートからの小型SPI4.2バーストは、ラウンドロビン、時分割多重化様式でSPI4.2エンジンに渡される。SPI4.2チャネルは集約されているポート数に基づいた時間スロットに分けられる。8ポートアグレゲータが、SPI4.2チャネルを8個の等しい部分に分ける。アイドルバーストは、非アクティブである、または転送するデータがないポート用スロットのためのバスで生成される。
本実施形態のためのMACデバイスは、8x1GbE MACチップ(「MACチップ」)である。MACチップは、各1GbE MACからのイーサネット(登録商標)パケットデータの構成可能なバイト数(例えば32バイト)が、SPI−4.2インタフェースへの伝送のために、ラウンドロビン様式(ポート0からポート9)で予定されることを意味する「バーストインタリーブ」モードと呼ばれるものに対して構成される。1GbE MACからのバーストは、次にSPI−4.2バスでインタリーブされ、伝送される。小型(Runt)バースト(32バイトより小さいバースト)がパケットデリミタの開始と最後で考えられる。MACチップにより実行されるイーサネット(登録商標)パケット上での動作は(1)プリアンブルとフレーム開始デリミタ(SFD)を取り除くことと、(2)FCSを保持することとを含む。
SPI4.2エンジンは、好ましくは、SPI4.1に類似する内部フレーミングフォーマットにSPI−4.2フレーミングを変換するSPI−4.2エンジンの材料機能性を提供するコアを含む。データは16ビットのバーストでSPI4.2バスから到着し、バーストの最初の16ビットワードは、バーストがパケットの始まりであるのか、パケットの最後であるのか、あるいはパケットと、バーストの調達元のチャネル番号の続行であるのかを含むバーストについての情報を含む制御ワードを含む。16ビットの制御ワードが内部ルーティングタグに変換される一方、チャネルからの最高8個の16ビットデータワードが、64ビットのワードにアセンブルされ、渡される。
この実施形態では、内部ルーティングタグは、フレームが転送論理回路を通って移動するにつれてパケットバーストデータとともに内部バスに渡される。内部ルーティングタグはデータ有効のための1ビット、パケットの始まりのための1ビット、パケットの最後のための1ビット、データエラーのための1ビット、バーストサイズのための3ビット(0から7はそれぞれ1から8のバーストサイズを示す)とチャネルアドレスのための3ビットを含む。チャネルアドレスは、バーストが関連付けられているポートを示す。別の実施形態では、内部ルーティングタグが、ネットワーク層優先順位決定またはVLAN指定の優先順位に基づくQOS/COS情報を含んでよい。
フレームプロセッサによるフレーム処理は、ネットワークパケットの興味深い特徴を特定することを必要とする。これらの特徴は、宛先アドレスとソースアドレス、パケットタイプ、第3層と第4層のデータグラムとセッションアドレス指定を含む。加えて、フレームプロセッサは転送論理回路により処理される各パケットのために状態機械を維持する。
図3に示されるように、パケット状態機械は、データスチームの構成を追跡調査する。HPC解決策の場合、データストリームは、SPI4.2制御ワードのビットフィールドに基づいて分類される、パケットデータの複数のバーストから構成される。パケット状態機械は、SPI4.2で受信されるまたはSPI4.2から送信されるパケットごとにインスタンス化される。SPI有効(PACKET_VALID)信号がアサートされるとパケットはVALID(有効)状態に入る。パケット信号のSPI開始がアサートされると、パケットはSTART_OF_PACKET状態に入り、パケットのSPIの最後がEND_OF_PACKET状態への遷移を引き起こす。エラーステータスがエラーを示すと、状態機械はERROR状態に入り、それ以外の場合状態機械はINITに遷移する。
再び図2を参照すると、構文解析エンジン(パーサ)の責任は、フレームプロセッサによって提供される情報から複数のタプル分類子キーを構築することである。一実施形態では、分類子キーの生成には宛先アドレスだけが必要である。代替実施形態では、ルックアップエンジンは、分類子キーを構築し、このようにしてスイッチが個々のパケットまたはパケットストリームを転送するのにつれてスイッチの動作を修正するときに、任意の数のパケット特徴あるいはパケット状態/ポート状態も含むように機能強化されてよい。
パーサによって生成される分類子キーを使用して、ルックアップエンジンは退出宛先ポートを発見するために転送CAMに変換する。退出宛先ポートは内部ルーティングヘッダの中に入れられる。一実施形態では、内部ルーティングヘッダは、完全に進入ポート番号だけで構成される。代わりに、内部ルーティングヘッダは追加情報を含むことができる。転送CAMエントリは、SNMPベースの管理ステ−ション等の管理エンティティにアクセス可能となる。
トラフィックディレクタは、内部ルーティングヘッダで検出されるポートアドレスに基づいてCPUにフレームを転送する、及び/または対処することに関与する。適切なインタフェース論理が、転送論理回路とFPGA内のマイクロプロセッサの間で提供される。
スイッチファブリックとポートカードのフレーム処理論理回路の間でのデータの流れを処理することは待ち行列エンジンの責任である。待ち行列エンジンは、仮想待ち行列につながる8ポートカードスイッチで、スイッチファブリックの中の1GbE MACごとに仮想待ち行列を含む。各仮想待ち行列は複数のジャンボ(9K)パケットを保持するほど十分に大きい。各仮想待ち行列のためのインデックスは、仮想待ち行列の中のどこに次の64ビットのデータが格納されるのかを追跡調査するために維持され、そのインデックスはVQエンキューインデックスと呼ばれる。VQデキューは、スケジューラに渡される必要のあるデータの次の64ビットを決定するために調べられる。したがって、トラフィックディレクタからのデータは、VQエンキューインデックスによって示されるオフセット時に、宛先ポートのVQの中に格納される。逆に、VQデキューインデックスは、どのデータがスケジューラに渡されるのかを決定するために使用される。また待ち行列エンジンは、スイッチファブリックと仮想待ち行列の間に速度変更FIFOを、スイッチファブリックと転送論理回路の間の背圧を提示するフロー制御機構も提供する。
スケジューラは、スイッチファブリックにフレームを渡すときに待ち行列エンジンのデキュー機構を使用する。フレームはポート0からポート31までラウンドロビン様式でスイッチファブリックに渡されるために予定される。デキューは、XAUIコアがフレームをXAUIに変換する前にXGMIIでフレームをカプセル化することを含む。内部ルーティングタグと内部ルーティングヘッダは変換の間使用される。
ここで図3を参照すると、OPEの進入動作の一実施形態が説明される。待ち行列エンジンは、進入の逆である退出側で待ち行列を提供する。スイッチファブリックからのXAUIフレームは、XAUIコアによってXGMIIに変換される。XGMIIフレームはXGMIIフレーム内のポート番号に基づいて仮想待ち行列に待ち行列化される。
スケジューラは、進入とほぼ同じ様式で退出スケジューリングを達成する。フレームはラウンドロビン様式で待機解除されるが、退出データフレームがローカルバスインタフェースに変換され、内部ルーティングタグが生成されなければならない。一実施形態では、スケジューラは、単に放送を探し、CAMをソースアドレスで更新することによって、帯域外転送CAM更新を削減するために適応可能且つ発見的であるように設計される。
図4に示されているような退出SPI4.2変換は、進入の保存である。ローカルフレーミングフォーマットは、独自仕様のコアを使用してSPI4.2に変換される。退出ポート集約は、SPI4.2フレームバーストデータを媒体パケットにアセンブルし、それらのアドレス指定された退出インタフェースを通してそれらを送出することを含む。再び、これらは好ましくは、前記に参照されたMACチップである。退出動作は侵入の逆である。イーサネット(登録商標)パケットデータはインタリーブされたイーサネット(登録商標)パケットデータ(ポート0からポート9)のバーストでSPI−4.2から退出FIFOで受信される。退出FIFOが5つのバーストを受信するとき(またはEOPがパケット長に応じて到着するとき)退出FIFOは1GbE MACへの転送を開始する。好ましくは、退出フレーム処理は、フレームエージング、VLANヘッダストリッピング、内部転送ヘッダ削除、及び類似した動作等のフレームステータスチェックを実行するポート状態機械も維持する。MACチップによって実行されるイーサネット(登録商標)パケットでの動作は、(1)プリアンブルを追加する、(2)フレーム検出器の開始(SFD)を追加する、及び任意で(3)FCSを追加することを含む。
図5と図6に描かれている例示的な実施形態では、OPEが段階―0、段階―1、段階2...段階−nと命名されたパイプライン化された段階エンジンの選択されたシーケンスを提供する。各段階エンジンは、OPEが利用される機能性に基づいて別の拡張可能な再プログラム可能アーキテクチャを有してよい。したがって、パケットが、それが採取するソフトウェア命令に関して特徴付けられる従来の技術のプロセッサとは異なり、本発明は回線を下降するデータの変更を反映するためにオンザフライでインスタンス化できる特殊化された段階のアセンブリラインである。
本発明は進入ポート数に制限的ではないが、本発明は単一のポートに到達し、OPEを通るデータ経路に沿ったパケットの生涯を追跡調査するデータパケットという点で最もうまく説明される。これらのデータビットストリームのそれぞれの幅が複数ビットであることに留意することが重要である。幅は、ワイヤスピードスループットを可能にするために、パイプラインの各段階エンジンで使用できる処理時間(つまりクロックサイクル)の測度を提供する。任意の1つの段階での処理が予備段階で設定された時間制約の中で達成できない可能性が高いと考えられるとき、各段階エンジンは、各段階を構成するエンジン数を増やすことによって、特定の時間エンベロープ内で動作するように制約されている。
図7は、本来、部分的にプログラム可能状態機械(PSM)を含むプリプロセッサパケットフレーマである段階−0エンジンに備える本発明の実施形態の内の1つを描く。パケットが一度に64ビット幅で入信すると、フレーマは図1に描かれているような多様なフレームタイプを識別し、区別する。フレーマは、ロード可能な値と選択論理とともに、プログラム可能メモリベース状態機械と、高速メモリベースルックアップテーブルと、多様なコンパレータとから構成される。状態機械は、関心のあるパケットフィールドを選択し、設定値または、フレームタイプを決定するだけではなく、関心のあるフレームに印を付ける状態機械アルゴリズムを駆動する他のフレームデータに対して比較する。次にこの情報は、それがフレームを構文解析する方法に関してパーサに指示するのに役立つパーサに渡される。
プリプロセッサビットストリームプロセッサの本実施形態のさらに詳細な説明については、開示が参照することにより本書に組み込まれている付録Aが参照される。また、開示が参照することにより本書に組み込まれている、転送論理回路レジスタファイルの一実施形態を明示する付録Bも参照される。
OPEは、好ましくは少なくとも1台の予測可能なプログラム可能状態機械(PSM)を含む。一実施形態では、各PSMは32状態機械であり、156MHzの内部クロックの50ns/PSMが10命令あたり5nsに同等である。しかしながら、各PSMは、可変数のクロックを有することがある。段階−0エンジンは、相対的に高速のシリアルビットストリームを相対的に低速のパラレルn−ビット幅データストリームに変換することにより帯域幅処理滞留時間を設定する。帯域幅処理滞留時間は、回線速度に調整される。例えば10Mbpsのデータレートを処理するために、滞留時間はOPEの1段階あたり50nsである。
好ましくは、レジスタベースは、構成の部分としてロードされる値で事前設定されるプログラム可能ルックアップテーブルから成る。これらのレジスタは、次にマスク、コンパレータ、及び段階エンジンの動作に一体化したカウンタとの使用のために選択される。段階エンジン構成の例示的な構成は以下のように描かれている。つまり、プログラム可能ルックアップテーブルは、比較される最高34個の16ビット値を含む。テーブル出力ビットは、なされた場合には一致に対応する。例では、4台の8ビット幅のコンパレータと、256という最大ダウンカウントにとって最大ロード可能値が8ビットである2台のダウンカウンタがあってよい。パケットデータ選択幅は1バイトであってよく、レジスタ値フィールドサイズは16個の8ビット幅事前設定レジスタによって表現されてよい。状態機械命令は単語命令(SWI)であってよい。単語命令のセットは、セット、テスト、及び分岐から構成されるセットから選択されてよく、各命令の各フィールドは以下に示すような複数のスタブフィールドを取ってよく、各サブフィールドはカンマで分けられ、各メインフィールドはセミコロンで分けられる。例:SWI:set1,set2,set3,...setn;test1,test2,test3,...,testn;br1,br2,br3,...brn;
動作中、状態機械は、選択可能なベクトル入力に基づき条件付きの分岐を始めるであろう。このようにして、例えば条件(フレームバイト2==R2)は、事前設定されたレジスタR2値に対して、8のパケットロケーションバイト2を比較するであろう。分岐は、通常は次の制御状態を決定するが、プログラム可能状態機械の現在の状態の運転モードを変更するためにも使用できるであろう。
動作中、状態機械は、選択可能なベクトル入力に基づき条件付きの分岐を始めるであろう。このようにして、例えば条件(フレームバイト2==R2)は、事前設定されたレジスタR2値に対して、8のパケットロケーションバイト2を比較するであろう。分岐は、通常は次の制御状態を決定するが、プログラム可能状態機械の現在の状態の運転モードを変更するためにも使用できるであろう。
ここで図8A及び図8Bを参照すると、プリプロセッサパケットフレーミング方法の、XGMIIインタフェースから入信するイーサネット(登録商標)パケットへの適用が描かれている。このことから、XGMIIインタフェースブロックはプリアンブルを取り除き、図8B:イーサネット(登録商標)の標準フォーマットに図示されるように32ビットインタフェースを内部64ビット表現に変換する。
64ビット幅のパケットがパイプラインを通って流れるに従い、状態機械は、それがどの16ビットフィールドをプログラム可能復号ラムに送信することを希望するのかを選択する。図9:パケットタイプ選択及び図10:プログラム可能復号RAMを参照すること。
状態機械は、プログラム可能レジスタに対して比較されるパケットからの他の情報も選択し、結果は図10に示されるように状態機械にフィードバックされる。図10は、例えばVLANとSNAPの入力が選択され、選択されたレジスタに対して比較され、結果は分析のために状態機械にフィードバックされるのを示す。
本発明の一実施形態による状態機械の目的は、プロトコル層ヘッダ情報の抽出を制御することである。状態機械は、5本の出力データ回線が次の状態クロッキングのために5つのアドレス入力にフィードバックされる、プログラム可能ブロックメモリから構成される。他の出力の状態機械は、例えば、状態機械自体に対する次の入力だけではなく、比較論理のための取り込むフレームデータ、フレームレイヤオフセット検出、及び多様な入力選択のための多様な関数も制御する。
プログラム可能状態機械の1つの目的はパケットデータの復号と抽出を制御することである。図14の状態図は、この状態機械がイーサネット(登録商標)パケットを処理するためにどのようにセットアップできるのかを描く。この例では、状態機械はイーサネット(登録商標)第2層だけを行ったが、例えば第4層までずっと続行することもあるであろう。
復号RAMは選択されたフィールドの高速プログラム可能復号を行うための方法を提供する。この復号RAM回路に対する入力はパケットから出現する選択可能な16ビットフィールドであり、出力は図10に前記に描かれているように4ビットのタイプ復号である。これを行う1つの方法は、最初に全ゼロでメモリを充填し、次に復号を希望するタイプの復号ビットを書き込むことである。16ビットアドレスは「タイプ」に相当し、データはそのタイプに所望される復号値に一致する。通常の状況では、2ビットだけが設定され、1ビットがポートBに設定され、同がポートAに設定される。復号ビットは、ポートBとポートAの両方にとって同じ値でなければならない。この例は、0x809B AppleTalkフェーズ1を有することが所望される場合に、「1」の復号値となり、0x8137 IPX(ノベルネットウェア)を有することが所望される場合、「2」の復号値となり、0x8847 MPLSユニキャストを有することが所望される場合、復号値「3」となり、0x8848 MPLSマルチキャストを有することが所望される場合は、復号値「4」を取ることであろう。この結果は図15に示されている。
図16がプリプロセッサフレーマの基本機能ブロックのさらに完全な図を示す。
図17は、入力選択を増加する方法と、状態の中でサブステートを有する能力とを描く。
図18は、状態機械から出現する出力制御を拡大する方法を描く。
図19は、状態機械によって選択できるマスク比較論理を示す。
図20は、この状態機械によってプログラムできるであろうイーサネット(登録商標)フローチャートの例である。
図5と図6を参照すると、プリプロセッサフレーマはパケット選択を行う上でさらに柔軟性、つまりパイプライン選択に戻って選択可能なステップを行う能力を提供するように構成されてよい。さらに大きな機能が所望される場合には、それはつねに1つまたは複数の状態機械及び/またはプログラム可能復号RAMを追加することによって提供できるであろう。また、図示されているRAMがブロックRAMとしてXILINXに埋め込まれており、別に構成及びグループ化等することができ、この設計は、一方が状態機械に、他方がTYPE(タイプ)復号に使用されている2つのブロックRAMを示したにすぎないことにも留意する。最少のXilinx XC2VP2は12ブロックのRAMを有し、次のサイズは28を有し、最大のXC2VP125は556のブロックRAMを有する。
図26で示されている本発明の一般的な実施形態では、OPEのデータパスは段階−0エンジンから段階−1エンジンにパイプラインする。段階1エンジンは、規則に基づいたパケットの分類を実行する。分類は、真のワイヤスピードスループットがあるように、段階_0で定められる時間間隔内で発生しなければならないため、多くのエンジンが所望される結果を得るためにカスケードできる。各エンジンは、従来の蓄積転送モデルの代わりにデータフローモデルに基づいている。この段階の出力の1つが、パケットの関連コンテンツの事前知識を前提としたキー生成である。現在のインプリメンテーションでは、この段階は2つの命令サイクルを必要とする。各エンジンは単独のバッファを利用する。浮動小数点コプロセッサとは異なり、すべてのエンジンは動的にプログラム可能である。つまり、命令は、それらが特定のアプリケーションに適応できるように再プログラム可能である。通常、段階_1は、少なくとも1台の超長命令語(VLIW)プロセッサを備える。代替実施形態では、段階−1エンジンが、前述されたように、タスクカスタマイズプロセッサのように構成されてよい。
図27に描かれている本発明の明細書の実施形態では、段階−0と段階−1のエンジンはフィードバックループで動作し、PSMを使用する段階−0ビットストリームの状態情報が段階−1分類エンジンに渡され、分類子からの情報は段階−0エンジンの動作を知らせるためにフィードバックされる。フィードフォワード/フィードバックワードエンジンアーキテクチャにより、OPEによってサポートされている可能性のある複数のフローから、任意の既定のフローのコンテンツのビットストリームを採取し、エンジンを通るデータフローとしてコンテンツを構文解析し(または分類し)、次の動作が従来の状態の分類結果だけではなく、従来の状態にも基づくように従前の段階に戻る動作によって得られる情報を送ることが可能になる。
このような手法は、例えば可変長/可変プロトコルパケットを処理し、シーケンスパケットの中から、または他のエラー制御機能性のために動的に並べ替えるために有利に使用することができる。データの要素単位は、システムメモリ、つまり各ビットが、その前に行ったあるいはそれに続く各ビットに関連できるようにする接着剤を提供するフィードバックとフィードフォワードのあるビットになる。このパラダイムは、待ち時間と蓄積転送アーキテクチャのハードウェアオーバヘッドを招くことはないが、段階の特定の目的に応じて「メモリ」を、バイト、ワード、フレームまたはセッション全体等のマクロ要素データ構造のシステムの中に注入するためにスケーリングできる。このようなマクロ要素データ構造は、データが特定の特徴を有し、すべての以後のデータフローのためにOPEの動作を再プログラムするために使用される間それらが持続するという点で短命である。このようにして、動作が結線されている従来のプロトコルプロセッサとは異なり、OPEは決定論的にではあるが進化するデータフローに適応する適応可能ハードウェアデバイスである。つまり、状態機械の数、及び増加したデータフローを処理するための状態を拡大することによって解決策を提供しようとする従来の技術の試みを特徴付ける「状態爆発」は、本発明により提供される解決策で克服される。
本発明の実施形態を複数段階ビットストリームプロセッサのために実現するデータフロー機構の実施形態が図40に示されている。
多段階方法論の魅力的な特長の1つは、多様な段階エンジンのパラメータが効果的に減結合されるという点である。例えば、多様な段階間に1つの共通のクロックに対するニーズはない。これはOPEの設計を大きく簡略化する。各段階はつねにその段階の操作ニーズに合わせられる1台または複数のエンジンで入力されてよい。各エンジンは、それに、ある特定の時点でOPEが遭遇するデータフローの特徴に一致する機能性を与えることによってオンザフライでプログラムできる。
本発明の一般的な実施形態では、段階−2エンジンの後には段階−3エンジンが続く。段階−3エンジンは、ルーティング、信号伝達、プロトコルスタック、ポリシー定義、テーブル維持、データ平面に対するインタフェース等のさらに高水準の制御平面機能性を提供する。前記段階のように、段階−3は、OPEに課された処理時間と機能性の要件に一致するように複製されてよい特殊化されたエンジンである。図28から図31は、本発明のOPEを特長とするP−SERDESとコアエンジン及びHPCポートカード付きの拡張可能なフレームプロセッサを描く。
一実施形態では、例えば前述された図に描かれているのは、スイッチ内の各ポートカードに32エントリ掛ける48ビットのCAMである。各エントリは、スイッチ内の特定のポートを表す。したがって、ポートカード転送CAMの第1のエントリは、スイッチのポート1を表す。これらのCAMは取り付けられているLANセグメント上で複数のノードを収容するためにサイズが大きくされてよいことが留意される。好ましくは、ポートカードの転送CAMにおける実践的なエントリだけを保持するエージング機構が定義される。HPCCはLANセグメントを活用しないので、エージング機構は必要がない場合がある。
設計目標の1つは、SNMPを介して転送CAMに対するアクセスを可能にすることであるので、シェルフマネージャで実行中のSNMPエージェントは、キャリアカードに常駐する転送CAMキャッシュに対する読み取り/書き込みアクセスを必要とする。転送テーブルキャッシュに対する変更は、更新CAM IPMIメッセージを介してポートカードを押し下げられ、前述されたように処理される。
動的MACアドレス学習。スイッチがあらゆる2つのスイッチポートの間でパケットを転送するためには、入信パケットが送信される宛先スイッチポートを検出するために宛先MACアドレスでルックアップが実行されなければならない。(転送テーブルとしても知られている)ルックアップテーブルは、好ましくは、6ビットスイッチポート識別子とともに宛先MACアドレスを含む48ビット値を含む。スイッチにより維持される転送テーブルは、個々のポートカードで管理される転送テーブルの間で分散される。(CAMによってハードウェアの中で実現される)これらの転送テーブルは、入力される必要がある。転送テーブルを入力するための2つの方法がある。つまり、動的に、と静的にである。これらのCAMの静的な入力は、RFC1493に説明される転送データベースに類似する転送CAMをSNMP企業MIBを介して管理エンティティにさらすことによって達成される。
この設計の目標の1つは、ブロードキャストパケットとマルチキャストパケットの使用を管理することである。これは、ブロードキャストフレームが帯域幅とスイッチリソースという点で高価であり、マルチキャストフレームがなおさらに高価であるためである。全数検索は、スイッチがどのようなトポロジに配備されてよいのかに関係なく、このスイッチが各スイッチポートに接続されるLANセグメント上でMACアドレス(複数の場合がある)を動的に学習するためのメソッドを検出するために、及びブロードキャストまたはマルチキャストパケットを使用せずに、接続されるポートネットワークロジックに修正なくこれを行うために実行された。現在、スイッチがすべてのケースで、スイッチポートに接続されてよいすべてのMACアドレスを動的に決定できるようにする単一のメソッドまたはステップのセットはない。要するに、IETF RFCによって定義されるようなインターネットまたはイントラネットは、スイッチ/ブリッジ/ルータが、接続されている、MACアドレスを受動的に学習することを期待するか、あるいはスイッチ/ブリッジ/ルータが管理が転送テーブルを静的に入力する機構を提供するかのどちらかである。
したがって、本発明の本実施形態によるスイッチは学習するブリッジの挙動をエミュレートする。図23に描かれている標準的なイーサネット(登録商標)フレーム等の入信ブロードキャストは構文解析され、ソースアドレスは適切な転送CAMに格納される。これは、FPGAの内部のパケット転送論理回路とは無関係に埋め込まれたFPGAマイクロプロセッサによって達成される。以下は動的なMACアドレス発見を説明する。
ブロードキャストパケットはスイッチ進入ポートで受信される。パケットは、トラフィックディレクタがフレームFIFOを介してモバイル管理コントローラ(MMC)にフレームを渡すまで転送論理回路を通過する。
MMCはデータリンク層ヘッダのソースアドレスを抽出する。
MMCはソースアドレスと進入スイッチポート番号をIPMIメッセージの中にカプセル化し、キャリアカード(IPMC)上のマイクロプロセッサにSPIベースのIPMIバスを介してメッセージを転送する。
IPMCは、RACを介してSNMPをベースにした管理エンティティによって評価可能となる転送テーブルキャッシュの中にソースアドレスとスイッチポート番号を取り込む。
IPMCはCAM更新メッセージをスイッチの中のすべての他のMMCにブロードキャストする。
内部マイクロプロセッサはCAM更新メッセージを受信し、CAM更新メッセージのMACアドレスを、スイッチポート番号によって表されるオフセットでのCAMエントリの中に入れることによってその転送CAMを更新する。
この転送テーブル手順全体がよりロバストなトポロジ、つまり接続されているLANセグメント上の複数のノードをサポートするために広範囲に修正される必要があることが留意される。
好ましくは、データストリームの中の選択されたフレームにアクセスするために内部マイクロプロセッサによって読み取られる32ビット幅のFIFO。FIFOは、内部ルーティングタグと入信パケットの最初の32バイトで転送論理回路によって書き込まれる。ステータスレジスタは、いつFIFOが空であるのかを決定するために読み取られる。
前述されたように、FPGA制御及びステータスレジスタのファイルは、それによってIPMIによってカプセル化されたメッセージが実際のレジスタ読み取りまたは書き込みを実行するFPGA内のマイクロプロセッサに向けられる、レジスタアクセス制御機構を通してアクセスできる。一実施形態では、マイクロプロセッサは、RACメッセージを解釈するレジスタアクセスコントローラ(RAC)として働き、どの転送論理要素/サブモジュールアクセスコントローラ(SAC)にメッセージがアドレス指定されるのかを決定し、SACによるレジスタアクセスを容易にする。結果として生じるステータス/応答はメッセージ発信元に返される。図22はSACバスの一実施形態のブロック図を示す。SACバスがサブモジュールにとって一意であり、多くの形式を取ってよいことが理解される。
IEEE規格はPAUSE(休止)パケットの宛先アドレスが、休止されるステーションの一意のDAに、または大局的に割り当てられるマルチキャストアドレス01−80−C2−00−00−01(16進)のどちらかに設定されてよいと記載している。加えて、PAUSE(休止)パケットマルチキャストアドレスの付いたパケットは、フレームがローカルリンクセグメントを越えて伝搬できないことを確実にするブリッジによって転送されない。MAC制御パラメータフィールドは、0から65535の休止するビット時間数を指定する。過去のPAUSE(休止)期間の期限切れの前に受信されたPAUSE(休止)は、現在のPAUSE(休止)期間値を置き換える新しいビット時間値を生じさせる。これによりPAUSE(休止)期間をゼロにリセットすることができ、トラフィックを再開できる。
好ましくは、MACチップは2つのフロー制御モードに提供する。全二重モードで構成されるとき、MACチップは自動的にPAUSE(休止)パケットを生成できる。SPI−4.2バスからの背圧が、MACチップが開始PAUSE(休止)信号伝達と停止PAUSE(休止)信号伝達を管理する適切な高いまたは低いウォーターマークを設定することにより、MACチップ進入FIFOに充填させる。第2のモードはFIFOを迂回し、PAUSE(休止)開始パケットと停止パケットを生成するためにSPI−4.2フロー制御メッセージングに依存する。
ポート状態機械はポートカード上のスイッチポートごとに維持される。状態機械はFGPA論理回路とマイクロプロセッサの両方によってアクセス可能となる。本書で説明されるような状態機械は3つの基本要素、つまりイベント、定義状態、及びその状態に入るときに実行されるアクションを含む。前記に定義されたイベントは、同様に図24の中の図と図25の中の状態図が示すようにアクションを実行する状態への状態遷移をトリガする。
図32は、適応可能なハードウェアデバイス、つまりVirtex LX200通信エンジンが、進入「ポート」と退出「ポート」を構成するVirtex Pro4通信エンジンにそれを結合することによって48ポートスイッチに構成される実施形態を描く。この構成での問題は、スイッチ装置がVirtex Pro4通信エンジンによってサポートされるであろうスイッチ装置を通して切り替えられるデータパケットのための単一プロトコルを処理することに制限されるという点である。
図33は、OPEがポートプロセッサエンジンを形成し、デジタルスイッチがVirtex LX200通信エンジンか、またはインテリジェントで、再プログラム可能なスイッチング構造を形成する特殊目的OPEのどちらかであってよい本発明によるスイッチの特殊アーキテクチャを描く。図32に示されるスイッチ機構とは異なり、本発明によるOPEを活用する図33の実施形態は、OPEによってサポートされている複数のプロトコルのどれかのデータパケットを処理できる全プロトコルスイッチ/ブリッジ機構を提供する。図33は、本発明のスイッチの特殊構成を概略的に描く。
マイクロプロセッサは、状態に入るときに生成されるイベントに加えて、MACチップ、SFPを監視し、スイッチポート状態の遷移を引き起こすイベントを提供するためにIPMIイベントとメッセージを傾聴する必要がある。任意のイベントが任意の状態で発生する可能性があり、適切に捕らえられ、処理されなければならないことに留意する。明確にするため、状態図はすべての潜在的な状態遷移を示さない。また、大部分のイベント遷移はIPMIイベントメッセージを生成させ、潜在的なSNMPトラップを引き起こす。
INIT状態は、ポート状態機械のインスタンス化でのスイッチポートの初期状態である。この状態に入ると、ポートが管理上無効とされていない限り、最初にSFPが有効にされ、TX_ENABLEイベントが生成される。
スイッチポートがENABLED(有効)状態に入ると、SFPが存在するかどうかを判断するためにチェックが実行される。SFPが存在する場合、MOD_DETECTイベントが生成される。
FAULTED(障害)状態に入るスイッチポートは、ダウンしていると見なされる。この状態から遷移するためには人間の介入が必要とされる。
MOD_EXISTS−この状態に入ると光信号でチェックが実行される。信号が正常である場合、SIGNAL_DETECTイベントが生成される。
ワード同期はSIGNAL(信号)状態で検証される。信号が同期すると、SIGNAL_SYNCイベントが生成される。
SYNCed(同期済み)。信号が同期した後、イーサネット(登録商標)自動交渉が完了したかどうかを決定するためにチェックが実行される。イーサネット(登録商標)自動交渉が完了すると、AUTO_NEG_DONEイベントが生成される。
UP(アップ)状態では、スイッチポートはUP(アップ)であり、フレームをスイッチファブリックに転送できる。しかしながら、接続されているノードのMACアドレスは学習されていない。
READY(準備完了)状態では、スイッチポートは作動可能である。
本発明の別の実施形態では、無損失パケットスイッチングが、Dr.Lawrence G.Roberts、創立者、SSGRR 2003S国際会議、イタリア、ラクイラ(L‘Aquila Italy)、2003年7月29日でのCTOカスピアンネットワークス(Caspian Networks)によるIPの次世代―フロールーティング(The Next Generation of IP−Flow Routing)で検討されたフロールーティングの検討と同じ回線に沿って、説明されたような全プロトコルエンジン構成を使用してであるが実現される。文書の内容は参照することにより本書に組み込まれている。加えて、論文に説明される概念は、フロー制御及び輻輳管理に関するIEEE 802.3AR作業部会の推奨策に従って、本発明のOPEでエンドツーエンドフロー制御を実現するために拡張できる。
本書に開示されるOPEの一実施形態を含む段階に適用されると、QOSレベルごとの休止は(3段階プロセッサ、(a)2つの必要とされるXAUIインタフェースのそれぞれに取り付けられるビットストリームプロセッサ、(b)フロー識別または規則をベースにしたトラフィック優先順位識別フロー分類段階のためのルックアップキー生成、(c)フロー制御及び輻輳管理に関するIEEE 802.3AR作業部会の予想される推奨策を満足させるために、さらに高い層のプロトコルスタックまたはバッファマネージャに対する適切な背圧通知を生成するためのプロセッサ段階から成る)エンジンで実現できる。優先順位識別のニーズは、内容が参照することにより本書に組み込まれている、P802.3ar「輻輳管理、優先順位/クラスをベースにしたPAUSE(休止)はなぜ必要とされるのか(Congestion Management Why Priority/Class Based PAUSE is Required?)」、Asif Hazarika(ahazirik@fma.fujitsu.com)、及びBob Brunner(Robert.Brunner@ericsson.com)で強調される。
ブロックは、次に、段階プロセッサで実現された2つのXAUIインタフェースと、1つまたは2つのSPI 4.2インタフェースとを有する。トラフィックディレクタまたはスイッチング段階の追加により、ブロックは、暗号文に対する入信トラフィックと案内(Traffic and Direct to Crypto)エンジン、あるいは帯域識別におけるVLANタグまたは他に基づいた処理エンジンの識別のためにも使用できるであろう。これは、8 SerDesポートXilinx(FX−40)で実現できるであろう。代わりに、AMCが使用できるであろう。これは、(RTMまたはフロントパネルのどちらかからI/OのためにXAUIを選択する)第3の要件も満足させることができる。
本発明のOPEによるフロー処理に関して、機能性がクロックサイクルごとに変更できる場合には、回路がプログラム可能と呼ばれることが理解される。これは通常プロセッサと呼ばれる。プロセッサは命令セットアーキテクチャ(ISA)及びレジスタファイル(RF)によって定義される。これが、いわゆるプロセッサのプログラマの視点、つまりプロセッサを構成するハードウェアとプロセッサで実行できるソフトウェアの間のインタフェースである。内容が参照することにより本書に組み込まれている、Thomas Henriksson、「パケット内データフロープロトコルプロセッサ(Intra−Packet Data−Flow Protocol Processor)」、科学技術におけるLinkoping究(Linkoping Studies in Science and Technology)、学位論文第813番、及びJohn L.Henessy及びDavid A.Patterson、「コンピュータアーキテクチャ:定量的手法(Computer Architecture: A Quantitative Approach)」、モルガンカーフマン出版社(Morgan Kaufman Publishers,Inc.)、ISBN 1−55860−329−8、第2版1996年を参照すること。本発明の関連では、あらゆるサイクルが、データが処理されなければならない―データ到着間隔―になる。ISAに類似し、OPEの段階はフローPSA―フロー処理設定アーキテクチャ―として定義でき、RFはパイプラインレジスタファイルとして定義できる。ISAは、フェッチ(命令及びまたはデータ)、復号、延期(さらに多くのデータを取得するため)、実行(データに関する命令)、シーケンス記憶(フォンノイマン(Von Newman)モデル)を実行するマイクロコードのセットである。フローPSAの機能性は同様に示すことができる。
すべてのIPMコントローラを本発明の一実施形態の筐体に接続するために使用されるIPMI拡張の実施形態が説明される。本発明の実施形態の本態様のさらに詳細な説明については、「ハードウェア/ソフトウェアが二重冗長構成で実現されるシェルフ管理コントローラ(Shelf Management Controller with Hardware/Software Implemented Dual Redundant Configuration)」と題される前記に特定された仮特許出願が参照される。
図36A及び図36Bは、本発明の一実施形態によるシェルフ管理コントローラまたはShMC230を描くブロック図を描く。図36Aと図36Bのブロック図に描かれているように、本発明は、自動フェイルオーバ付きのアクティブ/スタンバイアーキテクチャを活用する冗長シェルフ管理機能性を提供するために、対称配置で第2のShMC315に通信で結合される第1のShMC310を提供する。第1の実施形態では、ShMC310と315のそれぞれはアーキテクチャ的に同一である。各ShMC310(315)は、例えば、薄いスタックのucLinuxOS等の小さな設置面積のオペレーティングシステム(OS)325を実行する独立プロセッサ320を含む。ShMC310(315)はスタンバイパワーで動作し、インテリジェントプラットホーム管理コントローラ(IPMC)235を自動的にポーリングすることによってシステム健康変数を取得する。ShMC 310(315)は、異常を検出し、イベントを記録し、システムに異常を通知するために警報を生成し送信し、回復アクションを起動するように構成される。
図36Aに描かれているように、各ShMC 310(315)は少なくとも2つのI2C/IPMBバス、IPMB−A270とIPMB−B275に接続されている。ShMC310(315)はアクティブ−アクティブモードまたはアクティブ−パッシブI2C/IPMBフェイルオーバモードで配置されてよい。本発明の本実施形態は、抽象化チャネル(AbCh)でメッセージを渡す統一メッセージシステムを意図する。本発明の本実施形態では、チャネルは例えば、I2CJTAG、更新チャネル及び自由空間等の物理リンクである。AbChのビューでは、各チャネルは、例えばクライアントサーバチャネル、ピアチャネル、照会と応答の方向、帯域幅、待ち時間及びCoSまたはQoSに関する容量、一次経路、代替経路、例えばエコー、または肯定応答メッセージング等のフィードバックチャネルを示すマスタスレーブチャネル等の属性を有する。属性はプログラム可能、または例えばバッファを用いてハードウェアで支援されていると見なされる。すべての属性状態は随意に綿密に調べることができるため、例えばレジスタをサポートできる。AbChは、メッセージングシステムが随意に、またはシステム変更のニーズとしてメッセージを送ることを可能にする。好ましくは、GUIプログラミングツールは、属性をハードウェアプラットホームに渡すため、性能を測定するため、シミュレーションを実行するために等、既定のハードウェアプラットホームのための1つまたは複数のチャネルを作成するために使用することができる。当業者は、EEPROMで命令を実行する能力が、アプリケーションをスケーリングできるようにすることを容易に認識する。
再び図36Aを参照すると、本発明によるIPMIメッセージングシステムモデルが二重クライアント−サーバメッセージングシステムとして描かれている。複数のシェルフ構成要素の中でのクライアント−サーバメッセージング方式は、層の独立を維持するためにチャネル抽象化層を使用する。ShMC310は、専用の更新チャネル330とアクティブ制御チャネル335によってShMC315に通信で結合されている。更新チャネル330は、サニティ及び状態情報をShMC310(315)間で双方向で送信するように適応されている。クライアント−サーバをベースにしたメッセージングシステムの2つのインスタンスが各ShMC310(315)上で動作する。例示的な実施形態では、アクティブなShMC310(例えば)が、本発明の範囲から逸脱することなく、システム起動時に例えばサーバと指定されてよい。次にShMC315がクライアントと指定される。アクティブなShMC310は、IPMC235から状態情報を受信するとシェルフ管理機能を実行するためのコマンドセットを実行する。
図36Aと図36Bの図の実施形態では、ShMC310(315)の独立プロセッサ320が、IPMB上のIPMI1.5、シリアルポート上のコマンドラインインタフェース(CLI)、テルネット、及びSSHセキュアシェルを含むがこれに限定されるものではないすべての物理インターフェイスタイプにとって一般的である少なくとも1つのプロセッサインタフェースとともに配置されるビットストリームプロセッサ(BSP)340と通信して配置される。一実施形態では、ShMC310(315)は、例えば、RMCP上で架橋するBSP340、及びIPMIメッセージを使用して実現されるRCMP−IPMIブリッジ312を含む。RMCPメッセージパケットがシステムマネージャから受信されると、パケットは開かれ、UDP ポート#について調べられる。UDPポート#がIPMIメッセージと一致すると、パケットはそのヘッダが削除され、IPMIヘッダ(存在する場合)がカプセル化される。次に、メッセージは適切なインタフェースに送信される。ShMCカーネルがコピーバックを要求できる。システムマネージャに対するIPMIメッセージがカプセル化され、システムマネージャ物理ポート上で送信される。
図37A及び図37Bは、BSP440を使用する12Cハードウェア有限状態機械(HFSM)475の例示的なインプリメンテーションを描く。本実施形態では、BSPは本発明に従って説明されるような全プロトコルビットストリームプロセッサである。BSPは、IPMB−A270バスとIPMB−B275バスでのビットストリームのワイヤスピードパケットデータ経路処理のために構成される。BSPはビットストリーム内のビットを定義プロトコルデータ(情報)単位にアセンブルし、遭遇したプロトコルに関係なくワイヤスピードスループットを提供するために、アセンブルされたプロトコルデータ(情報)単位を処理するように適応される。これらの機能の両方とも、後述されるように、例えばRAC/SAC(487/489)を使用して動的にプログラム可能である。したがって、プロトコルデータ(情報)単位に適応するプロトコルの情報単位または処理規則のどちらかは動的に固有に変更可能である。
一実施形態では、HFSM475は、パイプライン化された段階エンジンの選択されたシーケンスで構成されるBSP440を含む。各段階エンジンは、メッセージ(例えば、システム健康、温度、ファン回転等)をHFSM475に送信するIPMC235ごとにデバイス有限状態機械(DFSM)480のインスタンス化を引き起こす別の拡張可能且つ再プログラム可能なアーキテクチャを有してよい。DFSM480はメッセージング有限状態機械(MFSM)485をインスタンス化するように適応されたBSP440の段階エンジンに対するデータフロー通信のために有利に構成される。一般的には、(DFSMとMFSMだけではなく)HFSMも3つの基本構成物を使用する。HFSMは、FSMが既定の状態にある間に既定のイベントが受信されるときに実行するアクションと、FSMが既定の状態にある間に既定のイベントが受信されると入る次の状態を含む次の状態テーブルと、イベントを提示されるとイベント処理を駆動し、必要なアクションを調べ実行し、現在状態の情報を更新するイベントハンドラとを含む。段階機械(またはBSPまたはFPGA)制御ファイル及びステータスレジスタファイルは、レジスタアクセス制御(RAC)487機構を通してアクセス可能であり、それによりIPMIカプセル化メッセージは次に実際のレジスタ書き込みと読み取りを実行する段階機械(またはBSPまたはFPGA)の中のマイクロプロセッサに導かれる。マイクロプロセッサは、RACメッセージを解釈し、どの転送論理回路要素/サブモジュールアクセスコントローラ(SAC)489にメッセージがアドレス指定されるのかを決定し、SACとのレジスタアクセスを容易にするレジスタアクセスコントローラ(RAC)として働く。結果として生じるステータス/応答はメッセージ発信元に返される。RAC/SAC 487/489は、オンザフライでデバイス(つまりIPMC235)ごとにメッセージング方法を設定するまたは変更する手段を提供し、このようにして本発明のプログラム可能性と柔軟性のレベルを実現する1つの機構を提供する。
一実施形態では、HFSM475は、デバイス故障だけではなくI2Cバス故障も検出するように適応される。故障がIPMC235の内の1つによって監視されているデバイス上であると決定されると、ShMC310(315)はそのデバイスがバックプレーンにアクセスするのを無効にする。
再び図36Aを参照すると、クライアント315は更新チャネル330を使用してアクティブShMC310の照会と応答を監視し、トランザクションの状態を計算し、これらの状態をアクティブShMC310と同期させる。クライアントShMC315がShMC310のエラー状態を検出するケースでは、それは審判員として働き、アクティブなShMC310を取り除き、スタンバイShMC315が時間消費状態更新なしにフェイルオーバを完了できるようにするシステムマネージャ265にイベントを報告する。本実施形態はAdvancedTCAに準拠するシステムとの動作に適しているが、それは図36Bに描かれているように、トライステート化されたスタンバイが規定されるMicroTCA環境でも機能する。
別の実施形態では、ShMC310(315)は、ハードウェアによって支援される薄いプロトコルスタックによって拡大される。システムの別の実施形態は、とても小さく管理可能なShMCインプリメンテーションを保証するためにOSバイパス方式を実現する。一次実施形態は、例えば、ShMCプロセッサ320の機能のコストの点でのスケーリングを可能にするであろうシステムオンチップ(SOC)概念を使用するTINY CHIP(タイニーチップ)付きのEEPROMのような命令を実行するためのEEPROMを含む。
一実施形態では、二重冗長ShMC310(315)構成が、シェルフ管理コントローラのフォルトトレラント動作を導入するために使用される。第1の実施形態では、HFSM475で追加チェックポイント状態を追加することによって、チェックポイントが挿入される。HFSM475内での現在の状態がチェックポイント状態であるとき、チェックポイントプロセスが開始されてよい。エラーが示されると、HFSM475は、独占使用バス335の上でのShMC315に対するフェイルオーバ、及びShMC310で起動された回復プロセスを、ATCAシェルフ内に異常を生じさせることなく起動してよい。回復プロセスは、ShMC310の故障前の状態を再現するために、その元の順序でShMC315に記憶されているログ状態をリプレイすることによってShMC310の内部の障害状態を復元することによって行なわれてよい。別の実施形態では、追加のShMC492はShMC310(315)を拡大するために使用されてよく、正しい状態は3つまたは4つ以上のShMCの間で保持される状態の3つまたは4つ以上のコピーの間で投票することによって得られる。一実施形態では、投票された結果は、あらゆる矛盾する投票を解決する目的でHFSM475のそれぞれのレジスタの中にロードされる。
図38に描かれている本発明の一実施形態では、XUAI双方向ブリッジアーキテクチャにSPI 4.2に提供するビットスチームプロトコルプロセッサ(代わりにビットストリームプロトコルプロセッサをベースにしたブリッジ、または単にビットストリームプロトコルプロセッサと呼ばれる)が示される。第1のタイプのシリアルデータ伝送インタフェースはSPI4.2インタフェースに一致し、第2のタイプのシリアルデータ伝送インタフェースはXAUIインタフェースである。
この実施形態のビットストリームプロトコルプロセッサは、XAUIブリッジに二重SPI4.2を提供する。SPI4.2は並列ポイントツーポイント双方向インタフェースを提供する。SPI4.2フレーミングは最大256ポートまでサポートする。データは、1個の完全なパケットとして、またはポートごとの複数のデータバーストとして、16のLVDSデータレーンを使用してSPI−4.2フレームを通して送信される。サブチャネルデータに付加される制御語ヘッダがバーストを区切る。制御語の中のパケットビットの始まり(S)とパケットステータスビットの終わり(EOPS)は、複数のバーストから構成されてよい1個の完全なパケットを識別するために使用される。アドレスビット[0:7]は、サブチャネルを定義するために使用される。フロー制御及びステータス情報はサブチャネルごとに帯域外でトランスポートされる。インタフェース帯域幅は、低オーバヘッドアプリケーションの場合の毎秒10Gbitからオーバヘッド情報をサポートするために帯域幅の加速を必要とするスイッチファブリックのようなアプリケーションの場合の毎秒20Gbitに及ぶことがある。
10GigEの場合、各ビットストリームプロトコルプロセッサが、ポートごとに10Gbps全二重をサポートし、2.560Tbpsスイッチングスループット容量を達成することを可能にすることが分かる。40GigEの場合、各ビットストリームプロトコルプロセッサはポートごとに40Gbps全二重をサポートし、10Tbpsスイッチングスループット容量を達成することを可能にする。一般的には、本発明による全プロトコルエンジンの再構成可能且つプログラム可能な性質が一連のクロック速度でプロセッサが本質的にスケーラブルとなることを可能にすることが認識される。
本発明の一実施形態によるビットストリームプロトコルプロセッサが、例えばPCのシステムプロセッサ(CPU)とシステムメモリの間でN個の相互接続を提供できることが認識される。N個の相互接続のそれぞれは、10N Gbpsのスケーリングされたスループットを生じさせる10Gbpsでデータを転送するように構成されてよい。SPI4.2は、互いから数インチで設置されるデバイス間のポイントツーポイントインタフェースである。システムでは、多くの場合、バックプレーンを介して筐体内のさまざまなカード上に位置する(筐体内)、あるいは別の筐体に位置する(筐体間)SPI4.2デバイスを相互接続することが望ましい。こうした状況では、高い帯域幅の接続を筐体内環境または筐体間環境で提供する、本発明のシリアルポイントツーポイントリンクを使用することが有利である。例示的なシリアルリンクはPCIエキスプレスを使用するASI、XAUIを使用するイーサネット(登録商標)、及びIBを使用するインフィニバンドを含む。これは事実上、考えられる数百の地理的に分離されたSPI4.2デバイスの中から任意の2つを、「バーチャルワイヤ」インタフェースに接続することになる。一実施形態では、本発明は単一ボードコンピュータ(PC)として構成されてよい。別の実施形態では、本発明は、エンドユーザの更新を行うにつれてフィールドペイをサポートする取り外し自在に取り付けられたブレード付きの(例えばpicoTCA等の)業界規格エンクロージャを提供する。
シリアルリンクを使用して、あるいはバーチャルワイヤを介して、ポートアドレスを含む制御語、並列SPI4.2インタフェースで入手可能なデータ及び帯域外フロー制御情報をトランスポートするために、トンネリングプロトコルが活用される。高帯域幅使用を保証するために、これらのトンネリングプロトコルは好ましくは軽量である。トンネリング特長はSPI4.2デバイスの中に埋め込まれてよい、あるいはブリッジチップがこの変換を提供するためにSPI4.2デバイスとの関連で使用できるであろう。成熟トンネリングプロトコルを使用する多様なシリアルインタフェースを使用してこのブリッジをSPI4.2デバイスの間でサポートするために、ブリッジはプログラム可能である。この実施形態では、ビットストリームプロトコルプロセッサをベースにしたブリッジが、SPI4.2インタフェースをXAUI及び他のシリアルインタフェースに提供し、多様なトンネリングプロトコルに柔軟な手段を提供する。ビットストリームプロトコルプロセッサはその全体として本書に組み込まれている付録Aに説明されているように、動的なプログラミング及び関数の拡張性を提供する。
ここで図39を参照すると、ビットストリームプロトコルプロセッサの別の実施形態が示されている。本実施形態では、ビットストリームプロトコルプロセッサは直接的にフロントサイドバス(FSB)と接続し、それにより図38に関連して説明されているビットストリームプロトコルプロセッサの中の特定の変換プロセスを排除する。加えて、図39のビットストリームプロトコルプロセッサは、細いパイプと太いパイプのパラレル−シリアルトランスレータの両方を提供し、このようにして太いパイプ構成のために1つまたは複数のイーサネット(登録商標)との選択的な集約を可能にする。
一実施形態では、ビットストリームプロトコルプロセッサは、イーサネット(登録商標)で単純なトークンをベースにした通信を実現するために活用される回線速度QoSパケットスイッチングを可能にする。ソースアドレス(SA)と宛先アドレス(DA)、及びVLANタグのようなEタイプが通信リンク上でのエンドポイント間の一意のトークンを交渉するために使用される。Eタイプの拡張は、例えば、UNIQUE ID(一意のID)またはTOKEN GRANT(トークン許可)の要求、許可されたトークンを用いるデータ通信、及びTOKEN(トークン)を回収する要求であってよい。いったんTOKEN(トークン)が許可されると、SAフィールドとDAフィールドは、短期をパスするためにEタイプとともに使用される。これは、STA及びSASのためのデータの大きなブロックを含むために拡張されてもよい。他の実施形態では、いったんUNIQUE ID(一意のID)がエンドポイントと、これらのエンドポイントを接続する中間ノードの間で交渉されると、固定フレームサイズが、固定フレームサイズを転送する上で予測可能な性能をリンクに与え、その結果多様な待ち時間要件を満たすために使用される。例えば、SA/DA組は、従来のイーサネット(登録商標)パケットのための従来の64バイトペイロードの代わりに12バイトのデータ、2Eタイプのバイト及び2バイトのTAGを送信するために使用できるであろう。この拡張されたイーサネット(登録商標)通信技法の一実施形態のさらに詳細な説明のために、「一意IDに基づいて制約を受けた近傍の中での短縮されたデータフレームのために強化されたイーサネット(登録商標)プロトコル(Enhanced Ethernet(登録商標) Protocol for Shortened Data Frames Within a Constrained Neighborhood based on Unique ID)」と題される前記に特定された特許仮出願が参照される。
別の実施形態では、同じインタフェースがディスクに固定2Kブロックサイズのフレームを提供できるであろう(データはEタイプとTAGに従う)。この点で、技術に公知の可変フレームサイズの構成物と対照的に、本発明はプログラム可能フレームサイズのイーサネット(登録商標)構造物を可能にする。この機能は、それがATCAのフレームワーク内でパケット化するTDMトラフィックを可能にするため、iTDMタイプのアプリケーションにおいて特に有効となることがある。
一実施形態では、イーサネット(登録商標)VLANヘッダは、業界規格のイーサネット(登録商標)スイッチを、筐体内環境または筐体間環境に位置する任意の2台のSPI4.2デバイス間で切り替えるために使用できるようにするトンネリングプロトコルとして使用される。本発明の一次実施形態は、第2のデータ伝送プロトコルとしてギガビットイーサネット(登録商標)(GbE)を使用する。他のプロトコルは本発明の範囲から逸脱することなく使用されてよい。SPI4.2制御語及びフロー制御情報は標準イーサネット(登録商標)VLANヘッダに変換される。SPI4.2サブチャネルデータは、進入時にヘッダ情報とカプセル化される。退出時、ヘッダ情報はイーサネット(登録商標)フレームから取り除かれ、SPI4.2フレームに変換して戻され、フロー制御情報はSPI4.2電気信号に変換される。さらに、ビットストリームプロトコルプロセッサは、サービス情報のクラスを埋め込むための効率的な手段と、輻輳管理メッセージを作成し、伝搬するためのプログラム可能手段とを提供する。
一実施形態では、ビットストリームプロトコルプロセッサは、それをATCAシステムとmicroTCAシステムで使用するための理想的な汎用デバイスにするために、GbE、PCI−エキスプレス(PCI−Express)、RGMII、PCIバス及びシリアルバス等のインタフェースをサポートするように構成される。当業者は、SPI4.2インタフェースをXAUIインタフェースに架橋し、デバイスブリッジ(例えば、イーサネット(登録商標)スイッチへのNPU)、シリアルバックプレーンアプリケーションSONET/SDH上のパケットまたはSONET/SDH上のイーサネット(登録商標)アプリケーション等の複数の設計要件を満たすための、例えばMorethanIPからのXS4 10ギガビットイーサネット(登録商標)及びHiGig SPI4.2ブリッジ等の他の相互接続技術を認識する。
バックプレーンを介して筐体内のさまざまなカード上に位置する(筐体内)、あるいは別の筐体に位置する(筐体間)SPIP4.2デバイスを相互接続する本発明により与えられる能力が、本発明の一実施形態に、例えばpicoTCAまたはmicroTCA規格をベースにしたPCアーキテクチャ等の規格をベースにしたPCを達成できるようにする。
図38及び図39に描かれているビットストリームプロトコルプロセッサの一実施形態は、有利なことに、ビットストリームプロトコルプロセッサに動的なプログラミング及び関数機能性を与えるRAC/SACコントローラを活用する。RAC/SACコントローラ構造はオンザフライでビットストリームプロトコルプロセッサをプログラムするために使用される。この能力は、ビットストリームプロトコルプロセッサが常駐するブレード(基板)を構成するために使用されてよい。一実施形態では、オンザフライ動的プログラミング機能は、ブレード(基板)をオン、またはオフにするために使用され、それによりブレードを含む、またはコンピュータシステムから取り除く。別の実施形態では、オンザフライ動的プログラミング機能は、それが例えばSPI4.2及びPCI−エキスプレス(PCI−Express)の間で架橋するようにブリッジの特徴を変更するために使用されてよい。当業者は、他の構成の変更が、RAC/SACコントローラを使用する本発明の範囲内で影響を及ぼされる可能性があることを認識する。例えば、プログラム可能性は、コンピュータシステムを通した多様なトラフィックフローのために本当のエンドツーエンドQoSを実現するために使用されてよい。
別の実施形態では、ビットストリームプロトコルプロセッサは、優先順位が付けられたスイッチングを可能にする。前記段落のモジュール式のスケーラブルなpicoTCA PCアーキテクチャと連動して、本発明は、Nがハードウェアと無関係であるだけではなく、ビットストリームプロトコルプロセッサによって仲介されるファブリック内のプロセッサの異なる部分集合に与えられる優先順位を変えることによって動的に選択可能でもある、マルチプロセッサのN層の階層の作成を可能にする。本実施形態により、PCを、メッセージを渡すモデルマルチプロセッサマシンだけではなく、共有メモリモデルマシンとしても構成できるようになる。代わりに、本発明の一実施形態によるPCは、サーバ、ストレージエリアネットワークコントローラ、グリッドコンピューティングをベースにしたモデルの中の高性能ネットワークノード、または電気通信ネットワーク内のスイッチ/ルータとして構成されてよい。同じ基本的な機械は、所望されるように、及び所望されるときに、前述された特殊目的のマシンの1台または複数にプログラム的にまたは手動で変換されてよいことが認識される。
方法の多様な変型が本開示を読んだ当業者に明らかとなってよい。前記は、以下の請求項によってのみ制限される本発明の範囲を制限するために意図されていない。
Claims (9)
- プロセッサと、少なくとも毎秒10Gbの回線速度を有する高速ネットワークファブリック間のデータパケットの通信を管理するための全プロトコルデータパケット処理エンジンであって、
各進入ビットストリーム段階プロセッサがその進入ビットストリーム段階プロセッサにとって一意のプログラム可能な制御メモリを有する、複数の進入ビットストリーム段階プロセッサと、
該プロセッサに対する進入プロセッサインタフェースと、
該ネットワークファブリックに対する進入ネットワークインタフェースと、
該複数の進入ビットストリーム段階プロセッサと、該進入プロセッサインタフェースと、及び該進入ネットワークインタフェースとに作動可能に接続されているマルチポートデータフローパケットメモリと、
を含む該データパケット処理エンジンの進入部分と、
各退出ビットストリーム段階プロセッサがその退出ビットストリーム段階プロセッサにとって一意のプログラム可能な制御メモリを有する、複数の退出ビットストリーム段階プロセッサと、
該プロセッサに対する退出プロセッサインタフェースと、
該ネットワークファブリックに対する退出ネットワークインタフェースと、
該複数の退出ビットストリーム段階プロセッサと、該退出プロセッサインタフェースと、該退出ネットワークインタフェースとに作動可能に接続されているマルチポートデータフローパケットメモリと、
を含む該データパケット処理エンジンの退出部分と、
を備え、
該ビットストリーム段階プロセッサのそれぞれの該制御メモリが1個または複数のデータパケットの既定のデータフローのために決定される複数のプロトコルの内の1つに基づいて個別に選択的に動的にプログラム可能であり、該複数のビットストリーム段階プロセッサによる該既定のデータフローの処理がビットストリームデータの該フローに従って時刻を決められ、該ビットストリームデータの該フローが、実質的に該高速ネットワークファブリックの該回線速度に少なくとも等しい速度で該複数のプロトコルのすべてのための該データパケット処理エンジンの連続動作を可能にする速度で確立されるように、該ビットストリーム段階プロセッサが該マルチポートデータフローパケットメモリを通るビットストリームデータのフローとして該既定のデータフローを処理するデータパケット処理エンジン。 - 該データパケット処理エンジンの該進入部分のための該複数のビットストリーム段階プロセッサが、
該進入ネットワークインタフェースの物理層と接続し、該既定のデータパケットのために決定される該複数のプロトコルの該1つに従ってビットストリームデータの該フローのためにフレームを確立する入力段階ビットストリームプロセッサと、
該既定のデータパケットのために決定される該複数のプロトコルの内の該1つに従って該フレームを構文解析する二次段階状態機械と、
該二次段階状態機械によって構文解析される該フレームのためのフレーム処理を処理するトラフィック段階プロセッサと、
該トラフィック段階プロセッサから該フレームの出力を管理するスケジューラ段階プロセッサと、
該退出プロセッサインタフェースの物理層と、該予定された状態プロセッサからの該フレームを接続する出力段階ビットストリームプロセッサと、
を備える請求項1に記載のデータパケット処理エンジン。 - 該二次段階状態機械が、該二次段階状態機械がキールックアップ機構のためのキー発生をパイプライン化するプログラム可能な超長命令語(VLIW)フロー分類子を組み込む該フレームを構文解析するにつれて該キールックアップ機構を活用する請求項2に記載のデータパケット処理エンジン。
- 該トラフィック段階プロセッサが、該トラフィック段階プロセッサにおける複数のセグメントが該既定データフローのために決定される該複数のプロトコルの該1つに応じて動的に実現される該複数のセグメントを有するデータフロープロセッサとして実現される請求項2に記載のデータパケット処理エンジン。
- 該ビットストリーム段階プロセッサの少なくとも一部が、該ビットストリーム段階プロセッサのそれぞれが該既定データフローの中の該データのいくらかまたはすべてを、そのデータを処理するためにコピーする必要を排除するために、仲裁された手法または時分割多重化手法の1つを使用して該対応するマルチポートデータフローパケットメモリと接続する請求項1に記載のデータパケット処理エンジン。
- 該ビットストリーム段階プロセッサのそれぞれの該制御メモリが命令メモリまたは状態メモリの1つから選択可能であり、レジスタアクセス制御(RAC)とサブモジュールアクセス制御(SAC)システムを使用して個別に選択的に動的に再構成可能であり、プログラム可能である請求項1に記載のデータパケット処理エンジン。
- 該RAC及びSACシステムが、該データパケット処理エンジンのための符号生成、フロー制御、性能報告、診断及び保守を管理するグラフィックユーザインタフェース(GUI)によって制御される請求項6に記載のデータパケット処理エンジン。
- 該高速ネットワークファブリックが、ストレージネットワーク、通信ネットワーク、プロセッサネットワークまたはその任意の組み合わせから成る集合から選択される請求項1に記載のデータパケット処理エンジン。
- マルチポート高速データパケットスイッチと、
をさらに備え、
複数のデータパケット処理エンジンが、全プロトコルブリッジ機構を形成するために該マルチポートスイッチにそれぞれ作動可能に接続されており、該複数のデータパケット処理エンジンがそれぞれ別のプロトコルを使用して通信する別の高速ネットワークに接続される請求項1に記載のデータパケット処理エンジン。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71056105P | 2005-08-23 | 2005-08-23 | |
US11/466,367 US7782873B2 (en) | 2005-08-23 | 2006-08-22 | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks |
PCT/US2006/032747 WO2007024844A2 (en) | 2005-08-23 | 2006-08-23 | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009506645A true JP2009506645A (ja) | 2009-02-12 |
Family
ID=37772279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008528063A Pending JP2009506645A (ja) | 2005-08-23 | 2006-08-23 | 高速ネットワークでの再構成可能ビットストリーム処理のための全プロトコルエンジン |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1934758B1 (ja) |
JP (1) | JP2009506645A (ja) |
AT (1) | ATE447741T1 (ja) |
DE (1) | DE602006010225D1 (ja) |
ES (1) | ES2340954T3 (ja) |
WO (1) | WO2007024844A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013520134A (ja) * | 2010-02-17 | 2013-05-30 | アルテラ コーポレイション | デバイスのための複数プロトコル、多重データ転送速度、自動速度交渉アーキテクチャ |
JP2014165714A (ja) * | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | フレーム解析装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8189599B2 (en) | 2005-08-23 | 2012-05-29 | Rpx Corporation | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks |
US8610310B2 (en) | 2008-02-25 | 2013-12-17 | Tivo Inc. | Wireless ethernet system |
CN101394349B (zh) * | 2008-10-28 | 2010-09-29 | 福建星网锐捷网络有限公司 | 不同接口设备通信中的数据传输方法及系统 |
EP2741452A1 (en) * | 2012-12-10 | 2014-06-11 | Robert Bosch Gmbh | Method for data transmission among ECUs and/or measuring devices |
US10102028B2 (en) | 2013-03-12 | 2018-10-16 | Sas Institute Inc. | Delivery acknowledgment in event stream processing |
WO2015026746A1 (en) * | 2013-08-19 | 2015-02-26 | Q Factor Communications Corp. | Method & implementation of zero overhead rate controlled (zorc) information transmission via digital communication link |
CN104423984A (zh) * | 2013-08-29 | 2015-03-18 | 比亚迪股份有限公司 | 在线升级方法和在线升级系统 |
CN113810109B (zh) * | 2021-10-29 | 2022-09-27 | 西安微电子技术研究所 | 一种多协议多业务光纤通道控制器及其工作方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4307447A (en) * | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US6721872B1 (en) * | 1999-10-25 | 2004-04-13 | Lucent Technologies Inc. | Reconfigurable network interface architecture |
US6934817B2 (en) * | 2000-03-31 | 2005-08-23 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6934280B1 (en) * | 2000-05-04 | 2005-08-23 | Nokia, Inc. | Multiple services emulation over a single network service |
US6665755B2 (en) * | 2000-12-22 | 2003-12-16 | Nortel Networks Limited | External memory engine selectable pipeline architecture |
US6934943B2 (en) * | 2001-10-18 | 2005-08-23 | Hewlett-Packard Development Company | Optimization of control transfers to dynamically loaded modules |
US6671869B2 (en) * | 2001-12-12 | 2003-12-30 | Scott A. Davidson | Method and apparatus for graphically programming a programmable circuit |
US7343279B2 (en) * | 2002-08-01 | 2008-03-11 | Teradyne, Inc. | Universal approach for simulating, emulating, and testing a variety of serial bus types |
-
2006
- 2006-08-23 EP EP06802072A patent/EP1934758B1/en not_active Not-in-force
- 2006-08-23 ES ES06802072T patent/ES2340954T3/es active Active
- 2006-08-23 WO PCT/US2006/032747 patent/WO2007024844A2/en active Search and Examination
- 2006-08-23 DE DE602006010225T patent/DE602006010225D1/de active Active
- 2006-08-23 JP JP2008528063A patent/JP2009506645A/ja active Pending
- 2006-08-23 AT AT06802072T patent/ATE447741T1/de not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013520134A (ja) * | 2010-02-17 | 2013-05-30 | アルテラ コーポレイション | デバイスのための複数プロトコル、多重データ転送速度、自動速度交渉アーキテクチャ |
JP2014165714A (ja) * | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | フレーム解析装置 |
Also Published As
Publication number | Publication date |
---|---|
DE602006010225D1 (de) | 2009-12-17 |
ATE447741T1 (de) | 2009-11-15 |
WO2007024844A2 (en) | 2007-03-01 |
ES2340954T3 (es) | 2010-06-11 |
WO2007024844A3 (en) | 2007-11-29 |
EP1934758A2 (en) | 2008-06-25 |
EP1934758B1 (en) | 2009-11-04 |
EP1934758A4 (en) | 2009-01-21 |
WO2007024844A9 (en) | 2008-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7782873B2 (en) | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks | |
US8189599B2 (en) | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks | |
EP1934758B1 (en) | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks | |
US7685281B1 (en) | Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers | |
US8868790B2 (en) | Processor-memory module performance acceleration in fabric-backplane enterprise servers | |
US7860097B1 (en) | Fabric-backplane enterprise servers with VNICs and VLANs | |
US7860961B1 (en) | Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers | |
US8301749B1 (en) | Unused resource recognition in real time provisioning and management of fabric-backplane enterprise servers | |
US7561571B1 (en) | Fabric address and sub-address resolution in fabric-backplane enterprise servers | |
US7953903B1 (en) | Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers | |
US20130111095A1 (en) | Multi-chassis fabric-backplane enterprise servers | |
US9413645B1 (en) | Methods and apparatus for accessing route information in a distributed switch | |
AU2003298814B2 (en) | Method for verifying function of redundant standby packet forwarder | |
CN101578590A (zh) | 高速网络中用于可重新配置的位流处理的全协议引擎 | |
US9148369B2 (en) | Packet routing with analysis assist for embedded applications sharing a single network interface over multiple virtual networks | |
US7436775B2 (en) | Software configurable cluster-based router using stock personal computers as cluster nodes | |
US9077659B2 (en) | Packet routing for embedded applications sharing a single network interface over multiple virtual networks | |
JP2003508851A (ja) | ネットワーク・プロセッサ、メモリ構成及び方法 | |
JP2003508967A (ja) | ネットワーク・プロセッサ及び方法を用いるネットワーク・スイッチ | |
US7756124B2 (en) | Encapsulating packets for network chip conduit port | |
Takahashi et al. | Unisonflow: A software-defined coordination mechanism for message-passing communication and computation | |
Li et al. | SDN-based switch implementation on network processors | |
US7009973B2 (en) | Switch using a segmented ring | |
US11671281B1 (en) | Handling interface clock rate mismatches between network devices | |
US11888959B2 (en) | Data transmission method, system, device, and storage medium |