JP2006099211A - Memory controller and nonvolatile storage device - Google Patents
Memory controller and nonvolatile storage device Download PDFInfo
- Publication number
- JP2006099211A JP2006099211A JP2004281677A JP2004281677A JP2006099211A JP 2006099211 A JP2006099211 A JP 2006099211A JP 2004281677 A JP2004281677 A JP 2004281677A JP 2004281677 A JP2004281677 A JP 2004281677A JP 2006099211 A JP2006099211 A JP 2006099211A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- nonvolatile
- storage
- address
- volatile
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、半導体メモリカード等の不揮発性記憶装置に関わり、フラッシュメモリに対してのアドレス管理情報をフラッシュメモリ内に記憶し、そのアドレス管理情報の内の必要な部分を揮発性メモリに読み出して使用するメモリコントローラ及び不揮発性記憶装置に関するものである。更に本発明は、外部のアクセス装置を構成要素に有する不揮発性記憶システム、及びメモリコントローラの動作を記述したメモリ制御方法も含むものとする。 The present invention relates to a nonvolatile memory device such as a semiconductor memory card, stores address management information for the flash memory in the flash memory, and reads a necessary part of the address management information to the volatile memory. The present invention relates to a memory controller and a nonvolatile storage device to be used. The present invention further includes a nonvolatile storage system having an external access device as a component and a memory control method describing the operation of the memory controller.
フラッシュメモリを有する不揮発性記憶装置は、フラッシュメモリにアクセスするために与えられる論理アドレスを物理アドレスに変換することで、データの書き込みや読み出しを行う。そして、不揮発性記憶装置はアドレス変換のためのアドレス管理情報を有している。上述したような、アドレス管理情報をフラッシュメモリに記憶して、そのアドレス管理情報のうちの必要部分のみをランダムアクセスメモリ(RAM)等の揮発性メモリに読み出して使用する不揮発性記憶装置がある。このような不揮発性記憶装置として、例えば特許文献1に記載されたものが知られている。
A nonvolatile storage device having a flash memory writes and reads data by converting a logical address given to access the flash memory into a physical address. The nonvolatile storage device has address management information for address conversion. As described above, there is a non-volatile storage device that stores address management information in a flash memory and reads and uses only a necessary portion of the address management information in a volatile memory such as a random access memory (RAM). As such a non-volatile memory device, for example, a device described in
特許文献1に記載された不揮発性記憶装置内のフラッシュメモリにおけるアドレスマップを図7に示す。フラッシュメモリは管理領域701とデータ領域702とからなる。データ領域702は、外部のアクセス装置から読み書きされるデータ、即ち音楽データや画像データなどのいわゆるコンテンツ情報を格納する領域である。データ領域702は例えば1024ブロック毎に4つの領域、即ちデータ領域#0〜データ領域#3に分割される。管理領域701はデータの論理ブロックアドレスに対応する物理ブロックアドレスを決めるアドレス変換テーブル等の管理情報を格納する領域である。管理領域701はアドレス変換テーブルLTPb704とアドレス変換テーブルのインデックスLTPa703とからなる。LTPb704はデータ領域702の#0〜#3をそれぞれ管理するためLTPb704の#0〜#3からなる。
FIG. 7 shows an address map in the flash memory in the nonvolatile memory device described in
LTPb704#0〜LTPb704#3が管理するエントリ数はブロック数に一致している。それぞれのデータ領域702において、基本的には論理ブロックアドレス(0〜1023ブロック)を物理ブロックアドレス(0〜1023ブロック)に変換するために、各論理ブロックアドレスに相当する論理ブロック番号毎、即ち1ワード毎に物理ブロック番号とアロケーションフラグが用意されている。アロケーションフラグとは、記憶された物理ブロック番号に有効なデータが既にアロケートされているか否かを識別するフラグである。
The number of entries managed by LTPb 704 # 0 to LTPb 704 # 3 matches the number of blocks. In each
LTPa703は、LTPb704#0〜LTPb704#3が記憶されている物理ブロック番号とアロケーションフラグを持つ。LTPa703及びLTPb704#0〜LTPb704#3は、消去単位である任意ブロックの中に存在し、例えばブロック内がページ1からページNに分割されているとすると、ページ1(例えば2kバイト)を使用して1つのアドレス変換テーブルが構成される。例えば管理領域701の先頭ブロックのページ1にLTPa703を、その次のブロックのページ1にLTPb704#0を対応させ、各ブロックのページ1以外のページは不使用で構わない。
The LTPa 703 has a physical block number in which LTPb 704 # 0 to LTPb 704 # 3 are stored and an allocation flag. LTPa 703 and LTPb 704 # 0 to LTPb 704 # 3 exist in an arbitrary block which is an erasing unit. For example, if the block is divided from
以上のように構成された不揮発性記憶装置について、書き込み動作について述べる。外部のアクセス装置から与えられる論理アドレスに従い、データの書き込み先の領域が決定される。外部ホストから例えば論理アドレス0が指定されると、フラッシュメモリの中のデータ領域702#0に対応するLTPb704#0を、LTPa703に基づきフラッシュメモリからRAMなどの揮発性メモリに読み出す。そして読み出されたLTPb704#0内の論理ブロック番号に対応する1ワード中のアロケーションフラグをチェックする。そして、未アロケートの場合は、この1ワード中の物理ブロック番号に対応するデータ領域702#0の物理ブロックをイレーズ処理し、この後にデータを書き込む。次に、RAM内でこの1ワード中のアロケーションフラグをアロケート済み状態、即ち値0に更新した後に、フラッシュメモリにLTPb704#0を書き戻す。
A writing operation of the nonvolatile memory device configured as described above will be described. A data write destination area is determined in accordance with a logical address given from an external access device. For example, when a
一方、論理ブロック番号に対応する1ワード中のアロケーションフラグをチェックし、既にアロケート済みの場合は、論理ブロック番号0から1023までの全領域に対応する物理ブロック番号を調べ、アロケート済みでない物理ブロック番号(例えば物理ブロック番号10)を探し出す。そして、物理ブロック番号10に対応するデータ領域702#0の物理ブロックをイレーズ処理後にデータを書き込む。
On the other hand, the allocation flag in one word corresponding to the logical block number is checked. If the allocation flag has already been allocated, the physical block numbers corresponding to all areas of the
また、RAM内で、論理ブロック番号0の1ワード中物理のブロック番号の部分に物理ブロック番号10を書き込む。更に、以前に物理ブロック番号10が記録されていた論理ブロック番号における1ワード中の物理ブロック番号の部分を、以前に論理ブロック番号0における物理ブロック番号の部分に記憶されていた物理ブロック番号値に変更すると共に、アロケーションフラグを未アロケート状態、即ち値1にする。そしてフラッシュメモリにLTPb704#1を書き戻す。
Further, the
しかしながら、上述した特許文献1のアドレス管理方法では、LTPb704が固定領域に割り付けられているため、例えばデータ領域702#0内の1つのブロックだけでも書き換えられた場合には、必ずLTP704#0が割り付けられているブロックを書き換える必要があった。言い換えれば、データ領域702#0内の1024ブロックが各々1回ずつ書き換えられた場合、LTP704#0が割り付けられているブロックは1024回書き換えられることになる。従って、データ領域702よりも管理領域701の方が、平均的書き換回数が1024倍となる。言い換えれば管理領域701の方に書き換えが集中してしまうため、フラッシュメモリの寿命が短くなってしまうという問題点があった。
However, in the address management method of
この問題点を解決する方法として、特許文献2に示すように、管理情報を再配置可能にする技術が提案されている。この技術によれば、管理領域を固定領域に割り付けるのではなく、管理領域の配置位置を逐次変更していくことにより、管理領域の書き換え回数をデータ領域と同程度に小さくすることが可能となり、フラッシュメモリの寿命を高めることができるとされている。
As a method for solving this problem, as shown in
以下、特許文献2に開示されたように、管理領域の配置位置を逐次変更していくアドレス管理方法(以降、再配置型アドレス管理方法という)について、図4〜図6を用いて説明する。図4は再配置型アドレス管理方法に基づく従来の不揮発性記憶装置におけるアドレス管理テーブル(AT)と、アドレス変換デーブルインデックス情報(ATI)の構成を示す概念図である。図5は再配置型アドレス管理方法に基づく、従来の不揮発性記憶装置の構成、及び不揮発性記憶装置内のフラッシュメモリのアドレスマップを示す説明図である。また、図6は再配置型アドレス管理方法に基づくアドレス管理情報更新方法を示すフローチャートである。
Hereinafter, as disclosed in
因みに、特許文献2におけるエントリ領域及び管理領域は、夫々図4のATI群及びAT群αとβに対応する。図4においてATI群401とAT群402及び403とが示されている。便宜上AT群に関しては、AT群α402とAT群β403とが存在し、図示した以外にも他のAT群が存在する。ATI群401、AT群α402、AT群β403、…は、夫々4つの物理ブロック404から構成される。
Incidentally, the entry area and the management area in
また図5において、不揮発性記憶装置はフラッシュメモリ508とメモリコントローラ509とにより構成される。そしてメモリコントローラ509はホストインターフェース(ホストI/F)501、制御部502、ランダムアクセスメモリ(RAM)503を有している。ホストI/F501は不揮発性記憶装置とアクセス装置との間でデータやコマンドなどの信号を送受信するためのI/Fである。制御部502はアクセス装置からのコマンドなどにより、フラッシュメモリ508や不揮発性記憶装置の動作を制御するものである。RAM503はデータやアドレス管理情報などを一時蓄える揮発性メモリである。
In FIG. 5, the nonvolatile storage device includes a
フラッシュメモリ508はATI群領域504とデータ領域505とを有している。ATI群領域504はATI群を記憶するための領域である。データ領域505はデータを記憶するための領域である。各データ領域は複数のAT群506とこれに対応する複数のデータエントリ507からなる。データエントリ507は現ATが管理するデータエントリである。フラッシュメモリ508において、消去単位である物理ブロックは2ページからなり、各ページサイズが2kBである。
The
ATI群領域504は、データ領域505(#0〜#3)内のAT群を管理するためのATI群を格納する領域である。ATIは、各AT群の物理ブロック番号、即ち物理ブロックを指し示すアドレスを有する。1つのATIで、各データ領域に64のAT群を管理すると、約1ワード(物理ブロック番号10ビット分)×4(データ領域数)×64(AT群の数)=512Bとなり、図4に示すように1ブロック当たり8個のATIを記録することができる。ATIはフラッシュメモリ508の先頭物理ブロックから4物理ブロック分に配置され、ATI群401を形成する。
The ATI
データ領域505は、外部のアクセス装置から読み書きされるデータ、即ち音楽データや画像データなどのいわゆるコンテンツ情報を格納すると共に、AT群を格納する領域でもある。また、データ領域505は4つの領域、即ちデータ領域#0〜データ領域#3に分割される。更に各領域は1024ブロックに分割される。またAT群は夫々のデータ領域を管理するため、当該データ領域に格納される。ATが管理する単位、即ちデータエントリ507は1ブロック分である。夫々のデータ領域において、論理ブロックアドレス(0〜1023ブロック)を物理ブロックアドレス(0〜1023ブロック)に変換するために、各論理ブロックアドレスに対応する論理ブロック番号(10ビット)毎に、物理ブロック番号(10ビット)とアロケーションフラグ(1ビット)を持つ。従って、1つのATのデータ容量は、11ビット(物理ブロック番号10ビットとアロケーションフラグ1ビット)×1024ブロック=約2048Bとなり、1ページに1つのATを持つことになる。なおアロケーションフラグは、各物理ブロックに有効なデータが既にアロケートされているか否かを識別するフラグである。
The
次に、図4及び図6を用いて書き込み動作について説明する。なお、図4中のAT群α402及びAT群β403は、同一のデータ領域を管理するAT群であり、同図に示す例では、AT群α402はATI#4により管理され、AT群β403はATI#5により管理される領域である。また、AT及びATIの更新は、次のAT及びATIのフラッシュメモリ508への書き込みが、現AT及び現ATIと同一ブロックに行われないように、フラッシュメモリ508に記憶される。またATの更新毎にATIの書き換え更新が発生しないように、即ち高速処理を実現するために、書き込みの順番が予め決められフラッシュメモリ508に記憶される。
Next, the write operation will be described with reference to FIGS. The AT group α402 and AT group β403 in FIG. 4 are AT groups that manage the same data area. In the example shown in FIG. 4, the AT group α402 is managed by
また、ATI群の中から最新のATIを検出する処理(図6のS601)は、例えば初期化時に実施され、外部のアクセス装置から不揮発性記憶装置に対するデータ書き込み指令毎には実施されない。また図6に示す一連の制御は、図5に示した制御部502によって実行される。なお、制御部502は中央処理演算装置(CPU)等を含んでもよい。
Further, the process of detecting the latest ATI from the ATI group (S601 in FIG. 6) is performed at the time of initialization, for example, and is not performed for each data write command from the external access device to the nonvolatile memory device. A series of controls shown in FIG. 6 is executed by the
まず、1つのATIが管理するAT群内での更新について述べる。メモリコントローラ509は外部のアクセス装置から与えられる論理アドレスに従い、データの書き込み先の領域を決定する。外部のアクセス装置から例えば論理アドレス0が指定されると、メモリコントローラ509はフラッシュメモリ508の中のデータ領域#0に対応する現AT群を決定する。即ち図4において、AT群α402とAT群β403のいずれが現AT群であるかを、現ATIから求める(図6のS602)。
First, updating within an AT group managed by one ATI will be described. The
読み出された現AT群内で例えばAT#2を現ATIから求め、フラッシュメモリ508からRAM503に読み出し、論理ブロック番号に対応する1ワード中の物理ブロック番号をチェックする(同S603)。論理ブロック番号に対応する1ワード中に、物理ブロック番号が登録されていない、即ち未アロケートの場合は、未アロケート物理ブロック番号を検出する。そして、対応するデータ領域#0の物理ブロックをイレーズ処理し、データをフラッシュメモリ508に書き込む。次に、データを書き込んだ物理ブロック番号に対応したアロケーションフラグをアロケート済み状態、即ち値0に更新する(S604)。
For example, AT # 2 is obtained from the current ATI in the read current AT group, read from the
その後に、図4に示す予め決められた書き込み順に従い、フラッシュメモリにAT#3を書く(S605、S607)。一方、論理ブロック番号に対応する1ワード中の物理ブロック番号をチェックし、既にアロケート済みの場合は、RAM503内でアロケート済みでない物理ブロック番号を検出する。そして、フラッシュメモリ508内の対応するデータ領域#0の物理ブロックをイレーズ処理し、データを書き込む。また、RAM503内で、論理ブロック番号0の1ワード中の物理ブロック番号に対応する領域に、データを書き込んだ物理ブロック番号を書き込む。更に、その物理ブロック番号に対応するアロケーションフラグをアロケート済み状態、即ち値0に更新し、更に以前論理ブロック番号0で使用した物理ブロック番号に対応するアロケーションフラグを、未アロケート状態、即ち値1にする(S604)。その後に、図4に示す予め決められた書き込み順に従いフラッシュメモリにAT#3を書く(S605、S607)。
Thereafter, AT # 3 is written in the flash memory in accordance with a predetermined writing order shown in FIG. 4 (S605, S607). On the other hand, the physical block number in one word corresponding to the logical block number is checked, and if it has already been allocated, a physical block number that has not been allocated is detected in the
次に、ATIの更新が発生する場合について述べる。図4中、現在のATがATI#4の管理するAT群α402の最終AT#7の場合、S605にて現ATが現ATIで管理するATの最終であると判断し、S606にて次にAT群を書き込むための空きブロックを確保する。RAM503内で現ATであるAT群α402のAT#7のアロケーションフラグより未アロケートの物理ブロック番号を検出する。そして検出した物理ブロック番号に対応するデータ領域#0内物理ブロックをイレーズ処理することで、AT群β403の領域を確保する。
Next, a case where an ATI update occurs will be described. In FIG. 4, when the current AT is the
ATでは、データ書き込み処理S604で作成した情報に加え、RAM503内でAT群α402の領域を確保するために使用していた物理ブロック番号に対応するアロケーションフラグを未アロケートに更新し、更に、AT群β403の領域確保に使用する物理ブロック番号に対応するアロケーションフラグをアロケートに更新する。S608にて、最新のATをデータ領域#0内のAT群β403のAT#0の領域に書き込む。その後S609にて、ATI#5の領域にAT群β403の各ATの物理ブロックアドレスを書き込む。
In the AT, in addition to the information created in the data write process S604, the allocation flag corresponding to the physical block number used to secure the area of the AT group α402 in the
ATI群401を更新する際には、ATI更新の際の処理に加え、次にATI群を記録するための物理ブロックを確保する必要がある。RAM503内でAT#7のアロケーションフラグより未アロケートの物理ブロック番号を検出し、フラッシュメモリ508の検出した対象物理ブロックをイレーズ処理することで次のATI群の領域を確保する。またATI更新時のATの情報に加え、RAM508内で現ATI群の領域を確保するために使用していた物理ブロック番号に対応するアロケーションフラグを未アロケートする。更に、次ATI群401の領域確保に使用する物理ブロック番号に対応するアロケーションフラグを、アロケート状態に更新する。以降、ATI更新時と同様にAT及びATIをフラッシュメモリ508に書き込む。
When the
以上のように、ATIによってATを再配置可能、即ち固定領域に割り当てないようにしたので、書き換え頻度の高いATが特定の物理ブロックに集中することはない。またATIは固定領域に割り当てられているが、ATを指し示すアドレスを有する領域であるので、書き換え頻度は比較的少なくて済む。
しかしながら前述したとおり、AT群やATI群は、全て使用された時点において、新たなAT群やATI群の領域を確保するための処理、即ちイレーズ処理が発生する。このため、低頻度ではあるが処理速度が著しく低下してしまう。このことは、動画などのストリームデータを記録するアクセス装置に適応する場合、リアルタイム記録ができなくなる恐れがある。また処理速度の低下が比較的小さな場合においては、リアルタイム記録ができなくなるまでの問題には至らない。しかし、アクセス装置に対して処理速度の低下を補償するためのバッファRAMの実装を強いることになる。この場合アクセス装置に対してコストアップを強いることになる。 However, as described above, when all the AT group and ATI group are used, a process for securing a new AT group or ATI group area, that is, an erase process occurs. For this reason, although it is infrequent, processing speed will fall remarkably. When this is applied to an access device that records stream data such as a moving image, real-time recording may not be possible. Further, when the decrease in processing speed is relatively small, there is no problem until real-time recording cannot be performed. However, the access device is forced to mount a buffer RAM for compensating for a decrease in processing speed. In this case, the access device is forced to increase the cost.
本発明は上記従来の問題点を解決するもので、再配置型アドレス管理方法において、アドレス管理情報の領域確保が不要、即ち領域確保における処理速度の低下の発生しない不揮発性記憶装置を提供することを目的とする。 The present invention solves the above-mentioned conventional problems, and provides a non-volatile storage device that does not require area management of address management information in a relocation address management method, that is, does not cause a decrease in processing speed in area reservation. With the goal.
この目的を達成するために本発明の不揮発性記憶装置は、フラッシュメモリよりも十分書き換え保証回数の多い不揮発性メモリ、例えば不揮発性RAMを備え、ATI即ちアドレス管理情報ATの記憶位置を指し示す情報を、フラッシュメモリよりも十分書き換え保証回数の多い不揮発性RAMに記憶保持する。 In order to achieve this object, the nonvolatile memory device of the present invention comprises a nonvolatile memory, for example, a nonvolatile RAM, which has a sufficiently higher number of rewrites than the flash memory, and stores information indicating the storage location of the ATI, that is, the address management information AT. The data is stored and held in a non-volatile RAM having a sufficient number of guaranteed rewrites than the flash memory.
特に請求項1〜7に係る発明は、外部のアクセス装置から与えられるコマンドと論理アドレスに応じて不揮発性の主記憶メモリにデータを書き込み、及び読み出すメモリコントローラである。メモリコントローラは、不揮発性の主記憶メモリに対して、データの記憶アドレスを管理するアドレス管理テーブル及びデータの読み書き制御を行う制御手段と、アドレス管理テーブルに基づいてデータの記憶アドレスを管理するアドレス管理手段と、アドレス管理テーブルの記憶アドレスを記憶する不揮発性の補助記憶メモリを有している。不揮発性の補助記憶メモリは不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであり、アドレス管理テーブルの記憶アドレスを適宜更新することによってアドレス管理テーブルの記憶アドレスが固定化されないようにすることを特徴とする。この構成により、不揮発性の補助記憶メモリにおいて、アドレス管理テーブルの記憶アドレスを適宜書き換えることによって、例えばフラッシュメモリ等の不揮発性の主記憶メモリ上におけるアドレス管理テーブルが、いつも同じ物理アドレス上で書き換えられることが避けられる。なお不揮発性の補助記憶メモリが不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであるので、不揮発性の補助記憶メモリにおけるアドレス管理テーブルにおける記憶アドレスの高頻度の書き換えについては、特に問題が生じない。
Particularly, the invention according to
また、本発明の請求項8〜14に係る発明は、不揮発性の主記憶メモリと、メモリコントローラとを有し、外部のアクセス装置から与えられるコマンドと論理アドレスに応じて不揮発性の主記憶メモリにデータを書き込み、及び読み出す不揮発性記憶装置である。不揮発性の主記憶メモリは、それぞれが少なくとも1つのセクタを含む複数の物理ブロックから成り、メモリコントローラは、不揮発性の主記憶メモリに対して、データの記憶アドレスを管理するアドレス管理テーブル及びデータの読み書き制御を行う制御手段と、アドレス管理テーブルに基づいてデータの記憶アドレスを管理するアドレス管理手段と、アドレス管理テーブルの記憶アドレスを記憶する不揮発性の補助記憶メモリを有している。不揮発性の補助記憶メモリは、不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであり、アドレス管理テーブルの記憶アドレスを適宜更新することによってアドレス管理テーブルの記憶アドレスが固定化されないようにすることを特徴とする。この構成により、不揮発性の補助記憶メモリにおいて、アドレス管理テーブルの記憶アドレスを適宜書き換えることによって、例えばフラッシュメモリ等の不揮発性の主記憶メモリ上におけるアドレス管理テーブルが、いつも同じ物理アドレス上で書き換えられることが避けられる。なお不揮発性の補助記憶メモリが不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであるので、不揮発性の補助記憶メモリにおけるアドレス管理テーブルにおける記憶アドレスの高頻度の書き換えについては、特に問題が生じない。
The inventions according to
また、本発明の請求項15〜21に係る発明は、アクセス装置と、不揮発性の主記憶メモリと、メモリコントローラとを有し、アクセス装置から与えられるコマンドと論理アドレスに応じて不揮発性の主記憶メモリにデータを書き込み、及び読み出す不揮発性記憶システムである。不揮発性の主記憶メモリは、それぞれが少なくとも1つのセクタを含む複数の物理ブロックから成り、メモリコントローラは、不揮発性の主記憶メモリに対して、データの記憶アドレスを管理するアドレス管理テーブル及びデータの読み書き制御を行う制御手段と、アドレス管理テーブルに基づいてデータの記憶アドレスを管理するアドレス管理手段と、アドレス管理テーブルの記憶アドレスを記憶する不揮発性の補助記憶メモリを有している。不揮発性の補助記憶メモリは不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであり、アドレス管理テーブルの記憶アドレスを適宜更新することによって、アドレス管理テーブルの記憶アドレスが固定化されないようにすることを特徴とする。この構成により、不揮発性の補助記憶メモリにおいて、アドレス管理テーブルの記憶アドレスを適宜書き換えることによって、例えばフラッシュメモリ等の不揮発性の主記憶メモリ上におけるアドレス管理テーブルが、いつも同じ物理アドレス上で書き換えられることが避けられる。なお不揮発性の補助記憶メモリは、不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであるので、不揮発性の補助記憶メモリにおけるアドレス管理テーブルの記憶アドレスの高頻度の書き換えについては、特に問題は生じない。
The inventions according to
また、本発明の請求項22〜28に係る発明は、外部から与えられるコマンドと論理アドレスに応じて不揮発性の主記憶メモリにデータを書き込み、及び読み出すメモリ制御方法である。このメモリ制御方法は、不揮発性の主記憶メモリに対してデータの記憶アドレスを管理するアドレス管理テーブル及びデータの読み書き制御を行い、アドレス管理テーブルに基づいてデータの記憶アドレスの管理を行い、アドレス管理テーブルの記憶アドレスを不揮発性の補助記憶手段に記憶する。不揮発性の補助記憶メモリは、不揮発性の主記憶手段よりも書き換え保証回数が多い不揮発性のメモリであり、アドレス管理テーブルの記憶アドレスを適宜更新することによって、アドレス管理テーブルの記憶アドレスが固定化されないようにすることを特徴とする。この処理により、不揮発性の補助記憶メモリにおいて、アドレス管理テーブルの記憶アドレスを適宜書き換えることによって、例えばフラッシュメモリ等の不揮発性の主記憶メモリ上のアドレス管理テーブルが、いつも同じ物理アドレス上で書き換えられることが避けられる。なお不揮発性の補助記憶メモリは、不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性の記憶手段であるので、不揮発性の補助記憶メモリにおけるアドレス管理テーブルの記憶アドレスの高頻度の書き換えについては、特に問題は生じない。 Further, the invention according to claims 22 to 28 of the present invention is a memory control method for writing and reading data to and from a nonvolatile main memory according to a command and a logical address given from the outside. This memory control method performs an address management table for managing a data storage address and a data read / write control with respect to a nonvolatile main storage memory, manages a data storage address based on the address management table, and manages an address. The storage address of the table is stored in the nonvolatile auxiliary storage means. The non-volatile auxiliary storage memory is a non-volatile memory that has a higher number of guaranteed rewrites than the non-volatile main storage means, and the storage address of the address management table is fixed by appropriately updating the storage address of the address management table. It is characterized by not being done. By this processing, the address management table on the nonvolatile main memory such as a flash memory is always rewritten on the same physical address by appropriately rewriting the storage address of the address management table in the nonvolatile auxiliary storage memory. Can be avoided. The non-volatile auxiliary storage memory is a non-volatile storage means having a higher guaranteed number of rewrites than the non-volatile main storage memory. Therefore, the rewrite of the storage address of the address management table in the non-volatile auxiliary storage memory is frequently performed. There is no particular problem.
これにより不揮発性RAM上でATIを逐次更新することによってアドレス管理情報ATが再配置可能となるので、AT群やATI群の領域を確保するための処理速度の低下を回避することができる。なお、ATIの書き換え回数は、アドレス管理情報ATやデータの書き換え回数より多くなるが、不揮発性RAMはフラッシュメモリの書き換え保証回数が十分多いので、不揮発性記憶装置の寿命には影響しない。 As a result, the address management information AT can be rearranged by sequentially updating the ATI on the non-volatile RAM, so that it is possible to avoid a decrease in the processing speed for securing the AT group and the area of the ATI group. The number of rewrites of the ATI is larger than the number of rewrites of the address management information AT and data. However, since the nonvolatile RAM has a sufficiently large number of rewrite guarantees of the flash memory, it does not affect the life of the nonvolatile storage device.
本発明の実施の形態による不揮発性記憶装置について、図面を参照しつつ説明する。図1は本実施の形態による不揮発性記憶装置の構成とそのアドレスマップを示す説明図である。不揮発性記憶装置はフラッシュメモリ104とメモリコントローラ108とにより構成される。そしてメモリコントローラ108はホストI/F501、制御部102、不揮発性RAM101、RAM103を有している。フラッシュメモリ104は複数のデータ領域に分割されている。
A nonvolatile memory device according to an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is an explanatory diagram showing the configuration of the nonvolatile memory device according to this embodiment and its address map. The nonvolatile storage device includes a
メモリコントローラ108内の不揮発性RAM101はアドレス管理情報ATの物理アドレスであるATポインタを格納する不揮発性のRAMである。制御部102はアクセス装置からのコマンドなどによりフラッシュメモリ104を含む不揮発性記憶装置の動作を制御するものである。RAM103はデータやアドレス管理情報などを一時蓄える揮発性メモリであり、ランダムアクセスメモリにより構成される。制御部102とRAM103は、後述するアドレス管理テーブルに基づいてデータの記憶アドレスを管理するアドレス管理手段の機能を有している。
A
フラッシュメモリ104のデータ領域は多数の物理ブロックに分割されている。この例では物理ブロック105は旧ATを記憶している。物理ブロック106は現在のATである現ATを記憶している。物理ブロック107は現ATが管理するデータエントリである。なお、フラッシュメモリ104は、消去単位である物理ブロックは2ページからなり、各ページサイズが2kBで構成されるものとする。また、その他のブロックは、図5に示した従来の不揮発性記憶装置と同様である。
The data area of the
図2は不揮発性RAM101の格納フォーマットを示すメモリマップである。図2において、上位バイト、即ちByte0から4バイト分は、図1に示したデータ領域#0を管理するATの物理アドレスを保持する領域である。これに続くByteはデータ領域#1〜#3を管理するATの物理アドレスを保持する領域である。例えばデータ領域#0を管理するATの物理アドレスを保持する領域は、ATポインタ#0_0とATポインタ#0_1の2つの領域からなり、どちらかに現ATが記憶される。現ATであることを指し示す情報、即ち現AT識別フラグは、図2の太枠で示したビットに格納される。値1が付与された方のATポインタが、現ATの物理アドレスを保持した各ポインタ毎に、ATの物理アドレス値を保持する10ビット分の領域が設けられる。例えばATポインタ#0_0であれば、Byte1側のb1をMSB、Byte0側のb0をLSBとしてATの物理アドレスが記憶される。
FIG. 2 is a memory map showing the storage format of the
図3は、本実施の形態によるアドレス管理情報更新方法を示すフローチャートである。本実施の形態による不揮発性記憶装置の動作について、図1〜3及び表1を用いて説明する。基本動作は図4に示した従来の不揮発性記憶装置の動作と同様である。相違点はアドレス管理情報ATを再配置する方法、即ちアドレス管理情報ATの物理アドレスの決定方法である。本実施の形態では不揮発性RAM101上でATポインタを更新することによって、アドレス管理情報ATの再配置を行うことを特徴とする。
FIG. 3 is a flowchart showing the address management information update method according to this embodiment. The operation of the nonvolatile memory device according to this embodiment will be described with reference to FIGS. The basic operation is the same as that of the conventional nonvolatile memory device shown in FIG. The difference is a method of rearranging the address management information AT, that is, a method of determining a physical address of the address management information AT. The present embodiment is characterized in that the address management information AT is rearranged by updating the AT pointer on the
まず、フラッシュメモリ104に初めてデータが書き込まれる場合においては、不揮発性RAM101には、各データ領域に対応するATポインタの内0番側、即ちATポインタ#0_0、ATポインタ#1_0、ATポインタ#2_0、ATポインタ#3_0に現AT識別フラグ(太枠のビット)として値1が設定されており、ポインタ値としては物理ブロック番号0が設定されているとする。但し物理ブロック番号0の物理ブロックはバッドブロックではないとする。この状態の後、アクセス装置から与えられる論理アドレスに従い、データの書き込み先の領域が決定される(図3のS301)。
First, when data is written to the
例えば、外部のアクセス装置から論理アドレス0が指定されると、フラッシュメモリ104の中のデータ領域#0の物理ブロック番号0が現ATとして指定され、フラッシュメモリ104から現ATをRAM103に読み出す(S302)。また論理ブロック番号に対応する1ワード中の物理ブロック番号をチェックする。そして、論理ブロック番号に対応する1ワード中に物理ブロック番号が登録されていない場合、即ち未アロケートの場合は、未アロケート物理ブロック番号を検出し、当該物理ブロックをイレーズ処理し、データをフラッシュメモリ104に書き込む。次にデータを書き込んだ物理ブロック番号に対応したアロケーションフラグをアロケート済み状態、即ち値0に更新する(S303)。
For example, when the
その後、RAM103上のATに基づいて、未アロケート物理ブロック番号を検出し(例えば物理ブロック番号5)、当該物理ブロックをイレーズ処理し、当該物理ブロックをアロケート済み状態、即ち値0に更新した上で、RAM103のATをフラッシュメモリ104に書き戻す(S304)。物理ブロック番号5が現ATとなるので、不揮発性RAM101のATポインタ#0_1に、ポインタ値として物理ブロック番号5を書き込み、現AT識別フラグ(太枠のビット)に値1を書き込む。更にATポインタ#0_0は旧ATとなるので、現AT識別フラグ(太枠のビット)に値0を書き込む。以上の処理が終わった時の不揮発性RAM101の記憶状態は図2に示すようになる。
Thereafter, based on the AT on the
次にアクセス装置から書き込み要求があった場合は、図1に示す通り物理ブロック番号5のアドレスに記憶されている現ATに基づいて、斜線を施した物理ブロック、即ち物理ブロック番号4092の物理ブロックにデータを書き込む。
Next, when there is a write request from the access device, based on the current AT stored at the address of the
なお、AT自体を不揮発性RAMに記憶させる方法も考えられるが、本実施の形態のようにATの容量は2kBと比較的大きな容量であるため、不揮発性RAM101より容量の大きな不揮発性RAMを備える必要が生じ、コスト的にデメリットとなる。フラッシュメモリの容量が大きくなるにつれてアドレス管理情報ATの容量が大きくなるので、上記デメリットは更に顕著となる。
Although a method of storing the AT itself in the nonvolatile RAM is also conceivable, since the AT has a relatively large capacity of 2 kB as in the present embodiment, a nonvolatile RAM having a larger capacity than the
また本実施の形態のようにアドレス管理情報ATのサイズを合理化するために、フラッシュッメモリ全体のアドレス空間をデータ領域#0〜#3に分割して、それぞれ独立にアドレス管理情報ATを有する場合は、アクセス装置からアクセスされる論理アドレスが、頻繁にデータ領域#0〜#3の間を跨るアクセスがなされたとき、そのアクセス毎にアドレス管理情報ATをフラッシュメモリから不揮発性RAMにロードする必要がある。
Further, in order to rationalize the size of the address management information AT as in this embodiment, the address space of the entire flash memory is divided into
図4に示したような従来の不揮発性記憶装置にあっては、アドレス管理情報ATをフラッシュメモリから揮発性のRAMにロードしており、揮発性のRAMは書き込みサイクルが10nSecオーダーであるため、比較的高速にロードできた。不揮発性RAMは書き込みサイクルが100nSecオーダーであるため、例えば2kB分のアドレス管理情報ATをロードするのに200μSec(2kB×100nSec)となる。これはフラッシュメモリの書き込みサイクル時間に近い時間となり、処理速度の低下として無視できないオーダーとなる。 In the conventional nonvolatile memory device as shown in FIG. 4, the address management information AT is loaded from the flash memory to the volatile RAM, and the volatile RAM has a write cycle on the order of 10 nSec. It was able to load relatively fast. Since the nonvolatile RAM has a write cycle on the order of 100 nSec, for example, 200 μSec (2 kB × 100 nSec) is required to load the address management information AT for 2 kB. This is a time close to the write cycle time of the flash memory, and it is an order that cannot be ignored as a reduction in processing speed.
またフラッシュメモリ104はデータ領域#0〜データ領域#3に分割しなくても構わない。また不揮発性RAM101はメモリコントローラ108に内蔵させず、メモリコントローラ108の外部にあっても構わない。また不揮発性RAM101は、強誘電体メモリ(FeRAM)や、磁性記録式随時書き込み読み出しメモリ(MRAM)や、オボニックユニファイドメモリ(OUM)や、レジスタンスRAM(RRAM)でもよい。
The
本発明の不揮発性記憶装置は、フラッシュメモリに対してのアドレス管理情報をフラッシュメモリ自身に記憶し、そのアドレス管理情報のうちの必要な部分を揮発性メモリに読み出して使用する装置であり、高速処理性を損なうことなくウェアレベリングを実現することができる。本発明は、特に動画などのストリームデータの記録再生を行うシステム等、リアルタイム性の求められる機器の記憶装置として有益である。 The nonvolatile storage device of the present invention is a device that stores address management information for the flash memory in the flash memory itself, and reads and uses a necessary part of the address management information in the volatile memory. Wear leveling can be realized without impairing processability. INDUSTRIAL APPLICABILITY The present invention is particularly useful as a storage device for devices that require real-time properties, such as a system that records and reproduces stream data such as moving images.
101 不揮発性RAM
102、502 制御部
103、503 RAM
104、508 フラッシュメモリ
105,106,404 物理ブロック
107 データエントリ
401 ATI群
402 AT群α
403 AT群β
501 ホストインターフェース(ホストI/F)
504 ATI群領域
505 データ領域
101 Nonvolatile RAM
102, 502
104, 508
403 AT group β
501 Host interface (Host I / F)
504
Claims (28)
前記不揮発性の主記憶メモリに対して、データの記憶アドレスを管理するアドレス管理テーブル及びデータの読み書き制御を行う制御手段と、
前記アドレス管理テーブルに基づいてデータの記憶アドレスを管理するアドレス管理手段と、
前記アドレス管理テーブルの記憶アドレスを記憶する不揮発性の補助記憶メモリと、具備し、
前記不揮発性の補助記憶メモリが、前記不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであり、前記アドレス管理テーブルの記憶アドレスを適宜更新することによって前記アドレス管理テーブルの記憶アドレスが固定化されないようにすることを特徴とするメモリコントローラ。 A memory controller that writes data to and reads data from a nonvolatile main memory in accordance with a command and a logical address given from an external access device,
An address management table for managing data storage addresses and control means for performing data read / write control with respect to the nonvolatile main memory;
Address management means for managing data storage addresses based on the address management table;
A non-volatile auxiliary storage memory for storing a storage address of the address management table;
The non-volatile auxiliary storage memory is a non-volatile memory having a higher number of rewrite guarantees than the non-volatile main storage memory, and the storage address of the address management table is updated by appropriately updating the storage address of the address management table. A memory controller characterized in that the memory controller is not fixed.
前記不揮発性の主記憶メモリは、
少なくとも1つのセクタを含む複数の物理ブロックから成り、
前記メモリコントローラは、
前記不揮発性の主記憶メモリに対して、データの記憶アドレスを管理するアドレス管理テーブル及びデータの読み書き制御を行う制御手段と、前記アドレス管理テーブルに基づいてデータの記憶アドレスを管理するアドレス管理手段と、前記アドレス管理テーブルの記憶アドレスを記憶する不揮発性の補助記憶メモリとを具備し、
前記不揮発性の補助記憶メモリは、前記不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであり、前記アドレス管理テーブルの記憶アドレスを適宜更新することによって前記アドレス管理テーブルの記憶アドレスが固定化されないようにすることを特徴とする不揮発性記憶装置。 A non-volatile storage device having a non-volatile main memory and a memory controller, and writing and reading data to and from the non-volatile main memory according to a command and a logical address given from an external access device ,
The nonvolatile main memory is
A plurality of physical blocks including at least one sector;
The memory controller is
An address management table that manages data storage addresses and control means for performing data read / write control for the nonvolatile main memory, and address management means for managing data storage addresses based on the address management table; A non-volatile auxiliary storage memory for storing a storage address of the address management table,
The non-volatile auxiliary storage memory is a non-volatile memory having a larger number of guaranteed rewrites than the non-volatile main storage memory, and the storage address of the address management table is updated by appropriately updating the storage address of the address management table. A non-volatile storage device characterized in that it is not fixed.
前記不揮発性の主記憶メモリは、
少なくとも1つのセクタを含む複数の物理ブロックから成り、
前記メモリコントローラは、
前記不揮発性の主記憶メモリに対して、データの記憶アドレスを管理するアドレス管理テーブル及びデータの読み書き制御を行う制御手段と、前記アドレス管理テーブルに基づいてデータの記憶アドレスを管理するアドレス管理手段と、前記アドレス管理テーブルの記憶アドレスを記憶する不揮発性の補助記憶メモリとを有し、
前記不揮発性の補助記憶メモリは、前記不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであり、前記アドレス管理テーブルの記憶アドレスを適宜更新することによって前記アドレス管理テーブルの記憶アドレスが固定化されないようにすることを特徴とする不揮発性記憶システム。 Non-volatile memory having an access device, a non-volatile main memory, and a memory controller, and writing and reading data to and from the non-volatile main memory according to a command and a logical address given from the access device A system,
The nonvolatile main memory is
A plurality of physical blocks including at least one sector;
The memory controller is
An address management table that manages data storage addresses and control means for performing data read / write control for the nonvolatile main memory, and address management means for managing data storage addresses based on the address management table; A non-volatile auxiliary storage memory for storing a storage address of the address management table,
The non-volatile auxiliary storage memory is a non-volatile memory having a larger number of guaranteed rewrites than the non-volatile main storage memory, and the storage address of the address management table is updated by appropriately updating the storage address of the address management table. A non-volatile storage system characterized in that the memory is not fixed.
前記不揮発性の主記憶メモリに対してデータの記憶アドレスを管理するアドレス管理テーブル及びデータの読み書き制御を行い、前記アドレス管理テーブルに基づいてデータの記憶アドレスの管理を行い、前記アドレス管理テーブルの記憶アドレスを不揮発性の補助記憶メモリに記憶し、
前記不揮発性の補助記憶メモリは、前記不揮発性の主記憶メモリよりも書き換え保証回数が多い不揮発性のメモリであり、前記アドレス管理テーブルの記憶アドレスを適宜更新することによって前記アドレス管理テーブルの記憶アドレスが固定化されないようにすることを特徴とするメモリ制御方法。 A memory control method for writing data to and reading data from a nonvolatile main memory according to a command and a logical address given from the outside,
An address management table for managing data storage addresses and data read / write control with respect to the nonvolatile main storage memory, management of data storage addresses based on the address management table, and storage of the address management table Store the address in non-volatile auxiliary storage memory,
The non-volatile auxiliary storage memory is a non-volatile memory having a larger number of guaranteed rewrites than the non-volatile main storage memory, and the storage address of the address management table is updated by appropriately updating the storage address of the address management table. A memory control method characterized in that the memory is not fixed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004281677A JP2006099211A (en) | 2004-09-28 | 2004-09-28 | Memory controller and nonvolatile storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004281677A JP2006099211A (en) | 2004-09-28 | 2004-09-28 | Memory controller and nonvolatile storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006099211A true JP2006099211A (en) | 2006-04-13 |
Family
ID=36238991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004281677A Pending JP2006099211A (en) | 2004-09-28 | 2004-09-28 | Memory controller and nonvolatile storage device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006099211A (en) |
-
2004
- 2004-09-28 JP JP2004281677A patent/JP2006099211A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
US8180955B2 (en) | Computing systems and methods for managing flash memory device | |
US10991422B2 (en) | Data storage device using a host memory buffer for single-level cell storage and control method for non-volatile memory | |
KR101202620B1 (en) | Non-volatile memory and method with multi-stream updating | |
KR101089576B1 (en) | Non-volatile memory and method with improved indexing for scratch pad and update blocks | |
US8041884B2 (en) | Controller for non-volatile memories and methods of operating the memory controller | |
US7734862B2 (en) | Block management for mass storage | |
KR100771521B1 (en) | Flash memory device having a multi-leveled cell and programming method thereof | |
US9003099B2 (en) | Disc device provided with primary and secondary caches | |
KR101465789B1 (en) | Write and merge methods in memory card systems for reducing the number of page copies | |
US20030229753A1 (en) | Flash memory file system | |
US20070094440A1 (en) | Enhanced data access in a storage device | |
JPWO2006067923A1 (en) | MEMORY CONTROLLER, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY SYSTEM, AND MEMORY CONTROL METHOD | |
US7287117B2 (en) | Flash memory and mapping control apparatus and method for flash memory | |
US8438325B2 (en) | Method and apparatus for improving small write performance in a non-volatile memory | |
JP2008192154A (en) | Memory mapping method and memory mapping system | |
WO2011068109A1 (en) | Storage device and memory controller | |
KR20070101261A (en) | Non-volatile memory and method with multi-stream update tracking | |
US20140223075A1 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
US20100287330A1 (en) | Method for writing data into flash memory | |
US20050005057A1 (en) | [nonvolatile memory unit with page cache] | |
US8271721B2 (en) | Data writing method and data storage device | |
JPWO2008139689A1 (en) | Memory controller, semiconductor recording device, and rewrite count notification method | |
US11080203B2 (en) | Data storage device and control method for non-volatile memory | |
JP2009116465A (en) | Storage device and memory control method |