JP2015185103A - 記憶装置、情報処理装置、データアクセス方法、およびプログラム - Google Patents

記憶装置、情報処理装置、データアクセス方法、およびプログラム Download PDF

Info

Publication number
JP2015185103A
JP2015185103A JP2014063525A JP2014063525A JP2015185103A JP 2015185103 A JP2015185103 A JP 2015185103A JP 2014063525 A JP2014063525 A JP 2014063525A JP 2014063525 A JP2014063525 A JP 2014063525A JP 2015185103 A JP2015185103 A JP 2015185103A
Authority
JP
Japan
Prior art keywords
cluster
memory
recorded
fat
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.)
Pending
Application number
JP2014063525A
Other languages
English (en)
Inventor
近藤 啓太郎
Keitaro Kondo
啓太郎 近藤
野田 誠
Makoto Noda
誠 野田
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 JP2014063525A priority Critical patent/JP2015185103A/ja
Priority to US14/656,958 priority patent/US10241686B2/en
Publication of JP2015185103A publication Critical patent/JP2015185103A/ja
Pending legal-status Critical Current

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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0608Saving storage space on storage systems
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ファイル転送をより高速に行う。【解決手段】記憶装置は、クラスタ単位でデータを記録する記録媒体と、クラスタの配置情報が記録されているFAT(File Allocation Table)を格納するメモリとを備える。記録媒体に記録されているファイルへのアクセスを行う情報処理装置は、メモリにアクセスするためのインタフェースを介して、メモリに格納されているFATにアクセスする。本技術は、例えば、ホスト機器と記憶装置とからなるデータアクセスシステムに適用することができる。【選択図】図5

Description

本技術は、記憶装置、情報処理装置、データアクセス方法、およびプログラムに関し、特に、ファイル転送を高速に行うことができるようにする記憶装置、情報処理装置、データアクセス方法、およびプログラムに関する。
いわゆるFile Allocation Table(FAT)を用いて記録媒体上のファイルを管理するFATファイルシステムを適用した記憶装置が知られている(例えば、引用文献1参照)。
FATファイルシステムでは、記録媒体の記憶領域はクラスタ単位で管理され、FATには、各クラスタの使用状況が記録される。記録媒体上のファイルへのアクセスの際には、そのファイルを構成するクラスタのつながりを示すクラスタチェーンの解析が行われる(例えば、非特許文献1参照)。
特許第4736594号公報
Microsoft,"The FAT File System",[online],[平成26年3月20日検索],インターネット<URL:http://social.technet.microsoft.com/wiki/contents/articles/6771.the-fat-file-system.aspx>
しかしながら、クラスタチェーンの解析が行われる際、ファイルへのアクセスを行うホスト機器が備えるCentral Processing Unit(CPU)から記憶装置に対して、頻繁なアクセスが発生する。
これは、一般的なパーソナルコンピュータ(PC)等に用いられる高速なCPUでは問題とならないが、組み込み用途等で用いられる低速なCPUが用いられた場合、アクセスの際の、メディアに対する読み込みおよび書き込みや、ソフトウエアにおけるコントローラ制御関数の呼び出し等に起因するオーバーヘッドにより、クラスタチェーンの解析に時間がかかってしまう。このため、データの読み込みおよび書き込みの速度が向上しても、ファイルの転送速度はあまり向上せず、ユーザはその恩恵を受けることができなかった。
本技術は、このような状況に鑑みてなされたものであり、ファイル転送をより高速に行うことができるようにするものである。
本技術の一側面の記憶装置は、クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFATを格納するメモリとを備える。
前記記録媒体に記録されているファイルへのアクセスを行う情報処理装置が、前記メモリに格納されている前記FATにアクセスするためのインタフェースをさらに設けることができる。
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記アドレス線を介して指定されるアドレスへのデータアクセスが、前記データ線を介して行われることで取得されるようにすることができる。
前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記クラスタのクラスタ番号と、前記メモリにおいて1つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスされることで取得されるようにすることができる。
前記記録媒体に記録されているデータは、前記情報処理装置によって、取得された前記配置情報に基づいて生成されたDirect Memory Access(DMA) descriptorを用いてDMA転送されるようにすることができる。
本技術の一側面の情報処理装置は、クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFATを格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、前記メモリに格納されている前記FATにアクセスするためのインタフェースとを備える。
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、前記制御部には、前記FATに記録されている前記配置情報を、前記アドレス線を介して指定されるアドレスへのデータアクセスを、前記データ線を介して行うことで取得させることができる。
前記制御部には、前記FATに記録されている前記配置情報を、前記クラスタのクラスタ番号と、前記メモリにおいて1つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスすることで取得させることができる。
前記記録媒体に記録されているデータを、取得された前記配置情報に基づいて生成されたDMA descriptorを用いてDMA転送するDMAコントローラをさらに設けることができる。
本技術の一側面のデータアクセス方法は、クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFATを格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、前記メモリにアクセスするためのインタフェースとを備える情報処理装置のデータアクセス方法であって、前記制御部が、前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスするステップを含む。
本技術の一側面のプログラムは、クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFATを格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、前記メモリにアクセスするためのインタフェースとを備えるコンピュータに、前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
ステップを含む処理を実行させる。
本技術の一側面においては、クラスタの配置情報が記録されているFATを格納するメモリにアクセスするためのインタフェースを介して、メモリに格納されているFATにアクセスされる。
本技術の一側面によれば、ファイル転送をより高速に行うことが可能となる。
従来のホスト機器および記憶装置の構成例を示すブロック図である。 非特許文献1に開示されているディレクトリエントリおよびFATを用いたファイルアクセスについて説明する図である。 ファイルアクセス処理について説明するフローチャートである。 クラスタチェーン解析およびDMA descriptor生成処理について説明するフローチャートである。 本技術のホスト機器および記憶装置の構成例を示すブロック図である。 本技術のクラスタチェーン解析およびDMA descriptor生成処理について説明するフローチャートである。 メモリに格納されているFATについて説明する図である。 コンピュータのハードウエアの構成例を示すブロック図である。
以下、本技術の実施の形態について図を参照して説明する。なお、説明は以下の順序で行う。
1.従来のホスト機器および記憶装置の構成と動作
2.本技術のホスト機器および記憶装置の構成
3.本技術のクラスタチェーン解析およびDMA descriptor生成処理
<1.従来のホスト機器および記憶装置の構成と動作>
図1は、従来のホスト機器および記憶装置の構成例を示している。
図1に示される構成において、例えば、ホスト機器11が、記憶装置12内の記録メディア32に格納されているデータを読み込む場合、まず、ホスト機器11のCPU21が、I/F(インタフェース)22を介して記憶装置12に対してコマンドを発行する。記憶装置12のコントローラ31は、I/F34を介して受け取ったホスト機器11からのコマンドに基づいて、記録メディア32上のデータを読み出す。そして、コントローラ31は、必要に応じてメモリ33をキャッシュとして用いながら、読み出したデータをI/F34を介してホスト機器11に送信する。ホスト機器11のCPU21は、I/F22を介して受け取ったデータを、メモリ23に格納する。
このようにして、記録メディア32に格納されているデータの読み込みが行われる。なお、ホスト機器11が、記憶装置12内の記録メディア32にデータを書き込む場合にも、上述した流れと同様にして、記録メディア32へのデータの書き込みが行われる。
一般的に、CPUがハードディスク等の記録媒体にアクセスする場合、論理的な最小単位である、クラスタと呼ばれる固定長(例えば32Kバイト等)のブロック単位でアクセスが行われる。記憶装置は、論理フォーマット時に、記録媒体の記憶領域をクラスタ単位に分割し、分割された記憶領域それぞれに、クラスタ番号を付加して管理を行う。
一方、ユーザが扱うアプリケーション等は、記録媒体に記録されているデータ(例えば、数Mバイトを超えるような画像データ)に対して、ファイル単位でアクセスを行う。そのため、ファイルの読み込みが行われる場合、そのファイルがどのクラスタに格納されているのかを、別途管理されるファイル情報を用いて特定する必要がある。
一般的に、このようなファイル情報を管理する手法として、FAT(File Allocation Table)ファイルシステムが用いられている。
FATファイルシステムにおいては、記録媒体上の特定の領域に、クラスタの使用状況や配置を示す情報(以下、配置情報という)が記録されているFATと、記録媒体上のファイルのファイル名およびその先頭データが記録されている先頭クラスタ番号が記録されているディレクトリエントリとが設けられる。
(ディレクトリエントリおよびFATを用いたファイルアクセスについて)
図2は、非特許文献1に開示されているディレクトリエントリおよびFATを用いたファイルアクセスについて説明する図である。
図2において、例えば、ファイル名が"File1"であるファイルにアクセスする場合、そのファイルのディレクトリエントリに記録されている先頭クラスタ番号0002が取得される。これは、"File1"の先頭データが、クラスタ2に記録されていることを示す。
FATにおいては、クラスタ番号毎の領域に、対応するクラスタの配置情報として、そのクラスタが未使用である場合には0000が記録される。また、そのクラスタが使用されていて、ファイルの最後のクラスタでない場合には、後続するクラスタのクラスタ番号が記録され、ファイルの最後のクラスタである場合には、FFFFが記録される。
つまり、図2の例では、ディレクトリエントリに記録されている先頭クラスタ番号0002に基づいて、FATにおけるクラスタ番号2の領域に記録されているクラスタ番号0003が取得される。これは、クラスタ2に記録されている"File1"の先頭データに後続する2番目のデータが、クラスタ3に記録されていることを示す。
次に、FATにおけるクラスタ番号2の領域に記録されているクラスタ番号0003に基づいて、FATにおけるクラスタ番号3の領域に記録されているクラスタ番号0004が取得される。これは、クラスタ3に記録されている"File1"の2番目のデータに後続する3番目のデータが、クラスタ4に記録されていることを示す。
そして、FATにおけるクラスタ番号3の領域に記録されているクラスタ番号0004に基づいて、FATにおけるクラスタ番号4の領域に記録されているクラスタ番号FFFFが取得される。これは、クラスタ4に記録されているデータが、"File1"の最後のデータであることを示す。
以上のようにして、記録媒体上の特定の領域に記録されているFATに対するアクセスが繰り返されることで、"File1"を構成するデータが記録されている全てのクラスタのクラスタ番号が取得される。
このように、1つのファイルを構成するデータが記録されている一連のクラスタはクラスタチェーンと呼ばれ、ファイルアクセスが行われる場合には、上述のような手順で、FATに記録されている配置情報に基づいて、クラスタチェーンの解析が行われる。
また、従来、記録メディア32からホスト機器11にデータ転送される際に、CPU21が、記録メディア32上のクラスタとメモリ23との間のデータ転送を行う代わりに、DMA(Direct Memory Access)によるデータ転送(DMA転送)が行われている。
DMAにおいては、CPU21が、転送されるデータが記録されているクラスタのリストに基づいて、転送情報としてDMA descriptorを生成し、DMAコントローラ(図示せず)に供給する。DMAコントローラは、DMA descriptorを用いてデータのDMA転送を行う。
このようにして、DMA転送が行われることで、CPU21の負荷を低減することができる。
(ファイルアクセス処理の流れ)
ここで、図3のフローチャートを参照して、ファイルアクセス処理の流れについて説明する。ここでは、ファイルの読み込みが行われるものとする。
ステップS11において、ディレクトリエントリからアクセスの対象となるファイルの先頭クラスタ番号Csが取得される。
ステップS12において、クラスタチェーン解析およびDMA descriptor生成処理が行われる。
そして、ステップS13において、生成されたDMA descriptorを用いてデータのDMA転送が行われる。
(クラスタチェーン解析およびDMA descriptor生成処理の詳細)
次に、図4のフローチャートを参照して、図3のフローチャートのステップS12におけるクラスタチェーン解析およびDMA descriptor生成処理の詳細について説明する。
ステップS31において、先頭クラスタ番号Csがクラスタ番号Anにセットされる。
ステップS32において、クラスタ番号Anが、解析されるクラスタチェーンにおける先頭クラスタ番号Asにセットされ、記録媒体上でクラスタAsのFAT(以下、FAT情報ともいう)が記録されている領域(クラスタ)のクラスタ番号Fnが計算される。
ステップS33において、クラスタ番号Fnで示される、記録媒体上のクラスタFnのデータが読み込まれる。
ステップS34において、読み込まれたデータで示されるクラスタAsのFAT情報から、注目しているクラスタのクラスタ番号Ac(注目クラスタ番号。最初は先頭クラスタ番号Asがセットされる)に後続する後続クラスタ番号が取得され、Anにセットされる。
ステップS35において、An=Ac+1であるか否か、すなわち、注目クラスタ番号Acと後続クラスタ番号Anが連続しているか否かが判定される。注目クラスタ番号Acと後続クラスタ番号Anが連続している場合、処理はステップS33に戻り、後続クラスタ番号Anが注目クラスタ番号Acにセットされて、ステップS33,S34の処理が繰り返される。
一方、注目クラスタ番号Acと後続クラスタ番号Anが連続していない場合、処理はステップS36に進み、先頭クラスタ番号Asと注目クラスタ番号AcとからDMA descriptorが生成される。DMA descriptorは、先頭クラスタ番号Asから注目クラスタ番号までの連続するクラスタを転送するための情報となる。
ステップS37において、注目クラスタ番号Acのクラスタ(クラスタAc)が、クラスタチェーンの最後のクラスタであるか否か、すなわち、アクセス対象のファイルを構成するクラスタのうちの最後のクラスタであるか否かが判定される。
クラスタAcが、クラスタチェーンの最後のクラスタでない場合、処理はステップS32に戻り、上述した処理が繰り返される。一方、クラスタAcが、クラスタチェーンの最後のクラスタである場合、クラスタチェーン解析およびDMA descriptor生成処理は終了する。
ところで、上述した処理のステップS32,S33においては、クラスタチェーンの解析を行うために、ファイルへのアクセスを行うホスト機器が備えるCPUから記憶装置の記録媒体に対して、頻繁なアクセスが発生する。
これは、一般的なPC等のCPUでは問題とならないが、組み込み用途等で用いられる低速なCPUが用いられた場合、アクセスの際の、メディアに対する読み込みおよび書き込み、ソフトウエアにおけるコントローラ制御関数の呼び出し等に起因するオーバーヘッドにより、クラスタチェーンの解析に時間がかかってしまう。
そのため、実行転送速度が数Gb/sの記憶装置の場合、クラスタチェーンの解析に要する時間が、実際の転送速度(例えば3秒)と比較して、数倍(例えば10秒以上)となってしまい、ユーザは、ファイルの転送速度向上の恩恵を受けることができなかった。
これは、FATを全て、ホスト機器が備えるメモリに予め読み込めば解決されると思われるが、一般的に用いられている大容量(例えば32GB)のSDメモリカードにおけるFATのサイズは数MB(例えば8MB)にもなり、組み込み用途で用いられるCPUのためにこの容量のメモリを確保するのは一般的ではない。
そこで、以下においては、クラスタチェーンの解析に要する時間を短縮し、ファイル転送をより高速に行う構成について説明する。
<2.本技術のホスト機器および記憶装置の構成>
図5は、本技術のホスト機器および記憶装置の構成例を示している。
図5に示されるホスト機器51と記憶装置52とからなるデータアクセスシステムにおいては、ホスト機器51により、記憶装置52に記録されているデータへのアクセスが行われる。
ホスト機器51は、例えば、記憶装置52に記録されているデータの記録再生を行うビデオカメラやデジタルカメラ、音楽プレーヤ等のアプリケーション機器として構成される。また、ホスト機器51は、パーソナルコンピュータ(PC)等の機器として構成されるようにしてもよい。一方、記憶装置52は、ディスク状の記録媒体と、FLASHメモリ等の不揮発性記憶媒体とを備える複合型記憶装置として構成されるようにしてもよいし、これに限らず、他の構成を採るようにしてもよい。
ホスト機器51は、CPU61、I/F62、メモリ63、DMAコントローラ(DMAC)64、およびメモリI/F65を備えており、記憶装置52は、コントローラ71、記録メディア72、メモリ73、I/F74、メモリI/F75を備えている。
ホスト機器51において、CPU61は、所定の演算処理を行い、コマンドを発行することで、I/F62を介して、記憶装置52の記録メディア72に記録されているデータへのアクセスを行う。
メモリ63は、CPU61により行われる演算処理に用いられる。
DMAC64は、CPU61によって生成されるDMA descriptorを用いて、記憶装置52の記録メディア72に記録されているデータのDMA転送を行う。
メモリI/F65は、記憶装置52のメモリ73にアクセスするためのI/Fであり、メモリ73に格納されているデータのアドレス(メモリアドレス)を指定するアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなる。
一方、記憶装置52において、コントローラ71は、所定の演算処理を行い、I/F74を介して、ホスト機器51により発行されたコマンドを受け取り、そのコマンドに従って、ホスト機器51による記録メディア72に記録されているデータへのアクセスを制御する。ハードディスク等からなる記録メディア72には、FATファイルシステムのフォーマットに従って、クラスタ単位でデータが記録される。
メモリ73は、コントローラ71により行われる演算処理に用いられる。また、メモリ73は、記録メディア72におけるクラスタの配置情報が記録されているFATを格納している。メモリ73は、FLASHメモリ等の不揮発性記憶媒体として構成されるものとするが、DRAM(Dynamic Random Access Memory)等の揮発性記憶媒体として構成されるようにしてもよい。この場合、記憶装置52の電源オン時に、FATがメモリ73に読み込まれるようにする。
メモリI/F75は、ホスト機器11がメモリ73にアクセスするためのI/Fであり、メモリ73に格納されているデータのアドレスを指定するアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなる。
このような構成により、ホスト機器11のCPU61は、メモリ73に格納されているFATに記録されている配置情報を、メモリI/F65およびメモリI/F75のアドレス線を介して指定されるアドレスへのデータアクセスを、データ線を介して行うことで取得することができる。
なお、ディレクトリエントリは、FATとともに、メモリ73に格納されるようにしてもよいし、記録メディア72上の特定の領域に格納されるようにしてもよい。
ここで、ホスト機器51および記憶装置52におけるファイルアクセス処理は、基本的には、図3のフローチャートを参照して説明した処理と同様にして行われる。ただし、ホスト機器51および記憶装置52におけるクラスタチェーン解析およびDMA descriptor生成処理は、クラスタチェーンの解析を行う際に、CPU61から記録メディア72に対するアクセスが頻繁に行われない点で、図4のフローチャートを参照して説明した処理とは異なる。
<3.本技術のクラスタチェーン解析およびDMA descriptor生成処理>
そこで、図6のフローチャートを参照して、本技術のクラスタチェーン解析およびDMA descriptor生成処理の詳細について説明する。
ステップS51において、CPU61は、メモリ73におけるFATの格納領域(FAT領域)の先頭メモリアドレスを基準アドレスAbにセットし、アクセスの対象となるファイルの先頭クラスタ番号Csをクラスタ番号Anにセットする。
ステップS52において、CPU61は、クラスタ番号Anを、解析されるクラスタチェーンにおける先頭クラスタ番号Asにセットする。
ステップS53において、CPU61は、クラスタ番号Anを、解析されるクラスタチェーンにおいて暫定的に最後となるクラスタの暫定最終クラスタ番号Aeにセットする。
ステップS54において、CPU61は、メモリ73におけるメモリアドレスAb+(Ae×m)の内容を取得し、クラスタ番号Anにセットする。ここで、mは、メモリ73に格納されているFATにおいて、1つのクラスタの配置領域が占めるバイト数を示している。
図7は、メモリ73に格納されているFATについて説明する図である。
図7においては、メモリ73におけるFAT領域の先頭アドレスはdとされ、FAT領域において、クラスタ番号iの配置情報が記録されている領域のメモリアドレスは、d+(i×m)とされる。
いま、先頭クラスタ番号Csが0002であったとすると、暫定最終クラスタ番号Aeには、クラスタ番号2がセットされているので、メモリアドレスd+(2×m)へのデータアクセスが行われる。図7の例では、メモリアドレスd+(2×m)の領域には、クラスタ番号0003が記録されており、このクラスタ番号0003が取得されて、クラスタ番号Anにセットされることになる。
図6のフローチャートに戻り、ステップS55において、CPU61は、An=Ae+1であるか否か、すなわち、暫定最終クラスタ番号Aeとクラスタ番号Anが連続しているか否かが判定される。暫定最終クラスタ番号Aeとクラスタ番号Anが連続している場合、処理はステップ53に戻り、クラスタ番号Anが暫定最終クラスタ番号Aeにセットされて、ステップS54の処理が繰り返される。
例えば、図7の例では、ステップS55において、暫定最終クラスタ番号Aeにセットされているクラスタ番号2と、クラスタ番号Anにセットされたクラスタ番号0003が連続していると判定される。処理はステップ53に戻り、クラスタ番号3が暫定最終クラスタ番号Aeにセットされ、ステップS54において、メモリアドレスd+(3×m)の内容、すなわち、クラスタ番号0004が取得されて、クラスタ番号Anにセットされる。
そして、ステップS55において、暫定最終クラスタ番号Aeにセットされているクラスタ番号3と、クラスタ番号Anにセットされたクラスタ番号0004が連続していると判定される。処理はステップ53に戻り、クラスタ番号4が暫定最終クラスタ番号Aeにセットされ、ステップS54において、メモリアドレスd+(4×m)の内容、すなわち、FFFFが取得されて、クラスタ番号Anにセットされる。
この場合、ステップS55においては、暫定最終クラスタ番号Aeにセットされているクラスタ番号4と、クラスタ番号AnにセットされたFFFFが連続していないと判定され、処理はステップS56に進む。
ステップS56において、CPU61は、先頭クラスタ番号Asと、暫定最終クラスタ番号AeとからDMA descriptorを生成する。DMA descriptorは、DMAC64が先頭クラスタ番号Asから暫定最終クラスタ番号Aeまでの連続するクラスタを転送するための情報となる。図7の例では、クラスタ番号2からクラスタ番号4までの連続するクラスタを転送するためのDMA descriptorが生成されることになる。
ステップS57において、CPU61が、クラスタ番号Aeのクラスタ(クラスタAe)が、クラスタチェーンの最後のクラスタであるか否か、すなわち、アクセス対象のファイルを構成するクラスタのうちの最後のクラスタであるか否かを判定する。
クラスタAeが、クラスタチェーンの最後のクラスタでない場合、処理はステップS52に戻り、次に連続するクラスタについて、上述した処理が繰り返される。一方、例えば、図7におけるクラスタ番号4のクラスタにように、クラスタAeが、クラスタチェーンの最後のクラスタとなる場合、クラスタチェーン解析およびDMA descriptor生成処理は終了する。
以上の処理によれば、クラスタチェーンの解析の際に、記憶装置のメモリに格納されているFATに記録されている配置情報が、クラスタ番号と、記憶装置のメモリに格納されているFATにおいて1つの配置領域が占めるバイト数とを用いたポインタ演算により求められるメモリアドレスへのアクセスにより取得されるようになる。これにより、クラスタチェーンの解析を行うために、ファイルへのアクセスを行うホスト機器が備えるCPUから記憶装置の記録媒体に対する頻繁なアクセスや、ソフトウエアにおけるコントローラ制御関数の呼び出しが発生することはなく、組み込み用途等で用いられる低速なCPUであっても、クラスタチェーンの解析にかかる時間を短縮することができる。
例えば、従来の処理では、クラスタチェーンの解析に要する時間が10秒以上であったのに対し、本技術の処理によれば、クラスタチェーンの解析に要する時間を1秒以下とすることができ、結果として、ファイル転送をより高速に行うことが可能となる。
なお、図5に示されるデータアクセスシステムにおいて、メモリI/F65およびメモリI/F75を設けないようにしてもよい。この場合、コントローラ制御関数の呼び出しに起因するオーバーヘッドは生じるものの、クラスタチェーンの解析におけるメディアへのアクセスを、より高速なメモリアクセスに置き換えることができ、メディアに対する読み込みおよび書き込みに起因するオーバーヘッドを低減することが可能となる。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図8は、ホスト機器51による上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータ900において、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。
バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、入力部906、出力部907、記憶部908、通信部909、およびドライブ910が接続されている。
入力部906は、キーボード、マウス、マイクロフォンなどよりなる。出力部907は、ディスプレイ、スピーカなどよりなる。記憶部908は、ハードディスクや不揮発性のメモリなどよりなる。通信部909は、ネットワークインタフェースなどよりなる。ドライブ910は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア911を駆動する。
以上のように構成されるコンピュータ900では、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ900(CPU901)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア911に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータ900では、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。
なお、コンピュータ900が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、本技術は以下のような構成をとることができる。
(1)
クラスタ単位でデータを記録する記録媒体と、
前記クラスタの配置情報が記録されているFAT(File Allocation Table)を格納するメモリと
を備える記憶装置。
(2)
前記記録媒体に記録されているファイルへのアクセスを行う情報処理装置が、前記メモリに格納されている前記FATにアクセスするためのインタフェースをさらに備える
(1)に記載の記憶装置。
(3)
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、
前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記アドレス線を介して指定されるアドレスへのデータアクセスが、前記データ線を介して行われることで取得される
(2)に記載の記憶装置。
(4)
前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記クラスタのクラスタ番号と、前記メモリにおいて1つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスされることで取得される
(1)乃至(3)のいずれかに記載の記憶装置。
(5)
前記記録媒体に記録されているデータは、前記情報処理装置によって、取得された前記配置情報に基づいて生成されたDMA(Direct Memory Access) descriptorを用いてDMA転送される
(1)乃至(4)のいずれかに記載の記憶装置。
(6)
クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT(File Allocation Table)を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
前記メモリに格納されている前記FATにアクセスするためのインタフェースと
を備える情報処理装置。
(7)
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、
前記制御部は、前記FATに記録されている前記配置情報を、前記アドレス線を介して指定されるアドレスへのデータアクセスを、前記データ線を介して行うことで取得する
(6)に記載の情報処理装置。
(8)
前記制御部は、前記FATに記録されている前記配置情報を、前記クラスタのクラスタ番号と、前記メモリにおいて1つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスすることで取得する
(6)または(7)に記載の情報処理装置。
(9)
前記記録媒体に記録されているデータを、取得された前記配置情報に基づいて生成されたDMA(Direct Memory Access) descriptorを用いてDMA転送するDMAコントローラをさらに備える
(6)乃至(8)のいずれかに記載の情報処理装置。
(10)
クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT(File Allocation Table)を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
前記メモリにアクセスするためのインタフェースとを備える情報処理装置のデータアクセス方法において、
前記制御部が、前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
ステップを含むデータアクセス方法。
(11)
クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT(File Allocation Table)を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
前記メモリにアクセスするためのインタフェースとを備えるコンピュータに、
前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
ステップを含む処理を実行させるプログラム。
51 ホスト機器, 52 記憶装置, 61 CPU, 62 I/F, 63 メモリ, 64 DMAC, 65 メモリI/F, 71 コントローラ, 72 記録メディア, 73 メモリ, 74 I/F, 75 メモリI/F

Claims (11)

  1. クラスタ単位でデータを記録する記録媒体と、
    前記クラスタの配置情報が記録されているFAT(File Allocation Table)を格納するメモリと
    を備える記憶装置。
  2. 前記記録媒体に記録されているファイルへのアクセスを行う情報処理装置が、前記メモリに格納されている前記FATにアクセスするためのインタフェースをさらに備える
    請求項1に記載の記憶装置。
  3. 前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、
    前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記アドレス線を介して指定されるアドレスへのデータアクセスが、前記データ線を介して行われることで取得される
    請求項2に記載の記憶装置。
  4. 前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記クラスタのクラスタ番号と、前記メモリにおいて1つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスされることで取得される
    請求項3に記載の記憶装置。
  5. 前記記録媒体に記録されているデータは、前記情報処理装置によって、取得された前記配置情報に基づいて生成されたDMA(Direct Memory Access) descriptorを用いてDMA転送される
    請求項4に記載の記憶装置。
  6. クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT(File Allocation Table)を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
    前記メモリに格納されている前記FATにアクセスするためのインタフェースと
    を備える情報処理装置。
  7. 前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、
    前記制御部は、前記FATに記録されている前記配置情報を、前記アドレス線を介して指定されるアドレスへのデータアクセスを、前記データ線を介して行うことで取得する
    請求項6に記載の情報処理装置。
  8. 前記制御部は、前記FATに記録されている前記配置情報を、前記クラスタのクラスタ番号と、前記メモリにおいて1つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスすることで取得する
    請求項7に記載の情報処理装置。
  9. 前記記録媒体に記録されているデータを、取得された前記配置情報に基づいて生成されたDMA(Direct Memory Access) descriptorを用いてDMA転送するDMAコントローラをさらに備える
    請求項8に記載の情報処理装置。
  10. クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT(File Allocation Table)を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
    前記メモリにアクセスするためのインタフェースとを備える情報処理装置のデータアクセス方法において、
    前記制御部が、前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
    ステップを含むデータアクセス方法。
  11. クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT(File Allocation Table)を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
    前記メモリにアクセスするためのインタフェースとを備えるコンピュータに、
    前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
    ステップを含む処理を実行させるプログラム。
JP2014063525A 2014-03-26 2014-03-26 記憶装置、情報処理装置、データアクセス方法、およびプログラム Pending JP2015185103A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014063525A JP2015185103A (ja) 2014-03-26 2014-03-26 記憶装置、情報処理装置、データアクセス方法、およびプログラム
US14/656,958 US10241686B2 (en) 2014-03-26 2015-03-13 Storage device, information processing device, data access method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014063525A JP2015185103A (ja) 2014-03-26 2014-03-26 記憶装置、情報処理装置、データアクセス方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2015185103A true JP2015185103A (ja) 2015-10-22

Family

ID=54190401

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014063525A Pending JP2015185103A (ja) 2014-03-26 2014-03-26 記憶装置、情報処理装置、データアクセス方法、およびプログラム

Country Status (2)

Country Link
US (1) US10241686B2 (ja)
JP (1) JP2015185103A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101891755B1 (ko) * 2017-02-01 2018-08-27 (주)피타소프트 데이터 레코딩 장치에서의 적응형 데이터 레코딩 방법
US10996890B2 (en) 2018-12-19 2021-05-04 Micron Technology, Inc. Memory module interfaces

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296467B2 (en) * 2000-01-06 2012-10-23 Super Talent Electronics Inc. Single-chip flash device with boot code transfer capability
US8122193B2 (en) * 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
JP4736594B2 (ja) 2005-03-08 2011-07-27 ソニー株式会社 複合型記憶装置、データ書込方法及びプログラム
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
JP4888184B2 (ja) * 2007-03-26 2012-02-29 ティアック株式会社 記憶装置
US8452734B2 (en) * 2009-04-30 2013-05-28 Texas Instruments Incorporated FAT file in reserved cluster with ready entry state
JP5385835B2 (ja) * 2010-03-29 2014-01-08 パナソニック株式会社 データ記録装置
US8301824B2 (en) * 2010-07-22 2012-10-30 Sandisk Il Ltd. Using an add-on storage device for extending the storage capacity of a storage device
WO2013029264A1 (en) * 2011-09-01 2013-03-07 Nokia Corporation Providing subscriber identity module function
JP2014044490A (ja) * 2012-08-24 2014-03-13 Toshiba Corp ホスト装置及びメモリデバイス
WO2014081719A1 (en) * 2012-11-20 2014-05-30 Peddle Charles I Solid state drive architectures

Also Published As

Publication number Publication date
US20150277784A1 (en) 2015-10-01
US10241686B2 (en) 2019-03-26

Similar Documents

Publication Publication Date Title
WO2017107414A1 (zh) 文件操作方法和装置
US20160092361A1 (en) Caching technologies employing data compression
JP2014513338A5 (ja) 仮想ディスクの最適圧縮のための方法、コンピュータ可読記憶媒体及びシステム
JP4992835B2 (ja) ディスク記憶装置およびプログラム
TWI485560B (zh) 資料分析系統、快取裝置、與資料處理方法
US9817754B2 (en) Flash memory management
US20240220334A1 (en) Data processing method in distributed system, and related system
US20120331235A1 (en) Memory management apparatus, memory management method, control program, and recording medium
WO2022068760A1 (zh) 内存管理的方法及其装置
CN108198582B (zh) 一种NAND Flash控制方法、装置及SSD
WO2024103927A1 (zh) 混合部署场景下的作业调度方法、装置及电子设备
JP2015185103A (ja) 記憶装置、情報処理装置、データアクセス方法、およびプログラム
US20220382672A1 (en) Paging in thin-provisioned disaggregated memory
WO2021126216A1 (en) Resource management unit for capturing operating system configuration states and offloading tasks
US9213644B2 (en) Allocating enclosure cache in a computing system
JP2018504689A5 (ja)
TWI828307B (zh) 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法
JP6243884B2 (ja) 情報処理装置、プロセッサ、および情報処理方法
US9195595B2 (en) Portable apparatus using multi-core storage mechanism and data access method therefor
RU2666334C2 (ru) Способ обработки данных
JP5868611B2 (ja) ユーザ応答時間を考慮したメモリ管理装置及び方法
JP7327775B2 (ja) ディスク状記録媒体管理装置、ディスク状記録媒体管理方法、及びプログラム
TW202418076A (zh) 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法
US8938592B2 (en) Reproducing device and reproducing method
JP2014229044A (ja) データ処理装置のデータ取得を高速化するためのプログラム、記録媒体および装置