JP4599450B2 - 電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム - Google Patents

電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム Download PDF

Info

Publication number
JP4599450B2
JP4599450B2 JP2009106846A JP2009106846A JP4599450B2 JP 4599450 B2 JP4599450 B2 JP 4599450B2 JP 2009106846 A JP2009106846 A JP 2009106846A JP 2009106846 A JP2009106846 A JP 2009106846A JP 4599450 B2 JP4599450 B2 JP 4599450B2
Authority
JP
Japan
Prior art keywords
file
file data
area
written
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
JP2009106846A
Other languages
English (en)
Other versions
JP2010257250A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009106846A priority Critical patent/JP4599450B2/ja
Priority to US12/620,318 priority patent/US20100274828A1/en
Publication of JP2010257250A publication Critical patent/JP2010257250A/ja
Application granted granted Critical
Publication of JP4599450B2 publication Critical patent/JP4599450B2/ja
Expired - Fee Related 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/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
    • 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/322Indexing; 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 used signal is digitally coded

Description

本発明は、電子機器、ファイルシステムの記憶領域割当方法、および記憶領域割当プログラムに関する。
現在、メモリカードやHDD(Hard Disk Drive)などの記憶装置へのデータの書き込みを制御するファイルシステムは、アプリケーションなどからのデータの書き込み要求に応じて、ファイルを構成するファイルデータを記憶装置に書き込む場合、記憶装置内の先頭の領域から順にファイルデータを書き込んでいる(特許文献1参照)。
特開2006−285669号公報
一般に、ファイルを構成するファイルデータを記憶装置に書き込む際、ファイルを構成する個々のファイルデータは、記憶装置に連続して書き込まれることが望ましい。特に、メモリカードなどの半導体メモリにおいては、ある程度大きい単位でデータの書き込みを行った方が、記憶装置へのデータの書き込みや読み出しの際の処理速度が速くなるという特徴があるからである。例えば、メモリカードは、128KBのデータ単位で記憶装置への書き込みが行われると、記憶装置へのデータの書き込みや読み出しの際の処理速度が速くなる。
しかし、アプリケーションなどからのデータの書き込み要求に応じて、複数のファイルを構成するファイルデータを記憶装置に同時に書き込む場合には、各ファイルを構成するファイルデータがランダムに記憶装置に書き込まれるため、同じファイルを構成するファイルデータの連続性が記憶装置上で失われてしまう、という課題がある。
本発明は、上記に鑑みてなされたものであって、1つのファイルを構成するファイルデータの書き込みに多少の時間が空いても、ファイルデータの連続性を損なわずに書き込める可能性を向上させることができる電子機器、ファイルシステムの記憶領域割当方法、および記憶領域割当プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、記憶媒体の記憶領域のうち、ファイルを構成するファイルデータを書き込むためのデータ記憶領域を、所定の大きさの複数のクラスタを有する複数の管理領域に分割する分割手段と、前記ファイルデータの書き込み要求が有った場合、書き込み要求が有ったファイルデータと同一の前記ファイルを構成する前記ファイルデータが書き込まれた前記管理領域において、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれたクラスタに続くクラスタを、書き込み要求が有った前記ファイルデータを書き込む書込み領域割り当てる割当手段と、を備え、前記割当手段は、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていない場合、前記ファイルデータが未だ書き込まれていない前記管理領域が有するクラスタを、前記書込み領域に割り当てることを特徴とする。
また、本発明は、ファイルシステムで実行されるファイルシステムの記憶領域割当方法であって、前記ファイルシステムは、記憶部と制御部とを備え、前記制御部は、分割手段が、記憶媒体の記憶領域のうち、ファイルを構成するファイルデータを書き込むためのデータ記憶領域を、所定の大きさの複数のクラスタを有する複数の管理領域に分割する分割工程と、割当手段が、前記ファイルデータの書き込み要求が有った場合、書き込み要求が有ったファイルデータと同一の前記ファイルを構成する前記ファイルデータが書き込まれた前記管理領域において、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータか書き込まれたクラスタに続くクラスタを、書き込み要求が有った前記ファイルデータを書き込む書込み領域割り当てる割当工程と、を有し、前記割当工程は、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていない場合、前記ファイルデータが未だ書き込まれていない前記管理領域が有するクラスタを、前記書込み領域に割り当てることを特徴とする。
また、本発明は、コンピュータを、記憶媒体の記憶領域のうち、ファイルを構成するファイルデータを書き込むためのデータ記憶領域を、所定の大きさの複数のクラスタを有する複数の管理領域に分割する分割手段と、前記ファイルデータの書き込み要求が有った場合、書き込み要求が有ったファイルデータと同一の前記ファイルを構成する前記ファイルデータが書き込まれた前記管理領域において、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれたクラスタに続くクラスタを、書き込み要求が有った前記ファイルデータを書き込む書込み領域割り当てる割当手段と、として機能させ、前記割当手段は、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていない場合、前記ファイルデータが未だ書き込まれていない前記管理領域が有するクラスタを、前記書込み領域に割り当てることを特徴とする。
本発明によれば、1つのファイルを構成するファイルデータの書き込みに多少の時間が空いても、ファイルデータの連続性を損なわずに書き込める可能性を向上させることができる、という効果を奏する。
図1は、本発明の一実施の形態にかかるPCおよびPCの管理対象のメモリカードの主要部を概略的に示す機能ブロック図である。 図2は、FATファイルシステムにより論理フォーマットされたメモリ空間の状態を示している図である。 図3は、FATおよびファイルエントリの一例を示す図である。 図4は、本実施の形態にかかるファイルシステムによって論理フォーマットされたメモリのメモリ空間を示している図である。 図5は、本実施の形態にかかるファイルシステムによる記憶領域割当処理の流れを示すフローチャートである。 図6は、ファイルデータブロックを複数の管理領域に分割した例を示す図である。 図7は、書込み領域の割り当てを説明するための図である。 図8は、従来の書込み領域の割り当てを説明するための図である。 図9は、本実施の形態にかかるPCの基本構成を示すブロック図である。
以下に添付図面を参照して、この発明にかかる電子機器、ファイルシステムの記憶領域割当方法、および記憶領域割当プログラムの最良な実施の形態を詳細に説明する。本実施の形態では、電子機器としてパーソナルコンピュータ(PC)に本発明を適用した例について説明するが、デジタルテレビ、レコーダなど、管理対象の記憶媒体に記憶されるデータを管理するためのファイルシステムを備えるファイルシステム搭載機器であれば、同様に本発明を適用することができる。
図1は、本発明の一実施の形態にかかるPCおよびPCの管理対象のメモリカードの主要部を概略的に示す機能ブロック図である。各機能ブロックは、ハードウェア、コンピュータソフトウェア、のいずれかまたは両者の組み合わせとして実現することができる。このため、各ブロックは、これらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明される。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、そのような実現を決定することは本発明の範疇に含まれるものである。
図1に示すように、PC100は、挿入されるメモリカード200に対してアクセスを行うためのハードウェアおよびソフトウェア(システム)を備えている。PC100は、アプリケーション、オペレーティングシステム等のソフトウェア101を備えている。ソフトウェア101は、メモリカード200へのデータの書き込みやメモリカード200からのデータの読み出しが、図示しない操作部を介してユーザから指示されると、CPU(Central Processing Unit)により実行されるものである。ソフトウェア101を実行したCPUは、ファイルシステム102を介して、メモリカード200に対してデータの書き込みおよびデータの読み出しを指示する。
ファイルシステム102は、管理対象の記憶媒体(メモリカード200)に記録されているファイルを管理するための仕組みであり、記憶媒体の記憶領域内に管理情報を記録し、この管理情報を用いてファイルを管理する。ファイルシステム102では、記憶媒体におけるファイルやフォルダなどのディレクトリ情報の作成方法、ファイルやフォルダなどの移動方法や削除方法、データの記録方式、管理情報が記録されている領域の場所や利用方法などが定められている。ファイルシステム102は、FATファイルシステムを基礎としており、本明細書を通じた動作を実行可能に構成されており、具体的な動作に関しては適宜説明する。
PC100は、メモリカードインタフェース103を有する。メモリカードインタフェース103は、PC100とメモリカード200(コントローラ201)との間のインタフェース処理を行うのに必要なハードウェア、ソフトウェアからなる。PC100は、メモリカードインタフェース103を介してメモリカード200と通信を行う。メモリカードインタフェース103は、PC100とメモリカード200とが通信するのに必要な様々な取り決めを規定し、後述のメモリカード200のメモリカードインタフェース201aと相互に認識可能な各種のコマンドの組を備えている。また、メモリカードインタフェース103は、メモリカード200のメモリカードインタフェース201aと接続可能なハードウェア上の構成(ピンの配置、数等)も含む。
メモリカード200は、PC100に接続されたとき、およびオフ状態のPC100に挿入された状態でPC100がオンされたときに電源供給を受けて初期化動作を行った後、PC100からのアクセスに応じた処理を行う。メモリカード200は、NAND型フラッシュメモリなどのメモリ202、メモリ202を制御するためのコントローラ201を有する。
メモリ202は、データを不揮発に記憶し、複数のメモリセルからなるページと呼ばれる単位でデータの書き込みおよび読み出しを行う。ページには、各ページに固有の物理アドレスが割り当てられている。また、メモリ202は、複数のページからなる物理ブロックと呼ばれる単位でデータの消去を行う。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
コントローラ201は、メモリ202によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ(または物理ブロック)が、PC100により割り当てられたどの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ(または物理ブロック)が消去状態(何も書き込まれていない、または無効なデータを保持している状態)であるかを管理することをいう。
コントローラ201は、メモリカードインタフェース201a、MPU(Micro Processing Unit)201b、ROM(Read Only Memory)201c、RAM(Random Access Memory)201d、NANDインタフェース201eを含んでいる。
メモリカードインタフェース201aは、PC100とコントローラ201との間のインタフェース処理を行うのに必要なハードウェア、ソフトウェアからなる。メモリカード200(コントローラ201)は、メモリカードインタフェース201aを介してPC100と通信を行う。メモリカードインタフェース201aは、メモリカードインタフェース103と同様に、両者の通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウェア上の構成(ピンの配置、数等)も含む。
メモリカードインタフェース201aは、レジスタ201fを含んでいる。
MPU201bは、メモリカード200全体の動作を司る。MPU201bは、例えば、メモリカード200が電源供給を受けた際に、ROM201c内に格納されているファームウェア(制御プログラム)をRAM201d上に読み出して所定の処理を実行する。MPU201bは、制御プログラムに従って、各種のテーブル(後述する)をRAM201d上で作成したり、PC100から書き込みコマンド、読み出しコマンド、消去コマンドを受けてメモリ202に対する所定の処理を実行したりする。
ROM201cは、MPU201bにより制御される制御プログラムなどを格納する。RAM201dは、MPU201bの作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する。このようなテーブルとして、ファイルシステム102によってデータに割り当てられた論理アドレスを有するデータを実際に記憶しているページの物理アドレスの変換テーブル(論物テーブル)が含まれる。NANDインタフェース201eは、コントローラ201とメモリ202とのインタフェース処理を行う。
メモリ202内の記憶領域は、保存されるデータの種類に応じて複数の領域に区分けされている。この複数の領域は、システムデータ領域202a、機密データ領域202b、ユーザデータ領域202c、を含む。
システムデータ領域202aは、コントローラ201が、その動作に必要なデータを保存するためにメモリ202内で確保しておく領域であり、主にメモリカード200に関する管理情報を格納し、メモリカード200のセキュリティ情報やメディアIDなどのカード情報を格納する。機密データ領域202bは、暗号化に用いる鍵情報や認証時に使用する機密データを保存しており、PC100はアクセスできない。
ユーザデータ領域202cは、PC100が自由にアクセスおよび使用することが可能で、例えばAVコンテンツファイルや画像データ等のユーザデータを格納する。以下の説明で、メモリ202は、このユーザデータ領域202cを指すものとする。なお、コントローラ201は、ユーザデータ領域202cの一部を確保し、自身の動作に必要な制御データ(論物テーブル)を保存する。ユーザデータ領域202cはPC100から別のボリュームとして論理フォーマットされてファイル管理される。
次に、メモリ202の論理フォーマットについて説明する。メモリ202は、以下の形式で論理フォーマットされる。この論理フォーマットは、本実施の形態にかかるファイルシステム(例えばPC100内のファイルシステム102)によって行われる。
本実施の形態にかかるファイルシステム102によるメモリ202の論理フォーマットの説明に先立って、このファイルシステム102が基礎としているFATファイルシステムの概要について、図2および図3を用いて説明する。図2は、FATファイルシステムにより論理フォーマットされたメモリ空間の状態を示している。そして、以下に示す管理データの幾つかが書き込まれる。ここでいうメモリ空間は、FATファイルシステムが自由にアクセスできるメモリ領域であり、図1のメモリ202においては、ユーザデータ領域202cに一致する。
図2に示すように、FATファイルシステムは、管理対象のメモリのメモリ空間を所定の大きさ(例えば16kバイト)のクラスタに分割して管理する。メモリ空間30の最低位から所定の範囲のクラスタ番号の領域には管理データが割り当てられる。以下、管理データを記憶する領域を、管理データブロック31と称する。管理データブロック31より高位のクラスタ番号の領域は、メモリ202(メモリカード200)の記憶領域のうち、ファイルを構成するファイルデータを書き込むためのデータ記憶領域(以下、ファイルデータブロック32とする)である。
管理データブロック31は、さらに、パーティションテーブルに割り当てられるパーティションテーブル領域33、ブートセクタに割り当てられるブートセクタ領域34、FAT1、FAT2に割り当てられるFAT1領域35およびFAT2領域36、ルートディレクトリエントリに割り当てられるルートディレクトリエントリ領域37に分けられる。パーティションテーブル領域33は、各パーティションのファイルシステムタイプとその先頭セクタ等の情報を格納している。ブートセクタ領域34は、パーティションテーブルが示す先頭セクタに位置し、BPB(BIOS Parameter Block)を格納している。BPBは、ファイルシステムが使用する、メモリ202の様々なパラメータを示している。FATファイルシステムは、メモリ202を論理フォーマットする時、このパラメータを書き込む。FATファイルシステムは、起動時にBPBを読み込むことにより、ファイルフォーマットのパラメータを認識する。
FAT1領域35は、メモリに書き込まれ、クラスタの大きさに分割されたファイルデータの一部(以下、単にファイルデータと称する)がどのクラスタに記憶されているか、およびファイルデータを復元するためのクラスタのつながりを示す内容を格納している。FAT2領域36は、FAT1のバックアップであり、FAT1と同じ内容を格納している。
1つのファイルを構成する各ファイルデータが、連続するクラスタに割り当てられることが好ましいので、FATファイルシステムは、空いているクラスタを、クラスタ番号の順に従ってファイルデータに割り当てる。そして、FAT1、FAT2は、ファイルデータを格納しているクラスタの接続関係を格納している。FAT1、FAT2(以下、単にFATと記載する)が格納している情報をトレースすることにより、元のファイルが復元される。
ルートディレクトリエントリ領域37は、ルートディレクトリに属する各ファイルのファイルエントリを記憶する。ファイルエントリには、ファイル名またはフォルダ名、ファイルサイズ、属性およびファイルの更新日時情報、どのクラスタがファイルの先頭クラスタであるかを示すフラグ等が含まれる。なお、FATフォーマット形式のバージョン(例えば、FAT16、FAT32、ex(extended)FATなど)によっては、ルートディレクトリエントリをFATの後の任意のアドレスに置くことができる。
あるファイルが、ルートディレクトリに属するサブディレクトリに属する場合、ルートディレクトリエントリ領域37には、ルートディレクトリに属するサブディレクトリのエントリ(サブディレクトリエントリ)に割り当てられるクラスタの番号が記載されている。そして、サブディレクトリエントリ領域38は、自身に属する各ファイルのファイルエントリを保持している。図2に示すように、サブディレクトリエントリは、FATファイルシステムによって、ファイルデータブロック32内の任意のクラスタ38に書き込まれる。サブディレクトリエントリも管理データに属し、頻繁に書き換えられることが多い。
図3は、FATおよびファイルエントリの一例を示す図である。図3に示すように、ルートディレクトリエントリは、ファイルエントリとして各ファイル「FILE1.txt」、「FILE2.txt」、「FILE3.txt」の先頭のクラスタの位置情報を格納している。「FILE1.txt」、「FILE2.txt」、「FILE3.txt」、の先頭クラスタは、それぞれクラスタ0002、0005、0007である。
FATには、各クラスタの次に接続されるべきクラスタの番号が記載されている。例えば、「FILE1.txt」の場合、先頭のクラスタ0002のデータに続くデータを格納するクラスタはクラスタ0003で、クラスタ0003のデータに続くデータを格納するクラスタはクラスタ0004であることが分かる。そしてクラスタ0002、0003、0004のデータを接続することにより、「FILE1.txt」のファイルが復元される。ファイルデータの最後の部分を格納するクラスタには、「FFFF」が書き込まれている。
次に、図4を用いて、FATファイルシステムを基礎とする、本実施の形態にかかるファイルシステム102について説明する。本実施の形態にかかるファイルシステム102は、以下に示す形にメモリ202を論理フォーマットする。そして、ファイルシステム102によって、メモリ202は論理フォーマットされている。
図4は、本実施の形態にかかるファイルシステムによって論理フォーマットされたメモリのメモリ空間を示している。図4のメモリ空間50は、フォーマット対象のメモリ202の記憶領域のうち、ファイルシステム102が使用可能なユーザデータ領域202cに一致する。
図4に示すように、ファイルシステム102は、ファイルシステム102がファイルデータを管理するために用いる管理データが割り当てられる領域を、最低位から所定の範囲のクラスタ番号(または論理アドレス)の領域に限定する。すなわち、管理データには、この所定の範囲内のクラスタ番号(または論理アドレス)の領域が割り当てられる。ここで、管理データとして、FATファイルシステムで用いられるものと同じ、パーティションテーブル、ブートセクタ、FAT1、FAT2、ルートディレクトリエントリ、サブディレクトリエントリが含まれる。
管理データを格納するブロック(管理データブロック51)には、パーティションテーブルに割り当てられるパーティションテーブル領域53、ブートセクタに割り当てられるブートセクタ領域54、FAT1,FAT2に割り当てられるFAT1領域55,FAT2領域56、ルートディレクトリエントリに割り当てられるルートディレクトリエントリ領域57、サブディレクトリエントリに割り当てられるサブディレクトリエントリ領域58が含まれる。パーティションテーブル領域53乃至サブディレクトリエントリ領域58が格納するデータは、従来のFATファイルシステムにおいて定義されているものと同じである。
メモリ空間50の、管理データブロック51を除く部分は、ファイルデータの書き込み専用のファイルデータブロック52である。管理データブロック51の容量は、メモリ空間50の大きさと、確保されることが求められるファイルデータブロック52の大きさとを考慮して決定される。例えば、パーティションテーブル領域53、ブートセクタ領域54、FAT1領域55、FAT2領域56、ルートディレクトリエントリ領域57、サブディレクトリエントリ領域58の容量は、それぞれ121.5kB、0.5kB、123kB、123kB、16kB、64kBである。ファイルデータブロック52の容量は、1005632kBである。
なお、ファイルシステム102は、FATファイルシステム(FAT16,32、exFAT等の違いを問わない)を基礎としている。さらに、FATファイルシステムに限らず、FATの拡張を含む類似のファイルシステムを利用することもできる。例えば、管理データを用いてファイルデータを管理し、管理データが頻繁に書き換えられるようなファイルシステムが該当する。
本実施の形態にかかるメモリカード200は、ファイルシステム102によって論理フォーマットされている。したがって、メモリ202は、図4のように論理フォーマットされている。
次に、図5を用いて、図4のように論理フォーマットされているメモリ202に書き込むファイルデータへの記憶領域割当処理について説明する。図5は、本実施の形態にかかるファイルシステムによる記憶領域割当処理の流れを示すフローチャートである。
まず、PC100が起動されると(ステップS601)、ファイルシステム102は、メモリカードインタフェース103へのメモリカード200の接続を待つ(ステップS602:No)。そして、メモリカードインタフェース103にメモリカード200が接続されると(ステップS602:Yes)、ファイルシステム102は、メモリ202のユーザデータ領域202cにアクセスし、ユーザデータ領域202c内のパーティションテーブル領域53からパーティションテーブルを読み込む(ステップS603)。
次に、ファイルシステム102は、読み込んだパーティションテーブルから、ユーザデータ領域202c内の領域のうちFAT1,FAT2が書き込まれたFAT1領域55,FAT2領域56のクラスタ番号(または論理アドレス)を特定するとともに(ステップS604)、当該読み込んだパーティションテーブルが示す先頭セクタに位置するブートセクタ領域54の解析処理を実行する(ステップS605)。具体的には、ファイルシステム102は、ブートセクタ領域54の解析処理を実行することにより、ユーザデータ領域202c内の領域のうち、ファイルデータブロック52のクラスタ番号やサイズ、ルートディレクトリやサブディレクトリが書き込まれたルートディレクトリエントリ領域57,サブディレクトリエントリ領域58のクラスタ番号やサイズなど、メモリ202の様々なパラメータを示すBPBを読み込む。
さらに、ファイルシステム102(分割手段)は、ブートセクタ領域54の解析処理により読み込んだクラスタ番号やサイズが示すファイルデータブロック52を複数の管理領域に分割するとともに、各管理領域の最下位(または最上位)のクラスタのクラスタ番号を分割情報として記憶する(ステップS606)。図6は、ファイルデータブロックを複数の管理領域に分割した例を示す図である。本実施の形態では、ファイルシステム102は、PC100で実行するソフトウェア(アプリケーション)101の数(例えば、4個)の管理領域に、ファイルデータブロック52を分割するものとする。また、本実施の形態では、ファイルシステム102は、ファイルデータブロック52を、ファイルデータの書き込みを高速化することができるサイズ(例えば、512kB)で割り切れるサイズの管理領域1〜4に分割し、残りの領域は雑多な領域として確保するものとする。
その後、ファイルシステム102は、メモリカードインタフェース103からメモリカード200が取り外されたか否かを監視するとともに(ステップS607)、ソフトウェア(アプリケーション)101からのファイルデータの書き込み要求を待つ(ステップS608)。なお、メモリカードインタフェース103からメモリカード200が取り外された場合(ステップS607:Yes)、ファイルシステム102は、記憶している分割情報をクリアし(ステップS611)、ステップS602に戻る。
一方、メモリカードインタフェース103からメモリカード200が取り外されず(ステップS607:No)、ソフトウェア101からのファイルデータの書き込み要求が有った場合(ステップS608:Yes)、ファイルシステム102(割当手段)は、書き込み要求が有ったファイルデータを書き込むクラスタ(書込み領域)の割り当てを行い、割り当てたクラスタにまとめられた論理ブロックの論理アドレスおよび書き込み要求が有ったファイルデータをコントローラ201に出力する(ステップS609)。
具体的には、ファイルシステム102は、書き込み要求が有ったファイルデータをファイルデータブロック52に書き込む場合、ステップS605で読み込んだBPBが示すルートディレクトリエントリのクラスタ番号に従って、管理データブロック51内のルートディレクトリエントリ領域57にアクセスしてルートディレクトリエントリを読み込む。次に、ファイルシステム102は、読み込んだルートディレクトリエントリが含むファイル名を参照して、書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれているか否かを判断する。さらに、書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていると判断した場合、ファイルシステム102は、読み込んだルートディレクトリエントリが含むどのクラスタがファイルの先頭クラスタであるかを示すフラグおよび分割情報が示す各管理領域の最下位(または最上位)のクラスタのクラスタ番号を参照して、当該書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれた管理領域を特定する。
次いで、ファイルシステム102は、ステップ604で特定したクラスタ番号に従ってFAT1領域55およびFAT2領域56にアクセスして、FAT1およびFAT2を読み込む。次に、ファイルシステム102は、読み込んだFAT1およびFAT2を参照して、特定した管理領域においてファイルデータが既に書き込まれた領域に続く領域(つまり、FAT1またはFAT2に「FFFF」が記載されたファイルデータが書き込まれたクラスタに続くクラスタ)を、書き込み要求が有ったファイルデータの書込み領域に割り当てる。
一方、書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていなかった場合、ファイルシステム102は、ステップS604で特定したクラスタ番号に従ってFAT1領域55およびFAT2領域56にアクセスして、FAT1およびFAT2を読み込む。次に、ファイルシステム102は、読み込んだFAT1およびFAT2および分割情報が示す各管理領域の最下位(または最高位)のクラスタ番号を参照して、ファイルデータが未だ書き込まれていない管理領域を特定する。そして、ファイルシステム102は、特定した管理領域内の領域(最下位のクラスタに続くクラスタ)を、書き込み要求が有ったファイルデータの書込み領域に割り当てる。なお、ファイルデータが未だ書き込まれていない管理領域が複数存在する場合、ファイルシステム102は、分割情報が示すクラスタ番号が高い管理領域内の領域から順次、書込み領域に割り当てるものとする。さらに、書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれておらず、かつファイルデータが未だ書き込まれていない管理領域が存在しない場合、ファイルシステム102は、複数の管理領域のうちいずれか1つの管理領域(例えば、分割情報が示すクラスタ番号が高い管理領域)において既にファイルデータが書き込まれた領域に続く領域(FAT1またはFAT2に「FFFF」が記載されたファイルデータが書き込まれたクラスタに続くクラスタ)を、書込み領域に割り当てるものとする。
図7は、書込み領域の割り当てを説明するための図である。例えば、管理領域1〜4に未だファイルデータが書き込まれていない状態においてファイルAを構成するファイルデータの書き込み要求が有った場合、ファイルシステム102は、分割情報が示すクラスタ番号が最下位の管理領域1内の先頭のクラスタに続くクラスタからなる領域A1を、当該書き込み要求が有ったファイルデータの書込み領域に割り当てる(図7の(1)で示す)。また、管理領域1にのみファイルデータが書き込まれた状態においてファイルBを構成するファイルデータの書き込み要求が有った場合、ファイルシステム102は、分割情報が示すクラスタ番号が管理領域1のクラスタ番号の次に低い管理領域2内の先頭のクラスタに続くクラスタからなる領域B1を、当該書き込み要求が有ったファイルデータの書込み領域に割り当てる(図7の(2)で示す)。さらに、管理領域1および管理領域2にファイルデータが書き込まれた状態においてファイルCを構成するファイルデータの書き込み要求が有った場合、ファイルシステム102は、分割情報が示すクラスタ番号が管理領域2の次に低い管理領域3内の先頭のクラスタに続くクラスタからなる領域C1を、当該書き込み要求が有ったファイルデータの書込み領域に割り当てる(図7の(3)で示す)。さらに、管理領域1〜3にファイルデータが書き込まれた状態においてファイルAを構成するファイルデータであって、領域A1に書き込まれたファイルデータの続きのファイルデータの書き込み要求が有った場合、ファイルシステム102は、管理領域1内の領域1に続く領域A2を、当該書き込み要求が有ったファイルデータの書込み領域に割り当てる(図7の(4)で示す)。
図8は、従来の書込み領域の割り当てを説明するための図である。例えば、メモリ領域900に未だファイルデータが書き込まれていない状態においてファイルdを構成するファイルデータの書き込み要求が有った場合、従来のファイルシステムは、メモリ領域900内の先頭のクラスタに続くクラスタからなる領域Dを、書き込み要求が有ったファイルデータの書込み領域に割り当てる(図8の(1)で示す)。また、メモリ900の領域Dにファイルdを構成するファイルデータが書き込まれた状態においてファイルeを構成するファイルデータの書き込み要求が有った場合、従来のファイルシステムは、領域Dに続く領域Eを、書き込み要求が有ったファイルデータの書込み領域に割り当てる(図8の(2)で示す)。さらに、メモリ900の領域Dおよび領域Eにファイルdを構成するファイルデータおよびファイルeを構成するファイルデータが書き込まれた状態においてファイルfを構成するファイルデータの書き込み要求が有った場合、従来のファイルシステムは、領域Eに続く領域Fを、書き込み要求が有ったファイルデータの書込み領域に割り当てる(図8の(3)で示す)。
このように、従来のファイルシステムでは、異なるファイルを構成するファイルデータがランダムに連続してメモリ領域900に書き込まれていたため、同じファイルを構成するファイルデータの連続性が損なわれてしまい、メモリ領域800へのファイルデータの書き込みや読み出しの際の処理速度が遅くなっていた。しかし、本実施の形態にかかるファイルシステム102によれば、異なるファイルを構成するファイルデータ同士がなるべく同じ管理領域に書き込まれないようにすることができるので、個々のファイルを構成するファイルデータが連続的に書き込まれる可能性を向上させることができる。
なお、コントローラ201のMPU201bは、ファイルシステム102から出力された論理アドレスおよびファイルデータを受信すると、RAM201dに記憶された論物テーブルを用いて受信した論理アドレスを物理アドレスに変換するとともに、変換した物理アドレスが示すページに、受信したファイルデータを書き込むものとする。
図9は、本実施の形態にかかるPCの基本構成を示すブロック図である。本実施の形態にかかるPC100は、PC100の主要部であって各部を集中的に制御するCPU(Central Processing Unit)1001を備えている。このCPU1001には、BIOSなどを記憶した読み出し専用メモリであるROM(Read Only Memory)などの不揮発性メモリ1005と、各種データを書換え可能に記憶するRAM(Random Access Memory)などのメモリ1002と、がバス1006で接続されている。
さらにバス1006には、記憶領域割当プログラムなどの各種のプログラム等を格納するハードディスク1004と、外付けのハードディスク1007をPC100に接続するためのUSB(Universal Serial Bus)コネクタや、SDカードなどのメモリカード200が挿入されるメモリカードインタフェース103などを備えたI/F1003とが、図示しないI/Oを介して接続されている。
メモリ1002は、各種データを書換え可能に記憶する性質を有していることから、CPU1001の作業エリアとして機能してバッファ等の役割を果たす。
不揮発性メモリ1005は、この発明の記憶媒体を実施するものであり、OS(Operating System)や各種のプログラムが記憶されている。CPU1001は、不揮発性メモリ1005に記憶されているプログラムを読み出し、ハードディスク1004にインストールする。
なお、記憶媒体としては、不揮発性メモリ1005のみならず、DVD(Digital Versatile Disk)などの各種の光ディスク、各種光磁気ディスク、フレキシブルディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、図示しない通信制御装置を介してインターネットなどのネットワークからプログラムをダウンロードし、ハードディスク1004にインストールするようにしても良い。この場合に、送信側のサーバでプログラムを記憶している記憶装置も、この発明の記憶媒体である。なお、プログラムは、所定のOS上で動作するものであっても良いし、その場合に後述の各種処理の一部をOSに肩代わりさせるものであっても良いし、所定のアプリケーションソフトやOSなどを構成する一群のプログラムファイルの一部として含まれているものであっても良い。
このシステム全体の動作を制御するCPU1001は、このシステムの主記憶装置として使用されるハードディスク1004上にロードされたプログラムに基づいて各種処理を実行する。
本実施の形態のPC100で実行されるプログラムは、上述した各部(ソフトウェア101、ファイルシステム102、メモリカードインタフェース103)を含むモジュール構成となっており、実際のハードウェアとしてはCPU1002(プロセッサ)が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ソフトウェア101、ファイルシステム102、メモリカードインタフェース103が主記憶装置上に生成されるようになっている。
このように本実施の形態にかかるPC100によれば、ファイルデータブロック52を複数の管理領域に分割し、ファイルデータの書き込み要求が有った場合に、書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれた管理領域においてファイルデータが既に書き込まれた領域に続く領域を、書き込み要求が有ったファイルデータの書込み領域に割り当てることにより、異なるファイルを構成するファイルデータ同士がなるべく同じ管理領域に書き込まれないようにすることができるので、1つのファイルを構成するファイルデータの書き込みに多少の時間が空いても、個々のファイルを構成するファイルデータが連続的に書き込まれる可能性を向上させることができる。
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
52 ファイルデータブロック
100 PC
101 ソフトウェア
102 ファイルシステム

Claims (6)

  1. 記憶媒体の記憶領域のうち、ファイルを構成するファイルデータを書き込むためのデータ記憶領域を、所定の大きさの複数のクラスタを有する複数の管理領域に分割する分割手段と、
    前記ファイルデータの書き込み要求が有った場合、書き込み要求が有ったファイルデータと同一の前記ファイルを構成する前記ファイルデータが書き込まれた前記管理領域において、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれたクラスタに続くクラスタを、書き込み要求が有った前記ファイルデータを書き込む書込み領域割り当てる割当手段と、
    を備え
    前記割当手段は、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていない場合、前記ファイルデータが未だ書き込まれていない前記管理領域が有するクラスタを、前記書込み領域に割り当てることを特徴とする電子機器。
  2. 前記割当手段は、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていない場合、前記ファイルデータが未だ書き込まれていない前記管理領域が有するクラスタを、先頭のクラスタから順に前記書込み領域割り当てることを特徴とする請求項1に記載の電子機器。
  3. 前記割当手段は、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれておらず、かつ前記ファイルデータが未だ書き込まれていない前記管理領域が存在しない場合、複数の前記管理領域のうちいずれか1つの前記管理領域において前記ファイルデータが書き込まれたクラスタに続くクラスタを、前記書込み領域割り当てることを特徴とする請求項2に記載の電子機器。
  4. 前記分割手段は、前記ファイルデータの書き込みを要求するアプリケーションの数に従って、前記データ記憶領域を前記管理領域に分割することを特徴とする請求項1から3のいずれか一に記載の電子機器。
  5. ファイルシステムで実行されるファイルシステムの記憶領域割当方法であって、
    前記ファイルシステムは、記憶部と制御部とを備え、
    前記制御部は、
    分割手段が、記憶媒体の記憶領域のうち、ファイルを構成するファイルデータを書き込むためのデータ記憶領域を、所定の大きさの複数のクラスタを有する複数の管理領域に分割する分割工程と、
    割当手段が、前記ファイルデータの書き込み要求が有った場合、書き込み要求が有ったファイルデータと同一の前記ファイルを構成する前記ファイルデータが書き込まれた前記管理領域において、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれたクラスタに続くクラスタを、書き込み要求が有った前記ファイルデータを書き込む書込み領域割り当てる割当工程と、
    を有し、
    前記割当工程は、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていない場合、前記ファイルデータが未だ書き込まれていない前記管理領域が有するクラスタを、前記書込み領域に割り当てることを特徴とするファイルシステムの記憶領域割当方法。
  6. コンピュータを、
    記憶媒体の記憶領域のうち、ファイルを構成するファイルデータを書き込むためのデータ記憶領域を、所定の大きさの複数のクラスタを有する複数の管理領域に分割する分割手段と、
    前記ファイルデータの書き込み要求が有った場合、書き込み要求が有ったファイルデータと同一の前記ファイルを構成する前記ファイルデータが書き込まれた前記管理領域において、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれたクラスタに続くクラスタを、書き込み要求が有った前記ファイルデータを書き込む書込み領域割り当てる割当手段と、
    として機能させ
    前記割当手段は、前記書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていない場合、前記ファイルデータが未だ書き込まれていない前記管理領域が有するクラスタを、前記書込み領域に割り当てることを特徴とする記憶領域割当プログラム。
JP2009106846A 2009-04-24 2009-04-24 電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム Expired - Fee Related JP4599450B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009106846A JP4599450B2 (ja) 2009-04-24 2009-04-24 電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム
US12/620,318 US20100274828A1 (en) 2009-04-24 2009-11-17 Electronic Device, Storage Area Allocation Method for File System, and Computer Product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009106846A JP4599450B2 (ja) 2009-04-24 2009-04-24 電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム

Publications (2)

Publication Number Publication Date
JP2010257250A JP2010257250A (ja) 2010-11-11
JP4599450B2 true JP4599450B2 (ja) 2010-12-15

Family

ID=42993062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009106846A Expired - Fee Related JP4599450B2 (ja) 2009-04-24 2009-04-24 電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム

Country Status (2)

Country Link
US (1) US20100274828A1 (ja)
JP (1) JP4599450B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541869B (zh) * 2010-12-07 2016-08-10 腾讯科技(深圳)有限公司 写入文件的方法和装置
CN113010107B (zh) * 2021-02-26 2023-08-29 深圳忆联信息系统有限公司 数据存储管理方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07325669A (ja) * 1994-05-31 1995-12-12 Mitsubishi Electric Corp ディスク管理方法
JPH0897992A (ja) * 1994-09-28 1996-04-12 Fuji Xerox Co Ltd 画像情報管理装置
JP2006285669A (ja) * 2005-03-31 2006-10-19 Toshiba Corp ホスト機器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
US6988165B2 (en) * 2002-05-20 2006-01-17 Pervasive Software, Inc. System and method for intelligent write management of disk pages in cache checkpoint operations
US7409518B2 (en) * 2004-05-21 2008-08-05 International Business Machines Corporation Method for improving disk space allocation
US7478217B2 (en) * 2006-04-07 2009-01-13 Mediatek Inc. Method of storing both large and small files in a data storage device and data storage device thereof
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
JP5555489B2 (ja) * 2007-05-31 2014-07-23 パナソニック株式会社 フォーマット装置、フォーマット方法およびプログラム
US8275967B2 (en) * 2008-03-13 2012-09-25 Bright Technologies, Inc. Storage of sequentially sensitive data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07325669A (ja) * 1994-05-31 1995-12-12 Mitsubishi Electric Corp ディスク管理方法
JPH0897992A (ja) * 1994-09-28 1996-04-12 Fuji Xerox Co Ltd 画像情報管理装置
JP2006285669A (ja) * 2005-03-31 2006-10-19 Toshiba Corp ホスト機器

Also Published As

Publication number Publication date
US20100274828A1 (en) 2010-10-28
JP2010257250A (ja) 2010-11-11

Similar Documents

Publication Publication Date Title
JP4991320B2 (ja) ホスト装置およびメモリシステム
EP1960887B1 (en) Method for flash-memory management
JP4238514B2 (ja) データ記憶装置
US10055147B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
KR100951107B1 (ko) 최적의 성능을 위한 파일 관리 방법
JP4452261B2 (ja) ストレージシステムの論理ボリューム管理方法、論理ボリューム管理プログラム、及びストレージシステム
CN109144887B (zh) 存储器系统及控制非易失性存储器的控制方法
US8307172B2 (en) Memory system including memory controller and separately formatted nonvolatile memory to avoid “copy-involving write” during updating file data in the memory
JP3942807B2 (ja) ブロックアラインメント機能付き半導体記憶装置
US7752412B2 (en) Methods of managing file allocation table information
US7681008B2 (en) Systems for managing file allocation table information
US8707007B2 (en) Memory storage device, memory controller thereof, and method for automatically creating fill-file thereof
JP2010026933A (ja) メモリシステム、ホスト装置
JP4807683B2 (ja) データ記憶装置
WO2003088043A1 (fr) Appareil de stockage de donnees
JPWO2005103903A1 (ja) 不揮発性記憶システム
US9389998B2 (en) Memory formatting method, memory controller, and memory storage apparatus
JP2011520176A (ja) 光ディスクドライブのように動作可能なメモリドライブ及びメモリドライブを光ディスクドライブに仮想化する方法
JP4714291B2 (ja) 情報記録装置、情報記録方法及び情報記録用プログラム
JP4599450B2 (ja) 電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム
KR20080033649A (ko) 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법
JP5161989B2 (ja) 情報記録装置、情報記録方法及び情報記録用プログラム
KR100997819B1 (ko) 정보 처리 장치
JP4881469B1 (ja) 情報処理装置、及び情報処理方法
JP2011113129A (ja) 情報記録装置及び情報記録方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100802

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

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

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

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees