JP4676378B2 - データ記憶装置およびデータ記憶方法 - Google Patents

データ記憶装置およびデータ記憶方法 Download PDF

Info

Publication number
JP4676378B2
JP4676378B2 JP2006138781A JP2006138781A JP4676378B2 JP 4676378 B2 JP4676378 B2 JP 4676378B2 JP 2006138781 A JP2006138781 A JP 2006138781A JP 2006138781 A JP2006138781 A JP 2006138781A JP 4676378 B2 JP4676378 B2 JP 4676378B2
Authority
JP
Japan
Prior art keywords
data
management information
storage device
area
data storage
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
Application number
JP2006138781A
Other languages
English (en)
Other versions
JP2007310637A5 (ja
JP2007310637A (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.)
Buffalo Inc
Original Assignee
Buffalo Inc
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
Priority to JP2006138781A priority Critical patent/JP4676378B2/ja
Application filed by Buffalo Inc filed Critical Buffalo Inc
Priority to PCT/JP2007/060179 priority patent/WO2007135967A1/ja
Priority to CN200780018136.3A priority patent/CN101449248B/zh
Priority to US12/300,789 priority patent/US8364730B2/en
Priority to EP07743614A priority patent/EP2031514A4/en
Priority to TW096117256A priority patent/TW200809494A/zh
Publication of JP2007310637A publication Critical patent/JP2007310637A/ja
Publication of JP2007310637A5 publication Critical patent/JP2007310637A5/ja
Application granted granted Critical
Publication of JP4676378B2 publication Critical patent/JP4676378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/061Improving I/O performance
    • 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]

Description

本発明は、ホスト装置から転送されたデータをデータ記憶装置に記録する技術に関する。
コンピュータ等のホスト装置が用いるデータを記憶するためのデータ記憶装置として、ハードディスクドライブやメモリカード、USBフラッシュメモリ等の種々の記憶装置がある。これらのデータ記憶装置に適用されるファイルシステムとしては、FATと呼ばれるファイルシステムが一般的である。このFATファイルシステムでは、記録したデータの位置を管理するため、ファイルアロケーションテーブルと呼ばれる管理領域がデータ記憶装置内に確保される。このファイルアロケーションテーブルには、管理対象のファイル毎に、そのファイルの構造や記録位置を示すクラスタチェーンと呼ばれる管理情報が記録される。
ファイルアロケーションテーブルは非常に重要な情報であるため、データ記憶装置には、一般的に、同一内容の2つのファイルアロケーションテーブルが確保される。そのため、一方のファイルアロケーションテーブルが損傷したとしても、もう一方のファイルアロケーションテーブルを用いることにより、正常にデータの読み書きを行うことが可能になる(下記特許文献1参照)。
特開平11−249968号公報
このようなファイルシステムを採用するデータ記憶装置では、小さなファイルを多く書き込む場合などには、その書き込み回数だけファイルアロケーションテーブルを書き換える必要があり、その書き込み効率は低下することになる。これに加え、上述のように複数のファイルアロケーションテーブルが確保されている場合には、同一内容の情報を複数回書き込む必要があるため、更に、書き込み効率は低下してしまう。このような問題は、FATファイルシステムに限らず、同一内容の2以上の管理情報を記録する必要のある他のファイルシステムを採用するデータ記憶装置にも生じ得る問題である。
このような問題を考慮し、本発明が解決しようとする課題は、同一内容の管理情報を複数記録するデータ記憶装置において、データの書き込み効率を向上させることにある。
上記課題を踏まえ、本発明のデータ記憶装置を次のように構成した。すなわち、
ホスト装置から転送されたデータを記憶するデータ記憶装置であって、
前記データが記録されるデータ領域と、該データを管理するための第1の管理情報と該管理情報と同様の内容を有する第2の管理情報とが記録される管理領域とを有する記憶デバイスと、
前記ホスト装置から所定の順序で転送される前記データと前記第1の管理情報と前記第2の管理情報とを個別に受信する受信手段と、
前記受信したデータを前記データ領域に記録するデータ記録手段と、
前記第1の管理情報および前記第2の管理情報のうち、一方の管理情報を前記ホスト装置から受信した場合に、他方の管理情報の受信を待つことなく、前記受信した管理情報を、前記第1の管理情報および前記第2の管理情報として前記管理領域に記録する管理情報記録手段と、を備え、
前記管理情報記録手段は、前記他方の管理情報を受信した場合に、前記管理領域に対して該管理情報の記録を行うことなく、記録が完了した旨を前記ホスト装置に返信することを要旨とする。
本発明のデータ記憶装置では、同様の内容を有する第1の管理情報と第2の管理情報とのうち、一方の管理情報をホスト装置から受信すると、他方の管理情報の受信を待つことなく、その管理情報を第1の管理情報および第2の管理情報として記憶デバイスの管理領域に記録する。この結果、データを管理するための管理情報の記録効率が向上することになり、ホスト装置によるデータの書き込み効率が全体として向上することになる。
上記構成のデータ記憶装置において、
前記管理情報記録手段は、前記他方の管理情報を受信した場合に、前記管理領域に対して該管理情報の記録を行うことなく、記録が完了した旨を前記ホスト装置に通知する手段を備えるものとしてもよい。
このような構成によれば、ホスト装置に対して、即座に2つ目の管理情報を書き込んだ旨を応答することができる。この結果、ホスト装置は、管理情報の書込処理からすぐに解放され、迅速に他の処理(例えば、データの書き込み)を開始することが可能になる。
上記構成のデータ記憶装置において、
前記管理情報記録手段は、前記第1の管理情報および前記第2の管理情報を、前記管理領域内の連続した位置に記録するものとしてもよい。
このような構成であれば、2つの管理情報を1回の書込処理によって記憶デバイスにまとめて書き込むことが容易となり、書き込み効率を向上させることができる。
上記構成のデータ記憶装置において、
該データ記憶装置は、前記記憶デバイスを複数備えており、
前記管理情報記録手段は、前記第1の管理情報を一の記憶デバイスに記録し、前記第2の管理情報を他の記憶デバイスに記録するものとしてもよい。
このような構成であれば、複数の記憶デバイスに対して、同一内容の管理情報を同時に書き込むことが可能となり、書き込み効率を向上させることができる。なお、1つのICパッケージの中にフラッシュメモリ等の記憶デバイスが複数実装されている場合や、1つだけ実装された記憶デバイスを複数の記憶デバイスとして認識させられるモードを持つ場合には、データ記憶装置はそのICパッケージを1つだけ備えている場合であっても複数の記憶デバイスを備えているといえる。
上記構成のデータ記憶装置において、
前記データ記録手段は、前記データを前記各記憶デバイスに分散させて記録するものとしてもよい。
このような構成によれば、ホスト装置から受信したデータを、複数の記憶デバイスに分散させて同時並列的に記録することができるため、更に、書き込み効率を向上させることができる。
上記構成のデータ記憶装置において、
前記データ記録手段は、前記データを一の記憶デバイスに記録し、該データを補正するための補正データを他の記憶デバイスに記録するものとしてもよい。
このような構成によれば、読み出したデータに対して補正データを用いた補正を行うことができるので、データ読み出し時の信頼性を向上させることができる。
上記構成のデータ記憶装置において、
前記データ記録手段は、前記補正データとして、前記データをハミング符号化して得られたECCデータを記録するものとしてもよい。
このような構成によれば、データの読み込み時にECCデータを用いてエラーのチェックや誤り訂正を行うことができる。
上記構成のデータ記憶装置において、
前記データ記録手段は、前記補正データとして、前記データと同一内容のデータを記録するものとしてもよい。
このような構成によれば、読み込み対象のデータと補正データとを比較するだけで容易にエラーのチェックを行うことができる。また、一方のデータにエラーが発生したとしても、エラーの発生していない側のデータを用いることで、正常なデータの読み出しを行うことが可能になる。
上記構成のデータ記憶装置において、
前記管理情報とは、FATファイルシステムにおけるファイルアロケーションテーブルに記録するデータとすることができる。
このような構成であれば、2つのファイルアロケーションテーブルを標準的に用いるFATファイルシステムにおいて、ファイルの書き込み効率を向上させることができる。
上記構成のデータ記憶装置において、
前記記憶デバイスは、不揮発性の半導体メモリとすることができる。
このような構成によれば、携帯性に優れた小型のデータ記憶装置を提供することができる。不揮発性の半導体メモリとしては、例えば、NAND型やNOR型の各種フラッシュメモリ、EEPROM、バッテリバックアップされたDRAM等を利用することができる。なお、記憶デバイスとしては、半導体メモリ以外にも、例えば、ハードディスクドライブなどを採用することができる。
上記構成のデータ記憶装置において、
前記ホスト装置と当該データ記憶装置とはUSBインタフェースによって接続されるものとしてもよい。
このような構成であれば、コンピュータ等のホスト装置に用意されたUSBポートに本発明のデータ記憶装置を接続するだけで、容易に本発明のデータ記憶装置を利用することができる。そのため、ユーザの利便性を向上させることができる。なお、USBインタフェース以外にも、例えば、PCMCIAインタフェースやシリアルATAインタフェース、IEEE1394インタフェース、SDメモリカードやコンパクトフラッシュ(登録商標)等で使用される各種メモリインタフェースなどによって接続されるものとしてもよい。
なお、本発明は、上述した種々のデータ記憶装置としての構成のほか、データ記憶装置がホスト装置から転送されたデータを記憶するデータ記憶方法としても構成することができる。
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき次の順序で説明する。
A.第1実施例:
(A1)データ記憶装置の概略構成:
(A2)データ記憶装置の動作概要:
(A3)各種処理(メイン処理、ポインタ設定処理、ライト/リード処理):
(A4)効果:
B.第2実施例:
C.第3実施例:
D.変形例:
A.第1実施例:
(A1)データ記憶装置の概略構成:
図1は、第1実施例としてのデータ記憶装置10の概略構成を示す説明図である。図示するように、本実施例のデータ記憶装置10は、USBコネクタ110とUSB制御回路120とフラッシュコントローラ130とフラッシュメモリFLとによって構成されている。
USBコネクタ110は、データ記憶装置10の筐体(図中の破線部分)から露出して設けられており、パーソナルコンピュータやプリンタ等のホスト装置に備えられたUSBインタフェースに接続される。
USB制御回路120は、USBコネクタ110とフラッシュコントローラ130とに接続されている。USB制御回路120は、当該データ記憶装置10をUSBマスストレージクラスのデバイスとして動作させる回路であり、USBプロトコルに基づきホスト装置との通信を制御する回路である。このUSB制御回路120は、更に、ホスト装置から受信したUSBコマンドをATAコマンドに変換したり、フラッシュコントローラ130から受信したデータやステータスをUSBデータに変換する機能を備える。ATAコマンドとは、ANSI(American National Standard Institute)によって標準化されたコマンドであり、本実施例のデータ記憶装置10の他、ハードディスクやPCカード型メモリ等の種々のデータ記憶装置に対してデータの読み書きを制御するための汎用的なコマンドである。
フラッシュコントローラ130は、USB制御回路120から転送されたATAコマンドを解釈し、フラッシュメモリFLに対するデータの読み書きを制御する集積回路である。フラッシュコントローラ130は、かかる制御を行うために、内部にCPUやROM、RAM等を備えている。このROMには、データ記憶装置10の動作を制御するためのプログラムが記録されている。CPUは、RAMをワークエリアとして用いつつ、このプログラムを実行することで、データ記憶装置10の全般的な動作を制御する。
フラッシュコントローラ130は、レジスタ135を備えており、このレジスタ135には、種々のアドレスポインタが記憶される。フラッシュコントローラ130は、このアドレスポインタを参照することで、後述するFAT領域のアドレス変換を行い、FAT領域について効率的な読み書きを行う機能を備えている。かかる機能の詳細については後述する。
図2は、データ記憶装置10のデータ構造を示す説明図である。データ記憶装置10は、ホスト装置からのFATファイルシステムに基づくフォーマット処理により、図の左側に示すような各領域が生成される。具体的には、フラッシュメモリFLの先頭アドレスから順に、マスタブートレコード領域(以下、「MBR領域」という)、バイオスパラメータブロック領域(以下、「BPB領域」という)、FAT1領域、FAT2領域、ルートディレクトリ領域、ユーザデータ領域、が生成される。
MBR領域は、ホスト装置が接続された場合に、最初に読み込まれる領域である。この領域には、ブートストラップコードやパーティションテーブルなどの情報(以下、「MBR情報」という)が記録されている。パーティションテーブルには、生成されているパーティションの数や、各パーティションの開始セクタおよび終了セクタ、オフセット、総セクタ数などの情報が記録されている。本実施例では、パーティションは1つだけ生成されているものとする。
BPB領域は、各パーティションの先頭セクタに記録されており、そのパーティションのフォーマット形式やセクタ数、FATの数などの情報(以下、「BPB情報」という)が記録されている。
FAT1領域およびFAT2領域には、ユーザデータ領域に記録された各ファイルの所在およびそのファイルを構成するクラスタの連結状態を表す管理情報が記録されている。このような管理情報は、通常、クラスタチェーン情報と呼ばれる。FAT1領域とFAT2領域とには、データの信頼性を向上させるため同一の管理情報が記録される。
ルートディレクトリ領域には、ユーザデータ領域に記録されたファイルのファイル名や拡張子、属性、そのファイルを構成する最初のクラスタ番号等が記録されている。
データ記憶装置10は、フラッシュコントローラ130の働きにより上述した各領域のうちFAT1領域とFAT2領域とについてアドレス変換を行い、図の右側に示すように、これらの領域をまとめてFAT3領域として管理する。つまり、ホスト装置からは、図2の左側に示すようなアドレスマップにより上述した各領域が記録されているように認識され、実際には、図の右側に示すようなアドレスマップによりフラッシュメモリFL内に各領域が確保されていることになる。なお、以下では、FAT1領域、FAT2領域、FAT3領域のことをまとめて、「FAT領域」と記載する場合がある。
フラッシュコントローラ130は、FAT領域のアドレス変換を行うにあたり、図2に示すアドレスポインタAP1〜AP3を使用する。これらのアドレスポインタは、フラッシュコントローラ130内のレジスタ135に記憶されている。図示するように、アドレスポインタAP1は、FAT1領域の先頭アドレスAcを示し、アドレスポインタAP2は、FAT2領域の先頭アドレスAdを示している。また、アドレスポインタAP3は、ルートディレクトリ領域の先頭アドレスAeを示している。フラッシュコントローラ130は、これらのアドレスポインタを参照し、ホスト装置からのアクセス先がFAT1領域またはFAT2領域である場合には、アドレス変換を行って、フラッシュメモリFL内のFAT3領域に対して読み書きを行う。
図3は、FAT1,2領域とFAT3領域との対応関係およびFAT3領域に対する読み書き動作の概要を示す説明図である。図の左側には、ホスト装置から見たFAT1領域およびFAT2領域を示しており、図の右側には、フラッシュコントローラ130から見たFAT3領域を示している。ここでは、FAT領域の記録単位である一つの管理情報を「#1」、「#2」のように表しており、FAT1領域に対して書き込まれる管理情報を「FAT1#1」のように表している。
図3の左側に示すようにホスト装置からは、FAT1領域についての管理情報は、アドレスAcからアドレスAd−1までの間に順番に記録されているものとしてアクセスされる。また、FAT2領域についての管理情報は、アドレスAdからアドレスAe−1までの間に順番に記録されているものとしてアクセスされる。
これに対して、フラッシュコントローラ130は、FAT1領域についての管理情報とFAT2領域についての管理情報とを、図3の右側に示すようにFAT3領域に対して交互に配置する。つまり、フラッシュコントローラ130は、FAT1領域に対してアクセスがあった場合には、下記式(1)によってアドレス変換を行い、FAT2領域に対してアクセスがあった場合には、下記式(2)によってアドレス変換を行う。ただし、下記式では、ホスト装置からアクセスのあったアドレスをAD1、変換後のアドレスをAD2として表している。
AD2=AP1+2*(AD1−AP1) ...(1)
AD2=AP1+2*(AD1−AP2)+1 ...(2)
フラッシュコントローラ130は、例えば、ホスト装置から、図3の左側に示すFAT1領域に対して「FAT1#1」と示した管理情報の書き込み指示を受けると、この管理情報を、図3の右側に示すFAT3領域において、上記式(1)によってアドレス変換したアドレスに書き込み、さらに、この管理情報と同一内容の管理情報を、そのアドレスに隣接した次のアドレスに、FAT2領域の管理情報(FAT2#1)として書き込む。上述したように、FATファイルシステムでは、通常、FAT1領域とFAT2領域とには同一の管理情報が書き込まれる。従って、本実施例では、FAT1領域に対する管理情報の書き込み指示があると、ホスト装置からFAT2領域に対する書き込み指示がなされる前に、同一内容の管理情報をFAT2領域に対して書き込むのである。こうすることで、FAT2領域に対する書き込み指示を受信するまでもなく、FAT1領域およびFAT2領域に対する書き込みが完了するので、効率的にFAT情報の書き込みを行うことが可能になる。また、上述したように、本実施例では、FAT1についての管理情報とFAT2についての管理情報とを連続したアドレスに書き込むので、高速に管理情報の書き込みを行うことが可能になる。なお、FAT3領域に記録された管理情報を読み込む際には、上記式(1)または(2)に応じて、FAT1またはFAT2の管理情報を読み込む。
(A2)データ記憶装置の動作概要:
図4は、データ記憶装置10の動作の概要をホスト装置の動作とともに示す説明図である。ホスト装置がデータ記憶装置10に対してファイルの書き込みを行うには、大まかに、(a)FAT1領域に対する管理情報の書き込み、(b)FAT2領域に対する管理情報の書き込み、(c)ユーザデータ領域に対するファイル実体の書き込み、という手順が実行される。図4には、この一連の流れを示している。
ホスト装置は、ファイルの書き込みを行おうとすると、まず、書き込みを行うファイルの管理情報をFAT1領域に書き込むようデータ記憶装置10に指示する(ステップS100)。ホスト装置からデータ記憶装置10へは、この指示と同時に管理情報が送信される。
データ記憶装置10のフラッシュコントローラ130は、上記指示および管理情報を受信すると、指定されたFAT1領域内のアドレスに対応するFAT3領域内のアドレスに、その管理情報を書き込み、更に、連続したアドレスに、その管理情報をコピーした情報を書き込む(ステップS110)。
上記ステップS110における処理の具体例を、図3を参照して説明する。ホスト装置からFAT1領域のアドレスAcに管理情報として、「FAT1#1」と示した情報を書き込むよう指示がなされたとすると、データ記憶装置10は、そのアドレスに対応するFAT3領域のアドレスAcに、「FAT1#1」を書き込み、その情報と同一内容の情報を、次のアドレスAc+1に、「FAT2#1」として書き込む。「FAT2#1」とは、本来、FAT2領域の先頭アドレスAdに書き込まれる情報であるから、FAT3領域には、FAT1領域とFAT2領域とに書き込む管理情報が、同時にまとめて書き込まれることとなる。つまり、FATファイルシステムではFAT1領域とFAT2領域とに同一内容のデータが記録されることを利用し、本実施例のデータ記憶装置10は、FAT3領域に対してFAT1領域についての管理情報を書き込むと、ホスト装置からの指示を待つことなく、FAT2領域についての管理情報もまとめて書き込むのである。
FAT3領域に対する書き込みが完了すると(ステップS115)、フラッシュコントローラ130は、ホスト装置に対して、FAT1領域への書き込みが終了した旨を表す書込完了通知を返信する(ステップS120)。
ホスト装置は、フラッシュコントローラ130から書込完了通知を受信すると、続いて、FAT2領域への管理情報の書き込み指示を送信する(ステップS130)。ところが、上述したように、既にこのときには、上記ステップS110においてFAT2領域に対する管理情報の書き込みが完了した状態になっているため、フラッシュコントローラ130は、この書き込み指示を受信すると、即座に、ホスト装置に書込完了通知を返信する(ステップS140)。
フラッシュコントローラ130から、FAT2領域への書き込みが完了した旨の通知を受信すると、ホスト装置は、フラッシュコントローラ130に対して、ファイルの実体の書き込みを指示する(ステップS150)。すると、フラッシュコントローラ130は、フラッシュメモリFL内のユーザデータ領域に対して、かかるファイルを書き込む(ステップS160)。フラッシュメモリFLへのファイルの書き込みが完了すると(ステップS165)、フラッシュコントローラ130は、ファイルの書き込みが終了した旨を示す書込完了通知をホスト装置に送信する(ステップS170)。
以上で説明したように、本実施例のデータ記憶装置10は、FAT1領域への書き込みと同時にFAT2領域への書き込みを行うため、ホスト装置からFAT2領域の書き込み指示があっても、即座に書き込みが完了した旨の通知を返信することができる。この結果、ホスト装置は、FAT2領域への書込処理から迅速に解放され、すぐさま次のデータの書き込みを開始することができる。
なお、本実施例では、FAT1領域およびFAT2領域に対する書き込みを行った後に、ユーザデータ領域に対する書き込みを行うものとしたが、これらは逆の順序で行うものとしてもよい。
(A3)各種処理:
以下、データ記憶装置10が、図4に示した動作等を実現するための種々の処理について詳細に説明する。
(A3−1)メイン処理:
図5は、データ記憶装置10が実行するメイン処理のフローチャートである。この処理は、データ記憶装置10がホスト装置に接続されて電源が供給されたと同時にフラッシュコントローラ130が実行を開始する処理である。
この処理が開始されると、まず、フラッシュコントローラ130は、アドレスポインタAP1〜AP3の値を設定するためのポインタ設定処理を行う(ステップS200)。このポインタ設定処理の詳細については後述する。
続いて、フラッシュコントローラ130は、USB制御回路120を介して、ホスト装置から何らかのコマンドを受信したか否かを判断する(ステップS210)。コマンドを受信していない場合には(ステップS210:No)、この処理をループすることでコマンドを受信するまで待機する。一方、コマンドを受信した場合には(ステップS210:Yes)、そのコマンドの種類を判別する(ステップS220)。
上記ステップS220において、受信したコマンドが、データの書き込みを行うライトコマンドであると判断されれば(ステップS220:「ライト」)、フラッシュコントローラ130は、後述するライト処理を行う(ステップS230)。一方、受信したコマンドが、データの読み込みを行うリードコマンドであると判断されれば(ステップS220:「リード」)、後述するリード処理を行う(ステップS240)。そして、これらの処理が完了すれば、処理を上記ステップS210に戻す。以上で説明したメイン処理によれば、電源供給がストップされるまで、ホスト装置から受信したコマンドに応じた処理がなされることになる。
(A3−2)ポインタ設定処理:
図6は、上述したメイン処理のステップS200で実行されるポインタ設定処理のフローチャートである。この処理は、データ記憶装置10の電源投入時やフォーマット完了時に、図2や図3に示したアドレスポインタAP1〜AP3の値を設定するための処理である。
この処理が実行されると、まず、フラッシュコントローラ130は、フラッシュメモリFLのMBR領域とBPB領域とを読み込む(ステップS300)。そして、これらの領域に既にMBR情報とBPB情報とが書き込まれているかを判断する(ステップS310)。
上記ステップS310において、MBR情報とBPB情報とが書き込まれていないと判断した場合には(ステップS310:No)、データ記憶装置10は、未だフォーマットされていない状態であるため、フラッシュコントローラ130は、アドレスポインタAP1〜AP3の値を次のように設定する。すなわち、アドレスポインタAP1の値をフラッシュメモリFLの最終アドレスAzとし、アドレスポインタAP2、AP3については設定を行わない(ステップS320)。こうすることで、後述するライト処理やリード処理において、FAT領域の変換などが特に行われなくなるため、ホスト装置は、FATファイルシステム以外のファイルシステムによっても、データ記憶装置10を正常に利用することが可能になる。
上記ステップS320において、アドレスポインタAP1の値を設定すると、フラッシュコントローラ130は、かかる値をレジスタ135に記録し(ステップS330)、当該ポインタ設定処理を終了する。
上記ステップS310において、MBR情報とBPB情報とが既に書き込まれていると判断した場合には(ステップS310:Yes)、データ記憶装置10は、FATファイルシステムによって既にフォーマットされた状態であるため、フラッシュコントローラ130は、MBR領域やBPB領域に記録されたパーティションテーブルやセクタ数等の情報に基づきFAT1領域の先頭アドレスAcを求め、これをアドレスポインタAP1の値とする(ステップS340)。同様に、フラッシュコントローラ130は、FAT2領域の先頭アドレスAdを求め、これをアドレスポインタAP2の値とし(ステップS350)、更に、ルートディレクトリ領域の先頭アドレスAeを求め、これをアドレスポインタAP3の値とする(ステップS360)。最後に、フラッシュコントローラ130は、こうして設定したアドレスポインタAP1〜AP3の値をレジスタ135に記録し(ステップS330)、処理を終了する。
(A3−3)ライト処理:
図7は、上述したメイン処理のステップS230で実行されるライト処理のフローチャートである。このライト処理は、ホスト装置から受信したデータ(以下、「ライトデータ」という)をフラッシュメモリFLに書き込むための処理である。
この処理が実行されると、まず、フラッシュコントローラ130は、ホスト装置からUSB制御回路120を介して受信したライトコマンドを解析して書き込み先のアドレス(以下、「ライトアドレスWA」という)を求める(ステップS400)。
続いて、フラッシュコントローラ130は、レジスタ135を参照して、ライトアドレスWAが、アドレスポインタAP1が示すアドレスよりも低いアドレスであるかを判断する(ステップS410)。この判断の結果、ライトアドレスWAが、アドレスポインタAP1が示すアドレスよりも低いアドレスであれば(ステップS410:Yes)、ホスト装置からのフォーマット処理に伴うMBR情報やBPB情報の書き込み、あるいは、FATファイルシステム以外のファイルシステムによる書き込みであると判断できる(図2参照)。そのため、フラッシュコントローラ130は、アドレス変換等を特に行うことなく、フラッシュメモリFLのライトアドレスWAに、そのままライトデータを書き込む(ステップS420)。
MBR情報やBPB情報は、通常、フォーマット時に1回のみ書き込みが行われる。そのため、アドレスポインタAP1よりも低いアドレスにデータの書き込みが行われると、フラッシュコントローラ130は、ホスト装置によってフォーマット処理が行われた可能性があると判断し、図6に示したポインタ設定処理を実行する(ステップS430)。こうすることで、フォーマット終了後においてアドレスポインタAP1〜AP3を適切に設定することができる。ポインタ設定処理が完了すると、フラッシュコントローラ130は、書込完了通知をホスト装置に送信する(ステップS440)。
上記ステップS410において、ライトアドレスWAが、アドレスポインタAP1が示すアドレスよりも高いアドレスであると判断された場合には(ステップS410:No)、フラッシュコントローラ130は、次に、レジスタ135を参照して、ライトアドレスWAが、アドレスポインタAP3が示すアドレスよりも高いアドレスであるかを判断する(ステップS450)。この判断の結果、ライトアドレスWAが、アドレスポインタAP3が示すアドレスよりも高いアドレスであると判断されれば(ステップS450:Yes)、ルートディレクトリ領域またはユーザデータ領域に対する書き込みであると判断できる(図2参照)。そのため、フラッシュコントローラ130は、アドレス変換等を特に行うことなく、フラッシュメモリFLのライトアドレスWAにそのままライトデータを書き込む(ステップS460)。書き込みが終了すると、フラッシュコントローラ130は、ホスト装置に対して、書込完了通知を送信する(ステップS440)。
上記ステップS450において、ライトアドレスWAが、アドレスポインタAP3が示すアドレスよりも低いアドレスであると判断された場合には(ステップS450:No)、ライトアドレスWAは、FAT1領域かFAT2領域のいずれかを示すことになるので、フラッシュコントローラ130は、次に、レジスタ135を参照して、ライトアドレスWAが、アドレスポインタAP2が示すアドレスよりも低いアドレスであるかを判断する(ステップS470)。この判断の結果、ライトアドレスWAが、アドレスポインタAP2よりも低いアドレスであると判断されれば(ステップS470:Yes)、ライトアドレスWAは、FAT1領域内を示すことになる。そこで、フラッシュコントローラ130は、図3を用いて説明したように、上記式(1)によるアドレス変換を行う(ステップS480)。
アドレス変換を行うと、フラッシュコントローラ130は、変換されたアドレスに対して、受信したライトデータを管理情報として書き込むとともに、そのアドレスに連続した次のアドレスに、同一内容のデータを書き込む(ステップS490)。こうすることで、FAT3領域に対して、FAT1領域とFAT2領域とに書き込むべき管理情報をまとめて書き込むことができる。こうしてFAT3領域に対する書き込みが終了すると、フラッシュコントローラ130は、ホスト装置に書込完了通知を送信する(ステップS440)。
上記ステップS470において、ライトアドレスWAが、アドレスポインタAP2よりも高いアドレスであると判断された場合には(ステップS470:No)、ライトアドレスWAは、FAT2領域内のアドレスを示していることになる。FAT2領域について書き込むべき情報は、上記ステップS490によって既に書き込みが完了している状態となっている。そのため、この場合、フラッシュコントローラ130は、フラッシュメモリFLに対して何も書き込むことなく、そのまま書込完了通知をホスト装置に送信する(ステップS440)。
以上で説明したライト処理によれば、FAT領域以外の領域については、ホスト装置から送信されたデータを、アドレス変換等を行うことなくそのまま書き込む。これに対して、FAT領域については、FAT1領域への書き込み指示があったときにのみ所定のアドレス変換を行ってFAT3領域にデータを書き込む。このとき、フラッシュコントローラ130は、FAT2領域へ書き込むべき情報もFAT3領域にまとめて書き込むので、フラッシュメモリFLに対して効率的に管理情報を書き込むことが可能になる。
(A3−4)リード処理:
図8は、上述したメイン処理のステップS240で実行されるリード処理のフローチャートである。このリード処理は、ホスト装置からの要求に応じてフラッシュメモリFLからデータを読み出すための処理である。
この処理が実行されると、まず、フラッシュコントローラ130は、ホスト装置からUSB制御回路120を介して受信したリードコマンドを解析して、読み込み先のアドレス(以下、「リードアドレスRA」という)を求める(ステップS500)。
続いて、フラッシュコントローラ130は、レジスタ135を参照して、リードアドレスRAが、アドレスポインタAP1が示すアドレスよりも高く、かつ、アドレスポインタAP3が示すアドレスよりも低いアドレスであるかを判断する(ステップS510)。この判断の結果、リードアドレスRAが、アドレスポインタAP1よりも低い値か、または、アドレスポインタAP3よりも高い値であれば(ステップS510:No)、リードアドレスRAは、FAT領域以外の領域のアドレスを示すことになるため、そのままリードアドレスRAからデータを読み込み(ステップS520)、読み込んだデータをホスト装置に転送する(ステップS530)。
上記ステップS510において、リードアドレスRAが、アドレスポインタAP1が示すアドレスよりも高く、かつ、アドレスポインタAP3が示すアドレスよりも低いアドレスであれば(ステップS510:Yes)、リードアドレスRAは、FAT1領域もしくはFAT2領域内のアドレスを示すこととなる(図2参照)。そこで、フラッシュコントローラ130は、更に、そのリードアドレスRAが、アドレスポインタAP2が示すアドレスよりも高いアドレスであるかを判断する(ステップS540)。この判断の結果、リードアドレスRAがアドレスポインタAP2よりも低いアドレスであると判断された場合には(ステップS540:No)、リードアドレスRAは、FAT1領域内のアドレスとなるため、上記式(1)によってアドレス変換を行い(ステップS550)、変換後のアドレスからデータ読み込む(ステップS520)。こうすることで、FAT3領域から適切にFAT1領域についての管理情報を読み込むことができる。フラッシュコントローラ130は、FAT3領域からデータを読み込むと、これをホスト装置に転送する(ステップS530)。
一方、上記ステップS540において、リードアドレスRAが、アドレスポインタAP2が示すアドレスよりも高いアドレスであると判断されれば(ステップS540:Yes)、リードアドレスRAは、FAT2領域内のアドレスとなるため、フラッシュコントローラ130は、上記式(2)によってアドレス変換を行い(ステップS560)、変換後のアドレスからデータ読み込む(ステップS520)。こうすることで、FAT3領域から適切にFAT2領域についての管理情報を読み込むことができる。フラッシュコントローラ130は、FAT3領域からデータを読み込むと、これをホスト装置に転送する(ステップS530)。
以上で説明したリード処理によれば、FAT領域以外の領域からはそのままデータを読み込んでホストに転送することができ、FAT1領域またはFAT2領域については、アドレス変換を行うことで、適切にFAT3領域からそれぞれの情報を読み込み、ホスト装置に転送することができる。
(A4)効果:
以上で説明した第1実施例のデータ記憶装置10は、ホスト装置からFAT1領域に対するデータの書き込み指示があると、FAT2領域に対するデータの書き込みも併せて行う。そのため、ホスト装置からFAT2領域についてのデータの書き込み指示があっても、即座に、書き込みが終了した旨の通知を返信することができる。また、本実施例では、フラッシュメモリFL内のFAT3領域に、FAT1領域とFAT2領域についての管理情報を隣接したアドレスにまとめて書き込むものとした。そのため、効率的に、データの書き込みを行うことができ、処理速度を向上させることができる。特に、本実施例のデータ記憶装置10は、記憶デバイスとしてデータの書き込み単位が比較的大きいフラッシュメモリを採用したため、隣接した2つのデータを1回の書き込み動作でまとめて書き込むことが容易であり、処理スピードを大幅に向上させることが可能になる。
B.第2実施例:
上述した第1実施例では、図1に示したように、データ記憶装置10は、フラッシュメモリFLを1つ備えているものとした。これに対して第2実施例では、フラッシュメモリFLを2つ備えているものとする。
図9は、第2実施例としてのデータ記憶装置10bの概略構成を示す説明図である。図示するように、本実施例のデータ記憶装置10bは、第1実施例と同様に、USBコネクタ110とUSB制御回路120とフラッシュコントローラ130とを備えており、更に、2つのフラッシュメモリFLa,FLbを備えている。
図10は、データ記憶装置10bのデータ構造を示す説明図である。図10の左側には、ホスト装置からみたデータ記憶装置10bのアドレスマップを示している。かかるアドレスマップは、第1実施例と同様であるため、説明は省略する。
図10の右側には、2つのフラッシュメモリFLa,FLbのアドレスマップを併記して示している。本実施例では、FAT領域以外の領域、すなわち、MBR領域、BPB領域、ルートディレクトリ領域、ユーザデータ領域については、そのアドレス空間を形成する各アドレスが(1)フラッシュメモリFLa、(2)フラッシュメモリFLbの順に交互に割り振られているものとする。つまり、例えば、MBR領域の最初のアドレスは、フラッシュメモリFLaに存在し、2番目のアドレスはフラッシュメモリFLbに存在する。また、3番目のアドレスは、フラッシュメモリFLaに存在し、4番目のアドレスは、フラッシュメモリFLbに存在することになる。このようなアドレス空間であれば、データ記憶装置10bは、データを2つのフラッシュメモリに並列(同時)に書き込むことができる。本実施例では、データ記憶装置10bは、2つのフラッシュメモリFLa,FLbを備えることにより、そのバス幅が実質的に2倍になるので、上述のようにデータを並列(同時)に書き込めば、高速にデータの読み書きを行うことが可能になる。
本実施例では、FAT領域については、フラッシュメモリFLa側にFAT1領域を確保し、フラッシュメモリFLb側にFAT2領域を確保している。そのため、本実施例においてホスト装置からFAT1領域に対してデータの書き込み指示があると、フラッシュコントローラ130は、フラッシュメモリFLaのFAT1領域に対してデータを書き込むとともに、同一の内容のデータをフラッシュメモリFLbのFAT2領域に書き込む。2つのフラッシュメモリに対する書き込みは、同時並列的に行うことができるため、他方の書込完了を待たずに2つのFAT情報を書き込むことができる。この結果、第1実施例と同様に、FAT領域に対する書き込み効率を向上させることができる。
第2実施例におけるメイン処理、ポインタ設定処理、ライト処理、リード処理については、第1実施例とほぼ同様の処理内容であるため詳細な説明は省略する。ただし、本実施例では、図7や図8に示したライト処理やリード処理において、FAT領域以外の領域に対してデータを読み書きする際には、図10に示したアドレスマップに従って所定のアドレス変換を行った上で、フラッシュメモリFLaまたはフラッシュメモリFLbに対して適宜読み書きを行う。また、第1実施例では、図7に示したライト処理のステップS490において、FAT3領域の連続したアドレスに同一の管理情報を2つ書き込むものとしたが、第2実施例では、フラッシュメモリFLaのFAT1領域およびフラッシュメモリFLbのFAT2領域に対して、それぞれ、同一の管理情報を並列的に書き込む。また、図8のリード処理のステップS550におけるアドレス変換では、フラッシュメモリFLaのFAT1領域へのアドレス変換を行い、ステップS560におけるアドレス変換では、フラッシュメモリFLbのFAT2領域へのアドレス変換をそれぞれ行う。
C.第3実施例:
上述した第2実施例では、FAT領域以外の領域についてはデータを2つのフラッシュメモリに分散して記録するものとした。これに対して、第3実施例では、FAT領域以外の領域については、2つのフラッシュメモリに、同一内容のデータが書き込まれるものとする。データ記憶装置10bの装置構成については、図9に示した構成と同一である。
図11は、第3実施例におけるデータ記憶装置10bのデータ構造を示す説明図である。図11の左側には、ホスト装置からみたデータ記憶装置10bのアドレスマップを示している。一方、図11の右側には、2つのフラッシュメモリFLa,FLbのアドレスマップを示している。本実施例では、FAT領域以外の領域、すなわち、MBR領域、BPB領域、ルートディレクトリ領域、ユーザデータ領域については、フラッシュメモリFLaとフラッシュメモリFLbとで同一内容のデータが書き込まれるものとする。このような構成であれば、データの冗長度を高めてフラッシュメモリに記憶させることができるので、一方のフラッシュメモリのデータが損傷したとしても、もう一方のフラッシュメモリに記憶されたデータを用いて、適切にデータを読み込むことが可能になる。
これに対して、FAT領域については、第2実施例と同様に、FAT1領域がフラッシュメモリFLaに確保され、FAT2領域がフラッシュメモリFLbに確保されるものとした。こうすることにより、2つのフラッシュメモリに対する書き込みを、同時並列的に行うことができるため、他方の書込完了を待たずに2つの管理情報を書き込むことができる。この結果、第1実施例や第2実施例と同様に、FAT領域に対する書き込み効率を向上させることができる。
本実施例では、図11に示すように、FAT2領域以外の領域については、ホスト側から見たアドレスマップと、フラッシュコントローラ130から見たアドレス体系は一致している。従って、FAT2領域以外の領域については、アドレス変換を行うことなくデータの読み書きを行うことができるため、処理効率を向上させることができる。なお、図11の右側に示したアドレスマップにおいて、「NULL」と示した領域は、本来、FAT2領域が確保されるべき領域であるため、ホスト装置からは直接認識されない領域となる。しかし、このNULL領域をユーザデータ領域に連結させる所定のアドレス変換を行うことで、かかるNULL領域も、ユーザデータ領域として利用することが可能である。
ところで、本実施例では、フラッシュメモリFLaとフラッシュメモリFLbとに同一内容のデータが書き込まれるものとしたが、フラッシュメモリFLbには、フラッシュメモリFLaに書き込まれたデータから生成したECCデータを書き込むものとしてもよい。このような構成であれば、フラッシュメモリFLbに書き込まれたECCデータに基づきフラッシュメモリFLaに書き込まれたデータのエラーチェックやエラー訂正を容易に行うことができるので、記憶されたデータの信頼性を高めることが可能になる。
D.変形例:
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、以下のような変形が可能である。
(D1)変形例1:
上記実施例では、データ記憶装置10は、記憶デバイスとしてフラッシュメモリを備えるものとした。これに対して、例えば、ハードディスクドライブなどの他の記憶デバイスを備えるものとしてもよい。
(D2)変形例2:
上記実施例では、データ記憶装置10はFAT形式によってフォーマットされるものとした。しかし、フォーマットの形式はこれに限られず、同一内容の管理情報が複数書き込まれる他の形式によってフォーマットされるものとしてもよい。
(D3)変形例3:
上記実施例では、ホスト装置とデータ記憶装置10とは、USBインタフェースによって接続されるものとしたが、インタフェースの種別はこれに限られない。例えば、PCMCIAインタフェースによって接続されるものとしてもよいし、シリアルATAインタフェースやIEEE1394インタフェース等によって接続されるものとしてもよい。
なお、上記実施例では、フラッシュメモリのデータの記憶場所のことを、「アドレス」という用語を用いて説明したが、かかる用語は、適用されるファイルシステムやオペレーティングシステム、記憶デバイスの種類に応じて、「セクタ」や「クラスタ」、「ブロック」などと適宜読み替えることができる。
第1実施例としてのデータ記憶装置10の概略構成を示す説明図である。 データ記憶装置10のデータ構造を示す説明図である。 FAT1,2領域とFAT3領域との対応関係およびFAT3領域に対する読み書き動作の概要を示す説明図である データ記憶装置10の動作の概要をホスト装置の動作とともに示す説明図である。 メイン処理のフローチャートである。 ポインタ設定処理のフローチャートである。 ライト処理のフローチャートである。 リード処理のフローチャートである。 第2実施例としてのデータ記憶装置10bの概略構成を示す説明図である。 第2実施例におけるデータ構造を示す説明図である。 第3実施例におけるデータ構造を示す説明図である。
符号の説明
10,10b...データ記憶装置
110...USBコネクタ
120...USB制御回路
130...フラッシュコントローラ
135...レジスタ
FL,FLa,FLb...フラッシュメモリ

Claims (12)

  1. ホスト装置から転送されたデータを記憶するデータ記憶装置であって、
    前記データが記録されるデータ領域と、該データを管理するための第1の管理情報と該管理情報と同様の内容を有する第2の管理情報とが記録される管理領域とを有する記憶デバイスと、
    前記ホスト装置から所定の順序で転送される前記データと前記第1の管理情報と前記第2の管理情報とを個別に受信する受信手段と、
    前記受信したデータを前記データ領域に記録するデータ記録手段と、
    前記第1の管理情報および前記第2の管理情報のうち、一方の管理情報を前記ホスト装置から受信した場合に、他方の管理情報の受信を待つことなく、前記受信した管理情報を、前記第1の管理情報および前記第2の管理情報として前記管理領域に記録する管理情報記録手段と、を備え、
    前記管理情報記録手段は、前記他方の管理情報を受信した場合に、前記管理領域に対して該管理情報の記録を行うことなく、記録が完了した旨を前記ホスト装置に返信する
    ータ記憶装置。
  2. 請求項1に記載のデータ記憶装置であって、
    前記管理情報記録手段は、前記第1の管理情報および前記第2の管理情報を、前記管理領域内の連続した位置に記録する
    データ記憶装置。
  3. 請求項1に記載のデータ記憶装置であって、
    該データ記憶装置は、前記記憶デバイスを複数備えており、
    前記管理情報記録手段は、前記第1の管理情報を一の記憶デバイスに記録し、前記第2の管理情報を他の記憶デバイスに記録する
    データ記憶装置。
  4. 請求項に記載のデータ記憶装置であって、
    前記データ記録手段は、前記データを前記各記憶デバイスに分散させて記録する
    データ記憶装置。
  5. 請求項に記載のデータ記憶装置であって、
    前記データ記録手段は、前記データを一の記憶デバイスに記録し、該データを補正するための補正データを他の記憶デバイスに記録する
    データ記憶装置。
  6. 請求項に記載のデータ記憶装置であって、
    前記データ記録手段は、前記補正データとして、前記データをハミング符号化して得られたECCデータを記録する
    データ記憶装置。
  7. 請求項に記載のデータ記憶装置であって、
    前記データ記録手段は、前記補正データとして、前記データと同一内容のデータを記録する
    データ記憶装置。
  8. 請求項1ないし請求項のいずれかに記載のデータ記憶装置であって、
    前記管理情報とは、FATファイルシステムにおけるファイルアロケーションテーブルに記録するデータである
    データ記憶装置。
  9. 請求項1ないし請求項のいずれかに記載のデータ記憶装置であって、
    前記記憶デバイスは、不揮発性の半導体メモリである
    データ記憶装置。
  10. 請求項に記載のデータ記憶装置であって、
    前記不揮発性の半導体メモリとは、フラッシュメモリである
    データ記憶装置。
  11. 請求項10に記載のデータ記憶装置であって、
    前記ホスト装置と当該データ記憶装置とはUSBインタフェースによって接続される
    データ記憶装置。
  12. データ記憶装置が、ホスト装置から転送されたデータを記憶するデータ記憶方法であって、
    前記データ記憶装置は、前記データが記録されるデータ領域と、該データを管理するための第1の管理情報と該管理情報と同様の内容を有する第2の管理情報とが記録される管理領域とを有する記憶デバイスを備えており、
    前記ホスト装置から所定の順序で転送される前記データと前記第1の管理情報と前記第2の管理情報とを個別に受信し、
    前記第1の管理情報および前記第2の管理情報のうち、一方の管理情報を前記ホスト装置から受信した場合に、他方の管理情報の受信を待つことなく、前記受信した管理情報を、前記第1の管理情報および前記第2の管理情報として前記管理領域に記録し、
    前記他方の管理情報を受信した場合に、前記管理領域に対して該管理情報の記録を行うことなく、記録が完了した旨を前記ホスト装置に返信し、
    前記受信したデータを前記データ記憶領域に記録する
    データ記憶方法。
JP2006138781A 2006-05-18 2006-05-18 データ記憶装置およびデータ記憶方法 Active JP4676378B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006138781A JP4676378B2 (ja) 2006-05-18 2006-05-18 データ記憶装置およびデータ記憶方法
CN200780018136.3A CN101449248B (zh) 2006-05-18 2007-05-11 数据存储装置以及数据存储方法
US12/300,789 US8364730B2 (en) 2006-05-18 2007-05-11 Data storage apparatus and data storage method
EP07743614A EP2031514A4 (en) 2006-05-18 2007-05-11 DATA MEMORY DEVICE AND DATA STORING METHOD
PCT/JP2007/060179 WO2007135967A1 (ja) 2006-05-18 2007-05-11 データ記憶装置およびデータ記憶方法
TW096117256A TW200809494A (en) 2006-05-18 2007-05-15 Data storage device and data storage method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006138781A JP4676378B2 (ja) 2006-05-18 2006-05-18 データ記憶装置およびデータ記憶方法

Publications (3)

Publication Number Publication Date
JP2007310637A JP2007310637A (ja) 2007-11-29
JP2007310637A5 JP2007310637A5 (ja) 2008-08-14
JP4676378B2 true JP4676378B2 (ja) 2011-04-27

Family

ID=38723278

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006138781A Active JP4676378B2 (ja) 2006-05-18 2006-05-18 データ記憶装置およびデータ記憶方法

Country Status (6)

Country Link
US (1) US8364730B2 (ja)
EP (1) EP2031514A4 (ja)
JP (1) JP4676378B2 (ja)
CN (1) CN101449248B (ja)
TW (1) TW200809494A (ja)
WO (1) WO2007135967A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
CN101187830B (zh) * 2007-12-27 2012-05-23 成都市华为赛门铁克科技有限公司 掉电保护方法、装置、逻辑器件及存储系统
CN101661438B (zh) * 2008-08-29 2013-08-28 鸿富锦精密工业(深圳)有限公司 电子装置及中央处理器寻址空间扩展方法
US20100161952A1 (en) * 2008-12-18 2010-06-24 Texas Instruments Incorporated Performance optimizations by dynamic reduction of file allocation tables
CN101576966A (zh) * 2009-06-02 2009-11-11 中兴通讯股份有限公司 一种读写存储卡的方法及装置
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
CN103176753B (zh) * 2013-03-07 2016-06-01 深圳市江波龙电子有限公司 存储设备及其数据管理方法
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
JP6150669B2 (ja) * 2013-08-22 2017-06-21 キヤノン株式会社 情報処理装置、画像形成装置、及びその制御方法
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
JP2017021561A (ja) * 2015-07-10 2017-01-26 ファナック株式会社 制御装置のファイルシステム
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US10229052B2 (en) * 2017-05-31 2019-03-12 Seagate Technology Llc Reverse map logging in physical media
US11138069B2 (en) 2018-06-11 2021-10-05 Seagate Technology, Llc Providing additional parity for non-standard sized parity data sets
US11520696B2 (en) * 2018-06-28 2022-12-06 Seagate Technology Llc Segregating map data among different die sets in a non-volatile memory
US10896002B2 (en) 2018-06-29 2021-01-19 Seagate Technology Llc Reverse directory structure in a garbage collection unit (GCU)
CN109658867A (zh) * 2018-12-10 2019-04-19 北京欧徕德微电子技术有限公司 数据读写方法及其装置
CN112800007B (zh) * 2021-01-28 2022-06-14 上海华元创信软件有限公司 适用于fat32文件系统的目录项扩展方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764841A (ja) * 1993-08-26 1995-03-10 Fujitsu Ltd 可換記録媒体及びその制御方法
JPH11242564A (ja) * 1998-10-19 1999-09-07 Fujitsu Ltd 記憶媒体とその制御方法
JPH11249968A (ja) * 1998-03-05 1999-09-17 Sanyo Electric Co Ltd ファイル記録方法及びファイルシステム
JP2002358248A (ja) * 2001-06-04 2002-12-13 Pioneer Electronic Corp データ記録装置およびデータ消去装置
JP2003217237A (ja) * 2002-01-21 2003-07-31 Toshiba Corp 磁気ディスク装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029125A (en) * 1989-03-07 1991-07-02 Drexler Technology Corporation Method of reading and writing files on nonerasable storage media
JPH04106643A (ja) * 1990-08-27 1992-04-08 Nec Ibaraki Ltd フロッピィディスクのファイル領域管理方式
JP2888958B2 (ja) * 1990-10-20 1999-05-10 富士通株式会社 部分書き換え可能な記憶媒体におけるファイル管理方式
US5422762A (en) * 1992-09-30 1995-06-06 Hewlett-Packard Company Method and apparatus for optimizing disk performance by locating a file directory on a middle track and distributing the file allocation tables close to clusters referenced in the tables
JP3358795B2 (ja) * 1997-03-27 2002-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション ディスクドライブ装置及びその制御方法
ATE249645T1 (de) * 1999-03-04 2003-09-15 Deka Products Lp Verfahren und anordnung für blockdatenübertragung
JP4106643B2 (ja) 2000-03-27 2008-06-25 トーソー株式会社 折れ戸の接触防止装置
US6675180B2 (en) * 2000-06-06 2004-01-06 Matsushita Electric Industrial Co., Ltd. Data updating apparatus that performs quick restoration processing
US20020103907A1 (en) * 2000-06-20 2002-08-01 Erik Petersen System and method of storing data to a recording medium
US6823417B2 (en) * 2001-10-01 2004-11-23 Hewlett-Packard Development Company, L.P. Memory controller for memory card manages file allocation table
JP3797191B2 (ja) * 2001-10-25 2006-07-12 株式会社日立製作所 情報記録装置
US6675276B2 (en) * 2001-11-13 2004-01-06 Eastman Kodak Company Method for providing extensible dos-fat system structures on one-time programmable media
NO315959B1 (no) * 2002-04-16 2003-11-17 Thin Film Electronics Asa Fremgangsmåter til lagring av data i et ikke-flyktig minne
JP4495899B2 (ja) * 2002-05-29 2010-07-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 接続切替装置およびその接続切替装置を用いたファイルシステム
US7363540B2 (en) * 2002-10-22 2008-04-22 Microsoft Corporation Transaction-safe FAT file system improvements
US7174420B2 (en) 2002-10-22 2007-02-06 Microsoft Corporation Transaction-safe FAT file system
US7181611B2 (en) 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
US20040128269A1 (en) * 2002-12-27 2004-07-01 Milligan Charles A. System and method for managing data through families of inter-related metadata tables
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP4468666B2 (ja) * 2003-08-22 2010-05-26 富士通株式会社 二重書込機能を有する装置およびストレージ制御装置
US8185705B2 (en) * 2003-10-31 2012-05-22 Panasonic Corporation Information recording medium, information recording medium accessing apparatus and accessing method
US20050149493A1 (en) * 2004-01-07 2005-07-07 Kazuhiko Yamashita Data recording apparatus and data recording method
JP4130808B2 (ja) * 2004-01-30 2008-08-06 松下電器産業株式会社 フォーマット方法
JP4515132B2 (ja) * 2004-03-31 2010-07-28 株式会社日立製作所 ストレージシステム、ストレージ装置及びリモートコピー方法
EP1746510A4 (en) * 2004-04-28 2008-08-27 Matsushita Electric Ind Co Ltd NONVOLATILE STORAGE DEVICE AND DATA WRITING METHOD
BRPI0510494B8 (pt) * 2004-07-12 2022-06-28 Kk Toshiba Toshiba Corporation Dispositivo de armazenagem e aparelho hospedeiro
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
JP2006285669A (ja) * 2005-03-31 2006-10-19 Toshiba Corp ホスト機器
US7644092B2 (en) * 2005-05-03 2010-01-05 Kabushiki Kaisha Toshiba System for managing data on memory device using file system
US20060277333A1 (en) * 2005-06-01 2006-12-07 Creative Technology Ltd. Portable data storage device
US7693882B2 (en) * 2005-10-04 2010-04-06 Oracle International Corporation Replicating data across the nodes in a cluster environment
US20070100893A1 (en) * 2005-10-31 2007-05-03 Sigmatel, Inc. System and method for accessing data from a memory device
US7734603B1 (en) * 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element
US7689807B2 (en) * 2006-02-09 2010-03-30 Sigmatel, Inc. Mass storage device, mass storage controller and methods for use therewith
US7650458B2 (en) * 2006-06-23 2010-01-19 Microsoft Corporation Flash memory driver
US7577643B2 (en) * 2006-09-29 2009-08-18 Microsoft Corporation Key phrase extraction from query logs
US7752412B2 (en) * 2006-09-29 2010-07-06 Sandisk Corporation Methods of managing file allocation table information

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764841A (ja) * 1993-08-26 1995-03-10 Fujitsu Ltd 可換記録媒体及びその制御方法
JPH11249968A (ja) * 1998-03-05 1999-09-17 Sanyo Electric Co Ltd ファイル記録方法及びファイルシステム
JPH11242564A (ja) * 1998-10-19 1999-09-07 Fujitsu Ltd 記憶媒体とその制御方法
JP2002358248A (ja) * 2001-06-04 2002-12-13 Pioneer Electronic Corp データ記録装置およびデータ消去装置
JP2003217237A (ja) * 2002-01-21 2003-07-31 Toshiba Corp 磁気ディスク装置

Also Published As

Publication number Publication date
US8364730B2 (en) 2013-01-29
EP2031514A1 (en) 2009-03-04
EP2031514A4 (en) 2010-11-03
CN101449248A (zh) 2009-06-03
US20090132620A1 (en) 2009-05-21
TW200809494A (en) 2008-02-16
WO2007135967A1 (ja) 2007-11-29
JP2007310637A (ja) 2007-11-29
TWI379196B (ja) 2012-12-11
CN101449248B (zh) 2013-07-24

Similar Documents

Publication Publication Date Title
JP4676378B2 (ja) データ記憶装置およびデータ記憶方法
JP4700562B2 (ja) データ記憶装置およびデータ記憶方法
US7039754B2 (en) Detachably mounted removable data storage device
US7472251B2 (en) Data storage apparatus detachably mounted to a host apparatus
US7062618B2 (en) Transferring data between volatile and non-volatile memories based on system parameters using a controller
KR101395778B1 (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
JP4182993B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI420305B (zh) 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法
US20130111118A1 (en) System and method for storing data using a flexible data format
JP2011517789A (ja) 直接実行制御機能とストレージ機能が複合された大容量保存装置
JP2008547068A (ja) 複数個のdmaチャンネルを有するusb−sd保存装置及びその保存方法と記録媒体
US8255656B2 (en) Storage device, memory controller, and data protection method
JP2004295865A (ja) 自動ブーティングシステム及び自動ブーティング方法
JP2003242470A (ja) 外部接続機器及びホスト機器
JP2003241908A (ja) 外部接続機器及びホスト機器
JP3627915B2 (ja) ブートブロックフラッシュメモリ制御回路、およびそれを備えたicメモリカードと半導体記憶装置、並びにブートブロックフラッシュメモリの消去方法
JP4663577B2 (ja) データ記憶装置およびこの初期化方法
JP2008090539A (ja) メモリカード、周辺装置及び主装置
KR100997819B1 (ko) 정보 처리 장치
JP2003050725A (ja) ストレージデバイス制御装置
JP4465746B2 (ja) 記憶装置用アダプタ及びそれを用いた接続方法
TW202001568A (zh) 資料儲存裝置、系統資訊編程方法及系統資訊重建方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080627

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101214

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

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

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

Free format text: PAYMENT UNTIL: 20140204

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4676378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250