JP4287433B2 - ファイル記録装置 - Google Patents
ファイル記録装置 Download PDFInfo
- Publication number
- JP4287433B2 JP4287433B2 JP2005515557A JP2005515557A JP4287433B2 JP 4287433 B2 JP4287433 B2 JP 4287433B2 JP 2005515557 A JP2005515557 A JP 2005515557A JP 2005515557 A JP2005515557 A JP 2005515557A JP 4287433 B2 JP4287433 B2 JP 4287433B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- file
- block
- buffer
- size
- 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.)
- Active
Links
- 239000000872 buffer Substances 0.000 claims description 135
- 238000000034 method Methods 0.000 claims description 29
- 238000013500 data storage Methods 0.000 claims description 24
- 238000009825 accumulation Methods 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims 1
- 238000007726 management method Methods 0.000 description 49
- 238000012545 processing Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 20
- 238000012546 transfer Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 239000002699 waste material Substances 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
Description
半導体メモリのなかでもバイトごとの消去が必要なEEPROM (Electrically Erasable Programmable Read Only Memory) を改良したフラッシュメモリは、ブロックと呼ぶ単位で一括して消去が行えるので、SDメモリカードなどの製品としてディジタルカメラの記録用などに使われている。
ファイルのデータがわずかでもクラスタを占有するので、クラスタはそのサイズが大きいほどメモリの容量効率が低下してしまい、一方、ブロックはそのサイズが大きいほどメモリの集積効率が良くなることから、ブロックサイズはクラスタサイズよりも大きいのが普通である。
このような構成によって、一つのファイルのデータが占有するブロックの単位で書き込むことができる。
このような構成によって、複数の各ファイルの書きこみデータ量の比率に準じて各ファイルのデータが混在するブロックの単位で書き込むことができる。
このような構成によって、データの書き込み時までに、当該データの書き込み先ブロックの消去ができる。
また、上記目的は、複数のファイルバッファを備え、クラスタをファイルに含まれるデータへの記録割当単位とし、連続した所定数のクラスタで構成されるブロックの単位で消去が必要な記録媒体に、データを記録するファイル記録装置の制御方法であって、各ファイルのデータの前記記録媒体への書き込み要求を受け付ける受付ステップと、前記書き込み要求されたデータをそれぞれ前記ファイルバッファに各別に蓄積させるデータ蓄積ステップと、前記データ蓄積ステップにより蓄積されたデータのサイズがブロックサイズ以上であるか否かを判定する判定ステップと、判定が肯定的であるとき、前記データ蓄積ステップにより蓄積されたデータのうち、ブロックサイズ分のデータを取り出し、前記記録媒体の空きブロックに書き込む書込ステップとを有する制御方法とすることで達成できる。
このような構成によって、フィルタドライバの追加だけで、既存のファイルシステムのもとでファイルを能率的に記録することができる。
(第1の実施の形態)
第1の実施の形態は、ファイルシステムにより能率的にファイルを記録する。
図1は、本実施の形態の構成を示す図である。
ファイル記録装置は、他に不図示のCPUとメモリを備え、上記の構成各部はプログラムあるいはメモリ領域であり、構成部がプログラムの場合はメモリにローディングされ、CPUで実行する。
また、入出力要求元は、複数の種類、例えばアプリケーションとネットワーク上の他の装置であっても、1種類の中で複数、例えばアプリケーションの種類においてアプリケーションA、B、Cなど、であっても構わない。入出力要求元は、ここでは単数として扱う。
メモリカード110は、入出力要求元から要求のあったファイルの記録を行う。
メモリカード110の構成を図2に示す。図2において、メモリカード110は、コマンド実行部201、データバッファ202、フラッシュメモリ205で構成される。
コマンド実行部201は、メモリカード110で実行できるコマンドをファイル書込部160から受け取り、そのコマンドを実行する。コマンド実行部201コマンドが実行できるコマンドには、フラッシュメモリ205の書き込み、読み込み、ブロック消去とがある。
フラッシュメモリ205は、記録前にブロックの単位で消去が必要なメモリ、つまり書き込むセクタ(後述)、あるいはクラスタ(後述)が構成するブロックの消去が必要なメモリであり、コマンド実行部201によって書き込まれたファイルのデータを記憶する。
図3は、フラッシュメモリ205のフォーマットの一例を示す図である。図3において、フラッシュメモリ205は、ブロック311、クラスタ312、セクタ313の階層的な区分の単位で管理される。
クラスタ312は、ファイルのデータに対する割り当ての最小単位であり、ファイルの管理表である後述のFAT205で参照される。
システム領域321には、管理情報が記録される。システム領域321は、さらに、予約領域322、FAT領域323、ルートディレクトリエントリ324からなる。
予約領域322は、ブート情報、および記録媒体であるフラッシュメモリ205に関するパラメータ情報等を納める。例316によると、セクタサイズは512B(バイト)、1クラスタは16KB、1クラスタは32セクタ、1ブロックは4クラスタというパラメータが記録されている。この場合、1クラスタは16KB、1ブロックは64KBのサイズを有している。図3の例では、フラッシュメモリ205は、256MBの記憶容量を有している。なお、クラスタサイズ、ブロックサイズはこの値に限定されるものでは勿論ない。フラッシュメモリによっては、1ブロックが128KB、あるいは256KB等となる場合もあり、クラスタサイズも8KB、32KB等となる場合もある。
ルートディレクトリエントリ324は、ファイルの管理情報を納めたディレクトリからなる領域である。各ディレクトリには、ファイル名、ファイルの記録日時(不図示)、このファイルに割り当てられ、占有されている先頭のクラスタ番号(あるいは先頭のFATエントリ番号)などが納められる。
図1に戻り、ファイルバッファ120は、記録要求元から記録要求のあったデータを一時的に記憶しておくための2ブロックサイズのバッファ(メモリ領域)であり、ファイルの入出力要求元から記録を行なうファイルのオープンの要求時にファイル管理部190によりそのファイル専用に確保され、ファイルのクロ−ズの要求でファイル管理部190により開放(返却)される。なお、ファイルバッファ120のサイズは2ブロックサイズとしたが、後述の入出力要求の書き込みデータの最大サイズに1ブロックサイズを加えたサイズであればよい。
入出力要求受付部130は、入出力要求元からメモリカード110のフラッシュメモリ205のファイルの入出力要求を受け付ける。ファイルの入出力要求には、ファイルのオープン、クローズ、ファイルのデータの書き込み(Write)、ファイルのデータの読み込み(Read)等がある。
入出力要求がファイルのデータの書き込みの場合、入出力要求受付部130は書き込むべきファイルのデータ(以下、「書き込みデータ」という)も入出力要求元から受け取る。書き込みデータは、書き込みの指示に続けて直接受け取るか、または、あらかじめ書き込み要求元が設定したデータが存在するメモリ上のアドレスとデータサイズ(バイト単位)を書き込みの指示に続けて受け取る。ここで、入出力要求受付部130が受け付ける書き込み要求ごとの書き込みデータサイズの最大値はブロックサイズ(64KB)とする。なお、この最大値は固定ではなく別のサイズ、例えば256KBにしてもよい。
入出力要求がファイルのデータの読み込みの場合、入出力要求受付部130は読み込むべきファイルのデータに関する情報を入出力要求元から受け取るが、ファイル記録においては利用しないので詳細な説明は省略する。
図4は、各ファイルバッファ120A、120B、120Cにデータが蓄積され、フラッシュメモリ205に書き込まれる一例を示す図である。図4において、書き込みデータの蓄積処理は、記録中のファイルごとに確保されているファイルバッファ、例えばファイルバッファ120A、120B、120Cのうち、書き込みデータの属するファイルに対応するファイルバッファ、例えば書き込みデータがファイルCのデータのとき、ファイルCに対応するファイルバッファ120Cに書き込みデータを蓄積する。ここで蓄積とは、ファイルバッファ120Cにデータがなければ、書き込みデータをファイルバッファ120Cの先頭から書き込み、また、データがあればその直後に追加することをいう。なお、ファイルバッファ120に蓄積されたデータのサイズは、クラスタサイズの整数倍とは限らないが、説明の便宜上、整数倍として例示した。また、ファイルバッファ120A、120B、120Cはいずれも2ブロックサイズ(8クラスタ)あるが、説明の便宜上ブロックサイズとして示した。
ファイル書込部160は、ファイル管理部190からの指示に基づき、一つの指定されたファイルバッファ120において、その先頭から1ブロックサイズ分のデータを取り出し、取り出したデータを書き込みバッファ125に転送し、ファイルバッファ120に残ったデータを前詰めする。そして、書き込みバッファ125のデータをフラッシュメモリ205の指定のブロック(ブロック先頭から1ブロックサイズ分)に書き込むよう、メモリカード110に書き込み指示を行う。ここで、書き込み指示とは、書き込みバッファ125のデータをメモリカード110のデータバッファ202に転送するとともに、コマンド実行部201に対して書き込みコマンドと、書き込み先ブロックのアドレスと、書き込みデータのサイズとを設定することをいう。
ファイル管理部190は、入出力要求受付部130から入出力要求情報を受け取る。受け取った入出力要求情報に含まれる入出力要求の種類が書き込みの場合、データ蓄積部140に対して、当該入出力要求情報に含まれる書き込みデータのメモリアドレスとサイズとを通知し、また入出力要求情報に含まれるファイルデスクリプタが示すファイルに対応するファイルバッファ120に当該書き込みデータを蓄積するように指示する。
判定が肯定の場合、ファイル管理部190は、FAT335から空きブロックを検索し、あればその空きブロックを割り当て、さらに、その空きブロックを消去する。空きブロックの消去は、ファイル管理部190がメモリカード110のコマンド実行部201に対し、その空きブロックのブロック番号を指定した消去コマンドを発行することにより行なう。ここで空きブロックとは、構成要素のクラスタのすべてが空き(未使用)となっているブロックのことである。
なお、本実施の形態では、空きブロックがないとき書き込み不可としたが、空きクラスタの合計がブロックサイズ分あれば、ブロックサイズ分を検索し割り当てるようにしてもよい。この場合は、各クラスタごとにそのクラスタが属するブロックに対する「リード・モディファイ・ライト」が必要である。
入出力要求がファイルのオープンのとき、入出力要求情報に含まれるファイル名のファイルがフラッシュメモリ205になければ新規ファイルの創生(クリエイト)を行ない、また、既にあればそのファイルを特定し、当該ファイルを示すファイルデスクリプタと呼ぶファイル識別情報を、入出力要求元にオープンの入出力要求に対する処理結果として返す。入出力要求元は、今後はファイルの指定をこのファイルデスクリプタにより行なう。新規ファイルの創生には、当該ファイル用のファイルバッファ120のメモリ確保、ディレクトリの作成が含まれる。
また、入出力要求がファイルの読み込みのとき、ファイル管理部190は、入出力要求情報に含まれるファイルデスクリプタが示すファイルからデータを読み込んで、入出力要求元に渡す。
図5において、入出力要求受付部130は、ファイルの入出力要求を入出力要求元から受け付ける。
入出力要求が、新規のファイルのオープンのとき(S514)、入出力要求受付部130は、オープンするファイル名も入出力要求元から受け取り、オープン要求とファイル名とを入出力要求情報としてファイル管理部190に伝達する。ファイル管理部190は、指定ファイル名のファイルのオープン処理を行なう(S516)。ファイルのオープン処理の詳細は後述する。
図6は、ファイルのオープンとクローズの処理を示すフローチャートである。
ファイルのオープンでは、ファイル管理部190は、ファイルオープンの入出力要求情報を入出力要求受付部130から受け取り、入出力要求情報に含まれるファイル名のファイルのディレクトリ、例えば図4の「ファイルC」のディレクトリ422を、図3のルートディレクトリエントリ324に作成する(S610)。なお、ファイル名のファイルのディレクトリが既にあれば、そのファイルは既存ファイルでありディレクトリの作成は不要である。
図7において、ファイル管理部190は、入出力要求がデータの書き込みのとき、データ蓄積部140に対し、入出力要求情報に含まれるファイルデスクリプタが示すファイルに対応する特定のファイルバッファ120と、書き込みデータが存在するデータ領域のアドレスとサイズとを通知して、上述のデータ領域からファイルバッファ120に蓄積するように指示する(S710)。データ蓄積部140は、ファイル管理部190からの指示に基づき、指定されたデータ領域の書き込みデータをァイルバッファ120へ蓄積する処理を行なう。
判定が肯定の場合、ファイル管理部190は、FAT335から空きブロックを検索し(S716)、空きブロックがあれば(S718)、その空きブロックを割り当て、さらに、メモリカード110にその空きブロックを消去させる。
本実施の形態の変形例として、書き込みデータ蓄積の例外を実施しても良い。例えば、書き込み要求において、直ちに書き込みを行なわせるオプションがあっても良い。この場合はデータの蓄積を行なわないで直ちにフラッシュメモリ205に書き出す。あるいは、書き込み要求があったとき、データ蓄積後、当該ファイルバッファにタイマを設定し、一定時間たっても当該ファイルバッファの状態が変化しなければ、当該ファイルバッファのデータの書き込みを行なうようにしてもよい。また、書き込み要求のうち、既存のデータを指定のデータと置き換える書き込み要求の場合、その要求の処理の前に、要求のあったファイルに対応するファイルバッファのデータをすべて書き込むようにしてもよい。
(第2の実施の形態)
第2の実施の形態では、フラッシュメモリにブロック単位で書き込むとき、そのブロックには複数ファイルのデータが混在可能である。
図8は、本実施の形態において、各ファイルバッファ120A、120B、120Cにデータが蓄積され、フラッシュメモリに書き込まれる一例を示す図である。第1の実施の形態(図4)では、最近蓄積された特定のファイルバッファ120のデータサイズがブロックサイズになったとき、フラッシュメモリ205に書き込まれたが、本実施の形態では、データ蓄積部140によって蓄積された特定のファイルバッファ20のデータサイズがブロックサイズに達していなくても、複数の各ファイルバッファ120のデータをクラスタサイズ単位で換算して、合計のクラスタ数がブロックの構成クラスタ数以上、つまり4以上になっていれば、ファイル管理部190は複数の各ファイルバッファ120からクラスタサイズの単位でブロックサイズになるまで取り出して、書き込みバッファ125に転送し、フラッシュメモリの空きブロックに書き込む。図8の例では、書きこみ前のフラッシュメモリ205が、図3の例316の状態として、ファイルバッファAから1クラスタ分、ファイルバッファBから1クラスタ分、ファイルバッファCから2クラスタ分を取り出して、フラッシュメモリ例811で示すようにクラスタ9―12からなる空きブロック(ブロック番号6)に書き込んでいることが分かる。この場合でも、ファイルA825はクラスタ9に、ファイルB826はクラスタ10に、またファイルC827はクラスタ11と12に書き込まれ、同一クラスタ内での異なるファイルのデータの混在はない。
なお、各ファイルバッファ120のデータをクラスタサイズ単位で換算するとは、各ファイルバッファ120において、ファイルバッファのデータのサイズを超えないクラスタの数のうち、最大のクラスタ数を得ることである。
図9のうち、第1の実施の形態の書き込み要求処理のフローチャートを示す図7において処理が同じものは同じステップ番号を付している。
書き込み要求の処理のうち、図7と異なる処理を中心に、図9を用いて説明する。
図9において、データ蓄積部140に蓄積された特定のファイルバッファのデータがブロックサイズ以上ではないとき(S712)、ファイル管理部190は、さらに、複数の各ファイルバッファ120のデータをクラスタサイズ単位で換算して、合計のクラスタ数がブロックの構成クラスタ数以上、つまり4以上になっているか否か判定する(S926)。判定結果が肯定なら、書き込み先のブロックを検索する(S716)
空きブロック割り当て後、書き込みデータが単一ファイルのデータか複数ファイルのデータかを、上述した特定のファイルバッファのデータのサイズで判定し(S927)、複数ファイルのデータのとき、ファイル管理部190は複数の各ファイルバッファ120からクラスタサイズの単位でブロックサイズになるまで取り出して、書き込みバッファ125に転送する(S928)。空きブロックに書き込み後のFATの更新は、書き込んだ複数のファイルに関して行なう。
(第3の実施の形態)
本実施の形態では、ファイル記録装置のもとで動作するフィルタドライバがファイル記録を能率的に行なう。
アプリケーションプログラム1010は、ファイル記録装置におけるファイル記録の要求元であり、例えば映像コンテンツの記録プログラムである。アプリケーションプログラム1010は、ファイルの記録のためにファイルシステム1020に対しファイルの入出力要求を発行する。
ファイルの入出力要求にはファイルのオープンとクローズ、ファイルのデータの読み込みと書き込みなどがある。
ファイルシステム1020は、ファイルの入出力要求を受け取ると、メモリカード110(図1)のデバイスドライバであるメモリカードデバイスドライバ1040(以下、単に「デバイスドライバ1040」という)に対してデバイスレベルの入出力要求を発行する。デバイスレベルの入出力要求とは、例えばファイルの入出力要求が書き込み要求のとき、ファイルシステム1020は必要に応じて空きのクラスタをFATを参照して検索して割り当て、書き込み先のアドレスをそのクラスタの先頭のセクタのセクタ番号で、またデータサイズをバイト数に代えてセクタ数でそれぞれ指定して、デバイスドライバ1040に対して書き込み要求を発行する。このように、デバイスレベルの入出力要求は、フラッシュメモリ205のデータの入出力をセクタ指定で行なう。
メモリカード110に対する入出力の処理を行なう。
メモリカード110は、第1の実施の形態とほぼ同様であるが、フラッシュメモリのフォーマットは、第1の実施の形態での図3の予約領域322において、ブロックに関する情報であるブロックを構成するクラスタ数を示す「ブロック/クラスタ:4」の情報は、本実施の形態では記録されないことだけが相違する。
フィルタドライバ1030は、ロードされた時、内部的に使用するメモリ領域であるドライバデータバッファを一定のサイズ分、例えば2ブロックサイズ分確保する。またブロックを構成するクラスタ数、例えば「ブロック/クラスタ:4」の情報およびブロックとクラスタとセクタの対応に関する情報等のブロックに関する情報を、内部情報として保持している。
図12は、フィルタドライバ1030が管理するドライバデータバッファ1201のデータとメモリカード110のフラッシュメモリ205のブロックとの関係をアドレスで対応させた図である。図12において、ドライバデータバッファ1201に、データA1、A2、A3がありこれらがアドレスにおいて連続しているとし、データA1、A2、A3の合計が1ブロック分であるとする。
書き込みデータとドライバデータバッファ1201のデータとが連続でなければ(S1116)、ドライバデータバッファ1201に蓄積されたデータのフラッシュメモリ205への書き込みをデバイスドライバ1040に行なわせる(S1118)。
ドライバデータバッファ1201が、もともと空であるか、または不連続な蓄積されたデータを書き込んだために空であるとき、フィルタドライバ1030は書き込み要求がされた書き込みデータをドライバデータバッファ1201に新たに蓄積する。
上記の例では、セクタ数がd1であった書き込みデータサイズを、書き込み要求のデータのサイズd2を加えた(s1+s2)とする。なお、ドライバデータバッファ1201の書き込み先アドレス(セクタ番号)とデータサイズ(セクタ数)とは、データバッファ1021に付随する管理情報(不図示)として記憶しておく。
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
また、本発明は、前記プログラム又は前記デジタル信号を記録したコンピュータ読取り可能な記録媒体、例えば半導体メモリ等であるとしてもよい。
また、本発明は、電気通信回線、無線又は有線通信回線、若しくはインターネットに代表されるネットワーク等を経由して伝送される前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
120 ファイルバッファ
125 書き込みバッファ
130 入出力要求受付部
140 データ蓄積部
160 ファイル書込部
190 ファイル管理部
Claims (7)
- クラスタをファイルに含まれるデータへの記録割当単位とし、連続した所定数のクラスタで構成されるブロックの単位で消去が必要な記録媒体に、データを記録するファイル記録装置であって、
各ファイルのデータの前記記録媒体への書き込み要求を受け付ける受付手段と、
複数のファイルにそれぞれ対応する複数のファイルバッファと、
前記書き込み要求されたデータをそれぞれ前記ファイルバッファに各別に蓄積させるデータ蓄積手段と、
前記データ蓄積手段により蓄積されたデータのサイズがブロックサイズ以上であるか否かを判定する判定手段と、
判定が肯定的であるとき、前記データ蓄積手段により蓄積されたデータのうち、ブロックサイズ分のデータを取り出し、前記記録媒体の空きブロックに書き込む書込手段とを備え、
前記判定手段は、各ファイルバッファのデータサイズをクラスタサイズで除した商の合計が前記所定数以上のとき、蓄積されたデータがブロックサイズ以上と判定し、
前記書込手段は、前記各ファイルバッファからクラスタのサイズの単位で前記所定数のクラスタ分のデータを取り出し、前記空きブロックに書き込む
ことを特徴とするファイル記録装置。 - 前記判定手段は、前記蓄積手段にて最近蓄積された特定のファイルバッファのデータサイズがブロックサイズ以上のとき、蓄積されたデータがブロックサイズ以上と判定し、
前記書込手段は、前記特定のファイルバッファの先頭からブロックサイズ分のデータを取り出し、取り出したデータを前記空きブロックに書き込むことを特徴とする請求項1に記載のファイル記録装置。 - 割り当てられた前記空きブロックに前記書込手段が書き込む前に、前記空きブロックの消去を行なう消去手段をさらに備えることを特徴とする請求項1に記載のファイル記録装置。
- 複数のファイルにそれぞれ対応する複数のファイルバッファを備え、クラスタをファイルに含まれるデータへの記録割当単位とし、連続した所定数のクラスタで構成されるブロックの単位で消去が必要な記録媒体に、データを記録するファイル記録装置の制御方法であって、
受付手段により、各ファイルのデータの前記記録媒体への書き込み要求を受け付ける受付ステップと、
蓄積手段により、前記書き込み要求されたデータをそれぞれ前記ファイルバッファに各別に蓄積させるデータ蓄積ステップと、
判定手段により、前記データ蓄積ステップにより蓄積されたデータのサイズがブロックサイズ以上であるか否かを判定する判定ステップと、
書込手段により、判定が肯定的であるとき、前記データ蓄積ステップにより蓄積されたデータのうち、ブロックサイズ分のデータを取り出し、前記記録媒体の空きブロックに書き込む書込ステップとを有し、
前記判定ステップは、各ファイルバッファのデータサイズをクラスタサイズで除した商の合計が前記所定数以上のとき、蓄積されたデータがブロックサイズ以上と判定し、
前記書込ステップは、前記各ファイルバッファからクラスタのサイズの単位で前記所定数のクラスタ分のデータを取り出し、前記空きブロックに書き込む
ことを特徴とする制御方法。 - 複数のファイルにそれぞれ対応する複数のファイルバッファを備え、クラスタをファイルに含まれるデータへの記録割当単位とし、連続した所定数のクラスタで構成されるブロックの単位で消去が必要な記録媒体に、データを記録するファイル記録装置に、
各ファイルのデータの前記記録媒体への書き込み要求を受け付ける受付ステップと、
前記書き込み要求されたデータをそれぞれ前記ファイルバッファに各別に蓄積させるデータ蓄積ステップと、
前記データ蓄積ステップにより蓄積されたデータのサイズがブロックサイズ以上であるか否かを判定する判定ステップと、
判定が肯定的であるとき、前記データ蓄積ステップにより蓄積されたデータのうち、ブロックサイズ分のデータを取り出し、前記記録媒体の空きブロックに書き込む書込ステップとを実行させ、
前記判定ステップは、各ファイルバッファのデータサイズをクラスタサイズで除した商の合計が前記所定数以上のとき、蓄積されたデータがブロックサイズ以上と判定し、
前記書込ステップは、前記各ファイルバッファからクラスタのサイズの単位で前記所定数のクラスタ分のデータを取り出し、前記空きブロックに書き込む
ことを特徴とするプログラム。 - 前記ファイル記録装置は、さらに、ドライバデータバッファを備え、
前記ファイル記録装置に、さらに、
前記記録媒体における書き込み先アドレスを含む書き込みの要求を受け付ける受付ステップと、
前記ドライバデータバッファが空きでないとき、前記書き込みのデータと前記ドライバデータバッファのデータとが前記記録媒体のアドレスにおいて連続するか否かを判定する第1判定ステップと、
肯定と判定されたとき、書き込みのデータを前記ドライバデータバッファに蓄積させるデータ蓄積ステップと、
前記ドライバデータバッファに蓄積されたデータの書き込み先がブロックの境界に一致するか否かを判定する第2判定ステップと、
第2判定ステップにて肯定と判定されたとき、前記ドライバデータバッファの先頭から前記ブロックの境界までのデータを前記記録媒体に書き込む書込ステップとを実行させる
ための請求項5に記載のプログラム。 - 前記プログラムは前記記録媒体のフィルタドライバであることを特徴とする請求項6に記載のプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003387886 | 2003-11-18 | ||
JP2003387886 | 2003-11-18 | ||
PCT/JP2004/015182 WO2005050453A1 (ja) | 2003-11-18 | 2004-10-07 | ファイル記録装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2005050453A1 JPWO2005050453A1 (ja) | 2007-06-07 |
JP4287433B2 true JP4287433B2 (ja) | 2009-07-01 |
Family
ID=34616171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005515557A Active JP4287433B2 (ja) | 2003-11-18 | 2004-10-07 | ファイル記録装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7610434B2 (ja) |
EP (1) | EP1686482B1 (ja) |
JP (1) | JP4287433B2 (ja) |
KR (1) | KR101087906B1 (ja) |
CN (1) | CN100543702C (ja) |
WO (1) | WO2005050453A1 (ja) |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4845482B2 (ja) * | 2005-11-01 | 2011-12-28 | 株式会社東芝 | 記録再生装置及び記録方法 |
JP5002201B2 (ja) | 2006-06-30 | 2012-08-15 | 株式会社東芝 | メモリシステム |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
WO2008070813A2 (en) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for a front-end, distributed raid |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
US8560760B2 (en) * | 2007-01-31 | 2013-10-15 | Microsoft Corporation | Extending flash drive lifespan |
KR100904758B1 (ko) * | 2007-02-08 | 2009-06-29 | 삼성전자주식회사 | 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법 |
US7657572B2 (en) | 2007-03-06 | 2010-02-02 | Microsoft Corporation | Selectively utilizing a plurality of disparate solid state storage locations |
US20090094358A1 (en) * | 2007-10-05 | 2009-04-09 | Davis Gregg A | Data Bridge Maintenance Utilizing Data Traffic Log Change |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US20090271563A1 (en) * | 2008-04-28 | 2009-10-29 | Microsoft Corporation | Flash memory transactioning |
US20090322905A1 (en) * | 2008-06-25 | 2009-12-31 | Nikon Corporation | Storage control device |
JP2010009206A (ja) * | 2008-06-25 | 2010-01-14 | Nikon Corp | 記録制御装置 |
TWI363272B (en) * | 2008-07-11 | 2012-05-01 | Silicon Motion Inc | Data programming method and device |
KR101506578B1 (ko) * | 2008-07-17 | 2015-03-30 | 삼성전자주식회사 | 데이터 보안을 위한 파일 시스템 구성 방법 및 장치, 그에의해 만들어진 데이터 보안 영역에 접근하는 방법 및 장치,그에 따른 데이터 저장 장치 |
US8612668B2 (en) * | 2008-11-24 | 2013-12-17 | Juniper Networks, Inc. | Storage optimization system based on object size |
JP5254879B2 (ja) * | 2009-05-22 | 2013-08-07 | 富士通テン株式会社 | データ書込装置、データ書込方法及びプログラム |
WO2011031796A2 (en) | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for caching data on a solid-state storage device |
US8289801B2 (en) | 2009-09-09 | 2012-10-16 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction management in a storage device |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
EP2476079A4 (en) * | 2009-09-09 | 2013-07-03 | Fusion Io Inc | APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US8601222B2 (en) | 2010-05-13 | 2013-12-03 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
JP4714291B2 (ja) * | 2009-09-30 | 2011-06-29 | 株式会社東芝 | 情報記録装置、情報記録方法及び情報記録用プログラム |
JP2011209973A (ja) * | 2010-03-30 | 2011-10-20 | Hitachi Ltd | ディスクアレイ構成プログラム、計算機、計算機システム |
WO2012016089A2 (en) | 2010-07-28 | 2012-02-02 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for atomic storage operations |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
CN103262054B (zh) | 2010-12-13 | 2015-11-25 | 桑迪士克科技股份有限公司 | 用于自动提交存储器的装置、***和方法 |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US20120239860A1 (en) | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
WO2012100087A2 (en) | 2011-01-19 | 2012-07-26 | Fusion-Io, Inc. | Apparatus, system, and method for managing out-of-service conditions |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US8966191B2 (en) | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US10359972B2 (en) | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US20140310493A1 (en) * | 2013-04-11 | 2014-10-16 | International Business Machines Corporation | Migrating data across storages with dissimilar allocation sizes |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
US9262316B2 (en) | 2013-12-09 | 2016-02-16 | International Business Machines Corporation | Recording dwell time in a non-volatile memory system |
US9390003B2 (en) | 2013-12-09 | 2016-07-12 | International Business Machines Corporation | Retirement of physical memory based on dwell time |
JP2015138272A (ja) * | 2014-01-20 | 2015-07-30 | ソニー株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
JP2016028319A (ja) * | 2014-07-08 | 2016-02-25 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
US9979970B2 (en) * | 2014-08-08 | 2018-05-22 | Qualcomm Incorporated | System and method for determining buffer fullness for display stream compression |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
US10009438B2 (en) | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
KR20170015708A (ko) * | 2015-07-30 | 2017-02-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법 |
JP6424330B2 (ja) * | 2015-10-13 | 2018-11-21 | 株式会社アクセル | 情報処理装置、及び情報処理方法 |
US10802712B2 (en) * | 2015-10-13 | 2020-10-13 | Axell Corporation | Information processing apparatus and method of processing information |
CN107209719B (zh) * | 2015-12-03 | 2018-10-09 | 华为技术有限公司 | 一种阵列控制器、固态硬盘和控制固态硬盘写数据的方法 |
CN110119418B (zh) * | 2018-01-16 | 2024-07-16 | 北京京东尚科信息技术有限公司 | 数据导出方法和装置 |
US10936199B2 (en) * | 2018-07-17 | 2021-03-02 | Silicon Motion, Inc. | Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2251323B (en) * | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
JP2669365B2 (ja) | 1994-11-24 | 1997-10-27 | 日本電気株式会社 | 書換え可能なromファイル装置 |
JPH1069420A (ja) * | 1996-08-29 | 1998-03-10 | Sony Corp | 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法 |
US5745418A (en) * | 1996-11-25 | 1998-04-28 | Macronix International Co., Ltd. | Flash memory mass storage system |
JP3640802B2 (ja) * | 1998-06-08 | 2005-04-20 | 富士通株式会社 | データバックアップ方式 |
JP2000057039A (ja) | 1998-08-03 | 2000-02-25 | Canon Inc | アクセス制御方法及び装置及びファイルシステム及び情報処理装置 |
JP3616985B2 (ja) | 1998-10-13 | 2005-02-02 | 株式会社日立製作所 | 記憶装置管理方法および記憶装置管理システム |
JP3632543B2 (ja) | 1999-02-19 | 2005-03-23 | 三菱電機株式会社 | データ記憶方法および情報処理装置 |
US6571312B1 (en) | 1999-02-19 | 2003-05-27 | Mitsubishi Denki Kabushiki Kaisha | Data storage method and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory |
US6141249A (en) * | 1999-04-01 | 2000-10-31 | Lexar Media, Inc. | Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time |
RU2257609C2 (ru) | 1999-10-21 | 2005-07-27 | Мацусита Электрик Индастриал Ко., Лтд. | Устройство доступа к полупроводниковой карте памяти, компьютерно-считываемый носитель записи, способ инициализации и полупроводниковая карта памяти |
US6691205B2 (en) * | 2001-03-05 | 2004-02-10 | M-Systems Flash Disk Pioneers Ltd. | Method for using RAM buffers with simultaneous accesses in flash based storage systems |
JP4238514B2 (ja) | 2002-04-15 | 2009-03-18 | ソニー株式会社 | データ記憶装置 |
-
2004
- 2004-10-07 KR KR1020067010215A patent/KR101087906B1/ko active IP Right Grant
- 2004-10-07 EP EP04792410A patent/EP1686482B1/en active Active
- 2004-10-07 US US10/578,270 patent/US7610434B2/en active Active
- 2004-10-07 WO PCT/JP2004/015182 patent/WO2005050453A1/ja active Application Filing
- 2004-10-07 JP JP2005515557A patent/JP4287433B2/ja active Active
- 2004-10-07 CN CNB2004800406240A patent/CN100543702C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
WO2005050453A1 (ja) | 2005-06-02 |
CN1906596A (zh) | 2007-01-31 |
EP1686482A1 (en) | 2006-08-02 |
US7610434B2 (en) | 2009-10-27 |
EP1686482B1 (en) | 2013-03-06 |
KR20060114698A (ko) | 2006-11-07 |
JPWO2005050453A1 (ja) | 2007-06-07 |
US20070088666A1 (en) | 2007-04-19 |
EP1686482A4 (en) | 2009-03-25 |
KR101087906B1 (ko) | 2011-11-30 |
CN100543702C (zh) | 2009-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4287433B2 (ja) | ファイル記録装置 | |
US6823417B2 (en) | Memory controller for memory card manages file allocation table | |
US6385690B1 (en) | Recording method, managing method, and recording apparatus | |
KR100952135B1 (ko) | 순차적 기록만을 사용하는 플래시 관리 시스템 | |
US7401174B2 (en) | File system defragmentation and data processing method and apparatus for an information recording medium | |
JP4931810B2 (ja) | 最適化されたシーケンシャルなクラスタの管理のためのfat分析 | |
JP5481493B2 (ja) | アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム | |
JP4722704B2 (ja) | 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法 | |
JPWO2005103903A1 (ja) | 不揮発性記憶システム | |
JP2009199625A (ja) | メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
JP4502375B2 (ja) | ファイルシステムおよびその制御方法 | |
JP4130808B2 (ja) | フォーマット方法 | |
JP2005202942A (ja) | 情報記録媒体、データ処理装置及びデータ処理方法 | |
WO2010001606A1 (ja) | コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法 | |
JP2008269520A (ja) | 記録装置及び記録方法 | |
JP2011076441A (ja) | 情報記録装置、情報記録方法及び情報記録用プログラム | |
JP2005301885A (ja) | データ記憶媒体へのアクセス方法,情報処理装置,データ記憶媒体へのアクセスプログラム | |
JP2006155461A (ja) | 情報処理装置、情報処理方法、並びにプログラム | |
JP7435470B2 (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
JP2001325135A (ja) | データ記憶再生装置及びデータ記憶再生方法 | |
JP4881469B1 (ja) | 情報処理装置、及び情報処理方法 | |
KR100592859B1 (ko) | 기록매체제어장치및방법 | |
JP2016015059A (ja) | 記録装置 | |
JP2005149620A (ja) | 記憶装置およびファイルシステム | |
JP2004310656A (ja) | 半導体ファイルシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090204 |
|
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: 20090303 |
|
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: 20090326 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120403 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4287433 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130403 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130403 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140403 Year of fee payment: 5 |