(57)【要約】【課題】信頼性が高い不揮発性記憶装置やその中に備えられるメモリコントローラを提供する。【解決手段】メモリコントローラの主記憶メモリ１０４内に、アドレス管理テーブル（ＡＴ）とアドレス管理テーブルインデックス（ＡＴＩ）とをその物理アドレスが随時更新されるように格納し、且つＡＴＩの物理アドレスを指し示すアドレス管理テーブルインデックスポインタ（ＡＴＩポインタ）をメモリコントローラ内に備えられた不揮発性補助記憶メモリ１０１に記録する。【選択図】図１
2006190036.tif 000002
【特許請求の範囲】
【請求項１】
データと該データの記憶アドレスを管理するアドレス管理テーブルと該アドレス管理テーブルの記憶アドレスを管理するアドレス管理テーブルインデックスとが格納された不揮発性の主記憶メモリに、外部から与えられる論理アドレスに応じてアクセスするメモリコントローラであって、
前記メモリコントローラは、
データの読み書き制御を行う制御手段と、
前記主記憶メモリよりも書き換え保証回数が多く且つ前記アドレス管理テーブルインデックスの物理アドレスを保持するアドレス管理テーブルインデックスポインタが格納されている不揮発性補助記憶メモリと、を有しており、
前記制御手段は、不揮発性補助記憶メモリ上のアドレス管理テーブルインデックスポインタを参照することでアドレス管理テーブルインデックスを読み出し、該アドレス管理テーブルインデックスに基づいてアドレス管理テーブルを読み出し、該アドレス管理テーブルを用いて論理アドレスを物理アドレスに変換してデータの読み込みや書き込みを行うものであり、さらに当該アドレス管理テーブルインデックス及びアドレス管理テーブルの主記憶メモリ上での記憶アドレスの固定化を防ぐべく、アドレス管理テーブルインデックス及びアドレス管理テーブルを主記憶メモリへ書き戻す際にその書き込みアドレスを変更するものであることを特徴とするメモリコントローラ。
【請求項２】
前記不揮発性補助記憶メモリは、書き込み速度が前記主記憶メモリより速いメモリであることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記不揮発性補助記憶メモリは、不揮発性ＲＡＭから構成されることを特徴とする請求項１又は２記載のメモリコントローラ。
【請求項４】
前記不揮発性ＲＡＭは、強誘電体メモリ（ＦｅＲＡＭ）であることを特徴とする請求項３に記載のメモリコントローラ。
【請求項５】
前記不揮発性ＲＡＭは、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）であることを特徴とする請求項３に記載のメモリコントローラ。
【請求項６】
前記不揮発性ＲＡＭは、オボニックユニファイドメモリ（ＯＵＭ）であることを特徴とする請求項３に記載のメモリコントローラ。
【請求項７】
前記不揮発性ＲＡＭは、レジスタンスＲＡＭ（ＲＲＡＭ）であることを特徴とする請求項３に記載のメモリコントローラ。
【請求項８】
データと該データの記憶アドレスを管理するアドレス管理テーブルと該アドレス管理テーブルの記憶アドレスを管理するアドレス管理テーブルインデックスとが格納された不揮発性の主記憶メモリと、この不揮発性の主記憶メモリに対して外部から与えられた論理アドレスに応じてアクセスするメモリコントローラとを備える不揮発性記憶装置であって、
前記メモリコントローラは、
データの読み書き制御を行う制御手段と、
前記主記憶メモリよりも書き換え保証回数が多く且つ前記アドレス管理テーブルインデックスの物理アドレスを保持するアドレス管理テーブルインデックスポインタが格納されている不揮発性補助記憶メモリと、を有しており、
前記制御手段は、不揮発性補助記憶メモリ上のアドレス管理テーブルインデックスポインタを参照することでアドレス管理テーブルインデックスを読み出し、該アドレス管理テーブルインデックスに基づいてアドレス管理テーブルを読み出し、該アドレス管理テーブルを用いて論理アドレスを物理アドレスに変換してデータの読み込みや書き込みを行うものであり、さらに当該アドレス管理テーブルインデックス及びアドレス管理テーブルの主記憶メモリ上での記憶アドレスの固定化を防ぐべく、アドレス管理テーブルインデックス及びアドレス管理テーブルを主記憶メモリへ書き戻す際にその書き込みアドレスを変更するものであることを特徴とする不揮発性記憶装置。
【請求項９】
前記不揮発性補助記憶メモリは、書き込み速度が前記主記憶メモリより速いメモリであることを特徴とする請求項８に記載の不揮発性記憶装置。
【請求項１０】
前記不揮発性補助記憶メモリは、不揮発性ＲＡＭから構成されることを特徴とする請求項８又は９に記載の不揮発性記憶装置。
【請求項１１】
前記不揮発性ＲＡＭは、強誘電体メモリ（ＦｅＲＡＭ）であることを特徴とする請求項１０に記載の不揮発性記憶装置。
【請求項１２】
前記不揮発性ＲＡＭは、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）であることを特徴とする請求項１０に記載の不揮発性記憶装置。
【請求項１３】
前記不揮発性ＲＡＭは、オボニックユニファイドメモリ（ＯＵＭ）であることを特徴とする請求項１０に記載の不揮発性記憶装置。
【請求項１４】
前記不揮発性ＲＡＭは、レジスタンスＲＡＭ（ＲＲＡＭ）であることを特徴とする請求項１０に記載の不揮発性記憶装置。
【請求項１５】
データと該データの記憶アドレスを管理するアドレス管理テーブルと該アドレス管理テーブルの記憶アドレスを管理するアドレス管理テーブルインデックスとが格納された不揮発性の主記憶メモリと、この不揮発性の主記憶メモリに対して論理アドレスに応じてデータを読み書きするメモリコントローラとを備えると共に、前記論理アドレスを付与するアクセス装置を有する不揮発性記憶システムであって、
前記メモリコントローラは、
データの読み書き制御を行う制御手段と、
前記主記憶メモリよりも書き換え保証回数が多く且つ前記アドレス管理テーブルインデックスの物理アドレスを保持するアドレス管理テーブルインデックスポインタが格納されている不揮発性補助記憶メモリと、を有しており、
前記制御手段は、不揮発性補助記憶メモリ上のアドレス管理テーブルインデックスポインタを参照することでアドレス管理テーブルインデックスを読み出し、該アドレス管理テーブルインデックスに基づいてアドレス管理テーブルを読み出し、該アドレス管理テーブルを用いて論理アドレスを物理アドレスに変換してデータの読み込みや書き込みを行うものであり、さらに当該アドレス管理テーブルインデックス及びアドレス管理テーブルの主記憶メモリ上での記憶アドレスの固定化を防ぐべく、アドレス管理テーブルインデックス及びアドレス管理テーブルを主記憶メモリへ書き戻す際にその書き込みアドレスを変更するものであることを特徴とする不揮発性記憶システム。
【請求項１６】
前記不揮発性補助記憶メモリは、書き込み速度が前記主記憶メモリより速いメモリであることを特徴とする請求項１５に記載の不揮発性記憶システム。
【請求項１７】
前記不揮発性補助記憶メモリは、不揮発性ＲＡＭから構成されることを特徴とする請求項１５又は１６に記載の不揮発性記憶システム。
【請求項１８】
前記不揮発性ＲＡＭは、強誘電体メモリ（ＦｅＲＡＭ）であることを特徴とする請求項１７に記載の不揮発性記憶システム。
【請求項１９】
前記不揮発性ＲＡＭは、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）であることを特徴とする請求項１７に記載の不揮発性記憶システム。
【請求項２０】
前記不揮発性ＲＡＭは、オボニックユニファイドメモリ（ＯＵＭ）であることを特徴とする請求項１７に記載の不揮発性記憶システム。
【請求項２１】
前記不揮発性ＲＡＭは、レジスタンスＲＡＭ（ＲＲＡＭ）であることを特徴とする請求項１７に記載の不揮発性記憶システム。
【請求項２２】
外部から与えられる論理アドレスに応じて、不揮発性の主記憶メモリに対してデータを読み書きする際に用いるメモリ制御方法であって、
前記主記憶メモリとは別に設けられた不揮発性補助記憶メモリに格納されたアドレス管理テーブルインデックスポインタを参照することで、主記憶メモリ上のアドレス管理テーブルインデックスを読み出し、該アドレス管理テーブルインデックスに基づいて、主記憶メモリからアドレス管理テーブルを読み出し、該アドレス管理テーブルを用いて論理アドレスを物理アドレスに変換してデータの読み込みや書き込みを行い、さらに当該アドレス管理テーブルインデックス及びアドレス管理テーブルの主記憶メモリ上での記憶アドレスの固定化を防ぐべく、アドレス管理テーブルインデックス及びアドレス管理テーブルを主記憶メモリへ書き戻す際にその書き込みアドレスを変更することを特徴とするメモリ制御方法。
【請求項２３】
前記不揮発性補助記憶メモリは、書き込み速度が前記主記憶メモリより速いメモリであることを特徴とする請求項２２に記載のメモリ制御方法。
【請求項２４】
前記不揮発性補助記憶メモリは、不揮発性ＲＡＭから構成されることを特徴とする請求項２２又は２３に記載のメモリ制御方法。
【請求項２５】
前記不揮発性ＲＡＭは、強誘電体メモリ（ＦｅＲＡＭ）であることを特徴とする請求項２４に記載のメモリコントローラ。
【請求項２６】
前記不揮発性ＲＡＭは、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）であることを特徴とする請求項２４に記載のメモリ制御方法。
【請求項２７】
前記不揮発性ＲＡＭは、オボニックユニファイドメモリ（ＯＵＭ）であることを特徴とする請求項２４に記載のメモリ制御方法。
【請求項２８】
前記不揮発性ＲＡＭは、レジスタンスＲＡＭ（ＲＲＡＭ）であることを特徴とする請求項２４に記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法に関する。
【背景技術】
【０００２】
フラッシュメモリ等の不揮発性の主記憶メモリを内部に備えた不揮発性記憶装置は、フラッシュメモリにアクセスする際には、与えられた論理アドレスを物理アドレスに変換し、かかる物理アドレスをもってデータの書き込みや読み出しを行うようにしている。そして、このアドレス変換のためのアドレス管理テーブル（アドレス管理情報）を有している。
【０００３】
上述したような、アドレス管理テーブルをフラッシュメモリに記憶して、そのアドレス管理テーブルのうちの必要部分のみをランダムアクセスメモリ（ＲＡＭ）等の揮発性メモリに読み出して使用する不揮発性記憶装置は、例えば、特許文献１に記載されたものが知られている。
【０００４】
図８に、特許文献１に記載された不揮発性記憶装置に備えられているフラッシュメモリ８０５のアドレスマップを示す。フラッシュメモリ８０５は、管理領域８０１とデータ領域８０２とからなる。データ領域８０２は、外部のアクセス装置から読み書きされるデータ、即ち音楽データや画像データなどのいわゆるコンテンツ情報を格納する領域であり、例えば、１０２４ブロック毎に４つの領域（データ領域＃０〜データ領域＃３）に分割されている。
【０００５】
管理領域８０１には、管理情報、すなわちデータの論理ブロックアドレスに対応する物理ブロックアドレスを決めるアドレス管理テーブル（アドレス変換テーブル）が格納されており、管理領域８０１は、当該アドレス管理テーブルＬＴＰｂ８０４と、アドレス管理テーブルのインデックス情報が格納される領域ＬＴＰａ８０３とから構成されている。アドレス管理テーブルＬＴＰｂ８０４は、上記データ領域８０２の＃０〜＃３をそれぞれ管理するために、＃０〜＃３の４領域からなる。ＬＴＰｂ８０４＃０〜ＬＴＰｂ８０４＃３が管理するエントリ数は、データ領域８０２それぞれのブロック数に一致する。
【０００６】
各アドレス管理テーブルＬＴＰｂ８０４では、基本的には論理ブロックアドレス（０〜１０２３ブロック）を物理ブロックアドレス（０〜１０２３ブロック）に変換するために、各論理ブロックアドレスに対応する物理ブロックアドレスを有している。詳しくは、各論理ブロック番号ごとに、物理ブロック番号とアロケーションフラグとを１ワードで持っている。アロケーションフラグとは、記憶された物理ブロック番号に有効なデータが既にアロケートされているか否かを識別するフラグである。
【０００７】
一方、ＬＴＰａ８０３は、ＬＴＰｂ８０４＃０〜ＬＴＰｂ８０４＃３が記憶されている物理ブロック番号とアロケーションフラグを持つ。
【０００８】
上述したＬＴＰａ８０３及びＬＴＰｂ８０４＃０〜ＬＴＰｂ８０４＃３は、フラッシュメモリの消去単位である１ブロックで存在し、例えばブロック内がページ１からページＮとするとページ１（例えば２Ｋバイト）を使用して１つのアドレス管理テーブルを構成する。例えば、管理領域８０１の先頭ブロックのページ１にＬＴＰａ８０３を、その次のブロックのページ１にＬＴＰｂ８０４＃０を対応させ、各ブロックのページ１以外のページは未使用で構わない。
【０００９】
以上のように構成された不揮発性記憶装置について、その書き込み動作について説明する。外部のアクセス装置から与えられる論理アドレスに従い、データの書き込み先の領域を決定する。例えば、アクセス装置から論理アドレス０が指定されると、フラッシュメモリの中のデータ領域＃０に対応するＬＴＰｂ＃０を、ＬＴＰａ８０３に基づきフラッシュメモリからＲＡＭなどの揮発性メモリに読み出す。次に、読み出されたＬＴＰｂ＃０を参照し、まず論理ブロック番号に対応するアロケーションフラグをチェックする。該フラグをチェックした結果、未アロケートの場合は、論理ブロックに対応する物理ブロック番号を参照し、それに対応するデータ領域＃０の物理ブロックをイレーズ処理した上でデータを書き込む。その後、ＲＡＭ内でアロケーションフラグをアロケート済み状態、即ち値０に更新した後に、ＲＡＭからフラッシュメモリにＬＴＰｂ＃０を書き戻す。
【００１０】
一方、論理ブロック番号に対応するアロケーションフラグをチェックし、既にアロケート済みの場合は、論理ブロック番号０から１０２３までの全領域に対応する物理ブロック番号を調べ、アロケート済みでない物理ブロック番号（例えば物理ブロック番号１０）を探しだす。そして、物理ブロック番号１０に対応するデータ領域＃０の物理ブロックをイレーズ処理した上でそこにデータを書き込む。加えて、ＲＡＭ内で、論理ブロック番号０に対応する物理ブロック番号の部分に物理ブロック番号１０を書き込む。更に、以前、物理ブロック番号１０が記録されていた論理ブロック番号に関しては、以前論理ブロック番号０の物理ブロック番号の部分に記憶されていた値（物理ブロック番号値）に変更すると共に、アロケーションフラグを未アロケート状態、即ち値１にする。それらの後、ＲＡＭからフラッシュメモリにＬＴＰｂ＃０を書き戻す。
【００１１】
上記したメモリ管理方法により、データを外部から確実に読み書きできるようになる。しかしながら、特許文献１のアドレス管理方法では、ＬＴＰｂ８０４が固定領域に割り付けられている為、例えばデータ領域＃０内の１つのブロックだけでも書き換えられた場合には、必ずＬＴＰｂ＃０が割り付けられているブロックを書き換える必要があった。言い換えれば、データ領域＃０内の１０２４ブロックが各々１回ずつ書き換えられた場合、ＬＴＰｂ＃０が割り付けられているブロックは１０２４回書き換えられることになる。したがって、平均的なメモリ書き換え回数を考えた場合、データ領域８０２よりも管理領域８０１の方が約１０００倍以上の書き換えが行われるようになり、管理領域８０１の方に書き換えが集中してしまい、フラッシュメモリの寿命（書き換え回数約１０万回）にすぐ達してしまうという大きな問題点があった。
【００１２】
この問題点を解決する方法として、特許文献２に開示された「管理情報を再配置可能にする技術」がある。この技術によれば、アドレス管理領域を固定領域に割り付けるのではなく、管理領域の配置位置（配置アドレス）を逐次変更していくことにより、管理領域の書換回数をデータ領域と同程度に小さくすることが可能となり、フラッシュメモリの寿命を高めることが可能となる。
【００１３】
以下、特許文献２に開示された、管理領域の配置アドレスを逐次変更していくアドレス管理方法（以降、再配置型アドレス管理方法と呼ぶ）について、図５〜図７を用いて説明する。
【００１４】
図５は、再配置型アドレス管理方法が適用されるアドレス管理テーブル（ＡＴ）とアドレス管理デーブルのインデックス情報（ＡＴＩ）との構成を示す概念図であり、図６は、再配置型アドレス管理方法が適用される不揮発性記憶装置の構成および同装置内のフラッシュメモリのアドレスマップを示す図である。図７は、再配置型アドレス管理方法に基づく、アドレス管理情報更新方法を示すフローチャートである。ちなみに、特許文献２におけるエントリ領域及び管理領域は、それぞれ、図５のＡＴＩ群及びＡＴ群α，βに対応する。
【００１５】
図５において、５０１はＡＴＩ群である。５０２，５０３はＡＴ群であり、便宜上ＡＴ群αを５０２、ＡＴ群βを５０３とする。ＡＴ群は図示した以外にも存在するものである。また、５０４は物理ブロックであり、ＡＴＩ群５０１、ＡＴ群α５０２、ＡＴ群β５０３、・・・は、それぞれ４つの物理ブロック５０４から構成される。
【００１６】
図６において、６０８はフラッシュメモリ、６０１は不揮発性記憶装置とアクセス装置との間でデータやコマンドなどの信号を送受信するためのホストインターフェース（ホストＩ／Ｆ）、６０２はアクセス装置からのコマンドなどによりフラッシュメモリ６０８や不揮発性記憶装置の動作を制御する制御部、６０３はデータやアドレス管理情報などを一時蓄える揮発性メモリとしてのＲＡＭ（ランダムアクセスメモリ）である。また、６０４はＡＴＩ群を記憶するためのＡＴＩ群領域、６０５はデータを記憶するためのデータ領域であり、フラッシュメモリ６０８は、ＡＴＩ群領域６０４とデータ領域６０５からなる。また、６０６はＡＴ群であり、６０７は現ＡＴが管理するデータエントリ、６０９はホストＩ／Ｆ６０１と制御部６０２とＲＡＭ６０３をまとめたメモリコントローラである。なお、前述したフラッシュメモリ６０８は、消去単位である物理ブロックが２ページからなり、各ページサイズが２ＫＢで構成されるものとする。
【００１７】
ＡＴＩ群領域６０４は、データ領域６０５（＃０〜＃３）内のＡＴ群を管理するためのＡＴＩ群を格納する領域である。ＡＴＩは、各ＡＴ群の物理ブロック番号、即ち物理ブロックを指し示すアドレスを有する。１つのＡＴＩで、各データ領域に６４のＡＴ群を管理すると、約１ワード（物理ブロック番号１０ビット分）×４（データ領域数）×６４（ＡＴ群の数）＝５１２Ｂとなり、図５に示すように１ブロック当たり８個のＡＴＩを記録することができる。ＡＴＩはフラッシュメモリ６０８の先頭物理ブロックから４物理ブロック分に配置されＡＴＩ群６０１を形成する。
【００１８】
データ領域６０５は、外部のアクセス装置から読み書きされるデータ、即ち音楽データや画像データなどのいわゆるコンテンツ情報を格納すると共に、ＡＴ群を格納する領域である。また、データ領域６０５は４つの領域、即ちデータ領域＃０〜データ領域＃３に分割され、それぞれの領域毎に１０２４ブロックを有する。
【００１９】
これらデータ領域＃０〜＃３内には、それぞれのデータ領域を管理するＡＴ群が格納されている。各ＡＴは、論理ブロックアドレス（０〜１０２３ブロック）を物理ブロックアドレス（０〜１０２３ブロック）に変換する為に、論理ブロックアドレスに対応する論理ブロック番号（１０ビット）ごとに、物理ブロック番号（１０ビット）とアロケーションフラグ（１ビットで、物理ブロックに有効なデータが既にアロケートされているか否かを識別する）とを持つような構造となっている。なお、ＡＴが管理する単位、即ちデータエントリ６０７は１ブロック分となっている。これらのことから、１つのＡＴのデータ容量は、１１ビット（物理ブロック番号１０ビットとアロケーションフラグ１ビット）×１０２４ブロック＝約２０４８Ｂとなり、図５，図６に示されている如く、１ページに１つのＡＴを持つことになる。
【００２０】
次に、図５及び図７を用いて、書き込み動作について説明する。なお、図５のＡＴ群α５０２及びＡＴ群β５０３は、同一のデータ領域を管理するＡＴ群であり、同図に示す例では、ＡＴ群α５０２はＡＴＩ＃４により管理され、ＡＴ群β５０３はＡＴＩ＃５により管理される領域である。
【００２１】
ＡＴ及びＡＴＩの更新は、次のＡＴ及びＡＴＩのフラッシュメモリ６０８への書き込みが現ＡＴ及び現ＡＴＩと同一ブロックに行われず、且つＡＴの更新毎にＡＴＩの書き換え更新が発生しないように、書き込みの順番が予め決められた上でフラッシュメモリ６０８に記憶される。
【００２２】
また、ＡＴＩ群の中から最新のＡＴＩを検出する処理（図７のＳ７０１）は、例えば、初期化時に実施され、外部のアクセス装置から不揮発性記憶装置に対するデータ書き込み指令毎には実施されない。図７に示す一連の制御は、図６に示した制御部６０２によって実行され、制御部６０２は中央処理演算装置ＣＰＵ等を含んでもよい。
【００２３】
以下、１つのＡＴＩが管理するＡＴ群内での更新について述べる。まず、外部のアクセス装置から与えられる論理アドレスに従い、データの書き込み先の領域を決定する。例えば、外部のアクセス装置から論理アドレス０が指定されると、フラッシュメモリ６０８の中のデータ領域＃０に対応する現ＡＴ群を決定する。即ち図５においてＡＴ群α５０２とＡＴ群β５０３とのどちらが現ＡＴ群であるかを、現ＡＴＩから求める（Ｓ７０２）。
【００２４】
読み出された現ＡＴ群内で現在のＡＴ、例えばＡＴ＃２を現ＡＴＩから求め、フラッシュメモリ６０８からＲＡＭ６０３に読み出し、論理ブロック番号に対応する１ワード中の物理ブロック番号をチェックする（Ｓ７０３）。
【００２５】
論理ブロック番号に対応する１ワード中に物理ブロック番号が登録されていない、即ち未アロケートの場合は、未アロケート物理ブロック番号を検出し、対応するデータ領域＃０の物理ブロックをイレーズ処理し、データをフラッシュメモリ６０８に書き込み、データを書き込んだ物理ブロック番号に対応したアロケーションフラグをアロケート済み状態、即ち値０に更新する（Ｓ７０４）。その後に、予め決められた書き込み順に従いフラッシュメモリにＡＴ＃３を書く（Ｓ７０５、Ｓ７０７）。
【００２６】
一方、論理ブロック番号に対応する１ワード中の物理ブロック番号をチェックし、既にアロケート済みの場合は、ＲＡＭ６０３内でアロケート済みでない物理ブロック番号を検出し、フラッシュメモリ６０８内の対応するデータ領域＃０の物理ブロックをイレーズ処理し、データを書き込む。加えて、ＲＡＭ６０３内で、論理ブロック番号０の１ワード中の物理ブロック番号に対応する領域に、データを書き込んだ物理ブロック番号を書き込むと共に、その物理ブロック番号に対応するアロケーションフラグをアロケート済み状態、即ち値０に更新し、さらに、以前論理ブロック番号０で使用した物理ブロック番号に対応するアロケーションフラグを、未アロケート状態、即ち値１にする（Ｓ７０４）。その後に、予め決められた書き込み順に従いフラッシュメモリにＡＴ＃３を書く（Ｓ７０５、Ｓ７０７）。
【００２７】
次に、ＡＴＩの更新が発生する場合について述べる。図５で、現在のＡＴがＡＴＩ＃４の管理するＡＴ群α５０２の最終ＡＴ＃７の場合、Ｓ７０５にて現ＡＴが当該ＡＴＩで管理する最終のＡＴであると判断し、Ｓ７０６にて次にＡＴ群を書き込むための空きブロックを確保する。ＲＡＭ６０３内で現ＡＴであるＡＴ群α５０２のＡＴ＃７のアロケーションフラグより未アロケートの物理ブロック番号を検出し、検出した物理ブロック番号に対応するデータ領域＃０内の物理ブロックをイレーズ処理することでＡＴ群β５０３の領域を確保する。さらに、ＲＡＭ６０３内でＡＴ群α５０２の領域を確保するために使用していた物理ブロック番号に対応するアロケーションフラグを未アロケートに更新し、ＡＴ群β５０３の領域確保に使用する物理ブロック番号に対応するアロケーションフラグをアロケートに更新する。
【００２８】
Ｓ７０８にて、最新のＡＴをデータ領域＃０内のＡＴ群β５０３のＡＴ＃０に書き込む。その後、Ｓ７０９にて、ＡＴＩ＃５の領域に、ＡＴ群β５０３の各ＡＴの物理ブロックアドレスを書き込む。
【００２９】
ＡＴＩ群５０１自体を更新する際には、前記ＡＴＩの内容更新処理に加え、次にＡＴＩ群を記録するための物理ブロックを確保する必要がある。本引用文献では、ＲＡＭ６０３内でＡＴ＃７のアロケーションフラグより未アロケートの物理ブロック番号を検出し、フラッシュメモリ６０８の検出した対象物理ブロックをイレーズ処理することで、次のＡＴＩ群の領域を確保するものとしている。さらに、ＡＴＩ更新時のＡＴのアドレス情報に加え、ＲＡＭ６０８内で現ＡＴＩ群の領域を確保するために使用していた物理ブロック番号に対応するアロケーションフラグを未アロケートし、次ＡＴＩ群５０１の領域確保に使用する物理ブロック番号に対応するアロケーションフラグをアロケート状態に更新する。以降、ＡＴＩの内容更新時と同様にＡＴ及びＡＴＩをフラッシュメモリ６０８に書き込む。
【特許文献１】特開２００１−１４２７７４号公報
【特許文献２】特開平１０−２６０９０８号公報
【発明の開示】
【発明が解決しようとする課題】
【００３０】
前述した特許文献２の技術によれば、ＡＴＩによってＡＴを再配置可能、即ちフラッシュメモリ上の固定領域に割り当てないようにすることができるので、書き換え頻度の高いＡＴが特定の物理ブロックに集中し、フラッシュメモリの書き換え寿命に短期間に達することを防止することができる。
【００３１】
しかしながら、特許文献２の技術においては、ＡＴＩを依然としてフラッシュメモリ内の固定領域に割り当てる必要があるため、ＡＴＩの書き換え頻度が高い場合、この固定領域がフラッシュメモリの書き換え寿命に容易に達する可能性が大である。それを回避すべく、ＡＴＩが格納される領域を大きく確保した上でその中でウェアレベリングを行うことが考えられるが、そのためには、ＡＴＩ格納のための固定領域をフラッシュメモリ上にあらかじめ多く確保する必要があった。
【００３２】
本発明は上記従来の問題点を解決するもので、再配置型アドレス管理方法において、アドレス管理情報の領域確保を最小限としつつ信頼性が高い不揮発性記憶装置や不揮発性記憶システム、及びその中に備えられるメモリコントローラを提供すること目的とする。さらに、前述の作用効果を備えたメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００３３】
前記目的を達成するため、本発明においては以下の技術的手段を講じた。すなわち、本発明における課題解決のための技術的手段は、データと該データの記憶アドレスを管理するアドレス管理テーブル（ＡＴ）と該アドレス管理テーブルの記憶アドレスを管理するアドレス管理テーブルインデックス（ＡＴＩ）とが格納された不揮発性の主記憶メモリに、外部から与えられる論理アドレスに応じてアクセスするメモリコントローラであって、前記メモリコントローラは、データの読み書き制御を行う制御手段と、前記主記憶メモリよりも書き換え保証回数が多く且つ前記アドレス管理テーブルインデックスの物理アドレスを保持するアドレス管理テーブルインデックスポインタ（ＡＴＩポインタ）が格納されている不揮発性補助記憶メモリと、を有しており、前記制御手段は、不揮発性補助記憶メモリ上のアドレス管理テーブルインデックスポインタを参照することでアドレス管理テーブルインデックスを読み出し、該アドレス管理テーブルインデックスに基づいてアドレス管理テーブルを読み出し、該アドレス管理テーブルを用いて論理アドレスを物理アドレスに変換してデータの読み込みや書き込みを行うものであり、さらに当該アドレス管理テーブルインデックス及びアドレス管理テーブルの主記憶メモリ上での記憶アドレスの固定化を防ぐべく、アドレス管理テーブルインデックス及びアドレス管理テーブルを主記憶メモリへ書き戻す際にその書き込みアドレスを変更することを特徴とする。
【００３４】
この構成による作用効果を述べる。前述した特許文献２の抱える問題を再度検討してみると、ＡＴＩをメモリ書き換え保証回数が少なく短期間で寿命に達する主記憶メモリ上の固定領域に格納していることにその原因がある。
【００３５】
そこで、本願出願人は、主記憶メモリに比して書き換え保証回数が多い（書き換え寿命が長い）不揮発性補助記憶メモリに着目することとし、ＡＴＩをメモリコントローラ内に設けられた不揮発性補助記憶メモリに記憶させることを考えた。この技術により飛躍的に主記憶メモリの寿命問題を解決することが可能であり、本願出願人は既にこの技術を特許出願済みである（特願２００４−２８１６７７）。
【００３６】
ここで、本願出願人はさらなる技術革新を意図し、当該不揮発性補助記憶メモリの書き換えに関しても、その回数をなるべく少なくすることを考えた。換言すれば、いかに書き換え保証回数の多いといわれる不揮発性補助記憶メモリであってもその書き換え回数に寿命があり、頻繁な読み書きは避けた方がよいことは自明であって、かかる不揮発性補助記憶メモリに対する読み書きを減らすことにより、不揮発性補助記憶メモリを備えるメモリコントローラの寿命を飛躍的に延ばすことが可能である。
【００３７】
本技術的手段を用いたメモリコントローラは、以上述べた技術的思想を具現化したもので、当該メモリコントローラがアクセスする主記憶メモリに、データと該データの記憶アドレスを管理するＡＴと該ＡＴの記憶アドレスを管理するＡＴＩとが格納されるものとなっている。さらに、メモリコントローラの不揮発性補助記憶メモリには、前記ＡＴＩが格納されている物理アドレスを保持するＡＴＩポインタが格納されている。加えて、メモリコントローラの制御手段は、ＡＴ及びＡＴＩを主記憶メモリ内に書き込む際には、その書き込みアドレスを常に変更するようにしているため、ＡＴやＡＴＩがいつも主記憶メモリ上の同一物理アドレスに書き込まれることが避けられるものとなっている。
【００３８】
さらに、主記憶メモリ上の１つのデータ書き込み単位（ブロック）内の任意の場所に変更後のＡＴＩを書き込むに当たっては、そのブロックのアドレスは同一であるため、不揮発性補助記憶メモリ内のＡＴＩポインタを書き換える必要はない。例えば、１ブロック内に８つのＡＴＩ書き込み領域が用意され、その領域に更新されたＡＴＩを順次書き換えていくとした場合、ＡＴＩポインタの書き換えは、ブロック変更時すなわちＡＴＩを８回書き換えた後に１回発生することとなる。これにより、ＡＴＩの書き換えに関して主記憶メモリの高寿命化を図ることができるばかりか、ＡＴＩの書き換えに付随するＡＴＩポインタの書き換えに関しても、不揮発性補助記憶メモリの書き換え保証回数を上回ることがなく、メモリコントローラ自体の高寿命化を図ることができるようになる。
【００３９】
また、不揮発性補助記憶メモリ上でＡＴＩポインタの情報を逐次更新するだけで、ＡＴＩおよびＡＴが再配置可能となるので、主記憶メモリ上でのＡＴやＡＴＩの格納領域を最小限に抑えることができ、リソースの節減ができるようにもなる。
【００４０】
また、本発明における課題解決のための技術的手段は、データと該データの記憶アドレスを管理するアドレス管理テーブル（ＡＴ）と該アドレス管理テーブルの記憶アドレスを管理するアドレス管理テーブルインデックス（ＡＴＩ）とが格納された不揮発性の主記憶メモリと、この不揮発性の主記憶メモリに対して外部から与えられた論理アドレスに応じてアクセスするメモリコントローラとを備える不揮発性記憶装置であって、前記メモリコントローラは、データの読み書き制御を行う制御手段と、前記主記憶メモリよりも書き換え保証回数が多く且つ前記アドレス管理テーブルインデックスの物理アドレスを保持するアドレス管理テーブルインデックスポインタ（ＡＴＩポインタ）が格納されている不揮発性補助記憶メモリと、を有しており、前記制御手段は、不揮発性補助記憶メモリ上のアドレス管理テーブルインデックスポインタを参照することでアドレス管理テーブルインデックスを読み出し、該アドレス管理テーブルインデックスに基づいてアドレス管理テーブルを読み出し、該アドレス管理テーブルを用いて論理アドレスを物理アドレスに変換してデータの読み込みや書き込みを行うものであり、さらに当該アドレス管理テーブルインデックス及びアドレス管理テーブルの主記憶メモリ上での記憶アドレスの固定化を防ぐべく、アドレス管理テーブルインデックス及びアドレス管理テーブルを主記憶メモリへ書き戻す際にその書き込みアドレスを変更することを特徴とする。
【００４１】
この不揮発性記憶装置は、前述したメモリコントローラをその内部に内蔵しているものであるため、作用効果は上記したことと略同一である。
【００４２】
また、本発明における課題解決のための技術的手段は、データと該データの記憶アドレスを管理するアドレス管理テーブル（ＡＴ）と該アドレス管理テーブルの記憶アドレスを管理するアドレス管理テーブルインデックス（ＡＴＩ）とが格納された不揮発性の主記憶メモリと、この不揮発性の主記憶メモリに対して論理アドレスに応じてデータを読み書きするメモリコントローラとを備えると共に、前記論理アドレスを付与するアクセス装置を有する不揮発性記憶システムであって、前記メモリコントローラは、データの読み書き制御を行う制御手段と、前記主記憶メモリよりも書き換え保証回数が多く且つ前記アドレス管理テーブルインデックスの物理アドレスを保持するアドレス管理テーブルインデックスポインタ（ＡＴＩポインタ）が格納されている不揮発性補助記憶メモリと、を有しており、前記制御手段は、不揮発性補助記憶メモリ上のアドレス管理テーブルインデックスポインタを参照することでアドレス管理テーブルインデックスを読み出し、該アドレス管理テーブルインデックスに基づいてアドレス管理テーブルを読み出し、該アドレス管理テーブルを用いて論理アドレスを物理アドレスに変換してデータの読み込みや書き込みを行うものであり、さらに当該アドレス管理テーブルインデックス及びアドレス管理テーブルの主記憶メモリ上での記憶アドレスの固定化を防ぐべく、アドレス管理テーブルインデックス及びアドレス管理テーブルを主記憶メモリへ書き戻す際にその書き込みアドレスを変更することを特徴とする。
【００４３】
この不揮発性記憶システムは、前述したメモリコントローラをその内部に内蔵しているものであるため、作用効果は上記したことと略同一である。
【００４４】
また、本発明における課題解決のための技術的手段は、外部から与えられる論理アドレスに応じて、不揮発性の主記憶メモリに対してデータを読み書きする際に用いるメモリ制御方法であって、前記主記憶メモリとは別に設けられた不揮発性補助記憶メモリに格納されたアドレス管理テーブルインデックスポインタ（ＡＴＩポインタ）を参照することで、主記憶メモリ上のアドレス管理テーブルインデックス（ＡＴＩ）を読み出し、該アドレス管理テーブルインデックスに基づいて、主記憶メモリからアドレス管理テーブル（ＡＴ）を読み出し、該アドレス管理テーブルを用いて論理アドレスを物理アドレスに変換してデータの読み込みや書き込みを行い、さらに当該アドレス管理テーブルインデックス及びアドレス管理テーブルの主記憶メモリ上での記憶アドレスの固定化を防ぐべく、アドレス管理テーブルインデックス及びアドレス管理テーブルを主記憶メモリへ書き戻す際にその書き込みアドレスを変更することを特徴とする。
【００４５】
このメモリ制御方法によれば、ＡＴ及びＡＴＩを主記憶メモリ内に書き込む際には、その書き込みアドレスを常に変更するようにしているため、ＡＴやＡＴＩがいつも主記憶メモリ上の同一物理アドレスに書き込まれることが避けられるものとなっている。
【００４６】
加えて、主記憶メモリ上の１つのデータ書き込み単位（ブロック）内の複数の場所のいずれかに変更後のＡＴＩを書き込むに当たっては、そのブロックのアドレスは同一であるため、不揮発性補助記憶メモリ内のＡＴＩポインタを書き換える必要はない。例えば、１ブロック内に８つのＡＴＩ書き込み領域が用意され、その領域に更新されたＡＴＩを順次書き換えていくとした場合、ＡＴＩポインタの書き換えは、ブロック変更時すなわちＡＴＩを８回書き換えた後に１回発生することとなる。これにより、ＡＴＩ及びＡＴＩポインタの書き換えに関して、主記憶メモリのみならず不揮発性補助記憶メモリの書き換え保証回数を上回ることを防ぐことができる。
【００４７】
また、以上述べた技術的手段において、前記不揮発性補助記憶メモリは、書き込み速度が前記主記憶メモリより速いメモリであることが好ましい。
【００４８】
こうすることで、不揮発性補助記憶メモリでＡＴＩポインタを書き換える場合、主記憶メモリ上で行うより高速に書き換え処理を実行できるようになる。
【００４９】
なお、前記不揮発性補助記憶メモリは、不揮発性ＲＡＭから構成され、この不揮発性ＲＡＭは、強誘電体メモリ（ＦｅＲＡＭ）、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）、オボニックユニファイドメモリ（ＯＵＭ）、レジスタンスＲＡＭ（ＲＲＡＭ）のいずれかであることが好ましい。
【発明の効果】
【００５０】
本発明によれば、不揮発性補助記憶メモリ上でＡＴＩのポインタ情報を逐次更新するだけで、ＡＴＩおよびＡＴが再配置可能となるので、主記憶メモリ上で、ＡＴやＡＴＩの格納領域を最小限に抑えることができ、リソースの節減ができると共に信頼性向上が可能となる。
【００５１】
また、不揮発性補助記憶メモリ上にはＡＴＩのポインタ情報のみがあるため、更新されたＡＴＩを同一アドレスのブロック内の別場所に書き込む際には、当該不揮発性補助記憶メモリ上のＡＴＩポインタを書き換える必要がなくなる。ゆえに、不揮発性補助記憶メモリの書き換え保証回数が、ＡＴＩの書き換え回数に対して十分ではない場合であっても、不揮発性補助記憶メモリのみが先に寿命に達することを防ぐことができるものとなる。
【発明を実施するための最良の形態】
【００５２】
以下、本発明にかかるメモリコントローラ及び不揮発性記憶装置を、ＳＤメモリカードを例示して説明する。ＳＤメモリカードは、フラッシュメモリを不揮発性の主記憶メモリとして使用する小型の半導体メモリカードであり、図１に示すような構造を有している。すなわち、ＳＤメモリカード（不揮発性記憶装置）は、フラッシュメモリ１０４と、このフラッシュメモリ１０４に外部からの指令を受けてアクセスしデータの読み書きを行うメモリコントローラ１０８を有している。
【００５３】
メモリコントローラ１０８は、ホストＩ／Ｆ１１０と、不揮発性ＲＡＭ（不揮発性補助記憶メモリ）１０１、ＲＡＭ１０３、制御部１０２から構成されている。本実施の形態の場合、不揮発性ＲＡＭとしては強誘電体メモリ（ＦｅＲＡＭ）を採用し、ＲＡＭとしてはＳＲＡＭを使用している。
【００５４】
ホストＩ／Ｆ１１０は、外部に設けられたアクセス装置１１１からの命令を受けたり、フラッシュメモリから読み込んだデータを出したりする機能を有し、制御部１０２は、アクセス装置１１１からのコマンドなどによりフラッシュメモリ１０４に対するアクセスなどを制御するものである。ＲＡＭ１０３には、データやデータのアドレスを管理するアドレス管理テーブル（ＡＴ）などが一時的に蓄えられる。不揮発性ＲＡＭ１０１にはＡＴＩポインタが格納されている。このＡＴＩポインタは、ＡＴの物理アドレスを管理するアドレス管理テーブルインデックス（ＡＴＩ）が格納されている物理アドレスを指し示すものである。
【００５５】
一方、フラッシュメモリ１０４は、データ領域＃０〜＃３の４つに分割されており、それぞれのデータ領域は、消去単位である複数の物理ブロックを有する。各物理ブロックは２ページからなり、各ページサイズは２ＫＢで構成されている。
【００５６】
各データ領域内には、ＡＴを格納するブロックと、ＡＴＩを格納するブロックと、データを格納するブロックとが設けられている。図１の１０５は旧ＡＴを記憶しているブロックであり、１０６は現在のＡＴ（現ＡＴ）を記憶しているブロック、１０７は現ＡＴの管理下にあるデータエントリ、１０９はＡＴＩを記憶しているブロックとなっている。その他のブロック構成は、図５に示した従来の不揮発性記憶装置と同様である。
【００５７】
上述した中で、アドレス管理テーブル（ＡＴ）等の言葉が出てきているので、ここで、それらの関係について整理しておく。本実施の形態のＳＤメモリカードでは、
(i)  フラッシュメモリ内の所定のブロックにコンテンツデータ等が格納されている。
(ii)  前記データが格納されたブロックの物理アドレス情報は、フラッシュメモリ内のアドレス管理テーブル（ＡＴ）に格納されている。
(iii)  前記ＡＴが格納されている領域の物理アドレスは、フラッシュメモリ内に記憶されたアドレス管理テーブルインデックス（ＡＴＩ）に記憶されている。
(iv)  前記ＡＴＩが格納されている領域の物理アドレスは、不揮発性ＲＡＭ内のＡＴＩポインタに記憶されている。
【００５８】
図２は、不揮発性ＲＡＭ１０１内に記憶されるＡＴＩポインタのフォーマットを示している。ＡＴＩポインタは２バイトで構成されており、Ｂｙｔｅ０の８ビット、Ｂｙｔｅ１の２ビットから構成されている。Ｂｙｔｅ１のｂ１がＭＳＢであり、Ｂｙｔｅ０のｂ０がＬＳＢである。言い換えるならば、図２において、上位バイト、即ちＢｙｔｅ０から２バイト分は、データ領域＃０〜＃３の旧ＡＴ及び現ＡＴの物理アドレスを管理するＡＴＩの物理アドレスを保持する領域である。当該ＡＴＩポインタがどのデータ領域を指し示すかは、ホストＩ／Ｆ１１０を介してアクセス装置１１１から与えられるものとなっている。
【００５９】
図３は、フラッシュメモリ１０４に記録されたＡＴＩの格納フォーマットである。ＡＴＩの内容としては、新旧２つのＡＴがそれぞれ格納されている物理アドレス（ＡＴポインタ）を有している。例えば、図３におけるＡＴポインタ＃０＿０とＡＴポインタ＃０＿１である。これら２つのＡＴポインタ領域の内、どちらかに現在のＡＴ（現ＡＴ）が記憶される。さらに、ＡＴＩは、ＡＴポインタ＃０＿０とＡＴポインタ＃０＿１に引き続いて、データ領域＃１〜＃３のＡＴポインタを順に備えるものとなっている（ＡＴポインタ＃１＿０とＡＴポインタ＃１＿１、ＡＴポインタ＃２＿０とＡＴポインタ＃２＿１、ＡＴポインタ＃３＿０とＡＴポインタ＃３＿１）。
【００６０】
各ＡＴポインタの内訳は、ＡＴの物理アドレスを保持する１０ビット分の領域を持ち、Ｂｙｔｅ１のｂ１がＭＳＢ、Ｂｙｔｅ０のｂ０がＬＳＢである。さらに、Ｂｙｔｅ１のｂ７は、現ＡＴであることを指し示す現ＡＴ識別フラグであり、値１が付与された方のＡＴポインタが、現ＡＴの物理アドレスを保持したポインタとなる。このようなＡＴＩがフラッシュメモリの１ブロック内に８個記録されるようになっている（ＡＴＩ＃０〜ＡＴＩ＃７）。
【００６１】
図４は、本実施の形態にかかるアドレス管理情報の更新方法を示すフローチャートであり、この図や図１〜図３及び表１を用いて、本実施の形態による不揮発性記憶装置の動作について説明する。なお、基本的な動作は図６に示した特許文献２の不揮発性記憶装置と略同様である。特許文献２の技術との大きな相違点は、ＡＴＩ及びＡＴの再配置方法、即ちＡＴＩ及びＡＴの物理アドレスの決定方法であり、本実施の形態では不揮発性ＲＡＭ１０１上でＡＴＩポインタを更新することによってＡＴＩ及びＡＴの再配置を行うことである。
【００６２】
以下、アクセス装置１１１から書き込み要求があった場合の処理について説明する。まず、フラッシュメモリ１０４に初めてデータが書き込まれる時においては、不揮発性ＲＡＭ１０１には、ＡＴＩポインタが格納されており、そのポインタ値は物理ブロック番号２が設定されているとする。
【００６３】
ＡＴＩには、各ＡＴを指し示すＡＴポインタが８個格納されており、その一つのＡＴＩ、例えばＡＴＩ＃０に着目すると、そこに格納されているＡＴポインタの０番側（ＡＴポインタ＃０＿０、ＡＴポインタ＃１＿０、ＡＴポインタ＃２＿０、ＡＴポインタ＃３＿０）は、現ＡＴ識別フラグ（太枠のビット）の値が１に設定されていて、ポインタ値としては物理ブロック番号０が設定されているとする。但しＡＴＩ及びＡＴが記録されている物理ブロックはバッドブロックではないとする。
【００６４】
この状態の後、アクセス装置から与えられる論理アドレスに従い、データの書き込み先の領域を決定する（図４のＳ４０１）。例えば、外部のアクセス装置から論理アドレス０が指定されると、不揮発性ＲＡＭ１０１に記憶されているＡＴＩポインタからフラッシュメモリ１０４に記憶されているＡＴＩを読み出し（Ｓ４０２）、ＡＴＩからフラッシュメモリ１０４の中のデータ領域＃０の物理ブロック番号０が現ＡＴとして指定され、フラッシュメモリ１０４から現ＡＴをＲＡＭ１０３に読み出す（Ｓ４０３）。論理ブロック番号に対応する１ワード中の物理ブロック番号をチェックし、論理ブロック番号に対応する１ワード中に物理ブロック番号が登録されていない、即ち未アロケートの場合は、未アロケート物理ブロック番号を検出し、当該物理ブロックをイレーズ処理し、データをフラッシュメモリ１０４に書き込み、データを書き込んだ物理ブロック番号に対応したアロケーションフラグをアロケート済み状態、即ち値０に更新する（Ｓ４０４）。
【００６５】
その後、ＲＡＭ１０３上のＡＴに基づいて、未アロケート物理ブロック番号を検出し（例えば物理ブロック番号５）、当該物理ブロックをイレーズ処理し、当該物理ブロックをアロケート済み状態、即ち値０に更新した上で、ＲＡＭ１０３のＡＴをフラッシュメモリ１０４に書き戻す（Ｓ４０５）。
【００６６】
その際、物理ブロック番号５が現ＡＴとなるので、フラッシュメモリ１０４のＡＴＩの未書込み領域、例えばＡＴＩ＃１に、ＡＴポインタ＃０＿１のポインタ値を物理ブロック番号５に設定し、現ＡＴ識別フラグ（太枠のビット）の値１とし、更にＡＴポインタ＃０＿０は旧ＡＴとなるので、現ＡＴ識別フラグ（太枠のビット）に値０を書き込む。
【００６７】
以上の処理が終わった時の不揮発性ＲＡＭ１０１の記憶状態を図２、フラッシュメモリ１０４のＡＴＩ領域の記憶状態を図３に示す。
【００６８】
図３から判るように、ＡＴＩが書き込まれるブロックには複数（８個）のＡＴＩ領域があり、本実施の形態では、ＡＴＩ＃０の値を基にデータを読み書きし、その後に更新されたＡＴＩの値をＡＴＩ＃１に書き込むようにしている。すなわち、ＡＴＩの値をＡＴＩ＃０〜＃７にシーケンシャルに書き込むようにしている。このように、フラッシュメモリ上の１ブロック内の異なった位置にＡＴＩを順次書き込んだとしても、そのブロックのアドレスは同一であるため、不揮発性ＲＡＭ内のＡＴＩポインタを書き換える必要はない。そのため、ＡＴＩポインタ自体の書き換えは、ブロック変更時すなわちＡＴＩを８回書き換えた後に１回発生することとなる。
【００６９】
ＡＴＩポインタが格納される不揮発性ＲＡＭ１０１は、表１に示すように、フラッシュメモリと比較すると、書き換え保証回数が理論値で１００億回と多く、不揮発性ＲＡＭ１０１上でのＡＴＩポインタの更新、即ち書き換えによる寿命を特に考慮する必要がない。しかしながら、実際の不揮発性ＲＡＭを考えた場合、リード時も「書き換え１回」とカウントしたりすることや製品のばらつき等があり、実際に書き換えできる回数が少なくなる可能性も否めない。そのような場合であっても、本実施の形態ではＡＴＩポインタの書き換え回数を極力少なくすることが可能であるため、ＳＤメモリカード内のメモリコントローラの高寿命化を図ることができる。
【００７０】
【表１】
2006190036.tif 000003
【００７１】
また、本実施の形態においては、不揮発性ＲＡＭ上でＡＴＩポインタの情報を逐次更新するだけで、ＡＴＩおよびＡＴが再配置可能となるので、フラッシュメモリ上でのＡＴやＡＴＩの格納領域を最小限に抑えることができリソースの節減ができるようにもなる。
【００７２】
次にアクセス装置から、書き込み要求があった場合は、図１に示す通り、物理ブロック番号５のアドレスに記憶されている現ＡＴに基づいて、斜線を施した物理ブロック、即ち物理ブロック番号４０９２の物理ブロックにデータを書き込めばよい。
【００７３】
なお、本発明は、上記実施の形態に限定されるものではない。すなわち、不揮発性ＲＡＭ１０１は、強誘電体メモリ（ＦｅＲＡＭ）に限定されず、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）や、オボニックユニファイドメモリ（ＯＵＭ）や、レジスタンスＲＡＭ（ＲＲＡＭ）等を採用してもよい。
【００７４】
また、フラッシュメモリ１０４はデータ領域＃０〜データ領域＃３に分割しなくても構わない。また不揮発性ＲＡＭ１０１はメモリコントローラ１０８に内蔵させず、メモリコントローラ１０８の外部にあっても構わない。
【００７５】
なお、ＡＴ自体を不揮発性ＲＡＭ１０１に記憶させることも考えられるが、本実施の形態のようにＡＴの容量は２ＫＢと比較的大きな容量である為、現状の不揮発性ＲＡＭ１０１より容量の大きな不揮発性ＲＡＭを備える必要がありコスト的にデメリットがある。フラッシュメモリの容量が大きくなればなるほどアドレス管理情報ＡＴの容量が大きくなるので、上記デメリットは更に顕著となる。したがって、本実施の形態の構成が最良である。
【産業上の利用可能性】
【００７６】
本発明にかかる不揮発性記憶装置は、不揮発性メモリを主記憶メモリとして使用し、また不揮発性の補助記憶メモリを使用した装置において、高速処理性を損なうことなく低コスト且つ高信頼性を実現する技術を提案したものであり、静止画記録再生装置や動画記録再生装置等のポータブルＡＶ機器、あるいは携帯電話等のポータブル通信機器の記録媒体として有益である。
【図面の簡単な説明】
【００７７】
【図１】本実施の形態にかかる不揮発性記憶装置の構成およびアドレスマップを示した図である。
【図２】不揮発性ＲＡＭに格納されるＡＴＩポインタのメモリマップである。
【図３】フラッシュメモリに格納されるＡＴＩのメモリマップである。
【図４】フラッシュメモリにデータを読み書きする際の動作を説明したフローチャートである。
【図５】従来のアドレス管理方法を示す概念図である（特許文献２）。
【図６】従来の不揮発性記憶装置の構成およびアドレスマップを示す説明図である（特許文献２）。
【図７】従来のアドレス管理方法の動作を説明するためのフローチャートである（特許文献２）。
【図８】従来の不揮発性記憶装置のアドレスマップを示した図である（特許文献１）。
【符号の説明】
【００７８】
１０１  不揮発性ＲＡＭ
１０２  制御部
１０３  ＲＡＭ
１０４  フラッシュメモリ
１０５  旧ＡＴが格納されたブロック（領域）
１０６  現ＡＴが格納されたブロック（領域）
１０７  データが格納されたブロック（領域）
１０８  メモリコントローラ
１０９  ＡＴＩが格納されたブロック（領域）
１１０  ホストＩ／Ｆ
１１１  アクセス装置
【図１】
2006190036.tif 000004
【図２】
2006190036.tif 000005
【図３】
2006190036.tif 000006
【図４】
2006190036.tif 000007
【図５】
2006190036.tif 000008
【図６】
2006190036.tif 000009
【図７】
2006190036.tif 000010
【図８】
2006190036.tif 000011