JP4564065B2 - マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム - Google Patents

マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム Download PDF

Info

Publication number
JP4564065B2
JP4564065B2 JP2007543156A JP2007543156A JP4564065B2 JP 4564065 B2 JP4564065 B2 JP 4564065B2 JP 2007543156 A JP2007543156 A JP 2007543156A JP 2007543156 A JP2007543156 A JP 2007543156A JP 4564065 B2 JP4564065 B2 JP 4564065B2
Authority
JP
Japan
Prior art keywords
bus
target
targets
cluster
subgroup
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.)
Expired - Fee Related
Application number
JP2007543156A
Other languages
English (en)
Other versions
JP2008521131A (ja
Inventor
ラクシュマナムルティ,スリッダー
ローゼンブルス,マーク
アディレッタ,マシュー
ミン,ジーン−ユァン
ボーズ,ビジョイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2008521131A publication Critical patent/JP2008521131A/ja
Application granted granted Critical
Publication of JP4564065B2 publication Critical patent/JP4564065B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Description

本発明の範囲は、一般にネットワーク機器に関し、さらに特定すると、他を排除するものではないが、ネットワーク・プロセッサ・ユニットのようなマルチスレッド、マルチプロセシングのシステムオンチップ装置に対し拡張性があり、高機能で、かつ大規模な相互接続スキームに関する。
スイッチやルータのようなネットワーク装置は、高速ラインにおいてパケット形式のネットワーク・トラフィックを転送するように設計される。ネットワーク・トラフィックを扱うために最も重要な考察の1つは、パケット処理能力である。これを実現するために、ネットワーク・プロセッサとして知られている特定の目的を有するプロセッサが毎秒当たり極めて多くのパケットを効率的に処理するために開発される。パケットを処理するために、ネットワーク・プロセッサ(および/またはネットワーク・プロセッサを使用するネットワーク機器)は、パケットの宛先、サービスなどのクラスなどを示すパケット・ヘッダからデータを抽出し、ペイロード(搭載)データをメモリに格納し、パケットの分類およびキューイング動作を実行し、そのパケットのための次のホップを決定し、そのパケットなどを転送するネットワーク・ポートを選択し割当てる必要がある。これらの動作は、一般に「パケット処理」動作と称される。
現代のネットワーク・プロセッサは、複数のマルチスレッドの処理要素(カリフォルニア州サンタクララのインテル社製ネットワーク・プロセッサ内のマイクロエンジンと称される)を用いてパケット処理を実行するが、各スレッドは、特定のタスクまたはパイプライン方式におけるタスク・セットを実行する。パケット処理中、多数のアクセスは、ネットワーク・プロセッサに結合され、および/または、ネットワーク・プロセッサによって提供される様々な共有資源間でデータを移動させるために行なわれる。例えば、ネットワーク・プロセッサは、一般に、パケットのメタデータおよび同種のデータをスタティック・ランダム・アクセス・メモリに格納する一方、パケット(あるいはパケット・ペイロード・データ)をダイナミック・ランダム・アクセス・メモリ(DRAM)に格納する。さらに、ネットワーク・プロセッサは、暗号化プロセッサ、ハッシュ・ユニット、汎用プロセッサ、および、PCI(周辺部品相互接続)およびPCI高速バスのような拡張バスに結合することができる。
一般に、ネットワーク・プロセッサの様々なパケット処理要素(例えば、マイクロエンジン)は、汎用プロセッサのような他のオプション的な処理要素と同様に、様々なシステム資源へのアクセスを共有する。このような共有資源は、典型的にはメモリ格納(例えば、SRAM、DRAM)、ハッシュ・ユニット、暗号ユニットなど、および入出力(I/O)インターフェイスのようなデータ・ストレージおよび演算ユニットを含む。共有資源とそれらのコンシューマ(利用者)は、「シャーシ(chassis)」として知られているバス群によって相互に結合される。シャーシは、ネットワーク・プロセッサ・チップ上で高いパフォーマンスを示す相互接続であり、チップ上の多数の処理要素とオンチップまたはチップ内に搭載されたインターフェイスを介してアクセス可能な多数の共有資源との間のオンチップ・データ伝送インフラストラクチャを提供する。
典型的なネットワーク・プロセッサ構成の下で、様々なバス・スキームが、共有資源への共有アクセスをイネーブルにするために使用される。ある時間においては単一セットの信号のみが所定のバス上のいずれかの地点に存在することができるので、バスは、複数の資源のコンシューマがバスに結合された複数の資源ターゲットにアクセスすることを可能にするために多重化および同様の処理を要求する。アクセス競合を軽減するための1つの技術は、データ読取りおよびデータ書込みのための個別のバスを各ターゲット用に提供することである。ここに用いられるように、これらのバスは、プッシュ・バス(読取り用)およびプル・バス(書込み用)として知られている。(用語プッシュおよびプルは、共有資源ターゲットの観点からであることに注目すべきである。)しかしながら、各ターゲットのための読取りおよび書込み用の個別バスを実現することによって、バス・カウントが増加し、これにより、ネットワーク・プロセッサのチップに対して既に混み合った信号にルーティング要求を加えることになる。従来のアプローチの下で考慮する16個の共有資源への共有アクセスは、16個の独立したバスのセットを要求するが、各バスのセットは、合計48個のバスに対し、読取りバス、書込みバス、および命令バスを含む。このような多数のバスに対するルーティングをサポートするために、ダイ寸法を増大させなければならず、これはダイ寸法およびプロセッサのコストを低減させる目標と直接に衝突する。
前述の状況、および、本発明の付随的な多くの利点は、以下の詳細な説明を添付図面と共に参照することによってその同じ内容が一層よく理解され、より容易に評価されるであろう。同じ参照数字は、別段の定めがない限り、様々な視点から類似の部分に関連する。
マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能な相互接続スキームの実施例が、ここに説明される。以下の説明では、多くの特定の詳細な事項が、本発明の実施例についての完全な理解を提供するために述べられる。しかしながら、関連技術に習熟している当業者は、1またはそれ以上の特定の詳細な事項がなくても、また他の方法、コンポーネント、材料などで本発明を実施することができることを認識している。他の実施例では、周知の構造、材料または動作は示されず、本発明の側面を不明瞭にしないために詳細には説明されていない。
この明細書を通じて「一実施例」または「実施例」との表示は、実施例に関して説明された本発明の少なくとも一実施例に含まれる特定の機能、構造または特性を意味する。したがって、本明細書を通じた様々な場所に現れる「一実施例において」あるいは「実施例中」の文言は、必ずしもすべて同じ実施例を参照しているわけではない。更に、特定の機能、構造または特性は、1またはそれ以上の実施例中の任意の適切な方法で組み合わせられることがある。
ここに説明される実施例の一側面に従って、クロスバ・アーキテクチャの原則に基づいた拡張性のあるシャーシ相互接続インフラストラクチャは、各共有資源の個々のバスのセットを要求せずに、多くの共有資源へのアクセスを可能にするために実現される。シャーシは、2つのタイプのエージェント、すなわちマスタおよびターゲットの間のトランザクションをサポートする。一実施例において、マスタは、共通バスのインフラストラクチャを共有するグループ(「クラスタ」)へ組織化される。シャーシは、さらにマスタからターゲットへ命令およびプッシュおよびプル・データおよび要求識別子(ID)バスのそれぞれのセットを移動させる命令バスを含む1組の高機能バスからなる。
図1は、前述のシャーシ相互接続の一実施例を実現するネットワーク・プロセッサのアーキテクチャ100を示す。本アーキテクチャの中心に、4つの処理要素クラスタ102A,102B,102C,102Dがある。(便宜上、それらのクラスタは、A,B,C,Dの1つの記号を含むサフィクスを含む参照番号を具備するクラスタ、および、様々なバス・コンポーネントの関係をより容易に識別するために、図中に[A],[B],[C],[D]とラベルが付される。)図示される実施例では、処理要素クラスタ102A−Dの各々は、6つのパケット処理マイクロエンジン(ME)104を含む。他の実施例では、各処理要素クラスタは、4つまたは8つのマイクロエンジンのように、異なる数のマイクロエンジンを含んでいてもよいが、これに制限されることはない。一般に、各マイクロエンジンは、共通のダイ上に複数の処理コアを含むネットワーク・プロセッサのアーキテクチャ100と共に、RISC(縮小命令セット・コンピュータ)の処理コアからなる。
図1の実施例は、ネットワーク・プロセッサのアーキテクチャ100の周囲付近にほぼ位置する様々な典型的な共有資源ターゲットを示す。順番に、共有資源は、図1の上部および下部に向けて配置されたバス・セットへ第1レベルのグループ化が図られる。図1の上部へ向けて示されたターゲットは、「ノース」ターゲットと称されるが、トラフィック管理(TM)108、汎用プロセッサ(GP−Proc)110,狭ランダム・アクセス・メモリ(NRAM)制御チャネル112,114,116,118、PCI(周辺部品相互接続)インターフェイス120、および、PCI高速インターフェイス122を含む。一般に、NRAM制御チャネルは、様々なタイプのメモリ格納にアクセス・コントロールを提供する制御チャネルを示し、SRAMに制限されないが、ランバスDRAM(RDRAM)、クワッド・データ速度(QDR)RAMなどのような狭RAMデバイスからなる。図1の下部へ向けて示されたターゲットは、「サウス」ターゲットと称されるが、第1暗号化(Crypto0)ユニット124、第1メディア・スイッチ構成(MSF0)のインターフェイス126、DRAM制御チャネル128,130、ハッシュ・ユニット132、DRAM制御チャネル134、第2メディア・スイッチ構成(MSF1)のインターフェイス136、および、第2暗号化(Cryptol)ユニット138を含む。
一般に、アーキテクチャ100は、論理的なアーキテクチャを表わし、様々な要素の物理的な位置は、図中に示される場所と異なることがある。しかしながら、一実施例において、物理的な装置上におけるターゲットおよびマスタの一般的な位置は、図1および図8に示される位置に近似し、マスタが装置の中心の方へ配置される一方、ターゲットは一般に装置の周囲付近に位置する。
アーキテクチャ100は、クラスタ102A−Dを様々な共有資源ターゲットに接続する2セットのバスを含む。一実施例において、バスの各セットは、命令バス、および、2セットのデータ・バス、すなわちデータ読取りのためのプッシュ・バスおよびデータ書込みのためのプル・バスを含む。このように、各クラスタは、2つの独立した命令バス、および、2セットのデータ・バスを具備する。さらに、一実施例において、バスのセットは、マスタとターゲットへのおよびからのデータ転送をサポートするために関連するタグ・バス(IDバス)をさらに含む。
アーキテクチャ100の上部に位置するノース・ターゲットのために使用されるバスは、ノース命令バス140、ノースのプル・データ・バス142、ノースのプルIDバス144、ノースのプッシュ・データ・バス146、および、ノースのプッシュIDバス148を含む。アーキテクチャ100の下部に位置するサウス・ターゲットのために使用されるバスは、サウス命令バス150、サウスのプル・データ・バス152、サウスのプルIDバス154、サウスのプッシュ・データ・バス156、および、サウスのプッシュIDバス158を含む。
図2Aは、一実施例に従って、ノース命令バス140の詳細を示す。ノース命令バスはクロスバ構成を使用し、各ターゲットはそれぞれのマルチプレクサによってバスのセットに接続される(一般に、「多重化装置」と称される)。これは、各ターゲットと各クラスタとの間の選択的な関係をサポートし、それは、様々なマルチプレクサの構成を制御することにより提供されるルーティングに基づいて形成される。
ノース命令バス140の回路は、バス・ライン200A,200B,200C,200Dを含む1セットの水平バス200を含む。単一の信号ではなく、各バス・ラインは、それぞれのバスに対応する1セットの信号ラインを表わすことが理解されるであろう。各バスの幅は、ネットワーク・プロセッサにおける実際の特定の要求に依存する。クロスバ・バス(バス・ラインとして描かれる)のそれぞれのセットは、各命令マルチプレクサによって、水平バス・ラインのセット200と各ターゲットとの間で結合される。クロスバ・バスは、クロスバ・バス210,212,214,216,218,220を含む一方で、マルチプレクサは、命令(CMD)マルチプレクサ222,224,226,228,230,232を含む。さらに、命令マルチプレクサ234,236は、水平バス・ラインのセット200の終端に接続される。
一実施例において、バス・ラインのセット中のバスの数(バスとして描かれている)は、アーキテクチャ中のクラスタの数に等しい。例えば、ここに示された図では、ネットワーク・プロセッサのアーキテクチャは、4つのクラスタを含む。したがって、各バス・ラインのセットのために描かれたバス・ラインの数は、4セットのバスがあるということを示して、4つである。他の実施例(図示せず)では、ネットワーク・プロセッサのアーキテクチャは、例えば6つのような他のクラスタの数を含んでいてもよい。この場合、各バス・ラインのセットは、6セットのバスを描く6つのバス・ラインを含む。一般に、クロスバ・バス中のバス・ライン(すなわち、バス)の数は、結合された水平バス中のバス・ラインの数と等しい。
ノース命令バス140のクロスバ・バスのアーキテクチャは、2段の調停(アービトレーション)スキームをサポートする。調停スキームは、所定のマスタを指定のターゲットに選択的に接続するために使用され、命令がマスタからターゲットへ送ることを可能にする。第1ステージがマスタから所定のクラスタを選択するために使用される一方、第2ステージは、ノース・ターゲットのすべての中から指定のターゲットを選択するために使用される。内部クラスタにおける調停と称される第1調停ステージの結果は、クラスタ102A,102B,102C,102Dの各々に対して、それぞれORゲート240A,240B,240C,240Dとして描かれる。ORゲートの表記は、所定のクラスタに対していずれかのマスタがターゲット・トランザクション要求を開始する場合、全クラスタに対する要求を調停するプロセスが開始することを示すために使用される。各クラスタのノースのターゲット命令の出力ステージは、それぞれのクロスバ・バスを経由して、バス・ラインのセット200中の対応するバスに接続される。これらは、クロスバ・バス242A,242B,242C,242Dを含む。
図示された実施例では、トランザクション要求は、パイプライン方式のスキームを使用して、所定のクラスタ中のマスタ間に転送される。このパイプライン方式の設計は、現代のネットワーク・プロセッサによって使用されるパケット処理を行なうために用いられるマルチスレッドのアプローチを利用する。したがって、クラスタのための出力ステージに達するまで、ターゲット・トランザクション要求は、パイプライン中の1つのマスタから次のマスタへ受け渡される。出力ステージおよびクラスタにおける調停(つまり、複数のクラスタから送出された同時の要求間における調停)で内部クラスタ調停を獲得する際、命令はそのクラスタに対応する水平バス・ラインに置かれる。
図2aに示された別の概念は、ターゲットがターゲットとしてまたマスタとしての両方の動作をする能力である。例えば、汎用プロセッサ110、トラフィック管理108、PCIインターフェイス120、および、PCI高速インターフェイス122の各々は、ターゲットおよびマスタの両方を動作することができる。図2aに示されるように、追加のパイプライン方式のステージが、汎用プロセッサ110またはトラフィック管理108のうちの1つからクラスタ102Aを経由してターゲット・トランザクション要求を送り、および、PCIインターフェイス120またはPCI高速インターフェイス122のうちの1つからクラスタ102Bを経由してターゲット・トランザクション要求を送るために使用される。
図2bに示されるように、サウス命令バス150のためのバス・アーキテクチャは、一実施例によれば、図2aに示されるノース命令バス140のためのアーキテクチャと類似している。バス・アーキテクチャは、バス250A,250B,250C,260Dを含む水平バス・ラインのセット250を含む。ノース命令バスのアーキテクチャのように、それぞれのクロスバ・バスのセットは、それぞれの命令マルチプレクサを経由して、水平バス・ラインのセット150と様々なサウス・ターゲットとの間に配置される。これらは、クロスバ・バスのセット260,262,264,266,268,270、および、命令マルチプレクサ272,274,276,278,280,282を含む。さらに、命令マルチプレクサ284,286は、バスのセット250のそれぞれの終端に接続され、第1および第2暗号化ユニット124,138をそのバスのセットへ結合する。
上述されるように、ノースおよびサウス命令バスのアーキテクチャによって、ターゲットがノース・ターゲットまたはサウス・ターゲットかどうかにかかわらず、いずれのマスタもあらゆるターゲットにアクセスすることができる。更に、マスタ/ターゲットが、結合されたノースおよびサウス命令バスのアーキテクチャを経由してそのターゲットに送られる対応する命令によってアクセスされるターゲットとして、同じノースまたはサウス領域上になくても、これはターゲットとしてさらに動作するマスタまで拡張することができる。例えば、ノース・ターゲットおよびマスタの両方を動作するコンポーネントは、サウス・ターゲットにアクセスすることができる。
一実施例において、所定のクラスタの(または、そのクラスタに関連している外部マスタ/ターゲットのコンポーネントによる)メンバであるマスタによって発行された命令に対するそれぞれの内部クラスタにおける調停動作は、ノースおよびサウス・ターゲットの各グループのために実行される。サウスのターゲット命令に対する内部クラスタにおける調停の結果は、図2b中のORゲート241A,241B,241C,241Dによって描かれる。一方、各クラスタのサウスのターゲット命令の出力ステージは、各クロスバ・バスを経由して、バス・ラインのセット250中の対応するバス・ラインに接続される。これらは、クロスバ・バス243A,243B,243C,243Dを含む。このように、一実施例において、それぞれの命令は、ノースおよびサウス・ターゲットのグループの中から指定のターゲットへ同時に送られる。
図3aに、一実施例に従って、ノースのプル・データ・バス142の詳細が図示される。命令バスに関して、ノースのプル・データ・バスは、バス・ライン300A,300B,300C,300Dを含む水平バス・ラインのセット300を含むクロスバ構成を使用する。さらに、前述のように、クラスタ102A,102B,102C,102Dの各々は、ノースおよびサウスのプル・データ・バスの各々に対する内部クラスタにおける調停の獲得者(勝利者)を生成することができる。このように、ノースのプル・データ・バス142は、ORゲート340A,340B,340C,340Dを含み、それらは、クロスバ・バス342A,342B,342C,342Dにそれぞれ接続される。
このような高性能な相互接続スキームにおけるキーとなる試みは、相互接続上で転送されるバンド幅(最高転送速度)がピーク転送速度に非常に近接して追随するというような、バス上の高い利用性および有限な平均レイテンシを達成することである。上述のように、ダイサイズの制限により、ターゲットの数は、典型的にはチップ内部の利用可能なデータを送るバスの数を超える。一実施例に従って、この問題は、複数のターゲットを共通のデータ・バスのトラックを共有するサブグループへグループ化することにより取り扱われる。
従って、図3aに図示された実施例では、様々なノース・ターゲットは、ターゲット・サブグループ302(サブグループ[0]),304(サブグループ[1]),306(サブグループ[2]),308(サブグループ[3])へさらにグループ化される。(図中の残りのサブグループもそれぞれ[0]から[N−1]まで論理的な値が割当てられ、Nはクラスタの数に等しい。)一実施例において、各サブグループは、同様のアクセス特性を有するターゲットを含む。代わって、サブグループ304,306の各々は、それぞれのサブグループのデータ・マルチプレクサおよびクロスバ・バス・ラインのセットを経由して水平バス・ラインのセット200に接続される。これらのコンポーネントは、サブグループのデータ・マルチプレクサ304,306、および、クロスバ・バス・ラインのセット320,322を含む。一方、サブグループ302,308は、サブグループのデータ・マルチプレクサ310,316を経由して水平バス・ラインのセット300に接続される。
図3bに示されるように、サウスのプル・データ・バス152の一実施例は、上述したノースのプル・データ・バスのために使用されるのと類似する手法でサブグループ化するターゲットを使用する。図示された実施例では、サウス・ターゲットのサブグループは、サブグループ352,354,356,358を含む。さらに、サウスのプル・データ・バス152のためのプル・データ・バス構成は、ノースのプル・データ・バスと類似し、水平バス・ラインのセット350を使用するとともにバス・ライン350A,350B,350C,350Dを含む。これらのバスは、それぞれのクロスバ・バス・ラインのセット370,372,374,376を経由して、サブグループ・データのマルチプレクサ360,362,364,366に接続される。
一実施例において、所定のクラスタのメンバであるマスタのためのプル・データ・トランザクションに対応するそれぞれの内部クラスタにおける調停動作は(またはそのクラスタに関係している外部マスタ/ターゲット・コンポーネントによって)、ノースおよびサウス・ターゲットのグループの各々に対して実行される。サウス・ターゲットのプル・データ・バスに対する内部クラスタにおける調停結果は、図3bのORゲート341A,341B,341C,341Dによって示される。一方、各クラスタのサウスのプル・データ・バスの出力ステージは、それぞれのクロスバ・バスを経由してバス・ラインのセット350中の対応するバスに接続される。これらはクロスバ・バス343A,343B,343C,343Dを含む。このように、一実施例において、マスタからのデータをノースおよびサウス・ターゲットのグループ中から指定のターゲットへ転送する各プル・データ・トランザクションは、同時に実行される。
別の実施例では、ノースのプル・データ・バスは、ノース命令バスと類似した構成を有する一方で、サウスのプル・データ・バスは、サウス命令バス(両方とも図示せず)と類似した構成を有している。これらの実施例では、ノースおよびサウス・ターゲットのグループは、さらにサブグループへグループ化されることはない。
ノースおよびサウスのプルIDバス144,154の典型的な実施例が図4aおよび図4bにそれぞれ示される。図示された実施例では、様々なターゲットは、ノースおよびサウスのプル・データ・バスのために上述されたのと同様の方法でサブグループへさらにグループ化される。一般に、プル・データおよびIDバスのセットのために用いられるサブグループ化は、厳密な要求ではないにしても、一致すべきである。ノースおよびサウスのプルIDバスの一般的な構成は、上述した構成と同様に類似しており、複数のクロスバ・バスは水平バス・ラインのセットに接続される。さらに詳しくは、図4aに示されるノースのプルIDバス144の実施例は、バス・ライン400,400、400,400を含む水平バス・ラインのセット400を使用する一方、図4bに示されるサウスのプルIDバス154の実施例は、バス・ライン450,450,450,450を含む水平バス・ラインのセット450を使用する。
ノースおよびサウスのプルIDバスの各々は、サブグループの調停ステージおよびクラスタにおける調停ステージを含む2段の調停スキームを使用する。サブグループの調停ステージは、グループのどのメンバがプルIDバスへのアクセスが許可されているかを判断するために使用される。クラスタにおける調停ステージは、どの獲得サブグループがクラスタへのアクセスが許可されているかを判断するために使用され、そのクラスタへそのトランザクションの半分のマスタが属する。
第1ステージの調停動作に関して、それぞれのサブグループのIDマルチプレクサは、各サブグループに提供される。これらは、ノースのターゲット・サブグループに対するサブグループのIDマルチプレクサ402,402,402,402を含み、サウス・ターゲットのサブグループに対するサブグループのIDマルチプレクサ452,452,452を含む。第2レベルの調停動作に関して、それぞれのサブグループの選択IDマルチプレクサは、対応するクラスタに獲得サブグループを接続するために提供される。これらは、ノースのターゲット・サブグループのためにサブグループの選択IDマルチプレクサ410A,410B,410C,410Dを含み、サウス・ターゲットのサブグループのためにサブグループの選択IDマルチプレクサ460A,460B,460C,460Dを含む。
水平バス・ラインの各々は、クロスバ・バス・ラインの各セットを経由してサブグループの選択IDマルチプレクサの各々に接続される。これらは、水平バス・ラインのセット400(図4a)のためにクロスバ・バス・ラインのセット412A,412B,412C,412Dを含み、水平バス・ラインのセット450(図4b)のためにクロスバ・バス・ラインのセット462A,462B,462C,462Dを含む。
ノースおよびサウスのプッシュ・データ・バス146,156の典型的な実施例は、図5aおよび図5bに示される。図示された実施例では、様々なターゲットは、ノースおよびサウスのプル・データおよびIDバスのために上述と同様の方法でサブグループへさらにグループ化される。ノースおよびサウスのプッシュ・データ・バスの一般的な構成は、上述された構成と類似しており、複数のクロスバ・バスは、水平バス・ラインのセットに接続される。さらに詳しくは、図5aに示されるノースのプッシュ・データ・バス146の実施例は、バス・ライン500,500,500,500を含む水平バス・ラインのセット500を使用する一方、図5bに示されるサウスのプルIDバス156の実施例は、バス・ライン550,550,550,550を含む水平バス・ラインのセット550を使用する。
ノースおよびサウスのプッシュ・データ・バスの各々は、サブグループの調停ステージおよびクラスタにおける調停ステージを含む2段の調停スキームを使用する。サブグループの調停ステージは、グループのどのメンバにプッシュ・データ・バスへのアクセスを許可されているかを評価するために用いられる一方、クラスタにおける調停ステージは、どの獲得サブグループがクラスタへのアクセスが許可されているかを判断するために使用され、そのクラスタへそのトランザクションの半分のマスタが属する。
第1レベルの調停動作に関して、それぞれのサブグループのデータ・マルチプレクサは、各サブグループのために提供される。これらは、ノース・ターゲットのサブグループに対するサブグループのデータ・マルチプレクサ502,502,502,502を含み、サウス・ターゲットのサブグループに対するサブグループのデータ・マルチプレクサ552、552,552を含む。第2レベルの調停動作に関して、それぞれのサブグループの選択データ・マルチプレクサは、獲得サブグループを対応するクラスタに接続するために提供される。これらは、ノース・ターゲットのサブグループのためにサブグループの選択データ・マルチプレクサ510A,510B,510C,510Dを含み、また、サウス・ターゲットのサブグループのためにサブグループの選択データ・マルチプレクサ560A,560B,560C,560Dを含む。
水平バス・ラインの各々は、クロスバ・バス・ラインのそれぞれのセットを経由してサブグループの選択データ・マルチプレクサの各々に接続される。これらは、水平バス・ラインのセット500(図5a)に対するクロスバ・バス・ラインのセット512A,512B,512C,512Dを含み、水平バス・ラインのセット550(図5b)に対するクロスバ・バス・ラインのセット562A,562B,562C,562Dを含む。
ノースおよびサウスのプッシュIDバス148,158の典型的な実施例が、図6aおよび図6bにそれぞれ示される。図示する実施例では、様々なターゲットがノースおよびサウスのプッシュ・データ・バスのために上述したのと同様の方法でサブグループへグループ化される。一般に、プッシュ・データおよびIDバスのセットに使用されるサブグループ化は、厳密な要求ではないにしても、一致すべきである。従前のように、ノースおよびサウスのプッシュIDバスの一般的な構成は、水平バス・ラインのセットに接続される複数のクロスバ・バスを使用する。さらに詳しくは、図6aに示されるノースのプッシュIDバス148の実施例は、バス・ライン600,600,600,600を含む水平バス・ラインのセット600を使用する一方、図6bに示されるサウスのプッシュIDバス158の実施例は、バス・ライン650,650,650,650を含む水平バス・ラインのセット650を使用する。
ノースおよびサウスのプッシュIDバスの各々は、サブグループの調停ステージおよびクラスタにおける調停ステージを含む2段の調停スキームを使用する。サブグループの調停ステージは、グループのどのメンバがプッシュIDバスへのアクセスが許可されたかを判断するために使用される。クラスタにおける調停ステージは、どの獲得サブグループがクラスタへのアクセスが許可されているかを判断するために使用され、そのクラスタへそのトランザクションの半分のマスタが属する。
第1ステージの調停動作に関して、それぞれのサブグループのIDマルチプレクサは、各サブグループのために提供される。これらは、ノース・ターゲットのサブグループに対してサブグループのIDマルチプレクサ602,602,602,602を含み、サウス・ターゲットのサブグループに対してサブグループのIDマルチプレクサ652,652,652を含む。第2レベルの調停動作に関して、それぞれのサブグループの選択IDマルチプレクサは、獲得サブグループを対応するクラスタに接続するために提供される。これらは、ノース・ターゲットのサブグループに対してサブグループの選択IDマルチプレクサ610A,610B,610C,610Dを含み、サウス・ターゲットのサブグループに対してサブグループの選択IDマルチプレクサ660A,660B,660C,660Dを含む。
水平バス・ラインの各々は、それぞれのクロスバ・バス・ラインのセットを経由してサブグループの選択IDマルチプレクサの各々に接続される。これらは、水平バス・ラインのセット600(図6a)に対してクロスバ・バス・ラインのセット612A,612B,612C,612Dを、および、水平バス・ラインのセット650(図6b)に対してクロスバ・バス・ラインのセット662A,662B,662C,662Dを含む。
パケット処理動作中に、様々なトランザクション要求は、様々なマスタによって様々なターゲットへなされるであろう。以下の実施例において、リード・トランザクション要求および許可された後続の処理が考慮される。リード・トランザクション要求をサポートする調停動作は「プッシュ」調停と称され、その要求は「プッシュ・データ」(ターゲットからの読取り)トランザクション要求として知られる。プッシュ・データ・トランザクションをサポートするために以下説明される動作は、上述されかつここに示されるように、異なる構成を有するプル・データおよびIDバス以外は、一般に類似した「プル・データ」(ターゲットへの書込み)トランザクションが例示となる。
いくつかの実施例の解釈では、バス競合の問題は、2段の調停スキームを用いて解決されるが、その第1ステージは、サブグループ間で調停し、そして第2ステージは、処理要素のクラスタ間で調停する。例えば、ノースのプッシュ・データおよびIDバスのために使用される典型的な2段調停スキームの実施例の詳細が図7aおよび図7bに示される。同様の調停スキームは、ノースおよびサウスのプル・データおよびIDバスと同様に、サウスのプッシュ・データおよびIDバスに使用することができる。
図7aにおけるノースのプッシュ・データ・バスの調停スキームは、それぞれの第1ステージ(サブグループ)アービタ700(サブグループ302(サブグループ[0])に対しSG0、サブグループ304(サブグループ[1])に対してSG1、サブグループ306(サブグループ[2])に対してSG2、および、サブグループ308(サブグループ[3])に対してSG3とラベルが付される)を使用し、それはサブグループの選択データ・マルチプレクサ5021−4の動作を制御するために用いられる。同様に、それぞれの第2ステージ(クラスタ)のアービタ702(クラスタ102A(クラスタ[A])に対してC0、クラスタ102B(クラスタ[B])に対してC1、クラスタ102C(クラスタ[C])に対してC2、および、クラスタ102D(クラスタ[D])に対してC3とラベルが付される)は、サブグループの選択データ・マルチプレクサ510A−Dの動作を制御するために用いられる。
[0059] 図7bは、ネットワーク・プロセッサのアーキテクチャ100の一実施例であるプッシュIDバスのインフラストラクチャその他の詳細を示す。プッシュ・データ・バスに関して、それぞれの第1ステージ(サブグループ)アービタ700(例えば、SG0,SG1,SG2,SG3)は、サブグループの選択IDマルチプレクサ6021−4の動作を制御するために使用される。同様に、それぞれの第2ステージ(クラスタ)アービタ702(例えば、C0,C1,C2,C3)は、サブグループの選択IDマルチプレクサ610A−Dの動作を制御するために用いられる。
図1のアーキテクチャ100を実現し、上述した2段の調停動作をサポートするネットワーク・プロセッサは、ライン・カードやルータなどに制限されることはないが、様々なネットワーク装置中で実現されてもよい。図8は、ネットワーク・プロセッサのアーキテクチャ100を実現するネットワーク・プロセッサ802を含む、ネットワーク装置800の典型的なアーキテクチャを示す。(図8はノースのプッシュ・データ・バス146およびサウスのプッシュ・データ・バス148に対応するバス要素を示すに過ぎず、ネットワーク・プロセッサ802がネットワーク・プロセッサのアーキテクチャ100のために上述以外の他のバスをさらに含むことに注意すべきである。)一般に、図1および図8中の同じ番号のコンポーネントは同様の機能を行なう。さらに、ネットワーク・プロセッサ802は、ハッシュ・ユニット132に結合され、かつ、サブグループ356Aのメンバであるプライベート・キー暗号(PKE)コンポーネント133と同様に、SRAM制御チャネル812,814、RDRAM制御チャネル816,818を含む。
図8に図示された実施例では、マイクロエンジン104は、ローカル資源106の共通のセットを共有する2つのマイクロエンジンのセットにグループ化される。ローカル資源は、典型的にはローカルメモリ、命令キャッシュ、レジスタなどのようなマイクロエンジン(または、このケースではマイクロエンジンの対)に特有の資源を含んでいてもよい。他の実施例では、マイクロエンジンは、2又はそれ以上を越えるメンバを有するグループ中のローカル資源を共有するために形成されてもよく、あるいは、それらは、自分自身のローカル資源のセットを有するように形成してもよい。
上述のように、ネットワーク・プロセッサのアーキテクチャ100のクロスバ・シャーシ構成により、様々なマスタ(例えば、マイクロエンジン104)は、対応するトランザクション要求を介して様々なターゲットにアクセスすることができる。いくつかの実施例では、「有効な」ターゲットにサポートされた実際のデータまたは動作のいくつかは、ネットワーク・プロセッサのチップ上に提供される一方、他のものはチップ外に提供される。例えば、NRAM制御チャネルは、(前述の議論に対して)ターゲットを含むことがある一方、有効なターゲットは、(制御チャネルはそれ自身データを格納しないので)NRAM制御チャネル経由でアクセスされる実際のNRAM格納となる。
図8に示された典型的な構成では、オンチップの「有効な」ターゲットは、トラフィック管理108、汎用プロセッサ110,暗号化ユニット124,138、ハッシュ・ユニット132、および、パブリック・キー暗号ユニット133を含む。その一方で、チップ外の様々な有効なターゲットは、外部SRAM格納812A,814a、外部RDRAM格納816A,818A、1またはそれ以上のPCI高速デバイス(例えば、拡張カード)804、および、外部DRAM828,830,834を含む。各々のチップ外メモリ格納は、それぞれのインターフェイスによってそのそれぞれの制御チャネルに接続される。これらは、SRAMインターフェイス812B,814B、RDRAMインターフェイス816B,818B、DRAMインターフェイス828B,830B,834B、および、PCI高速インターフェイス822を含む。
ネットワーク装置は、パケット処理動作を実行するために使用される。パケット処理中に実行される主な機能の1つは、パケットが転送されることになっている次のホップを決定することである。スイッチのような典型的なネットワーク装置は、複数の入出力ポートを含む。より正確には、スイッチは、複数の入出力(I/O)ポートを含み、その各々は、与えられたパケットを転送する状況において、入力または出力ポートのいずれかとして機能する。着信パケットは、与えられたI/Oポート(入力ポートとして機能する)で受け取られ、そのパケットは処理され、適切なI/Oポート(出力として機能する)を介して、そのパケットは次のホップへ転送される。このスイッチは、メディア・スイッチ構成として知られる複数のクロス接続を含む。そのスイッチ構成は、各I/Oポートを他のI/Oポートに接続する。このように、スイッチによって、所定のI/Oポートで受信したパケットをスイッチするために他のI/Oポートに結合された次のいずれかのホップへ送ることができる。
図8の典型的なネットワーク装置は、2セットのメディア・スイッチ構成806,808を含む。一実施例において、メディア・スイッチ構成806は、システム・パケット・インターフェイス・レベル4(System Packet Interface Level 4:SPI4)のインターフェイス807を経由して第1メディア・スイッチ構成インターフェイス126に接続される一方で、メディア・スイッチ構成808は、SPI4インターフェイス809を経由して第2メディア・スイッチ構成インターフェイス140に接続される。
一般に、前述の実施例の側面から、半導体製造技術を使用するプログラムされたロジックを使用して実現されてもよい。さらに、本説明による実施例は、機械読取り可能な媒体内で実行することもできる。例えば、上述の設計は、半導体デバイスの設計のために使用された設計ツールに関連する機械読取り可能な媒体内に格納され、また組み込まれてもよい。本実施例は、VHSICハードウェア記述言語(VHDL)、ベリログハードウェア記述言語またはSPICE言語でフォーマットされたネットリスト(netlist)を含む。
いくつかのネットリストの実施例は、行動レベルのネットリスト、レジスタ転送レベル(RTL)のネットリスト、ゲート・レベルのネットリスト、および、トランジスタ・レベルのネットリストを含む。機械読取り可能な媒体は、さらにGDS−IIファイルのようなレイアウト情報を有する媒体を含む。更に、ネットリスト・ファイルまたは半導体チップ設計用の他の機械読取り可能な媒体は、上述の教示方法を実現するためのシミュレーション環境で使用されてもよい。
アブストラクト中に記述されたことを含めて、本発明を図示する実施例の上記説明は、本発明を余す所なく説明する意図はなく、あるいは本発明を開示する厳格な構成に制限する意図はない。一方本発明の特定の実施例および例示は、図示する目的でここに示されており、当業者が認識するように、様々な均等の範囲内の修正は本発明の範囲内において可能である。
これらの修正は、上記詳細な説明から本発明に対して行なうことができる。次の請求項で使用される用語は、本発明を明細書と図面に示された特定の実施例に制限するためには解釈されるべきでない。もっと正確に言えば、本発明の範囲は、次の請求項によって完全に決められるべきであり、それは確立した請求項の解釈原理に従って解釈されるべきである。
本発明の一実施例に従って、各クラスタが複数のマスタを含む複数のクラスタがクロスバ構成を有する複数のバスを含むシャーシ相互接続によって複数の共有ターゲット資源(ターゲット)に接続されるネットワーク・プロセッサのアーキテクチャの概要図である。 本発明の一実施例に従って、ノースの命令バスの詳細を示す概要図である。 本発明の一実施例に従って、サウスの命令バスの詳細を示す概要図である。 本発明の一実施例に従って、ノースのプル・データ・バスの詳細を示す概要図である。 本発明の一実施例に従って、サウスのプル・データ・バスの詳細を示す概要図である。 本発明の一実施例に従って、ノースのプル請求者識別子(ID)バスの詳細を示す概要図である。 本発明の一実施例に従って、ノースのプルIDバスの詳細を示す概要図である。 本発明の一実施例に従って、ノースのプッシュ・データ・バスの詳細を示す概要図である。 本発明の一実施例に従って、サウスのプッシュ・データ・バスの詳細を示す概要図である。 本発明の一実施例に従って、ノースのプッシュ・IDバスの詳細を示す概要図である。 本発明の一実施例に従って、サウスのプッシュ・IDバスの詳細を示す概要図である。 図1におけるネットワーク・プロセッサのアーキテクチャの詳細を、2段の調停を備えるパイプラインのプッシュ・データ・バスの詳細を含めて、さらに示す概要図である。 図7aにおけるネットワーク・プロセッサのアーキテクチャの詳細を、2段の調停を備えるパイプライン請求者の識別子バスの詳細を含めて、さらに示す概要図である。 本発明の一実施例に従って、図1のアーキテクチャを実現するネットワーク・プロセッサを含むネットワーク装置の概要図である。

Claims (28)

  1. 複数のクラスタ内に形成された複数のマスタと、
    複数のターゲットであって、各ターゲットは、前記複数のマスタにアクセス可能である共有可能な資源を含み、前記ターゲットは、サブグループに結合され、1またはそれ以上の該サブグループは、前記ターゲットの少なくとも2つを含む、複数のターゲットと、
    前記複数のクラスタと前記複数のターゲットとの間に接続された複数のバス・ラインのセットからなるクロスバ相互接続を形成する相互接続であって、前記バス・ラインのセットは、命令バス、ターゲットへ書込むためのプル・データ・バス、および、ターゲットの読取りのためのプッシュ・データ・バスに対応する、相互接続と、
    所定のクラスタを所定のターゲットに選択的に接続し、命令およびデータが前記所定のクラスタと前記所定のターゲットとの間で受け渡しされることを可能にするマルチプレクサ回路と、
    前記マルチプレクサ回路を制御するために結合されたマルチステージ調停ロジックであって、前記マルチステージ調停ロジックは、所定のサブグループ内におけるターゲット間のアクセスを調停するための少なくとも1つのサブグループ・アービタ、および、所定のクラスタ内におけるマスタ間のアクセスを調停するための少なくとも1つのクラスタ・アービタを含む、マルチステージ調停ロジックと、
    を含むことを特徴とする装置。
  2. 前記複数のクラスタと前記複数のターゲットとの間に接続される複数のバス・ラインのセットからなるクロスバ相互接続を形成するプル・データ要求識別(ID)バスをさらに含むことを特徴とする請求項1記載の装置。
  3. 前記複数のクラスタと前記複数のターゲットとの間に接続される複数のバス・ラインのセットからなるクロスバ相互接続を形成するプッシュ・データ要求識別(ID)バスをさらに含むことを特徴とする請求項1記載の装置。
  4. 前記ターゲットの第1部分は、前記命令バス、プル・データ・バス、および、プッシュ・データ・バスの第1実現に対応する第1の複数のバス・ラインのセットに関連し、前記ターゲットの第2部分は、前記命令バス、プル・データ・バス、および、プッシュ・データ・バスの第2実現に対応する第2の複数のバス・ラインのセットに関連することを特徴とする請求項1記載の装置。
  5. 前記装置は、プロセッサを含み、かつ、前記複数のマスタは、複数のプロセッサ・コア要素を含むことを特徴とする請求項1記載の装置。
  6. ターゲットがターゲットまたはマスタのいずれかで選択的に動作することを可能にするためのバス回路をさらに含むことを特徴とする請求項1記載の装置。
  7. ターゲットまたはマスタのいずれかで選択的に動作することができる汎用プロセッサをさらに含むことを特徴とする請求項6記載の装置。
  8. ターゲットまたはマスタのいずれかで選択的に動作することができるトラフィック管理をさらに含むことを特徴とする請求項6記載の装置。
  9. ターゲットまたはマスタのいずれかで選択的に動作することができる周辺部品相互接続(PCI)インターフェイスおよびPCI高速インターフェイスのうちの1つをさらに含むことを特徴とする請求項6記載の装置。
  10. 選択されたターゲットはサブ−グループにグループ化され、各サブグループは、前記プッシュ・データ・バスおよび前記プル・データ・バスの各々に対するそれぞれのサブグループのマルチプレクサ回路を含み、前記サブグループ中の前記ターゲットが前記相互接続を経由して前記複数のクラスタに選択的に接続されることを可能にすることを特徴とする請求項1記載の装置。
  11. 前記ターゲットのうちの1つは、メディア・スイッチ構成のインターフェイスを含むことを特徴とする請求項1記載の装置。
  12. 前記ターゲットのうちの1つは、メモリ制御器を含むことを特徴とする請求項1記載の装置。
  13. 前記装置は集積回路(IC)チップを含み、前記複数のターゲットは、前記ICチップの周囲に近接して配置される一方、マスタの前記複数のクラスタは、前記ICチップの中心部分に向けて配置されることを特徴とする請求項1記載の装置。
  14. 前記所定のクラスタのマスタは、ターゲット・トランザクション要求が前記所定のクラスタのための出力ステージに達するまで、前記ターゲット・トランザクション要求がパイプライン中をマスタから次のマスタへ受け渡されることを特徴とする請求項1記載の装置。
  15. 複数のクラスタ内に形成された複数のマスタと、
    複数のターゲットであって、各ターゲットは、前記複数のマスタにアクセス可能である共有可能な資源を含む、複数のターゲットと、
    前記複数のクラスタと前記複数のターゲットとの間に接続された複数のバス・ラインのセットからなる、クロスバ相互接続を形成する相互接続手段であって、前記バス・ラインのセットは、命令バス、ターゲットへ書込むためのプル・データ・バス、および、ターゲットの読取りのためのプッシュ・データ・バスに対応する、相互接続手段と、
    前記命令バス、プル・データ・バス、およびプッシュ・データ・バスの各々に対して所定のクラスタを所定のターゲットに選択的に接続するためのマルチプレクサ手段であって、命令およびデータが前記所定のクラスタと前記所定のターゲットとの間で受け渡しされることを可能にする、マルチプレクサ手段と、
    前記命令バス、プル・データ・バス、および、プッシュ・データ・バスの各々を調停するために、前記マルチプレクサ手段を制御するために結合されたバス調停手段であって、前記バス調停手段は、所定のサブグループ内におけるターゲット間のアクセスを調停するための少なくとも1つのサブグループ・アービタ、および、所定のクラスタ内におけるマスタ間のアクセスを調停するための少なくとも1つのクラスタ・アービタを含む、バス調停手段と、
    を含むことを特徴とする装置。
  16. 前記相互接続手段は、第1部分および第2部分を含み、前記複数のターゲットは、第1および第2セットのターゲットに分割され、前記第1セットのターゲットは、前記相互接続手段の前記第1部分を経由して前記複数のクラスタに接続され、前記第2セットのターゲットは、前記相互接続手段の前記第2部分を経由して前記複数のクラスタに接続されことを特徴とする請求項15記載の装置。
  17. 前記装置はネットワーク・プロセッサ手段を含み、前記複数のマスタは複数のパケット処理手段を含むことを特徴とする請求項15記載の装置。
  18. ターゲットがターゲットまたはマスタのいずれかで選択的に動作することを可能にするための手段をさらに含むことを特徴とする請求項15記載の装置。
  19. 命令およびデータを、各クラスタ内のマスタからおよびマスタへ転送するための手段をさらに含むことを特徴とする請求項15記載の装置。
  20. 選択されたターゲットはサブ−グループにグループ化され、各サブグループは、前記プッシュ・データ・バスおよび前記プル・データ・バスの各々に対して、それぞれのサブグループのマルチプレクサ手段、および、バス調停手段を含み、前記サブグループ中の前記ターゲットが前記相互接続手段を経由して前記複数のクラスタに接続されることを可能にすることを特徴とする請求項15記載の装置。
  21. 前記ターゲットのうちの1つは、メディア・スイッチ構成のインターフェイス手段を含むことを特徴とする請求項15記載の装置。
  22. 前記ターゲットのうちの1つは、メモリ制御器手段を含むことを特徴とする請求項15記載の装置。
  23. ネットワーク・プロセッサであって、
    複数のクラスタ内に形成された複数の処理コア、
    複数のターゲットであって、各ターゲットは、前記複数の処理コアにアクセス可能な共有可能な資源を含み、前記ターゲットは、メディア・スイッチ構成のインターフェイスおよび周辺部品相互接続(PCI)高速インターフェイスを含む、複数のターゲット、
    前記複数のクラスタと前記複数のターゲットとの間に接続された複数のバス・ラインのセットを含む、クロスバ相互接続を形成するシャーシ相互接続であって、前記バス・ラインのセットは、命令バス、ターゲットへ書込むためのプル・データ・バス、および、ターゲット読込みのためのプッシュ・データ・バスに対応する、シャーシ相互接続、および
    前記所定のクラスタを前記所定のターゲットに選択的に接続するための前記命令バス、プル・データ・バス、プッシュ・データ・バスの各々のためのマルチプレクサ回路であって、命令およびデータが前記所定のクラスタと前記所定のターゲットとの間で受け渡しされることを可能にする、マルチプレクサ回路、
    前記マルチプレクサ回路を制御するために結合されたマルチステージ調停ロジックであって、前記マルチステージ調停ロジックは、所定のサブグループ内におけるターゲット間のアクセスを調停するとともに、所定のクラスタ内におけるマスタ間のアクセスを調停する、マルチステージ調停ロジックと、
    を含むネットワーク・プロセッサと、
    複数の入出力(I/O)ポート間のクロスオーバ接続を含み、その接続を経由してパケットが受け取られ、かつ転送され、前記メディア・スイッチ構成のインターフェイスに結合されたメディア・スイッチ構成と、
    前記PCI高速インターフェイスに結合されたPCI高速ボードと、
    を含むことを特徴とするネットワーク装置。
  24. ターゲットを含むダイナミック・ランダム・アクセス・メモリ(DRAM)制御チャネルと、
    前記DRAM制御チャネルに結合されたDRAM格納と、
    をさらに含むことを特徴とする請求項23記載のネットワーク装置。
  25. ターゲットを含む第2メディア・スイッチ構成のインターフェイスと、
    前記第2メディア・スイッチ構成のインターフェイスに結合された第2メディア・スイッチ構成と、
    を含むことを特徴とする請求項23記載のネットワーク装置。
  26. 前記複数のクラスタと前記複数のターゲットとの間に接続された複数のバス・ラインのセットを含み、クロスバ相互接続を形成するプル識別(ID)バスと、
    前記複数のクラスタと前記複数のターゲットとの間に接続された複数のバス・ラインのセットを含み、クロスバ相互接続を形成するプッシュ識別(ID)バスと、
    所定のクラスタを所定のターゲットに選択的に接続するための前記命令バス、プッシュ・データ・バス、および、プル・データ・バスの各々のためのマルチプレクサ回路であって、命令およびデータが前記所定のクラスタと前記所定のターゲットとの間で受け渡されることを可能にする、マルチプレクサ回路と、
    をさらに含むことを特徴とする請求項23記載のネットワーク装置。
  27. 前記プッシュ・データ・バスのための前記マルチプレクサ回路は、プッシュ・データ・マルチプレクサを含み、前記プッシュIDバスのための前記マルチプレクサ回路は、プッシュIDマルチプレクサを含み、前記装置は、前記複数の処理コアから前記シャーシ相互接続を経由して前記複数のターゲットに発行されるプル・データ・トランザクション要求の許可を調停するために、前記ターゲット、プッシュ・データ・マルチプレクサ、および、プッシュIDマルチプレクサに動作可能に結合された2段アービタをさらに含むことを特徴とする請求項26記載のネットワーク装置。
  28. 選択されたターゲットはサブグループへグループ化され、前記2段アービタは、
    対応するサブグループ中のターゲットによって発行されたトランザクション要求を調停する、サブグループ・アービタを含む第1調停ステージと、
    1またはそれ以上のサブグループ・アービタから前記クラスタ・アービタに発行された獲得トランザクション要求を調停するクラスタ・アービタを含む第2調停ステージと、
    を含むことを特徴とする請求項27記載のネットワーク装置。
JP2007543156A 2004-11-23 2005-11-10 マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム Expired - Fee Related JP4564065B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/997,624 US7707266B2 (en) 2004-11-23 2004-11-23 Scalable, high-performance, global interconnect scheme for multi-threaded, multiprocessing system-on-a-chip network processor unit
PCT/US2005/041182 WO2006057847A1 (en) 2004-11-23 2005-11-10 Scalable, high-performance, global interconnect scheme for multi-threaded, multiprocessing system-on-a-chip network processor unit

Publications (2)

Publication Number Publication Date
JP2008521131A JP2008521131A (ja) 2008-06-19
JP4564065B2 true JP4564065B2 (ja) 2010-10-20

Family

ID=36035668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007543156A Expired - Fee Related JP4564065B2 (ja) 2004-11-23 2005-11-10 マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム

Country Status (5)

Country Link
US (1) US7707266B2 (ja)
JP (1) JP4564065B2 (ja)
CN (1) CN1816012B (ja)
DE (1) DE112005002351T5 (ja)
WO (1) WO2006057847A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4786238B2 (ja) * 2005-07-19 2011-10-05 東京応化工業株式会社 レジスト組成物の製造方法、ろ過装置、レジスト組成物の塗布装置
US8359421B2 (en) * 2009-08-06 2013-01-22 Qualcomm Incorporated Partitioning a crossbar interconnect in a multi-channel memory system
CN102289421B (zh) * 2011-07-26 2013-12-18 西安电子科技大学 一种基于交叉开关结构的片上互联方法
US9405713B2 (en) * 2012-02-17 2016-08-02 Netronome Systems, Inc. Commonality of memory island interface and structure
US8902902B2 (en) 2012-07-18 2014-12-02 Netronome Systems, Incorporated Recursive lookup with a hardware trie structure that has no sequential logic elements
CN105426793B (zh) * 2015-11-17 2018-02-06 无锡江南计算技术研究所 一种多端口设备控制器加解密调度控制方法
US11409436B2 (en) 2018-08-08 2022-08-09 Micron Technology, Inc. Buffer management in memory systems for read and write requests
US10782916B2 (en) 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US11481343B1 (en) * 2021-04-02 2022-10-25 Micron Technology, Inc. Transporting request types with different latencies

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5877799A (en) 1998-09-18 2000-04-10 Pixelfusion Limited Apparatus for use in a computer system
US6041400A (en) 1998-10-26 2000-03-21 Sony Corporation Distributed extensible processing architecture for digital signal processing applications
JP2969115B1 (ja) 1998-11-25 1999-11-02 株式会社日立製作所 半導体装置
DE19911954A1 (de) * 1999-03-17 2000-09-28 Siemens Ag Multiplexer-Bus mit lokalen Bus-Knoten
JP4573940B2 (ja) 1999-03-19 2010-11-04 パナソニック株式会社 クロスバススイッチ装置
US6842104B1 (en) 1999-03-19 2005-01-11 Matsushita Electric Industrial Co., Ltd. System lsi and a cross-bus switch apparatus achieved in a plurality of circuits in which two or more pairs of a source apparatus and a destination apparatus are connected simultaneously and buses are wired without concentration
US7013084B2 (en) * 2001-02-28 2006-03-14 Lambda Opticalsystems Corporation Multi-tiered control architecture for adaptive optical networks, and methods and apparatus therefor
US7043596B2 (en) 2001-08-17 2006-05-09 Sun Microsystems, Inc. Method and apparatus for simulation processor
KR100418395B1 (ko) * 2001-11-29 2004-02-14 삼성전자주식회사 멀티 디에스램 시스템
JP4181839B2 (ja) * 2002-09-30 2008-11-19 キヤノン株式会社 システムコントローラ
US7412551B2 (en) * 2004-06-30 2008-08-12 Intel Corporation Methods and apparatus for supporting programmable burst management schemes on pipelined buses
US7200699B2 (en) * 2004-09-02 2007-04-03 Intel Corporation Scalable, two-stage round robin arbiter with re-circulation and bounded latency
US20060095730A1 (en) * 2004-09-30 2006-05-04 Gilbert Wolrich Expansion of compute engine code space by sharing adjacent control stores using interleaved program addresses
US7512729B2 (en) * 2005-03-31 2009-03-31 Intel Corporation Method and apparatus for a high efficiency two-stage rotating priority arbiter with predictable arbitration latency

Also Published As

Publication number Publication date
CN1816012B (zh) 2012-02-15
US7707266B2 (en) 2010-04-27
JP2008521131A (ja) 2008-06-19
CN1816012A (zh) 2006-08-09
WO2006057847A1 (en) 2006-06-01
US20060112206A1 (en) 2006-05-25
DE112005002351T5 (de) 2007-10-11

Similar Documents

Publication Publication Date Title
JP4564065B2 (ja) マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム
JP4128956B2 (ja) デュアル・インライン・メモリモジュール・フォーマットにおいて一連のマルチアダプティブプロセッサを採用したクラスタ型コンピュータ用スイッチ/ネットワークアダプタポート
JP4083987B2 (ja) 多重レベル接続識別を備えた通信システム
US20170220499A1 (en) Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications
US20080082707A1 (en) Non-blocking bus controller for a pipelined, variable latency, hierarchical bus with point-to-point first-in first-out ordering
US7797467B2 (en) Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
JP2002510079A (ja) メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置
JP2003526157A (ja) オンチップダイナミックramを備えたvliwコンピュータ処理アーキテクチャ
EP3729261B1 (en) A centralized-distributed mixed organization of shared memory for neural network processing
US7512729B2 (en) Method and apparatus for a high efficiency two-stage rotating priority arbiter with predictable arbitration latency
US7200699B2 (en) Scalable, two-stage round robin arbiter with re-circulation and bounded latency
US7412551B2 (en) Methods and apparatus for supporting programmable burst management schemes on pipelined buses
TW200407712A (en) Configurable multi-port multi-protocol network interface to support packet processing
JP4860891B2 (ja) ビット順次手法により大容量並列プロセッサアレイをメモリアレイに接続する方法及び装置
US7346713B2 (en) Methods and apparatus for servicing commands through a memory controller port
US11093276B2 (en) System and method for batch accessing
JPH02171879A (ja) 複数のプロセッサと複数のメモリとを備えるデータ処理システム用中央処理ユニット
JP2004013324A (ja) 演算装置、データ転送システムおよびデータ転送プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100524

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100628

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100720

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100729

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

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees