JP5452336B2 - Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program - Google Patents

Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program Download PDF

Info

Publication number
JP5452336B2
JP5452336B2 JP2010096825A JP2010096825A JP5452336B2 JP 5452336 B2 JP5452336 B2 JP 5452336B2 JP 2010096825 A JP2010096825 A JP 2010096825A JP 2010096825 A JP2010096825 A JP 2010096825A JP 5452336 B2 JP5452336 B2 JP 5452336B2
Authority
JP
Japan
Prior art keywords
failure
test target
simulation
program
target system
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2010096825A
Other languages
Japanese (ja)
Other versions
JP2011227700A (en
Inventor
吉章 片山
努 元濱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010096825A priority Critical patent/JP5452336B2/en
Publication of JP2011227700A publication Critical patent/JP2011227700A/en
Application granted granted Critical
Publication of JP5452336B2 publication Critical patent/JP5452336B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、例えば、周辺機器に関する障害を模擬する周辺機器障害模擬システム、周辺機器障害模擬方法および周辺機器障害模擬プログラムに関するものである。   The present invention relates to, for example, a peripheral device failure simulation system, a peripheral device failure simulation method, and a peripheral device failure simulation program that simulate a failure related to a peripheral device.

制御システムやサーバシステムのような高い可用性と信頼性が求められるコンピュータシステムのソフトウェアは、ハードウェア故障などによる異常事態が発生した際にシステムを安全に停止させたり、待機系のシステムに切り替えたりする必要がある。
このようなシステムにおいては、試験の段階において、異常発生時に上記のような障害処理機能が正常に動作することを十分に確認しておく必要がある。
ところが、ハードウェア故障を発生させるには、ハードウェアを破壊したり、不正動作が起きるように設定を変更したりする必要がある。そのため、費用がかかり、またハードウェア故障の再現性にも問題がある。
そこで、仮想計算機(VM:Virtual Machine)を用いることにより、ソフトウェアのみでハードウェア故障を模擬する方法がある。
Software for computer systems that require high availability and reliability, such as control systems and server systems, can be safely shut down or switched to a standby system when an abnormal situation occurs due to a hardware failure. There is a need.
In such a system, it is necessary to sufficiently confirm that the failure processing function as described above operates normally when an abnormality occurs at the test stage.
However, in order to cause a hardware failure, it is necessary to destroy the hardware or change the setting so that an illegal operation occurs. Therefore, it is expensive and there is a problem in the reproducibility of hardware failure.
Therefore, there is a method of simulating a hardware failure only with software by using a virtual machine (VM).

従来のVMを用いた障害模擬方法では、VMモードで特定のプログラムアドレスが実行された際に内部マシンチェック割込みを発生させ、装置の障害処理機能の正常性を確認していた(例えば、特許文献1)。   In the fault simulation method using the conventional VM, an internal machine check interrupt is generated when a specific program address is executed in the VM mode, and the normality of the fault processing function of the apparatus is confirmed (for example, Patent Documents). 1).

特開平5−324389号公報JP-A-5-324389

Intel社、「Intel64 and IA−32 Architectures Software Developer’s Manual」、2009年6月発行、Volume3B p.19−1〜25−22Intel, “Intel64 and IA-32 Architecture Software Developer's Manual”, published in June 2009, Volume 3B p. 19-1 to 25-22

従来のVMを用いた障害模擬方法では、特定のプログラムアドレスが実行された際に内部マシンチェック割込みを発生させることでしか疑似障害を起こせない。つまり、内部マシンチェック割込みを伴わない障害を模擬することができない。
例えば、ディスク装置やネットワーク機器などの周辺機器用のI/OポートやメモリマップトI/Oの操作に対して障害を模擬できない。また、障害発生時にはI/OポートやメモリマップトI/O内に存在するエラービットを参照して障害を起こした周辺機器を特定することができない。また、動作としては正常なもののリトライ等により完了割込みが遅延する障害、無用な完了割込みが起こる障害、逆に必要な完了割込みが起こらない障害を模擬できない。
In the fault simulation method using the conventional VM, a pseudo fault can be caused only by generating an internal machine check interrupt when a specific program address is executed. In other words, it is not possible to simulate a failure without an internal machine check interrupt.
For example, a failure cannot be simulated for an operation of an I / O port or a memory mapped I / O for a peripheral device such as a disk device or a network device. In addition, when a failure occurs, it is impossible to identify the peripheral device that has caused the failure by referring to an error bit existing in the I / O port or the memory mapped I / O. In addition, as a normal operation, a failure in which a completion interrupt is delayed due to a retry or the like, a failure in which an unnecessary completion interrupt occurs, or a failure in which a necessary completion interrupt does not occur cannot be simulated.

本発明は、例えば、I/OポートやメモリマップトI/Oや割込みに関する障害を模擬し、システムの障害処理機能の正常性を確認できるようにすることを目的とする。   An object of the present invention is, for example, to simulate a failure related to an I / O port, a memory-mapped I / O, or an interrupt so that the normality of a failure processing function of the system can be confirmed.

本発明の周辺機器障害模擬システムは、
周辺機器が接続される試験対象システムのプログラムを実行する試験対象実行部と、
前記周辺機器に障害が発生したときに所定の障害値記憶領域に設定される障害値を含んだ障害模擬定義情報を記憶する障害模擬定義情報記憶部と、
前記周辺機器に対応付けられた所定の機器対応記憶領域に対してアクセスが発生したときに前記試験対象システムのプログラムを中断させる障害模擬設定部と、
前記試験対象システムのプログラムが中断したときに前記障害模擬定義情報に含まれる障害値を前記障害値記憶領域に設定し、前記試験対象システムのプログラムを再開させる障害模擬実行部とを備える。
Peripheral device failure simulation system of the present invention,
A test target execution unit that executes a program of the test target system to which the peripheral device is connected;
A fault simulation definition information storage unit for storing fault simulation definition information including a fault value set in a predetermined fault value storage area when a fault occurs in the peripheral device;
A fault simulation setting unit for interrupting the program of the test target system when an access occurs to a predetermined device-corresponding storage area associated with the peripheral device;
A fault simulation execution unit that sets a fault value included in the fault simulation definition information in the fault value storage area when the program of the test target system is interrupted, and restarts the program of the test target system.

本発明によれば、例えば、I/OポートやメモリマップトI/O(機器対応記憶領域)へのアクセス時に障害を模擬することができる。これにより、システムの障害処理機能の正常性を確認できる。   According to the present invention, for example, a failure can be simulated when accessing an I / O port or a memory-mapped I / O (device-compatible storage area). Thereby, the normality of the failure processing function of the system can be confirmed.

実施の形態1におけるハードウェア障害模擬システム100の構成図。1 is a configuration diagram of a hardware failure simulation system 100 according to Embodiment 1. FIG. 実施の形態1における障害模擬定義情報121を示す図。6 is a diagram showing failure simulation definition information 121 according to Embodiment 1. FIG. 実施の形態1におけるハードウェア障害模擬方法を示すフローチャート。3 is a flowchart showing a hardware failure simulation method according to the first embodiment. 実施の形態1における障害模擬実行処理(S200)を示すフローチャート。5 is a flowchart showing fault simulation execution processing (S200) in the first embodiment.

実施の形態1.
仮想計算機によって試験対象システムの周辺機器の障害を模擬する形態について説明する。
Embodiment 1 FIG.
A mode of simulating a failure of a peripheral device of a test target system using a virtual computer will be described.

図1は、実施の形態1におけるハードウェア障害模擬システム100の構成図である。
実施の形態1におけるハードウェア障害模擬システム100の構成について、図1に基づいて以下に説明する。
FIG. 1 is a configuration diagram of a hardware failure simulation system 100 according to the first embodiment.
The configuration of the hardware failure simulation system 100 according to the first embodiment will be described below with reference to FIG.

ハードウェア障害模擬システム100(周辺機器障害模擬システムの一例)は、試験対象システム110に接続する周辺機器(例えば、ディスク装置、ネットワーク機器)の障害を模擬する計算機(コンピュータ、装置ともいう)である。   The hardware failure simulation system 100 (an example of a peripheral device failure simulation system) is a computer (also referred to as a computer or a device) that simulates a failure of a peripheral device (for example, a disk device or a network device) connected to the test target system 110. .

ハードウェア障害模擬システム100は、CPU141(Central Processing Unit)、入出力メモリ(I/Oポート、メモリマップトI/Oともいう)、メインメモリなどをハードウェア140として備える。
入出力メモリは周辺機器(入出力機器)が使用するデータを記憶したり、CPUと周辺機器間でデータのやりとりをしたりするために使用する。メインメモリは周辺機器が使用するデータやその他のデータ(例えば、プログラムやプログラムで使用するデータ)を記憶する。
以下、入出力メモリを「I/O143」といい、メインメモリを「メモリ142」という。
The hardware failure simulation system 100 includes a CPU 141 (Central Processing Unit), an input / output memory (I / O port, also referred to as memory mapped I / O), a main memory, and the like as hardware 140.
The input / output memory is used for storing data used by the peripheral device (input / output device) and for exchanging data between the CPU and the peripheral device. The main memory stores data used by peripheral devices and other data (for example, programs and data used in programs).
Hereinafter, the input / output memory is referred to as “I / O 143”, and the main memory is referred to as “memory 142”.

ハードウェア障害模擬システム100は、VMM130(Virtual Machine Monitor)と試験対象システム110とを実行する。   The hardware failure simulation system 100 executes a VMM 130 (Virtual Machine Monitor) and a test target system 110.

実施の形態において「〜部」として説明するものは「〜処理」、「〜ステップ」、「〜手順」であってもよく、また「〜回路」、「〜装置」、「〜機器」であってもよい。すなわち、「〜部」として説明するものは、ソフトウェア、ハードウェア、ファームウェアまたはこれらの組み合わせのいずれで実装されても構わない。   In the embodiment, what is described as “to part” may be “to process”, “to step”, and “to procedure”, and “to circuit”, “to apparatus”, and “to device”. May be. That is, what is described as “to part” may be implemented by software, hardware, firmware, or a combination thereof.

VMM130は、仮想マシンモニタと呼ばれるソフトウェア(プログラム)を実行する実行部である。仮想マシンモニタは、一台の計算機のリソース(CPU141、メモリ142、I/O143など)を複数台の計算機のリソースとして利用して計算機を仮想化し、仮想化した計算機を動作させる。
VMM130は、ハードウェア障害模擬システム100のリソースを利用して仮想計算機(VM)を実行し、仮想計算機で試験対象システム110を動作させる。仮想計算機で試験対象システム110を動作させることにより、試験対象システム110が動作する現実の計算機を準備しなくても、試験対象システム110の動作を検証することができる。
The VMM 130 is an execution unit that executes software (program) called a virtual machine monitor. The virtual machine monitor uses a computer resource (CPU 141, memory 142, I / O 143, etc.) as a resource of a plurality of computers, virtualizes the computer, and operates the virtualized computer.
The VMM 130 uses a resource of the hardware failure simulation system 100 to execute a virtual machine (VM), and operates the test target system 110 with the virtual machine. By operating the test target system 110 with a virtual computer, the operation of the test target system 110 can be verified without preparing an actual computer on which the test target system 110 operates.

試験対象システム110(試験対象実行部の一例)は、障害を模擬する対象のシステムである。障害を模擬することにより、実際に障害を発生させなくても、障害が発生した時の試験対象システム110の動作を検証することができる。
試験対象システム110は、OS111(オペレーティングシステム)やアプリケーションプログラム112を有する。
The test target system 110 (an example of a test target execution unit) is a target system that simulates a failure. By simulating the failure, the operation of the test target system 110 when the failure occurs can be verified without actually causing the failure.
The test target system 110 includes an OS 111 (operating system) and an application program 112.

仮想計算機では、試験対象システム110の他に障害模擬制御部120が動作する。
障害模擬制御部120は仮想計算機で動作するプログラムである。障害模擬制御部120は仮想計算機に記憶された障害模擬定義情報121をVMM130に出力する。
In the virtual machine, the fault simulation control unit 120 operates in addition to the test target system 110.
The failure simulation control unit 120 is a program that operates on a virtual computer. The failure simulation control unit 120 outputs the failure simulation definition information 121 stored in the virtual computer to the VMM 130.

障害模擬定義情報121は、模擬する障害に関する情報を含んだデータである。   The failure simulation definition information 121 is data including information on a failure to be simulated.

例えば、障害模擬定義情報121は、以下のような情報を含む。
障害模擬定義情報121は、周辺機器に障害が発生したときに所定の障害値記憶領域に設定される障害値を含む(後述する(1e)「0」ビットセット、(1f)「1」ビットセット)。例えば、障害値記憶領域はメモリ142内の特定領域、I/O143内の特定領域、CPUレジスタである。
障害模擬定義情報121は、障害を模擬する模擬回数を含む(後述する(1i)模擬回数)。
障害模擬定義情報121は、複数の周辺機器のうち特定の周辺機器を障害を模擬する対象機器として示す対象機器特定情報を含む(後述する(1h)模擬条件)。
障害模擬定義情報121は、模擬する周辺機器の割込みを識別する識別子を含む(後述する(2a)割込番号)。
障害模擬定義情報121は、周辺機器の割込みを遅延させる遅延時間を含む(後述する(3c)遅延時間)。
障害模擬定義情報121は、破棄する周辺機器の割込みを識別する識別子を含む(後述する(3a)割込み番号)。
For example, the failure simulation definition information 121 includes the following information.
The fault simulation definition information 121 includes a fault value set in a predetermined fault value storage area when a fault occurs in a peripheral device ((1e) “0” bit set, (1f) “1” bit set described later) ). For example, the fault value storage area is a specific area in the memory 142, a specific area in the I / O 143, and a CPU register.
The failure simulation definition information 121 includes the number of simulations for simulating a failure ((1i) number of simulations described later).
The failure simulation definition information 121 includes target device specifying information indicating a specific peripheral device as a target device for simulating a failure among a plurality of peripheral devices ((1h) simulation condition described later).
The failure simulation definition information 121 includes an identifier for identifying an interrupt of a peripheral device to be simulated (described later (2a) interrupt number).
The fault simulation definition information 121 includes a delay time for delaying an interrupt from a peripheral device ((3c) delay time described later).
The failure simulation definition information 121 includes an identifier for identifying an interrupt of a peripheral device to be discarded (to be described later (3a) interrupt number).

VMM130は、障害模擬機能として障害模擬設定部131、障害模擬実行部132、アドレス補正処理部133および模擬実行判定部134を備える。   The VMM 130 includes a failure simulation setting unit 131, a failure simulation execution unit 132, an address correction processing unit 133, and a simulation execution determination unit 134 as failure simulation functions.

障害模擬設定部131(障害模擬定義情報記憶部の一例)は、障害模擬定義情報121を記憶する。   The failure simulation setting unit 131 (an example of the failure simulation definition information storage unit) stores the failure simulation definition information 121.

障害模擬設定部131(障害模擬設定部の一例)は、周辺機器に対応付けられた所定の機器対応記憶領域に対してアクセスが発生したときに、試験対象システム110のプログラム(OS111、アプリケーションプログラム112)を中断させる設定を行う。例えば、機器対応記憶領域はI/O143またはメモリ142内の特定領域である。
障害模擬設定部131は、周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域(後述する割込み設定領域)に記憶されたときに、試験対象システム110のプログラムを中断させる。例えば、割込み情報記憶領域はI/O143またはメモリ142内の特定領域である。
障害模擬設定部131は、所定の割込み設定により周辺機器の割込みを発生させ、試験対象システム110のプログラムを中断させる設定を行う。
The failure simulation setting unit 131 (an example of the failure simulation setting unit), when access to a predetermined device-corresponding storage area associated with a peripheral device occurs, the program (OS 111, application program 112) of the test target system 110. ) Is set to be interrupted. For example, the device correspondence storage area is a specific area in the I / O 143 or the memory 142.
The fault simulation setting unit 131 interrupts the program of the test target system 110 when an interrupt of a peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area (interrupt setting area described later). For example, the interrupt information storage area is a specific area in the I / O 143 or the memory 142.
The failure simulation setting unit 131 performs a setting to generate a peripheral device interrupt according to a predetermined interrupt setting and interrupt the program of the test target system 110.

障害模擬実行部132(障害模擬実行部の一例)は、試験対象システム110のプログラムが中断したときに障害模擬定義情報121に含まれる障害値を障害値記憶領域に設定し、試験対象システム110のプログラムを再開させる。   The failure simulation execution unit 132 (an example of the failure simulation execution unit) sets the failure value included in the failure simulation definition information 121 in the failure value storage area when the program of the test target system 110 is interrupted, and Resume the program.

障害模擬実行部132は、障害値を障害値記憶領域に設定した回数を模擬実行回数として記憶する。
障害模擬実行部132は、模擬実行回数と模擬回数とを大小比較し、模擬実行回数が模擬回数未満である場合に障害値を障害値記憶領域に設定し、模擬実行回数が模擬回数以上である場合に障害値を障害値記憶領域に設定しない。
The failure simulation execution unit 132 stores the number of times the failure value is set in the failure value storage area as the number of simulation executions.
The fault simulation execution unit 132 compares the simulation execution count with the simulation count, sets the fault value in the fault value storage area when the simulation execution count is less than the simulation count, and the simulation execution count is equal to or greater than the simulation count. In this case, the failure value is not set in the failure value storage area.

障害模擬実行部132は、機器対応記憶領域に対して発生したアクセスに対応するアクセス機器(周辺機器)が対象機器特定情報に示される対象機器と同じ周辺機器である場合に障害値を障害値記憶領域に設定する。
障害模擬実行部132は、アクセス機器が対象機器特定情報に示される対象機器と異なる周辺機器である場合に障害値を障害値記憶領域に設定しない。
The failure simulation execution unit 132 stores a failure value as a failure value when the access device (peripheral device) corresponding to the access that has occurred in the device correspondence storage area is the same peripheral device as the target device indicated in the target device identification information. Set to area.
The failure simulation execution unit 132 does not set a failure value in the failure value storage area when the access device is a peripheral device different from the target device indicated in the target device identification information.

障害模擬実行部132は、周辺機器の割込みが発生して試験対象システム110のプログラムが中断した場合、割込み情報記憶領域に記憶された割込み情報を消去し、所定の遅延時間が経過したときに試験対象システム110のプログラムを中断させる遅延タイマを起動する。
障害模擬実行部132は、試験対象システム110のプログラムを再開させる。
障害模擬実行部132は、遅延タイマにより試験対象システム110のプログラムが中断したときに割込み情報記憶領域に記憶されていた割込み情報を割込み情報記憶領域に設定し、試験対象システム110のプログラムを再開させる。
The failure simulation execution unit 132 deletes the interrupt information stored in the interrupt information storage area when the peripheral system interrupt occurs and the program of the test target system 110 is interrupted, and the test is performed when a predetermined delay time has elapsed. A delay timer that interrupts the program of the target system 110 is started.
The failure simulation execution unit 132 restarts the program of the test target system 110.
The failure simulation execution unit 132 sets the interrupt information stored in the interrupt information storage area when the program of the test target system 110 is interrupted by the delay timer in the interrupt information storage area, and restarts the program of the test target system 110. .

障害模擬実行部132は、周辺機器の割込みが発生して試験対象システム110のプログラムが中断した場合、割込み情報記憶領域に記憶された割込み情報を消去し、試験対象システム110のプログラムを再開させる。   When the peripheral device interrupt occurs and the program of the test target system 110 is interrupted, the failure simulation execution unit 132 deletes the interrupt information stored in the interrupt information storage area and restarts the program of the test target system 110.

アドレス補正処理部133は、I/O143やメモリ142のアドレスを補正する。
例えば、アドレス補正処理部133は、物理アドレスを仮想アドレスに変換する。
The address correction processing unit 133 corrects the address of the I / O 143 and the memory 142.
For example, the address correction processing unit 133 converts a physical address into a virtual address.

模擬実行判定部134(障害模擬実行部の一例)は、障害模擬実行部132に障害を模擬させるか否かを判定する。
例えば、模擬実行判定部134は、模擬実行回数が模擬回数未満である場合に障害模擬実行部132に障害を模擬させ、模擬実行回数が模擬回数以上である場合に障害模擬実行部132に障害を模擬させない。
また、模擬実行判定部134は、試験対象システム110のプログラムが中断したときに機器対応記憶領域に対して発生したアクセスに対応する周辺機器をアクセス機器として特定する。模擬実行判定部134は、特定したアクセス機器が対象機器特定情報に示される対象機器と同じ周辺機器である場合に障害模擬実行部132に障害を模擬させ、特定したアクセス機器が対象機器特定情報に示される対象機器と異なる周辺機器である場合に障害模擬実行部132に障害を模擬させない。
The simulation execution determination unit 134 (an example of a failure simulation execution unit) determines whether or not the failure simulation execution unit 132 simulates a failure.
For example, the simulation execution determination unit 134 causes the failure simulation execution unit 132 to simulate a failure when the number of simulation executions is less than the number of simulations, and gives a failure to the failure simulation execution unit 132 when the number of simulation executions is equal to or greater than the number of simulations. Do not simulate.
In addition, the simulation execution determination unit 134 identifies a peripheral device corresponding to an access that has occurred in the device corresponding storage area when the program of the test target system 110 is interrupted as an access device. The simulation execution determination unit 134 causes the failure simulation execution unit 132 to simulate a failure when the identified access device is the same peripheral device as the target device indicated in the target device identification information, and the identified access device becomes the target device identification information. If the peripheral device is different from the indicated target device, the failure simulation execution unit 132 does not simulate the failure.

図2は、実施の形態1における障害模擬定義情報121を示す図である。
実施の形態1における障害模擬定義情報121について、図2に基づいて以下に説明する。
FIG. 2 is a diagram showing the failure simulation definition information 121 in the first embodiment.
The failure simulation definition information 121 in the first embodiment will be described below with reference to FIG.

障害模擬定義情報121は(1)アクセス障害情報、(2)割込み情報、(3)割込み障害情報を含む。   The fault simulation definition information 121 includes (1) access fault information, (2) interrupt information, and (3) interrupt fault information.

(1)アクセス障害情報は、周辺機器用のメモリ(I/O143、メモリ142)にアクセスが発生したときに模擬する障害を示す情報である。
(1)アクセス障害情報は(1a)アクセス対象、(1b)アドレス、(1c)サイズ、(1d)アドレス補正情報、(1e)「0」ビットセット、(1f)「1」ビットセット、(1g)ログ出力フラグ、(1h)模擬条件、(1i)模擬回数を含む。
(1) Access failure information is information indicating a failure to be simulated when an access occurs to a peripheral device memory (I / O 143, memory 142).
(1) Access failure information includes (1a) access target, (1b) address, (1c) size, (1d) address correction information, (1e) “0” bit set, (1f) “1” bit set, (1g ) Log output flag, (1h) simulation condition, and (1i) simulation count.

(1a)アクセス対象は、アクセスを検出する対象のメモリ(I/O143、メモリ142)の種別を示す。
(1b)アドレスは、アクセス領域のアドレスを示す。
(1c)サイズは、アクセス領域のサイズを示す。
(1d)アドレス補正情報は、(1b)アドレスを補正するための情報を示す。例えば、(1b)アドレスが物理アドレスと仮想アドレスとのいずれであるかを示す。また、(1b)アドレスがオフセット値であるか否かを示す。
(1e)「0」ビットセットは、「0」を設定する複数のビット位置を示す。
(1f)「1」ビットセットは、「1」を設定する複数のビット位置を示す。
(1g)ログ出力フラグは、模擬した障害の情報をログとして記録するか否かを示す。
(1h)模擬条件は、障害を模擬する対象の周辺機器を特定する情報を示す。
(1i)模擬回数は、障害を模擬する回数を示す。
(1a) The access target indicates the type of the memory (I / O 143, memory 142) whose access is to be detected.
(1b) The address indicates the address of the access area.
(1c) The size indicates the size of the access area.
(1d) Address correction information indicates information for (1b) address correction. For example, (1b) indicates whether the address is a physical address or a virtual address. Further, (1b) indicates whether the address is an offset value.
(1e) The “0” bit set indicates a plurality of bit positions for setting “0”.
(1f) The “1” bit set indicates a plurality of bit positions for setting “1”.
(1g) The log output flag indicates whether or not simulated fault information is recorded as a log.
(1h) The simulation condition indicates information for specifying a peripheral device to be simulated for a fault.
(1i) The number of simulations indicates the number of times to simulate a failure.

(2)割込み情報は、模擬する割込みを示す情報である。
(2)割込み情報は(2a)割込番号、(2b)ログ出力フラグを含む。
(2) The interrupt information is information indicating a simulated interrupt.
(2) The interrupt information includes (2a) an interrupt number and (2b) a log output flag.

(2a)割込番号は、割込みを模擬する対象の周辺機器に割り当てられた番号を示す。
(2b)ログ出力フラグは、模擬した割込みの情報をログとして記録するか否かを示す。
(2a) The interrupt number indicates a number assigned to a peripheral device to be simulated for an interrupt.
(2b) The log output flag indicates whether or not simulated interrupt information is recorded as a log.

(3)割込み障害情報は、模擬する割込みの障害を示す情報である。
(3)割込み障害情報は(3a)割込番号、(3b)処理内容、(3c)遅延時間、(3d)ログ出力フラグを含む。
(3) The interrupt failure information is information indicating the failure of the simulated interrupt.
(3) Interrupt failure information includes (3a) interrupt number, (3b) processing content, (3c) delay time, and (3d) log output flag.

(3a)割込番号は、障害を模擬する対象の割込みを識別する番号を示す。
(3b)処理内容は、模擬する障害(遅延、破棄)の種別を示す。
(3c)遅延時間は、割込みを遅延させる時間を示す。
(3d)ログ出力フラグは、模擬した障害の情報をログとして記録するか否かを示す。
(3a) The interrupt number indicates a number for identifying a target interrupt that simulates a failure.
(3b) The processing content indicates the type of failure (delay, discard) to be simulated.
(3c) The delay time indicates a time for delaying the interrupt.
(3d) The log output flag indicates whether or not simulated fault information is recorded as a log.

障害模擬定義情報121は模擬する障害毎に用意され、一つの障害模擬定義情報121には(1)アクセス障害情報(2)割込み情報(3)割込み障害情報のいずれか又は組み合わせが設定される。
例えば、一つの障害模擬定義情報121には(1)アクセス障害情報と(2)割込み情報とが設定され、別の障害模擬定義情報121には(3)割込み障害情報が設定される。
The failure simulation definition information 121 is prepared for each failure to be simulated, and one failure simulation definition information 121 is set with any one or a combination of (1) access failure information, (2) interrupt information, and (3) interrupt failure information.
For example, (1) access failure information and (2) interrupt information are set in one failure simulation definition information 121, and (3) interrupt failure information is set in another failure simulation definition information 121.

図3は、実施の形態1におけるハードウェア障害模擬方法を示すフローチャートである。
実施の形態1におけるハードウェア障害模擬方法について、図3に基づいて以下に説明する。
FIG. 3 is a flowchart illustrating the hardware failure simulation method according to the first embodiment.
A hardware failure simulation method according to the first embodiment will be described below with reference to FIG.

試験対象システム110、VMM130はハードウェア障害模擬システム100のメモリ142にロードされ、起動された状態である。
また、複数の障害模擬定義情報121(図2参照)がユーザにより生成され、試験対象システム110に割り当てられたメモリ142内の領域またはディスク装置(例えば、磁気ディスク装置)に予め記憶されているものとする。
The test target system 110 and the VMM 130 are loaded into the memory 142 of the hardware failure simulation system 100 and activated.
Also, a plurality of failure simulation definition information 121 (see FIG. 2) is generated by the user and stored in advance in an area in the memory 142 allocated to the test target system 110 or a disk device (for example, a magnetic disk device). And

ハードウェア障害模擬システム100のCPU141は、試験対象システム110を動作させるモードとVMM130を動作させるモードとを切り替えながら試験対象システム110およびVMM130を動作させる。
試験対象システム110の動作モードからVMM130の動作モードへ切り替わると試験対象システム110の処理は中断する。
中断した処理は試験対象システム110の動作モードに戻ったときに再開する。
The CPU 141 of the hardware failure simulation system 100 operates the test target system 110 and the VMM 130 while switching between the mode for operating the test target system 110 and the mode for operating the VMM 130.
When the operation mode of the test target system 110 is switched to the operation mode of the VMM 130, the processing of the test target system 110 is interrupted.
The interrupted process is resumed when the test target system 110 returns to the operation mode.

例えば、Intel Architecture Processor(IAプロセッサ)は、仮想化支援機能としてIntel Virtualization Technology(VT)機能を有する。このIntel VT機能を用いることによりVMM130を実装することができる。Intelは登録商標である。
Intel VT機能については非特許文献1に記載されている。
VT機能において、VMM130はVMX root operationモードで動作し、試験対象システム110はVMX non−root operationモードで動作する。
For example, the Intel Architecture Processor (IA processor) has an Intel Virtualization Technology (VT) function as a virtualization support function. The VMM 130 can be mounted by using this Intel VT function. Intel is a registered trademark.
The Intel VT function is described in Non-Patent Document 1.
In the VT function, the VMM 130 operates in the VMX root operation mode, and the test target system 110 operates in the VMX non-root operation mode.

試験対象システム110の動作モードからVMM130の動作モードに切り替わるとき(VM exitの発生時)、試験対象システム110のOS111は処理を中断する。このとき、CPU141に設定されている試験対象システム110のOS111のコンテキストはVMM130が管理するメモリ142内の領域に退避される。
そして、VMM130の動作モードから試験対象システム110の動作モードに戻るときに退避しておいたコンテキストがCPU141に設定され、試験対象システム110のOS111は中断されたときの状態から処理を再開する。
コンテキストとは、CPU141の各レジスタに設定されているデータのことである。
When the operation mode of the test target system 110 is switched to the operation mode of the VMM 130 (when VM exit occurs), the OS 111 of the test target system 110 interrupts the processing. At this time, the context of the OS 111 of the test target system 110 set in the CPU 141 is saved in an area in the memory 142 managed by the VMM 130.
Then, the context saved at the time of returning from the operation mode of the VMM 130 to the operation mode of the test target system 110 is set in the CPU 141, and the OS 111 of the test target system 110 resumes processing from the state when it was interrupted.
A context is data set in each register of the CPU 141.

S101において、ユーザは、入力装置(キーボード、マウスなど)を用いて障害模擬開始コマンドを試験対象システム110に入力する。このとき、CPU141は試験対象システム110の動作モード状態である。
試験対象システム110のOS111は障害模擬制御部120をアプリケーションプログラムの一つとして起動する。
S101の後、処理はS111に進む。
In S101, the user inputs a failure simulation start command to the test target system 110 using an input device (keyboard, mouse, etc.). At this time, the CPU 141 is in the operation mode state of the test target system 110.
The OS 111 of the test target system 110 activates the failure simulation control unit 120 as one of application programs.
After S101, the process proceeds to S111.

S111において、障害模擬制御部120は、複数の障害模擬定義情報121をVMM130の障害模擬設定部131に出力する。
例えば、障害模擬制御部120は、IAプロセッサのVMCALL命令を用いて、障害模擬定義情報121のメモリアドレスを引数にして障害模擬設定部131を呼び出す。VMCALL命令は、VMX non−root operationモードからVMX root operationモードを呼び出す命令である。障害模擬定義情報121のメモリアドレスとは、障害模擬定義情報121が記憶されたメモリ142内の領域を示すアドレスである。
S111の後、試験対象システム110の動作モードからVMM130の動作モードへ切り替わり、処理はS112に進む。
In S <b> 111, the failure simulation control unit 120 outputs a plurality of failure simulation definition information 121 to the failure simulation setting unit 131 of the VMM 130.
For example, the failure simulation control unit 120 calls the failure simulation setting unit 131 by using the memory address of the failure simulation definition information 121 as an argument, using the VMALL instruction of the IA processor. The VMMCALL instruction is an instruction for calling the VMX root operation mode from the VMX non-root operation mode. The memory address of the failure simulation definition information 121 is an address indicating an area in the memory 142 in which the failure simulation definition information 121 is stored.
After S111, the operation mode of the test target system 110 is switched to the operation mode of the VMM 130, and the process proceeds to S112.

S112において、障害模擬設定部131は障害模擬制御部120から出力された複数の障害模擬定義情報121をVMM130に割り当てられたメモリ142内の領域に記憶する。
S112の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS113に進む。
In S <b> 112, the failure simulation setting unit 131 stores a plurality of pieces of failure simulation definition information 121 output from the failure simulation control unit 120 in an area in the memory 142 assigned to the VMM 130.
After S112, the operation mode of the VMM 130 returns to the operation mode of the test target system 110, and the process proceeds to S113.

S113において、障害模擬制御部120は障害模擬開始要求をVMM130の障害模擬設定部131に出力する。
S113の後、試験対象システム110の動作モードからVMM130の動作モードへ切り替わり、処理はS121に進む。
In S <b> 113, the failure simulation control unit 120 outputs a failure simulation start request to the failure simulation setting unit 131 of the VMM 130.
After S113, the operation mode of the test target system 110 is switched to the operation mode of the VMM 130, and the process proceeds to S121.

S121において、障害模擬設定部131は障害模擬定義情報121を一つ選択し、選択した障害模擬定義情報121に設定されている模擬内容を判定する。
模擬内容が(1)アクセス障害情報である場合、処理はS124に進む。
模擬内容が(2)割込み情報である場合、処理はS122に進む。
模擬内容が(3)割込み障害情報である場合、処理はS126に進む。
In S 121, the failure simulation setting unit 131 selects one failure simulation definition information 121 and determines the simulation content set in the selected failure simulation definition information 121.
If the simulated content is (1) access failure information, the process proceeds to S124.
If the simulated content is (2) interrupt information, the process proceeds to S122.
If the simulated content is (3) interrupt failure information, the process proceeds to S126.

但し、障害模擬定義情報121に複数の模擬内容が設定されている場合、模擬内容毎に以下に説明する前処理が実行される。
例えば、障害模擬定義情報121に(1)アクセス障害情報と(2)割込み情報とが設定されている場合、(1)アクセス障害情報に対する前処理(S124、S125)を実行した後、(2)割込み情報に対する前処理(S122、S123)を実行する。
However, when a plurality of simulation contents are set in the failure simulation definition information 121, preprocessing described below is executed for each simulation content.
For example, when (1) access failure information and (2) interrupt information are set in the failure simulation definition information 121, (1) after executing preprocessing (S124, S125) for the access failure information, (2) Preprocessing for interrupt information (S122, S123) is executed.

また、前処理(S121〜S126)は障害模擬定義情報121毎に実行される。つまり、前処理(S121〜S126)は障害模擬定義情報121の数と同じ回数繰り返される。   Further, the preprocessing (S121 to S126) is executed for each failure simulation definition information 121. That is, the preprocessing (S121 to S126) is repeated the same number of times as the number of failure simulation definition information 121.

S122において、障害模擬設定部131は、障害模擬定義情報121の(2a)割込番号により特定される周辺機器の割込みを発生させるようにCPU141(例えば、CPUレジスタ)に対して割込み設定を行う。
例えば、割込み設定は、Intel VT機能のVM−entry interruption−information fieldを利用して行う。
In S122, the fault simulation setting unit 131 sets an interrupt to the CPU 141 (for example, a CPU register) so as to generate an interrupt of the peripheral device specified by the (2a) interrupt number of the fault simulation definition information 121.
For example, the interrupt setting is performed using a VM-entry interrupt-information field of the Intel VT function.

割込み設定を行うと、試験対象システム110の動作モードに切り替わったときに試験対象システム110に対して割込みが発生する。試験対象システム110に対して割込みが発生すると、試験対象システム110のOS111が割込みハンドラ(プログラム)を起動する。   When the interrupt setting is performed, an interrupt is generated for the test target system 110 when the operation mode of the test target system 110 is switched. When an interrupt occurs to the test target system 110, the OS 111 of the test target system 110 activates an interrupt handler (program).

S122の後、処理はS123に進む。   After S122, the process proceeds to S123.

S123において、障害模擬設定部131は、障害模擬定義情報121の(2b)ログ出力フラグに基づいてログの出力要否を判定する。
ログの出力が必要な場合、障害模擬設定部131は割込み設定(S122)の内容をログとして記録する。ログは、ディスク装置に生成したログファイルに直接記録してもよいし、メモリ142に蓄積した後でまとめてログファイルに記録してもよい。
ログの出力が不要な場合、障害模擬設定部131はログを出力しない。
S123の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS131に進む。
In S123, the failure simulation setting unit 131 determines whether or not to output a log based on the (2b) log output flag of the failure simulation definition information 121.
When log output is required, the failure simulation setting unit 131 records the contents of the interrupt setting (S122) as a log. The log may be recorded directly in a log file generated in the disk device, or may be recorded in a log file after being accumulated in the memory 142.
When log output is unnecessary, the failure simulation setting unit 131 does not output a log.
After S123, the operation mode of the VMM 130 returns to the operation mode of the test target system 110, and the process proceeds to S131.

S131において、S122で設定した割込み設定に従って試験対象システム110に割込みが発生する。
上記のように、割込み設定(S122)を行うことにより、障害模擬定義情報121の(2)割込み情報に指定された割込みを発生させることができる。
In S131, an interrupt is generated in the test target system 110 in accordance with the interrupt setting set in S122.
As described above, by performing the interrupt setting (S122), it is possible to generate an interrupt specified in (2) interrupt information of the failure simulation definition information 121.

S124において、アドレス補正処理部133は、障害模擬定義情報121の(1d)アドレス補正情報に基づいて(1b)アドレスを補正する。
例えば、(1d)アドレス補正情報に(1b)アドレスが物理アドレスであることを示す値が設定されている場合、アドレス補正処理部133は、(1b)アドレスを仮想アドレスに変換する。
また、(1d)アドレス補正情報に(1b)アドレスがオフセット値であることを示す値が設定されている場合、ハードウェア設定のアドレスに(1b)アドレスをオフセット値として加算し、アドレスを特定する。ハードウェア設定のアドレスは予めメモリ142に記憶されているものとする。
S124の後、処理はS125に進む。
In S124, the address correction processing unit 133 corrects the address (1b) based on the (1d) address correction information of the failure simulation definition information 121.
For example, when a value indicating that (1b) address is a physical address is set in (1d) address correction information, the address correction processing unit 133 converts (1b) the address into a virtual address.
In addition, when (1d) address correction information is set to a value indicating that (1b) the address is an offset value, (1b) the address is added as an offset value to the hardware setting address to identify the address. . It is assumed that the hardware setting address is stored in the memory 142 in advance.
After S124, the process proceeds to S125.

S125において、障害模擬設定部131は、S124で補正されたアドレスにアクセス(読み出し、書き込み)が行われる直前またはアクセスが行われた直後に障害模擬実行部132が呼び出されるように、CPU141にアクセス呼出し設定を行う。   In S125, the failure simulation setting unit 131 calls the CPU 141 so that the failure simulation execution unit 132 is called immediately before or after the access (reading or writing) is performed on the address corrected in S124. Set up.

例えば、(1a)アクセス対象にI/O143が指定されている場合には以下のようにアクセス呼出し設定を行う。
障害模擬設定部131は、I/O143の(補正後の)アドレスにアクセスが発生したときにVM exitが起動されるような設定をI/Oビットマップを利用して行う。さらに、障害模擬設定部131は、障害模擬実行部132のエントリアドレスをhost RIPに設定する。
このようなアクセス呼出し設定を行うことにより、I/O143の(補正後の)アドレスにアクセスが発生したときに、障害模擬実行部132を呼び出すことができる。
For example, (1a) When the I / O 143 is designated as the access target, the access call setting is performed as follows.
The failure simulation setting unit 131 uses the I / O bitmap to make a setting such that the VM exit is activated when an access to the (corrected) address of the I / O 143 occurs. Further, the failure simulation setting unit 131 sets the entry address of the failure simulation execution unit 132 to host RIP.
By performing such an access call setting, the failure simulation execution unit 132 can be called when an access occurs to the (corrected) address of the I / O 143.

また、(1a)アクセス対象にメモリ142が指定されている場合には以下のようにアクセス呼出し設定を行う。
障害模擬設定部131は、メモリ142の(補正後の)アドレスにアクセスが発生したときにデバッグ例外が発生するような設定をデバッグレジスタを利用して行う。さらに、障害模擬設定部131は、Intel VT機能のexceptionビットマップを利用して、デバッグ例外が発生したときに障害模擬実行部132を呼び出すような設定を行う。
このようなアクセス呼出し設定を行うことにより、メモリ142の(補正後の)アドレスにアクセスが発生したときに、障害模擬実行部132を呼び出すことができる。
(1a) When the memory 142 is designated as the access target, the access call setting is performed as follows.
The failure simulation setting unit 131 uses the debug register to make a setting such that a debug exception occurs when an access to the (corrected) address of the memory 142 occurs. Further, the failure simulation setting unit 131 uses the exception bitmap of the Intel VT function to perform setting so that the failure simulation execution unit 132 is called when a debug exception occurs.
By performing such an access call setting, the failure simulation execution unit 132 can be called when an access to the address (after correction) of the memory 142 occurs.

障害模擬設定部131は、デバッグレジスタを利用してデバッグ例外を発生させる代わりに、メモリ管理ユニット(MMU:Memory Management Unit)を利用してアクセス違反例外(メモリ保護例外ともいう)を発生させてもよい。メモリ管理ユニットを利用することにより、指定したプログラムアドレスやメモリアドレスを含むページ領域にアクセスがあったときにアクセス違反例外を発生させることができる。
例えば、障害模擬設定部131は、試験対象システム110のOS111のページテーブルを書き換えてアクセス違反例外を発生させる。また、ハードウェア障害模擬システム100はOS111のページテーブルの全部もしくは一部のコピーをVMM130のメモリ領域に持ち、障害模擬設定部131はそのコピーを書き換えてアクセス違反例外を発生させる。
障害模擬設定部131は、Intel VT機能のexceptionビットマップを利用して、アクセス違反例外が発生したときに障害模擬実行部132を呼び出すような設定を行う。
The fault simulation setting unit 131 may generate an access violation exception (also referred to as a memory protection exception) using a memory management unit (MMU) instead of generating a debug exception using a debug register. Good. By using the memory management unit, an access violation exception can be generated when a page area including a designated program address or memory address is accessed.
For example, the failure simulation setting unit 131 rewrites the page table of the OS 111 of the test target system 110 to generate an access violation exception. Further, the hardware failure simulation system 100 has a copy of all or part of the page table of the OS 111 in the memory area of the VMM 130, and the failure simulation setting unit 131 rewrites the copy to generate an access violation exception.
The failure simulation setting unit 131 makes settings so that the failure simulation execution unit 132 is called when an access violation exception occurs using the exception bitmap of the Intel VT function.

I/Oビットマップ、VM exit、host RIP、デバッグレジスタ、exceptionビットマップなどについては、非特許文献1で説明されている。   Non-patent document 1 describes I / O bitmap, VM exit, host RIP, debug register, exception bitmap, and the like.

S125の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS132に進む。   After S125, the operation mode of the VMM 130 returns to the operation mode of the test target system 110, and the process proceeds to S132.

S126において、障害模擬設定部131は、障害模擬定義情報121の(3a)割込番号で特定される周辺機器の割込みが発生したときに障害模擬実行部132が呼び出されるように、CPU141に割込み呼出し設定を行う。   In S126, the failure simulation setting unit 131 calls the CPU 141 to call the interrupt so that the failure simulation execution unit 132 is called when an interrupt of the peripheral device specified by the (3a) interrupt number of the failure simulation definition information 121 occurs. Set up.

例えば、障害模擬設定部131は、Intel VT機能のexternal−interrupt exiting(非特許文献1参照)を利用して、割込み呼出し設定を行う。
この機能を利用した場合、割込みを発生させた周辺機器が(3a)割込番号で特定される周辺機器であるか否かに関わらず、いずれかの周辺機器から割込みが発生したときには障害模擬実行部132が呼び出される。そこで、障害模擬設定部131は、呼び出されたときに、割込みを発生させた周辺機器が(3a)割込番号で特定される周辺機器であるか否かを判定する。
For example, the failure simulation setting unit 131 performs interrupt call setting using external-interrupt exiting (see Non-Patent Document 1) of the Intel VT function.
When this function is used, fault simulation is executed when an interrupt occurs from any peripheral device, regardless of whether the peripheral device that generated the interrupt is (3a) the peripheral device specified by the interrupt number. Part 132 is called. Therefore, when called, the failure simulation setting unit 131 determines whether or not the peripheral device that generated the interrupt is the peripheral device specified by (3a) the interrupt number.

S126の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS132に進む。   After S126, the process returns from the operation mode of the VMM 130 to the operation mode of the test target system 110, and the process proceeds to S132.

S132において、試験対象システム110は動作を再開する。
上記のように、アクセス呼出し設定(S125)を行うことにより、障害模擬定義情報121の(1)アクセス障害情報に指定されたアクセスが発生したときに、障害模擬実行部132を呼び出すことができる。
また、割込み呼出し設定(S126)を行うことにより、障害模擬定義情報121の(3)割込み障害情報に指定された割込みが発生したときに、障害模擬実行部132を呼び出すことができる。
In S132, the test target system 110 resumes operation.
As described above, by performing the access call setting (S125), the failure simulation execution unit 132 can be called when an access specified in (1) access failure information of the failure simulation definition information 121 occurs.
Further, by performing the interrupt call setting (S126), the fault simulation execution unit 132 can be called when an interrupt specified in (3) interrupt fault information of the fault simulation definition information 121 occurs.

(1)アクセス障害情報に指定されたアクセスまたは(3)割込み障害情報に指定された割込みが発生した場合、障害模擬実行部132が呼び出される。
障害模擬実行部132は、(1)アクセス障害情報に指定された障害または(3)割込み障害情報に指定された障害を模擬する(S200:障害模擬実行処理)。
障害模擬実行処理(S200)については後述する。
When (1) access specified in the access failure information or (3) interrupt specified in the interrupt failure information occurs, the failure simulation execution unit 132 is called.
The fault simulation execution unit 132 simulates (1) a fault specified in the access fault information or (3) a fault specified in the interrupt fault information (S200: fault simulation execution process).
The failure simulation execution process (S200) will be described later.

S141において、ユーザは、入力装置を用いて障害模擬停止コマンドを試験対象システム110に入力する。このとき、CPU141は試験対象システム110の動作モード状態である。
障害模擬制御部120は、障害模擬停止要求をVMM130の障害模擬設定部131に出力する。
S141の後、試験対象システム110の動作モードからVMM130の動作モードへ切り替わり、処理はS142に進む。
In S <b> 141, the user inputs a failure simulation stop command to the test target system 110 using the input device. At this time, the CPU 141 is in the operation mode state of the test target system 110.
The failure simulation control unit 120 outputs a failure simulation stop request to the failure simulation setting unit 131 of the VMM 130.
After S141, the operation mode of the test target system 110 is switched to the operation mode of the VMM 130, and the process proceeds to S142.

S142において、障害模擬設定部131は、CPU141の設定をクリアして割込み設定(S122)、アクセス呼出し設定(S125)および割込み呼出し設定(S126)を解除する。
S142の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS143に進む。
In S142, the failure simulation setting unit 131 clears the setting of the CPU 141 and cancels the interrupt setting (S122), the access call setting (S125), and the interrupt call setting (S126).
After S142, the operation returns from the operation mode of the VMM 130 to the operation mode of the test target system 110, and the process proceeds to S143.

S143において、試験対象システム110は動作を再開され、障害は模擬されない。   In S143, the test target system 110 resumes operation, and the failure is not simulated.

図4は、実施の形態1における障害模擬実行処理(S200)を示すフローチャートである。
実施の形態1における障害模擬実行処理(S200)について、図4に基づいて以下に説明する。
FIG. 4 is a flowchart showing fault simulation execution processing (S200) in the first embodiment.
The failure simulation execution process (S200) in the first embodiment will be described below with reference to FIG.

S201において、障害模擬定義情報121の(1)アクセス障害情報に指定されたアクセスが発生すると、図3で説明したアクセス呼出し設定(S125)によりVMM130の障害模擬実行部132が呼び出される。
また、障害模擬定義情報121の(3)割込み障害情報に指定された割込みが発生すると、図3で説明した割込み呼出し設定(S126)によりVMM130の障害模擬実行部132が呼び出される。
このとき、CPU141は試験対象システム110の動作モードからVMM130の動作モードへ切り替わる。
In S201, when an access specified in (1) access failure information of the failure simulation definition information 121 occurs, the failure simulation execution unit 132 of the VMM 130 is called by the access call setting (S125) described in FIG.
Further, when an interrupt specified in (3) interrupt failure information of the failure simulation definition information 121 occurs, the failure simulation execution unit 132 of the VMM 130 is called by the interrupt call setting (S126) described in FIG.
At this time, the CPU 141 switches from the operation mode of the test target system 110 to the operation mode of the VMM 130.

S201の後、処理はS211に進む。   After S201, the process proceeds to S211.

S211において、障害模擬実行部132は、(1)アクセス障害情報に指定されたアクセスと(3)割込み障害情報に指定された割込みとのいずれが要因であるかを判定する。
例えば、障害模擬実行部132は、Intel VT機能で使用される所定のメモリ領域を参照して呼出し要因を判定する。
In S211, the failure simulation execution unit 132 determines which of (1) the access specified in the access failure information and (3) the interrupt specified in the interrupt failure information is a factor.
For example, the failure simulation execution unit 132 refers to a predetermined memory area used in the Intel VT function and determines a call factor.

呼出し要因が(1)アクセス障害情報に指定されたアクセスである場合、処理はS221に進む。
呼出し要因が(3)割込み障害情報に指定された割込みである場合、処理は231に進む。但し、発生した割込みが(3)割込み障害情報に指定された割込みと異なる場合、以降の処理は行わず、障害模擬実行処理(S200)は終了する。
If the call factor is (1) access specified in the access failure information, the process proceeds to S221.
If the call factor is an interrupt specified in (3) interrupt failure information, the process proceeds to 231. However, if the generated interrupt is different from the interrupt specified in (3) interrupt failure information, the subsequent processing is not performed and the failure simulation execution processing (S200) ends.

S221において、障害模擬実行部132は、アクセス命令を解析してアクセス情報を取得する。
例えば、障害模擬実行部132は、どの周辺機器に割り当てられたメモリ(I/O143、メモリ142)に対するアクセスであるかを特定する。
また、障害模擬実行部132は、書き込まれる値が設定されている領域(CPUレジスタ、メモリ142)を特定する。
また、障害模擬実行部132は、書き込まれる値を特定する。
S221の後、処理はS222に進む。
In S221, the failure simulation execution unit 132 analyzes the access command and obtains access information.
For example, the failure simulation execution unit 132 specifies to which peripheral device the memory (I / O 143, memory 142) assigned is the access.
Further, the failure simulation execution unit 132 identifies an area (CPU register, memory 142) in which a value to be written is set.
Further, the failure simulation execution unit 132 specifies a value to be written.
After S221, the process proceeds to S222.

S222において、障害模擬実行部132は、模擬実行判定部134を呼び出す。
模擬実行判定部134は、障害模擬定義情報121の(1h)模擬条件と(1i)模擬回数とに基づいて、障害を模擬するか否かを判定する。
In S222, the failure simulation execution unit 132 calls the simulation execution determination unit 134.
The simulation execution determination unit 134 determines whether to simulate a failure based on (1h) simulation conditions and (1i) the number of simulations in the failure simulation definition information 121.

例えば、(1h)模擬条件として、I/O143またはメモリ142内の特定のアドレスと、特定の値とが指定されているものとする。
模擬実行判定部134は、指定されたアドレスに指定された値が設定されていれば障害を模擬すると判定し、指定されたアドレスに指定された値が設定されていなければ障害を模擬しないと判定する。
I/O143やメモリ142の第1の領域(例えば、200番地)は複数の周辺機器に共有され、第1の領域に設定されているデータに対応する周辺機器の種別は第2の領域(例えば、100番地)に設定される場合がある。この場合、障害模擬定義情報121の(1)アクセス障害情報に指定された第1の領域にアクセスが発生しても、発生したアクセスが障害を模擬したい周辺機器に対するアクセスであるとは限らない。
ユーザは、障害模擬定義情報121の(1h)模擬条件に、周辺機器の種別が設定される第2の領域のアドレス(100番地)と、障害を模擬したい周辺機器の種別とを指定するとよい。これにより、障害を模擬したい周辺機器に対するアクセスが発生した場合に障害を模擬することができる。
For example, assume that (1h) a specific address and a specific value in the I / O 143 or the memory 142 are specified as simulation conditions.
The simulation execution determination unit 134 determines that a failure is simulated if a specified value is set for a specified address, and determines that a failure is not simulated if a specified value is not set for a specified address. To do.
The first area (for example, address 200) of the I / O 143 and the memory 142 is shared by a plurality of peripheral devices, and the type of the peripheral device corresponding to the data set in the first area is the second area (for example, , 100) may be set. In this case, even if an access occurs in the first area specified in the (1) access failure information of the failure simulation definition information 121, the generated access is not necessarily an access to a peripheral device that wants to simulate the failure.
The user may specify in the (1h) simulation condition of the failure simulation definition information 121 the address (100th address) of the second area where the type of the peripheral device is set and the type of the peripheral device for which the failure is to be simulated. As a result, a failure can be simulated when an access to a peripheral device for which the failure is to be simulated occurs.

また、模擬実行判定部134は、障害を模擬した回数が(1i)模擬回数に達していなければ障害を模擬すると判定し、障害を模擬した回数が(1i)模擬回数に達していれば障害を模擬しないと判定する。
例えば、模擬実行判定部134は、後述するS224において障害を模擬する度に当該アクセス要因の模擬実行回数をカウント(インクリメント)する。そして、模擬実行判定部134は、模擬実行回数と(1i)模擬回数とを大小比較して障害を模擬するか否かを判定する。
障害発生時に設定されるエラービットが障害処理の後にクリアされる障害がある。そのような障害を模擬する場合、エラービットを毎回設定したいとは限らない。
ユーザは、障害模擬定義情報121の(1i)模擬回数を設定することにより、(1i)模擬回数だけエラービットを設定することができる。
The simulation execution determination unit 134 determines that the failure is simulated if the number of times that the failure is simulated does not reach (1i) the number of simulations, and if the number of times that the failure is simulated reaches (1i) the number of simulations, the failure is determined. Judged not to simulate.
For example, the simulation execution determination unit 134 counts (increments) the number of simulation executions of the access factor every time a failure is simulated in S224 described later. Then, the simulation execution determination unit 134 determines whether or not to simulate a failure by comparing the simulation execution count with (1i) the simulation count.
There is a failure in which an error bit set when a failure occurs is cleared after failure processing. When simulating such a failure, you do not always want to set the error bit.
By setting (1i) the number of simulations in the failure simulation definition information 121, the user can set error bits as many times as (1i) the number of simulations.

障害を模擬する場合(YES)、処理はS223に進む。
障害を模擬しない場合(NO)、処理はS225に進む。
If a failure is simulated (YES), the process proceeds to S223.
If the failure is not simulated (NO), the process proceeds to S225.

S223において、障害模擬実行部132は、S221の解析結果に基づいてアクセス命令の内容を実行する。
但し、アクセス命令が実行された後に障害模擬実行部132が呼び出される場合、障害模擬実行部132はアクセス命令の内容を実行しない。
S223の後、処理はS224に進む。
In S223, the failure simulation execution unit 132 executes the contents of the access command based on the analysis result of S221.
However, when the failure simulation execution unit 132 is called after the access command is executed, the failure simulation execution unit 132 does not execute the contents of the access command.
After S223, the process proceeds to S224.

S224において、障害模擬実行部132は、(1e)「0」ビットセットに示されるビットセットにエラービット「0」を設定し、(1f)「1」ビットセットに示されるビットセットにエラービット「1」を設定する。エラービット「0」「1」は当該周辺機器に対する特定の障害の発生を示す。   In S224, the failure simulation execution unit 132 sets (1e) the error bit “0” in the bit set indicated by the “0” bit set, and (1f) sets the error bit “0” in the bit set indicated by the “1” bit set. 1 ”is set. Error bits “0” and “1” indicate the occurrence of a specific failure for the peripheral device.

但し、ビットセットにエラービットを設定するとは、ビットセットに対応する特定の領域にエラービットを設定することである。ビットセットに対応する領域に設定されたエラービットは、試験対象システム110の動作モードに戻ったときに試験対象システム110用の所定のビットセットに設定される。例えば、ビットセットに対応する領域とは、VMM130の動作モードに切り替わるときに退避された試験対象システム110のコンテキスト内の所定部分である。
障害模擬実行部132は、ビットセットに対応する領域をS221の解析結果に基づいて特定できるものとする。
However, setting an error bit in a bit set means setting an error bit in a specific area corresponding to the bit set. The error bit set in the area corresponding to the bit set is set to a predetermined bit set for the test target system 110 when the operation mode of the test target system 110 is returned. For example, the area corresponding to the bit set is a predetermined part in the context of the test target system 110 saved when the operation mode of the VMM 130 is switched.
It is assumed that the failure simulation execution unit 132 can specify an area corresponding to the bit set based on the analysis result of S221.

S224の後、処理はS225に進む。   After S224, the process proceeds to S225.

S225において、障害模擬実行部132は、障害模擬定義情報121の(1g)ログ出力フラグに基づいてログの出力要否を判定する。
ログの出力が必要な場合、障害模擬実行部132は、模擬した障害の情報をログとして記憶する。障害模擬定義情報121の(1)アクセス障害情報、S224の障害模擬内容、S223のアクセス内容、S221の解析結果などはログとして記録される情報の一例である。
ログの出力が不要な場合、障害模擬実行部132はログを記録しない。
S225の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS226に進む。
In S225, the failure simulation execution unit 132 determines whether or not to output a log based on the (1g) log output flag of the failure simulation definition information 121.
When log output is necessary, the failure simulation execution unit 132 stores simulated failure information as a log. The (1) access failure information of the failure simulation definition information 121, the failure simulation content of S224, the access content of S223, the analysis result of S221, etc. are examples of information recorded as a log.
When the log output is unnecessary, the failure simulation execution unit 132 does not record the log.
After S225, the process returns from the operation mode of the VMM 130 to the operation mode of the test target system 110, and the process proceeds to S226.

S226において、試験対象システム110のOS111は、S224で設定されたビットセットに基づいて障害を検出し、アプリケーションプログラム112は検出された障害に応じて所定の障害処理を実行する。
ユーザは、障害処理の結果(障害メッセージ、メモリ142の設定値など)を検証することにより、試験対象システム110の障害処理機能が正しく動作するか否かを確認することができる。
In S226, the OS 111 of the test target system 110 detects a failure based on the bit set set in S224, and the application program 112 executes a predetermined failure process according to the detected failure.
The user can confirm whether or not the failure processing function of the test target system 110 operates correctly by verifying the failure processing result (failure message, setting value of the memory 142, etc.).

S231において、障害模擬実行部132は、障害模擬定義情報121の(3b)処理内容に基づいて、割込みの遅延と割込みの破棄とのいずれの障害を模擬するか判定する。
割込みの遅延を模擬する場合、処理はS232に進む。
割込みの破棄を模擬する場合、処理はS233に進む。
In step S <b> 231, the failure simulation execution unit 132 determines which failure to simulate, interrupt delay or interrupt discard, based on the (3b) processing content of the failure simulation definition information 121.
When simulating an interrupt delay, the process proceeds to S232.
When simulating discarding an interrupt, the process proceeds to S233.

S232において、障害模擬実行部132は、I/O143やメモリ142の割込み設定領域の設定値をメモリ142の別領域に退避し、割込み設定領域をクリアする。割込み設定領域とは、発生した割込みの内容を示す値が設定される所定の領域である。
障害模擬実行部132は、障害模擬定義情報121の(3c)遅延時間を設定してハードウェア140のタイマ機能を起動する。
障害模擬実行部132は、ハードウェア140のタイマ割込みが発生したときに障害模擬実行部132が呼び出されるように、CPU141に割込み呼出し設定を行う。例えば、障害模擬実行部132は、S126の障害模擬設定部131と同様に、Intel VT機能のexternal−interrupt exiting(非特許文献1参照)を利用して、割込み呼出し設定を行う。
In S232, the failure simulation execution unit 132 saves the set value of the interrupt setting area of the I / O 143 and the memory 142 to another area of the memory 142, and clears the interrupt setting area. The interrupt setting area is a predetermined area in which a value indicating the content of the interrupt that has occurred is set.
The failure simulation execution unit 132 sets the (3c) delay time of the failure simulation definition information 121 and starts the timer function of the hardware 140.
The failure simulation execution unit 132 sets an interrupt call to the CPU 141 so that the failure simulation execution unit 132 is called when a timer interrupt of the hardware 140 occurs. For example, similarly to the failure simulation setting unit 131 in S126, the failure simulation execution unit 132 performs interrupt call setting using external-interrupt exiting (see Non-Patent Document 1) of the Intel VT function.

I/O143やメモリ142の所定領域はクリアされているため、試験対象システム110の動作モードに戻ったときに試験対象システム110のOS111は割込みを検知せず、割込みハンドラは起動されない。但し、障害模擬実行部132は、(3c)遅延時間の経過時にタイマ割込みにより再び呼び出される。   Since predetermined areas of the I / O 143 and the memory 142 are cleared, the OS 111 of the test target system 110 does not detect an interrupt when the test target system 110 returns to the operation mode, and the interrupt handler is not activated. However, the failure simulation execution unit 132 is called again by a timer interrupt when the delay time (3c) has elapsed.

S232の後、処理はS234に進む。   After S232, the process proceeds to S234.

S233において、障害模擬実行部132は、I/O143やメモリ142の割込み設定領域をクリアする。
試験対象システム110の動作モードに戻ったときに試験対象システム110のOS111は割込みを検知せず、割込みハンドラは起動されない。
S233の後、処理はS234に進む。
In S233, the failure simulation execution unit 132 clears the I / O 143 and the interrupt setting area of the memory 142.
When returning to the operation mode of the test target system 110, the OS 111 of the test target system 110 does not detect the interrupt, and the interrupt handler is not activated.
After S233, the process proceeds to S234.

S234において、障害模擬実行部132は、障害模擬定義情報121の(3d)ログ出力フラグに基づいてログの出力要否を判定する。
ログの出力が必要な場合、障害模擬実行部132は、模擬した障害の情報をログとして記憶する。障害模擬定義情報121の(3)割込み障害情報はログとして記録される情報の一例である。ユーザは、障害模擬定義情報121の(3c)遅延時間に「0」秒を設定することにより、割込みを遅延させずに割込みのログを記録することもできる。
ログの出力が不要な場合、障害模擬実行部132はログを記録しない。
S234の後、VMM130の動作モードから試験対象システム110の動作モードへ戻り、処理はS235に進む。
In S234, the failure simulation execution unit 132 determines whether or not to output a log based on the (3d) log output flag of the failure simulation definition information 121.
When log output is necessary, the failure simulation execution unit 132 stores simulated failure information as a log. The (3) interrupt failure information of the failure simulation definition information 121 is an example of information recorded as a log. The user can also record an interrupt log without delaying the interrupt by setting “0” seconds to the (3c) delay time of the failure simulation definition information 121.
When the log output is unnecessary, the failure simulation execution unit 132 does not record the log.
After S234, the process returns from the operation mode of the VMM 130 to the operation mode of the test target system 110, and the process proceeds to S235.

S235において、試験対象システム110のOS111は、S232またはS233で割込み設定領域がクリアされているため割込みを検知せず、割込みハンドラを起動しない。   In S235, the OS 111 of the test target system 110 does not detect the interrupt and does not start the interrupt handler because the interrupt setting area is cleared in S232 or S233.

割込みの破棄(S233)を模擬した場合、割込みが破棄されたことにより試験対象システム110に障害が発生し、試験対象システム110のOS111やアプリケーションプログラム112は所定の障害処理を実行する。ユーザは、障害処理の結果を検証することにより、試験対象システム110の障害処理機能が正しく動作するか否かを確認することができる。   When simulating the discard of interrupt (S233), a failure occurs in the test target system 110 due to the discard of the interrupt, and the OS 111 and the application program 112 of the test target system 110 execute predetermined failure processing. The user can confirm whether or not the failure processing function of the test target system 110 operates correctly by verifying the result of the failure processing.

割込みの遅延(S232)を模擬した場合、(3c)遅延時間の経過時にタイマ割込みが発生し、VMM130の障害模擬実行部132が呼び出される。
このとき、試験対象システム110の動作モードからVMM130の動作モードへ切り替わり、処理はS236に進む。
When the interrupt delay (S232) is simulated, (3c) a timer interrupt is generated when the delay time elapses, and the failure simulation execution unit 132 of the VMM 130 is called.
At this time, the operation mode of the test target system 110 is switched to the operation mode of the VMM 130, and the process proceeds to S236.

S236において、障害模擬実行部132は、S232でI/O143やメモリ142の割込み設定領域から退避しておいた設置値を割込み設定領域に設定する。
S236の後、VMM130の動作モードから試験対象システム110の動作モードに戻り、処理はS237に進む。
In S236, the failure simulation execution unit 132 sets the installation value saved in the interrupt setting area of the I / O 143 or the memory 142 in S232 in the interrupt setting area.
After S236, the operation mode of the VMM 130 returns to the operation mode of the test target system 110, and the process proceeds to S237.

S237において、試験対象システム110のOS111は、割込み設定領域の設定値に基づいて(3c)遅延時間前に発生した割込みを検知し、検知した割込みに応じて割込みハンドラを起動する。割込みハンドラは(3c)遅延時間前に発生した割込みに対して所定の割込み処理を実行する。
ユーザは、割込み処理の結果(エラーメッセージ、メモリ142の設定値など)を検証することにより、試験対象システム110の障害処理機能が正しく動作するか否かを確認することができる。
In S237, the OS 111 of the test target system 110 detects an interrupt that occurred (3c) before the delay time based on the set value in the interrupt setting area, and activates an interrupt handler according to the detected interrupt. The interrupt handler (3c) executes predetermined interrupt processing for the interrupt that occurred before the delay time.
The user can confirm whether or not the failure processing function of the test target system 110 operates correctly by verifying the interrupt processing result (error message, setting value of the memory 142, etc.).

以上の障害模擬実行処理(S201〜S237)は、S141(図3参照)でユーザに障害模擬の停止を指定されるまで、障害模擬定義情報121の(1)アクセス障害情報に指定されたアクセスまたは(3)割込み障害情報に指定された割込みが発生する度に実行される。   The above fault simulation execution processing (S201 to S237) is performed until the user specifies stoppage of fault simulation in S141 (see FIG. 3), or the access specified in (1) access fault information of the fault simulation definition information 121 or (3) Executed whenever an interrupt specified in the interrupt failure information occurs.

障害模擬定義情報121は、障害模擬開始要求(S113)と共に障害模擬制御部120から障害模擬設定部131に出力されても、VMM130のメモリ領域に予め記憶してもよい。   The failure simulation definition information 121 may be output from the failure simulation control unit 120 to the failure simulation setting unit 131 together with the failure simulation start request (S113) or may be stored in advance in the memory area of the VMM 130.

障害模擬定義情報121に障害模擬の開始条件を付加し、障害模擬定義情報121に指定された開始条件を満たしたときに障害を模擬してもよい。
例えば、ユーザは、(a)無条件(即時)、(b)任意のI/O143、制御レジスタ、MSR(Model Specific Register)などへのアクセスの発生、(c)任意の割込みの発生、(d)任意の時間の経過を開始条件として障害模擬定義情報121に設定する。
また、ユーザは、(e)任意のプログラムアドレスの実行や任意のメモリアドレスへのアクセスの発生を開始条件として障害模擬定義情報121に設定してもよい。
障害模擬実行部132は、障害模擬定義情報121に指定された障害模擬の開始条件に基づいて障害を模擬するか否かを判定し、障害を模擬すると判定した場合に障害を模擬する(S221〜S234)。
障害模擬設定部131が開始条件を判定し、開始条件を満たしたときに割込み設定(S122)や割込み呼出し設定(S125、S126)を行ってもよい。
A failure simulation start condition may be added to the failure simulation definition information 121 and the failure may be simulated when the start condition specified in the failure simulation definition information 121 is satisfied.
For example, the user can (a) unconditionally (immediately), (b) any I / O 143, control register, access to MSR (Model Specific Register), (c) any interrupt, (d) ) The failure simulation definition information 121 is set with the passage of an arbitrary time as a start condition.
The user may set (e) execution of an arbitrary program address or occurrence of access to an arbitrary memory address in the failure simulation definition information 121 as a start condition.
The failure simulation execution unit 132 determines whether or not to simulate a failure based on the failure simulation start condition specified in the failure simulation definition information 121, and simulates a failure when it is determined to simulate the failure (S221 to S221). S234).
The failure simulation setting unit 131 may determine a start condition, and perform interrupt setting (S122) or interrupt call setting (S125, S126) when the start condition is satisfied.

障害模擬定義情報121に障害模擬の終了条件を付加し、障害模擬定義情報121に指定された終了条件を満たしたときに障害の模擬を終了してもよい。
例えば、ユーザは開始条件として説明した上記(b)〜(e)を終了条件として障害模擬定義情報121に設定する。
また、ユーザは、(f)障害模擬の実行回数、(g)障害模擬停止要求の発生を終了条件として障害模擬定義情報121に設定してもよい。
障害模擬実行部132は、障害模擬定義情報121に指定された障害模擬の終了条件に基づいて障害の模擬を終了するか否かを判定する。障害の模擬を終了する場合、障害模擬設定部131は障害模擬の設定を解除する(S142)。
The failure simulation termination condition may be added to the failure simulation definition information 121 and the failure simulation may be terminated when the termination condition specified in the failure simulation definition information 121 is satisfied.
For example, the user sets (b) to (e) described above as the start condition in the failure simulation definition information 121 as the end condition.
Further, the user may set the failure simulation definition information 121 with (f) the number of executions of failure simulation and (g) the occurrence of a failure simulation stop request as an end condition.
The failure simulation execution unit 132 determines whether or not to complete the failure simulation based on the failure simulation end condition specified in the failure simulation definition information 121. When the failure simulation is finished, the failure simulation setting unit 131 cancels the failure simulation setting (S142).

ユーザは、複数の障害模擬定義情報121それぞれにインデックス番号(識別情報の一例)を付与し、ハードウェア障害模擬システム100に特定の障害模擬定義情報121のインデックス番号を指定してもよい。ハードウェア障害模擬システム100は、ユーザに指定された障害模擬定義情報121だけを処理する。
これにより、ユーザは特定の障害だけをハードウェア障害模擬システム100に模擬させることができる。
The user may assign an index number (an example of identification information) to each of the plurality of failure simulation definition information 121 and specify the index number of the specific failure simulation definition information 121 in the hardware failure simulation system 100. The hardware failure simulation system 100 processes only the failure simulation definition information 121 specified by the user.
As a result, the user can cause the hardware failure simulation system 100 to simulate only a specific failure.

ハードウェア障害模擬システム100は、マルチCPUもしくはマルチコアCPUを用いて複数のCPU141で実行させても構わない。
この場合、一方のCPU141を用いて試験対象システム110とVMM130を実行し、他方のCPU141を用いて障害模擬制御部120を実行させる。
これにより、障害模擬制御部120の影響を試験対象システム110に与えずに、試験対象システム110の障害処理機能を試験することができる。
The hardware failure simulation system 100 may be executed by a plurality of CPUs 141 using a multi CPU or a multi-core CPU.
In this case, the test target system 110 and the VMM 130 are executed using one CPU 141, and the failure simulation control unit 120 is executed using the other CPU 141.
Thereby, the failure processing function of the test target system 110 can be tested without giving the influence of the failure simulation control unit 120 to the test target system 110.

実施の形態1において、例えば、以下のようなハードウェア障害模擬システム100およびハードウェア障害模擬方法について説明した。   In the first embodiment, for example, the following hardware failure simulation system 100 and hardware failure simulation method have been described.

ハードウェア障害模擬システム100は障害模擬定義情報121、障害模擬制御部120、障害模擬設定部131、障害模擬実行部132、アドレス補正処理部133、模擬実行判定部134を備える。
障害模擬定義情報121は、障害の模擬内容を定義した情報である。
障害模擬制御部120は、障害模擬定義情報121を障害模擬設定部131へ送信する。
障害模擬設定部131は、障害模擬定義情報121に従って、障害を模擬すべきI/O143、メモリ142へのアクセスや割込みが発生した場合に障害模擬実行部132を呼び出すように設定を行う。
障害模擬実行部132は、障害模擬定義情報121に従って障害を模擬する。
アドレス補正処理部133は、障害模擬定義情報121に記載された(1b)アドレスを補正する。
模擬実行判定部134は、障害模擬定義情報121に記載された(1i)模擬回数や(1h)模擬条件に従って、障害を模擬するか否かを判定する。
The hardware failure simulation system 100 includes failure simulation definition information 121, a failure simulation control unit 120, a failure simulation setting unit 131, a failure simulation execution unit 132, an address correction processing unit 133, and a simulation execution determination unit 134.
The fault simulation definition information 121 is information that defines fault simulation contents.
The failure simulation control unit 120 transmits failure simulation definition information 121 to the failure simulation setting unit 131.
The failure simulation setting unit 131 performs settings according to the failure simulation definition information 121 so as to call the failure simulation execution unit 132 when an access to the I / O 143 or the memory 142 that should simulate a failure or an interrupt occurs.
The failure simulation execution unit 132 simulates a failure according to the failure simulation definition information 121.
The address correction processing unit 133 corrects the address (1b) described in the failure simulation definition information 121.
The simulation execution determination unit 134 determines whether to simulate a failure according to (1i) the number of simulations and (1h) simulation conditions described in the failure simulation definition information 121.

ハードウェア障害模擬システム100は、障害模擬定義情報121に格納された模擬内容に従ってI/O143、メモリ142の障害を模擬する。これにより、ユーザは、内部マシンチェック割込みの有無にかかわらず、I/O143やメモリ142の操作に対するシステムの障害処理機能の正常性を確認することができる。   The hardware failure simulation system 100 simulates a failure in the I / O 143 and the memory 142 according to the simulation content stored in the failure simulation definition information 121. Thereby, the user can confirm the normality of the failure processing function of the system with respect to the operation of the I / O 143 and the memory 142 regardless of the presence or absence of the internal machine check interrupt.

ハードウェア障害模擬システム100は、障害発生時に各装置に関連するI/O143やメモリ142内に存在するエラービットを模擬しているので、どの装置が障害を起こしたかを特定するところまで障害を模擬できる。これにより、ユーザは、システムの障害処理機能の正常性を確認することができる。   Since the hardware failure simulation system 100 simulates the error bit existing in the I / O 143 and the memory 142 related to each device when the failure occurs, the failure simulation is performed up to the point where the device has caused the failure. it can. Thereby, the user can confirm the normality of the failure processing function of the system.

ハードウェア障害模擬システム100は、動作としては正常なもののリトライ等により装置からのI/O完了割込みが遅延する他、無用な割込みが起こる、逆に必要なI/O完了割込みが起こらないといった障害の模擬もできる。   The hardware failure simulation system 100 has a failure such that an I / O completion interrupt from the device is delayed due to a retry or the like of a normal operation, an unnecessary interrupt occurs, and a necessary I / O completion interrupt does not occur. Can also be simulated.

ユーザは、障害模擬定義情報121の模擬内容を書き換えるだけで様々な種類の障害模擬を行うことができる。   The user can perform various types of failure simulations simply by rewriting the simulation contents of the failure simulation definition information 121.

ユーザは、障害模擬開始要求を送信してから停止要求を送信するまで、同一の障害を繰り返し模擬できる。   The user can repeatedly simulate the same failure from when the failure simulation start request is transmitted until the stop request is transmitted.

ハードウェア障害模擬システム100は、実際には発生していない割込みをあたかも発生したかのように試験対象システム110に振る舞わせることができる。これにより、ユーザは、ハードウェア障害時にのみ発生するような割込みもハードウェアを改造することなく、ソフトウェアのみで発生させることができる。   The hardware failure simulation system 100 can cause the test target system 110 to behave as if an interrupt that has not actually occurred is generated. As a result, the user can generate an interrupt that occurs only when a hardware failure has occurred only with software without modifying the hardware.

ハードウェア障害模擬システム100は、実際に発生した割込みを遅延させて試験対象システム110に伝えること、実際に発生した割込みを発生しなかったことにして試験対象システム110に伝えないことができるようになる。   The hardware failure simulation system 100 can delay the actually generated interrupt to be transmitted to the test target system 110, and not to notify the test target system 110 that the actually generated interrupt has not occurred. Become.

ハードウェア障害模擬システム100は、障害を模擬するか否かにかかわらず、I/O143、メモリ142へのアクセスログや割込みの発生ログを取得することができる。   The hardware failure simulation system 100 can acquire an access log to the I / O 143 and the memory 142 and an interrupt occurrence log regardless of whether or not the failure is simulated.

100 ハードウェア障害模擬システム、110 試験対象システム、111 OS、112 アプリケーションプログラム、120 障害模擬制御部、121 障害模擬定義情報、130 VMM、131 障害模擬設定部、132 障害模擬実行部、133 アドレス補正処理部、134 模擬実行判定部、140 ハードウェア、141 CPU、142 メモリ、143 I/O。   100 hardware fault simulation system, 110 test target system, 111 OS, 112 application program, 120 fault simulation control section, 121 fault simulation definition information, 130 VMM, 131 fault simulation setting section, 132 fault simulation execution section, 133 address correction processing Part, 134 simulation execution determination part, 140 hardware, 141 CPU, 142 memory, 143 I / O.

Claims (12)

周辺機器が接続される試験対象システムのプログラムを実行する試験対象実行部と、
前記周辺機器に障害が発生したときに所定の障害値記憶領域に設定される障害値を含んだ障害模擬定義情報を記憶する障害模擬定義情報記憶部と、
前記周辺機器に対応付けられた所定の機器対応記憶領域に対してアクセスが発生したときに前記試験対象システムのプログラムを中断させる障害模擬設定部と、
前記試験対象システムのプログラムが中断したときに前記障害模擬定義情報に含まれる障害値を前記障害値記憶領域に設定し、前記試験対象システムのプログラムを再開させる障害模擬実行部と
を備えたことを特徴とする周辺機器障害模擬システム。
A test target execution unit that executes a program of the test target system to which the peripheral device is connected;
A fault simulation definition information storage unit for storing fault simulation definition information including a fault value set in a predetermined fault value storage area when a fault occurs in the peripheral device;
A fault simulation setting unit for interrupting the program of the test target system when an access occurs to a predetermined device-corresponding storage area associated with the peripheral device;
A fault simulation execution unit that sets a fault value included in the fault simulation definition information in the fault value storage area when the program of the test target system is interrupted and restarts the program of the test target system; Peripheral equipment failure simulation system.
前記障害模擬定義情報は、障害を模擬する模擬回数を含み、
前記障害模擬実行部は、前記障害値を前記障害値記憶領域に設定した回数を模擬実行回数として記憶し、前記模擬実行回数と前記模擬回数とを大小比較し、前記模擬実行回数が前記模擬回数未満である場合に前記障害値を前記障害値記憶領域に設定し、前記模擬実行回数が前記模擬回数以上である場合に前記障害値を前記障害値記憶領域に設定しない
ことを特徴とする請求項1記載の周辺機器障害模擬システム。
The failure simulation definition information includes the number of simulations to simulate a failure,
The fault simulation execution unit stores the number of times the fault value is set in the fault value storage area as a simulation execution count, compares the simulation execution count with the simulation count, and the simulation execution count is the simulation count. The failure value is set in the failure value storage area when the number is less than, and the failure value is not set in the failure value storage area when the simulation execution count is equal to or greater than the simulation count. The peripheral device failure simulation system according to 1.
前記障害模擬定義情報は、複数の周辺機器のうち特定の周辺機器を対象機器として示す対象機器特定情報を含み、
前記障害模擬設定部は、複数の周辺機器に対応付けられた機器対応記憶領域に対してアクセスが発生したときに前記試験対象システムのプログラムを中断させ、
前記障害模擬実行部は、前記試験対象システムのプログラムが中断したときに前記機器対応記憶領域に対して発生したアクセスに対応する周辺機器をアクセス機器として特定し、特定したアクセス機器が前記対象機器特定情報に示される対象機器と同じ周辺機器である場合に前記障害値を前記障害値記憶領域に設定し、特定したアクセス機器が前記対象機器特定情報に示される対象機器と異なる周辺機器である場合に前記障害値を前記障害値記憶領域に設定しない
ことを特徴とする請求項1記載の周辺機器障害模擬システム。
The failure simulation definition information includes target device specifying information indicating a specific peripheral device as a target device among a plurality of peripheral devices,
The failure simulation setting unit interrupts the program of the test target system when an access occurs to a device corresponding storage area associated with a plurality of peripheral devices,
The failure simulation execution unit specifies, as an access device, a peripheral device corresponding to an access that has occurred in the device-compatible storage area when the program of the test target system is interrupted, and the specified access device specifies the target device When the fault device is the same peripheral device as the target device indicated in the information, the fault value is set in the fault value storage area, and the specified access device is a different peripheral device from the target device indicated in the target device specifying information The peripheral device failure simulation system according to claim 1, wherein the failure value is not set in the failure value storage area.
前記障害模擬設定部は、前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させ、
前記障害模擬実行部は、前記周辺機器の割込みが発生して前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、所定の遅延時間が経過したときに前記試験対象システムのプログラムを中断させる遅延タイマを起動し、前記試験対象システムのプログラムを再開させ、前記遅延タイマにより前記試験対象システムのプログラムが中断したときに前記割込み情報記憶領域に記憶されていた割込み情報を前記割込み情報記憶領域に設定し、前記試験対象システムのプログラムを再開させる
ことを特徴とする請求項1〜請求項3いずれかに記載の周辺機器障害模擬システム。
The fault simulation setting unit interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area,
The failure simulation execution unit deletes the interrupt information stored in the interrupt information storage area when a program of the test target system is interrupted due to an interruption of the peripheral device, and a predetermined delay time has elapsed. The delay timer that interrupts the program of the test target system is started, the program of the test target system is restarted, and the program of the test target system is interrupted by the delay timer and stored in the interrupt information storage area. The peripheral device fault simulation system according to claim 1, wherein the interrupt information is set in the interrupt information storage area and the program of the test target system is restarted.
前記障害模擬設定部は、前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させ、
前記障害模擬実行部は、前記周辺機器の割込みが発生して前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、前記試験対象システムのプログラムを再開させる
ことを特徴とする請求項1〜請求項3いずれかに記載の周辺機器障害模擬システム。
The fault simulation setting unit interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area,
The failure simulation execution unit erases the interrupt information stored in the interrupt information storage area and resumes the program of the test target system when the interrupt of the peripheral device occurs and the program of the test target system is interrupted. The peripheral device failure simulation system according to any one of claims 1 to 3, wherein:
前記障害模擬設定部は、所定の割込み設定により前記周辺機器の割込みを発生させ、前記試験対象システムのプログラムを中断させる
ことを特徴とする請求項4または請求項5記載の周辺機器障害模擬システム。
6. The peripheral device failure simulation system according to claim 4, wherein the failure simulation setting unit generates an interrupt of the peripheral device according to a predetermined interrupt setting, and interrupts the program of the test target system.
試験対象実行部が、周辺機器が接続される試験対象システムのプログラムを実行し、
障害模擬定義情報記憶部が、前記周辺機器に障害が発生したときに所定の障害値記憶領域に設定される障害値を含んだ障害模擬定義情報を記憶し、
障害模擬設定部が、前記周辺機器に対応付けられた所定の機器対応記憶領域に対してアクセスが発生したときに前記試験対象システムのプログラムを中断させ、
障害模擬実行部が、前記試験対象システムのプログラムが中断したときに前記障害模擬定義情報に含まれる障害値を前記障害値記憶領域に設定し、前記試験対象システムのプログラムを再開させる
ことを特徴とする周辺機器障害模擬方法。
The test target execution unit executes the program of the test target system to which the peripheral device is connected,
The fault simulation definition information storage unit stores fault simulation definition information including a fault value set in a predetermined fault value storage area when a fault occurs in the peripheral device,
The failure simulation setting unit interrupts the program of the test target system when an access occurs to a predetermined device correspondence storage area associated with the peripheral device,
The fault simulation execution unit sets a fault value included in the fault simulation definition information in the fault value storage area when the program of the test target system is interrupted, and restarts the program of the test target system. Peripheral device failure simulation method.
周辺機器が接続される試験対象システムのプログラムを実行する試験対象実行部と、
前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させる障害模擬設定部と、
前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、所定の遅延時間が経過したときに前記試験対象システムのプログラムを中断させる遅延タイマを起動し、前記試験対象システムのプログラムを再開させ、前記遅延タイマにより前記試験対象システムのプログラムが中断したときに前記割込み情報記憶領域に記憶されていた割込み情報を前記割込み情報記憶領域に設定し、前記試験対象システムのプログラムを再開させる障害模擬実行部と
を備えたことを特徴とする周辺機器障害模擬システム。
A test target execution unit that executes a program of the test target system to which the peripheral device is connected;
A fault simulation setting unit that interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area;
When the program of the test target system is interrupted, the interrupt information stored in the interrupt information storage area is erased, and when a predetermined delay time elapses, a delay timer that interrupts the program of the test target system is started, The program of the test target system is resumed, and the interrupt information stored in the interrupt information storage area when the program of the test target system is interrupted by the delay timer is set in the interrupt information storage area, and the test target A peripheral device failure simulation system comprising a failure simulation execution unit for resuming a system program.
試験対象実行部が、周辺機器が接続される試験対象システムのプログラムを実行し、
障害模擬設定部が、前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させ、
障害模擬実行部が、前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、所定の遅延時間が経過したときに前記試験対象システムのプログラムを中断させる遅延タイマを起動し、前記試験対象システムのプログラムを再開させ、前記遅延タイマにより前記試験対象システムのプログラムが中断したときに前記割込み情報記憶領域に記憶されていた割込み情報を前記割込み情報記憶領域に設定し、前記試験対象システムのプログラムを再開させる
ことを特徴とする周辺機器障害模擬方法。
The test target execution unit executes the program of the test target system to which the peripheral device is connected,
The fault simulation setting unit interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area,
The failure simulation execution unit erases the interrupt information stored in the interrupt information storage area when the program of the test target system is interrupted, and interrupts the program of the test target system when a predetermined delay time has elapsed. A delay timer is started, the program of the test target system is restarted, and the interrupt information stored in the interrupt information storage area when the program of the test target system is interrupted by the delay timer is stored in the interrupt information storage area. A peripheral device failure simulation method comprising: setting and restarting the program of the test target system.
周辺機器が接続される試験対象システムのプログラムを実行する試験対象実行部と、
前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させる障害模擬設定部と、
前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、前記試験対象システムのプログラムを再開させる障害模擬実行部と
を備えたことを特徴とする周辺機器障害模擬システム。
A test target execution unit that executes a program of the test target system to which the peripheral device is connected;
A fault simulation setting unit that interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area;
A peripheral device comprising: a failure simulation execution unit that erases the interrupt information stored in the interrupt information storage area and restarts the program of the test target system when the program of the test target system is interrupted Fault simulation system.
試験対象実行部が、周辺機器が接続される試験対象システムのプログラムを実行し、
障害模擬設定部が、前記周辺機器の割込みが発生して割込み情報が所定の割込み情報記憶領域に記憶されたときに前記試験対象システムのプログラムを中断させ、
障害模擬実行部が、前記試験対象システムのプログラムが中断した場合、前記割込み情報記憶領域に記憶された割込み情報を消去し、前記試験対象システムのプログラムを再開させる
ことを特徴とする周辺機器障害模擬方法。
The test target execution unit executes the program of the test target system to which the peripheral device is connected,
The fault simulation setting unit interrupts the program of the test target system when an interrupt of the peripheral device occurs and interrupt information is stored in a predetermined interrupt information storage area,
The failure simulation execution unit erases the interrupt information stored in the interrupt information storage area and restarts the program of the test target system when the program of the test target system is interrupted. Method.
請求項7と請求項9と請求項11とのいずれかに記載の周辺機器障害模擬方法をコンピュータに実行させる周辺機器障害模擬プログラム。   A peripheral device failure simulation program for causing a computer to execute the peripheral device failure simulation method according to any one of claims 7, 9, and 11.
JP2010096825A 2010-04-20 2010-04-20 Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program Expired - Fee Related JP5452336B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010096825A JP5452336B2 (en) 2010-04-20 2010-04-20 Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010096825A JP5452336B2 (en) 2010-04-20 2010-04-20 Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program

Publications (2)

Publication Number Publication Date
JP2011227700A JP2011227700A (en) 2011-11-10
JP5452336B2 true JP5452336B2 (en) 2014-03-26

Family

ID=45042973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010096825A Expired - Fee Related JP5452336B2 (en) 2010-04-20 2010-04-20 Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program

Country Status (1)

Country Link
JP (1) JP5452336B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5664530B2 (en) * 2011-11-17 2015-02-04 トヨタ自動車株式会社 Operation check method of control device and memory protection device
JP5753508B2 (en) * 2012-03-15 2015-07-22 株式会社東芝 Program verification system and verification method thereof
JP6045397B2 (en) * 2013-02-28 2016-12-14 三菱電機株式会社 Virtual computer system, fault simulation method and fault simulation program for virtual computer system
EP2891981B1 (en) * 2014-01-06 2018-07-18 Fujitsu Limited Method and computing system allowing a method of injecting hardware faults into an executing application

Also Published As

Publication number Publication date
JP2011227700A (en) 2011-11-10

Similar Documents

Publication Publication Date Title
JP4688862B2 (en) Providing support for single step functionality of virtual machines in virtual machine environments
US10139876B2 (en) Efficient reboot of an operating system executed in a virtual machine
US7594143B2 (en) Analysis engine for analyzing a computer system condition
US8170859B1 (en) Methods, apparatuses and computer program products for simulating arbitrary unmodified code
US9870475B2 (en) Hardware configuration reporting systems
KR101019209B1 (en) Device of automatically extracting Interface of Embedded Software and Method thereof
US8612937B2 (en) Synchronously debugging a software program using a plurality of virtual machines
US20140196040A1 (en) Virtual machine crash file generation techniques
US20220035905A1 (en) Malware analysis through virtual machine forking
RU2005135472A (en) COMPUTER SECURITY MANAGEMENT, FOR example, IN A VIRTUAL MACHINE OR A REAL OPERATING SYSTEM
JP5951879B2 (en) Report malicious activity on the operating system
US20230128809A1 (en) Efficient fuzz testing of low-level virtual devices
KR20220050895A (en) Data retention technique using memory aperture flush order
CA2800271A1 (en) System test method
CN114625616A (en) Monitoring operation of a processor
US10586048B2 (en) Efficient reboot of an operating system
JP5452336B2 (en) Peripheral device failure simulation system, peripheral device failure simulation method, and peripheral device failure simulation program
US8145471B2 (en) Non-destructive simulation of a failure in a virtualization environment
US9535772B2 (en) Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels
US9959225B2 (en) Computer apparatus and control method of computer apparatus
CN111194447A (en) Monitoring control flow integrity
US20240289156A1 (en) Methods and systems of managing hypervisor efficiency and uptime
JP5425445B2 (en) Processing control system, method and program
TWI663544B (en) Fault tolerant operating metohd and electronic device using the same
Misono et al. DMAFV: testing device drivers against DMA faults

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131227

R150 Certificate of patent or registration of utility model

Ref document number: 5452336

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees