JP5255389B2 - Storage device and memory control method - Google Patents

Storage device and memory control method Download PDF

Info

Publication number
JP5255389B2
JP5255389B2 JP2008250815A JP2008250815A JP5255389B2 JP 5255389 B2 JP5255389 B2 JP 5255389B2 JP 2008250815 A JP2008250815 A JP 2008250815A JP 2008250815 A JP2008250815 A JP 2008250815A JP 5255389 B2 JP5255389 B2 JP 5255389B2
Authority
JP
Japan
Prior art keywords
block
data
replacement
queue
semiconductor memory
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.)
Active
Application number
JP2008250815A
Other languages
Japanese (ja)
Other versions
JP2010079860A (en
Inventor
譲 高橋
義弘 中野
広昭 福丸
敬 梅原
裕樹 中村
守 市村
芳巳 藤又
広茂 柏原
克裕 小原
幹 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information and Control Solutions Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Control Solutions Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Information and Control Solutions Ltd filed Critical Hitachi Ltd
Priority to JP2008250815A priority Critical patent/JP5255389B2/en
Publication of JP2010079860A publication Critical patent/JP2010079860A/en
Application granted granted Critical
Publication of JP5255389B2 publication Critical patent/JP5255389B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、不揮発性半導体メモリを用いた記憶装置における長寿命化の技術に関する。   The present invention relates to a technique for extending the life of a storage device using a nonvolatile semiconductor memory.

近年、情報機器の補助記憶装置として、磁気ディスク記憶装置のほかに、耐振性やアクセス速度の面で優れた半導体メモリを記憶媒体とする記憶装置が用いられるようになってきている。その中で、特に、フラッシュメモリなどのEEPROM(Electrically Erasable Programmable Read Only Memory)のような、電気的に消去可能で再書き込み可能な不揮発性半導体メモリを用いたものが、情報機器の補助記憶装置の主流となってきている。   In recent years, as an auxiliary storage device for information equipment, in addition to a magnetic disk storage device, a storage device using a semiconductor memory excellent in vibration resistance and access speed as a storage medium has been used. Among them, in particular, those using an electrically erasable and rewritable nonvolatile semiconductor memory such as an EEPROM (Electrically Erasable Programmable Read Only Memory) such as a flash memory is an auxiliary storage device of information equipment. It has become mainstream.

不揮発性半導体メモリには、一般に、その素子の特性上、データの書き換え回数(消去回数)に上限(例えば10万回程度)がある。そして、不揮発性半導体メモリでは、物理ブロックごとにデータ消去が行われるので、特定のブロックだけが早く消去回数の上限回数に達しないように工夫すること、つまり、ブロックの消去回数の平準化(以下、単に「平準化」という。)が望まれる。平準化することで、記憶装置の寿命が延びるからである。   In general, the nonvolatile semiconductor memory has an upper limit (for example, about 100,000 times) in the number of data rewrites (erase times) due to the characteristics of the element. In the nonvolatile semiconductor memory, since data is erased for each physical block, it is devised not to reach the upper limit number of erase times only for a specific block, that is, to equalize the number of erase times of a block (hereinafter referred to as the block erase number). Simply called “leveling”). This is because the life of the storage device is extended by leveling.

例えば、特許文献1の技術では、使用中の物理ブロックであるデータブロックのいずれかを、待機中の物理ブロックである交替ブロックと交替させる際に、消去回数の少ない交替ブロックを用いることで平準化を図っている。
特開2005−196634号公報
For example, in the technique of Patent Document 1, when any one of data blocks that are physical blocks in use is replaced with a replacement block that is a waiting physical block, leveling is performed by using a replacement block with a small number of erasures. I am trying.
JP 2005-196634 A

しかしながら、特許文献1の技術では、平準化に関するある程度の効果はあるものの、特定のデータブロックが読み出し専用化(書き換えが長時間行われていない状態化)している場合、そのデータブロックの消去回数が少ないまま、他のブロックが消去回数の上限回数に達してしまう事態が発生し、平準化が充分とは言えなかった。   However, although the technique of Patent Document 1 has a certain level of effect on leveling, when a specific data block is dedicated to reading (a state in which rewriting is not performed for a long time), the number of times of erasing the data block However, there was a situation in which other blocks reached the upper limit of the number of erasures with a small amount, and leveling was not sufficient.

そこで、本発明は、前記問題に鑑みてなされたものであり、不揮発性半導体メモリに関してより効果的な平準化を行うことを課題とする。   Therefore, the present invention has been made in view of the above problems, and an object thereof is to perform more effective leveling with respect to the nonvolatile semiconductor memory.

前記課題を解決するために、本発明は、記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う不揮発性半導体メモリと、外部のホスト装置からの指示に従い、不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御部と、を具備する記憶装置である。メモリ制御部は、不揮発性半導体メモリの物理ブロックを、少なくとも、使用中の物理ブロックであるデータブロックと、待機中の物理ブロックである交替ブロックと、別々に管理し、その際、前記データブロックを先入れ先出しのデータ構造であるデータブロック用キューで管理するとともに、前記交替ブロックを所定範囲の書き換え回数ごとにそれぞれ別々の交替ブロック用キューで管理し、前記物理ブロックごとの書き換え回数を管理し、所定のタイミングで、前記データブロック用キューの先頭のデータブロックの書き換え回数に比べて、前記所定範囲の下限の書き換え回数のほうが大きい前記交替ブロック用キューに交替ブロックが存在する場合には、当該データブロック用キューの先頭のデータブロックと、当該交替ブロック用キューに存在する前記交替ブロックのいずれかと、を交替させる。その他の手段については後記する。 In order to solve the above problems, the present invention provides a nonvolatile semiconductor memory that performs data writing to a storage area in a predetermined unit and erases data in units of physical blocks that have a larger data amount than the predetermined unit. A memory control unit that controls writing and reading of data to and from the nonvolatile semiconductor memory in accordance with an instruction from an external host device. Memory control unit, the physical block of the nonvolatile semiconductor memory, at least, a data block is a physical block during use, a replacement block is a physical block waiting, separately managed, this time, the data block The data block is managed in a first-in first-out data structure queue, the replacement block is managed in a separate replacement block queue for each predetermined number of rewrites, the number of rewrites in each physical block is managed, in timing, compared to the number of times of rewriting of the leading data block of the data block queue, when the predetermined lower range limit the replacement to the replacement block queue block more large number of rewrites of are present, for the data block For the first data block in the queue and the replacement block With any of the replacement block existing in-menu, it is alternated. Other means will be described later.

本発明によれば、不揮発性半導体メモリに関してより効果的な平準化を行うことができる。   According to the present invention, more effective leveling can be performed with respect to the nonvolatile semiconductor memory.

以下、本発明を実施するための最良の形態(以下、実施形態という。)について、図面を参照(言及図以外の図も適宜参照)しながら説明する。図1は、本実施形態の記憶装置のハードウェア構成を含む説明図である。   Hereinafter, the best mode for carrying out the present invention (hereinafter referred to as an embodiment) will be described with reference to the drawings (refer to drawings other than the referenced drawings as appropriate). FIG. 1 is an explanatory diagram including the hardware configuration of the storage device of this embodiment.

図1に示すように、記憶装置6は、ホスト装置3からの指示に基づいてデータの記憶を行う装置であり、ホスト装置3とデータバス4を介してアクセス可能に接続される。データバス4としては、例えばSCSI(Small Computer System Interface)やATA(Advanced Technology Attachment)などが用いられるが、USB(Universal Serial Bus)などの他のデータバスであってもよい。   As shown in FIG. 1, the storage device 6 is a device that stores data based on an instruction from the host device 3, and is connected to the host device 3 via the data bus 4 so as to be accessible. As the data bus 4, for example, a small computer system interface (SCSI) or an advanced technology attachment (ATA) is used, but another data bus such as a USB (Universal Serial Bus) may be used.

記憶装置6は、メモリ制御部1および半導体メモリ2を備えている。半導体メモリ2とメモリ制御部1とのデータのやり取りは、データバス5を介して行われる。   The storage device 6 includes a memory control unit 1 and a semiconductor memory 2. Data exchange between the semiconductor memory 2 and the memory control unit 1 is performed via the data bus 5.

メモリ制御部1は、マイクロプロセッサ11(演算部)、メモリI/F(インターフェース)制御部12、ホストI/F制御部13、および、メモリ14を備えている。   The memory control unit 1 includes a microprocessor 11 (arithmetic unit), a memory I / F (interface) control unit 12, a host I / F control unit 13, and a memory 14.

マイクロプロセッサ11は、ホスト装置3からの指示に従い、半導体メモリ2に対するデータの書き込みおよび読み出しを制御する。
メモリI/F制御部12は、マイクロプロセッサ11からの指示により半導体メモリ2とのアクセス制御を行う。なお、マイクロプロセッサ11から半導体メモリ2を直接制御可能であれば、メモリI/F制御部12は必ずしも必要ではない。
The microprocessor 11 controls writing and reading of data with respect to the semiconductor memory 2 in accordance with instructions from the host device 3.
The memory I / F control unit 12 performs access control with the semiconductor memory 2 according to an instruction from the microprocessor 11. Note that the memory I / F control unit 12 is not necessarily required if the microprocessor 11 can directly control the semiconductor memory 2.

ホストI/F制御部13は、ホスト装置3からのデータの書き込みおよび読み出し要求(指示)に従って、ホスト装置3とのデータの送受信を制御する。なお、ホスト装置3からのデータの書き込みおよび読み出し要求は、半導体メモリ2に関して構築される論理的記憶領域(詳細は後記)に対して行われる。   The host I / F control unit 13 controls data transmission / reception with the host device 3 in accordance with data write / read requests (instructions) from the host device 3. Note that data write and read requests from the host device 3 are made to a logical storage area (details will be described later) constructed for the semiconductor memory 2.

メモリ14は、マイクロプロセッサ11の作業領域であり、例えば、SRAM(Static Random Access Memory)、DRAM(Dynamic RAM)、MRAM(Magneto-resistive RAM)などのメモリ素子により実現できる。メモリ14は、半導体メモリ2の管理情報として、格納情報141、論理・物理変換テーブル142、データブロックキュー143、交替ブロックキュー144、消去待ちブロックキュー145、消去回数情報146、および、不良ブロック情報147を記憶している。なお、メモリ14内の各情報は、マイクロプロセッサ11が記憶装置6の電源オン時に半導体メモリ2のデータを読み出すことにより、構築される。   The memory 14 is a work area of the microprocessor 11 and can be realized by a memory element such as an SRAM (Static Random Access Memory), a DRAM (Dynamic RAM), or an MRAM (Magneto-resistive RAM). The memory 14 stores storage information 141, logical / physical conversion table 142, data block queue 143, replacement block queue 144, erase wait block queue 145, erase count information 146, and bad block information 147 as management information of the semiconductor memory 2. Is remembered. Each information in the memory 14 is constructed by the microprocessor 11 reading data from the semiconductor memory 2 when the storage device 6 is powered on.

ここで、前提として、半導体メモリ2が、論理・物理変換テーブル142および消去回数情報146と同一の情報を格納しているものとする。格納情報141は、半導体メモリ2においてそれらの情報(論理・物理変換テーブル142および消去回数情報146と同一の情報)を格納しているブロック番号の情報である。なお、半導体メモリ2は、データの書き込みと読み出しはページ単位(所定の単位)で行われ、データの消去は複数ページからなるブロック単位で行われる。また、ブロックには、すでにデータが格納されているデータブロック、データが未格納で待機中の交替ブロック、データの消去を待っている状態の消去待ちブロックがある(詳細は後記)。   Here, it is assumed that the semiconductor memory 2 stores the same information as the logical / physical conversion table 142 and the erase count information 146. The storage information 141 is information of a block number in which such information (the same information as the logical / physical conversion table 142 and the erase count information 146) is stored in the semiconductor memory 2. In the semiconductor memory 2, data writing and reading are performed in page units (predetermined units), and data erasing is performed in block units including a plurality of pages. The block includes a data block in which data is already stored, a replacement block in which data is not stored and is waiting, and an erasure waiting block in a state waiting for data erasure (details will be described later).

論理・物理変換テーブル142は、ホスト装置3からのアクセス時に示される論理アドレスと半導体メモリ2上の物理アドレス(ブロック番号とページ番号)との対応情報を格納するテーブルである(詳細は図4で後記)。   The logical / physical conversion table 142 is a table that stores correspondence information between a logical address indicated at the time of access from the host device 3 and a physical address (block number and page number) on the semiconductor memory 2 (details are shown in FIG. 4). (Postscript).

データブロックキュー143は、半導体メモリ2のデータブロックをキュー(先入れ先出しのデータ構造)形式で記憶(管理)する情報である。
交替ブロックキュー144は、半導体メモリ2の交替ブロックをキュー形式で記憶(管理)する情報である。
消去待ちブロックキュー145は、半導体メモリ2の消去待ちブロックをキュー形式で記憶(管理)する情報である。
なお、データブロックキュー143、交替ブロックキュー144、および、消去待ちブロックキュー145の代わりに、テーブルなどの他の形式で記憶(管理)した情報を用いてもよい。
The data block queue 143 is information for storing (managing) data blocks in the semiconductor memory 2 in a queue (first-in first-out data structure) format.
The replacement block queue 144 is information for storing (managing) replacement blocks of the semiconductor memory 2 in a queue format.
The erase waiting block queue 145 is information for storing (managing) the erase waiting blocks of the semiconductor memory 2 in a queue format.
Instead of the data block queue 143, the replacement block queue 144, and the deletion waiting block queue 145, information stored (managed) in another format such as a table may be used.

消去回数情報146は、半導体メモリ2の物理ブロックごとの消去回数の情報である。
不良ブロック情報147は、書き込み禁止の不良ブロックのアドレスの情報である。なお、この不良ブロック情報147として、半導体メモリ2の製造時から存在する先天性の不良ブロックの情報と、半導体メモリ2の使用中に発生した後天性の不良ブロックの情報とが別々に記憶されていてもよい。
The erase count information 146 is information on the erase count for each physical block of the semiconductor memory 2.
The bad block information 147 is information on the address of a write-prohibited bad block. As the defective block information 147, information on the congenital defective blocks existing from the time of manufacture of the semiconductor memory 2 and information on acquired defective blocks generated during use of the semiconductor memory 2 are stored separately. May be.

また、メモリ14は、上記の各情報のほかに、物理ブロックごとに次回の書き込みページを管理するためのテーブルなどを有していてもよいが、それらは本発明の特徴と直接関係がないので、図示や詳細な説明を省略する。   In addition to the above information, the memory 14 may have a table for managing the next write page for each physical block, but these are not directly related to the features of the present invention. The illustration and detailed description are omitted.

半導体メモリ2は、不揮発性で、ホスト装置3からの指示に従ってメモリ制御部1がデータの書き込みおよび読み出しを制御する対象の記憶媒体であり、例えばフラッシュメモリにより実現できる。半導体メモリ2は、ホスト装置3からの指示に従ってメモリ制御部1が書き込むデータ(実データ)のほか、前記したように、メモリ14に記憶される論理・物理変換テーブル142および消去回数情報146と同一の情報などの自身に関する管理情報の少なくとも一部も格納している。   The semiconductor memory 2 is non-volatile and is a storage medium to be controlled by the memory control unit 1 in accordance with instructions from the host device 3 and can be realized by, for example, a flash memory. The semiconductor memory 2 is the same as the logical / physical conversion table 142 and the erase count information 146 stored in the memory 14 as described above, in addition to the data (actual data) written by the memory control unit 1 in accordance with an instruction from the host device 3. It also stores at least a part of the management information related to itself such as the above information.

図2は、本実施形態の半導体メモリの内部構成を示した図である。図2では、半導体メモリ2に関する論理的記憶領域を示している。図1に示したホスト装置3は、記憶装置6に関して、この論理的記憶領域を認識する。   FIG. 2 is a diagram showing an internal configuration of the semiconductor memory according to the present embodiment. FIG. 2 shows a logical storage area related to the semiconductor memory 2. The host device 3 shown in FIG. 1 recognizes this logical storage area with respect to the storage device 6.

ブロック21は、データ消去の最小単位である。ページ211は、データの読み出しおよび書き込みの単位である。図2において、半導体メモリ2の論理的記憶領域は、複数のブロック21で構成されており、ブロック21は複数のページ211により構成されている。すなわち、半導体メモリ2の論理的記憶領域は、ブロック1からブロックm(整数)までのm個の各ブロック21を有し、それぞれのブロックは、ページ1からページn(整数)までのn個のページを有している。   The block 21 is a minimum unit for erasing data. The page 211 is a unit for reading and writing data. In FIG. 2, the logical storage area of the semiconductor memory 2 is composed of a plurality of blocks 21, and the block 21 is composed of a plurality of pages 211. That is, the logical storage area of the semiconductor memory 2 has m blocks 21 from block 1 to block m (integer), and each block includes n blocks from page 1 to page n (integer). Has a page.

図3は、メモリ制御部の制御によりフラッシュメモリに関して構築される論理的記憶領域を示した図である。
半導体メモリ2に関する論理的記憶領域として、データブロック22と交替ブロック23がある。
データブロック22は、データを記憶する一つあるいは複数のブロックからなるブロック(ブロックの集合)であり、ブロック1からブロックp(整数)までの論理ブロックを有している。各ブロックは、図示のようにデータページ222と交替ページ223で構成されている。
FIG. 3 is a diagram showing a logical storage area constructed for the flash memory under the control of the memory control unit.
As logical storage areas related to the semiconductor memory 2, there are a data block 22 and a replacement block 23.
The data block 22 is a block (set of blocks) made up of one or a plurality of blocks for storing data, and has logical blocks from block 1 to block p (integer). Each block includes a data page 222 and a replacement page 223 as shown in the figure.

データページ222は、ページ1からページq(整数)までのデータを保持するページを有していて、交替ページ223は、ページ(q+1)からページn(整数)までを有している。この交替ページ223は、消去済みの再書込み可能なページである。   The data page 222 has pages that hold data from page 1 to page q (integer), and the replacement page 223 has pages (q + 1) to page n (integer). The replacement page 223 is an erased rewritable page.

また、交替ブロック23は、ブロック(p+1)からブロックm(整数)までの消去済みの交替用のブロックであり、各ブロックは、ページ1からページn(整数)までの消去済みページ232で構成されている。   The replacement block 23 is an erased replacement block from the block (p + 1) to the block m (integer), and each block includes erased pages 232 from page 1 to page n (integer). ing.

データページ222は、ユーザがホスト装置3からの指示に従いデータを読み書きすることができる領域である。このデータページ222には、半導体メモリ2の制約上から上書きができないため、メモリ制御部1の制御による上書き処理後の上書きデータは交替ページ223に記憶される。   The data page 222 is an area where the user can read and write data according to instructions from the host device 3. Since the data page 222 cannot be overwritten due to restrictions of the semiconductor memory 2, the overwritten data after the overwriting process under the control of the memory control unit 1 is stored in the replacement page 223.

そして、交替ページ223に記憶できないときは、新たに交替ブロック23を割り当て、書き込みをする。このとき、上書き処理後の有効部分である、交替ページ223の上書きデータおよびデータページ222の非上書きデータを交替ブロック23に書き写して交替させる。さらに、交替後の交替ページ223およびデータページ222はデータ消去して交替ブロック23の候補とする。   When the replacement page 223 cannot be stored, a replacement block 23 is newly allocated and written. At this time, the overwritten data of the replacement page 223 and the non-overwritten data of the data page 222, which are valid portions after the overwriting process, are copied and replaced in the replacement block 23. Further, the replacement page 223 and the data page 222 after replacement are erased to be candidates for the replacement block 23.

なお、図3における「p」および「q」の値は、本実施形態では記憶装置6の製造時に初期値として設定するものである。この「p」および「q」の値の設定方法については、特に限定しないが、予め設定しておくほかに、マイクロプロセッサ11へデバッガを接続して設定するようにしてもよい。また、ホスト装置3から予め決められたコマンドを発行して設定してもよい。また、「p」および「q」の値を可変としてテーブル管理することも可能であるが、本実施形態では説明を容易にするため、固定値として扱う。   Note that the values of “p” and “q” in FIG. 3 are set as initial values when the storage device 6 is manufactured in this embodiment. The method of setting the values of “p” and “q” is not particularly limited, but may be set by connecting a debugger to the microprocessor 11 in addition to setting in advance. Alternatively, a predetermined command may be issued from the host device 3 and set. Further, it is possible to manage the table with the values of “p” and “q” being variable, but in the present embodiment, they are handled as fixed values for easy explanation.

図4は、論理・物理変換テーブルの構成例を示した図である。論理・物理変換テーブル142は、ホスト装置3からのアクセス時に示される論理アドレスと、半導体メモリ2の物理アドレス(ブロック番号およびページ番号)とから構成される。   FIG. 4 is a diagram illustrating a configuration example of a logical / physical conversion table. The logical / physical conversion table 142 includes a logical address indicated at the time of access from the host device 3 and a physical address (block number and page number) of the semiconductor memory 2.

なお、論理アドレスは原則として初期設定状態から不変であるが、物理アドレスはメモリ制御部1による半導体メモリ2に対する書き込み動作などに応じてマイクロプロセッサ11によって書き換えられる。   In principle, the logical address is unchanged from the initial setting state, but the physical address is rewritten by the microprocessor 11 in accordance with a write operation to the semiconductor memory 2 by the memory control unit 1.

図5は、データブロックキューの概念図である。データブロックキュー143は、キュー形式で管理されるデータブロック(の識別子)のつながりを示している。先頭から最後尾までデータブロックが連結されて管理されており、最新の書き換え済みデータブロックは最後尾に連結される。   FIG. 5 is a conceptual diagram of the data block queue. The data block queue 143 indicates a connection of (identifiers) of data blocks managed in a queue format. Data blocks are concatenated and managed from the head to the tail, and the latest rewritten data block is concatenated to the tail.

このようなデータブロックキュー143では、その時点までの未書き換え時間が最長のデータブロックが先頭に存在し、最後尾に近づくにつれてその時点までの未書き換え時間が短くなっている。また、データブロックキュー143では、統計学的に考えて、先頭に近いほど書き換え回数が少なく、最後尾に近いほど書き換え回数が多いデータブロックが存在する傾向があると考えられる。   In such a data block queue 143, the data block with the longest unrewritten time up to that point exists at the head, and the unrewritten time up to that point becomes shorter as it approaches the end. Further, in the data block queue 143, it is considered statistically that there is a tendency that there is a data block with a smaller number of rewrites as it is closer to the head and with a greater number of rewrites as it is closer to the end.

図6は、交替ブロックキューの概念図である。交替ブロックキュー144は、キュー形式で管理される交替ブロック(の識別子)のつながりを示している。交替ブロックキュー144は、1万回未満、1万回以上2万回未満、・・・、9万回以上10万回未満、10万回以上というように、1万回ごとに別々のキューとして管理される。なお、ここで管理単位を「1万回ごと」としているのは一例であり、他の管理単位であってもよい。   FIG. 6 is a conceptual diagram of the replacement block queue. The replacement block queue 144 indicates a connection of replacement blocks (identifiers) managed in a queue format. The replacement block queue 144 is a separate queue for every 10,000 times, such as less than 10,000 times, 10,000 times or more and less than 20,000 times, ..., 90,000 times or more, less than 100,000 times, or 100,000 times or more. Managed. Here, the management unit “every 10,000 times” is merely an example, and another management unit may be used.

次に、図7を参照して、半導体メモリ2に関する平準化処理について説明する。図7は、半導体メモリに関する平準化処理を示したフローチャートである。   Next, the leveling process for the semiconductor memory 2 will be described with reference to FIG. FIG. 7 is a flowchart showing the leveling process related to the semiconductor memory.

まず、マイクロプロセッサ11は、書き換え回数が9万回(所定回数)以上の交替ブロックがあるか否かを判定する(ステップS1)。この判定は、メモリ14の交替ブロックキュー144を参照することにより行うことができる。また、この判定のタイミングは、定期的であってもよいし、あるいは、交替ブロックキュー144において、9万回以上10万回未満のキューに交替ブロックが登録されたときであってもよいし、さらに、マイクロプロセッサ11の処理動作の空き時間発生時であってもよい。当該交替ブロックがないと判定した場合(ステップS1でNo)、ステップS1に戻る。   First, the microprocessor 11 determines whether or not there is a replacement block whose rewrite count is 90,000 (predetermined) or more (step S1). This determination can be made by referring to the replacement block queue 144 in the memory 14. In addition, the timing of this determination may be regular, or may be when the replacement block is registered in the replacement block queue 144 in a queue of 90,000 times or more and less than 100,000 times, Furthermore, it may be a time when the processing operation of the microprocessor 11 occurs. If it is determined that there is no replacement block (No in step S1), the process returns to step S1.

当該交替ブロックがあると判定した場合(ステップS1でYes)、マイクロプロセッサ11は、データブロックキュー143における先頭のデータブロックの書き換え回数が9万回(所定回数)未満か否かを判定する(ステップS2)。   If it is determined that there is the replacement block (Yes in step S1), the microprocessor 11 determines whether the number of rewrites of the first data block in the data block queue 143 is less than 90,000 times (predetermined number) (step). S2).

9万回未満と判定した場合(ステップS2でYes)、マイクロプロセッサ11は、当該交替ブロック(書き換え回数が9万回以上の交替ブロック)と、データブロックキュー143における先頭のデータブロックとを交替(データを入れ替え)し(ステップS3)、論理・物理変換テーブル142などを更新した上で処理を終了する。   If it is determined that the number is less than 90,000 times (Yes in step S2), the microprocessor 11 replaces the replacement block (replacement block whose rewrite count is 90,000 times or more) and the first data block in the data block queue 143 ( The data is exchanged) (step S3), and the process ends after updating the logical / physical conversion table 142 and the like.

9万回以上と判定した場合(ステップS2でNo)、マイクロプロセッサ11は、その旨を管理者に表示などにより通知し、処理を終了する。通知を受けた管理者は、書き換え回数が9万回以上の交替ブロックが存在することと、データブロックキュー143における先頭のデータブロックの書き換え回数が9万回以上であることを認識し、適宜対応することができる。   If it is determined that the number of times is 90,000 times or more (No in step S2), the microprocessor 11 notifies the administrator to that effect by display or the like, and ends the process. The administrator who received the notification recognizes that there are replacement blocks with 90,000 or more rewrites and that the number of rewrites of the first data block in the data block queue 143 is 90,000 or more. can do.

図8は、前記平準化処理を行った場合のブロックの書き換え回数の変化の様子を示したグラフである。ここでは、複数の物理ブロックのうち、代表して、ブロックAとブロックBの2つの物理ブロックについて説明する。   FIG. 8 is a graph showing how the number of block rewrites changes when the leveling process is performed. Here, two physical blocks of block A and block B will be described as representatives among the plurality of physical blocks.

図8に示すように、ブロックAは、前半において時間経過とともに書き換え回数が順次増加している。一方、ブロックBは、最初少し書き換え回数が増加した後、書き換えのほとんど行われないデータ(読み出し専用化したデータ)を格納したことにより、書き換え回数がそのまま維持されている。   As shown in FIG. 8, in the block A, the number of rewrites sequentially increases with time in the first half. On the other hand, in the block B, after the number of rewrites is slightly increased at first, data that is hardly rewritten (read-only data) is stored, so that the number of rewrites is maintained as it is.

このような状況の中、時刻Tにおいて、マイクロプロセッサ11は、交替ブロックになっているブロックAの書き換え回数が9万回以上であると判定し(ステップS1でYes)、データブロックキューにおける先頭のデータブロックとなっているブロックBの書き換え回数が9万回未満であると判定する(ステップS2でYes)。その後、マイクロプロセッサ11は、ブロックAとブロックBのデータを交替し(ステップS3)、論理・物理変換テーブル142などを更新する。   Under such circumstances, at the time T, the microprocessor 11 determines that the number of rewrites of the block A that is the replacement block is 90,000 times or more (Yes in step S1), and the first in the data block queue It is determined that the number of rewrites of the block B that is a data block is less than 90,000 times (Yes in step S2). Thereafter, the microprocessor 11 replaces the data of the block A and the block B (step S3), and updates the logical / physical conversion table 142 and the like.

この処理によって、ブロックAは、読み出し専用化したデータを格納することにより、時刻Tの後、書き換え回数の増加する可能性が低く抑えられる。また、ブロックBは、読み出し専用化したデータではなく、書き換えが頻繁に行われるデータを格納することにより、時刻Tの後、書き換え回数が増加する可能性が高くなる。   By this process, the block A stores the read-only data, so that the possibility that the number of rewrites will increase after time T is kept low. Further, the block B stores data that is frequently rewritten rather than read-only data, so that the possibility that the number of rewrites will increase after time T increases.

このように、本実施形態の記憶装置6によれば、書き換え回数が9万回以上の交替ブロックと、データブロックのうちその時点までの未書き換え時間が所定より長いデータブロック(キュー形式で管理された先頭のデータブロック)とを交替することにより、より効果的な平準化を行うことができる。なお、データブロックのうちその時点までの未書き換え時間が所定より長いデータブロックとは、例えば、未書き換え時間が一番長いデータブロックであってもよいし、また、予め決められた時間長よりも長い間書き換えが行われていないデータブロックであってもよい。   As described above, according to the storage device 6 of the present embodiment, a replacement block having a rewrite count of 90,000 times or more and a data block of data blocks whose unwritten time until that point is longer than a predetermined value (managed in a queue format). By replacing the first data block), more effective leveling can be performed. Of the data blocks, the data block whose unwritten time until that point is longer than a predetermined value may be, for example, a data block having the longest unwritten time, or a predetermined length of time. It may be a data block that has not been rewritten for a long time.

また、データブロックを、先入れ先出しのデータ構造であるキュー形式で管理することで、その先頭のデータブロックを、書き換え回数が9万回以上の交替ブロックと交替する対象として抽出することができ、平準化処理を簡素化および低負担化することができる。   Also, by managing data blocks in a queue format that is a first-in first-out data structure, the top data block can be extracted as a replacement block with a replacement block with 90,000 or more rewrites, and leveled Processing can be simplified and the burden can be reduced.

さらに、データブロックキューにおける先頭のデータブロックの書き換え回数が9万回以上であったときは、そのデータブロックと、書き換え回数が9万回以上の交替ブロックとの交替を行わないことで、無駄な処理を回避できる。   Furthermore, when the number of rewrites of the first data block in the data block queue is 90,000 times or more, it is not necessary to replace the data block with a replacement block having the number of rewrites of 90,000 or more. Processing can be avoided.

以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。
例えば、前記した所定回数は、9万回でなくてもよく、半導体メモリ2の書き換え上限回数(メーカの仕様に基づくので一定ではない)に近い値であれば任意の回数を設定することができる。
As mentioned above, although embodiment of this invention was described, this invention is not limited to this, It can implement in the range which does not change the meaning.
For example, the predetermined number of times may not be 90,000, and any number can be set as long as it is close to the upper limit number of times of rewriting of the semiconductor memory 2 (which is not constant because it is based on the manufacturer's specifications). .

また、本実施形態の平準化処理と従来の平準化処理とを併用してもよい。
さらに、データブロックキューにおける先頭のデータブロックの書き換え回数が9万回以上であったときに、その2番目以降のデータブロックの書き換え回数が9万回未満か否かを判定し、9万回未満のデータブロックがあればそのデータブロックを交替に使用してもよい。
その他、ハードウェア、ソフトウェアの具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
Further, the leveling process of the present embodiment and the conventional leveling process may be used in combination.
Furthermore, when the number of rewrites of the first data block in the data block queue is 90,000 times or more, it is determined whether the number of rewrites of the second and subsequent data blocks is less than 90,000 times, and less than 90,000 times If there is a data block, the data block may be used for replacement.
In addition, specific configurations of hardware and software can be appropriately changed without departing from the gist of the present invention.

本実施形態の記憶装置のハードウェア構成を含む説明図である。It is explanatory drawing containing the hardware constitutions of the memory | storage device of this embodiment. 本実施形態の半導体メモリの内部構成を示した図である。It is the figure which showed the internal structure of the semiconductor memory of this embodiment. メモリ制御部の制御によりフラッシュメモリに関して構築される論理的記憶領域を示した図である。It is the figure which showed the logical storage area constructed | assembled regarding the flash memory by control of a memory control part. 論理・物理変換テーブルの構成例を示した図である。It is the figure which showed the structural example of the logical / physical conversion table. データブロックキューの概念図である。It is a conceptual diagram of a data block queue. 交替ブロックキューの概念図である。It is a conceptual diagram of a replacement block queue. 半導体メモリに関する平準化処理を示したフローチャートである。It is the flowchart which showed the leveling process regarding a semiconductor memory. 平準化処理を行った場合のブロックの書き換え回数の変化の様子を示したグラフである。It is the graph which showed the mode of the change of the rewrite frequency of a block at the time of performing a leveling process.

符号の説明Explanation of symbols

1 メモリ制御部
2 半導体メモリ
3 ホスト装置
4,5 データバス
6 記憶装置
11 マイクロプロセッサ(演算部)
12 メモリI/F制御部
13 ホストI/F制御部
14 メモリ
21 ブロック
22 データブロック
23 交替ブロック
DESCRIPTION OF SYMBOLS 1 Memory control part 2 Semiconductor memory 3 Host apparatus 4,5 Data bus 6 Memory | storage device 11 Microprocessor (arithmetic part)
12 Memory I / F Control Unit 13 Host I / F Control Unit 14 Memory 21 Block 22 Data Block 23 Alternate Block

Claims (2)

記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う不揮発性半導体メモリと、
外部のホスト装置からの指示に従い、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御部と、
を具備する記憶装置であって、
前記メモリ制御部は、
前記不揮発性半導体メモリの物理ブロックを、少なくとも、使用中の物理ブロックであるデータブロックと、待機中の物理ブロックである交替ブロックと、別々に管理し、その際、前記データブロックを先入れ先出しのデータ構造であるデータブロック用キューで管理するとともに、前記交替ブロックを所定範囲の書き換え回数ごとにそれぞれ別々の交替ブロック用キューで管理し、
前記物理ブロックごとの書き換え回数を管理し、
所定のタイミングで、前記データブロック用キューの先頭のデータブロックの書き換え回数に比べて、前記所定範囲の下限の書き換え回数のほうが大きい前記交替ブロック用キューに交替ブロックが存在する場合には、当該データブロック用キューの先頭のデータブロックと、当該交替ブロック用キューに存在する交替ブロックのいずれかと、を交替させる
ことを特徴とする記憶装置。
A nonvolatile semiconductor memory that performs data writing to a storage area in a predetermined unit and erases data in a unit of a physical block having a data amount larger than the predetermined unit;
In accordance with an instruction from an external host device, a memory control unit that controls writing and reading of data to and from the nonvolatile semiconductor memory;
A storage device comprising:
The memory control unit
The physical block of the non-volatile semiconductor memory is managed separately at least as a data block that is a physical block that is in use and a replacement block that is a physical block that is on standby, in which case the data block is a first-in first-out data structure Are managed in a data block queue, and the replacement block is managed in a separate replacement block queue for each predetermined number of rewrites,
Managing the number of rewrites for each physical block;
If a replacement block exists in the replacement block queue, the number of rewrites at the lower limit of the predetermined range is larger than the number of rewrites of the first data block of the data block queue at a predetermined timing , the relevant data A storage device , wherein a data block at a head of a block queue is replaced with one of replacement blocks existing in the replacement block queue .
記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う不揮発性半導体メモリと、
外部のホスト装置からの指示に従い、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御部と、
を具備する記憶装置によるメモリ制御方法であって、
前記メモリ制御部は、
前記不揮発性半導体メモリの物理ブロックを、少なくとも、使用中の物理ブロックであるデータブロックと、待機中の物理ブロックである交替ブロックと、別々に管理し、その際、前記データブロックを先入れ先出しのデータ構造であるデータブロック用キューで管理するとともに、前記交替ブロックを所定範囲の書き換え回数ごとにそれぞれ別々の交替ブロック用キューで管理し、
前記物理ブロックごとの書き換え回数を管理し、
所定のタイミングで、前記データブロック用キューの先頭のデータブロックの書き換え回数に比べて、前記所定範囲の下限の書き換え回数のほうが大きい前記交替ブロック用キューに交替ブロックが存在する場合には、当該データブロック用キューの先頭のデータブロックと、当該交替ブロック用キューに存在する前記交替ブロックのいずれかと、を交替させる
ことを特徴とするメモリ制御方法。
A nonvolatile semiconductor memory that performs data writing to a storage area in a predetermined unit and erases data in a unit of a physical block having a data amount larger than the predetermined unit;
In accordance with an instruction from an external host device, a memory control unit that controls writing and reading of data to and from the nonvolatile semiconductor memory;
A memory control method using a storage device comprising:
The memory control unit
The physical block of the non-volatile semiconductor memory is managed separately at least as a data block that is a physical block that is in use and a replacement block that is a physical block that is on standby, in which case the data block is a first-in first-out data structure Are managed in a data block queue, and the replacement block is managed in a separate replacement block queue for each predetermined number of rewrites,
Managing the number of rewrites for each physical block;
If a replacement block exists in the replacement block queue, the number of rewrites at the lower limit of the predetermined range is larger than the number of rewrites of the first data block of the data block queue at a predetermined timing , the relevant data A memory control method comprising: exchanging a head data block in a block queue and any of the replacement blocks existing in the replacement block queue .
JP2008250815A 2008-09-29 2008-09-29 Storage device and memory control method Active JP5255389B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008250815A JP5255389B2 (en) 2008-09-29 2008-09-29 Storage device and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008250815A JP5255389B2 (en) 2008-09-29 2008-09-29 Storage device and memory control method

Publications (2)

Publication Number Publication Date
JP2010079860A JP2010079860A (en) 2010-04-08
JP5255389B2 true JP5255389B2 (en) 2013-08-07

Family

ID=42210184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008250815A Active JP5255389B2 (en) 2008-09-29 2008-09-29 Storage device and memory control method

Country Status (1)

Country Link
JP (1) JP5255389B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3507132B2 (en) * 1994-06-29 2004-03-15 株式会社日立製作所 Storage device using flash memory and storage control method thereof
JPH09306186A (en) * 1996-05-17 1997-11-28 Canon Inc Flash memory control device and method
JPH10320984A (en) * 1997-05-15 1998-12-04 Sharp Corp Memory device
JP3812933B2 (en) * 2001-04-19 2006-08-23 シャープ株式会社 File system and control method thereof
JP4096660B2 (en) * 2002-08-22 2008-06-04 カシオ計算機株式会社 Data recording control device and program
JP2006134475A (en) * 2004-11-05 2006-05-25 Matsushita Electric Ind Co Ltd Memory apparatus

Also Published As

Publication number Publication date
JP2010079860A (en) 2010-04-08

Similar Documents

Publication Publication Date Title
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP6016137B2 (en) Solid state drive and method of operation thereof
TWI385669B (en) Wear leveling method and storage system and controller using the same
JP5480913B2 (en) Storage device and memory controller
JP4356686B2 (en) Memory device and memory control method
US9582416B2 (en) Data erasing method, memory control circuit unit and memory storage apparatus
JP5990430B2 (en) SSD (solid state drive) device
JP5570406B2 (en) Memory controller and data recording apparatus
WO2009096180A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
WO2009118917A1 (en) Storage device using flash memory
TWI423022B (en) Memory management method, memory controller and memory storage apparatus
US8271721B2 (en) Data writing method and data storage device
JP4829202B2 (en) Storage device and memory control method
JP2010086009A (en) Storage device and memory control method
JPWO2007105688A1 (en) MEMORY CONTROLLER, NONVOLATILE STORAGE DEVICE, AND NONVOLATILE STORAGE SYSTEM
US9304906B2 (en) Memory system, controller and control method of memory
JP4308780B2 (en) Semiconductor memory device, memory controller, and data recording method
EP2381354A2 (en) Data recording device
JP2009259145A (en) Memory controller, flash memory system provided with memory controller, and method for controlling flash memory
JP5255389B2 (en) Storage device and memory control method
JP5180726B2 (en) Storage device and data write control method
JP4334331B2 (en) Flash memory access control method
JP4888333B2 (en) Flash disk device
JP4468342B2 (en) Data management method
JP2012037971A (en) Memory controller, nonvolatile memory system provided with memory controller, and method for controlling nonvolatile memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130321

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130419

R150 Certificate of patent or registration of utility model

Ref document number: 5255389

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3