JP4998469B2 - インターコネクション用スイッチおよびシステム - Google Patents

インターコネクション用スイッチおよびシステム Download PDF

Info

Publication number
JP4998469B2
JP4998469B2 JP2008528845A JP2008528845A JP4998469B2 JP 4998469 B2 JP4998469 B2 JP 4998469B2 JP 2008528845 A JP2008528845 A JP 2008528845A JP 2008528845 A JP2008528845 A JP 2008528845A JP 4998469 B2 JP4998469 B2 JP 4998469B2
Authority
JP
Japan
Prior art keywords
group
frame
tlp
port
tlp frame
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.)
Active
Application number
JP2008528845A
Other languages
English (en)
Other versions
JPWO2008018485A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008528845A priority Critical patent/JP4998469B2/ja
Publication of JPWO2008018485A1 publication Critical patent/JPWO2008018485A1/ja
Application granted granted Critical
Publication of JP4998469B2 publication Critical patent/JP4998469B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、コンピュータおよびネットワーク装置で使われるコンピューティングデバイスおよびネットワーキングデバイスのPCIエクスプレスインタフェースを拡張するインターコネクション用のスイッチおよびそのスイッチを用いたシステムに関する。
中央演算装置(CPU)、ハードディスク、グラフィックコントローラ等のコンピューティングデバイス間、フォワーディングエンジン、ネットワークコントローラ等のネットワーキングデバイス間、および、コンピューティングデバイスとネットワーキングデバイス間を接続するバス規格として、ペリフェラルコンポーネントインターコネクト(PCI)が広く普及している。このPCIの次世代規格として、PCIのパラレルバスをシリアル化し、パケット方式で通信を行うPCIエクスプレスが標準化されている。このPCIエクスプレスにより形成されるPCIエクスプレスシステムの一例が、非特許文献1に記載されている。
図19に、非特許文献1に記載されるシステムを模式的に示す。図19に示すPCIエクスプレスシステムは、コンピュータの中央演算処理を行うCPU101、CPU101からのI/Oアクセスを制御するホストブリッジに搭載されるPCIエクスプレスのルートコンプレックス102、ホストブリッジに接続されるメモリ103、ルートコンプレックス102に接続されるPCIエクスプレススイッチ104、PCIエクスプレススイッチ104に接続されるコンピューティングデバイスに搭載されるPCIエクスプレスのエンドポイント105、106、107で構成される。
PCIエクスプレススイッチ104は、エンドポイントを接続するPCIエクスプレスインタフェースの接続数を増やす目的で使われる。PCIエクスプレススイッチ104の内部回路構成の一例が、非特許文献2に記載されている。
図20に、非特許文献2に記載されるスイッチを模式的に示す。図20に示すPCIエクスプレススイッチ104は、ルートコンプレックス方向につながる上流PCI−PCIブリッジ1041と、エンドポイント方向につながる下流PCI−PCIブリッジ1042,1043,1044とで構成され、各PCI−PCIブリッジ間はPCIエクスプレススイッチ内部バス1045で接続される。
図19のPCIエクスプレスシステムおよび図20のPCIエクスプレススイッチ104の内部バス1045上で転送されるパケット(TLP:Transaction Layer Pakcet)は、CPU101のアドレス空間上で管理されるPCIエクスプレスのフレームが使用される。本明細書では、このフレームをTLPフレームと呼ぶ。PCIエクスプレスでは、TLPフレームのヘッダの表記からTLPフレームの転送先を特定する手法として、アドレスルーティングとIDルーティングの2種類が定義されている。アドレスルーティングは、あて先であるエンドポイントなどに割り当てられたI/O空間あるいはメモリ空間を指定することで、あて先を特定する手法であり、そのフレームフォーマットは非特許文献3に記載されている。他方、IDルーティングは、あて先が接続するバスの番号、同一バス内のデバイス識別のために割り当てられたデバイス番号、デバイス内の各機能に割り当てられたファンクション番号を指定することで、あて先を特定する手法であり、そのフレームフォーマットは非特許文献4に記載されている。本明細書では、あて先を特定する、I/O空間あるいはメモリ空間、および、バス番号とデバイス番号とファンクション番号を総称して、あて先アドレス空間と呼ぶ。
図21に、アドレスルーティング用フレーム(アドレスルーティングTLPフレーム)のフォーマットを示す。アドレスルーティングTLPフレームを用いたデータ転送では、Byte8のAddress[31:2]のデータ領域があて先アドレス空間に用いられる。このフレームが図20のPCIエクスプレススイッチ104上に流れてきた場合、PCIエクスプレススイッチ内部バス1045上につながる全てのPCI−PCIブリッジがこのフレームを受信し、フレームに格納されているAddress[31:2]に対応するデバイスが自ブリッジの先につながっているブリッジが、このフレームをデバイスに転送する。また、通常、ブリッジの先につながるデバイスが扱うアドレスはCPU101によって、アドレスが重ならないように設定されるため、フレームは或る1つのPCI−PCIブリッジから転送される。
図22に、IDルーティング用フレーム(IDルーティングTLPフレーム)のフォーマットを示す。IDルーティングTLPフレームを用いたデータ転送では、Byte8のバス番号、デバイス番号およびファンクション番号があて先アドレス空間に用いられる。このTLPフレームが図20のPCIエクスプレススイッチ104に流れてきた場合、PCIエクスプレススイッチ内部バス1045上につながる全てのPCI−PCIブリッジがそれをフレームを受信する。そして、そのTLPフレームに格納されているバス番号、デバイス番号およびファンクション番号に対応するデバイスに接続されているブリッジが、このTLPフレームをデバイスに転送する。また、IDルーティングに用いられるバス番号、デバイス番号およびファンクション番号は、複数のデバイス間で重ならないように、CPU101により設定される。よって、TLPフレームは、或る1つのPCI−PCIブリッジから転送される。
図19に示すPCIエクスプレスシステムは、複数のエンドポイントの内の任意のものをCPU101に接続することができる。しかしながら、1つのCPUのみが接続されることを想定したフレーム転送方法およびPCIエクスプレススイッチ構成が適用されるため、複数のCPUを接続することはできない。従って、複数のCPUの間でエンドポイントを共有することはできない。
上記問題を解決する手法として、以下の2つの関連技術がある。
一つは、ネットワークに複数のCPUとエンドポイントとを分散して接続し、それらの間の接続を動的に設定するアドバンストスイッチングインターコネクト(ASI)である。このASIの一例が非特許文献5に記載されている。
図23に、非特許文献5に記載されたシステムを模式的に示す。図23より、ASIネットワーク1301は次の構成要素を備える。ルートコンプレックス側PCIエクスプレス−ASIブリッジ1302及び1303は、対応するルートコンプレックス102及び109に接続され、TLPフレームをカプセル化したASIパケットを送受信する。ASIスイッチ1304は、ASIパケットのあて先が接続されているポートに対し、そのASIパケットを転送する。エンドポイント側PCIエクスプレス−ASIブリッジ1305〜1307は、エンドポイント105〜107に接続され、TLPフレームをカプセル化したASIパケットを送受信する。ファブリックマネージャ1308は、ルートコンプレックス側PCIエクスプレス−ASIブリッジ1302及び1303と、エンドポイント側PCIエクスプレス−ASIブリッジ1305〜1306との間の接続を管理する。
上記関連技術の他方は、設定可能なPCIエクスプレススイッチを使用するというものである。その一例が特許文献1に記載されている。
図24に、特許文献1に記載されるシステムを模式的に示す。また、図25に、そのシステムに用いられるPCIエクスプレススイッチの構成を示す。図25を参照すると、設定可能PCIエクスプレススイッチ111は、次の構成要素を備える。上流PCI−PCIブリッジ1111及び1112は、ルートコンプレックス102及び109に接続される。下流PCI−PCIブリッジ1113〜1115は、エンドポイント105〜107に接続される。PCIエクスプレススイッチ内部バス1116は、上流PCI−PCIブリッジ1111と下流PCI−PCIブリッジ1113〜1115とを接続する。PCIエクスプレススイッチ内部バス1117は、上流PCI−PCIブリッジ1112と下流PCI−PCIブリッジ1113〜1115とを接続する。ブリッジコントローラ論理1118は、外部制御1119に従って、PCIエクスプレススイッチ内部バス1116及び1117と下流PCI−PCIブリッジ1113〜1115との接続関係を制御する。
次に、PCIエクスプレスを使用したネットワークシステムについて説明する。
図26に、PCIエクスプレスを使用した一般的なネットワークシステムの一例を示す。このネットワークシステムでは、ポート1〜3に接続されるネットワーク用フォワーディングエンジン402〜404をネットワーク用スイッチ401で相互に接続する。ネットワーク用フォワーディングエンジン402〜404は、ポート1〜3から入力されるネットワークデータのあて先を解析する。ネットワーク用スイッチ401は、或る1ポートに対しデータを転送するユニキャスト転送、及び、複数の特定のポートに対しデータを転送するマルチキャスト転送の2つの動作を実行する。
また、図26のシステムにおいて、転送データのあて先が不明な場合は、CPU101がプロトコル解析を行ってからルーティング転送を行う。そのために、PCIエクスプレススイッチ104が、CPU101のルートコンプレックス102とネットワーク用フォワーディングエンジン402〜404とを接続する。
特開2005−317021号公報 PCI Express Base Specification Revision 1.1,PCI-SIG,March 28,2005,pp.30 PCI Express Base Specification Revision 1.1,PCI-SIG,March 28,2005,pp.34 PCI Express Base Specification Revision 1.1,PCI-SIG,March 28,2005,pp.52,53 PCI Express Base Specification Revision 1.1,PCI-SIG,March 28,2005,pp.54 Protocol Interface #8(PI-8) R1.0, ASI-SIG, February 2004,pp. 7-11
上述したPCIエクスプレスシステムにおいては、以下に述べるような課題がある。
第1の課題は、図25に示すPCIエクスプレスを使用したシステムにおいて、ルートコンプレックス側につながるデバイス(CPU等)間の通信ができないことである。その理由は、設定可能なPCIエクスプレススイッチ111における内部バス1116と内部バス1117とは完全に分離されていることにより、ルートコンプレックス102につながる上流PCI−PCIブリッジ1111とルートコンプレックス109につながる上流PCI−PCIブリッジ1112とをつなぐパスが存在しないからである。
第2の課題は、図25に示すPCIエクスプレスを使用したシステムにおいて、それぞれ異なるルートコンプレックス側につながるデバイス(CPU等)から同じエンドポイントに対する同時通信ができないことである。その理由は、設定可能なPCIエクスプレススイッチ111における内部バス1116と内部バス1117とに対し、下流PCI−PCIブリッジ1113〜1115が択一的に接続されるからである。エンドポイント105が、ルートコンプレックス102側のPCIエクスプレススイッチ内部バス1116に接続されている場合、CPU108は、エンドポイント105に対してデータを送信することができない。
第3の課題は、図26に示すPCIエクスプレススイッチには、特定のデバイスに対してのマルチキャスト転送機能がないことである。そのため、ネットワーク用スイッチ401及びPCIエクスプレススイッチ104という2種類のスイッチが必要になる。よって、システム構成が複雑になり、コストが高くなり、システム運用が複雑になるという課題がある。
図23に示すASIネットワーク1301を使用すれば、ルートコンプレックス側につながるデバイス(CPU等)間の通信、及び、異なるルートコンプレックス側につながるデバイス(CPU等)から同じエンドポイントに対する同時通信、ならびに、マルチキャスト通信が可能になる。しかしながら、フレームをカプセル化する処理が必要になるため、データ転送時の遅延時間を削減し難く、また、回路規模が大きくなるという別の課題がある。
本発明は、以上のような事情に鑑みてなされたものであり、その目的は、PCIエクスプレス準拠のTLPフレームを複数のデバイス間でカプセル化することなく送受信するためのスイッチおよび該スイッチを用いたシステムを提供することにある。
本発明に係るスイッチは、それぞれに接続されたデバイスとの間でPCIエクスプレス準拠のTLPフレームを送受信する複数のブリッジと、前記複数のブリッジが接続される複数のポートを有し、前記複数のポートのいずれかから入力されたTLPフレームの宛先情報と該TLPフレームを入力したポートとの組み合わせに応じて出力ポートを選定し該出力ポートから前記TLPフレームを出力するスイッチフォワーディング機構とを備え、前記スイッチフォワーディング機構は、前記複数のブリッジに接続されたデバイスのうちの相互に接続すべきデバイスおよびその接続に用いるポートを識別するためのグループIDを記憶するグループID管理テーブルメモリと、TLPフレームの宛先情報と前記グループID管理テーブルメモリのグループIDとに関連付けられた出力ポートの情報を記憶するフォワーディングテーブルと、前記複数のポートのいずれかから入力されたTLPフレームのための出力ポートを前記フォワーディングテーブルから選定し当該出力ポートから前記TLPフレームを出力する転送制御部とを有し、前記転送制御部は、TLPフレームを入力したポートに対応するグループIDを前記グループID管理テーブルメモリから読み出して前記TLPフレームのヘッダに設定する入力ヘッダ書換器と、前記TLPフレームの宛先情報と該TLPフレームのヘッダに設定されたグループIDとに対応する出力ポートを前記フォワーディングテーブルから選定するテーブルサーチ器と、前記テーブルサーチ器が選定した出力ポートから前記TLPフレームを出力するフレーム転送器とを有し、前記グループID管理テーブルメモリは、グループIDが付与された各ポートに接続されるデバイスの種類を表す属性情報を記憶し、前記スイッチフォワーディング機構は、前記テーブルサーチ器が選定した出力ポートに関し前記グループID管理テーブルメモリに記憶されている属性情報がPCIエクスプレス準拠のルートコンプレックスまたはエンドポイントを表す場合に前記フレーム転送器から出力すべきTLPフレームのヘッダに設定されたグループIDを削除する出力ヘッダ書換器を有することを特徴とする
本発明に係るシステムは、前記スイッチおよび相互に異なるいずれかの前記デバイスに接続された第1のPCIエクスプレスバスおよび第2のPCIエクスプレスバスとを備える。
本発明によれば、PCIエクスプレスを使用したシステムにおいて、フレームカプセル化の処理を行うことなく、CPUのようなデバイス間の通信が可能となる。これにより、データ転送時の遅延の増大、及び、LSI回路規模の増大を防ぐことができる。
本発明に係るスイッチを使用したシステムの実施形態の構成を示すブロック図である。 本発明の実施形態のPCIエクスプレス拡張スイッチの内部構成を示すブロック図である。 本発明の実施形態の内のPCIエクスプレスパケットスイッチフォワーディング機構の内部構成を示すブロック図である。 本発明の実施形態のグループID管理テーブルメモリの説明図である。 本発明の実施形態の拡張アドレスルーティングTLPフレームの説明図である。 本発明の実施形態の拡張IDルーティングTLPフレームの説明図である。 本発明の実施形態の拡張TLPフォワーディングテーブルの説明図である。 本発明の実施形態の拡張アドレスルーティング用テーブルメモリの説明図である。 本発明の実施形態の拡張IDルーティング用テーブルメモリの説明図である。 本発明の実施形態のマルチキャストテーブルメモリの説明図である。 本発明の実施形態のPCIエクスプレスパケットスイッチフォワーディング機構の動作を示すフローチャートである。 本発明の実施形態のCPUが管理するアドレス空間に関する説明図である。 本発明の実施形態におけるCPU−CPU通信に用いる拡張アドレスルーティング用テーブルメモリの説明図である。 本発明の実施形態において複数のCPUがエンドポイントを共有する場合に用いるグループID管理テーブルメモリの説明図である。 本発明の実施形態において複数のCPUがエンドポイントを共有する場合のアドレス空間に関する説明図である。 本発明の実施形態において複数のCPUがエンドポイントを共有する場合に用いる拡張アドレスルーティング用テーブルメモリの説明図である。 本発明に係るスイッチを使用したシステムの他の実施形態の構成を示すブロック図である。 本発明に係るスイッチを使用したシステムの他の実施形態の構成を示すブロック図である。 非特許文献1に基づくシステムの構成を示すブロック図である。 非特許文献2に基づくシステムの構成を示すブロック図である。 PCIエクスプレス準拠のアドレスルーティング用フレームのフォーマットに関する説明図である。 PCIエクスプレス準拠のIDルーティング用フレームのフォーマットに関する説明図である。 非特許文献5に基づくASIネットワークの構成を示すブロック図である。 特許文献1に基づくシステムの構成を示すブロック図である。 特許文献1に基づくシステムにおけるスイッチの内部構成を示すブロック図である。 PCIエクスプレス準拠のスイッチを使用したネットワークシステムの構成を示すブロック図である。
符号の説明
304:PCIエクスプレス拡張スイッチ
20:PCIエクスプレスパケットスイッチフォワーディング機構
3041、3042、3043、3044、3045:PCI−PCIブリッジ
11、12、13、14、15:PCIエクスプレスバス
102、109:ルートコンプレックス
105〜107:エンドポイント
30:制御CPU
3040:外部制御インタフェース
次に本発明の実施の形態について図面を参照して詳細に説明する。
図1に、本発明の実施形態のシステム構成を示す。PCIエクスプレスシステム10は、本発明に掛るスイッチに対応するPCIエクスプレス拡張スイッチ304に、複数のルートコンプレックス102及び109と複数のエンドポイント105〜107とがPCIエクスプレスバス11〜15を介して接続された構成である。ルートコンプレックス102には、CPU101とメモリ103とが接続され、ルートコンプレックス109には、CPU108とメモリ110とが接続されている。
各ルートコンプレックス102及び109、ならびに、エンドポイント105〜107は、図21に示すアドレスルーティングTLPフレームおよび図22に示すIDルーティングTLPフレームを用いてデータ通信を行う機能を有するPCIエクスプレス対応のデバイスである。
図2に、PCIエクスプレス拡張スイッチ304の構成を示す。PCIエクスプレス拡張スイッチ304は、ルートコンプレックス102とPCIエクスプレスバス11により接続されるPCI−PCIブリッジ3041と、ルートコンプレックス109とPCIエクスプレスバス12により接続されるPCI−PCIブリッジ3042と、エンドポイント105とPCIエクスプレスバス13により接続されるPCI−PCIブリッジ3043と、エンドポイント106とPCIエクスプレスバス14により接続されるPCI−PCIブリッジ3044と、エンドポイント106とPCIエクスプレスバス15により接続されるPCI−PCIブリッジ3045と、これらのブリッジ3041〜3045に接続されるPCIエクスプレスパケットスイッチフォワーディング機構20とから構成されている。
PCIエクスプレスパケットスイッチフォワーディング機構20は、PCI−PCIブリッジ3041〜3045を接続できる入出力インタフェースである複数のポートを備え、ポート1にPCI−PCIブリッジ3041、ポート2にPCI−PCIブリッジ3024、ポート3にPCI−PCIブリッジ3043、ポート4にPCI−PCIブリッジ3044、ポート5にPCI−PCIブリッジ3045がそれぞれ接続されている。
PCI−PCIブリッジ3041及び3042、並びに、PCI−PCIブリッジ3043〜3045は、例えば図20あるいは図25に示すような、本発明の関連技術のPCIエクスプレススイッチにおける上流PCI−PCIブリッジおよび下流PCI−PCIブリッジと同等の機能を有するデバイスである。ただし、関連技術における上流および下流PCI−PCIブリッジがPCIエクスプレススイッチ内部バスで相互に接続されているのに対し、PCI−PCIブリッジ3041〜3045は、PCIエクスプレスパケットスイッチフォワーディング機構20により相互に接続されている点が相違する。各ブリッジ3041〜3045は、PCIエクスプレスパケットスイッチフォワーディング機構20の接続ポートに対し、図21に示すアドレスルーティングTLPフレームまたは図22に示すIDルーティングTLPフレームを送信し、また接続ポートからそれらと同様な形式のTLPフレームを受信する。
PCIエクスプレスパケットスイッチフォワーディング機構20は、PCI−PCIブリッジ3041〜3045が接続されたポート1〜5から、前述のアドレスルーティングTLPフレームまたはIDルーティングTLPフレームを受信する。また、PCIエクスプレスパケットスイッチフォワーディング機構20は、フレームのヘッダに設定されている宛先アドレス空間および自機構(20)に設定されているシステム設定情報を、後述の情報テーブルに照らし合わせることで、フレームの出力に用いる何れかのポート(1〜5)を選択する。ここで、フレームのヘッダに設定されたあて先アドレス空間とは、そのフレームが図21のアドレスルーティングTLPフレームの場合はアドレス情報である。また、そのフレームが図22に示すIDルーティングTLPフレームの場合はバス番号、デバイス番号およびファンクション番号である。システム設定情報は、PCIエクスプレスパケットスイッチフォワーディング機構20に外部制御インタフェース3040を通じて接続された制御CPU30から設定することができる。制御CPU30が接続できる外部制御インタフェース3040としては、SMBus、I2Cバス、または、PCI−PCIブリッジ3041等がつながれたPCIエクスプレスインタフェースを用いることができる。
図3に、PCIエクスプレスパケットスイッチフォワーディング機構20の構成を示す。グループID管理テーブルメモリ2047および拡張TLPフォワーディングテーブル204は、外部制御インタフェース3040を介して入力されるシステム設定情報を保持する記憶手段を構成するものである。転送制御部200は、ポート1〜5から受信した入力TLPフレーム21を、そのフレームのヘッダに設定されたあて先アドレス空間およびシステム設定情報に基づいて出力用のポート(1〜5)を選択し、選択したポートから出力TLPフレーム22を出力する。転送制御部200は、入力TLPヘッダ書換器205、テーブルサーチ器203、フレーム転送器207、及び、出力TLPヘッダ書換器2051から構成される。
グループID管理テーブルメモリ2047は、各ポート1〜5とグループIDとの対応関係などの情報を記憶するメモリである。図4に、グループID管理テーブルメモリ2047の内容例を示す。図4より、グループID管理テーブルメモリ2047は、ポート番号に1対1に対応するテーブルエントリを有する。各テーブルエントリには、そのポート番号に対応するグループID、ポート属性およびデバイス属性が記録される。
グループIDの役割は、システム10のデバイス(CPUやエンドポイントなど)を、同じメモリ空間を共有するデバイス群にグループ化することである。一般のPCIエクスプレスシステムでは、メモリ空間の割り当て管理をルートコンプレックス側のデバイスが行うので、ルートコンプレックス側の複数のデバイス間でメモリ空間を共有することはない。従って、図4に示すように、ポート番号「1」とポート番号「2」とにそれぞれ異なるグループID「1」及び「2」が設定されている。このように、ルートコンプレックス側のデバイスが接続される複数のポートに対しては、アドレス競合を避けるために、それぞれ異なるグループIDが設定される。他方、エンドポイント側のデバイスが接続されるポートのうち、対応のデバイスが特定のCPUのみで使用されるポート群には、そのCPUと同じグループIDが設定される。図4において、ポート番号「3」にグループID「1」が設定され、また、ポート番号「4」及び「5」の双方にグループID「2」が設定されている。これは、図1のエンドポイント105をCPU101のみで使用し、エンドポイント106及び107をCPU108のみで使用するための設定である。また、図4には例示されていないが、エンドポイント側の或るデバイスが複数のCPUで共用される場合には、そのデバイスには、それ専用のグループIDが設定される。
本実施の形態の場合、グループIDは4ビットである。これは、本実施の形態ではグループIDを設定するTLPヘッダ領域として4ビットの予約領域を使用するためである。仮に、5ビット以上の予約領域を使用することができる場合、グループIDに5ビット以上の領域を割り当ててもよい。
グループID管理テーブルメモリ2047のポート属性およびデバイス属性は、それぞれ異なる観点で、ポートに接続される装置の種類を示す。すなわち、ポート属性は、ポートに接続される装置として、ルートコンプレックスおよびエンドポイントと、スイッチ(PCIエクスプレス拡張スイッチ)との2種類のうちの何れが接続されているかを示す。具体的には、ルートコンプレックスおよびエンドポイントであれば値「0」、スイッチ(PCIエクスプレス拡張スイッチ)であれば値「1」が設定される。他方、デバイス属性は、ポートに接続される装置として、ルートコンプレックス、エンドポイント、それ以外のスイッチ等のブリッジの3種類のうちの何れが接続されているかを示す。具体的には、ルートコンプレックスであれば値「0」、エンドポイントであれば値「1」、ブリッジであれば値「2」が設定される。これらポート属性およびデバイス属性の役割や利用方法については後述する。
入力TLPヘッダ書換器205は、グループID管理テーブルメモリ2047を参照して、入力TLPフレーム21のヘッダの予約領域に、当該入力TLPフレーム21を入力したポートに対応するグループIDを書き込むユニットである。グループIDが設定されたアドレスルーティングTLPフレームまたはIDルーティングTLPフレームを、本明細書では拡張アドレスルーティングTLPフレームおよび拡張IDルーティングTLPフレームと呼ぶ。
図5に、拡張アドレスルーティングTLPフレームのフレームフォーマットを示す。また、図6に拡張IDルーティングTLPフレームのフレームフォーマットを示す。これらのフォーマットは、基本的な構成は図21及び図22に示すものと同様であり、それぞれのByte8には、フレームの宛先情報としてのアドレスあるいはバス番号などが設定される。図5及び図6に示すように、本実施形態の拡張アドレスルーティングTLPフレーム及び拡張IDルーティングTLPフレームにおいて、それぞれByte0のAddress[19:16]に設定された4ビットの予約領域には、前述のグループID901及び902が書き込まれる。また、図6より、拡張IDルーティングTLPフレームのByte8における1ビットのAddress[31](バス番号の1ビット分)には、マルチキャスト指示情報903が設定される。本実施形態において、値「1」のマルチキャスト指示情報903が設定されたフレームは、マルチキャスト転送用のフレームとして扱われる。
拡張TLPフォワーディングテーブル204は、入力TLPヘッダ書換器205でヘッダが書き換えられたフレーム、すなわち拡張アドレスルーティングTLPフレームおよび拡張IDルーティングTLPフレームの転送先を決定するためのルーティング情報を保持する。図7に、拡張TLPフォワーディングテーブル204の構成を示す。拡張アドレスルーティング用テーブルメモリ2044は、拡張アドレスルーティングTLPフレームの転送先を決定するためのルーティング情報を保持する。拡張IDルーティング用テーブルメモリ2045は、拡張IDルーティングTLPフレームのうちマルチキャスト指示情報903が値「0」(非マルチキャスト)であるフレームの転送先を決定するためのルーティング情報を保持する。マルチキャストテーブルメモリ2046は、拡張IDルーティングTLPフレームのうちマルチキャスト指示情報903が値「1」(マルチキャスト)であるフレームの転送先を決定するためのルーティング情報を保持する。
図8に、拡張アドレスルーティング用テーブルメモリ2044の内容構成の一例を示す。拡張アドレスルーティング用テーブルメモリ2044の情報は、複数のテーブルエントリで構成される。各テーブルエントリには、TLP送信先アドレス空間の下限値及び上限値と、グループIDと、出力ポート情報と、アドレススワップオフセット情報とが記録される。TLP送信先アドレス空間の下限値及び上限値は、TLPフレームの宛先情報として設定されている送信先アドレスの値と対比させる項目である。すなわち、図8のTLP送信先アドレス空間の下限値及び上限値は、図5の拡張アドレスルーティングTLPフレームにおけるByte8の[31:2]に記述されたアドレスと対比される項目である。また、図8のグループIDは図5のByte0のグループID901と対比される項目である。拡張アドレスルーティング用テーブルメモリ2044の出力ポート情報は、前記対比により、アドレスおよびグループIDがテーブル(2044)のものと一致した拡張アドレスルーティングTLPフレームを出力するポートの番号である。アドレススワップオフセット情報は、出力するTLPフレームのアドレスに加算すべきオフセット値を示す。このアドレススワップオフセット情報は、CPU間でTLPフレームを送受信する際に、必要に応じて設定される。
図9に、拡張IDルーティング用テーブルメモリ2045の内容構成を示す。拡張IDルーティング用テーブルメモリ2045は、複数のテーブルエントリで構成されている。各テーブルエントリには、バス番号、デバイス番号、ファンクション番号、グループIDおよび出力ポート情報が記録される。このうち、バス番号、デバイス番号、ファンクション番号およびグループIDは、図6の拡張IDルーティングTLPフレームにおける宛先情報としてのバス番号、デバイス番号およびファンクション番号(Byte8)と、グループID902(Byte0)と比較される項目である。出力ポート情報は、前記比較により、上記項目がテーブル(2045)のものと一致した拡張IDルーティングTLPフレームを出力するポート番号である。
図10に、マルチキャストテーブルメモリ2046の内容構成を示す。マルチキャストテーブルメモリ2046は、スイッチが受信した拡張IDルーティングTLPフレームのマルチキャスト指示情報903(図6)が「マルチキャスト」を表す場合に参照するものである。マルチキャストテーブルメモリ2046は、「0x0000」〜「0x7FFF」までのメモリアドレスに1対1に対応する総数32768個のテーブルエントリで構成される。各テーブルエントリには、ポートに1対1に対応するビットの集合である複数出力ポート情報が記録される。マルチキャスト指示情報903が値「1」である拡張IDルーティングTLPフレームの出力先を決定する際、その拡張IDルーティングTLPフレーム中のバス番号(7ビット)、デバイス番号(5ビット)およびファンクション番号(3ビット)により構成される15ビット分の情報を、図10の「メモリアドレス」と比較する。そして、「メモリアドレス」に一致するエントリの複数出力ポート情報を選択し、その複数出力ポート情報の値「1」に対応するポートを出力ポートとして決定する。
テーブルサーチ器203は、入力TLPヘッダ書換器205から拡張アドレスルーティングTLPフレームまたは拡張IDルーティングTLPフレームを受取り、そのTLPフレームの種類に応じて、拡張TLPフォワーディングテーブル204から転送先を決定する。また、出力するTLPフレームのヘッダの書換えが必要か否かを判断し、必要な場合は出力TLPヘッダ書換器2051を用いて書換えを行う。そして、決定した出力ポートからフレーム転送器207を通じて出力TLPフレーム22を出力する。
出力TLPヘッダ書換器2051は、テーブルサーチ器203から指示されたヘッダの書換え処理を行う。具体的には、アドレスオフセット値の加算、ヘッダ中のグループIDの削除などである。
フレーム転送器207は、テーブルサーチ器203から指示されたポートから出力TLPフレーム22を出力する処理を行う。マルチキャスト指示情報903が値「1」である拡張IDルーティングTLPフレームの場合は、図10のマルチキャストテーブルメモリ2046に基づき決定された複数のポートから、そのTLPフレームを並列的に出力する。
次に、本実施の形態の動作を説明する。
まず、グループID管理テーブルメモリ2047(図4)および拡張TLPフォワーディングテーブル204(図7)の設定について説明する。本実施の形態の場合、制御CPU30が、外部制御インタフェース3040経由でグループID管理テーブルメモリ2047および拡張TLPフォワーディングテーブル204をアクセスして必要な情報を設定する。
グループID管理テーブルメモリ2047を設定する場合、複数のCPU(101,108)が何れのエンドポイント(105〜107)を使用するかという運用形態に応じて、PCIエクスプレスパケットスイッチフォワーディング機構20の各ポートに対してグループIDを設定する。また、各ポートにつながる装置の種別に応じて、ポート属性及びデバイス属性を設定する。
拡張TLPフォワーディングテーブル204の拡張IDルーティング用テーブルメモリ2045の設定では、エンドポイント105等のデバイスごとに、そのデバイスに割り当てられたバス番号、デバイス番号およびファンクション番号を、テーブル(2045)のバス番号、デバイス番号およびファンクション番号の各項目に設定する。また、そのデバイスがつながるポート番号を出力ポート情報の項目に設定し、そのデバイスをどのCPUで使用するかという運用形態に応じたグループIDをグループIDの項目に設定する。例えば、エンドポイント105のデバイスに、バス番号「Bx」、デバイス番号「Dx」、ファンクション番号「Fx」が割り当てられており、かつ、そのデバイスがCPU101からのみ使用されると仮定する。この場合、拡張IDルーティング用テーブルメモリ2045の一つのテーブルエントリにおいて、バス番号「Bx」、デバイス番号「Dx」、ファンクション番号「Fx」が設定され、出力ポート情報にポート番号「3」が設定され、グループIDには、CPU101がつながるポート1に対応するグループID「1」が設定される。
拡張アドレスルーティング用テーブルメモリ2044の設定では、エンドポイント105等のデバイスごとに、そのデバイスに割り当て得るアドレス空間の下限値および上限値をテーブル2044のTLP送信先アドレス空間下限値および上限値に設定する。また、そのデバイスがつながるポート番号を出力ポート情報の項目に設定し、そのデバイスをどのCPUで使用するかという運用形態に応じたグループIDをグループIDの項目に設定する。例えば、エンドポイント105のデバイスに対し、アドレス空間下限値「AL」および上限値「AH」が割り当てられており、そのデバイスがCPU101からのみ使用されると仮定する。この場合、拡張アドレスルーティング用テーブルメモリ2044の一つのテーブルエントリに、アドレス空間下限値「AL」および上限値「AH」が設定され、出力ポート情報にポート番号「3」が設定され、グループIDには、CPU101がつながるポート1に対応するグループID「1」が設定される。なお、本事例のように、対象のデバイスがエンドポイントの場合、テーブル(2044)のアドレススワップオフセット情報には、常に「0」が設定される。
次に、図2を参照して、ルートコンプレックス102及び109、並びに、エンドポイント105〜107から送信されたTLPフレームを、PCIエクスプレス拡張スイッチ304がスイッチングして他のルートコンプレックス(102,109)およびエンドポイント(105〜107)に転送する際の動作を説明する。
何れかのデバイス(ルートコンプレックスまたはエンドポイント)からPCIエクスプレス拡張スイッチ304に入力されたTLPフレームは、何れかのPCI−PCIブリッジ(3041〜3045)を介して、PCIエクスプレスパケットスイッチフォワーディング機構20の何れかのポート(1〜5)に入力される。
PCIエクスプレスパケットスイッチフォワーディング機構20は、入力されたTLPフレームのヘッダ中のあて先アドレス空間および自機構20のシステム設定情報に基づいて決定したポートからフレームを出力するというスイッチング処理を行う。
図11に示すフローチャートを参照して、PCIエクスプレスパケットスイッチフォワーディング機構20の内部動作について説明する。あるポートから入力TLPフレーム21が入力されると(ステップS101)、入力TLPヘッダ書換器205が、その入力TLPフレーム21を入力したポート番号をキーにして、グループID管理テーブルメモリ2047を検索する(ステップS102)。この検索により、キーのポート番号に対応するグループIDが設定されたエントリの内容を取得する。次に、入力TLPヘッダ書換器205は、取得したグループIDを入力TLPフレーム21のヘッダに書き込む(ステップS103)。このとき、入力TLPフレーム21がIDルーティングTLPフレームであれば、図6に示すように、グループID902が設定された拡張IDルーティングTLPフレームが生成される。また、入力TLPフレーム21が拡張アドレスルーティングTLPフレームであれば、図5に示すように、グループID901が設定された拡張アドレスルーティングTLPフレームが生成される。入力TLPヘッダ書換器205で生成されたTLPフレームは、テーブルサーチ器203へ渡される。
テーブルサーチ器203は、TLPフレームを受け取ると、その種別を判別する(ステップS104)。判別した種別が拡張アドレスルーティングTLPフレームである場合、テーブルサーチ器203は、拡張TLPフォワーディングテーブル204中の拡張アドレスルーティング用テーブルメモリ2044を参照して、当該TLPフレームを出力するポートを決定する(ステップS105)。具体的には、拡張アドレスルーティングTLPフレームのByte8のアドレス[31:2]の値が、TLP送信先アドレス空間下限値と上限値のアドレス範囲に入っており、且つ、グループID901の値がグループIDの値と一致するテーブルエントリが選択され、そのテーブルエントリの出力ポート情報に設定されているポートが出力ポートに決定される。また、そのテーブルエントリのアドレススワップオフセット情報に「0」以外のオフセット情報が設定されている場合は、出力TLPヘッダ書換器2051を用いて、拡張アドレスルーティングTLPフレームのByte8のアドレス[31:2]の値を、前記オフセット情報に格納されているオフセット値だけ加算する書換処理を行う(ステップS106)。フレーム転送器207は、前記決定した出力ポートから拡張アドレスルーティングTLPフレームを出力する(ステップS110)。
テーブルサーチ器203は、TLPフレームの種別の判定結果(ステップS104)が拡張IDルーティングTLPフレームであった場合、そのマルチキャスト指示情報903の値が、マルチキャスト通信を表す「1」かどうかを判定する(ステップS107)。マルチキャスト指示情報903の値が「1」ではない場合、テーブルサーチ器203は、拡張IDルーティング用テーブルメモリ2045を参照して、当該TLPフレームを出力するポートを決定する(ステップS108)。具体的には、拡張IDルーティングTLPフレーム中のバス番号、デバイス番号およびファンクション番号の値が、テーブルエントリ中のバス番号、デバイス番号およびファンクション番号に一致し、且つ、グループID902の値がテーブルエントリ中のグループIDの値と一致するテーブルエントリが選択される。そして、そのテーブルエントリの出力ポート情報に設定されているポートが出力ポートに決定される。フレーム転送器207は、前記決定したポートから拡張IDルーティングTLPフレームを出力する(ステップS110)。
また、マルチキャスト指示情報903の上記判定の結果(ステップS107)、値が「1」であった場合、テーブルサーチ器203は、マルチキャストテーブルメモリ2046を参照して、当該TLPフレームを出力する複数のポートを決定する(ステップS109)。具体的には、拡張IDルーティングTLPフレーム中のバス番号、デバイス番号およびファンクション番号からなる15ビットの値をキーとして、マルチキャストテーブルメモリ2046のエントリを検索する。そして、ヒットしたエントリの複数出力ポート情報を構成するビットマップにおける「1」のビットに対応する複数のポートを、出力ポートとして決定する。フレーム転送器207は、マルチキャスト通信を行うべく、前記決定したポートから拡張IDルーティングTLPフレームを並列的に出力する(ステップS110)。
以上の基本的な動作に加えて、PCIエクスプレスパケットスイッチフォワーディング機構20は、グループID管理テーブルメモリ2047に設定されたポート属性に応じて、後述するa)及びb)のような付加的な処理を実行する。
a)PCIエクスプレスパケットスイッチフォワーディング機構20は、TLPフレームを出力するために決定したポートのポート属性をグループID管理テーブルメモリ2047で参照する。その結果、対象のポート属性の値が「0」である場合、すなわち、その出力ポートにつながるデバイスがルートコンプレックスあるいはエンドポイントである場合、テーブルサーチ器203は、出力TLPヘッダ書換器2051を用いて、出力すべきTLPフレームからグループIDを削除する。これにより、ヘッダのByte0に設定された4ビットの予約領域を空白の状態に書換えたTLPフレームを出力する。これにより、ルートコンプレックスまたはエンドポイントは、従来のPCIエクスプレススイッチ経由で受け取るTLPフレームと同様なTLPフレームを受け取ることができる。これに対し、出力ポートのポート属性の値が「1」の場合、つまりその出力ポートにつながるデバイスがシステムにおける他のPCIエクスプレス拡張スイッチである場合、上記のようなグループIDの書換えは行わない。
b)PCIエクスプレスパケットスイッチフォワーディング機構20は、TLPフレームを入力したポートのポート属性をグループID管理テーブルメモリ2047で参照する。その結果、対象のポート属性の値が「1」の場合、つまりその入力ポートにつながるデバイスがシステムにおける他のPCIエクスプレス拡張スイッチである場合、入力されたTLPフレームは、予約領域にグループIDが設定されたものである。この場合、PCIエクスプレスパケットスイッチフォワーディング機構20は、その拡張アドレスルーティングTLPフレームあるいは拡張IDルーティングTLPフレームであると認識し、自スイッチ内でのグループIDの設定処理(図11:ステップS103)を省略する。他方、入力ポートのポート属性の値が「0」の場合、つまり入力ポートにつながるデバイスがルートコンプレックスあるいはエンドポイントである場合、PCIエクスプレスパケットスイッチフォワーディング機構20は、入力されたTLPフレームが、予約領域にグループIDが設定されていない従来と同様なアドレスルーティングTLPフレームまたはIDルーティングTLPフレームであると認識する。
以上のような付加的な処理a)及びb)を実行することにより、PCIエクスプレス拡張スイッチ304に、従来と同様なデバイスを接続することができる。また、システムに複数のPCIエクスプレス拡張スイッチ304を配置し、それらの間で拡張アドレスルーティングTLPフレームおよび拡張IDルーティングTLPフレームを転送することができる。
このように、PCIエクスプレスパケットスイッチフォワーディング機構20は、グループID管理テーブルメモリ2047により、ポートに接続されているデバイスがルートコンプレックス、エンドポートおよびブリッジの何れであるかを認識する。これにより、PCIエクスプレスパケットスイッチフォワーディング機構20は、TLPフレームの転送時に、そのフレームの入力および出力に用いるポートが、ルートコンプレックス側のデバイスがつながっている上流側のポートであるのか、あるいは、エンドポイント側のデバイスがつながっている下流側のポートであるのかを把握することができる。
本実施の形態のPCIエクスプレス拡張スイッチ304は、そのシステム設定情報の内容によって各種のスイッチング動作が可能である。以下では、1)CPU101およびCPU108間の通信、2)CPU101またはCPU108とエンドポイント105との間の通信の2つの通信を例に挙げて、より具体的な動作を説明する。
1)CPU101およびCPU108間の通信
図12に、CPU101が管理するアドレス空間(「グループID「1」のアドレス空間」)と、CPU108が管理するアドレス空間(「グループID「2」のアドレス空間」)の設定例を示す。CPU101およびCPU108間で通信を行う場合、CPU101は、自身が管理するアドレス空間の一部をCPU108へメモリマップする。また、CPU108も自身が管理するアドレス空間の一部をCPU101へメモリマップする。ここで、メモリマップとは、メモリの領域をデバイスに割り当てることである。図12に示す例の場合、グループID「1」(CPU101)およびグループID「2」(CPU108)間で他方へのマッピングに使用するアドレス空間として、互いに同じ「0x00−00−10−00」〜「0x00−00−20−00」が設定されている。このような設定は両CUPU間にアドレスの競合を招くが、その原因は、CPU101およびCPU108が互いに独立して各自のアドレス空間の割り当てを行うことによる。
上記のように、CPU101およびCPU108間で他方へのメモリマップに使用するアドレス空間が競合する場合、一般の手法では、それらCPU間の正常な通信が困難である。何故なら、例えばCPU101が、CPU108にメモリマップしたアドレス「0x00−00−10−00」にデータをライトすると、CPU108のアドレス空間「0x00−00−10−00」にライトされるが、それをCPU108が読み取るためにアドレス「0x00−00−10−00」をリードすると、そのアドレス空間はCPU101にメモリマップされているため、CPU108が管理するアドレス空間のアドレス「0x00−00−10−00」がリードされることになるためである。
上述のようにCPU間で、他方にメモリマップするアドレス空間が競合する場合、アドレススワップオフセット情報を用いて競合を解除する。具体的には、図13に示すような拡張アドレスルーティング用テーブルメモリを用意し、図示のエントリE1及びE2に示されるような設定を行う。エントリE1の設定は、グループID「1」のデバイスから「0x00−00−10−00」〜「0x00−00−20−00」の領域のTLPフレームが到来した場合には、それをCPU108に対応するポート2から出力し、かつ、「0x00−00−10−00」だけアドレスをオフセットすべきことを意味する。また、テーブルエントリE2の設定は、グループID「2」のデバイスから「0x00−00−10−00」〜「0x00−00−20−00」の領域のTLPフレームが到来した場合には、それをCPU101に対応するポート1から出力し、かつ、「0x00−00−10−00」だけアドレスをオフセットすべきことを意味する。
なお、グループID管理テーブルメモリ2047には、図4に示すような前述の設定が行われる。
以上のような設定が行われた状態において、例えば、CPU101からCPU108へTLPフレームが送信された際のPCIエクスプレス拡張スイッチ304の動作は、次のようになる。
CPU101のルートコンプレックス102から、例えばアドレス「0x00−00−10−00」のTLPフレームが送信されると、そのTLPフレームがPCI−PCIブリッジ3041を介して、PCIエクスプレスパケットスイッチフォワーディング機構20のポート1へ入力される。
PCIエクスプレスパケットスイッチフォワーディング機構20の入力TLPヘッダ書換器205は、上記のTLPフレームを入力TLPフレーム21としてポート1から受信する。そして、ポート1に対応するグループID「1」をグループID管理テーブルメモリ2047から取得し、入力TLPフレーム21のヘッダにグループIDとして「1」を書き込む。テーブルサーチ器203は、転送先を決定するために、アドレス「0x00−00−10−00」とグループID「1」とをキーにして、図13の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリE1がヒットし、出力ポート情報「2」及びアドレススワップオフセット情報「0x00−00−10−00」が得られる。
テーブルサーチ器203は、出力TLPヘッダ書換器2051を用いて、TLPフレームのヘッダからグループIDを削除すると共に、アドレススワップオフセット値「0x00−00−10−00」の加算処理を行う。テーブルサーチ器203は、アドレスが「0x00−00−20−00」に書き換えられた出力TLPフレーム22を、CPU108が接続されるポート2からフレーム転送器207を用いて出力する。
ポート2から出力されたTLPフレームは、PCI−PCIブリッジ3042を経てCPU108のルートコンプレックス109により受信される。図12に示されるように、グループID「1」のアドレス空間「0x00−00−10−00」〜「0x00−00−20−00」は、PCIエクスプレス拡張スイッチ304により「0x00−00−10−00」だけオフセット処理されることにより、グループID「2」のアドレス空間「0x00−00−20−00」〜「0x00−00−30−00」にマッピングされる。
上記とは反対にCPU108からCPU101へTLPフレームが送信された場合には、PCIエクスプレス拡張スイッチ304が以下のような動作を行う。
CPU108のルートコンプレックス109から、例えばアドレス「0x00−00−10−00」のTLPフレームが送信されると、そのTLPフレームがPCI−PCIブリッジ3042を介してPCIエクスプレスパケットスイッチフォワーディング機構20のポート2へ入力される。
PCIエクスプレスパケットスイッチフォワーディング機構20の入力TLPヘッダ書換器205は、上記のTLPフレームを入力TLPフレーム21としてポート2から受信する。そして、ポート2に対応するグループID「2」をグループID管理テーブルメモリ2047から取得し、入力TLPフレーム21のヘッダにグループIDとして「2」を書き込む。テーブルサーチ器203は、転送先を決定するために、アドレス「0x00−00−10−00」とグループID「2」とをキーにして、図13の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリE2がヒットし、出力ポート情報「1」及びアドレススワップオフセット情報「0x00−00−10−00」が得られる。
テーブルサーチ器203は、出力TLPヘッダ書換器2051を用いて、TLPフレームのヘッダからグループIDを削除すると共に、アドレススワップオフセット値「0x00−00−10−00」の加算処理を行う。テーブルサーチ器203は、アドレスが「0x00−00−20−00」に書き換えられた出力TLPフレーム22を、CPU101が接続されるポート1からフレーム転送器207を用いて出力する。
ポート1から出力されたTLPフレームは、PCI−PCIブリッジ3041を経てCPU101のルートコンプレックス102により受信される。図12に示されるように、グループID「2」のアドレス空間「0x00−00−10−00」〜「0x00−00−20−00」は、PCIエクスプレス拡張スイッチ304により「0x00−00−10−00」だけオフセット処理されることにより、グループID「1」のアドレス空間「0x00−00−20−00」〜「0x00−00−30−00」にマッピングされる。
2)CPU101またはCPU108とエンドポイント105との通信
図14に、本事例で用いるグループID管理テーブルメモリの設定内容を示す。エンドポイント105を複数のCPU101及び108で共用する場合、図14に示すように、エンドポイント105に対応するポートに専用のグループIDを設定する。図示の例では、CPU101が接続されるポート1にグループID「1」が設定され、CPU108が接続されるポート2にグループID「2」が設定されている。そのため、エンドポイント105が接続されるポート3には、専用のグループIDとして「3」が設定されている。エンドポイント105に専用のグループID「3」を設定することで、エンドポイント105に、専用の仮想的なアドレス空間を設定することができる。
図15に、本事例のアドレス空間のマッピングを示す。図15には、CPU101が管理するアドレス空間(「グループID「1」のアドレス空間」)、及び、CPU108が管理するアドレス空間(「グループID「2」のアドレス空間」)に加え、エンドポイント105に割り当てられた前述の仮想的なアドレス空間(「グループID「3」のアドレス空間」)が示されている。CPU101とエンドポイント105との間で通信を行う場合、CPU101は、自身が管理するグループID「1」のアドレス空間の一部(「0x00−10−00−00」〜「0x00−20−00−00」)をエンドポイント105へメモリマップする。また、反対に、エンドポイント105のグループID「3」のアドレス空間の一部(「0x00−08−00−00」〜「0x00−08−10−00」)をCPU101へメモリマップする。同様に、CPU108とエンドポイント105との間で通信を行う場合、CPU108は、自身が管理するグループID「2」のアドレス空間の一部(「0x00−40−00−00」〜「0x00−50−00−00」)をエンドポイント105へメモリマップする。また、反対に、エンドポイント105のグループID「3」のアドレス空間の一部(「0x00−08−30−00」〜「0x00−09−00−00」)をCPU108へメモリマップする。
また、メモリマップの設定内容に応じて、PCIエクスプレス拡張スイッチ304の拡張アドレスルーティング用テーブルメモリを、図16のエントリE11〜E14のように設定する。エントリE11の設定は、グループID「1」の「0x00−10−00−00」〜「0x00−20−00−00」の領域のTLPフレームが到来した場合に、そのフレームを、エンドポイント105に対応するポート3から出力すべきことを意味する。エントリE12の設定は、グループID「2」の「0x00−40−00−00」〜「0x00−50−00−00」の領域のTLPフレームが到来した場合に、そのフレームを、エンドポイント105に対応するポート3から出力すべきことを意味する。エントリE13の設定は、グループID「3」の「0x00−08−00−00」〜「0x00−08−10−00」の領域のTLPフレームが到来した場合には、そのフレームを、CPU101に対応するポート1から出力すべきことを意味する。エントリE14の設定は、グループID「3」の「0x00−08−30−00」〜「0x00−09−00−00」の領域のTLPフレームが到来した場合には、そのフレームを、CPU108に対応するポート2から出力すべきことを意味する。
以上のような設定が行われた状態において、CPU101からエンドポイント105へフレームが送信される場合のPCIエクスプレス拡張スイッチ304の動作は次のようになる。
CPU101のルートコンプレックス102から、例えばアドレス「0x00−10−00−00」のTLPフレームが送信されると、そのTLPフレームがPCI−PCIブリッジ3041を経て、PCIエクスプレスパケットスイッチフォワーディング機構20のポート1へ入力される。
PCIエクスプレスパケットスイッチフォワーディング機構20の入力TLPヘッダ書換器205は、上記のTLPフレームを入力TLPフレーム21としてポート1から受信する。そして、ポート1に対応するグループID「1」をグループID管理テーブルメモリ2047から取得し、入力TLPフレーム21のヘッダにグループID「1」を書き込む。テーブルサーチ器203は、転送先を決定するために、アドレス「0x00−10−00−00」とグループID「1」とをキーにして、図16の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリE11がヒットし、出力ポート情報「3」が得られる。
テーブルサーチ器203は、出力TLPヘッダ書換器2051を用いて、上記のTLPフレームのヘッダからグループIDを削除する。フレーム転送器207は、アドレス「0x00−10−00−00」のTLPフレームを、エンドポイント105が接続されるポート3から出力TLPフレーム22として出力する。出力されたTLPフレームは、PCI−PCIブリッジ3043を介してエンドポイント105に受信される。
CPU108からエンドポイント105へのフレームの送信動作は以下のように行われる。
CPU108のルートコンプレックス109から、例えば、アドレス「0x00−40−00−00」のTLPフレームが送信されると、そのTLPフレームがPCI−PCIブリッジ3042を経て、PCIエクスプレスパケットスイッチフォワーディング機構20のポート2へ入力される。
PCIエクスプレスパケットスイッチフォワーディング機構20の入力TLPヘッダ書換器205は、上記のTLPフレームを入力TLPフレーム21としてポート2から受信する。そして、ポート2に対応するグループID「2」をグループID管理テーブルメモリ2047から取得し、入力TLPフレーム21のヘッダにグループID「2」を書き込む。テーブルサーチ器203は、転送先を決定するために、アドレス「0x00−40−00−00」とグループID「2」とをキーにして、図16の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリE12がヒットし、出力ポート情報「3」が得られる。
テーブルサーチ器203は、出力TLPヘッダ書換器2051を用いて、TLPフレームのヘッダからグループIDを削除する。フレーム転送器207は、アドレス「0x00−40−00−00」のTLPフレームを、エンドポイント105が接続されるポート3から出力TLPフレーム22として出力する。出力されたTLPフレームは、PCI−PCIブリッジ3043を介してエンドポイント105に受信される。
上記とは反対に、エンドポイント105からCPU101へフレームが送信された場合、PCIエクスプレス拡張スイッチ304が以下のように動作する。
エンドポイント105から、例えば、アドレス「0x00−08−00−00」のTLPフレームが送信されると、そのフレームがPCI−PCIブリッジ3043を経てPCIエクスプレスパケットスイッチフォワーディング機構20のポート3へ入力される。
PCIエクスプレスパケットスイッチフォワーディング機構20の入力TLPヘッダ書換器205は、上記のTLPフレームを入力TLPフレーム21としてポート3から受信する。そして、ポート3に対応するグループID「3」をグループID管理テーブルメモリ2047から取得し、入力TLPフレーム21のヘッダにグループID「3」を書き込む。テーブルサーチ器203は、転送先を決定するために、アドレス「0x00−08−00−00」とグループID「3」とをキーにして、図16の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリE13がヒットし、出力ポート情報「1」が得られる。
テーブルサーチ器203は、出力TLPヘッダ書換器2051を用いて、TLPフレームのヘッダからグループIDを削除する。フレーム転送器207は、アドレス「0x00−08−00−00」のTLPフレームを、CPU101が接続されるポート1から出力TLPフレーム22として出力する。出力されたTLPフレームは、PCI−PCIブリッジ3041を介してルートコンプレックス102で受信される。
エンドポイント105からCPU108へのTLPフレームの送信は以下のように行われる。
エンドポイント105から、例えば、アドレス「0x00−08−30−00」のTLPフレームが送信されると、そのTLPフレームがPCI−PCIブリッジ3043を経て、PCIエクスプレスパケットスイッチフォワーディング機構20のポート3へ入力される。
PCIエクスプレスパケットスイッチフォワーディング機構20の入力TLPヘッダ書換器205は、上記のTLPフレームを入力TLPフレーム21としてポート3から受信する。そして、ポート3に対応するグループID「3」をグループID管理テーブルメモリ2047から取得し、入力TLPフレーム21のヘッダにグループID「3」を書き込む。テーブルサーチ器203は、転送先を決定するために、アドレス「0x00−08−30−00」とグループID「3」とをキーにして、図16の拡張アドレスルーティング用テーブルメモリを検索する。検索の結果、エントリE14がヒットし、出力ポート情報「2」が得られる。
テーブルサーチ器203は、出力TLPヘッダ書換器2051を用いて、TLPフレームのヘッダからグループIDを削除する。フレーム転送器207は、アドレス「0x00−08−30−00」のTLPフレームを、CPU108が接続されるポート2から出力TLPフレーム22として出力する。出力されたTLPフレームは、PCI−PCIブリッジ3042を介してルートコンプレックス109で受信される。
本実施の形態の効果を説明する。
PCIエクスプレスパケットスイッチフォワーディング機構20により、任意のPCI−PCIブリッジ間でTLPフレームの転送が可能となる。これにより、ルートコンプレックス102とルートコンプレックス109との間のTLPフレーム転送、および、複数のルートコンプレックス102及び109からの同一エンドポイントへのTLPフレームの転送が可能である。また、PCIエクスプレスパケットスイッチフォワーディング機構20は、入力されたTLPフレームのヘッダにグループIDを設定するというヘッダ書換え処理を行った後、そのTLPフレームに対応するフォワーディングテーブルを使用する。これにより、複数のCPU(101,108)で独自に管理されるアドレス空間に生じ得るアドレス競合を避けることができる。したがって、本実施形態によれば、データ転送時の遅延の増大、及び、LSI回路規模の増大を招くフレームカプセル化を行うことなく、ルートコンプレックス側につながる複数のCPU間の通信が可能になる。また、異なるルートコンプレックスにつながる複数のCPUから同一のエンドポイントに対して通信することが可能になる。
さらにまた、PCIエクスプレスパケットスイッチフォワーディング機構20は、TLPフレームがIDルーティングフレームであり、且つ、マルチキャスト通信が設定されたものである場合に、マルチキャストテーブルメモリを参照して転送先情報を選択する。これにより、特定のデバイスに対してのマルチキャスト転送を行うことが可能となる。よって、本実施の形態のPCIエクスプレス拡張スイッチ304を使用すれば、1種類のスイッチだけで、特定のデバイスに対してのマルチキャスト転送を行うネットワークシステムを構築することができる。この点を図17を参照して説明する。
図17に、図26に示すシステムと同等の機能を、本実施の形態に係るPCIエクスプレス拡張スイッチ304を用いて実現したシステムの構成を示す。PCIエクスプレス拡張スイッチ304は、前述したように、拡張IDルーティングTLPフレーム9021(図6)を使ったマルチキャスト転送を行うことができる。図17に示すシステムでは、CPU101およびメモリ103が接続されたルートコンプレックス102と、複数の拡張ネットワーク用フォワーディングエンジン112〜114とが、PCIエクスプレス拡張スイッチ304により相互に接続される。
図17のシステムにおいて、マルチキャスト転送を行う際、拡張ネットワーク用フォワーディングエンジン112〜114は、拡張IDルーティングTLPフレーム9021(図6)のマルチキャスト指示情報903を「1」に設定する。また、マルチキャスト転送で使用するグループ番号をバス番号、デバイス番号、ファンクション番号に設定したフレームを、PCIエクスプレス拡張スイッチ304に送信する。PCIエクスプレス拡張スイッチ304は、上記フレームを受信すると、テーブルサーチ器203により、バス番号、デバイス番号、ファンクション番号からなる15ビットの情報を参照メモリアドレスとして、マルチキャストテーブルメモリ2046(図10)を検索する。そして、この検索により得た出力ポートを用いて、マルチキャスト転送を実行する。図10より、例えば、参照するメモリアドレスが「0x7FFF」の場合、複数出力ポート情報は、「0000−0000−0001−1100」である。この場合、ポート3、ポート4及びポート5が、マルチキャスト転送に用いる出力ポートとなる。
また、図17のシステムにおいてユニキャスト転送を行う場合は、図21に示すアドレスルーティングフレーム、または、図22に示すIDルーティングフレームが使用される。このとき、PCIエクスプレス拡張スイッチ304は、拡張アドレスルーティング用テーブルメモリ2044または拡張IDルーティング用テーブルメモリ2045を参照することにより、ユニキャスト用の転送ポートを決定する。
また、マルチキャスト転送機能を有する本実施の形態のPCIエクスプレス拡張スイッチ304は、エンドポイントのデバイスの多重化により高信頼化が図られたコンピュータシステムにも適用できる。その適用例を図18に示す。
図18に示すコンピュータシステムにおいて、CPU101およびメモリ103が接続されたルートコンプレックス102は、現用のエンドポイント105とその予備のエンドポイント105´とにPCIエクスプレス拡張スイッチ304を介して接続されている。PCIエクスプレス拡張スイッチ304は、正常時は、マルチキャスト転送機能により、ルートコンプレックス102からの送信フレームをエンドポイント105と予備のエンドポイント105´が接続されているポートとに対しマルチキャスト転送を行う。また、PCIエクスプレス拡張スイッチ304は、エンドポイント105からの受信フレームのみルートコンプレックス102へ送信する。これにより、エンドポイント105及び予備のエンドポイント105´は正常時は同じ状態を保つことができる。
エンドポイント105が故障した場合、PCIエクスプレス拡張スイッチ304は、予備のエンドポイント105´からの受信フレームをルートコンプレックス102へ送信する。これにより、エンドポイント105のデバイスが故障しても、その動作を予備のエンドポイント105´のデバイスが引き継ぐことができ、システムの高信頼化を図ることができる。
以上本発明の実施の形態について説明したが、本発明は以上の例に限定されず、その他各種の付加変更が可能である。上記実施形態では、有線で接続されたコンピュータシステムおよびネットワークシステムを前提として説明したが、有線または無線にかかわらず、PCIエクスプレス準拠のシステム環境全てに適用可能である。




Claims (11)

  1. それぞれに接続されたデバイスとの間でPCIエクスプレス準拠のTLPフレームを送受信する複数のブリッジと、
    前記複数のブリッジが接続される複数のポートを有し、前記複数のポートのいずれかから入力されたTLPフレームの宛先情報と該TLPフレームを入力したポートとの組み合わせに応じて出力ポートを選定し該出力ポートから前記TLPフレームを出力するスイッチフォワーディング機構とを備え
    前記スイッチフォワーディング機構は、前記複数のブリッジに接続されたデバイスのうちの相互に接続すべきデバイスおよびその接続に用いるポートを識別するためのグループIDを記憶するグループID管理テーブルメモリと、TLPフレームの宛先情報と前記グループID管理テーブルメモリのグループIDとに関連付けられた出力ポートの情報を記憶するフォワーディングテーブルと、前記複数のポートのいずれかから入力されたTLPフレームのための出力ポートを前記フォワーディングテーブルから選定し当該出力ポートから前記TLPフレームを出力する転送制御部とを有し、
    前記転送制御部は、TLPフレームを入力したポートに対応するグループIDを前記グループID管理テーブルメモリから読み出して前記TLPフレームのヘッダに設定する入力ヘッダ書換器と、前記TLPフレームの宛先情報と該TLPフレームのヘッダに設定されたグループIDとに対応する出力ポートを前記フォワーディングテーブルから選定するテーブルサーチ器と、前記テーブルサーチ器が選定した出力ポートから前記TLPフレームを出力するフレーム転送器とを有し、
    前記グループID管理テーブルメモリは、グループIDが付与された各ポートに接続されるデバイスの種類を表す属性情報を記憶し、
    前記スイッチフォワーディング機構は、前記テーブルサーチ器が選定した出力ポートに関し前記グループID管理テーブルメモリに記憶されている属性情報がPCIエクスプレス準拠のルートコンプレックスまたはエンドポイントを表す場合に前記フレーム転送器から出力すべきTLPフレームのヘッダに設定されたグループIDを削除する出力ヘッダ書換器を有することを特徴とするスイッチ。
  2. 前記入力ヘッダ書換器は、前記TLPフレームのヘッダの予約領域に当該グループIDを設定することを特徴とする請求項記載のスイッチ。
  3. 前記入力ヘッダ書換器は、TLPフレームを入力したポートに関し前記グループID管理テーブルメモリに記憶されている属性情報が他のスイッチを表す場合、前記TLPフレームのヘッダに既に設定されているグループIDを残すことを特徴とする請求項1又は2記載のスイッチ。
  4. 前記フォワーディングテーブルは、IDルーティング用およびアドレスルーティング用のフォワーディングテーブルを含み、
    前記テーブルサーチ器は、前記フォワーディングテーブルのうちの前記TLPフレームのルーティング形態に対応するフォワーディングテーブルから前記出力ポートを選定することを特徴とする請求項1乃至3のいずれか1項に記載のスイッチ。
  5. 前記アドレスルーティング用のフォワーディングテーブルは、TLPフレームの宛先としてのデバイスにおけるメモリアドレスのオフセット量を規定したオフセット情報を含み、
    前記出力ヘッダ書換部は、前記TLPフレーム転送器から出力すべきTLPフレームの宛先情報を前記オフセット情報に従い書き換えることを特徴とする請求項記載のスイッチ。
  6. 前記フォワーディングテーブルは、IDルーティング用のフォワーディングテーブルが記憶する宛先情報と複数の出力ポートとの関連を規定したマルチキャストテーブルを含み、
    前記テーブルサーチ器は、前記TLPフレームのルーティング形態がIDルーティングであり、かつ、前記TLPフレームにマルチキャスト通信を指示する情報が設定されている場合、前記TLPフレームのための出力ポートを前記マルチキャストテーブルから選定することを特徴とする請求項記載のスイッチ。
  7. 前記グループID管理テーブルメモリは、それぞれルートコンプレックスを表す複数の属性情報に対し相互に異なるグループIDを記憶することを特徴とする請求項記載のスイッチ。
  8. 前記グループID管理テーブルメモリは、特定のルートコンプレックスに接続されたCPUが使用するエンドポイントに接続されたポートのグループIDとして、前記特定のルートコンプレックスに接続されるポートのグループIDと同一のものを記憶することを特徴とする請求項記載のスイッチ。
  9. 前記グループID管理テーブルメモリは、複数のルートコンプレックスに接続された複数のCPUが共用するエンドポイントに接続されたポートのグループIDとして、前記エンドポイント専用のグループIDを記憶することを特徴とする請求項記載のスイッチ。
  10. さらに、前記グループID管理テーブルメモリおよび前記フォワーディングテーブルを外部装置からアクセス可能とする外部制御インタフェースを備えることを特徴とする請求項記載のスイッチ。
  11. 請求項1乃至10のいずれか1項に記載のスイッチと、前記スイッチおよび相互に異なるいずれかの前記デバイスに接続された第1のPCIエクスプレスバスおよび第2のPCIエクスプレスバスとを備えることを特徴とするシステム。
JP2008528845A 2006-08-09 2007-08-08 インターコネクション用スイッチおよびシステム Active JP4998469B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008528845A JP4998469B2 (ja) 2006-08-09 2007-08-08 インターコネクション用スイッチおよびシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006216495 2006-08-09
JP2006216495 2006-08-09
PCT/JP2007/065488 WO2008018485A1 (fr) 2006-08-09 2007-08-08 Commutateur pour une interconnexion, et système
JP2008528845A JP4998469B2 (ja) 2006-08-09 2007-08-08 インターコネクション用スイッチおよびシステム

Publications (2)

Publication Number Publication Date
JPWO2008018485A1 JPWO2008018485A1 (ja) 2009-12-24
JP4998469B2 true JP4998469B2 (ja) 2012-08-15

Family

ID=39033014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008528845A Active JP4998469B2 (ja) 2006-08-09 2007-08-08 インターコネクション用スイッチおよびシステム

Country Status (4)

Country Link
US (1) US8615623B2 (ja)
JP (1) JP4998469B2 (ja)
CN (1) CN101501660B (ja)
WO (1) WO2008018485A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5272265B2 (ja) * 2008-09-29 2013-08-28 株式会社日立製作所 Pciデバイス共有方法
JP5434929B2 (ja) * 2008-11-13 2014-03-05 日本電気株式会社 I/oバスシステム
JP5217929B2 (ja) * 2008-11-13 2013-06-19 ソニー株式会社 割込検出装置および情報処理システム
JP5731108B2 (ja) * 2009-07-03 2015-06-10 日本電気株式会社 中継手段、中継システム、中継方法およびプログラム
US9047416B2 (en) 2010-02-22 2015-06-02 Nec Corporation Communication control system, switching node, communication control method and communication control program including PCI express switch and LAN interface
EP2701072A1 (en) 2010-03-11 2014-02-26 Ricoh Company, Ltd. Adapter and communication method
US20120063454A1 (en) * 2010-08-30 2012-03-15 Velez-Mccaskey Ricardo Apparatus and method in a system for multicast data transfers over an interconnected bus
US20120155471A1 (en) * 2010-12-15 2012-06-21 Electronics And Telecommunications Research Institute Method and apparatus for routing
US9407577B2 (en) 2011-03-23 2016-08-02 Nec Corporation Communication control system, switch node and communication control method
US20120324139A1 (en) * 2011-06-14 2012-12-20 Advanced Micro Devices, Inc. Wireless communication for point-to-point serial link protocol
US8966172B2 (en) * 2011-11-15 2015-02-24 Pavilion Data Systems, Inc. Processor agnostic data storage in a PCIE based shared storage enviroment
JP2013196593A (ja) * 2012-03-22 2013-09-30 Ricoh Co Ltd データ処理装置、データ処理方法及びプログラム
JP5928087B2 (ja) * 2012-03-29 2016-06-01 富士通株式会社 スイッチ、情報処理装置および通信制御方法
US20140044129A1 (en) * 2012-08-10 2014-02-13 Duane Edward MENTZE Multicast packet forwarding in a network
KR101579917B1 (ko) * 2012-10-27 2015-12-23 후아웨이 테크놀러지 컴퍼니 리미티드 Pcie 스위칭 네트워크에서 패킷 전송을 실행하기 위한 방법, 장치, 시스템, 및 저장 매체
US10452316B2 (en) 2013-04-17 2019-10-22 Apeiron Data Systems Switched direct attached shared storage architecture
KR102147629B1 (ko) * 2013-11-18 2020-08-27 삼성전자 주식회사 플렉시블 서버 시스템
US9003090B1 (en) 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology
JP6298534B2 (ja) * 2014-08-05 2018-03-20 株式会社アキブシステムズ 経路制御装置及び経路制御方法並びにコンピュータシステム及びプログラム及びプログラムを格納した記憶媒体
US9819579B2 (en) * 2014-09-22 2017-11-14 Ciena Corporation Header space analysis extension systems and methods for transport networks
US9419918B2 (en) * 2014-11-07 2016-08-16 Futurewei Technologies, Inc. Non-transparent bridge method and apparatus for configuring high-dimensional PCI-express networks
KR102219759B1 (ko) * 2015-01-09 2021-02-25 삼성전자주식회사 저장 장치, 그것을 포함하는 데이터 저장 시스템 및 그것의 동작 방법
US10348348B2 (en) * 2017-03-06 2019-07-09 Ford Global Technologies, Llc Method and apparatus for vehicle message routing
KR102352156B1 (ko) 2017-10-26 2022-01-17 삼성전자주식회사 Arp를 수행하는 슬레이브 장치 및 이의 동작 방법
JP7181447B2 (ja) 2018-03-30 2022-12-01 株式会社ソシオネクスト 情報処理システム、情報処理方法及び半導体装置
WO2019203331A1 (ja) * 2018-04-18 2019-10-24 富士通クライアントコンピューティング株式会社 中継装置および情報処理システム
JP6635209B2 (ja) * 2018-04-18 2020-01-22 富士通クライアントコンピューティング株式会社 情報処理システム
JP6700564B1 (ja) 2018-12-28 2020-05-27 富士通クライアントコンピューティング株式会社 情報処理システム
US10678732B1 (en) * 2019-02-27 2020-06-09 Liqid Inc. Expanded host domains in PCIe fabrics
GB2586957A (en) * 2019-04-18 2021-03-17 Fujitsu Client Computing Ltd Repeating device and information processing system
JP6574917B1 (ja) * 2019-05-20 2019-09-11 富士通クライアントコンピューティング株式会社 情報処理システム、及び中継装置
CN118056191A (zh) * 2021-06-09 2024-05-17 安法布里卡公司 具有可配置传输的多平面、多协议存储器交换机构造

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337805A (ja) * 2002-05-20 2003-11-28 Mitsubishi Electric Corp マルチプロセッサシステムおよびデータ転送方法
JP2005318074A (ja) * 2004-04-27 2005-11-10 Hitachi Ltd ストレージグループ設定方法および装置
JP2005332386A (ja) * 2004-04-28 2005-12-02 Microsoft Corp 主コンピューティング環境に対する補助コンピューティング環境としてのタスク指向処理
JP2006195821A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
JP2007086963A (ja) * 2005-09-21 2007-04-05 Hitachi Ltd 計算機システム及びi/oブリッジ
JP2007272871A (ja) * 2006-03-10 2007-10-18 Ricoh Co Ltd 情報処理装置およびデータ通信方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2605544B2 (ja) 1992-04-08 1997-04-30 三菱電機株式会社 インタネットワーク装置
JPH0964886A (ja) 1995-08-25 1997-03-07 Hitachi Cable Ltd スイッチングハブ
US6836813B1 (en) 2001-11-30 2004-12-28 Advanced Micro Devices, Inc. Switching I/O node for connection in a multiprocessor computer system
US7120722B2 (en) * 2002-05-14 2006-10-10 Intel Corporation Using information provided through tag space
JP2005286681A (ja) 2004-03-30 2005-10-13 Allied Telesis Holdings Kk 中継機器
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
US7058738B2 (en) * 2004-04-28 2006-06-06 Microsoft Corporation Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices
US20050262269A1 (en) 2004-05-20 2005-11-24 Pike Jimmy D System and method for information handling system PCI express advanced switching
US7694047B1 (en) * 2005-02-17 2010-04-06 Qlogic, Corporation Method and system for sharing input/output devices
US7293129B2 (en) * 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing
US7430630B2 (en) * 2005-10-27 2008-09-30 International Business Machines Corporation Routing mechanism in PCI multi-host topologies using destination ID field
US7752346B2 (en) * 2007-12-21 2010-07-06 Aprius, Inc. Universal routing in PCI-Express fabrics

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337805A (ja) * 2002-05-20 2003-11-28 Mitsubishi Electric Corp マルチプロセッサシステムおよびデータ転送方法
JP2005318074A (ja) * 2004-04-27 2005-11-10 Hitachi Ltd ストレージグループ設定方法および装置
JP2005332386A (ja) * 2004-04-28 2005-12-02 Microsoft Corp 主コンピューティング環境に対する補助コンピューティング環境としてのタスク指向処理
JP2006195821A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
JP2007086963A (ja) * 2005-09-21 2007-04-05 Hitachi Ltd 計算機システム及びi/oブリッジ
JP2007272871A (ja) * 2006-03-10 2007-10-18 Ricoh Co Ltd 情報処理装置およびデータ通信方法

Also Published As

Publication number Publication date
JPWO2008018485A1 (ja) 2009-12-24
CN101501660B (zh) 2011-11-16
WO2008018485A1 (fr) 2008-02-14
US8615623B2 (en) 2013-12-24
CN101501660A (zh) 2009-08-05
US20100180062A1 (en) 2010-07-15

Similar Documents

Publication Publication Date Title
JP4998469B2 (ja) インターコネクション用スイッチおよびシステム
US8412875B2 (en) Switch and network bridge apparatus
JP5477707B2 (ja) I/oシステムおよびi/o制御方法
US9025495B1 (en) Flexible routing engine for a PCI express switch and method of use
JP5285375B2 (ja) ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
US9146890B1 (en) Method and apparatus for mapped I/O routing in an interconnect switch
JP5360607B2 (ja) Pciエクスプレススイッチ、pciエクスプレスシステム、及びネットワーク制御方法
CN103117929B (zh) 一种基于PCIe数据交换的通信方法及系统
JP5310175B2 (ja) スイッチシステム、及びスイッチシステムの制御方法
US8995302B1 (en) Method and apparatus for translated routing in an interconnect switch
WO2013136522A1 (ja) 計算機システム及び計算機間のデータ通信方法
JP2019033534A (ja) データパケット転送
JP5928087B2 (ja) スイッチ、情報処理装置および通信制御方法
US20110206051A1 (en) I/o bus system
JPWO2012073304A1 (ja) 計算機システム、それに使用されるスイッチ及びパケット転送制御方法
US10305825B2 (en) Bus control device, relay device, and bus system
JP2008310832A (ja) 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法
US9753883B2 (en) Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
US20150220445A1 (en) Transactional memory that performs a programmable address translation if a dat bit in a transactional memory write command is set
JP5110156B2 (ja) スイッチ及びネットワークブリッジ装置
JPWO2015052854A1 (ja) トラフィック管理システムおよびトラフィック管理方法
JP2023143302A (ja) 中継装置および中継方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100716

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20101021

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120327

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4998469

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3