(57)【要約】【課題】重要データのより確実な保護ができ得るアクセス装置を提供する【解決手段】メモリアクセス装置１０は、論理メモリ空間を管理するファイルシステム装置１４と、論理メモリ空間と物理メモリ空間との対応関係を記憶するとともに、当該対応関係に基づいてフラッシュメモリに物理的にアクセスするドライバ装置１２と、を備えている。フラッシュメモリは、複数のストリングに物理的に分割されている。ファイルシステム装置１２は、メモリ空間をＲＯまたはＲＷのいずれかに設定された複数のパーティションに分割して管理する。ドライバ装置１２は、各ストリングを単一の論理パーティションを対応させることで、一つのストリングに記憶されるデータの書込制限種類を統一させる。【選択図】図１
2007094900.tif 000002
【特許請求の範囲】
【請求項１】
物理的に電荷制御が独立した複数のストリングに分割されたフラッシュメモリへのデータの読み書きを制御するアクセス装置であって、
論理メモリ空間を、書込制限種類がリードオンリーまたはリライタブルのいずれかに設定された複数のパーティションに分割して管理する上位管理手段と、
物理メモリ空間構成と論理メモリ空間構成との対応関係を記憶するとともに、上位管理装置からフラッシュメモリへのデータ読み書き指示があった場合に、当該対応関係に基づいてフラッシュメモリへのデータ読み書きを行う下位管理手段と、
を備え、
下位管理手段は、各ストリングを単一のパーティションを対応させることで、一つのストリングに記憶されるデータの書込制限種類を統一させることを特徴とするアクセス装置。
【請求項２】
請求項１に記載のアクセス装置であって、
下位管理手段は、ストリングとパーティションとの対応関係として、各ストリングを物理的に構成する複数のブロックそれぞれに割り当てられる物理アドレスと、各パーティションを論理的に構成する複数のクラスタそれぞれに割り当てられる論理アドレスと、の対応関係を記憶することを特徴とするアクセス装置。
【請求項３】
請求項２に記載のアクセス装置であって、
各ストリングに含まれる予測最大無効ブロック数が既知である場合に、
下位管理手段は、各ストリングに割り当てられた複数の物理アドレスに対して、当該ストリングを構成する物理ブロック数から当該ストリングに含まれる予測最大無効ブロック数を引いた数分の論理アドレスを対応させることを特徴とするアクセス装置。
【請求項４】
請求項２または３に記載のアクセス装置であって、
フラッシュメモリへリライタブルデータを記録する場合、
下位管理手段は、上位管理手段からデータ記録が指示された論理アドレスに対応するストリング内において、指定された論理アドレスに基づいて決定される検索初期位置から順に、物理的にデータ記録されていない未記録ブロックを検索し、最初に見つかった未記録ブロックにデータを記録することを特徴とするアクセス装置。
【請求項５】
請求項４に記載のアクセス装置であって、
下位管理手段は、未記録ブロックを検索時に、ストリング末尾まで未記録ブロックが見つからない場合は、ストリング先頭から順に未記録ブロックを検索することを特徴とするアクセス装置。
【請求項６】
請求項４または５に記載のアクセス装置であって、
上位管理手段からデータ消去が指示された場合に、
下位管理手段は、当該指定された論理アドレスに対応するブロックを、論理的にデータ消去し、物理的にデータ消去しない擬似消去状態とすることを特徴とするアクセス装置。
【請求項７】
請求項６に記載のアクセス装置であって、
下位管理手段は、未記録ブロックを検索した結果、未記録ブロックが見つからなかった場合、前記擬似消去状態のブロックのデータを物理的に消去して、未記録ブロックにすることを特徴とするアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理的に電荷制御が独立した複数のストリングに分割されたフラッシュメモリへのデータの読み書きを制御するアクセス装置に関する。
【背景技術】
【０００２】
フラッシュメモリは、電源オフ後もデータを保持できること、また、サイズが小さいこと、などの利点を有している。そのため、従来から、様々な機器、例えば、デジタルカメラなどの記録媒体として多用されている。かかるフラッシュメモリへのデータ読み書きの制御に関しては、従来からの技術を利用できる。例えば、下記特許文献１，２などの技術を利用できる。
【０００３】
【特許文献１】特開２００３−３４６１０６号公報
【特許文献２】特開平１１−１１０９８４号公報
【特許文献３】特開平７−２８７６０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、フラッシュメモリには、上記のような利点がある一方で、ドレインディスターブと呼ばれる現象によりデータ破損が生じるという恐れもあることが知られている。ドレインディスターブは、フラッシュメモリを物理的に構成するブロック間において、データの書換回数の差が大きくなった際に生じる。かかるドレインディスターブに起因するデータ破損は、フラッシュメモリの信頼性を損ない、また、場合によっては、当該フラッシュメモリを記録媒体として利用している機器の制御に悪影響を与える。
【０００５】
そこで、特許文献３では、不揮発性メモリへのデータ書込み回数の超過によるデータ破壊を防止する技術が開示されている。この特許文献３では、メモリへの書込み回数を当該メモリに記憶し、データ書き込みに先立って、記憶された回数を確認している。これにより、書き込み回数超過によるデータ破壊を低減できる。
【０００６】
しかしながら、特許文献３では、書き込み回数を超過する場合にはデータ書き込みを行わないため、データ記録がＮＧになる。換言すれば、特許文献３に記載の技術では、メモリを使用できない場合があり、結果的には、当該メモリが搭載された機器の正常動作を阻害する。
【０００７】
また、一つのメモリに記憶される複数のデータの重要度は、必ずしも均等ではなく、データ種類によって重要度が異なることが多い。特許文献１〜３に記載の技術は、かかる重要度の違いを一切考慮していない。そのため、特許文献１〜３では、各データの重要度に応じたデータ保護、特に、重要データのより確実な保護がなされているとは言い難かった。
【０００８】
そこで、本発明では、重要データのより確実な保護ができ得るアクセス装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のアクセス装置は、物理的に電荷制御が独立した複数のストリングに分割されたフラッシュメモリへのデータの読み書きを制御するアクセス装置であって、論理メモリ空間を、書込制限種類がリードオンリーまたはリライタブルのいずれかに設定された複数のパーティションに分割して管理する上位管理手段と、物理メモリ空間構成と論理メモリ空間構成との対応関係を記憶するとともに、上位管理装置からフラッシュメモリへのデータ読み書き指示があった場合に、当該対応関係に基づいてフラッシュメモリへのデータ読み書きを行う下位管理手段と、を備え、下位管理手段は、各ストリングを単一のパーティションを対応させることで、一つのストリングに記憶されるデータの書込制限種類を統一させることを特徴とする。
【００１０】
好適な態様では、下位管理手段は、ストリングとパーティションとの対応関係として、各ストリングを物理的に構成する複数のブロックそれぞれに割り当てられる物理アドレスと、各パーティションを論理的に構成する複数のクラスタそれぞれに割り当てられる論理アドレスと、の対応関係を記憶する。
【００１１】
他の好適な態様では、各ストリングに含まれる予測最大無効ブロック数が既知である場合に、下位管理手段は、各ストリングに割り当てられた複数の物理アドレスに対して、当該ストリングを構成する物理ブロック数から当該ストリングに含まれる予測最大無効ブロック数を引いた数分の論理アドレスを対応させる。
【００１２】
他の好適な態様では、フラッシュメモリへリライタブルデータを記録する場合、下位管理手段は、上位管理手段からデータ記録が指示された論理アドレスに対応するストリング内において、指定された論理アドレスに基づいて決定される検索初期位置から順に、データ記録されていない未記録ブロックを検索し、最初に見つかった未記録ブロックにデータを記録する。この場合、下位管理手段は、未記録ブロックを検索時に、ストリング末尾まで未記録ブロックが見つからない場合は、ストリング先頭から順に未記録ブロックを検索することが望ましい。  また、上位管理手段からデータ消去が指示された場合に、下位管理手段は、当該指定された論理アドレスに対応するブロックを、論理的にデータ消去し、物理的にデータ消去しない擬似消去状態とすることも望ましい。そして、未記録ブロックを検索した結果、未記録ブロックが見つからなかった場合、前記擬似消去状態のブロックのデータを物理的に消去して、未記録ブロックにすることが望ましい。
【発明の効果】
【００１３】
本発明によれば、一つのストリングに物理的に記録されるデータの書込制限種類を統一できる。そのため、一つのストリング内にリードオンリーデータとリライタブルデータとが混在することがなく、ドレインディスターブに起因するリードオンリーデータの破損が防止できる。その結果、重要データのより確実な保護ができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態について図面を参照して説明する。図１は、本発明の実施形態であるメモリアクセス装置１０の構成を示すブロック図である。このメモリアクセス装置１０は、デジタルカメラに搭載され、デジタルカメラ内部に設けられた上位制御装置からの指示に応じて、適宜、フラッシュメモリにアクセスし、データの読み出し、および、書き込みを行う。ただし、当然ながら、フラッシュメモリを記録媒体として使用する他の電子機器、例えば、電子音響装置や、携帯電話等にも適用できる。また、本実施形態において、メモリアクセス装置１０は、二つのフラッシュメモリにバスを介して接続されており、この二つフラッシュメモリへのデータ読み書きを制御している。しかし、当然ながら、より多数、または、より少数のフラッシュメモリへのデータ読み書きを制御するようにしてもよい。
【００１５】
メモリアクセス装置１０は、上位管理手段として機能するファイルシステム装置１４と、下位管理手段として機能するドライバ装置１２と、に大別される。ファイルシステム装置１４は、論理メモリ空間を管理する装置であり、各ファイルのアドレスを論理アドレスとして記憶している。また、本実施形態では、ファイルシステム装置１４は、メモリ空間を複数のパーティションに分割するとともに、各パーティションそれぞれに書込制限種類を設定している。書込制限種類としては、リードオンリーまたはリライタブルのいずれかが設定される。このパーティションの分割および書込制限種類の設定については後に詳説する。上位制御装置から所定のファイルへのアクセス指示があった場合、ファイルシステム装置１４は、当該ファイルの論理アドレスをドライバ装置１２へと通知する。
【００１６】
ドライバ装置１２は、物理メモリ空間構成と論理メモリ空間構成との対応関係を記憶するとともに、当該対応関係に基づいてフラッシュメモリの所定位置にデータ読み書きする。このドライバ装置１２は、ＣＰＵ１６とＲＡＭ２０およびＲＯＭ１８から構成されている。ＲＯＭ１８には、当該ドライバ装置１２を駆動するためのプログラムが記録されている。ＣＰＵ１６は、このＲＯＭ１８に記憶されたプログラムを起動して、ファイルシステム装置１４からの指示に応じたデータの読み出し、書き込みを実行する。ＲＡＭ２０には、データの読み出し、書き込みに必要な各種データが記憶されている。具体的には、制御対象であるフラッシュメモリの物理アドレスと論理アドレスとの対応表や、後述するストリング番号とアドレスオフセットとの対応表などが記憶されている。ＣＰＵ１６は、適宜、このＲＡＭ２０に記憶されている各種対応表を参照するとともに、必要に応じて対応表を更新する。具体的なデータ読み書き方法や、各種対応表の内容については後に詳説する。
【００１７】
次に、メモリアクセス装置１０の制御対象であるフラッシュメモリの物理的な構成、換言すれば、物理メモリ空間構成について図２を参照して説明する。図２は、単一のフラッシュメモリの物理的構成を概略的に示す図である。
【００１８】
通常、フラッシュメモリは、予め、複数の、具体的には３２のストリングに物理的に分割されている。各ストリングは、物理的に電荷制御が独立している。この複数のストリングには、物理的に先頭から昇順にストリング番号が付されている。各ストリング内には、さらに、複数の、具体的には２５６のブロックが設けられている。このブロックは、ＦＡＴファイルシステムにおけるクラスタに相当する単位であり、約１６ＫＢｙｔｅのデータが記録される。このブロックには、物理的に先頭から昇順に物理アドレスが付されている。
【００１９】
ここで、フラッシュメモリにおいては、隣接ブロックとのデータ書換回数の差が大きくなると、電荷異常が発生し、データ破損が生じる場合がある。かかる現象は、ドレインディスターブと呼ばれ、フラッシュメモリの信頼性低下の原因となっている。このドレインディスターブは、同一ストリング内のブロック間で生じ得る。例えば、図２におけるブロック２５６のデータ書換回数とブロック２５７のデータ書換回数との差が大きくなると、書換回数の少ないブロックに記憶されているデータが破損する場合がある。
【００２０】
一方で異なるストリング間でのデータ書換回数の差は、ドレインディスターブの原因とはならない。既述した通り、各ストリングは、物理的に電荷制御が互いに独立しているため、隣接ストリングにおけるブロックの電荷異常の影響を受けない。例えば、図２におけるブロック２５５と、ブロック２５６は隣接しているが、両ブロックは、異なるストリングに存在しており、物理的に電荷制御が独立している。したがって、このブロック２５５とブロック２５６とのデータ書換回数の差が大きくなっても、既述のドレインディスターブ現象は生じず、データ破損は生じないようになっている。
【００２１】
次に、本実施形態における論理メモリ空間構成と、物理メモリ空間構成と、の対応関係について図３を用いて説明する。図３のうち左側３列であるパーティション番号、記録データ種類、書込制限種類は、ファイルシステム装置１４で管理されている論理メモリ空間の構成を示している。また、右側２列のメモリ番号、ストリング番号は、物理メモリ空間の構成を示している。
【００２２】
図３から明らかなように、論理メモリ空間は、７つのパーティションに分割されている。各パーティションには、それぞれ、記録データ種類および書込制限種類が設定されている。書込制限種類としては、リライタブル（ＲＷ）とリードオンリー（ＲＯ）の二種がある。ＲＷは、適宜、データの書き換えが可能であることを示し、ＲＯはデータの書き換えが不可であることを示している。通常、ＲＯは、ユーザによるデータ再作成が困難であり、かつ、機器の基本的動作に深く関与しているデータが記憶されるパーティションに設定される。本実施形態では、キャリブレーションデータおよびファームウェア（ＦＷ）データを記憶するパーティション２およびパーティション３にＲＯを設定している。キャリブレーションデータは、デジタルカメラで取り扱われる画像の色調整に用いられるデータである。このキャリブレーションデータは、デジタルカメラの出荷時においてメーカにより作成、記録されるもので、ユーザによる再作成は困難なデータである。また、当該キャリブレーションデータが破損した場合、デジタルカメラで取り扱う各種画像の色調整ができなくなり、デジタルカメラの適切な動作が阻害される。したがって、このキャリブレーションデータを記憶するパーティション２には、ＲＯが設定さている。
【００２３】
ＦＷデータは、デジタルカメラの基本的制御に使用されるデータである。このＦＷデータもキャリブレーションデータと同様に、出荷時においてメーカにより作成記録されるデータであり、ユーザによる再作成が困難なデータである。また、当該ＦＷデータが破損した場合には、デジタルカメラの基本的制御が阻害されることになる。そこで、当該ＦＷデータを記録するパーティションには、ＲＯが設定されている。
【００２４】
一方、適宜、書き換えが必要なデータを記録するパーティションにはＲＷが設定されている。本実施形態では、メモリ管理用データ、カメラ設定データ、ユーザデータおよび画像キャッシュデータ、ユーザ画像データを記録するパーティション１，４，５，６，７にＲＷを設定している。
【００２５】
メモリ管理用データは、当該フラッシュメモリ１，２を管理するための情報である。例えば、破損したブロック、いわゆる、無効ブロックの数やその物理アドレス等がメモリ管理用データに相当する。このメモリ管理用データは、適宜、ドライバ装置により書き換えられるリライタブルデータであるため、当該メモリ管理用データを記録するパーティション１にはＲＷが設定されている。
【００２６】
カメラ設定データは、デジタルカメラの各種設定に関するデータである。これは、ユーザが適宜変更するデータであるため、当該データを記録するパーティション７もＲＷに設定されている。
【００２７】
ユーザデータは、ユーザによって作成、記憶されるデータのうち、画像データ以外のデータである。また、画像キャッシュデータは、画像撮像や画像処理の過程において、一時的に記憶される画像データである。したがって、このユーザデータおよび画像キャッシュデータを記憶するパーティション５も、ＲＷが設定されている。
【００２８】
ユーザ画像データは、デジタルカメラにより撮像され、ユーザから記録指示がなされた画像データである。記録指示がなされた画像データは、パーティション６，７のいずれかに記録され、保存される。このユーザ画像データを記録するパーティション６，７にもＲＷが設定されている。
【００２９】
以上の各パーティションは、それぞれ、物理メモリ空間の構成要素であるストリングに対応付けられている。図３に示すとおり、パーティション１にはストリング１が、パーティション２にはストリング２，３が、パーティション３にはストリング４〜６が、という具合に、一つのパーティションには１以上のストリングが対応付けられている。逆に、一つのストリングには、単一のパーティションが対応付けられている。別の見方をすれば、パーティションは、ストリング単位で区切られているとも言える。その結果、一つのストリングに記録されるデータの書込制限種類が統一されることになる。
【００３０】
すなわち、ドライバ装置は、各パーティションに論理的に記録されるデータを、当該パーティションに対応するストリングに物理的に記録する。このとき、一つのストリングに対応するパーティションを単一とした場合、当該ストリングに記録されるデータの書込制限種類は、対応するパーティションに設定された書込制限種類に限定されることになる。その結果、ＲＯデータを記憶するストリングにはＲＯデータのみが、ＲＷデータを記憶するストリングにはＲＷデータのみが、記録されることになる。
【００３１】
かかる構成とすることで、既述のドレインディスターブによるＲＯデータの破損を防止することができる。すなわち、ＲＯデータは、書き換えることがないデータである。したがって、ＲＯデータが記憶されるストリングに、ＲＷデータを記憶しなければ、隣接ブロックとの書換回数の差が生じることはなく、ドレインディスターブに起因するデータ破損も生じない。その結果、確実にＲＯデータが保護できる。なお、リードオンリーデータを保護するのは、リードオンリーデータの多くが再作成不可能なデータであり、かつ、デジタルカメラの基本的動作に影響を与えるデータであるからである。
【００３２】
一方、ＲＷパーティションに対応するストリングには、ＲＷデータが記憶される。したがって、当該ストリング内では、ドレインディスターブに起因するデータ破損が生じる恐れがある。しかしながら、通常、ＲＷデータは、ユーザにより再作成が可能なデータ、または、破損してもデジタルカメラの基本的動作に影響を与えないデータであることが多い。したがって、例え、ドレインディスターブに起因するデータ破損が生じたとしても、致命的な不具合を生じることはない。また、本実施形態では、ブロック間の書換回数の差を極力小さくするために、後に詳説するラウンドロビン方式でのデータ記録を実施している。そのため、通常のデータ読み書き方法に比較して、比較的、ドレインディスターブが生じにくい構成となっている。
【００３３】
次に、本実施形態のドライバ装置におけるアドレスの管理態様について図４を用いて説明する。図４は、各ストリングを構成するブロックに割り当てられる物理アドレスと、論理アドレスとの関係を示す表である。
【００３４】
既述したように、一つのストリングは２５６のブロックで構成されており、各ブロックには物理アドレスが先頭から昇順に割り当てられている。したがって、ストリング１の先頭ブロックには物理アドレス０が割り当てられ、ストリング２の先頭ブロックには物理アドレス２５６が割り当てられている。換言すれば、一つのストリングには２５６個の物理アドレスが割り当てられている。
【００３５】
一方、一つのストリングに対応する論理アドレスの数は、物理アドレス数（ブロック数）と異なる。これは、予測最大無効ブロック数を考慮しているためである。無効ブロックとは、破損等により使用できない無効なブロックである。かかる無効ブロックは、本来、存在しないことが望ましいが、実際には、一つのストリングに複数個の無効ブロックが存在している。
【００３６】
この無効ブロック数を考慮することなく、一つのストリングに同数の物理アドレスおよび論理アドレスを対応させた場合、無効ブロック数分だけ論理アドレスが余ることになる。そこで、本実施形態では、予め、この無効ブロックの予測最大数を考慮して論理アドレスを割り当てている。具体的には、一つのストリングに対応する論理アドレス数を、当該ストリングを構成するブロック数から無効ブロック数を引いた数でとしている。例えば、ストリング１における無効ブロック数が３２である場合、当該ストリング１に割り当てられる論理アドレスは０〜２２３の２２４個となる。
【００３７】
また、あるストリングに対応する先頭論理アドレスの値は、当該ストリングの先頭物理アドレス値を、当該ストリングより前のストリングおける無効ブロック数の総和分だけオフセットした値である。例えば、ストリング３の先頭論理アドレスは、ストリング３の先頭物理アドレス５１２を、ストリング３より前のストリング、すなわち、ストリング１およびストリング２における無効ブロック数の総和３２＋３２＝６４分だけオフセットした値４４８である。以下では、この当該ストリングより前のストリングにおける無効ブロックの総和をアドレスオフセットと呼ぶ。このようにアドレスオフセットに応じて、各ストリングの先頭論理アドレスを設定することにより、フラッシュメモリ全体で、空きのない、連続した論理アドレスを持つことができる。その結果、上位制御装置におけるアドレス管理を簡易化できる。
【００３８】
なお、無効ブロックは、後天的に発生する場合もあり、その数は固定していない。そこで、本実施形態では、予め、各ストリングにおいて発生し得る無効ブロックの最大数を予測しておき、その予測された予測最大無効ブロック数を考慮して論理アドレスの割り当てを行っている。
【００３９】
次に、本実施形態におけるリライタブルデータのデータ読み書き方法について図５〜図７を用いて説明する。図５〜図７は、物理アドレスと論理アドレスとの対応関係、および、各ブロックの消去状態を示す表である。ここで、図５〜図７において、論理アドレス番号が付されているブロックは、既に物理的にデータが記録されている記録済ブロックである一方、論理アドレスが割り当てられず、未記録ブロックと記載されているブロックはデータが記録されていない空きブロックである。また、消去状態が「擬似消去」と記載されているブロックは、論理的にはデータ消去され、物理的にはデータ消去されていないブロックである。
【００４０】
本実施形態のドライバ装置１２は、ファイルシステム装置１４からデータ記録が指示された場合、いわゆるラウンドロビン方式でデータ記録を行っている。具体的には、ドライバ装置１２は、ファイルシステム装置１４から指定された論理アドレスに対応する物理アドレスから順に未記録ブロックを検索し、最初に見つかった未記録ブロックにデータを記憶する。データ記録後、ドライバ装置１２は、データ記憶されたブロックの物理アドレスと、指定された論理アドレスと、を対応付けてＲＡＭ２０に記憶する。なお、ストリングの末尾まで未記録ブロックが見つからなかった場合には、ストリング先頭まで戻り、再び、順に未記録ブロックの検索を行う。また、消去指示があった場合には、指示されたブロックのデータを実際に消去するのではなく、擬似消去状態としておく。未記録ブロックの検索の際、この擬似消去ブロックは記録済ブロックとして取り扱う。ストリング内の全ブロックがデータ記録状態あるいは擬似消去状態となり、未記録ブロックが検索できなかった場合には、擬似消去状態のデータを実際に消去し、未記録ブロックとする。その後、再度、未記録ブロックの検索を行い、データの記録を行う。
【００４１】
例えば、ファイルシステム装置１４から論理アドレス４７７へのデータ記録が指示されたとする。この場合、ドライバ装置１２は、論理アドレス４７７に対応する物理アドレスから順に、未記録ブロックの有無を検索していく。ここで、論理アドレス４７７に対応する物理アドレスとは、論理アドレス４７７に、既述のアドレスオフセットを足した値である。論理アドレス４７７は、ストリング２に存在し、ストリング２におけるアドレスオフセットは３２である。したがって、論理アドレス４７７に対応する物理アドレスは、論理アドレス４７７にアドレスオフセット３２を足した５０９となる。したがって、ドライバ装置１２は、物理アドレス５０９から順に、未記録ブロックを検索する。
【００４２】
物理アドレス５０９が未記録であった場合には、当該物理アドレス５０９にデータを記録するとともに、物理アドレス５０９と論理アドレス４７７とを対応づけてＲＡＭ２０に記憶する。一方、物理アドレス５０９が記録済であった場合には、次の物理アドレス５１０の記録状況を確認し、未記録ブロックの検索を実行する。ストリングの末尾の物理アドレスまで未記録ブロックが見つからなかった場合には、ストリングの先頭の物理アドレスから順に未記録ブロックを検索する。そして、未記録ブロックが見つかれば、当該ブロックにデータを記録するとともに、当該ブロックの物理アドレスと論理アドレスとを対応付けてＲＡＭ２０に記憶する。
【００４３】
図５の例では、物理アドレス５０９からストリング末尾の物理アドレスまでの間に未記録ブロックは無い。したがって、ドライバ装置１２は、ストリング先頭の物理アドレス２５６から順に未記録ブロックの検索を行う。そして、最初に見つかった未記録ブロックである物理アドレス２６０にデータを記録するとともに、当該物理アドレス２６０と論理アドレス４７７とを対応付けてＲＡＭ２０に記憶する。
【００４４】
次に、論理アドレス３５２のデータ消去指示がファイルシステム装置１４から指示されたとする。この場合、ドライバ装置１２は、ＲＡＭ２０の記録を参照して論理アドレス３５２に対応する物理アドレスの値を取得し、当該物理アドレスが割り当てられたブロックを擬似消去状態とする。具体的には、図６に図示するように、論理アドレス３５２と対応する物理アドレス５１１のブロックを擬似消去状態とする。また、物理アドレス５１１（論理アドレス３５２）を擬似消去状態としたことをＲＡＭ２０に記憶する。
【００４５】
この図６の状態で、さらに、ファイルシステム装置１４から論理アドレス４７８へのデータ記録が指示されたとする。この場合、論理アドレス４７８と対応する物理アドレス５１０から順に未記録ブロックの検索を行う。このとき、物理アドレス５１１は、論理的にはデータ消去されているものの、物理的にはデータが残っている擬似消去状態である。したがって、ドライバ装置１２は、当該物理アドレス５１１は、記録済ブロックとして取り扱い、更なる、未記録ブロックの検索を続ける。そして、ストリング内の全てのブロックを検索しても未記録ブロックが見つからない場合には、擬似消去状態のブロックのデータを実際に消去する。すなわち、未記録ブロックが見つからなかった場合、ドライバ装置１２は、ＲＡＭ２０の記録を参照して、当該ストリング内における全ての擬似消去ブロックの物理アドレスを取得する。そして、取得した物理アドレスに基づいて、全ての擬似消去ブロックについて、記録されているデータを物理的に消去し、未記録ブロックにする。図６の状態であれば、擬似消去ブロックは、物理アドレス５１１である。したがって、この物理アドレス５１１のブロックのデータを実際に消去し、図７のような状態にする。実際にデータ消去した後、ドライバ装置１２は、ＲＡＭに記録されている、物理アドレス、論理アドレスおよび消去状態の対応関係を更新する。そして、その状態で、再び、物理アドレス５１０から順に未記録ブロックの検索を開始する。この場合、物理アドレス５１１が未記録ブロックであるため、ここにデータを記録する。また、論理アドレス４７８と物理アドレス５１１を対応づけてＲＡＭ２０に記憶する。
【００４６】
以上の説明から明らかなように、本実施形態では、ファイルシステム装置１４から指定された論理アドレスに対応する物理アドレスから順に未記録ブロックを検索している。また、データ消去が指示されたブロックについては、即座に物理的にデータ消去するのではなく、擬似消去状態としている。そのため、特定のブロックについてのみ、物理的なデータ書き込み、消去が多数回、繰り返される可能性が低い。その結果、ブロック間での書換回数の差が低減される。そして、ひいては、ドレインディスターブに起因するデータ破損を低減できる。
【００４７】
以上、説明したように、本実施形態によれば、一つのストリングにＲＷデータとＲＯデータとを混在させない構成となっている。その結果、ドレインディスターブに起因するＲＯデータの破損が防止でき、重要データであるＲＯデータをより確実に保護できる。また、ＲＷデータを記憶するブロックを分散させることで、一つのストリング内における書換回数の差を低減している。その結果、ＲＷデータが記録されるストリングでの、ドレインディスターブの発生を低減することができ、ＲＷデータの破損を低減できる。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態であるメモリアクセス装置の構成を示すブロック図である。
【図２】フラッシュメモリの物理的構成を示す図である。
【図３】論理メモリ空間構成および物理メモリ空間構成の対応関係を示す表である。
【図４】各ストリングに対応する物理アドレス数および論理アドレス数を示す表である。
【図５】物理アドレスと論理アドレスとの対応関係および各ブロックの消去状態を示す表である。
【図６】物理アドレスと論理アドレスとの対応関係および各ブロックの消去状態を示す表である。
【図７】物理アドレスと論理アドレスとの対応関係および各ブロックの消去状態を示す表である。
【符号の説明】
【００４９】
１０  メモリアクセス装置、１２  ドライバ装置、１４  ファイルシステム装置、１６  ＣＰＵ、１８  ＲＯＭ、２０  ＲＡＭ。
【図１】
2007094900.tif 000003
【図２】
2007094900.tif 000004
【図３】
2007094900.tif 000005
【図４】
2007094900.tif 000006
【図５】
2007094900.tif 000007
【図６】
2007094900.tif 000008
【図７】
2007094900.tif 000009