JP4290556B2 - マルチプロセッサ・コンピュータ・システムにおける接続のためのスイッチングi/oノード - Google Patents

マルチプロセッサ・コンピュータ・システムにおける接続のためのスイッチングi/oノード Download PDF

Info

Publication number
JP4290556B2
JP4290556B2 JP2003550076A JP2003550076A JP4290556B2 JP 4290556 B2 JP4290556 B2 JP 4290556B2 JP 2003550076 A JP2003550076 A JP 2003550076A JP 2003550076 A JP2003550076 A JP 2003550076A JP 4290556 B2 JP4290556 B2 JP 4290556B2
Authority
JP
Japan
Prior art keywords
packet
transactions
point
upstream
bus
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 - Lifetime
Application number
JP2003550076A
Other languages
English (en)
Other versions
JP2005512194A5 (ja
JP2005512194A (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2005512194A publication Critical patent/JP2005512194A/ja
Publication of JP2005512194A5 publication Critical patent/JP2005512194A5/ja
Application granted granted Critical
Publication of JP4290556B2 publication Critical patent/JP4290556B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明はマルチプロセッサ・コンピュータ・システムのI/Oノードに関し、より詳細には、スイッチングI/Oノードに関する。
米国特許第6,085,276A号は、マルチプロセッサ・コンピュータ・システムを開示している。このシステムは、結合されたI/Oバスを介して外部デバイスとマルチプロセッサ・ノードの間で制御データを転送するために、プロセッサ・モジュール、メモリ・モジュール、およびI/Oプロセッサ(IOP)モジュールを結合しているローカルの9ポートのスイッチを備える。インタフェース・モジュールは、対応する複数の双方向クロック転送データ・リンクによってローカル・スイッチに結合されている。ローカル・スイッチは、QSA(クワド・スイッチ・アドレス:Quad Switch Address)制御チップとQSD(クワド・スイッチ・データ:Quad Switch Data)・スライス・チップとを備える。QSAチップは、プロセッサ・モジュール、IOPモジュールおよびメモリ間でアドレス・パスを制御するためのアービタを備える。さらに、QSAチップは、ローカル・スイッチを介したデータの流れを制御するためにQSDチップに対する制御を付与する。複数のトランザクションを含む転送メッセージに仮想チャネルが使用されており、各トランザクションは複数の別個の仮想チャネルに割り当てられる。仮想チャネルを使用することにより、データの一貫性(コヒーレンシー)が維持される。
処理ユニットを複数使用したコンピュータ・システムは、現行のシングルプロセッサ・ベースのシステムよりも費用面で満足できる高性能を実現すると期待されている。シングル・プロセッサではアプリケーションの全処理が1つのプロセッサに集中するが、マルチプロセッシング環境では、タスクをグループ分けして、複数のプロセッサで処理させることができる。これにより、処理負荷全体が複数のプロセッサに分散され、分散させたタスクの同時並列処理が可能となる。オペレーティング・システムのソフトウェアは、プログラム・コードの各種部分を、別個に実行可能なスレッドに分割して、通常は各スレッドに優先度レベルを割り当てる。
パーソナルコンピュータ(PC)やその他のコンピュータ・システムは、メモリにアクセスするための共有バス・システムを中心として設計されてきた。共有バスを介して、1つ以上のプロセッサと1つ以上の入出力(I/O)デバイスとがメモリに結合され得る。I/Oデバイスは、共有バスとI/Oデバイス間の情報の転送を管理するI/Oブリッジを介して共有バスに結合され得る。これに対し、プロセッサは、通常は共有バスに直接結合されるか、あるいはキャッシュ階層を介して共有バスに結合される。代表的なマルチプロセッサ・コンピュータ・システムについて、従来技術を図示した図1を参照して以下に記載する。
図1を参照すると、マルチプロセッサ・コンピュータ・システムの一実施形態のブロック図が示される。マルチプロセッサ・コンピュータ・システムは、プロセッサ・ユニット100A,100B、システム・バス105を介してプロセッサ・ユニット100A,100Bに結合されたシステム・コントローラ110、およびメモリ・バス125を介してシステム・コントローラ110に結合されたシステム・メモリ120を備える。さらに、システム・コントローラ110はI/Oバス135を介してI/Oハブ130に結合されている。
図1のマルチプロセッサ・コンピュータ・システムは、全処理ユニット100A,100Bが同じ記憶空間(すなわちシステム・メモリ120)を共有し、同じアドレス・マッピングを使用して記憶空間にアクセスするという点において対称的であり得る。さらに、このマルチプロセッシング・システムは、全処理ユニット100A,100BがI/Oハブ130に平等にアクセスできるという点においても対称的であり得る。
一般に、システム・メモリ120内には、オペレーティング・システム・ソフトウェアの1つのコピーが、各ユーザー・アプリケーションのファイルの1つのコピーとともに格納され得る。処理ユニット100A,100Bの各々は、オペレーティング・システム・ファイルおよびユーザー・アプリケーション・ファイルのこれら1つのコピーから、オペレーティング・システムとユーザー・アプリケーションとを実行し得る。処理コア(図示せず)が同時にコードを実行することができるものの、所定のある時点において、システム・バス105の制御権(mastership)を取得するのは、処理ユニット100A,100Bのいずれか一方だけである。このため、処理ユニット100A,100Bが同時にバス要求を行った場合に、所定の調停アルゴリズムに基づいてこの要求を調停して、処理ユニット100A,100Bのいずれかに制御権を付与するバス調停メカニズムがシステム・コントローラ110に設けられることになる。各種のバス調停技術が公知となっている。
図1のコンピュータ・システムに使用される共有バス(例えばシステム・バス105)は、システム・バスの調停に起因し得る制約のほかに、帯域幅が狭いなどの欠点を有することがある。共有バスに追加のプロセッサが接続されると、プロセッサが複数接続されたことにより、バスで信号を駆動しているデバイスに対する容量性負荷が上昇する。また、接続ポイントが複数存在することにより、高い周波数に対応した伝送線のモデルが比較的複雑となる。このため、動作周波数が低下する可能性がある。
一部のコンピュータ・システムでは、共有バスの欠点の一部を解消するため、デバイス間すなわちノード間でパケット・ベースの通信を行っている。この種のシステムでは、ノードは、情報のパケットを交換することによって、相互に通信することができる。一般に、「ノード」とは、相互接続においてトランザクションに参加することが可能なデバイスを指す。例えば、この相互接続はパケット・ベースであってもよく、ノードはパケットを送受信するように構成されてもよい。一般に、「パケット」とは、パケットを送信する発信元すなわち「ソース」ノードと、このパケットを受信する宛先すなわち「ターゲット」ノードとの2つのノード間で行われる通信のことである。パケットがターゲット・ノードに到着すると、ターゲット・ノードは、パケットが伝達する情報を受け取って、その情報を内部的に処理する。ソース・ノードとターゲット・ノードとの間の通信経路に存在するノードが、ソース・ノードからターゲット・ノードにパケットを中継すなわち転送することもある。
図2を参照すると、複数本の下りパケット・バス・リンクを1本の上りパケット・バス・リンクに切り替えているマルチプロセッサ・コンピュータ・システムが示される。マルチプロセッサ・コンピュータ・システム200は、プロセッサ201Aおよびプロセッサ201Bを備え、これらはシステム・バス202によって相互接続されている。プロセッサ201Bは、パケット・バス・リンク205によってI/Oノード・スイッチ210に接続されている。I/Oノード・スイッチ210はさらに、別のパケット・バス・リンク215を介してI/Oノード220に接続されている。さらに、I/Oノード・スイッチ210は、パケット・バス・リンク225を介して別のI/Oノード230に接続されている。
プロセッサ201A,201Bについては、図1のプロセッサ101A,101Bとほぼ同じように動作し得る点が留意される。しかし、図2ではI/Oの接続が異なっている。I/Oノード・スイッチ210は、プロセッサ201Aまたは201BからI/Oノード220,230のいずれへ通信を行うためのスイッチング・メカニズムを提供し得る。このタイプのシステムでは、プロセッサ201Bは、I/Oノード220,230と通信するためのホスト・ブリッジ(図示なし)を備え得る。さらに、プロセッサ201Aは、プロセッサ201Bを介してI/Oノード220,230と通信し得る。このように結合されたシステムは、図2のパケット・バスを使用することによって、図1に示されるマルチプロセッサ・システムよりも優れたマルチプロセッシング・ソリューションとなり得るが、それでも欠点が解消されない可能性がある。例えば、プロセッサ201Aが生成したトランザクション、またはプロセッサ201A宛のトランザクションは、最初にプロセッサ201Bを通過するため、レイテンシ・ペナルティ(latency penalties)を発生させる可能性がある。
マルチプロセッサ・コンピュータ・システムにおける接続のためのスイッチングI/Oノードの各種実施形態が開示される。一実施形態においては、マルチプロセッサ・コンピュータ・システム用の入出力ノード・スイッチは、集積回路チップに実装されたブリッジ・ユニットを備える。このブリッジ・ユニットは、PCIバスなどの周辺バスから、複数の周辺トランザクションを受信するように結合され得、この複数の周辺トランザクションに対応する複数の上りパケット・トランザクションを送信するように構成され得る。入出力ノード・スイッチは、集積回路チップに実装されたパケット・バス・スイッチ・ユニットをも備える。このパケット・バス・スイッチ・ユニットは、複数の上りパケット・トランザクションを内部ポイントツーポイント・パケット・バス・リンクで受信するように結合され得、この複数の上りパケット・トランザクションの各々の宛先を判定するように構成され得る。パケット・バス・スイッチ・ユニットは、複数の上りパケット・トランザクションの宛先を判定すると、複数の上りパケット・トランザクションのうちの選択されたパケット・トランザクションを第1のポイントツーポイント・パケット・バス・リンクに結合された第1のプロセッサ・インタフェースにルーティングすると共に、複数の上りパケット・トランザクションのうちの他のパケット・トランザクションを第2のポイントツーポイント・パケット・バス・リンクに結合された第2のプロセッサ・インタフェースにルーティングするようにさらに構成され得る。
特定の一実装において、入出力ノード・スイッチは、集積回路チップに実装された第1のトランシーバ・ユニットおよび第2のトランシーバ・ユニットをさらに有する。第1のトランシーバ・ユニットは、複数の上りパケット・トランザクションのうちの選択されたパケット・トランザクションを受信して、この選択されたパケット・トランザクションを第1のポイントツーポイント・パケット・バス・リンクで送信するように結合され得る。第2のトランシーバ・ユニットは、複数の上りパケット・トランザクションのうちの他の選択されたパケット・トランザクションを受信して、この他の選択されたパケット・トランザクションを第2のポイントツーポイント・パケット・バス・リンクで送信するように結合され得る。ポイントツーポイント・パケット・バス・リンクの各々は、ハイパートランスポート(HyperTransport)バス・リンクであり得る。
特定の一実装において、パケット・バス・スイッチ・ユニットは、プログラム可能なルックアップ・テーブルを使用して複数の上りパケット・トランザクションの各々の宛先を判定するように構成され得る。
他の特定の実装において、パケット・バス・スイッチ・ユニットは、プロセッサなどの、第1の外部パケット・バス・リンク上流のデバイスおよび第2の外部パケット・バス・リンクに結合された上流のデバイスに対応する使用可能なバッファ空間を示す値を使用して、複数の上りパケット・トランザクションの宛先を判定するようにさらに構成され得る。
さらに別の特定の実装において、パケット・バス・スイッチ・ユニットは、前記複数の上りパケット・トランザクションの各々に関連付けられたアドレスをデコードするように構成され得る。さらに別の特定の実装において、パケット・バス・スイッチ・ユニットは、このアドレスに基づいて、複数の上りパケット・トランザクションのうちの追加のトランザクションをブロックするように構成され得る。
本発明は、様々に変形されたり代替形態を取り得るが、その特定の実装形態が、例として図中に図示され、かつ本明細書に詳細に記載される。しかし、図面および詳細な説明は、開示の実施形態に本発明を限定することを意図するものではなく、本発明が添付の特許請求の範囲によって規定される本発明の趣旨ならびに範囲に含まれる全ての変形例、均等物および代替例を含むことを意図したものであることが理解されるべきである。
図3を参照すると、複数本の上りパケット・バス・リンクを有するマルチプロセッサ・コンピュータ・システムのブロック図が示される。マルチプロセッサ・コンピュータ・システム300は、プロセッサ301A〜301Dを備え、プロセッサ301A〜301Dは、それぞれ一対のI/Oパケット・バス・リンク315A,315Bを介してI/Oノード・スイッチ・デバイス310に結合されている。プロセッサ301A〜Dは、コヒーレント・パケット・バス・リンク305A〜Dを介して結合されている。I/Oノード・スイッチ310が、周辺バス340とI/Oリンク345とに接続されていることが示されている。I/Oノード・スイッチ310はさらに、I/Oパケット・バス・リンク325を介してI/Oノード320に結合されている。
I/Oノード320は別のI/Oパケット・バス・リンク330に結合されており、このI/Oパケット・バス・リンク330は、他のI/Oノード(図示なし)に接続されることがある。なお、マルチプロセッサ・コンピュータ・システム300の各要素の構成が異なる実施形態もとり得る。例えば、別の実施形態では、プロセッサの数が異なっており、追加のプロセッサが追加のI/Oパケット・バス・リンク(図示なし)を介してI/Oノード・スイッチ310に結合される構成をとっても良い。さらに、I/Oリンク345が、マルチプロセッサ・コンピュータ・システム300と同じネットワーク内または異なるネットワーク内でデバイスに接続されていてもよい。
図中の実施形態においては、コヒーレント・パケット・バス・リンク305の各々は、一方向のラインの組として実施される(例えば、ライン305Bはプロセッサ301Aからプロセッサ301Bにパケットを送信するために使用され、ライン305Cはプロセッサ301Bからプロセッサ301Cにパケットを送信するために使用される)。図3に示すように、これ以外のラインの組305A,Dは、他のプロセッサ間でのパケットの送信に使用される。コヒーレント・パケット・インタフェース305は、処理ノード間の通信について、キャッシュ・コヒーレントな方法で動作し得る(「コヒーレント・リンク」)。
さらに、I/Oパケット・バス315は、I/Oノード間、およびI/Oノードとプロセッサ間(プロセッサ301Aなど)の通信について、非コヒーレントな方法で動作し得る(「非コヒーレントなリンク」)。また、この非コヒーレント・リンクは、一方向のラインの組として実装されてもよい(例えば、ライン315Aはプロセッサ301AからI/Oノード・スイッチ310にパケットを送信するために使用され、ライン315Bはプロセッサ301BからI/Oノード・スイッチ310にパケットを送信するために使用される)。コヒーレント・リンクを介した2つ以上のノード間の相互接続は、「コヒーレント・ファブリック」と呼ばれることがある。
同様に、非コヒーレント・リンクを介した2つ以上のノード間の相互接続は、「非コヒーレント・ファブリック」と呼ばれることがある。1つのプロセッサから別のプロセッサに送信されるパケットが、1つ以上の中間ノードを通過することがあり得る点が留意される。例えば、プロセッサ301Aからプロセッサ301Cに送信されるパケットは、図3に示すようにプロセッサ301Bまたはプロセッサ301Dを通過することがあり得る。適したルーティング・アルゴリズムであれば、どのようなルーティング・アルゴリズムでも使用され得る。プロセッサ301C,Dを囲む破線によって示されるように、図3の実施形態とはプロセッサの数が異なるマルチプロセッサ・コンピュータ・システム300の実施形態も可能である。
ここに示す実施形態においては、プロセッサ301A〜Dの各々の例として、アスロン[Athlon(登録商標)]マイクロプロセッサなどのx86アーキテクチャ・プロセッサがある。しかし、適したプロセッサであれば、別のプロセッサを使用してもよい。さらに、I/Oパケット・バス・リンク315A,Bおよび325は、高速ポイントツーポイント・パケット・インタフェースの代表的なリンクであって、ハイパートランスポート[HyperTransport(登録商標)]技術と互換性を有する。さらに、I/Oリンク345は、イーサネット(Ethernet)接続またはインフィニバンド[Infiniband(登録商標)]接続などの代表的な接続である。周辺バス340は、例えば、PCI(Peripheral Component Interconnect:周辺機器相互接続)またはPCI−X(Extended Peripheral Component Interconnect:拡張周辺機器相互接続)バスなどの、適切な任意の周辺バスの一例である。
マルチプロセッサ・コンピュータ・システム300などのマルチプロセッサ・コンピュータ・システムにおいて、システム・メモリ内には、オペレーティング・システム・ソフトウェアの1つのコピーと、各ユーザー・アプリケーションのファイルの1つのコピーとが格納され得る。処理ユニット301A〜301Bの各々は、オペレーティング・システム・ファイルおよびユーザー・アプリケーション・ファイルのこれら1つのコピーから、オペレーティング・システムとユーザー・アプリケーションとを実行し得る。
図中の実施形態においては、プロセッサ301A,301Bの各々は、それぞれI/Oパケット・バス・リンク305A,305Bに対するインタフェースを有するホスト・ブリッジ(図示なし)を備え得る。他の実施形態においては、プロセッサ301C,301Dもホスト・ブリッジを備えており、追加のI/Oパケット・バス・リンクに接続されていてもよいことが考察される。図4および図5の説明で詳細に後述するように、I/Oノード・スイッチ310は下流のソース・ノードから複数のパケット・トランザクションを受信して、プロセッサ301A,Bなど、複数の上流の宛先にこのトランザクションをルーティングし得る。本明細書中で使用されるように、「上り(上流)」との用語は、プロセッサ301Aなどのプロセッサ、またはプロセッサ内のホスト・ブリッジに向かう方向に流れるトランザクションを指す。「下り(下流)」との用語は、プロセッサまたはプロセッサ内のホスト・ブリッジから離れる方向に流れるトランザクションを指す。
一般に、パケットとは、2つのノード間(パケットを送信する開始ノード、およびこのパケットを受信する宛先ノード)で行われる通信である。開始ノードおよび宛先ノードは、パケットがその一部であるトランザクションのソース・ノードおよびターゲット・ノードと一致しないこともあれば、いずれがソース・ノードまたはターゲット・ノードであることもある。制御パケットとは、トランザクションに関する制御情報を伝達するパケットのことである。一部の制御パケットは、後にデータ・パケットが続くことを指定している。データ・パケットは、トランザクションに対応するデータと、指定を行っているこの制御パケットに対応するデータとを伝達する。一実施形態においては、制御パケットは、コマンド・パケット、情報パケットおよび応答パケットを含んでいてもよい。別の実施形態においては、これ以外の種類のパケットを含むことがあることが考察される点が留意される。
I/Oノード・スイッチ310は、例えば周辺バス340、ネットワーク・リンク345およびI/Oパケット・バス325など、複数の下流のソース・ノードから上りパケット・トランザクションを受信し得る。通常、各パケット・トランザクションは、アドレスがエンコードされているヘッダを有し得る。I/Oノード・スイッチ310は、各パケット・トランザクションの宛先アドレスをデコードして、デコードされたアドレスに基づいてトランザクションをルーティングし得る。また、I/Oノード・スイッチ310は、プロセッサ301A〜Dが発信した下りパケット・トランザクションも受信し得る。I/Oノード・スイッチ310は、各パケット・トランザクションの宛先アドレスをデコードし、そのアドレスに従ってパケット・トランザクションをルーティングし得る。
図4に、I/Oノード・スイッチの一実施形態のブロック図を示す。I/Oノード・スイッチ400は、I/Oパケット・バス401,402にそれぞれ結合された1対の上流のトランシーバ410,420を有する。I/Oパケット・バス・リンク401,402は、例えば、図1のプロセッサ301A,Bなどの上流のデバイスに結合され得る。また、図4のトランシーバ410,420は、それぞれ内部パケット・バス・リンク415,425を介してパケット・バス・スイッチ430に結合されている。
パケット・バス・スイッチ430は、内部パケット・バス・リンク435によってインタフェース・バス440に結合されている。インタフェース・バス440は、内部パケット・バス・リンク445を介して下流のトランシーバ480に結合されている。トランシーバ480はI/Oパケット・バス・リンク485に結合されており、I/Oパケット・バス・リンク485は他のI/Oノードまたは他のデバイス(図示なし)に接続され得る。また、インタフェース・バス440は、I/Oインタフェース470に結合されると共に、周辺インタフェース450,460に結合されている。
周辺インタフェース450,460は周辺バス455,465にそれぞれ結合されている。I/Oインタフェース470はI/Oリンク475に結合されている。本実施形態では2つの上流のトランシーバが2つのI/Oパケット・バス・リンクに接続されていることが図示されているが、別の実施形態では、上流のトランシーバおよびI/Oパケット・バス・リンクの数が他の適切な数であってもよいこととしてもよい。
I/Oインタフェース470は、集積化されたI/Oコントローラであり得、例えば、ギガビットイーサネット(Gigabit Ethernet)コントローラまたはインフィニバンドポート・コントローラなど、特定のI/Oデバイスを実装する回路を備え得る点が留意される。このような実施形態では、I/Oリンク475は、イーサネット接続またはインフィニバンド接続などの代表的な接続であり得る。周辺バス455,465の例として、例えば、PCI(Peripheral Component Interconnect:周辺機器相互接続)またはPCI−X(Extended Peripheral Component Interconnect:拡張周辺機器相互接続)バスなどの、適した任意の周辺バスがある。
トランシーバ410,420は、それぞれI/Oパケット・バス・リンク401,402で下りパケット・トランザクションを受信すると共に、上りパケット・トランザクションを送信するように構成され得る。トランシーバ410,420は、処理待ちのパケット・トランザクションを記憶するための送受信バッファ回路(図示なし)を備え得る。また、トランシーバ410,420は、I/Oパケット・バス・リンク401,402でパケット・トランザクションを送信するためのI/Oドライバ回路(図示なし)も備え得る。
パケット・スイッチ・ユニット430は、内部パケット・バス・リンク435で上りパケット・トランザクションを受信し、各トランザクションのアドレスをデコードして、各トランザクションをルーティングするための上りパスが存在すれば、そのパスを決定するように構成され得る。下記に詳細に記載するように、あるトランザクションが、パケット・バス・スイッチ430の上り内部パケット・バス・リンクのいずれにも関連付けられていないアドレスを含んでいる場合、そのパケット・トランザクションは下り方向に戻される。別法として、アドレスがパケット・バス・スイッチ430の上り内部パケット・バス・リンクに対応しているかどうかに関わらず、パケット・トランザクションが上り方向に送信されてもよい。
インタフェース・バス440は、内部パケット・バス・リンク435,445の各々、周辺インタフェース455,465、およびI/Oインタフェース470を相互接続するのに必要な内部パケット・バス・アーキテクチャと回路(図示なし)とを備え得る。例えば、インタフェース・バス440は、内部パケット・バス・リンク435、I/Oインタフェース470、周辺インタフェース450,460用のインタフェース・ポート(図示なし)と、内部パケット・バス・リンク445用のインタフェース・ポート(図示なし)とを備え得る。
各インタフェース・ポートは、特定のフィルタと一致するアドレスを有するパケット・トランザクションを要求する機能を備えたアドレス・フィルタを備え得る。このように、インタフェース・バス440は、周辺インタフェースの各々、I/Oインタフェース、および内部パケット・バス・リンク445の間でのピアツーピアのトラフィックを処理できるように構成され得る。
周辺インタフェース460宛のパケット・トランザクションが、周辺インタフェース450によって、インタフェース・バス440へ上り方向に送信される例を考える。インタフェース・バス440に接続されている各インタフェース・ポートによって、このパケット・トランザクションのヘッダがデコードされ得る。デコードされたアドレスは、周辺インタフェース460のアドレス・フィルタのみに一致し、従って、周辺インタフェース460によってアドレスが要求される。
あるインタフェースによって上り方向に送信されたパケット・トランザクションが、インタフェース・ポートのどのアドレス・フィルタとも一致しないことがある。そのような場合、パケット・バス・スイッチ430は、要求されなかったパケット・トランザクションを、トランザクションの発信元へ下り方向に戻し得る。さらに、存在しないアドレスがトランザクションに含まれていたことを示すエラー・メッセージが、トランザクションに付され得る。
別の実施形態においては、内部パケット・バス・リンク435用のインタフェース・ポートがアドレス・フィルタを有さないこともある。この場合、パケット・バス・スイッチ430は、要求されなかった全パケット・トランザクションを上りパケット・バス・リンク415,425のいずれかを介して上り方向に送信し得る。
パケット・バス・スイッチ430は、特定のトランザクションをどの上りパケット・バス・リンクに送信すべきかを判定し得る。この判定は、幾つかの要因によって決まる。一例を挙げると、上りトランザクションが、図1のプロセッサ301A〜Dなどのデバイスからの前に行われた下り要求に対する応答である場合、応答は、要求側のプロセッサに対応したアドレスを有し得る。このため、パケット・バス・スイッチ430は、上りトランザクションを正しいプロセッサにルーティングできる。
別の例では、上りトランザクションが、メモリ読込みを実行しているPCI−XデバイスなどのI/Oマスタからのものである場合、パケット・バス・スイッチ430は、この要求をどのプロセッサにルーティングすべきかを判定し得る。このため、パケット・バス・スイッチ430は、プロセッサが処理するトランザクションの種類を示すルックアップ・テーブルまたは類似するデータ構造を格納することができるプログラム可能な記憶回路(図示なし)を備え得る。この場合、オペレーティング・システムはこの種のテーブルの内容を判定して、パケット・バス・スイッチ430をプログラムする命令を、1つ以上のプロセッサに実行させ得る。したがって、I/Oマスタ・トランザクションがパケット・バス・スイッチ430によって受信されると、このテーブルがパケット・バス・スイッチ430によって使用され、パケット・トランザクションをどのプロセッサにルーティングすべきかが判定され得る。
ルックアップ・テーブルの情報が破損したか、その内容が最新ではなくなった場合、オペレーティング・システムによって上りパケット・トランザクションが別のプロセッサに間違って送信されることがある。それでも、誤ってルーティングされたパケット・トランザクションは、最終的に目的の宛先に到着することができる。ただし、このトランザクションが最初に別のプロセッサを経由してルーティングされ得るので、遅延が発生するおそれがある。誤ルーティングの再発を防止するため、トランザクションを受信したプロセッサは、エラー・メッセージを発生させることができる。このエラー・メッセージは、ルックアップ・テーブルを更新する必要があることをオペレーティング・システムに通知するものであり得る。次に、オペレーティング・システムは、自身の優先順序付け方式に従ってルックアップ・テーブルの更新をスケジューリングし得る。
他の形態においては、パケット・バス・スイッチ430は、各プロセッサのI/O負荷を判定して、I/O負荷が最も低いと判定されたプロセッサにトランザクションをルーティングするように構成されてもよい。パケット・バス・スイッチ430は、特定のプロセッサのホスト・ブリッジの受信バッファ内の記憶空間の使用可能度(availability)を確認するか、あるいは他の受信ロジックによってプロセッサのI/O負荷を判定し得る。続いて、パケット・バス・スイッチ430は、利用可能な受信バッファ空間が最も多いプロセッサにパケット・トランザクションをルーティングし得る。
また、パケット・バス・スイッチ430は、内部パケット・バス・リンク415,425の両方から下りパケット・トランザクションを受信するようにも構成され得る。内部パケット・バス・リンク415,425から同時にトランザクションが受信されることがある。さらに、パケット・バス・スイッチ430が、下りのイベントを待機している処理待ちのトランザクションを有していることがあり得る。このため、パケット・バス・スイッチ430は、例えばトランザクション間を調停するために、下りの内部パケット・バス・リンク・インタフェースにおいて調停回路(図示なし)を備え得、この調停回路はラウンド・ロビン方式などの周知の調停技術を1つ以上使用し得る。別の実施形態においては、この調停回路は、優先順位に基づいたものであってもよく、宛先の優先順位は、調停における主要な属性の1つである。
図5を参照すると、I/Oノード・スイッチの別の実施形態のブロック図が示される。I/Oノード・スイッチ500は、I/Oパケット・バス501,502にそれぞれ結合された1対の上流のトランシーバ510,520を有する。I/Oパケット・バス・リンク501,502は、例えば、図1のプロセッサ301A,Bなどの上流のデバイスに結合され得る。また、図5のトランシーバ510,520は、それぞれ内部パケット・バス・リンク515,525を介してパケット・バス・スイッチ530に結合されている。
パケット・バス・スイッチ530は、内部パケット・バス・リンク535によってインタフェース・バス540に結合されている。パケット・バス・スイッチ530は、内部パケット・バス・リンク545を介して下流のトランシーバ580に結合されている。トランシーバ580はI/Oパケット・バス・リンク585に結合されており、I/Oパケット・バス・リンク485は他のI/Oノードまたは他のデバイス(図示なし)に接続され得る。インタフェース・バス540は、I/Oインタフェース570に結合されると共に、周辺インタフェース550,560に結合されている。
周辺インタフェース550,560は周辺バス555,565にそれぞれ結合されている。I/Oインタフェース570はI/Oリンク575に結合されている。本実施形態では2つの上流のトランシーバが2つのI/Oパケット・バス・リンクに接続されているように図示されているが、別の実施形態では、上流のトランシーバおよびI/Oパケット・バス・リンクの数がこれ以外の適切な数であってもよいことが考察される。
トランシーバ510,520は、図4の実施形態と似た機能を備え、ほぼ同じように動作する。このため、トランシーバ510,520の動作については、図4に関して上記したトランシーバ410,420の説明を参照されたい。
I/Oインタフェース570は、集積化されたI/Oコントローラであり得、例えば、ギガビットイーサネットコントローラまたはインフィニバンドポート・コントローラなどの特定のI/Oデバイスを実装する回路を備え得るという点が留意される。
このような実施形態では、I/Oリンク575は、イーサネット接続またはインフィニバンド接続などの代表的な接続であり得る。周辺バス555,565の例として、例えば、PCI(Peripheral Component Interconnect:周辺機器相互接続)またはPCI−X(Extended Peripheral Component Interconnect:拡張周辺機器相互接続)バスなどの、適した任意の周辺バスがある。
パケット・スイッチ・ユニット530は、内部パケット・バス・リンク535で上りパケット・トランザクションを受信し、各トランザクションのアドレスをデコードして、各トランザクションをルーティングするための上りパスが存在すれば、そのパスを決定するように構成され得る。下記に詳細に記載するように、あるトランザクションが、パケット・バス・スイッチ530の上り内部パケット・バス・リンクのいずれにも関連付けられていないアドレスを含んでいる場合、そのパケット・トランザクションは下り方向に送信され得る。
インタフェース・バス540は、内部パケット・バス・リンク535,545の各々、周辺インタフェース555,565、およびI/Oインタフェース570を相互接続するのに必要な内部パケット・バス・アーキテクチャと回路(図示なし)とを備え得る。例えば、インタフェース・バス540は、内部パケット・バス・リンク535、I/Oインタフェース570、および周辺インタフェース550,560用のインタフェース・ポート(図示なし)を備え得る。
各インタフェース・ポートは、特定のフィルタと一致するアドレスを有するパケット・トランザクションを要求する機能を備えたアドレス・フィルタを備え得る。このように、インタフェース・バス540は、周辺インタフェースの各々、およびI/Oインタフェースの間でのピアツーピアのトラフィックを処理できるように構成され得る。周辺インタフェース560宛のパケット・トランザクションが、周辺インタフェース550によって、インタフェース・バス540へ上り方向に送信される例を考える。インタフェース・バス540に接続されている各インタフェース・ポートによって、このパケット・トランザクションのヘッダがデコードされ得る。
デコードされたアドレスは、周辺インタフェース560のアドレス・フィルタに一致し、このため周辺インタフェース560によって要求される。しかし、下記に詳述するように、内部パケット・バス・リンク545を介してトランシーバ580に接続されたI/Oノードまたは他のデバイス宛てのパケット・トランザクションは、最初に上り方向にルーティングされ得る。
あるインタフェースによって上り方向に送信されたパケット・トランザクションが、インタフェース・ポートのどのアドレス・フィルタとも一致しないことがある。この場合、パケット・バス・スイッチ530は、要求されなかった全パケット・トランザクションを上りパケット・バス・リンク515,525のいずれかを介して上り方向に送信し得る。
このように、内部パケット・バス・リンク545を介してトランシーバ580に接続されたI/Oノードまたは他のデバイス宛てのパケット・トランザクションは、パケット・バス・スイッチ530によって、最初に図3のプロセッサ301A,Bのいずれかに関連付けられたホスト・ブリッジにルーティングされ得る。次に、ホスト・ブリッジはこのパケットを図5のパケット・バス・スイッチ530に宛てて下り方向に送信し、パケット・バス・スイッチ530は、このパケット・トランザクションを、トランシーバ580に接続されたI/Oノードまたは他のデバイスにルーティングし得る。
別の実施形態においては、パケット・バス・スイッチ530が、要求されなかったパケット・トランザクションの宛先アドレスが、内部パケット・バス・リンク545を介してトランシーバ580に接続されたI/Oノードまたは他のデバイスに関連付けられたアドレスであると認識してもよい。このため、パケット・バス・スイッチがこのようなピアツーピアのトラフィックを処理できるように構成されてもよい。
パケット・バス・スイッチ530は、図4のパケット・バス・スイッチ430とほぼ同じように、特定のトランザクションをどの上りパケット・バス・リンクに送信すべきかを判定し得る。このため、図5のパケット・バス・スイッチ530のこれ以外の動作については、図4のパケット・バス・スイッチ430の説明を参照されたい。
上記の開示が完全に理解されれば、数多くの変形例および変更例が当業者にとって自明となるであろう。添付の特許請求の範囲はこのような変更例および変更例を全て包含するものと解釈されることが意図される。
本発明は、一般にマルチプロセッサ・コンピュータ・システムのI/Oノードに利用することができる。
共有バスを使用するマルチプロセッサ・コンピュータ・システムの一実施形態のブロック図である。 複数本の下りパケット・バス・リンクを1本の上りパケット・バス・リンクに切り替えているマルチプロセッサ・コンピュータ・システムの一実施形態のブロック図である。 複数本の上りパケット・バス・リンクを有するマルチプロセッサ・コンピュータ・システムの一実施形態のブロック図である。 I/Oノード・スイッチの一実施形態を示すブロック図である。 I/Oノード・スイッチの別の実施形態を示すブロック図である。

Claims (31)

  1. マルチプロセッサ・コンピュータ・システム用の入出力(I/O)ノード・スイッチであって、前記入出力ノード・スイッチは、
    集積回路チップに実装されており、周辺バスからの複数の周辺トランザクションを受信するように結合され、かつ前記複数の周辺トランザクションに対応する複数の上りパケット・トランザクションを送信するように構成されたブリッジ・ユニットと、
    前記集積回路チップに実装されており、前記複数の上りパケット・トランザクションを内部ポイントツーポイント・パケット・バス・リンクで受信するように結合され、かつ前記複数の上りパケット・トランザクションの各々の宛先を判定するように構成されたパケット・バス・スイッチ・ユニットと、を備え、
    前記パケット・バス・スイッチ・ユニットは、前記複数の上りパケット・トランザクションの前記各々の宛先を判定すると、前記複数の上りパケット・トランザクションのうちの選択されたパケット・トランザクションを第1のポイントツーポイント・パケット・バス・リンクに結合された第1のプロセッサ・インタフェースにルーティングすると共に、前記複数の上りパケット・トランザクションのうちの他のパケット・トランザクションを第2のポイントツーポイント・パケット・バス・リンクに結合された第2のプロセッサ・インタフェースにルーティングするようにさらに構成されており、
    前記第1のポイントツーポイント・パケット・バス・リンク及び前記第2のポイントツーポイント・パケット・バス・リンクは、各々一方向ワイヤの第1の組と一方向ワイヤの第2の組とを有するハイパートランスポート(HyperTransport:登録商標)互換のリンクであり、前記一方向ワイヤの第1の組および前記一方向ワイヤの第2の組の各々は、制御パケットとデータ・パケットとを含むパケットを伝送するように構成されており、前記制御パケットは、コマンド・パケット、情報パケットおよび応答パケットを含み、
    前記パケット・バス・スイッチ・ユニットは、更に、前記第1ポイントツーポイント・パケット・バス・リンクおよび前記第2ポイントツーポイント・パケット・バス・リンクに結合された上流デバイスのI/O負荷又はトランザクション・タイプに基づいて、前記複数の上りパケット・トランザクションのそれぞれの送信先を決定するように構成されている、
    入出力ノード・スイッチ。
  2. 前記複数の上りパケット・トランザクションのうちの前記選択されたパケット・トランザクションを受信して、前記複数の上りパケット・トランザクションのうちの前記選択されたパケット・トランザクションを前記第1のポイントツーポイント・パケット・バス・リンクで送信するように結合された第1のトランシーバ・ユニットをさらに備える、
    請求項1に記載の入出力ノード・スイッチ。
  3. 前記複数の上りパケット・トランザクションのうちの前記他のパケット・トランザクションを受信して、前記複数の上りパケット・トランザクションのうちの前記他のパケット・トランザクションを前記第2のポイントツーポイント・パケット・バス・リンクで送信するように結合された第2のトランシーバ・ユニットをさらに備える、
    請求項2に記載の入出力ノード・スイッチ。
  4. 前記パケット・バス・スイッチ・ユニットは、前記複数の上りパケット・トランザクションの各々に関連付けられたアドレスをデコードするようにさらに構成されている、
    請求項3に記載の入出力ノード・スイッチ。
  5. 前記パケット・バス・スイッチ・ユニットは、前記アドレスに基づいて、前記複数の上りパケット・トランザクションのうちの追加のパケット・トランザクションをブロックするようにさらに構成されている、
    請求項4に記載の入出力ノード・スイッチ。
  6. 前記アドレスに基づいて、前記複数のパケット・トランザクションのうちの前記追加のパケット・トランザクションを受信して、前記パケット・トランザクションを第3のポイントツーポイント・パケット・バス・リンクで他のノードに送信するように結合された第3のトランシーバ・ユニットをさらに備える、
    請求項5に記載の入出力ノード・スイッチ。
  7. 前記第3のトランシーバ・ユニットは、第2の複数の上りパケット・トランザクションを前記第3のポイントツーポイント・パケット・バス・リンクで受信し、前記第2の複数の上りパケット・トランザクションを前記パケット・バス・スイッチに送信するようにさらに構成されている、
    請求項6に記載の入出力ノード・スイッチ。
  8. 前記パケット・バス・スイッチ・ユニットは、前記第2の複数の上りパケット・トランザクションの各々に関連付けられたアドレスをデコードし、前記第2の複数の上りパケット・トランザクションのうちの選択されたパケット・トランザクションを前記第1のポイントツーポイント・パケット・バス・リンクに結合された前記第1のプロセッサ・インタフェースにルーティングすると共に、前記第2の複数の上りパケット・トランザクションの各々に関連付けられた前記アドレスに基づいて、前記複数の上りパケット・トランザクションのうちの他のパケット・トランザクションを前記第2のポイントツーポイント・パケット・バス・リンクに結合された前記第2のプロセッサ・インタフェースにルーティングするようにさらに構成されている、
    請求項7に記載の入出力ノード・スイッチ。
  9. 前記パケット・バス・スイッチ・ユニットは、前記第1のプロセッサ・インタフェースによって送信された第1の複数の下りパケット・トランザクションと、前記第2のプロセッサ・インタフェースによって送信された第2の複数の下りパケット・トランザクションとを受信するようにさらに構成されている、
    請求項3に記載の入出力ノード・スイッチ。
  10. 前記パケット・バス・スイッチ・ユニットは、前記第1の複数の下りパケット・トランザクションと前記第2の複数の下りパケット・トランザクション間を調停するようにさらに構成されている、
    請求項9に記載の入出力ノード・スイッチ。
  11. 前記パケット・バス・スイッチ・ユニットは、前記第1の複数の下りパケット・トランザクションと、前記第2の複数の下りパケット・トランザクションとを前記第1の内部ポイントツーポイント・パケット・バス・リンクにルーティングするようにさらに構成されている、
    請求項10に記載の入出力ノード・スイッチ。
  12. 前記ブリッジ・ユニットは、前記第1複数の下りパケット・トランザクションと第2の複数の下りパケット・トランザクションの各々のアドレスをデコードし、前記アドレスに基づいて、前記第1複数の下りパケット・トランザクションと第2の複数の下りパケット・トランザクションの選択されたパケット・トランザクションに対応するバス・サイクルを始めるようにさらに構成されている、
    請求項11に記載の入出力ノード・スイッチ。
  13. 前記パケット・バス・スイッチ・ユニットは、プログラム可能なルックアップ・テーブルを使用して、前記複数の上りパケット・トランザクションの各々の前記宛先を判定するようにさらに構成されている、
    請求項1に記載の入出力ノード・スイッチ。
  14. 前記パケット・バス・スイッチ・ユニットは、前記第1の外部パケット・バス・リンクに結合された上流のデバイスおよび第2の外部パケット・バス・リンクに結合された上流のデバイスに対応する使用可能なバッファ空間を示す値を使用して、前記複数の上りパケット・トランザクションの各々の前記宛先を判定するようにさらに構成されている、
    請求項3に記載の入出力ノード・スイッチ。
  15. 前記第3のポイントツーポイント・パケット・バス・リンクは、一方向ワイヤの第1の組と一方向ワイヤの第2の組とを有するハイパートランスポート(HyperTransport:登録商標)互換のリンクであり、前記制御パケットと前記データパケットは、同じワイヤを共有する、
    請求項に記載の入出力ノード・スイッチ。
  16. マルチプロセッサ・コンピュータ・システムであって、
    プログラムされた命令を実行するように各々構成された第1のプロセッサおよび第2のプロセッサと、
    集積回路チップに実装されており、第1のポイントツーポイント・パケット・バス・リンクによって前記第1のプロセッサに結合され、かつ第2のポイントツーポイント・パケット・バス・リンクによって前記第2のプロセッサに結合された入出力ノード・スイッチと、を備え、前記入出力ノード・スイッチは、
    周辺バスから複数の周辺トランザクションを受信するように結合され、かつ前記複数の周辺トランザクションに対応する複数の上りパケット・トランザクションを送信するように構成されたブリッジ・ユニットと、
    前記複数の上りパケット・トランザクションを内部ポイントツーポイント・パケット・バス・リンクで受信するように結合され、かつ前記複数の上りパケット・トランザクションの各々の宛先を判定するように構成されたパケット・バス・スイッチ・ユニットと、を備え、
    前記パケット・バス・スイッチ・ユニットは、前記複数の上りパケット・トランザクションの前記宛先の各々を判定すると、前記複数の上りパケット・トランザクションのうちの選択されたパケット・トランザクションを前記第1のポイントツーポイント・パケット・バス・リンクを介して前記第1のプロセッサにルーティングすると共に、前記複数の上りパケット・トランザクションのうちの他のパケット・トランザクションを、前記第2のポイントツーポイント・パケット・バス・リンクを介して前記第2のプロセッサにルーティングするようにさらに構成されている、
    前記第1のポイントツーポイント・パケット・バス・リンク及び前記第2のポイントツーポイント・パケット・バス・リンクは、各々一方向ワイヤの第1の組と一方向ワイヤの第2の組とを有するハイパートランスポート(HyperTransport:登録商標)互換のリンクであり、前記一方向ワイヤの第1の組および前記一方向ワイヤの第2の組の各々は、制御パケットとデータ・パケットとを含むパケットを伝送するように構成されており、前記制御パケットは、コマンド・パケット、情報パケットおよび応答パケットを含み、
    前記パケット・バス・スイッチ・ユニットは、更に、前記第1ポイントツーポイント・パケット・バス・リンクおよび前記第2ポイントツーポイント・パケット・バス・リンクに結合された上流デバイスのI/O負荷又はトランザクション・タイプに基づいて、前記複数の上りパケット・トランザクションのそれぞれの送信先を決定するように構成されている、
    マルチプロセッサ・コンピュータ・システム。
  17. 前記入出力ノード・スイッチは、前記複数の上りパケット・トランザクションのうちの前記選択されたパケット・トランザクションを受信して、前記複数の上りパケット・トランザクションのうちの前記選択されたパケット・トランザクションを前記第1のポイントツーポイント・パケット・バス・リンクで送信するように結合された第1のトランシーバ・ユニットをさらに備える、
    請求項16に記載のコンピュータ・システム。
  18. 前記入出力ノード・スイッチは、前記複数の上りパケット・トランザクションのうちの前記他のパケット・トランザクションを受信して、前記複数の上りパケット・トランザクションのうちの前記他のパケット・トランザクションを前記第2のポイントツーポイント・パケット・バス・リンクで送信するように結合された第2のトランシーバ・ユニット(420)をさらに備える、
    請求項16に記載のコンピュータ・システム。
  19. 前記パケット・バス・スイッチ・ユニットは、前記複数の上りパケット・トランザクションの各々に関連付けられたアドレスをデコードするようにさらに構成されている、
    請求項16に記載のコンピュータ・システム。
  20. 前記パケット・バス・スイッチ・ユニットは、前記アドレスに基づいて、前記複数の上りパケット・トランザクションのうちの追加のパケット・トランザクションをブロックするようにさらに構成されている、
    請求項19に記載のコンピュータ・システム。
  21. 前記入出力ノード・スイッチは、前記アドレスに基づいて、前記複数のパケット・トランザクションのうちの前記追加のパケット・トランザクションを受信して、前記パケット・トランザクションを前記第3のポイントツーポイント・パケット・バス・リンクで他のノードに送信するように結合された第3のトランシーバ・ユニットをさらに備える、
    請求項20に記載のコンピュータ・システム。
  22. 前記第3のトランシーバ・ユニットは、第2の複数の上りパケット・トランザクションを前記第3のポイントツーポイント・パケット・バス・リンクで受信して、前記第2の複数の上りパケット・トランザクションを前記パケット・バス・スイッチに送信するようにさらに構成されている、
    請求項21に記載のコンピュータ・システム。
  23. 前記パケット・バス・スイッチ・ユニットは、前記第2の複数の上りパケット・トランザクションの各々に関連付けられたアドレスをデコードし、前記第2の複数の上りパケット・トランザクションのうちの選択されたパケット・トランザクションを前記第1のポイントツーポイント・パケット・バス・リンク(401)に結合された前記第1のプロセッサにルーティングすると共に、前記第2の複数の上りパケット・トランザクションの各々に関連付けられた前記アドレスに基づいて、前記複数の上りパケット・トランザクションのうちの他のパケット・トランザクションを前記第2のポイントツーポイント・パケット・バス・リンク(402)に結合された前記第2のプロセッサにルーティングするようにさらに構成されている、
    請求項22に記載のコンピュータ・システム。
  24. 前記パケット・バス・スイッチ・ユニットは、前記第1のプロセッサによって送信された第1の複数の下りパケット・トランザクションと、前記第2のプロセッサによって送信された第2の複数の下りパケット・トランザクションとを受信するようにさらに構成されている、
    請求項18に記載のコンピュータ・システム。
  25. 前記パケット・バス・スイッチ・ユニットは、前記第1の複数の下りパケット・トランザクションと前記第2の複数の下りパケット・トランザクション間を調停するようにさらに構成されている、
    請求項24に記載のコンピュータ・システム。
  26. 前記パケット・バス・スイッチ・ユニットは、前記第1の複数の下りパケット・トランザクションと、前記第2の複数の下りパケット・トランザクションとを前記第1の内部ポイントツーポイント・パケット・バス・リンクにルーティングするようにさらに構成されている、
    請求項25に記載のコンピュータ・システム。
  27. 前記ブリッジ・ユニットは、前記第1複数の下りパケット・トランザクションおよび第2の複数の下りパケット・トランザクションの各々のアドレスをデコードし、前記アドレスに基づいて、前記第1の複数の下りパケット・トランザクションおよび第2の複数の下りパケット・トランザクションの選択されたパケット・トランザクションに対応するバス・サイクルを始めるようにさらに構成されている、
    請求項26に記載のコンピュータ・システム。
  28. 前記パケット・バス・スイッチ・ユニットは、プログラム可能なルックアップ・テーブルを使用して、前記複数の上りパケット・トランザクションの各々の前記宛先を判定するようにさらに構成されている、
    請求項16に記載のコンピュータ・システム。
  29. 前記パケット・バス・スイッチ・ユニットは、前記第1プロセッサおよび第2プロセッサの各々に対応する使用可能なバッファ空間を示す値を使用して、前記複数の上りパケット・トランザクションの各々の前記宛先を判定するようにさらに構成されている、
    請求項16に記載のコンピュータ・システム。
  30. 前記パケット・バス・スイッチ・ユニットは、前記複数の上りパケット・トランザクションの各々を使用可能なバッファ空間を示す値が比較的高い値を有する所定のプロセッサにルーティングするようにさらに構成されている、
    請求項16に記載のコンピュータ・システム。
  31. 前記第3のポイントツーポイント・パケット・バス・リンクは、一方向ワイヤの第1の組と一方向ワイヤの第2の組とを有するハイパートランスポート(HyperTransport:登録商標)互換のリンクであり、前記一方向ワイヤの第1の組および前記一方向ワイヤの第2の組の各々は、前記制御パケットと前記データパケットは、同じワイヤを共有する、
    請求項16に記載のコンピュータ・システム。
JP2003550076A 2001-11-30 2002-09-12 マルチプロセッサ・コンピュータ・システムにおける接続のためのスイッチングi/oノード Expired - Lifetime JP4290556B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/998,758 US6836813B1 (en) 2001-11-30 2001-11-30 Switching I/O node for connection in a multiprocessor computer system
PCT/US2002/028985 WO2003048951A1 (en) 2001-11-30 2002-09-12 A switching i/o node for connection in a multiprocessor computer system

Publications (3)

Publication Number Publication Date
JP2005512194A JP2005512194A (ja) 2005-04-28
JP2005512194A5 JP2005512194A5 (ja) 2006-01-05
JP4290556B2 true JP4290556B2 (ja) 2009-07-08

Family

ID=25545535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003550076A Expired - Lifetime JP4290556B2 (ja) 2001-11-30 2002-09-12 マルチプロセッサ・コンピュータ・システムにおける接続のためのスイッチングi/oノード

Country Status (9)

Country Link
US (1) US6836813B1 (ja)
EP (1) EP1449100B1 (ja)
JP (1) JP4290556B2 (ja)
KR (1) KR100950101B1 (ja)
CN (1) CN1320469C (ja)
AU (1) AU2002336494A1 (ja)
DE (1) DE60210312T2 (ja)
TW (1) TWI236251B (ja)
WO (1) WO2003048951A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640843B2 (en) 2003-01-24 2010-01-05 Kraft Foods R & D, Inc. Cartridge and method for the preparation of beverages
CN1332334C (zh) * 2004-01-17 2007-08-15 中国科学院计算技术研究所 一种多处理机通信装置及其通信方法
US20050262391A1 (en) * 2004-05-10 2005-11-24 Prashant Sethi I/O configuration messaging within a link-based computing system
US20050286526A1 (en) * 2004-06-25 2005-12-29 Sood Sanjeev H Optimized algorithm for stream re-assembly
US7461173B2 (en) * 2004-06-30 2008-12-02 Intel Corporation Distributing timers across processors
US20060004933A1 (en) * 2004-06-30 2006-01-05 Sujoy Sen Network interface controller signaling of connection event
US20060031474A1 (en) * 2004-07-19 2006-02-09 Linden Cornett Maintaining reachability measures
US7907298B2 (en) * 2004-10-15 2011-03-15 Fujifilm Dimatix, Inc. Data pump for printing
JP4711709B2 (ja) * 2005-03-18 2011-06-29 富士通株式会社 パーティション割り振り方法及びコンピュータシステム
CN100447714C (zh) * 2005-11-04 2008-12-31 英业达股份有限公司 多任务式计算机周边装置联机切换接口
US7370135B2 (en) 2005-11-21 2008-05-06 Intel Corporation Band configuration agent for link based computing system
CN100454277C (zh) * 2006-01-27 2009-01-21 威盛电子股份有限公司 支持快速***互连装置的计算机***及相关方法
US7647476B2 (en) * 2006-03-14 2010-01-12 Intel Corporation Common analog interface for multiple processor cores
US8615623B2 (en) 2006-08-09 2013-12-24 Nec Corporation Internet connection switch and internet connection system
US7797475B2 (en) * 2007-01-26 2010-09-14 International Business Machines Corporation Flexibly configurable multi central processing unit (CPU) supported hypertransport switching
US7853638B2 (en) * 2007-01-26 2010-12-14 International Business Machines Corporation Structure for a flexibly configurable multi central processing unit (CPU) supported hypertransport switching
US7930459B2 (en) * 2007-09-28 2011-04-19 Intel Corporation Coherent input output device
US9442540B2 (en) * 2009-08-28 2016-09-13 Advanced Green Computing Machines-Ip, Limited High density multi node computer with integrated shared resources
JP5482263B2 (ja) * 2010-02-08 2014-05-07 日本電気株式会社 エンドポイント共有システムおよびデータ転送方法
US9176913B2 (en) 2011-09-07 2015-11-03 Apple Inc. Coherence switch for I/O traffic
US9122810B2 (en) * 2012-05-18 2015-09-01 Dell Products, Lp System and method for providing input/output functionality to a processing node
CN104268107B (zh) * 2014-09-05 2017-04-05 中国运载火箭技术研究院 一种箭载计算机处理器与外总线接口余度管理分离的***
US10387346B2 (en) * 2016-05-06 2019-08-20 Quanta Computer Inc. Dynamic PCIE switch reconfiguration mechanism

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5533198A (en) 1992-11-30 1996-07-02 Cray Research, Inc. Direction order priority routing of packets between nodes in a networked system
KR100304063B1 (ko) 1993-08-04 2001-11-22 썬 마이크로시스템즈, 인코포레이티드 2지점간상호접속통신유틸리티
AUPM699394A0 (en) 1994-07-25 1994-08-18 Curtin University Of Technology Link level controlled access to available asynchronous network service
US6175888B1 (en) 1996-04-10 2001-01-16 International Business Machines Corporation Dual host bridge with peer to peer support
US5991824A (en) * 1997-02-06 1999-11-23 Silicon Graphics, Inc. Method and system for simultaneous high bandwidth input output
US6085276A (en) 1997-10-24 2000-07-04 Compaq Computers Corporation Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
US6424658B1 (en) * 1999-01-29 2002-07-23 Neomagic Corp. Store-and-forward network switch using an embedded DRAM
JP2001014269A (ja) * 1999-06-29 2001-01-19 Toshiba Corp コンピュータシステム
US6668299B1 (en) 1999-09-08 2003-12-23 Mellanox Technologies Ltd. Software interface between a parallel bus and a packet network
US6978331B1 (en) 1999-09-08 2005-12-20 Mellanox Technologies Ltd. Synchronization of interrupts with data packets
US6604161B1 (en) * 1999-09-29 2003-08-05 Silicon Graphics, Inc. Translation of PCI level interrupts into packet based messages for edge event drive microprocessors
JP2001325207A (ja) * 2000-05-17 2001-11-22 Hitachi Ltd キャッシュ内蔵型スイッチおよび計算機システムおよびキャッシュ内蔵型スイッチのスイッチ制御方法

Also Published As

Publication number Publication date
US6836813B1 (en) 2004-12-28
CN1320469C (zh) 2007-06-06
AU2002336494A1 (en) 2003-06-17
EP1449100B1 (en) 2006-03-29
TWI236251B (en) 2005-07-11
WO2003048951A1 (en) 2003-06-12
DE60210312T2 (de) 2006-12-14
KR20050027083A (ko) 2005-03-17
JP2005512194A (ja) 2005-04-28
EP1449100A1 (en) 2004-08-25
CN1592895A (zh) 2005-03-09
KR100950101B1 (ko) 2010-03-29
DE60210312D1 (de) 2006-05-18

Similar Documents

Publication Publication Date Title
JP4290556B2 (ja) マルチプロセッサ・コンピュータ・システムにおける接続のためのスイッチングi/oノード
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US7165131B2 (en) Separating transactions into different virtual channels
EP2497023B1 (en) Multiprocessing computing with distributed embedded switching
US20130179613A1 (en) Network on chip (noc) with qos features
US20060123178A1 (en) Generating multiple traffic classes on a PCI Express fabric from PCI devices
US20110188504A1 (en) Smart routing between peers in a point-to-point link based system
EP1377898B1 (en) A method and an apparatus for a re-configurable processor
JP2005512194A5 (ja)
US7564860B2 (en) Apparatus and method for workflow-based routing in a distributed architecture router
JP4255833B2 (ja) コンピュータ・システムの入出力ノードにおけるタグ付けおよび調停メカニズム
JP3492852B2 (ja) ネットワークメッセージルート指定装置のための待ち時間短縮及びルート裁定方法
JP4391819B2 (ja) コンピュータ・システムの入出力ノード
JP5287718B2 (ja) 半導体集積回路及びフィルタ制御方法
US8885673B2 (en) Interleaving data packets in a packet-based communication system
US7272151B2 (en) Centralized switching fabric scheduler supporting simultaneous updates

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050912

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080930

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090129

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090302

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: 20090331

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: 20090401

R150 Certificate of patent or registration of utility model

Ref document number: 4290556

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120410

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130410

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20140410

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term