WO2018101136A1 - 情報処理システム、半導体集積回路及び情報処理方法 - Google Patents
情報処理システム、半導体集積回路及び情報処理方法 Download PDFInfo
- Publication number
- WO2018101136A1 WO2018101136A1 PCT/JP2017/041935 JP2017041935W WO2018101136A1 WO 2018101136 A1 WO2018101136 A1 WO 2018101136A1 JP 2017041935 W JP2017041935 W JP 2017041935W WO 2018101136 A1 WO2018101136 A1 WO 2018101136A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- address
- semiconductor integrated
- memory
- integrated circuit
- circuit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates to an information processing system, a semiconductor integrated circuit, and an information processing method.
- SoC System onhipChip
- CPU cluster As one of information processing systems including a plurality of SoCs, a CPU cluster has been proposed in which a plurality of CPUs (Central / Processing / Units) are connected via a network and parallel processing by each CPU is realized.
- CPUs Central / Processing / Units
- the cluster configuration may be a tightly coupled cluster.
- a tightly coupled cluster shared memory and inter-process communication are used, and each CPU performs cooperative processing.
- Ethernet capable of high-speed communication at a relatively low cost.
- protocol overhead such as the next transmission cannot be performed until the sender waits for the response signal from the destination to be received, which limits the speedup of the tightly coupled cluster. There was a problem.
- a data transmission destination that is one of the plurality of semiconductor integrated circuits is determined.
- a first address of the connected first memory is designated, and the first address is defined by second memory map information referred to by the data transmission destination.
- a first semiconductor integrated circuit that converts the data into an address and outputs the second address and transmission data using a bus interface capable of continuous transmission without waiting for a response from the data transmission destination;
- a second semiconductor integrated circuit that receives the second address and the transmission data and writes the transmission data to a reception buffer area of the first memory corresponding to the second address.
- data transmission as one of the plurality of semiconductor integrated circuits is performed based on first memory map information in which addresses of the memories used by the plurality of semiconductor integrated circuits are defined.
- a control circuit for designating a first address of a first memory connected first; and the first address defined in second memory map information referred to by the data transmission destination.
- An address conversion circuit for converting to a second address of the memory, and a first bus interface for outputting the second address and transmission data, and capable of continuous transmission without waiting for a response from the data transmission destination A semiconductor integrated circuit is provided.
- the first semiconductor integrated circuit has the plurality of semiconductor integrated circuits based on first memory map information in which addresses of the respective memories used by the plurality of semiconductor integrated circuits are defined.
- a first address of a first memory connected to a data transmission destination that is one of the circuits is specified, and the first address is defined in second memory map information referred to by the data transmission destination.
- the second address of the first memory is converted to a second address, and the second address and transmission data are output using a bus interface capable of continuous transmission without waiting for a response from the data transmission destination.
- the switch transfers the second address and the transmission data to the data transmission destination using the bus interface
- the second semiconductor integrated circuit which is the data transmission destination includes: An information processing method is provided that receives the second address and the transmission data using a bus interface and writes the transmission data to a reception buffer area of the first memory corresponding to the second address. Is done.
- FIG. 1 is a diagram illustrating an example of an information processing system according to the first embodiment.
- the information processing system 10 includes semiconductor integrated circuits 11 and 12, a switch 13, and memories 14 and 15.
- Each of the semiconductor integrated circuits 11 and 12 and the switch 13 is, for example, a one-chip SoC.
- FIG. 1 two semiconductor integrated circuits 11 and 12 and one switch 13 are shown for simplicity of explanation, but the number is not limited to this.
- An example of an information processing system having three or more semiconductor integrated circuits and two or more switches will be described later.
- the semiconductor integrated circuit 11 includes a control circuit 11a, an interrupt control circuit 11b, an address conversion circuit 11c, a PCIe interface (I / F) 11d, and a system bus 11e.
- a memory 14 is connected to the semiconductor integrated circuit 11.
- the control circuit 11a controls each part of the semiconductor integrated circuit 11 via the system bus 11e and executes various application processes.
- the control circuit 11a is, for example, a microcontroller, a CPU, or a CPU having a plurality of CPU cores.
- the interrupt control circuit 11b notifies the control circuit 11a of the occurrence of an interrupt based on an interrupt setting value set in a memory circuit (not shown) (hereinafter referred to as an interrupt setting register).
- the address conversion circuit 11c performs address conversion based on the memory map information 11m and 12m in which addresses of the memories 14 and 15 used by the plurality of semiconductor integrated circuits 11 and 12 are defined.
- the PCIe interface 11d is an example of a bus interface capable of continuous transmission without waiting for a response from the transmission destination, and transmits / receives information to / from the switch 13 via the PCIe bus.
- the semiconductor integrated circuit 12 also includes a control circuit 12a, an interrupt control circuit 12b, an address conversion circuit 12c, a PCIe interface 12d, and a system bus 12e.
- the switch 13 includes PCIe interfaces 13a and 13b and a system bus 13c that connects the PCIe interfaces 13a and 13b.
- the PCIe interface 13a transmits and receives information to and from the PCIe interface 11d of the semiconductor integrated circuit 11.
- the PCIe interface 13b transmits and receives information to and from the PCIe interface 12d of the semiconductor integrated circuit 12.
- the PCIe interfaces 11d, 12d, 13a, and 13b are used, the PCIe interfaces 11d and 12d are set so that the semiconductor integrated circuits 11 and 12 become endpoints.
- the PCIe interfaces 13a and 13b are set so that the switch 13 becomes a root complex.
- USB Universal Serial Bus
- the memories 14 and 15 are memories connected to the semiconductor integrated circuits 11 and 12, respectively, and store programs executed by the control circuits 11a and 12a and various data (including received data).
- the memories 14 and 15 may be volatile semiconductor memories such as DRAM (Dynamic Random Access Memory) or volatile storage such as flash memory. Note that the memories 14 and 15 may be included in the semiconductor integrated circuits 11 and 12. Further, there may be a plurality of memories 14 and 15 respectively.
- the semiconductor integrated circuit 11 as a data transmission source and the semiconductor integrated circuit 12 as a data transmission destination.
- the same processing is performed when the semiconductor integrated circuit 11 is a data transmission destination and the semiconductor integrated circuit 12 is a data transmission source.
- the semiconductor integrated circuit 11 may be referred to as SOC1
- the semiconductor integrated circuit 12 may be referred to as SOC2.
- the control circuit 11a designates an address based on the memory map information 11m of the SOC 1 as shown in FIG.
- the memory map information 11m the address of the memory space of the memory 14 of its own SOC (that is, SOC1) and the address of the memory space of the memory 15 of another SOC (that is, SOC2) are defined. Further, the memory map information 11m defines the address of the interrupt setting register space of the own SOC and the address of the interrupt setting register space of the other SOC.
- An interrupt setting register (not shown) is provided in, for example, the interrupt control circuits 11b and 12b.
- the memory map information 12m referred to by the semiconductor integrated circuit 12, as in the memory map information 11m, the address of the memory space of the memory 15 of its own SOC (ie, SOC2) and the memory space of other SOC (ie, SOC1) An address is defined. Further, the memory map information 12m defines the address of the interrupt setting register space of the own SOC and the address of the interrupt setting register space of the other SOC.
- control circuit 11a designates an address defined by the memory map information 11m of the memory 15 in which the data (transmission data) is written.
- FIG. 1 shows an example in which the control circuit 11a designates the address a1 of the other SOC memory space defined by the memory map information 11m.
- the address conversion circuit 11c converts the address a3 in the SOC2 memory space defined by the memory map information 12m of the SOC2 by, for example, a conversion table (not shown).
- the PCIe interface 11d outputs (transmits) the converted address a3 and transmission data.
- the address a3 and the transmission data are transferred to the semiconductor integrated circuit 12 by the switch 13.
- the semiconductor integrated circuit 12 receives the address a3 and the transmission data using the PCIe interface 12d, and writes the transmission data in the reception buffer area of the memory 15 corresponding to the address.
- the address conversion circuit 12c converts the address a3 into an actual address in the memory 15 using a conversion table (not shown). As a result, transmission data is written into the reception buffer area of the memory 15 starting from the address.
- control circuit 11a of the semiconductor integrated circuit 11 designates an address defined by the memory map information 11m of the interrupt setting register of the semiconductor integrated circuit 12.
- FIG. 1 shows an example in which the control circuit 11a designates the address a2 of the other SOC register space defined by the memory map information 11m.
- the address conversion circuit 11c converts the address a4 in the SOC2 interrupt setting register space defined by the SOC2 memory map information 12m, for example, using a conversion table (not shown).
- the PCIe interface 11d outputs (transmits) the converted address a4 and an interrupt setting value (for example, “1”) indicating the occurrence of an interrupt.
- the address a4 and the interrupt set value are transferred to the semiconductor integrated circuit 12 by the switch 13.
- the semiconductor integrated circuit 12 receives the address a4 and the interrupt setting value using the PCIe interface 12d, and writes the interrupt setting value in the interrupt setting register corresponding to the address.
- the address conversion circuit 12c converts the address a4 into an actual address of the interrupt setting register using a conversion table (not shown).
- the interrupt setting value is written in the interrupt setting register specified by the address.
- the interrupt control circuit 12b When an interrupt setting value indicating the occurrence of an interrupt is written in the interrupt setting register, the interrupt control circuit 12b notifies the control circuit 12a that an interrupt has occurred. As a result, the control circuit 12 a determines the end of reception (writing) of the transmission data, and reads out the transmission data written in the reception buffer area of the memory 15. Then, the control circuit 12a executes various application processes using, for example, the read transmission data.
- the semiconductor integrated circuit 11 is a data transmission destination (semiconductor) that is one of the plurality of semiconductor integrated circuits 11 and 12 based on the memory map information 11m.
- the address a1 of the memory 15 used by the integrated circuit 12) is designated.
- the semiconductor integrated circuit 11 converts the address into an address a3 of the memory 15 defined in the memory map information 12m referenced by the data transmission destination.
- the semiconductor integrated circuit 11 outputs the address a3 and transmission data using the PCIe interface 11d.
- the switch 13 transfers the address a3 and transmission data to the data transmission destination using the PCIe interfaces 13a and 13b.
- the semiconductor integrated circuit 12 that is the data transfer destination receives the address a3 and the transmission data by using the PCIe interface, and writes the transmission data in the reception buffer area of the memory 15 corresponding to the address a3.
- the semiconductor integrated circuit 11 can perform transmission (write) processing by directly specifying the address based on the memory map information 11m in which the address of the memory 15 used by the semiconductor integrated circuit 12 is defined.
- the semiconductor integrated circuit 11 can continuously transmit data without waiting for a response from the data transmission destination. From the above, the processing of the information processing system 10 can be speeded up.
- the semiconductor integrated circuit 11 sets the interrupt setting value by directly specifying the address based on the memory map information 11m in which the address of the interrupt setting register of the semiconductor integrated circuit 12 is defined. Then, when an interrupt setting value indicating the occurrence of an interrupt is set, the semiconductor integrated circuit 12 determines that reception (writing) has ended, and reads transmission data. This makes it possible to simulate an Ethernet protocol that performs data reading processing when a packet is received.
- FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
- the information processing system 20 includes a plurality of semiconductor integrated circuits including semiconductor integrated circuits 21a0, 21a1, 21an, and 21an + 1, and a plurality of DRAMs including DRAMs 22a0, 22a1, 22an, and 22an + 1. Further, two-stage switches 23 and 24 are provided.
- the semiconductor integrated circuit 21a0 has a CPU 21b0, an ICU (Interrupt Controller Unit) 21c0, an MMU (Memory Management Unit) 21d0, a PCIe interface 21e0, and a system bus 21f0. Further, the DRAM 22a0 is connected to the semiconductor integrated circuit 21a0.
- the CPU 21b0 is an example of the control circuit 11a shown in FIG. 1, and controls each part of the semiconductor integrated circuit 21a0 via the system bus 21f0.
- the ICU 21c0 is an example of the interrupt control circuit 11b shown in FIG. 1, and notifies the CPU 21b0 that an interrupt has occurred.
- the MMU 21d0 has the function of the address conversion circuit 11c shown in FIG. 1, and performs address conversion based on memory map information in which addresses of a plurality of DRAMs are defined.
- the PCIe interface 21e0 is an example of a bus interface capable of continuous transmission without waiting for a response from the transmission destination, and performs transmission / reception of information with the switch 23.
- the semiconductor integrated circuit 21a1 also includes a CPU 21b1, an ICU 21c1, an MMU 21d1, a PCIe interface 21e1, and a system bus 21f1. Although not shown, other semiconductor integrated circuits have similar elements.
- the switch 23 includes PCIe interfaces 23a0, 23a1, ..., 23an, 23an + 1, MMUs 23b0, 23b1, ..., 23bn, 23bn + 1, and a system bus 23c.
- the switch 24 includes a plurality of PCIe interfaces including PCIe interfaces 24a1 and 24a2, a plurality of MMUs including MMUs 24b1 and 24b2, and a system bus 24c.
- the PCIe interfaces 23a0 to 23an + 1 are connected to the system bus 23c via the MMUs 23b0 to 23bn + 1.
- the PCIe interfaces 24a1 and 24a2 are also connected to the system bus 24c via the MMUs 24b1 and 24b2.
- the PCIe interface 23a0 transmits / receives information to / from the PCIe interface 21e0 of the semiconductor integrated circuit 21a0.
- the PCIe interface 23a1 transmits / receives information to / from the PCIe interface 21e1 of the semiconductor integrated circuit 21a1.
- the PCIe interface 23an transmits and receives information to and from the PCIe interface (not shown) of the semiconductor integrated circuit 21an.
- the PCIe interface 23an + 1 transmits / receives information to / from the PCIe interface 24a1 of the switch 24.
- the PCIe interface 24a2 transmits and receives information to and from the PCIe interface (not shown) of the semiconductor integrated circuit 21an + 1.
- settings are made in the PCIe interfaces 21e0 and 21e1 so that the semiconductor integrated circuits 21a0 and 21a1 become endpoints.
- the PCIe interfaces 23a0 to 23an, 24a1, and 24a2 are set so that the switches 23 and 24 become a root complex.
- the PCIe interface 23an + 1 is set so that the switch 23 becomes an end point.
- the MMU 23b0 has a function of converting an address received by the PCIe interface 23a0 into another address using a conversion table (not shown).
- the MMU 23b1 has a function of converting an address received by the PCIe interface 23a1 into another address using a conversion table (not shown).
- the MMU 23bn has a function of converting an address received by the PCIe interface 23an into another address using a conversion table (not shown).
- the MMU 23bn + 1 has a function of converting an address received by the PCIe interface 23an + 1 and an address transmitted by the PCIe interface 23an + 1 into another address using a conversion table (not shown).
- the MMU 24b1 has a function of converting an address received by the PCIe interface 23an into another address using a conversion table (not shown).
- the MMU 24b2 has a function of converting an address received by the PCIe interface 24a2 into another address using a conversion table (not shown).
- n + 1 semiconductor integrated circuits 21 a 1 to 21 an are connected to the switch 23.
- the switch 24 is also connected to a plurality of semiconductor integrated circuits including the semiconductor integrated circuit 21an + 1.
- switch 24 when the maximum number of semiconductor integrated circuits that can be connected to one switch 23 is determined due to physical restrictions or the like, by adding a switch 24 as shown in FIG. Including the information processing system 20 can be realized.
- the example which has the two switches 23 and 24 is shown in FIG. 1, three or more switches may be provided.
- the switches 23 and 24 are also provided with MMUs 23b0 to 23bn + 1, 24b1 and 24b2. By providing such MMUs 23b0 to 23bn + 1, 24b1, and 24b2, the communication connection status can be changed.
- the semiconductor integrated circuit 21a0 outputs the address of the DRAM 22a1 defined by the memory map information referred to by the semiconductor integrated circuit 21a1 as the address of the data transmission destination (write destination).
- the MMU 23b0 of the switch 23 converts the address into, for example, the address of the DRAM 22an defined by the memory map information referred to by the semiconductor integrated circuit 21an, the transmission data can be written in the DRAM 22an.
- the MMU 23b0 can perform the same conversion on the address of the interrupt setting register.
- the data transmission destination can be changed without changing other semiconductor integrated circuits. That is, the communication connection status can be changed.
- N semiconductor integrated circuits including the semiconductor integrated circuits 21a0 to 21an + 1 perform addressing of write destinations based on, for example, memory map information as described below.
- the memory map information is, for example, a memory (DRAM 22a0) used by N semiconductor integrated circuits including the semiconductor integrated circuits 21a0 to 21an + 1, or a ROM (Read Only Memory) provided in each of the N semiconductor integrated circuits. Or the like.
- N semiconductor integrated circuits including the semiconductor integrated circuits 21a0 to 21an + 1 are represented as SOC [0] to SOC [N].
- the semiconductor integrated circuit 21a0 is expressed as SOC [0]
- the semiconductor integrated circuit 21a1 is expressed as SOC [1].
- FIG. 3 is a diagram illustrating an example of the memory map information.
- addresses of the ICU register space 30b0, local DRAM spaces 30c0, 30d0, 30e0, and PCIe bus spaces 30f0, 30g0 are defined.
- the address of the ICU register space 30b0 corresponds to the address of the interrupt setting register that stores an interrupt setting value used to determine whether or not the ICU 21c0 of SOC [0] notifies the CPU 21b0 of the occurrence of an interrupt.
- the interrupt setting register is provided in the ICU 21c0, for example.
- the addresses of the local DRAM spaces 30c0 to 30e0 correspond to the addresses of the DRAM 22a0.
- the local DRAM space 30c0 is defined by addresses 0x0000_8000_0000 to 0x0000_FFFF_FFFF.
- the local DRAM space 30c0 is defined by addresses 0x0008_8000_0000 to 0x000F_FFFF_FFFF.
- the DRAM space 30e0 is defined by addresses 0x0088_0000_0000 to 0x008F_FFFF_FFFF.
- the number of local DRAM spaces is not limited to three.
- the address of the PCIe bus space 30f0 corresponds to the address of the interrupt setting register of other SOC [1], SOC [2],..., SOC [N] connected by the PCIe bus.
- the PCIe bus space 30f0 is defined by addresses 0x0006_0000_0000 to 0x0006_FFFF_FFFF.
- the address of the PCIe bus space 30f0 corresponds to the addresses of the ICU register spaces 30b1, 30b2 to 30bN defined by the memory map information 30a1, 30a2,..., 30aN for SOC [1] to SOC [N].
- the address of the PCIe bus space 30g0 corresponds to the address of a memory (DRAM 22a1, etc.) used by other SOC [1], SOC [2], ..., SOC [N] connected by the PCIe bus.
- the PCIe bus space 30g0 is defined by addresses 0x0040_0000_0000 to 0x007F_FFFF_FFFF.
- Memory addresses used by SOC [1] to SOC [N] are defined as addresses of local DRAM spaces 30c1, 30d1, 30e1, 30c2, 30d2, 30e2,..., 30cN, 30dN, and 30eN in the memory map information 30a1 to 30aN. ing.
- the address of the PCIe bus space 30g0 is associated with the addresses of the local DRAM spaces 30e1 to 30eN of the memory map information 30a1 to 30aN.
- the local DRAM spaces 30e0 to 30eN defined by the memory map information 30a0 to 30aN function as reception buffer areas in which write data transmitted from other SOCs are written. That is, the local DRAM spaces 30e0 to 30eN are shared areas accessible from other SOCs.
- PCIe bus space is also defined in the memory map information 30a1 to 30aN for the SOC [1] to SOC [N], but the illustration is omitted.
- the memory map information 30a0 to 30aN may define memory space addresses for other peripheral devices.
- FIG. 4 is a diagram showing an example of a shared area on the DRAM of each SOC.
- FIG. 4 shows an example of a shared area on a DRAM (DRAM 22a0 to 22an + 1, etc.) used by eight SOC [0] to SOC [7].
- reception buffer areas for SOC [1] to SOC [7] are set in order.
- reception buffer areas for SOC [0] to SOC [7] are set in order.
- reception buffer areas for SOC [0] to SOC [6] are set in order.
- Transmission data transmitted by the SOC [m] is written in the reception buffer area for the SOC [m] in the shared area on the DRAM 22an of the SOC [n].
- the reception buffer area in each shared area is set so that the reception buffers of SOC [0] to SOC [7] are designated by different addresses. That is, the allocation of the reception buffer in each shared area is fixed, and a plurality of SOCs do not write to the same buffer. For this reason, overwriting by transmission data of another SOC can be prevented.
- FIG. 5 is a diagram showing an example of packet data stored in the reception buffer area.
- FIG. 5 shows an example of packet data stored in the SOC [m] reception buffer area in the shared area on the SOC [n] DRAM shown in FIG.
- the reception buffer area is divided into, for example, 64 KiB packet_buf [0], packet_buf [1], ..., packet_buf [i], ..., packet_buf [last].
- Each packet_buf [0] to packet_buf [last] stores packet data including the following information.
- the packet data includes a valid field, a length field, a padding [2] field, and a data [65526] field.
- the valid field includes a Boolean value indicating whether or not the packet data is valid and waiting for reception processing by SOC [n].
- 1 is stored when the packet data is valid and waiting for reception processing by SOC [n]
- 0 is stored when the packet data is invalid.
- the length field includes a 32-bit integer type value indicating the effective size [bytes] of the Ethernet frame stored in the data [] field.
- the padding [2] field includes an 8-bit integer value indicating padding for 4-byte alignment of the head of the IP (Internet Protocol) header of the Ethernet frame stored in the data [] field.
- the data [65526] field includes an 8-bit integer value indicating Ethernet frame data.
- 65526 is the number of bytes obtained by back calculation from 64 KiB which is the size of packet_buf [i].
- the maximum MTU Maximum Transmission Unit
- FIG. 6 is a flowchart illustrating an exemplary flow of transmission control by the information processing system.
- the CPU 21b0 of the SOC [0] designates the address of the PCIe bus space 30g0 associated with the address of the local DRAM space 30e1 of the memory map information 30a1 for the SOC [1] as a write destination address (step) S10).
- the CPU 21b0 designates an address so that the packet_buf [0] to packet [last] shown in FIG. 5 are accessed in ascending order. After packet [last] is accessed, an address is specified so that packet_buf [0] is accessed.
- the address of the PCIe bus space 30g0 as shown in FIG. 3 is converted by the MMU 21d0 into the address of the local DRAM space 30e1 of the memory map information 30a1 referenced by the destination SOC [1] (step S11).
- the CPU 21b0 confirms that the write destination valid is 0 (step S12). For example, the CPU 21b0 issues a read command for the address converted by the MMU 21d0. Then, the CPU 21b0 reads and checks the valid value of packet_buf [i] in the reception buffer area for SOC [0] in the shared area of the DRAM 22a1 of SOC [1] corresponding to the address via the switch 23. .
- the CPU 21b0 interrupts data transmission for a certain period when the value of valid is 1 (when the reception buffer area is full), and the value of valid is 1 after a certain period. If so, the transmission control is terminated.
- the CPU 21b0 sets data (data transmission) in the write destination length, data [] (see FIG. 5) (step S13).
- the CPU 21b0 outputs data to be written in the reception buffer area as length and data [] to the PCIe interface together with the address converted by the MMU 21d0.
- the address and data are transferred to the SOC [1] by the switch 23.
- the address is converted to the actual address of the DRAM 22a1 by the MMU 21d1 of the SOC [1], and the data is written in the reception buffer area for the SOC [0].
- the CPU 21b0 sets valid to 1 (step S14).
- the setting of valid is performed in the same manner as the processing in step S13.
- the CPU 21b0 sets an interrupt setting value in the interrupt setting register of the SOC [1] in order to notify the CPU 21b1 of the SOC [1] that is the reception destination of the end of transmission (writing) (step S15).
- the CPU 21b0 designates the address of the PCIe bus space 30f0 associated with the address of the ICU register space 30b1 of the memory map information 30a1 for SOC [1].
- the designated address is converted by the MMU 21d0 into the address of the ICU register space 30b1 of the memory map information 30a1 for SOC [1].
- the interrupt setting value (for example, “1”) indicating the occurrence of the address and the interrupt is output from the PCIe interface 21e0 under the control of the CPU 21b0.
- the address and the interrupt set value are transferred to the SOC [1] by the switch 23.
- the address is converted to the actual address of the interrupt setting register by the MMU 21d1 of the SOC [1], and the interrupt setting value is written to the interrupt setting register.
- FIG. 7 is a flowchart illustrating an exemplary flow of reception control (reading control) by the information processing system. In the following, the control for reading the received data by the SOC [1] will be described.
- the CPU 21b1 of the SOC [1] When the CPU 21b1 of the SOC [1] is notified of the occurrence of an interrupt from the ICU 21c1, it starts reception control (reading control). First, the CPU 21b1 determines whether or not the valid of the reading position of the reception buffer area of each SOC in the shared area of the DRAM 22a1 is 0 (step S20).
- step S21 a read process for copying the Ethernet frame data stored in the data [] field as shown in FIG. 5 to, for example, an OS (Operating System) socket buffer (denoted as sk_buff) is performed. Done.
- OS Operating System
- the CPU 21b1 sets valid to 0 (step S22), and hands over the socket buffer structure to the TCP (Transmission Control Protocol) / IP stack (step S23).
- TCP Transmission Control Protocol
- each of SOC [0] to SOC [N] is a transmission in which the address is directly designated based on the memory map information 30a0 to 30aN in which the addresses of other SOC memories (DRAM 22a1, etc.) are defined. And write processing is possible.
- PCIe interfaces 21e0, 21e1, 23a0 to 23an + 1, 24a1, 24a2 are used. Therefore, each of SOC [0] to SOC [N] can continuously perform data transmission without waiting for a response from the data transmission destination. From the above, the processing of the information processing system 20 can be speeded up.
- each of SOC [0] to SOC [N] sets the interrupt setting value by directly specifying the address based on the memory map information 30a0 to 30aN in which the address of the interrupt setting register of the other SOC is defined. I do. Then, when the interrupt setting value indicating the occurrence of the interrupt is set, the SOC of the data transmission destination determines that the reception (writing) has been completed and reads the transmission data. This makes it possible to simulate an Ethernet protocol that performs data reading processing when a packet is received.
- the switches 23 and 24 also have MMUs 23b0 to 23bn + 1, 24b1, and 24b2 that function as address conversion circuits. As a result, it is possible to change the communication connection status, such as changing the write destination, without changing the configuration of SOC [0] to SOC [N].
- the information processing system 20 including more SOCs can be realized even when there is a physical restriction on the number of SOCs that can be connected to one switch. be able to.
- FIG. 8 is a diagram illustrating an example of an information processing system according to the third embodiment.
- N semiconductor integrated circuits including the semiconductor integrated circuits 41a0 to 41an + 1 are represented as SOC [0] to SOC [N].
- the semiconductor integrated circuit 41a0 is expressed as SOC [0]
- the semiconductor integrated circuit 41a1 is expressed as SOC [1].
- a memory different from the DRAM is connected to two or more of SOC [0] to SOC [N].
- the memory 42a0 is connected to the SOC [0]
- the memory 42an is connected to the SOC [n]
- the memory 42an + 1 is connected to the SOC [n + 1].
- Each of the memories 42a0 to 42an + 1 is an information storage device having a larger capacity than each of the DRAMs 22a0 to 22an + 1.
- the memories 42a0 to 42an + 1 are, for example, SSD (Solid State Drive) memories.
- the SOC [0] has a PCIe interface 41b0.
- the PCIe interface 41b0 is connected to the bus 21f0 via the MMU 41c0. That is, the memory 42a0 is connected to the bus 21f0 in the same manner as the switch 23 is connected to the bus 21f0 via the PCIe interface 21e0 and the MMU 21d0.
- the MMU 41c0 has the same function as that of the MMU 21d0.
- access write operation or read operation
- the memory 42a0 is within the SOC [0]. If the access is limited to the access from the CPU 21b0, the function may be disabled, and the MMU 41c0 itself may not be provided.
- the memory 42a0 performs a write operation or a read operation according to a command output from the CPU 21b0.
- the switch 23 may be connected to the PCIe interface 41b0 and the memory 42a0 may be connected to the PCIe interface 21e0.
- SOC [n], SOC [n + 1], and the like have the same circuit configuration as SOC [0]. According to the information processing system 40 as described above, since the data size that can be handled by each SOC can be increased, more efficient distributed processing can be performed. Since the information processing system 40 is based on the information processing system 20 according to the second embodiment capable of high-speed processing, it is possible to process large-scale data at high speed by taking advantage of the advantage.
- FIG. 9 is a diagram illustrating an example of an information processing system according to the fourth embodiment.
- a specific function LSI Large Scale Integrated circuit
- SOC [0] SOC [0]
- SOC [N] SOC [N]
- a specific function LSI 51a0 is connected to SOC [0]
- a specific function LSI 51an is connected to SOC [n]
- a specific function LSI 51an + 1 is connected to SOC [n + 1].
- Each of the LSIs for specific functions 51a0 to 51an + 1 is an LSI that performs a task with a relatively heavy load such as an encoding process of video data, for example, ASSP (Application (Specific Standard Product).
- ASSP Application (Specific Standard Product).
- the specific function LSI 51a0 is connected to the bus 21f0 via, for example, a PCIe interface 41b0, which is an example of an interface, and an MMU 41c0.
- the MMU 41c0 has the same function as that of the MMU 21d0, but is a case where the PCIe interface 41b0 is connected to the LSI for specific function 51a0.
- the operation of the LSI for specific function 51a0 is output by the CPU 21b0 in the SOC [0].
- the function may be invalidated or the MMU 41c0 itself may not be provided.
- the switch 23 may be connected to the PCIe interface 41b0, and the specific function LSI 51a0 may be connected to the PCIe interface 21e0.
- the LSI for specific function 51a0 operates based on a control signal output from the CPU 21b0.
- the LSI 51a0 for specific function is, for example, a HEVC (High Efficiency Video Coding) encoder
- the LSI 51a0 for specific function receives moving image data from the SOC [0] and generates HEVC data obtained by compressing the moving image data. And output.
- HEVC High Efficiency Video Coding
- LSIs for specific functions 51an, 51an + 1, etc. are connected to SOC [n], SOC [n + 1], and operate based on control signals output from the CPUs of SOC [n], SOC [n + 1].
- load for analysis of video data, extraction of metadata, integration, etc. is relatively heavy because each LSI for a specific function connected to each SOC performs parallel processing. Tasks can be processed more efficiently.
- the information processing system 40 of the third embodiment and the information processing system 50 of the fourth embodiment can be combined with each other. That is, among SOC [0] to SOC [N], a memory such as an SSD memory may be connected to a certain SOC, and an LSI for a specific function may be connected to another SOC.
- an interface such as a PCIe interface may be further added so that both a memory such as an SSD memory and an LSI for a specific function are connected.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
Abstract
情報処理システムの処理を高速化する。 半導体集積回路(11)が、半導体集積回路(11,12)のそれぞれが用いるメモリ(14,15)のアドレスが定義されたメモリマップ情報(11m)に基づいて、データ送信先である半導体集積回路(12)に接続されたメモリ(15)のアドレス(a1)を指定し、アドレス(a1)を、データ送信先で参照されるメモリマップ情報(12m)において定義されるメモリ(15)のアドレス(a3)に変換し、アドレス(a3)と送信データとを、PCIeインタフェース(11d)を用いて出力し、スイッチ(13)が、アドレス(a3)と送信データとを、PCIeインタフェース(13a,13b)を用いてデータ送信先に転送し、データ送信先が、PCIインタフェース(12d)を用いて、アドレス(a3)と送信データとを受信し、アドレス(a3)に対応するメモリ(15)の受信バッファ領域に送信データを書き込む。
Description
本発明は、情報処理システム、半導体集積回路及び情報処理方法に関する。
情報処理システムの複雑化や大規模化に伴い、複数のSoC(System on Chip)を含む情報処理システムが提案されている。複数のSoCを含む情報処理システムの1つとして、複数のCPU(Central Processing Unit)をネットワークで接続し、各CPUによる並列処理を実現するCPUクラスタが提案されている。
なお、従来、イーサネット(登録商標)スイッチを用いて複数のサーバを接続する際に、イーサネットスイッチのハードウェアを削減するために、PCIe(Peripheral Component Interconnect express)を用いる技術があった。また、PCIeスイッチを用いて、複数のプロセッサを接続し、あるプロセッサが他のプロセッサに接続されるメモリにアクセスする技術があった。また、データセンタ内のサーバ間通信に、イーサネットの代わりにPCIeを用いることが提案されている。
高速な処理が可能なCPUクラスタを実現するために、クラスタ構成を密結合クラスタとすることが考えられる。密結合クラスタでは、共有メモリやプロセス間通信が用いられ、各CPUが連携処理を行う。複数のCPUを接続するネットワークについては、比較的低コストで高速通信が可能なイーサネットを用いることが考えられる。しかし、イーサネットを用いる場合、送信元は送信先からの応答信号の受信を待ってからでないと次の送信を行えないなどのプロトコルオーバヘッドなどが存在し、密結合クラスタの高速化を制限してしまう問題があった。
発明の一観点によれば、複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力する第1の半導体集積回路と、前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送するスイッチと、前記データ送信先であり、前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込む第2の半導体集積回路と、を有する情報処理システムが提供される。
また、発明の一観点によれば、複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定する制御回路と、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換するアドレス変換回路と、前記第2のアドレスと送信データとを出力する、前記データ送信先からの応答を待たずに連続的な送信が可能な第1のバスインタフェースと、を有する半導体集積回路が提供される。
また、発明の一観点によれば、第1の半導体集積回路が、複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力し、スイッチが、前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送し、前記データ送信先である第2の半導体集積回路が、前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込む、情報処理方法が提供される。
情報処理システムの処理を高速化できる。
本発明の上記及び他の目的、特徴及び利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
本発明の上記及び他の目的、特徴及び利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の情報処理システムの一例を示す図である。
(第1の実施の形態)
図1は、第1の実施の形態の情報処理システムの一例を示す図である。
情報処理システム10は、半導体集積回路11,12、スイッチ13、メモリ14,15を有する。
半導体集積回路11,12、スイッチ13は、たとえば、それぞれ1チップのSoCである。図1では、説明を簡単にするために、2つの半導体集積回路11,12と1つのスイッチ13が図示されているが、この数に限定されるものではない。3つ以上の半導体集積回路と2つ以上のスイッチを有する情報処理システムの例については後述する。
半導体集積回路11,12、スイッチ13は、たとえば、それぞれ1チップのSoCである。図1では、説明を簡単にするために、2つの半導体集積回路11,12と1つのスイッチ13が図示されているが、この数に限定されるものではない。3つ以上の半導体集積回路と2つ以上のスイッチを有する情報処理システムの例については後述する。
半導体集積回路11は、制御回路11a、割り込み制御回路11b、アドレス変換回路11c、PCIeインタフェース(I/F)11d、システムバス11eを有する。また、半導体集積回路11には、メモリ14が接続されている。
制御回路11aは、システムバス11eを介して半導体集積回路11の各部を制御して、種々のアプリケーション処理を実行する。制御回路11aは、たとえば、マイクロコントローラ、CPU、複数のCPUコアを有するCPUなどである。
割り込み制御回路11bは、図示しない記憶回路(以下割り込み設定レジスタと呼ぶ)に設定される割り込み設定値に基づいて、割り込みの発生を制御回路11aに通知する。
アドレス変換回路11cは、複数の半導体集積回路11,12のそれぞれが用いるメモリ14,15のアドレスなどが定義されたメモリマップ情報11m,12mに基づいて、アドレス変換を行う。
アドレス変換回路11cは、複数の半導体集積回路11,12のそれぞれが用いるメモリ14,15のアドレスなどが定義されたメモリマップ情報11m,12mに基づいて、アドレス変換を行う。
PCIeインタフェース11dは、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの一例であり、PCIeバスを介してスイッチ13と情報の送受信を行う。
半導体集積回路12も、半導体集積回路11と同様に、制御回路12a、割り込み制御回路12b、アドレス変換回路12c、PCIeインタフェース12d、システムバス12eを有する。
スイッチ13は、PCIeインタフェース13a,13bと、PCIeインタフェース13a,13bを接続するシステムバス13cを有する。
PCIeインタフェース13aは、半導体集積回路11のPCIeインタフェース11dと情報の送受信を行う。
PCIeインタフェース13aは、半導体集積回路11のPCIeインタフェース11dと情報の送受信を行う。
PCIeインタフェース13bは、半導体集積回路12のPCIeインタフェース12dと情報の送受信を行う。
図1に示すような情報処理システム10において、PCIeインタフェース11d,12d,13a,13bが用いられる場合、PCIeインタフェース11d,12dには、半導体集積回路11,12がエンドポイントとなるような設定がなされる。また、PCIeインタフェース13a,13bには、スイッチ13がルートコンプレックスになるような設定がなされる。
図1に示すような情報処理システム10において、PCIeインタフェース11d,12d,13a,13bが用いられる場合、PCIeインタフェース11d,12dには、半導体集積回路11,12がエンドポイントとなるような設定がなされる。また、PCIeインタフェース13a,13bには、スイッチ13がルートコンプレックスになるような設定がなされる。
なお、PCIeインタフェース11d,12d,13a,13bの代わりに、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの他の例である、USB(Universal Serial Bus)インタフェースなどを用いてもよい。
メモリ14,15はそれぞれ、半導体集積回路11,12に接続されたメモリであり、、制御回路11a,12aが実行するプログラムや各種データ(受信データなども含む)を記憶する。メモリ14,15は、たとえば、DRAM(Dynamic Random Access Memory)などの揮発性の半導体メモリでもよいし、フラッシュメモリなどの揮発性のストレージでもよい。なお、メモリ14,15は、半導体集積回路11,12に含まれていてもよい。また、メモリ14,15は、それぞれ複数あってもよい。
以下、半導体集積回路11をデータの送信元、半導体集積回路12をデータの送信先として、情報処理システム10の動作の一例を説明する。半導体集積回路11がデータの送信先、半導体集積回路12がデータの送信元である場合も同様の処理が行われる。
なお、以下では半導体集積回路11をSOC1、半導体集積回路12をSOC2と呼ぶ場合もある。
制御回路11aは、半導体集積回路12へのデータの送信の際、図1に示すようなSOC1のメモリマップ情報11mに基づいて、アドレスの指定を行う。
制御回路11aは、半導体集積回路12へのデータの送信の際、図1に示すようなSOC1のメモリマップ情報11mに基づいて、アドレスの指定を行う。
メモリマップ情報11mには、自SOC(つまりSOC1)のメモリ14のメモリ空間のアドレスと、他SOC(つまりSOC2)のメモリ15のメモリ空間のアドレスが定義されている。さらに、メモリマップ情報11mには、自SOCの割り込み設定レジスタ空間のアドレスと、他SOCの割り込み設定レジスタ空間のアドレスが定義されている。割り込み設定レジスタ(図示せず)は、たとえば、割り込み制御回路11b,12b内に設けられている。
なお、半導体集積回路12が参照するメモリマップ情報12mにおいても、メモリマップ情報11mと同様に、自SOC(つまりSOC2)のメモリ15のメモリ空間のアドレスと、他SOC(つまりSOC1)のメモリ空間のアドレスが定義されている。さらに、メモリマップ情報12mには、自SOCの割り込み設定レジスタ空間のアドレスと、他SOCの割り込み設定レジスタ空間のアドレスが定義されている。
制御回路11aは、半導体集積回路12へのデータの送信の際、そのデータ(送信データ)を書き込むメモリ15の、メモリマップ情報11mで定義されているアドレスを指定する。図1では、制御回路11aが、メモリマップ情報11mで定義されている他SOCメモリ空間のアドレスa1を指定した例が示されている。
アドレス変換回路11cは、制御回路11aがアドレスa1を指定した場合、たとえば、図示しない変換テーブルなどによって、SOC2のメモリマップ情報12mで定義されているSOC2のメモリ空間のアドレスa3に変換する。PCIeインタフェース11dは、変換したアドレスa3と、送信データとを出力(送信)する。アドレスa3と送信データは、スイッチ13により、半導体集積回路12に転送される。
半導体集積回路12は、PCIeインタフェース12dを用いて、アドレスa3と送信データとを受信し、そのアドレスに対応するメモリ15の受信バッファ領域に送信データを書き込む。たとえば、アドレス変換回路12cは、図示しない変換テーブルなどによって、アドレスa3を、メモリ15の実際のアドレスに変換する。これにより、そのアドレスから始まるメモリ15の受信バッファ領域に送信データが書き込まれる。
その後、半導体集積回路11の制御回路11aは、半導体集積回路12の割り込み設定レジスタの、メモリマップ情報11mで定義されているアドレスを指定する。図1では、制御回路11aが、メモリマップ情報11mで定義されている他SOCレジスタ空間のアドレスa2を指定した例が示されている。
アドレス変換回路11cは、制御回路11aがアドレスa2を指定した場合、たとえば、図示しない変換テーブルなどによって、SOC2のメモリマップ情報12mで定義されているSOC2の割り込み設定レジスタ空間のアドレスa4に変換する。PCIeインタフェース11dは、変換したアドレスa4と、割り込みの発生を示す割り込み設定値(たとえば、“1”)とを出力(送信)する。アドレスa4と割り込み設定値とは、スイッチ13により、半導体集積回路12に転送される。
半導体集積回路12は、PCIeインタフェース12dを用いて、アドレスa4と割り込み設定値とを受信し、そのアドレスに対応する割り込み設定レジスタに割り込み設定値を書き込む。たとえば、アドレス変換回路12cは、図示しない変換テーブルなどによって、アドレスa4を、割り込み設定レジスタの実際のアドレスに変換する。そのアドレスで指定される割り込み設定レジスタに割り込み設定値が書き込まれる。
割り込み設定レジスタに、割り込みの発生を示す割り込み設定値が書き込まれると、割り込み制御回路12bは、制御回路12aに、割り込みが発生した旨を通知する。これにより、制御回路12aは、送信データの受信(書き込み)の終了を判定し、メモリ15の受信バッファ領域に書き込まれた送信データを読み出す。そして、制御回路12aは、たとえば、読み出した送信データを用いて、種々のアプリケーション処理を実行する。
以上のように、第1の実施の形態の情報処理システム10において、半導体集積回路11は、メモリマップ情報11mに基づいて、複数の半導体集積回路11,12の1つであるデータ送信先(半導体集積回路12)が用いるメモリ15のアドレスa1を指定する。そして、半導体集積回路11は、そのアドレスを、データ送信先で参照されるメモリマップ情報12mにおいて定義されたメモリ15のアドレスa3に変換する。そして、半導体集積回路11は、アドレスa3と送信データとを、PCIeインタフェース11dを用いて出力する。スイッチ13は、アドレスa3と送信データとを、PCIeインタフェース13a,13bを用いてデータ送信先に転送する。データ転送先である半導体集積回路12は、PCIeインタフェースを用いて、アドレスa3と送信データとを受信し、アドレスa3に対応するメモリ15の受信バッファ領域に送信データの書き込みを行う。
これによって、半導体集積回路11は、半導体集積回路12が用いるメモリ15のアドレスが定義されたメモリマップ情報11mに基づいて、直接そのアドレスを指定した送信(書き込み)処理が可能となる。また、情報処理システム10では、PCIeインタフェース11d,12d,13a,13bが用いられているため、半導体集積回路11は、データ送信先からの応答を待つことなく、データ送信を連続的に行える。以上のことから、情報処理システム10の処理を高速化できる。
また、スーパコンピュータに用いられるような高価な高速ネットワークを用いなくても済み、比較的安価に密結合、高並列・高性能のCPUクラスタを実現できるようになる。また、消費電力の大きい高性能なCPUを使用しなくて済むため、情報処理システム10の消費電力を削減できる。
また、半導体集積回路11は、半導体集積回路12の割り込み設定レジスタのアドレスが定義されたメモリマップ情報11mに基づいて、直接そのアドレスを指定して割り込み設定値の設定を行う。そして、半導体集積回路12は、割り込みの発生を示す割り込み設定値が設定されると、受信(書き込み)が終了したと判定し、送信データの読み出しを行う。これによって、パケット受信を契機にデータ読み込み処理を行うようなイーサネットプロトコルを擬似的に再現できる。
(第2の実施の形態)
図2は、第2の実施の形態の情報処理システムの一例を示す図である。
情報処理システム20は、半導体集積回路21a0,21a1,21an,21an+1を含む複数の半導体集積回路と、DRAM22a0,22a1,22an,22an+1を含む複数のDRAMを有する。さらに、2段のスイッチ23,24を有する。
図2は、第2の実施の形態の情報処理システムの一例を示す図である。
情報処理システム20は、半導体集積回路21a0,21a1,21an,21an+1を含む複数の半導体集積回路と、DRAM22a0,22a1,22an,22an+1を含む複数のDRAMを有する。さらに、2段のスイッチ23,24を有する。
半導体集積回路21a0は、CPU21b0、ICU(Interrupt Controller Unit)21c0、MMU(Memory Management Unit)21d0、PCIeインタフェース21e0、システムバス21f0を有する。また、半導体集積回路21a0には、DRAM22a0が接続されている。
CPU21b0は、図1に示した制御回路11aの一例であり、システムバス21f0を介して半導体集積回路21a0の各部を制御する。
ICU21c0は、図1に示した割り込み制御回路11bの一例であり、割り込みの発生をCPU21b0に通知する。
ICU21c0は、図1に示した割り込み制御回路11bの一例であり、割り込みの発生をCPU21b0に通知する。
MMU21d0は、図1に示したアドレス変換回路11cの機能を有し、複数のDRAMのアドレスなどが定義されたメモリマップ情報に基づいて、アドレス変換を行う。
PCIeインタフェース21e0は、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの一例であり、スイッチ23と情報の送受信を行う。
PCIeインタフェース21e0は、送信先からの応答を待たずに連続的な送信が可能なバスインタフェースの一例であり、スイッチ23と情報の送受信を行う。
半導体集積回路21a1も、半導体集積回路21a0と同様に、CPU21b1、ICU21c1、MMU21d1、PCIeインタフェース21e1、システムバス21f1を有する。図示を省略しているが、その他の半導体集積回路も同様の要素を有する。
スイッチ23は、PCIeインタフェース23a0,23a1,…,23an,23an+1、MMU23b0,23b1,…,23bn,23bn+1、システムバス23cを有する。スイッチ24は、PCIeインタフェース24a1,24a2を含む複数のPCIeインタフェース、MMU24b1,24b2を含む複数のMMU、システムバス24cを有する。
スイッチ23において、PCIeインタフェース23a0~23an+1は、MMU23b0~23bn+1を介してシステムバス23cに接続されている。スイッチ24において、PCIeインタフェース24a1,24a2もMMU24b1,24b2を介してシステムバス24cに接続されている。
PCIeインタフェース23a0は、半導体集積回路21a0のPCIeインタフェース21e0と情報の送受信を行う。PCIeインタフェース23a1は、半導体集積回路21a1のPCIeインタフェース21e1と情報の送受信を行う。PCIeインタフェース23anは、半導体集積回路21anのPCIeインタフェース(図示せず)と情報の送受信を行う。PCIeインタフェース23an+1は、スイッチ24のPCIeインタフェース24a1と情報の送受信を行う。PCIeインタフェース24a2は、半導体集積回路21an+1のPCIeインタフェース(図示せず)と情報の送受信を行う。
図2に示すような情報処理システム20では、PCIeインタフェース21e0,21e1には、半導体集積回路21a0,21a1がエンドポイントとなるような設定がなされる。また、PCIeインタフェース23a0~23an,24a1,24a2には、スイッチ23,24がルートコンプレックスになるような設定がなされる。また、PCIeインタフェース23an+1には、スイッチ23がエンドポイントとなるような設定がなされる。
MMU23b0は、図示しない変換テーブルなどによって、PCIeインタフェース23a0が受信したアドレスを、別のアドレスに変換する機能を有する。MMU23b1は、図示しない変換テーブルなどによって、PCIeインタフェース23a1が受信したアドレスを、別のアドレスに変換する機能を有する。MMU23bnは、図示しない変換テーブルなどによって、PCIeインタフェース23anが受信したアドレスを、別のアドレスに変換する機能を有する。MMU23bn+1は、図示しない変換テーブルなどによって、PCIeインタフェース23an+1が受信したアドレスや、PCIeインタフェース23an+1が送信するアドレスを、別のアドレスに変換する機能を有する。MMU24b1は、図示しない変換テーブルなどによって、PCIeインタフェース23anが受信したアドレスを、別のアドレスに変換する機能を有する。MMU24b2は、図示しない変換テーブルなどによって、PCIeインタフェース24a2が受信したアドレスを、別のアドレスに変換する機能を有する。
上記の情報処理システム20では、スイッチ23に、n+1個の半導体集積回路21a1~21anが接続されている。また、スイッチ24にも半導体集積回路21an+1を含む複数の半導体集積回路が接続されている。
このため、半導体集積回路21a0がDRAM22an+1にデータの書き込みを行う場合、半導体集積回路21a0が出力する2種類のアドレス、送信データ及び割り込み設定値は、スイッチ23,24を介して半導体集積回路21an+1に転送される。
たとえば、物理的な制約などによって、1つのスイッチ23に接続可能な半導体集積回路の最大数が決まっている場合、図2に示すように、スイッチ24を追加することにより、多数の半導体集積回路を含む情報処理システム20を実現できる。なお、図1では、2つのスイッチ23,24を有する例が示されているが、スイッチは3つ以上設けられていてもよい。
また、上記の情報処理システム20では、スイッチ23,24にもMMU23b0~23bn+1,24b1,24b2が設けられている。
このようなMMU23b0~23bn+1,24b1,24b2を設けることで、通信の接続状況を変更することができる。
このようなMMU23b0~23bn+1,24b1,24b2を設けることで、通信の接続状況を変更することができる。
たとえば、半導体集積回路21a0が、データ送信先(書き込み先)のアドレスとして、半導体集積回路21a1が参照するメモリマップ情報により定義されているDRAM22a1のアドレスを出力する場合を考える。このとき、スイッチ23のMMU23b0は、そのアドレスを、たとえば、半導体集積回路21anが参照するメモリマップ情報により定義されているDRAM22anのアドレスに変換すると、送信データをDRAM22anに書き込ませることができる。MMU23b0は、割り込み設定レジスタのアドレスについても同様の変換を行うことができる。
これにより、たとえば、半導体集積回路21a1とスイッチ23との接続がなくなった場合にも、他の半導体集積回路を変更せずに、データ送信先を変更できる。つまり通信の接続状況を変更できる。
上記のような情報処理システム20において、半導体集積回路21a0~21an+1を含むN個の半導体集積回路は、たとえば、以下に示すようなメモリマップ情報に基づいて、書き込み先のアドレス指定を行う。メモリマップ情報は、たとえば、半導体集積回路21a0~21an+1を含むN個の半導体集積回路が用いるメモリ(DRAM22a0)、または、N個の半導体集積回路のそれぞれの中に設けられたROM(Read Only Memory)などに格納されていてもよい。
なお、以下では、半導体集積回路21a0~21an+1を含むN個の半導体集積回路をSOC[0]~SOC[N]と表記する。たとえば、半導体集積回路21a0を、SOC[0]、半導体集積回路21a1を、SOC[1]と表記する。
図3は、メモリマップ情報の一例を示す図である。
SOC[0]用のメモリマップ情報30a0には、ICUレジスタ空間30b0、ローカルDRAM空間30c0,30d0,30e0、PCIeバス空間30f0,30g0のアドレスが定義されている。
SOC[0]用のメモリマップ情報30a0には、ICUレジスタ空間30b0、ローカルDRAM空間30c0,30d0,30e0、PCIeバス空間30f0,30g0のアドレスが定義されている。
ICUレジスタ空間30b0のアドレスは、SOC[0]のICU21c0が割り込みの発生をCPU21b0に通知するか否かを決定するために用いる割り込み設定値を格納する割り込み設定レジスタのアドレスに対応している。割り込み設定レジスタは、たとえば、ICU21c0に設けられている。
ローカルDRAM空間30c0~30e0のアドレスは、DRAM22a0のアドレスに対応している。図3の例では、ローカルDRAM空間30c0~30e0は3つある。ローカルDRAM空間30c0は、アドレス0x0000_8000_0000~0x0000_FFFF_FFFFで定義される。ローカルDRAM空間30c0は、アドレス0x0008_8000_0000~0x000F_FFFF_FFFFで定義される。DRAM空間30e0は、アドレス0x0088_0000_0000~0x008F_FFFF_FFFFで定義される。ローカルDRAM空間の数は3つに限定されない。
PCIeバス空間30f0のアドレスは、PCIeバスで接続される他のSOC[1],SOC[2],…,SOC[N]の割り込み設定レジスタのアドレスに対応している。図3の例では、PCIeバス空間30f0は、アドレス0x0006_0000_0000~0x0006_FFFF_FFFFで定義される。PCIeバス空間30f0のアドレスは、SOC[1]~SOC[N]用のメモリマップ情報30a1,30a2,…,30aNで定義されるICUレジスタ空間30b1,30b2~30bNのアドレスに対応している。
PCIeバス空間30g0のアドレスは、PCIeバスで接続される他のSOC[1],SOC[2],…,SOC[N]が用いるメモリ(DRAM22a1など)のアドレスに対応している。図3の例では、PCIeバス空間30g0は、アドレス0x0040_0000_0000~0x007F_FFFF_FFFFで定義される。SOC[1]~SOC[N]が用いるメモリのアドレスは、メモリマップ情報30a1~30aNではローカルDRAM空間30c1,30d1,30e1,30c2,30d2,30e2,…,30cN,30dN,30eNのアドレスとして定義されている。PCIeバス空間30g0のアドレスは、メモリマップ情報30a1~30aNのローカルDRAM空間30e1~30eNのアドレスと対応付けられている。
図3の例では、各メモリマップ情報30a0~30aNで定義されるローカルDRAM空間30e0~30eNは、他のSOCから送信される書き込みデータが書き込まれる受信バッファ領域として機能する。つまり、ローカルDRAM空間30e0~30eNは、他のSOCからアクセス可能な共用領域である。
なお、SOC[1]~SOC[N]用のメモリマップ情報30a1~30aNにおいても、PCIeバス空間が定義されているが、図示が省略されている。また、メモリマップ情報30a0~30aNには、他の周辺機器についてのメモリ空間のアドレスが定義されていてもよい。
図4は、各SOCのDRAM上の共用領域の一例を示す図である。図4では、8つのSOC[0]~SOC[7]が用いるDRAM(DRAM22a0~22an+1など)上の共用領域の一例が示されている。
SOC[0]が用いるDRAM22a0上の共用領域には、SOC[1]~SOC[7]用の受信バッファ領域が順に設定されている。SOC[1]のDRAM22a1上の共用領域には、SOC[0],SOC[2]~SOC[7]用の受信バッファ領域が順に設定されている。SOC[7]のDRAM上の共用領域には、SOC[0]~SOC[6]用の受信バッファ領域が順に設定されている。
SOC[n]のDRAM22an上の共用領域のSOC[m]用の受信バッファ領域には、SOC[m]が送信する送信データが書き込まれる。各共用領域における受信バッファ領域は、SOC[0]~SOC[7]の受信バッファのそれぞれは、異なるアドレスで指定されるように設定されている。つまり、各共用領域における受信バッファの割り当ては固定であり、同一バッファに複数のSOCが書き込みを行うことはない。このため、他のSOCの送信データによる上書きを防止できる。
なお、図4の例では、各共用領域は7分割されているが、N=63の場合には、63分割されるようにしてもよい。ただ、ソフトウェア実装の観点から扱いやすい、8分割また64分割としてもよく、DRAM容量に余裕がある場合、余る1領域は不使用状態で放置しておいてもよい。
図5は、受信バッファ領域に格納されるパケットデータの一例を示す図である。図5には、図4に示したSOC[n]のDRAM上の共用領域のSOC[m]用の受信バッファ領域に格納されるパケットデータの一例が示されている。
受信バッファ領域は、たとえば、それぞれ64KiBのpacket_buf[0],packet_buf[1],…,packet_buf[i],…,packet_buf[last]に分割されている。
packet_buf[0]~packet_buf[last]のそれぞれには、以下に示す情報を含むパケットデータが格納される。
パケットデータは、validフィールド、lengthフィールド、padding[2]フィールド、data[65526]フィールドを含む。
パケットデータは、validフィールド、lengthフィールド、padding[2]フィールド、data[65526]フィールドを含む。
validフィールドは、当該パケットデータが有効かつ、SOC[n]による受信処理待ちであるか否かを示すbool型の値を含む。validフィールドには、当該パケットデータが有効かつ、SOC[n]による受信処理待ちである場合には1、当該パケットデータが無効の場合には、0が格納される。
lengthフィールドは、data[]フィールドに格納されたイーサネットフレームの有効サイズ[bytes]を示す32ビットの整数型の値を含む。
padding[2]フィールドは、data[]フィールドに格納されたイーサネットフレームのIP(Internet Protocol)ヘッダの先頭を4byteアラインするためのパディングを示す8ビットの整数型の値を含む。
padding[2]フィールドは、data[]フィールドに格納されたイーサネットフレームのIP(Internet Protocol)ヘッダの先頭を4byteアラインするためのパディングを示す8ビットの整数型の値を含む。
data[65526]フィールドは、イーサネットフレームデータを示す8ビットの整数型の値を含む。なお、65526は、packet_buf[i]のサイズである64KiBから逆算して得られるバイト数である。この結果、最大のMTU(Maximum Transmission Unit)は65512バイトとなる。
以下、第2の実施の形態の情報処理システム20の動作の一例を、フローチャートを用いて説明する。
図6は、情報処理システムによる送信制御の一例の流れを示すフローチャートである。
図6は、情報処理システムによる送信制御の一例の流れを示すフローチャートである。
以下では、SOC[0]が、SOC[1]のメモリ(DRAM22a1)にデータの書き込みを行う場合を例にして説明する。
まず、SOC[0]のCPU21b0は、書き込み先のアドレスとして、SOC[1]用のメモリマップ情報30a1のローカルDRAM空間30e1のアドレスに対応付けられているPCIeバス空間30g0のアドレスを指定する(ステップS10)。
まず、SOC[0]のCPU21b0は、書き込み先のアドレスとして、SOC[1]用のメモリマップ情報30a1のローカルDRAM空間30e1のアドレスに対応付けられているPCIeバス空間30g0のアドレスを指定する(ステップS10)。
なお、CPU21b0は、図5に示したpacket_buf[0]~packet[last]が昇順にアクセスされるようにアドレスを指定する。packet[last]がアクセスされた後は、packet_buf[0]がアクセスされるようにアドレスが指定される。
図3に示したようなPCIeバス空間30g0のアドレスは、MMU21d0によって、送信先のSOC[1]が参照するメモリマップ情報30a1のローカルDRAM空間30e1のアドレスに変換される(ステップS11)。
次に、CPU21b0は、書き込み先のvalidが0であることを確認する(ステップS12)。
たとえば、CPU21b0は、MMU21d0が変換したアドレスに対する読み出し命令を発行する。そして、CPU21b0は、そのアドレスに対応したSOC[1]のDRAM22a1の共用領域にあるSOC[0]用の受信バッファ領域のpacket_buf[i]のvalidの値を、スイッチ23を介して読み出し、確認する。
たとえば、CPU21b0は、MMU21d0が変換したアドレスに対する読み出し命令を発行する。そして、CPU21b0は、そのアドレスに対応したSOC[1]のDRAM22a1の共用領域にあるSOC[0]用の受信バッファ領域のpacket_buf[i]のvalidの値を、スイッチ23を介して読み出し、確認する。
なお、図示を省略しているが、CPU21b0は、validの値が1の場合(受信バッファ領域がfullである場合)、たとえば、データ送信を一定期間中断し、一定期間後もvalidの値が1である場合には、送信制御を終了する。
次に、CPU21b0は、書き込み先のlengh、data[](図5参照)にデータを設定する(データ送信)(ステップS13)。
CPU21b0は、lengh、data[]として受信バッファ領域に書き込むデータを、MMU21d0が変換したアドレスとともに、PCIeインタフェースに出力させる。アドレスとデータは、スイッチ23によってSOC[1]に転送される。アドレスは、SOC[1]のMMU21d1にて、DRAM22a1の実際のアドレスに変換され、SOC[0]用の受信バッファ領域にデータが書き込まれる。
CPU21b0は、lengh、data[]として受信バッファ領域に書き込むデータを、MMU21d0が変換したアドレスとともに、PCIeインタフェースに出力させる。アドレスとデータは、スイッチ23によってSOC[1]に転送される。アドレスは、SOC[1]のMMU21d1にて、DRAM22a1の実際のアドレスに変換され、SOC[0]用の受信バッファ領域にデータが書き込まれる。
その後、CPU21b0は、validを1に設定する(ステップS14)。validの設定は、ステップS13の処理と同様に行われる。
最後に、CPU21b0は、受信先であるSOC[1]のCPU21b1に送信(書き込み)の終了を知らせるために、SOC[1]の割り込み設定レジスタに割り込み設定値を設定する(ステップS15)。
最後に、CPU21b0は、受信先であるSOC[1]のCPU21b1に送信(書き込み)の終了を知らせるために、SOC[1]の割り込み設定レジスタに割り込み設定値を設定する(ステップS15)。
たとえば、CPU21b0は、SOC[1]用のメモリマップ情報30a1のICUレジスタ空間30b1のアドレスに対応付けられているPCIeバス空間30f0のアドレスを指定する。指定されたアドレスは、MMU21d0によって、SOC[1]用のメモリマップ情報30a1のICUレジスタ空間30b1のアドレスに変換される。そして、そのアドレスと割り込みの発生を示す割り込み設定値(たとえば、“1”)が、CPU21b0の制御のもと、PCIeインタフェース21e0から出力される。アドレスと割り込み設定値は、スイッチ23によって、SOC[1]に転送される。アドレスは、SOC[1]のMMU21d1にて、割り込み設定レジスタの実際のアドレスに変換され、割り込み設定レジスタに割り込み設定値が書き込まれる。
図7は、情報処理システムによる受信制御(読み出し制御)の一例の流れを示すフローチャートである。
以下では、SOC[1]が、受信したデータを読み出す制御について説明する。
以下では、SOC[1]が、受信したデータを読み出す制御について説明する。
SOC[1]のCPU21b1は、ICU21c1から割り込みの発生を通知されると受信制御(読み出し制御)を開始する。
CPU21b1は、まず、DRAM22a1の共用領域の各SOCの受信バッファ領域の読み出し位置のvalidが0であるか否かを判定する(ステップS20)。
CPU21b1は、まず、DRAM22a1の共用領域の各SOCの受信バッファ領域の読み出し位置のvalidが0であるか否かを判定する(ステップS20)。
validが0である場合には、図5に示したように、パケットデータは無効であるので、CPU21b1は受信制御を終了する。
validが1である場合、CPU21b1は、ステップS21の処理を行う。ステップS21では、図5に示したようなdata[]フィールドに格納されたイーサネットフレームデータを、たとえば、OS(Operating System)のソケットバッファ(sk_buffと表記されている)構造体にコピーする読み出し処理が行われる。
validが1である場合、CPU21b1は、ステップS21の処理を行う。ステップS21では、図5に示したようなdata[]フィールドに格納されたイーサネットフレームデータを、たとえば、OS(Operating System)のソケットバッファ(sk_buffと表記されている)構造体にコピーする読み出し処理が行われる。
その後、CPU21b1は、validを0に設定し(ステップS22)、ソケットバッファ構造体をTCP(Transmission Control Protocol)/IPスタックに引き渡す(ステップS23)。
その後、ステップS20の処理に戻り、次の読み出し位置のvalidが0であるか否かが判定され、同様の処理が繰り返される。
以上のように、SOC[0]~SOC[N]のそれぞれは、他のSOCのメモリ(DRAM22a1など)のアドレスが定義されたメモリマップ情報30a0~30aNに基づいて、直接そのアドレスを指定した送信及び書き込み処理が可能である。また、情報処理システム20では、PCIeインタフェース21e0,21e1,23a0~23an+1,24a1,24a2が用いられている。そのため、SOC[0]~SOC[N]のそれぞれは、データ送信先からの応答を待つことなく、データ送信を連続的に行える。以上のことから、情報処理システム20の処理を高速化できる。
以上のように、SOC[0]~SOC[N]のそれぞれは、他のSOCのメモリ(DRAM22a1など)のアドレスが定義されたメモリマップ情報30a0~30aNに基づいて、直接そのアドレスを指定した送信及び書き込み処理が可能である。また、情報処理システム20では、PCIeインタフェース21e0,21e1,23a0~23an+1,24a1,24a2が用いられている。そのため、SOC[0]~SOC[N]のそれぞれは、データ送信先からの応答を待つことなく、データ送信を連続的に行える。以上のことから、情報処理システム20の処理を高速化できる。
また、スーパコンピュータに用いられるような高価な高速ネットワークを用いなくても済み、比較的安価に密結合、高並列・高性能のCPUクラスタを実現できるようになる。また、消費電力の大きい高性能なCPUを使用しなくて済むため、情報処理システム20の消費電力を削減できる。
また、SOC[0]~SOC[N]のそれぞれは、他のSOCの割り込み設定レジスタのアドレスが定義されたメモリマップ情報30a0~30aNに基づいて、直接そのアドレスを指定して割り込み設定値の設定を行う。そして、データ送信先のSOCは、割り込みの発生を示す割り込み設定値が設定されると、受信(書き込み)が終了したと判定し、送信データの読み出しを行う。これによって、パケット受信を契機にデータ読み込み処理を行うようなイーサネットプロトコルを擬似的に再現できる。
また、第2の実施の形態の情報処理システム20は、スイッチ23,24にも、アドレス変換回路として機能するMMU23b0~23bn+1,24b1,24b2を有している。これにより、SOC[0]~SOC[N]の構成を変えずに、書き込み先の変更など、通信の接続状況を変更することができる。
また、図2のようにスイッチ23,24を複数段設けることで、1つのスイッチに接続できるSOCの数に物理的な制約がある場合でも、より多くのSOCを含む情報処理システム20を実現することができる。
(第3の実施の形態)
図8は、第3の実施の形態の情報処理システムの一例を示す図である。図8において、図2に示した第2の実施の形態の情報処理システム20と同じ要素については同一符号が付されている。また、以下では、半導体集積回路41a0~41an+1を含むN個の半導体集積回路をSOC[0]~SOC[N]と表記する。たとえば、半導体集積回路41a0を、SOC[0]、半導体集積回路41a1を、SOC[1]と表記する。
図8は、第3の実施の形態の情報処理システムの一例を示す図である。図8において、図2に示した第2の実施の形態の情報処理システム20と同じ要素については同一符号が付されている。また、以下では、半導体集積回路41a0~41an+1を含むN個の半導体集積回路をSOC[0]~SOC[N]と表記する。たとえば、半導体集積回路41a0を、SOC[0]、半導体集積回路41a1を、SOC[1]と表記する。
第3の実施の形態の情報処理システム40において、SOC[0]~SOC[N]のうちの2つ以上には、DRAMとは異なるメモリが接続されている。図8の例では、SOC[0]にはメモリ42a0が接続され、SOC[n]にはメモリ42anが接続され、SOC[n+1]にはメモリ42an+1が接続されている。
メモリ42a0~42an+1のそれぞれは、DRAM22a0~22an+1のそれぞれよりも、容量が大きい情報記憶装置である。メモリ42a0~42an+1は、たとえば、SSD(Solid State Drive)メモリである。
メモリ42a0と接続するためのインタフェースの一例として、SOC[0]は、PCIeインタフェース41b0を有する。PCIeインタフェース41b0は、MMU41c0を介して、バス21f0に接続される。すなわち、メモリ42a0は、スイッチ23がPCIeインタフェース21e0とMMU21d0を介してバス21f0に接続されるのと同様に、バス21f0に接続される。MMU41c0は、MMU21d0と同様の機能を有しているが、PCIeインタフェース41b0がメモリ42a0に接続される場合であって、たとえば、メモリ42a0へのアクセス(ライト動作またはリード動作)がSOC[0]内のCPU21b0からのアクセスに限定される場合は、その機能が無効となっていてもよく、また、MMU41c0自体がなくてもよい。
メモリ42a0は、CPU21b0が出力するコマンドによって、ライト動作またはリード動作を行う。
なお、MMU41c0が、MMU21d0と同様の機能を有している場合、スイッチ23がPCIeインタフェース41b0に接続され、メモリ42a0がPCIeインタフェース21e0に接続されていてもよい。
なお、MMU41c0が、MMU21d0と同様の機能を有している場合、スイッチ23がPCIeインタフェース41b0に接続され、メモリ42a0がPCIeインタフェース21e0に接続されていてもよい。
図示を省略しているがSOC[n]、SOC[n+1]なども、SOC[0]と同様の回路構成である。
上記のような情報処理システム40によれば、個々のSOCが扱えるデータサイズを増やせるため、より高効率な分散処理が可能となる。また、情報処理システム40は、高速処理が可能な第2の実施の形態の情報処理システム20をベースとしているため、その利点を生かして、大規模なデータを高速に処理できる。
上記のような情報処理システム40によれば、個々のSOCが扱えるデータサイズを増やせるため、より高効率な分散処理が可能となる。また、情報処理システム40は、高速処理が可能な第2の実施の形態の情報処理システム20をベースとしているため、その利点を生かして、大規模なデータを高速に処理できる。
(第4の実施の形態)
図9は、第4の実施の形態の情報処理システムの一例を示す図である。図9において、図8に示した第3の実施の形態の情報処理システム40と同じ要素については同一符号が付されている。
図9は、第4の実施の形態の情報処理システムの一例を示す図である。図9において、図8に示した第3の実施の形態の情報処理システム40と同じ要素については同一符号が付されている。
第4の実施の形態の情報処理システム50において、SOC[0]~SOC[N]のうちの2つ以上には、特定機能向けLSI(Large Scale Integrated circuit)が接続されている。図9の例では、SOC[0]には特定機能向けLSI51a0が接続され、SOC[n]には特定機能向けLSI51anが接続され、SOC[n+1]には特定機能向けLSI51an+1が接続されている。
特定機能向けLSI51a0~51an+1のそれぞれは、たとえば、映像データのエンコード処理など、負荷が比較的重いタスクを行うLSIであり、たとえば、ASSP(Application Specific Standard Product)である。
特定機能向けLSI51a0は、たとえば、インタフェースの一例であるPCIeインタフェース41b0と、MMU41c0を介して、バス21f0に接続される。MMU41c0は、MMU21d0と同様の機能を有しているが、PCIeインタフェース41b0が特定機能向けLSI51a0に接続される場合であって、たとえば、特定機能向けLSI51a0の動作がSOC[0]内のCPU21b0が出力する制御信号に基づく動作に限定される場合は、その機能が無効となっていてもよく、また、MMU41c0自体がなくてもよい。
なお、MMU41c0が、MMU21d0と同様の機能を有している場合、スイッチ23がPCIeインタフェース41b0に接続され、特定機能向けLSI51a0がPCIeインタフェース21e0に接続されていてもよい。
特定機能向けLSI51a0は、CPU21b0が出力する制御信号に基づいて動作する。特定機能向けLSI51a0が、たとえば、HEVC(High Efficiency Video Coding)エンコーダである場合には、特定機能向けLSI51a0は、動画像データをSOC[0]から受け、その動画像データを圧縮したHEVCデータを生成して出力する。
特定機能向けLSI51an,51an+1なども同様にSOC[n],SOC[n+1]に接続され、SOC[n],SOC[n+1]のCPUが出力する制御信号に基づいて動作する。
上記のような情報処理システム50によれば、個々のSOCに接続された各特定機能向けLSIが並列処理を行うことで、映像データの解析やメタデータの抽出、統合などの負荷が比較的重いタスクをより高効率に処理可能となる。
なお、上記第3の実施の形態の情報処理システム40と第4の実施の形態の情報処理システム50は、互いに組み合わせることもできる。すなわち、SOC[0]~SOC[N]のうち、あるSOCにはSSDメモリなどのメモリが接続され、他のSOCには特定機能向けLSIが接続されてもよい。
また、SOC[0]~SOC[n+1]において、PCIeインタフェースなどのインタフェースをさらに追加して、SSDメモリなどのメモリと、特定機能向けLSIの両方が接続されるようにしてもよい。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成及び応用例に限定されるものではなく、対応する全ての変形例及び均等物は、添付の請求項及びその均等物による本発明の範囲とみなされる。
10 情報処理システム
11,12 半導体集積回路
11a,12a 制御回路
11b,12b 割り込み制御回路
11c,12c アドレス変換回路
11d,12d,13a,13b PCIeインタフェース
11e,12e,13c システムバス
11m,12m メモリマップ情報
a1~a4 アドレス
13 スイッチ
14,15 メモリ
11,12 半導体集積回路
11a,12a 制御回路
11b,12b 割り込み制御回路
11c,12c アドレス変換回路
11d,12d,13a,13b PCIeインタフェース
11e,12e,13c システムバス
11m,12m メモリマップ情報
a1~a4 アドレス
13 スイッチ
14,15 メモリ
Claims (19)
- 複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力する第1の半導体集積回路と、
前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送するスイッチと、
前記データ送信先であり、前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込む第2の半導体集積回路と、
を有することを特徴とする情報処理システム。 - 前記第1のメモリマップ情報には、前記複数の半導体集積回路のそれぞれにおいて割り込み設定値が設定される各記憶回路のアドレスがさらに定義されており、
前記第1の半導体集積回路は、前記第1のメモリマップ情報に基づいて、前記データ送信先において前記割り込み設定値が設定される第1の記憶回路の第3のアドレスを指定し、前記第3のアドレスを、前記第2のメモリマップ情報において定義される前記第1の記憶回路の第4のアドレスに変換し、前記第4のアドレスと前記割り込み設定値とを、前記バスインタフェースを用いて出力し、
前記スイッチは、前記第4のアドレスと前記割り込み設定値とを、前記バスインタフェースを用いて前記データ送信先に転送し、
前記第2の半導体集積回路は、前記バスインタフェースを用いて、前記第4のアドレスと前記割り込み設定値とを受信し、前記第4のアドレスに対応する前記第1の記憶回路に前記割り込み設定値を書き込み、前記割り込み設定値に基づいて、前記送信データの受信の終了を判定する、
ことを特徴とする請求項1に記載の情報処理システム。 - 前記スイッチは、第1のスイッチと、前記第1のスイッチと前記バスインタフェースを用いて情報の送受信を行う第2のスイッチとを含み、
前記第2のアドレス、前記第4のアドレス、前記送信データ及び前記割り込み設定値は、前記第1のスイッチと前記第2のスイッチとを介して前記第2の半導体集積回路に転送される、
ことを特徴とする請求項2に記載の情報処理システム。 - 前記スイッチは、前記第2のアドレス及び前記第4のアドレスを、前記複数の半導体集積回路のうち、第3の半導体集積回路が参照する第3のメモリマップ情報において定義される、前記第3の半導体集積回路に接続された第2のメモリの第5のアドレスと、前記第3の半導体集積回路において前記割り込み設定値が設定される第2の記憶回路の第6のアドレスに変換する、ことを特徴とする請求項2または3に記載の情報処理システム。
- 前記受信バッファ領域には、前記複数の半導体集積回路のそれぞれに対応したバッファ領域が、それぞれ異なるアドレスで指定されるように設定されている、ことを特徴とする請求項1乃至4の何れか一項に記載の情報処理システム。
- 前記第1の半導体集積回路は、前記第1のアドレスを指定する第1の制御回路と、前記第1のアドレスを前記第2のアドレスに変換する第1のアドレス変換回路と、前記バスインタフェースとを有する、ことを特徴とする請求項1乃至5の何れか一項に記載の情報処理システム。
- 前記第2の半導体集積回路は、第2の制御回路と、前記割り込み設定値に基づいて、前記送信データの受信が終了したことを示す割り込み信号を前記第2の制御回路に通知する割り込み制御回路と、を有することを特徴とする請求項2乃至6の何れか一項に記載の情報処理システム。
- 前記第1のメモリマップ情報は、
前記複数の半導体集積回路のうち、前記第1のメモリマップ情報を参照する半導体集積回路に接続されたメモリのアドレスを定義する第1のアドレス空間と、
前記第1のメモリマップ情報を参照する半導体集積回路以外の他の半導体集積回路に接続されたメモリのアドレスを定義する第2のアドレス空間と、
前記第1のメモリマップ情報を参照する半導体集積回路の割り込み設定値が設定される記憶回路のアドレスを定義する第3のアドレス空間と、
前記他の半導体集積回路の割り込み設定値が設定される記憶回路のアドレスを定義する第4のアドレス空間と、
を含むことを特徴とする請求項2乃至7の何れか一項に記載の情報処理システム。 - 前記データ送信先からの応答を待たずに連続的な送信が可能な前記バスインタフェースは、PCIeインタフェースであることを特徴とする請求項1乃至8の何れか一項に記載の情報処理システム。
- 前記複数の半導体集積回路のうちの2つ以上には、前記複数の半導体集積回路のそれぞれが用いる各メモリよりも容量が大きい第3のメモリが接続されている、請求項1乃至9の何れか一項に記載の情報処理システム。
- 前記複数の半導体集積回路のうちの2つ以上には、特定機能向けLSIが接続されている、請求項1乃至10の何れか一項に記載の情報処理システム。
- 複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定する制御回路と、
前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換するアドレス変換回路と、
前記第2のアドレスと送信データとを出力する、前記データ送信先からの応答を待たずに連続的な送信が可能な第1のバスインタフェースと、
を有することを特徴とする半導体集積回路。 - 前記第1のメモリマップ情報には、前記複数の半導体集積回路のそれぞれにおいて割り込み設定値が設定される各記憶回路のアドレスがさらに定義されており、
前記制御回路は、前記第1のメモリマップ情報に基づいて、前記データ送信先において前記割り込み設定値が設定される第1の記憶回路の第3のアドレスを指定し、
前記アドレス変換回路は、前記第3のアドレスを、前記第2のメモリマップ情報において定義される前記第1の記憶回路の第4のアドレスに変換し、
前記第1のバスインタフェースは、前記第4のアドレスと前記割り込み設定値とを出力する、ことを特徴とする請求項12に記載の半導体集積回路。 - 前記第1のバスインタフェースは、他の半導体集積回路から、前記第1のメモリマップ情報において定義される第2のメモリの第5のアドレスと、書き込みデータとを受信し、前記第5のアドレスに対応する前記第2のメモリの受信バッファ領域に前記書き込みデータを書き込む、ことを特徴とする請求項12または13に記載の半導体集積回路。
- 割り込み設定値が設定される第2の記憶回路をさらに有し、
前記第1のバスインタフェースは、前記他の半導体集積回路から出力された、前記第1のメモリマップ情報において定義される前記第2の記憶回路の第6のアドレスと、前記割り込み設定値とを受信し、前記第6のアドレスに対応する前記第2の記憶回路に前記割り込み設定値を書き込み、
前記制御回路は、前記割り込み設定値に基づいて、前記書き込みデータの受信の終了を判定する、ことを特徴とする請求項14に記載の半導体集積回路。 - 前記割り込み設定値に基づいて、前記書き込みデータの受信が終了したことを示す割り込み信号を前記制御回路に通知する割り込み制御回路をさらに有する、ことを特徴とする請求項15に記載の半導体集積回路。
- 前記第1のメモリマップ情報は、
前記第2のメモリのアドレスを定義する第1のアドレス空間と、
前記第1のメモリのアドレスを定義する第2のアドレス空間と、
前記第2の記憶回路のアドレスを定義する第3のアドレス空間と、
前記第1の記憶回路のアドレスを定義する第4のアドレス空間と、
を含む、ことを特徴とする請求項12乃至16の何れか一項に記載の半導体集積回路。 - 前記複数の半導体集積回路のそれぞれが用いる各メモリよりも容量が大きい第3のメモリ、または、特定機能向けLSIと接続可能な第2のバスインタフェースを含む、ことを特徴とする請求項12乃至17の何れか一項に記載の半導体集積回路。
- 第1の半導体集積回路が、
複数の半導体集積回路のそれぞれが用いる各メモリのアドレスが定義された第1のメモリマップ情報に基づいて、前記複数の半導体集積回路の1つであるデータ送信先に接続された第1のメモリの第1のアドレスを指定し、前記第1のアドレスを、前記データ送信先で参照される第2のメモリマップ情報において定義される前記第1のメモリの第2のアドレスに変換し、前記第2のアドレスと送信データとを、前記データ送信先からの応答を待たずに連続的な送信が可能なバスインタフェースを用いて出力し、
スイッチが、
前記第2のアドレスと前記送信データとを、前記バスインタフェースを用いて前記データ送信先に転送し、
前記データ送信先である第2の半導体集積回路が、
前記バスインタフェースを用いて、前記第2のアドレスと前記送信データとを受信し、前記第2のアドレスに対応する前記第1のメモリの受信バッファ領域に前記送信データを書き込む、
ことを特徴とする情報処理方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018553804A JP7206485B2 (ja) | 2016-11-30 | 2017-11-22 | 情報処理システム、半導体集積回路及び情報処理方法 |
CN201780073022.2A CN109997122B (zh) | 2016-11-30 | 2017-11-22 | 信息处理***、半导体集成电路以及信息处理方法 |
EP17877100.2A EP3550439B1 (en) | 2016-11-30 | 2017-11-22 | Information processing system, semiconductor integrated circuit, and information processing method |
US16/392,240 US10853287B2 (en) | 2016-11-30 | 2019-04-23 | Information processing system, semiconductor integrated circuit, and information processing method |
JP2022149667A JP7401811B2 (ja) | 2016-11-30 | 2022-09-21 | 情報処理システム、半導体集積回路及び情報処理方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016-232340 | 2016-11-30 | ||
JP2016232340 | 2016-11-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/392,240 Continuation US10853287B2 (en) | 2016-11-30 | 2019-04-23 | Information processing system, semiconductor integrated circuit, and information processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018101136A1 true WO2018101136A1 (ja) | 2018-06-07 |
Family
ID=62241380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/041935 WO2018101136A1 (ja) | 2016-11-30 | 2017-11-22 | 情報処理システム、半導体集積回路及び情報処理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10853287B2 (ja) |
EP (1) | EP3550439B1 (ja) |
JP (2) | JP7206485B2 (ja) |
CN (1) | CN109997122B (ja) |
WO (1) | WO2018101136A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007105373A1 (ja) * | 2006-03-10 | 2007-09-20 | Sony Corporation | ブリッジ、情報処理システムおよびアクセス制御方法 |
US7480303B1 (en) | 2005-05-16 | 2009-01-20 | Pericom Semiconductor Corp. | Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports |
JP2012128717A (ja) * | 2010-12-16 | 2012-07-05 | Ricoh Co Ltd | 通信機器および通信システム |
WO2013136522A1 (ja) | 2012-03-16 | 2013-09-19 | 株式会社日立製作所 | 計算機システム及び計算機間のデータ通信方法 |
US20150067229A1 (en) | 2013-08-30 | 2015-03-05 | Patrick Connor | Numa node peripheral switch |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2736051C (en) * | 2003-12-30 | 2018-02-27 | United Parcel Service Of America, Inc. | Integrated global tracking and virtual inventory system |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8484307B2 (en) * | 2008-02-01 | 2013-07-09 | International Business Machines Corporation | Host fabric interface (HFI) to perform global shared memory (GSM) operations |
US8214604B2 (en) * | 2008-02-01 | 2012-07-03 | International Business Machines Corporation | Mechanisms to order global shared memory operations |
WO2009140631A2 (en) * | 2008-05-15 | 2009-11-19 | Smooth-Stone, Inc. | Distributed computing system with universal address system and method |
US20100007067A1 (en) * | 2008-07-10 | 2010-01-14 | Specialty Minerals (Michigan) Inc. | Wire injection lance nozzle assembly |
EP2701072A1 (en) * | 2010-03-11 | 2014-02-26 | Ricoh Company, Ltd. | Adapter and communication method |
EP3156909B1 (en) * | 2011-04-21 | 2018-10-03 | GigaIO Networks, Inc. | Unified system area network and switch |
GB2507287A (en) * | 2012-10-24 | 2014-04-30 | Ibm | Associating restore points of a program with execution states and data stored in memory. |
JP2014160502A (ja) * | 2014-04-28 | 2014-09-04 | Fujitsu Ltd | 情報処理装置およびメモリアクセス方法 |
-
2017
- 2017-11-22 EP EP17877100.2A patent/EP3550439B1/en active Active
- 2017-11-22 JP JP2018553804A patent/JP7206485B2/ja active Active
- 2017-11-22 CN CN201780073022.2A patent/CN109997122B/zh active Active
- 2017-11-22 WO PCT/JP2017/041935 patent/WO2018101136A1/ja unknown
-
2019
- 2019-04-23 US US16/392,240 patent/US10853287B2/en active Active
-
2022
- 2022-09-21 JP JP2022149667A patent/JP7401811B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7480303B1 (en) | 2005-05-16 | 2009-01-20 | Pericom Semiconductor Corp. | Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports |
WO2007105373A1 (ja) * | 2006-03-10 | 2007-09-20 | Sony Corporation | ブリッジ、情報処理システムおよびアクセス制御方法 |
JP2012128717A (ja) * | 2010-12-16 | 2012-07-05 | Ricoh Co Ltd | 通信機器および通信システム |
WO2013136522A1 (ja) | 2012-03-16 | 2013-09-19 | 株式会社日立製作所 | 計算機システム及び計算機間のデータ通信方法 |
US20150067229A1 (en) | 2013-08-30 | 2015-03-05 | Patrick Connor | Numa node peripheral switch |
Also Published As
Publication number | Publication date |
---|---|
US20190251049A1 (en) | 2019-08-15 |
CN109997122B (zh) | 2023-06-30 |
EP3550439A4 (en) | 2019-12-11 |
JPWO2018101136A1 (ja) | 2019-10-24 |
EP3550439A1 (en) | 2019-10-09 |
JP2022176236A (ja) | 2022-11-25 |
CN109997122A (zh) | 2019-07-09 |
US10853287B2 (en) | 2020-12-01 |
JP7401811B2 (ja) | 2023-12-20 |
JP7206485B2 (ja) | 2023-01-18 |
EP3550439B1 (en) | 2022-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10275375B2 (en) | Network interface controller with compression capabilities | |
EP1358562B1 (en) | Method and apparatus for controlling flow of data between data processing systems via a memory | |
US9996491B2 (en) | Network interface controller with direct connection to host memory | |
US9411775B2 (en) | iWARP send with immediate data operations | |
US7155554B2 (en) | Methods and apparatuses for generating a single request for block transactions over a communication fabric | |
WO2020247042A1 (en) | Network interface for data transport in heterogeneous computing environments | |
JP2024099640A (ja) | 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間 | |
US20040054837A1 (en) | Controlling flow of data between data processing systems via a memory | |
CN103218313B (zh) | 用于实现缓存描述符交互的方法和电子设备 | |
US20140164553A1 (en) | Host ethernet adapter frame forwarding | |
JP7401811B2 (ja) | 情報処理システム、半導体集積回路及び情報処理方法 | |
WO2017063447A1 (zh) | 一种计算装置、节点设备和服务器 | |
US20190286606A1 (en) | Network-on-chip and computer system including the same | |
KR20030083572A (ko) | 상위버스와 하위버스를 가지며, 네트워크에서의 데이터액세스의 제어를 행하는 마이크로 컴퓨터 시스템 | |
CN114281499A (zh) | 一种总线互连时的中断传递处理方法及*** | |
CN218996035U (zh) | 一种配合xmda使用的rdma高速数据传输*** | |
US20020049878A1 (en) | Data communications interfaces | |
US11487695B1 (en) | Scalable peer to peer data routing for servers | |
US20240223500A1 (en) | Peripheral component interconnect express over fabric networks | |
JP4930554B2 (ja) | 入出力制御装置 | |
TW202428003A (zh) | 透過結構網路的快速週邊組件互連 | |
CN117931481A (zh) | 一种实时与分时***数据快速交换的方法 | |
CN117851286A (zh) | 一种rdma roce中的内存地址翻译表压缩方法 |
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: 17877100 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2018553804 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2017877100 Country of ref document: EP Effective date: 20190701 |