JP5928087B2 - スイッチ、情報処理装置および通信制御方法 - Google Patents

スイッチ、情報処理装置および通信制御方法 Download PDF

Info

Publication number
JP5928087B2
JP5928087B2 JP2012077827A JP2012077827A JP5928087B2 JP 5928087 B2 JP5928087 B2 JP 5928087B2 JP 2012077827 A JP2012077827 A JP 2012077827A JP 2012077827 A JP2012077827 A JP 2012077827A JP 5928087 B2 JP5928087 B2 JP 5928087B2
Authority
JP
Japan
Prior art keywords
identifier
access request
switch
pcie
unit
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
JP2012077827A
Other languages
English (en)
Other versions
JP2013206390A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012077827A priority Critical patent/JP5928087B2/ja
Priority to US13/721,127 priority patent/US9219695B2/en
Publication of JP2013206390A publication Critical patent/JP2013206390A/ja
Application granted granted Critical
Publication of JP5928087B2 publication Critical patent/JP5928087B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、スイッチ、情報処理装置および通信制御方法に関する。
コンピュータの高性能化等に伴って入出力の高性能化に対する需要も増大し、PCI(Peripheral Component Interconnect)に代わって、PCIExpress(以下、「PCIe」と記載する場合がある)などの高速な入出力インタフェースが利用されている。
PCIやPCIeは、コンピュータ内部でCPU(Central Processing Unit)と入出力デバイスを接続する規格である。PCIは、CPUと入出力デバイスとをバス構造で直接接続する。PCIeは、PCIとは異なり、CPUと入出力デバイスとの間にPCIeスイッチを設けたスター構造で、CPUと入出力デバイスとを接続する。すなわち、CPUと入出力デバイスは1対1で接続され、分岐を行う場合にはPCIeスイッチを介して分岐する。
このようなPCIeスイッチは、内部に仮想的なバスを設定し、CPUと各入出力デバイスとを仮想的なバスで接続するような論理イメージを提供する。これにより、CPUは、構成の違いを意識することなく、PCIとPCIeを同様に扱うことができる。
近年では、PCIeを用いたコンピュータに接続する入出力デバイスを増やす手法として、PCIeスイッチにPCIeスイッチを接続する多段構成も利用されている。つまり、PCIeスイッチの下にPCIeスイッチを接続し、PCIeスイッチを階層構造で複数接続することで、1つのCPUに接続される入出力デバイスの数を増やすことができる。
特開2010−79816号公報
しかしながら、PCIeスイッチを複数接続する際、PCIeスイッチの接続方法に制限が生じるという問題がある。なお、この問題は、PCIeスイッチに限ったものではなく、PCIeスイッチと同様の機能を有する他のスイッチについても同様に存在する。
例えば、PCIeスイッチを多段構成に接続する場合であっても、PCIeスイッチではツリー構造でCPUと入出力デバイスとを接続するという制限がある。つまり、PCIeスイッチを複数接続した場合に発生するループ構造を許容することができない。したがって、ループ構造にならないように、二重化された接続を無効化することが行われる。また、PCIeスイッチを多段構成で接続していることから、PCIeスイッチの故障に対応するために冗長化も行われるが、ツリー構造を維持しながらループ構造の無効化や冗長化の実現を行うことになるので、PCIeスイッチの管理も複雑になる。
1つの側面では、スイッチを複数接続する際に生じる制限を緩和できるスイッチ、情報処理装置および通信制御方法を提供することを目的とする。
第1の案では、スイッチは、記憶部と特定部と送信制御部とを有する。記憶部は、第1識別子と第2識別子と宛先とを対応付けて記憶する。第1識別子は、プロセッサがデバイスの識別に使用される。第2識別子は、前記プロセッサと前記デバイスとを接続する複数のスイッチが形成するネットワークで前記デバイスの識別に共通して使用される。宛先は、前記デバイスに対するアクセス要求の宛先である。特定部は、前記プロセッサからアクセス要求を受信した場合に、当該アクセス要求に含まれる第1識別子に対応付けられた第2識別子と宛先とを前記記憶部から特定する。送信制御部は、前記特定部によって特定された第2識別子を前記アクセス要求に付加し、前記特定部によって特定された宛先に、当該アクセス要求を送信する。
スイッチを複数接続する際に生じる制限を緩和できる。
図1は、実施例1に係る情報処理装置の全体構成例を示す図である。 図2は、PCIeスイッチの構成を示すブロック図である。 図3は、PCIID変換テーブルに記憶される情報の例を示す図である。 図4は、内部ネットワークID変換テーブルに記憶される情報の例を示す図である。 図5は、経路テーブルに記憶される情報の例を示す図である。 図6は、拡張PCIeパケットのフォーマット例を示す図である。 図7は、TLPプレフィックスの例を示す図である。 図8は、CPUからパケットを受信した場合の処理の流れを示すフローチャートである。 図9は、他のスイッチからパケットを受信した場合の処理の流れを示すフローチャートである。 図10は、パケットの流れを説明する図である。 図11は、PCIeスイッチを用いた物理構成を示す図である。 図12は、図11をCPUから見た場合の論理構成を示す図である。 図13は、図11を従来技術で見た場合の論理構成を示す図である。 図14は、PCIeスイッチ(A)が保持する内部ネットワークID変換テーブルの例を示す図である。 図15は、各PCIeスイッチが保持する経路テーブルの例を示す図である。 図16は、I/Oデバイス2への経路を示す図である。 図17は、PCIeスイッチのネットワーク障害を示す図である。 図18は、テーブル更新例を示す図である。 図19は、経路切替後の物理構成を示す図である。 図20は、従来技術を用いた場合の経路切替後の論理構成を示す図である。
以下に、本願の開示するスイッチ、情報処理装置および通信制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
[全体構成]
図1は、実施例1に係る情報処理装置の全体構成例を示す図である。図1に示すように、情報処理装置は、CPU(Central Processing Unit)100、PCIExpressスイッチ(A)〜(E)、管理ユニット200、少なくとも1つのデバイス500を有する。なお、各PCIExpressスイッチ(以下、「PCIeスイッチ」と記載する場合がある)と管理ユニット200は、情報処理装置の外部にあってもよく、情報処理装置に内蔵されていてもよい。
CPU100は、PCIeスイッチ(A)とPCIExpressで接続する処理部であり、デバイス500に対して各種アクセス要求を送信して結果を受信する。例えば、CPU100は、デバイス500にデータ書込み要求を送信し、書込み結果を受信する。
PCIeスイッチ(A)〜(E)は、CPU100とデバイス500とを接続するスイッチであり、各スイッチがPCIExpressで接続されたPCIeネットワーク3を形成する。管理ユニット200は、各PCIeスイッチが保持する経路情報等を更新する処理部であり、PCIeネットワーク3を管理する。デバイス500は、入出力デバイス(以下、「I/Oデバイス」と記載する場合がある)であり、CPU100からのアクセスを受け付ける。
このような状態において、各PCIeスイッチは、記憶部を有する。記憶部は、CPU100がデバイス500の識別に使用するPCIIDと、PCIeネットワーク3でデバイス500の識別に共通して使用される内部ネットワークIDと、デバイス500に対するアクセス要求の宛先とを対応付けて記憶する。そして、各PCIeスイッチは、CPU100からアクセス要求を受信した場合に、当該アクセス要求に含まれるPCIIDに対応付けられた内部ネットワークIDと宛先とを記憶部から特定する。その後、各PCIeスイッチは、特定された内部ネットワークIDをアクセス要求に付加し、特定された宛先に、当該アクセス要求を送信する。
このように、各PCIeスイッチは、CPU100が使用するPCIIDをPCIeスイッチ内で管理する内部ネットワークIDに変換し、当該IDを含む新たなヘッダーを用いてアクセス要求をデバイス500まで転送させる。この結果、上位層による転送を可能にし、PCIeスイッチの接続制限を緩和することができる。
[PCIeスイッチの構成]
図2は、PCIeスイッチの構成を示すブロック図である。なお、図1に示した各PCIeスイッチは同様の構成を有するので、ここでは、PCIeスイッチ10として説明する。
図2に示すように、PCIeスイッチ10は、PCIID変換テーブル11、内部ネットワークID変換テーブル12、経路テーブル13、第1入力バッファ14、第1中継部15、TLP付加部16、第1ルーティング実行部17、ブリッジ接続部18を有する。また、PCIeスイッチ10は、第2入力バッファ19、第2中継部20、TLP識別部21、第2ルーティング実行部22、第3ルーティング実行部23、クロスバ24を有する。また、PCIeスイッチ10は、TLP削除部25、第3中継部26、第1出力バッファ27、第4中継部28、第2出力バッファ29を有する。
なお、各処理部は、例えばCPUなどの電子回路やFPGA(Field-Programmable Gate Array)などの集積回路である。また、各処理部は、CPUなどによって実行される処理部である。各テーブルは、例えば半導体メモリ素子などに設けられる。また、図2に示した処理部は一例であり、例えばネットワークインタフェースカード等を有していてもよい。
PCIID変換テーブル11は、デバイス500に割当てられた論理アドレスを、CPU100がデバイスを論理的に識別するPCIIDに変換する情報を記憶する記憶部である。図3は、PCIID変換テーブルに記憶される情報の例を示す図である。図3に示すように、PCIID変換テーブル11は、「Valid、ホスト番号、PCIID、論理アドレス範囲」を対応付けて記憶する。
ここで記憶される「Valid」は、エントリが有効であるか否かを示す情報であり、有効である場合には1が設定され、無効である場合には0が設定される。「ホスト番号」は、CPU100を識別する識別子である。「PCIID」は、CPU100がデバイスを論理的に識別する識別子である。「論理アドレス範囲」は、PCIIDに割当てられた論理アドレスの範囲である。
図3の一例を説明すると、CPU100がアクセスする論理アドレス「0x1200〜0x3300」の範囲には、ホスト番号「1」のCPU100に接続されるPCIID「0x0011」のデバイスが対応し、現在は有効なデバイスであることを示す。なお、PCIID変換テーブル11に記憶される情報は、管理ユニット200等によって更新される。また、ここで示した情報は一例であり、これに限定されるものではなく、例えばデバイス名などの情報をさらに対応付けて記憶させてもよい。
内部ネットワークID変換テーブル12は、PCIIDを、複数のPCIeスイッチが形成するPCIeネットワーク3でデバイス500の識別に共通して使用される識別子に変換する情報を記憶する記憶部である。図4は、内部ネットワークID変換テーブルに記憶される情報の例を示す図である。図4に示すように、内部ネットワークID変換テーブル12は、「Valid、ホスト番号、PCIID、内部ネットワークID」を対応付けて記憶する。
ここで記憶される「Valid」は、エントリが有効であるか否かを示す情報であり、有効である場合には1が設定され、無効である場合には0が設定される。「ホスト番号」は、CPU100を識別する識別子である。「PCIID」は、CPU100がデバイスを論理的に識別する識別子である。「内部ネットワークID」は、複数のPCIeスイッチが形成するPCIeネットワーク3でデバイス500の識別に共通して使用される識別子である。
図4の一例を説明すると、ホスト番号が「1」であるCPU100からPCIID「0x0011」に出力されたアクセス要求には、内部ネットワークID「01234567」に変換されることを示す。なお、内部ネットワークID変換テーブル12に記憶される情報は、管理ユニット200等によって更新される。また、ここで示した情報は一例であり、これに限定されるものではなく、例えばデバイス名などの情報をさらに対応付けて記憶させてもよい。
経路テーブル13は、CPU100または他のPCIeスイッチから入力されたパケットの宛先を記憶する記憶部である。図5は、経路テーブルに記憶される情報の例を示す図である。図5に示すように、経路テーブル13は、「Valid、内部ネットワークID、ポート番号」を対応付けて記憶する。
ここで記憶される「Valid」は、エントリが有効であるか否かを示す情報であり、有効である場合には1が設定され、無効である場合には0が設定される。「内部ネットワークID」は、複数のPCIeスイッチが形成するPCIeネットワーク3でデバイス500の識別に共通して使用される識別子である。「ポート番号」は、PCIeスイッチ10が有するポートを識別する識別子であり、パケットの出力先のポート番号が設定される。
図5の一例を説明すると、内部ネットワークID「01234567」が割り与えられたパケットの出力先は、ポート番号「0」のポートであることを示す。なお、経路テーブル13に記憶される情報は、管理ユニット200等によって更新される。また、ここで示した情報は一例であり、これに限定されるものではなく、任意に設定変更することができる。
第1入力バッファ14は、CPU100から入力されたPCIeパケットを保持する記憶部である。例えば、第1入力バッファ14は、CPU100からデバイス500に対して送信されたアクセス要求としてのPCIeパケットを保持する。第1中継部15は、第1入力バッファ14に格納されるPCIeパケットを読み出してTLP付加部16に出力する処理部である。例えば、第1中継部15は、第1入力バッファ14を監視し、第1入力バッファ14にアクセス要求としてのPCIeパケットが格納されると、当該パケットを読み出してTLP付加部16に出力する。
TLP付加部16は、第1中継部15が読み出したPCIeパケットにTLP(Transaction Layer Packet)プレフィックスを付加する処理部である。具体的には、TLP付加部16は、CPU100から出力されるリンク層のPCIeパケットに、PCIeに準拠したオプション機能であるトランザクション層のTLPプレフィックスを付加する。この結果、PCIeネットワーク3において、上位層による独自ルーティングが可能になるとともに、リンク層はPCIeをそのまま使用できる。
例えば、TLP付加部16は、第1中継部15から入力されたPCIeパケットのヘッダーから、宛先である論理アドレス「0x2100」を抽出する。続いて、TLP付加部16は、ブリッジ接続部18と第2入力バッファ19を経由してPCIID変換テーブル11を参照し、抽出した論理アドレス「0x2100」を含むPCIIDが「0x0011」であることを特定する。そして、TLP付加部16は、内部ネットワークID変換テーブル12を参照し、特定したPCIID「0x0011」に対応付けられる内部ネットワークID「01234567」を特定する。その後、TLP付加部16は、第1中継部15から入力されたPCIeパケットに、内部ネットワークID「01234567」を含むTLPプレフィックスを付加した拡張PCIeパケットを生成して、第1ルーティング実行部17に出力する。
ここで、TLPプレフィックスについて説明する。図6は、拡張PCIeパケットのフォーマット例を示す図であり、図7は、TLPプレフィックスの例を示す図である。図6及び図7は、ビットフォーマットの例を示している。図6に示すように、拡張PCIeパケットは、TLPプレフィックスとヘッダーとデータとTLPダイジェストとを有する。
TLPプレフィックスは、図7に示すように、32ビットの情報であり、「Fmt」と「Type」と「Global Key」と「Destination ID」とを有する。「Fmt」は、3ビットの情報であり、TLPプレフィックスであることを示す固定値である。「Type」は、5ビットの情報であり、01110bまたは01111bの固定値である。この「Type」は、PCIeで定義されたVendPrefixL0あるいはVendPrefixL1を用いることを定義するものである。「Global Key」は、10ビットの情報であり、プロテクションのためのキーであり、同一のキーをもつパケットを通信させることに使用される。「Destination ID」は、14ビットの情報であり、宛先を特定する情報である。この「Destination ID」に上記内部ネットワークIDが格納される。
ヘッダーは、32ビットの情報であり、CPU100が指定するデバイスの情報が格納される。つまり、ヘッダーには、上記論理アドレスが格納される。データは、アクセス要求の処理内容が格納されたり、実際のデータが格納されたりする。TLPダイジェストは、32ビットの情報であり、オプションで使用することができる。なお、CPU100が出力するパケットは、上記ヘッダーとデータとから構成される。
また、TLP付加部16は、第1中継部15から入力されたPCIeパケットの送信元がデバイス500である場合、当該パケットをブリッジ接続部18に出力する。なお、TLP付加部16は、入力されたPCIeパケットのヘッダーに格納される送信元がデバイス500の論理アドレスか否かによって、当該パケットの種別を判定することができる。
図2に戻り、第1ルーティング実行部17は、拡張PCIeパケットを宛先に出力する処理部である。例えば、第1ルーティング実行部17は、TLP付加部16から入力された拡張PCIeパケットのTLPプレフィックスの「Destination ID」から内部ネットワークID「01234567」を抽出する。そして、第1ルーティング実行部17は、経路テーブル13を参照し、抽出した内部ネットワークID「01234567」に対応付けられたポート番号「0」を特定する。その後、第1ルーティング実行部17は、入力された拡張PCIeパケットと当該拡張PCIeパケットの出力先がポート番号「0」であることを、クロスバ24に出力する。
ブリッジ接続部18は、TLP付加部16と入力バッファ19との間のパケット通信を制御する処理部である。例えば、ブリッジ接続部18は、TLP付加部16がPCIID変換テーブル11を参照する通信を中継する。また、ブリッジ接続部18は、TLP付加部16から入力された、CPU100を宛先とするPCIeパケットすなわちデバイス500から出力されたPCIeパケットを第2入力バッファ19に格納する。
また、ブリッジ接続部18は、第2入力バッファ19に入力されたTLPプレフィックスが付加されていないパケットを、TLP付加部16に出力する。つまり、ブリッジ接続部18は、他のスイッチから入力されたパケットであるにも関らずTLPプレフィックスが付加されていないと判定されたパケットを、TLP識別部21から受け付けてTLP付加部16に出力する。
なお、ブリッジ接続部18は、管理ユニット200からのテーブル設定変更要求を受信して、各テーブルを更新してもよい。このとき、ブリッジ接続部18は、TLP付加部16や第1ルーティング実行部17、第2入力バッファ19を経由して、各種テーブルを更新する。また、管理ユニット200が、図示しないネットワークインタフェースカード等と介し、各種処理部を経由して各テーブルを直接更新してもよい。
第2入力バッファ19は、他のPCIeスイッチから入力された拡張PCIeパケットや、TLPが付加されていないパケットを保持する記憶部である。また、第2入力バッファ19は、ブリッジ接続部18から入力されたCPU100を宛先とするPCIeパケット、すなわちデバイス500から出力されたPCIeパケットを保持する。
第2中継部20は、第2入力バッファ19に保持されるパケットを読み出してTLP識別部21に出力する処理部である。例えば、第2中継部20は、第2入力バッファ19を監視し、第2入力バッファ19に各種パケットが格納されると、当該パケットを読み出してTLP識別部21に出力する。
TLP識別部21は、第2中継部20から入力された各種パケットからTLPプレフィックスを識別する処理部である。例えば、TLP識別部21は、第2中継部20から入力されたパケットを参照し、TLPプレフィックスが付加されている否かを判定する。そして、TLP識別部21は、TLPプレフィックスが付加されているパケットについては、第2ルーティング実行部22に出力する。
一方、TLP識別部21は、TLPプレフィックスが付加されていないパケットについては、当該パケットのヘッダーを参照し、宛先がCPU100かデバイスかを特定する。そして、TLP識別部21は、TLPプレフィックスが付加されておらず、宛先がCPU100であるパケットについては、第3ルーティング実行部23に出力する。また、TLP識別部21は、TLPプレフィックスが付加されておらず、宛先がデバイス500であるパケットについては、ブリッジ接続部18に出力する。
第2ルーティング実行部22は、拡張PCIeパケットを宛先に出力する処理部である。例えば、第2ルーティング実行部22は、TLP識別部21から入力された拡張PCIeパケットのTLPプレフィックスの「Destination ID」から内部ネットワークIDを抽出する。そして、第2ルーティング実行部22は、経路テーブル13を参照し、抽出した内部ネットワークIDに対応付けられたポート番号を特定する。その後、第2ルーティング実行部22は、入力された拡張PCIeパケットと出力先のポート番号とを、クロスバ24に出力する。
第3ルーティング実行部23は、TLP識別部21から入力されたパケットの宛先に出力する処理部である。例えば、第3ルーティング実行部23は、TLP識別部21から入力されたパケットのヘッダーから、PCIIDまたは論理アドレスを抽出する。そして、第3ルーティング実行部23は、PCIID変換テーブル11を参照し、抽出したPCIIDまたは論理アドレスに対応付けられるホスト番号を特定する。その後、第3ルーティング実行部23は、入力されたパケットと、特定された宛先となるホスト番号とを、クロスバ24に出力する。
クロスバ24は、入力された各種パケットの宛先に基づいて、出力先を切替えてパケットを出力する処理部である。このクロスバ24は、管理者や管理ユニット200の設定によって、自スイッチの役割が末端スイッチなのか、中継スイッチなのか、先頭スイッチなのかを認識することができる。なお、末端スイッチとは、デバイス500に直接接続されるPCIeスイッチである。中継スイッチとは、CPU100にもデバイス500にも直接接続されず、各種パケットを中継するPCIeスイッチである。先頭スイッチとは、CPU100に直接接続されるPCIeスイッチである。
例えば、クロスバ24は、第1ルーティング実行部17や第2ルーティング実行部22から拡張PCIeパケットと宛先のポート番号とを受け付けると、自スイッチの役割を特定する。そして、クロスバ24は、自スイッチの役割が中継スイッチかまたは先頭スイッチと判定した場合、スイッチング回路を切替えて第4中継部28に接続する。そして、クロスバ24は、受け付けた拡張PCIeパケットと、指定されたポート番号に出力する指示とを第4中継部28に出力する。
また、クロスバ24は、自スイッチの役割が末端スイッチと判定した場合、スイッチング回路を切替えてTLP削除部25に接続する。そして、クロスバ24は、受け付けた拡張PCIeパケットと、指定されたポート番号に出力する指示とをTLP削除部25に出力する。
また、クロスバ24は、第3ルーティング実行部23からパケットが入力された場合、スイッチング回路を切替えてTLP削除部25に接続する。そして、クロスバ24は、入力されたパケットと、宛先となるホスト番号に出力する指示とを、TLP削除部25に出力する。つまり、クロスバ24は、自スイッチが先頭スイッチであり、入力されたパケットがCPU100への応答である場合には、当該パケットをCPU100へ送信する。
TLP削除部25は、クロスバ24から入力されたパケットにTLPプレフィックスが存在する場合、当該パケットからTLPプレフィックスを削除して第3中継部26に出力する処理部である。このとき、TLP削除部25は、クロスバ24から宛先のポート番号やホスト番号も第3中継部26に出力する。つまり、TLP削除部25は、PCIeネットワーク3の外部にパケットを送信する場合に、拡張PCIeパケットを通常のパケットに戻して出力する。
第3中継部26は、TLP削除部25から入力されたパケットを宛先の第1出力バッファ27に出力する処理部である。例えば、第3中継部26は、TLP削除部25からパケットとポート番号とが入力された場合、当該ポート番号に対応する第1出力バッファ27にパケットを格納する。また、第3中継部26は、TLP削除部25からパケットとホスト番号とが入力された場合、当該ホスト番号に対応する第1出力バッファ27にパケットを格納する。
第1出力バッファ27は、第3中継部26から入力されたパケットを保持する記憶部である。この第1バッファ27は、PCIeスイッチ10が有するポートごとに設けられる。そして、第1バッファ27に保持されるパケットは、第3中継部26等に読み出されて、該当のポートから出力される。なお、第1バッファ27は、PCIeスイッチ10内で1つあってもよい。
第4中継部28は、クロスバ24から入力されたパケットを宛先の第2出力バッファ29に出力する処理部である。具体的には、第4中継部28は、拡張PCIeパケットとポート番号とを受け付けて、当該ポート番号に対応する第2出力バッファ29に拡張PCIeパケットを格納する。
第2出力バッファ29は、第4中継部28から入力された拡張PCIeパケットを保持する記憶部である。この第2バッファ29は、PCIeスイッチ10が有するポートごとに設けられる。そして、第2バッファ29に保持される拡張PCIeパケットは、第4中継部28等に読み出されて、該当のポートから出力される。なお、第2バッファ29は、PCIeスイッチ10内で1つあってもよい。
[処理の流れ]
次に、PCIeスイッチ10が実行する処理の流れを説明する。ここでは、CPU100からパケットを受信した場合の流れと、他のスイッチからパケットを受信した場合の流れとを説明する。
(CPUからパケット受信)
図8は、CPUからパケットを受信した場合の処理の流れを示すフローチャートである。図8に示すように、PCIeスイッチ10のTLP付加部16は、パケットをデコードする(S101)。例えば、TLP付加部16は、第1中継部15が第1入力バッファ14から読み出したパケットを受信する。
続いて、TLP付加部16は、パケットのヘッダーから読み出した論理アドレスに対応するPCIIDをPCIID変換テーブル11から特定し、当該パケットの宛先を決定する(S102)。
そして、TLP付加部16は、特定したPCIIDIに対応する内部ネットワークIDを内部ネットワークID変換テーブル12から特定し、宛先を変換する(S103)。その後、TLP付加部16は、内部ネットワークIDが宛先となるように、TLPプレフィックスを生成し、デコードしたパケットに付加して拡張PCIeパケットを生成する(S104)。
そして、第1ルーティング実行部17は、経路テーブル13を参照して、拡張PCIeパケットに含まれる内部ネットワークIDに対応付けられたポート番号を特定し、宛先を決定する(S105)。
その後、クロスバ24は、自スイッチの役割やポート番号等基づいて行き先の種類を判定する(S106)。そして、クロスバ24によって、行き先がCPU100やデバイス500であると判定された場合(S106No)、TLP削除部25は、クロスバ24から入力された拡張PCIeパケットからTLPプレフィックスを削除する(S107)。その後、第3中継部26は、TLPプレフィックスが削除されたパケットを通常のPCIeパケットとして、第1出力バッファ27を介して宛先に送信する(S108)。
一方、クロスバ24によって、行き先が他のスイッチであると判定された場合(S106Yes)、第4中継部28は、クロスバ24から入力された拡張PCIeパケットを、第2出力バッファ29を介して宛先に送信する(S109)。
(他スイッチからパケット受信)
図9は、他のスイッチからパケットを受信した場合の処理の流れを示すフローチャートである。図9に示すように、PCIeスイッチ10のTLP識別部21は、入力されたパケットにTLPプレフィックスが付加されているか否かを判定する(S201)。すなわち、TLP識別部21は、第2中継部20が第2入力バッファ19から読み出したパケットが拡張PCIeパケットであるか否かを判定する。
そして、TLP識別部21によって、入力されたパケットが拡張PCIeパケットではないと判定された場合(S201No)、TLP付加部16が、S102からS105と同様の処理を実行して、拡張PCIeパケットを生成する(S202からS205)。
TLP識別部21によって、入力されたパケットが拡張PCIeパケットであると判定された場合(S201Yes)、または、S205が実行された後、クロスバ24は、自スイッチの役割やポート番号等基づいて行き先の種類を判定する(S206)。
そして、クロスバ24によって、行き先がCPU100やデバイス500であると判定された場合(S206No)、TLP削除部25は、クロスバ24から入力された拡張PCIeパケットからTLPプレフィックスを削除する(S207)。その後、第3中継部26は、TLPプレフィックスが削除されたパケットを通常のPCIeパケットとして、第1出力バッファ27を介して宛先に送信する(S208)。
一方、クロスバ24によって、行き先が他のスイッチであると判定された場合(S206Yes)、第4中継部28は、クロスバ24から入力された拡張PCIeパケットを、第2出力バッファ29を介して宛先に送信する(S209)。
[パケットの流れ]
次に、CPU100から出力されたアクセス要求、すなわちパケットがデバイス500に届くまでの流れを説明する。図10は、パケットの流れを説明する図である。図10に示すように、CPU100は、PCIeリンクにのせて、通常のPCIeパケットをデバイス500に向けて送信する(S301)。
PCIeスイッチ10は、受信したPCIeパケットの宛先デバイスに対応する内部ネットワークIDを含んだTLPプレフィックスを生成する(S302)。そして、PCIeスイッチ10は、受信したPCIeパケットに、生成したTLPプレフィックスを付加した拡張PCIeパケットを生成する(S303)。
その後、PCIeスイッチ10は、拡張PCIeパケット内の内部ネットワークIDによって特定される出力先が他のスイッチである場合には、当該拡張PCIeパケットを宛先に向けて送信する(S304)。
一方、PCIeスイッチ10は、拡張PCIeパケット内の内部ネットワークIDによって特定される出力先がデバイス500である場合、拡張PCIeパケットからTLPプレフィックスを削除して、元のPCIeパケットを生成する(S305)。その後、PCIeスイッチは、PCIeパケットをデバイス500に送信する(S306)。なお、PCIeスイッチ10は、他のPCIeスイッチから入力された拡張PCIeパケットについては、当該拡張PCIeパケットに含まれる内部ネットワークIDを用いて、S304からS306を実行する。
このように、PCIeスイッチ10は、TLPプレフィックスに記載されたネットワークルーティング情報をもとに、パケットのルーティングを行い、目的の宛先にパケットを中継する。このため、PCIeスイッチ10は、PCIExpressの規格に依らずルーティングを行うことができるので、任意のネットワーク構成を用いることができる。つまり、従来では、PCIeスイッチを多数接続する場合には、ループ構成を用いることができなかったが、上述した手法を用いることで、ループ構成を用いることができる。
また、本実施例では、PCIeでオプションとして使用できるTLPプレフィックスを用いてパケットを拡張しており、パケットの拡張もPCIeスイッチ10内部で実行される。したがって、CPU100やデバイス500に新たな機能を追加することもなく、CPU100は従来と同じようにアクセス要求を送信すればよい。したがって、標準的なPCIeスイッチからの変更点を最小限に抑えつつ、独自のルーティング方式を用いたパケットルーティングを可能とし、従来ではできなかった自由なPCIeスイッチの接続構成を用いることができる。
また、ループ構成を採用することができるので、経路の冗長化を用意に行うことができる。さらに、上述したように、PCIeスイッチを複数接続する際に生じる制限を緩和でき、接続の二重化も許容することができるので、PCIeスイッチの構成やPCIeスイッチの設定などの管理も容易になる。
実施例1では、PCIeスイッチで独自のルーティングを実行する例を説明したが、開示するPCIeスイッチは、経路が遮断された場合に、別の経路に切替えることもできる。実施例2では、PCIeスイッチで構成されるネットワークで異常が発生した場合に、経路切替を実行する例を説明する。
(物理構成)
図11は、PCIeスイッチを用いた物理構成を示す図である。図11に示すように、実施例2に係る情報処理装置の構成は図1と同様である。具体的には、CPU100から出力されたアクセス要求のパケットは、複数のPCIeスイッチを介してデバイス500に到達する。なお、各PCIeスイッチは、実施例1で説明したPCIeスイッチ10と同様の構成を有するものとする。
ここで、実施例2で想定する具体的な物理構成を説明する。PCIeスイッチ(A)は、ポート0でCPU100に接続し、ポート1でPCIeスイッチ(B)に接続し、ポート2でPCIeスイッチ(C)に接続する。また、PCIeスイッチ(B)は、ポート0でPCIeスイッチ(A)に接続し、ポート1でPCIeスイッチ(D)に接続し、ポート2でPCIeスイッチ(E)に接続する。同様に、PCIeスイッチ(C)は、ポート0でPCIeスイッチ(A)に接続し、ポート1でPCIeスイッチ(D)に接続し、ポート2でPCIeスイッチ(E)に接続する。
また、PCIeスイッチ(D)は、ポート0でPCIeスイッチ(B)に接続し、ポート1でPCIeスイッチ(C)に接続し、ポート2でPCIeスイッチ(E)に接続する。さらに、PCIeスイッチ(D)は、ポート3でI/Oデバイス0に接続し、ポート4でI/Oデバイス1に接続する。
同様に、PCIeスイッチ(E)は、ポート0でPCIeスイッチ(C)に接続し、ポート1でPCIeスイッチ(B)に接続し、ポート2でPCIeスイッチ(D)に接続する。さらに、PCIeスイッチ(E)は、ポート3でI/Oデバイス2に接続し、ポート4でI/Oデバイス3に接続する。
また、各PCIeスイッチは、PCIeネットワーク内では、各装置を内部ネットワークIDで識別する。ここでは、各PCIeスイッチは、CPU100を内部ネットワークID=0で識別し、PCIeスイッチ(A)を内部ネットワークID=1で識別し、PCIeスイッチ(B)を内部ネットワークID=2で識別する。また、各PCIeスイッチは、PCIeスイッチ(C)を内部ネットワークID=3で識別し、PCIeスイッチ(D)を内部ネットワークID=4で識別し、PCIeスイッチ(E)を内部ネットワークID=5で識別する。
さらに、各PCIeスイッチは、PCIeネットワーク内では、I/Oデバイス0を内部ネットワークID=6で識別し、I/Oデバイス1を内部ネットワークID=7で識別する。また、各PCIeスイッチは、I/Oデバイス2を内部ネットワークID=8で識別し、I/Oデバイス3を内部ネットワークID=9で識別する。
このように、実施例2に係る情報処理装置は、PCIeスイッチを複数接続した形態で、CPU100と各I/Oデバイスとを接続する。また、図11に示すように、各PCIeスイッチは、多段構成になっている。
(論理構成)
一方で、CPU100からは従来と同じPCIeパケットを用いてI/Oデバイスにアクセスすることができる。図12は、図11をCPUから見た場合の論理構成を示す図である。図12に示すように、CPU100は、各PCIeスイッチとは異なり、各I/OデバイスをPCIIDで識別する。なお、ここではPCIIDを用いる例で説明するが、論理アドレスであってもよい。具体的には、CPU100は、I/Oデバイス0にアクセスする場合には、PCIID=1を指定することで、I/Oデバイス0にアクセスすることができる。つまり、CPU100は、PCIID=1を含めたPCIeパケットを送信することで、I/Oデバイス0にデータを書き込んだりすることができる。
ところで、従来のPCIeスイッチは、論理的な仮想バスを形成して、CPU100と各I/Oデバイスとを接続する。図13は、図11を従来技術で見た場合の論理構成を示す図である。図13に示すように、従来技術の場合、各PCIeスイッチが、独自の論理構成で仮想バスを形成する。このため、CPUP100からは、各I/Oデバイスまでの経路が、各PCIeスイッチが形成する仮想バスによるツリー構造で形成されているように見える。したがって、PCIeスイッチの制限を受けることになり、ループ構成を用いることができない。
(テーブル構成)
次に、図11に示した各PCIeスイッチのテーブル構成を説明する。なお、ここでは、経路変更の説明に用いるテーブルについて説明する。図14は、PCIeスイッチ(A)が保持する内部ネットワークID変換テーブルの例を示す図である。このテーブルは、PCIeスイッチ(A)だけが有していてもよく、他のPCIeスイッチも有していてもよい。図14に示すように、PCIeスイッチ(A)は、「Valid、ホスト番号、PCIID、内部ネットワークID」を対応付けて記憶する。具体的には、PCIeスイッチ(A)は、PCIID=1を内部ネットワークID=6に変換し、PCIID=2を内部ネットワークID=7に変換する情報を保持する。また、PCIeスイッチ(A)は、PCIID=3を内部ネットワークID=8に変換し、PCIID=4を内部ネットワークID=9に変換する情報を保持する。
また、各PCIeスイッチは経路テーブルも保持する。図15は、各PCIeスイッチが保持する経路テーブルの例を示す図である。図15に示すように、各PCIeスイッチは、「Valid、内部ネットワークID、ポート番号」を対応付けて記憶する。一例を挙げると、PCIeスイッチ(A)は、内部ネットワークID=0の拡張PCIeパケットをポート0に出力し、内部ネットワークID=8の拡張PCIeパケットをポート2に出力する情報を保持する。
また、PCIeスイッチ(B)は、内部ネットワークID=6の拡張PCIeパケットをポート番号1に出力する情報を保持する。また、PCIeスイッチ(C)は、内部ネットワークID=8の拡張PCIeパケットをポート2に出力する情報を保持する。また、PCIeスイッチ(D)は、内部ネットワークID=7の拡張PCIeパケットをポート4に出力する情報を保持する。また、PCIeスイッチ(E)は、内部ネットワークID=8の拡張PCIeパケットをポート3に出力する情報を保持する。
このような状態において、一例として、CPU100からI/Oデバイス2へアクセスする際の経路について説明する。図16は、I/Oデバイス2への経路を示す図である。図16に示すように、CPU100は、I/Oデバイス2の論理アドレスを指定したパケットを、I/Oデバイス2へのアクセス要求を示すパケットとしてPCIeスイッチ(A)に送信する。
PCIeスイッチ(A)は、CPU100から受信したパケットに含まれる論理アドレスに対応するPCIIDが「3」であることを、図14を参照して特定する。続いて、PCIeスイッチ(A)は、PCIID=3に対応付けられる内部ネットワークIDが「8」であることを、図15を参照して特定する。この結果、PCIeスイッチ(A)は、CPU100が指定した論理アドレスを内部ネットワークID「8」に変換する。
その後、PCIeスイッチ(A)は、内部ネットワークID「8」を新たな宛先とする拡張PCIeパケットを生成して、図15を参照して特定した宛先のポート2と接続されるPCIeスイッチ(C)に送信する。続いて、PCIeスイッチ(C)は、PCIeスイッチ(A)から受信した拡張PCIeパケットのTLPプレフィックスを参照し、内部ネットワークID「8」を抽出する。その後、PCIeスイッチ(C)は、図15を参照して内部ネットワークID「8」に対応するポート番号「2」を特定し、ポート2と接続されるPCIeスイッチ(E)に、拡張PCIeパケットを送信する。
続いて、PCIeスイッチ(E)は、PCIeスイッチ(C)から受信した拡張PCIeパケットのTLPプレフィックスを参照し、内部ネットワークID「8」を抽出する。その後、PCIeスイッチ(E)は、図15を参照して内部ネットワークID「8」に対応するポート番号「3」を特定する。また、PCIeスイッチ(E)は、自スイッチが末端スイッチであることを認識しているので、受信した拡張PCIeパケットからTLPプレフィックスを削除して、元のPCIeパケットを生成する。その後、PCIeスイッチ(E)は、ポート3と接続されるI/Oデバイス2に、元のPCIeパケットを送信する。
(経路切替)
次に、図16に示したCPU100からI/Oデバイス2への経路でネットワーク障害が発生した例を説明する。図17は、PCIeスイッチのネットワーク障害を示す図である。図17に示すように、PCIeスイッチ(B)とPCIeスイッチ(E)との間のネットワークおよびPCIeスイッチ(C)とPCIeスイッチ(E)との間のネットワークで障害が発生したとする。つまり、PCIeスイッチ(C)のポート2からPCIeスイッチ(E)のポート0への疎通が不能となり、同様に、PCIeスイッチ(B)のポート2からPCIeスイッチ(E)のポート1への疎通が不能となったとする。
この場合、管理ユニット200は、各PCIeスイッチの経路テーブルを更新する。具体的には、管理ユニット200は、管理者の操作や一般的な障害管理ツール等によってネットワーク障害を検出すると、各PCIeスイッチの経路テーブルを更新して、CPU100からI/Oデバイス2およびI/Oデバイス3への迂回路を設定する。つまり、管理ユニット200は、CPU100から内部ネットワークID=8への経路と、CPU100から内部ネットワークID=9への経路とを設定し直して、それぞれに新たな経路を設定する。また、管理ユニット200は、I/Oデバイス2またはI/Oデバイス3からCPU100への経路、すなわち、内部ネットワークID=8または内部ネットワークID=9から内部ネットワークID=0への経路を設定し直して、新たな経路を設定する。
図18は、テーブル更新例を示す図である。図18に示すように、管理ユニット200は、PCIeスイッチ(B)の経路テーブルにおいて、内部ネットワークID=8と内部ネットワーク=9各々に対応付けられるポート番号を2から1に変更する。また、管理ユニット200は、PCIeスイッチ(C)の経路テーブルにおいて、内部ネットワークID=8と内部ネットワーク=9各々に対応付けられるポート番号を2から1に変更する。また、管理ユニット200は、PCIeスイッチ(E)の経路テーブルにおいて、内部ネットワークID=0に対応付けられるポート番号を0から2に変更する。
この結果、図19に示すように、新たな経路を設定することができる。図19は、経路切替後の物理構成を示す図である。図19に示すように、CPU100は、I/Oデバイス2の論理アドレスを指定したパケットを、I/Oデバイス2へのアクセス要求を示すパケットとしてPCIeスイッチ(A)に送信する。PCIeスイッチ(A)は、CPU100から受信したパケットのPCIID「3」を内部ネットワークID「8」に変換して、拡張PCIeパケットを生成する。そして、PCIeスイッチ(A)は、図18を参照して、内部ネットワークID「8」に対応付けられたポート番号「2」を特定する。その後、PCIeスイッチ(A)は、ポート2と接続されるPCIeスイッチ(C)に、拡張PCIeパケットを送信する。
続いて、PCIeスイッチ(C)は、図18を参照して、受信した拡張PCIeパケットの内部ネットワークID「8」に対応付けられたポート番号「1」を特定する。その後、PCIeスイッチ(C)は、ポート1と接続されるPCIeスイッチ(D)に、拡張PCIeパケットを送信する。
さらに、PCIeスイッチ(D)は、図18を参照して、受信した拡張PCIeパケットの内部ネットワークID「8」に対応付けられたポート番号「2」を特定する。その後、PCIeスイッチ(D)は、ポート2と接続されるPCIeスイッチ(E)に、拡張PCIeパケットを送信する。
その後、PCIeスイッチ(E)は、図18を参照して、受信した拡張PCIeパケットの内部ネットワークID「8」に対応付けられたポート番号「3」を特定する。その後、PCIeスイッチ(E)は、ポート3と接続されるPCIeスイッチ(E)に、拡張PCIeパケットからTLPプレフィックスを削除した通常のPCIeパケットを送信する。
このように、通常使用されていた経路、すなわちCPU100、PCIeスイッチ(A)、PCIeスイッチ(C)、PCIeスイッチ(E)、I/Oデバイス2を経由する経路を変更することができる。具体的には、CPU100、PCIeスイッチ(A)、PCIeスイッチ(C)、PCIeスイッチ(D)、PCIeスイッチ(E)、I/Oデバイス2を経由する経路に切替えることができる。つまり、PCIeスイッチで形成されるネットワークで障害が発生した場合でも、管理ユニット200からの設定によって経路テーブルを変更するだけで簡単に迂回路を設定することができる。
一方、従来技術では、図20に示すように、物理構成の変更に伴って論理構成も変更することになる。図20は、従来技術を用いた場合の経路切替後の論理構成を示す図である。図20と図13とを比較してもわかるように、経路切替前と経路切替後とでは、CPU100から各I/Oデバイスまでに存在するPCIeスイッチの論理構成が異なる。具体的には、図20は、PCIeスイッチ(B)が含まれていない。これは、従来技術の場合、CPU100から各I/Oデバイスまでの経路が、PCIeスイッチで形成されるネットワークではなく、PCIIDを用いた論理パスだからである。したがって、従来技術の場合、経路を切替える場合には、単純に各PCIeスイッチが保持するテーブルを更新するだけでなく、ツリー構造の維持とループ構造の制限を意識することになり、簡単に経路を切替えることができない。
このように、実施例2に係るPCIeスイッチは、PCIeの規格に依らずルーティングを行うことができるので、任意の結合のネットワーク構成をとることができる。たとえば、多重化されたリンクを利用して、使用するリンクを切り替えてパケットを中継することも容易に行うことができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(CPU)
実施例1や実施例2では、CPUが1つの例で説明したが、これに限定されるものではなく、CPUの数は複数であってもよい。図3や図4に示すように、各テーブルにCPUを識別するホスト番号を設けることで、実施例1や実施例2と同様の処理を行うことができる。
また、各実施例では、CPU100からデバイス500へのパケット送信を例に説明したが、デバイスからCPUへの応答に際しても、各実施例と同様の手法を用いることができる。例えば、各PCIeスイッチは、経路テーブルに、CPUを識別する内部ネットワークIDとポート番号とを対応付けて保持しておく。そして、各PCIeスイッチは、デバイス500からCPUへの応答パケットを受信した場合、当該応答パケットから送信元デバイスの論理アドレスまたはPCIIDを抽出する。続いて、各PCIeスイッチは、PCID変換テーブルを参照し、抽出した論理アドレスまたはPCIIDに対応するホスト番号を特定する。
その後、PCIeスイッチは、内部ネットワークID変換テーブルを参照して、特定したホスト番号に対応する内部ネットワークIDを特定する。そして、PCIeスイッチは、特定した内部ネットワークIDを用いて拡張PCIeパケットを生成し、実施例1などと同様に各スイッチを転送させていく。このようにすることで、デバイスからCPUへの応答に際しても、各実施例と同様に処理することができる。
(スイッチの種別)
上記実施例では、PCIeスイッチを用いた場合で説明したが、これに限定されるものではなく、PCIeスイッチと同様の機能を有する他のスイッチについても同様に処理することができる。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
10 PCIeスイッチ
11 PCIID変換テーブル
12 内部ネットワークID変換テーブル
13 経路テーブル
14 第1入力バッファ
15 第1中継部
16 TLP付加部
17 第1ルーティング実行部
18 ブリッジ接続部
19 第2入力バッファ
20 第2中継部
21 TLP識別部
22 第2ルーティング実行部
23 第3ルーティング実行部
24 クロスバ
25 TLP削除部
26 第3中継部
27 第1出力バッファ
28 第4中継部
29 第2出力バッファ

Claims (7)

  1. プロセッサとデバイスとを有する情報処理装置内で、前記プロセッサと前記デバイスとの間を接続するネットワークを他のスイッチと形成するスイッチにおいて、
    前記プロセッサがデバイスの識別に使用する第1識別子と、前記第1識別子に割与えられた論理アドレスの範囲とを対応付けた第1記憶部と、
    前記第1識別子と、前記ネットワークで前記デバイスの識別に共通して使用される第2識別子とを対応付けて記憶する第2記憶部と、
    前記他のスイッチからアクセス要求を受信した場合に、当該アクセス要求に前記第2識別子が付加されているか否かを判定する判定部と、
    前記プロセッサからアクセス要求を受信した場合に、または、前記判定部が前記アクセス要求に前記第2識別子が付加されていないと判定した場合に、当該アクセス要求に含まれる論理アドレスに対応する前記第1識別子を前記第1記憶部から特定し、特定された前記第1識別子に対応する前記第2識別子を前記第2記憶部から特定する特定部と、
    前記特定部によって特定された第2識別子を前記アクセス要求に付加して拡張アクセス要求を生成し、前記特定部によって特定された前記第1識別子に対応する前記デバイスに、当該拡張アクセス要求を送信する送信制御部と
    を有することを特徴とするスイッチ。
  2. 前記送信制御部は、前記拡張アクセス要求の宛先が前記他のスイッチである場合に、当該拡張アクセス要求をそのまま送信し、前記拡張アクセス要求の宛先がデバイスである場合に、当該拡張アクセス要求から前記第2識別子を削除して送信することを特徴とする請求項1に記載のスイッチ。
  3. 前記特定部は、前記判定部が前記アクセス要求に前記第2識別子が付加されていると判定した場合に、当該アクセス要求を前記拡張アクセス要求と判定し、当該拡張アクセス要求に含まれる前記第2識別子を抽出し、前記第2識別子とポート番号とを対応付けて記憶する第3記憶部を参照して、抽出した前記第2識別子に対応するポート番号を特定し、
    前記送信制御部は、前記特定部によって特定された前記ポート番号に対応するポートから、当該拡張アクセス要求を送信することを特徴とする請求項1に記載のスイッチ。
  4. 前記スイッチを管理する管理サーバから、前記第1記憶部または前記第2記憶部に記憶される情報を変更する指示を受信した場合に、前記第1記憶部または前記第2記憶部に記憶される情報を指示された内容に変更する変更制御部をさらに有することを特徴とする請求項1に記載のスイッチ。
  5. 前記第1記憶部は、PCIExpressを用いて前記デバイスにアクセスするプロセッサが使用する第1識別子と、前記論理アドレスの範囲とを対応付けて記憶し、
    前記送信制御部は、前記プロセッサが前記PCIExpressを用いて送信したアクセス要求における前記PCIExpressのTLPプレフィックス領域に、前記特定部によって特定された第2識別子を記載して前記拡張アクセス要求を生成することを特徴とする請求項1に記載のスイッチ。
  6. プロセッサと、
    前記プロセッサとデバイスとの間を接続する複数の内部スイッチと、
    前記プロセッサがデバイスの識別に使用する第1識別子と、前記第1識別子に割与えられた論理アドレスの範囲とを対応付けた第1記憶部と、
    前記第1識別子と、前記複数の内部スイッチが形成するネットワークで前記デバイスの識別に共通して使用される第2識別子とを対応付けて記憶する第2記憶部と、
    前記内部スイッチからアクセス要求を受信した場合に、当該アクセス要求に前記第2識別子が付加されているか否かを判定する判定部と、
    前記プロセッサからアクセス要求を受信した場合に、または、前記判定部が前記アクセス要求に前記第2識別子が付加されていないと判定した場合に、当該アクセス要求に含まれる論理アドレスに対応する前記第1識別子を前記第1記憶部から特定し、特定された前記第1識別子に対応する前記第2識別子を前記第2記憶部から特定する特定部と、
    前記特定部によって特定された第2識別子を前記アクセス要求に付加して拡張アクセス要求を生成し、前記特定部によって特定された前記第1識別子に対応する前記デバイスに、当該拡張アクセス要求を送信する送信制御部と
    を有することを特徴とする情報処理装置。
  7. プロセッサとデバイスとを有する情報処理装置内で、前記プロセッサと前記デバイスとの間を接続するネットワークを他のスイッチと形成するスイッチが、
    前記プロセッサがデバイスの識別に使用する第1識別子と、前記第1識別子に割与えられた論理アドレスの範囲とを対応付けを第1記憶部に記憶し、
    前記第1識別子と、前記ネットワークで前記デバイスの識別に共通して使用される第2識別子とを対応付けを記憶する第2記憶部に記憶し、
    前記他のスイッチからアクセス要求を受信した場合に、当該アクセス要求に前記第2識別子が付加されているか否かを判定し、
    前記プロセッサからアクセス要求を受信した場合に、または、前記アクセス要求に前記第2識別子が付加されていないと判定した場合に、当該アクセス要求に含まれる論理アドレスに対応する前記第1識別子を前記第1記憶部から特定し、特定された前記第1識別子に対応する前記第2識別子を前記第2記憶部から特定し、
    特定した第2識別子を前記アクセス要求に付加して拡張アクセス要求を生成し、特定された前記第1識別子に対応する前記デバイスに、当該拡張アクセス要求を送信する
    処理を実行することを特徴とする通信制御方法。
JP2012077827A 2012-03-29 2012-03-29 スイッチ、情報処理装置および通信制御方法 Active JP5928087B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012077827A JP5928087B2 (ja) 2012-03-29 2012-03-29 スイッチ、情報処理装置および通信制御方法
US13/721,127 US9219695B2 (en) 2012-03-29 2012-12-20 Switch, information processing apparatus, and communication control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012077827A JP5928087B2 (ja) 2012-03-29 2012-03-29 スイッチ、情報処理装置および通信制御方法

Publications (2)

Publication Number Publication Date
JP2013206390A JP2013206390A (ja) 2013-10-07
JP5928087B2 true JP5928087B2 (ja) 2016-06-01

Family

ID=49234969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012077827A Active JP5928087B2 (ja) 2012-03-29 2012-03-29 スイッチ、情報処理装置および通信制御方法

Country Status (2)

Country Link
US (1) US9219695B2 (ja)
JP (1) JP5928087B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6089835B2 (ja) * 2013-03-19 2017-03-08 富士通株式会社 情報処理装置及び制御方法
US9003090B1 (en) 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology
JP6394062B2 (ja) * 2014-05-20 2018-09-26 富士通株式会社 情報処理装置およびバス制御方法
JP6298534B2 (ja) * 2014-08-05 2018-03-20 株式会社アキブシステムズ 経路制御装置及び経路制御方法並びにコンピュータシステム及びプログラム及びプログラムを格納した記憶媒体
JP6355536B2 (ja) * 2014-11-27 2018-07-11 APRESIA Systems株式会社 中継システムおよびスイッチ装置
US10162786B2 (en) * 2014-12-01 2018-12-25 SK Hynix Inc. Storage node based on PCI express interface
US10089275B2 (en) * 2015-06-22 2018-10-02 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system
CN105119849B (zh) * 2015-07-21 2018-07-31 浪潮(北京)电子信息产业有限公司 一种交换机架构及应用于交换机架构的数据管理方法
CN106844267A (zh) * 2017-02-10 2017-06-13 郑州云海信息技术有限公司 一种应用在purley平台支持PCIE IOBOX的结构
JP7044033B2 (ja) * 2018-11-06 2022-03-30 日本電信電話株式会社 アクセス制御方法、アクセス制御装置、およびデータ処理装置
WO2021147046A1 (zh) * 2020-01-22 2021-07-29 华为技术有限公司 一种PCIe的数据传输方法及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6621818B1 (en) * 1998-10-19 2003-09-16 Texas Instruments Incorporated Ring configuration for network switches
US6512744B1 (en) * 1999-06-25 2003-01-28 Cisco Technology, Inc. Virtual-channel merging
JP2001326693A (ja) * 2000-05-17 2001-11-22 Nec Corp 通信装置及び通信制御方法並びに制御プログラム記録媒体
US7102996B1 (en) * 2001-05-24 2006-09-05 F5 Networks, Inc. Method and system for scaling network traffic managers
US8285907B2 (en) * 2004-12-10 2012-10-09 Intel Corporation Packet processing in switched fabric networks
US7293129B2 (en) * 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing
CN101501660B (zh) * 2006-08-09 2011-11-16 日本电气株式会社 因特网连接交换机和因特网连接系统
KR100757881B1 (ko) * 2006-09-20 2007-09-11 삼성전자주식회사 Nat를 이용한 자동 터널링 방법 및 그 시스템
KR100810701B1 (ko) * 2006-11-09 2008-03-07 삼성전자주식회사 로컬 네트워크의 인터넷 프로토콜 주소의 이동성 관리 방법및 시스템
US7886080B2 (en) * 2007-11-30 2011-02-08 Cisco Technology, Inc. Management of topology changes in layer two networks
US7849252B2 (en) * 2008-05-30 2010-12-07 Intel Corporation Providing a prefix for a packet header
US20110110306A1 (en) * 2008-06-30 2011-05-12 Kenichi Yajima Network system, mobile gateway, location management server, and communication control method of mobile node
JP5272265B2 (ja) * 2008-09-29 2013-08-28 株式会社日立製作所 Pciデバイス共有方法
US8953603B2 (en) * 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8402189B2 (en) * 2010-05-13 2013-03-19 Hitachi, Ltd. Information processing apparatus and data transfer method
US9612989B2 (en) * 2010-12-24 2017-04-04 Hitachi, Ltd. Computer system and routing control method
WO2012128282A1 (ja) * 2011-03-23 2012-09-27 日本電気株式会社 通信制御システム、スイッチノード、及び通信制御方法

Also Published As

Publication number Publication date
US9219695B2 (en) 2015-12-22
US20130259053A1 (en) 2013-10-03
JP2013206390A (ja) 2013-10-07

Similar Documents

Publication Publication Date Title
JP5928087B2 (ja) スイッチ、情報処理装置および通信制御方法
JP4670676B2 (ja) スイッチ及びネットワークブリッジ装置
JP5310175B2 (ja) スイッチシステム、及びスイッチシステムの制御方法
US10044642B2 (en) Storage device in which forwarding-function-equipped memory nodes are mutually connected and data processing method
JP4998469B2 (ja) インターコネクション用スイッチおよびシステム
US7865654B2 (en) Programmable bridge header structures
JP5958164B2 (ja) 制御装置、方法及びプログラム、並びにシステム及び情報処理方法
JP5399570B2 (ja) 計算機システム、それに使用されるスイッチ及びパケット転送制御方法
US20130114615A1 (en) Switch and flow table controlling method
US8683001B2 (en) Address management device
JP5353278B2 (ja) 通信装置
US9612989B2 (en) Computer system and routing control method
US8401000B2 (en) Method of processing data packets
JPWO2009139489A1 (ja) Pciエクスプレススイッチ、pciエクスプレスシステム、及びネットワーク制御方法
JP2009140179A (ja) ストレージシステムおよびルートスイッチ
US10305825B2 (en) Bus control device, relay device, and bus system
JP2014241545A (ja) 通信システム及び通信システムの冗長化の方法
US20090235048A1 (en) Information processing apparatus, signal transmission method, and bridge
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
JP3825692B2 (ja) コンピュータシステム内に存在しないプロセッサに対する無効化要求を処理する方法及び装置
US11836105B2 (en) Communication device, information processing system, and communication method
WO2011148925A1 (ja) 半導体装置とネットワークルーティング方法とシステム
JP6586374B2 (ja) 通信装置、経路管理サーバ、通信方法、および仮想ポート割当方法
JP5110156B2 (ja) スイッチ及びネットワークブリッジ装置
US20070038745A1 (en) Processing module

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160307

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160411

R150 Certificate of patent or registration of utility model

Ref document number: 5928087

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150