JP2010140227A - メモリシステム及びメモリアクセス方法 - Google Patents

メモリシステム及びメモリアクセス方法 Download PDF

Info

Publication number
JP2010140227A
JP2010140227A JP2008315459A JP2008315459A JP2010140227A JP 2010140227 A JP2010140227 A JP 2010140227A JP 2008315459 A JP2008315459 A JP 2008315459A JP 2008315459 A JP2008315459 A JP 2008315459A JP 2010140227 A JP2010140227 A JP 2010140227A
Authority
JP
Japan
Prior art keywords
data
memory
bits
bit
written
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
JP2008315459A
Other languages
English (en)
Other versions
JP5284069B2 (ja
Inventor
Masaya Taruie
家 昌 也 樽
Tatsunori Kanai
井 達 徳 金
Yu Yamada
田 裕 山
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008315459A priority Critical patent/JP5284069B2/ja
Priority to PCT/JP2009/070702 priority patent/WO2010067847A1/ja
Publication of JP2010140227A publication Critical patent/JP2010140227A/ja
Priority to US13/157,396 priority patent/US9105358B2/en
Application granted granted Critical
Publication of JP5284069B2 publication Critical patent/JP5284069B2/ja
Priority to US14/789,090 priority patent/US9547551B2/en
Expired - Fee Related 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/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • G06F11/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • 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
    • G06F11/1048Adding 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
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】アクセス時間の増加を抑制し、リードディスターブ確率を減少させる。
【解決手段】書き込み対象のデータDinの冗長化符号処理を行い、所定値をとるビットの個数が全ビット数の半分以下となるデータRDinを生成する符号処理回路100と、前記符号処理回路により生成されるデータRDinが書き込まれるメモリ120と、を備える。
【選択図】図1

Description

本発明は、メモリシステム及びメモリアクセス方法に関するものである。
高集積度のメモリチップでは、個々のメモリセル(1ビットの記憶素子)を構成する物質のサイズが小さくなることにより、製造時の加工精度に由来する特性のばらつきが大きくなることや、温度や電磁波などの外乱から受ける影響が大きくなることなどによって、メモリセルの内容が従来記憶すべき内容と違う内容に変化してしまう確率(誤り率)が上がっている。
この誤りへの対策としては、単純に加工精度を上げたり、外乱の影響を低減するようにガードしたりする他に、誤り訂正符号(ECC)を用いて誤りビットを救済する方法が知られている。誤り率に関しては、外乱の他に、メモリのデバイスによる特性として存在する要因もある。
MRAMやRRAMやReRAMのように、異なる2つの抵抗値を持つことのできるメモリセルを用いる電気的に書き替え可能なメモリでは、メモリセルを低抵抗状態か高抵抗状態のいずれかにすることで、一方を論理値0、もう一方を論理値1に対応させてデータを記憶する。データの読み出し時には、メモリセルの抵抗値が閾値より小さいか大きいか否かで、論理値0か1か(あるいは1か0か)を判断する。
このようなメモリでは、読み出し時に抵抗値を直接測定することができないため、メモリセルに定電圧を掛けて電流値を測定したり、定電流を流して電圧値を測定したりすることによって、抵抗値を推定し論理値を決定する。
例えばMRAMでは、書き込みと読み出しとで同様の動作が行われ、読み出しはメモリの内容が書き換わらない程度の強度で行われる。例えば、読み出し時には0を書き込むときと同じ方向に電流を流し、その時の抵抗値によって0か1かの判別を行う。
この時、1であったメモリの内容が0に書き換わってしまう事がある。これはリードディスターブと呼ばれ、メモリセルの特性ばらつきの影響を受けるものであり、MRAMでの誤り率を上げる大きな要因となっている。このリードディスターブが起こる確率(リードディスターブ確率)が上がると、従来の誤り訂正符号では誤りビットを救済しきれなくなるという問題があった。
メモリに書き込まれたデータのデータ破壊を防止するものとして、書き込みデータにおけるデータ「1」の数をカウントし、データ「1」の数が書き込みデータのビット数の半分以上の場合は書き込みデータを反転したデータを正規メモリ部に書き込み、反転させたことを示す情報を補助ワードメモリ部に書き込むことで、ドレインディスターブを低減させる不揮発性半導体記憶装置が提案されている(例えば特許文献1参照)。正規メモリ部からのデータ読み出し時は、補助ワードメモリ部からデータを読み出し、書き込み時に反転したか否かを判定し、反転した場合は正規メモリ部から読み出したデータを反転して出力する。
しかし、データ読み出しの度に補助ワードメモリ部からデータ反転の有無を示す情報を読み出す必要があるため、読み出し処理が煩雑になり、メモリアクセスにかかる時間が長くなるという問題があった。
特開平7−334991号公報
本発明は、アクセス時間の増加を抑制して、リードディスターブ確率を減少させるメモリシステム及びメモリアクセス方法を提供することを目的とする。
本発明の一態様によるメモリシステムは、書き込み対象のデータの冗長化符号処理を行い、所定値をとるビットの個数が全ビット数の半分以下となるデータを生成する符号処理回路と、前記符号処理回路により生成される前記データが書き込まれるメモリと、を備えるものである。
本発明の一態様によるメモリアクセス方法は、nビット(nは1以上の整数)の書き込み対象のデータに対して、所定値をとるビットの個数が(n+m)/2以下(mは1以上の整数)となる冗長化符号処理を行い、n+mビットのデータを生成し、n+mビットの前記データをメモリの、アドレス信号により指定されたアドレスに書き込むことを特徴とするものである。
本発明によれば、アクセス時間の増加を抑制して、リードディスターブ確率を減少させることができる。
以下、本発明の実施の形態を図面に基づいて説明する。
(第1の実施形態)図1に本発明の第1の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路100、復号回路110、メモリ120、及びメモリコントローラ130を備える。符号処理回路100は、冗長化符号回路101、カウント部102、セレクタ103、及び演算部104を有する。
冗長化符号回路101は、nビット(nは1以上の整数)のメモリ120への書き込み対象のデータDinが与えられ、冗長化符号処理を行い、n+1ビットのデータCDinに変換して出力する。冗長化符号処理については後述する。セレクタ103はn+1ビットの11・・・1と00・・・0が与えられ、カウント部102から出力される選択信号Selに基づいていずれか一方を選択して出力する。
カウント部102は、冗長化符号回路101により生成されるデータCDinのうち、値が1のビット数をカウントし、カウント数に基づいて選択信号Selを生成して出力する。カウント部102は、カウント数が(n+1)/2より大きい場合は、セレクタ103が11・・・1を選択するような選択信号Selを出力する。また、カウント部102は、カウント数が(n+1)/2以下の場合は、セレクタ103が00・・・0を選択するような選択信号Selを出力する。
演算部104は、冗長化符号化回路101により生成されたn+1ビットのデータCDinと、セレクタ103により選択されたn+1ビットの11・・・1又は00・・・0の各ビットのXORを演算し、n+1ビットのデータRDinを生成し、出力する。
メモリ120はランダムアクセス可能な不揮発性メモリであり、書き込み又は読み出しを行うメモリの番地を指定する複数ビットのアドレス信号Addrが与えられる。メモリコントローラ130は、書き込みのタイミングを指示する書き込み信号Write及び符号処理回路100(演算部104)により生成されたデータRDinが与えられ、メモリ120のアドレス信号Addrで指定された番地に、書き込み信号Writeに基づくタイミングでデータRDinを書き込む。メモリ120は例えばMRAMである。
復号回路110はメモリ120から読み出されたn+1ビットのデータRDoutが与えられ、復号処理を行い、nビットのデータDoutに変換して出力する。
n=8を例として、冗長化符号処理及び復号処理について説明する。図2に示すように、冗長化符号回路101は8ビットのデータd、d、d、d、d、d、d、dが与えられ、冗長化符号処理を行い、9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’を出力する。
冗長化符号処理は図3に示すような論理式で表すことができ、冗長化符号回路101は図4に示すようなXOR素子11〜18を有する論理回路で構成することができる。出力するデータのビットx’として0が出力される。XOR素子11には0とビットdが与えられ、その出力がビットx’となる。
XOR素子12にはXOR素子11の出力とビットdとが与えられ、その出力がビットx’となる。以下同様に、XOR素子k(13≦k≦18)にはXOR素子k−1の出力とビットdk−11とが与えられ、その出力がビットx’k−10となる。
カウント部102、セレクタ103、及び演算部104による処理は図5に示すような論理式で表すことができる。9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’において、値が1のビット数が4より大きい場合は、x’、x’、x’、x’、x’、x’、x’、x’、x’の各々と1とのXORを演算し、9ビットのデータx、x、x、x、x、x、x、x、xを出力する。
9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’において、値が1のビット数が4以下の場合は、x’、x’、x’、x’、x’、x’、x’、x’、x’の各々と0とのXORを演算し、9ビットのデータx、x、x、x、x、x、x、x、xを出力する。
つまり、冗長化符号回路101から出力される9ビットのデータ中に値が1のビットが4より大きい(5以上)場合は各ビットを反転して出力し、値が1のビットが4以下の場合はそのまま出力する。
図6に示すように、復号回路110はメモリ120から読み出された9ビットのデータx、x、x、x、x、x、x、x、xが与えられ、復号処理を行い、8ビットのデータd、d、d、d、d、d、d、dを出力する。
復号処理は図7に示すような論理式で表すことができ、復号回路110は図8に示すようなXOR素子21〜28を有する論理回路で構成することができる。XOR素子21にはビットxとxとが与えられ、その出力がビットdとなる。
以下同様に、XOR素子j(22≦j≦28)にはビットxj−21とxj−20とが与えられ、その出力がビットdj−21となる。
図3、図7に示す論理式から分かるように、8ビットのデータd、d、d、d、d、d、d、dに対して冗長化符号処理を行って得られる9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’を復号処理すると、元の8ビットのデータd、d、d、d、d、d、d、dに戻すことが出来る。
また、9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’の各ビットの否定をとって(各ビットを反転して)から復号処理しても、元の8ビットのデータd、d、d、d、d、d、d、dに戻すことが出来る。
例えば8ビットのデータが01100011であったとする。この値を図4に示す冗長化符号回路に与えると、9ビットのデータ001000010が出力される。この001000010を図8に示す冗長化復号回路に与えると、その出力は01100011となり、元のデータに戻る。
また、9ビットのデータ001000010の各ビットの否定をとった110111101を図8に示す冗長化復号回路に与えても、その出力は01100011となり、元のデータに戻る。
従って、セレクタ103が00・・・0、11・・・1のいずれを選択しても、符号処理回路100の出力データを復号回路110が復号処理したデータは、符号処理回路100の入力データと等しいものとなる。
符号処理回路100はnビットの入力データをn+1ビットのデータに冗長化符号処理し、n+1ビットのうち、値が1のビット数が(n+1)/2より大きい場合は各ビットの値を反転して出力している。つまり、メモリ120に書き込まれる符号処理回路100の出力データRDinは、値が1のビット数が全ビット数の半分以下になり、0が多いデータとなる。
通常のMRAMでは、読み出し時にどちらの方向に電流を流すかはデバイスの特性によって設計時に固定されるため、例えば読み出し時には0を書き込むときと同じ方向に電流を流すように設計されたとすると、リードディスターブは1と記録したはずが0になるという場合に限られる。
従って、データをメモリ120に書き込む際に、値が0のビット数が多くなるように書き込むことによって、リードディスターブの対象となるビットが減り、全体としてリードディスターブ確率が減少する。
本実施形態では、符号処理回路100において入力データDinを冗長化符号処理したデータCDinにおいて、値が1のビット数が全ビット数の半分より大きい場合に、データCDinを反転して、メモリ120に書き込む。従って、メモリ120には、0が多いデータが書き込まれ、リードディスターブの対象となるビットが減るため、リードディスターブ確率が減少させることができる。
また、メモリ120に書き込んだデータRDinが冗長化符号処理したデータCDinを反転したものか否かに関係なく、復号回路110はメモリ120から読み出したデータを復号処理することで、符号処理回路100の入力データDinと等しい出力データDoutが得られる。従って、メモリ120に書き込んだデータを反転したか否かの確認をする必要がないため、そのような確認が必要な場合と比較して読み出し時のメモリアクセス時間を短縮することができる。
上記第1の実施形態における符号処理回路100は図9に示すような構成にしてもよい。符号処理回路100は冗長化符号回路101、インバータ141、判定器142、及びセレクタ143を有する。
インバータ141は、冗長化符号回路101のn+1ビットの出力データCDinの各ビットを反転して出力する。判定器142は、冗長化符号回路101の出力データCDinに含まれる値が1のビット数をカウントし、カウント数に基づいてセレクタ143へ選択信号を出力する。例えば判定器142は、カウント数が(n+1)/2より大きい場合、セレクタ143がインバータ141の出力を選択するような選択信号を出力する。これにより、インバータ141の出力は値が1のビット数が(n+1)/2以下となる。
判定器142は値が0のビット数をカウントし、n+1からカウント数を減じた値に基づいて選択信号を出力するようにしてもよい。
このような構成によっても、符号処理回路100からは値が0のビット数が多いデータが出力され、メモリ120のリードディスターブ確率を減少させることができる。
上記第1の実施形態では、メモリ120が、読み出し時に、0を書き込むときと同じ方向に電流を流すように設計され、リードディスターブは1と記録したはずが0になるものであったため、符号処理回路100は0が多くなるようにデータを反転して出力していた。
従って、メモリ120が、読み出し時に、1を書き込むときと同じ方向に電流を流すように設計され、リードディスターブは0と記録したはずが1になるものである場合は、符号処理回路100は値が1のビット数が多くなるようにデータを出力する。
例えば、カウント部102は、冗長化符号回路101から出力されるデータCDinのうち、値が0のビット数をカウントし、カウント数が(n+1)/2より大きい場合は、セレクタ103が11・・・1を選択するような選択信号Selを出力する。
(第2の実施形態)図10に本発明の第2の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路200、復号回路210、及びメモリ220を備える。メモリ220へのデータ書き込みを行うメモリコントローラ(上記第1の実施形態におけるメモリコントローラ130と同等のもの)はメモリ220内に含まれているものとする。
符号処理回路200は偏向符号処理テーブルを有しており、nビットの入力データDinを、偏向符号処理テーブルを参照してn+mビット(mは2以上の整数)のデータRDinに変換し、メモリ220へ出力する。ここで、偏向符号処理テーブルは、メモリ220のリードディスターブの対象となる値の出現確率が低くなるように構築する。
復号回路210は、メモリ220から読み出されたn+mビットのデータRDoutを、偏向符号処理テーブルと入出力が逆になっている復号処理テーブルを参照してnビットのデータDoutに変換し、出力する。
上記第1の実施形態では1ビットの冗長化を行っていたのに対し、本実施形態では2ビット以上(mビット)の冗長化を行っている。0と1の出現確率が等しい場合、2ビット以上の冗長化を行った方が、1ビットの冗長化を行うより、統計的にリードディスターブ確率を下げることができるためである。
図11は、4ビットの入力データを6ビットに符号化する場合の偏向符号処理テーブルの一例である。この偏向符号処理テーブルは、メモリ220において、1と記録したはずが0になるリードディスターブが発生する場合のものであり、1の出現確率が低くなるように構築されている。
16種類の入力データ(0000〜1111)の出現確率がすべて等しい場合、この偏向符号処理テーブルを用いることで、5ビットへの冗長符号化を行う場合と比較してリードディスターブ確率を4%低減できる。
このように偏向符号処理テーブルを用いて、リードディスターブの対象となるビットが少なくなるように2ビット以上の冗長化を行い、メモリへ書き込むことで、リードディスターブ確率をさらに低減できる。
また、復号回路210は、メモリ220から読み出したデータを、復号処理テーブルを用いて元のデータに戻して出力するため、メモリ220に書き込まれたデータが反転したか否かの確認は必要がなく、メモリアクセス時間の増加を抑制することができる。
(第3の実施形態)図12に本発明の第3の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路300、復号回路310、及びメモリ320を備える。符号処理回路300は、冗長化符号回路301、302、及び偏向セレクタ303を有する。メモリ320へのデータ書き込みを行うメモリコントローラ(上記第1の実施形態におけるメモリコントローラ130と同等のもの)はメモリ320内に含まれているものとする。
冗長化符号回路301、302は互いに異なる1ビットの種データsを用いてnビットの入力データDinをスクランブルして、種データsの情報を保持したn+1ビットのデータに冗長化する。冗長化符号回路301は種データsとして0が与えられ、冗長化符号回路302は種データsとして1が与えられる。冗長化符号回路301の出力と、冗長化符号回路302の出力とは、各ビットの値を反転した関係になっている。
偏向セレクタ303は判定器304及びセレクタ305を有する。判定器304は冗長化符号回路301の出力データを監視し、冗長化符号回路301、302の出力データのうち、どちらがメモリ320のリードディスターブの対象となるビットが少ないかを判定し、そのデータを選択するようにセレクタ305へ選択信号を出力する。
つまり、偏向セレクタ303は、冗長化符号回路301、302の出力データのうち、メモリ320のリードディスターブの対象となるビットが少ない方を選択して、メモリ320へ出力する。
復号回路310は、メモリ320から読み出したn+1ビットのデータRDoutを復号する。この時、種データsの情報が併せて復号されるが、復号回路310は種データsを破棄してnビットのデータDoutを出力する。
n=8とした場合の冗長化符号回路301、302の論理回路構成例を図13に示す。この例では9ビットの出力データのビットxが種データsと同値となる。入力データが01100011であった場合、冗長化符号回路301の出力は001000010となり、冗長化符号回路302の出力は110111101となる。
ここで、例えばメモリ320のリードディスターブの対象が1である場合、偏向セレクタ303によって001000010が選択されて、メモリ320に書き込まれる。
この001000010を復号回路310に与えると、その出力は種データが0、本体が01100011となり、元の入力データが得られる。
種データsは1ビットでなく、2ビット以上でもよい。種データがpビット(pは2以上の整数)の場合、冗長化符号回路を2個設け、それぞれに異なる種データを与える。種データsが2ビットの場合のメモリシステムの構成例を図14に示す。符号処理回路300は冗長化符号回路331〜334及び偏向セレクタ335を有する。冗長化符号回路331〜334はそれぞれ種データsとして00、01、10、11が与えられ、nビットの入力データDinをスクランブルして、種データsの情報を保持したn+2ビットのデータに冗長化する。
偏向セレクタ335は、冗長化符号回路301〜304の出力データのうち、メモリ320のリードディスターブの対象となるビットが最も少ないものを選択して、メモリ320へ出力する。
復号回路310は、メモリ320からn+2ビットのデータを読み出し、復号処理を行い、2ビットの種データを破棄してnビットのデータDoutを出力する。
このように入力データに1ビット以上の種データを付加して冗長化処理を行い、リードディスターブの対象となるビットが最も少ないものを選択してメモリに書き込むことで、リードディスターブ確率を低減することができる。
また、復号回路310は、メモリ320から読み出したデータを復号し、種データを破棄して出力するだけなので、アクセス時間の増加を抑制することができる。
(第4の実施形態)図15に本発明の第4の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路400、復号回路410、及びメモリ420を備える。符号処理回路400は、誤り訂正符号化部401、402、及び偏向セレクタ403を有する。メモリ420へのデータ書き込みを行うメモリコントローラ(上記第1の実施形態におけるメモリコントローラ130と同等のもの)はメモリ420内に含まれているものとする。
誤り訂正符号化部401、402は、nビットの入力データDinにuビットのデータ反転用ビットrを付加したデータに対して誤り訂正符号化処理を行い、tビットのデータを出力する。n、u、tは1以上の整数である。データ反転用ビットrの値は誤り訂正符号化部401と誤り訂正符号化部402とで異なる。
誤り訂正符号化部401の出力データと、誤り訂正符号化部402の出力データとは、全てのビット又は多数のビットが反転した関係となる。
偏向セレクタ403は誤り訂正符号化部401、402の出力データのうち、メモリ420のリードディスターブの対象となるビットが少ない方を選択して、メモリ420へ出力する。
復号回路410はメモリ420からtビットのデータを読み出し、復号及び誤り訂正処理を行い、n+uビットのデータを生成し、uビットのデータ反転用ビットrを除いたnビットのデータDoutを出力する。
例えばn=7、データ反転用ビットrが1ビットの時、誤り訂正符号化部401、402は図16に示すような生成行列を持つハミング符号を用いて、図17に示すような誤り訂正符号化処理としてのハミング符号化処理を行う。この時、出力データは12ビットとなる。
データ反転用ビットrに対応する生成行列の第8行がすべて1になっている。そのため、データ反転用ビットrを0とした場合の出力データは、rを1とした場合の出力データの各ビットを反転したものとなる。従って、誤り訂正符号化部401の出力データは、誤り訂正符号化部402の出力データの各ビットを反転したものとなる。
偏向セレクタ403は、誤り訂正符号化部401、402の出力データのうち、メモリ420のリードディスターブの対象となるビットが少ない方を選択して、メモリ420へ出力する。偏向セレクタ403は、図12に示す偏向セレクタ303と同様の構成にすることができる。
また、図18に示すように、符号処理回路400に誤り訂正符号化部402を設けず、誤り訂正符号化部401の出力を反転するインバータ回路404を設けてもよい。インバータ回路404の出力が、誤り訂正符号化部402の出力と同じになるためである。偏向セレクタ403は、誤り訂正符号化部401、インバータ回路404の出力データのうち、メモリ420のリードディスターブの対象となるビットが少ない方を選択して、メモリ420へ出力するようにしてもよい。
復号回路410は、メモリ420から12ビットのデータを読み出し、図19に示すような検査行列を用いて復号及び誤り訂正を行い、データ反転用ビットrを破棄し、元の7ビットのデータを復元、出力する。
n=8、データ反転用ビットrが1ビットの場合、誤り訂正符号化部401、402は図20に示すような生成行列を持つハミング符号を用いて誤り訂正符号化処理としてのハミング符号化処理を行う。この時、出力データは13ビットとなる。
図20からわかるように、データ反転用ビットrに対応する生成行列の第9行に0が含まれている。そのため、データ反転用ビットrを0とした場合の出力データは、rを1とした場合の出力データの各ビットを反転したものとはならない。従って、誤り訂正符号化部401の出力データは、誤り訂正符号化部402の出力データの各ビットを反転したものとはならない。
しかし、13ビットの出力データのうち12ビットは反転しているため、偏向セレクタ403は、誤り訂正符号化部401、402の出力データのうち、メモリ420のリードディスターブの対象となるビットが少ない方を選択して、メモリ420へ出力することで、リードディスターブ確率を低減させることは可能である。
偏向セレクタ403は図21に示すような構成にし得る。判定器405が誤り訂正符号化部401、402の出力データを監視し、メモリ420のリードディスターブの対象となるビットが少ない方を選択するようにセレクタ406へ選択信号を出力する。
図20に示すような生成行列の場合、データ反転用ビットrによって出力データが反転するビットの位置は予め分かっている。その場合、符号処理回路400を図22に示すような構成にし得る。この時、反転回路407はデータ反転用ビットrによって反転するビットのみを反転して出力する。また、偏向セレクタ403の判定器405は、データ反転用ビットrによって反転するビットについてのみ、誤り訂正符号化部401の生成データ及び反転回路407の生成データのうち、どちらがリードディスターブの対象となるビットが少ないかを判定する。このような構成にすることで、誤り訂正符号化部402を省略できる。
このように、入力データに互いに異なるデータ反転用ビットを付加して誤り訂正符号化処理を行い、複数の誤り訂正符号化データのうち、リードディスターブの対象となるビットが少ないものを選択してメモリに書き込むことで、リードディスターブ確率を低減できる。
また、復号回路はメモリから読み出したデータの復号及び誤り訂正を行い、データ反転用ビットを破棄して出力するだけなので、メモリアクセスに要する時間の増加を抑制できる。
(第5の実施形態)図23に本発明の第5の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路500、復号回路510、メモリ520、及び比較器530を備える。メモリ520へのデータ書き込みを行うメモリコントローラ(上記第1の実施形態におけるメモリコントローラ130と同等のもの)はメモリ520内に含まれているものとする。
符号処理回路500は、冗長化データ生成回路501及び偏向セレクタ504を有する。冗長化データ生成回路501はnビット(nは1以上の整数)の入力データDinが与えられ、互いに異なるn+1ビットの冗長化データX0、X1を出力する。
冗長化データ生成回路501は、冗長化符号回路502、503を有する。冗長化符号回路502は、入力データDin及び1ビットの種データsとしての0が与えられ、冗長化符号処理を行ってn+1ビットの冗長化データX0を出力する。
冗長化符号回路503は、入力データDin及び1ビットの種データsとしての1が与えられ、冗長化符号処理を行ってn+1ビットの冗長化データX1を出力する。
冗長化符号回路502、503は例えば図13のような論理回路構成とする。
偏向セレクタ504は、冗長化データX0、X1のうち、メモリ520のリードディスターブの対象となるビットが少ない方を選択し、書き込みデータRDinとしてメモリ520へ出力する。偏向セレクタ504は書き込みのタイミングを指示する書き込み信号Writeが与えられ、メモリ520へのデータ出力に応じてメモリ520へ書き込み信号MWriteを出力する。
偏向セレクタ504から出力されたデータRDinは、メモリコントローラにより(図示せず)、書き込み信号MWriteに基づいて、メモリ520のアドレス信号Addrで指定されたアドレスに書き込まれる。
復号回路510はメモリ520からn+1ビットのデータRDoutを読み出し、復号処理を行い、種データsの情報を破棄して、nビットのデータDoutを出力する。復号回路510はデータX0、X1のいずれが入力しても、データDinを出力することができるものである。
比較器530は、メモリ520への書き込みが行われた後、即座に同じアドレスからデータを読み出し、メモリ520へ書き込まれたデータとメモリ520から読み出されたデータとの比較を行い、比較結果を示す比較結果信号Matchを偏向セレクタ504へ出力する。
メモリ520内に大量にあるメモリセルの中には、常に1を出力し続けたり、常に0を出力し続けたりする故障したメモリセルがある程度の割合で混在している。このような故障したメモリセルの影響で、比較器530の比較結果が不一致となる場合がある。例えば、あるビットの値が1であるデータを書き込み、このビットに相当するメモリセルが常に0を出力し続ける故障セルであった場合、読み出したデータのこのビットの値は0に変化し、比較器530の比較結果は不一致となる。
偏向セレクタ504は、この比較結果信号Matchが不一致を示す場合、冗長化データX0、X1のうち、メモリ520のリードディスターブの対象となるビットが多い方を選択して、メモリ520へ出力する。
冗長化データX0とX1は、すべてのビット又は多数のビットが反転した関係となっている。従って、冗長化データX0、X1の一方をメモリ520に書き込んだ結果、読み出したデータが書き込みデータと不一致となった場合、冗長化データX0、X1の他方を書き込むと、読み出したデータが書き込みデータと一致することが期待される。
例えば、冗長化符号回路502、503が図13のような論理回路構成となっており、入力データが01100011であった場合、冗長化データX0は001000010となり、冗長化データX1は110111101となる。メモリ520のリードディスターブの対象となる値が1であった場合、偏向セレクタは1が少ない(0が多い)データである冗長化データX0を選択する。冗長化データX0がメモリ520に書き込まれ、これを読み出した値が001000011だった場合、比較器530から出力される比較結果信号Matchは不一致を示す。
この時、偏向セレクタは冗長化データX0以外のデータ、すなわち冗長化データX1を選択する。メモリ520では、最下位ビットに対応するメモリセルが1に固定されてしまっているが、冗長化データX1は最下位ビットが1であるため、メモリ520によって正しいデータが保持される。その結果、復号回路510によって、正しく元の値に戻すことが可能になる。
従って、メモリ520に故障メモリセルがあった場合でも、メモリ520に正しく保持されるデータを選択することで、故障メモリセルを救済できる。
本実施形態によるメモリシステムは、マイクロプロセッサ等のハードウェアに接続して、データの書き込みや読み出しを行う。このようなメモリシステムを用いたデータ書き込み方法を図24に示すフローチャートを用いて説明する。
ここでは、マイクロプロセッサ(メモリコントローラ内のプロセッサも含む)がメモリにデータを書き込む場合を例に説明するが、マイクロプロセッサ以外のハードウェアがデータを書き込む場合も同様である。マイクロプロセッサはメモリシステムにデータを書き込むために、書き込みたいアドレスをメモリシステムのアドレス信号Addrに出力し、書き込みたいデータをメモリシステムのデータ信号Dinに出力する。そして、マイクロプロセッサはメモリシステムの書き込み信号Writeに対する出力を論理値0から1に変化させることで、書き込み処理を開始させる。
(ステップS100)マイクロプロセッサから、アドレス信号Addrにより、メモリ520へデータの書き込み先となるアドレスAが与えられる。また、マイクロプロセッサから、冗長化符号回路1へnビットのデータDinが与えられる。
(ステップS101)冗長化データ生成回路501により冗長化符号処理が行われ、n+1ビットの冗長化データX0、X1が出力される。
(ステップS102)偏向セレクタ504が、メモリ520のリードディスターブ対象の値に基づいて冗長化データX0、X1の一方を選択する。リードディスターブ対象のビット数が少ない方が選択される。
(ステップS103)偏向セレクタ504が、ステップS102で選択したデータを書き込みデータRDinとしてメモリ520へ出力する。さらに、偏向セレクタ504がメモリ520への書き込み信号MWriteを論理値0から1へ変化させてメモリ520へ書き込みを指示することで、メモリ520のアドレスAにデータRDinが書き込まれる。
(ステップS104)メモリ520のアドレスAからデータRDoutを読み出す。
(ステップS105)比較器5においてデータRDinとデータRDoutが比較され、比較結果を示す比較結果信号Matchが出力される。比較結果信号Matchが真、すなわちデータRDinとデータRDoutが一致、の場合は、データがメモリ520へ正しく書き込めていると判定し、書き込み動作を終了する。
比較結果信号Matchが偽、すなわちデータRDinとデータRDoutが不一致、の場合は、ステップS106へ進む。
(ステップS106)偏向セレクタ504がステップS102で選択しなかった方の冗長化データX0、X1を選択し、メモリ520のアドレスAに書き込む。
ステップS105で比較結果が一致している場合のタイミングチャートは図25に示すようなものとなり、比較結果が不一致である場合のタイミングチャートは図26に示すようなものとなる。
次に、データ読み出し方法を図27に示すフローチャートを用いて説明する。マイクロプロセッサはメモリシステムからデータを読み出すために、読み出したいアドレスをメモリシステムのアドレス信号Addrに出力することで、メモリシステムの読み出し処理を開始させる。
(ステップS200)マイクロプロセッサから、アドレス信号AddrによりアドレスAが与えられる。
(ステップS201)メモリ520のアドレスAからn+1ビットのデータRDoutが読み出される。
(ステップS202)データRDoutが復号回路520に与えられる。
(ステップS203)復号処理が行われ、nビットのデータDoutがメモリ520のアドレスAのデータとして出力される。
このように、まずはメモリ520のリードディスターブの対象となるビットが少ない方の冗長化データを選択して書き込み、比較器530の比較結果からメモリセルの故障等により正しくデータが書き込めていない場合は、他方の冗長化データを選択して書き込むことで、リードディスターブ確率を低減させつつ、故障メモリセルの救済を図る。
図23では冗長化データ生成回路501は入力データに1ビットの種データsを付加して2つの冗長化データX0、X1を出力していたが、3つ以上の冗長化データを出力するようにしてもよい。
冗長化データ生成回路501が、2ビットの種データsを付加して4つの冗長化データX0〜X3を出力する構成例を図28に示す。冗長化データ生成回路501は冗長化符号回路541〜544を有する。冗長化符号回路541〜544は、それぞれnビットの入力データDinに2ビットの種データsとして00、01、10、11が付加され、n+2ビットの冗長化データX0〜X3を出力する。
入力データDinが6ビットの場合、冗長化符号回路541〜544は、図29に示すような冗長化符号生成行列を用いて冗長化符号処理を行い、8ビットの冗長化データを出力する。
入力データDinが101100であった場合、冗長化データX0は11011100、X1は00101011、X2は01110110、X3は10001001となる。メモリ520のリードディスターブの対象となる値が1であった場合、偏向セレクタ504は、まず値が1のビット数が最小の冗長化データX3を選択する。
冗長化データX3をメモリ520に書き込んだ後に、比較器530が同じアドレスから読み出した値が冗長化データX3と不一致であれば、偏向セレクタ504は2番目に値が1のビット数が少ない冗長化データX1を選択する。比較器530による比較結果が一致するまで偏向セレクタは順次選択を行う。
また、例えば冗長化データX3を書き込んだ後に読み出されたデータが10001000であった場合、最下位ビットに対応するメモリセルが0に固定される故障が発生していると推定される。この時、偏向セレクタ504の選択候補から冗長化データX3だけでなく、最下位ビットが0ではない冗長化データX1も選択候補から外し、偏向セレクタ504が冗長化データX0、X2の中から1つを選択するようにしてもよい。これにより、メモリ520への書き込みに要する時間を短縮できる。
また、偏向セレクタ504が最後の1つの冗長化データを選択する場合は、正しく書き込めることを期待して、書き込み後の比較器530による比較を省略するようにしてもよい。
このように、本実施形態によるメモリセルは、リードディスターブ確率を低減させ、かつ不良メモリセルを救済できる。また、復号回路は偏向セレクタでどの冗長化データが選択されたかに関わらず、メモリから読み出したデータに対して所定の復号処理を行うことで元のデータを得ることができるため、メモリアクセスに要する時間の増加を抑制できる。
上記第1〜第5の実施形態は、リードディスターブ確率を下げるためにメモリセルの0、1によるリードディスターブ確率の違いに着目したものであるが、メモリセルが2状態しか持たないことに限定されず、メモリセルの記憶状態によって要因が変化するすべての性能に対して適応可能である。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の第1の実施形態に係るメモリシステムの概略構成図である。 冗長化符号回路の処理の一例を示す図である。 冗長化符号処理の一例を示す論理式である。 冗長化符号回路の一例を示す回路図である。 冗長化処理データに対する演算処理の一例を示す数式である。 復号回路の処理の一例を示す図である。 復号処理の一例を示す論理式である。 復号回路の一例を示す回路図である。 変形例による符号処理回路の概略構成図である。 本発明の第2の実施形態に係るメモリシステムの概略構成図である。 偏向符号処理テーブルの一例を示す図である。 本発明の第3の実施形態に係るメモリシステムの概略構成図である。 同第3の実施形態に係る冗長化符号回路の一例を示す図である。 変形例によるメモリシステムの概略構成図である。 本発明の第4の実施形態に係るメモリシステムの概略構成図である。 ハミング符号化処理の生成行列の一例を示す図である。 ハミング符号化処理の一例を示す数式である。 変形例によるメモリシステムの概略構成図である。 検査行列の一例を示す図である。 ハミング符号化処理の生成行列の一例を示す図である。 変形例による偏向セレクタの概略構成図である。 変形例による符号処理回路の概略構成図である。 本発明の第5の実施形態に係るメモリシステムの概略構成図である。 同第5の実施形態によるデータ書き込み方法のフローチャートである。 同第5の実施形態によるデータ書き込み方法におけるタイミングチャートの一例である。 同第5の実施形態によるデータ書き込み方法におけるタイミングチャートの一例である。 同第5の実施形態によるデータ読み出し方法のフローチャートである。 変形例によるメモリシステムの概略構成図である。 冗長化符号処理の一例を示す数式である。
符号の説明
100 符号処理回路
110 復号回路
120 メモリ
130 メモリコントローラ

Claims (19)

  1. 書き込み対象のデータの冗長化符号処理を行い、所定値をとるビットの個数が全ビット数の半分以下となるデータを生成する符号処理回路と、
    前記符号処理回路により生成される前記データが書き込まれるメモリと、
    を備えるメモリシステム。
  2. 前記符号処理回路は、nビット(nは1以上の整数)の前記書き込み対象のデータに対して冗長化符号処理を行い、複数のn+mビット(mは1以上の整数)の冗長化データを生成し、前記複数の冗長化データのうち前記所定値をとるビットの個数が最小の冗長化データを選択し、
    前記選択された冗長化データが前記メモリに書き込まれることを特徴とする請求項1に記載のメモリシステム。
  3. 前記複数の冗長化データのいずれか1つを復号処理しても前記書き込み対象のデータを生成する復号回路をさらに備え、
    前記復号回路は前記メモリからn+mビットのデータを読み出し、復号処理を行ってメモリシステム外に出力することを特徴とする請求項2に記載のメモリシステム。
  4. 前記符号処理回路は、
    nビット(nは1以上の整数)の前記書き込み対象のデータに対して冗長化符号処理を行い、n+1ビットの冗長化データを生成する冗長化符号回路と、
    選択信号に基づいてn+1ビットの1又は0を選択するセレクタと、
    前記冗長化データに含まれる前記所定値のビット数をカウントし、カウント数に基づいて前記選択信号を生成するカウント部と、
    前記冗長化データと、前記セレクタの選択値との各ビットのXOR演算を行う演算部と、
    を有し、前記演算部の演算結果が前記メモリに書き込まれることを特徴とする請求項1に記載のメモリシステム。
  5. 前記符号処理回路は、n個のXORゲートを有し、
    第1のXORゲートには前記書き込み対象のデータの1ビット目と0とが与えられ、
    第kのXORゲート(kは2≦k≦nを満たす整数)には第k−1のXORゲートの出力値と前記書き込み対象のデータのkビット目が与えられ、
    1ビット目が0、2ビット目が前記第1のXORゲートの出力値、k+1ビットが前記第kのXORゲートの出力値となる前記冗長化データを生成することを特徴とする請求項4に記載のメモリシステム。
  6. 前記メモリからn+1ビットのデータを読み出す復号回路をさらに備え、
    前記復号回路は、n個のXORゲートを有し、
    第kのXORゲート(kは1≦k≦nを満たす整数)には前記メモリから読み出されるデータのkビット目とk+1ビット目が与えられ、
    kビット目が前記第kのXORゲートの出力値となる復号処理データをメモリシステム外に出力することを特徴とする請求項4に記載のメモリシステム。
  7. 前記符号処理回路は、
    nビット(nは1以上の整数)の前記書き込み対象のデータに対して冗長化符号処理を行い、n+1ビットの冗長化データを生成する冗長化符号回路と、
    前記冗長化データの各ビットの値を反転するインバータ回路と、
    選択信号に基づいて前記冗長化データ及び前記反転された冗長化データのいずれか一方を選択するセレクタと、
    前記冗長化データに含まれる前記所定値のビット数をカウントし、カウント数に基づいて前記選択信号を生成するカウント部と、
    を有し、前記セレクタにより選択されたデータが前記メモリに書き込まれることを特徴とする請求項1に記載のメモリシステム。
  8. 前記符号処理回路は、nビット(nは1以上の整数)の前記書き込み対象のデータが与えられ、nビットのデータに対して、前記所定値をとるビットの個数が(n+m)/2以下(mは1以上の整数)となるn+mビットの符号化データが対応付けられた符号処理テーブルを参照して、前記書き込み対象のデータに対応する符号化データを決定し、
    前記決定された符号化データが前記メモリに書き込まれることを特徴とする請求項1に記載のメモリシステム。
  9. 前記メモリからn+mビットのデータを読み出し、前記符号処理テーブルの前記符号化データを読み出しデータ、前記符号化データに対応する前記nビットのデータを復号化データとする復号処理テーブルを参照して、前記メモリから読み出したデータに対応する復号化データを決定し、メモリシステム外に出力する復号回路をさらに備えることを特徴とする請求項8に記載のメモリシステム。
  10. 前記符号処理回路は、
    nビット(nは1以上の整数)の前記書き込み対象のデータと、互いに異なるmビット(mは1以上の整数)の種データとが与えられ、前記書き込み対象のデータに前記種データを付加したデータに対して冗長化符号処理を行いn+mビットの冗長化データを生成する2個以下の複数個の冗長化符号回路と、
    前記複数個の冗長化符号回路により生成された前記冗長化データのうち、前記所定値をとるビットの個数が最小の冗長化データを選択する偏向セレクタと、
    を有し、前記偏向セレクタにより選択されたデータが前記メモリへ書き込まれることを特徴とする請求項2に記載のメモリシステム。
  11. 前記符号処理回路は、
    前記書き込み対象のデータに、互いに異なる1ビット以上の反転ビットが付加されたデータに対して、所定の生成行列を用いて誤り訂正符号化処理を行い、誤り訂正符号化データを生成する複数の誤り訂正符号化部と、
    前記複数の誤り訂正符号化部により生成された誤り訂正符号化データのうち、前記所定値をとるビットの個数が最小の誤り訂正符号化データを選択する偏向セレクタと、
    を有し、前記偏向セレクタによって選択された誤り訂正符号化データが前記メモリに書き込まれることを特徴とする請求項1に記載のメモリシステム。
  12. 前記メモリから読み出したデータに対して前記生成行列に対応する検査行列を用いて復号及び誤り訂正を行い、前記反転ビット部分を破棄してメモリシステム外に出力する復号回路をさらに備えることを特徴とする請求項11に記載のメモリシステム。
  13. 前記符号処理回路は、
    前記書き込み対象のデータに所定の反転ビットを付加したデータに対して、所定の生成行列を用いて誤り訂正符号化処理を行い、誤り訂正符号化データを生成する誤り訂正符号化部と、
    前記誤り訂正符号化データの各ビットの値を反転するインバータ回路と、
    前記誤り訂正符号化データ及び前記反転された誤り訂正符号化データのうち、前記所定値をとるビットの個数が少ない方を選択する偏向セレクタと、
    を有し、前記偏向セレクタによって選択されたデータが前記メモリに書き込まれることを特徴とする請求項1に記載のメモリシステム。
  14. 前記符号処理回路は、
    前記書き込み対象のデータに所定の反転ビットを付加したデータに対して、所定の生成行列を用いて誤り訂正符号化処理を行い、誤り訂正符号化データを生成する誤り訂正符号化部と、
    前記誤り訂正符号化データのうち所定のビットの値を反転する反転回路と、
    前記誤り訂正符号化データ及び前記反転回路により反転された誤り訂正符号化データのうち、前記所定値をとるビットの個数が少ない方を選択する偏向セレクタと、
    を有し、前記偏向セレクタによって選択されたデータが前記メモリに書き込まれることを特徴とする請求項1に記載のメモリシステム。
  15. 前記メモリから読み出されるデータと、前記符号処理回路により生成されるデータとを比較する比較器をさらに備え、
    前記符号処理回路は、
    nビット(nは1以上の整数)の前記書き込み対象のデータに、互いに異なる種データが付加されたデータに対して冗長化符号処理を行い、n+mビット(mは1以上の整数)の冗長化データを生成する複数の冗長化符号回路と、
    前記複数の冗長化符号回路により生成される前記冗長化データを、前記所定値をとるビットの個数が少ない順に選択し、前記比較器による比較結果が一致を示した時に選択していた冗長化データを前記メモリに書き込むデータとして確定する偏向セレクタと、
    を有することを特徴とする請求項1に記載のメモリシステム。
  16. 前記複数の冗長化データのいずれか1つを復号処理しても前記書き込み対象のデータに前記種データが付加されたデータを生成する復号回路をさらに備え、
    前記復号回路は、前記メモリからn+mビットのデータを読み出し、復号処理を行い、前記種データ部分を破棄してメモリシステム外に出力することを特徴とする請求項15に記載のメモリシステム。
  17. nビット(nは1以上の整数)の書き込み対象のデータに対して、所定値をとるビットの個数が(n+m)/2以下(mは1以上の整数)となる冗長化符号処理を行い、n+mビットのデータを生成し、
    n+mビットの前記データをメモリの、アドレス信号により指定されたアドレスに書き込むことを特徴とするメモリアクセス方法。
  18. 前記冗長化符号処理により複数のn+mビットのデータを生成し、
    前記複数のn+mビットのデータから前記所定値をとるビットの個数が最小のデータを選択し、
    前記選択したデータを前記メモリに書き込むことを特徴とする請求項17に記載のメモリアクセス方法。
  19. 前記選択したデータの書き込み後に、前記指定されたアドレスからn+mビットのデータを読み出し、
    前記書き込んだデータと前記読み出したデータとを比較し、
    比較結果が不一致である場合、前記所定値をとるビットの個数が2番目に少ないデータを選択し、前記指定されたアドレスに書き込むことを特徴とする請求項18に記載のメモリアクセス方法。
JP2008315459A 2008-12-11 2008-12-11 メモリシステム及びメモリアクセス方法 Expired - Fee Related JP5284069B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008315459A JP5284069B2 (ja) 2008-12-11 2008-12-11 メモリシステム及びメモリアクセス方法
PCT/JP2009/070702 WO2010067847A1 (ja) 2008-12-11 2009-12-10 メモリシステム
US13/157,396 US9105358B2 (en) 2008-12-11 2011-06-10 Memory system having an encoding processing circuit for redundant encoding process
US14/789,090 US9547551B2 (en) 2008-12-11 2015-07-01 Memory system having an encoding processing circuit for redundant encoding process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008315459A JP5284069B2 (ja) 2008-12-11 2008-12-11 メモリシステム及びメモリアクセス方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013113239A Division JP5563125B2 (ja) 2013-05-29 2013-05-29 メモリアクセス装置

Publications (2)

Publication Number Publication Date
JP2010140227A true JP2010140227A (ja) 2010-06-24
JP5284069B2 JP5284069B2 (ja) 2013-09-11

Family

ID=42242833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008315459A Expired - Fee Related JP5284069B2 (ja) 2008-12-11 2008-12-11 メモリシステム及びメモリアクセス方法

Country Status (3)

Country Link
US (2) US9105358B2 (ja)
JP (1) JP5284069B2 (ja)
WO (1) WO2010067847A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015520907A (ja) * 2012-05-04 2015-07-23 シーゲート テクノロジー,エルエルシー 半導体ディスクコントローラにおける0−1バランス管理

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5284069B2 (ja) * 2008-12-11 2013-09-11 株式会社東芝 メモリシステム及びメモリアクセス方法
US8972821B2 (en) * 2010-12-23 2015-03-03 Texas Instruments Incorporated Encode and multiplex, register, and decode and error correction circuitry
JP5458064B2 (ja) * 2011-07-14 2014-04-02 株式会社東芝 不揮発性半導体メモリ
DE102015104841A1 (de) * 2015-03-30 2016-10-06 Infineon Technologies Ag Chip und Verfahren zum Detektieren einer Veränderung eines gespeicherten Datenvektors
FR3077655A1 (fr) * 2018-02-05 2019-08-09 Proton World International N.V. Gestion d'une memoire non volatile

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01108655A (ja) * 1987-10-22 1989-04-25 Hitachi Ltd メモリシステムの読出データ誤り検出方式
JPH01295349A (ja) * 1988-05-23 1989-11-29 Seiko Instr Inc 半導体不揮発性メモリー装置
JPH07240098A (ja) * 1994-02-25 1995-09-12 Sony Corp 半導体不揮発性記憶装置
JPH07334991A (ja) * 1994-06-07 1995-12-22 Sony Corp 半導体不揮発性記憶装置
JP2004152366A (ja) * 2002-10-29 2004-05-27 Sony Corp データ記憶方法及びデータ記憶回路

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428630A (en) * 1993-07-01 1995-06-27 Quantum Corp. System and method for verifying the integrity of data written to a memory
US5864569A (en) * 1996-10-18 1999-01-26 Micron Technology, Inc. Method and apparatus for performing error correction on data read from a multistate memory
TW385602B (en) * 1998-05-26 2000-03-21 Koninkl Philips Electronics Nv Transmission system with adaptive channel encoder and decoder
JP3551359B2 (ja) 1999-05-25 2004-08-04 日本ビクター株式会社 変調装置、復調装置
JP3839215B2 (ja) * 2000-03-14 2006-11-01 株式会社日立製作所 誤り検出・訂正方法、計算機システムの主記憶制御装置、及び計算機システム
US7020811B2 (en) * 2001-04-24 2006-03-28 Sun Microsystems, Inc. System and method for verifying error detection/correction logic
US6976194B2 (en) * 2002-06-28 2005-12-13 Sun Microsystems, Inc. Memory/Transmission medium failure handling controller and method
US7353448B1 (en) * 2003-10-21 2008-04-01 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits and systems for transmission error determination
JP2007299436A (ja) 2006-04-27 2007-11-15 Sony Corp 記憶装置の記録方法
US8010865B2 (en) * 2007-01-30 2011-08-30 Via Telecom, Inc. System and method for encoding and decoding in wireless communication systems
US8196016B1 (en) * 2007-12-05 2012-06-05 Aquantia Corporation Trapping set decoding for transmission frames
JP5283989B2 (ja) 2008-06-24 2013-09-04 株式会社東芝 メモリシステム及びメモリアクセス方法
JP5202130B2 (ja) 2008-06-24 2013-06-05 株式会社東芝 キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
JP5284069B2 (ja) * 2008-12-11 2013-09-11 株式会社東芝 メモリシステム及びメモリアクセス方法
US8443256B2 (en) * 2011-01-24 2013-05-14 Xilinx, Inc. Method and apparatus for determining a cyclic redundancy check (CRC) for a data message
JP5269151B2 (ja) * 2011-06-09 2013-08-21 シャープ株式会社 半導体記憶装置
US8812934B2 (en) * 2012-12-12 2014-08-19 HGST Netherlands B.V. Techniques for storing bits in memory cells having stuck-at faults

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01108655A (ja) * 1987-10-22 1989-04-25 Hitachi Ltd メモリシステムの読出データ誤り検出方式
JPH01295349A (ja) * 1988-05-23 1989-11-29 Seiko Instr Inc 半導体不揮発性メモリー装置
JPH07240098A (ja) * 1994-02-25 1995-09-12 Sony Corp 半導体不揮発性記憶装置
JPH07334991A (ja) * 1994-06-07 1995-12-22 Sony Corp 半導体不揮発性記憶装置
JP2004152366A (ja) * 2002-10-29 2004-05-27 Sony Corp データ記憶方法及びデータ記憶回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015520907A (ja) * 2012-05-04 2015-07-23 シーゲート テクノロジー,エルエルシー 半導体ディスクコントローラにおける0−1バランス管理

Also Published As

Publication number Publication date
US9547551B2 (en) 2017-01-17
US9105358B2 (en) 2015-08-11
US20150301892A1 (en) 2015-10-22
JP5284069B2 (ja) 2013-09-11
WO2010067847A1 (ja) 2010-06-17
US20110276858A1 (en) 2011-11-10

Similar Documents

Publication Publication Date Title
US9547551B2 (en) Memory system having an encoding processing circuit for redundant encoding process
US8091010B2 (en) Error correction circuit and method for reducing miscorrection probability and semiconductor memory device including the circuit
US8996958B2 (en) Method, device and computer program product for decoding a codeword
JP5923631B2 (ja) データ反転によってデータ記憶を改良するための装置および方法
US20110213930A1 (en) Multi-level cell memory device and method thereof
JP2008165805A (ja) フラッシュメモリ装置のecc制御器及びそれを含むメモリシステム
EP3201776B1 (en) Short detection and inversion
TW202006544A (zh) 利用錯誤更正碼進行資料位元錯誤的偵測與更正
US10423484B2 (en) Memory controller, memory system, and control method
TWI691834B (zh) 採用連氏錯誤校正碼設計的記憶體儲存裝置及其編碼方法
KR100905712B1 (ko) 에러 정정 코드를 이용한 병렬 비트 테스트 장치
JP2019057752A (ja) メモリシステム
US10191801B2 (en) Error correction code management of write-once memory codes
US11025281B2 (en) Memory system
JP5283989B2 (ja) メモリシステム及びメモリアクセス方法
JP6018508B2 (ja) 不揮発性半導体記憶装置及びそのテスト方法
JP2017107620A (ja) 半導体装置及び不揮発メモリ
JP2008052866A (ja) 半導体記憶装置
CN110716824A (zh) 编码方法及使用所述编码方法的存储器存储装置
JP5563125B2 (ja) メモリアクセス装置
JP2020150515A (ja) 誤り訂正回路及びメモリシステム
KR20070112953A (ko) Ecc 제어회로, 제어방법 및 반도체 메모리 장치
JPH1173796A (ja) 記憶装置および記憶装置の検査方法
JP5492329B2 (ja) メモリアクセス装置
US11204831B2 (en) Memory system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130328

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: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130529

LAPS Cancellation because of no payment of annual fees