(57)【要約】  装置内のメモリにおけるエラーを検出して訂正するためのシステムおよび方法は、第１のメモリ内の第１の所定の位置に記憶されたデータのエラー値を生成するステップを含む。生成されたエラー値は、エラーメモリ内の各値が第１のメモリ内の所定の位置に記憶された少なくとも二つのデータ値から計算されるエラーメモリに記憶された対応するエラー値と比較される。第１のメモリの第１の所定の位置に記憶されたデータは、もし生成されたエラー値がエラーメモリに記憶された対応するエラー値とは異なる場合に、第１のメモリに記憶されたデータと同じである、第２のメモリの第１の所定の位置に記憶されたデータで書き換えられる。
2008523503.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する第１のメモリと、
前記第１のメモリに記憶された同じデータを記憶する第２のメモリと、
エラーデータの各々の値が前記第１のメモリ内の所定の位置に記憶された少なくとも二つのデータ値から計算される、前記第１のメモリに関するエラーデータを記憶するエラーメモリと、
前記第１のメモリ内の第１の所定の位置に記憶されたデータのエラー値を生成して、この生成されたエラー値と前記エラーメモリに記憶された対応するエラー値とを比較するように構成されたエラー検出ユニットと、
前記生成されたエラー値が前記エラーメモリに記憶された対応するエラー値とは異なることを前記エラー検出ユニットが決定した場合に前記第１のメモリの前記第１の所定の位置に記憶されたデータを前記第２のメモリの前記第１の所定の位置に記憶されたデータで書き換えるように構成されたデータ制御ユニットと、を備える装置。
【請求項２】
前記第１のメモリは複数の第１のメモリバンクを備え、前記第２のメモリは複数の第２のメモリバンクを備えており、また
前記第１の所定の位置は、前記複数の第１のメモリバンクの各々における同じ位置と前記複数の第２のメモリバンクの各々における同じ位置とに対応する、請求項１に記載の装置。
【請求項３】
前記エラー値はパリティ値である、請求項１に記載の装置。
【請求項４】
前記エラーメモリは前記第２のメモリに関するエラーデータを記憶し、前記第２のメモリの前記エラーデータの各値は前記第２のメモリ内の所定の位置に記憶された少なくとも二つのデータ値から計算される、請求項１に記載の装置。
【請求項５】
前記エラー検出ユニットは更に、前記第２のメモリ内の第１の所定の位置に記憶されたデータのエラー値を生成して、前記生成された値と前記エラーメモリに記憶された前記第２のメモリのエラーデータの対応するエラー値とを比較するように構成され、また
前記データ制御ユニットは更に、前記生成されたエラー値が前記エラーメモリに記憶された前記第２のメモリのエラーデータの対応するエラー値とは異なることを前記エラー検出ユニットが決定した場合に、前記第２のメモリの前記第１の所定の位置に記憶されたデータを前記第１のメモリの前記第１の所定の位置に記憶されたデータで書き換えるように構成される、請求項４に記載の装置。
【請求項６】
前記エラー検出ユニットは更に、前記第１のメモリの前記第１の所定の位置に記憶されたデータを前記第２のメモリの前記第１の所定の位置に記憶されたデータと比較するように構成され、また
前記データ制御ユニットは更に、前記第１のメモリの前記第１の所定の位置に記憶されたデータと前記第２のメモリの前記第１の所定の位置に記憶されたデータとが同じでない場合に前記装置を中断して再始動するように構成される、請求項１に記載の装置。
【請求項７】
第１のメモリ内の第１の所定の位置に記憶されたデータのエラー値を生成するステップと、
前記生成されたエラー値と、エラーメモリ内の各値が前記第１のメモリ内の所定の位置に記憶された少なくとも二つのデータ値から計算される、エラーメモリに記憶された対応するエラー値とを比較するステップと、
前記生成されたエラー値が前記エラーメモリに記憶された対応するエラー値とは異なる場合に、前記第１のメモリの前記第１の所定の位置に記憶されたデータを前記第１のメモリに記憶されたデータと同じである、第２のメモリの第１の所定の位置に記憶されたデータで書き換えるステップと、を備える、装置内のメモリにおけるエラーを検出して訂正するための方法。
【請求項８】
前記第１のメモリは複数の第１のメモリバンクを備え、前記第２のメモリは複数の第２のメモリバンクを備えており、また
前記第１の所定の位置は、前記複数の第１のメモリバンクの各々における同じ位置と前記複数の第２のメモリバンクの各々における同じ位置とに対応する、請求項７に記載の方法。
【請求項９】
前記エラー値はパリティ値である、請求項７に記載の方法。
【請求項１０】
前記エラーメモリは前記第２のメモリに関するエラーデータを記憶し、前記第２のメモリの前記エラーデータの各値は前記第２のメモリ内の所定の位置に記憶された少なくとも二つのデータ値から計算される、請求項７に記載の方法。
【請求項１１】
前記方法は更に
前記第２のメモリ内の第１の所定の位置に記憶されたデータのエラー値を生成するステップと、
前記生成されたエラー値と、前記エラーメモリに記憶された前記第２のメモリのエラーデータの対応するエラー値とを比較するステップと、
前記生成されたエラー値が前記エラーメモリに記憶された前記第２のメモリのエラーデータの対応するエラー値とは異なる場合に、前記第２のメモリの前記第１の所定の位置に記憶されたデータを前記第１のメモリの前記第１の所定の位置に記憶されたデータで書き換えるステップと、を備える、請求項１９に記載の方法。
【請求項１２】
前記方法は更に
前記第１のメモリの前記第１の所定の位置に記憶されたデータを前記第２のメモリの前記第１の所定の位置に記憶されたデータと比較するステップと、
前記第１のメモリの前記第１の所定の位置に記憶されたデータと前記第２のメモリの前記第１の所定の位置に記憶されたデータとが同じでない場合に前記装置を中断して再始動するステップと、を備える、請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはエラー検出に関し、より特定的にはメモリ周辺装置における改良されたエラー検出のためのシステムと方法とに関する。
【背景技術】
【０００２】
クリティカル機能を動作させる如何なる電子システムにおいても、ある一定のあり得る程度にエラーを検出する能力を有することは有用である。これらのエラーは、電子部品への、特にランダムアクセスメモリ（ＲＡＭ）の大きなバンクへの放射線効果に起因するランダムエラーを含む種々の源から発生し得る。ＲＡＭ装置は、もし未検出のまま過ぎれば誤ったシステム動作になり得る放射線誘導ビット変化を受けやすい。ビットエラーを訂正する能力はまた、放射線誘導ビットエラーにもかかわらずシステムが動作を続行することを可能にするので、望ましい。
【０００３】
従来のシステムでは設計は、エラー検出・訂正を遂行するためにハミング符号ベースのエラー検出・訂正（ＥＤＣ）方式を組み込んでいる。これらの方式は、単一ビット検出・訂正のためには十分である。しかしながらＲＡＭ装置形状がより小さくなるにつれて、個々の放射線事象は、より高い確率で同じ装置内において多数のビットに影響し始めている。このようなメモリ装置に関するエラー率は、ビットアワー当たり約１．５Ｅ−１０エラーである。１２８メガビットという所与のメモリサイズに関しては、メモリシステムエラー率は、１時間当たり１．５Ｅ−１０×１．２８Ｅ８＝０．００１９２障害、あるいは５００時間当たり１訂正不能事象である。ＥＤＣは２ビットを超えるビット障害でも検出できない。したがってある幾つかのエラーは、ＥＤＣによって検出可能でなく、クリティカル機能を行うシングルスレッド・メモリシステムのために見逃しエラー率を余りに高くし過ぎている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがってソフトエラーによる再始動率がゼロになるようにすべてのエラーを検出して訂正することが望ましい。
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、ある装置内のメモリにおけるエラーを検出して訂正するためのシステムと方法は、第１のメモリ内の第１の所定の位置に記憶されたデータのエラー値を生成するステップを含む。生成されたエラー値は、エラーメモリ内の各エラー値が第１のメモリ内の所定の位置に記憶された少なくとも二つのデータ値から計算される、エラーメモリに記憶された対応するエラー値と比較される。第１のメモリの所定の位置に記憶されたデータは、もし生成されたエラー値がエラーメモリに記憶された対応するエラー値とは異なる場合に、第１のメモリに記憶されたデータと同じである、第２のメモリの第１の所定の位置に記憶されたデータで書き換えられる。
【０００６】
本発明の更なる特徴、態様および利点は、付属の図面の図と共に考察されるとき、下記の好ましい実施形態の詳細な説明から明らかになる。
【発明を実施するための最良の形態】
【０００７】
図１は、本発明に一致する改良されたエラー検出システムで使用され得るメモリおよびエラー符号器システムのブロック図である。図１に示すようにこのメモリおよびエラー符号化システムは、メモリ１０とエラー符号器２０とエラーメモリ３０とを含む。メモリ１０は、複数のメモリバンク１２、１４、１６、１８を含む。図１には４個のメモリバンク１２、１４、１６、１８が示されているが、メモリ１０が一つ以上のメモリバンクを備え得ること、あるいは別々のメモリバンクを有する構成とは異なる構成を持ち得ることは理解されるべきである。
【０００８】
メモリバンク１２、１４、１６、１８の各々は、メモリ１０に６４ビット幅を与えるように合同する１６ビット幅を有する。各メモリバンク１２、１４、１６、１８の奥行きは任意サイズＮを持ち得るので、各メモリバンク１２、１４、１６、１８は１６×Ｎのサイズを持ち、またメモリ１０は６４×Ｎのサイズを有する。図１に示すメモリバンク１２、１４、１６、１８とメモリ１０のサイズと幅は、単に例示的であって、メモリ１０が使用されることになる特定のアプリケーションのために必要とされるように調整され得る。メモリ１０は好ましくは、ＲＡＭ装置、例えばフラッシュメモリまたはＮＶＲＡＭとして実現されるが、他のタイプのメモリも可能である。メモリバンク１２、１４、１６、１８の１６ビット出力の各々は、エラー符号器２０に結合される。
【０００９】
エラー符号器２０は、メモリ１０のメモリバンク１２、１４、１６、１８からデータの６４ビットを受け取り、メモリ１０から受け取られたデータの６４ビットの各セットに関してエラーデータの１６ビットを生成する。エラー符号器２０は好ましくは、メモリバンク１２、１４、１６、１８から各々１ビットで４個のデータビットから１個のエラー値を生成するように構成される。更に各メモリバンク１２、１４、１６、１８から選択されたビットは好ましくは、各メモリバンクの同じ対応する位置に存在する。例えばエラービットＥＤ００は、それぞれメモリバンク１２、１４、１６、１８のデータビットｂ００、ｂ１６、ｂ３２およびｂ４８からエラー符号器２０によって計算され得る。一般にエラーデータを計算するために選択されたデータビットは、他の組合せもあり得るが、好ましくはこの組合せはメモリ１０内の所定の位置に基づいている。エラーデータを作成するプロセスは、メモリバンク１２、１４、１６、１８内の１６ビットデータのＮ個のレベルの各々に関して繰り返される。
【００１０】
エラー符号器２０によって生成されたエラーデータは、エラーデータを記憶するエラーメモリ３０に供給される。エラーメモリ３０は好ましくは、メモリバンク１２、１４、１６、１８と同じサイズと幅を有するように構成されるが、他のサイズおよび幅の構成も可能である。
【００１１】
図２は、本発明に一致する改良されたエラー検出システムで使用され得るエラー符号器のブロック図である。図２に示すようにエラー符号器、例えば図１のエラー符号器２０は、データインレジスタ２２とエラー発生器２４とエラーデータレジスタ２６とを含む。データをエラー符号器２０に与えるメモリ１０が図１に示すように設計されていると仮定すると、データインレジスタ２２は、メモリ１０からメモリデータの６４ビットを受け取って記憶する。データインレジスタ２２は、メモリ１０からのデータの６４ビットの各々を記憶できる６４ビットレジスタであり得る。データインレジスタ２２のサイズは、メモリ１０のビット幅にしたがって調整され得る。データインレジスタ２２はまた、エラー符号器２０によって使用され得るデータの他のビットを記憶するように、メモリ１０のビット幅より大きくされることも可能である。
【００１２】
データインレジスタ２２は、エラー発生器２４にメモリデータの６４ビットを供給する。エラー発生器は、メモリデータの６４ビットからエラーデータの１６ビットを生成する。エラーデータの各ビットは好ましくは、各エラービットを計算するために使用されるメモリデータのビットのパリティ値である。例えばエラービットＥＤ００は、メモリ１０のデータビットｂ００、ｂ１６、ｂ３２およびｂ４８から結果として得られるパリティ値としてエラー発生器２４によって計算され得る。パリティ値は本質的に、パリティ値を計算するために使用されたメモリデータビットのグループが奇数個または偶数個の１を持っているかどうかを示す。その結果、もしメモリバンク１２、１４、１６、１８の一つにおけるある特定の位置にエラーが存在すれば、メモリデータビットのグループ内の１の数は変化し、結果として得られるパリティ値は、エラーが発生する前に計算されたパリティ値とはもはや一致しないであろう。
【００１３】
パリティ値を計算するために、下記の方程式にしたがって１６個のエラービットが計算され得る：
【００１４】
ＥＥｋ＝ｂｋＸＯＲｂｋ＋１６ＸＯＲｂｋ＋３２ＸＯＲｂｋ＋４８
【００１５】
ここでｋは０と１５との間の整数値であり、ＸＯＲは排他的ＯＲ演算である。この方程式は、メモリ１０とエラーメモリ３０の構成にしたがって調整され得る。例えばエラーメモリ３０は、より大きなエラーデータを保持するようにサイズ的に大きくされることができ、またパリティ値がメモリビットのより小さなグループから、またはメモリビットの多数の組合せから計算されることを可能にし得る。
【００１６】
エラー発生器２４によって生成されたエラーデータは、エラーデータレジスタ２６に供給される。エラーデータレジスタ２６は好ましくは、１６ビットレジスタとして構成されるが、エラーデータレジスタ２６のサイズは、エラー発生器２４から出力されるエラーデータの量にしたがって調整され得る。エラーデータレジスタ２６は、出力データをエラーメモリ３０に与える前にその出力データを記憶する。データインレジスタ２２とエラー発生器２４とエラーデータレジスタ２６とによって実行されるエラー生成プロセスは、メモリデータの各ビットがエラーメモリ３０に記憶された少なくとも１個のエラービットに関連付けられるように、メモリ１０によって与えたれた６４ビットデータの各グループに関して繰り返し実行される。
【００１７】
図３は、本発明に一致する改良されたエラー検出システムで使用され得るエラー検出器のブロック図である。図３に示すようにエラー検出器４０は、メモリデータインレジスタ４２とエラーデータインレジスタ４３とエラー発生器４４とエラーデータ比較器４６とエラーデータ検出データレジスタ４８とを含む。エラー検出器は、メモリ１０内に何らかのビットエラーが存在するかどうかを検出するためにメモリ１０からのメモリデータとエラーメモリ３０からのエラーデータとを使用する。
【００１８】
メモリ１０とエラーメモリ３０とが図１に示すように設計されていると仮定すると、メモリデータインレジスタ４２はメモリ１０からのメモリデータの６４ビットを受け取って記憶し、エラーデータインレジスタ４３はエラーメモリ３０からのエラーデータの１６ビットを受け取って記憶する。メモリデータインレジスタ４２は、メモリ１０からのデータの６４ビットの各々を記憶できる６４ビットレジスタであることが可能であり、エラーデータインレジスタ４３は、エラーメモリ３０からのデータの１６ビットの各々を記憶できる１６ビットレジスタであり得る。メモリデータインレジスタ４２とエラーデータインレジスタ４３のサイズは、それぞれメモリ１０とエラーメモリ３０のビット幅にしたがって調整され得る。
【００１９】
メモリデータインレジスタ４２は、メモリデータの６４ビットをエラー発生器４４に供給する。エラー発生器４４は好ましくは、メモリデータの６４ビットからエラーデータの１６ビットを生成するようにエラー符号器２０のエラー発生器２４と同じ様に構成される。エラーデータの各ビットは好ましくは、各エラービットを計算するために使用されるメモリデータのビットのパリティ値である。
【００２０】
エラー発生器４４によって生成されるエラーデータとエラーデータインレジスタ４３からのエラーデータは、エラーデータ比較器４６に供給される。エラーデータ比較器４６は、エラー発生器４４によって生成されたエラーデータをエラーデータインレジスタ４３からのエラーデータと比較する。もしこれら２セットのエラーデータのビットのすべてが互いに一致すれば、メモリデータインレジスタ４２にロードされたメモリデータは正しい。しかしながら、もしあるビットが一致しなければ、メモリデータインレジスタ４２にロードされたメモリデータにはエラーが存在する。特にエラーは、エラーデータの不一致ビット（単数または複数）に存在する。例えばもし不一致エラービットがビットＥＤ００であれば、エラービットＥＤ００を計算するために使用された位置に、すなわちｂ００、ｂ１６、ｂ３２およびｂ４８に記憶されたメモリデータにエラーが存在することが認められる。下記に説明されるようにメモリ１０内のデータは、メモリ１０と同じデータを記憶するバックアップメモリまたはスレーブメモリからのデータによってこれらの位置のデータを書き換えることによって訂正され得る。エラーデータ比較器４６によってエラーが検出されると、エラー信号４９が生成される。
【００２１】
もしエラーが検出されるとエラー信号４９を生成することに加えてエラーデータ比較器４６は、エラー検出レジスタ４８にデータの１６ビットを出力する。このデータはエラーデータのどのビットが一致して、エラーデータのどのビットが一致しないかを示す。例えばもしエラーデータの１６ビットが比較されれば、エラーデータ比較器４６から出力されるデータは各一致するペアのエラービットを第１のレベル例えば０に設定し、各不一致ペアのエラービットを第２のレベル例えば１に設定するであろう。エラー検出レジスタ４８は、エラーデータ比較器４６から出力されたデータを受け取って記憶する。エラー検出レジスタ４８は好ましくは、１６ビットレジスタであるが、エラーデータのビット幅にしたがって異なるサイズにされることもあり得る。エラー検出レジスタ４８は、一致するエラービットと不一致のエラービットとを識別するエラー検出データを出力する。不一致エラービットは、メモリデータ内のエラーの位置を識別する。特にメモリデータ内のエラーの位置は、エラーメモリ３０に記憶されたエラーデータの対応するビットに一致しないエラーデータのビットを生成するために使用されたメモリデータ内のビットに対応する。
【００２２】
図４は、本発明に一致する改良されたエラー検出システムのブロック図である。図４に示すようにこの改良されたエラー検出システムは、メモリ１０とエラー符号器２０とエラーメモリ３０とエラー検出器４０とを含む。改良されたエラー検出システムはまた、メモリ５０とエラーメモリ６０とデータ制御ユニット７０とを含む。
【００２３】
メモリ５０は好ましくは、図１に関して上記に説明されたようなメモリ１０と同じ様に構成される。更にメモリ５０は、メモリ１０に記憶される同じデータを記憶させられる。この様にメモリ５０は、主メモリまたはマスターメモリとして機能するメモリ１０に対するバックアップメモリまたはスレーブメモリとして機能する。
【００２４】
同様にエラーメモリ６０は好ましくは、図１に関して上記に説明されたようなエラーメモリ３０と同じ様に構成される。エラーメモリ６０は、メモリ５０に記憶されたデータからエラー符号器２０によって生成されたエラーデータを記憶する。エラー符号器２０とエラー検出器４０は図４では単一要素として示されているが、マスターメモリとスレーブメモリの各々に関して別々のエラー符号器２０と別々のエラー検出器４０が存在し得ることは理解されるべきである。
【００２５】
データ制御ユニット７０は、この改良されたエラー検出システムの要素の各々の動作を制御するように構成される。データ制御ユニット７０は好ましくは、各要素間の正しいデータ転送を保証するために各要素に制御信号、データ信号、タイミング信号およびアドレス信号を供給する。例えばエラー検出器４０からのエラー信号に応答してデータ制御ユニット７０は、メモリ５０がそのエラーチェックを通したと仮定して、エラーを持つと識別された位置におけるメモリ５０内の対応するデータによるメモリ１０内のデータの書き換えを制御できる。
【００２６】
図５は、本発明に一致する図４の改良されたエラー検出システムを使用するエラー検出プロセスの流れ図である。図５に示すようにデータ制御ユニット７０は、メモリ１０とメモリ５０からロードされるべきメモリデータを識別する（ステップ５０２）。この場合、メモリ１０は主メモリまたはマスターメモリとして機能し、メモリ５０はバックアップメモリまたはスレーブメモリとして機能する。各メモリ内の識別されたデータは同じ対応する位置からのものであるはずである、すなわちメモリ１０内のメモリデータの位置はメモリ５０内のメモリデータと同じ位置であるはずである。
【００２７】
データ制御ユニット７０はまた、エラーメモリ３０、６０からの対応するエラーデータを識別する（ステップ５０４）。上述のようにメモリデータの各ビットは、エラーデータの少なくとも１個のビットに関連付けられる。メモリデータの１ビットは、もしメモリデータのそのビットがエラーデータの１ビットを生成するために使用されたのであれば、エラーデータのその１ビットに関連付けられる。対応するエラーデータは少なくとも、メモリ１０とメモリ５０の識別されたメモリデータから生成されたエラーデータを含む。
【００２８】
データ制御ユニット７０は、識別されたメモリデータとエラーデータのエラー検出器４０への転送を制御する（ステップ５０６）。メモリとエラーデータの両セットに関してエラー検出を実行するためにエラー検出器４０は、マスターメモリのエラー検出のために使用される１セットとスレーブメモリのエラー検出のために使用される１セットとによる、図３に示すような複製セットの要素を有するように構成され得る。
【００２９】
エラー検出器４０は、マスターメモリおよびエラーデータとスレーブメモリおよびエラーデータとを受け取って、マスターメモリデータとスレーブメモリデータとにおけるエラーに関してチェックする（ステップ５０８）。図３に関して上記に説明されたようにエラー検出器４０は、メモリ１０（または５０）からメモリデータを受け取り、受け取られたメモリデータからエラーデータを生成し、そして生成されたエラーデータをエラーメモリ３０（または６０）から受け取られた対応するエラーデータと比較する。
【００３０】
受け取られたマスターメモリデータから生成されたエラーデータとエラーメモリ３０から受け取られた対応するエラーデータとの比較に基づいてエラー検出器４０は、マスターメモリデータ内にエラーが存在するかしないかを決定する（ステップ５１０）。もし受け取られたマスターメモリデータから生成されたエラーデータのビットのどれかがエラーメモリ３０から受け取られた対応するエラーデータと一致しなければ、マスターメモリデータ内にエラーが存在する。
【００３１】
もしマスターメモリデータ内にエラーが存在すれば（ステップ５１０でＹＥＳ）、エラーの位置が決定される（ステップ５１８）。もしエラーデータのある一つのビットが一致しなければ、エラーデータのそのビットを生成するために使用されたメモリデータのビットは無効である、すなわちエラーを有する。したがってエラーの位置は、エラーデータの不一致ビットを生成するために使用されたメモリデータのビットの位置に対応する。例えばもし不一致エラービットがＥＤ００であれば、そのエラーの位置はｂ００、ｂ１６、ｂ３２およびｂ４８を含む。エラーの位置は、エラー検出器４０のエラー検出レジスタ４８に記憶されたエラー検出データを見ることによって決定され得る。この情報は、データ制御ユニット７０によって決定され得る。
【００３２】
マスターメモリ１０内のエラーの決定された位置に基づいてデータ制御ユニット７０は、マスターメモリ１０内のエラー位置のデータをスレーブメモリ５０内の対応する位置のデータで書き換える（ステップ５２０）。更にマスターメモリ１０を更新した後にエラー符号器２０は、エラーメモリ３０内のエラーデータを更新するために更新されたマスターメモリ１０から更新されたエラーデータを生成する（ステップ５２２）。マスターメモリ１０とエラーメモリ３０とを更新した後に同様にスレーブメモリ３０とエラーメモリ６０とを更新することも可能である。
【００３３】
もしマスターメモリデータ内にエラーが存在しなければ（ステップ５１０でＮＯ）、エラー検出器４０は、スレーブメモリデータ内にエラーが存在するかしないかを決定する（ステップ５１２）。マスターメモリデータのチェックと同様に、もし受け取られたスレーブメモリデータから生成されたエラーデータのビットのどれかがエラーメモリ６０から受け取られた対応するエラーデータに一致しなければ、スレーブメモリデータ内にエラーが存在する。
【００３４】
もしスレーブメモリデータ内にエラーが存在すれば（ステップ５１２でＹＥＳ）、ステップ５１８〜５２２が繰り返される。特にスレーブメモリ５０内のエラーの位置に基づいてデータ制御ユニット７０は、スレーブメモリ５０内のエラー位置のデータをマスターメモリ１０内の対応する位置のデータで書き換え、またデータ制御ユニット７０はエラーメモリ６０内のエラーデータを更新するために更新されたスレーブメモリ５０からのデータを使用する。
【００３５】
もしスレーブメモリデータ内にエラーが存在しなければ（ステップ５１２でＮＯ）、マスターメモリデータとスレーブメモリデータは、これらが同じであるかどうかを決定するために（ステップ５１４）、エラー検出器４０によって比較される。このチェックは、マスターメモリデータとスレーブメモリデータとに既に実行されたエラーチェックに対するバックアップチェックとして機能する。もしマスターメモリデータ内にもスレーブメモリデータ内にもエラーが検出されなければ、マスターメモリデータとスレーブメモリデータは同じであるはずである。
【００３６】
もしマスターメモリデータとスレーブメモリデータとが同じでなければ（ステップ５１４でＮＯ）、改良されたエラー検出システムは中断されて再始動される（ステップ５２４）。たとえいずれのデータのセットにもエラーが検出されなかったとしても、もしこれらのデータが同じでなければ、改良されたエラー検出システムは正しく動作していない可能性がある。二者択一的に、二つのメモリデータビットが両者とも同じエラービットを生成するために使用されたそれぞれのメモリバンク内の同じ位置に、マスターメモリデータとスレーブメモリデータのどちらか一方が二つのメモリデータビットの変化を持っているということがあり得る。例えば異なるメモリバンク内の同じ位置に同じエラービットを生成するために両者が使用された二つのメモリデータビットの変化の可能性は、極めて小さくて全く発生しそうもない。中断と再始動は、マスターメモリとスレーブメモリの両者がエラーチェックに失敗した場合に実行される可能性がある。
【００３７】
もしマスターメモリデータとスレーブメモリデータとが同じであれば（ステップ５１４でＹＥＳ）、マスターメモリ１０からのメモリデータは、それが必要とされるどのような目的にでも使用される（ステップ５１６）。マスターメモリ１０からのメモリデータの目的は、改良されたエラー検出システムが実現されるシステムまたは装置に依存する。
【００３８】
上述のような改良されたエラー検出システムでは、メモリのすべての位置において一つ以上のエラーを識別して訂正することが可能である。その結果、高度に信頼できるデータ記憶を提供することが可能である。
【００３９】
上述のようにメモリ１０、５０およびエラーメモリ３０、６０は各々、独立の要素として示されている。しかしながら、これらのメモリが別々の独立した要素、単一構造体または他の何らかの組合せ、例えば単一メモリデータおよびエラーデータメモリであり得ることは理解されるべきである。更にエラー符号器２０は、それぞれエラーメモリ３０、６０に記憶されるエラーデータを生成するために図２に示されたような単に１セットだけの要素が必要とされ得るように、メモリ１０とメモリ５０との間で、時分割ベースで使用され得る。同様にエラー検出４０は、メモリデータ内のエラーに関してチェックするために図３に示されたような単に１セットだけの要素が必要とされ得るようにメモリ１０とメモリ５０との間で、時分割ベースで使用され得る。
【００４０】
改良されたエラー検出システムはまた、システムが正しく動作していることを保証するために診断を実行するようにも構成され得る。例えばデータ制御ユニット７０の制御下で、システムが正しく動作していればエラーが検出されたであろうダミーデータが使用される診断テストが実行され得る。もしシステムがこのエラーを検出しなければ、データ制御ユニット７０は、システムが正しく動作していないことを認めるであろう。この場合、システムは中断されて再始動され得る。
【００４１】
本発明の好ましい実施形態の前述の説明は、例示と説明目的のために提示されてきた。これは網羅的であることも、本発明を開示された正確な形に限定することも意図されておらず、また修正例と変型例は、前述の教示に照らせば可能であり、あるいは本発明の実施から取得され得る。これらの実施形態（別々にあるいは組み合わせて実施され得る）は、本発明の原理を説明するために、また当業者が種々の実施形態において、また、考えられる特定の使用に適した種々の修正版によって本発明を実施して使用することを可能にする実際的なアプリケーションとして選択され説明された。本発明の範囲は本明細書に付属の請求項とそれらの同等物とによって定義されることが意図されている。
【図面の簡単な説明】
【００４２】
【図１】本発明に一致する改良されたエラー検出システムで使用され得るメモリ・エラー符号化システムのブロック図である。
【図２】本発明に一致する改良されたエラー検出システムで使用され得るエラー符号器のブロック図である。
【図３】本発明に一致する改良されたエラー検出システムで使用され得るエラー検出器のブロック図である。
【図４】本発明に一致する改良されたエラー検出システムのブロック図である。
【図５】本発明に一致する図４の改良されたエラー検出システムを使用するエラー検出プロセスの流れ図である。
【図１】
2008523503.tif 000003
【図２】
2008523503.tif 000004
【図３】
2008523503.tif 000005
【図４】
2008523503.tif 000006
【図５】
2008523503.tif 000007
【国際調査報告】
2008523503.tif 000008
2008523503.tif 000009