JP2004525449A - 相互接続システム - Google Patents
相互接続システム Download PDFInfo
- Publication number
- JP2004525449A JP2004525449A JP2002564890A JP2002564890A JP2004525449A JP 2004525449 A JP2004525449 A JP 2004525449A JP 2002564890 A JP2002564890 A JP 2002564890A JP 2002564890 A JP2002564890 A JP 2002564890A JP 2004525449 A JP2004525449 A JP 2004525449A
- Authority
- JP
- Japan
- Prior art keywords
- node
- bus
- interconnect
- data
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Semiconductor Integrated Circuits (AREA)
- Peptides Or Proteins (AREA)
- Logic Circuits (AREA)
- Bus Control (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
【0001】
本発明は、相互接続ネットワークに関する。特に、本発明は、チップ内相互接続ネットワークに関するが、それのみに関するものではない。
【背景技術】
【0002】
複数の機能ユニット(または処理ユニット)を相互接続する代表的なバスシステムは、トライステートドライバを有するワイヤの組、またはバス上にデータを得るためのマルチプレクサを組み込んだ2つの単方向データ経路から成る。バスに対するアクセスはアービトレーションユニットにより制御され、このアービトレーションユニットは、バスを使用する要求を受け入れて、1つの機能ユニットが任意の一時刻にバスにアクセスすることを許す。アービタはパイプライン処理され、バス自体は、より高いクロック速度を実現するためにパイプライン処理される。データをバスに沿ってルーティングするために、システムは、一般にルックアップテーブルを含む複数のルータを具備する。データは、次に、ルーティングルックアップテーブル内のエントリと比較されて、データの正しい宛先へのバス上へルーティングされる。
【0003】
しかし、そのようなルーティングスキームを、チップ上において実行することはできない。その理由は、部品の複雑性およびサイズが、それを実行不可能にするからである。これは、現存のオンチップバススキームにおいて、データが一斉送信される、すなわち、データを1つの機能ユニットから複数の他の機能ユニットへ同時に転送する、異なるスキームを用いることにより克服された。これは、ルーティングテーブルを不必要にする。しかし、チップ上の全ての機能ユニットへのデータの一斉送信は、かなりの電力を消費するので、非効率的である。また、1クロックサイクル中に、比較的に長距離を越えてデータを転送することはますます困難となってきている。
【0004】
さらに、代表的なバスシステムにおいては、バス(トランザクタ)を使用することごとくの要求は、中央アービタに接続されなければならないので、これはシステムのスケーラビリティを制限する。構築されるシステムが大きくなるのに伴い、機能ユニットはアービタから遠くなるので、レーテンシは増大し、単一アービタにより処理される同時要求の数は制限されることになる。従って、そのような中央アービタに基づくバスシステムにおいては、バスの長さおよびトランザクタの数は通常最初に固定される。従って、システムの要求の変化に適合するように、後の段階においてバスを長くすることはできない。
【0005】
相互接続のもう1つの形式は、直接相互接続ネットワークである。このタイプのネットワークは一般に複数のノードを含み、それぞれのノードは離散したルータチップである。それぞれのノード(ルータ)は、プロセッサおよび複数の他のノードに接続され、ネットワークのトポロジーを形成する。
【0006】
過去においては、このネットワークに基づくアプローチをオンチップバスの代わりに実行することはできなかった。その理由は、個々のノードが、チップ上における実施のためには大き過ぎるからである。
【0007】
多くの現存のバスは、特定のプロトコルによって働くように作られる。カストマイズされたワイヤの多くは、そのプロトコルの特定の機能に関連する。逆に、多くのプロトコルは、例えば、何らかの方法でアービタを補助する特定のデータファイルを有する特定のバスの実施の周辺に基礎を置く。
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明の目的は、オンチップバスシステムとしての相互接続ネットワークを提供することである。
【課題を解決するための手段】
【0009】
これは、データの一斉送信とは対照的に、データをルーティングすることにより達成される。データのルーティングは、簡単なアドレス指定スキームにより行われ、その場合、それぞれのトランザクションは、関連するルーティング情報、例えば、相互接続ネットワーク内のノードが正しい宛先へそのトランザクションをルーティングすることを可能にする地理的アドレス、を有する。
【0010】
このようにして、ルーティング情報は、データパケットを送るべき方向に関する情報を含む。このルーティング情報は、単に宛先のアドレスではなく、方向情報、例えば、方向を与えるための格子のx、y座標、を与える。従って、ノードは、方向を決定するためのルーティングテーブル、または広域信号を必要としない。その理由は、ノードが必要とする全ての情報は、データパケットのルーティング情報内に含まれているからである。これは、ノードおよび相互接続システムの回路の簡単化を可能にし、それによりこのシステムのチップ上への集積を可能にする。
【0011】
もしそれぞれの機能ユニットがノードに接続され、全てのノードが互いに接続されていれば、システム内のそれぞれのノードの対の間にはパイプライン接続が存在する。介在するノードの数はパイプラインステージの数を支配する。もし結合したノードの対が存在し、それらの間の距離が大き過ぎて、データを単一クロックサイクル中に伝送できない場合には、中継器ブロックをそれらのノードの間に挿入することができる。このブロックは、他のバスブロックと同じプロトコルを維持しつつデータを登録する。中継器ブロックの包含は、任意の長さの相互接続を作ることができるようにする。
【0012】
本発明による相互接続システムは、チップ内相互接続ネットワークにおいて用いることができる。データの転送は全てパケット化され、それらのパケットは、データ経路の幅の倍数である任意の長さとすることができる。相互接続ネットワーク(ノードおよびTスイッチ)を作るために用いられるバスのノードは、全てデータ経路上のレジスタを有する。
【発明の効果】
【0013】
本発明の主な利点は、本発明が本来再使用可能であることである。実施者は、所望のクロック速度を実現するための、正しい数のインタフェースを有し、また十分な中継器ブロックを有する、正しい長さの相互接続を形成するために十分な、機能ブロックを例示しさえすればよい。
【0014】
本発明による相互接続システムは、分散アービトレーションを用いる。このアービトレーションの能力は、より多くのブロックが追加されるほど増大する。従って、もしバスを長くする必要があるならば、もっと多くのノードおよびことによると中継器を例示しさえすればよい。それぞれのモジュールは、自身の中での自身のアービトレーションを管理するので、相互接続の全体的アービトレーション能力は増大する。これは、本発明のバスシステムを、他の従来のバスシステムよりも、(長さおよび全体的帯域幅において)よりスケーラブルにする。
【0015】
本発明のシステムにより採用されたアービトレーションは、真に分散化され局所化される。これは、従来の分散システムにおけるような、下流へのルートが自由であるかどうかを調査するためのポーリングが、行われないよう簡単化され、代わりにこの情報は、「閉塞されたノード」および上流のノードによる相互接続(バス)のパイプライン処理されたバックアップにより起動される。
【0016】
本発明による相互接続は、電力消費に関しては効率的である。パケットは一斉送信されずにルーティングされるので、発信源ノードと宛先ノードとの間のワイヤのみがトグルされる。残りのバスドライバは、クロックゲートされる。従って、本発明のシステムが消費する電力は少ない。
【0017】
さらに、バス上のことごとくのノードは、それに関連する独自のアドレス、すなわちインタフェースアドレスを有する。パケット内には、宛先のインタフェースアドレスを保持するフィールドが確保される。バス上のそれぞれのノードは、入来パケットのこのフィールドに問合せを行う。もしそのノードが、そのインタフェースアドレスと一致すれば、そのノードはそのパケットのルートを相互接続(またはバス)から分離し、もしそのノードが、そのインタフェースアドレスと一致しなければ、そのノードはそのパケットをバスの下流へルーティングする。このアドレス指定スキームは、一斉送信メッセージのための「ワイルドカード」をサポートするように拡張することができる。もしアドレスの部分集合がインタフェースアドレスと一致すれば、そのパケットはルートをバスから分離され、かつ続けてバスの下流へ送られ、そうでない場合は、それはバスの下流へそのまま続けて送られる。
【0018】
バス上に来るパケットに対し、それぞれのインタフェースユニットは、そのパケットの宛先インタフェースアドレスの問合せを行う。これは、取付けられたユニットからバスに到達するパケットがいずれの方向にルーティングされるべきかを決定するために用いられる。線形バスの場合には、これは簡単な比較によることができ、もし宛先アドレスがデータ源のインタフェースアドレスよりも大きければ、パケットはバスの「上流」へルーティングされ、そうでない場合は、パケットはバスの「下流」へルーティングされる。これは、それぞれのノードが、宛先アドレス、またはアドレスの範囲を、バス上における方向にマッピングするように、それぞれのインタフェースユニットに対して拡張できる。
【0019】
好ましくは、インタフェースユニットは、この比較の結果に基づき、2進レーン信号をセットする。このようにして、機能性は、ノードとインタフェースユニットとの間で分割される。移送されるべきデータの(プロトコル要件を含む)全ての「準備」は、インタフェースユニットにおいて行われる。移送されるべきデータのタイプにかかわらずノードは変化しないので、これは大きい柔軟性を可能にし、ノードが異なる回路において再使用されることを可能にする。さらに好ましくは、ノードは、パケットを相互接続システムから分離し、機能ユニットに向けて送る。
【0020】
さらに好ましくは、相互接続宛のデータに関し、インタフェースユニットは以下の機能を行うことができる。すなわち、機能ユニットからパケットを取り出し、正しい宛先モジュールID、ヘッドおよびテールビットを確保する;宛先モジュールIDをローカルモジュールIDと比較し、この比較の結果に基づき2進レーン信号をセットする;そのモジュールID、データおよび任意の高レベル(非バス)制御信号をフリット(flit)内にパックする;必要な任意のプロトコル変更を実施する;そして、注入プロトコルを用い、前記レーン信号をおよびフリットをノードに送る。
【0021】
TジャンクションまたはTスイッチは、同様に動作する。ここでの決定は、単にパケットを一方のブランチまたは他方のブランチのいずれへルーティングすべきかについて行われる。これは一般に、アドレスの範囲に関して行われ、もしアドレスがある所定の値よりも大きければ、パケットは左へルーティングされ、そうでない場合は、パケットは右へルーティングされる。しかし、もし必要ならば、もっと複雑なルーティングスキームを実行することもできる。
【0022】
このアドレス指定スキームは、チップ間通信をサポートするように拡張することができる。この場合は、アドレス内のフィールドが、ターゲットチップのアドレスを定めるために用いられ、例えば、このフィールド内の0は、そのチップローカルアドレスを表す。パケットがそのチップに到達した時は、このフィールドは、そのチップの前もってプログラムされたアドレスと比較される。もしそれらが一致すれば、そのフィールドはゼロにセットされ、ローカルルーティングが上述のように行われる。もしそれらが一致しなければ、パケットは、バスに沿って適切なチップ間インタフェースまでルーティングされた後、その最終的宛先に向けてルーティングされる。このスキームは、チップのシステム、サブシステム、ボード、グループ、および個々のチップにおけるルーティングを管理する階層的アドレス指定スキームを可能にするように、拡張することができる。
【0023】
本発明によるシステムは、全てのバス型アプリケーションに適しているわけではない。発信源トランザクタと宛先トランザクタとは、中央アービトレーションポイントが存在しないので減結合される。本発明のアプローチの利点は、長いバス(ネットワーク)が、極めて高いアグリゲート帯域幅を有するように構成できることである。
【0024】
本発明のシステムは、プロトコルを断定できないものである。本発明の相互接続は、単にデータパケットを移送する。本発明によるインタフェースユニットは、全てのプロトコル特有機能を管理する。これは、それが容易に新しいプロトコルに移行できることを意味する。その理由は、インタフェースユニットを再設計しさえすればよいからである。
【0025】
本発明はまた、融通のきくトポロジーおよび長さを提供する。
本発明の中継器ブロックは、相互接続の全体的モジュラ構造が、長いワイヤによりクロック速度が制限されることを防止するために、極めて高いクロック速度を可能にする。これは、合成およびレイアウトを簡単化する。中継器ブロックは、データが下流へ進む時にデータをパイプライン処理するだけでなく、中継器ブロックは、フロー制御プロトコルをも実行し、(閉塞信号を広域的に分散させるのではなく)相互接続(またはバス)の上流への閉塞情報をパイプライン処理する。閉塞が起こった時は、この機構の機能により、データ圧縮(固有のバッファリング)がバス上において行われ、レーテンシ指数を少なくとも2倍にし、すなわち、もし中継器を経てのレーテンシが1サイクルならば、2つのデータ制御フローディジット(フリット:本発明の相互接続上におけるデータ転送の基本単位。それはnバイトのデータおよびいくつかの側波帯制御信号を含む。フロー制御ディジットのサイズは、バスデータ経路のサイズに等しい)が、閉塞が起こった時に連結される。これは、いずれの閉塞の範囲も最小化され、従って機能ブロックにおけるキューイング要件が減少することを意味する。
【0026】
データフロー制御ディジットのフローは、前述のように、記憶ブロック(および中継器ユニット)におけるダブルバッファリングと関連して、フロー制御プロトコルにより管理される。
【0027】
本発明の相互接続の諸成分は、パケットの移送を管理する。カストマイズされたインタフェースユニットは、プロトコル特有の機能を処理する。これらは一般に、制御情報およびデータのパッキングおよびアンパッキング、およびアドレスの変換を含む。カストマイズされたインタフェースユニットは、任意の特定の同時実行に適合するように作ることができる。
【0028】
多くのパケットが、本発明の相互接続の別個のセグメントに沿って同時に進むことができる。これは、実現可能な帯域幅を、ワイヤの原帯域幅(バスの幅にクロック速度を乗算したもの)よりも遥かに大きくすることを可能にする。例えば、もし4つの隣接するオンチップブロックA、B、CおよびDが存在すれば、AとBとは、CとDとが通信するのと同時に通信することができる。この場合に実現できる帯域幅は、一斉送信に基づくバスのそれの2倍になる。
【0029】
パケットは、それぞれのノードにおいて相互接続上へ注入(ゲート)されるので、それぞれのノードは、(例えば、100サイクル毎の間に10個のフロー制御ディジットを送ることができることにより)ある量の全体的帯域幅割当てを割当てられ、この分散スキームは全体的帯域幅割当てを制御する。
【0030】
パケットを本発明の相互接続上へ、それが飽和するまで強制的に送り続けることは可能である。全てのパケットは、結局は配信される。これは、その相互接続を、組み込まれたフロー制御機構を有するバッファとして用いることができることを意味する。
【実施例1】
【0031】
機能ブロックの間でデータおよび制御情報を通信する基本機構は、それらのブロックが、本発明による相互接続システム100を用いメッセージを交換するようになっている。バスシステムは、マルチチップシステム内の諸ブロックを接続するために延ばすことができ、同じ機構は、チップ内の諸ブロック、または異なるチップ上の諸ブロックのために働く。
【0032】
本発明の実施例による相互接続システム110を組み込んだシステムの例100は、図1に示されているように、複数の再使用可能なオンチップ機能ブロックまたは仮想成分ブロック105a、105bおよび105cを含む。これらの機能ユニットは、相互接続に対してインタフェースし、固定することができる。それらは、異なる回路設計における、さまざまな抽象のレベル(例えば、RTL、ゲートレベル、GDSIIレイアウトデータ)において再使用することができる。相互接続に対する諸I/Oのサイズ、縦横比および位置が知られた時は、トポロジーを固定することができる。それぞれのオンチップ機能ユニット105a、105b、105cは、インタフェースユニットを経て相互接続システム110に接続される。インタフェースユニットは、アドレスデコーディングおよびプロトコル変換を処理する。例えば、オンチップ機能ユニット105aは、関連する仮想成分インタフェースイニシエータ115aおよび周辺仮想成分インタフェースイニシエータ120aを経て、相互接続システム110に接続される。
【0033】
例えば、オンチップ機能ユニット105bは、関連する仮想成分インタフェースターゲット125bおよび周辺仮想成分インタフェースターゲット130bを経て、相互接続システム110に接続される。例えば、オンチップ機能ユニット105cは、関連する仮想成分インタフェースイニシエータ115cおよび周辺仮想成分インタフェースターゲット130cを経て、相互接続システム110に接続される。図1に示されている、それぞれのオンチップ機能ブロックのための関連するイニシエータおよびターゲットは、純粋に説明用のものであり、関連するブロックの要求により変更できる。機能ブロックは、相互接続システムに対するいくつかの接続を有する。それぞれの接続は、高度仮想成分インタフェース(拡張は基本仮想成分インタフェースのスーパーセットを形成する。これは、本発明のシステムにおける主データインタフェースのために用いられるプロトコルである)、または周辺仮想成分インタフェースインタフェース(本発明において主としてレジスタアクセスを制御するために用いられる、アトミックオペレーションを可能にする低帯域幅インタフェース)を有する。
【0034】
図1に示されているようなオンチップ機能ユニットを、本発明の実施例による相互接続システムに接続するための、現在受け入れられている1つのプロトコルは、仮想成分インタフェースである。仮想成分インタフェースは、バスおよび/または仮想成分の間の通信を行うためのOCB標準インタフェースであり、それは特定のバスまたは仮想成分プロトコルとは無関係である。
【0035】
3つのタイプの仮想成分インタフェース、すなわち、周辺仮想成分インタフェース120a、130b、130c、基本仮想成分インタフェースおよび高度仮想成分インタフェースが存在する。基本仮想成分インタフェースは、周辺仮想成分インタフェースよりも広く、高い帯域幅のインタフェースである。基本仮想成分インタフェースは、分割トランザクションを許容する。分割トランザクションにおいては、データおよび応答を求める要求が減結合されるので、データを求める要求は、応答が戻るのを待たずに、さらなるトランザクションを開始してもよい。高度仮想成分インタフェースは、基本仮想成分インタフェースのスーパーセットである。高度仮想成分インタフェースおよび周辺仮想成分インタフェースは、本発明の実施例によるシステムに採用されている。高度仮想成分インタフェースユニットは、ターゲットおよびイニシエータを含む。ターゲットおよびイニシエータは、要求パケットを送り、応答パケットを受け取る仮想成分である。イニシエータは、トランザクション、例えば、DMA(またはF150上のEPU)を開始するエージェントである。
【0036】
図2に示されているように、読取りまたは書込みトランザクションを開始するインタフェースユニットはイニシエータ210(要求220を発する)と呼ばれ、一方トランザクションを受けるインタフェースはターゲット230(要求240に応答する)と呼ばれる。これは、標準仮想成分における用語である。
【0037】
それぞれのオンチップ機能ブロック105a、105bおよび105c、およびその関連のイニシエータおよびターゲットは、仮想成分インタフェースプロトコルを用いて作られる。それぞれのイニシエータ115a、120a、115cおよびターゲット125b、130b、130cは、独自のノード135、140、145、150、155および160に接続される。それぞれのイニシエータ115a、120a、115cおよびターゲット125b、130b、130cの間の通信は、以下に詳細に説明するように、本発明の実施例によるプロトコルを用いる。
【0038】
本発明の実施例による相互接続システム110は、3つの別個のバス165、170および175を含む。RTL成分はパラメータ化可能な幅を有するので、これらは3つの異なる幅の例となる。1つの例は、64ビットの広さの周辺仮想成分バス170(32ビットアドレス+32データビット)、128ビットの高度仮想成分インタフェースバス165、および256ビットの高度仮想成分インタフェースバス175である。ここでは3つの別個のバスが図示されているが、本発明の相互接続システムは、任意の数の別個のバスを組み込むことができることを認識すべきである。
【0039】
全てのバス165、170および175に対し、バスの長さに沿った一定間隔毎に、中継器ユニット180が挿入される。バス165、170および175の長さに関しては制限はない。バス165、170および175の長さの変動は、単に中継器ユニット180の数の増加を必要とするのみである。中継器ユニットは、もちろん、相互接続のワイヤの長さのために、2つのノードの間のタイミングの制約を満たすことができない時にのみ必要になる。
【0040】
複雑なトポロジーの場合には、Tスイッチ(3方向コネクタなど)185を備えることができる。本発明の相互接続システムは、任意のトポロジーにおいて用いることができるが、トポロジーがループを含む時はデッドロックを生じることがあるので、注意しなければならない。
【0041】
データはパケットをなして、本発明の相互接続ネットワーク上で転送される。それらのパケットは、データ経路の幅の倍数である任意の長さのものでよい。相互接続ネットワーク(ノードおよびTスイッチ)を作るために用いられる、本発明によるノード135、140、145、150、155および160は、全てデータ経路上にレジスタを有する。
【0042】
それぞれのインタフェースユニットは、相互接続システム自身の中のノードに、従って、1つの特定のバスのレーンに接続される。接続は、仮想成分インタフェースの規定に従って、イニシエータタイプまたはターゲットタイプのものであり、双方のものではない。実際には、ことごとくのブロックは、構成および制御のための、周辺仮想成分インタフェースターゲットインタフェースを有する。
【0043】
本発明の実施例によるバス成分は、分散アービトレーションを用い、その場合、バスシステム内のそれぞれのブロックは、それ自身のリソースに対するアクセスを管理する。
【0044】
本発明の実施例によるノード135は、図3に示されている。それぞれのノード135、140、145、150、155および160は、実質的に同様のものである。ノード135は、図1のバス175に接続される。それぞれのノードは、第1および第2の入力記憶装置315、320を含む。第1の入力記憶装置315の入力は、第1のバスレーン305に接続される。第2の入力記憶装置320の入力は、第2のバスレーン310に接続される。第1の入力記憶装置315の出力は、第3のバスレーン306に接続され、第2の入力記憶装置320の出力は、第4のバスレーン311に接続される。それぞれのノードは、さらに注入制御ユニット335および消費制御ユニット325を含む。ノードは消費アービトレーションを必要とせず、例えば、ノードはそれぞれの単方向レーンのための出力を有するが、消費ハンドシェイキングは保存される。
【0045】
注入制御ユニット335の入力は、そのノードのためのそれぞれの機能ユニットのインタフェースユニットの出力に接続される。注入制御ユニット335の出力は、第5のバスレーン307および第6のバスレーン312に接続される。消費制御ユニット325の入力は、マルチプレクサ321の出力に接続される。マルチプレクサ321の入力は、第4のバスレーン311および第3のバスレーン306に接続される。消費制御ユニット325の出力はバス330に接続され、このバスは、そのノードのためのそれぞれの機能ユニットのインタフェースユニットに接続される。第5のバスレーン307および第3のバスレーン306は、マルチプレクサ308の入力に接続される。マルチプレクサ308の出力は、第1のバスレーン305に接続される。第4のバスレーン311および第6のバスレーン312は、マルチプレクサ313の入力に接続される。マルチプレクサ313の出力は、第2のバスレーン310に接続される。
【0046】
ノードは、データがバスに出入りする接続点である。ノードはまた、移送媒体の部分をなす。ノードは、データ経路の両方向を含むバスレーンに接続する、バスレーンの部分を形成する。ノードは、そのノードが接続するレーン上にデータを、閉塞されない時は1サイクルのレーテンシにより伝える。ノードはまた、接続機能ブロックが、そのインタフェースを経て、いずれの方向にもデータを注入し、また消費することを可能にする。注入データまたは通過データのアービトレーションは、ノード内において完全に行われる。
【0047】
内部的には、バス175は、第1のレーン305および第2のレーン310から成る。第1および第2のレーン305および310は、物理的には別個の単方向バスであり、これらは、ノード135内の同じインタフェースに対し多重化され、また多重分離される。図3に示されているように、第1のレーン305のデータフローの方向は、第2のレーン310のそれと逆方向である。それぞれのレーン305および310は、レーン番号を有する。レーン番号は、それぞれのパケットがいずれのレーン(従って、いずれの方向)に送られるかを決定するために、インタフェースユニットからノードへ送られるパラメータである。もちろん、第1および第2のレーン305および310のデータフローの方向は、同じ方向であることができる。これは、もしバス上でトランザクションを行うブロックが、1つの方向のみにパケットを送りさえすればよいならば望ましい。
【0048】
ノード135は、同じバスレーン上においてデータを同時に受け取りかつ注入することができる。同時に、データを他のレーン上に通過させることもできる。それぞれの単方向レーン305、310は、データの別個のストリーム306、307、311、312を搬送する。これらのストリーム306、307、311、312は、ポイント321において共に多重化され、ここでデータはノード135から出て、インタフェースユニット115aおよび120a(ここには図示せず)を経て、オンチップモジュール105a(ここには図示せず)に入る。データストリーム306、307、311、312は、オンチップブロック105aからバスレーン305および310上に多重分離され、データは相互接続110上に置かれる。
【0049】
これはローカルアービトレーションの例であり、この例においては、リソースのための競合は、それらのリソースが存在するブロック105aにおいて解決される。この場合は、バスレーンに対するアクセスが競合され、またバスから分離する単一レーンにアクセスが競合される。ローカルアービトレーションを用いるこのアプローチは、相互接続システムの至る所で用いられ、そのスケーラビリティのキーとなる。別の場合は、ノードから両出力バスが機能ユニットに来て、その時はアービトレーションマルチプレクサは不必要となる。
【0050】
それぞれのレーンは、独立して閉塞し、またはデータを通過させる。データは、一時に1つのレーンから消費でき、同時に1つのレーン上に注入できる。同じレーンにおける同時の注入および消費もまた可能である。それぞれのパケットがいずれのレーンに注入されるかは、インタフェースユニットにおいて決定される。
【0051】
それぞれの入力記憶装置(またはレジスタ)315および320は、データがノードからノードへと通過する時に、そのデータを記憶する。それぞれの入力記憶装置315、320は、2フリット幅のレジスタを含む。バスリソースに対する競合がない時は、1つのレジスタのみが用いられる。バスが閉塞した時は、両レジスタが用いられる。それはまた、「ヘッダにおける閉塞(block on header)」機能を実施する。これは、新しいパケットをバス上に注入できるよう、パケットをヘッダフリットにおいて閉塞させうるようにするために必要である。
【0052】
出力インタフェースユニット321、325は、両バスレーン305、310を1つのレーン330上に多重化し、レーン330は、ノード135に接続されている前記インタフェースユニットを経て、オンチップ機能ユニット105aにそれを送る。出力インタフェースユニット321、325はまた、アービトレーション機能を行い、一つのレーンがオンチップ機能ユニットにアクセスすることを許し、他のレーンを閉塞する。それぞれのノードはまた、入力インタフェースユニット335を含む。入力インタフェースユニット335は、バスレーン305、310の1つの上へパケットの多重分離を行う。それはまた、アービトレーション機能を行い、入力されつつあるパケットを、要求されたレーンが使用可能になるまで閉塞する。
【0053】
複数の中継器ユニット180は、相互接続110の長さに沿って、ある間隔で配設される。それぞれの中継器ユニット180は、データ経路上に特別なレジスタを導入するために用いられる。それはレーテンシの特別なサイクルを追加するが、タイミングの制約を満たすのが困難な場合にのみ用いられる。それぞれの中継器ユニット180は、ノードの記憶装置と同様の記憶装置を含む。その記憶装置は、単にデータを前方へ送り、また閉塞行動を実施する。中継器ユニットにおいては、スイッチングは行われない。中継器ブロックは、チップレイアウトを、より自由にする。例えば、それは、ノードの間のワイヤの長い長さを許容し、あるいは、ブロックが単一レーンに接続される単一ノードを有する場合は、中継器は他のレーン内に挿入されて、全てのレーンに対し一様なタイミング特性を与える。2つのノードの間には、1つより多くの中継器を置くことができる。
【0054】
本発明の実施例によるシステムは、プロトコルを断定できないものであり、すなわち、ノード135、140、145、150、155、160のようなデータ移送ブロック、中継器ユニット180およびTスイッチ185は、単にデータパケットを発信源インタフェースから宛先インタフェースへルーティングする。それぞれのパケットは、制御情報およびデータを含む。この情報のパッキングおよびアンパッキングは、インタフェースユニット115a、120a、125b、130b、115c、130cにおいて行われる。実施例に関しては、これらのインタフェースユニットは仮想成分インタフェースであるが、任意の他のプロトコルもカストマイズされたインタフェースユニットを作ることによりサポートすることができる。
大形のオンチップブロックは、同じバスに対しいくつかのインタフェースを有してもよい。
【0055】
インタフェースユニットのターゲットおよびイニシエータ115a、120a、125b、130b、115c、130cは、イニシエータにおいては高度仮想成分インタフェースとバスプロトコルとの間の、また、ターゲットにおいてはバスから高度仮想成分イニシエータへの変換を行う。このプロトコルは、図10に示されている高度仮想成分インタフェース側における非同期ハンドシェイクである。インタフェースユニットのイニシエータは、送信経路を含む。この経路は、高度仮想成分インタフェース通信プロトコルとバスプロトコルとの間の変換を行う。それは宛先モジュールIDまたはインタフェースIDを抽出する。また、ブロックは、それぞれのバスアドレスにおける異なるモジュール(インタフェース)IDにより、いくつかのバスに接続されてもよく、それをパケットの正しい部分内にパックし、そのモジュールIDをハードワイヤードルーティングテーブルと共に用いてレーン番号(例えば、右のものには1、左のものには0)を発生する。
【0056】
イニシエータは、データがバス上へ送られることができない時は、そのデータを高度仮想成分インタフェースにおいて閉塞する。インタフェースユニットのイニシエータはまた、応答経路を含む。この応答経路は、前に要求したデータを受け取り、バス通信プロトコルから仮想成分インタフェースプロトコルに変換する。それは、もしオンチップ仮想成分ブロックがデータを受け取ることができなければ、そのデータを閉塞する。
【0057】
インタフェースユニットのターゲットは、入来する読取りおよび書込み要求を受け取る送信経路を含む。このターゲットは、バス通信プロトコルから高度仮想成分インタフェースプロトコルへ変換する。それは、もしバス上のデータか、仮想成分インタフェースを経て受け入れ不可能ならば、そのデータを閉塞する。ターゲットはまた、読取り(および検査の目的のための書込み)要求を搬送する応答経路を含む。それは、高度仮想成分インタフェース通信プロトコルを、バスプロトコルに変換し、もしデータがバス上に送られることができなければ、そのデータを高度仮想成分インタフェースにおいて閉塞する。
【0058】
本発明の実施例において用いられる他のタイプのインタフェースユニットは、周辺仮想成分ユニットである。周辺仮想成分インタフェースと、高度仮想成分インタフェースとの主な相違は、周辺仮想成分インタフェースのデータインタフェースが高度仮想成分インタフェースよりも(4バイトまで)狭い可能性があり、周辺仮想成分インタフェースが分割トランザクションを行わないことである。
【0059】
周辺仮想成分インタフェースユニットは、イニシエータにおいて周辺仮想成分インタフェースとバスプロトコルとの間の、また、ターゲットにおいてバスプロトコルから周辺仮想成分インタフェースプロトコルへの、変換を行う。このプロトコルは、周辺仮想成分インタフェース側における非同期ハンドシェイクである。
【0060】
インタフェースユニットのイニシエータは、送信経路を含む。それはメモリアドレスから宛先モジュールIDおよび移送レーン番号を発生する。このイニシエータは、データがバス上へ送られることができない時は、周辺仮想成分インタフェースにおいてそのデータを閉塞する。イニシエータはまた、応答経路を含む。この経路は、前に要求したデータを受け取り、バス通信プロトコルから周辺仮想成分インタフェースプロトコルに変換する。それはまた、バス上のデータを、もしオンチップブロック(仮想成分ブロック)がそれを受け取るために使用できなければ、閉塞する。
【0061】
周辺仮想成分インタフェースユニットのターゲットは、入来する読取りおよび書込み要求を受け取る送信経路を含む。それは、もしバス上のデータが仮想成分インタフェースを経て受け入れ不可能ならば、そのデータを閉塞する。そのターゲットはまた、読取り(および検査の目的のための書込み)要求を搬送する応答経路を含む。それは、周辺仮想成分インタフェース通信プロトコルを、バスプロトコルに変換し、もしデータがバス上に送られることができなければ、そのデータを仮想成分インタフェースにおいて閉塞する。
【0062】
周辺仮想成分インタフェースのイニシエータは、組み合わされたイニシエータおよびターゲットを含む。これは、イニシエータの(例えば)デバッグレジスタが読取られることができるようにするためである。
【0063】
図4を参照すると、仮想成分(オンチップ)ブロックは、本発明による相互接続システムを経て互いに接続することができる。第1の仮想成分(オンチップ)ブロック425は、インタフェースユニットターゲット430に、ポイントツーポイント接続される。インタフェースユニットのターゲット430は仮想接続イニシエータインタフェース440を、オンチップブロック425の仮想成分ターゲット445に提示する。インタフェースユニットのターゲット430は、バス相互接続450に対しインタフェースするために、バスプロトコル変換ユニット448を用いる。インタフェースユニットのイニシエータ460はターゲットインタフェース470を、第2のオンチップブロック455のイニシエータ457に提示し、やはり他の側にあるプロトコル変換ユニット468を用いる。
【0064】
図1のTスイッチ185は3つのノードを結合し、単純な線形の相互接続よりも複雑な相互接続を可能にする。それぞれの入力ポートにおいて、それぞれのパケットのインタフェースIDがデコードされ、2つの可能な出力ポートを表す単一ビットに変換される。Tスイッチ内のハードワイヤードテーブルが、このデコーディングを行う。Tスイッチ上のそれぞれの入力ポートに対し、1つのそのようなテーブルが存在する。もし競合が存在すれば、出力ポートのためのアービトレーションが行われる。勝者は現在のパケットを送ってよいが、パケットを送り終わった時は負けなければならない。図5aおよび図5bは、Tスイッチの構造の例を示す。
【0065】
Tスイッチは、単方向バスレーン520、525、530のそれぞれの対に接続された、3組の入出力ポート505、510、515を含む。Tスイッチ内には、バスレーン520、525、530のそれぞれの対のためにTジャンクション535、540、545が備えられ、例えば、入力ポート515内へ来る入来バス520は、出力ポート505または510を経て出力されることができる。
【0066】
パケットは、バス上のいずれの点においてもレーンを変更しないので、Tスイッチはn個の3方向スイッチの組と見ることができ、ここでnは、単方向バスレーンの数である。Tスイッチ185は、レーン選択ユニットを含む。レーン選択ユニットは、入来パケットのモジュールIDを取り込み、Tスイッチ上の2つの可能な出力ポートに対応する1ビットの結果を発生する。Tスイッチはまた、それぞれの入力レーン上に記憶ブロックを含む。それぞれの記憶ブロックは、データフロー制御ディジットを記憶し、もし出力ポートが一時的に受け取り不可能になれば、それらのディジットを所定の場所に閉塞することを許容する。そはまた、「ヘッダにおける閉塞」機能を行い、これはスイッチングが(フロー制御ディジットレベルではなく)パケットレベルにおいて行われることを可能にする。Tスイッチはまた、出力ポートを使用する要求の間のアービトレーションのためのアービタを含む。
【0067】
初期化中に、本発明の実施例による相互接続システムは、使用可能状態にパワーアップする。ルーティング情報は、バス成分内にハードコード(hardcode)される。例えば、図6に示されているような、宛先モジュールインタフェースID(mod ID)は、パケットを別のノードにルーティングするのに必要な全てである。ノードが応答パケットを返送するためには、それは、送信側のモジュールインタフェースIDを送られていなければならない。
【0068】
処理システム内には、1つより多くの相互接続が存在する。それぞれのバス上において、ことごとくの(注入および消費ポートを含む)インタフェースは、独自のIDを有する。これらのIDは、シリコンコンパイル時にハードコードされる。
【0069】
バス(オンチップブロック)に取付けられたユニットは、リセットの直後に自由に通信を開始できる。インタフェースユニットは、動作開始の準備完了状態になるまで、(受理通知を行わないことにより)通信を延期する。
【0070】
本発明による相互接続システムは、至る所で用いられる内部プロトコルを有する。オンチップブロックに対するインタフェースにおいては、これは、ある他のプロトコル、例えば、上述の仮想成分インタフェース、に変換される。内部プロトコルは、バスプロトコルと呼ばれる。このバスプロトコルは、リソースに対する競合がない時は、バスに沿ったパケット進行のために単サイクルレーテンシを可能にし、また、競合がある時は、パケットが所定の場所に閉塞されることを可能にする。
【0071】
バスプロトコルは、全ての内部(非インタフェース/仮想成分インタフェース)データ転送のために用いられる。それは、センダ735とレシーバ730との間の5つの信号:occup705、head710、tail715、data720およびvalid725から成る。これらは図7に示されている。
【0072】
パケットは、1つまたはそれ以上のフロー制御ディジットから成る。センダが有効な信号を表明するそれぞれのサイクルにおいて、レシーバは、次の正のクロックエッジにおいてデータを受け入れなければならない。
レシーバ730はセンダ735に対し、その現在の状態について、occup信号705を用いて知らせる。これは2ビット幅の信号である。
【0073】
【表1】
【0074】
occup信号705は、センダ735に、データを送信することができるかどうか、またデータを送信できるようになった時、を知らせる。センダ735がデータフロー制御ディジットの送信を許された時は、有効信号725によりそれが認定される。
【0075】
それぞれのパケット内の第1のフロー制御ディジットは、head=「1」によりマークされる。最後のフロー制御ディジットは、tail=「1」によりマークされる。単一のフロー制御ディジットパケットは、信号head=tail=valid=「1」を有する。それぞれのノードおよびTスイッチは、これらの信号を用いて、パケットレベルにおけるスイッチングを行う。
【0076】
図8は、本発明の実施例による相互接続システムにおける閉塞行動の例を示す。occup信号が「1」にセットされ、「もしこのサイクルにおいてフロー制御ディジットを送るならば、次のサイクルには送ってはならない」を意味する。
【0077】
図9は、閉塞機構の例をもっと完全に示す。occup信号は01(2進数)にセットされ、次に10(2進数)にセットされる。センダは、occup信号が01に戻された時は、フロー制御ディジットの送信を再開することができ、−その点において、センダは現在フロー制御ディジットを送信してはおらず、それゆえセンダは次のサイクルにおいてそれを送信することができる。
【0078】
ノードとインタフェースユニットとの間の境界におけるプロトコルは、いま説明したプロトコルとは異なっており、仮想成分インタフェースにより用いられるプロトコルと同様のものである。送信インタフェースおよび受信インタフェースには、valおよびack信号が存在する。val=ack=1である時は、フロー制御ディジットは注入プロトコルのために交換される。消費(バス出力)プロトコルは、注入プロトコルと異なるが、出力の登録を可能にする(従って、チップ上のシステムへの合成および統合を簡単化する)最小の論理である。消費プロトコルは、以下のように定義される:立上りクロックエッジにおいて、もしCON BLOCK=1ならば、データは次のクロックエッジにおいて閉塞される;立上りクロックエッジにおいて、もしCON BLOCK=0ならば、データは次のクロックエッジにおいて閉塞解除される;CON BLOCKは、機能ユニットからのフロー制御(閉塞)信号である。
【0079】
もちろん、このインタフェースにおけるプロトコルは、変更することができ、バスの全体的動作には影響を与えない。
これと仮想成分インタフェースとの間の相違は、ack信号がデフォルトにより高であり、データの受信ができないサイクルにおいてのみ低が表明されることである。この制限がないと、ノードは追加のレジスタのバンクを必要とする。
【0080】
バスプロトコルは、1つまたはそれ以上のフロー制御ディジットから成る交換パケットを許容する。第1のパケットの上位部分の8ビットは宛先モジュールIDを搬送し、パケットを配信するためにバスシステムにより用いられる。トップの2ビットはまた、内部バスの目的のために用いられる。全ての他のビットフィールドにおいては、フロー制御ディジットのバッキングはバスシステムとは無関係である。
【0081】
それぞれのインタフェースユニットにおいて、仮想成分インタフェースプロトコルが用いられる。インタフェース制御フィールドおよびデータフィールドは、送信インタフェースによりバスフロー制御ディジット内にパックされ、その後受信インタフェースユニットにおいてアンパックされる。バスに対する、主たる高帯域幅インタフェースは、高度仮想成分インタフェースを用いる。高度仮想成分インタフェースの全ての機能は、OCBの内部動作を最適化するために用いられるものを除き実施される。
【0082】
仮想成分インタフェースプロトコルは、図8に示されているように、非同期ハンドシェイクを用いる。データは、VAL=ACK=1である時に有効である。バスインタフェースは、データおよび制御情報を、仮想成分インタフェースプロトコルからバス内部通信プロトコルに変換する。
【0083】
バスシステムは、制御情報とデータとを区別しない。代わりに、制御ビットおよびデータは、パケット内にパックされて宛先インタフェースユニットに送られ、そこでそれらはアンパックされ、データおよび制御に分離し返される。実施例においては、仮想成分インタフェースコンプライアントインタフェースユニットが用いられる。代わりに、異なるインタフェースユニット(例えば、ARM AMBAコンプライアントインタフェース)を用いることもできることを認識すべきである。
【0084】
テーブルIIは、本発明の実施例による相互接続システムにより用いられるデータフロー制御ディジット内のフィールドを示す。フロー制御ディジット内の全ての他の情報は、単にバスにより移送される。エンコーディングおよびデコーディングは、インタフェースユニットにより行われる。インタフェースユニットはまた、ヘッドおよびテールビットをフロー制御ディジット内に挿入し、またMOD IDを正しいビットフィールド内に挿入する。
【0085】
【表2】
【0086】
高度仮想成分インタフェースのパケットタイプは、読取り要求、書込み要求および読取り応答である。読取り要求は、単一フロー制御ディジットパケットであり、全ての関連する仮想成分インタフェースの制御フィールドは、そのフロー制御ディジット内にパックされる。書込み要求は、2つまたはそれ以上のフロー制御ディジットから成る。第1のフロー制御ディジットは、仮想成分インタフェース制御情報(例えば、アドレス)を含む。後続のフロー制御ディジットは、データおよびバイトイネーブルを含む。読取り応答は、1つまたはそれ以上のフロー制御ディジットから成る。第1の、および後続の、フロー制御ディジットは、全てデータ+仮想成分インタフェースの応答フィールド(例えば、RSCRID、RTRDIDおよびRPKTID)を含む。
【0087】
高度仮想成分インタフェースの、パケット上へのマッピングの例をここで説明する。この例は、128ビット幅のデータ経路を有するバスに対するものである。ノードは、それぞれのパケットの第1のフロー制御ディジット内のビット159:152から、宛先モジュールIDを抽出する。読取り応答パケットの場合には、これは仮想成分インタフェースのRSCRIDフィールドに対応する。
【0088】
【表3】
【0089】
周辺仮想成分インタフェースのバーストモードの読取りおよび書込みトランザクションは、バスを経ては効率的に実施されることができないので、サポートされない。この理由のために、周辺仮想成分インタフェースのEOP信号は論理「1」に固定されるべきである。どのような追加の処理ユニットまたは外部ユニットもバスに取付けることができるが、EOP信号はやはり論理「1」に固定されるべきである。この変更を行えば、ユニットは正常に作動するはずである。
【0090】
読取り要求タイプは、読取られるべきデータの32ビットのアドレスを搬送する、単一のフロー制御ディジットパケットである。読取り応答は、要求された32ビットのデータを含む、単一フロー制御ディジット応答である。書込み要求は、書込まれるべき場所の32ビットアドレス+32ビットのデータ、および4ビットのバイトイネーブルを含む、単一フロー制御ディジットパケットである。書込み応答は、読取り要求に対してと同様に書込み要求に対して応答するターゲットを阻止する。全ての追加の信号と共に、32ビット(データ)周辺仮想成分インタフェースは、バス上の69ビットを占有する。
【0091】
【表4】
【0092】
バスの内部アドレス指定機構は、システム内の全てのオンチップブロックが固定された8ビットモジュールIDを有するとの仮定に基づく。仮想成分インタフェースは、単一広域アドレス空間の使用を指定する。内部的には、バスは、システム内のそれぞれのブロックのモジュールIDに基づいてパケットを配信する。モジュールIDは8ビット幅のものである。全ての広域アドレスは8ビットのモジュールIDを含み、インタフェースユニットは、そのアドレスから単に宛先モジュールIDを抽出する。そのアドレス内におけるモジュールIDビットの場所は、前もって定められている。
【0093】
それぞれのシステムにおけるモジュールIDは、グループに分割される。それぞれのグループは、16モジュールまで含むことができる。システム内のTスイッチは、いずれの出力ポートにそれぞれのパケットを送るべきかを決定するために、グループIDを用いる。
【0094】
それぞれのグループ内には、16個までのオンチップブロックが存在でき、そのそれぞれは独自のサブIDを有する。それぞれのグループ内への16モジュールのみの含有は、バスのトポロジーを制限しない。それぞれの線形バスセクション内には、1つより多くのグループが存在できるが、異なるグループからのモジュールはインタリーブされない。Tスイッチの間には、16より多くのモジュールが存在できる。グループIDおよびサブIDの使用の唯一の目的は、Tスイッチ内のルーティングテーブルを簡単化することである。もしTスイッチが用いられていなければ、モジュールの番号付与は任意に行える。もし線形バストポロジーが用いられ、インタフェースが順次に番号を付与されていれば、テーブルの代わりに比較器を用いることができるので、これはレーン番号の発生を簡単化する。しかし、テーブルも論理の最小化の後には、もっと小さくすることができる。異なるバス上の2つのインタフェースは、同じmod ID(=インタフェースID)を有することができる。
【0095】
本発明の実施例による相互接続上の誤りトラヒックを減少させる例を、ここで説明する。正当なmod IDをもたないパケットが、インタフェースユニットに提示された時は、それはパケットの受理通知を行うが、またrerror仮想成分インタフェースフィールド内にエラーを発生する。そのパケットは、バス上へは送られない。インタフェースユニットが、それを「吸収」し、それを破壊する。
【0096】
実施例において、バスシステムブロックは与えられたプロセスにおいて、合成可能なRTLブロックと同じクロック速度で動作する。0.13μm40Gプロセッサの場合、ターゲットクロック速度は400MHzである。3つの別個のバスが存在する。それぞれのバスは、別個のパラメータ化された成分を含む。チップ上の全ての機能ユニットに接続される、64ビット幅の周辺仮想成分インタフェースバスが存在する。2つの高度仮想成分インタフェースバスが存在し、その1つは128ビットのデータ経路(それぞれの単方向レーン上に生帯域幅51.2Gbits/sec)を有し、他は256ビットデータ経路(それぞれの単方向レーン上に生帯域幅102.4Gbits/sec)を有する。この帯域幅の全ては、制御のオーバヘッドおよび要求パケットのために完全には利用できず、フロー制御ディジット内への効率的なデータのパッキングを実現することは必ずしもできない。バス上の同時のデータ転送により、帯域幅のいくらかの増加は見られるが、これはシステムシミュレーションにおいてのみ決定できる。
【0097】
実施例においては、バス上のパケットのレーテンシは、送信インタフェースユニットにおいて1サイクルであり、データが通過するバスブロック(ノードおよび中継器)毎に1サイクルであり、ノードの消費ユニットにおいては1サイクルまたは2サイクルが追加され、受信インタフェースユニットにおいては1サイクルであり、またnをフロー制御ディジットにおけるパケット長とすると、n−1サイクルである。この数字は全データ転送のためのレーテンシを与え、レーテンシがパケットサイズと共に増加することを意味する。
【0098】
ノード内の注入制御装置にプログラム可能性を導入することにより、帯域幅割当てを制御することは可能である。
パケットをバスレーンの間で交換することは不可能である。いったんパケットがバスシステムに入ると、それは宛先インタフェースユニットにおいて取り出されるまで、同じバスレーン上に留まる。バス上のパケットは、インタリーブされることは許されない。クロックサイクル毎に新しいフロー制御ディジットを注入する必要はない。換言すれば、ギャップサイクルを有することができる。これらのギャップは、パケットがバスシステム内にある時は、パケット内に留まり、帯域幅を浪費する。これらのパケットは、パケットがバスシステム内にある時は、パケット内に留まって閉塞されず、従って帯域幅を浪費する。もし閉塞されれば、確認されたデータのみが連結されるので、中間の非有効データは除去される。ギャップパケットの数を最小化するほかに、十分なFIFOバッファリングを行って、それぞれのパケットが完全に送られてしまうまで、ブロックがフロー制御ディジットの注入を控えられるように保証すること、または、ギャップを発生させないようにブロックを設計すること、が必要である。
【0099】
本発明によるシステムにおいては、(フロー制御ディジット内の)パケットの長さに制限はない。しかし、過度に大きいパケットについては考慮が必要である。その理由は、それらが大量のバスリソースを使用するからである。長いパケットは、ヘッダフロー制御ディジットのオーバヘッドのために、多数の短いパケットよりも効率的であることができる。
【0100】
本発明による相互接続システムは、要求されたデータアイテムが、それらの要求された順序でモジュールへ返送されることを保証しない。ブロックは、もし順序が問題となる場合は、パケットの再順序付けの責任を負う。これは、高度仮想成分インタフェースのpktidフィールドを用いて行われ、このフィールドは、顕著なトランザクションにタグを付け、再順序付けをする。データが、システム内の他のブロックから要求された順序でオンチップブロックに到着するとは仮定できない。順序付けが重要である場合は、受信オンチップブロックは、パケットを再順序付けできなければならない。このルールに付随する障害は、システムのデッドロックとなりやすい。
【0101】
本発明による相互接続システムは、相互接続トポロジーの選択に、かなりの柔軟性を提供する。しかし、現在は、そのトポロジー内にループを有することは賢明ではない。その理由は、ループはデッドロックの可能性を導入するからである。
【0102】
しかし、もしループが用いられるとしても、デッドロックを生じないようにルーティングテーブルをプログラムすることは可能である。これは、必要なチェックを実施するためのソフトウェアと共に、デッドロックからの自由を与えるある方法を必要とする。
【0103】
本発明による相互接続システムのさらなる利点は、パケットによりバスを飽和させても、バスに障害を起こさせないことである。それらのパケットは、最後には配信されるが、平均レーテンシはかなり増大する。もし輻そうが最大スループットよりも低く低減されれば、それは「正常動作」に復帰する。
【0104】
この点において、以下のルールを考慮すべきである。すなわち、ループはバストポロジー内にあってはならず、オンチップブロックは、順に返送されてレーテンシが重要なトランザクションに依存してはならなず、また、多重トランザクションは同じバスセグメントを使用する必要があり、最大パケットサイズは存在すべきである。上述のように、もしループが将来必要であれば、あるデッドロック防止戦略が存在しなければならない。理想的には、これは形式的証明を含む。さらに、もし順序付けが重要ならば、ブロックは、トランザクションを再順序付けできなければならない。同じレーン上を進む同じターゲットからの2つのトランザクションは、ターゲットがそれらを送ったのと同じ順序で返送される。もし要求が2つの異なるターゲットに対して行われたものとすれば、その順序付けは非決定性のものとなる。
【0105】
本発明の相互接続成分の多くは、場所およびルートが後に続く直接的RTL合成を含む。インタフェースユニットは、全体的設計の要求に依存して、オンチップブロック内、またはバスのために確保されているエリア内へ組み込まれ、例えば、バスの下には自由な多くのエリアが存在するので、機能ブロックエリアを追加するよりもこのエリアを使用すれば、全体的チップエリアが減少するので有意義である。
【0106】
相互接続システムは、システムオンチップ(system−on−chip)プラットホームの基礎を形成する。システムを総合的にチップ上に配置するプロセスを加速するために、ノードが、システムクロックリセット信号の分配を処理するために必要な「フック」を含むことが提案された。まず個々のチップを考察すると、イニシエータとターゲットとの間のトランザクションおよび応答のルーティングは、相互接続システムに接続するインタフェースブロック、およびシステム内に介在するTスイッチにより行われる。ブロックのアドレス指定は、ハードワイヤードのもので、かつ地理的なものであり、ルーティング情報は、チップの集積時に、インタフェースおよびTスイッチ内にコンパイルされる。前記プラットホームは、チップレベルおよびチップ上のブロックレベルにおける、あるモジュール性を必要とする。従って、それらが、いずれの他のチップまたはそれらの内部機構に接続されるかは、チップ自身内にハードコードすることはできない。その理由は、これは、異なるラインカード上において変化するからである。
【0107】
しかし、本発明によれば、それぞれのチップに、ある簡単なルールを与え、またこれをサポートするチップのトポロジーおよび列挙法を設計することにより、ハードワイヤードルーティング情報を用いてチップ配置の柔軟性を提供することができる。これは、簡単性およびチップ自身内におけるルーティング機構への自然な拡張であることの二重の利益を有する。
【0108】
図11は、線形チップ配置の例を示す。もちろん、本発明により異なるトポロジーを実現できることも認識すべきである。このような線形配置においては、チップ1100(0)ないし(2)などは、順次に番号付与することが容易であるので、いずれのチップのいずれのブロックも、トランザクションがその宛先に到着するために、物理アドレスのチップIDフィールド内に示されているように、相互接続1110を「上って」または「下って」ルーティングされなければならないことを知る。これは、ブロックが、同じチップ上の別のブロックまでルーティングするために行うプロセスと正確に同じである。この場合、2レベルの決定が用いられる。もし「現チップ」内であればブロックIDに基づいてルーティングし、そうでなければチップIDに基づいてルーティングする。
【0109】
図12には、別のトポロジーが示されている。それは、平行に配置された第1のバスレーン1201および第2のバスレーン1202を含む。第1および第2のバスレーンは、本発明の実施例の相互接続システムに対応する。複数のマルチスレッドアレイプロセッサ(MTAP)1210は、2つのバスレーン1201、1202の間に接続されている。ネットワーク入力装置1220、コレクタ装置1230、ディストリビュータ装置1240、ネットワーク出力装置1250は、第2のバスレーン1202に接続され、テーブルルックアップエンジン1260は第1のバスレーン1201に接続されている。これらのバスレーンに接続されている諸装置の動作の詳細は、ここでは説明しない。
【0110】
図12に示されているように、別のトポロジーにおいては、第1のバスレーン1201(例えば、256ビット幅のもの)は、高速経路のパケットデータのために専用される。第2のバスレーン1202(例えば、258ビット幅のもの)は、テーブルルックアップ、命令フェッチ、外部メモリアクセス、などのような、一般的非パケットデータのために用いられる。ブロックアクセスバスレーン1201、1202は、AVCIプロトコルを用いる。ブロックの構成および状態レジスタの読書きのための、追加のバスレーン(ここには図示せず)を用いてもよい。このレーンにアクセスするブロックは、PVCIプロトコルを用いる。
【0111】
さらに一般的には、ブロックが相互接続に接続される場所、およびブロックが用いるレーンは、選択されることができる。フロアプランニングの制約における許容度は、もちろん考慮しなければならない。例えば、ブロックは多重バスインタフェースを有することができる。レーン幅は、システムの帯域幅要求を満たすように構成することができる。
【0112】
本発明の相互接続システムは、インタフェース間のポイントツーポイント接続および分散アービトレーションを用いるので、競合または干渉なしに同時に通信するいくつかの機能ブロックの対を有することができる。ブロック間のトラヒックは、そのトラヒックが共用バスセグメントに沿って同じ方向に進む場合に限り干渉できる。この状況は、適切なレイアウトを選択することにより回避できる。すなわち、バス競合は、高速経路のパケットフローにおいて回避できる。これは、予測可能で信頼性のあるパフォーマンスを実現し、かつ相互接続の過提供を回避するために重要である。
【0113】
上述の例は、パケットデータがNIP−DIS−MTAP−COL−NOPを経てバスレーン上を左から右へ流れるので、高速経路における競合を回避する。パケットは、いずれのバスセグメントをも1回よりも多く通過しないので、バス競合は起こらない。MTAPプロセッサの間では、1つが一時に送信または受信しつつあるのみなので、干渉は起こらない。バス競合を回避するもう1つの方法は、図13に示されているように、MTAPプロセッサを主データ経路を外れた「支線」上に配置することである。
【0114】
このトポロジーは、同じバスセグメント1300上を反対方向に進むトラヒックが干渉しない事実を利用するために、Tジャンクション1305を用いている。Tジャンクションブロック1305の使用は、レイアウトおよびフロアプランニングの制約を考慮するバストポロジーの設計を容易にする。
【0115】
最低(ハードウェア)レベルの抽象において、本発明の相互接続システムは、好ましくは、高度仮想成分インタフェースのトランザクションをサポートし、これらのトランザクションは単に、イニシエータインタフェースからターゲットインタフェースへ送られた、仮想成分インタフェース規格に定められている可変サイズメッセージであり、その後には後刻の応答が可能な限り続く。この応答は遅延するので、これは仮想成分インタフェースシステムにおける分割トランザクションと呼ばれる。ネットワーク処理システムアーキテクチャは、ブロック間通信プロトコルにおいて2つの高レベルの抽象、すなわち、チャンクおよび抽象データグラム(しばしば単にデータグラムと呼ばれる)を定義する。チャンクは、1つのブロックからもう1つのブロックへ転送されるべき、かなり小量のデータを表す論理エンティティである。抽象データグラムは、アプリケーションのための自然単位のデータを表す論理エンティティである。
【0116】
ネットワーク処理のアプリケーションにおいては、抽象データグラムは、ほとんど常にネットワークのデータグラムまたはパケットに対応する。区別は、ネットワーク化以外の他のアプリケーションにおけるアーキテクチャブロックの使用を考慮するために行われる。チャンクは、CSIX Cフレームにいくらか類似しており、同様の目的のため、すなわち、便利な小単位のデータ転送を行うために用いられる。チャンクは、定められた最大サイズ、一般に約512バイト、を有するが、データグラムは、遥かに大きい、一般に9Kバイトまでのサイズであることができる。正確なサイズは構成可能である。データグラムが、1つのブロックからもう1つのブロックへ転送される必要がある時は、実際の転送は、チャンクのシーケンスを送ることにより行われる。これらのチャンクは、バスインタフェースにおいて、一連のAVCIトランザクション内にパッケージ化される。
【0117】
本発明の実施例によるシステムアドレス指定スキームを、ここでさらに詳細に説明する。本発明の実施例によるシステムは、1つより多くのチップにおいて実施されるサブシステムを含む。
【0118】
まず、個々のチップを考察すると、イニシエータとターゲットとの間の、トランザクションおよび応答のルーティングは、相互接続自身に接続されたインタフェースブロック、および相互接続内に介在するTスイッチ素子により行われる。ブロックの、本発明の実施例によるアドレス指定は、ハードワイヤードのもので、かつ地理的なものであり、ルーティング情報は、チップの集積時に、インタフェースユニット、Tスイッチおよびノード素子ロジック内にコンパイルされる。
【0119】
インタフェースIDは、64ビットの物理アドレスの上位部分を占有し、下位ビットはブロック内においてオフセットされる。追加物理ビットは、マルチチップへの拡張をサポートするチップID用に保存される。
【0120】
本発明の実施例によるプラットホームは、チップレベルおよびチップ上のブロックレベルにおける、あるモジュール性を必要とし、それらが、いずれの他のチップまたはそれらのチップの内部機構に接続されるかの知識は、これが異なるラインカード上において変化するために、ハードコードすることはできない。これは、1つのチップ内のトランザクションのためのインタフェースユニット内に存在するものと同じハードワイヤードバスルーティング情報スキームの使用を妨げる。
【0121】
しかし、それぞれのチップに、ある簡単なルールを与え、またこれをサポートするチップのトポロジーおよび列挙法を設計することにより、ハードワイヤードルーティング情報を用いてチップ配置の柔軟性を提供することができる。これは、簡単性およびチップ自身内におけるルーティング機構への自然な拡張であることの二重の利益を有する。
【0122】
図14および図15には、パケットキューメモリが2つのメモリハブチップの周囲に実施された、トラヒックハンドラサブシステムの例が示されている。
この例において、4つのチップは他のチップに対する4つの接続を有する。この結果、1つのチップから次のチップへ、トランザクションがとるルートに関しあいまいさを生じる可能性がある。従って、相互接続内にプログラム可能なルーティング機能を含める必要なしに、ハードウェアおよびソフトウェアを適切に構成することにより、トランザクションのフローを制御する必要がある。
【0123】
これは、チップIDを、単一の番号ではなくx、y座標とすることにより行われる。例えば、チップ1401のチップIDは4、2であり、チップ1403は5、1であり、チップ1404は5、3であり、チップ1402は6、2である。簡単なハードワイヤードルールが、別のチップを宛先とするトランザクションの次のホップをどのようにルーティングすべきかに関して適用される。このようにして、ローカルルールが所望のトランザクションフローを与えるように、諸チップを仮想「格子」上に配置する。この格子は、所望の効果を得るために、ギャップまたは転位を残すことにより「ひずませる」ことができる。
【0124】
それぞれのチップは、それが有する外部ポートの数およびそれらのポートのN、S、E、Wの羅針盤方位への割当てを含む、チップ自身についての完全な知識を有する。この知識は、インタフェースユニットおよびTスイッチ内へ送られる。チップは、そのチップに対しいずれの他のチップが接続されているか、または他のチップのx、y座標、についての知識は全くもたない。
【0125】
それぞれのチップにおけるローカルルールは、次の通りである。
1.トランザクションは、その相対格子位置と最小の角をなすように、インタフェース上においてルートを発せられる。
2.結合の場合、N−SインタフェースはE−Wよりも好ましい。
【0126】
これらのルールを上述の4つのチップの例に適用すると、到着チップおよびディスパッチチップ1401、1402を通る主水平軸に沿ったトランザクションは、y=2とし、単にx座標上における上り/下りを用いてルーティングされる。
【0127】
到着またはディスパッチチップ1401、1402から、メモリハブ1403、1404の一方へのトランザクションは、45度の角を有し、第2のルールが適用されて、これらをE−WではなくN−Sでルーティングする。
【0128】
メモリハブ1403、1404から任意の他のチップへの応答は、他のチップがx=5でないので、明らかにE/Wの選択を行う。
適切なチップ座標の選択および上述のルールの適用により表現できないチップトポロジーまたはトランザクションフローは、存在しないと推測される。
【0129】
本発明の方法およびシステムの実施例を添付図面に示し、また以上の詳細な説明において説明したが、本発明は、開示した実施例に制限されることはなく、以下の特許請求の範囲に記載されている本発明の範囲から逸脱することなく、さまざまな変形、改変が可能であることを理解すべきである。
【図面の簡単な説明】
【0130】
【図1】本発明の実施例による相互接続システムを組み込んだシステムのブロック概略図である。
【図2】図1の仮想成分インタフェースシステムのイニシエータおよびターゲットを示すブロック概略図である。
【図3】図1に示されている相互接続システムのノードのブロック概略図である。
【図4】図1に示されているシステムの仮想成分の間の、本発明による相互接続上における接続のブロック概略図である。
【図5a】図1のTスイッチの代表的構造の図である。
【図5b】図5aのTスイッチの内部接続を示す図である。
【図6】図1のシステムのモジュールID(インタフェースID)エンコーディングを示す。
【図7】本発明の実施例による相互接続システムにおけるハンドシェイキング信号を示す。
【図8】occup〔1:0〕=01である時の、本発明の実施例である相互接続システムの閉塞行動を示す。
【図9】本発明の実施例による相互接続システムの2サイクルの間の閉塞を示す。
【図10】本発明の実施例による仮想成分インタフェースハンドシェイクを示す。
【図11】本発明の実施例によるシステムの線形チップ配置を示す。
【図12】本発明の相互接続システムの概略ブロック図であり、別のトポロジーを示している。
【図13】本発明の相互接続システムの概略ブロック図であり、さらなる別のトポロジーを示している。
【図14】本発明の実施例によるトラヒック処理サブシステムの例を示す。
【図15】本発明の実施例の方法による仮想格子に基づきチップを位置付けするシステムを示す。
【図16】本発明の実施例の方法によるトランザクションのルーティングを示す。
Claims (30)
- 複数の機能ユニットを接続する相互接続システムにおいて、前記相互接続システムは、複数のノードであってそれぞれのノードが機能ユニットと通信する前記複数のノードを含み、前記相互接続システムは機能ユニットの間で複数のデータパケットを移送し、それぞれのデータパケットは、ノードが前記データパケットを前記相互接続システムを経て送ることを可能にする前記データパケットに関連するルーティング情報を有する、前記相互接続システム。
- 複数の機能ユニットを相互接続しかつ複数のデータパケットを移送する相互接続システムにおいて、前記相互接続システムは、複数のノードであってそれぞれのノードが機能ユニットと通信する前記複数のノードを含み、第1のノードと第2のノードとの間の前記データパケットの移送中に、前記第1のノードと前記第2のノードとの間の前記相互接続システムの部分のみが起動される、前記相互接続システム。
- 複数の機能ユニットを相互接続する相互接続システムにおいて、それぞれの機能ユニットはインタフェースユニットを経て前記相互接続システムに接続され、前記相互接続システムは複数のノードを含み、前記相互接続システムは複数のデータパケットを移送し、それぞれのインタフェースユニットは前記データパケットを移送するプロトコルおよび前記機能ユニットのプロトコルを変換する、前記相互接続システム。
- 複数の機能ユニットを相互接続しかつ複数のデータパケットを前記機能ユニットの間で移送する相互接続システムにおいて、アービトレーションがそれぞれの機能ユニットへ分散される、前記相互接続システム。
- それぞれのデータパケットは、ノードが前記データパケットを前記相互接続システムを経て送ることを可能にする前記データパケットに関連するルーティング情報を有する、請求項2から請求項4までのいずれかに記載の相互接続システム。
- 第1のノードと第2のノードとの間のデータパケットの移送中に、前記第1のノードと前記第2のノードとの間の前記相互接続システムの部分のみが起動される、請求項1、請求項3、または請求項4のいずれかに記載の相互接続システム。
- 前記相互接続システムはプロトコルを断定できないものである、請求項1、請求項2、または請求項4に記載の相互接続システム。
- アービトレーションは前記機能ユニット間で分散される、請求項1から請求項3までのいずれかに記載の相互接続システム。
- 前記相互接続に沿って所定距離の間隔をおいた複数の中継器ユニットを含み、前記データパケットは単一クロックサイクル中に、連続した中継器ユニットおよび/またはノードの間で移送されるようになっている、請求項1から請求項8までのいずれかに記載の相互接続システム。
- 前記データパケットは、前記ノードおよび/または中継器ユニットの間でパイプライン処理される、請求項9記載の相互接続システム。
- それぞれの中継器ユニットは、前記相互接続の閉塞時にデータを圧縮する手段を含む、請求項9または請求項10記載の相互接続システム。
- 前記ルーティング情報は宛先のx、y座標を含む、請求項1から請求項11までのいずれかに記載の相互接続システム。
- 前記相互接続の長さに沿ってのクロッキングは分散される、請求項1から請求項12までのいずれかに記載の相互接続システム。
- それぞれのノードは入力バッファ、注入制御および/または消費制御を含む、請求項1から請求項13までのいずれかに記載の相互接続システム。
- それぞれのノードは同時にデータを注入および出力できる、請求項14記載の相互接続システム。
- 前記相互接続システムは複数のバスを含む、請求項1から請求項15までのいずれかに記載の相互接続システム。
- それぞれのノードは前記複数のバスの少なくとも1つに接続されている、請求項16記載の相互接続システム。
- それぞれのバスの少なくとも部分は1対の単方向バスレーンを含む、請求項16または請求項17記載の相互接続システム。
- データはそれぞれのバスレーン上を反対方向に移送される、請求項15記載の相互接続システム。
- 少なくとも1つのTスイッチを含み、該Tスイッチはそれぞれのデータパケットに関連する前記ルーティング情報から前記データパケットを移送する方向を決定する、請求項1から請求項19までのいずれかに記載の相互接続システム。
- 前記データパケットの配信は保証されている、請求項1から請求項20までのいずれかに記載の相互接続システム。
- データパケットを機能ユニットの間でルーティングする方法において、それぞれのデータパケットはそれに関連するルーティング情報を有し、前記方法は、
(a)前記ルーティング情報を読取るステップと、
(b)前記ルーティング情報から前記データパケットを移送する方向を決定するステップと、
(c)前記データパケットをステップ(b)において決定された方向に移送するステップと、
を含む前記方法。 - 請求項1から請求項21までのいずれかに記載の前記相互接続システムを組み込んだ処理システム。
- それぞれの機能ユニットはインタフェースユニットを経てノードに接続されている、請求項23記載のシステム。
- それぞれのインタフェースユニットは、前記相互接続システムへ移送されるべき、また前記相互接続システムから受け取られるべきデータのための前記プロトコルをセットする手段を含む、請求項24記載のシステム。
- 前記機能ユニットは分散アービトレーションを用いて前記相互接続システムにアクセスする、請求項24または請求項25記載のシステム。
- それぞれの機能ユニットは、再使用可能なシステムのオンチップ機能ユニットを含む、請求項24から請求項26までのいずれかに記載のシステム。
- 請求項1から請求項21までのいずれかに記載の前記相互接続システムを組み込んだ集積回路。
- 複数のチップを含む総合システムにおいて、それぞれのチップは請求項1から請求項21までのいずれかに記載の前記相互接続システムを組み込み、前記相互接続システムは前記複数のチップを相互接続する前記総合システム。
- 複数のデータパケットを相互接続システムを経て移送する方法において、前記相互接続システムは複数のノードを含み、前記方法は、
データパケットを第1のノードと第2のノードとの間で移送するステップと、
移送中に、前記第1のノードと前記第2のノードとの間の前記相互接続システムの部分のみを起動するステップと、
を含む前記方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0103678A GB0103678D0 (en) | 2001-02-14 | 2001-02-14 | Network processing |
GB0103687A GB0103687D0 (en) | 2001-02-14 | 2001-02-14 | Network processing-architecture II |
GB0121790A GB0121790D0 (en) | 2001-02-14 | 2001-09-10 | Network processing systems |
PCT/GB2002/000662 WO2002065700A2 (en) | 2001-02-14 | 2002-02-14 | An interconnection system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004525449A true JP2004525449A (ja) | 2004-08-19 |
Family
ID=27256074
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002564715A Pending JP2004524617A (ja) | 2001-02-14 | 2002-02-14 | クロック分配システム |
JP2002564890A Pending JP2004525449A (ja) | 2001-02-14 | 2002-02-14 | 相互接続システム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002564715A Pending JP2004524617A (ja) | 2001-02-14 | 2002-02-14 | クロック分配システム |
Country Status (6)
Country | Link |
---|---|
US (10) | US20020159466A1 (ja) |
JP (2) | JP2004524617A (ja) |
CN (2) | CN1613041A (ja) |
AU (1) | AU2002233500A1 (ja) |
GB (5) | GB2390506B (ja) |
WO (2) | WO2002065700A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005182818A (ja) * | 2003-12-17 | 2005-07-07 | Microsoft Corp | オンチップバス |
JP2009524952A (ja) * | 2006-01-27 | 2009-07-02 | エフテーエス コンピューターテヒニク ゲゼルシャフト ミット ベシュレンクテル ハフツング | 時間制御型のセキュアな通信 |
WO2013141290A1 (ja) * | 2012-03-23 | 2013-09-26 | 株式会社Mush-A | データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法 |
Families Citing this family (271)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7549056B2 (en) | 1999-03-19 | 2009-06-16 | Broadcom Corporation | System and method for processing and protecting content |
EP1356653B1 (en) * | 2001-01-24 | 2011-07-20 | Broadcom Corporation | Method for processing multiple security policies applied to a data packet structure |
US20020159466A1 (en) * | 2001-02-14 | 2002-10-31 | John Rhoades | Lookup engine |
US7383421B2 (en) * | 2002-12-05 | 2008-06-03 | Brightscale, Inc. | Cellular engine for a data processing system |
US7107478B2 (en) * | 2002-12-05 | 2006-09-12 | Connex Technology, Inc. | Data processing system having a Cartesian Controller |
US20030078997A1 (en) * | 2001-10-22 | 2003-04-24 | Franzel Kenneth S. | Module and unified network backplane interface for local networks |
FI113113B (fi) | 2001-11-20 | 2004-02-27 | Nokia Corp | Menetelmä ja laite integroitujen piirien ajan synkronoimiseksi |
US7055123B1 (en) * | 2001-12-31 | 2006-05-30 | Richard S. Norman | High-performance interconnect arrangement for an array of discrete functional modules |
US6836808B2 (en) * | 2002-02-25 | 2004-12-28 | International Business Machines Corporation | Pipelined packet processing |
US7415723B2 (en) * | 2002-06-11 | 2008-08-19 | Pandya Ashish A | Distributed network security system and a hardware processor therefor |
US7536462B2 (en) * | 2002-06-11 | 2009-05-19 | Pandya Ashish A | Memory system for a high performance IP processor |
US7408957B2 (en) * | 2002-06-13 | 2008-08-05 | International Business Machines Corporation | Selective header field dispatch in a network processing system |
US8015303B2 (en) * | 2002-08-02 | 2011-09-06 | Astute Networks Inc. | High data rate stateful protocol processing |
US7684400B2 (en) * | 2002-08-08 | 2010-03-23 | Intel Corporation | Logarithmic time range-based multifield-correlation packet classification |
US7360007B2 (en) * | 2002-08-30 | 2008-04-15 | Intel Corporation | System including a segmentable, shared bus |
US20040066779A1 (en) * | 2002-10-04 | 2004-04-08 | Craig Barrack | Method and implementation for context switchover |
US8176298B2 (en) | 2002-10-08 | 2012-05-08 | Netlogic Microsystems, Inc. | Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline |
US9088474B2 (en) * | 2002-10-08 | 2015-07-21 | Broadcom Corporation | Advanced processor with interfacing messaging network to a CPU |
US7627721B2 (en) | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
US8478811B2 (en) | 2002-10-08 | 2013-07-02 | Netlogic Microsystems, Inc. | Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip |
US7924828B2 (en) * | 2002-10-08 | 2011-04-12 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for fast packet queuing operations |
US7334086B2 (en) | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US20050044324A1 (en) * | 2002-10-08 | 2005-02-24 | Abbas Rashid | Advanced processor with mechanism for maximizing resource usage in an in-order pipeline with multiple threads |
US7961723B2 (en) * | 2002-10-08 | 2011-06-14 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for enforcing ordering between information sent on two independent networks |
US7346757B2 (en) | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
US8015567B2 (en) | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
US20050033831A1 (en) * | 2002-10-08 | 2005-02-10 | Abbas Rashid | Advanced processor with a thread aware return address stack optimally used across active threads |
US7984268B2 (en) | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
US8037224B2 (en) | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
US8151278B1 (en) | 2002-10-17 | 2012-04-03 | Astute Networks, Inc. | System and method for timer management in a stateful protocol processing system |
US7814218B1 (en) | 2002-10-17 | 2010-10-12 | Astute Networks, Inc. | Multi-protocol and multi-format stateful processing |
US7596621B1 (en) * | 2002-10-17 | 2009-09-29 | Astute Networks, Inc. | System and method for managing shared state using multiple programmed processors |
DE60233145D1 (de) * | 2002-10-31 | 2009-09-10 | Alcatel Lucent | Verfahren zur Bearbeitung von Datenpaketen auf Schicht Drei in einer Telekommunikationsvorrichtung |
US7715392B2 (en) * | 2002-12-12 | 2010-05-11 | Stmicroelectronics, Inc. | System and method for path compression optimization in a pipelined hardware bitmapped multi-bit trie algorithmic network search engine |
JP4157403B2 (ja) * | 2003-03-19 | 2008-10-01 | 株式会社日立製作所 | パケット通信装置 |
US8477780B2 (en) * | 2003-03-26 | 2013-07-02 | Alcatel Lucent | Processing packet information using an array of processing elements |
US8539089B2 (en) * | 2003-04-23 | 2013-09-17 | Oracle America, Inc. | System and method for vertical perimeter protection |
WO2004099999A2 (en) | 2003-05-07 | 2004-11-18 | Koninklijke Philips Electronics N.V. | Processing system and method for transmitting data |
US7558268B2 (en) * | 2003-05-08 | 2009-07-07 | Samsung Electronics Co., Ltd. | Apparatus and method for combining forwarding tables in a distributed architecture router |
US7500239B2 (en) * | 2003-05-23 | 2009-03-03 | Intel Corporation | Packet processing system |
US20050108518A1 (en) * | 2003-06-10 | 2005-05-19 | Pandya Ashish A. | Runtime adaptable security processor |
US7349958B2 (en) * | 2003-06-25 | 2008-03-25 | International Business Machines Corporation | Method for improving performance in a computer storage system by regulating resource requests from clients |
US7174398B2 (en) * | 2003-06-26 | 2007-02-06 | International Business Machines Corporation | Method and apparatus for implementing data mapping with shuffle algorithm |
US7702882B2 (en) * | 2003-09-10 | 2010-04-20 | Samsung Electronics Co., Ltd. | Apparatus and method for performing high-speed lookups in a routing table |
CA2442803A1 (en) * | 2003-09-26 | 2005-03-26 | Ibm Canada Limited - Ibm Canada Limitee | Structure and method for managing workshares in a parallel region |
US7886307B1 (en) * | 2003-09-26 | 2011-02-08 | The Mathworks, Inc. | Object-oriented data transfer system for data sharing |
US7120815B2 (en) * | 2003-10-31 | 2006-10-10 | Hewlett-Packard Development Company, L.P. | Clock circuitry on plural integrated circuits |
US7634500B1 (en) * | 2003-11-03 | 2009-12-15 | Netlogic Microsystems, Inc. | Multiple string searching using content addressable memory |
WO2005057964A1 (en) * | 2003-11-26 | 2005-06-23 | Cisco Technology, Inc. | Method and apparatus to inline encryption and decryption for a wireless station |
US6954450B2 (en) * | 2003-11-26 | 2005-10-11 | Cisco Technology, Inc. | Method and apparatus to provide data streaming over a network connection in a wireless MAC processor |
US7058424B2 (en) * | 2004-01-20 | 2006-06-06 | Lucent Technologies Inc. | Method and apparatus for interconnecting wireless and wireline networks |
GB0403237D0 (en) * | 2004-02-13 | 2004-03-17 | Imec Inter Uni Micro Electr | A method for realizing ground bounce reduction in digital circuits adapted according to said method |
US7903777B1 (en) | 2004-03-03 | 2011-03-08 | Marvell International Ltd. | System and method for reducing electromagnetic interference and ground bounce in an information communication system by controlling phase of clock signals among a plurality of information communication devices |
US20050216625A1 (en) * | 2004-03-09 | 2005-09-29 | Smith Zachary S | Suppressing production of bus transactions by a virtual-bus interface |
US7478109B1 (en) * | 2004-03-15 | 2009-01-13 | Cisco Technology, Inc. | Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes |
KR100990484B1 (ko) * | 2004-03-29 | 2010-10-29 | 삼성전자주식회사 | 직렬 버스 통신을 위한 송신 클럭 신호 발생기 |
US20050254486A1 (en) * | 2004-05-13 | 2005-11-17 | Ittiam Systems (P) Ltd. | Multi processor implementation for signals requiring fast processing |
DE102004035843B4 (de) * | 2004-07-23 | 2010-04-15 | Infineon Technologies Ag | Router-Netzwerkprozessor |
GB2417105B (en) | 2004-08-13 | 2008-04-09 | Clearspeed Technology Plc | Processor memory system |
US7913206B1 (en) * | 2004-09-16 | 2011-03-22 | Cadence Design Systems, Inc. | Method and mechanism for performing partitioning of DRC operations |
US7508397B1 (en) * | 2004-11-10 | 2009-03-24 | Nvidia Corporation | Rendering of disjoint and overlapping blits |
US8170019B2 (en) * | 2004-11-30 | 2012-05-01 | Broadcom Corporation | CPU transmission of unmodified packets |
US20060156316A1 (en) * | 2004-12-18 | 2006-07-13 | Gray Area Technologies | System and method for application specific array processing |
US20060212426A1 (en) * | 2004-12-21 | 2006-09-21 | Udaya Shakara | Efficient CAM-based techniques to perform string searches in packet payloads |
US7769858B2 (en) * | 2005-02-23 | 2010-08-03 | International Business Machines Corporation | Method for efficiently hashing packet keys into a firewall connection table |
US7818705B1 (en) * | 2005-04-08 | 2010-10-19 | Altera Corporation | Method and apparatus for implementing a field programmable gate array architecture with programmable clock skew |
US8555166B2 (en) * | 2005-05-20 | 2013-10-08 | Hillcrest Laboratories, Inc. | Dynamic hyperlinking approach |
EP1891497B1 (en) * | 2005-06-01 | 2017-04-19 | Teklatech A/S | A method and an apparatus for providing timing signals to a number of circuits, an integrated circuit and a node |
US7373475B2 (en) * | 2005-06-21 | 2008-05-13 | Intel Corporation | Methods for optimizing memory unit usage to maximize packet throughput for multi-processor multi-threaded architectures |
JP4797482B2 (ja) * | 2005-07-20 | 2011-10-19 | ブラザー工業株式会社 | 配線基板及び配線基板の製造方法 |
US20070086456A1 (en) * | 2005-08-12 | 2007-04-19 | Electronics And Telecommunications Research Institute | Integrated layer frame processing device including variable protocol header |
US8325768B2 (en) * | 2005-08-24 | 2012-12-04 | Intel Corporation | Interleaving data packets in a packet-based communication system |
US7904852B1 (en) | 2005-09-12 | 2011-03-08 | Cadence Design Systems, Inc. | Method and system for implementing parallel processing of electronic design automation tools |
US8218770B2 (en) * | 2005-09-13 | 2012-07-10 | Agere Systems Inc. | Method and apparatus for secure key management and protection |
US7353332B2 (en) * | 2005-10-11 | 2008-04-01 | Integrated Device Technology, Inc. | Switching circuit implementing variable string matching |
US7551609B2 (en) * | 2005-10-21 | 2009-06-23 | Cisco Technology, Inc. | Data structure for storing and accessing multiple independent sets of forwarding information |
US7451293B2 (en) * | 2005-10-21 | 2008-11-11 | Brightscale Inc. | Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing |
US7835359B2 (en) * | 2005-12-08 | 2010-11-16 | International Business Machines Corporation | Method and apparatus for striping message payload data over a network |
KR20080085189A (ko) * | 2006-01-10 | 2008-09-23 | 브라이트스케일, 인크. | 병렬 프로세싱 시스템에서 멀티미디어 데이터의 알고리즘단계들을 프로세싱하기 위한 방법 및 장치 |
US20070162531A1 (en) * | 2006-01-12 | 2007-07-12 | Bhaskar Kota | Flow transform for integrated circuit design and simulation having combined data flow, control flow, and memory flow views |
KR20070088190A (ko) * | 2006-02-24 | 2007-08-29 | 삼성전자주식회사 | 멀티미디어 데이터 처리를 위한 서브워드 병렬 처리 방법 |
EP2000973B1 (en) * | 2006-03-30 | 2013-05-01 | NEC Corporation | Parallel image processing system control method and apparatus |
US7617409B2 (en) * | 2006-05-01 | 2009-11-10 | Arm Limited | System for checking clock-signal correspondence |
US8390354B2 (en) * | 2006-05-17 | 2013-03-05 | Freescale Semiconductor, Inc. | Delay configurable device and methods thereof |
US8041929B2 (en) * | 2006-06-16 | 2011-10-18 | Cisco Technology, Inc. | Techniques for hardware-assisted multi-threaded processing |
JP2008004046A (ja) * | 2006-06-26 | 2008-01-10 | Toshiba Corp | リソース管理装置及びそのためのプログラム |
US7584286B2 (en) | 2006-06-28 | 2009-09-01 | Intel Corporation | Flexible and extensible receive side scaling |
US8448096B1 (en) | 2006-06-30 | 2013-05-21 | Cadence Design Systems, Inc. | Method and system for parallel processing of IC design layouts |
US7516437B1 (en) * | 2006-07-20 | 2009-04-07 | Xilinx, Inc. | Skew-driven routing for networks |
CN1909418B (zh) * | 2006-08-01 | 2010-05-12 | 华为技术有限公司 | 通用无线接口的时钟分配装置及实现速率切换的方法 |
US20080040214A1 (en) * | 2006-08-10 | 2008-02-14 | Ip Commerce | System and method for subsidizing payment transaction costs through online advertising |
JP4846486B2 (ja) * | 2006-08-18 | 2011-12-28 | 富士通株式会社 | 情報処理装置およびその制御方法 |
CA2557343C (en) * | 2006-08-28 | 2015-09-22 | Ibm Canada Limited-Ibm Canada Limitee | Runtime code modification in a multi-threaded environment |
US20080059762A1 (en) * | 2006-09-01 | 2008-03-06 | Bogdan Mitu | Multi-sequence control for a data parallel system |
US20080244238A1 (en) * | 2006-09-01 | 2008-10-02 | Bogdan Mitu | Stream processing accelerator |
US9563433B1 (en) | 2006-09-01 | 2017-02-07 | Allsearch Semi Llc | System and method for class-based execution of an instruction broadcasted to an array of processing elements |
WO2008027567A2 (en) * | 2006-09-01 | 2008-03-06 | Brightscale, Inc. | Integral parallel machine |
US20080059763A1 (en) * | 2006-09-01 | 2008-03-06 | Lazar Bivolarski | System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data |
US20080055307A1 (en) * | 2006-09-01 | 2008-03-06 | Lazar Bivolarski | Graphics rendering pipeline |
US20080059467A1 (en) * | 2006-09-05 | 2008-03-06 | Lazar Bivolarski | Near full motion search algorithm |
US7657856B1 (en) | 2006-09-12 | 2010-02-02 | Cadence Design Systems, Inc. | Method and system for parallel processing of IC design layouts |
US7783654B1 (en) | 2006-09-19 | 2010-08-24 | Netlogic Microsystems, Inc. | Multiple string searching using content addressable memory |
JP4377899B2 (ja) * | 2006-09-20 | 2009-12-02 | 株式会社東芝 | リソース管理装置及びプログラム |
US8010966B2 (en) * | 2006-09-27 | 2011-08-30 | Cisco Technology, Inc. | Multi-threaded processing using path locks |
US8179896B2 (en) * | 2006-11-09 | 2012-05-15 | Justin Mark Sobaje | Network processors and pipeline optimization methods |
US9141557B2 (en) | 2006-12-08 | 2015-09-22 | Ashish A. Pandya | Dynamic random access memory (DRAM) that comprises a programmable intelligent search memory (PRISM) and a cryptography processing engine |
US7996348B2 (en) | 2006-12-08 | 2011-08-09 | Pandya Ashish A | 100GBPS security and search architecture using programmable intelligent search memory (PRISM) that comprises one or more bit interval counters |
JP4249780B2 (ja) * | 2006-12-26 | 2009-04-08 | 株式会社東芝 | リソースを管理する装置、およびプログラム |
US7676444B1 (en) | 2007-01-18 | 2010-03-09 | Netlogic Microsystems, Inc. | Iterative compare operations using next success size bitmap |
US8190856B2 (en) * | 2007-03-06 | 2012-05-29 | Nec Corporation | Data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled |
JP2009086733A (ja) * | 2007-09-27 | 2009-04-23 | Toshiba Corp | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
US8548777B2 (en) * | 2007-09-28 | 2013-10-01 | Rockwell Automation Technologies, Inc. | Automated recommendations from simulation |
US7801710B2 (en) * | 2007-09-28 | 2010-09-21 | Rockwell Automation Technologies, Inc. | Simulation controls for model variability and randomness |
US20090089031A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Integrated simulation of controllers and devices |
US8069021B2 (en) * | 2007-09-28 | 2011-11-29 | Rockwell Automation Technologies, Inc. | Distributed simulation and synchronization |
US20090089029A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Enhanced execution speed to improve simulation performance |
US20090089234A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Automated code generation for simulators |
US7995618B1 (en) * | 2007-10-01 | 2011-08-09 | Teklatech A/S | System and a method of transmitting data from a first device to a second device |
US8515052B2 (en) * | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US9596324B2 (en) | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
US8726289B2 (en) * | 2008-02-22 | 2014-05-13 | International Business Machines Corporation | Streaming attachment of hardware accelerators to computer systems |
US8250578B2 (en) * | 2008-02-22 | 2012-08-21 | International Business Machines Corporation | Pipelining hardware accelerators to computer systems |
US20090268736A1 (en) * | 2008-04-24 | 2009-10-29 | Allison Brian D | Early header CRC in data response packets with variable gap count |
US20090271532A1 (en) * | 2008-04-24 | 2009-10-29 | Allison Brian D | Early header CRC in data response packets with variable gap count |
US20090268727A1 (en) * | 2008-04-24 | 2009-10-29 | Allison Brian D | Early header CRC in data response packets with variable gap count |
DE112008003832T5 (de) * | 2008-04-30 | 2011-04-07 | Hewlett-Packard Development Company, L.P., Houston | Absichtlich versetzte Optiktaktsignalverteilung |
JP2009271724A (ja) * | 2008-05-07 | 2009-11-19 | Toshiba Corp | ハードウェアエンジン制御装置 |
CN102047241B (zh) * | 2008-05-30 | 2014-03-12 | 先进微装置公司 | 本地与全局数据共享 |
US8958419B2 (en) * | 2008-06-16 | 2015-02-17 | Intel Corporation | Switch fabric primitives |
US8566487B2 (en) | 2008-06-24 | 2013-10-22 | Hartvig Ekner | System and method for creating a scalable monolithic packet processing engine |
US8160092B1 (en) | 2008-08-05 | 2012-04-17 | Xilinx, Inc. | Transforming a declarative description of a packet processor |
US8311057B1 (en) | 2008-08-05 | 2012-11-13 | Xilinx, Inc. | Managing formatting of packets of a communication protocol |
US7804844B1 (en) * | 2008-08-05 | 2010-09-28 | Xilinx, Inc. | Dataflow pipeline implementing actions for manipulating packets of a communication protocol |
US7949007B1 (en) | 2008-08-05 | 2011-05-24 | Xilinx, Inc. | Methods of clustering actions for manipulating packets of a communication protocol |
WO2010016015A1 (en) * | 2008-08-06 | 2010-02-11 | Nxp B.V. | Simd parallel processor architecture |
CN101355482B (zh) * | 2008-09-04 | 2011-09-21 | 中兴通讯股份有限公司 | 实现嵌入式设备地址顺序识别的设备、方法和系统 |
US8493979B2 (en) | 2008-12-30 | 2013-07-23 | Intel Corporation | Single instruction processing of network packets |
JP5238525B2 (ja) * | 2009-01-13 | 2013-07-17 | 株式会社東芝 | リソースを管理する装置、およびプログラム |
KR101553652B1 (ko) * | 2009-02-18 | 2015-09-16 | 삼성전자 주식회사 | 이종 프로세서에 대한 명령어 컴파일링 장치 및 방법 |
US8140792B2 (en) * | 2009-02-25 | 2012-03-20 | International Business Machines Corporation | Indirectly-accessed, hardware-affine channel storage in transaction-oriented DMA-intensive environments |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US8874878B2 (en) * | 2010-05-18 | 2014-10-28 | Lsi Corporation | Thread synchronization in a multi-thread, multi-flow network communications processor architecture |
US8170062B2 (en) * | 2009-04-29 | 2012-05-01 | Intel Corporation | Packetized interface for coupling agents |
US8743877B2 (en) * | 2009-12-21 | 2014-06-03 | Steven L. Pope | Header processing engine |
CN101807288B (zh) * | 2010-03-12 | 2014-09-10 | 中兴通讯股份有限公司 | 一种景点导游系统及其实现方法 |
US8332460B2 (en) * | 2010-04-14 | 2012-12-11 | International Business Machines Corporation | Performing a local reduction operation on a parallel computer |
EP2596470A1 (en) * | 2010-07-19 | 2013-05-29 | Advanced Micro Devices, Inc. | Data processing using on-chip memory in multiple processing units |
US8880507B2 (en) * | 2010-07-22 | 2014-11-04 | Brocade Communications Systems, Inc. | Longest prefix match using binary search tree |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
RU2436151C1 (ru) * | 2010-11-01 | 2011-12-10 | Федеральное государственное унитарное предприятие "Российский Федеральный ядерный центр - Всероссийский научно-исследовательский институт экспериментальной физики" (ФГУП "РФЯЦ-ВНИИЭФ") | Способ определения структуры гибридной вычислительной системы |
US9667539B2 (en) * | 2011-01-17 | 2017-05-30 | Alcatel Lucent | Method and apparatus for providing transport of customer QoS information via PBB networks |
US8869162B2 (en) | 2011-04-26 | 2014-10-21 | Microsoft Corporation | Stream processing on heterogeneous hardware devices |
US9020892B2 (en) * | 2011-07-08 | 2015-04-28 | Microsoft Technology Licensing, Llc | Efficient metadata storage |
US8880494B2 (en) | 2011-07-28 | 2014-11-04 | Brocade Communications Systems, Inc. | Longest prefix match scheme |
US8711861B2 (en) * | 2011-08-02 | 2014-04-29 | Cavium, Inc. | Lookup front end packet input processor |
US8923306B2 (en) | 2011-08-02 | 2014-12-30 | Cavium, Inc. | Phased bucket pre-fetch in a network processor |
US8910178B2 (en) | 2011-08-10 | 2014-12-09 | International Business Machines Corporation | Performing a global barrier operation in a parallel computer |
US9154335B2 (en) * | 2011-11-08 | 2015-10-06 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for transmitting data on a network |
US10157060B2 (en) | 2011-12-29 | 2018-12-18 | Intel Corporation | Method, device and system for control signaling in a data path module of a data stream processing engine |
US9542236B2 (en) | 2011-12-29 | 2017-01-10 | Oracle International Corporation | Efficiency sequencer for multiple concurrently-executing threads of execution |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
WO2013124713A1 (en) * | 2012-02-24 | 2013-08-29 | Freescale Semiconductor, Inc. | Clock distribution module, synchronous digital system and method therefor |
US20130229290A1 (en) * | 2012-03-01 | 2013-09-05 | Eaton Corporation | Instrument panel bus interface |
JP2013222364A (ja) | 2012-04-18 | 2013-10-28 | Renesas Electronics Corp | 信号処理回路 |
US8775727B2 (en) | 2012-08-31 | 2014-07-08 | Lsi Corporation | Lookup engine with pipelined access, speculative add and lock-in-hit function |
US9082078B2 (en) | 2012-07-27 | 2015-07-14 | The Intellisis Corporation | Neural processing engine and architecture using the same |
CN103631315A (zh) * | 2012-08-22 | 2014-03-12 | 上海华虹集成电路有限责任公司 | 便于时序修复的时钟设计方法 |
US9185057B2 (en) * | 2012-12-05 | 2015-11-10 | The Intellisis Corporation | Smart memory |
US9639371B2 (en) | 2013-01-29 | 2017-05-02 | Advanced Micro Devices, Inc. | Solution to divergent branches in a SIMD core using hardware pointers |
US9391893B2 (en) | 2013-02-26 | 2016-07-12 | Dell Products L.P. | Lookup engine for an information handling system |
US20140269690A1 (en) * | 2013-03-13 | 2014-09-18 | Qualcomm Incorporated | Network element with distributed flow tables |
US9185003B1 (en) * | 2013-05-02 | 2015-11-10 | Amazon Technologies, Inc. | Distributed clock network with time synchronization and activity tracing between nodes |
US20150012679A1 (en) * | 2013-07-03 | 2015-01-08 | Iii Holdings 2, Llc | Implementing remote transaction functionalities between data processing nodes of a switched interconnect fabric |
US10331583B2 (en) | 2013-09-26 | 2019-06-25 | Intel Corporation | Executing distributed memory operations using processing elements connected by distributed channels |
WO2015051851A1 (de) * | 2013-10-11 | 2015-04-16 | Wpt Gmbh | Elastischer bodenbelag in form einer aufrollbaren bahnenware |
US20150120224A1 (en) | 2013-10-29 | 2015-04-30 | C3 Energy, Inc. | Systems and methods for processing data relating to energy usage |
CN105794234A (zh) | 2013-11-29 | 2016-07-20 | 日本电气株式会社 | Mtc所用的设备、系统和方法 |
US9547553B1 (en) | 2014-03-10 | 2017-01-17 | Parallel Machines Ltd. | Data resiliency in a shared memory pool |
US9372724B2 (en) * | 2014-04-01 | 2016-06-21 | Freescale Semiconductor, Inc. | System and method for conditional task switching during ordering scope transitions |
US9372723B2 (en) * | 2014-04-01 | 2016-06-21 | Freescale Semiconductor, Inc. | System and method for conditional task switching during ordering scope transitions |
US9781027B1 (en) | 2014-04-06 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods to communicate with external destinations via a memory network |
US9594688B1 (en) | 2014-12-09 | 2017-03-14 | Parallel Machines Ltd. | Systems and methods for executing actions using cached data |
US9529622B1 (en) | 2014-12-09 | 2016-12-27 | Parallel Machines Ltd. | Systems and methods for automatic generation of task-splitting code |
US9690713B1 (en) | 2014-04-22 | 2017-06-27 | Parallel Machines Ltd. | Systems and methods for effectively interacting with a flash memory |
US9733981B2 (en) | 2014-06-10 | 2017-08-15 | Nxp Usa, Inc. | System and method for conditional task switching during ordering scope transitions |
US9781225B1 (en) | 2014-12-09 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods for cache streams |
US9690705B1 (en) | 2014-12-09 | 2017-06-27 | Parallel Machines Ltd. | Systems and methods for processing data sets according to an instructed order |
US9753873B1 (en) | 2014-12-09 | 2017-09-05 | Parallel Machines Ltd. | Systems and methods for key-value transactions |
US9639473B1 (en) | 2014-12-09 | 2017-05-02 | Parallel Machines Ltd. | Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location |
US9552327B2 (en) | 2015-01-29 | 2017-01-24 | Knuedge Incorporated | Memory controller for a network on a chip device |
US10061531B2 (en) | 2015-01-29 | 2018-08-28 | Knuedge Incorporated | Uniform system wide addressing for a computing system |
US9749225B2 (en) * | 2015-04-17 | 2017-08-29 | Huawei Technologies Co., Ltd. | Software defined network (SDN) control signaling for traffic engineering to enable multi-type transport in a data plane |
EP3278213A4 (en) | 2015-06-05 | 2019-01-30 | C3 IoT, Inc. | SYSTEMS, METHODS AND DEVICES FOR AN APPLICATION DEVELOPMENT PLATFORM OF AN INTERNET OF THE THINGS OF A COMPANY |
US20160381136A1 (en) * | 2015-06-24 | 2016-12-29 | Futurewei Technologies, Inc. | System, method, and computer program for providing rest services to fine-grained resources based on a resource-oriented network |
CN106326967B (zh) * | 2015-06-29 | 2023-05-05 | 四川谦泰仁投资管理有限公司 | 一种带互动开关输入端口的rfid芯片 |
US10313231B1 (en) * | 2016-02-08 | 2019-06-04 | Barefoot Networks, Inc. | Resilient hashing for forwarding packets |
US10063407B1 (en) | 2016-02-08 | 2018-08-28 | Barefoot Networks, Inc. | Identifying and marking failed egress links in data plane |
US10027583B2 (en) | 2016-03-22 | 2018-07-17 | Knuedge Incorporated | Chained packet sequences in a network on a chip architecture |
US9595308B1 (en) | 2016-03-31 | 2017-03-14 | Altera Corporation | Multiple-die synchronous insertion delay measurement circuit and methods |
US10346049B2 (en) | 2016-04-29 | 2019-07-09 | Friday Harbor Llc | Distributed contiguous reads in a network on a chip architecture |
US10402168B2 (en) | 2016-10-01 | 2019-09-03 | Intel Corporation | Low energy consumption mantissa multiplication for floating point multiply-add operations |
US10664942B2 (en) * | 2016-10-21 | 2020-05-26 | Advanced Micro Devices, Inc. | Reconfigurable virtual graphics and compute processor pipeline |
US10084687B1 (en) | 2016-11-17 | 2018-09-25 | Barefoot Networks, Inc. | Weighted-cost multi-pathing using range lookups |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10558575B2 (en) | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10572376B2 (en) | 2016-12-30 | 2020-02-25 | Intel Corporation | Memory ordering in acceleration hardware |
US10474375B2 (en) | 2016-12-30 | 2019-11-12 | Intel Corporation | Runtime address disambiguation in acceleration hardware |
US10404619B1 (en) | 2017-03-05 | 2019-09-03 | Barefoot Networks, Inc. | Link aggregation group failover for multicast |
US10237206B1 (en) | 2017-03-05 | 2019-03-19 | Barefoot Networks, Inc. | Equal cost multiple path group failover for multicast |
US10296351B1 (en) * | 2017-03-15 | 2019-05-21 | Ambarella, Inc. | Computer vision processing in hardware data paths |
US10243882B1 (en) | 2017-04-13 | 2019-03-26 | Xilinx, Inc. | Network on chip switch interconnect |
CN107679621B (zh) | 2017-04-19 | 2020-12-08 | 赛灵思公司 | 人工神经网络处理装置 |
CN107704922B (zh) * | 2017-04-19 | 2020-12-08 | 赛灵思公司 | 人工神经网络处理装置 |
CN107679620B (zh) * | 2017-04-19 | 2020-05-26 | 赛灵思公司 | 人工神经网络处理装置 |
US10514719B2 (en) * | 2017-06-27 | 2019-12-24 | Biosense Webster (Israel) Ltd. | System and method for synchronization among clocks in a wireless system |
US10387319B2 (en) | 2017-07-01 | 2019-08-20 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features |
US10445451B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features |
US10467183B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods for pipelined runtime services in a spatial array |
US10469397B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods with configurable network-based dataflow operator circuits |
US10445234B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features |
US10515046B2 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10515049B1 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Memory circuits and methods for distributed memory hazard detection and error recovery |
US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
US10496574B2 (en) | 2017-09-28 | 2019-12-03 | Intel Corporation | Processors, methods, and systems for a memory fence in a configurable spatial accelerator |
US10445098B2 (en) | 2017-09-30 | 2019-10-15 | Intel Corporation | Processors and methods for privileged configuration in a spatial array |
US10380063B2 (en) | 2017-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator |
CN107831824B (zh) * | 2017-10-16 | 2021-04-06 | 北京比特大陆科技有限公司 | 时钟信号传递方法、装置、复用芯片和电子设备 |
GB2568087B (en) * | 2017-11-03 | 2022-07-20 | Imagination Tech Ltd | Activation functions for deep neural networks |
US10565134B2 (en) | 2017-12-30 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for multicast in a configurable spatial accelerator |
US10445250B2 (en) | 2017-12-30 | 2019-10-15 | Intel Corporation | Apparatus, methods, and systems with a configurable spatial accelerator |
US10417175B2 (en) | 2017-12-30 | 2019-09-17 | Intel Corporation | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator |
US10673745B2 (en) | 2018-02-01 | 2020-06-02 | Xilinx, Inc. | End-to-end quality-of-service in a network-on-chip |
US10503690B2 (en) | 2018-02-23 | 2019-12-10 | Xilinx, Inc. | Programmable NOC compatible with multiple interface communication protocol |
JP2019153909A (ja) * | 2018-03-02 | 2019-09-12 | 株式会社リコー | 半導体集積回路およびクロック供給方法 |
US10621129B2 (en) | 2018-03-27 | 2020-04-14 | Xilinx, Inc. | Peripheral interconnect for configurable slave endpoint circuits |
US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10564980B2 (en) | 2018-04-03 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator |
US10505548B1 (en) | 2018-05-25 | 2019-12-10 | Xilinx, Inc. | Multi-chip structure having configurable network-on-chip |
US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
US11200186B2 (en) | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US10459866B1 (en) | 2018-06-30 | 2019-10-29 | Intel Corporation | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator |
US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
US10838908B2 (en) | 2018-07-20 | 2020-11-17 | Xilinx, Inc. | Configurable network-on-chip for a programmable device |
US10824505B1 (en) | 2018-08-21 | 2020-11-03 | Xilinx, Inc. | ECC proxy extension and byte organization for multi-master systems |
US11176281B2 (en) * | 2018-10-08 | 2021-11-16 | Micron Technology, Inc. | Security managers and methods for implementing security protocols in a reconfigurable fabric |
US10963460B2 (en) | 2018-12-06 | 2021-03-30 | Xilinx, Inc. | Integrated circuits and methods to accelerate data queries |
US10678724B1 (en) | 2018-12-29 | 2020-06-09 | Intel Corporation | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator |
US10796040B2 (en) * | 2019-02-05 | 2020-10-06 | Arm Limited | Integrated circuit design and fabrication |
US10936486B1 (en) | 2019-02-21 | 2021-03-02 | Xilinx, Inc. | Address interleave support in a programmable device |
US10680615B1 (en) | 2019-03-27 | 2020-06-09 | Xilinx, Inc. | Circuit for and method of configuring and partially reconfiguring function blocks of an integrated circuit device |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
US11029927B2 (en) | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US11386038B2 (en) * | 2019-05-09 | 2022-07-12 | SambaNova Systems, Inc. | Control flow barrier and reconfigurable data processor |
US11188312B2 (en) | 2019-05-23 | 2021-11-30 | Xilinx, Inc. | Hardware-software design flow with high-level synthesis for heterogeneous and programmable devices |
US10891414B2 (en) | 2019-05-23 | 2021-01-12 | Xilinx, Inc. | Hardware-software design flow for heterogeneous and programmable devices |
US10891132B2 (en) | 2019-05-23 | 2021-01-12 | Xilinx, Inc. | Flow convergence during hardware-software design for heterogeneous and programmable devices |
US11301295B1 (en) | 2019-05-23 | 2022-04-12 | Xilinx, Inc. | Implementing an application specified as a data flow graph in an array of data processing engines |
US11288244B2 (en) * | 2019-06-10 | 2022-03-29 | Akamai Technologies, Inc. | Tree deduplication |
US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
US10977018B1 (en) | 2019-12-05 | 2021-04-13 | Xilinx, Inc. | Development environment for heterogeneous devices |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
US11320885B2 (en) | 2020-05-26 | 2022-05-03 | Dell Products L.P. | Wide range power mechanism for over-speed memory design |
US11496418B1 (en) | 2020-08-25 | 2022-11-08 | Xilinx, Inc. | Packet-based and time-multiplexed network-on-chip |
CN114528246A (zh) * | 2020-11-23 | 2022-05-24 | 深圳比特微电子科技有限公司 | 运算核、计算芯片和加密货币矿机 |
US11336287B1 (en) | 2021-03-09 | 2022-05-17 | Xilinx, Inc. | Data processing engine array architecture with memory tiles |
US11520717B1 (en) | 2021-03-09 | 2022-12-06 | Xilinx, Inc. | Memory tiles in data processing engine array |
US11768714B2 (en) | 2021-06-22 | 2023-09-26 | Microsoft Technology Licensing, Llc | On-chip hardware semaphore array supporting multiple conditionals |
US11797480B2 (en) * | 2021-12-31 | 2023-10-24 | Tsx Inc. | Storage of order books with persistent data structures |
US11848670B2 (en) | 2022-04-15 | 2023-12-19 | Xilinx, Inc. | Multiple partitions in a data processing array |
Family Cites Families (157)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1061921B (it) * | 1976-06-23 | 1983-04-30 | Lolli & C Spa | Perfezionamento nei diffusori per impianti di condizionamento d aria |
USD259208S (en) * | 1979-04-23 | 1981-05-12 | Mccullough John R | Roof vent |
GB8401805D0 (en) * | 1984-01-24 | 1984-02-29 | Int Computers Ltd | Data processing apparatus |
JPS61156338A (ja) * | 1984-12-27 | 1986-07-16 | Toshiba Corp | マルチプロセツサシステム |
US4641571A (en) * | 1985-07-15 | 1987-02-10 | Enamel Products & Plating Co. | Turbo fan vent |
US4850027A (en) * | 1985-07-26 | 1989-07-18 | International Business Machines Corporation | Configurable parallel pipeline image processing system |
JP2564805B2 (ja) * | 1985-08-08 | 1996-12-18 | 日本電気株式会社 | 情報処理装置 |
US4755986A (en) * | 1985-09-13 | 1988-07-05 | Nec Corporation | Packet switching system |
US5021947A (en) * | 1986-03-31 | 1991-06-04 | Hughes Aircraft Company | Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing |
GB8618943D0 (en) * | 1986-08-02 | 1986-09-10 | Int Computers Ltd | Data processing apparatus |
EP0258740B1 (en) * | 1986-09-02 | 1995-07-19 | Fuji Photo Film Co., Ltd. | Method of and apparatus for processing an image with gradation correction of video signal |
US5418970A (en) * | 1986-12-17 | 1995-05-23 | Massachusetts Institute Of Technology | Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content |
GB8723203D0 (en) * | 1987-10-02 | 1987-11-04 | Crosfield Electronics Ltd | Interactive image modification |
DE3742941A1 (de) * | 1987-12-18 | 1989-07-06 | Standard Elektrik Lorenz Ag | Einrichtungen zur paketvermittlung |
JP2559262B2 (ja) * | 1988-10-13 | 1996-12-04 | 富士写真フイルム株式会社 | 磁気デイスク |
JPH02105910A (ja) | 1988-10-14 | 1990-04-18 | Hitachi Ltd | 論理集積回路 |
AU620994B2 (en) * | 1989-07-12 | 1992-02-27 | Digital Equipment Corporation | Compressed prefix matching database searching |
US5212777A (en) * | 1989-11-17 | 1993-05-18 | Texas Instruments Incorporated | Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation |
US5218709A (en) * | 1989-12-28 | 1993-06-08 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Special purpose parallel computer architecture for real-time control and simulation in robotic applications |
US5426610A (en) * | 1990-03-01 | 1995-06-20 | Texas Instruments Incorporated | Storage circuitry using sense amplifier with temporary pause for voltage supply isolation |
JPH04219859A (ja) | 1990-03-12 | 1992-08-10 | Hewlett Packard Co <Hp> | 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ |
US5327159A (en) * | 1990-06-27 | 1994-07-05 | Texas Instruments Incorporated | Packed bus selection of multiple pixel depths in palette devices, systems and methods |
US5121198A (en) * | 1990-06-28 | 1992-06-09 | Eastman Kodak Company | Method of setting the contrast of a color video picture in a computer controlled photographic film analyzing system |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5963746A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | Fully distributed processing memory element |
US5752067A (en) * | 1990-11-13 | 1998-05-12 | International Business Machines Corporation | Fully scalable parallel processing system having asynchronous SIMD processing |
US5625836A (en) * | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US5367643A (en) * | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
US5285528A (en) * | 1991-02-22 | 1994-02-08 | International Business Machines Corporation | Data structures and algorithms for managing lock states of addressable element ranges |
WO1992015960A1 (en) | 1991-03-05 | 1992-09-17 | Hajime Seki | Electronic computer system and processor elements used for this system |
US5313582A (en) * | 1991-04-30 | 1994-05-17 | Standard Microsystems Corporation | Method and apparatus for buffering data within stations of a communication network |
US5224100A (en) * | 1991-05-09 | 1993-06-29 | David Sarnoff Research Center, Inc. | Routing technique for a hierarchical interprocessor-communication network between massively-parallel processors |
JPH07500702A (ja) * | 1991-07-01 | 1995-01-19 | テルストラ コーポレイション リミテッド | 高速交換アーキテクチャ |
US5404550A (en) * | 1991-07-25 | 1995-04-04 | Tandem Computers Incorporated | Method and apparatus for executing tasks by following a linked list of memory packets |
US5155484A (en) * | 1991-09-13 | 1992-10-13 | Salient Software, Inc. | Fast data compressor with direct lookup table indexing into history buffer |
JP2750968B2 (ja) * | 1991-11-18 | 1998-05-18 | シャープ株式会社 | データ駆動型情報処理装置 |
US5307381A (en) * | 1991-12-27 | 1994-04-26 | Intel Corporation | Skew-free clock signal distribution network in a microprocessor |
US5603028A (en) | 1992-03-02 | 1997-02-11 | Mitsubishi Denki Kabushiki Kaisha | Method and apparatus for data distribution |
JPH0696035A (ja) | 1992-09-16 | 1994-04-08 | Sanyo Electric Co Ltd | 処理要素とそれを用いる並列処理計算機 |
EP0601715A1 (en) * | 1992-12-11 | 1994-06-15 | National Semiconductor Corporation | Bus of CPU core optimized for accessing on-chip memory devices |
US5579223A (en) * | 1992-12-24 | 1996-11-26 | Microsoft Corporation | Method and system for incorporating modifications made to a computer program into a translated version of the computer program |
GB2277235B (en) * | 1993-04-14 | 1998-01-07 | Plessey Telecomm | Apparatus and method for the digital transmission of data |
US5640551A (en) * | 1993-04-14 | 1997-06-17 | Apple Computer, Inc. | Efficient high speed trie search process |
US5420858A (en) * | 1993-05-05 | 1995-05-30 | Synoptics Communications, Inc. | Method and apparatus for communications from a non-ATM communication medium to an ATM communication medium |
JP2629568B2 (ja) * | 1993-07-30 | 1997-07-09 | 日本電気株式会社 | Atmセル交換方式 |
US5918061A (en) * | 1993-12-29 | 1999-06-29 | Intel Corporation | Enhanced power managing unit (PMU) in a multiprocessor chip |
US5524223A (en) * | 1994-01-31 | 1996-06-04 | Motorola, Inc. | Instruction accelerator for processing loop instructions with address generator using multiple stored increment values |
US5423003A (en) * | 1994-03-03 | 1995-06-06 | Geonet Limited L.P. | System for managing network computer applications |
EP0680179B1 (en) * | 1994-04-28 | 2001-09-05 | Hewlett-Packard Company, A Delaware Corporation | Multicasting apparatus |
EP0681236B1 (en) * | 1994-05-05 | 2000-11-22 | Conexant Systems, Inc. | Space vector data path |
CA2165076C (en) * | 1994-05-06 | 2000-11-21 | Michael J. Schellinger | Call routing system for a wireless data device |
US5463732A (en) * | 1994-05-13 | 1995-10-31 | David Sarnoff Research Center, Inc. | Method and apparatus for accessing a distributed data buffer |
US5659781A (en) * | 1994-06-29 | 1997-08-19 | Larson; Noble G. | Bidirectional systolic ring network |
US5682480A (en) * | 1994-08-15 | 1997-10-28 | Hitachi, Ltd. | Parallel computer system for performing barrier synchronization by transferring the synchronization packet through a path which bypasses the packet buffer in response to an interrupt |
US5949781A (en) * | 1994-08-31 | 1999-09-07 | Brooktree Corporation | Controller for ATM segmentation and reassembly |
US5586119A (en) * | 1994-08-31 | 1996-12-17 | Motorola, Inc. | Method and apparatus for packet alignment in a communication system |
US5754584A (en) * | 1994-09-09 | 1998-05-19 | Omnipoint Corporation | Non-coherent spread-spectrum continuous-phase modulation communication system |
AU1174695A (en) * | 1994-11-07 | 1996-05-31 | Temple University - Of The Commonwealth System Of Higher Education | Multicomputer system and method |
US5651099A (en) * | 1995-01-26 | 1997-07-22 | Hewlett-Packard Company | Use of a genetic algorithm to optimize memory space |
JPH08249306A (ja) * | 1995-03-09 | 1996-09-27 | Sharp Corp | データ駆動型情報処理装置 |
US5634068A (en) * | 1995-03-31 | 1997-05-27 | Sun Microsystems, Inc. | Packet switched cache coherent multiprocessor system |
US5835095A (en) * | 1995-05-08 | 1998-11-10 | Intergraph Corporation | Visible line processor |
JP3515263B2 (ja) * | 1995-05-18 | 2004-04-05 | 株式会社東芝 | ルータ装置、データ通信ネットワークシステム、ノード装置、データ転送方法及びネットワーク接続方法 |
US5689677A (en) * | 1995-06-05 | 1997-11-18 | Macmillan; David C. | Circuit for enhancing performance of a computer for personal use |
US6147996A (en) * | 1995-08-04 | 2000-11-14 | Cisco Technology, Inc. | Pipelined multiple issue packet switch |
US6115802A (en) * | 1995-10-13 | 2000-09-05 | Sun Mircrosystems, Inc. | Efficient hash table for use in multi-threaded environments |
US5612956A (en) * | 1995-12-15 | 1997-03-18 | General Instrument Corporation Of Delaware | Reformatting of variable rate data for fixed rate communication |
US5822606A (en) * | 1996-01-11 | 1998-10-13 | Morton; Steven G. | DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word |
IL116989A (en) * | 1996-01-31 | 1999-10-28 | Galileo Technology Ltd | Switching ethernet controller |
WO1997029613A1 (en) | 1996-02-06 | 1997-08-14 | International Business Machines Corporation | Parallel on-the-fly processing of fixed length cells |
US5781549A (en) * | 1996-02-23 | 1998-07-14 | Allied Telesyn International Corp. | Method and apparatus for switching data packets in a data network |
US6035193A (en) * | 1996-06-28 | 2000-03-07 | At&T Wireless Services Inc. | Telephone system having land-line-supported private base station switchable into cellular network |
US6101176A (en) * | 1996-07-24 | 2000-08-08 | Nokia Mobile Phones | Method and apparatus for operating an indoor CDMA telecommunications system |
US5828858A (en) * | 1996-09-16 | 1998-10-27 | Virginia Tech Intellectual Properties, Inc. | Worm-hole run-time reconfigurable processor field programmable gate array (FPGA) |
US6088355A (en) * | 1996-10-11 | 2000-07-11 | C-Cube Microsystems, Inc. | Processing system with pointer-based ATM segmentation and reassembly |
US6791947B2 (en) * | 1996-12-16 | 2004-09-14 | Juniper Networks | In-line packet processing |
JPH10271132A (ja) * | 1997-03-27 | 1998-10-09 | Toshiba Corp | パケット交換網におけるフロー制御方式 |
JP3000961B2 (ja) * | 1997-06-06 | 2000-01-17 | 日本電気株式会社 | 半導体集積回路 |
US5969559A (en) * | 1997-06-09 | 1999-10-19 | Schwartz; David M. | Method and apparatus for using a power grid for clock distribution in semiconductor integrated circuits |
US5828870A (en) * | 1997-06-30 | 1998-10-27 | Adaptec, Inc. | Method and apparatus for controlling clock skew in an integrated circuit |
JP3469046B2 (ja) * | 1997-07-08 | 2003-11-25 | 株式会社東芝 | 機能ブロック、および半導体集積回路装置 |
US6047304A (en) * | 1997-07-29 | 2000-04-04 | Nortel Networks Corporation | Method and apparatus for performing lane arithmetic to perform network processing |
TW400473B (en) * | 1997-09-17 | 2000-08-01 | Sony Electronics Inc | Triplet architecture in a multi-port bridge for a local area network including method and apparatus for periodically updating entries in a content addressable memory |
JPH11194850A (ja) * | 1997-09-19 | 1999-07-21 | Lsi Logic Corp | 集積回路用クロック分配ネットワークおよびクロック分配方法 |
US6009488A (en) * | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US5872993A (en) * | 1997-12-01 | 1999-02-16 | Advanced Micro Devices, Inc. | Communications system with multiple, simultaneous accesses to a memory |
US6081523A (en) * | 1997-12-05 | 2000-06-27 | Advanced Micro Devices, Inc. | Arrangement for transmitting packet data segments from a media access controller across multiple physical links |
US6219796B1 (en) * | 1997-12-23 | 2001-04-17 | Texas Instruments Incorporated | Power reduction for processors by software control of functional units |
US6301603B1 (en) * | 1998-02-17 | 2001-10-09 | Euphonics Incorporated | Scalable audio processing on a heterogeneous processor array |
JP3490286B2 (ja) | 1998-03-13 | 2004-01-26 | 株式会社東芝 | ルータ装置及びフレーム転送方法 |
JPH11272629A (ja) * | 1998-03-19 | 1999-10-08 | Hitachi Ltd | データ処理装置 |
US6052769A (en) * | 1998-03-31 | 2000-04-18 | Intel Corporation | Method and apparatus for moving select non-contiguous bytes of packed data in a single instruction |
US6275508B1 (en) * | 1998-04-21 | 2001-08-14 | Nexabit Networks, Llc | Method of and system for processing datagram headers for high speed computer network interfaces at low clock speeds, utilizing scalable algorithms for performing such network header adaptation (SAPNA) |
AU3883499A (en) * | 1998-05-07 | 1999-11-23 | Aprisma Management Technologies, Inc. | Multiple priority buffering in a computer network |
US6131102A (en) * | 1998-06-15 | 2000-10-10 | Microsoft Corporation | Method and system for cost computation of spelling suggestions and automatic replacement |
US6305001B1 (en) * | 1998-06-18 | 2001-10-16 | Lsi Logic Corporation | Clock distribution network planning and method therefor |
DE69840947D1 (de) * | 1998-09-10 | 2009-08-13 | Ibm | Paketvermittlunganpassungseinrichtung für Datenpaketen mit variabler Länge |
US6393026B1 (en) * | 1998-09-17 | 2002-05-21 | Nortel Networks Limited | Data packet processing system and method for a router |
EP0992895A1 (en) | 1998-10-06 | 2000-04-12 | Texas Instruments Inc. | Hardware accelerator for data processing systems |
JP3504510B2 (ja) * | 1998-10-12 | 2004-03-08 | 日本電信電話株式会社 | パケットスイッチ |
JP3866425B2 (ja) * | 1998-11-12 | 2007-01-10 | 株式会社日立コミュニケーションテクノロジー | パケットスイッチ |
US6272522B1 (en) | 1998-11-17 | 2001-08-07 | Sun Microsystems, Incorporated | Computer data packet switching and load balancing system using a general-purpose multiprocessor architecture |
US6256421B1 (en) * | 1998-12-07 | 2001-07-03 | Xerox Corporation | Method and apparatus for simulating JPEG compression |
JP3704438B2 (ja) * | 1998-12-09 | 2005-10-12 | 株式会社日立製作所 | 可変長パケット通信装置 |
US6338078B1 (en) * | 1998-12-17 | 2002-01-08 | International Business Machines Corporation | System and method for sequencing packets for multiprocessor parallelization in a computer network system |
US6366584B1 (en) * | 1999-02-06 | 2002-04-02 | Triton Network Systems, Inc. | Commercial network based on point to point radios |
JP3587076B2 (ja) | 1999-03-05 | 2004-11-10 | 松下電器産業株式会社 | パケット受信装置 |
AU4651000A (en) * | 1999-04-23 | 2000-11-10 | Z-Dice, Inc. | Gaming apparatus and method |
GB2352536A (en) * | 1999-07-21 | 2001-01-31 | Element 14 Ltd | Conditional instruction execution |
GB2352595B (en) * | 1999-07-27 | 2003-10-01 | Sgs Thomson Microelectronics | Data processing device |
USD428484S (en) * | 1999-08-03 | 2000-07-18 | Zirk Todd A | Copper roof vent cover |
US6631422B1 (en) * | 1999-08-26 | 2003-10-07 | International Business Machines Corporation | Network adapter utilizing a hashing function for distributing packets to multiple processors for parallel processing |
US6404752B1 (en) * | 1999-08-27 | 2002-06-11 | International Business Machines Corporation | Network switch using network processor and methods |
US6631419B1 (en) * | 1999-09-22 | 2003-10-07 | Juniper Networks, Inc. | Method and apparatus for high-speed longest prefix and masked prefix table search |
US6963572B1 (en) * | 1999-10-22 | 2005-11-08 | Alcatel Canada Inc. | Method and apparatus for segmentation and reassembly of data packets in a communication switch |
AU5075301A (en) * | 1999-10-26 | 2001-07-03 | Arthur D. Little, Inc. | Mimd arrangement of simd machines |
JP2001177574A (ja) | 1999-12-20 | 2001-06-29 | Kddi Corp | パケット交換網における伝送制御装置 |
GB2357601B (en) * | 1999-12-23 | 2004-03-31 | Ibm | Remote power control |
US6661794B1 (en) * | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
EP1244964B1 (en) * | 2000-01-07 | 2004-10-20 | International Business Machines Corporation | Method and system for frame and protocol classification |
US20030093613A1 (en) * | 2000-01-14 | 2003-05-15 | David Sherman | Compressed ternary mask system and method |
JP2001202345A (ja) * | 2000-01-21 | 2001-07-27 | Hitachi Ltd | 並列プロセッサ |
ATE319249T1 (de) * | 2000-01-27 | 2006-03-15 | Ibm | Verfahren und vorrichtung für klassifizierung von datenpaketen |
US6704794B1 (en) * | 2000-03-03 | 2004-03-09 | Nokia Intelligent Edge Routers Inc. | Cell reassembly for packet based networks |
US20020107903A1 (en) * | 2000-11-07 | 2002-08-08 | Richter Roger K. | Methods and systems for the order serialization of information in a network processing environment |
JP2001251349A (ja) * | 2000-03-06 | 2001-09-14 | Fujitsu Ltd | パケットプロセッサ |
US7139282B1 (en) * | 2000-03-24 | 2006-11-21 | Juniper Networks, Inc. | Bandwidth division for packet processing |
US7107265B1 (en) * | 2000-04-06 | 2006-09-12 | International Business Machines Corporation | Software management tree implementation for a network processor |
US7089240B2 (en) * | 2000-04-06 | 2006-08-08 | International Business Machines Corporation | Longest prefix match lookup using hash function |
US6718326B2 (en) * | 2000-08-17 | 2004-04-06 | Nippon Telegraph And Telephone Corporation | Packet classification search device and method |
DE10059026A1 (de) * | 2000-11-28 | 2002-06-13 | Infineon Technologies Ag | Einheit zur Verteilung und Verarbeitung von Datenpaketen |
GB2370381B (en) * | 2000-12-19 | 2003-12-24 | Picochip Designs Ltd | Processor architecture |
USD453960S1 (en) * | 2001-01-30 | 2002-02-26 | Molded Products Company | Shroud for a fan assembly |
US6832261B1 (en) | 2001-02-04 | 2004-12-14 | Cisco Technology, Inc. | Method and apparatus for distributed resequencing and reassembly of subdivided packets |
GB2407674B (en) | 2001-02-14 | 2005-08-24 | Clearspeed Technology Plc | Lookup engine |
US20020159466A1 (en) * | 2001-02-14 | 2002-10-31 | John Rhoades | Lookup engine |
JP4475835B2 (ja) * | 2001-03-05 | 2010-06-09 | 富士通株式会社 | 入力回線インタフェース装置及びパケット通信装置 |
CA97495S (en) * | 2001-03-20 | 2003-05-07 | Flettner Ventilator Ltd | Rotor |
USD471971S1 (en) * | 2001-03-20 | 2003-03-18 | Flettner Ventilator Limited | Ventilation cover |
US6687715B2 (en) * | 2001-06-28 | 2004-02-03 | Intel Corporation | Parallel lookups that keep order |
US6922716B2 (en) * | 2001-07-13 | 2005-07-26 | Motorola, Inc. | Method and apparatus for vector processing |
WO2003021906A1 (en) * | 2001-08-29 | 2003-03-13 | Nokia Corporation | Method and system for classifying binary strings |
US7283538B2 (en) * | 2001-10-12 | 2007-10-16 | Vormetric, Inc. | Load balanced scalable network gateway processor architecture |
US7317730B1 (en) * | 2001-10-13 | 2008-01-08 | Greenfield Networks, Inc. | Queueing architecture and load balancing for parallel packet processing in communication networks |
US6941446B2 (en) * | 2002-01-21 | 2005-09-06 | Analog Devices, Inc. | Single instruction multiple data array cell |
US7382782B1 (en) * | 2002-04-12 | 2008-06-03 | Juniper Networks, Inc. | Packet spraying for load balancing across multiple packet processors |
US20030231627A1 (en) * | 2002-06-04 | 2003-12-18 | Rajesh John | Arbitration logic for assigning input packet to available thread of a multi-threaded multi-engine network processor |
US7200137B2 (en) * | 2002-07-29 | 2007-04-03 | Freescale Semiconductor, Inc. | On chip network that maximizes interconnect utilization between processing elements |
US8015567B2 (en) * | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
GB0226249D0 (en) * | 2002-11-11 | 2002-12-18 | Clearspeed Technology Ltd | Traffic handling system |
US7656799B2 (en) * | 2003-07-29 | 2010-02-02 | Citrix Systems, Inc. | Flow control system architecture |
US7620050B2 (en) | 2004-09-10 | 2009-11-17 | Canon Kabushiki Kaisha | Communication control device and communication control method |
US7787454B1 (en) | 2007-10-31 | 2010-08-31 | Gigamon Llc. | Creating and/or managing meta-data for data storage devices using a packet switch appliance |
JP5231926B2 (ja) * | 2008-10-06 | 2013-07-10 | キヤノン株式会社 | 情報処理装置、その制御方法、及びコンピュータプログラム |
US8493979B2 (en) * | 2008-12-30 | 2013-07-23 | Intel Corporation | Single instruction processing of network packets |
US8014295B2 (en) * | 2009-07-14 | 2011-09-06 | Ixia | Parallel packet processor with session active checker |
-
2002
- 2002-02-14 US US10/074,022 patent/US20020159466A1/en not_active Abandoned
- 2002-02-14 AU AU2002233500A patent/AU2002233500A1/en not_active Abandoned
- 2002-02-14 GB GB0321186A patent/GB2390506B/en not_active Expired - Fee Related
- 2002-02-14 GB GB0203633A patent/GB2374442B/en not_active Expired - Fee Related
- 2002-02-14 US US10/073,948 patent/US7856543B2/en not_active Expired - Fee Related
- 2002-02-14 CN CNA02808148XA patent/CN1613041A/zh active Pending
- 2002-02-14 JP JP2002564715A patent/JP2004524617A/ja active Pending
- 2002-02-14 GB GB0203632A patent/GB2377519B/en not_active Expired - Fee Related
- 2002-02-14 JP JP2002564890A patent/JP2004525449A/ja active Pending
- 2002-02-14 WO PCT/GB2002/000662 patent/WO2002065700A2/en active Application Filing
- 2002-02-14 US US10/074,019 patent/US20020161926A1/en not_active Abandoned
- 2002-02-14 CN CNB028081242A patent/CN100367730C/zh not_active Expired - Fee Related
- 2002-02-14 GB GB0319801A patent/GB2389689B/en not_active Expired - Fee Related
- 2002-02-14 US US10/468,168 patent/US7290162B2/en not_active Expired - Fee Related
- 2002-02-14 GB GB0203634A patent/GB2374443B/en not_active Expired - Fee Related
- 2002-02-14 US US10/468,167 patent/US20040114609A1/en not_active Abandoned
- 2002-02-14 WO PCT/GB2002/000668 patent/WO2002065259A1/en active Application Filing
-
2005
- 2005-06-14 US US11/151,292 patent/US20050242976A1/en not_active Abandoned
- 2005-06-14 US US11/151,271 patent/US8200686B2/en not_active Expired - Fee Related
-
2007
- 2007-05-23 US US11/752,299 patent/US7818541B2/en not_active Expired - Fee Related
- 2007-05-23 US US11/752,300 patent/US7917727B2/en not_active Expired - Fee Related
-
2010
- 2010-12-10 US US12/965,673 patent/US8127112B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005182818A (ja) * | 2003-12-17 | 2005-07-07 | Microsoft Corp | オンチップバス |
US7882294B2 (en) | 2003-12-17 | 2011-02-01 | Microsoft Corporation | On-chip bus |
JP4638216B2 (ja) * | 2003-12-17 | 2011-02-23 | マイクロソフト コーポレーション | オンチップバス |
JP2009524952A (ja) * | 2006-01-27 | 2009-07-02 | エフテーエス コンピューターテヒニク ゲゼルシャフト ミット ベシュレンクテル ハフツング | 時間制御型のセキュアな通信 |
WO2013141290A1 (ja) * | 2012-03-23 | 2013-09-26 | 株式会社Mush-A | データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法 |
JPWO2013141290A1 (ja) * | 2012-03-23 | 2015-08-03 | 株式会社Mush−A | データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004525449A (ja) | 相互接続システム | |
EP3776231B1 (en) | Procedures for implementing source based routing within an interconnect fabric on a system on chip | |
US7012448B2 (en) | Integrated circuit and related improvements | |
US7450583B2 (en) | Device to receive, buffer, and transmit packets of data in a packet switching network | |
CN114073007B (zh) | 可编程集成电路中的片上网络 | |
US5925097A (en) | Directly programmable distribution element | |
US8086800B2 (en) | Integrated circuit and method for buffering to optimize burst length in networks on chips | |
US8014401B2 (en) | Electronic device and method of communication resource allocation | |
JP3322195B2 (ja) | Lanスイッチ | |
Abdelfattah et al. | Take the highway: Design for embedded NoCs on FPGAs | |
RU2283507C2 (ru) | Способ и устройство для реконфигурируемого процессора | |
US7218638B2 (en) | Switch operation scheduling mechanism with concurrent connection and queue scheduling | |
US8645557B2 (en) | System of interconnections for external functional blocks on a chip provided with a single configurable communication protocol | |
US7272151B2 (en) | Centralized switching fabric scheduler supporting simultaneous updates | |
Sathe et al. | Design of a guaranteed throughput router for on-chip networks | |
Wong | A message controller for distributed processing systems | |
Cohen et al. | ATOMIC: A Low-Cost, Very High-Speed LAN | |
SHERMI et al. | A Novel Architecture of Bidirectional NoC Router with Flexible Buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20041214 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070518 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070802 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070809 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070918 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070926 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071018 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080527 |