JP2007310533A - 不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法 - Google Patents
不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法 Download PDFInfo
- Publication number
- JP2007310533A JP2007310533A JP2006137498A JP2006137498A JP2007310533A JP 2007310533 A JP2007310533 A JP 2007310533A JP 2006137498 A JP2006137498 A JP 2006137498A JP 2006137498 A JP2006137498 A JP 2006137498A JP 2007310533 A JP2007310533 A JP 2007310533A
- Authority
- JP
- Japan
- Prior art keywords
- file data
- file
- access device
- memory
- size
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】消去単位である物理ブロックサイズがクラスタサイズより大きい不揮発性メモリを使用した場合における書き込み速度を向上させること。
【解決手段】論理アドレスが不連続である複数のクラスタ(領域割り当て単位)に割り当てられたファイルデータを書き込む場合においても、アクセス装置側がファイルデータの送信前にFSCMDにより事前にファイル番号を指定する。不揮発性記憶装置はファイルデータの送信順に仮想論理アドレスを形成すると共に、ファイル番号に基づいて物理ブロックへのマッピングを行う。そのためファイルデータの送信順に不揮発性メモリに連続的に書き込むことができる。ファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、退避処理が不要となり、ファイルデータの書き込み速度を向上させることができる。
【選択図】図16
【解決手段】論理アドレスが不連続である複数のクラスタ(領域割り当て単位)に割り当てられたファイルデータを書き込む場合においても、アクセス装置側がファイルデータの送信前にFSCMDにより事前にファイル番号を指定する。不揮発性記憶装置はファイルデータの送信順に仮想論理アドレスを形成すると共に、ファイル番号に基づいて物理ブロックへのマッピングを行う。そのためファイルデータの送信順に不揮発性メモリに連続的に書き込むことができる。ファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、退避処理が不要となり、ファイルデータの書き込み速度を向上させることができる。
【選択図】図16
Description
本発明は、フラッシュメモリ等の不揮発性メモリを備えた不揮発性記憶装置、それを記憶媒体として使用した不揮発性記憶システム、及びフラッシュメモリ等の不揮発性メモリへのファイルデータ書き込み方法に関するものである。
書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。また半導体メモリカードを使った不揮発性記憶システムは、デジタルスチルカメラ等を中心にその需要が広まっている。かかる半導体メモリカードには様々な種類があり、その一つとしてSDメモリカードがある。このSDメモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラやパーソナルコンピュータ本体等のアクセス装置からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うものとなっている。
このようなSDメモリカードをデジタルスチルカメラ等のアクセス装置に取り付けて、アクセス装置側からリムーバブルディスクと見なしてFATファイルシステムで管理し、データのアクセスを行うことを考える。FATファイルシステムは、記録デバイスへファイルやデータを記録する際にファイル・アローケション・テーブル(以下、FATという)を用いてデータ書き込みの最小単位である「クラスタ」ごとにデータ読み書きを指示するシステムである。
従来、SDメモリカードを構成するフラッシュメモリは、クラスタサイズとイレーズサイズ(物理ブロックのサイズ)とが例えば16kバイトで同一であったが、近年、フラッシュメモリの大容量化のニーズに伴い、物理ブロックサイズが例えば256kバイトのフラッシュメモリが主流になってきている。このような大容量のフラッシュメモリは、クラスタサイズ(例えば16kバイト)よりイレーズサイズが大きいため、データの書き込みが以前よりも煩雑になっている。
この書き換えの煩雑さについて、図1を用いて説明する。FATファイルシステムを適用したアクセス装置側は、図1の左側に示す論理アドレス空間LAA上で、画像などのデータのアクセス制御を行う。論理アドレス空間は複数のクラスタに分割され、例えばクラスタ番号0と1が管理情報領域、クラスタ番号2以降がデータ領域に分けられる、管理情報領域にはFATなどの管理情報が記録され、データ領域には画像などのデータ(いわゆるコンテンツデータ)が記録される。
データ領域では、画像データの記憶や不要となった画像データを論理的に消去することによって、有効データが記憶されたクラスタと空きクラスタが混在することとなる。なお、論理消去とはFATに消去済みであることを示す情報を書き込むだけであり、SDメモリカード内のフラッシュメモリ上に記録されたデータを物理的に消去するものではない。図1に示す論理アドレス空間において、ハッチングで示すクラスタは既存の有効ファイル、ハッチングのないクラスタは論理消去されたクラスタを示しており、この状態で新たに16クラスタ分のデータの書き込みを行うことを考える。
図1において、アクセス装置は管理情報領域上のFATを参照することにより、クラスタ番号6〜9、14、15、18、20〜22、25〜30が16クラスタ分の空きクラスタ番号であることを認識する。そして、アクセス装置は、SDメモリカードに対して空きクラスタ番号の小さい方から順番に書き込みを行う。すなわち、クラスタ番号6のクラスタから書き込みを開始する。なお、FATファイルシステムにおいては、少なくともクラスタ番号が不連続になった時点では、ライトコマンド(以下、WCMDという)を発行し直す必要がある。つまり、少なくともクラスタ番号6、14、18、20、25にデータを送信する直前にWCMDを発行する必要がある。それぞれのWCMDを、WCMD1、WCMD2、WCMD3、WCMD4、WCMD5とする。また各WCMDにおいてデータ送信が完了した時点でストップコマンド(以下、SCMDという)を発行する。
まず、アクセス装置は、SDメモリカードに対して、WCMD1の発行した後、クラスタ番号6〜9にデータを書き込む。具体的には、書き込み開始セクタアドレス、すなわちクラスタ番号6の先頭セクタに対応する論理セクタアドレスを送信した後にクラスタ番号6〜9に書き込むデータ(C6〜C9)を送信する。そして送信した後にSCMD1を送信し、アクセス装置からSDメモリカードへのデータ送信を完了する。
このときSDメモリカード内のフラッシュメモリの物理ブロック番号5(PB5)にクラスタ番号2〜17までの16クラスタ分(256kバイト分)のデータが既に記憶されているものとする。ここで、物理ブロックは、128ページの書き込み単位から構成されている。
さて図1において、物理ブロックPB5の斜線でハッチングした領域は、論理アドレス空間上のクラスタ番号2〜5、10〜13、16、17に書き込まれたデータを既に記憶している。また、以前にクラスタ番号6〜9にデータがPB5のドットでハッチングした領域に書き込まれていた場合には、そのデータをそのまま記憶している。なお、クラスタ番号6〜9は、論理アドレス空間上において論理消去されているが、SDメモリカード側は論理消去した事を認識できないので、SDメモリカードは、PB5のドットでハッチングした領域には有効なデータが記憶されているものとして管理している。
SDメモリカードは送られてきたデータC6〜C9を書き込むために、消去済みの物理ブロック、ここではPB1を選択し、PB1の対応する領域にC6〜C9を書き込む。この書き込みを実線矢印で示す。それと同時にPB5に記憶されているデータをPB5に書き込む。これを退避ともいい、破線矢印で示す。
上述したWCMD1の書き込みと同様にして、WCMD2〜WCMD5の書き込みにおいても、消去済みブロック(ここではPB7、PB0、PB8、PB88)を選択し、データの書き込みと退避を行う。なお、WCMD5までの一連の書き込みが完了した段階で、物理ブロックPB5、PB1、PB21、PB0、PB8に記憶されたデータは不要となるので、物理消去して次の書き込みに備える。
特開2003−263894号公報
以上説明した物理ブロックへの書き込み方法のことを「退避前提の書き込み手法」と呼ぶ。「退避前提の書き換え手法」は、WCMD毎にデータの退避が必要となるため、時間のかかる処理となっている。
そこで、本発明は、従来よりも退避処理を合理化し、データ書き込みを高速に行うことができる不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法を提供することを目的とする。
この課題を解決するために本発明の不揮発性記憶システムは、アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、前記アクセス装置は、複数のクラスタに割り当てられる1つのファイルデータを前記不揮発性記憶装置に送信する前に、該ファイルデータのファイル番号を指定するファイル番号指定手段と、前記ファイルデータ、及び前記ファイル番号指定手段によって指定されたファイル番号を前記不揮発性記憶装置に送信するファイルデータ送信手段とを有し、前記不揮発性メモリは、複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、前記メモリコントローラは、前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有するものである。
この課題を解決するために本発明の不揮発性記憶システムは、アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、前記アクセス装置は、複数のクラスタに割り当てられる1つのファイルデータを前記不揮発性記憶装置に送信する前に、クラスタ毎に連続的なオフセット番号を指定するオフセット番号指定部と、当該ファイルデータのファイル番号を指定するファイル番号指定部と、前記オフセット番号に基づき前記ファイルデータを分割するファイル分割部と、当該ファイルデータの送信前に前記ファイル番号指定部によって指定されたファイル番号、前記オフセット番号指定部によって指定されたオフセット番号を送信すると共に、ファイルデータを分割して送信するファイルデータ送信部とを有し、前記不揮発性メモリは、複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、前記メモリコントローラは、前記アクセス装置から送信された前記ファイルデータの受信順に不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有するものである。
なお、「規則的に書き込む」とは、予めメモリコントローラ側で決めておいた物理ブロックへの書き込み順番に従って書き込むことを示している。これは例えば物理ブロックの下位アドレスから順に連続的に書き込むものであってもよい。
ここで前記アドレス管理部は、前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルと、前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスを発生するアドレスカウンタと、を有するようにしてもよい。
ここで前記セグメントは、少なくとも1つの物理ブロックとしてもよい。
ここで前記メモリコントローラは、不揮発性メモリのセグメントサイズを保持し、電源立ち上げ時に前記セグメントのサイズを前記アクセス装置に通知するカード情報保持部を有し、前記アクセス装置は、通知されたセグメントサイズに基づきファイルデータの最小サイズを決定するようにしてもよい。
この課題を解決するために本発明の不揮発性記憶装置は、不揮発性メモリとメモリコントローラとを有し、外部のアクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶装置であって、前記不揮発性メモリは、複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、前記メモリコントローラは、前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルを有し、前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有するものである。
この課題を解決するために本発明のファイルデータ書き込み方法は、アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムのファイルデータの書き込み方法であって、複数のクラスタに割り当てられる1つのファイルデータを前記アクセス装置より前記不揮発性記憶装置に送信する前に、該ファイルデータのファイル番号を指定し、前記ファイルデータと前記ファイル番号指定手段によって指定されたファイル番号とを前記不揮発性記憶装置に送信し、前記不揮発性メモリは、複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、前記メモリコントローラは、前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むものである。
本発明によれば、論理アドレスが不連続である複数のクラスタ(領域割り当て単位)に割り当てられたファイルデータを書き込む場合においても、ファイルデータの送信前に該ファイルデータのファイル番号を指定することによって、メモリコントローラが該ファイル番号に基づいてファイルデータを1つのまとまった単位として管理できる。そのためファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、従来のような退避処理をすることなく、ファイルデータの送信順に不揮発性メモリに規則的に書き込むことができ、ファイルデータの書き込み速度が向上する。この方法は、ファイル番号指定後に1つのファイルデータ全てを書き込むような用途、すなわち1つのファイルサイズが比較的小さい場合に好都合である。
さらに、アクセス装置側で1つのファイルデータに連続的なアドレスであるオフセット番号を付与し、ファイルデータを分割して送信する。ファイルデータの送信前にファイルデータのファイル番号と前記オフセット番号を指定する場合には、メモリコントローラが該ファイル番号とオフセット番号に基づいて分割されたファイルを管理できる。そのためファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、従来のような退避処理をすることなくファイルデータの送信順に不揮発性メモリに規則的に書き込むができ、ファイルデータの書き込み速度が向上する。この方法は、ファイル番号指定後に1つのファイルデータを分割的に書き込むような用途、すなわち1つのファイルサイズが比較的大きい場合に好都合である。
(実施の形態1)
図2は、本発明の実施の形態1における不揮発性記憶システムを示すブロック図である。図2において、不揮発性記憶システムは、アクセス装置100Aと不揮発性記憶装置140とを含んで構成される。不揮発性記憶装置140は、メモリコントローラ110と不揮発性メモリ130を含む。
図2は、本発明の実施の形態1における不揮発性記憶システムを示すブロック図である。図2において、不揮発性記憶システムは、アクセス装置100Aと不揮発性記憶装置140とを含んで構成される。不揮発性記憶装置140は、メモリコントローラ110と不揮発性メモリ130を含む。
図2において不揮発性記憶装置140にアクセスするアクセス装置100Aは、入出力部101、データ処理部102、FATファイルシステム制御部103、コマンド発行部104、ファイルデータ受信部105、ファイルデータ送信部106、ファイル番号指定部107、カードインターフェース(カードIF)108、CPU109を含む。
入出力部101は、デジタルスチルカメラの場合は撮像回路やLCDなどの表示回路に相当する。データ処理部102は、取り込んだ静止画像をデジタル信号に変換しファイルデータとしてファイルデータ送信部106に送信したり、不揮発性記憶装置140からファイルデータデータ受信部105に読み込んだファイルデータを、入出力部101に送信して画像を表示させる回路である。FATファイルシステム制御部103は、データ処理部102が出力したファイルデータを論理アドレス空間上に割り当てるためのブロックである。コマンド発行部104は不揮発性記憶装置140にファイルデータを書き込んだり、読み出したりする際のコマンドを発行するブロック、ファイルデータ受信部105は、不揮発性記憶装置140からファイルデータを受信するブロックである。ファイルデータ送信部106は、不揮発性記憶装置140にファイルデータを送信するブロックである。ファイル番号指定部107はファイルデータを特定するためのファイル番号をコマンド発行部104に指定するブロックである。CPU109はアクセス装置100A全体の制御を行うブロックである。カードインターフェース部108は不揮発性記憶装置140とのインターフェースを行うブロックである。
一方、メモリコントローラ110はホストインターフェース(ホストIF)111、CPU112、カード情報保持レジスタ113、アドレス管理部114、バッファ115、読み書き制御部116を含んでいる。ホストインターフェース111は、アクセス装置100Aと各種コマンド、ファイル番号、論理アドレス及びデータを送受信するインターフェースである。なお、データとは後述する通り、画像などのファイルデータとファイルデータを管理するためのファイル管理データの2種類がある。
さて、メモリコントローラ110のCPU112は、CPUの他にメモリコントローラ110全体を制御するプログラムが格納されているROMや作業用のRAMを含む。アドレス管理部114は、不揮発性メモリ130へ書き込むデータあるいは読み出すデータの物理アドレスを決定する回路であり、内部にアドレスカウンタ120、物理領域管理テーブル121とマッピングテーブル122を含む。読み書き制御部116は、アドレス管理部114が指定した物理アドレスに基づき、アクセス装置100Aから受信したデータを不揮発性メモリ130に書き込んだり、不揮発性メモリ130からデータを読み出す回路である。
次に各ブロックについて更に詳細に説明する。不揮発性メモリ130はフラッシュメモリで構成され、複数の物理ブロックを有する。物理ブロックは消去の単位である。図3は、不揮発性メモリ130内の物理ブロックの配置図である。図3はセグメントサイズを256kバイトとし、物理ブロックPB0x9に256kバイトのファイルデータが記憶された状態を表す。PBはPhysical Blockの略号であり、0xは16進数を表し、0〜fffは物理ブロックを特定する番号である。各物理ブロックは図4に示すようにページ番号0〜127までの128ページの書き込み単位から構成されている。各ページはデータ領域と、物理ブロックやページの状態を示すためのステータス情報を記憶する管理領域とから構成されている。
カード情報保持部113は不揮発性記憶装置のデータ領域の容量(以下、カード容量という)セグメントサイズを記憶するものである。このレジスタは不揮発性記憶装置140の製造時にあらかじめこれらの情報を書き込んだROMであってもよい。また不揮発性記憶装置140の製造時に予めカード容量とセグメントサイズを不揮発性メモリ130の一部の物理ブロック(例えば最終物理ブロック)に記憶させておき、電源立ち上げ直後にCPU112が不揮発性メモリ130から読み込んだ該セグメントサイズを一時記憶させるRAMであっても構わない。
ここでセグメントとはファイルデータの管理単位を示しており、セグメントサイズはアドレス管理部114がマッピングテーブル122を用いて管理するファイルデータの管理単位サイズである。例えばセグメントサイズが256kバイトであれば、アドレス管理部114はファイルデータを256kバイト単位で管理することを意味する。この場合、カード容量を1Gバイトとすると、最大4096個のファイルデータを記憶することが可能となる。但し、不揮発性メモリ130の物理アドレス空間が1Gバイトの場合、データ領域の他にシステム情報を記憶するシステム領域があるので、実際のデータ領域のサイズは1Gバイトより小さくなる。ここでは簡単のためにデータ領域のサイズと不揮発性メモリ130の物理アドレス空間のサイズは等しいものとして説明する。
また、セグメントサイズが1Mバイトであれば、アドレス管理部114はファイルデータを1Mバイト単位で管理することを意味する。この場合、カード容量を1Gバイトとすると、最大1024個のファイルデータを記憶することが可能となる。
図5は物理領域管理テーブル121を示すメモリマップである。物理領域管理テーブル121は物理ブロック番号PB0からPB4095までの4096の物理ブロックのステータスを2ビットで示しており、00は有効ブロック、01は無効ブロック、10は不良ブロック、11は消去済みブロックを示す。
図6はセグメントサイズを256kバイトとした場合のマッピングテーブル122のメモリマップである。この図では、物理ブロックPB0x9に256kバイトのファイルデータが記憶された状態を表す。図7は、セグメントサイズを1Mバイトとした場合のマッピングテーブル122のメモリマップである。
尚セグメントサイズが256kバイトであっても、ファイルサイズは256kバイトに制限されるものではなく、それ以上のファイルも記憶することができる。図8Aは、セグメントサイズが256kバイトの場合に、ファイルデータのサイズが1Mバイトの場合の物理ブロックの連結状態を表す説明図である。最初の物理ブロックPB0x9の管理領域に、物理ブロックPB0x1f、PB0x25、PB0x30の物理ブロック番号を記憶して連結している。図9は、この場合の物理ブロックPB0x9の管理領域を示したメモリマップである。
一方図8Bは、物理ブロックPB0x9の管理領域に物理ブロックPB0x1fの物理ブロック番号を、物理ブロックPB0x1fの管理領域に物理ブロックPB0x25の物理ブロック番号を、物理ブロックPB0x25の管理領域に物理ブロックPB0x30の物理ブロック番号を記憶した例である。
以上のように構成された、不揮発性記憶システムの動作について説明する。ここで、本発明の不揮発性記憶システムは、一般的なFATファイルシステムによるファイルデータの割り当て処理に準拠したものであるので、まずFATファイルシステム制御部103によるファイルデータの割り当て処理について説明する。
<FATファイルシステムによるファイルデータの割り当て処理>
図10はFATファイルシステムの構成を示す。FATファイルシステムでは、ファイルシステム管理領域の先頭にファイルシステム管理領域の全体を管理するための管理情報領域201が存在し、引き続いてファイルデータを格納するデータ領域202が存在する。管理情報領域201は、マスターブートレコード・パーティションテーブル(MBR/PT)203、パーティションブートセクタ(PBS)204、FAT205、206、ルートディレクトリエントリ(RDE)207から構成される。
図10はFATファイルシステムの構成を示す。FATファイルシステムでは、ファイルシステム管理領域の先頭にファイルシステム管理領域の全体を管理するための管理情報領域201が存在し、引き続いてファイルデータを格納するデータ領域202が存在する。管理情報領域201は、マスターブートレコード・パーティションテーブル(MBR/PT)203、パーティションブートセクタ(PBS)204、FAT205、206、ルートディレクトリエントリ(RDE)207から構成される。
マスターブートレコード・パーティションテーブル203は、ファイルシステム管理領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。パーティションブートセクタ204は、1つのパーティション内の管理情報を格納する部分である。FAT205、206は、ファイルデータの格納位置を示す部分である。ルートディレクトリエントリ207は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。また、FAT205、206は、ファイルデータの格納位置を示す重要な領域であることから、通常、ファイルシステム管理領域内に2つの同じ情報を持つFAT205、206が存在し、二重化されている。
データ領域202は複数のクラスタに分割され管理されており、各クラスタにはファイルデータが格納されている。1クラスタ以上のサイズのファイルデータは、複数のクラスタに跨っており、各クラスタ間の繋がりは、FAT205、206に格納されたリンク情報により管理されている。図11を用いてFATファイルシステムにおけるファイルデータ格納例を説明する。データ領域202は、クラスタと呼ばれる固定長ブロック単位で管理されており、各クラスタには2から始まる昇順のクラスタ番号が付与されている。FAT205、206は各クラスタの使用状況と、各クラスタ間の繋がりを示すリンク情報を管理しており、各クラスタ番号に対応したFATエントリから構成される。FATエントリは、FATファイルシステムの種別により、1クラスタあたり12ビット、16ビット、32ビットの3種類のうち、いずれかの大きさとなる。図11の例では16ビットで1エントリが表現される場合を示している。FATエントリには、次に繋がるクラスタのクラスタ番号、当該クラスタが空き領域であることを示す0x0000、当該クラスタがリンク終端であることを示す0xFFFFのいずれかの値が格納される。図11の例では、クラスタ番号2、5、7に対応するFATエントリに0x0000が格納されており、これら3つのクラスタが空き領域であることを示している。また、クラスタ番号3に対応するFATエントリに0x0004、クラスタ番号4に対応するFATエントリに0x0006、クラスタ番号6に対応するFATエントリに0xFFFFが格納されており、クラスタ番号3、4、6の3つのクラスタにファイルデータが分割して格納されていることを示している。
次に図12、図13を用いてFATファイルシステムにおけるファイルデータの割り当てを説明する。図12は、ファイルデータを新規に割り当てる処理を表す。ファイルデータの割り当て処理では先ず始めにFAT205、206を参照し、FAT205、206上でクラスタ番号2(データ領域の先頭クラスタ)から昇順に空き領域を検索し、1クラスタの空き領域を取得する(S301)。次に、その空きクラスタ内に書き込めるだけのファイルデータをデータ領域202に割り当てる(S302)。次に、全ファイルデータの割り当てが完了したか判定する(S303)。まだファイルデータが残っている場合、S304の処理においてさらに空き領域取得が必要かどうかを判断し、必要であれば1クラスタの空き領域を取得する。全ファイルデータの割り当てが完了した場合、ディレクトリエントリ211内に格納されたファイルサイズやタイムスタンプなどを更新する(S305)。最後にFAT205、206を更新し、処理を完了する(S306)。
図13(a)は、前述したファイルデータの割り当て処理後のディレクトリエントリ211、図13(b)はFAT205、206、図13(c)はデータ領域202の一例を示した図である。FATファイルシステムでは、ルートディレクトリエントリ207やデータ領域202の一部に、ファイル名やファイルサイズ、ファイル属性などの情報を格納したディレクトリエントリ211が格納されており、図13(a)はディレクトリエントリ211の一例を示している。このディレクトリエントリ211で示されるファイルデータは、ファイル名がPICTURE1.JPGであり、クラスタ番号10から13までファイルデータ1〜4が格納されている。また、ファイルサイズは64kバイトであり、図13では1クラスタの大きさを16kバイトと仮定しており、4クラスタに跨ってファイルデータが格納されている。
本実施の形態の不揮発性記憶システムにおいては、以上のファイルデータの割り当て処理は、FATファイルシステム制御部103によって実行される。ファイルデータの割り当てやFATの更新などは、FATファイルシステム制御部103内に設けられたRAM上で行われ、不揮発性記憶装置140への書き込みは、次に説明する「ファイルデータの書き込み処理」において実行される。
<ファイルデータの書き込み処理>
図14A,図14Bは本発明の実施の形態1における不揮発性記憶システムの書き込み処理の概要を示すフローチャートである。次に、このフローチャートを参照しながら、本実施の形態のファイルデータ書き込み処理について説明する。ここで各ステップにおいてMの表示は不揮発性記憶装置140の処理であり、Aの表示はアクセス装置100Aの処理を示す。さてアクセス装置100Aの電源の立ち上げにより、外部バスを通じて不揮発性記憶装置140も電源が立ち上がり、不揮発性記憶装置140は初期化処理に移行する(S100)。初期化処理において、不揮発性記憶装置140はCPU112が、カード情報保持部113に予め設定されているカード容量とセグメントサイズをアクセス装置100Aに通知する(S101)。アクセス装置100Aは、不揮発性記憶装置140から受信したセグメントサイズを最小論理割り当て単位とみなし、次式(1)に基づき最大ファイルデータ数を決定する(S102)。
最大ファイルデータ数=カード容量÷最小論理割り当て単位・・・(1)
図14A,図14Bは本発明の実施の形態1における不揮発性記憶システムの書き込み処理の概要を示すフローチャートである。次に、このフローチャートを参照しながら、本実施の形態のファイルデータ書き込み処理について説明する。ここで各ステップにおいてMの表示は不揮発性記憶装置140の処理であり、Aの表示はアクセス装置100Aの処理を示す。さてアクセス装置100Aの電源の立ち上げにより、外部バスを通じて不揮発性記憶装置140も電源が立ち上がり、不揮発性記憶装置140は初期化処理に移行する(S100)。初期化処理において、不揮発性記憶装置140はCPU112が、カード情報保持部113に予め設定されているカード容量とセグメントサイズをアクセス装置100Aに通知する(S101)。アクセス装置100Aは、不揮発性記憶装置140から受信したセグメントサイズを最小論理割り当て単位とみなし、次式(1)に基づき最大ファイルデータ数を決定する(S102)。
最大ファイルデータ数=カード容量÷最小論理割り当て単位・・・(1)
なお、最小論理割り当て単位とは、1つのファイルデータを論理アドレス空間上に割り当てる際に占有される論理領域のサイズであり、ファイルデータサイズとしては最小論理割り当て単位以下であっても構わない。例えばセグメントサイズが1Mバイトの場合は最小論理割り当て単位も1Mバイト(64クラスタ分)となり、1つのファイルデータを論理アドレス空間上に割り当てる際は64クラスタ占有されることとなる。但し、実際のファイルデータサイズとしては例えば512kバイトであっても構わない。このように、全てのファイルデータのファイルデータサイズが、最小論理割り当て単位の半分しかなかった場合は、カード容量を1Gバイトとすると、その半分の512Mバイト分の記憶領域しか使えないので、無駄な使い方となるだけである。
S101の処理の後、他の各種初期化処理を行い(S103)、アクセス待ち状態になる(S104)。例えばデジタルスチルカメラなどにおいて、写真の撮影及び不揮発性メモリ装置への記録を行った場合(S104)、ファイルデータの書き込み処理に移行する。なお、撮影した写真を表示するためデータを読み出す処理については、ここでは説明を省略する。
まず、撮影された画像データはデータ処理部102を介してファイルデータ送信部106に転送される。これと同時にFATファイルシステム制御部103は該画像データを取り込み、1つのファイルデータとして論理アドレス空間へ割り当てる(S106)。
CPU109は、FATファイルシステム制御部103のファイルデータ割り当て処理を認識した後に、不揮発性記憶装置140へファイルデータを書き込むための制御に移る。まずCPU109はファイル番号指定部107を起動する。ファイル番号指定部107はこれから書き込もうとするファイルデータのファイル番号を決定し、該ファイル番号をコマンド発行部104に渡す。コマンド発行部104は、ファイル番号を引数としてファイルデータアクセスの開始コマンドFSCMDを不揮発性記憶装置140に発行する(S107)。
ファイル番号の決定では、ファイル番号指定部107は、FATファイルシステム制御部103内のRAMを参照することにより、ファイル名に関連させた番号表を例えば不揮発性RAMなどに作成しておき、最大ファイルデータ数未満の空いているファイル番号を使用すればよい。図15はこの番号表の一例を示す。例えば最大ファイルデータ数が1024の場合において、ファイル番号0〜10のみが使用されているとすれば、ファイル番号11〜1023のいずれの番号を使用しても構わない。またファイルデータを論理消去した場合は、図15に示すようにそのファイル番号を最大ファイルデータ数以上の値に設定すればよい。
一方、不揮発性記憶装置140はファイルデータを不揮発性メモリ130に書き込む処理を行う。まず、ホストインターフェース111を介して取り込まれたFSCMDをCPU112が解釈し、ファイル番号をアドレス管理部114に渡すと共に、アドレスカウンタ120のカウント値をリセットする。アドレス管理部114は物理領域管理テーブル121を参照し、ブロックステータスを調べ、消去済みブロック、例えば、PB0x9を取得する。さらにアドレス管理部114はマッピングテーブル122(図7)において、送られてきたファイル番号に対応する行に、値0x9を記憶させる(S108)。
さて、アクセス装置100のコマンド発行部104はFSCMDの発行後に書き込みを開始する論理セクタアドレスを引数としてライトコマンドWCMDを発行する(S109)。CPU109は、WCMDやファイルデータの送信方法、すなわち1回のWCMDに対応して全ファイルデータを送信するか、何回かのWCMDに分割して送信するかについて後述するように決定する。そしてファイルデータ送信部106がファイルデータを不揮発性記憶装置140に送信する(S108)。
その後、不揮発性記憶装置140は、ホストインターフェース111を介して取り込まれたWCMDをCPU112が解釈し、アドレスカウンタ120のインクリメント動作を許可する。アドレスカウンタ120の初期値は0であり、WCMDの後にファイルデータを1ページ分(4セクタ分)受信する毎にカウンタをインクリメントする。ここでこのカウンタの値により示されるアドレスを仮想論理アドレスと言う。このアドレスはWCMDに引数として与えられた論理セクタアドレスとは無関係のアドレスである。なお、論理セクタアドレスは、不揮発性記憶装置140においては無視される。
アドレスカウンタ120の計数値である仮想論理アドレスは、書き込み対象の物理ブロックのページ番号として使用される(S111)。不揮発性メモリ130の物理ブロックは図4に示したとおり128ページで構成されるので、アドレスカウンタ120は値0〜127を計数できる7ビットのカウンタでよい。
アドレス管理部114は、アドレスカウンタ120が受け取った仮想論理アドレスをPB0x9のページアドレスとして、読み書き制御部116に物理アドレスを転送する。すなわち、PB0x9の下位アドレス(ページ0)から昇順に物理アドレスを指定することとなる。読み書き制御部116は、アドレス管理部114が指定した物理アドレスに基づいて、アクセス装置100Aから受信したファイルデータを順次不揮発性メモリ130に書き込む(S112)。一方アクセス装置100AはFSCMDとファイルデータの送信後に、ストップコマンドSCMDを送信する(S113)。そしてCPU109は、ファイルデータの書き込みが完了したかどうかを判断し(S114)、完了していなければS109に戻り、完了していれば、FATやディレクトリエントリの書き込みを行う(S115)。
以上、図2および図14A,図14Bを参照しながら説明した、ファイルデータの書き込み処理について、さらに図16および図17を用いて説明する。
図16は、ファイルデータの書き込み処理を示す説明図である。なお、クラスタは16kバイトとする。クラスタ0と1はFATなどの管理情報が割り当てられる領域であり、クラスタ2以降は、ファイルデータが割り当てられるデータ領域である。
図16の論理アドレス空間LAAにおいて、ハッチングが施されたクラスタは有効なファイルが記録されていることを示す。論理アドレス空間のデータ領域に、ファイルデータサイズの異なるファイルデータを割り当てたり、不要になったファイルデータを論理消去することを繰り返すことによって、図16のように、空きクラスタに不連続が生じてしまうこととなる。図16において、論理消去済みの空きクラスタにサイズが256kバイトのファイルデータを書き込むものとする。
さて、FATファイルシステム制御部103は、クラスタ番号の小さい空きクラスタから順番に、ファイルデータを割り当てる。不揮発性記憶装置の場合は、例えばクラスタ番号6から9までのようなクラスタ番号が連続の領域に対しては、1つのWCMDでファイルデータの書き込みができるが、クラスタ番号9とクラスタ番号14の間には不連続があるので、再度WCMDを発行し直す必要がある。これは、WCMDの引数としてファイルデータの書き込み開始論理アドレスを設定し、不揮発性記憶装置140側において書き込み開始論理アドレスを連続的に計数する仕組みとなっているため、1つのWCMDにおいて論理アドレスに不連続があった場合は、不揮発性記憶装置140は間違った論理アドレスとして認識しまうからである。
従って、少なくとも論理アドレスに不連続がある点、例えばクラスタ番号14、18、20、25においては、WCMDを発行し直す必要がある。すなわち、最低でもWMCD1〜WCMD5の5回でのライトコマンドによって、ファイルデータ全ての書き込みを行うこととなる。
本実施の形態1においては、アクセス装置100がWMCD1〜WMCD5の発行前にFSCMDを発行する。こうすれば、今から書き込むファイルデータのファイル番号を不揮発性記憶装置140が認識し、アドレス管理部114が該ファイル番号と、アドレスカウンタ120が計数する仮想論理アドレスに基づいてアドレス管理を行うようにしたので、消去済み物理ブロックのページ0から順番にファイルデータを書き込むことができる。
図17Aは、図14A,図14Bに示したファイルデータの書き込みを、外部バス上のタイムチャートとして表したものである。図17Aはファイルデータの書き込み前にファイルデータアクセス開始コマンド(以下、FSCMDという)を発行する場合を示す。この場合はFSCMD発行後に、WCMD1〜WCMD5を順次発行することによって、全ファイルデータの書き込みが完了する。なお、不揮発性記憶装置140は、この一連の書き込み処理がなされた後に、次のFSCMDもしくはFATやディレクトリエントリなどの管理情報を受信することによって始めて、ファイルデータの書き込み処理が完了したことを認識できる。因みに、FATやディレクトリエントリは書き込み時に指定される論理アドレス等によってファイルデータの書き込みではないことを識別できるが、詳細については簡単のために説明を省略する。
不揮発性記憶装置140が、ファイルデータの書き込み処理が完了を認識させるための別の方法として、FSCMDの引数に今から書き込もうとするファイルデータサイズを設定してもよい。この場合は、CPU112が、FSCMDの引数として設定されたファイルデータサイズを解釈することによって、これからどれだけのサイズのファイルサイズが送信されてくるかを前もって認識することができる。
図17Bはファイルデータの書き込み前にファイルデータアクセス開始コマンドFSCMDを発行し、さらにファイルデータ全てを送信した直後にファイルデータアクセス終了コマンド(以下、FECMDという)を発行する場合を示す。このように、アクセス装置100Aが全ファイルデータを書き込んだ後に、FECMDを送信すると、不揮発性記憶装置140は、FECMDを受信した時点で、ファイルデータの書き込みが完了したことを認識することができる。
以上の動作は、セグメントサイズが256kバイトであり、かつ1つのファイルデータのサイズがセグメントサイズの場合における書き込み処理について説明したものであるが、セグメントサイズ以上のファイルデータを書き込むことも可能である。例えば、セグメントサイズが256kバイトであり、かつ1つのファイルデータのサイズがセグメントサイズの4倍の場合、即ちファイルデータサイズが1Mバイトの場合において、PB0x9、PB0x1f、PB0x25、PB0x30の4つの物理ブロックにファイルデータを書き込むことを考える。
このような場合は、図8Aに示すように、アドレス管理部114は、最初の256kバイト分を書き込む物理ブロックPB0x9の物理ブロック番号(0x9)を、マッピングテーブル122に記憶させ、後続するファイルデータを書き込む物理ブロックの物理ブロック番号(0x1f、0x25、0x30)を、PB0x9の管理領域に書き込むように制御すればよい。具体的には図8Aに示すように、管理領域のページ0から2バイトずつ降順に、0x1f、0x25、0x30を書き込むこととなる。
あるいは、図8Bに示すように、PB0x9の管理領域にPB0x1fの物理ブロック番号を書くように、PB0x9、PB0x1f、PB0x25、PB0x30が順番にリンクする形にしても構わない。
以上のように、論理アドレスが不連続である複数のクラスタ(領域割り当て単位)に割り当てられたファイルデータを書き込む場合においても、ファイル番号指定部107がファイルデータの送信前に該ファイルデータのファイル番号を指定することによって、アドレス管理部114が該ファイル番号に基づいてファイルデータを1つのまとまった単位として管理できる。そのためファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、従来のような退避処理をすることなくファイルデータの送信順に不揮発性メモリ130に連続的に書き込むこととなり、ファイルデータの書き込み速度を向上させることができる。
なお、本実施の形態1においては、FSCMDのようなコマンドを新たに追加することによって、今から書き込もうとするファイル番号を不揮発性記憶装置140に認識させるようにしたが、先頭のライトコマンド(WCMD1)のみの引数にファイル番号を付加するようにしても構わない。また、仮想論理アドレスは、ページ0から昇順になるようにしたが、不揮発性メモリ130のページ書き込み順序に特に制約がなければ、ページ127から降順になるように書き込むなどの別の規則を設けてもよい。また、ファイル番号によってファイルデータ単位で管理できるようにしたが、ファイルを特定できるものであればファイル番号に限る必要はない。また、ファイルデータの読み出しにおいては、アクセス装置100Aは不揮発性記憶装置140に対して、ファイル番号を指定した後に、読み出しコマンドを発行すればよい。
(実施の形態2)
図18は、本発明の実施の形態2における不揮発性記憶システムを示すブロック図である。実施の形態1においては、デジタルスチルカメラのようにファイル単位での読み書きを前提とした例であり、ファイルの一部を読み書きすることはできない。実施の形態2はファイルの一部を読み書きすることができる不揮発性記憶システムである。実施の形態1における不揮発性記憶システムと比較すると、アクセス装置の構成が異なっている。実施の形態2ではファイルデータサイズが大きい大容量の用途、例えばデジタルムービー等の動画記録に好適である。
図18は、本発明の実施の形態2における不揮発性記憶システムを示すブロック図である。実施の形態1においては、デジタルスチルカメラのようにファイル単位での読み書きを前提とした例であり、ファイルの一部を読み書きすることはできない。実施の形態2はファイルの一部を読み書きすることができる不揮発性記憶システムである。実施の形態1における不揮発性記憶システムと比較すると、アクセス装置の構成が異なっている。実施の形態2ではファイルデータサイズが大きい大容量の用途、例えばデジタルムービー等の動画記録に好適である。
本実施の形態のアクセス装置100BはCPU151を有し、前述した構成に加えて、ファイル分割部152及びオフセット番号指定部153を有している。この実施の形態ではファイル分割部152は大きなファイルデータを分割し、その分割したファイルにオフセット番号を指定する。オフセット番号はファイルデータに付けられる連続的なアドレスである。又ファイル分割部152はデータを転送する際に複数の連続するオフセットアドレス毎にデータを分割するものである。図19は1つのファイルを分割した例を示しており、その分割したデータが割り当てられる論理アドレス上のクラスタ番号と1つのファイルに連続して付けられるオフセット番号、及び分割グループ番号を示している。オフセット番号は0から16383とし、分割グループ番号を0〜1023とする。分割グループ番号は、アクセス装置100B側の都合で付与すればよいが、実施の形態2では、ファイルデータに対して256kバイト単位、即ち16クラスタ毎に先頭から昇順に分割グループ番号を付与している。
実施の形態1における不揮発性記憶システムと比較した時の構成上の相違点は下記の通りである。
<構成上の相違点>
1.アクセス装置100BのCPU151はファイルデータを連続的なアドレスであるオフセット番号を用いて管理する。
2.オフセットアドレスに基づいてファイルデータを分割する。
3.分割したファイルデータの送信前に該ファイルデータのファイル番号と前記オフセット番号を不揮発性記憶装置140に指定する。
<構成上の相違点>
1.アクセス装置100BのCPU151はファイルデータを連続的なアドレスであるオフセット番号を用いて管理する。
2.オフセットアドレスに基づいてファイルデータを分割する。
3.分割したファイルデータの送信前に該ファイルデータのファイル番号と前記オフセット番号を不揮発性記憶装置140に指定する。
以上の事を踏まえて、実施の形態2における不揮発性記憶システムの動作について図20A,図20Bのフローチャートを用いて説明する。実施の形態1における不揮発性記憶システムの書き込み処理を示す図14A,図14Bのフローチャートとは、ステップS121,S122,S123の処理だけが異なる。図20AにおいてステップS100〜S106については前述した実施の形態1の動作と同様であり、詳細な説明を省略する。
図20Aにおいて、画像の取り込み処理及び論理アドレス空間への割り当て処理(ステップS106)を行った後、ステップS121に進んで前述したようにファイルデータにオフセットアドレスを付与し、ファイルデータを分割する。ファイルデータの総容量は256Mバイトであり、クラスタ番号6を先頭に、以降図19の左欄に示すように各クラスタ番号に割り当てられているものとする。ここでは、例えばクラスタ番号9に続いて14、クラスタ番号18に続いて20というように、クラスタ番号の不連続が生じている。ファイルデータのデータの先頭であるクラスタ番号6の位置をオフセット番号0として、以降昇順に連続したオフセット番号を付与し、ファイルデータの最終はオフセット番号16383となる。分割グループ番号の付与の方法は、アクセス装置100B側の都合で付与する。実施の形態2では、図19に示すようにファイルデータに対して256kバイト単位毎、即ち16クラスタ毎に先頭から昇順に分割グループ番号を付与することによって、ファイルデータを分割する。次に、FSCMDを不揮発性記憶装置140に送信し、FSCMDの引数にファイル番号とオフセット番号を指定する(S122)。
以上のアクセス装置100Bの処理の後に、不揮発性記憶装置140側は分割したファイルデータを不揮発性メモリ130に書き込む処理を行う。まず、ホストインターフェース111を介して取り込まれたFSCMDをCPU112が解釈し、ファイル番号とオフセット番号をアドレス管理部114に渡すと共に、アドレスカウンタ120のカウント値をオフセット番号にセットする。アドレス管理部114は物理領域管理テーブル121を参照し、ブロックステータスを調べ、消去済みブロック、例えば、PB0x9を取得する。さらにアドレス管理部114はマッピングテーブル122において、前記ファイル番号に対応する行に、値0x9を記憶させる(S108)。
FSCMDの発行直後、コマンド発行部104は書き込みを開始する論理セクタアドレスを引数としてWCMDを発行する(S109)。更にファイルデータ送信部106が分割したファイルデータを不揮発性記憶装置140に送信する(S123)。なお、CPU151は、図19に示した分割グループ番号に従ってファイルデータを1024回に分割して送信するように指示する。
不揮発性記憶装置140はその後、ホストインターフェース111を介して取り込まれたWCMDをCPU112が解釈し、アドレスカウンタ120のインクリメント動作を許可する。アドレスカウンタ120は、WCMDの受信後に分割したファイルデータを1ページ分(4セクタ分)受信する毎に0からインクリメントする。実施の形態1と同様に、このカウンタ値である仮想論理アドレスは、書き込み対象の物理ブロックのページ番号として使用される(S111)。
アドレス管理部114は、アドレスカウンタ120から受け取った仮想論理アドレスをPB0x9のページアドレスとして、読み書き制御部116に物理アドレスを転送する。すなわち、PB0x9のページ0から昇順に物理アドレスを指定する。読み書き制御部116は、アドレス管理部が指定した物理アドレスに基づいて、アクセス装置100Bから受信した、分割したファイルデータを順次不揮発性メモリ130に書き込む(S112)。アクセス装置100Bはデータの送信後にストップコマンドを送信する(S113)。CPU109は、分割したファイルデータの書き込みが完了したかどうか判断し(S114)、完了していなければS109に戻り、完了していれば、FATやディレクトリエントリの書き込みを行う(S115)。
以上の処理により、図19に示された分割グループ番号0のファイルデータの書き込みが完了する。次に、分割グループ番号1の書き込み処理を行うために、S122の処理に戻り、以降、分割グループ番号1〜1023まで同様の書き込み処理を行う。尚書き込みは全ての分割グループについて行う必要はなく、分割したグループの1つ以上であればS105〜S115の処理によって分割書き込みができる。
次に、ファイルデータを構成するデータ種が、例えば動画と音声のように複数種類からなり、それぞれのデータ種を互い違いに書き込む場合について、図21を用いて説明する。図21において、クラスタ番号順にみて前半部分に動画が、後半部分に音声が記録されるものとする。そして、動画のクラスタ番号の小さい方からを4クラスタ分、音声のクラスタ番号の小さい方からを4クラスタ分といったように、互い違いに書き込むことを考える。その場合は、オフセット番号は不揮発性記憶装置140に送信する順に従うものであるので、図21に示すような配列でオフセット番号と分割グループ番号が付与される。アクセス装置は、このオフセット番号と分割グループ番号に従って、図20A,図20Bに示す手順で書き込み処理を行う。
以下に、実施の形態1と、実施の形態2を比較しながら、用途上の相違点について説明する。
1.実施の形態1における不揮発性記憶システムは、例えばデジタルスチルカメラのような静止画の記録再生用途などのファイルデータサイズが比較的小容量の用途には好適である。
2.実施の形態2における不揮発性記憶システムは、デジタルムービーのような動画の記録再生用途などのファイルデータサイズが比較的大容量の用途にも好適である。
1.実施の形態1における不揮発性記憶システムは、例えばデジタルスチルカメラのような静止画の記録再生用途などのファイルデータサイズが比較的小容量の用途には好適である。
2.実施の形態2における不揮発性記憶システムは、デジタルムービーのような動画の記録再生用途などのファイルデータサイズが比較的大容量の用途にも好適である。
例えばデジタルスチルカメラのような静止画の記録再生用途であれば、ファイルデータのサイズは、数Mバイト程度である。通常SDメモリカードの書き込みレートは、数Mバイト程度であるので、1つのファイルデータは1秒程度でSDメモリカードに記録することができる。1秒程度の記録時間であれば、アクセス装置側のバッファサイズも数Mバイトで済むし、また記録中の電源遮断に対応する必要がないので、実施の形態1における不揮発性記憶システムのように、1つのファイルデータを書き込んで後にFATなどの管理情報を書き込む方法が適用できる。
しかしながら、デジタルムービーのような動画の記録再生用途の場合は、ファイルデータのサイズは数百Mバイト以上であるので記録時間に数百秒を要してしまい、膨大なバッファサイズが必要となる。また記録中の電源遮断に対応する必要がある。
以上により、実施の形態2においては、ファイルデータを分割したグループ毎に書き込み、その都度FATなどの管理情報も更新するようにしたので、実施の形態1に示す不揮発性記憶システムよりも、電源遮断などのエラーに対して、より好適な書き込み方法であるといえる。以上のように、図19や図21に示すようにクラスタ番号すなわち論理アドレスが不連続である複数のクラスタ(領域割り当て単位)に割り当てられたファイルデータを書き込む場合においても、CPU151がファイルデータを連続的なアドレス(オフセット番号)で管理し、さらに、該オフセット番号に基づき前記ファイルデータを分割し、ファイル番号指定部107が指定した分割したファイルデータのファイル番号と、該オフセット番号をファイルデータの送信前に不揮発性記憶装置140に通知する。そのためアドレス管理部114が該ファイル番号とオフセット番号に基づいてファイルデータを1つのまとまった単位として管理できる。そのためファイルデータが割り当てられたクラスタの論理アドレスに不連続があったとしても、従来のような退避処理をすることなくファイルデータの送信順に不揮発性メモリ130に連続的に書き込むこととなり、ファイルデータの書き込み速度を向上させることができる。
なお、本実施の形態2においては、FSCMDのようなコマンドを新たに追加することによって、今から書き込もうとするファイル番号を不揮発性記憶装置140に認識させるようにしたが、先頭のライトコマンドの引数にファイル番号とオフセット番号を付加するようにしても構わない。また、仮想論理アドレスは、ページ0から昇順になるようにしたが、不揮発性メモリ130のページ書き込み順序に特に制約がなければ、ページ127から降順になるように書き込むようにしてもよい。また、ファイル番号によってファイルデータ単位で管理できるようにしたが、ファイルを特定できるものであればファイル番号に限る必要はない。また、ファイルデータの読み出しにおいては、アクセス装置100Aは不揮発性記憶装置140に対して、ファイル番号とオフセット番号を指定した後に、読み出しコマンドを発行すればよい。又分割グループ番号を同時に指定するようにすれば、分割グループ単位での読出しも可能となる。
本発明にかかる不揮発性記憶システムは、物理ブロックサイズがクラスタサイズより大きな不揮発性メモリを用いた不揮発性記憶装置においても、高速書き込みのできるシステム及び書き込み方法を提案したものであり、半導体メモリカード等の不揮発性記憶装置を使用した静止画記録再生装置や動画記録再生装置、あるいは携帯電話において有益である。
100A,100B アクセス装置
101 入出力部
102 データ処理部
103 FATファイルシステム制御部
104 コマンド発行部
105 ファイルデータ受信部
106 ファイルデータ送信部
107 ファイル番号指定部
108 カードインターフェース
109、112、151 CPU
110 メモリコントローラ
111 ホストインターフェース
113 カード情報保持レジスタ
114 アドレス管理部
115 バッファ
116 読み書き制御部
120 アドレスカウンタ
121 物理領域管理テーブル
122 マッピングテーブル
130 不揮発性メモリ
140 不揮発性記憶装置
152 ファイル分割部
153 オフセット番号指定部
101 入出力部
102 データ処理部
103 FATファイルシステム制御部
104 コマンド発行部
105 ファイルデータ受信部
106 ファイルデータ送信部
107 ファイル番号指定部
108 カードインターフェース
109、112、151 CPU
110 メモリコントローラ
111 ホストインターフェース
113 カード情報保持レジスタ
114 アドレス管理部
115 バッファ
116 読み書き制御部
120 アドレスカウンタ
121 物理領域管理テーブル
122 マッピングテーブル
130 不揮発性メモリ
140 不揮発性記憶装置
152 ファイル分割部
153 オフセット番号指定部
Claims (20)
- アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、
前記アクセス装置は、
複数のクラスタに割り当てられる1つのファイルデータを前記不揮発性記憶装置に送信する前に、該ファイルデータのファイル番号を指定するファイル番号指定手段と、
前記ファイルデータ、及び前記ファイル番号指定手段によって指定されたファイル番号を前記不揮発性記憶装置に送信するファイルデータ送信手段とを有し、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
前記メモリコントローラは、
前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有する不揮発性記憶システム。 - 前記アドレス管理部は、
前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルと、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスを発生するアドレスカウンタと、を有する請求項1記載の不揮発性記憶システム。 - 前記セグメントは、
少なくとも1つの物理ブロックである請求項2記載の不揮発性記憶システム。 - 前記メモリコントローラは、
不揮発性メモリのセグメントサイズを保持し、電源立ち上げ時に前記セグメントのサイズを前記アクセス装置に通知するカード情報保持部を有し、
前記アクセス装置は、
通知されたセグメントサイズに基づきファイルデータの最小サイズを決定する請求項2記載の不揮発性記憶システム。 - アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムであって、
前記アクセス装置は、
複数のクラスタに割り当てられる1つのファイルデータを前記不揮発性記憶装置に送信する前に、クラスタ毎に連続的なオフセット番号を指定するオフセット番号指定部と、
当該ファイルデータのファイル番号を指定するファイル番号指定部と、
前記オフセット番号に基づき前記ファイルデータを分割するファイル分割部と、
当該ファイルデータの送信前に前記ファイル番号指定部によって指定されたファイル番号、前記オフセット番号指定部によって指定されたオフセット番号を送信すると共に、ファイルデータを分割して送信するファイルデータ送信部とを有し、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
前記メモリコントローラは、
前記アクセス装置から送信された前記ファイルデータの受信順に不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有する不揮発性記憶システム。 - 前記アドレス管理部は、
前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルと、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想理論アドレスを発生するアドレスカウンタと、を有する請求項5記載の不揮発性記憶システム。 - 前記セグメントは、
少なくとも1つの物理ブロックである請求項6記載の不揮発性記憶システム。 - 前記メモリコントローラは、
不揮発性メモリのセグメントサイズを保持し、電源立ち上げ時に前記セグメントのサイズを前記アクセス装置に通知するカード情報保持部を有し、
前記アクセス装置は、通知されたセグメントサイズに基づきファイルデータの最小サイズを決定する請求項6記載の不揮発性記憶システム。 - 不揮発性メモリとメモリコントローラとを有し、外部のアクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶装置であって、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
前記メモリコントローラは、
前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけるマッピングテーブルを有し、前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むためのアドレスを発生するアドレス管理部を有する不揮発性記憶装置。 - 前記アドレス管理部は、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスを発生するアドレスカウンタを更に有する請求項9記載の不揮発性記憶システム。 - 前記セグメントは、
少なくとも1つの物理ブロックである請求項10記載の不揮発性記憶装置。 - 前記メモリコントローラは、
不揮発性メモリのセグメントサイズを保持し、電源立ち上げ時に前記セグメントのサイズを前記アクセス装置に通知するカード情報保持部を有する請求項10記載の不揮発性記憶装置。 - アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムのファイルデータの書き込み方法であって、
複数のクラスタに割り当てられる1つのファイルデータを前記アクセス装置より前記不揮発性記憶装置に送信する前に、該ファイルデータのファイル番号を指定し、
前記ファイルデータと前記ファイル番号指定手段によって指定されたファイル番号とを前記不揮発性記憶装置に送信し、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
前記メモリコントローラは、
前記アクセス装置から送信された前記ファイルデータの受信順に前記不揮発性メモリに規則的に書き込むファイルデータ書き込み方法。 - 前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけ、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスに基づいて前記ファイルデータを書き込む請求項13記載のファイルデータ書き込み方法。 - 前記セグメントは、
少なくとも1つの物理ブロックである請求項14記載のファイルデータ書き込み方法。 - 前記セグメントのサイズに基づきファイルデータの最小サイズを決定することを特徴とする請求項14記載のファイルデータ書き込み方法。
- アクセス装置と、不揮発性記憶装置とを具備し、前記不揮発性記憶装置は不揮発性メモリとメモリコントローラとを有し、前記アクセス装置から与えられるコマンドに応じて前記不揮発性メモリにファイルデータを書き込み、及び読み出す不揮発性記憶システムのファイル書き込み方法であって、
前記不揮発性メモリは、
複数の物理ブロックから成り、物理ブロックサイズが前記クラスタのサイズよりも大きいものであり、
複数のクラスタに割り当てられる1つのファイルデータを前記アクセス装置より前記不揮発性記憶装置に送信する前に、クラスタ毎に連続的なオフセット番号を指定し、
当該ファイルデータのファイル番号を指定し、
当該ファイルデータの送信前にファイル番号と指定されたオフセット番号を送信し、
前記オフセット番号に基づき前記ファイルデータを分割して送信し、
前記メモリコントローラは、
前記アクセス装置から送信された前記ファイルデータの受信順に不揮発性メモリに規則的に書き込むファイルデータ書き込み方法。 - 前記ファイル番号を前記不揮発性メモリの物理領域であるセグメントに関連づけ、
前記アクセス装置から送付された前記ファイルデータの受信順に連続して変化する仮想論理アドレスに基づいて前記ファイルデータを書き込む請求項17記載のファイルデータ書き込み方法。 - 前記セグメントは、
少なくとも1つの物理ブロックである請求項18記載のファイルデータ書き込み方法。 - 前記セグメントのサイズに基づきファイルデータの最小サイズを決定する請求項18記載のファイルデータ書き込み方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006137498A JP2007310533A (ja) | 2006-05-17 | 2006-05-17 | 不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006137498A JP2007310533A (ja) | 2006-05-17 | 2006-05-17 | 不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007310533A true JP2007310533A (ja) | 2007-11-29 |
Family
ID=38843347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006137498A Pending JP2007310533A (ja) | 2006-05-17 | 2006-05-17 | 不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007310533A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011118953A (ja) * | 2011-03-23 | 2011-06-16 | Toshiba Corp | 情報記録装置、情報記録方法及び情報記録用プログラム |
WO2011105023A1 (ja) * | 2010-02-26 | 2011-09-01 | Jvc・ケンウッド・ホールディングス株式会社 | 処理装置および書込方法 |
-
2006
- 2006-05-17 JP JP2006137498A patent/JP2007310533A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011105023A1 (ja) * | 2010-02-26 | 2011-09-01 | Jvc・ケンウッド・ホールディングス株式会社 | 処理装置および書込方法 |
JP2011198357A (ja) * | 2010-02-26 | 2011-10-06 | Jvc Kenwood Corp | 処理装置および書込方法 |
CN102792283A (zh) * | 2010-02-26 | 2012-11-21 | Jvc建伍株式会社 | 处理装置和写入方法 |
JP2011118953A (ja) * | 2011-03-23 | 2011-06-16 | Toshiba Corp | 情報記録装置、情報記録方法及び情報記録用プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100877448B1 (ko) | 비휘발성 기억 시스템 | |
JP5400875B2 (ja) | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム | |
US7227788B2 (en) | Memory management device and memory device | |
US8751765B2 (en) | Computer system, storage system and method for saving storage area by integrating same data | |
JP5129156B2 (ja) | アクセス装置、および、ライトワンス記録システム | |
US7647470B2 (en) | Memory device and controlling method for elongating the life of nonvolatile memory | |
JP5481493B2 (ja) | アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム | |
JP2006277737A (ja) | アドレス予測機能をもつ不揮発性記憶装置 | |
JP5793712B2 (ja) | 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム | |
WO2011121870A1 (ja) | データ記録装置、及びデータ記録方法 | |
JP2007233512A (ja) | データ記録装置、データ記録方法、及びプログラム | |
JP2005202942A (ja) | 情報記録媒体、データ処理装置及びデータ処理方法 | |
JP2007310533A (ja) | 不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法 | |
JP2006252137A (ja) | 不揮発性記憶装置の最適化方法 | |
JP2005115562A (ja) | フラッシュrom制御装置 | |
JP4714291B2 (ja) | 情報記録装置、情報記録方法及び情報記録用プログラム | |
WO2020213364A1 (ja) | 記録装置、記録方法、プログラム、及びメモリカード | |
JP2008262452A (ja) | 記録デバイスのキャッシュ方法および記録装置 | |
JP2006155461A (ja) | 情報処理装置、情報処理方法、並びにプログラム | |
JPWO2008102610A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
JP5161989B2 (ja) | 情報記録装置、情報記録方法及び情報記録用プログラム | |
JP2023044994A (ja) | メモリシステム | |
KR100592859B1 (ko) | 기록매체제어장치및방법 | |
JP2010015385A (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
JP2008299513A (ja) | データ記憶装置およびその制御方法 |