JP2008299455A - データ記憶装置及びデータ管理方法 - Google Patents
データ記憶装置及びデータ管理方法 Download PDFInfo
- Publication number
- JP2008299455A JP2008299455A JP2007142734A JP2007142734A JP2008299455A JP 2008299455 A JP2008299455 A JP 2008299455A JP 2007142734 A JP2007142734 A JP 2007142734A JP 2007142734 A JP2007142734 A JP 2007142734A JP 2008299455 A JP2008299455 A JP 2008299455A
- Authority
- JP
- Japan
- Prior art keywords
- data
- page
- written
- block
- redundant area
- 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
【課題】不揮発性半導体メモリからデータを読み出す際の処理速度を向上させることが可能なデータ記憶装置及びデータ管理方法を提供すること。
【解決手段】
不揮発性半導体メモリ1の各ブロック21には、複数の種類のデータIDに対応するデータが書き込まれるようになっており、各ブロック21にデータが書き込まれる際、各ブロック21の最終書き込み済みページの冗長エリア24には、当該ページに書き込まれたデータのデータIDと、他のデータIDに対応するデータが最後に書きこまれたページの位置を示す情報とが記憶される。ホスト機器は、この冗長エリア24の情報を基に即座にID/ページマップ61を作成して所望のデータにアクセスすることができるため、データへ読み出す際の処理速度を格段に向上させることができる。
【選択図】 図4
【解決手段】
不揮発性半導体メモリ1の各ブロック21には、複数の種類のデータIDに対応するデータが書き込まれるようになっており、各ブロック21にデータが書き込まれる際、各ブロック21の最終書き込み済みページの冗長エリア24には、当該ページに書き込まれたデータのデータIDと、他のデータIDに対応するデータが最後に書きこまれたページの位置を示す情報とが記憶される。ホスト機器は、この冗長エリア24の情報を基に即座にID/ページマップ61を作成して所望のデータにアクセスすることができるため、データへ読み出す際の処理速度を格段に向上させることができる。
【選択図】 図4
Description
本発明は、不揮発性半導体メモリを記憶媒体とし、ホスト機器に着脱自在なデータ記憶装置及びこのデータ記憶装置におけるデータ管理方法に関する。
に関する。
に関する。
従来から、NAND型の不揮発性半導体メモリ(フラッシュメモリ)を主たる記憶媒体とし、例えばPC(Personal Computer)や携帯電話機、携帯型AV(Audio/Video)機器等のホスト機器に着脱自在な可搬性のデータ記憶装置(いわゆるメモリカード)が知られている。このメモリカードにおいては、例えばFAT(File Allocation Tables)ファイルシステム等のホスト機器側のファイル管理システムによってデータの書き込み及び読み出しの管理が行われる。また、メモリカード内部では、不揮発性半導体メモリ内の物理領域は複数のブロックに分割され、当該ブロックがデータの消去単位となっている。また、ブロックはさらに複数のページに分割され、当該ページがデータの書き込み及び読み出し単位となっている。
上記ファイル管理システムを用いてデータの書き込み、読み出し及び消去を行う際には、ホスト機器のシステム側から与えられる論理アドレスと、不揮発性半導体メモリ内の上記ページの物理アドレスとが一意に対応していないため、その対応関係をメモリカード内部で管理する必要がある。この管理の方法の一つとして、論理アドレスと物理アドレスとの対応関係を、メモリカード内部の不揮発性半導体メモリ上に記録し、対応関係に変化がある度に更新するという方法がある。しかしながら、この方法では、システム全体の処理速度が低下してしまうという欠点や、処理中の電源切断によって管理情報が消失した場合の復旧が困難であるという欠点がある。
そこで上記欠点を補うための方法として、システムの起動時(電源投入時)等の必要なときに、不揮発性半導体メモリ内部の状態を基に、論理アドレスと物理アドレスとの対応関係を示す変換テーブルを作成するという方法がある(例えば、特許文献1参照)。
特開平11−110283号公報(図10等)
しかしながら、上記特許文献1に記載の方法を実現するためには、少なくとも、データが書き込まれている全てのページに対して読み出しを行わなければならないため、莫大な回数の読み出し処理が発生し、システムの処理速度が低下してしまうことになる。
以上のような事情に鑑み、本発明の目的は、不揮発性半導体メモリからデータを読み出す際の処理速度を向上させることが可能なデータ記憶装置及びデータ管理方法を提供することにある。
上述の課題を解決するため、本発明の主たる観点に係るデータ記憶装置は、ホスト機器に着脱自在なデータ記憶装置であって、前記データの消去単位である複数のブロックに分割され、かつ、前記各ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数のページに分割された不揮発性の半導体メモリと、前記各ブロックのうち第1のブロックの各ページのうち第1のデータが最後に書き込まれた第1のページの前記冗長領域に、当該第1のデータの書き込み以前に当該第1のデータとは異なる第2のデータが最後に書き込まれた第2のページの前記半導体メモリ上での位置を示す第1の位置情報を記憶するよう制御する制御手段とを具備する。
ここでホスト機器とは例えばPC、AV機器、ゲーム機器、ディジタルスチルカメラ、ディジタルビデオカメラ、携帯電話機等の電子機器であり、不揮発性の半導体メモリとは例えばNAND型のメモリであり、データ記憶装置とは例えばいわゆるメモリカード等である。また第1及び第2のデータは、それぞれ複数のページに書き込まれる場合もあり、上記第1及び第2のページはそれらの第1及び第2のデータがそれぞれ最後に書き込まれたページである。また上記第2のページとは、単一のページのみを指す概念ではなく、複数の異なるページであってもよい。この場合上記第2のデータはその各ページに書き込まれた複数の異なるデータである。第1の位置情報は、第2のページの位置が一意に識別できる情報であれば、物理ページ番号(物理アドレス)でも、論理ページ番号(論理アドレス)でもよいし、第1のページからの相対位置を示す情報でも構わない。
この構成によれば、第1のデータが最後に書き込まれた第1のページの冗長領域に、第2のデータが最後に書き込まれた第2のページの位置情報が記憶されているため、ホスト機器側は、当該第1のページにアクセスして当該位置情報を参照することで、第2のページに対して読み出し処理を行うことなく、第2のデータのページ位置を把握することができる。また、第2のデータが上記第2のページ以外の複数のページにも書き込まれている場合であっても、当該複数のページの読み出しを行うことなく第2のデータのページ位置を把握することができる。したがって、ホスト機器は、当該位置情報を基に、ホスト機器側から見たデータの論理アドレスと、半導体メモリ内部の物理アドレスとの対応関係を示すアドレス対応情報を即座に構築することができるため、データ記憶装置へアクセスする際のホスト機器側の処理速度を格段に向上させることができる。また、上記アドレス対応情報を半導体メモリ上に予め別途用意しておく必要がないため、ホスト機器の処理中にデータ記憶装置への電源供給が遮断されてしまった場合でも、上記位置情報を基に上記アドレス対応情報を容易に構築することができる。
上記データ記憶装置において、前記制御手段は、前記第1のページの直後の第3のページに前記第2のデータが書き込まれる際に、前記第1の位置情報を基に、前記第3のページの前記冗長領域に、前記第1のデータが最後に書き込まれた前記第1のページの前記半導体メモリ上での位置を示す第2の位置情報を記憶するよう制御してもよい。
これにより、新たなページにデータが書き込まれる度に当該ページの冗長領域に新たな位置情報を記憶することができるため、ホスト機器は常に最新の位置情報を基にアドレス対応情報を容易に構築することができる。
上記データ記憶装置において、前記制御手段は、前記第1のデータの書き込み後に前記第2のデータを書き込む場合であって、前記各ブロックのうち第1のブロック内に前記第2のデータを書き込み可能なページが存在しない場合に、前記第2のデータを前記第1のブロックとは異なる第2のブロックの先頭の第4のページへ書き込み、前記第1のデータを前記第4のページの直後の第5のページへ書き込み、当該第5のページの冗長領域に、前記第2のデータが最後に書き込まれた前記第4のページの前記半導体メモリ上での位置を示す第2の位置情報を記憶し、前記第1のブロックを消去するよう制御しても構わない。
これにより、書き込み対象のブロックが移動した場合でも、当該新たなブロックにおいて、最終書き込み対象のページの冗長領域に第2の位置情報を記憶させ、上記アドレス対応情報を構築させることができる。
本発明の他の観点に係るデータ管理方法は、データの消去単位である複数のブロックに分割され、かつ、前記各ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数のページに分割された不揮発性の半導体メモリを有し、ホスト機器に着脱自在なデータ記憶装置におけるデータ管理方法であって、前記各ブロックのうち第1のブロックの各ページのうち第1のデータが最後に書き込まれた第1のページの前記冗長領域に、当該第1のデータの書き込み以前に当該第1のデータとは異なる第2のデータが最後に書き込まれた第2のページの前記半導体メモリ上での位置を示す第1の位置情報を記憶し、前記第1のページの前記冗長領域から前記第1の位置情報を読み出し、前記第1及び第2のデータの、前記半導体メモリ上における位置と、前記ホスト機器により割り当てられた論理空間における位置との対応関係を示す対応情報を生成することを特徴とする。
この構成により、ホスト機器は、上記第1の位置情報から生成した対応情報を基に第2のデータへ即座にアクセスすることが可能となる。
上記データ管理方法において、前記第1のページの直後の第3のページに前記第2のデータが書き込まれる際に、前記第1の位置情報を基に、前記第3のページの前記冗長領域に、前記第1のデータが最後に書き込まれた前記第1のページの前記半導体メモリ上での位置を示す第2の位置情報を記憶し、前記記憶された第2の位置情報を基に、前記対応情報を更新するようにしてもよい。
上記データ管理方法において、前記対応情報を当該データ記憶装置または前記ホスト機器の所定の記憶領域へ記憶し、前記記憶された対応情報を基に前記第2のページから前記第2のデータを読み出し、前記読み出しが終了したときに前記記憶領域から前記対応情報を消去するようにしても構わない。
これにより、上記記憶領域の容量を最小限に抑えることができる。
上記データ管理方法において、前記第1のデータの書き込み後に前記第2のデータを書き込む場合であって、前記各ブロックのうち第1のブロック内に前記第2のデータを書き込み可能なページが存在しない場合に、前記第2のデータを前記第1のブロックとは異なる第2のブロックの先頭の第4のページへ書き込み、前記第1のデータを前記第4のページの直後の第5のページへ書き込み、前記第5のページの冗長領域に、前記第2のデータが最後に書き込まれた前記第4のページの前記半導体メモリ上での位置を示す第2の位置情報を記憶し、前記第1のブロックを消去し、前記第5のページの前記冗長領域から読み出した前記第2の位置情報を基に前記対応情報を更新するようにしてもよい。
以上のように、本発明によれば、不揮発性半導体メモリからデータを読み出す際の処理速度を向上させることができる。
以下、本発明の実施の形態を図面に基づき説明する。
図1は本発明の一実施形態に係るデータ記憶装置の構成を示すブロック図である。
同図に示すように、データ記憶装置10は、不揮発性半導体メモリ1、制御部としてのプロセッサ2、内部RAM3、バッファRAM4、及びインターフェース部5を有する。データ記憶装置10は、例えばカード状の形態のいわゆるメモリカードであり、PCやディジタルカメラ等のホスト機器(図示を省略)に対して抜き差し可能なリムーバブルメモリとして用いられる。
同図に示すように、データ記憶装置10は、不揮発性半導体メモリ1、制御部としてのプロセッサ2、内部RAM3、バッファRAM4、及びインターフェース部5を有する。データ記憶装置10は、例えばカード状の形態のいわゆるメモリカードであり、PCやディジタルカメラ等のホスト機器(図示を省略)に対して抜き差し可能なリムーバブルメモリとして用いられる。
不揮発性半導体メモリ1は、複数のマルチレベルセルにより構成され、例えば各セルが4値(2ビット)を記憶するNANDフラッシュメモリである。
プロセッサ2は、データ記憶装置10の各ブロックを統括的に制御しながら、内部RAM3またはバッファRAM4と不揮発性半導体メモリ1との間でデータ転送を行い、データの読み出し、書き込み及び消去を行う。
内部RAM3は、プロセッサ2の作業用の記憶領域として用いられ、例えば、ホスト機器から転送されるプロセッサ2に対する動作制御コマンドや、当該コントロールコマンドを実行する際に必要な諸処のパラメータ、データ記憶装置10内の内部状態等を一時的に記憶する。また内部RAM3は、不揮発性半導体メモリ1から読み出されたデータを再度不揮発性半導体メモリ1へ書き込む際に、当該書き込みデータを一旦蓄える。
バッファRAM4は、いわゆるページバッファとして機能し、インターフェース部5を介してホスト機器側から転送された書き込みデータを一旦蓄えると共に、不揮発性半導体メモリ1から読み出されインターフェース部5を介してホスト機器側に転送されるデータを一旦蓄える。
インターフェース部5は、ホスト機器のホストインターフェース部11との間のインターフェースを取るためのものである。インターフェース部5は、例えば、シリアルプロトコルにより3本の信号線を用いてデータ転送を行うシリアルインターフェースと、パラレルプロトコルにより6本の信号線を用いてデータ転送を行うパラレルインターフェースとを有する。
図2は不揮発性半導体メモリ1における記憶領域の構成を示す図である。
同図に示すように、この記憶領域は、複数のブロック(物理ブロック)21(ブロック0、ブロック1・・・)に分割されている。この各ブロック21はデータの消去単位となる。各ブロック21は、データの書き込み単位または読み出し単位である複数のページ(物理ページ)22(ページ0、ページ1・・・)に分割されている。
同図に示すように、この記憶領域は、複数のブロック(物理ブロック)21(ブロック0、ブロック1・・・)に分割されている。この各ブロック21はデータの消去単位となる。各ブロック21は、データの書き込み単位または読み出し単位である複数のページ(物理ページ)22(ページ0、ページ1・・・)に分割されている。
図3は、1つのブロック21の各ページ22の構成を示した図である。
同図に示すように、1つのブロック21は例えば16個のページ22で構成され、各ページ22は、データ(実データ)の書き込み領域である複数(例えば4個)のセクタ23(セクタ0〜セクタ3)と、エラー訂正符号やその他のメタデータの記憶領域である冗長エリア24とを有している。
同図に示すように、1つのブロック21は例えば16個のページ22で構成され、各ページ22は、データ(実データ)の書き込み領域である複数(例えば4個)のセクタ23(セクタ0〜セクタ3)と、エラー訂正符号やその他のメタデータの記憶領域である冗長エリア24とを有している。
図4は、本実施形態における冗長エリア24に記憶された情報の一例を示した図である。
本実施形態においては、各ブロック21には、予め複数の種類のデータを識別するためのデータID(例えばA〜F)が割り当てられており、各ブロック21の各ページ22には、その割り当てられた何れかのデータIDを有するデータしか書き込めないようになっている。より具体的には、データIDは、ホスト機器により割り当てられた論理空間上での各データの論理ブロックアドレス(LBA:Logical Block Address)に対応付けられている。例えば、データID:A〜Fは、LBA:0〜5に対応している。
本実施形態においては、各ブロック21には、予め複数の種類のデータを識別するためのデータID(例えばA〜F)が割り当てられており、各ブロック21の各ページ22には、その割り当てられた何れかのデータIDを有するデータしか書き込めないようになっている。より具体的には、データIDは、ホスト機器により割り当てられた論理空間上での各データの論理ブロックアドレス(LBA:Logical Block Address)に対応付けられている。例えば、データID:A〜Fは、LBA:0〜5に対応している。
同図に示すように、各ページ22の冗長エリア24には、そのページ22に書き込まれているデータのデータIDと、その他の各データIDに対応する最新データ(最後に書き込まれたデータ)が書き込まれたページ22の位置(ページ番号)を示す情報が記憶されている。例えば、同図の例においては、ページ10に書き込まれているデータはデータID:Fを有するデータであり、その他のデータID:A〜Eを有するデータの各最新データは、それぞれページ5、ページ8、ページ9、ページ3、ページ0に書き込まれていることを示している。
各ブロック21には、同一のデータIDを有するデータが複数のページ22に書き込まれる場合もあるが、冗長エリア24には、あくまでそれら複数の同一データのうち、最後に書き込まれたデータが書き込まれたページ位置を示す情報が記憶される。すなわち、冗長エリア24には、同一データが書き込まれた複数のページのうち、最大のページ番号が記憶される。同図の例では、同図のページ1、2、5〜7に示された「x」は、それらのページに書き込まれたデータと同一のデータが後のページにも書き込まれていることを示している。
各データIDは、そのページ22に書き込まれているデータを一意に識別できるものであれば、アルファベットのほか、数値であっても、文字列であっても構わない。またその他のデータIDに対応する最新データのページ位置を示す情報は、当該ページ位置が一意に識別できるものであれば、物理ページ番号のほか、論理ページ番号であってもよいし、そのページからの相対位置を示す情報であっても構わない。
図5は、本実施形態における冗長エリア24に記憶された情報の他の例を示した図である。
同図に示すように、必ずしも各ブロック21に割り当てられたデータIDの全てに対応するデータが存在しない場合もある。同図の例では、このブロック21にはデータID:Aに対応するデータがどのページ22にも存在しないため、ページ10の冗長エリア24には、そのことを示す情報(「nonexistence」)が記憶される。もちろん、何れかのIDに対応するデータが存在しないことを示す情報は、文字列であっても、数字であっても構わない。
同図に示すように、必ずしも各ブロック21に割り当てられたデータIDの全てに対応するデータが存在しない場合もある。同図の例では、このブロック21にはデータID:Aに対応するデータがどのページ22にも存在しないため、ページ10の冗長エリア24には、そのことを示す情報(「nonexistence」)が記憶される。もちろん、何れかのIDに対応するデータが存在しないことを示す情報は、文字列であっても、数字であっても構わない。
次に、上記のように構成されたデータ記憶装置10及びホスト機器の動作について説明する。
ホスト機器が各ブロック21にアクセス(読み出し/書き込み)する際には、各ブロック21内部の最終使用(書き込み)済みページの冗長エリア24の情報を読み出し、各ブロックに割り当てられている全てのデータIDに対応するデータがどのページ22に存在しているかを示す対応情報を生成する。本実施形態においては、この対応情報をID/ページマップと称する。なお、最終使用済みページを検索する手法としては、例えば、各ページ22の冗長エリア24に書き込みが発生しているか否かを条件として、各ブロック21の最後のページ(最大のページ番号を有するページ)から前のページへ順に読み出しを行っていく手法(線形検索)や、2分検索、木検索等の周知の手法が用いられる。
図6は、当該ID/ページマップの例を示した図である。
同図(a)は、各ブロック21に割り当てられたデータIDの全てに対応するデータが存在している場合のID/ページマップ61を示している。この例では、上記図4に示したページ10の冗長エリア24を基に生成されたID/ページマップ61が示されている。
同図(a)は、各ブロック21に割り当てられたデータIDの全てに対応するデータが存在している場合のID/ページマップ61を示している。この例では、上記図4に示したページ10の冗長エリア24を基に生成されたID/ページマップ61が示されている。
同図(b)は、各ブロック21に割り当てられたデータIDのうちいずれかのIDに対応するデータが存在しない場合のID/ページマップ61を示している。この例では、上記図5に示したページ10の冗長エリア24を基に生成されたID/ページマップ61が示されている。
このID/ページマップ61は、ホスト機器の揮発性メモリ(図示せず)上や、データ記憶装置10の内部RAM3に保持され、例えばホスト機器からのアクセスが完了する毎に消去される。また、ID/ページマップ61は、ホスト機器がID/ページマップ61が生成されたブロック21へアクセスする可能性がある間は保持され続けるようにしても構わない。
次に、不揮発性半導体メモリ1にアクセス(書き込み/読み出し)がある場合のホスト機器及びデータ記憶装置10の動作についてより詳細に説明する。
図7は、不揮発性半導体メモリ1にデータを書き込む際の動作を示したフローチャートである。
同図に示すように、ホスト機器は、各ブロック21に書き込みを行うに際し、まず、そのブロック21について既に生成済みのID/ページマップ61が存在するか否かを判断する(ステップ71)。ID/ページマップがまだ生成されていない場合には(No)、書き込みを行うページの直前のページの冗長エリア24を読み出し、当該冗長エリア24に記憶された情報を基にID/ページマップ61を生成する(ステップ72)。
次に、ホスト機器は、生成されたID/ページマップ61を、書き込み対象のページに応じて更新する(ステップ73)。このとき、データ記憶装置10は、この更新済みのID/ページマップ61に応じて、書き込み対象のページの冗長エリア24にデータIDとページ位置についての情報を生成する(ステップ74)。
そして、データ記憶装置10は、ホスト機器から指定されたデータと、上記生成した冗長エリア24の情報を、不揮発性半導体メモリ1の書き込み対象のページへ書き込む(ステップ75)。
図8は、データの書き込みに際して各ページの冗長エリア24の情報が順次記憶されていく様子を示した図である。
同図(a)に示すように、ブロックNのページ5の冗長エリア24には、データID:Fのデータが書き込まれており、またデータID:A〜Eに対応するデータは、それぞれページ1、ページ2、ページ3、ページ0及びページ4に書き込まれていることを示す情報が記憶されている。この状態から、次のページ6にデータID:Aのデータを書き込む場合には、上記ページ5の冗長エリア24の情報を基に生成されたID/ページマップ61がその書き込みに対応して更新される。
同図(a)に示すように、ブロックNのページ5の冗長エリア24には、データID:Fのデータが書き込まれており、またデータID:A〜Eに対応するデータは、それぞれページ1、ページ2、ページ3、ページ0及びページ4に書き込まれていることを示す情報が記憶されている。この状態から、次のページ6にデータID:Aのデータを書き込む場合には、上記ページ5の冗長エリア24の情報を基に生成されたID/ページマップ61がその書き込みに対応して更新される。
そして、同図(b)に示すように、当該更新されたID/ページマップ61を基に、ページ6の冗長エリア24には、当該ページ6にはデータID:Aのデータが書き込まれ、またデータID:B〜Fに対応するデータは、それぞれページ2、ページ3、ページ0、ページ4及びページ5に書き込まれていることを示す情報が記憶される。
この状態から、次のページ7にデータID:Bのデータを書き込む場合にも、同様に上記ページ6の冗長エリア24の情報を基に生成されたID/ページマップ61がその書き込みに対応して更新される。
そして、同図(c)に示すように、当該更新されたID/ページマップ61を基に、ページ7の冗長エリア24には、当該ページ7にはデータID:Bのデータが書き込まれ、またデータID:A、C〜Fに対応するデータは、それぞれページ6、ページ3、ページ0、ページ4及びページ5に書き込まれていることを示す情報が記憶される。
以上の動作により、各ページ22にデータの書き込みを行う度に、書き込み対象のページ22の冗長エリア24の情報が更新されていくため、ホスト機器は、最終使用済みページの冗長エリア24を読み出すことで、そのブロック21内のID/ページマップ61を即座に構築し、論理アドレスと物理アドレスとの対応関係を容易に把握することができる。
なお、ブロック21内に書き込みを行えるページ22が存在しない場合(全てのページ22に書き込みが行われている場合)には、書き込もうとしているデータを新たな別のブロック21へ書き込み、その後、書き込み対象以外の各データIDを有するデータを古いブロックから当該別のブロック21へコピーし、コピー終了後、古いブロック21のデータを消去する。図9は、この場合に各ページの新たなブロック21の冗長エリア24の情報が更新される様子を示した図である。
同図に示すように、データID:Dのデータの書き込み指令が発生し、ブロックNに書き込み可能なページがない場合には、データ記憶装置10は、まず、当該データID:Dのデータを新たなブロックMの先頭のページ0に書き込む。このとき、このページ0への書き込みに対応したID/ページマップ61が生成される。それとともに、同図(a)に示すように、ブロックMのページ0の冗長エリア24には、このページに書き込まれたデータがデータID:Dのデータであり、その他のデータID:A〜C、E及びFに対応するデータはいずれも当該ブロックMには存在しないことを示す情報が記憶される。
続いて、ブロックMのページ1にデータID:Aのデータがコピーされる場合には、当該ページ1への書き込みに対応して上記生成されたID/ページマップ61が生成される。それとともに、同図(b)に示すように、ブロックMのページ1の冗長エリア24には、このページに書き込まれたデータはデータID:Aのデータであり、データID:Dのデータはページ0に書き込まれ、その他のデータID:B、C、E及びFに対応するデータはいずれも当該ブロックMには存在しないことを示す情報が記憶される。
続いて、ブロックMのページ2にデータID:Bのデータがコピーされる場合にも同様に、当該ページ2への書き込みに対応して上記生成されたID/ページマップ61が生成される。それとともに、同図(c)に示すように、ブロックMのページ2の冗長エリア24には、このページに書き込まれたデータはデータID:Bのデータであり、データID:A、Dのデータはそれぞれページ1、0に書き込まれ、その他のデータID:B、C、E及びFに対応するデータはいずれも当該ブロックMには存在しないことを示す情報が記憶される。
ブロックMのページ3及び4にデータC及びEがそれぞれコピーされる場合にも、当該コピーに応じてID/ページマップ61が更新されるとともに各ページの冗長エリア24の情報も更新されていく(図示せず)。
そして、ブロックMのページ5にデータID:Fのデータがコピーされる場合にも、当該ページ5への書き込みに対応して上記生成されたID/ページマップ61が生成される。それとともに、同図(d)に示すように、ブロックMのページ5の冗長エリア24には、このページに書き込まれたデータはデータID:Fのデータであり、データID:A〜Eのデータはそれぞれページ1、ページ2、ページ3、ページ0、ページ4に書き込まれていることを示す情報が記憶される。以上の処理が終了すると、ブロックNは消去される。
このように、書き込み対象のブロックが変更される場合にも、前のブロックからのコピー処理に応じて各ページ22の冗長エリア24の情報が順次書き込まれていくため、ホスト機器は、各データIDに対応するデータが書き込まれている最新のページ位置を常に把握してID/ページマップ61を即座に構築することができる。なお、新たなブロックへのコピー処理の途中段階のページ(図8の例ではブロックMのページ0〜4)においては、冗長エリア24の情報さえ記憶されていればID/ページマップ61の更新処理は行わなくてもよく、コピー処理が終了した最終ページ(図8の例ではブロックMのページ5)についてのみID/ページマップ61を生成するようにしてもよい。
図10は、不揮発性半導体メモリ1に書き込まれたデータを読み込む際の動作を示したフローチャートである。
同図に示すように、データを読み出す場合には、まず、ホスト機器は、読み出し対象のブロック21についてID/ページマップ61が生成されているか否かを判断し(ステップ101)、ID/ページマップ61生成されていない場合(No)には、ホスト機器は、書き込み対象のブロック21の最終使用済みページを検索し、当該ページの冗長エリア24の情報からID/ページマップ61を生成する(ステップ102)。
同図に示すように、データを読み出す場合には、まず、ホスト機器は、読み出し対象のブロック21についてID/ページマップ61が生成されているか否かを判断し(ステップ101)、ID/ページマップ61生成されていない場合(No)には、ホスト機器は、書き込み対象のブロック21の最終使用済みページを検索し、当該ページの冗長エリア24の情報からID/ページマップ61を生成する(ステップ102)。
そして、ホスト機器は、生成されたID/ページマップ61を基に、読み出し対象のデータのページ位置を取得し(ステップ103)、取得したページ位置を基に、読み出し対象のデータを不揮発性半導体メモリ1から読み出す(ステップ104)。
このように、ホスト機器は、最終使用済みページの冗長エリア24の情報から即座にID/ページマップ61を生成し、所望のデータへ即座にアクセスすることができる。
本発明は上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
上述の実施形態における各ページ22の冗長エリア24の情報は、そのページ22に書き込まれたデータのデータIDと、他のデータIDに対応するデータが書き込まれた最新ページ位置を示す情報であったが、例えば図11に示すように、各ブロック21に割り当てられた全てのデータIDに対応するデータが書き込まれた各最新ページを記憶する形でも構わない。
上述の実施形態においては、各ブロック21に割り当てられたデータIDは6個(A〜F)であったが、もちろんこの数に限られるものではなく、冗長エリアの容量に応じて適宜変更することが可能である。
上述の実施形態においては、各ブロック21毎にID/ページマップ61を生成及び更新していたが、不揮発性半導体メモリ1の全てのブロック21について生成されたID/ページマップ61を統合した1つのID/ページマップ61を生成するようにしても構わない。
1…不揮発性半導体メモリ
2…プロセッサ
3…内部RAM
4…バッファRAM
5…インターフェース部
10…データ記憶装置
11…インターフェース部
11…ホストインターフェース部
21…ブロック
22…ページ
23…セクタ
24…冗長エリア
61…ID/ページマップ
2…プロセッサ
3…内部RAM
4…バッファRAM
5…インターフェース部
10…データ記憶装置
11…インターフェース部
11…ホストインターフェース部
21…ブロック
22…ページ
23…セクタ
24…冗長エリア
61…ID/ページマップ
Claims (7)
- ホスト機器に着脱自在なデータ記憶装置であって、
前記データの消去単位である複数のブロックに分割され、かつ、前記各ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数のページに分割された不揮発性の半導体メモリと、
前記各ブロックのうち第1のブロックの各ページのうち第1のデータが最後に書き込まれた第1のページの前記冗長領域に、当該第1のデータの書き込み以前に当該第1のデータとは異なる第2のデータが最後に書き込まれた第2のページの前記半導体メモリ上での位置を示す第1の位置情報を記憶するよう制御する制御手段と
を具備することを特徴とするデータ記憶装置。 - 請求項1に記載のデータ記憶装置であって、
前記制御手段は、前記第1のページの直後の第3のページに前記第2のデータが書き込まれる際に、前記第1の位置情報を基に、前記第3のページの前記冗長領域に、前記第1のデータが最後に書き込まれた前記第1のページの前記半導体メモリ上での位置を示す第2の位置情報を記憶するよう制御することを特徴とするデータ記憶装置。 - 請求項1に記載のデータ記憶装置であって、
前記制御手段は、前記第1のデータの書き込み後に前記第2のデータを書き込む場合であって、前記各ブロックのうち第1のブロック内に前記第2のデータを書き込み可能なページが存在しない場合に、前記第2のデータを前記第1のブロックとは異なる第2のブロックの先頭の第4のページへ書き込み、前記第1のデータを前記第4のページの直後の第5のページへ書き込み、当該第5のページの冗長領域に、前記第2のデータが最後に書き込まれた前記第4のページの前記半導体メモリ上での位置を示す第2の位置情報を記憶し、前記第1のブロックを消去するよう制御することを特徴とするデータ記憶装置。 - データの消去単位である複数のブロックに分割され、かつ、前記各ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数のページに分割された不揮発性の半導体メモリを有し、ホスト機器に着脱自在なデータ記憶装置におけるデータ管理方法であって、
前記各ブロックのうち第1のブロックの各ページのうち第1のデータが最後に書き込まれた第1のページの前記冗長領域に、当該第1のデータの書き込み以前に当該第1のデータとは異なる第2のデータが最後に書き込まれた第2のページの前記半導体メモリ上での位置を示す第1の位置情報を記憶し、
前記第1のページの前記冗長領域から前記第1の位置情報を読み出し、前記第1及び第2のデータの、前記半導体メモリ上における位置と、前記ホスト機器により割り当てられた論理空間における位置との対応関係を示す対応情報を生成する
ことを特徴とするデータ管理方法。 - 請求項4に記載のデータ管理方法であって、
前記第1のページの直後の第3のページに前記第2のデータが書き込まれる際に、前記第1の位置情報を基に、前記第3のページの前記冗長領域に、前記第1のデータが最後に書き込まれた前記第1のページの前記半導体メモリ上での位置を示す第2の位置情報を記憶し、
前記記憶された第2の位置情報を基に、前記対応情報を更新する
ことを特徴とするデータ管理方法。 - 請求項4に記載のデータ管理方法であって、
前記対応情報を当該データ記憶装置または前記ホスト機器の所定の記憶領域へ記憶し、
前記記憶された対応情報を基に前記第2のページから前記第2のデータを読み出し、
前記読み出しが終了したときに前記記憶領域から前記対応情報を消去する
ことを特徴とするデータ管理方法。 - 請求項4に記載のデータ管理方法であって、
前記第1のデータの書き込み後に前記第2のデータを書き込む場合であって、前記各ブロックのうち第1のブロック内に前記第2のデータを書き込み可能なページが存在しない場合に、前記第2のデータを前記第1のブロックとは異なる第2のブロックの先頭の第4のページへ書き込み、
前記第1のデータを前記第4のページの直後の第5のページへ書き込み、
前記第5のページの冗長領域に、前記第2のデータが最後に書き込まれた前記第4のページの前記半導体メモリ上での位置を示す第2の位置情報を記憶し、
前記第1のブロックを消去し、
前記第5のページの前記冗長領域から読み出した前記第2の位置情報を基に前記対応情報を更新する
ことを特徴とするデータ管理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007142734A JP2008299455A (ja) | 2007-05-30 | 2007-05-30 | データ記憶装置及びデータ管理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007142734A JP2008299455A (ja) | 2007-05-30 | 2007-05-30 | データ記憶装置及びデータ管理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008299455A true JP2008299455A (ja) | 2008-12-11 |
Family
ID=40172953
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007142734A Pending JP2008299455A (ja) | 2007-05-30 | 2007-05-30 | データ記憶装置及びデータ管理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2008299455A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009157807A (ja) * | 2007-12-27 | 2009-07-16 | Tdk Corp | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
| US9152547B2 (en) | 2009-07-16 | 2015-10-06 | Samsung Electronics Co., Ltd. | Apparatus and method for scratch pad memory management |
| CN108701084A (zh) * | 2017-01-23 | 2018-10-23 | 美光科技公司 | 部分写入块处理 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004151939A (ja) * | 2002-10-30 | 2004-05-27 | Matsushita Electric Ind Co Ltd | 記憶装置 |
| JP2006127242A (ja) * | 2004-10-29 | 2006-05-18 | Fuji Photo Film Co Ltd | 記憶デバイス制御装置及びプログラム |
-
2007
- 2007-05-30 JP JP2007142734A patent/JP2008299455A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004151939A (ja) * | 2002-10-30 | 2004-05-27 | Matsushita Electric Ind Co Ltd | 記憶装置 |
| JP2006127242A (ja) * | 2004-10-29 | 2006-05-18 | Fuji Photo Film Co Ltd | 記憶デバイス制御装置及びプログラム |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009157807A (ja) * | 2007-12-27 | 2009-07-16 | Tdk Corp | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
| US9152547B2 (en) | 2009-07-16 | 2015-10-06 | Samsung Electronics Co., Ltd. | Apparatus and method for scratch pad memory management |
| CN108701084A (zh) * | 2017-01-23 | 2018-10-23 | 美光科技公司 | 部分写入块处理 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
| US8312554B2 (en) | Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus | |
| US8291155B2 (en) | Data access method, memory controller and memory storage system | |
| US9037782B2 (en) | Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same | |
| US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
| JP5708216B2 (ja) | フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム | |
| JP5874525B2 (ja) | 制御装置、記憶装置、記憶制御方法 | |
| JP2009199625A (ja) | メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
| JP2008130088A (ja) | 不揮発性メモリ管理方法及び装置 | |
| WO1999030239A1 (en) | Memory and access method | |
| KR20100094241A (ko) | 예비 블록을 포함하지 않는 불휘발성 메모리 장치 | |
| JPWO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
| JP2006040264A (ja) | メモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
| KR20070024504A (ko) | 기억 장치, 메모리 관리 방법 및 프로그램 | |
| US20100318726A1 (en) | Memory system and memory system managing method | |
| JPWO2007000862A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 | |
| US9798470B2 (en) | Memory system for storing and processing translation information | |
| JP4737223B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP2008299455A (ja) | データ記憶装置及びデータ管理方法 | |
| JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| US20070136510A1 (en) | Storage device, memory managing device, memory managing method, and program | |
| JP5949122B2 (ja) | 制御装置、記憶装置、記憶制御方法 | |
| TW202449616A (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
| JP4308780B2 (ja) | 半導体メモリ装置、メモリコントローラ及びデータ記録方法 | |
| JP2012068764A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100520 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120710 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121106 |