WO2014118940A1 - 計算機装置及び計算機装置の制御方法 - Google Patents

計算機装置及び計算機装置の制御方法 Download PDF

Info

Publication number
WO2014118940A1
WO2014118940A1 PCT/JP2013/052205 JP2013052205W WO2014118940A1 WO 2014118940 A1 WO2014118940 A1 WO 2014118940A1 JP 2013052205 W JP2013052205 W JP 2013052205W WO 2014118940 A1 WO2014118940 A1 WO 2014118940A1
Authority
WO
WIPO (PCT)
Prior art keywords
interrupt
initialization procedure
ras
cpu
detection mechanism
Prior art date
Application number
PCT/JP2013/052205
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 US14/650,630 priority Critical patent/US9959225B2/en
Priority to EP13873790.3A priority patent/EP2953028A4/en
Priority to JP2014559432A priority patent/JP5877533B2/ja
Priority to CN201380071709.4A priority patent/CN104956337B/zh
Priority to PCT/JP2013/052205 priority patent/WO2014118940A1/ja
Publication of WO2014118940A1 publication Critical patent/WO2014118940A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Definitions

  • RAS Reliability, Availability
  • the present invention relates to a technology for adding a RAS module, which is a program for realizing (Serviceability).
  • the present invention also relates to a technique for adding a RAS module to a computer device in which a hypervisor is installed together with an OS without modifying the OS and hypervisor modules.
  • Hypervisor is software that realizes virtualization of a computer device. Hypervisor is software that emulates the operation of a computer device and is located between the OS and computer hardware. It operates multiple OSs on one computer device at the same time, and communicates and shares resources among multiple OSs. Intermediary etc.
  • the CPU exception is an exception when the CPU cannot continue normal processing (for example, division by zero). When a CPU exception occurs, another program that has been set in advance can be called. In this specification, both CPU exceptions and interrupts other than CPU exceptions are called “interrupts”. Of the “interrupts”, interrupts other than CPU exceptions are called “standard interrupts” and are distinguished from CPU exceptions.
  • an RAS function corresponding to a CPU exception is provided in a computer device in which an OS (one or more may be present) and a hypervisor (which may be configured without a hypervisor) are operating in independent module configurations.
  • OS one or more may be present
  • hypervisor which may be configured without a hypervisor
  • it has been realized by a method such as adding processing corresponding to a CPU exception to the OS or Hypervisor.
  • the structure provided in the hypervisor in the book) is disclosed.
  • Patent Document 2 discloses a technique for solving an exception in a virtual machine that operates a plurality of OSs using a hypervisor. Specifically, the memory image of the processing part executed by the OS when the exception occurs is copied to the Hypervisor side, and the Hypervisor emulates a privileged instruction in the processing executed by the OS when the exception occurs. Techniques for resolving exceptions are disclosed.
  • a computer system in which an OS (one or more may exist) and a hypervisor (hypervisor may not be present) are configured as independent modules is provided with a RAS function corresponding to the exception processing of the OS.
  • a RAS function corresponding to the exception processing of the OS.
  • the RAS function is realized by providing a function corresponding to the CPU exception on the Hypervisor side in advance. For this reason, when it is difficult to make corrections to the OS or Hypervisor module (when technical difficulty is high and costs are high, licenses cannot be corrected, or you want to make corrections from the viewpoint of maintaining quality) In some cases, it is difficult to add a RAS function.
  • the main object of the present invention is to solve the above-described problems.
  • the main object of the present invention is to add a RAS module to a computer apparatus without modifying the OS so that the RAS function can be appropriately realized.
  • the computer apparatus is: A CPU (Central Processing Unit) including an interrupt detection mechanism for detecting an interrupt; An OS (Operating System) including an interrupt determination unit that is called by the interrupt detection mechanism when the interrupt detection mechanism detects an interrupt and determines whether or not the interrupt detected by the interrupt detection mechanism is a CPU exception.
  • a computer device comprising: When a RAS (Reliability Availability Serviceability) module that is a program for processing a CPU exception is added to the computer device, The CPU is When starting up the computer apparatus, the first initialization procedure included in the RAS module is called, the first initialization procedure is executed, and the resources used by the RAS module are initialized.
  • RAS Reliability Availability Serviceability
  • the initialization procedure included in the OS After the execution of the first initialization procedure of the RAS module, the initialization procedure included in the OS is called, the initialization procedure is executed, and the resources used by the OS are initialized, After execution of the initialization procedure of the OS, a second initialization procedure included in the RAS module is called, the second initialization procedure is executed, and the interrupt determination unit included in the OS is moved to the RAS. Copying to a module, and setting the interrupt detection mechanism to call the interrupt determination unit copied to the RAS module instead of the OS interrupt determination unit when the interrupt detection mechanism detects an interrupt. .
  • the present invention it is possible to add a RAS module to a computer apparatus without modification to the OS installed in the computer apparatus, and it is also possible to appropriately perform the RAS module when the interrupt detection mechanism of the CPU detects an interrupt. Is called to realize the RAS function.
  • FIG. 3 is a diagram illustrating a configuration example of a computer apparatus according to the first embodiment.
  • FIG. 3 is a flowchart showing an overview of initialization processing in the computer apparatus according to the first embodiment.
  • FIG. 3 is a flowchart showing details of a first initialization procedure of the RAS module according to the first embodiment.
  • FIG. 3 is a flowchart showing details of an OS initialization procedure according to the first embodiment.
  • FIG. 6 is a flowchart showing details of a second initialization procedure of the RAS module according to the first embodiment.
  • FIG. FIG. 3 is a flowchart showing an operation example when a CPU exception occurs in the computer apparatus according to the first embodiment.
  • FIG. 4 is a diagram illustrating a configuration example of a computer apparatus according to a second embodiment.
  • FIG. 9 is a flowchart showing an overview of initialization processing in the computer apparatus according to the second embodiment.
  • FIG. 9 is a flowchart showing details of a first initialization procedure of the RAS module according to the second embodiment.
  • FIG. The figure which shows the operation example at the time of CPU exception generation in the computer apparatus which concerns on Embodiment 2.
  • FIG. FIG. 9 is a flowchart showing an operation example when a CPU exception occurs in the computer apparatus according to the second embodiment.
  • FIG. 9 is a flowchart showing an operation example when an interrupt occurs in the computer apparatus according to the third embodiment.
  • FIG. The figure which shows the structural example before the RAS module addition of the computer apparatus which concerns on Embodiment 2.
  • FIG. 9 is a flowchart showing an operation example when an interrupt occurs in the computer apparatus according to the third embodiment.
  • FIG. The figure which shows the structural example before the RAS module addition of the computer apparatus which concerns on Embodiment 2.
  • a computer apparatus on which one or a plurality of OSs or hypervisors operate will be described. More specifically, a RAS module that handles CPU exceptions can be added without modifying the OS or Hypervisor module. When a CPU exception occurs, the RAS module is called appropriately, and the RAS module causes the CPU exception.
  • a computer apparatus and a computer apparatus control method in which the process is executed will be described.
  • a computer apparatus that executes the RAS function even when a failure occurs in the OS or the hypervisor in addition to the occurrence of a CPU exception will be described.
  • the OS or the Hypervisor itself is configured to realize the RAS function, there is a problem that the RAS function cannot be executed when the OS or the Hypervisor itself operating when the CPU exception occurs overlaps.
  • a computer apparatus that solves such a problem will be described.
  • a RAS module that can acquire fault information of a corresponding OS (or Hypervisor) by determining which OS (or Hypervisor) was operating when a CPU exception occurred will be described.
  • the interrupt registration content is changed on the OS side by calling the corresponding interrupt processing unit with reference to the interrupt determination unit on the OS side (computer device)
  • the RAS module that can call the interrupt processing unit correctly even when the interrupt registration contents are dynamically changed between the start of the interrupt and the occurrence of the interrupt will be described.
  • FIG. 1 is a block diagram illustrating a configuration example of the computer apparatus (100) according to the first embodiment.
  • the configuration of the computer apparatus (100) is roughly divided into hardware and software.
  • the computer apparatus (100) includes a CPU (101), a memory (103), and a secondary storage device (104) as hardware.
  • One or more CPUs (101) may be present (multicore, multi-CPU, multiprocessor, etc.).
  • the CPU (101) has an interrupt detection mechanism (102).
  • the interrupt detection mechanism (102) detects interrupts (CPU exceptions and standard interrupts).
  • the memory (103) is a RAM (Random Access Memory).
  • the secondary storage device (104) is, for example, a ROM (Read Only Memory), an HDD (Hard Disk Drive), or an SSD (Solid State Drive).
  • the software described later is stored in the secondary storage device (104), and is loaded from the secondary storage device (104) to the memory (103) during execution and sequentially from the memory (103) to the CPU (101). Read and execute.
  • the computer apparatus (100) is equipped with various devices including an input / output device and a communication device.
  • an OS 110
  • a RAS module 130
  • a boot program 140
  • the boot program (140) is executed when the computer apparatus (100) is activated.
  • One or a plurality of OSs (110) may exist.
  • the module of the OS (110) includes an initialization procedure (111), an interrupt determination unit (112), a CPU exception processing unit (113), and an interrupt processing unit (115).
  • the initialization procedure (111) is a program for initializing resources used by the OS (110).
  • the resources used by the OS (110) include both hardware resources and software resources.
  • the interrupt determination unit (112) is a program called by the interrupt detection mechanism (102) when the interrupt detection mechanism (102) detects an interrupt.
  • the interrupt determination unit (112) determines whether the interrupt detected by the interrupt detection mechanism (102) is a CPU exception or a standard interrupt. As will be described later, when the computer apparatus (100) is started, the interrupt determination unit (112) is copied to the RAS module (130) to become the interrupt determination unit (134), and the interrupt detection mechanism (102) is set. When the interrupt detection mechanism (102) detects an interrupt, the interrupt detection mechanism (102) calls the interrupt determination unit (134). For this reason, after the RAS module (130) is added to the computer apparatus (100), the interrupt determination unit (112) is not called from the interrupt detection mechanism (102).
  • the CPU exception processing unit (113) and the interrupt processing unit (115) are programs that are executed when a standard interrupt that is not a CPU exception occurs. Details of the operations of the CPU exception processing unit (113) and the interrupt processing unit (115) will be described in the third embodiment.
  • the RAS module (130) is a program that performs processing for a CPU exception.
  • the RAS module (130) includes a first initialization procedure (132), a second initialization procedure (133), an interrupt determination unit (134), an OS identification unit (135), a failure detection unit (136), a failure An information collection unit (137), a failure identification unit (138), and a failure handling unit (139) exist.
  • the RAS module (130) is also simply referred to as RAS.
  • the first initialization procedure (132) is a program that is executed before the initialization procedure (111) of the OS (110) is executed.
  • resources used by the RAS module (130) are initialized.
  • the resources used by the RAS module (130) include both hardware resources and software resources.
  • the last part of the program code of the initialization procedure (111) of the OS (110) is executed so that the second initialization procedure (133) described later is executed. A rewriting process is performed.
  • the second initialization procedure (133) is a program executed after the execution of the initialization procedure (111) of the OS (110).
  • the interrupt determination unit (112) included in the OS (110) is copied to the RAS module (130), and the OS (110) is detected when the interrupt detection mechanism (102) detects an interrupt.
  • the interrupt detection mechanism (102) is set to call the interrupt determination unit (134) copied to the RAS module (130) instead of the interrupt determination unit (112) of FIG.
  • the interrupt determination unit (134) is the interrupt determination unit (112) copied to the RAS module (130). For this reason, the interrupt determination unit (134) performs the same processing as the interrupt determination unit (112). That is, the interrupt determination unit (134) determines whether the interrupt detected by the interrupt detection mechanism (102) is a CPU exception or a standard interrupt.
  • the OS specifying unit (135) is a program that is executed when the interrupt determination unit (134) determines that the interrupt detected by the interrupt detection mechanism (102) is a standard interrupt.
  • the OS identification unit (135) identifies the OS (110) that was operating when the interrupt occurred. Details of the operation of the OS specifying unit (135) will be described in the third embodiment.
  • the failure detection unit (136), the failure information collection unit (137), the failure identification unit (138), and the failure handling unit (139) are interrupts detected by the interrupt detection mechanism (102) by the interrupt determination unit (134), respectively. Is a program that is executed when it is determined that a CPU exception has occurred. In the failure detection unit (136), the failure that caused the CPU exception is specified.
  • the failure information collection unit (137) identifies the OS (110) that was operating when the CPU exception occurred, and collects information about the failure from the identified OS (110).
  • the failure identification unit (138) identifies a failure handling method corresponding to the failure from the information collected by the failure information collection unit (137). In the failure handling unit (139), the failure handling method identified by the failure identification unit (138) is performed.
  • the failure detection unit (136), the failure information collection unit (137), the failure identification unit (138), and the failure handling unit (139) each correspond to an example of a CPU exception processing unit.
  • the interrupt determination unit (112) and the interrupt determination unit (134) hold the addresses on the memory (103) of processing (programs) that deal with CPU exceptions and standard interrupts.
  • the interrupt processing unit (115) holds processing (program) for coping with the occurrence of an interrupt.
  • the OS (110), the RAS module (130), and the boot program (140) are programs.
  • the CPU (101) reads these programs and is described in the programs. Process according to the contents.
  • the boot program (140) may be “to do”, or the elements included therein (for example, the first initialization procedure (132)) may be “to do”.
  • the description indicates that processing is performed by execution of a program by the CPU (101).
  • FIG. 2 shows an overall flowchart of the initialization process of the RAS module (130) and the OS (110) when starting the computer apparatus (100) according to the first embodiment.
  • the boot program (140) is executed by the CPU (101), and the first initialization procedure (132) of the RAS module (130) is called (S201).
  • the first initialization procedure (132) of the RAS module (130) is executed (S202). Details of the “first initialization procedure” (S202) of the boot program (140) and the RAS module (130) will be described later.
  • the initialization procedure (111) of the OS (110) is called, and the initialization procedure (111) of the OS (110) is executed (S204). Details of the “initialization procedure” (S204) of the OS will be described later.
  • the second initialization procedure (133) of the RAS module (130) is called, and the second initialization procedure (133) of the RAS module (130) is executed (S205). Details of the “second initialization procedure” (S205) of the RAS module (130) will be described later.
  • the initialization procedure (111) of each OS (110) is in turn in the “initialization procedure” (S204) of the OS (110). To be executed.
  • the CPU (101) executes the first initialization procedure (132) to initialize the RAS module (130) (S301).
  • initialization processing of resources mainly used by the RAS module (130) is performed.
  • the CPU (101) performs a process of adding a process of “calling the“ second initialization procedure ”of the RAS module after executing the“ initialization procedure ”of the OS” to the end of the “initialization procedure” of the OS. (S302).
  • the second initialization procedure (133) of the RAS module (130) is a program arranged on the memory (103), and at the end of the initialization procedure (S204) of the OS (110), The last part of the OS initialization procedure (111) is rewritten to call the address on the memory (103) of the program of the second initialization procedure (133) of the RAS module (130). That is, the CPU (101) stores the last description of the program code of the OS (110) initialization procedure (111) stored in the memory (103) as the second initialization procedure (130) of the RAS module (130). 133) is changed to the jump instruction to the program code. Examples of more specific implementation methods of this processing are shown in the following (1) to (4).
  • the RAS module (130) To be able to grasp by the side.
  • the symbol information of the OS (110) is loaded on the memory (103) so that the symbol information can be referred to from the RAS module (130) side, or the symbol information of the OS (110) is previously stored in the RAS module ( 130) enables the RAS module (130) to grasp the code position and size of the initialization procedure (111) of the OS (110) by a method of capturing (such as by hard coding).
  • the first initialization procedure (132) of the RAS module (130) uses the OS (110) initialization procedure (111) that can be grasped in the above (1) to determine the OS ( 110)
  • the last code position of the initialization procedure (111) is grasped.
  • a code (jump instruction) for returning to the caller position in the initialization procedure (111) of the OS (110) is written.
  • the first initialization procedure (132) of the RAS module (130) records the position of this caller, and this last code part is stored in the second initialization procedure (133) of the RAS module (130). It is corrected to the jump instruction to the code position.
  • the first initialization procedure (132) of the RAS module (130) is the initial of the OS (110) in which the last part of the code of the second initialization procedure (133) is recorded in the above (3). To a jump instruction to the caller position in the conversion procedure (111).
  • the initialization procedure (111) of the OS (110) is called (S303). Specifically, the address on the memory of the program of the initialization procedure (111) of the OS (110) is called.
  • the CPU (101) performs initialization of the OS (110) (S401). In S401, initialization processing of resources mainly used by the OS (110) itself is performed. Thereafter, the CPU (101) performs the second initialization procedure (133) of the RAS module (130) as rewritten in the "first initialization procedure" (S202) of the RAS module (130). Call (S402). Specifically, the CPU (101) is realized by calling the address of the program in the second initialization procedure (133) of the RAS module (130).
  • FIG. 16 shows a configuration example of the computer apparatus (100) before adding the RAS module (130).
  • the computer apparatus (100) before the addition of the RAS module (130) is composed of modules in which an OS (a configuration in which one or a plurality of OSs exist) is independent. Before the RAS module (130) is added, the computer apparatus (100) performs a normal operation without the RAS module (130) as shown in FIG.
  • the boot program (140) on the computer apparatus (100) is started up, and the initialization procedure (111) of the OS (110) is called from the boot program (140).
  • the program of the RAS module (130) to be added is stored in the secondary storage device of the computer apparatus (100). (104) Place in the free space above. Further, the boot program (140) of the computer apparatus (100) is changed to call the first initialization procedure (132) of the RAS module (130) when the computer apparatus (100) is started. Specifically, the address on the memory (103) of the program of the first initialization procedure (132) of the RAS module (130) is changed to be called from the boot program (140).
  • the above is the outline of the method of adding the RAS module (130) to the computer apparatus (100).
  • the OS is owned by the OS without modification to the OS module in the computer device in which the OS (a configuration in which one or a plurality of OSs exist) is configured with independent modules. It is possible to easily add a RAS function corresponding to the interrupt determination unit.
  • FIG. 6 shows the flow of processing when an interrupt occurs during the operation of the OS (110).
  • a plurality of OSs may exist.
  • illustration of the memory (103), the secondary storage device (104), and the boot program (140) that are not directly related to the description is omitted.
  • the solid line arrow of FIG. 6 has shown the flow of the process, and the broken line arrow has shown the content of the process.
  • the interrupt detection mechanism (102) of the CPU (101) calls the RAS module (130).
  • the RAS module (130) determines whether or not the generated interrupt is a CPU exception. If the generated interrupt is a CPU exception, the RAS module (130) determines which OS was operating by a program counter (a register holding the execution address of the CPU) of the computer apparatus (100). (Determine which OS was operating from the location of the code being executed held by the program counter), identify the corresponding OS, and collect failure information from the identified OS. With this operation, when the OS has a plurality of configurations, it is possible to determine which OS was operating when a CPU exception occurred, and it is possible to collect failure information from the corresponding OS.
  • the interrupt detection mechanism (102) detects an interrupt (S701).
  • the interrupt detection mechanism (102) calls the interrupt determination unit (134) of the RAS module (130) (S702).
  • the interrupt determination unit (134) determines whether the interrupt detected by the interrupt detection mechanism (102) is a CPU exception or a standard interrupt (S703).
  • the process proceeds to S1001 in FIG. Details of the flowchart of FIG. 15 will be described in Embodiment 3.
  • the failure detection unit (136) of the RAS module (130) identifies the failure that caused the CPU exception (S705).
  • the failure information collection unit (137) of the RAS module (130) identifies the OS (110) that was operating when the CPU exception occurred, and collects failure information from the corresponding OS (110) (S706-1). ).
  • the failure information collection unit (137) of the RAS module (130) identifies the OS (110) that was operating when the CPU exception occurred by using the program counter of the computer apparatus (100) as described above.
  • the failure identification unit (138) of the RAS module (130) identifies a failure handling method corresponding to the failure identified in S705 (S707).
  • the failure handling unit (139) of the RAS module (130) performs processing to deal with the failure according to the failure handling method identified in S707 (S708).
  • the interrupt determination unit (134), the failure detection unit (136), etc. in the RAS module (130) are executed, so that the CPU exception and the OS failure occur. Even when the two overlap, the RAS function can be executed.
  • an interrupt owned by an OS without modification to the OS module is added to a computer apparatus in which the OS (which may include one or a plurality of OSs) is composed of independent modules.
  • the RAS method that enables the addition of the RAS function corresponding to the determination unit has been described. More specifically, the following (1) to (4) are mainly described in the present embodiment.
  • the “initialization procedure” of the RAS module that is called when the computer apparatus is started up includes the “first initialization procedure” executed before the “initialization procedure” of the OS and the “initialization procedure” of the OS. ”Is divided into two parts,“ second initialization procedure ”that is executed after completion.
  • the last part of the “initialization procedure” of the OS is the “second initialization procedure” of the RAS module after the “initialization procedure” of the OS. Rewritten to call.
  • the “interrupt determination unit” of the OS is copied to the RAS module.
  • the “interrupt detection mechanism” is set to call the “interrupt determination unit” of the RAS module instead of the “interrupt determination unit” of the OS when an interrupt occurs. .
  • the interrupt determination unit, the failure detection unit, etc. in the RAS module are executed, so that the RAS function is executed even when the CPU exception and the OS failure occur.
  • the RAS method has been described.
  • the failure information collection unit in the RAS module by executing the failure information collection unit in the RAS module, it is determined from the program counter at the time of CPU exception occurrence, which OS was operating at the time of CPU exception occurrence.
  • the RAS method capable of collecting failure information from the OS has been described.
  • FIG. 8 is a block diagram illustrating a configuration example of the computer apparatus (100) according to the second embodiment.
  • the only difference from the configuration of the first embodiment (FIG. 1) is that the initialization procedure (121) of the hypervisor (120) and hypervisor (120) exists, and the other configuration is the same as the configuration of the first embodiment (FIG. 1). ) Is the same.
  • the CPU (101) may have one or more configurations (multi-core, multi-CPU, multi-processor, etc.).
  • FIG. 9 shows an overall flow of initialization processing of the modules of the RAS module (130), the OS (110), and the hypervisor (120) when starting the computer apparatus (100) in the second embodiment.
  • the steps up to the “first initialization procedure” (S202) of the RAS module in FIG. 9 are the same as those in the first embodiment.
  • the initialization procedure (121) of the hypervisor (120) is called and executed (S203).
  • the CPU (101) mainly performs initialization of resources used by the hypervisor (120).
  • the “initialization procedure” (S204) and subsequent steps of the OS in FIG. Details of S205 are as shown in FIG. 5 of the first embodiment.
  • the initialization procedure (111) of each OS (110) is sequentially executed in the “initialization procedure” (S204) of the OS in the flowchart of FIG.
  • FIG. 10 shows a detailed flow of the “first initialization procedure” (S202) of the RAS module described above.
  • the difference from the “first initialization procedure” (FIG. 3) of the RAS module according to the first embodiment is that the OS “initialization procedure” (S303 in FIG. 3) is not called last, but the hypervisor. This is only the part for calling the “initialization procedure” (S304 in FIG. 10), and only this part will be described.
  • the CPU (101) calls the initialization procedure (121) of the hypervisor (120). Specifically, the CPU (101) is realized by calling the address on the memory (103) of the program of the initialization procedure (121) of the hypervisor (120).
  • FIG. 1 A configuration example of the computer apparatus (100) before the addition of the RAS module (130) is shown in FIG.
  • the computer apparatus (100) before the addition of the RAS module (130) is composed of an OS (a structure in which one or a plurality of OSs exist) and a hypervisor are independent modules. Before the RAS module (130) is added, the computer apparatus (100) performs a normal operation without the RAS module (130) as shown in FIG. When the computer apparatus (100) of FIG.
  • the boot program (140) on the computer apparatus (100) is started up, and the initialization procedure (121) of the hypervisor (120) is called from the boot program (140),
  • the initialization procedure (111) of the OS (110) is called from the initialization procedure (121) of the hypervisor (120).
  • the program of the RAS module (130) to be added is stored in the secondary storage device of the computer apparatus (100). (104) Place in the free space above. Further, the boot program (140) of the computer apparatus (100) is changed to call the first initialization procedure (132) of the RAS module (130) when the computer apparatus (100) is started. Specifically, the address on the memory (103) of the program of the first initialization procedure (132) of the RAS module (130) is changed to be called from the boot program (140).
  • the above is the outline of the method of adding the RAS module (130) to the computer apparatus (100).
  • an OS (a configuration in which one or a plurality of OSs exist) and a computer device in which the hypervisor is configured as an independent module can be used without modification to the OS or hypervisor module.
  • the RAS function corresponding to the interrupt determination unit owned by the OS can be easily added.
  • FIG. 11 shows the flow of processing when an interrupt occurs during the operation of the OS (110).
  • FIG. 12 shows the flow of processing when an interrupt occurs during the operation of the hypervisor (120).
  • the only difference between FIG. 11 and FIG. 12 is whether the failure information collection unit (137) of the RAS module (130) collects OS failure information or Hypervisor failure information.
  • 11 and 12 the illustration of the memory (103), the secondary storage device (104), and the boot program (140) that are not directly related to the description is omitted.
  • solid arrows in FIGS. 11 and 12 indicate the flow of processing
  • broken arrows indicate the contents of the processing.
  • the interrupt detection mechanism (102) of the CPU (101) calls the RAS module (130).
  • the RAS module (130) determines whether or not the generated interrupt is a CPU exception. If the generated interrupt is a CPU exception, the RAS module (130) determines which OS or Hypervisor was operating when the CPU exception occurred, and the program counter (CPU execution address of the computer device (100)).
  • FIG. 13 shows a flowchart when an interrupt occurs.
  • the failure information collection unit (137) of the RAS module (130) is operating when the CPU exception occurs (or (Hypervisor) is specified, and failure information is collected from the corresponding OS (or Hypervisor) (S706-2). Note that the failure information collection unit (137) of the RAS module (130) identifies the OS (or Hypervisor) that was operating when the CPU exception occurred using the program counter of the computer apparatus (100) as described above.
  • the subsequent processing (after S707) is the same as that in FIG. 7 of the first embodiment.
  • the interrupt determination unit (134), the failure detection unit (136), etc. in the RAS module (130) are executed, so that the CPU exception and the OS failure occur. Even when the two overlap, the RAS function can be executed. Even when the CPU exception and the hypervisor failure occur due to the execution of the interrupt determination unit (134), the failure detection unit (136), etc. in the RAS module (130) when the CPU exception occurs, the RAS function Can be executed.
  • a computer device that includes an OS (which may include one or a plurality of OSs) and a hypervisor independent module can be used without modification to the OS or hypervisor module.
  • the RAS scheme that enables the addition of the RAS function corresponding to the interrupt determination unit owned by the OS has been described. More specifically, the following (1) to (4) have been described in the present embodiment.
  • the “initialization procedure” of the RAS module that is called when the computer apparatus is started up is the “first initialization procedure” that is executed before the “initialization procedure” of the OS or Hypervisor, and the OS or Hypervisor
  • second initialization procedure There are two types of “second initialization procedure” that are executed after the “initialization procedure” is completed.
  • the last part of the “initialization procedure” of the OS is the “second initialization procedure” of the RAS module after the “initialization procedure” of the OS. Rewritten to call.
  • the “interrupt determination unit” of the OS is copied to the RAS module.
  • the “interrupt detection mechanism” is set to call the “interrupt determination unit” of the RAS module instead of the “interrupt determination unit” of the OS when an interrupt occurs. .
  • the failure information collection unit in the RAS module is executed to determine which OS (OS may have a plurality of configurations) or Hypervisor is operating when a CPU exception occurs.
  • OS OS may have a plurality of configurations
  • Hypervisor is operating when a CPU exception occurs.
  • the RAS method has been described in which it is possible to collect failure information from the corresponding OS or Hypervisor by determining from the program counter when an exception occurs.
  • Embodiment 3 An outline of the operation when the interrupt detected by the interrupt detection mechanism (102) is not a CPU exception but a standard interrupt will be described.
  • the configuration of the computer apparatus (100) may be the configuration example of the first embodiment (FIG. 1) or the configuration diagram of the second embodiment (FIG. 8).
  • the configuration of the second embodiment (a configuration with a hypervisor) will be described, but the following operation is also performed in the configuration of the first embodiment (a configuration without a hypervisor).
  • FIG. 14 shows the flow of processing when an interrupt occurs.
  • the memory (103), the secondary storage device (104), and the boot program (140) that are not directly related to the description are omitted.
  • the solid-line arrows in FIG. 14 indicate the flow of processing
  • the broken-line arrows indicate the contents of the processing.
  • the hypervisor (120) performs a process of masking an interrupt and does not accept the interrupt. For this reason, when an interrupt occurs during the processing of the hypervisor (120), the interrupt detection mechanism (102) of the RAS module (130) is transferred at the timing when the processing is transferred from the hypervisor (120) to the OS (110). Call the interrupt determination unit (134). Therefore, the time when processing returns from the hypervisor (120) to the OS (110) side is the timing of interrupt generation, and the program counter at the time of the interrupt generation is OS processing execution (the program counter indicates that processing of the hypervisor is in progress). Not) In the first embodiment (configuration without the hypervisor), there is no hypervisor (120) itself, and thus there is no such masking process of the hypervisor (120).
  • FIG. 15 shows an operation after NO is determined in S703 of FIG. 7 or FIG. That is, when the interrupt determination unit (134) determines that the interrupt is not a CPU exception but a standard interrupt in S703 of FIG. 7 or FIG. 13, S1001 of FIG. 15 is performed.
  • the OS specifying unit (135) of the RAS module (130) specifies the OS (110) that was operating when the standard interrupt occurred (S1001). Similar to the failure information collection unit (137) described in the first embodiment and the second embodiment, the OS identification unit (135) is operated by the program counter of the computer apparatus (100) when the standard interrupt occurs. (110) is specified. Next, the OS identification unit (135) refers to the interrupt determination unit (112) of the corresponding OS (110) and identifies the address of the program of the interrupt processing unit (115) of the corresponding OS (110). Call (S1002). Next, the interrupt processing unit (115) of the OS (110) is executed, and thereafter, the process returns to the OS (110) side (S1003).
  • the interrupt detected by the interrupt detection mechanism is not a CPU exception but a standard interrupt by performing the operation described in the third embodiment in the RAS function added by the first or second embodiment.
  • the interrupt processing unit on the OS side can be called correctly. For example, even if the registration of the interrupt operation is dynamically added or changed by a user operation or the like between the initialization time and the occurrence of the interrupt on the OS side, the operation described in the third embodiment causes the OS to Interrupts can be handled properly.
  • the OS interrupt determination unit is referred to and the corresponding OS interrupt processing unit is called, so that the OS interrupt processing unit is correctly set.
  • the RAS scheme that can be called has been described.
  • 100 computer device 101 CPU, 102 interrupt detection mechanism, 103 memory, 104 secondary storage device, 110 OS, 111 initialization procedure, 112 interrupt determination unit, 113 CPU exception processing unit, 115 interrupt processing unit, 120 hypervisor, 121 initial Procedure, 130 RAS module, 132 first initialization procedure, 133 second initialization procedure, 134 interrupt determination unit, 135 OS identification unit, 136 failure detection unit, 137 failure information collection unit, 138 failure identification unit, 139 Fault handling unit, 140 boot program.

Abstract

 計算機装置(100)の起動時に、CPU(101)が、RASモジュール(130)に含まれる第1の初期化手順(132)を実行して、RASモジュール(130)が用いる資源を初期化し、第1の初期化手順(132)の実行後に、OS(110)に含まれる初期化手順(111)を実行して、OS(110)が用いる資源を初期化し、初期化手順(111)の実行後に、RASモジュール(130)に含まれる第2の初期化手順(133)を実行して、OS(110)に含まれる割込み判定部(112)をRASモジュール(130)にコピーし、割込み検知機構(102)が割込みを検知した際にOS(110)の割込み判定部(112)ではなくRASモジュール(130)にコピーされた割込み判定部(134)を呼び出すように割込み検知機構(102)を設定する。

Description

計算機装置及び計算機装置の制御方法
 本発明は、OS(Operating System)が実装されている計算機装置に、OSのモジュールの修正なしに、CPU(Central Processing Unit)例外に対処する異常対処機能(=RAS機能(RAS:Reliability, Availability, Serviceability)を実現するプログラムであるRASモジュールを追加する技術に関する。
 また、OSとともにHypervisorが実装されている計算機装置に、OS及びHypervisorのモジュールの修正なしに、RASモジュールを追加する技術に関する。
 なお、Hypervisorは、計算機装置の仮想化を実現するソフトウェアである。
 Hypervisorは、OSと計算機ハードウェアの間に位置し、計算機装置の動作をエミュレートするソフトウェアであり、1つの計算機装置上で複数のOSを同時に動作させ、複数のOS間での通信や資源共有の仲介などを行う。
 また、CPU例外は、CPUが通常の処理を続行できない状態になった場合(例えばゼロ除算など)の例外である。
 CPU例外発生時には、前もって設定しておいた別のプログラムを呼び出すことができる仕組みとなっている。
 なお、本明細書では、CPU例外と、CPU例外以外の割込みの双方を「割込み」と呼ぶ。
 また、「割込み」のうち、CPU例外以外の割込みは「標準割込み」と呼び、CPU例外とは区別する。
 従来技術では、OS(一つまたは複数存在してもよい)やHypervisor(Hypervisorはない構成でもよい)が、それぞれ独立したモジュール構成で動作している計算機装置において、CPU例外に対応したRAS機能を実現する場合、OSやHypervisorにCPU例外に対応する処理を追加するなどの方法で実現していた。
 例えば、特許文献1では、本体系障害(=本明細書におけるCPU例外にあたる)に遭遇した仮想計算機で実行状態にあったプロセスの障害情報を障害情報格納領域から取り出す手段をVMモニタ(=本明細書におけるHypervisorにあたる)に設けた構成が開示されている。
 また、例えば、特許文献2では、Hypervisorによって複数のOSを動作させる仮想計算機において例外を解決する技術が開示されている。
 具体的には、例外発生時にOSが実行していた処理部分のメモリイメージをHypervisor側にコピーし、Hypervisorが、例外発生時にOSが実行していた処理のうちの特権命令をエミュレートすることで例外を解決する技術が開示されている。
特開平01-053238号公報 特開2006-155272号公報
 従来、OS(一つまたは複数存在してもよい)とHypervisor(Hypervisorは存在しなくてもよい)が独立したモジュールで構成されている計算機システムに、そのOSの例外処理に対応したRAS機能を追加する場合は、そのOSやHypervisorやCPUが持つ割込み検知機構に対して、修正・変更を加える必要があった。
 例えば、特許文献1及び特許文献2の技術においても、Hypervisor側にCPU例外に対応する機能を予め持たせてRAS機能を実現している。
 このため、OSやHypervisorのモジュールに修正を加えることが困難な場合(技術上の難易度が高くコストがかかる場合や、ライセンス上修正が加えられない場合や、品質保持の観点から修正を行いたくない場合なども含む)は、RAS機能を追加することが困難であるという課題がある。
 この発明は、上記のような課題を解決することを主な目的とする。
 つまり、この発明は、OSへの修正なしに、計算機装置にRASモジュールを追加でき、適切にRAS機能が実現されるようにすることを主な目的とする。
 本発明に係る計算機装置は、
 割込みを検知する割込み検知機構が含まれるCPU(Central Processing Unit)と、
 前記割込み検知機構が割り込みを検知した際に前記割込み検知機構により呼び出され、前記割込み検知機構が検知した割り込みがCPU例外であるか否かが判定される割込み判定部が含まれるOS(Operating System)とを備える計算機装置であって、
 前記計算機装置に、CPU例外に対する処理を行うプログラムであるRAS(Reliability Availability Serviceability)モジュールが追加された場合に、
 前記CPUが、
 前記計算機装置の起動時に、前記RASモジュールに含まれる第1の初期化手順を呼び出し、前記第1の初期化手順を実行して、前記RASモジュールが用いる資源を初期化し、
 前記RASモジュールの前記第1の初期化手順の実行後に、前記OSに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記OSが用いる資源を初期化し、
 前記OSの前記初期化手順の実行後に、前記RASモジュールに含まれる第2の初期化手順を呼び出し、前記第2の初期化手順を実行して、前記OSに含まれる前記割込み判定部を前記RASモジュールにコピーし、前記割込み検知機構が割込みを検知した際に前記OSの割込み判定部ではなく前記RASモジュールにコピーされた割込み判定部を呼び出すように前記割込み検知機構を設定することを特徴とする。
 本発明によれば、計算機装置に実装されているOSへの修正なしに、RASモジュールを計算機装置に追加することができ、また、CPUの割込み検知機構が割込みを検知した場合に適切にRASモジュールが呼び出されて、RAS機能が実現される。
実施の形態1に係る計算機装置の構成例を示す図。 実施の形態1に係る計算機装置における初期化処理の概要を示すフローチャート図。 実施の形態1に係るRASモジュールの第1の初期化手順の詳細を示すフローチャート図。 実施の形態1に係るOSの初期化手順の詳細を示すフローチャート図。 実施の形態1に係るRASモジュールの第2の初期化手順の詳細を示すフローチャート図。 実施の形態1に係る計算機装置におけるCPU例外発生時の動作例を示す図。 実施の形態1に係る計算機装置におけるCPU例外発生時の動作例を示すフローチャート図。 実施の形態2に係る計算機装置の構成例を示す図。 実施の形態2に係る計算機装置における初期化処理の概要を示すフローチャート図。 実施の形態2に係るRASモジュールの第1の初期化手順の詳細を示すフローチャート図。 実施の形態2に係る計算機装置におけるCPU例外発生時の動作例を示す図。 実施の形態2に係る計算機装置におけるCPU例外発生時の動作例を示す図。 実施の形態2に係る計算機装置におけるCPU例外発生時の動作例を示すフローチャート図。 実施の形態3に係る計算機装置における割込み発生時の動作例を示す図。 実施の形態3に係る計算機装置における割込み発生時の動作例を示すフローチャート図。 実施の形態1に係る計算機装置のRASモジュール追加前の構成例を示す図。 実施の形態2に係る計算機装置のRASモジュール追加前の構成例を示す図。
 以下の実施の形態1~3では、1つまたは複数のOSやHypervisorが動作する計算機装置を説明する。
 より具体的には、OSやHypervisorのモジュールの修正なしに、CPU例外に対処するRASモジュールを追加でき、また、CPU例外が発生した際に、適切にRASモジュールが呼び出され、RASモジュールによってCPU例外に対する処理が実施される計算機装置及び計算機装置の制御方法を説明する。
 また、実施の形態1~3では、CPU例外の発生に重ねて、OSやHypervisorに障害が発生した場合でも、RAS機能が実行される計算機装置を説明する。
 OSやHypervisor自身がRAS機能を実現するように構成されている場合は、CPU例外発生時に動作していたOSやHypervisor自身の障害の発生が重なったときには、RAS機能が実行できないという課題がある。
 実施の形態1~3では、このような課題を解決する計算機装置を説明する。
 また、実施の形態1~3では、CPU例外発生時に、どのOS(またはHypervisor)が動作していたかを判定することにより、該当するOS(またはHypervisor)の障害情報を取得できるRASモジュールを説明する。
 また、CPU例外ではなく、標準割込みが発生した場合に、OS側の割込み判定部を参照して対応する割込み処理部を呼び出すことにより、OS側で割込み登録内容が変更されていた場合(計算機装置の立上げから当該割込みの発生時までの間に動的に割込み登録内容が変更されていた場合も含む)でも、正しく割込み処理部を呼び出すことができるRASモジュールを説明する。
 実施の形態1.
[実施の形態1:構成の説明]
 図1は、実施の形態1に係る計算機装置(100)の構成例を示すブロック図である。
 計算機装置(100)の構成は、ハードウェアとソフトウェアに大別される。
 計算機装置(100)には、ハードウェアとして、CPU(101)、メモリ(103)、二次記憶装置(104)が存在する。
 CPU(101)は、1つでも複数存在する構成(マルチコア、マルチCPU、マルチプロセッサなど)でもよい。
 CPU(101)には、割込み検知機構(102)が存在する。
 割込み検知機構(102)は、割込み(CPU例外及び標準割込み)を検知する。
 メモリ(103)は、RAM(Random Access Memory)である。
 また、二次記憶装置(104)は、例えば、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)である。
 後述するソフトウェアは、二次記憶装置(104)に記憶されており、実行の際に、二次記憶装置(104)からメモリ(103)にロードされ、順次メモリ(103)からCPU(101)に読み込まれ、実行される。
 また、後述するソフトウェアの実行により得られた情報、データ、変数値等がメモリ(103)やCPU(101)内のレジスタに記憶される。
 また、図1では、図示を省略しているが、計算機装置(100)には、入出力装置や通信装置を含む各種のデバイスが装備されている。
 また、計算機装置(100)のソフトウェアとして、OS(110)、RASモジュール(130)、ブートプログラム(140)がそれぞれ別モジュールとして存在する。
 ブートプログラム(140)は、計算機装置(100)が起動されるときに実行される。
 OS(110)は1つでも複数存在してもよい。
 OS(110)のモジュールには、初期化手順(111)、割込み判定部(112)、CPU例外処理部(113)、割込み処理部(115)が存在する。
 初期化手順(111)は、OS(110)が用いる資源を初期化するためのプログラムである。
 OS(110)が用いる資源には、ハードウェア資源、ソフトウェア資源の両者が含まれる。
 割込み判定部(112)は、割込み検知機構(102)が割り込みを検知した際に割込み検知機構(102)により呼び出されるプログラムである。
 割込み判定部(112)では、割込み検知機構(102)が検知した割り込みがCPU例外であるか標準割込みであるかが判定される。
 なお、後述するように、計算機装置(100)の起動時に、割込み判定部(112)はRASモジュール(130)にコピーされて割込み判定部(134)となり、また、割込み検知機構(102)の設定が変更されて、割込み検知機構(102)が割り込みを検知した際に割込み検知機構(102)は割込み判定部(134)を呼び出す。
 このため、計算機装置(100)にRASモジュール(130)が追加された後は、割込み判定部(112)は割込み検知機構(102)から呼び出されることはない。
 CPU例外処理部(113)及び割込み処理部(115)は、CPU例外ではない標準割込みが発生した場合に実行されるプログラムである。
 CPU例外処理部(113)及び割込み処理部(115)の動作の詳細は、実施の形態3において説明する。
 RASモジュール(130)は、CPU例外に対する処理を行うプログラムである。
 RASモジュール(130)には、第1の初期化手順(132)、第2の初期化手順(133)、割込み判定部(134)、OS特定部(135)、故障検知部(136)、故障情報収集部(137)、故障同定部(138)、故障対処部(139)が存在する。
 なお、RASモジュール(130)は、単にRASともいう。
 第1の初期化手順(132)は、OS(110)の初期化手順(111)が実行される前に実行されるプログラムである。
 第1の初期化手順(132)では、RASモジュール(130)が用いる資源が初期化される。
 RASモジュール(130)が用いる資源には、ハードウェア資源、ソフトウェア資源の両者が含まれる。
 また、第1の初期化手順(132)では、後述の第2の初期化手順(133)が実行されるように、OS(110)の初期化手順(111)のプログラムコードの最後の部分を書き換える処理が行われる。
 第2の初期化手順(133)は、OS(110)の初期化手順(111)の実行後に実行されるプログラムである。
 第2の初期化手順(133)では、OS(110)に含まれる割込み判定部(112)をRASモジュール(130)にコピーし、割込み検知機構(102)が割込みを検知した際にOS(110)の割込み判定部(112)ではなくRASモジュール(130)にコピーされた割込み判定部(134)を呼び出すように割込み検知機構(102)を設定する処理が行われる。
 割込み判定部(134)は、前述したように、RASモジュール(130)にコピーされた割込み判定部(112)である。
 このため、割込み判定部(134)では、割込み判定部(112)と同じ処理が行われる。
 すなわち、割込み判定部(134)では、割込み検知機構(102)が検知した割り込みがCPU例外であるか標準割込みであるかが判定される。
 OS特定部(135)は、割込み判定部(134)により、割込み検知機構(102)が検知した割り込みが標準割込みであると判定された場合に実行されるプログラムである。
 OS特定部(135)では、割込みが発生したときに動作していたOS(110)が特定される。
 OS特定部(135)の動作の詳細は、実施の形態3で説明する。
 故障検知部(136)、故障情報収集部(137)、故障同定部(138)及び故障対処部(139)は、それぞれ、割込み判定部(134)により、割込み検知機構(102)が検知した割り込みがCPU例外であると判定された場合に実行されるプログラムである。
 故障検知部(136)では、CPU例外の原因となった故障が特定される。
 故障情報収集部(137)では、CPU例外が発生したときに動作していたOS(110)が特定され、特定されたOS(110)から故障に関する情報が収集される。
 故障同定部(138)では、故障情報収集部(137)により収集された情報から、故障に対応する故障対処方法が同定される。
 故障対処部(139)では、故障同定部(138)で同定された故障対処方法が実施される。
 故障検知部(136)、故障情報収集部(137)、故障同定部(138)及び故障対処部(139)は、それぞれ、CPU例外処理部の例に相当する。
 なお、上記の割込み判定部(112)及び割込み判定部(134)は、CPU例外および標準割込みに対処する処理(プログラム)のメモリ(103)上のアドレスを保持する。
 また、上記の割込み処理部(115)は、割込み発生時に対処するための処理(プログラム)を保持する。
 上述したように、OS(110)、RASモジュール(130)、ブートプログラム(140)は、それぞれプログラムであり、計算機装置(100)では、CPU(101)がこれらのプログラムを読込み、プログラムに記述されている内容に従って処理を行う。
 以下では、「CPU(101)が~する」又は「CPU(101)により~される」という説明を行うとともに、理解のしやすさ、文脈を考慮して、OS(110)、RASモジュール(130)、ブートプログラム(140)が「~する」、または、これらに含まれる要素(例えば、第1の初期化手順(132))が「~する」という表現を用いることもある。
 本明細書では、ソフトウェアが動作主体として記述されていても、その記述は、CPU(101)によるプログラムの実行により処理が行われていることを表している。
[実施の形態1:動作の概要説明(初期化時の全体的な動作の概要)]
 まず、本実施の形態に係る計算機装置(100)の初期化時の全体的な動作の概要について説明する。
 実施の形態1に係る計算機装置(100)を起動する際の、RASモジュール(130)、OS(110)の初期化処理の全体的なフローチャートを図2に示す。
 最初に、計算機装置(100)が起動されると、CPU(101)により、ブートプログラム(140)が実行され、RASモジュール(130)の第1の初期化手順(132)が呼び出され(S201)、RASモジュール(130)の第1の初期化手順(132)が実行される(S202)。
 ブートプログラム(140)やRASモジュール(130)の「第1の初期化手順」(S202)の詳細については後述する。
 次に、OS(110)の初期化手順(111)が呼び出され、OS(110)の初期化手順(111)が実行される(S204)。
 OSの「初期化手順」(S204)の詳細については後述する。
 最後に、RASモジュール(130)の第2の初期化手順(133)が呼び出され、RASモジュール(130)の第2の初期化手順(133)が実行される(S205)。
 RASモジュール(130)の「第2の初期化手順」(S205)の詳細については後述する。
 また、計算機装置(100)に複数のOS(110)が存在する場合は、OS(110)の「初期化手順」(S204)では、それぞれのOS(110)の初期化手順(111)が順番に実行される。
[実施の形態1:動作の概要説明(RASモジュールの「第1の初期化手順」の動作)]
 次に、実施の形態1における初期化時の動作の詳細について説明する。
 前述のRASモジュール(130)の「第1の初期化手順」(S202)の詳細フローチャートを図3に示す。
 「第1の初期化手順」(S202)では、まず、CPU(101)が第1の初期化手順(132)を実行して、RASモジュール(130)の初期化を実施する(S301)。
 S301では、主にRASモジュール(130)が使用する資源の初期化処理が実施される。
 その後、CPU(101)は、「OSの「初期化手順」実行後にRASモジュールの「第2の初期化手順」を呼び出す」という処理を、OSの「初期化手順」の最後に付け加える処理を実施する(S302)。
 具体的には、RASモジュール(130)の第2の初期化手順(133)はメモリ(103)上に配置されたプログラムであり、OS(110)の初期化手順(S204)の最後で、このRASモジュール(130)の第2の初期化手順(133)のプログラムのメモリ(103)上のアドレスを呼び出すように、OSの初期化手順(111)の最後の部分を書換える。
 つまり、CPU(101)は、メモリ(103)に格納されている、OS(110)の初期化手順(111)のプログラムコードの最後の記述をRASモジュール(130)の第2の初期化手順(133)のプログラムコードへのジャンプ命令に変更する。
 この処理のより具体的な実現方法の例を、以下の(1)~(4)に示す。
 (1)OS(110)のコンパイル後の実行ファイルのシンボル情報から、OS(110)の初期化手順(111)のコード位置(=メモリ上のプログラムのアドレス)やサイズを、RASモジュール(130)側で把握できるようにする。
 例えば、OS(110)のシンボル情報をメモリ(103)上にロードしておきRASモジュール(130)側からシンボル情報を参照できるようにする方法や、予めOS(110)のシンボル情報をRASモジュール(130)に(ハードコーディングするなどして)取り込んでおく方法により、RASモジュール(130)がOS(110)の初期化手順(111)のコード位置やサイズを把握できるようにする。
 (2)RASモジュール(130)の第1の初期化手順(132)が、前述(1)で把握可能としたOS(110)の初期化手順(111)のコード位置とサイズ情報より、OS(110)の初期化手順(111)の最後のコード位置を把握する。
 (3)この最後のコード位置の部分には、OS(110)の初期化手順(111)の呼び出し元の位置に戻るというコード(ジャンプ命令)が書かれている。
 RASモジュール(130)の第1の初期化手順(132)は、この呼び出し元の位置を記録しておき、この最後のコード部分を、RASモジュール(130)の第2の初期化手順(133)のコード位置へのジャンプ命令に修正する。
 (4)RASモジュール(130)の第1の初期化手順(132)は、第2の初期化手順(133)のコードの最後の部分を、前述(3)で記録したOS(110)の初期化手順(111)の呼び出し元の位置へのジャンプ命令に修正する。
 次に、OS(110)の初期化手順(111)が呼び出される(S303)。
 具体的には、OS(110)の初期化手順(111)のプログラムのメモリ上のアドレスが呼び出される。
[実施の形態1:動作の概要説明(OSの「初期化手順」の動作)]
 次に、前述のOS(110)の「初期化手順」(S204)の詳細フローチャートを図4に示す。
 ここでは、CPU(101)は、OS(110)の初期化を実施する(S401)。
 S401では、主にOS(110)自身が使用する資源の初期化処理が実施される。
 その後、CPU(101)は、前述のRASモジュール(130)の「第1の初期化手順」(S202)にて書換えられた通り、RASモジュール(130)の第2の初期化手順(133)を呼び出す(S402)。
 具体的には、CPU(101)は、RASモジュール(130)の第2の初期化手順(133)のプログラムのメモリ上のアドレスを呼び出すことにより実現する。
[実施の形態1:動作の概要説明(RASモジュールの「第2の初期化手順」の動作)]
 最後に、前述のRASモジュール(130)の「第2の初期化手順」(S205)の詳細フローチャートを図5に示す。
 ここでは、CPU(101)は、OS(110)の割込み判定部(112)のプログラムコードを、RASモジュール(130)にコピーする(S501)。
 RASモジュール(130)にコピーされた割込み判定部(112)は、割込み判定部(134)となる。
 その後、CPU(101)は、割込み発生時にRASモジュール(130)の割込み判定部(134)を呼び出すように割込み検知機構(102)を設定する処理を実施する(S502)。
[実施の形態1:動作の概要説明(RASモジュールを追加する方法)]
 以上では、既にRASモジュール(130)が追加された構成での、起動時の初期化動作を説明したが、以下では、RASモジュール(130)を計算機装置(100)に追加する方法を説明する。
 RASモジュール(130)を追加する前の計算機装置(100)の構成例を図16に示す。
 RASモジュール(130)を追加する前の計算機装置(100)は、OS(一つでも複数のOSが存在する構成でもよい)が独立したモジュールで構成されている。
 RASモジュール(130)が追加される前は、計算機装置(100)は、図16のようにRASモジュール(130)がない状態で、通常動作を行っている。
 図16の計算機装置(100)の起動時は、まず計算機装置(100)上のブートプログラム(140)が立ち上がり、ブートプログラム(140)からOS(110)の初期化手順(111)が呼び出される。
 この図16の計算機装置(100)に対し、本実施の形態のRASモジュール(130)を追加する場合、まず、追加するRASモジュール(130)のプログラムを、計算機装置(100)の二次記憶装置(104)上の空き領域に配置する。
 また、計算機装置(100)のブートプログラム(140)を、計算機装置(100)の起動時にRASモジュール(130)の第1の初期化手順(132)を呼び出すよう変更する。
 具体的には、RASモジュール(130)の第1の初期化手順(132)のプログラムのメモリ(103)上のアドレスを、ブートプログラム(140)から呼び出すよう変更する。
 以上がRASモジュール(130)を計算機装置(100)に追加する方法の概要である。
 以上のようにRASモジュール(130)を計算機装置(100)に追加した後(図1の状態)に、計算機装置(100)を起動した場合、前述した図2のフローチャートのような動作が行われる。
 以上のような構成、動作により、OS(一つでも複数のOSが存在する構成でもよい)が独立したモジュールで構成されている計算機装置に、OSのモジュールへの修正なしに、OSが所有する割込み判定部に対応したRAS機能を、容易に追加することが可能である。
[実施の形態1:動作の概要説明(割込み発生時の動作概要)]
 次に、割込みが発生した場合の実施の形態1に係る計算機装置(100)動作の概要を説明する。
 図6は、OS(110)の動作時に割込みが発生した場合の処理の流れを示す。
 ここで、OSは複数存在していてもよい。
 なお、図6では、説明に直接関係のないメモリ(103)、二次記憶装置(104)、ブートプログラム(140)の図示は省略している。
 また、図6の実線の矢印は処理の流れを示しており、破線の矢印は処理の内容を示している。
 割込みが発生した場合に、CPU(101)の割込み検知機構(102)が、RASモジュール(130)を呼び出す。
 RASモジュール(130)は、発生した割込みがCPU例外であるかどうかを判定する。
 そして、発生した割込みがCPU例外であれば、RASモジュール(130)は、どのOSが動作していたかを、計算機装置(100)のプログラムカウンタ(CPUの実行アドレスを保持しているレジスタ)により判定(どのOSが動作中だったかを、プログラムカウンタが保持する実行中のコードの場所より判定)し、該当するOSを特定し、特定したOSから故障情報を収集する。
 この動作により、OSが複数の構成の場合、CPU例外発生時に、どのOSが動作していたかを判定することが可能となり、該当のOSから障害情報を収集することができる。
[実施の形態1:動作の概要説明(割込み発生時のフローチャート)]
 割込み発生時のフローチャートを図7に示す。
 最初に、割込み検知機構(102)が割込みを検知する(S701)。
 次に、割込み検知機構(102)は、RASモジュール(130)の割込み判定部(134)を呼び出す(S702)。
 割込み判定部(134)は、割込み検知機構(102)が検知した割込みがCPU例外か標準割込みかの判定を行う(S703)。
 割込み検知機構(102)が検知した割込みが標準割込みである場合(S703でNO)は、処理が図15のS1001へ移る。
 図15のフローチャートの詳細は、実施の形態3において説明する。
 一方、割込み検知機構(102)が検知した割込みがCPU例外である場合(S703でYES)は、RASモジュール(130)の故障検知部(136)がCPU例外の原因の故障を特定する(S705)。
 次に、RASモジュール(130)の故障情報収集部(137)が、CPU例外発生時に動作していたOS(110)を特定し、該当するOS(110)から故障情報を収集する(S706-1)。
 なお、RASモジュール(130)の故障情報収集部(137)は、前述の通り計算機装置(100)のプログラムカウンタにより、CPU例外発生時に動作していたOS(110)を特定する。
 次に、RASモジュール(130)の故障同定部(138)が、S705で特定された故障に対応する故障対処方法を同定する(S707)。
 最後に、RASモジュール(130)の故障対処部(139)が、S707で同定された故障対処方法に従って、故障に対処する処理を行う(S708)。
 以上、実施の形態1によれば、CPU例外発生時にRASモジュール(130)内の割込み判定部(134)、故障検知部(136)等が実行されることにより、CPU例外とOSの障害の発生が重なった場合でも、RAS機能を実行することができる。
 以上、本実施の形態では、OS(一つでも複数のOSが存在する構成でもよい)が独立したモジュールで構成されている計算機装置に、OSのモジュールへの修正なしに、OSが所有する割込み判定部に対応したRAS機能を追加することを可能とするRAS方式を説明した。
 より具体的には、本実施の形態では主に以下の(1)~(4)を説明した。
 (1)計算機装置の起動時に呼び出されるRASモジュールの「初期化手順」は、OSの「初期化手順」よりも前に実行される「第1の初期化手順」と、OSの「初期化手順」が完了した後に実行される「第2の初期化手順」の2つに分かれる。
 (2)RASモジュールの「第1の初期化手順」では、OSの「初期化手順」の最後の部分が、OSの「初期化手順」の後にRASモジュールの「第2の初期化手順」を呼び出すように書換えられる。
 (3)RASモジュールの「第2の初期化手順」では、OSの「割込み判定部」がRASモジュールにコピーされる。
 (4)RASモジュールの「第2の初期化手順」では、割込み発生時にOSの「割込み判定部」ではなくRASモジュールの「割込み判定部」を呼び出すように、「割込み検知機構」が設定される。
 また、本実施の形態では、CPU例外発生時にRASモジュール内の割込み判定部、故障検知部等が実行されることにより、CPU例外とOSの障害の発生が重なった場合でも、RAS機能が実行されるRAS方式を説明した。
 また、本実施の形態では、RASモジュール内の故障情報収集部が実行されることにより、CPU例外発生時に、どのOSが動作していたかを、CPU例外発生時のプログラムカウンタから判定し、該当のOSから障害情報を収集することが可能なRAS方式を説明した。
 実施の形態2.
[実施の形態2:構成の説明]
 図8は、実施の形態2に係る計算機装置(100)の構成例を示すブロック図である。
 実施の形態1の構成(図1)との違いは、Hypervisor(120)およびHypervisor(120)の初期化手順(121)が存在することのみであり、他は実施の形態1の構成(図1)と同じある。
 本実施の形態でも、OS(110)は1つでも複数存在する構成でもよい。
 CPU(101)も、1つでも複数存在する構成(マルチコア、マルチCPU、マルチプロセッサなど)でもよい。
[実施の形態2:動作の概要説明(初期化時の全体的な動作の概要)]
 実施の形態2における動作の説明として、まず、初期化時の全体的な動作の概要について説明する。
 実施の形態2における計算機装置(100)を起動する際の、RASモジュール(130)、OS(110)、Hypervisor(120)のモジュールの初期化処理の全体的なフローを図9に示す。
 ここで、実施の形態1の初期化時の動作(図2)との違いは、S202とS204の処理の間に、Hypervisorの「初期化手順」(S203)が追加されている部分であり、他は実施の形態1のフロー(図2)と同じである。
 このため、ここではS203の処理とその前後の処理を主に説明する。
 まず、図9のRASモジュールの「第1の初期化手順」(S202)までは、実施の形態1と同じである。
 次に、Hypervisor(120)の初期化手順(121)が呼び出されて実行される(S203)。
 S203では、CPU(101)は、主にHypervisor(120)が使用する資源の初期化などを実施する。
 次に、図9のOSの「初期化手順」(S204)以降は、実施の形態1と同じである。
 また、S205の詳細は、実施の形態1の図5に示すとおりである。
 また、OSが複数存在する構成の場合には、図9のフローチャートのOSの「初期化手順」(S204)で、それぞれのOS(110)の初期化手順(111)が順番に実行される。
[実施の形態2:動作の概要説明(RASモジュールの「第1の初期化手順」の動作)]
 次に、実施の形態2における初期化時の動作の詳細について説明する。
 前述のRASモジュールの「第1の初期化手順」(S202)の詳細フローを図10に示す。
 ここで、実施の形態1のRASモジュールの「第1の初期化手順」(図3)との違いは、最後にOSの「初期化手順」(図3のS303)を呼び出すのではなく、Hypervisorの「初期化手順」を呼び出す(図10のS304)部分のみであるため、この部分のみ説明する。
 S304では、CPU(101)は、Hypervisor(120)の初期化手順(121)を呼び出す。
 具体的には、CPU(101)は、Hypervisor(120)の初期化手順(121)のプログラムのメモリ(103)上のアドレスを呼び出すことにより実現する。
[実施の形態2:動作の概要説明(RASモジュールを追加する方法)]
 以上では、既にRASモジュール(130)が追加された構成での、起動時の初期化動作を説明したが、以下では、RASモジュール(130)を計算機装置(100)に追加する方法を説明する。
 RASモジュール(130)を追加する前の計算機装置(100)の構成例を図17に示す。
 RASモジュール(130)を追加する前の計算機装置(100)は、OS(一つでも複数のOSが存在する構成でもよい)と、Hypervisorが独立したモジュールで構成されている。
 RASモジュール(130)が追加される前は、計算機装置(100)は、図17のようにRASモジュール(130)がない状態で、通常動作を行っている。
 図17の計算機装置(100)の起動時は、まず計算機装置(100)上のブートプログラム(140)が立ち上がり、ブートプログラム(140)からHypervisor(120)の初期化手順(121)が呼び出され、Hypervisor(120)の初期化手順(121)からOS(110)の初期化手順(111)が呼び出される。
 この図17の計算機装置(100)に対し、本実施の形態のRASモジュール(130)を追加する場合、まず、追加するRASモジュール(130)のプログラムを、計算機装置(100)の二次記憶装置(104)上の空き領域に配置する。
 また、計算機装置(100)のブートプログラム(140)を、計算機装置(100)の起動時にRASモジュール(130)の第1の初期化手順(132)を呼び出すよう変更する。
 具体的には、RASモジュール(130)の第1の初期化手順(132)のプログラムのメモリ(103)上のアドレスを、ブートプログラム(140)から呼び出すよう変更する。
 以上がRASモジュール(130)を計算機装置(100)に追加する方法の概要である。
 以上のようにRASモジュール(130)を計算機装置(100)に追加した後(図8の状態)に、計算機装置(100)を起動した場合、前述した図9のフローチャートのような動作が行われる。
 以上のような構成、動作により、OS(一つでも複数のOSが存在する構成でもよい)と、Hypervisorが独立したモジュールで構成されている計算機装置に、OSやHypervisorのモジュールへの修正なしに、OSが所有する割込み判定部に対応したRAS機能を、容易に追加することが可能である。
[実施の形態2:動作の概要説明(割込み発生時の動作概要)]
 次に、割込みが発生した場合の実施の形態2に係る計算機装置(100)動作の概要を説明する。
 図11は、OS(110)の動作時に割込みが発生した場合の処理の流れを示す。
 ここで、OSは複数存在していてもよい。
 図12は、Hypervisor(120)の動作時に割込みが発生した場合の処理の流れを示す。
 図11と図12の違いはRASモジュール(130)の故障情報収集部(137)が、OSの故障情報を収集するか、Hypervisorの故障情報を収集するかの違いのみである。
 また、図11及び図12では、説明に直接関係のないメモリ(103)、二次記憶装置(104)、ブートプログラム(140)の図示は省略している。
 また、図11及び図12の実線の矢印は処理の流れを示しており、破線の矢印は処理の内容を示している。
 割込みが発生した場合に、CPU(101)の割込み検知機構(102)が、RASモジュール(130)を呼び出す。
 RASモジュール(130)は、発生した割込みがCPU例外であるかどうかを判定する。
 そして、発生した割込みがCPU例外であれば、RASモジュール(130)は、CPU例外が発生した時にどのOSまたはHypervisorが動作していたかを、計算機装置(100)のプログラムカウンタ(CPUの実行アドレスを保持しているレジスタ)により判定(どのOSまたはHypervisorが動作中だったかを、プログラムカウンタが保持する実行中のコードの場所より判定)し、該当するOSまたはHypervisorを特定し、特定したOSまたはHypervisorから故障情報を収集する。
 この動作により、CPU例外発生時に、どのOS(OSは複数の構成でもよい)、またはHypervisorが動作していたかを判定することが可能となり、該当のOS、またはHypervisorから障害情報を収集することができる。
[実施の形態2:動作の概要説明(割込み発生時のフローチャート)]
 割込み発生時のフローチャートを図13に示す。
 このフローチャートと実施の形態1の図7のフローチャートとの違いは、S706-1の処理がS706-2の処理となっていることのみである。
 このため、以下では、S706-2の処理のみを説明する。
 RASモジュール(130)の故障検知部(136)で該当の故障を特定(S705)した後、RASモジュール(130)の故障情報収集部(137)が、CPU例外発生時に動作していたOS(またはHypervisor)を特定し、該当するOS(またはHypervisor)から故障情報を収集する(S706-2)。
 なお、RASモジュール(130)の故障情報収集部(137)は、前述の通り計算機装置(100)のプログラムカウンタにより、CPU例外発生時に動作していたOS(またはHypervisor)を特定する。
 以降の処理(S707以降)は、実施の形態1の図7と同じである。
 以上、実施の形態2によれば、CPU例外発生時にRASモジュール(130)内の割込み判定部(134)、故障検知部(136)等が実行されることにより、CPU例外とOSの障害の発生が重なった場合でも、RAS機能を実行することができる。
 また、CPU例外発生時にRASモジュール(130)内の割込み判定部(134)、故障検知部(136)等が実行されることにより、CPU例外とHypervisorの障害の発生が重なった場合でも、RAS機能を実行することができる。
 以上、本実施の形態では、OS(一つでも複数のOSが存在する構成でも良い)と、Hypervisorが独立したモジュールで構成されている計算機装置に、OSやHypervisorのモジュールへの修正なしに、OSが所有する割込み判定部に対応したRAS機能を追加することを可能とするRAS方式を説明した。
 より具体的には、本実施の形態では以下の(1)~(4)を説明した。
 (1)計算機装置の起動時に呼び出されるRASモジュールの「初期化手順」は、OSやHypervisorの「初期化手順」よりも前に実行される「第1の初期化手順」と、OSやHypervisorの「初期化手順」が完了した後に実行される「第2の初期化手順」の2つに分かれる。
 (2)RASモジュールの「第1の初期化手順」では、OSの「初期化手順」の最後の部分が、OSの「初期化手順」の後にRASモジュールの「第2の初期化手順」を呼び出すように書換えられる。
 (3)RASモジュールの「第2の初期化手順」では、OSの「割込み判定部」がRASモジュールにコピーされる。
 (4)RASモジュールの「第2の初期化手順」では、割込み発生時にOSの「割込み判定部」ではなくRASモジュールの「割込み判定部」を呼び出すように、「割込み検知機構」が設定される。
 また、本実施の形態では、CPU例外発生時にRASモジュール内の割込み判定部、故障検知部等が実行されることにより、CPU例外発生とHypervisorの障害の発生が重なった場合でも、RAS機能が実行されるRAS方式を説明した。
 また、本実施の形態では、RASモジュール内の故障情報収集部が実行されることにより、CPU例外発生時に、どのOS(OSは複数の構成でもよい)、またはHypervisorが動作していたかを、CPU例外発生時のプログラムカウンタから判定し、該当のOS、またはHypervisorから障害情報を収集することが可能なRAS方式を説明した。
 実施の形態3.
 本実施の形態では、割込み検知機構(102)で検知した割込みが、CPU例外ではなく標準割込みであった場合の動作の概要を説明する。
 計算機装置(100)の構成は、実施の形態1の構成例(図1)でも、実施の形態2の構成図(図8)でもよい。
 ここでは実施の形態2の構成(Hypervisorがある構成)にて説明するが、実施の形態1の構成(Hypervisorがない構成)でも以下の動作が行われる。
[実施の形態3:動作の概要説明(割込み発生時の動作)]
 図14に割込みが発生した場合の処理の流れを示す。
 図14では、説明に直接関係のないメモリ(103)、二次記憶装置(104)、ブートプログラム(140)の図示は省略している。
 また、図14の実線の矢印は処理の流れを示しており、破線の矢印は処理の内容を示している。
 図14において、Hypervisor(120)は割込みをマスクする処理をしており、割込みを受付けないものとする。
 このため、Hypervisor(120)の処理中に割込みが発生した場合には、Hypervisor(120)からOS(110)側に処理が移ったタイミングで、割込み検知機構(102)がRASモジュール(130)の割込み判定部(134)を呼び出す。
 従って、Hypervisor(120)からOS(110)側に処理が戻った時が割込み発生のタイミングとなり、割込み発生時のプログラムカウンタはOSの処理実行中となる(プログラムカウンタがHypervisorの処理中を指すことはない)。
 実施の形態1(Hypervisorがない構成)では、Hypervisor(120)自体がないため、このようなHypervisor(120)の割込みのマスク処理は存在しない。
[実施の形態3:動作の概要説明(割込み発生時の動作)]
 図15は、図7又は図13のS703でNOと判定された後の動作を示す。
 つまり、図7又は図13のS703で割込み判定部(134)により割込みがCPU例外ではなく標準割込みと判定された場合に、図15のS1001が行われる。
 図15において、まず、RASモジュール(130)のOS特定部(135)が、標準割込み発生時に動作していたOS(110)を特定する(S1001)。
 OS特定部(135)は、実施の形態1及び実施の形態2で説明した故障情報収集部(137)と同様に、計算機装置(100)のプログラムカウンタにより、標準割込み発生時に動作していたOS(110)を特定する。
 次に、OS特定部(135)は、該当するOS(110)の割込み判定部(112)を参照して、該当するOS(110)の割込み処理部(115)のプログラムのアドレスを特定して呼び出す(S1002)。
 次に、OS(110)の割込み処理部(115)が実行され、以降、OS(110)側に処理が戻る(S1003)。
 実施の形態1または実施の形態2により追加されたRAS機能において、実施の形態3で説明した動作を実施することにより、割込み検知機構で検知した割込みがCPU例外ではなく標準割込みであった場合に、正しくOS側の割込み処理部を呼び出すことができる。
 例えば、OS側で初期化時から割込み発生時までの間にユーザ操作などによって、割込み動作の登録が動的に追加・変更されていた場合でも、実施の形態3で説明した動作により、OSに適正に割込みを処理させることができる。
 以上、本実施の形態では、CPU例外ではなく標準割込みが発生した場合に、OS側の割込み判定部を参照し、対応するOSの割込み処理部を呼び出すことにより、正しくOS側の割込み処理部を呼び出すことができるRAS方式を説明した。
 以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
 あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
 あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
 なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
 100 計算機装置、101 CPU、102 割込み検知機構、103 メモリ、104 二次記憶装置、110 OS、111 初期化手順、112 割込み判定部、113 CPU例外処理部、115 割込み処理部、120 Hypervisor、121 初期化手順、130 RASモジュール、132 第1の初期化手順、133 第2の初期化手順、134 割込み判定部、135 OS特定部、136 故障検知部、137 故障情報収集部、138 故障同定部、139 故障対処部、140 ブートプログラム。

Claims (9)

  1.  割込みを検知する割込み検知機構が含まれるCPU(Central Processing Unit)と、
     前記割込み検知機構が割り込みを検知した際に前記割込み検知機構により呼び出され、前記割込み検知機構が検知した割り込みがCPU例外であるか否かが判定される割込み判定部が含まれるOS(Operating System)とを備える計算機装置であって、
     前記計算機装置に、CPU例外に対する処理を行うプログラムであるRAS(Reliability Availability Serviceability)モジュールが追加された場合に、
     前記CPUが、
     前記計算機装置の起動時に、前記RASモジュールに含まれる第1の初期化手順を呼び出し、前記第1の初期化手順を実行して、前記RASモジュールが用いる資源を初期化し、
     前記RASモジュールの前記第1の初期化手順の実行後に、前記OSに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記OSが用いる資源を初期化し、
     前記OSの前記初期化手順の実行後に、前記RASモジュールに含まれる第2の初期化手順を呼び出し、前記第2の初期化手順を実行して、前記OSに含まれる前記割込み判定部を前記RASモジュールにコピーし、前記割込み検知機構が割込みを検知した際に前記OSの割込み判定部ではなく前記RASモジュールにコピーされた割込み判定部を呼び出すように前記割込み検知機構を設定することを特徴とする計算機装置。
  2.  前記計算機装置は、更に、
     前記OSのプログラムコード及び前記RASモジュールのプログラムコードが格納されるメモリを備え、
     前記OSの前記初期化手順に対応するプログラムコードの最後に、前記初期化手順の呼び出し元のプログラムコードへのジャンプ命令が記述されており、
     前記CPUは、
     前記RASモジュールの前記第1の初期化手順を実行して、前記メモリに格納されている、前記OSの前記初期化手順に対応するプログラムコードの最後の記述を前記RASモジュールの前記第2の初期化手順のプログラムコードへのジャンプ命令に変更することを特徴とする請求項1に記載の計算機装置。
  3.  前記CPUは、
     前記RASモジュールの前記第1の初期化手順を実行して、前記メモリに格納されている、前記RASモジュールの前記第2の初期化手順に対応するプログラムコードの最後の記述を前記OSの前記初期化手順の呼び出し元のプログラムコードへのジャンプ命令に変更することを特徴とする請求項2に記載の計算機装置。
  4.  前記RASモジュールには、CPU例外に対する処理を行うCPU例外処理部が含まれ、
     前記割込み検知機構が割込みを検知した場合に、前記割込み検知機構により、前記RASモジュールにコピーされた割込み判定部が呼び出され、
     前記RASモジュールにコピーされた割込み判定部により、前記割込み検知機構により検知された割込みがCPU例外であると判定された場合に、前記CPU例外処理部によりCPU例外に対する処理が行われることを特徴とする請求項1~3のいずれかに記載の計算機装置。
  5.  前記割込み検知機構が割込みを検知した場合に、前記割込み検知機構により、前記RASモジュールにコピーされた割込み判定部が呼び出され、
     前記RASモジュールにコピーされた割込み判定部により、前記割込み検知機構により検知された割込みがCPU例外であると判定された場合に、前記CPU例外処理部によりCPU例外の発生時に動作していたOSが特定され、前記CPU例外処理部により、特定されたOSから情報が収集されてCPU例外に対する処理が行われることを特徴とする請求項4に記載の計算機装置。
  6.  前記RASモジュールには、CPU例外以外の割込みの発生時に動作していたOSを特定するOS特定部が含まれ、
     前記割込み検知機構が割込みを検知した場合に、前記割込み検知機構により、前記RASモジュールにコピーされた割込み判定部が呼び出され、
     前記RASモジュールにコピーされた割込み判定部により、前記割込み検知機構により検知された割込みがCPU例外以外であると判定された場合に、前記OS特定部により割込みの発生時に動作していたOSが特定され、特定されたOSにより割込みに対する処理が行われることを特徴とする請求項1~5のいずれかに記載の計算機装置。
  7.  前記計算機装置は、更に、
     ハイパーバイザーを備え、
     前記CPUは、
     前記RASモジュールの前記第1の初期化手順の実行後に、前記ハイパーバイザーに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記ハイパーバイザーが用いる資源を初期化し、
     前記ハイパーバイザーの前記初期化手順の実行後に、前記OSに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記OSが用いる資源を初期化し、
     前記OSの前記初期化手順の実行後に、前記RASモジュールに含まれる第2の初期化手順を呼び出し、前記第2の初期化手順を実行することを特徴とする請求項1~6のいずれかに記載の計算機装置。
  8.  前記RASモジュールには、CPU例外に対する処理を行うCPU例外処理部が含まれ、
     前記割込み検知機構が割込みを検知した場合に、前記割込み検知機構により、前記RASモジュールにコピーされた割込み判定部が呼び出され、
     前記RASモジュールにコピーされた割込み判定部により、前記割込み検知機構により検知された割込みがCPU例外であると判定された場合に、前記CPU例外処理部によりCPU例外の発生時に動作していたハイパーバイザーが特定され、前記CPU例外処理部により、特定されたハイパーバイザーから情報が収集されてCPU例外に対する処理が行われることを特徴とする請求項7に記載の計算機装置。
  9.  割込みを検知する割込み検知機構が含まれるCPU(Central Processing Unit)と、
     前記割込み検知機構が割り込みを検知した際に前記割込み検知機構により呼び出され、前記割込み検知機構が検知した割り込みがCPU例外であるか否かが判定される割込み判定部が含まれるOS(Operating System)とを備える計算機装置に、
     CPU例外に対する処理を行うプログラムであるRAS(Reliability Availability Serviceability)モジュールが追加された場合に、
     前記CPUが、
     前記計算機装置の起動時に、前記RASモジュールに含まれる第1の初期化手順を呼び出し、前記第1の初期化手順を実行して、前記RASモジュールが用いる資源を初期化し、
     前記RASモジュールの前記第1の初期化手順の実行後に、前記OSに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記OSが用いる資源を初期化し、
     前記OSの前記初期化手順の実行後に、前記RASモジュールに含まれる第2の初期化手順を呼び出し、前記第2の初期化手順を実行して、前記OSに含まれる前記割込み判定部を前記RASモジュールにコピーし、前記割込み検知機構が割込みを検知した際に前記OSの割込み判定部ではなく前記RASモジュールにコピーされた割込み判定部を呼び出すように前記割込み検知機構を設定することを特徴とする計算機装置の制御方法。
PCT/JP2013/052205 2013-01-31 2013-01-31 計算機装置及び計算機装置の制御方法 WO2014118940A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US14/650,630 US9959225B2 (en) 2013-01-31 2013-01-31 Computer apparatus and control method of computer apparatus
EP13873790.3A EP2953028A4 (en) 2013-01-31 2013-01-31 COMPUTER DEVICE AND METHOD FOR CONTROLLING THE COMPUTER DEVICE
JP2014559432A JP5877533B2 (ja) 2013-01-31 2013-01-31 計算機装置及び計算機装置の制御方法
CN201380071709.4A CN104956337B (zh) 2013-01-31 2013-01-31 计算机装置和计算机装置的控制方法
PCT/JP2013/052205 WO2014118940A1 (ja) 2013-01-31 2013-01-31 計算機装置及び計算機装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/052205 WO2014118940A1 (ja) 2013-01-31 2013-01-31 計算機装置及び計算機装置の制御方法

Publications (1)

Publication Number Publication Date
WO2014118940A1 true WO2014118940A1 (ja) 2014-08-07

Family

ID=51261685

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/052205 WO2014118940A1 (ja) 2013-01-31 2013-01-31 計算機装置及び計算機装置の制御方法

Country Status (5)

Country Link
US (1) US9959225B2 (ja)
EP (1) EP2953028A4 (ja)
JP (1) JP5877533B2 (ja)
CN (1) CN104956337B (ja)
WO (1) WO2014118940A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101887974B1 (ko) * 2016-12-01 2018-08-13 현대오트론 주식회사 엔진제어기의 안전부팅을 위한 시스템 및 방법
KR20220154879A (ko) * 2021-05-14 2022-11-22 현대자동차주식회사 차량 제어 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6453238A (en) 1987-08-24 1989-03-01 Nec Corp Processing system at fault generation of main body system in virtual computer system
JPH0816420A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd 小型情報処理装置のエラー処理方法
JP2004013240A (ja) * 2002-06-04 2004-01-15 Hitachi Ltd 計算機システム
JP2006155272A (ja) 2004-11-30 2006-06-15 Hitachi Ltd 仮想計算機の制御方法及びプログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0193830A (ja) 1987-10-05 1989-04-12 Nec Corp 仮想計算機システムにおける割り込み制御方式
US5369770A (en) * 1992-11-02 1994-11-29 Microsoft Corporation Standardized protected-mode interrupt manager
US5790846A (en) 1996-04-18 1998-08-04 International Business Machines Corporation Interrupt vectoring for instruction address breakpoint facility in computer systems
US5941972A (en) * 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
JP2004287618A (ja) 2003-03-19 2004-10-14 Ntt Data Corp オペレーティングシステム起動制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム起動制御装置
US20050283599A1 (en) * 2004-06-22 2005-12-22 Zimmerman Toby S Exposing BIOS information to an ACPI aware operating system
US7587639B2 (en) * 2004-11-09 2009-09-08 Intel Corporation System and method for error injection using a flexible program interface field
US7941810B2 (en) * 2006-12-28 2011-05-10 Intel Corporation Extensible and flexible firmware architecture for reliability, availability, serviceability features
JP2008217728A (ja) 2007-03-08 2008-09-18 Hitachi Ltd 仮想計算機システムの障害情報採取方法
US8145819B2 (en) 2007-06-04 2012-03-27 International Business Machines Corporation Method and system for stealing interrupt vectors
CN101373450B (zh) 2007-08-21 2010-09-29 联想(北京)有限公司 处理cpu异常的方法及系统
JP4678396B2 (ja) 2007-09-25 2011-04-27 日本電気株式会社 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム
US8522236B2 (en) * 2007-12-28 2013-08-27 Intel Corporation Method and system for establishing a robust virtualized environment
US8255931B2 (en) * 2008-02-11 2012-08-28 Blue Coat Systems, Inc. Method for implementing ejection-safe API interception
US8418166B2 (en) * 2011-01-11 2013-04-09 International Business Machines Corporation Transparent update of adapter firmware for self-virtualizing input/output device
WO2013077890A1 (en) * 2011-11-22 2013-05-30 Intel Corporation Collaborative processor and system performance and power management
JP5786955B2 (ja) * 2011-11-28 2015-09-30 富士通株式会社 メモリ縮退方法及び情報処理装置
KR101581608B1 (ko) * 2012-02-13 2015-12-30 미쓰비시덴키 가부시키가이샤 프로세서 시스템
US9229884B2 (en) * 2012-04-30 2016-01-05 Freescale Semiconductor, Inc. Virtualized instruction extensions for system partitioning
US9311177B2 (en) * 2013-03-07 2016-04-12 Intel Corporation Mechanism to support reliability, availability, and serviceability (RAS) flows in a peer monitor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6453238A (en) 1987-08-24 1989-03-01 Nec Corp Processing system at fault generation of main body system in virtual computer system
JPH0816420A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd 小型情報処理装置のエラー処理方法
JP2004013240A (ja) * 2002-06-04 2004-01-15 Hitachi Ltd 計算機システム
JP2006155272A (ja) 2004-11-30 2006-06-15 Hitachi Ltd 仮想計算機の制御方法及びプログラム

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
EP2953028A4 (en) 2016-10-12
EP2953028A1 (en) 2015-12-09
JPWO2014118940A1 (ja) 2017-01-26
CN104956337A (zh) 2015-09-30
JP5877533B2 (ja) 2016-03-08
CN104956337B (zh) 2018-01-09
US9959225B2 (en) 2018-05-01
US20150331816A1 (en) 2015-11-19

Similar Documents

Publication Publication Date Title
JP4222370B2 (ja) デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
TWI467490B (zh) 包括複數個處理器之系統以及操作該系統之方法
EP2867770B1 (en) Methods, systems and apparatus to capture error conditions in lightweight virtual machine managers
JP5423871B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US20050246453A1 (en) Providing direct access to hardware from a virtual environment
JP2007226413A (ja) メモリダンプ方法、メモリダンププログラム、及び、計算機システム
US9229820B2 (en) Information processing device with memory dump function, memory dump method, and recording medium
JP2009537897A (ja) 実行中のオペレーティングシステムの下でのハイパーバイザの起動
US9146818B2 (en) Memory degeneracy method and information processing device
TW200813838A (en) Method and apparatus for handling exceptions during binding to native code
US9703651B2 (en) Providing availability of an agent virtual computing instance during a storage failure
US8429322B2 (en) Hotplug removal of a device in a virtual machine system
US20140143372A1 (en) System and method of constructing a memory-based interconnect between multiple partitions
TWI470434B (zh) 在電腦系統中執行之方法,電腦系統,處理器
US9864708B2 (en) Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels
JP2011232986A (ja) 情報処理装置及びメモリダンプ採取方法
JP5877533B2 (ja) 計算機装置及び計算機装置の制御方法
US9535772B2 (en) Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels
JP5427814B2 (ja) 障害解析情報収集装置
JP2015118493A (ja) トレース装置及びトレースプログラム
US7890740B2 (en) Processor comprising a first and a second mode of operation and method of operating the same
Li et al. Enhancing security of embedded Linux on a multi-core processor
Russinovich Inside windows server 2008 kernel changes
JP6007532B2 (ja) 仮想化システム、仮想化サーバ、マイグレーション方法、マイグレーションプログラム
WO2023169289A1 (zh) 一种进程的执行状态切换方法及装置

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2014559432

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13873790

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14650630

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2013873790

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE