WO2010100757A1 - 演算処理システム、再同期方法、およびファームプログラム - Google Patents

演算処理システム、再同期方法、およびファームプログラム Download PDF

Info

Publication number
WO2010100757A1
WO2010100757A1 PCT/JP2009/054305 JP2009054305W WO2010100757A1 WO 2010100757 A1 WO2010100757 A1 WO 2010100757A1 JP 2009054305 W JP2009054305 W JP 2009054305W WO 2010100757 A1 WO2010100757 A1 WO 2010100757A1
Authority
WO
WIPO (PCT)
Prior art keywords
cpu
address
ram
synchronization
multiplexed
Prior art date
Application number
PCT/JP2009/054305
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/JP2009/054305 priority Critical patent/WO2010100757A1/ja
Priority to JP2011502557A priority patent/JP5287974B2/ja
Publication of WO2010100757A1 publication Critical patent/WO2010100757A1/ja
Priority to US13/137,671 priority patent/US20110320683A1/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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

Definitions

  • This case relates to an arithmetic processing system in which multiple sets of multiplexed CPUs that execute programs in synchronization with each other, a resynchronization method in the arithmetic processing system, and a firmware program for resynchronization.
  • FIG. 1 is a block diagram showing an example of the configuration of an arithmetic processing system.
  • the arithmetic processing system 10 shown in FIG. 1 includes three system boards 20_1, 20_2, and 20_3.
  • Each system board 20_1, 20_2, 20_3 includes two CPUs 21_A, 21_B; 21_C, 21_D; 21_E, 21_F, respectively.
  • Each system board 20_1, 20_2, 20_3 includes main memory RAMs 22_1, 22_2, 22_3, firmware ROMs 23_1, 23_2, 23_3, and system control circuits 24_1, 24_2, 24_3.
  • the two CPUs 21_A, 21_B; 21_C, 21_D; 21_E, 21_F of the system boards 20_1, 20_2, and 20_3 are synchronous dual CPUs that execute the same processing in synchronization with each other.
  • the main storage RAMs 22_1, 22_2, and 22_3 are random access memories that are used as work areas in the processing in the CPUs 21_A, 21_B; 21_C, 21_D; 21_E, 21_F. These main memory RAMs 22_1, 22_2, and 22_3 are defined by one address map over the entire main memory RAMs 22_1, 22_2, and 22_3 so that the addresses do not overlap each other. By doing so, the contents of the main memory RAM of other system boards can be referred to by any of the system boards 20_1, 20_2, and 20_3. Therefore, data can be exchanged between the system boards 20_1, 20_2, and 20_3.
  • firmware programs for starting up the synchronous dual CPU in a synchronized state are stored in the firmware ROMs 23_1, 23_2, and 23_3.
  • FIG. 1 shows three system boards 20_1, 20_2, and 20_3, the number of system boards is not limited to three.
  • the arithmetic processing system 10 shown in FIG. 1 includes three IO control circuits 30_1, 30_2, and 30_3 and an interconnect 40.
  • these three IO control circuits 30_1, 30_2, and 30_3 do not ask what kind of IO the control circuit controls.
  • the number of IO control circuits constituting one arithmetic processing system 10 is not limited to three, and does not need to match the number of system boards.
  • the interconnect 40 is responsible for signal transmission between the system boards 20_1, 20_2, and 20_3 and the IO control circuits 30_1, 30_2, and 30_3.
  • the arithmetic processing device 10 further includes a system management device 50.
  • the system management device 50 is responsible for overall management of the arithmetic processing system 10.
  • a method of resynchronizing without performing a system reboot in the arithmetic processing system configured as shown in FIG. 1 is shown below.
  • a description will be given assuming that loss of synchronization has occurred in one of the two CPUs 21_A and 21_B mounted on the system board 20_1.
  • the system control circuit 24_1 detects redundancy (out of synchronization) due to an error in the one-system CPU 21_A, the abnormal CPU 21_A is disconnected.
  • One-system stop is notified by an interrupt notification to the normal CPU 21_B of the synchronous pair.
  • the CPUs 21_A and 21_B are reset for resynchronization.
  • the CPUs 21_A and 21_B being reset cannot respond to requests such as interrupts from the other CPUs 21_C, 21_D, 21_E, and 21_F and the IO control circuits 30_1, 30_2, and 30_3.
  • interruptions to the CPUs 21_A and 21_B to be resynchronized from the other CPUs 21_C, 21_D, 21_E, and 21_F and the IO control circuits 30_1, 30_2, and 30_3 are stopped.
  • the OS Operating System
  • the normal CPU 21_B saves the minimum CPU internal information necessary for resynchronization to the main memory RAM 22_1, and also saves the CPU cache to the main memory RAM 22_1.
  • the CPUs 21_A and 21_B are reset at the same time to restart the CPU synchronous operation.
  • the reset CPUs 21_A and 21_B read the firmware from the firmware ROM 23_1, start the firmware, and then restore the information saved in the main memory RAM 22_1 to the CPUs 21_A and 21_B. Finally, the suspension of interruption to the CPUs 21_A and 21_B to be resynchronized is released, and the OS is restored.
  • FIG. 2 is a diagram showing a time sequence in the above resynchronization method.
  • CPU 21_A is referred to as “CPU A”, the CPU 21_B as “CPU B”, and the other CPUs 21_C, 21_D, 21_E, and 21_F as “different CPUs”.
  • CPU A and CPU B perform reset and firmware read, and further perform firmware processing such as restoration of information saved in the main memory RAM and cancellation of interrupt inhibition. Thereafter, the CPU A, CPU B, and other CPUs all return to normal operation.
  • the flash ROM since it takes time to read the firmware from the firmware ROM, it takes a long time to complete resynchronization.
  • the flash ROM when employed as the firmware ROM, the flash ROM normally operates at a low frequency (about several tens of MHz) and has a small bus width, and therefore, a read time for starting the firmware from the flash ROM is long.
  • the firmware ROM is provided for each CPU and each CPU group, while the main memory RAM is one that avoids duplication of addresses in the entire system as described above. It is defined in the address map.
  • the firmware ROM may be used not only for reading but also for writing for storing error information and holding configuration information. Since error information or the like cannot be stored in the volatile RAM, if the ROM and RAM are switched at the end portion as in the conventional proposal, exclusive control between the CPUs becomes necessary, and the control becomes complicated.
  • the problem of the arithmetic processing system, resynchronization method, and firmware program disclosed in this disclosure is that an arithmetic processing system in which a plurality of sets of multiplexed CPUs that operate in synchronization is mounted has a reduced downtime when an out-of-synchronization occurs. The purpose is to return to a highly reliable state.
  • the first arithmetic processing system of the arithmetic processing systems disclosed in the present disclosure is an arithmetic processing system having a plurality of multiplexed CPUs, each of which includes two or more CPUs and executes processing in synchronization with each other.
  • a firmware ROM storing a firmware program for starting multiplexed CPUs in a synchronized state;
  • a main memory RAM defined by one address map as a whole;
  • a firmware copying unit that copies the firmware program stored in the firmware ROM to the main memory RAM at the time of system boot;
  • a RAM address register in which a copy destination address where the farm program is copied is stored in the main storage RAM;
  • a RAM address storage unit for storing the address of the copy destination of the firmware program by the firmware copy unit of the main memory RAM in the RAM address register;
  • An out-of-synchronization detection unit for detecting out-of-synchronization of the multiplexed CPU; When the out-of-synchronization detection unit detects that out-of-synchronization is detected, the RAM address register is referred to, and the address for reading the firmware program stored in the firmware ROM is replaced with the address to which the firmware program is copied in the main storage RAM.
  • An arithmetic processing system having an address switching unit.
  • a second arithmetic processing system of the arithmetic processing systems disclosed in the present disclosure includes a plurality of multiplexed CPUs each including two or more CPUs, and a system management device that manages the plurality of multiplexed CPUs.
  • An arithmetic processing system comprising: A firmware ROM storing a firmware program for starting multiplexed CPUs in a synchronized state; A main memory RAM defined by one address map as a whole; An out-of-synchronization detection unit for detecting out-of-synchronization of the multiplexed CPU and reporting to the system management device; A disconnection processing unit that receives the disconnection instruction from the system management device and logically disconnects the multiplexed CPU from the arithmetic processing system; When the system management apparatus receives a report of out-of-synchronization of any one of the plurality of sets of multiplexed CPUs, the system management apparatus is directed to the CPU that continues normal operation among the first multiplexed CPUs that have lost synchronization.
  • the arithmetic processing system includes a disconnection instructing unit that instructs logical disconnection of the first multiplexed CPU from the arithmetic processing system.
  • the first resynchronization method of the resynchronization methods disclosed herein is a resynchronization method in an arithmetic processing system having a plurality of multiplexed CPUs, each of which includes two or more CPUs and executes a program in synchronization with each other. Because The arithmetic processing system includes a firmware ROM in which a firmware program for starting up multiplexed CPUs in synchronization with each other, a main memory RAM defined by one address map as a whole, and a firmware program in the main memory RAM.
  • a system including a RAM address register in which a copy destination address is stored; A firmware copying step of copying the firmware program stored in the firmware ROM to the main memory RAM at the time of system boot; A RAM address storing step for storing the address of the copy destination of the firmware program in the main memory RAM in the RAM address register; Out-of-synchronization detection step of detecting out-of-synchronization of the multiplexed CPU; In response to the detection of loss of synchronization in the loss of synchronization detection step, the RAM address register is referred to, and the firmware program read address stored in the firmware ROM is replaced with the address of the firmware program copy destination in the main memory RAM. And a resynchronization method including an address replacement step.
  • the second resynchronization method of the resynchronization methods disclosed herein is: A resynchronization method in an arithmetic processing system comprising a plurality of multiplexed CPUs each comprising two or more CPUs and executing a program in synchronization with each other, and having a system management device for managing these multiple sets of multiplexed CPUs Because
  • the arithmetic processing system is a system including a firmware ROM that stores a firmware program for starting multiplexed CPUs in synchronization with each other, and a main memory RAM that is defined by a single address map as a whole.
  • the first firmware program of the firmware programs disclosed herein is a firmware program that is executed by an arithmetic processing system that includes a plurality of multiplexed CPUs, each of which includes two or more CPUs and that executes the programs in synchronization with each other.
  • the arithmetic processing system includes a firmware ROM in which a firmware program for starting up multiplexed CPUs in synchronization with each other, a main memory RAM defined by one address map as a whole, and a firmware program in the main memory RAM.
  • a RAM address register in which the copied address of the copy destination is stored, and the arithmetic processing system is A firmware copying unit that copies the firmware program stored in the firmware ROM to the main memory RAM at the time of system boot;
  • a RAM address storage unit for storing the address of the copy destination of the firmware program by the firmware copy unit of the main memory RAM in the RAM address register;
  • An out-of-synchronization detection unit for detecting out-of-synchronization of the multiplexed CPU; In response to the detection of the out-of-synchronization detected by the out-of-synchronization detection unit, the RAM address register is referred to, and the address for reading the firmware program stored in the firmware ROM is used as the copy destination address of the firmware program in the main storage RAM.
  • the firmware program is operated as an arithmetic processing system having an address switching unit for switching.
  • the second firmware program among the system firmware programs disclosed in the present disclosure includes a plurality of multiplexed CPUs, each of which includes two or more CPUs and executes the programs in synchronization with each other.
  • a firmware program executed by an arithmetic processing system including a system management device for managing a CPU is a system including a firmware ROM that stores a firmware program for starting multiplexed CPUs in synchronization with each other, and a main memory RAM defined by one address map as a whole.
  • An out-of-synchronization detection unit for detecting out-of-synchronization of the multiplexed CPU and reporting to the system management device;
  • a firmware program that operates as an arithmetic processing system having a disconnection processing unit that logically disconnects the multiplexed CPU from the arithmetic processing system in response to a disconnection instruction from the system management device.
  • the loss of synchronization can be quickly recovered without a large cost increase, thereby shortening the system stop time. In addition, it is possible to quickly return to a highly reliable state.
  • the processing executed by the multiplexed CPU in which the synchronization is lost is transferred to the other multiplexed CPU. To be migrated. Further, the multiplexed CPU in which the synchronization is lost is logically separated from the arithmetic processing system. As a result, the system stop time can be shortened and the system can be restored to a more reliable state.
  • FIG. 5 is a diagram showing an operation sequence of a farm and a circuit in the second embodiment shown in FIG. 4. It is a block diagram which shows the structure of the arithmetic processing system of 3rd Embodiment of this case.
  • FIG. 4 It is a block diagram which shows the structure of the arithmetic processing system of 4th Embodiment of this case. It is a figure which shows the operation
  • FIG. 13 is a diagram showing an operation sequence of each part of the arithmetic processing system according to the fourth embodiment shown in FIGS.
  • FIG. 1 is employed as it is as the overall configuration diagram.
  • the internal configurations of the system control circuits 24_1, 24_2, and 24_3 are slightly different.
  • FIG. 3 is a block diagram showing the configuration of the arithmetic processing system according to the first embodiment of the present case.
  • FIG. 3 shows two system boards among the three system boards shown in FIG. Further, only the components necessary for resynchronization are shown for the two system control circuits constituting the two system boards. Further, here, the illustration of the interconnect 40 shown in FIG. 1 is omitted, and the slave request processing circuit included in each of the two system control circuits 24_1 and 24_2 is shown as one block including both.
  • FIG. 3 shows duplex processing units 241_1 and 241_2 as components of the system control circuits 24_1 and 24_2 shown as one block for each of the system boards 20_1 and 20_2 in FIG. Further, ROM address detection circuits 242_1 and 242_2 and RAM address registers 243_1 and 243_2 are also shown as components of the system control circuits 24_1 and 24_2. Further, conversion permission flag registers 244_1 and 244_2, gate circuits 345_1 and 345_2, and selection circuits 346_1 and 346_2 are also shown as components thereof. Also shown is a slave request processing circuit 247 that is integrated into one block for the two system control circuits 24_1 and 24_2.
  • the duplex processing units 241_1 and 241_2 are responsible for operations related to the duplex synchronization processing of the two CPUs 21_A and 21_B; 21_C and 21_D. That is, the duplex processing units 241_1 and 241_2 function as a switch that selects an address from one of the bus interfaces of the two CPUs and an address output from each of the two CPUs. Further, the duplex processing units 241_1 and 241_2 are also responsible for processing such as detection of loss of synchronization of the two CPUs.
  • the ROM address detection circuits 242_1 and 242_2 are circuits that detect whether or not the addresses output from the duplex processing units 241_1 and 241_2 match the firmware program storage addresses of the firmware ROMs 23_1 and 23_2.
  • the RAM address registers 243_1 and 243_2 are registers for storing addresses of copy destinations when the firmware programs in the firmware ROMs 23_1 and 23_2 are copied to the main memory RAMs 22_1 and 22_2. Details will be described later.
  • the conversion permission flag registers 244_1 and 244_2 store a conversion permission flag that allows the firmware ROM address to be converted into the main memory RAM address.
  • the conversion permission flag registers 244_1 and 244_2 correspond to an example of the copy flag register of the present case.
  • the gate circuits 245_1 and 245_2 satisfy the following two conditions (a) and (b) at the same time, the gate circuits 245_1 and 245_2 output a RAM address selection signal for conversion into the addresses of the main memory RAMs 22_1 and 22_2.
  • a conversion permission flag is stored in the conversion permission flag registers 244_1 and 244_2.
  • the ROM address detection circuits 242_1 and 242_2 detect the storage addresses of the firmware programs in the firmware ROMs 23_1 and 23_2.
  • the selection circuits 246_1 and 246_2 normally output the addresses received from the duplex processing units 241_1 and 241_2 as they are. However, when the RAM address selection signal is received from the gate circuits 245_1 and 245_2, the addresses of the main memory RAMs 22_1 and 22_2 stored in the RAM address registers 243_1 and 243_2 are output.
  • the conversion permission flags are not stored in the conversion permission flag registers 244_1 and 244_2 and are reset. For this reason, even if the ROM address detection circuits 242_1 and 242_2 detect the firmware program storage addresses of the firmware ROMs 23_1 and 23_2, no RAM address selection signal is output from the gate circuits 245_1 and 245_2.
  • the firmware ROMs 23_1 and 23_2 store the same firmware program. Therefore, when the power is turned on, the firmware program is read from any one firmware ROM. Here, it is assumed that the firmware program is read from the firmware ROM 23_1.
  • the address of the firmware ROM 23_1 is output from the duplex processing unit 241_1, the address of the firmware ROM 23_1 is output as it is from the selection circuit 246_1 and is input to the firmware ROM 23_1 via the slave request processing circuit 247.
  • the firmware program is read from the firmware ROM 23_1.
  • initial setting including synchronization is performed in each of the two CPUs 21_A, 21_B; 21_C, 21_D.
  • the firmware program read from the firmware ROM 23_1 is copied to the main memory RAM 22_1 by the action of the firmware program.
  • the copy destination RAM address of the main memory RAM 22_1 is stored in each RAM address register 243_1, 243_2. Further, a conversion permission flag is set in each of the conversion permission flag registers 244_1 and 244_2.
  • the firmware program may be read from any one of the firmware ROMs.
  • the firmware program may be read from the copy destination RAM for resynchronization, and any one RAM is sufficient as the copy destination.
  • the RAM address of the copy destination is stored in all the RAM address registers 243_1 and 243_2, and the conversion permission flag is set for all the conversion permission flag registers 244_1 and 244_2.
  • each duplex CPU executes various processes by the duplex operation.
  • the resynchronization process is executed as described with reference to FIG. 2 by the main movement of the other CPU 21_B.
  • the address of the firmware program storage area of the firmware ROM 23_1 is output from the CPU 21_B in an attempt to read the firmware program from the firmware ROM 23_1, and the address output from the CPU 21_B is output from the duplex processing unit 241_1.
  • the ROM address detection circuit 242_1 detects that the firmware program storage address of the firmware ROM 23_1 is output from the duplex processing unit 241_1.
  • a conversion permission flag is set in the conversion permission flag register 244_1. Therefore, a RAM address selection signal is output from the gate circuit 245_1.
  • the selection circuit 246_1 outputs the address of the main memory RAM 22_1 stored in the RAM address register 243_1 instead of the address of the firmware ROM 23_1 output from the duplex processing unit 241_1. That is, the CPU 21_B outputs the address of the firmware ROM 23_1, is switched to the address of the main memory RAM 22_1 by the selection circuit 246_1, and the address of the main memory RAM 22_1 is output. Therefore, the firmware program copied to the main memory RAM 22_1 is read out. Thus, the CPUs 21_A and 21_B perform resynchronization processing by the firmware program read from the main memory RAM 22_1.
  • the access speed of the main memory RAM 22_1 is much faster than the firmware ROM 23_1. Therefore, the time required for “firmware reading” shown in FIG. 2 is greatly reduced. For this reason, high-speed resynchronization becomes possible, and it is possible to return to a highly reliable state in a short time.
  • FIG. 4 is a block diagram showing the configuration of the arithmetic processing system of the second embodiment of the present case.
  • the overall configuration of the second embodiment is the same as that of FIG. 1, only the single system board 20_1 is shown in FIG. 4 in order to avoid the complexity of illustration.
  • the system control circuit 24_1 constituting the system board 20_1 shown in FIG. 4 includes two CPU bus interfaces 241a and 241b corresponding to the two CPUs 21_A and 21_B, respectively.
  • two bus error detectors 241c and 241d, an error management unit 241e, and a switch unit 241f are provided.
  • the CPU bus interfaces 241a and 241b, the bus error detectors 241c and 241d, the error management unit 241e, and the switch 241f correspond to the duplex processing units 241_1 and 241_2 illustrated in FIG.
  • the bus error detectors 241c and 241d detect errors in the addresses and data output from the CPUs 21_A and 21_B via the CPU bus interfaces 241a and 241b, that is, loss of synchronization. The detection results of the bus error detectors 241c and 241d are reported to the error management unit 241e. When the two CPUs 21A and 21B are operating in synchronization, the error management unit 241e outputs an address and data output from any one of the two CPUs 21_A and 21_B (for example, the CPU 21_A). The switch 241f is switched as described above.
  • the error management unit 241e when an out-of-cycle is detected, the error management unit 241e outputs an address and data output from the other CPU (for example, CPU 21_B) that is not the CPU (for example, CPU 21_A) in which the out-of-cycle has occurred. Switch 241f.
  • the addresses output from the switch 241f are arranged in an address queue 251 configured with a FIFO (first-in first-out) register that outputs the address and data (address in this case) that has arrived first.
  • FIFO first-in first-out
  • the slave request processing circuit 247_1 it is determined whether the address is the address of the main memory RAM 22_1, the address of the firmware ROM 23_1, or the address of a register or the like.
  • each address is constituted by a FIFO depending on whether the address is a command for writing data to the main memory RAM 22_1 or a command for reading data from the main memory RAM 22_1.
  • the buffer 247b or buffer 247a Stored in the buffer 247b or buffer 247a.
  • the slave processing circuit 247_1 determines that the address is the firmware ROM 23_1
  • the buffer 247c and the buffer 247d are respectively used depending on whether the address is an instruction for writing data or an instruction for reading data.
  • Stored in The firmware ROM 23_1 is not read-only, and is also provided with a configuration for writing because a log when an error occurs and information on the system are written.
  • the address indicates a register or the like, the address is stored in the write buffer 247f or the read buffer 247e depending on whether the instruction is for writing or reading.
  • the data is temporarily stored in the write data buffer 252 configured by FIFO. Thereafter, the data to be written to the main memory RAM 22_1 via the interconnect 40 is stored in the buffer 247b. Similarly, data to be written to the firmware ROM 23_1 is stored in the buffer 247c, and data to be stored in a register or the like is stored in the buffer 247e.
  • the RAM controller 261 When the data and address are aligned in the buffer 247b, the RAM controller 261 writes the data to the address of the main memory RAM 22_1. At the same time, when the data and address are aligned in the buffer 247c, the ROM controller 262 writes the data to the address of the firmware ROM 23_1. Further, when the data and address are aligned in the buffer 247c, the register RW control circuit 263 writes the data into a buffer or the like specified by the address.
  • a read address is stored in the buffer 247a by the slave request processing circuit 247_1, data is read from the address of the main memory RAM 22_1 to the RAM controller 261.
  • the read data is temporarily stored in the buffer 247 a and then temporarily stored in the read data buffer 253 via the interconnect 40. Thereafter, the data is transmitted to the CPUs 21_A and 21_B via the CPU bus interfaces 241a and 241b.
  • the ROM controller 262 reads data from the read address of the firmware ROM 23_1.
  • the read data is transmitted to the CPUs 21_A and 21_B via the buffer 247d, the interconnect 40, the read data buffer 253, and the CPU bus interfaces 241a and 241b.
  • the register RW control circuit 263 reads data from a register or the like specified by the address stored in the buffer 247f.
  • the read data is transmitted to the CPUs 21_A and 21_B via the buffer 247f, the interconnect 40, the read data buffer 253, and the CPU bus interfaces 241a and 241b.
  • the RAM base address register 264 is a component corresponding to the RAM address register 243_1 of the first embodiment shown in FIG.
  • the firmware program stored in the firmware ROM 23_1 is copied to the main memory RAM 22_1.
  • the RAM base address register 264 stores the address of the copy destination of the main memory RAM 22_1.
  • the address of the firmware ROM 23_1 or the address of the main memory RAM 22_1 is distinguished by the upper bits of the address.
  • the RAM base address register 264 stores the address of the upper bits of the main memory RAM 22_1. Stored.
  • a ROM address detection circuit 266 is provided for determining a match / mismatch between the ROM base address stored in the ROM base address storage unit 265 and the address output from the switch 241f.
  • the ROM address detection circuit 266 is a component corresponding to the ROM address detection circuit 242_1 in the first embodiment shown in FIG.
  • the ROM base address storage unit 265 in the second embodiment of FIG. 4 stores only the upper bit side portion of the address indicating the firmware program storage area of the firmware ROM 23_1. Accordingly, the ROM address detection unit 266 determines whether or not the address on the upper bit side of the firmware ROM 23_1 matches.
  • the address queue 251 stores the write address and the read address, but the lower bit side of the address is stored as it is from the lower bit side of the address output from the switch 241f.
  • the upper bit side of the address output from the switch 241f or the upper bit side of the address of the RAM 2_1 stored in the RAM base address register 264 is output according to the selection by the selector 268. Is done.
  • the operation after the address is stored in the address queue 251 is as described above.
  • the copy flag register 269 is a register that is reset when the system board 20_1 is reset.
  • the copy flag register 269 is set with a copy flag when the firmware program in the firmware ROM 23_1 is copied to the RAM 22_1 and the copy destination address is stored in the RAM base address register 264.
  • the address change permission flag register 271 receives the determination that the copy flag is stored in the copy flag register 267 by the AND gate 270, and the address change permission flag is set. That is, the address change permission flag register 271 is set with an address change permission flag when resetting for resynchronization after the two CPUs 21_A and 21_B are out of synchronization.
  • the resynchronization reset control unit 272 is requested to perform resynchronization reset.
  • Resynchronization reset control section 272 receives a request for resynchronization reset and instructs CPU 21_A and CPU_21B to reset. Then, the CPUs 21_A and 21_B perform reset processing for resynchronization including reading and execution of the firmware program.
  • the address output from the switch 241f is the address in the firmware ROM 23_1 where the firmware program is stored
  • the address is replaced with the address of the firmware program copy destination in the main memory RAM 22_1. Therefore, the firmware program is read from the main memory RAM 22_1 at high speed, and resynchronization is performed in a short time.
  • FIG. 5 is a diagram showing an operation sequence of the farm and the circuit in the second embodiment shown in FIG.
  • one address map is created by the system farm so that the addresses do not overlap over the plurality of main memory RAMs 22_1, 22_2, 22_3 on the plurality of system boards over the entire arithmetic processing system. Addresses are set in the main memory RAMs 22_1, 22_2, and 22_3.
  • system firmware is instructed to save the context on the CPU A / CPU B cache, and the CPU firmware controls the context saving operation, and the context is saved in the main memory RAM.
  • This context is data required to continue the processing that was being performed by CPU A / CPU B after resynchronization.
  • CPU reset is instructed by the system firmware, and CPU A / CPU B resynchronization reset processing is performed.
  • the CPU firmware is read from the main memory RAM and the CPU is set, and the system firmware is further read from the main memory RAM to set the system.
  • the CPU firmware performs a context read-back process, and on the hardware, the context saved in the main memory RAM is read back.
  • the system control circuit firmware is instructed to cancel access suppression from another, and an access suppression cancellation operation from another CPU or IO is performed on the hardware.
  • an OS return request is made by the system firmware, and the OS returns from the platform interrupt through error processing by the CPU firmware.
  • FIG. 6 is a block diagram showing the configuration of the arithmetic processing system of the third embodiment of the present case.
  • firmware and OS / application are extracted and shown explicitly. These firmware, OS, and application are programs that perform the following actions when executed by the CPU.
  • the arithmetic processing system of the third embodiment shown in FIG. 6 is provided with two sets of duplicated CPUs 21_A, 21_B; 21_C, 21_D on one system board.
  • the out-of-synchronization of CPU B is detected by the duplication processing unit 241_1 having jurisdiction over the duplication CPU including the CPU B out of synchronism among the duplication processing units 241_1 and 241_2 provided for each pair of duplication CPUs.
  • the duplex processing unit 241_1 detects that the CPU B is out of synchronization, the error processing unit 274 is notified of an error.
  • the duplex processing unit 241_1 switches to select the address of CPU A and continues the process only with CPU A.
  • the error processing unit 274 raises an interrupt to the system management device 50 by setting a bit indicating that one side of the duplicated CPU is degenerated.
  • the system management device 50 recognizes that one side of the duplicated CPU is degenerated by the set bit.
  • the system management device 50 sets the interrupt register 272 of the system control circuit 24.
  • the system control circuit 24 interrupts the CPU by setting the interrupt register 272.
  • CPU A receives this interrupt and calls the firmware.
  • the firmware performs processing for disconnecting CPU A / CPU B from this processing system.
  • the firmware notifies the OS that CPU A / CPU B is to be disconnected.
  • the CPU reset register 271 receives this set and resets CPU A / CPU B.
  • CPU A / CPU B receives this reset and performs initial settings.
  • CPU A / CPU B sets the interrupt register 273 of the system control circuit when the initial setting is completed.
  • the system management device sets the interrupt register 275.
  • the interrupt register 275 Upon receiving this set, the interrupt register 275 gives an interrupt to CPU C / CPU D, and CPU C / CPU D notifies the OS that the resources of CPU A / CPU B have increased due to this interrupt. To do.
  • the OS can be stopped in a short time required to disconnect CPU A / CPU B, and the OS stop time during resynchronization is shortened.
  • the processing of the third embodiment is effective when the OS or application has a function that supports dynamic deletion or addition of a CPU. When this function is not supported, it is effective to perform dynamic CPU replacement as shown in the fourth embodiment below.
  • FIG. 7 is a block diagram showing the configuration of the arithmetic processing system of the fourth embodiment of the present case.
  • the arithmetic processing system shown in FIG. 7 has the same block diagram as the arithmetic processing system shown in FIG. 1, and is given the same reference numerals as those in FIG. The difference from FIG. 1 is that one of the three system boards 20_1, 20_2, 20_3 is logically disconnected from the arithmetic processing system 10 in the initial stage shown in FIG. It is a point in the state. Further, in FIG. 7, the OS is explicitly shown for later explanation. This OS performs operations according to the following description by being executed by the CPU.
  • FIG. 8 to 13 are diagrams sequentially illustrating operations when the synchronization is lost in the arithmetic processing system according to the fourth embodiment shown in FIG.
  • the system management device 50 activates the system board 20_3 upon receiving an error occurrence report (FIG. 8).
  • the system management device 50 gives an interrupt to the CPU A which is a normal operating CPU paired with the out-of-synchronization CPU B.
  • CPU A sets each control circuit so that a request from another CPU or IO is temporarily stopped.
  • the OS stops (FIG. 9).
  • the OS is stopped between 4) and 5), that is, only for a very short time.
  • FIG. 13 is a diagram showing an operation sequence of each part of the arithmetic processing system according to the fourth embodiment shown in FIGS.
  • the system board 20_1 and the system board 20_3 illustrated in FIG. 8 are referred to as a system board 1 and a system board 3, respectively.
  • a platform interrupt is entered into the OS, and the CPU A performs OS suspension processing. Further, platform error processing is performed on the CPU firmware of the system board 1, and error processing is further performed by the system firmware of the system board 1.
  • an error is reported to the system controller 50 and the board replacement control is performed by the system controller 50. That is, here, the system board 3 that has been waiting until then is started, the CPU E / CPU F is initialized by the CPU firmware, and the system on the system board 3 is initialized by the system firmware.
  • the system board 3 enters a loop state (wait state) for a while after the initial setting.
  • the system controller 50 further sets an interrupt flag in the interrupt register.
  • the CPU A accepts the platform interrupt according to the setting of the flag, and the OS is suspended.
  • the CPU firmware of the system board 1 performs interrupt processing by the platform interrupt, and the processing is transferred to the system firmware, and the system firmware instructs to stop another CPU or IO.
  • requests from other CPUs and IOs are stopped.
  • context saving processing is performed, and the context is saved in the main memory RAM.
  • the CPU ID is exchanged between the CPU A and the CPU E / CPU F, and a new CPU ID is set in the interrupt destination setting register in each control circuit.
  • the CPU ID received from the system board 3 is set by the CPU firmware of the system board 1, and then the system board 1 is stopped and exchanged / standby is performed.
  • the CPU E / CPU F in the loop state returns to the operation state, and the CPU ID received from the system board 1 is set as the CPU ID of the CPU E / CPU F.
  • the context read back is instructed, and the context read back processing is performed by the CPU firmware of the system board 3 and the context saved in the main memory RAM is read back.
  • another CPU or IO is instructed to return, and another CPU or IO is returned to accept a request from another CPU or IO again. Furthermore, the OS is restored.
  • the stop time after loss of synchronization is short. Further, it is not necessary to set the timeout time to a long time, and general-purpose parts can be used.

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)
  • Retry When Errors Occur (AREA)
  • Stored Programmes (AREA)

Abstract

 本件は、互いに同期してプログラムを実行する多重化CPUが複数組搭載された演算処理システム等に関し、同期外れが生じたときの停止時間を短縮化して信頼性の高い状態に復帰させるために、多重化CPUを互いに同期した状態に立ち上げるシステムファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMと、システムブート時に、ROMに記憶されたファームプログラムをRAMに複写するファーム複写部と、RAMの、複写先のアドレスが格納されるRAMアドレスレジスタと、RAMアドレスレジスタに複写先のアドレスを格納するRAMアドレス格納部と、同期外れを検出する同期外れ検出部と、同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ROMに記憶されたプログラム読出し用のアドレスを、RAMの複写先のアドレスにすり替えるアドレスすり替え部とを備えた。

Description

演算処理システム、再同期方法、およびファームプログラム
 本件は、互いに同期してプログラムを実行する多重化CPUが複数組搭載された演算処理システム、演算処理システムにおける再同期方法、および再同期のためのファームプログラムに関する。
 連続稼動を要求される基幹サーバシステム等の演算処理システムにおいて、システムの停止は大きな影響があり、ほとんど停止しない高い信頼性が求められる。信頼性向上のため2つのCPUを同期二重化動作させる方法がある。この同期二重化CPUシステムの場合、同期動作中のCPUペアの片方に故障が発生してもシステム動作継続が可能である。さらに、再度CPUの同期動作を復活(再同期化)させることにより二重化同期動作している時間を長くして信頼性を向上させることが望ましい。再同期化時には、システムリブートすると停止時間が長いため、システムリブートを行なわずに再同期化するほうがよい。
 図1は、演算処理システムの構成の一例を示すブロック図である。
 この図1に示す演算処理システム10は、3台のシステムボード20_1,20_2,20_3を備えている。各システムボード20_1,20_2,20_3は、それぞれ2つのCPU21_A,21_B;21_C,21_D;21_E,21_Fを備えている。また、各システムボード20_1,20_2,20_3は、主記憶RAM22_1,22_2,22_3と、ファームROM23_1,23_2,23_3と、システム制御回路24_1,24_2,24_3とを備えている。
 各システムボード20_1,20_2,20_3の、各2つのCPU21_A,21_B;21_C,21_D;21_E,21_Fは、互いに同期して同一の処理を実行する同期二重化CPUである。
 また、主記憶RAM22_1,22_2,22_3は、CPU21_A,21_B;21_C,21_D;21_E,21_Fでの処理における作業領域として使用されるランダムアクセスメモリである。これらの主記憶RAM22_1,22_2,22_3は、互いのアドレスが重ならないように、それらの主記憶RAM22_1,22_2,22_3の全体に亘って1つのアドレスマップで定義されている。こうすることにより、どのシステムボード20_1,20_2,20_3でも、他のシステムボードの主記憶RAMの内容を参照することができる。したがって、システムボード20_1,20_2,20_3の相互間でデータの受け渡しを行なうことができる。
 また、ファームROM23_1,23_2,23_3には同期二重化CPUを同期した状態に立ち上げるためのファームプログラムが記憶されている。
 尚、図1は、システムボード20_1,20_2,20_3は3台示されているがシステムボードの数は3台に制限されるものではない。
 また、図1に示す演算処理システム10は、3台のIO制御回路30_1,30_2,30_3とインターコネクト40を備えている。ここでは、これら3台のIO制御回路30_1,30_2,30_3はどのようなIOを制御する制御回路であるかを問うものではない。また、1つの演算処理システム10を構成するIO制御回路の数も3台に制限されるものではなく、システムボードの数と一致している必要もない。またインターコネクト40は、システムボード20_1,20_2,20_3とIO制御回路30_1,30_2,30_3との間の信号伝達を担っている。
 この演算処理装置10は、さらにシステム管理装置50を備えている。このシステム管理装置50は、この演算処理システム10の全体の管理を担っている。
 図1のように構成された演算処理システムにおいて、システムリブートを行なわずに再同期化する方法を以下に示す。ここでは、システムボード20_1に搭載された2つのCPU21_A,21_Bのうちの一方のCPU21_Aで同期外れが生じたものとして説明する。
 システム制御回路24_1にて片系CPU21_Aでのエラーによる冗長(同期外れ)を検出すると、その異常CPU21_Aを切り離す。同期ペアの正常CPU21_Bに対して片系停止を割り込み通知にて通知する。この割り込み通信を受けて再同期のためCPU21_A,21_Bをリセットする。ここで、リセット中のCPU21_A,21_Bは、その他のCPU21_C,21_D,21_E,21_FやIO制御回路30_1,30_2,30_3からの割り込みなどの要求に応答できない。このため、別CPU21_C,21_D,21_E,21_FやIO制御回路30_1,30_2,30_3からの、再同期しようとしているCPU21_A,21_Bへの割り込み等を停止させる。このとき,OS(Operating System)が一時停止することとなる。
 正常CPU21_Bにより、再同期化時に最低限必要なCPU内部情報を主記憶RAM22_1へ退避し、およびCPUのキャッシュも主記憶RAM22_1へ退避する。
 この処理が完了した時点でCPU21_A,21_Bを同時にリセットして、CPU同期運転を再開させる。リセットされたCPU21_A,21_Bは、ファームROM23_1よりファームを読み出し、ファームを起動した後、主記憶用RAM22_1へ退避した情報をCPU21_A,21_Bへ復元させる。最後に再同期するCPU21_A,21_Bへの割り込み等の停止を解除して,OSを復帰させる。
 図2は、上記の再同期化方法におけるタイムシーケンスを示す図である。
 ここでは、CPU21_Aを「CPU A」、CPU21_Bを「CPU B」、その他のCPU21_C,21_D,21_E,21_Fを「別CPU」と称している。
 CPU Aで同期外れが生じると、CPU Bでファーム処理、すなわち、割込みの禁止や、CPUキャッシュの主記憶RAMへの退避等が行なわれ、別CPUは停止する。
 CPU A,CPU Bでは、リセットおよびファーム読み出しが行なわれ、さらに主記憶RAMに退避した情報の復元や割込み禁止の解除等のファーム処理が行なわれる。その後、CPU A,CPU B、他のCPUともに正常動作に復帰する。
 ここで、特にファームROMからのファームの読み出しに時間がかかることから、再同期化の完了までに長時間を要する。特にフラッシュROMをファームROMとして採用した場合、フラッシュROMは通常は低速周波数(数十MHz程度)で動作し、かつバス幅が小さいため、フラッシュROMからファームを起動のための読み出し時間が長い。
 再同期化を行なっている間はOSが停止するため、システム使用者の作業が一時停止する。またシステム内のパケットを停止させるため、各モジュールのタイムアウトの時間設定に大きい値が必要であるという問題が生じる。すなわち、汎用品のモジュールを使用した場合、このタイムアウト時間が想定以上の値となり、上記の再同期方法を採用できない可能性もある。
 再同期時の起動時間を短縮する方法として、起動時にROMからRAMにファームプログラムを移し替えておき、再起動時にはファームプログラムをRAMから読み出すことが提案されている。この提案では、末端のセレクタでRAMとROMとを切り替えている。
 しかしながら、通常の同期二重化CPU構成の場合、ファームROMは各CPUや各CPUグループ毎に設けられており、一方、主記憶RAMは、上述したようにそのシステム全体でアドレスの重複を避けた1つのアドレスマップで定義されている。このような構成において、従来提案された、ファームプログラムをRAMに移し替えておく方法を採用しようとすると、1つのROMに対し1対1で専用のRAMを別途用意する必要がありコスト高となる。また、ファームROMは、読み出しだけでなく、エラー情報の保存や構成情報の保持のための書き込みに使われる場合もある。エラー情報等は揮発性のRAMには保存できないため、従来の提案のように末端の部分でROMとRAMを切り替えると、CPU間の排他制御が必要となり、制御が複雑となる。
 また従来、同期二重化CPUの一方が故障した場合に二重化を解消してもう一方のCPUのみで運転を行なうことや、現用系の変更データを待機系にコピーし処理の引継ぎを短時間で行なうことが提案されている。しかしながら、一方のCPUのみの運転のままでは信頼性の低下が避けられず、現用系の変更データを待機系にコピーする提案は同期外れとは直接的な関係はない。
特開昭63-268030号公報 特開平8-235125号公報 特開平7-200334号公報 特開2008-140080号公報
 本件開示の演算処理システム、再同期方法、およびファームプログラムの課題は、同期して動作する多重化CPUが複数組搭載された演算処理システムにおいて、同期外れが生じたときの停止時間を短縮化して信頼性の高い状態に復帰させることにある。
 本件開示の演算処理システムのうちの第1の演算処理システムは、それぞれが2つ以上のCPUからなり互いに同期して処理を実行する多重化CPUを複数組有する演算処理システムであって、
 多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、
 全体として1つのアドレスマップで定義された主記憶RAMと、
 システムブート時に、ファームROMに記憶されたファームプログラムを主記憶RAMに複写するファーム複写部と、
 主記憶RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタと、
 RAMアドレスレジスタに、主記憶RAMの、ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
 多重化CPUの同期外れを検出する同期外れ検出部と、
 同期外れ検出部により同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ファームROMに記憶されたファームプログラム読出し用のアドレスを、主記憶RAMの、ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムである。
 また、本件開示の演算処理システムのうちの第2の演算処理システムは、それぞれが2つ以上のCPUからなる多重化CPU複数組と、該複数組の多重化CPUを管理するシステム管理装置とを有する演算処理システムであって、
 多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、
 全体として1つのアドレスマップで定義された主記憶RAMと、
 多重化CPUの同期外れを検出してシステム管理装置に報告する同期外れ検出部と、
 システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切り離す切離し処理部とを有し、
 システム管理装置が、上記の複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示部を有する演算処理システムである。
 また、本件開示の再同期方法のうちの第1の再同期方法は、それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有する演算処理システムにおける再同期方法であって、
 当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMと、主記憶RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、
 システムブート時に、ファームROMに記憶されたファームプログラムを主記憶RAMに複写するファーム複写ステップと、
 RAMアドレスレジスタに、主記憶RAMの、ファームプログラムの複写先のアドレスを格納するRAMアドレス格納ステップと、
 多重化CPUの同期外れを検出する同期外れ検出ステップと、
 同期外れ検出ステップにおいて同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ファームROMに記憶されたファームプログラム読出し用のアドレスを、主記憶RAMの、ファームプログラムの複写先のアドレスにすり替えるアドレスすり替えステップとを有する再同期方法である。
 また、本件開示の再同期方法のうちの第2の再同期方法は、
 それぞれが2つ以上のCPUからなり、互いに同期してプログラムを実行する多重化CPUを複数組有するとともに、それら複数組の多重化CPUを管理するシステム管理装置を備えた演算処理システムにおける再同期方法であって、
 当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMとを備えたシステムであり、
 多重化CPUの同期外れを検出してシステム管理装置に報告する同期外れ検出ステップと、
 システム管理装置で実行される、上記複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示ステップと、
 第1の多重化CPUのうちの正常動作実行中のCPUで実行される、システム管理装置からの切離し指示を受けて第1の多重化CPUを当該演算処理システムから論理的に切離す切離し処理ステップとを有する再同期方法である。
 さらに、本件開示のファームプログラムのうちの第1のファームプログラムは、それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有する演算処理システムで実行されるファームプログラムであって、
 当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMと、主記憶RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、当該演算処理システムを、
 システムブート時に、ファームROMに記憶されたファームプログラムを主記憶RAMに複写するファーム複写部と、
 RAMアドレスレジスタに、主記憶RAMの、ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
 多重化CPUの同期外れを検出する同期外れ検出部と、
 同期外れ検出部により同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ファームROMに記憶されたファームプログラム読出し用のアドレスを、主記憶RAMの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムとして動作させるファームプログラムである。
 さらに、本件開示のシステムファームプログラムのうちの第2のファームプログラムは、それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有するとともに、それら複数組の多重化CPUを管理するシステム管理装置を備えた演算処理システムで実行されるファームプログラムであって、
 当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMとを備えたシステムであり、当該演算処理システムを、
 多重化CPUの同期外れを検出してシステム管理装置に報告する同期外れ検出部と、
 システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切離す切離し処理部とを有する演算処理システムとして動作させるファームプログラムである。
 本件開示の第1の演算処理システム、第1の再同期方法、および第1のファームプログラムによれば、大きなコスト上昇を伴わずに同期外れを速やかに回復させ、これによりシステム停止時間を短縮化するとともに信頼性の高い状態に速やかに復帰させることができる。
 また、本件開示の第2の演算処理システム、第2の再同期方法、および第2のファームプログラムによれば、同期外れが生じた多重化CPUで実行されていた処理が他の多重化CPUに移行される。また同期外れが生じた多重化CPUは演算処理システムから論理的に切り離される。これによりシステム停止時間を短縮化し、さらに信頼性の高い状態に復帰させることができる。
演算処理システムの構成の一例を示すブロック図である。 再同期化の際のタイムシーケンスを示す図である。 本件の第1実施形態の演算処理システムの構成を示すブロック図である。 本件の第2実施形態の演算処理システムの構成を示すブロック図である。 図4に示す第2実施形態におけるファームおよび回路の動作シーケンスを示す図である。 本件の第3実施形態の演算処理システムの構成を示すブロック図である。 本件の第4実施形態の演算処理システムの構成を示すブロック図である。 図7に示す第4実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。 図7に示す第4実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。 図7に示す第4実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。 図7に示す第4実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。 図7に示す第4実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。 図8~図12に示す第4実施形態の演算処理システムの各部の動作シーケンスを示す図である。
 以下、本件の実施形態について説明する。尚、以下に示す第1実施形態においても、全体構成図としては図1をそのまま採用する。ただし、シスステム制御回路24_1,24_2,24_3の内部構成は多少異なっている。
 図3は、本件の第1実施形態の演算処理システムの構成を示すブロック図である。ただし、この図3では、図示の繁雑さを避けるため、図1に示す3台のシステムボードのうちの2台のシステムボードについて示している。また、それら2台のシステムボードを構成する2つのシステム制御回路については再同期に必要な構成要素のみを示している。さらに、ここでは、図1に示すインターコネクト40の図示は省略し、2つのシステム制御回路24_1,24_2のそれぞれに含まれるスレーブリクエスト処理回路は、双方を含めて1つのブロックで示してある。
 この図3には、図1において各システムボード20_1,20_2ごとにそれぞれ1つのブロックで示すシステム制御回路24_1,24_2の構成要素として、二重化処理部241_1,241_2が示されている。また、システム制御回路24_1,24_2の構成要素として、ROMアドレス検出回路242_1,242_2およびRAMアドレスレジスタ243_1,243_2も示されている。さらに、その構成要素として、変換許可フラグレジスタ244_1,244_2、ゲート回路345_1,345_2、および選択回路346_1,346_2も示されている。また、2つのシステム制御回路24_1,24_2について1つのブロックに統合されたスレーブリクエスト処理回路247も示されている。
 二重化処理部241_1,241_2は、各2つのCPU21_A,21_B;21_C,21_Dの二重化同期処理に関する動作を担っている。すなわちこの二重化処理部241_1,241_2は、各2つのCPUのバスインタフェース、および各2つのCPUから出力されるアドレスのうちの一方のCPUからのアドレスを選択するスイッチの役割りを担っている。さらにこの二重化処理部241_1,241_2は、各2つのCPUの同期外れの検出等の処理も担っている。
 また、ROMアドレス検出回路242_1,242_2は、二重化処理部241_1,241_2から出力されてきたアドレスがファームROM23_1,23_2のファームプログラム格納アドレスと一致するか否かを検出する回路である。
 また、RAMアドレスレジスタ243_1,243_2は、ファームROM23_1,23_2内のファームプログラムが主記憶RAM22_1,22_2に複写されたときの、その複写先のアドレスが格納されるレジスタである。詳細は後述する。
 また、変換許可フラグレジスタ244_1,244_2には、ファームROMのアドレスを主記憶RAMのアドレスに変換することを許可する変換許可フラグが格納される。この変換許可フラグレジスタ244_1,244_2は、本件の複写フラグレジスタの一例に相当する。
 ゲート回路245_1,245_2は以下の2つの条件(a),(b)を同時に満足するときに、主記憶RAM22_1,22_2のアドレスに変換することをRAMアドレス選択信号を出力する。
(a)変換許可フラグレジスタ244_1,244_2に変換許可フラグが格納されること。
(b)ROMアドレス検出回路242_1,242_2でファームROM23_1,23_2内のファームプログラムの格納アドレスが検出されること。
 選択回路246_1,246_2は二重化処理部241_1,241_2から受け取ったアドレスを通常はそのまま出力する。ただし、ゲート回路245_1,245_2からのRAMアドレス選択信号を受けると、RAMアドレスレジスタ243_1,243_2に格納されている主記憶RAM22_1,22_2のアドレスを出力する。
 ここで、この演算処理システムに電源が投入された、初回の初期状態への立ち上げの際は、変換許可フラグレジスタ244_1,244_2には変換許可フラグは格納されておらずリセットされている。このため、ROMアドレス検出回路242_1,242_2でファームROM23_1,23_2のファームプログラム格納アドレスが検出されても、ゲート回路245_1,245_2からはRAMアドレス選択信号は出力されない。ここで、ファームROM23_1,23_2には互いに同一のファームプログラムが記憶されている。したがって電源投入の際は、いずれか1つのファームROMからファームプログラムが読み出される。ここではファームROM23_1からファームプログラムが読み出されるものとする。二重化処理部241_1からファームROM23_1のアドレスが出力されると、そのファームROM23_1のアドレスは選択回路246_1からそのまま出力され、スレーブリクスト処理回路247を経由してファームROM23_1に入力される。これにより、ファームROM23_1からファームプログラムが読み出される。このファームプログラムにより、各2つのCPU21_A,21_B;21_C,21_Dでは同期化を含む初期設定が行なわれる。この初期設定の際、ファームプログラムの作用により、ファームROM23_1から読み出されたファームプログラムが主記憶RAM22_1にコピーされる。またその主記憶RAM22_1のコピー先のRAMアドレスが各RAMアドレスレジスタ243_1,243_2に格納される。さらに、各変換許可フラグレジスタ244_1,244_2に変換許可フラグがセットされる。
 尚、上記の通り、ファームROM23_1,23_2の双方に同じファームプログラムが格納されているためいずれか1つのファームROMからファームプログラムを読み出せばよい。また、どのシステムボードで同期外れが生じた場合であっても、再同期にあたり、コピー先のRAMからファームプログラムを読み出せばよく、コピー先もいずれか1つのRAMで十分である。
 ただし、コピー先のRAMアドレスは全てのRAMアドレスレジスタ243_1,243_2に格納され、変換許可フラグのセットも全ての変換許可フラグレジスタ244_1,244_2に対して行なわれる。
 このような初期設定が行なわれた後、各二重化CPUでは二重化動作による各種処理が実行される。
 処理の実行中において、CPU21_Aで同期外れが発生したものとする。すると、その同期外れが二重化処理部241_1で検出される。この場合、もう一方のCPU21_Bの主動により、図2を参照して説明したようにして再同期化処理が実行される。この再同期化処理にあたり、ファームROM23_1からファームプログラムを読み出そうとしてCPU21_BからファームROM23_1のファームプログラム格納領域のアドレスが出力され、二重化処理部241_1ではCPU21_Bから出力されたアドレスが出力される。このとき、ROMアドレス検出回路242_1では二重化処理部241_1からファームROM23_1のファームプログラム格納アドレスが出力されたことが検出される。また、変換許可フラグレジスタ244_1には変換許可フラグがセットされている。このため、ゲート回路245_1からRAMアドレス選択信号が出力される。選択回路246_1では、そのRAMアドレス選択信号を受けて、二重化処理部241_1から出力されたファームROM23_1のアドレスに代えて、RAMアドレスレジスタ243_1に格納されている主記憶RAM22_1のアドレスを出力する。すなわち、CPU21_BはファームROM23_1のアドレスを出力し選択回路246_1で主記憶RAM22_1のアドレスにすり替えられて、その主記憶RAM22_1のアドレスが出力される。このため、主記憶RAM22_1にコピーされているファームプログラムが読み出される。こうして、CPU21_A,21_Bは、主記憶RAM22_1から読み出されたファームプログラムにより再同期化処理が行なわれる。
 通常、ファームROM23_1よりも主記憶RAM22_1の方がアクセスの速度が格段に速く、したがって図2に示す「ファーム読み出し」に要する時間が大幅に短縮されることとなる。このため高速な再同期が可能となり、信頼度の高い状態に短時間で復帰することができる。
 また、この図3に示す構成の場合、ROMと1対1に対応するRAMを別途備えるような大きなコストアップは不要であり、従来の回路構成に僅かな変更を加えるだけで高速な再同期を実現している。
 図4は、本件の第2実施形態の演算処理システムの構成を示すブロック図である。ただし、この第2実施形態も全体構成は図1と同じであるが、図示の繁雑さを回避するために、図4では1つのシステムボード20_1についてのみその構成を示してある。
 図4に示すシステムボード20_1を構成するシステム制御回路24_1には、2つのCPU21_A,21_Bのそれぞれに対応する2つのCPUバスインタフェース241a,241bが備えられている。またここには、2つのバスエラー検出器241c,241dと、エラー管理部241eと、スイッチ部241fが備えられている。CPUバスインタフェース241a,241b、バスエラー検出器241c,241d、エラー管理部241e、スイッチ241fは、それらを合わせたものが図3に示す二重化処理部241_1,241_2に対応する。各CPU21_A,21_BからCPUバスインターフェイス241a,241bを経由して出力されてきたアドレスやデータのエラーすなわち同期外れがバスエラー検出器241c,241dで検出される。このバスエラー検出器241c,241dでの検出結果は、エラー管理部241eに報告される。エラー管理部241eは、2つのCPU21A,21Bが同期して動作しているときは、それら2つのCPU21_A,21_Bのうちのいずれか任意の一方(例えばCPU21_A)から出力されたアドレスおよびデータが出力されるようにスイッチ241fを切り替えている。
 ここで、周期外れが検出されると、エラー管理部241eは、周期外れが生じたCPU(例えばCPU21_A)ではない、もう一方のCPU(例えばCPU21_B)から出力されたアドレスおよびデータが出力されるようにスイッチ241fを切り替える。
 スイッチ241fから出力されたアドレスは、先に到達したアドレスやデータ(ここではアドレス)を先に出力するFIFO(first-in first-out)レジスタで構成されたアドレスキュー251に並べられる。その後、インターコネクト40を経由して、このシステムボード20_1が管轄する主記憶RAM22_1,ファームROM23_1、又は、レジスタ等のアドレスのときは、スレーブリクエスト処理回路247_1に入力される。このスレーブリクエスト回路247_1では、そのアドレスが主記憶RAM22_1のアドレスであるか、ファームROM23_1のアドレスであるか、又はレジスタ等のアドレスであるかが判定される。主記憶RAM22_1のアドレスであったときは、そのアドレスが、主記憶RAM22_1へのデータ書込み用の命令であるか主記憶RAM22_1からの読出し用の命令であるかに応じて、それぞれ、FIFOで構成されたバッファ247b又はバッファ247aに格納される。または、スレーブ処理回路247_1でファームROM23_1のアドレスであることが判定されると、そのアドレスがデータ書込み用の命令であるか、データ読出し用の命令であるかに応じて、それぞれバッファ247c、バッファ247dに格納される。ファームROM23_1は読出し専用ではなく、エラーが発生したときのログやこのシステムの情報等の書き込みも行なわれるため、書込用の構成も備えられている。
 また、レジスタ等を指し示すアドレスであったときは、その命令が書込み用であるか読出し用であるかに応じて書込み用のバッファ247f又は読出し用のバッファ247eに格納される。
 また、スイッチ241fから書込み用のデータが出力されると、そのデータは、FIFOで構成されたライトデータバッファ252に一旦格納される。その後インターコネクト40を経由し、主記憶RAM22_1に書き込まれるべきデータの場合はバッファ247bに格納される。また、それと同様に、ファームROM23_1に書き込まれるべきデータの場合はバッファ247cに格納され、レジスタ等に格納されるべきデータの場合はバッファ247eに格納される。
 バッファ247bにデータとアドレスが揃うと、RAMコントローラ261により、主記憶RAM22_1の、そのアドレスに、そのデータが書き込まれる。またこれと同時に、バッファ247cにデータとアドレスが揃うと、ROMコントローラ262により、ファームROM23_1の、そのアドレスに、そのデータが書き込まれる。さらに、バッファ247cにデータとアドレスが揃うと、レジスタRW制御回路263により、そのアドレスにより特定されるバッファ等に、そのデータが書き込まれる。
 また、スレーブリクエスト処理回路247_1によりバッファ247aに読出し用のアドレスが格納されると、RAMコントローラ261には、主記憶RAM22_1の、そのアドレスからデータが読み出される。読み出されたデータは、一旦バッファ247aに格納され、その後インターコネクト40を経由し、リードデータバッファ253に一時的に格納される。その後、CPUバスインタフェース241a,241bを経由してCPU21_A,21_Bに伝達される。またこれと同様に、バッファ247dに読出しアドレスが格納されると、ROMコントローラ262によりファームROM23_1の、その読出しアドレスからデータが読み出される。読み出されたデータは、バッファ247d、インターコネクト40、リードデータバッファ253、CPUバスインタフェース241a,241bを経由してCPU21_A,21_Bに伝達される。これと同様に、バッファ247fにアドレスが格納されると、レジスタRW制御回路263により、そのバッファ247fに格納されたアドレスにより特定されるレジスタ等からデータが読み出される。この読み出されたデータは、バッファ247f、インターコネクト40、リードデータバッファ253、およびCPUバスインタフェース241a,241bを経由してCPU21_A,21_Bに伝えられる。
 また、RAMベースアドレスレジスタ264は、図3に示す第1実施形態のRAMアドレスレジスタ243_1に対応する構成要素である。電源オン時の同期化立ち上げ時に、ファームROM23_1に格納されているファームプログラムが主記憶RAM22_1にコピーされるが、RAMベースアドレスレジスタ264には、主記憶RAM22_1の、そのコピー先のアドレスが格納される。ただし、ファームROM23_1のアドレスであるか、主記憶RAM22_1のアドレスであるかは、アドレスの上位側のビットで区別されており、RAMベースアドレスレジスタ264には、主記憶RAM22_1の上位ビット側のアドレスが格納される。
 また、ここには、ROMベースアドレス記憶部265に記憶されたROMベースアドレスとスイッチ241fから出力されたアドレスとの一致不一致を判定するROMアドレス検出回路266が備えられている。このROMアドレス検出回路266は、図3に示す第1実施形態におけるROMアドレス検出回路242_1に対応する構成要素である。ただし、図4の第2実施形態におけるROMベースアドレス記憶部265には、ファームROM23_1の、ファームプログラム格納領域を指し示すアドレスのうちの上位ビット側の部分のみ記憶されている。したがって、ROMアドレス検出部266では、ファームROM23_1の上位ビット側のアドレスについて一致不一致を判定している。
 アドレスキュー251には、書込みアドレスや読出しアドレスが格納されるが、アドレスのうちの下位ビット側についてはスイッチ241fから出力されたアドレスの下位ビット側からそのまま格納される。上位ビット側については、セレクタ268による選択に応じて、スイッチ241fから出力されたアドレスのうちの上位ビット側か、あるいはRAMベースアドレスレジスタ264に格納されているRAM2_1のアドレスのうちの上位ビット側が出力される。アドレスキュー251にアドレスが格納された後の動作は、前述の通りである。
 また複写フラグレジスタ269は、このシステムボード20_1のリセット時にリセットされるレジスタである。この複写フラグレジスタ269には、ファームROM23_1内のファームプログラムがRAM22_1にコピーされコピー先のアドレスがRAMベースアドレスレジスタ264に格納された段階で複写フラグがセットされる。
 アドレスすり替え許可フラグレジスタ271には、このシステムボード20_1のリセット時に、ANDゲート270により複写フラグレジスタ267に複写フラグが格納されているという判定を受けてアドレスすり替え許可フラグがセットされる。すなわち、このアドレスすり替え許可フラグレジスタ271には2つのCPU21_A,21_Bの同期が外れた後の再同期化のためのリセット時にアドレスすり替え許可フラグがセットされる。
 再同期リセット制御部272には、再同期リセットが要請される。再同期リセット制御部272は、再同期リセットの要請を受けてCPU21_A,CPU_21Bにリセットを指示する。すると、CPU21_A,21_Bは、ファームプログラムの読出し、実行を含む、再同期のためのリセット処理が行なわれる。この再同期リセット処理では、スイッチ241fから出力されてきたアドレスがファームROM23_1の、ファームプログラムが記憶されたアドレスであったときに主記憶RAM22_1の、ファームプログラムのコピー先のアドレスにすり替えられる。したがって、主記憶RAM22_1からファームプログラムが高速に読み出され、短時間で再同期化が行なわれる。
 図5は、図4に示す第2実施形態におけるファームおよび回路の動作シーケンスを示す図である。
 ここでは、「ハードウエア」、「OS」、「CPUファーム」、および「システムファーム」とに分けて各部の動作を示している。ここで、「CPUファーム」、および「システムファーム」は、いずれもファームROMに記憶されているファームプログラムの構成要素である。
 ここでは、先ず、システムファームにより、この演算処理システム全体に亘る複数のシステムボード上の複数の主記憶RAM22_1,22_2,22_3の全体に亘り、アドレスが重複しないように1つのアドレスマップを作成して各主記憶RAM22_1,22_2,22_3にアドレスが設定される。
 次に、システムファームでは、ファームプログラムの主記憶RAMへのコピーの制御が行なわれ、ハードウエア上ではファームROM上のファームプログラムが主記憶RAMにコピーされる。ここで、ファームプログラムの主記憶RAMへのコピーは、第1実施形態でも説明した通り、各システムボードに備えられている主記憶RAMのうちのいずれか1つの主記憶RAMにコピーすれば足りる。
 このコピーが終了した後、「レジスタ設定」が行われる。すなわち、ここでは、RAMベースアドレスレジスタ264(図4参照)に主記憶RAMの、ファームプログラムのコピー先のアドレスが格納され、複写フラグレジスタ269(図4参照)に複写フラグがセットされる。
 CPU21_A(CPU A)でエラーが発生すると、プラットフォーム割り込みが入り、CPU21_B(CPU B)によりOSの一時停止処理が行なわれる。次いで、プラットフォーム割り込みが入ったことがCPUファームに通知され、そのCPUファームからシステムファームにエラー処理の要求が渡され、システムファームでエラー処理が行なわれる。ここでは同期外れによるエラーが発生したことを認識して二重化復帰すべきことが判断される。この二重化復帰にあたっては、同期外れを生じたCPU Aを含む二重化CPU(CPU A/CPU B)への、別CPUやIOからのアクセス抑止指示がなされて、ハードウエア上でアクセス抑止がなされる。さらに、システムファームにはCPU A/CPU Bのキャッシュ上のコンテキストの保存指示がなされ、CPUファームではコンテキスト保存動作が制御され、主記憶RAM上にコンテキストが保存される。このコンテキストは、CPU A/CPU Bで処理中であった処理を再同期化後において続行するために必要となるデータである。
 次に、システムファームによりCPUのリセットが指示され、CPU A/CPU Bの再同期化リセット処理が行なわれる。この再同期化リセット処理においては、主記憶RAMからCPUファームが読み出されてCPUが設定され、主記憶RAMからさらにシステムファームが読み出されてシステム設定が行なわれる。このシステム設定時に同期外れエラーであったことが確認されてコンテキストの読み戻しが指示される。CPUファームではその指示を受けてコンテキストの読み戻し処理が行なわれ、ハードウエア上では主記憶RAM上に退避しておいたコンテキストの読み戻しが行なわれる。次いで、システム制御回路用ファームでは、他からのアクセス抑止の解除が指示され、ハードウエア上で別CPUやIOからのアクセスの抑止解除動作が行なわれる。次いで、システムファームによりOS復帰要求がなされCPUファームによるエラー処理を介してOSがプラットホーム割り込みから復帰する。
 これにより、CPU A/CPU Bが再び同期化され、同期外れが発生する前に行なっていた処理が続行される。
 次に本件の第3実施形態を説明する。
 この第3実施形態および後述する第4実施形態では、CPUに同期外れが発生したときに、再同期化のためのリセットを行なう前にそのCPUで実行していた処理を続行させるための情報を他のCPUに移動させる処理が行なわれる。この処理により、他のCPUに処理の続行を委ねる処理が行なわれる。再同期化はその情報を他のCPUに移動させた後に行えばよく、OSを極く短い時間停止させるだけで、信頼度の高い状態に復帰させることができる。
 図6は、本件の第3実施形態の演算処理システムの構成を示すブロック図である。
 この図6では、以下の説明のために、ファームウェアやOS・アプリケーションを取り出して明示的に示してある。これらのファームウェアやOS・アプリケーションはCPUで実行されることによって以下の作用をなすプログラムである。
 この図6に示す第3実施形態の演算処理システムは、1つのシステムボードに2組の二重化CPU21_A,21_B;21_C,21_Dが備えられている。
 ここでは、CPU21_B(CPU B)で同期外れが発生したものとする。その場合、以下の処理が実行される。
 1)二重化CPUの組ごとに設けられた二重化処理部241_1,241_2のうちの、同期外れが生じたCPU Bを含む二重化CPUを管轄する二重化処理部241_1でCPU Bの同期外れが検出される。二重化処理部241_1でCPU Bの同期外れが検出されるとエラー処理部274にエラー通知がなされる。二重化処理部241_1は、CPU Bの同期外れを検出した後はCPU Aのアドレスを選択するように切り替え、CPU Aのみで処理を継続させる。
 2)エラー処理部274は二重化されたCPUの片側が縮退されたことを表わすビットをセットすることによって、システム管理装置50に割り込みをあげる。システム管理装置50はセットされたビットにより二重化されたCPUの片側が縮退したことを認識する。
 3)システム管理装置50はシステム制御回路24の割り込みレジスタ272をセットする。
 4)システム制御回路24は割り込みレジスタ272のセットによりCPUへ割り込みを行う。
 5)CPU Aはこの割り込みを受けてファームウエアを呼び出す。
 6)ファームウエアはCPU A/CPU Bをこの演算処理システムから切り離すための処理を行う。
 7)ファームウエアはCPU A/CPU Bを切り離すことをOSに通知する。
 8)ファームウエアはシステム制御回路24のCPUリセットレジスタ271をセットする。
 9)CPUリセットレジスタ271は、このセットを受けてCPU A/CPU Bをリセットする。
 10)CPU A/CPU Bは、このリセットを受けて初期設定を行う。
 11)CPU A/CPU Bは、初期設定が完了したらシステム制御回路の割り込みレジスタ273をセットする。
 12)システム制御回路24からシステム管理装置50に割り込みをあげ、リセットが完了したことを通知する。
 13)システム管理装置は割り込みレジスタ275をセットする。
 14)割り込みレジスタ275は、このセットを受けてCPU C/CPU Dに割り込みをあげ、CPU C/CPU Dは、この割り込みを受けてにCPU A/CPU Bの資源が増えたことをOSに通知する。
 以上の方法を実行することにより,OSの停止はCPU A/CPU Bを切り離すのに要する短時間で済み、再同期中のOS停止時間が短縮される。
 尚、この第3実施形態の処理はOSやアプリケーションがCPUの動的削除や動的追加をサポートする機能を有する場合に有効である。この機能をサポートしない場合は以下の第4実施形態で示すような、CPUの動的交換を行うことが有効である。
 図7は、本件の第4実施形態の演算処理システムの構成を示すブロック図である。
 この図7に示す演算処理システムは、このブロック図は、図1に示す演算処理システムと同様であり、図1と同一の符号を付して示す。図1との相違点は、3台のシステムボード20_1,20_2,20_3のうちの1台のシステムボード20_3がこの図7に示す初期段階においてはこの演算処理システム10から論理的に切り離されたオフラインの状態にある点である。また、この図7では、後の説明のためにOSを明示的に示している。このOSは、CPUで実行されることによって、以下の説明に沿う動作を行なうものである。
 また、図8~図13は、図7に示す第4実施形態の演算処理システムにおける、同期外れが生じた際の動作を順に示す図である。
 図8に示すようにCPU Bでエラー(同期外れ)が発生したものとする。このとき、以下の各動作が実行される。
 1)同期外れのCPU Bを管轄するシステム制御回路24_1でCPU Bのエラー(同期外れ)が検出され、システム管理装置50にエラー発生の報告がなされる(図8)。
 2)システム管理装置50は、エラー発生の報告を受けるとシステムボード20_3を起動する(図8)。
 3)システム管理装置50は、システムボード20_3の起動が完了すると、同期外れのCPU Bとペアになっている正常動作中のCPUであるCPU Aに割り込みをあげる。CPU Aは、別CPUやIOからのリクエストが一時的に停止されるように各制御回路を設定する。この時点でOSが停止する(図9)。
 4)CPU AのOS再開に必要な情報をシステムボード20_1の主記憶RAM22_1経由にてシステムボード20_3のCPU E/CPU Fにコピーする。コピーが済むと、CPU AはCPU Aを認識するためのCPU IDをCPU E/CPU Fに渡す。これと交換にCPU_Aは、CPU E/CPU FからそれまでCPU E/CPU FのIDとして使用されていたCPU IDを受け取る。さらに、IOから交換後のCPUに正しくパケットを届けるため、新たなCPU IDの設定を各IO制御回路30_1,30_2,30_3に反映させる(図10)。
 5)3)で行なった、別CPUとIOからのリクエストの発行停止設定を解除し、OSを復帰させる(図11)。
 6)5)が完了した後、システム管理装置50に割り込みをあげて、システムボード20_1を論理的に切り離す(図12)。システムボード20_1では、その後リセット処理が行なわれ、又は、このシステムボード20_1の交換が行なわれる。
 この第3実施形態の場合、OSの停止は、4)~5)の間、すなわち極めて短時間だけで済むことになる。
 図13は、図8~図12に示す第4実施形態の演算処理システムの各部の動作シーケンスを示す図である。ここでは、図8に示すシステムボード20_1、およびシステムボード20_3を、それぞれシステムボード1,およびシステムボード3と表記している。
 ハードウエア上でシステムボード1のCPU Bで同期外れエラーが発生したことが検出されると、OSにプラットフォーム割り込みが入り、CPU AによりOSの一時停止処理がなされる。さらに、システムボード1のCPUファームにプラットフォームのエラー処理があげられ、さらにシステムボード1のシステムファームによりエラー処理が行なわれる。このエラー処理では、システム制御装置50に、エラーの報告がなされてシステム制御装置50によりボード交換制御が行なわれる。すなわち、ここでは、それまで待機していたシステムボード3が起動され、CPUファームによりCPU E/CPU Fの初期設定が行なわれ、さらにシステムファームによりシステムボード3上のシステムの初期設定が行なわれる。システムボード3は、この初期設定の後、暫くの間ループ状態(ウエイト状態)となる。システム制御装置50は、さらに割り込みレジスタに割り込みフラグをセットする。すると、CPU Aによりそのフラグのセットによるプラットフォーム割込みが受け付けられ、OSが一時停止する。システムボード1のCPUファームではそのプラットフォーム割込みによる割込み処理が行なわれ、その処理がシステムファームに受け継がれてシステムファームにより別CPUやIOの停止が指示される。ハードウエア上では、この指示を受けて、別CPUやIOからのリクエストが停止される。また、システムボード1のシステムファームではコンテキスト保存処理が行なわれ、主記憶RAMにコンテキストが保存される。さらに、システムボード1のシステムファームでは、CPU AとCPU E/CPU Fとの間でのCPU IDの交換が行なわれ、各制御回路内の割り込み宛先設定レジスタに新たなCPU IDが設定される。また、システムボード1のCPUファームにより、システムボード3から受け取ったCPU IDが設定され、その後システムボード1は、停止し、交換/待機等がなされる。
 また、システムボード3では、ループ状態(ウエイト状態)にあったCPU E/CPU Fが動作状態に復帰し、システムボード1から受け取ったCPU IDがCPU E/CPU FのCPU IDとして設定される。さらにシステムボード3のシステムファームでは、コンテキストの読み戻しが指示され、システムボード3のCPUファームによりコンテキスト読み戻しの処理が行なわれて主記憶RAMに退避しておいたコンテキストの読み戻しが行なわれる。システムボード3のシステムファームでは、さらに別CPUやIOの復帰指示が行なわれ、別CPUやIOからのリクエストを再び受け付けるべく別CPUやIOの復帰処理が行なわれる。さらにOSが復帰する。
 以上の第4実施形態によれば、システムボード1の動作をシステムボード3に移すまでの僅かな時間だけOSを停止するだけで済み、同期外れが生じた後の停止時間が極めて短時間で済む。
 以上説明したように、以上の各実施形態によれば、同期外れ後の停止時間が短時間で済む。また、タイムアウトの時間設定を長時間に設定する必要がなく、汎用の部品が使用可能となる。

Claims (12)

  1.  それぞれが2つ以上のCPUからなり互いに同期して処理を実行する多重化CPUを複数組有する演算処理システムであって、
     前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、
     全体として1つのアドレスマップで定義されたRAMと、
     システムブート時に、前記ROMに記憶されたファームプログラムを前記RAMに複写するファーム複写部と、
     前記RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタと、
     前記RAMアドレスレジスタに、前記RAMの、前記ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
     前記多重化CPUの同期外れを検出する同期外れ検出部と、
     前記同期外れ検出部により同期外れが検出されたことを受けて前記RAMアドレスレジスタを参照し、前記ROMに記憶されたファームプログラム読出し用のアドレスを、前記RAMの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有することを特徴とする演算処理システム。
  2.  前記RAMにファームプログラムが複写されたことを示す複写フラグが格納される複写フラグレジスタと、
     前記ファーム複写部により前記RAMにファームプログラムが複写されたことを受けて前記複写フラグレジスタに前記複写フラグを格納する複写フラグ格納部とを有し、
     前記アドレスすり替え部は、前記同期外れ検出部により同期外れが検出されたことを受けて前記複写フラグレジスタを参照し、該複写フラグレジスタに前記複写フラグが格納されていた場合に、前記ROMに記憶されたファームプログラム読出し用のアドレスを、前記RAMの、該ファームプログラムの複写先のアドレスにすり替えるものであることを特徴とする請求項1記載の演算処理システム。
  3.  前記同期外れ検出部により同期外れが検出されたことを受け、再同期後の動作継続に必要なコンテキストを前記ファームプログラムの読出しに先立って前記RAMに退避させるコンテキスト退避部と、
     前記ファームプログラムの読出し後において、前記RAMに退避しておいたコンテキストを読み戻すコンテキスト読戻部とをさらに有することを特徴とする請求項1又は2記載の演算処理システム。
  4.  それぞれが2つ以上のCPUからなる多重化CPU複数組と、該複数組の多重化CPUを管理するシステム管理装置とを有する演算処理システムであって、
     前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、
     全体として1つのアドレスマップで定義されたRAMと、
     前記多重化CPUの同期外れを検出して前記システム管理装置に報告する同期外れ検出部と、
     前記システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切り離す切離し処理部とを有し、
     前記システム管理装置が、前記複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、該第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示部を有することを特徴とする演算処理システム。
  5.  前記システム管理装置が、論理的な切離が行なわれた後の前記第1の多重化CPUでの再同期が完了したことを受けて、該第1の多重化CPUの、当該演算処理システムへの論理的な追加を指示する追加指示部を有することを特徴とする請求項4記載の演算処理システム。
  6.  当該演算処理システムが、前記複数組の多重化CPUの中に、当該演算処理システムから論理的に切り離された第2の多重化CPUを含み、
     前記システム管理装置が、前記複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、前記第2の多重化CPUの、当該演算処理システムへの論理的な参加を指示する参加指示部を有し、
     前記切離し処理部は、前記システム管理装置からの切離し指示を受けて、前記第1の多重化CPUで行なっていた処理を当該演算処理システムに新たに参加した前記第2の多重化CPUに引き継がせた上で、当該演算処理システムから論理的に切り離すものであることを特徴とする請求項4記載の演算処理システム。
  7.  前記第1の多重化CPUの前記切離し処理部は、前記システム管理装置からの切離し指示を受けて、該第1の多重化CPUのIDを当該演算処理システムに新たに参加した前記第2の多重化CPUのIDとして該第2の多重化CPUに通知するものであることを特徴とする請求項6記載の演算処理システム。
  8.  前記第1の多重化CPUの立場にあるときに、前記システム制御装置からの切離し指示を受けて、該第1の多重化CPUで行なっていた処理を前記第2の多重化CPUで継続するために必要なコンテキストを前記RAMに退避させるコンテキスト退避部と、
     前記第2の多重化CPUの立場にあって、当該演算処理システムに新たに参加した際に、前記RAMから前記コンテキストを読み戻すコンテキスト読戻部とを有することを特徴とする請求項7記載の演算処理システム。
  9.  それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有する演算処理システムにおける再同期方法であって、
     当該演算処理システムが、前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMと、前記RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、
     システムブート時に、前記ROMに記憶されたファームプログラムを前記RAMに複写するファーム複写ステップと、
     前記RAMアドレスレジスタに、前記RAMの、ファームプログラムの複写先のアドレスを格納するRAMアドレス格納ステップと、
     前記多重化CPUの同期外れを検出する同期外れ検出ステップと、
     前記同期外れ検出ステップにおいて同期外れが検出されたことを受けて前記RAMアドレスレジスタを参照し、前記ROMに記憶されたファームプログラム読出し用のアドレスを、前記RAMの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替えステップとを有することを特徴とする再同期方法。
  10.  それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有するとともに、該複数組の多重化CPUを管理するシステム管理装置を備えた演算処理システムにおける再同期方法であって、
     当該演算処理システムが、前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMとを備えたシステムであり、
     前記多重化CPUの同期外れを検出して前記システム管理装置に報告する同期外れ検出ステップと、
     前記システム管理装置で実行される、前記複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、該第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示ステップと、
     前記第1の多重化CPUのうちの正常動作実行中のCPUで実行される、前記システム管理装置からの切離し指示を受けて当該第1の多重化CPUを当該演算処理システムから論理的に切離す切離し処理ステップとを有することを特徴とする再同期方法。
  11.  それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有する演算処理システムで実行されるファームプログラムであって、
     当該演算処理システムが、前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMと、前記RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、当該演算処理システムを、
     システムブート時に、前記ROMに記憶されたファームプログラムを前記RAMに複写するファーム複写部と、
     前記RAMアドレスレジスタに、前記RAMの、前記ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
     前記多重化CPUの同期外れを検出する同期外れ検出部と、
     前記同期外れ検出部により同期外れが検出されたことを受けて前記RAMアドレスレジスタを参照し、前記ROMに記憶されたファームプログラム読出し用のアドレスを、前記RAMの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムとして動作させることを特徴とするファームプログラム。
  12.  それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有するとともに、該複数組の多重化CPUを管理するシステム管理装置を備えた演算処理システムで実行されるファームプログラムであって、
     当該演算処理システムが、前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMとを備えたシステムであり、当該演算処理システムを、
     前記多重化CPUの同期外れを検出して前記システム管理装置に報告する同期外れ検出部と、
     前記システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切離す切離し処理部とを有する演算処理システムとして動作させることを特徴とするファームプログラム。
PCT/JP2009/054305 2009-03-06 2009-03-06 演算処理システム、再同期方法、およびファームプログラム WO2010100757A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2009/054305 WO2010100757A1 (ja) 2009-03-06 2009-03-06 演算処理システム、再同期方法、およびファームプログラム
JP2011502557A JP5287974B2 (ja) 2009-03-06 2009-03-06 演算処理システム、再同期方法、およびファームプログラム
US13/137,671 US20110320683A1 (en) 2009-03-06 2011-09-01 Information processing system, resynchronization method and storage medium storing firmware program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/054305 WO2010100757A1 (ja) 2009-03-06 2009-03-06 演算処理システム、再同期方法、およびファームプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/137,671 Continuation US20110320683A1 (en) 2009-03-06 2011-09-01 Information processing system, resynchronization method and storage medium storing firmware program

Publications (1)

Publication Number Publication Date
WO2010100757A1 true WO2010100757A1 (ja) 2010-09-10

Family

ID=42709335

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/054305 WO2010100757A1 (ja) 2009-03-06 2009-03-06 演算処理システム、再同期方法、およびファームプログラム

Country Status (3)

Country Link
US (1) US20110320683A1 (ja)
JP (1) JP5287974B2 (ja)
WO (1) WO2010100757A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111354406A (zh) * 2018-12-20 2020-06-30 爱思开海力士有限公司 存储器装置及其操作方法以及包括其的存储器系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014112042A1 (ja) * 2013-01-15 2014-07-24 富士通株式会社 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
CN110851183B (zh) * 2018-08-20 2024-04-12 联想企业解决方案(新加坡)有限公司 在多处理器体系结构中快速启动处理器的方法
US11669593B2 (en) 2021-03-17 2023-06-06 Geotab Inc. Systems and methods for training image processing models for vehicle data collection
US11682218B2 (en) 2021-03-17 2023-06-20 Geotab Inc. Methods for vehicle data collection by image analysis
US11693920B2 (en) * 2021-11-05 2023-07-04 Geotab Inc. AI-based input output expansion adapter for a telematics device and methods for updating an AI model thereon

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61150041A (ja) * 1984-12-24 1986-07-08 Nec Corp 二重化情報処理システム
JPH05265984A (ja) * 1992-03-23 1993-10-15 Hitachi Ltd 高信頼化コンピュータシステムの割込み制御方法
JP2000163313A (ja) * 1998-11-30 2000-06-16 Ricoh Co Ltd プログラム読出し制御装置およびシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7627781B2 (en) * 2004-10-25 2009-12-01 Hewlett-Packard Development Company, L.P. System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
US8082431B2 (en) * 2006-09-29 2011-12-20 Intel Corporation System and method for increasing platform boot efficiency

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61150041A (ja) * 1984-12-24 1986-07-08 Nec Corp 二重化情報処理システム
JPH05265984A (ja) * 1992-03-23 1993-10-15 Hitachi Ltd 高信頼化コンピュータシステムの割込み制御方法
JP2000163313A (ja) * 1998-11-30 2000-06-16 Ricoh Co Ltd プログラム読出し制御装置およびシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111354406A (zh) * 2018-12-20 2020-06-30 爱思开海力士有限公司 存储器装置及其操作方法以及包括其的存储器系统
CN111354406B (zh) * 2018-12-20 2023-08-29 爱思开海力士有限公司 存储器装置及其操作方法以及包括其的存储器系统

Also Published As

Publication number Publication date
JP5287974B2 (ja) 2013-09-11
US20110320683A1 (en) 2011-12-29
JPWO2010100757A1 (ja) 2012-09-06

Similar Documents

Publication Publication Date Title
JP2505928B2 (ja) フォ―ルト・トレラント・システムのためのチェックポイント機構
JP3982353B2 (ja) フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
KR101121116B1 (ko) 동기 제어 장치, 정보 처리 장치 및 동기 관리 방법
US7493517B2 (en) Fault tolerant computer system and a synchronization method for the same
JP5392594B2 (ja) 仮想計算機冗長化システム、コンピュータシステム、仮想計算機冗長化方法、及びプログラム
JP2006178616A (ja) フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
JP5287974B2 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP2008046685A (ja) 二重化システム及び系切り換え方法
CA2530913A1 (en) Fault tolerant computer system and interrupt control method for the same
US20130262917A1 (en) Redundant system control method
JP2006277205A (ja) 記憶装置システムおよびその制御方法、制御プログラム
JP5013324B2 (ja) コンピュータ装置及びそのbiosアップデート方法
JP2005196490A (ja) データ多重化のためのシステム及び方法
JPH0934809A (ja) 高信頼化コンピュータシステム
JP2001216204A (ja) 記憶制御装置
KR100566340B1 (ko) 정보 처리 장치
JP2005293315A (ja) データミラー型クラスタシステム及びデータミラー型クラスタシステムの同期制御方法
JP3774826B2 (ja) 情報処理装置
JP2009098988A (ja) フォルトトレラントコンピュータシステム
JP5251690B2 (ja) 遠隔コピーシステムおよび遠隔コピー方法
JP2011028481A (ja) フォールトトレラントサーバ、プロセッサ切り替え方法およびプロセッサ切り替えプログラム
JPH08185329A (ja) データ処理装置
JP2013020566A (ja) 二重化情報処理システム
JP4193754B2 (ja) データ二重化方法とプログラム
JP2001175545A (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: 09841119

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2011502557

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09841119

Country of ref document: EP

Kind code of ref document: A1