JPWO2005043394A1 - 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法 - Google Patents

情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法 Download PDF

Info

Publication number
JPWO2005043394A1
JPWO2005043394A1 JP2005515149A JP2005515149A JPWO2005043394A1 JP WO2005043394 A1 JPWO2005043394 A1 JP WO2005043394A1 JP 2005515149 A JP2005515149 A JP 2005515149A JP 2005515149 A JP2005515149 A JP 2005515149A JP WO2005043394 A1 JPWO2005043394 A1 JP WO2005043394A1
Authority
JP
Japan
Prior art keywords
data
file system
management information
semiconductor memory
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005515149A
Other languages
English (en)
Other versions
JP4722704B2 (ja
Inventor
前田 卓治
卓治 前田
中西 雅浩
雅浩 中西
井上 信治
信治 井上
宗 広和
広和 宗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2005515149A priority Critical patent/JP4722704B2/ja
Publication of JPWO2005043394A1 publication Critical patent/JPWO2005043394A1/ja
Application granted granted Critical
Publication of JP4722704B2 publication Critical patent/JP4722704B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

半導体メモリカードのような情報記録媒体(110)は、比較的小さいアクセス単位でアクセスされ、ファイルシステム管理情報を格納する第1の記録領域(121)を有する第1の半導体メモリ(118)と、比較的大きいアクセス単位でアクセスされ、ファイルデータ(ファイルの実体データ)を格納する第2の記録領域(122)を有する第2の半導体メモリ(119)と、前記第1、第2の半導体メモリを制御する制御手段(112)とを備える。情報記録媒体(110)は、データ書き込み時において、データ種別に応じて第1及び第2の半導体メモリ(118、119)のいずれかの記録領域を選択し、選択した記録領域にデータを書き込む。

Description

本発明は、外部装置よりデータの書き込み、読み出しが可能な情報記録媒体に関し、特に、格納するデータをファイルシステムにより管理する情報記録媒体及びその情報記録媒体にアクセスするアクセス装置に関する。
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の1つである半導体メモリカードは、記憶素子としてFlashROM等の不揮発性半導体メモリを主に使用しており、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及しつつある。
半導体メモリカードに格納されたデータはファイルシステムにより管理されており、ユーザは格納されたデータをファイルとして容易に取り扱うことができる。従来使用されているファイルシステムとして、FATファイルシステム(詳細は、非特許文献1参照)や、UDFファイルシステム(Universal Disk Format)(詳細は、非特許文献2参照)、NTFSファイルシステム(New Technology File System)等が存在する。これらファイルシステムによりデータが管理された半導体メモリカードは、同一のファイルシステムを解釈する機器間でファイルを共有することができるため、機器間でデータを授受することが可能となる。
従来のファイルシステムの一例としてFATファイルシステムについて説明する。FATファイルシステムでは、アクセス装置が半導体メモリカードへのアクセスに使用する論理アドレス空間の先頭に管理情報領域が存在する。
管理情報領域は、領域割り当て単位やファイルシステムが管理する領域の大きさ等のファイルシステムにおいてファイルの管理に必要な情報を格納する。より具体的には、管理情報領域は、ファイルデータ(ユーザデータ)を管理するために必要なFAT、ルートディレクトリエントリ等のファイルシステム管理情報を格納する。
FATは、ファイルに含まれるデータの物理的な格納位置に関する情報が格納される領域であり、通常、同じ情報を持つ2つのFATが半導体メモリカード内に存在し、一方のFATが破損したとしても他方のFATによりファイルにアクセスできるよう二重化されている。ルートディレクトリエントリは、ルートディレクトリ直下に存在するファイル、ディレクトリの情報(ディレクトリエントリ)が格納される領域である。
FATファイルシステムでは、この管理情報領域に続く領域に、ファイルの実体データ(以下「ファイルデータ」という。)を格納するデータ領域が存在する。データ領域は複数のクラスタに分割されて管理される。
通常、ファイルデータは複数のクラスタに跨って格納される。各クラスタ間の繋がりは、FATに格納されたリンク情報により管理される。また、ルートディレクトリ直下のディレクトリ内に存在するファイル、サブディレクトリの情報(ディレクトリエントリ)は、このデータ領域の一部を利用して格納される。
FATファイルシステムでは、ファイルデータの格納とともに、ディレクトリエントリ及びFATが、ファイルデータの格納位置や大きさに関する情報を更新するために書き換わる。
すなわち、FATファイルシステムでは、ファイルデータの格納に際し、ファイルデータ、ディレクトリエントリ、FATの3つの管理情報(ファイルシステム管理情報)を半導体メモリカードに書き込む必要がある。ファイルデータは比較的大きなサイズのクラスタ単位で管理されることから、半導体メモリカードへの書き込みサイズは数10kBのように比較的大きくなる。これに対し、ディレクトリエントリ、FATのようなファイルシステム管理情報は、変更量が少ないため512バイトのような比較的小さな単位で半導体メモリカードに書き込まれる。このように、ファイルデータと、FATのようなファイルシステム管理情報とは、そのサイズが大きく異なる。
一方、半導体メモリカードの記憶素子として一般的に使用されるFlashメモリは、一定の大きさからなる消去ブロック単位で、一旦データを消去した後でなければデータを上書きできないという特徴を有しており、クラスタサイズが消去ブロックサイズに比べて小さい場合、クラスタ単位でデータ書き込みを行うと書き込み速度が低下するという問題がある。
従来、このような問題を解決する方法として、FAT上で連続した空き領域を検索し、検索された複数の連続クラスタに対してデータを書き込むことにより、書き込み速度の低下を防止する方法が提案されている。この方法によれば、クラスタサイズが消去ブロックサイズに比べて小さい場合でも、高速にデータを書き込むことが可能となる(例えば、特許文献1参照)。
特開2002−91806号公報 ISO/IEC9293,"Information Technology−Volume and file structure of disk cartridges for information",1994年 OSTA Universal Disk Format Specification Revision 1.50,1997年
しかし、上記の方法は、比較的サイズの大きいファイルデータをデータ領域に格納する際には高速な書き込みが可能となり有効であるが、ファイルシステム管理情報のような比較的サイズの小さいデータについては高速に書き込みが行えず有効ではない。
データ書き込み処理においては、1秒間に1回等、任意の周期でファイルシステム管理情報の更新が発生するため、全体的にデータ書き込み速度を更に高速化するためには、ファイルシステム管理情報の書き込み速度の高速化が不可欠である。
本発明は上記問題点を解決すべくなされたものであり、ファイルシステム管理情報とファイルデータのようなサイズの異なる2種類のデータを双方とも高速に記録可能な情報記録媒体、そのアクセス装置及び方法を提供することを目的とする。
本発明に係る情報記録媒体は、ファイルシステムにより格納データが管理され、外部から受信したコマンドにしたがいデータの書き込み、読み出しが可能な情報記録媒体である。情報記録媒体は、外部からコマンド及びデータを受信する受信手段と、第1のアクセス単位で、データの書き込みが管理される第1の記録領域と、第1のアクセス単位よりも大きい第2のアクセス単位で、データの書き込みが管理される第2の記録領域と、受信したコマンドにしたがい、第1または第2の記録領域に対するアクセスを制御する制御手段とを備える。制御手段は、書き込みコマンドを受信したときに、受信データの種別に応じて第1及び第2の記録領域のいずれか一方を選択し、その選択した領域に受信データを書き込むよう制御を行う。
第1の記録領域はファイルシステムにおいてファイルの管理に必要な情報であるフィルシステム管理情報を格納し、第2の記録領域はファイルシステムにより管理されるファイルの実体データを格納してもよい。
データ種別は、実体データを示す種別と、ファイルシステム管理情報を示す種別とを含んでもよい。
データ種別はコマンドの引数において指定され、制御手段は引数の値に基づいてデータ種別を判断してもよい。または、制御手段は、データ種別をデータの書き込み位置に基づいて判断してもよい。
本発明に係る第1のアクセス装置は、情報記録媒体を装着するスロットと、スロットに装着された情報記録媒体に対する、データの書き込み、読み出しを制御するアクセス制御手段と、スロットに装着された情報記録媒体上に構築されたファイルシステムを制御し、情報記録媒体に書き込みを行う際に、データとともにデータの種別に関する情報を情報記録媒体に送信するファイルシステム制御手段とを備える。
本発明に係る第2のアクセス装置は、ファイルシステム管理情報の位置や大きさに関する情報を情報記録媒体に通知するFS管理情報通知手段を有する。FS管理情報通知手段は、ファイルシステム管理情報の書き込みに先立ち、ファイルシステム管理情報の位置や大きさに関する情報を情報記録媒体に通知する。
本発明に係る制御方法は、格納データをファイルシステムにより管理する情報記録媒体の制御方法である。制御方法は、第1の記録領域に対して、第1のアクセス単位でデータの書き込みを管理し、第2の記録領域に対して、第1のアクセス単位よりも大きい第2のアクセス単位でデータの書き込みを管理し、書き込みコマンドとともにデータ及び書き込み先を受信し、受信したデータの種別に応じて、データの書き込み領域として第1及び第2の記録領域のいずれか一方を選択し、選択した領域に受信したデータを書き込む。この制御方法において、書き込みコマンドとともにデータ種別に関する情報を受信し、その受信したデータ種別に関する情報に基づいてデータ種別を判断してもよい。
本発明に係る第1のアクセス方法は、上記の情報記録媒体にアクセスする方法であって、書き込みコマンドとともに、書き込みデータの種別を示す情報を情報記録媒体に送信する。
本発明に係る第2のアクセス方法は、上記の情報記録媒体にアクセスする方法であって、ファイルシステム管理情報の位置や大きさに関する情報を情報記録媒体に送信して、情報記録媒体において前記ファイルシステム管理情報を格納する領域を設定し、その後に、書き込みコマンドを、データ及び書き込み先アドレスとともに前記情報記録媒体に送信して、データの書き込みを行う。
本発明によれば、情報記録媒体にデータを書き込む際に、書き込みデータの種別に応じて情報記録媒体内のデータ記録領域を変更する。これにより、データ種別により異なるデータサイズに応じた好適な記録領域への書き込みが可能となるため、全体として高速なアクセス速度を実現することができる。
本発明の実施の形態1における半導体メモリカード及びアクセス装置の構成を示した図である。 Flashメモリにおける消去ブロックとセクタとの関係の一例を示した図である。 実施の形態1における半導体メモリカードの半導体メモリに対する、消去ブロックの倍数長のデータ書き込み処理を示したフローチャートである。 実施の形態1における半導体メモリカードの半導体メモリに対する、1セクタ分のデータ書き込み処理を示したフローチャートである。 FATファイルシステムの構成を示した図である。 FATファイルシステムにしたがったデータ書き込み処理を示したフローチャートである。 FATファイルシステムによるデータ書き込み前のディレクトリエントリの状態を説明した図である。 FATファイルシステムによるデータ書き込み前のFATの状態を説明した図である。 FATファイルシステムによるデータ書き込み前のデータ領域の状態を説明した図である。 FATファイルシステムによるデータ書き込み後のディレクトリエントリの状態を説明した図である。 FATファイルシステムによるデータ書き込み後のFATの状態を説明した図である。 FATファイルシステムによるデータ書き込み後のデータ領域の状態を説明した図である。 実施の形態1における半導体メモリカード内部の書き込み処理を示したフローチャートである。 実施の形態1におけるアドレス管理情報の例を示した図である。 半導体メモリカード内の半導体メモリに対する書き込み処理の詳細を示したフローチャートである。 本発明の実施の形態2における半導体メモリカード及びアクセス装置の構成を示した図である。 実施の形態2の半導体メモリカード内の不揮発性メモリのアドレス空間の一例を示した図である。 実施の形態2におけるアドレス管理情報の一例を示した図である。 半導体メモリカードへの書き込みデータのシーケンスの一例を示した図である。 図15Aのデータシーケンスに対してアクセス装置100bが発行するコマンドシーケンスを示した図である。 半導体メモリカードにおけるSetFSInfoAddrコマンドの処理手順のフローチャートである。 半導体メモリカードにおけるWriteコマンドの処理手順のフローチャートである。 実施の形態2における半導体メモリカードへのSetFSInfoAddrコマンド発行後のアドレス管理情報の状態を示した図である。 実施の形態2における半導体メモリカードへのデータ書き込み後のアドレス管理情報の状態を示した図である。 実施の形態2における半導体メモリカードへのファイルシステム管理情報書き込み後のアドレス管理情報の状態を示した図である。 実施の形態2における半導体メモリカードへのデータ書き込み後のアドレス管理情報の状態を示した図である。
符号の説明
26 FS管理情報格納レジスタ
51 論物変換テーブル
53 リンクテーブル
100,100b アクセス装置
101,112 CPU
102,113 RAM
103 スロット
104,114 ROM
105 アプリケーションプログラム
106 ファイルシステム制御プログラム
107 アクセス制御プログラム
108 FS管理情報通知プログラム
110,110b 半導体メモリカード
111 ホストインターフェース部
25,115,116,117 メモリコントローラ
27,118,119,120 半導体メモリ
121 ファイルシステム管理情報格納領域
122 ファイルデータ格納領域
123, アドレス管理情報
以下、本発明の半導体メモリカード、及びアクセス装置の実施形態について、図面を参照して説明する。
実施の形態1
(半導体メモリカード及びアクセス装置の構成)
図1は本発明に係る半導体メモリカード及びアクセス装置の構成例を示す図である。図1に示すように、アクセス装置100は、CPU101、RAM102、スロット103及びROM104を含む。
ROM104にはアクセス装置100を制御するためのプログラム105〜107が格納されており、これらのプログラムはRAM102を一時記憶領域として使用し、CPU101により実行され所定の機能を提供する。具体的には、ROM104は、アプリケーションプログラム105、ファイルシステム制御プログラム106、アクセス制御プログラム107を含む。
アプリケーションプログラム105、ファイルシステム制御プログラム106、アクセス制御プログラム107はそれぞれ、アクセス装置100全体の制御、半導体メモリカード110上に構築されたファイルシステムの制御、半導体メモリカード110に対するデータの読み込み、書き込み等のアクセス制御を行う。
具体的には、アプリケーションプログラム105はアクセス装置100上で動作するアプリケーションを制御するプログラムであり、アクセス装置100がオーディオプレーヤであれば音楽再生プログラムを、デジタルスチルカメラであれば静止画撮影プログラム等を含む。
ファイルシステム制御プログラム106はCPU101と協働することにより、ファイルシステム制御機能(ファイルシステム制御手段)を実現する。より具体的には、ファイルシステム制御プログラム106は、半導体メモリカード110に対する、データの書き込み、読み出しをファイル単位で管理する機能を提供する。
アクセス制御プログラム107はCPU101と協働することにより、アクセス制御機能(アクセス制御手段)を実現する。より具体的には、アクセス制御プログラム107は、半導体メモリカード110上に構築された論理アドレス空間に対し、処理開始アドレスと処理サイズを指定してデータの書き込み、読み出しを実行する機能を提供する。
スロット103は半導体メモリカード110とアクセス装置100との接続部であり、制御信号及びデータがスロット103を経由してアクセス装置100と半導体メモリカード110間で送受信される。
半導体メモリカード110は、ホストインターフェース部111、CPU112、RAM113、ROM114、メモリコントローラ115、116、117、半導体メモリ118、119、120を含む。
ホストインターフェース部111は、アクセス装置100と制御信号及びデータを送受信するインターフェースである。
ROM114には半導体メモリカード110を制御するプログラムが格納されており、このプログラムはRAM113を一時記憶領域として使用し、CPU112上で動作する。すなわち、CPU112はROM114に格納されたプログラムと協働し、半導体メモリカード110全体の動作を制御する制御手段を構成する。
また、本実施の形態では半導体メモリカード110内に3つの半導体メモリ118、119、120が存在しており、それぞれの半導体メモリはメモリコントローラ115、116、117により制御される。
第1の半導体メモリ118は書き換え単位が小さい記憶素子で構成される。例えば、第1の半導体メモリ118は、FlashROM等のFlashメモリ、または、FeRAM(Ferroelectric Randam Access Memory:強誘電体メモリ)等で構成され得る。FeRAMは、書き換え単位が小さく(例えば1バイト)、かつ長寿命の記憶素子である。なお、本実施形態では、説明の簡単化のため、第1の半導体メモリ118を書き換え単位が小さい(例えば512バイト)Flashメモリで構成した場合について説明する。第1の半導体メモリ118は、ファイルシステム管理情報格納領域121を有する。ファイルシステム管理情報格納領域121は、ファイルシステムにおいてファイルの管理に必要な情報である、領域管理情報、ファイル名、ファイルサイズ等のファイルシステム管理情報を格納する。
第2の半導体メモリ119は、FlashROM等の書き換え単位が大きく(例えば16kB(キロバイト))、大容量の記憶素子で構成されており、ファイル内に記録されるデータ本体(実体データ)を格納するファイルデータ格納領域122を有する。
第3の半導体メモリ120は、第1、第2の半導体メモリ118、119で使用する記憶素子のいずれかで構成されている。第3の半導体メモリ120は、アクセス装置100が使用する論理アドレス空間と、第1、第2の半導体メモリ118、119上の物理アドレス空間との対応を管理するアドレス管理情報123を格納する。第1、第2の半導体メモリ118、119上の領域は、アクセス装置100が使用する論理アドレス空間に対応付けられており、アクセス装置100は論理アドレスを用いて、第1、第2の半導体メモリ118、119上の領域にアクセスすることが可能である。これに対し、第3の半導体メモリ120上の領域は、半導体メモリカード110の内部処理にのみ使用され、論理アドレス空間に対応付けられていないため、アクセス装置100からアクセスすることはできない。
本実施の形態では、アクセス装置100からアクセス可能な領域として、特性の異なる2つの半導体メモリ118、119を半導体メモリカード110内に備え、アクセス装置100から半導体メモリカード110にデータを書き込む際にデータの種別を指定し、その種別に応じてデータを格納する半導体メモリを決定する。これにより、データの特性に適した半導体メモリにデータを格納することが可能となり、半導体メモリカード110への高速アクセスが実現できる。
本実施形態において半導体メモリカード110の記憶素子として使用する半導体メモリの特徴について説明する。半導体メモリは、小型、軽量な情報記録媒体を実現することが可能であり、半導体メモリを使用した半導体メモリカードは様々な技術分野における情報記録媒体としての確固たる地位を築きつつある。現在半導体メモリカードに使用されている半導体メモリは、FlashROM等のFlashメモリが主流である。Flashメモリは、データを書き込む前に一旦書き込み先に記録されているデータを消去して、未記録の状態に戻してからデータ書き込みを行わなければならないという特徴がある。ここでデータを消去する単位は「消去ブロック」と呼ばれ、アクセスの最小単位であるセクタが複数個集まったブロックとして管理されている。本実施形態では、半導体メモリカード110内の半導体メモリとして以上のような特徴を持つFlashメモリを用いている。
図2はFlashメモリにおける消去ブロックとセクタとの関係の一例を示した図である。図2の例では、1つの消去ブロックは32セクタから構成されており、アクセスはセクタ単位(例えば512バイト)で行うことが可能であるが、書き込みに先立ち必要となるデータの消去処理は、消去ブロック(16kB)単位で行われる。
(半導体メモリにおけるデータ書き込み処理)
図3、図4を用いて、半導体メモリカード110における半導体メモリ118、119へのデータ書き込み処理を説明する。図3は、消去ブロック倍数長のデータを書き込む場合の処理手順を示し、図4は、1セクタのデータを書き込む場合の処理手順を示している。
最初に図3に示す処理について説明する。半導体メモリカード110は、アクセス装置100から送信されたコマンドと引数をホストインターフェース部111を介して受信する(S301)。引き数には、データの書き込み位置、データの書き込みサイズ等が指定される。受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S302)。不正コマンドの場合、アクセス装置にエラーを通知して処理を終了する(S303)。認識可能なコマンドの場合、そのコマンドが書き込みコマンドであるか判定する(S304)。書き込みコマンド以外の場合、各コマンドに対応した他の処理を実施する(S305)。書き込みコマンドの場合、コマンドと共に指定された引数が正しいか判定する(S306)。不正な引数と判定した場合、アクセス装置100にエラーを通知して処理を終了する(S307)。
引数が正しいと判定した場合、引数に指定された書き込み位置、書き込みサイズの情報から、実際にデータを書き込む、半導体メモリ118、119の消去ブロックの物理アドレスを決定する(S308)。次に、書き込みに先立ち、メモリコントローラ115、116を介して、決定した物理アドレスの消去ブロックに存在するデータを消去する(S309)。次に、半導体メモリカード110は、アクセス装置100から1セクタ分のデータを、ホストインターフェース部111を介して受信する(S310)。データの受信を完了すると、受信した1セクタ分のデータを、メモリコントローラ115、116を介して、半導体メモリ118、119へ書き込む(S311)。上記のデータ受信、書き込み処理(S310とS311)を、1消去ブロック分のデータ書き込みが完了するまで繰り返し実施する(S312)。1消去ブロック分のデータ書き込み処理(ステップS308〜S312)を、アクセス装置100から指定された書き込みサイズ分のデータ書き込みが完了するまで繰り返し実施する(S313)。アクセス装置100から指定された書き込みサイズ分のデータ書き込みが完了すると、処理を終了する。
図4に示す、1セクタ分のデータを書き込む処理を説明する。図4は、1消去ブロック中の1セクタ分のデータのみを新たに書き込む処理を説明している。このため、図3に示す処理とは次の点が異なる。データ書き込み前に、引数により指定されたデータが書き込まれるべき消去ブロックに元々書き込まれていたデータを一旦別の領域に退避させ(S409)、その後に、アクセス装置100から受信した1セクタ分のデータをその消去ブロックに書き込み(S412)、さらに、その消去ブロックの残りの領域に、退避させたデータのうち1セクタ分のデータを除いたデータを書き込む(S413)。
Flashメモリでは、データ書き込みに先立ち一旦データを消去する必要があり、この消去処理は消去ブロック単位でしか行えないため、1セクタのデータを書き込む場合でも、ステップS410に示すように、1消去ブロック分のデータ消去が必要であり、ステップS409に示すように、データの退避が必要となる。更に、ステップS413に示すように、データが更新されるセクタと同一の消去ブロックに含まれる既存データを新しい消去ブロックに書き戻す必要がある。
図3、図4で示したようにデータ書き込み処理では、大きく分けてコマンド解釈処理、データ消去処理、データ記録処理の3つの処理が存在する。例えば、コマンド解釈のオーバーヘッドに3m秒、1セクタのデータ記録処理に200μ秒、1消去ブロック(16kB)の消去処理に2m秒かかるFlashメモリを想定する。このFlashメモリの1消去ブロック(16kB)の書き込みでは図3に示す処理が実行され、コマンド解釈に3m秒、消去処理に2m秒、データ記録処理に32×200μ秒かかり、合計11.4m秒となる。同様に1セクタ(512B)の書き込みでは図4に示す処理が実行され、コマンド解釈に3m秒、消去処理に2m秒、データ記録処理に200μ秒+31×200μ秒かかり、合計11.4m秒となる。すなわち、16kBのデータを書き込んだ場合と1セクタのデータを書き込んだ場合でほぼ同じ時間がかかることになる。この例ではデータ転送時間等を考慮せず極端に性能差が出る場合について説明したが、実際のFlashメモリにおいても消去ブロック単位で書き込みを行った場合に書き込み時間が最短になる。
(FATファイルシステム)
半導体メモリカード110内に格納されたデータを管理するFATファイルシステムについて説明する。
図5にFATファイルシステムの構成を示す。ファイルシステムは半導体メモリカード110内の論理アドレス空間上に構築されている。FATファイルシステムでは、FATファイルシステムにより管理する領域全体に対する管理情報を格納する管理情報領域501が論理アドレス空間の先頭に存在し、引き続いてファイル内のデータ等を格納するデータ領域502が存在する。管理情報領域501は、マスターブートレコード・パーティションテーブル503、パーティションブートセクタ504、FAT505、506、ルートディレクトリエントリ507から構成される。
マスターブートレコード・パーティションテーブル503は、ファイルシステム管理領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。パーティションブートセクタ504は、1つのパーティション内の管理情報を格納する部分である。FAT505、506は、ファイルに含まれるデータの物理的な格納位置を示す部分である。ルートディレクトリエントリ507は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。また、FAT505、506は、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、通常、管理情報領域501内に2つの同じ情報を持つFAT505、506が存在し、二重化されている。
データ領域502は複数のクラスタに分割され管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイル等は、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、FAT505、506に格納されたリンク情報により管理されている。
図6、図7A〜7C、図8A〜8Cを用いてFATファイルシステムにしたがったファイルデータの書き込み例を説明する。図6はFATファイルシステムによるファイルデータの書き込みの処理手順を示した図である。図7A〜7C、図8A〜8Cはそれぞれ、書き込み処理前、処理後のディレクトリエントリ701、FAT505、506、データ領域502の一例を示した図である。
FATファイルシステムでは、ルートディレクトリエントリ507やデータ領域502の一部に、ファイル名やファイルサイズ、ファイル属性等の情報を格納したディレクトリエントリ701が格納されている。図7Aは、ディレクトリエントリ701の一例を示し、図7Bは、ディレクトリエントリ701に対応するFATの部分を示している。ディレクトリエントリ701には、ファイル名、属性、タイムスタンプ、開始クラスタ番号、ファイルサイズが含まれる。図7Aに示すディレクトリエントリは、ファイル名が”FILE1.TXT”であるファイルに関する情報を格納しており、このファイルに含まれるデータの先頭部分はクラスタ番号10のクラスタに格納されており、ファイルサイズは65000バイトである。また、図7Aでは1クラスタの大きさを16384バイトと仮定している。図7Bに示す”0xFFFF”はデータの終端を示し、図7Bから”FILE1.TXT”のデータは4クラスタに跨って格納されていることがわかる。
図6を用いて、ファイルデータの書き込み処理を説明する。ファイルデータ書き込み処理ではまず始めに書き込み対象ファイルのディレクトリエントリ701を読み込む(S601)。次に、読み込んだディレクトリエントリ701に格納された開始クラスタ番号を取得し、ファイルデータの先頭位置を確認する(S602)。次に、FAT505、506を読み込み、取得したファイルデータの先頭位置から順にFAT505、506上でリンクを辿り、書き込み位置のクラスタ番号を取得する(S603)。次に、データ書き込みに際し、ファイルに新たに空き領域を割り当てる必要があるか判定する(S604)。空き領域の割り当てが必要な場合、FAT505、506上で空き領域を検索し、1クラスタ分の空き領域をファイルの終端に割り当てる(S605)。空き領域の割り当てが不要な場合は、ステップS606に進む。
次に、現在参照しているデータ領域502のクラスタ内に書き込めるだけのデータを書き込む(S606)。次に、全データの書き込みが完了したか判定する(S607)。書き込むべきデータがまだ残っている場合、S604の処理に戻る。全データの書き込みが完了した場合、ディレクトリエントリ701内に格納されたファイルサイズやタイムスタンプ等を更新し、半導体メモリカード110に書き込む(S608)。最後にFAT505、506を半導体メモリカード110に書き込み、処理を完了する(S609)。
このファイルデータ書き込み処理により、図7A〜7Cに示された65000バイトのデータを持つ”FILE1.TXT”に1000バイトのデータを更に書き込んだ場合、図8A〜8Cに示すような66000バイトのデータを持つファイルに変化する。
このようにFATファイルシステムでは、ファイルデータを半導体メモリカード110に書き込むときには、ファイルデータをデータ領域502に書き込むと共に、ファイルシステム管理情報をも書き込む。ファイルシステム管理情報は、ファイルに関する情報を含むディレクトリエントリ701や、データ領域502の領域管理を行うFAT505、506等を含む。ファイルシステム管理情報はファイルデータが更新される度に半導体メモリカード110に記録する必要があることから、ファイルシステム管理情報を記録する領域は、ファイルデータを記録する領域に比べ更新頻度が高くなる。
また、ファイルデータが比較的大きな単位で半導体メモリカード110に書き込まれるのに比べ、ファイルシステム管理情報は数バイト程度の小さな単位で書き込まれる。一方、半導体メモリカード110に使用されるFlashメモリの最適な書き込み単位は、Flashメモリの大容量化に伴い、数10kB〜数100kBと大きくなりつつある。ファイルシステム管理情報のような数バイト程度のデータを、数10kB〜数100kBの大きなアクセス単位で書き込むと、無効な領域が発生し、アクセス速度が低下する。
そのため、本実施の形態では、図1に示すように、半導体メモリカード110は、ファイルシステム管理情報を格納する第1の半導体メモリ118と、ファイルデータを格納する第2の半導体メモリ119と、第1、第2の半導体メモリ118、119内の記録領域と論理アドレス空間の対応を管理するアドレス管理情報123とを備える。その構成において、半導体メモリカード110にアクセスするアクセス装置100は半導体メモリカード110に対するデータ書き込み時にデータの種別を指定し、半導体メモリカード110はその種別に応じてデータの書き込み先(第1の半導体メモリ118または第2の半導体メモリ119)を決定する。
以上の構成により、サイズの大きいファイルデータを、最適なアクセス単位が比較的大きい半導体メモリに格納し、サイズの小さいファイルシステム管理情報を、最適なアクセス単位が比較的小さい半導体メモリに格納することが可能になる。これにより、半導体メモリカード110内の記録領域に無効な領域を発生させず、半導体メモリカード110に対する高速アクセスを実現することが可能となる。また、更新頻繁が小さいファイルデータを寿命が短い半導体メモリに格納し、更新頻繁が大きいファイルシステム管理情報を寿命が長い半導体メモリに格納することが可能になるため、半導体メモリカード110の寿命を延ばすことも可能となる。
(半導体メモリカード及びアクセス装置の動作)
本実施の形態における半導体メモリカード110及びアクセス装置100の動作について具体的に説明する。
本実施の形態では、アクセス装置100が半導体メモリカード110に書き込みを行う際、書き込みコマンドの引数でデータ種別を示す情報を指定する。書き込みコマンド(Writeコマンド)の形式は以下のとおりである。
Write(buf,size,addr,data_kind)
buf:書き込みデータを格納するバッファ、
size:書き込みサイズ、
addr:書き込みアドレス、
data_kind:データ種別
”buf”、”size”、”addr”の各引数は従来の半導体メモリカードにおける書き込みコマンドと同様の引数である。
本実施の形態では、特に、引数に”data_kind”を設けている点に特徴がある。”data_kind”には、書き込みコマンドに渡すデータの種別として、“ファイルデータ”あるいは“ファイルシステム管理情報”のいずれかを指定する。データ種別は、アクセス装置100上で動作しているファイルシステム制御機能が管理し、半導体メモリカード110に指定する。本実施の形態では、このデータ種別に基づいて半導体メモリカード110がデータ書き込み先の半導体メモリを決定する。
(データ書き込み処理)
図9を用いて、本実施の形態における半導体メモリカード110におけるデータ書き込み処理を説明する。
図9において、まず、半導体メモリカード110はアクセス装置100からコマンドを受信する(S901)。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S902)。不正コマンドの場合、アクセス装置100にエラーを通知して処理を終了する(S903)。認識可能なコマンドの場合、そのコマンドがWriteコマンドであるか否かを判定する(S904)。Writeコマンド以外の場合、各コマンドに対応した他の処理を実施する(S905)。Writeコマンドの場合、コマンドと共に渡された引数が正しいか否か判定する(S906)。不正なアドレスが指定された場合等、Write処理を実施できない引数が指定されたと判断した場合、アクセス装置100にエラーを通知して処理を終了する(S907)。
引数が正しい場合、引数の”data_kind”を参照して、ファイル種別が“ファイルデータ”であるか“ファイルシステム管理情報”であるかを判定する(S908)。
data_kindが“ファイルデータ”の場合、第2の半導体メモリ119内にデータを書き込む(S909)。この処理の詳細は後述する。続いて、書き込み処理が成功したか否か判定する(S910)。書き込み処理が失敗した場合、アクセス装置100にエラーを通知して処理を終了する(S911)。書き込み処理が成功した場合、アクセス装置100に書き込み終了を通知し処理を終了する(S915)。
data_kindが“ファイルシステム管理情報”の場合、第1の半導体メモリ118内にデータを書き込む(S912)。本処理はステップS909の処理とほぼ同様の処理であり、その詳細は後述する。続いて、書き込み処理が成功したか否か判定する(S913)。書き込み処理が失敗した場合、アクセス装置100にエラーを通知して処理を終了する(S914)。書き込み処理が成功した場合、アクセス装置100に書き込み終了を通知し処理を終了する(S915)。
次に、図10、11を用いて、上記ステップS909、S912における第2の半導体メモリ119、第1の半導体メモリ118に対する書き込み処理を説明する。最初に、アドレス管理情報123について説明する。図10に、半導体メモリカード110内のアドレス管理情報123の構成を示す。
アドレス管理情報123は、半導体メモリカード110内の物理的な記録領域(ブロック)の位置を示す物理アドレスと、アクセス装置100が使用する論理的な記録領域(ブロック)の位置を示す論理アドレスとの対応関係を示す論物変換テーブル125と、各記録領域(ブロック)の使用状態を管理するエントリテーブル127とを含む。なお、アドレスが割り当てられる記録領域の単位(ブロック)は、Flashメモリにおける消去ブロックとしている。
図10のアドレス管理情報123は、論理アドレスが0から(N−1)まで存在し、合計N個のブロックを管理している。また、論理アドレスは第2の半導体メモリ119用のアドレスとして0から(M−1)が、第1の半導体メモリ118用のアドレスとしてMから(N−1)が割り当てられている。すなわち、Nブロックの論理アドレス空間の内、Mブロックは第2の半導体メモリ119内に存在、(N−M)ブロックは第1の半導体メモリ118内に存在する。
論物変換テーブル125は半導体メモリカード110内に存在する論理ブロックの数に等しい数のエントリから構成され、各エントリは論理アドレスと対応付けられた物理アドレスを格納している。図10の例では、論理アドレス0から3までの領域に、物理アドレス0から3までの領域がそれぞれ対応付けられており、更に論理アドレス4、5の領域に、物理アドレスM、(M+3)の領域が対応付けられている。
エントリテーブル127は半導体メモリカード110内に存在する物理ブロックの数に等しい数のエントリから構成され、各エントリは物理ブロックの使用状態を示すフラグを格納している。フラグの値において“00”は有効ブロックを、“11”は無効ブロックを、“10”は不良ブロックをそれぞれ示す。すなわち、物理アドレス0から3、M、(M+3)の領域は有効ブロックであり、それ以外の領域は無効ブロックである。有効ブロックは有効なデータが書き込まれているブロックであり、無効ブロックは有効なデータが書き込まれていないブロックである。
図11は、図9のステップS909、S912の詳細な処理を示した図である。図11において、まず、Writeコマンドの引数に基づいてデータ種別を判断する(S1001)。そのデータ種別に応じて、半導体メモリカード110内のアドレス管理情報123を参照して無効ブロックの取得先を決定する。
書き込みデータの種別が“ファイルデータ”の場合、ファイルデータ格納領域122を有する第2の半導体メモリ119からデータ書き込み先の無効ブロックを特定する(S1002)。このため、アドレス管理情報123を参照し、物理アドレス0から(M−1)の領域に存在する無効ブロックから1ブロックを特定する。
一方、書き込みデータの種別が“ファイルシステム管理情報”の場合、ファイルシステム管理情報格納領域121を有する第1の半導体メモリ118からデータ書き込み先の無効ブロックを特定する(S1003)。このため、アドレス管理情報123を参照し、物理アドレスMから(N−1)の領域に存在する無効ブロックから1ブロックを特定する。
次に、データ書き込みに先立ち、特定した無効ブロックに格納されているデータを消去し(S1004)、その無効ブロックにデータを書き込む(S1005)。次に書き込みが成功したか否かを判定する(S1006)。
書き込みが失敗した場合、エラー終了する(S1007)。書き込みが成功した場合、新データを格納したブロックのフラグを”有効ブロック(00)”とし、旧データを格納していたブロックのフラグを”無効ブロック(11)”とするように、エントリテーブル127を更新する(S1008)。なお、旧データとは、Writeコマンドに指定された論理アドレスに対応する物理アドレスのブロックが有効ブロックであった場合に、その有効ブロックに格納されているデータのことである。
最後に、書き込み対象の論理アドレス(Writeコマンドの引数で指定されたアドレス)に対して新データを格納した物理アドレスが対応付けられるよう、論物変換テーブル125を更新する(S1007)。
更に、図11において、第1、第2の半導体メモリ118、119でブロックサイズが異なる場合は、論物変換テーブル125上では、小さい方のブロックサイズでアドレス管理を行い、ブロックサイズが大きな半導体メモリにデータを格納するときは、論物変換テーブル125上で連続領域を確保するように管理を行うことで、本実施の形態で説明した上記の方法を適用することが可能である。
以上説明したように、本実施の形態では、アクセス装置100がデータ書き込み時にデータを半導体メモリカード110に送信すると共に、データ種別として“ファイルデータ”及び“ファイルシステム管理情報”のいずれかを指定する。半導体メモリカード110は、書き込みデータの種別が“ファイルデータ”であれば、アクセス単位が大きく、更新寿命が短い第2の半導体メモリ119に格納し、一方、書き込みデータの種別が“ファイルシステム管理情報”であれば、アクセス単位が小さく、更新寿命が長い第1の半導体メモリ118に格納する。これにより、半導体メモリカード110に対する高速アクセスを実現でき、また、その寿命を延ばすことも可能となる。
なお、本実施の形態では、アクセス装置100が書き込み時にデータ種別を指定し、半導体メモリカード110内で書き込み先を決定する点に特徴があり、図11で説明した書き込み処理は一例である。
すなわち、書き込みに先立ち消去処理が不要な半導体メモリを使用した場合は消去処理を省略しても良い。消去のタイミングはデータ書き込み直前ではなくデータ書き込み直後でも良いし、任意のタイミングで一括消去しても良い。
また、アドレス管理情報として、論理ブロック数と物理ブロック数が同じ場合について説明を行ったが、代替領域を用意する等の目的により、物理ブロック数が多い半導体メモリカードに対しても、本発明の思想は適用できる。
また、アドレス管理情報123を第1の半導体メモリ118及び第2の半導体メモリ119に含め、第3の半導体メモリ120を削除した構成としても良い。
また、第1及び第2の半導体メモリは、最適なアクセス単位及び寿命の少なくとも一方が異なれば、FlashROM、EEPROM、FeRAM、MRAM(Magnetoresistive RAM:磁気抵抗RAM)等のどの不揮発性メモリを使用しても良い。
また、本実施の形態ではファイルシステムとしてFATファイルシステムを一例として説明したが、UDFファイルシステム、NTFSファイルシステム等、他のファイルシステムを用いても良い。
実施の形態2
実施の形態1の半導体メモリカードは、最適なアクセス単位の異なる2つの半導体メモリを備え、ファイルデータとファイルシステム管理情報とをそれぞれ別々の半導体メモリに格納するようにしていた。これに対し、本実施形態の半導体メモリカードは1つの半導体メモリの記録領域を2つの領域に分割し、各領域のアクセス単位(管理方法)を異ならせ、ファイルデータとファイルシステム管理情報とをそれぞれ別々の領域に格納するようにしている。このように構成しても実施の形態1と同様にアクセス速度の高速化が図れる。
(半導体メモリカード及びアクセス装置の構成)
図12に本発実施形態における半導体メモリカード及びアクセス装置の構成を示す。なお、図12において、図1に示す構成要素と同じ構成要素は、実施の形態1のものと同様の動作を行い、同様の機能を実現する。
アクセス装置100bは、CPU101、RAM102、スロット103、ROM104bを含む。ROM104bは、アプリケーションプログラム105、ファイルシステム制御プログラム106、アクセス制御プログラム107、FS管理情報通知プログラム108を含む。
FS管理情報通知プログラム108は、ファイルシステム管理情報の位置や大きさに関する情報を半導体メモリカード110bに通知するFS管理情報通知機能(FS管理情報通知手段)を提供する。これにより、半導体メモリカード110bは予めファイルシステム管理情報の位置や大きさを把握することができ、アクセスコマンドによりアクセス装置100bからアクセス命令が発行された際に、アドレスに基づきデータの種別を判別し、データ種別に応じて半導体メモリカード110b内部の処理を変更することが可能となる。
図12に示すように、半導体メモリカード110bは、ホストインターフェース(I/F)部111、CPU112、RAM113、ROM114、メモリコントローラ25、FS管理情報格納レジスタ26及び不揮発性メモリ27を含む。
FS管理情報格納レジスタ26は、アクセス装置100bのFS管理情報通知機能により通知されたファイルシステム管理情報の位置や大きさに関する情報を格納する手段である。
不揮発性メモリ27は、主にファイルシステム管理情報を格納する第1の記録領域271と、ファイルデータを格納する第2の記録領域272と、アドレス管理情報を格納するアドレス管理情報格納領域273とを含む。なお、第1の記録領域271と第2の記録領域272とは、データ管理方法(データ管理単位)が異なる(詳細は後述)。
メモリコントローラ25は、不揮発性メモリ27に格納されたアドレス管理情報に基づき記録領域のアドレス管理を行うアドレス管理部251と、不揮発性メモリ27に対するアクセス制御を行う不揮発性メモリアクセス部252とを含む。
本実施形態では、アクセス装置100bから半導体メモリカード110bに予めファイルシステム管理情報の位置や大きさを通知しておき、アクセスコマンドによりアクセス装置100bから半導体メモリカード110bに対するアクセス命令が発生した際にデータの種別を判別し、データ種別に応じて半導体メモリカード内のデータ書き込み処理を変更することにより、アクセス速度の低下を防止する。
(不揮発性メモリの内部構成)
図13は本実施形態の半導体メモリカード110bにおける不揮発性メモリ27のアドレス空間の一例を示した図である。同図に示すように、不揮発性メモリ27は、512バイトの比較的小さな単位でデータのアクセスを管理する第1の記録領域271と、16kBの比較的大きな単位でデータのアクセスを管理する第2の記録領域272と、アドレス管理情報格を格納するアドレス管理情報格納領域273とを有する。本例では、第1の記録領域271の大きさは160kB、第2の記録領域272の大きさは64800kB、アドレス管理情報格納領域273の大きさは576kBとしている。
不揮発性メモリ27は、上書きする場合には、データ書き込み前に消去ブロック単位でのデータ消去が必要であるという特性を有し、一部の消去ブロックが物理的に破壊され記録不能となった場合に代替するための領域である代替領域を含んでいる。なお、消去ブロックの大きさは16kBである。
第1の記録領域271と第2の記録領域272とはそれぞれ管理方法が異なる。第1の記録領域271では、512バイト(=1セクタ)単位でデータの読み出し/書き込みが実行されるのに対し、第2の記録領域272では、16kB(=32セクタ=1消去ブロック)単位でデータの読み出し/書き込みが実行される。すなわち、第1の記録領域271は、データサイズが16kBより小さいデータの書き込みに適しており、第2の記録領域272は、データサイズが16kBより大きいデータの書き込みに適している。
半導体メモリカード110bは、予めアクセス装置100bから取得したファイルシステム管理情報の位置や大きさに関する情報をもとに、書き込みデータの種別を判別し、書き込みデータがファイルシステム管理情報であれば第1の記録領域271へ記録し、書き込みデータがファイルデータであれば第2の記録領域272へ記録する。
(アクセス管理情報)
図14は、本実施形態の半導体メモリカード110bにおけるアドレス管理情報の一例を示した図である。アドレス管理情報は、アクセス装置100bが認識する論理アドレス半導体メモリカード110b内の不揮発性メモリ27上の物理的なアドレス空間を表す物理アドレスとを変換する論物変換テーブル51と、不揮発性メモリ27上の各物理領域の状態を示すリンクテーブル53とからなる。
論物変換テーブル51は、論理アドレス空間に存在する全アドレスと同数の要素を含むテーブルであり、各要素には対応する物理アドレスの値が格納されている。図14では、論理アドレスに物理アドレスが割り当てられていない状態を“−”で表している。図14の例では、論理アドレス空間の0番地から127番地までの領域がそれぞれ物理アドレス空間の320番地から447番地に割り当てられており、それ以外の領域は未割り当ての状態となっている。
リンクテーブル53は、第1の記録領域用の部分と、第2の記録領域用の部分とに分割して管理されている。図14の例では、物理アドレス空間の0番地から319番地までの領域が第1の記録領域用の部分であり、320番地以降の領域が第2の記録領域用の部分である。リンクテーブル53において、“00”は、既に論理アドレスに割り当てられておりデータ格納に使用されている有効ブロックを、“11”は、論理アドレスに割り当てられていない、データ格納に使用可能な消去済みブロックを、“10”は、論理アドレスに割り当てられていない未消去ブロックでありデータを消去した後データ格納が可能となる無効ブロックを、それぞれ表している。
以上のように構成されるアクセス装置100b及び半導体メモリカード110bの動作を説明する。
(アクセス装置の動作)
アクセス装置100bの書き込み動作について説明する。半導体メモリカード110bにファイルデータを記録する場合、ファイルデータとともに、半導体メモリカード110b内の領域割り当て状態や、ファイル名、ファイルサイズ等のファイルシステム管理情報を記録する必要がある。FATファイルシステムの場合、ファイルシステム管理情報は、FAT1、FAT2及びディレクトリエントリに相当する。すなわち、FATファイルシステムの場合、図15Aに示すようにデータ、FAT1、FAT2、ディレクトリエントリ(DIR)の順で半導体メモリカード110bに記録し、これを一定周期で繰り返すことにより、ファイルデータ全体が記録される。
図15Bは、図15Aのデータシーケンスに対してアクセス装置100bが発行するコマンドシーケンスを示した図である。図15Bのコマンドシーケンスに示すように、本実施形態では、半導体メモリカード110bへの書き込みコマンド発行前に、ファイルシステム管理情報の位置、大きさを設定する”SetFSInfoAddr”コマンドが発行される。ここで、”SetFSInfoAddr”コマンドについて説明する。
”SetFSInfoAddr”コマンドは、アクセス装置100bが、半導体メモリカード110b内の不揮発性メモリ27においてファイルシステム管理情報の位置(論理アドレス)と大きさを設定するためのコマンドである。このコマンドにより、半導体メモリカード110bはファイルシステム管理情報を格納する領域を認識できる。その形式は次のとおりである。
SetFSInfoAddr(addr、size)
addr:開始位置(論理アドレス)
size:サイズ(セクタ数)
図15Bの例では、最初の3つのコマンドにより、論理アドレス空間32番地から1セクタ分の領域がFAT1の領域として設定され、論理アドレス空間34番地から1セクタ分の領域がFAT2の領域として設定され、論理アドレス空間64番地から1セクタ分の領域がディレクトリエントリの領域として設定される。このように、アクセス装置100bがデータ書き込み前にSetFSInfoAddrコマンドを発行して、ファイルシステム管理情報の位置を事前に設定する。なお、SetFSInfoAddrコマンドは、半導体メモリカード110bがアクセス装置100bに挿入されたときや、アクセス装置100bの電源投入時等に一度発行されればよく、データ書き込み処理を行う度に発行される必要はない。
<SetFSInfoAddrコマンド処理>
図16を用いて、半導体メモリカード110bにおけるSetFSInfoAddrコマンドの処理手順を説明する。
半導体メモリカード110bはアクセス装置100bのFS管理情報通知機能により発行されたコマンドを受信すると(S1601)、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S1602)。不正コマンドであった場合、アクセス装置にエラーを通知し(S1603)、処理を終了する。
不正コマンドでなかった場合、受信したコマンドがSetFSInfoAddrコマンドであるか否か判定する(S1604)。SetFSInfoAddrコマンドではなかった場合、そのコマンドに対応した処理を実施し(S1605)、処理を終了する。
SetFSInfoAddrコマンドであった場合、コマンドと共に渡された引数が正しいか否か判定する(S1606)。SetFSInfoAddrコマンドの引数は、ファイルシステム管理情報を格納している論理アドレスを示す“addr”と、ファイルシステム管理情報の大きさを示す“size”を含む。addrに不正なアドレスを指定された場合等、引数が誤っていると判定した場合、アクセス装置にエラーを通知し(S1607)、処理を終了する。
引数が正しいと判定した場合、addrで指定された論理アドレスが第2の記録領域272に存在するか判定する(S1608)。
第2の記録領域272に存在しない場合、FS管理情報格納レジスタ26に、指定された論理アドレス、大きさを格納し(S1612)、処理を終了する。
第2の記録領域272に存在する場合、第1の記録領域271内で1消去ブロック分の空き領域を確保し、指定された論理アドレスを含む1消去ブロック分のデータを、第2領域272から確保した空き領域にコピーする(S1609)。
その後、指定された論理アドレスを含む1消去ブロック分のデータを、第2の記録領域272から消去する(S1610)。アドレス管理情報を更新する(S1611)。そして、FS管理情報格納レジスタ26に、指定された論理アドレス、大きさを格納し(S1612)、処理を終了する。
<Writeコマンド処理>
図17を用いて、半導体メモリカード110bにおけるWriteコマンドの処理手順を説明する。
半導体メモリカード110bはアクセス装置100bのアクセス制御機能によりコマンドを受信すると(S1701)、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S1702)。不正コマンドであった場合、アクセス装置にエラーを通知し(S1703)、処理を終了する。
不正コマンドでなかった場合、受信したコマンドがWriteコマンドであるか否か判定する(S1704)。Writeコマンドではなかった場合、各コマンドに対応した処理を実施し(S1705)、処理を終了する。
Writeコマンドでであった場合、コマンドとともに渡された引数が正しいか否か判定する(S1706)。Writeコマンドの引数は、データ記録先の論理アドレスを示す“addr”と、データの大きさを示す“size”を含む。addrに不正なアドレスを指定された場合等、引数が誤っていると判定した場合、アクセス装置にエラーを通知し(S1707)、処理を終了する。
引数が正しいと判定した場合、FS管理情報格納レジスタ26に格納されているファイルシステム管理情報の位置(アドレス)や大きさに関する情報を取得する(S1708)。
FS管理情報格納レジスタ26から取得した情報を参照し、引数addrで指定された論理アドレスが、FS管理情報格納レジスタ26に格納されているアドレスであるか否かを判定する(S1709)。
引数addrで指定された論理アドレスがFS管理情報格納レジスタ26に格納されているアドレスであれば、書き込みデータはファイルシステム管理情報であると判断される。この場合は、第1の記録領域271に対するデータ書き込み処理を実施し、さらにアドレス管理情報(論物変換テーブル51、リンクテーブル53)を更新し(S1710)、処理を終了する。
一方、引数addrで指定された論理アドレスがFS管理情報格納レジスタ26に格納されているアドレスでないときは、書き込みデータはファイルデータであると判断される。この場合は、第2の記録領域272に対するデータ書き込み処理を実施し、さらにアドレス管理情報(論物変換テーブル51、リンクテーブル53)を更新し(S1711)、処理を終了する。
以上のように、本実施形態では、SetFSInfoAddrコマンドによりファイルシステム管理情報の格納位置や大きさに関する情報をアクセス装置100bから半導体メモリカード110bに事前に通知した後、Writeコマンドにより、ファイルシステム管理情報とファイルデータを半導体メモリカード110bに書き込む。これにより、Writeコマンドが発行された際に、半導体メモリカード110b内で、引数で指定される論理アドレスに基づき書き込みデータの種別を判定することが可能となり、データ種別に応じて書き込み方法を変更でき、ファイルシステム管理情報、ファイルデータの双方を高速に書き込むことが可能となる。
(アドレス管理情報の更新の具体例)
次に、ファイルデータの記録にともなう、アドレス管理情報(論物変換テーブル51、リンクテーブル53)の更新の様子を具体的に説明する。なお、以下では、図14に示すアドレス管理情報の状態を初期状態として、アクセス装置100bが図15Bに示すコマンドシーケンスに基づいて半導体メモリカード110bにファイルデータを記録した場合のアドレス管理情報の更新について説明する。
<Seq.1〜3:ファイルシステム管理情報格納領域の設定>
図15Bの最初の3つのSetFSInfoAddrコマンドにより、不揮発性メモリ27内のファイルシステム管理情報(FAT1、FAT2、ディレクトリエントリ(DIR))の格納位置(領域)が設定される。SetFSInfoAddrコマンドの引数において、FAT1、FAT2、ディレクトリエントリ(DIR)の論理アドレスとして、それぞれ論理アドレス空間の32番地、34番地、64番地が指定されている。
図14の論物変換テーブル51を参照すると、指定された3つの論理アドレス(32番地、34番地、64番地)にはすでに物理アドレス(352番地、354番地、384番地)が割り当てられている。リンクテーブル53を参照すると、これらの物理アドレスはそれぞれファイルデータを格納する第2の記録領域272内にある。そこで、3つの物理アドレス(352番地、354番地、384番地)のそれぞれを含む1消去ブロック分のデータを、ファイルデータを格納する第2の記録領域272から、ファイルシステム管理情報を格納する第1の記録領域271にコピーする。
図14から、論理アドレス32番地と34番地を含む1消去ブロックは物理アドレス352番地から383番地であり、論理アドレス64番地を含む1消去ブロックは物理アドレス384番地から415番地である。リンクテーブル53を参照し、物理アドレス0番地〜31番地及び32番地〜63番地までは、データ消去済みの無効ブロックであることが認識できる。よって、半導体メモリカード110bは、0番地〜31番地及び32番地〜63番地の物理アドレス空間に、352番地〜383番地及び384番地〜415番地までの物理アドレス空間のデータをコピーする。そして、物理アドレス352番地〜383番地及び384番地〜415番地までのデータを消去する。
上記の処理にともない論物変換テーブル51及びリンクテーブル53が更新される。以上の処理が完了した時点の論物変換テーブル51及びリンクテーブル53を図18に示す。同図においてハッチングが施された箇所が今回更新された箇所である。論物変換テーブル51に示すように、論理アドレス空間の32番地から95番地までには、第1の記録領域271用の物理アドレス空間の0番地から63番地が割り当てられている。また、リンクテーブル53に示すように、新たに割り当てられた物理アドレス空間0番地から63番地は有効ブロック(”00”)となり、データが消去された物理アドレス空間352番地から415番地は無効ブロック(”11”)となる。
<Seq.4:ファイルデータの書き込み>
Seq.4では、論理アドレス128番地から、16kB(=32セクタ)のデータを書き込む。半導体メモリカード110bはFS管理情報格納レジスタ26を参照し、Writeコマンドで指定された論理アドレスがFS管理情報格納レジスタ26内に格納されたアドレスであるか否かを判定する。本例では、論理アドレス128番地は、FS管理情報格納レジスタ26に格納されていないため、半導体メモリカード110bは書き込みデータの種別を”ファイルデータ”であると判定し、第2の記録領域272内への書き込み処理を実行する。
具体的には、半導体メモリカード110bは、図18のリンクテーブル53を参照し、第2の記録領域272用の物理アドレス352番地から383番地までがデータ消去済みの無効ブロックであることを認識し、この物理アドレス空間(352番地〜383番地)を論理アドレス空間(128番地を含む消去ブロック)に割り当て、実際にデータを第2の記録領域272に書き込む。この処理が完了した時点でアドレス管理情報は図19のように変更される。同図に示すように、論物変換テーブル51では、論理アドレス空間(128番地〜159番地)が物理アドレス空間(352番地〜383番地)に割り当てられ、それとともに、リンクテーブル53においてデータが記録された物理アドレス空間(352番地〜383番地)が有効ブロック(”00”)に変更されている。
<Seq.5〜7:ファイルシステム管理情報の書き込み>
Seq.5〜7では、FAT1、FAT2、ディレクトリエントリ(DIR)のファイルシステム管理情報を、それぞれ論理アドレス32番地、34番地、64番地に書き込む。
半導体メモリカード110bはFS管理情報格納レジスタ26を参照し、Writeコマンドで指定された論理アドレスが、FS管理情報格納レジスタ26内に存在するか否かを判定する。本例では、論理アドレス32番地、34番地、64番地はいずれもFS管理情報格納レジスタ26内に存在するため、半導体メモリカード110bは書き込みデータの種別を”ファイルシステム管理情報”であると判定し、第1の記録領域271内への書き込み処理を実行する。
具体的には、半導体メモリカード110bは、図19の論物変換テーブル51を参照し、指定された論理アドレス(32番地、34番地、64番地)には既に物理アドレス(0番地、2番地、32番地)が割り当てられていることを認識する。次に、半導体メモリカード110bはリンクテーブル53を参照し、第1の記録領域271用の物理アドレス64番地から66番地までがデータ消去済みの無効ブロックであることを認識し、この物理アドレス空間(64番地〜66番地)を論理アドレス空間(32番地、34番地、64番地)に割り当て、実際にデータを第1の記録領域271に書き込む。そして、以前にデータを格納していた物理領域(0番地、2番地、32番地)を未消去の無効ブロック(”10”)の状態として管理する。以上の処理が完了した時点のアドレス管理情報を図20に示す。
<Seq.8:ファイルデータの書き込み>
Seq.8では、論理アドレス160番地から、16kB(=32セクタ)のデータを書き込む。半導体メモリカード110bはFS管理情報格納レジスタ26を参照し、Writeコマンドで指定された論理アドレスがFS管理情報格納レジスタ26内に含まれるか否かを判定する。本例では、論理アドレス160番地は、FS管理情報格納レジスタ26内に存在しないため、半導体メモリカード110bは書き込みデータの種別を”ファイルデータ”であると判定し、第2の記録領域272内への書き込み処理を実行する。
具体的には、半導体メモリカード110bは、図20のリンクテーブルを参照し、第2の記録領域用の物理アドレス384番地から415番地までがデータ消去済みの無効ブロックであることを認識し、この物理アドレス空間(384番地〜415番地)を論理アドレス空間(160番地を含む消去ブロック)に割り当て、実際にデータを第2の記録領域272に書き込む。この処理が完了した時点でアドレス管理情報は図21のように変更される。
以上のようにファイルデータと、FAT1、FAT2、ディレクトリエントリ(DIR)を含むファイルシステム管理情報との書き込みを繰り返した場合においても、図21に示すように、1つの消去ブロックにファイルシステム管理情報とファイルデータが混在することはないため、一度に記録されるデータサイズが異なる種々のデータが1消去ブロックに混在することによるアクセス速度の低下は発生しない。
以上のように、本実施形態の半導体メモリカードは、ファイルシステム管理情報の位置や大きさをアクセス装置から取得し保持するFS管理情報格納レジスタを有し、アクセス装置から書き込みコマンドが発行された際にレジスタに格納された値を参照することで、指定されたアドレスからデータ種別を判定する。更にデータ種別の判定結果により書き込み方法を変更することにより、高速に半導体メモリカードにデータを書き込むことが可能となる。
なお、本実施の形態ではFATファイルシステムを例に取り説明したが、UDF等の他のファイルシステムを用いても良い。また、SetFSInfoAddrコマンド、Writeコマンドの引数は一例であり、別の表現形式を用いても良いし、本実施の形態で説明した以外の引数を追加してもよい。
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。
本発明に関わる半導体メモリカード及びアクセス装置は、アクセス装置が半導体メモリカードに書き込むデータの種別を指定し、半導体メモリカード内でデータの種別に応じてデータ格納先を変更することにより、ファイルシステム管理情報の更新による半導体メモリカードの寿命低下を防止することが可能となる。このような半導体メモリカードは、デジタルAV機器や携帯電話端末、PC等をアクセス装置とした場合の情報記録媒体として利用することができる。
本発明は、外部装置よりデータの書き込み、読み出しが可能な情報記録媒体に関し、特に、格納するデータをファイルシステムにより管理する情報記録媒体及びその情報記録媒体にアクセスするアクセス装置に関する。
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の1つである半導体メモリカードは、記憶素子としてFlashROM等の不揮発性半導体メモリを主に使用しており、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及しつつある。
半導体メモリカードに格納されたデータはファイルシステムにより管理されており、ユーザは格納されたデータをファイルとして容易に取り扱うことができる。従来使用されているファイルシステムとして、FATファイルシステム(詳細は、非特許文献1参照)や、UDFファイルシステム(Universal Disk Format)(詳細は、非特許文献2参照)、NTFSファイルシステム(New Technology File System)等が存在する。これらファイルシステムによりデータが管理された半導体メモリカードは、同一のファイルシステムを解釈する機器間でファイルを共有することができるため、機器間でデータを授受することが可能となる。
従来のファイルシステムの一例としてFATファイルシステムについて説明する。FATファイルシステムでは、アクセス装置が半導体メモリカードへのアクセスに使用する論理アドレス空間の先頭に管理情報領域が存在する。
管理情報領域は、領域割り当て単位やファイルシステムが管理する領域の大きさ等のファイルシステムにおいてファイルの管理に必要な情報を格納する。より具体的には、管理情報領域は、ファイルデータ(ユーザデータ)を管理するために必要なFAT、ルートディレクトリエントリ等のファイルシステム管理情報を格納する。
FATは、ファイルに含まれるデータの物理的な格納位置に関する情報が格納される領域であり、通常、同じ情報を持つ2つのFATが半導体メモリカード内に存在し、一方のFATが破損したとしても他方のFATによりファイルにアクセスできるよう二重化されている。ルートディレクトリエントリは、ルートディレクトリ直下に存在するファイル、ディレクトリの情報(ディレクトリエントリ)が格納される領域である。
FATファイルシステムでは、この管理情報領域に続く領域に、ファイルの実体データ(以下「ファイルデータ」という。)を格納するデータ領域が存在する。データ領域は複数のクラスタに分割されて管理される。
通常、ファイルデータは複数のクラスタに跨って格納される。各クラスタ間の繋がりは、FATに格納されたリンク情報により管理される。また、ルートディレクトリ直下のディレクトリ内に存在するファイル、サブディレクトリの情報(ディレクトリエントリ)は、このデータ領域の一部を利用して格納される。
FATファイルシステムでは、ファイルデータの格納とともに、ディレクトリエントリ及びFATが、ファイルデータの格納位置や大きさに関する情報を更新するために書き換わる。
すなわち、FATファイルシステムでは、ファイルデータの格納に際し、ファイルデータ、ディレクトリエントリ、FATの3つの管理情報(ファイルシステム管理情報)を半導体メモリカードに書き込む必要がある。ファイルデータは比較的大きなサイズのクラスタ単位で管理されることから、半導体メモリカードへの書き込みサイズは数10kBのように比較的大きくなる。これに対し、ディレクトリエントリ、FATのようなファイルシステム管理情報は、変更量が少ないため512バイトのような比較的小さな単位で半導体メモリカードに書き込まれる。このように、ファイルデータと、FATのようなファイルシステム管理情報とは、そのサイズが大きく異なる。
一方、半導体メモリカードの記憶素子として一般的に使用されるFlashメモリは、一定の大きさからなる消去ブロック単位で、一旦データを消去した後でなければデータを上書きできないという特徴を有しており、クラスタサイズが消去ブロックサイズに比べて小さい場合、クラスタ単位でデータ書き込みを行うと書き込み速度が低下するという問題がある。
従来、このような問題を解決する方法として、FAT上で連続した空き領域を検索し、検索された複数の連続クラスタに対してデータを書き込むことにより、書き込み速度の低下を防止する方法が提案されている。この方法によれば、クラスタサイズが消去ブロックサイズに比べて小さい場合でも、高速にデータを書き込むことが可能となる(例えば、特許文献1参照)。
特開2002−91806号公報 ISO/IEC9293,"Information Technology−Volume and file structure of disk cartridges for information",1994年 OSTA Universal Disk Format Specification Revision 1.50,1997年
しかし、上記の方法は、比較的サイズの大きいファイルデータをデータ領域に格納する際には高速な書き込みが可能となり有効であるが、ファイルシステム管理情報のような比較的サイズの小さいデータについては高速に書き込みが行えず有効ではない。
データ書き込み処理においては、1秒間に1回等、任意の周期でファイルシステム管理情報の更新が発生するため、全体的にデータ書き込み速度を更に高速化するためには、ファイルシステム管理情報の書き込み速度の高速化が不可欠である。
本発明は上記問題点を解決すべくなされたものであり、ファイルシステム管理情報とファイルデータのようなサイズの異なる2種類のデータを双方とも高速に記録可能な情報記録媒体、そのアクセス装置及び方法を提供することを目的とする。
本発明に係る情報記録媒体は、ファイルシステムにより格納データが管理され、外部から受信したコマンドにしたがいデータの書き込み、読み出しが可能な情報記録媒体である。情報記録媒体は、外部からコマンド、データ、及びファイルシステムにおいてファイルを管理するために必要な情報であるファイルシステム管理情報の位置や大きさに関する情報を受信する受信手段と、第1のアクセス単位で、データの書き込みが管理される第1の記録領域と、第1のアクセス単位よりも大きい第2のアクセス単位で、データの書き込みが管理される第2の記録領域と、受信したコマンドにしたがい、第1または第2の記録領域に対するアクセスを制御する制御手段とを備える。制御手段は、書き込みコマンドを受信したときに、受信データの種別に応じて第1及び第2の記録領域のいずれか一方を選択し、その選択した領域に受信データを書き込むよう制御を行う。情報記録媒体は、受信手段で受信したファイルシステム管理情報の位置や大きさに関する情報を保持するFS管理情報レジスタを備えている。制御手段は、FS管理情報レジスタに保持された、ファイルシステム管理情報の位置に関する情報に基づき前記受信データの種別を判断する。
第1の記録領域はファイルシステムにおいてファイルの管理に必要な情報であるフィルシステム管理情報を格納し、第2の記録領域はファイルシステムにより管理されるファイルの実体データを格納してもよい。
データ種別は、実体データを示す種別と、ファイルシステム管理情報を示す種別とを含んでもよい。
データ種別はコマンドの引数において指定され、制御手段は引数の値に基づいてデータ種別を判断してもよい。または、制御手段は、データ種別をデータの書き込み位置に基づいて判断してもよい。
本発明に係る第1のアクセス装置は、情報記録媒体を装着するスロットと、スロットに装着された情報記録媒体に対する、データの書き込み、読み出しを制御するアクセス制御手段と、スロットに装着された情報記録媒体上に構築されたファイルシステムを制御し、情報記録媒体に書き込みを行う際に、データとともにデータの種別に関する情報を情報記録媒体に送信するファイルシステム制御手段とを備える。
本発明に係る第2のアクセス装置は、ファイルシステム管理情報の位置や大きさに関する情報を情報記録媒体に通知するFS管理情報通知手段を有する。FS管理情報通知手段は、ファイルシステム管理情報の書き込みに先立ち、ファイルシステム管理情報の位置や大きさに関する情報を情報記録媒体に通知する。
本発明に係る制御方法は、格納データをファイルシステムにより管理する情報記録媒体の制御方法である。制御方法は、第1の記録領域に対して、第1のアクセス単位でデータの書き込みを管理し、第2の記録領域に対して、第1のアクセス単位よりも大きい第2のアクセス単位でデータの書き込みを管理し、書き込みコマンドとともにデータ及び書き込み先を受信し、受信したデータの種別に応じて、データの書き込み領域として第1及び第2の記録領域のいずれか一方を選択し、選択した領域に受信したデータを書き込む。この制御方法において、書き込みコマンドとともにデータ種別に関する情報を受信し、その受信したデータ種別に関する情報に基づいてデータ種別を判断してもよい。
本発明に係る第1のアクセス方法は、上記の情報記録媒体にアクセスする方法であって、書き込みコマンドとともに、書き込みデータの種別を示す情報を情報記録媒体に送信する。
本発明に係る第2のアクセス方法は、上記の情報記録媒体にアクセスする方法であって、ファイルシステム管理情報の位置や大きさに関する情報を情報記録媒体に送信して、情報記録媒体において前記ファイルシステム管理情報を格納する領域を設定し、その後に、書き込みコマンドを、データ及び書き込み先アドレスとともに前記情報記録媒体に送信して、データの書き込みを行う。
本発明によれば、情報記録媒体にデータを書き込む際に、書き込みデータの種別に応じて情報記録媒体内のデータ記録領域を変更する。これにより、データ種別により異なるデータサイズに応じた好適な記録領域への書き込みが可能となるため、全体として高速なアクセス速度を実現することができる。
以下、本発明の半導体メモリカード、及びアクセス装置の実施形態について、図面を参照して説明する。
実施の形態1
(半導体メモリカード及びアクセス装置の構成)
図1は本発明に係る半導体メモリカード及びアクセス装置の構成例を示す図である。図1に示すように、アクセス装置100は、CPU101、RAM102、スロット103及びROM104を含む。
ROM104にはアクセス装置100を制御するためのプログラム105〜107が格納されており、これらのプログラムはRAM102を一時記憶領域として使用し、CPU101により実行され所定の機能を提供する。具体的には、ROM104は、アプリケーションプログラム105、ファイルシステム制御プログラム106、アクセス制御プログラム107を含む。
アプリケーションプログラム105、ファイルシステム制御プログラム106、アクセス制御プログラム107はそれぞれ、アクセス装置100全体の制御、半導体メモリカード110上に構築されたファイルシステムの制御、半導体メモリカード110に対するデータの読み込み、書き込み等のアクセス制御を行う。
具体的には、アプリケーションプログラム105はアクセス装置100上で動作するアプリケーションを制御するプログラムであり、アクセス装置100がオーディオプレーヤであれば音楽再生プログラムを、デジタルスチルカメラであれば静止画撮影プログラム等を含む。
ファイルシステム制御プログラム106はCPU101と協働することにより、ファイルシステム制御機能(ファイルシステム制御手段)を実現する。より具体的には、ファイルシステム制御プログラム106は、半導体メモリカード110に対する、データの書き込み、読み出しをファイル単位で管理する機能を提供する。
アクセス制御プログラム107はCPU101と協働することにより、アクセス制御機能(アクセス制御手段)を実現する。より具体的には、アクセス制御プログラム107は、半導体メモリカード110上に構築された論理アドレス空間に対し、処理開始アドレスと処理サイズを指定してデータの書き込み、読み出しを実行する機能を提供する。
スロット103は半導体メモリカード110とアクセス装置100との接続部であり、制御信号及びデータがスロット103を経由してアクセス装置100と半導体メモリカード110間で送受信される。
半導体メモリカード110は、ホストインターフェース部111、CPU112、RAM113、ROM114、メモリコントローラ115、116、117、半導体メモリ118、119、120を含む。
ホストインターフェース部111は、アクセス装置100と制御信号及びデータを送受信するインターフェースである。
ROM114には半導体メモリカード110を制御するプログラムが格納されており、このプログラムはRAM113を一時記憶領域として使用し、CPU112上で動作する。すなわち、CPU112はROM114に格納されたプログラムと協働し、半導体メモリカード110全体の動作を制御する制御手段を構成する。
また、本実施の形態では半導体メモリカード110内に3つの半導体メモリ118、119、120が存在しており、それぞれの半導体メモリはメモリコントローラ115、116、117により制御される。
第1の半導体メモリ118は書き換え単位が小さい記憶素子で構成される。例えば、第1の半導体メモリ118は、FlashROM等のFlashメモリ、または、FeRAM(Ferroelectric Randam Access Memory:強誘電体メモリ)等で構成され得る。FeRAMは、書き換え単位が小さく(例えば1バイト)、かつ長寿命の記憶素子である。なお、本実施形態では、説明の簡単化のため、第1の半導体メモリ118を書き換え単位が小さい(例えば512バイト)Flashメモリで構成した場合について説明する。第1の半導体メモリ118は、ファイルシステム管理情報格納領域121を有する。ファイルシステム管理情報格納領域121は、ファイルシステムにおいてファイルの管理に必要な情報である、領域管理情報、ファイル名、ファイルサイズ等のファイルシステム管理情報を格納する。
第2の半導体メモリ119は、FlashROM等の書き換え単位が大きく(例えば16kB(キロバイト))、大容量の記憶素子で構成されており、ファイル内に記録されるデータ本体(実体データ)を格納するファイルデータ格納領域122を有する。
第3の半導体メモリ120は、第1、第2の半導体メモリ118、119で使用する記憶素子のいずれかで構成されている。第3の半導体メモリ120は、アクセス装置100が使用する論理アドレス空間と、第1、第2の半導体メモリ118、119上の物理アドレス空間との対応を管理するアドレス管理情報123を格納する。第1、第2の半導体メモリ118、119上の領域は、アクセス装置100が使用する論理アドレス空間に対応付けられており、アクセス装置100は論理アドレスを用いて、第1、第2の半導体メモリ118、119上の領域にアクセスすることが可能である。これに対し、第3の半導体メモリ120上の領域は、半導体メモリカード110の内部処理にのみ使用され、論理アドレス空間に対応付けられていないため、アクセス装置100からアクセスすることはできない。
本実施の形態では、アクセス装置100からアクセス可能な領域として、特性の異なる2つの半導体メモリ118、119を半導体メモリカード110内に備え、アクセス装置100から半導体メモリカード110にデータを書き込む際にデータの種別を指定し、その種別に応じてデータを格納する半導体メモリを決定する。これにより、データの特性に適した半導体メモリにデータを格納することが可能となり、半導体メモリカード110への高速アクセスが実現できる。
本実施形態において半導体メモリカード110の記憶素子として使用する半導体メモリの特徴について説明する。半導体メモリは、小型、軽量な情報記録媒体を実現することが可能であり、半導体メモリを使用した半導体メモリカードは様々な技術分野における情報記録媒体としての確固たる地位を築きつつある。現在半導体メモリカードに使用されている半導体メモリは、FlashROM等のFlashメモリが主流である。Flashメモリは、データを書き込む前に一旦書き込み先に記録されているデータを消去して、未記録の状態に戻してからデータ書き込みを行わなければならないという特徴がある。ここでデータを消去する単位は「消去ブロック」と呼ばれ、アクセスの最小単位であるセクタが複数個集まったブロックとして管理されている。本実施形態では、半導体メモリカード110内の半導体メモリとして以上のような特徴を持つFlashメモリを用いている。
図2はFlashメモリにおける消去ブロックとセクタとの関係の一例を示した図である。図2の例では、1つの消去ブロックは32セクタから構成されており、アクセスはセクタ単位(例えば512バイト)で行うことが可能であるが、書き込みに先立ち必要となるデータの消去処理は、消去ブロック(16kB)単位で行われる。
(半導体メモリにおけるデータ書き込み処理)
図3、図4を用いて、半導体メモリカード110における半導体メモリ118、119へのデータ書き込み処理を説明する。図3は、消去ブロック倍数長のデータを書き込む場合の処理手順を示し、図4は、1セクタのデータを書き込む場合の処理手順を示している。
最初に図3に示す処理について説明する。半導体メモリカード110は、アクセス装置100から送信されたコマンドと引数をホストインターフェース部111を介して受信する(S301)。引き数には、データの書き込み位置、データの書き込みサイズ等が指定される。受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S302)。不正コマンドの場合、アクセス装置にエラーを通知して処理を終了する(S303)。認識可能なコマンドの場合、そのコマンドが書き込みコマンドであるか判定する(S304)。書き込みコマンド以外の場合、各コマンドに対応した他の処理を実施する(S305)。書き込みコマンドの場合、コマンドと共に指定された引数が正しいか判定する(S306)。不正な引数と判定した場合、アクセス装置100にエラーを通知して処理を終了する(S307)。
引数が正しいと判定した場合、引数に指定された書き込み位置、書き込みサイズの情報から、実際にデータを書き込む、半導体メモリ118、119の消去ブロックの物理アドレスを決定する(S308)。次に、書き込みに先立ち、メモリコントローラ115、116を介して、決定した物理アドレスの消去ブロックに存在するデータを消去する(S309)。次に、半導体メモリカード110は、アクセス装置100から1セクタ分のデータを、ホストインターフェース部111を介して受信する(S310)。データの受信を完了すると、受信した1セクタ分のデータを、メモリコントローラ115、116を介して、半導体メモリ118、119へ書き込む(S311)。上記のデータ受信、書き込み処理(S310とS311)を、1消去ブロック分のデータ書き込みが完了するまで繰り返し実施する(S312)。1消去ブロック分のデータ書き込み処理(ステップS308〜S312)を、アクセス装置100から指定された書き込みサイズ分のデータ書き込みが完了するまで繰り返し実施する(S313)。アクセス装置100から指定された書き込みサイズ分のデータ書き込みが完了すると、処理を終了する。
図4に示す、1セクタ分のデータを書き込む処理を説明する。図4は、1消去ブロック中の1セクタ分のデータのみを新たに書き込む処理を説明している。このため、図3に示す処理とは次の点が異なる。データ書き込み前に、引数により指定されたデータが書き込まれるべき消去ブロックに元々書き込まれていたデータを一旦別の領域に退避させ(S409)、その後に、アクセス装置100から受信した1セクタ分のデータをその消去ブロックに書き込み(S412)、さらに、その消去ブロックの残りの領域に、退避させたデータのうち1セクタ分のデータを除いたデータを書き込む(S413)。
Flashメモリでは、データ書き込みに先立ち一旦データを消去する必要があり、この消去処理は消去ブロック単位でしか行えないため、1セクタのデータを書き込む場合でも、ステップS410に示すように、1消去ブロック分のデータ消去が必要であり、ステップS409に示すように、データの退避が必要となる。更に、ステップS413に示すように、データが更新されるセクタと同一の消去ブロックに含まれる既存データを新しい消去ブロックに書き戻す必要がある。
図3、図4で示したようにデータ書き込み処理では、大きく分けてコマンド解釈処理、データ消去処理、データ記録処理の3つの処理が存在する。例えば、コマンド解釈のオーバーヘッドに3m秒、1セクタのデータ記録処理に200μ秒、1消去ブロック(16kB)の消去処理に2m秒かかるFlashメモリを想定する。このFlashメモリの1消去ブロック(16kB)の書き込みでは図3に示す処理が実行され、コマンド解釈に3m秒、消去処理に2m秒、データ記録処理に32×200μ秒かかり、合計11.4m秒となる。同様に1セクタ(512B)の書き込みでは図4に示す処理が実行され、コマンド解釈に3m秒、消去処理に2m秒、データ記録処理に200μ秒+31×200μ秒かかり、合計11.4m秒となる。すなわち、16kBのデータを書き込んだ場合と1セクタのデータを書き込んだ場合でほぼ同じ時間がかかることになる。この例ではデータ転送時間等を考慮せず極端に性能差が出る場合について説明したが、実際のFlashメモリにおいても消去ブロック単位で書き込みを行った場合に書き込み時間が最短になる。
(FATファイルシステム)
半導体メモリカード110内に格納されたデータを管理するFATファイルシステムについて説明する。
図5にFATファイルシステムの構成を示す。ファイルシステムは半導体メモリカード110内の論理アドレス空間上に構築されている。FATファイルシステムでは、FATファイルシステムにより管理する領域全体に対する管理情報を格納する管理情報領域501が論理アドレス空間の先頭に存在し、引き続いてファイル内のデータ等を格納するデータ領域502が存在する。管理情報領域501は、マスターブートレコード・パーティションテーブル503、パーティションブートセクタ504、FAT505、506、ルートディレクトリエントリ507から構成される。
マスターブートレコード・パーティションテーブル503は、ファイルシステム管理領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。パーティションブートセクタ504は、1つのパーティション内の管理情報を格納する部分である。FAT505、506は、ファイルに含まれるデータの物理的な格納位置を示す部分である。ルートディレクトリエントリ507は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。また、FAT505、506は、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、通常、管理情報領域501内に2つの同じ情報を持つFAT505、506が存在し、二重化されている。
データ領域502は複数のクラスタに分割され管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイル等は、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、FAT505、506に格納されたリンク情報により管理されている。
図6、図7A〜7C、図8A〜8Cを用いてFATファイルシステムにしたがったファイルデータの書き込み例を説明する。図6はFATファイルシステムによるファイルデータの書き込みの処理手順を示した図である。図7A〜7C、図8A〜8Cはそれぞれ、書き込み処理前、処理後のディレクトリエントリ701、FAT505、506、データ領域502の一例を示した図である。
FATファイルシステムでは、ルートディレクトリエントリ507やデータ領域502の一部に、ファイル名やファイルサイズ、ファイル属性等の情報を格納したディレクトリエントリ701が格納されている。図7Aは、ディレクトリエントリ701の一例を示し、図7Bは、ディレクトリエントリ701に対応するFATの部分を示している。ディレクトリエントリ701には、ファイル名、属性、タイムスタンプ、開始クラスタ番号、ファイルサイズが含まれる。図7Aに示すディレクトリエントリは、ファイル名が”FILE1.TXT”であるファイルに関する情報を格納しており、このファイルに含まれるデータの先頭部分はクラスタ番号10のクラスタに格納されており、ファイルサイズは65000バイトである。また、図7Aでは1クラスタの大きさを16384バイトと仮定している。図7Bに示す”0xFFFF”はデータの終端を示し、図7Bから”FILE1.TXT”のデータは4クラスタに跨って格納されていることがわかる。
図6を用いて、ファイルデータの書き込み処理を説明する。ファイルデータ書き込み処理ではまず始めに書き込み対象ファイルのディレクトリエントリ701を読み込む(S601)。次に、読み込んだディレクトリエントリ701に格納された開始クラスタ番号を取得し、ファイルデータの先頭位置を確認する(S602)。次に、FAT505、506を読み込み、取得したファイルデータの先頭位置から順にFAT505、506上でリンクを辿り、書き込み位置のクラスタ番号を取得する(S603)。次に、データ書き込みに際し、ファイルに新たに空き領域を割り当てる必要があるか判定する(S604)。空き領域の割り当てが必要な場合、FAT505、506上で空き領域を検索し、1クラスタ分の空き領域をファイルの終端に割り当てる(S605)。空き領域の割り当てが不要な場合は、ステップS606に進む。
次に、現在参照しているデータ領域502のクラスタ内に書き込めるだけのデータを書き込む(S606)。次に、全データの書き込みが完了したか判定する(S607)。書き込むべきデータがまだ残っている場合、S604の処理に戻る。全データの書き込みが完了した場合、ディレクトリエントリ701内に格納されたファイルサイズやタイムスタンプ等を更新し、半導体メモリカード110に書き込む(S608)。最後にFAT505、506を半導体メモリカード110に書き込み、処理を完了する(S609)。
このファイルデータ書き込み処理により、図7A〜7Cに示された65000バイトのデータを持つ”FILE1.TXT”に1000バイトのデータを更に書き込んだ場合、図8A〜8Cに示すような66000バイトのデータを持つファイルに変化する。
このようにFATファイルシステムでは、ファイルデータを半導体メモリカード110に書き込むときには、ファイルデータをデータ領域502に書き込むと共に、ファイルシステム管理情報をも書き込む。ファイルシステム管理情報は、ファイルに関する情報を含むディレクトリエントリ701や、データ領域502の領域管理を行うFAT505、506等を含む。ファイルシステム管理情報はファイルデータが更新される度に半導体メモリカード110に記録する必要があることから、ファイルシステム管理情報を記録する領域は、ファイルデータを記録する領域に比べ更新頻度が高くなる。
また、ファイルデータが比較的大きな単位で半導体メモリカード110に書き込まれるのに比べ、ファイルシステム管理情報は数バイト程度の小さな単位で書き込まれる。一方、半導体メモリカード110に使用されるFlashメモリの最適な書き込み単位は、Flashメモリの大容量化に伴い、数10kB〜数100kBと大きくなりつつある。ファイルシステム管理情報のような数バイト程度のデータを、数10kB〜数100kBの大きなアクセス単位で書き込むと、無効な領域が発生し、アクセス速度が低下する。
そのため、本実施の形態では、図1に示すように、半導体メモリカード110は、ファイルシステム管理情報を格納する第1の半導体メモリ118と、ファイルデータを格納する第2の半導体メモリ119と、第1、第2の半導体メモリ118、119内の記録領域と論理アドレス空間の対応を管理するアドレス管理情報123とを備える。その構成において、半導体メモリカード110にアクセスするアクセス装置100は半導体メモリカード110に対するデータ書き込み時にデータの種別を指定し、半導体メモリカード110はその種別に応じてデータの書き込み先(第1の半導体メモリ118または第2の半導体メモリ119)を決定する。
以上の構成により、サイズの大きいファイルデータを、最適なアクセス単位が比較的大きい半導体メモリに格納し、サイズの小さいファイルシステム管理情報を、最適なアクセス単位が比較的小さい半導体メモリに格納することが可能になる。これにより、半導体メモリカード110内の記録領域に無効な領域を発生させず、半導体メモリカード110に対する高速アクセスを実現することが可能となる。また、更新頻繁が小さいファイルデータを寿命が短い半導体メモリに格納し、更新頻繁が大きいファイルシステム管理情報を寿命が長い半導体メモリに格納することが可能になるため、半導体メモリカード110の寿命を延ばすことも可能となる。
(半導体メモリカード及びアクセス装置の動作)
本実施の形態における半導体メモリカード110及びアクセス装置100の動作について具体的に説明する。
本実施の形態では、アクセス装置100が半導体メモリカード110に書き込みを行う際、書き込みコマンドの引数でデータ種別を示す情報を指定する。書き込みコマンド(Writeコマンド)の形式は以下のとおりである。
Write(buf,size,addr,data_kind)
buf:書き込みデータを格納するバッファ、
size:書き込みサイズ、
addr:書き込みアドレス、
data_kind:データ種別
”buf”、”size”、”addr”の各引数は従来の半導体メモリカードにおける書き込みコマンドと同様の引数である。
本実施の形態では、特に、引数に”data_kind”を設けている点に特徴がある。”data_kind”には、書き込みコマンドに渡すデータの種別として、“ファイルデータ”あるいは“ファイルシステム管理情報”のいずれかを指定する。データ種別は、アクセス装置100上で動作しているファイルシステム制御機能が管理し、半導体メモリカード110に指定する。本実施の形態では、このデータ種別に基づいて半導体メモリカード110がデータ書き込み先の半導体メモリを決定する。
(データ書き込み処理)
図9を用いて、本実施の形態における半導体メモリカード110におけるデータ書き込み処理を説明する。
図9において、まず、半導体メモリカード110はアクセス装置100からコマンドを受信する(S901)。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S902)。不正コマンドの場合、アクセス装置100にエラーを通知して処理を終了する(S903)。認識可能なコマンドの場合、そのコマンドがWriteコマンドであるか否かを判定する(S904)。Writeコマンド以外の場合、各コマンドに対応した他の処理を実施する(S905)。Writeコマンドの場合、コマンドと共に渡された引数が正しいか否か判定する(S906)。不正なアドレスが指定された場合等、Write処理を実施できない引数が指定されたと判断した場合、アクセス装置100にエラーを通知して処理を終了する(S907)。
引数が正しい場合、引数の”data_kind”を参照して、ファイル種別が“ファイルデータ”であるか“ファイルシステム管理情報”であるかを判定する(S908)。
data_kindが“ファイルデータ”の場合、第2の半導体メモリ119内にデータを書き込む(S909)。この処理の詳細は後述する。続いて、書き込み処理が成功したか否か判定する(S910)。書き込み処理が失敗した場合、アクセス装置100にエラーを通知して処理を終了する(S911)。書き込み処理が成功した場合、アクセス装置100に書き込み終了を通知し処理を終了する(S915)。
data_kindが“ファイルシステム管理情報”の場合、第1の半導体メモリ118内にデータを書き込む(S912)。本処理はステップS909の処理とほぼ同様の処理であり、その詳細は後述する。続いて、書き込み処理が成功したか否か判定する(S913)。書き込み処理が失敗した場合、アクセス装置100にエラーを通知して処理を終了する(S914)。書き込み処理が成功した場合、アクセス装置100に書き込み終了を通知し処理を終了する(S915)。
次に、図10、11を用いて、上記ステップS909、S912における第2の半導体メモリ119、第1の半導体メモリ118に対する書き込み処理を説明する。最初に、アドレス管理情報123について説明する。図10に、半導体メモリカード110内のアドレス管理情報123の構成を示す。
アドレス管理情報123は、半導体メモリカード110内の物理的な記録領域(ブロック)の位置を示す物理アドレスと、アクセス装置100が使用する論理的な記録領域(ブロック)の位置を示す論理アドレスとの対応関係を示す論物変換テーブル125と、各記録領域(ブロック)の使用状態を管理するエントリテーブル127とを含む。なお、アドレスが割り当てられる記録領域の単位(ブロック)は、Flashメモリにおける消去ブロックとしている。
図10のアドレス管理情報123は、論理アドレスが0から(N−1)まで存在し、合計N個のブロックを管理している。また、論理アドレスは第2の半導体メモリ119用のアドレスとして0から(M−1)が、第1の半導体メモリ118用のアドレスとしてMから(N−1)が割り当てられている。すなわち、Nブロックの論理アドレス空間の内、Mブロックは第2の半導体メモリ119内に存在、(N−M)ブロックは第1の半導体メモリ118内に存在する。
論物変換テーブル125は半導体メモリカード110内に存在する論理ブロックの数に等しい数のエントリから構成され、各エントリは論理アドレスと対応付けられた物理アドレスを格納している。図10の例では、論理アドレス0から3までの領域に、物理アドレス0から3までの領域がそれぞれ対応付けられており、更に論理アドレス4、5の領域に、物理アドレスM、(M+3)の領域が対応付けられている。
エントリテーブル127は半導体メモリカード110内に存在する物理ブロックの数に等しい数のエントリから構成され、各エントリは物理ブロックの使用状態を示すフラグを格納している。フラグの値において“00”は有効ブロックを、“11”は無効ブロックを、“10”は不良ブロックをそれぞれ示す。すなわち、物理アドレス0から3、M、(M+3)の領域は有効ブロックであり、それ以外の領域は無効ブロックである。有効ブロックは有効なデータが書き込まれているブロックであり、無効ブロックは有効なデータが書き込まれていないブロックである。
図11は、図9のステップS909、S912の詳細な処理を示した図である。図11において、まず、Writeコマンドの引数に基づいてデータ種別を判断する(S1001)。そのデータ種別に応じて、半導体メモリカード110内のアドレス管理情報123を参照して無効ブロックの取得先を決定する。
書き込みデータの種別が“ファイルデータ”の場合、ファイルデータ格納領域122を有する第2の半導体メモリ119からデータ書き込み先の無効ブロックを特定する(S1002)。このため、アドレス管理情報123を参照し、物理アドレス0から(M−1)の領域に存在する無効ブロックから1ブロックを特定する。
一方、書き込みデータの種別が“ファイルシステム管理情報”の場合、ファイルシステム管理情報格納領域121を有する第1の半導体メモリ118からデータ書き込み先の無効ブロックを特定する(S1003)。このため、アドレス管理情報123を参照し、物理アドレスMから(N−1)の領域に存在する無効ブロックから1ブロックを特定する。
次に、データ書き込みに先立ち、特定した無効ブロックに格納されているデータを消去し(S1004)、その無効ブロックにデータを書き込む(S1005)。次に書き込みが成功したか否かを判定する(S1006)。
書き込みが失敗した場合、エラー終了する(S1007)。書き込みが成功した場合、新データを格納したブロックのフラグを”有効ブロック(00)”とし、旧データを格納していたブロックのフラグを”無効ブロック(11)”とするように、エントリテーブル127を更新する(S1008)。なお、旧データとは、Writeコマンドに指定された論理アドレスに対応する物理アドレスのブロックが有効ブロックであった場合に、その有効ブロックに格納されているデータのことである。
最後に、書き込み対象の論理アドレス(Writeコマンドの引数で指定されたアドレス)に対して新データを格納した物理アドレスが対応付けられるよう、論物変換テーブル125を更新する(S1007)。
更に、図11において、第1、第2の半導体メモリ118、119でブロックサイズが異なる場合は、論物変換テーブル125上では、小さい方のブロックサイズでアドレス管理を行い、ブロックサイズが大きな半導体メモリにデータを格納するときは、論物変換テーブル125上で連続領域を確保するように管理を行うことで、本実施の形態で説明した上記の方法を適用することが可能である。
以上説明したように、本実施の形態では、アクセス装置100がデータ書き込み時にデータを半導体メモリカード110に送信すると共に、データ種別として“ファイルデータ”及び“ファイルシステム管理情報”のいずれかを指定する。半導体メモリカード110は、書き込みデータの種別が“ファイルデータ”であれば、アクセス単位が大きく、更新寿命が短い第2の半導体メモリ119に格納し、一方、書き込みデータの種別が“ファイルシステム管理情報”であれば、アクセス単位が小さく、更新寿命が長い第1の半導体メモリ118に格納する。これにより、半導体メモリカード110に対する高速アクセスを実現でき、また、その寿命を延ばすことも可能となる。
なお、本実施の形態では、アクセス装置100が書き込み時にデータ種別を指定し、半導体メモリカード110内で書き込み先を決定する点に特徴があり、図11で説明した書き込み処理は一例である。
すなわち、書き込みに先立ち消去処理が不要な半導体メモリを使用した場合は消去処理を省略しても良い。消去のタイミングはデータ書き込み直前ではなくデータ書き込み直後でも良いし、任意のタイミングで一括消去しても良い。
また、アドレス管理情報として、論理ブロック数と物理ブロック数が同じ場合について説明を行ったが、代替領域を用意する等の目的により、物理ブロック数が多い半導体メモリカードに対しても、本発明の思想は適用できる。
また、アドレス管理情報123を第1の半導体メモリ118及び第2の半導体メモリ119に含め、第3の半導体メモリ120を削除した構成としても良い。
また、第1及び第2の半導体メモリは、最適なアクセス単位及び寿命の少なくとも一方が異なれば、FlashROM、EEPROM、FeRAM、MRAM(Magnetoresistive RAM:磁気抵抗RAM)等のどの不揮発性メモリを使用しても良い。
また、本実施の形態ではファイルシステムとしてFATファイルシステムを一例として説明したが、UDFファイルシステム、NTFSファイルシステム等、他のファイルシステムを用いても良い。
実施の形態2
実施の形態1の半導体メモリカードは、最適なアクセス単位の異なる2つの半導体メモリを備え、ファイルデータとファイルシステム管理情報とをそれぞれ別々の半導体メモリに格納するようにしていた。これに対し、本実施形態の半導体メモリカードは1つの半導体メモリの記録領域を2つの領域に分割し、各領域のアクセス単位(管理方法)を異ならせ、ファイルデータとファイルシステム管理情報とをそれぞれ別々の領域に格納するようにしている。このように構成しても実施の形態1と同様にアクセス速度の高速化が図れる。
(半導体メモリカード及びアクセス装置の構成)
図12に本発実施形態における半導体メモリカード及びアクセス装置の構成を示す。なお、図12において、図1に示す構成要素と同じ構成要素は、実施の形態1のものと同様の動作を行い、同様の機能を実現する。
アクセス装置100bは、CPU101、RAM102、スロット103、ROM104bを含む。ROM104bは、アプリケーションプログラム105、ファイルシステム制御プログラム106、アクセス制御プログラム107、FS管理情報通知プログラム108を含む。
FS管理情報通知プログラム108は、ファイルシステム管理情報の位置や大きさに関する情報を半導体メモリカード110bに通知するFS管理情報通知機能(FS管理情報通知手段)を提供する。これにより、半導体メモリカード110bは予めファイルシステム管理情報の位置や大きさを把握することができ、アクセスコマンドによりアクセス装置100bからアクセス命令が発行された際に、アドレスに基づきデータの種別を判別し、データ種別に応じて半導体メモリカード110b内部の処理を変更することが可能となる。
図12に示すように、半導体メモリカード110bは、ホストインターフェース(I/F)部111、CPU112、RAM113、ROM114、メモリコントローラ25、FS管理情報格納レジスタ26及び不揮発性メモリ27を含む。
FS管理情報格納レジスタ26は、アクセス装置100bのFS管理情報通知機能により通知されたファイルシステム管理情報の位置や大きさに関する情報を格納する手段である。
不揮発性メモリ27は、主にファイルシステム管理情報を格納する第1の記録領域271と、ファイルデータを格納する第2の記録領域272と、アドレス管理情報を格納するアドレス管理情報格納領域273とを含む。なお、第1の記録領域271と第2の記録領域272とは、データ管理方法(データ管理単位)が異なる(詳細は後述)。
メモリコントローラ25は、不揮発性メモリ27に格納されたアドレス管理情報に基づき記録領域のアドレス管理を行うアドレス管理部251と、不揮発性メモリ27に対するアクセス制御を行う不揮発性メモリアクセス部252とを含む。
本実施形態では、アクセス装置100bから半導体メモリカード110bに予めファイルシステム管理情報の位置や大きさを通知しておき、アクセスコマンドによりアクセス装置100bから半導体メモリカード110bに対するアクセス命令が発生した際にデータの種別を判別し、データ種別に応じて半導体メモリカード内のデータ書き込み処理を変更することにより、アクセス速度の低下を防止する。
(不揮発性メモリの内部構成)
図13は本実施形態の半導体メモリカード110bにおける不揮発性メモリ27のアドレス空間の一例を示した図である。同図に示すように、不揮発性メモリ27は、512バイトの比較的小さな単位でデータのアクセスを管理する第1の記録領域271と、16kBの比較的大きな単位でデータのアクセスを管理する第2の記録領域272と、アドレス管理情報格を格納するアドレス管理情報格納領域273とを有する。本例では、第1の記録領域271の大きさは160kB、第2の記録領域272の大きさは64800kB、アドレス管理情報格納領域273の大きさは576kBとしている。
不揮発性メモリ27は、上書きする場合には、データ書き込み前に消去ブロック単位でのデータ消去が必要であるという特性を有し、一部の消去ブロックが物理的に破壊され記録不能となった場合に代替するための領域である代替領域を含んでいる。なお、消去ブロックの大きさは16kBである。
第1の記録領域271と第2の記録領域272とはそれぞれ管理方法が異なる。第1の記録領域271では、512バイト(=1セクタ)単位でデータの読み出し/書き込みが実行されるのに対し、第2の記録領域272では、16kB(=32セクタ=1消去ブロック)単位でデータの読み出し/書き込みが実行される。すなわち、第1の記録領域271は、データサイズが16kBより小さいデータの書き込みに適しており、第2の記録領域272は、データサイズが16kBより大きいデータの書き込みに適している。
半導体メモリカード110bは、予めアクセス装置100bから取得したファイルシステム管理情報の位置や大きさに関する情報をもとに、書き込みデータの種別を判別し、書き込みデータがファイルシステム管理情報であれば第1の記録領域271へ記録し、書き込みデータがファイルデータであれば第2の記録領域272へ記録する。
(アクセス管理情報)
図14は、本実施形態の半導体メモリカード110bにおけるアドレス管理情報の一例を示した図である。アドレス管理情報は、アクセス装置100bが認識する論理アドレスと半導体メモリカード110b内の不揮発性メモリ27上の物理的なアドレス空間を表す物理アドレスとを変換する論物変換テーブル51と、不揮発性メモリ27上の各物理領域の状態を示すリンクテーブル53とからなる。
論物変換テーブル51は、論理アドレス空間に存在する全アドレスと同数の要素を含むテーブルであり、各要素には対応する物理アドレスの値が格納されている。図14では、論理アドレスに物理アドレスが割り当てられていない状態を“−”で表している。図14の例では、論理アドレス空間の0番地から127番地までの領域がそれぞれ物理アドレス空間の320番地から447番地に割り当てられており、それ以外の領域は未割り当ての状態となっている。
リンクテーブル53は、第1の記録領域用の部分と、第2の記録領域用の部分とに分割して管理されている。図14の例では、物理アドレス空間の0番地から319番地までの領域が第1の記録領域用の部分であり、320番地以降の領域が第2の記録領域用の部分である。リンクテーブル53において、“00”は、既に論理アドレスに割り当てられておりデータ格納に使用されている有効ブロックを、“11”は、論理アドレスに割り当てられていない、データ格納に使用可能な消去済みブロックを、“10”は、論理アドレスに割り当てられていない未消去ブロックでありデータを消去した後データ格納が可能となる無効ブロックを、それぞれ表している。
以上のように構成されるアクセス装置100b及び半導体メモリカード110bの動作を説明する。
(アクセス装置の動作)
アクセス装置100bの書き込み動作について説明する。半導体メモリカード110bにファイルデータを記録する場合、ファイルデータとともに、半導体メモリカード110b内の領域割り当て状態や、ファイル名、ファイルサイズ等のファイルシステム管理情報を記録する必要がある。FATファイルシステムの場合、ファイルシステム管理情報は、FAT1、FAT2及びディレクトリエントリに相当する。すなわち、FATファイルシステムの場合、図15Aに示すようにデータ、FAT1、FAT2、ディレクトリエントリ(DIR)の順で半導体メモリカード110bに記録し、これを一定周期で繰り返すことにより、ファイルデータ全体が記録される。
図15Bは、図15Aのデータシーケンスに対してアクセス装置100bが発行するコマンドシーケンスを示した図である。図15Bのコマンドシーケンスに示すように、本実施形態では、半導体メモリカード110bへの書き込みコマンド発行前に、ファイルシステム管理情報の位置、大きさを設定する”SetFSInfoAddr”コマンドが発行される。ここで、”SetFSInfoAddr”コマンドについて説明する。
”SetFSInfoAddr”コマンドは、アクセス装置100bが、半導体メモリカード110b内の不揮発性メモリ27においてファイルシステム管理情報の位置(論理アドレス)と大きさを設定するためのコマンドである。このコマンドにより、半導体メモリカード110bはファイルシステム管理情報を格納する領域を認識できる。その形式は次のとおりである。
SetFSInfoAddr(addr、size)
addr:開始位置(論理アドレス)
size:サイズ(セクタ数)
図15Bの例では、最初の3つのコマンドにより、論理アドレス空間32番地から1セクタ分の領域がFAT1の領域として設定され、論理アドレス空間34番地から1セクタ分の領域がFAT2の領域として設定され、論理アドレス空間64番地から1セクタ分の領域がディレクトリエントリの領域として設定される。このように、アクセス装置100bがデータ書き込み前にSetFSInfoAddrコマンドを発行して、ファイルシステム管理情報の位置を事前に設定する。なお、SetFSInfoAddrコマンドは、半導体メモリカード110bがアクセス装置100bに挿入されたときや、アクセス装置100bの電源投入時等に一度発行されればよく、データ書き込み処理を行う度に発行される必要はない。
<SetFSInfoAddrコマンド処理>
図16を用いて、半導体メモリカード110bにおけるSetFSInfoAddrコマンドの処理手順を説明する。
半導体メモリカード110bはアクセス装置100bのFS管理情報通知機能により発行されたコマンドを受信すると(S1601)、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S1602)。不正コマンドであった場合、アクセス装置にエラーを通知し(S1603)、処理を終了する。
不正コマンドでなかった場合、受信したコマンドがSetFSInfoAddrコマンドであるか否か判定する(S1604)。SetFSInfoAddrコマンドではなかった場合、そのコマンドに対応した処理を実施し(S1605)、処理を終了する。
SetFSInfoAddrコマンドであった場合、コマンドと共に渡された引数が正しいか否か判定する(S1606)。SetFSInfoAddrコマンドの引数は、ファイルシステム管理情報を格納している論理アドレスを示す“addr”と、ファイルシステム管理情報の大きさを示す“size”を含む。addrに不正なアドレスを指定された場合等、引数が誤っていると判定した場合、アクセス装置にエラーを通知し(S1607)、処理を終了する。
引数が正しいと判定した場合、addrで指定された論理アドレスが第2の記録領域272に存在するか判定する(S1608)。
第2の記録領域272に存在しない場合、FS管理情報格納レジスタ26に、指定された論理アドレス、大きさを格納し(S1612)、処理を終了する。
第2の記録領域272に存在する場合、第1の記録領域271内で1消去ブロック分の空き領域を確保し、指定された論理アドレスを含む1消去ブロック分のデータを、第2領域272から確保した空き領域にコピーする(S1609)。
その後、指定された論理アドレスを含む1消去ブロック分のデータを、第2の記録領域272から消去する(S1610)。アドレス管理情報を更新する(S1611)。そして、FS管理情報格納レジスタ26に、指定された論理アドレス、大きさを格納し(S1612)、処理を終了する。
<Writeコマンド処理>
図17を用いて、半導体メモリカード110bにおけるWriteコマンドの処理手順を説明する。
半導体メモリカード110bはアクセス装置100bのアクセス制御機能によりコマンドを受信すると(S1701)、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する(S1702)。不正コマンドであった場合、アクセス装置にエラーを通知し(S1703)、処理を終了する。
不正コマンドでなかった場合、受信したコマンドがWriteコマンドであるか否か判定する(S1704)。Writeコマンドではなかった場合、各コマンドに対応した処理を実施し(S1705)、処理を終了する。
Writeコマンドでであった場合、コマンドとともに渡された引数が正しいか否か判定する(S1706)。Writeコマンドの引数は、データ記録先の論理アドレスを示す“addr”と、データの大きさを示す“size”を含む。addrに不正なアドレスを指定された場合等、引数が誤っていると判定した場合、アクセス装置にエラーを通知し(S1707)、処理を終了する。
引数が正しいと判定した場合、FS管理情報格納レジスタ26に格納されているファイルシステム管理情報の位置(アドレス)や大きさに関する情報を取得する(S1708)。
FS管理情報格納レジスタ26から取得した情報を参照し、引数addrで指定された論理アドレスが、FS管理情報格納レジスタ26に格納されているアドレスであるか否かを判定する(S1709)。
引数addrで指定された論理アドレスがFS管理情報格納レジスタ26に格納されているアドレスであれば、書き込みデータはファイルシステム管理情報であると判断される。この場合は、第1の記録領域271に対するデータ書き込み処理を実施し、さらにアドレス管理情報(論物変換テーブル51、リンクテーブル53)を更新し(S1710)、処理を終了する。
一方、引数addrで指定された論理アドレスがFS管理情報格納レジスタ26に格納されているアドレスでないときは、書き込みデータはファイルデータであると判断される。この場合は、第2の記録領域272に対するデータ書き込み処理を実施し、さらにアドレス管理情報(論物変換テーブル51、リンクテーブル53)を更新し(S1711)、処理を終了する。
以上のように、本実施形態では、SetFSInfoAddrコマンドによりファイルシステム管理情報の格納位置や大きさに関する情報をアクセス装置100bから半導体メモリカード110bに事前に通知した後、Writeコマンドにより、ファイルシステム管理情報とファイルデータを半導体メモリカード110bに書き込む。これにより、Writeコマンドが発行された際に、半導体メモリカード110b内で、引数で指定される論理アドレスに基づき書き込みデータの種別を判定することが可能となり、データ種別に応じて書き込み方法を変更でき、ファイルシステム管理情報、ファイルデータの双方を高速に書き込むことが可能となる。
(アドレス管理情報の更新の具体例)
次に、ファイルデータの記録にともなう、アドレス管理情報(論物変換テーブル51、リンクテーブル53)の更新の様子を具体的に説明する。なお、以下では、図14に示すアドレス管理情報の状態を初期状態として、アクセス装置100bが図15Bに示すコマンドシーケンスに基づいて半導体メモリカード110bにファイルデータを記録した場合のアドレス管理情報の更新について説明する。
<Seq.1〜3:ファイルシステム管理情報格納領域の設定>
図15Bの最初の3つのSetFSInfoAddrコマンドにより、不揮発性メモリ27内のファイルシステム管理情報(FAT1、FAT2、ディレクトリエントリ(DIR))の格納位置(領域)が設定される。SetFSInfoAddrコマンドの引数において、FAT1、FAT2、ディレクトリエントリ(DIR)の論理アドレスとして、それぞれ論理アドレス空間の32番地、34番地、64番地が指定されている。
図14の論物変換テーブル51を参照すると、指定された3つの論理アドレス(32番地、34番地、64番地)にはすでに物理アドレス(352番地、354番地、384番地)が割り当てられている。リンクテーブル53を参照すると、これらの物理アドレスはそれぞれファイルデータを格納する第2の記録領域272内にある。そこで、3つの物理アドレス(352番地、354番地、384番地)のそれぞれを含む1消去ブロック分のデータを、ファイルデータを格納する第2の記録領域272から、ファイルシステム管理情報を格納する第1の記録領域271にコピーする。
図14から、論理アドレス32番地と34番地を含む1消去ブロックは物理アドレス352番地から383番地であり、論理アドレス64番地を含む1消去ブロックは物理アドレス384番地から415番地である。リンクテーブル53を参照し、物理アドレス0番地〜31番地及び32番地〜63番地までは、データ消去済みの無効ブロックであることが認識できる。よって、半導体メモリカード110bは、0番地〜31番地及び32番地〜63番地の物理アドレス空間に、352番地〜383番地及び384番地〜415番地までの物理アドレス空間のデータをコピーする。そして、物理アドレス352番地〜383番地及び384番地〜415番地までのデータを消去する。
上記の処理にともない論物変換テーブル51及びリンクテーブル53が更新される。以上の処理が完了した時点の論物変換テーブル51及びリンクテーブル53を図18に示す。同図においてハッチングが施された箇所が今回更新された箇所である。論物変換テーブル51に示すように、論理アドレス空間の32番地から95番地までには、第1の記録領域271用の物理アドレス空間の0番地から63番地が割り当てられている。また、リンクテーブル53に示すように、新たに割り当てられた物理アドレス空間0番地から63番地は有効ブロック(”00”)となり、データが消去された物理アドレス空間352番地から415番地は無効ブロック(”11”)となる。
<Seq.4:ファイルデータの書き込み>
Seq.4では、論理アドレス128番地から、16kB(=32セクタ)のデータを書き込む。半導体メモリカード110bはFS管理情報格納レジスタ26を参照し、Writeコマンドで指定された論理アドレスがFS管理情報格納レジスタ26内に格納されたアドレスであるか否かを判定する。本例では、論理アドレス128番地は、FS管理情報格納レジスタ26に格納されていないため、半導体メモリカード110bは書き込みデータの種別を”ファイルデータ”であると判定し、第2の記録領域272内への書き込み処理を実行する。
具体的には、半導体メモリカード110bは、図18のリンクテーブル53を参照し、第2の記録領域272用の物理アドレス352番地から383番地までがデータ消去済みの無効ブロックであることを認識し、この物理アドレス空間(352番地〜383番地)を論理アドレス空間(128番地を含む消去ブロック)に割り当て、実際にデータを第2の記録領域272に書き込む。この処理が完了した時点でアドレス管理情報は図19のように変更される。同図に示すように、論物変換テーブル51では、論理アドレス空間(128番地〜159番地)が物理アドレス空間(352番地〜383番地)に割り当てられ、それとともに、リンクテーブル53においてデータが記録された物理アドレス空間(352番地〜383番地)が有効ブロック(”00”)に変更されている。
<Seq.5〜7:ファイルシステム管理情報の書き込み>
Seq.5〜7では、FAT1、FAT2、ディレクトリエントリ(DIR)のファイルシステム管理情報を、それぞれ論理アドレス32番地、34番地、64番地に書き込む。
半導体メモリカード110bはFS管理情報格納レジスタ26を参照し、Writeコマンドで指定された論理アドレスが、FS管理情報格納レジスタ26内に存在するか否かを判定する。本例では、論理アドレス32番地、34番地、64番地はいずれもFS管理情報格納レジスタ26内に存在するため、半導体メモリカード110bは書き込みデータの種別を”ファイルシステム管理情報”であると判定し、第1の記録領域271内への書き込み処理を実行する。
具体的には、半導体メモリカード110bは、図19の論物変換テーブル51を参照し、指定された論理アドレス(32番地、34番地、64番地)には既に物理アドレス(0番地、2番地、32番地)が割り当てられていることを認識する。次に、半導体メモリカード110bはリンクテーブル53を参照し、第1の記録領域271用の物理アドレス64番地から66番地までがデータ消去済みの無効ブロックであることを認識し、この物理アドレス空間(64番地〜66番地)を論理アドレス空間(32番地、34番地、64番地)に割り当て、実際にデータを第1の記録領域271に書き込む。そして、以前にデータを格納していた物理領域(0番地、2番地、32番地)を未消去の無効ブロック(”10”)の状態として管理する。以上の処理が完了した時点のアドレス管理情報を図20に示す。
<Seq.8:ファイルデータの書き込み>
Seq.8では、論理アドレス160番地から、16kB(=32セクタ)のデータを書き込む。半導体メモリカード110bはFS管理情報格納レジスタ26を参照し、Writeコマンドで指定された論理アドレスがFS管理情報格納レジスタ26内に含まれるか否かを判定する。本例では、論理アドレス160番地は、FS管理情報格納レジスタ26内に存在しないため、半導体メモリカード110bは書き込みデータの種別を”ファイルデータ”であると判定し、第2の記録領域272内への書き込み処理を実行する。
具体的には、半導体メモリカード110bは、図20のリンクテーブルを参照し、第2の記録領域用の物理アドレス384番地から415番地までがデータ消去済みの無効ブロックであることを認識し、この物理アドレス空間(384番地〜415番地)を論理アドレス空間(160番地を含む消去ブロック)に割り当て、実際にデータを第2の記録領域272に書き込む。この処理が完了した時点でアドレス管理情報は図21のように変更される。
以上のようにファイルデータと、FAT1、FAT2、ディレクトリエントリ(DIR)を含むファイルシステム管理情報との書き込みを繰り返した場合においても、図21に示すように、1つの消去ブロックにファイルシステム管理情報とファイルデータが混在することはないため、一度に記録されるデータサイズが異なる種々のデータが1消去ブロックに混在することによるアクセス速度の低下は発生しない。
以上のように、本実施形態の半導体メモリカードは、ファイルシステム管理情報の位置や大きさをアクセス装置から取得し保持するFS管理情報格納レジスタを有し、アクセス装置から書き込みコマンドが発行された際にレジスタに格納された値を参照することで、指定されたアドレスからデータ種別を判定する。更にデータ種別の判定結果により書き込み方法を変更することにより、高速に半導体メモリカードにデータを書き込むことが可能となる。
なお、本実施の形態ではFATファイルシステムを例に取り説明したが、UDF等の他のファイルシステムを用いても良い。また、SetFSInfoAddrコマンド、Writeコマンドの引数は一例であり、別の表現形式を用いても良いし、本実施の形態で説明した以外の引数を追加してもよい。
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。
本発明に関わる半導体メモリカード及びアクセス装置は、アクセス装置が半導体メモリカードに書き込むデータの種別を指定し、半導体メモリカード内でデータの種別に応じてデータ格納先を変更することにより、ファイルシステム管理情報の更新による半導体メモリカードの寿命低下を防止することが可能となる。このような半導体メモリカードは、デジタルAV機器や携帯電話端末、PC等をアクセス装置とした場合の情報記録媒体として利用することができる。
本発明の実施の形態1における半導体メモリカード及びアクセス装置の構成を示した図である。 Flashメモリにおける消去ブロックとセクタとの関係の一例を示した図である。 実施の形態1における半導体メモリカードの半導体メモリに対する、消去ブロックの倍数長のデータ書き込み処理を示したフローチャートである。 実施の形態1における半導体メモリカードの半導体メモリに対する、1セクタ分のデータ書き込み処理を示したフローチャートである。 FATファイルシステムの構成を示した図である。 FATファイルシステムにしたがったデータ書き込み処理を示したフローチャートである。 FATファイルシステムによるデータ書き込み前のディレクトリエントリの状態を説明した図である。 FATファイルシステムによるデータ書き込み前のFATの状態を説明した図である。 FATファイルシステムによるデータ書き込み前のデータ領域の状態を説明した図である。 FATファイルシステムによるデータ書き込み後のディレクトリエントリの状態を説明した図である。 FATファイルシステムによるデータ書き込み後のFATの状態を説明した図である。 FATファイルシステムによるデータ書き込み後のデータ領域の状態を説明した図である。 実施の形態1における半導体メモリカード内部の書き込み処理を示したフローチャートである。 実施の形態1におけるアドレス管理情報の例を示した図である。 半導体メモリカード内の半導体メモリに対する書き込み処理の詳細を示したフローチャートである。 本発明の実施の形態2における半導体メモリカード及びアクセス装置の構成を示した図である。 実施の形態2の半導体メモリカード内の不揮発性メモリのアドレス空間の一例を示した図である。 実施の形態2におけるアドレス管理情報の一例を示した図である。 半導体メモリカードへの書き込みデータのシーケンスの一例を示した図である。 図15Aのデータシーケンスに対してアクセス装置100bが発行するコマンドシーケンスを示した図である。 半導体メモリカードにおけるSetFSInfoAddrコマンドの処理手順のフローチャートである。 半導体メモリカードにおけるWriteコマンドの処理手順のフローチャートである。 実施の形態2における半導体メモリカードへのSetFSInfoAddrコマンド発行後のアドレス管理情報の状態を示した図である。 実施の形態2における半導体メモリカードへのデータ書き込み後のアドレス管理情報の状態を示した図である。 実施の形態2における半導体メモリカードへのファイルシステム管理情報書き込み後のアドレス管理情報の状態を示した図である。 実施の形態2における半導体メモリカードへのデータ書き込み後のアドレス管理情報の状態を示した図である。
符号の説明
26 FS管理情報格納レジスタ
51 論物変換テーブル
53 リンクテーブル
100,100b アクセス装置
101,112 CPU
102,113 RAM
103 スロット
104,114 ROM
105 アプリケーションプログラム
106 ファイルシステム制御プログラム
107 アクセス制御プログラム
108 FS管理情報通知プログラム
110,110b 半導体メモリカード
111 ホストインターフェース部
25,115,116,117 メモリコントローラ
27,118,119,120 半導体メモリ
121 ファイルシステム管理情報格納領域
122 ファイルデータ格納領域
123, アドレス管理情報

Claims (23)

  1. ファイルシステムにより格納データが管理され、外部から受信したコマンドにしたがいデータの書き込み、読み出しが可能な情報記録媒体であって、
    外部からコマンド及びデータを受信する受信手段と、
    第1のアクセス単位で、データの書き込みが管理される第1の記録領域と、
    第1のアクセス単位よりも大きい第2のアクセス単位で、データの書き込みが管理される第2の記録領域と、
    受信したコマンドにしたがい、前記第1または第2の記録領域に対するアクセスを制御する制御手段とを備え、
    前記制御手段は、書き込みコマンドを受信したときに、前記受信データの種別に応じて第1及び第2の記録領域のいずれか一方を選択し、その選択した領域に受信データを書き込むよう制御を行う情報記録媒体。
  2. 前記第1の記録領域はファイルシステムにおいてファイルの管理に必要な情報であるフィルシステム管理情報を格納し、前記第2の記録領域はファイルシステムにより管理されるファイルの実体データを格納する請求項1に記載の情報記録媒体。
  3. 前記データ種別は、実体データを示す種別と、ファイルシステム管理情報を示す種別とを含む請求項2記載の情報記録媒体。
  4. 前記第1及び第2の記憶領域の物理アドレスと、論理アドレスとの対応を管理するアドレス管理情報を格納する領域をさらに備えた請求項1記載の情報記録媒体。
  5. 前記アドレス管理情報はデータの書き込み先に関する情報を含む請求項4に記載の情報記録媒体。
  6. 前記データ種別はコマンドの引数において指定され、前記制御手段は該引数の値に基づいてデータ種別を判断する請求項1記載の情報記録媒体。
  7. 前記第1の記録領域と第2の記録領域とをそれぞれ異なる記憶素子上に設けた請求項1記載の情報記録媒体。
  8. 前記異なる記憶素子は互いに書換え寿命の特性が異なる請求項7項に記載の情報記録媒体。
  9. 前記制御手段は、前記データ種別をデータの書き込み位置に基づいて判断する請求項1記載の情報記録媒体。
  10. 前記受信手段は、ファイルシステムにおいてファイルを管理するために必要な情報であるファイルシステム管理情報の位置や大きさに関する情報を外部より受信し、
    前記情報記録媒体は、その受信したファイルシステム管理情報の位置や大きさに関する情報を保持するFS管理情報レジスタをさらに備え、
    前記制御手段は、書き込みコマンドを受信したときに、前記FS管理情報レジスタの値に基づきデータ種別を判断する
    請求項9記載の情報記録媒体。
  11. ファイルシステム管理情報の位置や大きさに関する情報を受信した際に、受信したファイルシステム管理情報の位置が前記第2の記録領域に含まれるか否かを判定し、含まれる場合は前記受信した位置を含む所定サイズのデータを、前記第2の記録領域から前記第1の記録領域に移動させる請求項10記載の情報記録媒体。
  12. 前記第1及び第2の記録領域をそれぞれ所定のデータ消去単位を有する不揮発性の記憶素子上に設けた場合に、前記所定サイズは該データ消去単位の大きな方の大きさと同じである請求項11に記載の情報記録媒体。
  13. 前記制御手段は、書き込みコマンドを受信した際に、前記FS管理情報レジスタの値と、書き込みコマンドで指定された書き込み先アドレスとを比較することによりデータ種別を判断する請求項10に記載の情報記録媒体。
  14. 前記第1及び第2の記録領域は同一の記憶素子上に設けられた請求項1に記載の情報記録媒体。
  15. 請求項1記載の情報記録媒体にアクセスするアクセス装置であって、
    前記情報記録媒体を装着するスロットと、
    該スロットに装着された情報記録媒体に対する、データの書き込み、読み出しを制御するアクセス制御手段と、
    前記スロットに装着された情報記録媒体上に構築されたファイルシステムを制御し、前記情報記録媒体に書き込みを行う際に、データとともにデータの種別に関する情報を前記情報記録媒体に送信するファイルシステム制御手段とを備えたアクセス装置。
  16. 前記ファイルシステム制御手段は、前記データ種別として、実体データを示す種別と、ファイルシステム管理情報を示す種別のいずれかを指定する請求項15記載のアクセス装置。
  17. 請求項10記載の情報記録媒体にアクセスするアクセス装置であって、
    前記ファイルシステム管理情報の位置や大きさに関する情報を情報記録媒体に通知するFS管理情報通知手段を有し、
    該FS管理情報通知手段は、前記ファイルシステム管理情報の書き込みに先立ち、ファイルシステム管理情報の位置や大きさに関する情報を前記情報記録媒体に通知するアクセス装置。
  18. 格納データをファイルシステムにより管理する情報記録媒体の制御方法であって、
    第1の記録領域に対して、第1のアクセス単位でデータの書き込みを管理し、
    第2の記録領域に対して、第1のアクセス単位よりも大きい第2のアクセス単位でデータの書き込みを管理し、
    書き込みコマンドとともにデータ及び書き込み先を受信し、
    前記受信したデータの種別に応じて、該データの書き込み領域として第1及び第2の記録領域のいずれか一方を選択し、
    該選択した領域に受信したデータを書き込む制御方法。
  19. 前記データ種別は、ファイルシステムにより管理されるファイルの実体データを示す種別と、ファイルシステムにおいてファイルの管理に必要な情報を示す種別とを含む請求項18記載の制御方法。
  20. 書き込みコマンドとともにデータ種別に関する情報を受信し、その受信したデータ種別に関する情報に基づいてデータ種別を判断する請求項18記載の制御方法。
  21. 前記データ種別はデータの書き込み位置に基づいて判断する請求項18記載の制御方法。
  22. 請求項1記載の情報記録媒体にアクセスするアクセス方法であって、
    書き込みコマンドとともに、書き込みデータの種別を示す情報を前記情報記録媒体に送信するアクセス方法。
  23. 請求項10記載の情報記録媒体にアクセスするアクセス方法であって、
    前記ファイルシステム管理情報の位置や大きさに関する情報を、前記情報記録媒体に送信して、前記情報記録媒体において前記ファイルシステム管理情報を格納する領域を設定し、
    その後に、書き込みコマンドを、データ及び書き込み先アドレスとともに前記情報記録媒体に送信して、データの書き込みを行うアクセス方法。
JP2005515149A 2003-10-31 2004-10-28 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法 Active JP4722704B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005515149A JP4722704B2 (ja) 2003-10-31 2004-10-28 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2003372484 2003-10-31
JP2003372484 2003-10-31
JP2004139582 2004-05-10
JP2004139582 2004-05-10
PCT/JP2004/016029 WO2005043394A1 (ja) 2003-10-31 2004-10-28 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
JP2005515149A JP4722704B2 (ja) 2003-10-31 2004-10-28 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法

Publications (2)

Publication Number Publication Date
JPWO2005043394A1 true JPWO2005043394A1 (ja) 2007-11-29
JP4722704B2 JP4722704B2 (ja) 2011-07-13

Family

ID=34554766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005515149A Active JP4722704B2 (ja) 2003-10-31 2004-10-28 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法

Country Status (3)

Country Link
US (1) US8185705B2 (ja)
JP (1) JP4722704B2 (ja)
WO (1) WO2005043394A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090920B2 (en) * 2004-07-06 2012-01-03 Panasonic Corporation Recording medium, and information processing device and information processing method for the recording medium
WO2006098212A1 (ja) * 2005-03-15 2006-09-21 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2006277395A (ja) * 2005-03-29 2006-10-12 Matsushita Electric Ind Co Ltd 情報処理装置及び情報処理方法
KR101002978B1 (ko) 2005-12-09 2010-12-22 샌디스크 아이엘 엘티디 플래시 메모리 관리 시스템 및 방법
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
JP4991320B2 (ja) * 2007-01-12 2012-08-01 株式会社東芝 ホスト装置およびメモリシステム
JP5224706B2 (ja) * 2007-03-23 2013-07-03 キヤノン株式会社 記憶装置及び記憶装置の制御方法
IL187043A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure pipeline manager
US20090164745A1 (en) * 2007-12-21 2009-06-25 Alan Sinclair System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
JP5577238B2 (ja) 2008-02-29 2014-08-20 パナソニック株式会社 アクセス装置、情報記録装置、コントローラ、及び情報記録システム
JP2010020540A (ja) * 2008-07-10 2010-01-28 Ricoh Co Ltd 画像形成装置及び補助記憶装置のアクセス方法
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
EP2267725A1 (en) * 2009-06-17 2010-12-29 Gemalto SA Memory device for managing the recovery of a non volatile memory
WO2011058700A1 (ja) 2009-11-11 2011-05-19 パナソニック株式会社 アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
US8909850B2 (en) * 2011-03-10 2014-12-09 Deere & Company Memory life extension method and apparatus
JP5984585B2 (ja) * 2012-08-28 2016-09-06 キヤノン株式会社 通信装置及びその制御方法
JP2014179066A (ja) 2013-02-14 2014-09-25 Panasonic Corp ストレージ制御装置、ストレージシステム、およびストレージ制御方法
US10764618B1 (en) * 2013-12-06 2020-09-01 Concurrent Ventures, LLC System, method and article of manufacture for automatic detection and storage/archival of network video in a video-on-demand scenario
CN107329912B (zh) * 2017-07-04 2020-05-26 浪潮集团有限公司 一种nand flash阵列的掉电处理方法
US10705747B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
TWI697778B (zh) * 2019-06-17 2020-07-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US11422745B2 (en) * 2020-08-13 2022-08-23 Micron Technology, Inc. Addressing zone namespace and non-zoned memory based on data characteristics

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04263386A (ja) * 1991-02-18 1992-09-18 Fuji Photo Film Co Ltd Icメモリカード
JPH0652691A (ja) * 1992-07-30 1994-02-25 Toshiba Corp 半導体ディスク装置
JPH10177797A (ja) * 1996-12-17 1998-06-30 Toshiba Corp 半導体記憶装置
JPH10283230A (ja) * 1997-03-31 1998-10-23 Nec Corp ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体
JPH10307749A (ja) * 1997-05-01 1998-11-17 Iwaki Electron Corp Ltd メモリ装置
JPH1139210A (ja) * 1997-07-23 1999-02-12 Casio Comput Co Ltd フラッシュメモリのメモリ制御装置
JP2001143481A (ja) * 1999-11-14 2001-05-25 Sony Corp データ記録再生装置
JP2002163139A (ja) * 2000-11-22 2002-06-07 Sharp Corp データ管理装置およびそれを用いたデータ管理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139138A (ja) 1992-10-29 1994-05-20 Toshiba Corp メモリカード装置
KR970015068U (ko) 1995-09-06 1997-04-28 에프에이티 메모리를 내장한 하드디스크 드라이버
JPH1117908A (ja) 1997-06-20 1999-01-22 Hitachi Ltd 情報処理装置
JP3718578B2 (ja) * 1997-06-25 2005-11-24 ソニー株式会社 メモリ管理方法及びメモリ管理装置
JP2000181784A (ja) * 1998-12-18 2000-06-30 Hitachi Ltd 書き換え可能な不揮発性記憶装置
FR2787963B1 (fr) 1998-12-28 2001-02-09 Thomson Multimedia Sa Procede de stockage d'un flux de donnees audio et video numeriques, dispositif de stockage et recepteur pour la mise en oeuvre du procede
JP2000285000A (ja) * 1999-03-31 2000-10-13 Matsushita Electric Ind Co Ltd 不揮発メモリのファイルシステム
JP2001325135A (ja) 2000-05-15 2001-11-22 Nippon Columbia Co Ltd データ記憶再生装置及びデータ記憶再生方法
JP2002091806A (ja) 2000-09-20 2002-03-29 Olympus Optical Co Ltd ファイルシステム
US6601056B1 (en) * 2000-09-28 2003-07-29 Microsoft Corporation Method and apparatus for automatic format conversion on removable digital media
US6466476B1 (en) * 2001-01-18 2002-10-15 Multi Level Memory Technology Data coding for multi-bit-per-cell memories having variable numbers of bits per memory cell
JP4263386B2 (ja) 2001-08-07 2009-05-13 パナソニック株式会社 熱電池
JP4238514B2 (ja) 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
US20050216684A1 (en) 2003-11-21 2005-09-29 Matsushita Electric Industrial Co., Ltd. Information recording medium, data processing apparatus, and recording region setting method of information recording medium
US7401174B2 (en) 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
US7801930B2 (en) 2004-05-10 2010-09-21 Panasonic Corporation Recording medium, host device, and data processing method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04263386A (ja) * 1991-02-18 1992-09-18 Fuji Photo Film Co Ltd Icメモリカード
JPH0652691A (ja) * 1992-07-30 1994-02-25 Toshiba Corp 半導体ディスク装置
JPH10177797A (ja) * 1996-12-17 1998-06-30 Toshiba Corp 半導体記憶装置
JPH10283230A (ja) * 1997-03-31 1998-10-23 Nec Corp ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体
JPH10307749A (ja) * 1997-05-01 1998-11-17 Iwaki Electron Corp Ltd メモリ装置
JPH1139210A (ja) * 1997-07-23 1999-02-12 Casio Comput Co Ltd フラッシュメモリのメモリ制御装置
JP2001143481A (ja) * 1999-11-14 2001-05-25 Sony Corp データ記録再生装置
JP2002163139A (ja) * 2000-11-22 2002-06-07 Sharp Corp データ管理装置およびそれを用いたデータ管理方法

Also Published As

Publication number Publication date
US20070033364A1 (en) 2007-02-08
US8185705B2 (en) 2012-05-22
JP4722704B2 (ja) 2011-07-13
WO2005043394A1 (ja) 2005-05-12

Similar Documents

Publication Publication Date Title
JP4722704B2 (ja) 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
KR100952135B1 (ko) 순차적 기록만을 사용하는 플래시 관리 시스템
US10168962B2 (en) Tape emulating disk based storage system and method with automatically resized emulated tape capacity
EP2096546B1 (en) Write once recording device
JP4238514B2 (ja) データ記憶装置
JP4287433B2 (ja) ファイル記録装置
US5627783A (en) Semiconductor disk device
JP4206688B2 (ja) データ処理装置及びデータ処理方法
US7555483B2 (en) File management method and information processing device
US8161225B2 (en) Semiconductor memory card, access device and method
US7752412B2 (en) Methods of managing file allocation table information
US7681008B2 (en) Systems for managing file allocation table information
US20080288710A1 (en) Semiconductor Memory Device and Its Control Method
JP2003196142A (ja) ライトワンス型メモリ装置及びファイル管理方法
JP4608434B2 (ja) 情報記録媒体のデータ処理装置及びデータ記録方法
WO2010001606A1 (ja) コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法
JP2005353046A (ja) 記録媒体、ホスト機器及びデータ処理方法
JP4211563B2 (ja) 再生記録装置
US20070055819A1 (en) Information recording medium and its control method
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP2007004782A (ja) 半導体メモリカード
CN100468361C (zh) 信息记录介质、对信息记录介质的访问装置以及访问方法
JPS58219658A (ja) 磁気デイスク制御装置
JP2007018528A (ja) メモリ装置、ファイル管理方法及び記録再生装置
JPH04369057A (ja) 光磁気ディスク装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110329

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110406

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

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4722704

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150