(57)【要約】【課題】複数のページ間でパリティに使用するビット数を有効に割り振り、ビットエラー発生率が高いページに対して訂正能力の高い誤り訂正を行える半導体記憶装置及び不揮発性メモリを提供することである。【解決手段】半導体記憶装置３００はメモリコントローラ１００と不揮発性メモリ２００を備える。不揮発性メモリは、複数のページで構成され、データとそのパリティが記憶される。メモリコントローラは、不揮発性メモリへのデータ書込み時は、ホスト機器から入力したデータにパリティを付加して不揮発性メモリに記憶し、データ読出し時は、不揮発性メモリからデータとそのパリティを読み出して誤り箇所を検出し、データ誤り訂正を行う機能を有する。メモリコントローラは、不揮発性メモリに記憶可能な複数のページのうちの所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振る。【選択図】図１
2009282923.tif 000002
【特許請求の範囲】
【請求項１】
複数のページで構成され、データとそのパリティが記憶される不揮発性メモリと、
前記不揮発性メモリへのデータの書込み時は、ページデータにパリティを付加して前記不揮発性メモリに記憶させ、データの読出し時は、前記不揮発性メモリからページデータとそのパリティを読み出し、誤り箇所を検出し、データの誤り訂正を行う機能を備えたメモリコントローラと、を具備し、
前記メモリコントローラは、前記不揮発性メモリに記憶可能な複数のページのうちの所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振ることを特徴とする半導体記憶装置。
【請求項２】
前記ページデータは複数の訂正単位のデータで構成され、
前記メモリコントローラは、前記不揮発性メモリに記憶する前記所定数のページの各ページを構成する複数の訂正単位ごとに付加される各パリティを、各ページのエラー発生率に応じて各ページの訂正単位に割り振ることを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
メモリ領域が、同一長のページデータそれぞれを記憶可能な複数のデータ領域と、この複数のデータ領域それぞれに連接して設けられる、互いに同一長の複数のパリティ領域とを備えて構成される不揮発性メモリであって、
データ記憶可能な前記複数のデータ領域のうちの所定数のデータ領域に対応して前記複数のパリティ領域のうちの所定数のパリティ領域で使用可能な全てのパリティ領域を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振ることを特徴とする不揮発性メモリ。
【請求項４】
前記ページデータは複数の訂正単位のデータで構成され、
前記複数のデータ領域のうちの所定数のデータ領域に対応した各ページを構成する複数の訂正単位ごとに付加される各パリティ領域が、各ページのエラー発生率に応じて各ページの訂正単位に割り振られることを特徴とする請求項３に記載の不揮発性メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に係り、特に不揮発性メモリとメモリコントローラとを備えた半導体記憶装置及び不揮発性メモリに関する。
【背景技術】
【０００２】
メモリカード等への利用により、ＮＡＮＤ型フラッシュメモリの需要が年々高まっている。用途が拡大するにつれ、より大容量かつ高速に動作するメモリカードが求められている。その要求に応えるため、より微細なプロセスを使用したＮＡＮＤ型フラッシュメモリが開発されている。
【０００３】
ＮＡＮＤ型フラッシュメモリはメモリコントローラによりデータの書込み及び読出し時の動作が制御される。ＥＣＣ回路を有するメモリコントローラは、データの書込み時は、ホスト機器から入力したデータにパリティを付加してＮＡＮＤ型フラッシュメモリに記憶させ、データの読出し時は、ＮＡＮＤ型フラッシュメモリからデータをそのパリティと共に読み出し、誤り箇所(アドレス等)を検出し、データの誤り訂正を行う。
【０００４】
ＮＡＮＤ型フラッシュメモリの記憶領域に記憶されるデータは、複数のブロック(消去単位)で構成され、各ブロックのデータは所定数(例えば１２８)のページで構成される。ＮＡＮＤ型フラッシュメモリに対するデータの書込み／読出しの単位は、１ページ分のデータ(ページデータ)または１ページ分のデータを幾つかに同等に分割したデータに対してパリティを付加したデータとされる。
【０００５】
ＥＣＣ回路に入力するデータ長とパリティのビット数はＮＡＮＤ型フラッシュメモリの１ページのビット数に依存する。１ページのビット数はＮＡＮＤ型フラッシュメモリに設定可能な、データ長とそれに付加されるパリティ長との和で規定される。ＮＡＮＤ型フラッシュメモリにおいて、従来は一定のデータ長を有するデータに対して付加されるパリティビット数は一定(固定)であるために、どのページデータ(またはその分割データ)に対してもパリティとして１ページの記憶領域に収まる最大のパリティビット数を付加すると、ページ毎にビットエラー発生率が異なる場合は、ページによってエラー訂正能力が過剰になったり、足りなかったりする。つまり、ページによって、パリティビット数が多過ぎたり、少なかったりする。特に、単体のＮＡＮＤ型フラッシュメモリにページごとに評価試験を行い、エラー発生率の最も悪い(高い)評価値に合わせてパリティ数を決めていると、エラーが起きにくいページには過剰にパリティが付れられることになる。
【０００６】
先行技術としては、多値セルメモリに対する読み出しデータのエラーをＥＣＣコードを利用して訂正するメモリコントローラがある(例えば、特許文献１参照)。
【特許文献１】特開２００３−６７２６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は上記の問題に鑑み、ページ毎にビットエラー発生率が異なる不揮発性メモリにおいて、複数のページ間でパリティに使用するビット数を有効に割り当てることにより、ビットエラー発生率が高いページに対して、より訂正能力の高い誤り訂正を行うことができる半導体記憶装置及び不揮発性メモリを提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
本願発明の一態様によれば、複数のページで構成され、データとそのパリティを記憶する不揮発性メモリと、前記不揮発性メモリへのデータの書込み時は、ページデータにパリティを付加して前記不揮発性メモリに記憶させ、データの読出し時は、前記不揮発性メモリからページデータとそのパリティを読み出し、誤り箇所を検出し、データの誤り訂正を行う機能を備えたメモリコントローラと、を具備し、前記メモリコントローラは、前記不揮発性メモリに記憶可能な複数のページのうちの所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページに割り振ることを特徴とする半導体記憶装置が提供される。
【０００９】
本願発明の他の態様によれば、メモリ領域が、同一長のページデータそれぞれを記憶可能な複数のデータ領域と、この複数のデータ領域それぞれに連接して設けられる、互いに同一長の複数のパリティ領域とを備えて構成される不揮発性メモリであって、データ記憶可能な前記複数のデータ領域のうちの所定数のデータ領域に対応して前記複数のパリティ領域のうちの所定数のパリティ領域で使用可能な全てのパリティ領域を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振ることを特徴とする不揮発性メモリが提供される。
【発明の効果】
【００１０】
本発明によれば、ページ毎にビットエラー発生率が異なる不揮発性メモリにおいて、複数のページ間でパリティに使用するビット数を有効に割り当てることにより、ビットエラー発生率が高いページに対して、より訂正能力の高い誤り訂正を行うことができる不揮発性半導体記憶装置及び不揮発性メモリを提供することが可能となる。
【発明を実施するための最良の形態】
【００１１】
発明の実施の形態について図面を参照して説明する。  
図１１は、本発明の関連技術の半導体記憶装置におけるＮＡＮＤ型フラッシュメモリの記憶領域にページ単位に記憶されたデータの構成を示している。ＮＡＮＤ型フラッシュメモリは例えばページ番号０〜１２７の１２８ページ分のデータを記憶する領域を備えている。１ページ分のデータは、例えば２つのＥＣＣの訂正単位(この単位は書込み時及び読出し時の単位でもある)で構成され、各訂正単位はデータとそのパリティ(斜線にて示す)で構成されている。
【００１２】
ＮＡＮＤ型フラッシュメモリからデータを読み出す際には、メモリコントローラの制御によってＮＡＮＤ型フラッシュメモリからＥＣＣの訂正単位の一組のデータ及びパリティが読み出されてＥＣＣ回路に入力され、誤り検出及び訂正が行われる。
【００１３】
ところで、この例ではＮＡＮＤ型フラッシュメモリからＥＣＣ回路に入力するデータ長とパリティビット数(データ長とパリティ長でＥＣＣの訂正単位を構成する)が、全てのページにおいて同じである。従って、１ページにＥＣＣ訂正単位が２つ(２フレームという)あるとして、１ページで使用できるパリティのビット数がｎビットだとすると、全てのページでＥＣＣ回路に入力するパリティのビット数はｎ／２ビットとなる。
【００１４】
データ長に対するパリティビット数は一定(固定)であるために、１ページに収まる最大のパリティビット数を設定したとき、ページ毎にビットエラー発生率が異なる場合は、ページによってエラー訂正能力が過剰になったり、足りなかったりする問題が生ずる。
【００１５】
そこで、本発明の実施形態においては、ページ毎にビットエラー発生率が異なるＮＡＮＤ型フラッシュメモリにおいて、複数のページ間でパリティのビット数を割り振るようにし、各ページに使用するパリティビット数を、ビットエラー発生率が高いページに対してより多く割り当て、ビットエラー発生率が低いページに対してより少なく割り当てることにより、限られたパリティビット数をより有効に使用し、ビットエラー発生率が高いページに対してはより訂正能力の高い誤り訂正を行えるようにしたものである。
【００１６】
［第１の実施形態］
図１は本発明の第１の実施形態の半導体記憶装置のブロック図を示している。  
図１において、半導体記憶装置３００は、メモリコントローラ１００と、不揮発性メモリであるＮＡＮＤ型フラッシュメモリ２００とを備えている。
【００１７】
ＮＡＮＤ型フラッシュメモリ２００は、複数のページで構成され、データとそのパリティを一組とする訂正単位で記憶する。訂正単位は、書込み単位又は読出し単位と同じであって、１ページ分であってもよいし、１／２ページ分、又は１／４ページ分であってもよい。
【００１８】
メモリコントローラ１００は、ＳＲＡＭバッファ１０１と、ＥＣＣ回路１０２を備えている。  
ＳＲＡＭバッファ１０１は、ホスト機器４００からのデータを一時保持し、所定長(例えば訂正単位)のデータとなったらＮＡＮＤ型フラッシュメモリ２００に書き込むためと、ＮＡＮＤ型フラッシュメモリ２００から読み出したデータを一時保持し、所定長(例えば訂正単位)のデータにつき誤り訂正を行った後にホスト機器４００へ出力するためにある。
【００１９】
ＥＣＣ回路１０２は、ＮＡＮＤ型フラッシュメモリ２００に書き込む前に、ＳＲＡＭバッファ１０１に保持した所定長のデータにつきこのＥＣＣ回路１０２を通して該データの訂正に必要なパリティを付けてからＮＡＮＤ型フラッシュメモリ２００に書き込む。ＮＡＮＤ型フラッシュメモリ２００からデータを読み出すときは、ＳＲＡＭバッファ１０１に一時保持し同時にこのデータをＥＣＣ回路１０２へも入力し、ＥＣＣ回路１０２は取り込んだデータのパリティを用いて該データの誤り箇所を検出し、ＳＲＡＭバッファ１０１内のデータ(ＥＣＣ回路１０２に取り込んだデータと同じもの)を訂正しにいく。
【００２０】
なお、データ書き込み時にＳＲＡＭバッファ１０１へのデータが所定長に満たない時はＮＡＮＤ型フラッシュメモリ２００が足らない分のデータをＳＲＡＭバッファ１０１に書き込んで所定長のデータとした上でＥＣＣ回路１０２へ送り、ＥＣＣ回路１０２でパリティを付加してＮＡＮＤ型フラッシュメモリ２００へ書き込むようにしている。
【００２１】
従って、メモリコントローラ１００内のＳＲＡＭバッファ１０１及びＥＣＣ回路１０２は、ＮＡＮＤ型フラッシュメモリ２００へのデータの書込み時は、ホスト機器４００から入力したデータにパリティを付加してＮＡＮＤ型フラッシュメモリ２００に記憶させ、ＮＡＮＤ型フラッシュメモリ２００からのデータの読出し時は、ＮＡＮＤ型フラッシュメモリ２００からデータとそのパリティを読み出し、誤り箇所を検出し、データの誤り訂正を行う機能を有する。
【００２２】
尚、ここでは、ホスト機器４００と半導体記憶装置３００が別構成の例を示しているが、半導体記憶装置３００はホスト機器４００内に組み込まれた態様であってもよい。
【００２３】
メモリコントローラ１００内のＥＣＣ回路１０２は、データの書き込み時に、ＮＡＮＤ型フラッシュメモリ２００に記憶可能な複数のページのうちの連続する所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページ(このときのページは１つの訂正単位に相当する)に割り当てる。或いは、メモリコントローラ１００内のＥＣＣ回路１０２は、ＮＡＮＤ型フラッシュメモリ２００に記憶する複数のページの各ページを構成する複数の訂正単位ごとに付加される各パリティを、各ページのエラー発生率に応じて各ページの訂正単位に割り当ててもよい。これらについては後で述べる。
【００２４】
図２は図１における読み出し時の動作を説明する図である。ＮＡＮＤ型フラッシュメモリ２００から読み出されたデータはＳＲＡＭバッファ１０１及びＥＣＣ回路１０２へ時間ｔ1で同時に入力され、取り込まれる。ＥＣＣ回路１０２では、データの取り込みが終わった後に時間ｔ2にて取り込んだデータの誤り(エラー)訂正の計算を開始する。この計算では、訂正単位のデータに付加されているパリティを用いてデータの何処が壊れているかを解析する。そして、ＥＣＣ回路１０２は、エラーの解析の計算が終了した時点ｔ3でその解析結果に基づいてＳＲＡＭバッファ１０１内のデータ(このデータはＥＣＣ回路１０２に取り込んだデータと同じものであるのでエラー箇所も同様である)を訂正しにいき、時間ｔ4にてエラー訂正を完了する。
【００２５】
図３はＮＡＮＤ型フラッシュメモリ２００における、消去単位であるブロック領域(以下、単にブロック)と、訂正単位(書込み単位又は読出し単位に同じ)であるページ領域(以下、単にページ)を説明する図である。  
ＮＡＮＤ型フラッシュメモリ２００のメモリ領域は、図３(A)に示すように複数のブロックで構成されている。そして、各ブロックは、図３(B)に示すように複数のページで構成されている。ＮＡＮＤ型フラッシュメモリ２００は、消去単位のブロックでデータを消去可能であるが、ブロックを構成する訂正単位のページでは消去することができない。
【００２６】
１ブロックは、所定数の複数のページ、例えば１ページ分２kbyteのページが１２８ページ(＝２５６kbyte)分のデータ領域で構成されるが、実際にはこのデータ領域に＋αして、余りの領域を設けている。この余り領域は、データ領域を構成する全てのページのそれぞれのページの一定長のデータに対して誤り訂正を行うためにパリティデータを記憶したり、メモリ制御するために制御データを記憶したりするのに用いることが可能である。この実施形態では、この余り領域を図３(C)に示すようにパリティ領域と呼び、パリティビット(パリティ長Ｚbyte)を記憶するためのみに使用する場合について説明する。
【００２７】
図４は訂正単位の構成を示している。訂正単位は、データとそのパリティで構成されている。データは例えば２kbyte，１kbyte(＝１０２４byte)，又は５１２byteなどである。図３(C)に示したように１ページのデータ部分が２kbyteであれば、訂正単位のデータ部分が２kbyte，１kbyte，５１２byteはそれぞれ、ページデータ部分を分割無し、２分割、４分割したものに相当している。なお、現在では、１ページのデータ部分が８kbyteのものも出現している。
【００２８】
図５はデータに付加するパリティのサイズによって訂正可能なデータのビット数を示している。例えば、８bit訂正するのに１０byteのパリティが必要である。  
図６は第１の実施形態の半導体記憶装置における不揮発性メモリの記憶領域における、２つのページ間で使用するパリティのビット数を割り振った状態の一例を説明する図である。
【００２９】
従来は全てのページでパリティに使用するビット数は均等であった。つまり、１ページで使用できるパリティのビット数がｎビットだとすると、１ページに訂正単位が２フレームある場合は、全てのページでＥＣＣ回路１０２に入力するパリティの訂正単位のビット数はｎ／２ビットとなる。
【００３０】
２つの連続するページ間でパリティに使用するビット数を割り振る場合、２つの連続する奇偶ページのうちの偶数ページのパリティビット数ｎ／２からｓビットを奇数ページのパリティとして使用すると、奇数ページのパリティ数はｎ／２＋ｓとなり、従来のｎ／２ビット使用したエラー訂正より訂正能力を大きくできる。その分、偶数ページのパリティビット数はｎ／２−ｓと少なくなる。しかも、２つの連続する奇偶ページ間のパリティビット数は、１ページで使用できるパリティのビット数ｎビットで変わらず一定であることは勿論である。従って、図６の例は、奇数ページのエラー発生率が高い場合に有用となる。
【００３１】
なお、図６の例では、偶数ページと奇数ページとで奇数ページをエラーが起きやすいページとしてパリティビット数を増やすように構成しているが、偶数ページをエラーが起きやすいページとしてパリティビット数を増やすように構成してもよい。
【００３２】
図７は書き込み時に図６の２つの連続する奇偶ページ間でパリティに使用するビット数を割り振る場合のＥＣＣ回路での動作を説明する図である。  
図１のＥＣＣ回路１０２において偶数ページ内の訂正単位のデータａ又はｂについては、図７(A)に示すようにデータａ又はｂがＥＣＣ回路１０２に入力されると、ＥＣＣ回路１０２はそのデータに対してビット数ｎ／２−ｓのパリティを付加して出力する。また、奇数ページ内の訂正単位のデータｃ又はｄについては、図７(B)に示すようにデータｃ又はｄがＥＣＣ回路１０２に入力されると、ＥＣＣ回路１０２はそのデータに対してビット数ｎ／２＋ｓのパリティを付加して出力する。
【００３３】
次に、２つの連続する奇偶ページとして、ページ０とページ１についてＮＡＮＤ型フラッシュメモリ２００に対する書き込み及び読み出しの動作例を説明する。  
書き込み時は、ホスト機器４００からのページ０に対応する訂正単位のデータとして例えば１kbyteの生データ(パリティが付く前のデータ)ａ，ｂをＳＲＡＭバッファ１０１に順次に保持した後、これらのデータａ，ｂをＥＣＣ回路１０２に順次に取り込み、ＥＣＣ回路１０２にてデータａ，ｂにそれぞれパリティ数ｎ／２−ｓを順次に付加した状態で保持する。次に、ページ１に対応する訂正単位のデータｃ，ｄについても同様にしてＳＲＡＭバッファ１０１に順次に保持した後、これらのデータｃ，ｄをＥＣＣ回路１０２に順次に取り込み、ＥＣＣ回路１０２にてデータｃ，ｄにそれぞれパリティ数ｎ／２＋ｓを順次に付加した状態で保持する。これらのＥＣＣ回路１０２で保持したデータを、ＥＣＣ回路１０２で図６のページ０及び１のようにページ０の領域の一部にページ１のパリティビット数の一部(斜線にて示す部分)が組み込まれるような形に組み替えを行った後、ＮＡＮＤ型フラッシュメモリ２００の記憶領域にページ０についてはページ長の半分ずつを順次書き込み、次にページ１についてもページ長の半分ずつを順次書き込む。なお、組み替えの動作はＳＲＡＭバッファ１０１において行うことも可能である。
【００３４】
読み出し時は、ＮＡＮＤ型フラッシュメモリ２００からＥＣＣ回路１０２に図６と同様なページ０についてはページ長の半分ずつ順次読み込み、次にページ１についてもページ長の半分ずつを順次読み込んだ後に、ページ０及びページ１間でパリティビット数の組み替えを行って、図６右側に示したページ０及びページ１のＥＣＣの訂正単位を得、これらの訂正単位のデータをＳＲＡＭバッファ１０１にも書き込み、図２で示したようにＥＣＣ回路１０２内で訂正単位毎にデータの誤り(エラー)を検出して、ＳＲＡＭバッファ１０１に保持しているデータの同じエラー箇所を訂正することになる。
【００３５】
図８はＮＡＮＤ型フラッシュメモリの記憶領域において、２つの連続する奇偶ページ間において、(A)各ページのページ長を４分割して訂正単位とした場合、(B)各ページのページ長を２分割して訂正単位とした場合、(C)各ページのページ長を分割せずにそのページ長ままで訂正単位とした場合、の各場合について２ページ間の上下の訂正単位間でパリティビット数を奇数ページ２ｍ＋１に多く割り当て、偶数ページ２ｍに少なく割り当てた３つの例を示している。図８(A)〜(C)において、ｍは０以上の整数である。勿論、パリティビット数を偶数ページ２ｍに多く割り当て、奇数ページ２ｍ＋１に少なく割り当てて用いる構成も可能である。
【００３６】
図８(A)でページ長をX、データ長をｙ1、パリティ長をｚ1と文字変数で表すと、Ｘ＝(ｙ1＋ｚ1)×４ の関係となる。１ページ内のデータ長を例えば２kbyteとすると、データ長ｙ1は５１２byteである。図８(B)でページ長をX、データ長をｙ2、パリティ長をｚ2と文字変数で表すと、Ｘ＝(ｙ2＋ｚ2)×２ の関係となる。１ページ内のデータ長を２kbyteとすると、データ長ｙ2は１kbyteである。図８(C)でページ長をX、データ長をｙ3、パリティ長をｚ3と文字変数で表すと、Ｘ＝ｙ3＋ｚ3 の関係となる。１ページ内のデータ長を２kbyteとすると、データ長ｙ3は２kbyteである。
【００３７】
第１の実施形態によれば、不揮発性メモリであるＮＡＮＤ型フラッシュメモリの複数のページの内の２ページからなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振ることにより、ビットエラー発生率が高いページに対してより多くのビット数をパリティに割り当て、ビットエラー発生率が低いページに対してより少なく割り当て、限られた所定のパリティビット数をより有効に利用することが可能となる。
【００３８】
［第２の実施形態］
本発明の第２の実施形態の半導体記憶装置の構成は図１と同様である。  
図９は第２の実施形態の半導体記憶装置における不揮発性メモリの記憶領域における３ページ間でパリティに使用するビット数を割り振った状態の一例を説明する図である。１ページで使用できるパリティのビット数がｎビットとして説明する。
【００３９】
３つの連続するページ間でパリティに使用するビット数を割り振る場合、３つの連続するページのうちのページ３ｍ(ｍは０以上の整数)のパリティビット数ｎ／２からｓビット、ページ３ｍ＋１からｔビットをページ３ｍ＋２のパリティとして使用すると、ページ３ｍ＋２のパリティはｎ／２＋ｓ＋ｔビットとなり、従来のｎ／２ビット使用したエラー訂正より訂正能力を大きくできる。その分、ページ３ｍのパリティビット数はｎ／２−ｓとなり、ページ３ｍ＋１のパリティビット数はｎ／２−ｔとなる。しかも、３つの連続するページ間で使用できるパリティビット数は、１ページで使用できるパリティのビット数ｎビットの３倍であり総パリティビット数が変わらず一定であることは勿論である。従って、図９の例は、ページ３ｍ＋２のエラー発生率が高い場合に有用となる。
【００４０】
なお、図９の例では、３つのページ０，１，２のうちの３番目のページ２をエラーが最も起きやすいページとしてパリティビット数を最も増やすように構成しているが、ページ０又は１の１番目又は２番目のページをエラーが最も起きやすいページとしてパリティビット数を最も増やすように構成することも可能である。
【００４１】
図１０は書き込み時に図９の３つの連続するページ間でパリティに使用するビット数を割り振る場合のＥＣＣ回路での動作を説明する図である。  
図１のＥＣＣ回路１０２においてページ３ｍ内の訂正単位のデータａ又はｂについては、図１０(A)に示すようにデータａ又はｂがＥＣＣ回路１０２に入力されると、ＥＣＣ回路１０２はそのデータに対してビット数ｎ／２−ｓのパリティを付加して出力する。また、ページ３ｍ＋１内の訂正単位のデータｃ又はｄについては、図１０(B)に示すようにデータｃ又はｄがＥＣＣ回路１０２に入力されると、ＥＣＣ回路１０２はそのデータに対してビット数ｎ／２−ｔのパリティを付加して出力する。さらに、ページ３ｍ＋２内の訂正単位のデータｅ又はｆについては、図１０(C)に示すようにデータｅ又はｆがＥＣＣ回路１０２に入力されると、ＥＣＣ回路１０２はそのデータに対してビット数ｎ／２＋ｓ＋ｔのパリティを付加して出力する。
【００４２】
次に、３つの連続するページとして、ページ０とページ１とページ２についてＮＡＮＤ型フラッシュメモリ２００に対する書き込み及び読み出しの動作例を説明する。  
書き込み時は、ホスト機器４００からのページ０に対応する訂正単位のデータとして例えば１kbyteの生データ(パリティが付く前のデータ)ａ，ｂをＳＲＡＭバッファ１０１に順次に保持した後、これらのデータａ，ｂをＥＣＣ回路１０２に順次に取り込み、ＥＣＣ回路１０２にてデータａ，ｂにそれぞれパリティ数ｎ／２−ｓを順次に付加した状態で保持する。次に、ページ１に対応する訂正単位のデータｃ，ｄについても同様にしてＳＲＡＭバッファ１０１に順次に保持した後、これらのデータｃ，ｄをＥＣＣ回路１０２に順次に取り込み、ＥＣＣ回路１０２にてデータｃ，ｄにそれぞれパリティ数ｎ／２−ｔを順次に付加した状態で保持する。更に、ページ２に対応する訂正単位のデータｅ，ｆについても同様にしてＳＲＡＭバッファ１０１に順次に保持した後、これらのデータｅ，ｆをＥＣＣ回路１０２に順次に取り込み、ＥＣＣ回路１０２にてデータｅ，ｆにそれぞれパリティ数ｎ／２＋ｓ＋ｔを順次に付加した状態で保持する。これらのＥＣＣ回路１０２で保持したデータを、ＥＣＣ回路１０２で図９のページ０，１及び２のようにページ０の領域の一部にページ２のパリティビット数の一部(斜線にて示す部分)が組み込まれ、かつページ１の領域の一部にページ２のパリティビット数の一部(斜線にて示す部分)が組み込まれような形に組み替えを行った後、ＮＡＮＤ型フラッシュメモリ２００の記憶領域にページ０についてはページ長の半分ずつを順次書き込み、次にページ１についてもページ長の半分ずつを順次書き込み、更にページ２についてもページ長の半分ずつを順次書き込む。なお、組み替えの動作はＳＲＡＭバッファ１０１において行うことも可能である。
【００４３】
読み出し時は、ＮＡＮＤ型フラッシュメモリ２００からＥＣＣ回路１０２に図９と同様なページ０についてはページ長の半分ずつ順次読み込み、次にページ１についてもページ長の半分ずつを順次読み込み、更にページ２についてもページ長の半分ずつを順次読み込んだ後に、ページ０，１及び２間でパリティビット数の組み替えを行って、図９右側に示したページ０，１及び２のＥＣＣの訂正単位を得、これらの訂正単位のデータをＳＲＡＭバッファ１０１にも書き込み、図２で示したようにＥＣＣ回路１０２内で訂正単位毎にデータの誤り(エラー)を検出して、ＳＲＡＭバッファ１０１に保持しているデータの同じエラー箇所を訂正することになる。
【００４４】
第２の実施形態によれば、不揮発性メモリであるＮＡＮＤ型フラッシュメモリの複数のページの内の３ページからなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振ることにより、ビットエラー発生率が高いページに対してより多くのビット数をパリティに割り当て、ビットエラー発生率が低いページに対してより少なく割り当て、限られた所定のパリティビット数をより有効に利用することが可能となる。
【００４５】
尚、以上述べた実施形態では、図６や図９に示されるように連続する複数のページ(例えば２ページ、３ページ)からなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振るものであったが、本発明はこれに限定されることなく、連続することなく飛び飛びに存在する複数のページからなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振る場合に対しても応用することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明の第１の実施形態の半導体記憶装置のブロック図。
【図２】図１における読み出し時の動作を説明する図。
【図３】ＮＡＮＤ型フラッシュメモリにおける、消去単位であるブロック領域と、訂正単位であるページ領域を説明する図。
【図４】訂正単位の構成を示す図。
【図５】データに付加するパリティのサイズによって訂正可能なデータのビット数を示す図。
【図６】第１の実施形態の半導体記憶装置における不揮発性メモリの記憶領域におけるページ間でパリティに使用するビット数を割り振った状態の一例を説明する図。
【図７】書き込み時に図６の２つの連続する奇偶ページ間でパリティに使用するビット数を割り振る場合のＥＣＣ回路での動作を説明する図。
【図８】第１の実施形態におけるＮＡＮＤ型フラッシュメモリの記憶領域において、２つの連続する奇偶ページ間で各ページの一定ページ長を複数分割して訂正単位とした場合の３つの例を示す図。
【図９】本発明の第２の実施形態の半導体記憶装置における不揮発性メモリの記憶領域における３ページ間でパリティに使用するビット数を割り振った状態の一例を説明する図。
【図１０】書き込み時に図９の３つの連続するページ間でパリティに使用するビット数を割り振る場合のＥＣＣ回路での動作を説明する図。
【図１１】本発明の関連技術の半導体記憶装置におけるＮＡＮＤ型フラッシュメモリの記憶領域にページ単位に記憶されたデータの構成を示す図。
【符号の説明】
【００４７】
１００…メモリコントローラ
１０１…ＳＲＡＭバッファ
１０２…ＥＣＣ回路(誤り訂正回路)
２００…ＮＡＮＤ型フラッシュメモリ(不揮発性メモリ)
３００…半導体記憶装置
４００…ホスト機器
【図１】
2009282923.tif 000003
【図２】
2009282923.tif 000004
【図３】
2009282923.tif 000005
【図４】
2009282923.tif 000006
【図５】
2009282923.tif 000007
【図６】
2009282923.tif 000008
【図７】
2009282923.tif 000009
【図８】
2009282923.tif 000010
【図９】
2009282923.tif 000011
【図１０】
2009282923.tif 000012
【図１１】
2009282923.tif 000013