説明

バッファ付きクロスバー・スイッチ・システム

【課題】通信システムの複数のモジュール間の相互接続用バッファ付きクロスバー・スイッチを提供する。
【解決手段】データ・モジュール間でのデータ転送を実現する。少なくとも2個のクロスバー・スイッチが使用され、各クロスバー・スイッチの入力ノードおよび出力ノードが、対応するデータ・モジュールに結合される。各クロスバー・スイッチは、各入力ノードにおける入力バッファと、スイッチ・ファブリックの各クロスポイントにおけるクロスポイント・バッファと、各出力ノードにおける出力バッファとを含む。入力バッファは、第1のスケジューリング・アルゴリズムに従って、入力バッファからデータ・パケットを読み取るアービタを有する。アービタは、第2のスケジューリング・アルゴリズムに従って、クロスポイント・バッファ・キューからデータ・パケットを読み取る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システムの複数のモジュール間の相互接続用バッファ付きクロスバー・スイッチに関する。
【背景技術】
【0002】
クロスバー・スイッチ(「クロスポイント・スイッチ」または「マトリクス・スイッチ」としても知られる)は、複数の入力ポートと出力ポートとを互いに相互接続する。P個の入力とQ個の出力を有するクロスバー・スイッチは、P×Q個のクロスポイントを備えたスイッチ・ファブリック・マトリクスを有し、これらのクロスポイントで入力ポートと出力ポートとの間の接続が行われる。したがって、入力ポートの1つに到達したパケットを、1つまたは複数の指定された出力ポートに送ることができる。例えば、パケットを、ただ1つの指定された出力ポートに送る(ユニキャスト)、全ての出力ポートに送る(ブロードキャスト)、または複数の指定された出力ポートに送る(マルチキャスト)ことができる。
【0003】
マルチプロセッサ・コンピュータ・システムでは、プロセッサを、メモリまたは他のサブシステムなどの他のリソース、あるいはインターネット・スイッチまたは他の高性能通信ネットワークとリンクさせるのに、バッファのないクロスバー・スイッチが多用されている。しかし、バッファのないクロスバー・スイッチでは、一般に、スイッチ・ファブリックの高速化が求められ、すなわち、スイッチの内部データ・レートは、リンクのデータ・レートよりも高くなければならないことを意味する。こうしたクロスバー・スイッチでは、典型的には、100%のスループットを達成するために、並列反復マッチング(Parallel Iterative Matching)(PIM)アルゴリズムおよびiSLIPアルゴリズムなど、複雑度の高い集中制御スケジューリング・アルゴリズムが必要となる。
【0004】
バッファ付きクロスバー・スイッチでは、指定された出力ポートに即座に送ることができないパケット(すなわち、遮断パケット)を一時的に記憶しておくためのバッファが、クロスバー・スイッチ内に含まれている。例えば、バッファは、各入力ポート、各出力ポート、クロスバー・スイッチの各クロスポイント接続部、またはそれらのいくつかの組合せに設けることができる。集中制御スケジューリング・アルゴリズムを用いて、入出力データ・ストリームをスイッチ・ファブリックに効率良くアクセスさせることができる。
【発明の概要】
【課題を解決するための手段】
【0005】
例示的な実施形態では、本発明は、データ・モジュール間でのデータ転送を実現する。各データ・モジュールは、データ処理モジュールおよびデータ記憶モジュールの少なくとも一方である。少なくとも2個の結合されたクロスバー・スイッチが使用され、それぞれのクロスバー・スイッチの入力ノードおよび出力ノードが、対応するデータ・モジュールに結合される。i個目のクロスバー・スイッチは、Ni−入力ノード×Mi−出力ノードのスイッチ・ファブリックを有し、NiおよびMiはそれぞれ、1よりも大きい正の整数である。各クロスバー・スイッチは、各入力ノードにおける入力バッファと、スイッチ・ファブリックの各クロスポイントにおけるクロスポイント・バッファと、各出力ノードにおける出力バッファとを含む。入力バッファは、第1のスケジューリング・アルゴリズムに従って、入力バッファからデータ・パケットを読み取る入力アービタを有する。クロスポイント・バッファは、第2のスケジューリング・アルゴリズムに従って、クロスポイント・バッファ・キューからデータ・パケットを読み取る出力アービタを有するキューを備える。出力ノードは、1つまたは複数の対応するクロスポイント・バッファから供給されたデータ・パケットのセグメントを受け取る。
【0006】
本発明のその他の態様、特徴、および利点は、以下の詳細な説明、添付の特許請求の範囲、および添付の図面からより完全に明らかになるであろう。図面では、同じ参照番号は、類似の、または同一の要素を示す。
【図面の簡単な説明】
【0007】
【図1】本発明の例示的な実施形態に従って動作するバッファ付きクロスバー・スイッチ・システムのブロック図である。
【図2】本発明の実施形態によるバッファ付きクロスバー・スイッチのブロック図である。
【図3】図2のバッファ付きクロスバー・スイッチの補足的詳細を示す図である。
【図4】本発明の例示的な実施形態に従って動作する別のバッファ付きクロスバー・スイッチ・システムを示す図である。
【図5】本発明の例示的な実施形態に従って動作する別のバッファ付きクロスバー・スイッチ・システムを示す図である。
【発明を実施するための形態】
【0008】
本発明の実施形態によれば、通信システムの複数のデータ・モジュール間の高スループット相互接続を実現するバッファ付きクロスバー・スイッチ・システムが提供される。例えば、クロスバー・スイッチ内でのバッファリングの分配、およびスケジューリング・アルゴリズムによって、本発明の実施形態を用いて、マルチコア・プロセッサをメモリ・サブシステムと相互接続する並行仮想パイプラインを構築することができる。あるいは、本発明の実施形態は、例えば、クライアント/サーバ・スイッチ、インターネット・ルータ、共有メモリ・システム、またはネットワーク・スイッチとして使用することができる。本発明の実施形態は、高速化することなく100%のスループットを達成することができる。
【0009】
図1は、例示的なバッファ付きクロスバー・スイッチ・システム100のブロック図を示す。図示のように、バッファ付きクロスバー・スイッチ・システム100は、処理装置102、バッファ付きクロスバー・スイッチ103および104、ならびにメモリ装置105を備える。バッファ付きクロスバー・スイッチ103および104はそれぞれ、処理装置102およびメモリ装置105と電気通信している。したがって、図示のように、バッファ付きクロスバー・スイッチ103および104は、処理装置102およびメモリ装置105内の複数のデータ・モジュール間の高スループット相互接続を実施するように構成することができる。いくつかの実施形態では、バッファ付きクロスバー・スイッチ103および104は、光ファイバを介して処理装置102およびメモリ装置105と通信している1つまたは複数のチップ上にあってもよい。
【0010】
いくつかの実施形態では、処理装置102は、マルチコア・プロセッサでよい。例えば、処理装置102は、N個のプロセッサを含むことができ、Nは1以上の整数である。図1に示すように、処理装置102は、プロセッサ120(1)、プロセッサ120(2)など、N個目のプロセッサ120(N)まで含む。プロセッサは、例えば、PowerPCまたはARMプロセッサなど、汎用プロセッサとして実装することができ、あるいは、プロセッサは、例えば、デジタル信号処理またはセキュリティ・プロトコル処理など、特殊機能のための加速装置として実装することもできる。処理装置102はまた、アービタ122(1)、アービタ122(2)など、N個目のアービタ122(N)まで含む。図1に示すように、プロセッサ120(1)はアービタ122(1)と電気通信しており、プロセッサ120(2)はアービタ122(2)と電気通信しており、以下、アービタ122(N)と電気通信しているプロセッサ120(N)まで同様である。アービタ122(1)から122(N)はそれぞれ、プロセッサ120(1)から120(N)とそれぞれに通信するための少なくとも1つの入力ポートと1つの出力ポートを有する。
【0011】
いくつかの実施形態では、メモリ装置105は、メモリとの読取りおよび書込み動作を調整するメモリ制御器を使用することができる。メモリは、例えば、少なくとも1つのRAMバッファを含むことができる。したがって、例示的な実施形態に示すように、メモリ装置105は、1つまたは複数のRAMバッファからの情報の読取り、および該バッファへの情報の書込みを調整するM個のメモリ制御器を含むことができ、Mは1以上の整数である。NとMの値は同じでよいが、必ずしも同じである必要はない。メモリは、RAMバッファだけに限られるものではなく、フラッシュ・メモリなど、1つまたは複数の他の種類のメモリで実施してもよい。メモリ装置105は、メモリ制御器152(1)からメモリ制御器152(M)まで含む。メモリ装置105はまた、アービタ150(1)からアービタ150(M)まで含む。図1に示すように、メモリ制御器152(1)はアービタ150(1)と電気通信しており、メモリ制御器152(2)はアービタ150(2)と電気通信しており、以下、アービタ150(M)と電気通信しているメモリ制御器152(M)まで同様である。アービタ150(1)から150(M)はそれぞれ、メモリ制御器152(1)から152(M)とそれぞれに通信するための少なくとも1つの入力ポートと1つの出力ポートを有する。あるいは、本発明の実施形態は、出力調停用の集中アービタを含んでもよい。本発明の他の実施形態は、局在アービタと集中アービタとの組合せを含んでもよい。
【0012】
バッファ付きクロスバー・スイッチ103および104は、スイッチへのいかなる入力も、スイッチの1つまたは複数の任意の出力に転送することが可能なように構成されたスイッチ・ファブリックを含む。例示的な実施形態では、バッファ付きクロスバー・スイッチ103は、N個の入力ポートとM個の出力ポートを有し、バッファ付きクロスバー・スイッチ104は、M個の入力ポートとN個の出力ポートを有し、Nはプロセッサの数であり、Mはメモリ制御器の数である。図1に示すように、バッファ付きクロスバー・スイッチ103は、132(1)から132(N)として示すN個の入力ポートと、138(1)から138(M)として示すM個の出力ポートとを有する。バッファ付きクロスバー・スイッチ104は、148(1)から148(M)として示すM個の入力ポートと、142(1)から142(N)として示すN個の出力ポートとを有する。図1には2個のバッファ付きクロスバー・スイッチを示しているが、本発明は、それだけに限られるものではなく、したがって、バッファ付きクロスバー・スイッチ・システム100は、B個までのバッファ付きクロスバー・スイッチを含むことができ、Bは1以上の整数である。
【0013】
例えば、本発明の例示的な実施形態は、5個のバッファ付きクロスバー・スイッチ、すなわち、処理装置102からメモリ装置105にアドレスを送る1つのスイッチ(図示せず)、処理装置102からメモリ装置105にデータを送る1つのスイッチ(バッファ付きクロスバー・スイッチ103として示す)、メモリ装置105から処理装置102にアドレスを送る1つのスイッチ(図示せず)、メモリ装置105から処理装置102にデータを送る1つのスイッチ(バッファ付きクロスバー・スイッチ104として示す)、およびメモリからプロセッサに応答を送る1つのスイッチ(図示せず)を含むことができる。
【0014】
図1に示すように、バッファ付きクロスバー・スイッチ103は、処理装置102からメモリ装置105に送られるデータを切り換えるように構成され、バッファ付きクロスバー・スイッチ104は、メモリ装置105から処理装置102に送られるデータを切り換えるように構成される。したがって、バッファ付きクロスバー・スイッチ103および104を用いて、処理装置102のN個のプロセッサのうちのどれを、メモリ装置105のM個のメモリ制御器のうちのどれと通信させるかを設定することができる。例えば、処理装置102のプロセッサ120(1)から供給されたデータを、バッファ付きクロスバー・スイッチ103の入力ポート132(1)に供給することができる。アービタ122(1)は、データ・プロセッサ120(1)によって、バッファ付きクロスバー・スイッチ103の入力ポート132(1)に供給されるデータを制御する。破線矢印134によって示すように、バッファ付きクロスバー・スイッチ103は、このデータをバッファ付きクロスバー・スイッチ103の出力ポート138(2)に供給するように構成することができる。アービタ150(2)は、どのクロスポイント・バッファが、バッファ付きクロスバー・スイッチ103の出力ポート138(2)に転送されるかを制御する。したがって、バッファ付きクロスバー・スイッチ103は、このデータをメモリ装置105のメモリ制御器152(2)に供給する。同様に、破線矢印135および136は、バッファ付きクロスバー・スイッチ103の他の例示的なデータ経路の設定を示す。バッファ付きクロスバー・スイッチ103はまた、1つの入力ポートからのデータを複数の出力ポートに供給するように設定することもできる。同様に、メモリ装置105のメモリ制御器152(1)からのデータを、バッファ付きクロスバー・スイッチ104の入力ポート148(2)に供給することができる。アービタ150(1)は、メモリ制御器152(1)によって、バッファ付きクロスバー・スイッチ104の入力ポート148(2)に供給されるデータを制御する。破線矢印145によって示すように、バッファ付きクロスバー・スイッチ104は、このデータを1つの出力、この例では出力ポート142(2)に供給するように設定することができ、この出力ポートは、処理装置102のプロセッサ120(2)にデータを供給する。アービタ122(2)は、どのクロスポイント・バッファが、バッファ付きクロスバー・スイッチ104の出力ポート142(2)に転送されるかを制御する。同様に、破線矢印144および146は、バッファ付きクロスバー・スイッチ104の他の例示的なデータ経路の設定を示す。
【0015】
図2は、本発明の実施形態によるバッファ付きクロスバー・スイッチ・システム200のブロック図を示す。図示のように、バッファ付きクロスバー・スイッチ・システム200は、バッファ付きクロスバー・スイッチ226と、仮想出力キュー(VOQ)202、204、および206とを含む。バッファ付きクロスバー・スイッチ226は、入力ポート220、222、および224として示す3個の入力ポートと、出力ポート246、248、および250として示す3個の出力ポートとを有する。したがって、図2に示すように、N=M=3である。入力ポート220はVOQ202と電気通信し、入力ポート222はVOQ204と電気通信し、入力ポート224はVOQ206と電気通信している。出力ポート246は出力キュー1 252と電気通信し、出力ポート248は出力キュー2 254と電気通信し、出力ポート250は出力キューM256と電気通信している。本発明のいくつかの実施形態は、出力キュー252、254、および256を含まなくてもよい。バッファ付きクロスバー・スイッチ226は、3×3のスイッチ・マトリクスの各クロスポイントにFIFOバッファを含む。したがって、例示的な実施形態では、N×Mのスイッチは、N×M個のバッファを有することになる。これらのFIFOバッファを、クロスポイント・キュー228、230、232、234、236、238、240、242、および244として図2に示す。クロスポイント・キューは、それぞれの出力ポートにデータを送る前に、データを一時的に記憶する。クロスポイント・キューによって、このスイッチ・ファブリックは、受取りが遮断されることなく、複数の入力ポートでほぼ同時にデータを受け取ることが可能となる。
【0016】
VOQ202、204、および206はそれぞれ、1つまたは複数の仮想先入れ先出し(FIFO)バッファを含むことができる。例えば、VOQ202は、図2にFIFO202a、202b、および202cとして示す3個のFIFOを含むことができるが、本発明は、それだけに限られるものではなく、より多数の、またはより少数のFIFOを使用してもよい。各VOQバッファは、VOQによるバッファ付きクロスバー・スイッチ226のスイッチ・ファブリックへのアクセスをスケジューリングするアービタと電気通信している。図2に示すように、VOQ202はアービタ214と電気通信し、VOQ204はアービタ216と電気通信し、VOQ206はアービタ218と電気通信している。図2ではVOQとして示しているが、本発明の実施形態は、他の種類の入力バッファリングを使用してもよい。
【0017】
VOQ202、204、および206に送られたパケットは、パケットの宛先アドレスに従ってFIFO内に分類される。パケットは、一般には可変長のものであり、したがって、本発明の実施形態は、パケットをスイッチ・ファブリックに供給する前に、それらのパケットを「セル」に分割する。セルとは、固定数のビットであり、それによって、様々なサイズのパケットをいくつかの固定サイズのセルに分割することができ、必要に応じてパディングが伴う。クロスポイント・キューは、セルを対応する出力キュー(複数可)に転送する前に、データ・セルを一時的に記憶する。各クロスポイント・キューは、クロスポイント・キューによるバッファ付きクロスバー・スイッチ226の出力ポートへのアクセスをスケジューリングするアービタと電気通信している。図示のように、クロスポイント・キュー228、230、および232は、アービタ225と電気通信し、クロスポイント・キュー234、236、および238は、アービタ227と電気通信し、クロスポイント・キュー240、242、および244は、アービタ229と電気通信している。図1に戻ると、アービタ214、216、および218は、アービタ122(1)から122(N)に対応し、アービタ225、227、および229は、アービタ150(1)から150(M)に対応し、ここではN=M=3である。
【0018】
本発明のいくつかの実施形態は、データ・セルをパケットにリアセンブルする出力キュー252、254、および256を含む。パケットをスイッチ・ファブリックに直接送る(すなわち、パケットをセルに分割しない)実施形態では、パケットのリアセンブルが必要でないので、出力キュー252、254、および256は必要でない。
【0019】
本発明のいくつかの実施形態では、各クロスポイント・キューのサイズ(例えば、キューの深さ)は可変とすることができる。したがって、各クロスポイント・キューの深さは、例えば、図1のバッファ付きクロスバー・スイッチ103および104を介してデータを転送する往復時間に基づいて変えることができる。例えば、長い往復時間を有するデータ経路では、パケットの往復転送の間データ・セルを記憶しておくために、より大きいクロスポイント・バッファが必要となり得る。したがって、本発明の実施形態は、異なる往復時間を支持する様々な深さのクロスポイント・キューを実現する。
【0020】
往復時間とは、クレジットが入力アービタに戻るのにかかる時間、およびデータをクロスポイント・バッファに送るのにかかる時間である。最初は、全てのクロスポイント・バッファは空である。バッファ付きクロスバー・スイッチの各入力アービタは、各クロスポイント・バッファについて、何個のクレジットが利用可能か追跡することができる。例えば、クロスポイント・バッファi、jの各入力ポートiで利用可能なクレジットの数Cは、C(i,j)で表すことができる。クレジットの数は、最初は、クロスポイント・バッファi、jの深さと同じでよい。入力ポートiからクロスポイント・バッファi、jに各データ・セルが送られるごとに、クレジットの数Cは減分される。C(i,j)がゼロとなったとき、入力ポートiは、データ・セルを送るのを停止しなければならず、さもないと、クロスポイント・バッファi、jはオーバーフローすることになる。出力jにおける出力アービタがクロスポイント・バッファ(i、j)からセルを取り込むと、C(i,j)は増分される(「クレジットを返す」)。例えば、入力によってクロスポイント・バッファに書き込まれるのに2サイクルかかり、クレジットを返すのに3サイクルかかるシステムでは、往復時間は5サイクルとなる。より深いクロスポイント・バッファでは、入力は、クロスポイント・バッファに、そのクレジットを使い果たすことなくセルを送り込み続けることができる。本発明の例示的な実施形態では、クロスポイント・バッファの深さは、クレジット返却待ち時間に伴って増大させることができ、したがって、往復時間も増大することになる。
【0021】
N個の入力FIFOバッファ202、204、および206はそれぞれ、1つのアービタを有するため、入力アービタ214、216、および218は、分配アービタである。入力アービタは、互いに電気通信しておらず、したがって、バッファ付きクロスバー・スイッチ226の拡張性が促進され、これは、分配アービタは集中アービタよりも小さい物理的寸法を有し得るからである。同様に、M個の出力キュー252、254、および256もそれぞれ、1つのアービタを有するため、出力アービタ225、227、および229もやはり、分配アービタである。
【0022】
例示的な実施形態では、アービタ214、216、218、225、227、および229は、ラウンドロビン・アルゴリズムを実行する「ラウンドロビン」スケジューラとして実装され、このアルゴリズムでは、バッファは、昇順または降順で処理され、その処理は、シーケンスの最後のバッファが処理された後、シーケンスの第1のバッファに戻る。例えば、空でないVOQ202a、202b、および202cのそれぞれがアービタ214によって処理されるとき、その処理されているバッファのデータ・セルは、その時点で処理されているVOQが空になるまで、または、そのVOQの時間枠が終了するまで、スイッチ・ファブリックに供給される。これらのいずれが生じても、アービタ214は、シーケンスの次のVOQに進むことになる。アービタ214は、空のVOQはスキップして、次の空でないVOQを処理する。アービタ216、218、225、227、および229は、アービタ214と同様に動作する。ラウンドロビン・スケジューリング・アルゴリズムについて説明しているが、本発明はそれだけに限られるものではなく、他のスケジューリング・アルゴリズム、例えば、データを最長時間保持していたキューにスケジューリング優先度が与えられる、最長キュー優先スケジューリングを使用することもできる。さらに、本発明の実施形態は、必ずしも同じスケジューリング・アルゴリズムを使用するというわけではなく、スケジューリング・アルゴリズムの組合せを使用することができる入力アービタおよび出力アービタを実現する。
【0023】
一般に、調停は上記の通りに実施される。したがって、バッファ付きクロスバー・スイッチ226が、同数、すなわちN個の入力と出力を有する場合、Z個のセル(但しZは整数)からなるパケットは、宛先出力キューに到達するのにN×Zのクロック・サイクルがかかり得る。本発明の例示的な実施形態は、セルの優先順位付けを実現する。例えば、優先順位は、プロセッサ・ベースで割り当てることができ、処理装置102内のあるプロセッサに、他のプロセッサよりも高い優先順位を割り当てることができ、したがって、関連するアービタは、Z個のパケット・セル全てをZサイクルで連続して配送することになる。あるいは、優先順位は、パケット・ベースで割り当てることもでき、例えば、ある種のパケットに、他の種のパケットよりも高い優先順位を割り当てることができる。
【0024】
バッファ付きクロスバー・スイッチ226の特定の出力ポートに繰り返しアクセスすると、不均一な出力が生じる。出力ポートへのアクセスは、出力アービタによって制御されるため、不均一な出力によって、バッファ付きクロスバー・スイッチ226の最大スループットが制限されることがある。例えば、図1に示すように、バッファ付きクロスバー・スイッチ226の各出力ポートは、メモリ装置105内の特定のメモリ制御器と対応している。典型的には、順次アドレスを有するメモリ・ブロックのデータ転送は、1つのメモリ制御器によって管理される。宛先メモリ・アドレスによって、バッファ付きクロスバー・スイッチ226のどの出力にアクセスするかが決まる。したがって、順次メモリ・アクセスによって、不均一な出力状態が生じ得、そのため、バッファ付きクロスバー・スイッチ226の最大スループットが制限されることがある。本発明のいくつかの実施形態は、バッファ付きクロスバー・スイッチ226を介してかかるアドレスにデータを送る前に、メモリ・アドレスをスクランブルする。メモリ・アドレスのスクランブリングによって、順次メモリ・アクセスが、出力ポート・アクセスがより一様に分配されたアクセスに変換される。
【0025】
図3は、図2のバッファ付きクロスバー・スイッチ・システムの補足的詳細を示す。図3に示すように、バッファ付きクロスバー・スイッチ301の例示的な実施形態は、302、304、および306として示すM個のマルチプレクサをさらに含み、Mはクロスバー・スイッチの出力数である。図3に示すように、N=M=3である。N個の入力とM個の出力を有するスイッチでは、バッファ付きクロスバー・スイッチ301のスイッチ・ファブリックは、M個の“N−to−1”マルチプレクサを含み得る。図示のように、アービタ225、ならびにクロスポイント・キュー228、230、および232は、マルチプレクサ302と電気通信している。アービタ225は、マルチプレクサ302によってどのクロスポイント・キューが出力ポート246にアサートされ、したがって出力キュー252にアクセスするかを制御する。同様に、クロスポイント・キュー234、236、および238は、マルチプレクサ304と電気通信している。アービタ227は、マルチプレクサ304によってどのクロスポイント・キューが出力ポート248にアサートされ、したがって出力キュー254にアクセスするかを制御する。クロスポイント・キュー240、242、および244は、マルチプレクサ306と電気通信している。アービタ229は、マルチプレクサ306によってどのクロスポイント・キューが出力ポート250にアサートされ、したがって出力キュー256にアクセスするかを制御する。
【0026】
上記ではモノリシック・チップとして実装するとして説明してきたが、本発明はそれだけに限られるものではない。例えば、図4に示すように、各バッファ付きクロスバー・スイッチは、スイッチ・カード406(1)から406(L)として示す、それ自体の回路板を占有することができる。複数のスイッチ・カードは、シェルフを占有することができ、シェルフ404(1)から404(K)として示す複数のシェルフによって、スイッチ・シャシ400が形成されている。同様に、プロセッサおよびメモリも、ライン・シャシ402上に配置することができる。ライン・シャシ402は、シェルフ409(1)から409(K)として示す複数のシェルフを含むことができ、各シェルフは、ライン・カード410(1)から410(L)として示す複数のライン・カードを含む。各ライン・カードは、メモリまたはプロセッサなどの素子を収容することができ、これらの素子は、スイッチ・カードを介して通信する。ライン・シャシは、典型的には、リンク412、414、416、および418として示す電気ケーブルまたは光リンクを介して、スイッチ・シャシと通信する。
【0027】
図5は、本発明の例示的な実施形態に従って動作する別のバッファ付きクロスバー・スイッチ・システムを示す。図5に示すように、500として示す1つまたは複数のバッファ付きクロスバー・スイッチを用いて、プロセッサ102と記憶モジュール105とのチェーンを形成することができ、ここで、記憶モジュールは、2個のプロセッサが互いに通信するためのバッファとして働くことができる。バッファ付きクロスバー・スイッチ500は、図1に関して説明したように動作する。バッファ付きクロスバー・スイッチ500はまた、ブリッジ502と電気通信しており、したがって、チェーンに沿ってブランチを構築している。ブリッジ500は、バッファ付きクロスバー・スイッチ500と通信するための1つの高帯域ポートと、プロセッサ504、ならびに記憶モジュール506および508として示す、より低速のデータ・モジュール、またはレガシー・データ・モジュールと通信するための低帯域ポートとを有することができる。したがって、本発明の実施形態は、より高速のデータ・モジュールに利用できるシステムの帯域幅を制限せずに、より低速のデータ・モジュールを、より高速のデータ・モジュールと通信させる手法を実現する。ブリッジ502は、上述のようにバッファ付きクロスバー・スイッチを利用することができ、または、バッファ付きクロスバー・スイッチを使用しない設計を利用してもよい。
【0028】
本発明の特性を説明するために詳述し、例示してきた諸部品の細部、材料、および配置には、以下の特許請求の範囲に示す本発明の範囲から逸脱することなく、当業者によって様々な変更を行うことができることがさらに理解される。
【0029】
本明細書で述べる「一実施形態(one embodiment)」または「ある実施形態(an embodiment)」とは、その実施形態に関して説明した特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれ得ることを意味する。本明細書の様々な箇所で見られる「一実施形態では」という文言は、必ずしも全て同じ実施形態を指すというわけでも、他の実施形態と必然的に相互に排他的な別個の、または代替の実施形態を指すというわけでもない。同じことが、用語「実装形態(implementation)」についても当てはまる。
【0030】
単一の集積回路、マルチチップ・モジュール、単一のカード、またはマルチカード回路パックとして実施可能な実装形態を含めて、回路プロセスについて本発明の例示的な実施形態を説明してきたが、本発明はそれだけに限られるものではない。当業者には明白なように、回路素子の様々な機能はまた、ソフトウェア・プログラムの処理ブロックとして実装することもできる。かかるソフトウェアは、例えば、デジタル信号プロセッサ、マイクロコントローラ、または汎用コンピュータで使用することができる。
【0031】
本発明は、こうした方法を実施するための方法および装置の形で実施することができる。本発明はまた、磁気記録媒体、光記録媒体、固体メモリ、フロッピー(登録商標)・ディスケット、CD−ROM、ハード・ドライブ、または他の任意の機械可読記憶媒体などの有形媒体に実装されたプログラム・コードの形で実施することができ、こうしたプログラム・コードが、コンピュータなどの機械にロードされ、実行されるとき、その機械は、本発明を実施する装置となる。本発明はまた、例えば、記憶媒体に記憶されようと、機械にロードされ、かつ/または機械によって実行されようと、あるいは、電気配線またはケーブルを介して、光ファイバを介して、または電磁放射を介してなど、何らかの伝送媒体またはキャリヤを介して伝送されようと、プログラム・コードの形で実施することができ、こうしたプログラム・コードが、コンピュータなどの機械にロードされ、実行されるとき、その機械は、本発明を実施する装置となる。汎用プロセッサで実施する場合、プログラム・コードのセグメントは、プロセッサと組み合わさって、特定の論理回路と同様に動作する独特のデバイスを実現する。本発明はまた、本発明の方法および/または装置を用いて生じた、媒体を介して電気的または光学的に伝送されるビットストリームまたは他の信号値シーケンス、磁気記録媒体に記憶される磁界変化などの形で実施することができる。
【0032】
本明細書に記載の例示的な方法の諸ステップは、必ずしも記載されている順序で実施する必要はないことを理解されたく、また、かかる方法の諸ステップの順序は、単なる例示にすぎないことを理解されたい。同様に、本発明の様々な実施形態と整合の取れた方法で、かかる方法に追加のステップを含むことができ、また、あるステップを省略したり、または組み合わせたりしてもよい。
【0033】
要素および規格に関して本明細書で使用する場合、用語「互換性のある(compatible)」は、その要素が、規格によって全体的または部分的に指定された形で他の要素と通信することを意味し、その規格によって指定された形で他の要素と十分通信することが可能として他の要素によって認識されることになる。互換性のある要素は、規格によって指定された形で内部的に動作させる必要はない。
【0034】
また、本説明では、用語「結合させる」、「結合している」、「結合された」、「電気通信」、「接続させる」、「接続している」、または「接続された」とは、当技術分野で既知の、または後に開発された2つ以上の要素間でエネルギーを伝達することを可能とするいかなる形式も指し、必ずしも必要ではないが、1つまたは複数の追加の要素を介在させることも企図される。逆に、用語「直接結合された」、「直接接続された」などは、かかる追加の要素がないことを意味する。信号、および対応するノードまたはポートは、同じ名前で呼ぶことができ、本明細書では置換え可能である。

【特許請求の範囲】
【請求項1】
データ・モジュール間でデータを転送する装置であって、前記データ・モジュールのそれぞれが、データ処理モジュールおよびデータ記憶モジュールの少なくとも一方であり、前記装置が、
それぞれの入力ノードおよび出力ノードが、前記データ・モジュールの対応するものに結合された少なくとも1つのクロスバー・スイッチであって、i個目のクロスバー・スイッチが、Ni−入力ノード×Mi−出力ノードのスイッチ・ファブリックを有し、NiおよびMiはそれぞれ、1よりも大きい正の整数である、少なくとも1つのクロスバー・スイッチを備え、各クロスバー・スイッチが、
第1のスケジューリング・アルゴリズムに従って、各入力バッファからデータ・パケットを読み取るように構成された入力アービタを有する、各入力ノードにおける入力バッファと、
前記スイッチ・ファブリックの各クロスポイントにおけるクロスポイント・バッファであって、キューを備え、前記キューは、第2のスケジューリング・アルゴリズムに従って、前記クロスポイント・バッファ・キューからデータ・パケットを読み取るように構成された出力アービタを有するクロスポイント・バッファと、
1つまたは複数の対応するクロスポイント・バッファから供給されたデータ・パケットのセグメントを受け取るように構成された出力ノードとを備える、装置。
【請求項2】
各出力ノードにおける出力バッファをさらに備え、前記出力バッファが、1つまたは複数の対応するクロスポイント・バッファから供給されたデータ・パケットのセグメントを記憶するように構成される、請求項1に記載の発明。
【請求項3】
各入力ノードにおける前記入力バッファが、先入れ先出し(FIFO)バッファ、仮想出力キュー(VOQ)、または割込み先出しバッファ(PIFO)のうちの1つを備える、請求項1に記載の発明。
【請求項4】
各クロスポイント・バッファ・キューについて、前記キューの深さが、前記少なくとも1つのクロスバー・スイッチのうちの1つを介したデータ転送の往復時間に従って変動する、請求項1に記載の発明。
【請求項5】
前記第1のスケジューリング・アルゴリズム、および前記第2のスケジューリング・アルゴリズムの少なくとも一方が、ラウンドロビン・スケジューリング・アルゴリズムを使用する、請求項1に記載の発明。
【請求項6】
前記第1のスケジューリング・アルゴリズム、および前記第2のスケジューリング・アルゴリズムの少なくとも一方の前記ラウンドロビン・スケジューリング・アルゴリズムが、1つまたは複数のデータ処理モジュールについて優先配送を行う、請求項5に記載の発明。
【請求項7】
データ記憶モジュールがメモリ内の位置の順次アドレッシングを使用する場合、前記少なくとも1つのクロスバー・スイッチを介して前記データを送る前に、メモリ内の前記位置のアドレスがスクランブルされる、請求項1に記載の発明。
【請求項8】
少なくとも1つのNi−入力ノード×Mi−出力ノード・スイッチ・ファブリックが、Mi個の相互結合されたNi−to−1マルチプレクサを備える、請求項1に記載の発明。
【請求項9】
前記入力バッファに供給される前記データ・パケットが、同じ長さのセルに分割される、請求項1に記載の発明。
【請求項10】
前記入力バッファが、先入れ先出し(FIFO)バッファである、請求項9に記載の発明。
【請求項11】
前記装置が、少なくとも1対のクロスバー・スイッチを備え、第1のクロスバー・スイッチが、N−入力ノード×M−出力ノードのスイッチ・ファブリックを有し、第2のクロスバー・スイッチが、M−入力ノード×N−出力ノードのスイッチ・ファブリックを有し、NおよびMはそれぞれ、1以上の正の整数である、請求項1に記載の発明。
【請求項12】
前記第1のクロスバー・スイッチが、第1の群のデータ・モジュールから、第2の群のデータ・モジュールにデータを送り、前記第2のクロスバー・スイッチが、前記第2の群のデータ・モジュールから、前記第1の群のデータ・モジュールにデータを送る、請求項11に記載の発明。
【請求項13】
前記第1の群のデータ・モジュールのそれぞれが、データ処理モジュールであり、前記第2の群のデータ・モジュールのそれぞれが、データ記憶モジュールである、請求項12に記載の発明。
【請求項14】
前記装置が、モノリシック集積回路チップ内に実装される、請求項1に記載の発明。
【請求項15】
前記装置が、少なくとも5つのクロスバー・スイッチ、すなわち、データ処理モジュールからデータ記憶モジュールにアドレス・データを転送する第1のクロスバー・スイッチと、前記データ処理モジュールから前記データ記憶モジュールに利用者データを転送する第2のクロスバー・スイッチと、前記データ記憶モジュールから前記データ処理モジュールにアドレス・データを転送する第3のクロスバー・スイッチと、前記データ記憶モジュールから前記データ処理モジュールに利用者データを転送する第4のクロスバー・スイッチと、前記データ記憶モジュールから前記データ処理モジュールに応答を転送する第5のクロスバー・スイッチとを備える、請求項1に記載の発明。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2010−259045(P2010−259045A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2010−313(P2010−313)
【出願日】平成22年1月5日(2010.1.5)
【出願人】(508243639)エルエスアイ コーポレーション (124)
【Fターム(参考)】