WO2011114383A1 - 情報処理装置及び情報処理装置のデバイス情報収集処理方法 - Google Patents

情報処理装置及び情報処理装置のデバイス情報収集処理方法 Download PDF

Info

Publication number
WO2011114383A1
WO2011114383A1 PCT/JP2010/001986 JP2010001986W WO2011114383A1 WO 2011114383 A1 WO2011114383 A1 WO 2011114383A1 JP 2010001986 W JP2010001986 W JP 2010001986W WO 2011114383 A1 WO2011114383 A1 WO 2011114383A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
input
multicast
output devices
register
Prior art date
Application number
PCT/JP2010/001986
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 JP2012505314A priority Critical patent/JP5299559B2/ja
Priority to PCT/JP2010/001986 priority patent/WO2011114383A1/ja
Publication of WO2011114383A1 publication Critical patent/WO2011114383A1/ja
Priority to US13/609,954 priority patent/US8533372B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Definitions

  • the present invention relates to an information processing apparatus and a device information collection processing method for the information processing apparatus.
  • the information processing apparatus includes an arithmetic processing unit (CPU: Central Processing Unit, hereinafter referred to as CPU), a memory (Memory), and a plurality of input / output devices (I / O Devices).
  • CPU Central Processing Unit
  • Memory Memory
  • I / O Devices input / output devices
  • an interface device with an external storage device or a network device with a network is used.
  • the device driver is installed (installed) in the CPU in order for the CPU to drive these input / output devices.
  • a device driver installed in the CPU collects the state of each input / output device, the operation history, and the like.
  • the device driver collects the status and operation history of each input / output device, and performs diagnosis and abnormality detection for each input / output device.
  • Input / output device status and operation history are stored in the input / output device registers. For this reason, when a plurality of input / output devices are mounted on the information processing apparatus, the device driver executes a process of reading (reading) the registers of the input / output devices separately for each input / output device.
  • An object of the present invention is to provide an information processing apparatus and a device information collection processing method for an information processing apparatus that prevent an increase in the register read processing time of each input / output device due to an increase in the number of input / output devices.
  • an information processing apparatus includes an arithmetic processing device, a storage device used by the arithmetic processing device, a plurality of input / output devices each having a storage unit and a DMA circuit for holding state information, and A bridge circuit that connects the arithmetic processing unit and the plurality of input / output devices, and multicasts packets from the arithmetic processing unit to the plurality of input / output devices according to a multicast setting from the arithmetic processing unit.
  • the arithmetic processing unit transmits a packet instructing the start of copying to the bridge circuit, the bridge circuit multicasts the packet instructing the start of copying to the plurality of input / output devices, and a packet instructing the start of copying
  • the DMA circuit of the plurality of input / output devices transmits the status information of the storage unit to the bridge. DMA transfer to the storage device via the road.
  • a disclosed device information collection processing method for an information processing apparatus includes an arithmetic processing device, a storage device used by the arithmetic processing device, a storage unit that holds state information, and a DMA circuit.
  • a plurality of input / output devices, and the arithmetic processing device and the plurality of input / output devices are connected, and packets from the arithmetic processing device are set by multicast setting from the arithmetic processing device.
  • FIG. 4 is a configuration diagram of the switch circuit of FIG. 3. It is explanatory drawing of the multicast register of FIG. It is explanatory drawing of the example of a setting of the multicast register of FIG. It is explanatory drawing of the multicast operation in the example of a setting of the multicast register of FIG. It is a block diagram of the input / output device of FIG. It is explanatory drawing of the PCI Express packet in FIG. 3 thru
  • FIG. 12 is a relationship diagram between a setting address of the multicast register of FIGS. 10 and 11 and a register address of each input / output device.
  • FIG. 11 is an explanatory diagram of setting values of a copy destination address register in FIG. 10. It is explanatory drawing of the storage state of the register data collected in the host memory of FIG. It is explanatory drawing of the load process of the microcode of other embodiment.
  • FIG. 16 is a block diagram of the switch and input / output device of FIG. 15.
  • FIG. 16 is a flowchart of the microcode loading process of FIG. 15. It is explanatory drawing of the example of a setting of the address value of the input / output device of FIG. It is explanatory drawing of the example of a setting of the multicast register of FIG.
  • FIG. 1 is an explanatory diagram of an information processing apparatus according to an embodiment.
  • FIG. 2 is an explanatory diagram of a device information collection method of the information processing apparatus of FIG.
  • an information processing apparatus 1 includes an arithmetic processing unit (CPU: Central Processing Unit) 2, a host memory 4 used by a host (CPU) 2, and a bridge circuit (denoted as Chipset) having a multicast function. 3 and a plurality of input / output devices 5-0, 5-1 and 5-2 connected to the bridge circuit 3.
  • CPU Central Processing Unit
  • a host memory 4 used by a host (CPU) 2
  • a bridge circuit denoted as Chipset
  • device drivers 20 that drive the input / output devices 5-0 to 5-2 are installed (Install).
  • the CPU 2 executes the device driver 20 and drives the input / output devices 5-0 to 5-2.
  • the bridge circuit 3 connects the input / output devices 5-0 to 5-2 by the signal line 6.
  • the signal line 6 is composed of, for example, a parallel signal line of PCI (Peripheral Component Interface) express standard.
  • the bridge circuit 3 has a multicast function 3A.
  • the multicast function for example, it is preferable to apply the multicast function defined in PCI express specification rev (revised version) 2.0, 2.1.
  • the input / output devices 5-0 to 5-2 are devices for the CPU 2 to input / output from / to an external device, and are constituted by, for example, interface devices and network devices.
  • the interface device includes, for example, a SCSI (Small Computer System Interface) card device, a SAS (Serial Attached SCSI) card device, an FC (Fibre Channel) device, and the like. This interface device is connected to a storage device or the like provided outside the information processing apparatus 1.
  • the network device is constituted by, for example, a NIC (Network Interface Card), and connects the information processing apparatus 1 to a network (for example, a LAN (Local Area Network) or a network switch).
  • a network for example, a LAN (Local Area Network) or a network switch.
  • register copy areas 4-0 to 4-2 of the input / output devices 5-0 to 5-2 are secured in the work area 4A of the host memory 4.
  • Each of the input / output devices 5-0 to 5-2 has a register copy DMA (Direct Memory Access) circuit 50.
  • the register copy DMA circuit 50 has a function of copying the register information of the input / output devices 5-0 to 5-2 to a specified host memory area by using a write to a specific register as a trigger.
  • a device information collection method of the device driver 20 will be described with reference to FIG. Note that (1) to (5) in FIG. 2 correspond to the procedure described below.
  • the device driver 20 secures register copy areas 4-0 to 4-2 of the input / output devices 5-0 to 5-2 in the work area 4A of the host memory 4.
  • the device driver 20 sets the start addresses of the register copy areas 4-0 to 4-2 of the input / output devices 5-0 to 5-2 to the input / output devices 5-0 to 5-2 individually. That is, the start addresses of the register copy areas 4-0 to 4-2 in the work area 4A of the host memory 4 are written in a register for specifying the copy destination provided in the register copy DMA circuit 50.
  • the device driver 20 performs register write (Write) by multicast using the multicast function 3A of the bridge circuit 3 in order to collect the register information of the input / output devices 5-0 to 5-2 at the same time. Instructs devices 5-0 to 5-2 to start register copy. That is, the device driver 20 writes the copy start instruction bit (bit) of the register copy control register provided in the register copy DMA circuit 50 by multicast.
  • the register copy DMA circuit 50 of the input / output devices 5-0 to 5-2 transfers the register information to the designated address of the host memory 4 by DMA transfer (DMA Write).
  • the device driver 20 refers to the register information in the work area 4A of the host memory 4 at once.
  • register information can be obtained when the device driver 20 collects data by repeating steps (3) to (5).
  • the DMA transfer start instruction is performed using the multicast function, the time required for reading (reading) the register of each input / output device can be shortened. This is particularly effective when there are many input / output devices that perform register reading.
  • FIG. 3 is a block diagram of the information processing apparatus according to the embodiment. 3, the same components as those shown in FIG. 1 are indicated by the same symbols.
  • the information processing apparatus 1 includes a CPU 2, a host memory 4 used by the host (CPU) 2, and a memory buffer 7.
  • the CPU 2 is connected to the host memory 4 via the memory buffer 2.
  • the information processing apparatus 1 further includes an IO (Input Output) hub 30 constituting the bridge circuit 3, a switch circuit 32 having a multicast function, and a plurality of input / output devices 5-connected to the switch circuit 32. 0, 5-1 and 5-2.
  • IO Input Output
  • the CPU 2 is connected to the IO hub 30.
  • the IO hub 30 is connected to the fourth port 39-0 of the switch circuit 32 by a PCI express (referred to as PCIe) bus 6-3.
  • PCIe PCI express
  • the switch circuit 32 has first to third ports 39-1 to 39-3. Each of the first to third ports 39-1 to 39-3 is connected to the input / output devices 5-0 to 5-2 via PCIe buses 6-0 to 6-2. Each port 39-0 to 39-3 of the switch circuit 32 has a PCIe multicast function described later.
  • the switch circuit 32 shows a one-to-three switch, the present invention is not limited to this, and a switch of one-to-N (N> 1 and N is an integer) is also applicable.
  • the CPU 2 executes the device driver 20, drives the input / output devices 5-0 to 5-2, and collects device information.
  • the input / output devices 5-0 to 5-2 are composed of interface devices and network devices as described above.
  • register copy areas 4-0 to 4-2 of the input / output devices 5-0 to 5-2 are secured in the work area 4A of the host memory 4.
  • Each of the input / output devices 5-0 to 5-2 has a register copy DMA (Direct Memory Access) circuit 50.
  • the register copy DMA circuit 50 has a function of copying the register information of the input / output devices 5-0 to 5-2 to a specified host memory area by using a write to a specific register as a trigger.
  • the host memory 4 is connected to the CPU 2 via the memory buffer 7.
  • the host memory 4 is connected to the CPU 2 via the bridge circuit 3. Either configuration can be applied, but in the configuration of FIG. 3, the number of memories mounted can be expanded by a memory buffer.
  • FIG. 4 is a configuration diagram of the switch circuit 32 of FIG.
  • FIG. 5 is an explanatory diagram of the multicast register of FIG.
  • FIG. 6 is an explanatory diagram of a setting example of the multicast register of FIGS. 4 and 5.
  • FIG. 7 is an explanatory diagram of a multicast operation according to the setting of FIG. In this embodiment, the multicast function will be described using the multicast function of the PCI express specification.
  • each of the ports 39-0 to 39-3 includes packet transmission / reception buffers 34-0, 35-0, 36-0, 37-0 and multicast registers 34-4, 35-4, 36-. And packet analysis units 34-2, 35-2, 36-2, and 37-2.
  • the ports 39-0 to 39-3 are connected by an internal bus 38.
  • the packet analysis unit 34-2 determines whether the received packet is a write to a specific address range.
  • the packet analysis unit 34-2 determines that the received packet is a multicast when it is determined that the received packet is a write to a specific address range. When the packet analysis unit 34-2 determines that the received packet is multicast, the packet analysis unit 34-2 transfers the received packet to all the other ports 39-1 to 39-3.
  • the packet analysis unit 34-2 determines that the received packet is not a write to a specific address range, it determines that the packet is unicast.
  • the packet analysis unit 34-2 determines that the received packet is unicast, the packet analysis unit 34-2 transfers the received packet to the ports 39-1 to 39-3 designated by the packet.
  • the packet analysis units 34-2 to 37-2 have multicast registers 34-4 to 37-4.
  • the multicast register specification shown in FIG. 5 is defined.
  • the multicast registers 34-4 to 37-4 are a PCI Express extended function header (Extended Capability Header) 340, a multicast control register (Multicast Control Register) 341, a multicast function register (Multicast Capability Register base 342). Register (MC_Base_Address Register) 343, multicast reception register (MC_Receive Register) 344, multicast block register (MC_Block_All_Register) 345, multicast block non-conversion register (MC_Block_Untr) nslated Register) 346, and a multicast overlay bar (MC_Overlay_Bar) 347.
  • PCI Express extended function header Extended Capability Header
  • Multicast Control Register Multicast Control Register
  • Register MC_Base_Address Register
  • MC_Receive Register multicast reception register
  • MC_Block_All_Register multicast block register
  • MC_Block_Untr multicast block non-conversion register
  • MC_Overlay_Bar multicast overlay bar
  • PCI Express Extended Capability Header 340 means the start of a series of registers for Multicast.
  • MC_Enable that enables the Multicast function, which is a setting bit for controlling the Multicast
  • the Multicast Capability Register 342 information on the Multicast function that can be performed by this device (switch 32) is set. For example, the number of MCGs that can be supported is displayed.
  • the MC_Base_Address Register 343 is set with a value that determines the Multicast Address range. That is, MC_Base_Address Register 343 is set with MC_Base_Address indicating the multicast address start position and MC_Index_Position indicating the multicast address area size for one MCG.
  • the multicast area size by this MC_Index_Position is 2 MC_Index_Position .
  • MC_Receive Register 344 is set to determine whether to receive a multicast packet for each MCG.
  • MC_Block_All Register 345 is set to determine whether or not to transfer a multicast packet for each MCG.
  • MC_Block_Untranslated Register 346 it is set whether or not a multicast packet for which address translation is not performed is transferred for each MCG.
  • MC_Overlay_Bar 347 when the overlay is valid, the address of the multicast packet and the overlay size MC_Overlay_Size for performing the overlay are set. 2 Overlay is performed in units of MC_Overlay_Size Bytes. If the value of MC_Overlay_Size is less than 6, the overlay is invalid.
  • the multicast address range X is defined as follows according to the settings of these registers 341 to 347.
  • a multicast register having such a configuration is provided in each of the ports 39-0 to 39-3 of the switch circuit 32.
  • the packet analysis unit 34-2 determines that the MC function is valid by the Multicast Control Register 341 of the multicast register 34-4, the packet received from the MC_Base_Address and MC_Index_Position of the MC_Base_Address Register 343 (described later in FIG. 9). It is determined whether or not the designated address X of (Yes) is a write to a specific address range defined by the above formula.
  • the packet analysis unit 34-2 determines that the received packet is a multicast when it is determined that the received packet is a write to a specific address range. When the packet analysis unit 34-2 determines that the received packet is multicast, the packet analysis unit 34-2 transfers the received packet to all other ports 39-1 to 39-3.
  • FIG. 6 is an explanatory diagram of an example of setting values of the multicast registers 34-4 to 37-4 of each port.
  • FIG. 7 is an explanatory diagram of the multicast operation according to FIG.
  • the multicast function register (Multicast Capability Register) 342 the multicast reception register (MC_Receive Register) 344, the multicast block register (MC_Block_All Register) 345, the multicast block
  • the set value of the non-conversion register (MC_Block_Untranslated Register) 346 is omitted.
  • MC_Enable and MC_Num_Group of the Multicast Control Register 341 MC_Base_Address_MC of the Multicast Base Address Register (MC_Base_Address Register) 343 of MC_Base_Address, MC_Index_Position of MC_Base_MC
  • the switch circuit 32 When the set values of the multicast registers 34-4 to 37-4 of the respective ports are the values shown in FIG. 6, the switch circuit 32 performs the multicast according to the following procedure as shown in FIG.
  • the packet analysis unit 34-2 determines that the packet X is a multicast packet because the address of the packet X is within the multicast address range.
  • the packet analysis unit 34-2 transfers the multicast packet X received via the internal bus 38 to each port 39-1 to 39-3.
  • each port 39-1 to 39-3 also determines the same multicast address range with reference to the multicast registers 35-4, 36-4, and 37-4, each port 39-1 to 39-3
  • the packet analyzers 35-2 to 35-4 determine that the packet X received from the internal bus 38 is a multicast packet.
  • the setting value of the overlay size MC_Overlay_Size of the multicast registers 35-4 to 37-4 of the ports 39-1 to 39-3 is “12”.
  • the packet analysis units 35-2 to 37-2 of the respective ports 39-1 to 39-3 determine that the overlay setting is valid because MC_Overlay_Size> 6. Therefore, the packet analysis units 35-2 to 37-2 convert the address of the packet X into the address value set in the MC_Overlay_BAR of its own multicast register 35-4 to 37-4, and the PCIe bus 6-0 to 6-6 Transfer to I / O devices 5-0 to 5-2 via -0.
  • the packet address is designated as “0x8001000”. Since the packet address “0x8001000” is out of the multicast address range (“0xA0000000” ⁇ X ⁇ “0xA0001000”), it is determined as unicast.
  • a new Multicast Group is defined in the multicast register, and the corresponding Multicast Group is defined in the multicast registers 34-4 and 36-4. May be set (MC_Receive_Register 344, MC_Block_AllRegister 345).
  • FIG. 8 is a block diagram of the input / output device having the configuration of FIG.
  • FIG. 9 is an explanatory diagram of the packet format of FIG.
  • the input / output devices 5-0, 5-1, and 5-2 include a device basic function unit 52, the aforementioned DMA circuit 50, and the first multiplexer 54.
  • the device basic function unit 52 is, for example, an interface controller that controls an interface in an interface device, and a network control controller in a network device.
  • the first multiplexer 54 selects either the output from the device basic function unit 52 or the output of the DMA circuit 50, and outputs it to the PCIe bus 6-0 to 6-2.
  • the device basic function unit 52 includes a microcontroller (not shown), a register group 100, and an address decoder 110.
  • This register group 100 stores data transfer status and control information, device and data transfer error information, performance information such as device busy rate and throughput, and data transmission / reception history information.
  • the device driver 20 can read the contents of the register group 100 via the PCIe buses 6-0 to 6-2.
  • the address decoder 110 decodes the address of the packet received from the PCIe bus 6-0 to 6-2, and transfers the received packet to the designated address.
  • the input / output devices 5-0 to 5-2 include a register copy DMA circuit (hereinafter referred to as a DMA engine) 50 in addition to the configuration of the device basic function unit 52.
  • the DMA engine 50 includes a copy start address register 80, a copy destination address register 82, a sequence number register 84, a selection circuit 90, a multiplexer 88, and a PCIe packet generation sequencer (circuit) 86.
  • the copy start register 80 holds a copy start instruction set from the PCIe bus 6-0 to 6-2.
  • the copy destination address register 82 holds the copy destination address set from the PCIe buses 6-0 to 6-2.
  • the sequence number register 84 holds the sequence number of the transfer packet.
  • the address decoder 110 stores the set value of the packet in the copy start address register 80, the copy destination address register 82, and the sequence number register 84 corresponding to the designated address.
  • the selection circuit 90 selects a designated register of the register group 100.
  • the second multiplexer 88 receives the address of the copy destination address register 82, the register dump data from the selection circuit 90, and the sequence number of the transfer packet from the sequence number register 84, and outputs the packet to the multiplexer 54.
  • the PCIe packet generation sequencer 86 receives a copy start instruction by one write (to be described later) to the copy start register 80, and sequentially transfers the data in the register group 100 from the address Offset “0x0000” to “0xFFFC” via the selection circuit 90. Read to.
  • the PCIe packet generation sequencer 86 operates the second multiplexer 88 to add 4 bytes of sequence number data in the sequence number register 84 to the last 4 bytes of the read data to create a 4 Kbyte PCIe payload (Payload). Then, the address of the copy destination address register 82 is added to the PCIe payload to create a PCI express packet.
  • the format of the PCI express packet has a 16-byte PCIe packet header (Packet Header) 4 and a 4 Kbyte PCIe packet payload.
  • the register data read from the register group 100 referred to as register dump data
  • the sequence number are set in the PCIe packet payload.
  • the PCIe packet output from the second multiplexer 88 is output to the PCIe 6-0 to 6-2 via the first multiplexer 54.
  • FIG. 10 is a device information collection processing flowchart of the device driver according to the present embodiment.
  • FIG. 11 is an explanatory diagram of address setting processing of the multicast register of FIG.
  • FIG. 12 is a relationship diagram between the setting address of the multicast register and the register address of each input / output device.
  • FIG. 13 is an explanatory diagram of setting values of the copy destination address register of FIG.
  • FIG. 14 is an explanatory diagram of the storage state of the register data collected in the host memory of FIG.
  • the device driver 20 applies the setting values described in FIG. 6 to the multicast registers 34-4, 35-4, 36-4 of the ports 39-0 to 39-3 of the switch circuit 32. , 37-4. That is, the device driver 20 sets the configuration write (Configuration Write) as the packet type, the address of each multicast register as the address, and the setting value as the payload in the PCIe packet format described with reference to FIG. The data is transmitted to the switch circuit 32 via the bus 6-3.
  • Configuration Write Configuration Write
  • the port 39-0 of the switch circuit 32 receives each packet in which the multicast register setting value of each port is set.
  • the packet analysis unit 34-2 of the port 39-0 determines that the packet type is unicast.
  • the packet analysis unit 34-2 writes the setting value of the received packet into the multicast register 34-4.
  • the packet analysis unit 34-2 specifies the received packet when the address of the received packet specifies the address of the multicast registers 35-4 to 37-4 of the other ports 39-1 to 39-3.
  • the data is transferred to the ports 39-1 to 39-3 via the internal bus 38.
  • the packet analysis units 35-2 to 37-2 write the setting values of the received packet in the multicast registers 35-4 to 37-4.
  • the copy of the DMA engine 50 in each of the input / output devices 5-0 to 5-2 is performed in the multicast.
  • the register addresses of the start register 80, the copy destination address register 82, and the sequence number register 84 can be set to different addresses.
  • the address is set to MC_Overlay_Bar setting values “0x80001000”, “0x80002000”, “0x80003000” (hexadecimal display) among the setting values of FIG.
  • the register address of the copy destination address register 82 of the DMA engine 50 in each of the input / output devices 5-0 to 5-2 is the set value in FIG. MC_Overlay_Bar set values “0x80001000”, “0x8000000000”, “0x80003000” (hexadecimal display) + “0x0000000000” are set to values “0x800001004”, “0x80002004”, “0x80003004” (hexadecimal display).
  • the register address of the sequence number register 84 of the DMA engine 50 in each of the input / output devices 5-0 to 5-2 is MC_Overlay_Bar setting values “0x80001000”, “0x80002000”, “0x80003000” among the setting values of FIG.
  • the values “0x80001008”, “0x80002008”, and “0x80003008” (hexadecimal display) which are (hexadecimal display) + “0x00000008” are set.
  • the device driver 20 applies the setting values described in FIGS. 5 and 6 to the multicast registers 34-4, 35-4, 36-4, 37- of the ports 39-0 to 39-3 of the switch circuit 32. Set to 4.
  • data can be written to the registers 80, 82, 84 of the DMA circuit 50 using the multicast function.
  • the device driver 20 secures an area 4-0 to 4-2 for storing register information copied from the input / output devices 5-0 to 5-2 at a specific position in the host memory 4.
  • an area of 4 Kbytes * 3 is required. Therefore, the device driver 20 secures an area from the address “0x20000000” to “0x20002FFF” in the host memory 4.
  • the device driver 20 sets the start address of the host memory secured in the copy destination address register 82 of each of the input / output devices 5-0 to 5-2. In this case, since the copy destination address setting values are different for each of the input / output devices 5-0 to 5-2, as described in step S10, the device driver 20 sets the memory type (MEM Write) to the packet type in the PCIe packet format. ), The address of the copy destination address register 82 of each of the input / output devices 5-0 to 5-2 is set as the address, the start address value is set as the payload, and the switch circuit 32 is set via the IO hub 30 and the PCIe bus 6-3. Send to.
  • MEM Write memory type
  • the port 39-0 of the switch circuit 32 receives each packet in which the copy destination start address setting value of each of the input / output devices 5-0 to 5-2 is set.
  • the packet analysis unit 34-2 of the port 39-0 transfers the received packet to the designated ports 39-1 to 39-3 via the internal bus 38.
  • the packet analysis units 35-2 to 37-2 send the received packets to the input / output devices 5-0 to 5-2 via the PCIe buses 6-0 to 6-2. Forward to.
  • the address decoder 110 decodes the address of the packet, and writes the set value (copy destination start address) of the received packet to the copy destination address register 82.
  • FIG. 13 shows an example of the copy destination address of the copy destination address register 82 of each of the input / output devices 5-0 to 5-2.
  • the device driver 20 secures an area from the address “0x20000000” to “0x20002FFF” in the host memory 4 for the input / output devices 5-0 to 5-2.
  • the copy destination addresses of the copy destination address registers 82 of ⁇ 0 to 5-2 are “0x20000000”, “0x20001000”, and “0x20002000”.
  • the device driver 20 sets the sequence number by multicast.
  • This data “0x01234567” is a value to which “1” is added (incremented) every time the register information is copied, and is set to be at least a value different from the previous register information copy.
  • the packet analysis unit 34-2 of the port 39-0 determines that the packet received from the packet address “0xA0000008” is a multicast packet, and sends it to each of the ports 39-1 to 39-3 via the internal bus 38. Forward the received packet.
  • the packet analysis units 35-2 to 37-2 of the ports 39-1 to 39-3 determine that the packet received from the packet address “0xA0000008” is a multicast packet.
  • the packet analysis units 35-2 to 37-2 use the MC_Overlay_Bar setting values “0x80001000”, “0x80002000”, “0x80003000” as the address of the received packet, and the register address value “0” of the sequence number register 84 of the DMA engine 50 “0x80001008”, “0x80002008”, “0x80003008” (hexadecimal display).
  • the packet analysis units 35-2 to 37-2 transfer the packets having the converted addresses to the input / output devices 5-0 to 5-2 via the PCIe buses 6-0 to 6-2.
  • the address decoder 110 decodes the address of the packet and writes the setting value (sequence number) of the received packet to the sequence number register 84.
  • the device driver 20 instructs the register information copy start by multicast.
  • the packet analysis unit 34-2 of the port 39-0 determines that the packet received from the packet address “0xA0000000” is a multicast packet, and sends it to each of the ports 39-1 to 39-3 via the internal bus 38. Forward.
  • the packet analysis units 35-2 to 37-2 of the ports 39-1 to 39-3 determine that the packet received from the packet address “0xA0000000” is a multicast packet.
  • the packet analysis units 35-2 to 37-2 copy the address of the received packet (“0xA0001000” in FIG. 7) using the setting values “0x80001000”, “0x80002000”, “0x80003000” of the MC_Overlay_Bar.
  • the register address values of the start register 80 are converted to “0x80001000”, “0x80002000”, “0x80003000” (hexadecimal display).
  • the packet analysis units 35-2 to 37-2 transfer the packets having the converted addresses to the input / output devices 5-0 to 5-2 via the PCIe buses 6-0 to 6-2.
  • the address decoder 110 decodes the address of the packet, and writes the setting value (copy start instruction) of the received packet to the copy start register 80.
  • the PCIe packet generation sequencer 86 monitors the copy start register 80 and determines that a copy start instruction has been written in the copy start register 80. When the PCIe packet generation sequencer 86 determines that a copy start instruction has been written in the copy start register 80, it starts copying register information to the designated host memory.
  • the PCIe packet generation sequencer 86 sequentially selects the selection circuit 90 and reads the data in the register group 100 in order from the address Offset “0x0000” to “0xFFFC”.
  • the PCIe packet generation sequencer 86 operates the second multiplexer 88 to add 4 bytes of sequence number data in the sequence number register 84 to the last 4 bytes of the read data, and creates a 4 Kbyte PCIe payload (Payload). Then, the address of the copy destination address register 82 is added to the PCIe payload to create a PCI express packet.
  • the PCIe packet (see FIG. 9) output from the second multiplexer 88 is transmitted to the PCIe buses 6-0, 6-1, 6-2 via the first multiplexer 54.
  • the switch circuit 32 transfers the received PCIe packets from the input / output devices 5-0 to 5-2 to the CPU 2 via the IO hub 30 and the PCIe bus 6-3.
  • the CPU 2 stores the transferred PCIe packet in the area 4-0 to 4-2 designated by the address of the host memory 4.
  • the register dump data (payload) from the input / output devices 5-0 to 5-2 is stored in the areas 4-0 to 4-2 designated at the head by the copy destination start address of the host memory 4. Is done.
  • the device driver 20 reads the sequence number of the host memory 4. That is, the device driver 20 reads the contents of the area where the sequence number of each device in the host memory 4 is copied (in FIG. 14, the memory addresses “0x20000FFC”, “0x20001FFC”, “0x20002FFC” (hexadecimal display)). . In the example of FIG. 14, the sequence number exists at the position of copy start address + 0xFFC.
  • the device driver 20 compares the read value with the value set in step S16 (that is, “0x01234567” in the present embodiment). When the test driver 20 determines that the read value is the same as the value set in step S16, the copy of the register information in the host memory 4 is completed, and the process proceeds to step S24.
  • step S20 is executed again after a predetermined time has elapsed.
  • test driver 20 determines that the read value is the same as the value set in step S16, the device driver 20 reads a copy of the register information from the host memory 4.
  • FIG. 15 is an explanatory diagram of batch download processing according to the embodiment.
  • the components shown in FIGS. 1 to 4 are indicated by the same symbols.
  • the information processing apparatus 1 includes an arithmetic processing unit (CPU: Central Processing Unit) 2, a host memory 4 used by the host (CPU) 2, and a bridge circuit (Chipset) having a multicast (Multicast) function. 3) and a plurality of input / output devices 5-0, 5-1 and 5-2 connected to the bridge circuit 3.
  • CPU Central Processing Unit
  • Host main memory
  • Bridge circuit Chipset
  • device drivers 20 that drive the input / output devices 5-0 to 5-2 are installed (Install).
  • the CPU 2 executes the device driver 20 and drives the input / output devices 5-0 to 5-2.
  • the bridge circuit 3 connects the input / output devices 5-0 to 5-2 via signal lines 6-0 to 6-2 in a point-to-point manner.
  • the signal lines 6-0 to 6-2 are constituted by serial signal lines of PCI (Peripheral Component Interface) express standard, for example.
  • the bridge circuit 3 has a multicast function 3A.
  • the multicast function for example, it is preferable to apply the multicast function defined in PCI express specification rev (revised version) 2.0, 2.1.
  • the input / output devices 5-0 to 5-2 are configured by interface devices and network devices, and include a microcontroller (Micro Controller) 56.
  • the interface device includes, for example, a SCSI (Small Computer System Interface) card device, a SAS (Serial Attached SCSI) card device, an FC (Fibre Channel) device, and the like. This interface device is connected to a storage device or the like provided outside the information processing apparatus 1.
  • the microcontroller 56 executes microcode (firmware program) and executes an interface function with a desired protocol.
  • microcode firmware program
  • the device driver 20 of the information processing apparatus 1 loads the microcode into the microcontroller 56 of the input / output devices 5-0 to 5-2.
  • the input / output devices 5-0 to 5-2 include a load start address register and a load start register described later. These registers are used to utilize the multicast function for microcode loading.
  • the device driver 20 places (writes) the microcode in a specific location 4-10 on the host memory 4.
  • the device driver 20 writes the load start address to the load start address register of each of the input / output devices 5-0 to 5-2 by multicast.
  • the device driver 20 instructs the input / output device to start microloading. That is, the device driver 20 writes the load start to the load start registers of the input / output devices 5-0 to 5-2 by multicast.
  • the input / output devices 5-0 to 5-2 receiving the start instruction load the microcode from the start address on the host memory 4.
  • the input / output devices can load the microcode on the memory in a short time.
  • start address notification and loading are performed on each input / output device to which the device driver 20 is connected. It is necessary to give instructions. For this reason, the time required for loading the microcode increases.
  • the time required for microcode loading can be reduced even if the number of input / output devices that require microcode loading increases. .
  • FIG. 16 is a configuration diagram of the switch circuit and each input / output device in the configurations of FIGS. 3 and 15.
  • the same symbols in FIG. 16 as those described in FIGS. 3, 4, and 7 are the same. It is shown by.
  • the multicast function is the same as that described with reference to FIGS.
  • the switch circuit 32 includes a first port 39-0 connected to the PCIe bus 6-3 and second, third, and fourth ports 39-1 connected to the PCIe buses 6-0 to 6-2, respectively. 39-3 and an internal bus 38 for connecting the ports 39-0 to 39-3.
  • each of the ports 39-0 to 39-3 includes packet transmission / reception buffers 34-0, 35-0, 36-0, 37-0 and multicast registers 34-4, 35-4, 36.
  • Packet analysis units 34-2, 35-2, 36-2, and 37-2 having ⁇ 4 and 37-4.
  • the multicast function of the packet analysis unit is the same as that described with reference to FIGS.
  • Each input / output device 5-0 to 5-2 has a load start address register 102 and a load start register 104 for loading microcode.
  • FIG. 17 is a flowchart of microcode loading processing according to the present embodiment.
  • FIG. 18 is an explanatory diagram of register addresses by the processing of FIG.
  • FIG. 19 is an explanatory diagram of an example of setting values of the multicast registers 34-4 to 37-4 of each port.
  • the device driver 20 sets the setting values described in FIG. 19 to the multicast registers 34-4, 35-4, 36-4 of the ports 39-0 to 39-3 of the switch circuit 32. , 37-4. That is, the device driver 20 sets the configuration write (Configuration Write) as the packet type, the address of each multicast register as the address, and the setting value as the payload in the PCIe packet format described with reference to FIG. Transmit to the switch circuit 32.
  • Configuration Write Configuration Write
  • the port 39-0 of the switch circuit 32 receives each packet in which the multicast register setting value of each port is set.
  • the packet analysis unit 34-2 of the port 39-0 determines that the packet type is unicast.
  • the packet analysis unit 34-2 writes the setting value of the received packet into the multicast register 34-4.
  • the packet analysis unit 34-2 specifies the received packet when the address of the received packet specifies the address of the multicast registers 35-4 to 37-4 of the other ports 39-1 to 39-3.
  • the data is transferred to the ports 39-1 to 39-3 via the internal bus 38.
  • the packet analysis units 35-2 to 37-2 write the setting values of the received packet in the multicast registers 35-4 to 37-4.
  • the multicast function register (Multicast Capability Register) 342, the multicast reception register (MC_Receive Register) 344, and the multicast block register (MC_Block_All) are enabled in the multicast register of FIG.
  • the setting values of Register 345 and multicast block non-conversion register (MC_Block_Unregistered Register) 346 are omitted.
  • the load start address register 102 and the load start register 104 in the input / output devices 5-0 to 5-2 are set in the multicast.
  • a different address can be set for the address.
  • the register address of the load start address register 102 in each of the input / output devices 5-0 to 5-2 is the load packet address (“0xA0000010”) set in FIG.
  • MC_Overlay_Bar set values “0x80001000”, “0x80002000”, “0x80003000” (hexadecimal display) are added (overlay) values “0x800001010”, “0x80002010”, “0x80003010” (hexadecimal display).
  • the register address of the load start register 104 in each of the input / output devices 5-0 to 5-2 is the set value “0x80001000” of MC_Overlay_Bar among the set values of FIG. , “0x80002000”, “0x80003000” (hexadecimal display) + “0x0000014”, “0x80001014”, “0x80002014”, “0x80003014” (hexadecimal display).
  • the device driver 20 applies the setting values described in FIGS. 5 and 19 to the multicast registers 34-4, 35-4, 36-4, 37- of the ports 39-0 to 39-3 of the switch circuit 32. Set to 4.
  • data can be written to the registers 102 and 104 using the multicast function.
  • the packet analysis unit 34-2 of the port 39-0 determines that the packet received from the packet address “0xA0000010” is a multicast packet, and sends it to each of the ports 39-1 to 39-3 via the internal bus 38. Forward.
  • the packet analyzing units 35-2 to 37-2 of the ports 39-1 to 39-3 determine that the packet received from the packet address “0xA0000010” is a multicast packet.
  • the packet analysis units 35-2 to 37-2 change the received packet addresses from the MC_Overlay_Bar setting values “0x80001000”, “0x80002000”, “0x80003000” to the register address values “0x800001010”, “0x80002010” of the load start address register 102. ",” 0x80003010 "(hexadecimal display).
  • the packet analysis units 35-2 to 37-2 transfer the packets having the converted addresses to the input / output devices 5-0 to 5-2 via the PCIe buses 6-0 to 6-2.
  • the address decoder 110 decodes the address of the packet, and sets the set value (start address) of the received packet to the load start address register 102. Write to.
  • the device driver 20 instructs the start of loading by multicast.
  • the packet analysis unit 34-2 of the port 39-0 determines that the packet received from the packet address “0xA00000014” is a multicast packet, and sends it to each of the ports 39-1 to 39-3 via the internal bus 38. Forward.
  • the packet analysis units 35-2 to 37-2 of the ports 39-1 to 39-3 determine that the packet received from the packet address “0xA00000014” is a multicast packet.
  • the packet analysis units 35-2 to 37-2 use the MC_Overlay_Bar setting values “0x80001000”, “0x80002000”, “0x80003000”, and register address values “0x800001014”, “0x80000010”, “0x80000010”. 0x80002014 "and” 0x80003014 "(hexadecimal display).
  • the packet analysis units 35-2 to 37-2 transfer the packets having the converted addresses to the input / output devices 5-0 to 5-2 via the PCIe buses 6-0 to 6-2.
  • the address decoder 110 decodes the address of the packet and writes the set value (load start instruction) of the received packet to the load start register 104.
  • the microcontroller 56 of each input / output device 5-0 to 5-2 monitors the load start register 104 and determines whether or not a load start instruction has been written in the load start register 104.
  • the microcontroller 50 accesses the host memory 4 by the start address of the microcode written in the load start address register 102, and the micro of the host memory 4
  • the code 4-10 is read and written to the memory of the microcontroller 56.
  • the microcontroller 56 creates a PCI express packet in which the packet type “MEM Read” and the start address of the load start address register 102 are set in the PCI header, and transmits them to the PCIe buses 6-0, 6-1, and 6-2. .
  • the switch circuit 32 transfers the received PCIe packets from the input / output devices 5-0 to 5-2 to the CPU 2 via the IO hub 30.
  • the CPU 2 analyzes the transferred PCIe packet and transfers the microcode in the area 4-10 designated by the address of the host memory 4 to the input / output devices 5-0 to 5-2 via the IO hub 30 and the switch circuit 32. To do.
  • steps S30 and S32 When performing the second and subsequent microcode loading, the processing of steps S30 and S32 becomes unnecessary.
  • the time required for loading the microcode can be shortened even if the number of input / output devices that need to be loaded with the microcode is increased.
  • the multicast function of the PCI Express standard has been described as an example, but the multicast function of another standard that determines whether a received packet is a multicast packet or a unicast packet by applying the multicast function to the switch circuit is applied. You can also
  • connection standard with the input / output device is not limited to the PCI Express standard, and other connection standards can be applied.
  • Information processing device CPU (arithmetic processing device) 3 Bridge circuit 3A Multicast function 4 Host memory 4A Work area 4-0 to 4-2 Copy area 5-0 to 5-2 I / O device 6-0 to 6-3 PCIe bus 7 Memory buffer 20 Device driver 30 IO hub 32 Switch circuit 34-0 to 37-0 Transmission / reception buffer 34-2 to 37-2 Packet analysis unit 34-4 to 37-4 Multicast register 38 Internal bus 39-0 to 39-3 Port 50 DMA circuit 52 Device basic function unit 56 Microcontroller 80 Copy start register 82 Copy destination address register 84 Sequence number register 86 Packet generation sequencer 100 Register group 102 Load start address register 104 Load start register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

【課題】演算処理装置が複数の入出力デバイスの状態情報を収集する情報処理装置において、多数の入出力デバイスの状態情報を同時に収集する。 【解決手段】演算処理装置(2)と複数の入出力デバイス(5-0~5-2)とをマルチキャスト機能を設定できるブリッジ回路(30)により接続し、入出力デバイス(5-0~5-2)にDMA回路(50)を設け、マルチキャスト機能を用いて入出力デバイスにDMA転送の開始指示を行う。各入出力デバイスのレジスタの読み出しに要する時間を短縮でき、ほぼ同時にDMA転送開始指示を行うため、入出力デバイスの同時刻の状態をコピーできる。

Description

情報処理装置及び情報処理装置のデバイス情報収集処理方法
 本発明は、情報処理装置及び情報処理装置のデバイス情報収集処理方法に関する。
 情報処理装置は、演算処理装置(CPU:Central Processing Unit、以下CPUという)とメモリ(Memory)と複数の入出力デバイス(I/O Device)とを有する。入出力デバイスとしては、外部のストレージデバイス等とのインタフェースデバイスやネットワークとのネットワークデバイスとが用いられる。
 デバイスドライバは、CPUがこれらの入出力デバイスをドライブするために、CPUに搭載(インストール:Install)される。CPUに搭載されたデバイスドライバが、各入出力デバイスの状態や動作履歴等を収集する場合がある。デバイスドライバが、各入出力デバイスの状態や動作履歴等を収集し、各入出力デバイスの診断や異常検出を行う。
 入出力デバイスの状態や動作履歴は、入出力デバイスのレジスタに格納されている。このため、複数の入出力デバイスが情報処理装置に搭載されている場合には、デバイスドライバは、入出力デバイス毎に別々に入出力デバイスのレジスタの読み出し(リード)処理を実行していた。
特開平11-134287号公報 特開昭54-075955号公報
 近年の情報処理装置に対する性能向上の要求に伴い、情報処理装置に搭載される入出力デバイスの数が増加している。入出力デバイス毎にレジスタをリードし、複数の入出力デバイスの情報を収集するため、入出力デバイスの数が増加するほどリード回数が増加し、処理時間も長くなる。
 又、複数の入出力デバイスの状態を順次読みだすため、異なる時刻での複数の入出力デバイスの状態を収集することになる。このため、高速に動作する入出力デバイスの同時刻の状態を収集するのは、困難である。
 本発明の目的は、入出力デバイス数の増大に伴う各入出力デバイスのレジスタの読み出し処理時間の増加を防止する情報処理装置及び情報処理装置のデバイス情報収集処理方法を提供することにある。
 この目的の達成のため、開示の情報処理装置は、演算処理装置と、前記演算処理装置が使用する記憶装置と、各々状態情報を保持する記憶部とDMA回路とを有する複数の入出力デバイスと、前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有し、前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信し、前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストし、前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記DMA回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にDMA転送する。
 又、この目的の達成のため、開示の情報処理装置のデバイス情報収集処理方法は、演算処理装置と、前記演算処理装置が使用する記憶装置と、各々状態情報を保持する記憶部とDMA回路とを有する複数の入出力デバイスと、前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有する情報処理装置のデバイス情報収集処理方法であって、前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信する工程と、前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程と、前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記DMA回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にDMA転送する工程とを有する。
 マルチキャスト機能を設定できるブリッジ回路とDMA回路とを設け、マルチキャスト機能を用いてDMA転送の開始指示を行うため、各入出力デバイスのレジスタの読み出しに要する時間を短縮できる。又、ほぼ同時にDMA転送開始指示を行うため、入出力デバイスの同時刻の状態をコピーできる。特に、レジスタの読み出しを実施する入出力デバイスが多い場合や多数回のデータ収集を行う場合に有効である。
実施の形態の情報処理装置の構成図である。 図1の構成によるデバイス情報収集処理の説明図である。 図1の情報処理装置の詳細構成図である。 図3のスイッチ回路の構成図である。 図3のマルチキャストレジスタの説明図である。 図5のマルチキャストレジスタの設定例の説明図である。 図6のマルチキャストレジスタの設定例におけるマルチキャスト動作の説明図である。 図3の入出力デバイスの構成図である。 図3乃至図8におけるPCI Expressパケットの説明図である。 実施の形態のデバイスドライバのデバイス情報収集処理のフロー図である。 図10のマルチキャストレジスタのアドレス設定処理の説明図である。 図10、図11のマルチキャストレジスタの設定アドレスと各入出力デバイスのレジスタアドレスの関係図である。 図10のコピー先アドレスレジスタの設定値の説明図である。 図10のホストメモリに収集されたレジスタデータの格納状態の説明図である。 他の実施の形態のマイクロコードのロード処理の説明図である。 図15のスイッチと入出力デバイスのブロック図である。 図15のマイクロコードのロード処理のフロー図である。 図17の入出力デバイスのアドレス値の設定例の説明図である。 図17のマルチキャストレジスタの設定例の説明図である。
 以下、実施の形態の例を、情報処理装置のデバイス情報収集方法、情報処理装置、マルチキャスト機能、入出力デバイス、デバイス情報収集処理、一括ダウンロード処理の順で説明するが、開示の情報処理装置は、この実施の形態に限られない。
 (情報処理装置のデバイス情報収集方法)
 図1は、実施の形態の情報処理装置の説明図である。図2は、図1の情報処理装置のデバイス情報収集方法の説明図である。図1において、情報処理装置1は、演算処理装置(CPU:Central Processing Unit)2と、ホスト(CPU)2が使用するホストメモリ4と、マルチキャスト(Multicast)機能をもつブリッジ回路(Chipsetと記す)3と、ブリッジ回路3に接続された複数の入出力デバイス5-0,5-1,5-2とを有する。
 情報処理装置1には、各入出力デバイス5-0~5-2をドライブするデバイスドライバ20がインストール(Install)されている。CPU2が、デバイスドライバ20を実行し、各入出力デバイス5-0~5-2をドライブする。ブリッジ回路3は、各入出力デバイス5-0~5-2を信号線6により接続する。信号線6は、例えば、PCI(Peripheral Component Interface) express規格のパラレル信号線で構成される。ブリッジ回路3は、マルチキャスト(Multicast)機能3Aを有する。マルチキャスト機能として、例えば、PCI express仕様rev(改訂版)2.0,2.1に規定されたマルチキャスト機能を適用することが好適である。
 入出力デバイス5-0~5-2は、CPU2が、外部装置と入出力するためのデバイスであり、例えば、インタフェースデバイスやネットワークデバイスとで構成される。インタフェースデバイスは、例えば、SCSI(Small Computer System Interface)カードデバイス、SAS(Serial Attached SCSI)カードデバイス、FC(Fibre Channel)デバイス等で構成される。このインタフェースデバイスは、情報処理装置1の外部に設けられた記憶装置等に接続される。
 又、ネットワークデバイスは、例えば、NIC(Network Interface Card)で構成され、情報処理装置1をネットワーク(例えば、LAN(Local Area Network)やネットワークスイッチ)に接続する。
 デバイスドライバ20のデータ収集処理において、ホストメモリ4のワーク領域4Aに各入出力デバイス5-0~5-2のレジスタコピー領域4-0~4-2を確保する。又、入出力デバイス5-0~5-2の各々は、レジスタコピー用DMA(Direct Memory Access)回路50を有する。レジスタコピー用DMA回路50は、特定レジスタへのライト(Write)をトリガとして、入出力デバイス5-0~5-2のレジスタ情報を指定されたホストメモリ領域にコピーする機能を有する。図2を参照して、デバイスドライバ20のデバイス情報収集方法を説明する。尚、図2の(1)~(5)が以下で説明する手順に対応する。
 (1)デバイスドライバ20がホストメモリ4のワーク領域4Aに各入出力デバイス5-0~5-2のレジスタコピー領域4-0~4-2を確保する。
 (2)デバイスドライバ20は入出力デバイス5-0~5-2に各入出力デバイス5-0~5-2のレジスタコピー領域4-0~4-2の開始アドレスをデバイス個別に設定する。即ち、レジスタコピー用DMA回路50に設けられ、コピー先を指定するためのレジスタに、ホストメモリ4のワーク領域4Aのレジスタコピー領域4-0~4-2の開始アドレスをライトする。
 (3)デバイスドライバ20は、入出力デバイス5-0~5-2のレジスタ情報を一斉採取するため、ブリッジ回路3のマルチキャスト機能3Aを用いてマルチキャストによりレジスタライト(Write)を行い、各入出力デバイス5-0~5-2にレジスタコピーの開始を指示する。即ち、デバイスドライバ20はレジスタコピー用DMA回路50に設けられたレジスタコピー制御用レジスタのコピー開始指示ビット(bit)をマルチキャストにより、ライトする。
 (4)入出力デバイス5-0~5-2のレジスタコピー用DMA回路50は、ホストメモリ4の指定アドレスにレジスタ情報をDMA転送(DMA Write)して、コピーする。
 (5) デバイスドライバ20はホストメモリ4のワーク領域4Aのレジスタ情報を一括で参照する。
 以降、手順(3)~(5)の繰り返しにより、デバイスドライバ20がデータ収集する時に、レジスタ情報を得ることができる。
 このように、マルチキャスト機能を用いてDMA転送の開始指示を行うため、各入出力デバイスのレジスタの読み出し(Read)に要する時間を短縮できる。特に、レジスタの読み出し(Read)を実施する入出力デバイスが多い場合に有効である。
 (情報処理装置)
 図3は、実施の形態の情報処理装置のブロック図である。図3において、図1で示したものと同一のものは同一の記号で示してある。図3において、情報処理装置1は、CPU2と、ホスト(CPU)2が使用するホストメモリ4と、メモリバッファ7とを有する。CPU2は、メモリバッファ2を介しホストメモリ4に接続する。
 又、情報処理装置1は、更に、ブリッジ回路3を構成するIO(Input Output)ハブ30とマルチキャスト(Multicast)機能をもつスイッチ回路32と、スイッチ回路32に接続された複数の入出力デバイス5-0,5-1,5-2とを有する。
 CPU2はIOハブ30に接続される。IOハブ30はPCI express(PCIeと称す)バス6-3でスイッチ回路32の第4のポート39-0に接続する。スイッチ回路32は第1~第3のポート39-1~39-3を有する。第1~第3のポート39-1-39-3の各々はPCIeバス6-0~6-2で各入出力デバイス5-0~5-2に接続する。スイッチ回路32の各ポート39-0~39-3は後述するPCIeマルチキャスト機能を有する。このスイッチ回路32は1対3のスイッチを示しているが、これに限らず、1対N(N>1であり、Nは整数)のスイッチも適用できる。
 CPU2が、デバイスドライバ20を実行し、各入出力デバイス5-0~5-2をドライブし、且つデバイス情報の収集を行う。入出力デバイス5-0~5-2は前述のようにインタフェースデバイスやネットワークデバイスとで構成される。
 デバイスドライバ20のデータ収集処理において、ホストメモリ4のワーク領域4Aに各入出力デバイス5-0~5-2のレジスタコピー領域4-0~4-2を確保する。又、入出力デバイス5-0~5-2の各々はレジスタコピー用DMA(Direct Memory Access)回路50を有する。レジスタコピー用DMA回路50は、特定レジスタへのライト(Write)をトリガとして、入出力デバイス5-0~5-2のレジスタ情報を指定されたホストメモリ領域にコピーする機能を有する。
 図3の実施の形態では、ホストメモリ4はメモリバッファ7を介しCPU2に接続する。一方、図1の構成では、ホストメモリ4はブリッジ回路3を介しCPU2に接続する。いずれの構成も適用できるが、図3の構成では、メモリバッファによりメモリ搭載数の拡張が可能である。
 (マルチキャスト機能)
 次に、マルチキャスト機能を有するスイッチ回路32を説明する。図4は、図3のスイッチ回路32の構成図である。図5は、図4のマルチキャストレジスタの説明図である。図6は、図4及び図5のマルチキャストレジスタの設定例の説明図である。図7は、図6の設定によるマルチキャスト動作の説明図である。この実施の形態では、マルチキャスト機能をPCI express仕様のマルチキャスト機能により説明する。
 図4に示すように、各ポート39-0~39-3は、パケット送受信バッファ34-0,35-0,36-0,37-0と、マルチキャストレジスタ34-4,35-4,36-4,37-4を有するパケット解析部34-2,35-2,36-2,37-2とを有する。各ポート39-0~39-3は内部バス38により接続される。
 送受信バッファ34-0がPCIeバス6-3からパケット(PCIeパケット)を受信したときに、パケット解析部34-2は、受信したパケットが特定アドレス範囲へのライトであるか否かを判定する。
 そして、パケット解析部34-2は受信したパケットが特定アドレス範囲へのライトであると判定した場合にマルチキャストと判断する。パケット解析部34-2は受信したパケットをマルチキャストと判断した場合、他のすべてのポート39-1~39-3に対して受信したパケットの転送をおこなう。
 一方、パケット解析部34-2は受信したパケットが特定アドレス範囲へのライトでないと判定した場合にユニキャストと判断する。パケット解析部34-2は受信したパケットをユニキャストと判断した場合、パケットで指定されたポート39-1~39-3に対して受信したパケットの転送をおこなう。
 このマルチキャストかユニキャストかの判定のため、パケット解析部34-2~37-2は、マルチキャストレジスタ34-4~37-4を有する。例えば、PCI express仕様書rev 2.0及び2.1では、図5に示すマルチキャストレジスタの仕様が定められている。
 図5において、マルチキャストレジスタ34-4~37-4は、PCI Express 拡張機能ヘッダ(Extended Capability Header)340、マルチキャスト制御レジスタ(Multicast Control Register)341,マルチキャスト機能レジスタ(Multicast Capability Register)342,マルチキャストベースアドレスレジスタ(MC_Base_Address Register)343、マルチキャスト受信レジスタ(MC_Receive Register)344、マルチキャストブロックレジスタ(MC_Block_All Register)345、マルチキャストブロック不変換レジスタ(MC_Block_Untranslated Register)346、マルチキャストオーバーレイバー(MC_Overlay_Bar)347とを備える。
 PCI Express Extended Capability Header340はMulticast用の一連のレジスタ群の開始を意味する。Multicast Control Register341には、Multicastを制御するための設定ビットであるMulticast機能を有効にするMC_Enabaleと有効なMCG(Multicast Group)数を示すMC_Num_Groupが設定される。尚、MCG数=(MC_Num_Group+1)である。
 Multicast Capability Register342はこのデバイス(スイッチ32)で可能なMulticastの機能についての情報が設定される。例えば、サポート可能なMCG数などを表示する。MC_Base_Address Register343にはMulticast Address範囲を決定する値が設定される。即ち、MC_Base_Address Register343にはマルチキャストアドレス開始位置を示すMC_Base_AddressとMCG1つ分のマルチキャストアドレス領域サイズを示すMC_Index_Positionとを設定される。このMC_Index_Positionによるマルチキャスト領域サイズは、2MC_Index_Positionである。
 MC_Receive Register344にはMCG毎にマルチキャストパケットを受け取るかどうかを設定される。MC_Block_All Register345にはMCG毎にマルチキャストパケットを転送するかどうかを設定される。MC_Block_Untranslated Register346にはMCG毎にアドレス変換を実施していないマルチキャストパケットを転送するかどうかを設定する。
 MC_Overlay_Bar347には、オーバーレイが有効な場合、マルチキャストパケットのアドレスを、付け替えるアドレスとオーバーレイを実施するオーバーレイサイズMC_Overlay_Sizeとが設定される。2MC_Overlay_Size Byte単位でオーバーレイを実施する。MC_Overlay_Sizeの値が6未満の場合にはオーバーレイは無効である。
 これらのレジスタ341~347の設定によりマルチキャストアドレス範囲Xは以下のように定義される。
 MC_Base_Address ≦X< MC_Base_Address+2MC_Index_Position*(MC_Num_Group+1)
 このような構成のマルチキャストレジスタがスイッチ回路32の各ポート39-0~39-3に設けられている。
 例えば、パケット解析部34-2は、マルチキャストレジスタ34-4のMulticast Control Register341によりMC機能が有効であると判定した場合には、MC_Base_Address Register343のMC_Base_AddressとMC_Index_Positionとから、受信したパケット(図9で後述する)の指定アドレスXが上記式で定義される特定アドレス範囲へのライトであるか否かを判定する。
 そして、パケット解析部34-2は、受信したパケットが特定アドレス範囲へのライトであると判定した場合にマルチキャストと判断する。パケット解析部34-2は、受信したパケットをマルチキャストと判断した場合、他のすべてのポート39-1~39-3に対して受信したパケットの転送をおこなう。
 以下、図6、図7を参照して、マルチキャスト機能を具体的に説明する。図6は各ポートのマルチキャストレジスタ34-4~37-4の設定値の一例の説明図である。図7は図6によるマルチキャスト動作の説明図である。
 図6では、マルチキャスト機能が有効としているため、図5のマルチキャストレジスタの内、マルチキャスト機能レジスタ(Multicast Capability Register)342,マルチキャスト受信レジスタ(MC_Receive Register)344、マルチキャストブロックレジスタ(MC_Block_All Register)345、マルチキャストブロック不変換レジスタ(MC_Block_Untranslated Register)346の設定値は省略している。
 即ち、マルチキャストレジスタの内、Multicast Control Register341のMC_Enable,MC_Num_Group、マルチキャストベースアドレスレジスタ(MC_Base_Address Register)343のMC_Base_Address、MC_Index_Position、マルチキャストオーバーレイバー(MC_Overlay_Bar)347のMC_Overlay_Bar、MC_Overlay_Sizeのみの設定値を示す。
 各ポートのマルチキャストレジスタ34-4~37-4の設定値が図6の値の場合に、スイッチ回路32は、図7に示すように、以下の手順でマルチキャストを実施する。
 (1)CPU2からアドレス=「0xA0000000」のパケットXをポート39-0の送受信バッファ34-0が受信する。
 (2)ポート39-0のパケット解析部34-2は、ポート39-0のマルチキャストレジスタ34-4の設定値(MC_Base_Address=「0xA0000000」、MC_Index_Position=12,MC_Num_Group=0)からマルチキャストアドレス範囲である「0xA0000000 」≦X「0xA0001000」を決定する。パケット解析部34-2は、パケットXのアドレスがマルチキャストアドレス範囲内なので、パケットXはマルチキャストパケットと判断する。
 (3)パケット解析部34-2は内部バス38を介し受信したマルチキャストパケットXを各ポート39-1~39-3に転送する。
 (4)各ポート39-1~39-3においても、マルチキャストレジスタ35-4,36-4,37-4を参照して同じマルチキャストアドレス範囲を決定するため、各ポート39-1~39-3のパケット解析部35-2~35-4は、内部バス38から受信したパケットXはマルチキャストパケットと判断する。
 (5)各ポート39-1~39-3のマルチキャストレジスタ35-4~37-4のオーバレイサイズMC_Overlay_Sizeの設定値は、「12」である。各ポート39-1~39-3のパケット解析部35-2~37-2は、MC_Overlay_Size>6なので、オーバーレイ(Overlay)設定が有効であると判断する。したがって、パケット解析部35-2~37-2は、パケットXのアドレスを自己のマルチキャストレジスタ35-4~37-4のMC_Overlay_BARに設定されているアドレス値に変換し、PCIeバス6-0~6-0を介し、入出力デバイス5-0~5-2に転送する。
 又、たとえば、入出力デバイス5-0にユニキャストを実施する場合には、パケットのアドレスを「0x8001000」と指定する。パケットアドレス「0x8001000」は、マルチキャストアドレス範囲(「0xA0000000」≦X<「0xA0001000」)から外れるため、ユニキャストと判断される。
 同様に、マルチキャストパケットを入出力デバイス5-0と5-2にのみ送信する場合には、マルチキャストレジスタに新たなMulticast Groupを定義して、マルチキャストレジスタ34-4、36-4において、該当Multicast GroupをBlockする設定(MC_Receive_Register344、MC_Block_AllRegister345の設定)をしておけばよい。
 (入出力デバイス)
 図8は、図3の構成の入出力デバイスのブロック図である。図9は、図8のパケットフォーマットの説明図である。図8に示すように、入出力デバイス5-0,5-1,5-2は、デバイス基本機能部52と前述のDMA回路50と第1のマルチプレクサ54とを有する。デバイス基本機能部52は、例えば、インタフェースデバイスでは、インタフェースを制御するインタフェースコントローラであり、ネットワークデバイスでは、ネットワーク制御用コントローラである。
 第1のマルチプレクサ54は、デバイス基本機能部52からの出力とDMA回路50の出力とのいずれかを選択し、PCIeバス6-0~6-2に出力する。デバイス基本機能部52は、マイクロコントローラ(図示せず)とレジスタ群100と、アドレスデコーダ110とを有する。
 このレジスタ群100は、データ転送状態や制御情報、デバイスやデータ転送に関するエラー情報、デバイスのビジー率やスループットなどの性能情報、データの送受信の履歴情報を格納する。デバイスドライバ20はPCIeバス6-0~6-2を介しレジスタ群100の内容を読みだすことができる。
 アドレスデコーダ110は、PCIeバス6-0~6-2から受けたパケットのアドレスをデコードし、受信したパケットを指定したアドレスへ転送する。
 この実施の形態では、入出力デバイス5-0~5-2は、このデバイス基本機能部52の構成に加えて、レジスタコピー用のDMA回路(以下、DMAエンジンという)50を搭載している。DMAエンジン50は、コピー開始アドレスレジスタ80とコピー先アドレスレジスタ82とシーケンス番号レジスタ84と選択回路90とマルチプレクサ88とPCIeパケット生成シーケンサ(回路)86とを有する。
 コピー開始レジスタ80はPCIeバス6-0~6-2から設定されたコピー開始指示を保持する。コピー先アドレスレジスタ82はPCIeバス6-0~6-2から設定されたコピー先のアドレスを保持する。シーケンス番号レジスタ84は転送パケットのシーケンス番号を保持する。アドレスデコーダ110は指定されたアドレスに対応するコピー開始アドレスレジスタ80とコピー先アドレスレジスタ82とシーケンス番号レジスタ84とにパケットの設定値を格納する。
 選択回路90はレジスタ群100の指定されたレジスタを選択する。第2のマルチプレクサ88は、コピー先アドレスレジスタ82のアドレスと選択回路90からのレジスタダンプデータとシーケンス番号レジスタ84からの転送パケットのシーケンス番号とが入力され、パケットをマルチプレクサ54に出力する。
 PCIeパケット生成シーケンサ86は、コピー開始レジスタ80への1ライト(後述する)によるコピー開始指示を受けて、選択回路90を介しレジスタ群100内のデータをアドレスOffset「0x0000」から「0xFFFC」まで順番に読み出す。PCIeパケット生成シーケンサ86は、第2のマルチプレクサ88を操作し、読みだしたデータの最後の4byteにシーケンス番号レジスタ84の4byteのシーケンス番号データを付加して、4KbyteのPCIeペイロード(Payload)を作成し、このPCIeペイロードにコピー先アドレスレジスタ82のアドレスを付加し、PCI expressパケットを作成する。
 図9に示すように、PCI expressパケットのフォーマットは16byteのPCIeパケットヘッダ(Packet Header) と4KbyteのPCIeパケットペイロードとを有する。この実施の形態では、「Mem Write」のパケットタイプ、ペイロード長=4KB、コピー先アドレス(コピー開始アドレス)とが、PCIeパケットヘッダにセットされる。又、レジスタ群100から読みだされたレジスタデータ(レジスタダンプデータと記す)とシーケンス番号とはPCIeパケットペイロードにセットされる。
 第2のマルチプレクサ88から出力されたPCIeパケットは第1のマルチプレクサ54を介しPCIe6-0~6-2に出力される。 
 (デバイス情報収集処理)
 次に、デバイスドライバによるデバイス情報収集処理を説明する。図10は、本実施の形態のデバイスドライバのデバイス情報収集処理フロー図である。図11は、図10のマルチキャストレジスタのアドレス設定処理の説明図である。図12は、マルチキャストレジスタの設定アドレスと各入出力デバイスのレジスタアドレスの関係図である。図13は、図10のコピー先アドレスレジスタの設定値の説明図である。図14は、図10のホストメモリに収集されたレジスタデータの格納状態の説明図である。
 図11乃至図14を参照して、図10のデバイスドライバのデバイス情報収集処理を説明する。
 (S10)デバイスドライバ20は、マルチキャストの事前準備として、図6で説明した設定値を、スイッチ回路32の各ポート39-0~39-3のマルチキャストレジスタ34-4,35-4、36-4,37-4に設定する。即ち、デバイスドライバ20は、図9で説明したPCIeパケットフォーマットにおいて、パケットタイプにコンフィグライト(Configuration Write)を、アドレスに各マルチキャストレジスタのアドレスを、ペイロードに設定値を設定し、IOハブ30、PCIeバス6-3を介しスイッチ回路32に送信する。
 スイッチ回路32のポート39-0が各ポートのマルチキャストレジスタ設定値をセットした各パケットを受信する。ポート39-0のパケット解析部34-2は、パケットタイプからユニキャストと判断する。そして、パケット解析部34-2は、受信したパケットのアドレスが自己のマルチキャストレジスタ34-4のアドレスを指定している場合、受信したパケットの設定値をマルチキャストレジスタ34-4に書き込む。
 又、パケット解析部34-2は、受信したパケットのアドレスが他のポート39-1~39-3のマルチキャストレジスタ35-4~37-4のアドレスを指定している場合、受信したパケットを指定されたポート39-1~39-3に内部バス38を介し転送する。パケットを受信したポート39-1~39-3では、パケット解析部35-2~37-2は受信したパケットの設定値をマルチキャストレジスタ35-4~37-4に書き込む。
 図11に示すように、各マルチキャストレジスタ35-4~37-4に図6に示した設定値を設定した場合、マルチキャストにおいて、各入出力デバイス5-0~5-2におけるDMAエンジン50のコピー開始レジスタ80、コピー先アドレスレジスタ82、シーケンス番号レジスタ84のレジスタアドレスは、異なるアドレスに設定できる。
 図12に示すように、この実施の形態では、図7のパケットのレジスタアドレス(「0xA0001000」)に対し、各入出力デバイス5-0~5-2におけるDMAエンジン50のコピー開始レジスタ80のレジスタアドレスは、図6の設定値のうちMC_Overlay_Barの設定値「0x80001000」、「0x80002000」、「0x80003000」(16進表示)に設定される。
 そして、各レジスタ80,82,84を16ビット幅とした場合、各入出力デバイス5-0~5-2におけるDMAエンジン50のコピー先アドレスレジスタ82のレジスタアドレスは、図6の設定値のうちMC_Overlay_Barの設定値「0x80001000」、「0x80002000」、「0x80003000」(16進表示)+「0x00000004」である値「0x80001004」、「0x80002004」、「0x80003004」(16進表示)に設定される。
 同様に、各入出力デバイス5-0~5-2におけるDMAエンジン50のシーケンス番号レジスタ84のレジスタアドレスは、図6の設定値のうちMC_Overlay_Barの設定値「0x80001000」、「0x80002000」、「0x80003000」(16進表示)+「0x00000008」である値「0x80001008」、「0x80002008」、「0x80003008」(16進表示)に設定される。
 このようにして、デバイスドライバ20は図5、図6で説明した設定値をスイッチ回路32の各ポート39-0~39-3のマルチキャストレジスタ34-4,35-4、36-4,37-4に設定する。これにより、マルチキャスト機能を用いて、DMA回路50の各レジスタ80,82,84にデータをライトできる。
 (S12)デバイスドライバ20は入出力デバイス5-0~5-2からコピーされるレジスタ情報を格納するための領域4-0~4-2をホストメモリ4の特定位置に確保する。本実施の形態では、1つの入出力デバイスあたり約4Kbyteのレジスタ情報を持つため、4Kbyte*3の領域を必要とする。従って、デバイスドライバ20はホストメモリ4にアドレス「0x20000000」から「0x20002FFF」までの領域を確保する。
 (S14)デバイスドライバ20は各入出力デバイス5-0~5-2のコピー先アドレスレジスタ82に確保したホストメモリの開始アドレスを設定する。この場合、各入出力デバイス5-0~5-2でコピー先アドレス設定値が異なるため、ステップS10で説明したように、デバイスドライバ20は、PCIeパケットフォーマットにおいて、パケットタイプにメモリライト(MEM Write)を、アドレスに各入出力デバイス5-0~5-2のコピー先アドレスレジスタ82のアドレスを、ペイロードに各開始アドレス値を設定し、IOハブ30、PCIeバス6-3を介しスイッチ回路32に送信する。
 スイッチ回路32のポート39-0が各入出力デバイス5-0~5-2のコピー先開始アドレス設定値をセットした各パケットを受信する。ポート39-0のパケット解析部34-2は受信したパケットを指定されたポート39-1~39-3に内部バス38を介し転送する。
 パケットを受信したポート39-1~39-3では、パケット解析部35-2~37-2は受信したパケットをPCIeバス6-0~6-2を介し入出力デバイス5-0~5-2に転送する。入出力デバイス5-0~5-2では、アドレスデコーダ110がパケットのアドレスをデコードし、受信パケットの設定値(コピー先開始アドレス)をコピー先アドレスレジスタ82に書き込む。
 図13は、各入出力デバイス5-0~5-2のコピー先アドレスレジスタ82のコピー先アドレスの一例を示す。ステップS12で説明したように、デバイスドライバ20は、入出力デバイス5-0~5-2に対し、ホストメモリ4にアドレス「0x20000000」から「0x20002FFF」までの領域を確保したため、各入出力デバイス5-0~5-2のコピー先アドレスレジスタ82のコピー先アドレスは、「0x20000000」、「0x20001000」、「0x20002000」となる。
 (S16)次に、デバイスドライバ20はシーケンス番号をマルチキャストで設定する。デバイス情報のコピーを行った際に、ホストメモリ4上のデータがそのコピー指示に対応したものであるかを確認するために、デバイスドライバ20がシーケンス番号を使用する。即ち、デバイスドライバ20は、パケットタイプ「MEM Write」、アドレス=「0xA0000008」、データ(ペイロード)=「0x01234567」を設定したPCIeパケットをIOハブ30、PCIeバス6-3を介しスイッチ回路32に送信する。このデータ「0x01234567」はレジスタ情報のコピーが実施されるたびに「1」を加算(インクリメント)される値であり、少なくとも前回のレジスタ情報のコピーと異なる値となるように設定する。
 スイッチ回路32では、ポート39-0のパケット解析部34-2がパケットのアドレス「0xA0000008」から受信したパケットをマルチキャストパケットと判断して、内部バス38を介し各ポート39-1~39-3に受信したパケットを転送する。各ポート39-1~39-3のパケット解析部35-2~37-2は同様にパケットのアドレス「0xA0000008」から受信したパケットをマルチキャストパケットと判断する。
 そして、パケット解析部35-2~37-2は受信したパケットのアドレスをMC_Overlay_Barの設定値「0x80001000」、「0x80002000」、「0x80003000」を用いてDMAエンジン50のシーケンス番号レジスタ84のレジスタアドレス値「0x80001008」、「0x80002008」、「0x80003008」(16進表示)に変換する。パケット解析部35-2~37-2は変換されたアドレスを持つパケットをPCIeバス6-0~6-2を介し入出力デバイス5-0~5-2に転送する。入出力デバイス5-0~5-2では、アドレスデコーダ110がパケットのアドレスをデコードし、受信パケットの設定値(シーケンス番号)をシーケンス番号レジスタ84に書き込む。
 (S18)デバイスドライバ20はレジスタ情報のコピー開始をマルチキャストで指示する。デバイスドライバ20は、アドレス=「0xA0000000」にデータ=「0x00000001」 (本実施の形態ではbit0がコピー開始指示ビットとする)を設定する。即ち、デバイスドライバ20は、パケットタイプ「MEM Write」、アドレス=「0xA0000000」、データ(ペイロード)=「0x00000001」を設定したPCIeパケットをIOハブ30、PCIeバス6-3を介しスイッチ回路32に送信する。
 スイッチ回路32では、ポート39-0のパケット解析部34-2がパケットのアドレス「0xA0000000」から受信したパケットをマルチキャストパケットと判断して、内部バス38を介し各ポート39-1~39-3に転送する。各ポート39-1~39-3のパケット解析部35-2~37-2は同様にパケットのアドレス「0xA0000000」から受信したパケットをマルチキャストパケットと判断する。
 そして、パケット解析部35-2~37-2は受信したパケットのアドレス(図7の「0xA0001000」)をMC_Overlay_Barの設定値「0x80001000」、「0x80002000」、「0x80003000」を用いてDMAエンジン50のコピー開始レジスタ80のレジスタアドレス値「0x80001000」、「0x80002000」、「0x80003000」(16進表示)に変換する。パケット解析部35-2~37-2は変換されたアドレスを持つパケットをPCIeバス6-0~6-2を介し入出力デバイス5-0~5-2に転送する。入出力デバイス5-0~5-2では、アドレスデコーダ110がパケットのアドレスをデコードし、受信パケットの設定値(コピー開始指示)をコピー開始レジスタ80に書き込む。
 PCIeパケット生成シーケンサ86はコピー開始レジスタ80を監視し、コピー開始レジスタ80にコピー開始指示が書き込まれたことを判定する。PCIeパケット生成シーケンサ86はコピー開始レジスタ80にコピー開始指示が書き込まれたと判定すると、指定されたホストメモリへレジスタ情報のコピーを開始する。
 即ち、PCIeパケット生成シーケンサ86は選択回路90を順次選択し、レジスタ群100内のデータをアドレスOffset「0x0000」から「0xFFFC」まで順番に読み出す。PCIeパケット生成シーケンサ86は、第2のマルチプレクサ88を操作し、読みだしたデータの最後の4byteにシーケンス番号レジスタ84の4byteのシーケンス番号データを付加して、4KbyteのPCIeペイロード(Payload)を作成し、このPCIeペイロードにコピー先アドレスレジスタ82のアドレスを付加し、PCI expressパケットを作成する。
 そして、第2のマルチプレクサ88から出力されたPCIeパケット(図9参照)は第1のマルチプレクサ54を介しPCIeバス6-0,6-1,6-2に送信される。スイッチ回路32は受信した各入出力デバイス5-0~5-2からのPCIeパケットをIOハブ30、PCIeバス6-3を介しCPU2へ転送する。CPU2は転送されたPCIeパケットをホストメモリ4のアドレスで指定された領域4-0~4-2に格納する。図14に示すように、各入出力デバイス5-0~5-2からのレジスタダンプデータ(ペイロード)はホストメモリ4のコピー先開始アドレスで先頭指定された領域4-0~4-2に格納される。
 (S20)デバイスドライバ20は、ホストメモリ4のシーケンス番号を読みだす。即ち、デバイスドライバ20はホストメモリ4の各デバイスのシーケンス番号がコピーされている領域(図14では、メモリアドレス「0x20000FFC」、「0x20001FFC」、「0x20002FFC」(16進表示))の内容を読みだす。尚、図14の例では、シーケンス番号はコピー開始アドレス+0xFFCの位置に存在する。
 (S22)デバイスドライバ20は読みだした値とステップS16で設定した値(すなわち本実施の形態では「0x01234567」)とを比較する。テストドライバ20は読みだした値とステップS16で設定した値とが同一であると判断すると、ホストメモリ4にレジスタ情報のコピーが完了しているのでステップS24に進む。
 逆に、デバイスドライバ20は読みだした値がステップS16で設定した値と異なると判断した場合には、一定時間経過後再度ステップS20の処理を実行する。
 (S24)テストドライバ20は読みだした値とステップS16で設定した値とが同一であると判断すると、デバイスドライバ20はホストメモリ4からレジスタ情報のコピーを読みだす。
 このように、初回のレジスタ情報収集の際には、ステップS10~S24の処理が必要となるが、2回目以降のレジスタ情報収集の際は、ステップS10~S14の処理は不要である。このため、マルチキャスト機能を用いてDMA転送の開始指示を行うため、各入出力デバイスのレジスタの読み出し(Read)に要する時間を短縮できる。又、ほぼ同時にDMA転送開始指示を行うため、入出力デバイスの同時刻の状態をコピーできる。特に、レジスタの読み出し(Read)を実施する入出力デバイスが多い場合や多数回のデータ収集を行う場合に有効である。
 (一括ダウンロード処理)
 次に、前述のマルチキャスト機能を適用した一括ダウンロード処理を説明する。図15は、実施の形態の一括ダウンロード処理の説明図である。図15において、図1乃至図4で示したものは、同一の記号で示してある。
 図15に示すように、情報処理装置1は、演算処理装置(CPU:Central Processing Unit)2と、ホスト(CPU)2が使用するホストメモリ4と、マルチキャスト(Multicast)機能をもつブリッジ回路(Chipsetと記す)3と、ブリッジ回路3に接続された複数の入出力デバイス5-0,5-1,5-2とを有する。
 情報処理装置1には、各入出力デバイス5-0~5-2をドライブするデバイスドライバ20がインストール(Install)されている。CPU2が、デバイスドライバ20を実行し、各入出力デバイス5-0~5-2をドライブする。ブリッジ回路3は各入出力デバイス5-0~5-2を信号線6-0~6-2によりポイントツーポイント(Point To Point)で接続する。
 信号線6-0~6-2は、例えば、PCI(Peripheral Component Interface)express規格のシリアル信号線で構成される。ブリッジ回路3はマルチキャスト(Multicast)機能3Aを有する。マルチキャスト機能として、例えば、PCI express仕様rev(改訂版)2.0,2.1に規定されたマルチキャスト機能を適用することが好適である。
 入出力デバイス5-0~5-2は、インタフェースデバイスやネットワークデバイスとで構成され、マイクロコントローラ(Micro Controller)56を備える。インタフェースデバイスは、例えば、SCSI(Small Computer System Interface)カードデバイス、SAS(Serial Attached SCSI)カードデバイス、FC(Fibre Channel)デバイス等で構成される。このインタフェースデバイスは情報処理装置1の外部に設けられた記憶装置等に接続される。
 マイクロコントローラ56は、マイクロコード(ファームウェアプログラム)を実行し、所望のプロトコルでインタフェース機能を実行する。情報処理装置1の起動時やマイクロコードの更新時に、情報処理装置1のデバイスドライバ20はマイクロコードを入出力デバイス5-0~5-2のマイクロコントローラ56にロードする。
 入出力デバイス5-0~5-2は後述するロード開始アドレスレジスタとロード開始レジスタとを備える。これらのレジスタを使用して、マイクロコードのロードにマルチキャスト機能を利用する。
 (1)デバイスドライバ20はホストメモリ4上の特定の場所4-10にマイクロコードを配置する(書き込む)。
 (2)デバイスドライバ20は各入出力デバイス5-0~5-2のロード開始アドレスレジスタにロード開始アドレスをマルチキャストでライトする。
 (3)デバイスドライバ20は入出力デバイスにマイクロローディングの開始を指示する。即ち、デバイスドライバ20は各入出力デバイス5-0~5-2のロード開始レジスタにロード開始をマルチキャストでライトする。
 (4)開始指示を受けた入出力デバイス5-0~5-2はホストメモリ4上の開始アドレスからマイクロコードをロードする。
 多数の入出力デバイスが共通バスに接続されている本実施の構成とは異なる接続形式の場合には、入出力デバイスがメモリ上のマイクロコードを短時間でロードできる。しかしながら、本実施の形態にように、入出力デバイスがPCIeのようにスイッチ回路にポイントツーポイント接続されている場合には、デバイスドライバ20が接続された個々の入出力デバイスに開始アドレス通知とロード指示を行う必要がある。このため、マイクロコードのローディングに要する時間が増加する。
 本実施の形態のように、マルチキャスト機能により開始アドレス、ロード開始を指示することにより、マイクロコードのロードが必要な入出力デバイスの数が増加しても、マイクロコードのローディングに要する時間を短縮できる。
 以下、より詳細に説明する。図16は、図3及び図15の構成におけるスイッチ回路と各入出力デバイスとの構成図である。図16においては、図3、図4及び図7のスイッチ回路32の構成を適用しているため、図16において、図3、図4及び図7で説明したものと同一のものは同一の記号で示してある。又、マルチキャスト機能は図4乃至図7で説明したものと同一のため、説明を省略する。
 図16において、スイッチ回路32はPCIeバス6-3に接続する第1のポート39-0と各々PCIeバス6-0~6-2に接続する第2、第3、第4のポート39-1~39-3と、各ポート39-0~39-3を接続する内部バス38とを有する。
 図4で説明したように、各ポート39-0~39-3は、パケット送受信バッファ34-0,35-0,36-0,37-0と、マルチキャストレジスタ34-4,35-4,36-4,37-4を有するパケット解析部34-2,35-2,36-2,37-2とを有する。そして、パケット解析部のマルチキャスト機能は図4乃至図7で説明したものと同一である。
 各入出力デバイス5-0~5-2はマイクロコードをロードするためのロード開始アドレスレジスタ102とロード開始レジスタ104を有する。
 図17は、本実施の形態のマイクロコードのロード処理フロー図である。図18は、図17の処理によるレジスタのアドレスの説明図である。図19は、各ポートのマルチキャストレジスタ34-4~37-4の設定値の一例の説明図である。
 (S30)デバイスドライバ20は、マルチキャストの事前準備として、図19で説明する設定値を、スイッチ回路32の各ポート39-0~39-3のマルチキャストレジスタ34-4,35-4、36-4,37-4に設定する。即ち、デバイスドライバ20は、図9で説明したPCIeパケットフォーマットにおいて、パケットタイプにコンフィグライト(Configuration Write)を、アドレスに各マルチキャストレジスタのアドレスを、ペイロードに設定値を設定し、IOハブ30を介しスイッチ回路32に送信する。
 スイッチ回路32のポート39-0が各ポートのマルチキャストレジスタ設定値をセットした各パケットを受信する。ポート39-0のパケット解析部34-2は、パケットタイプからユニキャストと判断する。そして、パケット解析部34-2は、受信したパケットのアドレスが自己のマルチキャストレジスタ34-4のアドレスを指定している場合、受信したパケットの設定値をマルチキャストレジスタ34-4に書き込む。
 又、パケット解析部34-2は、受信したパケットのアドレスが他のポート39-1~39-3のマルチキャストレジスタ35-4~37-4のアドレスを指定している場合、受信したパケットを指定されたポート39-1~39-3に内部バス38を介し転送する。パケットを受信したポート39-1~39-3では、パケット解析部35-2~37-2は受信したパケットの設定値をマルチキャストレジスタ35-4~37-4に書き込む。
 図19においては、図6の場合と同様に、図5のマルチキャストレジスタの内、マルチキャストが有効として、マルチキャスト機能レジスタ(Multicast Capability Register)342,マルチキャスト受信レジスタ(MC_Receive Register)344、マルチキャストブロックレジスタ(MC_Block_All Register)345、マルチキャストブロック不変換レジスタ(MC_Block_Untranslated Register)346の設定値は省略している。
 即ち、マルチキャストレジスタの内、Multicast Control Register341のMC_Enable,MC_Num_Group、マルチキャストベースアドレスレジスタ(MC_Base_Address Register)343のMC_Base_Address、MC_Index_Position、マルチキャストオーバーレイバー(MC_Overlay_Bar)347のMC_Overlay_Bar、MC_Overlay_Sizeのみの設定値を示す。
 各マルチキャストレジスタ35-4~37-4に図19に示した設定値を設定した場合、マルチキャストにおいて、各入出力デバイス5-0~5-2におけるロード開始アドレスレジスタ102、ロード開始レジスタ104のレジスタアドレスに異なるアドレスが設定できる。
 図18に示すように、この実施の形態では、各入出力デバイス5-0~5-2におけるロード開始アドレスレジスタ102のレジスタアドレスは、ロードパケットのアドレス(「0xA0000010」)を図19の設定値のうちMC_Overlay_Barの設定値「0x80001000」、「0x80002000」、「0x80003000」(16進表示)により加えた(Overlay)した値「0x80001010」、「0x80002010」、「0x80003010」(16進表示)に設定される。
 そして、各レジスタ102,104を16ビット幅とした場合、各入出力デバイス5-0~5-2におけるロード開始レジスタ104のレジスタアドレスは、図19の設定値のうちMC_Overlay_Barの設定値「0x80001000」、「0x80002000」、「0x80003000」(16進表示)+「0x00000014」である値「0x80001014」、「0x80002014」、「0x80003014」(16進表示)に設定される。
 このようにして、デバイスドライバ20は、図5、図19説明した設定値をスイッチ回路32の各ポート39-0~39-3のマルチキャストレジスタ34-4,35-4、36-4,37-4に設定する。これにより、マルチキャスト機能を用いて、各レジスタ102,104にデータをライトできる。
 (S32)デバイスドライバ20はホストメモリ4にマイクロコードを配置する。図15で説明したように、デバイスドライバ20は入出力デバイスにロードされるべきマイクロコードをホストメモリ4の特定位置4-10(本実施の形態では、アドレス=「0x20000000」)に配置する。
 (S34)デバイスドライバ20はマルチキャストで、各入出力デバイス5-0~5-2のロード開始アドレスレジスタ102にホストメモリ4のマイクロコード格納開始アドレスを設定する。即ち、デバイスドライバ20は、パケットタイプ「MEM Write」、アドレス=「0xA0000010」、データ(ペイロード)=「0x20000000」(開始アドレス)を設定したPCIeパケットをIOハブ30を介しスイッチ回路32に送信する。
 スイッチ回路32では、ポート39-0のパケット解析部34-2がパケットのアドレス「0xA0000010」から受信したパケットをマルチキャストパケットと判断して、内部バス38を介し各ポート39-1~39-3に転送する。各ポート39-1~39-3のパケット解析部35-2~37-2は同様にパケットのアドレス「0xA0000010」から受信したパケットをマルチキャストパケットと判断する。
 そして、パケット解析部35-2~37-2は受信したパケットのアドレスをMC_Overlay_Barの設定値「0x80001000」、「0x80002000」、「0x80003000」からロード開始アドレスレジスタ102のレジスタアドレス値「0x80001010」、「0x80002010」、「0x80003010」(16進表示)に変換する。パケット解析部35-2~37-2は変換されたアドレスを持つパケットをPCIeバス6-0~6-2を介し入出力デバイス5-0~5-2に転送する。入出力デバイス5-0~5-2では、アドレスデコーダ110(図8参照、図15では図示せず)がパケットのアドレスをデコードし、受信パケットの設定値(開始アドレス)をロード開始アドレスレジスタ102に書き込む。
 (S36)デバイスドライバ20はロード開始をマルチキャストで指示する。デバイスドライバ20はアドレス=「0xA0000014」にデータ=「0x00000001」 (本実施の形態ではbit0がロード開始指示ビットとする)を設定する。即ち、デバイスドライバ20は、パケットタイプ「MEM Write」、アドレス=「0xA0000014」、データ(ペイロード)=「0x00000001」を設定したPCIeパケットをIOハブ30を介しスイッチ回路32に送信する。
 スイッチ回路32では、ポート39-0のパケット解析部34-2がパケットのアドレス「0xA0000014」から受信したパケットをマルチキャストパケットと判断して、内部バス38を介し各ポート39-1~39-3に転送する。各ポート39-1~39-3のパケット解析部35-2~37-2は同様にパケットのアドレス「0xA0000014」から受信したパケットをマルチキャストパケットと判断する。
 そして、パケット解析部35-2~37-2は受信したパケットのアドレスをMC_Overlay_Barの設定値「0x80001000」、「0x80002000」、「0x80003000」を用いてロード開始レジスタ104のレジスタアドレス値「0x80001014」、「0x80002014」、「0x80003014」(16進表示)に変換する。パケット解析部35-2~37-2は変換されたアドレスを持つパケットをPCIeバス6-0~6-2を介し入出力デバイス5-0~5-2に転送する。入出力デバイス5-0~5-2では、アドレスデコーダ110がパケットのアドレスをデコードし、受信パケットの設定値(ロード開始指示)をロード開始レジスタ104に書き込む。
 各入出力デバイス5-0~5-2のマイクロコントローラ56はロード開始レジスタ104を監視し、ロード開始レジスタ104にロード開始指示が書き込まれたか否かを判定する。マイクロコントローラ50はロード開始レジスタ104にロード開始指示が書き込まれたと判定すると、マイクロコントローラ50はロード開始アドレスレジスタ102の書き込まれたマイクロコードの開始アドレスによりホストメモリ4をアクセスし、ホストメモリ4のマイクロコード4-10を読み出し、マイクロコントローラ56のメモリに書き込む。
 即ち、マイクロコントローラ56はPCIヘッダにパケットタイプ「MEM Read」とロード開始アドレスレジスタ102の開始アドレスをセットしたPCI expressパケットを作成し、PCIeバス6-0,6-1,6-2に送信する。スイッチ回路32は受信した各入出力デバイス5-0~5-2からのPCIeパケットをIOハブ30を介しCPU2へ転送する。CPU2は転送されたPCIeパケットを解析し、ホストメモリ4のアドレスで指定された領域4-10のマイクロコードをIOハブ30、スイッチ回路32を介し各入出力デバイス5-0~5-2に転送する。
 2回目以降のマイクロコードのローディングを実施する場合は、ステップS30,S32の処理が不要となる。このように、マルチキャスト機能により開始アドレス、ロード開始を指示することにより、マイクロコードのロードが必要な入出力デバイスの数が増加しても、マイクロコードのローディングに要する時間を短縮できる。
 (他の実施の形態)
 前述の実施の形態では、PCI Express規格のマルチキャスト機能を例に説明したが、スイッチ回路へのマルチキャスト機能の設定により受信パケットがマルチキャストパケットかユニキャストパケットかを判定する他の規格のマルチキャスト機能を適用することもできる。
 又、入出力デバイスとの接続規格はPCI Express規格に限らず、他の接続規格を適用できる。
 以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
 マルチキャスト機能を設定できるブリッジ回路とDMA回路とを設け、マルチキャスト機能を用いてDMA転送の開始指示を行うため、各入出力デバイスのレジスタの読み出しに要する時間を短縮できる。又、ほぼ同時にDMA転送開始指示を行うため、入出力デバイスの同時刻の状態をコピーできる。特に、レジスタの読み出しを実施する入出力デバイスが多い場合や多数回のデータ収集を行う場合に有効である。
 1 情報処理装置
 2 CPU(演算処理装置)
 3 ブリッジ回路
 3A マルチキャスト機能
 4 ホストメモリ
 4A ワーク領域
 4-0~4-2 コピー領域
 5-0~5-2 入出力デバイス
 6-0~6-3 PCIeバス
 7 メモリバッファ
 20 デバイスドライバ
 30 IOハブ
 32 スイッチ回路
 34-0~37-0 送受信バッファ
 34-2~37-2 パケット解析部
 34-4~37-4 マルチキャストレジスタ
 38 内部バス
 39-0~39-3 ポート
 50 DMA回路
 52 デバイス基本機能部
 56 マイクロコントローラ
 80 コピー開始レジスタ
 82 コピー先アドレスレジスタ
 84 シーケンス番号レジスタ
 86 パケット生成シーケンサ
 100 レジスタ群
 102 ロード開始アドレスレジスタ
 104 ロード開始レジスタ

Claims (20)

  1.  演算処理装置と、
     前記演算処理装置が使用する記憶装置と、
     各々状態情報を保持する記憶部とDMA回路とを有する複数の入出力デバイスと、
     前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有し、
     前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信し、前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストし、前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記DMA回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にDMA転送する
     ことを特徴とする情報処理装置。
  2.  前記DMA回路は前記コピー開始を指示するパケットのコピー開始指示を格納するコピー開始レジスタを有し、
     前記ブリッジ回路は、前記コピー開始を指示するパケットのアドレスを前記マルチキャストの設定に応じて前記各入出力デバイスの前記コピー開始レジスタのアドレスに変換し、前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする
     ことを特徴とする請求項1の情報処理装置。
  3.  前記演算処理装置が前記転送のシーケンス番号を指示するパケットを前記ブリッジ回路に送信し、前記ブリッジ回路が前記シーケンス番号を指示するパケットを前記複数の入出力デバイスにマルチキャストし、前記複数の入出力デバイスの前記DMA回路が前記シーケンス番号を付加した前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にDMA転送する
     ことを特徴とする請求項1の情報処理装置。
  4.  前記DMA回路は前記マルチキャストされたシーケンス番号を格納するシーケンス番号レジスタを有し、
     前記ブリッジ回路は、前記シーケンス番号を指示するパケットのアドレスを前記マルチキャストの設定に応じて前記各入出力デバイスの前記シーケンス番号レジスタのアドレスに変換し、前記シーケンス番号を指示するパケットを前記複数の入出力デバイスにマルチキャストする
     ことを特徴とする請求項3の情報処理装置。
  5.  前記演算処理装置は前記記憶装置に格納されたシーケンス番号と前記送信したパケットのシーケンス番号とを比較して、前記転送の完了を検出する
     ことを特徴とする請求項3の情報処理装置。
  6.  前記ブリッジ回路は前記マルチキャストの設定に応じて、前記演算処理装置からの受信パケットをマルチキャストするかユニキャストするかを判定する
     ことを特徴とする請求項1の情報処理装置。
  7.  前記DMA回路は前記記憶装置のコピー先アドレスを格納するコピー先アドレスレジスタを有し、
     前記演算処理装置は前記記憶装置に確保した前記複数の入出力デバイスの各々のコピー先アドレスを指定した前記複数の入出力デバイスの各々へのパケットを前記ブリッジ回路に送信し、前記ブリッジ回路は前記各々へのパケットを前記複数の入出力デバイスにユニキャストし、前記複数の入出力デバイスは前記コピー先アドレスレジスタに前記各々のコピー先アドレスを格納し、前記DMA回路は前記コピー先アドレスを付加した前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にDMA転送する
     ことを特徴とする請求項6の情報処理装置。
  8.  前記ブリッジ回路は、
     前記演算処理装置からの前記マルチキャストの設定情報を保持するマルチキャストレジスタと、
     前記マルチキャストレジスタの設定情報を参照し、受信したパケットをマルチキャストするか、ユニキャストするかを判定するパケット解析部を有する
     ことを特徴とする請求項6の情報処理装置。
  9.  前記パケット解析部は前記マルチキャストレジスタの設定情報を参照し、受信したパケットのアドレスによりマルチキャストするか、ユニキャストするかを判定する
     ことを特徴とする請求項8の情報処理装置。
  10.  前記演算処理装置が前記記憶装置のロード情報のロード開始アドレスを指示するパケットと前記ロード開始を指示するパケットと前記ブリッジ回路に送信し、前記ブリッジ回路が両前記パケットを前記複数の入出力デバイスにマルチキャストし、前記ロード開始を指示するパケットに応じて、前記複数の入出力デバイスが前記記憶装置の前記ロード開始アドレスの情報前記ブリッジ回路を介し読み出す
     ことを特徴とする請求項1の情報処理装置。
  11.  演算処理装置と、前記演算処理装置が使用する記憶装置と、各々状態情報を保持する記憶部とDMA回路とを有する複数の入出力デバイスと、前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有する情報処理装置のデバイス情報収集処理方法であって、
     前記演算処理装置が前記ブリッジ回路に前記マルチキャストを設定する工程と、
     前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信する工程と、
     前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程と、
     前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記DMA回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にDMA転送する工程とを有する
     ことを特徴とする情報処理装置のデバイス情報収集処理方法。
  12.  前記マルチキャストする工程は、前記ブリッジ回路は、前記コピー開始を指示するパケットのアドレスを前記マルチキャストの設定に応じて前記各入出力デバイスのコピー開始レジスタのアドレスに変換し、前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程を有する
     ことを特徴とする請求項11の情報処理装置のデバイス情報収集処理方法。
  13.  前記演算処理装置が前記転送のシーケンス番号を指示するパケットを前記ブリッジ回路に送信する工程と、
     前記ブリッジ回路が前記シーケンス番号を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程とを更に有し、
     前記DMA転送する工程は、前記複数の入出力デバイスの前記DMA回路が前記シーケンス番号を付加した前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にDMA転送する工程を有する
     ことを特徴とする請求項11の情報処理装置のデバイス情報収集処理方法。
  14.  前記シーケンス番号をマルチキャストする工程は、
     前記ブリッジ回路が、前記シーケンス番号を指示するパケットのアドレスを前記マルチキャストの設定に応じて前記各入出力デバイスの前記シーケンス番号レジスタのアドレスに変換し、前記シーケンス番号を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程を有する
     ことを特徴とする請求項13の情報処理装置のデバイス情報収集処理方法。
  15.  前記演算処理装置が前記記憶装置に格納されたシーケンス番号と前記送信したパケットのシーケンス番号とを比較して、前記転送の完了を検出する工程を更に有する
     ことを特徴とする請求項13の情報処理装置のデバイス情報収集処理方法。
  16.  前記マルチキャストする工程は、前記ブリッジ回路が前記マルチキャストの設定に応じて、前記演算処理装置からの受信パケットをマルチキャストするかユニキャストするかを判定する工程を有する
     ことを特徴とする請求項11の情報処理装置のデバイス情報収集処理方法。
  17.  前記演算処理装置が前記記憶装置に確保した前記複数の入出力デバイスの各々のコピー先アドレスを指定した前記複数の入出力デバイスの各々へのパケットを前記ブリッジ回路に送信する工程と、
     前記ブリッジ回路が前記各々へのパケットを前記複数の入出力デバイスにユニキャストする工程と、
     前記複数の入出力デバイスが前記コピー先アドレスレジスタに前記各々のコピー先アドレスを格納する工程とを更に有し、
     前記DMA転送する工程は、前記DMA回路は前記コピー先アドレスを付加した前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にDMA転送する工程を有する
     ことを特徴とする請求項16の情報処理装置のデバイス情報収集処理方法。
  18.  前記マルチキャストする工程は、
     パケット解析部が前記演算処理装置からの前記マルチキャストの設定情報を保持するマルチキャストレジスタの設定情報を参照し、受信したパケットをマルチキャストするか、ユニキャストするかを判定する工程を有する
     ことを特徴とする請求項16の情報処理装置デバイス情報収集処理方法。
  19.  前記マルチキャストする工程は、前記パケット解析部が前記マルチキャストレジスタの設定情報を参照し、受信したパケットのアドレスによりマルチキャストするか、ユニキャストするかを判定する工程を有する
     ことを特徴とする請求項18の情報処理装置のデバイス情報収集処理方法。
  20.  前記演算処理装置が前記記憶装置のロード情報のロード開始アドレスを指示するパケットと前記ロード開始を指示するパケットと前記ブリッジ回路に送信する工程と、
     前記ブリッジ回路が両前記パケットを前記複数の入出力デバイスにマルチキャストする工程と、
     前記ロード開始を指示するパケットに応じて、前記複数の入出力デバイスが前記記憶装置の前記ロード開始アドレスの情報前記ブリッジ回路を介し読み出す工程とを更に有する
     ことを特徴とする請求項11の情報処理装置のデバイス情報収集処理方法。
PCT/JP2010/001986 2010-03-19 2010-03-19 情報処理装置及び情報処理装置のデバイス情報収集処理方法 WO2011114383A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012505314A JP5299559B2 (ja) 2010-03-19 2010-03-19 情報処理装置及び情報処理装置のデバイス情報収集処理方法
PCT/JP2010/001986 WO2011114383A1 (ja) 2010-03-19 2010-03-19 情報処理装置及び情報処理装置のデバイス情報収集処理方法
US13/609,954 US8533372B2 (en) 2010-03-19 2012-09-11 Information processing device and method of collection process of device information in the information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/001986 WO2011114383A1 (ja) 2010-03-19 2010-03-19 情報処理装置及び情報処理装置のデバイス情報収集処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/609,954 Continuation US8533372B2 (en) 2010-03-19 2012-09-11 Information processing device and method of collection process of device information in the information processing device

Publications (1)

Publication Number Publication Date
WO2011114383A1 true WO2011114383A1 (ja) 2011-09-22

Family

ID=44648520

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/001986 WO2011114383A1 (ja) 2010-03-19 2010-03-19 情報処理装置及び情報処理装置のデバイス情報収集処理方法

Country Status (3)

Country Link
US (1) US8533372B2 (ja)
JP (1) JP5299559B2 (ja)
WO (1) WO2011114383A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014182329A (ja) * 2013-03-21 2014-09-29 Fujitsu Ltd 同期制御装置,同期制御方法および同期制御プログラム
JP2016036149A (ja) * 2014-03-25 2016-03-17 ディ・エス・エス・ディ・インコーポレイテッドDssd, Inc. 十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014158161A1 (en) 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Error coordination message for a blade device having a logical processor in another system firmware domain
EP2979170B1 (en) 2013-03-28 2020-07-08 Hewlett-Packard Enterprise Development LP Making memory of compute and expansion blade devices available for use by an operating system
WO2014158153A1 (en) * 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Identifying memory of a blade device for use by an operating system of a partition including the blade device
KR102330391B1 (ko) 2014-09-11 2021-11-24 삼성전자주식회사 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 가비지 컬렉션 방법
KR102331926B1 (ko) * 2017-11-17 2021-11-29 삼성전자주식회사 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH031264A (ja) * 1989-05-30 1991-01-07 Oki Electric Ind Co Ltd マルチプロセッサシステム
JPH11134287A (ja) * 1997-10-28 1999-05-21 Nec Corp 入出力バスデータ転送装置
JP2005018379A (ja) * 2003-06-25 2005-01-20 Toshiba Corp プロセッサ、プロセッサシステム及びキャッシュ一貫性制御方法
JP2007086963A (ja) * 2005-09-21 2007-04-05 Hitachi Ltd 計算機システム及びi/oブリッジ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5475955A (en) 1977-11-30 1979-06-18 Hitachi Ltd Delivery system of monitor frame at terminal unit
US20110149960A1 (en) * 2009-12-17 2011-06-23 Media Patents, S.L. Method and apparatus for filtering multicast packets
US8554963B1 (en) * 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH031264A (ja) * 1989-05-30 1991-01-07 Oki Electric Ind Co Ltd マルチプロセッサシステム
JPH11134287A (ja) * 1997-10-28 1999-05-21 Nec Corp 入出力バスデータ転送装置
JP2005018379A (ja) * 2003-06-25 2005-01-20 Toshiba Corp プロセッサ、プロセッサシステム及びキャッシュ一貫性制御方法
JP2007086963A (ja) * 2005-09-21 2007-04-05 Hitachi Ltd 計算機システム及びi/oブリッジ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014182329A (ja) * 2013-03-21 2014-09-29 Fujitsu Ltd 同期制御装置,同期制御方法および同期制御プログラム
JP2016036149A (ja) * 2014-03-25 2016-03-17 ディ・エス・エス・ディ・インコーポレイテッドDssd, Inc. 十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング
US10013377B2 (en) 2014-03-25 2018-07-03 EMC IP Holding Company LLC PCI express fabric routing for a fully-connected mesh topology

Also Published As

Publication number Publication date
US8533372B2 (en) 2013-09-10
US20130007310A1 (en) 2013-01-03
JPWO2011114383A1 (ja) 2013-06-27
JP5299559B2 (ja) 2013-09-25

Similar Documents

Publication Publication Date Title
JP5299559B2 (ja) 情報処理装置及び情報処理装置のデバイス情報収集処理方法
US9696942B2 (en) Accessing remote storage devices using a local bus protocol
JP7247213B2 (ja) デバッグコントローラ回路
CN109726163B (zh) 一种基于spi的通信系统、方法、设备和储存介质
KR100881049B1 (ko) 복수의 어드레스 2 채널 버스 구조
EP3616073A1 (en) Apparatus and method for controlling data acceleration
JP5185289B2 (ja) 内容終了型dma
US20040019711A1 (en) Method, system, and program for handling input/output commands
US10970237B2 (en) Storage system
JP5893020B2 (ja) Pciエクスプレス適合デバイスの資源にアクセスするためのシステム及び方法
JP2008090375A (ja) 割込み制御システム、およびこれを利用した記憶制御システム
US20160323406A1 (en) Information processing device, traffic control method and medium
US7415555B2 (en) Bus bridge device
US20120324078A1 (en) Apparatus and method for sharing i/o device
JP5497743B2 (ja) 複数のプロセスからメモリ領域へのアクセスを制御する方法、及び、本方法を実現するためのメッセージメモリを備えた通信モジュール
JP5847013B2 (ja) 計算機及び計算機における入出力制御方法
JP2007079715A (ja) データ転送方法、プログラムおよび装置
CN111324563A (zh) 一种PCIe设备物理lane的组合系统及方法
JP2008102886A (ja) バス制御方法および装置
JP2002149626A (ja) マイクロコンピュータ
WO2021193542A1 (ja) 通信システム
JP6802696B2 (ja) 情報処理装置及びシステム
JPH09198331A (ja) インターフェース装置及び方法及び情報処理システム
JP2003085129A (ja) データ通信コントローラ及びデータ転送装置
WO2024092188A1 (en) Firmware broadcast in a multi-chip module

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012505314

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10847803

Country of ref document: EP

Kind code of ref document: A1