JP2007164391A - メモリカードおよびその制御方法 - Google Patents
メモリカードおよびその制御方法 Download PDFInfo
- Publication number
- JP2007164391A JP2007164391A JP2005358480A JP2005358480A JP2007164391A JP 2007164391 A JP2007164391 A JP 2007164391A JP 2005358480 A JP2005358480 A JP 2005358480A JP 2005358480 A JP2005358480 A JP 2005358480A JP 2007164391 A JP2007164391 A JP 2007164391A
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- rewriting
- memory
- memory card
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】ブロックAに既存ファイルのデータ211、212、213が書き込まれており、そのうちのデータ212だけを書き換えたい場合である。
本実施の形態のデータ管理システムでは、まず一時書き換え管理ブロックとしてのブロックBを用意する。なお、ブロックAに既に一時書き換え管理ブロックが設定されている場合には、そのブロックを用いる。そして、データ212に替わるデータ212´をブロックBに書き込む。また、この動作と前後して管理メモリ150に一時書き換え管理ブロックデータに必要なデータを書き込む。そして、書き換えないデータ211、213と書き換えたデータ212´を更新後のファイルのデータとして扱う。
【選択図】図4
Description
また、メモリカード内部では、ホスト装置側のシステム(ホストシステム)に連動して動作するデータ管理システムが搭載されており、ホストシステム側に対応する論理アドレス空間とメモリ素子側に対応した物理アドレス空間との間でのデータの受け渡しや、メモリ素子へのデータの書き込み、読み出し等を管理している。
また、一般的なデータ管理システムでは、メモリ素子内の物理領域の消去単位をブロックとし、そのブロック内のデータ書き込み単位をページとして管理している。
そして、このようなメモリ素子を用いたメモリカードでは、あるブロックに書き込んだデータの一部を書き換える場合、まず、そのブロック内の書き換えないデータを別のブロックにコピーした後、この別のブロックに新たに更新するデータを書き込み、最後に元のブロックを消去するような動作を行っていた。
まず、ブロックAには既存ファイルのデータ11、12、13が書き込まれている。
そして、このデータ11、12、13のうち、データ12だけをデータ12´に書き換えたい場合、書き換えないデータ11、13を読み出してブロックBにコピーする。
次いで、データ12の代わりに新たなデータ12´をブロックBに書き込み、最後にブロックAのデータを消去することにより、一部更新処理を完了する。
また、第2のブロックが既に設定されている第1のブロックのデータの一部をさらに書き換える場合に、書き換え用のデータを第2のブロックに新規に書き込むようにし、また、第2のブロックに書き込んだデータを書き換える場合に、書き換え用のデータを第2のブロックに新規に書き込むようにしたことから、繰り返し生じる書き換え動作を最小のブロック数を用いて効率よく処理できる。
また、第2のブロックの空き容量が少なくなり、書き換え用のデータを書き込めなくなった場合に、第1のブロックおよび第2のブロックの書き換えないデータを第3のブロックにコピーするとともに、書き換え用のデータを第3のブロックに新規に書き込み、第1のブロックおよび第2のブロックのデータを消去するようにしたことから、繰り返し生じる書き換え動作を最小のブロック数を用いて継続的に処理することができる。
図示のように、本実施の形態のメモリカードは、ホスト装置とのインターフェースを取るためのホストインターフェース部100と、本実施の形態の特徴となるデータ管理システムを含むメモリカード全体のシステムを制御するCPU110と、データを記録する不揮発性半導体メモリ素子としてのフラッシュメモリ120と、このフラッシュメモリ120とCPU110とのインターフェースをとるフラッシュメモリインターフェース部130と、ホスト装置側のファイルシステムに対応する論理アドレスとフラッシュメモリに対応する物理アドレスとの変換を行うアドレス変換テーブル140と、フラッシュメモリの各ブロックに対して書き換えデータが存在する場合に、その状況やアドレスを管理する一時書き換え管理ブロックデータを格納する管理メモリ150とを有する。
なお、本実施の形態においては、主にCPU110がメモリ制御部として機能する。また、主にアドレス変換テーブル140および管理メモリ150がアドレス管理部を構成している。
図2に示すように、アドレス変換テーブル140は、ファイルシステムで用いる論理アドレスとフラッシュメモリ側で用いる物理アドレスを対応させたテーブルである。
このアドレス変換テーブル140は、本実施の形態のメモリカードでは、既に利用されている物理ブロックに対して一部のデータを書き換える場合、他の物理ブロックを一時書き換え管理ブロックとして利用し、この一時書き換え管理ブロックに新規の書き込みデータを必要に応じて順次に書き込んでいき、読み出しの際にはアドレス制御によって元のブロックと一時書き換え管理用のブロックとを併用して最新のデータを読み出すような管理を行う。
そこで、このような一時書き換え管理用のブロックと元のブロックとを併用する制御に必要な情報が一時書き換え管理ブロックデータであり、管理メモリ150は、この一時書き換え管理ブロックデータを格納したものである。
この一時書き換え管理ブロックデータは、各論理アドレスに対応する物理ブロックに部分的な書き換えデータが存在する場合に設けられ、論理アドレスに対応して設けられている。
この一時書き換え管理ブロックデータは、データの書き換えに関するアドレス情報やその他のメモリ管理に必要な情報を構成するものであり、図示の例では、一時書き換え管理ブロックが存在することを示す一時書き換え管理ブロックフラグ151、どの論理アドレスで一時書き換え管理ブロックを使用しているかを示す論理ブロックアドレスデータ152、どの物理アドレスに一時書き換え管理ブロックが割り当てられているかを示す物理ブロックアドレスデータ153、使用されている一時書き換え管理ブロックの空きページ数のデータ154、使用されている一時書き換え管理ブロック内での論理ページアドレスと物理ページアドレスの対応関係を示す変換テーブルデータ155等が含まれる。
このうち、一時書き換え管理ブロックフラグ151はデータ管理システム全体で共有するフラグであり、このフラグを参照することで、1つでも一時書き換え管理ブロックが存在する場合には、それ以降の一時書き換え管理ブロックデータを探す処理を実行し、逆に全く一時書き換え管理ブロックが存在しない場合には、それ以降の一時書き換え管理ブロックデータに対する処理を全て省略できるようにし、無駄な処理をなくして効率化を図るためのものである。
また、一時書き換え管理ブロックフラグ以外のデータは、使用されているそれぞれの一時書き換え管理ブロックに対応して設けられ、適宜に追加更新されるデータである。
なお、アドレス変換テーブル140や管理メモリ150は、図1では独立したメモリ領域として示しているが、フラッシュメモリ内に確保してもよいし、他の処理を行うRAM等に確保してもよい。
図4は本実施の形態のシステムにおいて、あるブロックのデータの一部を書き換える場合の動作を示す説明図である。
図示の例は、ブロックA(第1のブロック)に既存ファイルのデータ211、212、213が書き込まれており、そのうちのデータ212だけを書き換えたい場合である。
本実施の形態のデータ管理システムでは、まず一時書き換え管理ブロックとしてのブロックB(第2のブロック)を用意する。なお、図4では新規にブロックBを設定した場合を示しているが、ブロックAに既に一時書き換え管理ブロックが設定されている場合には、そのブロックを用いる。
そして、本実施の形態では、データ212に替わるデータ212´をブロックBに書き込む。また、この動作と前後して管理メモリ150に一時書き換え管理ブロックデータに必要なデータを書き込む。
これによってブロックAに対する書き換え処理を終了し、ブロックAには古いデータ212を残したままとし、一時書き換え管理ブロックデータに基づいて書き換えないデータ211、213と書き換えたデータ212´が更新後のファイルのデータであると分かるようにしておく。
この後、更新されたファイルを読み出す場合には、一時書き換え管理ブロックデータを参照し、ブロックAとブロックBにアクセスしてデータ211、212´、213を読み出す。
この場合にも図4で示した手順と同様に、データ214に書き換えるデータ214´をブロックBに新規に書き込み、その内容を示すデータを一時書き換え管理ブロックデータとして追加する。
また、図6は一旦書き換えたブロックBのデータ212´をさらに書き換える場合を示している。この場合には、ブロックBにデータ212´´を新規に書き込み、その内容を示すデータを一時書き換え管理ブロックデータとして追加する。
また、図7は一時書き換え管理ブロックであるブロックBが一杯になって空き領域が新規に書き込むデータ量より小さくなった場合の処理を示している。
この場合、ブロックBの空き領域が新規に書き込むデータ量より小さくなったことを認識し、新たなブロックC(第3のブロック)を設定する。そして、ブロックAとブロックBから最新のファイルを構成するデータだけを読み出し、ブロックCにコピーすることにより、最新ファイルのブロックCを作成する。これにより、ブロックA、ブロックBはともに不要となり、それぞれのデータを消去する。
この後、ブロックCのデータの一部を書き換える必要が生じた場合、図4に戻って新たに一時書き換え管理ブロックを設定し、新規のデータを書き込んで行く。
本実施の形態の場合、処理速度を低下させるコピー処理および消去処理を実行することになるが、従来の方法に比べて大幅にコピー処理および消去処理を減らすことができるため、処理効率を大幅に改善でき、処理時間を短縮できる。
図8はFATファイルシステムでフォーマット化されたメモリカードのデータ構成を示す説明図である。
図示のように、このメモリカードは、MBR、PBR、FAT、ルートディレクトリ、データ領域の3つに分割されている。そして、MBR、PBRはメディア内の領域の区切りを示している。また、FATにはファイルとして格納されたデータの繋がり情報(どのブロックにどのような順番で格納されているかの情報)が格納されている。
また、ルートディレクトリにはファイル名称、ファイルの大きさ、ファイルが格納されたブロック内の最初のファイル番号が格納されている。さらに、データ領域にはデータが入っている多数のブロックが格納されている。
このようなFATファイルシステムの構造は、上述したデータ管理システムの構造と対比すると、ルートディレクトリ下の各ディレクトリはブロックに対応し、サブディレクトリがページに対応している。
図13に示した場合と同様に、ブロックAの一部のサブディレクトリ312を書き換える場合に、新たなブロックBに対して書き換えないファイルデータ311、313をコピーし、さらに、新規のサブディレクトリ312´を書き込む。そして、ブロックAを消去し、データの書き換えを完了する。
図10は、このような書き換え動作に本実施の形態の機能を適用した場合を示している。
すなわち、図4に示した例と同様に、ブロックAとは別に一時書き換え管理ブロックとしてのブロックBを設定し、このブロックBにデータ更新の度に新規のサブディレクトリ312´、312´´、……順次書き込んでいき、一時書き換え管理ブロックデータのアドレス制御によって読み出しや書き込み等を管理する。
このように本実施の形態の機能は、FATファイルシステムに容易に適用できるものである。
図11はデータの書き込み動作を示すフローチャートである。なお、データの書き込みが指定された論理ブロックをmとする。
まず、一時書き換え管理ブロックフラグを参照し、システム全体で一時書き換え管理ブロックが使用されているか否かを判断する(ステップS1)。
ステップS1で一時書き換え管理ブロックが使用されていなければ、一時管理ブロックデータが使用可能であるか、すなわち、一時管理ブロックデータを作成するための空きがあるか否かを判断する(ステップS6)。
ステップS6で一時管理ブロックデータが使用不能である、すなわち、一時管理ブロックデータを作成する空きがないと判断されたならば従来の書き込み動作を行う(ステップS8)。
ステップS6で一時管理ブロックデータが使用可能である、すなわち、一時管理ブロックデータを作成できる空きがあると判断されたならば、一時書き込み管理ブロックデータを新たに作成し(一時書き込み管理ブロックデータを新たに設定し)(ステップS7)、ステップS4に移行して新規の書き込みデータのフラッシュメモリへの書き込みを行う(ステップS4)。この後、一時書き換え管理ブロックデータの更新などの管理を行い(ステップS5)、動作を終了する。
一方、ステップS1で一時書き換え管理ブロックが使用可能であれば、次に指定論理ブロックmで一時書き換え管理ブロックが使用されているか否かを判断し(ステップS2)、使用されていない場合には、ステップS6に進んで上述と同様にステップS7またはステップS8に移行する。
また、ステップS2において指定論理ブロックmで一時書き換え管理ブロックが使用されていれば、該当する一時書き換え管理ブロックデータを読み出し(ステップS3)、その内容に沿って新規の書き込みデータをフラッシュメモリに書き込む(ステップS4)。この後、一時書き換え管理ブロックデータの内容の更新などの管理を行い(ステップS5)、動作を終了する。
まず、一時書き換え管理ブロックフラグを参照し、システム全体で一時書き換え管理ブロックが使用されているか否かを判断する(ステップS11)。ここで一時書き換え管理ブロックが使用されていなければ、ステップS15に進んで論理−物理のアドレス変換テーブル140を用いた読み出しを行う。
また、一時書き換え管理ブロックが使用されている場合、次に指定論理ブロックmで一時書き換え管理ブロックが使用されているか否かを判断し(ステップS12)、使用されていない場合には、ステップS15に進んで論理−物理のアドレス変換テーブル140を用いた読み出しを行う。
また、指定論理ブロックmで一時書き換え管理ブロックが使用されていれば、該当する一時書き換え管理ブロックデータを読み出し(ステップS13)、その内容に沿ってフラッシュメモリからの読み出しを行い(ステップS14)、動作を終了する。
例えば、本実施の形態では、不揮発性半導体メモリ素子にフラッシュメモリを採用したが、他のメモリ素子を用いてもよい。
また、書き換えに関するアドレス情報として図3に示すような一時書き換え管理ブロックデータを設けたが、この一時書き換え管理ブロックデータの具体的構成、さらには書き込みや読み出し時の具体的処理手順等は、システムの仕様等に基づいて適宜変更することが可能である。
また、メモリカードとしては、種々の形態を有するものであってよく、例えばスティック状の外形のものも含まれるものとする。さらに、本発明はホスト装置のFATファイルシステムに限らず、各種のOSやファイルシステムに適用できるものである。
Claims (12)
- メモリ領域が消去単位である複数のブロックに分割され、かつ、前記ブロック内が読み出し単位である複数のページに分割されるメモリ素子と、
前記メモリ素子のアドレスを管理するアドレス管理部と、
前記アドレス管理部の情報に基づいて前記メモリ素子に対するデータの書き込み、および読み出しを制御するメモリ制御部とを有し、
前記メモリ制御部は、メモリ素子の第1のブロックに書き込まれたデータの一部を書き換える場合に、一時書き込み管理用の第2のブロックを設定し、書き換え用のデータを第2のブロックに新規に書き込み、書き換えに関するアドレス情報をアドレス管理部に登録することにより、第1のブロックの書き換えないデータと第2のブロックの新規の書き込みデータとを書き換え後のデータとして管理する、
ことを特徴とするメモリカード。 - 前記第2のブロックが既に設定されている第1のブロックのデータの一部をさらに書き換える場合に、書き換え用のデータを第2のブロックに新規に書き込み、書き換えに関するアドレス情報をアドレス管理部に登録することにより、第1のブロックの書き換えないデータと第2のブロックの書き込みデータとを書き換え後のデータとして管理することを特徴とする請求項1記載のメモリカード。
- 前記第2のブロックに書き込んだデータを書き換える場合に、書き換え用のデータを第2のブロックに新規に書き込み、書き換えに関するアドレス情報をアドレス管理部に登録することにより、第1のブロックの書き換えないデータと第2のブロックの書き換えられたデータとを書き換え後のデータとして管理することを特徴とする請求項1記載のメモリカード。
- 前記第2のブロックの空き容量が少なくなり、書き換え用のデータを書き込めなくなった場合に、第1のブロックおよび第2のブロックの書き換えないデータを第3のブロックにコピーするとともに、書き換え用のデータを第3のブロックに新規に書き込み、書き換えに関するアドレス情報をアドレス管理部に登録することを特徴とする請求項1記載のメモリカード。
- 前記第3のブロックにデータを書き込んだ後、前記第1のブロックおよび第2のブロックのデータを消去することを特徴とする請求項4記載のメモリカード。
- 前記メモリ素子が不揮発性半導体メモリであることを特徴とする請求項1記載のメモリカード。
- メモリ領域が消去単位である複数のブロックに分割され、かつ、前記ブロック内が読み出し単位である複数のページに分割されるメモリ素子と、
前記メモリ素子のアドレスを管理するアドレス管理部と、
前記アドレス管理部の情報に基づいて前記メモリ素子に対するデータの書き込み、および読み出しを制御するメモリ制御部とを有するメモリカードの制御方法であって、
前記メモリ素子の第1のブロックに書き込まれたデータの一部を書き換える場合に、一時書き込み管理用の第2のブロックを設定するステップと、書き換え用のデータを第2のブロックに新規に書き込むステップと、書き換えに関するアドレス情報をアドレス管理部に登録するステップと、第1のブロックの書き換えないデータと第2のブロックの新規の書き込みデータとを書き換え後のデータとして管理するステップと、
を有することを特徴とするメモリカードの制御方法。 - 前記第2のブロックが既に設定されている第1のブロックのデータの一部をさらに書き換える場合に、書き換え用のデータを第2のブロックに新規に書き込むステップと、書き換えに関するアドレス情報をアドレス管理部に登録するステップと、第1のブロックの書き換えないデータと第2のブロックの書き込みデータとを書き換え後のデータとして管理するステップとを有することを特徴とする請求項7記載のメモリカードの制御方法。
- 前記第2のブロックに書き込んだデータを書き換える場合に、書き換え用のデータを第2のブロックに新規に書き込むステップと、書き換えに関するアドレス情報をアドレス管理部に登録するステップと、第1のブロックの書き換えないデータと第2のブロックの書き換えられたデータとを書き換え後のデータとして管理するステップとを有することを特徴とする請求項7記載のメモリカードの制御方法。
- 前記第2のブロックの空き容量が少なくなり、書き換え用のデータを書き込めなくなった場合に、第1のブロックおよび第2のブロックの書き換えないデータを第3のブロックにコピーするステップと、書き換え用のデータを第3のブロックに新規に書き込むブロックと、書き換えに関するアドレス情報をアドレス管理部に登録するステップとを有することを特徴とする請求項7記載のメモリカードの制御方法。
- 前記第3のブロックにデータを書き込んだ後、前記第1のブロックおよび第2のブロックのデータを消去するステップを有することを特徴とする請求項10記載のメモリカードの制御方法。
- 前記メモリ素子が不揮発性半導体メモリであることを特徴とする請求項7記載のメモリカードの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005358480A JP2007164391A (ja) | 2005-12-13 | 2005-12-13 | メモリカードおよびその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005358480A JP2007164391A (ja) | 2005-12-13 | 2005-12-13 | メモリカードおよびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007164391A true JP2007164391A (ja) | 2007-06-28 |
Family
ID=38247222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005358480A Pending JP2007164391A (ja) | 2005-12-13 | 2005-12-13 | メモリカードおよびその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007164391A (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05233426A (ja) * | 1992-02-20 | 1993-09-10 | Fujitsu Ltd | フラッシュ・メモリ使用方法 |
JP2000172549A (ja) * | 1998-12-04 | 2000-06-23 | Mitsubishi Electric Corp | Eprom併用情報処理装置 |
-
2005
- 2005-12-13 JP JP2005358480A patent/JP2007164391A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05233426A (ja) * | 1992-02-20 | 1993-09-10 | Fujitsu Ltd | フラッシュ・メモリ使用方法 |
JP2000172549A (ja) * | 1998-12-04 | 2000-06-23 | Mitsubishi Electric Corp | Eprom併用情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7849253B2 (en) | Method for fast access to flash-memory media | |
US7487303B2 (en) | Flash memory device and associated data merge method | |
JP5336060B2 (ja) | 不揮発性メモリ装置およびそれを動作させる方法 | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
JP4356686B2 (ja) | メモリ装置及びメモリ制御方法 | |
JP3708047B2 (ja) | フラッシュメモリの管理方法 | |
US20060187738A1 (en) | Memory management device and memory device | |
JP4828816B2 (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
EP3752905B1 (en) | Append only streams for storing data on a solid state device | |
TW200417856A (en) | Method and apparatus for splitting a logical block | |
JP2008016003A (ja) | メモリー格納装置及びその読み書き方法 | |
JP2005242897A (ja) | フラッシュディスク装置 | |
US7702845B2 (en) | Method and apparatus for managing blocks according to update type of data in block-type memory | |
US20150277786A1 (en) | Method, device, and program for managing a flash memory for mass storage | |
JP2006350430A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2008009527A (ja) | メモリシステム | |
US20100318726A1 (en) | Memory system and memory system managing method | |
JP4665539B2 (ja) | メモリ制御装置、メモリ制御方法、プログラム | |
JP2011175632A (ja) | 半導体記憶装置及び半導体記憶装置の制御方法 | |
JP5057887B2 (ja) | データ更新装置及びデータ更新方法及びデータ更新プログラム | |
US20180232154A1 (en) | Append Only Streams For Storing Data On A Solid State Device | |
JP2004326165A (ja) | メモリ制御装置およびメモリ制御方法 | |
JP4308780B2 (ja) | 半導体メモリ装置、メモリコントローラ及びデータ記録方法 | |
JP2009259145A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2007233838A (ja) | メモリシステムの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081125 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090807 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20091014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120110 |