WO2014115293A1 - 情報処理装置、情報処理方法及び情報処理システム - Google Patents

情報処理装置、情報処理方法及び情報処理システム Download PDF

Info

Publication number
WO2014115293A1
WO2014115293A1 PCT/JP2013/051538 JP2013051538W WO2014115293A1 WO 2014115293 A1 WO2014115293 A1 WO 2014115293A1 JP 2013051538 W JP2013051538 W JP 2013051538W WO 2014115293 A1 WO2014115293 A1 WO 2014115293A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
request
information processing
processing apparatus
monitoring
Prior art date
Application number
PCT/JP2013/051538
Other languages
English (en)
French (fr)
Inventor
嘉樹 奥村
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2013/051538 priority Critical patent/WO2014115293A1/ja
Publication of WO2014115293A1 publication Critical patent/WO2014115293A1/ja

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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol

Definitions

  • the request source monitors whether or not a response is returned from the request destination within a predetermined time (hereinafter referred to as monitoring time). If no response is returned within the monitoring time, the request source interrupts the handshake in order to prevent the request source from entering a stationary state due to a failure.
  • the monitoring time is set too long, it may take a long time to deal with the abnormality after the abnormality occurs, so the abnormality may expand. Therefore, it is desirable to set the monitoring time so as not to be far from the time (hereinafter referred to as response time) required until the request source actually transmits the request and receives the response from the request destination.
  • the device when the device transmits a packet to the opposite device, the device stores the packet in a replay buffer. The device controls whether or not to retransmit the packet stored in the replay buffer based on whether or not the DLLP (Data Link Layer Packet) sent from the opposite device is received within the timer set value. The device counts an elapsed time from when the packet is transmitted until the DLLP for the packet is received, and corrects the timer setting value based on the counter value.
  • DLLP Data Link Layer Packet
  • this technology is intended for packet communication with a retransmission rule and one communication partner, such as a data link layer in PCI (Peripheral Component Interconnect) Express. For this reason, packet communication with no retransmission rule and one or more communication partners, such as a transaction layer in PCI Express, is not considered.
  • PCI Peripheral Component Interconnect
  • an object of the present invention is to provide a technique for bringing a response monitoring time closer to an actual response time.
  • the information processing apparatus transmits a request from another apparatus that has received a request transmitted by the information processing apparatus, when the information processing apparatus receives a packet including a time at which the other apparatus has received the request. Based on the difference between the received time and the time at which the other device receives the request, a calculation unit that calculates the first time, and determines whether the calculated first time is longer than a monitoring time that is a time for monitoring a response And an updating unit that updates the monitoring time with the first time when it is determined that the monitoring time is long.
  • the response monitoring time can be brought closer to the actual response time.
  • FIG. 1 is a diagram for explaining handshaking.
  • FIG. 2 is a diagram illustrating a case where a failure has occurred in the handshake.
  • FIG. 3 is a diagram illustrating a case where a failure has occurred in the handshake.
  • FIG. 4 is a diagram illustrating a case where a failure has occurred in the handshake.
  • FIG. 5 is a diagram illustrating a case in which a failure occurs while monitoring the response time during handshake.
  • FIG. 6 is a diagram illustrating a case where a failure has occurred during response time monitoring during handshake.
  • FIG. 7 is a diagram illustrating an example of a system using PCI Express.
  • FIG. 8 is a diagram for explaining packet communication in PCI Express.
  • FIG. 9 is a diagram for explaining a posted request.
  • FIG. 8 is a diagram illustrating a case where a failure has occurred in the handshake.
  • FIG. 10 is a diagram for explaining the non-posted request.
  • FIG. 11 is a diagram for explaining processing in which the root complex outputs a plurality of requests.
  • FIG. 12 is a diagram illustrating an example of a common address space used in PCI Express.
  • FIG. 13 is a diagram illustrating an example of a system using PCI Express.
  • FIG. 14 is a diagram for comparing the actual response time with the predicted response time.
  • FIG. 15 is a diagram showing an overview of the system in the present embodiment.
  • FIG. 16 is a diagram illustrating the configuration of the requester.
  • FIG. 17A is a diagram illustrating a configuration of a completer.
  • FIG. 17B is a diagram illustrating a configuration of a receiving unit in the completer.
  • FIG. 17A is a diagram illustrating a configuration of a completer.
  • FIG. 18 is a diagram illustrating a configuration of the switch.
  • FIG. 19 is a diagram illustrating an example of data stored in the history management table.
  • FIG. 20 is a diagram illustrating a processing flow of processing performed by the requester.
  • FIG. 21 is a diagram illustrating an example of RTNP generated by the completer.
  • FIG. 22 is a diagram illustrating an example of RTNP generated by the switch.
  • FIG. 23 is a diagram illustrating a processing flow of processing performed by the completer and the switch.
  • FIG. 24 is a diagram for explaining the monitoring time update when the endpoint 1 transmits a non-posted request to the endpoint 2.
  • FIG. 25 is a diagram for explaining the update of the monitoring time when the endpoint 1 transmits a non-posted request to the endpoint 5.
  • FIG. 24 is a diagram for explaining the monitoring time update when the endpoint 1 transmits a non-posted request to the endpoint 2.
  • FIG. 25 is a diagram for explaining the update of the monitoring time when
  • FIG. 26 is a diagram for explaining the reduction of the monitoring time.
  • FIG. 27 is a diagram for explaining the monitoring time update when the endpoint 1 transmits a non-posted request to the endpoint 5.
  • FIG. 28 is a diagram for explaining the update of the monitoring time when the endpoint 1 transmits a non-posted request to the endpoint 2.
  • FIG. 29 is a diagram for explaining the reduction of the monitoring time.
  • FIG. 30 is a diagram for explaining time setting.
  • the requesting node is node A
  • the requesting node is node B. That is, node A transmits a request to node B, node B processes the request, and node B transmits a response to the request to node A.
  • the request processing unit processes the request.
  • the time from when the node A transmits a request to the node B until the response is received from the node B includes the time T r required for the request to propagate, the time T p for the node B to process the request, and the response There are included and time T a required for propagation.
  • the node A is in a waiting state until the response is received from the node B after the node A transmits the request to the node B.
  • the node B is in a waiting state except during the processing of the request.
  • FIG. 2 to 4 show an example of a case where a failure has occurred in the handshake. In these cases, it is assumed that the response time is not monitored.
  • FIG. 2 shows a case where a failure occurs before Node B receives a request and transmits a response.
  • FIG. 3 shows a case where a failure occurs after node A transmits a request but before node B receives the request.
  • FIG. 4 shows a case where a failure occurs after node B transmits a response but before node A receives the response. In either case, node A falls into a stationary state.
  • FIG. 5 and FIG. 6 show a case where a failure occurs in the node B while monitoring the response time in the handshake.
  • the monitoring timer in node A monitors the response.
  • no response is returned even after the monitoring time has elapsed, and therefore an abnormal process (that is, a process for dealing with an abnormality) is performed at the node A.
  • an abnormal process that is, a process for dealing with an abnormality
  • the monitoring time is shorter in the case of FIG. 5, the time from the occurrence of a failure to the start of the abnormality process is shorter, so that the abnormality process can be performed before the failure expands.
  • the monitoring time is longer than that of the case of FIG.
  • FIG. 7 shows an example of a system using PCI Express.
  • PCI Express is a standard applied to the internal interface of a computer.
  • the system shown in FIG. 7 includes a CPU (Central Processing Unit), a module called a root complex, a module called a switch, and a module called an end point.
  • the root complex is, for example, a memory bridge.
  • the switch is, for example, a switching circuit that performs switching.
  • the endpoint is, for example, an input / output device or a controller thereof.
  • the CPU side port is called an upstream port
  • the endpoint side port is called a downstream port.
  • the root complex Since the root complex has a requester function, it can send a request.
  • the root complex may have a completer function that is a function of processing a request.
  • the endpoint has a completer function.
  • the endpoint may have a requester function.
  • a module having a requester function is called a requester
  • a module having a completer function is called a completer.
  • the packet communication in PCI Express will be described with reference to FIG.
  • the control structure of packet communication in PCI Express includes a transaction layer, a data link layer, and a physical layer. Requests and responses in PCI Express are routed through the transaction layer. That is, for the request transmitted by the root complex, processing in the transaction layer, data link layer, and physical layer is performed. For the request transmitted by the endpoint, processing in the transaction layer, data link layer, and physical layer is performed. In the switch that relays the packet between the root complex and the end point, the transaction layer, data link layer, and physical layer are processed.
  • Requests in PCI Express include a posted request that does not require a response and a non-posted request that requires a response.
  • the posted request is, for example, a data write request to the memory
  • the non-posted request is, for example, a data read request from the memory.
  • the posted request will be described with reference to FIG.
  • the root complex sends a posted request, and the switch receives the posted request.
  • the switch forwards the received posted request to the endpoint.
  • the request processing unit at the endpoint processes the received posted request. In the case of a posted request, there is no wait state in the root complex. For this reason, the monitoring timer in the root complex does not operate.
  • the root complex sends a non-posted request to the switch, and the switch forwards the non-posted request to the endpoint.
  • the request processing unit at the endpoint processes the received non-posted request.
  • the endpoint sends a non-posted response to the non-posted request to the switch, and the switch forwards the non-posted response to the root complex.
  • the root complex as a requester waits for a non-posted response, and therefore the monitoring timer operates.
  • the monitoring timer starts measuring the response time when the root complex transmits a non-posted request, and stops measuring the response time when the root complex receives the non-posted response. If the response time does not exceed a predetermined monitoring time, the abnormality process is not performed.
  • the root complex can transmit a plurality of non-posted requests (abbreviated as NP requests in FIG. 11) at a time.
  • NP requests non-posted requests
  • the root complex transmits four non-posted requests, and the request processing unit at the end point processes the four requests in parallel.
  • the endpoint sequentially transmits a non-posted response (abbreviated as NP response in FIG. 11) to the non-posted request that has been processed to the root complex.
  • four monitoring timers are started and each monitors responses.
  • FIG. 12 shows an example of a common address space used in PCI Express.
  • FIG. 12 shows a common address space from address 00000000h to address FFFFFFh, and the address space is assigned to the control registers of memories 1 to 4 and IO (Input and Output) 1 to 3.
  • the common address space allocated to the memories 1 to 4 is recognized as an address space allocated to one memory.
  • the hatched portion is an unallocated address space.
  • the reason why the common address space is used is that versatility is emphasized in PCI Express.
  • the administrator or the like estimates the maximum response time in the system and calculates the monitoring time based on the maximum response time (for example, by multiplying by a predetermined coefficient). As a result, the monitoring time can be much longer than the actual response time.
  • IO represents an IO device
  • EP represents an end point
  • SW represents a switch
  • RC represents a root complex.
  • Other symbols are the same as those in FIG.
  • a solid arrow represents an actual access route
  • a dotted arrow represents a predicted address route. The dotted arrow is omitted for the portion where the solid arrow and the dotted arrow overlap.
  • the endpoint 1 actually accesses the memory 2 and the memory 4. If the administrator or the like can know this fact at the time of starting the system, the monitoring time can be obtained based on the response time for the memory 2 or the memory 4. However, it is assumed that the endpoint 1 accesses any of the memories 1 to 4 because the administrator cannot know this fact at the time of starting the system. Therefore, the monitoring time is obtained based on the response time for the memory 3, which is the maximum response time in the system.
  • FIG. 14 is a diagram for comparing the actual response time and the predicted response time in the system shown in FIG. FIG. 14 shows a breakdown of response time for each of the memories 1 to 4.
  • the response time includes a transit time within the module, a transit time between the modules, and a memory access time.
  • the response time for the memory 3 among the memories 1 to 4 is the longest, so the monitoring time is obtained based on the response time for the memory 3.
  • the response time for the memory 3 corresponds to the time between the straight line 141 and the straight line 143.
  • the maximum response time among the actual response times is the response time for the memory 2.
  • the response time for the memory 2 corresponds to the time between the straight line 141 and the straight line 142. Therefore, a response time longer by the amount between the straight line 142 and the straight line 143 is obtained.
  • the monitoring time is set to be excessively long, and the time from the occurrence of the failure until the start of the abnormality process becomes longer, so that the failure occurring in the system may be expanded.
  • FIG. 15 shows an overview of the system in the present embodiment.
  • the system shown in FIG. 15 is a PCI Express system built in a computer such as a personal computer.
  • RC represents a root complex
  • IO represents an IO device
  • EP represents an endpoint
  • SW represents a switch
  • UP represents an upstream port
  • DP represents a downstream port
  • RQ represents a requester.
  • CP represents a completer function.
  • Root complex has a requester function and a completer function.
  • the downstream port of the root complex is connected to the upstream port of the switch 1.
  • the root complex is connected to the IO device 1, the CPU 1, and the memory 1.
  • the downstream port of switch 1 is connected to the upstream port of switch 2, the upstream port of endpoint 1, and the upstream port of endpoint 5.
  • the endpoint 1 has a completer function and a requester function, and is connected to the IO device 2.
  • the end point 5 has a completer function and is connected to the memory 4.
  • the downstream port of switch 2 is connected to the upstream port of switch 3 and the upstream port of endpoint 2.
  • the end point 2 has a completer function and is connected to the memory 2.
  • the downstream port of the switch 3 is connected to the upstream port of the endpoint 4 and the upstream port of the endpoint 3.
  • the end point 4 has a completer function and is connected to the memory 3.
  • the end point 3 has a completer function and a requester function, and is connected to the IO device 3.
  • the “information processing apparatus” in the claims corresponds to modules such as a route complex, a switch, and an endpoint in FIG.
  • FIG. 16 shows the configuration of the requester 1.
  • the requester 1 includes a physical layer processing unit 101, a data link layer processing unit 102, a monitoring unit 103, a transmission unit 104, a reception unit 105, and a configuration register 106 including a time timer 121.
  • the monitoring unit 103 includes a reception time register 111, a transmission time register 112, a first processing unit 113, a second processing unit 114, a monitoring time register 115, a monitoring timer 116, and a third processing unit 117. including.
  • a plurality of monitoring timers 116 may be provided.
  • the transmission unit 104 transmits a non-posted request packet (abbreviated as an NP request packet in FIG. 16), a posted request packet (abbreviated as a P request packet in FIG. 16), and the like to a data link layer processing unit. To 102. In addition, the transmission unit 104 outputs the transmission time of the non-posted request packet to the monitoring timer 116 and stores it in the transmission time register 112.
  • a non-posted request packet abbreviated as an NP request packet in FIG. 16
  • a posted request packet abbreviated as a P request packet in FIG. 16
  • the data link layer processing unit 102 adds a sequence number and CRC (Cyclic Redundancy Check) to the packet to be transmitted, and executes processing to generate a data link layer packet.
  • CRC Cyclic Redundancy Check
  • the physical layer processing unit 101 converts the data link layer packet received from the data link layer processing unit 102 into a physical signal, and executes processing for sending it to a transmission path (not shown).
  • the receiving unit 105 transmits a non-posted response packet, a posted request packet, and an RTNP (abbreviation of Receiving Time Noticing Packet) for notifying the reception time of the non-posted request packet to the physical layer processing unit 101 and the data link layer processing unit 102. Receive via.
  • the receiving unit 105 When receiving the non-posted response packet, the receiving unit 105 outputs the reception time of the non-posted response packet to the monitoring timer 116.
  • the receiving unit 105 stores the reception time and the maximum processing time included in the RTNP (the maximum processing time may not be included) in the reception time register 111. RTNP will be described in detail later.
  • the first processing unit 113 determines the difference between the transmission time stored in the transmission time register 112 and the reception time stored in the reception time register 111. (In other words, a request propagation delay time (Propagation Delay Time)) is calculated and doubled to calculate a pseudo response time (hereinafter referred to as a pseudo response time). Then, the first processing unit 113 outputs the pseudo response time to the terminal A of the second processing unit 114.
  • the response time is the time from when a request is sent until the response is returned, so the request propagation delay time, the processing time for the request, and the response propagation delay time are added. It is.
  • the maximum processing time is not stored in the transmission time register 112 (that is, RTNP from the module existing on the path to the completer), and the propagation delay time of the response cannot be obtained. Therefore, the pseudo response time is calculated by doubling the request propagation delay time.
  • the first processing unit 113 calculates the pseudo response time by adding the maximum processing time to the time obtained by doubling the propagation delay time, Output to the terminal A of the second processing unit 114.
  • the second processing unit 114 monitors the monitoring time register 115 stored in the monitoring time register 115 with the pseudo response time. Update time.
  • the initial value of the monitoring time is, for example, a predicted value of the transit time of the direct link calculated from the communication speed of the direct link.
  • the communication speed of the direct link is determined by the PCI Express standard.
  • the monitoring timer 116 calculates the response time for the non-posted request by calculating the difference between the transmission time received from the transmission unit 104 and the reception time received from the reception unit 105. In addition, the monitoring timer 116 outputs the calculated response time to the terminal A of the third processing unit 117.
  • the third processing unit 117 notifies the CPU that an abnormality has occurred when the response time received from the monitoring timer 116 is longer than the monitoring time input from the terminal B in the third processing unit 117.
  • the time timer 121 in the configuration register 106 holds time information.
  • the requester 1 receives a non-posted request packet and a posted request packet from another device. This is because a device or the like may exist under the requester 1, and the device or the like may transmit a non-posted request packet and a posted request packet. Of course, the requester 1 itself may generate and transmit a non-posted request packet and a posted request packet. In FIG. 16, the requester 1 relays the non-posted response packet and the posted request packet for the same reason.
  • FIG. 17A shows the configuration of the completer 3.
  • the completer 3 includes a reception unit 31, a transmission unit 32, a history management table 33, a configuration register 34 including a time timer 35, a physical layer processing unit 36, and a data link layer processing unit 37.
  • the transmission unit 32 transmits a non-posted response packet (abbreviated as an NP response packet in FIG. 17A), a posted request packet (abbreviated as a P request packet in FIG. 17A), an RTNP, and the like to the data link layer.
  • the data is output to the processing unit 37.
  • the data link layer processing unit 37 adds a sequence number and CRC (Cyclic Redundancy Check) to the packet to be transmitted, and executes processing to generate a data link layer packet.
  • CRC Cyclic Redundancy Check
  • the physical layer processing unit 36 performs processing for converting the data link layer packet received from the data link layer processing unit 37 into a physical signal and sending it to a transmission path (not shown).
  • the receiving unit 31 executes a process of receiving the non-posted request packet and the posted request packet via the physical layer processing unit 36 and the data link layer processing unit 37.
  • the time timer 35 in the configuration register 34 holds time information.
  • FIG. 17B shows the configuration of the receiving unit 31 in the completer 3.
  • the reception unit 31 includes a generation unit 311 and a determination unit 312.
  • the generation unit 311 generates an RTNP including the reception time of the non-posted request and the maximum processing time, and outputs the RTNP to the transmission unit 32.
  • the determination unit 312 extracts transmission history information corresponding to the requester ID included in the non-posted request, and determines whether RTNP has been transmitted to the requester that requested the non-posted request.
  • FIG. 18 shows the configuration of the switch 5.
  • the switch 5 has an upstream port 51, an internal bus 52, and downstream ports 53 and 54.
  • the upstream port 51 and the downstream ports 53 and 54 are connected via an internal bus 52.
  • the upstream port 51 includes a physical layer processing unit 511, a data link layer processing unit 512, a transmission unit 513, a reception unit 514, and a configuration register 515 including a time timer 5150.
  • the transmission unit 513 transmits a non-posted request packet (abbreviated as an NP request packet in FIG. 18), a posted request packet (abbreviated as a P request packet in FIG. 18), and the like to a data link layer processing unit. To 512.
  • a non-posted request packet abbreviated as an NP request packet in FIG. 18
  • a posted request packet abbreviated as a P request packet in FIG. 18
  • the data link layer processing unit 512 adds a sequence number and CRC (Cyclic Redundancy Check) to the packet to be transmitted, and executes processing to generate a data link layer packet.
  • CRC Cyclic Redundancy Check
  • the physical layer processing unit 511 converts the data link layer packet received from the data link layer processing unit 512 into a physical signal, and executes processing for sending the packet to a transmission path (not shown).
  • the receiving unit 514 receives the non-posted response packet and the posted request packet via the physical layer processing unit 511 and the data link layer processing unit 512.
  • the time timer 5150 in the configuration register 515 holds time information.
  • the downstream port 53 includes a physical layer processing unit 532, a data link layer processing unit 531, a receiving unit 534, a transmitting unit 533, a history management table 537, and a configuration register 535 including a time timer 536.
  • the transmission unit 533 transmits a non-posted response packet (abbreviated as an NP response packet in FIG. 18), a posted request packet (abbreviated as a P request packet in FIG. 18), an RTNP, etc.
  • the data is output to the processing unit 531.
  • the data link layer processing unit 531 adds a sequence number and CRC (Cyclic Redundancy Check) to the packet to be transmitted, and executes processing for generating a data link layer packet.
  • CRC Cyclic Redundancy Check
  • the physical layer processing unit 532 converts the data link layer packet received from the data link layer processing unit 531 into a physical signal, and executes processing to send it to a transmission path (not shown).
  • the receiving unit 534 executes processing for receiving the non-posted request packet and the posted request packet via the physical layer processing unit 532 and the data link layer processing unit 531.
  • the time timer 536 in the configuration register 535 holds time information.
  • the configuration of the downstream port 54 is the same as the configuration of the downstream port 53, and thus the description thereof is omitted.
  • the receiving units 534 and 544 in the downstream ports 53 and 54 of the switch 5 have a generation unit and a determination unit in the same manner as the receiving unit 31 of the completer 3, but have the same configuration as that shown in FIG. Therefore, explanation is omitted.
  • FIG. 19 shows an example of data stored in the history management tables 33, 537, and 547 in the completer 3 and the switch 5.
  • a requester ID RQID
  • transmission history information are stored.
  • the requester ID is assigned to each upstream port and downstream port when the CPU is initially set.
  • the CPU uses, for example, a transaction ID as a requester ID.
  • the transmission unit 104 of the requester 1 transmits a non-posted request packet to the request destination completer (FIG. 20: step S1).
  • the receiving unit 105 determines whether RTNP has been received (step S3). When RTNP is not received (step S3: No route), the process proceeds to step S11.
  • the reception unit 105 stores the time when the RTNP transmission source received the non-posted request transmitted in step S1 included in the RTNP in the reception time register 111. In addition, when the maximum processing time is included in the RTNP, the reception unit 105 stores the maximum processing time in the reception time register 111.
  • FIG. 21 shows an example of RTNP generated by the completer.
  • the RTNP shown in FIG. 21 includes a header and a payload including a non-posted request reception time (that is, a time at which the completer receives the non-posted request) and a maximum processing time.
  • the maximum processing time is the longest time that the completer can take to process a non-posted request.
  • FIG. 22 shows an example of RTNP generated by the switch.
  • the RTNP shown in FIG. 22 includes a header and a payload including a non-posted request reception time (that is, a time when the switch receives the non-posted request). Since the switch on the path from the requester 1 to the completer does not process non-posted requests, RTNP does not include the maximum processing time.
  • the first processing unit 113 calculates a pseudo response time (step S5). If the received RTNP does not include the maximum processing time, a propagation delay time that is the difference between the transmission time stored in the transmission time register 112 and the reception time stored in the reception time register 111 is calculated. The pseudo response time is calculated by multiplying by 2. When the received RTNP includes the maximum processing time, a time obtained by adding the maximum processing time to the propagation delay time is set as a pseudo response time. The first processing unit 113 outputs the calculated pseudo response time to the terminal A of the second processing unit 114.
  • the second processing unit 114 determines whether the pseudo response time received from the first processing unit 113 is longer than the monitoring time stored in the monitoring time register 115 (step S7). When the pseudo response time is not longer than the monitoring time (step S7: No route), the process proceeds to step S11.
  • the second processing unit 114 calculates the monitoring time stored in the monitoring time register 115 with the pseudo response time received from the first processing unit 113. Update (step S9).
  • the monitoring time is updated with the pseudo response time itself, abnormal processing may frequently occur. Therefore, the pseudo response time may be updated with a predetermined number of times.
  • the receiving unit 105 determines whether a non-posted response packet for the non-posted request packet transmitted in step S1 has been received (step S11). When the non-posted response packet is received (step S11: Yes route), the process is terminated.
  • step S11 when the non-posted response packet is not received (step S11: No route), the third processing unit 117 uses the response time received from the monitoring timer 116 as the monitoring time input from the terminal B in the third processing unit 117. It is determined whether it is longer (step S13). If the response time is not longer than the monitoring time (step S13: No route), the process returns to step S3. On the other hand, when the response time is longer than the monitoring time (step S13: Yes route), the third processing unit 117 notifies the CPU of the abnormality (step S15). In step S15, notification is performed by transmitting a special packet to the CPU, for example. Then, the process ends.
  • the monitoring time can be updated with the pseudo-calculated response time, so that the monitoring time can be brought close to the actual response time. Thereby, it becomes possible to quickly recover from the abnormality.
  • the monitoring time can be determined while the system is actually operating, and the response time is monitored during the process of determining the monitoring time. Will be able to.
  • step S21 the receiving unit 31 in the completer 3 determines whether a non-posted request packet has been received.
  • step S21 No route
  • step S21 when the non-posted request packet is received (step S21: Yes route), the determination unit 312 determines whether or not the RTNP has been transmitted for the requester that is the transmission source of the non-posted request (step S23).
  • step S23 the transmission history information corresponding to the requester ID included in the non-posted request packet is extracted from the history management table 33, and a determination is made based on whether or not the extracted transmission history information represents “transmitted”. Do.
  • step S25 Yes route
  • the generation unit 311 generates an RTNP including the reception time and the maximum processing time of the non-posted request packet.
  • the transmission unit 32 transmits RTNP to the requester (step S27).
  • the maximum processing time is the longest time that the completer can take to process a non-posted request.
  • the maximum processing time is stored in advance in a memory area managed by the completer.
  • the transmission unit 32 sets the transmission history information corresponding to the requester ID of the transmission source requester to “transmitted” (step S29).
  • the transmission unit 32 determines whether it is time to transmit the non-posted response packet (step S31). In step S31, for example, the determination is made based on whether or not the processing of the non-posted request is completed.
  • step S31 If it is not time to transmit the non-posted response packet (step S31: No route), the process returns to step S31. On the other hand, when it is time to transmit the non-posted response packet (step S31: Yes route), the transmission unit 32 transmits the non-posted response packet to the requester requester (step S33). Then, the process ends.
  • the requester can calculate a pseudo response time using information included in the RTNP.
  • EP represents an endpoint
  • SW represents a switch
  • RC represents a root complex
  • NP request represents a non-posted request.
  • FIG. 24 shows a state in which the module that has received the non-posted request transmitted by the endpoint 1 transmits RTNP to the endpoint 1.
  • a solid arrow indicates a transfer of a non-posted request
  • a dotted arrow indicates a transfer of an RTNP, but the non-posted request arrow is also a dotted line in the module.
  • the switch 1 that has received the non-posted request transmitted by the endpoint 1 transmits RTNP to the endpoint 1.
  • the switch 2 that has received the non-posted request transmitted by the endpoint 1 via the switch 1 transmits RTNP to the endpoint 1.
  • the endpoint 2 that has received the non-posted request transmitted by the endpoint 1 via the switch 2 transmits the RTNP to the endpoint 1. Further, since the end point 2 is a completer, the non-posted request is processed in the request processing unit, and a non-posted response indicating the processing result is transmitted to the end point 1.
  • a monitoring timer is started when the endpoint 1 transmits a non-posted request.
  • the monitoring time is updated to the vertical length of block 241.
  • the monitoring time is updated to the vertical length of block 242.
  • the monitoring time is updated to the vertical length of block 243.
  • the monitoring timer is stopped.
  • a colored portion is a portion corresponding to the propagation delay time, and an uncolored portion is a portion corresponding to the maximum processing time.
  • FIG. 25 shows a state in which the module that has received the non-posted request transmitted by the endpoint 1 transmits the RTNP to the endpoint 1.
  • a solid arrow indicates a transfer of a non-posted request
  • a dotted arrow indicates a transfer of an RTNP, but the non-posted request arrow is also a dotted line in the module.
  • the switch 1 that has received the non-posted request transmitted by the endpoint 1 since the switch 1 that has received the non-posted request transmitted by the endpoint 1 has already transmitted the RTNP to the endpoint 1, it does not transmit the RTNP.
  • the endpoint 5 that has received the non-posted request transmitted by the endpoint 1 via the switch 1 transmits RTNP to the endpoint 1. Further, since the end point 5 is a completer, the non-posted request is processed in the request processing unit, and a non-posted response indicating the processing result is transmitted to the end point 1.
  • FIG. 25 shows how the monitoring time in the monitoring time register 115 of the endpoint 1 is updated. It is assumed that the vertical length of the block 251 is the same as the vertical length of the block 243 in FIG.
  • a monitoring timer is started when the endpoint 1 transmits a non-posted request.
  • the endpoint 1 receives RTNP from the endpoint 5
  • it is determined that the pseudo response time is shorter than the monitoring time, so the monitoring time is not updated.
  • the monitoring timer is stopped.
  • FIG. 26 shortening of the monitoring time when the operation described with reference to FIGS. 24 and 25 is performed will be described.
  • the upper part of FIG. 26 is the same as that shown in FIG.
  • the monitoring time is updated by the RTNP received by the endpoint 1 from the switch 1, the switch 2, and the endpoint 2.
  • the horizontal length in FIG. 26 represents the length of time.
  • the monitoring time is updated to a time corresponding to twice the propagation delay time between endpoint 1 and switch 1.
  • endpoint 1 receives RTNP from switch 2 the monitoring time is updated to a time corresponding to twice the propagation delay time between endpoint 1 and switch 2.
  • the monitoring time is updated to the time obtained by adding the maximum processing time of endpoint 2 to the time obtained by doubling the propagation delay time between endpoint 1 and endpoint 2. Is done. Note that the monitoring time is not updated depending on the RTNP received from the endpoint 5. When the monitoring time is updated as described above, it is shortened by the amount obtained by subtracting the pseudo response time calculated for the endpoint 2 from the response time for the memory 3 as compared with the case where the processing of the present embodiment is not used. It will be.
  • FIG. 27 shows a state in which the module that has received the non-posted request transmitted by the endpoint 1 transmits RTNP to the endpoint 1.
  • a solid arrow indicates a transfer of a non-posted request
  • a dotted arrow indicates a transfer of an RTNP, but the non-posted request arrow is also a dotted line in the module.
  • the switch 1 that has received the non-posted request transmitted by the endpoint 1 transmits RTNP to the endpoint 1.
  • the endpoint 5 that has received the non-posted request transmitted by the endpoint 1 via the switch 1 transmits RTNP to the endpoint 1. Further, since the end point 5 is a completer, the non-posted request is processed in the request processing unit, and a non-posted response indicating the processing result is transmitted to the end point 1.
  • FIG. 27 shows how the monitoring time in the monitoring time register 115 of the endpoint 1 is updated.
  • the length in the vertical direction represents the length of time.
  • a monitoring timer is started when the endpoint 1 transmits a non-posted request.
  • the monitoring time is updated to the vertical length of block 271.
  • the monitoring time is updated to the vertical length of block 272.
  • the monitoring timer is stopped.
  • a colored portion is a portion corresponding to the propagation delay time
  • an uncolored portion is a portion corresponding to the maximum processing time.
  • FIG. 28 shows a state in which the module that has received the non-posted request transmitted by the endpoint 1 transmits the RTNP to the endpoint 1.
  • a solid arrow indicates a transfer of a non-posted request
  • a dotted arrow indicates a transfer of an RTNP, but the non-posted request arrow is also a dotted line in the module.
  • the switch 1 that has received the non-posted request transmitted by the endpoint 1 has already transmitted the RTNP to the endpoint 1, it does not transmit the RTNP.
  • the switch 2 that has received the non-posted request transmitted by the endpoint 1 via the switch 1 transmits RTNP to the endpoint 1.
  • the endpoint 2 that has received the non-posted request transmitted by the endpoint 1 via the switch 2 transmits the RTNP to the endpoint 1. Further, since the end point 2 is a completer, the non-posted request is processed in the request processing unit, and a non-posted response indicating the processing result is transmitted to the end point 1.
  • FIG. 28 shows how the monitoring time in the monitoring time register 115 of the endpoint 1 is updated.
  • the vertical length of the block 281 is assumed to be the same as the vertical length of the block 272 in FIG.
  • FIG. 29 shortening of the monitoring time when the operation described with reference to FIGS. 27 and 28 is performed will be described.
  • the upper part of FIG. 29 is the same as that shown in FIG.
  • the monitoring time is updated by the RTNP received by the endpoint 1 from the switch 1, the endpoint 5, and the endpoint 2.
  • the horizontal length in FIG. 29 represents the length of time.
  • the monitoring time is updated to a time corresponding to twice the propagation delay time between endpoint 1 and switch 1.
  • endpoint 1 receives RTNP from endpoint 5 the monitoring time is updated to the time obtained by adding the maximum processing time of endpoint 5 to the time obtained by doubling the propagation delay time between endpoint 1 and endpoint 5. Is done. .
  • the monitoring time is updated to the time obtained by adding the maximum processing time of endpoint 2 to the time obtained by doubling the propagation delay time between endpoint 1 and endpoint 2. Is done. Note that the monitoring time is not updated depending on the RTNP received from the switch 2. When the monitoring time is updated as described above, it is shortened by the amount obtained by subtracting the pseudo response time calculated for the endpoint 2 from the response time for the memory 3 as compared with the case where the processing of the present embodiment is not used. It will be. This is theoretically the same as the shortening shown in FIG.
  • FIG. 30 shows the time settings at the end point (abbreviated as EP in FIG. 30) 1, the end point 2, and the end point 3.
  • the time is similarly set for modules other than the end points 1 to 3.
  • the time managed by the CPU is copied to the time timer at each port of each module (ie, upstream port and downstream port). In each port, the time is managed based on the time copied to the time timer.
  • the time T1 is copied to the end point 1 by the CPU, and thereafter, the time advances by time T2, T3, T4.
  • the time point T2 is copied to the end point 2 by the CPU, and thereafter the time is advanced to time points T3, T4,.
  • the time T3 is copied to the end point 3 by the CPU, and then the time T4,... Is advanced. By doing so, the time in each module can be synchronized.
  • the order in which the CPU sets the time is not limited to the example shown in FIG.
  • the present invention is not limited to this.
  • the functional block configuration of the requester, completer, and switch described above may not match the actual program module configuration.
  • each table described above is an example, and the configuration as described above is not necessarily required. Further, in the processing flow, the processing order can be changed if the processing result does not change. Further, it may be executed in parallel.
  • the information processing apparatus receives (A) a packet including the time at which the other apparatus has received the request from another apparatus that has received the request transmitted by the information processing apparatus.
  • a calculation unit that calculates a first time based on a difference between a time when the information processing apparatus transmits the request and a time when another apparatus receives the request; and (B) the calculated first time It is determined whether it is longer than the monitoring time that is the time for monitoring the response, and when it is determined that the response time is longer, the updating unit updates the monitoring time with the first time.
  • the monitoring time is updated with the first time calculated based on the difference as described above, the monitoring time can be brought closer to the actual response time.
  • the monitoring time is not set to an unnecessarily long time.
  • the packet includes the time required for the calculation unit described above to execute processing for the request (a1)
  • the first time may be calculated by adding the time required to execute the processing for the request to the time obtained by doubling the difference from the time.
  • Response time includes time to process the request. Therefore, the monitoring time can be set appropriately as described above.
  • the time when the information processing apparatus transmits the request and the request from another apparatus may be calculated by doubling the difference from the time of receiving. In this way, the first time can be calculated even for a device that exists on the route to the device that processes the request.
  • the information processing apparatus includes (C) a generation unit that generates a packet including a time when a request is received from another apparatus, and (D) a packet generated by the generation unit.
  • a transmission unit that transmits to another device. In this way, the time required for the request to propagate can be calculated in another device.
  • the generation unit may generate a packet including a time required to process the request and a time when the request is received. In this way, the time from when the other device transmits the request to when the response is received can be calculated by the other device.
  • the information processing apparatus determines whether the packet has already been transmitted to the other apparatus. You may further have the judgment part which instruct
  • the information processing apparatus may be a module in a PCI (Peripheral Component Component) Interconnect system.
  • PCI Peripheral Component Component
  • the information processing system includes (F) a first information processing apparatus and (G) a second information processing apparatus. Then, the first information processing apparatus described above (f1) generates a packet including the time when the request is received from the second information processing apparatus, and (f2) generates the packet generated by the generation unit. And a transmission unit for transmitting to the second information processing apparatus.
  • the second information processing apparatus described above receives (g1) a packet including the time when the first information processing apparatus received the request from the first information processing apparatus
  • the second information processing apparatus A calculation unit that calculates a first time based on a difference between a time at which the information processing device transmits the request and a time at which the first information processing device receives the request; and (g2) the calculated first time. It is determined whether it is longer than the monitoring time that is the time for monitoring the response, and when it is determined that the response time is longer, the updating unit updates the monitoring time with the first time.
  • (H) a packet including the time at which the other device receives the request is received from another device that has received the request transmitted by the information processing device.
  • the first time is calculated based on the difference between the time when the information processing apparatus transmits the request and the time when the other apparatus receives the request, and (I) the calculated first time is monitored for response. It is determined whether the monitoring time is longer than the monitoring time, and when it is determined that the monitoring time is longer, the monitoring time is updated with the first time.
  • a program for causing a computer to perform the processing according to the above method can be created.
  • the program can be a computer-readable storage medium such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, or a hard disk. It is stored in a storage device.
  • the intermediate processing result is temporarily stored in a storage device such as a main memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 本実施の形態に係る情報処理装置は、情報処理装置が送信した要求を受信した他の装置から、当該他の装置が要求を受信した時刻を含むパケットを受信した場合に、情報処理装置が要求を送信した時刻と他の装置が要求を受信した時刻との差に基づき、第1の時間を算出する算出部と、算出された第1の時間が応答を監視する時間である監視時間より長いか判断し、長いと判断された場合に、監視時間を第1の時間で更新する更新部とを有する。

Description

情報処理装置、情報処理方法及び情報処理システム
 応答を監視する技術に関する。
 ハンドシェイクにおいて、予め定められた時間(以下、監視時間と呼ぶ)内に要求先から応答が返ってくるか否かを要求元が監視する技術が存在する。監視時間内に応答が返ってこなければ、障害によって要求元が停留状態に陥るのを防止するため、要求元はハンドシェイクを中断する。
 監視時間をあまりに長い時間に設定すると、異常が発生した後異常に対処するまでの時間が長くなるため、異常が拡大することがある。従って、監視時間は、実際に要求元が要求を送信した後要求先から応答を受信するまでに要する時間(以下、応答時間と呼ぶ)からかけ離れた時間にならないように設定することが望ましい。
 従来、応答時間の監視について、以下のような技術が存在する。具体的には、デバイスは、パケットを対向デバイスに送信すると、パケットをリプレイバッファに保存する。デバイスは、対向デバイスから送られてくるDLLP(Data Link Layer Packet)をタイマ設定値内に受信するか否かに基づき、リプレイバッファに保存したパケットを再送信するか否かを制御する。デバイスは、パケットを送信してから該パケットに対するDLLPを受信するまでの経過時間をカウントし、カウンタ値に基づいてタイマ設定値を補正する。
 しかし、この技術は、例えばPCI(Peripheral Component Interconnect) Expressにおけるデータリンク層のように、再送規定があり且つ通信相手が1つであるパケット通信を対象としている。そのため、例えばPCI Expressにおけるトランザクション層のように、再送規定が無く且つ通信相手が1つ以上であるパケット通信については考慮されていない。
特開2011-39897号公報
 1つの側面では、本発明の目的は、応答を監視する時間を実際の応答時間に近付けるための技術を提供することである。
 本発明に係る情報処理装置は、情報処理装置が送信した要求を受信した他の装置から、当該他の装置が要求を受信した時刻を含むパケットを受信した場合に、情報処理装置が要求を送信した時刻と他の装置が要求を受信した時刻との差に基づき、第1の時間を算出する算出部と、算出された第1の時間が応答を監視する時間である監視時間より長いか判断し、長いと判断した場合に、監視時間を第1の時間で更新する更新部とを有する。
 応答を監視する時間を実際の応答時間に近付けることができるようになる。
図1は、ハンドシェイクについて説明するための図である。 図2は、ハンドシェイクにおいて障害が発生したケースを示す図である。 図3は、ハンドシェイクにおいて障害が発生したケースを示す図である。 図4は、ハンドシェイクにおいて障害が発生したケースを示す図である。 図5は、ハンドシェイクにおいて応答時間の監視を行っている間において障害が発生したケースを示す図である。 図6は、ハンドシェイクにおいて応答時間の監視を行っている間において障害が発生したケースを示す図である。 図7は、PCI Expressを利用したシステムの一例を示す図である。 図8は、PCI Expressにおけるパケット通信について説明するための図である。 図9は、ポステッド要求について説明するための図である。 図10は、ノンポステッド要求について説明するための図である。 図11は、ルートコンプレックスが複数の要求を出力する処理について説明するための図である。 図12は、PCI Expressにおいて使用される共通アドレス空間の一例を示す図である。 図13は、PCI Expressを利用したシステムの一例を示す図である。 図14は、実際の応答時間と予測の応答時間とを比較するための図である。 図15は、本実施の形態におけるシステムの概要を示す図である。 図16は、リクエスタの構成を示す図である。 図17Aは、コンプリータの構成を示す図である。 図17Bは、コンプリータにおける受信部の構成を示す図である。 図18は、スイッチの構成を示す図である。 図19は、履歴管理テーブルに格納されるデータの一例を示す図である。 図20は、リクエスタが行う処理の処理フローを示す図である。 図21は、コンプリータが生成するRTNPの一例を示す図である。 図22は、スイッチが生成するRTNPの一例を示す図である。 図23は、コンプリータ及びスイッチが行う処理の処理フローを示す図である。 図24は、エンドポイント1がエンドポイント2に対してノンポステッド要求を送信した場合における監視時間の更新について説明するための図である。 図25は、エンドポイント1がエンドポイント5に対してノンポステッド要求を送信した場合における監視時間の更新について説明するための図である。 図26は、監視時間の短縮について説明するための図である。 図27は、エンドポイント1がエンドポイント5に対してノンポステッド要求を送信した場合における監視時間の更新について説明するための図である。 図28は、エンドポイント1がエンドポイント2に対してノンポステッド要求を送信した場合における監視時間の更新について説明するための図である。 図29は、監視時間の短縮について説明するための図である。 図30は、時刻の設定について説明するための図である。
 まず、図1乃至図14を用いて、本実施の形態に関連する技術について簡単に説明する。
 図1を用いて、ハンドシェイクについて説明する。図1においては、要求元のノードがノードAであり、要求先のノードがノードBである。すなわち、ノードAがノードBに要求を送信し、ノードBが要求の処理を行い、ノードBが要求に対する応答をノードAに送信する。ノードBにおいては、要求処理部が要求の処理を行う。
 ノードAが要求をノードBに送信した後ノードBから応答を受信するまでの時間には、要求が伝搬するのに要する時間Tと、ノードBが要求の処理をする時間Tと、応答が伝搬するのに要する時間Tとが含まれる。ノードAが要求をノードBに送信した後ノードBから応答を受信するまでの間は、ノードAは待ち状態である。一方、ノードBは、要求の処理をする間以外において待ち状態である。
 図2乃至図4に、ハンドシェイクにおいて障害が発生したケースの一例を示す。これらのケースにおいては、応答時間の監視を行っていないとする。図2は、ノードBが要求を受信した後応答を送信する前において障害が発生したケースである。図3は、ノードAが要求を送信した後ノードBが要求を受信する前に障害が発生したケースである。図4は、ノードBが応答を送信した後ノードAが応答を受信する前に障害が発生したケースである。いずれのケースにおいても、ノードAは停留状態に陥る。
 図5及び図6に、ハンドシェイクにおいて応答時間の監視を行っている間にノードBにおいて障害が発生したケースを示す。図5及び図6においては、ノードAにおける監視タイマが応答を監視する。図5及び図6のいずれも、監視時間が経過しても応答が返ってこないため、ノードAにおいて異常処理(すなわち、異常に対処するための処理)を行う。但し、図5のケースの方が監視時間が短いため、障害が発生してから異常処理を開始するまでの時間が短いので、障害が拡大する前に異常処理を行うことができる。一方、図6のケースは、図5のケースよりも監視時間が長いため、障害が発生してから異常処理を開始するまでの時間が長いので、異常処理を開始する際には異常が拡大している。このように、監視時間が過剰に長く設定されると異常を拡大させるおそれがある。しかし、監視時間を単純に短くすると、本来は行わなくてもよい異常処理を頻繁に行うことになってしまう。
 図7に、PCI Expressを利用したシステムの一例を示す。PCI Expressは、コンピュータの内部インタフェースに適用される規格である。図7に示したシステムには、CPU(Central Processing Unit)と、ルートコンプレックス(Root Complex)というモジュールと、スイッチというモジュールと、エンドポイント(EndPoint)というモジュールとが含まれる。ルートコンプレックスは、例えばメモリブリッジである。スイッチは、例えばスイッチングを行うスイッチング回路である。エンドポイントは、例えば入出力デバイス又はそのコントローラである。各モジュールにおいて、CPU側のポートはアップストリームポートと呼ばれ、エンドポイント側のポートはダウンストリームポートと呼ばれる。
 ルートコンプレックスは、リクエスタ機能を有しているため、要求を送信することができる。ルートコンプレックスは、要求を処理する機能であるコンプリータ機能を有していることもある。エンドポイントは、コンプリータ機能を有している。エンドポイントは、リクエスタ機能を有している場合もある。以下では、リクエスタ機能を有するモジュールをリクエスタと呼び、コンプリータ機能を有するモジュールをコンプリータと呼ぶ。
 図8を用いて、PCI Expressにおけるパケット通信について説明する。PCI Expressにおけるパケット通信の制御構造は、トランザクション層と、データリンク層と、物理層とを含む。PCI Expressにおける要求及び応答は、トランザクション層を経由する。すなわち、ルートコンプレックスが送信する要求に対しては、トランザクション層、データリンク層及び物理層の処理が行われる。エンドポイントが送信する要求に対しては、トランザクション層、データリンク層及び物理層の処理が行われる。また、ルートコンプレックスとエンドポイントとの間においてパケットの中継を行うスイッチにおいても、トランザクション層、データリンク層及び物理層の処理が行われる。
 PCI Expressにおける要求には、応答が不要であるポステッド要求と、応答を要するノンポステッド要求とが含まれる。ポステッド要求は、例えばメモリへのデータ書き込み要求であり、ノンポステッド要求は、例えばメモリからのデータ読み込み要求である。図9を用いて、ポステッド要求について説明する。図9においては、ルートコンプレックスがポステッド要求を送信し、スイッチがポステッド要求を受信する。スイッチは、受信したポステッド要求をエンドポイントに転送する。エンドポイントにおける要求処理部は、受信したポステッド要求の処理を行う。ポステッド要求の場合、ルートコンプレックスには待ち状態が発生しない。そのため、ルートコンプレックスにおける監視タイマは動作しない。
 図10を用いて、ノンポステッド要求について説明する。図10においては、ルートコンプレックスがノンポステッド要求をスイッチに送信し、スイッチがノンポステッド要求をエンドポイントに転送する。エンドポイントにおける要求処理部は、受信したノンポステッド要求の処理を行う。ノンポステッド要求の処理が完了すると、エンドポイントは、ノンポステッド要求に対するノンポステッド応答をスイッチに送信し、スイッチはノンポステッド応答をルートコンプレックスに転送する。ノンポステッド要求の場合、リクエスタであるルートコンプレックスはノンポステッド応答を待つため、監視タイマが動作する。監視タイマは、ルートコンプレックスがノンポステッド要求を送信した際に応答時間の計測を開始し、ルートコンプレックスがノンポステッド応答を受信すると応答時間の計測を停止する。応答時間が予め定められた監視時間を超えていなければ、異常処理は行われない。
 図11を用いて、ルートコンプレックスが複数の要求を出力する処理について説明する。PCI Expressにおいては、ルートコンプレックスが複数のノンポステッド要求(図11においては、NP要求と略されている)を一度に送信することができる。図11においては、ルートコンプレックスが4つのノンポステッド要求を送信し、エンドポイントにおける要求処理部が、4つの要求の処理を並行して行っている。エンドポイントは、処理が完了したノンポステッド要求に対するノンポステッド応答(図11においては、NP応答と略されている)を順次ルートコンプレックスに送信する。ルートコンプレックスにおいては、4つの監視タイマが起動し、各々が応答を監視する。
 図12に、PCI Expressにおいて使用される共通アドレス空間の一例を示す。図12には、アドレス00000000hからアドレスFFFFFFFFhまでの共通アドレス空間が示されており、メモリ1乃至4及びIO(Input and Output)1乃至3の制御レジスタにアドレス空間が割り当てられている。メモリ1乃至4に割り当てられた共通アドレス空間は、1つのメモリに対して割り当てられたアドレス空間であると認識される。斜線が付された部分は、未割り当てのアドレス空間である。共通アドレス空間を使用させるのは、PCI Expressにおいては汎用性が重視されているためである。共通アドレス空間を使用させることで、リクエスタは、コンプリータ及びアクセス経路を意識しなくて済む。但し、このようにすると、リクエスタが実際にどこにアクセスをするのかをシステム起動時に正確に知ることができない。そのため、管理者等が、システム内における最大の応答時間を見積もり、その最大の応答時間に基づき(例えば、所定の係数を乗じることにより)監視時間を算出する。その結果、監視時間が実際の応答時間よりはるかに長い時間になることがある。
 例えば図13に示すようなPCI Expressのシステムにおけるエンドポイント1について監視時間を設定することを考える。図13において、「IO」はIOデバイスを表し、EPはエンドポイントを表し、SWはスイッチを表し、RCはルートコンプレックスを表す。その他の記号については、図7と同様である。図13において、実線の矢印は実際のアクセスルートを表し、点線の矢印は予測のアドレスルートを表す。実線の矢印と点線の矢印とが重なる部分については、点線の矢印を省略している。
 ここで、エンドポイント1が実際にアクセスするのはメモリ2及びメモリ4であるとする。管理者等がこの事実をシステムの起動時に知ることができれば、メモリ2又はメモリ4についての応答時間に基づいて監視時間を求めることができる。しかしながら、管理者等はこの事実をシステムの起動時に知ることはできないので、エンドポイント1がメモリ1乃至4のいずれにもアクセスすると仮定する。従って、監視時間は、システム内において最大の応答時間である、メモリ3についての応答時間に基づいて求められることになる。
 図14は、図13に示したシステムにおける実際の応答時間と予測の応答時間とを比較するための図である。図14には、メモリ1乃至4の各々について、応答時間の内訳が示されている。応答時間には、モジュール内の通過時間と、モジュール間の通過時間と、メモリへのアクセス時間とが含まれる。
 図14に示すように、メモリ1乃至4のうちメモリ3についての応答時間が最も長くなるので、監視時間はメモリ3についての応答時間に基づいて求められる。メモリ3についての応答時間は、直線141と直線143との間の時間に相当する。しかし、エンドポイント1は実際にはメモリ1及び3にはアクセスしていないので、実際の応答時間のうち最大の応答時間はメモリ2についての応答時間である。メモリ2についての応答時間は、直線141と直線142との間の時間に相当する。よって、直線142と直線143との間の分だけ長い応答時間を求めていることになる。これにより、監視時間が過剰に長く設定され、障害が発生してから異常処理を開始するまでの時間が長くなるため、システムにおいて発生した障害が拡大するおそれがある。
 そこで、以下では、PCI Expressのシステムにおいて監視時間を実際の応答時間に近付ける方法について説明する。
 図15に、本実施の形態におけるシステムの概要を示す。図15に示したシステムは、パーソナルコンピュータ等のコンピュータ内に構築されたPCI Expressのシステムである。図15において、RCはルートコンプレックスを表し、IOはIOデバイスを表し、EPはエンドポイントを表し、SWはスイッチを表し、UPはアップストリームポートを表し、DPはダウンストリームポートを表し、RQはリクエスタ機能を表し、CPはコンプリータ機能を表す。
 ルートコンプレックスは、リクエスタ機能及びコンプリータ機能を有する。ルートコンプレックスのダウンストリームポートは、スイッチ1のアップストリームポートに接続されている。また、ルートコンプレックスは、IOデバイス1、CPU1及びメモリ1に接続されている。
 スイッチ1のダウンストリームポートは、スイッチ2のアップストリームポートと、エンドポイント1のアップストリームポートと、エンドポイント5のアップストリームポートとに接続されている。エンドポイント1は、コンプリータ機能及びリクエスタ機能を有しており、IOデバイス2に接続されている。エンドポイント5は、コンプリータ機能を有しており、メモリ4に接続されている。
 スイッチ2のダウンストリームポートは、スイッチ3のアップストリームポートと、エンドポイント2のアップストリームポートとに接続されている。エンドポイント2は、コンプリータ機能を有しており、メモリ2に接続されている。
 スイッチ3のダウンストリームポートは、エンドポイント4のアップストリームポートと、エンドポイント3のアップストリームポートとに接続されている。エンドポイント4は、コンプリータ機能を有しており、メモリ3に接続されている。エンドポイント3は、コンプリータ機能及びリクエスタ機能を有しており、IOデバイス3に接続されている。
 なお、請求項における「情報処理装置」は、図15におけるルートコンプレックス、スイッチ及びエンドポイント等のモジュールに対応する。
 図16に、リクエスタ1の構成を示す。リクエスタ1は、物理層処理部101と、データリンク層処理部102と、監視部103と、送信部104と、受信部105と、時刻タイマ121を含むコンフィグレーションレジスタ106とを有する。また、監視部103は、受信時刻レジスタ111と、送信時刻レジスタ112と、第1処理部113と、第2処理部114と、監視時間レジスタ115と、監視タイマ116と、第3処理部117とを含む。なお、監視タイマ116を複数有してもよい。
 送信部104は、ノンポステッド要求パケット(図16においては、NP要求パケットと略されている)及びポステッド要求パケット(図16においては、P要求パケットと略されている)等を、データリンク層処理部102に出力する。また、送信部104は、ノンポステッド要求パケットの送信時刻を監視タイマ116に出力すると共に、送信時刻レジスタ112に格納する。
 データリンク層処理部102は、送信するパケットにシーケンス番号及びCRC(Cyclic Redundancy Check)等を付加し、データリンク層パケットを生成する処理等を実行する。
 物理層処理部101は、データリンク層処理部102から受け取ったデータリンク層パケットを物理的な信号に変換し、図示しない伝送路に送出する処理等を実行する。
 受信部105は、ノンポステッド応答パケットと、ポステッド要求パケットと、ノンポステッド要求パケットの受信時刻を通知するためのRTNP(Receiving Time Noticing Packetの略)とを物理層処理部101及びデータリンク層処理部102を介して受信する。受信部105は、ノンポステッド応答パケットを受信した場合には、ノンポステッド応答パケットの受信時刻を監視タイマ116に出力する。また、受信部105は、RTNPを受信した場合には、RTNPに含まれる受信時刻及び最大処理時間(最大処理時間は含まれない場合もある)を受信時刻レジスタ111に格納する。なお、RTNPについては後で詳細に説明する。
 第1処理部113は、受信時刻レジスタ111に最大処理時間が格納されていない場合には、送信時刻レジスタ112に格納されている送信時刻と受信時刻レジスタ111に格納されている受信時刻との差(すなわち、要求の伝搬遅延時間(Propagation Delay Time))を算出して2倍することにより、擬似的に応答時間(以下、擬似応答時間と呼ぶ)を算出する。そして、第1処理部113は、擬似応答時間を第2処理部114の端子Aに出力する。本来、応答時間とは、要求を送信してから応答が返ってくるまでの時間であるから、要求の伝搬遅延時間と、要求に対する処理を行う時間と、応答の伝搬遅延時間とを加えたものである。しかし、送信時刻レジスタ112に最大処理時間が格納されておらず(すなわち、コンプリータまでの経路上に存在するモジュールからのRTNPであり)、また応答の伝搬遅延時間を求めることができない。そこで、要求の伝搬遅延時間を2倍することにより擬似応答時間を算出する。一方、第1処理部113は、送信時刻レジスタ112に最大処理時間が格納されている場合には、伝搬遅延時間を2倍した時間に最大処理時間を加算することにより擬似応答時間を算出し、第2処理部114の端子Aに出力する。
 第2処理部114は、第1処理部113から受け取った擬似応答時間が監視時間レジスタ115に格納されている監視時間より長い場合に、当該擬似応答時間で監視時間レジスタ115に格納されている監視時間を更新する。なお、監視時間の初期値は、例えば、直結リンクの通信速度から算出された、直結リンクの通過時間の予測値とする。直結リンクの通信速度は、PCI Expressの規格で定められている。
 監視タイマ116は、送信部104から受け取った送信時刻と受信部105から受け取った受信時刻との差を算出することにより、ノンポステッド要求について応答時間を算出する。また、監視タイマ116は、算出された応答時間を第3処理部117の端子Aに出力する。
 第3処理部117は、監視タイマ116から受け取った応答時間が、第3処理部117における端子Bから入力された監視時間より長い場合に、異常が発生したことをCPUに通知する。
 コンフィグレーションレジスタ106における時刻タイマ121は、時刻の情報を保持する。
 なお、図16においては、リクエスタ1がノンポステッド要求パケット及びポステッド要求パケットを他の装置から受け取っている。これは、リクエスタ1の配下にデバイス等が存在する場合があり、そのデバイス等がノンポステッド要求パケット及びポステッド要求パケットを送信する場合があるからである。もちろん、リクエスタ1自身がノンポステッド要求パケット及びポステッド要求パケットを生成して送信をする場合もある。図16において、リクエスタ1がノンポステッド応答パケット及びポステッド要求パケットを中継しているのも同様の理由による。
 図17Aに、コンプリータ3の構成を示す。コンプリータ3は、受信部31と、送信部32と、履歴管理テーブル33と、時刻タイマ35を含むコンフィグレーションレジスタ34と、物理層処理部36と、データリンク層処理部37とを有する。
 送信部32は、ノンポステッド応答パケット(図17Aにおいては、NP応答パケットと略されている)、ポステッド要求パケット(図17Aにおいては、P要求パケットと略されている)及びRTNP等を、データリンク層処理部37に出力する。
 データリンク層処理部37は、送信するパケットにシーケンス番号及びCRC(Cyclic Redundancy Check)等を付加し、データリンク層パケットを生成する処理等を実行する。
 物理層処理部36は、データリンク層処理部37から受け取ったデータリンク層パケットを物理的な信号に変換し、図示しない伝送路に送出する処理等を実行する。
 受信部31は、ノンポステッド要求パケット及びポステッド要求パケットを物理層処理部36及びデータリンク層処理部37を介して受信する処理等を実行する。
 コンフィグレーションレジスタ34における時刻タイマ35は、時刻の情報を保持する。
 図17Bに、コンプリータ3における受信部31の構成を示す。受信部31は、生成部311と、判断部312とを有する。生成部311は、ノンポステッド要求の受信時刻及び最大処理時間を含むRTNPを生成し、送信部32に出力する。判断部312は、ノンポステッド要求に含まれるリクエスタIDに対応する送信履歴の情報を抽出し、ノンポステッド要求の要求元のリクエスタにRTNPを送信済みであるか判断する。
 図18に、スイッチ5の構成を示す。スイッチ5は、アップストリームポート51と、内部バス52と、ダウンストリームポート53及び54とを有する。アップストリームポート51と、ダウンストリームポート53及び54とは、内部バス52を介して接続されている。
 アップストリームポート51は、物理層処理部511と、データリンク層処理部512と、送信部513と、受信部514と、時刻タイマ5150を含むコンフィグレーションレジスタ515とを有する。
 送信部513は、ノンポステッド要求パケット(図18においては、NP要求パケットと略されている)及びポステッド要求パケット(図18においては、P要求パケットと略されている)等を、データリンク層処理部512に出力する。
 データリンク層処理部512は、送信するパケットにシーケンス番号及びCRC(Cyclic Redundancy Check)等を付加し、データリンク層パケットを生成する処理等を実行する。
 物理層処理部511は、データリンク層処理部512から受け取ったデータリンク層パケットを物理的な信号に変換し、図示しない伝送路に送出する処理等を実行する。
 受信部514は、ノンポステッド応答パケット及びポステッド要求パケットを物理層処理部511及びデータリンク層処理部512を介して受信する。
 コンフィグレーションレジスタ515における時刻タイマ5150は、時刻の情報を保持する。
 ダウンストリームポート53は、物理層処理部532と、データリンク層処理部531と、受信部534と、送信部533と、履歴管理テーブル537と、時刻タイマ536を含むコンフィグレーションレジスタ535とを有する。
 送信部533は、ノンポステッド応答パケット(図18においては、NP応答パケットと略されている)、ポステッド要求パケット(図18においては、P要求パケットと略されている)及びRTNP等を、データリンク層処理部531に出力する。
 データリンク層処理部531は、送信するパケットにシーケンス番号及びCRC(Cyclic Redundancy Check)等を付加し、データリンク層パケットを生成する処理等を実行する。
 物理層処理部532は、データリンク層処理部531から受け取ったデータリンク層パケットを物理的な信号に変換し、図示しない伝送路に送出する処理等を実行する。
 受信部534は、ノンポステッド要求パケット及びポステッド要求パケットを物理層処理部532及びデータリンク層処理部531を介して受信する処理等を実行する。
 コンフィグレーションレジスタ535における時刻タイマ536は、時刻の情報を保持する。
 なお、ダウンストリームポート54の構成はダウンストリームポート53の構成と同じであるので、説明を省略する。また、スイッチ5のダウンストリームポート53及び54における受信部534及び544は、コンプリータ3の受信部31と同様に生成部及び判断部を有しているが、図17Bに示した構成と同じであるので、説明を省略する。
 図19に、コンプリータ3及びスイッチ5における履歴管理テーブル33、537及び547に格納されるデータの一例を示す。図19の例では、リクエスタID(RQID)と、送信履歴の情報とが格納される。リクエスタIDは、CPUが初期設定の際に各アップリストリームポート及びダウンストリームポートに割り当てる。CPUは、例えばトランザクションIDをリクエスタIDとして利用する。
 次に、図20乃至図22を用いて、リクエスタ1の動作について説明する。まず、リクエスタ1の送信部104は、ノンポステッド要求パケットを要求先のコンプリータ宛に送信する(図20:ステップS1)。
 受信部105は、RTNPを受信したか判断する(ステップS3)。RTNPを受信していない場合(ステップS3:Noルート)、ステップS11の処理に移行する。
 一方、RTNPを受信した場合(ステップS3:Yesルート)、受信部105は、RTNPに含まれる、ステップS1において送信したノンポステッド要求をRTNPの送信元が受信した時刻を受信時刻レジスタ111に格納する。また、受信部105は、RTNPに最大処理時間が含まれる場合には、最大処理時間を受信時刻レジスタ111に格納する。
 図21に、コンプリータが生成するRTNPの一例を示す。図21に示すRTNPには、ヘッダと、ノンポステッド要求の受信時刻(すなわち、コンプリータがノンポステッド要求を受信した時刻)及び最大処理時間を含むペイロードとが含まれる。最大処理時間とは、コンプリータがノンポステッド要求を処理するのにかかりうる最長の時間である。
 図22に、スイッチが生成するRTNPの一例を示す。図22に示すRTNPには、ヘッダと、ノンポステッド要求の受信時刻(すなわち、スイッチがノンポステッド要求を受信した時刻)を含むペイロードとが含まれる。リクエスタ1からコンプリータまでの経路上にあるスイッチは、ノンポステッド要求の処理をしないので、RTNPには最大処理時間は含まれない。
 図20の説明に戻り、第1処理部113は、擬似応答時間を算出する(ステップS5)。受信したRTNPに最大処理時間が含まれない場合には、送信時刻レジスタ112に格納されている送信時刻と受信時刻レジスタ111に格納されている受信時刻との差である伝搬遅延時間を算出して2倍することにより、擬似応答時間を算出する。受信したRTNPに最大処理時間が含まれる場合には、伝搬遅延時間に最大処理時間を加えた時間を擬似応答時間とする。第1処理部113は、算出した擬似応答時間を第2処理部114の端子Aに出力する。
 第2処理部114は、第1処理部113から受け取った擬似応答時間が監視時間レジスタ115に格納されている監視時間より長いか判断する(ステップS7)。擬似応答時間が監視時間より長くない場合(ステップS7:Noルート)、ステップS11の処理に移行する。
 一方、擬似応答時間が監視時間より長い場合(ステップS7:Yesルート)、第2処理部114は、第1処理部113から受け取った擬似応答時間で監視時間レジスタ115に格納されている監視時間を更新する(ステップS9)。但し、擬似応答時間そのもので監視時間を更新すると、異常処理が頻発することがあるので、擬似応答時間に所定の計数を掛けた時間で更新してもよい。
 そして、受信部105は、ステップS1において送信したノンポステッド要求パケットに対するノンポステッド応答パケットを受信したか判断する(ステップS11)。ノンポステッド応答パケットを受信した場合(ステップS11:Yesルート)、処理を終了する。
 一方、ノンポステッド応答パケットを受信していない場合(ステップS11:Noルート)、第3処理部117は、監視タイマ116から受け取った応答時間が、第3処理部117における端子Bから入力された監視時間より長いか判断する(ステップS13)。応答時間が監視時間より長くない場合(ステップS13:Noルート)、ステップS3の処理に戻る。一方、応答時間が監視時間より長い場合(ステップS13:Yesルート)、第3処理部117は、CPUに異常を通知する(ステップS15)。ステップS15においては、例えば特殊なパケットをCPUに送信することにより通知を行う。そして処理を終了する。
 以上のような処理を実行すれば、擬似的に算出された応答時間で監視時間を更新することができるので、監視時間を実際の応答時間に近づけることができるようになる。これにより、異常から速やかにリカバリできるようになる。
 また、本実施の形態の方法によれば、システムが実際に稼働している最中に監視時間を決定することができ、また監視時間を決定する処理の最中に応答時間の監視を行うことができるようになる。
 次に、図23を用いて、コンプリータ3及びスイッチ5の動作について説明する。コンプリータ3の動作とスイッチ5の動作は基本的には同じであるので、ここではコンプリータ3の動作を例にして説明する。
 まず、コンプリータ3における受信部31は、ノンポステッド要求パケットを受信したか判断する(図23:ステップS21)。ノンポステッド要求パケットを受信していない場合(ステップS21:Noルート)、ステップS21の処理に戻る。
 一方、ノンポステッド要求パケットを受信した場合(ステップS21:Yesルート)、判断部312は、ノンポステッド要求の送信元のリクエスタについてRTNPを送信済みか判断する(ステップS23)。ステップS23においては、ノンポステッド要求パケットに含まれるリクエスタIDに対応する送信履歴の情報を履歴管理テーブル33から抽出し、抽出された送信履歴の情報が「送信済み」を表しているか否かにより判断を行う。
 送信済みである場合(ステップS25:Yesルート)、ステップS31の処理に移行する。一方、送信済みではない場合(ステップS25:Noルート)、生成部311は、ノンポステッド要求パケットの受信時刻及び最大処理時間を含むRTNPを生成する。そして、送信部32は、RTNPをリクエスタ宛に送信する(ステップS27)。最大処理時間とは、コンプリータがノンポステッド要求を処理するのにかかりうる最長の時間である。最大処理時間は、コンプリータが管理するメモリ領域等に予め格納されている。そして、送信部32は、送信元のリクエスタのリクエスタIDに対応する送信履歴の情報を「送信済み」に設定する(ステップS29)。
 送信部32は、ノンポステッド応答パケットを送信するタイミングになったか判断する(ステップS31)。ステップS31においては、例えば、ノンポステッド要求の処理が完了したか否かにより判断を行う。
 ノンポステッド応答パケットを送信するタイミングになっていない場合(ステップS31:Noルート)、ステップS31の処理に戻る。一方、ノンポステッド応答パケットを送信するタイミングになった場合(ステップS31:Yesルート)、送信部32は、ノンポステッド応答パケットを、要求元のリクエスタ宛に送信する(ステップS33)。そして処理を終了する。
 以上のような処理を実行すれば、リクエスタがRTNPに含まれる情報を利用して擬似的な応答時間を算出することができるようになる。
 次に、図24乃至図29を用いて、本実施の形態におけるシステムの動作を具体的に説明する。これらの図においては、EPはエンドポイントを表し、SWはスイッチを表し、RCはルートコンプレックスを表し、NP要求はノンポステッド要求を表す。
 まず、図24を用いて、エンドポイント1が最初にエンドポイント2に対してノンポステッド要求を送信した場合における監視時間の更新について説明する。図24の上段には、エンドポイント1が送信したノンポステッド要求を受信したモジュールがRTNPをエンドポイント1に送信する様子が示されている。実線の矢印はノンポステッド要求の転送を表しており、点線の矢印はRTNPの転送を表しているが、モジュール内においてはノンポステッド要求の矢印も点線としている。
 エンドポイント1が送信したノンポステッド要求を受信したスイッチ1は、RTNPをエンドポイント1に送信する。エンドポイント1が送信したノンポステッド要求を、スイッチ1を介して受信したスイッチ2は、RTNPをエンドポイント1に送信する。エンドポイント1が送信したノンポステッド要求を、スイッチ2を介して受信したエンドポイント2は、RTNPをエンドポイント1に送信する。また、エンドポイント2はコンプリータであるので、ノンポステッド要求の処理を要求処理部において行い、処理結果を示すノンポステッド応答をエンドポイント1に送信する。
 図24の下段には、エンドポイント1の監視時間レジスタ115における監視時間が更新される様子を示している。縦方向の長さは時間の長さを表している。まず、エンドポイント1がノンポステッド要求を送信した際に監視タイマが起動する。エンドポイント1がスイッチ1からRTNPを受信すると、監視時間はブロック241の縦方向の長さに更新される。エンドポイント1がスイッチ2からRTNPを受信すると、監視時間はブロック242の縦方向の長さに更新される。エンドポイント1がエンドポイント2からRTNPを受信すると、監視時間はブロック243の縦方向の長さに更新される。そして、エンドポイント1がノンポステッド応答を受信すると、監視タイマが停止する。なお、ブロックのうち色付けされた部分は伝搬遅延時間に相当する部分であり、色付けされていない部分は最大処理時間に相当する部分である。
 図25を用いて、エンドポイント1がエンドポイント2に対してノンポステッド要求を送信した後に、エンドポイント1がエンドポイント5に対してノンポステッド要求を送信した場合における監視時間の更新について説明する。
 図25の上段には、エンドポイント1が送信したノンポステッド要求を受信したモジュールがRTNPをエンドポイント1に送信する様子が示されている。実線の矢印はノンポステッド要求の転送を表しており、点線の矢印はRTNPの転送を表しているが、モジュール内においてはノンポステッド要求の矢印も点線としている。
 エンドポイント1が送信したノンポステッド要求を受信したスイッチ1は、RTNPを既にエンドポイント1に送信済みであるので、RTNPを送信しない。エンドポイント1が送信したノンポステッド要求を、スイッチ1を介して受信したエンドポイント5は、RTNPをエンドポイント1に送信する。また、エンドポイント5はコンプリータであるので、ノンポステッド要求の処理を要求処理部において行い、処理結果を示すノンポステッド応答をエンドポイント1に送信する。
 図25の下段には、エンドポイント1の監視時間レジスタ115における監視時間が更新される様子を示している。ブロック251の縦方向の長さは、図24におけるブロック243の縦方向の長さと同じであるとする。まず、エンドポイント1がノンポステッド要求を送信した際に監視タイマが起動する。エンドポイント1がエンドポイント5からRTNPを受信した際、擬似応答時間は監視時間より短いと判断されるので、監視時間は更新されない。そして、エンドポイント1がノンポステッド応答を受信すると、監視タイマが停止する。
 図26を用いて、図24及び図25を用いて説明した動作が行われた場合における監視時間の短縮について説明する。図26の上段は、図14に示したものと同じであるので、説明を省略する。図26の下段には、エンドポイント1がスイッチ1、スイッチ2及びエンドポイント2から受信したRTNPによって監視時間が更新される様子を示している。図26の横方向の長さは、時間の長さを表している。エンドポイント1がスイッチ1からRTNPを受信すると、監視時間は、エンドポイント1とスイッチ1との間の伝搬遅延時間の2倍に相当する時間に更新される。エンドポイント1がスイッチ2からRTNPを受信すると、監視時間は、エンドポイント1とスイッチ2との間の伝搬遅延時間の2倍に相当する時間に更新される。エンドポイント1がエンドポイント2からRTNPを受信すると、監視時間は、エンドポイント1とエンドポイント2との間の伝搬遅延時間を2倍した時間にエンドポイント2の最大処理時間を加えた時間に更新される。なお、エンドポイント5から受信したRTNPによっては、監視時間は更新されない。以上のように監視時間が更新されると、本実施の形態の処理を利用しない場合と比べると、メモリ3についての応答時間からエンドポイント2について算出した擬似応答時間を差し引いた分だけ短縮されることになる。
 次に、図27を用いて、エンドポイント1が最初にエンドポイント5に対してノンポステッド要求を送信した場合における監視時間の更新について説明する。図27の上段には、エンドポイント1が送信したノンポステッド要求を受信したモジュールがRTNPをエンドポイント1に送信する様子が示されている。実線の矢印はノンポステッド要求の転送を表しており、点線の矢印はRTNPの転送を表しているが、モジュール内においてはノンポステッド要求の矢印も点線としている。
 エンドポイント1が送信したノンポステッド要求を受信したスイッチ1は、RTNPをエンドポイント1に送信する。エンドポイント1が送信したノンポステッド要求を、スイッチ1を介して受信したエンドポイント5は、RTNPをエンドポイント1に送信する。また、エンドポイント5はコンプリータであるので、ノンポステッド要求の処理を要求処理部において行い、処理結果を示すノンポステッド応答をエンドポイント1に送信する。
 図27の下段には、エンドポイント1の監視時間レジスタ115における監視時間が更新される様子を示している。縦方向の長さは時間の長さを表している。まず、エンドポイント1がノンポステッド要求を送信した際に監視タイマが起動する。エンドポイント1がスイッチ1からRTNPを受信すると、監視時間はブロック271の縦方向の長さに更新される。エンドポイント1がエンドポイント5からRTNPを受信すると、監視時間はブロック272の縦方向の長さに更新される。そして、エンドポイント1がノンポステッド応答を受信すると、監視タイマが停止する。なお、ブロックのうち色付けされた部分は伝搬遅延時間に相当する部分であり、色付けされていない部分は最大処理時間に相当する部分である。
 図28用いて、エンドポイント1がエンドポイント5に対してノンポステッド要求を送信した後に、エンドポイント1がエンドポイント2に対してノンポステッド要求を送信した場合における監視時間の更新について説明する。
 図28の上段には、エンドポイント1が送信したノンポステッド要求を受信したモジュールがRTNPをエンドポイント1に送信する様子が示されている。実線の矢印はノンポステッド要求の転送を表しており、点線の矢印はRTNPの転送を表しているが、モジュール内においてはノンポステッド要求の矢印も点線としている。
 エンドポイント1が送信したノンポステッド要求を受信したスイッチ1は、RTNPを既にエンドポイント1に送信済みであるので、RTNPを送信しない。エンドポイント1が送信したノンポステッド要求を、スイッチ1を介して受信したスイッチ2は、RTNPをエンドポイント1に送信する。エンドポイント1が送信したノンポステッド要求を、スイッチ2を介して受信したエンドポイント2は、RTNPをエンドポイント1に送信する。また、エンドポイント2はコンプリータであるので、ノンポステッド要求の処理を要求処理部において行い、処理結果を示すノンポステッド応答をエンドポイント1に送信する。
 図28の下段には、エンドポイント1の監視時間レジスタ115における監視時間が更新される様子を示している。ブロック281の縦方向の長さは、図27におけるブロック272の縦方向の長さと同じであるとする。まず、エンドポイント1がノンポステッド要求を送信した際に監視タイマが起動する。エンドポイント1がスイッチ2からRTNPを受信した際、擬似応答時間は監視時間より短いと判断されるので、監視時間は更新されない。エンドポイント1がエンドポイント2からRTNPを受信した際、擬似応答時間は監視時間より長いと判断されるので、監視時間は擬似応答時間で更新される。そして、エンドポイント1がノンポステッド応答を受信すると、監視タイマが停止する。
 図29を用いて、図27及び図28を用いて説明した動作が行われた場合における監視時間の短縮について説明する。図29の上段は、図14に示したものと同じであるので、説明を省略する。図29の下段には、エンドポイント1がスイッチ1、エンドポイント5及びエンドポイント2から受信したRTNPによって監視時間が更新される様子を示している。図29の横方向の長さは、時間の長さを表している。エンドポイント1がスイッチ1からRTNPを受信すると、監視時間は、エンドポイント1とスイッチ1との間の伝搬遅延時間の2倍に相当する時間に更新される。エンドポイント1がエンドポイント5からRTNPを受信すると、監視時間は、エンドポイント1とエンドポイント5との間の伝搬遅延時間を2倍した時間にエンドポイント5の最大処理時間を加えた時間に更新される。。エンドポイント1がエンドポイント2からRTNPを受信すると、監視時間は、エンドポイント1とエンドポイント2との間の伝搬遅延時間を2倍した時間にエンドポイント2の最大処理時間を加えた時間に更新される。なお、スイッチ2から受信したRTNPによっては、監視時間は更新されない。以上のように監視時間が更新されると、本実施の形態の処理を利用しない場合と比べると、メモリ3についての応答時間からエンドポイント2について算出した擬似応答時間を差し引いた分だけ短縮されることになる。これは、図26に示した短縮分と理論的には同じである。
 次に、図30を用いて、各モジュールにおける時刻の設定について説明する。図30の例には、エンドポイント(図30においては、EPと略されている)1、エンドポイント2及びエンドポイント3における時刻の設定が示されている。なお、エンドポイント1乃至3以外のモジュールについても同様に時刻が設定される。
 本実施の形態においては、CPUが管理している時刻を、各モジュールの各ポート(すなわち、アップストリームポート及びダウンストリームポート)における時刻タイマにコピーする。各ポートにおいては、時刻タイマにコピーされた時刻を基準として時刻が管理される。図30の例では、エンドポイント1には、CPUによって時刻T1がコピーされ、その後時刻T2、T3、T4・・・と時刻が進むようになっている。エンドポイント2には、CPUによって時刻T2がコピーされ、その後時刻T3、T4・・・と時刻が進むようになっている。エンドポイント3には、CPUによって時刻T3がコピーされ、その後時刻T4、・・・と時刻が進むようになっている。このようにすることで、各モジュールにおける時刻を同期できるようになる。なお、CPUが時刻を設定する順序は、図30のような例に限られるわけではない。
 以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したリクエスタ、コンプリータ及びスイッチの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
 また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
 以上述べた本実施の形態をまとめると以下のようになる。
 本実施の形態の第1の態様に係る情報処理装置は、(A)情報処理装置が送信した要求を受信した他の装置から、当該他の装置が要求を受信した時刻を含むパケットを受信した場合に、情報処理装置が要求を送信した時刻と他の装置が要求を受信した時刻との差に基づき、第1の時間を算出する算出部と、(B)算出された第1の時間が応答を監視する時間である監視時間より長いか判断し、長いと判断した場合に、監視時間を第1の時間で更新する更新部とを有する。
 上で述べたような差に基づき算出された第1の時間で監視時間を更新すれば、監視時間を実際の応答時間に近付けることができるようになる。また、要求を受信しない他の装置については第1の時間を算出しないので、監視時間を無駄に長い時間に設定することはない。
 また、上で述べた算出部が、(a1)要求に対する処理を実行するのに要した時間がパケットに含まれる場合には、情報処理装置が要求を送信した時刻と他の装置が要求を受信した時刻との差を2倍した時間に要求に対する処理を実行するのに要した時間を加えることにより、第1の時間を算出してもよい。応答時間には要求を処理する時間が含まれる。従って、上で述べたようにすれば、監視時間を適切に設定できるようになる。
 また、上で述べた算出部が、(a2)要求に対する処理を実行するのに要した時間がパケットに含まれていない場合には、情報処理装置が要求を送信した時刻と他の装置が要求を受信した時刻との差を2倍することにより、第1の時間を算出してもよい。このようにすれば、要求を処理する装置までの経路上に存在する装置についても、第1の時間を算出することができるようになる。
 本実施の形態の第2の態様に係る情報処理装置は、(C)他の装置から要求を受信した時刻を含むパケットを生成する生成部と、(D)生成部により生成されたパケットを、他の装置に対し送信する送信部とを有する。このようにすれば、要求が伝搬するのに要する時間を他の装置において算出できるようになる。
 また、(c1)情報処理装置が要求を処理する場合、生成部が、要求を処理するのに要する時間及び要求を受信した時刻を含むパケットを生成してもよい。このようにすれば、他の装置が要求を送信してから応答を受信するまでの時間を他の装置において算出できるようになる。
 また、第2の態様に係る情報処理装置が、(E)他の装置から要求を受信した場合に、他の装置に対し既にパケットを送信済みであるか判断し、送信済みではない場合に、生成部に対しパケットの生成を指示する判断部をさらに有してもよい。パケットは一度送信すれば十分である。そこで、上で述べたような処理を行うことで、無駄にパケットを送信することを防げるようになる。
 また、第1及び第2の態様に係る情報処理装置が、PCI(Peripheral Component Interconnect) Expressのシステムにおけるモジュールであってもよい。
 本実施の形態の第3の態様に係る情報処理システムは、(F)第1の情報処理装置と、(G)第2の情報処理装置とを有する。そして、上で述べた第1の情報処理装置が、(f1)第2の情報処理装置から要求を受信した時刻を含むパケットを生成する生成部と、(f2)生成部により生成されたパケットを、第2の情報処理装置に対し送信する送信部とを有する。また、上で述べた第2の情報処理装置が、(g1)第1の情報処理装置から、当該第1の情報処理装置が要求を受信した時刻を含むパケットを受信した場合に、第2の情報処理装置が要求を送信した時刻と第1の情報処理装置が要求を受信した時刻との差に基づき、第1の時間を算出する算出部と、(g2)算出された第1の時間が応答を監視する時間である監視時間より長いか判断し、長いと判断した場合に、監視時間を第1の時間で更新する更新部とを有する。
 本実施の形態の第4の態様に係る情報処理方法は、(H)情報処理装置が送信した要求を受信した他の装置から、当該他の装置が要求を受信した時刻を含むパケットを受信した場合に、情報処理装置が要求を送信した時刻と他の装置が要求を受信した時刻との差に基づき、第1の時間を算出し、(I)算出された第1の時間が応答を監視する時間である監視時間より長いか判断し、長いと判断した場合に、監視時間を第1の時間で更新する処理を含む。
 本実施の形態の第5の態様に係る情報処理方法は、(J)他の装置から要求を受信した時刻を含むパケットを生成し、(K)生成部により生成されたパケットを、他の装置に対し送信する処理を含む。
 なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD-ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。

Claims (10)

  1.  情報処理装置であって、
     前記情報処理装置が送信した要求を受信した他の装置から、当該他の装置が前記要求を受信した時刻を含むパケットを受信した場合に、前記情報処理装置が前記要求を送信した時刻と前記他の装置が前記要求を受信した時刻との差に基づき、第1の時間を算出する算出部と、
     算出された前記第1の時間が応答を監視する時間である監視時間より長いか判断し、長いと判断した場合に、前記監視時間を前記第1の時間で更新する更新部と、
     を有する情報処理装置。
  2.  前記算出部が、
     前記要求に対する処理を実行するのに要した時間が前記パケットに含まれる場合には、前記情報処理装置が前記要求を送信した時刻と前記他の装置が前記要求を受信した時刻との差を2倍した時間に前記要求に対する処理を実行するのに要した時間を加えることにより、前記第1の時間を算出する
     ことを特徴とする請求項1記載の情報処理装置。
  3.  前記算出部が、
     前記要求に対する処理を実行するのに要した時間が前記パケットに含まれていない場合には、前記情報処理装置が前記要求を送信した時刻と前記他の装置が前記要求を受信した時刻との差を2倍することにより、前記第1の時間を算出する
     ことを特徴とする請求項1記載の情報処理装置。
  4.  他の装置から要求を受信した時刻を含むパケットを生成する生成部と、
     前記生成部により生成された前記パケットを、前記他の装置に対し送信する送信部と、
     を有する情報処理装置。
  5.  前記情報処理装置が前記要求を処理する場合、前記生成部が、前記要求を処理するのに要する時間及び前記要求を受信した時刻を含むパケットを生成する
     ことを特徴とする請求項4記載の情報処理装置。
  6.  前記他の装置から前記要求を受信した場合に、前記他の装置に対し既に前記パケットを送信済みであるか判断し、送信済みではない場合に、前記生成部に対し前記パケットの生成を指示する判断部
     をさらに有することを特徴とする請求項4又は5記載の情報処理装置。
  7.  前記情報処理装置が、PCI(Peripheral Component Interconnect) Expressのシステムにおけるモジュールである
     ことを特徴とする請求項1又は4記載の情報処理装置。
  8.  情報処理装置により実行される情報処理方法であって、
     前記情報処理装置が送信した要求を受信した他の装置から、当該他の装置が前記要求を受信した時刻を含むパケットを受信した場合に、前記情報処理装置が前記要求を送信した時刻と前記他の装置が前記要求を受信した時刻との差に基づき、第1の時間を算出し、
     算出された前記第1の時間が応答を監視する時間である監視時間より長いか判断し、長いと判断した場合に、前記監視時間を前記第1の時間で更新する
     処理を前記情報処理装置が実行する情報処理方法。
  9.  他の装置から要求を受信した時刻を含むパケットを生成し、
     前記生成部により生成された前記パケットを、前記他の装置に対し送信する
     処理をコンピュータが実行する情報処理方法。
  10.  第1の情報処理装置と、
     第2の情報処理装置と、
     を有し、
     前記第1の情報処理装置が、
     前記第2の情報処理装置から要求を受信した時刻を含むパケットを生成する生成部と、
     前記生成部により生成された前記パケットを、前記第2の情報処理装置に対し送信する送信部と
     を有し、
     前記第2の情報処理装置が、
     前記第1の情報処理装置から、当該第1の情報処理装置が前記要求を受信した時刻を含むパケットを受信した場合に、前記第2の情報処理装置が前記要求を送信した時刻と前記第1の情報処理装置が前記要求を受信した時刻との差に基づき、第1の時間を算出する算出部と、
     算出された前記第1の時間が応答を監視する時間である監視時間より長いか判断し、長いと判断した場合に、前記監視時間を前記第1の時間で更新する更新部と
     を有する
     情報処理システム。
PCT/JP2013/051538 2013-01-25 2013-01-25 情報処理装置、情報処理方法及び情報処理システム WO2014115293A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/051538 WO2014115293A1 (ja) 2013-01-25 2013-01-25 情報処理装置、情報処理方法及び情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/051538 WO2014115293A1 (ja) 2013-01-25 2013-01-25 情報処理装置、情報処理方法及び情報処理システム

Publications (1)

Publication Number Publication Date
WO2014115293A1 true WO2014115293A1 (ja) 2014-07-31

Family

ID=51227108

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/051538 WO2014115293A1 (ja) 2013-01-25 2013-01-25 情報処理装置、情報処理方法及び情報処理システム

Country Status (1)

Country Link
WO (1) WO2014115293A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06104932A (ja) * 1992-09-18 1994-04-15 Oki Electric Ind Co Ltd 応答監視時間の決定方法
JP2004215199A (ja) * 2003-01-09 2004-07-29 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2005346175A (ja) * 2004-05-31 2005-12-15 Matsushita Electric Ind Co Ltd コマンド通信装置およびコマンド通信方法
JP2007147484A (ja) * 2005-11-29 2007-06-14 Nec Engineering Ltd 時刻補正システム
JP2012248914A (ja) * 2011-05-25 2012-12-13 Fujitsu Ltd 転送装置、通信方法、および、通信プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06104932A (ja) * 1992-09-18 1994-04-15 Oki Electric Ind Co Ltd 応答監視時間の決定方法
JP2004215199A (ja) * 2003-01-09 2004-07-29 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2005346175A (ja) * 2004-05-31 2005-12-15 Matsushita Electric Ind Co Ltd コマンド通信装置およびコマンド通信方法
JP2007147484A (ja) * 2005-11-29 2007-06-14 Nec Engineering Ltd 時刻補正システム
JP2012248914A (ja) * 2011-05-25 2012-12-13 Fujitsu Ltd 転送装置、通信方法、および、通信プログラム

Similar Documents

Publication Publication Date Title
JP5932146B2 (ja) ピーシーアイエクスプレスのエンドポイントデバイスにアクセスするための方法、コンピューターシステム、および、装置
CN106959935B (zh) 一种兼容i2c通信与ipmb通信的方法
JP2017518552A (ja) Rasおよび電力管理のための高速シリアルリンク帯域内レーンフェイルオーバー
JP6102383B2 (ja) 情報処理システム、情報処理装置、データ転送装置及び情報処理システムの制御方法
JP5477112B2 (ja) ネットワークシステムの試験方法
WO2016135919A1 (ja) ストレージ装置
JP6287350B2 (ja) 情報処理装置、リソース割当て方法、及び、プログラム
JP5151500B2 (ja) コンピュータシステム、障害処理方法および障害処理プログラム
JP5754504B2 (ja) 管理装置、情報処理装置、情報処理システム及びデータ転送方法
WO2019119269A1 (zh) 一种网络故障探测方法及控制中心设备
JP2010061606A (ja) Pciカード、マザーボード、pciバスシステム、制御方法、及びプログラム
JP5381109B2 (ja) 通信装置及びその制御プログラム
WO2014115293A1 (ja) 情報処理装置、情報処理方法及び情報処理システム
JP2006253922A (ja) ゲートウェイ装置及びゲートウェイ装置におけるデータ転送方法
JP6418021B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP6357879B2 (ja) システムおよび障害処理方法
US9252922B2 (en) System and method for improved error response in data mirroring
US20150156164A1 (en) Communication system, communication control method, communication relay system, and communication relay control method
JP6112205B2 (ja) 情報処理システム、装置、方法及びプログラム
WO2019187202A1 (ja) 制御装置、車両内通信システム、監視方法及びプログラム
JP2011040965A (ja) データリンク層処理回路および通信回路
WO2024113818A1 (zh) 交换机的复位系统及方法、非易失性可读存储介质、电子设备
JP2015106865A (ja) 通信装置、通信システム、通信方法、及び通信プログラム
CN110609866A (zh) 用于协商事务的方法、设备和计算机程序产品
JP6658299B2 (ja) 情報処理装置及び情報処理装置の制御方法

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13872670

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP