JP2008262452A - 記録デバイスのキャッシュ方法および記録装置 - Google Patents

記録デバイスのキャッシュ方法および記録装置 Download PDF

Info

Publication number
JP2008262452A
JP2008262452A JP2007105607A JP2007105607A JP2008262452A JP 2008262452 A JP2008262452 A JP 2008262452A JP 2007105607 A JP2007105607 A JP 2007105607A JP 2007105607 A JP2007105607 A JP 2007105607A JP 2008262452 A JP2008262452 A JP 2008262452A
Authority
JP
Japan
Prior art keywords
data
recording
memory
cache memory
erase block
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
JP2007105607A
Other languages
English (en)
Inventor
Toshihiro Tanaka
俊啓 田中
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2007105607A priority Critical patent/JP2008262452A/ja
Publication of JP2008262452A publication Critical patent/JP2008262452A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】記録速度を向上させるとともに、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際しても管理情報とユーザデータの記録情報の不整合を起こさないようにする。
【解決手段】FAT等のシステム管理情報は消去ブロックサイズの小さい第1のフラッシュメモリに記録し、ユーザデータは消去ブロックサイズの大きい第2のフラッシュメモリに記録する際のキャッシュメモリのキャッシュ方法であって、第1と第2のそれぞれのフラッシュメモリに異なるキャッシュメモリおよびデータ保持時間を設定し、キャッシュメモリに格納された記録データがデータ保持時間以内に消去ブロックサイズに到達するか、最初にキャッシュメモリに記録データが書き込まれてからの経過時間がデータ保持時間を過ぎた場合に、キャッシュメモリに格納された記録データを対応する第1または第2のフラッシュメモリへ記録する。
【選択図】図13

Description

本発明は、ファイルシステムを介してデータを記録する際の記録デバイスのキャッシュ方法とその記録装置に関する。
メモリカードやハードディスク、光ディスクなどの記録媒体では、データはセクタと呼ばれる単位(例えば512バイト)でリード/ライトされる。これらの記録媒体をパーソナルコンピュータ(以下、「PC」と略記する)や携帯機器に接続してファイルを記録させる際には、ファイルシステムにより管理領域を除くデータはクラスタと呼ばれる単位(例えば4Kバイト、32Kバイト等)でリード/ライトされる。
ファイルシステムの代表的なものには、FAT(File Allocation Table)がある。FATとは、ユーザデータ領域上のクラスタを管理するためのテーブルであり、ファイルの次のデータが存在するクラスタ番号が記録されている。ファイルシステムの動作は複雑であるため、PCや携帯機器にオペレーティングシステム(以下、「OS」と略記する)を搭載して、ソフトウェアとしてファイルシステムを実装するのが一般的である。
半導体メモリカードは、一般に1個以上のフラッシュメモリで構成される。フラッシュメモリはメモリセルと呼ばれる最小単位でデータを保持する。一般に、一定数のメモリセルが1個のページを形成し、一定数のページが1個の物理ブロックを形成する。データの消去動作は、フラッシュメモリの特性に基づいて、消去ブロックと呼ばれる物理ブロックに相当する単位(例えば64Kバイト、128Kバイト等)で行われる。
フラッシュメモリ上で物理的に記録可能なブロックの最小単位(記録可能な最小ブロック)は、物理的に消去可能なブロックの最小単位である消去ブロックより小さい(例えば16Kバイト等)ことがある。しかしながら、最近のメモリカードの大容量化に伴い、管理領域と検索効率の向上などの理由から消去時のデータの退避は記録可能な最小ブロックでは行えない場合が多い。
フラッシュメモリは、その特性上、記録されているデータの上から新たなデータを上書きするというオーバーライト動作ができない。そのため、データの書き込みには消去動作を伴うことになる。しかしながら、フラッシュメモリの消去動作はリード/ライト動作と比較して莫大な時間を要する。このような理由により、書き込むデータの目標とする論理アドレスに対応する物理ブロックは、消去動作を必要としない物理ブロックに対応付けが変更されたうえで書き込まれ、消去動作は後で行うのが一般的である。
このような記録動作が繰り返されると、メモリカード上に消去ブロックにまたがったデータや消去ブロックに満たないデータの数が増加する。これにより、空き領域の検索処理が増加したりして、その結果として、ライト処理時間が継続的に増加するという現象が起こる。
このような課題は以下の用途に半導体メモリカードを用いる場合に顕著となる。昨今、半導体メモリカードは、放送・業務用カメラレコーダ等の品質と信頼性が要求される用途に利用されつつある。このような用途においては、記録レートの保証は重要なこととなる。
しかしながら、カメラレコーダで撮影した映像および音声をAVファイルとしてメモリカードに記録する際、編集作業でPCのファイルシステムを介して記録された経歴のある半導体メモリカードでは、上述した記録パフォーマンスの劣化、すなわち、転送レートの低下が発生し、リアルタイム記録が保証できなくなってしまう。
このような記録パフォーマンスの劣化対策として、従来からいくつかの構成が提案されている。
例えば、発明者は、記録データサイズが消去ブロックサイズの整数倍になるように、キャッシュする方法を提案している(例えば、特許文献1参照)。
一方、メモリに記録するデータは大きく2種類に分類される。1つは、ビデオファイルなどのユーザデータであり、他の1つは上記FAT等のシステム管理情報である。この2種類のデータは、大きさと書き換え頻度が全く異なる。すなわち、ユーザデータは大きなサイズのデータであり、一度記録すると比較的長時間変更されない。一方、システム管理情報は、サイズは小さく、ユーザデータが記録、編集、消去等が行われるたびに頻繁に書き換えられる。これらの性質の異なるデータを同じ消去ブロックを持つメモリに記録するのは効率が悪い。
そこで、FATなどの小サイズの頻繁に書き換えが発生するシステム管理情報を記録するには消去ブロックサイズの小さなフラッシュメモリを使用し、ビデオなどの連続データで比較的サイズの大きなユーザデータを記録するには消去ブロックサイズの大きなフラッシュメモリを使用することにより、特にFAT等の小サイズの情報の記録を高速に行うようにしている(例えば、特許文献2参照)。
特開2005−322074号公報 特開2006−228138号公報
しかしながら、特許文献1および特許文献2においては、消去ブロックのサイズや記録データのサイズの関係を適切にすることにより、記録の高速化や、管理情報とユーザデータとの整合性をとる技術について開示されているのみで、消去ブロックのサイズとキャッシュ時間に関する考察はなされていなかった。
このために、消去ブロックのサイズが小さい管理情報記録領域に対するキャッシュ時間が長すぎたり、逆に消去ブロックのサイズの大きいユーザデータ領域に対するキャッシュ時間は短すぎたりしていた。このため、記録の高速化が十分にできなかったり、記録の高速化はできても、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際して、管理情報とユーザデータの記録情報との不整合が発生するという課題があった。
本発明は、上記課題を解決するためになされたもので、記録速度を向上させるとともに、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際しても管理情報とユーザデータの記録情報の不整合を起こさないようにした記録デバイスのキャッシュ方法とその記録装置を提供することを目的とする。
上述したような課題を解決するために、本発明の記録デバイスのキャッシュ方法は、第1のフラッシュメモリと第1のフラッシュメモリよりも消去ブロックサイズの大きい第2のフラッシュメモリとから構成された記録デバイスへメインメモリ上に確保されたキャッシュメモリ領域を経由して記録データを記録する際のキャッシュ方法であって、第1および第2のフラッシュメモリそれぞれの少なくとも消去ブロックサイズ、割付けられたアドレスの境界情報、キャッシュメモリのデータ保持時間とを取得する工程と、第1および第2のフラッシュメモリそれぞれに対して、少なくとも消去ブロックサイズのキャッシュメモリ領域をメインメモリ上にそれぞれ独立に確保する工程と、記録データの記録アドレスから第1または第2のフラッシュメモリのいずれに記録するかを判定する工程と、判定結果に従って記録データを対応するキャッシュメモリに格納する工程と、キャッシュメモリに格納された記録データがデータ保持時間以内に消去ブロックサイズに到達するか、最初にキャッシュメモリに記録データが書き込まれてからの経過時間がデータ保持時間を過ぎた場合に、キャッシュメモリに格納された記録データを対応する第1または第2のフラッシュメモリへ記録する工程とを有することを特徴とする。これにより、記録速度を向上させるとともに、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際しても管理情報とユーザデータの記録情報の不整合を起こすことがない。
また本発明の記録デバイスのキャッシュ方法は、システム管理情報を第1のフラッシュメモリに記録し、ユーザデータを第2のフラッシュメモリに記録するようにしてもよい。これにより、システム管理情報とユーザデータのそれぞれの性質に適合したフラッシュメモリへの記録が可能となる。
また本発明の記録デバイスのキャッシュ方法は、データを記憶したデータ記憶装置からデータを記録デバイスへコピーするに際し、記録デバイスの最小記録単位をW、最小記録単位のデータをデータ記憶装置から読み出す読み出し時間をTr、消去ブロックサイズをEとすると、キャッシュメモリのデータ保持時間Thは、Tr*(E/W−1)よりも大きくしてもよい。これにより、データ記憶装置から記録デバイスへ連続してデータをコピーする際に、消去ブロックサイズで記録ができるので記録速度が向上する。
また本発明の記録デバイスのキャッシュ方法は、データを記憶したデータ記憶装置からデータを記録デバイスへコピーするに際し、記録デバイスの最小記録単位をW、最小記録単位のデータをデータ記憶装置から読み出す読み出し時間をTr、消去ブロックサイズをEとすると、ユーザデータを記録するキャッシュメモリのデータ保持時間Thは、Tr*(E/W−1)よりも大きくしてもよい。これにより、ユーザデータは所定時間キャッシュして記録速度が向上するとともに、システム管理情報はキャッシュ時間を短くして速やかにメモリカードに記録することにより、予期せぬ電源断やメモリカードの挿抜が発生した場合でも確実に記録できる。
本発明の記録装置は、キャッシュメモリ領域を確保するためのメインメモリと、第1のフラッシュメモリと第1のフラッシュメモリよりも消去ブロックサイズの大きい第2のフラッシュメモリとから構成された記録デバイスへ記録データを記録する記録装置であって、第1および第2のフラッシュメモリそれぞれの少なくとも消去ブロックサイズ、割付けられたアドレスの境界情報、キャッシュメモリのデータ保持時間とを取得する取得手段と、第1および第2のフラッシュメモリそれぞれに対して、少なくとも消去ブロックサイズのキャッシュメモリ領域をメインメモリ上にそれぞれ独立に確保するメモリ確保手段と、記録データの記録アドレスから第1または第2のフラッシュメモリのいずれに記録するかを判定する判定手段と、判定結果に従って記録データを対応するキャッシュメモリに格納する格納手段と、キャッシュメモリに格納された記録データがデータ保持時間以内に消去ブロックサイズに到達するか、最初にキャッシュメモリに記録データが書き込まれてからの経過時間がデータ保持時間を過ぎた場合に、キャッシュメモリに格納された記録データを対応する第1または第2のフラッシュメモリへ記録する記録手段とを有することを特徴とする。
本発明によれば、記録速度を向上させるとともに、事故等による予期せぬ電源断や、記録中のメモリカードの挿抜に際しても管理情報とユーザデータの記録情報の不整合を起こさないようにした記録デバイスのキャッシュ方法とその記録装置を提供することができる。
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
(実施の形態)
本発明の実施の形態におけるデータ記録装置100の構成を図1に示す。データ記録装置100は、PC102により構成される。PC102は、少なくともメモリカード101を装填するためのメモリカードスロット103を有する。但し、メモリカードスロット103の代わりに外付けドライブ104を接続してもよい。PC102は、ディスプレイ105や入力装置106を有するがこれらはなくてもよい。
図2は、本発明の実施の形態におけるデータ記録装置100のブロック構成図の一例である。図2に示すように、少なくともCPU201、メモリ202、プログラムやOSを格納するハードディスク(以下、「HDD」と略記する)等の記憶デバイス203、それらを接続する内部バス204、メモリカード101を接続するためのバスコントローラ205から構成される。メモリカード101の接続形態としては、例えばATA(AT Attachment)、USB(Universal Serial Bus)がある。また多くの場合、データ記録装置100は、ディスプレイ105を接続するためのグラフィックコントローラ207や、入力装置106を接続するための入力デバイスコントローラ206を備える。
OSとしては、例えばWindows(登録商標)やMacOS(登録商標)などの汎用OSを用いることができる。
次に、メモリカード101に対するファイルのリード/ライト動作を図3を参照しながら説明する。図3は、本発明の実施の形態におけるメモリカードのリード/ライト動作のソフトウェア構造を示している。アプリケーションプログラム300がファイルのリード/ライトを行う際、カーネル空間プログラムであるファイルシステムドライバ301がアプリケーションプログラム300からのI/O要求を処理する。
ファイルシステムドライバ301はファイルシステムフォーマットに記録するための独自のI/O要求をデバイスドライバ302に発行する。デバイスドライバ302がバスコントローラ205を介してメモリカードコントローラ304にコマンドとデータを送ることで、記録媒体(メモリカード101)へのリード/ライト動作が実行される。
デバイスドライバ302とメモリカードコントローラ304との間のデータの受け渡しの方法は、DMA(Direct Memory Access)とPIO(Programmed I/O)がある。高速性が要求されるデータのリード/ライトにはDMAを用いる。DMAは、データ記録装置100上のメモリ202にメモリカードコントローラ304が直接アクセスすることでデータの転送を行う。デバイスドライバ302は、メモリ202上のアドレスとメモリカード101上のアドレス、およびデータ長などの転送情報のみをメモリカードコントローラ304に指定する。メモリカードコントローラ304が転送を行うため、CPU201の処理能力を有効に活用できる。
データ記録装置100において、OS303のプログラム、デバイスドライバ302のプログラム、ファイルシステムドライバ301のプログラム、アプリケーションプログラム300は記憶デバイス203に記録されている。データ記録装置100の電源が起動されると、記憶デバイス203に格納されたOS303が起動する。デバイスドライバ302のプログラム、ファイルシステムドライバ301のプログラムは、OS303の起動時もしくはメモリカード101の装填時にメモリ202上にロードされる。デバイスドライバ302およびファイルシステムドライバ301は、メモリカード101に対してファイル入出力を行うのに必要な機能を有する。但しこれらデバイスドライバ302およびファイルシステムドライバ301は、メモリカード101だけでなく、ハードディスクや光ディスクなどの記録媒体へのファイル入出力に用いてもよい。
ユーザがメモリカード101をデータ記録装置100に接続すると、OS303はプラグアンドプレイ機能によりメモリカード101を認識し、デバイスドライバ302をメモリ202上にロードする。ファイルシステムドライバ301は、デバイスドライバ302を経由してメモリカード101上のファイルフォーマットを認識し、論理ドライブとしてマウントする。ユーザはOS303上でアプリケーションプログラム300を起動して入力装置106を操作することにより、メモリカード101にデータを読み書きすることができる。
次に、上記OSに使用されるファイルシステムフォーマットの一例として、FATフォーマットを図4を参照しながら説明する。
メモリカードやハードディスク等の物理ドライブ400は、一般的に、領域の先頭に置かれるマスターブートレコード402と論理ドライブ401(一般的には、1個以上であるが、ここでは1個として説明する)とから構成される。1個の論理ドライブ401は、1種類のファイルシステムでフォーマットされる。FATフォーマットの場合、領域の先頭からパーティションブートセクタ403、ファイルアロケーションテーブル(FAT)(#1)404、ファイルアロケーションテーブル(FAT)(#2)404b、ルートディレクトリエントリ405というシステム領域が順次配置され、システム領域の後にユーザデータ領域406が配置される。
パーティションブートセクタ403には、パーティションのセクタ数やクラスタサイズといったパーティションを起動するのに必要な情報が記録される。ファイルアロケーションテーブル(FAT)(#1)404には、ファイルの記録情報が配置される。ルートディレクトリエントリ405は、ルートディレクトリに置かれているファイルまたはフォルダの情報がエントリとして記録される。エントリの情報には、ファイルのデータが置かれる先頭のクラスタ番号が含まれる。ユーザデータ領域406には、ファイルのデータ自体が置かれる。
次に、メモリカード101の内部構成を図5を参照しながら説明する。図5は、本発明の実施の形態におけるメモリカード101の内部構成を示すブロック図である。メモリカード101は、メモリカードコントローラ304、メモリ情報記憶部501、フラッシュメモリコントローラ502、第1のフラッシュメモリ503、第2のフラッシュメモリ504を備えている。
図5において、メモリカードコントローラ304は、メモリカード101全体を制御するためのブロックである。フラッシュメモリコントローラ502は後述するフラッシュメモリを選択して、データを書き込んだり、読み出したりするブロックである。第1のフラッシュメモリ503は消去ブロックのサイズが小さい(例えば、4Kバイト)フラッシュメモリであり、主にFAT等のシステム管理情報を記録するためのメモリである。第2のフラッシュメモリ504は消去ブロックのサイズが大きい(例えば、128Kバイト)フラッシュメモリであり、主にユーザデータを記録するためのメモリである。上記、2つのフラッシュメモリは実際には、複数のメモリチップから構成されている。そして、メモリ情報記憶部501は、上記2つのフラッシュメモリそれぞれの、消去ブロックのサイズ、記憶容量、2つの消去ブロックのアドレス境界情報、キャッシュ時のデータ保持時間等が予め記憶されているROM等である。ここで、キャッシュ時のデータ保持時間については後程詳しく説明する。フラッシュメモリは2種類に限定されるものではなく、もっと多くてもよい。そのときは、すべてのフラッシュメモリに関する上記情報がこのメモリ情報記憶部501に記憶されることになる。
ここで、図6を参照しながら第1のフラッシュメモリ503と第2のフラッシュメモリ504のアドレス空間の割付けについて説明しておく。上記2つのフラッシュメモリは1つのアドレス空間を構成しており、FAT等のシステム管理領域はアドレス番号が小さい第1のフラッシュメモリ503に割り当てられる。一方、ユーザデータはアドレス番号の大きい第2のフラッシュメモリ504に割り当てられる。なお、このアドレス空間の割付けは、これに限定されるものではなく、ファイルシステムの種類によっては、システム管理領域をアドレス番号の大きい第1のフラッシュメモリ503に割り当て、ユーザデータをアドレス番号の小さい第2のフラッシュメモリ504に割り当てる場合もあることはもちろんである。
以上のように構成されたメモリカード101へのデータの書き込み動作について再び図5を用いて説明する。メモリカードコントローラ304は、ホストインタフェースを介して、ホストからの書き込みコマンドを受けると、ホストから送られてくる消去ブロック単位のデータと書き込みアドレスをフラッシュメモリコントローラ502へ転送する。フラッシュメモリコントローラ502は、データの書き込みアドレスを基に、第1のフラッシュメモリ503か第2のフラッシュメモリ504のどちらに書き込むべきデータであるかを判断し、データの転送、およびデータの書き込みを行う。例えば、書き込みアドレスがFAT等のシステム管理領域のアドレスであれば、第1のフラッシュメモリ503を選択し、所定のアドレスにデータの書き込みを行う。また、書き込みアドレスがユーザデータ領域のアドレスであれば、第2のフラッシュメモリ504を選択し、所定のアドレスにデータの書き込みを行う。
以上のように、データサイズの小さいシステム管理情報が書き込まれる領域には、消去ブロックサイズが小さいフラッシュメモリを用い、また、データサイズが大きいユーザデータが書き込まれる領域には、消去ブロックサイズの大きいフラッシュメモリを用いる。これによって、メモリカード101への書き込み速度が向上するとともに、電源断やメモリカードの抜き差し等の不測の事態が発生した場合でも、システム管理情報とユーザデータの不整合を極力防ぐことができる。
本発明の実施の形態のデバイスドライバ302によるメモリカード101へのライト処理700について図7〜図10を参照しながら説明する。図7は、本発明の実施の形態における初期化処理600のフローチャートである。ステップS601では、メモリカード101の挿入時に、デバイスドライバ302がコマンドを発行してメモリカード101のメモリ情報記憶部501に格納されている第1および第2の2つのフラッシュメモリの消去ブロックサイズ、記録容量、メモリ空間でのアドレスの境界情報等を読み込む。次に、ステップS602でメモリ202上にライト処理用のキャッシュメモリ領域を確保する。このキャッシュメモリのサイズは上記メモリ情報記憶部501から読み出した消去ブロックサイズとする。以上の初期化処理600により、図8のライト処理700を行える状態となる。
図8は、本発明の実施の形態におけるライト処理700のフローチャートである。説明を簡単にするために、図8では、キャッシュ時のデータ保持時間に制限がない場合を示している。ステップS701でライト要求(後述する第2のライト要求)があるか否かを判断し、ライト要求があれば(Yesの場合)、キャッシュメモリへクラスタ単位でデータを書き込む(ステップS702)。ライト要求がなければ(Noの場合)終了する。次に、キャッシュメモリ内に書き込まれたデータサイズが消去ブロックサイズに到達したか否かを判定する(ステップS703)。ステップS703で消去ブロックサイズに到達したと判定されれば(Yesの場合)、キャッシュメモリ内の全データをメモリカード101へ記録し(ステップS704)、ステップS701へ戻って次のライト要求を待つ。ステップS703でキャッシュメモリ内のデータが消去ブロックサイズに達していない場合(Noの場合)も、同じくステップS701へ戻って次のライト要求を待つ。このように、メモリカード101への記録は必ず消去ブロック単位で実行するので、リードモディファイライト等の余分な動作が不要となり高速記録が可能となる。また、メモリカード101上に消去ブロック未満のデータが細切れで記録されて検索に時間がかかることもない。
図9は、本発明の実施の形態におけるメモリ202上のキャッシュメモリの領域を示した図である。本実施の形態においては、消去ブロックサイズの異なる第1のフラッシュメモリ503と第2のフラッシュメモリ504が存在するので、それぞれのフラッシュメモリ毎に別々のキャッシュメモリ領域463、464をOSメモリ空間460において、カーネル空間461上に確保する。このキャッシュメモリ領域463、464は、メモリカード101に記録するデータを一時的に格納するためのものであり、少なくとも消去ブロックサイズの連続した領域としてメモリ202上に確保される。この例では、消去ブロックサイズをそれぞれ4Kバイト、128Kバイトとしている。
図10は、本発明の実施の形態におけるファイル310がメモリカード101に記録される様子を模式的に示した図である。図10において、第1のフラッシュメモリ503の消去ブロック(#1)331の消去ブロックサイズ(#1)321と第2のフラッシュメモリ504の消去ブロック(#2)332の消去ブロックサイズ(#2)322および第1のフラッシュメモリ503と第2のフラッシュメモリ504とのアドレス空間上の領域境界情報323は、前述したようにメモリ情報記憶部501に記録されている。それぞれのメモリ領域への記録は、記録するデータサイズと頻度が異なるもののその記録方法は同様であるので、ここでは第2のフラッシュメモリ504への記録(ユーザデータの記録)を例にして説明する。
アプリケーションプログラム300は、ファイル310をメモリカード101に記録するためのライト要求(以下、このライト要求を第1のライト要求と呼ぶ)121を実行する。ファイルシステムドライバ301は、ファイルをクラスタ312(例えば、32Kバイト)の単位で記録する。ファイルシステムドライバ301は、ファイル310を記録するために必要なクラスタ312を、新たないくつかのライト要求(以下、このライト要求を第2のライト要求と呼ぶ)122としてデバイスドライバ302に送信する。なお、図10の例は、4個のクラスタのデータ313で消去ブロック(#2)332(128Kバイト)を構成し、メモリカード101へ記録する場合を示している。
第2のライト要求122を受けたデバイスドライバ302は、ライト処理700を開始する。ライト処理700では、前述したように、デバイスドライバ302は、ファイルデータをクラスタ312単位のデータ313毎にキャッシュメモリ領域464へ一旦格納する。そして、キャッシュメモリ領域464に格納されたキャッシュデータ314が消去ブロック(#2)332のサイズになった(4個のデータ313が格納された)時点で、メモリカード101へ記録する。このようにしてすべての記録予定データを消去ブロック(#2)332単位のデータにしてから、メモリカード101へ書き込むと、書き込み動作が終了する。
次に、HDD等の記憶デバイスからメモリカードへファイルをコピーする場合を例にしてキャッシュメモリの効果とキャッシュ時のデータ保持時間の制限について説明する。図11は、本発明の実施の形態における記憶デバイスに蓄積されているファイルをキャッシュメモリを経由してメモリカードへ記録する際のデータの経路を模式的に示した図である。図11において、すでに説明したものには同様の符号を付して説明は省略する。ファイル310は、記憶デバイス203からクラスタ単位のデータ313毎に読み出される。データ313に付した番号1〜4は読み出されるクラスタ番号を示す。1個のデータ313を記憶デバイス203から読み出すのに要する時間をTrとする。この時間Trは、使用する記憶デバイス203の種類やその性能、使用OS、記録処理を実際に実行するソフトウェアの構成等で決まるものである。キャッシュメモリ領域464はメインメモリ202上に確保されており、消去ブロックサイズ(128Kバイト)の容量を持っている。クラスタ(32Kバイト:図面中Wと記す)単位に読み出されたデータ313が一時的に格納され、4個の連続するクラスタのデータが読み出されるとキャッシュメモリ領域464は満杯になるので、このキャッシュデータ314はメモリカード101へ転送記録される。
図12に、本発明の実施の形態におけるFAT等のシステム管理情報を記録する第1のフラッシュメモリ503とユーザデータを記録する第2のフラッシュメモリ504の各種パラメータの例を比較して示す。記録速度Sは、メモリカードへデータを記録する際の1sec当たりのデータ量である。最小記録単位Wは、メモリカードへ記録する最小の単位であり、システム管理情報はセクタ単位(512B)であり、ユーザデータはクラスタ単位(32KB)である。これはまた、記憶デバイスからメモリカードへファイルをコピーする際のデータの読み出し単位でもある。また、キャッシュメモリへの最大書き込み回数Nは、消去ブロックサイズEを最小記録単位Wで割った値である。キャッシュメモリのデータ保持時間の閾値Thは、最初のデータがキャッシュメモリへ書き込まれてからメモリカードへ記録するまでの最大経過時間である。この閾値Thは、最小記録単位Wのデータを連続して消去ブロックサイズまでキャッシュメモリへ書き込むのに要する最小時間(N−1)*Trよりは大きい必要がある。消去ブロックサイズのデータの記録時間Tewは、キャッシュメモリが満杯になった後、メモリカードへ記録する際の時間であり、消去ブロックサイズEをメモリの記録速度Sで割って求められる。最後の、消去ブロックのコピーに要する時間Tcは、記憶デバイスから最小記録単位W毎に消去ブロックサイズのデータを読み出す時間N*Trとキャッシュメモリのデータをメモリカードへ記録する時間の和である。また、キャッシュしない場合のコピー時間は、最小記録単位WのデータをN回別々にメモリカードへ記録する必要があり、この場合のコピー時間Tcは(Tew+Tr)*Nとなる。
図12に示すように、システム管理情報は、セクタ512B単位で記憶デバイスから読み出され、第1のフラッシュメモリの消去ブロックは4KBであるために、キャッシュメモリに8回の書き込みが行われるとメモリカードへ書き込まれる。この場合は、キャッシュしない場合のコピー時間が(3.9ms+T1)*8に対して、キャッシュする場合は、3.9ms+T1*8となる。T1が3.9msよりも十分小さい場合は大幅な高速化が図られる。
同様に、ユーザデータは、クラスタ32KB単位で記憶デバイスから読み出され、第2のフラッシュメモリの消去ブロックは128KBであるために、キャッシュメモリに4回の書き込みが行われるとメモリカードに書き込まれる。この場合は、キャッシュしない場合のコピー時間が(12.5ms+T2)*8に対して、キャッシュする場合は、12.5ms+T2*8となり高速化が図られる。T2が12.5msよりも十分小さい場合は大幅な高速化が図られる。
次に、キャッシュのデータ保持時間に制限を設け、システム管理情報とユーザデータを記録する2つのメモリにおいてそれぞれ異なるデータ保持時間の制限を設定した場合の動作を説明する。すなわち、消去ブロックサイズの小さい第1のフラッシュメモリ503に対するキャッシュメモリ領域463の閾値Th1と、消去ブロックサイズの大きい第2のフラッシュメモリ504に対するキャッシュメモリ領域464の閾値Th2とをそれぞれ独立に設定する。そして、このデータ保持時間以上に時間が経過するとキャッシュメモリが満杯になる前にキャッシュメモリの内容をメモリカードに記録するものである。
具体的には、2つのメモリに割り当てられたアドレスの境界に基づいて、キャッシュのデータ保持時間の閾値を決定するものである。こうすることにより、サイズが小さく、頻繁に書き換えが発生するシステム管理情報を記録する領域と、ユーザデータのように、比較的データ長が長く、あまり頻繁に書き換えが起こらないデータを記録する領域で、それぞれ最適なデータ保持時間を設定できる。
図13は、本発明の実施の形態におけるキャッシュメモリのデータ保持時間の閾値Thを2つのメモリで別々に設定した場合のメモリカードの記録動作を示すフローチャートである。図8と同じ働きのステップは同じ符号を付して説明は省略する。ステップS701でライト要求があると、記録すべきデータがシステム管理情報かユーザデータかを判定する(ステップS705)。管理情報と判定されるとセクタ単位でキャッシュメモリへ書き込み(ステップS702A)、消去ブロック単位か否かの判定(ステップS703A)の後、ステップS706Aで最近の管理情報のライト要求終了からの経過時間が閾値Th1より大きいか否かが判定される。経過時間が閾値Th1より大きい場合(Yesの場合)には、ステップS704Aでライト処理を実行してメモリカード101のシステム管理領域(第1のフラッシュメモリ503)にデータを記録する。一方、経過時間が閾値Th1よりも小さい場合(Noの場合)は、引き続き経過時間の監視を続けるとともに、ステップS701に戻って次のライト要求を待つ。
ステップS705で記録すべきデータがユーザデータと判定されると、クラスタ単位でキャッシュメモリへ書き込み(ステップS702B)、消去ブロック単位か否かの判定(ステップS703B)の後、ステップS706Bで最近のユーザデータのライト要求終了からの経過時間が閾値Th2より大きいか否かが判定される。経過時間が閾値Th2より大きい場合(Yesの場合)には、ステップS704Bでライト処理を実行してメモリカード101のユーザデータ領域(第2のフラッシュメモリ504)にデータを記録する。一方、経過時間が閾値Th2よりも小さい場合(Noの場合)は、引き続き経過時間の監視を続けるとともに、ステップS701に戻って次のライト要求を待つ。ライト要求がない場合には、経過時間によりメモリカードへ記録する(ステップS707)。つまり、経過時間が閾値Th1より大きい場合には、メモリカード101のシステム管理領域(第1のフラッシュメモリ503)にキャッシュメモリのデータを記録し、経過時間が閾値Th2より大きい場合には、メモリカード101のユーザデータ領域(第2のフラッシュメモリ504)にキャッシュメモリのデータを記録する。
次に、図14を参照しながら、キャッシュメモリの保持時間制限を設けた効果を説明する。図14は、ファイルA340の後にしばらく時間を空けてファイルB350が記憶デバイスからメモリカードへコピーされる場合を示している。図14(a)に示すように、ファイルA340はクラスタ1〜クラスタ6の6個の連続クラスタから構成されており、ファイルB350はクラスタ7〜クラスタ14の8個の連続クラスタから構成されているものとする。また、消去ブロックは図のような配置とする。図14(b)に示すように、各クラスタのデータは時間Trをかけて順番に読み出され、キャッシュメモリへ格納後に、メモリカード101に記録される。クラスタ1〜クラスタ4は連続して読み出されるためにTr*4でキャッシュメモリは一杯になり、メモリカードに記録される。その後も、クラスタ5、クラスタ6はキャッシュメモリに格納されるが、その後しばらくファイルデータがキャッシュメモリに書き込まれない。キャッシュの保持時間に制限Thがある場合は、図14(c)に示すように、クラスタ5が格納されて時間Thが経過すると、キャッシュメモリは満杯にならなくても消去ブロック単位でメモリカードに転送記録される。
一方、キャッシュの保持時間に制限がない場合は、図14(d)に示すように、クラスタ6を格納した後、さらに2つのクラスタ7,8が記憶デバイスから読み出されてキャッシュメモリを満杯にするまでメモリカードへの記録は実行されない。すなわち、キャッシュ保持時間に制限がある場合に比較して、同じデータがメモリカードへ記録されるまでの時間はさらにTdだけ余分にかかることになる。
このように、本実施の形態のキャッシュ方法によれば、記録データの特性に応じて、消去ブロックサイズを変えるとともに、キャッシュのデータ保持時間を変えることにより、記録速度を向上させることができる。また、ファイルデータが途中で途切れた場合でも、所定の時間が経過するとキャッシュメモリ内のデータをメモリカードへ記録することにより、記録中の電源断やカードが抜かれてもキャッシュメモリに長時間たまっていたために、メモリカードに記録されない等の不具合が軽減される。また、FAT等の管理データとユーザデータでそれぞれに最適なキャッシュ時間を設定できるので、上記のような不具合が発生した場合でも、管理データとユーザデータの不整合の起こる確率も大幅に低減できる。
本実施の形態では、メモリカード101を別のメモリカード101’に差し替えた場合、消去ブロックサイズを可変とすることが可能である。メモリ関連情報は、メモリカード上のメモリ情報記憶部に記憶されているので、このデータを読み出すことにより、どんなメモリカードにも対応可能である。
ファイルを記録するアプリケーションは、データ記録装置のOS上で動作するものであれば、利用することができる。アプリケーションプログラム300がファイルシステムドライバ301の処理やデバイスドライバ302の処理を包含する構成も可能である。また、ユーザ空間とカーネル空間の処理を区別しないOS上でも、本発明を実施できる。
FATファイルシステムを例にとって説明したが、ファイルをクラスタのような一定のサイズに分割して記録するものであれば、他のファイルシステムにも適用できる。クラスタの境界と消去ブロックの境界が一致する場合を例にとって説明したが、それらが一致しない場合や消去ブロック未満の書き込みを行う場合にも有効である。例えば半導体メモリカードに対するリアルタイム記録の保証が必要なく、消去ブロック未満の書き込みを行う場合を仮定する。この場合でも図12の消去ブロックサイズEで書き込む場合の記録速度Sより、E/2(Mは自然数)のサイズで2回書き込む場合の転送速度Sの方が小さくなるというフラッシュメモリの特性のため、消去ブロックのコピー時間Tcはキャッシュありの方が高速となる。
本実施の形態では、図12のように管理情報、ユーザデータのキャッシュ保持時間をともに(N−1)*Trより大きい値に設定する例を示したが、重要な管理情報を記録する際には、管理情報の保持時間を上記の値以下にしても有効である。
本実施の形態では、図1のようなデータ記録装置100に適用する例を示したが、OSが搭載されたデータ記録装置であれば、この形態に限るものではない。
本実施の形態では半導体メモリカードに適用する例を説明したが、半導体メモリカード以外の記録デバイスの場合でも、オーバーライト動作ができず、記録の際に消去動作が必要となるような記録デバイスに適用することが可能である。
本発明は、例えば、ファイルシステムを介してフラッシュメモリ、ハードディスク、光ディスク等の記録デバイスへデータを記録する記録装置に利用することが可能である。
本発明の実施の形態におけるデータ記録装置の構成を示す図 同実施の形態におけるデータ記録装置のブロック構成図 同実施の形態におけるメモリカードのリード/ライト動作のソフトウェア構造を示す図 同実施の形態におけるファイルシステムフォーマットの一例としてのFATフォーマットを説明した図 同実施の形態におけるメモリカードの内部構成を示すブロック図 同実施の形態におけるメモリカードの第1のフラッシュメモリと第2のフラッシュメモリのアドレス空間の割付けについて説明した図 同実施の形態における初期化処理のフローチャート 同実施の形態におけるライト処理のフローチャート 同実施の形態におけるメインメモリ上のキャッシュメモリの領域を示した図 同実施の形態におけるファイルがメモリカードに記録される様子を模式的に示した図 同実施の形態における記憶デバイスに蓄積されているファイルをキャッシュメモリを経由してメモリカードへ記録する際のデータの経路を模式的に示した図 同実施の形態における第1のフラッシュメモリと第2のフラッシュメモリの各種パラメータの比較例を示した図 同実施の形態におけるキャッシュメモリのデータ保持時間の閾値Thを2つのメモリで別々に設定した場合のメモリカードの記録動作を示すフローチャート 同実施の形態におけるキャッシュメモリにデータ保持時間の制限を設けた効果を説明した図
符号の説明
100 データ記録装置
101 メモリカード
102 PC(パーソナルコンピュータ)
103 メモリカードスロット
104 外付けドライブ
105 ディスプレイ
106 入力装置
201 CPU
202 メモリ
203 記憶デバイス
204 内部バス
205 バスコントローラ
206 入力デバイスコントローラ
207 グラフィックコントローラ
300 アプリケーションプログラム
301 ファイルシステムドライバ
302 デバイスドライバ
303 OS(オペレーティングシステム)
304 メモリカードコントローラ
310 ファイル
311 システム領域
312 クラスタ
313 データ
314 キャッシュデータ
321 消去ブロックサイズ(#1)(第1のフラッシュメモリ)
322 消去ブロックサイズ(#2)(第2のフラッシュメモリ)
323 領域境界情報
331 消去ブロック(#1)(第1のフラッシュメモリ)
332 消去ブロック(#2)(第2のフラッシュメモリ)
340 ファイルA
350 ファイルB
400 物理ドライブ
401 論理ドライブ
402 マスターブートレコード
403 パーティションブートセクタ
404 ファイルアロケーションテーブル(FAT)(#1)
404b ファイルアロケーションテーブル(FAT)(#2)
405 ルートディレクトリエントリ
406 ユーザデータ領域
460 OSメモリ空間
461 カーネル空間
462 ユーザ空間
463 キャッシュメモリ領域(第1のフラッシュメモリ)
464 キャッシュメモリ領域(第2のフラッシュメモリ)
501 メモリ情報記憶部
502 フラッシュメモリコントローラ
503 第1のフラッシュメモリ
504 第2のフラッシュメモリ

Claims (5)

  1. 第1のフラッシュメモリと前記第1のフラッシュメモリよりも消去ブロックサイズの大きい第2のフラッシュメモリとから構成された記録デバイスへメインメモリ上に確保されたキャッシュメモリ領域を経由して記録データを記録する際のキャッシュ方法であって、
    前記第1および第2のフラッシュメモリそれぞれの少なくとも消去ブロックサイズ、割付けられたアドレスの境界情報、キャッシュメモリのデータ保持時間とを取得する工程と、
    前記第1および第2のフラッシュメモリそれぞれに対して、少なくとも消去ブロックサイズのキャッシュメモリ領域を前記メインメモリ上にそれぞれ独立に確保する工程と、
    前記記録データの記録アドレスから前記第1または第2のフラッシュメモリのいずれに記録するかを判定する工程と、
    前記判定結果に従って前記記録データを対応する前記キャッシュメモリに格納する工程と、
    前記キャッシュメモリに格納された前記記録データが前記データ保持時間以内に消去ブロックサイズに到達するか、最初に前記キャッシュメモリに記録データが書き込まれてからの経過時間が前記データ保持時間を過ぎた場合に、前記キャッシュメモリに格納された記録データを対応する前記第1または第2のフラッシュメモリへ記録する工程と
    を有することを特徴とする記録デバイスのキャッシュ方法。
  2. システム管理情報を前記第1のフラッシュメモリに記録し、ユーザデータを前記第2のフラッシュメモリに記録することを特徴とする請求項1記載の記録デバイスのキャッシュ方法。
  3. データを記憶したデータ記憶装置から前記データを前記記録デバイスへコピーするに際し、前記記録デバイスの最小記録単位をW、最小記録単位のデータを前記データ記憶装置から読み出す読み出し時間をTr、前記消去ブロックサイズをEとすると、前記キャッシュメモリの前記データ保持時間Thは、Tr*(E/W−1)よりも大きいことを特徴とする請求項1記載の記録デバイスのキャッシュ方法。
  4. データを記憶したデータ記憶装置から前記データを前記記録デバイスへコピーするに際し、前記記録デバイスの最小記録単位をW、最小記録単位のデータを前記データ記憶装置から読み出す読み出し時間をTr、前記消去ブロックサイズをEとすると、前記ユーザデータを記録するキャッシュメモリの前記データ保持時間Thは、Tr*(E/W−1)よりも大きいことを特徴とする請求項2記載の記録デバイスのキャッシュ方法。
  5. キャッシュメモリ領域を確保するためのメインメモリと、
    第1のフラッシュメモリと前記第1のフラッシュメモリよりも消去ブロックサイズの大きい第2のフラッシュメモリとから構成された記録デバイスへ記録データを記録する記録装置であって、
    前記第1および第2のフラッシュメモリそれぞれの少なくとも消去ブロックサイズ、割付けられたアドレスの境界情報、キャッシュメモリのデータ保持時間とを取得する取得手段と、
    前記第1および第2のフラッシュメモリそれぞれに対して、少なくとも消去ブロックサイズのキャッシュメモリ領域を前記メインメモリ上にそれぞれ独立に確保するメモリ確保手段と、
    前記記録データの記録アドレスから前記第1または第2のフラッシュメモリのいずれに記録するかを判定する判定手段と、
    前記判定結果に従って前記記録データを対応する前記キャッシュメモリに格納する格納手段と、
    前記キャッシュメモリに格納された前記記録データが前記データ保持時間以内に消去ブロックサイズに到達するか、最初に前記キャッシュメモリに記録データが書き込まれてからの経過時間が前記データ保持時間を過ぎた場合に、前記キャッシュメモリに格納された記録データを対応する前記第1または第2のフラッシュメモリへ記録する記録手段と
    を有することを特徴とする記録装置。
JP2007105607A 2007-04-13 2007-04-13 記録デバイスのキャッシュ方法および記録装置 Pending JP2008262452A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007105607A JP2008262452A (ja) 2007-04-13 2007-04-13 記録デバイスのキャッシュ方法および記録装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007105607A JP2008262452A (ja) 2007-04-13 2007-04-13 記録デバイスのキャッシュ方法および記録装置

Publications (1)

Publication Number Publication Date
JP2008262452A true JP2008262452A (ja) 2008-10-30

Family

ID=39984869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007105607A Pending JP2008262452A (ja) 2007-04-13 2007-04-13 記録デバイスのキャッシュ方法および記録装置

Country Status (1)

Country Link
JP (1) JP2008262452A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503927A (ja) * 2013-01-31 2016-02-08 株式会社日立製作所 ストレージシステム及びキャッシュコントロール方法
US10209916B2 (en) 2016-06-10 2019-02-19 Fujitsu Connected Technologies Limited Device and method to divide and download content data
CN111061683A (zh) * 2019-12-30 2020-04-24 成都定为电子技术有限公司 一种高速存储和操作数据流的方法与装置
WO2021230061A1 (ja) * 2020-05-11 2021-11-18 ソニーグループ株式会社 情報処理装置、情報処理方法およびプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503927A (ja) * 2013-01-31 2016-02-08 株式会社日立製作所 ストレージシステム及びキャッシュコントロール方法
US10209916B2 (en) 2016-06-10 2019-02-19 Fujitsu Connected Technologies Limited Device and method to divide and download content data
CN111061683A (zh) * 2019-12-30 2020-04-24 成都定为电子技术有限公司 一种高速存储和操作数据流的方法与装置
CN111061683B (zh) * 2019-12-30 2023-03-21 成都定为电子技术有限公司 一种高速存储和操作数据流的方法与装置
WO2021230061A1 (ja) * 2020-05-11 2021-11-18 ソニーグループ株式会社 情報処理装置、情報処理方法およびプログラム
US11869539B2 (en) 2020-05-11 2024-01-09 Sony Group Corporation Information processing device and information processing method

Similar Documents

Publication Publication Date Title
EP2631916B1 (en) Data deletion method and apparatus
JP4238514B2 (ja) データ記憶装置
US8489850B2 (en) Memory apparatus and memory control method
US7191308B2 (en) Memory device with preread data management
TWI409630B (zh) 記憶體設備,記憶體控制方法,及非暫態電腦可讀式媒體
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
US20090282187A1 (en) Flash memory device capable of preventing read disturbance
JP2009048613A (ja) ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
WO2017088185A1 (zh) 一种存储设备存储数据的方法及存储设备
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
US20110208898A1 (en) Storage device, computing system, and data management method
KR20150035560A (ko) 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭
KR20140042458A (ko) 스토리지 시스템의 파일 관리 장치, 파일 관리 방법
CN110674056B (zh) 一种垃圾回收方法及装置
JP6975202B2 (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
JP2010211618A (ja) 半導体記憶装置
JP4130808B2 (ja) フォーマット方法
JP2009032305A (ja) 情報記録装置及びその制御方法
JP2008262452A (ja) 記録デバイスのキャッシュ方法および記録装置
EP2381354A2 (en) Data recording device
JP2000181784A (ja) 書き換え可能な不揮発性記憶装置
JP5515218B2 (ja) データアクセス方法およびデータアクセス装置
JP7435470B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP4219299B2 (ja) 記録デバイスのキャッシュ方法及びデータ記録装置
JP2008134777A (ja) ファイル割当テーブルのキャッシュ方法