【手続補正書】
【提出日】平成20年12月8日(2008.12.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを記憶する第１のメモリと、
前記第１のメモリに記憶された同じデータを記憶する第２のメモリ（５０）と、
前記第１のメモリ（１０）に関するエラーデータであって、各々の値が前記第１のメモリ（１０）内の所定の位置に記憶された少なくとも二つのデータ値から計算されるエラーデータを記憶するエラーメモリ（３０，６０）と、
前記第１のメモリ（１０）内の第１の所定の位置に記憶されたデータのエラー値を生成し、この生成されたエラー値と前記エラーメモリ（３０，６０）に記憶された対応するエラー値とを比較するように構成されたエラー検出ユニット（４０）と、
前記生成されたエラー値が、前記エラーメモリ（３０，６０）に記憶された対応するエラー値とは異なることを前記エラー検出ユニットが決定した場合に、前記第１のメモリ（１０）の前記第１の所定の位置に記憶されたデータを前記第２のメモリ（５０）の前記第１の所定の位置に記憶されたデータで書き換えるように構成されたデータ制御ユニット（７０）と、を備える装置。
【請求項２】
前記第１のメモリ（１０）は複数の第１のメモリ（１０）バンクを備え、前記第２のメモリ（５０）は複数の第２のメモリ（５０）バンクを備えており、
前記第１の所定の位置は、前記複数の第１のメモリ（１０）バンクの各々における同じ位置と前記複数の第２のメモリ（５０）バンクの各々における同じ位置とに対応する、請求項１に記載の装置。
【請求項３】
前記エラー値はパリティ値である、請求項１に記載の装置。
【請求項４】
前記エラーメモリ（３０，６０）は前記第２のメモリ（５０）に関するエラーデータを記憶し、前記第２のメモリ（５０）の前記エラーデータの各値は前記第２のメモリ（５０）内の所定の位置に記憶された少なくとも二つのデータ値から計算される、請求項１に記載の装置。
【請求項５】
前記エラー検出ユニットは更に、前記第２のメモリ（５０）内の第１の所定の位置に記憶されたデータのエラー値を生成して、前記生成された値と前記エラーメモリ（３０，６０）に記憶された前記第２のメモリ（５０）のエラーデータの対応するエラー値とを比較するように構成され、また
前記データ制御ユニット（７０）は更に、前記生成されたエラー値が前記エラーメモリ（３０，６０）に記憶された前記第２のメモリ（５０）のエラーデータの対応するエラー値とは異なることを前記エラー検出ユニットが決定した場合に、前記第２のメモリ（５０）の前記第１の所定の位置に記憶されたデータを前記第１のメモリ（１０）の前記第１の所定の位置に記憶されたデータで書き換えるように構成される、請求項４に記載の装置。
【請求項６】
前記エラー検出ユニットは更に、前記第１のメモリ（１０）の前記第１の所定の位置に記憶されたデータを前記第２のメモリ（５０）の前記第１の所定の位置に記憶されたデータと比較するように構成され、
前記データ制御ユニット（７０）は更に、前記第１のメモリ（１０）の前記第１の所定の位置に記憶されたデータと前記第２のメモリ（５０）の前記第１の所定の位置に記憶されたデータとが同じでない場合に前記装置を中断して再始動するように構成される、請求項１に記載の装置。
【請求項７】
第１のメモリ（１０）内の第１の所定の位置に記憶されたデータのエラー値を生成するステップと、
前記生成されたエラー値と、エラーメモリ（３０，６０）内の各値が前記第１のメモリ（１０）内の所定の位置に記憶された少なくとも二つのデータ値から計算される、エラーメモリ（３０，６０）に記憶された対応するエラー値とを比較するステップと、
前記生成されたエラー値が前記エラーメモリ（３０，６０）に記憶された対応するエラー値とは異なる場合に、前記第１のメモリ（１０）の前記第１の所定の位置に記憶されたデータを前記第１のメモリ（１０）に記憶されたデータと同じである、第２のメモリ（５０）の第１の所定の位置に記憶されたデータで書き換えるステップと、を備える、装置内のメモリにおけるエラーを検出して訂正するための方法。
【請求項８】
前記第１のメモリ（１０）は複数の第１のメモリ（１０）バンクを備え、前記第２のメモリ（５０）は複数の第２のメモリ（５０）バンクを備えており、また
前記第１の所定の位置は、前記複数の第１のメモリ（１０）バンクの各々における同じ位置と前記複数の第２のメモリ（５０）バンクの各々における同じ位置とに対応する、請求項７に記載の方法。
【請求項９】
前記エラー値はパリティ値である、請求項７に記載の方法。
【請求項１０】
前記エラーメモリ（３０，６０）は前記第２のメモリ（５０）に関するエラーデータを記憶し、前記第２のメモリ（５０）の前記エラーデータの各値は前記第２のメモリ（５０）内の所定の位置に記憶された少なくとも二つのデータ値から計算される、請求項７に記載の方法。
【請求項１１】
前記方法は更に
前記第２のメモリ（５０）内の第１の所定の位置に記憶されたデータのエラー値を生成するステップと、
前記生成されたエラー値と、前記エラーメモリ（３０，６０）に記憶された前記第２のメモリ（５０）のエラーデータの対応するエラー値とを比較するステップと、
前記生成されたエラー値が前記エラーメモリ（３０，６０）に記憶された前記第２のメモリ（５０）のエラーデータの対応するエラー値とは異なる場合に、前記第２のメモリ（５０）の前記第１の所定の位置に記憶されたデータを前記第１のメモリ（１０）の前記第１の所定の位置に記憶されたデータで書き換えるステップと、を備える、請求項１９に記載の方法。
【請求項１２】
前記方法は更に
前記第１のメモリ（１０）の前記第１の所定の位置に記憶されたデータを前記第２のメモリ（５０）の前記第１の所定の位置に記憶されたデータと比較するステップと、
前記第１のメモリ（１０）の前記第１の所定の位置に記憶されたデータと前記第２のメモリ（５０）の前記第１の所定の位置に記憶されたデータとが同じでない場合に前記装置を中断して再始動するステップと、を備える、請求項７に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
したがってソフトエラーによる再始動率がゼロになるようにすべてのエラーを検出して訂正することが望ましい。
【特許文献１】米国特許第５９０５８５４号
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
メモリバンク１２、１４、１６、１８の各々は１６ビット幅を有し、全体が合同してメモリ１０に６４ビット幅を与える。各メモリバンク１２、１４、１６、１８の奥行きは任意サイズＮを持ち得るので、各メモリバンク１２、１４、１６、１８は１６×Ｎのサイズを持ち、またメモリ１０は６４×Ｎのサイズを有する。図１に示すメモリバンク１２、１４、１６、１８とメモリ１０のサイズと幅は、単に例示的であって、メモリ１０が使用されることになる特定のアプリケーションのために必要とされるように調整され得る。メモリ１０は好ましくは、ＲＡＭ装置、例えばフラッシュメモリまたはＮＶＲＡＭとして実現されるが、他のタイプのメモリも可能である。メモリバンク１２、１４、１６、１８の１６ビット出力の各々は、エラー符号器２０に結合される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
エラー符号器２０は、メモリ１０のメモリバンク１２、１４、１６、１８から６４ビットデータを受け取り、メモリ１０から受け取った６４ビットデータの各セットについて１６ビットのエラーデータを生成する。エラー符号器２０は好ましくは、メモリバンク１２、１４、１６、１８の各々からそれぞれ１ビットデータを受取り、これら４個のデータビットから１個のエラー値を生成するように構成される。更に、各メモリバンク１２、１４、１６、１８のそれぞれから選択された各ビットは、それぞれのメモリバンクの同じ対応する位置にあることが好ましい。例えばエラービットＥＤ００は、それぞれメモリバンク１２、１４、１６、１８のデータビットｂ００、ｂ１６、ｂ３２およびｂ４８からエラー符号器２０によって計算される。一般にエラーデータを計算するために選択されたデータビットは、他の組合せもあり得るが、好ましくはメモリ１０内の所定の位置にあるデータに組み合わせに基づく。エラーデータ（ＥＤ００−ＥＤ１５）を作成するプロセスは、メモリバンク１２、１４、１６、１８内の１６ビットデータのＮ個のレベルの各々に関して繰り返される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
エラー符号器２０によって生成されたエラーデータ（ＥＤ００−ＥＤ１５））は、エラーデータを記憶するエラーメモリ３０に供給される。エラーメモリ３０は好ましくは、メモリバンク１２、１４、１６、１８と同じサイズと幅を有するように構成されるが、他のサイズおよび幅の構成も可能である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
図２は、本発明に一致する改良されたエラー検出システムで使用され得るエラー符号器のブロック図である。図２に示すようにエラー符号器、例えば図１のエラー符号器２０は、データインレジスタ２２とエラー発生器２４とエラーデータレジスタ２６とを含む。データをエラー符号器２０に与えるメモリ１０が図１に示すように設計されていると仮定すると、データインレジスタ２２は、メモリ１０からメモリデータの６４ビットを受け取って記憶する。データインレジスタ２２は、メモリ１０からの６４ビットデータを記憶できる６４ビットレジスタである。データインレジスタ２２のサイズは、メモリ１０のビット幅にしたがって調整され得る。データインレジスタ２２はまた、エラー符号器２０によって使用され得るデータの他のビットを記憶するように、メモリ１０のビット幅より大きくされることも可能である。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
データインレジスタ２２は、エラー発生器２４にメモリデータの６４ビット（ｂ００−ｂ６３）を供給する。エラー発生器は、メモリデータの６４ビット（ｂ００−ｂ６３）からエラーデータ（ＥＤ００−ＥＤ１５）の１６ビットを生成する。エラーデータの各ビットは好ましくは、各エラービットを計算するために使用されるメモリデータのビットのパリティ値である。例えばエラービットＥＤ００は、メモリ１０のデータビットｂ００、ｂ１６、ｂ３２およびｂ４８から結果として得られるパリティ値としてエラー発生器２４によって計算され得る。パリティ値は本質的に、パリティ値を計算するために使用されたメモリデータビットのグループが奇数個または偶数個の１を持っているかどうかを示す。その結果、もしメモリバンク１２、１４、１６、１８のどれかのバンクにおいて、ある特定の位置にエラーが存在すれば、そのメモリデータビットのグループ内の１の数は変化し、結果として得られるパリティ値は、エラーが発生する前に計算されたパリティ値とはもはや一致しないであろう。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
パリティ値を計算するために、下記の生成式にしたがって１６個のエラービットが計算され得る：
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
ここでｋは０と１５との間の整数値であり、ＸＯＲは排他的ＯＲ演算である。この生成式は、メモリ１０とエラーメモリ３０の構成にしたがって調整され得る。例えばエラーメモリ３０は、より大きなエラーデータを保持するようにサイズ的に大きくすることができ、おおきくすることにより、パリティ値が、より小さなグループのメモリビットから、またはメモリビットの多数の組合せから計算することを可能にする。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
図３は、本発明に従って改良されたうところのエラー検出システムで使用されるエラー検出器４０のブロック図である。図３に示すようにエラー検出器４０は、メモリデータインレジスタ４２とエラーデータインレジスタ４３とエラー発生器４４とエラーデータ比較器４６とエラーデータ検出データレジスタ４８とを含む。エラー検出器は、メモリ１０内に何らかのビットエラーが存在するかどうかを検出するためにメモリ１０からのメモリデータとエラーメモリ３０からのエラーデータとを使用する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
メモリ１０とエラーメモリ３０とが図１に示すように設計されていると仮定すると、メモリデータインレジスタ４２はメモリ１０からのメモリデータの６４ビットデータ（ｂ００−ｂ６３）を受け取って記憶し、エラーデータインレジスタ４３はエラーメモリ３０からのエラーデータ（ＥＤ００−ＥＤ１５）の１６ビットを受け取って記憶する。メモリデータインレジスタ４２は、メモリ１０からのデータの６４ビットの各々を記憶できる６４ビットレジスタであってもよく、エラーデータインレジスタ４３は、エラーメモリ３０からのデータの１６ビットの各々を記憶できる１６ビットレジスタであってよい。メモリデータインレジスタ４２とエラーデータインレジスタ４３のサイズは、それぞれメモリ１０とエラーメモリ３０のビット幅にしたがって調整される。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
メモリデータインレジスタ４２は、メモリデータの６４ビットをエラー発生器４４に供給する。エラー発生器４４はメモリデータの６４ビットからエラーデータの１６ビットを生成するように、好ましくは、エラー符号器２０のエラー発生器２４と同じ様に構成される。エラーデータの各ビットは好ましくは、各エラービットを計算するために使用されるメモリデータのビットのパリティ値である。