特許第6290303号(P6290303)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インフィネオン テクノロジーズ アクチエンゲゼルシャフトの特許一覧

特許6290303誤り訂正能力をテストするための回路および方法
<>
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000002
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000003
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000004
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000005
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000006
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000007
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000008
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000009
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000010
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000011
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000012
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000013
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000014
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000015
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000016
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000017
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000018
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000019
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000020
  • 特許6290303-誤り訂正能力をテストするための回路および方法 図000021
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6290303
(24)【登録日】2018年2月16日
(45)【発行日】2018年3月7日
(54)【発明の名称】誤り訂正能力をテストするための回路および方法
(51)【国際特許分類】
   G06F 12/16 20060101AFI20180226BHJP
   G06F 11/22 20060101ALI20180226BHJP
   G11C 29/42 20060101ALI20180226BHJP
【FI】
   G06F12/16 310F
   G06F11/22 615
   G11C29/00 631B
【請求項の数】21
【外国語出願】
【全頁数】26
(21)【出願番号】特願2016-111306(P2016-111306)
(22)【出願日】2016年6月2日
(65)【公開番号】特開2017-4588(P2017-4588A)
(43)【公開日】2017年1月5日
【審査請求日】2016年6月2日
(31)【優先権主張番号】10 2015 210 651.9
(32)【優先日】2015年6月10日
(33)【優先権主張国】DE
(73)【特許権者】
【識別番号】599158797
【氏名又は名称】インフィネオン テクノロジーズ アクチエンゲゼルシャフト
【氏名又は名称原語表記】Infineon Technologies AG
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100135633
【弁理士】
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】マーティン ペアナー
【審査官】 堀田 和義
(56)【参考文献】
【文献】 特開平3−46047(JP,A)
【文献】 特開昭62−226353(JP,A)
【文献】 特開2001−358702(JP,A)
【文献】 特開昭59−200349(JP,A)
【文献】 特開平10−228388(JP,A)
【文献】 特開昭53−62936(JP,A)
【文献】 特開2003−7085(JP,A)
【文献】 国際公開第2007/096997(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/16
G06F 11/22
G11C 29/42
(57)【特許請求の範囲】
【請求項1】
データの誤り訂正を行うための回路(100)であって、
前記回路(100)は、前記回路(100)の誤り訂正部(130)の誤り訂正能力の正確性のチェックを行い、
前記回路(100)は、
入力データワードを受け取るための入力インタフェース(110)と、
前記入力データワードであるかまたは前記入力データワードから導出されたものであるテストデータワードの1ビットまたは複数ビットを操作し、変更されたデータワードを取得するためのデータマニピュレータ(120)と、
前記変更されたデータワードを処理する前記誤り訂正部(130)と、
前記誤り訂正部(130)による前記変更されたデータワードの処理に依存して前記誤り訂正部(130)の誤り訂正能力の正確性を評価するための評価部(140)と、
を有し、
前記誤り訂正部(130)は、前記入力インタフェース(110)から前記入力データワードを受け取るように設けられており、
前記誤り訂正部(130)は、前記入力データワードが誤りを有するか否かをチェックするように構成されており、
前記入力データワードが誤りを有すると前記誤り訂正部(130)が判断した場合、前記誤り訂正部(130)は、事前訂正されたデータワードを得るべく前記入力データワードを訂正するように構成されており、かつ、前記事前訂正されたデータワードを前記テストデータワードとして前記データマニピュレータ(120)へ供給するように構成されており、
前記入力データワードが誤りを有しないと前記誤り訂正部(130)が判断した場合、前記誤り訂正部(130)は、前記入力データワードを前記テストデータワードとして前記データマニピュレータ(120)へ供給するように構成されている、
路(100)。
【請求項2】
前記誤り訂正部(130)は、前記変更されたデータワードが誤りを有するか否かをチェックしてフラグにより示すように構成されており、
前記評価部(140)は、前記誤り訂正部(130)により行われた、前記変更されたデータワードが誤りを有するか否かのチェックの結果に依存して、前記誤り訂正部(130)の誤り訂正能力の正確性を評価するように構成されている、
請求項1記載の回路(100)。
【請求項3】
前記誤り訂正部(130)は、前記変更されたデータワードが誤りを有するか否かをチェックするように構成されており、
前記変更されたデータワードが誤りを有すると前記誤り訂正部(130)が判断した場合、前記誤り訂正部(130)は、訂正されたデータワードを得るべく前記変更されたデータワードを訂正するように構成されており、
前記評価部(140)は、前記訂正されたデータワードが、予測されたデータワードと等しいか否かを判断するように構成されており、
前記訂正されたデータワードが前記予測されたデータワードと異なる場合、前記評価部(140)は、前記誤り訂正部(130)の誤り訂正能力が不正確であると判断するように構成されている、
請求項1または2記載の回路(100)。
【請求項4】
前記誤り訂正部(130)は、前記変更されたデータワードが誤りを有するか否かをチェックするように構成されており、
前記変更されたデータワードが誤りを有すると前記誤り訂正部(130)が判断した場合、前記誤り訂正部(130)は、ユーザデータビットおよび誤り訂正ビットを含む訂正されたデータワードを得るべく、前記変更されたデータワードを訂正するように構成されており、
前記評価部(140)は、前記訂正されたデータワードの前記ユーザデータビットと、前記訂正されたデータワードの前記誤り訂正ビットと、に依存して、前記訂正されたデータワードが誤りを有するか否かを判断するように構成されており、
前記訂正されたデータワードが誤りを有する場合、前記評価部(140)は、前記誤り訂正部(130)の誤り訂正能力が不正確であると判断するように構成されている、
請求項1または2記載の回路(100)。
【請求項5】
前記回路(100)は、通常動作モードをアクティベートするためのモード切替器(150)をさらに備えており、
前記通常動作モードがアクティベートされている場合、前記モード切替器(150)が前記データマニピュレータ(120)および前記評価部(140)をディアクティベートすることにより、前記通常動作モードがアクティベートされているときに前記データマニピュレータ(120)が前記テストデータワードの1ビットまたは複数ビットを操作しないよう、かつ、前記通常動作モードがアクティベートされているときに前記評価部(140)が前記誤り訂正部(130)の誤り訂正能力の正確性を評価しないようにするよう、構成されている、
請求項1から4までのいずれか1項記載の回路(100)。
【請求項6】
前記回路(100)は、ユーザインタフェース(160)をさらに有し、
前記ユーザインタフェース(160)は、ユーザが前記テストデータワードのうち操作対象の1ビットまたは複数ビットを指定できるように構成されており、
前記データマニピュレータ(120)は、前記テストデータワードのうち前記ユーザによって前記ユーザインタフェース(160)を介して指定された前記1ビットまたは複数ビットを操作するように構成されている、
請求項1から5までのいずれか1項記載の回路(100)。
【請求項7】
前記テストデータワードは、誤り訂正用の誤り訂正ビットとユーザデータビットとを含み、
前記データマニピュレータ(120)は、前記テストデータワードの前記誤り訂正ビットの少なくとも1ビットを操作するように構成されている、
請求項1から5までのいずれか1項記載の回路(100)。
【請求項8】
前記回路(100)は、ユーザが前記テストデータワードの前記誤り訂正ビットの前記少なくとも1ビットを指定できるように構成されたユーザインタフェース(160)をさらに有し、
前記データマニピュレータ(120)は、前記テストデータワードの前記誤り訂正ビットのうち前記ユーザによって前記ユーザインタフェース(160)を介して指定された前記少なくとも1ビットを操作するように構成されている、
請求項7記載の回路(100)。
【請求項9】
前記テストデータワードは、前記ユーザデータビットと、前記誤り訂正ビットと、メモリ(200)内における前記ユーザデータビットの位置を特定するためのアドレスビットと、を含み、
前記データマニピュレータ(120)は、前記テストデータワードの前記アドレスビットの少なくとも1ビットを操作するように構成されている、
請求項7または8記載の回路(100)。
【請求項10】
前記回路(100)は、ユーザが前記テストデータワードの前記アドレスビットの前記少なくとも1ビットを指定できるように構成されたユーザインタフェース(160)をさらに有し、
前記データマニピュレータ(120)は、前記テストデータワードの前記アドレスビットのうち前記ユーザによって前記ユーザインタフェース(160)を介して指定された前記少なくとも1ビットを操作するように構成されている、
請求項9記載の回路(100)。
【請求項11】
前記回路(100)は、メモリ(170)をさらに備えており、
前記入力インタフェース(110)は、前記メモリ(170)から前記入力データワードをロードするように構成されている、
請求項1から8までのいずれか1項記載の回路(100)。
【請求項12】
前記回路(100)は、請求項9に記載のメモリ(200)をさらに備えており、
前記入力インタフェース(110)は、前記メモリ(200)から前記入力データワードをロードするように構成されている、
請求項9または10記載の回路(100)。
【請求項13】
前記メモリ(170;200)は、フラッシュメモリである、
請求項11または12記載の回路(100)。
【請求項14】
前記誤り訂正部(130)の誤り訂正が不正確であることを前記評価部(140)が検出した場合、前記評価部(140)が前記回路(100)をディアクティベートするように、または警報もしくは警告メッセージを出力するように構成されている、
請求項1から13までのいずれか1項記載の回路(100)。
【請求項15】
データの誤り訂正を行うための回路(100)であって、
前記回路(100)は、前記回路(100)の誤り訂正部(130)の誤り訂正能力の正確性のチェックを行い、
前記回路(100)は、
入力データワードを受け取るための入力インタフェース(110)と、
前記入力データワードであるかまたは前記入力データワードから導出されたものであるテストデータワードの1ビットまたは複数ビットを操作し、変更されたデータワードを取得するためのデータマニピュレータ(120)と、
前記変更されたデータワードを処理する前記誤り訂正部(130)と、
前記誤り訂正部(130)による前記変更されたデータワードの処理に依存して前記誤り訂正部(130)の誤り訂正能力の正確性を評価するための評価部(140)と、
を有し、
前記データマニピュレータ(120)は、2つ以上の変更されたデータワードの各変更されたデータワードが、前記2つ以上の変更されたデータワードの他の各変更されたデータワードとは相違するように、前記2つ以上のデータワードのうちいずれかである前記2つ以上の変更されたデータワードを生成すべく構成されており、
前記データマニピュレータ(120)は、前記2つ以上の各変更されたデータワードを、前記テストデータワードの少なくとも1ビットの変更により生成するように構成されており、
前記2つ以上の変更されたデータワードの各変更されたデータワードごとに、前記誤り訂正部(130)は、前記変更されたデータワードが誤りを有するか否かをチェックするように構成されており、
前記評価部(140)は、前記2つ以上の変更されたデータワードのチェックの結果に依存して、前記誤り訂正部(130)の誤り訂正能力の正確性を評価するように構成されている、
回路(100)。
【請求項16】
前記評価部(140)は、前記2つ以上の変更されたデータワードのうち前記誤り訂正部が誤りを有すると判定した数を示す、誤りを有するワード数を特定するように構成されており、
前記評価部(140)は、前記誤りを有するワード数が、前記2つ以上の変更されたデータワードのうち実際に誤りを有する数を示す予測された誤り数と等しいか否かを判断するように構成されている、
請求項15記載の回路(100)。
【請求項17】
前記データマニピュレータ(120)は、前記2つ以上の各変更されたデータワードを、前記テストデータワードのちょうど1ビットの変更により生成するように構成されている、
請求項15または16記載の回路(100)。
【請求項18】
前記データマニピュレータ(120)は、前記2つ以上の各変更されたデータワードを、前記テストデータワードのちょうど2ビットの変更により生成するように構成されている、
請求項15または16記載の回路(100)。
【請求項19】
前記データマニピュレータ(120)は、XOR回路要素(122)と、他の回路要素(124)と、ビットレジスタ(126)と、を備えており、
前記ビットレジスタ(126)は、前記テストデータワードの各ビット位置ごとにビットを有し、
前記2つ以上の変更されたデータワードのうち第1の変更されたデータワードを生成するために反転すべき、前記テストデータワードのビット位置に割り当てられた、前記ビットレジスタ(126)内の各ビットが、前記ビットレジスタ(126)内にて第1のビット値を示すように、前記ビットレジスタ(126)は構成されており、
前記第1の変更されたデータワードを生成するために反転すべきでない、前記テストデータワードのビット位置に割り当てられた、前記ビットレジスタ(126)内の各ビットが、前記ビットレジスタ(126)内にて、第1のビット値とは異なる第2のビット値を示すように、前記ビットレジスタ(126)が構成されており、
前記XOR回路要素(122)は、前記テストデータワードを第1の入力として受け取るように配置されており、
前記XOR回路要素(122)は、前記2つ以上の変更されたデータワードの前記第1の変更されたデータワードを生成するための元の第2の入力として、前記ビットレジスタ(126)内のビットのビット値を受け取るように配置されており、
前記第1の変更されたデータワードが生成された後、前記他の回路要素(124)は、前記ビットレジスタ(126)内のビットの更新されたビット値を得るために、前記ビットレジスタ(126)内のビットのビット値を1ビット位置ずつシフトまたは回転させるように構成されており、
前記XOR回路要素(122)は、前記2つ以上の変更されたデータワードの第2の変更されたデータワードを生成するための更新された第2の入力として、前記ビットレジスタ(126)内のビットの前記更新されたビット値を受け取るように配置されている、
請求項15から18までのいずれか1項記載の回路(100)。
【請求項20】
データの誤り訂正と、誤り訂正部(130)の誤り訂正能力の正確性のチェックと、を行う方法であって、
入力インタフェース(110)によって入力データワードを受け取るステップと、
データマニピュレータ(120)によって、前記入力データワードであるかまたは前記入力データワードから導出されたものであるテストデータワードの1ビットまたは複数ビットを操作し、変更されたデータワードを取得するステップと、
前記誤り訂正部(130)によって前記変更されたデータワードを処理するステップと、
評価部(140)によって、前記誤り訂正部(130)による前記変更されたデータワードの処理に依存して前記誤り訂正部(130)の誤り訂正能力の正確性を評価するステップと、
を有し、
前記誤り訂正部(130)によって、前記入力インタフェース(110)から前記入力データワードを受け取るステップと、
前記誤り訂正部(130)によって、前記入力データワードが誤りを有するか否かをチェックするステップと、
前記入力データワードが誤りを有すると前記誤り訂正部(130)が判断した場合、前記誤り訂正部(130)によって、事前訂正されたデータワードを得るべく前記入力データワードを訂正し、かつ、前記事前訂正されたデータワードを前記テストデータワードとして前記データマニピュレータ(120)へ供給するステップと、
前記入力データワードが誤りを有しないと前記誤り訂正部(130)が判断した場合、前記誤り訂正部(130)によって、前記入力データワードを前記テストデータワードとして前記データマニピュレータ(120)へ供給するステップと、
をさらに有することを特徴とする方法。
【請求項21】
コンピュータまたは信号プロセッサ上にて実行されるときに請求項20記載の方法を実施するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動作中にエラーフリーのテストデータを必要とすることなくメモリの誤り訂正符号回路をテストする思想を開示するものである。
【背景技術】
【0002】
従来技術では、(2重プログラミングにより)不正確な誤り訂正符号をテスト符号として使用して(不揮発性の)フラッシュメモリにおいて1ビット誤りまたは2ビット誤りの誤り訂正の実行の正確性をチェックするため、既知の欠陥テストデータが生成される。とりわけ、かかる手法は以下の欠点を有する:
メモリの各部分がエラーフリーであることを確認するため、予め各部分をテストしておかなければならない。本来的にエラーフリーであると想定されるメモリ部分は、テスト符号に用いることができない。というのも、これを使用すると、誤り訂正符号の機能を評価するために、予測される1ビット誤りおよび2ビット誤りの正確な情報が使用できなくなるからである。
【0003】
その上、カラム指向型バースト長誤りも関与している場合、動作中にテスト符号が非意図的に妨害されてしまう。テストソフトウェアが、この妨害されたテスト符号をエラートレラントに扱わない場合、かかるコンポーネントは、意図されない誤り信号を生成することとなる。
【0004】
上述のような標準的な誤り処理を回避するためには、厳格な誤り検出アルゴリズムを緩和するか、または、多数決にも使用される他の代替的なメモリ部分を指定する。これにより生じる欠点は、多重比較のためにさらに他のメモリ部分を割り当てなければならないことである。
【0005】
その上従来技術では、ユーザに対し、データ符号と誤り訂正符号とを別個に、具体的に誤りを有するようにプログラミングするための手段が提供されない。その代わり、1ビット誤りまたは2ビット誤りを有するテスト符号は、ユーザモードでしかプログラミングすることができない。現在のところ、たとえばフラッシュメモリ等の不揮発性メモリの場合、このコンポーネントはユーザモードで2回プログラミングされ、これにより、OR演算が行われるかのように誤り訂正符号が関連付けられる(先に削除しておくことなく行われる2重プログラミング)。かかる手順は当該コンポーネントにより許されないので、上述の演算が適正に機能しているか否かはテストされていない。また揮発性メモリでは、1つのECCワードにおいて、当該ECCの変更が許容されずに、データ内容から独立したECC内容をコンフィギュレーション設定することもできない。
【0006】
誤り訂正符号誤り検出のために全てのデータビットをテストするためには、専用のメモリ部分をプログラミングしてから、その後に第2の適切な符号を2重プログラミングする。このデータは、2重プログラミングによって誤り訂正符号の内容が不所望に変更することがないよう、かつ、意図されたビット偏差を除いて、結果が初期のプログラミングに等しくなるように選択される。
【0007】
さらに、誤り訂正テスト符号の多重プログラミングは、アドレス誤り訂正符号を用いることにより複雑になり得る。アドレス誤り訂正符号を用いる場合、データの他、データのアドレスも誤り訂正符号計算に用いられる。これにより、誤り訂正符号メモリ内容のアドレスは誤っているが当該内容は正しいことを検出することができる。かかる場合、アドレスに依存するこの誤り訂正テスト符号はメモリ部分に依存し、フレキシブルに使用することができなくなる。
【0008】
さらに、従来技術では、テスト符号は製造業者によって事前設定されている。ユーザには、自身で誤り訂正符号ワードを選択するための手段は提供されない。誤り訂正符号ワードおよび事前規定された誤り訂正符号データワードのための誤り訂正符号ワード(ユーザデータおよび誤り訂正符号のバイト)のためのユーザデータワードを決定するための補助的手段または可能性は、提供されない。
【0009】
誤り訂正符号回路のテストの改善された思想が実現されれば、非常に有利である。
【発明の概要】
【課題を解決するための手段】
【0010】
本発明では、データの誤り訂正を行うための回路であって、当該回路の誤り訂正部の誤り訂正能力の正確性のチェックを行う回路を開示する。当該回路は、入力データワードを受け取るための入力インタフェースを備えている。当該回路はさらに、変更されたデータワードを得るためにテストデータワードの1ビットまたは複数ビットを操作するためのデータマニピュレータも備えており、このテストデータワードは、上述の入力データワードであるか、または入力データワードから導出されたものである。さらに、当該回路の上述の誤り訂正部は、上述の変更されたデータワードも処理する。また、当該回路は、誤り訂正部による変更されたデータワードの処理に依存して当該誤り訂正部の誤り訂正能力の正確性を評価するための評価部も備えている。
【0011】
さらに本発明では、データの誤り訂正と、誤り訂正部の誤り訂正能力の正確性のチェックとを行う方法も開示する。当該方法は、
・入力インタフェースによって入力データワードを受け取るステップと、
・データマニピュレータによって、変更されたデータワードを得るために、上述の入力データワードであるかまたは当該入力データワードから導出されたものであるテストデータワードの1ビットまたは複数ビットを操作するステップと、
・前記誤り訂正部によって前記変更されたデータワードを処理するステップと、
・評価部によって、誤り訂正部による変更されたデータワードの処理に依存して当該誤り訂正部の誤り訂正能力の正確性を評価するステップと
を有する。
【0012】
また本発明では、コンピュータまたは信号プロセッサ上にて実行されるときに上述の方法を実施するためのコンピュータプログラムも開示する。さらに本発明では、コンピュータまたはプロセッサ上にて実行されるときに上述の方法を実施するための上述のコンピュータプログラムを含む、非一時的デジタル記憶媒体も開示する。
【0013】
添付の図面を使用して本発明の実施形態を詳細に説明する前に述べておくべき点として、図面中、同一要素または機能的に等価である要素には、同一の符号を付しており、同一符号を付した要素については、説明を繰り返し行うことは割愛する。よって、同一符号が付された要素について行った説明は、当該要素間にて使用することができる。
【図面の簡単な説明】
【0014】
図1】一実施形態の、データの誤り訂正を行うための回路であって、当該回路の誤り訂正部の誤り訂正能力の正確性のチェックを行う回路を示す図である。
図2】誤り訂正部が入力インタフェースから入力データワードを受け取るように設けられた、一実施形態の回路を示す図である。
図3】通常動作モードをアクティベートするためのモード切替器をさらに備えた、一実施形態の回路を示す図である。
図4図1から図3までの構成要素の他にさらにユーザインタフェースを備えた、一実施形態の回路を示す図である。
図5】テストデータワードは、ユーザデータビットと、誤り訂正ビットと、メモリ内における当該ユーザデータビットの位置を特定するためのアドレスビットとを含み得る、一実施形態の回路を示す図である。
図6】一実施形態の回路であって、当該回路自体がさらにメモリを含む回路を示す図である。
図7】メモリ内のアドレスにより指示される、変更対象である1つまたは複数のアドレス指定可能なビットを指定するためのユーザインタフェースと、当該メモリとを備えた、具体的な一実施形態の回路を示す図である。当該アドレスは、明示的に適用されるか、または暗黙的に参照されるものである。
図8】回路要素と、他の回路要素と、ビットレジスタとを備えた、一実施形態のデータマニピュレータを示す図である。図8のデータマニピュレータは、1ステージXORを有する。別個のステージの前に、シフトまたは回転等の1ビット変更を適用することができる。一部の実施形態では、両ビット操作ステップをたとえば、図18,19および20に示されているように、2ステージ操作に含めることができる。
図9】読出パスと書込パスとによるランダムアクセス方式の、一実施形態の誤り訂正符号メモリを示す図である。
図10】CPUとメモリとの間のデータパスに実装された誤り訂正符号回路を示す図である。さらに、使用されるアドレスレジスタも示す。
図11】動作中の回路訂正チェックを支援するための小さなレジスタセット拡張を示す図である。
図12】誤り訂正符号能力を有する意図的に2重プログラミングされたフラッシュメモリの誤り訂正能力の機能の初期設定、動作および評価のフローチャートである。
図13】誤り訂正符号の機能の手動検査のフローチャートである。
図14】誤り訂正符号の機能の半自動検査のフローチャートである。
図15】誤り訂正符号の機能の完全自動連続検査のフローチャートである。
図16】誤り訂正符号の機能の完全自動連続検査用のレジスタセットを示す図である。
図17】誤り訂正符号機能性チェックを示す図である。
図18】一実施形態のハードウェア具現化を示す図である。
図19】一実施形態の誤り訂正符号テスト有限状態機械のコンフィギュレーション設定(初期設定、アクティベート、自律モニタリング)のツリー手順を示す図である。
図20】1ビット誤りおよび2ビット誤りの強制および計数の一例を示す図である。
【発明を実施するための形態】
【0015】
図1は、一実施形態の、データの誤り訂正を行うための回路100であって、当該回路100の誤り訂正部130の誤り訂正能力の正確性のチェックを行う回路100を示す図である。
【0016】
回路100は、入力データワードを受け取るための入力インタフェース110を備えている。
【0017】
回路100はさらに、テストデータワードの1ビットまたは複数ビットを操作し、変更されたデータワードを取得するためのデータマニピュレータ120を備えており、このテストデータワードは、上述の入力データワードであるか、または入力データワードから導出されたものである。
【0018】
回路100はさらに、誤り訂正部130を備えており、この誤り訂正部130は、上述の変更されたデータワードを処理する。
【0019】
回路100はさらに、誤り訂正部130による変更されたデータワードの処理に依存して当該誤り訂正部130の誤り訂正能力の正確性を評価するための評価部140を備えている。
【0020】
データマニピュレータ120の目的は、変更されるデータワード内に特定の誤りを故意に生成できるようにすることである。テストデータワードが誤り無しであると仮定した場合、テストデータワードの1ビットを変更すると、ちょうど1ビット誤りを有する変更データワードが形成されることとなる。よって、誤り訂正符号がこの変更されたデータワードを正確に処理するか否かを、評価部140によって評価することができる。
【0021】
一部の実施形態では、誤り訂正部130の誤り訂正が不正確であることを評価部140が検出した場合、評価部140がたとえば回路100をディアクティベートするように、または警報もしくは警告メッセージを出力するように構成することができる。
【0022】
異なる実施形態ごとに、誤り訂正部の処理の正確性の評価の異なる基準が適用される。
【0023】
一実施形態では、変更されたデータワードが誤りを有することを誤り訂正部が正確に検出し、かつ、誤り訂正部がデータワードの当該誤りを正確に訂正した場合、評価部140は、誤り訂正部の処理が正確であると判断する。
【0024】
かかる実施形態の利点は、誤り訂正部の誤り検出だけでなく誤り訂正もチェックされることである。
【0025】
他の一実施形態では、変更されたデータワードが誤りを有することを誤り訂正部が正確に検出した場合、評価部140は、誤り訂正部の処理が正確であると判断し、変更されたデータワードの訂正が成功したか否かのテストは行わない。かかる実施形態のうち一部の実施形態では、誤り訂正回路は、変更されたデータワードの訂正を行わず、当該変更されたデータワードの訂正が必要であるか否かの判断のみを行う。
【0026】
かかる実施形態の利点は、変更されたデータワードを訂正するために必要な処理時間が削減されることである。とりわけ上述の実施形態により、それぞれ異なる変更を有する大量の変更データワードの誤り検出の正確性のテストを、誤り訂正の正確性もテストする実施形態と比較して短時間で行うことができる。かかる実施形態が成立する前提は、検出対象の誤りが実際に全て検出されれば、誤り訂正は誤り訂正部130によって正確に行われる、ということである。
【0027】
上記にて概説したように、一部の実施形態では、誤り訂正の結果が正確であるか否かをテストする。一部の実施形態では、訂正が行われる場合、たとえば、1ビット誤りインジケータまたは2ビット誤りインジケータをセットすることができる。
【0028】
他の一実施形態では、誤り訂正部130はたとえば、変更されたデータワードが誤りを有するか否かをチェックするように構成することができる。変更されたデータワードが誤りを有すると誤り訂正部130が判断した場合、誤り訂正部130はたとえば、ユーザデータビットおよび誤り訂正ビットを含む訂正されたデータワードを得るべく、当該変更されたデータワードを訂正するように構成することができる。評価部140はたとえば、この訂正されたデータワードのユーザデータビットと、当該訂正されたデータワードの誤り訂正ビットとに依存して、当該訂正されたデータワードが誤りを有するか否かを判定するように構成することができる。訂正されたデータワードが誤りを有する場合には、評価部140は、誤り訂正部130の誤り訂正能力が不正確であると判断するように構成されている。
【0029】
このようにして、検出された誤りの訂正を行った後、訂正されたデータワードに誤りが存在するか否かを判断するためのテストをもう1回行う。行われた訂正が成功した場合には、訂正されたデータワードには誤りは存在しないはずである。そうでない場合には、誤り訂正部130は不正確であると判断する。
【0030】
テストデータワードのビットの変更はたとえば、テストデータワードを反転することにより行うことができ、たとえば、ビット値を“0”から“1”に変化させ、またはビット値を“1”から“0”に変化させることにより行うことができる。
【0031】
一実施形態では、誤り訂正部130はたとえば、変更されたデータワードが誤りを有するか否かをチェックするように(かつ、たとえばフラグによって示すように)構成することができる。かかる実施形態では、評価部140はたとえば、誤り訂正部130により行われた、変更されたデータワードの誤りの有無のチェックの結果に依存して、当該誤り訂正部130の誤り訂正能力(たとえば誤りフラグのセッティングおよび/または適用されたデータ訂正)の正確性を評価するように構成することができる。
【0032】
一実施形態では、誤り訂正部130はたとえば、変更されたデータワードが誤りを有するか否かをチェックするように構成することができる。かかる実施形態では、変更されたデータワードが誤りを有すると誤り訂正部130が判断した場合、誤り訂正部130はたとえば、訂正されたデータワードを得るべく、当該変更されたデータワードを訂正するように構成することができる。かかる実施形態ではさらに、評価部140はたとえば、訂正されたデータワードが、予測されたデータワードと等しいか否かを判断するように構成することができる。かかる実施形態ではさらに、訂正されたデータワードが上述の予測データワードと異なる場合、評価部140はたとえば、誤り訂正部130の誤り訂正能力が不正確であると判断するように構成することができる。
【0033】
他の実施形態では、テストデータワード自体は、変更無しで誤り訂正部130に供給することができる。誤り訂正部130はテストデータワードが誤りを有すると判断しているが、実際にはテストデータワードは誤りを有しない場合には、評価部140は、誤り訂正部130がエラーを有すると判断することができる。
【0034】
より一般的には、一部の実施形態では、誤りを有しないデータワードをたとえば誤り訂正部130に供給することができる。この誤りを有しないテストデータワードが誤りを有すると誤り訂正部130が判断した場合、評価部140は、誤り訂正部130がエラーを有すると判断することができる。
【0035】
図2は、誤り訂正部130が入力インタフェース110から入力データワードを受け取るように設けられた、一実施形態の回路100を示す図である。かかる実施形態では、誤り訂正部130はたとえば、入力データワードが誤りを有するか否かをチェックするように構成することができる。
【0036】
図2では、入力データワードが誤りを有すると誤り訂正部130が判断した場合、誤り訂正部130はたとえば、事前訂正されたデータワードを得るべく当該入力データワードを訂正するように構成することができ、たとえば、誤り訂正部130はこの事前訂正されたデータワードを上述のテストデータワードとしてデータマニピュレータ120へ供給するように構成することができる。
【0037】
入力データワードが誤りを有しないと誤り訂正部130が判断した場合、誤り訂正部130はたとえば、当該入力データワードを上述のテストデータワードとしてデータマニピュレータ120へ供給するように構成することができる。
【0038】
図2の実施形態の利点はとりわけ、入力データの正確性が誤り訂正部130によってチェックされた後、かつ、入力データワードの訂正が行われる場合には当該訂正が行われた後、データマニピュレータへ供給されるテストデータワードが誤りを有しない確率が上昇することである。
【0039】
図2に代わる択一的な実施形態は、入力データワードを入力インタフェース110からデータマニピュレータ120へ直接供給する。かかる実施形態の利点は、とりわけ、入力データワードをチェックし、場合によっては訂正するための処理時間がかからないことである。
【0040】
図3は、通常動作モードをアクティベートするためのモード切替器150をさらに備えた、一実施形態の回路100を示す図である。かかる実施形態では、通常動作モードがアクティベートされている場合、モード切替器150はデータマニピュレータ120および評価器をディアクティベートすることにより、通常動作モードがアクティベートされているときにデータマニピュレータ120がたとえば上述のテストデータワードの1ビットまたは複数ビットを操作せず、また、通常動作モードがアクティベートされているときに上述の評価部140がたとえば誤り訂正部130の誤り訂正能力の正確性を評価しないようにするよう、構成されている。
【0041】
とりわけ図3では、“1”により示される通常動作モードと、“2”により示されるテストモードとを示している。図3では、通常動作モード時には、入力データワードが入力インタフェース110から誤り訂正部130へ供給され、この誤り訂正部130において入力データワードの正確性がチェックされ、必要な場合には訂正される。その後、このデータワード(訂正された場合には、訂正されたデータワード)は誤り訂正部130によって出力される。
【0042】
図3において“2”により示されているテストモード時には、回路100は図1および図2を参照して説明されたように動作する。
【0043】
有利な実施形態では2つの動作モードが存在し、たとえば通常動作モードおよびテストモードが存在する。誤り訂正部またはプロセッサがデータを処理していないときには、テストモードがアクティベートされるだけである。
【0044】
図4は、図1から図3までの構成要素の他にさらにユーザインタフェース160を備えた、一実施形態の回路100を示す図であり、このユーザインタフェース160は、ユーザがテストデータワードのうち操作対象の1ビットまたは複数ビットを指定できるように構成されている。かかる実施形態では、データマニピュレータ120はたとえば、テストデータワードのうちユーザによってユーザインタフェース160を介して指定された当該1ビットまたは複数ビットを操作するように構成することができる。
【0045】
従来技術とは対照的に、ユーザは、予め定められたテスト手順を使用する必要はなく、ユーザがテストしたいと思っている特定のビット誤りを生成するためにテストデータワードをどのように変更すべきかを、ユーザ自身が指定することができる。ユーザの個別の要求に合わせてテストを個別調整することが可能となる。
【0046】
一実施形態では、テストデータワードはたとえば、誤り訂正用の誤り訂正ビットとユーザデータビットとを含むことができる。かかる実施形態では、データマニピュレータ120はたとえば、テストデータワードの誤り訂正ビットの少なくとも1ビットを操作するように構成することができる。
【0047】
よって、誤りを有するユーザデータを含む変更されたデータワードをテストできるだけでなく、誤りを有する誤り訂正ビットを含む変更されたデータワードをテストすることも可能になる。
【0048】
一実施形態では、ユーザインタフェース160はたとえば、ユーザがテストデータワードの誤り訂正ビットの前記少なくとも1ビットを指定できるように構成することができる。かかる実施形態では、データマニピュレータ120はたとえば、テストデータワードの誤り訂正ビットのうちユーザによってユーザインタフェース160を介して指定された当該少なくとも1ビットを操作するように構成することができる。
【0049】
図5は、テストデータワードがたとえば、ユーザデータビットと、誤り訂正ビットと、メモリ200内における当該ユーザデータビットの位置を特定するためのアドレスビットと、を含み得る、一実施形態の回路100を示す図である。かかる実施形態では、データマニピュレータ120はたとえば、テストデータワードのアドレスビットの少なくとも1ビットを操作するように構成することができる。
【0050】
一実施形態では、ユーザインタフェース160はたとえば、ユーザがテストデータワードのアドレスビットの上述の少なくとも1ビットを指定できるように構成することができる。かかる実施形態では、データマニピュレータ120はたとえば、テストデータワードのアドレスビットのうちユーザによってユーザインタフェース160を介して指定された当該少なくとも1ビットを操作するように構成することができる。
【0051】
よって、誤りを有するユーザデータまたは誤りを有する誤り訂正ビットを含む変更されたデータワードをテストできるだけでなく、誤りを有するアドレスビットを含む変更されたデータワードをテストすることも可能になる。
【0052】
図6は、一実施形態の回路100であって、当該回路100自体がさらにメモリ170を含む回路100を示す図である。かかる実施形態では、入力インタフェース110はたとえば、メモリ170から入力データワードをロードするように構成することができる。
【0053】
一実施形態では、上述のメモリ170はたとえば、フラッシュメモリまたは他の任意の種類の不揮発性メモリとすることができる。
【0054】
一般的にフラッシュメモリ自体では、フラッシュメモリのビットを特定の第1のビット値から特定の第2のビット値に変化させることしかできず、当該特定の第2のビット値から当該特定の第1のビット値に変化させることはできない。(たとえば具体的な例では、特定のフラッシュメモリでは、プログラム動作中にビット値“0”をビット値“1”に変化させることはできるが、ビット値“1”は、消去動作無しではビット値“0”に変化させることができない。)複数の実施形態は、フラッシュ値自体を変化させることはないが、フラッシュメモリ外部にて1つまたは複数の変更されたデータワードを生成する。よって、ビット値を“0”から“1”に、かつ“1”から“0”に任意に変化させることができる。
【0055】
一実施形態では、テストデータワードはたとえば、ユーザデータビットと、誤り訂正ビットと、上記にてメモリ200について説明したように、回路100のメモリ170内における当該ユーザデータビットの位置を特定するためのアドレスビットとを含むことができる。かかる実施形態では、データマニピュレータ120はたとえば、テストデータワードのアドレスビットの少なくとも1ビットを操作するように構成することができる。
【0056】
図7は、具体的な一実施形態の、メモリ170を備えた回路100を示す図であり、回路100は、当該回路100のメモリ170内のアドレスを示す、変更対象となる1つまたは複数のアドレスビットを指定するためのユーザインタフェース160を備えている。
【0057】
一実施形態では、データマニピュレータ120はたとえば、2つ以上の変更されたデータワードの各変更されたデータワードが、当該2つ以上の変更されたデータワードの他の各変更されたデータワードとは相違するように、上記の2つ以上のデータワードのうちいずれかである当該2つ以上の変更されたデータワードを生成するように構成することができる。かかる実施形態では、データマニピュレータ120はたとえば、上述の2つ以上の各変更されたデータワードを、テストデータワードの少なくとも1ビットの変更により、生成するように構成することができる。かかる実施形態ではさらに、上記2つ以上の変更されたデータワードの各変更されたデータワードごとに、誤り訂正部130はたとえば、当該変更されたデータワードが誤りを有するか否かをチェックするように構成することができる。かかる実施形態ではさらに、評価部140はたとえば、当該2つ以上の変更されたデータワードのチェックの結果に依存して、当該誤り訂正部130の誤り訂正能力の正確性を評価するように構成することができる。
【0058】
一実施形態では、評価部140はたとえば、上記2つ以上の変更されたデータワードのうち誤り訂正部130が誤りを有すると判定した数を示す、誤りを有するワード数を特定するように構成することができる。かかる実施形態では、評価部140はたとえば、上述の誤りを有するワード数が、当該2つ以上の変更されたデータワードのうち実際に誤りを有する数を示す予測誤り数と等しいか否かを判断するように構成することができる。
【0059】
一実施形態では、データマニピュレータ120はたとえば、上述の2つ以上の各変更されたデータワードを、テストデータワードのちょうど1ビットの変更により生成するように構成することができる。
【0060】
かかる実施形態は、テストデータワードが誤り無しであるとの仮定の下で、ちょうど1ビットの誤り(1ビット誤り)により、変更されたデータワードをテストする。
【0061】
一実施形態では、データマニピュレータ120はたとえば、上述の2つ以上の各変更されたデータワードを、テストデータワードのちょうど2ビットの変更により生成するように構成することができる。
【0062】
かかる実施形態は、テストデータワードが誤り無しであるとの仮定の下で、ちょうど2ビットの誤り(2ビット誤り)により、変更されたデータワードをテストする。
【0063】
図8は、XOR回路要素122と、他の回路要素124と、ビットレジスタ126とを備えた、一実施形態のデータマニピュレータ120を示す図である。
【0064】
かかる実施形態では、ビットレジスタ126はたとえば、テストデータワードの各ビット位置ごとにビットを有することができる。かかる実施形態ではさらに、たとえば、上述の2つ以上の変更されたデータワードのうち第1の変更されたデータワードを生成するために反転すべき、テストデータワードのビット位置に割り当てられた、ビットレジスタ126内の各ビットが、当該ビットレジスタ126内にて第1のビット値を示すように、当該ビットレジスタ126を構成することができる。かかる実施形態ではさらに、たとえば、上述の第1の変更されたデータワードを生成するために反転すべきでない、テストデータワードのビット位置に割り当てられた、ビットレジスタ内の各ビットが、当該ビットレジスタ126内にて、第1のビット値とは異なる第2のビット値を示すように、当該ビットレジスタを構成することができる。
【0065】
上述の実施形態ではさらに、XOR回路要素122はたとえば、テストデータワードを第1の入力として受け取るように配置することができる。かかる実施形態ではさらに、XOR回路要素122はたとえば、上記2つ以上の変更されたデータワードの第1の変更されたデータワードを生成するための元の第2の入力として、ビットレジスタ126内のビットのビット値を受け取るように配置することができる。
【0066】
かかる実施形態ではさらに、たとえば、第1の変更されたデータワードが生成された後、ビットレジスタ126内のビットの更新されたビット値を得るために、他の回路要素124がビットレジスタ126内のビットのビット値を1ビット位置ずつシフトまたは回転させるように構成することができる。かかる実施形態ではさらに、XOR回路要素122はたとえば、上記2つ以上の変更されたデータワードの第2の変更されたデータワードを生成するための更新された第2の入力として、ビットレジスタ126内のビットの更新されたビット値を受け取るように配置することができる。
【0067】
上述の実施形態は特に、誤りを有する複数の変更されたデータワードを効率的に生成することにより、かかる誤りを有する複数の変更されたデータワードをテストするのに適したものとなる。
【0068】
さらに、たとえば次の変更されたデータワードを生成するために回転を用いる場合、ビット誤りはシフトするが、一般的にはビット誤り数は次のデータワードでも同一に維持されることを前提とすることができる。
【0069】
以下、具体的な実施形態について詳細に説明する。
【0070】
複数の実施形態では、テストデータの読出し後にどのビット位置において誤り訂正によって読出し結果が改ざん(反転)されたかをユーザが特定するための1つまたは複数のユーザレジスタが、ユーザのために設けられている。
【0071】
これは、値“1”をとるビット位置を反転させるXOR内容の初期化に起因して生じるものである。複数の実施形態では、誤り訂正テスト符号を1回だけエラーフリーに、または少なくとも誤り訂正符号訂正可能にプログラミングする。誤りを有するセルフィールドを誤り訂正符号訂正無しで読み出した直後、および、訂正直後のいずれにおいても、訂正がなされる場合には訂正された読出しテストワードのビットごとの変更可能性が、実現され得る。
【0072】
複数の実施形態では、読出しデータの改ざんは好適には、読出しテストデータの誤り訂正符号計算の直後に回路ベースで行われる。どのビット位置にてテストデータをどのように変更するかは、誤り訂正符号計算のテストを行う前に初期化されるレジスタセットにより決定される。
【0073】
誤り訂正符号テストワードを使用する目的は、誤り訂正符号ロジックにおいて、誤って解釈される0ビットまたは1ビットに選択的誤りを挿入した後に、誤り訂正符号生成パスを選択的にテストすることである。有利には、第2ステージにおいて1つまたは複数のビット切換手段を制御下で生成し、その後、能動的に開始された誤り訂正符号応答を評価する。
【0074】
一実施形態では、誤り訂正符号能力のチェックは、たとえば4ステップで行うことができる。第1のステップでは、たとえば、誤り訂正符号テスト読出しのどのビットをどのように反転すべきかを決定することにより、また場合によっては、アドレス誤り符号の場合には、どのメモリアドレスにデータが関連付けられているかを特定することにより、誤り訂正符号テスト読出しを初期化する。第2のステップでは、訂正可能な誤り訂正符号ワードにおいてビット切換えを行い、この直前に引き起こされた訂正ステップについて、セルフィールドからデータを再度ロードすることなく、誤り訂正符号計算を行う。最後のステップにおいて、ユーザに知られている通常のレジスタとフラグとを用いて、既にロードされてビットごとに変更されたデータへの上述の誤り訂正の応答を行う。
【0075】
複数の実施形態では、データバスの誤り訂正符号回路の予測される機能をチェックするために当該誤り訂正符号回路に割り当てられたレジスタセットが設けられている。この誤り訂正回路は、揮発性メモリまたは不揮発性メモリに割り当てることができる。
【0076】
一実施形態では、プログラマブルレジスタセットからのロードを行い、ロードされた誤り訂正符号データの誤り訂正符号データと、読出しアドレスと、ユーザデータのビットうちどれを変更するかを決定する。
【0077】
一実施形態では、1ビットもしくは複数ビットをセットすることにより、1ビットまたは複数ビットを削除することにより、および/または、1ビットまたは複数ビットを反転することにより、上述の変更されるビットの変更を行う。
【0078】
一実施形態では、オプションとして、アドレス誤り訂正符号計算の場合には、ユーザデータビットおよび誤り訂正符号データビットの他にさらにアドレスビットもセット、削除および/または反転するか否かを決定することができる。
【0079】
一実施形態では、メモリ読出しアクセスのためにテストデータおよび読出しアドレスが既に特定されていること、および、次の読出しアクセスは当該特定のセルフィールドにアクセスするものではないことを示すビットセッティングも、示すことができる。
【0080】
一実施形態では、オプションとして、最初の第1の読出し命令の直後に、ビット操作が当該セルフィールドにアクセスしない第2の読出し命令を実行すべきか否かを決定することができる。
【0081】
一実施形態では、オプションとして、誤りフラグシグネチャを結果レジスタにロードまたは収集すべきか否かを決定することができる。
【0082】
一実施形態では、オプションとして、誤りシグネチャの発生を(たとえば初期化可能な)カウンタレジスタに積算していくことができる。
【0083】
複数の実施形態では、誤り訂正符号機能性チェック、および、予測される挙動との比較における誤りシグネチャの評価を、ステップごとに、半自動的におよび/または連続的に(場合によっては、たとえば1回または複数回の割込みを用いて)行うことができる。
【0084】
複数の実施形態では、以下の利点のうちいずれか1つまたは複数または全てを奏することができる:
複数の実施形態では、誤りを有する2重プログラミングが必須ではなくなるので、不揮発性のメモリの誤り訂正符号機能性も動作中にチェックすることができる。
【0085】
メモリ部と誤り訂正回路とを1つの部品に集積することが不要となる。各誤り訂正符号ユニットが、自身をテストするセルフテストを実行することができる。
【0086】
誤りを有するデータの明示的なメモリ割当ては不要となる。アドレス誤り訂正符号手法の場合には、メモリアドレスは既知である必要がなく、自由に選択可能なアドレスソースを特定することができる。多重比較のためにテストデータを多重記憶する必要がなくなる。
【0087】
複数の実施形態では、第1の読出しをたとえば誤り訂正符号訂正によって行うことにより、更にセル誤りが生じてもセルの誤り訂正の可能性に依存しないメモリ誤り訂正を正確に行うことができる。
【0088】
最初に得られた第1の読出し結果を、試験のために次のステップにおいて変更する場合、追加のレイテンシー(待機状態)を伴わない特殊なビット操作によって、第2の誤り訂正符号テスト読出しを行うことができる。
【0089】
ビット操作用にレジスタセットを回路あたり1つのみ実装した場合、通常の第1の読出しと同一の回路を用いて、誤り訂正符号テスト読出しを行うことができる。これにより、テスト回路のレイアウトに際してスペースを削減することができ、また、誤り訂正符号テスト読出しについての回路のテスト能力自体のために更にスペースを要することもない。
【0090】
誤り訂正符号結果を並行して確認する第2の誤り訂正符号回路であって、当該第2の誤り訂正符号回路自体も動作中にチェックを受けなければならないことがある第2の誤り訂正符号回路は、不要となる。
【0091】
オプションの他の実施形態はたとえば、誤り訂正符号テストプログラムを制御下または自動的に実行することができる。機能性チェックが自動的に実行される場合には、この機能性チェックを連続的または半自動的に操縦下で行うことができる。
【0092】
具体的な実施形態を詳解すべく、図9に、読出パスと書込パスとによるランダムアクセス方式の、一実施形態の誤り訂正符号メモリを示す。
【0093】
さらに図10に、CPUとメモリとの間のデータパスに実装された誤り訂正符号回路を示す。
【0094】
図11に、一実施形態の、動作中の回路訂正チェックを支援するための小さなレジスタセット拡張を示す。
【0095】
“アドレスXOR”はたとえば、アドレスビット反転のための32ビットレジスタとすることができる。
【0096】
“ECCR XOR”はたとえば、ECC読出し反転(ECCR反転)のための8ビットレジスタとすることができる。
【0097】
“データXOR”はたとえば、データ反転のための64ビットレジスタとすることができる。
【0098】
“FSR”は、フラッシュ状態レジスタを意味する。
【0099】
図12は、誤り訂正符号能力を有する意図的に2重プログラミングされたフラッシュメモリの誤り訂正能力の機能の初期設定、動作および評価のフローチャートである。図12は特に、通常の2重プログラミング手法を示している。
【0100】
図13は、一実施形態の、誤り訂正符号の機能の手動検査のフローチャートである。図13は特に、手動の1ビット応答テスト(状態は“クリーン(CleaN)”または“クリア(ClearR)”?)を示している。
【0101】
図14は、一実施形態の、誤り訂正符号の機能の半自動検査のフローチャートである。図14では特に、1つの完全な半自動誤り訂正符号応答テストを示している。
【0102】
図15は、誤り訂正符号の機能の完全自動連続検査のフローチャートである。図15は特に、割込み操縦される連続的な誤り訂正符号テストルーティンを示している。
【0103】
図16は、一実施形態の、誤り訂正符号の機能の完全自動連続検査用のレジスタセットを示す図である。図16は特に、複数の異なるエラーケース“X”をカバーしている(“X”:1ビット誤り=SBE=S、2ビット誤り=DBE=D、多重ビット誤り=MBE=M)。
【0104】
以下、本発明の他の実施形態について詳細に説明する。しかしその前に、従来技術を更に詳しく検証する。
【0105】
従来技術では、誤り訂正符号機能性チェックを行うためには、顧客は実行時にメモリアクセスのデータパス訂正能力の誤り訂正符号の機能性についての確認を要していた。誤り訂正符号テストは、意図的に改ざんされた特定の誤り訂正符号ワードを処理することにより行われる。この誤り訂正符号ワードは、メモリからロードされた入力データワード、たとえばフラッシュメモリからロードされた入力データワードから導出したものとすることができる。
【0106】
eフラッシュでは誤り訂正符号誤りは、消去無しの2重プログラミングによって人為的に記憶される(強制された障害シグネチャ)。検出された誤りフラグは、予測される誤りフラグ(「合格事例」)と比較される。これは図17に示されている。
【0107】
問題の1つに、誤り訂正符号障害カウント誤解釈がある。訂正可能なメモリビット障害は、単独欠陥に拠る想定外の強制的障害シグネチャの誤解釈の原因となる。その例にはたとえば、1ビットフリップおよび/または局所的/大局的バースト長欠陥がある。
【0108】
これは、非意図的なビットフリップが、予測される誤り訂正符号障害フラグカウントシグネチャのシグネチャに影響することを意味する。
【0109】
誤り訂正符号障害シグネチャが生じ得る。
【0110】
図18は、一実施形態のハードウェアソリューションを示す図である。顧客に対して、メモリ読出しパスを介して又はレジスタの直接セッティングにより得られた誤り訂正符号一貫性データセット(アドレス/データ/誤り訂正符号)の強制的障害シグネチャを制御するためのレジスタセットが設けられている。
【0111】
メモリからの読出し中は、データセットにおいて、想定外の訂正可能なビット誤りは全て、誤り訂正符号一貫性に削除される。ここで行われる誤り訂正は、たとえば顧客固有とすることができる。
【0112】
データセットは、1つの誤り訂正符号計算ステップにおいてビットフリップパターンを適用する対象となり得るテストパターンとして使用される。
【0113】
ビットフリップ列は、ビットフリップパターンの回転を制御しビット誤り/2ビット誤りの発生を記録する簡素化された状態機械によって反復/自動化することができる。この状態機械は、レジスタセットにより制御される。
【0114】
図19に、一実施形態の他の実施例を示す。コンフィギュレーション設定の3ステップ、たとえば初期化ステップ、アクティベートステップ、モニタリングステップが可能である。
【0115】
図20に、一実施形態の更に他の実施例を示す。
【0116】
複数の実施形態において、ECC FSM(FSM=有限状態機械(Finite State Machine))テストエンジンの種々の利点が更に奏される。
【0117】
実行時間中の安全面の誤り訂正符号機能性テストに対応した、オープンな顧客テストフィーチャが実現される。複数の実施形態が、あらゆる誤り訂正符号訂正可能なメモリに適用することができる(フラッシュに限定されない)。
【0118】
誤り訂正符号一貫性データセット構造についての知識は不要である。
【0119】
複数の実施形態では、メモリ読出し時と同一のパス上にて、かつ同一のロジックにより、誤り訂正符号ユニットテストを行うことができる。
【0120】
複数の実施形態では、RAM/eフラッシュの強制的障害パターンシグネチャの定義を要しない。
【0121】
複数の実施形態では、アドレス位置および強制障害パターン生成のシーケンスの正確な定義を要しない。
【0122】
複数の実施形態は、以下の認識に基づいている:
誤り訂正が機能しているか否かをチェックするため、強制的障害を用いる。
【0123】
たとえばフラッシュ等の不揮発性メモリが、特に高い関心対象となる。フラッシュメモリは、2重プログラミングに適したものとなり得る。誤り訂正符号に関しては、たとえば64ビットのユーザデータビットに8ビットの訂正データビットを付随させることができる。
【0124】
2重プログラミングを行う場合、たとえば第1プログラミングと第2プログラミングの結果を、論理ビットORにより結合することができる。
【0125】
CPUは、誤り訂正符号(ECC)が機能しているか否かをテストする。たとえばSランをテストすることができる。たとえば、エアバッグ用途が特に高い関心対象となる。誤り訂正符号ユニットが誤りを有するか否かを特定しなければならない。誤り訂正符号は、時間と共に劣化し得る。テストはたとえば、ユーザによって初期化されるか、または自動的に開始され得る。
【0126】
たとえば、1つのセルのみがテストされるように、または、複数のセルがテストされるように、プログラミングすることができる。
【0127】
典型的にはメモリは、当該メモリをテストするための1つの誤り訂正符号ユニットを有し得る。
【0128】
テストは通常、アイドル時間中にのみ行えるものである。
【0129】
アドレススタータおよび誤り訂正符号の初期化を要する場合がある。
【0130】
擬似ランダムテストを行うことができる。
【0131】
既に述べたように、適用分野はたとえば、自動車産業等である。
【0132】
一実施形態では、誤り訂正が行われたか否かをフラグが示しているか否かを判断することにより、誤り訂正を行う。フラグの数を計数することができ、ここでフラグの数は、行われた誤り訂正の回数を示す。その後、行われた誤り訂正回数が、予測される誤り訂正回数に等しいか否かをテストする。
【0133】
他の一実施形態では、誤り訂正が行われる度に、訂正されたビットが予測されるビットに等しいか否かをテストする。
【0134】
一部の側面を装置との関連で説明したが、かかる一部の側面は、対応する方法の説明にもなること、および、各ブロックまたは各装置は、方法の各ステップまたは各ステップの特徴に相当することが明らかである。また、方法のステップとの関連において説明した側面も同様に、対応する装置の対応するブロックまたは物または構成の説明にもなる。方法のステップの一部または全部をハードウェア装置によって、たとえばマイクロプロセッサ、プログラマブルコンピュータまたは電子回路等によって(またはこれを使用して)実行することができる。一部の実施形態では、方法の最も重要なステップのうちいずれか1つまたは複数を、上述の装置によって実行することができる。
【0135】
特定の実装要求に応じて、本発明の実施形態をハードウェアもしくはソフトウェアで具現化することができ、または、少なくとも部分的にハードウェアで、もしくは少なくとも部分的にソフトウェアで具現化することができる。かかる具現化は、電子的に読出し可能な制御信号を記憶したデジタル記憶媒体であって、プログラミング可能なコンピュータシステムと各方法を実施するように協働する(または協働する能力を有する)デジタル記憶媒体を用いて、たとえばフロッピーディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROMまたはフラッシュメモリを用いて行うことができる。よって、デジタル記憶媒体はコンピュータ可読とすることができる。
【0136】
本発明の一部の実施形態は、ここで記載した方法のうちいずれかを実施するように、プログラミング可能なコンピュータシステムと協働する能力を有する、電子的に読出し可能な制御信号を有するデータ媒体を構成する。
【0137】
一般的に本発明の実施形態は、コンピュータプログラム製品がコンピュータ上にて実行されるときに上述の方法のうちいずれかを実施するように機能するプログラムコードを有するコンピュータプログラム製品として具現化することができる。かかるプログラムコードはたとえば、機械可読媒体上に記憶することができる。
【0138】
他にも、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムであって、機械可読媒体上に記憶されたコンピュータプログラムを構成する実施形態もある。
【0139】
よって換言すると、本発明の一実施形態は、コンピュータプログラムがコンピュータ上にて実行されるときに、ここで記載された方法のうちいずれかを実施するためのプログラムコードを有するコンピュータプログラムである。
【0140】
したがって本発明の他の1つの実施形態は、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムを記録したデータ媒体(またはデジタル記憶媒体、またはコンピュータ可読媒体)である。かかるデータ媒体、デジタル記憶媒体または記録された媒体は、典型的には有形および/または非一時的なものである。
【0141】
したがって本発明の他の1つの実施形態は、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムを表すデータストリームまたは信号列である。かかるデータストリームまたは信号列はたとえば、データ通信接続を介して、たとえばインターネットを介して伝送されるものとすることができる。
【0142】
他の1つの実施形態は、ここで記載された方法のうちいずれかを実施するために構成され又は適合した処理手段、たとえばコンピュータ、またはプログラマブルロジックデバイスを構成する。
【0143】
したがって他の1つの実施形態は、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムを実装したコンピュータを構成する。
【0144】
本発明の他の1つの実施形態は、ここで記載された方法のうちいずれかを実施するためのコンピュータプログラムを受信側へ(たとえば電子的または光学的に)伝送するように構成された装置またはシステムを構成する。かかる受信側はたとえば、コンピュータ、移動機器または記憶装置等とすることができる。上述の装置またはシステムはたとえば、コンピュータプログラムを受信側へ伝送するためのファイルサーバを備えることができる。
【0145】
一部の実施形態では、ここで記載された方法の機能のうち一部または全部を実施するためにプログラマブルロジックデバイス(たとえばフィールドプログラマブルゲートアレイ)を用いることができる。一部の実施形態では、ここで記載された方法のうちいずれかを実施するため、フィールドプログラマブルゲートアレイがマイクロプロセッサと協働することができる。一般的に、かかる方法は有利には、いかなるハードウェア装置によっても実施される。
【0146】
ここで記載された装置は、ハードウェア装置を用いて、またはコンピュータを用いて、またはハードウェア装置とコンピュータとを組み合わせたものを用いて、構成することができる。
【0147】
ここで記載された方法は、ハードウェア装置を用いて、またはコンピュータを用いて、またはハードウェア装置とコンピュータとを組み合わせたものを用いて、実施することができる。
【0148】
上記にて記載された実施形態は、単に本発明の基本的原理を詳解するためのものである。当該分野の通常の知識を有する第三者には、ここで記載された構成および具体的構成の変更や改良が明らかであることは、勿論である。よって、その意義は独立請求項の範囲によってのみ限定されるべきものであり、本願の実施形態の説明や詳解によって示された特定の具体的構成によって限定されるべきものではない。
【0149】
特許請求の範囲については、開示内容は、各請求項の想定し得るいかなる組み合わせも包含する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20