Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4872883B2 - Computer, failure reproduction method and program - Google Patents
[go: Go Back, main page]

JP4872883B2 - Computer, failure reproduction method and program - Google Patents

Computer, failure reproduction method and program Download PDF

Info

Publication number
JP4872883B2
JP4872883B2 JP2007283348A JP2007283348A JP4872883B2 JP 4872883 B2 JP4872883 B2 JP 4872883B2 JP 2007283348 A JP2007283348 A JP 2007283348A JP 2007283348 A JP2007283348 A JP 2007283348A JP 4872883 B2 JP4872883 B2 JP 4872883B2
Authority
JP
Japan
Prior art keywords
instruction
computer
storage unit
failure
unit
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
JP2007283348A
Other languages
Japanese (ja)
Other versions
JP2009110375A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2007283348A priority Critical patent/JP4872883B2/en
Publication of JP2009110375A publication Critical patent/JP2009110375A/en
Application granted granted Critical
Publication of JP4872883B2 publication Critical patent/JP4872883B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、サーバやパーソナルコンピュータ(PC)等の計算機において、障害を再現する障害再現技術に関し、特に、障害によりオペレーティングシステム(OS)が起動できない場合においても、障害を再現することが可能な障害再現技術に関する。   The present invention relates to a failure reproduction technique for reproducing a failure in a computer such as a server or a personal computer (PC), and in particular, a failure capable of reproducing a failure even when an operating system (OS) cannot be started due to the failure. Reproduction technology.

サーバやPC等の計算機において、障害原因を究明するために、障害を再現するということは従来から行われている(例えば、特許文献1参照)。この特許文献1においては、命令を実行する毎に、その命令によって更新されたレジスタの値を蓄積部に蓄積しておき、予想に反した事象(障害など)を再現する場合には、蓄積部に蓄積されているレジスタの値に基づいて、レジスタ(プログラムカウンタを含む)の状態を障害発生前の状態に戻し、その後、プログラムカウンタによって示される命令からプログラムの実行を再開させるようにしている。   In a computer such as a server or a PC, it has been conventionally performed to reproduce a failure in order to investigate the cause of the failure (see, for example, Patent Document 1). In this Patent Document 1, each time an instruction is executed, the value of the register updated by the instruction is stored in the storage unit. When reproducing an unexpected event (failure or the like), the storage unit The registers (including the program counter) are returned to the state before the occurrence of the failure based on the value of the register stored in the memory, and then the program execution is resumed from the instruction indicated by the program counter.

特開平3−158937号公報JP-A-3-158937

特許文献1に記載されている技術によれば、レジスタの状態を障害発生前の状態に戻してからプログラムの実行を再開するようにしているので、障害を高い確率で再現することが可能になる。しかし、特許文献1に記載されている技術は、障害によってOSが起動できなくなった場合には、障害を再現することができないという問題がある。   According to the technique described in Patent Document 1, since the execution of the program is resumed after returning the state of the register to the state before the occurrence of the failure, the failure can be reproduced with a high probability. . However, the technique described in Patent Document 1 has a problem that the failure cannot be reproduced when the OS cannot be started due to the failure.

〔発明の目的〕
そこで、本発明の目的は、障害によりOSが起動できなくなった場合においても、障害を再現できるようにすることにある。
(Object of invention)
Therefore, an object of the present invention is to make it possible to reproduce a failure even when the OS cannot be started due to the failure.

本発明にかかる第1の計算機は、
自計算機において命令が実行される毎に、実行された命令が書き込まれ、自計算機に障害が発生したとき、命令の書き込みを禁止する命令列記憶部と、
前記命令列記憶部に格納されている命令に基づいて、前記障害を再現するための障害再現部を含んだ障害再現プログラムを生成するプログラム生成部と、
該プログラム生成部で生成された障害再現プログラムを起動するブートローダとを備えたことを特徴とする。
The first computer according to the present invention is:
Each time an instruction is executed in the own computer, the executed instruction is written, and when a failure occurs in the own computer, an instruction string storage unit that prohibits writing of the instruction;
A program generation unit that generates a failure reproduction program including a failure reproduction unit for reproducing the failure based on an instruction stored in the instruction sequence storage unit;
And a boot loader that activates the failure reproduction program generated by the program generation unit.

本発明にかかる第1の障害再現方法は、
自計算機において命令が実行される毎に、実行された命令を命令列記憶部に書き込む第1のステップと、
自計算機において障害が発生したとき、前記命令列記憶部に対する命令の書き込みを禁止する第2のステップと、
前記命令列記憶部に格納されている命令に基づいて、前記障害を再現するための障害再現部を含んだ障害再現プログラムを生成する第3のステップと、
該第3のステップで生成された障害再現プログラムをブートローダにより起動する第4のステップとを含むことを特徴とする。
The first failure reproduction method according to the present invention is:
A first step of writing the executed instruction to the instruction sequence storage unit each time an instruction is executed in the own computer;
A second step of prohibiting writing of instructions to the instruction sequence storage unit when a failure occurs in the own computer;
A third step of generating a failure reproduction program including a failure reproduction unit for reproducing the failure based on an instruction stored in the instruction sequence storage unit;
And a fourth step of starting the failure reproduction program generated in the third step by a boot loader.

本発明にかかる第1のプログラムは、
コンピュータに、自コンピュータにおいて命令が実行される毎に、実行された命令を命令列記憶部に書き込む第1のステップと、
前記コンピュータに、自コンピュータにおいて障害が発生したとき、前記命令列記憶部に対する命令の書き込みを禁止する第2のステップと、
前記コンピュータに、前記命令列記憶部に格納されている命令に基づいて、前記障害を再現するための障害再現部を含んだ障害再現プログラムを生成する第3のステップと、
前記コンピュータに、前記第3のステップで生成された障害再現プログラムをブートローダにより起動する第4のステップとを実行させる。
The first program according to the present invention is:
A first step of writing the executed instruction to the instruction sequence storage unit in the computer each time the instruction is executed in the computer;
A second step of prohibiting writing of an instruction to the instruction sequence storage unit when a failure occurs in the computer;
A third step of generating, on the computer, a failure reproduction program including a failure reproduction unit for reproducing the failure based on an instruction stored in the instruction sequence storage unit;
Causing the computer to execute a fourth step of starting the fault reproduction program generated in the third step by a boot loader.

本発明によれば、障害によりOSが起動できなくなった場合においても障害を再現することが可能になるという効果を得ることができる。   According to the present invention, it is possible to obtain an effect that the failure can be reproduced even when the OS cannot be started due to the failure.

次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。   Next, the best mode for carrying out the present invention will be described in detail with reference to the drawings.

〔本発明の実施例〕
図1を参照すると、本発明の実施例にかかる計算機1は、プロセッサ2と、主記憶装置3と、不揮発性メモリ4とを備えている。
Examples of the present invention
Referring to FIG. 1, a computer 1 according to an embodiment of the present invention includes a processor 2, a main storage device 3, and a nonvolatile memory 4.

プロセッサ2は、一般的なプロセッサが備えている命令レジスタ21、デコーダ22、汎用レジスタ(単にレジスタという場合もある)R1〜RN、演算回路23および障害検出回路24に加えて、命令列記憶部25、データ列記憶部26およびプログラム生成部27を備えている。   The processor 2 includes an instruction sequence storage unit 25 in addition to an instruction register 21, a decoder 22, general-purpose registers (also simply referred to as registers) R 1 to RN, an arithmetic circuit 23, and a failure detection circuit 24 provided in a general processor. A data string storage unit 26 and a program generation unit 27 are provided.

命令列記憶部25は、図2に示すように、書き込み手段251と、記憶部252とを備えている。記憶部252は、SRAM(スタティックRAM)等によって実現されるものであり、N個の領域#1〜#Nを備えている。書き込み手段251は、命令レジスタ21からデコーダ22へ命令が送られる毎に(命令が実行される毎に)、その命令を記憶部252の領域#1から順番に書き込む。領域#Nまで命令を書き込むと、書き込み手段251は、再び領域#1から命令を書き込む。従って、記憶部252には、最新の命令がN個格納されることになる。また、書き込み手段251は、障害検出回路24によって計算機1の障害が検出されると、命令の書き込みを停止する。なお、図2において、命令#3は格納順が最も古い命令を、命令#(N+2)は格納順が最も新しい命令を表している。   The instruction sequence storage unit 25 includes a writing unit 251 and a storage unit 252 as shown in FIG. The storage unit 252 is realized by an SRAM (static RAM) or the like, and includes N areas # 1 to #N. Each time an instruction is sent from the instruction register 21 to the decoder 22 (each time the instruction is executed), the writing unit 251 writes the instructions in order from the area # 1 of the storage unit 252. When the command is written to the area #N, the writing unit 251 writes the command from the area # 1 again. Accordingly, N latest instructions are stored in the storage unit 252. In addition, when the failure detection circuit 24 detects a failure in the computer 1, the writing unit 251 stops writing the instruction. In FIG. 2, instruction # 3 represents the instruction with the oldest storage order, and instruction # (N + 2) represents the instruction with the newest storage order.

データ列記憶部26は、命令列記憶部25と同様に、書き込み手段とN個の領域からなる記憶部とを備えている。書き込み手段は、命令が実行される毎に、デコーダ22のデコード結果に従って上記命令に関連する関連データを記憶部の領域#1から順番に格納する。従って、データ列記憶部26の領域#J(1≦J≦N)には、命令列記憶部25の領域#Jに格納されている命令に関する関連データが格納されることになる。また、書き込み手段は、障害検出回路24によって計算機1の障害が検出されると、関連データの書き込みを停止する。ここで、命令が更新および参照対象にしている全てのレジスタおよび主記憶装置に関するデータ(値と更新および参照位置)を関連データとしてデータ列記憶部26に書き込むようにしても良いが、本実施例では、データ列記憶部26の容量削減のため、その内の一部のみを関連データとしてデータ列記憶部26に書き込むようにしている。本実施例では、メモリストア命令の場合には、参照しているレジスタの値とレジスタ番号とを関連データとし、メモリロード命令の場合には、参照している主記憶装置の値とアドレスとを関連データとし、他の命令の場合には、更新対象にしているレジスタの値とレジスタ番号とを関連データとしている。   Similar to the instruction sequence storage unit 25, the data sequence storage unit 26 includes a writing unit and a storage unit including N areas. Each time the instruction is executed, the writing means sequentially stores the related data related to the instruction from the area # 1 of the storage unit according to the decoding result of the decoder 22. Therefore, the area #J (1 ≦ J ≦ N) of the data string storage unit 26 stores related data related to the instructions stored in the area #J of the instruction string storage unit 25. In addition, when the failure detection circuit 24 detects a failure of the computer 1, the writing unit stops writing related data. Here, data (values and update and reference positions) related to all registers and main storage devices to be updated and referred to by the instruction may be written in the data string storage unit 26 as related data. In order to reduce the capacity of the data string storage unit 26, only a part of the data string is written in the data string storage unit 26 as related data. In the present embodiment, in the case of a memory store instruction, the value of the referenced register and the register number are used as related data. In the case of a memory load instruction, the value and address of the referenced main storage device are used. In the case of other instructions, the value of the register to be updated and the register number are used as related data.

プログラム生成部27は、障害検出回路24によって自計算機1の障害が検出されると、命令列記憶部25に格納されている命令およびデータ列記憶部26に格納されている関連データに基づいて、図3に示すような障害再現プログラム5を生成し、不揮発性メモリ4に格納する機能を有する。障害再現プログラム5は、レジスタR1〜RN及び主記憶装置3の状態を、命令列記憶部25に格納されている最古の命令の実行時の状態に戻す状態復元部51と、障害を再現させるための障害再現部52とを含んでいる。   When the failure detection circuit 24 detects a failure of the computer 1, the program generation unit 27 is based on the instruction stored in the instruction sequence storage unit 25 and the related data stored in the data sequence storage unit 26. A failure reproduction program 5 as shown in FIG. 3 is generated and stored in the nonvolatile memory 4. The failure reproduction program 5 reproduces the failure with the state restoration unit 51 that returns the states of the registers R1 to RN and the main storage device 3 to the state at the time of execution of the oldest instruction stored in the instruction sequence storage unit 25. And a failure reproduction unit 52 for the purpose.

図4はプログラム生成部27の構成例を示すブロック図であり、デコーダ271と、セレクタ272と、一意フラグ記憶部273と、推測部274と、セレクタ275とを備えている。   FIG. 4 is a block diagram illustrating a configuration example of the program generation unit 27, which includes a decoder 271, a selector 272, a unique flag storage unit 273, an estimation unit 274, and a selector 275.

デコーダ271は、命令列記憶部25に格納されている命令を、格納順が古い命令から順番にデコードし、デコード結果を出力する。   The decoder 271 decodes the instructions stored in the instruction sequence storage unit 25 in order from the oldest storage order, and outputs the decoding result.

一意フラグ記憶部273には、レジスタR1〜RNそれぞれに対する一意フラグF1〜FNが格納される。一意フラグF1〜FNは、対応するレジスタR1〜RNの値が現時点において一意に決定されているか否かを表示するものであり、一意に決定されている場合には“1”が、決定されていない場合には“0”が設定される。   The unique flag storage unit 273 stores unique flags F1 to FN for the registers R1 to RN, respectively. The unique flags F1 to FN indicate whether or not the values of the corresponding registers R1 to RN are uniquely determined at the present time, and “1” is determined when the values are uniquely determined. If not, “0” is set.

一意フラグ記憶部273の内容は、デコーダ271のデコード結果によって制御されるセレクタ272によって書き換えられる。なお、セレクタ272はデコーダ271のデコード結果に応じて、次のような動作を行うように構成されている。デコーダ271のデコード結果が、デコードした命令に対応する関連データの値がレジスタの値であり、且つその値が当該命令の実行以前に一意に決まるものであることを示している場合は、上記レジスタに対応する一意フラグを“1”とする。また、デコーダ271のデコード結果が、デコードした命令に対応する関連データの値がレジスタの値であり、且つその値が当該命令により一意に決まることを示している場合には、上記レジスタに対応する一意フラグを“0”とする。   The contents of the unique flag storage unit 273 are rewritten by the selector 272 controlled by the decoding result of the decoder 271. The selector 272 is configured to perform the following operation in accordance with the decoding result of the decoder 271. When the decoding result of the decoder 271 indicates that the value of the related data corresponding to the decoded instruction is the value of the register and the value is uniquely determined before the execution of the instruction, the register The unique flag corresponding to is set to “1”. Further, when the decoding result of the decoder 271 indicates that the value of the related data corresponding to the decoded instruction is the value of the register and the value is uniquely determined by the instruction, it corresponds to the register. The unique flag is set to “0”.

例えば、デコーダ271でデコードした命令がメモリストア命令である場合は、当該メモリストア命令に対応する関連データの値は、ストア元のレジスタの値であり、ストア元のレジスタの値は、当該メモリストア命令の実行以前に一意に決まるものであるので、ストア元のレジスタに対応する一意フラグを“1”とする。また、例えば、デコードした命令が足し算命令である場合は、当該足し算命令に対応する関連データの値は、当該足し算命令で更新対象にしているレジスタの値であり、このレジスタの値は当該足し算命令によって決まるので、更新対象にしているレジスタに対応する一意フラグを“0”とする。   For example, when the instruction decoded by the decoder 271 is a memory store instruction, the value of the related data corresponding to the memory store instruction is the value of the store source register, and the value of the store source register is the memory store instruction. Since it is uniquely determined before the instruction is executed, the unique flag corresponding to the register at the store source is set to “1”. Also, for example, when the decoded instruction is an addition instruction, the value of the related data corresponding to the addition instruction is the value of the register to be updated by the addition instruction, and the value of this register is the addition instruction. Therefore, the unique flag corresponding to the register to be updated is set to “0”.

推測部274は、次のような機能を有する。   The estimation unit 274 has the following functions.

・デコーダ271でデコードされた命令によって更新或いは参照されているレジスタ或いは主記憶装置の値の内、データ列記憶部26に関連データとして値が格納されているものについては、その値をレジスタ或いは主記憶装置に書き戻す命令を生成し、生成した命令を不揮発性メモリ4に格納する。
・デコーダ271でデコードされた命令によって更新或いは参照されているレジスタ或いは主記憶装置の値の内、データ列記憶部に関連データとして値が格納されていないものについては、その値を推測し、推測した値をレジスタ或いは主記憶装置に書き戻す命令を生成して不揮発性メモリ4に格納する。なお、デコードした命令で更新或いは参照しているレジスタの一意フラグが“1”の場合は、既に値が確定しているため、推測した値を書き戻す命令は生成しない。また、もし、一意フラグが“1”のレジスタの値を不揮発性メモリ4から読み出すことにより、他の更新或いは参照しているレジスタの値も一意に決まる場合は、該当するレジスタの一意フラグを“1”として、一意に決まった値を書き戻す命令を生成する。
Among the values of the registers or main memory that are updated or referred to by the instruction decoded by the decoder 271, those values stored as related data in the data string storage unit 26 are stored in the register or main memory. An instruction to be written back to the storage device is generated, and the generated instruction is stored in the nonvolatile memory 4.
-For values of registers or main memory that are updated or referred to by instructions decoded by the decoder 271, those values that are not stored as related data in the data string storage unit are estimated and estimated. A command for writing the value back to the register or the main memory is generated and stored in the nonvolatile memory 4. When the unique flag of the register that is updated or referred to by the decoded instruction is “1”, the value has already been determined, so that an instruction to write back the estimated value is not generated. If the value of another register that is updated or referred to is uniquely determined by reading the value of the register having the unique flag “1” from the nonvolatile memory 4, the unique flag of the corresponding register is set to “ As 1 ″, an instruction for writing back a uniquely determined value is generated.

より具体的には、推測部274には命令の種別に応じた推測回路(図示せず)が設けられており、デコーダ271でデコードされた命令の種別に対応する推測回路が、命令の種別に応じた処理を行う。例えば、足し算命令用の推測回路には、データ列記憶部26から読み出した関連データに基づいて更新対象にしているレジスタに値を書き戻す命令を生成して不揮発性メモリ4に格納する構成と、足し算命令で参照している一方のレジスタに0を書き込む命令を生成して不揮発性メモリ4に格納する構成と、参照している他方のレジスタにデータ列記憶部26から読み出した関連データによって示される値を書き込む命令を生成して不揮発性メモリ4に格納する構成を持たせれば良い。なお、足し算回路の構成はこれに限られるものではなく、乱数発生器を利用して構成するようにすることもできる。即ち、足し算命令で参照される一方のレジスタの値を乱数発生器を用いて決定し、他方のレジスタの値を乱数発生器を用いて決定した値と関連データによって示される値とから決定するようにしても良い。   More specifically, the estimation unit 274 is provided with an estimation circuit (not shown) corresponding to the instruction type, and an estimation circuit corresponding to the instruction type decoded by the decoder 271 is used as the instruction type. Perform appropriate processing. For example, a configuration for generating an instruction to write a value back to a register to be updated based on related data read from the data string storage unit 26 and storing the instruction in the non-volatile memory 4 in the estimation circuit for the addition instruction; A configuration in which an instruction to write 0 to one register referred to by an addition instruction is generated and stored in the nonvolatile memory 4, and the other register being referred to is indicated by related data read from the data string storage unit 26. What is necessary is just to have the structure which produces | generates the command which writes a value and stores it in the non-volatile memory 4. FIG. Note that the configuration of the addition circuit is not limited to this, and may be configured using a random number generator. That is, the value of one register referred to by the addition instruction is determined using a random number generator, and the value of the other register is determined from the value determined using the random number generator and the value indicated by the related data. Anyway.

なお、本実施例ではプログラム生成部27をハードウェア(布線論理)により実現したが、コンピュータによって実現することもできる。この場合は、コンピュータをプログラム生成部27として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って、自身の動作を制御することにより、自コンピュータ上に、プログラム生成部27を実現する。   In the present embodiment, the program generation unit 27 is realized by hardware (wiring logic), but can also be realized by a computer. In this case, a disk, a semiconductor memory, or other recording medium on which a program for causing the computer to function as the program generation unit 27 is prepared is prepared, and the computer reads the program. The computer implements the program generation unit 27 on its own computer by controlling its own operation according to the read program.

〔実施例の動作の説明〕
次に、本実施例の動作について詳細に説明する。
[Description of Operation of Example]
Next, the operation of this embodiment will be described in detail.

計算機1が正常に動作している場合は、計算機1において命令が実行される毎に、実行された命令が命令列記憶部25の記憶部252に書き込まれると共に、上記命令に関連する関連データがデータ列記憶部26の記憶部に書き込まれる。そして、障害検出回路24によって計算機1の障害が検出されると、命令列記憶部25は命令の書き込みを停止する。データ列記憶部26は命令列記憶部25に最後に書き込まれた命令に対応する関連データを書き込んだ後、書き込みを停止する。   When the computer 1 is operating normally, each time an instruction is executed in the computer 1, the executed instruction is written into the storage unit 252 of the instruction sequence storage unit 25, and related data related to the instruction is stored. The data is stored in the storage unit of the data string storage unit 26. When the failure detection circuit 24 detects a failure in the computer 1, the instruction sequence storage unit 25 stops writing instructions. The data string storage unit 26 writes the related data corresponding to the last written instruction in the instruction string storage unit 25 and then stops writing.

計算機1に障害が発生し、命令列記憶部25、データ列記憶部26が命令、関連データの書き込みを停止すると、プログラム生成部27が図5のフローチャートに示す処理を開始する。   When a failure occurs in the computer 1 and the instruction sequence storage unit 25 and the data sequence storage unit 26 stop writing instructions and related data, the program generation unit 27 starts the processing shown in the flowchart of FIG.

先ず、プログラム生成部27は、一意フラグ記憶部273に格納されている全ての一意フラグF1〜FNを全て“0”に初期設定する(図5のS501)。その後、命令列記憶部25、データ列記憶部26からそれぞれ格納順(実行順)が最後の命令、関連データを読み出し(S502)、当該関連データが示す値を当該関連データが示すレジスタ或いはメモリアドレス(主記憶装置3)に書き込む命令を生成して不揮発性メモリ4に格納する(S503)。   First, the program generation unit 27 initializes all the unique flags F1 to FN stored in the unique flag storage unit 273 to “0” (S501 in FIG. 5). After that, the instruction and storage data with the last storage order (execution order) and related data are read from the instruction string storage unit 25 and the data string storage unit 26, respectively (S502), and the value indicated by the related data is a register or memory address indicated by the related data A command to be written to the (main storage device 3) is generated and stored in the nonvolatile memory 4 (S503).

その後、データ列記憶部26から今回読み出した関連データがレジスタの値を示し、且つその値が命令列記憶部25から今回読み出した命令の実行以前に一意に決まるものであるか否かをチェックする(S504)。そして、今回読み出した命令がメモリストア命令にように一意に決まる命令の場合は、該当するレジスタの一意フラグを“1”とする(S505)。これに対して、足し算命令のように一意に決まらない場合は、該当するレジスタの一意フラグを“0”とする(S506)。   Thereafter, it is checked whether or not the related data read this time from the data string storage unit 26 indicates the value of the register, and whether the value is uniquely determined before the execution of the instruction read this time from the instruction string storage unit 25. (S504). If the instruction read this time is an instruction uniquely determined as a memory store instruction, the unique flag of the corresponding register is set to “1” (S505). On the other hand, if it is not uniquely determined as in the addition instruction, the unique flag of the corresponding register is set to “0” (S506).

その後、命令列記憶部25から今回読み出した命令によって更新或いは参照されているレジスタ或いは主記憶装置3の値の内、今回読み出した関連データによって値が示されていないものは、その値を推測する(S507)。   After that, among the values of the registers or main memory 3 that are updated or referred to by the instruction read this time from the instruction sequence storage unit 25 and whose values are not indicated by the related data read this time, the value is estimated. (S507).

そして、推測対象が主記憶装置3であった場合(S508がNo)は、推測した値を該当するメモリアドレス(命令から分かる)に書き込む命令を生成し、生成した命令を不揮発性メモリ4に格納する(S509)。その後、命令列記憶部25、データ列記憶部26からそれぞれ格納順が1つ前の命令、関連データを読み出す(S514)。   Then, when the estimation target is the main storage device 3 (No in S508), an instruction to write the estimated value to the corresponding memory address (which can be understood from the instruction) is generated, and the generated instruction is stored in the nonvolatile memory 4. (S509). After that, the previous instruction and related data are read from the instruction sequence storage unit 25 and the data sequence storage unit 26, respectively (S514).

これに対して、推測対象がレジスタであった場合(S508がYes)は、推測対象にした全てのレジスタの一意フラグをチェックする(S510)。そして、一意フラグが全て“1”である場合(S510がYes)には、現時点においては推測対象にしたレジスタの値が全て確定しているため、推測した値を書き込む命令は生成せずに、命令列記憶部25、データ列記憶部26からそれぞれ格納順が1つ前の命令、関連データを読み出す(S514)。   On the other hand, when the estimation target is a register (S508 is Yes), the unique flags of all the registers that are the estimation target are checked (S510). If all the unique flags are “1” (Yes in S510), all the register values to be estimated are determined at the present time. Therefore, an instruction to write the estimated value is not generated. The previous instruction and related data are read from the instruction sequence storage unit 25 and the data sequence storage unit 26, respectively (S514).

これに対して、推測対象にしたレジスタの一意フラグの中に、値が“0”のものが1つでも含まれている場合(S510がNo)は、一意フラグが“0”になっているレジスタの値を、一意フラグが“1”となっているレジスタの値と今回読み出した関連データによって示されるレジスタ或いは主記憶装置の値によって一意に決定することができるか否かを判定する(S511)。   On the other hand, the unique flag is “0” when one of the unique flags of the register to be estimated includes a value of “0” (No in S510). It is determined whether or not the value of the register can be uniquely determined by the value of the register whose unique flag is “1” and the value of the register or main memory indicated by the related data read this time (S511). ).

そして、一意に決定できると判定した場合(S511がYes)は、値を一意に決定できると判定したレジスタの一意フラグを“1”に書き換え、更に、一意に決定した値を上記レジスタに書き込む命令を生成し、生成した命令を不揮発性メモリ4に格納する(S512)。   If it is determined that the value can be uniquely determined (Yes in S511), the unique flag of the register whose value is determined to be uniquely determined is rewritten to “1”, and the uniquely determined value is written to the register. And the generated instruction is stored in the nonvolatile memory 4 (S512).

これに対して、一意に決定できないと判定した場合(S511がNo)は、ステップS507で推測した値を該当するレジスタに書き込む命令を生成して不揮発性メモリ4に格納する(ステップS513)。   On the other hand, when it is determined that it cannot be uniquely determined (No in S511), an instruction to write the value estimated in Step S507 to the corresponding register is generated and stored in the nonvolatile memory 4 (Step S513).

ステップS512或いはステップS513の処理が終了すると、命令列記憶部25、データ列記憶部26からそれぞれ格納順が1つ前の命令、関連データを読み出す(S514)。以後、ステップS503〜S514の処理を繰り返し行い、障害再現プログラム5の状態復元部51を生成していく。そして、命令列記憶部25、データ列記憶部26に格納されている全ての命令、関連データに対してステップS503〜S514の処理を行い、格納順が前の命令がなくなると(ステップS515がYes)、障害再現プログラム5の状態復元部51が完成したことになるので、今度は障害再現部52を生成するために図6のフローチャートの処理を行う。   When the process of step S512 or step S513 is completed, the previous instruction and related data are read out from the instruction string storage unit 25 and the data string storage unit 26, respectively (S514). Thereafter, the processing of steps S503 to S514 is repeated to generate the state restoration unit 51 of the failure reproduction program 5. Then, the processes in steps S503 to S514 are performed on all the instructions and related data stored in the instruction sequence storage unit 25 and the data sequence storage unit 26, and when there is no previous instruction in the storage order (Yes in step S515). ) Since the state restoration unit 51 of the failure reproduction program 5 is completed, the process of the flowchart of FIG. 6 is performed in order to generate the failure reproduction unit 52 this time.

図6を参照すると、プログラム生成部27は、先ず、命令列記憶部25に格納されている命令の中から実行順が最も前の命令を読み出し(S601)、不揮発性メモリ4に格納する(S602)。その後、プログラム生成部27は、実行順が次の命令を命令列記憶部25から取り出し、その命令を不揮発性メモリ4に書き込むという処理(S603、S602)を繰り返し行い、命令列記憶部25に格納されている実行順が最後の命令を取り出して次の命令がなくなると(S604がYes)、障害再現プログラム5の障害再現部52が完成したことになるので、処理を終了する。   Referring to FIG. 6, the program generation unit 27 first reads the instruction with the earliest execution order from the instructions stored in the instruction sequence storage unit 25 (S601) and stores it in the nonvolatile memory 4 (S602). ). Thereafter, the program generation unit 27 repeatedly performs processing (S603, S602) of fetching the next instruction in the execution order from the instruction sequence storage unit 25 and writing the instruction to the nonvolatile memory 4, and stores the instruction in the instruction sequence storage unit 25. When the last instruction in the executed execution order is taken out and there is no next instruction (Yes in S604), the failure reproduction unit 52 of the failure reproduction program 5 is completed, and thus the process is terminated.

次に、図7及び図8を参照して、不揮発性メモリ4に格納されている障害再現プログラム5を利用して障害を再現させる場合の動作について説明する。   Next, with reference to FIG. 7 and FIG. 8, the operation in the case of reproducing a fault using the fault reproduction program 5 stored in the nonvolatile memory 4 will be described.

先ず、不揮発性メモリ4に格納されている障害再現プログラム5を、ブートイメージでフレキシブルディスク等の外部記憶装置6に書き込む(図7のS701、図8のS801)。なお、図8においてはブートイメージで書き込まれた障害再現プログラムを障害再現プログラム5aとして表している。それから、障害再現プログラム5aを読み出すブートローダ7を外部記憶装置6上に作成する(図7のS702、図8のS802)。なお、予め外部記憶装置6上にブートローダ7を作成しておき、ブートローダ7が作成済みの外部記憶装置6に障害再現プログラム5をブートイメージで書き込むようにしても良い。   First, the failure reproduction program 5 stored in the nonvolatile memory 4 is written in the external storage device 6 such as a flexible disk as a boot image (S701 in FIG. 7 and S801 in FIG. 8). In FIG. 8, the failure reproduction program written in the boot image is represented as the failure reproduction program 5a. Then, the boot loader 7 for reading the failure reproduction program 5a is created on the external storage device 6 (S702 in FIG. 7 and S802 in FIG. 8). Alternatively, the boot loader 7 may be created on the external storage device 6 in advance, and the failure reproduction program 5 may be written as a boot image in the external storage device 6 that has been created by the boot loader 7.

その後、外部記憶装置6を計算機1に接続し(図7のS703、図8の803)、計算機1を再起動する(図7の704、図8の804)。なお、外部記憶装置6は、ブートに使用できるデバイスの内、最も優先順位が高いデバイスであるとする。   Thereafter, the external storage device 6 is connected to the computer 1 (S703 in FIG. 7, 803 in FIG. 8), and the computer 1 is restarted (704 in FIG. 7, 804 in FIG. 8). It is assumed that the external storage device 6 is the highest priority device among the devices that can be used for booting.

これにより、計算機1は、優先順位が最も高い外部記憶装置6からブートローダ7を読み込んで実行し、更に、このブートローダ7により障害再現プログラム5aを読み込んで実行する(図7のS705、図8のS805、S806)。   Thereby, the computer 1 reads and executes the boot loader 7 from the external storage device 6 having the highest priority, and further reads and executes the failure reproduction program 5a by this boot loader 7 (S705 in FIG. 7 and S805 in FIG. 8). , S806).

障害再現プログラム5aが実行されると、先ず、状態復元部51によって計算機1のレジスタR1〜RN及び主記憶装置3の状態が、命令列記憶部25に格納されている最古の命令の実行時の状態まで戻され、その後、障害再現部52によって障害が再現される。   When the fault reproduction program 5a is executed, first, the state restoration unit 51 causes the registers R1 to RN of the computer 1 and the state of the main storage device 3 to be executed when the oldest instruction stored in the instruction sequence storage unit 25 is executed. After that, the failure reproduction unit 52 reproduces the failure.

なお、上述した説明では、不揮発性メモリ4に格納されている障害再現プログラム5を一旦外部記憶装置6にブートイメージとして書き込み、外部記憶装置6上にブートローダ7を作成するようにしたが、障害再現プログラム5が格納されている不揮発性メモリ4上にブートローダ7を作成し、計算機1の再起動時に、不揮発性メモリ4に格納されているブートローダ7を読み込み、このブートローダ7より不揮発性メモリ4から障害再現プログラム5を読み込み実行する構成としても良い。   In the above description, the failure reproduction program 5 stored in the nonvolatile memory 4 is once written as a boot image in the external storage device 6 and the boot loader 7 is created on the external storage device 6. A boot loader 7 is created on the non-volatile memory 4 in which the program 5 is stored, and when the computer 1 is restarted, the boot loader 7 stored in the non-volatile memory 4 is read. The reproduction program 5 may be read and executed.

〔実施例の具体例〕
次に、具体例を挙げてプログラム生成部27の動作を説明する。今、例えば、命令列記憶部25、データ列記憶部26の内容が図9に示すものであったとする。なお、図9において、R*はレジスタを表し、Mem[x]は主記憶装置3のアドレスxを表している。また、順番1〜6は命令の実行順を示すものであり、実行順を示す数字が小さい命令ほど、実行順が前の命令である。
[Specific Examples]
Next, the operation of the program generation unit 27 will be described with a specific example. For example, assume that the contents of the instruction string storage unit 25 and the data string storage unit 26 are as shown in FIG. In FIG. 9, R * represents a register, and Mem [x] represents the address x of the main storage device 3. Orders 1 to 6 indicate the execution order of instructions, and instructions having a smaller number indicating the execution order are instructions having the previous execution order.

プログラム生成部27は、障害再現プログラム5の状態復元部51を生成するため、命令列記憶部25、データ列記憶部26に格納されている命令、関連データを、実行順が後の命令(実行順を示す数字が大きい命令)から順番に読み込み、次のような処理を行う。   In order to generate the state restoration unit 51 of the failure reproduction program 5, the program generation unit 27 executes the instructions stored in the instruction sequence storage unit 25 and the data sequence storage unit 26 and the related data with the instructions in the later execution order (execution) Instructions with the highest order number) are read in order, and the following processing is performed.

・順番6の命令(分岐命令)及び関連データを読み込んだ場合の動作
ステップS503において、関連データ「R1=0」に基づいて、レジスタR1に0を書き込む命令を生成し、生成した命令を不揮発性メモリ4に格納する。ステップS507において分岐条件からR5=101と推測し、ステップS513において、レジスタR5に推測した値「101」を書き込む命令を生成し、不揮発性メモリ4に格納する。
Operation when order 6 instruction (branch instruction) and related data are read In step S503, based on the related data “R1 = 0”, an instruction to write 0 to the register R1 is generated, and the generated instruction is nonvolatile. Store in memory 4. In step S507, it is estimated that R5 = 101 from the branch condition. In step S513, an instruction to write the estimated value “101” in the register R5 is generated and stored in the nonvolatile memory 4.

・順番5の命令(OR命令)及び関連データを読み込んだ場合の動作
ステップS503において、関連データ「R3=4」に基づいて、レジスタR3に4を書き込む命令を生成し、生成した命令を不揮発性メモリ4に格納する。ステップS507において、OR命令の右辺に基づいてR4=4、R6=0と推測し、ステップS513において、レジスタR4に4を書き込む命令と、レジスタR6に0を書き込む命令とを生成し、それらを不揮発性メモリ4に格納する。
Operation when order 5 instruction (OR instruction) and related data are read In step S503, an instruction to write 4 to the register R3 is generated based on the related data “R3 = 4”, and the generated instruction is nonvolatile. Store in memory 4. In step S507, it is estimated that R4 = 4 and R6 = 0 based on the right side of the OR instruction. In step S513, an instruction to write 4 to the register R4 and an instruction to write 0 to the register R6 are generated, and these are nonvolatile. Stored in the memory 4.

・順番4の命令(左2シフト命令)及び関連データを読み込んだ場合の動作
ステップS503において、関連データ「R4=4」に基づいて、レジスタR4に4を書き込む命令を生成し、生成した命令を不揮発性メモリ4に格納する。ステップS507において、シフト命令の右辺からR3=1と推測し、ステップS513において、レジスタR3に1を書き込む命令を生成し、不揮発性メモリ4に格納する。
Operation when order 4 instruction (left 2 shift instruction) and related data are read In step S503, an instruction to write 4 to the register R4 is generated based on the related data “R4 = 4”. Store in the nonvolatile memory 4. In step S507, it is estimated that R3 = 1 from the right side of the shift instruction, and in step S513, an instruction to write 1 to the register R3 is generated and stored in the nonvolatile memory 4.

・順番3の命令(メモリロード命令)及び関連データを読み込んだ場合の動作
ステップS503において、関連データ「Mem[2000]=1」に基づいて、主記憶装置3の2000番地に1を書き込む命令を生成して不揮発性メモリ4に格納する。ステップS507において、ロード先のレジスタR3に書き込む値を1と推測し、ステップS513においてレジスタR3に1を書き込む命令を生成して不揮発性メモリ4に格納する。
Operation in the case of reading an instruction of order 3 (memory load instruction) and related data In step S503, an instruction to write 1 to address 2000 of the main storage device 3 based on the related data “Mem [2000] = 1”. It is generated and stored in the nonvolatile memory 4. In step S507, the value to be written to the load destination register R3 is estimated to be 1, and an instruction to write 1 to the register R3 is generated and stored in the nonvolatile memory 4 in step S513.

・順番2の命令(メモリストア命令)及び関連データを読み込んだ場合の動作
ステップS503において、関連データ「R2=20」に基づいて、レジスタR2に20を書き込む命令を生成し、生成した命令を不揮発性メモリ4に格納する。ステップS504において、このメモリストア命令に対応する関連データはレジスタR2の値を示し、且つその値は、当該メモリストア命令の実行以前に一意に決まるものであると判定されるので、ステップS505において、レジスタR2に対応する一意フラグF2を“1”にする。ステップS507において、Mem[1000]の値を20と推測し、ステップS513において、Mem[1000]に20を書き込む命令を生成して不揮発性メモリ4に格納する。
Operation when reading order 2 instruction (memory store instruction) and related data In step S503, based on related data “R2 = 20”, an instruction to write 20 to register R2 is generated, and the generated instruction is nonvolatile. Stored in the memory 4. In step S504, the related data corresponding to the memory store instruction indicates the value of the register R2, and it is determined that the value is uniquely determined before the execution of the memory store instruction. Therefore, in step S505, The unique flag F2 corresponding to the register R2 is set to “1”. In step S507, the value of Mem [1000] is estimated to be 20. In step S513, an instruction to write 20 to Mem [1000] is generated and stored in the nonvolatile memory 4.

・順番1の命令(足し算命令)及び関連データを読み込んだ場合の動作
ステップS503において、関連データ「R1=100」に基づいて、レジスタR1に100を書き込む命令を生成し、生成した命令を不揮発性メモリ4に格納する。ステップS507において、レジスタR2、R3の値をそれぞれ例えば0、100と推測する(この推測値は、後述するように利用されない)。ステップS511において推測対象のレジスタR3の値は、一意フラグが“1”となっているレジスタR2の値によって一意に決定できると判定されるので、ステップS512において、関連データ「R1=100」によって示されるレジスタR1の値100と、一意フラグが“1”となっているレジスタR2の値「20」とからレジスタR3の値を「80」と一意に決定し、レジスタR3に80を書き込む命令を生成して不揮発性メモリ4に格納する。また、ステップS512においては、レジスタR3に対応する一意フラグF3を“1”にする処理も行われる。なお、レジスタR2の値「20」は、不揮発性メモリ4に格納されている、レジスタR2に対する書き込み命令の内、最も書き込み順が新しい命令から取得することができる。
-Operation when reading an instruction of order 1 (addition instruction) and related data In step S503, an instruction to write 100 to the register R1 is generated based on the related data “R1 = 100”, and the generated instruction is nonvolatile. Store in memory 4. In step S507, the values of the registers R2 and R3 are estimated to be 0 and 100, for example (this estimated value is not used as will be described later). In step S511, since it is determined that the value of the register R3 to be estimated can be uniquely determined by the value of the register R2 whose unique flag is “1”, the value is indicated by the related data “R1 = 100” in step S512. The register R1 value 100 and the register R2 value “20” with the unique flag “1” are determined to uniquely determine the value of the register R3 as “80”, and an instruction to write 80 to the register R3 is generated. And stored in the nonvolatile memory 4. In step S512, the unique flag F3 corresponding to the register R3 is also set to “1”. Note that the value “20” of the register R2 can be obtained from an instruction stored in the nonvolatile memory 4 and having the newest writing order among the writing instructions to the register R2.

以上の処理により、障害再現プログラム5の状態復元部51が生成される。   With the above processing, the state restoration unit 51 of the failure reproduction program 5 is generated.

その後、プログラム生成部27は、障害再現プログラム5の障害再現部52を生成するため、命令列記憶部25に格納されている命令(順番1〜6の命令)を、実行順を示す数字が小さなものから順に、不揮発性メモリ4に格納する(図6参照)。これにより、実行順が古い命令から順次実行する障害再現部52が完成する。   Thereafter, the program generation unit 27 generates the failure reproduction unit 52 of the failure reproduction program 5, and therefore the instructions (instructions 1 to 6) stored in the instruction sequence storage unit 25 have a small number indicating the execution order. The data are stored in the non-volatile memory 4 in order from the one (see FIG. 6). As a result, the failure reproduction unit 52 that executes sequentially from the instruction having the oldest execution order is completed.

〔実施例の効果〕
本実施例によれば、障害によりOSが起動できなくなった場合においても障害を再現することが可能になるという効果を得ることができる。その理由は、プログラム生成部27で生成された障害再現プログラム5を起動するブートローダ7を備えているからである。
[Effects of Examples]
According to the present embodiment, it is possible to obtain an effect that the failure can be reproduced even when the OS cannot be started due to the failure. This is because the boot loader 7 for starting the failure reproduction program 5 generated by the program generation unit 27 is provided.

また、本実施例では、プログラム生成部27が、自計算機1のレジスタR1〜RN、主記憶装置3の状態を障害発生前の状態に戻すための状態復元部51を含んだ障害再現プログラム5を生成するようにしているので、障害再現プログラム5を実行することにより、レジスタR1〜RN、主記憶装置3の状態を障害発生前の状態に戻すことができる。この結果、信号線間のクロストークエラーなどのようなパターン変化に依存した障害も高い確率で再現することが可能になる。   In the present embodiment, the program generation unit 27 includes the failure reproduction program 5 including the registers R1 to RN of the own computer 1 and the state restoration unit 51 for returning the state of the main storage device 3 to the state before the failure occurred. Therefore, by executing the failure reproduction program 5, the states of the registers R1 to RN and the main storage device 3 can be returned to the state before the failure occurred. As a result, it is possible to reproduce a failure depending on a pattern change such as a crosstalk error between signal lines with a high probability.

更に、本実施例では、不可逆演算を行う計算機1のレジスタおよび主記憶装置の状態を障害発生前の状態に戻すために、自計算機1で実行された命令が更新および参照しているレジスタおよび主記憶装置に関するデータの内の一部のデータを関連データとしてデータ列記憶部26に書き込み、残りのデータは、関連データ及び対応する命令から推測するようにしているので、データ列記憶部26の容量を少なくすることができる。   Further, in this embodiment, in order to return the state of the register of the computer 1 that performs irreversible operation and the state of the main memory to the state before the occurrence of the failure, the register and the main that are updated and referred to by the instruction executed in the own computer 1 A part of the data related to the storage device is written in the data string storage unit 26 as related data, and the remaining data is estimated from the related data and the corresponding instruction. Can be reduced.

また、本実施例は、推測したデータを書き込む命令の書き込み先が、一意フラグによってその値が一意に確定していることが表示されているレジスタである場合は、上記命令を不揮発性メモリ4に格納しないようにしているので、レジスタR1〜RN、主記憶装置3の状態を正確に復元することができる。   Further, in the present embodiment, when the write destination of the instruction to write the estimated data is a register indicating that the value is uniquely determined by the unique flag, the instruction is stored in the nonvolatile memory 4. Since they are not stored, the states of the registers R1 to RN and the main storage device 3 can be accurately restored.

本発明は、サーバ、PCといった様々な計算機の障害原因を究明するために利用できる。   The present invention can be used to investigate the cause of failures in various computers such as servers and PCs.

本発明にかかる計算機1の実施例のブロック図である。It is a block diagram of the Example of the computer 1 concerning this invention. 命令列記憶部25を説明するための図である。4 is a diagram for explaining an instruction sequence storage unit 25. FIG. 障害再現プログラム5の構成例を示す図である。It is a figure which shows the structural example of the failure reproduction program 5. FIG. プログラム生成部27の構成例を示すブロック図である。3 is a block diagram illustrating a configuration example of a program generation unit 27. FIG. プログラム生成部27が障害再現プログラム5の状態復元部51を生成する際の処理例を示すフローチャートである。10 is a flowchart illustrating a processing example when the program generation unit 27 generates a state restoration unit 51 of the failure reproduction program 5. プログラム生成部27が障害再現プログラム5の障害再現部52を生成する際の処理例を示すフローチャートである。7 is a flowchart illustrating a processing example when the program generation unit 27 generates a failure reproduction unit 52 of the failure reproduction program 5. 障害再現プログラム5を用いて障害を再現させる場合の動作を示したフローチャートである。7 is a flowchart showing an operation when a failure is reproduced using the failure reproduction program 5. 障害再現プログラム5を用いて障害を再現する場合の動作を説明するための図である。It is a figure for demonstrating the operation | movement in the case of reproducing a failure using the failure reproduction program 5. 命令列記憶部25、データ列記憶部26の内容例を示す図である。It is a figure which shows the example of the content of the instruction sequence memory | storage part 25 and the data sequence memory | storage part 26. FIG.

符号の説明Explanation of symbols

1…計算機
2…プロセッサ
21…命令レジスタ
22…デコーダ
23…演算回路
24…障害検出回路
25…命令列記憶部
251…書き込み手段
252…記憶部
26…データ列記憶部
27…プログラム生成部
R1〜RN…レジスタ
271…デコーダ
272…セレクタ
273…一意フラグ記憶部
274…推測部
275…セレクタ
3…主記憶装置
4…不揮発性メモリ
5、5a…障害再現プログラム
51…状態復元部
52…障害再現部
6…外部記憶装置
7…ブートローダ
DESCRIPTION OF SYMBOLS 1 ... Computer 2 ... Processor 21 ... Instruction register 22 ... Decoder 23 ... Operation circuit 24 ... Fault detection circuit 25 ... Instruction sequence memory | storage part 251 ... Writing means 252 ... Memory | storage part 26 ... Data sequence memory | storage part 27 ... Program generation part R1-RN ... Register 271 ... Decoder 272 ... Selector 273 ... Unique flag storage unit 274 ... Inference unit 275 ... Selector 3 ... Main storage device 4 ... Non-volatile memory 5, 5a ... Failure reproduction program 51 ... State restoration unit 52 ... Failure reproduction unit 6 ... External storage device 7 ... boot loader

Claims (12)

自計算機において命令が実行される毎に、実行された命令が書き込まれ、自計算機に障害が発生したとき、命令の書き込みを禁止する命令列記憶部と、
前記命令列記憶部に格納されている命令に基づいて、前記障害を再現するための障害再現部を含んだ障害再現プログラムを生成するプログラム生成部と、
該プログラム生成部で生成された障害再現プログラムを起動するブートローダとを備えたことを特徴とする計算機。
Each time an instruction is executed in the own computer, the executed instruction is written, and when a failure occurs in the own computer, an instruction string storage unit that prohibits writing of the instruction;
A program generation unit that generates a failure reproduction program including a failure reproduction unit for reproducing the failure based on an instruction stored in the instruction sequence storage unit;
A computer comprising: a boot loader that activates the fault reproduction program generated by the program generation unit.
請求項1記載の計算機において、
自計算機において命令が実行される毎に、実行された命令に関連する関連データが書き込まれ、自計算機に障害が発生したとき、関連データの書き込みを禁止するデータ列記憶部を備え、且つ、
前記障害再現プログラムが、前記障害再現部に加えて、自計算機のレジスタおよび主記憶装置の状態を障害発生前の状態に戻すための状態復元部を含み、
前記プログラム生成部が、前記データ列記憶部に格納されている関連データに基づいて、前記状態復元部を生成することを特徴とする計算機。
The computer according to claim 1, wherein
Each time an instruction is executed in the own computer, related data related to the executed instruction is written, and when a failure occurs in the own computer, a data string storage unit is provided to prohibit writing of the related data, and
The failure reproduction program includes, in addition to the failure reproduction unit, a state restoration unit for returning the state of the register of the own computer and the main storage device to the state before the occurrence of the failure,
The computer, wherein the program generation unit generates the state restoration unit based on related data stored in the data string storage unit.
請求項1または2記載の計算機において、
前記障害再現部は、前記命令列記憶部に格納されている命令を、実行順が古いものから順番に配置することにより構成されることを特徴とする計算機。
The computer according to claim 1 or 2,
The computer according to claim 1, wherein the fault reproduction unit is configured by arranging instructions stored in the instruction sequence storage unit in order from the oldest execution order.
請求項2または3記載の計算機において、
前記データ列記憶部が、自計算機で実行された命令が更新および参照しているレジスタおよび主記憶装置に関するデータであって、更新および参照している値と更新および参照位置とを含んだデータの内の一部のデータを関連データとして記憶し、
前記プログラム生成部が、前記命令列記憶部に格納されている命令と、前記データ列記憶部に格納されている関連データとに基づいて、前記命令列記憶部に格納されている命令によって更新および参照対象にされているレジスタおよび主記憶装置の内、前記データ列記憶部に格納されている関連データによって値が特定できるものについては、その値を書き戻す書き戻し命令を生成し、特定できないものについては、その値を推測して推測したデータを書き戻す書き戻し命令を生成し、該生成した書き戻し命令を、実行順が古い命令に対応するものから順番に前記状態復元部に配置することを特徴とする計算機。
The computer according to claim 2 or 3,
The data string storage unit is data related to a register and a main storage device that are updated and referred to by an instruction executed by the own computer, and includes data that is updated and referred to, and an update and reference position. Part of the data is stored as related data,
The program generation unit is updated by an instruction stored in the instruction sequence storage unit based on an instruction stored in the instruction sequence storage unit and related data stored in the data sequence storage unit. Of the registers and main storage devices to be referred to, those for which the value can be specified by the related data stored in the data string storage unit generate a write-back instruction to write back the value and cannot be specified For the above, a write-back instruction for estimating the value and writing back the estimated data is generated, and the generated write-back instruction is arranged in the state restoration unit in order from the instruction corresponding to the instruction having the oldest execution order. A computer characterized by
請求項4記載の計算機において、
レジスタの値が一意に確定しているか否かを表示する、レジスタ毎の一意フラグを備え、
前記プログラム生成部が、推測した値を書き戻す書き戻し命令の書き戻し先が、一意フラグによって値が一意に確定していることが表示されているレジスタである場合は、前記書き戻し命令を前記状態復元部に配置しないことを特徴とする計算機。
The computer according to claim 4, wherein
It has a unique flag for each register that displays whether the value of the register is uniquely determined,
When the program generation unit is a register in which the write-back destination of the write-back instruction to write back the estimated value is a register that indicates that the value is uniquely determined by a unique flag, the write-back instruction is A computer that is not arranged in the state restoration unit.
自計算機において命令が実行される毎に、実行された命令を命令列記憶部に書き込む第1のステップと、
自計算機において障害が発生したとき、前記命令列記憶部に対する命令の書き込みを禁止する第2のステップと、
前記命令列記憶部に格納されている命令に基づいて、前記障害を再現するための障害再現部を含んだ障害再現プログラムを生成する第3のステップと、
該第3のステップで生成された障害再現プログラムをブートローダにより起動する第4のステップとを含むことを特徴とする障害再現方法。
A first step of writing the executed instruction to the instruction sequence storage unit each time an instruction is executed in the own computer;
A second step of prohibiting writing of instructions to the instruction sequence storage unit when a failure occurs in the own computer;
A third step of generating a failure reproduction program including a failure reproduction unit for reproducing the failure based on an instruction stored in the instruction sequence storage unit;
And a fourth step of starting the fault reproduction program generated in the third step by a boot loader.
請求項6記載の障害再現方法において、
自計算機において命令が実行される毎に、実行された命令に関する関連データをデータ列記憶部に書き込む第5のステップと、
自計算機において障害が発生したとき、前記データ列記憶部に対する関連データの書き込みを禁止する第6のステップとを含み、且つ、
前記障害再現プログラムが、前記障害再現部に加えて、自計算機のレジスタおよび主記憶装置の状態を障害発生前の状態に戻すための状態復元部を含み、
前記第3のステップが、前記データ列記憶部に格納されている関連データに基づいて、前記状態復元部を生成することを特徴とする障害再現方法。
The failure reproduction method according to claim 6,
A fifth step of writing related data relating to the executed instruction to the data string storage unit each time the instruction is executed in the own computer;
And a sixth step for prohibiting writing of related data to the data string storage unit when a failure occurs in the own computer, and
The failure reproduction program includes, in addition to the failure reproduction unit, a state restoration unit for returning the state of the register of the own computer and the main storage device to the state before the occurrence of the failure,
The failure reproduction method, wherein the third step generates the state restoration unit based on related data stored in the data string storage unit.
請求項6または7記載の障害再現方法において、
前記障害再現部は、前記命令列記憶部に格納されている命令を、実行順が古いものから順番に配置することにより構成されることを特徴とする障害再現方法。
The failure reproduction method according to claim 6 or 7,
The failure reproduction method is configured by arranging the instructions stored in the instruction string storage unit in order from the oldest execution order.
請求項7または8記載の障害再現方法において、
前記第5のステップでは、自計算機で実行された命令が更新および参照しているレジスタおよび主記憶装置に関するデータであって、更新および参照している値と更新および参照位置とを含んだデータの内の一部のデータを関連データとして記憶し、
前記第3のステップでは、前記命令列記憶部に格納されている命令と、前記データ列記憶部に格納されている関連データとに基づいて、前記命令列記憶部に格納されている命令によって更新および参照対象にされているレジスタおよび主記憶装置の内、前記データ列記憶部に格納されている関連データによって値が特定できるものについては、その値を書き戻す書き戻し命令を生成し、特定できないものについては、その値を推測して推測したデータを書き戻す書き戻し命令を生成し、該生成した書き戻し命令を、実行順が古い命令に対応するものから順番に前記状態復元部に配置することを特徴とする障害再現方法。
The failure reproduction method according to claim 7 or 8,
In the fifth step, data relating to a register and a main storage device that are updated and referred to by an instruction executed by the own computer, including data that is updated and referred to, and an update and reference position Part of the data is stored as related data,
In the third step, updating is performed by an instruction stored in the instruction sequence storage unit based on an instruction stored in the instruction sequence storage unit and related data stored in the data sequence storage unit Among the registers and main storage devices to be referred to, those for which the value can be specified by the related data stored in the data string storage unit generate a write-back instruction to write back the value, and cannot be specified For a thing, a write-back instruction for writing back the estimated data by guessing its value is generated, and the generated write-back instruction is arranged in the state restoration unit in order from the instruction corresponding to the instruction whose execution order is old. The failure reproduction method characterized by this.
請求項9記載の障害再現方法において、
前記計算機が、レジスタの値が一意に確定しているか否かを表示する、レジスタ毎の一意フラグを備え、
前記第3のステップでは、推測した値を書き戻す書き戻し命令の書き戻し先が、一意フラグによって値が一意に確定していることが表示されているレジスタである場合は、前記書き戻し命令を前記状態復元部に配置しないことを特徴とする障害再現方法。
The failure reproduction method according to claim 9,
The calculator includes a unique flag for each register that displays whether the value of the register is uniquely determined,
In the third step, when the write back destination of the write back instruction to write back the estimated value is a register indicating that the value is uniquely determined by the unique flag, the write back instruction is A failure reproduction method characterized by not being arranged in the state restoration unit.
コンピュータに、自コンピュータにおいて命令が実行される毎に、実行された命令を命令列記憶部に書き込む第1のステップと、
前記コンピュータに、自コンピュータにおいて障害が発生したとき、前記命令列記憶部に対する命令の書き込みを禁止する第2のステップと、
前記コンピュータに、前記命令列記憶部に格納されている命令に基づいて、前記障害を再現するための障害再現部を含んだ障害再現プログラムを生成する第3のステップと、
前記コンピュータに、前記第3のステップで生成された障害再現プログラムをブートローダにより起動する第4のステップとを実行させるためのプログラム。
A first step of writing the executed instruction to the instruction sequence storage unit in the computer each time the instruction is executed in the computer;
A second step of prohibiting writing of an instruction to the instruction sequence storage unit when a failure occurs in the computer;
A third step of generating, on the computer, a failure reproduction program including a failure reproduction unit for reproducing the failure based on an instruction stored in the instruction sequence storage unit;
A program for causing the computer to execute a fourth step of starting the fault reproduction program generated in the third step by a boot loader.
請求項11記載のプログラムにおいて、
前記コンピュータに、自コンピュータにおいて命令が実行される毎に、実行された命令に関する関連データをデータ列記憶部に書き込む第5のステップと、
前記コンピュータに、自コンピュータにおいて障害が発生したとき、前記データ列記憶部に対する関連データの書き込みを禁止する第6のステップとを実行させ、且つ、
前記障害再現プログラムが、前記障害再現部に加えて、自計算機のレジスタおよび主記憶装置の状態を障害発生前の状態に戻すための状態復元部を含み、
前記第3のステップが、前記データ列記憶部に格納されている関連データに基づいて、前記状態復元部を生成することを特徴とするプログラム。
The program according to claim 11, wherein
A fifth step of writing relevant data relating to the executed instruction to the data string storage unit each time an instruction is executed in the computer;
Causing the computer to execute a sixth step of prohibiting writing of related data to the data string storage unit when a failure occurs in the computer; and
The failure reproduction program includes, in addition to the failure reproduction unit, a state restoration unit for returning the state of the register of the own computer and the main storage device to the state before the occurrence of the failure,
The program in which the third step generates the state restoration unit based on related data stored in the data string storage unit.
JP2007283348A 2007-10-31 2007-10-31 Computer, failure reproduction method and program Expired - Fee Related JP4872883B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007283348A JP4872883B2 (en) 2007-10-31 2007-10-31 Computer, failure reproduction method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007283348A JP4872883B2 (en) 2007-10-31 2007-10-31 Computer, failure reproduction method and program

Publications (2)

Publication Number Publication Date
JP2009110375A JP2009110375A (en) 2009-05-21
JP4872883B2 true JP4872883B2 (en) 2012-02-08

Family

ID=40778786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007283348A Expired - Fee Related JP4872883B2 (en) 2007-10-31 2007-10-31 Computer, failure reproduction method and program

Country Status (1)

Country Link
JP (1) JP4872883B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5545761B2 (en) * 2011-02-03 2014-07-09 Necシステムテクノロジー株式会社 Failure analysis support system, failure analysis support method, and failure analysis support program
JP7068912B2 (en) * 2018-04-25 2022-05-17 三菱電機株式会社 Information processing equipment, equipment, defect analysis system, defect analysis method and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62210551A (en) * 1986-03-11 1987-09-16 Fujitsu Ltd Microprogram tracing device
JP3379675B2 (en) * 1995-06-21 2003-02-24 沖電気工業株式会社 Reverse execution debugging system

Also Published As

Publication number Publication date
JP2009110375A (en) 2009-05-21

Similar Documents

Publication Publication Date Title
JP5735338B2 (en) Memory buffer with accessible information after program fail
JP2010165251A (en) Information processing device, processor, and information processing method
JP2010224845A (en) Storage device
JP2004127274A (en) Raid controller and data storage system management method
WO2014158156A1 (en) Storing data from cache lines to main memory based on memory addresses
TW200839779A (en) Method and apparatus of cache assisted error detection and correction in memory
CN107562578B (en) A snapshot creation method, device, device and storage medium for storing data
CN106339284A (en) Checkpointing a shift register
CN113608695A (en) Data processing method, system, device and medium
JP5286796B2 (en) Memory control device
JP4872883B2 (en) Computer, failure reproduction method and program
JP4865016B2 (en) Processor
KR101969799B1 (en) Electronic device and controlling method thereof
US9594792B2 (en) Multiple processor system
KR20210086430A (en) Data writing method, device, and electronic equipment
JP2007041665A (en) Ecc functional test circuit and ecc functional test method
CN102479116A (en) A method and device for viewing code information when the system is abnormal
US20070079109A1 (en) Simulation apparatus and simulation method
WO2015162717A1 (en) Computer
JP2006003971A (en) Redundant drive group, and writing method and read-out method using the same
JP4471947B2 (en) Data processing apparatus and data processing method
US10691421B2 (en) Embedded designer framework and embedded designer implementation
CN107797885B (en) Electronic equipment and control method thereof
WO2015170454A1 (en) Memory control device, memory device and memory control method
JP4648097B2 (en) Registry information repair method and information processing apparatus

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20091008

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20091008

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111019

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111107

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4872883

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees