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