JP2005516508A - 決定的または調停された制御による非同期クロスバー - Google Patents

決定的または調停された制御による非同期クロスバー Download PDF

Info

Publication number
JP2005516508A
JP2005516508A JP2003564758A JP2003564758A JP2005516508A JP 2005516508 A JP2005516508 A JP 2005516508A JP 2003564758 A JP2003564758 A JP 2003564758A JP 2003564758 A JP2003564758 A JP 2003564758A JP 2005516508 A JP2005516508 A JP 2005516508A
Authority
JP
Japan
Prior art keywords
crossbar
circuit
data
operable
control information
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.)
Granted
Application number
JP2003564758A
Other languages
English (en)
Other versions
JP4331617B2 (ja
JP2005516508A5 (ja
Inventor
カミングス・ウリ
ラインズ・アンドリュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fulcrum Microsystems Inc
Original Assignee
Fulcrum Microsystems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fulcrum Microsystems Inc filed Critical Fulcrum Microsystems Inc
Publication of JP2005516508A publication Critical patent/JP2005516508A/ja
Publication of JP2005516508A5 publication Critical patent/JP2005516508A5/ja
Application granted granted Critical
Publication of JP4331617B2 publication Critical patent/JP4331617B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0004Selecting arrangements using crossbar selectors in the switching stages

Abstract

【課題】 ルーティング制御情報にしたがって、データを第1数の入力チャネルの任意のものから、第2数の出力チャネルの任意のものへルーティングするよう動作可能なクロスバーに関する方法および装置を提供する。
【解決手段】 ルーティング制御情報にしたがって、データを第1数の入力チャネルの任意のものから、第2数の出力チャネルの任意のものへルーティングするよう動作可能なクロスバーに関する方法および装置を提供する。入力チャネルおよび出力チャネルのそれぞれの組み合わせは、複数のリンクのうちの1つに対応する。このクロスバー回路は、データを決定的な方法でルーティングするよう動作可能であり、それによりルーティング制御情報によって表された部分的順序付けを維持できる。異なるリンク上のイベントは非相関である。

Description

本発明は、2002年1月25日出願、米国特許仮出願第60/352,131号、「ASYNCHRONOUS CROSSBAR CIRCUIT WITH DETERMINISTIC OR ARBITRATED CONTROL」(弁護士整理番号FULCP001P)の優先権を主張し、その全体が全ての目的のためにここで参照によって援用される。
本発明は、非同期ディジタル回路設計に関し、より具体的には非同期クロスバーおよび関連する制御回路に関する。
同時に高速に、かつより複雑なディジタル回路、例えばマイクロプロセッサへのますます増加する要求は、従来のディジタル回路設計手法をその限界まで押しやっている。高クロックレート(すなわち100MHzより高い)および設計の複雑さ(例えば1000万以上のトランジスタを持つ超大規模集積(VLSI)デバイス)の組み合わせのために、信号伝搬遅延は、設計を考慮するときに支配的になった。もしディジタル回路設計が今までのようにムーアの法則に従い続けようとするなら、設計パラダイムの大転換が必要であることはまちがいない。
非同期VLSIは、ディジタル回路設計において研究および開発が盛んなエリアである。これは、グローバルクロック同期信号が存在しないディジタル回路設計の全ての形態をいう。遅延非敏感な非同期設計は、そのもともとの性質から、従来の設計パラダイムの発展の唯一最大の障害となってきた信号伝搬遅延に鈍感である。すなわち、遅延非敏感回路設計は、ディジタル回路の任意の遷移が無限の遅延を持った場合の特性を維持し、その回路はそれでも正確に振る舞う。回路は、シーケンスを守るが、絶対的なタイミングは必要ではない。この設計スタイルは、タイミング推定、グリッチ、または競合条件から生じる設計および検証の困難さを回避する。
一般に言って、同期設計スタイルは、深刻なパフォーマンス限界に直面している。ある非同期設計手法はまた、同様の限界、例えば競合条件で困難にぶつかっている。対照的に、非同期ディジタル設計の遅延非敏感な分野は、これら限界に対するその相対的な耐性のために、ディジタル回路のパフォーマンスにおける将来の発展を支持する大きな約束をされているようである。
遅延非敏感非同期ディジタル設計に関する背景情報については、以下の論文を参照されたい。A.J. Martin, "Compiling Communicating Processes into Delay-Insensitive Circuits," Distributed Computing, Vol.1, No. 4, pp. 226-234, 1986; U.V. Cummings, A.M. Lines, A.J. Martin, "An Asynchronous Pipelined Lattice Structure Filter." Advanced Research in Asynchronous Circuits and Systems, IEEE Computer Society Press, 1994; A.J. Martin, A.M. Lines, et al, "The Design of an Asynchronous MIPS R3000 Microprocessor." Proceedings of the 17th Conference on Advanced Research in VLSI, IEEE Computer Society Press, 1997;およびA.M. Lines, "Pipelined Asynchronous Circuits." Caltech Computer Science Technical Report CS-TR-95-21, Caltech, 1995、これらそれぞれは、その全体が全ての目的のためにここで参照によって援用される。
また1998年5月12日発行の米国特許第5,752,070号「Asynchronous Processsors」、および2000年3月14日発行の米国特許第6,038,656号、「Pipelined Completion for Asynchronous Communication」を参照されたい。これらのそれぞれはその全体が全ての目的のためにここで参照によって援用される。
もし非同期ディジタル設計手法が、ディジタル回路およびシステムのパフォーマンスが歴史的な法則に則って改善され続けていくことを可能にするディジタル設計手法になるのであれば、対応する同期型回路やシステムのパフォーマンスに匹敵し凌駕するような回路およびシステムの基本構成単位が提供されなければならない。
本発明によれば、非同期VLSI設計のクリチカルな問題を解決する回路が提供される。ある実施形態によれば、PからQへのクロスバーが提供され、これは全ての考えられる組み合わせにおいてP入力チャネルをQ出力チャネルにルーティングできる。他の実施形態によれば、ディスパッチャが提供され、これは入力を特定された出力にルーティングすることによって、それぞれのチャネル上の与えられた部分的順序を維持するようにクロスバー回路を決定的な方法で制御するよう動作可能である。さらに他の実施形態によれば、調停メカニズムが提供され、これはクロスバー回路の入力をその出力に非決定的な方法で制御するよう動作可能である。
よってさまざまな実施形態によれば、本発明は、ルーティング制御情報にしたがって、データを第1数の入力チャネルの任意のものから、第2数の出力チャネルの任意のものへルーティングするよう動作可能なクロスバーに関する方法および装置を提供する。入力チャネルおよび出力チャネルのそれぞれの組み合わせは、複数のリンクのうちの1つに対応する。このクロスバー回路は、データを決定的な方法でルーティングするよう動作可能であり、それによりルーティング制御情報によって表された部分的順序付けを維持できる。異なるリンク上のイベントは非相関である。
実施形態の他のセットによれば、ディスパッチャが提供され、これは命令ルーティング情報に基づいて第1数の入力チャネル上で受け取られた順序付けられた命令のストリームを、第2数の出力チャネルのうちの指定されたものへルーティングするよう動作可能である。前記ディスパッチャは、前記命令をそれぞれの出力チャネルへ決定的にルーティングし、それにより前記順序付けられたストリーム内で規定されたそれぞれの出力チャネルについての部分的順序付けを維持するよう動作可能であるディスパッチ回路を含む。異なる出力チャネル上の命令は非相関である。
さらに他の実施形態のセットによれば、アービタが提供され、これは命令ルーティング情報に基づいて第1数の入力チャネル上で受け取られた複数の命令を、第2数の出力チャネルのうちの指定されたものへルーティングするよう動作可能である。前記アービタは、異なる入力チャネルで受け取られ同じ出力チャネルを特定する命令の間で調停し、前記異なる入力チャネルの任意のものが後続の命令を、前記異なる入力チャネル間での調停が完了するまで転送しないよう動作可能であるアービタ回路を備える。
本発明の性質および利点をさらに理解することは、明細書の残りの部分および図面を参照することによって達成されよう。
発明者によって考えられる本発明を実施するためのベストモードを含む本発明の具体的な実施形態を詳細に参照する。これら実施形態の例は、添付図面に示される。本発明は、これら具体的な実施形態について記載されるが、記載された実施形態に本発明を限定するよう意図はされない。むしろ添付の特許請求の範囲に規定される本発明の精神および範囲内に含まれるように、代替物、改変物、および等価物をカバーするよう意図される。以下の記載において、多くの具体的な詳細が述べられるが、これは本発明の完全な理解を促すためである。本発明は、これら具体的な詳細の一部または全部なしでも実施されえる。さらによく知られたプロセス操作は、本発明の趣旨を不必要にぼかさないために記載されていない。
始めに、本願に記載された手法および回路の多くは、遅延非敏感非同期VLSIとして記載され実現されることに注意されたい。しかし本発明の原理および手法は、例えば遅延に鈍感ではない非同期VLSIおよび同期VLSIのような他のコンテキストにおいても用いられえることが理解されよう。
本発明のさまざまな実施形態は、さまざまな方法で本発明の範囲から逸脱することなく実現されえることが理解されよう。すなわち、ここで記載された非同期プロセスおよび回路は、コンパイルのさまざまな段階におけるソフトウェア(オブジェクトコードまたは機械語)において、1つ以上のネットリストとして、シミュレーション言語において、ハードウェア記述言語において、半導体処理マスクのセットによって、または部分的に、または完全に実現された半導体デバイスとして表現されえる(限定なく)。当業者に理解される前述のそれぞれについてのさまざまな代替物も本発明の範囲に入る。例えば、ここで記載されたプロセスおよび回路を設計および製造するのに適するコンピュータで読み取り可能な媒体、ソフトウェア言語(例えばVerilog、VHDL)、シミュレーション可能な表現(例えばSPICEネットリスト)、半導体プロセス(例えばCMOS、GaAs、SiGeなど)、およびデバイスタイプ(例えばFPGA)は、本発明の範囲に入る。
本発明はまた、疑似コード言語CSP(同時シーケンシャルプロセス)を利用して高級アルゴリズムを記述する。CSPは、典型的にはパラレルプログラミングソフトウェアプロジェクトにおいて、および遅延非敏感VLSIにおいて用いられる。この特定の言語および記述法の使用は単に例示的であり、本発明の基本的局面は本発明の範囲から逸脱することなく、さまざまな方法で表現され実現されえることが理解されよう。
さらに、ここで記載された回路のさまざまな態様のためのCSP仕様のトランジスタレベルの実現への変換は、A. Linesによる「Pipelined Asynchronous Circuits」(ここで参照によって援用される)において記載される手法によって達成されえる。しかし非同期設計手法のさまざまな種類の任意のものがこの目的で用いられえることが理解されよう。
ここで用いられるCSPは、以下の構造および文法を有する。プロセスは静的かつシーケンシャルであり、他のプロセスとチャネルを通して通信する。複数のプロセス群が合わさってパラレルプログラムを構成する。[および]は、if文を表し、*[および]はループを表す。
多肢選択は、B→Sのペアをif文またはループの中に追加することによってなされ、□(決定的選択)または|(非決定的選択)によって分離され、ここでBはブール式であり、Sはステートメントである。よって[B1→S1□B2→S2]は、もし式B1が真ならS1を実行し、またはもし式B2が真ならS2を実行することを意味する。もしB1もB2も真でないなら、このステートメントはいずれかがそうなるまで待つ(if−else構文とは異なり)。略記法*[s]は、ステートメントSを無限に繰り返すことを意味する。略記法[B]は、ブール式Bが真になるのを待つことを意味する。ローカル変数は、整数であるとみなされ、x:=y+1のような整数式に代入されえる。セミコロンは、ステートメントを厳密な順序付けで分離する。コンマは、ステートメントを順序付けなしで分離する。疑問符および感嘆符は、それぞれチャネルから受け取り、チャネルに送ることを表すのに用いられる。よって*[A?;y:=x+1;B!y]は、整数xをチャネルAから受け取り、それから整数yに式x+1を代入し、それからyをチャネルBに送り、それから永久に繰り返すことを意味する。
本発明のさまざまな具体的な実施形態によれば、データのラッチングはレジスタの代わりにチャネル内で起こる。このようなチャネルは、送信回路から受信回路へのデータのFIFO(ファーストインファーストアウト)転送を実現する。データワイヤは、センダからレシーバへ走り、イネーブル(すなわちアクノリッジの反対の意味)ワイヤは、フロー制御のために逆方向に走る。これら実施形態の具体的なものによれば、近接回路(プロセス)間の4フェーズのハンドシェークがチャネルを実現する。4フェーズは、以下の順序である。1)センダは、高イネーブルを待ち、それからデータを有効にセットする。2)レシーバは、有効なデータを待ち、それからイネーブルを低にする。3)センダは低イネーブルを待ち、それからデータをニュートラルにセットする。そして4)レシーバはニュートラルデータを待ち、それからイネーブルを高にする。このハンドシェークプロトコルの使用は例示目的であって、したがって本発明の範囲はこれに限定されるべきではないことに注意されたい。
具体的な実施形態によれば、データの遅延非敏感エンコーディング(delay-insensitive encoding)は、デュアルレール(dual rail)であり、1of2とも呼ばれる。このエンコーディングにおいて、2本のワイヤ(レール)が用いられて2つの有効な状態およびニュートラルな状態を示す。両方のワイヤがローのとき、データはニュートラルである。第1ワイヤがハイのとき、データは有効な0である。第2ワイヤがハイのとき、データは有効な1である。両方のワイヤが一度にハイになることは許されない。チャネルXに関連付けられたワイヤは、データについてはX0、 X1 と、イネーブルについてはXeと書かれる。
他の実施形態によれば、大きな整数は、1of3または1of4コードのようなより多くのワイヤによってエンコードされる。ずっと大きな数については、異なる数値的大きさの複数の1ofNが併せて用いられる。例えば32ビットは、32個の1of2コードまたは16個の1of4コードによって表現されえる。この場合、下付き添え字は、それぞれの1ofNコードの重みを示し、すなわち、Lr gはg番目のビット(またはグループ)のr番目のワイヤであり、Le gは関連付けられたイネーブルである。
さらに他の実施形態によれば、いくつかの関連するチャネルは、L[i]またはV [i, j ]のような1−Dまたは2−Dアレイにまとめられえる。このような実施形態における個々のワイヤを特定するために、記法L[i]rまたはL[i]r gが用いられる。
具体的な実施形態によれば、本発明によるクロスバーの設計は、米国特許第6,038,656号(ここで参照によって援用される)に記載された方法を利用して大きなデータパスの速度を改善する。この方法は、例えば、遅延に対する非敏感性を維持しつつ、1つの32ビットデータパスを4つの8ビットデータパスに減らすような、データパスをより小さいビットサイズ複数のデータパスに分割する方法を記載する。
この開示における図は、ボックスおよび矢印の図およびトランジスタの図を含む。ボックスの図において、ボックスは、回路またはプロセスを表現し、矢印はボックス間のFIFOチャネルを表現する。FIFOチャネルはまた、ボックス内で外に出されえる。同じ名前の任意のチャネルまたはワイヤは、接続が描かれていないときでも接続されるよう意図される。場合によっては回路の「内部」ポート名が入力チャネルまたは出力チャネルの隣にボックス内で書かれる。
トランジスタの図において、矢印(またはライン)は個々のワイヤを表現する。標準的なゲートシンボルが可能な限り用いられ、「C」がその上に書かれたNANDゲートのようにC要素も追加されている。このゲートは、標準の非同期ゲートであり、ミュラーC要素(Mueller C-element)またはコンセンサス要素(consensus element)とも呼ばれる。ゲート表現およびC要素100のトランジスタレベルの実現例が図1に示される。
簡潔さのために回路図からある種の機能は省略されていることに注意されたい。例えばいくつかの回路ノードは「動的」であり、これはそれらがいつもハイまたはローに駆動されるわけではなく、その状態を不定に保持すると期待される。これは、「スタティサイザ」、すなわちノードに接続された小さなクロス結合されたインバータのペアを必要とする。スタティサイザは省略されるが、プルアップおよびプルダウンネットワークが論理的な補足物(logical complements)(実質的に全ての非標準ゲートおよびC要素)ではない任意のノードに存在すると推定されえる。さらに、これらパイプラインされた回路は、チップがブートするときに初期状態にリセットされなければならず、このためResetおよびReset\(Resetのバー、否定)信号を用いるいくつかの追加のトランジスタが必要となる。ふつうリセット状態は、Resetがアサートされたまま左のイネーブルをローにすることによって達成される。
ここで記載されるように、スプリット(Split)は、1からQのバスで、制御チャネルSを読み、単一のLチャネルから入力データの1つのトークンを読み、それからデータをSから読まれた値によって選択されるQ個の出力チャネルのうちの1つに送る。マージ(Merge)は、Pから1のバスで、制御チャネルMを読み、それからMから読まれた値によって選択されたP入力チャネルのうちの1つからのデータのトークンを読み、それからそのデータを単一の出力チャネルRに送る。図2は、スプリット200の基本ブロック図である。図3は、マージ300の基本ブロック図を示す。上述の参照によって援用されるA.Linesによる「Pipelined Asynchronous Circuits」も参照されたい。
本発明のさまざまな実施形態によれば、PからQのクロスバー400は、図4に示されるようにP QウェイのスプリットおよびQ Pウェイのマージから構築されえる。Pスプリットバスのi番目、すなわちsplit[i]は、プログラム*[S[i]?j , L[i]?x; V [i, j]!x]を走らせる。Qマージバスのj番目、すなわちmerge[j]は、プログラム*[M[j]?i; V [i, j]?x; R[j ]!x]を走らせる。本発明のさまざまな実施形態と共に利用されえる第1非同期クロスバー設計によれば、は、スプリットデータ出力およびマージデータ入力の間の中間データチャネルを表現する。後述の本発明の具体的な実施形態によれば、これらチャネルは、除去されている。
クロスバー400は、入力および出力側の両方からS[i]およびM[j]制御チャネルを介して制御される。これら制御チャネルの情報に基づいて、それぞれのチャネルを通して送られたトークンのシーケンスは、入力および出力チャネルについて完全に決定的であるが、より大きいグループのチャネルについてはそうではない。すなわち、関係のないチャネルの通信のタイミングは制約がない。入力/出力ポートの任意の2つの無関係のペアは、競合なくパラレルに通信できる。もし2つの入力/出力転送が同じ入力または出力ポートを参照するなら、そのポートと関連付けられた制御ストリームは、曖昧さなしに順序を決定するだろう。これら制御チャネルの情報を生成するさまざまな手法が以下に記載される。
この明細書の前で述べたように、本発明によって設計された非同期クロスバーのあるタイプは、情報をスプリットバスから指定されたマージバスへ渡す実際のチャネルV [i, j]を含む。これらチャネルは、さまざまな点で有利に用いられえる。例えば、バッファリングの量を変えることが、それぞれのリンクに関連付けられた中間チャネルに付加されえ、それによってさまざまなパフォーマンスの目的を達成する。しかしこれらチャネルおよび関連付けられたハンドシェーキングオーバヘッドのために、そのように設計された非同期クロスバーのサイズおよび/または電力消費は、PまたはQのいずれかの大きさに依存して実現不可能になりえる。
よって、本発明の具体的な実施形態は、少なくともスプリットおよびマージ機能性の一部を単一のルータセル(記法router_cellもまたここでは用いられる)に結合することによって、これらチャネルのうちの少なくともいくつかをなくすクロスバー設計を提供する。この実施形態によって設計された非同期クロスバーの外部に見える振る舞いは、この改良されたクロスバー設計は1ステージの遊び(パイプライン深さ)がなくなったことを除いて、V [i, j]チャネルを含む同じサイズ(すなわちPからQ)のクロスバーのそれと事実上、同一である。
本発明によって設計されたクロスバーの具体的な実施形態が図5〜8を参照してこれから説明される。この実現例によれば、それぞれのスプリットバスは、1つのsplit_env部分およびQ split_cell部分を含み、それぞれのマージバスは、1つのmerge_env部分およびP merge_cell部分を含む。split_cellは、それぞれの出力チャネルのために反復されたスプリットバスの一部を含み、split_envは回路の残りを含む。同様に、merge_cellは、それぞれの出力チャネルのために反復されたマージバスの一部を含む。図9を参照して説明されるように、具体的な実施形態によれば、特定の入力/出力の組み合わせに対応するsplit_cellおよびmerge_cellのそれぞれのペアの機能性は、単一のrouter_cellに組み合わされ、よってスプリットおよびマージバス間の中間チャネルをなくしている。
機能的には、それぞれのsplit_cell[i, j]は、S[i]が有効になるのを待ち、S[i]の値がjに等しい(すなわちS[i]jが真である)ことをチェックする。もしそうであるなら、それは、その出力V[i, j]eからのイネーブルをチェックし、ハイであるときには、それは有効なデータをL[i]からV[i, j]へコピーする。いったんデータがV[i, j]へコピーされると、split_cell[i, j]は、そのイネーブルをsplit_env, se[i, j]へ下げる。最終的に、S[i]、L[i]、およびV [i, j ]eがニュートラルに戻り、split_cell[i, j]はデータをリセットしse[i, j]を再び上げることができる。1ビットデータおよび1ビット制御(共に1of2コードとしてエンコードされる)を持つsplit_cell500の概略図は、図5に示される。
split_env[i]は、L[i]チャネルの有効性およびニュートラル性を試験し、split_cellからのse[i, 0..Q - 1]のAND論理を計算し、S[i]およびL[i]入力チャネルについてのアクノリッジを作る。S[i]の有効性およびニュートラル性は、split_cellからのアクノリッジによって推定される。1ビットデータおよび2つのsplit_cellについてのsplit_env600の概略図は図6に示される。
それぞれのmerge_cell[i, j]は、M[j]が有効になるのを待ち、M[j]の値がiに等しい(すなわちM[j ]iが真である)ことをチェックする。もしそうであるなら、それはmerge_envからのgo[j]信号(出力イネーブルの準備ができていることを含む)を待ち、入力データV[i, j]が有効になるのを待つ。これが起こるとき、それはV [i, j]の値をR[j]にコピーする。merge_envは、R[j]の有効性をチェックし、rv[j]をハイにセットすることによってこの状態を全てのmerge_cellにブロードキャストする。次にmerge_cellは、そのイネーブルme[i, j]およびV [i, j]eを下げる。いったんM[j]およびV[i, j]データがニュートラルに戻ると、go[j]が下げられ、R[j]がニュートラルに戻され、rv[j]が下げられ、merge_cellはイネーブルme[i, j]およびV[i, j]eを上げる。1ビットデータおよび1ビット制御(1of2コードとしてエンコードされる)を持つmerge_cell700についての概略図は図7に示される。
merge_envは、R[j]アクノリッジの準備ができていることをチェックし、go[j]を上げる。M[j]は直接にmerge_cellへ行き、そのうちの1つは、R[j]を新しい有効な値にセットすることによって応答する。merge_envは、それからrv[j]を上げ、その後、merge_cellはme[i, j]で応答する。merge_env[j]はこれらアクションの完了をチェックし、それからM[j]をアクノリッジする。いったんM[j ]が再びニュートラルになり、R[j]がアクノリッジすると、merge_env[j]はgo[j]を下げ、これはmerge_cellがme[i, j]をリセットさせるようにする。merge_env[j]はまたR[j]をニュートラル値にリセットする。いったんこれらのアクションが完了すると、merge_env[j]はM[j ]のアクノリッジを下げる。1ビットデータおよび2つのマージセルについてのmerge_env800の概略図は図8に示される。
本発明の他の具体的な実施形態によれば、クロスバー内のそれぞれのグリッドにおいて(すなわちiおよびjのそれぞれの組み合わせについて)、router_cell[i, j]が存在し、これは1つのsplit_cell[i, j]および1つのmerge_cell[i, j]の機能性を上述のように組み合わせる。split_env[i]およびmerge_env[j]は、それらのrouter_cellと上述のハンドシェークプロトコルを用いて通信する。router_cellは、別々のsplit_cellおよびmerge_cellの全ての条件のスーパーセットを待ち、それらのenvについて両方のアクションを行う。
本発明の実施形態は、選択されたリンクだけが本発明のrouter_cellで実現されると想定されることに注意されたい。そのような実施形態によれば、他のリンクは、図5および7のsplit_cellおよびmerge_cellおよびそれらの関連する中間チャネルV [i, j]を用いて実現される。そのような実施形態は、例えば追加のバッファリングが1つ以上の特定のリンクに望まれるが、それぞれのリンクについて中間チャネルを持たせることに伴うエリアペナルティを払うのは望ましくない場合には有用かもしれない。
さらにより具体的な実施形態によれば、router_cellは以下を行う。それはそのS[i]入力が有効でjに等しくなるのを待ち、そのM[j]入力が有効でiに等しくなるのを待ち、L[i]が有効になるのを待ち、merge_envからのgo[j]がハイになるのを待つ。いったんこれが起これば、router_cell[i, j]は、中間V[i, j]チャネルなしでL[i]を直接にR[j]にコピーする。merge_env[j]はR[j]がセットされたことを検出し、rv[j]を上げることによってそれを信号で表す。それからrouter_cell[i, j]は、そのイネーブルをenvのse[i, j]およびme[i, j]に下げることができ、これは同じ信号でありえる。
リセットフェーズは対称的に進められる。router_cellは、S[i]およびM[j]がニュートラルになり、go[j]が下がるのを待つ。merge_env[j]はR[j]をニュートラルにリセットし、それからrv[j]を下げることによって完了を信号で表す。最後に、router_cell[i, j]はそのイネーブルを共にenvに上げる。1ビットデータおよび1ビットS[i]およびM[j]を持つrouter_cell900についての概略図は図9に示される。具体的な実施形態によれば、router_cell900と用いられるsplit_envおよびmerge_envは、別々のsplit_cellおよびmerge_cellと用いられるそれらと同じである(上の図6および8を参照)。
理解されるようにさまざまな実施形態によれば、基本クロスバー実現例のいずれも異なるデータサイズおよびPおよびQ値に拡張されえる。また後述のエリアまたは速度を改善しえるいくつかの回路変更が存在する。すなわち、後述のさまざまな異なるデータエンコーディング、ルータセル回路実現例、および他の回路実現例の変更事例は、エリアおよび速度間のさまざまなトレードオフを表す。
さまざまな実施形態によれば、S[i]は、Q個の可能なsplit_cellのうちから選択するために1ofQチャネルでエンコードされえる。これはS本のワイヤ上のファンアウトを増やし、se[i, j]をsplit_env中に組み合わせるためにより大きいANDツリーを必要とする。同様にM[j]は、P個の可能なmerge_cellのうちから選択するために1ofPチャネルでエンコードされえる。制御ワイヤの数は、PおよびQと直線的に比例し、これはより小さいクロスバー、例えば8×8以下のものについては適する。さらにより具体的な実施形態によれば、seおよびmeについてのANDツリーは、ワイヤリングを減らすためにデータパスにわたって物理的に分散される。
例えば16×16以上の、より大きいクロスバーについて、S[i]およびM[j]は、それぞれ1ofAと1ofBとの1ofNコードのペアでエンコードされえ、これはA * Bの可能性を生む。S制御の最下位および最上位の半分は、S[i]0およびS[i]1と呼ばれる。M[j]0およびM[j]1についても同様である。このエンコーディングのワイヤリングコストは、√Pまたは√Qに従って増え、64×64のクロスバーまでうまく動作する。遅延非敏感設計においては、split_envがもう一方をチェックする場合は、router_cell中のニュートラル性についてS[i]0/S[i]1のペアのうちの1つだけをチェックすることが可能である。M[j]0/M[j]1のペアについても同様である。
大きなPまたはQについては、あるrouter_cellが選択されたか(「ヒット」とも呼ばれる)を検出するのに用いられるトランジスタの個数がますます複雑化し、このコストは全てのデータワイヤについて重複する。したがって、大きなP、Q、またはデータサイズを有するクロスバーについてのある実施形態によれば、hit[i, j]信号は、SおよびMワイヤを直接用いる代わりに単一のヒット回路において計算される。対称hit回路を用いる1ビットデータおよび2個の1of4制御を持つrouter_cell1000の例が図10に示される。S[i]1またはM[j]1のニュートラル性をチェックしない非対称hit回路を用いる代替のrouter_cell1100は図11に示される。非対称hit回路は、split_envおよびmerge_envがそれぞれS[i]1およびM[j]1のニュートラル性をチェックするように変更される。
さまざまな実施形態によれば、データエンコーディングを他の1ofNコード、例えばイベントを信号で表すために1of1から1of4へと2ビットの良好な低電力エンコーディングなどのために変更するのは簡単である。より大きなデータサイズを持つ実施形態によれば、複数の1ofNコードが採用されえる。図12は、図11の非対称hit回路を用いる2つの1of4チャネルを持つ4ビットデータおよび制御を持つrouter_cell1200を示す。それぞれ1of4に対応する異なるrv[j]0/rv[j]1およびgo[j]0/go[j]1ワイヤを用いること、またはそれらをmerge_envから単一のrv[j]およびgo[j]に組み合わせることが可能である。
さまざまな実施形態によれば、マルチキャストが本発明によるクロスバーにおいてサポートされえる。あるそのような実施形態によれば、S[0..P - 1]制御は、1ofQコードから1of2コードのビットベクタS[0..P - 1, 0..Q - 1]へ変換される。それぞれのS[i, j]ビットは、直接にrouter_cell[i, j]へ行き、ここでS[i, j]1ワイヤがS[i]jの代わりにhit回路において用いられる。split_envにおいて、se[i, j]信号は、最初、S[i, j]0の逆数(inverse)とANDが取られ、それからANDツリーの代わりにC要素ツリーと組み合わせられる。本質的に、複数の同時のhitは、1つの入力について起こりえ、split_ envはそれらが全て完了したことをチェックしなければならない。マージ側は以前のように制御される。ここで後述のディスパッチおよびアービタ回路の実現例は、このようなマルチキャストクロスバーを制御するように構成されえることに注意されたい。
本発明によって設計された非対称クロスバーのさまざまな実施形態は、データパスサイズより小さいいくつかの並列のチャンクにまとめられる。データパスサイズがBビット(これはこの実施形態における遅延非敏感コードについての2*B本のワイヤを必要とする)であり、splitで用いられる追加の制御ワイヤの本数はsであり、mergeの追加の制御ワイヤの本数はm(1つのホット制御エンコーディングを用いられる実施形態について)であると仮定すると、もしデータパスがCビットのチャンクに分けられるなら、クロスバーのワイヤリング制限エリアは、(B/C)* P*Q*(2* C+s)*(2*C + m)になる。よって最適なCは、(√(s*m))/2である。
この式を用いて、スプリット制御オーバヘッドの12本のワイヤおよびマージ制御オーバヘッドの14本のワイヤを持つ32ビットデータパスは、約6から7ビットのチャンクのサイズに分けられる。実際には、回路の所望の速度(小さいチャンクが望ましい)およびさまざまなチャンクのサイズの便宜性のような他のファクタが考慮される。例えばこのような考慮に依存して、32ビットクロスバーは、4ビットの8チャンク(より速い)または8ビットの4チャンク(より小さい)として実現されえる。他のチャンクサイズは許容できないエリア、または不便なペナルティを持ちえるが、それでも本発明の範囲に入る。
非同期クロスバーのためのS[i]およびM[j]制御チャネルを生成するさまざまな手法がこれから説明される。このような手法は、例えば上述の異なるクロスバーを含むさまざまな非同期クロスバーアーキテクチャの任意のものに適用されえることが理解されよう。すなわち、ここで記載されるディスパッチおよびアービタ回路は、本発明によって設計された任意のクロスバー回路だけでなく、P入力チャネルをQ出力チャネルに相互接続する基本機能性を有する任意のタイプのクロスバー回路を制御するために採用されえる。さまざまな実施形態によれば、マルチキャストクロスバーの制御および2ウェイトランザクションはこれら回路の特定の実現例によって提供されえる。
本発明のさまざまな実施形態によれば、PからQクロスバーにおけるデータ転送の部分的(または予測された)順序、すなわち与えられたチャネル上で予測されたときの動作の順序は決定的でなければならない。すなわち、あるチャネルを伴う動作の順序は、決定的順序で起こり、しかし異なるチャネル上の動作は、互いに任意の順序関係で起こりえる。よってこのような実施形態によれば、次の問題を解決するディスパッチャが提供される。L[0..P -1]チャネル上の入力命令の順序付けられたシーケンスが与えられるとき、その命令についてそれぞれの命令をTO[0..P - 1]チャネルによって特定されたR[0..Q - 1]出力チャネルのうちの1つにルーティングする。
ディスパッチャは、それぞれの出力チャネルへの命令の順序を維持しなければならない。しかし、異なる出力チャネルへの命令が順序通りに渡されることは要求されない。これにより、インプリメントにおける内部パイプライン、全てのチャネル上での恣意的バッファリング、および複数の同時転送が可能になる。
Pが1の場合、ディスパッチャの簡単な実現例は、SとしてのLおよびTO、およびR[0..Q - 1]を用いる単にQウェイのスプリットバスである。さらにより具体的な実施形態によれば、異なるRへの遅れた命令にもかかわらず、後で命令が発行されることを可能にするために、追加のバッファリングが出力チャネル上に提供されえる。
他の実施形態によれば、複数の命令がクロスバーを用いて適切な順序でパラレルに発行される。ディスパッチャのL[i]およびR[j]データチャネルは、直接にそのクロスバーに接続する。ディスパッチャのTO[i]は、クロスバーのS[i]にコピーされる。M[j]クロスバー制御チャネルは、TO[i] から導かれ、それによりそれらがそれぞれの出力チャネル上で予測されたプログラム順序を維持できる。ある実施形態によれば、これは次のようにして達成される。
図13のディスパッチャ1300を参照し、それぞれのinput_ctrl[i]は、この入力がその出力に行きたいかどうかをTO[i]に基づいて示すリクエストビットreq[i, j](例えば1of2コード)をそれぞれのoutput_ctrl[j]に送る。それからそれぞれのは、これらのビットを全てのから集め、巡回順序でそれぞれの1のインデックス(indices)を決定する。これらインデックスは、クロスバーのM[j]チャネルを制御する。クロスバーはそれからペイロードを転送する。
入力コントローラ、例えばinput_ctrl[i]回路は、req[i, j]ビットを作り、TO[i]をS[i]にコピーするために、上に参照によって援用されたA. Linesによる「Pipelined Asynchronous Circuits」において記載されるアプローチを用いて導き出せる。
それぞれの出力コントローラ(combineともここでは呼ばれる)は、ビットベクタを受け入れ、入力0からP−1への巡回順序で全ての1の位置を読み出す。ある実施形態によれば、これはバイナリツリー構造を用いて達成される。ツリーのそれぞれのステージは、その下位L入力上の1の数を受け取り、それからその上位H入力から受け取り、ツリーの次のステージへ和を出力する。これらの数は、状態付きで1of3コードによってシリアルにエンコーディングされる。すなわち、ゼロ、ラスト、および非ラストである。例えば3は、シーケンスによって表現され、すなわち非ラスト、非ラスト、ラストである。
それぞれのツリーステージはまた、1of2チャネルを出力し、1がロー(0)またはハイ(1)側から来たかを示す。これの追加チャネルは、それまでのインデックス(index)のMSBビットになる。それまでのLSBビットは、現在のMSBビットによって制御され、ローまたはハイの前のステージのいずれかからのインデックスの2ウェイmergeによって得られる。ツリーの最終の1of3のビット和は廃棄され、累積されたインデックスビットはクロスバーについてのM制御になる。
本発明のさまざまな具体的な実施形態によれば、コンバインは、上に参照によって援用されたA. Linesによる「Pipelined Asynchronous Circuits」において記載されるアプローチを用いて実現されえる。このような実施形態において、1つの内部状態ビットは、左または右の側から来るシーケンスを区別するために提供される。図14は、4ウェイツリーコンバイン1400を示す。このようなコンバイン回路の具体的な実施形態についてのCSPは以下の通りである。
Figure 2005516508
LおよびHは、1of3コードでシリアルにエンコーディングされた入力リクエストカウントである。Rはシリアルにエンコーディングされた出力リクエストカウントである。Mは、それまでの次のインデックスの最上位ビットであり、前のステージからの累積した最下位ビットのマージを制御する。
コンバインは、既存の手法を用いたツリーとして実現されえるが、大きなファンインのために有利でありえるより小さい実現例も、それぞれの入力リクエストを巡回順序で検査し、もし入力が1なら対応する1ofNデータレールを駆動し、もし入力が0なら先に飛ばすリップリングリング回路を用いて提供される。この1ofNコードは排他的に保たれなければならない。コンバインのこのバージョンは、不規則なスループットおよびレイテンシ特性を有し、大きなファンインについてそのエリア節約のためだけに価値があるかもしれない。
さまざまな実施形態によれば、クロスバーは、一連の「move」命令を実行するために用いられ、これらのそれぞれはクロスバーの入力ポートおよび出力ポートを特定し、いくつかのトークンをそのリンクにわたって転送する。一つのそのような実施形態において、move命令は、入力ポート、出力ポート、およびリピートカウントを特定する。より具体的な実施形態によれば、これらmove命令の順序付けられたシーケンスは、2つのディスパッチ回路を介してパラレルに発行される。リピートカウントは、この実施形態が使用しえる単に一つのメカニズムである。
この実施形態によれば、第1ディスパッチ回路は、出力ポートおよびリピートカウントを特定された入力ポートに発信する。第2のものは、入力ポートおよびリピートカウントを出力ポートに発信する。すなわちmove命令は、対応するディスパッチについてのS制御として働く入力または出力ポートのいずれかで2つの方法でコピーされる。リピートカウントは、入力および出力ポートにローカルにアンロールされる(unrolled)。すなわち同じクロスバー制御は、カウントが使い尽くされるまで再発行される。2つのそのようなディスパッチ回路を有するディスパッチャ1500の具体的な実施形態は、図15に示される。
ディスパッチャの使用は、もしそれらがいずれかのポートを共通に持つならmoveがオリジナルのプログラムの順序で実行されることを確実にするが、もしそれらが異なるポートを参照するならそれらを順序からはずれて、またはパラレルに実行しえる。ディスパッチャはまた、一度に非常に大きな数のmove命令までスケールアップすることができる。これは、ディスパッチャにおける電力または帯域幅の浪費を防ぐための最適化として用いられえ、またオリジナルの命令ストリームを大きく圧縮できる。
本発明の他の実施形態は、メッセージを渡す通信相互接続としてのクロスバーの使用を促進する。この実施形態によれば、それぞれの入力ポートは、所望の宛先ポートナンバをTOチャネル上で提供し、これはクロスバーのS制御になる。それぞれの入力ポートは、所望の出力ポートを用いる許可をリクエストする。それぞれの出力ポートは、同じ出力へのアクセスについて競合する全ての入力からのリクエストの間で調停することによってM制御を生成する。オプションのFROMチャネルは、例えばクロスバーのM制御のコピーを含みえる出力と共に送られえる。このようなオプションは、例えば、センダーのアイデンティティを知ることが望ましいある種の通信プロトコルでは便利である。
入力毎の制御は、TOをSにコピーし、それを1of1のリクエストチャネルreq[i, j]を意図された出力制御に送るスプリットバスのための制御として用いる。出力毎の制御は、リクエストを入力制御から集め、それらの間で調停する。調停の結果は、クロスバーのMとして用いられ、またもし所望であるならFROMチャネルへコピーされえる。
ある実施形態によれば、リクエスト間で調停するPウェイアービタは、先のセクションのcombineのようにバイナリツリーとして構築される。バイナリツリーのそれぞれのステージは、前のステージの左(例えば低いインデックス(lower indices))または右(例えば高いインデックス(higher indices))のいずれかの側からリクエストを受け取る。それは、勝者のMSBについてチャネルをmergeのサイドツリーへ出力し、これはcombineのように勝者のインデックスを累積する。それはツリーの次のステージをリクエストするために1of1を送る。図16は8ウェイアービタのためのツリー構造1600を示す。
アービタの具体的な実施形態によれば、アービタのそれぞれのステージについての回路は、準安定性を含む。CSPは以下の通りである。
Figure 2005516508
ここでL[0..1]はトリガ入力、Tはトリガ出力、Aは調停結果である。図17は、この振る舞いをする回路1700のある実現例を示す。この実施形態によれば、出力リクエストは、入力リクエストのORを取ることによってなされ、準安定ではない。1of2 の側のA出力だけが、実際の調停および準安定フィルタを用いる。このアービタツリーは、わずかに公平であり、もし競合するリクエストが時間的に充分間隔が空くならファーストカムファーストサーブとして働く。もし競合するリクエストがもっと速く来るなら、全てのリクエストがサービスされるが、必ずしも厳密に公平なレートではない。
さらなる実施形態によれば、クロスバーの調停された制御は、デッドロック状態を避けるアービタによって促進される。上述のようにそのようなアービタによって制御されるクロスバーは、これに限定されないがここで説明されたようなものを含む任意のタイプのクロスバーでありえる。
入力ポートAが出力CそれからDに行こうとし、他の入力ポートBが出力DそれからCに行こうとしていると仮定する。リクエストおよび調停チャネルのスラック(slack)のために、遅延非敏感タイミングモデルにおいてはAがDを獲得し、BがCを獲得する。しかしAがCに先に送ろうとし、BはDに先に送ろうとする。よってシステムはデッドロックに陥る。
よって具体的な実施形態によれば、「スラック」が取り除かれることによって、入力は、以前の者がその調停を獲得するまで、他のリクエストを作らない。これは、入力が調停に勝つとき、出力ポートによって入力ポートに返される「グラント」トークン(例えば1of1チャネル)を導入することによってなされる。このメカニズムは、入力が1つ以上の未決定のリクエストを作ることを防ぐ。
ある実現例によれば、グラントは、出力のMからコピーされたそのS制御および入力のSからコピーされたそのM制御を持つ小さいクロスバーを介して返される。出力Rの1of1データチャネルは、入力のスプリットバスに与えられる。入力側は、単一のグラントトークンで始まる。図18は、このグラントスキームを用いるクロスバーのための調停された制御を実現するアービタ1800を示す。
本発明のグラントクロスバーはまた、有用な順序付け関係を確立するように動作可能である。入力があるデータを出力Bに送り、それからデータが準備できているという通知を出力Cに送ると仮定する。もしCがそれからそれをBから読むなら、それはAが書いた値を得るだろうが、それはAのBへの通信が調停に最初に勝ったからである。これは多くのバスプロトコルによって要求される生産者−消費者順序付けモデルを満足する。
本発明の他の実施形態によれば、このようなグラントクロスバーを用いることの代替物が提供される。一般に、デッドロックを避けるためには、リクエストされたのと異なる順序で調停が獲得されることを避ける必要がある。これを行う一つの方法は、1またはそれより少ない合計スラックを持つリクエスト/アービタ回路を実現することによって、第1のものがグラントされるまで第2のリクエストがいつもブロックされるようにすることである。これはグラントクロスバーの必要をなくし、より小さくなりえる。しかしこのゼロスラック設計は、スループットを減らし(なぜなら回路は、他の始まっているリクエストとパラレルにプリチャージできないからである)、ふつうのパイプライン化された構成単位の代わりに、要素の異なるゼロスラック実現例を要求する。グラントクロスバーは、より多くのパイプライン要素で構築されていても、実効的にはパイプラインが1スラックを持つようにする一つの方法である。
典型的なシステムにおけるトランザクションは、しばしば1語より大きい原子サイズ(atomic sizes)を有する。すなわちあるリクエストおよび調停について、多くのサイクルのデータが転送される必要がありえる。これは、本発明のある実施形態によって、「テール」ビットをメインクロスバーを通してデータと関連付けることによって達成されえる。この実施形態によれば、テールビットは、入力および出力ポートの両方によってサンプリングされ、単純な制御ユニットに与えられ、これは同じ制御値をテールビットが1になるまで繰り返す。他の実施形態によれば、データそのもの(例えばパケットにおいて)と関連付けられた、またはクロスバーを制御する制御データと共に来る情報を用いて単純なカウンタが採用されえる。理解されるように、これらは、恣意的なサイズのデータの転送を実現するために本発明の実施形態が利用しえるメカニズムの例に過ぎない。本発明の範囲はそのようには限定されるべきではない。
本発明の具体的な実施形態によって設計されたリクエスト/調停回路は、「パケット」だけに関心があり、受け取られた制御値にしたがってデータパスリンクをセットアップする。データパスクロスバーは、データの大きなブロックを転送し、それからテールビットを1にセットすることによって最後のサイクルの後にリンクを解放できる。図19は、追加のリピータを制御入力上に持つデータパスクロスバー1900を示す。代替の実施形態によれば、リピートカウントは、テールビットの代わりに用いられえる。しかしテールビットは、ハードウェアで実現するのがより簡単で、データパケット中で長さを特定することを禁止しない。
本発明のさらなる実施形態によれば、2ウェイトランザクションを実現するために2つの異なるクロスバーデータパスが、単一の調停制御回路を用いて制御される。そのような実施形態によれば、入力および出力の1of2チャネルLTYPEおよびRTYPEがそれぞれのポートについて本発明によって設計されたアービタ回路に追加される。もしLTYPEチャネルが1であるなら、通常のS/M制御がコピーされ、戻るトランザクションについての第2クロスバーのM/S制御になる。もしLTYPEチャネル0であるなら、第2クロスバーは用いられない。LTYPEチャネルの情報は、出力のRTYPEチャネルにコピーされ、それによりターゲットユニットは応答すべきかどうかを知る。この実現例は、1ウェイトランザクション(例えばストア)および2ウェイトランザクション(例えばロード、スワップ、リード−モディファイ−ライト)の混合をサポートする。より具体的な実施形態によれば、もし2つのクロスバーによって接続されるモジュールが排他的にマスタ(イニシエータ)またはターゲット(レスポンダ)であるなら、2つのクロスバーは非対称にサイズが決められ(例えば8×4リクエストクロスバーおよび4×8レスポンスクロスバー)える。そのような実施形態によれば、このスキームは、シェアドメモリブリッジを効率的に実現するのに用いられる。
上述の非対称回路の3つのタイプのいくつかの追加の例示的応用例がここで説明される。しかし本発明のクロスバー、ディスパッチャ、およびアービタは、さまざまな種類の応用例で用いられえ、したがって本発明の範囲は記載された応用例に限定されない。
このような例示的応用例において、Pウェイ命令発行およびQパイプラインを持つスーパースカラCPUは、PxQディスパッチャを用いて命令を正しいパイプラインに送り、一方でそれぞれのパイプラインへの順序付けを保持する。TO制御は命令からデコードされえる。
RISCスタイルのスーパースカラ非同期CPUに関する他の例示的実施形態において、クロスバーは、任意の実行パイプラインのZリザルトを任意のレジスタにルーティングするために、または任意のレジスタからの読み出しを任意のパイプラインのXおよびYオペランドにルーティングするために用いられえる。それぞれのレジスタは、そのレジスタへの次のアクセスまでライトを遅延させることによって、任意のデータ依存リードが素速くバイパスされえるようにする。Zリザルトから従属XまたはYオペランドへのレイテンシは、6トランジションまで小さくなりえ、リザルトクロスバー、レジスタそのもの、およびオペランドクロスバーについてそれぞれ2である。この低レイテンシバイパスの特徴は、追加のバイパス回路の必要をなくす。これらクロスバーの制御は、「move」制御スキーム上の変形を用いてパラレルRISC命令から生成されえる。この実現例は大きいが、大きな再順序付けを可能にし(すなわちそれはリザルト、オペランド、およびレジスタ上で予測された部分的順序付けを保持するだけである)、非常に広い発行設計(issue designs)に応じて拡張しえる。デュアルイシューCPUでも、このレジスタファイルは、一度に短いバーストでしばしば2命令より多いものを行いえ、これはストールの後に追いつく助けになる。
それぞれの実施形態によれば、本発明によって設計された調停されたクロスバーは、チップ上でいくつかのモジュールを接続するのに用いられえる。いくつかの実施形態において、それぞれのモジュールは、1ウェイテール終端パケットを他のモジュールのそれぞれへ送りえる。いくつかのモジュールは、ストアを受け取り、ロード完了パケットを持つロードリクエストに応答しえるメモリでありえる。他のものは、I/Oインタフェースでありえ、特にフロー制御された双方向FIFOでありえる。他のものは、I/O、メモリにアクセスし、または互いにパケットを送りえるCPUまたはDSPまたはASICでありえる。これらパケットは、キャッシュコヒーレンスプロトコルまたはハードウェアにサポートされたメッセージ転送を実現するために用いられえる。さらにPCIのようなレガシーバスプロトコルもこのようなクロスバーを跨ぐことができ、これはそれが必要とされた順序付けの関係をサポートするからである。
さらなる実施形態によれば、本発明によって設計された調停されたクロスバーは、パケットスイッチングのためのスイッチファブリックとして働きえる。それぞれの入力パケットは、TO制御として用いるために抽出されえるインバンド宛フィールドを有する。パケットの長さは、テールビットシーケンスに変換されえる。FROM出力は、もし所望であるならパケット内に挿入し直しえる。さらに具体的な実施形態によれば、競合が存在するなら、FIFOを全ての入力および出力に追加し、全てのシステムが過渡輻輳から回復するための大きなオーバースピードを有することが望ましい。
本発明は、その具体的な実施形態を参照して、特に示され記載されてきたが、開示された実施形態の形態および詳細の変更は、本発明の精神または範囲から逸脱することなくなされえることが当業者には理解されよう。例えば、上述のように、具体的な実施形態はここでは遅延非敏感ハンドシェークプロトコルを参照して記載されてきたが、本発明のさまざまな実施形態は、異なるタイプのタイミングが推定とされる遅延非敏感回路で提供される。
例えば、タイミング推定(timing-assumptions)は、追加の回路検証エンジニアリングの代償を払って、そうでなければ遅延非敏感回路をより速くかつ低電力にするために用いられえる。特定の回路のための最も良いタイミング推定は、回路のクリチカルパスおよび設計者が引き受けようとする追加の検証作業の量に依存する。特に興味があるのは、1つの4フェーズハンドシェーク(後述)、または外部ハンドシェーク間の1つのセル内の1つの内部パスに対してローカルなタイミング推定である。このクラスのタイミング推定が残りの遅延非敏感回路より長いクリチカルパスを持つ複雑なセルに適用されるとき、特に望ましい。これらタイミング推定は、4フェーズリターンをニュートラルハンドシェークに用い、一般に1ホットデータエンコーディングを用いる非同期回路に当てはまる。
一般に、本発明のさまざまな実施形態に適用される3つのタイプのタイミング推定が存在する。パルスタイミング推定がそうでなければ遅延非敏感な4フェーズハンドシェークに適用されるとき、データ有効性、制御有効性、アクノリッジ有効性のようなセットされた条件の全てが完了する。しかしハンドシェークのリセットフェーズは、完了されず、適切なタイミングマージンで起こると推定される。このスキームでは全ての信号、データ、制御、および出力チャネルからの全てのアクノリッジ信号は、ハンドシェークのリセットフェーズではチェックされず、例外的にたまにアクノリッジ信号が日和見主義的にデータのための良いプリチャージ信号として用いられる。場合によっては、出力データの完了のチェックを行ってもよい。このスキームは、いったんリンクがセットアップされると、データが計算されることから防ぐものは何もなく、チャネルがリセットフェーズを経ることから防ぐものは何もない。
黙示のデータニュートラル性タイミング推定が、そうでなければ遅延非敏感4フェーズハンドシェークに適用されるとき、出力チャネル上の計算されたデータは、セットされた指示で完了されるがリセットフェーズではない。全てのアクノリッジは全ての指示においてやはりチェックされる。このスキームは、いったん出力チャネルのアクノリッジがセットされると、いかなるイベントもデータチャネルのリセットフェーズを阻止しない。
一般に回路設計において干渉するオペレータはふつうであるが、遅延非敏感タイミングモデルによって禁止されている。干渉はグリッチを起こす。遅延非敏感回路設計においては、カットオフトランジスタが干渉を防ぐ。しかし適切なタイミングマージンで、回路設計者は、そうでなければ遅延非敏感回路においてグリッチのない動作を保証できる。
本発明によって設計された回路におけるこのようなタイミング推定の使用の具体的な例は、例示的である。本発明の具体的な遅延非敏感アプローチによって効率的に実現された16から16のポートの4ビットクロスバーは、サイクル当たり20遷移を必要とする。しかし同様の機能性を持つクロスバー設計は、サイクル当たり12遷移しか必要としない上述のタイミング推定で実現されえる。これは理論的には回路を67%速くする。
図20a〜20cは、このようなサイクル当たり12遷移のクロスバーを作るために、どのようにrouter_cell2000、split_env2020、およびmerge_env2040の回路図がこれらタイミング推定で(上述の対応するものに比較して)変更されえるかを示す。svおよびlv信号は、lおよびsチャネルの入力完了を表現する。rvおよびmv信号は、チャネルr上の出力データおよびチャネルm上の入力制御データの完了を示す。
パルスタイミング推定は、split_env ≡> router cell ≡> merge_envを通してのメインデータ転送において用いられる。これは、2つのNANDゲート完了、およびrvバス信号の除去を可能にする。それはまた、LおよびSの到着からSE(LおよびSのアクノリッジ)への応答時間を9遷移から5に短縮する。干渉タイミング推定は、図中、veバス上で使用されるが、少し追加のコストを費やせば、split_envから制御を作ることもでき、これをveバスに渡し、干渉タイミング推定を除去できる。split_envおよびmerge_envを巡るバッファにおいては、黙示のデータニュートラル性タイミング推定(implied-data-neutrality timing assumption)は、パルスタイミング推定のブロックしないニュートラルに戻るという要求(non-blocking return-to-neutral requirement)を満足するために、かつ2つの1of4コードをサイクル当たり12遷移にデータ完了するクリチカルパスを維持するために用いられる。このような回路になされえるタイミング推定の多くの小さいトレードオフが存在することが理解されよう。またこれら全ては本発明の範囲内である。
さらに、本発明のいくつかの具体的な実施形態が非同期回路設計のコンテキストで記載されてきたが、ここで記載されたクロスバーのイベントドリブンのアーキテクチャを、クロック信号の導入で同期環境に応用することも可能であり、本発明の範囲内である。そのような実施形態によれば、上述のものと同様のクロスバー回路アーキテクチャは、非同期4フェーズチャネルではなく、同期リクエストグラントFIFOの基本となるチャネルモデルと共に実現される。クロスバーは、やはり4つの独立したFIFOであるL、S、M、およびRに基づくので、独立したフロー制御されたFIFOチャネルを持つクロスバーを実現することから来る全ての特性は、やはり当てはまる。差異は、データトランザクションがクロックエッジ境界にアラインされて始まることである。例えばこのようなアプローチは、単一のクロックドメイン同期システムにおいて望ましいが、これは同期から非同期へ、また逆に戻すことの要求から解かれるからである。
最後に、本発明のさまざまな利点、局面、および目的がさまざまな実施形態を参照して説明されてきたが、本発明の範囲はこのような効果、局面、および目的を参照して限定されるべきではないことが理解されよう。むしろ、本発明の範囲は、添付の特許請求の範囲を参酌して決定されるべきである。
ミューラーコンセンサス要素を示す図である。 Qウェイスプリットの図である。 Pウェイスマージの図である。 非同期クロスバーの簡略図である。 スプリットバスの第1部分の簡略図である。 スプリットバスの第2部分の簡略図である。 マージバスの第1部分の簡略図である。 マージバスの第2部分の簡略図である。 ルータセルの第1実現例の簡略図である。 ルータセルの第2実現例の簡略図である。 ルータセルの第3実現例の簡略図である。 ルータセルの第4実現例の簡略図である。 さまざまなクロスバー回路の任意のものと共に使用するためのディスパッチャの図である。 ディスパッチャの出力コントローラ部分の図である。 さまざまなクロスバー回路の任意のものと共に使用するためのディスパッチャの他の例の図である。 さまざまなクロスバー回路の任意のものと共に使用するためのアービタの図である。 アービタの出力コントローラ部分の概略図である。 さまざまなクロスバー回路の任意のものと共に使用するためのアービタの他の例の図である。 データパスクロスバーの図である。 本発明の具体的な実施形態によるさまざまなタイミング推定を用いたクロスバーを実現するのに用いられるクロスバー回路の図である。 本発明の具体的な実施形態によるさまざまなタイミング推定を用いたクロスバーを実現するのに用いられるクロスバー回路の図である。 本発明の具体的な実施形態によるさまざまなタイミング推定を用いたクロスバーを実現するのに用いられるクロスバー回路の図である。

Claims (135)

  1. ルーティング制御情報に基づいて第1数の入力チャネルのうちの任意のものから、第2数の出力チャネルのうちの任意のものへデータをルーティングするよう動作可能なクロスバーであって、入力チャネルおよび出力チャネルのそれぞれの組み合わせは、複数のリンクのうちの1つを含み、前記クロスバーは、前記リンクのうちのそれぞれ上で前記データを決定的にルーティングし、それにより前記ルーティング制御情報によって表現された部分的順序付けを維持するよう動作可能なクロスバー回路を含み、異なるリンク上のイベントは非相関であるクロスバー。
  2. 請求項1に記載のクロスバーであって、前記ルーティング制御情報は、独立したスプリット制御およびマージ制御チャネル上で前記クロスバーに送られるスプリット制御情報およびマージ制御情報を含み、前記クロスバー回路は、前記出力アドレスを前記入力アドレスに対応する前記スプリット制御チャネル上で、前記入力アドレスを前記出力アドレスに対応する前記マージ制御チャネル上で送ることによって前記部分的順序付けを維持するよう動作可能であるクロスバー。
  3. 請求項1に記載のクロスバーであって、前記クロスバー回路は、
    それぞれ前記入力チャネルのうちの1つに対応する前記第1数のスプリットバス、
    それぞれ前記出力チャネルのうちの1つに対応する前記第2数のマージバス、および
    前記スプリットバスのそれぞれを前記マージバスのそれぞれに接続する複数の中間チャネル
    を含むクロスバー。
  4. 請求項3に記載のクロスバーであって、それぞれのスプリットバスは、前記データを前記対応する入力チャネルから受け取る第1スプリット回路、およびそれぞれのスプリットセルが前記マージバスのうちの1つに対応する複数のスプリットセルを含むクロスバー。
  5. 請求項3に記載のクロスバーであって、それぞれのマージバスは、前記データを前記対応する出力チャネルに送る第1マージ回路、およびそれぞれのマージセルが前記スプリットバスのうちの1つに対応する複数のマージセルを含むクロスバー。
  6. 請求項3に記載のクロスバーであって、前記クロスバー回路は、前記データについてM個の1ofNエンコーディングを用い、ここでMは1以上の整数であり、Nは2以上の整数であるクロスバー。
  7. 請求項3に記載のクロスバーであって、前記クロスバー回路は、前記ルーティング制御情報について1ofNエンコーディングを用い、ここでNは2以上の整数であるクロスバー。
  8. 請求項3に記載のクロスバーであって、前記ルーティング制御情報は、スプリット制御情報およびマージ制御情報を含み、前記スプリット制御情報は、1ofAおよび1ofBエンコーディングを用いてエンコーディングされ、ここでA*Bは前記第2数であり、前記マージ制御情報は、1ofCおよび1ofDエンコーディングを用いてエンコーディングされ、ここでC*Dは前記第1数であるクロスバー。
  9. 請求項3に記載のクロスバーであって、前記クロスバー回路は、前記データを少なくとも1つの前記リンク上で非同期で転送するよう動作可能であるクロスバー。
  10. 請求項9に記載のクロスバーであって、前記クロスバー回路は、前記データを少なくとも1つの前記リンク上でハンドシェークプロトコルを用いて転送するよう動作可能であるクロスバー。
  11. 請求項10に記載のクロスバーであって、前記リンクのうちの前記少なくとも1つの上での第1センダーおよび第1レシーバ間の前記ハンドシェークプロトコルは、
    前記第1レシーバからのイネーブル信号がハイになるとき、前記第1センダーがデータ信号を有効にセットし、
    前記第1レシーバは、前記有効なデータ信号を受け取ると前記イネーブル信号を下げ、
    前記第1センダーは、前記低イネーブル信号を受け取ると前記データ信号をニュートラルにセットし、
    前記第1レシーバは、前記ニュートラルデータ信号を受け取ると前記イネーブル信号を上げる
    クロスバー。
  12. 請求項10に記載のクロスバーであって、前記ハンドシェークプロトコルは、遅延非敏感であるクロスバー。
  13. 請求項3に記載のクロスバーであって、前記クロスバー回路は、少なくとも1つのタイミング推定に基づいて、前記リンクのうちの少なくとも1つの上で前記データを転送するよう動作可能であるクロスバー。
  14. 請求項13に記載のクロスバーであって、前記少なくとも1つのタイミング推定は、パルスタイミング推定、干渉タイミング推定、および黙示のデータニュートラル性タイミング推定のうちの任意のものを含むクロスバー。
  15. 請求項14に記載のクロスバーであって、前記パルスタイミング推定は、そうでなければ遅延非敏感な4フェーズハンドシェークに適用されるクロスバー。
  16. 請求項14に記載のクロスバーであって、前記黙示のデータニュートラル性タイミング推定は、そうでなければ遅延非敏感な4フェーズハンドシェークに適用されるクロスバー。
  17. 請求項14に記載のクロスバーであって、前記干渉タイミング推定は、干渉するオペレータ間の適切なタイミングマージンを推定するクロスバー。
  18. 請求項3に記載のクロスバーであって、前記クロスバー回路は、クロック信号の遷移を参照して前記リンクのうちの少なくとも1つの上で前記データを転送するよう動作可能なクロスバー。
  19. 請求項18に記載のクロスバーであって、そうでなければ非同期ハンドシェークプロトコルに関連付けられたイベントは、前記クロック信号の前記遷移にアラインされるクロスバー。
  20. 請求項3に記載のクロスバーであって、前記ルーティング制御情報が前記リンクのうちの特定のものに対応するときを示すよう動作可能なヒット回路をさらに備えるクロスバー。
  21. 請求項20に記載のクロスバーであって、前記ヒット回路は、前記特定のリンクに対応する前記ルーティング制御情報の前記ニュートラル性をチェックするよう動作可能な対称ヒット回路を備えるクロスバー。
  22. 請求項21に記載のクロスバーであって、前記対称ヒット回路は、4入力コンセンサス要素を含むクロスバー。
  23. 請求項20に記載のクロスバーであって、前記ヒット回路は、前記特定のリンクに対応する前記ルーティング制御情報の前記ニュートラル性をチェックするよう動作可能ではない対称ヒット回路を備えるクロスバー。
  24. 請求項3に記載のクロスバーであって、前記クロスバー回路は、前記複数のリンクのうちの第1リンクの上で前記データの複数のユニットを連続的にルーティングするよう動作可能であるクロスバー。
  25. 請求項24に記載のクロスバーであって、前記データの前記複数のユニットは、最終的なデータユニットを含み、前記クロスバー回路は、前記最終データユニットが特定されるまで前記複数のデータユニットをルーティングするよう動作可能であるクロスバー。
  26. 請求項25に記載のクロスバーであって、前記最終データユニットは、前記複数のデータユニットに関連付けられたカウントを参照して特定されるクロスバー。
  27. 請求項26に記載のクロスバーであって、前記カウントは、全てのデータ転送について固定されるクロスバー。
  28. 請求項26に記載のクロスバーであって、前記カウントは、前記複数のデータユニットを参照して可変であるクロスバー。
  29. 請求項25に記載のクロスバーであって、前記最終データユニットは、前記複数のデータユニットに関連付けられたデータフィールドを用いて特定されるクロスバー。
  30. 請求項29に記載のクロスバーであって、前記データフィールドは、テールビットおよび終端キャラクタのうちの1つを備えるクロスバー。
  31. 請求項25に記載のクロスバーであって、前記最終データユニットは、前記ルーティング制御情報に関連付けられたデータフィールドを用いて特定されるクロスバー。
  32. 請求項3に記載のクロスバーであって、前記クロスバー回路は、前記データを前記入力チャネルから前記出力チャネルへ前記決定的な方法で転送するよう全体として動作可能な複数の個別クロスバー回路を備えるクロスバー。
  33. 請求項1に記載のクロスバーであって、前記クロスバー回路は、前記データを対応する入力チャネルから受け取るようそれぞれ動作可能な前記第1数のスプリット回路、前記データを対応する出力チャネルへ送るようそれぞれ動作可能な前記第2数のマージ回路、および前記データを前記スプリット回路のうちの対応する1つから前記マージ回路のうちの対応する1つへ中間チャネルなしで直接に転送するようそれぞれ動作可能な複数のルータセルを備えるクロスバー。
  34. 請求項33に記載のクロスバーであって、スプリットおよびマージ回路の少なくとも1つのペアは、それらの間に中間チャネルを有するクロスバー。
  35. 請求項34に記載のクロスバーであって、前記中間チャネルは、バッファリングを含むクロスバー。
  36. 請求項33に記載のクロスバーであって、前記クロスバー回路は、前記データについてM個の1ofNエンコーディングを用い、ここでMは1以上の整数であり、Nは2以上の整数であるクロスバー。
  37. 請求項33に記載のクロスバーであって、前記クロスバー回路は、前記ルーティング制御情報について1ofNエンコーディングを用い、ここでNは2以上の整数であるクロスバー。
  38. 請求項33に記載のクロスバーであって、前記ルーティング制御情報は、スプリット制御情報およびマージ制御情報を含み、前記スプリット制御情報は、1ofAおよび1ofBエンコーディングを用いてエンコーディングされ、ここでA*Bは前記第2数であり、前記マージ制御情報は、1ofCおよび1ofDエンコーディングを用いてエンコーディングされ、ここでC*Dは前記第1数であるクロスバー。
  39. 請求項33に記載のクロスバーであって、前記クロスバー回路は、前記データを少なくとも1つの前記リンク上で非同期で転送するよう動作可能であるクロスバー。
  40. 請求項39に記載のクロスバーであって、前記クロスバー回路は、前記データを少なくとも1つの前記リンク上でハンドシェークプロトコルを用いて転送するよう動作可能であるクロスバー。
  41. 請求項40に記載のクロスバーであって、前記リンクのうちの前記少なくとも1つの上での第1センダーおよび第1レシーバ間の前記ハンドシェークプロトコルは、
    前記第1レシーバからのイネーブル信号がハイになるとき、前記第1センダーがデータ信号を有効にセットし、
    前記第1レシーバは、前記有効なデータ信号を受け取ると前記イネーブル信号を下げ、
    前記第1センダーは、前記低イネーブル信号を受け取ると前記データ信号をニュートラルにセットし、
    前記第1レシーバは、前記ニュートラルデータ信号を受け取ると前記イネーブル信号を上げる
    クロスバー。
  42. 請求項40に記載のクロスバーであって、前記ハンドシェークプロトコルは、遅延非敏感であるクロスバー。
  43. 請求項33に記載のクロスバーであって、前記クロスバー回路は、少なくとも1つのタイミング推定に基づいて、前記リンクのうちの少なくとも1つの上で前記データを転送するよう動作可能であるクロスバー。
  44. 請求項43に記載のクロスバーであって、前記少なくとも1つのタイミング推定は、パルスタイミング推定、干渉タイミング推定、および黙示のデータニュートラル性タイミング推定のうちの任意のものを含むクロスバー。
  45. 請求項44に記載のクロスバーであって、前記パルスタイミング推定は、そうでなければ遅延非敏感な4フェーズハンドシェークに適用されるクロスバー。
  46. 請求項44に記載のクロスバーであって、前記黙示のデータニュートラル性タイミング推定は、そうでなければ遅延非敏感な4フェーズハンドシェークに適用されるクロスバー。
  47. 請求項44に記載のクロスバーであって、前記干渉タイミング推定は、干渉するオペレータ間の適切なタイミングマージンを推定するクロスバー。
  48. 請求項33に記載のクロスバーであって、前記クロスバー回路は、クロック信号の遷移を参照して前記リンクのうちの少なくとも1つの上で前記データを転送するよう動作可能なクロスバー。
  49. 請求項48に記載のクロスバーであって、そうでなければ非同期ハンドシェークプロトコルに関連付けられたイベントは、前記クロック信号の前記遷移にアラインされるクロスバー。
  50. 請求項33に記載のクロスバーであって、前記ルーティング制御情報が前記リンクのうちの特定のものに対応するときを示すよう動作可能なヒット回路をさらに備えるクロスバー。
  51. 請求項50に記載のクロスバーであって、前記ヒット回路は、前記特定のリンクに対応する前記ルーティング制御情報の前記ニュートラル性をチェックするよう動作可能な対称ヒット回路を備えるクロスバー。
  52. 請求項51に記載のクロスバーであって、前記対称ヒット回路は、4入力コンセンサス要素を含むクロスバー。
  53. 請求項50に記載のクロスバーであって、前記ヒット回路は、前記特定のリンクに対応する前記ルーティング制御情報の前記ニュートラル性をチェックするよう動作可能ではない対称ヒット回路を備えるクロスバー。
  54. 請求項33に記載のクロスバーであって、前記クロスバー回路は、前記複数のリンクのうちの第1リンクの上で前記データの複数のユニットを連続的にルーティングするよう動作可能であるクロスバー。
  55. 請求項54に記載のクロスバーであって、前記データの前記複数のユニットは、最終的なデータユニットを含み、前記クロスバー回路は、前記最終データユニットが特定されるまで前記複数のデータユニットをルーティングするよう動作可能であるクロスバー。
  56. 請求項55に記載のクロスバーであって、前記最終データユニットは、前記複数のデータユニットに関連付けられたカウントを参照して特定されるクロスバー。
  57. 請求項56に記載のクロスバーであって、前記カウントは、全てのデータ転送について固定されるクロスバー。
  58. 請求項56に記載のクロスバーであって、前記カウントは、前記複数のデータユニットを参照して可変であるクロスバー。
  59. 請求項55に記載のクロスバーであって、前記最終データユニットは、前記複数のデータユニットに関連付けられたデータフィールドを用いて特定されるクロスバー。
  60. 請求項59に記載のクロスバーであって、前記データフィールドは、テールビットおよび終端キャラクタのうちの1つを備えるクロスバー。
  61. 請求項55に記載のクロスバーであって、前記最終データユニットは、前記ルーティング制御情報に関連付けられたデータフィールドを用いて特定されるクロスバー。
  62. 請求項33に記載のクロスバーであって、前記クロスバー回路は、前記データを前記入力チャネルから前記出力チャネルへ前記決定的な方法で転送するよう全体として動作可能な複数の個別クロスバー回路を備えるクロスバー。
  63. 請求項1に記載のクロスバーであって、前記第1数はPを含み、ここでPは1以上の第1整数であり、前記第2数はQを含み、ここでQは1以上の第2整数であり、PおよびQの両方が1に等しいのではないクロスバー。
  64. 請求項1に記載の前記クロスバーを備える集積回路。
  65. 請求項64に記載の集積回路であって、前記集積回路は、CMOS集積回路、GaAs集積回路、およびSiGe集積回路のうちのいずれかを備える集積回路。
  66. 請求項64に記載の集積回路であって、前記集積回路は、少なくとも1つのプログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、マイクロプロセッサ、システムオンチップ、パケットスイッチングデバイス、およびシェアドメモリブリッジのうちのいずれかを備える集積回路。
  67. 請求項1に記載のクロスバーを表すデータ構造をその上に記憶する少なくとも1つのコンピュータで読み取り可能な媒体。
  68. 請求項67に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記データ構造は、前記クロスバーのシミュレーション可能な表現を備える少なくとも1つのコンピュータで読み取り可能な媒体。
  69. 請求項68に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記シミュレーション可能な表現はネットリストを備える少なくとも1つのコンピュータで読み取り可能な媒体。
  70. 請求項67に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記データ構造は、前記クロスバーのコード記述を備える少なくとも1つのコンピュータで読み取り可能な媒体。
  71. 請求項70に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記コード記述はハードウェア記述言語に対応する少なくとも1つのコンピュータで読み取り可能な媒体。
  72. 請求項1に記載のクロスバーの少なくとも一部を表す半導体処理マスクのセット。
  73. 請求項1に記載のクロスバーであって、前記クロスバー回路は、イベントドリブンプロトコルにしたがって前記リンク上で前記データをルーティングするよう動作可能であるクロスバー。
  74. 請求項73に記載のクロスバーであって、前記イベントドリブンプロトコルは非同期であるクロスバー。
  75. 請求項73に記載のクロスバーであって、前記イベントドリブンプロトコルに関連付けられたイベントは、グローバルタイミングレファレンスの遷移にアラインされるクロスバー。
  76. 命令ルーティング情報に基づいて第1数の入力チャネル上で受け取られた順序付けられた命令のストリームを、第2数の出力チャネルのうちの指定されたものへルーティングするよう動作可能なディスパッチャであって、前記ディスパッチャは、前記命令をそれぞれの出力チャネルへ決定的にルーティングし、それにより前記順序付けられたストリーム内で規定されたそれぞれの出力チャネルについての部分的順序付けを維持するよう動作可能であるディスパッチ回路を備え、異なる出力チャネル上の命令は非相関であるディスパッチャ。
  77. 請求項76に記載のディスパッチャであって、前記クロスバー回路は、前記データについてM個の1ofNエンコーディングを用い、ここでMは1以上の整数であり、Nは2以上の整数であるディスパッチャ。
  78. 請求項76に記載のディスパッチャであって、前記クロスバー回路は、前記ルーティング制御情報について1ofNエンコーディングを用い、ここでNは2以上の整数であるディスパッチャ。
  79. 請求項76に記載のディスパッチャであって、前記ルーティング制御情報は、スプリット制御情報およびマージ制御情報を含み、前記スプリット制御情報は、1ofAおよび1ofBエンコーディングを用いてエンコーディングされ、ここでA*Bは前記第2数であり、前記マージ制御情報は、1ofCおよび1ofDエンコーディングを用いてエンコーディングされ、ここでC*Dは前記第1数であるディスパッチャ。
  80. 請求項76に記載のディスパッチャであって、前記クロスバー回路は、前記データを少なくとも1つの前記リンク上で非同期で転送するよう動作可能であるディスパッチャ。
  81. 請求項80に記載のディスパッチャであって、前記クロスバー回路は、前記データを少なくとも1つの前記リンク上でハンドシェークプロトコルを用いて転送するよう動作可能であるディスパッチャ。
  82. 請求項81に記載のディスパッチャであって、前記リンクのうちの前記少なくとも1つの上での第1センダーおよび第1レシーバ間の前記ハンドシェークプロトコルは、
    前記第1レシーバからのイネーブル信号がハイになるとき、前記第1センダーがデータ信号を有効にセットし、
    前記第1レシーバは、前記有効なデータ信号を受け取ると前記イネーブル信号を下げ、
    前記第1センダーは、前記低イネーブル信号を受け取ると前記データ信号をニュートラルにセットし、
    前記第1レシーバは、前記ニュートラルデータ信号を受け取ると前記イネーブル信号を上げる
    ディスパッチャ。
  83. 請求項81に記載のディスパッチャであって、前記ハンドシェークプロトコルは遅延非敏感であるディスパッチャ。
  84. 請求項76に記載のディスパッチャであって、前記ディスパッチ回路は、前記命令を前記入力チャネルから受け取り、前記命令を前記出力チャネルへ送るよう動作可能なクロスバーを備え、前記ディスパッチ回路は、前記クロスバーを制御するよう動作可能な入力制御回路および出力制御回路をさらに備えるディスパッチャ。
  85. 請求項84に記載のディスパッチャであって、前記入力制御回路は、前記命令ルーティング情報を参照して前記クロスバーについてのスプリット制御情報を生成するよう動作可能であり、前記入力制御回路は、前記入力および出力チャネルのそれぞれのペアに対応するリクエストビットを生成するようさらに動作可能であり、それぞれのリクエストビットは、前記対応する入力チャネルが前記対応する出力チャネルとリンクを形成すべきかどうかを示し、前記リクエストビットはまた前記命令ルーティング情報を参照して生成されるディスパッチャ。
  86. 請求項85に記載のディスパッチャであって、前記出力制御回路は、前記リクエストビットを参照して前記クロスバーについてのマージ制御情報を生成するよう動作可能であるディスパッチャ。
  87. 請求項86に記載のディスパッチャであって、前記出力制御回路はバイナリツリー構造を備えるディスパッチャ。
  88. 請求項86に記載のディスパッチャであって、前記出力制御回路はリップリングリング回路を備えるディスパッチャ。
  89. 請求項84に記載のディスパッチャであって、前記クロスバーは、前記命令をそれぞれの出力チャネルへ決定的な方法でルーティングするよう動作可能であるディスパッチャ。
  90. 請求項76に記載のディスパッチャを備える集積回路。
  91. 請求項90に記載の集積回路であって、前記集積回路は、CMOS集積回路、GaAs集積回路、およびSiGe集積回路のうちのいずれかを備える集積回路。
  92. 請求項76に記載のディスパッチャを表すデータ構造をその上に記憶する少なくとも1つのコンピュータで読み取り可能な媒体。
  93. 請求項92に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記データ構造は、前記ディスパッチャのシミュレーション可能な表現を備える少なくとも1つのコンピュータで読み取り可能な媒体。
  94. 請求項93に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記シミュレーション可能な表現はネットリストを備える少なくとも1つのコンピュータで読み取り可能な媒体。
  95. 請求項92に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記データ構造は、前記ディスパッチャのコード記述を備える少なくとも1つのコンピュータで読み取り可能な媒体。
  96. 請求項95に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記コード記述はハードウェア記述言語に対応する少なくとも1つのコンピュータで読み取り可能な媒体。
  97. 請求項76に記載のディスパッチャの少なくとも一部を表す半導体処理マスクのセット。
  98. 請求項76に記載のディスパッチャであって、前記ディスパッチ回路は、少なくとも1つのタイミング推定に基づいて、少なくとも1つの出力チャネルへ前記命令をルーティングするよう動作可能であるディスパッチャ。
  99. 請求項98に記載のディスパッチャであって、前記少なくとも1つのタイミング推定は、パルスタイミング推定、干渉タイミング推定、および黙示のデータニュートラル性タイミング推定のうちの任意のものを含むディスパッチャ。
  100. 請求項99に記載のディスパッチャであって、前記パルスタイミング推定は、そうでなければ遅延非敏感な4フェーズハンドシェークに適用されるディスパッチャ。
  101. 請求項99に記載のディスパッチャであって、前記黙示のデータニュートラル性タイミング推定は、そうでなければ遅延非敏感な4フェーズハンドシェークに適用されるディスパッチャ。
  102. 請求項99に記載のディスパッチャであって、前記干渉タイミング推定は、干渉するオペレータ間の適切なタイミングマージンを推定するディスパッチャ。
  103. 命令ルーティング情報に基づいて第1数の入力チャネル上で受け取られた複数の命令を、第2数の出力チャネルのうちの指定されたものへルーティングするよう動作可能なアービタであって、前記アービタは、異なる入力チャネルで受け取られ同じ出力チャネルを特定する命令の間で調停し、前記異なる入力チャネルの任意のものが後続の命令を、前記異なる入力チャネル間での調停が完了するまで転送しないよう動作可能であるアービタ回路を備えるアービタ。
  104. 請求項103に記載のアービタであって、前記クロスバー回路は、前記データについてM個の1ofNエンコーディングを用い、ここでMは1以上の整数であり、Nは2以上の整数であるアービタ。
  105. 請求項103に記載のアービタであって、前記クロスバー回路は、前記ルーティング制御情報について1ofNエンコーディングを用い、ここでNは2以上の整数であるアービタ。
  106. 請求項103に記載のアービタであって、前記ルーティング制御情報は、スプリット制御情報およびマージ制御情報を含み、前記スプリット制御情報は、1ofAおよび1ofBエンコーディングを用いてエンコーディングされ、ここでA*Bは前記第2数であり、前記マージ制御情報は、1ofCおよび1ofDエンコーディングを用いてエンコーディングされ、ここでC*Dは前記第1数であるアービタ。
  107. 請求項103に記載のアービタであって、前記クロスバー回路は、前記データを少なくとも1つの前記リンク上で非同期で転送するよう動作可能であるアービタ。
  108. 請求項107に記載のアービタであって、前記クロスバー回路は、前記データを少なくとも1つの前記リンク上でハンドシェークプロトコルを用いて転送するよう動作可能であるアービタ。
  109. 請求項108に記載のアービタであって、前記リンクのうちの前記少なくとも1つの上での第1センダーおよび第1レシーバ間の前記ハンドシェークプロトコルは、
    前記第1レシーバからのイネーブル信号がハイになるとき、前記第1センダーがデータ信号を有効にセットし、
    前記第1レシーバは、前記有効なデータ信号を受け取ると前記イネーブル信号を下げ、
    前記第1センダーは、前記低イネーブル信号を受け取ると前記データ信号をニュートラルにセットし、
    前記第1レシーバは、前記ニュートラルデータ信号を受け取ると前記イネーブル信号を上げる
    アービタ。
  110. 請求項108に記載のアービタであって、前記ハンドシェークプロトコルは遅延非敏感であるアービタ。
  111. 請求項103に記載のアービタであって、前記ディスパッチ回路は、前記命令を前記入力チャネルから受け取り、前記命令を前記出力チャネルへ送るよう動作可能なクロスバーを備え、前記ディスパッチ回路は、前記クロスバーを制御するよう動作可能な入力制御回路および出力制御回路をさらに備えるアービタ。
  112. 請求項111に記載のアービタであって、前記入力制御回路は、前記命令ルーティング情報を参照して前記クロスバーについてのスプリット制御情報を生成するよう動作可能であり、前記入力制御回路は、前記入力および出力チャネルのそれぞれのペアに対応するリクエストビットを生成するようさらに動作可能であり、それぞれのリクエストビットは、前記対応する入力チャネルが前記対応する出力チャネルとリンクを形成すべきかどうかを示し、前記リクエストビットはまた前記命令ルーティング情報を参照して生成されるアービタ。
  113. 請求項112に記載のアービタであって、前記出力制御回路は、前記リクエストビット間で調停することによって前記クロスバーについてのマージ制御情報を生成するよう動作可能であるアービタ。
  114. 請求項112に記載のアービタであって、前記出力制御回路はバイナリツリー構造を備えるアービタ。
  115. 請求項114に記載のアービタであって、前記バイナリツリー構造は、複数のステージで構成され、ウィニング入力チャネルのインデックスを累積することによって前記リクエストビットの間で調停するよう動作可能な複数の調停回路およびマージ回路を備えるアービタ。
  116. 請求項115に記載のアービタであって、前記ツリー構造のステージの振る舞いは、同時シーケンシャルプロセス(CSP)記法を用いて
    Figure 2005516508
    のように記述され、ここでL[0] およびL[1]はトリガ入力、Tはトリガ出力、Aは調停結果であるアービタ。
  117. 請求項103に記載のアービタであって、前記調停回路は、前記同じ出力チャネルに対応するグラントトークンを調停ウィニング入力チャネルに送ることによって、前記アービタのデッドロックを防止するよう動作可能なグラント回路を備えるアービタ。
  118. 請求項117に記載のアービタであって、前記調停回路はまた、前記入力チャネルから前記命令を受け取り、前記命令を前記出力チャネルへ送るよう動作可能なメインクロスバーを備え、前記調停回路は、前記命令ルーティング情報から第1スプリット制御情報および第1マージ制御情報を生成することによって前記メインクロスバーを制御するよう動作可能な入力制御回路および出力制御回路をさらに備え、前記グラント回路は、前記グラントトークンを第2スプリット制御情報および第2マージ制御情報に応答して送るよう動作可能なグラントクロスバーを備え、前記第2スプリット制御情報は、前記第1マージ制御情報から導出され、前記第2マージ制御情報は、前記第1スプリット制御情報から導出されるアービタ。
  119. 請求項117に記載のアービタであって、前記グラント回路は、1つまたはそれより小さいスラックで実現され、それにより特定のチャネルからの第2リクエストが、第1リクエストがグラントされるまでブロックされるアービタ。
  120. 請求項103に記載のアービタであって、前記調停回路はまた、前記入力チャネルから前記命令を受け取り、前記命令を前記出力チャネルへ送るよう動作可能な第1クロスバーを備え、前記調停回路は、前記命令ルーティング情報から第1スプリット制御情報および第1マージ制御情報を生成することによって前記第1クロスバーを制御するよう動作可能な入力制御回路および出力制御回路をさらに備え、前記調停回路はまた、第2スプリット制御情報および第2マージ制御情報に応答して前記出力チャネルの任意のものから前記入力チャネルの任意のものへデータを転送するよう動作可能な第2クロスバーを備え、前記第2スプリット制御情報は、前記第1マージ制御情報から導出され、前記第2マージ制御情報は、前記第1スプリット制御情報から導出されるアービタ。
  121. 請求項120に記載のアービタであって、前記調停回路は、2ウェイトランザクションがリクエストされたことの指示に応答してのみ、前記第2スプリット制御情報および第2マージ制御情報を生成するよう動作可能であるアービタ。
  122. 請求項111に記載のアービタであって、前記クロスバーは、前記命令を出力チャネルに決定的な方法でルーティングするよう動作可能なアービタ。
  123. 請求項103に記載のアービタを備える集積回路。
  124. 請求項123に記載の集積回路であって、前記集積回路は、CMOS集積回路、GaAs集積回路、およびSiGe集積回路のうちのいずれかを備える集積回路。
  125. 請求項103に記載のアービタを表すデータ構造をその上に記憶する少なくとも1つのコンピュータで読み取り可能な媒体。
  126. 請求項125に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記データ構造は、前記アービタのシミュレーション可能な表現を備える少なくとも1つのコンピュータで読み取り可能な媒体。
  127. 請求項126に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記シミュレーション可能な表現はネットリストを備える少なくとも1つのコンピュータで読み取り可能な媒体。
  128. 請求項125に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記データ構造は、前記アービタのコード記述を備える少なくとも1つのコンピュータで読み取り可能な媒体。
  129. 請求項128に記載の少なくとも1つのコンピュータで読み取り可能な媒体であって、前記コード記述はハードウェア記述言語に対応する少なくとも1つのコンピュータで読み取り可能な媒体。
  130. 請求項103に記載のアービタの少なくとも一部を表す半導体処理マスクのセット。
  131. 請求項1に記載のクロスバーを介して相互接続された複数のシステム要素を備えるシステムオンチップ。
  132. リクエストクロスバーとしての請求項1に記載のクロスバーの第1部分およびレスポンスクロスバーとしての請求項1に記載のクロスバーの第2部分を備えるシェアドメモリブリッジ。
  133. 請求項76に記載のディスパッチャを命令ディスパッチャとして備えるスーパスカラ中央処理ユニット。
  134. 請求項1に記載のクロスバーをレジスタバイパスとして備えるスーパスカラ中央処理ユニット。
  135. 請求項1に記載のクロスバーをスイッチファブリックとして備えるパケットスイッチングデバイス。
JP2003564758A 2002-01-25 2003-01-21 決定的または調停された制御による非同期クロスバー Expired - Fee Related JP4331617B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US35213102P 2002-01-25 2002-01-25
US10/136,025 US7283557B2 (en) 2002-01-25 2002-04-30 Asynchronous crossbar with deterministic or arbitrated control
PCT/US2003/001860 WO2003065236A1 (en) 2002-01-25 2003-01-21 Asynchronous crossbar with deterministic or arbitrated control

Publications (3)

Publication Number Publication Date
JP2005516508A true JP2005516508A (ja) 2005-06-02
JP2005516508A5 JP2005516508A5 (ja) 2008-11-27
JP4331617B2 JP4331617B2 (ja) 2009-09-16

Family

ID=27668059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003564758A Expired - Fee Related JP4331617B2 (ja) 2002-01-25 2003-01-21 決定的または調停された制御による非同期クロスバー

Country Status (6)

Country Link
US (3) US7283557B2 (ja)
EP (1) EP1468372B1 (ja)
JP (1) JP4331617B2 (ja)
AT (1) ATE470186T1 (ja)
DE (1) DE60332811D1 (ja)
WO (1) WO2003065236A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007507795A (ja) * 2003-10-03 2007-03-29 ソニックス・インコーポレーテッド 低電力共用リンクアービトレーション
JP2014528220A (ja) * 2011-09-21 2014-10-23 クゥアルコム・インコーポレイテッドQualcomm Incorporated 非同期ハンドシェイクベースの相互接続のためのシステムおよび方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519060B2 (en) * 2003-03-19 2009-04-14 Intel Corporation Reducing inter-packet gaps in packet-based input/output communications
WO2005008672A2 (en) * 2003-07-14 2005-01-27 Fulcrum Microsystems, Inc. Asynchronous static random access memory
FR2875982B1 (fr) 2004-09-28 2006-12-22 Commissariat Energie Atomique Architecture de communication semi-automatique noc pour applications "flots de donnees"
US7814280B2 (en) * 2005-01-12 2010-10-12 Fulcrum Microsystems Inc. Shared-memory switch fabric architecture
US20060161718A1 (en) * 2005-01-20 2006-07-20 Berke Stuart A System and method for a non-uniform crossbar switch plane topology
FR2883116B1 (fr) 2005-03-08 2007-04-13 Commissariat Energie Atomique Architecture de communication globalement asynchrone pour systeme sur puce.
FR2883117B1 (fr) 2005-03-08 2007-04-27 Commissariat Energie Atomique Architecture de noeud de communication dans un systeme de reseau sur puce globalement asynchrone.
US7318126B2 (en) * 2005-04-11 2008-01-08 International Business Machines Corporation Asynchronous symmetric multiprocessing
US7568063B2 (en) * 2006-02-02 2009-07-28 Hewlett-Packard Development Company, L.P. System and method for a distributed crossbar network using a plurality of crossbars
US7504851B2 (en) * 2006-04-27 2009-03-17 Achronix Semiconductor Corporation Fault tolerant asynchronous circuits
US7505304B2 (en) * 2006-04-27 2009-03-17 Achronix Semiconductor Corporation Fault tolerant asynchronous circuits
WO2008031851A1 (en) * 2006-09-13 2008-03-20 Ecole Polytechnique Federale De Lausanne (Epfl) Methods for hardware reduction and overall performance improvement in communication system
US9262356B2 (en) * 2006-12-15 2016-02-16 Lantiq Beteiligungs-GmbH & Co.KG Arbiter device and arbitration method
US7916718B2 (en) * 2007-04-19 2011-03-29 Fulcrum Microsystems, Inc. Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
US9081901B2 (en) * 2007-10-31 2015-07-14 Raytheon Company Means of control for reconfigurable computers
US8370557B2 (en) * 2008-12-19 2013-02-05 Intel Corporation Pseudo dual-port SRAM and a shared memory switch using multiple memory banks and a sideband memory
US8514902B2 (en) 2011-03-17 2013-08-20 Corning Incorporated P-type isolation between QCL regions
US9917421B2 (en) 2011-03-17 2018-03-13 Thorlabs Quantum Electronics, Inc. P-type isolation regions adjacent to semiconductor laser facets
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US10439871B2 (en) 2017-09-25 2019-10-08 Cisco Technology, Inc. Deterministic stitching of deterministic segments across distinct deterministic domains

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4482996A (en) * 1982-09-02 1984-11-13 Burroughs Corporation Five port module as a node in an asynchronous speed independent network of concurrent processors
US4475188A (en) * 1982-09-02 1984-10-02 Burroughs Corp. Four way arbiter switch for a five port module as a node in an asynchronous speed independent network of concurrent processors
US4680701A (en) 1984-04-11 1987-07-14 Texas Instruments Incorporated Asynchronous high speed processor having high speed memories with domino circuits contained therein
US4773066A (en) 1986-04-15 1988-09-20 The Mitre Corporation Synchronized multiple access apparatus and method for a local area network
GB8711991D0 (en) 1987-05-21 1987-06-24 British Aerospace Asynchronous communication systems
US4849751A (en) 1987-06-08 1989-07-18 American Telephone And Telegraph Company, At&T Bell Laboratories CMOS Integrated circuit digital crossbar switching arrangement
US5452231A (en) 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US4912348A (en) 1988-12-09 1990-03-27 Idaho Research Foundation Method for designing pass transistor asynchronous sequential circuits
US5752070A (en) 1990-03-19 1998-05-12 California Institute Of Technology Asynchronous processors
US5121003A (en) 1990-10-10 1992-06-09 Hal Computer Systems, Inc. Zero overhead self-timed iterative logic
US5434520A (en) 1991-04-12 1995-07-18 Hewlett-Packard Company Clocking systems and methods for pipelined self-timed dynamic logic circuits
US5367638A (en) 1991-12-23 1994-11-22 U.S. Philips Corporation Digital data processing circuit with control of data flow by control of the supply voltage
US5450549A (en) * 1992-04-09 1995-09-12 International Business Machines Corporation Multi-channel image array buffer and switching network
DE4214981A1 (de) 1992-05-06 1993-11-11 Siemens Ag Asynchrone Logikschaltung für den 2-Phasen-Betrieb
EP0650117B1 (en) 1993-10-21 2002-04-10 Sun Microsystems, Inc. Counterflow pipeline
US5440182A (en) 1993-10-22 1995-08-08 The Board Of Trustees Of The Leland Stanford Junior University Dynamic logic interconnect speed-up circuit
US6152613A (en) 1994-07-08 2000-11-28 California Institute Of Technology Circuit implementations for asynchronous processors
US5642501A (en) 1994-07-26 1997-06-24 Novell, Inc. Computer method and apparatus for asynchronous ordered operations
US5832303A (en) 1994-08-22 1998-11-03 Hitachi, Ltd. Large scale interconnecting switch using communication controller groups with multiple input-to-one output signal lines and adaptable crossbar unit using plurality of selectors
US5517495A (en) * 1994-12-06 1996-05-14 At&T Corp. Fair prioritized scheduling in an input-buffered switch
US5732233A (en) 1995-01-23 1998-03-24 International Business Machines Corporation High speed pipeline method and apparatus
WO1997008620A2 (en) 1995-08-23 1997-03-06 Philips Electronics N.V. Data processing system comprising an asynchronously controlled pipeline
ATE271742T1 (de) 1996-01-03 2004-08-15 Sony Electronics Inc Kopiergeschütztes aufnahme- und wiedergabesystem
GB2310738B (en) 1996-02-29 2000-02-16 Advanced Risc Mach Ltd Dynamic logic pipeline control
US5802055A (en) 1996-04-22 1998-09-01 Apple Computer, Inc. Method and apparatus for dynamic buffer allocation in a bus bridge for pipelined reads
US6381692B1 (en) 1997-07-16 2002-04-30 California Institute Of Technology Pipelined asynchronous processing
US5920899A (en) 1997-09-02 1999-07-06 Acorn Networks, Inc. Asynchronous pipeline whose stages generate output request before latching data
US6502180B1 (en) 1997-09-12 2002-12-31 California Institute Of Technology Asynchronous circuits with pipelined completion process
US6038656A (en) 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
US6301655B1 (en) 1997-09-15 2001-10-09 California Institute Of Technology Exception processing in asynchronous processor
US5949259A (en) 1997-11-19 1999-09-07 Atmel Corporation Zero-delay slew-rate controlled output buffer
US5973512A (en) 1997-12-02 1999-10-26 National Semiconductor Corporation CMOS output buffer having load independent slewing
US6072772A (en) * 1998-01-12 2000-06-06 Cabletron Systems, Inc. Method for providing bandwidth and delay guarantees in a crossbar switch with speedup
US6044061A (en) 1998-03-10 2000-03-28 Cabletron Systems, Inc. Method and apparatus for fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
US6327253B1 (en) * 1998-04-03 2001-12-04 Avid Technology, Inc. Method and apparatus for controlling switching of connections among data processing devices
US6052368A (en) * 1998-05-22 2000-04-18 Cabletron Systems, Inc. Method and apparatus for forwarding variable-length packets between channel-specific packet processors and a crossbar of a multiport switch
US6279065B1 (en) 1998-06-03 2001-08-21 Compaq Computer Corporation Computer system with improved memory access
US6301630B1 (en) 1998-12-10 2001-10-09 International Business Machines Corporation Interrupt response in a multiple set buffer pool bus bridge
US6374307B1 (en) 1999-02-12 2002-04-16 Steve A. Ristau Non-intrusive DWDM billing system
US6230228B1 (en) 1999-04-01 2001-05-08 Intel Corporation Efficient bridge architecture for handling multiple write transactions simultaneously
US7006498B2 (en) 2000-08-09 2006-02-28 International Business Machines Corporation System for transmitting local area network (LAN) data frames through an asynchronous transfer mode (ATM) crossbar switch

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007507795A (ja) * 2003-10-03 2007-03-29 ソニックス・インコーポレーテッド 低電力共用リンクアービトレーション
JP2014528220A (ja) * 2011-09-21 2014-10-23 クゥアルコム・インコーポレイテッドQualcomm Incorporated 非同期ハンドシェイクベースの相互接続のためのシステムおよび方法

Also Published As

Publication number Publication date
US7283557B2 (en) 2007-10-16
EP1468372B1 (en) 2010-06-02
EP1468372A1 (en) 2004-10-20
JP4331617B2 (ja) 2009-09-16
US20030146075A1 (en) 2003-08-07
ATE470186T1 (de) 2010-06-15
US20030146074A1 (en) 2003-08-07
DE60332811D1 (de) 2010-07-15
WO2003065236A1 (en) 2003-08-07
US7274710B2 (en) 2007-09-25
US7274709B2 (en) 2007-09-25
US20030146073A1 (en) 2003-08-07

Similar Documents

Publication Publication Date Title
JP4331617B2 (ja) 決定的または調停された制御による非同期クロスバー
US7239669B2 (en) Asynchronous system-on-a-chip interconnect
US10838787B2 (en) Processing system with interspersed processors with multi-layer interconnect
Bainbridge et al. Delay insensitive system-on-chip interconnect using 1-of-4 data encoding
Dimitrakopoulos et al. Microarchitecture of Network-on-chip Routers
US8872544B2 (en) Systems, pipeline stages, and computer readable media for advanced asynchronous pipeline circuits
Jiang et al. A lightweight early arbitration method for low-latency asynchronous 2D-mesh NoC's
Bainbridge et al. MARBLE: An asynchronous on-chip macrocell bus
Golubcovs et al. Concurrent multiresource arbiter: design and applications
Shang Asynchronous communication circuits: Design, test and synthesis
Golubcovs Multi-resource approach to asynchronous SoC: design and tool support
Ezz-Eldin et al. Network on Chip Aspects
Lam Hierarchical design of delay-insensitive systems using fine-grain building blocks
Orthner Packet-based transaction interconnect fabric for FPGA systems on chip

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080916

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080924

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20081010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081016

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090213

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090602

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090618

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130626

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130626

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130626

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees