JP5010756B2 - メモリ装置 - Google Patents
メモリ装置 Download PDFInfo
- Publication number
- JP5010756B2 JP5010756B2 JP2011530666A JP2011530666A JP5010756B2 JP 5010756 B2 JP5010756 B2 JP 5010756B2 JP 2011530666 A JP2011530666 A JP 2011530666A JP 2011530666 A JP2011530666 A JP 2011530666A JP 5010756 B2 JP5010756 B2 JP 5010756B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- data
- unit
- additional
- bits
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、メモリ装置に関する。
高集積度のメモリチップには、個々のメモリセル(1ビットの記憶素子)の製造時の加工精度のばらつきによって、所望の動作を行わない不良メモリセルが混在する。そのため、ROMやPROMのような読み出し専用メモリでは、0又は1のいずれか一方しか記憶できない不良メモリセルに対して、その不良メモリセルが記憶できない値を記憶させる場合、ビットシーケンス内の各データビットの値を反転して記憶させ、追加メモリコンポーネントが、データを反転させたことを示す情報を記憶する(例えば特許文献1参照)。データ読み出し時は、追加メモリコンポーネントの情報を参照し、データ記憶時に反転させたことが示されている場合は、読み出したデータを反転して使用する。
メモリセルを低抵抗状態か高抵抗状態のいずれかにし、一方を論理値0に、他方を論理値1に対応させてデータを記憶するMRAMやReRAMでは、データの読み出し時には、メモリセルの抵抗値が閾値より小さいか大きいかで論理値0か1(又は1か0)かを判断する。
このようなメモリには、低抵抗時でも高抵抗時でも抵抗値が閾値よりも小さくなる(又は大きくなる)不良メモリセルが存在しうる。このような不良メモリセルは、0を書き込んでも1を書き込んでも、常に0又は1のいずれかが読み出されることになる。
MRAMやNANDフラッシュメモリのような高い誤り率を持つメモリの不良メモリセルを救済するには誤り訂正符号(ECC)のみでは不十分であるため、上記従来手法のような追加メモリコンポーネントを設ける事が考えられる。しかし、追加メモリコンポーネントの値を誤って読み出した場合には、読み出したデータが誤って反転され、ECCを用いて誤り訂正を行うことができず、読み出しデータの信頼性を低下させるという問題があった。
本発明は、誤り訂正能力が高く、読み出しデータの信頼性が向上したメモリ装置を提供することを目的とする。
本発明の一態様によるメモリ装置は、iビット(iは2以上の整数)のデータビットと、誤り訂正用のjビット(jは2以上の整数)の検査ビットと、前記データビット及び/又は前記検査ビットを少なくとも1ビット含むk個(kは1以上の整数)のビットグループにそれぞれ対応し、対応するビットグループが反転されているか否かを示すkビットの付加ビットと、を前記メモリに書き込む書き込み装置と、前記メモリから前記データビット、前記検査ビット、及び前記付加ビットを読み出す読み出し部と、前記メモリから読み出された前記検査ビットに基づいて、前記メモリから読み出された前記データビット及び前記付加ビットの誤りを訂正する訂正部と、前記誤り訂正された前記付加ビットが反転を行ったことを示す場合は当該付加ビットに対応するビットグループに含まれる前記データビットを反転して前記メモリからの読み出しデータとして出力し、前記誤り訂正された前記付加ビットが反転を行っていないことを示す場合は当該付加ビットに対応するビットグループに含まれる前記データビットを反転せずに前記メモリからの読み出しデータとして出力する反転部と、を備えるものである。
本発明によれば、読み出しデータの信頼性を向上させることができる。
以下、本発明の実施の形態を図面に基づいて説明する。
(第1の実施形態)図1に本発明の第1の実施形態に係るメモリ装置の概略構成を示す。メモリ装置はメモリ1、メモリ1へのデータ書き込みを行う書き込み装置2、及びメモリ1からのデータ読み出しを行う読み出し装置3を備える。
書き込み装置2は、付加ビット追加部21、検査ビット追加部22、判定部23、付加ビット設定部24、反転部25、及び書き込み部26を有する。
付加ビット追加部21には、メモリ1への書き込みデータとして複数ビットのデータビット(以下、主データと称する)が与えられる。付加ビット追加部21は、入力された主データの上位ビット側に1ビット以上の付加ビットを追加する。付加ビットは、付加ビットより下位側のデータが反転部25において反転されるか否かを示す。
付加ビット追加部21において追加される付加ビットの値は予め設定しておくことができる。例えば、付加ビット追加部21は、5ビットの主データ{x0、x1、x2、x3、x4}が与えられ、1ビットの付加ビット{a0}を追加し、6ビットのデータ{a0、x0、x1、x2、x3、x4}を出力する。
付加ビットは、後の付加ビット設定部24による異なる値に変更され得る。
検査ビット追加部22は、付加ビット及び主データから検査ビットを算出し、主データの下位ビット側に検査ビットを追加する。ここで検査ビットは、ハミング符号等の線形符号による誤り訂正のために追加される冗長ビットである。
例えば、検査ビット追加部22は、6ビットのデータ{a0、x0、x1、x2、x3、x4}の誤り訂正のための4ビットの検査ビット{c0、c1、c2、c3}を算出して追加し、10ビットのデータ{a0、x0、x1、x2、x3、x4、c0、c1、c2、c3}を出力する。
この時、検査ビットは、c0=x0+x1+x2、c1=x0+x3+x4、c2=x1+x3+a0、c3=x2+x4+a0により求められる。なお、計算はすべてモジュロ2演算である。
判定部23は、付加ビット、主データ、及び検査ビットに含まれる0又は1の個数をカウントし、カウント値及びメモリ1の特性に基づいて、付加ビット、主データ、及び検査ビットを反転するか否かを判定する。
例えば、メモリ1が、異なる2つの抵抗値を持つことのできるメモリセルを用いる電気的に書き替え可能なMRAMである場合、メモリセルを低抵抗状態か高抵抗状態のいずれかにすることで、一方を論理値0、他方を論理値1に対応させてデータが記憶される。データの読み出し時には、メモリセルの抵抗値が閾値より小さいか大きいかによって、論理値0か1か(あるいは1か0か)が判断される。
MRAMでは、書き込みと読み出しとで同様の動作が行われ、読み出しはメモリの内容が書き換わらない程度の強度で行われる。例えば、読み出し時には0を書き込むときと同じ方向に電流を流し、その時の抵抗値によって0か1かの判別を行う。この時、1であったメモリの内容が0に書き換わる、いわゆるリードディスターブが発生し得る。
通常のMRAMでは、読み出し時にどちらの方向に電流を流すかはデバイスの特性によって設計時に固定される。そのため、例えば読み出し時には0を書き込むときと同じ方向に電流を流すように設計されている場合、リードディスターブは1と記録したデータが0に書き換わる場合に限られる。従って、データをメモリに書き込む際に、値が0のビット数が多くなるように書き込むことによって、リードディスターブの対象となるビットが減り、全体としてリードディスターブ確率が減少する。
判定部23は、このようなメモリの特性を考慮し、リードディスターブの対象となるビットが減るように、付加ビット、主データ、及び検査ビットを反転するか否かを判定する。例えば、メモリ1において、1が0に書き換わるリードディスターブが発生し得る場合、判定部23は付加ビット、主データ、及び検査ビットに含まれる値が1のビット数をカウントする。そして、判定部23は、カウント値が付加ビット、主データ、及び検査ビットの全ビット数の半分以上であった場合、反転すると判定する。逆に、判定部23は、カウント値が付加ビット、主データ、及び検査ビットの全ビット数の半分未満であった場合、反転しないと判定する。
判定部23は、判定結果を付加ビット設定部24に通知する。
付加ビット設定部24は、判定部23から通知された判定結果に基づいて、付加ビットの値を設定する。付加ビット設定部24は、通知された判定結果が反転を行うことを示している場合、付加ビットを、反転部25において主データ及び検査ビットが反転されるような値に変更する。
反転部25は、付加ビットがデータの反転を行うことを示している場合は、主データ及び検査ビットの反転を行い、付加ビットがデータの反転を行わないことを示している場合は、与えられたデータをそのまま出力する。
上記10ビットのデータ{a0、x0、x1、x2、x3、x4、c0、c1、c2、c3}の反転処理を行う反転部25の構成の一例を図2に示す。反転部25は9個のXOR素子41〜49を有する。各XOR素子にはx0〜c3のいずれかと、a0とが与えられる。例えば、XOR素子41はa0及びx0が与えられ、x0’を出力する。
a0が0であった場合、XOR素子41〜49から出力されるx0’〜c3’はx0〜c3と同じ値になる。一方、a0が1であった場合、XOR素子41〜49から出力されるx0’〜c3’はx0〜c3を反転した値になる。
すなわち、この例では、付加ビットa0が1の時、主データ及び検査ビットが反転され、付加ビットa0が0の時、主データ及び検査ビットはそのまま出力される。従って、付加ビット設定部24は、判定部23から通知された判定結果が反転を行うことを示している場合は付加ビットa0に1を設定し、反転を行わないことを示している場合は付加ビットa0に0を設定する。
書き込み部26は、反転部25から出力されたデータをメモリ1に書き込む。例えば、書き込み部26は、図2に示す反転部25から出力される10ビットのデータ{a0、x0’、x1’、x2’、x3’、x4’、c0’、c1’、c2’、c3’}をメモリ1に書き込む。
なお、図1では、メモリ1のデータ書き込み先や読み出し先を示すアドレス信号線、書き込みや読み出しのタイミングを示す制御信号線等は図示していない。
読み出し装置3は、読み出し部31、誤り訂正部32、及び反転部33を有する。
読み出し部31はメモリ1からデータを読み出す。読み出し部31が読み出すデータは、書き込み部26がメモリ1に書き込むデータと同様に、付加ビット、主データ、及び検査ビットからなる。
誤り訂正部32は、読み出し部31が読み出したデータについてシンドローム計算を行い、主データ及び付加ビットに誤りがあるか否かを検出し、誤りを検出した場合は誤りを訂正する。
読み出し部31が、書き込み部26により書き込まれた10ビットのデータ{a0、x0’、x1’、x2’、x3’、x4’、c0’、c1’、c2’、c3’}に対応するデータ{a0”、x0”、x1”、x2”、x3”、x4”、c0”、c1”、c2”、c3”}をメモリ1から読み出す場合の誤り訂正部32の構成の一例を図3に示す。誤り訂正部32は、シンドローム計算部50、誤りビット検出部51、及びXOR素子52〜57を有する。
シンドローム計算部50は読み出されたデータを用いてシンドローム{s0、s1、s2、s3}を計算する。シンドロームは、s0=x0”+x1”+x2”+c0”、s1=x0”+x3”+x4”+c1”、s2=x1”+x3”+a0”+c2”、s3=x2”+x4”+a0”+c3”により求められる。なお、計算はすべてモジュロ2演算である。
シンドローム計算部50は、図4に示すような構成で実現できる。この時、XOR素子61〜64への入力データ数を偶数にすることができる。
誤りビット検出部51は、シンドローム{s0、s1、s2、s3}に基づいて、誤りビットの検出を行う。例えば、シンドロームが1100の場合はx0”が誤っていることが分かる。同様に、シンドロームが1010の場合はx1”、シンドロームが1001の場合はx2”、シンドロームが0110の場合はx3”、シンドロームが0101の場合はx4”、シンドロームが0011の場合はa0”、シンドロームが1000の場合はc0”、シンドロームが0100の場合はc1”、シンドロームが0010の場合はc2”、シンドロームが0001の場合はc3”が誤っていることが分かる。
誤りビット検出部51の構成の一例を図5に示す。誤りビット検出部51は比較器71〜76を有する。比較器71はシンドローム{s0、s1、s2、s3}と、{0、0、1、1}とを比較し、一致した場合は1、不一致の場合は0をXOR素子52へ出力する。比較結果が一致するのはa0”が誤っている場合であり、XOR素子52へ1を出力することでa0”を反転して誤りを訂正することができる。
比較器72〜76も同様に、シンドローム{s0、s1、s2、s3}からx0”〜x4”が誤っているか否かを検出し、誤っている場合は対応するXOR素子53〜57へ1を出力して誤りを訂正する。
XOR素子52〜57から出力される6ビットのデータ{a0、x0’、x1’、x2’、x3’、x4’}は誤り訂正された付加ビット及び主データとなる。
反転部33は、誤り訂正部32から出力されたデータの付加ビットの値に応じて主データの反転を行い、読み出しデータとして出力する。
誤り訂正部32から6ビットのデータ{a0、x0’、x1’、x2’、x3’、x4’}が出力される場合の反転部33の構成の一例を図6に示す。反転部33は5個のXOR素子81〜85を有する。各XOR素子にはx0’〜x4’のいずれかと、a0とが与えられる。例えば、XOR素子81はa0及びx0’が与えられ、x0を出力する。
a0が0であった場合、XOR素子81〜85から出力されるx0〜x4はx0’〜x4’と同じ値になる。一方、a0が1であった場合、XOR素子81〜85から出力されるx0〜x4はx0’〜x4’を反転した値になる。
次に、5ビットの主データ{x0、x1、x2、x3、x4}が00111である場合を例にして、メモリ装置の各部の動作を説明する。
付加ビット追加部21は、1ビットの付加ビットを追加する。ここでは0を追加するものとする。これにより、付加ビット追加部21からは000111が出力される。
検査ビット追加部22は、上述した計算により、000111に対する4ビットの検査ビット1010を算出する。検査ビット追加部22からは0001111010が出力される。
判定部23が1又は0の値のビット数をカウントし、メモリ1の特性に基づいて、データの反転を行うか否かを判定する。ここでは値が0のビット数と値が1のビット数が同じであるが、判定部23は反転を行うと判定するものとする。
付加ビット設定部24は、判定部23の判定結果に基づいて、付加ビットの値を0から1に変更する。これにより、付加ビット設定部24からは1001111010が出力され、図2に示すような反転部25に入力される。
付加ビットが1であるため、反転部25により、主データ部分(00111)及び検査ビット部分(1010)が反転される。これにより、反転部25からは1110000101が出力され、このデータが書き込み部26によりメモリ1に書き込まれる。
読み出し部31がメモリ1から誤りなくデータを読み出した場合、読み出したデータは11100001010となる。これについて図4に示すシンドローム計算部50がシンドローム計算を行うと、シンドローム{s0、s1、s2、s3}は0000となり、誤りがないことが分かる。これにより、誤り訂正部32からは111000が出力される。
図6に示すような反転部33に111000が入力されると、付加ビットが1であるため、主データ部分(11000)が反転され、00111が読み出しデータとして出力される。書き込み装置2に与えられた書き込みデータ(主データ)と、読み出し装置3から出力される読み出しデータとが一致することが分かる。
次に、読み出し部31がメモリ1から読み出したデータに誤りがあった場合について説明する。a0の位置のデータが誤っており、読み出し部31が読み出したデータが01100001010であったとする。
これについて図4に示すシンドローム計算部50がシンドローム計算を行うと、シンドローム{s0、s1、s2、s3}は0011となる。これはa0が誤った場合のシンドロームであり、誤りビット検出部51の比較器71からXOR素子52へ1が出力される。これにより、a0の位置のデータを正しく訂正することができ、誤り訂正部32から111000が出力される。以降の処理は上記と同様であり、反転部33から00111が読み出しデータとして出力される。書き込み装置2に与えられた書き込みデータ(主データ)と、読み出し装置3から出力される読み出しデータとが一致することが分かる。
このように、本実施形態では、データ反転の有無を示す付加ビットについても誤り訂正される。そのため、データ読み出し時に誤ってデータが反転されることを防止することができ、読み出しデータの信頼性を向上させることができる。
また、メモリ1の特性に応じて1又は0のビット数が多くなるようにデータを反転してメモリ1に記憶させるため、リードディスターブ確率を減少させ、読み出しデータの信頼性をさらに向上させることができる。
(第2の実施形態)図7に本発明の第2の実施形態に係るメモリ装置の概略構成を示す。本実施形態では、メモリ1が複数の記憶領域(メモリチップ)を有しており、ここでは8つの記憶領域11〜18を有しているものとして説明を行う。また、書き込み装置2には、読み出し部27がさらに設けられており、判定部23の機能が上記第1の実施形態と異なる。これらの点以外は、図1に示す第1の実施形態と同様となっている。図7において、図1に示す第1の実施形態と同一部分には同一符号を付して説明を省略する。
書き込み装置2によるメモリ1へのデータ書き込み動作を図8に示すフローチャートを用いて説明する。
(ステップS101)メモリ1に書き込む主データが、書き込み装置2の付加ビット追加部21に入力される。例えば64ビットの主データ{x0〜x63}が入力される。
(ステップS102)付加ビット追加部21が、主データの上位ビット側に1ビット以上の所定値を付加ビットとして追加する。例えば、64ビットの主データ{x0〜x63}の上位ビット側に8ビットの付加ビット{a0〜a7}が追加される。
(ステップS103)検査ビット追加部22が、付加ビット及び主データから検査ビットを算出し、主データの下位ビット側に検査ビットを追加する。例えば8ビットの付加ビット{a0〜a7}及び64ビットの主データ{x0〜x63}からなる72ビットのデータ{a0〜a7、x0〜x63}について、拡大ハミング符号による誤り訂正のための8ビットの検査ビット{c0〜c7}が算出され、追加される。
(ステップS104)付加ビット設定部24が、すべての付加ビットを0に設定する。
(ステップS105)付加ビットが0であるため反転部25は反転を行わずに書き込み部26へデータを出力する。
ここで、反転部25は、付加ビットの値が0の時に、当該付加ビットに対応するビットグループを反転せずに出力し、付加ビットの値が1の時に、当該付加ビットに対応するビットグループを反転して出力する。
付加ビットとビットグループの対応関係について説明する。kビット(kは1以上の整数)の付加ビット、iビット(iは2以上の整数)の主データ、jビット(jは2以上の整数)の検査ビットを含むデータの場合、各付加ビットは、主データ及び検査ビットをk分割したビットグループに対応する。
例えば、書き込みデータが8ビットの付加ビット{a0〜a7}、64ビットの主データ{x0〜x63}、及び8ビットの検査ビット{c0〜c7}からなる80ビットのデータである場合、付加ビットとビットグループは図9に示すような対応関係となる。つまり、1ビットの付加ビットに、9ビットの主データ及び/又は検査ビットからなるビットグループが対応する。このとき、反転部25は図10に示すような構成となる。
また、上記第1の実施形態において一例として挙げた10ビットのデータ{a0、x0、x1、x2、x3、x4、c0、c1、c2、c3}の場合、付加ビットa0に、5ビットの主データ{x0、x1、x2、x3、x4}及び4ビットの検査ビット{c0、c1、c2、c3}からなるビットグループが対応することになる。
書き込み部26は、反転部25から出力されたデータをメモリ1に書き込む。
書き込み部26は、各付加ビットと、各付加ビットに対応するビットグループとを組み合わせて、複数の記憶領域(メモリチップ)のいずれかに書き込む。例えば、各付加ビット及び対応ビットグループは、記憶領域11〜18に順に割り当てられ、割り当てられた記憶領域に書き込まれる。
例えば図9及び図10に示す例では、付加ビットa0及び対応ビットグループx0’〜x8’が記憶領域11に書き込まれる。
(ステップS106)読み出し部27が、ステップS105で書き込まれたデータをメモリ1の各記憶領域から読み出し、判定部23へ出力する。
(ステップS107)判定部23が、ステップS105で書き込まれたデータと、ステップS106で読み出されたデータとを比較する。比較は、記憶領域単位で、すなわち各付加ビット及び対応ビットグループについて行われる。
(ステップS108)比較結果が不一致のデータがある場合はステップS109へ進み、すべて一致する場合は書き込み処理を終了する。例えば、読み出しデータが必ず1になる不良メモリセルに0が書き込まれた場合、書き込みデータと読み出しデータとが不一致になる。
(ステップS109)付加ビット設定部24が、比較結果が不一致であったデータに対応する付加ビットを1に変更する。
(ステップS110)反転部25が、ステップS109において0から1に変更された付加ビットに対応するビットグループを反転して書き込み部26に出力する。
(ステップS111)書き込み部26が、反転された付加ビット及びビットグループを、割り当てられた記憶領域に書き込む。
ここで例として、付加ビットa3の対応ビットグループであるx27〜x35が010101010であった場合の各部の動作を説明する。
まず、付加ビット設定部24は付加ビットa3に0を設定するため、反転部25はx27〜x35の反転を行わず、書き込み部26は記憶領域14に0010101010を書き込む。
記憶領域14においてx29の位置に相当するメモリセルが、必ず1が読み出される不良メモリセルであった場合、読み出し部27が読み出すデータは0011101010となる。
判定部23は、記憶領域14に書き込まれたデータについて、書き込みデータと読み出しデータとが不一致であると判定し、判定結果を付加ビット設定部24に通知する。
付加ビット設定部24は、判定部23による判定結果に基づいて、付加ビットa3を0から1に変更する。反転部25は付加ビットa3が1であるため、対応ビットグループx27〜x35を反転する。これにより、書き込み部26により記憶領域14に書き込まれるデータは1101010101となるため、x29の位置に相当するメモリセルが、必ず1が読み出される不良メモリセルであっても、正しい値を保持するメモリセルとして機能することができる。
なお、読み出し装置3による読み出し動作は上記第1の実施形態と同様である。誤り訂正部32は読み出し部31が読み出したデータについてシンドローム計算を行い、主データ及び付加ビットに誤りがあるか否かを検出し、誤りを検出した場合は誤りを訂正する。
読み出し部31が、8ビットの付加ビット{a0〜a7}、64ビットの主データ{x0〜x63}、及び8ビットの検査ビット{c0〜c7}からなる80ビットのデータ{a0〜a7、x0〜x63、c0〜c7}を読み出した場合、読み出し部31は以下のようなシンドローム計算を行い、シンドローム{s0〜s7}を算出する。計算はすべてモジュロ2演算である。
s0=x0+x4+x5+x6+x8+a0+x16+x17+x21+x24+x25+a2+x28+x29+x30+x31+x32+x34+x35+a3+x40+x43+x46+x47+x48+x51+x52+a5+ x54+x56+x62+a6+ x63+c0
s1=x0+x1+x5+x8+x9+x13+x14+x15+x17+a1+x25+x26+x30+x33+x34+a3+x37+x38+x39+x40+x41+x43+x44+a4+x49+x52+x55+x56+x57+x60+x61+a6+x63+c1
s2=x0+x2+x8+a0+x9+x10+x14+x17+x18+x22+x23+x24+x26+a2+x34+x35+x39+x42+x43+a4+x46+x47+x48+x49+x50+x52+x53+a5+x58+x61+c2+a7
s3=x1+x2+x3+x6+x7+a0+x9+x11+x17+a1+x18+x19+x23+x26+x27+x31+x32+x33+x35+a3+x43+x44+x48+x51+x52+a5+x55+x56+x57+x58+x59+x61+x62+a6+c3+a7
s4=x4+x7+x10+x11+x12+x15+x16+a1+x18+x20+x26+a2+x27+x28+x32+x35+x36+x40+x41+x42+x44+a4+x52+x53+x57+x60+x61+a6+c4+a7
s5=x1+x2+x3+x4+x5+x7+x8+a0+x13+x16+x19+x20+x21+x24+x25+a2+x27+x29+x35+a3+x36+x37+x41+x44+x45+x49+x50+x51+x53+a5+ x61+x62+ c5+a7
s6=x3+x6+x7+a0+x10+x11+x12+x13+x14+x16+x17+a1+x22+x25+x28+x29+x30+x33+x34+a3+x36+x38+x44+a4+x45+x46+x50+x53+x54+x58+x59+x60+x62+a6+c6+a7
s7=x0+x1+x2+x3+x4+x5+x6+x7+x8+a0+x9+x10+x11+x12+x13+x14+x15+x16+x17+a1+x18+x19+x20+x21+x22+x23+x24+x25+x26+a2+x27+x28+x29+x30+x31+x32+x33+x34+x35+a3+x36+x37+x38+x39+x40+x41+x42+x43+x44+a4+x45+x46+x47+x48+x49+x50+x51+x52+x53+a5+x54+x55+x56+x57+x58+x59+x60+x61+x62+a6+x63+c0+c1+c2+c3+c4+c5+c6+c7+a7
s1=x0+x1+x5+x8+x9+x13+x14+x15+x17+a1+x25+x26+x30+x33+x34+a3+x37+x38+x39+x40+x41+x43+x44+a4+x49+x52+x55+x56+x57+x60+x61+a6+x63+c1
s2=x0+x2+x8+a0+x9+x10+x14+x17+x18+x22+x23+x24+x26+a2+x34+x35+x39+x42+x43+a4+x46+x47+x48+x49+x50+x52+x53+a5+x58+x61+c2+a7
s3=x1+x2+x3+x6+x7+a0+x9+x11+x17+a1+x18+x19+x23+x26+x27+x31+x32+x33+x35+a3+x43+x44+x48+x51+x52+a5+x55+x56+x57+x58+x59+x61+x62+a6+c3+a7
s4=x4+x7+x10+x11+x12+x15+x16+a1+x18+x20+x26+a2+x27+x28+x32+x35+x36+x40+x41+x42+x44+a4+x52+x53+x57+x60+x61+a6+c4+a7
s5=x1+x2+x3+x4+x5+x7+x8+a0+x13+x16+x19+x20+x21+x24+x25+a2+x27+x29+x35+a3+x36+x37+x41+x44+x45+x49+x50+x51+x53+a5+ x61+x62+ c5+a7
s6=x3+x6+x7+a0+x10+x11+x12+x13+x14+x16+x17+a1+x22+x25+x28+x29+x30+x33+x34+a3+x36+x38+x44+a4+x45+x46+x50+x53+x54+x58+x59+x60+x62+a6+c6+a7
s7=x0+x1+x2+x3+x4+x5+x6+x7+x8+a0+x9+x10+x11+x12+x13+x14+x15+x16+x17+a1+x18+x19+x20+x21+x22+x23+x24+x25+x26+a2+x27+x28+x29+x30+x31+x32+x33+x34+x35+a3+x36+x37+x38+x39+x40+x41+x42+x43+x44+a4+x45+x46+x47+x48+x49+x50+x51+x52+x53+a5+x54+x55+x56+x57+x58+x59+x60+x61+x62+a6+x63+c0+c1+c2+c3+c4+c5+c6+c7+a7
図11は、上記の計算を行うシンドローム計算部50の構成の一例を示す。シンドローム計算部50を構成する複数のXOR素子にはそれぞれ偶数個のデータが与えられていることが分かる。
このように、本実施形態では、上記第1の実施形態と同様に、データ反転の有無を示す付加ビットについても誤り訂正される。そのため、データ読み出し時に誤ってデータが反転されることを防止することができ、読み出しデータの信頼性を向上させることができる。
また、本実施形態では、メモリ1に書き込んだデータと、メモリ1から読み出したデータとを比較し、不一致の場合はデータを反転して再度書き込む。そのため、0又は1のいずれか一方しか記憶できない不良メモリセルから正しい値を読み出すことができるようになる。
また、本実施形態では、データの再書き込みは、複数の記憶領域のうち読み出しデータが不一致であった記憶領域についてのみ行われるため、書き込みに要する時間の増加を抑制することができる。
上記第2の実施形態では図7に示すように、書き込み装置2に読み出し部27を設けていたが、図12に示すように読み出し装置3の読み出し部31がメモリ1から読み出したデータを判定部23へ出力し、書き込みデータと読み出しデータとが一致しているか否かの判定が行われるようにしてもよい。
上記第2の実施形態では、付加ビット設定部24が付加ビットにまず0を設定する例について説明したが、各ビットグループ内のリードディスターブの対象となるビット数が減少するように付加ビットを設定してもよい。
上記実施形態に係る書き込み装置2では、付加ビット追加部21を省略し、検査ビット追加部22が付加ビットの追加をあわせて行うようにしてもよい。
上記実施形態では、図4、図11に示すように、シンドローム計算部50において、各XOR素子への入力データ数が偶数になっている。これは、XOR素子への入力データ数が奇数であった場合、シンドローム計算において間違った誤り検出を行ってしまうためである。
上記実施形態では、複数のビットグループのビット数が同じ場合について説明したが、異なっていてもよい。また、主データや検査ビットは複数のビットグループに属していてもよい。また、どのビットグループにも属さない主データや検査ビットがあってもよい。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明は、線形符号により誤り訂正を行うメモリ装置において、読み出しデータの信頼性を向上させる分野に産業上の利用可能性がある。
1 メモリ
2 書き込み装置
3 読み出し装置
2 書き込み装置
3 読み出し装置
Claims (7)
- iビット(iは2以上の整数)のデータビットと、誤り訂正用のjビット(jは2以上の整数)の検査ビットと、前記データビット及び/又は前記検査ビットを少なくとも1ビット含むk個(kは1以上の整数)のビットグループにそれぞれ対応し、対応するビットグループが反転されているか否かを示すkビットの付加ビットと、を前記メモリに書き込む書き込み装置と、
前記メモリから前記データビット、前記検査ビット、及び前記付加ビットを読み出す読み出し部と、
前記メモリから読み出された前記検査ビットに基づいて、前記メモリから読み出された前記データビット及び前記付加ビットの誤りを訂正する訂正部と、
前記誤り訂正された前記付加ビットが反転を行ったことを示す場合は当該付加ビットに対応するビットグループに含まれる前記データビットを反転して前記メモリからの読み出しデータとして出力し、前記誤り訂正された前記付加ビットが反転を行っていないことを示す場合は当該付加ビットに対応するビットグループに含まれる前記データビットを反転せずに前記メモリからの読み出しデータとして出力する反転部と、
を備えるメモリ装置。 - 前記訂正部は、シンドローム計算を行う複数のXOR素子を有し、前記複数のXOR素子はそれぞれ前記メモリから読み出された前記データビット、前記検査ビット、及び前記付加ビットのうちの偶数個のビットが与えられることを特徴とする請求項1に記載のメモリ装置。
- 前記書き込み装置は、
前記データビットにkビットの所定値を前記付加ビットとして追加する第1追加部と、
前記付加ビット及び前記データビットの誤り訂正を行うための前記検査ビットを算出し、前記データビットに追加する第2追加部と、
前記ビットグループの反転を行うか否か判定する判定部と、
前記判定部により反転すると判定されたビットグループに対応する付加ビットをビットグループが反転されていることを示す値に設定し、前記判定部により反転しないと判定されたビットグループに対応する付加ビットをビットグループが反転されていないことを示す値に設定する設定部と、
ビットグループが反転されていることを示す値に設定された付加ビットに対応するビットグループを反転して出力し、ビットグループが反転されていないことを示す値に設定された付加ビットに対応するビットグループを反転せずに出力する第2反転部と、
前記第2反転部から出力されたビットグループ及び当該ビットグループに対応する付加ビットを前記メモリに書き込む書き込み部と、
を有することを特徴とする請求項2に記載のメモリ装置。 - 前記書き込み装置は、前記書き込み部が前記メモリに書き込んだデータを読み出す第2読み出し部をさらに有し、
前記判定部は、前記書き込み部が書き込んだデータと、前記第2読み出し部が読み出したデータとを比較し、
前記設定部は、前記判定部による比較結果が不一致となるビットを含むビットグループに対応する付加ビットの値を反転した値に再設定し、
前記第2反転部は、前記再設定された付加ビットに基づいて当該付加ビットに対応するビットグループに対して再反転処理を行い、
前記書き込み部は、前記再設定された付加ビット及び前記再反転処理されたビットグループを前記メモリに書き込むことを特徴とする請求項3に記載のメモリ装置。 - 前記メモリはk個の記憶領域を含み、
前記書き込み部は、第mの付加ビット(mは1≦m≦kの範囲における連続する整数)及び前記第mの付加ビットに対応するビットグループを第mの記憶領域に書き込むことを特徴とする請求項4に記載のメモリ装置。 - 前記判定部は、前記k個のビットグループの各々に含まれる論理値が1又は0のビット数をカウントし、カウント値が所定値以上のビットグループを反転すると判定し、前記カウント値が前記所定値未満のビットグループは反転しないと判定することを特徴とする請求項3に記載のメモリ装置。
- 前記読み出し部は、前記書き込み部が前記メモリに書き込んだデータを読み出して前記判定部へ出力し、
前記判定部は、前記書き込み部が書き込んだデータと、前記読み出し部が読み出したデータとを比較し、
前記設定部は、前記判定部による比較結果が不一致となるビットを含むビットグループに対応する付加ビットの値を反転した値に再設定し、
前記第2反転部は、前記再設定された付加ビットに基づいて当該付加ビットに対応するビットグループに対して再反転処理を行い、
前記書き込み部は、前記再設定された付加ビット及び前記再反転処理されたビットグループを前記メモリに書き込むことを特徴とする請求項3に記載のメモリ装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/065741 WO2011030410A1 (ja) | 2009-09-09 | 2009-09-09 | メモリ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5010756B2 true JP5010756B2 (ja) | 2012-08-29 |
JPWO2011030410A1 JPWO2011030410A1 (ja) | 2013-02-04 |
Family
ID=43732098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011530666A Expired - Fee Related JP5010756B2 (ja) | 2009-09-09 | 2009-09-09 | メモリ装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9075742B2 (ja) |
JP (1) | JP5010756B2 (ja) |
WO (1) | WO2011030410A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5303325B2 (ja) * | 2009-03-18 | 2013-10-02 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
US9123429B2 (en) | 2009-07-27 | 2015-09-01 | Sidense Corp. | Redundancy system for non-volatile memory |
JP5600963B2 (ja) * | 2010-02-22 | 2014-10-08 | 富士通株式会社 | 不揮発性記憶装置、及びデータ初期化方法 |
JP5467270B2 (ja) * | 2010-04-28 | 2014-04-09 | 国立大学法人 東京大学 | データ入出力制御装置および半導体記憶装置システム |
WO2013190597A1 (en) * | 2012-06-21 | 2013-12-27 | Hitachi, Ltd. | Flash memory device and storage control method |
US9070483B2 (en) | 2012-10-10 | 2015-06-30 | HGST Netherlands B.V. | Encoding and decoding redundant bits to accommodate memory cells having stuck-at faults |
DE102013215055B4 (de) * | 2013-07-31 | 2021-01-28 | Infineon Technologies Ag | Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern |
JP6136767B2 (ja) * | 2013-08-29 | 2017-05-31 | 富士通セミコンダクター株式会社 | 半導体記憶装置及びその書き込み方法 |
TWI514396B (zh) * | 2014-01-23 | 2015-12-21 | Sidense Corp | 非揮發性記憶體之冗餘系統 |
JP6686892B2 (ja) * | 2014-10-24 | 2020-04-22 | ソニー株式会社 | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 |
DE102017115056B3 (de) * | 2017-07-05 | 2018-11-15 | Elmos Semiconductor Aktiengesellschaft | Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb |
DE102017115057B4 (de) * | 2017-07-05 | 2019-03-07 | Elmos Semiconductor Aktiengesellschaft | Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus |
DE102017115058B4 (de) * | 2017-07-05 | 2019-03-07 | Elmos Semiconductor Aktiengesellschaft | Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb und Herbeiführung der Ausfallsicherheit |
US10951232B2 (en) * | 2018-11-26 | 2021-03-16 | Micron Technology, Inc. | Error correction bit flipping scheme |
KR20220124582A (ko) * | 2021-03-03 | 2022-09-14 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01295349A (ja) * | 1988-05-23 | 1989-11-29 | Seiko Instr Inc | 半導体不揮発性メモリー装置 |
JPH05298894A (ja) * | 1992-04-16 | 1993-11-12 | Sharp Corp | 不揮発性メモリのデータ書込読出制御装置 |
JP2009048379A (ja) * | 2007-08-17 | 2009-03-05 | Toshiba Corp | メモリシステム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS554757A (en) * | 1978-06-27 | 1980-01-14 | Hitachi Ltd | Error control system of memory unit |
JPS5580893A (en) * | 1978-12-01 | 1980-06-18 | Fujitsu Ltd | Memory device |
JPS5736680A (ja) | 1980-08-14 | 1982-02-27 | Ricoh Co Ltd | Kannetsukirokuhoshiki |
US5267204A (en) * | 1991-10-18 | 1993-11-30 | Texas Instruments Incorporated | Method and circuitry for masking data in a memory device |
US5815458A (en) * | 1996-09-06 | 1998-09-29 | Micron Technology, Inc. | System and method for writing data to memory cells so as to enable faster reads of the data using dual wordline drivers |
US6570795B1 (en) | 2002-04-10 | 2003-05-27 | Hewlett-Packard Development Company, L.P. | Defective memory component of a memory device used to represent a data bit in a bit sequence |
US6762952B2 (en) | 2002-05-01 | 2004-07-13 | Hewlett-Packard Development Company, L.P. | Minimizing errors in a magnetoresistive solid-state storage device |
US7055007B2 (en) * | 2003-04-10 | 2006-05-30 | Arm Limited | Data processor memory circuit |
JP5202130B2 (ja) | 2008-06-24 | 2013-06-05 | 株式会社東芝 | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 |
JP5283989B2 (ja) | 2008-06-24 | 2013-09-04 | 株式会社東芝 | メモリシステム及びメモリアクセス方法 |
US8181101B2 (en) * | 2009-01-30 | 2012-05-15 | International Business Machines Corporation | Data bus system, its encoder/decoder and encoding/decoding method |
-
2009
- 2009-09-09 JP JP2011530666A patent/JP5010756B2/ja not_active Expired - Fee Related
- 2009-09-09 WO PCT/JP2009/065741 patent/WO2011030410A1/ja active Application Filing
-
2012
- 2012-01-30 US US13/360,989 patent/US9075742B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01295349A (ja) * | 1988-05-23 | 1989-11-29 | Seiko Instr Inc | 半導体不揮発性メモリー装置 |
JPH05298894A (ja) * | 1992-04-16 | 1993-11-12 | Sharp Corp | 不揮発性メモリのデータ書込読出制御装置 |
JP2009048379A (ja) * | 2007-08-17 | 2009-03-05 | Toshiba Corp | メモリシステム |
Also Published As
Publication number | Publication date |
---|---|
US9075742B2 (en) | 2015-07-07 |
WO2011030410A1 (ja) | 2011-03-17 |
JPWO2011030410A1 (ja) | 2013-02-04 |
US20120131418A1 (en) | 2012-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5010756B2 (ja) | メモリ装置 | |
JP5043562B2 (ja) | エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
US8091010B2 (en) | Error correction circuit and method for reducing miscorrection probability and semiconductor memory device including the circuit | |
US20080195919A1 (en) | Semiconductor memory device for byte-based masking operation and method of generating parity data | |
TWI381392B (zh) | 雙層面記憶體錯誤修正方法以及相關的記憶體裝置 | |
JP6540703B2 (ja) | メモリコントローラおよびメモリコントローラの制御方法 | |
US9141473B2 (en) | Parallel memory error detection and correction | |
TW201106368A (en) | Error correction method for a memory device | |
US20090055706A1 (en) | Method and apparatus for flash memory error correction | |
US8738989B2 (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 | |
JP2019057752A (ja) | メモリシステム | |
JP5283989B2 (ja) | メモリシステム及びメモリアクセス方法 | |
JP2009259113A (ja) | 不揮発性メモリ管理装置 | |
JP6018508B2 (ja) | 不揮発性半導体記憶装置及びそのテスト方法 | |
CN110716824A (zh) | 编码方法及使用所述编码方法的存储器存储装置 | |
TWI748507B (zh) | 資料存取系統及操作資料存取系統的方法 | |
US20020174397A1 (en) | Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function | |
JPH05218883A (ja) | 復号回路 | |
JP2012003569A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2020150515A (ja) | 誤り訂正回路及びメモリシステム | |
JP2005011386A (ja) | 誤り訂正装置 | |
CN113380303B (zh) | 内存存储装置及数据访问方法 | |
US11088711B2 (en) | Memory apparatus and data accessing method thereof | |
US20160117218A1 (en) | Monitoring data error status in a memory | |
JP5492329B2 (ja) | メモリアクセス装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20120508 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120601 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150608 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |