JP2005190331A - データ記録方法およびデータ記録装置 - Google Patents
データ記録方法およびデータ記録装置 Download PDFInfo
- Publication number
- JP2005190331A JP2005190331A JP2003433108A JP2003433108A JP2005190331A JP 2005190331 A JP2005190331 A JP 2005190331A JP 2003433108 A JP2003433108 A JP 2003433108A JP 2003433108 A JP2003433108 A JP 2003433108A JP 2005190331 A JP2005190331 A JP 2005190331A
- Authority
- JP
- Japan
- Prior art keywords
- recording
- file
- data
- size
- recorded
- 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
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
【課題】複数枚の不揮発メモリを内蔵した記録媒体では、内部で並列に動作する不揮発メモリの枚数分だけ消去ブロックのサイズが大きくなるため、高速記録のためには、その消去ブロックサイズだけ連続した空き領域にデータを記録しなければならない。
【解決手段】上記のような記録媒体にデータを記録する際に、不揮発メモリの消去ブロックサイズを合計したサイズと、ファイルシステムのデータ管理サイズとの公倍数の値に基づいて、消去ブロックの境界を跨がない空き領域を検索してデータを記録することにより、記録媒体に対して高速記録が可能になる。
【選択図】図3
【解決手段】上記のような記録媒体にデータを記録する際に、不揮発メモリの消去ブロックサイズを合計したサイズと、ファイルシステムのデータ管理サイズとの公倍数の値に基づいて、消去ブロックの境界を跨がない空き領域を検索してデータを記録することにより、記録媒体に対して高速記録が可能になる。
【選択図】図3
Description
本発明は、不揮発メモリ媒体を用いて映像や音声などのデータを記録する方法、および記録する装置に関する。
電気的に記録や消去が可能で、電源を切っても記録されたデータが不揮発なメモリ素子を内蔵した半導体メモリカードが近年普及しつつある。この種の半導体メモリカードに記録や再生を行う装置は、従来のテープ媒体やディスク媒体で必要だった機械的な可動部分が少なくて済むことから、小型・軽量で衝撃にも強い装置を構成できる。しかしながら、映像や音声のように、所定の転送レートを保証しないと映像や音声が途切れるなどの不都合を生じるリアルタイムファイルを記録するには、半導体メモリカード1枚あたりの記憶容量が小さく、また、記録や再生のデータ転送レートが低いために、この用途には不十分である。
そこで、複数の半導体メモリカードを組み合わせて、記憶容量と転送レートの向上を目的とした半導体メモリパック装置が提案されている(例えば、特許文献1参照。)。上記従来の半導体メモリパック装置では、複数枚の半導体メモリカードに対して同時にデータを記録できるため、記録の転送レートを高速化できる。
特開2000−207137号公報
一般に、多くの半導体メモリカードでは内部にフラッシュメモリを使用しており、データ記録の際には、記録前に消去ブロックと呼ばれる一定のサイズのデータが電気的に一括消去される特徴を持っている。ここで、消去ブロックのサイズに満たないデータを記録する場合、一度そのブロックのデータを読み出して保持した後、ブロックのデータを一括消去し、保持していたデータを部分的に更新してから、ブロックに書き戻すことになる。このような動作はリード・モディファイ・ライトと呼ばれ、記録動作が複雑になり、記録の転送レートが低下する原因となる。高い転送レートでデータを記録するには、このような消去ブロックに対する部分的なデータ更新を避けるため、記録するデータのサイズを消去ブロックと同じサイズか、または、その整数倍のサイズにして、さらに記録するアドレスを消去ブロックの先頭に合わせる必要がある。
従来の半導体メモリパック装置では、複数枚の半導体メモリカードに同時にデータを記録するため、半導体メモリカード1枚あたりの消去ブロックのサイズを、さらに複数枚の分だけ積算したサイズでデータを記録することになる。以上のように、半導体メモリカードを複数枚使った装置において、高い転送レートでデータを記録するためには、記録するデータサイズを大きな単位で行う必要がある。
一方で、記録されたデータをファイルとして管理するには、一般にファイルシステムと呼ばれるデータ管理方法が必要である。ファイルシステムは、一般にセクタやクラスタといった所定のデータサイズを単位としてファイルを管理する。しかし、一般にセクタやクラスタのサイズは小さいため、前述のような大きなデータ単位を扱うには、1セクタや1クラスタではサイズが不足することがある。このような場合、ファイルシステムは連続した複数個のセクタや連続した複数個のクラスタを、まとめて上記の装置へ記録する必要がある。
しかしながら、従来の半導体メモリパック装置では、記録データの単位と、ファイルシステムが管理するデータの単位が一致しない場合、種々の課題を有していた。以下、この課題について図9を用いて詳細に説明する。
図9は従来の半導体メモリパック装置における記録領域を示した図である。図9において、901は管理単位を表す。管理単位とはファイルシステムのセクタやクラスタに相当する。902から912までは、いずれも901と同じサイズの管理単位を表している。また、図9(a)において消去ブロック920は、管理単位901から904で構成されており、電気的に一括消去される単位を表している。以下同様に、消去ブロック930は管理単位905から908で構成され、消去ブロック940は管理単位909から912で構成されている。また、図9(b)において、記録領域950はデータの記録時に使用する記録領域を表しており、記録領域950は管理単位903から906で構成されている。以下同様に、記録領域960は管理単位907から910で構成され、図9(c)において、記録領域970は管理単位901から904で構成され、記録領域980は管理単位909から912で構成されている。なお、図9(b)の斜線で示された管理単位901と902、および、図9(c)の管理単位906は、いずれも既にデータが記録済みの状態を表しており、これらの管理単位にはファイルが存在している。
以上のように表された図9を用いて、従来の課題について説明する。図9(a)では、管理単位901から912までが未使用な状態であるとする。この場合、半導体メモリパック装置に対して最も高い転送レートでデータを記録するには、消去ブロックの単位毎に連続アドレスでデータを記録することが望ましい。この理由は前述のように、半導体メモリ媒体のデータが消去ブロック単位で電気的に一括消去されるため、このブロックのサイズに合わせたデータ単位でデータを記録することで、リード・モディファイ・ライトを防止できるからである。さらに、半導体メモリカードの種類によっては、消去ブロック単位で、かつ、連続アドレスでデータ記録すると、半導体メモリカードの内部で記録処理の並列化を行う種類のカードもあり、このような種類の媒体では、さらに高い転送レートでデータが記録されることになる。従って、図9(a)における理想的な記録方法は、管理単位901から904までを合計したサイズのデータを記録単位として、消去ブロック920、930、940の順番に連続して記録することで、高い転送レートが実現される。
しかしながら、図9(b)では管理単位901と902に、既に記録済みのデータがファイルとして存在している。ファイルシステムは管理単位のサイズでファイルを作成することができるため、交換可能な記録媒体では、他の記録装置でこのような小さなファイルが作成されることがある。このような場合、消去ブロックのサイズでデータを記録すると、まず記録領域950にデータを記録し、次に、記録領域960にデータを記録することになる。記録領域950にデータを記録した場合、実際にデータが記録される管理単位903と904だけでなく、既に記録済みの管理単位901と902が同じ消去ブロックに含まれるため、前述のリード・モディファイ・ライトが発生し、記録の転送レートが低下する。さらに、記録領域960にデータを記録する時には、1つ前の記録領域950への記録動作のために、管理単位905と906が記録済みの状態になっている。従って、管理単位907と908に対する記録時にもリード・モディファイ・ライトが発生し、以下、この現象が繰り返されることになる。
このように、データの記録単位を消去ブロックの単位に合わせても、記録を開始するアドレスが、消去ブロックの境界とずれていた場合、リード・モディファイ・ライトが発生し、記録の転送レートが低下する。
また、図9(b)において記録領域950にデータを記録する場合、半導体メモリ媒体の内部では、記録済みの管理単位901と902のデータも、一旦読み出し保持されて、ブロックが一括消去された後に書き戻される。この過程の途中でノイズの混入や電源断などのエラーが発生した場合、既にデータが記録済みだった管理単位901や902のデータも破壊される可能性がある。このように、リード・モディファイ・ライトが発生すると、記録の転送レートが低下するだけでなく、エラーの発生時に、記録済みのデータが破壊される課題がある。
さらに、フラッシュメモリなどを用いた半導体メモリ媒体は書き換え回数が有限であるため、頻繁にリード・モディファイ・ライトが起こるとデータの書き換えが多発して、半導体メモリ媒体の書き換え寿命を縮めることになる。
また、図9(c)では、管理単位906に記録済みのデータが存在している。このような場合、まず記録領域970に消去ブロックサイズと同じサイズのデータを記録し、次にリード・モディファイ・ライトを避けるために、管理単位906を含む消去ブロックにはデータを記録せずに、次の消去ブロックに相当する記録領域980、すなわち、管理単位909から912までの領域にデータを記録する。このような方法を採れば、リード・モディファイ・ライトは発生しないが、次のような課題がある。
図9(c)では、記録済みのデータが存在する管理単位906を避けるために、管理単位905と907と908は、空き領域であるにもかかわらず、記録には使用されなかった。このことは記録領域の無駄使いを意味しており、管理単位905から908のように、部分的に記録済みの管理単位を含んだ消去ブロックが多数存在した場合、いわゆるフラグメント状態となって、高い転送レートでデータを記録するにはこれらの領域を記録に使用できないため、記録媒体の容量を有効に利用することができなくなる。
本発明は、上記の課題に鑑み、前述の半導体メモリパック装置のような不揮発メモリを複数枚内蔵した記録媒体に対して、高速にデータを記録することができるデータ記録方法およびデータ記録装置を提供することを目的とする。
上記課題を解決するために本発明は、データをブロック単位に消去する不揮発メモリを複数内蔵した記録媒体にデータを記録するデータ記録方法であって、記録媒体の記録領域におけるデータ管理単位のサイズをAとし、不揮発メモリの消去のブロック単位のサイズをBとし、記録媒体に内蔵される不揮発メモリの個数をCとし、D=B×Cとし、AとDとの公倍数のうちのいずれかひとつをEとしたときに、サイズがEとなる記録単位が記録媒体の論理アドレスの先頭から連続して複数配置されており、記録媒体の記録領域の空き領域検索開始アドレスを記録単位の開始アドレスの中から指定する開始アドレス指定ステップと、開始アドレスから順番に記録単位毎に空き領域であるかどうかを判定することにより記録可能な記録単位を検索する記録可能領域検索ステップと、記録可能領域検索ステップでみつかった記録可能な記録単位に対して、サイズがEとなるデータを記録する記録ステップとを備えたデータ記録方法としたものである。
また、データ管理単位毎に空き領域であるかどうかを判定することにより記録可能なデータ管理単位を検索する管理サイズ空き領域検索ステップと、記録するファイルを第1のファイルと第2のファイルに分類し、記録するファイルが第1のファイルである場合は開始アドレス指定ステップに進み、記録するファイルが第2のファイルである場合は管理サイズ空き領域検索ステップに進むファイル分類ステップとをさらに備えたデータ記録方法としたものである。
本発明によれば、記録媒体にデータを記録する際に、不揮発メモリの消去ブロックサイズを合計したサイズと、ファイルシステムのデータ管理サイズとの公倍数の値に基づいて、消去ブロックの境界を跨がない空き領域を検索してデータを記録することにより、不揮発メモリを複数内蔵した記録媒体に対して高速にデータを記録することが可能であるという効果がある。
また、本発明によれば、非リアルタイムファイル等についてはデータ管理単位毎に空き領域を検索して記録するために、小さな空き領域が使用されずに残ることなく、記録媒体の容量を有効に利用することができるという効果がある。
以下、本発明の実施の形態について、図面を用いて説明する。
(実施の形態1)
はじめに、図1を用いて実施の形態1における構成を説明する。図1は本発明のデータ記録装置および半導体メモリパック装置の構成を示している。図1において、110はデータの記録を指示するデータ記録装置、120はデータが記録される記録媒体としての半導体メモリパック装置である。データ記録装置110はファイルシステムの演算処理を行う制御手段としてのCPU111と、記録するデータやファイルシステムのソフトウエアおよび演算結果を一時記憶する主記憶112と、半導体メモリパック装置120と接続するためのカードコネクタ113から構成されている。実施の形態1でのファイルシステムは、記録領域を管理するためのデータ管理単位をクラスタとし、そのサイズ(データ管理サイズ)をクラスタサイズとしている。また、半導体メモリパック装置120は、4枚の半導体メモリカード123〜126と、4枚の半導体メモリカードを制御するマルチカードアクセス制御部121と、記録するデータを一時記憶するワークメモリ122から構成されている。半導体メモリカード123〜126は、それぞれ内部に不揮発メモリを備え、この不揮発メモリに対してデータを保存する。
(実施の形態1)
はじめに、図1を用いて実施の形態1における構成を説明する。図1は本発明のデータ記録装置および半導体メモリパック装置の構成を示している。図1において、110はデータの記録を指示するデータ記録装置、120はデータが記録される記録媒体としての半導体メモリパック装置である。データ記録装置110はファイルシステムの演算処理を行う制御手段としてのCPU111と、記録するデータやファイルシステムのソフトウエアおよび演算結果を一時記憶する主記憶112と、半導体メモリパック装置120と接続するためのカードコネクタ113から構成されている。実施の形態1でのファイルシステムは、記録領域を管理するためのデータ管理単位をクラスタとし、そのサイズ(データ管理サイズ)をクラスタサイズとしている。また、半導体メモリパック装置120は、4枚の半導体メモリカード123〜126と、4枚の半導体メモリカードを制御するマルチカードアクセス制御部121と、記録するデータを一時記憶するワークメモリ122から構成されている。半導体メモリカード123〜126は、それぞれ内部に不揮発メモリを備え、この不揮発メモリに対してデータを保存する。
次に、図1と図2を用いて実施の形態1における動作を説明する。図2は図1の半導体メモリパック装置120の連続する論理アドレスに、内蔵する4枚の半導体メモリカード123〜126の論理アドレスをマッピングする方法、および半導体メモリパック装置120の連続する論理アドレスに対して、ファイルシステムのデータ管理単位であるクラスタを割り当てる方法について図示している。論理アドレスのマッピング方法として、半導体メモリパック装置120に内蔵される4枚の半導体メモリカード123〜126を消去ブロックのサイズ(128KB)毎にインタリーブして半導体メモリカードの番号#1〜#4の順番に並べたものに、半導体メモリパック装置120の連続の論理アドレスをマッピングする。さらに半導体メモリパック装置120に内蔵される4枚の半導体メモリカード123〜126は4並列に同時記録動作するものとし、ファイルシステムのデータ管理単位であるクラスタのサイズを32KBとすると、128KB×4並列=512KBと32KBとの公倍数のうち、最小公倍数である512KBの連続アドレス領域がデータ記録単位となる。このとき、前記データ記録単位は16クラスタ(32KB×16=512KB)に相当し、データ記録装置110は、16クラスタ分の連続空き領域を検索してデータを記録する。また、このデータ記録単位は、半導体メモリパック装置の論理アドレスの先頭から連続して複数配置される。したがって、その先頭クラスタアドレスは、消去ブロックの先頭クラスタアドレスと一致するように配置される。なお、ここではデータ管理単位のサイズとして512KBと32KBの最小公倍数を選んだが、公倍数であればいくつでもよい。 以下、実施の形態1の記録動作について説明する。図1のデータ記録装置110において、ファイルシステムはCPU111のソフトウエアとして実行される。ファイルシステムはデータ管理単位であるクラスタのサイズ(32KB)に記録するべきデータを分割する。そして、半導体メモリパック装置120の記録領域からデータ記録単位(512KB)=16クラスタ分(32KB×16)の空き領域を検索して、見つかった空き領域の論理アドレスと16クラスタ分のデータを記録コマンドとともに半導体メモリパック装置120に渡す。
半導体メモリパック装置120はデータ記録装置110から記録コマンドを受け取ると、16クラスタのデータをワークメモリ122に一時記憶する。そして、マルチカードアクセス制御部121は記録コマンドと一緒に指示された半導体メモリパック装置120の論理アドレスを、図2で示したとおり、4枚の半導体メモリカード123〜126の論理アドレスに変換する。最後にマルチカードアクセス制御部121は、変換された論理アドレスに対してワークメモリ122に一時記憶された16クラスタのデータを4枚の半導体メモリカードに分散して4並列に同時記録する。
ここで、実施の形態1の空き領域検索方法について、図1と図3を用いて説明する。まず、図1の半導体メモリパック装置120の記録単位から、直前の記録動作において空き領域を検索した位置の次の記録単位の先頭クラスタアドレスを変数scに代入する(ステップS301)。今回が初めての検索の場合は、半導体メモリパック装置120中の最初の記録単位の先頭クラスタアドレスをscに代入する。次に、scの値を変数pに代入する(ステップS302)。そして、pの位置のクラスタが空きかどうかを判定する(ステップS303)。pの位置のクラスタが空きであれば、pの位置が半導体メモリパック装置120の記録単位の後尾かどうか判定する(ステップS304)。この判定は、scからpまでの大きさと記録単位の大きさ(512KB)とを比較することで可能である。pの位置が記録単位の後尾でなければ、pの値を1クラスタ分だけ加算して、ステップS303に移る。ステップS304において、pの位置が記録単位の後尾であれば、scを先頭とする記録単位中の前クラスタが空き領域であることがわかったので、この記録単位に記録可能であることを通知して(ステップS306)、処理を終了する。
ステップS303において、pの位置のクラスタが空きでなければ、次の記録単位が半導体メモリパック装置120のデータ領域に存在するかどうか判定する(ステップS307)。次の記録単位があれば、scに次の記録単位の先頭クラスタアドレスを代入して(ステップS308)、ステップS302に移る。次の記録単位がなければ、半導体メモリパック装置120に空き領域がないことを通知して(ステップS309)、処理を終了する。
次に、実施の形態1の空き領域検索例を図1と図4を用いて説明する。図4は図1の半導体メモリパック装置120のデータ記録単位(512KB)とファイルシステムのデータ管理単位であるクラスタ(32KB)との割り当てと、ファイルシステムによる空き領域検索の流れを図示している。但し、図4の網掛部403は使用済みクラスタ、空白部は空きクラスタを表し、矢印404〜406は実施の形態1での空き領域検索の流れを表している。
実施の形態1では、まず図4における半導体メモリパック装置の記録単位401の先頭アドレスに相当するクラスタから空き領域の検索を開始する(矢印404)。記録単位401の先頭アドレスは、図2で説明したように零もしくはデータ記録単位512KBの整数倍に位置している。検索の途中で使用済みクラスタ403が見つかると、検索位置を次の記録単位402の先頭クラスタに移す(矢印405)。そして、その先頭クラスタを開始点として空き領域の検索を行い(矢印406)、開始点から16クラスタ分の連続空き領域が見つかれば記録単位402にデータを記録する。図4において、使用済みクラスタ403の次のクラスタから16クラスタ連続した空き領域407が存在するが、実施の形態1ではその空き領域407にはデータは記録されない。
以上、実施の形態1によれば、ファイルシステムがデータを管理する最小単位である1クラスタ(32KB)を記録単位とするのではなく、半導体メモリパック装置に内蔵される4枚の半導体メモリカードの消去ブロックの合計サイズ(512KB)と1クラスタ(32KB)との公倍数である16クラスタ(512KB)を記録単位とし、4枚の半導体メモリカードの消去ブロックの境界を跨らない16クラスタ分の連続空き領域にデータを記録することにより、従来から高速記録の障害となってきたリード・モディファイ・ライトの発生を防止し、結果として半導体メモリカードの書き換え回数を軽減することが可能になる。さらに、連続空き領域を検索する際に使用済みクラスタが見つかった場合には、従来のファイルシステムのようにその使用済みクラスタの次のクラスタから検索するのではなく、次の半導体メモリパックの記録単位の先頭クラスタから検索を開始することにより、効率よく空き領域の検索が行える。
なお、実施の形態1においては、連続空き領域の検索は記録単位毎に行うこととしたが、データ記録装置110から受け取る記録コマンド中の記録するデータサイズに応じて、連続した複数の記録単位が空き領域かどうか、すなわち、記録単位の倍数のサイズ(本実施の形態ではk×512KB(kは1以上の整数))の空き領域を検索するようにしてもよい。このとき、k×512KBのサイズが空き領域でない場合、記録単位の倍数でこれ未満のサイズの空き領域があればそのサイズでデータを記録し、残りのデータについて別の領域を検索してもよいし、k×512KBのサイズだけアドレスを進めた次の記録単位に移って再度空き領域の検索をしてもよい。
なお、実施の形態1において、半導体メモリカードを4枚内蔵するタイプの半導体メモリパック装置を例に説明したが、半導体メモリパック装置に内蔵する半導体メモリカードの枚数を4枚に限定するものではなく、複数枚の半導体メモリカードを内蔵する構成であれば同様に適用することができる。内蔵する半導体メモリカードのすべてが並列動作する必要は無く、例えば、4枚の半導体メモリカードを内蔵して、そのうち2枚ずつが並列動作するのでもよい。また、半導体メモリカードの消去ブロックのサイズが128KBに限定されるものでもなく、クラスタサイズも32KBに限られるものでもない。内蔵する半導体メモリカードの形状に制限はなく、半導体メモリがチップの形状で実装されるものも同一の概念に含まれる。
(実施の形態2)
続いて、図2および図5、図6を用いて実施の形態2における動作を説明する。図2は実施の形態1で説明しているので、その説明はここでは省略する。図5は本発明のデータ記録装置および半導体メモリパック装置の構成を示している。図5において、510はデータの記録を指示するデータ記録装置、520はデータが記録される半導体メモリパック装置である。データ記録装置510はファイルシステムの演算処理を行うCPU511と、記録するデータやファイルシステムのソフトウエアおよび演算結果を一時記憶する主記憶512と、半導体メモリパック装置520と接続するためのカードコネクタ513から構成されている。半導体メモリパック装置520は、4枚の半導体メモリカード523〜526と、4枚の半導体メモリカードを制御するマルチカードアクセス制御部521と、記録するデータを一時記憶するワークメモリ522と、半導体メモリパック装置520の情報を格納しているフラッシュROM527から構成されている。
続いて、図2および図5、図6を用いて実施の形態2における動作を説明する。図2は実施の形態1で説明しているので、その説明はここでは省略する。図5は本発明のデータ記録装置および半導体メモリパック装置の構成を示している。図5において、510はデータの記録を指示するデータ記録装置、520はデータが記録される半導体メモリパック装置である。データ記録装置510はファイルシステムの演算処理を行うCPU511と、記録するデータやファイルシステムのソフトウエアおよび演算結果を一時記憶する主記憶512と、半導体メモリパック装置520と接続するためのカードコネクタ513から構成されている。半導体メモリパック装置520は、4枚の半導体メモリカード523〜526と、4枚の半導体メモリカードを制御するマルチカードアクセス制御部521と、記録するデータを一時記憶するワークメモリ522と、半導体メモリパック装置520の情報を格納しているフラッシュROM527から構成されている。
図6は図5の半導体メモリパック装置520の出荷時にフラッシュROM527に記録された、半導体メモリパック装置520についての情報のフォーマットであり、内蔵している半導体メモリカード523〜526の消去ブロックのサイズ(128KB)と、半導体メモリカード523〜526の枚数(4枚)からなる。
半導体メモリパック装置520がカードコネクタ513に接続されると、データ記録装置510は、半導体メモリパック装置520に内蔵している半導体メモリカード523〜526の消去ブロックサイズとその枚数を取得するためのコマンドを発行する。半導体メモリパック装置520はそのコマンドを受け取ると、指定された情報をフラッシュROM527から読み出してデータ記録装置510に渡す。ここでは、データ記録装置510が半導体メモリパック装置520から得た情報は、半導体メモリカードの消去ブロックサイズ(128KB)と枚数(4枚)とファイルシステムのデータ管理単位(32KB)である。これらの情報から、データ記録装置510は、データ記録単位を128KB×4=512KBと32KBの最小公倍数である512KBと算出する。このデータ記録単位は16クラスタ(32KB×16=512KB)に相当するので、16クラスタ分の連続空き領域を検索してデータを記録する。実施の形態2の記録動作と空き領域検索方法については、実施の形態1と同じであるため説明を省略する。
以上、実施の形態2によれば、半導体メモリパック装置に内蔵される半導体メモリカードの消去ブロックサイズと枚数を、出荷時に半導体メモリパック装置に記録しておくことで、半導体メモリパック装置の構成が実施の形態2と異なる場合、例えば8枚の半導体メモリカードを内蔵するものであったり、内蔵する半導体メモリカードの消去ブロックが16KBであったりする場合にも、その半導体メモリパック装置に最適なデータ記録単位で記録することが可能である。
なお、実施の形態2において、半導体メモリパック装置に内蔵している半導体メモリカードの消去ブロックサイズと枚数を、出荷時にフラッシュROMに格納するとしたが、フラッシュROMに限定するものではなく、マスターブートレコードと呼ばれる記録領域の先頭セクタやマスクROMでもよく、格納する情報も内蔵している半導体メモリカードの消去ブロックサイズと枚数には限らず、その半導体メモリパック装置の最適なデータ記録単位であってもよい。また、内蔵する半導体メモリカードのすべてが並列動作する必要はなく、例えば、4枚の半導体メモリカードを内蔵して、そのうち2枚ずつが並列動作するのでもよい。また、半導体メモリカードの消去ブロックのサイズが128KBに限定されるものでもなく、クラスタサイズも32KBに限られるものではない。内蔵する半導体メモリカードの形状に制限はなく、半導体メモリがチップの形状で実装されるものも同一の概念に含まれる。
(実施の形態3)
最後に、図2および図5、図7、図8を用いて実施の形態3を説明する。図2と図5は実施の形態1および実施の形態2で説明しているので、説明は省略する。図7は、実施の形態1および実施の形態2と同様にして求めた半導体メモリパック装置のデータ記録単位(512KB)と、ファイルシステムのデータ管理単位であるクラスタ(32KB)との割り当てを図示している。但し、網掛部は使用済みクラスタ、空白部は空きクラスタを表している。図8は、実施の形態3の空き領域検索処理のフローチャートである。
最後に、図2および図5、図7、図8を用いて実施の形態3を説明する。図2と図5は実施の形態1および実施の形態2で説明しているので、説明は省略する。図7は、実施の形態1および実施の形態2と同様にして求めた半導体メモリパック装置のデータ記録単位(512KB)と、ファイルシステムのデータ管理単位であるクラスタ(32KB)との割り当てを図示している。但し、網掛部は使用済みクラスタ、空白部は空きクラスタを表している。図8は、実施の形態3の空き領域検索処理のフローチャートである。
図7において、半導体メモリパック装置の記録単位701には使用済みクラスタが存在しており、記録単位(512KB)でのデータ記録ができないため、実施の形態1で述べたように次の記録単位702の先頭クラスタを空き領域検索開始点703として、その開始点から16クラスタ分(32KB×16=512KB)の空き領域の検索を行う。
ところで、テキストファイルなどの非リアルタイムファイルを記録する場合は、前記記録単位(512KB)よりサイズが小さく、映像や音声などのリアルタイムファイルのように高い転送レートで記録する必要がないため、大きなサイズの記録単位で半導体メモリパック装置520に記録する必要性が低い。
そこで、実施の形態3では、図7のように半導体メモリパック装置の記録単位で記録する場合の空き領域検索開始点703とは別に、データ管理単位であるクラスタ単位で記録する場合の空き領域検索開始点704を設ける。そして、記録するファイルのサイズや種類によって、ファイルの記録方法を決定する。つまり、記録するファイルがサイズの大きいファイルもしくはリアルタイムファイルの場合には、空き領域検索開始点703から16クラスタ分の連続した空き領域を検索して、見つかった空き領域に記録単位(512KB)で記録し、記録するファイルがサイズの小さいファイルもしくは非リアルタイムファイルの場合には、空き領域検索開始点704から空き領域を検索して1クラスタずつ記録する。
以下、実施の形態3の空き領域検索方法について、図8を用いて説明する。まず、記録するファイルがリアルタイムファイルかどうかを判定する(ステップS801)。リアルタイムファイルであるかどうかの判断は、アプリケーションがデータ記録の際にファイルシステムに送る記録コマンドを、リアルタイムファイルと非リアルタイムファイルで別のコマンドとする方法や、記録コマンド中に、リアルタイムファイルであることを示すフラグを設ける方法などが考えられる。リアルタイムファイルである場合は、実施の形態1で説明した半導体メモリパック装置の記録単位での空き領域検索方法を行う(ステップS802)。ステップS801において、記録するファイルがリアルタイムファイルでなければ、ファイルシステムが通常行っているクラスタ単位での空き領域検索処理を行う(ステップS803)。
以上、実施の形態3によれば、リアルタイムファイルのような高い転送レートが必要なファイルの記録を高速に行いつつ、16クラスタに満たない空き領域を有効に利用することが可能である。
なお、実施の形態3において、半導体メモリパック装置に対する記録方法を、記録するファイルのサイズ、もしくは記録するファイルがリアルタイムファイルかどうかで決定していたが、それらの情報だけでなく、例えば記録するファイルに要求されている転送レートの値で決定してもよい。また、半導体メモリパック装置に内蔵している半導体メモリカードの消去ブロックサイズと枚数を、出荷時にフラッシュROMに格納するとしたが、フラッシュROMに限定するものではなく、マスターブートレコードと呼ばれる記録領域の先頭セクタやマスクROMでもよく、格納する情報も内蔵している半導体メモリカードの消去ブロックサイズと枚数には限らず、その半導体メモリパック装置の最適なデータ記録単位であってもよい。また、内蔵する半導体メモリカードのすべてが並列動作する必要はなく、例えば、4枚の半導体メモリカードを内蔵して、そのうち2枚ずつが並列動作するのでもよい。また、半導体メモリカードの消去ブロックのサイズが128KBに限定されるものでもなく、クラスタサイズも32KBに限られるものでもない。内蔵する半導体メモリカードの形状に制限はなく、半導体メモリがチップの形状で実装されるものも同一の概念に含まれる。
本発明にかかるデータ記録方法およびデータ記録装置は、半導体メモリカードを複数枚内蔵した半導体メモリパック装置に対して高速にデータを記録することが可能であり、映像や音声等を半導体メモリパック装置に記録するのに有用である。
110 データ記録装置
111 CPU
112 主記憶
113 カードコネクタ
120 半導体メモリパック装置
121 マルチカードアクセス制御部
122 ワークメモリ
123 半導体メモリカード#1
124 半導体メモリカード#2
125 半導体メモリカード#3
126 半導体メモリカード#4
201 半導体メモリカード#1の消去ブロック
202 半導体メモリカード#2の消去ブロック
203 半導体メモリカード#3の消去ブロック
204 半導体メモリカード#4の消去ブロック
205 半導体メモリパック装置のクラスタ
401、402 半導体メモリパック装置の記録単位
403 使用済みクラスタ
404〜406 空き領域検索の流れ
407 16クラスタ連続空き領域
510 データ記録装置
511 CPU
512 主記憶
513 カードコネクタ
520 半導体メモリパック装置
521 マルチカードアクセス制御部
522 ワークメモリ
523 半導体メモリカード#1
524 半導体メモリカード#2
525 半導体メモリカード#3
526 半導体メモリカード#4
527 フラッシュROM
701、702 半導体メモリパック装置の記録単位
703 半導体メモリパック装置の記録単位で記録する場合の空き領域検索開始点
704 クラスタ単位で記録する場合の空き領域検索開始点
901〜912 ファイルシステムのデータ管理単位
920、930、940 半導体メモリパック装置の消去ブロック
950、960、970、980 半導体メモリパック装置の記録領域
111 CPU
112 主記憶
113 カードコネクタ
120 半導体メモリパック装置
121 マルチカードアクセス制御部
122 ワークメモリ
123 半導体メモリカード#1
124 半導体メモリカード#2
125 半導体メモリカード#3
126 半導体メモリカード#4
201 半導体メモリカード#1の消去ブロック
202 半導体メモリカード#2の消去ブロック
203 半導体メモリカード#3の消去ブロック
204 半導体メモリカード#4の消去ブロック
205 半導体メモリパック装置のクラスタ
401、402 半導体メモリパック装置の記録単位
403 使用済みクラスタ
404〜406 空き領域検索の流れ
407 16クラスタ連続空き領域
510 データ記録装置
511 CPU
512 主記憶
513 カードコネクタ
520 半導体メモリパック装置
521 マルチカードアクセス制御部
522 ワークメモリ
523 半導体メモリカード#1
524 半導体メモリカード#2
525 半導体メモリカード#3
526 半導体メモリカード#4
527 フラッシュROM
701、702 半導体メモリパック装置の記録単位
703 半導体メモリパック装置の記録単位で記録する場合の空き領域検索開始点
704 クラスタ単位で記録する場合の空き領域検索開始点
901〜912 ファイルシステムのデータ管理単位
920、930、940 半導体メモリパック装置の消去ブロック
950、960、970、980 半導体メモリパック装置の記録領域
Claims (11)
- データをブロック単位に消去する不揮発メモリを複数内蔵した記録媒体にデータを記録するデータ記録方法であって、
前記記録媒体の記録領域におけるデータ管理単位のサイズをAとし、前記不揮発メモリの消去のブロック単位のサイズをBとし、前記記録媒体に内蔵される前記不揮発メモリの個数をCとし、D=B×Cとし、AとDとの公倍数のうちのいずれかひとつをEとしたときに、サイズがEとなる記録単位が前記記録媒体の論理アドレスの先頭から連続して複数配置されており、
前記記録媒体の記録領域の空き領域検索開始アドレスを前記記録単位の開始アドレスの中から指定する開始アドレス指定ステップと、
前記開始アドレスから順番に前記記録単位毎に空き領域であるかどうかを判定することにより記録可能な記録単位を検索する記録可能領域検索ステップと、
前記記録可能領域検索ステップでみつかった前記記録可能な記録単位に対して、サイズがEとなるデータを記録する記録ステップとを備えたデータ記録方法。 - 前記記録可能領域検索ステップは、前記開始アドレスからEの倍数のサイズが空き領域であるかどうか判定する記録可能領域判定ステップと、
前記記録可能領域判定ステップで前記開始アドレスからEの倍数のサイズが空き領域である場合、前記空き領域が記録可能な記録単位であることを通知する記録許可通知ステップと、
前記記録可能領域判定ステップで前記開始アドレスからEの倍数のサイズが空き領域でない場合、アドレスをEの倍数のサイズだけ進めた次の記録単位が存在するかどうか判定する記録領域有無判定ステップと、
前記記録領域有無判定ステップで前記次の記録単位が存在する場合、前記開始アドレスからEの倍数のサイズだけ進めた次の記録単位に移って前記記録可能領域判定ステップに進む開始アドレス変更ステップと、
前記記録領域有無判定ステップで前記次の記録単位が存在しない場合、空き領域が存在しないことを通知する記録不可通知ステップとを備えた請求項1記載のデータ記録方法。 - 前記データ管理単位毎に空き領域であるかどうかを判定することにより記録可能なデータ管理単位を検索する管理サイズ空き領域検索ステップと、
記録するファイルを第1のファイルと第2のファイルに分類し、前記記録するファイルが前記第1のファイルである場合は前記開始アドレス指定ステップに進み、前記前記記録するファイルが前記第2のファイルである場合は前記管理サイズ空き領域検索ステップに進むファイル分類ステップとをさらに備えた請求項1乃至2のいずれかに記載のデータ記録方法。 - 前記ファイル分類ステップは、前記記録するファイルが所定のサイズ以上の場合は前記第1のファイルとし、前記記録するファイルが所定のサイズ未満の場合は前記第2のファイルとする請求項3記載のデータ記録方法。
- 前記ファイル分類ステップは、前記記録するファイルがリアルタイムファイルの場合は前記第1のファイルとし、前記記録するファイルが非リアルタイムファイルの場合は前記第2のファイルとする請求項3記載のデータ記録方法。
- 前記不揮発メモリの消去のブロック単位Bと前記不揮発メモリの個数Cが前記記録媒体に格納されており、
前記記録媒体からBとCを読み出して前記記録単位のサイズEを算出する請求項1乃至5のいずれかに記載のデータ記録方法。 - データをブロック単位に消去する不揮発メモリを複数内蔵した記録媒体にデータを記録するデータ記録装置であって、
データをファイルとして管理するファイルシステムによって前期記録媒体へのデータの記録を制御する制御手段を備え、
前記記録媒体の記録領域におけるデータ管理単位のサイズをAとし、前記不揮発メモリの消去のブロック単位のサイズをBとし、前記不揮発メモリの個数をCとし、D=B×Cとし、AとDとの公倍数のうちのいずれかひとつをEとしたときに、
前記制御手段は、前記記録媒体上の連続アドレスに対して、離散的なアドレスであるE×i(iは0以上の整数)のアドレスの位置を開始点として連続したアドレスで空いている領域を検索し、前記開始点からサイズがEの倍数となる空き領域が見つかれば、前記空き領域にデータを記録するデータ記録装置。 - 前記制御手段は、記録するファイルを第1のファイルと第2のファイルに分類し、
前記第1のファイルを記録する場合には、前記記録媒体上の連続アドレスに対して離散的なアドレスであるE×iのアドレスの位置を開始点として連続したアドレスで空いている領域を検索し、前記開始点からサイズがEの倍数となる空き領域が見つかれば、前記空き領域にデータの記録を行い、
前記第2のファイルを記録する場合には、前記記録媒体上の連続アドレスに対して離散的なアドレスであるA×j(jは0以上の整数)のアドレスの位置を開始点として空いている領域を検索し、前記開始点からサイズが少なくともAとなる空き領域が見つかれば、前記空き領域にデータの記録を行う請求項7記載のデータ記録装置。 - 前記制御手段は、前記記録するファイルが所定のサイズ以上の場合には前記第1のファイルとし、前記記録するファイルが所定のサイズ未満の場合には前記第2のファイルとする請求項8記載のデータ記録装置。
- 前記制御手段は、前記記録するファイルがリアルタイムファイルの場合には前記第1のファイルとし、前記記録するファイルが非リアルタイムファイルの場合には前記第2のファイルとする請求項8記載のデータ記録装置。
- 前記不揮発メモリの消去のブロック単位Bと前記不揮発メモリの個数Cが前記記録媒体に格納されており、
前記制御手段は、前記記録媒体からBとCを読み出して前記記録単位のサイズEを算出する請求項7乃至請求項10のいずれかに記載のデータ記録装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003433108A JP2005190331A (ja) | 2003-12-26 | 2003-12-26 | データ記録方法およびデータ記録装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003433108A JP2005190331A (ja) | 2003-12-26 | 2003-12-26 | データ記録方法およびデータ記録装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005190331A true JP2005190331A (ja) | 2005-07-14 |
Family
ID=34790592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003433108A Pending JP2005190331A (ja) | 2003-12-26 | 2003-12-26 | データ記録方法およびデータ記録装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005190331A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100711864B1 (ko) | 2005-07-18 | 2007-04-25 | 엘지전자 주식회사 | 광디스크 장치에서의 녹화 데이터 기록 위치 선택 방법 |
JP2008112285A (ja) * | 2006-10-30 | 2008-05-15 | Toshiba Corp | 不揮発性メモリシステム |
-
2003
- 2003-12-26 JP JP2003433108A patent/JP2005190331A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100711864B1 (ko) | 2005-07-18 | 2007-04-25 | 엘지전자 주식회사 | 광디스크 장치에서의 녹화 데이터 기록 위치 선택 방법 |
JP2008112285A (ja) * | 2006-10-30 | 2008-05-15 | Toshiba Corp | 不揮発性メモリシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4004468B2 (ja) | 大きなページをサポートするようにさせるための方法およびシステム | |
JP4287433B2 (ja) | ファイル記録装置 | |
JP4736593B2 (ja) | データ記憶装置、データ記録方法、記録及び/又は再生システム、並びに、電子機器 | |
US7526600B2 (en) | Data management device and method for flash memory | |
US7647470B2 (en) | Memory device and controlling method for elongating the life of nonvolatile memory | |
JP4977703B2 (ja) | 予定再生操作を伴う不揮発性メモリ | |
WO2007000862A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 | |
JP5166118B2 (ja) | 半導体メモリの制御方法 | |
US20100228905A1 (en) | Memory controller, memory card, and nonvolatile memory system | |
US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
JP2009032305A (ja) | 情報記録装置及びその制御方法 | |
KR100367295B1 (ko) | 광디스크 구동장치의 지역정보 기록장치 및 기록방법 | |
JP4130808B2 (ja) | フォーマット方法 | |
JP2009175877A (ja) | 半導体メモリ | |
JP4308780B2 (ja) | 半導体メモリ装置、メモリコントローラ及びデータ記録方法 | |
JP2012521032A (ja) | Ssdコントローラおよびssdコントローラの動作方法 | |
JP2008020937A (ja) | 不揮発性記憶装置 | |
JP2005078378A (ja) | データ記憶装置及び不揮発性メモリに対するデータ書き込み方法 | |
JP2006252137A (ja) | 不揮発性記憶装置の最適化方法 | |
JP2005190331A (ja) | データ記録方法およびデータ記録装置 | |
JP2008262452A (ja) | 記録デバイスのキャッシュ方法および記録装置 | |
JP5395163B2 (ja) | メモリ管理装置及びメモリ領域設定方法 | |
US20080172522A1 (en) | Information processing apparatus and incremental write type file management software | |
JP2005092677A (ja) | メモリ装置 | |
JPH0773098A (ja) | データ書き込み方法 |