JP2008134777A - ファイル割当テーブルのキャッシュ方法 - Google Patents
ファイル割当テーブルのキャッシュ方法 Download PDFInfo
- Publication number
- JP2008134777A JP2008134777A JP2006319822A JP2006319822A JP2008134777A JP 2008134777 A JP2008134777 A JP 2008134777A JP 2006319822 A JP2006319822 A JP 2006319822A JP 2006319822 A JP2006319822 A JP 2006319822A JP 2008134777 A JP2008134777 A JP 2008134777A
- Authority
- JP
- Japan
- Prior art keywords
- fat
- area
- file
- magnetic disk
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】磁気ディスク等へのアクセス回数を抑えることにより、処理速度の向上を図ることができるFAT領域のキャッシュ方法を提供する。
【解決手段】磁気ディスク10の管理情報領域のFAT13の情報を記憶する内部RAM20内に、磁気ディスク10のMセクタ分記憶可能なキャッシュ領域21を設け、このキャッシュ領域21にFAT13からMセクタ単位で読み出した連続するMセクタの情報を記憶させ、このキャッシュ領域21の情報に基づいて磁気ディスク10のデータ領域15に対するアクセスを行う。これにより、1セクタ単位でFAT13を読み出す処理に比べて記憶媒体へのアクセス回数が減少し、処理速度が向上する
【選択図】図1
【解決手段】磁気ディスク10の管理情報領域のFAT13の情報を記憶する内部RAM20内に、磁気ディスク10のMセクタ分記憶可能なキャッシュ領域21を設け、このキャッシュ領域21にFAT13からMセクタ単位で読み出した連続するMセクタの情報を記憶させ、このキャッシュ領域21の情報に基づいて磁気ディスク10のデータ領域15に対するアクセスを行う。これにより、1セクタ単位でFAT13を読み出す処理に比べて記憶媒体へのアクセス回数が減少し、処理速度が向上する
【選択図】図1
Description
本発明は、磁気ディスク装置等の記憶媒体に格納するデータを管理するFAT(File Allocation Table:ファイル割当テーブル)のキャッシュ方法に関するものである。
磁気ディスク等の記憶媒体の記憶領域に格納するデータの管理は、ファイルシステムによって実現されている。従来のファイルシステムの1つであるFATファイルシステムは、パーソナルコンピュータ等の情報処理装置で一般的に用いられているもので、ファイルを構成するデータの物理的な格納位置をFATと呼ばれるテーブルで管理するという特徴を持っている。
FATファイルシステムでは、記憶媒体の物理的な最小アクセス単位をセクタと呼び、連続する複数のセクタをまとめたクラスタと呼ぶ単位で、ファイルを構成するデータを管理している。このクラスタの状態を記憶しておくために、記憶媒体上のクラスタと1:1に対応するエントリ(開始位置)を持つ管理テーブルが用意されており、これをFATと呼んでいる。
図2(a)〜(d)は、従来のFATファイルシステムにおける記憶領域内のデータ構造の一例を示す図である。
図2(a)に示すように、このFATファイルシステムでは、磁気ディスク等における記憶領域の論理アドレスの先頭に管理情報領域を設け、その後方にデータ領域を設けている。管理情報領域は、MBR(Master Boot Record),BPB(BIOS Parameter Block),FAT1,FAT2,及びディレクトリエントリで構成されている。
MBRは、OS(Operating System)を磁気ディスクから読み込んで起動するプログラムであるブート・ローダを読み出すプログラムが書き込まれた領域である。BPBは、システム起動時に最初に読み込まれる領域(ブートセクタ)に書き込まれた、1クラスタ当たりのセクタ数等のその磁気ディスクの物理的な属性が記述された領域である。FAT1,FAT2は、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、同一内容が二重化されて格納されるようになっている。
ディレクトリエントリは、図2(b)に示すように、ファイル毎にそのファイルサイズやファイルを構成するデータの先頭部分が格納されているクラスタのクラスタ番号(開始クラスタ番号)等の情報を格納したものである。図2(b)に例示したディレクトリエントリは、“FILE1.TXT”というファイル名と、“10”という開始クラスタ番号と、“60kB(キロバイト)”というファイルサイズで構成されている。これは、FILE1.TXTという名前のファイルを構成するデータの先頭は、10番のクラスタに格納されており、ファイルを構成する全データのサイズの合計が60kBであることを示している。
ファイルサイズが大きくて1つのクラスタでは格納しきれない場合、開始クラスタ番号で示されるクラスタに続くクラスタの番号を特定するための情報は、図2(c)に示すように、FAT上のリンク情報で示される。
図2(c)のFATには、各クラスタ番号に対応したフィールドであるFATエントリが設けられており、各FATエントリには、対応するクラスタが既にデータの記憶領域として使用されているか否かの区分と、使用されている場合には、そのデータに続く次のデータが記憶されているクラスタの番号が格納される。なお、後続先のクラスタがない場合、FATエントリには、終端を意味する値として例えば0xFFF(但し、0xは16進数を意味する)が格納される。
図2(c)の例では、10番のクラスタに対応するFATエントリに“11”が格納されているので、10番のクラスタは、11番のクラスタにリンクしていることになる。同様に、11番のクラスタに対応するFATエントリには“12”が、12番のクラスタに対応するFATエントリには“13”がそれぞれ格納されており、10番、11番、12番、13番のクラスタが、この順にリンクされていることになる。13番のクラスタに対応するFATエントリには0xFFFが格納されているが、これはリンクの終端を意味しているので、この13番のクラスタでファイルのデータが終了することになる。
また、14番のクラスタに対応するFATエントリには“0”が格納されているが、これはそのクラスタがデータの記憶領域として使用されておらず、空き領域であることを意味している。
これにより、磁気ディスク等のデータ領域には、図2(d)に示すように、FILE1.TXTという名前のファイルを構成するデータが、4つのクラスタ10〜13に分割され、データ1、データ2、データ3及びデータ4として格納されていることが示される。
このようなFATファイルシステムでは、磁気ディスク等の記憶媒体にファイルを保存する場合、1セクタ単位でFATにアクセスし、空き領域となっているクラスタ番号を探し、データ領域の該当するクラスタにファイルのデータを保存すると共に、管理情報領域のディレクトリエントリとFATの情報を更新する。
しかしながら、近年、デジタルオーディオやデジタルカメラで操作するファイルサイズは数MBから数十MBと巨大化しており、従来のような1セクタ単位でのFATの管理方法では、1つのファイルを保存する度に、FATを更新するために磁気ディスク等へのアクセスが頻発する。このため、ファイルを保存したり読み出したりする処理に長大な時間がかかり、処理速度が低下するという課題があった。
本発明は、巨大化したファイルを処理する場合でも、磁気ディスク等へのアクセス回数を抑えることにより、処理速度の向上を図ることができるFAT領域のキャッシュ方法を提供することを目的としている。
本発明は、保存するデータを格納するデータ領域と該データ領域に保存されたデータの格納位置を管理するファイル割当テーブルとを有する記憶媒体に対して、前記データ領域に格納されたデータにアクセスするためにキャッシュメモリを設け、前記ファイル割当テーブルの情報を前記キャッシュメモリに記憶するファイル割当テーブルのキャッシュ方法において、前記記憶媒体の最小アクセス単位であるセクタのデータをM(但し、Mは複数)セクタ分記憶可能な記憶領域を有するキャッシュメモリを設け、前記ファイル割当テーブルにアクセスするときに、アクセス対象の情報が格納されるセクタから連続してM個のセクタにアクセスすることを特徴としている。
本発明では、ファイル割当テーブルの情報を記憶するキャッシュメモリにMセクタ分記憶することができる記憶領域を設け、この記憶領域にファイル割当テーブルの連続するMセクタ分の情報を記憶させるようにしている。これにより、従来の1セクタ単位の処理に比べて記憶媒体へのアクセス回数が減少し、処理速度が向上するという効果がある。
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
図1は、本発明の実施例を示す磁気ディスクのFATファイルシステムの構成図である。このFATファイルシステムは、磁気ディスク10と、この磁気ディスク10のFAT情報をコピーしてキャッシュとして使用するための内部RAM(Random Access Memory)20を有している。
磁気ディスク10の記憶領域の論理アドレスの先頭には、MBR11、BPB12、FAT13、及びディレクトリエントリ14で構成された管理情報領域が設けられ、その後方にデータ領域15が設けられている。データ領域15は、磁気ディスク10の総記憶容量に応じて予め定められたセクタ数単位に区分され、その区分毎にクラスタ番号が順番に付与されている。
FAT13には、データ領域15に設定されたクラスタ番号に対応するFATエントリが設けられており、各FATエントリには、対応するクラスタがファイルのデータ記憶領域として使用されているか否かの区分と、使用されている場合には、そのデータに続く次のデータが記憶されているクラスタの番号が格納されるようになっている。なお、後続先のクラスタがない終端のクラスタの場合、そのFATエントリには、終端を意味する値として、0xFFFが格納される。また、ファイルのデータの記憶領域として使用されていない、空き領域のクラスタに対応するFATエントリには、0x000が格納されている。
全クラスタを管理するためのFATエントリの情報量は1セクタに収まらないので、FAT13は、連続する複数のセクタにまたがって格納されているが、FAT13は、1セクタ単位でも連続した複数セクタ単位でも、任意にアクセスできるようになっている。なお、図1中には、FAT13を1セクタ単位に分割して、FAT13−1,FAT13−2,…,FAT13−nと記載している。
一方、内部RAM20は、データ処理のための作業用の記憶領域として使用されるものであるが、その一部の領域がFAT13の情報をコピーしてキャッシュとして用いるためのキャッシュ領域21として割り当てられている。このキャッシュ領域21は、複数セクタ分のFAT13の情報を記憶できる容量を有している。
次に、このようなFATファイルシステムを用いたFAT領域のキャッシュ方法について説明する。
先ず、システム起動時の初期設定により、磁気ディスク10のFAT領域にアクセスするときに1回のアクセスで連続して読み書きするセクタ数M(但し、Mは2以上の整数)を設定すると共に、磁気ディスク10のFAT領域に対応するFAT情報を、内部RAM20中に記憶しておくためのキャッシュ領域21を確保する。なお、キャッシュ領域21は、M×N(但し、Nは1以上の整数)セクタ分のFAT情報を記憶できる容量に設定する。
次に、磁気ディスク10にファイルを保存する場合、磁気ディスク10のFAT領域をMセクタ単位で読み出してキャッシュ領域21に記憶し、そのFATエントリから空き領域のクラスタを探す。探し出したデータ領域15の空き領域のクラスタにファイルのデータを格納し、キャッシュ領域21の該当するFATエントリには、格納したデータ領域に対応するクラスタ番号を書き込む。保存するファイルサイズが1クラスタで収まらない場合には、更に空き領域のクラスタに残りのデータを保存し、キャッシュ領域21の該当するFATエントリにリンク情報を書き込む。
キャッシュ領域21に記憶されたFAT情報により、対応するクラスタがすべてデータ記憶領域として使用されている状態となった時点で、このキャッシュ領域21のFAT情報を、磁気ディスク10の対応するFAT領域に書き戻す。更に、保存すべきデータが残っているときには、書き戻したFAT領域に続くMセクタのFAT領域を磁気ディスク10から読み出してキャッシュ領域21に記憶し、同様の処理を継続する。
そして、保存対象のファイルのデータを磁気ディスク10にすべて格納した後、この磁気ディスク10の管理情報領域のディレクトリエントリ14に、保存したファイルのファイル名、開始クラスタ番号、及びファイルサイズ等の情報を登録する。
磁気ディスク10からファイルを読み出す場合、磁気ディスク10の管理情報領域のディレクトリエントリ14を読み出し、該当するファイルの開始クラスタ番号を調べる。この開始クラスタ番号に対応するFATエントリを有するFAT領域を先頭にして、磁気ディスク10からMセクタ分のFAT領域を読み出し、キャッシュ領域21に記憶する。そして、キャッシュ領域21に記憶されたFATエントリのリンク情報に基づいて、磁気ディスク10のデータ領域15から、目的のファイルのデータを読み出す。なお、磁気ディスク10からキャッシュ領域21に読み出したMセクタ分のFAT領域のリンク情報で、目的のファイルをすべて読み出すことができない場合には、リンク情報に基づいて後続するMセクタ分のFAT領域を読み出し、同様の処理を継続する。
磁気ディスク10からファイルを削除する場合、磁気ディスク10の管理情報領域のディレクトリエントリ14を読み出し、該当するファイルの開始クラスタ番号を調べる。この開始クラスタ番号に対応するFATエントリを有するFAT領域を先頭にして、磁気ディスク10からMセクタ分のFAT領域を読み出し、キャッシュ領域21に記憶する。そして、キャッシュ領域21に保持されたFATエントリの内の該当するFATエントリを0x000に書き換えることにより、該当するファイルが格納されているクラスタ番号をFATエントリから消去する。その後、消去対象のファイルが格納されているクラスタ番号が消去されたキャッシュ領域21の情報を、磁気ディスク10の対応するFAT領域に書き戻す。
なお、磁気ディスク10からキャッシュ領域21に読み出したMセクタ分のFAT領域のリンク情報で目的のファイルが格納されているクラスタ番号をすべて消去することができない場合には、リンク情報に基づいて後続するMセクタ分のFAT領域を読み出し、同様の処理を継続する。そして、削除対象のファイルのFAT情報をすべて削除した後、磁気ディスク10の管理情報領域のディレクトリエントリ14から、削除したファイルのファイル名、開始クラスタ番号、及びファイルサイズ等の情報を抹消する。
なお、既存ファイルの更新は、更新後のファイルを保存し、その後、更新前のファイルを削除することで行うことができる。
以上のように、本実施例の磁気ディスクのFATファイルシステムは、磁気ディスク10のFAT情報をコピーしてキャッシュとして使用するための内部RAM20に、複数セクタ(Mセクタ)分のFAT情報を記憶できる容量を有するキャッシュ領域21を設け、複数セクタ単位で磁気ディスク10のFAT13にアクセスするようにしている。これにより、1セクタ単位に磁気ディスク10のFAT13にアクセスする場合に比べて、磁気ディスク10へのアクセス回数が激減され、処理の高速化ができるという利点がある。
また、キャッシュ領域21は、Mセクタ分のFAT情報をN個同時に保持できるように、M×Nセクタ分の容量に設定しているので、例えば同時にN個のファイルに対する処理を行うことができるという利点がある。
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
(a) ファイルの記憶媒体として磁気ディスク10を例に説明したが、NAND型フラッシュメモリやメモリスティック、SD(Secure Digital)メモリカード等にも同様に適用可能である。
(b) 磁気ディスク10の管理情報領域のFAT13やディレクトリエントリ14の構成は、例示したものに限定されない。
(a) ファイルの記憶媒体として磁気ディスク10を例に説明したが、NAND型フラッシュメモリやメモリスティック、SD(Secure Digital)メモリカード等にも同様に適用可能である。
(b) 磁気ディスク10の管理情報領域のFAT13やディレクトリエントリ14の構成は、例示したものに限定されない。
10 磁気ディスク
13 FAT
14 ディレクトリエントリ
15 データ領域
20 内部RAM
21 キャッシュ領域
13 FAT
14 ディレクトリエントリ
15 データ領域
20 内部RAM
21 キャッシュ領域
Claims (2)
- 保存するデータを格納するデータ領域と該データ領域に保存されたデータの格納位置を管理するファイル割当テーブルとを有する記憶媒体に対して、前記データ領域に格納されたデータにアクセスするためにキャッシュメモリを設け、前記ファイル割当テーブルの情報を前記キャッシュメモリに記憶するファイル割当テーブルのキャッシュ方法であって、
前記記憶媒体の最小アクセス単位であるセクタのデータをM(但し、Mは複数)セクタ分記憶可能な記憶領域を有するキャッシュメモリを設け、前記ファイル割当テーブルにアクセスするときに、アクセス対象の情報が格納されるセクタから連続してM個のセクタにアクセスすることを特徴とするファイル割当テーブルのキャッシュ方法。 - 前記キャッシュメモリは、Mセクタ分記憶できる記憶領域を、同時に処理する複数のファイルに応じてN(但し、Nは複数)個有することを特徴とする請求項1記載のファイル割当テーブルのキャッシュ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006319822A JP2008134777A (ja) | 2006-11-28 | 2006-11-28 | ファイル割当テーブルのキャッシュ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006319822A JP2008134777A (ja) | 2006-11-28 | 2006-11-28 | ファイル割当テーブルのキャッシュ方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008134777A true JP2008134777A (ja) | 2008-06-12 |
Family
ID=39559601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006319822A Withdrawn JP2008134777A (ja) | 2006-11-28 | 2006-11-28 | ファイル割当テーブルのキャッシュ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008134777A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100978533B1 (ko) * | 2008-11-18 | 2010-08-27 | 최승일 | 램을 이용한 컴퓨터용 정보저장장치 자료보호 시스템 및 그방법 |
CN115657954A (zh) * | 2022-11-01 | 2023-01-31 | 昆仑数智科技有限责任公司 | 数据处理方法及装置 |
-
2006
- 2006-11-28 JP JP2006319822A patent/JP2008134777A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100978533B1 (ko) * | 2008-11-18 | 2010-08-27 | 최승일 | 램을 이용한 컴퓨터용 정보저장장치 자료보호 시스템 및 그방법 |
CN115657954A (zh) * | 2022-11-01 | 2023-01-31 | 昆仑数智科技有限责任公司 | 数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7594062B2 (en) | Method for changing data of a data block in a flash memory having a mapping area, a data area and an alternative area | |
US6823417B2 (en) | Memory controller for memory card manages file allocation table | |
US7610434B2 (en) | File recording apparatus | |
US8838875B2 (en) | Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon | |
US8041887B2 (en) | Memory device and control method thereof | |
US8069306B2 (en) | Data area managing method in information recording medium and information processor employing data area managing method | |
US7761648B2 (en) | Caching method for NAND flash translation layer | |
US20140095803A1 (en) | Memory system configured to perform segment cleaning and related method of operation | |
US20070043924A1 (en) | Method for controlling memory card and method for controlling nonvolatile semiconductor memory | |
US8914579B2 (en) | Access device, information recording device, controller, and information recording system | |
US10048884B2 (en) | Method for erasing data entity in memory module | |
CN108628542B (zh) | 一种文件合并方法及控制器 | |
US20100241819A1 (en) | Controller and memory system | |
US7350049B1 (en) | Method and apparatus for managing access to a file allocation table | |
JP2009276853A (ja) | フラッシュメモリ装置 | |
US20110320692A1 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
JP2006277737A (ja) | アドレス予測機能をもつ不揮発性記憶装置 | |
US20090094299A1 (en) | Apparatus and method for defragmenting files on a hydrid hard disk | |
JP4130808B2 (ja) | フォーマット方法 | |
JP2008134777A (ja) | ファイル割当テーブルのキャッシュ方法 | |
CN111949212B (zh) | 基于自定义开放通道ssd的文件***及文件管理方法 | |
JP2008262452A (ja) | 記録デバイスのキャッシュ方法および記録装置 | |
US11461225B2 (en) | Storage device, control method of storage device, and storage medium | |
KR101102754B1 (ko) | 낸드 플래시 메모리 파일 시스템 및 낸드 플래시 메모리 시스템에서 파일 엑세스 방법 | |
CN114610228A (zh) | 文件管理***及其文件管理方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100202 |