WO2010021018A1 - ノード間通信方法 - Google Patents

ノード間通信方法 Download PDF

Info

Publication number
WO2010021018A1
WO2010021018A1 PCT/JP2008/064698 JP2008064698W WO2010021018A1 WO 2010021018 A1 WO2010021018 A1 WO 2010021018A1 JP 2008064698 W JP2008064698 W JP 2008064698W WO 2010021018 A1 WO2010021018 A1 WO 2010021018A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
destination
node
information
crossbar
Prior art date
Application number
PCT/JP2008/064698
Other languages
English (en)
French (fr)
Inventor
淳 川原
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2008/064698 priority Critical patent/WO2010021018A1/ja
Priority to EP08809033A priority patent/EP2320330A1/en
Priority to JP2010525509A priority patent/JP5212476B2/ja
Publication of WO2010021018A1 publication Critical patent/WO2010021018A1/ja
Priority to US12/929,570 priority patent/US8386692B2/en

Links

Images

Classifications

    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring

Definitions

  • the present invention relates to an inter-node communication method, and more particularly to an inter-node communication method capable of easily expanding a node in a server system including a system board equipped with a processor and an input / output device.
  • the server system includes, for example, a system board equipped with a processor, a crossbar, an IOC (Input / Output Component: input / output device), and a node controller.
  • a system board equipped with a processor, a crossbar, an IOC (Input / Output Component: input / output device), and a node controller.
  • the bit length of the destination ID used by the IOC or the like is fixed, and therefore the number of destination IDs is limited. This is because the number of bits of the destination ID that is assumed for a large-scale system is not always secured when the server system is installed.
  • the IOC or the like can issue a message only to eight destinations.
  • the IOC or the like can transmit a message to all other IOCs or the like.
  • the number of connection destinations is eight or less, but the number of connection destinations may be nine or more due to the necessity of node expansion after the installation.
  • a message cannot be issued from another IOC or the like to an IOC or the like to which no destination ID is assigned in the server system. Therefore, the user needs to change the entire configuration of the server system.
  • FIG. 16 and FIG. 17 are diagrams showing problems that are the background of the present invention examined by the present inventors.
  • FIG. 16 shows a configuration of the server system
  • FIG. 17 shows a case where an IOC is added to the server system of FIG.
  • the server apparatus 100 includes a plurality of processor groups 120, a plurality of node controllers (hereinafter referred to as NC) 130, a crossbar 140, and a plurality of IOCs 150.
  • the processor group 120 is a group of processors including a plurality of CPUs 121. In order to distinguish each of the plurality of processor groups 120, a subscript such as “A” is attached and expressed as, for example, “processor group 120A”. The same applies to the CPU 121, NC 130, and IOC 150.
  • Each of the NCs 130 is assigned a processor group 120 to be managed by the server device 100.
  • the NC 130 performs transmission control of the processor group 120 that is managed by the NC 130 itself.
  • the NC 130 has a function (such as an address decoder) for determining a destination ID of a message from the processor group 120 inside.
  • the crossbar 140 is a switching device that mediates transmission between the NC 130 (CPU 121) and the IOC 150. When receiving a response message from the IOC 150 or the like, the crossbar 140 transmits the message to the IOC 150 indicated by the destination ID or the NC 130 connected to the CPU 121 indicated by the destination ID.
  • the IOC 150A can transmit a message to all other IOCs 150 and the like.
  • FIG. 17 shows an example in which an IOC or the like is added to the node configuration of FIG. 16 when the initial server system installation has the configuration shown in FIG.
  • the configuration of the existing server device 100 must be changed. That is, in order to increase the number of bits of the destination ID, the communication protocol in the server device 100 is changed, the crossbar 140 for transmitting and receiving messages is redesigned (redesigned), and the IOC 150 and NC 130 for transmitting and receiving messages are redesigned. There was a need.
  • An object of the present invention is to provide an inter-node communication method capable of easily expanding a node in a server system including a system board equipped with a processor and an input / output device.
  • the present invention provides an inter-node communication program that represents an inter-node communication method capable of easily expanding a node in a server system including a system board equipped with a processor and an input / output device. With the goal.
  • the present invention relates to a plurality of input / output devices, a plurality of processor groups each having a plurality of CPUs, a plurality of node controllers connected to the plurality of processor groups, the plurality of input / output devices and a plurality of node controllers. And a crossbar provided between the plurality of input / output devices and the plurality of CPUs via the crossbar.
  • the output device sends a message including a fixed-length destination ID, which is identification information pre-assigned to the input / output device or node controller to receive the message, to the input / output device in advance.
  • the first node controller that is the associated node controller is set as the fixed destination, and Transmitting to Suva, the crossbar transmitting the message to the first node controller, and the first node controller representing the target based on the internal information of the received message. And adding the information to the message, the node controller or the target in which the first node controller previously associates the message with the information with the input / output device as the target.
  • a second node controller that is a node controller connected to a processor group having a CPU as a destination, and transmitting to the crossbar, and the crossbar deletes the information from the message to which the information is added. Restore and restore the message And having the steps of: transmitting the message to the second node controller.
  • the input / output device or the CPU transmits a message to the first node controller that is a fixed destination.
  • the destination ID is the unit ID of the first node controller.
  • the first node controller uses the temporary information generated based on the message to transmit the message with the temporary information added to the crossbar.
  • the crossbar transmits the restored message to the second node controller.
  • FIG. 1 is a configuration diagram of a server system according to an embodiment of the present invention.
  • FIG. 2 shows an example of an inter-node communication method in the server system of FIG.
  • the server device 1 includes a plurality of processor groups 20, a plurality of NC (node controllers) 21, a crossbar 3, and a plurality of IOCs (input / output devices) 40.
  • Each of the processor groups 20 includes a plurality of CPUs 200.
  • the crossbar 3 is provided between the plurality of IOCs 40 and the plurality of NCs 21.
  • the server device 1 transmits and receives a message 5 described later with reference to FIGS. 4 and 5 between the plurality of IOCs 40 and the plurality of CPUs 200 via the crossbar 3.
  • the message 5 is information transmitted / received between the plurality of IOCs 40 and the plurality of CPUs 200 via the crossbar 3, and is, for example, a request (processing request), a response to the request, or the like.
  • Message 5 may contain data.
  • the NC 21 is associated with the processor group 20 in a one-to-one correspondence in advance and is connected thereto. Accordingly, the message is actually transmitted and received between the plurality of IOCs 40 and the plurality of NCs 21 by the crossbar 3. Therefore, a destination ID described later is assigned in advance to each of the plurality of IOCs 40 and each of the plurality of NCs 21.
  • Corresponding processor group 20 and NC 21 are called parent node 2. In this example, the parent node 2 (or the processor group 20) and the plurality of IOCs 40 are associated in advance. A plurality of IOCs 40 corresponding to the parent node 2 are referred to as child nodes 4 of the parent node 2.
  • processor group 20A when each of the plurality of processor groups 20 is distinguished, a subscript such as “A” is attached and expressed as, for example, “processor group 20A”. The same applies to NC21, IOC 40, parent node 2, and child node 4.
  • the range of parent node 2 is predetermined. As shown in FIG. 2, the parent node 2 has one processor group 20 having a plurality of CPUs 200 and one NC 21 as its range.
  • the range of the child node 4 is determined in advance. For example, the child node 4A has IOCs 40A and 40B as its range.
  • the IOC 40 is, for example, various I / O devices such as PCI devices or chip components that connect a system bus.
  • the IOC 40 sets the destination in the transmission of the message 5 as the NC (first NC) 21 of the corresponding parent node 2. This destination is set in advance in the destination determination means of the IOC 40 by the user.
  • the IOC 40 transmits message 5.
  • the message 5 includes a fixed-length destination ID and internal information, as will be described later.
  • the destination ID is identification information previously assigned to the target.
  • the internal information is information for specifying a target.
  • the target is a device that should receive the message 5, that is, the IOC 40 or the CPU 200.
  • the IOC 40 transmits the message 5 to the crossbar 3 using a predetermined unit ID of the NC 21 as a fixed destination ID.
  • the predetermined NC (hereinafter referred to as the first NC) 21 is a node controller associated with the IOC 40 in advance, that is, the NC 21 of the parent node 2 of the IOC 40.
  • the NC 21 that receives the message 5 is the first NC 21.
  • the crossbar 3 is a switching device for transmitting and receiving the message 5 between the NC 21 and the IOC 40. In this transmission / reception, the crossbar 3 adds or deletes predetermined information (extended destination ID described later) for the message 5.
  • the crossbar 3 receives the message 5 transmitted by the IOC 40 and transmits it to the first NC 21. That is, when the crossbar 3 receives the message 5 from the IOC 40, the crossbar 3 transmits to the NC 21 belonging to the parent node 2 (hereinafter referred to as the corresponding parent node 2) corresponding to the child node 4 (hereinafter referred to as the affiliated child node 4) to which the IOC 40 belongs. Message 5 is transmitted.
  • the CPU 200 transmits the message 5 similarly to the IOC 40.
  • the message 5 includes a destination ID and internal information.
  • the CPU 200 transmits the message 5 to the NC (first NC) 21 of the parent node 2 to which the CPU 200 belongs.
  • the first NC 21 is a node controller connected to the processor group 20 having the CPU 200, that is, the NC 21 of the parent node 2.
  • the NC 21 controls transmission of the message 5 from the processor group 20 of the parent node 2 to which the NC 21 belongs and the message from the IOC 40 of the child node 4 corresponding to the parent node 2. Specifically, the NC 21 transmits the message 5 sent from the CPU 200 of the parent node 2 or the IOC 40 of the child node 4 to the other NC 21 or IOC 40 via the crossbar 3.
  • the NC 21 has destination determination means 22 for determining the destination of the message 5 transmitted from the processor group 20 or the IOC 40 as shown in FIG.
  • the destination determination unit 22 transmits a message 5 to the CPU 200 of the assigned management target processor group 20 to the corresponding CPU 200.
  • the destination determination means 22 receives the message 5 from the CPU 200 or the message 5 to the CPU 200.
  • the received message 5 is transmitted to the corresponding IOC 40 or the like by the crossbar 3.
  • the first NC 21 transmits a message 5 to the CPU 200.
  • the target is the CPU 200 belonging to a parent node 2 (hereinafter, non-corresponding parent node) 2 other than the corresponding parent node 2
  • the first NC 21 transmits a message 5 to the crossbar 3.
  • the target is the IOC 40 belonging to the affiliated child node 4 or the IOC 40 belonging to a child node 4 (hereinafter, non-affiliated child node) 4 other than the affiliated child node 4
  • the NC 21 transmits the message 5 to the crossbar 3.
  • the first NC 21 generates temporary information (extended destination ID described later) representing the target based on the internal information of the message 5 received from the IOC 40 or the NC 21.
  • the first NC 21 adds the generated temporary information to the message 5.
  • the first NC 21 transmits the message 5 with the temporary information added to the crossbar 3 with the second NC 21 as the destination.
  • the second NC 21 is a node controller associated in advance with the target IOC 40 (ie, the NC 21 of the target parent node 2), or a node controller connected to the processor group 20 having the target CPU 200. (That is, NC21 of the parent node 2 to which the target belongs).
  • the crossbar 3 receives the message 5 to which the temporary information is added from the first NC 21, and restores the message 5 by deleting the temporary information from the received message 5 to which the temporary information is added. Thereafter, the crossbar 3 transmits the restored message 5 to the second NC 21.
  • the second NC 21 receives the message 5 restored by deleting the temporary information.
  • the second NC 21 transmits the message 5 to the CPU 200 based on the received message 5.
  • the NC 21 transmits a message 5 to the crossbar 3.
  • the crossbar 3 transmits the received message 5 to the IOC 40 belonging to the child node 4.
  • FIG. 3 is a diagram showing a detailed configuration of the destination determination means 22 in the NC 21 shown in FIG.
  • the destination determination unit 22 includes a message receiving unit 220, a message distribution unit 221, a plurality of destination determination units 222, a transmission destination ID assignment unit 223, a plurality of message transmission units 224, a message response reception unit 225, a transmission information management unit 226, a plurality of Response transmission unit 227.
  • a suffix such as “A” is attached and expressed as “destination determination unit 222A”, for example. The same applies to the message transmission unit 224 and the response transmission unit 227.
  • the message reception unit 220 receives the message 5 from the CPU 200 belonging to the processor group 20 of the corresponding parent node 2 (T1), and is sent to the message distribution unit 221.
  • the message distribution unit 221 is sent to the corresponding destination determination unit 222 according to predetermined information (hereinafter referred to as internal information) included in the received message 5.
  • the destination determination unit 222 determines the destination based on the internal information of the received message 5.
  • the transmission destination ID assigning unit 223 rewrites the destination ID with the destination unit ID determined by the destination determination unit 222 and sets the destination node ID as the extended destination ID (FIGS. 4A and 5A). Then, message 5 is sent to the corresponding message transmission unit 224.
  • the transmission information management unit 226 records and manages information such as the transmission source of the received message 5 and the transmission destination of the transmission message 5.
  • the message response reception unit 225 receives a message for the transmitted message 5 (hereinafter referred to as a response message) (T5).
  • the response message 5 is sent to the transmission information management unit 226 by the message response reception unit 225, and the transmission information management unit 226 checks which transmission message 5 the response message 5 is for.
  • the transmission information management unit 226 sends the response message 5 to the corresponding response transmission unit 227.
  • the response transmission unit 227 Upon receiving the response message 5, the response transmission unit 227 transmits the response message 5 to the corresponding response destination (T6, T7, T8).
  • FIG. 4 shows details of the message and the first destination determination method
  • FIG. 5 shows details of the message and the second destination determination method. 4 and 5 show an example of the structure of the message 5 to which temporary information is added.
  • the message 5 to which temporary information is added is, for example, packet data.
  • the message 5 to which the temporary information is added includes the message 5 and the extended destination ID as shown in FIGS. 4 (A) and 5 (A).
  • the message 5 includes a message number, a message type, a transmission source ID, a destination ID, a target address (50), and data.
  • the message type or target address is used as internal information.
  • a message number is assigned to each message in the server system.
  • the message type is uniquely determined for each type of the message 5.
  • the transmission source ID is a unit ID of the transmission source IOC 40 or the like.
  • the target address is the address of the destination device.
  • the destination ID is the target unit ID of the message 5, specifically, the unit ID of the IOC 40 or NC 21 that should receive the message 5.
  • the destination ID is identification information uniquely determined in the crossbar 3 that controls transmission / reception of the message 5. Accordingly, the destination ID is assigned in advance to the IOC 40 or NC 21 connected to the crossbar 3.
  • the crossbar 3 controls transmission / reception of the message 5 in the crossbar 3 using only the destination ID. Therefore, the crossbar 3 is not aware of information other than the destination ID.
  • the original message 5 is a part other than the extended destination ID which is temporary information.
  • the arrangement order and the number of bits of each item are predetermined. That is, these are predetermined according to a predetermined protocol (hereinafter referred to as a fixed format).
  • the extended destination ID is described in a predetermined position (for example, the top of the variable area) in an area (variable area) that the user can freely use in the message.
  • the target address 50 of the message 5 to which temporary information shown in FIG. 4A is added is the node (node number or ID), unit (unit number or ID), channel (channel number or ID) shown in FIG. ), Device (device type number or ID), and the like.
  • a unit represents a target.
  • the destination determination unit 222 (shown in FIG. 3) decodes the node and unit values shown in FIG. 4B, and specifies the destination unit from the decoded value and the relationship table 51 shown in FIG. 4C of the destination unit. .
  • the relationship table 51 indicates that the destination unit is IOC-A, and the decode value is 201 to 400h. Indicates that this is the destination unit IOC-B.
  • the destination determining means 22 adds an extended destination ID (for example, 2 bits) assigned to each node of this unit, or rewrites the already added extended destination ID.
  • This inter-node communication method facilitates the expansion (addition) of the node in the existing server device 1 by using the extension destination ID, and enables transmission / reception of the message 5 to the added node.
  • FIG. 5 shows another example of the method for specifying the destination unit (target).
  • the destination determination means 22 decodes the message type information of the message 5 shown in FIG. Based on this decoding result, the destination determining means 22 identifies the destination unit from the message type value and destination unit relationship table 52 shown in FIG.
  • FIG. 5B shows that when the message type is XA, the destination unit is IOC-A (points to IOC 40A in FIG. 2), and when the message type is XB, the destination unit is all CPUs. (Refers to the CPUs 200A to 200H in FIG. 2).
  • the message distribution unit 221 (shown in FIG. 3) distributes the message 5 for each message type of information shown in FIG.
  • the destination determination unit 222 performs destination determination of the distributed message 5 and specifies the destination unit based on the relationship table 52 shown in FIG. 5B of the destination unit.
  • the destination determination means 22 adds an extended destination ID (for example, 2-bit information) to the message 5 with the unit specified by the destination determination method of FIG. 4 or FIG. 5 as described above, or The extension destination ID already added is rewritten.
  • the message 5 can be transmitted and received between the NC 21 and the crossbar 3 with the extension destination ID added to the fixed format.
  • FIG. 6 is a diagram showing a detailed configuration of message processing means provided in the crossbar.
  • the message processing means 30 in the crossbar 3 includes a first message receiving unit 300, a destination determining unit 301, an extended destination ID deleting unit 302, a first message transmitting unit 303, a second message receiving unit 304, an extended destination ID adding unit 305, A second message transmission unit 306 is provided.
  • the message processing unit 30 shown in FIG. 2 may be configured to include a plurality of message processing units 30.
  • NC belonging to the parent node is defined as the own NC (NC21A)
  • the corresponding child node is defined as the belonging child node 4 (child node 4A).
  • NC other than its own NC is defined as another NC (NC21B to 21D).
  • the first message receiving unit 300 receives the message 5 shown in FIG. 4A (shown in FIG. 4A) from its own NC. Next, the message 5 is sent to the destination determination unit 301, which determines whether the destination determination unit 301 is the message 5 addressed to the IOC in the child node 4 or the message 5 addressed to another NC (via another NC) based on the extended destination ID. Determine.
  • the destination determination unit 301 determines that the message 5 is addressed to the IOC in the child node 4, the destination determination unit 301 sends the message 5 to the extended destination ID deletion unit 302.
  • the extended destination ID deletion unit 302 deletes the extended destination ID and becomes a fixed format.
  • the message 5 from which the extended destination ID is deleted is transmitted by the destination determination unit 301 to the IOC 40 determined from the first message transmission unit 303.
  • the destination determination unit 301 determines that the message 5 is addressed to another NC, the message 5 is sent to the first message transmission unit 303 as it is, and is transmitted from the first message transmission unit 303 to the other NC.
  • the message processing means 30 receives the message 5 in the fixed format from the IOC 40 at the second message receiving unit 304. Further, the message 5 is sent from the second message receiving unit 304 to the extended destination ID adding unit 305 and processed as follows.
  • the extended destination ID adding unit 305 creates a 2-bit extended destination ID, for example.
  • the extended destination ID is, for example, the node ID (for example, 2 bits) of the child node of the IOC 40 that is the message transmission source. Thereafter, the extended destination ID adding unit 305 adds an extended destination ID to the variable area.
  • the second message transmitting unit 306 receives the message 5 in the format of the message 5 from the extended destination ID adding unit 305, and transmits the message 5 to the own NC corresponding to the child node 4 to which the IOC 40 as the message transmission source belongs.
  • FIG. 7 to 9 are diagrams showing the first process, the second process, and the third process in the message processing means 30 of the crossbar 3.
  • FIG. 7 to 9 the message processing means 30 is not shown, and only functional units necessary for explanation of the operation are shown.
  • the extended destination ID is 2 bits in the message 5 transmitted and received about the NC 21.
  • Two bits of the extended destination ID represent the node ID, and three bits of the destination ID represent the unit ID of the NC 21 or the IOC 40.
  • the first message receiving unit 300 receives the message 5 transmitted from the NC 21.
  • the destination determination unit 301 determines the destination based on the destination ID and the extended destination ID of the received message 5. Specifically, the destination determination unit 301 performs the following processing based on the received message 5.
  • FIG. 7 shows message transfer processing (hereinafter referred to as first processing) from the own NC in the crossbar 3 to the IOC belonging to the child node 4.
  • the message 5 including the destination information is transmitted from the NC 21A and received by the first message receiving unit 300 in the message processing means 30 of the crossbar 3 (T11).
  • the destination determination unit 301 receives the received message 5 (T12), determines which node is addressed from 2 bits of the extended destination ID included therein, and determines which destination unit is from 3 bits of the destination ID.
  • the destination determination unit 301 sends the received message 5 to the extended destination ID deletion unit 302 (T13).
  • the extended destination ID deletion unit 302 sends the message 5 with the extended destination ID information deleted from the received message 5 to the first message transmission unit 303 (T14).
  • the first message transmission unit 303 transmits the message 5 to the destination IOC 40B of the message 5 (T15).
  • the message transfer process from the own NC to the IOCs in the child node 4 can be realized.
  • FIG. 8 shows message transfer processing (hereinafter referred to as second processing) from the own NC to another NC in the crossbar 3.
  • the message 5 including the destination information is transmitted from the NC 21B and received by the first message receiving unit 300 (T21).
  • the destination determination unit 301 does not delete the extended destination ID added to the message and sends the message 5 to the first message transmission unit 303 (T23).
  • the first message transmission unit 303 that has received the message 5 transmits the message 5 to another NC (NC21C) (T24).
  • NC21C NC
  • message transfer processing from the own NC to another NC can be realized.
  • FIG. 9 shows a message transfer process (hereinafter referred to as a third process) from the IOC belonging to the child node 4 in the crossbar 3 to the own NC.
  • the IOC 40G transmits a fixed format message 5 to the crossbar 3.
  • the second message receiving unit 304 in the crossbar 3 receives the message 5 from the IOC 40G (T31).
  • the message 5 is further sent from the second message receiving unit 304 to the extended destination ID adding unit 305 (T32) and processed by the extended destination ID adding unit 305 as follows.
  • the extended destination ID adding unit 305 sends the message 5 with the extended destination ID added to the second message transmitting unit 306 (T33).
  • the second message transmitting unit 306 receives the message 5 from the extended destination ID adding unit 305, and transmits the message 5 to the own NC (NC 21D) corresponding to the child node belonging to the IOC 40G (T34).
  • NC 21D the own NC
  • T34 the transfer process of the message 5 from the IOC in the affiliated child node 4 to the own NC can be executed.
  • the first process is executed after the execution of the second process.
  • the message 5 in which the information of the extended destination ID is added to the message format of the existing server device 1 is transmitted and received between the NC 21 and the crossbar 3. Further, the message 5 transmitted / received on the IOC 40 side is processed by the crossbar 3 in the message format of the existing server device 1.
  • the message 5 from the unit is transmitted to the CPU 200 of the parent node 2 to which the added NC belongs or transmitted to the added IOC 40 without changing or replacing the IOC side. .
  • 10 to 12 show the node expansion processing flow in the server system of FIG. 10 to 12 collectively show one node expansion process.
  • step S1 when the transmission source of the message 5 is the CPU 200, the transmission source CPU 200 uses the destination ID in the message 5 (shown in FIG. 4A or FIG. 5A) as the ID of the parent NC 21 ( Unit ID) (step S2). After this setting, the transmission source CPU 200 transmits the message 5 to the parent NC 21 (step S3). After this process, step S9 in FIG. 11 is executed.
  • step S1 the source IOC 40 sets the destination ID in the message 5 to the ID of the parent NC 21 (step S4), and then sends a message to the crossbar 3. 5 is transmitted (step S5).
  • the crossbar 3 receives this message 5 (step S6), and adds information including the parent node ID of the transmission source IOC 40 as an extended destination ID to the received message 5 (step S7).
  • the crossbar 3 transmits the message 5 with the extended destination ID added to the parent NC 21 of the transmission source IOC 40 (step S8).
  • the parent NC 21 receives the message 5 from the IOC 40 sent via the CPU 200 or the crossbar 3, and determines the target destination (referring to the destination of the message 5) from the message 5 (step S9). Based on the result of this determination, the parent NC 21 checks whether or not the target NC (target NC) 21 is its own NC (step S10). If the target destination is the own NC, step S17 in FIG. 12 is executed.
  • the parent NC 21 transmits a message 5 to the target NC 21 (step S11).
  • the crossbar 3 receives the message 5 from the parent NC 21 (step S12), and determines the target NC 21 based on the extended destination ID of the received message 5 (step S13).
  • the crossbar 3 transmits the message 5 with the extended destination ID added to the target NC 21 (step S14).
  • the target NC 21 receives the message 5 (step S15), and determines the target destination from the message 5 (step S16).
  • the target NC 21 or the parent NC 21 (hereinafter simply referred to as the target NC 21) checks whether or not the target is the CPU 200 (step S17).
  • the target NC21 transmits the message 5 to the target CPU 200 (step S18).
  • the target CPU 200 receives the message 5 (step S19), and the message 5 transmission process ends.
  • the target NC21 transmits the message 5 to the crossbar 3 (step S20).
  • the crossbar 3 receives this message 5 (step S21), and determines the target destination from the received message 5 (step S22).
  • the message processing means 30 deletes the extended destination ID from the message 5 (step S23).
  • the crossbar 3 transmits the message 5 from which the extended destination ID is deleted to the target IOC 40 (step S24).
  • the target IOC 40 receives this message 5 (step S25), and the message 5 transmission process ends.
  • FIGS. 13, 14 and 15 are diagrams showing a first example, a second example and a third example of the operation of the inter-node communication method, respectively.
  • the configuration of the server system of FIGS. 13 to 15 is the same as that of FIG.
  • FIG. 13 specifically shows the operation (first example of operation) when the message 5 is issued from the IOC 40A belonging to the child node 4A to the IOC 40H belonging to the child node 4D.
  • the crossbar 3 receives the fixed format message 5 from the IOC 40A belonging to the child node A.
  • Message processing means 30 (not shown) in the crossbar 3 adds an extended destination ID to the received message 5.
  • the crossbar 3 transmits the message 5 with the extended destination ID added to the message 5 received from the IOC 40A to the parent NC 21A of the IOC 40A (T42).
  • NC 21A receives the message 5 with the extended destination ID added from the crossbar 3.
  • the destination determination means 22A (not shown) in the NC 21A determines the target destination from the received message 5.
  • the target destination is determined based on the target address and message type of the message 5 shown in FIG. 4 or 5 described above, and is not determined based on the “destination ID”.
  • the destination determination unit 22A determines the IOC 40H as the target destination by the determination process.
  • the NC 21A transmits the message 5 to the crossbar 3 (T43).
  • the crossbar 3 receives the message 5 from the NC 21A and performs destination determination by the message processing means 30.
  • NC 21D receives the message 5 to which the extended destination ID is added from the crossbar 3, and determines the target destination by the destination determination means 22D. In this case, the destination determination unit 22D determines that the IOC 40H belongs to the affiliated child node 4D as the target destination. After this determination, the destination determination unit 22D transmits the message 5 with the extended destination ID as it is to the crossbar 3 because the target destination is the IOC 40H belonging to the affiliated child node 4D (T45).
  • the crossbar 3 receives the message 5 to which the extended destination ID is added from the NC 21D, and determines the destination by the message processing means 30.
  • the message processing means 30 determines that the message 5 is from the parent node NC21D to the IOC 40H belonging to the child node 4D.
  • the message processing means 30 deletes the extended destination ID added to the message 5 from the message 5 and transmits the message 5 according to the fixed format after the extended destination ID is deleted from the crossbar 3 to the IOC 40H in the child node 4D ( T46).
  • the target IOC 40H receives the fixed format message 5 from the crossbar 3, and then transmits a response message 5 to the message to the crossbar 3 (T47). In the subsequent T48 to T52, the transmission process of the response message 5 is executed in the same manner as the process of the message 5 described above with the execution order reversed.
  • FIG. 14 specifically shows an operation (second example of operation) when a message 5 is issued from the CPU 200A of the processor group 20A belonging to the parent node 2A to the target as the IOC 40H belonging to the child node 4D. .
  • NC 21A receives message 5 from CPU 200A. Next, the destination determination means 22A in the NC 21A determines the target destination from the received message 5.
  • the destination determination unit 22A determines the IOC 40H as the target destination by the determination process.
  • the NC 21A transmits the message 5 to the crossbar 3 (T61).
  • the crossbar 3 receives the message 5 from the NC 21A and performs destination determination by the message processing means 30.
  • NC 21D receives the message 5 to which the extended destination ID is added from the crossbar 3, and determines the target destination by the destination determination means 22D. In this case, the destination determination unit 22D determines that the IOC 40H belongs to the affiliated child node 4D as the target destination. After this determination, the destination determination means 22D transmits the message 5 to the crossbar 3 with the extended destination ID as it is because the target destination is the IOC 40H belonging to the affiliated child node 4D (T63).
  • the crossbar 3 receives the message 5 to which the extended destination ID is added from the NC 21D, and determines the destination by the message processing means 30.
  • the message processing means 30 determines that the message 5 is from the parent node NC21D to the IOC 40H belonging to the child node 4D.
  • the message processing unit 30 deletes the extended destination ID added to the message 5 from the message 5, and transmits the message 5 in the fixed format after the extended destination ID is deleted from the crossbar 3 to the IOC 40H in the child node 4D (T64). ).
  • the target IOC 40H receives the message 5 from the crossbar 3 and transmits the response message 5 to the transmission source (T65).
  • T65 the transmission source
  • T66 to T69 the transmission process of the response message 5 is executed in the same manner as the process of the message 5 described above with the execution order reversed.
  • FIG. 15 specifically shows the operation (third example of operation) when the IOC 40A in the child node 4A issues a message 5 for which the target is the CPU 200H of the processor group 20D belonging to the parent node 2D. .
  • the crossbar 3 receives the message 5 from the IOC 40A belonging to the child node 4A.
  • the message processing means 30 in the crossbar 3 adds the extended destination ID to the received message 5.
  • the crossbar 3 transmits the message 5 with the extended destination ID added to the message 5 received from the IOC 40A to the parent NC 21A (T71).
  • NC 21A receives the message 5 with the extended destination ID added from the crossbar 3.
  • the destination determination means 22A in the NC 21A processes the received message 5.
  • the destination determination unit 22A determines the target destination from the received message 5.
  • the target destination is determined based on the message 5 shown in FIG. 4 or 5 described above, and does not indicate destination ID information (3 bits), but is determined from the target address or message type. .
  • the destination determination unit 22A determines the IOC 40H as the target destination by the determination process.
  • the NC 21A transmits the message 5 to the crossbar 3 (T72).
  • the crossbar 3 receives the message 5 from the NC 21A and performs destination determination by the message processing means 30.
  • the crossbar 3 transmits the message 5 as it is to the NC 21D as the destination of the node ID of the other NC from the message 5 received by the NC 21A by the message processing means 30 (T73).
  • NC 21D receives the message 5 to which the extended destination ID is added from the crossbar 3, and determines the target destination by the destination determination means 22D. In this case, the destination determination unit 22D determines the CPU 200H in the processor group 20D as the target destination. After this determination, the NC 21D transmits the message 5 to the CPU 200H belonging to the own node 2D (T74). From T75 to T79, the transmission process of the response message 5 is executed in the same manner as the process of the message 5 described above with the execution order reversed.
  • the destination determination means 22 may transmit the message 5 from which the extended destination ID is deleted.
  • the CPU 200 can also support the fixed format message 5.

Landscapes

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

Abstract

 入出力装置40Aが、メッセージ5を、クロスバ3を介して、予め定められた親ノード2Aのノードコントローラ21Aに送信する。この時、クロスバ3が、入力装置40Aのノード情報に基づいて情報を生成してメッセージ5に付加する。ノードコントローラ21Aが、クロスバ3を介して、メッセージ5を、受信すべき入出力装置40Gに対応する親ノード2Gのノードコントローラ21Gに送信する。ノードコントローラ21Gが、クロスバ3を介して、メッセージ5を、受信すべき入出力装置40Gに送信する。この時、クロスバ3が、メッセージ5から情報を削除することにより、復元したメッセージ5を、宛先とされた入出力装置40Gに送信する。

Description

ノード間通信方法
 本発明は、ノード間通信方法に関し、特に、プロセッサを搭載したシステムボードや入出力装置等からなるサーバシステムにおいてノードの拡張を容易に行うことができるノード間通信方法に関する。
 サーバシステムは、例えば、プロセッサを搭載したシステムボード、クロスバ、IOC(Input/Output Component:入出力装置)、ノードコントローラを備える。このようなサーバシステムにおいて、IOC等が使用する宛先IDのビット長は固定されており、従って、宛先IDの数には制限がある。この原因は、サーバシステムの設置時において、必ずしも大規模システムを想定した宛先IDのビット数を確保していないことにある。
 宛先IDのビット数が3である場合、IOC等は、8通りの宛先にしかメッセージを発行することができない。接続先が8個以下である場合、IOC等は、他の全てのIOC等にメッセージを送信することができる。
 しかし、サーバシステムの設置時には、接続先が8個以下であったものが、設置後にノードの拡張等の必要が生じて、接続先が9個以上となる場合がある。この場合、サーバシステム内で宛先IDが割当てられないIOC等に対して、他のIOC等からメッセージを発行できなくなる。従って、ユーザは、サーバシステムの全体の構成を変更する必要がある。
 なお、既定のポート数以内において、収容されるプロセッサや入出力装置の収容位置の変更、増加を容易に行うことができるプロセッサ間通信制御装置が知られている。
特開2000-132527号公報
 図16及び図17は、本発明者が検討した本発明の背景となる課題を示す図である。図16はサーバシステムの構成を示し、図17は図16のサーバシステムにおいてIOCを増設する場合を示す。
 サーバ装置100は、複数のプロセッサ群120、複数のノードコントローラ(以下、NC)130、クロスバ140、複数のIOC150を備える。プロセッサ群120は、複数のCPU121を含むプロセッサのグループである。なお、複数のプロセッサ群120の各々を区別する場合、「A」等の添え字を付して、例えば「プロセッサ群120A」等のように表すものとする。CPU121、NC130、IOC150についても同様である。
 NC130には、各々、管理対象とするプロセッサ群120がサーバ装置100により割当てられている。NC130は、当該NC130自体が管理対象とするプロセッサ群120の伝送制御を行う。NC130は、内部にプロセッサ群120からのメッセージの宛先IDを決定する機能(アドレスデコーダ等)を有する。
 クロスバ140は、NC130(CPU121)及びIOC150の間における伝送を媒介するスイッチング装置である。IOC150等からの応答メッセージを受信した場合、クロスバ140は、宛先IDの示すIOC150、又は、宛先IDの示すCPU121に接続されているNC130へ、当該メッセージを送信する。
 例えば、宛先IDが3ビットである場合、IOC150によるメッセージの宛先は8通りとなる。IOC150Aに着目すると、図16に示すように、その接続先が、IOC150B~150F及びNC130A~130Cの8箇所である。従って、IOC150Aは、他の全てのIOC150等にメッセージを送信することができる。
 図17は、当初のサーバシステム設置が図16に示す構成であった場合に、図16のノード構成にIOC等を増設した例を示す。
 例えば、ユーザが、図16に示す既存のサーバ装置100において、プロセッサ群120D、NC130D、IOC150G及び150H、CPU121G及び121Hを増設するとする。この場合、既存のIOC150等に割当られた宛先IDとして8個(0~7)全てが使用されているため、新たなIOC150G及び150HとNC130Dとに宛先IDを割当てることができない。
 従って、IOC150等を増設する(ノードを拡張する)ためには、既存のサーバ装置100において、その構成を変更する以外なかった。即ち、宛先IDのビット数を増やすために、サーバ装置100における通信のプロトコルを変更し、メッセージを送受信するクロスバ140を設計変更し(設計し直し)、メッセージを送受信するIOC150及びNC130を設計変更する必要があった。
 本発明は、プロセッサを搭載したシステムボードや入出力装置等からなるサーバシステムにおけるノードの拡張を容易に行うことを可能としたノード間通信方法を提供することを目的とする。
 また、本発明は、プロセッサを搭載したシステムボードや入出力装置等からなるサーバシステムにおけるノードの拡張を容易に行うことを可能としたサーバ装置を提供することを目的とする。
 また、本発明は、プロセッサを搭載したシステムボードや入出力装置等からなるサーバシステムにおけるノードの拡張を容易に行うことを可能としたノード間通信方法を実表するノード間通信プログラムを提供することを目的とする。
 本発明は、複数の入出力装置と、各々が複数のCPUを有する複数のプロセッサ群と、前記複数のプロセッサ群に接続された複数のノードコントローラと、前記複数の入出力装置と複数のノードコントローラとの間に設けられたクロスバとを備え、前記クロスバを介して前記複数の入出力装置と複数のCPUとの間でメッセージを送受信するサーバ装置におけるノード間通信方法において、メッセージを送信する前記入出力装置が、当該メッセージを受信すべき入出力装置又はノードコントローラに予め割り当てられた識別情報である固定長の宛先IDと前記ターゲットを特定する内部情報とを含むメッセージを、前記入出力装置に予め対応付けられたノードコントローラである第1のノードコントローラを固定された宛先として、前記クロスバに送信するステップと、前記クロスバが、前記メッセージを、前記第1のノードコントローラに送信するステップと、前記第1のノードコントローラが、受信した前記メッセージの内部情報に基づいて前記ターゲットを表す情報を生成し、前記情報を前記メッセージに付加するステップと、前記第1のノードコントローラが、前記情報の付加されたメッセージを、前記ターゲットである入出力装置に予め対応付けられたノードコントローラ又は前記ターゲットであるCPUを有するプロセッサ群に接続されたノードコントローラである第2のノードコントローラを宛先として、前記クロスバに送信するステップと、前記クロスバが、前記情報の付加されたメッセージから前記情報を削除することにより前記メッセージを復元し、復元した前記メッセージを前記第2のノードコントローラに送信するステップと、を有することを特徴とする。
 このノード間通信方法及びサーバ装置によれば、入出力装置又はCPUが、メッセージを、固定された宛先である第1のノードコントローラに送信する。この送信処理においては、宛先IDは第1のノードコントローラのユニットIDとなる。一方、第1のノードコントローラは、メッセージに基づいて生成した一時情報を用いて、一時情報の付加されたメッセージをクロスバに送信する。クロスバは、復元したメッセージを第2のノードコントローラに送信する。
 これにより、本来は、ビット数の少ない元々の宛先IDのみに従ってターゲットへ送信されるべきメッセージが、第1及び第2のノードコントローラを経由することにより、宛先IDが拡張されてターゲットに送信される。この結果、既存のサーバ装置において、入出力装置の増設等によりノードを拡張する場合であっても、サーバ装置の構成を大きく変更する必要が無い。即ち、ノードコントローラ及びクロスバに一時情報を処理する機能を追加するのみで、クロスバ、入出力装置及びノードコントローラの大きな設計変更の必要を無くすことができる。これにより、サーバ装置におけるノードを容易に増設することができる。
サーバシステムの構成の一例を示す図である。 図1のサーバシステムの構成の詳細な一例を示す図である。 宛先決定手段の詳細な構成を示す図である。 メッセージの詳細と第1の宛先判定方法を示す図である。 メッセージの詳細と第2の宛先判定方法を示す図である。 メッセージ処理手段の詳細な構成を示す図である。 メッセージ処理手段内の第1の処理について説明する図である。 メッセージ処理手段内の第2の処理について説明する図である。 メッセージ処理手段内の第3の処理について説明する図である。 ノード拡張処理フローである。 ノード拡張処理フローである。 ノード拡張処理フローである。 ノード拡張処理の第1の例を説明する図である。 ノード拡張処理の第2の例を説明する図である。 ノード拡張処理の第3の例を説明する図である。 本発明の背景となるサーバシステムの構成を示す図である。 本発明の背景となるサーバシステムにおける処理を示す図である。
符号の説明
  1  サーバ装置
  2  親ノード
  3  クロスバ
  4  子ノード
  5  メッセージ
  20  プロセッサ群
  21  ノードコントローラ(NC)
  22  宛先決定手段
  30  メッセージ処理手段
  40  IOC
  50  ターゲットアドレス
  51、52  関係テーブル
  200  CPU
  220  メッセージ受信部
  221  メッセージ振分け部
  222  宛先判定部
  223  送信先ID割付け部
  224  メッセージ送信部
  225  メッセージ応答受信部
  226  送信情報管理部
  227  応答送信部
  300  第1メッセージ受信部
  301  宛先判定部
  302  拡張宛先ID削除部
  303  第1メッセージ送信部
  304  第2メッセージ受信部
  305  拡張宛先ID付加部
  306  第2メッセージ送信部
 図1は、本発明の一実施態様であるサーバシステムの構成図である。図2は、図1のサーバシステムにおけるノード間通信方法の一例を示す。
 図1において、サーバ装置1は、複数のプロセッサ群20、複数のNC(ノードコントローラ)21、クロスバ3、複数のIOC(入出力装置)40を備える。プロセッサ群20は、各々、複数のCPU200を備える。クロスバ3は、複数のIOC40と複数のNC21との間に設けられる。サーバ装置1は、クロスバ3を介して、複数のIOC40と複数のCPU200との間で、図4及び図5を参照して後述するメッセージ5を送受信する。
 メッセージ5は、複数のIOC40と複数のCPU200との間でクロスバ3を介して送受信される情報であり、例えば、リクエスト(処理要求)、リクエストに対する応答等である。メッセージ5はデータを含んでいても良い。
 この例では、NC21は、プロセッサ群20と1対1に予め対応付けられ、これに接続される。従って、メッセージは、実際には、クロスバ3により、複数のIOC40と複数のNC21との間で送受信される。このために、後述する宛先IDは、複数のIOC40の各々と複数のNC21の各々に、予め割当てられる。対応するプロセッサ群20とNC21とを親ノード2という。この例では、親ノード2(又は、プロセッサ群20)と複数のIOC40とは、予め対応付けられる。親ノード2に対応する複数のIOC40を当該親ノード2の子ノード4という。
 なお、複数のプロセッサ群20の各々を区別する場合、「A」等の添え字を付して例えば「プロセッサ群20A」等のように表すものとする。NC21、IOC40、親ノード2、子ノード4についても、同様である。
 親ノード2の範囲は予め定められる。親ノード2は、図2に示すように、複数のCPU200を有する1個のプロセッサ群20と、1個のNC21を、その範囲とする。子ノード4の範囲は予め定められる。例えば、子ノード4Aは、IOC40A及び40Bを、その範囲とする。
 IOC40は、例えば、PCIデバイス等の様々なI/Oデバイスやシステムバスを接続するチップコンポーネント等である。IOC40は、メッセージ5の送信における宛先を、対応する親ノード2のNC(第1のNC)21とする。この宛先は、ユーザにより、当該IOC40の宛先決定手段に予め設定される。
 IOC40は、メッセージ5を送信する。メッセージ5は、後述するように、固定長の宛先IDと、内部情報とを含む。宛先IDは、ターゲットに予め割り当てられた識別情報である。内部情報は、ターゲットを特定する情報である。ターゲットは、当該メッセージ5を受信すべき装置、即ち、IOC40又はCPU200である。IOC40は、メッセージ5を、予め定められたNC21のユニットIDを固定された宛先IDとして、クロスバ3に送信する。この場合、予め定められたNC(以下、第1のNC)21は、当該IOC40に予め対応付けられたノードコントローラ、即ち、当該IOC40の親ノード2のNC21である。メッセージ5を受信するNC21が、第1のNC21である。
 クロスバ3は、NC21及びIOC40の間におけるメッセージ5の送受信を行うためのスイッチング装置である。この送受信において、クロスバ3は、メッセージ5について、所定の情報(後述する拡張宛先ID)を付加し又は削除する。
 クロスバ3は、IOC40が送信したメッセージ5を受信し、これを第1のNC21に送信する。即ち、クロスバ3は、IOC40からのメッセージ5を受信した場合、当該IOC40が属する子ノード4(以下、所属子ノード4)に対応する親ノード2(以下、対応親ノード2)に属するNC21に、メッセージ5を送信する。
 一方、CPU200は、IOC40と同様に、メッセージ5を送信する。メッセージ5は、前述のように、宛先IDと内部情報とを含む。CPU200は、IOC40と同様に、メッセージ5を、当該CPU200の属する親ノード2のNC(第1のNC)21に送信する。この場合、第1のNC21は、当該CPU200を有するプロセッサ群20に接続されたノードコントローラ、即ち、当該親ノード2のNC21である。
 NC21は、当該NC21が属する親ノード2のプロセッサ群20からのメッセージ5、及び、当該親ノード2に対応する子ノード4のIOC40からのメッセージの伝送制御を行う。具体的には、NC21は、当該親ノード2のCPU200又は当該子ノード4のIOC40から送出されたメッセージ5を、クロスバ3を介して、他のNC21又はIOC40へ送信する。
 このために、NC21は、図2に示すように、プロセッサ群20又はIOC40から送信されたメッセージ5の宛先を決定する宛先決定手段22を有する。宛先決定手段22は、割当てられた管理対象のプロセッサ群20のCPU200に対するメッセージ5を、該当するCPU200へ送信する。また、宛先決定手段22は、CPU200からのメッセージ5、又は、CPU200へのメッセージ5を受信する。受信されたメッセージ5は、クロスバ3により対応するIOC40等へ送信される。
 第1のNC21は、ターゲットが対応親ノード2に属するCPU200である場合、当該CPU200へメッセージ5を送信する。ターゲットが対応親ノード2以外の親ノード(以下、非対応親ノード)2に属するCPU200である場合、第1のNC21は、メッセージ5をクロスバ3に送信する。ターゲットが所属子ノード4に属するIOC40、又は、所属子ノード4以外の子ノード(以下、非所属子ノード)4に属するIOC40である場合、NC21は、メッセージ5をクロスバ3に送信する。
 この時、第1のNC21は、IOC40又はNC21から受信したメッセージ5の内部情報に基づいて、ターゲットを表す一時情報(後述する拡張宛先ID)を生成する。その上で、第1のNC21は、生成した一時情報を、メッセージ5に付加する。この後、第1のNC21は、一時情報の付加されたメッセージ5を、第2のNC21を宛先として、クロスバ3に送信する。ここで、第2のNC21は、ターゲットであるIOC40に予め対応付けられたノードコントローラ(即ち、ターゲットの親ノード2のNC21)、又は、ターゲットであるCPU200を有するプロセッサ群20に接続されたノードコントローラ(即ち、ターゲットの属する親ノード2のNC21)である。
 クロスバ3は、第1のNC21から一時情報の付加されたメッセージ5を受信し、受信した一時情報の付加されたメッセージ5から一時情報を削除することにより、メッセージ5を復元する。この後、クロスバ3は、復元したメッセージ5を、第2のNC21に送信する。第2のNC21は、一時情報の削除により復元されたメッセージ5を受信する。
 第2のNC21は、受信したメッセージ5に基づいて、ターゲットが第2のNC21の属する親ノード2に属するCPU200である場合、当該CPU200へメッセージ5を送信する。ターゲットが第2のNC21の属する親ノード2に対応する子ノード4に属するIOC40である場合、NC21は、クロスバ3へメッセージ5を送信する。クロスバ3は、受信したメッセージ5を、当該子ノード4に属するIOC40に送信する。
 図3は、図2に示すNC21内の宛先決定手段22の詳細な構成を示す図である。
 宛先決定手段22は、メッセージ受信部220、メッセージ振分け部221、複数の宛先判定部222、送信先ID割付け部223、複数のメッセージ送信部224、メッセージ応答受信部225、送信情報管理部226、複数の応答送信部227を備える。なお、複数の宛先判定部222の各々を区別する場合、「A」等の添え字を付して例えば「宛先判定部222A」等のように表すものとする。メッセージ送信部224、応答送信部227についても同様とする。
 メッセージ受信部220は、対応親ノード2のプロセッサ群20に属するCPU200からのメッセージ5を受信し(T1)、メッセージ振分け部221に送られる。メッセージ振分け部221は、受信したメッセージ5に含まれる所定の情報(以下、内部情報)に応じて、対応する宛先判定部222に送られる。
 次に、宛先判定部222は、受信したメッセージ5の内部情報に基づいて、宛先を判定する。送信先ID割付け部223は、宛先判定部222により判定された宛先のユニットIDに宛先IDを書き換え、宛先ノードのIDを拡張宛先ID(図4(A)及び図5(A))としてメッセージ5に付加した後、対応するメッセージ送信部224にメッセージ5を送出する。
 送信情報管理部226は、メッセージ送信部224からメッセージ5が送信された際、受信したメッセージ5の送信元や、送信メッセージ5の送信先等の情報を記録し、管理する。
 メッセージ送信部224のメッセージ5の送信後(T2、T3、T4)、メッセージ応答受信部225は、送信したメッセージ5に対するメッセージ(以下、応答メッセージ)を受信する(T5)。その応答メッセージ5がメッセージ応答受信部225により送信情報管理部226に送られ、送信情報管理部226により応答メッセージ5がどの送信メッセージ5に対するものか検査される。送信情報管理部226は、応答メッセージ5の宛先を特定した後、その応答メッセージ5を対応する応答送信部227に送出する。その応答メッセージ5を受けた応答送信部227は、対応する応答先へ応答メッセージ5を送信する(T6、T7、T8)。
 図4は、メッセージの詳細と第1の宛先判定方法を示し、図5は、メッセージの詳細と第2の宛先判定方法を示す図である。図4及び図5は、一時情報の付加されたメッセージ5の構造の一例を示す。
 一時情報の付加されたメッセージ5は、例えばパケットデータである。一時情報の付加されたメッセージ5は、図4(A)及び図5(A)に示すように、メッセージ5と、拡張宛先IDとを含む。メッセージ5は、メッセージ番号、メッセージ種類、送信元ID、宛先ID、ターゲットアドレス(50)、データを含む。これらの中で、メッセージ種類又はターゲットアドレスが、内部情報として用いられる。メッセージ番号は、サーバシステムにおいてメッセージ毎に付与される。メッセージ種類は、当該メッセージ5の種類毎に一意に定まる。送信元IDは、送信元のIOC40等のユニットIDである。ターゲットアドレスは、宛先のデバイスのアドレスである。
 宛先IDは、当該メッセージ5のターゲットのユニットIDであり、具体的には、当該メッセージ5を受信すべきIOC40又はNC21のユニットIDである。宛先IDは、メッセージ5の送受信を制御するクロスバ3において一意に定まる識別情報である。従って、宛先IDは、クロスバ3に接続されたIOC40又はNC21に、予め割当てられる。クロスバ3は、この宛先IDのみを用いて、当該クロスバ3におけるメッセージ5の送受信を制御する。従って、クロスバ3は、この宛先ID以外の情報を意識することは無い。
 このように、本来のメッセージ5は、一時情報である拡張宛先ID以外の部分である。メッセージ5において、各々の項目の配置の順序及びビット数は、予め定められる。即ち、これらは所定のプロトコル(以下、固定フォーマットと記す)に従って予め定められている。これに対して、拡張宛先IDは、メッセージにおいて、ユーザが自由に使用可能な領域(可変領域)において、所定の位置(例えば、可変領域の先頭)に記述される。
 図4(A)に示す一時情報の付加されたメッセージ5のターゲットアドレス50は、図4(B)に示すノード(ノード番号又はID)、ユニット(ユニット番号又はID)、チャネル(チャネル番号又はID)、デバイス(デバイス種別番号又はID)等の情報を含む。ここで、ユニットはターゲットを表す。
 宛先判定部222(図3に示す)は、図4(B)に示すノード及びユニット値をデコードし、そのデコード値と宛先ユニットの図4(C)に示す関係テーブル51から宛先ユニットを特定する。
 例えば、関係テーブル51は、メッセージ5の対応する情報に基づく、デコード値が000~200h(16進数)であった場合、宛先ユニットIOC-Aであることを示し、デコード値が201~400hであった場合、宛先ユニットIOC-Bであることを示す。宛先決定手段22が、このユニットのノード毎に割当てられる拡張宛先ID(例えば、2ビット)を付加し、又は、既に付加された拡張先IDを書換える。
 このノード間通信方法は、拡張宛先IDを用いることにより、既存のサーバ装置1におけるノードの拡張(増設)を容易にし、増設されたノードへのメッセージ5の送受信を可能とする。
 図5は、宛先ユニット(ターゲット)の特定方法の他の例である。
 宛先決定手段22は、図5(A)に示すメッセージ5のメッセージ種類の情報をデコードする。このデコード結果に基づき、宛先決定手段22は、図5(B)に示すメッセージ種類値と宛先ユニットの関係テーブル52から、宛先ユニットを特定する。
 例えば、図5(B)は、メッセージ種類XAであった場合、宛先ユニットがIOC-A(図2のIOC40Aを指す)であることを示し、メッセージ種類XBであった場合、宛先ユニットが全CPU(図2のCPU200A~200Hを指す)であることを示す。
 メッセージ振分け部221(図3に示す)は、図5(B)に示す情報のメッセージ種類ごとにメッセージ5を振分ける。宛先判定部222は、振分けられたメッセージ5の宛先判定を行い、宛先ユニットの図5(B)に示す関係テーブル52に基づき、宛先ユニットを特定する。
 宛先決定手段22は、以上に示すような図4、もしくは図5の宛先判定方法により、特定されたユニットを宛先として、メッセージ5に拡張宛先ID(例えば、2ビット情報)を付加し、又は、既に付加された拡張宛先IDの書換え等を行う。これにより、固定フォーマットに拡張宛先IDを付加した上で、メッセージ5をNC21とクロスバ3との間で送受信することができる。
 次に、クロスバ3内のメッセージ処理手段30におけるメッセージ5の処理内容を以下に説明する。
 図6は、クロスバに備えられたメッセージ処理手段の詳細な構成を示す図である。
 クロスバ3内のメッセージ処理手段30は、第1メッセージ受信部300、宛先判定部301、拡張宛先ID削除部302、第1メッセージ送信部303、第2メッセージ受信部304、拡張宛先ID付加部305、第2メッセージ送信部306を備える。なお、図2に示したメッセージ処理手段30は、複数のメッセージ処理手段30を備える構成であっても良い。
 以下は、親ノード2Aに属するNC21Aからクロスバ3を介して、子ノード4Aに送られるメッセージ5の送受信関係の例についての説明である。
 以下の説明において、親ノード(親ノード2A)に属するNCを自NC(NC21A)と定義し、その対応する子ノードを所属子ノード4(子ノード4A)と定義する。また、自NC(NC21A)以外のNCを他NC(NC21B~21D)と定義する。
 図6において、第1メッセージ受信部300は、自NCから図4(A)に示すメッセージ5(図4(A)に示す)を受信する。次に、メッセージ5は宛先判定部301へ送られ、宛先判定部301が拡張宛先IDに基づいて所属子ノード4内のIOC宛のメッセージ5か、他NC宛(他NC経由)のメッセージ5かを判定する。
 宛先判定部301は、所属子ノード4内のIOC宛のメッセージ5であったと判定した場合、拡張宛先ID削除部302にメッセージ5を送る。送られたメッセージ5は、拡張宛先ID削除部302において、拡張宛先IDを削除され、固定フォーマット形式となる。
 拡張宛先IDを削除されたメッセージ5は、宛先判定部301により、第1メッセージ送信部303から判定されたIOC40へ送信される。また、宛先判定部301が他NC宛のメッセージ5と判定した場合、メッセージ5はそのままの形式で第1メッセージ送信部303に送られ、第1メッセージ送信部303から他NCへ送信される。
 一方、メッセージ処理手段30は、IOC40から第2メッセージ受信部304において、固定フォーマット形式のメッセージ5を受信する。更に、このメッセージ5は、第2メッセージ受信部304から拡張宛先ID付加部305に送られ、以下のように処理される。
 即ち、拡張宛先ID付加部305は、例えば2ビットの拡張宛先IDを作成する。拡張宛先IDは、例えば、メッセージ送信元のIOC40の子ノードのノードID(例えば、2ビット)である。この後、拡張宛先ID付加部305は、可変領域に、拡張宛先IDを付加する。
 第2メッセージ送信部306は、拡張宛先ID付加部305からメッセージ5のフォーマット形式のメッセージ5を受取り、メッセージ送信元のIOC40が属する所属子ノード4に対応する自NCへメッセージ5を送信する。
 図7~図9は、クロスバ3のメッセージ処理手段30内の第1の処理、第2の処理及び第3の処理を示す図である。なお、図7~図9において、メッセージ処理手段30は図示省略され、動作説明に必要な機能部のみを図示する。
 ここで、NC21についての送信及び受信したメッセージ5において、その拡張宛先IDは2ビットであるものとする。拡張宛先IDの2ビットはノードIDを表し、宛先IDの3ビットはNC21又はIOC40のユニットIDを表すものとする。
 第1メッセージ受信部300は、NC21から送信されたメッセージ5を受信する。宛先判定部301は、その受信したメッセージ5の宛先IDと拡張宛先IDとに基づき、宛先を判定する。宛先判定部301は、具体的には、受信したメッセージ5に基づき、以下に示す処理を行う。
 宛先判定部301は、例えば、宛先ID=010の場合にはNC21が宛先であり、宛先ID=000又は001の場合にはIOC40が宛先であると判定する。
 図7は、クロスバ3内における自NCから所属子ノード4に属するIOCへのメッセージ転送処理(以下、第1の処理と言う)を示す。
 第1の処理の一例として、NC21AからIOC40Bに対してのメッセージ転送処理が発生した場合において、クロスバ3内のメッセージ処理手段30が実行する場合の処理について説明する。なお、以下の例において、メッセージ5に付加された拡張宛先IDは、“00”であるものとする。
 宛先情報を含むメッセージ5が、NC21Aから送信され、クロスバ3のメッセージ処理手段30内の第1メッセージ受信部300で受信される(T11)。宛先判定部301は、受信したメッセージ5を受取り(T12)、これに含まれる拡張宛先IDの2ビットからどのノード宛かを判定し、宛先IDの3ビットからどの宛先ユニットかを判定する。
 宛先判定部301は、自NC(NC21A)の“ノードID=00”と拡張宛先IDの2ビットが同じ“00”であるため、所属子ノード4宛であり、また、宛先IDの3ビットが“001”であるため、IOCユニット(所属子ノード4に属するIOC40B)であると判定する。
 次に、宛先判定部301は、受信したメッセージ5を拡張宛先ID削除部302に送る(T13)。拡張宛先ID削除部302は、受信したメッセージ5から拡張宛先IDの情報を削除したメッセージ5を第1メッセージ送信部303に送る(T14)。第1メッセージ送信部303は、メッセージ5の宛先のIOC40Bにそのメッセージ5を送信する(T15)。以上により、自NCから所属子ノード4内IOC間へのメッセージ転送処理が実現できる。
 図8は、クロスバ3内における自NCから他NCへのメッセージ転送処理(以下、第2の処理と言う)を示す。
 第2の処理の一例として、NC21BからNC21Cに対してのメッセージ転送処理が発生した場合の処理について説明する。なお、以下の例において、メッセージに付加された拡張宛先ID=10であるものとする。
 その宛先情報を含むメッセージ5が、NC21Bから送信され、第1メッセージ受信部300で受信される(T21)。
 宛先判定部301は、受信したメッセージ5を受取り(T22)、その情報から拡張宛先IDの2ビットからどのノード宛かを判定し、宛先IDの3ビットからどの宛先ユニットかを判定する。この場合、宛先判定部301は、自NC(NC21B)の“ノードID=01”と、拡張宛先IDの2ビットが“10”であることより、宛先は他NC宛(NC21C)であると判定する。
 宛先判定部301は、自NCから他NC宛のメッセージ送信の場合、メッセージに付加された拡張宛先IDを削除せず、そのメッセージ5を第1メッセージ送信部303に送る(T23)。そして、そのメッセージ5を受取った第1メッセージ送信部303は、他NC宛(NC21C)にそのメッセージ5を送信する(T24)。以上により、自NCから他NCへのメッセージ転送処理が実現できる。
 図9は、クロスバ3内における所属子ノード4に属するIOCから自NCへのメッセージ転送処理(以下、第3の処理と言う)を示す。
 第3の処理の一例として、IOC40GからNC21Dに対してのメッセージ処理が発生した場合の処理について説明する。なお、以下の例において、メッセージに付加された“拡張宛先ID=11”とする。
 IOC40Gは、固定フォーマット形式のメッセージ5をクロスバ3に送信する。クロスバ3内の第2メッセージ受信部304は、IOC40Gからのメッセージ5を受信する(T31)。
 このメッセージ5は、更に、第2メッセージ受信部304から拡張宛先ID付加部305に送られ(T32)、拡張宛先ID付加部305により以下のように処理される。
 即ち、拡張宛先ID付加部305は、メッセージ送信元のIOC40Gの子ノードの“ノードID=11”を“拡張宛先ID=11”として、固定フォーマット形式に付加する。
 次に、拡張宛先ID付加部305は、拡張宛先IDを付加したメッセージ5を、第2メッセージ送信部306に送る(T33)。第2メッセージ送信部306は、拡張宛先ID付加部305からメッセージ5を受取り、IOC40Gに属する子ノードに対応する自NC(NC21D)へメッセージ5を送信する(T34)。以上により、所属子ノード4内IOCから自NCへのメッセージ5の転送処理を実行することができる。
 例えば、対応親ノード2に属するCPU200からのメッセージ5が、非対応親ノード2に属するCPU200へ送信される場合、第2の処理により自NC21から他NC21を介する処理が行われる。
 また、対応親ノード2に属するCPU200からのメッセージ5が、非対応親ノード2に属するIOC40へ送信される場合、第2の処理の実行の後、第1の処理が実行される。
 以上のように、このノード間通信方法により、既存のサーバ装置1のメッセージの形式に拡張宛先IDの情報を付加されたメッセージ5が、NC21とクロスバ3で送受信される。更に、IOC40側の送受信されるメッセージ5は、クロスバ3で既存のサーバ装置1のメッセージ形式で処理される。
 このノード間通信方法により、IOC側の変更、又は取替え等を行うことなく、ユニットからのメッセージ5が、増設したNCの属する親ノード2のCPU200へ送信され、又は、増設したIOC40へ送信される。
 図10~図12は、図1のサーバシステムにおけるノード拡張処理フローを示す。図10~図12は、一体となって1つのノード拡張処理を示す。
 本サーバシステムにおいて、親NC21がメッセージ5の宛先を決定し、ターゲット先へメッセージ5が送信されるまでの処理は、メッセージ5の送信元がCPU200かIOC40かに応じて、以下に説明するように実行される。
 ステップS1において、メッセージ5の送信元がCPU200である場合、送信元のCPU200が、メッセージ5の中の宛先ID(図4(A)又は、図5(A)に示す)を親NC21のID(ユニットID)に設定する(ステップS2)。この設定の後、送信元のCPU200がメッセージ5を親NC21へ送信する(ステップS3)。この処理の後、図11のステップS9が実行される。
 一方、ステップS1において、メッセージ5の送信元がIOC40である場合、送信元のIOC40が、メッセージ5の中の宛先IDを親NC21のIDに設定し(ステップS4)、この後、クロスバ3へメッセージ5を送信する(ステップS5)。
 クロスバ3は、このメッセージ5を受信し(ステップS6)、受信したメッセージ5に、送信元のIOC40の親ノードIDを含む情報を拡張宛先IDとして付加する(ステップS7)。クロスバ3が、拡張宛先IDの付加されたメッセージ5を、送信元のIOC40の親NC21へ送信する(ステップS8)。
 この後、親NC21は、CPU200、又はクロスバ3経由で送られてくるIOC40からのメッセージ5を受信し、メッセージ5からターゲット先(メッセージ5の宛先を言う)を判定する(ステップS9)。この判定の結果に基づいて、親NC21は、ターゲット先のNC(ターゲットNC)21が自NCであるか否かを調べる(ステップS10)。ターゲット先が自NCである場合、図12のステップS17が実行される。
 ターゲット先が自NCでない(他NCである)場合、親NC21が、ターゲットNC21へメッセージ5を送信する(ステップS11)。クロスバ3は、この親NC21からのメッセージ5を受信し(ステップS12)、受信したメッセージ5の拡張宛先IDに基づいてターゲットNC21を判定する(ステップS13)。クロスバ3が、ターゲットNC21へ拡張宛先IDの付加されたメッセージ5を送信する(ステップS14)。
 ターゲットNC21は、そのメッセージ5を受信し(ステップS15)、メッセージ5からターゲット先を判定する(ステップS16)。
 この後、ターゲットNC21又は親NC21(以下、単にターゲットNC21という)は、ターゲットがCPU200か否かを調べる(ステップS17)。ターゲットがCPU200である場合、ターゲットNC21がターゲットCPU200へメッセージ5を送信する(ステップS18)。ターゲットCPU200がこのメッセージ5を受信し(ステップS19)、メッセージ5の送信処理は終了する。
 一方、ターゲットがCPU200でない場合、ターゲットNC21が、クロスバ3へメッセージ5を送信する(ステップS20)。クロスバ3は、このメッセージ5を受信し(ステップS21)、受信したメッセージ5からターゲット先を判定する(ステップS22)。クロスバ3において、メッセージ処理手段30がメッセージ5から拡張宛先IDを削除する(ステップS23)。
 この後、クロスバ3は、拡張宛先IDが削除されたメッセージ5をターゲットIOC40へ送信する(ステップS24)。ターゲットIOC40が、このメッセージ5を受信し(ステップS25)、メッセージ5の送信処理は終了となる。
 図13、図14及び図15は、各々、ノード間通信方法の動作の第1の例、第2の例及び第3の例を示す図である。なお、図13~図15のサーバシステムの構成は、図2と同様の構成である。
 図13は、具体的には、子ノード4Aに属するIOC40Aから、ターゲットを子ノード4Dに属するIOC40Hに対してメッセージ5が発行された場合の動作(動作の第1の例)を示す。
 子ノード4Aに属するIOC40Aは、メッセージ5のターゲットアドレス等(図4及び図5に示す)をIOC40Hに設定し、親NC21AのIDを“宛先ID=010”とする情報を含むメッセージ5をクロスバ3に送信する(T41)。
 クロスバ3は、子ノードAに属するIOC40Aから固定フォーマット形式のメッセージ5を受信する。クロスバ3内のメッセージ処理手段30(図示省略)は、受信したメッセージ5に拡張宛先IDを付加する。この場合、拡張宛先IDは、IOC40Aの親ノード2Aの“ノードID=00”(2ビット)からなる“拡張宛先ID=00”(2ビット)である。
 そして、クロスバ3は、IOC40Aから受信したメッセージ5に拡張宛先IDを付加したメッセージ5を、IOC40Aの親NC21Aへ送信する(T42)。
 NC21Aは、クロスバ3から拡張宛先IDが付加されたメッセージ5を受信する。次に、NC21A内の宛先決定手段22A(図示省略)が、受信したメッセージ5からターゲット先を判定する。ターゲット先は、前述の図4又は図5に示すメッセージ5のターゲットアドレスやメッセージ種類に基づいて判定され、“宛先ID”に基づいては判定されない。
 この場合、宛先決定手段22Aは、判定処理によりターゲット先としてIOC40Hと判定する。宛先決定手段22Aは、IOC40Hの親ノード2Dの“ノードID=11” からなる“拡張宛先ID=11”、及び、NC21Dの“ユニットID=010”からなる“宛先ID=010”を設定する。宛先決定手段22Aがメッセージ5の拡張宛先IDと宛先IDを書換え後、NC21Aはそのメッセージ5をクロスバ3へ送信する(T43)。
 クロスバ3は、NC21Aからメッセージ5を受信し、メッセージ処理手段30で宛先判定を行う。メッセージ処理手段30は、“拡張宛先ID=11”に対応するノード2DのNC21Dを宛先と判定する。更に、クロスバ3は、NC21Aからの受信したメッセージ5により他NCのノードIDと判定するため、そのメッセージ5のまま、NC21Dに送信する(T44)。
 NC21Dは、クロスバ3から拡張宛先IDが付加されたメッセージ5を受信し、宛先決定手段22Dによりターゲット先を判定する。この場合、宛先決定手段22Dは、ターゲット先として所属子ノード4Dに属するIOC40Hと判定する。この判定後、宛先決定手段22Dは、ターゲット先が所属子ノード4Dに属するIOC40Hであることより、拡張宛先IDをそのままの値としたメッセージ5をクロスバ3へ送信する(T45)。
 クロスバ3は、NC21Dから拡張宛先IDの付加されたメッセージ5を受信し、メッセージ処理手段30で宛先判定を行う。メッセージ処理手段30は、親ノードNC21Dから子ノード4Dに属するIOC40Hへのメッセージ5であると判定する。メッセージ処理手段30により、メッセージ5に付加された拡張宛先IDがメッセージ5から削除され、クロスバ3から子ノード4D内のIOC40Hへ拡張宛先ID削除後の固定フォーマットに従ったメッセージ5が送信される(T46)。
 ターゲット先であるIOC40Hが、この固定フォーマット形式のメッセージ5をクロスバ3から受信した後、そのメッセージに対する応答メッセージ5をクロスバ3へ送信する(T47)。なお、以降のT48~T52において、応答メッセージ5の送信処理は、その実行の順序を逆にして、前述のメッセージ5の処理と同様に実行される。
 図14は、具体的には、親ノード2Aに属するプロセッサ群20AのCPU200Aから、ターゲットを子ノード4Dに属するIOC40Hとするメッセージ5が発行された場合の動作(動作の第2の例)を示す。
 親ノード2Aに属するCPU200Aは、メッセージ5のターゲットアドレス等をIOC40Hと設定し、親NC21AのIDを“宛先ID=010”とする情報を含むメッセージ5をNC21Aに送信する(T60)。
 NC21Aは、CPU200Aからメッセージ5を受信する。次に、NC21A内の宛先決定手段22Aが、受信したメッセージ5からターゲット先を判定する。
 この場合、宛先決定手段22Aは、判定処理によりターゲット先としてIOC40Hと判定する。宛先決定手段22Aは、IOC40Hの親ノード2Dの“ノードID=11” からなる“拡張宛先ID=11”、及び、NC21Dの“ユニットID=010”からなる“宛先ID=010”を設定する。宛先決定手段22Aがメッセージ5に拡張宛先IDを付加した後、NC21Aはそのメッセージ5をクロスバ3へ送信する(T61)。
 クロスバ3は、NC21Aからメッセージ5を受信し、メッセージ処理手段30で宛先判定を行う。メッセージ処理手段30は、メッセージ5に付加された“拡張宛先ID=11”の2ビットから、対応するノード2Dに属するNC21Dを宛先と判定する。更に、クロスバ3は、NC21Aからの受信したメッセージ5により他NCのノードIDと判定するため、そのメッセージ5のまま、NC21Dに送信する(T62)。
 NC21Dは、クロスバ3から拡張宛先IDが付加されたメッセージ5を受信し、宛先決定手段22Dによりターゲット先を判定する。この場合、宛先決定手段22Dは、ターゲット先として所属子ノード4Dに属するIOC40Hと判定する。この判定後、宛先決定手段22Dは、ターゲット先が所属子ノード4Dに属するIOC40Hであることにより、拡張宛先IDをそのままとしてメッセージ5をクロスバ3へメッセージ5を送信する(T63)。
 クロスバ3は、NC21Dから拡張宛先IDの付加されたメッセージ5を受信し、メッセージ処理手段30で宛先判定を行う。メッセージ処理手段30は、親ノードNC21Dから子ノード4Dに属するIOC40Hへのメッセージ5であると判定する。メッセージ処理手段30により、メッセージ5に付加された拡張宛先IDがメッセージ5から削除され、クロスバ3から子ノード4D内のIOC40Hへ拡張宛先ID削除後の固定フォーマット形式のメッセージ5が送信される(T64)。
 ターゲット先であるIOC40Hが、このメッセージ5をクロスバ3から受信し、その応答メッセージ5を送信元へ向けて送信する(T65)。なお、以降のT66~T69において、応答メッセージ5の送信処理は、その実行の順序を逆にして、前述のメッセージ5の処理と同様に実行される。
 図15は、具体的には、子ノード4A内のIOC40Aから、ターゲットを親ノード2Dに属するプロセッサ群20DのCPU200Hとするメッセージ5が発行された場合の動作(動作の第3の例)を示す。
 子ノード4Aに属するIOC40Aは、メッセージ発行先のターゲットアドレス等をCPU200Hに設定し、親NC21AのIDを“宛先ID=010” とする情報を含むメッセージ5をクロスバ3に送信する(T70)。
 クロスバ3は、子ノード4Aに属するIOC40Aからメッセージ5を受信する。クロスバ3内のメッセージ処理手段30は、受信したメッセージ5に拡張宛先IDを付加する。この場合、拡張宛先IDは、IOC40Aの親ノード2Aの“ノードID=00”(2ビット)からなる“拡張宛先ID=00”(2ビット)である。
 そして、クロスバ3は、IOC40Aから受信したメッセージ5に拡張宛先IDを付加したメッセージ5を、親NC21Aへ送信する(T71)。
 NC21Aは、クロスバ3から拡張宛先IDが付加されたメッセージ5を受信する。次に、NC21A内の宛先決定手段22Aが、その受信したメッセージ5を処理する。宛先決定手段22Aは、受信したメッセージ5からターゲット先を判定する。なお、ターゲット先は、前述の図4又は図5に示すメッセージ5を基に判定されるものであり、宛先ID情報(3ビット)を示すものではなく、ターゲットアドレス、又はメッセージ種類から判定される。
 この場合、宛先決定手段22Aは、判定処理によりターゲット先としてIOC40Hと判定する。宛先決定手段22Aは、IOC40Hの親ノード2Dの“ノードID=11” からなる“拡張宛先ID=11”、及び、NC21Dの“ユニットID=010”からなる“宛先ID=010”を設定する。宛先決定手段22Aがメッセージ5に付加された拡張宛先ID書換え後、NC21Aはそのメッセージ5をクロスバ3へ送信する(T72)。
 クロスバ3は、NC21Aからメッセージ5を受信し、メッセージ処理手段30で宛先判定を行う。メッセージ処理手段30は、“拡張宛先ID=11”の2ビットに対応するノード2DのNC21Dを宛先と判定する。クロスバ3は、メッセージ処理手段30により、NC21Aの受信したメッセージ5から他NCのノードIDの宛先と判定するため、そのメッセージ5のまま、NC21Dに送信する(T73)。
 NC21Dは、クロスバ3から拡張宛先IDが付加されたメッセージ5を受信し、宛先決定手段22Dによりターゲット先を判定する。この場合、宛先決定手段22Dは、ターゲット先としてプロセッサ群20D内のCPU200Hと判定する。この判定後、NC21Dは、自ノード2Dに属するCPU200Hにメッセージ5を送信する(T74)。なお、T75~T79において、応答メッセージ5の送信処理は、その実行の順序を逆にして、前述のメッセージ5の処理と同様に実行される。
 ここで、宛先決定手段22は、プロセッサ群20へメッセージ5を送信する場合、拡張宛先IDを削除したメッセージ5を送信するものとしても良い。この場合、CPU200側も固定フォーマット形式のメッセージ5に対応するようにすることができる。

Claims (5)

  1.  複数の入出力装置と、各々が複数のCPUを有する複数のプロセッサ群と、前記複数のプロセッサ群に接続された複数のノードコントローラと、前記複数の入出力装置と複数のノードコントローラとの間に設けられたクロスバとを備え、前記クロスバを介して前記複数の入出力装置と複数のCPUとの間でメッセージを送受信するサーバ装置におけるノード間通信方法において、
     メッセージを送信する前記入出力装置が、当該メッセージを受信すべき入出力装置又はノードコントローラに予め割り当てられた識別情報である固定長の宛先IDと前記ターゲットを特定する内部情報とを含むメッセージを、前記入出力装置に予め対応付けられたノードコントローラである第1のノードコントローラを固定された宛先として、前記クロスバに送信するステップと、
     前記クロスバが、前記メッセージを、前記第1のノードコントローラに送信するステップと、
     前記第1のノードコントローラが、受信した前記メッセージの内部情報に基づいて前記ターゲットを表す情報を生成し、前記情報を前記メッセージに付加するステップと、
     前記第1のノードコントローラが、前記情報の付加されたメッセージを、前記ターゲットである入出力装置に予め対応付けられたノードコントローラ又は前記ターゲットであるCPUを有するプロセッサ群に接続されたノードコントローラである第2のノードコントローラを宛先として、前記クロスバに送信するステップと、
     前記クロスバが、前記情報の付加されたメッセージから前記情報を削除することにより前記メッセージを復元し、復元した前記メッセージを前記第2のノードコントローラに送信するステップと、
     を有することを特徴とするノード間通信方法。
  2.  前記第1のノードコントローラが、受信した前記メッセージの内部情報に基づいて前記ターゲットを表す情報を生成するステップは、受信した前記メッセージの内部情報の一部であって、当該メッセージを受信すべき入出力装置又はCPUのアドレスを表すターゲットアドレスをデコードすることにより、前記ターゲットを表す情報を生成するステップであることを特徴とする請求項1記載のノード間通信方法。
  3.  前記第1のノードコントローラが、受信した前記メッセージの内部情報に基づいて前記ターゲットを表す情報を生成するステップは、受信した前記メッセージの内部情報の一部であって、当該メッセージの種類を表すメッセージ種類をデコードすることにより、前記ターゲットを表す情報を生成するステップであることを特徴とする請求項1記載のノード間通信方法。
  4.  複数の入出力装置と、各々が複数のCPUを有する複数のプロセッサ群と、前記複数のプロセッサ群に接続された複数のノードコントローラと、前記複数の入出力装置と複数のノードコントローラとの間に設けられたクロスバとを備え、前記クロスバを介して前記複数の入出力装置と複数のCPUとの間でメッセージを送受信するサーバ装置であって、
     メッセージを送信する入出力装置であって、当該メッセージを受信すべき入出力装置又はノードコントローラに予め割り当てられた識別情報である固定長の宛先IDと前記ターゲットを特定する内部情報とを含むメッセージを、前記入出力装置に予め対応付けられたノードコントローラである第1のノードコントローラを固定された宛先として、前記クロスバに送信する入出力装置と、
     受信した前記メッセージの内部情報に基づいて前記ターゲットを表す情報を生成し、前記情報を前記メッセージに付加し、前記情報の付加されたメッセージを、前記ターゲットである入出力装置に予め対応付けられたノードコントローラ又は前記ターゲットであるCPUを有するプロセッサ群に接続されたノードコントローラである第2のノードコントローラを宛先として、前記クロスバに送信する第1のノードコントローラと、
     前記入出力装置又はCPUから受信した前記メッセージを前記第1のノードコントローラに送信すると共に、前記第1のノードコントローラから受信した前記情報の付加されたメッセージから前記情報を削除することにより前記メッセージを復元し、復元した前記メッセージを前記第2のノードコントローラに送信するクロスバとを備える
     ことを特徴とするサーバ装置。
  5.  複数の入出力装置と、各々が複数のCPUを有する複数のプロセッサ群と、前記複数のプロセッサ群に接続された複数のノードコントローラと、前記複数の入出力装置と複数のノードコントローラとの間に設けられたクロスバとを備え、前記クロスバを介して前記複数の入出力装置と複数のCPUとの間でメッセージを送受信するサーバ装置におけるノード間通信方法を実行するノード間通信プログラムであって、
     前記プログラムは、前記サーバ装置に、
     メッセージを送信する前記入出力装置において、当該メッセージを受信すべき入出力装置又はノードコントローラに予め割り当てられた識別情報である固定長の宛先IDと前記ターゲットを特定する内部情報とを含むメッセージを、前記入出力装置に予め対応付けられたノードコントローラである第1のノードコントローラを固定された宛先として、前記クロスバに送信する処理と、
     前記クロスバにおいて、前記メッセージを、前記第1のノードコントローラに送信する処理と、
     前記第1のノードコントローラにおいて、受信した前記メッセージの内部情報に基づいて前記ターゲットを表す情報を生成し、前記情報を前記メッセージに付加する処理と、
     前記第1のノードコントローラにおいて、前記情報の付加されたメッセージを、前記ターゲットである入出力装置に予め対応付けられたノードコントローラ又は前記ターゲットであるCPUを有するプロセッサ群に接続されたノードコントローラである第2のノードコントローラを宛先として、前記クロスバに送信する処理と、
     前記クロスバにおいて、前記情報の付加されたメッセージから前記情報を削除することにより前記メッセージを復元し、復元した前記メッセージを前記第2のノードコントローラに送信する処理とを、実行させる
     ことを特徴とするノード間通信プログラム。
PCT/JP2008/064698 2008-08-18 2008-08-18 ノード間通信方法 WO2010021018A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2008/064698 WO2010021018A1 (ja) 2008-08-18 2008-08-18 ノード間通信方法
EP08809033A EP2320330A1 (en) 2008-08-18 2008-08-18 Internode communication method
JP2010525509A JP5212476B2 (ja) 2008-08-18 2008-08-18 ノード間通信方法、サーバ装置、ノード間通信プログラム
US12/929,570 US8386692B2 (en) 2008-08-18 2011-02-01 Method for communicating between nodes and server apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/064698 WO2010021018A1 (ja) 2008-08-18 2008-08-18 ノード間通信方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/929,570 Continuation US8386692B2 (en) 2008-08-18 2011-02-01 Method for communicating between nodes and server apparatus

Publications (1)

Publication Number Publication Date
WO2010021018A1 true WO2010021018A1 (ja) 2010-02-25

Family

ID=41706914

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/064698 WO2010021018A1 (ja) 2008-08-18 2008-08-18 ノード間通信方法

Country Status (4)

Country Link
US (1) US8386692B2 (ja)
EP (1) EP2320330A1 (ja)
JP (1) JP5212476B2 (ja)
WO (1) WO2010021018A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012029163A1 (ja) * 2010-09-02 2012-03-08 富士通株式会社 ノードコントローラ、ノードコントローラの制御方法及びコンピュータシステム
JP2017151622A (ja) * 2016-02-23 2017-08-31 富士通株式会社 情報処理装置、演算処理装置及び情報処理装置の制御方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140036731A (ko) * 2012-09-18 2014-03-26 한국전자통신연구원 응용 프로그램 개발 방법 및 시스템
CN111917656B (zh) * 2017-07-27 2023-11-07 超聚变数字技术有限公司 传输数据的方法和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200435A (ja) * 1993-12-28 1995-08-04 Nippon Telegr & Teleph Corp <Ntt> 分散処理システムにおけるメッセージ通信方式
JP2003122729A (ja) * 2001-10-17 2003-04-25 Hitachi Ltd マルチノードシステム
JP2004258998A (ja) * 2003-02-26 2004-09-16 Nec Corp プロセッサ間通信制御装置のクロスバ回路及びこれを用いたコンピュータシステム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2538976A1 (fr) * 1982-12-29 1984-07-06 Servel Michel Systeme de commutation de paquets synchrones de longueur fixe
US5422881A (en) * 1989-06-30 1995-06-06 Inmos Limited Message encoding
GB2268374A (en) * 1992-06-23 1994-01-05 Ibm Network addressing
US6044076A (en) * 1995-06-09 2000-03-28 Canon Kabushiki Kaisha Network system for transmitting a plurality of channels, and node device, packet transmission method, terminal equipment connection table generation method, and connection information registration method used in the system
US7161937B1 (en) * 1996-12-13 2007-01-09 Intel Corporation Method and apparatus for routing encoded signals through a network
JP2000132527A (ja) 1998-10-27 2000-05-12 Nec Eng Ltd プロセッサ間通信制御装置
US20050281282A1 (en) * 2004-06-21 2005-12-22 Gonzalez Henry J Internal messaging within a switch
US7565463B2 (en) * 2005-04-22 2009-07-21 Sun Microsystems, Inc. Scalable routing and addressing
US7430630B2 (en) * 2005-10-27 2008-09-30 International Business Machines Corporation Routing mechanism in PCI multi-host topologies using destination ID field
US7380046B2 (en) * 2006-02-07 2008-05-27 International Business Machines Corporation Method, apparatus, and computer program product for routing packets utilizing a unique identifier, included within a standard address, that identifies the destination host computer system
US7571273B2 (en) * 2006-12-06 2009-08-04 International Business Machines Corporation Bus/device/function translation within and routing of communications packets in a PCI switched-fabric in a multi-host environment utilizing multiple root switches

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200435A (ja) * 1993-12-28 1995-08-04 Nippon Telegr & Teleph Corp <Ntt> 分散処理システムにおけるメッセージ通信方式
JP2003122729A (ja) * 2001-10-17 2003-04-25 Hitachi Ltd マルチノードシステム
JP2004258998A (ja) * 2003-02-26 2004-09-16 Nec Corp プロセッサ間通信制御装置のクロスバ回路及びこれを用いたコンピュータシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012029163A1 (ja) * 2010-09-02 2012-03-08 富士通株式会社 ノードコントローラ、ノードコントローラの制御方法及びコンピュータシステム
JP5553111B2 (ja) * 2010-09-02 2014-07-16 富士通株式会社 ノードコントローラ、ノードコントローラの制御方法及びコンピュータシステム
JP2017151622A (ja) * 2016-02-23 2017-08-31 富士通株式会社 情報処理装置、演算処理装置及び情報処理装置の制御方法

Also Published As

Publication number Publication date
US20110138099A1 (en) 2011-06-09
US8386692B2 (en) 2013-02-26
JPWO2010021018A1 (ja) 2012-01-26
JP5212476B2 (ja) 2013-06-19
EP2320330A1 (en) 2011-05-11

Similar Documents

Publication Publication Date Title
US10732879B2 (en) Technologies for processing network packets by an intelligent network interface controller
KR101559644B1 (ko) 통신 제어 시스템, 스위치 노드 및 통신 제어 방법
KR100812225B1 (ko) 멀티프로세서 SoC 플랫폼에 적합한 크로스바 스위치구조
CN108270676B (zh) 一种基于Intel DPDK的网络数据处理方法及装置
JP2006504184A5 (ja)
JP5231400B2 (ja) マルチプロセッサ・ゲートウェイ
CN107851078B (zh) 一种PCIe设备的聚合友好型地址分配的方法和系统
JP5212476B2 (ja) ノード間通信方法、サーバ装置、ノード間通信プログラム
CN1279790A (zh) 快速16位分离事务i/o总线
US20170293589A1 (en) Parallel processing apparatus and method for controlling communication
JP2016066278A (ja) データ転送制御システム、データ転送制御方法、及び、データ転送制御プログラム
CN115189977B (zh) 一种基于axi协议的广播传输方法、系统及介质
JP5272367B2 (ja) 無線lanアクセスポイントおよびプログラム
JP4104939B2 (ja) マルチプロセッサシステム
JP2014204160A (ja) ゲートウェイ装置
CN111147611B (zh) 参考附加网络地址转换表提供快速分组转发的电子设备
KR20190108001A (ko) 네트워크온칩 및 이를 포함하는 컴퓨팅 장치
WO2017047657A1 (ja) バッファ制御装置、通信ノード、及び中継装置
US8069273B2 (en) Processing module
JP2009276828A (ja) Usb接続装置、及びusb接続方法
CN112052200A (zh) 信息处理装置、信息处理系统以及存储介质
WO2006048826A1 (en) Integrated circuit and method for data transfer in a network on chip environment
US11093308B2 (en) System and method for sending messages to configure remote virtual endpoints in nodes of a systolic array
US11604683B2 (en) System and methods for tag-based synchronization of tasks for machine learning operations
US8055813B2 (en) Flexible and efficient configuration of multiple common interfaces

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08809033

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010525509

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2008809033

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE