(57)【特許請求の範囲】
【請求項１】
それぞれのポートプロセッサが、
少なくとも１つの通信チャネルと結合するためのチャネルインターフェースと、
前記通信チャネルを通じて受信又は送信されるデータパケットを処理する、前記チャネルインターフェースに結合したチャネルプロセッサと、を含み、当該ポートプロセッサは、１つの集積回路内に実施される、そのような１つより多くのポートプロセッサを備え、
前記ポートプロセッサは、前記集積回路中の短軸に沿って配置されたほぼ長方形のストリップ中に配置され、隣接するポートプロセッサについての短軸に関して裏返されていることを特徴とするマルチポートパケットプロセッサ。
【請求項２】
１つのサポート回路が前記ポートプロセッサのそれぞれと結合し、当該サポート回路は、それぞれの通信チャネルとの通信を容易にする、そのような１つより多くのサポート回路を備えることを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項３】
１つ以上の前記ポートプロセッサの前記サポート回路は、前記結合した通信チャネル上に、異なる物理的信号状態を伝達するビットのためのアナログ変換回路を提供することを特徴とする請求項２に記載のマルチポートパケットプロセッサ。
【請求項４】
それぞれのポートプロセッサは、前記チャネルプロセッサ及び少なくとも１つの他のポートプロセッサへのプロセッサ間通信インターフェースに結合したプロセッサ間通信インターフェースを更に含むことを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項５】
少なくとも１つのポートプロセッサのチャネルインターフェースは、１つより多くのパケットベースのプロトコルをサポートすることを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項６】
前記チャネルインターフェースは、１つより多くのパケットベースプロトコルの組から選択されたプロトコルを使用して、データパケットの処理をするようにプログラマブルに再構成可能であることを特徴とする請求項５に記載のマルチポートパケットプロセッサ。
【請求項７】
前記処理されるパケットベースのプロトコルは、ＩＳＤＮ、イーサネット（登録商標）、ファストイーサネット、ギガビットイーサネット、ＡＴＭ、ＣＤＤＩ、ＦＤＤＩ、ＲＳ−４８５ ＧＰＩＢ、及びＰ１３８４の内の少なくとも１つを含むことを特徴とする請求項５に記載のマルチポートパケットプロセッサ。
【請求項８】
ＬＡＮで使用されることを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項９】
ＷＡＮで使用されることを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項１０】
ディスク記憶装置環境で使用されることを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項１１】
４つのポートプロセッサを含むことを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項１２】
８つのポートプロセッサを含むことを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項１３】
それぞれのポートプロセッサは、前記チャネルプロセッサに結合したメモリを更に含むことを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項１４】
前記ポートプロセッサは、ポートプロセッサの対として配置され、隣接するポートプロセッサの前記対は、ポートプロセッサの隣接する対についての短軸に関して裏返されていることを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項１５】
それぞれのポートプロセッサが、それぞれの通信チャネルに結合し、それぞれのポートプロセッサが、それぞれのパケットベースのプロトコルを使用したパケットベースの処理を提供し、当該ポートプロセッサのすべては、１つの集積回路内に実施される、そのような１つより多くのポートプロセッサを備え、
前記ポートプロセッサは、前記集積回路中の短軸に沿って配置されたほぼ長方形のストリップ中に配置され、隣接するポートプロセッサについての短軸に関して裏返されていることを特徴とするＬＡＮプロセッサ。
【請求項１６】
前記ポートプロセッサは、物理層のパケット上で動作することを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項１７】
前記ポートプロセッサは、更にデータリンク層のパケット上で動作することを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項１８】
前記ポートプロセッサは、更にネットワーク層のパケット上で動作することを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項１９】
前記ポートプロセッサの内の少なくとも１つのチャネルインターフェースは、１つより多くの通信チャネルに結合することを特徴とする請求項１に記載のマルチポートパケットプロセッサ。
【請求項２０】
２次元アレイ中に配置された１つより多くのマルチポートパケットプロセッサであって、それぞれのマルチポートパケットプロセッサは、少なくとも１つの他のマルチポートパケットプロセッサに結合し、それぞれのマルチポートパケットプロセッサは、１つより多くのポートプロセッサであって、それぞれのポートプロセッサが、少なくとも１つのそれぞれの通信チャネルに結合し、それぞれのポートプロセッサが、それぞれのパケットベースのプロトコルを使用したパケットベースの処理を提供する、そのような１つより多くのポートプロセッサを含み、それぞれのマルチポートパケットプロセッサは、１つの集積回路内に実施されることを特徴とする、そのような１つより多くのマルチポートパケットプロセッサを備え、
前記ポートプロセッサは、前記集積回路中の短軸に沿って配置されたほぼ長方形のストリップ中に配置され、隣接するポートプロセッサについての短軸に関して裏返されていることを特徴とするグリッドアレイプロセッサ。
【請求項２１】
複数次元アレイ中に配置された１つより多くのマルチポートパケットプロセッサであって、それぞれのマルチポートパケットプロセッサは、少なくとも１つの他のマルチポートパケットプロセッサに結合し、それぞれのマルチポートパケットプロセッサは、１つより多くのポートプロセッサであって、それぞれのポートプロセッサが、少なくとも１つのそれぞれの通信チャネルに結合し、それぞれのポートプロセッサが、それぞれのパケットベースのプロトコルを使用したパケットベースの処理を提供する、そのような１つより多くのポートプロセッサを含み、それぞれのマルチポートパケットプロセッサは、１つの集積回路内に実施されることを特徴とする、そのような１つより多くのマルチポートパケットプロセッサを備え、
前記ポートプロセッサは、前記集積回路中の短軸に沿って配置されたほぼ長方形のストリップ中に配置され、隣接するポートプロセッサについての短軸に関して裏返されていることを特徴とする複数次元グリッドアレイプロセッサ。
【発明の詳細な説明】
【０００１】
この出願は、参考文献としてここに組込まれた、１９９７年９月４日出願の米国仮出願第６０／０５７，８１３号の利益を要求する。
【０００２】
（発明の背景）
この発明は、広くコンピュータネットワークに関し、詳細には、コンピュータネットワーク内の通信を処理するためのマルチポートパケットプロセッサに関する。
【０００３】
コンピュータネットワークは、（しばしば１つより多い通信プロトコルを使用する）通信デバイスのネットワークによる種々のコンピュータの相互接続である。コンピュータネットワークの１つのそのような例は、電話線及び高速伝送線路を通じてパーソナルコンピュータとサーバとを相互接続するインターネットである。コンピュータネットワークの他の例は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、及びＲＳ−４８５インスツルメンテーション(instrumentation)プロトコル及びユニバーサルシリアルバス（ＵＳＢ）のようなプロトコルに基づいたネットワークを含む他の特別の目的のネットワークを含む。（比較的）より小さいデバイスのネットワーク中への相互接続によって、大規模な構成の処理が容易になり、情報の効率的な拡散が可能になり、ネットワーク内の種々のデバイスの間の通信が提供され、リソース及びデータの共有が可能になる。
【０００４】
図１は、従来のコンピュータネットワーク１００を説明する。ネットワーク１００は、ハブ１２０、スイッチ１２２、及びルータ１２４を通じて一緒に相互接続された、多くのユーザコンピュータ１１０及びサーバ１１２を含む。ユーザコンピュータ１１０及びサーバ１１２は、それぞれのネットワークインターフェースカード（ＮＩＣ、図示せず）を通じてネットワークに接続する。ＮＩＣは、コンピュータ又はサーバからデータ（すなわち、バイトで）を受信し、ネットワーク伝送線路への伝送のためにデータパケットを形成する。ハブ、スイッチ、及びルータは、データパケットを受信し、そのパケットを適切な宛先(destination)に導く。その宛先では、他のＮＩＣがデータパケットを受信し、コンピュータすなわちサーバによって使用可能なバイトにそのパケットを変換する。一組のデバイスの間の相互接続は、シールドされていないツイストペアケーブル（Unshielded Twisted-Pair, ＵＴＰ）ケーブル、同軸ケーブル、光ファイバケーブル、又は他の伝送媒体とすることができる。
【０００５】
ネットワークは、それぞれの層が決まった機能を実行する種々の層(layer)から構成されているように見ることができる。それぞれの層は、それの上及び／又は下の層と通信する。更に、それぞれの層は、ハードウェア若しくはソフトウェア、又は両者の組合わせによって実施することができる。
【０００６】
図２は、開放型システム間相互接続（Open System Interconnection, ＯＳＩ）コンピュータネットワーク２００の種々の層を説明する。コンピュータネットワーク２００は、以下の７層から構成される：（１）物理層２１０、（２）データリンク層２１２、（３）ネットワーク層２１４、（４）トランスポート層２１６、（５）セッション層２１８、（６）プレゼンテーション層２２０、及び（７）アプリケーション層２２２。物理層２１０は、物理伝送システムに渡ってビット列(bit stream)を伝送する。データリンク層２１２は、信頼できるデータ伝送を提供する。ネットワーク層２１４は、あるネットワークノードから他のノードにデータを送る。トランスポート層２１６は、所定の品質レベルでの２つのユーザの間のデータ転送を提供する。セッション層２１８は、データ交換を管理する。プレゼンテーション層２２０は、意味のある形式でユーザに情報を提示する。最後に、アプリケーション層２２２は、コンピュータネットワーク２００をモニタし、管理する。
【０００７】
種々の層の間の通信は、一組のプロトコルによって管理される。層及びプロトコルは、今度は、ネットワークのアーキテクチャを明確に定める。従来より、他のプロトコルと互換性のない多くの多様なプロトコルが存在する。他の製造者の製品と差別化するために、又は他の理由のために、多くの製造者によって採用されているプロトコルもある。このように、ある製品ラインからの製品は、同じ製品ラインからの他の製品と通信することができるが、それは多くの場合、他の製造者からの他の製品と互換性がない。ネットワークプロトコルの例は、ＩＳＤＮ(Integrated Service Data Network)、イーサネット、ファストイーサネット、ギガビットイーサネット、非同期転送モード（ＡＴＭ）、ＣＤＤＩ(Copper Distributed Data Interface)、ＦＤＤＩ(Fiber Distributed Data Interface)及び(Ｐ１３９４としても知られる)ファイバチャネル(Fiber Channel)を含む。
【０００８】
（互換性のある、及び互換性のない）ネットワーク、又はネットワークのセグメントの間の相互接続性(interconnectivity)及び相互運用性(interoperability)は、相互接続デバイス（例えばルータ、ハブ、ブリッジ、ゲートウェイ）によって提供される。市場でのネットワークの急増、及び使用される多くのプロトコルのために、相互接続デバイスは、多くのネットワークで不可欠の部分になっている。図２を参照すると、物理層２１０で動作するハブ２３０は、延長されたネットワークを形成するための同じネットワークのセグメントを接続するために使用される。ハブは、リピータとも称される。データリンク層２１２で動作するブリッジ２３２は、互換性のある（又はほぼ互換性のある）ＬＡＮを接続するために使用される。ネットワーク層２１４で動作するルータ２３４は、１つの大きなネットワークを形成するために２つのネットワークセグメントを接続する。最後に、ネットワーク層２１４又はそれより上の層で動作するゲートウェイ２３６は、内部ネットワークを外部ネットワークに接続する。ゲートウェイ２３６は、それが動作している全ての層の異なるプロトコルを許容するため、最も複雑だが、最も柔軟な相互接続デバイスである。
【０００９】
ネットワークはより大きく、より高速になるため、より大きいバンド幅を必要とする新しいアプリケーションが可能になる。高いバンド幅のアプリケーションの例には、ビデオオンデマンド、ビデオゲーム、などが含まれる。これらのアプリケーションは、ＮＩＣ、通信チャネル、及び相互接続デバイス（例えば、サーバ）を含む、ネットワークアーキテクチャの種々の部分にストレスを及ぼす。ボトルネックは、しばしばデータ通信システム中に発生し、混雑しそうな１つの部分はサーバのメインコンピュータバスである。
【００１０】
上述より、高速データ通信を容易にするプロセッサが必要であることを強調することができる。
【００１１】
（発明の概要）
本発明によると、マルチポートパケットプロセッサは、複数の高速パケットベースの通信チャネルをお互いにインターフェースするための効率的なメカニズムを提供する。マルチポートパケットプロセッサは、低価格、高性能、及び高信頼性のために、集積回路の内部で実施される。
【００１２】
マルチポートパケットプロセッサは、複数のポートプロセッサを含む。それぞれのポートプロセッサは、それぞれの通信チャネルを結合するチャネルインターフェース、及びそのチャネルインターフェースを通じて受信したパケットを処理するためのチャネルプロセッサを含むことができる。チャネルインターフェースは、特定の組のパケットベースのプロトコルを使用して、チャネルからのパケットベースの通信を処理するように設計することができる。他には、チャンネルインターフェースは、（多くの可能な組から）選択された組のパケットベースのプロトコルを使用して、パケットを送信し、受信するように構成することができるようなプログラマブルな制御装置を有するように設計することができる。
【００１３】
それぞれのポートプロセッサは、ポートプロセッサ間の通信を提供するための少なくとも１つの他のポートプロセッサと結合したプロセッサ間通信(interprocessor communication)インターフェースを更に含むことができる。
【００１４】
特定の実施形態では、ポートプロセッサは、複数の通信チャネルを同時に処理することができる。通信チャネルは、同一のパケットベースのプロトコル又は異なるパケットベースのプロトコルを有することができる。
【００１５】
マルチポートパケットプロセッサは、種々のアプリケーションで使用することができる。１つのアプリケーションでは、マルチポートパケットプロセッサは、ＬＡＮプロセッサとして機能し、ＬＡＮサーバによって典型的に提供される機能を提供する。他のアプリケーションでは、マルチポートパケットプロセッサは、ディスク記憶装置プロセッサとして機能し、種々の記憶デバイスの間のデータ転送を管理する。
【００１６】
本発明は、添付の図面と共に以下の詳細な説明を参照することによって、よりよく理解されるであろう。
【００１７】
（特定の実施形態の詳細な説明）
ＬＡＮハブ
図３は、ＬＡＮチャネル通信ハブ３００を図解する簡単なブロック図である。ＬＡＮハブ３００は、マルチポートプロセッサ３２０に結合された多くのパケットベースのプロトコルチャネル３１０を含む。ＬＡＮハブ３００は、図１に示されるネットワーク中のハブ１２０に対応させることができる。（図３ではブロックとしてシンボル的に示される）チャネル３１０は、ＩＳＤＮ、イーサネット、ファストイーサネット、ギガビットイーサネット、ＡＴＭ、ＣＤＤＩ、ＦＤＤＩ、又は（ファイヤワイヤ(Firewire)としても知られる）Ｐ１３９４のような異なるＬＡＮチャネルを含む。更に、図３に示される種々のチャネル３１０は、異なるタイプのプロトコルを利用することができる。例えば、いくつかのチャネル３１０は、大容量記憶装置(mass storage)の通信プロトコル（例えば、ＳＣＳＩ）をサポートすることができるし、他のチャネル３１０は、ＬＡＮプロトコル（例えば、イーサネット）をサポートすることができる。
【００１８】
マルチポートプロセッサ
図４Ａは、集積されたマルチポートプロセッサ４００の１つの実施形態のブロック図である。マルチポートプロセッサ４００は、図３のマルチポートプロセッサ３２０として動作することができる。マルチポートプロセッサ４００は、複数のパケットベースのプロトコルチャネル３１０を通じて通信を効率的に制御し、管理する。従来は、この機能は、ＬＡＮサーバのような、より大きいデバイスによって実行される。
【００１９】
マルチポートプロセッサ４００は、多くのポートプロセッサ４１０を含む。図４Ａに示される実施形態では、４つのポートプロセッサ４１０があり、それぞれのポートプロセッサ４１０は、８つの回路を含む。その８つの回路は、以下のものである：（１）入出力（Ｉ／Ｏ）バッファ４２０、（２）Ｉ／Ｏコントローラ４２２、（３）プロセッサ間通信回路４２４、（４）チャネルプロセッサ４２６、（５）キャッシュコントローラ４２８、（６）内部メモリ４３０、（７）メモリコントローラ４３２、及び（８）メモリバッファ４３４。それらの回路のそれぞれは、以下で更に説明する。
【００２０】
Ｉ／Ｏバッファ４２０は、通信チャネルから受信され、そして通信チャネルに伝送されることになるデータパケットをバッファリングする。Ｉ／Ｏコントローラ４２２は、データパケットの受信及び伝送を管理し、パケットをキューに入れ、及び、１つ以上のパケットのデータに、暗号化／解読、フォーマット変換、及びエラー訂正／検出の操作を実行するための、一時的な記憶要素を含むことができる。
【００２１】
プロセッサ間通信回路４２４は、ネットワークの状況、より高いレベルのネットワーク制御コマンド、又は他のポートプロセッサ及びプロセッサ間Ｉ／Ｏ回路(interprocessor I/O circuit)のいずれかに応答して、特定のリアルタイムの動作を引き起こすための割込みコントローラを含むことができる。プロセッサ間Ｉ／Ｏ回路は、クロックタイマカウンタ及び他の回路を含むことができる。
【００２２】
チャネルプロセッサ４２６は、ポートプロセッサ４１０の動作を管理し、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、特定用途向けＩＣ（applications specific integrated circuit, ＡＳＩＣ）、デジタルシグナルプロセッサ（ＤＳＰ）、有限状態機械（レジスタ記憶装置、Field Programmable Gate Array-ＦＰＧＡ、又はComplex Programmable Logic Device, ＣＰＬＤ）又は類似の回路として実施することができる。キャッシュコントローラ４２８は、キャッシュ（すなわち、第１レベルキャッシュ）を含む。内部メモリ４３０は、データ及びプログラムコードのための記憶を提供し、ＲＡＭ、ＤＲＡＭ、ＲＯＭ、フラッシュメモリ、他の類似のデバイス、又はこれらの組合わせとして実施することができる。更に、内部メモリ４３０は、ポートプロセッサ４１０を初期化するためのブートＲＯＭ（又はブートフラッシュメモリも可能）を含むことができる。１つの実施形態では、内部メモリ４３０は、外部メモリが必要でないように、十分なメモリ（すなわち、十分なＲＡＭ、ＲＯＭ、及び他のメモリ）を含むことができる。メモリコントローラ４３２は、ポートプロセッサ４１０と外部メモリの間のデータ交換を管理する。メモリバッファ４３４は、外部メモリから受信し、そして外部メモリに伝送することになるデータをバッファリングする。
【００２３】
図４Ａに示されるように、マルチポートプロセッサ４００は、それぞれのポートプロセッサ４１０のためのサポート回路４３６を更に含む。特に、サポート回路４３６ａ、４３６ｂ、４３６ｃ、及び４３６ｄは、それぞれポートプロセッサ４１０ａ、４１０ｂ、４１０ｃ、及び４１０ｄに結合する。サポート回路４３６は、Ｉ／Ｏ回路、メモリ、ドライバ、及び他の回路を含むことができる。サポート回路４３６は、ポートプロセッサ４１０と、そのポートプロセッサに関連する１つ以上の通信チャネルの間の通信を容易にする。サポート回路４３６は、結合した通信チャネル上に、異なる物理的信号状態を伝達するビットのためのアナログ変換を提供する。例えば、このアナログ変換は、異なる信号化の取り決めを必要とするレーザをドライブするため、（例えば、０及び１としての）ロジック信号を変換することができる。
【００２４】
通信機構
図４Ａに示される実施形態を参照すると、それぞれのポートプロセッサ４１０は、以下の３つの通信機構を含む：（１）チャネルインタフェース４４０、（２）外部メモリインターフェース４４２、及び（３）プロセッサ内（又はプロセッサ間）通信インターフェース４４４。チャネルインターフェース４４０は、Ｉ／Ｏバッファ４２０及びＩ／Ｏコントローラ４２２を含む。外部メモリインターフェース４４２は、メモリコントローラ４３２及びメモリバッファ４３４を含む。プロセッサ間通信インターフェース４４４は、プロセッサ間回路(interprocessor circuit)４２４を含む。
【００２５】
チャネルインターフェース４４０は、特定の組のパケットベースのプロトコルを使用してチャネルからのパケットベースの通信を処理するように設計することができる。他には、（多くの可能な組から）選択された組のパケットベースのプロトコルを使用してパケットを送信し、受信するように構成することができるようなプログラマブルな制御装置を有するように、チャネルインターフェース４４０を設計することができる。チャネルインターフェース４４０（すなわち、Ｉ／Ｏコントローラ４２４）にプロセッサ、有限状態機械、又は他の適当なデバイスを与えることによって、プログラマブルにすることができる。プロセッサ又は有限状態機械は、種々の状態の組の内の１つを使用して、開始して動作する性能を有するように設計することができる。そのようなプロセッサ又は有限状態機械は、固定したプログラムでも、再構成可能にプログラマブルであってもよい。
【００２６】
プロセッサ間通信ネットワークは、複数のプロセッサ間通信インターフェース４４４から構成される。プロセッサ間通信ネットワークは、すべてのポートプロセッサ４１０、又はポートプロセッサ４１０のサブセットを相互接続することができる。更に、プロセッサ間通信ネットワークは、パケットデータ転送及び（恐らくは）転送コマンド／ステータス信号を含むことができる通信機構を含む。
【００２７】
プロセッサ間通信ネットワークによって、種々のポートプロセッサ４１０は、２つ以上の通信チャネルの間の通信を調整し、効率的に管理することができる。例えば、１つのポートプロセッサ４１０を、特定の組のプロトコルを使用して１つのチャネルに割り当てることができ、他のポートプロセッサ４１０を、同じ又は異なる組のプロトコルを使用して他のチャネルに割り当てることができる。プロセッサ間通信ネットワークは、２つの（互換性がなくてもよい）チャネルの間の通信を可能にする。このように、プロセッサ間通信ネットワークは、図２に示されるように、ブリッジ２３２又はルータ２３４のように振る舞う。
【００２８】
ポートプロセッサ４１０ａ、４１０ｂ、４１０ｃ及び４１０ｄの形状に注意する。回路は、概略で長方形として示されるが、それは、集積回路のレイアウト内でそれらが占有するであろうおおよその形状である。ポートプロセッサの個々の構成要素は、必ずしもほぼ同じ大きさである必要はないであろうが、略図の都合のためにこのように示している。しかし、ポートプロセッサの個々の構成要素は、おおよそ長方形であろう。
【００２９】
更に、ポートプロセッサ４１０ａ、４１０ｂ、４１０ｃ及び４１０ｄの配置に注意する。それらは、隣接するポートプロセッサに関して長軸の方向が裏返されるように配置される。好適な実施形態は、同じ方向を共有し、裏返されている対と隣接するポートプロセッサの対を含む。ポートプロセッサが外部メモリインターフェースを占有しない場合の他の好適な実施形態は、それぞれのグループが方向を共有し、１つのグループの方向は、他のグループの方向から裏返されるような、ポートプロセッサの２つのグループのみを１つの集積回路中に含む。
【００３０】
更に、プロセッサ間通信インターフェース４４４の配置に注意する。これらの回路は、必要な全体のワイヤ長を最少にするために、ポートプロセッサ内に、最適に配置される。これを実施するためには、どのポートプロセッサ配置を実施するのかを知る必要がある。方向を裏返すことになる場合、その配置は、必ずポートプロセッサの長方形の形状の中央にあるべきか、あるいは、ポートプロセッサの長軸の中心からほぼ等しい距離に位置する２つの構成部分に、それを分割すべきかのいずれかである。
【００３１】
ポート処理
１つの実施形態では、それぞれのポートプロセッサ４１０は、１つ以上のパケットベースのプロトコルチャネルと同時にインターフェースする性能を有する。１つのポートプロセッサ４１０によるこれらのチャネルの間の高速パケット転送は、そのポートプロセッサ４１０内に、チャネルインターフェース通信機構によって供給される（すなわち、Ｉ／Ｏバッファ４２０及びＩ／Ｏコントローラ４２２によって提供される）。この転送機能は、そのポートプロセッサ４１０内の対応するチャネルプロセッサ４２６によって制御される。これはそれぞれのポートプロセッサ４１０内の「ローカル」なチャネルの間に、効率的で、低いオーバヘッドの転送機構を提供する。
【００３２】
他の実施形態では、異なるポートプロセッサ４１０に結合したチャネル間の通信は、プロセッサ間通信ネットワークによって提供される。この実施形態では、コマンド及びステータスの処理が同時に起きる間、パケットデータ転送は、妨げられずに進行する。パケットデータ転送は、コマンド及びステータス情報転送から物理的に分離したチャネルで起きる。いずれも、他方の転送特性によって遅くなることはない。
【００３３】
ポートプロセッサ４１０は、（ゲートウェイ２３６の設計と同様に）１つ以上の層で動作するように設計することができる。図２を参照すると、ポートプロセッサ４１０は、物理層２１０、データリンク層２１２、ネットワーク層２１４、又はこれらの層の組合わせの上で動作するように設計することができる。
【００３４】
パケット転送及び変換は、ブロックデータ転送及びブロックデータ処理の分離した構成要素の機能に区分することができる。これらの分離できる機能は、お互いにおおよそ干渉しない同時に動作する別個の機構によって好適には実行される。ブロックデータ転送は、破壊的な侵入活動のため別個の通信機構の使用を通じた制御及びステータス情報の通信によって引き起こされる破壊的な侵入から好適には更に分離される。
【００３５】
モジュールの設計
図４Ｂは、ポートプロセッサのモジュラー設計によるマルチポートプロセッサの設計の柔軟性を図解する。マルチポートプロセッサ４０２は、種々のパケットベースのプロトコルを使用してデータ転送をインターフェースし、処理することができる。他には、マルチポートプロセッサ４０２は、ただ１つのパケットベースのプロトコルを使用してただ１つのデータ転送をインターフェースし、処理することができる。図４Ｂで示されるように、ポートプロセッサ４１２ａ、４１２ｂ、４１２ｃ、及び４１２ｄは、インターフェース４５０ａ、４５０ｂ、４５０ｃ、及び４５０ｄをそれぞれ含む。それぞれのチャネルインターフェース４５０は、Ｉ／Ｏバッファ及び利用しようとするパケットベースのプロトコルに対応するＩ／Ｏコントローラの特定の組によって設計することができる。他には、上述のように、それぞれのチャネルインターフェース４５０は、多くの組のプロトコルの中から選択された組のプロトコルを使用してパケットの処理を行えるようにするプログラマブルな制御装置を有することができる。例えば、マルチポートプロセッサ４０２の１つのチャネルインターフェース４５０は、ＩＳＤＮ又はイーサネットをサポートすることができ、他のチャネルインターフェース４５０は、ＡＴＭをサポートすることができ、及び、他のチャネルインターフェース４５０は、ＳＣＳＩをサポートすることができる。他の例として、４ポートのマルチポートパケットプロセッサは、１つのギガビットイーサネットポートプロセッサ、１つのファストイーサネットポートプロセッサ、１つのイーサネットポートプロセッサ、及びディスクファーム(disk farm)にインターフェースする１つのファイバチャネルポートプロセッサを含むことができる。
【００３６】
図４Ｃは、６つのポートプロセッサ４１０を含むマルチポートプロセッサ４０４を図解するブロック図である。マルチポートプロセッサ４０４は、４つのポートプロセッサ４１０のみを含むマルチポートプロセッサ４００（図４Ａを参照する）と、形態が異なる。これらの例が示すように、マルチポートプロセッサは、２、４、６、８、１６、３２、又は他の任意の数を含む、どのような数のポートプロセッサも含むように設計することができる。偶数の数のポートプロセッサは、特定の利点（例えば、レイアウト効率）を提供することができるが、奇数の数のポートプロセッサも、設計し、利用することができる。また、上述のように、それぞれのポートプロセッサ４１０は、異なるチャネルインターフェース（すなわち、異なる組のＩ／Ｏバッファ及びＩ／Ｏコントローラ）又はプログラマブルなチャネルインターフェースを含むことができる。
【００３７】
図４Ａから４Ｃを参照すると、それぞれのポートプロセッサは、単一のチャネルインターフェースを有するように示される。しかし、ポートプロセッサは、どのような数のチャネルインターフェースも含むように設計することができる。更に、それぞれのポートプロセッサは、マルチポートプロセッサ内の他のポートプロセッサに関係なく（すなわち、個々に独立して）チャネルインターフェースを有するように設計することができる。例えば、マルチポートプロセッサは、１つのポートプロセッサが、１つのチャネルインターフェースを含み、第２のポートプロセッサが、２つのチャネルインターフェースを含み、第３のポートプロセッサが、３つのチャネルインターフェースを含む、などのようになるよう設計することができる。この例は、複数のＲＳ−４８５チャネルサポートＧＰＩＢ及び２つのＵＳＢチャネルを含む。
【００３８】
マルチポートプロセッサの他のアプリケーション
図５は、マルチポートプロセッサ５００が、大容量記憶装置の環境でのデータ転送を処理するために使用されることを特徴とする特定のアプリケーションを示す。この環境は、通常、「ディスクファーム」と称される。ディスクファームは、多くの記憶デバイス（例えば、ハードディスクドライブ、テープドライブ、ＣＤドライブ、フロッピーディスクドライブ、又は他の記憶デバイス）を含む。それぞれの記憶デバイスは、それぞれの通信チャネル５１０又は５１２を通じてマルチポートプロセッサ５００に結合する。ディスクファームの例は、向上したシステムの信頼性のための冗長性のレベルを大容量ディスク記憶装置に提供するリダンダントディスクＲＡＩＤシステムである。普通、このデータ転送制御装置は、複雑なデバイスを必要とする。
【００３９】
図６は、１つより多くのマルチポートプロセッサ６００が、２次元のグリッドのパケットサーバ６１０として構成されることを特徴とする他の特定のアプリケーションを示す。図６は、４×４のグリッドのマルチポートプロセッサ６００を示す。しかし、他の次元も使用することができ、対称性は通常必要とされない。１つの実施形態では、それぞれのマルチポートプロセッサ６００のパケットベースの通信チャネルの一部は、特定のマルチポートプロセッサ６００が位置する行及び列中で通信のために使用される。これらのチャネルは、異なるプロトコルを有することができる。例えば、１つのチャネルは、サーバ６１０内でより高いバンド幅を提供するためにＰ１３９４プロトコルを使用することができる。残りのチャネルは、通信にネットワークを提供するために使用される。
【００４０】
図７は、１つより多くのマルチポートプロセッサ７００が、３次元グリッドのパケットサーバ７１０として構成されることを特徴とする、更に他の特定のアプリケーションを示す。図７は、４×４×４のグリッドのマルチポートプロセッサ７００を示す。しかし、他の次元も使用することができ、対称性も通常必要とされない。１つの実施形態では、それぞれのマルチポートプロセッサ７００のパケットベースの通信チャネルの一部は、特定のマルチポートプロセッサ７００が位置する行、列、及び象限(quadrant)中の通信のために使用される。これらのチャネルは、異なるプロトコルを有することができる。
【００４１】
図６及び７に示される構造は、４次元アレイのマルチポートプロセッサ、５次元アレイのマルチポートプロセッサ、又は、Ｍを任意の整数としてＭ次元アレイのマルチポートプロセッサに拡張することができる。
【００４２】
特定の実施形態の前述の説明は、どのような当業者も本発明を製造し使用することができるようにするために提供される。これらの実施形態への種々の変更は、当業者に簡単に明らかになるであろうし、ここで記述した包括的な原理は、発明能力を使用することなく、他の実施形態に適用することができる。例えば、それぞれのポートプロセッサは、必要な機能性によって、図４Ａから４Ｃに示される回路と異なる回路を含むことができる。このように、本発明は、ここに示される実施形態に限定されることを意図していないが、ここに開示され、以下の請求項によって画定されるような原理及び新規な特徴と一致する最も広い範囲に適合させられるべきである。
【図面の簡単な説明】
【図１】  従来のコンピュータネットワークを図解する。
【図２】  ＯＳＩコンピュータネットワークの種々の層を図解する。
【図３】  ＬＡＮチャネル通信ハブを図解する簡単なブロック図である。
【図４Ａ】  集積マルチポートプロセッサの１つの実施形態のブロック図である。
【図４Ｂ】  集積マルチポートプロセッサの他の実施形態のブロック図である。
【図４Ｃ】  集積マルチポートプロセッサの更に他の実施形態のブロック図である。
【図５】  １つのマルチポートプロセッサが大容量記憶装置の環境でデータ転送を処理するために使用されることを特徴とする特定のアプリケーションを示す図である。
【図６】  １つより多くのマルチポートプロセッサが２次元グリッドのパケットサーバとして構成されることを特徴とする他の特定のアプリケーションを示す図である。
【図７】  １つより多くのマルチポートプロセッサが３次元グリッドのパケットサーバとして構成されることを特徴とする更に他の特定のアプリケーションを示す図である。
【図１】
0004368527.tif 000002
【図２】
0004368527.tif 000003
【図３】
0004368527.tif 000004
【図４Ａ】
0004368527.tif 000005
【図４Ｂ】
0004368527.tif 000006
【図４Ｃ】
0004368527.tif 000007
【図５】
0004368527.tif 000008
【図６】
0004368527.tif 000009
【図７】
0004368527.tif 000010