JP2005004288A - 誤り検出回路 - Google Patents

誤り検出回路 Download PDF

Info

Publication number
JP2005004288A
JP2005004288A JP2003164501A JP2003164501A JP2005004288A JP 2005004288 A JP2005004288 A JP 2005004288A JP 2003164501 A JP2003164501 A JP 2003164501A JP 2003164501 A JP2003164501 A JP 2003164501A JP 2005004288 A JP2005004288 A JP 2005004288A
Authority
JP
Japan
Prior art keywords
data
ecc code
circuit
read data
storage device
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.)
Pending
Application number
JP2003164501A
Other languages
English (en)
Inventor
Hiroshi Wakatake
宏 若竹
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.)
Schneider Electric Japan Holdings Ltd
Original Assignee
Digital Electronics Corp
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 Digital Electronics Corp filed Critical Digital Electronics Corp
Priority to JP2003164501A priority Critical patent/JP2005004288A/ja
Publication of JP2005004288A publication Critical patent/JP2005004288A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】3ビット以上の誤りが発生した場合であっても、比較的高い割合で誤りが発生したことを検出する誤り検出回路を提供する。
【解決手段】ECCコード生成回路4は、データ記憶領域3aからの読み出しデータまたは書き込みデータに基づいてECCコードを生成する。カウンタ回路5は、読み出しデータまたは書き込みデータに対してカウント数を導出する。ECCコード比較回路6は、読み出しデータに対するECCコードと書き込みデータに対するECCコードとを比較する。カウント数比較回路7は、読み出しデータに対するカウント数と書き込みデータに対するカウント数とを比較する。誤り検出訂正回路8は、ECCコード比較回路6からの比較結果またはカウント数比較回路7からの比較結果に基づいて、読み出しデータの3ビット以上の誤りを検出する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
この発明は、誤り訂正符号回路(ECC回路)を備えた誤り検出回路に関するものである。
【0002】
【従来の技術】
近年、記憶装置の記憶容量の増加に伴って、内蔵されている記憶素子のいずれかが故障する確率が増えてきている。当該記憶素子の故障に伴い、記憶装置に誤ったデータの書き込み、または、誤ったデータの読み出しが行われることがある。例えば、フラッシュメモリなどの不揮発性の記憶装置は、酸化膜を通じてMOSトランジスタのフローティングゲートへの電荷の注入・引き抜きを行うことにより、書き込みや消去を行う。このため、書き込みの回数が増えると、メモリセルの酸化膜が劣化し、保持データの信頼性が低下する。このような問題を改善するため、ECC(Error Check and Correct)回路を搭載した記憶装置が提供されている。
【0003】
このECC回路とは、符号(コード)理論に基づいて設計された誤り訂正機能を有する回路である。符号化による誤りの訂正は、本来のデータから一定の規則に従ってECCコードを生成する一方、そのデータの読み出し時などに当該データに基づいて再度ECCコードを生成する。そして、当初生成したECCコードと、読み出し時に生成したECCコードとを比較することにより、正しいデータの読み出しを確認することができる。一般に、このようなECC回路は、1ビットの誤り訂正と、2ビットの誤り検出が可能である。
【0004】
以下では、ECC回路の具体的な構成を説明する前に、8ビットのデータ
(D7,D6,D5,D4,D3,D2,D1,D0)
を例として、ECC回路の原理について説明する。
【0005】
まず前提として、2のN乗ビットのデータに対して、1ビットの訂正の機能を持たせるには、2×NビットのECCコードが必要である。つまり、8ビットのデータの場合、当該8ビットは2の3乗であるので、2×3=6ビットのECCコードが必要である。6ビットのECCコード
(CP5,CP4,CP3,CP2,CP1,CP0)
は、次のような式で定義される。
【0006】
【数1】
CP0=Inv(D0+D2+D4+D6)
CP1=Inv(D1+D3+D5+D7)
CP2=Inv(D0+D1+D4+D5)
CP3=Inv(D2+D3+D6+D7)
CP4=Inv(D0+D1+D2+D3)
CP5=Inv(D4+D5+D6+D7)
上記の式において、記号+は、排他的論理和(Exclusive−OR)を表すものとする。また、Inv(Inverter)は、論理否定演算(NOT)を表すものとする。
【0007】
さらに、上記CP0〜CP5を、次のように定義する。
【数2】
CP0=(*,*,0)
CP1=(*,*,1)
CP2=(*,0,*)
CP3=(*,1,*)
CP4=(0,*,*)
CP5=(1,*,*)
【0008】
次に、上記の理論式に基づいた1ビットの誤り訂正について具体的に説明する。
【0009】
まず8ビットのデータを、例えば、以下のようなデータ
(D7,D6,D5,D4,D3,D2,D1,D0)=(1,0,0,1,0,0,1,1)
として考えると、上記データにおけるECCコードは、数1の式により、
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,0,0,1,1)
となる。
【0010】
ここで、例えば、上記8ビットのデータのD2の1ビットが誤っている場合、(D7,D6,D5,D4,D3,D2,D1,D0)=(1,0,0,1,0,1,1,1)
上記データにおけるECCコードは、数1の式より、
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,0,1,0,1,0)
となる。
【0011】
互いのECCコードを比較すると、数1の式におけるD2が含まれているECCコード(CP4,CP3,CP0)がそれぞれ異なっている。そして、数2の式において定義した情報を割り当てると、
(CP4,CP3,CP0)=(0,1,0)
となる。この値に2の重み付けを与えると、
(2の2乗×0)+(2の1乗×1)+(2の0乗×0)=2
となり、2ビット目、すなわち、D2が誤っていることが検出される。そして、このD2を反転すると、当該ビットを正しいデータに訂正することができる。
【0012】
すなわち、1ビットの訂正可能な条件としては、次の組み合わせにおける
(CP0,CP1)、(CP2,CP3)、(CP4,CP5)
のうち、いずれも、一方がエラーで、他方が正常の組み合わせとなることが条件である。
【0013】
続いて、2ビットの誤り検出について具体的に説明する。
【0014】
上記と同じように、8ビットのデータを、
(D7,D6,D5,D4,D3,D2,D1,D0)=(1,0,0,1,0,0,1,1)
として考えると、上記データにおけるECCコードは、数1の式により、
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,0,0,1,1)
となる。
【0015】
ここで、例えば、上記8ビットのデータのD2とD1の2ビットが誤っている場合、
(D7,D6,D5,D4,D3,D2,D1,D0)=(1,0,0,1,0,1,0,1)
上記データにおけるECCコードは、数1の式より、
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,1,1,0,0)
となる。
【0016】
互いのECCコードを比較すると、CP3,CP2,CP1,CP0がそれぞれ異なっている。つまり、次の組み合わせにおける
(CP0,CP1)、(CP2,CP3)、(CP4,CP5)
のうち、(CP0,CP1)と(CP2,CP3)との組み合わせは双方ともエラーが発生している。このように、比較結果に規則性が見られない場合、いずれかのビットが2ビット誤っていると検出することができる。
【0017】
以下では、上記の原理に基づいたECC回路の構成について具体的に説明する。
【0018】
図2に示すように、ECC回路100は、I/O回路101、記憶装置102、ECCコード生成回路103、ECCコード比較回路104および誤り検出訂正回路105を備えている。また、記憶装置102は、データ記憶領域102aと、ECCコード記憶領域102bとを有している。
【0019】
I/O回路101は、ECC回路100の外部に配置される例えば図示しないCPUからデータ入出力線110を介して入力される書き込みデータを、データ入力線111を介してデータ記憶領域102aと、ECCコード生成回路103とに送る。ECCコード生成回路103は、データ入力線111から入力された書き込みデータに基づいて、この書き込みデータに対するECCコードを生成すると共に、生成したECCコードを、ECCコード入力線112を介してECCコード記憶領域102bに送る。これにより、データ記憶領域102aには、データ入力線111から入力された書き込みデータが記憶されると共に、ECCコード記憶領域102bには、この書き込みデータに対するECCコードが記憶される。
【0020】
そして、CPUからの指令により、データ記憶領域102aに記憶されたデータを読み出す場合、この読み出されたデータは、データ出力線113を介してECCコード生成回路103と、誤り検出訂正回路105とに送られる。それと略同時に、このデータに対応したECCコードを、ECCコード記憶領域102bからECCコード出力線114を介してECCコード比較回路104に送る。ECCコード生成回路103は、データ出力線113からの読み出しデータに基づいて、当該データに対するECCコードを生成すると共に、生成したECCコードを、ECCコード比較回路出力線115を介してECCコード比較回路104に送る。
【0021】
ECCコード比較回路104は、ECCコード出力線114から入力された書き込みデータに対するECCコードと、ECCコード比較回路出力線115から入力された読み出しデータに対するECCコードとを比較する。そして、ECCコード比較回路104は、当該比較結果を、誤り検出訂正回路出力線116を介して誤り検出訂正回路105に送る。誤り検出訂正回路105は、誤り検出訂正回路出力線116から入力された比較結果に基づいて、データ出力線113から入力された読み出しデータの1ビットの誤り訂正または2ビットの誤り検出を行う。
【0022】
すなわち、誤り検出訂正回路105は、出力データ線113から入力された読み出しデータに誤りがなければそのデータを、読み出しデータに1ビットの誤りがあれば誤りの訂正を行ったデータを、I/O回路出力線117を介してI/O回路101に送る。また、誤り検出訂正回路105は、読み出しデータに2ビットの誤りがあれば当該データと、当該データが誤っていることを示す情報とをI/O回路出力線117を介してI/O回路101に送る。そして、I/O回路101は、データ入出力線110を介して、読み出したデータや誤りを示す情報をCPUに送る。このようなECC回路については、例えば、以下のような特許文献にそれぞれ開示されている。
【0023】
【特許文献1】
特開平5−54697(公開日平成5年3月5日)
【特許文献2】
特開2001−23394(公開日平成13年1月26日)
【0024】
【発明が解決しようとする課題】
しかしながら、上記のようなECC回路では、1ビットの誤り訂正と、2ビットの誤り検出を目的としているので、例えば、3ビット以上の誤りが発生した場合、以下のような問題を生じる。
【0025】
すなわち、3ビット以上の誤りが発生すると、正常なビットの誤った訂正や誤りなしと誤判断することがある。具体的には、8ビットのデータを、例えば、以下のようなデータ
(D7,D6,D5,D4,D3,D2,D1,D0)=(0,0,0,0,1,1,1,1)
として考えると、上記データにおけるECCコードは、数1の式により、
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,1,1,1,1)
となる。
【0026】
ここで、例えば、上記8ビットのデータの上位4ビット(D7,D6,D5,D4)が誤っている場合、
(D7,D6,D5,D4,D3,D2,D1,D0)=(1,1,1,1,1,1,1,1)
上記データにおけるECCコードは、数1の式より、
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,1,1,1,1)
となる。
【0027】
このように、8ビットのデータの上位4ビットが誤っているにもかかわらず、同一のECCコードが生成されるため、誤りなしと誤判断する問題があった。
【0028】
本発明は、上記の問題点に鑑みてなされたものであり、3ビット以上の誤りが発生した場合であっても、比較的高い割合で誤りが発生したことを検出する誤り検出回路を提供することを目的としている。
【0029】
【課題を解決するための手段】
請求項1の発明に係る誤り検出回路は、上記の課題を解決するために、記憶装置への書き込みデータまたは記憶装置からの読み出しデータに基づいてECCコードを生成するECCコード生成手段と、該ECCコード生成手段により生成された書き込みデータに対するECCコードと読み出しデータに対するECCコードとを比較するECCコード比較手段と、該ECCコード比較手段により比較された結果が入力されると共に、該比較結果が一致しない場合、該比較結果に基づいて読み出しデータの1ビットの誤り訂正または2ビットの誤り検出を行う誤り検出訂正手段とから成るECC回路と、記憶装置への書き込みデータまたは記憶装置からの読み出しデータに対して所定の演算により所定の値を導出する演算手段と、該演算手段により導出された書き込みデータに対する導出値と読み出しデータに対する導出値とを比較する導出値比較手段とを備え、上記誤り検出訂正手段は、該導出値比較手段により比較された結果が入力されると共に、該比較結果が一致しない場合、上記ECCコード比較手段による比較結果が一致する場合であっても、記憶装置からの読み出しデータの3ビット以上の誤りを検出することを特徴としている。
【0030】
上記の構成によれば、ECC回路のECCコード生成手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータに基づいてECCコードを生成する。ECCコード比較手段は、生成された書き込みデータに対するECCコードと、読み出しデータに対するECCコードとを比較する。誤り検出訂正手段は、ECCコード比較手段による比較結果が入力されると共に、その比較結果が一致しない場合、その比較結果に基づいて読み出しデータの1ビットの誤り訂正または2ビットの誤り検出を行う。
【0031】
また、演算手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータに対して所定の演算により所定の値を導出する。導出値比較手段は、導出された書き込みデータに対する導出値と、読み出しデータに対する導出値とを比較する。そして、誤り検出訂正手段は、導出値比較手段による比較結果が入力されると共に、その比較結果が一致しない場合、ECCコード比較手段による比較結果が一致する場合であっても、記憶装置からの読み出しデータが3ビット以上誤っていることを検出する。
【0032】
これにより、記憶装置からの読み出しデータに3ビット以上の誤りが発生した場合であっても、比較的高い割合で読み出しデータに誤りが発生したことを検出することができる。
【0033】
請求項2の発明に係る誤り検出回路は、請求項1記載の発明の構成において、上記演算手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータの各ビットの1または0をカウントするカウンタ手段から構成されることを特徴としている。
【0034】
上記の構成によれば、演算手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータの各ビットの1または0の個数をカウントする。これにより、書き込みデータに対するカウント数と読み出しデータに対するカウント数とが一致しない場合、書き込みデータに対するECCコードと読み出しデータに対するECCコードとが一致する場合であっても、記憶装置からの読み出しデータが3ビット以上誤っていることを検出することができる。
【0035】
請求項3の発明に係る誤り検出回路は、請求項2記載の発明の構成において、上記カウンタ手段は、所定のカウント数までカウントすると、該カウント数をリセットすることを特徴としている。
【0036】
上記の構成によれば、カウンタ手段は、所定のカウント数までカウントすると、このカウント数をリセット(クリア)する。これにより、例えば、0から9まで順にカウントし、9を超えると、この9をリセットして初めから(0から)カウントを行うので、カウンタ手段の回路構成を小さくすることができる。
【0037】
請求項4の発明に係る誤り検出回路は、請求項3記載の発明の構成において、上記カウンタ手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータを所定のブロック単位で1または0をカウントすることを特徴としている。
【0038】
上記の構成によれば、カウンタ手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータを、所定のブロック単位で、1または0の個数をカウントする。例えば、書き込みデータまたは読み出しデータを、8ビットや16ビットなどのブロック単位でカウントする。これにより、カウンタ手段の回路構成を小さくすることができる。
【0039】
請求項5の発明に係る誤り検出回路は、請求項1ないし4何れか1項記載の発明の構成において、上記誤り検出訂正手段により記憶装置からの読み出しデータの誤りが検出された場合、該読み出しデータに対応する記憶装置の領域への書き込みデータの書き込みを禁止する書き込み禁止手段を備えたことを特徴としている。
【0040】
上記の構成によれば、書き込み禁止手段は、誤り検出訂正手段により記憶装置からの読み出しデータの誤りが検出された場合、読み出しデータに対応する記憶装置の領域への書き込みデータの書き込みを禁止する。これにより、記憶装置の故障した領域への書き込みを禁止することができる。
【0041】
【発明の実施の形態】
本発明の実施の一形態について図1に基づいて説明すれば、以下の通りである。
【0042】
すなわち、図1に示すように、本実施の形態に係る誤り検出回路1は、例えば、プログラマブル表示器などのHMI(Human Machine Interface)機器や情報処理装置などに組み込まれて使用されるものであって、I/O回路2、記憶装置3、ECCコード生成回路4、カウンタ回路5、ECCコード比較回路6、カウント数比較回路7および誤り検出訂正回路8を備えている。
【0043】
I/O回路2は、誤り検出回路1の外部に配置される例えば図示しないCPUとデータ入出力線10を介してデータの入出力を行う。本実施の形態では、データ入出力線10は、8ビットのバス幅から構成されると共に、CPUから8ビットのデータがI/O回路2に入出力される例を説明する。なお、データ入出力線10のバス幅は、8ビットのバス幅に限定されるものではなく、16または32ビットのバス幅など、いかなるバス幅で構成してもよいことは勿論である。
【0044】
記憶装置3は、例えば、フラッシュメモリなどの不揮発性のメモリであって、特に、メモリセルを複数個直列に接続してNANDセル・ブロックを構成するNAND型のフラッシュメモリである。記憶装置3は、データ記憶領域3a、ECCコード記憶領域3bおよびカウント数記憶領域3cを有している。なお、記憶装置3は、フラッシュメモリに限定されるものではなく、データやプログラムを一時的に蓄え、必要な場合に取り出すことのできるものであれば、いかなる記憶装置3であってもよい。
【0045】
データ記憶領域3aは、I/O回路2からデータ入力線11を介して8ビットの書き込みデータが入力される。例えば、データ入力線11から以下のような書き込みデータが入力される場合を例にして説明する。
(D7,D6,D5,D4,D3,D2,D1,D0)=(0,0,0,0,1,1,1,1)
【0046】
データ記憶領域3aは、CPUから入力される例えば列を選択するためのカラムアドレスと、行を選択するためのロウアドレスとにより特定されるメモリセルから順に上記の書き込みデータを記憶していく。なお、カラムアドレス、ロウアドレスに係る回路は、従来における通常の回路と同一であるので、ここではその説明を省略する。
【0047】
ECCコード記憶領域3bは、後述するECCコード生成回路4からECCコード入力線12を介してECCコードが入力される。ECCコード記憶領域3bは、データ記憶領域3aに記憶された書き込みデータに対応してECCコードが記憶される。また、カウント数記憶領域3cは、後述するカウンタ回路5からカウント数入力線13を介してカウント数が入力される。カウント数記憶領域3cは、データ記憶領域3aに記憶された書き込みデータに対応してカウント数が記憶される。
【0048】
ECCコード生成回路4は、データ入力線11から入力された書き込みデータに基づいて、当該データに対するECCコードを生成する。ここでは、以下のような書き込みデータ
(D7,D6,D5,D4,D3,D2,D1,D0)=(0,0,0,0,1,1,1,1)
が入力されるので、ECCコード生成回路4は、ECC回路の原理における数1の式に基づいて、
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,1,1,1,1)
というECCコードを生成する。ECCコード生成回路4は、当該生成したECCコードを、ECCコード入力線12を介してECCコード記憶領域3bに送る。
【0049】
カウンタ回路5は、数をカウントするレジスタであって、例えば、フリップフロップを複数個接続して構成されている。カウンタ回路5は、データ入力線11から入力された書き込みデータに対して、当該データにおける“1”のビットのカウントを行う。ここでは、以下のようなデータ
(D7,D6,D5,D4,D3,D2,D1,D0)=(0,0,0,0,1,1,1,1)
が入力されるので、カウンタ回路5は、「4」というカウント数を導出する。カウンタ回路5は、当該導出したカウント数を、カウント数入力線13を介してカウント数記憶領域3cに送る。
【0050】
なお、カウンタ回路5は、所定のカウント数までカウントすると、このカウント数をリセットして初めからカウントを行う構成が望ましい。例えば、0から9まで順にカウントし、9を超えると、この9をリセットして0からカウントを行う構成である。これにより、例えば、CPUからデータ入出力線10を介して全ビット“1”の8ビットの書き込みデータが512回連続して入力された場合(8×512=4096ビット)、カウンタ回路5は、「4096」というカウント数を導出する必要がなく、「6」というカウント数を導出するだけでよい。したがって、4個のフリップフロップを用いるだけでカウンタ回路5を構成することができるので、カウンタ回路5の回路規模を小さくすることができる。
【0051】
これにより、データ記憶領域3aには、データ入力線11から入力された以下の書き込みデータ
(D7,D6,D5,D4,D3,D2,D1,D0)=(0,0,0,0,1,1,1,1)
が記憶される。また、ECCコード記憶領域3bには、この書き込みデータに対応させて、以下のECCコード
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,1,1,1,1)
が記憶される。さらに、カウント数記憶領域3cには、この書き込みデータに対応させて、カウント数「4」が記憶される。
【0052】
ここで、データ記憶領域3aに記憶された上記の書き込みデータが、例えば、記憶装置3におけるメモリセルの酸化膜の劣化などが原因で上位の4ビットが反転して以下のようなデータとして記憶された場合を例にして説明する。
(D7,D6,D5,D4,D3,D2,D1,D0)=(1,1,1,1,1,1,1,1)
【0053】
CPUからの指令により、データ記憶領域3aに記憶された上記のデータを読み出す場合、この読み出されたデータは、データ出力線14を介して、ECCコード生成回路4と、カウンタ回路5と、後述する誤り検出訂正回路8とに送られる。それと略同時に、このデータに対応したECCコードを、ECCコード記憶領域3bからECCコード出力線15を介してECCコード比較回路6に送る。また、このデータに対応したカウント数を、カウント数記憶領域3cからカウント数出力線16を介してカウント数比較回路7に送る。
【0054】
上記ECCコード生成回路4は、データ出力線11から入力された読み出しデータに基づいて、当該データに対するECCコードを生成する。ここでは、以下のような読み出しデータ
(D7,D6,D5,D4,D3,D2,D1,D0)=(1,1,1,1,1,1,1,1)
が入力されるので、ECCコード生成回路4は、ECC回路の原理における数1の式に基づいて、
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,1,1,1,1)
というECCコードを生成する。ECCコード生成回路4は、当該生成したECCコードを、ECCコード比較回路出力線17を介してECCコード比較回路6に送る。
【0055】
上記カウンタ回路5は、データ出力線14から入力された読み出しデータに対して、当該データにおける“1”のビットのカウントを行う。ここでは、以下のような読み出しデータ
(D7,D6,D5,D4,D3,D2,D1,D0)=(1,1,1,1,1,1,1,1)
が入力されるので、カウンタ回路5は、「8」というカウント数を導出する。カウンタ回路5は、当該導出したカウント数を、カウント数比較回路出力線18を介してカウント数比較回路7に送る。
【0056】
ECCコード比較回路6は、ECCコード出力線15から入力された書き込みデータに対する以下のECCコード
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,1,1,1,1)
と、ECCコード比較回路出力線17から入力された読み出しデータに対する以下のECCコード
(CP5,CP4,CP3,CP2,CP1,CP0)=(1,1,1,1,1,1)
とを比較する。そして、ECCコード比較回路6は、当該比較結果を、ECCコード比較結果出力線19を介して誤り検出訂正回路8に送る。ここでは、書き込みデータに対するECCコードと、読み出しデータに対するECCコードとが全てのビットで一致するので、その旨の情報を送る。
【0057】
カウント数比較回路7は、カウント数出力線16から入力された読み出しデータに対する「4」というカウント数と、カウント数比較回路出力線18から入力された書き込みデータに対する「8」というカウント数とを比較する。そして、カウント数比較回路7は、当該比較結果を、カウント数比較結果出力線20を介して誤り検出訂正回路8に送る。ここでは、書き込みデータに対するカウント数と、読み出しデータに対するカウント数とが一致しないので、その旨の情報を送る。
【0058】
誤り検出訂正回路8は、ECCコード比較結果出力線19を介して入力されたECCコードの比較結果と、カウント数比較結果出力線20を介して入力されたカウント数の比較結果とに基づいて、データ出力線14から入力された読み出しデータの1ビットの誤り訂正または2ビット以上の誤り検出を行う。ここでは、ECCコードの比較結果は一致しているが、カウント数の比較結果は一致していないので、データ記憶領域3aに記憶された読み出しデータに3ビット以上の誤りが発生していることを検出する。
【0059】
すなわち、表1に示すように、誤り検出訂正回路8は、ECCコードの比較結果とカウント数の比較結果とが一致している場合、読み出しデータには誤りが発生していないことを検出する。また、ECCコードの比較結果が一致していない場合、カウント数の比較結果が一致しているか否かに関わらず、上記で説明したECC回路の原理における数1および数2の式に基づいて読み出しデータの1ビットの誤り訂正または2ビットの誤り検出を行う。さらに、ECCコードの比較結果が一致しており、カウント数の比較結果が一致していない場合、読み出しデータに3ビット以上の誤りが発生していることを検出する。
【0060】
【表1】
Figure 2005004288
【0061】
なお、読み出しデータに3ビット以上の誤りが発生した場合、ECCコードの比較結果が一致しない場合もある。このような場合、3ビット以上の誤りであるが、表1に示すように、ECC回路の原理における数1および数2の式に基づいて読み出しデータの1ビットの誤り訂正または2ビットの誤り検出を行う。すなわち、3ビット以上の誤りが発生しているにも関わらず、1ビットの誤り訂正または2ビットの誤りが発生していることを検出する。要するに、読み出しデータに誤りが発生していることは検出できる。
【0062】
上記誤り検出訂正回路8は、データ出力線14から入力された読み出しデータに誤りがなければそのデータを、読み出しデータに1ビットの誤りがあれば誤りの訂正を行ったデータを、I/O回路出力線21を介してI/O回路2に送る。
また、誤り検出訂正回路8は、読み出しデータに2ビット以上の誤りがあれば当該データと、当該データが誤っていることを示す情報とをI/O回路出力線21を介してI/O回路2に送る。そして、I/O回路2は、データ入出力線10を介して、読み出したデータや誤りを示す情報をCPUに送る。なお、本実施の形態では、読み出しデータに2ビット以上の誤りがあれば当該データと、当該データが誤っていることを示す情報とをCPUに送る例を説明したが、これに限るものではなく、読み出しデータが誤っていることを示す情報のみをCPUに送ってもよい。
【0063】
また、誤り検出訂正回路8は、読み出しデータの誤りの発生を検出した場合、その読み出しデータが読み出されたデータ記憶領域3aの対応する領域への書き込みを禁止する指令をI/O回路出力線21を介してI/O回路2に送ることもできる。I/O回路2は、その情報をCPUに送ると共に、CPUは、その情報に基づいてデータ記憶領域3aにおけるいわゆる故障した領域への書き込みを禁止することができる。なお、上記誤り検出訂正回路8および上記I/O回路2が、特許請求の範囲における書き込み禁止手段に対応している。
【0064】
以上に述べたように、本実施の形態に係る誤り検出回路1は、ECCコード生成回路4において、データ記憶領域3aへの書き込みデータまたはデータ記憶領域3aからの読み出しデータに基づいてECCコードを生成する。ECCコード比較回路6は、生成された書き込みデータに対するECCコードと、読み出しデータに対するECCコードとを比較する。誤り検出訂正回路8は、ECCコード比較回路6による比較結果が入力されると共に、その比較結果が一致しない場合、その比較結果に基づいて読み出しデータの1ビットの誤り訂正または2ビットの誤り検出を行う。
【0065】
また、カウンタ回路5は、データ記憶領域3aへの書き込みデータまたはデータ記憶領域3aからの読み出しデータに対してカウント数を導出する。カウント数比較回路7は、導出された書き込みデータに対するカウント数と、読み出しデータに対するカウント数とを比較する。そして、誤り検出訂正回路8は、カウント数比較回路7による比較結果が入力されると共に、その比較結果が一致しない場合、ECCコード比較回路6による比較結果が一致する場合であっても、データ記憶領域3aからの読み出しデータが3ビット以上誤っていることを検出する。
【0066】
これにより、データ記憶領域3aからの読み出しデータに3ビット以上の誤りが発生した場合であっても、比較的高い割合で読み出しデータに誤りが発生したことを検出することができる。それゆえ、読み出しデータの信頼性が向上する。
【0067】
また、カウンタ回路5は、データ記憶領域3aへの書き込みデータまたはデータ記憶領域3aへの読み出しデータを、8ビットのブロック単位で、“1”のビットのカウントを行う。これにより、カウンタ回路5の回路構成を小さくすることができる。それゆえ、カウンタ回路5の部品点数を少なくすることができると共に、効率よく書き込みデータまたは読み出しデータの各ビットの“1”をカウントすることができる。
【0068】
さらに、誤り検出訂正回路8は、データ記憶領域3aからの読み出しデータの誤りが検出された場合、読み出しデータに対応するデータ記憶領域3aへの書き込みデータの書き込みを禁止する指令をCPUに送る。これにより、データ記憶領域3aの故障した領域への書き込みを禁止することができる。それゆえ、データ記憶領域3aの適切な利用を図ることができる。
【0069】
なお、本実施の形態では、カウンタ回路5は、データ入力線11から入力された書き込みデータまたはデータ出力線14から入力された読み出しデータにおける“1”のビットのカウントを行う例を説明したが、これに限るものではなく、“0”のビットをカウントしてもよいことは勿論である。また、カウンタ回路5を用いる代わりに、書き込みデータまたは読み出しデータの各ビットの論理積(AND)もしくは論理和(OR)をとってもよい。さらに、書き込みデータまたは読み出しデータにハッシュ関数を適用することにより、メッセージ・ダイジェストを作成してもよい。要するに、書き込みデータと、読み出しデータとを比較可能なものであれば、いかなる構成でもよい。
【0070】
また、本実施の形態では、カウンタ回路5は、0から9まで順にカウントし、9を超えると、この9をリセットして0からカウントを行う構成を説明したが、これに限るものではなく、例えば、0からFまでカウントしてもよい。要するに、所定のカウント数までカウントする構成であればよく、フリップフロップの個数には制限されない。
【0071】
また、本実施の形態では、ECC回路の原理として、数1に基づいてECCコードを生成し、数2に基づいて誤りの訂正を行う例を説明したが、これに限るものではない。例えば、本実施の形態では、ECCコードの生成において、論理否定演算(NOT)を用いているが、論理否定演算(NOT)を用いなくてもECCコードを生成できる。要するに、1ビットの誤り訂正または2ビットの誤り検出を行うことができるECC回路であれば、いかなる理論式に基づいてもよい。
【0072】
また、本実施の形態では、書き込みデータまたは読み出しデータを、8ビットのブロック単位で“1”のビットのカウントを行う例を説明したが、これに限るものではない。例えば、4ビット、16ビット、32ビットまたは4096ビット(512バイト)などのブロック単位で“1”のビットのカウントを行ってもよいことは勿論である。
【0073】
さらに、本実施の形態では、I/O回路2、ECCコード生成回路4、カウンタ回路5、ECCコード比較回路6、カウント数比較回路7および誤り検出訂正回路8をハードウェアで構成する例を説明したが、これに限るものではなく、ソフトウェアで構成してもよい。但し、ソフトウェアで構成した場合、装置内部の回路基板を縮小することはできるが、プログラムをメモリから読み出して実行するため、装置全体の速度は遅くなる。
【0074】
すなわち、上記実施例の説明は、本発明を説明するためのものであって、特許請求の範囲に記載の発明を限定し、あるいは、減縮するように解すべきではない。また、本発明の各構成は上記実施例に限らず、特許請求の範囲に記載の権利範囲内で種々の変形が可能であることは勿論である。
【0075】
【発明の効果】
以上のように、請求項1の発明に係る誤り検出回路は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータに基づいてECCコードを生成するECCコード生成手段と、該ECCコード生成手段により生成された書き込みデータに対するECCコードと読み出しデータに対するECCコードとを比較するECCコード比較手段と、該ECCコード比較手段により比較された結果が入力されると共に、該比較結果が一致しない場合、該比較結果に基づいて読み出しデータの1ビットの誤り訂正または2ビットの誤り検出を行う誤り検出訂正手段とから成るECC回路と、記憶装置への書き込みデータまたは記憶装置からの読み出しデータに対して所定の演算により所定の値を導出する演算手段と、該演算手段により導出された書き込みデータに対する導出値と読み出しデータに対する導出値とを比較する導出値比較手段とを備え、上記誤り検出訂正手段は、該導出値比較手段により比較された結果が入力されると共に、該比較結果が一致しない場合、上記ECCコード比較手段による比較結果が一致する場合であっても、記憶装置からの読み出しデータの3ビット以上の誤りを検出する構成である。
【0076】
これにより、記憶装置からの読み出しデータに3ビット以上の誤りが発生した場合であっても、比較的高い割合で読み出しデータに誤りが発生したことを検出することができる。これらの結果、読み出しデータの信頼性が向上するという効果を奏する。
【0077】
請求項2の発明に係る誤り検出回路は、請求項1記載の発明の構成において、上記演算手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータの各ビットの1または0をカウントするカウンタ手段から構成される構成である。
【0078】
これにより、書き込みデータに対するカウント数と読み出しデータに対するカウント数とが一致しない場合、書き込みデータに対するECCコードと読み出しデータに対するECCコードとが一致する場合であっても、記憶装置からの読み出しデータが3ビット以上誤っていることを検出することができる。これらの結果、データをカウントするだけの簡単な構成で3ビット以上の誤りの発生を検出することができるという効果を奏する。
【0079】
請求項3の発明に係る誤り検出回路は、請求項2記載の発明の構成において、上記カウンタ手段は、所定のカウント数までカウントすると、該カウント数をリセットする構成である。
【0080】
これにより、例えば、0から9まで順にカウントし、9を超えると、この9をリセットして初めから(0から)カウントを行うので、カウンタ手段の回路構成を小さくすることができる。これらの結果、カウンタ手段の部品点数を少なくすることができるという効果を奏する。
【0081】
請求項4の発明に係る誤り検出回路は、請求項3記載の発明の構成において、上記カウンタ手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータを所定のブロック単位で1または0をカウントする構成である。
【0082】
これにより、カウンタ手段の回路構成を小さくすることができる。これらの結果、カウンタ手段の部品点数を少なくすることができると共に、効率よく書き込みデータまたは読み出しデータの各ビットの1または0をカウントすることができるという効果を奏する。
【0083】
請求項5の発明に係る誤り検出回路は、請求項1ないし4何れか1項記載の発明の構成において、上記誤り検出訂正手段により記憶装置からの読み出しデータの誤りが検出された場合、該読み出しデータに対応する記憶装置の領域への書き込みデータの書き込みを禁止する書き込み禁止手段を備えた構成である。
【0084】
これにより、記憶装置の故障した領域への書き込みを禁止することができる。
これらの結果、記憶装置の適切な利用を図ることができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施の一形態の誤り検出回路における電気的構成を示すブロック図である。
【図2】従来のECC回路における電気的構成を示すブロック図である。
【符号の説明】
1 誤り検出回路
2 I/O回路(書き込み禁止手段)
3 記憶装置
4 ECCコード生成回路
5 カウンタ回路(演算手段)
6 ECCコード比較回路
7 カウント数比較回路(導出値比較手段)
8 誤り検出訂正回路(書き込み禁止手段)

Claims (5)

  1. 記憶装置への書き込みデータまたは記憶装置からの読み出しデータに基づいてECCコードを生成するECCコード生成手段と、該ECCコード生成手段により生成された書き込みデータに対するECCコードと読み出しデータに対するECCコードとを比較するECCコード比較手段と、該ECCコード比較手段により比較された結果が入力されると共に、該比較結果が一致しない場合、該比較結果に基づいて読み出しデータの1ビットの誤り訂正または2ビットの誤り検出を行う誤り検出訂正手段とから成るECC回路と、
    記憶装置への書き込みデータまたは記憶装置からの読み出しデータに対して所定の演算により所定の値を導出する演算手段と、
    該演算手段により導出された書き込みデータに対する導出値と読み出しデータに対する導出値とを比較する導出値比較手段とを備え、
    上記誤り検出訂正手段は、該導出値比較手段により比較された結果が入力されると共に、該比較結果が一致しない場合、上記ECCコード比較手段による比較結果が一致する場合であっても、記憶装置からの読み出しデータの3ビット以上の誤りを検出することを特徴とする誤り検出回路。
  2. 上記演算手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータの各ビットの1または0をカウントするカウンタ手段から構成されることを特徴とする請求項1記載の誤り検出回路。
  3. 上記カウンタ手段は、所定のカウント数までカウントすると、該カウント数をリセットすることを特徴とする請求項2記載の誤り検出回路。
  4. 上記カウンタ手段は、記憶装置への書き込みデータまたは記憶装置からの読み出しデータを所定のブロック単位で1または0をカウントすることを特徴とする請求項3記載の誤り検出回路。
  5. 上記誤り検出訂正手段により記憶装置からの読み出しデータの誤りが検出された場合、該読み出しデータに対応する記憶装置の領域への書き込みデータの書き込みを禁止する書き込み禁止手段を備えたことを特徴とする請求項1ないし4何れか1項記載の誤り検出回路。
JP2003164501A 2003-06-10 2003-06-10 誤り検出回路 Pending JP2005004288A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003164501A JP2005004288A (ja) 2003-06-10 2003-06-10 誤り検出回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003164501A JP2005004288A (ja) 2003-06-10 2003-06-10 誤り検出回路

Publications (1)

Publication Number Publication Date
JP2005004288A true JP2005004288A (ja) 2005-01-06

Family

ID=34091246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003164501A Pending JP2005004288A (ja) 2003-06-10 2003-06-10 誤り検出回路

Country Status (1)

Country Link
JP (1) JP2005004288A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925960B2 (en) 2006-11-07 2011-04-12 Macronix International Co., Ltd. Memory and method for checking reading errors thereof
JP2013518345A (ja) * 2010-01-27 2013-05-20 サンディスク テクノロジィース インコーポレイテッド ビット値の格納されているカウントを使用してデータの誤りを訂正するシステムおよび方法
CN103197984A (zh) * 2012-01-10 2013-07-10 炬力集成电路设计有限公司 一种对数据进行查错的方法和装置
KR20150105175A (ko) * 2014-03-06 2015-09-16 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
EP3503411A2 (en) 2017-12-20 2019-06-26 Renesas Electronics Corporation Improved single error correction and double error detection
CN115114062A (zh) * 2022-04-27 2022-09-27 腾讯科技(深圳)有限公司 指令字线路的故障检测方法、装置、设备和存储介质

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925960B2 (en) 2006-11-07 2011-04-12 Macronix International Co., Ltd. Memory and method for checking reading errors thereof
US8190984B2 (en) 2006-11-07 2012-05-29 Macronix International Co., Ltd. Memory and method for checking reading errors thereof
US8347185B2 (en) 2006-11-07 2013-01-01 Macronix International Co., Ltd. Memory and method for checking reading errors thereof
JP2013518345A (ja) * 2010-01-27 2013-05-20 サンディスク テクノロジィース インコーポレイテッド ビット値の格納されているカウントを使用してデータの誤りを訂正するシステムおよび方法
CN103197984B (zh) * 2012-01-10 2016-03-09 炬芯(珠海)科技有限公司 一种对数据进行查错的方法和装置
CN103197984A (zh) * 2012-01-10 2013-07-10 炬力集成电路设计有限公司 一种对数据进行查错的方法和装置
KR20150105175A (ko) * 2014-03-06 2015-09-16 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
KR101632427B1 (ko) * 2014-03-06 2016-06-21 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
US9501354B2 (en) 2014-03-06 2016-11-22 Winbond Electronics Corp. Semiconductor memory device
EP3503411A2 (en) 2017-12-20 2019-06-26 Renesas Electronics Corporation Improved single error correction and double error detection
US10735028B2 (en) 2017-12-20 2020-08-04 Renesas Electronics Corporation Data processing device and data processing method
CN115114062A (zh) * 2022-04-27 2022-09-27 腾讯科技(深圳)有限公司 指令字线路的故障检测方法、装置、设备和存储介质
CN115114062B (zh) * 2022-04-27 2024-04-30 腾讯科技(深圳)有限公司 指令字线路的故障检测方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
JP4564520B2 (ja) 半導体記憶装置およびその制御方法
JP4672743B2 (ja) 誤り訂正装置および誤り訂正方法
US8954818B2 (en) Error detection and correction scheme for a memory device
CN105788648B (zh) 基于异构混合内存的nvm坏块识别处理及纠错方法和***
KR100645058B1 (ko) 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법
US10103748B2 (en) Decoding method, memory control circuit unit and memory storage device
JP5043562B2 (ja) エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US9583217B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI332611B (en) Method for writing data in flash memory and error correction coding/decoding method thereof
US7865804B2 (en) System and method for enhanced error detection in memory peripherals
TWI533311B (zh) 快閃記憶體裝置及其運作方法
TW201331946A (zh) 使用錯誤校正碼編碼以驗證錯誤校正碼解碼操作
JPWO2011030410A1 (ja) メモリ装置
US9431132B2 (en) Data managing method, memory control circuit unit and memory storage apparatus
US10489244B2 (en) Systems and methods for detecting and correcting memory corruptions in software
US10650887B2 (en) Reading memory cells
JP4660632B2 (ja) 半導体記憶装置
US8429485B2 (en) Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page
JP2005004288A (ja) 誤り検出回路
US9417957B2 (en) Method of detecting bit errors, an electronic circuit for detecting bit errors, and a data storage device
JP2012003569A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4686645B2 (ja) 半導体記憶装置およびその制御方法
JP2007257628A (ja) 記憶された情報データの読み取りのための誤り訂正と誤り検出の方法およびそのための記憶制御ユニット
US9519539B2 (en) Monitoring data error status in a memory
TWI701674B (zh) 記憶體裝置及其資料讀取方法