JP2004126945A - 記憶装置及びその制御方法 - Google Patents
記憶装置及びその制御方法 Download PDFInfo
- Publication number
- JP2004126945A JP2004126945A JP2002290236A JP2002290236A JP2004126945A JP 2004126945 A JP2004126945 A JP 2004126945A JP 2002290236 A JP2002290236 A JP 2002290236A JP 2002290236 A JP2002290236 A JP 2002290236A JP 2004126945 A JP2004126945 A JP 2004126945A
- Authority
- JP
- Japan
- Prior art keywords
- physical address
- unrecorded
- unrecorded physical
- storage device
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】不揮発性メモリのアドレス空間を複数群に分けて管理することで、小容量の作業メモリで書き込み速度を確保する。
【解決手段】本発明の記憶装置は、ファイルアロケーションテーブル又は論理アドレス/物理アドレス変換テーブルを用いて、物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が少なくとも1つの未記録物理アドレスを有する物理アドレス群(「未記録物理アドレス群」と呼ぶ。)であるか否かの情報を有する第1の未記録物理アドレステーブルと、1つの未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第2の未記録物理アドレステーブルと、を有する。
【選択図】 図1
【解決手段】本発明の記憶装置は、ファイルアロケーションテーブル又は論理アドレス/物理アドレス変換テーブルを用いて、物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が少なくとも1つの未記録物理アドレスを有する物理アドレス群(「未記録物理アドレス群」と呼ぶ。)であるか否かの情報を有する第1の未記録物理アドレステーブルと、1つの未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第2の未記録物理アドレステーブルと、を有する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、記憶装置及びその制御方法に関する。
【0002】
【従来の技術】
近年、音楽データ及び映像データを取り扱う携帯機器の記憶装置として、フラッシュメモリ等の不揮発性メモリを備えた記憶装置(典型的にはICカード)が使われるようになってきた。フラッシュメモリ等の不揮発性メモリは、データの書き換えが可能で、携帯性が高く、電源が無くてもデータを保持できるのが特徴である。
【0003】
図12及び図13を用いて、従来例の記憶装置を説明する。図12は従来例の記憶装置の構成を示すブロック図である。図12において、102はデータ入出力装置、1201は記憶装置である。記憶装置1201は、制御部111、不揮発性メモリ112、RAM(Random Access Memory)113を有する。記憶装置1201はICカードである。データ入出力装置102は、ICカードの挿入スロットを有する携帯機器である。
不揮発性メモリ112は、管理領域121とデータ記録領域122とを有する。データ記録領域122は、複数の領域(最小書き込み単位の領域であって、以下、「物理アドレス」と呼ぶ。)を有する。ファイルを記録する場合、ファイルのデータは分割されて、各物理アドレスに記録される。各物理アドレスは、データを格納するデータ領域とその属性情報等を格納する冗長領域とを有する。
【0004】
不揮発性メモリ112は、ファイルの格納場所を管理するために、ディレクトリエントリ131及びFAT(File Allocation Table)132を管理領域121に記憶する(図3)。図3は、ディレクトリエントリ131及びFAT132の構成を示す図である。1つのファイルは、データ記録領域122の複数の物理アドレスに分割して格納される。図3において、ディレクトリエントリ131はファイル名と、そのファイルの先頭のデータ(第1番目のデータ)が書き込まれた先頭の物理アドレスと、ファイルサイズとを対応させた一覧表である。FAT132は、データ記録領域122の物理アドレスと同一のアドレスを有するテーブルである。第i番目(1≦i≦n)のデータが記録されているデータ記録領域122の物理アドレスと同一のFAT132のアドレスには、第(i+1)番目のデータが記録されているデータ記録領域122の物理アドレスが格納されている。制御部111は、データ記録領域122からデータを読み出すことと、FAT132から次のデータが記録されている物理アドレスを読み出すこととを交互に実行して、ファイルの全データを読み出す。
【0005】
図3において、ディレクトリエントリ131はファイル「presentation5.ppt」に対応づけられた物理アドレス02−08を格納している。データ記録領域122の物理アドレス02−08は、ファイル「presentation5.ppt」の先頭(第1番目)のデータを格納している。FAT132のアドレス02−08は、物理アドレス02−35を格納している。データ記録領域122の物理アドレス02−35は、第2番目のデータを格納している。FAT132のアドレス02−35は、物理アドレス03−04を格納している。データ記録領域122の物理アドレス03−04は、第3番目のデータを格納している。以下、これを繰り返す。記憶装置1201は、FATに格納されたアドレスを順にたぐりながら分割されたデータを正しい順序で読み出すことができる。
【0006】
記憶装置1201は起動時に、データ記録領域122の全ての物理アドレスを検索し、RAM113上に未記録物理アドレステーブル1301を生成する(図13)。図13は、従来例の未記録物理アドレステーブルの構成を示す図である。記憶装置1201は物理アドレスが、未記録であれば「1」、記録済みであれば「0」を未記録物理アドレステーブル1301に書き込む。未記録物理アドレステーブル1301は、全ての物理アドレスの情報(未記録か否かの情報)を有する。
【0007】
データ入出力装置102が記憶装置1201にデータの書き込みを指令すると、記憶装置1201は、RAM113上の未記録物理アドレステーブル1301に基づいて、未記録物理アドレスを検出する。図13においては、物理アドレス「2」を検出する。検出された未記録物理アドレスにデータを書き込む。未記録物理アドレステーブル1301の物理アドレス「2」に対応するビットを記録済み「0」に更新する。全てのデータの書き込みを完了するまで、次の未記録物理アドレスを未記録物理アドレステーブル1301から検出し、データの書き込みを繰り返す。データの書き込みをした場合、FAT132を更新する。
【0008】
【特許文献1】
特開2001−265633号公報
【特許文献2】
特開2002−091806号公報
【特許文献3】
特開2002−163136号公報
【特許文献4】
特開2002−207626号公報
【0009】
【発明が解決しようとする課題】
しかし、全ての物理アドレスの情報(未記録か否かの情報)を未記録物理アドレステーブルに保持しようとすると、必要なRAMの容量が大きくなるという問題があった。近年では携帯機器で取り扱う情報量が増大する傾向にあり、これに対処するために、記憶装置の記憶容量の増大を図っている。記憶容量の増大は、未記録物理アドレステーブルの情報量の増大につながる。そのためRAMの容量を増大させることが必要となり、コストアップの大きな要因となっていた。
従来例の記憶装置では、起動時にデータ記録領域の全ての物理アドレスを検索して未記録物理アドレステーブルを生成する必要があったため、起動に時間がかかるという問題があった。
本発明は、データの書き込み速度及び読み出し速度の低下を招くことなく、不揮発性メモリの容量と比較して小さな容量のRAMを有する安価な記憶装置及びその制御方法を提供することを目的とする。
本発明は、短時間で起動する記憶装置及びその制御方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記課題を解決するため、本発明は下記の構成を有する。
請求項1に記載の発明は、ファイルアロケーションテーブル又は論理アドレス/物理アドレス変換テーブルを用いて、物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が少なくとも1つの未記録物理アドレスを有する物理アドレス群(未記録物理アドレス群)であるか否かの情報を有する第1の未記録物理アドレステーブルと、1つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第2の未記録物理アドレステーブルと、を有し、前記第2の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込み、前記第2の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第1の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを新たに生成することを特徴とする記憶装置である。
【0011】
請求項2に記載の発明は、複数の前記第2の未記録物理アドレステーブルを有し、未記録物理アドレスを有する前記第2の未記録物理アドレステーブルの数が所定数以下になった時、新たな前記第2の未記録物理アドレステーブルを生成することを特徴とする請求項1に記載の記憶装置である。
【0012】
請求項3に記載の発明は、前記第1の未記録物理アドレステーブルが、全ての前記データ記録領域に関する未記録物理アドレス群の情報を有することを特徴とする請求項1又は請求項2に記載の記憶装置である。
【0013】
請求項4に記載の発明は、前記第1の未記録物理アドレステーブルを前記不揮発性メモリに記憶し、起動時に前記不揮発性メモリから読み出した前記第1の未記録物理アドレステーブルに含まれる前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを生成することを特徴とする請求項1から請求項3のいずれかの請求項に記載の記憶装置である。
【0014】
請求項5に記載の発明は、ファイルアロケーションテーブル又は論理アドレス/物理アドレス変換テーブルを用いて物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が未記録物理アドレス群であるか否かの情報を有する第1の未記録物理アドレステーブルと、1つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第2の未記録物理アドレステーブルと、を有する記憶装置の制御方法であって、前記第2の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込む書き込みステップと、前記書き込みステップに応じて、前記第2の未記録物理アドレステーブル、又は前記第1及び第2の未記録物理アドレステーブルを更新する第1の更新ステップと、前記第2の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第1の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを新たに生成する第2の未記録物理アドレステーブル生成ステップと、を有することを特徴とする記憶装置の制御方法である。
【0015】
請求項6に記載の発明は、起動時に、前記不揮発性メモリに記憶されていた前記第1の未記録物理アドレステーブルを読み出す第1の初期化ステップと、前記第1の未記録物理アドレステーブルに含まれる少なくとも1つの前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを生成する第2の初期化ステップと、を更に有することを特徴とする請求項5に記載の記憶装置の制御方法である。
【0016】
請求項7に記載の発明は、前記物理アドレス群が、データ消去単位であって複数の前記物理アドレスを有する物理ブロックを有し、前記物理ブロックのデータを消去する消去ステップと、前記第1の未記録物理アドレステーブルにおいて、前記消去ステップを実行した前記物理ブロックを有する前記物理アドレス群を未記録物理アドレス群にする第2の更新ステップと、を更に有することを特徴とする請求項5又は請求項6に記載の記憶装置の制御方法である。
【0017】
本発明は、データの書き込み速度及び読み出し速度の低下を招くことなく、不揮発性メモリの容量と比較して小さな容量のRAMを有する安価な記憶装置及びその制御方法を実現できるという作用を有する。
本発明は、短時間で起動する記憶装置及びその制御方法を実現できるという作用を有する。
【0018】
【発明の実施の形態】
以下本発明の実施をするための最良の形態を具体的に示した実施例について、図面とともに記載する。
【0019】
《実施例1》
図1〜8を用いて、実施例1の記憶装置及びその制御方法を説明する。図1は、本発明の記憶装置の構成を示すブロック図である。図1において、101は記憶装置、102はデータ入出力装置である。記憶装置101は、制御部111、不揮発性メモリ112(実施例ではフラッシュメモリである。)、RAM113を有する。記憶装置101はICカードである。データ入出力装置102は、ICカードの挿入スロットを有する携帯機器(例えばICカードを記憶媒体とする音声レコーダ)である。
本発明の実施例1の記憶装置が、従来例の記憶装置(図12)と異なるところは、未記録物理アドレステーブル1301の替わりに、第1の未記録物理アドレステーブル141、第2の未記録物理アドレステーブル142及び143を有することである。不揮発性メモリ112のデータ記録領域122は、複数の領域(各領域を物理アドレス群と呼ぶ。)に区分されている。各物理アドレス群は、複数の物理アドレスを有する。これ以外の点において、実施例1は従来例と同一の構成である。
【0020】
不揮発性メモリ112は、管理領域121とデータ記録領域122とを有する。データ記録領域122は、複数の物理アドレス群に区分される。図2を用いて、実施例におけるデータ記録領域122の区分方法を説明する。図2は、複数の物理アドレスを有する物理アドレス群と、その物理アドレス群によって区分されたデータ記録領域122とを示す図である。
図2において、データ記録領域122はn個(nは任意の正整数。実施例においてn=64)の領域(「物理アドレス群」と呼ぶ。)に区分される。各物理アドレス群は、m個(mは任意の正整数。実施例においてm=1024)の物理アドレス(1つの領域は4バイト)を有する。
ファイルを記録する場合、ファイルのデータは分割されて、データ記録領域122の各物理アドレスに記録される。この時生成されるディレクトリエントリ131及びFAT132の構成(図3)については、従来例において既に説明した。
【0021】
図4を用いて、第1の未記録物理アドレステーブル141、第2の未記録物理アドレステーブル142及び143を説明する。図4は、実施例1の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルの構成を示す図である。記憶装置101は起動時に、データ記録領域122の全ての物理アドレスを検索し、第1の未記録物理アドレステーブル141と第2の未記録物理アドレステーブル142及び143をRAM113上に生成する。
第1の未記録物理アドレステーブル141は、n個の物理アドレス群がそれぞれ未記録物理アドレスを有するか否かの情報を有する。未記録物理アドレスを有するか否かは論理値0又は1で示し、0が「未記録物理アドレスを有しない(物理アドレスは全て記録済み)」、1が「未記録物理アドレスを有する」である。各ビットは1ビットで構成される。m個の物理アドレスを有する物理アドレス群が、少なくとも1つの未記録物理アドレスを有する場合「1」を示し、1つも未記録物理アドレスを有しない場合「0」を示す。
【0022】
記憶装置101は起動時に、未記録物理アドレス群(少なくとも1つの未記録物理アドレスを有する物理アドレス群)について、第2の未記録物理アドレステーブルをRAM113上に生成する。第2の未記録物理アドレステーブルは、少なくとも1つ生成する(実施例においては、2つ生成する。)。第2の未記録物理アドレステーブル142及び143は、m個の物理アドレスが未記録物理アドレスであるか否かの情報を有する。未記録物理アドレスであるか否かは論理値0又は1で示し、0が「未記録物理アドレスでない」、1が「未記録物理アドレスである」である。各ビットは1ビットで構成される。物理アドレスが未記録の場合「1」を示し、記録済みの場合「0」を示す。第2の未記録物理アドレステーブル142及び143は、データの書き込み時に、未記録物理アドレスの消費量又は残量に応じて、新たに生成される。
【0023】
第1の未記録物理アドレステーブル141は、データ記録領域122の全ての物理アドレス群がそれぞれ未記録物理アドレスを有するか否かの情報を有する。物理アドレス群という概念を導入することにより、第1の未記録物理アドレステーブル141は、nビットの情報量で実現できる。第2の未記録物理アドレステーブル142及び143は、1つの未記録物理アドレス群に含まれる各物理アドレスが未記録物理アドレスであるか否かの情報を有する。第2の未記録物理アドレステーブルは、mビットの情報量で実現でき、少なくとも1つ(実施例では2つ)をRAM113に生成する。
例えば実施例1と同じ大きさのデータ記録領域((m×n)=64k個の物理アドレス)を有する従来例の記憶装置は、(m×n)=64kビットの情報量の未記録物理アドレステーブルを有していた。本発明の記憶装置101は、物理アドレス群という概念を導入して、第1の未記録物理アドレステーブルと第2の未記録物理アドレステーブルとを生成する。実施例1の記憶装置は、(2m+n)=2×1024+64=約2kビットの情報量の第1及び第2の未記録物理アドレステーブルを有する。記憶装置が動作している時、未記録物理アドレステーブルはRAMに常駐する故に、RAMはバッファ等の動作に必要な容量に加えて未記録物理アドレステーブルを搭載する容量を持つ必要がある。本発明の記憶装置においては、従来よりもRAM容量を小さく出来る。
【0024】
図5を用いて、第1及び第2の未記録物理アドレステーブルを用いた実施例の記憶装置の制御方法を説明する。説明の便宜上図5においてはm=16、n=8とする。図5において、不揮発性メモリ112のデータ記録領域122は、8個(n=8)の物理アドレス群によって区分され、各物理アドレス群は16個(m=16)の物理アドレスによって区分される。
図5(a)は、初期化時の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルを示す図である。第1の未記録物理アドレステーブル501は、8個の物理アドレス群がそれぞれ未記録物理アドレスを有するか否かの情報を有する。図5(a)では、少なくとも1つの未記録物理アドレスを有する(1を示す)第5番目の物理アドレス群と第6番目の物理アドレス群について、第2の未記録物理アドレステーブル502及び503を生成する。第2の未記録物理アドレステーブル502及び503は、16個の物理アドレスの未記録か否かの情報を有する。
【0025】
記憶装置101の制御部111は、データ入出力装置102から送られた書き込み指令を受信すると、第2の未記録物理アドレステーブル502を検索し、第5番目の物理アドレス群の未記録物理アドレス5−10を選択し、そこにデータを書き込む。これにより、第5番目の物理アドレス群に含まれる物理アドレスが全て書き込み済みになる。制御部111は、第1の未記録物理アドレステーブル501の第5番目の物理アドレス群に対応するビットを0に更新する。第1の未記録物理アドレステーブル501に基づいて、第7番目の未記録物理アドレス群を検出し、第2の未記録物理アドレステーブル504をRAM113上に新たに生成する(図5(b))。
実施例1においては、未記録物理アドレスを有する第2の未記録物理アドレステーブルの数が所定数以下(実施例1では1以下)になった時、新たな第2の未記録物理アドレステーブルを生成する。
【0026】
図5及び図6を用いて、起動時の記憶装置101の制御方法を説明する。図6は、実施例1の起動時の記憶装置101の制御方法を示すフローチャートである。
記憶装置101を起動する(ステップ601)。記憶装置101は不揮発性メモリ112のデータ記録領域122に含まれる全ての物理アドレスを検索して、第1の未記録物理アドレステーブル501をRAM113上に生成する(ステップ602)。記憶装置101は第1の未記録物理アドレステーブルに基づいて、未記録物理アドレスを有する物理アドレス群の中から、所定の数(実施例においては2つ)の物理アドレス群について、第2の未記録物理アドレステーブル502及び503をRAM113上に生成する(ステップ603)。
【0027】
図5及び図7を用いて、データの書き込み時の記憶装置101の制御方法を説明する。図7は、データの書き込み時の記憶装置101の制御方法を示すフローチャートである。
記憶装置101の制御部111は、データ入出力装置102からのファイルデータの書き込み指令を入力する(ステップ701)。第2の未記録物理アドレステーブル502(図5)に基づいて、データを書き込む物理アドレスを第05−10番目の物理アドレスに決定する(ステップ702)。ファイル名と先頭の物理アドレス「05−10」を書き込んだディレクトリエントリ132を不揮発性メモリ112の管理領域121上に作成する(ステップ703)。記憶装置101の不揮発性メモリ112は、データ記録領域122の第5番目の物理アドレス群の第10番目の物理アドレスに、ファイルを分割したデータを書き込む(ステップ704)。
【0028】
RAM113上の第2の未記録物理アドレステーブル502の第10番目の物理アドレスに対応するビットを0(記録済み)に書き換えて、第2の未記録物理アドレステーブル502を更新する(ステップ705)。未記録(1を示す)物理アドレスが、第2の未記録物理アドレステーブル502に有るか否か判断する(ステップ706)。未記録物理アドレスが有れば、ステップ709へ進む。ステップ705で、第2の未記録物理アドレステーブル502は、全て記録済み(0を示す)に更新されたので、未記録物理アドレスは残っていない。従って図5(a)においては、ステップ707へ進む。
【0029】
RAM113上の第1の未記録物理アドレステーブル501の第5番目の物理アドレス群に対応するビットを0(記録済み)に書き換えて、第1の未記録物理アドレステーブル501を更新する(ステップ707)。RAM113から、第5番目の物理アドレス群の第2の未記録物理アドレステーブル502を削除し、第7番目の物理アドレス群の第2の未記録物理アドレステーブル504を新たにRAM113上に生成する(ステップ708)。
分割されたデータの全データを書き込み完了か否か判断する(ステップ709)。書き込みが完了していなければ、ステップ710へ進み、第2の未記録物理アドレステーブル503に基づいて、次のデータを書き込む物理アドレスを決定する。不揮発性メモリ112の管理領域121にあるFAT132のアドレス05−10に次のデータを書き込む物理アドレスを書き込む(ステップ711)。ステップ704へ戻り、データの書き込みを繰り返す。
ステップ709で全データの書き込みが完了であれば、処理を終了する。
【0030】
フラッシュメモリ等の不揮発性メモリは、データの書き込み時(メモリセルに0又は1のデータを書き込む。)と、消去時(例えば消去領域のメモリセルのデータを全て1にする。)とでは、全く異なる方法で制御される。又、フラッシュメモリ等の不揮発性メモリにおいては、データの書き込み単位とデータの消去単位が異なる。実施例において、データの書き込み単位は物理アドレスである。データを消去する場合、不揮発性メモリ112は複数の物理アドレスを一度に消去する(物理アドレス単位でデータを消去することができない。)。このデータの消去単位を「物理ブロック」と呼ぶ。物理ブロックは複数の物理アドレスで構成される。実施例において、物理ブロックは物理アドレス群より小さい。
【0031】
図8を用いて、データの消去時の記憶装置101の制御方法を説明する。図8は、データの消去時の記憶装置101の制御方法を示すフローチャートである。記憶装置101の制御部111は、データ入出力装置102からのデータの消去指令を入力する(ステップ801)。記憶装置101の不揮発性メモリ112は、物理ブロックを消去する(ステップ802)。記憶装置101は、消去した物理ブロックを含む物理アドレス群を未記録物理アドレス群に設定し(1を書き込む)、第1の未記録物理アドレステーブルを更新する(ステップ803)。
消去した物理ブロックを含む物理アドレス群の第2の未記録物理アドレステーブルが、RAM113上に有るか否か判断する(ステップ804)。無ければ、処理を終了する。有れば、ステップ805へ進み、消去した物理アドレスを未記録に設定し(1を書き込む)、第2の未記録物理アドレステーブルを更新する(ステップ805)。処理を終了する。
【0032】
《実施例2》
図9及び図10を用いて、実施例2の記憶装置及びその制御方法を説明する。実施例1においては、不揮発性メモリ112の管理領域121に、FAT132を記憶した(図3)。実施例2においては、FAT132の代わりに、論理アドレス/物理アドレス変換テーブル901を管理領域121に記憶する(図9)。
実施例1においては、第1の未記録物理アドレステーブルは、全ての物理アドレス群の未記録物理アドレス群であるか否かの情報を記憶し、第2の未記録物理アドレステーブルは、1つの物理アドレス群に含まれる全ての物理アドレスのそれぞれが未記録物理アドレスであるか否かの情報を記憶した(図4)。実施例2においては、第1の未記録物理アドレステーブルは、未記録物理アドレス群のみのアドレスを記憶し、第2の未記録物理アドレステーブルは、未記録物理アドレスのみのアドレスを記憶する(図10)。これ以外の点においては、実施例1と同一である。
【0033】
図9は、論理アドレス/物理アドレス変換テーブルの構成を示す図である。フラッシュメモリ等の不揮発性メモリを用いた記憶装置においては、外部(例えばホスト装置であるデータ入出力装置)から指定される論理アドレスと、不揮発性メモリ内に配置される物理アドレスは一般的に一致しない。フラッシュメモリ等の不揮発性メモリにおいては、データを書き換える毎にデータを記録する物理アドレスを変える必要がある。ホスト装置がデータを記録した不揮発性メモリの物理アドレスを直接管理することは極めてわずらわしく困難である。不良が発生した物理アドレスを避けて使用する必要がある。特定の物理アドレスへの書き込みが頻発するシステムでは、その物理アドレスが短期間で書き換え保証回数を上回り、記憶装置が短寿命になってしまう、という不都合が生じる。
そこで、図9のように、外部から指定される論理アドレスが、どの物理アドレスに割り当てられているかを示す論理アドレス/物理アドレス変換テーブルを作成し、不揮発性メモリ112の管理領域121に格納する。
【0034】
記憶装置101の制御部111が、データ入出力装置102からの論理アドレス100を指定したデータの書き込み指令を入力すると、制御部111は実際にデータを書き込む物理アドレスを、第2の未記録物理アドレステーブルに基づいて決定する。不揮発性メモリ112は、決定された03−11の未記録物理アドレスに、ファイルから分割された最初のデータを書き込む。不揮発性メモリ112は、指定された論理アドレス100と、実際にデータを書き込む物理アドレス03−11とを対応させ、論理アドレス/物理アドレス変換テーブル901に書き込む(911)。ファイルから分割された残りのデータは、第2の未記録物理アドレステーブルに基づいて決定されたデータ記録領域122の未記録物理アドレスに順に格納される。ファイルから分割されたデータを未記録物理アドレスに書き込む毎に、論理アドレス/物理アドレス変換テーブル901に、その論理アドレスと物理アドレスとを対応付けて書き込む。
【0035】
図10は、実施例2の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルの構成を示す図である。記憶装置101は起動時に、データ記録領域122の全ての物理アドレスを検索し、第1の未記録物理アドレステーブル1001と第2の未記録物理アドレステーブル1002及び1003をRAM113上に生成する。
第1の未記録物理アドレステーブル1001は、n個の物理アドレス群のうち未記録物理アドレス群の番号のみを有する。m個の物理アドレスを有する物理アドレス群が、少なくとも1つの未記録物理アドレスを有する場合、第1の未記録物理アドレステーブル1001に、その物理アドレス群の番号を記憶する。テーブルの終端には、終端を示すFFF(16進数表示)を挿入する。
【0036】
第2の未記録物理アドレステーブル1002及び1003は、m個の物理アドレスのうち未記録物理アドレスの番号のみを有する。終端にFFF(16進数表示)を挿入する。記憶装置101は起動時に、少なくとも1つの未記録物理アドレスを有する物理アドレス群について、第2の未記録物理アドレステーブルをRAM113上に生成する。第2の未記録物理アドレステーブル1002及び1003は、データの書き込み時に、未記録物理アドレスの消費量又は残量に応じて、新たに生成される。
【0037】
データの書き込みが発生した場合、第2の未記録物理アドレステーブルを用いて、未記録物理アドレスを決定し、データを書き込む。記録済みになった物理アドレスは、第2の未記録物理アドレステーブルから削除し、次の物理アドレス群について新たな第2の未記録物理アドレステーブルを生成する。
データの消去が発生した場合、消去した物理ブロックを含む物理アドレス群を第1の未記録物理アドレステーブルに記憶する。その物理アドレス群の第2の未記録物理アドレステーブルがRAM113に有る場合は、消去した物理アドレスを、第2の未記録物理アドレステーブルに書き込む。
【0038】
《実施例3》
図11を用いて、実施例3の記憶装置及びその制御方法を説明する。
実施例1及び実施例2においては、第1の未記録物理アドレステーブルは、記憶装置101の起動時にRAM113上に生成された。RAMは電源を切るとデータの内容を保持できないので、電源を入れる度に第1の未記録物理アドレステーブルを生成しなければならない。不揮発性メモリは、電源が無くてもデータを保持できる。実施例3においては、第1の未記録物理アドレステーブルは、不揮発性メモリ112に記憶する。これ以外の点においては、実施例1又は実施例2と同一である。
【0039】
図11は、実施例3の起動時の記憶装置101の制御方法を示すフローチャートである。記憶装置101を起動する(ステップ1101)。記憶装置101は不揮発性メモリ112から第1の未記録物理アドレステーブルを読み出す(ステップ1102)。記憶装置101は、第1の未記録物理アドレステーブルの未記録物理アドレス群の中から、所定の数(実施例においては2つ)の物理アドレス群について、データ記録領域122の物理アドレスを検索し、第2の未記録物理アドレステーブルをRAM113上に生成する(ステップ1103)。
【0040】
記憶装置101は、第1の未記録物理アドレステーブルを不揮発性メモリ112に持つことにより、起動時にデータ記録領域122の全ての物理アドレスを検索する必要がなくなる。少なくとも1つ(実施例では2つ)の未記録物理アドレス群に含まれる物理アドレスを検索するだけですむので、起動時の立ち上がりが早い。
【0041】
【発明の効果】
本発明によれば、データの書き込み速度及び読み出し速度の低下を招くことなく、不揮発性メモリの容量と比較して小さな容量のRAMを有する安価な記憶装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、短時間で起動する記憶装置及びその制御方法を実現できるという有利な効果が得られる。
【図面の簡単な説明】
【図1】本発明の記憶装置の構成を示すブロック図
【図2】複数の物理アドレスを有する本発明の実施例の物理アドレス群と、その物理アドレス群によって区分されたデータ記録領域122とを示す図
【図3】ディレクトリエントリ及びFATの構成を示す図
【図4】本発明の実施例1の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルの構成を示す図
【図5】図5(a)は初期化時の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルを示す図、図5(b)は更新後の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルを示す図
【図6】本発明の実施例1の起動時の記憶装置101の制御方法を示すフローチャート
【図7】本発明の実施例1のデータの書き込み時の記憶装置101の制御方法を示すフローチャート
【図8】本発明の実施例1のデータの消去時の記憶装置101の制御方法を示すフローチャート
【図9】論理アドレス/物理アドレス変換テーブルの構成を示す図
【図10】本発明の実施例2の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルの構成を示す図
【図11】本発明の実施例3の起動時の記憶装置101の制御方法を示すフローチャート
【図12】従来例の記憶装置の構成を示すブロック図
【図13】従来例の未記録物理アドレステーブルの構成を示す図
【符号の説明】
101、1201 記憶装置
102 データ入出力装置
111 制御部
112 不揮発性メモリ
113 RAM
131 ディレクトリエントリ
132 FAT
141 第1の未記録物理アドレステーブル
142、143 第2の未記録物理アドレステーブル
1301 従来例の未記録物理アドレステーブル
【発明の属する技術分野】
本発明は、記憶装置及びその制御方法に関する。
【0002】
【従来の技術】
近年、音楽データ及び映像データを取り扱う携帯機器の記憶装置として、フラッシュメモリ等の不揮発性メモリを備えた記憶装置(典型的にはICカード)が使われるようになってきた。フラッシュメモリ等の不揮発性メモリは、データの書き換えが可能で、携帯性が高く、電源が無くてもデータを保持できるのが特徴である。
【0003】
図12及び図13を用いて、従来例の記憶装置を説明する。図12は従来例の記憶装置の構成を示すブロック図である。図12において、102はデータ入出力装置、1201は記憶装置である。記憶装置1201は、制御部111、不揮発性メモリ112、RAM(Random Access Memory)113を有する。記憶装置1201はICカードである。データ入出力装置102は、ICカードの挿入スロットを有する携帯機器である。
不揮発性メモリ112は、管理領域121とデータ記録領域122とを有する。データ記録領域122は、複数の領域(最小書き込み単位の領域であって、以下、「物理アドレス」と呼ぶ。)を有する。ファイルを記録する場合、ファイルのデータは分割されて、各物理アドレスに記録される。各物理アドレスは、データを格納するデータ領域とその属性情報等を格納する冗長領域とを有する。
【0004】
不揮発性メモリ112は、ファイルの格納場所を管理するために、ディレクトリエントリ131及びFAT(File Allocation Table)132を管理領域121に記憶する(図3)。図3は、ディレクトリエントリ131及びFAT132の構成を示す図である。1つのファイルは、データ記録領域122の複数の物理アドレスに分割して格納される。図3において、ディレクトリエントリ131はファイル名と、そのファイルの先頭のデータ(第1番目のデータ)が書き込まれた先頭の物理アドレスと、ファイルサイズとを対応させた一覧表である。FAT132は、データ記録領域122の物理アドレスと同一のアドレスを有するテーブルである。第i番目(1≦i≦n)のデータが記録されているデータ記録領域122の物理アドレスと同一のFAT132のアドレスには、第(i+1)番目のデータが記録されているデータ記録領域122の物理アドレスが格納されている。制御部111は、データ記録領域122からデータを読み出すことと、FAT132から次のデータが記録されている物理アドレスを読み出すこととを交互に実行して、ファイルの全データを読み出す。
【0005】
図3において、ディレクトリエントリ131はファイル「presentation5.ppt」に対応づけられた物理アドレス02−08を格納している。データ記録領域122の物理アドレス02−08は、ファイル「presentation5.ppt」の先頭(第1番目)のデータを格納している。FAT132のアドレス02−08は、物理アドレス02−35を格納している。データ記録領域122の物理アドレス02−35は、第2番目のデータを格納している。FAT132のアドレス02−35は、物理アドレス03−04を格納している。データ記録領域122の物理アドレス03−04は、第3番目のデータを格納している。以下、これを繰り返す。記憶装置1201は、FATに格納されたアドレスを順にたぐりながら分割されたデータを正しい順序で読み出すことができる。
【0006】
記憶装置1201は起動時に、データ記録領域122の全ての物理アドレスを検索し、RAM113上に未記録物理アドレステーブル1301を生成する(図13)。図13は、従来例の未記録物理アドレステーブルの構成を示す図である。記憶装置1201は物理アドレスが、未記録であれば「1」、記録済みであれば「0」を未記録物理アドレステーブル1301に書き込む。未記録物理アドレステーブル1301は、全ての物理アドレスの情報(未記録か否かの情報)を有する。
【0007】
データ入出力装置102が記憶装置1201にデータの書き込みを指令すると、記憶装置1201は、RAM113上の未記録物理アドレステーブル1301に基づいて、未記録物理アドレスを検出する。図13においては、物理アドレス「2」を検出する。検出された未記録物理アドレスにデータを書き込む。未記録物理アドレステーブル1301の物理アドレス「2」に対応するビットを記録済み「0」に更新する。全てのデータの書き込みを完了するまで、次の未記録物理アドレスを未記録物理アドレステーブル1301から検出し、データの書き込みを繰り返す。データの書き込みをした場合、FAT132を更新する。
【0008】
【特許文献1】
特開2001−265633号公報
【特許文献2】
特開2002−091806号公報
【特許文献3】
特開2002−163136号公報
【特許文献4】
特開2002−207626号公報
【0009】
【発明が解決しようとする課題】
しかし、全ての物理アドレスの情報(未記録か否かの情報)を未記録物理アドレステーブルに保持しようとすると、必要なRAMの容量が大きくなるという問題があった。近年では携帯機器で取り扱う情報量が増大する傾向にあり、これに対処するために、記憶装置の記憶容量の増大を図っている。記憶容量の増大は、未記録物理アドレステーブルの情報量の増大につながる。そのためRAMの容量を増大させることが必要となり、コストアップの大きな要因となっていた。
従来例の記憶装置では、起動時にデータ記録領域の全ての物理アドレスを検索して未記録物理アドレステーブルを生成する必要があったため、起動に時間がかかるという問題があった。
本発明は、データの書き込み速度及び読み出し速度の低下を招くことなく、不揮発性メモリの容量と比較して小さな容量のRAMを有する安価な記憶装置及びその制御方法を提供することを目的とする。
本発明は、短時間で起動する記憶装置及びその制御方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記課題を解決するため、本発明は下記の構成を有する。
請求項1に記載の発明は、ファイルアロケーションテーブル又は論理アドレス/物理アドレス変換テーブルを用いて、物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が少なくとも1つの未記録物理アドレスを有する物理アドレス群(未記録物理アドレス群)であるか否かの情報を有する第1の未記録物理アドレステーブルと、1つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第2の未記録物理アドレステーブルと、を有し、前記第2の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込み、前記第2の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第1の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを新たに生成することを特徴とする記憶装置である。
【0011】
請求項2に記載の発明は、複数の前記第2の未記録物理アドレステーブルを有し、未記録物理アドレスを有する前記第2の未記録物理アドレステーブルの数が所定数以下になった時、新たな前記第2の未記録物理アドレステーブルを生成することを特徴とする請求項1に記載の記憶装置である。
【0012】
請求項3に記載の発明は、前記第1の未記録物理アドレステーブルが、全ての前記データ記録領域に関する未記録物理アドレス群の情報を有することを特徴とする請求項1又は請求項2に記載の記憶装置である。
【0013】
請求項4に記載の発明は、前記第1の未記録物理アドレステーブルを前記不揮発性メモリに記憶し、起動時に前記不揮発性メモリから読み出した前記第1の未記録物理アドレステーブルに含まれる前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを生成することを特徴とする請求項1から請求項3のいずれかの請求項に記載の記憶装置である。
【0014】
請求項5に記載の発明は、ファイルアロケーションテーブル又は論理アドレス/物理アドレス変換テーブルを用いて物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が未記録物理アドレス群であるか否かの情報を有する第1の未記録物理アドレステーブルと、1つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第2の未記録物理アドレステーブルと、を有する記憶装置の制御方法であって、前記第2の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込む書き込みステップと、前記書き込みステップに応じて、前記第2の未記録物理アドレステーブル、又は前記第1及び第2の未記録物理アドレステーブルを更新する第1の更新ステップと、前記第2の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第1の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを新たに生成する第2の未記録物理アドレステーブル生成ステップと、を有することを特徴とする記憶装置の制御方法である。
【0015】
請求項6に記載の発明は、起動時に、前記不揮発性メモリに記憶されていた前記第1の未記録物理アドレステーブルを読み出す第1の初期化ステップと、前記第1の未記録物理アドレステーブルに含まれる少なくとも1つの前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを生成する第2の初期化ステップと、を更に有することを特徴とする請求項5に記載の記憶装置の制御方法である。
【0016】
請求項7に記載の発明は、前記物理アドレス群が、データ消去単位であって複数の前記物理アドレスを有する物理ブロックを有し、前記物理ブロックのデータを消去する消去ステップと、前記第1の未記録物理アドレステーブルにおいて、前記消去ステップを実行した前記物理ブロックを有する前記物理アドレス群を未記録物理アドレス群にする第2の更新ステップと、を更に有することを特徴とする請求項5又は請求項6に記載の記憶装置の制御方法である。
【0017】
本発明は、データの書き込み速度及び読み出し速度の低下を招くことなく、不揮発性メモリの容量と比較して小さな容量のRAMを有する安価な記憶装置及びその制御方法を実現できるという作用を有する。
本発明は、短時間で起動する記憶装置及びその制御方法を実現できるという作用を有する。
【0018】
【発明の実施の形態】
以下本発明の実施をするための最良の形態を具体的に示した実施例について、図面とともに記載する。
【0019】
《実施例1》
図1〜8を用いて、実施例1の記憶装置及びその制御方法を説明する。図1は、本発明の記憶装置の構成を示すブロック図である。図1において、101は記憶装置、102はデータ入出力装置である。記憶装置101は、制御部111、不揮発性メモリ112(実施例ではフラッシュメモリである。)、RAM113を有する。記憶装置101はICカードである。データ入出力装置102は、ICカードの挿入スロットを有する携帯機器(例えばICカードを記憶媒体とする音声レコーダ)である。
本発明の実施例1の記憶装置が、従来例の記憶装置(図12)と異なるところは、未記録物理アドレステーブル1301の替わりに、第1の未記録物理アドレステーブル141、第2の未記録物理アドレステーブル142及び143を有することである。不揮発性メモリ112のデータ記録領域122は、複数の領域(各領域を物理アドレス群と呼ぶ。)に区分されている。各物理アドレス群は、複数の物理アドレスを有する。これ以外の点において、実施例1は従来例と同一の構成である。
【0020】
不揮発性メモリ112は、管理領域121とデータ記録領域122とを有する。データ記録領域122は、複数の物理アドレス群に区分される。図2を用いて、実施例におけるデータ記録領域122の区分方法を説明する。図2は、複数の物理アドレスを有する物理アドレス群と、その物理アドレス群によって区分されたデータ記録領域122とを示す図である。
図2において、データ記録領域122はn個(nは任意の正整数。実施例においてn=64)の領域(「物理アドレス群」と呼ぶ。)に区分される。各物理アドレス群は、m個(mは任意の正整数。実施例においてm=1024)の物理アドレス(1つの領域は4バイト)を有する。
ファイルを記録する場合、ファイルのデータは分割されて、データ記録領域122の各物理アドレスに記録される。この時生成されるディレクトリエントリ131及びFAT132の構成(図3)については、従来例において既に説明した。
【0021】
図4を用いて、第1の未記録物理アドレステーブル141、第2の未記録物理アドレステーブル142及び143を説明する。図4は、実施例1の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルの構成を示す図である。記憶装置101は起動時に、データ記録領域122の全ての物理アドレスを検索し、第1の未記録物理アドレステーブル141と第2の未記録物理アドレステーブル142及び143をRAM113上に生成する。
第1の未記録物理アドレステーブル141は、n個の物理アドレス群がそれぞれ未記録物理アドレスを有するか否かの情報を有する。未記録物理アドレスを有するか否かは論理値0又は1で示し、0が「未記録物理アドレスを有しない(物理アドレスは全て記録済み)」、1が「未記録物理アドレスを有する」である。各ビットは1ビットで構成される。m個の物理アドレスを有する物理アドレス群が、少なくとも1つの未記録物理アドレスを有する場合「1」を示し、1つも未記録物理アドレスを有しない場合「0」を示す。
【0022】
記憶装置101は起動時に、未記録物理アドレス群(少なくとも1つの未記録物理アドレスを有する物理アドレス群)について、第2の未記録物理アドレステーブルをRAM113上に生成する。第2の未記録物理アドレステーブルは、少なくとも1つ生成する(実施例においては、2つ生成する。)。第2の未記録物理アドレステーブル142及び143は、m個の物理アドレスが未記録物理アドレスであるか否かの情報を有する。未記録物理アドレスであるか否かは論理値0又は1で示し、0が「未記録物理アドレスでない」、1が「未記録物理アドレスである」である。各ビットは1ビットで構成される。物理アドレスが未記録の場合「1」を示し、記録済みの場合「0」を示す。第2の未記録物理アドレステーブル142及び143は、データの書き込み時に、未記録物理アドレスの消費量又は残量に応じて、新たに生成される。
【0023】
第1の未記録物理アドレステーブル141は、データ記録領域122の全ての物理アドレス群がそれぞれ未記録物理アドレスを有するか否かの情報を有する。物理アドレス群という概念を導入することにより、第1の未記録物理アドレステーブル141は、nビットの情報量で実現できる。第2の未記録物理アドレステーブル142及び143は、1つの未記録物理アドレス群に含まれる各物理アドレスが未記録物理アドレスであるか否かの情報を有する。第2の未記録物理アドレステーブルは、mビットの情報量で実現でき、少なくとも1つ(実施例では2つ)をRAM113に生成する。
例えば実施例1と同じ大きさのデータ記録領域((m×n)=64k個の物理アドレス)を有する従来例の記憶装置は、(m×n)=64kビットの情報量の未記録物理アドレステーブルを有していた。本発明の記憶装置101は、物理アドレス群という概念を導入して、第1の未記録物理アドレステーブルと第2の未記録物理アドレステーブルとを生成する。実施例1の記憶装置は、(2m+n)=2×1024+64=約2kビットの情報量の第1及び第2の未記録物理アドレステーブルを有する。記憶装置が動作している時、未記録物理アドレステーブルはRAMに常駐する故に、RAMはバッファ等の動作に必要な容量に加えて未記録物理アドレステーブルを搭載する容量を持つ必要がある。本発明の記憶装置においては、従来よりもRAM容量を小さく出来る。
【0024】
図5を用いて、第1及び第2の未記録物理アドレステーブルを用いた実施例の記憶装置の制御方法を説明する。説明の便宜上図5においてはm=16、n=8とする。図5において、不揮発性メモリ112のデータ記録領域122は、8個(n=8)の物理アドレス群によって区分され、各物理アドレス群は16個(m=16)の物理アドレスによって区分される。
図5(a)は、初期化時の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルを示す図である。第1の未記録物理アドレステーブル501は、8個の物理アドレス群がそれぞれ未記録物理アドレスを有するか否かの情報を有する。図5(a)では、少なくとも1つの未記録物理アドレスを有する(1を示す)第5番目の物理アドレス群と第6番目の物理アドレス群について、第2の未記録物理アドレステーブル502及び503を生成する。第2の未記録物理アドレステーブル502及び503は、16個の物理アドレスの未記録か否かの情報を有する。
【0025】
記憶装置101の制御部111は、データ入出力装置102から送られた書き込み指令を受信すると、第2の未記録物理アドレステーブル502を検索し、第5番目の物理アドレス群の未記録物理アドレス5−10を選択し、そこにデータを書き込む。これにより、第5番目の物理アドレス群に含まれる物理アドレスが全て書き込み済みになる。制御部111は、第1の未記録物理アドレステーブル501の第5番目の物理アドレス群に対応するビットを0に更新する。第1の未記録物理アドレステーブル501に基づいて、第7番目の未記録物理アドレス群を検出し、第2の未記録物理アドレステーブル504をRAM113上に新たに生成する(図5(b))。
実施例1においては、未記録物理アドレスを有する第2の未記録物理アドレステーブルの数が所定数以下(実施例1では1以下)になった時、新たな第2の未記録物理アドレステーブルを生成する。
【0026】
図5及び図6を用いて、起動時の記憶装置101の制御方法を説明する。図6は、実施例1の起動時の記憶装置101の制御方法を示すフローチャートである。
記憶装置101を起動する(ステップ601)。記憶装置101は不揮発性メモリ112のデータ記録領域122に含まれる全ての物理アドレスを検索して、第1の未記録物理アドレステーブル501をRAM113上に生成する(ステップ602)。記憶装置101は第1の未記録物理アドレステーブルに基づいて、未記録物理アドレスを有する物理アドレス群の中から、所定の数(実施例においては2つ)の物理アドレス群について、第2の未記録物理アドレステーブル502及び503をRAM113上に生成する(ステップ603)。
【0027】
図5及び図7を用いて、データの書き込み時の記憶装置101の制御方法を説明する。図7は、データの書き込み時の記憶装置101の制御方法を示すフローチャートである。
記憶装置101の制御部111は、データ入出力装置102からのファイルデータの書き込み指令を入力する(ステップ701)。第2の未記録物理アドレステーブル502(図5)に基づいて、データを書き込む物理アドレスを第05−10番目の物理アドレスに決定する(ステップ702)。ファイル名と先頭の物理アドレス「05−10」を書き込んだディレクトリエントリ132を不揮発性メモリ112の管理領域121上に作成する(ステップ703)。記憶装置101の不揮発性メモリ112は、データ記録領域122の第5番目の物理アドレス群の第10番目の物理アドレスに、ファイルを分割したデータを書き込む(ステップ704)。
【0028】
RAM113上の第2の未記録物理アドレステーブル502の第10番目の物理アドレスに対応するビットを0(記録済み)に書き換えて、第2の未記録物理アドレステーブル502を更新する(ステップ705)。未記録(1を示す)物理アドレスが、第2の未記録物理アドレステーブル502に有るか否か判断する(ステップ706)。未記録物理アドレスが有れば、ステップ709へ進む。ステップ705で、第2の未記録物理アドレステーブル502は、全て記録済み(0を示す)に更新されたので、未記録物理アドレスは残っていない。従って図5(a)においては、ステップ707へ進む。
【0029】
RAM113上の第1の未記録物理アドレステーブル501の第5番目の物理アドレス群に対応するビットを0(記録済み)に書き換えて、第1の未記録物理アドレステーブル501を更新する(ステップ707)。RAM113から、第5番目の物理アドレス群の第2の未記録物理アドレステーブル502を削除し、第7番目の物理アドレス群の第2の未記録物理アドレステーブル504を新たにRAM113上に生成する(ステップ708)。
分割されたデータの全データを書き込み完了か否か判断する(ステップ709)。書き込みが完了していなければ、ステップ710へ進み、第2の未記録物理アドレステーブル503に基づいて、次のデータを書き込む物理アドレスを決定する。不揮発性メモリ112の管理領域121にあるFAT132のアドレス05−10に次のデータを書き込む物理アドレスを書き込む(ステップ711)。ステップ704へ戻り、データの書き込みを繰り返す。
ステップ709で全データの書き込みが完了であれば、処理を終了する。
【0030】
フラッシュメモリ等の不揮発性メモリは、データの書き込み時(メモリセルに0又は1のデータを書き込む。)と、消去時(例えば消去領域のメモリセルのデータを全て1にする。)とでは、全く異なる方法で制御される。又、フラッシュメモリ等の不揮発性メモリにおいては、データの書き込み単位とデータの消去単位が異なる。実施例において、データの書き込み単位は物理アドレスである。データを消去する場合、不揮発性メモリ112は複数の物理アドレスを一度に消去する(物理アドレス単位でデータを消去することができない。)。このデータの消去単位を「物理ブロック」と呼ぶ。物理ブロックは複数の物理アドレスで構成される。実施例において、物理ブロックは物理アドレス群より小さい。
【0031】
図8を用いて、データの消去時の記憶装置101の制御方法を説明する。図8は、データの消去時の記憶装置101の制御方法を示すフローチャートである。記憶装置101の制御部111は、データ入出力装置102からのデータの消去指令を入力する(ステップ801)。記憶装置101の不揮発性メモリ112は、物理ブロックを消去する(ステップ802)。記憶装置101は、消去した物理ブロックを含む物理アドレス群を未記録物理アドレス群に設定し(1を書き込む)、第1の未記録物理アドレステーブルを更新する(ステップ803)。
消去した物理ブロックを含む物理アドレス群の第2の未記録物理アドレステーブルが、RAM113上に有るか否か判断する(ステップ804)。無ければ、処理を終了する。有れば、ステップ805へ進み、消去した物理アドレスを未記録に設定し(1を書き込む)、第2の未記録物理アドレステーブルを更新する(ステップ805)。処理を終了する。
【0032】
《実施例2》
図9及び図10を用いて、実施例2の記憶装置及びその制御方法を説明する。実施例1においては、不揮発性メモリ112の管理領域121に、FAT132を記憶した(図3)。実施例2においては、FAT132の代わりに、論理アドレス/物理アドレス変換テーブル901を管理領域121に記憶する(図9)。
実施例1においては、第1の未記録物理アドレステーブルは、全ての物理アドレス群の未記録物理アドレス群であるか否かの情報を記憶し、第2の未記録物理アドレステーブルは、1つの物理アドレス群に含まれる全ての物理アドレスのそれぞれが未記録物理アドレスであるか否かの情報を記憶した(図4)。実施例2においては、第1の未記録物理アドレステーブルは、未記録物理アドレス群のみのアドレスを記憶し、第2の未記録物理アドレステーブルは、未記録物理アドレスのみのアドレスを記憶する(図10)。これ以外の点においては、実施例1と同一である。
【0033】
図9は、論理アドレス/物理アドレス変換テーブルの構成を示す図である。フラッシュメモリ等の不揮発性メモリを用いた記憶装置においては、外部(例えばホスト装置であるデータ入出力装置)から指定される論理アドレスと、不揮発性メモリ内に配置される物理アドレスは一般的に一致しない。フラッシュメモリ等の不揮発性メモリにおいては、データを書き換える毎にデータを記録する物理アドレスを変える必要がある。ホスト装置がデータを記録した不揮発性メモリの物理アドレスを直接管理することは極めてわずらわしく困難である。不良が発生した物理アドレスを避けて使用する必要がある。特定の物理アドレスへの書き込みが頻発するシステムでは、その物理アドレスが短期間で書き換え保証回数を上回り、記憶装置が短寿命になってしまう、という不都合が生じる。
そこで、図9のように、外部から指定される論理アドレスが、どの物理アドレスに割り当てられているかを示す論理アドレス/物理アドレス変換テーブルを作成し、不揮発性メモリ112の管理領域121に格納する。
【0034】
記憶装置101の制御部111が、データ入出力装置102からの論理アドレス100を指定したデータの書き込み指令を入力すると、制御部111は実際にデータを書き込む物理アドレスを、第2の未記録物理アドレステーブルに基づいて決定する。不揮発性メモリ112は、決定された03−11の未記録物理アドレスに、ファイルから分割された最初のデータを書き込む。不揮発性メモリ112は、指定された論理アドレス100と、実際にデータを書き込む物理アドレス03−11とを対応させ、論理アドレス/物理アドレス変換テーブル901に書き込む(911)。ファイルから分割された残りのデータは、第2の未記録物理アドレステーブルに基づいて決定されたデータ記録領域122の未記録物理アドレスに順に格納される。ファイルから分割されたデータを未記録物理アドレスに書き込む毎に、論理アドレス/物理アドレス変換テーブル901に、その論理アドレスと物理アドレスとを対応付けて書き込む。
【0035】
図10は、実施例2の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルの構成を示す図である。記憶装置101は起動時に、データ記録領域122の全ての物理アドレスを検索し、第1の未記録物理アドレステーブル1001と第2の未記録物理アドレステーブル1002及び1003をRAM113上に生成する。
第1の未記録物理アドレステーブル1001は、n個の物理アドレス群のうち未記録物理アドレス群の番号のみを有する。m個の物理アドレスを有する物理アドレス群が、少なくとも1つの未記録物理アドレスを有する場合、第1の未記録物理アドレステーブル1001に、その物理アドレス群の番号を記憶する。テーブルの終端には、終端を示すFFF(16進数表示)を挿入する。
【0036】
第2の未記録物理アドレステーブル1002及び1003は、m個の物理アドレスのうち未記録物理アドレスの番号のみを有する。終端にFFF(16進数表示)を挿入する。記憶装置101は起動時に、少なくとも1つの未記録物理アドレスを有する物理アドレス群について、第2の未記録物理アドレステーブルをRAM113上に生成する。第2の未記録物理アドレステーブル1002及び1003は、データの書き込み時に、未記録物理アドレスの消費量又は残量に応じて、新たに生成される。
【0037】
データの書き込みが発生した場合、第2の未記録物理アドレステーブルを用いて、未記録物理アドレスを決定し、データを書き込む。記録済みになった物理アドレスは、第2の未記録物理アドレステーブルから削除し、次の物理アドレス群について新たな第2の未記録物理アドレステーブルを生成する。
データの消去が発生した場合、消去した物理ブロックを含む物理アドレス群を第1の未記録物理アドレステーブルに記憶する。その物理アドレス群の第2の未記録物理アドレステーブルがRAM113に有る場合は、消去した物理アドレスを、第2の未記録物理アドレステーブルに書き込む。
【0038】
《実施例3》
図11を用いて、実施例3の記憶装置及びその制御方法を説明する。
実施例1及び実施例2においては、第1の未記録物理アドレステーブルは、記憶装置101の起動時にRAM113上に生成された。RAMは電源を切るとデータの内容を保持できないので、電源を入れる度に第1の未記録物理アドレステーブルを生成しなければならない。不揮発性メモリは、電源が無くてもデータを保持できる。実施例3においては、第1の未記録物理アドレステーブルは、不揮発性メモリ112に記憶する。これ以外の点においては、実施例1又は実施例2と同一である。
【0039】
図11は、実施例3の起動時の記憶装置101の制御方法を示すフローチャートである。記憶装置101を起動する(ステップ1101)。記憶装置101は不揮発性メモリ112から第1の未記録物理アドレステーブルを読み出す(ステップ1102)。記憶装置101は、第1の未記録物理アドレステーブルの未記録物理アドレス群の中から、所定の数(実施例においては2つ)の物理アドレス群について、データ記録領域122の物理アドレスを検索し、第2の未記録物理アドレステーブルをRAM113上に生成する(ステップ1103)。
【0040】
記憶装置101は、第1の未記録物理アドレステーブルを不揮発性メモリ112に持つことにより、起動時にデータ記録領域122の全ての物理アドレスを検索する必要がなくなる。少なくとも1つ(実施例では2つ)の未記録物理アドレス群に含まれる物理アドレスを検索するだけですむので、起動時の立ち上がりが早い。
【0041】
【発明の効果】
本発明によれば、データの書き込み速度及び読み出し速度の低下を招くことなく、不揮発性メモリの容量と比較して小さな容量のRAMを有する安価な記憶装置及びその制御方法を実現できるという有利な効果が得られる。
本発明によれば、短時間で起動する記憶装置及びその制御方法を実現できるという有利な効果が得られる。
【図面の簡単な説明】
【図1】本発明の記憶装置の構成を示すブロック図
【図2】複数の物理アドレスを有する本発明の実施例の物理アドレス群と、その物理アドレス群によって区分されたデータ記録領域122とを示す図
【図3】ディレクトリエントリ及びFATの構成を示す図
【図4】本発明の実施例1の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルの構成を示す図
【図5】図5(a)は初期化時の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルを示す図、図5(b)は更新後の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルを示す図
【図6】本発明の実施例1の起動時の記憶装置101の制御方法を示すフローチャート
【図7】本発明の実施例1のデータの書き込み時の記憶装置101の制御方法を示すフローチャート
【図8】本発明の実施例1のデータの消去時の記憶装置101の制御方法を示すフローチャート
【図9】論理アドレス/物理アドレス変換テーブルの構成を示す図
【図10】本発明の実施例2の第1の未記録物理アドレステーブル及び第2の未記録物理アドレステーブルの構成を示す図
【図11】本発明の実施例3の起動時の記憶装置101の制御方法を示すフローチャート
【図12】従来例の記憶装置の構成を示すブロック図
【図13】従来例の未記録物理アドレステーブルの構成を示す図
【符号の説明】
101、1201 記憶装置
102 データ入出力装置
111 制御部
112 不揮発性メモリ
113 RAM
131 ディレクトリエントリ
132 FAT
141 第1の未記録物理アドレステーブル
142、143 第2の未記録物理アドレステーブル
1301 従来例の未記録物理アドレステーブル
Claims (7)
- ファイルアロケーションテーブル又は論理アドレス/物理アドレス変換テーブルを用いて、物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、
前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が少なくとも1つの未記録物理アドレスを有する物理アドレス群(以下、「未記録物理アドレス群」と呼ぶ。)であるか否かの情報を有する第1の未記録物理アドレステーブルと、
1つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第2の未記録物理アドレステーブルと、
を有し、
前記第2の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込み、
前記第2の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第1の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを新たに生成することを特徴とする記憶装置。 - 複数の前記第2の未記録物理アドレステーブルを有し、未記録物理アドレスを有する前記第2の未記録物理アドレステーブルの数が所定数以下になった時、新たな前記第2の未記録物理アドレステーブルを生成することを特徴とする請求項1に記載の記憶装置。
- 前記第1の未記録物理アドレステーブルが、全ての前記データ記録領域に関する未記録物理アドレス群の情報を有することを特徴とする請求項1又は請求項2に記載の記憶装置。
- 前記第1の未記録物理アドレステーブルを前記不揮発性メモリに記憶し、
起動時に前記不揮発性メモリから読み出した前記第1の未記録物理アドレステーブルに含まれる前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを生成することを特徴とする請求項1から請求項3のいずれかの請求項に記載の記憶装置。 - ファイルアロケーションテーブル又は論理アドレス/物理アドレス変換テーブルを用いて物理アドレスを最小書き込み単位としてデータを書き込む不揮発性メモリと、
前記不揮発性メモリのデータ記録領域を複数の領域に区分し且つそれぞれ前記物理アドレスを複数個有する物理アドレス群を定め、各物理アドレス群が未記録物理アドレス群であるか否かの情報を有する第1の未記録物理アドレステーブルと、
1つの前記未記録物理アドレス群に属する各物理アドレスが未記録物理アドレスであるか否かの情報を有する第2の未記録物理アドレステーブルと、
を有する記憶装置の制御方法であって、
前記第2の未記録物理アドレステーブルに基づいて検出した未記録物理アドレスにデータを書き込む書き込みステップと、
前記書き込みステップに応じて、前記第2の未記録物理アドレステーブル、又は前記第1及び第2の未記録物理アドレステーブルを更新する第1の更新ステップと、
前記第2の未記録物理アドレステーブルの未記録物理アドレスの消費量又は残量に応じて、前記第1の未記録物理アドレステーブルの前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを新たに生成する第2の未記録物理アドレステーブル生成ステップと、
を有することを特徴とする記憶装置の制御方法。 - 起動時に、前記不揮発性メモリに記憶されていた前記第1の未記録物理アドレステーブルを読み出す第1の初期化ステップと、
前記第1の未記録物理アドレステーブルに含まれる少なくとも1つの前記未記録物理アドレス群について、前記第2の未記録物理アドレステーブルを生成する第2の初期化ステップと、
を更に有することを特徴とする請求項5に記載の記憶装置の制御方法。 - 前記物理アドレス群が、データ消去単位であって複数の前記物理アドレスを有する物理ブロックを有し、
前記物理ブロックのデータを消去する消去ステップと、
前記第1の未記録物理アドレステーブルにおいて、前記消去ステップを実行した前記物理ブロックを有する前記物理アドレス群を未記録物理アドレス群にする第2の更新ステップと、
を更に有することを特徴とする請求項5又は請求項6に記載の記憶装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002290236A JP2004126945A (ja) | 2002-10-02 | 2002-10-02 | 記憶装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002290236A JP2004126945A (ja) | 2002-10-02 | 2002-10-02 | 記憶装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004126945A true JP2004126945A (ja) | 2004-04-22 |
Family
ID=32282184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002290236A Pending JP2004126945A (ja) | 2002-10-02 | 2002-10-02 | 記憶装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004126945A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006039886A (ja) * | 2004-07-27 | 2006-02-09 | Renesas Technology Corp | メモリカード |
-
2002
- 2002-10-02 JP JP2002290236A patent/JP2004126945A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006039886A (ja) * | 2004-07-27 | 2006-02-09 | Renesas Technology Corp | メモリカード |
JP4637524B2 (ja) * | 2004-07-27 | 2011-02-23 | ルネサスエレクトロニクス株式会社 | メモリカード |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10078449B2 (en) | Flash memory architecture with separate storage of overhead and user data | |
JP4122972B2 (ja) | データ記録装置及びフラッシュメモリに対するデータ書き込み方法 | |
US7734862B2 (en) | Block management for mass storage | |
JP4832521B2 (ja) | フラッシュメモリメディアにおけるデータ管理方法 | |
US6567307B1 (en) | Block management for mass storage | |
JP4356686B2 (ja) | メモリ装置及びメモリ制御方法 | |
JP4268396B2 (ja) | 1回プログラム可能な不揮発性メモリデバイスのファイル管理 | |
JP2006040264A (ja) | メモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
JPH08137634A (ja) | フラッシュディスクカード | |
JP2007280428A (ja) | メモリ管理 | |
JP2007241576A (ja) | 不揮発性記憶装置およびそのデータ書込み方法 | |
WO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
JP2768618B2 (ja) | 半導体ディスク装置 | |
KR20010037155A (ko) | 플래시 파일 시스템 | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
JP4829202B2 (ja) | 記憶装置及びメモリ制御方法 | |
JPWO2007105688A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
KR20020092261A (ko) | 멀티-플레인 구조의 플래시 메모리 관리 방법 | |
JP2003058417A (ja) | 記憶装置 | |
JP3702515B2 (ja) | フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット | |
JP4235646B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
US20050204115A1 (en) | Semiconductor memory device, memory controller and data recording method | |
JP2007199828A (ja) | 不揮発性記憶装置およびそのアドレス管理方法 | |
JP2004126945A (ja) | 記憶装置及びその制御方法 | |
JPH0778485A (ja) | 不揮発性半導体記憶装置とデータ書換/読出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050524 |