JP2007249508A - メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 - Google Patents

メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 Download PDF

Info

Publication number
JP2007249508A
JP2007249508A JP2006071019A JP2006071019A JP2007249508A JP 2007249508 A JP2007249508 A JP 2007249508A JP 2006071019 A JP2006071019 A JP 2006071019A JP 2006071019 A JP2006071019 A JP 2006071019A JP 2007249508 A JP2007249508 A JP 2007249508A
Authority
JP
Japan
Prior art keywords
block
management block
management
blocks
data
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
JP2006071019A
Other languages
English (en)
Other versions
JP4866114B2 (ja
Inventor
Juichi Shiyouraiden
重一 小来田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006071019A priority Critical patent/JP4866114B2/ja
Publication of JP2007249508A publication Critical patent/JP2007249508A/ja
Application granted granted Critical
Publication of JP4866114B2 publication Critical patent/JP4866114B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】エラー情報領域の1つの書込み単位であるページの容量に対して、エラー情報を書込む際に、ページの容量を有効に利用し、ページ内に空白の部分が生じないようにする。また、外的要因により電源遮断が発生した場合でも、エラー情報の書換えの前にエラー情報領域に存在した直前のエラー情報が失われてないようにし、エラー情報を復旧できるようにする。
【解決手段】不揮発性メモリの管理領域201に、不良ブロックのアドレス情報を格納する管理ブロックMB−1〜MB−mを設け、不良ブロックを除いてこれらを1つずつ巡回的に使用する。管理ブロックに格納された登録情報を更新する際は、新たな管理ブロックに書き込みを行い、書き込みが成功したことを確認してから元の管理ブロックのデータを消去する。
【選択図】図5

Description

本発明は、書換え可能な不揮発性メモリをデータ記憶媒体として有する半導体メモリカード等の不揮発性記憶装置と、これに内蔵されるメモリコントローラと、さらに、アクセス装置を構成要素に加えた不揮発性記憶システム、及びメモリコントローラにおけるメモリ制御方法とに関するものである。
書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心に広く用いられており、この半導体メモリカードを使った不揮発性記憶装置は、デジタルスチルカメラやパーソナルコンピュータ等と組み合わせた不揮発性記憶システムとして、その需要が広まっている。現在様々な種類の半導体メモリカードが存在している。
メモリカードは、データを記憶するフラッシュメモリと、それを制御するメモリコントローラLSIとから構成されている。メモリコントローラLSIは、デジタルスチルカメラ等のアクセス装置の読み書き指示に対応して、フラッシュメモリへのデータの読み書きを制御するデバイスである。フラッシュメモリは、代表的なものにNANDタイプやANDタイプなどがある。
これらのメモリチップの中には、データの消去単位となるブロックが複数存在しており、さらにひとつのブロック内には、データの書き込み単位となるページが複数存在している。即ち、書込み単位であるページのサイズは、消去単位であるブロックのサイズよりも小さい。また、フラッシュメモリは、書込みと消去を繰り返すにつれて読み出しや書込みが不能となった不良ブロックが増加するので、発生した不良ブロックを回避しつつフラッシュメモリの使用を続ける必要がある。不良ブロックを回避する方法としては、特許文献1に開示されたような方法がある。
この方法は、まずエラーが発生すると元のエラー情報に新しいエラーの情報を加えてエラー情報を更新する。次に、エラー情報を格納しているエラー情報領域を一旦消去してから、更新されたエラー情報をエラー情報領域に書き込む。このようにエラー情報の書換えを行なって不良ブロックの使用を回避している。
特許第3609739号
書込み単位であるページにページの容量より小さいデータを書き込むと、そのページには、データが書き込まれていない空白の部分が生じる。この空白の部分を有効利用するには、ページの容量を満たすまで、空白の部分にデータを書き足せばよい。しかし実際には、フラッシュメモリの特性を考慮して同一ページへデータを書き足せる回数には上限が決められている。
特許文献1のような構成では、エラー情報領域がフラッシュメモリ上に1箇所しか確保されていないので、エラー情報領域のエラー情報の更新の手順は、まず既にあるエラー情報を消去してから、新しく更新されたエラー情報を書き込むようになっている。このような更新の手順では、消去もしくは書き込みの途中でエラーが発生したり、外的要因により電源遮断が発生したりすると、消去前にエラー情報領域に存在した直前のエラー情報が既に失われてしまっているので、エラー情報を復旧することができなくなってしまう。
上述のような電源遮断によるエラー情報の消失を防ぐために、エラー情報領域のデータを消失することなくエラー情報を書き足す方法が考えられる。しかし、エラー情報領域の1つの書込み単位であるページの容量に対して、エラー情報が非常に小さいため上限の回数までエラー情報を書き足してもエラー情報はページの容量を満たさないのでデータが書き込まれていない空白の部分が生じてしまう。このように、フラッシュメモリの容量に含まれるエラー情報領域の容量は有効に利用されていない。
本発明は、エラー情報の格納の際に不揮発性メモリの容量を有効に利用することと、エラー情報の更新の際にエラーや電源遮断が発生しても既に書き込まれている直前のエラー情報を失わないようにすることとを目的としている。
この課題を解決するため、本発明のメモリコントローラは、データの消去単位であるブロックを複数有し、前記ブロックはデータを保持する複数のデータブロックと、前記複数のブロック中の不良ブロックのアドレスを登録する複数の管理ブロックとを含む不揮発性メモリに対してデータの書き込み及び読み出しを制御するメモリコントローラであって、
前記複数の管理ブロック中の不良ブロックとしてアドレスが登録されたブロックを除いて1つずつ巡回的に管理ブロックを取得して、新たに発生した不良ブロックのアドレスを当該取得した管理ブロックに登録する制御部を有することを特徴とするものである。
この課題を解決するため、本発明の不揮発性記憶装置は、データの消去単位であるブロックを複数有し、前記ブロックはデータを保持する複数のデータブロックと、前記複数のブロック中の不良ブロックのアドレスを登録する複数の管理ブロックとを含む不揮発性メモリと、前記不揮発性メモリに対してデータの書き込み及び読み出しを制御するメモリコントローラと、を具備する不揮発性記憶装置であって、前記メモリコントローラは、前記複数の管理ブロック中の不良ブロックとしてアドレスが登録されたブロックを除いて1つずつ巡回的に管理ブロックを取得して、新たに発生した不良ブロックのアドレスを当該取得した管理ブロックに登録する制御部を有することを特徴とするものである。
この課題を解決するため、本発明の不揮発性記憶システムは、データの消去単位であるブロックを複数有し、前記ブロックはデータを保持する複数のデータブロックと、前記複数のブロック中の不良ブロックのアドレスを登録する複数の管理ブロックとを含む不揮発性メモリと、前記不揮発性メモリに対してデータの書き込み及び読み出しを制御するメモリコントローラと、前記メモリコントローラに対して、前記不揮発性メモリへのデータの書き込みと読み出しとを指示するアクセス装置と、を具備する不揮発性記憶システムであって、前記メモリコントローラは、前記複数の管理ブロック中の不良ブロックとしてアドレスが登録されたブロックを除いて1つずつ巡回的に管理ブロックを取得して、新たに発生した不良ブロックのアドレスを当該取得した管理ブロックに登録する制御部を有することを特徴とするものである。
ここで前記制御部は、不良ブロックのアドレスを前記複数の管理ブロックのうちの1つの管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスを、巡回的に取得した別の管理ブロックに登録するようにしてもよい。
ここで前記制御部は、不良ブロックのアドレスを前記管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスの登録を、巡回的に取得した別の管理ブロックに対して最大リトライ回数まで行なうようにしてもよい。
ここで前記制御部は、前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、それぞれの管理ブロックにおいて登録されている不良ブロックの数を調べ、その数が最大の管理ブロックを最新のデータが存在する管理ブロックであると判断するようにしてもよい。
ここで前記制御部は、前記管理ブロックに不良ブロックのアドレスを登録する際に不良ブロック数も書き込み、前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、前記管理ブロックに書き込まれている前記不良ブロック数から、最新のデータが存在する管理ブロックを判断するようにしてもよい。
ここで前記制御部は、前記管理ブロックのデータを更新する際、前記巡回的に取得した別の管理ブロックに書き込みを行い、書き込んだデータにエラーがないことを確認した後、元の管理ブロックのデータを消去するようにしてもよい。
ここで前記制御部は、前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、不良ブロックの発生とは無関係に更新する必要のある第1の情報の更新に伴って、別の管理ブロックに前記更新された第1の情報が書き込まれるときに更新されるカウンタの値が最新で、かつ不良ブロックが登録されている数が最大のものを最新の管理ブロックであると判断するようにしてもよい。
ここで前記第1の情報は、論理アドレスと前記不揮発性メモリの物理アドレスとの対応関係を示す情報としてもよい。
ここで前記制御部は、最新のデータが存在する管理ブロックを検索する際、少なくとも前記不良ブロックのアドレス情報、前記第1の情報、及び前記カウンタとから計算されるチェックコードを検査し、前記チェックコードが不正である管理ブロックを除外して最新のデータが存在する管理ブロックを検索するようにしてもよい。
ここで前記制御部は、前記管理ブロックのデータの書き込み単位であるページの数以下の複数の領域に前記管理ブロックを分割し、1つの管理ブロックについて前記複数の領域に順次データの書き込みを行い、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用するようにしてもよい。
ここで前記制御部は、前記管理ブロックはデータの書き込み単位であるページの数以下の複数の領域に前記管理ブロックを分割し、1つの管理ブロックについて前記複数の領域に順次データの書き込みを行い、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用し、前記管理ブロックが分割されてできた前記複数の領域のうち、最初の領域にデータを書き込む際は、前記不良ブロックのアドレスと前記第1の情報とを書き込み、前記第1の情報を更新する際は、前記更新された第1の情報を次の領域に書き込むようにしてもよい。
ここで前記不揮発性メモリは、フラッシュメモリとしてもよい。
この課題を解決するため、本発明のメモリ制御方法は、データの消去単位であるブロックを複数有し、前記ブロックはデータを保持する複数のデータブロックと、前記複数のブロック中の不良ブロックのアドレスを登録する複数の管理ブロックとを含む不揮発性メモリに対してデータの書き込み及び読み出しを制御するメモリ制御方法であって、前記複数の管理ブロック中の不良ブロックとしてアドレスが登録されたブロックを除いて1つずつ巡回的に管理ブロックを取得し、新たに発生した不良ブロックのアドレスを当該取得した管理ブロックに登録することを特徴とするものである。
ここで不良ブロックのアドレスを前記複数の管理ブロックのうちの1つの管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスを、巡回的に取得した別の管理ブロックに登録するようにしてもよい。
ここで不良ブロックのアドレスを前記管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスの登録を、巡回的に取得した別の管理ブロックに対して最大リトライ回数まで行なうようにしてもよい。
ここで前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、それぞれの管理ブロックにおいて登録されている不良ブロックの数を調べ、その数が最大の管理ブロックを最新のデータが存在する管理ブロックであると判断するようにしてもよい。
ここで前記管理ブロックに不良ブロックのアドレスを登録する際に不良ブロック数も書き込み、前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、前記管理ブロックに書き込まれている前記不良ブロック数から、最新のデータが存在する管理ブロックを判断するようにしてもよい。
ここで前記管理ブロックのデータを更新する際、前記巡回的に取得した別の管理ブロックに書き込みをし、書き込んだデータにエラーがないことを確認した後、元の管理ブロックのデータを消去するようにしてもよい。
ここで前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、不良ブロックの発生とは無関係に更新する必要のある第1の情報の更新に伴って別の管理ブロックに前記更新された第1の情報が書き込まれるときに更新されるカウンタの値が最新で、かつ不良ブロックが登録されている数が最大のものを最新の管理ブロックであると判断するようにしてもよい。
ここで前記第1の情報は、論理アドレスと前記不揮発性メモリの物理アドレスとの対応関係を示す情報としてもよい。
ここで最新のデータが存在する管理ブロックを検索する際、少なくとも前記不良ブロックのアドレス情報、前記第1の情報、及び前記カウンタとから計算されるチェックコードを検査し、前記チェックコードが不正である管理ブロックを除外して最新のデータが存在する管理ブロックを検索するようにしてもよい。
ここで前記管理ブロックのデータの書き込み単位であるページの数以下の複数の領域に前記管理ブロックを分割し、1つの管理ブロックについて前記複数の領域に順次データを書き込み、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用するようにしてもよい。
ここで前記管理ブロックのデータの書き込み単位であるページの数以下の複数の領域に前記管理ブロックを分割し、1つの管理ブロックについて前記複数の領域に順次データを書き込み、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用し、前記管理ブロックが分割されてできた前記複数の領域のうち、最初の領域にデータを書き込む際は、前記不良ブロックのアドレスと前記第1の情報とを書き込み、前記第1の情報を更新する際は、前記更新された第1の情報を次の領域に書き込むようにしてもよい。
ここで前記不揮発性メモリは、フラッシュメモリとしてもよい。
以上のような本発明によれば、不良ブロックのアドレスなどのエラー情報を更新する際、更新された不良ブロックのアドレス情報をメモリ上の別の場所に書き込んでエラー情報を蓄積するので、書き込み単位である1つのページへデータを書き足す回数に上限があるフラッシュメモリでもメモリ容量を有効に利用できる。さらに、管理ブロックの情報を更新する際に、エラーや電源遮断が発生しても既に管理ブロックに書き込まれている直前のエラー情報が失われることがないという、優れたメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法を実現できる。
次に本発明の実施の形態について説明する。図1は、本実施の形態における不揮発性記憶システムを示した構成図である。不揮発性記憶システム100は、データの書込み及び読出しを指示するアクセス装置101と、不揮発性記憶装置102とを含んでいる。不揮発性記憶装置102は、アクセス装置101から送られたユーザデータやユーザデータの管理に用いるデータを格納するフラッシュメモリで構成された不揮発性メモリ110と、アクセス装置101の指示に従って不揮発性メモリ110に対するデータの書込み及び読出しを制御するメモリコントローラ103とを備えている。メモリコントローラ103は、バッファ105とROM108とRAM107とCPU106とを有する制御部と、ホストI/F104と、不揮発性メモリI/F109とを備えている。
メモリコントローラ103において、ホストI/F104はアクセス装置101との間でユーザデータや各種のコマンドを送受信するものであり、不揮発性メモリI/F109は不揮発性メモリ110との間でユーザデータや管理のためのデータを送受信するものである。ROM108はメモリコントローラの処理を実行するためのプログラムを格納しており、RAM107はROM108に格納されたプログラムを実行する際に用いられる。バッファ105はアクセス装置101及び不揮発性メモリ110からのデータを一時的に蓄積したりRAM107を補ったりするものである。CPU106は、RAM107を用いて、ROM108に格納されたプログラムを実行し、不揮発性メモリI/F109を介して、不揮発性メモリ110にデータの書き込みと読み出し及び消去を実現する。
図2は、本実施の形態における不揮発性メモリ110の構成図である。不揮発性メモリ110は複数のブロックで構成されたフラッシュメモリである。各ブロックはデータの消去単位である。例えば、メモリ容量が1Gバイトのフラッシュメモリにおいて、データの消去単位が512kバイトであれば、ブロックは2048個存在することになる。本図は、この複数のブロックを管理領域201とデータ領域202に分けて使用することと、両領域はそれぞれ複数のブロックを含むこととを示している。管理領域201のブロックを管理ブロックといい、データ領域202のブロックをデータブロックという。本図では、管理領域201はMB−1からMB−mまでのブロックを含み、データ領域202はDB−1からDB−nまでのブロックを含んでいる。各ブロックは複数のページで構成されており、各ページはデータの書込み単位である。本図に示すように、ブロックMB−2はMP−1からMP−sまでのページを含んでいる。各ブロックは管理領域201、データ領域202を問わず同様の構成である。ページの容量を2kバイトとすれば、1つのブロックにはページが256個存在することになる。
各ページには1回もしくは複数回のデータの書き足しが可能であるが、1つのページのデータだけを消去するということはできない。つまり、データの消去では、消去単位であるブロック内のデータを一度に消去しなければならない。従って先の例でいえば256ページ分のデータを一度に消去することになる。しかし、一旦消去した後は再びページ単位で1回もしくは複数回の書き込みが可能となる。
図3は、データブロックDB−i(i=1〜n)の構成図である。先述の管理ブロックと同様に、データブロックはDP−1からDP−sまでの複数のページで構成されており、各ページはアクセス装置101から送られたユーザデータを格納するデータ部301と、そのユーザデータに対応した論理アドレスを格納する冗長部302とで構成される。つまり、メモリコントローラ103が、1つのページをデータ部301と冗長部302に区別して各ページを使用する。
図4は、管理ブロックMB−j(j=1〜m)の構成図である。管理ブロックも先述のとおりMP−1からMP−sまでの複数のページで構成されており、その先頭ページであるMP−1には、論理アドレスとデータブロックの物理アドレスとの対応を表す第1の情報であるアドレステーブルと、不揮発性メモリ110の書き込みや消去においてエラーが発生し、以後使用できなくなったブロックのアドレスを示す不良ブロックアドレス情報とが格納されている。尚、不良ブロックアドレス情報は、管理領域201とデータ領域202の両方の不良ブロックのアドレスを含んでいる。さらにMP−1には、不良ブロックアドレス情報に含まれる不良ブロックの数を示す不良ブロック数と、カウンタ及びチェックコードも当該先頭ページに格納されている。尚チェックコードは、ページに書き込まれたデータのエラーを検証するためにあり、MP−1からMP−sまでの各ページにはそのページのデータに対するチェックコードが格納されている。MP−1以外のページにはアドレステーブルとチェックコードが格納されている。尚、カウンタは、アドレステーブルが更新された後、更新されたアドレステーブルを別の管理ブロックの先頭ページへの書き込むときにインクリメントされる。カウンタは、複数の管理ブロックの中で最も新しいデータを保持する管理ブロックであることを示す値を一意に特定できるだけのビット数を有する。また、チェックコードは、ページ内のデータの正当性をチェックするためのもので各ページに格納されている。その例として、CRC(Cyclic Redundancy Check)が挙げられるが、誤り訂正、検出が可能なRS(Reed−Solomon)符号等のECCコードも使用可能である。
以下に、別の管理ブロックに使用を変更する場合の手順を説明する。図4において管理ブロックは、まず初めに、初期状態の先述の各情報を先頭ページMP−1に格納している。続いて、データ領域202のデータが書き換えられて論理アドレスと物理アドレスの対応が変化するとアドレステーブルが更新され、更新された最新のアドレステーブルとチェックコードは次ページのMP−2に書き込まれる。以降アドレステーブルの更新が行なわれると、最新のアドレステーブルが順次次ページに書き込まれる。このように、先頭ページ以外のページにはアドレステーブルとチェックコードの情報しか格納しないようにすると、アドレステーブル更新時の処理を高速化することができる。また、先頭ページに不良ブロック数を格納しているが、これにより、不良ブロックアドレス情報を参照して不良ブロックを数える手間を省くことができ、処理を高速化することができる。
図5は本実施の形態における管理領域201の管理ブロックの使用方法である。図中先頭の管理ブロックからMB−1、MB−2、MB−3と順に番号が付されており、先頭の管理ブロックであるMB−1から順に1つずつ巡回的に管理ブロックが使用されるので、同時に複数の管理ブロックにデータが書込まれることはない。本図では、不良ブロックであるMB−3の管理ブロックをとばして、MB−2の次にMB−4を使用している様子を表している。このように、管理領域には複数の管理ブロックが存在し、それぞれが先述の図4に示した構成となっている。現在使用している管理ブロックから別の管理ブロックに使用を変更するきっかけは2つあり、1つはアドレステーブルの更新で、もう1つは不良ブロックアドレス情報の更新である。
1つ目のきっかけであるアドレステーブルの更新において、更新されたアドレステーブルは、先述のとおり管理ブロック内で順次新しいページに書き込まれるが、全てのページにデータが書き込まれていて次に書き込むページがないときは、別の管理ブロックの先頭ページに先述した他のデータと共に書き込まれる。つまり、別の管理ブロックの先頭ページには、更新されたアドレステーブルが書き込まれ、カウンタの値には直前の管理ブロックの値からインクリメントされた値が書き込まれる。その他の不良ブロックアドレス情報と不良ブロック数は直前の管理ブロックのデータと同じものが書き込まれて、チェックコードには書き込まれたデータに対応したものが書き込まれる。このようにして別の新しい管理ブロックの先頭ページが使用され、次にアドレステーブルが更新されると、先頭ページの次のページに更新されたアドレステーブルが書き込まれる。
2つ目のきっかけである不良ブロックアドレス情報が更新される場合について説明する。不良ブロックが発生し、その不良ブロックのアドレスが不良ブロックアドレス情報に新たに加えられ、不良ブロックアドレス情報が更新されると、管理ブロックの先頭ページの不良ブロックアドレス情報を書換えなければならない。そのとき、当該先頭ページのデータは消去しないで、別の新しい管理ブロックの先頭ページに更新された不良ブロックアドレス情報を書き込む。この先頭ページには不良ブロックアドレス情報に合わせて更新された不良ブロック数が書き込まれる。その他のアドレステーブルとカウンタは直前の管理ブロックの先頭ページのデータと同じものである。また、チェックコードには書き込まれたデータに対応したものが書き込まれる。
別の管理ブロックに使用を変更する際、アドレステーブルの更新に伴う場合はカウンタの値が更新され、不良ブロックアドレス情報の更新に伴う場合は不良ブロック数が更新される。これによると、カウンタの値が同一で不良ブロック数が異なる管理ブロックや、その反対で不良ブロック数が同一でカウンタの値が異なる管理ブロックが発生する。しかし、カウンタと不良ブロック数の両方を用いれば、現在使われている最新の管理ブロックを特定することができる。
続いて、本実施の形態の不揮発性記憶システムにおけるデータ書込み処理について説明する。図6は、不揮発性記憶装置102の管理ブロックの検索処理を表すフロー図である。アクセス装置101から不揮発性記憶装置102に電力が供給されると、不揮発性記憶装置102のメモリコントローラ103はアドレス情報の取得や、メモリの消去などの初期化処理を行なう。この初期化処理に続いて、図6に示すように最新のデータが存在する管理ブロックの検索を開始する。
まず、先頭の管理ブロックを対象ブロックとする(S601)。次に対象ブロックの先頭ページのデータを読み出す(S602)。そして、対象ブロックが消去済みのブロックであるか否かを判断する(S603)。消去済みのブロックでない場合は、読み出したデータが正しいものであるか否かを判断するために、チェックコードが正しいかどうかを調べる(S604)。チェックコードが正しければ、次に、不良ブロック数がそれまでに検索した管理ブロックの中で最大であるか否かを判断する(S605)。次に、不良ブロック数が最大であれば、カウンタがそれまでに検索した管理ブロックの中で最新の値であるか否かを判断する(S606)。最新の値であれば、対象ブロックを最新の管理ブロックであるとする(S607)。そして、対象ブロックが最終の管理ブロックであるか否かを判断する(S608)。最終の管理ブロックでなければ、次の管理ブロックを対象ブロックとし(S609)、S602に戻って検索処理を継続する。最終の管理ブロックであれば検索処理を終了する。このようにすれば、検索処理の終了時に保持している最新の管理ブロックに最新のデータが存在することになり、そのデータをRAMまたはバッファ上に保持して不揮発性記憶装置の管理ブロックの検索処理を終える。尚、S603で消去済みの管理ブロックであった場合、S604でチェックコードが不正であった場合、S605で不良ブロック数が最大でなかった場合、S606でカウンタが最新でなかった場合は、当該管理ブロックは最新のデータを持つ管理ブロックではないので、S608の処理に移る。
図7は、不揮発性メモリ110にデータを書き込む際の処理を示すフロー図である。不揮発性メモリにデータが書き込まれると(S701)、書き込まれた当該データにエラーがあるかどうかを判断する(S702)。エラーがあれば当該データブロックのアドレスを不良ブロックアドレス情報に登録する(S703)。正しく書き込まれていて、エラーがなければアドレステーブルを更新して(S704)、当該処理を終了する。
S703で行なわれる、データブロックのアドレスを不良ブロックアドレス情報に登録する手順を図8のフロー図を用いて説明する。データブロックに書き込んだデータにエラーがあると、メモリコントローラ103は、バッファ上もしくはRAM上に、最新のデータが存在する管理ブロックの最新のアドレステーブルを格納しているページからアドレステーブルを読み出す(S801)。そして、その管理ブロックの先頭ページにある、不良ブロックアドレス情報、不良ブロック数、カウンタの最新の情報を読み出す(S802)。続いて、S802で読み出した不良ブロックアドレス情報に新たな不良ブロックのアドレスを追加し(S803)、S802で読み出した不良ブロック数をインクリメントする(S804)。しかる後に、新たな管理ブロックを取得する(S805)。新たな管理ブロックは管理領域201内で巡回的に取得するが、不良ブロックアドレス情報に登録された不良ブロックを除外して取得する。次に、新たな管理ブロックの先頭ページにS801で読み出したアドレステーブルとS802で読み出したカウンタと、更新された不良ブロックアドレス情報と、不良ブロックアドレスと、これらデータに対応したチェックコードとを書き込む(S806)。そして、エラーがないかどうかを判断する(S807)。エラーがなければ、不良ブロックアドレス情報の登録は成功であり、これに続いて直前の管理ブロックのデータを消去する。エラーがあれば、今回の新たな管理ブロックの取得が、管理ブロック取得に対する最大リトライ回数を超えるか否かを判断する(S808)。最大リトライ回数は予め定められており、S807でエラーが検出され新たな管理ブロックの取得ができなかった場合に、新たな管理ブロックの取得を試みる回数の上限を示している。超えない場合は再びS803に戻って、S807でエラーが確認されたデータブロックのアドレスを不良ブロックアドレスとして不良ブロックアドレス情報に追加して、以下同様の処理を繰り返す。S803に戻る際は、バッファ上もしくはRAM上に保持しているアドレステーブル、不良ブロックアドレス情報、不良ブロック数、カウンタを保持したまま戻る必要がある。最大リトライ回数を超える場合は、不良ブロックアドレス情報の登録は失敗であり、アクセス装置に対してエラーを返して処理を終了する。
このように失敗で終了するケースもあるが、リトライを続けるよりもよい場合がある。フラッシュメモリを用いた不揮発性メモリ110でエラーが発生する確率は小さいので、連続して何回もエラーが発生するときは、電源異常等の他の異常が発生している可能性がある。メモリ以外の異常が原因でエラーが発生したにもかかわらず、当該ブロックを不良ブロックアドレスに加えることは、本来エラーにならないはずの正常なブロックを使用不可能にしまうということになる。これは大きな問題となるため、S808のように最大リトライ回数で判断し、それを越える場合に不良ブロックのアドレスの登録を諦めるというのは有効な方法である。
S704で行なわれるアドレステーブルの更新手順を、図9A、図9Bを用いて説明する。まず、メモリコントローラ103はバッファまたはRAM上に、最新のデータが存在する管理ブロックの最新のアドレステーブルが格納されているページからアドレステーブルを読み出す(S901)。そして読み出したアドレステーブルの内容をバッファもしくはRAM上で更新する(S902)。次に、最新のデータが存在する管理ブロック内に新たにアドレステーブルを書き込むための空きページが存在するかを判断する(S903)。存在すれば、その空きページに更新されたアドレステーブルを書き込む(S904)。空きページが存在しなければ、新たな管理ブロックに書き込む必要がある。そのために、最新のデータが存在する管理ブロックの先頭ページのデータを読み出し、不良ブロックアドレス情報、不良ブロック数、カウンタの最新の情報を取得する(S905)。次に、カウンタの値をインクリメントし(S906)、新たな管理ブロックを取得する(S907)。この際に、不良ブロックアドレス情報に登録されている不良ブロックを除外して新たな管理ブロックを取得する。こうして、新たな管理ブロックの先頭ページに不良ブロックアドレス情報と、不良ブロック数と、更新されたアドレステーブル、カウンタと、これらデータに対応したチェックコードを書き込む(S908)。
次に図9Bに示すように、S904またはS908の書き込みの後に、書き込んだデータにエラーがあるかどうかを判断する(S909)。エラーがなければ、アドレステーブルの更新は成功であり、処理を終了する。エラーがあれば、最新のデータを持つ管理ブロックの先頭ページのデータを読み出す(S910)。しかし、S905で既に当該データを読み出している場合はS910の処理はとばしても良い。次に、管理ブロックの不良ブロックアドレス情報の登録を行ない(S911)、このとき書き込まれたデータにエラーがあるかどうかを判断する(S912)。エラーがあれば、今回の不良ブロックアドレス情報の登録が最大リトライ回数を超えるかどうかを判断し(S913)、超えていなければS911へ戻って再度不良ブロックアドレス情報の登録を行なう。最大リトライ回数を超えていれば、不良ブロックアドレス情報の登録は失敗であり、アクセス装置に対してエラーを返して処理を終了する。S912でエラーがなければアドレステーブルの更新の処理を終える。
尚、S911の内容については、図10に示したとおりであり、S1001,1002,1003,1004はそれぞれ、図8のS803,804,805,806と同様の処理を行なうので、ここでは説明を省略する。
以上のように、不良ブロックアドレスの登録またはアドレステーブルの更新を経てデータブロックへのデータの書込みが行なわれる。このような本実施の形態によれば、新たな管理ブロックへの書き込みが成功した直後に古い管理ブロックを消去するので、処理の途中でエラーや電源遮断が発生しても、更新前後の少なくとも一方の管理ブロックのデータは不揮発性メモリ110に記憶され残っている。そのため、更新されたデータをメモリに書き込む際のエラーや電源遮断により、更新直前のデータまでもが一緒に消えてしまうということはない。また、管理ブロックの消去の際にエラーが発生し、当該管理ブロックが不良ブロックとなった場合でも、図9及び図10に示した処理によって、当該管理ブロックは不良ブロックアドレス情報に加えられるので、以後使用されることはない。さらに、不良ブロックアドレス情報は更新によって蓄積され、1つのまとまりとしてページに書き込まれるので、ページの容量を有効に活用することができる。
なお、本発明の本実施の形態において、アドレステーブル、不良ブロックアドレス情報、不良ブロック数、カウンタは管理ブロックの先頭ページに配置したが、必ずしも先頭ページにある必要はない。また、アドレステーブル、不良ブロックアドレス情報は共に1つのページ内に格納されているが、複数ページを使用して格納するように構成することも可能である。さらに、不良ブロックアドレス情報と不良ブロック数は、1つの管理ブロックに1回のみ登録するものとしたが、データ領域202で新たな不良ブロックが発生した場合や管理領域201の消失で新たな不良ブロックが発生した場合には、最新の管理ブロックに空きページが存在すれば、最新の管理ブロックに複数回登録することも可能である。また、管理ブロックは1つのブロックで構成するものとしたが、複数のブロックをまとめて1つの管理ブロックとして構成することも可能である。
本発明のメモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法は、不良ブロックのアドレス管理において信頼性が高く、かつメモリ容量を有効に使用できる。本発明は静止画記録再生装置や動画記録再生装置等のポータブルAV機器、あるいは携帯電話等のポータブル通信機器の記録再生用途として有益である。
本発明の実施の形態における不揮発性記憶システムを示した構成図である。 本発明の実施の形態における不揮発性メモリを示した構成図である。 本発明の実施の形態におけるデータブロックを示した構成図である。 本発明の実施の形態における管理ブロックを示した構成図である。 本発明の実施の形態における管理領域の説明図である。 本発明の実施の形態における最新の管理ブロック検索のフローチャートである。 本発明の実施の形態におけるデータ書込み後の処理を示すフローチャートである。 本発明の実施の形態におけるデータ領域で発生した不良ブロックのアドレスの登録のフローチャートである。 本発明の実施の形態におけるアドレステーブルの更新のフローチャートである。 本発明の実施の形態におけるアドレステーブルの更新のフローチャートである。 本発明の実施の形態における管理ブロックの不良ブロックアドレス情報の登録処理を示すフローチャートである。
符号の説明
100 不揮発性記憶システム
101 アクセス装置
102 不揮発性記憶装置
103 メモリコントローラ
104 ホストI/F
105 バッファ
106 CPU
107 RAM
108 ROM
109 不揮発性メモリI/F
110 不揮発性メモリ

Claims (48)

  1. データの消去単位であるブロックを複数有し、前記ブロックはデータを保持する複数のデータブロックと、前記複数のブロック中の不良ブロックのアドレスを登録する複数の管理ブロックとを含む不揮発性メモリに対してデータの書き込み及び読み出しを制御するメモリコントローラであって、
    前記複数の管理ブロック中の不良ブロックとしてアドレスが登録されたブロックを除いて1つずつ巡回的に管理ブロックを取得して、新たに発生した不良ブロックのアドレスを当該取得した管理ブロックに登録する制御部を有することを特徴とするメモリコントローラ。
  2. 前記制御部は、
    不良ブロックのアドレスを前記複数の管理ブロックのうちの1つの管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスを、巡回的に取得した別の管理ブロックに登録することを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記制御部は、
    不良ブロックのアドレスを前記管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスの登録を、巡回的に取得した別の管理ブロックに対して最大リトライ回数まで行なうことを特徴とする請求項2に記載のメモリコントローラ。
  4. 前記制御部は、
    前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、それぞれの管理ブロックにおいて登録されている不良ブロックの数を調べ、その数が最大の管理ブロックを最新のデータが存在する管理ブロックであると判断することを特徴とする請求項1〜3のいずれか1項に記載のメモリコントローラ。
  5. 前記制御部は、
    前記管理ブロックに不良ブロックのアドレスを登録する際に不良ブロック数も書き込み、前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、前記管理ブロックに書き込まれている前記不良ブロック数から、最新のデータが存在する管理ブロックを判断することを特徴とする請求項4に記載のメモリコントローラ。
  6. 前記制御部は、
    前記管理ブロックのデータを更新する際、前記巡回的に取得した別の管理ブロックに書き込みを行い、書き込んだデータにエラーがないことを確認した後、元の管理ブロックのデータを消去することを特徴とする請求項1〜5のいずれか1項に記載のメモリコントローラ。
  7. 前記制御部は、
    前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、不良ブロックの発生とは無関係に更新する必要のある第1の情報の更新に伴って、別の管理ブロックに前記更新された第1の情報が書き込まれるときに更新されるカウンタの値が最新で、かつ不良ブロックが登録されている数が最大のものを最新の管理ブロックであると判断することを特徴とする請求項1〜6のいずれか1項に記載のメモリコントローラ。
  8. 前記第1の情報は、論理アドレスと前記不揮発性メモリの物理アドレスとの対応関係を示す情報である請求項7記載のメモリコントローラ。
  9. 前記制御部は、
    最新のデータが存在する管理ブロックを検索する際、少なくとも前記不良ブロックのアドレス情報、前記第1の情報、及び前記カウンタとから計算されるチェックコードを検査し、前記チェックコードが不正である管理ブロックを除外して最新のデータが存在する管理ブロックを検索することを特徴とする請求項7又は8に記載のメモリコントローラ。
  10. 前記制御部は、
    前記管理ブロックのデータの書き込み単位であるページの数以下の複数の領域に前記管理ブロックを分割し、1つの管理ブロックについて前記複数の領域に順次データの書き込みを行い、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用することを特徴とする請求項1〜9のいずれか1項に記載のメモリコントローラ。
  11. 前記制御部は、
    前記管理ブロックはデータの書き込み単位であるページの数以下の複数の領域に前記管理ブロックを分割し、1つの管理ブロックについて前記複数の領域に順次データの書き込みを行い、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用し、
    前記管理ブロックが分割されてできた前記複数の領域のうち、最初の領域にデータを書き込む際は、前記不良ブロックのアドレスと前記第1の情報とを書き込み、前記第1の情報を更新する際は、前記更新された第1の情報を次の領域に書き込むことを特徴とする請求項7〜9のいずれか1項に記載のメモリコントローラ。
  12. 前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項1〜11のいずれか1項に記載のメモリコントローラ。
  13. データの消去単位であるブロックを複数有し、前記ブロックはデータを保持する複数のデータブロックと、前記複数のブロック中の不良ブロックのアドレスを登録する複数の管理ブロックとを含む不揮発性メモリと、
    前記不揮発性メモリに対してデータの書き込み及び読み出しを制御するメモリコントローラと、を具備する不揮発性記憶装置であって、
    前記メモリコントローラは、
    前記複数の管理ブロック中の不良ブロックとしてアドレスが登録されたブロックを除いて1つずつ巡回的に管理ブロックを取得して、新たに発生した不良ブロックのアドレスを当該取得した管理ブロックに登録する制御部を有することを特徴とする不揮発性記憶装置。
  14. 前記メモリコントローラの制御部は、
    不良ブロックのアドレスを前記複数の管理ブロックのうちの1つの管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスを、巡回的に取得した別の管理ブロックに登録することを特徴とする請求項13に記載の不揮発性記憶装置。
  15. 前記メモリコントローラの制御部は、
    不良ブロックのアドレスを前記管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスの登録を、巡回的に取得した別の管理ブロックに対して最大リトライ回数まで行なうことを特徴とする請求項14に記載の不揮発性記憶装置。
  16. 前記メモリコントローラの制御部は、
    前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、それぞれの管理ブロックにおいて登録されている不良ブロックの数を調べ、その数が最大の管理ブロックを最新のデータが存在する管理ブロックであると判断することを特徴とする請求項13〜15のいずれか1項に記載の不揮発性記憶装置。
  17. 前記メモリコントローラの制御部は、
    前記管理ブロックに不良ブロックのアドレスを登録する際に不良ブロック数も書き込み、前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、前記管理ブロックに書き込まれている前記不良ブロック数から、最新のデータが存在する管理ブロックを判断することを特徴とする請求項16に記載の不揮発性記憶装置。
  18. 前記メモリコントローラの制御部は、
    前記管理ブロックのデータを更新する際、前記巡回的に取得した別の管理ブロックに書き込みを行い、書き込んだデータにエラーがないことを確認した後、元の管理ブロックのデータを消去することを特徴とする請求項13〜17のいずれか1項に記載の不揮発性記憶装置。
  19. 前記不揮発性メモリの管理ブロックは、不良ブロックの発生とは無関係に更新する必要のある第1の情報と、前記第1の情報の更新に伴って別の管理ブロックに前記更新された第1の情報が書き込まれるときに更新されるカウンタの情報と、を保持し、
    前記メモリコントローラの制御部は、
    前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、前記カウンタの値が最新で、かつ不良ブロックが登録されている数が最大のものを最新の管理ブロックであると判断することを特徴とする請求項13〜18のいずれか1項に記載の不揮発性記憶装置。
  20. 前記第1の情報は、論理アドレスと前記不揮発性メモリの物理アドレスとの対応関係を示す情報である請求項19に記載の不揮発性記憶装置。
  21. 前記管理ブロックは、少なくとも前記不良ブロックのアドレス情報、前記第1の情報、及び前記カウンタとから計算されるチェックコードを保持し、
    前記メモリコントローラの制御部は、最新のデータが存在する管理ブロックを検索する際、前記チェックコードを検査し、前記チェックコードが不正である管理ブロックを除外して最新のデータが存在する管理ブロックを検索することを特徴とする請求項19又は20に記載の不揮発性記憶装置。
  22. 前記管理ブロックはデータの書き込み単位であるページを複数備え、
    前記メモリコントローラの制御部は、前記管理ブロックを前記ページ数以下の複数の領域に分割し、1つの管理ブロックについて前記複数の領域に順次データの書き込みを行い、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用することを特徴とする請求項13〜21のいずれか1項に記載の不揮発性記憶装置。
  23. 前記管理ブロックはデータの書き込み単位であるページを複数備え、
    前記メモリコントローラの制御部は、前記管理ブロックを前記ページ数以下の複数の領域に分割し、1つの管理ブロックについて前記複数の領域に順次データの書き込みを行い、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用し、
    前記管理ブロックが分割されてできた前記複数の領域のうち、最初の領域にデータを書き込む際は、前記不良ブロックのアドレスと前記第1の情報とを書き込み、前記第1の情報を更新する際は、前記更新された第1の情報を次の領域に書き込むことを特徴とする請求項19〜21のいずれか1項に記載の不揮発性記憶装置。
  24. 前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項13〜23のいずれか1項に記載の不揮発性記憶装置。
  25. データの消去単位であるブロックを複数有し、前記ブロックはデータを保持する複数のデータブロックと、前記複数のブロック中の不良ブロックのアドレスを登録する複数の管理ブロックとを含む不揮発性メモリと、
    前記不揮発性メモリに対してデータの書き込み及び読み出しを制御するメモリコントローラと、
    前記メモリコントローラに対して、前記不揮発性メモリへのデータの書き込みと読み出しとを指示するアクセス装置と、を具備する不揮発性記憶システムであって、
    前記メモリコントローラは、
    前記複数の管理ブロック中の不良ブロックとしてアドレスが登録されたブロックを除いて1つずつ巡回的に管理ブロックを取得して、新たに発生した不良ブロックのアドレスを当該取得した管理ブロックに登録する制御部を有することを特徴とする不揮発性記憶システム。
  26. 前記メモリコントローラの制御部は、
    不良ブロックのアドレスを前記複数の管理ブロックのうちの1つの管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスを、巡回的に取得した別の管理ブロックに登録することを特徴とする請求項25に記載の不揮発性記憶システム。
  27. 前記メモリコントローラの制御部は、
    不良ブロックのアドレスを前記管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスの登録を、巡回的に取得した別の管理ブロックに対して最大リトライ回数まで行なうことを特徴とする請求項26に記載の不揮発性記憶システム。
  28. 前記メモリコントローラの制御部は、
    前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、それぞれの管理ブロックにおいて登録されている不良ブロックの数を調べ、その数が最大の管理ブロックを最新のデータが存在する管理ブロックであると判断することを特徴とする請求項25〜27のいずれか1項に記載の不揮発性記憶システム。
  29. 前記メモリコントローラの制御部は、
    前記管理ブロックに不良ブロックのアドレスを登録する際に不良ブロック数も書き込み、前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、前記管理ブロックに書き込まれている前記不良ブロック数から、最新のデータが存在する管理ブロックを判断することを特徴とする請求項28に記載の不揮発性記憶システム。
  30. 前記メモリコントローラの制御部は、
    前記管理ブロックのデータを更新する際、前記巡回的に取得した別の管理ブロックに書き込みを行い、書き込んだデータにエラーがないことを確認した後、元の管理ブロックのデータを消去することを特徴とする請求項25〜29のいずれか1項に記載の不揮発性記憶システム。
  31. 前記不揮発性メモリの管理ブロックは、不良ブロックの発生とは無関係に更新する必要のある第1の情報と、前記第1の情報の更新に伴って別の管理ブロックに前記更新された第1の情報が書き込まれるときに更新されるカウンタの情報と、を保持し、
    前記メモリコントローラの制御部は、
    前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、前記カウンタの値が最新で、かつ不良ブロックが登録されている数が最大のものを最新の管理ブロックであると判断することを特徴とする請求項25〜30のいずれか1項に記載の不揮発性記憶システム。
  32. 前記第1の情報は、論理アドレスと前記不揮発性メモリの物理アドレスとの対応関係を示す情報である請求項31に記載の不揮発性記憶システム。
  33. 前記管理ブロックは、少なくとも前記不良ブロックのアドレス情報、前記第1の情報、及び前記カウンタとから計算されるチェックコードを保持し、
    前記メモリコントローラの制御部は、最新のデータが存在する管理ブロックを検索する際、前記チェックコードを検査し、前記チェックコードが不正である管理ブロックを除外して最新のデータが存在する管理ブロックを検索することを特徴とする請求項31又は32に記載の不揮発性記憶システム。
  34. 前記管理ブロックはデータの書き込み単位であるページを複数備え、
    前記メモリコントローラの制御部は、前記管理ブロックを前記ページ数以下の複数の領域に分割し、1つの管理ブロックについて前記複数の領域に順次データの書き込みを行い、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用することを特徴とする請求項25〜33のいずれか1項に記載の不揮発性記憶システム。
  35. 前記管理ブロックはデータの書き込み単位であるページを複数備え、
    前記メモリコントローラの制御部は、前記管理ブロックを前記ページ数以下の複数の領域に分割し、1つの管理ブロックについて前記複数の領域に順次データの書き込みを行い、前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用し、
    前記管理ブロックが分割されてできた前記複数の領域のうち、最初の領域にデータを書き込む際は、前記不良ブロックのアドレスと前記第1の情報とを書き込み、前記第1の情報を更新する際は、前記更新された第1の情報を次の領域に書き込むことを特徴とする請求項31〜33のいずれか1項に記載の不揮発性記憶システム。
  36. 前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項25〜35のいずれか1項に記載の不揮発性記憶システム。
  37. データの消去単位であるブロックを複数有し、前記ブロックはデータを保持する複数のデータブロックと、前記複数のブロック中の不良ブロックのアドレスを登録する複数の管理ブロックとを含む不揮発性メモリに対してデータの書き込み及び読み出しを制御するメモリ制御方法であって、
    前記複数の管理ブロック中の不良ブロックとしてアドレスが登録されたブロックを除いて1つずつ巡回的に管理ブロックを取得し、
    新たに発生した不良ブロックのアドレスを当該取得した管理ブロックに登録することを特徴とするメモリ制御方法。
  38. 不良ブロックのアドレスを前記複数の管理ブロックのうちの1つの管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスを、巡回的に取得した別の管理ブロックに登録することを特徴とする請求項37に記載のメモリ制御方法。
  39. 不良ブロックのアドレスを前記管理ブロックに登録する際に、当該管理ブロックが不良ブロックとなった場合、当該管理ブロックに登録する予定であった前記不良ブロックのアドレスを含む全ての不良ブロックのアドレスの登録を、巡回的に取得した別の管理ブロックに対して最大リトライ回数まで行なうことを特徴とする請求項38に記載のメモリ制御方法。
  40. 前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、それぞれの管理ブロックにおいて登録されている不良ブロックの数を調べ、
    その数が最大の管理ブロックを最新のデータが存在する管理ブロックであると判断することを特徴とする請求項37〜39のいずれか1項に記載のメモリ制御方法。
  41. 前記管理ブロックに不良ブロックのアドレスを登録する際に不良ブロック数も書き込み、
    前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、前記管理ブロックに書き込まれている前記不良ブロック数から、最新のデータが存在する管理ブロックを判断することを特徴とする請求項40に記載のメモリ制御方法。
  42. 前記管理ブロックのデータを更新する際、前記巡回的に取得した別の管理ブロックに書き込みをし、
    書き込んだデータにエラーがないことを確認した後、元の管理ブロックのデータを消去することを特徴とする請求項37〜41のいずれか1項に記載のメモリ制御方法。
  43. 前記複数の管理ブロックから最新のデータが存在する管理ブロックを検索する際、不良ブロックの発生とは無関係に更新する必要のある第1の情報の更新に伴って別の管理ブロックに前記更新された第1の情報が書き込まれるときに更新されるカウンタの値が最新で、かつ不良ブロックが登録されている数が最大のものを最新の管理ブロックであると判断することを特徴とする請求項37〜42のいずれか1項に記載のメモリ制御方法。
  44. 前記第1の情報は、論理アドレスと前記不揮発性メモリの物理アドレスとの対応関係を示す情報である請求項43に記載のメモリ制御方法。
  45. 最新のデータが存在する管理ブロックを検索する際、少なくとも前記不良ブロックのアドレス情報、前記第1の情報、及び前記カウンタとから計算されるチェックコードを検査し、
    前記チェックコードが不正である管理ブロックを除外して最新のデータが存在する管理ブロックを検索することを特徴とする請求項43又は44に記載のメモリ制御方法。
  46. 前記管理ブロックのデータの書き込み単位であるページの数以下の複数の領域に前記管理ブロックを分割し、
    1つの管理ブロックについて前記複数の領域に順次データを書き込み、
    前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用することを特徴とする請求項37〜45のいずれか1項に記載のメモリ制御方法。
  47. 前記管理ブロックのデータの書き込み単位であるページの数以下の複数の領域に前記管理ブロックを分割し、
    1つの管理ブロックについて前記複数の領域に順次データを書き込み、
    前記複数の領域全てにデータが書き込まれた後に、別の管理ブロックを新たに使用し、
    前記管理ブロックが分割されてできた前記複数の領域のうち、最初の領域にデータを書き込む際は、前記不良ブロックのアドレスと前記第1の情報とを書き込み、
    前記第1の情報を更新する際は、前記更新された第1の情報を次の領域に書き込むことを特徴とする請求項43〜45のいずれか1項に記載のメモリ制御方法。
  48. 前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項37〜47のいずれか1項に記載のメモリ制御方法。
JP2006071019A 2006-03-15 2006-03-15 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 Expired - Fee Related JP4866114B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006071019A JP4866114B2 (ja) 2006-03-15 2006-03-15 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006071019A JP4866114B2 (ja) 2006-03-15 2006-03-15 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2007249508A true JP2007249508A (ja) 2007-09-27
JP4866114B2 JP4866114B2 (ja) 2012-02-01

Family

ID=38593743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006071019A Expired - Fee Related JP4866114B2 (ja) 2006-03-15 2006-03-15 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法

Country Status (1)

Country Link
JP (1) JP4866114B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2015033404A1 (ja) * 2013-09-04 2017-03-02 株式会社東芝 半導体記憶装置
JP2017049902A (ja) * 2015-09-04 2017-03-09 日立オートモティブシステムズ株式会社 電子制御装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1011355A (ja) * 1996-06-21 1998-01-16 Nec Corp メモリアドレス管理装置
JPH11144478A (ja) * 1997-11-10 1999-05-28 Hitachi Device Eng Co Ltd 不揮発性半導体メモリの情報記憶方法および電子機器
JP2003044231A (ja) * 2001-07-31 2003-02-14 Hitachi Communication Technologies Ltd 記憶媒体交替セクタ管理方式および記憶装置
JP2004127185A (ja) * 2002-10-07 2004-04-22 Renesas Technology Corp メモリカード

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1011355A (ja) * 1996-06-21 1998-01-16 Nec Corp メモリアドレス管理装置
JPH11144478A (ja) * 1997-11-10 1999-05-28 Hitachi Device Eng Co Ltd 不揮発性半導体メモリの情報記憶方法および電子機器
JP2003044231A (ja) * 2001-07-31 2003-02-14 Hitachi Communication Technologies Ltd 記憶媒体交替セクタ管理方式および記憶装置
JP2004127185A (ja) * 2002-10-07 2004-04-22 Renesas Technology Corp メモリカード

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2015033404A1 (ja) * 2013-09-04 2017-03-02 株式会社東芝 半導体記憶装置
JP2017049902A (ja) * 2015-09-04 2017-03-09 日立オートモティブシステムズ株式会社 電子制御装置

Also Published As

Publication number Publication date
JP4866114B2 (ja) 2012-02-01

Similar Documents

Publication Publication Date Title
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
JP4950886B2 (ja) 不揮発性記憶装置、メモリコントローラ及び不良領域検出方法
KR101417561B1 (ko) 메타데이터 태그를 통한 불규칙적인 패리티 분포 검출
CN109343790B (zh) 一种基于nand flash的数据存储方法、终端设备及存储介质
US7512864B2 (en) System and method of accessing non-volatile computer memory
KR101870521B1 (ko) 스토리지 저널링을 개선하는 방법 및 시스템
KR20070076849A (ko) 메모리 카드의 카피백 동작을 수행하는 장치 및 방법
JP2008537192A (ja) フラッシュメモリ内でコピー操作を管理する方法
US9465538B2 (en) Flash memory control chip and data storage device and flash memory control method
JP5950286B2 (ja) アドレス変換テーブルを書き込む装置及び方法
CN103425589A (zh) 控制装置、存储装置以及存储控制方法
US11029867B2 (en) Apparatus and method for transmitting map information and read count in memory system
US9811275B2 (en) Memory system and data control method
KR20180058894A (ko) 데이터 저장 장치 및 그것의 동작 방법
JP2010079856A (ja) 記憶装置およびメモリ制御方法
JP2009064238A (ja) メモリシステム
US8527733B2 (en) Memory system
US10942811B2 (en) Data processing method for solid state drive
JP4956230B2 (ja) メモリコントローラ
JP4866114B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP4684587B2 (ja) メモリカード
CN114637706B (zh) 存储系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111028

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees