JP5930046B2 - 情報処理装置、及び情報処理装置の制御方法 - Google Patents

情報処理装置、及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP5930046B2
JP5930046B2 JP2014530424A JP2014530424A JP5930046B2 JP 5930046 B2 JP5930046 B2 JP 5930046B2 JP 2014530424 A JP2014530424 A JP 2014530424A JP 2014530424 A JP2014530424 A JP 2014530424A JP 5930046 B2 JP5930046 B2 JP 5930046B2
Authority
JP
Japan
Prior art keywords
port
unit
processing unit
ntb
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014530424A
Other languages
English (en)
Other versions
JPWO2014027416A1 (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
Application granted granted Critical
Publication of JP5930046B2 publication Critical patent/JP5930046B2/ja
Publication of JPWO2014027416A1 publication Critical patent/JPWO2014027416A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Description

本発明は、情報処理装置、及び情報処理装置の制御方法に関する。
サーバ等の情報処理装置は、複数のCPU(Central Processing Unit)を搭載し、CPUどうしをQPI(Quick Path Interconnect), HT(Hyper Transport)等によってポイントツーポイント接続し、物理パーティショニング機能を有する形態をとる場合がある。
例えば、図14は、物理パーティショニング機能を有する情報処理装置(サーバ)100の基本構成を示すブロック図である。図14に示すサーバ100には、4つのCPU101A〜101Dが搭載されている。なお、4つのCPUのうちの一つを特定する場合、符号101A〜101Dを用い、任意のCPUを指す場合、符号101を用いる。各CPU101は、2つのCPUインターコネクトポート102を有し、4つのCPU101A〜101Dは、CPUインターコネクトポート102およびCPUインターコネクトライン103を介してリング状に接続されている。
図14に示す例では、サーバ100が物理ーティショニング機能により2つの物理サーバに分割され、2つのCPU101A,101Bと2つのCPU101C,101Dとが、それぞれ異なるパーティション#0,#1に割り当てられている。このとき、パーティション#0に属する2つのCPU101A,101B間のCPUインターコネクトライン103や、パーティション#1に属する2つのCPU101C,101D間のCPUインターコネクトライン103は、通常通り使用される。一方、異なるパーティション#0,#1にまたがるCPUインターコネクトライン103、つまりCPU101A,101D間およびCPU101B,101C間のライン103は、物理的に接続されたまま使用されないか、あるいは、CPUインターコネクトライン103への出力がセーブまたはパワーオフした状態に保たれる。
図14に示すようにパーティションによって分断された2つのCPU101A,101D間でのデータ通信は、CPU101A,101D間におけるCPUインターコネクトライン103を使用することなく、例えば、図15または図16に示す形態で行なわれる。図15および図16は、それぞれ、パーティション間の通信形態の一例および他例を示すブロック図である。
図15に示す通信形態の一例では、各CPU101の配下にPCIExpress(登録商標;PCIe(登録商標);Peripheral Components Interconnect express)スイッチ104がそなえられ、各PCIeスイッチ104のカードスロット104aにNIC(Network Interface Card)105が搭載される。そして、異なるパーティション#0,#1にそれぞれ属するNIC105,105が、ケーブル106を用いてEthernet(登録商標)経由で接続される。これにより、異なるパーティション#0,#1にそれぞれ属するCPU101A,101D間でのデータ通信が行なわれる。
図16に示す通信形態の他例では、2つのパーティション#0,#1にそれぞれ属するCPU101A,101Dによって共用され且つパーティション分割機能およびNTB(Non-Transparent Bridge)ポート104bを有するPCIeスイッチ104′がそなえられる。そして、PCIeスイッチ104′のNTBポート104bを用い、異なるパーティション#0,#1にそれぞれ属するCPU101A,101D間でのデータ通信が行なわれる。なお、NTBポートとは、PCI仕様において、異なる2つのパーティション間やホスト間でデータを共有するための機能を果たすもので、メモリマップされた空間をポート内に有し、その空間を利用してパーティション間やホスト間でのデータのやりとりが可能なポートである。
特開2006−40285号公報 特開2011−221945号公報
図15に示す通信形態では、異なる2つのパーティション#0,#1間のデータ通信を実現するために、別途、2枚のNIC105とケーブル106とを用意する必要がある。また、図16に示す通信形態では、異なる2つのパーティション#0,#1間で共有するスイッチ104′が必要になる。どちらの通信形態においても、異なるパーティションのCPU101A,101D間で通信をする際にスイッチ104,104′やネットワークを経由することになるため、CPUインターコネクトを使用するよりも通信性能は劣る。このように同一サーバ100内の別パーティションに属するCPU101どうしが通信する場合、低レイテンシで高バンド幅のインターフェイス(CPUインターコネクトライン103)が存在するにも関わらず活用されておらず、NIC105やPCIeスイッチ104,104′等を介して通信が行なわれており、極めて効率が悪い。
一つの側面で、本発明は、異なるパーティションに属する処理部間の通信を効率よく実現することを目的とする。
一つの案では、情報処理装置は、複数の処理部と、前記複数の処理部に対しパーティション構成に則した設定を行なう設定部と、を備え、前記複数の処理部のそれぞれは、他の処理部に接続され前記他の処理部との通信を行なうポートを有している。前記ポートは、第1通信部,第2通信部および選択部を有している。前記第1通信部は、前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう。前記第2通信部は、前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう。前記選択部は、前記設定部による前記設定に応じて前記第1通信部と前記第2通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させる。
一実施形態によれば、異なるパーティションに属する処理部間の通信を効率よく実現することができる。
第1実施形態としての情報処理装置の要部構成を示すブロック図である。 図1に示す要部構成を適用される、第1実施形態の情報処理装置の全体構成を概略的に示すブロック図である。 図2に示す設定部および図1に示す選択部の機能を説明するフローチャートである。 図2に示す情報処理装置の1パーティション状態を示すブロック図である。 図2に示す情報処理装置の2パーティション状態を示すブロック図である。 図1に示すNTBポート上位層(第2通信部)の詳細構成を示すブロック図である。 図6に示すNTBトランザクション層のアドレス変換部によるアドレス変換機能を説明するブロック図である。 トランザクションIDの内容を示す図である。 図6に示すNTBトランザクション層のアドレス変換部によるタグ変換/逆変換機能およびトランザクションID変換/逆変換機能を説明するブロック図である。 図6に示すNTBトランザクション層によるドアベル機能およびスクラッチパッド機能を説明するブロック図である。 図6に示すCPUインターコネクトデータリンクインターフェイス(第2インターフェイス)によるパケット分割およびカプセル化を説明する図である。 第2実施形態としての情報処理装置の要部構成を示すブロック図である。 図12に示すNTBポート上位層(第2通信部)の詳細構成を示すブロック図である。 物理パーティショニング機能を有する情報処理装置(サーバ)の基本構成を示すブロック図である。 パーティション間の通信形態の一例を示すブロック図である。 パーティション間の通信形態の他例を示すブロック図である。
以下、図面を参照して実施の形態を説明する。
〔1〕第1実施形態の情報処理装置(サーバ)
〔1−1〕第1実施形態の基本的な構成
まず、図1〜図3を参照しながら、第1実施形態としての情報処理装置(サーバ)1の構成および機能について説明する。なお、図1は、第1実施形態のサーバ1の要部構成を示すブロック図、図2は、図1に示す要部構成を適用される、第1実施形態のサーバ1の全体構成を概略的に示すブロック図である。また、図3は、図2に示すシステムファームウエア(設定部)40および図1に示すマルチプレクサ(選択部)25の機能を説明するフローチャート(ステップS1〜S7)である。
図1および図2に示すサーバ1には、4つのCPU(処理部)10A〜10Dが搭載されている。ここで、4つのCPUのうちの一つを特定する場合、符号10A〜10Dを用い、任意のCPUを指す場合、符号10を用いる。CPU10どうしは、QPI,HT等によってポイントツーポイント接続される。また、各CPU10は、2つのCPUインターコネクトポート20を有し、4つのCPU10A〜10Dは、CPUインターコネクトポート20およびCPUインターコネクトライン11を介してリング状に接続されている。
各CPU10において、CPUインターコネクトポート(以下、単にポートという場合がある)20には、CPU内部バス50を介して、プロセッサコア60(図7,図9,図10参照)や、メモリまたはI/O(Input/Output)装置70(図7,図9参照)が接続されている。
また、サーバ1は、物理パーティショニング機能を有しており、4つのCPU10A〜10Dに対しパーティション構成に則した設定を行なうシステムファームウエア(F/W;設定部)40を有している(図2,図4,図5参照)。システムF/W40は、ネットワーク90を介しユーザによって操作可能に構成されている。さらに、各CPU10のチップ上において、2つのポート20のそれぞれにポートモード選択レジスタ(以下、単にレジスタという場合がある)30が付設されている。レジスタ30は、ポート20の動作モードを設定するためのもので、レジスタ30には、システムF/W40によって、CPU内部バス50を介し、ユーザからの指示により物理パーティション構成と図4および図5を参照しながら後述する第1情報または第2情報とが設定される。
各CPU10におけるポート20は、CPU10のチップ上に備えられ、CPUインターコネクトライン11を介して他のCPU10に接続され、他の処理部10との通信を行なう。ポート20内において、CPUインターコネクトライン11とCPU内部バス50との間には、物理層21,データリンク層22,CPUインターコネクト上位層23,PCIe-NTBポート上位層24およびマルチプレクサ25が備えられている。
ポート20において、物理層21,データリンク層22およびCPUインターコネクト上位層23は、CPUインターコネクトライン11とCPU内部バス50との間に備えられる既存の構成である。第1実施形態のポート20では、当該既存の構成に対し、PCIe-NTBポート上位層24およびマルチプレクサ25が追加されている。
ここで、データリンク層22よりも上位のCPUインターコネクト上位層23は、当該ポート20の属するCPU10と同一パーティションに属するCPU10との通信を行なう第1通信部として機能する。このとき、CPUインターコネクト上位層23は、CPUインターコネクトポート20を、同一パーティションに属する他のCPU10との間で全てのメモリアクセスについてメモリ空間を共有するための通信を実行するポートとして機能させる。
一方、PCIe-NTBポート上位層24は、CPUインターコネクト上位層23と並列的に備えられ、当該ポート20の属するCPU10と異なるパーティションに属するCPU10との通信を行なう第2通信部として機能する。このとき、PCIe-NTBポート上位層24は、CPUインターコネクトポート20を、PCIデバイスのNTB(Non-Transparent Bridge)ポートとして機能させる。NTBポートは、異なるパーティションに属する他のCPU10との間で当該ポート20の属するCPU10を成すプロセッサコア60によって明示的に指示された通信を実行する。
また、並列的に備えられた上位層23,24と、データリンク層22との間には、マルチプレクサ25が備えられている。マルチプレクサ25は、システムF/W40による設定に応じて、CPUインターコネクト上位層23とPCIe-NTBポート上位層24とのいずれか一方を選択し、選択した上位層(通信部)23または24に他のCPU10との通信を実行させる選択部として機能する。
システムF/W40は、ネットワーク90を介してユーザから物理パーティションニングについての指示を受けると(図3のステップS1のYESルート参照)、4つのCPU10A〜10Dに対し、当該指示によるパーティション構成に則した設定を行なう(図3のステップS2参照)。その際、システムF/W40は、例えば図4または図5に示すように、ポート20毎に備えられるレジスタ30に対し、第1情報または第2情報の設定を行なう(図3のステップS3,S4)。ここで、第1情報は、ポート20と接続される他のCPU10が同一パーティションに属することを示す値で、例えば“0”である。第2情報は、ポート20と接続される他のCPU10が異なるパーティションに属することを示す値で、例えば“1”である。
マルチプレクサ25は、レジスタ30に第1情報“0”が設定されている場合(図3のステップS5の“0”ルート参照)、CPUインターコネクト上位層23を選択するようデータのパスを切り換え、ポート20をCPUインターコネクトポートとして機能させる(図3のステップS6参照)。一方、マルチプレクサ25は、レジスタ30に第2情報“1”が設定されている場合(図3のステップS5の“1”ルート参照)、PCIe-NTBポート上位層24を選択するようデータのパスを切り換え、ポート20をNTBポートとして機能させる(図3のステップS7参照)。
〔1−2〕第1実施形態の基本的な動作および効果
次に、上述のような構成を有するサーバ1の基本的な動作について、図4および図5を参照しながら説明する。
ここで、図4は、サーバ1の1パーティション状態を示すブロック図である。図4に示す状態では、4つのCPU10A〜10Dは同一パーティションに属しているので、システムF/W40により、4つのCPU10A〜10Dにおける全てのレジスタ30に第1情報“0”が設定される。これに伴い、マルチプレクサ25によって、CPUインターコネクト上位層23が選択されるようデータのパスが切り換えられ、全てのポート20は、通常のCPUインターコネクトポートとして機能する。したがって、同一パーティションに属する他のCPU10との間で全てのメモリアクセスについてメモリ空間を共有するための通信が実行される。
また、図5は、サーバ1の2パーティション状態を示すブロック図である。図5に示す状態では、サーバ1が物理バーティショニング機能により2つの物理サーバに分割され、2つのCPU10A,10Bと2つのCPU10C,10Dとが、それぞれ異なるパーティション#0,#1に割り当てられている。
この場合、同一パーティション#0に属するCPU10A,10Bを相互に接続するポート20に対応するレジスタ30には、システムF/W40により、第1情報“0”が設定される。これに伴い、マルチプレクサ25により、当該ポート20ではCPUインターコネクト上位層23が選択されるようデータのパスが切り換えられ、当該ポート20は、通常のCPUインターコネクトポートとして機能する。したがって、同一パーティションに属するCPU10A,10B間で全てのメモリアクセスについてメモリ空間を共有するための通信が実行される。同一パーティション#1に属するCPU10C,10Dについても上述と同様の設定・選択が行なわれ、CPU10C,10D間で全てのメモリアクセスについてメモリ空間を共有するための通信が実行される。
一方、異なるパーティション#0,#1に属するCPU10A,10Dを相互に接続するポート20に対応するレジスタ30には、システムF/W40により、第2情報“1”が設定される。これに伴い、マルチプレクサ25により、当該ポート20ではPCIe-NTBポート上位層24が選択されるようデータのパスが切り換えられ、当該ポート20は、NTBポートとして機能する。つまり、通常、未使用になるCPUインターコネクトポート20をNTBポートとして用いることが可能になる。したがって、NTBポートを介し、異なるパーティション#0,#1に属するCPU10A,10D間でCPU10Aまたは10Dを成すプロセッサコア60によって明示的に指示された通信が実行される。異なるパーティション#0,#1に属するCPU10B,10Cについても上述と同様の設定・選択が行なわれ、CPU10B,10C間でCPU10Bまたは10Cを成すプロセッサコア60によって明示的に指示された通信が実行される。
上述のように、PCIe-NTBポート上位層24を選択し未使用だったポート20をNTBポートとして機能させ通信を実行することで、ポート20と他のCPU10との間に通信パスが確立される。このように確立された通信パスは、メモリミラーリングパスおよびフェイルオーバーパスの少なくとも一方として用いることができる。
図14を参照しながら前述したように、サーバ100がパーティショニング機能で複数の物理サーバに分割されて使用されているときに、サーバ100中の2つのCPU101が別々のパーティション#0,#1に割り当てられている。この場合、通常、当該2つのCPU101を結ぶポイントツーポイントのCPUインターコネクト(ポート102およびライン103)は未使用となる。
これに対し、第1実施形態のサーバ1によれば、従来、異なるパーティションに属するCPUどうしを接続する場合に未使用になっていたCPUインターコネクトポート20がPCIデバイスのNTBポートとして機能することになる。これにより、異なるパーティション#0,#1に属するCPU10A,10D間またはCPU10B,10C間に通信パスが確立され、異なるパーティション間でのメモリミラーリングパスやフェイルオーバーパスとして利用される。したがって、従来、使用していなかったCPUインターコネクト(ポート20およびライン11)を利用して、異なるパーティションに属するCPU10,10間の通信を効率よく実現することができる。
上述したNTBポートは、前述したように、PCI仕様において、異なる2つのパーティション間やホスト間でデータを共有するための機能を果たすもので、メモリマップされた空間をポート内に有し、その空間を利用してパーティション間やホスト間でのデータのやりとりが可能なポートである。
〔1−3〕PCIe-NTBポート上位層(第2通信部)の詳細構成および動作
ついで、このようなNTBポートを実現するPCIe-NTBポート上位層(第2通信部)24の詳細構成(内部構造)および動作について、図6〜図11を参照しながら説明する。
図6は、PCIe-NTBポート上位層24の詳細構成を示すブロック図である。図6に示すように、PCIe-NTBポート上位層24は、CPU内部バスインターフェイス(I/F)241,PCIe-NTBトランザクション層242およびCPUインターコネクトデータリンクインターフェイス(I/F)243を有している。
CPU内部バスI/F(第1インターフェイス)241は、CPU内部バス50を介しプロセッサコア60と接続される。CPU内部バスI/F241は、キャッシュプロトコル制御を行なうとともに、プロセッサコア60側のデータ(DATAおよびCMD (command))とトランザクション層242側のPCIe使用に準拠したデータとの間の変換を行なう。つまり、CPU内部バスI/F241は、プロセッサコア60側のキャッシュラインサイズのデータを、トランザクション層242側のPCIeペイロードサイズのデータに分割/結合する機能を果たす。また、CPU内部バスI/F241は、トランザクション層242側のPCIeペイロードサイズのデータを、プロセッサコア60側のキャッシュラインサイズのデータに分割/結合する機能を果たす。
なお、CPU内部バスI/F241は、バッファ241a〜241dを有している。バッファ241aは、CPU内部バス50(プロセッサコア60)からのコマンドCMD(RX)を受信し、変換後のコマンドは、バッファ241aからトランザクション層242へ出力される。同様に、バッファ241bは、CPU内部バス50(プロセッサコア60)からのデータDATA(RX)を受信し、変換後のデータは、バッファ241bからトランザクション層242へ出力される。また、バッファ241cは、トランザクション層242からのコマンドを受信し、変換後のコマンドCMD(TX)は、バッファ241cからCPU内部バス50を介してプロセッサコア60またはメモリ70へ送信される。同様に、バッファ241dは、トランザクション層242からのデータを受信し、変換後のデータDATA(TX)は、バッファ241dからCPU内部バス50を介してプロセッサコア60またはメモリ70へ送信される。
CPUインターコネクトデータリンクI/F(第2インターフェイス)243は、マルチプレクサ25,データリンク層22,物理層21およびCPUインターコネクトライン11を介して他のCPU10と接続される。CPUインターコネクトデータリンクI/F243は、トランザクション層242で生成されたTLP(Transaction Layer Packet)の分割/再構成を行なう。TLPのパケット長とCPUインターコネクトで規定された最大パケット長とが必ずしも一致するとは限らないため、トランザクション層242は、必要に応じてTLPの分割あるいは結合を行なう。TLPのパケット分割およびカプセル化については、項目〔1−6〕において図11を参照しながら後述する。
なお、CPUインターコネクトデータリンクI/F243は、バッファ243a,243bを有している。バッファ243aは、トランザクション層242からのTLPを受信し、分割後または結合後のパケットは、バッファ243aからマルチプレクサ25,データリンク層22,物理層21およびCPUインターコネクトライン11を介して他のCPU10へ送信される。また、バッファ243bは、他のCPU10からのパケットを受信し、分割または結合によって得られたTLPは、バッファ243bからトランザクション層242へ送出される。
PCIe-NTBトランザクション層242は、CPU内部バスI/F241とCPUインターコネクトデータリンクI/F243との間に配置され、TLPの生成/解体(assemble/disassemble)およびアドレス変換を行なう。このため、トランザクション層242は、PCIコンフィグレーションレジスタ242a,メモリマップドI/O(MMIO)レジスタ242b,アドレス変換部242c,TLP生成部242d,TLP解体部242eおよびアドレス変換部242fを有している。
PCIコンフィグレーションレジスタ242aは、PCIe使用に準拠したレジスタセットである。
MMIOレジスタ242bは、項目〔1−4〕,〔1−5〕において図7,図9,図10を参照しながら後述する、下記6種類のレジスタ242b−1〜242b−6を有している。
・ベースアドレスレジスタ(BAR;アドレス変換用レジスタ)242b−1
・リミットアドレスレジスタ(LAR;アドレス変換用レジスタ)242b−2
・送信用ドアベルレジスタ(送信用割込みレジスタ)242b−3
・受信用ドアベルレジスタ(受信用割込みレジスタ)242b−4
・送信用スクラッチパッドレジスタ(送信用交換情報レジスタ)242b−5
・受信用スクラッチパッドレジスタ(受信用交換情報レジスタ)242b−6
アドレス変換部242cは、他のCPU10へ送信すべきデータについて、項目〔1−4〕において図7〜図9を参照しながら後述するごとく、プロセッサコア60からのコマンドおよびMMIOレジスタ242bの値に基づきアドレス変換を行なう。
TLP生成部242dは、アドレス変換部242cで得られた情報に基づき、他のCPU10へ送信すべきデータを含むTLPを生成し、CPUインターコネクトデータリンクI/F243へ出力する。
TLP解体部242eは、他のCPU10から受信したTLPを解体(ディスアセンブル)することによりアドレス情報および受信データを得て、アドレス情報をアドレス変換部242fへ出力する一方、受信データをCPU内部バスI/F241(バッファ241d)へ出力する。
アドレス変換部242fは、TLP解体部242eから受信したアドレス情報について、項目〔1−4〕において図7〜図9を参照しながら後述するごとく、MMIOレジスタ242bの値に基づきアドレス変換を行ない、変換結果をコマンドとしてCPU内部バスI/F241(バッファ241c)へ出力する。
ここで、上述のごとく構成されるPCIe-NTBポート上位層24の動作について簡単に説明する。
PCIe-NTBポート上位層24がポート20をNTBポートとして用い他のCPU10へのデータ送信を行なう場合、まず、CPU内部バスI/F241は、他のCPU10へのデータをPCI仕様に準拠するデータに変換する。そして、トランザクション層242は、CPU内部バスI/F241からのデータに基づきTLPを生成する。この後、CPUインターコネクトデータリンクI/F243は、トランザクション層242からのTLPを、ポート20と他のCPU10との間の通信仕様(CPUインターコネクト)に準拠するパケットに変換する。
一方、PCIe-NTBポート上位層24がポート20をNTBポートとして用い他のCPU10からのデータ受信を行なう場合、まず、CPUインターコネクトデータリンクI/F243は、他のCPU10からのパケットをTLPに変換する。そして、トランザクション層242は、CPUインターコネクトデータリンクI/F243からのTLPに基づき、PCI仕様に準拠するデータを生成する。この後、CPU内部バスI/F241は、トランザクション層242からのデータをプロセッサコア60またはメモリ(I/O装置)70へのデータに変換する。
〔1−4〕アドレス変換
次に、図7〜図9を参照しながら、PCIe-NTBトランザクション層242のアドレス変換部242c,242fによるアドレス変換機能について説明する。各物理パーティション#0,#1は別のメモリ空間を有するため、一般的にNTBポートは、アドレス変換機能が必要になる。アドレス変換機能は、PCIe-NTBトランザクション層242において、MMIOレジスタ242b(レジスタ242b−1,242b−2)の設定値に基づき、アドレス変換部242c,242fによって実現される。
まず、図7を参照しながら、上記アドレス変換機能を用いて、パーティション#0のプロセッサコア60からパーティション#1のメモリ(I/O装置)70に対し書込データの転送(Write転送)を行なう場合の手順(A1)〜(A4)について説明する。なお、図7は、図6に示すトランザクション層242のアドレス変換部242c,242fによるアドレス変換機能を説明するブロック図である。図7では、パーティション#0に属するCPU10Aのプロセッサコア60からパーティション#1に属するCPU10Dのメモリ70への書込データの転送が示されている。
(A1)送信側のパーティション#0のプロセッサコア60は、パーティション#1のメモリ70宛に送りたい書込データを、パーティション#0のNTBのBAR242b−1を宛先として書き込む。この時のアドレスをAとする。このアドレスAは、パーティション#0のメモリ空間に属するアドレスである。
(A2)パーティション#0のPCIe-NTBポート上位層24におけるアドレス変換部242cは、書込アドレスが下限値と上限値との間の範囲内にあることを確認し、アドレス変換を行なう。このとき、BAR242b−1の設定値(下限値)をBとすると、アドレス変換部242cは、アドレスAが設定値B以上で且つLAR242b−2に設定された上限値以下であることを確認した上で、A−Bで示される値を変換後のアドレスとして出力する。変換後のアドレスA−Bは、CPUインターコネクトアドレス空間に属するアドレスである。
(A3)データを受け取ったパーティション#1のPCIe-NTBポート上位層24におけるアドレス変換部242fは、受信したデータのアドレスA−Bを、パーティション#1のメモリ空間のアドレスに変換する。このとき、パーティション#1のBAR242b−1の設定値(下限値;ターゲットアドレス(TA))をCとすると、変換後のアドレスはA−B+Cとなり、このアドレスA−B+Cは、パーティション#1のメモリ空間に属するアドレスである。
(A4)パーティション#1のPCIe-NTBポート上位層24は、CPU内部バス50を介して、メモリ(I/O装置)70に対し、A−B+CをアドレスとしてDMA(Direct Memory Address)を実行する。
ついで、図8および図9を参照しながら、上記アドレス変換機能を用いて、パーティション#0のプロセッサコア60からパーティション#1のメモリ(I/O装置)70に対する読出アクセス(Read転送)を行なう場合の手順(B1)〜(B6)について説明する。なお、図8は、トランザクションID(identification)の内容を示す図、図9は、図6に示すトランザクション層242のアドレス変換部242fによるタグ変換/逆変換機能およびトランザクションID変換/逆変換機能を説明するブロック図である。図9では、パーティション#0に属するCPU10Aのプロセッサコア60からパーティション#1に属するCPU10Dのメモリ70に対する読出アクセスが示されている。
読出アクセス(Read転送)の場合も、読出対象のアドレスについてのアドレス変換は、図7を参照しながら上述した手順(A1)〜(A4)と同様に行なわれる。ただし、読出アクセスの場合、読出データがパーティション#1からパーティション#0の方向へ転送される。要求元のパーティション#0のプロセッサコア60が、パーティション#1からの応答がどの要求に対する応答かを識別できるように、読出データのトランザクションIDは、読出要求(Read Request)のトランザクションIDと一対一で対応付けられている。図8に示すように、トランザクションIDは、リクエスタ(Requester)IDとタグとから構成される。リクエスタID(RID)は、バス番号,デバイス番号,ファンクション番号を含む読出要求元の情報(プロセッサコア60のID)である。タグは、例えば、プロセッサコア60により要求毎に生成される、シーケンシャルな番号である。以下、図9および手順(B1)〜(B6)では、リクエスタID(RID)およびタグの変換手順を説明する。
(B1)送信側のパーティション#0のプロセッサコア60は、自身のリクエスタIDで読出要求をパーティション#0のPCIe-NTBポート上位層24に要求する。
(B2)読出要求を受け取ったパーティション#0のPCIe-NTBポート上位層24は、自身が受け取っている読出要求を一意に識別できるように、アドレス変換部242cにより、受け取ったトランザクションIDのうちタグを付け替えるタグ変換を行なう。これにより、PCIe-NTBポート上位層24は、タグのみで、読出要求と読出データとの対応を一意に認識できる。このとき、タグ変換前の元のトランザクションIDとタグ変換後のタグの値とは対応付けられて第1テーブル(図示略)に記憶される。この後、パーティション#0のPCIe-NTBポート上位層24は、タグ変換後のトランザクションIDを含む読出要求を、パーティション#1のPCIe-NTBポート上位層24に転送する。
(B3)読出要求を受け取ったパーティション#1のPCIe-NTBポート上位層24におけるアドレス変換部242fは、受け取った読出要求のトランザクションIDのうちリクエスタID(パーティション#0のプロセッサコア60のID)をパーティション#1側のリクエスタIDに付け替えるRID変換を行なう。このパーティション#1側のリクエスタIDは、読出要求に対するメモリ70からの応答(読出データ/完了通知;Read Data / Completion)がパーティション#1のPCIe-NTBポート上位層24に戻ってきた際に使用される。このとき、パーティション#1のPCIe-NTBポート上位層24において、RID変換前のトランザクションIDは第2テーブル(図示略)に記憶される。
(B4)パーティション#1のメモリ(I/O装置)70からPCIe-NTBポート上位層24へ、読出データ(完了通知)が応答される。
(B5)パーティション#1のPCIe-NTBポート上位層24におけるアドレス変換部242cは、タグをキーにして上記第2テーブルにおけるRID変換前のトランザクションIDを検索し、受け取った読出データのリクエスタIDを元のリクエスタIDに付け替えるRID逆変換を行なう。この後、PCIe-NTBポート上位層24は、RID逆変換後のトランザクションIDを含む読出データを、パーティション#0のPCIe-NTBポート上位層24に転送する。
(B6)パーティション#0のPCIe-NTBポート上位層24におけるアドレス変換部242fは、受け取った読出データのトランザクションIDに含まれるタグをキーにして上記第1テーブルを検索し、トランザクションIDのタグを元のタグに付け替えるタグ逆変換を行なう。この後、PCIe-NTBポート上位層24は、タグ逆変換後のトランザクションIDを含む読出データを、CPU内部バス50を介しプロセッサコア60に転送する。
〔1−5〕ドアベル機能およびスクラッチパッド機能
次に、図10を参照しながら、PCIe-NTBトランザクション層242によるドアベル機能およびスクラッチパッド機能について説明する。なお、図10は、図6に示すトランザクション層242によるドアベル機能およびスクラッチパッド機能を説明するブロック図である。
異なるパーティション#0,#1に属するCPU10(例えばCPU10A,10D)どうしの通信のため、一般的に、NTBポート(PCIe-NTBトランザクション層242)は、ドアベル(Doorbell)機能およびスクラッチパッド(Scratchpad)機能を備えている。
〔1−5−1〕ドアベル機能
ドアベル機能は、一方のパーティション#0または#1のプロセッサコア60から他方のパーティション#1または#0のプロセッサコア60に対して割り込み(INT)を上げるための機能である。送信側のプロセッサコア60は、PIO(Programmed I/O)によって、送信側のPCIe-NTBトランザクション層242の送信用ドアベルレジスタ242b−3への書込みを実行する。この書込みを受けた送信側のPCIe-NTBトランザクション層242は、メッセージパケット(Msg;TLP)を生成し、受信側のPCIe-NTBトランザクション層242へ送信する。このときのメッセージパケットは、PCIe仕様のVendor Defined Messageの仕組みを用いて独自に定義される。メッセージパケットを受け取った受信側のPCIe-NTBトランザクション層242は、ドアベル機能に係るメッセージパケットを受信すると、メッセージパケットにより受け取った内容をドアベルと判断する。そして、受信側のPCIe-NTBトランザクション層242は、受信用ドアベルレジスタ242b−4への書込みを実行し、受信側のプロセッサコア60に対して割り込み(INT)を通知する。
つまり、PCIe-NTBトランザクション層242(NTBポート)は、プロセッサコア60から他のCPU10に対する割込み指示を送信用ドアベルレジスタ242b−3に書き込まれると、割込みを指示するTLPを生成し他のCPUへ転送する。一方、PCIe-NTBトランザクション層242(NTBポート)は、他のCPU10からプロセッサコア60に対する割込み指示を受信用ドアベルレジスタ242b−4に書き込まれると、プロセッサコア60に対する割込み指示を行なう。
〔1−5−2〕スクラッチパッド機能
スクラッチパッド機能は、各パーティション#0,#1のプロセッサコア60が数バイト程度の情報を交換するために使用される機能である。送信側のプロセッサコア60は、PIOによって、送信側のPCIe-NTBトランザクション層242の送信用スクラッチパッドレジスタ242b−5に交換情報を書き込む。交換情報を書き込まれた送信側のPCIe-NTBトランザクション層242は、メッセージパケット(Msg;TLP)を生成し、受信側のPCIe-NTBトランザクション層242へ送信する。このときのメッセージパケットは、PCIe仕様のVendor Defined Messageの仕組みを用いて独自に定義される。メッセージパケットを受け取った受信側のPCIe-NTBトランザクション層242は、スクラッチパッド機能に係るメッセージパケットを受信すると、メッセージパケットにより受け取った内容をスクラッチパッドと判断する。そして、受信側のPCIe-NTBトランザクション層242は、メッセージパケットの内容(交換情報)を受信用スクラッチパッドレジスタ242b−6に反映する。受信側のプロセッサコア60は、PIOによって受信用スクラッチパッドレジスタ242b−6の内容を読み出すことで、送信側のプロセッサコア60からの交換情報を知ることが可能になっている。
つまり、PCIe-NTBトランザクション層242(NTBポート)は、プロセッサコア60から他のCPU10と交換すべき交換情報をトランザクション層242の送信用スクラッチパッドレジスタ242b−5に書き込まれると、当該交換情報を含むTLPを生成し他のCPU10へ転送する。一方、PCIe-NTBトランザクション層242(NTBポート)は、他のCPU10からプロセッサコア60と交換すべき交換情報を受信用スクラッチパッドレジスタ242b−6に書き込まれると、プロセッサコア60からの問合せ(PIO)に応じて、受信用スクラッチパッドレジスタ242b−6の交換情報をプロセッサコア60に通知する。
〔1−6〕TLPの分割およびカプセル化
次に、図11を参照しながら、CPUインターコネクトデータリンクI/F(第2インターフェイス)243によるパケット分割およびカプセル化について説明する。なお、図11は、図6に示すCPUインターコネクトデータリンクI/F243によるパケット分割およびカプセル化を説明する図である。
送信側NTBポートのCPUインターコネクトデータリンクI/F243では、以下のような処理が行なわれる。まず、CPUインターコネクトデータリンクI/F243は、上流のPCIe-NTBトランザクション層242からPCIeのTLPを受信する。TLPのフォーマットは、図11の上段に示すとおりである。CPUインターコネクトデータリンクI/F243は、受信したTLPをCPUインターコネクトのパケットサイズ(パケット長)に合わせて分割したり、パディング(padding)を行なったりして、CPUインターコネクトのパケットサイズに揃えた一以上のパケットを生成する。
図11では、受信したTLPがCPUインターコネクトのパケットサイズよりも大きい場合の、パケット分割およびカプセル化が示されている。つまり、まず、CPUインターコネクトデータリンクI/F243は、図11の上段に示すTLPを、図11の中段に示すように、2つのパケットに分割する。一方(左側)のパケットのサイズは、CPUインターコネクトのパケットサイズと同じである。しかし、他方(右側)のパケットのサイズは、CPUインターコネクトのパケットサイズよりも小さいため、他方のパケットに対しては、図11の中段の右側に示すごとく、そのサイズがCPUインターコネクトのパケットサイズと同じになるよう、パディングが行なわれている。
さらに、図11に示す例では、CPUインターコネクトデータリンクI/F243は、2つに分けられたパケットそれぞれの前後に、同図の下段に示すように、CPUインターコネクトのデータリンク層のヘッダ(Haeder)およびCRC(Cyclic Redundancy Check)を付加する。これにより、各パケットは、カプセル化される。一方、受信側NTBポートのCPUインターコネクトデータリンクI/F243は、上述した送信側NTBポートでのパケット分割およびカプセル化のプロセスとは逆のプロセスで、データリンク層のパケットからPCIeのTLPを再構築する。
〔2〕第2実施形態の情報処理装置(サーバ)
次に、図12および図13を参照しながら、第2実施形態としての情報処理装置(サーバ)1′の構成について説明する。なお、図12は、第2実施形態のサーバ1′の要部構成を示すブロック図、図13は、図12に示すPCIe-NTBポート上位層(第2通信部)24′の詳細構成を示すブロック図である。図中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
第2実施形態のサーバ1′におけるCPU10は、図12に示すように、PCIeポート81を有している。このようにCPU10がPCIeポート81を有している場合、CPU10は、CPU内部バス50とPCIeポート81との間にPCIeルートコンプレクス(Root Complex)80を備えている。この場合、第1実施形態のCPU内部バスI/F241をPCIeルートコンプレクス80内に実装し他のPCIeポート81と共用する形態とすることができる。
つまり、第2実施形態は、図12に示すように、PCIe-NTBポート上位層24′の上流側の接続先が、CPU内部バス50ではなく、PCIeルートコンプレクス80である点で、第1実施形態(PCIe-NTBポート上位層24)と異なっている。
第2実施形態では、図12に示すように、PCIe-NTBポート上位層24′がPCIeルートコンプレクス80と接続されるので、図13に示すように、第1実施形態では必要であったCPU内部バスI/F241のブロックは不要となる。そのほかのブロック(PCIe-NTBトランザクション層242およびCPUインターコネクトデータリンクI/F243)は、第2実施形態のPCIe-NTBポート上位層24′においても、第1実施形態のPCIe-NTBポート上位層24と同様に備えられる。
このように、第2実施形態のサーバ1′では、CPU10がPCIeポート81およびPCIeルートコンプレクス80を有する場合、PCIeルートコンプレクス80によって、第1実施形態におけるCPU内部バスI/F(第1インターフェイス)241の機能が実現される。したがって、第2実施形態のサーバ1′によれば、より簡素な構成で、第1実施形態と同様の作用効果を得ることができる。
〔3〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、上述した実施形態では、一つのサーバ1に4つのCPU10A〜10Dを備えた場合について説明したが、本発明は、これに限定されるものではない。
上述したCPUインターコネクト上位層(第1通信部)23,PCIe-NTBポート上位層(第2通信部)24,24′,マルチプレクサ(選択部)25およびシステムF/W(設定部)40を含むサーバ1,1′の各種機能の全部もしくは一部は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のプログラムを実行することによって実現される。
そのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
ここで、コンピュータとは、ハードウエアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウエアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウエアを動作させるような場合には、そのハードウエア自体がコンピュータに相当する。ハードウエアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、上述したサーバ1,1′の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
〔4〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の処理部と、
前記複数の処理部に対しパーティション構成に則した設定を行なう設定部と、を備え、
前記複数の処理部のそれぞれは、他の処理部に接続され前記他の処理部との通信を行なうポートを有し、
前記ポートは、
前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第1通信部と、
前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第2通信部と、
前記設定部による前記設定に応じて前記第1通信部と前記第2通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させる選択部と、を有することを特徴とする情報処理装置。
(付記2)
前記複数の処理部のそれぞれは、
前記設定部により、前記他の処理部が前記同一パーティションに属することを示す第1情報、または、前記他の処理部が前記異なるパーティションに属することを示す第2情報を設定されるレジスタをさらに有し、
前記選択部は、前記第1情報が前記レジスタに設定されている場合、前記第1通信部を選択する一方、前記第2情報が前記レジスタに設定されている場合、前記第2通信部を選択することを特徴とする、付記1に記載の情報処理装置。
(付記3)
前記第1通信部は、前記同一パーティションに属する前記他の処理部との間で、全てのメモリアクセスについてメモリ空間を共有するための通信を実行することを特徴とする、付記1または付記2に記載の情報処理装置。
(付記4)
前記第2通信部は、前記異なるパーティションに属する前記他の処理部との間で、前記ポートの属する処理部を成すプロセッサコアによって明示的に指示された通信を実行することを特徴とする、付記1〜付記3のいずれか一項に記載の情報処理装置。
(付記5)
前記第2通信部が通信を実行することにより、前記ポートは、PCI(Peripheral Components Interconnect)デバイスのNTB(Non-Transparent Bridge)ポートとして機能することを特徴とする、付記4に記載の情報処理装置。
(付記6)
前記第2通信部は、
前記プロセッサコアと接続される第1インターフェイスと、
前記他の処理部と接続される第2インターフェイスと、
前記第1インターフェイス部と前記第2インターフェイスとの間に配置されるNTBトランザクション層と、を有し、
前記第2通信部が前記ポートを前記NTBポートとして用い前記他の処理部へのデータ送信を行なう場合、前記第1インターフェイスは、前記他の処理部へのデータをPCI仕様に準拠するデータに変換し、前記NTBトランザクション層は、前記第1インターフェイスからのデータに基づきTLP(Transaction Layer Packet)を生成し、前記第2インターフェイスは、前記NTBトランザクション層からのTLPを、前記ポートと前記他の処理部との間の通信仕様に準拠するパケットに変換する一方、
前記第2通信部が前記ポートを前記NTBポートとして用い前記他の処理部からデータ受信を行なう場合、前記第2インターフェイスは、前記他の処理部からのパケットをTLPに変換し、前記NTBトランザクション層は、前記第2インターフェイスからのTLPに基づき、PCI仕様に準拠するデータを生成し、前記第1インターフェイスは、前記NTBトランザクション層からのデータを前記プロセッサコアまたはメモリへのデータに変換することを特徴とする、付記5に記載の情報処理装置。
(付記7)
前記複数の処理部のそれぞれは、PCIポートおよびルートコンプレクスを有し、
前記第2通信部の前記第1インターフェイスは、前記ルートコンプレクスによって構成されることを特徴とする、付記6に記載の情報処理装置。
(付記8)
前記第2通信部は、
前記プロセッサコアから前記他の処理部に対する割込み指示を前記NTBトランザクション層の送信用割込みレジスタに書き込まれると、割込みを指示するTLPを生成し前記他の処理部へ転送する一方、
前記他の処理部から前記プロセッサコアに対する割込み指示を前記NTBトランザクション層の受信用割込みレジスタに書き込まれると、前記プロセッサコアに対する割込み指示を行なうことを特徴とする、付記6または付記7に記載の情報処理装置。
(付記9)
前記第2通信部は、
前記プロセッサコアから前記他の処理部と交換すべき交換情報を前記NTBトランザクション層の送信用交換情報レジスタに書き込まれると、前記交換情報を含むTLPを生成し前記他の処理部へ転送する一方、
前記他の処理部から前記プロセッサコアと交換すべき交換情報を前記NTBトランザクション層の受信用交換情報レジスタに書き込まれると、前記プロセッサコアからの問合せに応じて、前記受信用交換情報レジスタの交換情報を前記プロセッサコアに通知することを特徴とする、付記6〜付記8のいずれか一項に記載の情報処理装置。
(付記10)
前記第2通信部が通信を実行することにより、前記ポートと前記他の処理部との間に確立されるパスは、メモリミラーリングパスおよびフェイルオーバーパスの少なくとも一方として機能することを特徴する、付記1〜付記9のいずれか一項に記載の情報処理装置。
(付記11)
他の処理部に接続され前記他の処理部との通信を行なうポートを有する複数の処理部を備えた情報処理装置において、前記複数の処理部に対しパーティション構成に則した設定を行なう制御方法であって、
前記ポートにおいて、前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第1通信部と、前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第2通信部と、を備え、
前記設定に応じて前記第1通信部と前記第2通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させることを特徴とする情報処理装置の制御方法。
(付記12)
前記複数の処理部のそれぞれに、前記他の処理部が前記同一パーティションに属することを示す第1情報、または、前記他の処理部が前記異なるパーティションに属することを示す第2情報を設定されるレジスタを備え、
前記第1情報が前記レジスタに設定されている場合、前記第1通信部を選択する一方、前記第2情報が前記レジスタに設定されている場合、前記第2通信部を選択することを特徴とする、付記11に記載の情報処理装置の制御方法。
(付記13)
前記第1通信部に、前記同一パーティションに属する前記他の処理部との間で、全てのメモリアクセスについてメモリ空間を共有するための通信を実行させることを特徴とする、付記11または付記12に記載の情報処理装置の制御方法。
(付記14)
前記第2通信部に、前記異なるパーティションに属する前記他の処理部との間で、前記ポートの属する処理部を成すプロセッサコアによって明示的に指示された通信を実行させることを特徴とする、付記11〜付記13のいずれか一項に記載の情報処理装置の制御方法。
(付記15)
前記第2通信部が通信を実行することにより、前記ポートを、PCI(Peripheral Components Interconnect)デバイスのNTB(Non-Transparent Bridge)ポートとして機能させることを特徴とする、付記14に記載の情報処理装置の制御方法。
(付記16)
前記第2通信部が通信を実行することにより、前記ポートと前記他の処理部との間に確立されるパスを、メモリミラーリングパスおよびフェイルオーバーパスの少なくとも一方として機能させることを特徴する、付記11〜付記15のいずれか一項に記載の情報処理装置の制御方法。
1,1′ 情報処理装置(サーバ)
10,10A〜10D CPU(処理部)
11 CPUインターコネクトライン
20 CPUインターコネクトポート(ポート,NTBポート)
21 物理層
22 データリンク層
23 CPUインターコネクト上位層(第1通信部)
24,24′ PCIe-NTBポート上位層(第2通信部)
241 CPU内部バスインターフェイス(第1インターフェイス)
241a〜241d バッファ
242 PCIe-NTBトランザクション層(NTBトランザクション層)
242a PCIコンフィグレーションレジスタ
242b メモリマップドI/O(MMIO)レジスタ
242b−1 ベースアドレスレジスタ(BAR;アドレス変換用レジスタ)
242b−2 リミットアドレスレジスタ(LAR;アドレス変換用レジスタ)
242b−3 送信用ドアベルレジスタ(送信用割込みレジスタ)
242b−4 受信用ドアベルレジスタ(受信用割込みレジスタ)
242b−5 送信用スクラッチパッドレジスタ(送信用交換情報レジスタ)
242b−6 受信用スクラッチパッドレジスタ(受信用交換情報レジスタ)
242c アドレス変換部
242d TLP生成部
242e TLP解体部
242f アドレス変換部
243 CPUインターコネクトデータリンクインターフェイス(第2インターフェイス)
243a,243b バッファ
25 マルチプレクサ(選択部)
30 ポートモード選択レジスタ(レジスタ)
40 システムファームウエア(設定部)
50 CPU内部バス
60 プロセッサコア
70 メモリまたはI/O装置
80 PCIeルートコンプレクス(第1インターフェイス)
81 PCIeポート
90 ネットワーク

Claims (8)

  1. 複数の処理部と、
    前記複数の処理部に対しパーティション構成に則した設定を行なう設定部と、を備え、
    前記複数の処理部のそれぞれは、他の処理部に接続され前記他の処理部との通信を行なうポートを有し、
    前記ポートは、
    前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第1通信部と、
    前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第2通信部と、
    前記設定部による前記設定に応じて前記第1通信部と前記第2通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させる選択部と、を有することを特徴とする情報処理装置。
  2. 前記複数の処理部のそれぞれは、
    前記設定部により、前記他の処理部が前記同一パーティションに属することを示す第1情報、または、前記他の処理部が前記異なるパーティションに属することを示す第2情報を設定されるレジスタをさらに有し、
    前記選択部は、前記第1情報が前記レジスタに設定されている場合、前記第1通信部を選択する一方、前記第2情報が前記レジスタに設定されている場合、前記第2通信部を選択することを特徴とする、請求項1に記載の情報処理装置。
  3. 前記第1通信部は、前記同一パーティションに属する前記他の処理部との間で、全てのメモリアクセスについてメモリ空間を共有するための通信を実行することを特徴とする、請求項1または請求項2に記載の情報処理装置。
  4. 前記第2通信部は、前記異なるパーティションに属する前記他の処理部との間で、前記ポートの属する処理部を成すプロセッサコアによって明示的に指示された通信を実行することを特徴とする、請求項1〜請求項3のいずれか一項に記載の情報処理装置。
  5. 前記第2通信部が通信を実行することにより、前記ポートは、PCI(Peripheral Components Interconnect)デバイスのNTB(Non-Transparent Bridge)ポートとして機能することを特徴とする、請求項4に記載の情報処理装置。
  6. 前記第2通信部は、
    前記プロセッサコアと接続される第1インターフェイスと、
    前記他の処理部と接続される第2インターフェイスと、
    前記第1インターフェイス部と前記第2インターフェイスとの間に配置されるNTBトランザクション層と、を有し、
    前記第2通信部が前記ポートを前記NTBポートとして用い前記他の処理部へのデータ送信を行なう場合、前記第1インターフェイスは、前記他の処理部へのデータをPCI仕様に準拠するデータに変換し、前記NTBトランザクション層は、前記第1インターフェイスからのデータに基づきTLP(Transaction Layer Packet)を生成し、前記第2インターフェイスは、前記NTBトランザクション層からのTLPを、前記ポートと前記他の処理部との間の通信仕様に準拠するパケットに変換する一方、
    前記第2通信部が前記ポートを前記NTBポートとして用い前記他の処理部からデータ受信を行なう場合、前記第2インターフェイスは、前記他の処理部からのパケットをTLPに変換し、前記NTBトランザクション層は、前記第2インターフェイスからのTLPに基づき、PCI仕様に準拠するデータを生成し、前記第1インターフェイスは、前記NTBトランザクション層からのデータを前記プロセッサコアまたはメモリへのデータに変換することを特徴とする、請求項5に記載の情報処理装置。
  7. 前記複数の処理部のそれぞれは、PCIポートおよびルートコンプレクスを有し、
    前記第2通信部の前記第1インターフェイスは、前記ルートコンプレクスによって構成されることを特徴とする、請求項6に記載の情報処理装置。
  8. 他の処理部に接続され前記他の処理部との通信を行なうポートを有する複数の処理部を備えた情報処理装置において、前記複数の処理部に対しパーティション構成に則した設定を行なう制御方法であって、
    前記ポートにおいて、前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第1通信部と、前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第2通信部と、を備え、
    前記設定に応じて前記第1通信部と前記第2通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させることを特徴とする情報処理装置の制御方法。
JP2014530424A 2012-08-17 2012-08-17 情報処理装置、及び情報処理装置の制御方法 Expired - Fee Related JP5930046B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/070896 WO2014027416A1 (ja) 2012-08-17 2012-08-17 情報処理装置、及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP5930046B2 true JP5930046B2 (ja) 2016-06-08
JPWO2014027416A1 JPWO2014027416A1 (ja) 2016-07-25

Family

ID=50685479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014530424A Expired - Fee Related JP5930046B2 (ja) 2012-08-17 2012-08-17 情報処理装置、及び情報処理装置の制御方法

Country Status (3)

Country Link
US (1) US20150160984A1 (ja)
JP (1) JP5930046B2 (ja)
WO (1) WO2014027416A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6550693B2 (ja) * 2014-06-25 2019-07-31 日本電気株式会社 Io装置の管理装置、io装置の管理方法及びプログラム
CN105653481B (zh) * 2014-11-14 2019-03-26 华为技术有限公司 基于PCIe总线的数据传输方法和装置
CN105022715A (zh) * 2015-07-08 2015-11-04 浪潮(北京)电子信息产业有限公司 一种服务器背板互连方法和系统
TWI597953B (zh) * 2015-11-25 2017-09-01 財團法人工業技術研究院 具故障轉移能力的快速周邊元件互連網路系統與操作方法
CA2963915A1 (en) * 2015-12-17 2017-06-17 Chunbao YAN Write request processing method, processor, and computer
US10191878B2 (en) * 2016-05-11 2019-01-29 Tolefonaktiebolaget LM Ericsson (Publ) High availability of PCIe devices under multiple processors to provide redundancy
WO2018198325A1 (ja) * 2017-04-28 2018-11-01 株式会社日立製作所 ストレージシステム
US10915330B2 (en) * 2017-12-19 2021-02-09 Advanced Micro Devices, Inc. Pseudo-random logical to physical core assignment at boot for age averaging

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231187A (ja) * 1996-02-22 1997-09-05 Hitachi Ltd 並列計算機のデータ転送方法
JPH09274598A (ja) * 1996-04-08 1997-10-21 Hitachi Ltd 情報処理装置の入出力チャネル拡張方法
JP2003030162A (ja) * 2001-05-17 2003-01-31 Fujitsu Ltd コンピュータシステム
JP2003076671A (ja) * 2001-06-29 2003-03-14 Fujitsu Ltd 共有リソースを有し、区画に分割されたシステムにおけるエラー抑制及びエラー処理
JP2006040285A (ja) * 2004-07-29 2006-02-09 Hewlett-Packard Development Co Lp パーティショニングされたデバイス間の通信
JP2006209487A (ja) * 2005-01-28 2006-08-10 Hitachi Ltd 計算機システム、計算機、ストレージ装置及び管理端末
JP2008097276A (ja) * 2006-10-11 2008-04-24 Hitachi Ltd 障害回復方法、計算機システム及び管理サーバ
JP2009151767A (ja) * 2007-12-03 2009-07-09 Internatl Business Mach Corp <Ibm> データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム
WO2011045919A1 (ja) * 2009-10-15 2011-04-21 日本電気株式会社 分散システム、通信手段選択方法および通信手段選択プログラム
JP2011221945A (ja) * 2010-04-14 2011-11-04 Hitachi Ltd データ転送装置、計算機システム及びメモリコピー装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398380B1 (en) * 2004-02-13 2008-07-08 Fabric7 Systems, Inc. Dynamic hardware partitioning of symmetric multiprocessing systems
US7062594B1 (en) * 2004-06-30 2006-06-13 Emc Corporation Root complex connection system
US8244951B2 (en) * 2008-09-25 2012-08-14 Intel Corporation Method and apparatus to facilitate system to system protocol exchange in back to back non-transparent bridges
US7913027B2 (en) * 2009-04-07 2011-03-22 Lsi Corporation Configurable storage array controller
US8589613B2 (en) * 2010-06-02 2013-11-19 Intel Corporation Method and system to improve the operations of an integrated non-transparent bridge device

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231187A (ja) * 1996-02-22 1997-09-05 Hitachi Ltd 並列計算機のデータ転送方法
JPH09274598A (ja) * 1996-04-08 1997-10-21 Hitachi Ltd 情報処理装置の入出力チャネル拡張方法
JP2003030162A (ja) * 2001-05-17 2003-01-31 Fujitsu Ltd コンピュータシステム
JP2003076671A (ja) * 2001-06-29 2003-03-14 Fujitsu Ltd 共有リソースを有し、区画に分割されたシステムにおけるエラー抑制及びエラー処理
JP2006040285A (ja) * 2004-07-29 2006-02-09 Hewlett-Packard Development Co Lp パーティショニングされたデバイス間の通信
JP2006209487A (ja) * 2005-01-28 2006-08-10 Hitachi Ltd 計算機システム、計算機、ストレージ装置及び管理端末
JP2008097276A (ja) * 2006-10-11 2008-04-24 Hitachi Ltd 障害回復方法、計算機システム及び管理サーバ
JP2009151767A (ja) * 2007-12-03 2009-07-09 Internatl Business Mach Corp <Ibm> データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム
WO2011045919A1 (ja) * 2009-10-15 2011-04-21 日本電気株式会社 分散システム、通信手段選択方法および通信手段選択プログラム
JP2011221945A (ja) * 2010-04-14 2011-11-04 Hitachi Ltd データ転送装置、計算機システム及びメモリコピー装置

Also Published As

Publication number Publication date
US20150160984A1 (en) 2015-06-11
WO2014027416A1 (ja) 2014-02-20
JPWO2014027416A1 (ja) 2016-07-25

Similar Documents

Publication Publication Date Title
JP5930046B2 (ja) 情報処理装置、及び情報処理装置の制御方法
JP7118922B2 (ja) スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法
US7979621B2 (en) Transparent PCI-based multi-host switch
US7979592B1 (en) Virtualization bridge device
JP5274730B2 (ja) PCIeアーキテクチャ中でのI/O拡張要求および応答のルーティング
ES2642829T3 (es) Sistema y procedimiento para estructuras extendidas de interconexión de componentes periféricos exprés
JP5440507B2 (ja) マルチルートpciエクスプレススイッチ、その起動方法、及び、マルチルートpciマネージャプログラム
US8589723B2 (en) Method and apparatus to provide a high availability solid state drive
US7783822B2 (en) Systems and methods for improving performance of a routable fabric
JP5903801B2 (ja) 通信装置およびid設定方法
TWI557570B (zh) 記憶體映射方法和記憶體映射系統
JPWO2009139489A1 (ja) Pciエクスプレススイッチ、pciエクスプレスシステム、及びネットワーク制御方法
US20230018225A1 (en) Apparatus and mechanism to bypass pcie address translation by using alternative routing
JP2014002545A (ja) データ転送装置、及びデータ転送方法
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
TWI791134B (zh) 通信裝置、資訊處理系統及通信方法
TWI309778B (en) Integrated circuit having processor, switch capabilities and ports to receive and forward data
TWI567638B (zh) 多核心處理器、多核心處理系統、及初始化處理核心之方法
JP2013196593A (ja) データ処理装置、データ処理方法及びプログラム

Legal Events

Date Code Title Description
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: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R150 Certificate of patent or registration of utility model

Ref document number: 5930046

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees