JP5930046B2 - Information processing apparatus and control method of information processing apparatus - Google Patents

Information processing apparatus and control method of information processing apparatus 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
Japanese (ja)
Other versions
JPWO2014027416A1 (en
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/en
Publication of JPWO2014027416A1 publication Critical patent/JPWO2014027416A1/en
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

Description

本発明は、情報処理装置、及び情報処理装置の制御方法に関する。   The present invention relates to an information processing apparatus and a control method for the information processing apparatus.

サーバ等の情報処理装置は、複数のCPU(Central Processing Unit)を搭載し、CPUどうしをQPI(Quick Path Interconnect), HT(Hyper Transport)等によってポイントツーポイント接続し、物理パーティショニング機能を有する形態をとる場合がある。   An information processing apparatus such as a server has a plurality of CPUs (Central Processing Units), has a physical partitioning function by connecting the CPUs to each other by QPI (Quick Path Interconnect), HT (Hyper Transport), etc. May be taken.

例えば、図14は、物理パーティショニング機能を有する情報処理装置(サーバ)100の基本構成を示すブロック図である。図14に示すサーバ100には、4つのCPU101A〜101Dが搭載されている。なお、4つのCPUのうちの一つを特定する場合、符号101A〜101Dを用い、任意のCPUを指す場合、符号101を用いる。各CPU101は、2つのCPUインターコネクトポート102を有し、4つのCPU101A〜101Dは、CPUインターコネクトポート102およびCPUインターコネクトライン103を介してリング状に接続されている。   For example, FIG. 14 is a block diagram illustrating a basic configuration of an information processing apparatus (server) 100 having a physical partitioning function. The server 100 shown in FIG. 14 includes four CPUs 101A to 101D. Note that, when one of the four CPUs is specified, reference numerals 101A to 101D are used, and when an arbitrary CPU is indicated, reference numeral 101 is used. Each CPU 101 has two CPU interconnect ports 102, and the four CPUs 101A to 101D are connected in a ring shape via the CPU interconnect port 102 and the CPU interconnect line 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への出力がセーブまたはパワーオフした状態に保たれる。 In the example shown in FIG. 14, is divided into two physical servers by the server 100 is a physical path over tee partitioning function, two CPU 101A, 101B and two CPU101C, and the 101D, different partitions # 0, respectively, is assigned to # 1 . At this time, the CPU interconnect line 103 between the two CPUs 101A and 101B belonging to the partition # 0 and the CPU interconnect line 103 between the two CPUs 101C and 101D belonging to the partition # 1 are used as usual. On the other hand, the CPU interconnect lines 103 extending over different partitions # 0 and # 1, that is, the lines 103 between the CPUs 101A and 101D and between the CPUs 101B and 101C are not used while being physically connected, or are connected to the CPU interconnect line 103. The output is kept saved or powered off.

図14に示すようにパーティションによって分断された2つのCPU101A,101D間でのデータ通信は、CPU101A,101D間におけるCPUインターコネクトライン103を使用することなく、例えば、図15または図16に示す形態で行なわれる。図15および図16は、それぞれ、パーティション間の通信形態の一例および他例を示すブロック図である。   As shown in FIG. 14, the data communication between the two CPUs 101A and 101D divided by the partition is performed, for example, in the form shown in FIG. 15 or FIG. 16 without using the CPU interconnect line 103 between the CPUs 101A and 101D. It is. FIG. 15 and FIG. 16 are block diagrams showing an example of a communication form between partitions and another example, respectively.

図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間でのデータ通信が行なわれる。   In the example of the communication form shown in FIG. 15, a PCI Express (registered trademark; PCIe (registered trademark); Peripheral Components Interconnect express) switch 104 is provided under each CPU 101, and a NIC (Network Interface) is provided in the card slot 104 a of each PCIe switch 104. Card) 105 is loaded. Then, NICs 105 and 105 belonging to different partitions # 0 and # 1 are connected via Ethernet (registered trademark) using a cable 106. Thereby, data communication is performed between the CPUs 101A and 101D belonging to different partitions # 0 and # 1, respectively.

図16に示す通信形態の他例では、2つのパーティション#0,#1にそれぞれ属するCPU101A,101Dによって共用され且つパーティション分割機能およびNTB(Non-Transparent Bridge)ポート104bを有するPCIeスイッチ104′がそなえられる。そして、PCIeスイッチ104′のNTBポート104bを用い、異なるパーティション#0,#1にそれぞれ属するCPU101A,101D間でのデータ通信が行なわれる。なお、NTBポートとは、PCI仕様において、異なる2つのパーティション間やホスト間でデータを共有するための機能を果たすもので、メモリマップされた空間をポート内に有し、その空間を利用してパーティション間やホスト間でのデータのやりとりが可能なポートである。   In the other example of the communication form shown in FIG. 16, a PCIe switch 104 ′ that is shared by the CPUs 101A and 101D belonging to the two partitions # 0 and # 1 and has a partitioning function and an NTB (Non-Transparent Bridge) port 104b is provided. It is done. Then, data communication is performed between the CPUs 101A and 101D belonging to different partitions # 0 and # 1 using the NTB port 104b of the PCIe switch 104 ′. The NTB port fulfills the function for sharing data between two different partitions or between hosts in the PCI specification, and has a memory-mapped space in the port and uses that space. It is a port that can exchange data between partitions and between hosts.

特開2006−40285号公報JP 2006-40285 A 特開2011−221945号公報JP 2011-221945 A

図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′等を介して通信が行なわれており、極めて効率が悪い。   In the communication form shown in FIG. 15, it is necessary to prepare two NICs 105 and a cable 106 separately in order to realize data communication between two different partitions # 0 and # 1. In the communication mode shown in FIG. 16, a switch 104 ′ shared between two different partitions # 0 and # 1 is required. In either communication mode, when communicating between the CPUs 101A and 101D in different partitions, the communication performance is inferior to using the CPU interconnect because the switches 104 and 104 'and the network are used. In this way, when the CPUs 101 belonging to different partitions in the same server 100 communicate with each other, the NIC 105 and the PCIe switch are not utilized even though the low-latency and high-bandwidth interface (CPU interconnect line 103) exists. Communication is performed via 104, 104 ', etc., which is extremely inefficient.

一つの側面で、本発明は、異なるパーティションに属する処理部間の通信を効率よく実現することを目的とする。   In one aspect, an object of the present invention is to efficiently realize communication between processing units belonging to different partitions.

一つの案では、情報処理装置は、複数の処理部と、前記複数の処理部に対しパーティション構成に則した設定を行なう設定部と、を備え、前記複数の処理部のそれぞれは、他の処理部に接続され前記他の処理部との通信を行なうポートを有している。前記ポートは、第1通信部,第2通信部および選択部を有している。前記第1通信部は、前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう。前記第2通信部は、前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう。前記選択部は、前記設定部による前記設定に応じて前記第1通信部と前記第2通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させる。   In one proposal, the information processing apparatus includes a plurality of processing units and a setting unit configured to perform settings according to a partition configuration for the plurality of processing units, and each of the plurality of processing units includes other processing units. And a port for communicating with the other processing unit. The port includes a first communication unit, a second communication unit, and a selection unit. The first communication unit communicates with a processing unit belonging to the same partition as the processing unit to which the port belongs. The second communication unit communicates with a processing unit belonging to a partition different from the processing unit to which the port belongs. The selection unit selects one of the first communication unit and the second communication unit according to the setting by the setting unit, and causes the selected communication unit to perform communication with the other processing unit. .

一実施形態によれば、異なるパーティションに属する処理部間の通信を効率よく実現することができる。   According to one embodiment, communication between processing units belonging to different partitions can be efficiently realized.

第1実施形態としての情報処理装置の要部構成を示すブロック図である。It is a block diagram which shows the principal part structure of the information processing apparatus as 1st Embodiment. 図1に示す要部構成を適用される、第1実施形態の情報処理装置の全体構成を概略的に示すブロック図である。It is a block diagram which shows roughly the whole structure of the information processing apparatus of 1st Embodiment to which the principal part structure shown in FIG. 1 is applied. 図2に示す設定部および図1に示す選択部の機能を説明するフローチャートである。It is a flowchart explaining the function of the setting part shown in FIG. 2, and the selection part shown in FIG. 図2に示す情報処理装置の1パーティション状態を示すブロック図である。FIG. 3 is a block diagram illustrating a one-partition state of the information processing apparatus illustrated in FIG. 2. 図2に示す情報処理装置の2パーティション状態を示すブロック図である。FIG. 3 is a block diagram illustrating a two-partition state of the information processing apparatus illustrated in FIG. 2. 図1に示すNTBポート上位層(第2通信部)の詳細構成を示すブロック図である。It is a block diagram which shows the detailed structure of the NTB port upper layer (2nd communication part) shown in FIG. 図6に示すNTBトランザクション層のアドレス変換部によるアドレス変換機能を説明するブロック図である。It is a block diagram explaining the address conversion function by the address conversion part of the NTB transaction layer shown in FIG. トランザクションIDの内容を示す図である。It is a figure which shows the content of transaction ID. 図6に示すNTBトランザクション層のアドレス変換部によるタグ変換/逆変換機能およびトランザクションID変換/逆変換機能を説明するブロック図である。FIG. 7 is a block diagram for explaining a tag conversion / inverse conversion function and a transaction ID conversion / inverse conversion function by an address conversion unit of the NTB transaction layer shown in FIG. 6. 図6に示すNTBトランザクション層によるドアベル機能およびスクラッチパッド機能を説明するブロック図である。It is a block diagram explaining the doorbell function and scratch pad function by the NTB transaction layer shown in FIG. 図6に示すCPUインターコネクトデータリンクインターフェイス(第2インターフェイス)によるパケット分割およびカプセル化を説明する図である。FIG. 7 is a diagram for explaining packet division and encapsulation by a CPU interconnect data link interface (second interface) shown in FIG. 6. 第2実施形態としての情報処理装置の要部構成を示すブロック図である。It is a block diagram which shows the principal part structure of the information processing apparatus as 2nd Embodiment. 図12に示すNTBポート上位層(第2通信部)の詳細構成を示すブロック図である。It is a block diagram which shows the detailed structure of the NTB port upper layer (2nd communication part) shown in FIG. 物理パーティショニング機能を有する情報処理装置(サーバ)の基本構成を示すブロック図である。It is a block diagram which shows the basic composition of the information processing apparatus (server) which has a physical partitioning function. パーティション間の通信形態の一例を示すブロック図である。It is a block diagram which shows an example of the communication form between partitions. パーティション間の通信形態の他例を示すブロック図である。It is a block diagram which shows the other example of the communication form between partitions.

以下、図面を参照して実施の形態を説明する。
〔1〕第1実施形態の情報処理装置(サーバ)
〔1−1〕第1実施形態の基本的な構成
まず、図1〜図3を参照しながら、第1実施形態としての情報処理装置(サーバ)1の構成および機能について説明する。なお、図1は、第1実施形態のサーバ1の要部構成を示すブロック図、図2は、図1に示す要部構成を適用される、第1実施形態のサーバ1の全体構成を概略的に示すブロック図である。また、図3は、図2に示すシステムファームウエア(設定部)40および図1に示すマルチプレクサ(選択部)25の機能を説明するフローチャート(ステップS1〜S7)である。
Hereinafter, embodiments will be described with reference to the drawings.
[1] Information processing apparatus (server) of the first embodiment
[1-1] Basic Configuration of the First Embodiment First, the configuration and function of the information processing apparatus (server) 1 as the first embodiment will be described with reference to FIGS. FIG. 1 is a block diagram illustrating the main configuration of the server 1 according to the first embodiment. FIG. 2 illustrates the overall configuration of the server 1 according to the first embodiment to which the main configuration illustrated in FIG. 1 is applied. FIG. 3 is a flowchart (steps S1 to S7) for explaining the functions of the system firmware (setting unit) 40 shown in FIG. 2 and the multiplexer (selection unit) 25 shown in FIG.

図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を介してリング状に接続されている。   The server 1 shown in FIGS. 1 and 2 includes four CPUs (processing units) 10A to 10D. Here, when one of the four CPUs is specified, reference numerals 10A to 10D are used, and when an arbitrary CPU is indicated, reference numeral 10 is used. The CPUs 10 are point-to-point connected by QPI, HT or the like. Each CPU 10 has two CPU interconnect ports 20, and the four CPUs 10 </ b> A to 10 </ b> D are connected in a ring shape via the CPU interconnect port 20 and the CPU interconnect line 11.

各CPU10において、CPUインターコネクトポート(以下、単にポートという場合がある)20には、CPU内部バス50を介して、プロセッサコア60(図7,図9,図10参照)や、メモリまたはI/O(Input/Output)装置70(図7,図9参照)が接続されている。   In each CPU 10, a CPU interconnect port (hereinafter sometimes referred to simply as a port) 20 is connected to a processor core 60 (see FIGS. 7, 9, and 10), a memory or an I / O via a CPU internal bus 50. An (Input / Output) device 70 (see FIGS. 7 and 9) is connected.

また、サーバ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情報とが設定される。   The server 1 also has a physical partitioning function, and has system firmware (F / W; setting unit) 40 that performs settings in accordance with the partition configuration for the four CPUs 10A to 10D (see FIG. 2, see FIG. 4 and FIG. The system F / W 40 is configured to be operable by a user via the network 90. Further, on each chip of the CPU 10, a port mode selection register (hereinafter sometimes simply referred to as a register) 30 is attached to each of the two ports 20. The register 30 is for setting the operation mode of the port 20. The register 30 stores the physical partition configuration and FIGS. 4 and 5 by the system F / W 40 via the CPU internal bus 50 according to instructions from the user. First information or second information to be described later is set with reference to the reference.

各CPU10におけるポート20は、CPU10のチップ上に備えられ、CPUインターコネクトライン11を介して他のCPU10に接続され、他の処理部10との通信を行なう。ポート20内において、CPUインターコネクトライン11とCPU内部バス50との間には、物理層21,データリンク層22,CPUインターコネクト上位層23,PCIe-NTBポート上位層24およびマルチプレクサ25が備えられている。   A port 20 in each CPU 10 is provided on the chip of the CPU 10, is connected to another CPU 10 via the CPU interconnect line 11, and communicates with another processing unit 10. In the port 20, a physical layer 21, a data link layer 22, a CPU interconnect upper layer 23, a PCIe-NTB port upper layer 24, and a multiplexer 25 are provided between the CPU interconnect line 11 and the CPU internal bus 50. .

ポート20において、物理層21,データリンク層22およびCPUインターコネクト上位層23は、CPUインターコネクトライン11とCPU内部バス50との間に備えられる既存の構成である。第1実施形態のポート20では、当該既存の構成に対し、PCIe-NTBポート上位層24およびマルチプレクサ25が追加されている。   In the port 20, the physical layer 21, the data link layer 22, and the CPU interconnect upper layer 23 are existing configurations provided between the CPU interconnect line 11 and the CPU internal bus 50. In the port 20 of the first embodiment, a PCIe-NTB port upper layer 24 and a multiplexer 25 are added to the existing configuration.

ここで、データリンク層22よりも上位のCPUインターコネクト上位層23は、当該ポート20の属するCPU10と同一パーティションに属するCPU10との通信を行なう第1通信部として機能する。このとき、CPUインターコネクト上位層23は、CPUインターコネクトポート20を、同一パーティションに属する他のCPU10との間で全てのメモリアクセスについてメモリ空間を共有するための通信を実行するポートとして機能させる。   Here, the CPU interconnect upper layer 23 higher than the data link layer 22 functions as a first communication unit that performs communication with the CPU 10 belonging to the same partition as the CPU 10 to which the port 20 belongs. At this time, the CPU interconnect upper layer 23 causes the CPU interconnect port 20 to function as a port for executing communication for sharing the memory space for all memory accesses with other CPUs 10 belonging to the same partition.

一方、PCIe-NTBポート上位層24は、CPUインターコネクト上位層23と並列的に備えられ、当該ポート20の属するCPU10と異なるパーティションに属するCPU10との通信を行なう第2通信部として機能する。このとき、PCIe-NTBポート上位層24は、CPUインターコネクトポート20を、PCIデバイスのNTB(Non-Transparent Bridge)ポートとして機能させる。NTBポートは、異なるパーティションに属する他のCPU10との間で当該ポート20の属するCPU10を成すプロセッサコア60によって明示的に指示された通信を実行する。   On the other hand, the PCIe-NTB port upper layer 24 is provided in parallel with the CPU interconnect upper layer 23 and functions as a second communication unit that communicates with the CPU 10 belonging to a different partition from the CPU 10 to which the port 20 belongs. At this time, the PCIe-NTB port upper layer 24 causes the CPU interconnect port 20 to function as an NTB (Non-Transparent Bridge) port of the PCI device. The NTB port executes communication explicitly instructed by the processor core 60 constituting the CPU 10 to which the port 20 belongs with another CPU 10 belonging to a different partition.

また、並列的に備えられた上位層23,24と、データリンク層22との間には、マルチプレクサ25が備えられている。マルチプレクサ25は、システムF/W40による設定に応じて、CPUインターコネクト上位層23とPCIe-NTBポート上位層24とのいずれか一方を選択し、選択した上位層(通信部)23または24に他のCPU10との通信を実行させる選択部として機能する。   A multiplexer 25 is provided between the upper layers 23 and 24 provided in parallel and the data link layer 22. The multiplexer 25 selects one of the CPU interconnect upper layer 23 and the PCIe-NTB port upper layer 24 according to the setting by the system F / W 40, and sends the other upper layer (communication unit) 23 or 24 to the other It functions as a selection unit that executes communication with the CPU 10.

システム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”である。   When the system F / W 40 receives an instruction about physical partitioning from the user via the network 90 (see YES route in step S1 in FIG. 3), the system F / W 40 conforms to the partition configuration according to the instruction to the four CPUs 10A to 10D. Settings are made (see step S2 in FIG. 3). At that time, the system F / W 40 sets the first information or the second information in the register 30 provided for each port 20 as shown in FIG. 4 or FIG. 5 (steps S3 and S4 in FIG. 3). ). Here, the first information is a value indicating that another CPU 10 connected to the port 20 belongs to the same partition, and is, for example, “0”. The second information is a value indicating that another CPU 10 connected to the port 20 belongs to a different partition, and is “1”, for example.

マルチプレクサ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参照)。   When the first information “0” is set in the register 30 (see the “0” route in step S5 in FIG. 3), the multiplexer 25 switches the data path so as to select the CPU interconnect upper layer 23, and the port 20 Function as a CPU interconnect port (see step S6 in FIG. 3). On the other hand, when the second information “1” is set in the register 30 (see the “1” route in step S5 in FIG. 3), the multiplexer 25 sets the data path so as to select the PCIe-NTB port upper layer 24. The port 20 is switched to function as an NTB port (see step S7 in FIG. 3).

〔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との間で全てのメモリアクセスについてメモリ空間を共有するための通信が実行される。
[1-2] Basic Operation and Effect of First Embodiment Next, the basic operation of the server 1 having the above-described configuration will be described with reference to FIGS. 4 and 5.
Here, FIG. 4 is a block diagram showing a one-partition state of the server 1. In the state shown in FIG. 4, since the four CPUs 10A to 10D belong to the same partition, the system F / W 40 sets the first information “0” in all the registers 30 in the four CPUs 10A to 10D. Accordingly, the multiplexer 25 switches the data path so that the CPU interconnect upper layer 23 is selected, and all the ports 20 function as normal CPU interconnect ports. Accordingly, communication for sharing the memory space for all memory accesses is executed with other CPUs 10 belonging to the same partition.

また、図5は、サーバ1の2パーティション状態を示すブロック図である。図5に示す状態では、サーバ1が物理バーティショニング機能により2つの物理サーバに分割され、2つのCPU10A,10Bと2つのCPU10C,10Dとが、それぞれ異なるパーティション#0,#1に割り当てられている。   FIG. 5 is a block diagram showing a two-partition state of the server 1. In the state shown in FIG. 5, the server 1 is divided into two physical servers by the physical versioning function, and the two CPUs 10A and 10B and the two CPUs 10C and 10D are assigned to different partitions # 0 and # 1, respectively. .

この場合、同一パーティション#0に属するCPU10A,10Bを相互に接続するポート20に対応するレジスタ30には、システムF/W40により、第1情報“0”が設定される。これに伴い、マルチプレクサ25により、当該ポート20ではCPUインターコネクト上位層23が選択されるようデータのパスが切り換えられ、当該ポート20は、通常のCPUインターコネクトポートとして機能する。したがって、同一パーティションに属するCPU10A,10B間で全てのメモリアクセスについてメモリ空間を共有するための通信が実行される。同一パーティション#1に属するCPU10C,10Dについても上述と同様の設定・選択が行なわれ、CPU10C,10D間で全てのメモリアクセスについてメモリ空間を共有するための通信が実行される。   In this case, the first information “0” is set by the system F / W 40 in the register 30 corresponding to the port 20 that mutually connects the CPUs 10A and 10B belonging to the same partition # 0. Along with this, the multiplexer 25 switches the data path so that the CPU interconnect upper layer 23 is selected at the port 20, and the port 20 functions as a normal CPU interconnect port. Therefore, communication for sharing the memory space for all memory accesses is executed between the CPUs 10A and 10B belonging to the same partition. The CPU 10C and 10D belonging to the same partition # 1 are set and selected in the same manner as described above, and communication for sharing the memory space for all memory accesses is executed between the CPUs 10C and 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によって明示的に指示された通信が実行される。   On the other hand, the second information “1” is set by the system F / W 40 in the register 30 corresponding to the port 20 that interconnects the CPUs 10A and 10D belonging to different partitions # 0 and # 1. Accordingly, the multiplexer 25 switches the data path so that the PCIe-NTB port upper layer 24 is selected in the port 20, and the port 20 functions as an NTB port. In other words, the CPU interconnect port 20 that is normally unused can be used as the NTB port. Therefore, communication explicitly instructed by the processor core 60 constituting the CPU 10A or 10D is executed between the CPUs 10A and 10D belonging to different partitions # 0 and # 1 via the NTB port. The CPU 10B and 10C belonging to the different partitions # 0 and # 1 are set and selected in the same manner as described above, and the communication explicitly instructed by the processor core 60 constituting the CPU 10B or 10C is executed between the CPUs 10B and 10C. .

上述のように、PCIe-NTBポート上位層24を選択し未使用だったポート20をNTBポートとして機能させ通信を実行することで、ポート20と他のCPU10との間に通信パスが確立される。このように確立された通信パスは、メモリミラーリングパスおよびフェイルオーバーパスの少なくとも一方として用いることができる。   As described above, a communication path is established between the port 20 and another CPU 10 by selecting the PCIe-NTB port upper layer 24 and causing the unused port 20 to function as an NTB port to execute communication. . The communication path thus established can be used as at least one of a memory mirroring path and a failover path.

図14を参照しながら前述したように、サーバ100がパーティショニング機能で複数の物理サーバに分割されて使用されているときに、サーバ100中の2つのCPU101が別々のパーティション#0,#1に割り当てられている。この場合、通常、当該2つのCPU101を結ぶポイントツーポイントのCPUインターコネクト(ポート102およびライン103)は未使用となる。 As described above with reference to FIG. 14, when the servers 100 are used by being divided into a plurality of physical servers partitioning capabilities, two CPU101 separate partition # 0 in the server 100, # Assigned to 1. In this case, the point-to-point CPU interconnect (port 102 and line 103) that connects the two CPUs 101 is usually unused.

これに対し、第1実施形態のサーバ1によれば、従来、異なるパーティションに属するCPUどうしを接続する場合に未使用になっていたCPUインターコネクトポート20がPCIデバイスのNTBポートとして機能することになる。これにより、異なるパーティション#0,#1に属するCPU10A,10D間またはCPU10B,10C間に通信パスが確立され、異なるパーティション間でのメモリミラーリングパスやフェイルオーバーパスとして利用される。したがって、従来、使用していなかったCPUインターコネクト(ポート20およびライン11)を利用して、異なるパーティションに属するCPU10,10間の通信を効率よく実現することができる。   On the other hand, according to the server 1 of the first embodiment, the CPU interconnect port 20 that has conventionally been unused when connecting CPUs belonging to different partitions functions as an NTB port of the PCI device. . Thereby, a communication path is established between the CPUs 10A and 10D belonging to different partitions # 0 and # 1, or between the CPUs 10B and 10C, and is used as a memory mirroring path or a failover path between different partitions. Therefore, it is possible to efficiently realize communication between the CPUs 10 and 10 belonging to different partitions by using a CPU interconnect (port 20 and line 11) that has not been used conventionally.

上述したNTBポートは、前述したように、PCI仕様において、異なる2つのパーティション間やホスト間でデータを共有するための機能を果たすもので、メモリマップされた空間をポート内に有し、その空間を利用してパーティション間やホスト間でのデータのやりとりが可能なポートである。   As described above, the NTB port described above fulfills a function for sharing data between two different partitions or between hosts in the PCI specification, and has a memory-mapped space in the port. It is a port that can exchange data between partitions and between hosts using.

〔1−3〕PCIe-NTBポート上位層(第2通信部)の詳細構成および動作
ついで、このようなNTBポートを実現するPCIe-NTBポート上位層(第2通信部)24の詳細構成(内部構造)および動作について、図6〜図11を参照しながら説明する。
[1-3] Detailed Configuration and Operation of PCIe-NTB Port Upper Layer (Second Communication Unit) Next, detailed configuration of PCIe-NTB port upper layer (second communication unit) 24 for realizing such an NTB port (internal) Structure) and operation will be described with reference to FIGS.

図6は、PCIe-NTBポート上位層24の詳細構成を示すブロック図である。図6に示すように、PCIe-NTBポート上位層24は、CPU内部バスインターフェイス(I/F)241,PCIe-NTBトランザクション層242およびCPUインターコネクトデータリンクインターフェイス(I/F)243を有している。   FIG. 6 is a block diagram showing a detailed configuration of the PCIe-NTB port upper layer 24. As shown in FIG. 6, the PCIe-NTB port upper layer 24 includes a CPU internal bus interface (I / F) 241, a PCIe-NTB transaction layer 242, and a CPU interconnect data link interface (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側のキャッシュラインサイズのデータに分割/結合する機能を果たす。   The CPU internal bus I / F (first interface) 241 is connected to the processor core 60 via the CPU internal bus 50. The CPU internal bus I / F 241 performs cache protocol control and converts between data (DATA and CMD (command)) on the processor core 60 side and data conforming to PCIe use on the transaction layer 242 side. In other words, the CPU internal bus I / F 241 functions to divide / combine the cache line size data on the processor core 60 side into the PCIe payload size data on the transaction layer 242 side. The CPU internal bus I / F 241 functions to divide / combine PCIe payload size data on the transaction layer 242 side into cache line size data on the processor core 60 side.

なお、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へ送信される。   The CPU internal bus I / F 241 includes buffers 241a to 241d. The buffer 241a receives the command CMD (RX) from the CPU internal bus 50 (processor core 60), and the converted command is output from the buffer 241a to the transaction layer 242. Similarly, the buffer 241b receives the data DATA (RX) from the CPU internal bus 50 (processor core 60), and the converted data is output from the buffer 241b to the transaction layer 242. The buffer 241 c receives a command from the transaction layer 242, and the converted command CMD (TX) is transmitted from the buffer 241 c to the processor core 60 or the memory 70 via the CPU internal bus 50. Similarly, the buffer 241 d receives data from the transaction layer 242, and the converted data DATA (TX) is transmitted from the buffer 241 d to the processor core 60 or the memory 70 via the CPU internal bus 50.

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を参照しながら後述する。   The CPU interconnect data link I / F (second interface) 243 is connected to another CPU 10 via the multiplexer 25, the data link layer 22, the physical layer 21, and the CPU interconnect line 11. The CPU interconnect data link I / F 243 performs division / reconfiguration of TLP (Transaction Layer Packet) generated in the transaction layer 242. Since the packet length of the TLP and the maximum packet length defined by the CPU interconnect do not always match, the transaction layer 242 performs TLP division or combination as necessary. The packet division and encapsulation of TLP will be described later with reference to FIG. 11 in item [1-6].

なお、CPUインターコネクトデータリンクI/F243は、バッファ243a,243bを有している。バッファ243aは、トランザクション層242からのTLPを受信し、分割後または結合後のパケットは、バッファ243aからマルチプレクサ25,データリンク層22,物理層21およびCPUインターコネクトライン11を介して他のCPU10へ送信される。また、バッファ243bは、他のCPU10からのパケットを受信し、分割または結合によって得られたTLPは、バッファ243bからトランザクション層242へ送出される。   The CPU interconnect data link I / F 243 includes buffers 243a and 243b. The buffer 243a receives the TLP from the transaction layer 242, and the divided or combined packet is transmitted from the buffer 243a to the other CPU 10 via the multiplexer 25, the data link layer 22, the physical layer 21, and the CPU interconnect line 11. Is done. The buffer 243b receives a packet from another CPU 10, and the TLP obtained by the division or combination is sent from the buffer 243b to the transaction layer 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を有している。   The PCIe-NTB transaction layer 242 is disposed between the CPU internal bus I / F 241 and the CPU interconnect data link I / F 243, and performs TLP generation / disassembly and address conversion. Therefore, the transaction layer 242 includes a PCI configuration register 242a, a memory mapped I / O (MMIO) register 242b, an address conversion unit 242c, a TLP generation unit 242d, a TLP disassembly unit 242e, and an address conversion unit 242f. .

PCIコンフィグレーションレジスタ242aは、PCIe使用に準拠したレジスタセットである。   The PCI configuration register 242a is a register set conforming to the use of 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
The MMIO register 242b has the following six types of registers 242b-1 to 242b-6, which will be described later with reference to FIGS. 7, 9, and 10 in the items [1-4] and [1-5]. .
Base address register (BAR; address conversion register) 242b-1
Limit address register (LAR; address conversion register) 242b-2
Transmission doorbell register (transmission interrupt register) 242b-3
Reception doorbell register (reception interrupt register) 242b-4
Transmission scratch pad register (transmission exchange information register) 242b-5
Reception scratch pad register (reception exchange information register) 242b-6

アドレス変換部242cは、他のCPU10へ送信すべきデータについて、項目〔1−4〕において図7〜図9を参照しながら後述するごとく、プロセッサコア60からのコマンドおよびMMIOレジスタ242bの値に基づきアドレス変換を行なう。
TLP生成部242dは、アドレス変換部242cで得られた情報に基づき、他のCPU10へ送信すべきデータを含むTLPを生成し、CPUインターコネクトデータリンクI/F243へ出力する。
The address conversion unit 242c determines the data to be transmitted to the other CPU 10 based on the command from the processor core 60 and the value of the MMIO register 242b as will be described later with reference to FIGS. Perform address translation.
The TLP generation unit 242d generates a TLP including data to be transmitted to another CPU 10 based on the information obtained by the address conversion unit 242c, and outputs the TLP to the CPU interconnect data link I / F 243.

TLP解体部242eは、他のCPU10から受信したTLPを解体(ディスアセンブル)することによりアドレス情報および受信データを得て、アドレス情報をアドレス変換部242fへ出力する一方、受信データをCPU内部バスI/F241(バッファ241d)へ出力する。
アドレス変換部242fは、TLP解体部242eから受信したアドレス情報について、項目〔1−4〕において図7〜図9を参照しながら後述するごとく、MMIOレジスタ242bの値に基づきアドレス変換を行ない、変換結果をコマンドとしてCPU内部バスI/F241(バッファ241c)へ出力する。
The TLP disassembling unit 242e obtains address information and received data by disassembling (disassembling) the TLP received from another CPU 10, and outputs the address information to the address converting unit 242f, while receiving the received data in the CPU internal bus I / F241 (buffer 241d) for output.
The address converting unit 242f performs address conversion on the address information received from the TLP dismantling unit 242e based on the value of the MMIO register 242b as described later in the item [1-4] with reference to FIGS. The result is output as a command to the CPU internal bus I / F 241 (buffer 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インターコネクト)に準拠するパケットに変換する。
Here, the operation of the PCIe-NTB port upper layer 24 configured as described above will be briefly described.
When the PCIe-NTB port upper layer 24 transmits data to another CPU 10 using the port 20 as an NTB port, first, the CPU internal bus I / F 241 converts the data to the other CPU 10 into data conforming to the PCI specification. Convert. Then, the transaction layer 242 generates a TLP based on data from the CPU internal bus I / F 241. Thereafter, the CPU interconnect data link I / F 243 converts the TLP from the transaction layer 242 into a packet conforming to the communication specification (CPU interconnect) between the port 20 and the other CPU 10.

一方、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へのデータに変換する。   On the other hand, when the PCIe-NTB port upper layer 24 receives data from another CPU 10 using the port 20 as an NTB port, the CPU interconnect data link I / F 243 first converts a packet from the other CPU 10 into a TLP. . Then, the transaction layer 242 generates data conforming to the PCI specification based on the TLP from the CPU interconnect data link I / F 243. Thereafter, the CPU internal bus I / F 241 converts data from the transaction layer 242 into data for the processor core 60 or the memory (I / O device) 70.

〔1−4〕アドレス変換
次に、図7〜図9を参照しながら、PCIe-NTBトランザクション層242のアドレス変換部242c,242fによるアドレス変換機能について説明する。各物理パーティション#0,#1は別のメモリ空間を有するため、一般的にNTBポートは、アドレス変換機能が必要になる。アドレス変換機能は、PCIe-NTBトランザクション層242において、MMIOレジスタ242b(レジスタ242b−1,242b−2)の設定値に基づき、アドレス変換部242c,242fによって実現される。
[1-4] Address Conversion Next, the address conversion function by the address conversion units 242c and 242f of the PCIe-NTB transaction layer 242 will be described with reference to FIGS. Since each physical partition # 0, # 1 has a separate memory space, the NTB port generally requires an address translation function. The address conversion function is realized by the address conversion units 242c and 242f in the PCIe-NTB transaction layer 242 based on the set value of the MMIO register 242b (registers 242b-1 and 242b-2).

まず、図7を参照しながら、上記アドレス変換機能を用いて、パーティション#0のプロセッサコア60からパーティション#1のメモリ(I/O装置)70に対し書込データの転送(Write転送)を行なう場合の手順(A1)〜(A4)について説明する。なお、図7は、図6に示すトランザクション層242のアドレス変換部242c,242fによるアドレス変換機能を説明するブロック図である。図7では、パーティション#0に属するCPU10Aのプロセッサコア60からパーティション#1に属するCPU10Dのメモリ70への書込データの転送が示されている。   First, referring to FIG. 7, using the above address conversion function, write data is transferred from the processor core 60 of partition # 0 to the memory (I / O device) 70 of partition # 1 (Write transfer). The procedure (A1) to (A4) will be described. FIG. 7 is a block diagram illustrating an address conversion function by the address conversion units 242c and 242f of the transaction layer 242 shown in FIG. FIG. 7 shows transfer of write data from the processor core 60 of the CPU 10A belonging to the partition # 0 to the memory 70 of the CPU 10D belonging to the partition # 1.

(A1)送信側のパーティション#0のプロセッサコア60は、パーティション#1のメモリ70宛に送りたい書込データを、パーティション#0のNTBのBAR242b−1を宛先として書き込む。この時のアドレスをAとする。このアドレスAは、パーティション#0のメモリ空間に属するアドレスである。   (A1) The processor core 60 of the partition # 0 on the transmission side writes the write data to be sent to the memory 70 of the partition # 1 with the BAR 242b-1 of the NTB of the partition # 0 as the destination. The address at this time is A. This address A is an address belonging to the memory space of the partition # 0.

(A2)パーティション#0のPCIe-NTBポート上位層24におけるアドレス変換部242cは、書込アドレスが下限値と上限値との間の範囲内にあることを確認し、アドレス変換を行なう。このとき、BAR242b−1の設定値(下限値)をBとすると、アドレス変換部242cは、アドレスAが設定値B以上で且つLAR242b−2に設定された上限値以下であることを確認した上で、A−Bで示される値を変換後のアドレスとして出力する。変換後のアドレスA−Bは、CPUインターコネクトアドレス空間に属するアドレスである。   (A2) The address conversion unit 242c in the PCIe-NTB port upper layer 24 of the partition # 0 confirms that the write address is within the range between the lower limit value and the upper limit value, and performs address conversion. At this time, assuming that the set value (lower limit value) of BAR 242b-1 is B, the address conversion unit 242c confirms that the address A is not less than the set value B and not more than the upper limit value set in the LAR 242b-2. Then, the value indicated by AB is output as the converted address. The translated address AB is an address belonging to the CPU interconnect address space.

(A3)データを受け取ったパーティション#1のPCIe-NTBポート上位層24におけるアドレス変換部242fは、受信したデータのアドレスA−Bを、パーティション#1のメモリ空間のアドレスに変換する。このとき、パーティション#1のBAR242b−1の設定値(下限値;ターゲットアドレス(TA))をCとすると、変換後のアドレスはA−B+Cとなり、このアドレスA−B+Cは、パーティション#1のメモリ空間に属するアドレスである。   (A3) The address converter 242f in the PCIe-NTB port upper layer 24 of the partition # 1 that has received the data converts the address A-B of the received data into an address in the memory space of the partition # 1. At this time, if the setting value (lower limit; target address (TA)) of BAR 242b-1 of partition # 1 is C, the converted address is A−B + C, and this address A−B + C is the memory of partition # 1. An address belonging to a space.

(A4)パーティション#1のPCIe-NTBポート上位層24は、CPU内部バス50を介して、メモリ(I/O装置)70に対し、A−B+CをアドレスとしてDMA(Direct Memory Address)を実行する。   (A4) The PCIe-NTB port upper layer 24 of the partition # 1 performs DMA (Direct Memory Address) with respect to the memory (I / O device) 70 using the A-B + C as an address via the CPU internal bus 50. .

ついで、図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に対する読出アクセスが示されている。   Next, referring to FIG. 8 and FIG. 9, a read access (Read transfer) from the processor core 60 of the partition # 0 to the memory (I / O device) 70 of the partition # 1 is performed using the address conversion function. The procedures (B1) to (B6) will be described. 8 is a diagram showing the contents of the transaction ID (identification), and FIG. 9 is a diagram illustrating the tag conversion / inverse conversion function and the transaction ID conversion / inverse conversion function by the address conversion unit 242f of the transaction layer 242 shown in FIG. FIG. FIG. 9 shows a read access from the processor core 60 of the CPU 10A belonging to the partition # 0 to the memory 70 of the CPU 10D belonging to the partition # 1.

読出アクセス(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)およびタグの変換手順を説明する。   Also in the case of read access (Read transfer), address conversion for the read target address is performed in the same manner as the procedures (A1) to (A4) described above with reference to FIG. However, in the case of read access, read data is transferred from partition # 1 to partition # 0. The transaction ID of the read data has a one-to-one correspondence with the transaction ID of the read request so that the processor core 60 of the requesting partition # 0 can identify which request is the response from the partition # 1. It is associated. As shown in FIG. 8, the transaction ID includes a requester ID and a tag. The requester ID (RID) is read request source information (ID of the processor core 60) including a bus number, a device number, and a function number. The tag is a sequential number generated for each request by the processor core 60, for example. The requester ID (RID) and tag conversion procedure will be described below with reference to FIG. 9 and procedures (B1) to (B6).

(B1)送信側のパーティション#0のプロセッサコア60は、自身のリクエスタIDで読出要求をパーティション#0のPCIe-NTBポート上位層24に要求する。   (B1) The processor core 60 of the partition # 0 on the transmission side issues a read request to the PCIe-NTB port upper layer 24 of the partition # 0 with its own requester ID.

(B2)読出要求を受け取ったパーティション#0のPCIe-NTBポート上位層24は、自身が受け取っている読出要求を一意に識別できるように、アドレス変換部242cにより、受け取ったトランザクションIDのうちタグを付け替えるタグ変換を行なう。これにより、PCIe-NTBポート上位層24は、タグのみで、読出要求と読出データとの対応を一意に認識できる。このとき、タグ変換前の元のトランザクションIDとタグ変換後のタグの値とは対応付けられて第1テーブル(図示略)に記憶される。この後、パーティション#0のPCIe-NTBポート上位層24は、タグ変換後のトランザクションIDを含む読出要求を、パーティション#1のPCIe-NTBポート上位層24に転送する。   (B2) The PCIe-NTB port upper layer 24 of the partition # 0 that has received the read request uses the address conversion unit 242c to set a tag of the received transaction ID so that the read request received by the partition # 0 can be uniquely identified. Perform tag conversion to be replaced. Thereby, the PCIe-NTB port upper layer 24 can uniquely recognize the correspondence between the read request and the read data by using only the tag. At this time, the original transaction ID before tag conversion and the tag value after tag conversion are associated and stored in the first table (not shown). Thereafter, the PCIe-NTB port upper layer 24 of the partition # 0 transfers the read request including the transaction ID after the tag conversion to the PCIe-NTB port upper layer 24 of the partition # 1.

(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テーブル(図示略)に記憶される。   (B3) The address conversion unit 242f in the PCIe-NTB port upper layer 24 of the partition # 1 that has received the read request partitions the requester ID (the ID of the processor core 60 of the partition # 0) among the transaction IDs of the received read request. RID conversion to be replaced with the requester ID on the # 1 side is performed. The requester ID on the partition # 1 side is used when a response (read data / completion notification) from the memory 70 to the read request returns to the PCIe-NTB port upper layer 24 of the partition # 1. The At this time, the transaction ID before RID conversion is stored in the second table (not shown) in the PCIe-NTB port upper layer 24 of the partition # 1.

(B4)パーティション#1のメモリ(I/O装置)70からPCIe-NTBポート上位層24へ、読出データ(完了通知)が応答される。   (B4) Read data (completion notice) is returned from the memory (I / O device) 70 of the partition # 1 to the PCIe-NTB port upper layer 24.

(B5)パーティション#1のPCIe-NTBポート上位層24におけるアドレス変換部242cは、タグをキーにして上記第2テーブルにおけるRID変換前のトランザクションIDを検索し、受け取った読出データのリクエスタIDを元のリクエスタIDに付け替えるRID逆変換を行なう。この後、PCIe-NTBポート上位層24は、RID逆変換後のトランザクションIDを含む読出データを、パーティション#0のPCIe-NTBポート上位層24に転送する。   (B5) The address conversion unit 242c in the PCIe-NTB port upper layer 24 of the partition # 1 searches for the transaction ID before RID conversion in the second table using the tag as a key, and based on the requester ID of the received read data. RID reverse conversion is performed to replace the requester ID. Thereafter, the PCIe-NTB port upper layer 24 transfers the read data including the transaction ID after RID reverse conversion to the PCIe-NTB port upper layer 24 of the partition # 0.

(B6)パーティション#0のPCIe-NTBポート上位層24におけるアドレス変換部242fは、受け取った読出データのトランザクションIDに含まれるタグをキーにして上記第1テーブルを検索し、トランザクションIDのタグを元のタグに付け替えるタグ逆変換を行なう。この後、PCIe-NTBポート上位層24は、タグ逆変換後のトランザクションIDを含む読出データを、CPU内部バス50を介しプロセッサコア60に転送する。   (B6) The address conversion unit 242f in the PCIe-NTB port upper layer 24 of the partition # 0 searches the first table using the tag included in the transaction ID of the received read data as a key, and based on the tag of the transaction ID Perform tag reverse conversion to replace the tag. Thereafter, the PCIe-NTB port upper layer 24 transfers the read data including the transaction ID after the tag reverse conversion to the processor core 60 via the CPU internal bus 50.

〔1−5〕ドアベル機能およびスクラッチパッド機能
次に、図10を参照しながら、PCIe-NTBトランザクション層242によるドアベル機能およびスクラッチパッド機能について説明する。なお、図10は、図6に示すトランザクション層242によるドアベル機能およびスクラッチパッド機能を説明するブロック図である。
[1-5] Doorbell Function and Scratch Pad Function Next, the doorbell function and the scratch pad function by the PCIe-NTB transaction layer 242 will be described with reference to FIG. FIG. 10 is a block diagram for explaining a doorbell function and a scratch pad function by the transaction layer 242 shown in FIG.

異なるパーティション#0,#1に属するCPU10(例えばCPU10A,10D)どうしの通信のため、一般的に、NTBポート(PCIe-NTBトランザクション層242)は、ドアベル(Doorbell)機能およびスクラッチパッド(Scratchpad)機能を備えている。   In general, an NTB port (PCIe-NTB transaction layer 242) has a doorbell function and a scratchpad function for communication between CPUs 10 (for example, CPUs 10A and 10D) belonging to different partitions # 0 and # 1. It has.

〔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)を通知する。
[1-5-1] Doorbell Function The doorbell function is a function for raising an interrupt (INT) from the processor core 60 of one partition # 0 or # 1 to the processor core 60 of the other partition # 1 or # 0. It is. The processor core 60 on the transmission side executes writing to the transmission doorbell register 242b-3 of the PCIe-NTB transaction layer 242 on the transmission side by PIO (Programmed I / O). Upon receiving this write, the PCIe-NTB transaction layer 242 on the transmission side generates a message packet (Msg; TLP) and transmits it to the PCIe-NTB transaction layer 242 on the reception side. The message packet at this time is uniquely defined using a mechanism of Vendor Defined Message of the PCIe specification. When receiving the message packet related to the doorbell function, the PCIe-NTB transaction layer 242 on the receiving side that has received the message packet determines that the content received by the message packet is a doorbell. Then, the PCIe-NTB transaction layer 242 on the reception side executes writing to the reception doorbell register 242b-4, and notifies the reception-side processor core 60 of an interrupt (INT).

つまり、PCIe-NTBトランザクション層242(NTBポート)は、プロセッサコア60から他のCPU10に対する割込み指示を送信用ドアベルレジスタ242b−3に書き込まれると、割込みを指示するTLPを生成し他のCPUへ転送する。一方、PCIe-NTBトランザクション層242(NTBポート)は、他のCPU10からプロセッサコア60に対する割込み指示を受信用ドアベルレジスタ242b−4に書き込まれると、プロセッサコア60に対する割込み指示を行なう。   That is, the PCIe-NTB transaction layer 242 (NTB port) generates a TLP indicating an interrupt and transfers it to another CPU when an interrupt instruction for the other CPU 10 is written from the processor core 60 to the transmission doorbell register 242b-3. To do. On the other hand, the PCIe-NTB transaction layer 242 (NTB port) issues an interrupt instruction to the processor core 60 when an interrupt instruction for the processor core 60 from another CPU 10 is written to the reception doorbell register 242b-4.

〔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からの交換情報を知ることが可能になっている。
[1-5-2] Scratch Pad Function The scratch pad function is a function used by the processor cores 60 of the partitions # 0 and # 1 to exchange information of about several bytes. The sending processor core 60 writes the exchange information in the sending scratch pad register 242b-5 of the sending PCIe-NTB transaction layer 242 by PIO. The transmitting side PCIe-NTB transaction layer 242 in which the exchange information is written generates a message packet (Msg; TLP) and transmits it to the receiving side PCIe-NTB transaction layer 242. The message packet at this time is uniquely defined using a mechanism of Vendor Defined Message of the PCIe specification. Upon receiving the message packet related to the scratch pad function, the receiving PCIe-NTB transaction layer 242 that has received the message packet determines that the content received by the message packet is a scratch pad. Then, the PCIe-NTB transaction layer 242 on the receiving side reflects the contents (exchange information) of the message packet in the receiving scratch pad register 242b-6. The processor core 60 on the receiving side can know the exchange information from the processor core 60 on the transmitting side by reading the contents of the receiving scratch pad register 242b-6 by PIO.

つまり、PCIe-NTBトランザクション層242(NTBポート)は、プロセッサコア60から他のCPU10と交換すべき交換情報をトランザクション層242の送信用スクラッチパッドレジスタ242b−5に書き込まれると、当該交換情報を含むTLPを生成し他のCPU10へ転送する。一方、PCIe-NTBトランザクション層242(NTBポート)は、他のCPU10からプロセッサコア60と交換すべき交換情報を受信用スクラッチパッドレジスタ242b−6に書き込まれると、プロセッサコア60からの問合せ(PIO)に応じて、受信用スクラッチパッドレジスタ242b−6の交換情報をプロセッサコア60に通知する。   That is, the PCIe-NTB transaction layer 242 (NTB port) includes the exchange information when the exchange information to be exchanged with the other CPU 10 is written from the processor core 60 to the transmission scratchpad register 242b-5 of the transaction layer 242. A TLP is generated and transferred to another CPU 10. On the other hand, the PCIe-NTB transaction layer 242 (NTB port), when exchange information to be exchanged with the processor core 60 from another CPU 10 is written in the receiving scratchpad register 242b-6, an inquiry (PIO) from the processor core 60 In response to this, the processor core 60 is notified of the exchange information of the scratch pad register 242b-6 for reception.

〔1−6〕TLPの分割およびカプセル化
次に、図11を参照しながら、CPUインターコネクトデータリンクI/F(第2インターフェイス)243によるパケット分割およびカプセル化について説明する。なお、図11は、図6に示すCPUインターコネクトデータリンクI/F243によるパケット分割およびカプセル化を説明する図である。
[1-6] TLP Division and Encapsulation Next, packet division and encapsulation by the CPU interconnect data link I / F (second interface) 243 will be described with reference to FIG. FIG. 11 is a diagram for explaining packet division and encapsulation by the CPU interconnect data link I / F 243 shown in FIG.

送信側NTBポートのCPUインターコネクトデータリンクI/F243では、以下のような処理が行なわれる。まず、CPUインターコネクトデータリンクI/F243は、上流のPCIe-NTBトランザクション層242からPCIeのTLPを受信する。TLPのフォーマットは、図11の上段に示すとおりである。CPUインターコネクトデータリンクI/F243は、受信したTLPをCPUインターコネクトのパケットサイズ(パケット長)に合わせて分割したり、パディング(padding)を行なったりして、CPUインターコネクトのパケットサイズに揃えた一以上のパケットを生成する。   The CPU interconnect data link I / F 243 of the transmitting NTB port performs the following processing. First, the CPU interconnect data link I / F 243 receives the PCIe TLP from the upstream PCIe-NTB transaction layer 242. The format of TLP is as shown in the upper part of FIG. The CPU interconnect data link I / F 243 divides the received TLP according to the packet size (packet length) of the CPU interconnect, or performs padding, and performs one or more matching to the packet size of the CPU interconnect. Generate a packet.

図11では、受信したTLPがCPUインターコネクトのパケットサイズよりも大きい場合の、パケット分割およびカプセル化が示されている。つまり、まず、CPUインターコネクトデータリンクI/F243は、図11の上段に示すTLPを、図11の中段に示すように、2つのパケットに分割する。一方(左側)のパケットのサイズは、CPUインターコネクトのパケットサイズと同じである。しかし、他方(右側)のパケットのサイズは、CPUインターコネクトのパケットサイズよりも小さいため、他方のパケットに対しては、図11の中段の右側に示すごとく、そのサイズがCPUインターコネクトのパケットサイズと同じになるよう、パディングが行なわれている。   FIG. 11 shows packet division and encapsulation when the received TLP is larger than the packet size of the CPU interconnect. That is, first, the CPU interconnect data link I / F 243 divides the TLP shown in the upper part of FIG. 11 into two packets as shown in the middle part of FIG. The size of one (left side) packet is the same as the packet size of the CPU interconnect. However, since the size of the other (right side) packet is smaller than the packet size of the CPU interconnect, the size of the other packet is the same as the packet size of the CPU interconnect as shown on the right side in the middle of FIG. Padding is performed so that

さらに、図11に示す例では、CPUインターコネクトデータリンクI/F243は、2つに分けられたパケットそれぞれの前後に、同図の下段に示すように、CPUインターコネクトのデータリンク層のヘッダ(Haeder)およびCRC(Cyclic Redundancy Check)を付加する。これにより、各パケットは、カプセル化される。一方、受信側NTBポートのCPUインターコネクトデータリンクI/F243は、上述した送信側NTBポートでのパケット分割およびカプセル化のプロセスとは逆のプロセスで、データリンク層のパケットからPCIeのTLPを再構築する。   Further, in the example shown in FIG. 11, the CPU interconnect data link I / F 243 has a header (Haeder) of the data link layer of the CPU interconnect before and after each of the divided packets as shown in the lower part of FIG. And CRC (Cyclic Redundancy Check) is added. Thereby, each packet is encapsulated. On the other hand, the CPU interconnect data link I / F 243 of the receiving NTB port reconstructs the PCIe TLP from the data link layer packet in a process reverse to the packet splitting and encapsulation process of the transmitting NTB port described above. To do.

〔2〕第2実施形態の情報処理装置(サーバ)
次に、図12および図13を参照しながら、第2実施形態としての情報処理装置(サーバ)1′の構成について説明する。なお、図12は、第2実施形態のサーバ1′の要部構成を示すブロック図、図13は、図12に示すPCIe-NTBポート上位層(第2通信部)24′の詳細構成を示すブロック図である。図中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
[2] Information processing apparatus (server) of the second embodiment
Next, the configuration of the information processing apparatus (server) 1 ′ according to the second embodiment will be described with reference to FIGS. FIG. 12 is a block diagram showing the main configuration of the server 1 ′ of the second embodiment, and FIG. 13 shows the detailed configuration of the PCIe-NTB port upper layer (second communication unit) 24 ′ shown in FIG. It is a block diagram. In the figure, the same reference numerals as those already described indicate the same or substantially the same parts, and the description thereof will be omitted.

第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と共用する形態とすることができる。   The CPU 10 in the server 1 ′ of the second embodiment has a PCIe port 81 as shown in FIG. When the CPU 10 has the PCIe port 81 as described above, the CPU 10 includes a PCIe root complex 80 between the CPU internal bus 50 and the PCIe port 81. In this case, the CPU internal bus I / F 241 according to the first embodiment may be mounted in the PCIe route complex 80 and shared with other PCIe ports 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と同様に備えられる。
That is, in the second embodiment, as shown in FIG. 12, the connection destination on the upstream side of the PCIe-NTB port upper layer 24 ′ is not the CPU internal bus 50 but the PCIe root complex 80. It is different from the form (the PCIe-NTB port upper layer 24).
In the second embodiment, the PCIe-NTB port upper layer 24 'is connected to the PCIe route complex 80, as shown in FIG. 12, and therefore, as shown in FIG. The block of the bus I / F 241 is not necessary. Other blocks (the PCIe-NTB transaction layer 242 and the CPU interconnect data link I / F 243) are the same as the PCIe-NTB port upper layer 24 of the first embodiment in the PCIe-NTB port upper layer 24 'of the second embodiment. Similarly provided.

このように、第2実施形態のサーバ1′では、CPU10がPCIeポート81およびPCIeルートコンプレクス80を有する場合、PCIeルートコンプレクス80によって、第1実施形態におけるCPU内部バスI/F(第1インターフェイス)241の機能が実現される。したがって、第2実施形態のサーバ1′によれば、より簡素な構成で、第1実施形態と同様の作用効果を得ることができる。   Thus, in the server 1 ′ of the second embodiment, when the CPU 10 has the PCIe port 81 and the PCIe route complex 80, the CPU internal bus I / F (first interface) in the first embodiment is set by the PCIe route complex 80. The function 241 is realized. Therefore, according to server 1 'of 2nd Embodiment, the effect similar to 1st Embodiment can be acquired with a simpler structure.

〔3〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、上述した実施形態では、一つのサーバ1に4つのCPU10A〜10Dを備えた場合について説明したが、本発明は、これに限定されるものではない。
[3] Others While preferred embodiments of the present invention have been described in detail above, the present invention is not limited to such specific embodiments, and various modifications and changes can be made within the scope of the present invention. It can be changed and implemented.
In addition, although embodiment mentioned above demonstrated the case where four CPU10A-10D was provided in the one server 1, this invention is not limited to this.

上述したCPUインターコネクト上位層(第1通信部)23,PCIe-NTBポート上位層(第2通信部)24,24′,マルチプレクサ(選択部)25およびシステムF/W(設定部)40を含むサーバ1,1′の各種機能の全部もしくは一部は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のプログラムを実行することによって実現される。   Server including the above-described CPU interconnect upper layer (first communication unit) 23, PCIe-NTB port upper layer (second communication unit) 24, 24 ', multiplexer (selection unit) 25, and system F / W (setting unit) 40 All or some of the various functions 1 and 1 'are realized by a computer (including a CPU, an information processing apparatus, and various terminals) executing a predetermined program.

そのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。   The program is, for example, a flexible disk, CD (CD-ROM, CD-R, CD-RW, etc.), DVD (DVD-ROM, DVD-RAM, DVD-R, DVD-RW, DVD + R, DVD + RW, etc.), Blu-ray Disc And the like recorded in a computer-readable recording medium. In this case, the computer reads the program from the recording medium, transfers it to the internal storage device or the external storage device, and uses it.

ここで、コンピュータとは、ハードウエアと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のいずれか一項に記載の情報処理装置の制御方法。
Here, the computer is a concept including hardware and an OS (operating system), and means hardware operating under the control of the OS. Further, when the OS is unnecessary and the hardware is operated by the application program alone, the hardware itself corresponds to the computer. The hardware includes at least a microprocessor such as a CPU and means for reading a computer program recorded on a recording medium. The program includes a program code for causing the computer as described above to realize the various functions of the servers 1 and 1 'described above. Also, some of the functions may be realized by the OS instead of the application program.
[4] Notes
Regarding the embodiments including the above embodiments, the following additional notes are disclosed.
(Appendix 1)
A plurality of processing units;
A setting unit configured to perform settings in accordance with a partition configuration for the plurality of processing units,
Each of the plurality of processing units has a port connected to another processing unit and communicating with the other processing unit,
The port is
A first communication unit for communicating with a processing unit belonging to the same partition as the processing unit to which the port belongs;
A second communication unit for communicating with a processing unit belonging to a different partition from the processing unit to which the port belongs;
A selection unit that selects one of the first communication unit and the second communication unit according to the setting by the setting unit, and causes the selected communication unit to execute communication with the other processing unit; An information processing apparatus comprising:
(Appendix 2)
Each of the plurality of processing units is
The setting unit further includes a register configured to set first information indicating that the other processing unit belongs to the same partition or second information indicating that the other processing unit belongs to the different partition. And
The selection unit selects the first communication unit when the first information is set in the register, and selects the second communication unit when the second information is set in the register. The information processing apparatus according to appendix 1, wherein:
(Appendix 3)
The first communication unit performs communication for sharing the memory space for all memory accesses with the other processing unit belonging to the same partition. The information processing apparatus described.
(Appendix 4)
The second communication unit performs communication explicitly instructed by the processor core forming the processing unit to which the port belongs with the other processing unit belonging to the different partition. The information processing apparatus according to any one of 1 to appendix 3.
(Appendix 5)
The information processing apparatus according to appendix 4, wherein the port functions as a non-transparent bridge (NTB) port of a peripheral component interconnect (PCI) device when the second communication unit performs communication. .
(Appendix 6)
The second communication unit is
A first interface connected to the processor core;
A second interface connected to the other processing unit;
An NTB transaction layer disposed between the first interface unit and the second interface;
When the second communication unit uses the port as the NTB port to transmit data to the other processing unit, the first interface converts the data to the other processing unit into data conforming to the PCI specification. The NTB transaction layer generates a TLP (Transaction Layer Packet) based on the data from the first interface, and the second interface converts the TLP from the NTB transaction layer into the port and the other processing unit. While converting the packet to comply with the communication specifications between
When the second communication unit uses the port as the NTB port to receive data from the other processing unit, the second interface converts a packet from the other processing unit into a TLP, and the NTB transaction layer Generates data conforming to the PCI specification based on the TLP from the second interface, and the first interface converts the data from the NTB transaction layer into data to the processor core or memory. The information processing apparatus according to appendix 5.
(Appendix 7)
Each of the plurality of processing units has a PCI port and a route complex,
The information processing apparatus according to appendix 6, wherein the first interface of the second communication unit is configured by the route complex.
(Appendix 8)
The second communication unit is
When an interrupt instruction from the processor core to the other processing unit is written in the transmission interrupt register of the NTB transaction layer, a TLP instructing an interrupt is generated and transferred to the other processing unit.
The information according to appendix 6 or appendix 7, wherein an interrupt instruction is issued to the processor core when an interrupt instruction for the processor core is written from the other processing unit to the reception interrupt register of the NTB transaction layer. Processing equipment.
(Appendix 9)
The second communication unit is
When the exchange information to be exchanged with the other processing unit is written from the processor core to the exchange information register for transmission of the NTB transaction layer, a TLP including the exchange information is generated and transferred to the other processing unit.
When the exchange information to be exchanged with the processor core is written from the other processing unit to the reception exchange information register of the NTB transaction layer, the exchange information of the reception exchange information register is received in response to an inquiry from the processor core. The information processing apparatus according to any one of appendix 6 to appendix 8, wherein the processor core is notified.
(Appendix 10)
The path established between the port and the other processing unit when the second communication unit performs communication functions as at least one of a memory mirroring path and a failover path. The information processing apparatus according to any one of 1 to 9.
(Appendix 11)
In an information processing apparatus including a plurality of processing units connected to another processing unit and having a port for communicating with the other processing unit, a control method for setting the plurality of processing units according to a partition configuration There,
In the port, a first communication unit that communicates with a processing unit that belongs to the same partition as the processing unit to which the port belongs, and a second communication unit that communicates with a processing unit that belongs to a partition different from the processing unit to which the port belongs And comprising
An information processing apparatus comprising: selecting one of the first communication unit and the second communication unit according to the setting, and causing the selected communication unit to communicate with the other processing unit. Control method.
(Appendix 12)
Each of the plurality of processing units is set with first information indicating that the other processing unit belongs to the same partition or second information indicating that the other processing unit belongs to the different partition. With a register
When the first information is set in the register, the first communication unit is selected, and when the second information is set in the register, the second communication unit is selected. The control method of the information processing apparatus according to appendix 11.
(Appendix 13)
The supplementary note 11 or the supplementary note 12 is characterized in that the first communication unit performs communication for sharing the memory space for all memory accesses with the other processing unit belonging to the same partition. A control method of the information processing apparatus described.
(Appendix 14)
The second communication unit is caused to execute communication explicitly instructed by a processor core constituting the processing unit to which the port belongs to the other processing unit belonging to the different partition. The control method of the information processing apparatus according to any one of 11 to appendix 13.
(Appendix 15)
15. The information processing apparatus according to appendix 14, wherein the second communication unit causes the port to function as an NTB (Non-Transparent Bridge) port of a PCI (Peripheral Components Interconnect) device by performing communication. Control method.
(Appendix 16)
Note that the second communication unit causes communication to cause a path established between the port and the other processing unit to function as at least one of a memory mirroring path and a failover path. The control method of the information processing apparatus according to any one of 11 to appendix 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 ネットワーク
1,1 'Information processing device (server)
10, 10A to 10D CPU (processing unit)
11 CPU interconnect line 20 CPU interconnect port (port, NTB port)
21 Physical layer 22 Data link layer 23 CPU interconnect upper layer (first communication unit)
24, 24 'PCIe-NTB port upper layer (second communication unit)
241 CPU internal bus interface (first interface)
241a to 241d buffer 242 PCIe-NTB transaction layer (NTB transaction layer)
242a PCI configuration register 242b Memory mapped I / O (MMIO) register 242b-1 Base address register (BAR; register for address conversion)
242b-2 Limit address register (LAR; register for address conversion)
242b-3 Transmission doorbell register (transmission interrupt register)
242b-4 Reception doorbell register (Reception interrupt register)
242b-5 Scratch pad register for transmission (exchange information register for transmission)
242b-6 Receive Scratch Pad Register (Receive Exchange Information Register)
242c Address conversion unit 242d TLP generation unit 242e TLP disassembly unit 242f Address conversion unit 243 CPU interconnect data link interface (second interface)
243a, 243b buffer 25 multiplexer (selection unit)
30 Port mode selection register (register)
40 System firmware (setting part)
50 CPU internal bus 60 Processor core 70 Memory or I / O device 80 PCIe route complex (first interface)
81 PCIe port 90 network

Claims (8)

複数の処理部と、
前記複数の処理部に対しパーティション構成に則した設定を行なう設定部と、を備え、
前記複数の処理部のそれぞれは、他の処理部に接続され前記他の処理部との通信を行なうポートを有し、
前記ポートは、
前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第1通信部と、
前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第2通信部と、
前記設定部による前記設定に応じて前記第1通信部と前記第2通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させる選択部と、を有することを特徴とする情報処理装置。
A plurality of processing units;
A setting unit configured to perform settings in accordance with a partition configuration for the plurality of processing units,
Each of the plurality of processing units has a port connected to another processing unit and communicating with the other processing unit,
The port is
A first communication unit for communicating with a processing unit belonging to the same partition as the processing unit to which the port belongs;
A second communication unit for communicating with a processing unit belonging to a different partition from the processing unit to which the port belongs;
A selection unit that selects one of the first communication unit and the second communication unit according to the setting by the setting unit, and causes the selected communication unit to execute communication with the other processing unit; An information processing apparatus comprising:
前記複数の処理部のそれぞれは、
前記設定部により、前記他の処理部が前記同一パーティションに属することを示す第1情報、または、前記他の処理部が前記異なるパーティションに属することを示す第2情報を設定されるレジスタをさらに有し、
前記選択部は、前記第1情報が前記レジスタに設定されている場合、前記第1通信部を選択する一方、前記第2情報が前記レジスタに設定されている場合、前記第2通信部を選択することを特徴とする、請求項1に記載の情報処理装置。
Each of the plurality of processing units is
The setting unit further includes a register configured to set first information indicating that the other processing unit belongs to the same partition or second information indicating that the other processing unit belongs to the different partition. And
The selection unit selects the first communication unit when the first information is set in the register, and selects the second communication unit when the second information is set in the register. The information processing apparatus according to claim 1, wherein:
前記第1通信部は、前記同一パーティションに属する前記他の処理部との間で、全てのメモリアクセスについてメモリ空間を共有するための通信を実行することを特徴とする、請求項1または請求項2に記載の情報処理装置。   The said 1st communication part performs communication for sharing a memory space with respect to all the memory accesses between the said other process parts which belong to the said same partition, The Claim 1 or Claim characterized by the above-mentioned. 2. The information processing apparatus according to 2. 前記第2通信部は、前記異なるパーティションに属する前記他の処理部との間で、前記ポートの属する処理部を成すプロセッサコアによって明示的に指示された通信を実行することを特徴とする、請求項1〜請求項3のいずれか一項に記載の情報処理装置。   The second communication unit performs communication explicitly instructed by a processor core forming a processing unit to which the port belongs to the other processing unit belonging to the different partition. The information processing apparatus according to any one of claims 1 to 3. 前記第2通信部が通信を実行することにより、前記ポートは、PCI(Peripheral Components Interconnect)デバイスのNTB(Non-Transparent Bridge)ポートとして機能することを特徴とする、請求項4に記載の情報処理装置。   5. The information processing according to claim 4, wherein when the second communication unit performs communication, the port functions as a non-transparent bridge (NTB) port of a peripheral component interconnect (PCI) device. apparatus. 前記第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に記載の情報処理装置。
The second communication unit is
A first interface connected to the processor core;
A second interface connected to the other processing unit;
An NTB transaction layer disposed between the first interface unit and the second interface;
When the second communication unit uses the port as the NTB port to transmit data to the other processing unit, the first interface converts the data to the other processing unit into data conforming to the PCI specification. The NTB transaction layer generates a TLP (Transaction Layer Packet) based on the data from the first interface, and the second interface converts the TLP from the NTB transaction layer into the port and the other processing unit. While converting the packet to comply with the communication specifications between
When the second communication unit uses the port as the NTB port to receive data from the other processing unit, the second interface converts a packet from the other processing unit into a TLP, and the NTB transaction layer Generates data conforming to the PCI specification based on the TLP from the second interface, and the first interface converts the data from the NTB transaction layer into data to the processor core or memory. The information processing apparatus according to claim 5.
前記複数の処理部のそれぞれは、PCIポートおよびルートコンプレクスを有し、
前記第2通信部の前記第1インターフェイスは、前記ルートコンプレクスによって構成されることを特徴とする、請求項6に記載の情報処理装置。
Each of the plurality of processing units has a PCI port and a route complex,
Wherein the first interface of the second communication unit may be constituted by the root complex, information processing equipment according to claim 6.
他の処理部に接続され前記他の処理部との通信を行なうポートを有する複数の処理部を備えた情報処理装置において、前記複数の処理部に対しパーティション構成に則した設定を行なう制御方法であって、
前記ポートにおいて、前記ポートの属する処理部と同一パーティションに属する処理部との通信を行なう第1通信部と、前記ポートの属する処理部と異なるパーティションに属する処理部との通信を行なう第2通信部と、を備え、
前記設定に応じて前記第1通信部と前記第2通信部とのいずれか一方を選択し、選択した通信部に前記他の処理部との通信を実行させることを特徴とする情報処理装置の制御方法。
In an information processing apparatus including a plurality of processing units connected to another processing unit and having a port for communicating with the other processing unit, a control method for setting the plurality of processing units according to a partition configuration There,
In the port, a first communication unit that communicates with a processing unit that belongs to the same partition as the processing unit to which the port belongs, and a second communication unit that communicates with a processing unit that belongs to a partition different from the processing unit to which the port belongs And comprising
An information processing apparatus comprising: selecting one of the first communication unit and the second communication unit according to the setting, and causing the selected communication unit to communicate with the other processing unit. control how.
JP2014530424A 2012-08-17 2012-08-17 Information processing apparatus and control method of information processing apparatus Expired - Fee Related JP5930046B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/070896 WO2014027416A1 (en) 2012-08-17 2012-08-17 Information processing device and method for controlling information processing device

Publications (2)

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

Family

ID=50685479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014530424A Expired - Fee Related JP5930046B2 (en) 2012-08-17 2012-08-17 Information processing apparatus and control method of information processing apparatus

Country Status (3)

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

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6550693B2 (en) * 2014-06-25 2019-07-31 日本電気株式会社 IO device management device, IO device management method, and program
CN105653481B (en) * 2014-11-14 2019-03-26 华为技术有限公司 Data transmission method and device based on PCIe bus
CN105022715A (en) * 2015-07-08 2015-11-04 浪潮(北京)电子信息产业有限公司 Server backplane interconnection method and system
TWI597953B (en) * 2015-11-25 2017-09-01 財團法人工業技術研究院 Pcie network system with failover capability and operation method thereof
RU2017118316A (en) * 2015-12-17 2018-11-26 Хуавэй Текнолоджиз Ко., Лтд. METHOD FOR PROCESSING RECORD REQUEST, 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 (en) * 2017-04-28 2018-11-01 株式会社日立製作所 Storage system
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 (en) * 1996-02-22 1997-09-05 Hitachi Ltd Data transfer method of parallel computer
JPH09274598A (en) * 1996-04-08 1997-10-21 Hitachi Ltd Input/output channel extending method for information processor
JP2003030162A (en) * 2001-05-17 2003-01-31 Fujitsu Ltd Computer system
JP2003076671A (en) * 2001-06-29 2003-03-14 Fujitsu Ltd Fault containment and error handling in partitioned system with shared resources
JP2006040285A (en) * 2004-07-29 2006-02-09 Hewlett-Packard Development Co Lp Communication among partitioned devices
JP2006209487A (en) * 2005-01-28 2006-08-10 Hitachi Ltd Computer system, computer, storage device, and management terminal
JP2008097276A (en) * 2006-10-11 2008-04-24 Hitachi Ltd Fault recovery method, computing machine system, and management server
JP2009151767A (en) * 2007-12-03 2009-07-09 Internatl Business Mach Corp <Ibm> Method, computer program and data processing system for managing input-output(i/o) virtualization in data processing system
WO2011045919A1 (en) * 2009-10-15 2011-04-21 日本電気株式会社 Distributed system, communication means selecting method and communication means selecting program
JP2011221945A (en) * 2010-04-14 2011-11-04 Hitachi Ltd Data transfer device, computer system and memory copy device

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 (en) * 1996-02-22 1997-09-05 Hitachi Ltd Data transfer method of parallel computer
JPH09274598A (en) * 1996-04-08 1997-10-21 Hitachi Ltd Input/output channel extending method for information processor
JP2003030162A (en) * 2001-05-17 2003-01-31 Fujitsu Ltd Computer system
JP2003076671A (en) * 2001-06-29 2003-03-14 Fujitsu Ltd Fault containment and error handling in partitioned system with shared resources
JP2006040285A (en) * 2004-07-29 2006-02-09 Hewlett-Packard Development Co Lp Communication among partitioned devices
JP2006209487A (en) * 2005-01-28 2006-08-10 Hitachi Ltd Computer system, computer, storage device, and management terminal
JP2008097276A (en) * 2006-10-11 2008-04-24 Hitachi Ltd Fault recovery method, computing machine system, and management server
JP2009151767A (en) * 2007-12-03 2009-07-09 Internatl Business Mach Corp <Ibm> Method, computer program and data processing system for managing input-output(i/o) virtualization in data processing system
WO2011045919A1 (en) * 2009-10-15 2011-04-21 日本電気株式会社 Distributed system, communication means selecting method and communication means selecting program
JP2011221945A (en) * 2010-04-14 2011-11-04 Hitachi Ltd Data transfer device, computer system and memory copy device

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5930046B2 (en) Information processing apparatus and control method of information processing apparatus
JP7118922B2 (en) Switching device, peripheral component interconnect express system and its initialization method
US7979621B2 (en) Transparent PCI-based multi-host switch
US7979592B1 (en) Virtualization bridge device
ES2642829T3 (en) System and procedure for extended interconnection structures of express peripheral components
JP5440507B2 (en) Multi-root PCI express switch, its startup method, and multi-root PCI manager program
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 (en) Communication apparatus and ID setting method
TWI557570B (en) Memory mapping method and memory mapping system
JPWO2009139489A1 (en) PCI express switch, PCI express system, and network control method
US20100250807A1 (en) Switch system, sub-switch and method of controlling switch system
US20230018225A1 (en) Apparatus and mechanism to bypass pcie address translation by using alternative routing
JP2014002545A (en) Data transfer device, and data transfer method
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 (en) Communication device, information processing system and communication method
TWI309778B (en) Integrated circuit having processor, switch capabilities and ports to receive and forward data
TWI567638B (en) Multi-core processor, multi-core processing system, and method for initialization processing cores
JP2013196593A (en) Data processing apparatus, data processing method and program

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