JP3992960B2 - 記録装置及びプログラム - Google Patents
記録装置及びプログラム Download PDFInfo
- Publication number
- JP3992960B2 JP3992960B2 JP2001327430A JP2001327430A JP3992960B2 JP 3992960 B2 JP3992960 B2 JP 3992960B2 JP 2001327430 A JP2001327430 A JP 2001327430A JP 2001327430 A JP2001327430 A JP 2001327430A JP 3992960 B2 JP3992960 B2 JP 3992960B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- written
- recording
- writing
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Read Only Memory (AREA)
Description
【発明の属する利用分野】
本発明は、データを記録するための記録装置に関し、特に、フラッシュメモリ等の記録媒体にデータを記録するための記録装置に関する。
【0002】
【従来の技術】
音楽データや映像データを取り扱う携帯機器の記録装置では、▲1▼データの書き換えが可能である、▲2▼携帯性が高い、▲3▼電池等によるバックアップが必要ない等の理由から、フラッシュメモリ等の記録媒体を用いるのが一般的である。
【0003】
しかしながら、現状のフラッシュメモリによると、データ書き込みの際に待ち時間が生じるという問題があった。その理由は、書き込み対象であるデータを記録装置内のバッファへ転送するのに必要な時間よりも、このようにバッファに転送されたデータを当該バッファからフラッシュメモリへ書き込むのに必要な時間の方が大幅に長いためである。
【0004】
そこで、特開2000−132982号公報には、複数のフラッシュメモリを備えた記録装置が開示されている。このような記録装置によれば、複数のフラッシュメモリに対して並列にデータ書き込みを行うことができるため、待ち時間が生じるという上記問題は発生しない。
【0005】
【発明が解決しようとする課題】
ところで、一般に、フラッシュメモリへのデータ書き込み単位はセクタと呼ばれ、フラッシュメモリ上のデータ消去(後述する)単位はブロックと呼ばれる。すなわち、図9(a)に示すように、フラッシュメモリ内のデータは、32個のセクタからなるブロックという単位で管理されている(以下、セクタのデータ長は512バイト、ブロックのデータ長は16キロバイトとして説明する)。
【0006】
また、フラッシュメモリには、一方向のデータ書き換えしかできない、すなわち、データの値を1から0へ(或いは0から1へ)書き換えることはできないという特徴がある。従って、データ書き込みを行うには、その書き込み先となる領域内のデータの値を全て1(或いは0)に変換しておく必要がある(以下、この変換処理を「消去処理」という。また、この消去処理が完了している領域を「消去済領域」、完了していない領域を「未消去領域」という)。
【0007】
以上の事情から、図9(b)に示すブロックA内のデータ0〜15を書き換える場合は、まず、図9(c)に示すように、書き換える必要のないデータ16〜31を一旦フラッシュメモリF1からバッファBに読み出す。そして、このようにバッファBに読み出したデータ16〜31を、図9(d)に示すように別のフラッシュメモリF2の消去済領域Eに書き直した後、上記ブロックAの領域について消去処理を行う。
【0008】
上記一連の処理(すなわち、書き換える必要のないデータ16〜31が当該書き換え処理に巻き込まれないようにするための処理)は巻き込み退避処理と呼ばれ、フラッシュメモリへの書き込み速度を低下させる大きな要因となっている。なお、図9(d)に示す書き換え後データ0〜15は、外部から当該記録装置に渡されるようになっているが、この点については、ここでは詳しい説明を省略する。
【0009】
ここで、上記したように、特開2000−132982号公報に開示される記録装置によれば、複数のフラッシュメモリに対して並列にデータ書き込みを行うことができるため、待ち時間が生じるという上記問題は発生しない。しかしながら、このように複数のフラッシュメモリに対して並列にデータ書き込みを行うと、データ消去の際に巻き込み退避処理の発生する頻度が高くなるという課題があった。
【0010】
すなわち、ある音楽データM1をフラッシュメモリに書き込む場合、そのデータサイズが(フラッシュメモリの1ブロックのサイズ)×(フラッシュメモリの個数)の整数倍でないときは、図10に示すように、フラッシュメモリF1〜F4のそれぞれの最終ブロック(後述する)B1〜B4に空き領域が発生する。その後、当該フラッシュメモリF1〜F4に別の音楽データM2を書き込む場合、この音楽データM2は上記最終ブロックB1〜B4の空き領域から書き込まれることになる結果、別個の音楽データM1・M2が同一ブロック内に存在することになる。従って、この状態で音楽データM1の全部を消去する必要が生じた場合は、最終ブロックB1〜B4に書き込まれた音楽データM2を退避させなければならない。
【0011】
なお、上記最終ブロックとは、書き込み対象であるデータが最後に書き込まれることになるブロックをいう。すなわち、図6に示すように、m個のフラッシュメモリに対して並列にデータ書き込みを行うと、一点鎖線より左にハッチングで示すブロックには空き領域が発生しないが、一点鎖線より右にハッチングで示すブロックには空き領域が発生する可能性がある。このように、空き領域が発生する可能性のあるブロックは、書き込み対象であるデータが最後に書き込まれることになるブロックであることから、これらブロックを特に「最終ブロック」と呼ぶことにする。
【0012】
本発明は、上記従来の事情に基づいて提案されたものであって、複数のフラッシュメモリに対して並列にデータ書き込みを行う記録装置において巻き込み退避処理の発生する頻度を低下させることを目的とする。
【0013】
【課題を解決するための手段】
本発明は、上記目的を達成するために以下の手段を採用している。すなわち、本発明は、図1に示すように、消去処理が完了している記録領域に対してデータ書き込みを行い、かつ、複数の記録領域からなる所定のブロック単位で一括してデ−タ消去を行う複数の記録媒体21・22・23・24に対し、外部から書き込み要求されたデータを並列に書き込む記録装置1を前提としている。
【0014】
ここで、上記外部から書き込み要求された全データのサイズをq、上記記録媒体の数をm、上記ブロックのサイズをpとした場合、アドレス管理制御部42は、まず、上記外部から書き込み要求された全データのサイズqを上記ブロックのサイズpで除してzm+w+y(z:0≦zの整数,w:0≦w<mの整数,y:0≦y<1)なる商を得る。そして、zmブロック分のデータをm個の記録媒体に対して並列に書き込み、その後、(q−zmp)分のデータをw+1(但し、y=0のときはw)個の記録媒体に対して書き込むように制御する。
【0015】
例えば、アドレス管理制御部42は、図8(a)に示すように、上記(q−zmp)分のデータをw+1個の記録媒体に対して並列に書き込むように制御することができる。このようにすれば、空き領域の生じるブロックの数は、上記従来技術を適用した場合と比べて少なくなる。これによって、巻き込み退避処理の発生する頻度が低下することになるのはいうまでもない。
【0016】
本発明では、図8(b)に示すように、上記(q−zmp)分のデータを書き込むに際しては、yブロック分のデータを1個の記録媒体に書き込む処理をw+1個の記録媒体に対して並列に実行し、その後、(1−y)ブロック分のデータを1個の記録媒体に書き込む処理をw個の記録媒体に対して並列に実行するように制御する。このようにすれば、空き領域の生じるブロックは多くても1個となるため、巻き込み退避処理の発生する頻度が低下する。
【0017】
あるいは、図8(c)に示すように、上記(q−zmp)分のデータを書き込むに際しては、w+1(但し、y=0のときはw)個の記録媒体に書き込む処理を、前記w+1個の記録媒体に対して直列に書き込むように制御するようにしてもよい。この制御方法は、書き込み要求先となる記録領域が属するブロック内に「書き換えが必要でないデータ」が存在する場合、特に有効である。すなわち、このような場合、アドレス管理制御部42は、上記書き換えが必要でないデータと当該書き込み要求されたデータとの総和を上記(q−zmp)分のデータとみなして制御するようになっている。
【0018】
【発明の実施の形態】
図1は、本発明を適用した記録装置のブロック図であり、以下その構成を説明する。なお、以下の説明では、セクタのデータ長は512バイト、ブロックのデータ長は16キロバイトであることを前提にする。
【0019】
まず、入出力制御部41は、データの書き込み・読み出し・消去等の処理要求を外部から受けると、当該処理の開始命令をアドレス管理制御部42に出すとともに、以下のデータ入出力制御を行う。
【0020】
すなわち、データの書き込み要求を受けた入出力制御部41は、外部から入力されたデータを複数のバッファ31・32・33・34に512バイト単位で順次書き込む。一方、データの読み出しの要求を受けた入出力制御部41は、複数のバッファ31・32・33・34から512バイト単位で順次データを読み出して外部に出力する。
【0021】
また、アドレス管理制御部42は、上記入出力制御部41からの処理開始命令に応じ、複数のフラッシュメモリ21・22・23・24と複数のバッファ31・32・33・34との間でのデータ転送の制御と、複数のフラッシュメモリ21・22・23・24に対するデータ消去の制御と、複数のフラッシュメモリ21・22・23・24に書き込まれているデータの管理とを行う(詳細は後述する)。
【0022】
更に、セレクタ43は、上記アドレス管理制御部42からの接続切り替え信号に応じ、複数のフラッシュメモリ21・22・23・24と複数のバッファ31・32・33・34との間のデータバスの接続を切り替える。
【0023】
ここで、上記アドレス管理制御部42が行うデータ書き込み制御方法は、以下の2パターンに大別される。すなわち、一つは、未だデータの書き込まれていない論理アドレス領域に対してデータ書き込み要求を受けた場合の制御方法(以下「第1のデータ書き込み制御方法」という)であり、もう一つは、既にデータの書き込まれている論理アドレス領域に対してデータ書き込み要求を受けた場合の制御方法(以下「第2のデータ書き込み制御方法」という)である。
【0024】
以下、これらデータ書き込み制御方法を詳細に説明する。
〔第1のデータ書き込み制御方法〕
まず、データの書き込まれていない論理アドレス領域に対してデータ書き込み要求を受けた場合、上記従来と同様、4個のフラッシュメモリ21・22・23・24に対して並列にデータ書き込みを行っていく。ただし、本発明では、当該書き込み対象であるデータのサイズによって、図2(a)〜(c)に示すように、フラッシュメモリ21・22・23・24それぞれの最終ブロックへの書き込み制御方法が異なる。
【0025】
例えば、書き込み対象であるデータのサイズが64キロバイトである場合は、このデータを4個のフラッシュメモリ21・22・23・24へ並列に書き込んでも、その最終ブロックB21・B22・B23・B24のいずれにも空き領域は生じない。これは、上記64キロバイトのデータが4ブロックに相当し、最終ブロックB21・B22・B23・B24の総和と一致するからである。
【0026】
従って、この場合のアドレス管理制御部42は、図2(a)に示すように、4個の最終ブロックB21・B22・B23・B24に対してデータ0〜127を並列に書き込むように制御する(以下、この書き込み形態を「4ブロック書き込み」という)。
【0027】
また、書き込み対象であるデータのサイズが32キロバイトである場合は、このデータを4個のフラッシュメモリ21・22・23・24へ並列に書き込むと、その最終ブロックB21・B22・B23・B24それぞれに1/2ブロックの空き領域が発生する。これは、上記32キロバイトのデータが2ブロックに相当し、最終ブロックB21・B22・B23・B24の総和の1/2倍に一致するからである。
【0028】
従って、この場合のアドレス管理制御部42は、図2(b)に示すように、2個の最終ブロックB21・B22に対してのみデータ0〜63を並列に書き込むように制御する。すなわち、空き領域が生じることを防止する関係上、最終ブロックB21・B22・B23・B24への書き込みについては並列度を4から2に制限するようになっている(以下、この書き込み形態を「2ブロック書き込み」という)。
【0029】
ここで、書き込み対象であるデータのサイズが24キロバイトである場合は、上記32キロバイトの場合のように並列度を制限しても、最終ブロックに空き領域が生じることを防止できない。これは、上記24キロバイトのデータが1.5ブロックに相当し、ブロックの整数倍に一致しないからである。
【0030】
従って、この場合のアドレス管理制御部42は、図2(c)に示すように、空き領域の生じる最終ブロックが1個だけになるように、また、可能な限り並列書き込みとなるようにデータ0〜47を制御する。
【0031】
すなわち、1ブロック分のデータ0〜31を2個の最終ブロックB21・B22に対して並列に書き込んだ後、残り0.5ブロック分の端数データ32〜47を1個の最終ブロックB21に対して単一に書き込むようになっている(以下、この書き込み形態を「1.5ブロック書き込み」という)。なお、「単一に書き込む」とは、並列書き込みを並列度1で行うことをいう。
【0032】
以上のように、アドレス管理制御部42は、書き込み対象であるデータのサイズに応じた制御方法を判別するようになっており、以下、その判別手法について説明する。
【0033】
まず、書き込み要求された全データのサイズをq、フラッシュメモリの数をm、ブロックのサイズをpとした場合、この全データのサイズqを上記ブロックのサイズpで除して、zm+w+y(z:0≦zの整数,w:0≦w<mの整数,y:0≦y<1)なる商を得る。
【0034】
ここで、上記zmは、並列度がmのブロック数を意味し、上記w+yは、並列度がmに至らないブロック数を意味する。すなわち、図6を用いて説明すると、一点鎖線より左にハッチングで示すブロックの数が上記zmに相当し、一点鎖線より右にハッチングで示すブロックの数が上記w+yに相当する(なお、wはブロックB1 に対応し、yはブロックB2 に対応する)。
【0035】
従って、アドレス管理制御部42は、zmブロック分のデータをm個のフラッシュメモリに対して並列に書き込み、その後、q−zmpブロック分のデータをw+1(但し、y=0のときはw)個のフラッシュメモリに対して書き込むように制御する。ただし、この(q−zmp)分のデータを書き込むに際しては、yブロック分のデータを1個のフラッシュメモリに書き込む処理をw+1個のフラッシュメモリに対して並列に実行し、その後、(1−y)ブロック分のデータを1個のフラッシュメモリに書き込む処理をw個のフラッシュメモリに対して並列に実行するようになっている。
【0036】
以下、上記判別手法の具体例として、1ブロックが16キロバイトである状況下、4個のフラッシュメモリに対して152キロバイトのデータを書き込む場合(p=16、m=4、q=152の場合)の制御手順について説明する。
【0037】
まず、q÷p=zm+w+yは152÷16=2×4+1+0.5であることから、zは2、wは1、yは0.5であることが判る。
【0038】
従って、8ブロック分のデータを4個のフラッシュメモリに対して並列に書き込み、その後、1.5ブロック分のデータを2個のフラッシュメモリに対して書き込む。ただし、この1.5ブロック分のデータを書き込むに際しては、0.5ブロック分のデータを1個のフラッシュメモリに書き込む処理を2個のフラッシュメモリに対して並列に実行し、その後、(1−0.5)ブロック分のデータを1個のフラッシュメモリに書き込む処理を1個のフラッシュメモリに対して並列に実行する。すなわち、図6でいうと、ブロックB1 とB2 それぞれに対して0.5ブロック分のデータを並列に書き込み、その後、ブロックB1 に対してのみ0.5ブロック分のデータを単一に書き込むことになる。
【0039】
なお、ここでは、書き込み要求された全データのサイズpを152キロバイト、また、ブロックのサイズqを16キロバイトとして説明したが、このサイズp及びqの単位はバイトに限定されるものではない。例えば、書き込み要求された全データのサイズpを304セクタ、また、ブロックのサイズqを32セクタとしても上記と同様の効果が得られる。
【0040】
以上説明したように、本発明によれば、空き領域の生じるブロックは多くても1個となる。これによって、巻き込み退避処理の発生する頻度が低下する結果、トータルでみると、フラッシュメモリへの書き込みパフォーマンスを向上させることが可能である。
【0041】
もっとも、本発明によると並列度が制限される場合もあり、この点では書き込み速度の低下を招く。しかしながら、並列度が制限されるのは最終ブロックについてのみであり、また、この最終ブロックについても可能な限り並列書き込みを行うようにしているので、上記のように並列度が制限されたとしても、その書き込み速度への影響は極めて小さい。
【0042】
なお、上記の説明では、フラッシュメモリ21→22→23→24→21→・・・の順に並列書き込みを行う動作について説明したが、本発明はこれに限定されるものではない。すなわち、個々のフラッシュメモリのハードウェア性能にはバラツキがあるため、それぞれの書き込み処理に要する時間にもバラツキがある。従って、上記のように並列書き込みを行うのではなく、書き込み処理が早く終了したフラッシュメモリから順に、次のデータを書き込むように制御するのが好ましい。
【0043】
また、図2(b)(c)に示したように、書き込み対象であるデータのサイズが32キロバイトや24キロバイトである場合は、並列度が2に制限されている期間、すなわち、2個のフラッシュメモリ21・22に対してのみ並列書き込み処理が行われている期間が存在する。従って、残り2個のフラッシュメモリ23・24内に未消去領域が存在する場合は、この領域の消去処理を、上記フラッシュメモリ21・22に対する書き込み処理と並行して行うのが好ましい。
【0044】
更に、上記の説明では、(q−zmp)分のデータを書き込むに際しては、yブロック分のデータを1個のフラッシュメモリに書き込む処理をw+1個のフラッシュメモリに対して並列に実行し、その後、(1−y)ブロック分のデータを1個のフラッシュメモリに書き込む処理をw個のフラッシュメモリに対して並列に実行することとしているが、図8(a)に示すように、上記(q−zmp)分のデータをw+1個のフラッシュメモリに対して並列に書き込むようにすることもできる。
【0045】
もっとも、このようにすると、空き領域の生じるブロックの数は2個以上になる場合がある。しかしながら、その数は、上記従来技術を適用した場合と比べると少なくなるのはいうまでもない。
【0046】
ところで、上記のように並列に書き込んだデータを読み出したり書き換えたりするためには、当該フラッシュメモリ21・22・23・24におけるデータ書き込み状態をアドレス管理制御部42が統括して管理しておかなければならない。すなわち、アドレス管理制御部42は、外部からアクセス要求される論理アドレスブロック毎に、以下のフィールドを備えたブロック管理テーブル(図3参照)を生成するようになっている。
【0047】
まず、並列度フィールドとは、幾つのフラッシュメモリに対して並列にデータが書き込まれたかを示すフィールドをいう。すなわち、上記のように4ブロック書き込みされた論理アドレスブロックの並列度フィールドには、図3(a)に示すように「4」を設定する。一方、上記のように2ブロック書き込み及び1.5ブロック書き込みされた論理アドレスブロックの並列度フィールドには、図3(b)(c)に示すように「2」を設定する。なお、未書き込み領域である論理アドレスブロックの並列度フィールドには「0」を設定しておく。
【0048】
次に、非並列セクタ数フィールドとは、当該論理アドレスブロックに含まれる32個のセクタのうち、並列書き込みが行われていないセクタの数を示すフィールドをいう。すなわち、上記のように4ブロック書き込み及び2ブロック書き込みされた論理アドレスブロックの非並列セクタ数フィールドには、図3(a)(b)に示すように「0」を設定する。一方、上記のように1.5ブロック書き込みされた論理アドレスブロックの非並列セクタ数フィールドには、図3(c)に示すように「16」を設定する。
【0049】
次に、フラッシュメモリ指定フィールドとは、当該論理アドレスブロックが存在するフラッシュメモリを示すフィールドをいう。例えば、上記フラッシュメモリ21内に存在する論理アドレスブロックのフラッシュメモリ指定フィールドには「0」を設定し、上記フラッシュメモリ22内に存在する論理アドレスブロックのフラッシュメモリ指定フィールドには「1」を設定する。また、上記フラッシュメモリ23内に存在する論理アドレスブロックのフラッシュメモリ指定フィールドには「2」を設定し、上記フラッシュメモリ24内に存在する論理アドレスブロックのフラッシュメモリ指定フィールドには「3」を設定する。
【0050】
次に、物理アドレスフィールドとは、当該論理アドレスブロックに対応する物理アドレスを示すフィールドをいう。もちろん、このフィールドに設定する物理アドレスは、上記フラッシュメモリ指定フィールドに示されるフラッシュメモリ内の物理アドレスである。
【0051】
次に、セクタ列管理情報フィールドとは、並列書き込みの順番をセクタ単位で表したフィールドをいう。例えば、フラッシュメモリ21→22→23→24→21→・・・の順に並列書き込みを行った場合は、図3(a)に示すように、論理アドレスaに対応するセクタ列管理情報として「0」が、論理アドレスa+1に対応するセクタ列管理情報として「1」が、論理アドレスa+2に対応するセクタ列管理情報として「2」が、論理アドレスa+3に対応するセクタ列管理情報として「3」が、それぞれ並ぶことになる。
〔第2のデータ書き込み制御方法〕
ところで、フラッシュメモリに書き込むデータは、一連の画像データや音楽データ(1画像ファイルや1音楽ファイル)であるのが通常である。従って、フラッシュメモリに書き込まれたデータを消去する場合も、一連の画像データや音楽データ(すなわち、連続して書き込まれたデータ)を一括して消去する可能性が高い。そこで、上記第1のデータ書き込み制御では、書き込み速度を低下させない観点から、可能な限り並列書き込みを行うこととしている。
【0052】
しかしながら、上記第1のデータ書き込み制御方法のように可能な限り並列書き込みを行うよりも、単一に書き込んだ方が、トータルでみるとフラッシュメモリへの書き込みパフォーマンスが向上する場面もある。
【0053】
例えば、フラッシュメモリに書き込んだ音楽データの編集作業においては、連続して書き込まれたデータの一部を書き換えたい場合がある。この場合、書き換え対象であるデータは、図7(a)にハッチング領域として示すように複数のブロックにわたって書き込まれているよりも、図7(b)にハッチング領域として示すように1個のブロックに書き込まれている方がよい。なぜなら、図7(a)に示す場面では、4個のブロックについて巻き込み退避処理をする必要があるのに対し、図7(b)に示す場面では、1個のブロックについて巻き込み退避処理をすればよいためである。
【0054】
このようなことから、上記第1のデータ書き込み制御方法によって複数のフラッシュメモリへ連続データを並列に書き込んだ後、万一、この連続データの一部を書き換える必要が生じた場合は、以下の制御方法を採用するのが好ましい。
【0055】
まず、データ書き込み要求を受けたアドレス管理制御部42は、上記ブロック管理テーブルの内容を参照することによって、このデータ書き込み要求が、連続データの一部を書き換えるための要求(以下「データ書き換え要求」という場合がある)、あるいは、新規に連続データを書き込むための要求(以下「新規データ書き込み要求」という場合がある)のいずれであるかを判断する。すなわち、既にデータの書き込まれている論理アドレス領域に対するデータ書き込み要求であれば、当該データ書き込み要求はデータ書き換え要求であると判断し、一方、未だデータの書き込まれていない論理アドレス領域に対するデータ書き込み要求であれば、当該データ書き込み要求は新規データ書き込み要求であると判断するようになっている。
【0056】
そして、当該データ書き込み要求は新規データ書き込み要求であると判断したアドレス管理制御部42は、上記第1のデータ書き込み制御方法を採用するようになっている。一方、当該データ書き込み要求はデータ書き換え要求であると判断したアドレス管理制御部42は、更に、書き換え対象であるデータが属するブロック内において、書き換えが必要でないデータが存在するか否かを判断する。
【0057】
例えば、図4に示すように、データ0〜47がフラッシュメモリ21・22に1.5ブロック書き込みされている状況下、データ32〜47を書き換えるための要求があった場合は、データ32〜47が属するブロック内において、書き換えが必要でないデータ0〜31(但し、奇数を除く)が存在する。従って、この場合のアドレス管理制御部42は「書き換えが必要でないデータが存在する」と判断することになり、以下の制御を行う。
【0058】
まず、アドレス管理制御部42は、書き換えが必要でないデータ0〜31(32個のセクタデータ)と、当該書き込み要求されたデータ32〜47(16個のセクタデータ)との総和である1.5ブロック分のデータを上記(q−zmp)分のデータとみなす。このとき、wは1であり、またyは0.5であることはいうまでもない。
【0059】
そして、アドレス管理制御部42は、この(q−zmp)分のデータをw+1個のフラッシュメモリ23・24に割り当てた状態で、各フラッシュメモリ23・24が持つ順番(ここでは23→24の順番)で書き込むように制御する。すなわち、2個のブロックに対して並列に書き込まれているデータ0〜31を一旦バッファ33に読み出した後、フラッシュメモリ23の消去済領域へ単一に書き直し、次いでデータ32〜47をフラッシュメモリ24の消去済領域へ単一に書き込むように制御するようになっている。なお、このデータ32〜47は、外部から入出力制御部41・バッファ34を介してアドレス管理制御部42に渡されるようになっている。
【0060】
以上のように、第2のデータ書き込み制御によれば、フラッシュメモリ23・24上のブロックには可能な限り連続データが並ぶことになる。このようにしておけば、データ0〜31或いはデータ32〜47を再度書き換える必要が生じた場合、巻き込み退避処理は発生しない。
【0061】
なお、上記では、「書き換えが必要でないデータが存在する」とアドレス管理制御部42が判断した場合の動作についてのみ説明した。すなわち、「書き換えが必要でないデータが存在しない」とアドレス管理制御部42が判断した場合の動作については言及していないが、このように判断した場合のアドレス管理制御部42は、上記第1のデータ書き込み制御方法を採用するようになっている。
【0062】
その理由は、「書き換えが必要でないデータが存在しない」とは、データの全部を書き換えることを意味するからである。例えば、1.5ブロックの領域に対して2ブロック分のデータ書き込み要求があるということは、以前の1.5ブロック分のデータが不用であることを意味する。従って、このようなデータ書き込み要求は、新規に連続データを書き込むための要求であると考えるのが妥当である。
【0063】
最後に、上記した第2のデータ書き込み制御例によってブロック管理テーブルの内容がどのように遷移するかを図5に示す。なお、フィールド構成や設定情報については、上記第1のデータ書き込み制御と同じであるため、ここでは説明を省略する。
【図面の簡単な説明】
【図1】 本発明を適用した記録装置のブロック図
【図2】 第1のデータ書き込み制御方法の説明図
【図3】 第1のデータ書き込み制御時におけるブロック管理テーブルの状態図
【図4】 第2のデータ書き込み制御方法の説明図
【図5】 第2のデータ書き込み制御時におけるブロック管理テーブルの状態図
【図6】 データ書き込み制御方法の判別手法の説明図
【図7】 データ書き換えの説明図
【図8】 (q−zmp)分のデータの書き込み態様を示す図
【図9】 ブロック・セクタ・巻き込み退避処理の説明図
【図10】 別個のデータが存在するブロックの説明図
【符号の説明】
1 記録装置
21 フラッシュメモリ
22 フラッシュメモリ
23 フラッシュメモリ
24 フラッシュメモリ
31 バッファ
32 バッファ
33 バッファ
34 バッファ
41 入出力制御部
42 アドレス管理制御部
43 セレクタ
Claims (6)
- 消去処理が完了している記録領域に対してデータ書き込みを行い、かつ、複数の記録領域からなる所定のブロック単位で一括してデ−タ消去を行う複数の記録媒体に対し、外部から書き込み要求されたデータを並列に書き込む記録装置において、
上記外部から書き込み要求された全データのサイズをq、上記記録媒体の数をm、上記ブロックのサイズをpとし、上記外部から書き込み要求された全データのサイズqを上記ブロックのサイズpで除してzm+w+y(z:0≦zの整数,w:0≦w<mの整数,y:0≦y<1)なる商を得たとき、zmブロック分のデータをm個の記録媒体に対して並列に書き込み、その後、(q−zmp)分のデータをw+1(但し、y=0のときはw)個の記録媒体に対して書き込むように制御するアドレス管理制御部を備え、
上記アドレス管理制御部は、上記(q−zmp)分のデータを書き込むに際しては、yブロック分のデータを1個の記録媒体に書き込む処理をw+1個の記録媒体に対して並列に実行し、その後、(1−y)ブロック分のデータを1個の記録媒体に書き込む処理をw個の記録媒体に対して並列に実行するように制御することを特徴とする記録装置。 - 上記アドレス管理制御部は、上記(q−zmp)分のデータを書き込むに際しては、w+1(但し、y=0のときはw)個の記録媒体に書き込む処理を、前記w+1個の記録媒体に対して直列に書き込むように制御する請求項1に記載の記録装置。
- 上記アドレス管理制御部は、書き込み要求先となる記録領域が属するブロック内において、書き換えが必要でないデータが存在する場合は、この書き換えが必要でないデータと当該書き込み要求されたデータとの総和を上記(q−zmp)分のデータとみなして制御する請求項2に記載の記録装置。
- 消去処理が完了している記録領域に対してデータ書き込みを行い、かつ、複数の記録領域からなる所定のブロック単位で一括してデ−タ消去を行う複数の記録媒体に対し、外部から書き込み要求されたデータを並列に書き込む記録装置に、
上記外部から書き込み要求された全データのサイズをq、上記記録媒体の数をm、上記ブロックのサイズをpとし、上記外部から書き込み要求された全データのサイズqを上記ブロックのサイズpで除してzm+w+y(z:0≦zの整数,w:0≦w<mの整数,y:0≦y<1)なる商を得たとき、zmブロック分のデータをm個の記録媒体に対して並列に書き込み、その後、(q−zmp)分のデータをw+1(但し、y=0のときはw)個の記録媒体に対して書き込むように制御するアドレス管理制御処理を実行させ、
上記(q−zmp)分のデータを書き込むに際しては、yブロック分のデータを1個の記録媒体に書き込む処理をw+1個の記録媒体に対して並列に実行し、その後、(1−y)ブロック分のデータを1個の記録媒体に書き込む処理をw個の記録媒体に対して並列に実行するように制御することを特徴とするプログラム。 - 上記(q−zmp)分のデータを書き込むに際しては、w+1(但し、y=0のときはw)個の記録媒体に書き込む処理を、前記w+1個の記録媒体に対して直列に書き込むように制御する請求項4に記載のプログラム。
- 書き込み要求先となる記録領域が属するブロック内において、書き換えが必要でないデータが存在する場合は、この書き換えが必要でないデータと当該書き込み要求されたデータとの総和を上記(q−zmp)分のデータとみなして制御する請求項5に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001327430A JP3992960B2 (ja) | 2000-10-26 | 2001-10-25 | 記録装置及びプログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000326472 | 2000-10-26 | ||
JP2000-326472 | 2000-10-26 | ||
JP2001327430A JP3992960B2 (ja) | 2000-10-26 | 2001-10-25 | 記録装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002202912A JP2002202912A (ja) | 2002-07-19 |
JP3992960B2 true JP3992960B2 (ja) | 2007-10-17 |
Family
ID=26602797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001327430A Expired - Fee Related JP3992960B2 (ja) | 2000-10-26 | 2001-10-25 | 記録装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3992960B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
CN100422956C (zh) * | 2003-08-06 | 2008-10-01 | 松下电器产业株式会社 | 半导体存储卡、存取装置和存取方法 |
JPWO2005029311A1 (ja) * | 2003-09-18 | 2006-11-30 | 松下電器産業株式会社 | 半導体メモリカード、半導体メモリ制御装置及び半導体メモリ制御方法 |
US7631138B2 (en) * | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
US8504798B2 (en) | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
US7383375B2 (en) * | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
JP4696501B2 (ja) * | 2004-08-24 | 2011-06-08 | ソニー株式会社 | データ記録方法 |
JP4747535B2 (ja) * | 2004-08-31 | 2011-08-17 | ソニー株式会社 | データ記録方法 |
US20080109627A1 (en) * | 2004-11-10 | 2008-05-08 | Matsushita Electric Industrial Co., Ltd. | Nonvolatile Memory Device And Method For Accessing Nonvolatile Memory Device |
CN102063931B (zh) * | 2006-03-31 | 2014-07-30 | 莫塞德技术公司 | 闪烁存储器系统控制方案 |
US7554855B2 (en) * | 2006-12-20 | 2009-06-30 | Mosaid Technologies Incorporated | Hybrid solid-state memory system having volatile and non-volatile memory |
KR102024850B1 (ko) * | 2012-08-08 | 2019-11-05 | 삼성전자주식회사 | 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 |
-
2001
- 2001-10-25 JP JP2001327430A patent/JP3992960B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002202912A (ja) | 2002-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3898305B2 (ja) | 半導体記憶装置、半導体記憶装置の制御装置及び制御方法 | |
US7953950B2 (en) | Storage device including flash memory and capable of predicting storage device performance | |
US6172906B1 (en) | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices | |
US6779045B2 (en) | System and apparatus for increasing the number of operations per transmission for a media management system | |
JP2008033788A (ja) | 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法 | |
JP3992960B2 (ja) | 記録装置及びプログラム | |
JPWO2005029311A1 (ja) | 半導体メモリカード、半導体メモリ制御装置及び半導体メモリ制御方法 | |
JP2000067574A (ja) | 半導体記憶装置 | |
US7062630B2 (en) | Storing device for writing data onto a plurality of installed storing mediums, storing control method for the storing device, and program thereof | |
US20060047889A1 (en) | Memory device and controlling method for nonvolatile memory | |
JP2008027383A (ja) | 情報記録装置及びその制御方法 | |
US8819332B2 (en) | Nonvolatile storage device performing periodic error correction during successive page copy operations | |
US6639843B2 (en) | Semiconductor memory device with block-unit erase type nonvolatile memory | |
JP2009032305A (ja) | 情報記録装置及びその制御方法 | |
JP2003058417A (ja) | 記憶装置 | |
JPH11144478A (ja) | 不揮発性半導体メモリの情報記憶方法および電子機器 | |
JPH09171486A (ja) | Pcカード | |
JP2005078378A (ja) | データ記憶装置及び不揮発性メモリに対するデータ書き込み方法 | |
JP2000285688A (ja) | 不揮発性半導体記憶装置 | |
JP2000285017A (ja) | 記憶装置 | |
JP5206103B2 (ja) | ストレージ装置、ストレージ装置制御システム、ストレージ装置の制御方法、及びプログラム | |
JPH0764831A (ja) | データ記憶装置 | |
JP3166659B2 (ja) | 記憶装置 | |
JP2006048227A (ja) | メモリ装置、メモリ装置の制御方法およびデータ処理システム | |
JP2003297088A (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040922 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070314 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070509 |
|
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: 20070704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070725 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100803 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120803 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130803 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |