JP2017004588A - 誤り訂正能力をテストするための回路および方法 - Google Patents

誤り訂正能力をテストするための回路および方法 Download PDF

Info

Publication number
JP2017004588A
JP2017004588A JP2016111306A JP2016111306A JP2017004588A JP 2017004588 A JP2017004588 A JP 2017004588A JP 2016111306 A JP2016111306 A JP 2016111306A JP 2016111306 A JP2016111306 A JP 2016111306A JP 2017004588 A JP2017004588 A JP 2017004588A
Authority
JP
Japan
Prior art keywords
data word
error correction
bit
circuit
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016111306A
Other languages
English (en)
Other versions
JP6290303B2 (ja
Inventor
ペアナー マーティン
Perner Martin
ペアナー マーティン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2017004588A publication Critical patent/JP2017004588A/ja
Application granted granted Critical
Publication of JP6290303B2 publication Critical patent/JP6290303B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/01Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/015Simulation or testing of codes, e.g. bit error rate [BER] measurements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Abstract

【課題】データの誤り訂正を行うための回路であって、当該回路の誤り訂正部の誤り訂正能力の正確性のチェックを行う回路を提供する。
【解決手段】回路100は、入力データワードを受け取るための入力インタフェース110を備えている。回路はさらに、変更されたデータワードを得るためにテストデータワードの1ビットまたは複数ビットを操作するためのデータマニピュレータ120も備えている。テストデータワードは、入力データワードであるか、または入力データワードから導出されたものである。さらに、回路の誤り訂正部130は、変更されたデータワードも処理する。また、誤り訂正部130による変更されたデータワードの処理に依存して当該誤り訂正部130の誤り訂正能力の正確性を評価するための評価部140も備えている。
【選択図】図1

Description

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

Claims (22)

  1. データの誤り訂正を行うための回路(100)であって、
    前記回路(100)は、前記回路(100)の誤り訂正部(130)の誤り訂正能力の正確性のチェックを行い、
    前記回路(100)は、
    入力データワードを受け取るための入力インタフェース(110)と、
    前記入力データワードであるかまたは前記入力データワードから導出されたものであるテストデータワードの1ビットまたは複数ビットを操作し、変更されたデータワードを取得するためのデータマニピュレータ(120)と、
    前記変更されたデータワードを処理する前記誤り訂正部(130)と、
    前記誤り訂正部(130)による前記変更されたデータワードの処理に依存して前記誤り訂正部(130)の誤り訂正能力の正確性を評価するための評価部(140)と、
    を有することを特徴とする回路(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. 前記誤り訂正部(130)は、前記入力インタフェース(110)から前記入力データワードを受け取るように設けられており、
    前記誤り訂正部(130)は、前記入力データワードが誤りを有するか否かをチェックするように構成されており、
    前記入力データワードが誤りを有すると前記誤り訂正部(130)が判断した場合、前記誤り訂正部(130)は、事前訂正されたデータワードを得るべく前記入力データワードを訂正するように構成されており、かつ、前記事前訂正されたデータワードを前記テストデータワードとして前記データマニピュレータ(120)へ供給するように構成されており、
    前記入力データワードが誤りを有しないと前記誤り訂正部(130)が判断した場合、前記誤り訂正部(130)は、前記入力データワードを前記テストデータワードとして前記データマニピュレータ(120)へ供給するように構成されている、
    請求項1から4までのいずれか1項記載の回路(100)。
  6. 前記回路(100)は、通常動作モードをアクティベートするためのモード切替器(150)をさらに備えており、
    前記通常動作モードがアクティベートされている場合、前記モード切替器(150)が前記データマニピュレータ(120)および前記評価部(140)をディアクティベートすることにより、前記通常動作モードがアクティベートされているときに前記データマニピュレータ(120)が前記テストデータワードの1ビットまたは複数ビットを操作しないよう、かつ、前記通常動作モードがアクティベートされているときに前記評価部(140)が前記誤り訂正部(130)の誤り訂正能力の正確性を評価しないようにするよう、構成されている、
    請求項1から5までのいずれか1項記載の回路(100)。
  7. 前記回路(100)は、ユーザインタフェース(160)をさらに有し、
    前記ユーザインタフェース(160)は、ユーザが前記テストデータワードのうち操作対象の1ビットまたは複数ビットを指定できるように構成されており、
    前記データマニピュレータ(120)は、前記テストデータワードのうち前記ユーザによって前記ユーザインタフェース(160)を介して指定された前記1ビットまたは複数ビットを操作するように構成されている、
    請求項1から6までのいずれか1項記載の回路(100)。
  8. 前記テストデータワードは、誤り訂正用の誤り訂正ビットとユーザデータビットとを含み、
    前記データマニピュレータ(120)は、前記テストデータワードの前記誤り訂正ビットの少なくとも1ビットを操作するように構成されている、
    請求項1から6までのいずれか1項記載の回路(100)。
  9. 前記回路(100)は、ユーザが前記テストデータワードの前記誤り訂正ビットの前記少なくとも1ビットを指定できるように構成されたユーザインタフェース(160)をさらに有し、
    前記データマニピュレータ(120)は、前記テストデータワードの前記誤り訂正ビットのうち前記ユーザによって前記ユーザインタフェース(160)を介して指定された前記少なくとも1ビットを操作するように構成されている、
    請求項8記載の回路(100)。
  10. 前記テストデータワードは、前記ユーザデータビットと、前記誤り訂正ビットと、メモリ(200)内における前記ユーザデータビットの位置を特定するためのアドレスビットと、を含み、
    前記データマニピュレータ(120)は、前記テストデータワードの前記アドレスビットの少なくとも1ビットを操作するように構成されている、
    請求項8または9記載の回路(100)。
  11. 前記回路(100)は、ユーザが前記テストデータワードの前記アドレスビットの前記少なくとも1ビットを指定できるように構成されたユーザインタフェース(160)をさらに有し、
    前記データマニピュレータ(120)は、前記テストデータワードの前記アドレスビットのうち前記ユーザによって前記ユーザインタフェース(160)を介して指定された前記少なくとも1ビットを操作するように構成されている、
    請求項10記載の回路(100)。
  12. 前記回路(100)は、メモリ(170)をさらに備えており、
    前記入力インタフェース(110)は、前記メモリ(170)から前記入力データワードをロードするように構成されている、
    請求項1から9までのいずれか1項記載の回路(100)。
  13. 前記回路(100)は、請求項10に記載のメモリ(200)をさらに備えており、
    前記入力インタフェース(110)は、前記メモリ(200)から前記入力データワードをロードするように構成されている、
    請求項10または11記載の回路(100)。
  14. 前記メモリ(170;200)は、フラッシュメモリである、
    請求項12または13記載の回路(100)。
  15. 前記誤り訂正部(130)の誤り訂正が不正確であることを前記評価部(140)が検出した場合、前記評価部(140)が前記回路(100)をディアクティベートするように、または警報もしくは警告メッセージを出力するように構成されている、
    請求項1から14までのいずれか1項記載の回路(100)。
  16. 前記データマニピュレータ(120)は、2つ以上の変更されたデータワードの各変更されたデータワードが、前記2つ以上の変更されたデータワードの他の各変更されたデータワードとは相違するように、前記2つ以上のデータワードのうちいずれかである前記2つ以上の変更されたデータワードを生成すべく構成されており、
    前記データマニピュレータ(120)は、前記2つ以上の各変更されたデータワードを、前記テストデータワードの少なくとも1ビットの変更により生成するように構成されており、
    前記2つ以上の変更されたデータワードの各変更されたデータワードごとに、前記誤り訂正部(130)は、前記変更されたデータワードが誤りを有するか否かをチェックするように構成されており、
    前記評価部(140)は、前記2つ以上の変更されたデータワードのチェックの結果に依存して、前記誤り訂正部(130)の誤り訂正能力の正確性を評価するように構成されている、
    請求項1から15までのいずれか1項記載の回路(100)。
  17. 前記評価部(140)は、前記2つ以上の変更されたデータワードのうち前記誤り訂正部が誤りを有すると判定した数を示す、誤りを有するワード数を特定するように構成されており、
    前記評価部(140)は、前記誤りを有するワード数が、前記2つ以上の変更されたデータワードのうち実際に誤りを有する数を示す予測された誤り数と等しいか否かを判断するように構成されている、
    請求項16記載の回路(100)。
  18. 前記データマニピュレータ(120)は、前記2つ以上の各変更されたデータワードを、前記テストデータワードのちょうど1ビットの変更により生成するように構成されている、
    請求項16または17記載の回路(100)。
  19. 前記データマニピュレータ(120)は、前記2つ以上の各変更されたデータワードを、前記テストデータワードのちょうど2ビットの変更により生成するように構成されている、
    請求項16または17記載の回路(100)。
  20. 前記データマニピュレータ(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)内のビットの前記更新されたビット値を受け取るように配置されている、
    請求項16から19までのいずれか1項記載の回路(100)。
  21. データの誤り訂正と、誤り訂正部の誤り訂正能力の正確性のチェックと、を行う方法であって、
    入力インタフェースによって入力データワードを受け取るステップと、
    データマニピュレータによって、前記入力データワードであるかまたは前記入力データワードから導出されたものであるテストデータワードの1ビットまたは複数ビットを操作し、変更されたデータワードを取得するステップと、
    前記誤り訂正部によって前記変更されたデータワードを処理するステップと、
    評価部によって、前記誤り訂正部による前記変更されたデータワードの処理に依存して前記誤り訂正部の誤り訂正能力の正確性を評価するステップと、
    を有することを特徴とする方法。
  22. コンピュータまたは信号プロセッサ上にて実行されるときに請求項21記載の方法を実施するためのコンピュータプログラム。
JP2016111306A 2015-06-10 2016-06-02 誤り訂正能力をテストするための回路および方法 Active JP6290303B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102015210651.9 2015-06-10
DE102015210651.9A DE102015210651B4 (de) 2015-06-10 2015-06-10 Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit

Publications (2)

Publication Number Publication Date
JP2017004588A true JP2017004588A (ja) 2017-01-05
JP6290303B2 JP6290303B2 (ja) 2018-03-07

Family

ID=57395064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016111306A Active JP6290303B2 (ja) 2015-06-10 2016-06-02 誤り訂正能力をテストするための回路および方法

Country Status (4)

Country Link
US (1) US20160364280A1 (ja)
JP (1) JP6290303B2 (ja)
KR (1) KR101852919B1 (ja)
DE (1) DE102015210651B4 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108512B2 (en) * 2016-04-01 2018-10-23 Intel Corporation Validation of memory on-die error correction code
KR20190043043A (ko) 2017-10-17 2019-04-25 에스케이하이닉스 주식회사 전자장치
US11048602B2 (en) 2017-10-17 2021-06-29 SK Hynix Inc. Electronic devices
DE102019132153B3 (de) * 2019-11-27 2021-02-18 Infineon Technologies Ag Integrierte schaltung
EP4120083A1 (en) 2021-07-13 2023-01-18 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5362936A (en) * 1976-11-17 1978-06-05 Toshiba Corp Memory control device
JPS59200349A (ja) * 1983-04-27 1984-11-13 Nec Corp 誤り訂正回路用診断回路
JPS62226353A (ja) * 1986-03-28 1987-10-05 Mitsubishi Electric Corp Ras回路付記憶装置
US4794597A (en) * 1986-03-28 1988-12-27 Mitsubishi Denki Kabushiki Kaisha Memory device equipped with a RAS circuit
JPH01140356A (ja) * 1987-11-27 1989-06-01 Fujitsu Ltd Ecc回路チェック方式
JPH0346047A (ja) * 1989-07-14 1991-02-27 Nec Corp 検査回路
JPH09204317A (ja) * 1996-01-29 1997-08-05 Kofu Nippon Denki Kk 誤り検出訂正回路の診断装置
JPH10228388A (ja) * 1997-02-13 1998-08-25 Nec Eng Ltd データ誤り検出回路
JP2000242515A (ja) * 1999-02-19 2000-09-08 Nec Eng Ltd Ecc機能検証回路及びecc機能検証方法
JP2001358702A (ja) * 2000-05-01 2001-12-26 Hewlett Packard Co <Hp> 誤り訂正符号の検査装置
JP2003007085A (ja) * 2001-06-19 2003-01-10 Nec Microsystems Ltd エラー訂正機能付きメモリ
WO2007096997A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited メモリ制御装置およびメモリ制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02166700A (ja) 1988-12-15 1990-06-27 Samsung Electron Co Ltd エラー検査及び訂正装置を内蔵した不揮発性半導体メモリ装置
JP2003529998A (ja) 2000-03-31 2003-10-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ エラー訂正集積回路および方法
US7020811B2 (en) * 2001-04-24 2006-03-28 Sun Microsystems, Inc. System and method for verifying error detection/correction logic
US7149945B2 (en) 2003-05-09 2006-12-12 Hewlett-Packard Development Company, L.P. Systems and methods for providing error correction code testing functionality
US7373583B2 (en) 2005-05-19 2008-05-13 Infineon Technologies North America Corp. ECC flag for testing on-chip error correction circuit
US8281219B2 (en) 2007-08-16 2012-10-02 Invensas Corporation Error correction code (ECC) circuit test mode
DE102008026568A1 (de) 2008-06-03 2010-04-08 Qimonda Ag Halbleiterbauelement, Speichermodul und Verfahren zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff auf ein Speicherbauelement
US9419651B2 (en) * 2008-12-31 2016-08-16 Stmicroelectronics, Inc. Non-polynomial processing unit for soft-decision error correction coding
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US9535119B2 (en) * 2014-06-30 2017-01-03 Intel Corporation Duty cycle based timing margining for I/O AC timing

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5362936A (en) * 1976-11-17 1978-06-05 Toshiba Corp Memory control device
JPS59200349A (ja) * 1983-04-27 1984-11-13 Nec Corp 誤り訂正回路用診断回路
JPS62226353A (ja) * 1986-03-28 1987-10-05 Mitsubishi Electric Corp Ras回路付記憶装置
US4794597A (en) * 1986-03-28 1988-12-27 Mitsubishi Denki Kabushiki Kaisha Memory device equipped with a RAS circuit
JPH01140356A (ja) * 1987-11-27 1989-06-01 Fujitsu Ltd Ecc回路チェック方式
JPH0346047A (ja) * 1989-07-14 1991-02-27 Nec Corp 検査回路
JPH09204317A (ja) * 1996-01-29 1997-08-05 Kofu Nippon Denki Kk 誤り検出訂正回路の診断装置
JPH10228388A (ja) * 1997-02-13 1998-08-25 Nec Eng Ltd データ誤り検出回路
JP2000242515A (ja) * 1999-02-19 2000-09-08 Nec Eng Ltd Ecc機能検証回路及びecc機能検証方法
JP2001358702A (ja) * 2000-05-01 2001-12-26 Hewlett Packard Co <Hp> 誤り訂正符号の検査装置
US20040243887A1 (en) * 2000-05-01 2004-12-02 Sharma Debendra Das Method and apparatus for verifying error correcting codes
JP2003007085A (ja) * 2001-06-19 2003-01-10 Nec Microsystems Ltd エラー訂正機能付きメモリ
WO2007096997A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited メモリ制御装置およびメモリ制御方法

Also Published As

Publication number Publication date
DE102015210651B4 (de) 2022-10-27
DE102015210651A1 (de) 2016-12-15
US20160364280A1 (en) 2016-12-15
KR20160145503A (ko) 2016-12-20
JP6290303B2 (ja) 2018-03-07
KR101852919B1 (ko) 2018-04-30

Similar Documents

Publication Publication Date Title
JP6290303B2 (ja) 誤り訂正能力をテストするための回路および方法
US10691806B2 (en) Self-measuring nonvolatile memory device systems and methods
US7971112B2 (en) Memory diagnosis method
KR20130031888A (ko) 데이터 메모리의 모니터링 방법
US20080016415A1 (en) Evaluation system and method
JP2005242797A (ja) エラー訂正回路
JP2012198876A (ja) メモリデバイスにおける読み出し不可状態を解決するための装置及び方法
JP6080180B2 (ja) 不揮発性メモリでのマーカプログラミング
JPH03248251A (ja) 情報処理装置
CN111176884A (zh) 用于fpga配置存储器的sec校验方法和装置
JP6341795B2 (ja) マイクロコンピュータ及びマイクロコンピュータシステム
JP2007041665A (ja) Ecc機能検査回路およびecc機能検査方法
CN111221675B (zh) 用于ram错误检测逻辑的自诊断的方法和装置
KR101497545B1 (ko) 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치
US10885195B2 (en) Process for loading a secure memory image for a microcontroller and assembly including a microcontroller
US10025652B2 (en) Error location pointers for non volatile memory
JP2018022277A (ja) プログラマブルロジックデバイス、情報処理装置、ソフトエラー記録方法、及びソフトエラー記録プログラム
US7484147B2 (en) Semiconductor integrated circuit
JP2012118904A (ja) 情報処理装置
US20060090105A1 (en) Built-in self test for read-only memory including a diagnostic mode
JP6332134B2 (ja) メモリ診断回路
JP7379932B2 (ja) 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム
TWI594126B (zh) 資料儲存裝置與資料儲存方法
JP5932951B2 (ja) 消去カウンタをインクリメントするための方法および装置
JP2013125296A (ja) 半導体装置及び半導体装置のメモリ書き換え検知方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170914

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180207

R150 Certificate of patent or registration of utility model

Ref document number: 6290303

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250