(57)【特許請求の範囲】
【請求項１】
データの誤り訂正を行うための回路（１００）であって、
前記回路（１００）は、前記回路（１００）の誤り訂正部（１３０）の誤り訂正能力の正確性のチェックを行い、
前記回路（１００）は、
入力データワードを受け取るための入力インタフェース（１１０）と、
前記入力データワードであるかまたは前記入力データワードから導出されたものであるテストデータワードの１ビットまたは複数ビットを操作し、変更されたデータワードを取得するためのデータマニピュレータ（１２０）と、
前記変更されたデータワードを処理する前記誤り訂正部（１３０）と、
前記誤り訂正部（１３０）による前記変更されたデータワードの処理に依存して前記誤り訂正部（１３０）の誤り訂正能力の正確性を評価するための評価部（１４０）と、
を有し、
前記誤り訂正部（１３０）は、前記入力インタフェース（１１０）から前記入力データワードを受け取るように設けられており、
前記誤り訂正部（１３０）は、前記入力データワードが誤りを有するか否かをチェックするように構成されており、
前記入力データワードが誤りを有すると前記誤り訂正部（１３０）が判断した場合、前記誤り訂正部（１３０）は、事前訂正されたデータワードを得るべく前記入力データワードを訂正するように構成されており、かつ、前記事前訂正されたデータワードを前記テストデータワードとして前記データマニピュレータ（１２０）へ供給するように構成されており、
前記入力データワードが誤りを有しないと前記誤り訂正部（１３０）が判断した場合、前記誤り訂正部（１３０）は、前記入力データワードを前記テストデータワードとして前記データマニピュレータ（１２０）へ供給するように構成されている、
回路（１００）。
【請求項２】
前記誤り訂正部（１３０）は、前記変更されたデータワードが誤りを有するか否かをチェックしてフラグにより示すように構成されており、
前記評価部（１４０）は、前記誤り訂正部（１３０）により行われた、前記変更されたデータワードが誤りを有するか否かのチェックの結果に依存して、前記誤り訂正部（１３０）の誤り訂正能力の正確性を評価するように構成されている、
請求項１記載の回路（１００）。
【請求項３】
前記誤り訂正部（１３０）は、前記変更されたデータワードが誤りを有するか否かをチェックするように構成されており、
前記変更されたデータワードが誤りを有すると前記誤り訂正部（１３０）が判断した場合、前記誤り訂正部（１３０）は、訂正されたデータワードを得るべく前記変更されたデータワードを訂正するように構成されており、
前記評価部（１４０）は、前記訂正されたデータワードが、予測されたデータワードと等しいか否かを判断するように構成されており、
前記訂正されたデータワードが前記予測されたデータワードと異なる場合、前記評価部（１４０）は、前記誤り訂正部（１３０）の誤り訂正能力が不正確であると判断するように構成されている、
請求項１または２記載の回路（１００）。
【請求項４】
前記誤り訂正部（１３０）は、前記変更されたデータワードが誤りを有するか否かをチェックするように構成されており、
前記変更されたデータワードが誤りを有すると前記誤り訂正部（１３０）が判断した場合、前記誤り訂正部（１３０）は、ユーザデータビットおよび誤り訂正ビットを含む訂正されたデータワードを得るべく、前記変更されたデータワードを訂正するように構成されており、
前記評価部（１４０）は、前記訂正されたデータワードの前記ユーザデータビットと、前記訂正されたデータワードの前記誤り訂正ビットと、に依存して、前記訂正されたデータワードが誤りを有するか否かを判断するように構成されており、
前記訂正されたデータワードが誤りを有する場合、前記評価部（１４０）は、前記誤り訂正部（１３０）の誤り訂正能力が不正確であると判断するように構成されている、
請求項１または２記載の回路（１００）。
【請求項５】
前記回路（１００）は、通常動作モードをアクティベートするためのモード切替器（１５０）をさらに備えており、
前記通常動作モードがアクティベートされている場合、前記モード切替器（１５０）が前記データマニピュレータ（１２０）および前記評価部（１４０）をディアクティベートすることにより、前記通常動作モードがアクティベートされているときに前記データマニピュレータ（１２０）が前記テストデータワードの１ビットまたは複数ビットを操作しないよう、かつ、前記通常動作モードがアクティベートされているときに前記評価部（１４０）が前記誤り訂正部（１３０）の誤り訂正能力の正確性を評価しないようにするよう、構成されている、
請求項１から４までのいずれか１項記載の回路（１００）。
【請求項６】
前記回路（１００）は、ユーザインタフェース（１６０）をさらに有し、
前記ユーザインタフェース（１６０）は、ユーザが前記テストデータワードのうち操作対象の１ビットまたは複数ビットを指定できるように構成されており、
前記データマニピュレータ（１２０）は、前記テストデータワードのうち前記ユーザによって前記ユーザインタフェース（１６０）を介して指定された前記１ビットまたは複数ビットを操作するように構成されている、
請求項１から５までのいずれか１項記載の回路（１００）。
【請求項７】
前記テストデータワードは、誤り訂正用の誤り訂正ビットとユーザデータビットとを含み、
前記データマニピュレータ（１２０）は、前記テストデータワードの前記誤り訂正ビットの少なくとも１ビットを操作するように構成されている、
請求項１から５までのいずれか１項記載の回路（１００）。
【請求項８】
前記回路（１００）は、ユーザが前記テストデータワードの前記誤り訂正ビットの前記少なくとも１ビットを指定できるように構成されたユーザインタフェース（１６０）をさらに有し、
前記データマニピュレータ（１２０）は、前記テストデータワードの前記誤り訂正ビットのうち前記ユーザによって前記ユーザインタフェース（１６０）を介して指定された前記少なくとも１ビットを操作するように構成されている、
請求項７記載の回路（１００）。
【請求項９】
前記テストデータワードは、前記ユーザデータビットと、前記誤り訂正ビットと、メモリ（２００）内における前記ユーザデータビットの位置を特定するためのアドレスビットと、を含み、
前記データマニピュレータ（１２０）は、前記テストデータワードの前記アドレスビットの少なくとも１ビットを操作するように構成されている、
請求項７または８記載の回路（１００）。
【請求項１０】
前記回路（１００）は、ユーザが前記テストデータワードの前記アドレスビットの前記少なくとも１ビットを指定できるように構成されたユーザインタフェース（１６０）をさらに有し、
前記データマニピュレータ（１２０）は、前記テストデータワードの前記アドレスビットのうち前記ユーザによって前記ユーザインタフェース（１６０）を介して指定された前記少なくとも１ビットを操作するように構成されている、
請求項９記載の回路（１００）。
【請求項１１】
前記回路（１００）は、メモリ（１７０）をさらに備えており、
前記入力インタフェース（１１０）は、前記メモリ（１７０）から前記入力データワードをロードするように構成されている、
請求項１から８までのいずれか１項記載の回路（１００）。
【請求項１２】
前記回路（１００）は、請求項９に記載のメモリ（２００）をさらに備えており、
前記入力インタフェース（１１０）は、前記メモリ（２００）から前記入力データワードをロードするように構成されている、
請求項９または１０記載の回路（１００）。
【請求項１３】
前記メモリ（１７０；２００）は、フラッシュメモリである、
請求項１１または１２記載の回路（１００）。
【請求項１４】
前記誤り訂正部（１３０）の誤り訂正が不正確であることを前記評価部（１４０）が検出した場合、前記評価部（１４０）が前記回路（１００）をディアクティベートするように、または警報もしくは警告メッセージを出力するように構成されている、
請求項１から１３までのいずれか１項記載の回路（１００）。
【請求項１５】
データの誤り訂正を行うための回路（１００）であって、
前記回路（１００）は、前記回路（１００）の誤り訂正部（１３０）の誤り訂正能力の正確性のチェックを行い、
前記回路（１００）は、
入力データワードを受け取るための入力インタフェース（１１０）と、
前記入力データワードであるかまたは前記入力データワードから導出されたものであるテストデータワードの１ビットまたは複数ビットを操作し、変更されたデータワードを取得するためのデータマニピュレータ（１２０）と、
前記変更されたデータワードを処理する前記誤り訂正部（１３０）と、
前記誤り訂正部（１３０）による前記変更されたデータワードの処理に依存して前記誤り訂正部（１３０）の誤り訂正能力の正確性を評価するための評価部（１４０）と、
を有し、
前記データマニピュレータ（１２０）は、２つ以上の変更されたデータワードの各変更されたデータワードが、前記２つ以上の変更されたデータワードの他の各変更されたデータワードとは相違するように、前記２つ以上のデータワードのうちいずれかである前記２つ以上の変更されたデータワードを生成すべく構成されており、
前記データマニピュレータ（１２０）は、前記２つ以上の各変更されたデータワードを、前記テストデータワードの少なくとも１ビットの変更により生成するように構成されており、
前記２つ以上の変更されたデータワードの各変更されたデータワードごとに、前記誤り訂正部（１３０）は、前記変更されたデータワードが誤りを有するか否かをチェックするように構成されており、
前記評価部（１４０）は、前記２つ以上の変更されたデータワードのチェックの結果に依存して、前記誤り訂正部（１３０）の誤り訂正能力の正確性を評価するように構成されている、
回路（１００）。
【請求項１６】
前記評価部（１４０）は、前記２つ以上の変更されたデータワードのうち前記誤り訂正部が誤りを有すると判定した数を示す、誤りを有するワード数を特定するように構成されており、
前記評価部（１４０）は、前記誤りを有するワード数が、前記２つ以上の変更されたデータワードのうち実際に誤りを有する数を示す予測された誤り数と等しいか否かを判断するように構成されている、
請求項１５記載の回路（１００）。
【請求項１７】
前記データマニピュレータ（１２０）は、前記２つ以上の各変更されたデータワードを、前記テストデータワードのちょうど１ビットの変更により生成するように構成されている、
請求項１５または１６記載の回路（１００）。
【請求項１８】
前記データマニピュレータ（１２０）は、前記２つ以上の各変更されたデータワードを、前記テストデータワードのちょうど２ビットの変更により生成するように構成されている、
請求項１５または１６記載の回路（１００）。
【請求項１９】
前記データマニピュレータ（１２０）は、ＸＯＲ回路要素（１２２）と、他の回路要素（１２４）と、ビットレジスタ（１２６）と、を備えており、
前記ビットレジスタ（１２６）は、前記テストデータワードの各ビット位置ごとにビットを有し、
前記２つ以上の変更されたデータワードのうち第１の変更されたデータワードを生成するために反転すべき、前記テストデータワードのビット位置に割り当てられた、前記ビットレジスタ（１２６）内の各ビットが、前記ビットレジスタ（１２６）内にて第１のビット値を示すように、前記ビットレジスタ（１２６）は構成されており、
前記第１の変更されたデータワードを生成するために反転すべきでない、前記テストデータワードのビット位置に割り当てられた、前記ビットレジスタ（１２６）内の各ビットが、前記ビットレジスタ（１２６）内にて、第１のビット値とは異なる第２のビット値を示すように、前記ビットレジスタ（１２６）が構成されており、
前記ＸＯＲ回路要素（１２２）は、前記テストデータワードを第１の入力として受け取るように配置されており、
前記ＸＯＲ回路要素（１２２）は、前記２つ以上の変更されたデータワードの前記第１の変更されたデータワードを生成するための元の第２の入力として、前記ビットレジスタ（１２６）内のビットのビット値を受け取るように配置されており、
前記第１の変更されたデータワードが生成された後、前記他の回路要素（１２４）は、前記ビットレジスタ（１２６）内のビットの更新されたビット値を得るために、前記ビットレジスタ（１２６）内のビットのビット値を１ビット位置ずつシフトまたは回転させるように構成されており、
前記ＸＯＲ回路要素（１２２）は、前記２つ以上の変更されたデータワードの第２の変更されたデータワードを生成するための更新された第２の入力として、前記ビットレジスタ（１２６）内のビットの前記更新されたビット値を受け取るように配置されている、
請求項１５から１８までのいずれか１項記載の回路（１００）。
【請求項２０】
データの誤り訂正と、誤り訂正部（１３０）の誤り訂正能力の正確性のチェックと、を行う方法であって、
入力インタフェース（１１０）によって入力データワードを受け取るステップと、
データマニピュレータ（１２０）によって、前記入力データワードであるかまたは前記入力データワードから導出されたものであるテストデータワードの１ビットまたは複数ビットを操作し、変更されたデータワードを取得するステップと、
前記誤り訂正部（１３０）によって前記変更されたデータワードを処理するステップと、
評価部（１４０）によって、前記誤り訂正部（１３０）による前記変更されたデータワードの処理に依存して前記誤り訂正部（１３０）の誤り訂正能力の正確性を評価するステップと、
を有し、
前記誤り訂正部（１３０）によって、前記入力インタフェース（１１０）から前記入力データワードを受け取るステップと、
前記誤り訂正部（１３０）によって、前記入力データワードが誤りを有するか否かをチェックするステップと、
前記入力データワードが誤りを有すると前記誤り訂正部（１３０）が判断した場合、前記誤り訂正部（１３０）によって、事前訂正されたデータワードを得るべく前記入力データワードを訂正し、かつ、前記事前訂正されたデータワードを前記テストデータワードとして前記データマニピュレータ（１２０）へ供給するステップと、
前記入力データワードが誤りを有しないと前記誤り訂正部（１３０）が判断した場合、前記誤り訂正部（１３０）によって、前記入力データワードを前記テストデータワードとして前記データマニピュレータ（１２０）へ供給するステップと、
をさらに有することを特徴とする方法。
【請求項２１】
コンピュータまたは信号プロセッサ上にて実行されるときに請求項２０記載の方法を実施するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作中にエラーフリーのテストデータを必要とすることなくメモリの誤り訂正符号回路をテストする思想を開示するものである。
【背景技術】
【０００２】
従来技術では、（２重プログラミングにより）不正確な誤り訂正符号をテスト符号として使用して（不揮発性の）フラッシュメモリにおいて１ビット誤りまたは２ビット誤りの誤り訂正の実行の正確性をチェックするため、既知の欠陥テストデータが生成される。とりわけ、かかる手法は以下の欠点を有する：
メモリの各部分がエラーフリーであることを確認するため、予め各部分をテストしておかなければならない。本来的にエラーフリーであると想定されるメモリ部分は、テスト符号に用いることができない。というのも、これを使用すると、誤り訂正符号の機能を評価するために、予測される１ビット誤りおよび２ビット誤りの正確な情報が使用できなくなるからである。
【０００３】
その上、カラム指向型バースト長誤りも関与している場合、動作中にテスト符号が非意図的に妨害されてしまう。テストソフトウェアが、この妨害されたテスト符号をエラートレラントに扱わない場合、かかるコンポーネントは、意図されない誤り信号を生成することとなる。
【０００４】
上述のような標準的な誤り処理を回避するためには、厳格な誤り検出アルゴリズムを緩和するか、または、多数決にも使用される他の代替的なメモリ部分を指定する。これにより生じる欠点は、多重比較のためにさらに他のメモリ部分を割り当てなければならないことである。
【０００５】
その上従来技術では、ユーザに対し、データ符号と誤り訂正符号とを別個に、具体的に誤りを有するようにプログラミングするための手段が提供されない。その代わり、１ビット誤りまたは２ビット誤りを有するテスト符号は、ユーザモードでしかプログラミングすることができない。現在のところ、たとえばフラッシュメモリ等の不揮発性メモリの場合、このコンポーネントはユーザモードで２回プログラミングされ、これにより、ＯＲ演算が行われるかのように誤り訂正符号が関連付けられる（先に削除しておくことなく行われる２重プログラミング）。かかる手順は当該コンポーネントにより許されないので、上述の演算が適正に機能しているか否かはテストされていない。また揮発性メモリでは、１つのＥＣＣワードにおいて、当該ＥＣＣの変更が許容されずに、データ内容から独立したＥＣＣ内容をコンフィギュレーション設定することもできない。
【０００６】
誤り訂正符号誤り検出のために全てのデータビットをテストするためには、専用のメモリ部分をプログラミングしてから、その後に第２の適切な符号を２重プログラミングする。このデータは、２重プログラミングによって誤り訂正符号の内容が不所望に変更することがないよう、かつ、意図されたビット偏差を除いて、結果が初期のプログラミングに等しくなるように選択される。
【０００７】
さらに、誤り訂正テスト符号の多重プログラミングは、アドレス誤り訂正符号を用いることにより複雑になり得る。アドレス誤り訂正符号を用いる場合、データの他、データのアドレスも誤り訂正符号計算に用いられる。これにより、誤り訂正符号メモリ内容のアドレスは誤っているが当該内容は正しいことを検出することができる。かかる場合、アドレスに依存するこの誤り訂正テスト符号はメモリ部分に依存し、フレキシブルに使用することができなくなる。
【０００８】
さらに、従来技術では、テスト符号は製造業者によって事前設定されている。ユーザには、自身で誤り訂正符号ワードを選択するための手段は提供されない。誤り訂正符号ワードおよび事前規定された誤り訂正符号データワードのための誤り訂正符号ワード（ユーザデータおよび誤り訂正符号のバイト）のためのユーザデータワードを決定するための補助的手段または可能性は、提供されない。
【０００９】
誤り訂正符号回路のテストの改善された思想が実現されれば、非常に有利である。
【発明の概要】
【課題を解決するための手段】
【００１０】
本発明では、データの誤り訂正を行うための回路であって、当該回路の誤り訂正部の誤り訂正能力の正確性のチェックを行う回路を開示する。当該回路は、入力データワードを受け取るための入力インタフェースを備えている。当該回路はさらに、変更されたデータワードを得るためにテストデータワードの１ビットまたは複数ビットを操作するためのデータマニピュレータも備えており、このテストデータワードは、上述の入力データワードであるか、または入力データワードから導出されたものである。さらに、当該回路の上述の誤り訂正部は、上述の変更されたデータワードも処理する。また、当該回路は、誤り訂正部による変更されたデータワードの処理に依存して当該誤り訂正部の誤り訂正能力の正確性を評価するための評価部も備えている。
【００１１】
さらに本発明では、データの誤り訂正と、誤り訂正部の誤り訂正能力の正確性のチェックとを行う方法も開示する。当該方法は、
・入力インタフェースによって入力データワードを受け取るステップと、
・データマニピュレータによって、変更されたデータワードを得るために、上述の入力データワードであるかまたは当該入力データワードから導出されたものであるテストデータワードの１ビットまたは複数ビットを操作するステップと、
・前記誤り訂正部によって前記変更されたデータワードを処理するステップと、
・評価部によって、誤り訂正部による変更されたデータワードの処理に依存して当該誤り訂正部の誤り訂正能力の正確性を評価するステップと
を有する。
【００１２】
また本発明では、コンピュータまたは信号プロセッサ上にて実行されるときに上述の方法を実施するためのコンピュータプログラムも開示する。さらに本発明では、コンピュータまたはプロセッサ上にて実行されるときに上述の方法を実施するための上述のコンピュータプログラムを含む、非一時的デジタル記憶媒体も開示する。
【００１３】
添付の図面を使用して本発明の実施形態を詳細に説明する前に述べておくべき点として、図面中、同一要素または機能的に等価である要素には、同一の符号を付しており、同一符号を付した要素については、説明を繰り返し行うことは割愛する。よって、同一符号が付された要素について行った説明は、当該要素間にて使用することができる。
【図面の簡単な説明】
【００１４】
【図１】一実施形態の、データの誤り訂正を行うための回路であって、当該回路の誤り訂正部の誤り訂正能力の正確性のチェックを行う回路を示す図である。
【図２】誤り訂正部が入力インタフェースから入力データワードを受け取るように設けられた、一実施形態の回路を示す図である。
【図３】通常動作モードをアクティベートするためのモード切替器をさらに備えた、一実施形態の回路を示す図である。
【図４】図１から図３までの構成要素の他にさらにユーザインタフェースを備えた、一実施形態の回路を示す図である。
【図５】テストデータワードは、ユーザデータビットと、誤り訂正ビットと、メモリ内における当該ユーザデータビットの位置を特定するためのアドレスビットとを含み得る、一実施形態の回路を示す図である。
【図６】一実施形態の回路であって、当該回路自体がさらにメモリを含む回路を示す図である。
【図７】メモリ内のアドレスにより指示される、変更対象である１つまたは複数のアドレス指定可能なビットを指定するためのユーザインタフェースと、当該メモリとを備えた、具体的な一実施形態の回路を示す図である。当該アドレスは、明示的に適用されるか、または暗黙的に参照されるものである。
【図８】回路要素と、他の回路要素と、ビットレジスタとを備えた、一実施形態のデータマニピュレータを示す図である。図８のデータマニピュレータは、１ステージＸＯＲを有する。別個のステージの前に、シフトまたは回転等の１ビット変更を適用することができる。一部の実施形態では、両ビット操作ステップをたとえば、図１８，１９および２０に示されているように、２ステージ操作に含めることができる。
【図９】読出パスと書込パスとによるランダムアクセス方式の、一実施形態の誤り訂正符号メモリを示す図である。
【図１０】ＣＰＵとメモリとの間のデータパスに実装された誤り訂正符号回路を示す図である。さらに、使用されるアドレスレジスタも示す。
【図１１】動作中の回路訂正チェックを支援するための小さなレジスタセット拡張を示す図である。
【図１２】誤り訂正符号能力を有する意図的に２重プログラミングされたフラッシュメモリの誤り訂正能力の機能の初期設定、動作および評価のフローチャートである。
【図１３】誤り訂正符号の機能の手動検査のフローチャートである。
【図１４】誤り訂正符号の機能の半自動検査のフローチャートである。
【図１５】誤り訂正符号の機能の完全自動連続検査のフローチャートである。
【図１６】誤り訂正符号の機能の完全自動連続検査用のレジスタセットを示す図である。
【図１７】誤り訂正符号機能性チェックを示す図である。
【図１８】一実施形態のハードウェア具現化を示す図である。
【図１９】一実施形態の誤り訂正符号テスト有限状態機械のコンフィギュレーション設定（初期設定、アクティベート、自律モニタリング）のツリー手順を示す図である。
【図２０】１ビット誤りおよび２ビット誤りの強制および計数の一例を示す図である。
【発明を実施するための形態】
【００１５】
図１は、一実施形態の、データの誤り訂正を行うための回路１００であって、当該回路１００の誤り訂正部１３０の誤り訂正能力の正確性のチェックを行う回路１００を示す図である。
【００１６】
回路１００は、入力データワードを受け取るための入力インタフェース１１０を備えている。
【００１７】
回路１００はさらに、テストデータワードの１ビットまたは複数ビットを操作し、変更されたデータワードを取得するためのデータマニピュレータ１２０を備えており、このテストデータワードは、上述の入力データワードであるか、または入力データワードから導出されたものである。
【００１８】
回路１００はさらに、誤り訂正部１３０を備えており、この誤り訂正部１３０は、上述の変更されたデータワードを処理する。
【００１９】
回路１００はさらに、誤り訂正部１３０による変更されたデータワードの処理に依存して当該誤り訂正部１３０の誤り訂正能力の正確性を評価するための評価部１４０を備えている。
【００２０】
データマニピュレータ１２０の目的は、変更されるデータワード内に特定の誤りを故意に生成できるようにすることである。テストデータワードが誤り無しであると仮定した場合、テストデータワードの１ビットを変更すると、ちょうど１ビット誤りを有する変更データワードが形成されることとなる。よって、誤り訂正符号がこの変更されたデータワードを正確に処理するか否かを、評価部１４０によって評価することができる。
【００２１】
一部の実施形態では、誤り訂正部１３０の誤り訂正が不正確であることを評価部１４０が検出した場合、評価部１４０がたとえば回路１００をディアクティベートするように、または警報もしくは警告メッセージを出力するように構成することができる。
【００２２】
異なる実施形態ごとに、誤り訂正部の処理の正確性の評価の異なる基準が適用される。
【００２３】
一実施形態では、変更されたデータワードが誤りを有することを誤り訂正部が正確に検出し、かつ、誤り訂正部がデータワードの当該誤りを正確に訂正した場合、評価部１４０は、誤り訂正部の処理が正確であると判断する。
【００２４】
かかる実施形態の利点は、誤り訂正部の誤り検出だけでなく誤り訂正もチェックされることである。
【００２５】
他の一実施形態では、変更されたデータワードが誤りを有することを誤り訂正部が正確に検出した場合、評価部１４０は、誤り訂正部の処理が正確であると判断し、変更されたデータワードの訂正が成功したか否かのテストは行わない。かかる実施形態のうち一部の実施形態では、誤り訂正回路は、変更されたデータワードの訂正を行わず、当該変更されたデータワードの訂正が必要であるか否かの判断のみを行う。
【００２６】
かかる実施形態の利点は、変更されたデータワードを訂正するために必要な処理時間が削減されることである。とりわけ上述の実施形態により、それぞれ異なる変更を有する大量の変更データワードの誤り検出の正確性のテストを、誤り訂正の正確性もテストする実施形態と比較して短時間で行うことができる。かかる実施形態が成立する前提は、検出対象の誤りが実際に全て検出されれば、誤り訂正は誤り訂正部１３０によって正確に行われる、ということである。
【００２７】
上記にて概説したように、一部の実施形態では、誤り訂正の結果が正確であるか否かをテストする。一部の実施形態では、訂正が行われる場合、たとえば、１ビット誤りインジケータまたは２ビット誤りインジケータをセットすることができる。
【００２８】
他の一実施形態では、誤り訂正部１３０はたとえば、変更されたデータワードが誤りを有するか否かをチェックするように構成することができる。変更されたデータワードが誤りを有すると誤り訂正部１３０が判断した場合、誤り訂正部１３０はたとえば、ユーザデータビットおよび誤り訂正ビットを含む訂正されたデータワードを得るべく、当該変更されたデータワードを訂正するように構成することができる。評価部１４０はたとえば、この訂正されたデータワードのユーザデータビットと、当該訂正されたデータワードの誤り訂正ビットとに依存して、当該訂正されたデータワードが誤りを有するか否かを判定するように構成することができる。訂正されたデータワードが誤りを有する場合には、評価部１４０は、誤り訂正部１３０の誤り訂正能力が不正確であると判断するように構成されている。
【００２９】
このようにして、検出された誤りの訂正を行った後、訂正されたデータワードに誤りが存在するか否かを判断するためのテストをもう１回行う。行われた訂正が成功した場合には、訂正されたデータワードには誤りは存在しないはずである。そうでない場合には、誤り訂正部１３０は不正確であると判断する。
【００３０】
テストデータワードのビットの変更はたとえば、テストデータワードを反転することにより行うことができ、たとえば、ビット値を“０”から“１”に変化させ、またはビット値を“１”から“０”に変化させることにより行うことができる。
【００３１】
一実施形態では、誤り訂正部１３０はたとえば、変更されたデータワードが誤りを有するか否かをチェックするように（かつ、たとえばフラグによって示すように）構成することができる。かかる実施形態では、評価部１４０はたとえば、誤り訂正部１３０により行われた、変更されたデータワードの誤りの有無のチェックの結果に依存して、当該誤り訂正部１３０の誤り訂正能力（たとえば誤りフラグのセッティングおよび／または適用されたデータ訂正）の正確性を評価するように構成することができる。
【００３２】
一実施形態では、誤り訂正部１３０はたとえば、変更されたデータワードが誤りを有するか否かをチェックするように構成することができる。かかる実施形態では、変更されたデータワードが誤りを有すると誤り訂正部１３０が判断した場合、誤り訂正部１３０はたとえば、訂正されたデータワードを得るべく、当該変更されたデータワードを訂正するように構成することができる。かかる実施形態ではさらに、評価部１４０はたとえば、訂正されたデータワードが、予測されたデータワードと等しいか否かを判断するように構成することができる。かかる実施形態ではさらに、訂正されたデータワードが上述の予測データワードと異なる場合、評価部１４０はたとえば、誤り訂正部１３０の誤り訂正能力が不正確であると判断するように構成することができる。
【００３３】
他の実施形態では、テストデータワード自体は、変更無しで誤り訂正部１３０に供給することができる。誤り訂正部１３０はテストデータワードが誤りを有すると判断しているが、実際にはテストデータワードは誤りを有しない場合には、評価部１４０は、誤り訂正部１３０がエラーを有すると判断することができる。
【００３４】
より一般的には、一部の実施形態では、誤りを有しないデータワードをたとえば誤り訂正部１３０に供給することができる。この誤りを有しないテストデータワードが誤りを有すると誤り訂正部１３０が判断した場合、評価部１４０は、誤り訂正部１３０がエラーを有すると判断することができる。
【００３５】
図２は、誤り訂正部１３０が入力インタフェース１１０から入力データワードを受け取るように設けられた、一実施形態の回路１００を示す図である。かかる実施形態では、誤り訂正部１３０はたとえば、入力データワードが誤りを有するか否かをチェックするように構成することができる。
【００３６】
図２では、入力データワードが誤りを有すると誤り訂正部１３０が判断した場合、誤り訂正部１３０はたとえば、事前訂正されたデータワードを得るべく当該入力データワードを訂正するように構成することができ、たとえば、誤り訂正部１３０はこの事前訂正されたデータワードを上述のテストデータワードとしてデータマニピュレータ１２０へ供給するように構成することができる。
【００３７】
入力データワードが誤りを有しないと誤り訂正部１３０が判断した場合、誤り訂正部１３０はたとえば、当該入力データワードを上述のテストデータワードとしてデータマニピュレータ１２０へ供給するように構成することができる。
【００３８】
図２の実施形態の利点はとりわけ、入力データの正確性が誤り訂正部１３０によってチェックされた後、かつ、入力データワードの訂正が行われる場合には当該訂正が行われた後、データマニピュレータへ供給されるテストデータワードが誤りを有しない確率が上昇することである。
【００３９】
図２に代わる択一的な実施形態は、入力データワードを入力インタフェース１１０からデータマニピュレータ１２０へ直接供給する。かかる実施形態の利点は、とりわけ、入力データワードをチェックし、場合によっては訂正するための処理時間がかからないことである。
【００４０】
図３は、通常動作モードをアクティベートするためのモード切替器１５０をさらに備えた、一実施形態の回路１００を示す図である。かかる実施形態では、通常動作モードがアクティベートされている場合、モード切替器１５０はデータマニピュレータ１２０および評価器をディアクティベートすることにより、通常動作モードがアクティベートされているときにデータマニピュレータ１２０がたとえば上述のテストデータワードの１ビットまたは複数ビットを操作せず、また、通常動作モードがアクティベートされているときに上述の評価部１４０がたとえば誤り訂正部１３０の誤り訂正能力の正確性を評価しないようにするよう、構成されている。
【００４１】
とりわけ図３では、“１”により示される通常動作モードと、“２”により示されるテストモードとを示している。図３では、通常動作モード時には、入力データワードが入力インタフェース１１０から誤り訂正部１３０へ供給され、この誤り訂正部１３０において入力データワードの正確性がチェックされ、必要な場合には訂正される。その後、このデータワード（訂正された場合には、訂正されたデータワード）は誤り訂正部１３０によって出力される。
【００４２】
図３において“２”により示されているテストモード時には、回路１００は図１および図２を参照して説明されたように動作する。
【００４３】
有利な実施形態では２つの動作モードが存在し、たとえば通常動作モードおよびテストモードが存在する。誤り訂正部またはプロセッサがデータを処理していないときには、テストモードがアクティベートされるだけである。
【００４４】
図４は、図１から図３までの構成要素の他にさらにユーザインタフェース１６０を備えた、一実施形態の回路１００を示す図であり、このユーザインタフェース１６０は、ユーザがテストデータワードのうち操作対象の１ビットまたは複数ビットを指定できるように構成されている。かかる実施形態では、データマニピュレータ１２０はたとえば、テストデータワードのうちユーザによってユーザインタフェース１６０を介して指定された当該１ビットまたは複数ビットを操作するように構成することができる。
【００４５】
従来技術とは対照的に、ユーザは、予め定められたテスト手順を使用する必要はなく、ユーザがテストしたいと思っている特定のビット誤りを生成するためにテストデータワードをどのように変更すべきかを、ユーザ自身が指定することができる。ユーザの個別の要求に合わせてテストを個別調整することが可能となる。
【００４６】
一実施形態では、テストデータワードはたとえば、誤り訂正用の誤り訂正ビットとユーザデータビットとを含むことができる。かかる実施形態では、データマニピュレータ１２０はたとえば、テストデータワードの誤り訂正ビットの少なくとも１ビットを操作するように構成することができる。
【００４７】
よって、誤りを有するユーザデータを含む変更されたデータワードをテストできるだけでなく、誤りを有する誤り訂正ビットを含む変更されたデータワードをテストすることも可能になる。
【００４８】
一実施形態では、ユーザインタフェース１６０はたとえば、ユーザがテストデータワードの誤り訂正ビットの前記少なくとも１ビットを指定できるように構成することができる。かかる実施形態では、データマニピュレータ１２０はたとえば、テストデータワードの誤り訂正ビットのうちユーザによってユーザインタフェース１６０を介して指定された当該少なくとも１ビットを操作するように構成することができる。
【００４９】
図５は、テストデータワードがたとえば、ユーザデータビットと、誤り訂正ビットと、メモリ２００内における当該ユーザデータビットの位置を特定するためのアドレスビットと、を含み得る、一実施形態の回路１００を示す図である。かかる実施形態では、データマニピュレータ１２０はたとえば、テストデータワードのアドレスビットの少なくとも１ビットを操作するように構成することができる。
【００５０】
一実施形態では、ユーザインタフェース１６０はたとえば、ユーザがテストデータワードのアドレスビットの上述の少なくとも１ビットを指定できるように構成することができる。かかる実施形態では、データマニピュレータ１２０はたとえば、テストデータワードのアドレスビットのうちユーザによってユーザインタフェース１６０を介して指定された当該少なくとも１ビットを操作するように構成することができる。
【００５１】
よって、誤りを有するユーザデータまたは誤りを有する誤り訂正ビットを含む変更されたデータワードをテストできるだけでなく、誤りを有するアドレスビットを含む変更されたデータワードをテストすることも可能になる。
【００５２】
図６は、一実施形態の回路１００であって、当該回路１００自体がさらにメモリ１７０を含む回路１００を示す図である。かかる実施形態では、入力インタフェース１１０はたとえば、メモリ１７０から入力データワードをロードするように構成することができる。
【００５３】
一実施形態では、上述のメモリ１７０はたとえば、フラッシュメモリまたは他の任意の種類の不揮発性メモリとすることができる。
【００５４】
一般的にフラッシュメモリ自体では、フラッシュメモリのビットを特定の第１のビット値から特定の第２のビット値に変化させることしかできず、当該特定の第２のビット値から当該特定の第１のビット値に変化させることはできない。（たとえば具体的な例では、特定のフラッシュメモリでは、プログラム動作中にビット値“０”をビット値“１”に変化させることはできるが、ビット値“１”は、消去動作無しではビット値“０”に変化させることができない。）複数の実施形態は、フラッシュ値自体を変化させることはないが、フラッシュメモリ外部にて１つまたは複数の変更されたデータワードを生成する。よって、ビット値を“０”から“１”に、かつ“１”から“０”に任意に変化させることができる。
【００５５】
一実施形態では、テストデータワードはたとえば、ユーザデータビットと、誤り訂正ビットと、上記にてメモリ２００について説明したように、回路１００のメモリ１７０内における当該ユーザデータビットの位置を特定するためのアドレスビットとを含むことができる。かかる実施形態では、データマニピュレータ１２０はたとえば、テストデータワードのアドレスビットの少なくとも１ビットを操作するように構成することができる。
【００５６】
図７は、具体的な一実施形態の、メモリ１７０を備えた回路１００を示す図であり、回路１００は、当該回路１００のメモリ１７０内のアドレスを示す、変更対象となる１つまたは複数のアドレスビットを指定するためのユーザインタフェース１６０を備えている。
【００５７】
一実施形態では、データマニピュレータ１２０はたとえば、２つ以上の変更されたデータワードの各変更されたデータワードが、当該２つ以上の変更されたデータワードの他の各変更されたデータワードとは相違するように、上記の２つ以上のデータワードのうちいずれかである当該２つ以上の変更されたデータワードを生成するように構成することができる。かかる実施形態では、データマニピュレータ１２０はたとえば、上述の２つ以上の各変更されたデータワードを、テストデータワードの少なくとも１ビットの変更により、生成するように構成することができる。かかる実施形態ではさらに、上記２つ以上の変更されたデータワードの各変更されたデータワードごとに、誤り訂正部１３０はたとえば、当該変更されたデータワードが誤りを有するか否かをチェックするように構成することができる。かかる実施形態ではさらに、評価部１４０はたとえば、当該２つ以上の変更されたデータワードのチェックの結果に依存して、当該誤り訂正部１３０の誤り訂正能力の正確性を評価するように構成することができる。
【００５８】
一実施形態では、評価部１４０はたとえば、上記２つ以上の変更されたデータワードのうち誤り訂正部１３０が誤りを有すると判定した数を示す、誤りを有するワード数を特定するように構成することができる。かかる実施形態では、評価部１４０はたとえば、上述の誤りを有するワード数が、当該２つ以上の変更されたデータワードのうち実際に誤りを有する数を示す予測誤り数と等しいか否かを判断するように構成することができる。
【００５９】
一実施形態では、データマニピュレータ１２０はたとえば、上述の２つ以上の各変更されたデータワードを、テストデータワードのちょうど１ビットの変更により生成するように構成することができる。
【００６０】
かかる実施形態は、テストデータワードが誤り無しであるとの仮定の下で、ちょうど１ビットの誤り（１ビット誤り）により、変更されたデータワードをテストする。
【００６１】
一実施形態では、データマニピュレータ１２０はたとえば、上述の２つ以上の各変更されたデータワードを、テストデータワードのちょうど２ビットの変更により生成するように構成することができる。
【００６２】
かかる実施形態は、テストデータワードが誤り無しであるとの仮定の下で、ちょうど２ビットの誤り（２ビット誤り）により、変更されたデータワードをテストする。
【００６３】
図８は、ＸＯＲ回路要素１２２と、他の回路要素１２４と、ビットレジスタ１２６とを備えた、一実施形態のデータマニピュレータ１２０を示す図である。
【００６４】
かかる実施形態では、ビットレジスタ１２６はたとえば、テストデータワードの各ビット位置ごとにビットを有することができる。かかる実施形態ではさらに、たとえば、上述の２つ以上の変更されたデータワードのうち第１の変更されたデータワードを生成するために反転すべき、テストデータワードのビット位置に割り当てられた、ビットレジスタ１２６内の各ビットが、当該ビットレジスタ１２６内にて第１のビット値を示すように、当該ビットレジスタ１２６を構成することができる。かかる実施形態ではさらに、たとえば、上述の第１の変更されたデータワードを生成するために反転すべきでない、テストデータワードのビット位置に割り当てられた、ビットレジスタ内の各ビットが、当該ビットレジスタ１２６内にて、第１のビット値とは異なる第２のビット値を示すように、当該ビットレジスタを構成することができる。
【００６５】
上述の実施形態ではさらに、ＸＯＲ回路要素１２２はたとえば、テストデータワードを第１の入力として受け取るように配置することができる。かかる実施形態ではさらに、ＸＯＲ回路要素１２２はたとえば、上記２つ以上の変更されたデータワードの第１の変更されたデータワードを生成するための元の第２の入力として、ビットレジスタ１２６内のビットのビット値を受け取るように配置することができる。
【００６６】
かかる実施形態ではさらに、たとえば、第１の変更されたデータワードが生成された後、ビットレジスタ１２６内のビットの更新されたビット値を得るために、他の回路要素１２４がビットレジスタ１２６内のビットのビット値を１ビット位置ずつシフトまたは回転させるように構成することができる。かかる実施形態ではさらに、ＸＯＲ回路要素１２２はたとえば、上記２つ以上の変更されたデータワードの第２の変更されたデータワードを生成するための更新された第２の入力として、ビットレジスタ１２６内のビットの更新されたビット値を受け取るように配置することができる。
【００６７】
上述の実施形態は特に、誤りを有する複数の変更されたデータワードを効率的に生成することにより、かかる誤りを有する複数の変更されたデータワードをテストするのに適したものとなる。
【００６８】
さらに、たとえば次の変更されたデータワードを生成するために回転を用いる場合、ビット誤りはシフトするが、一般的にはビット誤り数は次のデータワードでも同一に維持されることを前提とすることができる。
【００６９】
以下、具体的な実施形態について詳細に説明する。
【００７０】
複数の実施形態では、テストデータの読出し後にどのビット位置において誤り訂正によって読出し結果が改ざん（反転）されたかをユーザが特定するための１つまたは複数のユーザレジスタが、ユーザのために設けられている。
【００７１】
これは、値“１”をとるビット位置を反転させるＸＯＲ内容の初期化に起因して生じるものである。複数の実施形態では、誤り訂正テスト符号を１回だけエラーフリーに、または少なくとも誤り訂正符号訂正可能にプログラミングする。誤りを有するセルフィールドを誤り訂正符号訂正無しで読み出した直後、および、訂正直後のいずれにおいても、訂正がなされる場合には訂正された読出しテストワードのビットごとの変更可能性が、実現され得る。
【００７２】
複数の実施形態では、読出しデータの改ざんは好適には、読出しテストデータの誤り訂正符号計算の直後に回路ベースで行われる。どのビット位置にてテストデータをどのように変更するかは、誤り訂正符号計算のテストを行う前に初期化されるレジスタセットにより決定される。
【００７３】
誤り訂正符号テストワードを使用する目的は、誤り訂正符号ロジックにおいて、誤って解釈される０ビットまたは１ビットに選択的誤りを挿入した後に、誤り訂正符号生成パスを選択的にテストすることである。有利には、第２ステージにおいて１つまたは複数のビット切換手段を制御下で生成し、その後、能動的に開始された誤り訂正符号応答を評価する。
【００７４】
一実施形態では、誤り訂正符号能力のチェックは、たとえば４ステップで行うことができる。第１のステップでは、たとえば、誤り訂正符号テスト読出しのどのビットをどのように反転すべきかを決定することにより、また場合によっては、アドレス誤り符号の場合には、どのメモリアドレスにデータが関連付けられているかを特定することにより、誤り訂正符号テスト読出しを初期化する。第２のステップでは、訂正可能な誤り訂正符号ワードにおいてビット切換えを行い、この直前に引き起こされた訂正ステップについて、セルフィールドからデータを再度ロードすることなく、誤り訂正符号計算を行う。最後のステップにおいて、ユーザに知られている通常のレジスタとフラグとを用いて、既にロードされてビットごとに変更されたデータへの上述の誤り訂正の応答を行う。
【００７５】
複数の実施形態では、データバスの誤り訂正符号回路の予測される機能をチェックするために当該誤り訂正符号回路に割り当てられたレジスタセットが設けられている。この誤り訂正回路は、揮発性メモリまたは不揮発性メモリに割り当てることができる。
【００７６】
一実施形態では、プログラマブルレジスタセットからのロードを行い、ロードされた誤り訂正符号データの誤り訂正符号データと、読出しアドレスと、ユーザデータのビットうちどれを変更するかを決定する。
【００７７】
一実施形態では、１ビットもしくは複数ビットをセットすることにより、１ビットまたは複数ビットを削除することにより、および／または、１ビットまたは複数ビットを反転することにより、上述の変更されるビットの変更を行う。
【００７８】
一実施形態では、オプションとして、アドレス誤り訂正符号計算の場合には、ユーザデータビットおよび誤り訂正符号データビットの他にさらにアドレスビットもセット、削除および／または反転するか否かを決定することができる。
【００７９】
一実施形態では、メモリ読出しアクセスのためにテストデータおよび読出しアドレスが既に特定されていること、および、次の読出しアクセスは当該特定のセルフィールドにアクセスするものではないことを示すビットセッティングも、示すことができる。
【００８０】
一実施形態では、オプションとして、最初の第１の読出し命令の直後に、ビット操作が当該セルフィールドにアクセスしない第２の読出し命令を実行すべきか否かを決定することができる。
【００８１】
一実施形態では、オプションとして、誤りフラグシグネチャを結果レジスタにロードまたは収集すべきか否かを決定することができる。
【００８２】
一実施形態では、オプションとして、誤りシグネチャの発生を（たとえば初期化可能な）カウンタレジスタに積算していくことができる。
【００８３】
複数の実施形態では、誤り訂正符号機能性チェック、および、予測される挙動との比較における誤りシグネチャの評価を、ステップごとに、半自動的におよび／または連続的に（場合によっては、たとえば１回または複数回の割込みを用いて）行うことができる。
【００８４】
複数の実施形態では、以下の利点のうちいずれか１つまたは複数または全てを奏することができる：
複数の実施形態では、誤りを有する２重プログラミングが必須ではなくなるので、不揮発性のメモリの誤り訂正符号機能性も動作中にチェックすることができる。
【００８５】
メモリ部と誤り訂正回路とを１つの部品に集積することが不要となる。各誤り訂正符号ユニットが、自身をテストするセルフテストを実行することができる。
【００８６】
誤りを有するデータの明示的なメモリ割当ては不要となる。アドレス誤り訂正符号手法の場合には、メモリアドレスは既知である必要がなく、自由に選択可能なアドレスソースを特定することができる。多重比較のためにテストデータを多重記憶する必要がなくなる。
【００８７】
複数の実施形態では、第１の読出しをたとえば誤り訂正符号訂正によって行うことにより、更にセル誤りが生じてもセルの誤り訂正の可能性に依存しないメモリ誤り訂正を正確に行うことができる。
【００８８】
最初に得られた第１の読出し結果を、試験のために次のステップにおいて変更する場合、追加のレイテンシー（待機状態）を伴わない特殊なビット操作によって、第２の誤り訂正符号テスト読出しを行うことができる。
【００８９】
ビット操作用にレジスタセットを回路あたり１つのみ実装した場合、通常の第１の読出しと同一の回路を用いて、誤り訂正符号テスト読出しを行うことができる。これにより、テスト回路のレイアウトに際してスペースを削減することができ、また、誤り訂正符号テスト読出しについての回路のテスト能力自体のために更にスペースを要することもない。
【００９０】
誤り訂正符号結果を並行して確認する第２の誤り訂正符号回路であって、当該第２の誤り訂正符号回路自体も動作中にチェックを受けなければならないことがある第２の誤り訂正符号回路は、不要となる。
【００９１】
オプションの他の実施形態はたとえば、誤り訂正符号テストプログラムを制御下または自動的に実行することができる。機能性チェックが自動的に実行される場合には、この機能性チェックを連続的または半自動的に操縦下で行うことができる。
【００９２】
具体的な実施形態を詳解すべく、図９に、読出パスと書込パスとによるランダムアクセス方式の、一実施形態の誤り訂正符号メモリを示す。
【００９３】
さらに図１０に、ＣＰＵとメモリとの間のデータパスに実装された誤り訂正符号回路を示す。
【００９４】
図１１に、一実施形態の、動作中の回路訂正チェックを支援するための小さなレジスタセット拡張を示す。
【００９５】
“アドレスＸＯＲ”はたとえば、アドレスビット反転のための３２ビットレジスタとすることができる。
【００９６】
“ＥＣＣＲ ＸＯＲ”はたとえば、ＥＣＣ読出し反転（ＥＣＣＲ反転）のための８ビットレジスタとすることができる。
【００９７】
“データＸＯＲ”はたとえば、データ反転のための６４ビットレジスタとすることができる。
【００９８】
“ＦＳＲ”は、フラッシュ状態レジスタを意味する。
【００９９】
図１２は、誤り訂正符号能力を有する意図的に２重プログラミングされたフラッシュメモリの誤り訂正能力の機能の初期設定、動作および評価のフローチャートである。図１２は特に、通常の２重プログラミング手法を示している。
【０１００】
図１３は、一実施形態の、誤り訂正符号の機能の手動検査のフローチャートである。図１３は特に、手動の１ビット応答テスト（状態は“クリーン（CleaN）”または“クリア（ClearR）”？）を示している。
【０１０１】
図１４は、一実施形態の、誤り訂正符号の機能の半自動検査のフローチャートである。図１４では特に、１つの完全な半自動誤り訂正符号応答テストを示している。
【０１０２】
図１５は、誤り訂正符号の機能の完全自動連続検査のフローチャートである。図１５は特に、割込み操縦される連続的な誤り訂正符号テストルーティンを示している。
【０１０３】
図１６は、一実施形態の、誤り訂正符号の機能の完全自動連続検査用のレジスタセットを示す図である。図１６は特に、複数の異なるエラーケース“Ｘ”をカバーしている（“Ｘ”：１ビット誤り＝ＳＢＥ＝Ｓ、２ビット誤り＝ＤＢＥ＝Ｄ、多重ビット誤り＝ＭＢＥ＝Ｍ）。
【０１０４】
以下、本発明の他の実施形態について詳細に説明する。しかしその前に、従来技術を更に詳しく検証する。
【０１０５】
従来技術では、誤り訂正符号機能性チェックを行うためには、顧客は実行時にメモリアクセスのデータパス訂正能力の誤り訂正符号の機能性についての確認を要していた。誤り訂正符号テストは、意図的に改ざんされた特定の誤り訂正符号ワードを処理することにより行われる。この誤り訂正符号ワードは、メモリからロードされた入力データワード、たとえばフラッシュメモリからロードされた入力データワードから導出したものとすることができる。
【０１０６】
ｅフラッシュでは誤り訂正符号誤りは、消去無しの２重プログラミングによって人為的に記憶される（強制された障害シグネチャ）。検出された誤りフラグは、予測される誤りフラグ（「合格事例」）と比較される。これは図１７に示されている。
【０１０７】
問題の１つに、誤り訂正符号障害カウント誤解釈がある。訂正可能なメモリビット障害は、単独欠陥に拠る想定外の強制的障害シグネチャの誤解釈の原因となる。その例にはたとえば、１ビットフリップおよび／または局所的／大局的バースト長欠陥がある。
【０１０８】
これは、非意図的なビットフリップが、予測される誤り訂正符号障害フラグカウントシグネチャのシグネチャに影響することを意味する。
【０１０９】
誤り訂正符号障害シグネチャが生じ得る。
【０１１０】
図１８は、一実施形態のハードウェアソリューションを示す図である。顧客に対して、メモリ読出しパスを介して又はレジスタの直接セッティングにより得られた誤り訂正符号一貫性データセット（アドレス／データ／誤り訂正符号）の強制的障害シグネチャを制御するためのレジスタセットが設けられている。
【０１１１】
メモリからの読出し中は、データセットにおいて、想定外の訂正可能なビット誤りは全て、誤り訂正符号一貫性に削除される。ここで行われる誤り訂正は、たとえば顧客固有とすることができる。
【０１１２】
データセットは、１つの誤り訂正符号計算ステップにおいてビットフリップパターンを適用する対象となり得るテストパターンとして使用される。
【０１１３】
ビットフリップ列は、ビットフリップパターンの回転を制御しビット誤り／２ビット誤りの発生を記録する簡素化された状態機械によって反復／自動化することができる。この状態機械は、レジスタセットにより制御される。
【０１１４】
図１９に、一実施形態の他の実施例を示す。コンフィギュレーション設定の３ステップ、たとえば初期化ステップ、アクティベートステップ、モニタリングステップが可能である。
【０１１５】
図２０に、一実施形態の更に他の実施例を示す。
【０１１６】
複数の実施形態において、ＥＣＣ ＦＳＭ（ＦＳＭ＝有限状態機械（Finite State Machine））テストエンジンの種々の利点が更に奏される。
【０１１７】
実行時間中の安全面の誤り訂正符号機能性テストに対応した、オープンな顧客テストフィーチャが実現される。複数の実施形態が、あらゆる誤り訂正符号訂正可能なメモリに適用することができる（フラッシュに限定されない）。
【０１１８】
誤り訂正符号一貫性データセット構造についての知識は不要である。
【０１１９】
複数の実施形態では、メモリ読出し時と同一のパス上にて、かつ同一のロジックにより、誤り訂正符号ユニットテストを行うことができる。
【０１２０】
複数の実施形態では、ＲＡＭ／ｅフラッシュの強制的障害パターンシグネチャの定義を要しない。
【０１２１】
複数の実施形態では、アドレス位置および強制障害パターン生成のシーケンスの正確な定義を要しない。
【０１２２】
複数の実施形態は、以下の認識に基づいている：
誤り訂正が機能しているか否かをチェックするため、強制的障害を用いる。
【０１２３】
たとえばフラッシュ等の不揮発性メモリが、特に高い関心対象となる。フラッシュメモリは、２重プログラミングに適したものとなり得る。誤り訂正符号に関しては、たとえば６４ビットのユーザデータビットに８ビットの訂正データビットを付随させることができる。
【０１２４】
２重プログラミングを行う場合、たとえば第１プログラミングと第２プログラミングの結果を、論理ビットＯＲにより結合することができる。
【０１２５】
ＣＰＵは、誤り訂正符号（ＥＣＣ）が機能しているか否かをテストする。たとえばＳランをテストすることができる。たとえば、エアバッグ用途が特に高い関心対象となる。誤り訂正符号ユニットが誤りを有するか否かを特定しなければならない。誤り訂正符号は、時間と共に劣化し得る。テストはたとえば、ユーザによって初期化されるか、または自動的に開始され得る。
【０１２６】
たとえば、１つのセルのみがテストされるように、または、複数のセルがテストされるように、プログラミングすることができる。
【０１２７】
典型的にはメモリは、当該メモリをテストするための１つの誤り訂正符号ユニットを有し得る。
【０１２８】
テストは通常、アイドル時間中にのみ行えるものである。
【０１２９】
アドレススタータおよび誤り訂正符号の初期化を要する場合がある。
【０１３０】
擬似ランダムテストを行うことができる。
【０１３１】
既に述べたように、適用分野はたとえば、自動車産業等である。
【０１３２】
一実施形態では、誤り訂正が行われたか否かをフラグが示しているか否かを判断することにより、誤り訂正を行う。フラグの数を計数することができ、ここでフラグの数は、行われた誤り訂正の回数を示す。その後、行われた誤り訂正回数が、予測される誤り訂正回数に等しいか否かをテストする。
【０１３３】
他の一実施形態では、誤り訂正が行われる度に、訂正されたビットが予測されるビットに等しいか否かをテストする。
【０１３４】
一部の側面を装置との関連で説明したが、かかる一部の側面は、対応する方法の説明にもなること、および、各ブロックまたは各装置は、方法の各ステップまたは各ステップの特徴に相当することが明らかである。また、方法のステップとの関連において説明した側面も同様に、対応する装置の対応するブロックまたは物または構成の説明にもなる。方法のステップの一部または全部をハードウェア装置によって、たとえばマイクロプロセッサ、プログラマブルコンピュータまたは電子回路等によって（またはこれを使用して）実行することができる。一部の実施形態では、方法の最も重要なステップのうちいずれか１つまたは複数を、上述の装置によって実行することができる。
【０１３５】
特定の実装要求に応じて、本発明の実施形態をハードウェアもしくはソフトウェアで具現化することができ、または、少なくとも部分的にハードウェアで、もしくは少なくとも部分的にソフトウェアで具現化することができる。かかる具現化は、電子的に読出し可能な制御信号を記憶したデジタル記憶媒体であって、プログラミング可能なコンピュータシステムと各方法を実施するように協働する（または協働する能力を有する）デジタル記憶媒体を用いて、たとえばフロッピーディスク、ＤＶＤ、ブルーレイ、ＣＤ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭまたはフラッシュメモリを用いて行うことができる。よって、デジタル記憶媒体はコンピュータ可読とすることができる。
【０１３６】
本発明の一部の実施形態は、ここで記載した方法のうちいずれかを実施するように、プログラミング可能なコンピュータシステムと協働する能力を有する、電子的に読出し可能な制御信号を有するデータ媒体を構成する。
【０１３７】
一般的に本発明の実施形態は、コンピュータプログラム製品がコンピュータ上にて実行されるときに上述の方法のうちいずれかを実施するように機能するプログラムコードを有するコンピュータプログラム製品として具現化することができる。かかるプログラムコードはたとえば、機械可読媒体上に記憶することができる。
【０１３８】
他にも、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムであって、機械可読媒体上に記憶されたコンピュータプログラムを構成する実施形態もある。
【０１３９】
よって換言すると、本発明の一実施形態は、コンピュータプログラムがコンピュータ上にて実行されるときに、ここで記載された方法のうちいずれかを実施するためのプログラムコードを有するコンピュータプログラムである。
【０１４０】
したがって本発明の他の１つの実施形態は、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムを記録したデータ媒体（またはデジタル記憶媒体、またはコンピュータ可読媒体）である。かかるデータ媒体、デジタル記憶媒体または記録された媒体は、典型的には有形および／または非一時的なものである。
【０１４１】
したがって本発明の他の１つの実施形態は、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムを表すデータストリームまたは信号列である。かかるデータストリームまたは信号列はたとえば、データ通信接続を介して、たとえばインターネットを介して伝送されるものとすることができる。
【０１４２】
他の１つの実施形態は、ここで記載された方法のうちいずれかを実施するために構成され又は適合した処理手段、たとえばコンピュータ、またはプログラマブルロジックデバイスを構成する。
【０１４３】
したがって他の１つの実施形態は、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムを実装したコンピュータを構成する。
【０１４４】
本発明の他の１つの実施形態は、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムを受信側へ（たとえば電子的または光学的に）伝送するように構成された装置またはシステムを構成する。かかる受信側はたとえば、コンピュータ、移動機器または記憶装置等とすることができる。上述の装置またはシステムはたとえば、コンピュータプログラムを受信側へ伝送するためのファイルサーバを備えることができる。
【０１４５】
一部の実施形態では、ここで記載された方法の機能のうち一部または全部を実施するためにプログラマブルロジックデバイス（たとえばフィールドプログラマブルゲートアレイ）を用いることができる。一部の実施形態では、ここで記載された方法のうちいずれかを実施するため、フィールドプログラマブルゲートアレイがマイクロプロセッサと協働することができる。一般的に、かかる方法は有利には、いかなるハードウェア装置によっても実施される。
【０１４６】
ここで記載された装置は、ハードウェア装置を用いて、またはコンピュータを用いて、またはハードウェア装置とコンピュータとを組み合わせたものを用いて、構成することができる。
【０１４７】
ここで記載された方法は、ハードウェア装置を用いて、またはコンピュータを用いて、またはハードウェア装置とコンピュータとを組み合わせたものを用いて、実施することができる。
【０１４８】
上記にて記載された実施形態は、単に本発明の基本的原理を詳解するためのものである。当該分野の通常の知識を有する第三者には、ここで記載された構成および具体的構成の変更や改良が明らかであることは、勿論である。よって、その意義は独立請求項の範囲によってのみ限定されるべきものであり、本願の実施形態の説明や詳解によって示された特定の具体的構成によって限定されるべきものではない。
【０１４９】
特許請求の範囲については、開示内容は、各請求項の想定し得るいかなる組み合わせも包含する。
【図１】
0006290303.tif 000002
【図２】
0006290303.tif 000003
【図３】
0006290303.tif 000004
【図４】
0006290303.tif 000005
【図５】
0006290303.tif 000006
【図６】
0006290303.tif 000007
【図７】
0006290303.tif 000008
【図８】
0006290303.tif 000009
【図９】
0006290303.tif 000010
【図１０】
0006290303.tif 000011
【図１１】
0006290303.tif 000012
【図１２】
0006290303.tif 000013
【図１３】
0006290303.tif 000014
【図１４】
0006290303.tif 000015
【図１５】
0006290303.tif 000016
【図１６】
0006290303.tif 000017
【図１７】
0006290303.tif 000018
【図１８】
0006290303.tif 000019
【図１９】
0006290303.tif 000020
【図２０】
0006290303.tif 000021