JP2013109532A - Device, method and program for diagnosis and restoration - Google Patents
Device, method and program for diagnosis and restoration Download PDFInfo
- Publication number
- JP2013109532A JP2013109532A JP2011253301A JP2011253301A JP2013109532A JP 2013109532 A JP2013109532 A JP 2013109532A JP 2011253301 A JP2011253301 A JP 2011253301A JP 2011253301 A JP2011253301 A JP 2011253301A JP 2013109532 A JP2013109532 A JP 2013109532A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- collation
- application
- repair
- 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.)
- Pending
Links
Images
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、診断修復装置、診断修復方法、及び診断修復プログラムに係り、特に、メモリを用いたデータ処理の安全性及び継続性を向上させるための診断修復装置、診断修復方法、及び診断修復プログラムに関する。 The present invention relates to a diagnostic repair device, a diagnostic repair method, and a diagnostic repair program, and in particular, a diagnostic repair device, a diagnostic repair method, and a diagnostic repair program for improving the safety and continuity of data processing using a memory. About.
従来では、例えば放射線等により生じるデータ処理後の一過性のソフトエラー現象を減少させるため、メモリ(以下、必要に応じて「メモリ装置」という)に格納された処理後のデータに対して診断を行う技術が存在する。ここで、ソフトエラーとは、例えばメモリである半導体チップの一部が壊れる等の不良(ハードエラー)ではなく、記憶しておいたデータの一部だけが反転してしまう等の不良を意味する。このようなソフトエラーは、例えばアルファ線や中性子線、陽子線、重イオン線等の粒子線が半導体チップに突入することで引き起こされ、また粒子線が半導体チップを通過する時間は極めて短く、ほんの一瞬である等の特徴が知られている。また、ソフトエラーは、プリント板の細密化により発生しやすくなる。 Conventionally, in order to reduce a transient soft error phenomenon after data processing caused by, for example, radiation, diagnosis is performed on data after processing stored in a memory (hereinafter referred to as “memory device” if necessary). There are technologies to do this. Here, the soft error means not a defect (hard error) such as a part of a semiconductor chip that is a memory being broken, but a defect such that only a part of stored data is inverted. . Such soft errors are caused by particle beams such as alpha rays, neutron beams, proton beams, heavy ion beams entering the semiconductor chip, and the time for the particle beam to pass through the semiconductor chip is extremely short. Features such as being instantaneous are known. Also, soft errors are likely to occur due to the densification of the printed board.
ここで、従来では、例えばリアルタイムに読み書きするメモリにおけるソフトエラーの修復に関して、メモリ素子をリセットしたり、リライト(再書き込み)したりすることによって正常な動作に戻すことができることが知られている(例えば、非特許文献1参照)。また、非特許文献1では、ソフトエラー対策として、誤り訂正符号(以下、「ECC」(Error Correction Code)という)の検出において、チェック情報である単一ビット或いは2ビット以上が変化したのを調べたり、単一ビットだけが変化したかを決定し、そのビットを補数値に反転させることによってデータを訂正したりすることが示されている。また、既存のインターリーブ方式とECCとの併用も示されている。
Here, conventionally, it is known that, for example, soft error recovery in a memory that reads and writes in real time can be returned to a normal operation by resetting or rewriting (rewriting) the memory element ( For example, refer nonpatent literature 1). Further, in Non-Patent
また、従来では、予め正データとその反転データを保存しておき、データアクセス時のパリティチェック等で異常を検出した場合に、その反転データを利用する手法が知られている(例えば、特許文献1参照)。また、従来では、予め正データとその反転データとチェックコードとを格納しておき、マスターキーを抜く時点等のデータを監視して修復する手法が知られている。更に、従来では、ソフトウェアエラーが生じた場合に、そのソフトウェアの実行時に使用したハードウェアであるCPU(Central Processing Unit)やメモリに対して診断を行う手法が知られている(例えば、非特許文献2参照)。 Conventionally, there is known a technique of storing positive data and its inverted data in advance and using the inverted data when an abnormality is detected by a parity check or the like at the time of data access (for example, Patent Documents). 1). Conventionally, a method is known in which positive data, its inverted data, and a check code are stored in advance, and data such as a point in time when the master key is removed is monitored and restored. Further, conventionally, when a software error occurs, a method for diagnosing a CPU (Central Processing Unit) or a memory that is hardware used when executing the software is known (for example, non-patent document). 2).
しかしながら、リアルタイムに読み書きするメモリにおいて、非特許文献1に示されているような複雑なECCを搭載するには、ハードウェアコストが増大してしまう。また、非特許文献1に示されている手法では、インターリーブ等の特殊な方式と併用しないと2ビット以上のデータ修正ができない。また、ECCの検出では、エラーを発生したメモリへの再書き込みを行わないため、メモリのソフトエラー修復ができない。
However, mounting a complex ECC such as that shown in
また、従来のソフトエラーの診断は、特定のタイミング又は定期的に行われる。したがって、従来では、実際に所定の処理を行うためにメモリを読むタイミングと、診断するためにメモリを読むタイミングとが異なり、処理するデータを読み込んだタイミングでソフトエラーを検出・修復できない可能性がある。つまり、ソフトエラーの診断では、エラー検出修復タイミングと、処理に使用するためのメモリ読み込みタイミングとが同時であり、エラー検出・修復したデータを用いて処理をする必要がある。 Further, the conventional soft error diagnosis is performed at a specific timing or periodically. Therefore, conventionally, the timing of reading the memory to actually perform the predetermined processing is different from the timing of reading the memory for diagnosis, and there is a possibility that the soft error cannot be detected and repaired at the timing of reading the data to be processed. is there. That is, in the diagnosis of the soft error, the error detection / recovery timing and the memory read timing for use in the processing are simultaneous, and it is necessary to perform processing using the data detected and repaired.
また、特許文献1に示されているような方法は、メモリを取り出す時にエラーを検出するが、その検出方法が不明確である。例えば、特許文献1には、パリティチェックの記載があるが、パリティチェックではエラー検出能力が低い。また、特許文献1の手法では、エラーが発生したメモリへの再書き込みを行わないため、メモリのソフトエラーの修復ができない。
Further, the method as disclosed in
また、特許文献2に示されているような手法は、監視する時期が指定されておらず、所定の処理を行う場合に使用するタイミングでメモリのソフトエラーを検出することができず、エラーデータで処理する可能性があり、データの信頼性を担保できない。
In addition, the method as disclosed in
また、特許文献2に示されている手法では、対象がEPROM(Erasable Programmable Read Only Memory),EEPROM(Electrically Erasable Programmable Read−Only Memory)を想定しており、RAM(Random Access Memory)についてのソフトエラーの検知及び修復については示されておらず、またチェックコードが必要になる等の処理の負荷が増加するため、リアルタイムでのメモリ使用には適用できない。
In the method disclosed in
更に、非特許文献2に記載されている「IEC61508−7 A.5.7 Double RAM」は、メモリアクセス時にソフトエラーを検出できるが、データの修復及びソフトエラーの修復ができない。したがって、上述したような手法では、メモリ等を用いたシステム上のデータ処理の安全性及び継続性を向上させることができなかった。
Furthermore, “IEC61508-7 A.5.7 Double RAM” described in Non-Patent
本発明は、上述した課題に鑑みてなされたものであって、メモリを用いたデータ処理の安全性及び継続性を向上させるための診断修復装置、診断修復方法、及び診断修復プログラムを提供することを目的とする。 The present invention has been made in view of the above-described problems, and provides a diagnostic repair device, a diagnostic repair method, and a diagnostic repair program for improving the safety and continuity of data processing using a memory. With the goal.
上述した課題を解決するために、本発明は、以下の特徴を有する課題を解決するための手段を採用している。 In order to solve the above-described problems, the present invention employs means for solving the problems having the following characteristics.
本発明は、予め設定されたアプリケーションによる処理を実行し、実行された処理結果を比較してデータの診断及び修復を行う診断修復装置において、所定のデータを3以上の複数のデータ領域に記憶する記憶手段と、前記所定のデータを前記3以上の複数のデータ領域に異なる形式で書き込み、前記アプリケーションの実行時に前記3以上の複数のデータ領域にそれぞれ書き込んだデータを読み込んで照合し、照合の結果が不一致であった場合に所定の修復を行い、修復後のデータを用いて前記アプリケーションを実行する処理プログラム実行手段と、前記アプリケーションを実行した結果と、少なくとも1つの他の診断修復装置で前記アプリケーションを実行した結果とを照合する照合処理手段とを有することを特徴とする診断修復装置。 The present invention stores a predetermined data in a plurality of three or more data areas in a diagnostic / repair device that executes a process by a preset application and compares and executes the result of the executed process to diagnose and repair data. The storage means and the predetermined data are written to the three or more data areas in different formats, the data written to the three or more data areas are read and collated when the application is executed, and the collation results If there is a mismatch, the processing program executing means for executing the predetermined repair using the repaired data, the execution result of the application, and the application in at least one other diagnostic repair device And a diagnostic processing device for collating with the result of executing
また本発明は、予め設定されたアプリケーションによる処理を実行し、実行された処理結果を比較してデータの診断及び修復を行う診断修復方法において、所定のデータを記憶手段の3以上の複数のデータ領域に記憶する記憶ステップと、前記所定のデータを前記3以上の複数のデータ領域に異なる形式で書き込み、前記アプリケーションの実行時に前記3以上の複数のデータ領域にそれぞれ書き込んだデータを読み込んで照合し、照合の結果が不一致であった場合に所定の修復を行い、修復後のデータを用いて前記アプリケーションを実行する処理プログラム実行ステップと、前記アプリケーションを実行した結果と、少なくとも1つの他の診断修復方法で前記アプリケーションを実行した結果とを照合する照合処理ステップとを有することを特徴とする。 According to another aspect of the present invention, there is provided a diagnostic and repair method for executing processing by a preset application, and comparing and executing the processing results, and diagnosing and repairing data. A storage step of storing in an area, and writing the predetermined data in the three or more data areas in different formats, and reading and collating the data written in the three or more data areas, respectively, when executing the application , A processing program execution step for performing a predetermined repair when the result of collation does not match and executing the application using the data after the repair, a result of executing the application, and at least one other diagnostic repair A verification processing step for verifying the result of executing the application by the method. The features.
また本発明は、コンピュータを、上述した診断修復装置が有する各手段として機能させるための診断修復プログラムである。 Further, the present invention is a diagnostic repair program for causing a computer to function as each unit included in the above-described diagnostic repair apparatus.
なお、本発明の構成要素、表現又は構成要素の任意の組み合わせを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造等に適用したものも本発明の態様として有効である。 In addition, what applied the component, expression, or arbitrary combination of the component of this invention to a method, an apparatus, a system, a computer program, a recording medium, a data structure, etc. is also effective as an aspect of this invention.
本発明によれば、メモリを用いたデータ処理の安全性及び継続性を向上させることができる。 According to the present invention, the safety and continuity of data processing using a memory can be improved.
<本発明について>
本発明は、例えばリアルタイムでデータを読み書きするメモリ等の記憶手段のソフトエラーを検知し、例えば多数決原理等を用いてメモリ等のソフトエラーの修復や検証等の診断を行うことで、リアルタイム性を保持しつつ、安全性、信頼性、可用性、及びコスト面等を改善する。
<About the present invention>
The present invention detects a soft error in a storage means such as a memory that reads and writes data in real time, and performs real-time performance by performing a diagnosis such as repair or verification of a soft error in the memory using a majority rule, for example. While maintaining, improve safety, reliability, availability, cost, etc.
また、本発明では、例えばダイバース(diverse)診断手法を用いて診断を実施することで、同一出力であっても処理方式を別にすることにより一過性エラー以外のCPUやメモリの異常等を、より適切に診断することができる。 Further, in the present invention, by performing diagnosis using, for example, a divers diagnosis method, even if the output is the same, by changing the processing method, abnormalities in the CPU and memory other than transient errors, etc. A more appropriate diagnosis can be made.
ここで、本発明における「ダイバース診断手法」を以下のように定義する。ダイバース診断手法とは、例えば、所定の入力データを読み込み、同一のデータを出力する場合に、その入力データの読み込む機器(装置等)や処理方式等を別にして得られる結果を診断するものである。 Here, the “diversity diagnosis method” in the present invention is defined as follows. The divers diagnosis method, for example, is for diagnosing the result obtained by separately reading the input data (device etc.) and processing method when reading the predetermined input data and outputting the same data. is there.
更に、具体的に説明すれば、ダイバース診断手法は、例えば取得したあるデータに対して何らかのデータ処理を行う場合には、そのプログラム言語の違いやアルゴリズムの違い、バージョンの違い、コンパイラの違い、コンパイラのパラメータの違い、また複数のタスクを実行する場合には、その実行順序の違い、装置の違い(ここで、装置の違いには、例えば同種類の2つの装置や他社製品による異なる装置といった概念も含む)等といった、それぞれ異なる条件において処理された結果を用いて診断する手法をいう。なお、ダイバース診断手法における異なる条件については、本発明においてはこれに限定されるものではない。また、ダイバース診断手法により設定される条件は、上記の違いのうち何れか1つでもよく、複数を組み合わせてもよい。 More specifically, for example, in the case of performing some data processing on acquired data, the diversity diagnosis method is different in programming language, algorithm, version, compiler, compiler, When executing multiple tasks, there are differences in the order of execution, differences in devices (here, differences in devices include, for example, the concept of two devices of the same type or different devices from other companies' products). A diagnosis method using results processed under different conditions such as Note that the different conditions in the diversity diagnosis method are not limited to this in the present invention. Further, the condition set by the diversity diagnosis method may be any one of the above differences, or a plurality of conditions may be combined.
また、本発明では、ダイバースにより得られるそれぞれの誤差範囲やデータの誤差範囲について、予め設定しておき、その設定された範囲において一致しているか否かを判断したり、適宜多数決により、その処理結果が正常か異常かを判断することによりソフトエラーの安全性を向上させる。 Further, in the present invention, each error range and data error range obtained by diverse is set in advance, and it is determined whether or not they match in the set range, or the process is performed by majority decision as appropriate. The software error safety is improved by judging whether the result is normal or abnormal.
以下に、本発明における診断修復装置、診断修復方法、及び診断修復プログラムを好適に実施した形態について、図面を用いて説明する。 DESCRIPTION OF EMBODIMENTS Embodiments of a diagnostic repair apparatus, a diagnostic repair method, and a diagnostic repair program according to the present invention will be described below with reference to the drawings.
<診断修復装置のブロック構成例>
図1は、本実施形態における診断修復装置のブロック構成の一例を示す図である。ここで、図1に示す診断修復装置10−1,10−2は、複数の診断修復装置が多重化されていることを示すものであり、各装置を区別するため10−1,10−2としているが、これらは同一の構成を有している。そこで、以下の説明では、便宜上、診断修復装置10−1のみを用いて各構成による機能を説明する。また、本実施形態における診断修復装置10−1,10−2は、各CPU(例えば、CPU1,CPU2等)で処理される機能として定義することもできる。
<Example of block configuration of diagnostic repair device>
FIG. 1 is a diagram illustrating an example of a block configuration of a diagnostic repair apparatus according to the present embodiment. Here, the diagnosis / repair devices 10-1 and 10-2 shown in FIG. 1 indicate that a plurality of diagnosis / repair devices are multiplexed, and 10-1 and 10-2 are used to distinguish each device. However, they have the same configuration. Therefore, in the following description, for the sake of convenience, functions of each configuration will be described using only the diagnostic / repair device 10-1. In addition, the diagnostic / repair devices 10-1 and 10-2 in the present embodiment can be defined as functions processed by each CPU (for example, CPU1, CPU2, etc.).
診断修復装置10−1は、記憶手段としてのメモリ11と、データ管理テーブル12と、構造体定義ファイル13と、処理プログラム実行手段14と、照合データファイル15と、照合処理手段16と、通信手段17と、時間管理手段18とを有するよう構成されている。
The diagnostic / repair device 10-1 includes a
メモリ11は、例えばリアルタイムに読み書き可能なメモリ(例えば、RAM等)である。また、メモリ11は、内部に複数のデータ領域を有する。図1の例では、メモリ11内の複数のデータ領域のうち、ソフトエラーを検出及び修復対象とする領域を、「データ領域1」、「データ領域2」、「データ領域3」に区分して管理する。なお、本実施形態において、データ領域の数はこれに限定されるものではないが、データ領域のデータを用いて多数決による判定を行う場合もあるため、データ領域の数は3以上の奇数であることが好ましい。
The
また、本実施形態では、所定の処理内容にて処理されるデータを格納する領域としてレジスタ等を有していてもよく、その他にもアクセスするデータを一時的に保存するキャッシュメモリ等を有していてもよい。 In the present embodiment, a register or the like may be provided as an area for storing data processed according to predetermined processing contents, and a cache memory or the like for temporarily storing data to be accessed may be provided. It may be.
データ管理テーブル12は、処理プログラム14に含まれるデータ書込関数14a及びデータ読込関数14bの何れか、又は、両方の関数からアクセスできる共通領域に配置され、メモリ11のデータ領域の先頭アドレスを管理する。
The data management table 12 is arranged in a common area accessible from either or both of the data write
構造体定義ファイル13は、データ書込関数14a及びデータ読込関数14bの何れか、又は、両方の関数からアクセスできる共通領域に配置され、例えば各データ名、当該データ名のバイト数、当該データ名の先頭の相対アドレス等を定義した情報を管理する。ここで、例えば上述した各関数がC言語の場合には、プロブラムのコンパイル時等のように診断修復装置10−1(CPU)が実際の処理を実行する前に、予め設定された構造体定義データ21から取得したデータを変換して構造体定義ファイル13として構築することもできる。
The
処理プログラム実行手段14は、少なくともデータ書込関数14a及びデータ読込関数14bを有する。データ書込関数14aは、メモリ11内のデータ領域に所定のデータを所定の形式等で書き込むための関数である。また、データ読込関数14bは、メモリ11内のデータ領域からデータを読み込み、メモリの診断やデータ及びソフトエラーの修復等を行うための関数である。
The processing program execution means 14 has at least a
つまり、処理プログラム実行手段14は、ソフトエラー検出対象のデータの書き込みや読み込みを行うアプリケーション処理プロブラムとして、データ書込関数14a及びデータ読込関数14bを有する。
That is, the processing program execution means 14 has a
更に、処理プログラム実行手段14は、各種アプリケーション14cを有する。各種アプリケーション14cには、異なる処理を行う複数のアプリケーションが含まれている。処理プログラム実行手段14は、予め設定された処理内容に応じて各種アプリケーション14cからアプリケーションを選択し、選択したアプリケーションに対応した処理プログラム(アプリケーション処理プログラム)を実行し、実行した結果を照合データファイル15に出力する。 Furthermore, the processing program execution means 14 has various applications 14c. The various applications 14c include a plurality of applications that perform different processes. The processing program execution means 14 selects an application from the various applications 14c according to the processing content set in advance, executes a processing program (application processing program) corresponding to the selected application, and compares the execution result with the collation data file 15 Output to.
ここで、各種アプリケーション14cによるアプリケーション処理プロブラムは、例えば診断修復装置10−1(CPU1)と診断修復装置10−2(CPU2)とで同じ入力に対し、所定の制御命令等により同じ出力をするプロブラムである。つまり、アプリケーション処理プロブラムは、例えば上述したCPU1とCPU2とで同じアルゴリズムで処理をするか、又は上述したダイバース診断手法を適用し、入力に対して別の処理アルゴリズム等を用いた処理を行い、同じ出力をするといったダイバース化による処理を行う。本実施形態では、ダイバース化を行うことで、例えばプログラムや設計のミス等による共通原因の故障を検出し回避することができる。
Here, the application processing program by the various applications 14c is, for example, a program that outputs the same output by a predetermined control command or the like to the same input in the diagnostic repair device 10-1 (CPU1) and the diagnostic repair device 10-2 (CPU2). It is. In other words, the application processing program, for example, processes the above-described
照合データファイル15は、例えば診断修復装置10−1(CPU1)における処理プログラム実行手段14の処理結果と、診断修復装置10−2(CPU2)における処理プログラム実行手段14の処理結果とを照合することで、修復したデータを検証して診断するためのデータを格納する。なお、照合データファイル15は、今までの処理結果の履歴情報(例えば、前回データ、今回データ等)を格納することもできる。
The collation data file 15 collates, for example, the processing result of the processing
照合処理手段16は、照合処理として、例えば診断修復装置10−1における処理プログラム実行手段14の処理結果と、診断修復装置10−2における処理プログラム実行手段14の処理結果とを照合することで、所定結果が一致しているか否かを確認し、修復したデータを検証して診断するための処理を行う。なお、一致しているか否かの判断は、完全一致に限定されるものではなく、例えば所定の誤差範囲にあるか否かにより判断してもよい。
As the collation processing, the
また、照合処理手段16は、多重化された診断修復装置のそれぞれの今回分の処理結果データ(今回データ)を対象に照合を行ってもよく、各診断修復装置における処理のタイミング等に対応させて、例えば前回分の処理結果データ(前回データ)等を用いて照合を行ってもよい。 Further, the collation processing means 16 may collate the processing result data (current data) for each of the multiplexed diagnosis / repair devices, and correspond to the processing timing of each diagnosis / repair device. For example, collation may be performed using the processing result data (previous data) for the previous time.
通信手段17は、診断修復装置10−1と診断修復装置10−2とで、データの送受信を可能とする。具体的には、通信手段17により、例えば診断・修復結果の照合等を行う。 The communication means 17 enables data transmission / reception between the diagnostic / repair device 10-1 and the diagnostic / repair device 10-2. Specifically, for example, diagnosis / repair results are collated by the communication means 17.
時間管理手段18は、処理プログラム実行手段14において予め設定された少なくとも1つの処理(アプリケーション)を実行させるための時間を管理する。また、時間管理手段18は、多重化された他の診断修復装置との実行の同期を取るための時間を管理する。したがって、多重化された各診断修復装置10における各時間管理手段18は、通信ネットワーク等により同期が取れるように接続されていてもよい。
The time management means 18 manages the time for causing the processing program execution means 14 to execute at least one process (application) preset. Moreover, the time management means 18 manages the time for synchronizing execution with other multiplexed diagnostic repair apparatuses. Therefore, each time management means 18 in each multiplexed
なお、本実施形態においては、これに限定されるものではなく、例えば各診断修復装置10の処理プログラム実行手段14で同期させて所定の処理が実行されるように制御する管理制御装置等を設け、その管理制御装置から多重化された各診断修復装置10に対して所定の処理を実行させる時間情報を出力するようにしてもよい。これにより、本実施形態では、時間管理によるリアルタイムな診断修復処理を実現することができる。
In the present embodiment, the present invention is not limited to this. For example, a management control device that performs control so that predetermined processing is executed in synchronization with the processing program execution means 14 of each diagnosis and
構造体定義データ21は、外部から取得されるデータの構造体が定義されたデータである。本実施形態では、構造体定義データ21を変換して構造対定義ファイル13を取得しているが、本発明においてはこれに限定されるものではなく、例えば構造体定義ファイル13そのものを外部から直接取得してもよい。なお、外部からの取得は、他の装置からインターネットやLAN(Local Area Network)等の通信ネットワークを介して取得してもよく、ユーザ等からの入力により設定されてもよい。
The
ここで、診断修復装置10−2は、多重化した診断修復装置10−1と同等のブロック構成を有し、上述した各機能に対応する処理を行う。なお、診断修復装置10−2は、多重化した診断修復装置10−1と並行して処理を行ったり、異なるタイミングで処理を行うことができ、これらはユーザ等により予め設定することができる。また、図1の例において、診断修復装置10−2(CPU2)は、診断修復装置10−1(CPU1)と並列二重化システムを構成しているが、本発明においてはこれに限定されるものではなく、診断修復装置10を三重以上の構成にして多重化システムを構成してもよい。
Here, the diagnostic repair device 10-2 has a block configuration equivalent to the multiplexed diagnostic repair device 10-1, and performs processing corresponding to each function described above. The diagnosis / repair device 10-2 can perform processing in parallel with the multiplexed diagnosis / repair device 10-1, or can perform processing at different timings, and these can be set in advance by a user or the like. In the example of FIG. 1, the diagnostic / repair device 10-2 (CPU2) constitutes a parallel duplex system with the diagnostic / repair device 10-1 (CPU1). However, the present invention is not limited to this. Alternatively, the multiplexing system may be configured with the diagnostic /
<診断修復の概要について>
ここで、本実施形態における診断修復の概要について図を用いて説明する。図2は、本実施形態における診断修復の概要について説明するための図である。本実施形態では、図2に示すように、リアルタイムに読み書きするメモリ11について、以下の手順で、メモリの診断、読み込みデータの修復、及びメモリ11のソフトエラーの修復を行う。なお、図2では、上述したデータ領域1〜3をそれぞれメモリ11−1〜11−3とする。
<Overview of diagnostic repair>
Here, an outline of diagnosis and repair in the present embodiment will be described with reference to the drawings. FIG. 2 is a diagram for explaining an outline of diagnostic repair according to the present embodiment. In the present embodiment, as shown in FIG. 2, for the
まず、本実施形態では、図2の(1)に示すように、データ書き込み時に、所定のデータを例えば3つの異なる形式でデータ領域へ書き込む。書き込むデータ形式は、例えばそのままのデータ(正データ)や、正データを16進数ffff(ハイバリュー(オールf))でEOR(排他的論理和)演算したデータ(反転データ)、正データを予め設定された1又は複数の異なる所定のパターン(例えば、16進数aaaa、abcd、4321、0a0a等)でEOR演算したデータ(パターンデータ)とし、それらのデータを選択的に用いてソフトエラー以外のビットエラー等のエラー検出もできるようにする。更に、本実施形態では、後述する図2の(5)に示す照合処理を行うことで、データの信頼性を向上させ、チェックサム等の付加的データを不要とする。 First, in the present embodiment, as shown in (1) of FIG. 2, when data is written, predetermined data is written into the data area in, for example, three different formats. As the data format to be written, for example, data as it is (positive data), data obtained by performing EOR (exclusive OR) on positive data with a hexadecimal number ffff (high value (all f)), and positive data are preset. Bit error other than soft error by using EOR operation with one or a plurality of different predetermined patterns (for example, hexadecimal aaaa, abcd, 4321, 0a0a, etc.) and selectively using those data It is possible to detect errors such as. Furthermore, in the present embodiment, by performing a collation process shown in FIG. 2 (5) described later, the reliability of data is improved, and additional data such as a checksum is unnecessary.
なお、上述した所定のパターンは、16進数aaaaのように同一数字が連続するものでもよく、16進数1234,4321のように昇順、降順になったものでもよく、16進数0a0aのように所定の2以上の値を交互に配列されたものでもよい。また、上述したデータのパターンは、処理毎に変更してもよく、常に予め設定されたパターンに固定されていてもよい。更に、本実施形態における演算内容は、上述したEOR演算に限定されるものではなく、例えば論理積演算等の所定の演算を用いてもよく、各処理毎や処理データの内容に応じて演算手法を任意に設定してもよい。なお、上述した16進数ffffやaaaa等の付加データの桁数は、説明の便宜上4桁で示しているが、実際には、正データのバイト数に対応させた桁数が設定される。 The predetermined pattern described above may be a sequence of the same numbers such as the hexadecimal number aaaa, or may be an ascending order or a descending order such as the hexadecimal numbers 1334 and 4321, or may be a predetermined number such as the hexadecimal number 0a0a. Two or more values may be alternately arranged. The data pattern described above may be changed for each process, or may be always fixed to a preset pattern. Furthermore, the operation content in the present embodiment is not limited to the above-described EOR operation, and for example, a predetermined operation such as a logical product operation may be used, and an operation method may be used according to each process or the content of the processing data. May be set arbitrarily. The number of digits of the additional data such as the hexadecimal numbers ffff and aaa described above is shown as four digits for convenience of explanation, but actually, the number of digits corresponding to the number of bytes of the positive data is set.
次に、本実施形態では、処理に使用するタイミングで図2の(2)に示すデータの読み込みを行う。また読み込み時に図2の(1)の処理でメモリ11−1に書き込んだ正データと、メモリ11−2に書き込んだ16進数ffffでEOR演算した反転データとを照合して一致を確認する。ここで、照合時には、メモリ11−2から得られた反転データを、16進数ffffでEOR演算する前のデータに戻してから照合を行う。なお、一致しているか否かの判断は、完全一致に限定されるものではなく、例えば所定の誤差範囲にあるか否かにより判断してもよい。照合の結果が不一致の場合には、メモリエラーと判断する。 Next, in this embodiment, the data shown in (2) of FIG. 2 is read at the timing used for processing. Further, at the time of reading, the positive data written in the memory 11-1 by the processing of (1) in FIG. 2 and the inverted data which is EOR-calculated with the hexadecimal number ffff written in the memory 11-2 are collated to confirm a match. Here, at the time of collation, collation is performed after the inverted data obtained from the memory 11-2 is returned to the data before the EOR operation with the hexadecimal number ffff. Note that the determination of whether or not they are coincident is not limited to complete coincidence, and may be determined, for example, based on whether or not they are within a predetermined error range. If the collation results do not match, a memory error is determined.
更に、本実施形態では、メモリ11−3に書き込んだパターンデータを用い、上述した正データと照合して一致を確認する。なお、パターン処理と照合する場合には、例えばデータ3のパターンデータを16進数aaaaが付加される前に戻した後に、データ1と照合する。つまり、ここでの照合は、正データ、反転データ、パターンデータの3つのデータで照合して一致を確認する。
Furthermore, in the present embodiment, the pattern data written in the memory 11-3 is used to collate with the above-described positive data to confirm the match. In the case of collation with pattern processing, for example, the pattern data of
次に、本実施形態では、図2の(3)の処理として、上述した図2の(2)の処理でメモリエラーが発生したと判断した場合に、メモリ11−1〜11−3で書き込んだ3つの領域のデータで多数決を行い、多数のものを正常データと判定する。つまり、上述の例では、3つのデータのうち、同じデータが2つあるデータを正常データとする。 Next, in the present embodiment, when it is determined that a memory error has occurred in the above-described process (2) in FIG. 2 as the process (3) in FIG. 2, data is written in the memories 11-1 to 11-3. A majority decision is made with the data in the three areas, and the majority is determined as normal data. That is, in the above example, data having two identical data among the three data is defined as normal data.
また、判定により得られた正常データを実際の所定の処理に使用すると共に、当該正常データをメモリエラーと判定されたメモリに所定の形式で書き込み、ソフトエラーを修復する。 The normal data obtained by the determination is used for actual predetermined processing, and the normal data is written in a predetermined format in the memory determined to be a memory error to repair the soft error.
次に、本実施形態では、図2の(4)の処理として、メモリエラーと判定したメモリ(図2の例では、メモリ11−1)に書き込んだデータを再読み込みし、書き込んだデータと再読み込みしたデータとが一致するか否かを判定し、一致しない場合には、ハードエラーとみなして、所定のハードエラー処理を行う。 Next, in the present embodiment, as the processing of (4) in FIG. 2, the data written in the memory determined to be a memory error (memory 11-1 in the example of FIG. 2) is re-read, and the written data and the data are re-read. It is determined whether or not the read data matches. If they do not match, it is regarded as a hard error and a predetermined hard error process is performed.
次に、本実施形態では、図2の(5)の処理として、二重系以上の多重化システムで、当該システム(例えば、CPU1)で修復したデータを使用した処理結果と、他システム(例えば、CPU2)における該当する処理結果との照合を行う。この照合において、一致した場合には、修復データが正しいことが検証される。また、一致しない場合には、エラーとして所定のエラー処理を行う。 Next, in the present embodiment, as the processing of (5) in FIG. 2, the processing result using the data restored by the system (for example, the CPU 1) and the other system (for example, the redundant system) , CPU 2) is compared with the corresponding processing result. In this collation, if there is a match, it is verified that the repair data is correct. If they do not match, predetermined error processing is performed as an error.
なお、図2の例では、本実施形態では、メモリ11−1に正データ、メモリ11−2に反転データ、メモリ11−3にパターンデータを書き込んだが、本発明においてはこれに限定されるものではなく、例えばメモリ11−2,11−3にそれぞれ異なるパターンを正データに付加したパターンデータを書き込んでもよい。更に、本実施形態では、例えばデータ領域を5つ用意し、そのうちの1つには正データを書き込み、残りの4つには、反転データを2つ、異なるパターンを用いて得られたパターンデータを2つ書き込んでもよく、また4つとも異なるパターンを用いて得られたパターンデータを書き込んでもよい。どのデータ領域にどのようなデータを書き込むかについては、データの内容等に応じて選択的に設定することができる。 In the example of FIG. 2, in this embodiment, positive data is written in the memory 11-1, inverted data is written in the memory 11-2, and pattern data is written in the memory 11-3. However, the present invention is not limited to this. Instead, for example, pattern data obtained by adding different patterns to the positive data may be written in the memories 11-2 and 11-3. Further, in the present embodiment, for example, five data areas are prepared, positive data is written in one of them, two inverted data are written in the remaining four, and pattern data obtained using different patterns. 2 may be written, and pattern data obtained using patterns different from the four patterns may be written. What data is written in which data area can be selectively set according to the contents of the data.
<ハードウェア構成例>
ここで、上述した診断修復装置10(10−1,10−2を含む)においては、各機能をコンピュータに実行させることができる実行プログラム(診断修復プログラム)を生成し、例えば汎用のパーソナルコンピュータ、サーバ等にその実行プログラムをインストールすることにより、本発明における診断修復処理等を実現することができる。
<Hardware configuration example>
Here, in the diagnostic repair apparatus 10 (including 10-1 and 10-2) described above, an execution program (diagnosis repair program) that can cause a computer to execute each function is generated. By installing the execution program on a server or the like, it is possible to realize the diagnosis and repair processing or the like in the present invention.
ここで、本実施形態における診断修復処理が実現可能なコンピュータのハードウェア構成例について図を用いて説明する。図3は、本実施形態における診断修復処理が実現可能なハードウェア構成の一例を示す図である。 Here, an example of a hardware configuration of a computer capable of realizing the diagnosis and repair process according to the present embodiment will be described with reference to the drawings. FIG. 3 is a diagram illustrating an example of a hardware configuration capable of realizing the diagnostic / repair processing according to the present embodiment.
図3におけるコンピュータ本体には、入力装置31と、出力装置32と、ドライブ装置33と、補助記憶装置34と、メモリ装置35と、各種制御を行うCPU36と、ネットワーク接続装置37とを有するよう構成されており、これらはシステムバスBで相互に接続されている。
3 includes an input device 31, an
入力装置31は、ユーザ等が操作するキーボード及びマウス等のポインティングデバイスを有しており、ユーザ等からの各種プログラムの実行指示等の各種操作信号を入力する。 The input device 31 has a pointing device such as a keyboard and a mouse operated by a user or the like, and inputs various operation signals such as execution instructions of various programs from the user or the like.
出力装置32は、本発明における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイを有し、CPU36が有する制御プログラムにより、上述したアプリケーション処理プロブラム等の各種プログラムの実行経過や結果等を表示することができる。
The
ここで、本発明においてコンピュータ本体にインストールされる実行プログラムは、例えばUSB(Universal Serial Bus)メモリやCD−ROM等の可搬型の記録媒体38等により提供される。プログラムを記録した記録媒体38は、ドライブ装置33にセット可能であり、記録媒体38に含まれる実行プログラムが、記録媒体38からドライブ装置33を介して補助記憶装置34にインストールされる。
Here, the execution program installed in the computer main body in the present invention is provided by, for example, a
補助記憶装置34は、ハードディスク等のストレージ手段であり、本発明における実行プログラムやコンピュータに設けられた制御プログラム、本発明における診断修復処理を実行するために必要な各種データ(例えば、データ管理テーブル12、構造体定義ファイル13、照合データファイル15等)等を蓄積し、必要に応じて入出力を行うことができる。
The
メモリ装置35は、上述したメモリ11に相当する記憶手段である。また、メモリ手段35は、CPU36により補助記憶装置34から読み出された実行プログラム等を格納する。なお、メモリ装置35は、RAMやROM(Read Only Memory)等からなる。
The
CPU36は、例えばOS(Operating System)等の制御プログラム、及びメモリ装置35等に格納されている実行プログラム、処理プログラム実行手段14等が有するアプリケーション処理プログラム等に基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して、診断修復処理における各処理を実現することができる。なお、プログラムの実行中に必要な各種情報等は、補助記憶装置34から取得することができ、また実行結果等を格納することもできる。
The
ネットワーク接続装置37は、通信ネットワーク等と接続することにより、実行プログラム等を通信ネットワークに接続されている外部装置等から取得(ダウンロード)したり、プログラムを実行することで得られた実行結果又は本発明における実行プログラム自体を外部装置等に提供することができる。また、ネットワーク接続手段37は、通信ネットワーク等を介して外部装置から、本発明における診断修復処理を実施するために必要な各種データ(例えば、構造体定義データ21等)を取得することができる。
The
上述したようなハードウェア構成により、本発明における診断修復処理を実行することができる。また、プログラムをインストールすることにより、汎用のパーソナルコンピュータ等で本発明における診断修復処理を容易に実現することができる。 With the hardware configuration as described above, the diagnostic repair process according to the present invention can be executed. In addition, by installing the program, the diagnosis and repair process according to the present invention can be easily realized by a general-purpose personal computer or the like.
<診断修復処理手順>
次に、本実施形態における診断修復処理手順の一例について、フローチャートを用いて説明する。図4は、診断修復処理手順の一例を示すフローチャートである。図4において、診断修復処理は、上述したアプリケーション処理プロブラム等を用いて処理が行われる。
<Diagnostic repair procedure>
Next, an example of a diagnostic / repair processing procedure in the present embodiment will be described using a flowchart. FIG. 4 is a flowchart illustrating an example of the diagnostic repair processing procedure. In FIG. 4, the diagnostic repair process is performed using the above-described application processing program or the like.
まず、診断修復処理は、データ書込関数14aを呼び出し、予め設定されたメモリ11内の複数のデータ領域に対して、所定のデータを所定の形式で書き込む処理を実行する(S01)。このとき、所定の形式とは、例えば上述したように、そのままのデータ(正データ)、正データの反転データ、正データに所定のパターンを付加したパターンデータ等から任意に選択される。
First, the diagnostic repair process calls the data write
次に、診断修復処理は、データ読込関数を呼び出して対応する処理を実行する(S02)。具体的には、各データ領域のデータを読み出して照合により一致を確認する。ここで、診断修復処理は、照合結果に基づくデータ読込関数の関数値が正常終了であるか否かを判断する(S03)。なお、S03の処理では、例えば「正常終了であるか」、「データ修復処理を行うか」、「異常終了であるか」が判断される。 Next, the diagnostic repair process calls the data read function and executes the corresponding process (S02). Specifically, the data in each data area is read and the match is confirmed by collation. Here, in the diagnostic repair process, it is determined whether or not the function value of the data reading function based on the collation result is normal termination (S03). In the process of S03, for example, “whether it is normal termination”, “whether to perform data restoration processing”, or “abnormal termination” is determined.
診断修復処理は、S03の処理において、「データ修復処理を行う」と判断された場合、所定のデータ修復を行い、修復したデータをメモリ11内の所定のデータ領域に記憶するデータ修復処理を行う(S04)。なお、所定のデータ領域とは、照合の結果が一致しなかったデータ領域のみであってもよく、全データ領域であってもよい。
In the diagnosis repair process, when it is determined in the process of S03 that “data repair process is performed”, the predetermined data repair is performed, and the repaired data is stored in a predetermined data area in the
また、S03の処理において、「正常終了である」と判断された場合、又は、上述したS04の処理が終了した場合には、予め設定された少なくとも1つのアプリケーション処理プログラムを実行する所定のアプリケーション処理を行う(S05)。また、その処理結果を照合処理データとして、例えば実行した各処理を識別するための「処理番号」と、「照合処理データ」と、「データ修復の有無」とを含む情報を照合データファイル15に書き込む(S06)。 Further, when it is determined in the process of S03 that the operation is “normally completed” or when the process of S04 described above is completed, a predetermined application process that executes at least one preset application process program is executed. (S05). Further, using the processing result as collation processing data, for example, information including “processing number” for identifying each executed process, “collation processing data”, and “data restoration presence / absence” is stored in the collation data file 15. Write (S06).
その後、診断修復処理は、例えば多重化された他の診断修復装置における所定の処理の結果が書き込まれた照合処理データファイルとの照合処理を行う(S07)。なお、本実施形態では、S07の処理を行わなくてもよい。また、診断修復処理は、上述するS03の処理において、「異常終了である」と判断された場合、その旨をユーザ等に通知する所定の異常処理を行う(S08)。また、本実施形態では、メモリのハードエラーをデータ読込関数14bの実行時等に検知した場合、メモリハードエラーに対応する所定の異常処理等を行う。
Thereafter, in the diagnostic repair process, for example, a collation process is performed with a collation process data file in which a result of a predetermined process in another multiplexed diagnostic repair apparatus is written (S07). In the present embodiment, the process of S07 may not be performed. Further, in the diagnosis and repair process, when it is determined that “abnormal end” in the process of S03 described above, a predetermined abnormality process for notifying the user or the like is performed (S08). In the present embodiment, when a memory hard error is detected when the
ここで、上述した照合データファイル15に書き込まれる「処理番号」とは、例えば処理プロブラム毎に付与された診断修復装置(CPU)内で一意の番号であり、例えば多重化された2つの診断修復装置(CPU1とCPU2)において、同一の処理を行う処理プログラムに対しては、同一の処理番号が付与される。また、上述した「照合処理データ」は、所定のアプリケーション処理の結果として生成されたデータ等を示す。更に、上述したデータ修復処理における「データ修復の有無」の判断は、例えば実際にデータ修復を行った場合に、データ修復ありを示すフラグや文字、識別情報等をセットする。 Here, the “processing number” written in the collation data file 15 described above is a unique number in the diagnostic repair device (CPU) assigned to each processing program, for example, and two multiplexed diagnostic repairs, for example. In the devices (CPU1 and CPU2), the same processing number is assigned to processing programs that perform the same processing. The “collation processing data” described above indicates data generated as a result of predetermined application processing. Furthermore, in the above-described data restoration processing, the determination of “presence / absence of data restoration” is performed by setting a flag, character, identification information, or the like indicating that data restoration has been performed, for example, when data restoration is actually performed.
<データ書込関数14aの処理手順>
次に、上述したデータ書込関数の処理手順例について、フローチャートを用いて説明する。図5は、データ書込関数の処理手順の一例を示すフローチャートである。また、図6は、図5のデータ書込関数処理手順に対応するデータの書き込みの一例を示す図である。
<Processing Procedure of
Next, a processing procedure example of the above-described data writing function will be described using a flowchart. FIG. 5 is a flowchart showing an example of the processing procedure of the data write function. FIG. 6 is a diagram showing an example of data writing corresponding to the data write function processing procedure of FIG.
ここで、本実施形態におけるデータ書込関数14aのパラメータは、書込データ名と書込データである。以下の説明では、関数の記述例として、例えば「rinf=wsdat(a[3]=20)」の場合を示す。これは、書込データ名が、後述する図8(b)で定義したように整数型aの3番目(相対値)、書込データが20であることを示している。更に、rinfは関数値であるが、本実施形態におけるデータ書込関数14aでは使用しない。
Here, the parameters of the data write
なお、本実施形態では、書込データ名と書込データとを指定する例を記載しているが、本発明においてはこれに限定されるものではなく、他の関数を用いて、例えば書込アドレスが連続したデータを書込先頭相対アドレスと、書込データバイト数と、書込データとをパラメータとして、各データを関連付けて一括で書き込むこともできる。 In this embodiment, an example in which the write data name and the write data are specified is described. However, the present invention is not limited to this, and other functions are used to write, for example, Data having consecutive addresses can be written in a lump by associating each data with the write head relative address, the number of write data bytes, and the write data as parameters.
図5の例において、データ書込関数14aは、データ管理テーブル12と構造体定義ファイル13とを読み込み、書込先頭アドレスを計算する(S11)。なお、S11の処理における計算例は、例えば「書込先頭アドレス=データ領域1先頭アドレス+書込データ名先頭アドレス+(相対値−1)×データ名バイト数」のような式を用いて算出することがきるが、本発明においてはこれに限定されるものではない。
In the example of FIG. 5, the data write
次に、データ書込関数14aは、パラメータのデータを構造体定義ファイル13のデータ名に対応するバイト数分書き込む(S12)。例えば、整数型の場合には、2バイト書き込まれる。
Next, the data write
次に、データ書込関数14aは、データ管理テーブル12から「データ領域2」の先頭アドレスを読み込み、構造体定義ファイル13から書込先頭アドレスを計算する(S13)。S13の処理における計算は、例えば上述したS11における処理の計算に対してデータ領域先頭アドレスが変わるのみであり、具体的には、「書込先頭アドレス=データ領域2先頭アドレス+書込データ名先頭アドレス+(相対値−1)×データ名バイト数」のような式を用いて算出することができるが、本発明においてはこれに限定されるものではない。
Next, the data write
次に、データ書込関数14aは、書込データに例えば16進数ffffのEOR演算を付加し(S14)、その付加したデータ(反転データ)を対応するデータ型のバイト数で書き込む(S15)。そのとき書き込むアドレスは、上述したS13の処理で計算したアドレスに書き込む。
Next, the data write
次に、データ書込関数14aは、データ管理テーブル12から「データ領域3」の先頭アドレスを読み込み、構造体定義ファイル13から書込先頭アドレスを計算する(S16)。なお、ここでの計算は、例えば上述したS01の処理での計算と同様にデータ領域先頭アドレスが変わるのみである。具体的には、「書込先頭アドレス=データ領域3先頭アドレス+書込データ名先頭アドレス+(相対値−1)×データ名バイト数」のような式を用いて算出することができるが、本発明においてはこれに限定されるものではない。
Next, the data write
次に、データ書込関数14aは、書込データに例えば所定のパターンである16進数aaaaのEOR演算を付加し(S17)、その付加したデータ(パターンデータ)をS16の処理にて計算されたアドレスから対応するデータ型のバイト数で書き込む(S18)。上述した処理により、図6に示すように、先頭相対アドレスからa[3]の領域に整数型2バイト×40のデータが書き込まれる。
Next, the data write
<データ管理テーブル12について>
ここで、上述したデータ管理テーブル12の具体例について図を用いて説明する。図7は、データ管理テーブルの一例を示す図である。図7に示すデータ管理テーブルは、項目として、例えば「番号」、「名称」等を有しているが、本発明においてはこれに限定されるものではない。
<About the data management table 12>
Here, a specific example of the data management table 12 will be described with reference to the drawings. FIG. 7 is a diagram illustrating an example of the data management table. The data management table shown in FIG. 7 has, for example, “number”, “name” and the like as items, but the present invention is not limited to this.
データ管理テーブル12は、メモリ11内に設定された複数のデータ領域が「番号」で識別され、各番号毎に、データ書込関数14a及びデータ読込関数14b内で使用されるメモリ11内の各データ領域の先頭アドレスが格納される。なお、先頭アドレスが変わる場合には、対象のデータ領域のアドレスが更新される。
In the data management table 12, a plurality of data areas set in the
<構造体定義ファイル13について>
次に、上述した構造体定義ファイル13の具体例について図を用いて説明する。図8は、構造体定義ファイルの一例を示す図である。なお、図8(a)は、構造体定義データ21を示し、図8(b)は、図8(a)の構造体定義データ21から得られる構造体定義ファイル13を示し、図8(c)は、メモリ割り付けの一例を示している。
<About
Next, a specific example of the
図8(a)に示す構造体定義データ21は、例えばC言語を使用する場合の構造体定義データ21の例を示している。ここで、「char」は文字型であり1文字1バイトで構成されている。また、「int」は、整数型であり1データ2バイトで構成されている。また「long」は、倍長整数型であり1データ4バイトで構成されている。また、「double」は、倍精度実数型であり1データ8バイトで構成されている。
The
なお、各型(例えば、整数型等)のデータ名は、複数設定することもできる。また、[n]は、データ領域がnデータ分であることを示している。 A plurality of data names of each type (for example, integer type) can be set. [N] indicates that the data area is for n data.
図8(b)に示す構造体定義ファイル13は、図1に示すデータ書込関数14a及びデータ読込関数14bの何れか、又は、両方の関数からアクセスできる共通領域に配置され、例えば「データ名」、「当該データ名のバイト数」、「当該データ名の先頭の相対アドレス」等を管理する。なお、図8(b)に示す構造体定義ファイル13の項目としては、例えば「データ名」、「バイト数」、「先頭相対アドレス」等があるが、本発明においてはこれに限定されるものではない。
The
本実施形態では、図8(a)に示す構造体定義データ21の入力し、各データをテーブルに変換して、図8(b)に示す構造体定義ファイル13が構築される。
In the present embodiment, the
図8(c)では、構造体定義ファイル13をメモリ11へ割り付けした例を示している。ここで、上述した図1の例では、メモリ11内のデータ領域は3つあるため、同じ領域割り付けがメモリ11内の3か所に所定の形式(例えば、文字型、整数型、倍長整数型、倍精度実数型等のデータタイプやデータタイプに対応するバイト数等)で設定される。
FIG. 8C shows an example in which the
<データ読込関数14bの処理手順>
次に、上述したデータ読込関数14bの処理手順例についてフローチャートを用いて説明する。図9は、データ読込関数の処理手順の一例を示すフローチャートである。
<Processing procedure of data read
Next, an example of a processing procedure of the above-described
ここで、本実施形態におけるデータ読込関数14bのパラメータは、読込データ名と読込レジスタ名である。また、関数値は、例えば「正常」、「異常」、「データ修復」の3種類である。以下の説明では、関数の記述例として、「rinf=rsdat(b[5],x)」の場合を示す。これは、読込データ名が、上述した図8で定義したように倍長整数型bの5番目(相対値)、読込データ格納領域がxであることを示す。また、rinfは関数値であるが、本実施形態におけるデータ読込関数14bでは使用しない。
Here, the parameters of the data read
なお、本実施形態では、読込データ名と読込レジスタ名とを指定する例を記載しているが、本発明においてはこれに限定されるものではなく、他の関数を用いて、例えば読込アドレスが連続したデータを読込先頭相対アドレスと、読込データバイト数と、読込データ領域とをパラメータとして、各データを関連付けて一括して読み込むこともできる。 In the present embodiment, an example of specifying a read data name and a read register name is described. However, the present invention is not limited to this. For example, a read address is set using another function. Consecutive data can also be read in a batch by associating each data with the read head relative address, the number of read data bytes, and the read data area as parameters.
図9の例において、データ読込関数14bは、データ管理テーブル12と構造体定義ファイル13とを読み込み、データ領域1、2、3の読込先頭アドレスを計算する(S21)。なお、S21の処理における計算例は、例えば「読込先頭アドレス1=データ領域1先頭アドレス+読込データ名先頭アドレス+(相対値−1)×データ名バイト数」、「読込先頭アドレス2=データ領域2先頭アドレス+読込データ名先頭アドレス+(相対値−1)×データ名バイト数」、「読込先頭アドレス3=データ領域3先頭アドレス+読込データ名先頭アドレス+(相対値−1)×データ名バイト数」のような式を用いて算出することができるが、本発明においてはこれに限定されるものではない。
In the example of FIG. 9, the data read
次に、データ読込関数14bは、読込アドレス1,2,3から、各データ領域に書き込まれているデータを所定の読込データバイト数で読み込む(S22)。このときのそれぞれの読込データを、便宜上データ1,2,3とする。次に、データ読込関数14bは、データ2を16進数ffff、データ3を所定のパターンデータ(16進数aaaa)でEOR演算する(S23)。このときのそれぞれのデータを、便宜上データa,データbとする。具体的には、例えば「データa=“データ2” EOR “16進数ffff”」、「データb=“データ3” EOR “16進数aaaa”」の演算を行う。上述の処理は、データ書込関数14aにより、データ領域2(データ2)には正データに対して16進数ffffを付加した反転データが書き込まれ、データ領域3(データ3)には正データに対して16進数aaaaを付加したパターンデータが書き込まれているため、これらのデータを付加前のデータに戻すために、同一の付加データを用いてEOR演算を行う。
Next, the data read
なお、上述したデータ書込関数14aで付加データをEOR演算以外の演算手法で付加した場合、データ読込関数14bは、その付加データの内容や演算手法等に対応させて、データ2及びデータ3が付加前のデータに戻るような付加データや演算手法を用いて処理が行われる。
When the additional data is added by the above-described
次に、データ読込関数14bは、データ1と、データa,bとを照合し、データの一致を確認する(S24)。ここで、3つのデータが一致しているか否かを判断し(S25)、一致していない場合(S25において、NO)、次に、2つのデータが一致しているか否かを判断する(S26)。
Next, the
ここで、データ読込関数14bは、2つのデータが一致している場合(S26において、YES)、当該一致データを読込データの正常データとする(S27)。
Here, when the two data match (YES in S26), the
次に、データ読込関数14bは、正常データを不一致データのアドレスに書き込む(S28)。ここで、例えばキャシュメモリを使用している場合には、キャッシュメモリのみが更新されるため、キャッシュメモリをスルーして、不一致データのアドレスに書き込むようにする。つまり、上述したキャッシュメモリをスルーするとは、例えばキャッシュメモリとメモリ11内の所定のデータ領域の両方に正常データを書き込むことを意味する。
Next, the data read
次に、データ読込関数14bは、当該書込データのアドレスからデータを読み込む(S29)。なお、この場合にもキャシュメモリをスルーする。ここで、上述したキャッシュメモリをスルーするとは、例えばキャッシュメモリからではなく、メモリ11内の所定のデータ領域からデータを読み込むことを意味する。
Next, the data read
次に、書込データと読込データとが一致しているか否かを判断し(S30)、一致している場合(S30において、YES)、メモリデータが修復されたと判断し、発生したエラーはソフトエラーと判断する。その後、データ読込関数14bは、関数値に「データ修復」を設定し(S31)、関数の処理を終了する。
Next, it is determined whether or not the write data and the read data match (S30). If they match (YES in S30), it is determined that the memory data has been repaired, and the error that has occurred is soft. Judged as an error. Thereafter, the
また、データ読込関数14bは、S30の処理において、書込データと読込データとが一致していない場合(S30において、NO)、S28におけるリライト処理でもデータが修復しないため、ハードエラーと判断し、関数値に「異常」を設定し(S32)、関数を終了する。なお、データ読込関数14bは、S26の処理において、2つのデータが一致していない場合(S26において、NO)、3つ全てのデータが一致していないことになるため、エラーと判断し、関数値に「異常」を設定する(S32)。
Further, if the write data and the read data do not match in the process of S30 (NO in S30), the data read
また、データ読込関数14bは、上述したS25の処理において、3つのデータが一致する場合(S25において、YES)、関数値に「正常終了」を設定し、データ1を正常データとし(S33)、関数の処理を終了する。
The
<照合処理手順>
次に、上述した照合処理手順の一例についてフローチャートを用いて説明する。図10は、照合処理手順の一例を示すフローチャートである。図10に示す照合処理は、例えばある診断修復装置10(CPU)での一連の処理シーケンスが完了した時点で起動する。したがって、一定周期の起動で一連の処理シーケンスを行うシステムでは、同様に一定周期で照合処理が起動する。
<Verification processing procedure>
Next, an example of the above-described collation processing procedure will be described using a flowchart. FIG. 10 is a flowchart illustrating an example of the collation processing procedure. The collation processing shown in FIG. 10 is started when a series of processing sequences in a certain diagnostic / repair device 10 (CPU) is completed, for example. Therefore, in a system that performs a series of processing sequences with a fixed period of activation, the matching process is similarly activated with a constant period of time.
ここで、以下の説明では、照合先CPUをCPU1とし、照合元CPUをCPU2とし、各照合データファイルには、所定のアプリケーション処理を実施した今回分と前回分の処理結果(今回データ、前回データ)が存在するものとする。 Here, in the following description, the collation destination CPU is CPU1, the collation source CPU is CPU2, and each collation data file includes processing results (current data, previous data) for the current time and the previous time when predetermined application processing is performed. ) Exist.
また、本実施形態において、例えば照合元CPU(CPU2)でデータ修復をした場合には、照合先CPU(CPU1)へ当該処理番号と照合処理データとを送信し、照合を依頼する。また、本実施形態において、例えば照合先CPU(CPU1)が照合失敗と判断した場合には、照合元CPU(CPU2)で所定の異常処理を行う。 In the present embodiment, for example, when data is restored by the collation source CPU (CPU 2), the process number and the collation processing data are transmitted to the collation destination CPU (CPU 1) to request collation. In this embodiment, for example, when the collation destination CPU (CPU 1) determines that the collation has failed, the collation source CPU (CPU 2) performs a predetermined abnormality process.
また、本実施形態において、照合先CPU(CPU1)は、照合元CPU(CPU2)から照合データ(データ修復をした処理番号と照合処理データ)を受信し、その受信した照合データから所定の照合処理を行い、照合成功/照合失敗を照合元CPU(CPU2)に送信する。この場合、照合先CPU(CPU1)は、正常であるため、異常処理は行わない。 Further, in the present embodiment, the collation destination CPU (CPU 1) receives the collation data (process number and collation processing data after data restoration) from the collation source CPU (CPU 2), and performs a predetermined collation process from the received collation data. The verification success / failure is transmitted to the verification source CPU (CPU 2). In this case, since the collation destination CPU (CPU1) is normal, the abnormality process is not performed.
ここで、CPU1とCPU2とは、互いに照合先と照合元とになり得るため、照合元と照合先との両方のCPUにて照合処理が行われることになる。なお、本実施形態では、これに限定されるものではなく、例えば予め設定したCPUのみで照合処理を行ってもよい。以下の説明では、照合元と照合先との両方の機能を持つ照合処理手順について説明する。
Here, since the
まず、照合処理は、照合送信データを作成する(S41)。具体的には、例えば照合データファイル15のデータ修復ありのアプリケーション処理番号と当該アプリケーション処理番号の照合処理データとで照合先のCPUへ送信する伝文(照合データ)を作成する。 First, collation processing creates collation transmission data (S41). Specifically, for example, a message (collation data) to be transmitted to the collation destination CPU is created using the application process number with data restoration of the collation data file 15 and the collation process data of the application process number.
次に、照合処理は、照合先のCPUへ照合データを送信する(S42)。なお、メモリの修復がない場合には、アプリケーション処理番号を0とし、照合処理データを空欄として送信する。なお、本実施形態では、アプリケーション処理番号が0の場合に、照合処理データを送信しなくてもよい。 Next, the collation process transmits the collation data to the collation destination CPU (S42). If the memory is not restored, the application process number is set to 0 and the verification process data is transmitted as a blank. In this embodiment, when the application process number is 0, the collation process data need not be transmitted.
次に、照合処理は、照合元のCPUから照合データを受信する(S43)。なお、受信した伝文(照合データ)の構成は、送信した伝文と同じく、例えば照合データファイルのデータ修復ありのアプリケーション処理番号及び照合処理データであり、データ修復がない場合にはアプリケーション処理番号が0である。 Next, the collation process receives collation data from the CPU as a collation source (S43). The structure of the received message (collation data) is, for example, the application process number and collation process data with data restoration of the collation data file, and the application process number when there is no data restoration, as with the transmitted message. Is 0.
ここで、照合処理は、照合元での修復なし、すなわち処理番号が0(処理番号=0)であるか否かを判断する(S44)。照合処理は、処理番号が0でない場合(S44において、NO)、照合データファイル15の今回データの処理番号及び当該処理番号の照合処理データに、受信したアプリケーション処理番号及び照合処理データと一致するものがあるか否かを判断する(S45)。照合処理は、一致するものがない場合(S45において、NO)、照合データファイル15の前回データの処理番号及び当該処理番号の照合処理データに、受信したアプリケーション処理番号及び照合処理データが一致するものがあるか否かを判断する(S46)。 Here, the collation process determines whether there is no restoration at the collation source, that is, whether the process number is 0 (process number = 0) (S44). When the process number is not 0 (NO in S44), the collation process matches the received application process number and collation process data with the process number of the current data in the collation data file 15 and the collation process data of the process number. It is determined whether or not there is (S45). When there is no match in the collation process (NO in S45), the received application process number and collation process data match the process number of the previous data in the collation data file 15 and the collation process data of the process number. It is determined whether or not there is (S46).
ここで、照合処理は、一致するものがある場合(S46において、YES)、S44の処理において処理番号=0である場合(S44において、YES)、又はS45の処理において、照合処理データが一致する場合(S45において、YES)、照合成功を照合元CPUへ送信する(S47)。また、照合処理は、S46の処理において、一致しない場合(S46において、NO)、照合失敗を照合先CPUへ送信する(S48)。 Here, in the collation process, if there is a match (YES in S46), the process number = 0 in the process of S44 (YES in S44), or the collation process data matches in the process of S45. In the case (YES in S45), the verification success is transmitted to the verification source CPU (S47). Further, in the collation process, if they do not match in the process of S46 (NO in S46), a collation failure is transmitted to the collation destination CPU (S48).
次に、照合処理は、照合結果として照合成功又は照合失敗のデータを照合先から受信し(S49)、受信データとの照合が失敗であるか否かを判断する(S50)。ここで、照合失敗である場合(S50において、YES)、その旨をユーザ等に通知する所定の異常処理を行う(S51)。異常処理では、メモリ修復の検証が不成功となったため、当該状況に対応して予め設定された異常処理を行う。また、照合処理は、照合が成功した場合(S50において、NO)、照合処理を終了する。 Next, the collation processing receives collation success or collation data as a collation result from the collation destination (S49), and determines whether collation with the received data is unsuccessful (S50). Here, when collation is unsuccessful (YES in S50), predetermined abnormality processing for notifying the user or the like is performed (S51). In the abnormal process, since the verification of the memory repair is unsuccessful, the abnormal process set in advance corresponding to the situation is performed. Further, the collation process ends when the collation is successful (NO in S50).
<照合の具体例と照合データファイル15について>
次に、本実施形態における照合の具体例と照合データファイル15の具体例について図を用いて説明する。図11は、照合先の処理が先行している場合の照合処理を説明するための図である。また、図12は、照合先の処理が遅行している場合の照合処理を説明するための図である。また、図13は、照合データファイルの一例を示す図である。
<About specific examples of verification and verification data file 15>
Next, a specific example of collation and a specific example of the collation data file 15 in the present embodiment will be described with reference to the drawings. FIG. 11 is a diagram for explaining the collation process when the collation destination process precedes. FIG. 12 is a diagram for explaining the collation process when the collation destination process is delayed. FIG. 13 is a diagram illustrating an example of a collation data file.
ここで、図11及び図12は、時間軸における各処理の通信タイムチャートを示しており、例えば、「処理番号1→処理番号2→処理番号3→照合処理」を1つのサイクルとして、照合元CPU(CPU2)で2回(A1,A2)及び照合先CPU(CPU1)で2回(B1,B2)の処理が、同期と取りながら繰り返し処理を行っている。また、図11及び図12では、一例として「(a)処理番号2の入力に変化がない場合」と、「(b)処理番号2の入力に変化がある場合」とを示している。
Here, FIG. 11 and FIG. 12 show communication time charts of the respective processes on the time axis. For example, “processing
また、図13に示す照合データファイル15は、複数の照合データの履歴情報が蓄積されている。例えば、図13(a)では、今回データを示し、図13(b)は、前回データを示しているが、本発明においてはこれに限定されるものではなく、更に過去のデータを蓄積しておいてもよい。また、今回データと前回データとの違いは、単に処理回数の違いに限定されるものではなく、例えば上述したダイバース化による処理の違い等も含む。図11及び図12の例では、A1,B1が前回データ(図13(b))に対応し、A2,B2が今回データ(図13(a))に対応する。 Further, the collation data file 15 shown in FIG. 13 stores history information of a plurality of collation data. For example, FIG. 13 (a) shows the current data and FIG. 13 (b) shows the previous data. However, the present invention is not limited to this, and the past data is further accumulated. It may be left. Further, the difference between the current data and the previous data is not limited to the difference in the number of processings, but includes, for example, the difference in processing due to the above-described diversification. In the example of FIGS. 11 and 12, A1 and B1 correspond to the previous data (FIG. 13B), and A2 and B2 correspond to the current data (FIG. 13A).
図13に示す照合データファイル15の項目としては、例えば「処理番号」、「照合処理データ」、「データ修復」等があるが、本発明においてはこれに限定されるものではない。例えば、図13(a)に示す今回データは、照合先CPU(CPU1)の最新のデータを格納する。また、処理番号は、CPUのアプリケーション処理単位に一意に付加した番号である。同一処理番号では、CPU1とCPU2とが同じデータを入力し、処理結果となるようにアプリケーション処理として所定の処理を実行させる。このとき、上述したダイバース化によるアプリケーション処理を行ってもよい。
The items of the collation data file 15 shown in FIG. 13 include, for example, “processing number”, “collation processing data”, “data restoration”, but the present invention is not limited to this. For example, the latest data shown in FIG. 13A stores the latest data of the collation destination CPU (CPU1). The processing number is a number uniquely added to the CPU application processing unit. In the same process number,
また、照合データファイル15には、各アプリケーション処理の時系列の順番に処理番号を格納する。照合処理データは、当該処理番号のアプリケーション処理の処理結果を格納する。したがって、例えば、処理番号2において「1+2=3」の演算処理(所定のアプリケーション処理プログラム)を行った場合には、処理番号2の照合処理データは3となる。また、照合データファイル15の「データ修復」の項目には、当該処理をするためのメモリデータでデータ修復が発生したか否かの有無を格納する。
In the collation data file 15, process numbers are stored in the time series order of each application process. The collation process data stores the process result of the application process with the process number. Therefore, for example, when the calculation process (predetermined application process program) of “1 + 2 = 3” is performed in
また、図13(b)に示す前回データは、照合先CPU(CPU1)で一連の処理シーケンスが完了し、上述した図10に示すような照合処理が完了した時点で図13(a)に示す今回データをコピーしたものである。この時点で図10(a)の今回データの領域は初期化される。ここで、処理番号は、照合先CPU(CPU1)と照合元CPU(CPU2)とで周期的に同一処理をしているため、両方のCPUとも同じ番号が周期的に繰り返される。 The previous data shown in FIG. 13 (b) is shown in FIG. 13 (a) when a series of processing sequences are completed at the collation destination CPU (CPU 1) and the collation processing as shown in FIG. 10 is completed. This is a copy of the data. At this point, the current data area in FIG. 10A is initialized. Here, since the same processing is periodically performed by the collation target CPU (CPU1) and the collation source CPU (CPU2), the same number is periodically repeated for both CPUs.
次に、照合の具体例について説明する。図11及び図12に示すCPU1及びCPU2は、上述した診断修復装置10の機能を有し、互いに照合先にも照合元にもなり得る。ここで、照合先CPU(CPU1)と照合元CPU(CPU2)とは、時間管理手段18を設けてお互いの処理タイミングを同期させていたとしても各CPUの負荷や処理性能等の影響により完全に同期を取ることは困難である。そのため、本実施形態では、例えば照合先CPU(CPU1)が照合元CPU(CPU2)より先行している場合と遅行している場合とでそれぞれの処理を行う。
Next, a specific example of collation will be described. The
まず、図11に示すように、照合先CPU(CPU1)が照合元CPU(CPU2)より先行し、A1で処理番号2のメモリ修復があったとしても、メモリ修復により処理番号2の内容に変化がない場合(図11の(a))、照合先CPU(CPU1)のB2における照合処理では、処理番号2についての入力の変化がないため、A1の照合受信データとB2の今回データとが一致する。
First, as shown in FIG. 11, even if the collation target CPU (CPU 1) precedes the collation source CPU (CPU 2) and the memory of
また、A1で処理番号2のメモリ修復があった後に処理番号2の入力変化がある場合(図11の(b))、照合先CPU(CPU1)のB2における照合処理では、処理番号2の入力データに変化があるため、A1の照合受信データと、CPU1の今回データ(B2)とは一致しない。この場合、本実施形態では、A1の照合受信データと、CPU1の前回データ(B1)とを比較する。そして、図11(b)の例では、その場合にお互いのデータが一致する。このように、本実施形態では、照合処理に対して前の履歴情報(例えば、前回データ等)を利用することで、今回データ同士(1回)の照合エラーで直ちにシステムを終了させることなく、拡張した照合処理を実現することができる。これにより、本実施形態では、データ処理の安全性及び継続性を向上させたリアルタイムな診断修復処理を実現することができる。
If there is an input change of
また、図12に示すように、照合先CPU(CPU1)が照合元CPU(CPU2)より遅行している場合において、A2の処理番号2のメモリ修復があったとしても、メモリ修復により処理番号2に変化がない場合(図12(a))でも、A2の照合受信データと、CPU1の今回データ(B2)とが一致する。
In addition, as shown in FIG. 12, when the collation destination CPU (CPU1) is behind the collation source CPU (CPU2), even if the memory restoration of
また、A2で処理番号2のメモリ修復があった後に処理番号2の入力変化がある場合(図12(b))、A2の処理番号2では、入力後にメモリ修復が行われて、処理番号2の内容が修復されているため、A2の照合受信データと、CPU1の今回データ(B2)とが一致する。つまり、図12の例において、メモリ修復成功の場合には、処理番号2の照合処理データは、今回データと一致することになる。
Further, when there is an input change of
なお、上述した本実施形態では、3つのデータ領域に対して照合処理を行い、二重化したCPU(診断修復装置10)を用いて処理を行っているが、本発明においてはこれに限定されるものではなく、CPUを三重以上に多重化し、多重化したものについてそれぞれ照合処理を行って、多数決処理等により異常の有無を診断するようにしてもよい。 In the above-described embodiment, the collation process is performed on the three data areas, and the process is performed using the duplicated CPU (diagnostic repair device 10). However, the present invention is not limited to this. Instead, the CPUs may be multiplexed more than three times, each of the multiplexed ones may be collated, and the presence / absence of abnormality may be diagnosed by majority processing or the like.
上述したように本発明によれば、メモリを用いたデータ処理の安全性及び継続性を向上させることができる。具体的には、本発明は、RAM等のメモリに対するソフトエラーを診断・検出し、読み込みデータの修復とメモリ内のデータを修復する。 As described above, according to the present invention, the safety and continuity of data processing using a memory can be improved. Specifically, the present invention diagnoses and detects a soft error in a memory such as a RAM, repairs read data, and repairs data in the memory.
また、本発明では、照合が一致しない場合に、当該タイミングで予め所定の形式で書き込んだデータを読み込み、それらを多数決で修復データを判定し、読み込みデータを修復すると共に、メモリに再書き込みをすることでソフトエラーを解消する。 Further, in the present invention, when the collation does not match, the data written in a predetermined format at the timing is read, the repair data is determined by majority decision, the read data is repaired, and the memory is rewritten. To eliminate soft errors.
したがって、本発明によれば、ECCハードウェアが必要なく、低コストでソフトエラーの検出及び修復をすることができる。また、本発明では、実際に所定の処理を行うタイミングでリアルタイムにソフトエラーの検出及び修復ができ、所定の処理に正しいデータを使用することができる。また、本発明では、ECCで対応できない複数ビットのエラー検出と修復を行うことができる。 Therefore, according to the present invention, ECC hardware is not required, and soft errors can be detected and repaired at low cost. Further, according to the present invention, soft errors can be detected and repaired in real time at the timing when the predetermined processing is actually performed, and correct data can be used for the predetermined processing. Further, according to the present invention, it is possible to perform error detection and repair of a plurality of bits that cannot be handled by ECC.
また、本発明では、修復後のアプリケーション処理結果を多重化システム間で照合することで、メモリデータに余分なチェックサム等の追加処理をすることなくソフトエラー修復の検証をすることができ、リアルタイムにデータ書込み、読込みが可能となる。また、本発明では、修復後のアプリケーション処理結果を多重化システム間で照合することで、メモリのソフトエラーと同時に発生したメモリ以外のCPUやレジスタ等のソフトエラーを検出することができる。 Further, in the present invention, the result of application processing after repair is collated between multiplexed systems, so that soft error repair can be verified without additional processing such as an extra checksum in the memory data. Data can be written and read. Further, according to the present invention, by comparing the application processing result after the repair between the multiplexing systems, it is possible to detect a soft error such as a CPU or a register other than the memory that occurs simultaneously with the memory soft error.
また、本発明では、二重系以上の多重化システムにより修復データの正確性を照合により検証することができる。更に、本発明では、照合処理に対して、履歴情報(例えば、前回データ等)を利用することで、今回データ同士の照合エラーで直ちにシステムを終了させることなく、拡張した照合処理を実現することができる。これにより、本発明では、データ処理の安全性及び継続性を向上させたリアルタイムな診断修復処理を実現することができる。 In the present invention, the accuracy of the repair data can be verified by collation using a duplex system or more multiplexing system. Furthermore, in the present invention, by using history information (for example, previous data) for the collation process, an extended collation process is realized without immediately terminating the system due to a collation error between the current data. Can do. Thereby, in this invention, the real-time diagnostic repair process which improved the safety | security and continuity of data processing is realizable.
また、本発明では、照合もアプリケーション処理単位で行うことにより、多重化システム間で同一のアプリケーション処理を行う必要がなく、多重化システム間のアプリケーション処理のダイバーシティを確保することができる。したがって、本発明では、ソフトエラーに対するロバスト性が向上し、システムの安全性と可用性とを向上させることができる。 Further, according to the present invention, since collation is also performed in units of application processing, it is not necessary to perform the same application processing between multiplexed systems, and diversity of application processing between multiplexed systems can be ensured. Therefore, in the present invention, robustness against soft errors is improved, and the safety and availability of the system can be improved.
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。 The preferred embodiments of the present invention have been described in detail above, but the present invention is not limited to such specific embodiments, and various modifications, within the scope of the gist of the present invention described in the claims, It can be changed.
10 診断修復装置
11 メモリ(記憶手段)
12 データ管理テーブル
13 構造体定義ファイル
14 処理プログラム実行手段
15 照合データファイル
16 照合処理手段
17 通信手段
18 時間管理手段
21 構造体定義データ
31 入力装置
32 出力装置
33 ドライブ装置
34 補助記憶装置
35 メモリ装置
36 CPU(Central Processing Unit)
37 ネットワーク接続装置
38 記録媒体
10
DESCRIPTION OF
37
Claims (11)
所定のデータを3以上の複数のデータ領域に記憶する記憶手段と、
前記所定のデータを前記3以上の複数のデータ領域に異なる形式で書き込み、前記アプリケーションの実行時に前記3以上の複数のデータ領域にそれぞれ書き込んだデータを読み込んで照合し、照合の結果が不一致であった場合に所定の修復を行い、修復後のデータを用いて前記アプリケーションを実行する処理プログラム実行手段と、
前記アプリケーションを実行した結果と、少なくとも1つの他の診断修復装置で前記アプリケーションを実行した結果とを照合する照合処理手段とを有することを特徴とする診断修復装置。 In a diagnostic and repair device that executes processing by a preset application and compares the executed processing results to diagnose and repair data,
Storage means for storing predetermined data in three or more data areas;
The predetermined data is written in the three or more data areas in different formats, the data written in the three or more data areas is read and collated when the application is executed, and the collation result is inconsistent. Processing program execution means for performing a predetermined repair in the case of running and executing the application using the repaired data;
A diagnostic repair apparatus comprising: a collation processing unit configured to collate a result of executing the application with a result of executing the application by at least one other diagnostic repair apparatus.
前記異なる形式として、入力されたデータ、前記データの反転データ、及び前記データと所定のパターンとの論理演算により得られるパターンデータのうち、少なくとも2つの形式を前記3以上の複数のデータ領域に書き込むことを特徴とする請求項1に記載の診断修復装置。 The storage means
As the different formats, at least two formats among the input data, the inverted data of the data, and the pattern data obtained by a logical operation of the data and a predetermined pattern are written in the three or more data areas. The diagnostic repair device according to claim 1.
前記所定の修復処理として、読み出した3以上の複数のデータの多数決判定により正常データを決定し、決定された正常データを前記データ領域に書き込むことを特徴とする請求項1又は2に記載の診断修復装置。 The processing program execution means includes
3. The diagnosis according to claim 1, wherein as the predetermined restoration process, normal data is determined by a majority decision of a plurality of three or more read data, and the determined normal data is written to the data area. Repair device.
前記アプリケーションを実行した結果と、前記アプリケーションを実行するタイミングに同期させて前記他の診断修復装置で前記アプリケーションを実行した結果とを照合し、照合が不一致であった場合に、前記アプリケーションを前回実行して得られた結果を用いて照合を行うことを特徴とする請求項1乃至3の何れか1項に記載の診断修復装置。 The verification processing means includes
The result of executing the application is compared with the result of executing the application in the other diagnostic repair device in synchronization with the execution timing of the application, and if the verification does not match, the application is executed last time The diagnostic repair apparatus according to claim 1, wherein collation is performed using the result obtained in this manner.
前記照合処理手段は、前記複数回実行された結果に基づいて照合を行うことを特徴とする請求項1乃至4の何れか1項に記載の診断修復装置。 The program execution means executes the application a plurality of times under conditions set by a predetermined diversity diagnosis technique,
The diagnostic repair apparatus according to any one of claims 1 to 4, wherein the verification processing unit performs verification based on the result of the plurality of executions.
所定のデータを記憶手段の3以上の複数のデータ領域に記憶する記憶ステップと、
前記所定のデータを前記3以上の複数のデータ領域に異なる形式で書き込み、前記アプリケーションの実行時に前記3以上の複数のデータ領域にそれぞれ書き込んだデータを読み込んで照合し、照合の結果が不一致であった場合に所定の修復を行い、修復後のデータを用いて前記アプリケーションを実行する処理プログラム実行ステップと、
前記アプリケーションを実行した結果と、少なくとも1つの他の診断修復方法で前記アプリケーションを実行した結果とを照合する照合処理ステップとを有することを特徴とする診断修復方法。 In a diagnosis and repair method for executing processing by a preset application and comparing and executing data processing and performing data diagnosis and repair,
A storage step of storing predetermined data in three or more data areas of the storage means;
The predetermined data is written in the three or more data areas in different formats, the data written in the three or more data areas is read and collated when the application is executed, and the collation result is inconsistent. A processing program execution step for performing a predetermined repair in the case of performing the application using the repaired data;
A diagnostic repair method comprising: a collation processing step of collating a result of executing the application with a result of executing the application by at least one other diagnostic repair method.
前記異なる形式として、入力されたデータ、前記データの反転データ、及び前記データと所定のパターンとの論理演算により得られるパターンデータのうち、少なくとも2つの形式を前記3以上の複数のデータ領域に書き込むことを特徴とする請求項6に記載の診断修復方法。 The storing step includes
As the different formats, at least two formats among the input data, the inverted data of the data, and the pattern data obtained by a logical operation of the data and a predetermined pattern are written in the three or more data areas. The diagnostic repair method according to claim 6.
前記所定の修復処理として、読み出した3以上の複数のデータの多数決判定により正常データを決定し、決定された正常データを前記データ領域に書き込むことを特徴とする請求項6又は7に記載の診断修復方法。 The processing program execution step includes:
8. The diagnosis according to claim 6, wherein normal data is determined by majority determination of a plurality of three or more read data as the predetermined restoration process, and the determined normal data is written in the data area. Repair method.
前記アプリケーションを実行した結果と、前記アプリケーションを実行するタイミングに同期させて前記他の診断修復方法で前記アプリケーションを実行した結果とを照合し、照合が不一致であった場合に、前記アプリケーションを前回実行して得られた結果を用いて照合を行うことを特徴とする請求項6乃至8の何れか1項に記載の診断修復方法。 The matching processing step includes
The result of executing the application is collated with the result of executing the application by the other diagnostic repair method in synchronization with the timing of executing the application, and when the collation does not match, the application is executed last time. The diagnostic repair method according to any one of claims 6 to 8, wherein collation is performed using a result obtained in this manner.
前記照合処理ステップは、前記複数回実行された結果に基づいて照合を行うことを特徴とする請求項6乃至9の何れか1項に記載の診断修復方法。 In the program execution step, the application is executed a plurality of times under conditions set by a predetermined diversity diagnosis technique,
10. The diagnosis and repair method according to claim 6, wherein the collation processing step performs collation based on the result executed a plurality of times.
請求項1乃至5の何れか1項に記載の診断修復装置が有する各手段として機能させるための診断修復プログラム。 Computer
A diagnostic / repair program for causing the diagnostic / repair apparatus according to any one of claims 1 to 5 to function as each unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011253301A JP2013109532A (en) | 2011-11-18 | 2011-11-18 | Device, method and program for diagnosis and restoration |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011253301A JP2013109532A (en) | 2011-11-18 | 2011-11-18 | Device, method and program for diagnosis and restoration |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013109532A true JP2013109532A (en) | 2013-06-06 |
Family
ID=48706226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011253301A Pending JP2013109532A (en) | 2011-11-18 | 2011-11-18 | Device, method and program for diagnosis and restoration |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013109532A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015032860A (en) * | 2013-07-31 | 2015-02-16 | 日本電気株式会社 | Data correction circuit and data correction method |
JP2017111463A (en) * | 2015-12-14 | 2017-06-22 | ルネサスエレクトロニクス株式会社 | Semiconductor device, functional safety system, and program |
-
2011
- 2011-11-18 JP JP2011253301A patent/JP2013109532A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015032860A (en) * | 2013-07-31 | 2015-02-16 | 日本電気株式会社 | Data correction circuit and data correction method |
JP2017111463A (en) * | 2015-12-14 | 2017-06-22 | ルネサスエレクトロニクス株式会社 | Semiconductor device, functional safety system, and program |
US10303542B2 (en) | 2015-12-14 | 2019-05-28 | Renesas Electronics Corporation | Semiconductor device, functional safety system and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2722760B1 (en) | Semiconductor device | |
US8856595B2 (en) | Method for verifying an application program in a failsafe programmable logic controller, and programmable logic controller for performing the method | |
US20130262938A1 (en) | Method for providing a value for determining whether an error has occurred in the execution of a program | |
CN1971536A (en) | Correcting system and method of basic in-out system | |
JP5315748B2 (en) | Microprocessor, signature generation method, multiplexed system, and multiplexed execution verification method | |
CN107193249B (en) | Program development support device and program development support method | |
US20080052494A1 (en) | Method And Device For Operand Processing In A Processing Unit | |
KR101425704B1 (en) | Poison bit error checking code scheme | |
US10585772B2 (en) | Power supply diagnostic strategy | |
JP2013109532A (en) | Device, method and program for diagnosis and restoration | |
EP3955112A1 (en) | Method and apparatus for memory error detection | |
JP2001290710A (en) | Device for detecting data error | |
US8352817B2 (en) | Method for testing a memory device, as well as a control device having means for testing a memory | |
JP5213061B2 (en) | Mirroring control device, mirroring control circuit, mirroring control method and program thereof | |
US20210011717A1 (en) | Verified Stack Trace Generation And Accelerated Stack-Based Analysis With Shadow Stacks | |
WO2021038923A1 (en) | Control device, execution control method for user program, and system program | |
JP2005092695A (en) | Duplication controller, and method for determining equalization mode thereof | |
US20230153231A1 (en) | Method and computing environment for creating and applying a test algorithm for computational processes | |
US11880573B2 (en) | Disk array device, disk array control device, and disk array control method | |
US8145953B2 (en) | Programmable unit | |
CN105452985B (en) | Power supply diagnostic strategy | |
JP6275098B2 (en) | Control device and register failure recovery method | |
CN116931824A (en) | Method for running memory unit and executing application program in computer-aided mode | |
US7661056B2 (en) | Circuit arrangement for processing data | |
CN117687833A (en) | Method, device and storage medium for testing data security |