(57)【要約】【課題】高速にメモリ誤りを訂正する制御装置を提供する。【解決手段】制御装置１０は、プログラムのデータコードとこのデータコードに基づいて作成された第一検査コードとを入力する入力部１１と、パリティビットを付加させたデータコードと第一検査コードとを格納するプログラム格納メモリ１８と、パリティ検査を行いエラー発生時は、エラー発生信号ｓを送信するパリティ検査部１４と、パリティエラーが発生したメモリ上のアドレスを保持するアドレス保持部１５と、エラー発生信号ｓを受信した際に、保持されているアドレスを取得するアドレス取得部２０と、パリティエラーが発生していないアドレスに格納されているデータコードに基づいて復元用検査コードを作成する検査コード作成部２１と、復元用検査コードと第一検査コードとからエラー発生アドレスのデータコードを復元し、メモリ上に上書きする復元部２２と、を備える。【選択図】  図１
2014187523.tif 000002
【特許請求の範囲】
【請求項１】
プログラムのデータコードとこのデータコードに基づいて作成された第一検査コードとを入力する入力部と、
パリティビットを付加させた前記データコードと前記第一検査コードとを格納するプログラム格納メモリと、
前記プログラム格納メモリから前記データコードを読み出して、パリティ検査を行いエラー発生時は、エラー発生信号を送信するパリティ検査部と、
パリティエラーが発生した前記プログラム格納メモリのアドレスを保持するアドレス保持部と、
前記エラー発生信号を受信した際に、保持されているアドレスを取得するアドレス取得部と、
前記パリティエラーが発生していないアドレスに格納されているデータコードに基づいて復元用検査コードを作成する検査コード作成部と、
前記復元用検査コードと前記第一検査コードとからエラー発生アドレスのデータコードを復元し、前記プログラム格納メモリ上において上書きする復元部と、
を備えることを特徴とするメモリ誤りの訂正制御装置。
【請求項２】
請求項１に記載のメモリ誤りの訂正制御装置において、
前記入力部は、前記データコードに基づいて作成された第二検査コードを入力し、
前記プログラム格納メモリは、この入力した第二検査コードを格納し、
前記復元部は、データコードを復元し、この第二検査コードを用いて訂正の妥当性を検査して、上書きをすることを特徴とするメモリ誤りの訂正制御装置。
【請求項３】
請求項１または請求項２に記載のメモリ誤りの訂正制御装置において、
前記第一検査コードを作成する処理部を有することを特徴とするメモリ誤りの訂正制御装置。
【請求項４】
プログラムのデータコードとこのデータコードに基づいて作成された第一検査コードとを入力するステップと、
パリティビットを付加させた前記データコードと前記第一検査コードとをプログラム格納メモリに格納するステップと、
前記プログラム格納メモリから前記データコードを読み出して、パリティ検査を行いエラー発生時は、エラー発生信号を送信するステップと、
パリティエラーが発生した前記プログラム格納メモリのアドレスを保持するステップと、
前記エラー発生信号を受信した際に、保持されているアドレスを取得するステップと、
前記パリティエラーが発生していないアドレスに格納されているデータコードに基づいて復元用検査コードを作成するステップと、
前記復元用検査コードと前記第一検査コードとからエラー発生アドレスのデータコードを復元し、前記プログラム格納メモリ上において上書きするステップと、
を含むことを特徴とするメモリ誤りの訂正制御方法。
【請求項５】
コンピュータを、
プログラムのデータコードとこのデータコードに基づいて作成された第一検査コードとを入力する手段、
パリティビットを付加させた前記データコードと前記第一検査コードとをプログラム格納メモリに格納する手段、
前記プログラム格納メモリから前記データコードを読み出して、パリティ検査を行いエラー発生時は、エラー発生信号を送信する手段、
パリティエラーが発生した前記プログラム格納メモリのアドレスを保持する手段、
前記エラー発生信号を受信した際に、保持されているアドレスを取得する手段、
前記パリティエラーが発生していないアドレスに格納されているデータコードに基づいて復元用検査コードを作成する手段、
前記復元用検査コードと前記第一検査コードとからエラー発生アドレスのデータコードを復元し、前記プログラム格納メモリ上において上書きする手段、
として機能させることを特徴とするメモリ誤りの訂正制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリ誤りの訂正制御技術に関する。
【背景技術】
【０００２】
コンピュータを用いた制御装置では、記憶素子であるメモリ上のデータに異常が発生する、いわゆるメモリ誤りが懸念される。
そこで、メモリ誤りに対する信頼性を高める為、パリティビットを付加して誤り検出を可能とするパリティ付きメモリが採用されている。
しかしながら、パリティ付メモリだけでは、メモリ上でビット誤りが発生した場合、誤りが発生したビットのデータを訂正することができない。このため、制御装置はその動作を継続することができなくなる。
【０００３】
この問題を解決する為に、パリティ付きメモリなどのハードウェア資源をそのまま使用した状態で、メモリ誤りの訂正を行う技術が存在する（例えば、特許文献１、２）。
また、パリティ付きメモリの代わりに、異常となったデータの誤り訂正を可能とするＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ａｎｄ  Ｃｏｒｒｅｃｔｉｎｇ：誤り訂正符号）付のメモリを利用したシステムが広く知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許３７８８８２２号公報
【特許文献２】特開平５−５３９２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術は、既存のパリティ付きメモリを利用して誤り訂正を行うシステムを構築できるが、誤り訂正機能を有する新たなハードウェアを付加する必要がある。このため、既に稼働している装置について、ハードウェアの作り直し及び交換が必要になるという課題がある。この課題は、ＥＣＣ付きメモリを利用して装置を構築する場合においても同様である。
【０００６】
一方、特許文献２の技術は、新たなハードウェアを付加する必要は無いが、メモリ領域に格納されている先頭データから誤りの発生したビットを探索して訂正するため、誤り訂正に時間を要するという課題がある。
【０００７】
本発明はこのような事情を考慮してなされたもので、簡易な構成で高速にメモリ誤りを訂正することを可能とするメモリ誤りの訂正制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本実施形態のメモリ誤りの訂正制御装置は、プログラムのデータコードとこのデータコードに基づいて作成された第一検査コードとを入力する入力部と、パリティビットを付加させた前記データコードと前記第一検査コードとを格納するプログラム格納メモリと、前記プログラム格納メモリから前記データコードを読み出して、パリティ検査を行いエラー発生時は、エラー発生信号を送信するパリティ検査部と、パリティエラーが発生した前記プログラム格納メモリのアドレスを保持するアドレス保持部と、前記エラー発生信号を受信した際に、保持されているアドレスを取得するアドレス取得部と、前記パリティエラーが発生していないアドレスに格納されているデータコードに基づいて復元用検査コードを作成する検査コード作成部と、前記復元用検査コードと前記第一検査コードとからエラー発生アドレスのデータコードを復元し、前記プログラム格納メモリ上において上書きする復元部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明のメモリ誤りの訂正制御装置によれば、簡易な構成で高速にメモリ誤りを訂正することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るメモリ誤りの訂正制御装置の構成図。
【図２】本実施形態におけるメモリ誤りの訂正フローを表したブロック図。
【図３】本発明の第一実施形態に係る主制御部の制御方法を示すフローチャート。
【図４】本発明の第二実施形態に係る主制御部の制御方法を示すフローチャート。
【図５】本発明の第三実施形態に係る主制御部の制御方法を示すフローチャート。
【図６】（Ａ）、（Ｂ）は、本発明の第三実施形態に係る第一検査コード作成処理を示すサブルーチンのフローチャート。
【発明を実施するための形態】
【００１１】
（第一実施形態）
以下、本発明の実施形態を添付図面に基づいて説明する。
図１に示す本発明の実施形態に係るメモリ誤りの訂正制御装置１０（以下、制御装置１０とする）は、プログラムのデータコードとこのデータコードに基づいて作成された第一検査コードとを入力する入力部１１と、パリティビットを付加させたデータコードと第一検査コードとを格納するプログラム格納メモリ１８と、プログラム格納メモリ１８からデータコードを読み出して、パリティ検査を行いエラー発生時は、エラー発生信号ｓを送信するパリティ検査部１４と、パリティエラーが発生したプログラム格納メモリ１８のアドレスを保持するアドレス保持部１５と、エラー発生信号ｓを受信した際に、保持されているアドレスを取得するアドレス取得部２０と、パリティエラーが発生していないアドレスに格納されているデータコードに基づいて復元用検査コードを作成する検査コード作成部２１と、復元用検査コードと第一検査コードとからエラー発生アドレスのデータコードを復元し、プログラム格納メモリ１８上において上書きする復元部２２と、を備えることを特徴とする。
【００１２】
制御装置１０は、外部入出力部２３を介して、外部機器２５から（またはユーザから直接的に）処理対象となるデータを取り込み、主制御部１２の処理部１９において演算処理を実行する。そして、この実行結果を外部機器２５に出力して、プラント等の制御を実施するものである。
【００１３】
制御装置１０は、入力部１１と、主制御部１２と、パリティ生成部１３と、パリティ検査部１４と、アドレス保持部１５と、メインメモリ１６と、外部入出力部２３と、メモリバックアップ回路２４と、から構成される。また、保守ツール２６は、制御装置１０の外部に設けられる。
なお、メモリバックアップ回路２４は、停電時において、メインメモリ１６のプログラム格納メモリ１８に格納されているデータをバッテリーバックアップするものである。
【００１４】
保守ツール２６は、主制御部１２の処理部１９が演算処理に用いるプログラムを保有する。そして、このプログラムのデータコードに基づいて第一検査コードを作成する。
【００１５】
第一検査コードとは、プログラムのデータコードに基づいて水平パリティを作成したものである。
【００１６】
また、保守ツール２６は、プログラムについて修正や追加等がある場合は、プログラムの編集を行う。この編集の際には、編集後のデータコードに基づいて新たな第一検査コードを作成する。
【００１７】
保守ツール２６は、プログラムをプログラム格納メモリ１８へ格納する際、制御装置１０に対してプログラム書き込み要求を行う。そして、プログラムのデータコードとこのデータコードに基づいて作成した第一検査コードとを入力部１１に出力する。
【００１８】
入力部１１は、プログラムのデータコードと第一検査コードとを入力する。そして、主制御部１２の処理部１９による制御に従って、パリティ生成部１３へ出力する。
【００１９】
パリティ生成部１３は、入力されたプログラムのデータコードについて、パリティビットを生成して付加する。また、処理部１９による演算処理中に、ワークメモリ１７に随時格納されるデータについても、同様にパリティビットを生成して付加する。
【００２０】
メインメモリ１６は、ワークメモリ１７と、プログラム格納メモリ１８と、から構成されるメモリ領域を有する。このメモリは、データに基づいて生成されたパリティビットを格納することが可能なパリティ付メモリである。
【００２１】
プログラム格納メモリ１８は、パリティ生成部１３から、パリティビットが付加されたプログラムのデータコードと第一検査コードとを格納する。この際、プログラムを使用するときに用いる設定値情報についても格納する。なお、設定値情報のみをプログラム格納メモリ１８とは別のメモリ領域として分けて格納しても良い。
【００２２】
一方、ワークメモリ１７は、主制御部１２の処理部１９が演算処理に用いる情報データや演算結果等、随時入出力されるデータ等を格納する。したがって、ワークメモリ１７は、データの書き込みまたは読み出しが随時行われるメモリ領域である。
【００２３】
主制御部１２は、処理部１９と、アドレス取得部２０と、検査コード作成部２１と、復元部２２と、から構成される。
【００２４】
処理部１９は、外部入出力部２３を介し、外部機器２５から入力されるデータについて演算処理を実行する。
この処理の際、演算処理に用いるプログラムのデータをプログラム格納メモリ１８から読み出す。また、演算処理の必要に応じて、ワークメモリ１７から情報データ等の読み出しを行う。
【００２５】
パリティ検査部１４は、処理部１９がメインメモリ１６からデータを読み出す際に、パリティ検査を行う。そして、パリティエラーが発生した時は、エラー発生信号ｓを送信する。
【００２６】
なお、エラー発生信号ｓは、主制御部１２に対するＮＭＩ（Ｎｏｎ  Ｍａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ：マスク不可能割込み）通知とすることができる。この場合、処理部１９は、ＮＭＩの発生要因がパリティエラーによるものであるか否かを判断する。
【００２７】
アドレス保持部１５は、パリティエラーが発生した場合、エラーが発生したデータコードに係るメインメモリ１６（プログラム格納メモリ１８またはワークメモリ１７）のアドレス情報（以下、エラー発生アドレスと省略する）を保持する。
【００２８】
アドレス取得部２０は、処理部１９を介して、エラー発生信号ｓを受信する。このとき、アドレス保持部１５において保持されているエラー発生アドレスを取得する。なお、処理部１９は、エラー発生アドレスがプログラム格納メモリ１８上のアドレスである場合のみ、エラー発生信号ｓをアドレス取得部２０に送信する。
【００２９】
検査コード作成部２１は、プログラム格納メモリ１８において、パリティエラーが発生していないアドレス、つまりエラー発生アドレス以外のアドレスに格納されているデータコードに基づいて復元用検査コードを作成する。
【００３０】
復元用検査コードとは、エラー発生アドレス以外のアドレスに格納されているデータコードに基づいて水平パリティを作成したものである。
【００３１】
復元部２２は、作成した復元用検査コードとプログラム格納メモリ１８上の第一検査コードとから、エラー発生アドレスのデータコードを復元する。具体的には、復元検査コードと第一検査コードとの排他的論理和を計算して復元する。
【００３２】
そして、計算により復元されたデータコードを、プログラム格納メモリ１８上のエラー発生アドレスに上書し、メモリ誤りを訂正する。
【００３３】
図２は、具体的なメモリ誤りの訂正フローを表したブロック図である（適宜、図１を参照）。
プログラム格納メモリ１８は、メモリ領域上のアドレスＡ１〜Ａｎにおいて、それぞれパリティビットＰ１〜Ｐｎが付加されたデータコードＤ１〜Ｄｎを格納しているとする。さらに、データコードＤ１〜Ｄｎに基づいて作成された第一検査コード（水平パリティ）を格納している。
【００３４】
ここで、アドレスＡｘに格納されるデータコードＤｘ内での誤りビットにより、パリティエラーが発生した場合について検討する。
【００３５】
アドレス取得部２０は、処理部１９を介して、パリティエラーによるエラー発生信号ｓを受信して、アドレス保持部１５からエラー発生アドレスＡｘを取得する。
【００３６】
検査コード作成部２１は、プログラム格納メモリ１８において、エラー発生アドレスＡｘ以外のアドレス（Ａ１〜Ａｘ−１とＡｘ＋１〜Ａｎ）に格納されているデータコードに基づいて復元用検査コード２７（水平パリティ）を作成する。
【００３７】
復元部２２は、作成した復元用検査コード２７とプログラム格納メモリ上の第一検査コードとから、排他的論理和２８を用いてエラー発生アドレス内のデータコードを全て復元する。
そして、復元されたデータコード２９を、エラー発生アドレスＡｘに上書きして、訂正する。
【００３８】
したがって、エラー発生アドレス内のデータコードについて、本来の正しいデータコードを復元し、上書きすることにより、メモリ誤りを訂正することができる。
また、エラー発生アドレス内のデータコードを一括して全て復元するため、エラー発生アドレス内で複数のビット誤りが発生した場合においても復元することができる。
【００３９】
また、アドレス保持部１５が保持するエラー発生アドレスを利用するため、メモリ領域内のビット誤りが発生している位置を探索する必要はない。このため、高速にビット誤りを復元することができる。
【００４０】
図３は、主制御部１２の制御方法についてのフローチャートを示す。
主制御部１２の処理部１９は、電源投入又は装置リセットにより制御装置１０の起動が開始されると、制御装置１０内のハードウェア、ソフトウェアの初期化を実行する（Ｓ１０）。
【００４１】
処理部１９は、外部入出力部２３を介し、外部機器２５から処理対象となるデータを入力する（Ｓ１１）。そして、演算処理を実行するため、メインメモリ１６からプログラムと演算処理に必要なデータ情報とを読み出す（Ｓ１２）。
【００４２】
この読み出しの際に、パリティエラーが発生しない場合は（Ｓ１３：ＮＯ）、読み出したプログラムに従って演算処理を実行する（Ｓ１４）。そして、外部入出力部２３を介して演算結果を出力する（Ｓ１５）。
処理部１９は、外部入力（Ｓ１１）、演算処理（Ｓ１４）、外部出力（Ｓ１５）からなる一連の動作を繰り返し実行して、プラント等の制御を実施する。
【００４３】
次に、パリティエラーが発生した場合について検討する（Ｓ１３：ＹＥＳ）。パリティエラーが発生した際、処理部１９は、パリティ検査部１４からエラー発生信号ｓを受信する。
【００４４】
処理部１９は、エラー発生アドレスがプログラム格納メモリ１８上のアドレスであるかを判断する（Ｓ１６）。
エラー発生アドレスがプログラム格納メモリ１８上の場合（Ｓ１６：ＹＥＳ）、アドレス取得部２０は、エラー発生アドレスに係る情報をアドレス保持部１５から読み出して取得する（Ｓ１７）。なお、プログラム格納メモリ１８上でない場合は（Ｓ１６：ＮＯ）、制御装置１０全体のリセット処理を実行する（Ｓ２１）。
【００４５】
検査コード作成部２１は、エラー発生アドレス以外のデータコードから復元用検査コードを新たに計算して求める（Ｓ１８）。
【００４６】
復元部２２は、この求めた復元用検査コードと予めプログラム格納メモリ１８に書き込まれている第一検査コードとから、エラー発生アドレスに本来格納されていたデータコードを復元する（Ｓ１９）。そして、この復元したデータコードを、エラー発生アドレスへ上書き訂正する（Ｓ２０）。
【００４７】
なお、処理部１９は、パリティエラー発生による誤ったデータコードを既に読み込んでいる。このため、誤制御を避ける為、制御装置１０全体のリセット処理を実行する（Ｓ２１）。
【００４８】
したがって、メモリの誤りが発生した場合において、主制御部１２の制御動作、つまりソフトウェアの動作により、メモリ誤りを訂正することができる。つまり、メモリ誤りが発生した際に、保守ツール２６を用いユーザのマニュアル操作により、再度プログラムを格納する必要はない。
【００４９】
（第二実施形態）
図４は、本発明の第二実施形態に係る主制御部１２の制御方法についてのフローチャートを示す。なお、第一実施形態と同様の構成には同一の符号を付し、重複する動作について説明を省略する（適宜、図１を参照）。
【００５０】
まず、第二実施形態における第一実施形態との相違点について説明する。
入力部１１は、プログラムのデータコードに基づいて作成された第二検査コードを入力する。そして、プログラム格納メモリ１８は、この第二検査コードを格納する。
【００５１】
第二検査コードとは、プログラム格納メモリ１８のメモリ領域全体に格納されるデータコードに基づいてチェックサム又はＣＲＣコードを求めたものである。なお、第二検査コードは、第一検査コードと同様に保守ツール２６により作成される。
【００５２】
復元部２２は、エラー発生アドレス内のデータコードを復元した後、この第二検査コードを用いて訂正の妥当性を検査して、データコードの上書きを行う。
【００５３】
つまり、復元部２２は、復元したデータコードで上書き訂正する前に、訂正した場合におけるメモリ領域全体のデータコードに基づき第二検査コードを作成する。そして、この検査コードと、予めプログラム格納メモリに格納されている第二検査コードとを比較することで、訂正が妥当であるかの検査を行う。
【００５４】
具体的な制御動作について説明する。
主制御部１２の復元部２２は、復元したデータコードにより訂正した場合におけるメモリ領域全体のデータコードに基づいて第二検査コードを求める（Ｓ２２）。
【００５５】
そして、求めた第二検査コードと、予めプログラム格納メモリ１８に書き込まれている第二検査コードとを比較する（Ｓ２３）。
【００５６】
第二検査コードが一致した場合（Ｓ２３：ＹＥＳ）、復元したデータコードを、エラー発生アドレスへ上書きして訂正する（Ｓ２０）。
なお、第二検査コードが一致しない場合は（Ｓ２３：ＮＯ）、制御装置１０全体のリセット処理を実行する（Ｓ２１）。
【００５７】
したがって、第二検査コードを用いることにより、復元されたデータコードによる訂正が、妥当であるか否かを検査することができる。これにより、メモリ誤りが発生した場合において、妥当性が確認された信頼性の高いデータコードにより訂正することができる。
【００５８】
（第三実施形態）
図５は、本発明の第三実施形態に係る主制御部１２の制御方法についてのフローチャートを示す。
第三実施形態における第一実施形態との相違点は、主制御部１２の処理部１９（図１）により、第一検査コードを作成する点にある。なお、第一実施形態と同様の構成には同一の符号を付し、重複する動作について説明を省略する（適宜、図１を参照）。
【００５９】
第一実施形態において、第一検査コードは、保守ツール２６により作成され、入力部１１を介して、プログラム格納メモリ１８に格納されていた。
一方、第三実施形態では、主制御部１２の処理部１９が、プログラム格納メモリ１８のデータを読み出して、第一検査コードを作成する。そして、プログラム格納メモリ１８への格納を行う。
【００６０】
具体的な制御動作について説明する。
主制御部１２の処理部１９は、電源投入又は装置リセットにより制御装置１０の起動が開始されると、ハードウェア、ソフトウェアの初期化を実行する（Ｓ１０）。
【００６１】
ここで、図６（Ａ）、（Ｂ）は、処理部１９による第一検査コード作成処理を示している。図６（Ａ）を用いて第一検査コード作成Ａ（Ｓ２４）について説明する。
処理部１９は、制御装置１０の電源投入時である場合は（Ｓ２４Ａ：ＹＥＳ）、プログラム格納メモリ１８のメモリ領域全体のデータを順次読み込む（Ｓ２４Ｂ）。
【００６２】
そして、読み出したデータコードに基づいて第一検査コードを作成する（Ｓ２４Ｃ）。続けて、この作成した第一検査コードをプログラム格納メモリ１８へ格納して（Ｓ２４Ｄ）、第一検査コード作成Ａ（Ｓ２４）を終了する。なお、電源投入時でない場合は（Ｓ２４Ａ：ＮＯ）、第一検査コードを作成せずに終了する。
【００６３】
処理部１９は、図５の制御フローに戻り、第一実施形態と同様、外部入力を開始して（Ｓ１１）、演算処理（Ｓ１４）、外部出力（Ｓ１５）を実行する。
【００６４】
続いて、図６（Ｂ）を用いて第一検査コード作成Ｂステップ（Ｓ２５）について説明する。
処理部１９は、プログラムの修正、追加により、保守ツール２６からプログラム書き込み要求がされた場合は（Ｓ２５Ａ：ＹＥＳ）、プログラム格納メモリ１８のメモリ領域全体のデータを順次読み込む（Ｓ２５Ｂ）。
【００６５】
そして、読み出したデータコードに基づいて第一検査コードを作成する（Ｓ２５Ｃ）。続けて、この作成した第一検査コードをプログラム格納メモリ１８へ格納して（Ｓ２５Ｄ）、第一検査コード作成Ｂ（Ｓ２５）を終了する。なお、プログラム書き込み要求が無い場合は（Ｓ２５Ａ：ＮＯ）、第一検査コードを作成せずに終了する。
【００６６】
そして、処理部１９は、図５の制御フローに戻り、処理動作を継続して行う。
図５では、外部出力（Ｓ１５）後に、第一検査コード作成Ｂ（Ｓ２５）を実行する構成としたが、装置稼働中にプログラム書き込み要求があった際は、第一検査コードを作成する構成としてもよい（例えば、演算入力（Ｓ１１）後）。
また、第一検査コード作成Ａ（Ｓ２４）及び第二検査コード作成Ｂ（Ｓ２５）を併せて実行する構成としているが、いずれか一方を省略してもよい。
【００６７】
なお、処理部１９は、第一検査コード作成の際に、データコードに基づいて第二検査コードを作成し、プログラム格納メモリ１８へ格納することができる。
【００６８】
したがって、処理部１９は、電源投入時又は装置稼働中において、エラー発生アドレス内のデータコード復元に用いる第一検査コードを作成することができる。つまり、メモリ誤りが発生した場合、処理部１９により作成された第一検査コードを用いて、メモリ誤りを復元して訂正することができる。これは、保守ツール２６において、第一検査コードを作成する機能がない場合に有効となる。
【００６９】
以上述べた少なくとも一つのメモリ誤りの訂正制御装置１０によれば、アドレス保持部１５により保持されたエラー発生アドレスを利用して、第一検査コードとエラー発生アドレス以外のアドレスに格納されているデータコードに基づいて作成された復元用検査コードとからデータコードを復元することにより、簡易な構成で高速にメモリ誤りを訂正することを可能となる。
【００７０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７１】
１０  メモリ誤りの訂正制御装置
１１  入力部
１２  主制御部
１３  パリティ生成部
１４  パリティ検査部
１５  アドレス保持部
１６  メインメモリ
１７  ワークメモリ
１８  プログラム格納メモリ
１９  処理部
２０  アドレス取得部
２１  検査コード作成部
２２  復元部
２３  外部入出力部
２４  メモリバックアップ回路
２５  外部機器
２６  保守ツール
２７  復元用検査コード
２８  排他的論理和
２９  復元されたデータコード
ｓ  エラー発生信号
【図１】
2014187523.tif 000003
【図２】
2014187523.tif 000004
【図３】
2014187523.tif 000005
【図４】
2014187523.tif 000006
【図５】
2014187523.tif 000007
【図６】
2014187523.tif 000008