JP4816740B2 - 情報処理装置、および情報処理方法、並びにプログラム - Google Patents

情報処理装置、および情報処理方法、並びにプログラム Download PDF

Info

Publication number
JP4816740B2
JP4816740B2 JP2009027565A JP2009027565A JP4816740B2 JP 4816740 B2 JP4816740 B2 JP 4816740B2 JP 2009027565 A JP2009027565 A JP 2009027565A JP 2009027565 A JP2009027565 A JP 2009027565A JP 4816740 B2 JP4816740 B2 JP 4816740B2
Authority
JP
Japan
Prior art keywords
data
file
read
storage device
cluster
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
JP2009027565A
Other languages
English (en)
Other versions
JP2010182254A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2009027565A priority Critical patent/JP4816740B2/ja
Priority to US12/658,073 priority patent/US8250087B2/en
Priority to EP10152366A priority patent/EP2216712A3/en
Priority to CN2010101170092A priority patent/CN101799785B/zh
Publication of JP2010182254A publication Critical patent/JP2010182254A/ja
Application granted granted Critical
Publication of JP4816740B2 publication Critical patent/JP4816740B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0674Disk device
    • 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)
  • Management Or Editing Of Information On Record Carriers (AREA)

Description

本発明は、情報処理装置、および情報処理方法、並びにプログラムに関する。さらに詳細には、例えばストレージデバイスに記録されたデータの読み出し処理を実行する情報処理装置、および情報処理方法、並びにプログラムに関する。
近年、例えばパーソナルコンピュータ(PC)やカメラ、あるいはPDAなどのデータ記憶装置としてストレージデバイスが利用されている。ストレージデバイスは、PC、カメラ、PDAなどのホストにUSB(Universal Serial Bus)やSATA(Serial ATA)などのインターフェース(I/F)によって接続され、ホストとの間でデータ転送を行う。
例えばホストがストレージデバイスからデータ読み出しを行う場合、ホストとストレージデバイス間においてATAPI(ATA Attachement Packet Interface)やSCSI(Small Computer System Interface)などの規格で規定されるREADコマンドが使用される。
以下、従来の一般的なホストとストレージデバイス間のデータ転送処理の一例として、SCSI規格のREAD(10)コマンドを使用した場合の例について説明する。SCSI規格であるSBC−2(SCSI Block Commands−2)のREAD(10)コマンドのフォーマットを図1に示す。READコマンド(10)は、図1に示すように0Byte〜9Byteの計10Byteの構造を持つ。
0Byte目は命令コード(Operation Code)領域、
2〜5Byte目は論理ブロックアドレス(LBA:LOGICAL BLOCK ADDRESS)領域(以下LBA領域と表現する場合がある)、
7〜8Byte目は転送長(TRANSFER LENGTH)領域である。本発明に関連がない領域については説明を省略する。
命令コード領域はコマンドの種別を示す領域である。本例では命令コードが28hであることをもって当該コマンドがREAD(10)であることを示す。LBA領域はホストが要求するデータの先頭の論理ブロックアドレス(LBA)を格納する。ストレージデバイスは、コマンドで指定された論理ブロックアドレス(LBA)から連続したアドレスのデータを読み出し、順次ホストに転送する。転送長領域は、ホストが要求するデータの総転送長を格納する。READ(10)の転送長の単位は論理的なブロック単位であり、例えば1ブロックが512Byteである場合、1単位が512Byteとなり、転送長×512Byteが、Byte単位でのデータ転送長となる。
ホストがREAD(10)コマンドでストレージデバイスに対しデータの読み出しを要求する場合、まず、READ(10)コマンド内に命令コード、論理ブロックアドレス(LBA)、転送長の各パラメータを格納し、ストレージデバイスに転送する。ストレージデバイスは、ホストが送信したコマンドを受信したら、コマンドの命令コード領域を参照して当該コマンドがREAD(10)であることを判断する。次に、LBA領域が示す論理ブロックアドレスからアドレス順にデータを順次読み出し、ホストに送信する。ストレージデバイスは、転送長領域が示す長さのデータを送信し、データ転送を終了する。以上がREAD(10)コマンドにおけるデータ転送方法の概要である。
ところで、ホストが要求するデータは、ストレージデバイスの論理ブロックアドレス(LBA)上に分散して配置されている場合がある。例えば、代表的なファイルシステムにおけるFAT(File Allocation Table)ファイルシステムを利用した場合のデータ記憶例について図2を参照して説明する。図2は、ストレージデバイスの管理するメモリに対応して設定される論理ブロックアドレスと、記憶データの関係を示す図である。
FATファイルシステムでは、図2に示すように一つのファイルが複数の論理ブロックアドレス上に分散して配置される場合があり、データが連続した論理ブロックアドレスに配置されるとは限らない。図2の例では、ファイルAを構成する実データが領域1、領域2、領域3に分散して配置されている。これをファイルの断片化という。ファイルBの実データは領域4に格納されている。
また、ホストがストレージデバイスに対して読み出しを要求するファイルが複数である場合も、要求するデータは異なる論理ブロックアドレス上に分散して配置され、連続した論理ブロックアドレス上に配置されるとは限らない。このような場合、ホストは、分散したデータ各々に対応する論理ブロックアドレスを1つずつ適用してその都度読み出しコマンドをストレージデバイスに送信し、所望のデータを取得することになる。
ストレージデバイス上のデータが分散して記憶されると、ホストとストレージデバイス間のデータ転送の速度低下を招くことになる。この原因について、図3を参照して説明する。図3は、ホストがストレージデバイスからのデータ読み出しを行う場合のシーケンスを示す図である。
図3のシーケンス図は、図2に示す領域1〜3に分割して記録されたファイルAを読み出す場合の処理シーケンスを示している。
まず、ホストは、ステップS11において、図2に示す領域1への読み出しを要求する読み出しコマンドをストレージデバイスに送信する。
ストレージデバイスはコマンドを受信すると、ステップS12において、LBA(論理ブロックアドレス)領域からホストが要求する論理ブロックアドレスを取得して、論理ブロックアドレスによって指定されたデータ、すなわち領域1のデータの読み出しを開始する。
次に、ストレージデバイスは、ステップS13において、領域1から読み出したデータを順次ホストにデータを転送する。
次に、ホストは、要求した領域1のデータの受信終了後、ステップS14において、次の領域2への読み出しを要求する読み出しコマンドをストレージデバイスに送信する。
ストレージデバイスはコマンドを受信すると、ステップS15において、領域2のデータの読み出しを開始し、ステップS16において、領域2から読み出したデータを順次ホストにデータを転送する。
さらに、ホストは、要求した領域2のデータの受信終了後、ステップS17において、次の領域3への読み出しを要求する読み出しコマンドをストレージデバイスに送信する。
ストレージデバイスはコマンドを受信すると、ステップS18において、領域3のデータの読み出しを開始し、ステップS19において、領域3から読み出したデータを順次ホストにデータを転送する。
このように、ホストは読み出しファイルが格納された複数の分散領域の全領域について、その都度、領域対応の論理ブロックアドレス(LBA)を設定した読み出しコマンドを生成して送信することが必要となる。ストレージデバイスも、ホストからの複数のコマンド各々に対して、各領域からデータ読み出しを行って、読み出したデータを、順次ホストに返す処理を行うことになる。この場合、ストレージデバイスは、各読み出しコマンドに対して最後のデータ送信が終了してから、次の読み出しコマンドが来るまでの間は、処理を行わない、すなわち無駄な時間が発生する。図3に示す期間A、期間Bが無駄な時間となる。
またストレージデバイスは、ホストからの次の読み出しコマンドを受信してはじめてホストが要求する論理ブロックアドレスを知り、実際のメディアへの読み出しを開始するため、コマンド受信後すぐにデータをホストに返すことができない。これもデータ転送速度の低下の原因となる。
さらに、分散した論理ブロックアドレスに対してその都度読み出しコマンドが送信されるということは、ストレージデバイス側で、コマンドの受信処理、及びコマンド内容の解析処理がその都度必要となり、それらの処理に時間がかかる。また、例えばUSBのバルクオンリートランスポート(BulkOnly Transport)などの一般的なコマンドのやり取りをつかさどるネットワークトランスポート層では、ストレージデバイスの状態を通知するためのデータ転送が行われることがあり、これらの処理もデータ転送の速度低下の原因となる。
次に、以上に述べたデータ転送の速度低下に対する対策を開示した従来技術について説明する。まず特許文献1(特開2006−277737号公報)は、FAT(File Allocation Table)ファイルシステムにおけるファイル管理情報を利用した構成を開示している。ファイル管理情報には、1つのファイルの構成データを記録した論理ブロックアドレス(LBA)の連鎖情報(クラスタチェーン情報)が記述されている。この情報を利用する構成である。
すなわち、ストレージデバイスの制御部は、分散記録されているファイルの複数の分散位置各々に対応する論理ブロックアドレスを、ファイル管理情報のLBA連鎖情報を参照することであらかじめ取得する。ストレージデバイスは、この取得情報を適用して、ホストから最後に受信した読み出しコマンドの論理ブロックアドレスの次にホストが要求するデータの論理ブロックアドレスを予測する。この処理によって、効率的な読み出し処理を行うものである。
しかし、この方法の問題点は、ストレージデバイス側で予測したアドレスが必ず正しいアドレスであることを保証するものでなないことである。すなわち、ホストは、突然、別のファイルの読み出し処理を開始することもあり、この場合には、ストレージデバイス側の予測したアドレスは利用できない。このように、予測が外れた場合には、ストレージデバイスのメディア読み出し処理が停止し、さらに正しい論理ブロックアドレスでのメディアの読み出し処理のやり直しを行う必要が発生する。このような事態が発生すると、かえってホストのデータ取得までの時間が大幅に遅延してしまうという問題を生じさせる。
また、特許文献1に示す論理ブロックアドレスの予測方法は、ファイルシステムの管理情報における分散化された論理アドレスの結合情報から予測するものであるため、複数のファイルに対する読み出しコマンドに対しては有効ではないという欠点がある。
また、特許文献2(特開2008−210226号公報)は、拡張したREADコマンドを利用して、1つのコマンドのCDB(Command Descriptor Block)の中で複数の論理ブロックアドレスおよび転送長を指定し、擬似的に複数のREADコマンドを1回のコマンドで送信する方法を開示している。
この方法では、ストレージデバイスはあらかじめホストが要求するデータに対応する複数の論理ブロックアドレスを一括して知ることができる。しかし、前述のATAPIやSCSIなどの代表的なコマンドの規格、および各種のトランスポート層の規格などに従った実装を行う場合、1度に指定できる論理ブロックアドレスおよび転送長の数が限られる。例えばUSBのバルクオンリートランスポートにおいては、コマンドの長さは最大16Byteとなっている。これらの規格に従わない場合は独自規格となり、ホストのデバイスドライバ層を独自実装となるため、ホストのアプリケーション開発において、汎用性を損なうという欠点がある。
さらに上述の特許文献2の構成は、1度のコマンドで送信する論理ブロックアドレス(LBA)とデータ転送長の数が多い場合に、ストレージデバイス側でコマンドのデータを保存するためのメモリを多く確保しなければならないという欠点がある。例えば、10000個の論理ブロックアドレスとデータ転送長を送る構成とする場合には、1つのLBA=8Byteとしてストレージデバイス側は80000Byteを受信し格納するメモリ領域を確保しなければならない。これは一般的な組み込み機器では現実的ではない。その結果、前述の拡張したREADコマンドを何度かにわけて送信することになり、発行されるコマンドの数を少なくするという点において、効果が薄いという欠点がある。
特開2006−277737号公報 特開2008−210226号公報
本発明は、例えば上述の問題点に鑑みてなされたものであり、ホストとストレージデバイス間のデータ転送処理の効率化を実現する情報処理装置、および情報処理方法、並びにプログラムを提供することを目的とする。
本発明の第1の側面は、
データ記録可能なメディアを有するストレージデバイスに対して、メディア記録データの読み出し要求を出力してデータ読み出しを行う制御部を有し、
前記制御部は、
前記メディア記録データに対応するファイルシステム管理情報を利用して、読み出しファイルの先頭データが記録された先頭クラスタ番号と、非読み出しファイルの先頭データが記録された先頭クラスタ番号を識別可能としたビットマップデータを生成して、前記ストレージデバイスに出力する処理を行う情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記制御部は、前記ファイルシステム管理情報を利用して、前記メディアに記録された全てのファイルの先頭データが記録された先頭クラスタ番号のリストである記録ファイル対応先頭クラスタ番号リストと、読み出し予定の選択されたファイルの先頭データが記録された先頭クラスタ番号のリストである読み出しファイル対応先頭クラスタ番号リストを生成し、前記記録ファイル対応先頭クラスタ番号リストと、前記読み出しファイル対応先頭クラスタ番号リストの各エントリの照合処理によって前記ビットマップデータを生成する。
さらに、本発明の情報処理装置の一実施態様において、前記制御部は、前記ビットマップデータに、ビットマップデータの有効性判別情報を含むヘッダ情報を設定した送信用データを生成して前記ストレージデバイスに出力する。
さらに、本発明の情報処理装置の一実施態様において、前記制御部は、ファイルシステム管理情報としてFAT(File Allocation Table)およびディレクトリエントリを適用して、前記ビットマップデータを生成する。
さらに、本発明の情報処理装置の一実施態様において、前記制御部は、前記ストレージデバイスに対する1回のデータ読み出しコマンドの送信処理を実行して、前記ビットマップデータによって識別される1または複数のファイルの読み出しデータをストレージデバイスから取得する。
さらに、本発明の第2の側面は、
データを記録するメディアと、
前記メディアに対するデータ記録またはデータ読み出し処理を行う制御部を有し、
前記制御部は、
ホストが要求する読み出しファイルの先頭データが記録された先頭クラスタ番号と、非読み出しファイルの先頭データが記録された先頭クラスタ番号を識別可能としたビットマップデータをホストから受信し、受信ビットマップデータとファイルシステム管理情報を適用して、読み出しファイルの記録クラスタを解析してファイル読み出し処理を実行するストレージデバイスにある。
さらに、本発明の第3の側面は、
前記メディア記録データに対応するファイルシステム管理情報を利用して、読み出しファイルの先頭データが記録された先頭クラスタ番号と、非読み出しファイルの先頭データが記録された先頭クラスタ番号を識別可能としたビットマップデータを生成して、ストレージデバイスに出力するホストと、
前記ビットマップデータをホストから受信し、受信ビットマップデータとファイルシステム管理情報を適用して、読み出しファイルの記録クラスタを解析してファイル読み出し処理を実行するストレージデバイスと、
を有する情報処理システムにある。
さらに、本発明の第4の側面は、
情報処理装置において実行する情報処理方法であり、
制御部が、メディア記録データに対応するファイルシステム管理情報を利用して、読み出しファイルの先頭データが記録された先頭クラスタ番号と、非読み出しファイルの先頭データが記録された先頭クラスタ番号を識別可能としたビットマップデータを生成して、ストレージデバイスに出力するステップと、
前記制御部が、前記ストレージデバイスにメディア記録データ読み出し要求を出力するステップと、
前記制御部が、前記ストレージデバイスから、前記ビットマップによって識別された読み出しファイルの全データを順次、受信するステップと、
を有する情報処理方法にある。
さらに、本発明の第5の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
制御部に、メディア記録データに対応するファイルシステム管理情報を利用して、読み出しファイルの先頭データが記録された先頭クラスタ番号と、非読み出しファイルの先頭データが記録された先頭クラスタ番号を識別可能としたビットマップデータを生成させて、ストレージデバイスに出力させるステップと、
前記制御部に、前記ストレージデバイスにメディア記録データ読み出し要求を出力させるステップと、
前記制御部に、前記ストレージデバイスから、前記ビットマップによって識別された読み出しファイルの全データを順次、受信させるステップと、
を実行させるプログラムにある。
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の一実施例の構成によれば、ホストはストレージデバイスのメディア記録データに対応するファイルシステム管理情報を利用して読み出しファイルの先頭データが記録された先頭クラスタ番号と、非読み出しファイルの先頭データが記録された先頭クラスタ番号を識別可能としたビットマップデータを生成してストレージデバイスに出力する。ストレージデバイスはビットマップデータを解析して要求ファイルおよび対応したクラスタを判別して、ファイル構成データをメディアから読み出してホストに提供する。本構成により、ホストがコマンド送信を繰り返すことなく複数ファイルの読み出しおよび転送を行うことが可能となる。
SCSI規格であるSBC−2(SCSI Block Commands−2)のREAD(10)コマンドのフォーマットについて説明する図である。 FAT(File Allocation Table)ファイルシステムを利用した場合のデータ記憶例について説明する図である。 従来のデータ読み取り処理におけるホストとストレージデバイス間のデータ処理シーケンスについて説明する図である。 本発明の情報処理装置であるデジタルカメラの構成例について説明する図である。 FAT16およびFAT32でフォーマットした場合のデータ構造について説明する図である。 マスターブートレコード(MBR)のデータ構成について説明する図である。 ディレクトリエントリの情報構造を説明する図である。 一般的なファイルアロケーションテーブル(FAT)のデータ構成例について説明する図である。 ストレージデバイスのメディアに記録されるファイルの記録例について説明する図である。 記録ファイル対応先頭クラスタ番号リストのデータ構成例について説明する図である。 読み出しファイル対応先頭クラスタ番号リストのデータ構成例について説明する図である。 ビットマップデータのデータ構成例について説明する図である。 ビットマップデータを格納したビットマップデータ送信用データのデータ構成例について説明する図である。 ホストの実行する処理シーケンスについて説明するフローチャートを示す図である。 ストレージデバイスの実行する処理シーケンスについて説明するフローチャートを示す図である。 ホストとストレージデバイス間で実行する通信処理シーケンスについて説明するシーケンス図である。
以下、図面を参照しながら本発明の実施形態に係る情報処理装置、および情報処理方法、並びにプログラムの詳細について説明する。
以下では、本発明について、以下の項目に従って順次説明する。
(1)本発明の情報処理装置の一例であるデジタルカメラの構成例
(2)ファイルシステム管理情報の概要
(3)本発明のデータ転送処理に利用するビットマップデータ等の情報について
(4)ホストおよびストレージデバイスの処理シーケンス
[(1)本発明の情報処理装置の一例であるデジタルカメラの構成例]
本発明の情報処理装置は、例えばデジタルカメラ、PC、PDAなどの情報処理装置であり、ストレージデバイスを適用したデータ書き込みやデータ読み出しを行う情報処理装置である。まず、図4を参照して、発明の情報処理装置の一例であるデジタルカメラの構成例について説明する。
図4に示すように、本発明の一実施例である情報処理装置(デジタルカメラ)100は、カメラ部110と、カメラDSP(Digital Signal Processor)120と、インターフェース(I/F)140、制御部150を有する。さらに、操作部160と、LCD(Liquid Crystal Display)コントローラ170と、液晶ディスプレイやビューファインダに対応するLCD181,182と、外部インターフェース(外部I/F)190、および内部メモリ195を備える。さらに、撮影画像の記憶手段としてストレージデバイス(例えばメモリカード)145がインターフェース140を介して接続されている。
カメラ部110は、図4に示すように、光学ブロック111、CCD(Charge Coupled Device)112、前処理回路113、光学ブロック用ドライバ114、CCD用ドライバ115、タイミング生成回路116を備えたものである。ここで、光学ブロック111は、レンズ、フォーカス機構、シャッター機構、絞り(アイリス)機構などを備えている。
また、制御部150は、CPU(Central Processing Unit)151、フラッシュROM(Read Only Memory)153、時計回路154が、システムバス155を通じて接続されて構成されたマイクロコンピュータであり、装置の各部を制御する。フラッシュROM153は、CPU151において実行する種々のプログラムや、処理に必要になるデータなどが記憶されたものである。また、時計回路154は、現在年月日、現在曜日、現在時刻を提供することができるとともに、撮影日時などを提供するなどのことができるものである。
内部メモリ195は、RAM(Random Access Memory)によって構成され、撮影画像データの一覧表示に適用する画像データの記憶領域として利用される。
画像の撮影時においては、光学ブロック用ドライバ114は、制御部150からの制御に応じて、光学ブロック111を動作させるようにする駆動信号を形成し、これを光学ブロック111に供給して、光学ブロック111を動作させる。光学ブロック111は、ドライバ114からの駆動信号に応じて、フォーカス機構、シャッター機構、絞り機構が制御され、被写体の画像を取り込んで、これをCCD112に対して提供する。
CCD112は、光学ブロック111からの画像を光電変換して出力する。CCDドライバ115からの駆動信号に応じて動作し、光学ブロック111からの被写体の画像を取り込むとともに、制御部150によって制御されるタイミング生成回路116からのタイミング信号に基づいて、取り込んだ被写体の画像(画像情報)を電気信号として前処理回路113に供給する。
なお、タイミング生成回路116は、制御部150からの制御に応じて、所定のタイミングを提供するタイミング信号を形成する。また、CCDドライバ115は、タイミング生成回路116からのタイミング信号に基づいて、CCD112に供給する駆動信号を形成する。
前処理回路113は、これに供給された電気信号の画像情報に対して、CDS(Correlated Double Sampling)処理を行って、S/N比を良好に保つようにするとともに、AGC(Automatic Gain Control)処理を行って、利得を制御し、そして、A/D(Analog/Digital)変換を行って、デジタル信号とされた画像データを形成する。
前処理回路113においてデジタル信号とされた画像データは、DSP120に供給される。DSP120は、これに供給された画像データに対して、AF(Auto Focus)、AE(Auto Exposure)、AWB(Auto White Balance)などのカメラ信号処理を施す。このようにして種々の調整がされた画像データは、所定の圧縮方式でデータ圧縮され、システムバス155、I/F140を通じて、ストレージデバイス145に供給され、ストレージデバイス145にファイルとして記録される。ストレージデバイス145は、例えばフラッシュメモリ、光学メディア、ハードディスクなどの記録メディアを有し、さらに制御部(ホスト)150からのコマンド解釈処理、メディアに対するデータ記録やデータ読み出し処理の制御を行う制御部を有するデバイスである。
ストレージデバイス145に記録された画像データは、タッチパネルやコントロールキーなどからなる操作部160を通じて受け付けたユーザからの操作入力に応じて読み出される。読み出された画像データがI/F140を通じてストレージデバイス145から出力され制御部(ホスト)150を介してDSP120に供給される。
DSP120は、ストレージデバイス145から読み出され、I/F140を通じて供給されたデータ圧縮されている画像データの解凍処理(伸張処理)を行い、解凍後の画像データをシステムバス155を通じて、LCDコントローラ170に供給する。LCDコントローラ170は、供給された画像データからLCD181,182に供給する画像信号を形成し、これをLCD181,182に供給する。これにより、ストレージデバイス145に記録されている画像データに応じた画像が、LCD181,182の表示画面に表示される。
また、図4に示す情報処理装置(カメラ)は、外部I/F190を通じて、例えば外部のパーソナルコンピュータと接続して、パーソナルコンピュータから画像データの供給を受けて、これを自機に装填されたストレージデバイス145に記録することができる。また、自機に装填されたストレージデバイス145に記録されている画像データを外部のパーソナルコンピュータ等に供給したりすることもできる。
また、外部I/F190に通信モジュールを接続することにより、例えば、インターネットなどのネットワークに接続して、ネットワークを通じて種々の画像データやその他の情報を取得し、自機に装填されたストレージデバイス145に記録することが可能である。あるいは、自機に装填されたストレージデバイスに記録されているデータを、ネットワークを通じて目的とする相手先に送信したりすることもできる。
また、外部のパーソナルコンピュータやネットワークを通じて取得し、ストレージデバイスに記録した画像データなどの情報についても、読み出して再生し、LCD181,182に表示してユーザが閲覧することも可能である。
なお、外部I/F190は、例えば、IEEE(Institute of Electrical and Electronics Engineers)1394、USB(Universal Serial Bus)などの有線用インターフェースとして設けることも可能であるし、光や電波による無線インターフェースとして設けることも可能である。すなわち、外部I/F190は、有線、無線のいずれのインターフェースであってもよい。
図4に示すデジタルカメラ100では、例えば撮像/収音により得られるデータに基づいて制御部(ホスト)150等の処理によって生成したAVファイルを、HDDや、各種光学ディスク媒体、半導体記憶装置などのメディアを有するストレージデバイス145に出力して、ストレージデバイス145内のメディアに記録する。ホスト150とストレージデバイス145はインターフェース140を介したデータ転送を実行して、データ記録やデータ読み出しを行う。先に説明したように、ストレージデバイス145は、図には示していないが制御部を有し、制御部(ホスト)150からのコマンドを解釈し、コマンド解釈に基づくデータ書き込みやデータ読み出し処理を実行する。
ストレージデバイス145内のメディアに記憶されるファイルは、情報処理装置の利用するファイルシステムによって規定されるフォーマットに従って管理される。以下において説明する実施例では、ストレージデバイス145に記録する記録データは、FATファイルシステムにより管理されるものとする。
[(2)ファイルシステム管理情報の概要]
次に、ファイルシステム管理情報について説明する。本発明の情報処理装置のホストは、ストレージデバイスのメディア記録データの読み出し処理に際して、メディア記録データに対応するファイルシステム管理情報を利用してビットマップデータを生成し、これを利用したデータ読み出し処理を行う。ビットマップデータは、読み出しファイルの先頭データが記録された先頭クラスタ番号と、読み出し対象としない非読み出しファイルの先頭データの先頭クラスタ番号を識別可能としたデータである。なお、ビットマップデータの詳細については後段で詳細に説明する。
以下では、ビットマップデータの生成に適用するファイルシステム管理情報について説明する。ファイルシステム管理情報は、メディアに記録されたデータの管理情報である。。ファイルシステム管理情報もメディアの一部領域に記録される。ファイルシステム管理情報は、例えば、FAT(File Allocation Table)やディレクトリエントリなどの情報によって構成される。
例えばデジタルビデオカメラやPC、その他の情報処理機器において、フラッシュメモリや光学ディスク、あるいはハードディスクなどのメディアに対する情報記録を行なう場合、記録データファイルの管理情報、例えばFAT(File Allocation Table)を適用した処理が行なわれる。
FATには、例えばFAT16、FAT32などがあり、これらのファイルシステムは、メディア(情報記録媒体)に対して記録されるデータファイル各々についての記録位置情報、記録位置連鎖情報(クラスタチェーン情報)等を管理する。なお、FAT16/32の詳細については、例えば、「Microsoft Extensible Firmware Initiative FAT32 File System Specification」などに説明がある。
図5を参照して、FAT16およびFAT32でフォーマットした場合のデータ構造について説明する。図5(a)がFAT16、(b)がFAT32によるフォーマットを示している。
FAT16のデータ構造は、図5(a)に示すように、先頭セクタ(LBA=0)から順に、マスターブートレコード(MBR)、パーティションブートレコード(PBR)に続き、ファイルアロケーションテーブル1(FAT1)と、ファイルアロケーションテーブル2(FAT2)が記録され、さらにルートディレクトリエントリに続いて、データ領域としてのクラスタが複数設定される。
FAT32のデータ構造は、図5(b)に示すように、先頭セクタ(LBA=0)から順に、マスターブートレコード(MBR)、パーティションブートレコード(PBR)、ファイルシステム情報(FSinfo)に続いて、ファイルアロケーションテーブル1(FAT1)と、ファイルアロケーションテーブル2(FAT2)が記録され、その後、データ領域としてのクラスタが複数設定される。
マスターブートレコード(MBR)は、図6(a)に示すように、起動情報と、パーティション情報、すなわち、各パーティションの開始アドレスとサイズ情報を含むパーティションテーブルを保持している。なお、図5に示すFAT16,FAT32のデータ構造では、パーティションを1つのみとした例を示しているが、ハードディスクなどの記録媒体を複数のパーティションに区切って管理することが可能であり、この場合には、図6に示すように、複数のパーティションの各パーティションの開始アドレスとサイズ情報が含まれるパーティションテーブルが設定される。
起動時においては、まず、MBRの起動コード領域から起動コード(プログラム)が読み出される。この読み出されたMBRの起動コードは、図6(a)に示す起動コードの直後に形成されるパーティションテーブル領域のパーティションテーブルを参照し、目的とするパーティションのブートセクタの情報を読み出し、このブートセクタのコード(プログラム)によって、OS(Operating System)が起動される。
パーティションテーブルは複数個(例えば4個)設けることができるようにされる。各パーティションテーブルは、上述したように、例えばハードディスクの記録領域を分割して形成される各パーティション領域の位置(開始アドレス)と大きさ(パーティションサイズ)を示す情報を保持する。なお、パーティションテーブル領域に続く2バイト(0E,0F)には、パーティションテーブルに対する署名が付与される。
16バイト(128ビット)データ長のパーティションテーブルのデータ構造を図6(b)に示す。0バイト目から7バイト目までの8バイト分のエリアがCHS方式でアドレスを指定する場合に用いる情報の格納エリアであり、8バイト目から15バイト目までの8バイト分のエリアがLBA方式でアドレスを指定する場合に用いる情報の格納エリアである。
CHS方式は、シリンダ(Cylinder)、ヘッド(Head)、セクタ(Sector)の3つのパラメータを1組として用いて、記録媒体(ハードディスク)上のアドレス(位置)を指定するようにするものである。また、LBA方式は、ハードディスクの記録領域上のアクセス可能な単位ブロック(例えば、1セクタ単位)それぞれについて、例えば0番から順番に数字(ブロックアドレス(論理アドレス))を割り当てておき、その数字を指定することにより、ハードディスクの記録領域上のアドレス(位置)を指定するようにするものである。
図6(b)に示すように、CHS方式でアクセスする場合に用いる情報の格納エリアは、0バイト目がアクティブフラグ情報(以下、単にフラグ情報という。)の格納エリア、1バイト目から3バイト目までの3バイト分がCHS方式でアクセスする場合に用いる開始セクタ情報の格納アリア、4バイト目がパーティションタイプ情報(以下、単にタイプ情報という。)の格納エリア、5バイト目から7バイト目までの3バイト分がCHS方式でアクセスする場合に用いる終了セクタ情報の格納エリアである。
また、図6(b)に示すように、LBA方式でアクセスする場合に用いる情報の格納エリアは、8バイト目から11バイト目までの4バイト分がLBA方式で用いられる開始セクタ情報の格納エリア、12バイト目から15バイト目までの4バイト分がLBA方式で用いられるパーティションサイズの格納エリアである。
なお、CHS方式は、ハードディスクの物理的構造をそのまま流用しており、シリンダ、ヘッド、セクタというアドレス指定のためのパラメータが3つあることから、ソフトウェア的な処理が複雑になってしまう。これに対し、LBA方式の場合には、ブロックアドレスという単一のパラメータで指定するので、アクセス時のアドレス指定が極めて簡単である。このため、ハードディスクにおけるアドレス指定方式としてはLBA方式が主流になっており、その他の記録媒体、例えば、いわゆるリムーバブルメディアとして広く用いられるようになってきている種々のメモリカードなどにおいても、LBA方式でアドレス指定ができるものが多くなってきている。
情報記録媒体に記録される各ファイルには、ファイル名や記録日時などのファイル管理情報が設定される。図7に各パーティションに設けられるディレクトリに格納される情報であって、ファイル毎に形成されるファイル管理情報であるディレクトリエントリの情報構造を示す。このディレクトリエントリは、パーティション内にファイルが形成された場合に、その形成されたファイルに応じてディレクトリに形成されるファイル管理情報であり、形成されたファイルの詳細情報を管理するものである。
各ファイルに対応するファイル管理情報としてのディレクトリエントリは、図7に示すように、名前(ファイル名)欄、拡張名欄、属性欄、予約欄、作成時刻欄、作成日欄、最終アクセス日付欄、先頭クラスタ番号の指示情報(High)欄、記録時刻欄、記録日付欄、先頭クラスタ番号の指示情報(Low)欄、ファイルサイズ欄を備え、それぞれ対応する情報、すなわち、ファイル名、拡張名、属性、作成時刻、作成日、最終アクセス日付、先頭クラスタ番号(High)、記録時刻、記録日付、先頭クラスタ番号(Low)、ファイルサイズを管理する。このディレクトリエントリの情報を用いることにより、ファイル名によって特定されるファイルは、(1)どのような属性のものであり、(2)開始クラスタはどこで、(3)どの位の大きさのファイルであり、(4)いつ作成され、(5)最終アクセスはいつで、(6)データの記録はいつ行われたか等について管理することができる。
開始クラスタ番号は、ファイルのデータ記録が開始されたパーティションのデータ領域のクラスタ単位の記憶領域を特定する情報である。換言すれば、開始クラスタ番号は、当該パーティションのデータ領域をクラスタ単位に分割した各記憶領域の内の何番目の記憶領域から当該ファイルのデータの記録が行われたかを示している。そして、この例の場合には、図7に示すように、先頭クラスタ番号は、上位側(high側)の2バイトと、下位側(Low側)の2バイトとに分けて管理される。
クラスタは、図5に示すように、データ領域に含まれ、FATにおけるデータを管理できる最小単位であり、複数のセクタをまとめた、1ファイル当たりの最小記録単位を意味する。1クラスタは、セクタ(ハードディスクの場合、セクタサイズ=512バイト)をn個(n=1,2,4,・・・64,128)集めた構成になる。ハードディスクの最小単位であるセクタは、ファイルを管理するための単位としては小さすぎるので、複数のセクタをまとめたクラスタという単位領域を用いることによって、ファイルの管理が容易となるようにしている。クラスタの具体的な大きさは、例えば、FAT16の場合には32キロバイト、FAT32の場合には4キロバイトである。
図5に示すFATのデータ構造には、図6を参照して説明したマスターブートレコード(MBR)に続いて、パーティションに対応する起動コードを含むパーティションブートレコード(PBR)が設定され、その後、ファイルアロケーションテーブル1(FAT1)と、ファイルアロケーションテーブル2(FAT2)が格納される。
ファイルアロケーションテーブル2(FAT2)は、ファイルアロケーションテーブル1(FAT1)の予備データとして利用される。すなわち、ファイルアロケーションテーブル2(FAT2)には、ファイルアロケーションテーブル1(FAT1)のコピーデータを格納している。
一般的なファイルアロケーションテーブル(FAT)のデータ構成例について、図8を参照して説明する。ファイルアロケーションテーブル(FAT)は、メディア(情報記録媒体)に対して記録されるデータファイル各々についての記録位置情報、記録位置連鎖情報(クラスタチェーン情報)を管理するテーブルである。
前述したように、各データファイルの構成データは、1つ以上のクラスタに分散されて情報記録媒体に記録される。ファイルアロケーションテーブル(FAT)は、各ファイルの構成データを格納したクラスタのクラスタ番号の連鎖情報(クラスタチェーン情報)を格納している。
図8に示すFATは、2つに分割して示してある。2重線で示す項目は、インデックスであり、データエントリとして、
[0x00000000]〜[0x0000000F]
[0x00000010]〜[0x0000001F]
[0x00000020]〜[0x0000002F]
[0x00000030]〜[0x0000003F]
のクラスタ番号を示している。なお、図に示すテーブルでは[0x]を省略しているが、上記[0x]は後続の8桁の0〜Fの数値で示されるクラスタ番号が16進数表記であることを示している。
各ファイルの構成データを格納したクラスタ番号の位置に、ファイル構成データの次のデータを格納したクラスタ番号が記録され、最終クラスタ番号の位置にはEOF(エンドオブファイル)を示すコード[0x0FFFFFFF]が記録される。先頭クラスタ番号は、図7を参照して説明した各ファイルのディレクトリエントリに記録されている。
例えば、各ファイルのディレクトリエントリに記録された先頭クラスタ番号を、
第1ファイル:0x00000007
第2ファイル:0x0000000A
第3ファイル:0x0000001B
第4ファイル:0x0000002C
とする。
第1ファイルの先頭クラスタ番号は、[0x00000007]であるので、まず、クラスタ番号[0x00000007]のクラスタを読み取ることで、第1ファイルの最初のデータが取得できる。第1ファイルの次の構成データの記録されたクラスタ番号は、図8に示すFATのクラスタ番号[0x00000007]の位置の記録情報に基づいて知ることができる。図8に示すFATのクラスタ番号[0x00000007]の位置にはクラスタ番号[0x00000008]が記録され、第1ファイルの次の構成データの記録されたクラスタ番号は[0x00000008]であることが判明し、クラスタ番号[0x00000008]のクラスタからデータを読み取ることができる。
さらに、第1ファイルの次の構成データの記録されたクラスタ番号は、図8に示すFATのクラスタ番号[0x00000008]の位置に記録されている。図8に示すFATのクラスタ番号[0x00000008]の位置にはクラスタ番号[0x00000009]が記録され、第1ファイルの次の構成データの記録されたクラスタ番号は[0x00000009]であることが判明し、クラスタ番号[0x00000009]のクラスタからデータを読み取ることができる。さらに、次の構成データの記録されたクラスタ番号を取得するため、FATのクラスタ番号[0x00000009の位置の記録情報を参照すると、EOF(エンドオブファイル)の対応コード[0x0FFFFFFF]が記録されており、後続データはないことが判明する。
結果として、第1ファイルは、
クラスタ番号:[0x00000007]→[0x00000008]→[0x00000009]によって指定されるクラスタに格納されていることが判明する。
同様に、
第2ファイルは、
クラスタ番号:[0x0000000A]→[0x0000001F]→[00000025]→[0x00000031]→[0x00000030]
第3ファイルは、
クラスタ番号:[0x000001B]→[0x0000011]→[0x0000012]→[0x0000013]→[0x0000014]→[0x0000003]
第4ファイルは、
クラスタ番号:[0x000002C]→[0x000002D]→[0x000002E]→[0x000002F]→[0x0000038]→[0x0000039]→[0x000003A]→[0x000003B]
によって指定されるクラスタに格納されていることが判明し、これらのクラスタからデータを取得することが可能となる。
なお、図8に示すFATは、FAT32に対応するデータ例である。FAT32では、EOF(エンドオブファイル)の対応コードは[0x0FFFFFFF]であるが、FAT16では、EOF(エンドオブファイル)の対応コードは[0xFFFF]である。このEOF(エンドオブファイル)の対応コードを検出することで、ファイル構成データが終了することを判別することができる。
このように、メディアに記録される各ファイルは、
(a)ファイル名や作成日時、ファイルサイズなどを保持する「ディレクトリエントリ」
(b)クラスタの連鎖情報(クラスタチェーン情報)を保持する「FAT」
(c)クラスタ単位で記録されている「データ(ファイルの実体)」
の3要素を有する。これらがフラッシュメモリやハードディスクなどのメディアに記録され、ファイルシステム管理情報である「ディレクトリエントリ」と、「FAT」に基づいて、各ファイルの構成クラスタを識別して、データを読み取ることができる。なお、これらの3要素はメディア上に記録される。
[(3)本発明のデータ転送処理に利用するビットマップデータ等の情報について]
次に、本発明のデータ転送処理に利用するビットマップデータ等の情報について説明する。
なお、以下において説明する実施例においては、ホストが読出しコマンドとして使用するコマンドはSCSI規格のREAD(10)コマンド(以下、READコマンド)とする。このコマンドのフォーマットは、先に図1を参照して説明した通りである。ホストが読み出そうとするストレージデバイス上の記録ファイルは断片化したデータとして、例えば図9に示すようにメディア上に配置されているとする。
図9は、メディア上の各クラスタに存在する断片化したファイルのファイル名を記載した図である。ファイルA、ファイルB、ファイルC・・・これら複数のファイルが、各クラスタに分散して記録されている。太線枠でかつ文字を斜体で示したファイル名が記載されたクラスタ番号(例えばクラスタ5,9,11,12・・・64)は、各ファイルの先頭クラスタであることを示している。FATファイルシステムの仕様上、断片化したファイルのデータにおいて、そのファイルを構成するクラスタのうち、先頭クラスタ番号は、一番小さい値とは限らず、さまざまな値を取りうる。
なお、図9においてグレーで示しているクラスタは、ホストが読み出し処理を行うファイル(ファイルC,F,H,E,J,N)を格納したクラスタである。ホストはストレージデバイスへREADコマンドを送信するに先立ち、これから読み出しを行うファイルを示すためのビットマップデータの作成を行う。この方法について以下に説明する。
まずホストは、ストレージデバイスのメディア上の全FAT領域をREADコマンドにより読み出し、各FATエントリを解析することで、全てのファイルにおける先頭クラスタ番号を取得する。周知のとおり、FAT領域はメディアにおける全クラスタに対して個々に対応するFATエントリの集合によるテーブル構造をなしており、FATエントリに対して次に連結すべきクラスタ番号を格納することで、ファイルをクラスタ単位の連結により管理している。
従ってFAT領域に存在する全てのクラスタチェーンを解析することで、ストレージデバイス上に存在する全てのファイルの先頭クラスタ番号を知ることができる。この処理で、例えば図10に示すような16個の先頭クラスタ番号が抽出されたとする。これらの番号は、後の処理のために例えば昇順で並べておく。図10に示すように昇順に並べたリストを「記録ファイル対応先頭クラスタ番号リスト」とする。
図10に示す「記録ファイル対応先頭クラスタ番号リスト」には、上から、クラスタ番号5,9,11,12・・・の各クラスタ番号が設定されている。これらは、図9に示す太線枠でかつ文字を斜体で示した各ファイルの先頭クラスタ番号に対応するクラスタ番号である。図10の右側に示すファイルB〜Qの先頭クラスタである。
すなわち、図10に示す「記録ファイル対応先頭クラスタ番号リスト」の1番目のエントリ[5]は、ファイルBの先頭クラスタ番号である。2番目のエントリ[9]は、ファイルCの先頭クラスタ番号である。このように、図10に示す「記録ファイル対応先頭クラスタ番号リスト」は、メディアに記録されたファイル各々の先頭クラスタ番号を昇順に並べたリストである。
ただし、図10に示す「記録ファイル対応先頭クラスタ番号リスト」は、メディアに記録された複数のファイルの各クラスタチェーンにおける先頭クラスタ番号を配列したデータであり、各々のクラスタ番号がどのファイルに対応するかの情報は有していない。図10の右側に示すファイル名は説明のために記載したのみであり、ストレージデバイスからホストが取得するデータは、図10の左側に示す「記録ファイル対応先頭クラスタ番号リスト」のみであるので、ホストは、メディアに記録された複数のファイルの各クラスタチェーンにおける先頭クラスタ番号の情報のみを取得することになる。各々のクラスタ番号がどのファイルに対応するかの情報は取得できない。
次にホストは、ストレージデバイスのメディアに記録された複数ファイルから選択したファイルのデータを読み出すため、読み出しファイルの先頭クラスタ番号をストレージデバイスから取得する。先頭クラスタ番号は各ファイルのディレクトリエントリに格納されており、ホストはREADコマンドにより当該ディレクトリエントリを読み出すことによって、それらを取得することができる。
この処理は、ホストがファイルの読み出しを行うにあたり、従来のデータ転送処理においても同様に行われる処理である。この処理で、例えばホストが読み出しを行う各ファイルが図11に示す6つのファイル(ファイルC,F,H,E,J,N)であるとして、各々のファイルに対応する先頭セクタ番号は、図11の表に示すように求まったとする。図11に示すリストを「読み出しファイル対応先頭クラスタ番号リスト」とする。
次にホストは、先に取得した図10に示す「記録ファイル対応先頭クラスタ番号リスト」、すなわち、メディアに記録された全ファイルの先頭クラスタ番号について昇順に並べたリストの各エントリに設定された各クラスタ番号に1ビットを対応させたビットマップデータを作成する。
「記録ファイル対応先頭クラスタ番号リスト」のエントリであるクラスタ番号に設定するビットは、以下のビットとする。
ホストがこれから読み出すファイルの先頭クラスタ番号に対応したビットの値は[1]、
その他の先頭クラスタ番号に対応したビットの値は[0]とする。
すなわち、ホストが読み出すファイルとその他のファイルを区別するビット値を各先頭クラスタ番号に対応付ける。なお、[1],[0]の設定は、逆の設定でもよく、ホストが読み出すファイルとその他のファイルを区別可能なビット値であればよい。
この処理について、
図10に示す「記録ファイル対応先頭クラスタ番号リスト」と、
図11に示す「読み出しファイル対応先頭クラスタ番号リスト」、
これらの2つのリストを参照して説明する。
まず、図10に示す「記録ファイル対応先頭クラスタ番号リスト」における先頭クラスタ番号5は、図11に示す「読み出しファイル対応先頭クラスタ番号リスト」において、先頭クラスタ番号がどれも一致しないため、ビットマップデータをのビットを[0]とする。
次に図10に示す「記録ファイル対応先頭クラスタ番号リスト」における先頭クラスタ番号9は、図11に示す「読み出しファイル対応先頭クラスタ番号リスト」において、ファイルCの先頭クラスタ番号が一致するので、ビットマップデータのビットを[1]とする。このように、図10に示す「記録ファイル対応先頭クラスタ番号リスト」におけるすべて先頭クラスタ番号について1ビットを対応させ、ビットマップデータを作成する。例えば図12(b)に示すようなビットマップデータを作成する。
さらにホストは、作成したビットマップデータにヘッダ情報などを設定したビットマップデータ送信用データを生成する。例えば図13に示すビットマップデータ送信用データ(Page)である。図13に示すByte3以降の領域をビットマップ領域としてビットマップデータ200を格納する。このビットマップデータは図12(b)に示すビットマップデータと同じデータである。Byte3のbit0を起点としてbit7までの値が、図12(b)に示すビットマップデータの最上部から8番目のビット値に対応する。Byte4のbit0を起点としてbit7までの値が、図12(b)に示すビットマップデータの9番目から16番目のビット値に対応する。
図13に示すビットマップデータ送信用データのByte0〜Byte2の領域はヘッダ情報格納領域である。
Byte0には、この情報(Page)がビットマップデータ送信用データであることを示すコード情報、
Byte1には、この情報(Page)のデータ長、
Byte2には、この情報(Page)に格納したビットマップデータでのファイル指定の有効性、
これらの情報を設定する。
例えば、Byte2の最終ビットが[1]である場合、Byte3以下に格納されたビットマップデータが有効であることを示し、Byte2の最終ビットが[0]である場合、ビットマップデータが無効であることを示す。
ホストは、図13に示すビットマップデータ送信用データを生成して、ストレージデバイスに出力する。ホストは、その後、READコマンドをストレージデバイスに出力する。
ホストからのビットマップデータ送信用データを受信したストレージデバイスは、この後にホストから受信する予定のREADコマンドによって読み出しの要求されるファイルを、先行してホストから受信したビットマップデータ送信用データに基づいて選別する。
ストレージデバイスは、ビットマップデータ送信用データに格納されたビットマップデータ(例えば図12(b))に従って、読み出しファイルを選定して、読み出しを開始する。その後、ホストからのREADコマンドの受信に応じて、読み出したファイルを順次ホストに送信する。
ホストが作成したビットマップデータは、全ファイルの先頭クラスタ番号に対応するFATエントリについて、各々[0]または[1]の1ビットが割り当てられ、そのビット値が、ホストがデータ読出しを要求するか否かを意味するデータとなる。
ビットマップデータの生成についての説明は以上である。
[(4)ホストおよびストレージデバイスの処理シーケンス]
次に、図14〜図16を参照してホストおよびストレージデバイスの処理シーケンスについて説明する。
まず、図14に示すフローチャートを参照してホスト側の処理シーケンスについて説明する。なお、ホストはデータ記録可能なメディアを有するストレージデバイスに対して、メディアに記録されたデータの読み出し要求を出力し、データ読み出しを行う制御部に相当する。図14に示すフローは、情報処理装置の制御部(ホスト)の実行する処理シーケンスである。制御部(ホスト)は、メディア記録データに対応するファイルシステム管理情報を利用して、読み出しファイルの先頭データが記録された先頭クラスタ番号と、非読み出しファイルの先頭データが記録された先頭クラスタ番号を識別可能としたビットマップデータを生成して、ストレージデバイスに出力する処理を行う。すなわち、図13に示すビットマップデータ送信用データを生成してストレージデバイスに送信する。さらに、ホストはデータ読み出しコマンド、すなわちREADコマンドをストレージデバイスに送信して、読み出しファイルをストレージデバイスから取得する。
図14に示すフローチャートの各ステップについて説明する。まずホストはステップS101において、FAT、ディレクトリエントリなどのファイルシステム管理情報を取得する。これらの情報は、例えばストレージデバイスの管理するメディアに記録されており、ストレージデバイスを介して取得する。
次に、ホストはステップS102において、ステップS101で取得したファイルシステム管理情報を解析し、メディアに記録されたファイルの先頭クラスタ番号を取得して、記録ファイル対応先頭クラスタ番号リストを作成する。例えば図10を参照して説明した、記録ファイル対応先頭クラスタ番号リストである。
次に、ホストはステップS103において、例えばユーザの指定情報などに基づく読み出しファイル指定情報に従って、読み出しファイル対応先頭クラスタ番号リストを作成する。例えば図11を参照して説明した、読み出しファイル対応先頭クラスタ番号リストである。
次に、ホストはステップS104において、記録ファイル対応先頭クラスタ番号リストと、読み出しファイル対応先頭クラスタ番号リストに基づいて、ビットマップデータを作成してストレージデバイスに送信する。
図10に示す「記録ファイル対応先頭クラスタ番号リスト」における先頭クラスタ番号と、図11に示す「読み出しファイル対応先頭クラスタ番号リスト」に設定された先頭クラスタ番号が一致する場合と一致しない場合を区別可能としたビットマップデータを作成する。例えば図12(b)に示すビットマップデータである。ホストはこのビットマップデータにヘッダ情報を設定した図13に示すビットマップデータ送信用データを生成してストレージデバイスに送信する。
なお、ホストはなんらかの方法でストレージデバイスに対してビットマップデータを送信すればよいが、SCSI規格のコマンドを使用するのであれば、たとえばMode Selectコマンド(モードセレクトコマンド)を使えばよい。SCSI規格のMode Selectコマンドでは、Mode Pageと呼ばれる各種情報を格納するためのデータ領域が規定されており、ストレージデバイスは自由なベンダー定義のMode Pageを持つことができる。このMode Pageのうちひとつをビットマップデータに割り当てて、ストレージデバイスに送信することが可能である。このようにホストは例えばMode Selectコマンドを送信することで、ストレージデバイスにビットマップデータを送信することができる。
次に、ホストはステップS105において、読み出しコマント、例えば図1に示すようなREADコマンドをストレージデバイスに送信する。
次に、ホストはステップS106において、ストレージデバイスから読み出しファイルを順次受信する。
この処理において、ストレージデバイスは、ホストから受信したビットマップデータに基づいて複数の読み出しファイルの先頭クラスタ番号を取得できているので、ホストは、データ読み出しコマンド(READコマンド)の送信は1回のみで、複数のファイルをストレージデバイスから取得することが可能となる。
次に、ホストからのビットマップデータを受信したストレージデバイス側の処理について図15に示すフローチャートを参照して説明する。
ストレージデバイスは、データを記録するメディアと、メディアに対するデータ記録またはデータ読み出し処理を行う制御部を有する。制御部は、ホストが要求する読み出しファイルの先頭データが記録された先頭クラスタ番号と、非読み出しファイルの先頭データが記録された先頭クラスタ番号を識別可能としたビットマップデータをホストから受信し、受信ビットマップデータとファイルシステム管理情報を適用して、読み出しファイルの記録クラスタを解析してファイル読み出し処理を実行する。図15に示すフローは、ストレージデバイスの制御部の制御によって実行される。図15に示すフローの各ステップの処理の詳細について説明する。
ストレージデバイスは、ホストから図13に示す構成を持つビットマップデータ送信用データを受信すると、まず、ステップS201において、Byte2のビット0のビット値が、ビットマップデータが有効であることを示す値に設定されているか否かを確認する。例えば、この値が[1]である場合、ビットマップデータが有効であると判定する。例えば、この値が[0]である場合、ビットマップデータが無効であると判定し、その後の処理は行わず処理終了とする。
ステップS201において、ビットマップデータが有効であると判定された場合は、ステップS202に進む。ステップS202では、図13に示す構成を持つビットマップデータ送信用データに格納されたビットマップデータを取得し解析する。具体的には、Byte3以降のビットマップデータについて、順番に値が0であるか1であるかを確認する。まず、図13に示すByte3の8ビットデータのLSB側からMSB側に向けて値を判定する。
ビット値が、「読み出しファイル対応先頭クラスタ番号リスト」にクラスタ番号が記録されていることを示す値、例えばビット値=[1]である場合はステップS205の処理を行う。一方、ビット値が、「読み出しファイル対応先頭クラスタ番号リスト」にクラスタ番号が記録されていないことを示す値、例えばビット値=[0]である場合はステップS204に進み、次のビットを検査対象に設定して、ステップS203のビット値判定処理を繰り返す。
このようにして、ビット値が、「読み出しファイル対応先頭クラスタ番号リスト」にクラスタ番号が記録されていることを示す値である場合にのみ、ステップS205の処理を行い、ステップS206において、すべてのビットマップデータに対する処理が終了したと判定した場合に処理を終了する。
ステップS203において、ビット値が、「読み出しファイル対応先頭クラスタ番号リスト」にクラスタ番号が記録されていることを示す値である場合は、ステップS205において、現在のビット探索位置に基づいてビット位置に対応するファイルの先頭セクタ番号を割り出す。
このステップS205の処理の詳細処理について説明する。
ストレージデバイスは、まず、[1]のビット値を持つ現在の探索ビットがByte3のビット0をLSBとして、LSBから数えて何ビットめかを計算する。この計算された値は、前述したビットマップデータの生成方法の例によれば、図10に示す「記録ファイル対応先頭クラスタ番号リスト」の上からのエントリ数に対応する。
次にストレージデバイスは、メディアに格納されたFATに基づいて、メディアに記録されたファイルすべての先頭クラスタ番号を得る。これは、図10に示す「記録ファイル対応先頭クラスタ番号リスト」の取得に相当する。ストレージデバイスはメディアからFATを取得できるため、全ファイルの先頭クラスタ番号を容易に取得可能であり、あらかじめ取得してメモリ等に用意しておくことも可能である。
次にストレージデバイスは、ビットマップデータの値が1に設定されたビットに対応する先頭クラスタ番号から、FAT等のファイルシステム管理情報を適用してクラスタチェーンをたどり、ファイル構成データを格納している連結されたクラスタ番号を取得する。クラスタ番号と論理ブロックアドレスは規定の計算式によりお互いの値を計算することができるので、ストレージデバイスは、ホストに送信すべきデータの論理ブロックアドレスと、データの転送長を得ることができる。
このクラスタチェーンを利用して、1つのファイルの構成データの読み出しに必要なクラスタ番号を取得することができる。この取得したクラスタ番号を利用してファイルの構成データを順次、読み出してホストに送信する。なお、ホストへの送信タイミングは、ホストからのデータ読み出しコマンド(READコマンド)の受信後としてよい。
これらのステップS205の処理の後、ステップS206に進み、現在のビットマップデータの探索ビット位置がビットマップデータの最後のビットであるか否かを判定する。すなわち未処理ビットが残っているか否かを判定する。未処理ビットがない場合は、処理終了する。未処理ビットがある場合は、ステップS204に進み、ビット探索位置を、未処理ビット側に1ソビットずらして、ステップS203以下の処理を繰り返す。
最終的に、ステップS206において、すべてのビットマップデータに対する処理が終了したと判定した場合に処理を終了する。
この処理シーケンスに従えば、ストレージデバイスは、ホストが読み出そうとするデータの論理ブロックアドレスとデータ転送長を、ホストからのビットマップデータの受信時に知ることができる。従って、ストレージデバイスは、ビットマップデータの受信後、ホストからのREADコマンドを受信する前に、先行してメディアの読出しを開始することができる。
図16は、ホストとストレージデバイスの通信シーケンスを示す図である。図16には、ホストがビットマップデータ(図13参照)をストレージデバイスに送信する処理以降のシーケンスを示している。このシーケンス図について説明する。
図16のステップS301において、ホストはストレージデバイスに対してビットマップデータを送信する。これは、図13を参照して説明した構成を持つビットマップデータ送信用データに格納して送信される。
ステップS302において、ストレージデバイスがホストからビットマップデータを受信すると、ストレージデバイスは、図15のフローチャートに従った処理を開始する。具体的には、まず、図13を参照して説明した構成を持つビットマップデータ送信用データByte2のビット0のビット値が、ビットマップデータが有効であることを示す値に設定されているか否かを確認する。
有効であると判定された場合は、ビットマップデータを取得し、順番に値が0であるか1であるかを確認し、1であるビットに対応するクラスタ番号を取得し、さらにFATを適用してクラスタチェーンをたどって、ファイルの格納されたクラスタ位置を取得して、ファイルの読み出し処理を開始(S303)する。
その後、ステップS304においてホストがストレージデバイスに対して読み出しコマンド(READコマンド)を送信する。
ステップS305において、ストレージデバイスは、ホストからのて読み出しコマンド(READコマンド)の受信に応じて、読み出しデータを、順次ホストに送信する。ビットマップデータに指定された読み出しファイルのすべてが順次連続送信される。
なお、図16に示すように、ホストはビットマップデータの送信を行ったあと、実際のデータ転送を開始させるためREADコマンドを1回発行する。この時のREADコマンドにおけるLBA領域の論理ブロックアドレスは利用する必要がないので、例えばその値を0とする。またREADコマンドにおける転送長領域の値は、例えばその値を、ホストが事前に送ったビットマップデータで指定される全ファイルの合計のデータ転送長とする。READコマンドを受信したストレージデバイスは、前記ビットマップデータを解析して得た論理ブロックアドレスとデータ転送長に基づき、メディアからデータを順次読出し、ホストに転送する。全ファイルのデータを転送すると終了となる。
なお、図16では、ホストからのビットマップデータの送信処理と、読み出しコマンド(READコマンド)の送信処理を別処理として記載しているが、ビットマップデータの送信処理と、読み出しコマンド(READコマンド)の送信処理は併せて1回のデータ送信処理として実行してもよい。
なお、ストレージデバイスの処理として、ビットマップデータから該当するファイルの論理ブロックアドレスとデータの転送長を割り出す処理は、ビットマップデータ受信時に全て行ってもよいし、実際のデータ転送を行いながら順次行ってもよい。転送するファイルが多い場合は、論理ブロックアドレスとデータ転送長を記憶しておくためのメモリ領域の確保が必要であるため、十分なメモリが確保できない場合は、後者の方法が有効である。
また、次にホストが新たなファイルの読出しを行う場合に、本発明によるデータ転送方法で読出しを行う場合には、新たなファイル指定のためのビットマップデータを作成し、ストレージデバイスに送信して、READコマンドによって該当ファイルの読出しを行えばよい。
また、次にホストが新たなファイルの読出しを行う場合に、従来のデータ転送方法で読出しを行いたい場合には、ビットマップデータでのファイル指定が無効であることを示すための情報を付加して、ストレージデバイスにビットマップデータの送信を行えばよい。前述の例で言うならば、ビットマップデータ送信用データのヘッダ情報であるByte2のビット値をビットマップデータが無効であることを示す値に設定して送信すればよい。
以上、説明したように、本発明に従ったデータ転送処理では、ホストが読み出そうとするデータが、ストレージデバイスの管理するメディア上の分散した論理ブロックアドレス上に存在する断片化したファイルである場合や複数のファイルである場合でも、ホストは読み出しコマンド(READコマンド)を繰り返し送信する必要がない。
すなわち、複数のファイルを特定できる情報であるビットマップをストレージデバイスに送信し、ストレージデバイスはビットマップに基づいて、複数のファイルの先頭クラスタ番号を取得できるので、1回の読出しコマンドのみで、複数のクラスタに分散された複数のファイルを読み出してデータ転送を行うことができる。
このように、ストレージデバイスは、ホストからの読み出しコマンド(READコマンド)の受信前にホストから受信するビットマップデータに基づいてメディアからのデータの読出しを行うことができ、その結果、データの転送速度を従来のデータ転送方法よりも高速化させることができる。
またホストは、分散した論理ブロックアドレス毎に読出しコマンドを発行する必要がないので、コマンドの解析処理や、コマンドに付随するステータスデータの送信処理など、コマンド1回あたりに発生する処理を行う必要がなく、その結果、データの転送速度を、従来のデータ転送方法よりも高速化させることができる。
また、本発明におけるデータ転送方法では、ホストが読出そうとするファイルを特定する情報をストレージデバイスに通知する場合に利用するデータを1ファイルあたり1ビットの情報量としたビットマップデータとしている。従って、この通知処理にかかるデータ転送量を非常に少なくすることができ、その結果、データの転送速度を従来のデータ転送方法よりも高速化することができる。また、これによって、ホストが読み出そうとするファイルの情報をストレージデバイスにおいて記憶するメモリ領域が少なくてすむ。すなわち従来のデータ転送方法よりも使用するメモリ資源を小さくすることができ、システムを小型化・低価格化することができる。
また、本発明におけるデータ転送処理は、ホストとストレージデバイスとのデータ転送に従来から使用されているコマンドの規格を逸脱しないで実行することができる。従って、本発明の実行のための独自のデバイスドライバなどの開発は不要であり、従来のデバイスドライバを使うことができる。従って、システム開発者にとっては、開発を容易に行えるメリットがあり、かつユーザにとっては、デバイスドライバの入れ替えの手間が不要となり、コスト安で簡素なシステムによって本発明に従った効率的なデータ転送を実現することができる。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の一実施例の構成によれば、ホストとストレージデバイス間のデータ転送効率を高めることが可能となる。ホストはストレージデバイスのメディア記録データに対応するファイルシステム管理情報を利用して読み出しファイルの先頭データが記録された先頭クラスタ番号と、非読み出しファイルの先頭データが記録された先頭クラスタ番号を識別可能としたビットマップデータを生成してストレージデバイスに出力する。ストレージデバイスはビットマップデータを解析して要求ファイルおよび対応したクラスタを判別して、ファイル構成データをメディアから読み出してホストに提供する。本構成により、ホストがコマンド送信を繰り返すことなく複数ファイルの読み出しおよび転送を行うことが可能となる。
100 デジタルカメラ
110 カメラ部
111 光学ブロック
112 CCD(Charge Coupled Device)
113 前処理回路
114 光学ブロック用ドライバ
115 CCD用ドライバ
116 タイミング生成回路
120 カメラDSP(Digital Signal Processor)
140 インターフェース
145 ストレージデバイス
150 制御部
151 CPU
153 フラッシュROM
154 時計回路
160 操作部
170 LCD(Liquid Crystal Display)コントローラ
181,182 LCD
190 外部インターフェース
195 内部メモリ
200 ビットマップデータ

Claims (7)

  1. データ記録可能なメディアを有するストレージデバイスに対して、メディア記録データの読み出し要求を出力してデータ読み出しを行う制御部を有し、
    前記メディアは、各データファイルの構成データを記録メディアのデータ記録単位領域として設定されたクラスタ単位で分散記録するとともに、各データファイル対応のデータ記録クラスタの連鎖情報を含むファイルシステム管理情報を記録した構成であり、
    前記制御部は、
    前記メディア記録データに対応する前記ファイルシステム管理情報を利用して、前記メディアに記録された全てのファイルの先頭データが記録された先頭クラスタ番号のリストである記録ファイル対応先頭クラスタ番号リストと、
    読み出し予定の選択されたファイルの先頭データが記録された先頭クラスタ番号のリストである読み出しファイル対応先頭クラスタ番号リストを生成し、
    前記記録ファイル対応先頭クラスタ番号リストと、前記読み出しファイル対応先頭クラスタ番号リストの各エントリの照合処理を実行し、
    前記照合処理結果に基づいて、各記録ファイルの先頭クラスタが、読み出し対象ファイルの先頭クラスタであるか、非読み出し対象ファイルの先頭クラスタであるかの識別データとして、各記録ファイルに対して1ビットのみを割り当てたビットマップデータを生成して、前記ストレージデバイスに出力する処理を行う情報処理装置。
  2. 前記制御部は、
    前記ビットマップデータに、ビットマップデータの有効性判別情報を含むヘッダ情報を設定した送信用データを生成して前記ストレージデバイスに出力する請求項1に記載の情報処理装置。
  3. 前記制御部は、
    ファイルシステム管理情報としてFAT(File Allocation Table)およびディレクトリエントリを適用して、前記ビットマップデータを生成する請求項1に記載の情報処理装置。
  4. 前記制御部は、
    前記ストレージデバイスに対する1回のデータ読み出しコマンドの送信処理を実行して、前記ビットマップデータによって識別される1または複数のファイルの読み出しデータをストレージデバイスから取得する請求項1〜3いずれかに記載の情報処理装置。
  5. データ記録可能なメディアを有するストレージデバイスと、メディア記録データの読み出し要求を出力してデータ読み出しを行うホストを有する情報処理システムであり、
    前記メディアは、各データファイルの構成データを記録メディアのデータ記録単位領域として設定されたクラスタ単位で分散記録するとともに、各データファイル対応のデータ記録クラスタの連鎖情報を含むファイルシステム管理情報を記録した構成であり、
    前記ホストは、
    メディア記録データに対応する前記ファイルシステム管理情報を利用して、前記メディアに記録された全てのファイルの先頭データが記録された先頭クラスタ番号のリストである記録ファイル対応先頭クラスタ番号リストと、
    読み出し予定の選択されたファイルの先頭データが記録された先頭クラスタ番号のリストである読み出しファイル対応先頭クラスタ番号リストを生成し、
    前記記録ファイル対応先頭クラスタ番号リストと、前記読み出しファイル対応先頭クラスタ番号リストの各エントリの照合処理を実行し、
    前記照合処理結果に基づいて、各記録ファイルの先頭クラスタが、読み出し対象ファイルの先頭クラスタであるか、非読み出し対象ファイルの先頭クラスタであるかの識別データとして、各記録ファイルに対して1ビットのみを割り当てたビットマップデータを生成して、ストレージデバイスに出力し、
    前記ストレージデバイスは、
    前記ビットマップデータをホストから受信し、受信ビットマップデータとファイルシステム管理情報を適用して、読み出しファイルの記録クラスタを解析してファイル読み出し処理を実行する情報処理システム。
  6. 情報処理装置において実行する情報処理方法であり、
    前記情報処理装置は、データ記録可能なメディアを有するストレージデバイスに対して、メディア記録データの読み出し要求を出力してデータ読み出しを行う制御部を有し、
    前記制御部が、前記メディア記録データに対応する前記ファイルシステム管理情報を利用して、前記メディアに記録された全てのファイルの先頭データが記録された先頭クラスタ番号のリストである記録ファイル対応先頭クラスタ番号リストと、
    読み出し予定の選択されたファイルの先頭データが記録された先頭クラスタ番号のリストである読み出しファイル対応先頭クラスタ番号リストを生成し、
    前記記録ファイル対応先頭クラスタ番号リストと、前記読み出しファイル対応先頭クラスタ番号リストの各エントリの照合処理を実行し、
    前記照合処理結果に基づいて、各記録ファイルの先頭クラスタが、読み出し対象ファイルの先頭クラスタであるか、非読み出し対象ファイルの先頭クラスタであるかの識別データとして、各記録ファイルに対して1ビットのみを割り当てたビットマップデータを生成して、ストレージデバイスに出力するステップと、
    前記制御部が、前記ストレージデバイスにメディア記録データ読み出し要求を出力するステップと、
    前記制御部が、前記ストレージデバイスから、前記ビットマップによって識別された読み出しファイルの全データを順次、受信するステップと、
    を有する情報処理方法。
  7. 情報処理装置において情報処理を実行させるプログラムであり、
    前記情報処理装置は、データ記録可能なメディアを有するストレージデバイスに対して、メディア記録データの読み出し要求を出力してデータ読み出しを行う制御部を有し、
    前記制御部に、前記メディア記録データに対応する前記ファイルシステム管理情報を利用して、前記メディアに記録された全てのファイルの先頭データが記録された先頭クラスタ番号のリストである記録ファイル対応先頭クラスタ番号リストと、
    読み出し予定の選択されたファイルの先頭データが記録された先頭クラスタ番号のリストである読み出しファイル対応先頭クラスタ番号リストを生成させ、
    前記記録ファイル対応先頭クラスタ番号リストと、前記読み出しファイル対応先頭クラスタ番号リストの各エントリの照合処理を実行させ、
    前記照合処理結果に基づいて、各記録ファイルの先頭クラスタが、読み出し対象ファイルの先頭クラスタであるか、非読み出し対象ファイルの先頭クラスタであるかの識別データとして、各記録ファイルに対して1ビットのみを割り当てたビットマップデータを生成させて、ストレージデバイスに出力させるステップと、
    前記制御部に、前記ストレージデバイスにメディア記録データ読み出し要求を出力させるステップと、
    前記制御部に、前記ストレージデバイスから、前記ビットマップによって識別された読み出しファイルの全データを順次、受信させるステップと、
    を実行させるプログラム。
JP2009027565A 2009-02-09 2009-02-09 情報処理装置、および情報処理方法、並びにプログラム Expired - Fee Related JP4816740B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009027565A JP4816740B2 (ja) 2009-02-09 2009-02-09 情報処理装置、および情報処理方法、並びにプログラム
US12/658,073 US8250087B2 (en) 2009-02-09 2010-02-02 Information processing apparatus, information processing method, and program
EP10152366A EP2216712A3 (en) 2009-02-09 2010-02-02 Information processing apparatus, information processing method, and program
CN2010101170092A CN101799785B (zh) 2009-02-09 2010-02-09 信息处理设备、信息处理方法和程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009027565A JP4816740B2 (ja) 2009-02-09 2009-02-09 情報処理装置、および情報処理方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2010182254A JP2010182254A (ja) 2010-08-19
JP4816740B2 true JP4816740B2 (ja) 2011-11-16

Family

ID=42148128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009027565A Expired - Fee Related JP4816740B2 (ja) 2009-02-09 2009-02-09 情報処理装置、および情報処理方法、並びにプログラム

Country Status (4)

Country Link
US (1) US8250087B2 (ja)
EP (1) EP2216712A3 (ja)
JP (1) JP4816740B2 (ja)
CN (1) CN101799785B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870232B2 (en) * 2012-05-29 2018-01-16 Fujitsu Limited Extensible method and system for storage metadata
US9467294B2 (en) * 2013-02-01 2016-10-11 Symbolic Io Corporation Methods and systems for storing and retrieving data
JP2022047854A (ja) 2020-09-14 2022-03-25 キオクシア株式会社 メモリシステム
CN113704339A (zh) * 2021-08-30 2021-11-26 平安普惠企业管理有限公司 已读信息状态的记录、装置、设备及存储介质
US20230342049A1 (en) * 2022-04-21 2023-10-26 Micron Technology, Inc. Reading a master boot record for a namespace using a regular read operation

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05113922A (ja) * 1991-10-22 1993-05-07 Matsushita Electric Ind Co Ltd データ記憶装置
JPH0635780A (ja) * 1992-07-17 1994-02-10 Olympus Optical Co Ltd 大容量記憶装置のファイル管理方法
US5504889A (en) * 1993-12-28 1996-04-02 Microsoft Corporation Method and system for monitoring file attributes using bitmaps to determine group membership of files and to determine which files have been processed
US5715455A (en) * 1995-05-18 1998-02-03 International Business Machines Corporation Apparatus and method for storing file allocation table efficiently in memory
US6141656A (en) * 1997-02-28 2000-10-31 Oracle Corporation Query processing using compressed bitmaps
JPH10293714A (ja) * 1997-04-17 1998-11-04 Taisei Corp データ保護装置
JP2000020365A (ja) * 1998-07-07 2000-01-21 Matsushita Electric Ind Co Ltd データ処理装置、及びそのファイル管理方法
JP4281185B2 (ja) * 1999-03-25 2009-06-17 ソニー株式会社 編集装置および方法
JP3524428B2 (ja) * 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
JP4452363B2 (ja) * 2000-02-23 2010-04-21 富士通株式会社 ファイルシステム
EP1229434A3 (en) * 2001-01-31 2009-09-09 Hewlett-Packard Company, A Delaware Corporation File sort for backup
US6510505B1 (en) * 2001-05-09 2003-01-21 International Business Machines Corporation System and method for allocating storage space using bit-parallel search of bitmap
AU2003201838A1 (en) * 2002-04-01 2003-10-23 Sony Corporation Reproducing method, reproducing apparatus, and data accessing method
KR100484147B1 (ko) * 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
JP2004185214A (ja) * 2002-12-02 2004-07-02 Renesas Technology Corp ファイル管理装置
JP4211563B2 (ja) * 2003-10-14 2009-01-21 パナソニック株式会社 再生記録装置
JP4347707B2 (ja) * 2004-01-09 2009-10-21 パナソニック株式会社 情報記録媒体のフォーマット方法および情報記録媒体
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
JP4591096B2 (ja) * 2005-01-27 2010-12-01 富士ゼロックス株式会社 画像ファイル転送装置および画像ファイル転送プログラムならびに画像読取装置
JP2006277737A (ja) 2005-03-03 2006-10-12 Matsushita Electric Ind Co Ltd アドレス予測機能をもつ不揮発性記憶装置
JP2007059004A (ja) * 2005-08-25 2007-03-08 Sony Corp 情報処理装置および方法、プログラム並びに記録媒体
US7350049B1 (en) * 2005-09-13 2008-03-25 Vimicro Corporation Method and apparatus for managing access to a file allocation table
US7984231B2 (en) * 2005-09-22 2011-07-19 Panasonic Corporation Information recording medium access device, and data recording method
JP2007122221A (ja) * 2005-10-26 2007-05-17 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN1790340A (zh) * 2005-12-31 2006-06-21 北京中星微电子有限公司 文件分配表访问装置、芯片及访问方法
JP4802791B2 (ja) * 2006-03-20 2011-10-26 ソニー株式会社 データ記憶装置及びデータアクセス方法
US7681008B2 (en) * 2006-09-29 2010-03-16 Sandisk Corporation Systems for managing file allocation table information
US7752412B2 (en) * 2006-09-29 2010-07-06 Sandisk Corporation Methods of managing file allocation table information
US7885932B2 (en) * 2006-11-01 2011-02-08 Ab Initio Technology Llc Managing storage of individually accessible data units
US7613738B2 (en) * 2007-01-16 2009-11-03 Microsoft Corporation FAT directory structure for use in transaction safe file system
JP2008210226A (ja) 2007-02-27 2008-09-11 Oki Electric Ind Co Ltd ホストとusbストレージデバイス間のデータ転送方法
JP2009027565A (ja) 2007-07-20 2009-02-05 National Institute Of Information & Communication Technology 匿名資格認証方法
JP2008305546A (ja) * 2008-08-06 2008-12-18 Sony Corp 情報記録再生装置および方法、プログラム格納媒体、並びにプログラム

Also Published As

Publication number Publication date
EP2216712A2 (en) 2010-08-11
US8250087B2 (en) 2012-08-21
US20100205145A1 (en) 2010-08-12
CN101799785B (zh) 2013-09-18
CN101799785A (zh) 2010-08-11
JP2010182254A (ja) 2010-08-19
EP2216712A3 (en) 2011-06-29

Similar Documents

Publication Publication Date Title
JP5378378B2 (ja) 変更検出を許容するコード化リムーバブル記憶装置
US20080170045A1 (en) Digital information input apparatus
JP4816740B2 (ja) 情報処理装置、および情報処理方法、並びにプログラム
JP2010198407A (ja) 情報処理装置、およびデータ記録制御方法、並びにプログラム
JP4208805B2 (ja) 電子機器及びその制御方法、及びプログラム
US20210278813A1 (en) Device control apparatus, device apparatus, control method, program, and device control system
JP5053945B2 (ja) 記録媒体初期化方法及び記録媒体初期化装置
JP4577050B2 (ja) 記録装置および方法、並びにプログラム
US7424573B2 (en) Information processing apparatus, method, and program for formatting multiple recording media integrated as one
JP2006155461A (ja) 情報処理装置、情報処理方法、並びにプログラム
JP2006178633A (ja) 情報処理装置、情報処理方法、プログラム
JP4734898B2 (ja) 情報処理装置、情報処理方法、プログラム
JP4831398B2 (ja) 情報処理装置および方法、並びにプログラム
JP2006164017A (ja) 情報処理装置、情報処理方法、プログラム
JP2009217588A (ja) ファイルシステム、電子カメラ、ファイルアクセス方法及びプログラム
JP2007310533A (ja) 不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法
JP2005339628A (ja) 記録装置および方法、読み出し装置および方法、記録媒体、並びにプログラム
JP4280792B2 (ja) 電子機器及びその制御方法、情報処理装置及びその制御方法、プログラム
JP4504956B2 (ja) 画像蓄積システム及び画像蓄積方法
JP2005275674A (ja) コンピュータシステム、そのバックアップ/リストア方法、ホストコンピュータ、プログラム
JP2005085080A (ja) データ記録装置
JP2005332481A (ja) 記録装置および方法、記録媒体、並びにプログラム
JP5574633B2 (ja) ファイル処理装置及びその制御方法、並びにプログラム
JP2006146812A (ja) 情報処理装置、情報処理方法、プログラム
CN114356224A (zh) 文件地址优化方法、终端、服务器及计算机可读存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110322

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110714

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110721

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

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

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

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees