(57)【要約】【課題】内蔵フラッシュメモリのように容量の小さいフラッシュメモリに適した方法でデータを管理すること。【解決手段】フラッシュメモリの物理アドレス空間は、複数の局所空間に分割されている。各局所空間は、１個または２個以上の消去単位ブロックで構成されている。データの読み出しまたは書き込みの際に、局所空間単位でデータが管理される。各局所空間には、アプリケーション用に用意される論理アドレス空間の一部のデータが保存される。論理アドレス空間のデータと、そのデータが格納される局所空間との対応関係は、予めフラッシュメモリのドライバソフトウェアによって、論理アドレスごとに設定されている。そのため、実メモリにおける各データの格納場所を、局所空間内のアドレスのみで指定することができる。【選択図】図１
2010039676.tif 000002
【特許請求の範囲】
【請求項１】
一括してデータが消去される消去単位ブロックを複数個備えるフラッシュメモリのデータ管理方法において、前記フラッシュメモリの物理アドレス空間を、１個または複数個の前記消去単位ブロックごとに複数個の局所空間に分割し、前記局所空間単位でデータを管理することを特徴とするデータ管理方法。
【請求項２】
前記局所空間ごとに、前記局所空間に対応する論理アドレス空間を予め設定することを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
データの書き換え頻度に応じて、前記局所空間に対応する前記論理アドレス空間を調整することを特徴とする請求項２に記載のデータ管理方法。
【請求項４】
読み出し対象データの論理アドレス情報に基づいて、対応する前記局所空間を特定する第１ステップと、
前記第１ステップで特定された前記局所空間から前記論理アドレス情報に対応するアドレス情報を読み出す第２ステップと、
前記第２ステップで読み出された前記アドレス情報に基づいて、前記第１ステップで特定された前記局所空間内のデータ格納先を特定する第３ステップと、
前記第３ステップで特定された前記データ格納先からデータを読み出す第４ステップと、
を含むことを特徴とする請求項１に記載のデータ管理方法。
【請求項５】
書き込み対象データの論理アドレス情報に基づいて、対応する前記局所空間を特定する第１ステップと、
前記第１ステップで特定された前記局所空間内の未使用領域を検索する第２ステップと、
前記第２ステップの検索により見つかった未使用領域にデータを格納する第３ステップと、
前記第３ステップでデータが格納された領域のアドレス情報として、前記論理アドレス情報と前記第１ステップで特定された前記局所空間におけるアドレス情報との対応関係を格納する第４ステップと、
を含むことを特徴とする請求項１に記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、フラッシュメモリのデータ管理方法に関する。
【背景技術】
【０００２】
従来、フラッシュメモリシステムとして、実メモリ（フラッシュメモリ）の未使用領域にデータを書き込むための仮想マッピングシステムが提案されている。実メモリの物理アドレスと仮想メモリの論理アドレス（仮想アドレス）とは、仮想メモリマップによって関係付けられる（例えば、特許文献１参照。）。
【０００３】
【特許文献１】米国特許第５４０４４８５号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
マイクロコントローラなどのＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）に内蔵されたフラッシュメモリ（以下、内蔵フラッシュメモリとする）のメモリ容量は、ＬＳＩの外部に単独で設けられる一般的なフラッシュメモリ（以下、外部フラッシュメモリとする）のメモリ容量よりも小さい。また、内蔵フラッシュメモリには、重要でデータサイズの小さいシステム情報が格納されることが多い。そのため、外部フラッシュメモリに対するデータ管理方法を適用して内蔵フラッシュメモリのデータを管理したのでは、データの書き込みや読み出しの効率が悪く、データを高速に読み出すことができる、などの内蔵フラッシュメモリの利点を十分に享受することができない、という問題点がある。
【０００５】
開示のデータ管理方法は、内蔵フラッシュメモリのように容量の小さいフラッシュメモリに適した方法でデータを管理することができるデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
このデータ管理方法は、フラッシュメモリの物理アドレス空間を複数個の局所空間に分割し、この局所空間単位でデータを管理することを特徴とする。フラッシュメモリでは、データ消却時に、消去単位ブロックごとに一括してデータが消去される。局所空間は、１個または複数個の消去単位ブロックを含む。各局所空間と論理アドレス空間との対応関係は、予め設定される。その際、データの書き換え頻度に応じて、局所空間に対応する論理アドレス空間を調整するようにしてもよい。例えば、書き換え頻度の高いデータについては、局所空間への割り当て数を少なくし、書き換え頻度の低いデータについては、局所空間への割り当て数を多くしてもよい。
【０００７】
このデータ管理方法によれば、論理アドレスごとに、ユーザデータを格納する実メモリの局所空間が決まっているので、論理アドレスに対応する物理アドレスとして、その論理アドレスが対応する局所空間内のオフセットを指定するだけでよい。従って、物理アドレスと論理アドレスとの変換に必要な管理情報のサイズが小さくなる。それによって、フラッシュメモリ内の管理情報の占める割合が少なくなる。また、書き換えが頻繁に発生するデータを効率的に格納して、管理することができる。
【発明の効果】
【０００８】
開示のデータ管理方法によれば、内蔵フラッシュメモリのように容量の小さいフラッシュメモリに適した方法でデータを管理することができるという効果を奏する。
【発明を実施するための最良の形態】
【０００９】
以下に、この発明にかかるデータ管理方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【００１０】
（概略）
図１は、実施例におけるフラッシュメモリの概略を示す説明図である。図１に示すように、フラッシュメモリ１の物理アドレス空間は、複数の局所空間２，３，４に分割されている。各局所空間２，３，４は、１個または２個以上（図示例では、１個）の消去単位ブロック５，６，７で構成されている。各消去単位ブロック５，６，７には、識別情報、割り当て情報、データおよびアドレス情報が格納される。識別情報は、消去単位ブロックを識別するための情報である。割り当て情報は、データの格納状態を表す情報であり、データの書き込みまたは読み出しの単位毎に設けられる。割り当て情報には、アドレスに関する情報も含まれる。アドレス情報は、物理アドレスと論理アドレスの変換のための情報であり、データの書き込みまたは読み出しの単位毎に設けられる。各消去単位ブロック５，６，７内のデータは、そのブロック内の一部のデータを消去する際に、全て消去される。つまり、フラッシュメモリ１では、消去単位ブロック５，６，７ごとにデータの消去が行われる。
【００１１】
フラッシュメモリ１では、データの読み出しまたは書き込みの際に、局所空間単位でデータが管理される。各局所空間２，３，４には、本実施例のデータ管理方法によりアプリケーション用に用意される論理アドレス空間の一部のデータが保存される。各局所空間２，３，４と、各局所空間２，３，４に保存される論理アドレス空間のデータとは、予めフラッシュメモリ１のドライバソフトウェアによって設定されている（図２参照）。
【００１２】
図２は、実施例におけるアドレス変換の概略を示す説明図である。図２に示す例では、例えば、論理アドレス空間の＃０〜＃５のデータ８は、第１局所空間２内にのみ格納され、第１局所空間２以外の局所空間（例えば、第２局所空間３）内には保存されない。同様に、例えば、論理アドレス空間の＃６〜＃１１のデータ９は、第２局所空間３内にのみ格納される。
【００１３】
（フラッシュ内蔵マイクロコントローラの概略）
図３は、実施例におけるフラッシュ内蔵マイクロコントローラの概略を示す説明図である。図３に示すように、フラッシュ内蔵マイクロコントローラ１１は、前記フラッシュメモリ１に相当する内蔵フラッシュメモリ１２、ＣＰＵコア１３および内蔵ＲＡＭ１４を備えている。内蔵フラッシュメモリ１２、ＣＰＵコア１３および内蔵ＲＡＭ１４は、メモリバス１５を介して相互に接続されている。内蔵フラッシュメモリ１２には、例えばシステムデータもしくはユーザデータ、およびフラッシュメモリ１のドライバソフトウェアを含むソフトウェアが格納されている。
【００１４】
内蔵フラッシュメモリ１２が複数のバンクを備えた同時実行可能なメモリである場合、ＣＰＵコア１３は、内蔵フラッシュメモリ１２内のソフトウェアを読み出しながら、内蔵フラッシュメモリ１２内のシステムデータまたはユーザデータを書き換えることができる。また、内蔵フラッシュメモリ１２からソフトウェアの一部または全部を読み出し、それを内蔵ＲＡＭ１４に展開することにより、ＣＰＵコア１３が内蔵ＲＡＭ１４にアクセスしながら、内蔵フラッシュメモリ１２内のシステムデータまたはユーザデータを書き換えることができる。内蔵フラッシュメモリ１２、ＣＰＵコア１３および内蔵ＲＡＭ１４には、外部のバッテリー１６から電源が供給される。
【００１５】
（消去単位ブロックの構成）
図４は、実施例におけるフラッシュメモリの消去単位ブロックの構成例を模式的に示す説明図である。一例として、消去単位ブロックのサイズが８キロバイトであり、データの書き込みまたは読み出しのデータサイズ（以下、単位データサイズとする）が３２バイトであり、識別情報が６４バイトであり、各割り当て情報および各アドレス情報がそれぞれ２バイトであるとする。また、一つの局所空間が一つの消去単位ブロックで構成されているとする。この場合、図４に示すように、２５６個分のデータがデータ領域に格納され得る。従って、全割り当て情報のサイズは、５１２バイト（２バイト×２５６個）となる。全アドレス情報のサイズも同様である。比較のため、消去単位ブロックのサイズと識別情報のサイズを図４に示す例と同じとし、実施例にかかるデータ管理方法を適用しない場合の消去単位ブロックの構成を説明すると、次のようになる。
【００１６】
図７および図８は、局所空間に分割されていないフラッシュメモリの消去単位ブロックの構成を模式的に示す説明図である。図７および図８に示す例では、実施例にかかるデータ管理方法が適用されていない。図７に示す例では、消去単位ブロックのサイズが８キロバイトであり、単位データサイズが１２８バイトであり、識別情報が６４バイトであり、各割り当て情報および各アドレス情報がそれぞれ４バイトである。この場合、図７に示すように、６４個分のデータがデータ領域に格納され得る。全割り当て情報のサイズは、２５６バイト（４バイト×６４個）となり、全アドレス情報のサイズも同様である。
【００１７】
図８に示す例では、消去単位ブロックのサイズが８キロバイトであり、単位データサイズが３２バイトであり、識別情報が６４バイトであり、各割り当て情報および各アドレス情報がそれぞれ４バイトである。この場合、図８に示すように、２５６個分のデータがデータ領域に格納され得る。全割り当て情報のサイズは、１０２４バイト（４バイト×２５６個）となり、全アドレス情報のサイズも同様である。図８に示す例では、図７に示す例に対して、各割り当て情報のデータサイズおよび各アドレス情報のデータサイズを変えずに、単位データサイズを１／４にすると、全割り当て情報のサイズおよび全アドレス情報のサイズがいずれも４倍になる。その理由は、単位データサイズを１／４にしたことによって、データ領域に格納可能なデータの数が４倍になったため、データごとに必要な割り当て情報やアドレス情報もその分だけ必要になるからである。
【００１８】
それに対して、図４に示す例では、図７に示す例に対して、単位データサイズを１／４にしても、全割り当て情報のサイズおよび全アドレス情報のサイズはいずれも２倍に抑えられる。その理由は、アドレス情報のサイズに関して、フラッシュメモリの物理アドレス空間を複数の局所空間に分割することによって、論理アドレスに対応する物理アドレスのサイズを小さくすることができるからである。つまり、論理アドレスに応じて局所空間が特定されるので、物理アドレスとして、例えば該当する局所空間の先頭物理アドレスからのオフセットアドレスを指定するだけでよいからである。割り当て情報のサイズに関しては、割り当て情報としてアドレスに関する情報が含まれることがあるので、アドレス情報のサイズと同じサイズであればよいからである。
【００１９】
フラッシュメモリの使用効率を比較すると、図８に示す例では、データ領域の容量は、全体の７５％である。それに対して、図４に示す例では、データ領域の容量は、全体の８８％であり、全体の１／８にあたる容量が管理用の領域となる。従って、図４に示す例は、図８に示す例と比較して、８キロバイトの消去単位ブロックごとにデータ領域が１キロバイト増えることになる。
【００２０】
（データ読み出し手順）
図５は、実施例におけるデータ読み出し処理を示すフローチャートである。図５に示すように、データの読み出し処理が開始されると、まず、読み出し対象データの論理アドレス情報に基づいて、対応する局所空間を特定する（ステップＳ１）。次いで、特定された局所空間から、前記論理アドレス情報に対応するアドレス情報を読み出す（ステップＳ２）。このアドレス情報からは、当該局所空間の先頭物理アドレスからのオフセットアドレスが得られる。次いで、ステップＳ１で特定された局所空間の先頭物理アドレスに、ステップＳ２で得たオフセットアドレスを足して、当該局所空間内のデータ格納先を特定する（ステップＳ３）。次いで、ステップＳ３で特定されたデータ格納先からデータを読み出し（ステップＳ４）、データの読み出し処理を終了する。
【００２１】
（データ書き込み手順）
図６は、実施例におけるデータ書き込み処理を示すフローチャートである。図６に示すように、データの書き込み処理が開始されると、まず、書き込み対象データの論理アドレス情報に基づいて、対応する局所空間を特定する（ステップＳ１１）。次いで、特定された局所空間から割り当て情報を読み出し、当該局所空間内の「未使用」領域を検索する（ステップＳ１２）。局所空間が複数個の消去単位ブロックで構成される場合には、各消去単位ブロックの割り当て情報を読み出す。次いで、ステップＳ１２での検索により見つかった未使用領域の割り当て情報の一つを「未使用」から「使用中」に変更する（ステップＳ１３）。次いで、「使用中」に変更された割り当て情報に対応するデータ領域にデータを格納する（ステップＳ１４）。次いで、データが格納された領域の、当該局所空間の先頭物理アドレスからのオフセットアドレスを含む情報を用いて、そのデータが格納された領域のアドレス情報を更新する（ステップＳ１５）。次いで、ステップＳ１４でデータが格納された領域の割り当て情報を「使用中」から「確定」に変更し（ステップＳ１６）、データの書き込み処理を終了する。
【００２２】
（局所空間の割り当て方法）
局所空間の割り当て方法の一例を説明する。例えば、消去単位ブロックのサイズを８キロバイトとし、局所空間のサイズを消去単位ブロック２個分（１６キロバイト）とし、単位データサイズを３２バイトとし、各局所空間に割り当てる論理アドレス空間を単位データサイズ１２８個分（３２バイト×１２８個＝４０９６バイト）とする。この例において、例えば、論理アドレス空間の＃２０のデータを読み出す場合、２０を１２８で割ったときの商（０）に１を足した値（１）、すなわち１番目の局所空間内に＃２０のデータが存在することになる。また、論理アドレス空間の＃３００のデータを読み出す場合、３００を１２８で割ったときの商（２）に１を足した値（３）、すなわち３番目の局所空間内に＃３００のデータが存在することになる。このような演算を行うことにより、論理アドレス空間のデータが存在する局所空間を特定することができる。
【００２３】
局所空間の割り当て方法の別の例として、局所空間と論理アドレスの対応テーブルを用いて、目的の論理アドレスがどの局所空間に所属するかということを局所空間ごとに判定し、該当する局所空間を特定するようにしてもよい。この場合、局所空間と論理アドレスの対応テーブルは、予めソフトウェアプログラムに記述される。この方法は、局所空間に割り当てる論理アドレス空間のサイズが各局所空間ごとに異なる場合に適している。そのような運用例として、データの書き換え頻度に応じて、局所空間に割り当てる論理アドレス空間のサイズを調整することが考えられる。例えば、書き換え頻度の高いデータについては、局所空間への割り当て数を少なくし、書き換え頻度の低いデータについては、局所空間への割り当て数を多くする場合などである。
【００２４】
実施例によれば、フラッシュメモリ１が局所空間２，３，４に分割されていることによって、物理アドレスと論理アドレスとの変換に必要な管理情報のサイズが小さくなるので、フラッシュメモリ１内に占める管理情報の割合が小さくなる。また、書き換えが頻繁に発生するデータを効率的に格納して、管理することができる。従って、内蔵フラッシュメモリのように容量の小さいフラッシュメモリに適した方法でデータを管理することができる。また、アドレスの情報を小さくしても、一般的な３２ビットのアドレスの情報を有するフラッシュメモリ（最大４ギガバイトの容量）と同程度、またはそれ以上の容量のフラッシュメモリを扱うことができる。さらに、新たな管理情報など、追加の情報が不要であり、書き込み処理を、従来の処理に対して大幅に変更しなくてもよいので、電源遮断時の対応など、種々の動作や処理に対して新たな対策を講じる必要がないという利点がある。
【００２５】
以上において本発明は、上述した実施例に限らず、種々変更可能である。例えば、消去単位ブロックのサイズは、８キロバイトに限らず、６４キロバイトや１２８キロバイトなどでもよい。また、単位データサイズは、３２バイトに限らない。さらに、局所空間内の消去単位ブロックの数は１個に限らない。また、本発明は、外部フラッシュメモリにも適用可能である。
【００２６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００２７】
（付記１）一括してデータが消去される消去単位ブロックを複数個備えるフラッシュメモリのデータ管理方法において、前記フラッシュメモリの物理アドレス空間を、１個または複数個の前記消去単位ブロックごとに複数個の局所空間に分割し、前記局所空間ごとに、前記局所空間に対応する論理アドレス空間を予め設定し、書き換え頻度の高いデータの割り当て数が少なく、書き換え頻度の低いデータの割り当て数が多くなるように、前記論理アドレス空間を調整し、前記局所空間単位でデータを管理することを特徴とするデータ管理方法。
【００２８】
（付記２）前記局所空間ごとに、前記局所空間に対応する論理アドレス空間を予め設定することを特徴とする付記１に記載のデータ管理方法。
【００２９】
（付記３）データの書き換え頻度に応じて、前記局所空間に対応する前記論理アドレス空間を調整することを特徴とする付記２に記載のデータ管理方法。
【００３０】
（付記４）読み出し対象データの論理アドレス情報に基づいて、対応する前記局所空間を特定する第１ステップと、
前記第１ステップで特定された前記局所空間から前記論理アドレス情報に対応するアドレス情報を読み出す第２ステップと、
前記第２ステップで読み出された前記アドレス情報に基づいて、前記第１ステップで特定された前記局所空間内のデータ格納先を特定する第３ステップと、
前記第３ステップで特定された前記データ格納先からデータを読み出す第４ステップと、
を含むことを特徴とする付記１に記載のデータ管理方法。
【００３１】
（付記５）書き込み対象データの論理アドレス情報に基づいて、対応する前記局所空間を特定する第１ステップと、
前記第１ステップで特定された前記局所空間内の未使用領域を検索する第２ステップと、
前記第２ステップの検索により見つかった未使用領域にデータを格納する第３ステップと、
前記第３ステップでデータが格納された領域のアドレス情報として、前記論理アドレス情報と前記第１ステップで特定された前記局所空間におけるアドレス情報との対応関係を格納する第４ステップと、
を含むことを特徴とする付記１に記載のデータ管理方法。
【００３２】
（付記６）前記局所空間ごとに、書き換え頻度の高いデータの割り当て数が少なく、書き換え頻度の低いデータの割り当て数が多くなるように、前記局所空間に対応する前記論理アドレス空間を調整することを特徴とする付記３に記載のデータ管理方法。
【図面の簡単な説明】
【００３３】
【図１】実施例におけるフラッシュメモリの概略を示す説明図である。
【図２】実施例におけるアドレス変換の概略を示す説明図である。
【図３】実施例におけるフラッシュ内蔵マイコンの概略を示す説明図である。
【図４】実施例におけるフラッシュメモリの消去単位ブロックの構成例を示す説明図である。
【図５】実施例におけるデータ読み出し処理を示すフローチャートである。
【図６】実施例におけるデータ書き込み処理を示すフローチャートである。
【図７】局所空間に分割されていないフラッシュメモリの消去単位ブロックを示す説明図である。
【図８】局所空間に分割されていないフラッシュメモリの消去単位ブロックを示す説明図である。
【符号の説明】
【００３４】
１  フラッシュメモリ
２，３，４  局所空間
５，６，７  消去単位ブロック
【図１】
2010039676.tif 000003
【図２】
2010039676.tif 000004
【図３】
2010039676.tif 000005
【図４】
2010039676.tif 000006
【図５】
2010039676.tif 000007
【図６】
2010039676.tif 000008
【図７】
2010039676.tif 000009
【図８】
2010039676.tif 000010