JP2008084116A - データ記憶装置及びデータ記憶装置からのデータ読み出し方法 - Google Patents

データ記憶装置及びデータ記憶装置からのデータ読み出し方法 Download PDF

Info

Publication number
JP2008084116A
JP2008084116A JP2006264859A JP2006264859A JP2008084116A JP 2008084116 A JP2008084116 A JP 2008084116A JP 2006264859 A JP2006264859 A JP 2006264859A JP 2006264859 A JP2006264859 A JP 2006264859A JP 2008084116 A JP2008084116 A JP 2008084116A
Authority
JP
Japan
Prior art keywords
data
error
row
main
error detection
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
JP2006264859A
Other languages
English (en)
Inventor
Hironori Iwase
広典 岩瀬
Takanobu Hayashi
貴信 林
Toyohide Matsumura
豊秀 松村
Hironobu Sato
洋伸 佐藤
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.)
Aisin Corp
Original Assignee
Aisin Seiki Co Ltd
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 Aisin Seiki Co Ltd filed Critical Aisin Seiki Co Ltd
Priority to JP2006264859A priority Critical patent/JP2008084116A/ja
Publication of JP2008084116A publication Critical patent/JP2008084116A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】記憶容量を高い効率で利用すると共に、高い信頼性を有してデータを記憶することのできるデータ記憶装置を提供する。
【解決手段】1つのデータが2ビット以上の所定のビット数からなる複数のメインデータDTと、メインデータDTの誤りを訂正可能な1つ又は複数の誤り訂正データECと、メインデータDT及び誤り訂正データECの少なくとも1つに誤りがあるか否かを検出可能である1つの行誤り検出データHDと、からなる1つの行データセット10を複数行備える。行データセット20を構成する1つのデータの複数行に亘る集合である1つの列データセット20に対して、少なくとも1つのデータに誤りがあるか否を検出可能な1つの列誤り検出データVDを、各列データセット20に備える。
【選択図】図2

Description

本発明は、記憶されたデータの読み取り時にデータの誤りを検出可能、且つ誤りが検出された場合にデータを復元することが可能な方式で、データを記憶するデータ記憶装置に関する。また、このデータ記憶装置からのデータの読み出し方法に関する。
不揮発性のメモリなどのデータ記憶装置に記憶された所定のデータを制御装置などが読み出して使用することがある。このとき、メモリの不良などで読み出したデータに誤りがあると、正しい制御が損なわれる。このため、データがメモリに記憶される際には、信頼性を向上するために種々の対策が講じられている。
下記に出典を示す特許文献1には、このような対策の一例が示されている。これによれば、メモリは、3以上の領域に分割され、各領域には同一の情報が書き込まれる。つまり、少なくとも3以上に多重化して記憶される。そして、各領域のデータが全て同一であるか否かがチェックされる。同一でない場合には、多数決により、正しいデータが決定され、正しいデータと異なるデータが修正される。
特開昭63−49860号公報(第2頁、第1、2図等参照)
異なる領域に記憶された3つ以上(例えば3つ)の同一データの内の過半数(例えば2つ)が同時に誤りデータとなる可能性は非常に低いと考えられる。従って、特許文献1の方法を用いれば、データの信頼性は大きく向上する。また、正しいデータが明らかであるから、誤ったデータの復元も容易である。
しかし、同一のデータを3つ以上の領域に記憶させる必要があるので、メモリなどの記憶装置の実効的な容量は1/3以下となってしまい、利用効率が低下する。
本発明は、このような課題に鑑みて創案されたものである。本発明の目的は、記憶容量を高い効率で利用すると共に、高い信頼性を有してデータを記憶することのできるデータ記憶装置を提供することにある。また、本発明は、当該データ記憶装置を用いて、高い信頼性を有して、データを読み出すことのできるデータ読み出し方法を提供することを目的とする。
上記目的を達成するための本発明に係るデータ記憶装置は、以下のように構成されることを特徴とする。
1つのデータが2ビット以上の所定のビット数からなる複数のメインデータと、
前記メインデータの誤りを訂正可能な1つ又は複数の誤り訂正データと、
前記メインデータ及び前記誤り訂正データの少なくとも1つに誤りがあるか否かを検出可能である1つの行誤り検出データと、からなる1つの行データセットを複数行備える。
さらに、前記行データセットを構成する1つの前記データの複数行に亘る集合である1つの列データセットに対して、少なくとも1つの前記データに誤りがあるか否を検出可能な1つの列誤り検出データを、各列データセットに備える。
この特徴構成によれば、本発明のデータ記憶装置から、データを読み出す際に、誤りのあるデータを容易に検出することができる。第1に、行誤り検出データに基づいて、誤ったデータの存在する行データセットを検出することができる。第2に、列誤り検出データに基づいて、誤ったデータの存在する列データセットを検出することができる。第3に、検出した行データセットと、列データセットとに基づいて、誤ったデータを検出することができる。
さらに、本特徴構成によれば、誤り訂正データを用いて、検出された誤りのあるデータを訂正することができる。従って、本発明のデータ記憶装置は、高い信頼性を有してデータを記憶することができる。
行データセットには、複数のメインデータと、1つ又は複数の誤り訂正データと、1つの行誤り検出データとが含まれる。メインデータ及び誤り訂正データが、各2つずつとすると、行データセットには、5つのデータが含まれる。この内、2つはメインデータであるから、データ記憶装置の容量の概ね2/5を利用することができる。従って、上述したように3つのデータを多重化する場合に比べて、高い利用効率で記憶容量を利用することができる。
また、本発明に係るデータ記憶装置は、前記メインデータを1つの前記行データセットに3つ備えることを特徴とする。
1つの行データセットに多くのメインデータが含まれた場合、複数のメインデータに誤りが発生する可能性が高くなり、信頼性が低下する可能性がある。一方メインデータが2つであると、データ記憶装置の利用効率が低くなる。つまり、1つの行データセットに含まれるメインデータの数は、信頼性と、利用効率との間でトレードオフの関係にある。本特徴構成のように、メインデータを3つとすると、信頼性と、利用効率との間のバランスがとれ、実用的である。
また、本発明に係るデータ記憶装置は、前記誤り訂正データが、1つの前記行データセットの全ての前記メインデータの排他的論理和であり、当該行データセットに1つ備えられることを特徴とする。
排他的論理和は、交換の法則、結合の法則を満足し、複数のデータの演算順序等に拘らず同じ結果が得られる演算子である。従って、本特徴構成によれば、1つの行データセットの全てのメインデータの演算結果を容易に得ることができる。また、本特徴構成によれば、1つの行データセットに誤り訂正データが1つ備えられる。従って、例えば、1つの行データセットに3つのメインデータが備えられる場合、データ記憶装置の記憶容量の3/5を利用することができる。つまり、データ記憶装置は、高い利用効率でメインデータを記憶することができる。
また、本発明のデータ記憶装置は、1つの前記行データセットに前記メインデータが3つ備えられる場合に、以下のように前記誤り訂正データを備えることを特徴とする。つまり、前記誤り訂正データが、1つの前記行データセットの3つの前記メインデータのうちの2つの組合せのそれぞれの排他的論理和であり、当該行データセットに3つ備えられることを特徴とする。
この特徴構成によれば、1つのメインデータに対して、2つの異なる誤り訂正データを備える。別の観点では、1つのメインデータが他の2つのメインデータの誤り訂正データに関連する。従って、3つの内の2つのメインデータに誤りが生じても、これら2つのメインデータを訂正することができる。つまり、残った1つのメインデータと、この1つのメインデータが関連する2つの誤り訂正データを利用して、誤りを生じている2つのメインデータを訂正することができる。従って、データ記憶装置は、高い信頼性を有することとなる。
本構成の場合、1つの行データセットには、3つのメインデータと、3つの誤り訂正データと、1つの行誤り検出データとの7つのデータが含まれる。7つの内、3つがメインデータであるから、データ記憶装置の容量の概ね3/7を利用することができる。従って、上述したように3つのデータを多重化する場合に比べて、高い利用効率で記憶容量を利用することができる。
また、本発明のデータ記憶装置は、前記行誤り検出データが、1つの前記行データセットの前記メインデータ及び前記誤り訂正データを巡回符号方式で符号化したものであることを特徴とする。
例えば、行誤り検出データは、巡回符号方式の他、チェックサムやパリティなどの方式を用いて符合化することもできる。しかし、チェックサムやパリティは、複数のデータが互いに反対論理への誤りを生じた場合などに、検出漏れが発生する可能性を有している。それに対し、巡回符号方式は、このような問題を生じる可能性が低い。従って、信頼性の高いデータ記憶装置を提供することができる。
また、前記行誤り検出データに加え、前記列誤り検出データを巡回符号方式で符号化してもよい。さらに、信頼性の高いデータ記憶装置を提供することができる。
また、本発明に係るデータ記憶装置からデータを読み出すデータ読み出し方法は、以下の工程を備えることを特徴とする。
即ち、当該データ読み出し方法は、
前記メインデータ、前記誤り訂正データ、前記行誤り検出データ、前記列誤り検出データの各データを読み出す読み出し工程と、
前記行誤り検出データ及び前記列誤り検出データに基づいて、誤りのあるデータを検出する誤り検出工程と、
前記メインデータの誤りが検出された場合に、当該メインデータが属する前記行データセットの前記誤り訂正データに基づいて、当該メインデータを訂正する訂正工程と、を備える。
このデータ読み出し方法によれば、誤りのあるデータを容易に検出することができる。第1に、行誤り検出データに基づいて、誤ったデータの存在する行データセットを検出することができる。第2に、列誤り検出データに基づいて、誤ったデータの存在する列データセットを検出することができる。第3に、検出した行データセットと、列データセットとに基づいて、誤ったデータを検出することができる。
さらに、誤り訂正データを用いて、検出された誤りのあるデータを訂正することができる。従って、高い信頼性を有して、データを読み出すことのできるデータ読み出し方法を提供することができる。
また、本発明に係るデータ読み出し方法は、前記訂正工程が、誤りが検出された前記メインデータとは別の前記メインデータと、前記誤り訂正データとに基づいて、誤りが検出された前記メインデータを訂正することを特徴とする。
1つの行データセットの中で、複数のメインデータに誤りが発生する可能性は低い。従って、誤りのあるメインデータ以外のメインデータと、誤り訂正データとに基づいて、訂正ができると信頼性の高い読み出しが可能となる。
尚、これら本発明に係るデータ読み出し方法は、上述したデータ記憶装置に関する作用効果、及び全ての追加的特徴とその作用効果を備えることができるものである。
以下、本発明の実施形態を図面に基づいて説明する。図1は、本発明のデータ記憶装置が使用される制御システムの一例を模式的に示すブロック図である。
図に示すように、この制御システムは、制御手段としてのマイクロコンピュータ2と、本発明のデータ記憶装置としてのE2 PROM1とを有する。マイクロコンピュータ2は、CPU(CPUコア)3と、SRAM4とを備えている。SRAM4は、CPU3による種々の演算のワークエリアとして用いられる。SRAM4は、演算途中の結果の他、一時的にプログラムや、プログラムに用いる各種パラメータを記憶する。
2PROM1は、プログラムや、プログラムに用いるパラメータを記憶している。一般的に、SRAMやDRAMなどの揮発性メモリは、高速にアクセスすることができるが、バックアップ電源無しではデータを保持することができない。一方、E2PROMなどのROMや、フラッシュメモリなどの不揮発性メモリは、SRAMやDRAMよりもアクセス速度が落ちるが、バックアップ電源無しでデータを保持することができる。
マイクロコンピュータ2は、プログラムを格納するための不揮発性メモリを内蔵するが、その容量には限りがある。また、プログラムは共通でも、用いるパラメータが被制御対象物によって異なる場合もある。従って、多品種展開が容易などの利用から、マイクロコンピュータ2に内蔵されないE2 PROM1に一部のプログラムや、パラメータなどが記憶される。
2PROM1に記憶されたデータを都度マイクロコンピュータ2が読み出すと、マイクロコンピュータ2は頻繁に外部読出しプロセスを実行する必要がある。これにより、プログラムの実行速度が低下する可能性がある。そこで、マイクロコンピュータ2は、電源投入後の初期化時などに、E2 PROM1に記憶されたデータを内蔵するSRAM4に転記する。
このようなシステムが利用される例としては、自動車のセンサ制御システム、ブレーキ制御システム、エンジン制御システム、安全装置制御システムなどがある。また、エレベータ、工場用工作機械などに利用される場合もある。
〔第1実施形態〕
図2は、E2 PROM(データ記憶装置)に記憶されるデータのデータマップを示す説明図である。
図中、DTはメインデータ、ECは誤り訂正データ、HDは行誤り検出データ、VDは列誤り検出データを示す。各データの添え字(末尾の番号)は、各データの識別番号を示す。本実施形態では、3つのメインデータDT、1つの誤り訂正データEC、1つの行誤り検出データHD、の5つのデータで、1つの行データセット10を構成する例を示している。行データセット10は、複数行(n行)備えられる。複数の行データセット10に亘る1つのデータごとの集合が列データセット20である。
メインデータDTは、1つのデータが2ビット以上の所定のビット数からなり、1つの行データセット10に複数のメインデータDTが含まれる。誤り訂正データECは、メインデータDTの誤りを訂正可能なデータである。誤り訂正データECも、メインデータDTと同一の所定のビット数からなる。本実施形態では、1つの行データセット10に1つであるが、複数備えられてもよい。行誤り検出データHDは、1つの行データセット10において、3つのメインデータDT及び誤り訂正データECの少なくとも1つに誤りがあるか否かを検出可能なデータである。行誤り検出データHDは、メインデータDTと同一の所定のビット数からなり、1つの行データセット10に1つ備えられる。
列誤り検出データVDは、1つの列データセット20のデータの内の少なくとも1つのデータに誤りがあるか否かを検出可能なデータである。1つの列データセット20に1つの列誤り検出データVDが備えられる。列誤り検出データVDの添え字(末尾の番号)は、識別番号を示す。行誤り検出データVDも、メインデータDTと同一の所定のビット数からなる。
図2に示した例では、全ての行データセット10に亘って、列データセット20が設けられる。従って、行データセット10を構成する1つのデータごとに1つの列誤り検出データVDが備えられる。
しかし、この構成に限定されず、例えば図3に示すように、所定の行データセット10に亘って、列データセット20aを設けてもよい。図3の構成では、E2 PROM1の容量の内、列誤り検出データVDが示す割合が増加するため、メインデータDTの割合が相対的に低下する。従って、E2 PROM1の利用効率はやや低下するが、少ないデータ数に対して列誤り検出データVDが設けられるので、信頼性は向上する。
行データセット10の所定の行数は、利用効率や信頼性とのバランスで適宜決定することができる。図3には、理解を容易にするために、3行で列データセットを構成する例を示している。この例において、行データセット10は、n行(n=3の倍数)である。列誤り検出データVDは、行検出データ10を構成する1つのデータに対する列データセット20の分割数に合わせて、各m個(m=n/3)である。
誤り訂正データECは、図2のように1つの行データセット10に1つ備えられる場合には、1つの行データセット10の全てのメインデータDTの排他的論理和である。例えば、1つのデータの所定ビット数が8ビットで、メインデータDT11がD6(Hex)、DT12がAC(Hex)、DT13が67(Hex)であれば、誤り訂正データEC1は、1D(Hex)となる。
行誤り検出データHDは、1つの行データセット10のメインデータDT及び誤り訂正データECを巡回符号方式(CRC)で符号化したものである。CRCに限らず、チェックサム方式や、パリティ方式、ハミング符号方式などによって、符号化してもよい。
図4〜図8は、マイクロコンピュータ2がE2 PRPM1からデータを読み出す際に、データの誤りを検出する例を示している。誤り検出の詳細な手順については後述するが、まず、各例について簡単に説明する。
図4に示す例では、メインデータDTの1つであるDT12が誤りデータである。この場合、メインデータDT12を含む行データセット11の行誤り検出データHD1と、メインデータDT12を含む列データセット22に対する列誤り検出データVD2とによって、メインデータDT12の誤りが検出される。
メインデータDT12の誤りは、誤り訂正データEC1によって訂正可能である。つまり、誤りが検出されたメインデータDT12とは別のメインデータDT11及びDT13と、誤り訂正データEC1との排他的論理和を計算することによって、メインデータDT12を算出することができる。
図5に示す例では、誤り訂正データEC1が誤りデータである。この場合、誤り訂正データEC1を含む行データセット11の行誤り検出データHD1と、誤り訂正データEC1を含む列データセット24に対する列誤り検出データVD4とによって、誤り訂正データEC1の誤りが検出される。
誤り訂正データEC1の誤りは、メインデータDT11、DT12、DT13の排他的論理和を再計算することによって訂正可能である。
図6に示す例では、行誤り検出データHD1が誤りデータである。この場合、行誤り検出データHD1を含む行データセット11の行誤り検出データHD1と、行誤り検出データHD1を含む列データセット25に対する列誤り検出データVD5とによって、行誤り検出データHD1の誤りが検出される。
行誤り検出データHD1の誤りは、メインデータDT11、DT12、DT13、誤り訂正データEC1からCRCを再計算することによって訂正可能である。
図7に示す例では、メインデータDT12と、DT32とが誤りデータである。図4と同様に、行誤り検出データHD1と、列誤り検出データVD2とによって、メインデータDT12の誤りが検出される。また、行誤り検出データHD3と、列誤り検出データVD2とによって、メインデータDT32の誤りが検出される。
本例の場合、同一の列データセット22に複数の誤りデータを含んでいる。しかし、1つの行データセット10(11及び13)には、それぞれ1つの誤りデータしか含まれない。従って、2つの誤りデータ(DT12、DT32)は、それぞれの行データセット10の誤り訂正データ(EC1、EC3)によって訂正可能である。
また、図7の類型で、同一の列データセット20において3つ以上のデータに誤りが生じた場合にも、同一の行データセット10に2つ以上の誤りが生じなければ訂正可能である。
図8に示す例では、メインデータDT11と、DT33とが誤りデータである。行誤り検出データHD1と、列誤り検出データVD1とによって、メインデータDT11の誤りが検出される。また、行誤り検出データHD3と、列誤り検出データVD3とによって、メインデータDT33の誤りが検出される。
本例の場合も、同一の行データセット10(11及び13)はそれぞれ1つの誤りデータしか含まれない。従って、メインデータDT11の誤りは、誤り訂正データEC1によって訂正可能である。メインデータDT33の誤りは、誤り訂正データEC3によって訂正可能である。
尚、図8の類型で、メインデータDT11と、誤り訂正データEC3とが誤りデータである場合にも勿論訂正可能である。また、2つのメインデータDT11、DT33と、誤り訂正データEC2とが誤りデータである場合など、3つの列データセット20に誤りが生じても訂正可能である。
このように複数の列データセット20に誤りが生じた場合にも、同一の行データセット10に2つ以上の誤りが生じなければ訂正可能である。
また、列誤り検出データVDが誤りを検出し、全ての行データセット10において誤りが検出されなければ、列誤り検出データVDが誤っていることが検出可能である。この場合は、該当する列データセット20からCRCを再計算することによって、列誤り検出データVDを訂正することができる。
このように、本実施形態のE2 PROM1からデータを読み出す場合には、同一の行データセットにおいて2つ以上のデータに誤りが生じなければ、誤りデータの検出及び訂正が可能である。
尚、上記においては、メインデータDTの他、誤り訂正データECと、行誤り検出データHDと、列誤り検出データVDとを訂正すると説明した。しかし、誤り訂正データECと、行誤り検出データHDと、列誤り検出データVDとは必ずしも訂正する必要はない。これらのデータは、誤りの検出又は訂正を目的とするものである。マイクロコンピュータ2による制御には、メインデータDTが用いられる。従って、メインデータDTが誤りなく読み出せることが保証できれば充分であり、誤りの訂正はメインデータDTに対してのみ実施されてもよい。
但し、データ記憶装置(E2 PROM1やフラッシュメモリなど)が基板上で書き換え可能であるような場合には、これらのデータを訂正して完全なデータをデータ記憶装置に書き戻すと信頼性が向上する。
以下、図9〜図13のフローチャートを利用して、E2 PROM1(データ記憶装置)からデータを読み出す手順を説明する。本実施形態では、図2に示したようなデータマップを有する場合を例として説明する。
図9に示すように、マイクロコンピュータ2は、E2 PROM1から、メインデータDT、誤り訂正データEC、行誤り検出データHD、列誤り検出データVDの各データを読み出す(#1、読み出し工程)。マイクロコンピュータ2は、全てのデータを読み出すと、次に誤り検出工程(#2〜#30)を実行する。
マイクロコンピュータ2は、まず、行誤り検出データHDの誤り検出を行う(列誤り検出工程、又は列誤り検出工程1)。全ての行誤り検出データHDi(HD1〜HDn)に対して、巡回符号化が実施され、列誤り検出データVD5に相当するC_VD5が算出される(#2)。次に、算出されたC_VD5と、列誤り検出データVD5とが一致しているか否かが判定される(#3)。一致していなければ、列誤り検出レジスタVREGに、列番号5が記録される(#4)。
マイクロコンピュータ2は、次に、各行データセット10を構成するデータの誤りを検出する(#10)。
マイクロコンピュータ2は、行データセット10の行番号iを1にセットする(#11)。そして、行データセット11(図2参照)のメインデータDT11、DT12、DT13、誤り訂正データEC1に対して巡回符号化が実施され、行誤り検出データHD1に相当するC_HD1が算出される(#12)。次に、算出されたC_HD1と、列誤り検出データHD1とが一致しているか否かが判定される(#13)。一致していなければ、行誤り検出レジスタHREGに、行番号i(この場合は1)が記録される(#14)。
その後、行番号iがインクリメントされ(#15)、行番号がnになるまで(#16)処理#12〜16が繰り返され、全ての行データセット10がチェックされる(#10、行誤り検出工程)。
マイクロコンピュータ2は、次に、行誤り検出データHD以外の各列データセット20を構成するデータの誤りを検出する(#20、列誤り検出工程、又は列誤り検出工程2)。
図10に示すように、まず、全ての1列目のメインデータDTi1(DT11〜DTn1)に対して、巡回符号化が実施され、列誤り検出データVD1に相当するC_VD1が算出される(#21a)。次に、算出されたC_VD1と、列誤り検出データVD1とが一致しているか否かが判定される(#21b)。一致していなければ、列誤り検出レジスタVREGに、列番号1が記録される(#21c)。
以下、全ての2列目のメインデータDTi2(DT12〜DTn2)、全ての3列目のメインデータDTi3(DT13〜DTn3)、全ての誤り訂正データECi(EC1〜ECn)に対しても、処理#21(#21a〜#21c)と同様の誤り検出が実施される(#23、#25、#27)。
上述したように、誤ったデータの存在する行データセット10と列データセット20が、行誤り検出データHD及び列誤り検出データVDに基づいて検出される。そして、図4〜図8を利用して説明したように、誤りデータ(EDATA)が特定される(#30)。
誤りデータEDATAが検出されると、マイクロコンピュータ2は誤りデータEDATAを訂正する訂正工程(#40〜#80)を実行する。
図11に示すように、まず、1つの行データセット10に誤りデータEDATAが1つ以下であるか否かが判定される(#40)。上述したように、1つの行データセット10に2つ以上の誤りデータEDATAが存在すると、訂正できない。従って、マイクロコンピュータ2は、読み取り不良フラグを出力する(#92)。このフラグにより、マイクロコンピュータ2や、マイクロコンピュータ2のさらに上位のシステムは、E2 PROMエラーなどの報知出力を行うことができる。
〔メインデータの訂正〕
誤りデータEDATAが、1つの行データセットに1つ以下であると、誤りデータEDATAの訂正処理が実施される。まず、誤りデータEDATAが、メインデータDTであるか否かが判定され(#51)、メインデータDTである場合には、以下のように訂正される。
誤りデータEDATAが、1列目のメインデータDTi1であった場合には、当該メインデータDTi1とは別のメインデータDTi2及びDTi3と、誤り訂正データECiとに基づいて、当該メインデータDTi1が訂正される。具体的には、メインデータDTi2とDTi3と誤り訂正データECiとの排他的論理和を演算することによって、メインデータDTi1が訂正される(#52)。
上述したように、DT11がD6(Hex)、DT12がAC(Hex)、DT13が67(Hex)であれば、誤り訂正データEC1は、1D(Hex)である。ここで、DT11がD6(Hex)以外の値に誤っていた場合、下式(1)によって、正しいDT11を算出することができる。
DT11=DT12^DT13^EC1=AC^67^1D=D6 (1)
誤りデータEDATAが、2列目のメインデータDTi2であった場合や、3列目のメインデータDTi3であった場合も同様である(#52)。
メインデータDTの訂正が完了すると、訂正されたメインデータDTの検算が行われる。行データセット10の行番号をi(=1〜n)、3つのメインデータDTを識別する列番号をj(=1〜3)として、以下にこの検算について説明する。ここで、訂正されたメインデータは、DTijである。
まず、メインデータDTijを含む行データセット10に対して巡回符号化が実施され、行誤り検出データHDiに対応するC_HDiが算出される(#53)。また、当該メインデータDTijを含む列データセット20に対して巡回符号化が実施され、列誤り検出データVDjに対応するV_HDjが算出される(#53)。
次に、算出されたC_HDiと行誤り検出データHDiとの一致、算出されたC_VDjと列誤り検出データVDjとの一致が判定される。これらが共に一致した場合には、メインデータDTijの訂正が適正に行われたと判定される(#54)。一致しなかった場合には、訂正が失敗したと判定され(#54)、マイクロコンピュータ2は、読み取り不良フラグを出力する(#92)。
訂正が適正に行われたと判定されると(#54)、全ての誤りデータEDATAの訂正が完了したか否かが判定される(#80)。完了していれば、マイクロコンピュータ2は、読み取りが正常に終了したことを示すフラグを出力し(#91)、データの読み出し処理を終了する。訂正が必要な誤りデータEDATAがまだ存在する場合には、処理#51に戻って訂正工程を続行する。
〔誤り訂正データの訂正〕
処理#51において、誤りデータEDATAがメインデータDTではないと判断された場合、$2経由で図12に示す処理が実行される。まず、誤りデータEDATAが、誤り訂正データECであるか否かが判定される(#61)。誤りデータEDATAが、誤り訂正データECであった場合には、当該行データセット10の3つのメインデータDTiから、誤り訂正データECiが再計算される(#62)。
次に、訂正された誤り訂正データECiの検算が行われる。まず、当該行データセット10の3つのメインデータDTiと、再計算した誤り訂正データECiとに対して、巡回符号化が実施され、C_HDiが算出される(#63)。また、当該誤り訂正データECiを含む列データセット20に対して、巡回符号化の演算が施され、C_VD4が算出される(#63)。
次に、算出されたC_HDiと行誤り検出データHDiとの一致、算出されたC_VD4と列誤り検出データVD4との一致が判定される。これらが共に一致した場合には、メインデータDTiの訂正が適正に行われたと判定される(#64)。一致しなかった場合には、訂正が失敗したと判定され(#64)、マイクロコンピュータ2は、読み取り不良フラグを出力する($5経由で図11の#92へ)。
訂正が適正に行われたと判定されると(#64)、全ての誤りデータEDATAの訂正が完了したか否かが判定される($4経由で図11の#80へ)。完了していれば、マイクロコンピュータ2は、読み取りが正常に終了したことを示すフラグを出力し(#91)、データの読み出し処理を終了する。訂正が必要な誤りデータEDATAがまだ存在する場合には、処理#51に戻って訂正工程を続行する。
〔行誤り検出データの訂正〕
処理#61において、誤りデータEDATAが誤り訂正データECではないと判断された場合、$3経由で図13に示す処理が実行される。誤りデータEDATAは、メインデータDTでもなく、誤り訂正データECでもないので、行誤り検出データHDである。
まず、図10に示した処理の結果、即ち、列誤り検出データVD1〜4の判定結果が格納されたレジスタVREGを参照する。そして、レジスタVREGに1〜4が未格納であることを確認する(#71)。レジスタVREGに1〜4が格納されていると、メインデータDT及び誤り訂正データECの何れかにも誤りがある。この場合には、行誤り検出データHDを訂正することが困難である。
例えば、第u行の行誤り検出データHDuと、第v行の行誤り検出データHDvとが不一致であり、列誤り検出データVD2が不一致であったとする。この時、第u行のメインデータDTu2と、行誤り検出データHDuとの何れかが誤りデータEDATAである。また、第v行のメインデータDTv2と、行誤り検出データHDvとの何れかが誤りデータEDATAである。列誤り検出データVD2が不一致であるので、一方のメインデータDTは誤りデータEDATAである。しかし、行誤り検出データHDの一方も誤りデータEDATAであるから、行誤り検出データHDと列誤り検出データVDとによる検出結果のみによって誤りデータEDATAを特定することができない。
何れかが誤りデータEDATAであると仮定して、訂正を実施し、検算を行うことで誤りデータEDATAを特定し、訂正することは可能である。しかし、このような組み合わせがさらに多くなると、仮定を伴うこの方法は現実的ではない。
従って、このような場合には、マイクロコンピュータ2は、読み取り不良フラグを出力する($5経由で図11の#92へ)。
但し、列誤り検出データVD4のみが不一致である場合には、誤りがあるのは誤り訂正データECであり、メインデータDTには誤りが無い。従って、マイクロコンピュータ2は、メインデータDTを利用して、通常の制御を行ってもよい。この時、訂正不可能な誤りデータEDATAを有したままであるので、警告フラグを出力する(不図示)などの処理を行ってもよい。
尚、処理#71の評価は、図9に示した処理#20と#30との間に実施してもよい。つまり、訂正不可能な誤りデータEDATAが存在するか否かを訂正工程の実施前に判定してもよい。
また、列誤り検出工程1(#2〜#4)において、列誤り検出データVD5が不一致であることを検出した後、先に列誤り検出工程2(#20)を実施してもよい。列誤り検出データVD5が不一致であり、列誤り検出データVD1〜VD4の何れか1つ以上が不一致であれば、行誤り検出データHDを訂正することが困難であることが早期に判定可能である。特に、列誤り検出データVD1〜VD3の何れか1つ以上が不一致であれば、直ちに読み取り不良フラグが出力されてもよい。
処理#71により、メインデータDT、誤り訂正データECに誤りがないと判定された場合には、行誤り検出データHDの訂正が可能である。しかし、より精確さを期すために、当該行データセット10の3つのメインデータDTijと、誤り訂正データECiとの関係が正しいか否かがチェックされる。まず、当該行データセット10のメインデータDTi1、DTi2、DTi3の排他的論理和C_ECiが算出される(#72)。そして、算出されたC_ECiと、当該行データセット10の誤り訂正データECiとの一致が確認される(#73)。不一致の場合には、行誤り検出データHDiを訂正することができないので、読み取り不良フラグが出力される($5経由で図11の#92へ)。
一致した場合には、当該行データセット10の3つのメインデータDTi1、DTi2、DTi3と、誤り訂正データECiとに対して、巡回符号化が実施され(#74)、行誤り検出データHDiが訂正される。
その後、訂正された行誤り検出データHDiの検算が行われる。まず、訂正された行誤り検出データHDiを用いて、列データセット25に対して巡回符号化が実施され、C_VD5が算出される(#75)。そして、この算出結果C_VD5と、列誤り検出データVD5との一致が確認される(#76)。不一致であれば、訂正が失敗していると判定され(#76)、読み取り不良フラグが出力される($5経由で図11の#92へ)。一致していれば、訂正が適正に行われたと判定される(#76)。そして、全ての誤りデータEDATAの訂正が完了したか否かが判定される($4経由で図11の#80へ)。以下、上述した手順と同様である。
以上、本発明によれば、図9〜図13のフローチャートに基づいて詳述したように、図4〜図8に示す各種のデータ誤りを良好に検出し、訂正可能である。この手順は、一例であり、本発明の趣旨を逸脱しない範囲で適宜改変可能である。そして、そのような改変も本発明の技術的範囲に属するものである。
例えば、誤り検出工程において、列誤り検出データVD1〜VD5の検証を行う前に行誤り検出データHD1〜HDnが全て正常であることが確認できた場合には、直ちに読み取り正常終了フラグ(図11#91)を出力するようにしてもよい。逆に、列誤り検出データVD1〜VD5が全て正常であることが確認できた場合に直ちに読み取り正常終了フラグ(図11#91)を出力してもよい。このようにすれば、誤りデータEDATAがない場合に、短時間で読み取りを完了することができる。
また、本発明によれば、上述した従来例のように3つのデータを多重化する場合に比べて、高い利用効率でデータ記憶装置の記憶容量を利用することができる。
3つのデータを多重化する場合には、記憶容量の約1/3の利用に留まる。しかし、図2からも明らかなように、本発明によれば、記憶容量の約3/5を利用することができる。また、メインデータDTの数が「2」であっても、記憶容量の約1/2(=2/4)を利用することができる。従って、1つの行データセット10に複数のメインデータDTを含む本発明のデータ記憶装置は、高い利用効率で記憶容量を利用することができる。1つの行データセット10に含まれるメインデータDTの数を増すと、さらに利用効率を上げることが可能である。このように、上記実施形態におけるメインデータDTの数「3」は、本発明を限定するものではない。
但し、同じ行データセット10において複数のデータに誤りが生じた場合には、データを訂正することができない。従って、メインデータDTの数は、利用効率と信頼性との関連により設定される。
尚、図3に示すデータマップの場合でも、利用効率は約9/20であり、3つのデータを多重化する場合に比べて、高い利用効率である。
〔第2実施形態〕
図14は、E2 PROM1に記憶されるデータのデータマップの他の形態を示す説明図である。図2に示した第1実施形態のデータマップと比べて、誤り訂正データECを複数有している点が異なる。また、図14に示す第2実施形態の変形例として、当然図3に示したように構成することも可能である。
メインデータDTについては、第1実施形態と同様であるので、説明を省略する。また、行誤り検出データHDについても、巡回符号化の対象となるデータが増加する以外は同様であるので、説明を省略する。
誤り訂正データECは、1つの行データセット10Aの3つのメインデータDTのうちの2つの組合せのそれぞれの排他的論理和である。メインデータDTが3つの場合、誤り訂正データECは、図14に示すように1つの行データセット10Aに3つ備えられる。
例えば、メインデータDT11がD6(Hex)、DT12がAC(Hex)、DT13が67(Hex)であれば、誤り訂正データECは、以下のようになる。
メインデータDT11とDT12との排他的論理和である誤り訂正データEC1_12は、7A(Hex)となる。
メインデータDT12とDT13との排他的論理和である誤り訂正データEC1_23は、CB(Hex)となる。
メインデータDT13とDT11との排他的論理和である誤り訂正データEC1_31は、B1(Hex)となる。
このように、1つのメインデータDTに対して、2つの異なる誤り訂正データECが備えられる。例えば、メインデータDT11に対しては、誤り訂正データEC1_12とEC1_31とが備えられる。別の観点では、1つのメインデータDTが他の2つのメインデータDTの誤り訂正データECに関連する。上記例では、メインデータDT11は、誤り訂正データEC1_12とEC1_31とに関連するので、メインデータDT12とDT13とを訂正することができる。
これは、図15に示すように、3つのメインデータDTの内の2つDT12とDT13とに誤りが生じても、残った1つのメインデータDT11によって、これら2つを訂正可能であることを示す。同様に、メインデータDTと誤り訂正データECとの2つに誤りが生じた場合(図16)や、2つの誤り訂正データに誤りが生じた場合(不図示)にもデータを訂正することができる。
その他、第1実施形態において図4〜図8に示した類型に関しても当然ながら良好に誤りデータの検出及び訂正が可能である。
また、第2実施形態のデータマップでデータが記憶されたE2 PROM1からのデータ読み出し方法は、基本的に図9〜図13に示した手順と同様である。例えば、1つの行データセットにおける誤りデータEDATAの数の制限が2となる(図11#40)など、当然異なる点は存在する。しかし、当業者であればデータマップの仕様に併せて改変可能である。従って、第2実施形態に関して、読み出し方法の詳細な手順については説明を省略する。
尚、第2実施形態のデータマップでは、誤り訂正データECを誤り検出データとして用いることも可能である。第1実施形態と同様の方法では、メインデータDT12に誤りが生じた場合、図17に示すように行誤り検出データHD1と、列誤り検出データVD2とによって、メインデータDT12を特定する。第2実施形態では、誤り訂正データEC1_12とEC1_23とに基づいてメインデータDT12に誤りがあることを特定することができる(図18)。つまり、メインデータDT12に誤りがあると、読み出したメインデータDT12を使って、DT11及びDT13に対してそれぞれ算出した排他的論理和の結果と、誤り訂正データEC1_12及びEC1_23とが不一致となる。従って、これら2つの誤り訂正データECに共通に関連するメインデータDT12が誤っていると特定される。
この方法では、行誤り検出データHD、列誤り検出データなしでメインデータDTの誤り検出が可能である。但し、同一の行データセット10Aの誤りを1つしか許容できない点に留意する必要がある。例えば、簡易検出モードなどとして実行することが好ましい。
第2実施形態の場合、1つの行データセット10Aには、3つのメインデータDTと、3つの誤り訂正データECと、1つの行誤り検出データHDとの7つのデータが含まれる。7つの内、3つがメインデータDTであるから、E2 PROM1の容量の概ね3/7を利用することができる。従って、上述したように従来の3つのデータを多重化する場合(1/3)に比べて、高い利用効率で記憶容量を利用することができる。
尚、本実施形態の場合、誤り訂正データECは、1つの行データセット10Aに含まれるメインデータDTの数に応じて増加する。その数は、下式(2)で示される。
誤り訂正データ数=(メインデータ数×(メインデータ数−1))/2 (2)
従って、メインデータ数が4の場合には、誤り訂正データ数は6となり、メインデータ数が5の場合には、誤り訂正データ数は10となる。メインデータ数が4の場合には、E2 PROM1の記憶容量の約4/11を利用可能である。従って、3つのデータを多重化する場合(1/3)に比べて、やや高い利用効率で記憶容量を利用することができる。メインデータ数が5になると、E2 PROM1の記憶容量の5/16しか利用できず、3つのデータを多重化する場合(1/3)に比べて、利用効率が低くなる。
このように、第2実施形態のデータマップを利用する場合には、メインデータ数が3の場合が最も効率がよい。
以上説明したように、本発明によって、記憶容量を高い効率で利用すると共に、高い信頼性を有してデータを記憶することのできるデータ記憶装置を提供することができる。また、当該データ記憶装置を用いて、高い信頼性を有して、データを読み出すことのできるデータ読み出し方法を提供することができる。
本発明のデータ記憶装置が使用される制御システムの一例を模式的に示すブロック図 本発明のデータ記憶装置に記憶されるデータのデータマップを示す説明図 図2のデータマップの変形例を示す説明図 図2のデータマップにおいてデータの誤りを検出する例1を示す説明図 図2のデータマップにおいてデータの誤りを検出する例2を示す説明図 図2のデータマップにおいてデータの誤りを検出する例3を示す説明図 図2のデータマップにおいてデータの誤りを検出する例4を示す説明図 図2のデータマップにおいてデータの誤りを検出する例5を示す説明図 本発明のデータ記憶装置からデータを読み出す手順(読み出し工程、誤り検出工程)を示すフローチャート 図9の手順のサブルーチン(誤り検出工程)を示すフローチャート 図9の手順の続き(訂正工程)を示すフローチャート 図11の手順から分岐した手順1(訂正工程)を示すフローチャート 図11の手順から分岐した手順2(訂正工程)を示すフローチャート 本発明のデータ記憶装置に記憶されるデータのデータマップの他の形態を示す説明図 図14のデータマップにおいてデータの誤りを検出する例1を示す説明図 図14のデータマップにおいてデータの誤りを検出する例2を示す説明図 図14のデータマップにおいてデータの誤りを検出する例3を示す説明図 図14のデータマップにおいてデータの誤りを検出する例4を示す説明図
符号の説明
10、11、13、10A:行データセット
20、21、22、23、24、25、20A:列データセット
DT:メインデータ
EC:誤り訂正データ
HD:行誤り検出データ
VD:列誤り検出データ

Claims (7)

  1. 1つのデータが2ビット以上の所定のビット数からなる複数のメインデータと、
    前記メインデータの誤りを訂正可能な1つ又は複数の誤り訂正データと、
    前記メインデータ及び前記誤り訂正データの少なくとも1つに誤りがあるか否かを検出可能である1つの行誤り検出データと、からなる1つの行データセットを複数行備えると共に、
    前記行データセットを構成する1つの前記データの複数行に亘る集合である1つの列データセットに対して、少なくとも1つの前記データに誤りがあるか否を検出可能な1つの列誤り検出データを、各列データセットに備えるデータ記憶装置。
  2. 前記メインデータを1つの前記行データセットに3つ備える請求項1に記載のデータ記憶装置。
  3. 前記誤り訂正データは、1つの前記行データセットの全ての前記メインデータの排他的論理和であり、当該行データセットに1つ備えられる請求項1又は2に記載のデータ記憶装置。
  4. 前記誤り訂正データは、1つの前記行データセットの3つの前記メインデータのうちの2つの組合せのそれぞれの排他的論理和であり、当該行データセットに3つ備えられる請求項2に記載のデータ記憶装置。
  5. 前記行誤り検出データは、1つの前記行データセットの前記メインデータ及び前記誤り訂正データを巡回符号方式で符号化したものである請求項1〜4の何れか一項に記載のデータ記憶装置。
  6. 請求項1に記載のデータ記憶装置から、前記メインデータ、前記誤り訂正データ、前記行誤り検出データ、前記列誤り検出データの各データを読み出す読み出し工程と、
    前記行誤り検出データ及び前記列誤り検出データに基づいて、誤りのあるデータを検出する誤り検出工程と、
    前記メインデータの誤りが検出された場合に、当該メインデータが属する前記行データセットの前記誤り訂正データに基づいて、当該メインデータを訂正する訂正工程と、を備えるデータ読み出し方法。
  7. 前記訂正工程は、誤りが検出された前記メインデータとは別の前記メインデータと、前記誤り訂正データとに基づいて、誤りが検出された前記メインデータを訂正する請求項6に記載のデータ読み出し方法。
JP2006264859A 2006-09-28 2006-09-28 データ記憶装置及びデータ記憶装置からのデータ読み出し方法 Pending JP2008084116A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006264859A JP2008084116A (ja) 2006-09-28 2006-09-28 データ記憶装置及びデータ記憶装置からのデータ読み出し方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006264859A JP2008084116A (ja) 2006-09-28 2006-09-28 データ記憶装置及びデータ記憶装置からのデータ読み出し方法

Publications (1)

Publication Number Publication Date
JP2008084116A true JP2008084116A (ja) 2008-04-10

Family

ID=39354911

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006264859A Pending JP2008084116A (ja) 2006-09-28 2006-09-28 データ記憶装置及びデータ記憶装置からのデータ読み出し方法

Country Status (1)

Country Link
JP (1) JP2008084116A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150093755A (ko) * 2012-12-03 2015-08-18 웨스턴 디지털 테크놀로지스, 인코포레이티드 런타임 가변 raid 보호 방식을 갖는 방법들, 솔리드 스테이트 드라이브 제어기들 및 데이터 저장 디바이스들

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5128453A (ja) * 1974-09-03 1976-03-10 Tokyo Shibaura Electric Co
JPH04112346A (ja) * 1990-09-03 1992-04-14 Fujitsu Ltd メモリエラー検出方法及び装置
JPH04347751A (ja) * 1991-05-24 1992-12-02 Nippon Telegr & Teleph Corp <Ntt> 半導体メモリ装置
JPH1165865A (ja) * 1997-08-19 1999-03-09 Canon Inc データ処理装置、データ処理方法及びコンピュータ読み取り可能な記録媒体
JP2004348824A (ja) * 2003-05-21 2004-12-09 Toshiba Corp Eccエンコード方法、eccエンコード装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5128453A (ja) * 1974-09-03 1976-03-10 Tokyo Shibaura Electric Co
JPH04112346A (ja) * 1990-09-03 1992-04-14 Fujitsu Ltd メモリエラー検出方法及び装置
JPH04347751A (ja) * 1991-05-24 1992-12-02 Nippon Telegr & Teleph Corp <Ntt> 半導体メモリ装置
JPH1165865A (ja) * 1997-08-19 1999-03-09 Canon Inc データ処理装置、データ処理方法及びコンピュータ読み取り可能な記録媒体
JP2004348824A (ja) * 2003-05-21 2004-12-09 Toshiba Corp Eccエンコード方法、eccエンコード装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150093755A (ko) * 2012-12-03 2015-08-18 웨스턴 디지털 테크놀로지스, 인코포레이티드 런타임 가변 raid 보호 방식을 갖는 방법들, 솔리드 스테이트 드라이브 제어기들 및 데이터 저장 디바이스들
JP2015535640A (ja) * 2012-12-03 2015-12-14 ウェスタン デジタル テクノロジーズ インコーポレーテッド ランタイム可変raid保護スキームを有する方法、ソリッドステートドライブコントローラー、及びデータ格納装置
KR101872573B1 (ko) 2012-12-03 2018-06-28 웨스턴 디지털 테크놀로지스, 인코포레이티드 런타임 가변 raid 보호 방식을 갖는 방법들, 솔리드 스테이트 드라이브 제어기들 및 데이터 저장 디바이스들

Similar Documents

Publication Publication Date Title
US7389465B2 (en) Error detection and correction scheme for a memory device
US10108509B2 (en) Dynamic enabling of redundant memory cells during operating life
US7469368B2 (en) Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield
CN108062259B (zh) Mcu内部数据存储ecc处理系统及其处理方法
US20160011940A1 (en) Tiered ecc single-chip and double-chip chipkill scheme
JP4475320B2 (ja) 車両用記憶管理装置
WO2017008501A1 (zh) 一种nand闪存出现ecc无法纠错时的数据恢复方法
KR20180089104A (ko) 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법
US20190019569A1 (en) Row repair of corrected memory address
JP2011060217A (ja) データ蓄積装置及びデータ書込み/読出し方法
US20120096335A1 (en) Data processing method and semiconductor integrated circuit
US9721665B2 (en) Data writing method and system
WO2017107160A1 (zh) 基于异构混合内存的nvm坏块识别处理及纠错方法和系统
JP2009295252A (ja) 半導体記憶装置及びそのエラー訂正方法
JP4950214B2 (ja) データ記憶装置における停電を検出する方法、およびデータ記憶装置を復旧する方法
US11068331B2 (en) Processing system, related integrated circuit and method for generating interrupt signals based on memory address
JP2606862B2 (ja) 単−エラー検出・訂正方式
JP2008084116A (ja) データ記憶装置及びデータ記憶装置からのデータ読み出し方法
JP3106947B2 (ja) 不揮発性半導体記憶装置
JP5361826B2 (ja) 記録ユニット及び故障チップ特定方法
CN109710445B (zh) 内存校正方法和电子设备
JP4135413B2 (ja) メモリチェックシステムおよびメモリチェック方法、信号処理装置および信号処理装置のメモリチェック方法、ならびに、メモリチェックプログラム
KR20130077401A (ko) 반도체 메모리 장치 및 그 구동 방법
US20080052598A1 (en) Memory multi-bit error correction and hot replace without mirroring
CN111352754A (zh) 一种数据存储检错纠错方法及数据存储装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090828

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120302

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120510