JP2009282923A - 半導体記憶装置及び不揮発性メモリ - Google Patents
半導体記憶装置及び不揮発性メモリ Download PDFInfo
- Publication number
- JP2009282923A JP2009282923A JP2008137059A JP2008137059A JP2009282923A JP 2009282923 A JP2009282923 A JP 2009282923A JP 2008137059 A JP2008137059 A JP 2008137059A JP 2008137059 A JP2008137059 A JP 2008137059A JP 2009282923 A JP2009282923 A JP 2009282923A
- Authority
- JP
- Japan
- Prior art keywords
- data
- page
- parity
- memory
- pages
- 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
Links
Images
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】複数のページ間でパリティに使用するビット数を有効に割り振り、ビットエラー発生率が高いページに対して訂正能力の高い誤り訂正を行える半導体記憶装置及び不揮発性メモリを提供することである。
【解決手段】半導体記憶装置300はメモリコントローラ100と不揮発性メモリ200を備える。不揮発性メモリは、複数のページで構成され、データとそのパリティが記憶される。メモリコントローラは、不揮発性メモリへのデータ書込み時は、ホスト機器から入力したデータにパリティを付加して不揮発性メモリに記憶し、データ読出し時は、不揮発性メモリからデータとそのパリティを読み出して誤り箇所を検出し、データ誤り訂正を行う機能を有する。メモリコントローラは、不揮発性メモリに記憶可能な複数のページのうちの所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振る。
【選択図】図1
【解決手段】半導体記憶装置300はメモリコントローラ100と不揮発性メモリ200を備える。不揮発性メモリは、複数のページで構成され、データとそのパリティが記憶される。メモリコントローラは、不揮発性メモリへのデータ書込み時は、ホスト機器から入力したデータにパリティを付加して不揮発性メモリに記憶し、データ読出し時は、不揮発性メモリからデータとそのパリティを読み出して誤り箇所を検出し、データ誤り訂正を行う機能を有する。メモリコントローラは、不揮発性メモリに記憶可能な複数のページのうちの所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振る。
【選択図】図1
Description
本発明は、半導体記憶装置に係り、特に不揮発性メモリとメモリコントローラとを備えた半導体記憶装置及び不揮発性メモリに関する。
メモリカード等への利用により、NAND型フラッシュメモリの需要が年々高まっている。用途が拡大するにつれ、より大容量かつ高速に動作するメモリカードが求められている。その要求に応えるため、より微細なプロセスを使用したNAND型フラッシュメモリが開発されている。
NAND型フラッシュメモリはメモリコントローラによりデータの書込み及び読出し時の動作が制御される。ECC回路を有するメモリコントローラは、データの書込み時は、ホスト機器から入力したデータにパリティを付加してNAND型フラッシュメモリに記憶させ、データの読出し時は、NAND型フラッシュメモリからデータをそのパリティと共に読み出し、誤り箇所(アドレス等)を検出し、データの誤り訂正を行う。
NAND型フラッシュメモリの記憶領域に記憶されるデータは、複数のブロック(消去単位)で構成され、各ブロックのデータは所定数(例えば128)のページで構成される。NAND型フラッシュメモリに対するデータの書込み/読出しの単位は、1ページ分のデータ(ページデータ)または1ページ分のデータを幾つかに同等に分割したデータに対してパリティを付加したデータとされる。
ECC回路に入力するデータ長とパリティのビット数はNAND型フラッシュメモリの1ページのビット数に依存する。1ページのビット数はNAND型フラッシュメモリに設定可能な、データ長とそれに付加されるパリティ長との和で規定される。NAND型フラッシュメモリにおいて、従来は一定のデータ長を有するデータに対して付加されるパリティビット数は一定(固定)であるために、どのページデータ(またはその分割データ)に対してもパリティとして1ページの記憶領域に収まる最大のパリティビット数を付加すると、ページ毎にビットエラー発生率が異なる場合は、ページによってエラー訂正能力が過剰になったり、足りなかったりする。つまり、ページによって、パリティビット数が多過ぎたり、少なかったりする。特に、単体のNAND型フラッシュメモリにページごとに評価試験を行い、エラー発生率の最も悪い(高い)評価値に合わせてパリティ数を決めていると、エラーが起きにくいページには過剰にパリティが付れられることになる。
先行技術としては、多値セルメモリに対する読み出しデータのエラーをECCコードを利用して訂正するメモリコントローラがある(例えば、特許文献1参照)。
特開2003−67260号公報
本発明は上記の問題に鑑み、ページ毎にビットエラー発生率が異なる不揮発性メモリにおいて、複数のページ間でパリティに使用するビット数を有効に割り当てることにより、ビットエラー発生率が高いページに対して、より訂正能力の高い誤り訂正を行うことができる半導体記憶装置及び不揮発性メモリを提供することを目的とするものである。
本願発明の一態様によれば、複数のページで構成され、データとそのパリティを記憶する不揮発性メモリと、前記不揮発性メモリへのデータの書込み時は、ページデータにパリティを付加して前記不揮発性メモリに記憶させ、データの読出し時は、前記不揮発性メモリからページデータとそのパリティを読み出し、誤り箇所を検出し、データの誤り訂正を行う機能を備えたメモリコントローラと、を具備し、前記メモリコントローラは、前記不揮発性メモリに記憶可能な複数のページのうちの所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページに割り振ることを特徴とする半導体記憶装置が提供される。
本願発明の他の態様によれば、メモリ領域が、同一長のページデータそれぞれを記憶可能な複数のデータ領域と、この複数のデータ領域それぞれに連接して設けられる、互いに同一長の複数のパリティ領域とを備えて構成される不揮発性メモリであって、データ記憶可能な前記複数のデータ領域のうちの所定数のデータ領域に対応して前記複数のパリティ領域のうちの所定数のパリティ領域で使用可能な全てのパリティ領域を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振ることを特徴とする不揮発性メモリが提供される。
本発明によれば、ページ毎にビットエラー発生率が異なる不揮発性メモリにおいて、複数のページ間でパリティに使用するビット数を有効に割り当てることにより、ビットエラー発生率が高いページに対して、より訂正能力の高い誤り訂正を行うことができる不揮発性半導体記憶装置及び不揮発性メモリを提供することが可能となる。
発明の実施の形態について図面を参照して説明する。
図11は、本発明の関連技術の半導体記憶装置におけるNAND型フラッシュメモリの記憶領域にページ単位に記憶されたデータの構成を示している。NAND型フラッシュメモリは例えばページ番号0〜127の128ページ分のデータを記憶する領域を備えている。1ページ分のデータは、例えば2つのECCの訂正単位(この単位は書込み時及び読出し時の単位でもある)で構成され、各訂正単位はデータとそのパリティ(斜線にて示す)で構成されている。
図11は、本発明の関連技術の半導体記憶装置におけるNAND型フラッシュメモリの記憶領域にページ単位に記憶されたデータの構成を示している。NAND型フラッシュメモリは例えばページ番号0〜127の128ページ分のデータを記憶する領域を備えている。1ページ分のデータは、例えば2つのECCの訂正単位(この単位は書込み時及び読出し時の単位でもある)で構成され、各訂正単位はデータとそのパリティ(斜線にて示す)で構成されている。
NAND型フラッシュメモリからデータを読み出す際には、メモリコントローラの制御によってNAND型フラッシュメモリからECCの訂正単位の一組のデータ及びパリティが読み出されてECC回路に入力され、誤り検出及び訂正が行われる。
ところで、この例ではNAND型フラッシュメモリからECC回路に入力するデータ長とパリティビット数(データ長とパリティ長でECCの訂正単位を構成する)が、全てのページにおいて同じである。従って、1ページにECC訂正単位が2つ(2フレームという)あるとして、1ページで使用できるパリティのビット数がnビットだとすると、全てのページでECC回路に入力するパリティのビット数はn/2ビットとなる。
データ長に対するパリティビット数は一定(固定)であるために、1ページに収まる最大のパリティビット数を設定したとき、ページ毎にビットエラー発生率が異なる場合は、ページによってエラー訂正能力が過剰になったり、足りなかったりする問題が生ずる。
そこで、本発明の実施形態においては、ページ毎にビットエラー発生率が異なるNAND型フラッシュメモリにおいて、複数のページ間でパリティのビット数を割り振るようにし、各ページに使用するパリティビット数を、ビットエラー発生率が高いページに対してより多く割り当て、ビットエラー発生率が低いページに対してより少なく割り当てることにより、限られたパリティビット数をより有効に使用し、ビットエラー発生率が高いページに対してはより訂正能力の高い誤り訂正を行えるようにしたものである。
[第1の実施形態]
図1は本発明の第1の実施形態の半導体記憶装置のブロック図を示している。
図1において、半導体記憶装置300は、メモリコントローラ100と、不揮発性メモリであるNAND型フラッシュメモリ200とを備えている。
図1は本発明の第1の実施形態の半導体記憶装置のブロック図を示している。
図1において、半導体記憶装置300は、メモリコントローラ100と、不揮発性メモリであるNAND型フラッシュメモリ200とを備えている。
NAND型フラッシュメモリ200は、複数のページで構成され、データとそのパリティを一組とする訂正単位で記憶する。訂正単位は、書込み単位又は読出し単位と同じであって、1ページ分であってもよいし、1/2ページ分、又は1/4ページ分であってもよい。
メモリコントローラ100は、SRAMバッファ101と、ECC回路102を備えている。
SRAMバッファ101は、ホスト機器400からのデータを一時保持し、所定長(例えば訂正単位)のデータとなったらNAND型フラッシュメモリ200に書き込むためと、NAND型フラッシュメモリ200から読み出したデータを一時保持し、所定長(例えば訂正単位)のデータにつき誤り訂正を行った後にホスト機器400へ出力するためにある。
SRAMバッファ101は、ホスト機器400からのデータを一時保持し、所定長(例えば訂正単位)のデータとなったらNAND型フラッシュメモリ200に書き込むためと、NAND型フラッシュメモリ200から読み出したデータを一時保持し、所定長(例えば訂正単位)のデータにつき誤り訂正を行った後にホスト機器400へ出力するためにある。
ECC回路102は、NAND型フラッシュメモリ200に書き込む前に、SRAMバッファ101に保持した所定長のデータにつきこのECC回路102を通して該データの訂正に必要なパリティを付けてからNAND型フラッシュメモリ200に書き込む。NAND型フラッシュメモリ200からデータを読み出すときは、SRAMバッファ101に一時保持し同時にこのデータをECC回路102へも入力し、ECC回路102は取り込んだデータのパリティを用いて該データの誤り箇所を検出し、SRAMバッファ101内のデータ(ECC回路102に取り込んだデータと同じもの)を訂正しにいく。
なお、データ書き込み時にSRAMバッファ101へのデータが所定長に満たない時はNAND型フラッシュメモリ200が足らない分のデータをSRAMバッファ101に書き込んで所定長のデータとした上でECC回路102へ送り、ECC回路102でパリティを付加してNAND型フラッシュメモリ200へ書き込むようにしている。
従って、メモリコントローラ100内のSRAMバッファ101及びECC回路102は、NAND型フラッシュメモリ200へのデータの書込み時は、ホスト機器400から入力したデータにパリティを付加してNAND型フラッシュメモリ200に記憶させ、NAND型フラッシュメモリ200からのデータの読出し時は、NAND型フラッシュメモリ200からデータとそのパリティを読み出し、誤り箇所を検出し、データの誤り訂正を行う機能を有する。
尚、ここでは、ホスト機器400と半導体記憶装置300が別構成の例を示しているが、半導体記憶装置300はホスト機器400内に組み込まれた態様であってもよい。
メモリコントローラ100内のECC回路102は、データの書き込み時に、NAND型フラッシュメモリ200に記憶可能な複数のページのうちの連続する所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページ(このときのページは1つの訂正単位に相当する)に割り当てる。或いは、メモリコントローラ100内のECC回路102は、NAND型フラッシュメモリ200に記憶する複数のページの各ページを構成する複数の訂正単位ごとに付加される各パリティを、各ページのエラー発生率に応じて各ページの訂正単位に割り当ててもよい。これらについては後で述べる。
図2は図1における読み出し時の動作を説明する図である。NAND型フラッシュメモリ200から読み出されたデータはSRAMバッファ101及びECC回路102へ時間t1で同時に入力され、取り込まれる。ECC回路102では、データの取り込みが終わった後に時間t2にて取り込んだデータの誤り(エラー)訂正の計算を開始する。この計算では、訂正単位のデータに付加されているパリティを用いてデータの何処が壊れているかを解析する。そして、ECC回路102は、エラーの解析の計算が終了した時点t3でその解析結果に基づいてSRAMバッファ101内のデータ(このデータはECC回路102に取り込んだデータと同じものであるのでエラー箇所も同様である)を訂正しにいき、時間t4にてエラー訂正を完了する。
図3はNAND型フラッシュメモリ200における、消去単位であるブロック領域(以下、単にブロック)と、訂正単位(書込み単位又は読出し単位に同じ)であるページ領域(以下、単にページ)を説明する図である。
NAND型フラッシュメモリ200のメモリ領域は、図3(A)に示すように複数のブロックで構成されている。そして、各ブロックは、図3(B)に示すように複数のページで構成されている。NAND型フラッシュメモリ200は、消去単位のブロックでデータを消去可能であるが、ブロックを構成する訂正単位のページでは消去することができない。
NAND型フラッシュメモリ200のメモリ領域は、図3(A)に示すように複数のブロックで構成されている。そして、各ブロックは、図3(B)に示すように複数のページで構成されている。NAND型フラッシュメモリ200は、消去単位のブロックでデータを消去可能であるが、ブロックを構成する訂正単位のページでは消去することができない。
1ブロックは、所定数の複数のページ、例えば1ページ分2kbyteのページが128ページ(=256kbyte)分のデータ領域で構成されるが、実際にはこのデータ領域に+αして、余りの領域を設けている。この余り領域は、データ領域を構成する全てのページのそれぞれのページの一定長のデータに対して誤り訂正を行うためにパリティデータを記憶したり、メモリ制御するために制御データを記憶したりするのに用いることが可能である。この実施形態では、この余り領域を図3(C)に示すようにパリティ領域と呼び、パリティビット(パリティ長Zbyte)を記憶するためのみに使用する場合について説明する。
図4は訂正単位の構成を示している。訂正単位は、データとそのパリティで構成されている。データは例えば2kbyte,1kbyte(=1024byte),又は512byteなどである。図3(C)に示したように1ページのデータ部分が2kbyteであれば、訂正単位のデータ部分が2kbyte,1kbyte,512byteはそれぞれ、ページデータ部分を分割無し、2分割、4分割したものに相当している。なお、現在では、1ページのデータ部分が8kbyteのものも出現している。
図5はデータに付加するパリティのサイズによって訂正可能なデータのビット数を示している。例えば、8bit訂正するのに10byteのパリティが必要である。
図6は第1の実施形態の半導体記憶装置における不揮発性メモリの記憶領域における、2つのページ間で使用するパリティのビット数を割り振った状態の一例を説明する図である。
図6は第1の実施形態の半導体記憶装置における不揮発性メモリの記憶領域における、2つのページ間で使用するパリティのビット数を割り振った状態の一例を説明する図である。
従来は全てのページでパリティに使用するビット数は均等であった。つまり、1ページで使用できるパリティのビット数がnビットだとすると、1ページに訂正単位が2フレームある場合は、全てのページでECC回路102に入力するパリティの訂正単位のビット数はn/2ビットとなる。
2つの連続するページ間でパリティに使用するビット数を割り振る場合、2つの連続する奇偶ページのうちの偶数ページのパリティビット数n/2からsビットを奇数ページのパリティとして使用すると、奇数ページのパリティ数はn/2+sとなり、従来のn/2ビット使用したエラー訂正より訂正能力を大きくできる。その分、偶数ページのパリティビット数はn/2−sと少なくなる。しかも、2つの連続する奇偶ページ間のパリティビット数は、1ページで使用できるパリティのビット数nビットで変わらず一定であることは勿論である。従って、図6の例は、奇数ページのエラー発生率が高い場合に有用となる。
なお、図6の例では、偶数ページと奇数ページとで奇数ページをエラーが起きやすいページとしてパリティビット数を増やすように構成しているが、偶数ページをエラーが起きやすいページとしてパリティビット数を増やすように構成してもよい。
図7は書き込み時に図6の2つの連続する奇偶ページ間でパリティに使用するビット数を割り振る場合のECC回路での動作を説明する図である。
図1のECC回路102において偶数ページ内の訂正単位のデータa又はbについては、図7(A)に示すようにデータa又はbがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2−sのパリティを付加して出力する。また、奇数ページ内の訂正単位のデータc又はdについては、図7(B)に示すようにデータc又はdがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2+sのパリティを付加して出力する。
図1のECC回路102において偶数ページ内の訂正単位のデータa又はbについては、図7(A)に示すようにデータa又はbがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2−sのパリティを付加して出力する。また、奇数ページ内の訂正単位のデータc又はdについては、図7(B)に示すようにデータc又はdがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2+sのパリティを付加して出力する。
次に、2つの連続する奇偶ページとして、ページ0とページ1についてNAND型フラッシュメモリ200に対する書き込み及び読み出しの動作例を説明する。
書き込み時は、ホスト機器400からのページ0に対応する訂正単位のデータとして例えば1kbyteの生データ(パリティが付く前のデータ)a,bをSRAMバッファ101に順次に保持した後、これらのデータa,bをECC回路102に順次に取り込み、ECC回路102にてデータa,bにそれぞれパリティ数n/2−sを順次に付加した状態で保持する。次に、ページ1に対応する訂正単位のデータc,dについても同様にしてSRAMバッファ101に順次に保持した後、これらのデータc,dをECC回路102に順次に取り込み、ECC回路102にてデータc,dにそれぞれパリティ数n/2+sを順次に付加した状態で保持する。これらのECC回路102で保持したデータを、ECC回路102で図6のページ0及び1のようにページ0の領域の一部にページ1のパリティビット数の一部(斜線にて示す部分)が組み込まれるような形に組み替えを行った後、NAND型フラッシュメモリ200の記憶領域にページ0についてはページ長の半分ずつを順次書き込み、次にページ1についてもページ長の半分ずつを順次書き込む。なお、組み替えの動作はSRAMバッファ101において行うことも可能である。
書き込み時は、ホスト機器400からのページ0に対応する訂正単位のデータとして例えば1kbyteの生データ(パリティが付く前のデータ)a,bをSRAMバッファ101に順次に保持した後、これらのデータa,bをECC回路102に順次に取り込み、ECC回路102にてデータa,bにそれぞれパリティ数n/2−sを順次に付加した状態で保持する。次に、ページ1に対応する訂正単位のデータc,dについても同様にしてSRAMバッファ101に順次に保持した後、これらのデータc,dをECC回路102に順次に取り込み、ECC回路102にてデータc,dにそれぞれパリティ数n/2+sを順次に付加した状態で保持する。これらのECC回路102で保持したデータを、ECC回路102で図6のページ0及び1のようにページ0の領域の一部にページ1のパリティビット数の一部(斜線にて示す部分)が組み込まれるような形に組み替えを行った後、NAND型フラッシュメモリ200の記憶領域にページ0についてはページ長の半分ずつを順次書き込み、次にページ1についてもページ長の半分ずつを順次書き込む。なお、組み替えの動作はSRAMバッファ101において行うことも可能である。
読み出し時は、NAND型フラッシュメモリ200からECC回路102に図6と同様なページ0についてはページ長の半分ずつ順次読み込み、次にページ1についてもページ長の半分ずつを順次読み込んだ後に、ページ0及びページ1間でパリティビット数の組み替えを行って、図6右側に示したページ0及びページ1のECCの訂正単位を得、これらの訂正単位のデータをSRAMバッファ101にも書き込み、図2で示したようにECC回路102内で訂正単位毎にデータの誤り(エラー)を検出して、SRAMバッファ101に保持しているデータの同じエラー箇所を訂正することになる。
図8はNAND型フラッシュメモリの記憶領域において、2つの連続する奇偶ページ間において、(A)各ページのページ長を4分割して訂正単位とした場合、(B)各ページのページ長を2分割して訂正単位とした場合、(C)各ページのページ長を分割せずにそのページ長ままで訂正単位とした場合、の各場合について2ページ間の上下の訂正単位間でパリティビット数を奇数ページ2m+1に多く割り当て、偶数ページ2mに少なく割り当てた3つの例を示している。図8(A)〜(C)において、mは0以上の整数である。勿論、パリティビット数を偶数ページ2mに多く割り当て、奇数ページ2m+1に少なく割り当てて用いる構成も可能である。
図8(A)でページ長をX、データ長をy1、パリティ長をz1と文字変数で表すと、X=(y1+z1)×4 の関係となる。1ページ内のデータ長を例えば2kbyteとすると、データ長y1は512byteである。図8(B)でページ長をX、データ長をy2、パリティ長をz2と文字変数で表すと、X=(y2+z2)×2 の関係となる。1ページ内のデータ長を2kbyteとすると、データ長y2は1kbyteである。図8(C)でページ長をX、データ長をy3、パリティ長をz3と文字変数で表すと、X=y3+z3 の関係となる。1ページ内のデータ長を2kbyteとすると、データ長y3は2kbyteである。
第1の実施形態によれば、不揮発性メモリであるNAND型フラッシュメモリの複数のページの内の2ページからなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振ることにより、ビットエラー発生率が高いページに対してより多くのビット数をパリティに割り当て、ビットエラー発生率が低いページに対してより少なく割り当て、限られた所定のパリティビット数をより有効に利用することが可能となる。
[第2の実施形態]
本発明の第2の実施形態の半導体記憶装置の構成は図1と同様である。
図9は第2の実施形態の半導体記憶装置における不揮発性メモリの記憶領域における3ページ間でパリティに使用するビット数を割り振った状態の一例を説明する図である。1ページで使用できるパリティのビット数がnビットとして説明する。
本発明の第2の実施形態の半導体記憶装置の構成は図1と同様である。
図9は第2の実施形態の半導体記憶装置における不揮発性メモリの記憶領域における3ページ間でパリティに使用するビット数を割り振った状態の一例を説明する図である。1ページで使用できるパリティのビット数がnビットとして説明する。
3つの連続するページ間でパリティに使用するビット数を割り振る場合、3つの連続するページのうちのページ3m(mは0以上の整数)のパリティビット数n/2からsビット、ページ3m+1からtビットをページ3m+2のパリティとして使用すると、ページ3m+2のパリティはn/2+s+tビットとなり、従来のn/2ビット使用したエラー訂正より訂正能力を大きくできる。その分、ページ3mのパリティビット数はn/2−sとなり、ページ3m+1のパリティビット数はn/2−tとなる。しかも、3つの連続するページ間で使用できるパリティビット数は、1ページで使用できるパリティのビット数nビットの3倍であり総パリティビット数が変わらず一定であることは勿論である。従って、図9の例は、ページ3m+2のエラー発生率が高い場合に有用となる。
なお、図9の例では、3つのページ0,1,2のうちの3番目のページ2をエラーが最も起きやすいページとしてパリティビット数を最も増やすように構成しているが、ページ0又は1の1番目又は2番目のページをエラーが最も起きやすいページとしてパリティビット数を最も増やすように構成することも可能である。
図10は書き込み時に図9の3つの連続するページ間でパリティに使用するビット数を割り振る場合のECC回路での動作を説明する図である。
図1のECC回路102においてページ3m内の訂正単位のデータa又はbについては、図10(A)に示すようにデータa又はbがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2−sのパリティを付加して出力する。また、ページ3m+1内の訂正単位のデータc又はdについては、図10(B)に示すようにデータc又はdがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2−tのパリティを付加して出力する。さらに、ページ3m+2内の訂正単位のデータe又はfについては、図10(C)に示すようにデータe又はfがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2+s+tのパリティを付加して出力する。
図1のECC回路102においてページ3m内の訂正単位のデータa又はbについては、図10(A)に示すようにデータa又はbがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2−sのパリティを付加して出力する。また、ページ3m+1内の訂正単位のデータc又はdについては、図10(B)に示すようにデータc又はdがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2−tのパリティを付加して出力する。さらに、ページ3m+2内の訂正単位のデータe又はfについては、図10(C)に示すようにデータe又はfがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2+s+tのパリティを付加して出力する。
次に、3つの連続するページとして、ページ0とページ1とページ2についてNAND型フラッシュメモリ200に対する書き込み及び読み出しの動作例を説明する。
書き込み時は、ホスト機器400からのページ0に対応する訂正単位のデータとして例えば1kbyteの生データ(パリティが付く前のデータ)a,bをSRAMバッファ101に順次に保持した後、これらのデータa,bをECC回路102に順次に取り込み、ECC回路102にてデータa,bにそれぞれパリティ数n/2−sを順次に付加した状態で保持する。次に、ページ1に対応する訂正単位のデータc,dについても同様にしてSRAMバッファ101に順次に保持した後、これらのデータc,dをECC回路102に順次に取り込み、ECC回路102にてデータc,dにそれぞれパリティ数n/2−tを順次に付加した状態で保持する。更に、ページ2に対応する訂正単位のデータe,fについても同様にしてSRAMバッファ101に順次に保持した後、これらのデータe,fをECC回路102に順次に取り込み、ECC回路102にてデータe,fにそれぞれパリティ数n/2+s+tを順次に付加した状態で保持する。これらのECC回路102で保持したデータを、ECC回路102で図9のページ0,1及び2のようにページ0の領域の一部にページ2のパリティビット数の一部(斜線にて示す部分)が組み込まれ、かつページ1の領域の一部にページ2のパリティビット数の一部(斜線にて示す部分)が組み込まれような形に組み替えを行った後、NAND型フラッシュメモリ200の記憶領域にページ0についてはページ長の半分ずつを順次書き込み、次にページ1についてもページ長の半分ずつを順次書き込み、更にページ2についてもページ長の半分ずつを順次書き込む。なお、組み替えの動作はSRAMバッファ101において行うことも可能である。
書き込み時は、ホスト機器400からのページ0に対応する訂正単位のデータとして例えば1kbyteの生データ(パリティが付く前のデータ)a,bをSRAMバッファ101に順次に保持した後、これらのデータa,bをECC回路102に順次に取り込み、ECC回路102にてデータa,bにそれぞれパリティ数n/2−sを順次に付加した状態で保持する。次に、ページ1に対応する訂正単位のデータc,dについても同様にしてSRAMバッファ101に順次に保持した後、これらのデータc,dをECC回路102に順次に取り込み、ECC回路102にてデータc,dにそれぞれパリティ数n/2−tを順次に付加した状態で保持する。更に、ページ2に対応する訂正単位のデータe,fについても同様にしてSRAMバッファ101に順次に保持した後、これらのデータe,fをECC回路102に順次に取り込み、ECC回路102にてデータe,fにそれぞれパリティ数n/2+s+tを順次に付加した状態で保持する。これらのECC回路102で保持したデータを、ECC回路102で図9のページ0,1及び2のようにページ0の領域の一部にページ2のパリティビット数の一部(斜線にて示す部分)が組み込まれ、かつページ1の領域の一部にページ2のパリティビット数の一部(斜線にて示す部分)が組み込まれような形に組み替えを行った後、NAND型フラッシュメモリ200の記憶領域にページ0についてはページ長の半分ずつを順次書き込み、次にページ1についてもページ長の半分ずつを順次書き込み、更にページ2についてもページ長の半分ずつを順次書き込む。なお、組み替えの動作はSRAMバッファ101において行うことも可能である。
読み出し時は、NAND型フラッシュメモリ200からECC回路102に図9と同様なページ0についてはページ長の半分ずつ順次読み込み、次にページ1についてもページ長の半分ずつを順次読み込み、更にページ2についてもページ長の半分ずつを順次読み込んだ後に、ページ0,1及び2間でパリティビット数の組み替えを行って、図9右側に示したページ0,1及び2のECCの訂正単位を得、これらの訂正単位のデータをSRAMバッファ101にも書き込み、図2で示したようにECC回路102内で訂正単位毎にデータの誤り(エラー)を検出して、SRAMバッファ101に保持しているデータの同じエラー箇所を訂正することになる。
第2の実施形態によれば、不揮発性メモリであるNAND型フラッシュメモリの複数のページの内の3ページからなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振ることにより、ビットエラー発生率が高いページに対してより多くのビット数をパリティに割り当て、ビットエラー発生率が低いページに対してより少なく割り当て、限られた所定のパリティビット数をより有効に利用することが可能となる。
尚、以上述べた実施形態では、図6や図9に示されるように連続する複数のページ(例えば2ページ、3ページ)からなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振るものであったが、本発明はこれに限定されることなく、連続することなく飛び飛びに存在する複数のページからなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振る場合に対しても応用することができる。
100…メモリコントローラ
101…SRAMバッファ
102…ECC回路(誤り訂正回路)
200…NAND型フラッシュメモリ(不揮発性メモリ)
300…半導体記憶装置
400…ホスト機器
101…SRAMバッファ
102…ECC回路(誤り訂正回路)
200…NAND型フラッシュメモリ(不揮発性メモリ)
300…半導体記憶装置
400…ホスト機器
Claims (4)
- 複数のページで構成され、データとそのパリティが記憶される不揮発性メモリと、
前記不揮発性メモリへのデータの書込み時は、ページデータにパリティを付加して前記不揮発性メモリに記憶させ、データの読出し時は、前記不揮発性メモリからページデータとそのパリティを読み出し、誤り箇所を検出し、データの誤り訂正を行う機能を備えたメモリコントローラと、を具備し、
前記メモリコントローラは、前記不揮発性メモリに記憶可能な複数のページのうちの所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振ることを特徴とする半導体記憶装置。 - 前記ページデータは複数の訂正単位のデータで構成され、
前記メモリコントローラは、前記不揮発性メモリに記憶する前記所定数のページの各ページを構成する複数の訂正単位ごとに付加される各パリティを、各ページのエラー発生率に応じて各ページの訂正単位に割り振ることを特徴とする請求項1に記載の半導体記憶装置。 - メモリ領域が、同一長のページデータそれぞれを記憶可能な複数のデータ領域と、この複数のデータ領域それぞれに連接して設けられる、互いに同一長の複数のパリティ領域とを備えて構成される不揮発性メモリであって、
データ記憶可能な前記複数のデータ領域のうちの所定数のデータ領域に対応して前記複数のパリティ領域のうちの所定数のパリティ領域で使用可能な全てのパリティ領域を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振ることを特徴とする不揮発性メモリ。 - 前記ページデータは複数の訂正単位のデータで構成され、
前記複数のデータ領域のうちの所定数のデータ領域に対応した各ページを構成する複数の訂正単位ごとに付加される各パリティ領域が、各ページのエラー発生率に応じて各ページの訂正単位に割り振られることを特徴とする請求項3に記載の不揮発性メモリ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008137059A JP2009282923A (ja) | 2008-05-26 | 2008-05-26 | 半導体記憶装置及び不揮発性メモリ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008137059A JP2009282923A (ja) | 2008-05-26 | 2008-05-26 | 半導体記憶装置及び不揮発性メモリ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009282923A true JP2009282923A (ja) | 2009-12-03 |
Family
ID=41453279
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008137059A Pending JP2009282923A (ja) | 2008-05-26 | 2008-05-26 | 半導体記憶装置及び不揮発性メモリ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2009282923A (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012094132A (ja) * | 2010-10-01 | 2012-05-17 | Siglead Inc | 不揮発性半導体メモリ装置とデータ誤り訂正方法 |
| WO2012098897A1 (ja) | 2011-01-20 | 2012-07-26 | パナソニック株式会社 | 不揮発性ラッチ回路および不揮発性フリップフロップ回路 |
| JP2012146129A (ja) * | 2011-01-12 | 2012-08-02 | Mega Chips Corp | メモリアクセス制御装置 |
| CN103827833A (zh) * | 2011-07-22 | 2014-05-28 | 桑迪士克科技股份有限公司 | 存储数据的系统和方法 |
| GB2511202A (en) * | 2013-02-11 | 2014-08-27 | Advanced Risc Mach Ltd | An apparatus and method for controlling access to a memory device |
| JP2014522075A (ja) * | 2011-08-12 | 2014-08-28 | マイクロン テクノロジー, インク. | メモリデバイスおよびメモリデバイスのための構成方法 |
| KR20140133593A (ko) * | 2012-03-06 | 2014-11-19 | 마이크론 테크놀로지, 인크. | 에러 정정 코드 조직화를 포함한 장치들 및 방법들 |
| US8898545B2 (en) | 2012-05-18 | 2014-11-25 | Hitachi, Ltd. | Semiconductor storage device and control method of nonvolatile memory |
| US12056007B2 (en) | 2021-08-17 | 2024-08-06 | Samsung Electronics Co., Ltd. | Storage devices and methods of operating storage devices |
-
2008
- 2008-05-26 JP JP2008137059A patent/JP2009282923A/ja active Pending
Cited By (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012094132A (ja) * | 2010-10-01 | 2012-05-17 | Siglead Inc | 不揮発性半導体メモリ装置とデータ誤り訂正方法 |
| JP2012146129A (ja) * | 2011-01-12 | 2012-08-02 | Mega Chips Corp | メモリアクセス制御装置 |
| WO2012098897A1 (ja) | 2011-01-20 | 2012-07-26 | パナソニック株式会社 | 不揮発性ラッチ回路および不揮発性フリップフロップ回路 |
| JP2014523595A (ja) * | 2011-07-22 | 2014-09-11 | サンディスク テクノロジィース インコーポレイテッド | データを蓄積するシステムおよび方法 |
| CN103827833A (zh) * | 2011-07-22 | 2014-05-28 | 桑迪士克科技股份有限公司 | 存储数据的系统和方法 |
| CN103827833B (zh) * | 2011-07-22 | 2017-08-08 | 桑迪士克科技有限责任公司 | 存储数据的系统和方法 |
| US10891187B2 (en) | 2011-08-12 | 2021-01-12 | Micron Technology, Inc. | Memory devices having differently configured blocks of memory cells |
| US9594676B2 (en) | 2011-08-12 | 2017-03-14 | Micron Technology, Inc. | Configuring and reconfiguring blocks of memory cells to store user data and ECC data |
| US10891188B2 (en) | 2011-08-12 | 2021-01-12 | Micron Technology, Inc. | Memory devices having differently configured blocks of memory cells |
| US10409673B2 (en) | 2011-08-12 | 2019-09-10 | Micron Technology, Inc. | Memory devices having differently configured blocks of memory cells |
| JP2014522075A (ja) * | 2011-08-12 | 2014-08-28 | マイクロン テクノロジー, インク. | メモリデバイスおよびメモリデバイスのための構成方法 |
| KR101574033B1 (ko) | 2011-08-12 | 2015-12-02 | 마이크론 테크놀로지, 인크. | 메모리 디바이스들 및 메모리 디바이스를 위한 구성 방법들 |
| US9983928B2 (en) | 2012-03-06 | 2018-05-29 | Micron Technology, Inc. | Apparatuses and methods including error correction code organization |
| JP2016219092A (ja) * | 2012-03-06 | 2016-12-22 | マイクロン テクノロジー, インク. | 誤り訂正符号の編成を含む装置および方法 |
| JP2015509640A (ja) * | 2012-03-06 | 2015-03-30 | マイクロン テクノロジー, インク. | 誤り訂正符号の編成を含む装置および方法 |
| KR20140133593A (ko) * | 2012-03-06 | 2014-11-19 | 마이크론 테크놀로지, 인크. | 에러 정정 코드 조직화를 포함한 장치들 및 방법들 |
| KR102230584B1 (ko) * | 2012-03-06 | 2021-03-23 | 마이크론 테크놀로지, 인크. | 에러 정정 코드 조직화를 포함한 장치들 및 방법들 |
| KR20210033062A (ko) * | 2012-03-06 | 2021-03-25 | 마이크론 테크놀로지, 인크. | 에러 정정 코드 조직화를 포함한 장치들 및 방법들 |
| KR102403171B1 (ko) * | 2012-03-06 | 2022-05-30 | 마이크론 테크놀로지, 인크. | 에러 정정 코드 조직화를 포함한 장치들 및 방법들 |
| US8898545B2 (en) | 2012-05-18 | 2014-11-25 | Hitachi, Ltd. | Semiconductor storage device and control method of nonvolatile memory |
| US8918700B2 (en) | 2013-02-11 | 2014-12-23 | Arm Limited | Apparatus and method for controlling access to a memory device |
| GB2511202A (en) * | 2013-02-11 | 2014-08-27 | Advanced Risc Mach Ltd | An apparatus and method for controlling access to a memory device |
| GB2511202B (en) * | 2013-02-11 | 2021-03-24 | Advanced Risc Mach Ltd | An apparatus and method for controlling access to a memory device |
| US12056007B2 (en) | 2021-08-17 | 2024-08-06 | Samsung Electronics Co., Ltd. | Storage devices and methods of operating storage devices |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2009282923A (ja) | 半導体記憶装置及び不揮発性メモリ | |
| KR100546348B1 (ko) | 플래시 메모리 시스템 및 그 데이터 저장 방법 | |
| US8555143B2 (en) | Flash memory controller and the method thereof | |
| KR101371516B1 (ko) | 플래시 메모리 장치의 동작 방법 및 그것을 포함하는 메모리 시스템 | |
| JP4734033B2 (ja) | 記憶装置 | |
| US20080052446A1 (en) | Logical super block mapping for NAND flash memory | |
| US20150019933A1 (en) | Memory controller, storage device, and memory control method | |
| US20190065361A1 (en) | Method for writing data into flash memory module and associated flash memory controller and electronic device | |
| JPWO2007000862A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 | |
| JP4171749B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
| JP4697146B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4641338B2 (ja) | 不揮発性半導体記憶装置及びシステム | |
| JP2001250386A (ja) | 半導体メモリ | |
| JP2007316779A (ja) | 不揮発性メモリシステム | |
| JP4710918B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| US8566562B2 (en) | Method for sequentially writing data with an offset to a non-volatile memory | |
| JPWO2010013437A1 (ja) | 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム | |
| JP4235646B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
| JP4636005B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4636046B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4818453B1 (ja) | 電子機器およびデータ読み出し方法 | |
| JP4640366B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4696500B2 (ja) | メモリ管理方法および装置 | |
| JP2011060415A (ja) | 不揮発性半導体記憶装置及びデータ記憶システム | |
| JP4332132B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |