JP2009003784A - 不揮発性メモリの制御装置及び制御方法及び記憶装置 - Google Patents
不揮発性メモリの制御装置及び制御方法及び記憶装置 Download PDFInfo
- Publication number
- JP2009003784A JP2009003784A JP2007165369A JP2007165369A JP2009003784A JP 2009003784 A JP2009003784 A JP 2009003784A JP 2007165369 A JP2007165369 A JP 2007165369A JP 2007165369 A JP2007165369 A JP 2007165369A JP 2009003784 A JP2009003784 A JP 2009003784A
- Authority
- JP
- Japan
- Prior art keywords
- physical block
- logical
- block
- file
- physical
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】不揮発性メモリの物理ブロックの消去回数の平均化処理(物理ブロックの交替処理)を容易でかつ高速化する。
【解決手段】不揮発性メモリのファイルシステムを解析しリードオンリー的ファイルの論理ブロックを識別するファイルシステム制御部102eと、前記論理ブロックに対応する物理ブロックアドレスから第1の物理ブロックを得る論理−物理ブロックアドレス変換テーブル管理部102bと、物理ブロック使用状況情報と物理ブロック消去回数情報から所定の条件を満足した任意使用可能な第2の物理ブロックを選択する物理ブロック情報管理部102Yを有する。そして前記第1の物理ブロックのデータを前記第2の物理ブロックに移し、前記第2の物理ブロックのアドレスを前記論理ブロックアドレスに対応つけ、前記第1及び第2の物理ブロックの使用状況を修正する物理ブロック情報修正部102gを有する。
【選択図】図1
【解決手段】不揮発性メモリのファイルシステムを解析しリードオンリー的ファイルの論理ブロックを識別するファイルシステム制御部102eと、前記論理ブロックに対応する物理ブロックアドレスから第1の物理ブロックを得る論理−物理ブロックアドレス変換テーブル管理部102bと、物理ブロック使用状況情報と物理ブロック消去回数情報から所定の条件を満足した任意使用可能な第2の物理ブロックを選択する物理ブロック情報管理部102Yを有する。そして前記第1の物理ブロックのデータを前記第2の物理ブロックに移し、前記第2の物理ブロックのアドレスを前記論理ブロックアドレスに対応つけ、前記第1及び第2の物理ブロックの使用状況を修正する物理ブロック情報修正部102gを有する。
【選択図】図1
Description
この発明は不揮発性メモリの制御装置及びその制御方法及び記憶装置に関するもので、特にファイルシステムの情報を利用して論理ブロックアドレス対物理ブロックアドレス変換テーブルを管理する不揮発性メモリの管理方法に工夫がなされている。
NAND型フラッシュメモリは、データ書き換え可能な不揮発性メモリとして知られている。この不揮発メモリは、消去単位は、1物理ブロック単位(例えば128Kバイト)である。一方、データ読み取り単位及び書き込み単位は、例えば2Kバイトに規定されている。またこの不揮発性メモリは、消去または書き込み回数が多くなると素子が劣化し、エラー発生が多くなる。そこで、素子の性能を保証する要素として、書き換え回数を例えば10万回程度に規定している。このために、不揮発性メモリのメモリ制御部に対しては、物理ブロックの消去回数を管理する機能が組み込まれている(例えば特許文献1)。
また書き換え回数の多いファイルアロケーションテーブル(FAT)の領域を、任意に変更して記憶領域の消去回数を平均化するという提案もある(例えば特許文献2)。
従来の不揮発性メモリの管理方法であると、メモリ全体の物理ブロック単位で消去回数を管理している。このために、消去回数の情報処理に時間がかかる。
特開平11−3287号公報
特開平7−219720号公報
この発明の目的は、ファイルシステムの情報を利用することにより、不揮発性メモリの物理ブロックの消去回数の平均化処理(物理ブロックの交替処理)を容易でかつ高速化することができる不揮発性メモリの制御装置及び制御方法及び記憶装置を提供することにある。
上記課題を解決するために、ファイルシステムを解析することで、リードオンリーファイル属性もしくは拡張子から主にリード用途として使用されると判断されるファイルのデータが格納されてある論理ブロックアドレスを識別し、論理-物理ブロックアドレス変換テーブルにより、前記論理ブロックに対応付けられている物理ブロックを得る手段と、物理ブロック毎の消去回数情報に基づき任意使用可能な物理ブロック群から適当な物理ブロックを選択する手段と、前記手段により求められる物理ブロック間の役割(有効なデータを格納しているin use←→任意に使用可能なready状態)を入れ替える手段を有する。
具体的には不揮発性メモリデバイスのファイルシステムを解析し、リード用途に使用されると判断されるリードオンリー的ファイルの論理ブロックを識別するファイルシステム制御部と、論理-物理ブロックアドレス変換テーブルを用いて、前記論理ブロックに対応する物理ブロックアドレスから第1の物理ブロックを得る論理−物理ブロックアドレス変換テーブル管理部と、物理ブロック使用状況情報と物理ブロック消去回数情報を参照して、任意使用可能な物理ブロック群から所定の条件を満足した第2の物理ブロックを選択する物理ブロック情報管理部と、前記第1の物理ブロックのデータを前記第2の物理ブロックに移し、前記第2の物理ブロックのアドレスを前記論理ブロックアドレスに対応付け、前記物理ブロック使用状況情報における前記第1及び第2の物理ブロックの使用状況を修正する物理ブロック情報修正部を有する。
上記の手段によると、ファイルシステムの情報を用いて、交換すべき物理ブロック群を一挙に把握することが可能となり、高速処理に好適となる。
以下図面を参照して、この発明の実施の形態を説明する。まず、本発明が適用された記憶装置の構成を図1に示して説明する。
<記憶装置>
記憶装置100は、不揮発性メモリデバイス101、マイクロプロセッシングユニット(以下MPUと記す)102、ランダムアクセスメモリユニット(以下RAMと記す)103、ホストインターフェース104、不揮発性メモリインターフェース105を有する。
記憶装置100は、不揮発性メモリデバイス101、マイクロプロセッシングユニット(以下MPUと記す)102、ランダムアクセスメモリユニット(以下RAMと記す)103、ホストインターフェース104、不揮発性メモリインターフェース105を有する。
不揮発性メモリデバイス101の記憶領域は、多数の物理ブロックPHBで構成され、その記憶領域の一部にファイルシステム101aを含む。
このファイルシステム101aには、データ領域管理情報1011、データ領域1012が含まれる。データ領域管理情報1011は、ファイルアロケーションテーブル(FAT)を含む。またデータ領域1012は、フォルダ、ファイルデータなどを含む。
RAM103に設定されている格納部としては、以下のような情報部を挙げることができる。論理ブロックアドレスと物理ブロックアドレスの対応付けを行なったテーブルを有する論理−物理ブロックアドレス変換テーブル情報部103bがある。更に物理ブロック情報管理部102Yがある。この物理ブロック情報管理部102Yは、物理ブロックの使用状況を格納した物理ブロック使用状況情報部103c、物理ブロック消去回数情報部103cを有する。また図示していないが、MPU102で実行するためのプログラムを展開する領域も確保される。
なお上記の論理ブロックアドレスとは、ホストが利用する論理アドレス空間の論理ブロックアドレスである。また物理ブロックアドレスは、不揮発性メモリデバイス101内の物理ブロックアドレスである。
また上記の物理ブロック使用状況情報部103cは、任意に使用可能な状態になった物理ブロックのブロックアドレスを登録している。ここでは論理ブロックアドレスと物理ブロックアドレスの対応付けがされていない物理ブロックのアドレスが登録されている。または、全物理ブロックのアドレスが記述され、論理ブロックと対応付けされているか否かの識別子が付加される。
物理ブロック消去回数情報部103dは、物理ブロックアドレス使用状況情報部103cに登録されている任意使用可能な物理ブロックの各消去回数を格納するものである。
物理ブロック使用状況情報部103c、物理ブロック消去回数情報部103dは、任意に使用可能な状態になった物理ブロックのブロックアドレスを有するとしたが、全ての物理ブロックのブロックアドレスを有してもよい。
上記RAM103内の、物理ブロック使用状況情報、論理−物理ブロックアドレス変換テーブル、物理ブロックアドレス、物理ブロック消去回数などの情報は、MPU102の機能により管理及び処理される。
従って、MPU102は、論理−物理ブロックアドレス変換テーブル管理部102b、物理ブロックの使用状況を格納した物理ブロック使用状況管理部102c,物理ブロック消去回数管理部102dを有する。また不揮発性メモリデバイス101内のファイルシステムを制御するファイルシステム制御部102e、さらには、この装置の特徴となる物理ブロック情報修正部102gを有する。この物理ブロック情報修正部102gはファイルシステム制御部102e内に含まれてもよいが、説明をわかりやすくするために示した。後述するように第1の物理ブロックのデータを第2の物理ブロックに移し、第2の物理ブロックのアドレスを論理ブロックアドレスに対応つけことができる。また、物理ブロック使用状況情報における第1及び第2の物理ブロックの使用状況を修正することもできる。さらにまたこの物理ブロック情報修正部102gは、物理ブロック使用状況情報部における第1の物理ブロックの使用状況を修正する際に第1の物理ブロックのデータを消去することができる。
また上記管理部を統括する統合処理部102xも有する。統合処理部102xはデータの書き込み、読出しも実行する。
ファイルシステム制御部102eは、ファイルシステムを解析することができるし、またファイルシステムの更新処理を行うことができる。フィルシステムを解析するときは、フォルダ内の各ファイルのファイル情報がチェックされる。ファイル情報には、リードオンリー的ファイルであるか否かを示す属性情報が含まれる。または拡張子によりリードオンリー的ファイルであるか否かを判断できる場合もある。次にFATを利用してリード用途として使用されると判断されるファイルのデータが格納されてある論理ブロックアドレスを識別することができる。
論理−物理ブロックアドレス変換テーブル管理部102bは、論理−物理ブロックアドレス変換テーブルを制御する。これにより、論理ブロックに対応付けられている物理ブロックが把握される(現在物理ブロック又は第1の物理ブロックと称する)。
また、物理ブロック情報管理部102Yが参照される。例えば物理ブロック使用状況情報部103cがアクセスされ、物理ブロック毎の消去回数情報に基づき任意使用可能な物理ブロック群から適当な物理ブロックが選択される(選択物理ブロック又は第2の物理ブロックと称する)。さらに、使用中の現在物理ブロックのアドレスと、選択物理ブロックのアドレスが論理−物理ブロックアドレス変換テーブルで入れ替えされる。この処理は主に物理ブロック情報修正部102gにより実行される。
さらに使用中の現在物理ブロックのデータが、選択物理ブロックに移動される。そして、現在物理ブロックのデータは、消去処理され、その消去回数が更新される。そして、この現在物理ブロックは、任意使用可能な物理ブロックとして、物理ブロック使用状況管理部102cの制御のもとで、物理ブロック使用状況情報部103cに登録される。つまり先の現在物理ブロックは、有効なデータを格納しているin use状態から任意に使用可能なready状態に変更される。
<ファイルシステムの基本構成>
図2は、ファイルシステムの構成例を示す図である。データ領域管理情報1011には、ファイルのデータ本体以外の情報が格納されている。即ち、ブートセクタ201、FAT202、ルートフォルダ203が含まれる。またデータ領域1012には、フォルダ及び又はファイル204が含まれている。
図2は、ファイルシステムの構成例を示す図である。データ領域管理情報1011には、ファイルのデータ本体以外の情報が格納されている。即ち、ブートセクタ201、FAT202、ルートフォルダ203が含まれる。またデータ領域1012には、フォルダ及び又はファイル204が含まれている。
<FATとファイルのクラスタチェーン;図3、図4>
図3に上記FATの一例を示す。図4は、6つのクラスタで構成されるファイルのチェーンテーブルの1例を示す。
図3に上記FATの一例を示す。図4は、6つのクラスタで構成されるファイルのチェーンテーブルの1例を示す。
FATは、図3に示すようにデータ領域1012に割り当てられたクラスタと呼ばれるデータ単位で、各ファイルの構成を示すテーブルである。
今、あるファイルAが、図4の401で示すように6つのクラスタで構成されるものする。FATデータは、ファイルAを構成する最初のクラスタアドレスから順に参照できるように、ファイルを構成する複数のクラスタアドレスを示すクラスタチェーンを作っている。
ファイルの最終クラスタはチェーンがないためFFFFhを示す。また、更に幾つかのテーブルデータは特別なクラスタを示し、0000hは未使用クラスタ、F8FFhは予約システムデータ等を示す。
2クラスタが1物理ブロック(=1論理ブロック)に相当すると仮定すると図4で示すファイルがリードオンリー的ファイルであると判別される時、符号301で示される論理ブロックに対応する物理ブロックが図10(後述)で処理される対象となりうる。
<フォルダ内のファイル情報>
フォルダには1つ又はそれ以上のファイル(1例を図4で示した)が格納される。図5は、フォルダの中にファイル毎に存在するファイル情報を示す図である。ファイル情報には、識別子を含むファイル名情報が記入されてある形式名情報503と、ファイル属性情報501を含む。ファイル属性情報501にはリードオンリー情報502が含まれる。またファイル情報には、FATのファイルチェーンの先頭情報(先頭クラスタアドレス)504も含まれるものとする。
フォルダには1つ又はそれ以上のファイル(1例を図4で示した)が格納される。図5は、フォルダの中にファイル毎に存在するファイル情報を示す図である。ファイル情報には、識別子を含むファイル名情報が記入されてある形式名情報503と、ファイル属性情報501を含む。ファイル属性情報501にはリードオンリー情報502が含まれる。またファイル情報には、FATのファイルチェーンの先頭情報(先頭クラスタアドレス)504も含まれるものとする。
したがって、ファイル識別情報のリードオンリー情報502の内容を判断したとき、当該ファイルがリードオンリー的なファイルであるかどうかを判定することができる。
<不揮発性メモリデバイス内の記憶領域601>
図6は、不揮発性メモリデバイス内の記憶領域の例を示したものである。不揮発性メモリデバイス101上の記憶領域601は、全て物理ブロックで構成されるものであり、論理ブロックとは、論理−物理ブロックアドレス変換テーブル情報部107で対応付けられている。また、この物理ブロック群は、割り当て済みの物理ブロック602と、任意に使用可能な物理ブロック603に分類されうる。
図6は、不揮発性メモリデバイス内の記憶領域の例を示したものである。不揮発性メモリデバイス101上の記憶領域601は、全て物理ブロックで構成されるものであり、論理ブロックとは、論理−物理ブロックアドレス変換テーブル情報部107で対応付けられている。また、この物理ブロック群は、割り当て済みの物理ブロック602と、任意に使用可能な物理ブロック603に分類されうる。
後述する図11で説明される物理ブロックPnと図12で説明されるPs‘は、任意に使用可能な物理ブロック603に変化し、図11で説明される物理ブロックPmと図12で説明されるPsは、論理ブロックと論理−物理ブロックアドレス変換テーブル情報部107で対応付けられる、割り当て済みの物理ブロック602に変化する。
<論理-物理ブロックアドレス変換テーブル>
図7は、図1における論理−物理ブロックアドレス変換テーブル107の1例を示す図である。論理ブロックアドレス701が、RAM103上の任意の番地から始まる4バイト単位のオフセットアドレスに相当し、データ部には、前記論理ブロックアドレス301に対応付けられた物理ブロックアドレスデータ702が格納される。物理ブロックが対応付けられていない論理ブロックアドレスのデータ部は、FFFFFFFFhデータ(703)が格納されている。
図7は、図1における論理−物理ブロックアドレス変換テーブル107の1例を示す図である。論理ブロックアドレス701が、RAM103上の任意の番地から始まる4バイト単位のオフセットアドレスに相当し、データ部には、前記論理ブロックアドレス301に対応付けられた物理ブロックアドレスデータ702が格納される。物理ブロックが対応付けられていない論理ブロックアドレスのデータ部は、FFFFFFFFhデータ(703)が格納されている。
後述する図11におけるステップB00では、符号704に示すアドレスデータ変更処理が行われるものであり、図12におけるステップC12では、符号705に示すアドレスデータ変更処理が行われる。
<物理ブロック消去回数情報>
図8は図1の物理ブロック消去回数情報部103dの一例を説明する図である。物理ブロックアドレス801が、RAM103上の任意の番地から始まる4バイト単位のオフセットアドレスに相当し、データ部は物理ブロックアドレス毎の消去回数データ802が格納される。後述する図11におけるステップB05では、データ消去処理が行われるが、このときは符号803に示すようにデータ消去処理が行われる。また後述する図12におけるステップC0Aでは、消去回数データの更新処理が行われるが、このときは符号805に示すように消去回数データの更新処理が行われるものである。また後述する図11における物理アドレスPnの消去回数は符号804で示すように処理するものとする。
図8は図1の物理ブロック消去回数情報部103dの一例を説明する図である。物理ブロックアドレス801が、RAM103上の任意の番地から始まる4バイト単位のオフセットアドレスに相当し、データ部は物理ブロックアドレス毎の消去回数データ802が格納される。後述する図11におけるステップB05では、データ消去処理が行われるが、このときは符号803に示すようにデータ消去処理が行われる。また後述する図12におけるステップC0Aでは、消去回数データの更新処理が行われるが、このときは符号805に示すように消去回数データの更新処理が行われるものである。また後述する図11における物理アドレスPnの消去回数は符号804で示すように処理するものとする。
<物理ブロック使用状況情報>
図9は、図1における物理ブロック使用状況情報部103cの一例を示す図である。物理ブロックアドレス901が、RAM103上の任意の番地から始まる1ビット単位のオフセットアドレスに相当し、データ部は任意に使用可能か否かを示す1ビットのフラグデータ902で構成される。任意に使用可能な物理ブロックアドレスで参照されるデータ部は、‘1’を格納し、すでに使用中ある物理ブロックアドレスで参照されるデータ部は‘0’を格納する。後述する図11におけるステップB09では、物理ブロックを使用状態に設定するが、このときは符号903に示すフラグ処理が行われる。逆に図11のステップB10では、物理ブロックを未使用状態に設定するが、このときは符号904に示すフラグ処理が行われる。後述する図12におけるステップC01では、符号905に示すフラグ処理が行われ、ステップC10では、符号906に示すフラグ処理が行われるものである。
図9は、図1における物理ブロック使用状況情報部103cの一例を示す図である。物理ブロックアドレス901が、RAM103上の任意の番地から始まる1ビット単位のオフセットアドレスに相当し、データ部は任意に使用可能か否かを示す1ビットのフラグデータ902で構成される。任意に使用可能な物理ブロックアドレスで参照されるデータ部は、‘1’を格納し、すでに使用中ある物理ブロックアドレスで参照されるデータ部は‘0’を格納する。後述する図11におけるステップB09では、物理ブロックを使用状態に設定するが、このときは符号903に示すフラグ処理が行われる。逆に図11のステップB10では、物理ブロックを未使用状態に設定するが、このときは符号904に示すフラグ処理が行われる。後述する図12におけるステップC01では、符号905に示すフラグ処理が行われ、ステップC10では、符号906に示すフラグ処理が行われるものである。
<リードオンリー的論理ブロックの検索>
図10は、図11のB01の動作を説明するフロー図である。図10すなわち図11の動作実施タイミングは任意であり特に問わないが、図13で示すホストからの命令の合間や、MPU12上で動作するプログラムが実行される合間に実施されることが好ましい。
図10は、図11のB01の動作を説明するフロー図である。図10すなわち図11の動作実施タイミングは任意であり特に問わないが、図13で示すホストからの命令の合間や、MPU12上で動作するプログラムが実行される合間に実施されることが好ましい。
また、本実施形態では、図14で示すようなファイル構造のフォルダ解析をどのフォルダから解析するか、どのファイルから解析するか、クラスタチェーンのどこから解析するかについては特に問わない。
フォルダに1つ以上のファイルが存在すならば、そのフォルダには1つ以上のファイルのファイル情報(図5)が格納されており、そのファイル情報からリードオンリーファイル的であるかを解析する(ステップA01)。リードオンリー的ファイルが、存在しなければ終了となり、必要に応じて別のフォルダを解析する。リードオンリー的ファイルが、存在すればファイルの先頭クラスタアドレス504(図5に示した)から図4に示すようなクラスタチェーンを伝う(ステップA03)。そして、図3の符号301で示したような論理ブロック包括されている箇所を判別し(ステップA04)、クラスタアドレスを論理ブロックアドレスに換算する(ステップA05)。これにより、リードオンリー的ファイル内の論理ブロックアドレスが判別される。
<基本動作>
図11は、本発明の基本動作を説明するフロー図である。RAM103に格納されてあるプログラムの1部は、ファイルシステム106を解析することでリードオンリー的ファイルの論理ブロックLkを求めることができる(ステップB01)。
図11は、本発明の基本動作を説明するフロー図である。RAM103に格納されてあるプログラムの1部は、ファイルシステム106を解析することでリードオンリー的ファイルの論理ブロックLkを求めることができる(ステップB01)。
前記論理ブロックLkが存在しなければ終了し(ステップB02)、論理ブロックLkが存在すれば、論理ブロックLkが割り当てられている物理ブロックPnを論理-物理ブロックアドレス変換テーブル情報部107を参照して求める(ステップB03)。
次に、物理ブロックPnに関して、物理アドレス消去回数情報部111を参照し、物理ブロックPnの消去回数の値が、ある任意の閾値より大きいかどうかを判断する
物理ブロックPnの消去回数の値が、ある任意の閾値よりも大きければ、論理ブロックLkに対する物理ブロック入れ替え処理は行わないものとし、ある任意の閾値以下であれば次の処理を行う(ステップB04)。
物理ブロックPnの消去回数の値が、ある任意の閾値よりも大きければ、論理ブロックLkに対する物理ブロック入れ替え処理は行わないものとし、ある任意の閾値以下であれば次の処理を行う(ステップB04)。
任意に使用可能で前記閾値値以上の物理アドレス消去回数を持つ物理ブロックから任意の物理ブロックPmを選択し(ステップB0A)、前記物理ブロックPmのデータを消去する(ステップB05)。次に物理ブロックPmの物理ブロック消去回数データを更新し(ステップB06)、物理ブロックPnのデータを物理ブロックPmにコピーする(ステップB07)。
次に、論理-物理ブロックアドレス変換テーブル107の論理ブロックLkに対応する物理ブロック情報をPnからPmに更新し(ステップB08)、物理ブロック使用状況情報部108の物理ブロックPmのフラッグを使用状態に変更する(ステップB09)。さらに、物理ブロック使用状況情報部108の物理ブロックPnの情報を未使用状態に変更する(ステップB10)。以上の動作により、論理ブロックLkは、より書き込み回数耐性の低い物理ブロックに対応付けられる。
<ホストからのコマンドに応答した動作例の説明>
図12は、本発明の装置がホストからのライトコマンドを受けて、データ処理する時の動作例を説明するフロー図である。
図12は、本発明の装置がホストからのライトコマンドを受けて、データ処理する時の動作例を説明するフロー図である。
いま、MPU102が、ホストインターフェース104を介してホストからのライトコマンドを受け取ったとする。すると、MPU102は、物理ブロック使用状況情報部103cから未使用の物理ブロックPsを検索し(ステップC00)、物理ブロック使用状況情報部103cの物理ブロックPs使用情報を変更し(ステップC01)、物理ブロックPsのデータ消去処理を行い(ステップC02)、物理ブロックPsの物理ブロック消去回数データを更新する(ステップC0A)。
次に論理−物理ブロックアドレス変換テーブル情報部103bのテーブル上で、ホストがデータをライトするべき論理ブロックLmに関する情報を求める(ステップC03)。つまり、論理ブロックLmに対応した物理ブロックが存在するかどうかを判断するためである。ここで論理ブロックLmに物理ブロックPs’が登録済でなければ、ホストからのデータを物理ブロックPsに書き込む(ステップC11)が、登録済(物理ブロックPs’としてすでに存在している場合)であればステップC05へ進む(ステップC04)。
ホストが指定しているホストスタートアドレスが物理ブロックの境界でないかどうかを判定する(ステップC05)。書き込みスタートアドレスが必ずしも、物理ブロックの先頭とはかぎらないからである。
ブロック境界でない場合、物理ブロックPs’内のデータであって、前記スタートアドレスよりも前のデータをまず物理ブロックPsにコピーする(ステップC06)。これによりデータの取りこぼしを防止している。ブロック境界であった場合は、前記スッテップをスキップして、ホストからのデータを物理ブロックPsに書き込む(ステップC07)。
ホストから指定されているホストエンドアドレスが、スタートアドレスと同じブロックであって、かつ、ブロック境ではないかどうかを判別する(ステップC08)。ブロック境界であった場合は、物理ブロックPs’内のデータであって、エンドアドレス後のデータを物理ブロックPsにコピーする(ステップC09)。
物理ブロックPs’は、この時点で任意に使用可能な物理ブロックとして物理ブロック使用状況情報部103cに登録される(ステップC10)。また論理−物理ブロックアドレス変換テーブル上の論理ブロックLmにPSを対応付けて登録する(ステップC12)。ホストからのライトアクセス対象が1ブロックを超える場合は、更にステップC00からの動作を繰り返すものである。
<ホストからのコマンド>
図13は、本発明の装置に対してホストから送られる情報の一例を時系列に示して説明する図である。ホストからは、記憶装置100に送られる情報の期間を分類すると、ライトコマンド期間、データ転送期間、リードコマンド期間、データ転送期間などがある。この中で、リードオンリー的ファイルの処理期間(1301)を設定してもよい。このリードオンリー的ファイルの処理期間1301に送るROコマンドを新設し、このROコマンドにMPU102が応答し、図10、図11で示した動作を得る。
図13は、本発明の装置に対してホストから送られる情報の一例を時系列に示して説明する図である。ホストからは、記憶装置100に送られる情報の期間を分類すると、ライトコマンド期間、データ転送期間、リードコマンド期間、データ転送期間などがある。この中で、リードオンリー的ファイルの処理期間(1301)を設定してもよい。このリードオンリー的ファイルの処理期間1301に送るROコマンドを新設し、このROコマンドにMPU102が応答し、図10、図11で示した動作を得る。
<フォルダの例>
図14は、フォルダのツリー構造の例を説明する図である。頂点は、ルートフォルダD03であり、ルートフォルダD03を頂点としてフォルダツリーが構成され、其のフォルダ(D01、D03)にファイルD02が属する。
図14は、フォルダのツリー構造の例を説明する図である。頂点は、ルートフォルダD03であり、ルートフォルダD03を頂点としてフォルダツリーが構成され、其のフォルダ(D01、D03)にファイルD02が属する。
上記したように本実施形態は、ファイルシステム情報を解析することでシステム的にリードオンリー用途の論理ブロックを検索し、前記論理ブロックと論理−物理ブロックアドレス変換テーブルで対応付けられている物理ブロックを処理する。このために、従来必要とされる物理ブロック単位の監視情報部(容量が増えるほど監視用のテーブルが増えるので幅広いメモリ領域を必要する)を設けることなく、ライトアクセスの可能性が少ない物理ブロックの選択が可能である。
本実施形態は、ブロック単位にイレーズ/ライト使用回数に限りの有る不揮発性メモリにおいて、使用制限回数に近い物理ブロックにライトアクセスの可能性が少ないデータを保存し、使用制限回数に遠い物理ブロックを任意に使用可能な状態、すなわち、データライト用途に確保しておくことができる。よって記憶装置全体としての書き換え限度回数の向上を図ることが出来る。
上記したように、本装置は、書き換え寿命が短くなった物理ブロックを書き換える確率が低い論理アドレスに割り当て、書き換え寿命が長き物理ブロックを書き換える確率が高い任意使用可能な物理ブロックまたは論理アドレスに割り当てることにより、記憶装置全体としての書き換え限度回数の向上を図ることが出来る。
また任意使用可能な物理ブロックに割り当てる際に予めデータを消去しておくことで、ホストからのデータライトに対するそのつどの物理ブロックの消去時間及びホストからのデータライトに付随して発生する冗長なデータライト時間を削減でき、ホストからの書き込み処理を高速に出来る。
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
101・・・不揮発性メモリデバイス、102・・・MPU、103・・・RAM、104・・・ホストインターフェース、105・・・不揮発性メモリインターフェース、101a・・・ファイルシステム、103b・・・論理-物理ブロックアドレス変換テーブル情報部、103c・・・物理ブロック使用状況情報部、103d・・・物理ブロック消去回数情報部、1011・・・データ領域管理情報、1012・・・データ領域。
Claims (11)
- 不揮発性メモリデバイスのファイルシステムを解析し、リード用途に使用されると判断されるリードオンリー的ファイルの論理ブロックを識別するファイルシステム制御部と、
論理-物理ブロックアドレス変換テーブルを用いて、前記論理ブロックに対応する物理ブロックアドレスから第1の物理ブロックを得る論理−物理ブロックアドレス変換テーブル管理部と、
物理ブロック使用状況情報と物理ブロック消去回数情報を参照して、任意使用可能な物理ブロック群から所定の条件を満足した第2の物理ブロックを選択する物理ブロック情報管理部と、
前記第1の物理ブロックのデータを前記第2の物理ブロックに移し、前記第2の物理ブロックのアドレスを前記論理ブロックアドレスに対応付け、前記物理ブロック使用状況情報における前記第1及び第2の物理ブロックの使用状況を修正する物理ブロック情報修正部を有することを特徴とする不揮発性メモリの制御装置。 - 物理ブロック情報修正部は、
物理ブロック使用状況情報部における前記第1の物理ブロックの使用状況を修正する際に、該当第1の物理ブロックのデータを消去することを特徴とする請求項1記載の不揮発性メモリの制御装置。 - 前記ファイルシステム制御部は、ホストからの所定のコマンドがあったときに、前記リードオンリー的ファイルのデータが格納されている論理ブロックを識別するのを開始することを特徴とする請求項1記載の不揮発性メモリの制御装置。
- 前記ファイルシステム制御部は、前記不揮発性メモリのファイルシステムに含まれているファイル毎の属性情報から前記リードオンリー的ファイルを認識し、ファイルアロケーションテーブルから前記リードオンリー的ファイルの論理アドレスを認識することを特徴とする請求項1記載の不揮発性メモリの制御装置。
- 物理ブロック単位の消去回数及び又はプログラミング回数に限度のある不揮発性メモリデバイスをランダムアクセスメモリと制御部により制御するメモリ制御方法において、前記制御部は、
前記不揮発性メモリデバイスのファイルシステムを解析し、リード用途に使用されると判断されるリードオンリー的ファイルの論理ブロックを識別し、
論理-物理ブロックアドレス変換テーブルを用いて、前記論理ブロックに対応する物理ブロックアドレスから第1の物理ブロックを得て、
物理ブロック使用状況情報と物理ブロック消去回数情報を参照して、任意使用可能な物理ブロック群から所定の条件を満足した第2の物理ブロックを選択し、
前記第1の物理ブロックのデータを前記第2の物理ブロックに移し、前記第2の物理ブロックのアドレスを前記論理ブロックアドレスに対応付け、前記物理ブロック使用状況情報における前記第1及び第2の物理ブロックの使用状況を修正することを特徴とする不揮発性メモリの制御方法。 - 前記第1の物理ブロックの使用状況を修正する際に、該当第1の物理ブロックのデータを消去することを特徴とする請求項5記載の不揮発性メモリの制御方法。
- 前記制御部は、ホストからの所定のコマンドがあったときに、前記リードオンリー的ファイルのデータが格納されている論理ブロックの識別処理を開始することを特徴とする請求項5記載の不揮発性メモリの制御方法。
- 前記制御部は、前記不揮発性メモリのファイルシステムに含まれているファイル毎の属性情報から前記リードオンリー的ファイルを認識し、ファイルアロケーションテーブルから前記リードオンリー的ファイルの論理アドレスを認識することを特徴とする請求項1記載の不揮発性メモリの制御方法。
- ホストからのコマンドを含むデータを受け取るホストインターフェースと、
ランダムアクセスメモリと、
不揮発性メモリデバイスと、
前記コマンドを解析するとともに、前記ランダムアクセスメモリ、前記不揮発性メモリデバイスを統括制御するマイクロプロセシングユニットと、を有した記憶装置において、
前記不揮発性メモリデバイスのファイルシステムを解析し、リード用途と判断されるリードオンリー的ファイルのデータの論理ブロックを識別するファイルシステム制御部と、
論理-物理ブロックアドレス変換テーブルを用いて、前記論理ブロックに対応する物理ブロックアドレスから第1の物理ブロックを得る論理−物理ブロックアドレス変換テーブル管理部と、
物理ブロック使用状況情報と物理ブロック消去回数情報を参照して、任意使用可能な物理ブロック群から所定の条件を満足した第2の物理ブロックを選択する物理ブロック情報管理部と、
前記第1の物理ブロックのデータを前記第2の物理ブロックに移し、前記第2の物理ブロックのアドレスを前記論理ブロックアドレスに対応つけ、前記物理ブロック使用状況情報における前記第1及び第2の物理ブロックの使用状況を修正する物理ブロック情報修正部を有することを特徴とする記憶装置。 - 物理ブロック情報修正部は、
物理ブロック使用状況情報部における前記第1の物理ブロックの使用状況を修正する際に、該当第1の物理ブロックのデータを消去することを特徴とする請求項9記載の記憶装置。 - 前記ファイルシステム制御部は、ホストからの所定のコマンドがあったときに、前記リードオンリー的ファイルのデータが格納されている論理ブロックを識別するのを開始することを特徴とする請求項9記載の記憶装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007165369A JP2009003784A (ja) | 2007-06-22 | 2007-06-22 | 不揮発性メモリの制御装置及び制御方法及び記憶装置 |
CNA2008100999354A CN101329679A (zh) | 2007-06-22 | 2008-05-22 | 非易失性存储器的控制装置和控制方法以及存储装置 |
US12/143,241 US20080320212A1 (en) | 2007-06-22 | 2008-06-20 | Control device and control method of nonvolatile memory and storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007165369A JP2009003784A (ja) | 2007-06-22 | 2007-06-22 | 不揮発性メモリの制御装置及び制御方法及び記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009003784A true JP2009003784A (ja) | 2009-01-08 |
Family
ID=40137702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007165369A Withdrawn JP2009003784A (ja) | 2007-06-22 | 2007-06-22 | 不揮発性メモリの制御装置及び制御方法及び記憶装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20080320212A1 (ja) |
JP (1) | JP2009003784A (ja) |
CN (1) | CN101329679A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010182268A (ja) * | 2009-02-09 | 2010-08-19 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2010250534A (ja) * | 2009-04-15 | 2010-11-04 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
EP2816483A1 (en) | 2013-06-17 | 2014-12-24 | Fujitsu Limited | Information processing apparatus, control circuit, and control method |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533670B (zh) * | 2009-04-23 | 2012-05-02 | 北京握奇数据系统有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
KR20140031688A (ko) * | 2012-09-05 | 2014-03-13 | 삼성전자주식회사 | 스토리지 시스템을 위한 마모 관리 장치 및 방법 |
KR20160104389A (ko) * | 2015-02-26 | 2016-09-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2251324B (en) * | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
US6256642B1 (en) * | 1992-01-29 | 2001-07-03 | Microsoft Corporation | Method and system for file system management using a flash-erasable, programmable, read-only memory |
JP3604466B2 (ja) * | 1995-09-13 | 2004-12-22 | 株式会社ルネサステクノロジ | フラッシュディスクカード |
US5832263A (en) * | 1996-03-15 | 1998-11-03 | Digidox, Inc. | System and method for in-place modification of information recorded in read-only storage using modifiable non-volatile storage associated with an agent |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
CN1853232A (zh) * | 2002-12-20 | 2006-10-25 | 皇家飞利浦电子股份有限公司 | 易失文件类分配的描述 |
JP2004280752A (ja) * | 2003-03-19 | 2004-10-07 | Sony Corp | データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム |
US7395384B2 (en) * | 2004-07-21 | 2008-07-01 | Sandisk Corproation | Method and apparatus for maintaining data on non-volatile memory systems |
KR100684887B1 (ko) * | 2005-02-04 | 2007-02-20 | 삼성전자주식회사 | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 |
US7984231B2 (en) * | 2005-09-22 | 2011-07-19 | Panasonic Corporation | Information recording medium access device, and data recording method |
EP1895418B1 (en) * | 2005-12-09 | 2015-04-01 | Panasonic Corporation | Nonvolatile memory device, method of writing data, and method of reading out data |
-
2007
- 2007-06-22 JP JP2007165369A patent/JP2009003784A/ja not_active Withdrawn
-
2008
- 2008-05-22 CN CNA2008100999354A patent/CN101329679A/zh active Pending
- 2008-06-20 US US12/143,241 patent/US20080320212A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010182268A (ja) * | 2009-02-09 | 2010-08-19 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP4666081B2 (ja) * | 2009-02-09 | 2011-04-06 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2010250534A (ja) * | 2009-04-15 | 2010-11-04 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
EP2816483A1 (en) | 2013-06-17 | 2014-12-24 | Fujitsu Limited | Information processing apparatus, control circuit, and control method |
Also Published As
Publication number | Publication date |
---|---|
US20080320212A1 (en) | 2008-12-25 |
CN101329679A (zh) | 2008-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009003783A (ja) | 不揮発性メモリの制御装置及び制御方法及び記憶装置 | |
US9218277B2 (en) | Wear leveling | |
US7783851B2 (en) | Methods of reusing log blocks in non-volatile memories and related non-volatile memory devices | |
US10353586B2 (en) | Memory device and host device | |
JP4844639B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2009003880A (ja) | 不揮発性メモリの制御装置及びその制御方法及び記憶装置 | |
JP6403164B2 (ja) | メモリシステム | |
US20140181378A1 (en) | Control device, control method, and program | |
JP6455900B2 (ja) | ストレージシステムおよびシステムガベージコレクション方法 | |
JP2009003784A (ja) | 不揮発性メモリの制御装置及び制御方法及び記憶装置 | |
JP2009230414A (ja) | 複数の不揮発性メモリデバイスを有する記憶装置 | |
JP4666081B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US20140281132A1 (en) | Method and system for ram cache coalescing | |
US11402999B2 (en) | Adaptive wear leveling using multiple partitions | |
JP2012248109A (ja) | マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法 | |
JP2009259145A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2009086738A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2009110314A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US20140215132A1 (en) | Data writing method, memory controller and memory storage device | |
JP2018185842A (ja) | メモリ制御装置及び情報処理システム | |
JP2008009614A (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
WO2020039927A1 (ja) | 不揮発性記憶装置、ホスト装置、及びデータ記憶システム | |
JP4952742B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US9934874B2 (en) | Storage medium management device, storage medium management method, storage medium, and storage medium management system | |
JP2009075889A (ja) | 不揮発性メモリの書き換え制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100201 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110124 |