JP4859837B2 - 情報記録媒体アクセス装置、及びデータ記録方法 - Google Patents

情報記録媒体アクセス装置、及びデータ記録方法 Download PDF

Info

Publication number
JP4859837B2
JP4859837B2 JP2007536454A JP2007536454A JP4859837B2 JP 4859837 B2 JP4859837 B2 JP 4859837B2 JP 2007536454 A JP2007536454 A JP 2007536454A JP 2007536454 A JP2007536454 A JP 2007536454A JP 4859837 B2 JP4859837 B2 JP 4859837B2
Authority
JP
Japan
Prior art keywords
fat
area
recording
block
data
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.)
Expired - Fee Related
Application number
JP2007536454A
Other languages
English (en)
Other versions
JPWO2007034706A1 (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 JP2007536454A priority Critical patent/JP4859837B2/ja
Publication of JPWO2007034706A1 publication Critical patent/JPWO2007034706A1/ja
Application granted granted Critical
Publication of JP4859837B2 publication Critical patent/JP4859837B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/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/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]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10935Digital recording or reproducing wherein a time constraint must be met
    • G11B2020/10944Real-time recording or reproducing, e.g. for ensuring seamless playback of AV data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1291Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting serves a specific purpose
    • G11B2020/1292Enhancement of the total storage capacity
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid state media

Landscapes

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

Description

本発明は、格納データをファイルシステムにより管理する情報記録媒体にアクセスする情報記録媒体アクセス装置、及び情報記録媒体に対するデータ記録方法に関する。
音楽コンテンツや、映像データ等のデジタルデータを記録する情報記録媒体には、ハードディスク、光ディスク等、様々な種類が存在する。これらの情報記録媒体の1種類であるメモリカードは小型、軽量であることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に用いられ、急速に普及しつつある。
現在メモリカードの記録素子として使用されている半導体メモリは、EEPROMやフラッシュROM等のフラッシュメモリが主流である。特に多くの情報記録媒体で使用されているNAND型のフラッシュメモリには、データを書き込む前に書き込み先に記録されているデータを消去して、一旦未記録の状態にしてからデータを書き込まなければならないという特徴がある。ここでデータを消去する単位は消去ブロックと呼ばれ、アクセスの最小単位であるセクタが複数個集まってできたブロックとして管理されている。
図1はフラッシュメモリにおける消去ブロックとセクタとの関係の一例を示した図である。図1の例では、1つの消去ブロックは32のセクタから構成されている。アクセスはセクタ、例えば512バイト(B)、単位で行うことが可能であるが、書き込みに先立ち必要となるデータの消去処理は消去ブロック、例えば16kB単位、で行われる。記録領域の容量は16kBの消去ブロックが64000ブロック連続した例を示している。
すなわち、1消去ブロック(16kB)分のデータをフラッシュメモリに記録する場合、下記の手順で記録処理が実行される。
(1)アクセス装置から入力されたコマンドを解釈する。
(2)有効なデータが格納されていない消去ブロックを1ブロック取得し、その消去ブロック(1消去ブロック分)のデータを消去する。
(3)(2)でデータを消去した消去ブロックに、アクセス装置からの入力データを1消去ブロック分記録する。
また、1セクタ(512B)分のデータをフラッシュメモリに記録する場合は、下記の手順で記録処理が実行される。
(1)アクセス装置から入力されたコマンドを解釈する。
(2)有効なデータが格納されていない消去ブロックを1ブロック取得し、その消去ブロック(1消去ブロック分)のデータを消去する。
(3)(2)でデータを消去した消去ブロックに、アクセス装置からの入力データを1セクタ分記録する。
(4)1セクタ分を記録した消去ブロックの残りの31セクタに、他の消去ブロックの有効データをコピーする。
このように、NAND型フラッシュメモリに対する記録処理では、大きく分けてコマンド解釈処理、データ消去処理、データ記録処理の3つの処理が存在する。
例えば、コマンド解釈処理に3msec、1セクタのデータ記録処理に200μsec、1消去ブロック(16kB)の消去処理に2msecかかるNAND型フラッシュメモリを想定する。先に示した記録手順に沿って、このNAND型フラッシュメモリに1消去ブロック(16kB)分のデータを記録する場合、コマンド解釈に3msec、消去処理に2msec、データ記録処理に32×200μsecかかり、合計11.4msecの処理時間がかかる。同様に1セクタ(512B)分のデータを記録する場合、コマンド解釈に3msec、消去処理に2msec、データ記録処理に200μsec+31×200μsecかかり、合計11.4msecの処理時間がかかる。
すなわち、16kB(1消去ブロック・32セクタ)のデータを書き込んだ場合と512B(1セクタ)のデータを書き込んだ場合でほぼ同じ時間がかかることになる。1セクタあたりの書き込みに要する時間に直して比較すると、1消去ブロック分のデータを記録する時のほうが短くなっている。この例ではデータ転送時間等を考慮せず極端に性能差が出る場合について説明したが、実際のNAND型フラッシュメモリにおいても消去ブロック単位で書き込みを行った場合に書き込み時間が最短になる。
ここではNAND型フラッシュメモリの特性について説明したが、ハードディスクや光ディスク等においても同様のことが起こる。不連続アドレスに小さな単位で記録した場合、磁気ヘッドや光学ヘッドを物理的に移動するシーク処理が頻発し、データの書き込み以外の時間が多くかかるようになり、記録速度が低下する。NAND型フラッシュメモリと同様に、小さな単位で不連続な位置に記録するよりも、連続領域に一括して記録する方が高速に記録できるという特性を有している。
一方、情報記録媒体に格納されたデータはファイルシステムにより管理されており、ユーザは格納されたデータをファイルとして容易に取り扱うことができる。従来より使用されているファイルシステムとして、FATファイルシステムや、UDFファイルシステム(Universal Disk Format)、NTFSファイルシステム(New Technology File System)等が存在する。これらのファイルシステムでデータが管理されたメモリカードは、同一のファイルシステムを解釈する機器間でファイルの共有ができるため、機器間でデータを授受することが可能となる。
ファイルシステムの一例として、FATファイルシステムを説明する。図2にFATファイルシステムの構成を示す。ファイルシステムは、情報記録媒体内の論理アドレス空間上に構築されている。FATファイルシステムでは、FATファイルシステムにより管理する領域全体に対する管理情報を格納するファイルシステム管理情報領域301が、論理アドレス空間の先頭に存在する。これに続いてファイル内のデータ等を格納するユーザデータ領域302が存在する。ファイルシステム管理情報領域301は、マスターブートレコード・パーティションテーブル(MBR・PT)303、パーティションブートセクタ(PBS)304、領域管理情報であるFAT305、306、ルートディレクトリエントリ(RDE)307から構成される。
MBR・PT303は、ファイルシステムで管理する論理アドレス空間上の領域全体を複数の領域に分割して、その1つ1つをパーティションとして管理するための情報を格納する部分である。PBS304は、1つのパーティション内の管理情報を格納する部分である。FAT305、306は、ファイルに含まれるデータの物理的な格納位置を示す部分である。さらにRDE307は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。また、FAT305、306は、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、通常はファイルシステム管理情報領域301内に同じ情報を持つFAT305とFAT306が存在し、安全のために二重化されている。
ユーザデータ領域302は全領域が“クラスタ”と呼ばれる管理単位に分割され管理されており、各クラスタはファイルに含まれるデータを格納している。クラスタの大きさは、一般的に512Bから32kB程度の大きさである。ファイルサイズがクラスタサイズよりも大きい場合、ファイルに含まれるデータは複数のクラスタに跨って格納されており、各クラスタ間の繋がりは、FAT305、306に格納されたリンク情報で管理されている。
図3AはFATファイルシステムにおけるディレクトリエントリ401、図3BはFAT305、306、図3Cはユーザデータ領域302、のそれぞれ一例を示したものである。FATファイルシステムは、RDE307やユーザデータ領域302の一部に、ファイル名やファイルサイズ、ファイル属性等の情報を格納したディレクトリエントリ401を格納している。ディレクトリエントリ401には、ファイル名、属性、タイムスタンプ、開始クラスタ番号、ファイルサイズが含まれる。
図3Aの例に示すディレクトリエントリは、ファイル名がFILE1.TXTのファイルに関する情報を格納している。このファイルに含まれるデータの先頭部分はクラスタ番号10のクラスタに格納されており、ファイルサイズは64000Bである。また図3Aでは、ファイルサイズは64000Bである。ここでは、1クラスタの大きさを16384Bと仮定しているので、FILE1.TXTのデータは4クラスタに跨って格納されている。
FAT305、306には、ユーザデータ領域302に存在するクラスタ数と同数のFATエントリがそれぞれ存在する。管理単位であるエントリ情報としての各FATエントリには各クラスタの使用状態、各クラスタ間のリンク情報が格納されている。
図3Bの例では、クラスタ番号10のFATエントリ値として“0x000B(11)”が格納されており、クラスタ番号10のクラスタが、クラスタ番号11のクラスタにリンクしていることを示している。同様にクラスタ番号11はFATエントリ値“0x000C(12)”としてクラスタ番号12のクラスタに、クラスタ番号12はFATエントリ値“0x000D(13)”としてクラスタ番号13のクラスタにリンクしており、クラスタ番号13はFATエントリ値に“0xFFFF”が格納されている。
FATエントリ値における“0xFFFF”はファイルの終端を示すため、FILE1.TXTのデータは、クラスタ番号10、11、12、13の4クラスタに跨って格納されていることとなる。また、クラスタ番号14のFATエントリ値として“0x0000”が格納されている。FATエントリ値における“0x0000”は空きクラスタを意味するので、クラスタ番号14には有効なデータは記録されていないことになる。
ユーザデータ領域302にはファイルデータの実体が格納されており、図3Cの例では、クラスタ番号10、11、12、13の4クラスタにFILE1.TXTのデータの実体が記録されている。すなわち、FATファイルシステムを用いてファイルデータを記録する場合には、ファイルデータをユーザデータ領域302に記録すると共に、ディレクトリエントリ401、FAT305、306も同時に記録する必要がある。
ここで、FATファイルシステムで管理された情報記録媒体に、ポータブルムービー等を用いてリアルタイムで動画データを記録する場合を想定する。このようなリアルタイム性を必要とするデータを記録する場合、動画データの入力の速度とその記録の速度が異なるため、データの入力のほうが速い場合に、入力データを一時保存するバッファが溢れてデータの記録が停止することがある。これを防止するには、入力データの生成速度よりも高速で情報記録媒体に記録する必要がある。
しかしフラッシュメモリやハードディスク、光ディスク等の情報記録媒体は、先に述べたようなデータの書込み時間についての特性を有することから、小さな単位での記録を続けると入力データの生成速度よりも情報記録媒体への記録速度が低くなる場合があり、リアルタイムデータの記録が停止する可能性があった。
このような問題を解決する従来の方法として、データの読み書きに要求される速度に応じて、領域長の長い空き記録領域と領域長の短い空き記録領域を使い分ける方法が提案されている(特許文献1)。この方法では、リアルタイムデータ等の高速記録を必要とする時には領域長の長い空き記録領域へ記録を行うことで高速に記録し、比較的低速な記録でも許容できる静止画等のデータの場合は領域長の短い空き記録領域へ記録を行う。こうした使い分けによってリアルタイム性を確保しつつ、記録領域の有効利用を図っている。
特開平9−251407号公報
まず図2と図4によって、リアルタイムデータの記録処理の手順を説明する。図4は、アクセス装置におけるリアルタイムデータ記録処理のフローを示したフローチャートである。本フローの処理は、主にアクセス装置内にあるファイルシステム制御部により実施されるが、実際にメモリカードに読み書きする際は、ファイルシステム制御部からアクセス制御部に命令を送付し、データの読み書きを実行する。
リアルタイムデータの記録処理では、まず始めにディレクトリエントリを読み出す(S701)。ディレクトリエントリは、図2に示すファイルシステム管理情報301内のRDE307の領域、あるいはユーザデータ領域302の一部の領域に格納されている。次に読み出したディレクトリエントリを参照し、リアルタイムデータを記録するファイルの先頭データが格納されているクラスタ番号を確認する(S702)。
次に、FAT305、306を読み出し、S702で確認したクラスタ番号から始まるFAT上のリンクを辿り、書き込み位置のクラスタ番号を取得する(S703)。次に、リアルタイムデータの記録のために新しい空き記録領域を取得する必要があるか否かを確認する(S704)。ファイル終端へ追記する場合等、新しい空き領域を取得する必要があると判断した場合、FAT上で空き記録領域を探し、1クラスタを割り当てる領域取得処理を行う(S705)。領域取得処理の詳細については後述する。
S704で空き記録領域の取得が不要と判断した場合、あるいはS705で空き記録領域の取得を完了した場合、対象とするクラスタ内にリアルタイムデータを書き込む(S706)。次に既にメモリカード2に書き込み済みのリアルタイムデータの総量を確認し、記録対象の全データの書き込みが完了しているか判定する(S707)。完了していない場合、S703の処理に戻る。完了している場合、リアルタイムデータの記録に伴い変更されたクラスタ間のリンク関係を反映させるため、情報記録媒体上のFAT305、306を更新する(S708)。最後にファイルサイズやタイムスタンプ等を反映させるため、メモリカード2上のディレクトリエントリを更新する(S709)。
次に、図4のS705で行なわれる領域取得処理を、図5を用いて説明する。まず始めに、現在参照している参照クラスタ番号(CURRENT_CLU)の値にFAT上の探索開始クラスタ番号(START_CLU)を代入する(S801)。探索開始クラスタ番号は、アクセス装置のファイルシステムの制御においても使用される変数である。具体的な値としては、メモリカードのマウント時にユーザデータ領域302の先頭を示すクラスタ番号“2”を探索開始クラスタ番号の値に設定する。他には前回最後にファイルアクセスしたクラスタ番号をアクセス装置内に保持しておき、マウント時に探索開始クラスタ番号に設定する等、様々な方法が考えられる。
ここでは、マウント時に探索開始クラスタ番号の値として“2”を設定する場合を想定して説明する。この場合、S801の処理において、参照クラスタ番号の値にも同様に“2”が代入される。次にFAT305、306上に存在する参照クラスタ番号に対応するFATエントリ値を参照し、値が“0x0000”であるか確認する(S802)。
“0x0000”であった場合、参照クラスタ番号のクラスタは空き記録領域であることから、領域取得に成功したことになる。そのため、探索開始クラスタ番号の値を参照クラスタ番号が示す番号に更新して、参照クラスタ番号が示すクラスタを空きクラスタとして使用し、処理を終了する(S803、S804)。
ここでS803の探索開始クラスタ番号の更新は次のとおりである。参照クラスタ番号がユーザデータ領域302の最終クラスタ(LAST_CLU)であった場合、探索開始クラスタ番号の値に“2”を代入する。それ以外の場合、探索開始クラスタ番号の値に参照クラスタ番号に1を加えた値を代入する。
また、S804の処理では、参照クラスタ番号に対応するFATエントリ値を、使用中を示す“0xFFFF”に設定する。これと共に、現在記録しようとしているリアルタイムデータの前に既に記録済みのデータがファイル内に存在し、この続きにリアルタイムデータを追記する場合には、その記録済みのデータが存在する位置のクラスタ番号に対応するFATエントリ値を、参照クラスタ番号を示す値に変更して設定する。
また、S802の判定処理において参照クラスタ番号に対応するFATエントリ値が“0x0000”ではなかった場合、下記の条件のいずれか一つでも条件が満たされているか確認する(S805)。
(1)参照クラスタ番号の値が探索開始クラスタ番号の値より1だけ小さい値である。
(2)参照クラスタ番号の値が最終クラスタであり、且つ探索開始クラスタ番号の値が“2”である。
上記いずれかの条件を満たす場合、既に全FATエントリ値の確認が完了しているため空き記録領域は存在せず、領域取得に失敗したことになる。従って一連の領域取得処理は終了し、リアルタイムデータ記録は中止となる(S806)。また、S805の処理においていずれの条件も満たさなかった場合は、参照クラスタ番号が、ユーザデータ領域302の最終クラスタと同じであるか判定する(S807)。同じであった場合、参照クラスタ番号の値に“2”を代入し、S802の処理に戻る(S808)。異なる場合、参照クラスタ番号の値に“1”を加算し、同様にS802の処理に戻る(S809)。
このように従来のアクセス装置における領域取得処理では、FAT上に存在する全FATエントリ値を順次探索し、最初に見つかった空きクラスタをリアルタイムデータの記録に使用していた。
以上に示した従来のリアルタイムデータの記録処理では、ディレクトリエントリ、FAT305、306等の記録、更新であるFAT更新に要する時間を考慮した領域取得が行なわれていない。たとえ取得した空き記録領域の領域長が長くても、その配置が論理アドレス空間上で分散している場合、データの入力速度と記録速度の違いが生じリアルタイム性を維持できなくなる場合がある。
この従来の記録処理が抱える問題について、以下に図面を用いて説明する。図6はFATファイルシステムにおけるデータ記録位置の一例を論理アドレス空間上で示す図である。ここでは、従来の方法における領域長の長い空き記録領域として、16kBのクラスタが16クラスタ連続した合計256kBの領域を1つの記録単位として管理する場合を想定する。尚、ファイルシステム管理情報領域301は、16kBのクラスタが32クラスタ連続した512kBの領域であり、ユーザデータ領域302は256kBの記録単位が3998単位連続した1023488kBの領域である。図6では、クラスタ番号4994から5041までの3つの記録単位が空き領域であり、これらの領域にファイルデータを記録する場合を示している。
この場合におけるアクセス装置内のバッファ使用量と、情報記録媒体への記録タイミングを図7に示す。図7において、Aはバッファの初期状態として既に使用されている量、Bはバッファに格納可能なデータ最大値を示す。すなわち、バッファ使用量が最大値Bの値を超えるとバッファ溢れが発生し、リアルタイムデータの記録が停止する。
図6、図7の場合、クラスタ番号4994から5041までの領域に256kBのデータを3つ記録した後、FAT305、306、ディレクトリエントリ401を更新する。ここでクラスタ番号4994から5041までは連続した領域であることからFAT上のFATエントリ位置も隣接しており、FAT305またはFAT306のうち、いずれか一方のFATにつき512Bの更新で、上記3つのデータ全てのリンク情報を更新する。この場合、合計768kBのデータ記録に対し、FAT305、306、ディレクトリエントリ401を各1回更新するだけで良いことから、バッファ使用量が最大値Bを超えることがなく、リアルタイム記録を継続することができる。
一方、図8、図9の場合、256kB単位の3つの空き領域の配置が論理アドレス空間上で分散しており連続していないことから、256kBのデータを1つの空き領域に記録する度に、FAT305、306、ディレクトリエントリ401を更新する。ここではFAT305、306、ディレクトリエントリ401の更新が3回行なわれる。同じ768kBのデータを記録する間にFAT305、306、ディレクトリエントリ401の更新が余分に2回行なわれている。この2回の間、データの記録は停止するので実質的なデータ記録速度は低下する。それにもかかわらず入力データの生成はほぼ一定の速度で行なわれることからバッファ溢れが発生し、リアルタイムデータの記録が停止することがある。
この問題を解決する方法として、記録単位を256kBから768kBに変更することが考えられる。しかしメモリカードやハードディスク等、ファイルの作成、削除を特に頻繁に繰り返す情報記録媒体では空き記録領域が分散し易く、より大きな連続記録領域を確保することは困難となるので、有効な方法であるとはいえない。
本発明では上記問題点に鑑み、ファイルシステムで管理された情報記録媒体に対し、空き記録領域の配置状態によらずFAT等の更新回数を抑制し、記録時のリアルタイム性を保証する情報記録媒体アクセス装置、及びデータ記録方法を提供することを目的とする。
この課題を解決するために、本発明の情報記録媒体アクセス装置は、格納データをファイルシステムにより管理する情報記録媒体にアクセスする情報記録媒体アクセス装置において、ファイルシステムが管理する領域管理情報を固定長ブロック単位に分割して、各固定長ブロック内に含まれる空き領域長に関する情報を格納する領域管理ブロック情報を情報記録媒体アクセス装置内のメモリ上に生成し、ファイルデータ記録時の領域割り当てに前記領域管理ブロック情報に格納された情報を利用する領域管理ブロック制御部を具備するものである。
この課題を解決するために、本発明の情報記録媒体アクセス装置は、管理単位であるクラスタが複数集まって構成されるデータ記録領域と、前記各クラスタに対する1つの管理情報単位であるエントリ情報を複数保持する領域管理情報とを備える不揮発性メモリを含む情報記録媒体にアクセスする情報記録媒体アクセス装置であって、前記領域管理情報は、前記データ記録領域において一定数の物理的に連続したクラスタが得られるように組み合わされた一定数の前記エントリ情報から成る領域管理ブロックを複数有するものであり、前記情報記録媒体から前記領域管理情報を読み出し、前記領域管理ブロックごとに空きクラスタ数を算出し、前記各領域管理ブロックの前記空きクラスタ数を第1の閾値と比較して、第1の閾値以上のときに当該領域管理ブロックをデータ書き込みが可能な領域とする前記領域管理ブロック制御部と、前記各領域管理ブロックと当該領域管理ブロック内の空き領域長に関する領域管理ブロック情報を保持するメモリと、を具備するものである。
ここで前記領域管理ブロック制御部は、前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第1の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第1の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。
ここで前記第1の閾値は、連続するt回のファイルシステムの管理情報更新に挟まれる(t−1)回のデータ記録期間内で最低限記録しなければならないファイルデータが記録できるクラスタ数としてもよい。
ここで前記領域管理ブロック制御部は、前記領域管理ブロック毎に、前記データ記録領域において2つ以上の物理的に連続したクラスタが得られるように前記エントリ情報を2つ以上組み合わせて1つの組として管理し、各組のエントリ情報で示されるクラスタが全て空き領域となっている組に含まれるクラスタ数を前記第1の閾値と比較し、前記空きクラスタ数が前記第1の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域としてもよい。
ここで前記領域管理ブロック制御部は、前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第1の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第1の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。
ここで前記領域管理ブロック制御部は、前記領域管理ブロック毎に、前記エントリ情報を2つ以上組み合わせて1つのスロットとして管理し、各スロットに含まれるクラスタの内、空きクラスタ数が第2の閾値以上の場合に当該スロットを空きスロットと判定し、前記領域管理ブロック内のすべての空きスロットに含まれる空きクラスタ数を前記第1の閾値と比較し、前記空きクラスタ数が前記第1の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域としてもよい。
ここで前記領域管理ブロック制御部は、前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第1の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第1の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。
ここで前記領域管理ブロック制御部は、前記メモリに保持された前記領域管理ブロック情報を参照し、前記空き領域長が、一定値以上である前記領域管理ブロックに含まれる空き領域をファイルデータ記録時に割り当てるようにしてもよい。
この課題を解決するために、本発明のデータ記録方法は、ファイルシステムが管理する領域管理情報を固定長ブロック単位に分割して、各固定長ブロック内に含まれる空き領域長に関する情報を格納する領域管理ブロック情報を情報記録媒体アクセス装置内のメモリ上に生成し、ファイルデータ記録時の領域割り当てに前記領域管理ブロック情報に格納された情報を利用するものである。
この課題を解決するために、本発明のデータ記録方法は、管理単位であるクラスタが複数集まって構成されるデータ記録領域と、前記各クラスタに対する1つの管理情報単位であるエントリ情報を複数保持する領域管理情報とを備える不揮発性メモリを含む情報記録媒体にアクセスするデータ記録方法であって、前記領域管理情報は、前記データ記録領域において一定数の物理的に連続したクラスタが得られるように組み合わされた一定数の前記エントリ情報から成る領域管理ブロックを複数有するものであり、前記情報記録媒体から前記領域管理情報を読み出し、前記領域管理ブロックごとに空きクラスタ数を算出し、前記各領域管理ブロックの前記空きクラスタ数を第1の閾値と比較して、第1の閾値以上のときに当該領域管理ブロックをデータ書き込みが可能な領域とし、前記各領域管理ブロックと当該領域管理ブロック内の空き領域長に関する領域管理ブロック情報をメモリに保持するものである。
ここで前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第1の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第1の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。
ここで前記第1の閾値は、連続するt回のファイルシステムの管理情報更新に挟まれる(t−1)回のデータ記録期間内で最低限記録しなければならないファイルデータが記録できるクラスタ数としてもよい。
ここで前記領域管理ブロック毎に、前記データ記録領域において2つ以上の物理的に連続したクラスタが得られるように前記エントリ情報を2つ以上組み合わせて1つの組として管理し、各組のエントリ情報で示されるクラスタが全て空き領域となっている組に含まれるクラスタ数を前記第1の閾値と比較し、前記空きクラスタ数が前記第1の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域としてもよい。
ここで前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第1の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第1の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。
ここで前記領域管理ブロック毎に、前記エントリ情報を2つ以上組み合わせて1つのスロットとして管理し、各スロットに含まれるクラスタの内、空きクラスタ数が第2の閾値以上の場合に当該スロットを空きスロットと判定し、前記領域管理ブロック内のすべての空きスロットに含まれる空きクラスタ数を前記第1の閾値と比較し、前記空きクラスタ数が前記第1の閾値以上である場合は、該当する領域管理ブロックが管理する記録領域をデータ記録可能な領域としてもよい。
ここで前記領域管理ブロック内の前記空きクラスタ数を示す値、及び前記領域管理ブロック内の前記空きクラスタ数が第1の閾値以上である場合は、当該領域管理ブロックが管理する記録領域が使用可能であることを示すフラグ、前記領域管理ブロック内の前記空きクラスタ数が前記第1の閾値未満である場合は、当該領域管理ブロックが管理する記録領域が使用不能であることを示すフラグを前記領域管理ブロック情報として前記メモリに格納するようにしてもよい。
ここで前記メモリに保持された前記領域管理ブロック情報を参照し、前記空き領域長が、一定値以上である前記領域管理ブロックに含まれる空き領域をファイルデータ記録時に割り当てるようにしてもよい。
本発明によれば、ファイルシステムで管理された情報記録媒体に対してリアルタイムデータを記録する場合、空き記録領域の配置状態によらず記録時のリアルタイム性を保証することが可能となる。
図1はフラッシュメモリにおける消去ブロックとセクタの関係の一例を示した説明図である。 図2はFATファイルシステムの構成を示した説明図である。 図3AはFATファイルシステムにおけるディレクトリエントリの一例を示した説明図である。 図3BはFATファイルシステムにおけるFATの一例を示した説明図である。 図3CはFATファイルシステムにおけるユーザデータ領域の一例を示した説明図である。 図4は従来のアクセス装置におけるリアルタイムデータの記録処理を示したフローチャートである。 図5は従来のアクセス装置における空き領域取得処理を示したフローチャートである。 図6はFATファイルシステムにおけるデータ記録位置の一例を示した説明図である。 図7はアクセス装置内のバッファ使用量と情報記録媒体への記録タイミングの一例を示した説明図である。 図8はFATファイルシステムにおけるデータ記録位置の一例を示した説明図である。 図9はアクセス装置内のバッファ使用量と情報記録媒体への記録タイミングの一例を示した説明図である。 図10は本発明の実施の形態における情報記録媒体アクセス装置とメモリカードを示した説明図である。 図11は本発明の実施の形態のアクセス装置におけるメモリカード挿入時の一連の処理フローを示したフローチャートである。 図12は本発明の実施の形態における領域管理ブロック制御部でFATを管理する際の管理単位の一例を示した説明図である。 図13は本発明の実施の形態における領域管理ブロック情報の生成処理を示したフローチャートである。 図14は本発明の実施の形態における領域管理ブロック情報の一例を示した説明図である。 図15は本発明の実施の形態のアクセス装置におけるリアルタイムデータの記録処理を示したフローチャートである。 図16Aは本発明の実施の形態のアクセス装置における空き領域取得処理を示したフローチャートである。 図16Bは本発明の実施の形態のアクセス装置における空き領域取得処理を示したフローチャートである。 図17は本発明の実施の形態における領域管理ブロック制御部でFATを管理する際のFAT状態の一例を示した説明図である。 図18は本発明の実施の形態におけるアクセス装置内のバッファ使用量と情報記録媒体への記録タイミングの一例を示した説明図である。 図19Aは本発明の実施の形態における領域管理ブロック情報の生成処理を示したフローチャートである。 図19Bは本発明の実施の形態における領域管理ブロック情報の生成処理を示したフローチャートである。 図20は本発明の実施の形態における探索済みブロック再判定の処理を示したフローチャートである。 図21は本発明の実施の形態の領域管理ブロック情報の生成処理過程での各値の関係を示した図である。 図22Aは本発明の実施の形態における複数のクラスタで構成される記録単位とスロットを示す図である。 図22Bは本発明の実施の形態における複数のクラスタで構成される記録単位とスロットを示す図である。
符号の説明
1 アクセス装置
2 メモリカード
11,22 CPU
12,23 RAM
13 コネクタ
14,24 ROM
15 アプリケーション制御部
16 ファイルシステム制御部
17 アクセス制御部
18 領域管理ブロック制御部
19 領域管理ブロック情報
21 ホストI/F部
25 不揮発性メモリ
301 ファイルシステム管理情報領域
302 ユーザデータ領域
303 マスターブートレコード・パーティションテーブル
304 パーティションブートセクタ
305,306 FAT
307 ルートディレクトリエントリ
401 ディレクトリエントリ
以下、本発明の実施の形態について、図面を参照しつつ説明する。本実施の形態では、情報記録媒体としてFATファイルシステムで管理されているメモリカードを用いる場合を例として説明する。図10は本実施の形態における情報記録媒体アクセス装置1(以下、アクセス装置1とする)と情報記録媒体であるメモリカード2の構成図である。アクセス装置1は、CPU11、RAM12、コネクタ13、ROM14を含んでいる。
コネクタ13はアクセス装置1とメモリカード2との接続部であり、このコネクタ13を経由して読出し・書込み等の各種コマンドやデータが送受信される。ROM14はアクセス装置1を制御するプログラムを格納しており、このプログラムはRAM12を一時記憶領域として使用し、CPU11上で動作する。
ROM14は、図10には記載していないタッチパネル・キーボード等の入力装置の制御、LCD・スピーカ等の出力装置の制御、メモリカード2に格納されたAVデータの再生制御、メモリカード2へのAVデータの記録制御等の、アクセス装置1がユーザに提供するサービス全般の制御を行うアプリケーション制御部15を含んでいる。またROM14は、メモリカード2の不揮発性メモリ25上に構築されたファイルシステムの制御を行うファイルシステム制御部16と、メモリカード2に対するコマンド送受信を行うアクセス制御部17も含んでいる。
ファイルシステム制御部16は更に、固定長のブロックを単位としてFAT1、FAT2を管理し、空き記録領域の制御を行う領域管理ブロック制御部18を含んでいる。領域管理ブロック制御部18はFAT1、FAT2を固定長に分割してできる各FATブロックの空き記録領域長や有効性を示す情報を格納する領域管理ブロック情報19をメモリであるRAM12上に生成し、空き領域の制御にこれを使用する。
また、図10のメモリカード2は、ホストI/F21、CPU22、RAM23、ROM24、不揮発性メモリ25を含んでいる。ホストI/F21は、アクセス装置1と各種コマンドやデータを送受信するためのインターフェースである。
ROM24にはメモリカード2を制御するプログラムが格納されている。このプログラムはRAM23を一時記憶領域として使用し、CPU22上で動作する。また不揮発性メモリ25は、アクセス装置1から入力されたユーザデータを格納し、保持するメモリであり、フラッシュメモリ等の半導体メモリが記録素子として使用される。また、この不揮発性メモリ25の記録領域には、ファイルシステム管理情報であるマスターブートレコード・パーティションテーブル(MBR・PT)、パーティションブートセクタ(PBS)、FAT1、FAT2、ルートディレクトリエントリ(RDE)によってファイルシステムが構築されている。アクセス装置1はこのファイルシステムに則ったファイル単位でユーザデータを管理している。
次に、本実施の形態のアクセス装置1におけるメモリカード2挿入時の処理について、図11から図14を用いて説明する。さらに、本実施の形態の特徴である、領域管理ブロック制御部18と、RAM12上に生成される領域管理ブロック情報19について詳述する。
図11は本実施の形態のアクセス装置1におけるメモリカード2挿入時の一連の処理フローを示している。まず、アクセス装置1のコネクタ13にメモリカード2が挿入されると、コネクタ13に接続された信号線からCPU11にメモリカード2の挿入を通知する信号が送信され、メモリカードの挿入が検出される(S101)。
CPU11がメモリカード2の挿入通知信号を受信すると、アクセス制御部17を起動し、アクセス制御部17のプログラムによってメモリカード2の初期化処理を実施する(S102)。この初期化処理では、アクセス装置1がメモリカード2に対する電力やクロックの供給を開始して、初期化コマンドをメモリカード2に入力する。初期化コマンドを受信したメモリカード2は、内部の不揮発性メモリ25へ電力供給を開始する。その後、記録データのエラーチェック、論理アドレス・物理アドレス変換表の生成等、アクセス装置1からメモリカード2の不揮発性メモリ25にアクセスするための準備を行う。
初期化処理が完了すると、メモリカード2はアクセス装置1に初期化完了を通知する。次にアクセス装置1では、CPU11がファイルシステム制御部16を起動し、アクセス制御部17を経由して、メモリカード2の不揮発性メモリ25のファイルシステム管理情報領域からファイルシステム管理情報を読み出す(S103)。ファイルシステム制御部16は読み出したファイルシステム管理情報の内容を確認し、格納されている情報にエラーがないか、ファイルシステムの制御が行えるかを確認する(S104)。
クラスタサイズが0に設定されている場合や、本来格納されているはずの識別子が格納されていない場合等、ファイルシステム管理情報にエラーがあった場合は、アクセス装置は、メモリカードが挿入されていないアンマウント状態であるとして後に続くマウントのための処理を行なわず、一連の初期化処理を終了する(S105、S106)。メモリカード2のファイルシステムに何らかの問題が生じている場合にアンマウント状態となる。この場合、再フォーマットするなどして正しいファイルシステムを構築しない限り、アクセス装置1はメモリカード2に対するマウント処理を行わず、ファイルアクセス処理は実現しない。
逆に、ファイルシステム管理情報にエラーがなかった場合は、ファイルシステム制御部16はメモリカード2のマウント処理を実施する(S107)。マウント処理では、メモリカード2のファイルシステムへのアクセスに必要な情報(各種管理情報が記録されているアドレス、クラスタサイズ等)をファイルシステム制御部16がファイルシステム管理情報から抽出し、RAM12上に保持する。
次に、CPU11は領域管理ブロック制御部18を起動し、領域管理ブロック情報19を生成する(S108)。S108の詳細な処理内容は後述する。最後に領域管理ブロック情報19の生成が完了すると、アクセス装置1は、メモリカードがマウント状態であることを示すフラグをRAM12上に保持し、一連の初期化処理を終了する(S109)。マウント状態に設定された場合、S107のマウント処理においてRAM12上に保持した情報を用いて、メモリカード2上に構築されたファイルシステムにアクセスすることが可能となる。
S108の領域管理ブロック情報19の生成処理について説明する。領域管理ブロック情報19では、FAT1、FAT2を512B等の固定長のブロック単位に分けたFATブロックを用いる。各FATブロックが管理するユーザデータ領域中に存在する空き記録領域長の情報と、その空き記録領域長が閾値以上であるか否かを示すフラグとを生成して、これらを領域管理ブロック情報19としてRAM12上に保持する。ここまでが領域管理ブロック情報19の生成処理の過程である。
まず、FAT1、FAT2の管理方法から説明する。図12は、FAT1、FAT2を領域管理ブロック制御部18で管理する際の管理単位の一例を示した図である。ここでは、ファイルシステムとしてFATエントリを16ビット単位で管理するFAT16ファイルシステムを想定している。また、各パラメータは、クラスタのサイズを16kB、FATブロックのサイズを512B、FATのサイズをN×512Bと想定している。つまりFATブロックは、FATを固定長のブロックに分けて作られるものであり、FATはN個のFATブロックに分割されている。
領域管理ブロック制御部18は、FAT1、FAT2をテーブルの先頭から順にFATブロックサイズの単位で区切り、空き記録領域長の情報を管理する。図12の例では、FATブロック1つ分に含まれるFATエントリ値はクラスタ256個分についての情報を表し、これは4MB分のユーザデータ領域の領域管理情報である。
FATブロックによってユーザデータ領域を4MBの単位で区切ることができる。しかし、ユーザデータ領域の大きさは、4MBの倍数長とは限らないため、FATブロックNの終端付近のFATエントリは実際には使用せず、それに対応するユーザデータ領域も使用しない。更に、FAT1、FAT2の先頭に存在する2つのFATエントリはFATを識別するための識別子が格納されており、FATブロック1が管理する領域は、実際には(4MB−16kB×2)分のユーザデータ領域となる。
次にFATブロックを用いたユーザデータ領域の管理方法を基に、図13を用いて領域管理ブロック情報19の生成処理フローを説明する。領域管理ブロック情報19の生成処理では、まず現在参照しているFATブロックの番号を示すCOUNTERの値を“1”に設定する(S201)。次に、COUNTERが示す番号に対応するFATブロック1内を参照し、FATブロック1内の空きクラスタ数(EMPTY_CLU_NUM)を算出する(S202)。
具体的には、COUNTERで指定されたFATブロック内の2バイト単位の値を判定する。FATエントリの値が“0x0000”であれば対応するクラスタが空きであると判定し、1つの空きクラスタとして数える。この処理をCOUNTERで指定されたFATブロック内に存在する全てのFATエントリに対して繰り返し、FATブロック内に存在する空きクラスタの総数を算出する。
この際、COUNTERが“1”の場合には、先頭の2つのFATエントリを参照せず、残りの部分に含まれる全FATエントリに対して上記2バイト単位での判定を行い、空きクラスタ数を算出する。また、COUNTERが“N”の場合には、FATブロックN内で実際には使用されない終端付近のFATエントリを除外した残りの有効なFATエントリに対し上記判定を行い、空きクラスタ数を算出する。
次に、空きクラスタ数が決定すれば、その値が閾値以上であるかの判定をする(S203)。閾値の詳細については後述するが、ここでは一例として閾値が“100”に設定されている場合を説明する。空きクラスタ数が“100”以上であった場合は閾値以上の値であるので、FATブロックの有効性を示すフラグ(FLAG)を、“有効(VALID)”に設定する(S204)。また、空きクラスタ数が“100”未満であった場合は閾値未満の値であるので、フラグを“無効(INVALID)”に設定する(S205)。
次に、領域管理ブロック情報19内にはCOUNTER番目のFATブロックの情報として、算出した空きクラスタ数と、フラグの値を格納する(S206)。この後、COUNTERが“N”である場合、全てのFATブロックに対する処理が完了したことになるので、S202に戻らないで処理を終了する(S207)。COUNTERが“N”でない場合、COUNTERに“1”を加算し、S202の処理に戻る(S208)。
このようにして生成された、領域管理ブロック情報19の一例を図14に示す。領域管理ブロック情報19は、FATブロック数(この例では“N”)の情報から構成され、各FATブロックに対し、FATブロックに含まれる空きクラスタ数と、フラグが格納されている。
図14の例ではFATブロックの有効性を判定する閾値として“100”を想定しており、FATブロック3、FATブロック4の空きクラスタ数が、それぞれ“100”未満であることから、“INVALID”のフラグが格納されている。
図15は、アクセス装置におけるリアルタイムデータの記録処理を示したフローチャートである。上記のように作られた領域管理ブロック情報は、図15に示すリアルタイムデータの記録時における空き領域取得処理に使用される。次に図15、図16A、図16Bを用いて本実施の形態における空き領域取得処理について説明する。
図16A,図16Bは、図15のS305で行なわれる空き領域取得処理のフローチャートである。この空き領域取得処理は、領域管理ブロック情報を基に空き領域を割り当てる処理である。FAT1、FAT2は、N個のFATブロックに分割され管理されていると想定する。図16A,図16Bの空き領域取得処理では、まず始めにFAT上の探索開始クラスタ番号に対応するFATエントリを含む探索開始FATブロック番号(START_FAT_BL_NO)を算出する(S401)。初期状態の探索開始クラスタ番号は先頭のクラスタ番号を示す2となっている。
FAT16ファイルシステムを使用し、FATブロックサイズが512Bの場合、探索開始FATブロック番号の算出式は下記のようになる。
探索開始FATブロック番号=Ip(探索開始クラスタ番号×2/512)+1
ここでIp(X)は、Xの整数部分を意味する。例えば探索開始クラスタ番号が“300”であった場合、探索開始FATブロック番号は“2”となる。
次に、現在参照している参照クラスタ番号の値に探索開始クラスタ番号を代入すると共に、現在参照している参照FATブロック番号(CURRENT_FAT_BL_NO)に探索開始FATブロック番号を代入する(S402)。
次に領域管理ブロック情報19を参照し、参照FATブロック番号に対応するFATブロックのフラグが“VALID”であるか確認する(S403)。“VALID”であった場合、参照FATブロック番号に対応するFATブロック内で空きクラスタの取得を試みる(S404)。
具体的には、現在参照しているFATブロック内において、参照クラスタ番号に対応するFATエントリから順に値を確認し、“0x0000”であるFATエントリを探索する。この際、1つのFATエントリを確認する度に参照クラスタ番号の値に“1”を加算し、現在参照しているクラスタ番号を更新する。
現在参照しているFATブロックの終端まで探索が完了するか、あるいは参照クラスタ番号の値がユーザデータ領域302の終端のクラスタ番号を超えるまでの間に“0x0000”であるFATエントリが見つかった場合、領域取得に成功したことになる(S405)。続いて、取得した空きクラスタのクラスタ番号を探索開始クラスタ番号に代入して、START_CLUを更新する(S406)。取得した空きクラスタをリアルタイムデータ記録に使用し(S407)、処理を終了する。この処理では、具体的にはS803、S804と同様の処理が実施される。
また、“0x0000”であるFATエントリが見つからなかった場合、あるいは、S403の判定においてフラグが“INVALID”であった場合は、下記の条件のいずれか一つでも条件が満たされているか確認する(S408)。
(1)参照FATブロック番号が探索開始FATブロック番号より1だけ小さい値である。
(2)参照FATブロック番号の値が“N”であり、探索開始FATブロック番号が“1”である。
いずれかの条件を満たす場合、既に全FATブロックの領域検索が完了したことを示すのでリアルタイムデータの記録に使える空き記録領域は存在しない。即ち空き記録領域の取得に失敗したことになるので、一連の記録領域の取得処理は終了し、リアルタイムデータ記録は中止となる(S409)。
また、S408の処理においていずれの条件も満たさなかった場合は、参照FATブロック番号の値が“N”であるかを確認する(S410)。“N”であった場合は、参照FATブロック番号の値に“1”を代入し、S403の処理に戻る(S411)。“N”でなかった場合は、参照FATブロック番号の値に“1”を加算し、S403の処理に戻る(S412)。このように本実施の形態のアクセス装置1における領域取得処理では、フラグが“VALID”であるFATブロックのみを空き領域検索の対象とする。
図16A,図16Bの領域取得処理を実施した場合におけるリアルタイムデータ記録時のFAT更新のタイミングとバッファ使用量の変化を図17、図18を用いて説明する。図17は、領域管理ブロック情報が図14の場合における、FAT1、FAT2の状態を示した図である。斜線で示されているFATブロック3とFATブロック4は、空きクラスタの数が閾値の100未満であるのでリアルタイムデータの記録には用いられない。このFATの状態において探索開始クラスタ番号の値が“2”の場合にリアルタイムデータを記録すると、アクセス装置1内のバッファ使用量とメモリカード2への記録タイミングは図18のようになる。
リアルタイムデータ記録開始直後の状態では、まずFATブロック1に含まれる空き領域に、154クラスタのリアルタイムデータが記録される。次にFAT1、FAT2、ディレクトリエントリの記録を行なう。この処理をまとめてFAT更新という。このFAT1、FAT2の記録では、更新部分はFATブロック1の中に限られるため、更新量は1FATブロック分のみである。
次にFATブロック2に含まれる空き領域に234クラスタのリアルタイムデータが記録される。その後、同様にFAT更新、即ちFAT1、FAT2、ディレクトリエントリが記録されるが、この場合も更新部分はFATブロック1つ分のみとなる。
次にFATブロック3、FATブロック4は、図14に示す領域管理ブロック情報19内のフラグが“INVALID”となっているため、リアルタイムデータの記録には使用されない。従って次のFATブロック5に含まれる178クラスタの空き領域にリアルタイムデータが記録される。その後も同様にFAT更新、即ちFAT1、FAT2、ディレクトリエントリが記録されるが、この場合も更新部分はFATブロック1つ分のみとなる。
このように、領域管理ブロック情報19内のフラグが“VALID”となっているFATブロックに含まれる空き記録領域にのみリアルタイムデータを記録することで、FAT更新の量は常にFATブロック1つ分のみとなり、連続する2つのFAT更新とFAT更新の間に記録されるリアルタイムデータ量は閾値以上のクラスタ数となることが保証される。そのため、FAT更新が頻繁に発生することによるバッファ溢れを防止し、リアルタイムデータ記録時のリアルタイム性を保証することが可能となる。
以上のように、閾値の設定によってデータ記録の速度を一定以上に確保することができる。この閾値の決定方法について以下に説明する。ここで説明する閾値は第1の閾値(BORDER)と呼び、連続するt回のFAT更新に挟まれた(t−1)回のデータ記録の期間内に最低限記録が必要なリアルタイムデータの量を示すものである。これは、各FATブロックに含まれる空き領域をリアルタイムデータ記録に使用するか否かを決定するのに用いられる。まず、連続する2回のFAT更新に挟まれるデータ記録期間内に、最低限記録が必要なリアルタイムデータの量からBORDERを決定する場合を説明する。このt=2におけるBORDERを特に、BORDER−1とする。
BORDER−1の決定方法を説明するにあたり、FAT1、FAT2、ディレクトリエントリの合計3つの書き込みを1セットのFAT更新と定義し、1セットのFAT更新の処理時間(T_FAT、以下Tfとする)を100msecと想定する。また、アクセス装置1が記録するリアルタイムデータのビットレート(TARGET_RATE、以下Trとする)を3MB/s、メモリカード2にリアルタイムデータを記録するレート(REC_RATE、以下Rrとする)を4MB/sと想定する。
この場合、リアルタイムデータ1秒分の記録に必要な時間(T_DATA、以下Tdとする)は、次の式で算出される。
Td=(Tr/Rr)×1000
すなわち、Td=750msecと算出される。また、1秒当たりに実施可能なFAT更新回数(Fc)は次の式で算出される。
Fc=(1000−Td)/Tf
すなわち、Fc=2.5回と算出される。そのため、連続する2セットのFAT更新に挟まれるデータ記録期間内で最低限記録が必要なクラスタ数は次の式で算出される。
BORDER−1=Rr×Td/1000/Fc/Cs
Csはクラスタサイズを意味しており、クラスタサイズが16kBの場合、BORDER−1=76.8と算出される。すなわち、BORDER−1として“77”を設定しBORDER−1以上の数のクラスタを用いれば、この例ではリアルタイムデータ記録時のリアルタイム性が保証できることになる。
続いて、本実施の形態の変形例について以下に示す。上記の方法でBORDER−1未満のFATブロックは“INVALID”として扱われ、当該FATブロックが管理する記録領域をリアルタイムデータの記録に用いることはない。しかしそのFATブロックの直前または直後に、大きな空き記録領域を管理するFATブロックを組み合わせることができれば、上記の例で“INVALID”となっているFATブロックでも用いることができる場合がある。この場合の閾値の決定について次に説明する。
ここでは、連続する3回のFAT更新に挟まれる2つのデータ記録期間内に、最低限記録が必要なリアルタイムデータの量からBORDERを決定する場合を説明する。このBORDERは、先に述べたBORDERの定義においてt=3の場合にあたる。今回のBORDERを、特にBORDER−2とする。説明に用いるFAT更新の定義や、Tf、Tr、Rr、Td、FAT更新回数であるFAT_COUNT(Fc)、クラスタサイズであるCLU_SIZE(Cs)の定義は先に示した通りである。
この場合のBORDER−2の決定は、2つのデータ記録期間内に最低限記録が必要なリアルタイムデータの量がもとになるので、次の式によって求められる。
BORDER−2=Rr×Td/1000/Fc/Cs×2
Csが16kBの場合、BORDER−2=153.6と算出される。すなわち、BORDER−2として“154”を設定しBORDER−2以上の数のクラスタを用いれば、リアルタイムデータ記録時のリアルタイム性が保証できることになる。
このように、連続する3回のFAT更新に挟まれる2つのデータ記録期間を考える場合、領域管理ブロック情報の生成処理が図13とは異なるので、以下に図19A,図19B及び図20を用いて説明する。
図19A,図19Bにおいて、まず現在参照しているFATブロックの番号を示すCOUNTERの値を“1”に設定する(S501)。COUNTERの値が示すFATブロック内の空きクラスタ数を算出して、WORK1とする(S502)。次に、COUNTERの値が“N”であるかどうかを確認する(S503)。COUNTERの値は“1”から始まるが、後の処理、S513からのループで帰ってきたCOUNTERの値は“1”より大きな値であるためS503において“N”であるかどうかの判断を行なう。
COUNTERの値が“N”でなければ、COUNTERの値に1を加算した番号のFATブロック内の空きクラスタ数を算出しWORK2とする(S505)。現在のCOUNTERの値は“1”であるので、2番目のFATブロックであるFATブロック2の空きクラスタ数をWORK2とする。しかしCOUNTERの値が“N”であれば、最後のFATブロックであるFATブロックNを参照していることを示しており、次に続くFATブロックは存在しないので、WORK2は“0”とする(S504)。
続いて、先に求めたWORK1とWORK2を合計し、空きクラスタ数を求める(S506)。求めた空きクラスタ数の値を予め決められたBORDER−2と比較する(S507)。空きクラスタ数がBORDER−2以上の場合は、COUNTERの値が示すFATブロックは、リアルタイムデータの記録に用いることができるので、当該FATブロックがリアルタイムデータの記録に対して有効であることを示すためにフラグを“VALID”に設定する(S508)。この“VALID”のフラグとWORK1を領域管理ブロック情報内にCOUNTERの値が示すFATブロックの情報として格納する(S511)。
逆に、空きクラスタ数がBORDER−2未満の場合は、COUNTERの値が示すFATブロックはリアルタイムデータの記録に用いることができない。このときは、当該FATブロックがリアルタイムデータの記録に有効ではないということを示すためにフラグを“INVALID”に設定する(S509)。
S509の次の探索済みブロック再判定の処理(S510)を、図20を用いて説明する。まず、COUNTERの値が“1”であるかどうかを判断し(S601)、“1”であればS511へ進み、“INVALID”のフラグとWORK1を領域管理ブロック情報内にCOUNTERの値が示すFATブロックの情報として格納する。COUNTERの値が“1”でなければ、COUNTERの値から1を減算してL_COUNTERとする(S602)。
L_COUNTERの値が示すFATブロック内の空きクラスタ数を求めてL_WORKとし(S603)、このL_WORKをS507で用いたBORDER−2と比較する(S604)。L_WORKがBORDER−2以上であれば、図20のフローに示す処理を終えてS511へ進み、“INVALID”のフラグとWORK1を領域管理ブロック情報内にCOUNTERの値が示すFATブロックの情報として格納する。
L_WORKがBORDER−2未満であれば、領域管理ブロック情報内のL_COUNTERの値が示すFATブロックの情報として“INVALID”のフラグを格納する(S605)。
次に、L_COUNTERの値が“1”かどうかの判定を行なう(S606)。L_COUNTERの値が“1”でなければ、L_COUNTERの値から1減算し(S607)、S603へとループして同じ処理を繰り返す。しかし、L_COUNTERの値が“1”であるということは、FATブロックの先頭であるFATブロック1を参照しているということを示しており、これよりさかのぼっては参照すべきFATブロックは存在しないので、探索済みブロック再判定の処理(S510)を終了し、S511へ進んで“INVALID”のフラグとWORK1を領域管理ブロック情報内に、COUNTERの値が示すFATブロックの情報として格納する。
図19A,図19Bに戻ってS511の処理の次は、現在のCOUNTERの値が“N”であるかどうかを判断する(S512)。“N”でなければCOUNTERの値に1を加算し(S513)、S502へとループして同じ処理を行ない、COUNTERが“N”になるまで同じ処理を繰り返す。“N”であることは、現在FATブロックNを参照していることを示し、これより後に参照すべきFATブロックは存在しないので、領域管理ブロック情報生成処理を終了する。
上記の領域管理ブロック情報の生成処理について、COUNTER、WORK1、WORK2に、実際の数値を用いて、図14、図19A,図19Bと図20、図21を参照しながら説明する。図21のWORK1、WORK2は図14の空きクラスタ数を用いたものであり、各FATブロックの空きクラスタ数は同じ数字を用いている。ここでBORDER−2は、154に設定されているとする。
S501で、COUNTERの値を1とすると、S502でのWORK1はFATブロック1が示す154である。S503においてCOUNTERの値は“N”ではないので、WORK2はFATブロック2が示す234であり、S506で2FATブロックの合計の空きクラスタ数は388となる。S507での比較によると空きクラスタ数はBORDER−2の値である154以上であるので、S508においてFATブロック1についてのフラグを“VALID”とする。S511に移って、COUNTERの値の通り、FATブロック1の情報としてWORK1を154、フラグを“VALID”として領域管理ブロック情報内に格納する。S512において、COUNTERの値は“N”ではなく“1”であるので、S513に移ってCOUNTERの値に1を加算してCOUNTERの値を2としてS502に進む。
COUNTERの値が2であれば、S505においてWORK1が234でWORK2が23であり、S506の合計空きクラスタ数は257となる。これもS507でBORDER−2以上であると判断されるので、S511でFATブロック2の情報としてWORK1を234、フラグを“VALID”として領域管理ブロック情報内に格納する。S513でCOUNTERの値に1を加算してCOUNTERの値を“3”としてS502にループする。
COUNTERの値が3のときは、S505においてWORK1が23でWORK2が56であり、S506の合計空きクラスタ数は79となる。この値はS507においてBORDER−2の値以上ではないので、S509においてFATブロック3についてのフラグを“INVALID“とする。
次に、S510の処理に移り、図20のS601でCOUNTERの値が1であるかを判断する。現在のCOUNTERの値は“3”であるので、S602において、L_COUNTER(=COUNTER−1)の値は“2”となる。S603ではL_COUNTERの値が“2”であることからFATブロック2内の空きクラスタ数L_WORKを算出し、L_WORKの値に234を得る。このL_WORKは2つのFATブロックの空き領域の合計ではなく、FATブロック2だけの空き領域であるが、それでもBORDER−2以上であるので、FATブロック3との組み合わせでもリアルタイムデータの記録に使用可能であるとしてFATブロック2の“VALID”のフラグは維持される。
もしここでのL_WORKが131であれば、FATブロック2のフラグはすでに“VALID”になっているが、BORDER−2未満であるのでS605の処理でFATブロック2のフラグは“INVALID“に設定しなおされる。この処理の根拠は次のように説明できる。つまり、FATブロック3のフラグが“INVALID“となり空きクラスタ数が0であると扱われているので、FATブロック3との組み合わせではBORDER−2以上にはならず、FATブロック2も用いることはできなくなるということである。このような処理をCOUNTERの値が“N”になるまで繰り返し、FATブロック番号に対して、WORK1とフラグを備えた、領域管理ブロック情報を生成する。
このような領域管理ブロック情報を生成し用いることで、FAT更新の回数がユーザデータ領域302内の空き記録領域の配置状態に左右されなくなり、バッファ溢れを防止し、リアルタイムデータ記録時のリアルタイム性を保証することが可能となる。更に、本発明のアクセス装置ではFATブロック内に含まれる空き記録領域が必ずしも連続している必要はないため、小さな空き記録領域が分散してFATブロック内に存在する場合においてもFAT更新の回数を抑制し、リアルタイムデータを記録することができ、ユーザデータ領域302内の空き記録領域を効率的に使用することが可能となる。
ここまで、本発明の実施の形態について説明してきたが、本発明は上記の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更することができる。本実施の形態において説明した各種の数値は一例であり、その他の値に変更して本発明を実施することができる。
例えば、FATブロックサイズとして512Bの場合について説明したが、16kB等に変更しても構わない。また、領域管理ブロック情報19をメモリカード挿入時に生成する場合について説明したが、静止画のデータを取り込むモードから動画のデータを取り込むモードに切換えた時や、アクセス装置の電源投入時など、挿入後の任意のタイミングで生成しても良い。さらに、FAT1、FAT2が更新される際に逐次領域管理ブロック情報19の内容を更新しても良い。
また、情報記録媒体としてメモリカードを例として説明したが、小さな単位での記録が比較的低速で、大きな単位での記録が比較的高速となるような特徴を有する情報記録媒体であれば、ハードディスクや光ディスク等、他の種類の情報記録媒体を使用しても構わない。
ハードディスク等でアクセス装置1に常時接続されている情報記録媒体の場合、アクセス装置1に対する電源投入と同時か、あるいは情報記録媒体を使用する直前に図11と同様の処理を実施すれば良い。この場合、S101、S102の処理は不要であり、必要であれば代わりに情報記録媒体固有の初期化処理を挿入すれば良い。
また、本実施の形態ではファイルシステムとしてFATファイルシステムを例に説明したが、その他のファイルシステムを用いても良い。例えば、UDFファイルシステムでは空き記録領域の管理をSpaceBitMapと呼ばれるビットマップで管理している。本発明をUDFファイルシステムに適用する場合、FATブロックの代わりに、SpaceBitMapを固定長のブロック単位に分けて管理するSpaceBitMapブロックを用いて制御すれば良い。
これまでに、BORDER−1未満またはBORDER−2未満の空き記録領域しか存在しないFATブロックへはリアルタイムデータを記録しない旨を説明した。しかし、このようなFATブロックへはリアルタイム性を必要としない静止画等のデータを記録することで更に記録領域を効率的に使用することが可能となる。
本実施の形態では、先に述べたBORDERの定義における、t=2とt=3の場合を説明した。しかし、これらtの値にかかわらず、tに4以上の値を設定してもよい。こうすることで、空き記録領域量が少ないFATブロックでも、その前後に空き記録領域量が多いFATブロックがあれば、リアルタイムデータの記録が可能となり、より空き記録領域を効率的に使用することができる。
更に本実施の形態では、「該当するFATブロック内に含まれる全空きクラスタ数」を算出し、BORDER−1またはBORDER−2と比較してフラグを決定する方法について説明したが、次のように変更しても良い。
(1)連続する複数のFATエントリを1つのデータ記録単位とする方法がある。例えば、図22Aは1つのFATブロックを示しており、四角形の1つ1つはFATエントリである。○印、×印はそのFATエントリが管理するクラスタの状態を表し、○印はクラスタが空きであること、×印はクラスタに有効なデータが既に記録されていることを示す。図が示すように先頭のFATエントリから順に2つずつを1つのデータ記録単位として組にして、このデータ記録単位内に含まれる2つのFATエントリが○印である場合にそのデータ記録単位を“空きデータ記録単位”とする。次に、FATブロック内に含まれる“空きデータ記録単位”が管理する空きクラスタの数をBORDER−1またはBORDER−2と比較してFATブロックの使用可能、不能を示すフラグを決定する。こうすることで少なくとも2つの連続した空きクラスタをリアルタイムデータの記録に使うことができる。
(2)別の方法として、連続する複数のクラスタで1つのスロットを構成することが考えられる。例えば図22Bは、先頭のFATエントリから順に8つずつを1つの組にしてスロットを構成した状態を表している。図22Bも1つのFATブロックを示しており、四角形、○印、×印の示す意味も(A)と同じである。今、1つのスロット内の○印の数は、スロット(1)は5つ、(2)は6つ、(3)は2つ、(4)は4つである。○印はそのFATエントリが管理するクラスタが空きであることを表すので、スロット(1)は5つの空きクラスタを管理していることになり、スロット(2)、(3)、(4)も○印と同数の空きクラスタを管理している。ここで、一定数以上の空きクラスタを管理しているスロットを選ぶために第2の閾値を導入する。第2の閾値は1つのスロットで確保したい最少の空きクラスタの数であり、1つのスロット内の○印の数と比較することに用いられる。ここで第2の閾値を5とすると、スロット(1)と(2)は○印が5つ以上あり第2の閾値以上のスロットとなり、スロット(3)と(4)は第2の閾値以下のスロットとなる。この第2の閾値以上のスロット(1)と(2)を“空きスロット”として扱い、1つのFATブロック内の全ての空きスロットに含まれる○印、つまり空きクラスタの数を合計してこの合計をBORDER−1またはBORDER−2と比較する。この比較によってFATブロックの使用可能、不能を示すフラグが決定する。
(2)で述べたスロットは、先の(1)で述べた記録単位とは異なる。スロット、記録単位とも連続する複数のクラスタで構成され、リアルタイムデータの記録をより高速で行なうことを目的にしたものであるが、構成に用いられるクラスタの数が違い、スロットの方がより多くのクラスタで構成される。
例えば、フラッシュメモリを用いたメモリカードの場合、消去ブロックサイズ内に記録するデータ量と、記録速度の関係はほぼ比例に近い関係になることから、消去ブロックサイズ内に記録するデータ量が増加すれば、記録速度も高速になる。そのため、1つの消去ブロックを構成するクラスタ(ここでは、32クラスタ)を管理している全部のFATエントリを1つのスロットとして設定し、FATブロックを1以上のスロット(ここでは、8スロット)で構成する。この上で、一定以上の空き記録領域が存在するスロットのみを選択すると、1回の消去で記録できる新しいデータの量も一定以上が確保されることとなり、高速の記録速度を保証することが可能となる。
また、領域管理ブロック情報19にフラグを格納する例について説明したが、S403の判定処理において毎回、第1の閾値と空きクラスタ数を比較するようにすればフラグは不要であり、領域管理ブロック情報19にフラグを格納する必要はない。
本発明に関わるアクセス装置は、ファイルシステムにより管理された情報記録媒体に対し、FAT等の領域管理情報を固定長のブロック単位で管理し、閾値以上の空き記録領域を含む領域管理情報ブロックに含まれる空き記録領域のみをリアルタイムデータの記録に使用する。これにより、ユーザデータ領域内の空き記録領域の配置状態によらず、FAT更新が頻繁に発生することによるバッファ溢れを防止し、リアルタイムデータ記録時のリアルタイム性を保証することが可能となる。このようなアクセス装置は、動画データ、音声データ等をリアルタイムに記録するポータブルムービー、DVDレコーダ、HDDレコーダ、レコーダ機能付きデジタルテレビ、デジタルスチルカメラ、ICレコーダ等として利用することができる。

Claims (4)

  1. 不揮発性メモリを含む情報記録媒体にアクセスするアクセス装置であって、
    不揮発性メモリは、
    一意の番号を持つクラスタが複数集まって構成されるデータ記録領域と、
    前記データ記録領域のクラスタに1対1で対応したエントリ情報を複数保持する領域管理情報と、
    を有し、
    前記領域管理情報は、
    前記番号が連続した第1定数のクラスタに対応する複数のエントリ情報が、1つの領域管理ブロックとして管理され、当該領域管理ブロックを複数持ち、
    前記領域管理情報は、
    前記番号が連続した第2定数のクラスタに対応する複数のエントリ情報が、1つのスロットとして管理され、当該スロットを複数持ち、
    前記アクセス装置は、
    前記スロットに含まれるエントリ情報に対応したクラスタの内、空きクラスタの数が第2の閾値以上の場合、当該スロットを空きスロットと判断し、前記領域管理ブロックの内、すべての空きスロットに含まれる空きクラスタの数が第1の閾値以上の場合、当該領域管理ブロックを書き込み可能なブロックと判断する領域管理ブロック制御部と、
    前記データ記録領域にファイルデータを書き込む場合、前記領域管理ブロック制御部で書き込み可能と判断された領域管理ブロックを用いて当該ファイルデータの書き込みを行なう記録制御部と、
    を備えるアクセス装置。
  2. 前記第1の閾値は、連続するt回の前記領域管理情報の更新処理に挟まれる(t−1)回のデータ記録期間内で最低限記録しなければならないファイルデータが記録できるクラスタ数であり、
    tは、2以上の整数である、
    請求項1に記載のアクセス装置。
  3. 前記記録制御部は、リアルタイムデータを記録する場合に限り、前記書き込みを行なう、
    請求項1に記載のアクセス装置。
  4. 前記第2定数は、前記第1定数よりも小さい、
    請求項1に記載のアクセス装置。
JP2007536454A 2005-09-22 2006-09-12 情報記録媒体アクセス装置、及びデータ記録方法 Expired - Fee Related JP4859837B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007536454A JP4859837B2 (ja) 2005-09-22 2006-09-12 情報記録媒体アクセス装置、及びデータ記録方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005276078 2005-09-22
JP2005276078 2005-09-22
PCT/JP2006/318023 WO2007034706A1 (ja) 2005-09-22 2006-09-12 情報記録媒体アクセス装置、及びデータ記録方法
JP2007536454A JP4859837B2 (ja) 2005-09-22 2006-09-12 情報記録媒体アクセス装置、及びデータ記録方法

Publications (2)

Publication Number Publication Date
JPWO2007034706A1 JPWO2007034706A1 (ja) 2009-03-19
JP4859837B2 true JP4859837B2 (ja) 2012-01-25

Family

ID=37888757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007536454A Expired - Fee Related JP4859837B2 (ja) 2005-09-22 2006-09-12 情報記録媒体アクセス装置、及びデータ記録方法

Country Status (5)

Country Link
US (1) US7984231B2 (ja)
EP (1) EP1936508B1 (ja)
JP (1) JP4859837B2 (ja)
CN (1) CN101268449B (ja)
WO (1) WO2007034706A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
JP2009003784A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
JP2009003783A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
US8086819B2 (en) * 2007-10-05 2011-12-27 Diskeeper Corporation Solid state drive optimizer
JP5515218B2 (ja) * 2008-01-16 2014-06-11 ティアック株式会社 データアクセス方法およびデータアクセス装置
JP4471007B2 (ja) * 2008-02-05 2010-06-02 ソニー株式会社 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体
TWI372974B (en) * 2008-03-24 2012-09-21 Phison Electronics Corp Management method, management apparatus and controller for memory data access
KR101506578B1 (ko) * 2008-07-17 2015-03-30 삼성전자주식회사 데이터 보안을 위한 파일 시스템 구성 방법 및 장치, 그에의해 만들어진 데이터 보안 영역에 접근하는 방법 및 장치,그에 따른 데이터 저장 장치
US7849365B2 (en) * 2008-07-30 2010-12-07 Apple Inc. Method for reducing host device to electronic device communication errors
US20100161952A1 (en) * 2008-12-18 2010-06-24 Texas Instruments Incorporated Performance optimizations by dynamic reduction of file allocation tables
JP4816740B2 (ja) * 2009-02-09 2011-11-16 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
CN101634997B (zh) * 2009-06-02 2011-10-05 福州思迈特数码科技有限公司 增强基于NAND Flash的FAT文件***稳定性的方法
US20110258372A1 (en) * 2009-07-29 2011-10-20 Panasonic Corporation Memory device, host device, and memory system
WO2011060603A1 (zh) * 2009-11-19 2011-05-26 青岛海信移动通信技术股份有限公司 一种txt文件的解码、阅读方法及装置
JP5523128B2 (ja) * 2010-02-03 2014-06-18 キヤノン株式会社 記録装置及びその制御方法
JP5455689B2 (ja) * 2010-02-03 2014-03-26 キヤノン株式会社 記録装置及び方法
JP5406750B2 (ja) * 2010-02-03 2014-02-05 キヤノン株式会社 記録装置及びその制御方法
TWI475564B (zh) * 2010-04-21 2015-03-01 Silicon Motion Inc 記憶體之資料寫入方法及資料儲存裝置
TWI514136B (zh) 2010-12-28 2015-12-21 Silicon Motion Inc 快閃記憶裝置及其資料寫入方法
CN102541464B (zh) * 2010-12-30 2014-07-23 慧荣科技股份有限公司 快闪存储装置及其数据写入方法
CN102314490B (zh) * 2011-08-16 2013-07-10 晨星软件研发(深圳)有限公司 一种Linux FAT文件***修复方法及装置
TWI733568B (zh) * 2020-08-27 2021-07-11 慧榮科技股份有限公司 記憶裝置、快閃記憶體控制器及其存取方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56137442A (en) * 1980-03-31 1981-10-27 Nec Corp Space managing system in access managing device of random access file
JPH07325669A (ja) * 1994-05-31 1995-12-12 Mitsubishi Electric Corp ディスク管理方法
JP2005050383A (ja) * 2002-02-08 2005-02-24 Sanyo Electric Co Ltd ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09251407A (ja) 1996-03-14 1997-09-22 Matsushita Electric Ind Co Ltd 記憶領域管理方法及び記憶装置
KR100704998B1 (ko) 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
US7509342B2 (en) 2002-02-08 2009-03-24 Sanyo Electric Co., Ltd. File data storage management method, file data storage device, program executing processing for storing file data, and storage medium
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
JP4009840B2 (ja) * 2002-06-27 2007-11-21 ソニー株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP4036056B2 (ja) * 2002-08-13 2008-01-23 ソニー株式会社 記録装置および方法、記録媒体、並びにプログラム
EP1581945A1 (en) * 2002-12-30 2005-10-05 Koninklijke Philips Electronics N.V. Record carrier with protective linking areas
CN101604313B (zh) 2003-02-20 2012-07-04 松下电器产业株式会社 信息记录介质以及其区域管理方法
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
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
WO2005055064A1 (ja) * 2003-12-03 2005-06-16 Matsushita Electric Industrial Co., Ltd. 情報記録媒体のデータ処理装置及びデータ記録方法
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
WO2006003883A1 (ja) 2004-06-30 2006-01-12 Matsushita Electric Industrial Co., Ltd. 記録媒体並びに記録媒体に情報を記録する記録装置及び記録方法
JP2006285669A (ja) * 2005-03-31 2006-10-19 Toshiba Corp ホスト機器
JP4603953B2 (ja) * 2005-08-12 2010-12-22 キヤノン株式会社 画像データ記録装置及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56137442A (en) * 1980-03-31 1981-10-27 Nec Corp Space managing system in access managing device of random access file
JPH07325669A (ja) * 1994-05-31 1995-12-12 Mitsubishi Electric Corp ディスク管理方法
JP2005050383A (ja) * 2002-02-08 2005-02-24 Sanyo Electric Co Ltd ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体

Also Published As

Publication number Publication date
US20090180209A1 (en) 2009-07-16
CN101268449A (zh) 2008-09-17
US7984231B2 (en) 2011-07-19
EP1936508A4 (en) 2010-09-29
EP1936508B1 (en) 2019-07-03
EP1936508A1 (en) 2008-06-25
CN101268449B (zh) 2012-04-04
WO2007034706A1 (ja) 2007-03-29
JPWO2007034706A1 (ja) 2009-03-19

Similar Documents

Publication Publication Date Title
JP4859837B2 (ja) 情報記録媒体アクセス装置、及びデータ記録方法
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
US7003619B1 (en) Memory device and method for storing and reading a file system structure in a write-once memory array
JP5129156B2 (ja) アクセス装置、および、ライトワンス記録システム
US8069306B2 (en) Data area managing method in information recording medium and information processor employing data area managing method
US20090157756A1 (en) File System For Storing Files In Multiple Different Data Storage Media
EP1729218A1 (en) Nonvolatile storage system
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
JPWO2005029311A1 (ja) 半導体メモリカード、半導体メモリ制御装置及び半導体メモリ制御方法
JP2010020431A (ja) 上位装置から指定されるデバイスに関する記憶容量を変更するストレージシステム及び方法
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
US20100103549A1 (en) Data archive system
CN112783449A (zh) 数据迁移方法及装置
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP4130808B2 (ja) フォーマット方法
JP2017049897A (ja) ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法
JP5594647B2 (ja) ストレージ装置及びその制御方法
JP2006252137A (ja) 不揮発性記憶装置の最適化方法
JP2010026717A (ja) 半導体記憶装置
JP6464606B2 (ja) ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法
JP2008262452A (ja) 記録デバイスのキャッシュ方法および記録装置
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
JP4648196B2 (ja) 情報記録媒体、情報記録媒体に対するアクセス装置及び領域設定方法
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JPH08272654A (ja) ファイル管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090904

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

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: 20111025

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: 20111101

R150 Certificate of patent or registration of utility model

Ref document number: 4859837

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees