(57)【要約】【課題】モジュール周辺の複数側面にデータ入力を有し、かつこのような機能を達成するためのカスタム・プログラム機能を提供するアーキテクチャを有するように適合された改良されたクロスバーが必要とされている。【解決手段】入力をクロスバー・ダイの複数側面に有するクロスバーの構成を可能とするようにされたプログラム可能なリピータ構造を有するクロスバー回路を提供する。複数個のリピータは、クロスバーの周辺の周りに物理的に位置しているような対応する入力の関数として、異なる位置の入力にリピータ配置が接続可能であるように、異なるリピータ構造で配置される。大規模集積回路で利用可能となるように設計されるように、所要クロスバーの関数として対応する入力にカスタム構成されたリピータ構造を可能とする擬似コードが提供される。【選択図】　　　図１０
2004023793.tif 000002
【特許請求の範囲】
【請求項１】
回路であって、
クロスバーと、
リピータ配置を形成し、かつ異なる前記リピータ配置を形成する複数個のリピータと、
複数個の入力であって、前記クロスバーの周辺の周りに定義され、前記各入力は、前記クロスバーに対する前記入力位置の関数として構成されている前記リピータ配置の１つに結合される前記複数個の入力と、
を含む回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はクロスバー構造に一般的に関係し、特にＶＬＳＩチップのような大規模集積回路で利用される大きなクロスバー構造に関係する。
【０００２】
【従来の技術】
クロスバーとは、任意の入力を任意の出力に接続可能な構造である。図１の１０に示すようなある回路ブロック１２に結合された入力を第２回路ブロック１４に供給する出力に切り換えるため、大きなクロスバーを実装することがＶＬＳＩチップでは一般的である。例えば、クロスバーは６４入力と６４出力を有し、ここで各々の入力と出力は１６ビット幅である。クロスバーは大体マルチプレクサから構成され、ここで各出力は１６ビット幅の６４入力マルチプレクサにより駆動される。６４入力マルチプレクサは実際にはより小さなマルチプレクサのツリー構成で実装されている。６４クロスバー出力により、この６４入力、１６ビット幅マルチプレクサの６４インスタンスがあることになる。
【０００３】
クロスバーは、通常のデータパス構造として従来効率よく実装可能であり、各出力マルチプレクサがビットスタックであるか、または通常のデータパス部品である、そうした場合、６４出力マルチプレクサが順番に配置される。例えば、図２の１６に図示するように、マルチプレクサ・ビットスタックは水平であり、ビット０が左に、ビット１５が右にある。データパスは次いで垂直に構築され、出力マルチプレクサ０が下に、出力マルチプレクサ６３が上にある。
【０００４】
この配置では、６４の１６ビット入力線は全６４出力マルチプレクサにブロードキャストされなければならない。図３はクロスバー１０の全高に垂直に走行するこれらの１０２４本の線を１８で図示している。６４マルチプレクサの入力により表される負荷は単一の線により駆動されるには大きすぎるのが通常のケースであり、この場合線１８は生成するＲＣ時定数が受入れ不能なほど十分長い。結果として、３個のリピータにより４セグメントに分割された入力線の場合に対して図４に示すように、リピータ（中継回路）２０を入力線１８に挿入しなければならない。
【０００５】
データ入力線１８は、クロスバー１０に来た時にしばしば記録される。出力データ線１８も、図５に図示するようにレジスタ２２により記録され、クロスバーが機能するために完全な１クロックサイクルを与え、かつ線１８上の入出力信号が可能性として長距離を走行する時間を許容する。データ入力がレジスタされると、リピータ２０はレジスタのバッファされた出力から駆動される。
【０００６】
図５の配置は、全１０２４データ入力線がクロスバー・モジュールの下端に入力される従来の場合である。図６に示すように、図示の基本リピータ構造を形成するリピータを使用して、線をモジュールの上端に入力することも可能である。
【０００７】
【発明が解決しようとする課題】
モジュール周辺の複数側面にデータ入力を有し、かつこのような機能を達成するためのカスタム・プログラム機能を提供するアーキテクチャを有するように適合された改良されたクロスバーが必要とされている。
【０００８】
【課題を解決するための手段】
本発明は、異なるリピータ配置を形成する複数個のリピータを有するクロスバー回路として技術的利点を達成し、これによりクロスバー回路への入力は回路の周辺に定義され、各入力は１つのリピータ配置に結合されて、ダイ上のクロスバー回路に対する入力位置の関数として構成される。
【０００９】
リピータ・トポロジーはクロスバー中のリピータ構造の物理的位置に依存し、この位置はこれに相互接続されている入力位置の関数である。これは有利なことに複数個のマルチプレクサがリピータにより駆動されることを可能とし、クロスバー回路出力はこれらのマルチプレクサにより与えられる。マルチプレクサはマルチプレクサ群に分けられることが望ましく、ここで各マルチプレクサ群は各群に近接して位置するリピータにより駆動される。各入力は複数個のビットを有することが望ましく、ここでリピータ配置が各ビットに設けられる。
【００１０】
各種のリピータ配置は直列的に接続されたリピータを含み、各リピータ配置と関係するデータ・レジスタはそのいろいろな区部でリピータ配置にデータを与える。例えば、各データ・レジスタへの入力がダイ周辺に対してどこに位置しているかに応じて、あるデータ・レジスタはリピータ構造の終端部にデータを与え、他のデータ・レジスタはリピータ配置の中間にデータを与える。
【００１１】
クロスバー周辺における入力の相対位置の関数として入力がリピータ配置に選択的に結合されるように、データ・レジスタ／リピータ配置は擬似コードによりプログラムされ配置コンパイラにより実行される。有利なことに、クロスバーがカスタム構成されて特定の設計用に設計された他の回路ブロックにインターフェースされるように、入力はクロスバー・ダイの周辺の周りに選択的に配置可能である。
【００１２】
【発明の実施の形態】
本発明は、クロスバーの周辺に設けた大きな回路を相互接続するため多数の側面からの入力を収容するクロスバーとして技術的利点を得る。どこからデータ入力が来るかに応じて、図７−８の３０と４０に示すように、クロスバーのリピータの配置が異なる。６４ｘ６４ｘ１６ビット・クロスバーの例では、クロスバー・モジュール周辺の複数側面から１０２４データ入力線が来ることが望ましい。図８は、ある入力が下端部から、ある入力がクロスバー・モジュールの上端部から来ているクロスバー４０を図示する。下端部には、入力０−３１が到着し、３２本の垂直に延びる線がビット０を左に、次いで最後にビット１５の３２入力線が右に来るまで各連続するビットが延びていることに注意されたい。同様に、上端部には、入力３２−６３が到着し、ビット０が左に、ビット１５が右に来て下方に延びる線がある。これらの線の各々は、以下でさらに説明するように入力位置の関数としてリピータ・トポロジーを形成するリピータ４２を含む。
【００１３】
図９は、いくつかの入力がクロスバーの左側に設定されているクロスバー配置を５０に示す。入力１２の１６ビットが順番に到着し、これに続いて次の入力の１６入力ビットがある。さらにクロスバーの左側の上には、順番に到着する入力２７の１６ビットが図示されている。クロスバーに対する入力の相対位置が、図示のように関係するリピータ構造トポロジーを決定する。
【００１４】
各クロスバー応用例は入力が異なった位置から異なって来ることを必要としているため、カスタム・クロスバーを都合よく発生可能であり、かつクロスバー周辺に対するデータ入力信号の所要ポート位置を収容しなければならないことが望ましい。異なる入力位置は異なるリピータ構造を発生する。入力に対してこれらのリピータ構造を発生し接続するアルゴリズムと共に、これに伴う構造自体を以下に説明し、これに図１０と図１１に示した例が続く。
【００１５】
コンパイラー・アルゴリズム
最初に、特定のクロスバー設計に対して、Ｎｓｅｇとして識別される、データ入力線を分割するセグメント数を決定する。各線を駆動するＮｓｅｇリピータ・バッファがあり、線セグメントの１つがデータ入力レジスタ２２からのバッファにより直接駆動され、他のセグメントは他の各リピータ６２から駆動される。出力マルチプレクサはＮｓｅｇ群に分割され、各マルチプレクサはデータ入力線の異なるリピータ出力から給電される。６４入力とＮｓｅｇ＝４のクロスバーの場合、入力線は４セグメントに分割され、１６の隣接する出力マルチプレクサが各リピータ出力からデータを与えられる。
【００１６】
このアルゴリズムでは、データ入力信号の４繰返し版の信号名前付けは以下の通りである：
ｄｉｎｂｕｆ［ｉｎｐｓｉｇ］［ｒｅｐｅａｔ］＜ｂｉｔ＞
ここで「ｉｎｐｓｉｇ」は６４データ入力に対して０から６３の範囲であり、「ｒｅｐｅａｔ」はバッファされたデータ入力線の４セグメントに対して０から３の範囲であり、「ｂｉｔ」は０から１５の範囲である。
【００１７】
指標の繰返しはデータ入力線セグメントの物理位置、下部の０から上部の３に対応する。すなわち：
下部の１６出力マルチプレクサ０から１５は以下の線からデータが与えられる：
ｄｉｎｂｕｆ［ｉｎｐｓｉｇ］［０］＜ｂｉｔ＞
次の隣接する１６出力マルチプレクサ１６−３１は以下の線からデータが与えられる：
ｄｉｎｂｕｆ［ｉｎｐｓｉｇ］［１］＜ｂｉｔ＞
次の隣接する１６出力マルチプレクサ３２−４７は以下の線からデータが与えられる：
ｄｉｎｂｕｆ［ｉｎｐｓｉｇ］［２］＜ｂｉｔ＞
最後の隣接する１６出力マルチプレクサ４８−６３は以下の線からデータが与えられる：
ｄｉｎｂｕｆ［ｉｎｐｓｉｇ］［３］＜ｂｉｔ＞
【００１８】
この配置はデータ入力ポートの位置決めとは独立している。しかしながら、本発明によると、リピータのトポロジーは入力ポートの物理位置に依存している。「ｉｎｐｕｔ＿ｓｅｇｍｅｎｔ」を、データ入力番号を与えられて、どのセグメントにデータ入力があるか、を返す関数であるとする。この関数は、各クロスバー応用例に対して個別に設計されて所要ポート位置を指示可能で、設計の柔軟性を許容する。この例では、クロスバーの下端部の入力は０を返し、クロスバーの上端部の入力は３を返し、クロスバーの左または右側に沿った他の入力は、クロスバー高のどの２５％にそれらが該当するかに応じて、０から３を返す。
【００１９】
以下の擬似コードが全４リピータを順番に発生する。
０から６３のｄａｔａ＿ｉｎｐｕｔに対して／／６４の１６ビットデータ入力線をループ
ｉｎｐｕｔ＿ｌｏｃ＜＝＝ｉｎｐｕｔ＿ｓｅｇｍｅｎｔ（ｄａｔａ＿ｉｎｐｕｔ）；／／入力がどのセグメントに該当するか
０から１５のビットに対して　　　　　／／１６ビットをループ
／／これは最初の入力バッファ、
／／入力がどこであろうと配置され、
／／入力データ・レジスタをバッファする
ｄｉｎｂｕｆ［ｄａｔａ＿ｉｎｐｕｔ］［ｉｎｐｕｔ＿ｌｏｃ］＜ｂｉｔ＞＜＝＝ｂｕｆｆｅｒ（ｄｉｎ＿ｑ［ｄａｔａ＿ｉｎｐｕｔ］＜ｂｉｔ＞）；
１から３のｂｕｆｆｅｒ＿ｎｕｍに対して　／／残りの３リピータをループ
ｉｎｐｕｔ＿ｉｓ＿ａｂｏｖｅ＜＝＝（ｉｎｐｕｔ＿ｌｏｃ＞＝ｂｕｆｆｅｒ＿ｎｕｍ）；
ｉｎｐｓｉｇ　＜＝＝ｉｆ　ｉｎｐｕｔ＿ｉｓ＿ａｂｏｖｅ　ｔｈｅｎ　ｂｕｆｆｅｒ＿ｎｕｍ　　ｅｌｓｅ（ｂｕｆｆｅｒ＿ｎｕｍ−１）；
ｏｕｔｓｉｇ　＜＝＝ｉｆ　ｉｎｐｕｔ＿ｉｓ＿ａｂｏｖｅ　ｔｈｅｎ　（ｂｕｆｆｅｒ＿ｎｕｍ−１）　ｅｌｓｅ　ｂｕｆｆｅｒ＿ｎｕｍ；
／／これらは、２５、５０、７５％位置の次の３リピータ・バッファである。
ｄｉｎｂｕｆ［ｄａｔａ＿ｉｎｐｕｔ］［ｏｕｔｓｉｇ］＜ｂｉｔ＞＜＝＝ｂｕｆｆｅｒ（ｄｉｎｂｕｆ［ｄａｔａ＿ｉｎｐｕｔ］［ｉｎｐｓｉｇ］＜ｂｉｔ＞）；
ｅｎｄ；
ｅｎｄ；
ｅｎｄ；
各場合を展開すると：
ｉｎｐ＠０　０　−＞１−＞２−＞３
ｉｎｐ＠１　０　＜−１−＞２−＞３
ｉｎｐ＠２　０　＜−１＜−２−＞３
ｉｎｐ＠３　０　＜−１＜−２＜−３
【００２０】
行の各矢印は、クロスバー・モジュールの垂直方向に沿った２５％、５０％、７５％位置に配置した、最後の３リピータからの１つのリピータを順番に表現している。入力が２５％点のリピータ１の下にある場合、リピータ１はｄｉｎｂｕｆ［ｉｎｐｓｉｇ］［０］を取り、ｄｉｎｂｕｆ［ｉｎｐｓｉｇ］［１］、すなわち０−＞１を発生する。入力が２５％点のリピータ１の上にある場合、リピータ１はｄｉｎｂｕｆ［ｉｎｐｓｉｇ］［１］を取り、ｄｉｎｂｕｆ［ｉｎｐｓｉｇ］［０］、すなわち１−＞０を発生する。
【００２１】
レジスタされたデータ入力から駆動される第１バッファは、その物理位置に対応するリピータ指標を有し、従ってセグメント２に到着した入力に対しては、バッファは以下の信号を発生する：
ｄｉｎｂｕｆ［ｄａｔａ＿ｉｎｐｕｔ］［２］＜ｂｉｔ＞
【００２２】
例
図１０に示した第１例として、各々が１６ビット幅の６４入力と６４出力を有するクロスバー６０を以下に説明する。６４入力はクロスバー・モジュール周辺の全４側部に分散しており、各側部当たり１６入力がある。入力０−１５は下部から来て、入力１６−３１は右側から来て、入力３２−４７は上部から来て、入力４８−６３は左側から来る。
【００２３】
下端部の入力０−１５に対して、１６ビット０入力は左側にあり、これに続いて１６ビット１入力が、最後に１６ビット１５入力が右側に来るまで続く。上端部の入力３２−４７にも同様のことが言える。
【００２４】
右側入力１６−３１に対しては、各入力の全１６ビットが連続的に配置され、入力１６の全ビットが右側の下端部から開始し、入力１７の全ビットが続き、入力３１の全ビットが右側の上端部に最後に来るまで進行していく。左側入力４８−６３も同様に配置され、入力６３が左側の下端部に、入力４８が左側の上端部にある。
【００２５】
この例では、垂直データ入力線の各々は４セグメントに分離され、各々がリピータ６２により次から分離されている。この配置に対してクロスバー・コンパイラをカスタム化するためには、関数ｉｎｐｕｔ＿ｓｅｇｍｅｎｔを作成することのみが必要であり、これは各データ入力に対して、どの入力セグメントにデータが該当するのかを返す。以下の擬似コードの一部が所要の関数を提供する：
ｆｕｎｃｔｉｏｎ　ｉｎｐｕｔ＿ｓｅｇｍｅｎｔ（ｉｎｐｕｔ＿ｎｕｍ）
｛
ｉｆ　（０＜＝ｉｎｐｕｔ＿ｎｕｍ＜＝１５）０
ｅｌｓｅｉｆ　（１６＜＝ｉｎｐｕｔ＿Ｎｕｍ＜＝３１）　（ｌｏｇａｎｄ３（ｉｎｐｕｔ＿ｎｕｍ＞＞２））　／／ｂｉｔｓ＜３：２＞
ｅｌｓｅｉｆ（３２＜＝ｉｎｐｕｔ＿ｎｕｍ＜＝４７）３
ｅｌｓｅ　　　　　　　　　　　（ｌｏｇａｎｄ　３　（ｌｏｇｘｏｒ　３　（ｉｎｐｕｔ＿ｎｕｍ＞＞２）））
ｅｎｄｉｆ；
｝
【００２６】
下端側の入力０−１５はセグメント０に属し、一方上端部の入力３２−４７はセグメント３に属する。右側の入力１６−３１は、４つの連続する入力が各セグメントに来るよう、４セグメント間に分散される。従って：
入力１６−１９はセグメント０に属する
入力２０−２３はセグメント１に属する
入力２４−２７はセグメント２に属する
入力２８−３１はセグメント３に属する。
左側の入力４８−６３は、４つの連続する入力が各セグメントに来るよう、４セグメント間に分散される。従って：
入力４８−５１はセグメント３に属する
入力５２−５５はセグメント２に属する
入力５６−５９はセグメント１に属する
入力６０−６３はセグメント０に属する
【００２７】
第２の例として、各々が１６ビット幅の６４入力と６４出力を再び有するクロスバー７０が図１１に図示されている。データ入力線は再び４セグメントに分離されている。この時、データ入力は、下端から、側部を交番して、クロスバーの左と右側から全て来る。
【００２８】
この場合、マッピングが簡単なため、関数ｉｎｐｕｔ＿ｓｅｇｍｅｎｔはより簡単となる；
入力０−１５はセグメント０に属する
入力１６−３１はセグメント１に属する
入力３２−４７はセグメント２に属する
入力４８−６３はセグメント３に属する。
ｆｕｎｃｔｉｏｎ　ｉｎｐｕｔ＿ｓｅｇｍｅｎｔ（ｉｎｐｕｔ＿ｎｕｍ）
｛
（ｌｏｇａｎｄ　３　（ｉｎｐｕｔ＿ｎｕｍ＞＞４））　　　　／／ｂｉｔｓ＜５：４＞｝
ｉｎｐｕｔ＿ｎｕｍのｂｉｔｓ＜５：４＞が入力部分を決定する。
【００２９】
入力が左側または右側のどちらにあろうと大した問題ではなく、従って上例で入力が左から右側へ交番することは重要でないことに注意すべきである。多数の異なる左−右パターンは同じｉｎｐｕｔ＿ｓｅｇｍｅｎｔ関数を有する。
【００３０】
図１２は、入力が左から右へＳ字パターンで交番するクロスバー８０を図示する。
【００３１】
図１３は、最初の４つが左に、次いで４つが右に、等々、入力が左から右へ４信号の群で交番するクロスバー９０を図示する。
【００３２】
図１４は、左に、次いで右に、右に、左に、入力が左から右へ４信号の群で交番するクロスバー１００を図示する。図１２−１４のこれらのデータ入力ピン位置パターンの全ては上記と同様なｉｎｐｕｔ＿ｓｅｇｍｅｎｔ関数を共有する。
要約すると、クロスバー構成を定義するアルゴリズムは以下の通りである：
Ｎ出力マルチプレクサがあるものとする。
データ入力線にＮｓｅｇセグメントがあり、その間にリピータがあり、従って各線はＮ／Ｎｓｅｇ出力マルチプレクサを駆動するものとする。
出力マルチプレクサを、０からＮｓｅｇ−１に番号付けした、物理的に隣接するマルチプレクサのＮｓｅｇ群に分割する。
次いで、０からＮｓｅｇ−１の群Ｋ中のマルチプレクサはデータ入力線セグメントＫにより駆動される。
Ｉｎｐｕｔ＿ｓｅｇｍｅｎｔを、データ入力線ポートがＮｓｅｇ群のどれに物理的に存在するかであるとする。
レジスタされたデータ入力をｄｉｎ＿ｑと呼ぶ。
次いで、第１バッファはｄｉｎ＿ｑを入力として取り、その出力としてｄｉｎｂｕｆ［ｉｎｐｕｔ＿ｓｅｇｍｅｎｔ］を生成する。
１からＮｓｅｇ−１のバッファ数Ｍの、残りのＮｓｅｇ−１バッファに対して、ｉｎｐｕｔ＿ｓｅｇｍｅｎｔ＞＝Ｍの場合、バッファＭはｄｉｎｂｕｆ［Ｍ］を入力として取り、ｄｉｎｂｕｆ［Ｍ−１］を出力として生成する。
１からＮｓｅｇ−１のバッファ数Ｍの、残りのＮｓｅｇ−１バッファに対して、ｉｎｐｕｔ＿ｓｅｇｍｅｎｔ＜Ｍの場合、バッファＭはｄｉｎｂｕｆ［Ｍ−１］を入力として取り、ｄｉｎｂｕｆ［Ｍ］を出力として生成する。
【００３３】
特定の望ましい実施例に対して本発明を説明してきたが、本願を読むと当業者には多数の変更と修正が明らかとなる。それゆえ、従来技術の観点から全ての上記変更と修正を含むよう添付の請求の範囲を出来る限り広範囲に解釈すべき意図である。
【００３４】
以上の説明に関して更に以下の項を開示する。
（１）回路において、
クロスバーと、
リピータ配置を形成し、かつ異なる前記リピータ配置を形成する複数個のリピータと、
複数個の入力であって、前記クロスバーの周辺の周りに定義され、前記各入力は、前記クロスバーに対する前記入力位置の関数として構成されている前記リピータ配置の１つに結合される前記複数個の入力と、
を含む回路。
（２）第１項記載のクロスバー回路において、前記リピータは、クロスバー上の入力の物理位置に依存するトポロジーに配置されているクロスバー回路。
（３）第１項記載のクロスバー回路において、前記リピータにより駆動されている複数個のマルチプレクサをさらに含み、前記クロスバー回路は前記マルチプレクサにより与えられた出力を有するクロスバー回路。
（４）第３項記載のクロスバー回路において、マルチプレクサは群に分割され、各前記群は前記群に近接して位置する前記リピータにより駆動されるクロスバー回路。
（５）第３項記載のクロスバー回路において、各前記入力は複数個のビットを有するクロスバー回路。
（６）第５項記載のクロスバー回路において、各前記ビットに大して１つの前記リピータ配置が与えられているクロスバー回路。
（７）第１項記載のクロスバー回路において、いくつかの前記リピータ配置は直列接続の前記リピータを含み、前記対応する入力は前記直列接続のリピータの中間部にデータを与えるクロスバー回路。
（８）第１項記載のクロスバー回路において、前記リピータ配置は、前記入力がリピータ配置に選択的に結合されるよう配置コンパイラ擬似コードによりプログラムされるようになっているクロスバー回路。
（９）第１項記載のクロスバー回路において、前記クロスバーは複数の側部を有し、前記入力は全ての前記側部に構成され、かつ前記リピータ配置に選択的に結合されているクロスバー回路。
【００３５】
（１０）第９項記載のクロスバー回路において、前記クロスバーは横方向に延びるマルチプレクサを有し、前記関係するリピータ配置が前記ノードの上下に位置している前記マルチプレクサに結合されるように、対向する前記クロスバー側面のいくつかの前記入力がノードの前記関係リピータ配置の中間部に結合されているクロスバー回路。
（１１）第９項記載のクロスバー回路において、前記入力は前記クロスバーの周囲に連続的に配置されているクロスバー回路。
（１２）第９項記載のクロスバー回路において、前記入力は２つの前記クロスバー側面間でジグザグ・パターンで配置されているクロスバー回路。
（１３）第９項記載のクロスバー回路において、前記入力は２つの前記クロスバー側面間でＳ字状配置に配置されているクロスバー回路。
（１４）第９項記載のクロスバー回路において、前記入力は２つの前記クロスバー側面間でモジューロｘのジグザグ・パターンで配置されていて、ｘは１より大きい数であるクロスバー回路。
（１５）第９項記載のクロスバー回路において、前記入力は２つの前記クロスバー側面間でモジューロｘのＳ字状配置に配置されていて、ｘは１より大きい数であるクロスバー回路。
（１６）第５項記載のクロスバー回路において、リピータ配置当たりＮ個の前記リピータと、Ｎ群の前記マルチプレクサが有り、各前記ビットと関係する１つの前記リピータ配置は対応する群のマルチプレクサに結合され、ここでＮは１より大きい数であるクロスバー回路。
（１７）第１項記載のクロスバー回路において、クロスバー上のデータ・レジスタの物理位置に依存するトポロジーでリピータに結合されたデータ・レジスタをさらに含むクロスバー回路。
（１８）第１項記載のクロスバー回路において、前記クロスバー回路は、使用のために構成された前記入力の関数として複数の構成でプログラム可能であるクロスバー回路。
（１９）第１７項記載のクロスバー回路において、前記データ・レジスタのいくつかは前記リピータ配置の中間部にデータを与えるクロスバー回路。
（２０）第１項記載のクロスバー回路において、入力を受取り、データ・レジスタに結合された入力の物理位置に依存するトポロジーで前記リピータに結合されているデータ・レジスタをさらに含むクロスバー回路。
【００３６】
（２１）入力をクロスバー・ダイの複数側面に有するクロスバーの構成を可能とするようにされたプログラム可能なリピータ構造を有するクロスバー回路（６０）である。複数個のリピータ（６２）は、クロスバーの周辺の周りに物理的に位置しているような対応する入力の関数として異なる位置の入力にリピータ配置が接続可能であるように、異なるリピータ構造で配置される。ＶＬＳＩチップのような特定の大規模集積回路で利用可能となるように設計されるように、所要クロスバーの関数として対応する入力にカスタム構成されたリピータ構造を可能とする擬似コードが提供される。
【図面の簡単な説明】
【図１】クロスバー回路の異なる側面でインターフェースされた各種の回路ブロックをインターフェースする大クロスバーを含むＡＳＩＣ回路のブロック図。
【図２】マルチプレクサ・ビットスタックを水平方向に配置したクロスバー回路のブロック図。
【図３】対応する入力からマルチプレクサの各々へ延びる複数本の垂直方向の線を図示するクロスバーのブロック図。
【図４】異なる群のマルチプレクサへ供電するよう適合された１つの入力に対するリピータ構造のブロック図。
【図５】全ての入力をクロスバー・モジュールの下に設けて、各データ・レジスタとリピータ配置にデータ供給するクロスバーのブロック図。
【図６】全ての入力をモジュールの上部で受取るクロスバーのブロック図。
【図７】異なるトポロジーのリピータ配置を有するクロスバーのブロック図であり、異なるトポロジーは関連する入力がモジュールの周辺のどこに配置されているかの関数である。
【図８】クロスバー・モジュールの下部と上端部の両方に入力が設けられたクロスバー・モジュールのブロック図。
【図９】いくつかの入力がクロスバーの側面から来て、入力の垂直位置の関数である異なるリピータ配置に接続されていることを図示するクロスバー。
【図１０】クロスバー・モジュールの全４側面に入力を定義したクロスバーの図で、ある１側面のいくつかの入力は各リピータ配置にデータ供給することを図示している。
【図１１】クロスバー・モジュールの左側面と右側面との間で交番する入力を有するクロスバー。
【図１２】左側面から右側面へＳ字状パターンで交番する入力を有するクロスバー。
【図１３】４個のグループで左側面から右側面へ交番する入力を有するクロスバー。
【図１４】４個のグループで左から右へＳ字状の入力を有するクロスバー。
【符号の説明】
６０　クロスバー
６２　リピータ
２２　データ・レジスタ
【図１】
2004023793.tif 000003
【図２】
2004023793.tif 000004
【図３】
2004023793.tif 000005
【図４】
2004023793.tif 000006
【図５】
2004023793.tif 000007
【図６】
2004023793.tif 000008
【図７】
2004023793.tif 000009
【図８】
2004023793.tif 000010
【図９】
2004023793.tif 000011
【図１０】
2004023793.tif 000012
【図１１】
2004023793.tif 000013
【図１２】
2004023793.tif 000014
【図１３】
2004023793.tif 000015
【図１４】
2004023793.tif 000016