WO2010103562A1 - 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム - Google Patents

情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム Download PDF

Info

Publication number
WO2010103562A1
WO2010103562A1 PCT/JP2009/001038 JP2009001038W WO2010103562A1 WO 2010103562 A1 WO2010103562 A1 WO 2010103562A1 JP 2009001038 W JP2009001038 W JP 2009001038W WO 2010103562 A1 WO2010103562 A1 WO 2010103562A1
Authority
WO
WIPO (PCT)
Prior art keywords
cpu
control device
error
resynchronization
processing
Prior art date
Application number
PCT/JP2009/001038
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 JP2011503554A priority Critical patent/JP5278530B2/ja
Priority to PCT/JP2009/001038 priority patent/WO2010103562A1/ja
Priority to EP09841396.6A priority patent/EP2407885A4/en
Publication of WO2010103562A1 publication Critical patent/WO2010103562A1/ja
Priority to US13/225,146 priority patent/US8677179B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling

Definitions

  • the present invention relates to an information processing apparatus, a control method for the information processing apparatus, and a control program for the information processing apparatus.
  • CPU out-of-synchronization means that instructions issued by CPUs are different among CPUs operating in synchronization. For example, when the address of the read command issued by the CPU is different between the CPUs that are operating synchronously, or when the timing of issuing the read command is shifted by one clock, this corresponds to the CPU synchronization shift.
  • Case 1 or Case 2 described below can be considered.
  • Case 1 When one of the CPUs operating synchronously detects an error
  • Case 2 When both CPUs detect an error simultaneously among CPUs operating synchronously Generally, the case 1 described above For case 2, it is desirable to perform the following operations.
  • the computer system degenerates the CPU that detected the error. Alternatively, the computer system resynchronizes the CPU and continues the synchronization operation until the occurrence of an error exceeds a predetermined number of times.
  • the computer system records the error content and stops the computer system. However, if the error content is recoverable, the computer system continues the operation in the CPU synchronous operation after recovering the error.
  • the CPU controller is, for example, a chip set called North Bridge.
  • the CPU controller When performing the CPU synchronization operation, generally, the CPU controller performs control such as detection of a synchronization error and degeneration of the CPU on which the error has occurred.
  • the CPU of the INTEL (registered trademark) architecture when the CPU is degenerated, there is a CPU that can degenerate the CPU only in units of CPUs connected to the CPU controller through a common bus. That is, when a computer system has a configuration in which a plurality of CPUs are connected on a common bus, a configuration in which a plurality of CPU cores are mounted in one CPU, or a single CPU core.
  • a general-purpose OS such as Windows (registered trademark)
  • Windows registered trademark
  • the manufacturer of the OS is different from the manufacturer of the computer system.
  • the general-purpose OS since the general-purpose OS must operate on computer systems having various specifications, it is difficult for the general-purpose OS to perform processing specialized for the computer system specifications. Therefore, when processing corresponding to the CPU synchronization error is performed in the general-purpose OS, it is necessary to perform processing without affecting the normal operation of the OS without support of the OS. Specifically, it is necessary to perform processing as shown in the following (1) and (2).
  • a synchronization error interrupt for transferring control to firmware processing such as a BIOS (Basic Input / Output System: BIOS) of the computer system is issued, and the BIOS Resynchronization processing is performed by firmware processing.
  • BIOS Basic Input / Output System
  • the resynchronization process is performed in a minimum time by masking an interrupt during the resynchronization process so as not to affect the processing of the OS.
  • both CPUs performing the synchronization operation may simultaneously detect an error.
  • IO Input / Output
  • a hardware failure occurs in the IO device.
  • the IO controller detects the failure and returns data (such as data generally called Poison data) notifying the occurrence of the failure to the CPU.
  • data such as data generally called Poison data
  • the CPU can often continue the synchronous operation. This is because the error processing is often the same because the CPUs operating in synchronism detect the exact same error.
  • the CPU controller performs fault analysis processing with the CPU itself or a device other than the CPU, or with the CPU operating synchronously. It is not possible to judge whether it is possible or not. Therefore, when both CPUs detect an error at the same time, it is necessary for the CPU controller to determine in advance whether to process as an out-of-synchronization or to perform the processing in a synchronized operation.
  • the CPU controller decides in advance to perform the processing in a synchronized operation, if a synchronization error occurs after that, whether the synchronization error occurred during the failure analysis process or after the failure analysis process is completed. It is difficult to determine whether or not the error occurred, whether the cause of the synchronization error is the original CPU error, or a new factor. If failure occurs due to the original CPU error during failure analysis processing, it can be processed assuming that an error has occurred once. However, if failure occurs due to another factor after failure analysis processing is completed. Needs to be processed assuming that an error has occurred twice. That is, when it is determined that the processing is performed in the synchronous operation, it becomes difficult to perform the processing correctly when another error occurs thereafter. Therefore, when both CPUs performing the synchronization operation simultaneously detect an error, the CPU controller generally processes the synchronization as being out of synchronization and determines whether resynchronization is necessary or not using firmware such as BIOS.
  • the firmware such as BIOS needs to perform the following operations (a) and (b) as failure analysis processing when the CPUs performing the synchronous operation simultaneously detect errors.
  • FIG. 23 and FIG. 24 are examples of an operation processing flow when the CPU detects an error.
  • the CPU hardware detects an error (step S1 in FIG. 23).
  • the CPU sets the interrupt mask and starts error processing of firmware (for example, BIOS) (step S2).
  • the CPU investigates the cause of the error according to the instruction of the firmware and logs the error (step S3).
  • the CPU determines whether the failure can be recovered according to the instruction of the firmware (step S4). If the CPU determines that the failure can be recovered in step S4, the CPU executes the failure recovery process in accordance with the firmware instruction (step S10), and proceeds to step S12 in FIG.
  • the CPU determines that the failure cannot be recovered, the CPU performs error processing of the OS according to the firmware instruction (step S5 in FIG. 23).
  • the OS error process is an error process instructed by the OS.
  • the CPU starts OS error processing (step S6).
  • the CPU issues an OS error processing interrupt to other CPUs connected by a common bus (step S7 in FIG. 24).
  • the OS error processing interrupt is an interrupt for causing another CPU to execute OS error processing.
  • the CPU further executes error processing while synchronizing with other CPUs.
  • the OS determines whether the failure can be recovered (step S8). When the OS determines that the failure cannot be recovered, the OS stops the system (step S9). When the OS determines that the failure can be recovered, the OS performs the failure recovery processing and also performs the return processing to the firmware error processing (step S11). Subsequently, the CPU returns from error processing in accordance with the firmware instruction (step S12). Then, the CPU cancels the interrupt mask (step S13) and returns to the normal processing (step S14).
  • FIG. 25 is an example of an operation processing flow when the CPU controller issues a resynchronization interrupt.
  • both CPUs during the synchronization operation simultaneously detect errors (step S21).
  • both CPUs simultaneously notify the CPU controller of an error (step S22).
  • the CPU controller degenerates one CPU (one-side CPU), and issues a resynchronization interrupt to a CPU that has not been degenerated and another CPU connected to a common bus with the CPU (step S23).
  • the resynchronization interrupt is an interrupt for notifying that a synchronization loss has occurred.
  • the CPU sets the interrupt mask and starts firmware resynchronization processing, that is, resynchronization processing according to the firmware instruction (step S24).
  • the CPU determines whether all the CPUs that perform resynchronization processing have been prepared according to the instructions of the firmware (step S25). If the CPU determines that there are no CPUs that perform resynchronization processing, the process returns to step S25.
  • the CPU executes the resynchronization process in accordance with the firmware instruction (step S26). Next, the CPU returns from the resynchronization process in accordance with the firmware instruction (step S27). Subsequently, the CPU cancels the interrupt mask (step S28), and returns to normal processing (CPU synchronization operation) (step S29).
  • FIG. 26 is an example of an operation processing flow of the CPU that has received the OS error processing interrupt issued in step S7 of FIG.
  • the CPU receives an OS error processing interrupt (step S31)
  • the CPU sets the interrupt mask and starts OS error processing (step S32). That is, the CPU executes OS error processing in accordance with the OS instruction (step S33).
  • the CPU returns from the error processing of the OS (step S34)
  • the CPU cancels the interrupt mask (step S35) and returns to the normal processing (step S36).
  • FIG. 27 to FIG. 34 are diagrams showing detailed examples of processing in the case where the synchronous CPUs simultaneously detect errors.
  • FIG. 27 shows an example of a state in which the CPU is operating synchronously and no error is detected.
  • the CPU 100 and the CPU 102 operate synchronously.
  • the CPU 101 and the CPU 103 are operating synchronously.
  • the CPU 100 and the CPU 101 are connected to the CPU controller 104 via a common bus 105.
  • the CPU 102 and the CPU 103 are connected to the CPU controller 104 via a common bus 106.
  • Each CPU executes normal processing (normal processing of OS) (see # 1 to # 4 in FIG. 27).
  • FIG. 28 shows an example of a state where both CPUs operating in synchronization detect an error.
  • the CPU 100 and the CPU 102 simultaneously detect errors (see # 5 and # 6 in FIG. 28).
  • the CPU 100 and the CPU 102 that detected the error notify the CPU controller 104 that the error has been detected (see # 7 in FIG. 28).
  • the CPU 100 and the CPU 102 start firmware error processing (see # 8 and # 9 in FIG. 28).
  • FIG. 29 shows an example of a state in which the CPU controller degenerates either one of the CPUs that detected the error and the CPU connected to the common bus with the CPU.
  • the CPU controller 104 degenerates the CPU 102 and the CPU 103 connected to the CPU 102 via the bus 106 (see # 10 in FIG. 29). If the error detection timing is different, the CPU controller 104 may degenerate the CPU that detected the error earlier. Subsequently, the CPU controller 104 issues a resynchronization interrupt to the CPUs 100 and 101 which are the CPUs that have not been degenerated (# 11 in FIG. 29).
  • FIG. 30 shows an example of a state in which the non-degenerate CPU receives a resynchronization interrupt.
  • the following operations are executed on the CPU 100 that has detected an error and the CPU 101 that has not detected an error.
  • the CPU 100 executes firmware error processing.
  • the resynchronization interrupt is pending (see # 12 in FIG. 30).
  • the CPU 101 starts the CPU resynchronization process after setting the interrupt mask.
  • the CPU resynchronization process needs to be completed in a short time. Therefore, the CPU 101 executes the CPU resynchronization process in the interrupt mask state (see # 13 in FIG. 30).
  • FIG. 31 shows an example of a state in which the CPU 100 that executes OS error processing issues an OS error processing interrupt to the CPU 101.
  • the CPU 100 executes OS error processing (see # 14 in FIG. 31) and issues an OS error processing interrupt to the CPU 101 (see # 15 in FIG. 31).
  • the CPU 101 executes resynchronization processing despite receiving an OS error processing interrupt from the CPU 100. That is, since the CPU 101 is in the interrupt mask state, it cannot execute OS error processing (see # 16 in FIG. 31).
  • FIG. 32 shows an example of a state in which the CPU 100 performs error recovery processing.
  • the CPU 100 executes error processing of the OS.
  • failure recovery processing is performed (see # 17 in FIG. 32).
  • FIG. 33 shows an example of a state in which the CPU 100 returns from error processing.
  • the CPU 100 returns from the error process to the normal process, accepts the pending resynchronization interrupt, and starts the resynchronization process (# 18 in FIG. 33).
  • FIG. 34 shows an example of a state after the CPU 100 and the CPU 101 complete the resynchronization process.
  • the CPU 100 and the CPU 101 return to the OS normal process (see # 19 and # 20 in FIG. 34).
  • the CPU 100 and CPU 101 operate in synchronization with the CPU 102 and CPU 103, respectively, and as a result, the CPU 102 and CPU 103 execute normal processing (see # 21 and # 22 in FIG. 34).
  • the CPU 101 which is a CPU that has not detected an error, is in an interrupt mask state, and therefore an OS error has occurred despite receiving an OS error processing interrupt from the CPU 100. Processing cannot be executed. Therefore, in the processing described above with reference to FIGS. 27 to 34, for example, the error processing interrupt of the OS issued in the error processing of the general-purpose OS such as Windows is received by the CPU that has not detected the error. Cannot be performed, and error handling cannot be performed.
  • the present invention provides an information processing apparatus that enables a CPU that has not detected an error to execute error processing of an OS when a control apparatus (for example, a CPU) that is operating synchronously detects an error at the same time.
  • a control apparatus for example, a CPU
  • the present invention also provides a method for controlling an information processing apparatus that enables a control apparatus that has not detected an error to execute OS error processing when the control apparatuses that are operating in synchronization detect errors simultaneously. For the purpose of provision.
  • the present invention provides a control program for an information processing apparatus that enables a CPU that has not detected an error to execute an error process of an OS when a control apparatus that is operating synchronously detects an error simultaneously. With the goal.
  • the information processing apparatus includes a first control device group including the first control device when the first control device and the second control device that perform synchronous operations detect the occurrence of an error; Of the second control device group including the second control device, the degeneration control means for degenerating the second control device group, and the resynchronization processing for the control devices included in the first control device group Resynchronization processing instruction means for instructing the execution of.
  • a control device group including the first control device when the first control device and the second control device that perform synchronous operations detect the occurrence of an error
  • the degeneration control means for degenerating the second control device group
  • Resynchronization processing instruction means for instructing the execution of.
  • control method of the information processing apparatus includes a first control that includes the first control device when the first control device and the second control device that perform a synchronous operation detect the occurrence of an error.
  • the second control device group is degenerated and resynchronized with the control device included in the first control device group. Instructing the execution of processing, and when another control device different from the first control device included in the first control device group receives an instruction to execute the resynchronization processing, an interrupt mask setting is performed.
  • the execution of the resynchronization process is reserved and error processing is started. Instruct the controller that has set the interrupt mask to To release the only mask.
  • control program of the information processing apparatus includes a first control including the first control apparatus when the first control apparatus and the second control apparatus that perform a synchronous operation detect the occurrence of an error.
  • a degeneration control means for degenerating the second control device group and a control device included in the first control device group
  • a control program for an information processing apparatus comprising resynchronization processing instruction means for instructing execution of resynchronization processing, wherein the computer is different from the first control apparatus included in the first control device group
  • another control device receives an instruction to execute the resynchronization processing, processing for setting an interrupt mask, and the first control device included in the first control device group includes the resynchronization processing.
  • receiving an instruction to execute reserves the execution of the synchronization process starts the error processing, and instructs the control apparatus that has performed the interrupt mask settings, to execute the processing to release the interrupt mask.
  • the control method for the information processing apparatus when a control apparatus that is operating synchronously detects an error at the same time, the control apparatus that has not detected the error is the OS Error processing can be executed.
  • FIG. 1 is a diagram illustrating a configuration example of the information processing apparatus according to the present embodiment.
  • the information processing apparatus 1 includes CPUs 10 to 13, a CPU controller 14, a ROM (Read Only Memory) 15, a memory 16, an IO controller 17, a hard disk controller 18, a LAN controller 19, a video controller 20, and a hard disk 21.
  • CPUs 10 to 13 a CPU controller 14, a ROM (Read Only Memory) 15, a memory 16, an IO controller 17, a hard disk controller 18, a LAN controller 19, a video controller 20, and a hard disk 21.
  • ROM Read Only Memory
  • the CPU 10 and the CPU 12 perform a synchronization operation with each other, and the CPU 11 and the CPU 13 perform a synchronization operation with each other.
  • the CPU 10 and the CPU 11 are connected to the CPU controller 14 via a bus 31 that is a common bus. That is, the CPU 10 and the CPU 11 constitute a first control device group.
  • the CPU 12 and the CPU 13 are connected to the CPU controller 14 via a bus 32 that is a common bus. That is, the CPU 12 and the CPU 13 constitute a second control device group.
  • each CPU detects the occurrence of an error in the information processing apparatus 1, it notifies the CPU controller 14 of the occurrence of the error.
  • the CPU included in the control device group that has not been degenerated by the CPU controller 14 to be described later reads the error processing program 201 or the CPU resynchronization processing program 202 included in the firmware 151 such as BIOS from the ROM 15, and instructs the read program The process according to is executed. Specifically, the CPU that has detected the occurrence of an error reads the error processing program 201 from the ROM 15 and executes processing (firmware error processing) in accordance with an instruction of the error processing program 201.
  • the CPU that has received the resynchronization interrupt issued from the resynchronization interrupt issuing unit 143 provided in the CPU controller 14 described later reads the CPU resynchronization processing program 202 from the ROM 15 and follows the instructions of the CPU resynchronization processing program 202. Process (resynchronization process).
  • the CPU that executed the firmware error process calls the OS error process and executes the OS 211 error process stored in the hard disk 21 when the failure cannot be recovered.
  • the CPU controller 14 is, for example, a north bridge.
  • the CPU controller 14 includes a CPU error notification receiving unit 141, a CPU degeneration control unit 142, and a resynchronization interrupt issuing unit 143.
  • the CPU error notification receiving unit 141 receives a notification indicating that an error has occurred from the CPUs that synchronize with each other, for example, when the CPU 10 and the CPU 12 detect the occurrence of an error.
  • the CPU degeneration control unit 142 has a function as a degeneration control unit that degenerates the second control device group among the first control device group including the CPU 10 and the second control device group including the CPU 12.
  • the resynchronization interrupt issuing unit 143 issues an instruction for resynchronization processing by issuing a resynchronization interrupt to the CPUs included in the first control device group.
  • the CPU that has received the issuance of the resynchronization interrupt sets the interrupt mask, reads the CPU resynchronization processing program 202 from the ROM 15, and executes processing in accordance with the instructions of the CPU resynchronization processing program 202. Specifically, among the CPUs included in the first control device group, the CPU 11 that has not detected the occurrence of an error performs interrupt mask setting when receiving a re-synchronization interrupt.
  • the CPU 10 that has detected the occurrence of an error reads the error processing program 201 from the ROM 15 after the occurrence of the error has been detected. Therefore, even when the CPU 10 receives the issuance of the resynchronization interrupt from the resynchronization interrupt issuance unit 143, the CPU 10 pending the execution of the resynchronization processing and reserves the error processing instructed by the error processing program 201. Start execution.
  • the CPU 10 notifies the CPU 11 that the CPU 10 has started error processing in accordance with an instruction from the error processing program 201. Receiving this notification, the CPU 11 cancels the interrupt mask setting. That is, the CPU 10 instructs the CPU 11 that has set the interrupt mask to release the interrupt mask. As a result, the CPU 11 is ready to accept an OS error processing interrupt.
  • the ROM 151 stores firmware 151 in advance.
  • the firmware 151 includes an error processing program 201 and a CPU resynchronization processing program 202.
  • the error processing program 201 instructs a CPU (for example, the CPU 10) that has read the error processing program 201 to execute firmware error processing. Further, the error processing program 201 instructs the CPU that has read the error processing program 201 to indicate that the CPU (for example, the CPU 10) has started the error processing of the firmware through a bus connected to the CPU. CPU (for example, CPU 11) is notified. Further, the error processing program 201 determines whether or not a failure can be recovered for the CPU that has executed the error processing. When the error processing program 201 determines that the failure can be recovered, the error processing program 201 (the CPU receiving the instruction) notifies the completion of error processing to another CPU different from this CPU. A re-synchronization interrupt is issued to the other CPU.
  • the CPU resynchronization processing program 202 instructs the CPU that has read the CPU resynchronization processing program 202 to execute normal CPU resynchronization processing. Specifically, the CPU resynchronization processing program 202 instructs the CPU that has read the CPU resynchronization processing program 202 to determine whether all CPUs that perform resynchronization processing have been prepared. For example, the CPU resynchronization processing program 202 instructs the CPU 10 that has read the CPU resynchronization processing program 202 to determine whether or not the CPU 11 connected to the CPU 10 through a common bus can execute the resynchronization processing. . Only when all the CPUs that perform the resynchronization process are prepared, the CPU resynchronization process program 202 instructs the CPU (for example, the CPU 10) to execute the resynchronization process.
  • the CPU resynchronization process program 202 instructs the CPU (for example, the CPU 10) to execute the resynchronization process.
  • the CPU resynchronization processing program 202 instructs the CPU that has read the CPU resynchronization processing program 202 to determine whether another CPU different from this CPU is performing error processing. When another CPU is in error processing, the CPU resynchronization processing program 202 returns the CPU that has read the CPU resynchronization processing program 202 to the normal processing from the resynchronization processing, and can accept an interrupt from the OS. To.
  • the memory 16 is a storage unit that stores data necessary for each CPU to execute processing.
  • the IO controller 17 controls input / output of information between the CPU controller 14, the video controller 20, a LAN (Local Area Network) controller 19, and a hard disk controller 18.
  • the video controller 20 controls display processing of each CPU processing content on a monitor (not shown).
  • the LAN controller 19 transmits the processing contents of each CPU to the LAN to which the information processing apparatus 1 belongs.
  • the hard disk controller 18 controls data reading processing from the hard disk 21 and data writing processing to the hard disk 21.
  • the functions of the information processing apparatus according to the present embodiment are realized by a CPU and a program executed on the CPU. This program can be stored in a computer-readable recording medium, provided by being recorded on the recording medium, or provided by transmission / reception using a network via a communication interface.
  • the information processing apparatus may be an information processing apparatus 2-1 having a configuration as shown in FIG.
  • a CPU controller 30 having the same function (CPU controller function) as the CPU controller 14 shown in FIG. 1 and CPU cores 41 to 44 having the same function as each CPU shown in FIG. are provided in one CPU 3.
  • the information processing apparatus according to the present embodiment may be an information processing apparatus 2-2 having a configuration as illustrated in FIG.
  • the ROM 15 is connected to the IO controller 17.
  • the information processing apparatus may be an information processing apparatus 2-3 having a configuration as shown in FIG.
  • the information processing apparatus 2-3 includes two CPU controllers 14-1 and 14-2.
  • CPU 200 and CPU 201 are connected to CPU controller 14-1, and CPU 202 and CPU 203 are connected to CPU controller 14-2.
  • a memory 16-1 and a ROM 15-1 are connected to the CPU controller 14-1, and a memory 16-2 and a ROM 15-2 are connected to the CPU controller 14-2.
  • the memories 16-1 and 16-2 have the same functions as the memory 16 shown in FIG.
  • the ROM 15-1 and ROM 15-2 have the same functions as the ROM 15 shown in FIG.
  • the CPU controllers 14-1 and 14-2 have the same CPU controller function as the CPU controller 14 shown in FIG.
  • the CPU controllers 14-1 and 14-2 mutually notify the other CPU controller of the operation status of the CPU connected to itself, and the CPU connected to the CPU controller 14 connects to the other CPU controller. It is determined whether or not it is synchronized with the CPU being used. For example, the CPU controller 14-1 notifies the CPU controller 14-2 of the operation status of the CPU 200 and the CPU 201, and the CPU controller 14-2 is synchronized with the CPU 200, or the CPU 203 is synchronized with the CPU 201. Judgment is made. If each CPU controller determines that the CPU connected to itself is not synchronized with the CPU connected to the other CPU controller, it performs resynchronization processing on the CPU connected to itself. (CPU synchronization processing control is executed).
  • the information processing apparatus of the present embodiment may be an information processing apparatus 2-4 having a configuration as shown in FIG.
  • a CPU controller 14-3 having the same function as the CPU controller 14-1 shown in FIG. 4 and CPU cores 300, 301 having the same function as the CPUs 200, 201 shown in FIG. Are provided in one CPU 3-1.
  • the CPU controller 14-4 having the same function as the CPU controller 14-2 shown in FIG. 4 and the CPU cores 302 and 303 having the same function as the CPUs 202 and 203 shown in FIG. Is provided inside.
  • FIGS. 6 to 22 are examples of an operation processing flow when the CPU included in the information processing apparatus 1 detects an error. Assume that the CPU 10 and the CPU 11 shown in FIG. 1 detect an error at the same time, and FIG. 6 and FIG.
  • the CPU 10 detects an error (step S41 in FIG. 6).
  • the CPU 10 sets the interrupt mask and starts firmware error processing, that is, error processing according to the instruction of the error processing program 201 of the firmware 151 (step S42).
  • the CPU 10 notifies the CPU 11 shown in FIG. 1 that the firmware error processing has started in accordance with the instruction of the error processing program 201 (step S43).
  • the CPU 10 investigates the cause of the error according to the instruction of the error processing program 201 and logs the error (step S44).
  • the CPU 10 determines whether the failure can be recovered according to the instruction of the error processing program 201 (step S45).
  • step S45 when the CPU 10 determines that the failure can be recovered, the CPU 10 executes the failure recovery process according to the instruction of the error processing program 201 (step S51), and proceeds to step S53 of FIG.
  • step S46 the CPU 10 performs error processing of the OS according to the instruction of the error processing program 201 (step S46 in FIG. 6). Then, the CPU 10 starts error processing of the OS, that is, error processing instructed by the OS 211 (see FIG. 1) (step S47), and proceeds to step S48 of FIG.
  • the CPU issues an OS error processing interrupt to the CPU 11, which is another CPU connected by the common bus 31, (step S48 in FIG. 7).
  • the OS 211 determines whether the failure can be recovered (step S49).
  • the OS 211 stops the system (step S50).
  • the OS 211 performs a failure recovery process and a return process to the firmware error process (step S52).
  • the CPU 10 notifies the completion of the error processing to another CPU (CPU 11) in accordance with the instruction of the error processing program 201 of the firmware 151 (step S53).
  • the CPU 10 issues a resynchronization interrupt to another CPU (CPU 11) in accordance with an instruction from the error processing program 201 (step S54).
  • the CPU 10 returns from the error processing according to the instruction of the error processing program 201 (step S55). Then, the CPU 10 cancels the interrupt mask (step S56) and returns to the normal processing (step S57).
  • step S61 in FIG. 8 the CPUs 10 and 12 that are included in the information processing apparatus 1 illustrated in FIG. 1 and that are performing a synchronous operation simultaneously detect errors
  • step S62 the CPUs 10 and 12 simultaneously notify the CPU controller 14 of errors
  • step S63 the CPU controller 14 degenerates the CPU 12 and the CPU 13 (one-side CPU) connected to the CPU 12 via the bus 32, and the CPU 10 that is not degenerated and the CPU 11 connected to the CPU 10 via the bus 31.
  • a resynchronization interrupt is issued (step S63).
  • the CPU 11 sets the interrupt mask and starts firmware resynchronization processing (step S64). Note that the process after step S64 in FIG.
  • the process after step S66 in FIG. 9, and the process after step S71 are processes common to the CPU 10 and CPU 11.
  • the CPU 11 determines whether all the CPUs that perform the resynchronization processing are prepared according to the instruction of the CPU resynchronization processing program 202, that is, whether all the CPUs connected to the CPU 11 via the bus 31 are in a state where the resynchronization processing can be executed. (Step S65). In the example illustrated in FIG. 1, the CPU 11 determines whether the CPU 10 is in a state where the resynchronization process can be executed.
  • the CPU 11 determines that all the CPUs that perform the resynchronization process have been prepared, the CPU 11 executes the resynchronization process according to the instruction of the CPU resynchronization process program 202 (step S66 in FIG. 9). The CPU 11 returns from the resynchronization process according to the instruction of the CPU resynchronization process program 202 (step S67). Subsequently, the CPU 11 cancels the interrupt mask (step S68), and returns to normal processing (CPU synchronization operation) (step S69).
  • step S65 in FIG. 8 determines whether another CPU connected to the CPU 11 via the bus 31 is in error processing.
  • Step S70 in FIG. 8 the CPU 11 determines whether the CPU 10 is in error processing. If the CPU 11 determines that the other CPU is not processing an error, the process returns to step S65 in FIG.
  • the CPU 11 determines that another CPU is in error processing, the CPU 11 returns from the resynchronization processing according to the instruction of the CPU resynchronization processing program 202 (step S71 in FIG. 9). Subsequently, the CPU 11 cancels the interrupt mask (step S72) and returns to the normal process (CPU synchronization shift operation) (step S73).
  • FIG. 10 and FIG. 11 are examples of the operation processing flow of the CPU that receives the resynchronization interrupt from the CPU that has detected the error. 10 and 11, the operation processing of the CPU 11 that receives a resynchronization interrupt from the CPU 10 (see FIG. 1) that has detected an error will be described as an example.
  • the CPU 11 receives a resynchronization interrupt from the CPU 10 that detected the error (step S81 in FIG. 10).
  • the CPU 11 sets the interrupt mask and starts the resynchronization process according to the instruction of the CPU resynchronization process program 202 (step S82).
  • the CPU 11 has all the CPUs that perform the resynchronization processing, that is, all the CPUs connected to the CPU 11 via the bus 31 can execute the resynchronization processing. Is determined (step S83). In the example illustrated in FIG. 1, the CPU 11 determines whether the CPU 10 is in a state where the resynchronization process can be executed.
  • the CPU 11 determines that all the CPUs that perform the resynchronization process have been prepared, the CPU 11 executes the resynchronization process according to the instruction of the CPU resynchronization process program 202 (step S84 in FIG. 11).
  • the CPU 10 returns from the resynchronization processing according to the instruction of the CPU resynchronization processing program 202 (step S85). Subsequently, the CPU 10 cancels the interrupt mask (step S86) and returns to the normal process (CPU synchronization operation) (step S87).
  • Step S88 in FIG. the CPU 11 determines whether another CPU connected to the CPU 11 via the bus 31 is in error processing. If the CPU 11 determines that the other CPU is not processing an error, the process returns to step S83 in FIG.
  • the CPU 11 determines that another CPU is in error processing
  • the CPU 11 returns from the resynchronization processing according to the instruction of the CPU resynchronization processing program 202 (step S89 in FIG. 11). Subsequently, the CPU 11 releases the interrupt mask (step S90), and returns to the normal process (CPU synchronization shift operation) (step S91).
  • FIG. 12 shows an example of the operation processing flow of the CPU that has received the OS error processing interrupt issued in step S48 of FIG.
  • the CPU 11 receives an OS error processing interrupt (step S101)
  • the CPU 11 sets the interrupt mask and starts OS error processing (step S102). That is, the CPU 11 executes OS error processing in accordance with the OS instruction (step S103).
  • the CPU 11 returns from the OS error process (step S104)
  • the CPU 11 cancels the interrupt mask (step S105) and returns to the normal process (step S106).
  • FIG. 13 to FIG. 22 are diagrams showing a detailed example of processing in the case where the synchronous CPUs simultaneously detect errors.
  • FIG. 13 shows an example of a state in which the CPU is operating synchronously and no error is detected.
  • the CPU 10 and the CPU 12 are operating synchronously.
  • the CPU 11 and the CPU 13 are operating synchronously.
  • the CPU 10 and the CPU 11 are connected to the CPU controller 14 via a common bus 31.
  • the CPU 12 and the CPU 13 are connected to the CPU controller 14 via a common bus 32.
  • Each CPU executes normal processing of the OS (see # 1 to # 4 in FIG. 13).
  • FIG. 14 shows an example of a state where both CPUs operating in synchronization detect an error.
  • the CPU 10 and the CPU 12 simultaneously detect errors (see # 5 and # 6 in FIG. 14).
  • the CPU 10 and CPU 12 that detected the error notify the CPU controller 14 that the error has been detected (see # 7 in FIG. 14). Subsequently, the CPU 10 and the CPU 12 start firmware error processing (see # 8 and # 9 in FIG. 14).
  • FIG. 15 shows an example in which the CPU controller degenerates either one of the CPUs that detected the error and the CPU connected to the common bus with the CPU.
  • the CPU controller 14 degenerates the CPU 12 and the CPU 13 connected to the CPU 12 via the bus 32 (see # 10 in FIG. 15). If the error detection timing is different, the CPU controller 14 may degenerate the CPU that detected the error earlier. Subsequently, the CPU controller 14 issues a resynchronization interrupt to the CPUs 10 and 11 which are the CPUs that have not been degenerated (# 11 in FIG. 15).
  • FIG. 16 shows an example of a state in which the non-degenerate CPU receives a resynchronization interrupt from the CPU controller.
  • the CPU 10 that has detected an error and the CPU 11 that has not detected an error perform the following operations.
  • the CPU 10 executes firmware error processing in accordance with an instruction from the error processing program 201.
  • the resynchronization interrupt is pending (see # 12 in FIG. 16).
  • the CPU 10 notifies the CPU 11 that the firmware error processing has started according to the instruction of the error processing program 201 (see # 13 in FIG. 16). This notification process corresponds to the process of step S43 in FIG.
  • the CPU 11 When receiving a resynchronization interrupt from the CPU controller 14, the CPU 11 sets an interrupt mask and starts executing resynchronization processing in accordance with an instruction from the CPU resynchronization processing program 202 (see # 14 in FIG. 16). However, when notified from the CPU 10 that the error processing has started, the CPU 11 determines that the CPU 10 is in error processing in step S70 of FIG. 8 described above, and returns from the resynchronization processing (FIG. 9). Step S71). As a result, the CPU 11 cancels the interrupt mask and returns to normal processing (see # 15 in FIG. 16, steps S72 and S73 in FIG. 9). As a result, the CPU 11 is in a state where it can accept an OS error processing interrupt, which will be described later with reference to FIG.
  • FIG. 17 shows an example of a state in which the CPU 10 that executes OS error processing issues an OS error processing interrupt to the CPU 11.
  • the CPU 10 executes OS error processing (see # 16 in FIG. 17) and issues an OS error processing interrupt to the CPU 11 (see # 17 in FIG. 17). This process corresponds to the process in step S48 in FIG.
  • the CPU 11 accepts the OS error processing interrupt from the CPU 10 and starts the OS error processing (see # 18 in FIG. 17).
  • FIG. 18 shows an example of a state where the CPUs 10 and 11 have completed the execution of OS error processing.
  • the CPU 10 completes the execution of OS error processing and returns to firmware error processing (see # 19 in FIG. 18).
  • This process corresponds to the process of S52 of FIG.
  • the CPU 11 completes the execution of the OS error process and returns to the normal process (see # 20 in FIG. 18).
  • This process corresponds to the process of S106 in FIG.
  • FIG. 19 shows an example of a state in which the CPU 10 notifies the CPU 11 of the completion of error processing.
  • the CPU 10 notifies the CPU 11 that the error processing is completed according to the instruction of the CPU resynchronization processing program 202 (see # 21 in FIG. 19). This process corresponds to the process in step S53 of FIG.
  • FIG. 20 shows an example of a state in which a resynchronization interrupt is issued from the CPU 10 to the CPU 11.
  • the CPU 10 issues a resynchronization interrupt to the CPU 11 according to the instruction of the CPU resynchronization processing program 202 (see # 22 in FIG. 20). This process corresponds to the process in step S54 of FIG.
  • the CPU 11 accepts a resynchronization interrupt (see # 23 in FIG. 20).
  • FIG. 21 shows an example of a state in which the CPU 10 has returned from error processing.
  • the CPU 10 returns to the normal process from the error process, accepts the pending resynchronization interrupt, and starts the resynchronization process (see # 24 in FIG. 21).
  • the CPU 11 determines whether all CPUs that perform resynchronization have been prepared, that is, whether the CPU 10 is in a state of performing resynchronization processing. This process corresponds to the process in step S83 in FIG. In this example, the CPU 10 accepts a resynchronization interrupt. Accordingly, the CPU 11 determines that the CPU 10 is in a state of performing the resynchronization process, and as a result, the CPU 11 executes the resynchronization process (see # 25 in FIG. 21 and S84 in FIG. 11).
  • FIG. 22 shows an example of a state after the CPU 10 and the CPU 11 complete the resynchronization process.
  • the CPU 10 and the CPU 11 return to the normal process of the OS (see # 26 and # 27 in FIG. 22).
  • the CPU 10 and CPU 11 operate in synchronization with the CPU 12 and CPU 13, respectively.
  • the CPU 12 and CPU 13 execute normal processing of the OS (see # 28 and # 29 in FIG. 22).
  • the control method for the information processing apparatus when a control apparatus that is operating synchronously detects an error at the same time, the control apparatus that has not detected the error is the OS Error processing can be executed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

 互いに同期動作を行うCPU10とCPU12とがエラーの発生を検出した場合に、CPUコントローラ14が、CPU12とCPU13とを縮退させ、CPU10とCPU11とに対して再同期処理の実行を指示する。CPU11が、上記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行い、CPU10が、上記再同期処理の実行の指示を受けた場合に、再同期処理の実行を留保してエラー処理を開始するとともに、CPU11に指示して、割込みマスクを解除させる。

Description

情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
 本発明は、情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラムに関する。
 まず、一般的なCPU(Central Processing Unit :中央処理装置)同期動作について説明する。高信頼性が求められるコンピュータシステムでは、CPUを2重化し、お互いに同期動作させることで、一方のCPUに故障が発生した場合も、もう一方のCPUにて処理を継続する方式を採用している。
 CPUを同期動作している場合、CPUの故障やCPUの外部デバイスの故障等の影響により、CPUの同期ずれが発生する場合がある。CPUの同期ずれとは、同期動作しているCPU間で、CPUが発行する命令が異なることである。例えば、CPUが発行したリード命令のアドレスが、同期動作しているCPU間で互いに異なる場合や、リード命令を発行するタイミングが1クロックずれていることなどが、CPUの同期ずれに該当する。
 ここで、コンピュータシステムが備えるCPUがエラーを検出し、CPUの同期ずれが発生する場合として、以下に記述するケース1又はケース2の場合が考えられる。
 ケース1:同期動作しているCPUのうち、一方のCPUがエラーを検出した場合
 ケース2:同期動作しているCPUのうち、両方のCPUが同時にエラーを検出した場合
 一般的に、上記ケース1、ケース2の場合に対しては、以下の動作を行うことが望まれる。ケース1の場合については、コンピュータシステムが、エラーを検出したCPUを縮退する。もしくは、コンピュータシステムが、エラー発生が所定の回数以上になるまでは、CPUを再同期し、同期動作を継続する。ケース2の場合については、コンピュータシステムが、エラー内容を記録して、コンピュータシステムを停止する。但し、エラー内容が復旧可能なものである場合は、コンピュータシステムが、エラーを復旧した後、CPU同期動作にて動作を継続する。
 次に、コンピュータシステムが、CPUと接続されているCPUコントローラを備える構成をとる場合において、CPUで同期ずれが発生したときの、一般的なCPUコントローラの動作について説明する。CPUコントローラは、例えばノースブリッジ(North Bridge)と呼ばれるチップセット等である。
 CPU同期動作を行う場合は、一般に、CPUコントローラが、同期ずれの検出、エラーが発生した側のCPUの縮退などの制御を行う。一方、例えばINTEL(登録商標)アーキテクチャのCPUでは、CPUを縮退する場合、CPUコントローラと共通のバスで接続されているCPU単位でのみCPUを縮退させることが可能なものが存在する。つまり、コンピュータシステムが、共通のバス上に複数のCPUが接続される構成をとる場合、一つのCPUの中に複数のCPUコアが搭載されている構成をとる場合、又は、一つのCPUコアにて複数の論理CPUが動作する場合には、ある一つのCPUで同期ずれが発生すると、CPUコントローラは、同期ずれの発生したCPUと共通のバスで接続されている全てのCPUを縮退する。ここで、ある一つのCPUで同期ずれが発生した際は、同期ずれの発生したCPUと共通のバス上に接続されている全てのCPUが再同期処理を実行することが必要となる。
 次に、Windows(登録商標)等、汎用OS(Operating System:オペレーティングシステム)を使用し、CPUの再同期処理を行う場合について説明する。Windows等、汎用OSでは、OSの製造メーカと、コンピュータシステムの製造メーカとが異なる。また、汎用OSは様々な仕様のコンピュータシステムにて動作しなければならないため、汎用OSがコンピュータシステムの仕様に特化した処理を行うことは困難である。したがって、汎用OSにて、CPUの同期ずれに対応する処理を行う場合は、OSのサポートなしに、OSの通常動作に影響を与えないように処理を行う必要がある。具体的には以下の(1)及び(2)に示すような処理を行うことが必要となる。
(1)CPUの同期ずれを検出した場合、コンピュータシステムのBIOS(Basic Input/Output System :バイオス)等ファームウェア処理に制御を渡すための割込み(以下、同期ずれ割込みと呼ぶ)を発行し、BIOS等ファームウェア処理にて再同期処理を行う。
(2)OSの処理に影響を与えないように、再同期処理中は割込みをマスクするなどし、最小限の時間で再同期処理を行う。
 次に、CPU以外のデバイスに障害が発生した場合の、一般的なコンピュータシステムの動作について説明する。CPU以外のデバイスに障害が発生すると、同期動作を行っている両方のCPUが同時にエラーを検出する場合がある。例えば、CPUが、ビデオコントローラやLANコントローラ等のIO(Input Output:入出力)デバイスへのリードを行った際に、IOデバイスにてハードウェア障害が発生する場合である。IOデバイスにてハードウェア障害が発生すると、IOコントローラが障害を検出し、CPUに対して、障害発生を知らせるデータ(一般的にPoisonデータと呼ばれるデータなど)を返す。その結果、同期動作を行っている両方のCPUが、障害発生を知らせるデータを同時にリードし、エラーを検出する。
 同期動作しているCPUがCPU以外のデバイスの障害が原因となるエラーを同時に検出した場合、CPUは、同期動作を継続することが可能である場合が多い。同期動作しているCPUが全く同じ内容のエラーを検出するため、エラー処理も全く同じとなることが多いためである。一方、CPUコントローラは、同期動作している両方のCPUが同時にエラーを検出した場合、CPU自身が原因なのか、CPU以外のデバイスが原因なのか、また、CPUが同期動作したまま障害解析処理を行うことが可能なのか、不可能なのかを判断することができない。したがって、CPUコントローラは、両方のCPUが同時にエラーを検出した場合は、同期ずれとして処理するか、それとも同期動作のまま処理するかを、予め決定しておく必要がある。しかし、CPUコントローラが、同期動作のまま処理することを予め決定している場合は、以後、同期ずれが発生した時に、障害解析処理中に同期ずれが発生したのか、障害解析処理完了後に同期ずれが発生したのか、また、同期ずれの原因が元々のCPUエラーなのか、又は新たな要因なのか等の判定を行うことが困難である。障害解析処理中に、元々のCPUエラーが原因で同期ずれとなった場合は、エラーが1回発生したとして処理を行えばよいが、障害解析処理完了後に別要因にて同期ずれとなった場合は、エラーが2回発生したとして処理を行う必要がある。つまり、同期動作のまま処理すると決定した場合、その後別のエラーが発生した場合に正しく処理を行うことが困難となってしまう。したがって、同期動作を行っている両方のCPUが同時にエラーを検出した場合、CPUコントローラは、同期ずれとして処理し、BIOS等ファームウェアにて再同期の要否などを判断するのが一般的である。
 なお、既存のOS又はI/Oデバイスドライバを改造することなく、I/Oデバイスの二重化制御を行うFT(Fault Tolerant:フォールトトレラント)コンピュータシステムが提案されている。
特開2006-172220号公報
 例えば、同期動作を行っている両方のCPUが同時にエラーを検出した場合に、同期ずれとして処理するCPUコントローラを備えるコンピュータシステムの動作について説明する。
 BIOS等ファームウェアは、同期動作を行っているCPUが同時にエラーを検出した場合の障害解析処理として、以下の(a)及び(b)に示す動作を行う必要がある。
(a)CPUが検出したエラーに対して障害解析処理を行う。
(b)エラーが復旧可能なものである場合には、エラーを復旧した後、CPUを再同期させ、同期動作を継続する。
 上記(a)及び(b)に示す動作を実現するための、同期動作中のCPUが同時にエラーを検出した場合の処理について、図23乃至図26を参照して説明する。
 図23及び図24は、CPUがエラーを検出した場合の動作処理フローの例である。まず、CPU(のハードウェア)がエラーを検出する(図23のステップS1)。CPUが割込みマスクに設定し、ファームウェア(例えば、BIOS等)のエラー処理を開始する(ステップS2)。次に、CPUがファームウェアの指示に従って、エラー要因の調査を行い、エラーをログする(ステップS3)。続いて、CPUが、ファームウェアの指示に従って、障害が復旧可能かを判断する(ステップS4)。ステップS4において、CPUが、障害が復旧可能であると判断した場合、CPUが、ファームウェアの指示に従って、障害復旧処理を実行し(ステップS10)、図24のステップS12に進む。CPUが、障害が復旧可能でないと判断した場合は、CPUが、ファームウェアの指示に従って、OSのエラー処理をCallする(図23のステップS5)。OSのエラー処理は、OSが指示するエラー処理である。そして、CPUが、OSのエラー処理を開始する(ステップS6)。
 次に、CPUが、共通のバスで接続された他のCPUに対して、OSのエラー処理割込みを発行する(図24のステップS7)。OSのエラー処理割込みは、他のCPUにOSのエラー処理を実行させるための割込みである。ステップS7においては、CPUは、更に、他のCPUと同期をとりながらエラー処理を実行する。
 次に、OSが、障害が復旧可能であるかを判断する(ステップS8)。OSが、障害が復旧不可能であると判断した場合、OSがシステムを停止させる(ステップS9)。OSが、障害が復旧可能であると判断した場合、OSが障害復旧処理を行うとともに、ファームウェアのエラー処理への復帰処理を行う(ステップS11)。続いて、CPUが、ファームウェアの指示に従って、エラー処理から復帰する(ステップS12)。そして、CPUが、割込みマスクを解除して(ステップS13)、通常処理に戻る(ステップS14)。
 図25は、CPUコントローラが再同期割込みを発行した場合の動作処理フローの例である。まず、同期動作中の両方のCPUが同時にエラーを検出する(ステップS21)。次に、両方のCPUが、CPUコントローラに対して、エラー通知を同時に行う(ステップS22)。続いて、CPUコントローラが、一方のCPU(片側CPU)を縮退させ、縮退させなかったCPUと、このCPUと共通のバスに接続された他のCPUに再同期割込みを発行する(ステップS23)。再同期割込みは、同期ずれが発生したことを通知するための割込みである。続いて、CPUが、割込みマスクに設定し、ファームウェアの再同期処理、すなわち、ファームウェアの指示に従う再同期処理を開始する(ステップS24)。CPUが、ファームウェアの指示に従って、再同期処理を行うCPUが全て揃ったかを判断する(ステップS25)。CPUが、再同期処理を行うCPUが揃っていないと判断した場合は、ステップS25に戻る。CPUが、再同期処理を行うCPUが全て揃ったと判断した場合、CPUが、ファームウェアの指示に従って、再同期処理を実行する(ステップS26)。次に、CPUが、ファームウェアの指示に従って、再同期処理から復帰する(ステップS27)。続いて、CPUが、割込みマスクを解除し(ステップS28)、通常処理(CPU同期動作)に戻る(ステップS29)。
 図26は、図24のステップS7において発行されたOSのエラー処理割込みを受けたCPUの動作処理フローの例である。CPUがOSのエラー処理割込みを受けると(ステップS31)、CPUが、割込みマスクに設定し、OSのエラー処理を開始する(ステップS32)。すなわち、CPUが、OSの指示に従って、OSのエラー処理を実行する(ステップS33)。CPUが、OSのエラー処理から復帰すると(ステップS34)、CPUが、割込みマスクを解除して(ステップS35)、通常処理に戻る(ステップS36)。
 図27乃至図34は、同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。図27は、CPUが同期動作しており、エラーを検出していない状態の例を示す。図27において、CPU100とCPU102とが同期動作している。CPU101とCPU103とが同期動作している。CPU100とCPU101とが、共通のバス105を介してCPUコントローラ104と接続されている。また、CPU102とCPU103とが、共通のバス106を介してCPUコントローラ104と接続されている。各々のCPUは通常処理(OSの通常処理)を実行している(図27の#1乃至#4を参照)。
 図28は、同期動作している両方のCPUがエラーを検出した状態の例を示す。この例では、CPU100とCPU102とが同時にエラーを検出する(図28の#5及び#6を参照)。エラーを検出したCPU100とCPU102が、CPUコントローラ104に対してエラーを検出したことを通知する(図28の#7を参照)。続いて、CPU100とCPU102とが、ファームウェアのエラー処理を開始する(図28の#8及び#9を参照)。
 図29は、CPUコントローラが、エラーを検出したCPUのいずれか一方と、そのCPUと共通のバスに接続されているCPUとを縮退した状態の例を示す。この例では、CPUコントローラ104は、CPU102と、CPU102とバス106で接続されているCPU103とを縮退させる(図29の#10を参照)。エラー検出のタイミングが異なる場合、CPUコントローラ104が、より早くエラーを検出したCPUを縮退するようにしてもよい。続いて、CPUコントローラ104が、縮退させなかった側のCPUであるCPU100とCPU101とに対して、再同期割込みを発行する(図29の#11)。
 図30は、縮退しない側のCPUが再同期割込みを受けた状態の例を示す。この例では、エラーを検出したCPU100とエラーを検出していないCPU101とにおいて、以下の動作を実行する。CPU100が、ファームウェアのエラー処理を実行する。再同期割込みはペンディングされる(図30の#12を参照)。CPU101は、割込みマスクに設定した上で、CPUの再同期処理を開始する。CPUの再同期処理は、短時間で完了する必要がある。従って、CPU101は、割込みマスク状態のままCPUの再同期処理を実行する(図30の#13を参照)。
 図31は、OSのエラー処理を実行するCPU100が、CPU101にOSのエラー処理割込みを発行した状態の例を示す。CPU100が、OSのエラー処理を実行し(図31の#14を参照)、CPU101に対して、OSのエラー処理割込みを発行する(図31の#15を参照)。一方、CPU101は、CPU100からOSのエラー処理割込みを受けたにもかかわらず、再同期処理を実行する。すなわち、CPU101は、割込みマスク状態にあるため、OSのエラー処理を実行できない(図31の#16を参照)。
 図32は、CPU100がエラーの復旧処理を行った状態の例を示す。CPU100が、OSのエラー処理を実行する。障害復旧が可能である場合、障害復旧処理が行われる(図32の#17を参照)。
 図33は、CPU100がエラー処理から復帰した状態の例を示す。CPU100がエラー処理から通常処理に復帰し、ペンディングされていた再同期割込みを受け付け、再同期処理を開始する(図33の#18)。
 図34は、CPU100及びCPU101が再同期処理を完了した後の状態の例を示す。CPU100及びCPU101は、再同期処理を完了すると、OSの通常処理に復帰する(図34の#19、#20を参照)。CPU100、CPU101は、それぞれ、CPU102、CPU103と同期動作し、その結果、CPU102、CPU103は通常処理を実行する(図34の#21、#22を参照)。
 ここで、図27乃至図34を参照して前述したような、同期動作中のCPUが同時にエラーを検出した場合の処理には、以下に述べるような問題がある。Windows等、汎用OSを使用するコンピュータシステムにおいては、エラー処理を行う場合は、エラーを検出したCPUだけでなく、エラーを検出していないCPUもエラー処理を行う必要がある。例えば、エラー処理にてエラー発生時のメモリダンプ情報を取得する場合、コンピュータシステムの全てのCPUに割込みを発行し、キャッシュ情報をメモリにコピーさせた後に、メモリ情報をハードディスク等に格納し、後でエラー発生原因を調査する際などに使用する。
 しかし、図31を参照して前述したように、エラーを検出していないCPUであるCPU101は、割込みマスク状態にあるため、CPU100からOSのエラー処理割込みを受けたにもかかわらず、OSのエラー処理を実行できない。従って、図27乃至図34を参照して前述したような処理では、例えばWindows等、汎用OSのエラー処理にて発行されるOSのエラー処理割込みを、エラーを検出していないCPUが割込みを受けることができず、エラー処理を実行することができないという問題が発生する。
 本発明は、同期動作中の制御装置(例えばCPU)が同時にエラーを検出した場合において、エラーを検出していないCPUがOSのエラー処理を実行することができるようにする情報処理装置の提供を目的とする。
 また、本発明は、同期動作中の制御装置が同時にエラーを検出した場合において、エラーを検出していない制御装置がOSのエラー処理を実行することができるようにする情報処理装置の制御方法の提供を目的とする。
 また、本発明は、同期動作中の制御装置が同時にエラーを検出した場合において、エラーを検出していないCPUがOSのエラー処理を実行することができるようにする情報処理装置の制御プログラムの提供を目的とする。
 本情報処理装置は、互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させる縮退制御手段と、前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示する再同期処理指示手段とを備える。前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行い、前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる。
 また、本情報処理装置の制御方法は、互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させ、前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示し、前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行い、前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる。
 また、本情報処理装置の制御プログラムは、互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させる縮退制御手段と、前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示する再同期処理指示手段とを備える情報処理装置の制御プログラムであって、コンピュータに、前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行う処理と、前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる処理とを実行させる。
 本情報処理装置、本情報処理装置の制御方法、及び本情報処理装置の制御プログラムによれば、同期動作中の制御装置が同時にエラーを検出した場合において、エラーを検出していない制御装置がOSのエラー処理を実行することができる。
本実施形態の情報処理装置の構成例を示す図である。 本実施形態の情報処理装置の他の構成例を示す図である。 本実施形態の情報処理装置の他の構成例を示す図である。 本実施形態の情報処理装置の他の構成例を示す図である。 本実施形態の情報処理装置の他の構成例を示す図である。 情報処理装置が備えるCPUがエラーを検出した場合の動作処理フローの例を示す図である。 情報処理装置が備えるCPUがエラーを検出した場合の動作処理フローの例を示す図である。 CPUコントローラが再同期割込みを発行した場合の動作処理フローの例を示す図である。 CPUコントローラが再同期割込みを発行した場合の動作処理フローの例を示す図である。 エラーを検出したCPUから再同期割込みを受けるCPUの動作処理フローの例を示す図である。 エラーを検出したCPUから再同期割込みを受けるCPUの動作処理フローの例を示す図である。 OSのエラー処理割込みを受けたCPUの動作処理フローの例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 CPUがエラーを検出した場合の動作処理フローの例である。 CPUがエラーを検出した場合の動作処理フローの例である。 CPUコントローラが再同期割込みを発行した場合の動作処理フローの例である。 OSのエラー処理割込みを受けたCPUの動作処理フローの例である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。
符号の説明
  1 情報処理装置
 10、11、12、13 CPU
 14 CPUコントローラ
  15 ROM
 16 メモリ
 17 IOコントローラ
 18 ハードディスクコントローラ
 19 LANコントローラ
 20 ビデオコントローラ
 21 ハードディスク
 31、32 バス
141 CPUエラー通知受信部
142 CPU縮退制御部
143 再同期割込み発行部
151 ファームウェア
201 エラー処理プログラム
202 CPU再同期処理プログラム
211 OS
 図1は、本実施形態の情報処理装置の構成例を示す図である。本実施形態の情報処理装置1は、CPU10乃至13、CPUコントローラ14、ROM(Read Only Memory)15、メモリ16、IOコントローラ17、ハードディスクコントローラ18、LANコントローラ19、ビデオコントローラ20、ハードディスク21を備える。
 本実施形態においては、CPU10とCPU12とが互いに同期動作を行い、CPU11とCPU13とが互いに同期動作を行う。また、CPU10とCPU11とが、共通のバスであるバス31を介してCPUコントローラ14と接続されている。すなわち、CPU10とCPU11とが、第1の制御装置群を構成している。また、CPU12とCPU13とが、共通のバスであるバス32を介してCPUコントローラ14と接続されている。すなわち、CPU12とCPU13とが、第2の制御装置群を構成している。
 各々のCPU(のハードウェア)は、情報処理装置1におけるエラーの発生を検出した場合に、エラーの発生をCPUコントローラ14に通知する。また、後述するCPUコントローラ14によって縮退されなかった制御装置群に含まれるCPUは、BIOS等のファームウェア151が備えるエラー処理プログラム201又はCPU再同期処理プログラム202をROM15から読み込んで、読み込んだプログラムの指示に応じた処理を実行する。具体的には、エラーの発生を検出したCPUが、ROM15からエラー処理プログラム201を読み込んで、エラー処理プログラム201の指示に従った処理(ファームウェアのエラー処理)を実行する。また、後述するCPUコントローラ14が備える再同期割込み発行部143から発行される再同期割込みを受けたCPUが、ROM15からCPU再同期処理プログラム202を読み込んで、CPU再同期処理プログラム202の指示に従った処理(再同期処理)を実行する。なお、上記ファームウェアのエラー処理を実行したCPUは、障害が復旧不可能である場合に、OSのエラー処理をCallして、ハードディスク21に記憶されているOS211のエラー処理を実行する。
 CPUコントローラ14は、例えばノースブリッジである。CPUコントローラ14は、CPUエラー通知受信部141、CPU縮退制御部142、再同期割込み発行部143を備える。CPUエラー通知受信部141は、互いに同期動作を行うCPU、例えば、CPU10とCPU12がエラーの発生を検出した場合に、CPU10とCPU12とから、エラーが発生したことを示す通知を受ける。CPU縮退制御部142は、CPU10を含む第1の制御装置群と、CPU12を含む第2の制御装置群とのうち、第2の制御装置群を縮退させる縮退制御手段としての機能を有する。再同期割込み発行部143は、上記第1の制御装置群に含まれるCPUに対して再同期割込みを発行することによって、再同期処理の実行を指示する。再同期割込みの発行を受けたCPUは、割込みマスク設定を行った上で、ROM15からCPU再同期処理プログラム202を読み込んで、CPU再同期処理プログラム202の指示に従った処理を実行する。具体的には、上記第1の制御装置群に含まれるCPUのうち、エラーの発生を検出していないCPU11が、再同期割込みの発行を受けた場合に、割込みマスク設定を行う。ここで、第1の制御装置群に含まれるCPUのうち、エラーの発生を検出したCPU10は、エラーの発生の検出後にROM15からエラー処理プログラム201を読み込む。従って、CPU10は、再同期割込み発行部143からの再同期割込みの発行を受けた場合であっても、再同期処理の実行をペンディング(留保)して、エラー処理プログラム201の指示するエラー処理の実行を開始する。本実施形態に特有の動作として、CPU10は、エラー処理プログラム201の指示に従って、CPU10がエラー処理を開始したことをCPU11に通知する。この通知を受けたCPU11は、割込みマスク設定を解除する。すなわち、CPU10が、上記割込みマスク設定を行ったCPU11に指示して、割込みマスクを解除させる。これによって、CPU11が、OSのエラー処理割込みを受け付けられる状態になる。
 ROM15には、ファームウェア151が予め記憶される。ファームウェア151は、エラー処理プログラム201とCPU再同期処理プログラム202とを備える。エラー処理プログラム201は、エラー処理プログラム201を読み込んだCPU(例えば、CPU10)に指示して、ファームウェアのエラー処理を実行させる。また、エラー処理プログラム201は、エラー処理プログラム201を読み込んだCPUに指示して、このCPU(例えば、CPU10)がファームウェアのエラー処理を開始したことを、このCPUと共通のバスで接続された他のCPU(例えば、CPU11)に通知させる。また、エラー処理プログラム201は、エラー処理を実行したCPUについて障害が復旧可能であるかを判断する。エラー処理プログラム201が、障害が復旧可能であると判断した場合、エラー処理プログラム201(の指示を受けたCPU)が、このCPUとは異なる他のCPUに対してエラー処理の完了を通知するとともに、他のCPUに対して再同期割込みを発行する。
 CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPUに指示して、通常のCPUの再同期処理を実行させる。具体的には、CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPUに指示して、再同期処理を行うCPUが全て揃ったかを判断させる。例えば、CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPU10に指示して、CPU10と共通のバスで接続されているCPU11が再同期処理を実行できる状態にあるかを判断させる。再同期処理を行うCPUが全て揃った場合にのみ、CPU再同期処理プログラム202は、CPU(例えばCPU10)に指示して再同期処理を実行させる。また、CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPUに指示して、このCPUとは異なる他のCPUがエラー処理中であるかを判断させる。他のCPUがエラー処理中である場合、CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPUを再同期処理から通常処理に復帰させ、OSからの割込みを受け付けることができる状態にする。
 なお、図1中、周知のように、メモリ16は各々のCPUが処理の実行に必要なデータが記憶される記憶部である。IOコントローラ17は、CPUコントローラ14と、ビデオコントローラ20、LAN(Local Area Network)コントローラ19、ハードディスクコントローラ18との間の情報の入出力を制御する。ビデオコントローラ20は、各々のCPUの処理内容のモニタ(図示を省略)への表示処理を制御する。LANコントローラ19は、情報処理装置1が属するLANに対して各々のCPUの処理内容を送信する。ハードディスクコントローラ18は、ハードディスク21からのデータの読み込み処理、ハードディスク21へのデータの書き込み処理を制御する。
本実施形態の情報処理装置の機能は、CPUとその上で実行されるプログラムにより実現される。このプログラムは、コンピュータが読み取り可能な記録媒体に格納することができ、該記録媒体に記録して提供され、又は、通信インタフェースを介してネットワークを利用した送受信により提供される。
 本実施形態の情報処理装置が、図2に示すような構成を有する情報処理装置2-1であってもよい。情報処理装置2-1においては、図1に示すCPUコントローラ14と同様の機能(CPUコントローラ機能)を有するCPUコントローラ30と、図1に示す各々のCPUと同様の機能を有するCPUコア41乃至44とが、一つのCPU3内に設けられている。また、本実施形態の情報処理装置が、図3に示すような構成を有する情報処理装置2-2であってもよい。情報処理装置2-2においては、ROM15がIOコントローラ17に接続されている。
 また、本実施形態の情報処理装置が、図4に示すような構成を有する情報処理装置2-3であってもよい。情報処理装置2-3は、2つのCPUコントローラ14ー1、14-2を備える。CPU200とCPU201とがCPUコントローラ14-1に接続され、CPU202とCPU203とがCPUコントローラ14-2に接続されている。また、CPUコントローラ14-1にメモリ16-1、ROM15-1が接続され、CPUコントローラ14-2にメモリ16-2、ROM15-2が接続されている。メモリ16-1、16-2は図1に示すメモリ16と同様の機能を有する。ROM15-1、ROM15-2は、図1に示すROM15と同様の機能を有する。CPUコントローラ14-1、14-2は、図1に示すCPUコントローラ14と同様のCPUコントローラ機能を有する。また、CPUコントローラ14-1、14-2は、互いに、自分に接続されているCPUの動作状況を相手のCPUコントローラに通知し合って、自分に接続されているCPUが相手のCPUコントローラに接続されているCPUと同期しているかを判断する。例えば、CPUコントローラ14-1が、CPU200とCPU201の動作状況をCPUコントローラ14-2に通知し、CPUコントローラ14-2が、CPU202がCPU200と同期しているか、また、CPU203がCPU201と同期しているかを判断する。各々のCPUコントローラは、自分に接続されているCPUが相手のCPUコントローラに接続されているCPUと同期していないと判断した場合は、自分に接続されているCPUに対して再同期処理を行うように指示する(CPU同期処理制御を実行する)。
 また、本実施形態の情報処理装置が、図5に示すような構成を有する情報処理装置2-4であってもよい。情報処理装置2-4においては、図4に示すCPUコントローラ14-1と同様の機能を有するCPUコントローラ14-3と、図4に示すCPU200、201と同様の機能を有するCPUコア300、301とが、一つのCPU3-1内に設けられている。また、図4に示すCPUコントローラ14-2と同様の機能を有するCPUコントローラ14-4と、図4に示すCPU202、203と同様の機能を有するCPUコア302、303とが、一つのCPU3-2内に設けられている。
 以下に、図1を参照して前述した情報処理装置1における、同期動作中のCPUが同時にエラーを検出した場合の処理について、図6乃至図22を参照して説明する。図6及び図7は、情報処理装置1が備えるCPUがエラーを検出した場合の動作処理フローの例である。図1に示すCPU10とCPU11とが同時にエラーを検出したものとし、図6、図7では、エラーを検出したCPU10の動作処理を例にとって説明する。
 情報処理装置1において障害が発生すると、CPU10がエラーを検出する(図6のステップS41)。CPU10が、割込みマスクに設定し、ファームウェアのエラー処理、すなわち、ファームウェア151のエラー処理プログラム201の指示に従ったエラー処理を開始する(ステップS42)。次に、CPU10が、エラー処理プログラム201の指示に従って、図1に示すCPU11に対して、ファームウェアのエラー処理を開始したことを通知する(ステップS43)。続いて、CPU10が、エラー処理プログラム201の指示に従って、エラー要因の調査を行い、エラーをログする(ステップS44)。次に、CPU10が、エラー処理プログラム201の指示に従って、障害が復旧可能かを判断する(ステップS45)。ステップS45において、CPU10が、障害が復旧可能であると判断した場合、CPU10が、エラー処理プログラム201の指示に従って、障害復旧処理を実行し(ステップS51)、図7のステップS53に進む。CPU10が、障害が復旧可能でないと判断した場合は、CPU10が、エラー処理プログラム201の指示に従って、OSのエラー処理をCallする(図6のステップS46)。そして、CPU10がOSのエラー処理、すなわち、OS211(図1を参照)が指示するエラー処理を開始し(ステップS47)、図7のステップS48に進む。
 次に、CPUが、共通のバス31で接続された他のCPUであるCPU11に対して、OSのエラー処理割込みを発行する(図7のステップS48)。続いて、OS211が、障害が復旧可能であるかを判断する(ステップS49)。OS211が、障害が復旧不可能であると判断した場合、OS211がシステムを停止させる(ステップS50)。OS211が、障害が復旧可能であると判断した場合、OS211が障害復旧処理を行うとともに、ファームウェアのエラー処理への復帰処理を行う(ステップS52)。続いて、CPU10が、ファームウェア151のエラー処理プログラム201の指示に従って、他のCPU(CPU11)に対してエラー処理の完了を通知する(ステップS53)。また、CPU10が、エラー処理プログラム201の指示に従って、他のCPU(CPU11)に対して再同期割込みを発行する(ステップS54)。CPU10が、エラー処理プログラム201の指示に従って、エラー処理から復帰する(ステップS55)。そして、CPU10が、割込みマスクを解除して(ステップS56)、通常処理に戻る(ステップS57)。
 図8及び図9は、CPUコントローラが再同期割込みを発行した場合の動作処理フローの例である。まず、図1に示す情報処理装置1が備える同期動作中のCPU10、12が、同時にエラーを検出する(図8のステップS61)。次に、CPU10、12が、CPUコントローラ14に対して、エラー通知を同時に行う(ステップS62)。続いて、CPUコントローラ14が、CPU12及びCPU12とバス32で接続されているCPU13(片側CPU)を縮退させ、縮退させなかったCPU10と、このCPU10とバス31で接続されているCPU11とに対して再同期割込みを発行する(ステップS63)。CPU11が、割込みマスクに設定し、ファームウェアの再同期処理を開始する(ステップS64)。なお、図8のステップS64以下の処理、図9のステップS66以下の処理、ステップS71以下の処理は、CPU10とCPU11とに共通する処理であり、この例では、例えばCPU11における処理を説明する。CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理を行うCPUが全て揃ったか、すなわち、CPU11とバス31で接続された全てのCPUが再同期処理を実行できる状態にあるかを判断する(ステップS65)。図1に示す例では、CPU11は、CPU10が再同期処理を実行できる状態にあるかを判断する。CPU11が、再同期処理を行うCPUが全て揃ったと判断した場合、CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理を実行する(図9のステップS66)。CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理から復帰する(ステップS67)。続いて、CPU11が、割込みマスクを解除し(ステップS68)、通常処理(CPU同期動作)に戻る(ステップS69)。
 図8のステップS65において、CPU11が、再同期処理を行うCPUが全て揃っていないと判断した場合、CPU11が、CPU11とバス31で接続された他のCPUがエラー処理中であるかを判断する(図8のステップS70)。例えば、CPU11は、CPU10がエラー処理中であるかを判断する。CPU11が、他のCPUがエラー処理中でないと判断した場合は図8のステップS65に戻る。CPU11が、他のCPUがエラー処理中であると判断した場合は、CPU11は、CPU再同期処理プログラム202の指示に従って、再同期処理から復帰する(図9のステップS71)。続いて、CPU11が、割込みマスクを解除して(ステップS72)、通常処理(CPU同期ずれ動作)に戻る(ステップS73)。
 図10及び図11は、エラーを検出したCPUから再同期割込みを受けるCPUの動作処理フローの例である。図10及び図11では、エラーを検出したCPU10(図1を参照)から再同期割込みを受けるCPU11の動作処理を例にとって説明する。
 まず、CPU11が、エラーを検出したCPU10から再同期割込みを受ける(図10のステップS81)。CPU11が、割込みマスクに設定し、CPU再同期処理プログラム202の指示に従って再同期処理を開始する(ステップS82)。次に、CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理を行うCPUが全て揃ったか、すなわち、CPU11とバス31で接続された全てのCPUが再同期処理を実行できる状態にあるかを判断する(ステップS83)。図1に示す例では、CPU11は、CPU10が再同期処理を実行できる状態にあるかを判断する。CPU11が、再同期処理を行うCPUが全て揃ったと判断した場合、CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理を実行する(図11のステップS84)。CPU10が、CPU再同期処理プログラム202の指示に従って、再同期処理から復帰する(ステップS85)。続いて、CPU10が、割込みマスクを解除し(ステップS86)、通常処理(CPU同期動作)に戻る(ステップS87)。
 CPU11が、図10のステップS83において再同期処理を行うCPUが全て揃っていないと判断した場合、CPU11が、CPU11とバス31で接続された他のCPUがエラー処理中であるかを判断する(図10のステップS88)。例えば、CPU11は、CPU10がエラー処理中であるかを判断する。CPU11が、他のCPUがエラー処理中でないと判断した場合は図10のステップS83に戻る。CPU11が、他のCPUがエラー処理中であると判断した場合は、CPU11は、CPU再同期処理プログラム202の指示に従って、再同期処理から復帰する(図11のステップS89)。続いて、CPU11が、割込みマスクを解除して(ステップS90)、通常処理(CPU同期ずれ動作)に戻る(ステップS91)。
 図12は、図7のステップS48において発行されたOSのエラー処理割込みを受けたCPUの動作処理フローの例である。CPU11がOSのエラー処理割込みを受けると(ステップS101)、CPU11が割込みマスクに設定し、OSのエラー処理を開始する(ステップS102)。すなわち、CPU11が、OSの指示に従ってOSのエラー処理を実行する(ステップS103)。CPU11が、OSのエラー処理から復帰すると(ステップS104)、CPU11が、割込みマスクを解除して(ステップS105)、通常処理に戻る(ステップS106)。
 図13乃至図22は、同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。図13は、CPUが同期動作しており、エラーを検出していない状態の例を示す。図13において、CPU10とCPU12とが同期動作している。また、CPU11とCPU13とが同期動作している。CPU10とCPU11とが、共通のバス31を介してCPUコントローラ14と接続されている。また、CPU12とCPU13とが、共通のバス32を介してCPUコントローラ14と接続されている。各々のCPUはOSの通常処理を実行している(図13の#1乃至#4を参照)。
 図14は、同期動作している両方のCPUがエラーを検出した状態の例を示す。この例では、CPU10とCPU12とが同時にエラーを検出する(図14の#5及び#6を参照)。エラーを検出したCPU10とCPU12が、CPUコントローラ14に対してエラーを検出したことを通知する(図14の#7を参照)。続いて、CPU10とCPU12とが、ファームウェアのエラー処理を開始する(図14の#8及び#9を参照)。
 図15は、CPUコントローラが、エラーを検出したCPUのいずれか一方と、そのCPUと共通のバスに接続されているCPUとを縮退した状態の例を示す。この例では、CPUコントローラ14は、CPU12と、CPU12とバス32で接続されているCPU13とを縮退させる(図15の#10を参照)。エラー検出のタイミングが異なる場合、CPUコントローラ14が、より早くエラーを検出したCPUを縮退するようにしてもよい。続いて、CPUコントローラ14が、縮退させなかった側のCPUであるCPU10とCPU11とに対して、再同期割込みを発行する(図15の#11)。
 図16は、縮退しない側のCPUがCPUコントローラから再同期割込みを受けた状態の例を示す。この例では、エラーを検出したCPU10とエラーを検出していないCPU11とにおいて、以下の動作を実行する。CPU10は、エラー処理プログラム201の指示に従って、ファームウェアのエラー処理を実行する。再同期割込みはペンディングされる(図16の#12を参照)。また、CPU10は、エラー処理プログラム201の指示に従って、CPU11に対して、ファームウェアのエラー処理を開始したことを通知する(図16の#13を参照)。この通知処理は、前述した図6のステップS43の処理に対応する。CPU11は、CPUコントローラ14から再同期割込みを受けると、割込みマスクに設定し、CPU再同期処理プログラム202の指示に従って再同期処理の実行を開始する(図16の#14を参照)。しかし、CPU11は、CPU10からエラー処理を開始したことを通知されると、前述した図8のステップS70において、CPU10がエラー処理中であると判断して、再同期処理処理から復帰する(図9のステップS71を参照)。その結果、CPU11は、割込みマスクを解除して、通常処理に復帰する(図16の#15、図9のステップS72、S73を参照)。これによって、CPU11が図17を参照して後述するOSのエラー処理割込みを受け付けることができる状態になる。
 図17は、OSのエラー処理を実行するCPU10が、CPU11にOSのエラー処理割込みを発行した状態の例を示す。CPU10が、OSのエラー処理を実行し(図17の#16を参照)、CPU11に対して、OSのエラー処理割込みを発行する(図17の#17を参照)。この処理は、前述した図7のステップS48の処理に対応する。CPU11は、CPU10からのOSのエラー処理割込みを受け付けて、OSのエラー処理を開始する(図17の#18を参照)。
 図18は、CPU10、11が、OSのエラー処理の実行を完了した状態の例を示す。CPU10がOSのエラー処理の実行を完了し、ファームウェアのエラー処理に復帰する(図18の#19を参照)。この処理は、前述した図7のS52の処理に対応する。また、CPU11が、OSのエラー処理の実行を完了し、通常処理に復帰する(図18の#20を参照)。この処理は、前述した図12のS106の処理に対応する。
 図19は、CPU10からCPU11へエラー処理の完了を通知する状態の例を示す。CPU10が、CPU再同期処理プログラム202の指示に従って、CPU11に対して、エラー処理が完了したことを通知する(図19の#21を参照)。この処理は、前述した図7のステップS53の処理に対応する。
 図20は、CPU10からCPU11へ再同期割込みを発行した状態の例を示す。CPU10が、CPU再同期処理プログラム202の指示に従って、CPU11に対して、再同期割込みを発行する(図20の#22を参照)。この処理は、前述した図7のステップS54の処理に対応する。CPU11が、再同期割込みを受け付ける(図20の#23を参照)。
 図21は、CPU10がエラー処理から復帰した状態の例を示す。CPU10がエラー処理から通常処理に復帰し、ペンディングされていた再同期割込みを受け付け、再同期処理を開始する(図21の#24を参照)。CPU11は、再同期を行う全てのCPUが揃ったか、すなわち、CPU10が再同期処理を行う状態にあるかを判断する。この処理は、前述した図10のステップS83の処理に対応する。この例では、CPU10は、再同期割込みを受け付けている。従って、CPU11は、CPU10が再同期処理を行う状態にあると判断し、その結果、CPU11が、再同期処理を実行する(図21の#25、図11のS84を参照)。
 図22は、CPU10及びCPU11が再同期処理を完了した後の状態の例を示す。CPU10及びCPU11は、再同期処理を完了すると、OSの通常処理に復帰する(図22の#26、#27を参照)。CPU10、CPU11は、それぞれ、CPU12、CPU13と同期動作し、その結果、CPU12、CPU13はOSの通常処理を実行する(図22の#28、#29を参照)。
 本情報処理装置、本情報処理装置の制御方法、及び本情報処理装置の制御プログラムによれば、同期動作中の制御装置が同時にエラーを検出した場合において、エラーを検出していない制御装置がOSのエラー処理を実行することができる。

Claims (12)

  1.  互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させる縮退制御手段と、
     前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示する再同期処理指示手段とを備え、
     前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行い、
     前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる
     ことを特徴とする情報処理装置。
  2.  前記第1の制御装置が、前記割込みマスクを解除させた制御装置に対してエラー処理割込みを発行して、エラー処理を実行させる
     ことを特徴とする請求項1記載の情報処理装置。
  3.  エラー処理の実行を完了した前記第1の制御装置が、前記エラー処理を実行させた制御装置に対して再同期割込みを発行して、再同期処理を実行させる
     ことを特徴とする請求項2記載の情報処理装置。
  4.  前記第1の制御装置から前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったかを判断し、前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったと判断した場合に、再同期処理を実行する
     ことを特徴とする請求項3記載の情報処理装置。
  5.  互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させ、
     前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示し、
     前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行い、
     前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる
     ことを特徴とする情報処理装置の制御方法。
  6.  前記第1の制御装置が、前記割込みマスクを解除させた制御装置に対してエラー処理割込みを発行して、エラー処理を実行させる
     ことを特徴とする請求項5記載の情報処理装置の制御方法。
  7.  エラー処理の実行を完了した前記第1の制御装置が、前記エラー処理を実行させた制御装置に対して再同期割込みを発行して、再同期処理を実行させる
     ことを特徴とする請求項6記載の情報処理装置の制御方法。
  8.  前記第1の制御装置から前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったかを判断し、前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったと判断した場合に、再同期処理を実行する
     ことを特徴とする請求項7記載の情報処理装置の制御方法。
  9.  互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させる縮退制御手段と、前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示する再同期処理指示手段とを備える情報処理装置の制御プログラムであって、
     コンピュータに、
     前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行う処理と、
     前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる処理とを実行させる
     ことを特徴とする情報処理装置の制御プログラム。
  10.  前記コンピュータに、更に、
     前記第1の制御装置が、前記割込みマスクを解除させた制御装置に対してエラー処理割込みを発行して、エラー処理を実行させる処理を実行させる
     ことを特徴とする請求項9記載の情報処理装置の制御プログラム。
  11.  前記コンピュータに、更に、
     エラー処理の実行を完了した前記第1の制御装置が、前記エラー処理を実行させた制御装置に対して再同期割込みを発行して、再同期処理を実行させる処理を実行させる
     ことを特徴とする請求項9記載の情報処理装置の制御プログラム。
  12.  前記コンピュータに、更に、
     前記第1の制御装置から前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったかを判断し、前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったと判断した場合に、再同期処理を実行する処理を実行させる
     ことを特徴とする請求項9記載の情報処理装置の制御プログラム。
PCT/JP2009/001038 2009-03-09 2009-03-09 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム WO2010103562A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011503554A JP5278530B2 (ja) 2009-03-09 2009-03-09 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
PCT/JP2009/001038 WO2010103562A1 (ja) 2009-03-09 2009-03-09 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
EP09841396.6A EP2407885A4 (en) 2009-03-09 2009-03-09 INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING DEVICE CONTROL METHOD, AND INFORMATION PROCESSING DEVICE CONTROL PROGRAM
US13/225,146 US8677179B2 (en) 2009-03-09 2011-09-02 Information processing apparatus for performing error process when controllers in synchronization operation detect error simultaneously

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/001038 WO2010103562A1 (ja) 2009-03-09 2009-03-09 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/225,146 Continuation US8677179B2 (en) 2009-03-09 2011-09-02 Information processing apparatus for performing error process when controllers in synchronization operation detect error simultaneously

Publications (1)

Publication Number Publication Date
WO2010103562A1 true WO2010103562A1 (ja) 2010-09-16

Family

ID=42727875

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/001038 WO2010103562A1 (ja) 2009-03-09 2009-03-09 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム

Country Status (4)

Country Link
US (1) US8677179B2 (ja)
EP (1) EP2407885A4 (ja)
JP (1) JP5278530B2 (ja)
WO (1) WO2010103562A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128697A (ja) * 2010-12-16 2012-07-05 Hitachi Ltd 情報処理装置
JP2018518762A (ja) * 2015-05-28 2018-07-12 オラクル・インターナショナル・コーポレイション 自動異常検出および解決システム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7058984B2 (ja) * 2017-11-20 2022-04-25 キヤノン株式会社 ファームウェア組み込み装置、制御方法、プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695902A (ja) * 1992-09-17 1994-04-08 Hitachi Ltd プロセッサ二重化方式の情報処理装置
JP2006172220A (ja) 2004-12-16 2006-06-29 Nec Corp フォールトトレラント・コンピュータシステム
JP2008046942A (ja) * 2006-08-18 2008-02-28 Nec Corp フォールトトレラントコンピュータ、そのトランザクション同期制御方法
WO2008120352A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、エラー処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4428044A (en) * 1979-09-20 1984-01-24 Bell Telephone Laboratories, Incorporated Peripheral unit controller
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US5748873A (en) 1992-09-17 1998-05-05 Hitachi,Ltd. Fault recovering system provided in highly reliable computer system having duplicated processors
DE69435090T2 (de) * 1993-12-01 2009-06-10 Marathon Technologies Corp., Stow Rechnersystem mit Steuereinheiten und Rechnerelementen
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7356733B2 (en) * 2004-10-25 2008-04-08 Hewlett-Packard Development Company, L.P. System and method for system firmware causing an operating system to idle a processor
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
US7549082B2 (en) * 2005-04-28 2009-06-16 Hewlett-Packard Development Company, L.P. Method and system of bringing processors to the same computational point
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695902A (ja) * 1992-09-17 1994-04-08 Hitachi Ltd プロセッサ二重化方式の情報処理装置
JP2006172220A (ja) 2004-12-16 2006-06-29 Nec Corp フォールトトレラント・コンピュータシステム
JP2008046942A (ja) * 2006-08-18 2008-02-28 Nec Corp フォールトトレラントコンピュータ、そのトランザクション同期制御方法
WO2008120352A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、エラー処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2407885A4

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128697A (ja) * 2010-12-16 2012-07-05 Hitachi Ltd 情報処理装置
JP2018518762A (ja) * 2015-05-28 2018-07-12 オラクル・インターナショナル・コーポレイション 自動異常検出および解決システム
US10853161B2 (en) 2015-05-28 2020-12-01 Oracle International Corporation Automatic anomaly detection and resolution system

Also Published As

Publication number Publication date
EP2407885A4 (en) 2013-07-03
US8677179B2 (en) 2014-03-18
JPWO2010103562A1 (ja) 2012-09-10
JP5278530B2 (ja) 2013-09-04
US20120005525A1 (en) 2012-01-05
EP2407885A1 (en) 2012-01-18

Similar Documents

Publication Publication Date Title
US6754792B2 (en) Method and apparatus for resynchronizing paired volumes via communication line
CN1326042C (zh) 容错计算机***及其再同步方法和再同步程序
US7519856B2 (en) Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system
US7500139B2 (en) Securing time for identifying cause of asynchronism in fault-tolerant computer
JP2004046599A (ja) フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US9323823B2 (en) Method for operating a redundant automation system
US8555012B2 (en) Data storage apparatus
JP5278530B2 (ja) 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
WO2010100757A1 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP2008146447A (ja) フォールトトレラントコンピュータ
EP2372554B1 (en) Information processing device and error processing method
JP2004046455A (ja) 情報処理装置
KR100583214B1 (ko) 정보 처리 장치
JP2009098988A (ja) フォルトトレラントコンピュータシステム
JP2008146239A (ja) 二重化制御装置、及びそのメモリ部の複数ビットエラーの自動修復方法
US20190121561A1 (en) Redundant storage system and failure recovery method in redundant storage system
US9311010B2 (en) Disk array unit, and method and program for controlling power source in disk array unit
JP5556086B2 (ja) 二重化システム、及び、二重化方法
JP6852910B2 (ja) フォールトトレラント装置、障害復帰方法、およびプログラム
JPH04360242A (ja) 二重化システムの系切替装置およびその方法
CN116909759A (zh) 信息处理方法、装置及设备、介质和控制器集群
CN113905056A (zh) 一种新型环形3dc的位图管理方法、***、设备及介质
JPS63136142A (ja) 論理装置のエラ−回復方式
JP2004355776A (ja) 携帯型情報処理装置
JPS62172436A (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: 09841396

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011503554

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009841396

Country of ref document: EP