JP2012058770A - メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 - Google Patents
メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Download PDFInfo
- Publication number
- JP2012058770A JP2012058770A JP2010198174A JP2010198174A JP2012058770A JP 2012058770 A JP2012058770 A JP 2012058770A JP 2010198174 A JP2010198174 A JP 2010198174A JP 2010198174 A JP2010198174 A JP 2010198174A JP 2012058770 A JP2012058770 A JP 2012058770A
- Authority
- JP
- Japan
- Prior art keywords
- logical
- block
- pages
- page
- mapping
- 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.)
- Withdrawn
Links
Images
Landscapes
- Memory System (AREA)
Abstract
【課題】データの書き換えにおいて、書き換え後のデータを、書き換え前のデータと同じ物理ブロックに格納できる確率を高くする。
【解決手段】所定の期間毎に、論理ゾーンに含まれるそれぞれの論理ブロックに対する書き込み比率を算出し、この書き込み比率に基づいて、それぞれの論理ブロックに分配する予備論理ページの分配数の比率を決定する。この予備論理ページの分配数の比率に基づいて、それぞれの論理ブロックに分配するマッピング論理ページを決定する。
【選択図】図10
【解決手段】所定の期間毎に、論理ゾーンに含まれるそれぞれの論理ブロックに対する書き込み比率を算出し、この書き込み比率に基づいて、それぞれの論理ブロックに分配する予備論理ページの分配数の比率を決定する。この予備論理ページの分配数の比率に基づいて、それぞれの論理ブロックに分配するマッピング論理ページを決定する。
【選択図】図10
Description
本発明は、メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
コンピュータ等の情報処理装置(ホストシステム)では、各種のファイルデータを保存するためにフラッシュメモリを記憶媒体として用いたCF(Compact Flash)カード、SSD(Solid State Drive)等の情報記憶装置(フラッシュメモリシステム)が使われることが多くなっている。このようなフラッシュメモリシステムでは、ホストシステムから与えられるアクセス指示に基づいて、フラッシュメモリに対するアクセスが行われる。また、ホストシステムから与えられるアクセス指示では、セクタ(512バイト)単位の領域に付けられたアドレスでアクセス対象の領域が指示される。
このようなフラッシュメモリシステムの記憶媒体として一般的に使用されているNAND型フラッシュメモリでは、ページ(物理ページ)単位でデータの書き込みが行われ、複数の物理ページを含む物理ブロック単位で記憶データの消去が行われる。従って、ホストシステムからはセクタ単位での書き換えを前提とした書き込み指示が与えられるにも関わられず、この様なフラッシュメモリでは、ページ単位でデータの書き込みを実行し、データの書き換えに伴うデータ消去をブロック単位で実行しなければならない。
NAND型フラッシュメモリを用いたフラッシュメモリシステムでは、ホストシステム側で管理されているアドレスが付けられたセクタ単位の領域を1個又は複数個集めた論理ページを物理ページに割り当てている。この論理ページと物理ページの対応関係の管理が煩雑になることを回避するため、複数個の論理ページを集めた論理ブロックを形成し、ブロック単位で論理ブロックと物理ブロックの対応関係を管理している。尚、論理ブロックに含まれる論理ページと、その論理ブロックと対応する物理ブロックに含まれる物理ページの対応関係については、固定されている場合と固定されていない場合がある。
論理ブロックに含まれる論理ページと、その論理ブロックに対応する物理ブロックに含まれる物理ページとの対応関係が固定された記憶領域の管理方式(以下、「ページ対応関係固定方式」と言う)は、例えば、特許文献1に記載されている。このページ対応関係固定方式では、ホストシステムからのアクセス指示に従ってデータを書き込むときに、そのアクセス指示により指定された書き込み先の論理ページを含んだ論理ブロックに対応する物理ブロック内に、データが書き込まれていない物理ページがあっても、上記書き込み先の論理ページに対応する物理ページにデータが書き込まれていれば、上記書き込み先の論理ページを含んだ論理ブロックに別の物理ブロックが新たに割り当てられ、その物理ブロックにデータが書き込まれる。従って、ページ対応関係固定方式では、ホストシステムから与えられる新たなデータをフラッシュメモリに書き込むときに、フラッシュメモリに記憶されているデータが別の物理ブロックに転送される頻度が高くなる。
論理ブロックに含まれる論理ページと、その論理ブロックに対応する物理ブロックに含まれる物理ページとの対応関係が固定されていない記憶領域の管理方式(以下、「ページ対応関係可変方式」と言う)は、例えば、特許文献2に記載されている。このページ対応関係可変方式では、ホストシステムから与えられる各論理ページに対応するデータが、物理ブロック内のデータが書き込まれていない物理ページに先頭から順番に書き込まれていく。従って、ページ対応関係可変方式では、上記のようなデータ転送の頻度は低くなるが、論理ページと物理ページの対応関係を管理する必要が生じる。
フラッシュメモリシステムに保存されるファイルデータは、通常、FAT(File Allocation Table)ファイルシステム・NTファイルシステム等のファイルシステムで管理されている。従って、フラッシュメモリシステムには、ファイルデータだけでなく、ファイルデータを管理するための情報も保存される。例えば、FATファイルシステムの場合には、ルートディレクトリを含む情報や、ファイルが使用するクラスタの番号の情報が保存される。NTファイルシステムの場合にも、ファイル名やインデックスを含む情報が保存される。
また、FATファイルシステム・NTファイルシステム等で管理されるファイルデータは、所定のクラスタサイズのデータに分割され、分割されたデータがフラッシュメモリに保存される。このクラスタサイズは、フラッシュメモリシステムの記憶容量が大きくなるにつれて512バイト・1kバイト・2kバイト・4kバイトというように段階的に大きくなっていく。そして、ホストシステムから与えられる書き込み指示に基づいて書き込まれるデータがファイルデータの場合、このクラスタ単位でデータの書き込みが指示される。つまり、書き込まれるデータがファイルデータの場合は、このクラスタサイズよりも小さい単位で、データの書き込みが指示されることがない。一方、書き込まれるデータがファイルデータを管理するための情報の場合は、このクラスタサイズよりも小さい単位(例えばセクタ単位)で、データの書き込みが指示されることがある。
この小さい容量でデータの書き込みが指示される領域(以下、「小容量アクセス領域」と言う)としては、例えば、FATファイルシステムやNTファイルシステムにおけるファイルデータを管理するための情報が保存される領域が挙げられる。FATファイルシステムであれば、ファイル名やルートディレクトリを含む情報が保存されるディレクトリ領域や、クラスタの番号の情報が保存されるFAT領域が、小容量アクセス領域に該当する。NTファイルシステムであれば、ファイル名やインデックスを含む情報が保存されるMFT(Master File Table)領域(管理レコードに割り当てられた領域)が、小容量アクセス領域に該当する。
このようなファイルデータを管理するための情報は書き換えられる頻度が高いため、小容量アクセス領域に対応するデータは書き換え頻度が高い場合が多い。従って、小容量アクセス領域が属する論理ブロックについては、割り当てられる論理ページ数を少なくして、予備の物理ページを増やすことが好ましい。つまり、データの書き換えの際に、旧データが格納されている物理ブロック内の物理ページに新データを書き込むことができる場合が多くなる。書き換えに利用できる物理ページが増えることにより、フラッシュメモリに記憶されているデータが別の物理ブロックに転送される頻度が低くなり、パフォーマンスを向上させることができる。
ホストシステムに電気的に接続されるフラッシュメモリシステムは、ホストシステムから与えられるアクセス指示に基づいてフラッシュメモリシステム内のフラッシュメモリにアクセスする。このホストシステムから与えられるアクセス指示には、書き込みや読み出しを指示するコマンドと、アクセス対象の領域を指定する論理アドレスとが含まれている。フラッシュメモリシステムは、ホストシステムから与えられる論理アドレスと、フラッシュメモリ内の記憶領域に割り当てられている物理アドレスとの対応関係を管理し、この対応関係に基づいて、ホストシステムから与えられるデータをフラッシュメモリに書き込んだり、フラッシュメモリに記憶されているデータをフラッシュメモリから読み出したりする。この対応関係は、物理ブロック単位の対応関係及び物理ページ単位の対応関係として管理されている。つまり、論理ブロックと物理ブロックの対応関係、及び論理ページと物理ページの対応関係が管理されている。
物理ブロックに含まれる物理ページの個数より論理ブロックに含まれる論理ページの個数が少ないと予備の物理ページを確保できる為、1個の物理ブロック内でデータの書き替えを行うことができる。
また、ホストシステムからのアクセスにおいて、頻繁に書き込み指示の対象になる論理ページ(論理アドレス)と、ほとんど書き込み指示の対象にならない論理ページ(論理アドレス)がある。従来のフラッシュメモリシステムでは、書き込み頻度に関わらず、論理ブロックの容量、つまり、論理ブロックに含まれる論理ページの個数が固定であった。
そこで、本発明は、各論理ブロックに関する書き込み頻度に応じて、各論理ブロックに含まれる論理ページの個数を調整する事が可能なメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。
本発明の第1の側面に従う、メモリコントローラは、
ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理手段と、
少なくとも1ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理手段と、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理手段と、
前記論理ゾーンに対して、前記マッピング論理ページを第1の所定数分割り当てる論理領域割り当て手段と、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第2の所定数分割り当てる予備領域割り当て手段と、
前記論理ゾーンに割り当てられている前記第1の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配手段と、
前記論理ゾーンに割り当てられている前記第2の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定手段と、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当て手段と、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納手段と
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数手段と、
前記計数手段により計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出手段とを備え、
前記比率算出手段は、所定の期間毎に、当該期間における前記計数値の比率を算出し、
前記分配数決定手段は、前記比率算出手段により前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数を決定し、
前記マッピング論理ページ分配手段は、前記分配数決定手段により前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第3の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数を決定し、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先を決定する。
ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理手段と、
少なくとも1ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理手段と、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理手段と、
前記論理ゾーンに対して、前記マッピング論理ページを第1の所定数分割り当てる論理領域割り当て手段と、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第2の所定数分割り当てる予備領域割り当て手段と、
前記論理ゾーンに割り当てられている前記第1の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配手段と、
前記論理ゾーンに割り当てられている前記第2の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定手段と、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当て手段と、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納手段と
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数手段と、
前記計数手段により計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出手段とを備え、
前記比率算出手段は、所定の期間毎に、当該期間における前記計数値の比率を算出し、
前記分配数決定手段は、前記比率算出手段により前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数を決定し、
前記マッピング論理ページ分配手段は、前記分配数決定手段により前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第3の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数を決定し、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先を決定する。
本発明の第2の側面に従う、フラッシュメモリシステムは、
前記第1の側面に従うメモリコントローラと、
このメモリコントローラにより制御されるフラッシュメモリを備える。
前記第1の側面に従うメモリコントローラと、
このメモリコントローラにより制御されるフラッシュメモリを備える。
本発明の第3の側面に従う、フラッシュメモリの制御方法は、
ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理ステップと、
少なくとも1ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理ステップと、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理ステップと、
前記論理ゾーンに対して、前記マッピング論理ページを第1の所定数分割り当てる論理領域割り当てステップと、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第2の所定数分割り当てる予備領域割り当てステップと、
前記論理ゾーンに割り当てられている前記第1の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配ステップと、
前記論理ゾーンに割り当てられている前記第2の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定ステップと、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当てステップと、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納ステップと、
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数ステップと、
前記計数ステップにより計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出ステップとを備え、
前記比率算出ステップは所定の期間毎に実行されるステップであり、当該ステップでは、当該期間における前記計数値の比率が算出され、
前記分配数決定ステップは、前記比率算出ステップにより前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して実行されるステップであり、当該ステップでは、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数が決定され、
前記マッピング論理ページ分配ステップは、前記分配数決定ステップにより前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して実行されるステップであり、当該ステップでは、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第3の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数が決定され、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先が決定される。
ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理ステップと、
少なくとも1ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理ステップと、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理ステップと、
前記論理ゾーンに対して、前記マッピング論理ページを第1の所定数分割り当てる論理領域割り当てステップと、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第2の所定数分割り当てる予備領域割り当てステップと、
前記論理ゾーンに割り当てられている前記第1の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配ステップと、
前記論理ゾーンに割り当てられている前記第2の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定ステップと、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当てステップと、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納ステップと、
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数ステップと、
前記計数ステップにより計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出ステップとを備え、
前記比率算出ステップは所定の期間毎に実行されるステップであり、当該ステップでは、当該期間における前記計数値の比率が算出され、
前記分配数決定ステップは、前記比率算出ステップにより前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して実行されるステップであり、当該ステップでは、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数が決定され、
前記マッピング論理ページ分配ステップは、前記分配数決定ステップにより前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して実行されるステップであり、当該ステップでは、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第3の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数が決定され、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先が決定される。
本発明によれば、書き込み頻度が高い論理ページが含まれる論理ブロックに分配される論理ページの総数が相対的に少なくなるように、各論理ブロックに分配される論理ページの分配数が調整されるため、書き込み頻度が高い論理ページが含まれる論理ブロックに関するデータの書き換えにおいて、書き換え後のデータを、書き換え前のデータと同じ物理ブロックに格納できる確率が高くなる。
図1に示されているように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。メモリコントローラ3は、内部バス14を介してフラッシュメモリ2と接続されている。
フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続されている。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成されている。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
メモリコントローラ3は、図1に示されているように、マイクロプロセッサ6と、ホストインターフェースブロック7と、SRAM8と、バッファメモリ9と、フラッシュメモリインターフェースブロック10と、誤り訂正ブロック11と、ROM(Read Only Memory)12とから構成される。これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積される。以下、各機能ブロックについて説明する。
ホストインターフェースブロック7は、ホストシステム4との間で行われるデータ、アドレス情報、ステータス情報、外部コマンド等の送受信を制御する。つまり、フラッシュメモリシステム1は、ホストインターフェースブロック7を介して、ホストシステム4から供給されるデータ等を取り込む。また、フラッシュメモリシステム1は、ホストインターフェースブロック7を介して、データ等をホストシステム4に供給する。外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
ホストインターフェースブロック7は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えている。コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3には、ホストシステム4から与えられる情報が書き込まれる。コマンドレジスタR1には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタR2には、書き込むデータ又は読み出すデータのセクタ数が書き込まれる。LBAレジスタR3には、書き込み又は読み出しを開始する論理セクタに対応するLBA(Logical Block Address)が書き込まれる。LBAは、512バイトの容量を持った論理セクタに割り当てられたアドレスである。
SRAM(Static Random Access Memory)8は、フラッシュメモリ2の制御に必要な情報を一時的に格納する揮発性メモリである。フラッシュメモリ2にアクセスするために必要な各種のテーブルは、SRAM8に保持され、SRAM8上で更新される。フラッシュメモリ2にアクセスするために必要なテーブルが、SRAM8に保持されていない場合は、そのテーブルはSRAM8上で作成される。但し、そのテーブルが、フラッシュメモリ2に格納されている場合は、格納されているテーブルがフラッシュメモリ2から読み出され、SRAM8に保持される。上記各種テーブルには、アドレス変換テーブル、検索テーブル、不良ブロックテーブル等が含まれる。アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を管理するためのテーブルである。検索テーブルは、空きブロックを検索するためのテーブルである。不良ブロックテーブルは不良ブロックを管理するためのテーブルである。
バッファメモリ9は、フラッシュメモリ2から読み出したデータ、又はフラッシュメモリ2に書き込むデータを、一時的に保持する揮発性メモリである。
フラッシュメモリインターフェースブロック10は、フラッシュメモリ2との間で行われるデータ、アドレス情報、ステータス情報、内部コマンド等の送受信を制御する。ここで、内部コマンドとは、メモリコントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、メモリコントローラ3から与えられる内部コマンドに従って動作する。
誤り訂正ブロック11は、フラッシュメモリ2にデータを書き込むときに、そのデータをBCH符号の誤り訂正符号(ECC:Error Correcting Code)に符号化し、フラッシュメモリ2から符号化されたデータを読み出したときに、その符号化されたデータを復号化する。つまり、フラッシュメモリ2に書き込まれるデータは、冗長ビットが付加されたBCH符号に符号化されてフラッシュメモリ2に書き込まれ、その符号化されたデータ(冗長ビットが付加されたデータ)は、読み出されたときに復号化される。この復号化では、符号化の際に付加される冗長ビットのビット数に応じて、所定のビット数までのビットエラーが訂正される。更に、誤り訂正ブロック11は、このBCH符号に基づいた訂正機能に加えて、当該訂正機能の訂正能力を超えるビット数のビットエラーが発生したことを検出する検出機能を備えている。
ROM12は、フラッシュメモリ2を制御するために必要なファームウェアを格納するための不揮発性の記憶素子である。尚、フラッシュメモリシステム1を起動させるために必要な最小限のファームウェアだけをROM12に格納し、その他のファームウェアをフラッシュメモリ2に格納するようにしてもよい。
マイクロプロセッサ6は、ROM12又はフラッシュメモリ2から、ファームウェアを読み込み、ファームウェアに従って動作する。メモリコントローラ3に含まれる機能ブロックは、マイクロプロセッサ6により制御される。
フラッシュメモリ2は、NAND型フラッシュメモリであり、レジスタと、複数のメモリセルが2次元的に配列されたメモリセルアレイを備えている。メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。ここで、メモリセル群は、複数のメモリセルが直列に接続されたものである。各ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、レジスタから選択されたメモリセルへのデータの書き込み又は選択されたメモリセルからレジスタへのデータの読み出しが行われる。尚、フラッシュメモリには、SLC(Single Level Cell)タイプのメモリセルで構成されたものと、MLC(Multi Level Cell)タイプのメモリセルで構成されたものがある。
NAND型フラッシュメモリでは、データ読み出し動作及びデータ書き込み動作はページ単位で行われ、データ消去動作はブロック(物理ブロック)単位で行われる。それぞれの物理ブロックは、複数のページ(物理ページ)で構成され、それぞれの物理ページは、ユーザ領域と冗長領域で構成されている。例えば、1ページの物理ページは、4セクタ(2048バイト)のユーザ領域と、64バイトの冗長領域とで構成され、1ページの物理ブロックは、64ページの物理ページで構成されている。ユーザ領域は、ホストシステム4から与えられるデータを主に格納するための領域であり、冗長領域は、論理アドレス情報、ブロックステータス(フラグ)等の付加データを主に格納するための領域である。
論理アドレス情報は、当該情報に係る物理ブロックと対応する論理ブロックを特定するための情報である。ブロックステータス(フラグ)は、当該情報に係る物理ブロックが、不良ブロック(正常にデータの書き込み等を行うことができない物理ブロック)であるか否かを示すフラグである。尚、不良ブロックには、初期不良の不良ブロックと後発不良の不良ブロックがある。初期不良の不良ブロックは、出荷前に検出された不良ブロックである。後発不良の不良ブロックは、使用中に生じた不良ブロックである。初期不良の物理ブロックについては、不良ブロックであることを示すブロックステータス(フラグ)が製造メーカによって書き込まれている。また、この初期不良の物理ブロックを示すブロックステータス(フラグ)を、ユーザ領域に書き込んでいる製造メーカもある。不良ブロックか否かの判断基準は、設計の際に決められる。
図2に示されているように、メモリコントローラ3は、複数の論理ブロックを形成し、論理ブロック単位でアドレス管理を行う。論理ブロックは、複数の論理ページから構成されており、論理ブロック番号(LBN:Logical Block Number)で管理されている。論理ページは、複数の論理セクタから構成されており、論理ページ番号(LPN:Logical Page Number)で管理されている。論理セクタは、LBAが割り当てられている。それぞれの論理ページを構成する複数の論理セクタは、論理セクタ番号(LSN:Logical Sector Number)で管理されている。図4に示されているように、論理ブロックは、論理ページ番号が割り当てられている論理ページ(マッピング論理ページ)と、論理ページ番号が割り当てられていない論理ページ(予備論理ページ)で構成されている。そして、論理ブロックに含まれるマッピング論理ページのページ数(aページ)と予備論理ページのページ数(bページ)の総和(a+bページ)は、常に一定になるように管理されている。
本実施の形態では、図8に示されているように、それぞれの論理ブロックが256ページの論理ページから構成されている。そして、図6に示されているように、初期化された状態では、それぞれの論理ブロックに、206ページのマッピング論理ページが振り分けられている。従って、それぞれの論理ブロックは、206ページのマッピング論理ページと50ページの予備論理ページから構成されている。つまり、初期化された状態では、論理ブロック番号0の論理ブロックは、論理ページ番号0から論理ページ番号205までの206ページの論理ページをマッピング論理ページとして有する。尚、論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数の総和は、任意で設定することができる。例えば、論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数の総和を、200ページ、又は250ページにしてもよい。論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数の総和を200ページにした場合、マッピング論理ページのページ数は、1ページから200ページの範囲で変更することができる。
このマッピング論理ページに対応する論理ページは、8個の論理セクタから構成されている。つまり、それぞれ論理ページは、論理セクタ番号0から論理セクタ番号7までの8個の論理セクタを有する。尚、ホストシステム4は、LBA0からLBA105471の範囲をアクセスするものとして、本実施の形態のフラッシュメモリシステム1を説明する。このアクセス範囲は、論理ページ単位で論理ブロック番号0から論理ブロック番号63までの64個の論理ブロックに振り分けられる。
図3に示されているように、論理ゾーンは、複数の論理ブロックから構成されており、論理ゾーン番号(LZN:Logical Zone Number)で管理されている。図3(a)に示されている論理ゾーンは、論理ゾーン数おきの論理ブロックで構成されている。このように、論理ブロックが各論理ゾーンに順次振り分けられている場合、それぞれの論理ゾーンは連続していない論理ブロックで構成されている。図3(b)に示されている論理ゾーンは、連続した論理ブロックで構成されている。論理ゾーンの構成はどちらの構成でもよい。
本実施の形態では、図7に示されているように、それぞれ論理ゾーンは、8個の論理ブロックで構成されている。論理ゾーン番号0の論理ゾーンは、論理ブロック番号0、8、16、24、32、40、48、56の論理ブロックを有する。論理ゾーン番号1の論理ゾーンは、論理ブロック番号1、9、17、25、33、41、49、57の論理ブロックを有する。論理ゾーン番号2の論理ゾーンは、論理ブロック番号2、10、18、26、34、42、50、58の論理ブロックを有する。論理ゾーン番号3の論理ゾーンは、論理ブロック番号3、11、19、27、35、43、51、59の論理ブロックを有する。論理ゾーン番号4の論理ゾーンは、論理ブロック番号4、12、20、28、36、44、52、60の論理ブロックを有する。論理ゾーン番号5の論理ゾーンは、論理ブロック番号5、13、21、29、37、45、53、61の論理ブロックを有する。論理ゾーン番号6の論理ゾーンは、論理ブロック番号6、14、22、30、38、46、54、62の論理ブロックを有する。論理ゾーン番号7の論理ゾーンは、論理ブロック番号7、15、23、31、39、47、55、63の論理ブロックを有する。
図5に示されているように、フラッシュメモリシステム1は、論理ページ番号に対応する物理ページ番号を格納するページ変換テーブルを有する。このページ変換テーブルは、論理ブロックに含まれるマッピング論理ページと、その論理ブロックに対応する物理ブロックに含まれる物理ページとの対応関係を管理するためテーブルである。このページ変換テーブルは、論理ブロックに含まれるそれぞれのマッピング論理ページに対応する物理ページの物理ページ番号が格納される物理ページ番号格納領域で構成されている。
例えば、論理ブロックに論理ページ番号0から論理ページ番号205までの206ページの論理ページがマッピング論理ページとして含まれている場合、図9に示されているように、論理ページ番号0から論理ページ番号205までのそれぞれの論理ページに対応する物理ページ番号が格納される。物理ブロックは、物理ページ番号0から物理ページ番号255までの256ページの物理ページで構成されているので、それぞれの物理ページ番号格納領域には、物理ページ番号0から物理ページ番号255までのいずれかの物理ページ番号が格納される。尚、論理ブロックに含まれるマッピング論理ページが、論理ページ番号0から論理ページ番号95までの96ページの論理ページに変更された場合は、論理ページ番号0から論理ページ番号95までのそれぞれの論理ページに対応する物理ページ番号が格納される。この場合、論理ページ番号0から論理ページ番号95までのそれぞれの論理ページに対応する96ページの物理ページ番号格納領域に物理ページ番号が格納される。
図10に示されているように、論理ゾーン番号0の論理ゾーンは、論理ブロック番号0、8、16、24、32、40、48、56の8個の論理ブロックから構成されている。論理ゾーン番号0の論理ゾーンには、1648ページ(206×8ページ)のマッピング論理ページが割り当てられている。初期状態では、この1648ページ(206×8ページ)のマッピング論理ページが、206ページずつ各物理ブロックに分配されている。尚、論理ゾーン全体としては、割り当てられているマッピング論理ページは変更されないが、各論理ブロックに分配されるマッピング論理ページのページ数は、後述する方法で変更される。
各論理ブロックに分配されるマッピング論理ページのページ数は、マッピングテーブルで管理されている。このマッピングテーブルには、各論理ブロックに分配されているマッピング論理ページのページ数であるマッピング数が格納される。初期値状態では、各論理ブロックのマッピング数は、206に設定される。そして、後述する方法により、論理ブロック番号0の論理ブロックに分配されるマッピング論理ページのページ数が96に変更された場合、論理ブロック番号0の論理ブロックに対応するマッピング数は、96に変更される。また、論理ブロック番号1の論理ブロックに分配されるマッピング論理ページのページ数が156に変更された場合、論理ブロック番号1の論理ブロックに対応するマッピング数は、156に変更される。このマッピング数に基づいて、論理ブロックに含まれるそれぞれのマッピング論理ページとLBAの対応関係を判別することができる。
次に、各物理ブロックに分配されるマッピング論理ページのページ数を変更する方法について説明する。この分配ページ数の変更は、論理ゾーン毎に行われる。この分配ページ数の変更は、論理ゾーンに含まれる各論理ブロックの書き込み頻度に基づいて行われる。この書き込み頻度は、各論理ブロックに関する書き込み回数に基づいて算出される。この書き込み回数は、論理ブロックに含まれる各論理ページに対応するデータを書き込んだ回数をカウントしたカウント値に対応する。書き込み頻度の算出は、所定の周期毎に行われる。この書き込み頻度の算出が行われたときに、書き込み回数(カウント値)が一旦クリアされる。つまり、書き込み回数(カウント値)は、所定の周期毎のカウント値に対応する。尚、所定の周期としては、論理ページ単位での書き込みの延べ回数が所定の回数に達するまでの期間、論理ページ単位での読み出しの延べ回数が所定の回数に達するまでの期間、論理ページ単位での書き込みおよび読み出しの延べ回数が所定の回数に達するまでの期間、ホストシステムから書き込みコマンドを与えられた延べ回数が所定の回数に達するまでの期間、ホストシステムからの読み出しコマンドを与えられた延べ回数が所定の回数に達するまでの期間、ホストシステムからの書き込みコマンドまたは読み出しコマンドを与えられた延べ回数が所定の回数に達するまでの期間、ホストシステムからコマンドを与えられた延べ回数が所定の回数に達するまでの期間、物理ブロック単位の消去を実行した延べ回数が所定の回数に達するまでの期間等のいずれかに基づいた周期を適用することができる。
例えば、論理ゾーン番号0の論理ゾーンにおいて、1周期の間の書き込み回数が、論理ブロック番号0の論理ブロックについては800回で、論理ブロック番号8の論理ブロックについては500回で、論理ブロック番号16の論理ブロックについては250回で、論理ブロック番号24の論理ブロックについては250回で、論理ブロック番号32の論理ブロックについては120回で、論理ブロック番号40の論理ブロックについては70回で、論理ブロック番号48の論理ブロックについては10回であった場合について説明する。
この場合、図11に示されているように、論理ゾーン番号0の論理ゾーンにおいて、論理ブロック番号0の論理ブロックの書き込み比率は40%になり、論理ブロック番号8の論理ブロックの書き込み比率は25%になり、論理ブロック番号16の論理ブロックの書き込み比率は12.5%になり、論理ブロック番号24の論理ブロックの書き込み比率は12.5%になり、論理ブロック番号32の論理ブロックの書き込み比率は6%になり、論理ブロック番号40の論理ブロックの書き込み比率は3.5%になり、論理ブロック番号48の論理ブロックの書き込み比率は0.5%になり、論理ブロック番号56の論理ブロックの書き込み比率は0%になる。この書き込み頻度の割合に応じて、各論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数が変更される。
本実施の形態では、各論理ブロックに含まれるマッピング論理ページのページ数の初期値が206に設定され、予備論理ページのページ数の初期値が50に設定されている。つまり、各論理ゾーンに割り当てられているマッピング論理ページの合計は、1648ページになっている。また、予備論理ページ数の合計は、400ページになっている。このマッピング論理ページのページ数の合計と予備論理ページのページ数の合計は、各論理ブロックに含まれるマッピング論理ページのページ数と予備物理ページのページ数が変更されても変化しない。
論理ブロック番号0の論理ブロックの書き込み比率が40.0%である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の40.0%である160ページに変更される。この変更に伴い、論理ブロック番号0の論理ブロックに分配されるマッピング論理ページのページ数は96ページ(256ページ−160ページ)に変更される。論理ブロック番号8の論理ブロックの書き込み比率が25.0%である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の25.0%である100ページに変更される。この変更に伴い、論理ブロック番号8の論理ブロックに分配されるマッピング論理ページのページ数は156ページ(256ページ−100ページ)に変更される。論理ブロック番号16の論理ブロックの書き込み比率が12.5%である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の12.5%である50ページのまま変更されない。従って、論理ブロック番号16の論理ブロックに分配されるマッピング論理ページのページ数も206ページ(256ページ−50ページ)のままで変更されない。論理ブロック番号24の論理ブロックの書き込み比率が12.5%である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の12.5%である50ページのまま変更されない。従って、論理ブロック番号24の論理ブロックに分配されるマッピング論理ページのページ数も206ページ(256ページ−50ページ)のままで変更されない。論理ブロック番号32の論理ブロックの書き込み比率が6.0%である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の6.0%である24ページに変更される。この変更に伴い、論理ブロック番号32の論理ブロックに分配されるマッピング論理ページのページ数は232ページ(256ページ−24ページ)に変更される。論理ブロック番号40の論理ブロックの書き込み比率が3.5%である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の3.5%である14ページに変更される。この変更に伴い、論理ブロック番号40の論理ブロックに分配されるマッピング論理ページのページ数は242ページ(256ページ−14ページ)に変更される。論理ブロック番号48の論理ブロックの書き込み比率が0.5%である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の0.5%である2ページに変更される。この変更に伴い、論理ブロック番号48の論理ブロックに分配されるマッピング論理ページのページ数は254ページ(256ページ−2ページ)に変更される。論理ブロック番号56の論理ブロックの書き込み比率が0.0%である為、この論理ブロックに含まれる論理ページのページ数は、全体の0.0%である0ページに変更される。この変更に伴い、論理ブロック番号56の論理ブロックに分配されるマッピング論理ページのページ数は256ページ(256ページ−0ページ)に変更される。尚、書き込み比率で算出した予備論理ページのページ数が、論理ブロックを構成する論理ページの総数(256ページ)以上になった場合、この例では、書き込み比率が64%以上になった場合、予備論理ページのページ数を255ページとする。つまり、論理ブロックに含まれるマッピング論理ページのページ数は少なくとも1ページになるようにする。そして、予備論理ページの総数からこの255ページを引いて余った145ページは、残りの論理ブロックにそれぞれの書き込み比率に応じて分配する。
図12に示されているように、図11の書き込み比率により、図10の初期状態から、各論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数が変更される。論理ブロック番号0の論理ブロックを構成する論理ページは、マッピング論理ページが96ページに、予備論理ページが160ページになる。論理ブロック番号8の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が156ページに、予備論理ページのページ数が100ページになる。論理ブロック番号16と32の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が206ページ、予備論理ページのページ数が50ページのまま変更されない。論理ブロック番号40の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が232ページに、予備物理ページのページ数が24ページになる。論理ブロック番号48の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が242ページに、予備論理ページのページ数が14ページになる。論理ブロック番号56の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が254ページに、予備物理ページのページ数が2ページになる。論理ブロック番号56の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が256ページに、予備物理ページのページ数が0ページになる。
このマッピング論理ページの分配比率の変更により、マッピングテーブルに格納されている各論理ブロックのマッピング数が更新される。論理ブロック0の論理ブロックのマッピング数は96に、論理ブロック8の論理ブロックのマッピング数は156に、論理ブロック32の論理ブロックのマッピング数は232に、論理ブロック40の論理ブロックのマッピング数は242に、論理ブロック48の論理ブロックのマッピング数は254に、論理ブロック56の論理ブロックのマッピング数は256に変更される。尚、論理ブロック16の論理ブロックと論理ブロック24の論理ブロックのマッピング数は206のままで変更されない。
図13に示されているように、書き込み頻度により、各論理ブロックに分配されるマッピング論理ページの分配比率が変更となる。また、論理ゾーンに割り当てられているマッピング論理ページの総ページ数は変わらない。
本実施の形態では、論理ブロック単位で論理ブロックと物理ブロックの対応関係を管理している。従って、論理ブロックに含まれる各マッピング論理ページに対応するデータは、その論理ブロックに対応する物理ブロック内の物理ページに格納されなければならない。したがって、論理ブロックを構成する論理ページが変更された場合、つまり、論理ブロックに含まれるマッピング論理ページが変更された場合、その変更に応じて、論理ブロックに含まれるマッピング論理ページに対応するデータをその論理ブロックに対応する物理ブロックに格納し直す必要がある。ここで、論理ブロックに含まれるマッピング論理ページが変更された場合とは、その論理ブロックに含まれるマッピング論理ページに対応するLBAの範囲が変更された場合である。従って、その論理ブロックに含まれるマッピング論理ページのページ数が変更されない場合でも、論理ブロックに含まれるマッピング論理ページが変化する場合がある。
この格納データを格納し直す処理を、図14を参照して説明する。論理ブロック番号0の新論理ブロックには、論理ブロック番号0の旧論理ブロックに含まれていたLPN0からLPN95までのマッピング論理ページが含まれる。従って、論理ブロック番号0の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号0の旧論理ブロックに含まれていたLPN0からLPN95までのマッピング論理ページに対応するデータが格納される。
論理ブロック番号8の新論理ブロックには、論理ブロック番号0の旧論理ブロックに含まれていたLPN96からLPN205までのマッピング論理ページと論理ブロック番号8の旧論理ブロックに含まれていたLPN0からLPN45までのマッピング論理ページが含まれる。従って、論理ブロック番号8の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号0の旧論理ブロックに含まれていたLPN96からLPN205までのマッピング論理ページに対応するデータと論理ブロック番号8の旧論理ブロックに含まれていたLPN0からLPN45までのマッピング論理ページに対応するデータが格納される。
論理ブロック番号16の新論理ブロックには、論理ブロック番号8の旧論理ブロックに含まれていたLPN46からLPN205までのマッピング論理ページと論理ブロック番号16の旧論理ブロックに含まれていたLPN0からLPN45までのマッピング論理ページが含まれる。従って、論理ブロック番号16の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号8の旧論理ブロックに含まれていたLPN46からLPN205までのマッピング論理ページに対応するデータと論理ブロック番号16の旧論理ブロックに含まれていたLPN0からLPN45までのマッピング論理ページに対応するデータが格納される。
論理ブロック番号24の新論理ブロックには、論理ブロック番号16の旧論理ブロックに含まれていたLPN46からLPN205までのマッピング論理ページと論理ブロック番号24の旧論理ブロックに含まれていたLPN0からLPN45までのマッピング論理ページが含まれる。従って、論理ブロック番号24の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号16の旧論理ブロックに含まれていたLPN46からLPN205までのマッピング論理ページに対応するデータと論理ブロック番号24の旧論理ブロックに含まれていたLPN0からLPN45までのマッピング論理ページに対応するデータが格納される。
論理ブロック番号32の新論理ブロックには、論理ブロック番号24の旧論理ブロックに含まれていたLPN46からLPN205までのマッピング論理ページと論理ブロック番号32の旧論理ブロックに含まれていたLPN0からLPN71までのマッピング論理ページが含まれる。従って、論理ブロック番号32の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号24の旧論理ブロックに含まれていたLPN46からLPN205までのマッピング論理ページに対応するデータと論理ブロック番号32の旧論理ブロックに含まれていたLPN0からLPN71までのマッピング論理ページに対応するデータが格納される。
論理ブロック番号40の新論理ブロックには、論理ブロック番号32の旧論理ブロックに含まれていたLPN72からLPN205までのマッピング論理ページと論理ブロック番号40の旧論理ブロックに含まれていたLPN0からLPN107までのマッピング論理ページが含まれる。従って、論理ブロック番号40の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号32の旧論理ブロックに含まれていたLPN72からLPN205までのマッピング論理ページに対応するデータと論理ブロック番号40の旧論理ブロックに含まれていたLPN0からLPN107までのマッピング論理ページに対応するデータが格納される。
論理ブロック番号48の新論理ブロックには、論理ブロック番号40の旧論理ブロックに含まれていたLPN108からLPN205までのマッピング論理ページと論理ブロック番号48の旧論理ブロックに含まれていたLPN0からLPN155までのマッピング論理ページが含まれる。従って、論理ブロック番号48の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号40の旧論理ブロックに含まれていたLPN108からLPN205までのマッピング論理ページに対応するデータと論理ブロック番号48の旧論理ブロックに含まれていたLPN0からLPN155までのマッピング論理ページに対応するデータが格納される。
論理ブロック番号56の新論理ブロックには、論理ブロック番号48の旧論理ブロックに含まれていたLPN156からLPN205までのマッピング論理ページと論理ブロック番号56の旧論理ブロックに含まれていたLPN0からLPN205までのマッピング論理ページが含まれる。従って、論理ブロック番号56の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号48の旧論理ブロックに含まれていたLPN156からLPN205までのマッピング論理ページに対応するデータと論理ブロック番号56の旧論理ブロックに含まれていたLPN0からLPN205までのマッピング論理ページに対応するデータが格納される。
以上のように再格納するため、物理ブロック間でデータ転送が行われる。論理ブロック番号0の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN0からLPN95までのマッピング論理ページに対応するデータは、論理ブロック番号0の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号0の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN96からLPN205までのマッピング論理ページに対応するデータは、論理ブロック番号8の新論理ブロックに割り当てられた物理ブロックへコピーされる。論理ブロック番号8の旧に割り当てられている物理ブロックに格納されているLPN0からLPN45までのマッピング論理ページに対応するデータは、論理ブロック番号8の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号8の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN46からLPN205までのマッピング論理ページに対応するデータは、論理ブロック番号16の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号16の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN0からLPN45までのマッピング論理ページに対応するデータは、論理ブロック番号16の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号16の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN46からLPN205までのマッピング論理ページに対応するデータは、論理ブロック番号24の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号24の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN0からLPN45までのマッピング論理ページに対応するデータは、論理ブロック番号24の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号24の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN46からLPN205までのマッピング論理ページに対応するデータは、論理ブロック番号32の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号32の論理ブロックに割り当てられている物理ブロックに格納されているLPN0からLPN71までのマッピング論理ページに対応するデータは、論理ブロック32番号の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号32の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN72からLPN205までのマッピング論理ページに対応するデータは、論理ブロック番号40の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号40の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN0からLPN107までのマッピング論理ページに対応するデータは、論理ブロック番号40の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号40の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN108からLPN205までのマッピング論理ページに対応するデータは、論理ブロック番号48の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号48の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN0からLPN155までのマッピング論理ページに対応するデータは、論理ブロック番号48の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号48に割り当てられている物理ブロックに格納されているLPN156からLPN205までのマッピング論理ページに対応するデータは、論理ブロック番号56の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号56の旧論理ブロックに割り当てられている物理ブロックに格納されているLPN0からLPN205までのマッピング論理ページに対応するデータは、論理ブロック56用の新論理ブロックに割り当てられた物理ブロックにコピーされる。
以上、本発明の実施の形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施の形態にのみ限定する趣旨ではない。本発明の要旨を逸脱しない範囲内において種々の変更を加え得ることは勿論である。
例えば、複数のフラッシュメモリをアクセスするために複数のチャンネルのバスを備えたフラッシュメモリシステムにおいても本発明は有効である。各チャンネルに接続された複数のフラッシュメモリから、それぞれ選択された複数の物理ブロックを、ひとつの仮想ブロックとして定義する。さらにその仮想ブロックを構成する複数の物理ブロックにそれぞれ含まれる複数の物理ページを、ひとつの仮想ページと定義する。この様な仮想空間に対しても本発明は適用可能である。その場合、ホストシステムのLBA空間からフラッシュメモリ内の物理アドレスへのアドレス変換は、仮想ブロックの単位で行われる。つまり、ひとつの論理ブロックはひとつの仮想ブロックに割り当てられ、ひとつの論理ページはひとつの仮想ページに割り当てられる。従って、論理ページのサイズは、仮想ページのユーザデータ領域の合計値に一致する。
本発明は、種々のデジタル情報を取り扱うパーソナルコンピュータやデジタルスチルカメラ等の電子機器に装着又内蔵される情報記憶(記録)装置に適用することができる。
1…フラッシュメモリシステム、2…フラッシュメモリ、3…メモリコントローラ
Claims (3)
- ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理手段と、
少なくとも1ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理手段と、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理手段と、
前記論理ゾーンに対して、前記マッピング論理ページを第1の所定数分割り当てる論理領域割り当て手段と、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第2の所定数分割り当てる予備領域割り当て手段と、
前記論理ゾーンに割り当てられている前記第1の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配手段と、
前記論理ゾーンに割り当てられている前記第2の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定手段と、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当て手段と、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納手段と
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数手段と、
前記計数手段により計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出手段とを備え、
前記比率算出手段は、所定の期間毎に、当該期間における前記計数値の比率を算出し、
前記分配数決定手段は、前記比率算出手段により前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数を決定し、
前記マッピング論理ページ分配手段は、前記分配数決定手段により前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第3の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数を決定し、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先を決定する、
ことを特徴とするメモリコントローラ。 - 請求項1に記載のメモリコントローラと、
このメモリコントローラにより制御されるフラッシュメモリを備えるフラッシュメモリシステム。 - ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理ステップと、
少なくとも1ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理ステップと、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理ステップと、
前記論理ゾーンに対して、前記マッピング論理ページを第1の所定数分割り当てる論理領域割り当てステップと、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第2の所定数分割り当てる予備領域割り当てステップと、
前記論理ゾーンに割り当てられている前記第1の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配ステップと、
前記論理ゾーンに割り当てられている前記第2の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定ステップと、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当てステップと、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納ステップと
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数ステップと、
前記計数ステップにより計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出ステップとを備え、
前記比率算出ステップは所定の期間毎に実行されるステップであり、当該ステップでは、当該期間における前記計数値の比率が算出され、
前記分配数決定ステップは、前記比率算出ステップにより前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して実行されるステップであり、当該ステップでは、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数が決定され、
前記マッピング論理ページ分配ステップは、前記分配数決定ステップにより前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して実行されるステップであり、当該ステップでは、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第3の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数が決定され、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先が決定される、
ことを特徴とするフラッシュメモリの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010198174A JP2012058770A (ja) | 2010-09-03 | 2010-09-03 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010198174A JP2012058770A (ja) | 2010-09-03 | 2010-09-03 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012058770A true JP2012058770A (ja) | 2012-03-22 |
Family
ID=46055854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010198174A Withdrawn JP2012058770A (ja) | 2010-09-03 | 2010-09-03 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012058770A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015052811A1 (ja) * | 2013-10-10 | 2015-04-16 | 株式会社日立製作所 | ストレージシステムおよびデータ記憶方法 |
JP2017151988A (ja) * | 2016-02-24 | 2017-08-31 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 大容量格納装置、システム、及び方法 |
JPWO2016174744A1 (ja) * | 2015-04-28 | 2017-12-28 | 株式会社日立製作所 | 不揮発性メモリの制御方法、制御装置、および半導体記憶装置 |
CN110321247A (zh) * | 2015-07-23 | 2019-10-11 | 东芝存储器株式会社 | 内存系统 |
CN113534682A (zh) * | 2020-04-16 | 2021-10-22 | 北京国电智深控制技术有限公司 | 工业控制器中管理逻辑块的方法和装置 |
JPWO2021015175A1 (ja) * | 2019-07-25 | 2021-12-23 | 株式会社ソニー・インタラクティブエンタテインメント | ストレージ管理装置、ストレージ管理方法およびプログラム |
-
2010
- 2010-09-03 JP JP2010198174A patent/JP2012058770A/ja not_active Withdrawn
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6006431B2 (ja) * | 2013-10-10 | 2016-10-12 | 株式会社日立製作所 | ストレージシステムおよびデータ記憶方法 |
WO2015052811A1 (ja) * | 2013-10-10 | 2015-04-16 | 株式会社日立製作所 | ストレージシステムおよびデータ記憶方法 |
US9817768B2 (en) | 2013-10-10 | 2017-11-14 | Hitachi, Ltd. | Storage system and data storing method |
US10388369B2 (en) | 2015-04-28 | 2019-08-20 | Hitachi, Ltd. | Nonvolatile memory control method, control device, and semiconductor storage device |
JPWO2016174744A1 (ja) * | 2015-04-28 | 2017-12-28 | 株式会社日立製作所 | 不揮発性メモリの制御方法、制御装置、および半導体記憶装置 |
CN110321247A (zh) * | 2015-07-23 | 2019-10-11 | 东芝存储器株式会社 | 内存系统 |
CN110321247B (zh) * | 2015-07-23 | 2023-05-26 | 铠侠股份有限公司 | 内存系统 |
JP2017151988A (ja) * | 2016-02-24 | 2017-08-31 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 大容量格納装置、システム、及び方法 |
US11048541B2 (en) | 2016-02-24 | 2021-06-29 | Samsung Electronics Co., Ltd. | VM-aware FTL design for SR-IOV NVMe SSD |
JPWO2021015175A1 (ja) * | 2019-07-25 | 2021-12-23 | 株式会社ソニー・インタラクティブエンタテインメント | ストレージ管理装置、ストレージ管理方法およびプログラム |
JP7314277B2 (ja) | 2019-07-25 | 2023-07-25 | 株式会社ソニー・インタラクティブエンタテインメント | ストレージ管理装置、ストレージ管理方法およびプログラム |
US11899930B2 (en) | 2019-07-25 | 2024-02-13 | Sony Interactive Entertainment Inc. | Storage management apparatus, storage management method, and program |
CN113534682A (zh) * | 2020-04-16 | 2021-10-22 | 北京国电智深控制技术有限公司 | 工业控制器中管理逻辑块的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
US9520992B2 (en) | Logical-to-physical address translation for a removable data storage device | |
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US8046526B2 (en) | Wear leveling method and controller using the same | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US8332576B2 (en) | Data reading method for flash memory and controller and storage system using the same | |
US8825941B2 (en) | SLC-MLC combination flash storage device | |
US8407397B2 (en) | Block management method for flash memory and controller and storage system using the same | |
US9626287B2 (en) | Solid state memory formatting | |
US9268688B2 (en) | Data management method, memory controller and memory storage apparatus | |
US20100306447A1 (en) | Data updating and recovering methods for a non-volatile memory array | |
US9721669B2 (en) | Data protection method, memory control circuit unit and memory storage apparatus | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
JP2012058770A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
JP4737223B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP3808842B2 (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 | |
JP2012068764A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
JP2009301491A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20131105 |