JP5989156B2 - Flash memory module - Google Patents

Flash memory module Download PDF

Info

Publication number
JP5989156B2
JP5989156B2 JP2015024112A JP2015024112A JP5989156B2 JP 5989156 B2 JP5989156 B2 JP 5989156B2 JP 2015024112 A JP2015024112 A JP 2015024112A JP 2015024112 A JP2015024112 A JP 2015024112A JP 5989156 B2 JP5989156 B2 JP 5989156B2
Authority
JP
Japan
Prior art keywords
block
time
data
invalid
program
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.)
Expired - Fee Related
Application number
JP2015024112A
Other languages
Japanese (ja)
Other versions
JP2015111453A (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
Original Assignee
Hitachi 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 filed Critical Hitachi Ltd
Priority to JP2015024112A priority Critical patent/JP5989156B2/en
Publication of JP2015111453A publication Critical patent/JP2015111453A/en
Application granted granted Critical
Publication of JP5989156B2 publication Critical patent/JP5989156B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、電気的に書き換え可能な不揮発性半導体メモリにデータをプログラムする記憶制御に関する。   The present invention relates to storage control for programming data in an electrically rewritable nonvolatile semiconductor memory.

不揮発性半導体メモリでは、内部セルへのデータの記憶(プログラム)の過程で、フローティングゲートに酸化絶縁膜を貫通して電子が送られる。また、記録データのイレース(イレース)の過程で、FG(Floating Gate)から酸化絶縁膜を貫通して電子が取り出される。   In the nonvolatile semiconductor memory, electrons are transmitted to the floating gate through the oxide insulating film in the process of data storage (programming) in the internal cell. Further, in the process of erasing the recorded data, electrons are extracted from the FG (Floating Gate) through the oxide insulating film.

こうしたデータ記憶の仕組みを有する不揮発性半導体メモリは、プログラムとイレースの処理毎に酸化絶縁膜への負荷が生じる。そして、この負荷が繰り返されることで酸化絶縁膜内に複数の電子トラップ及び正孔トラップが生成される。   In a nonvolatile semiconductor memory having such a data storage mechanism, a load is applied to the oxide insulating film every time a program and erase process is performed. By repeating this load, a plurality of electron traps and hole traps are generated in the oxide insulating film.

不揮発性半導体メモリは、FG内の電荷量(電子の数)により変動する閾値電圧を測定し、記録データを判別する。このため、前述のとおり酸化絶縁膜内に電子トラップ及び正孔トラップが生成されると、この電子トラップ及び正孔トラップに電子が入り込み電圧が生じ、この電圧がFGの閾値電圧を変動させ記録データの正確な判別を困難とする。   The nonvolatile semiconductor memory determines the recording data by measuring a threshold voltage that varies depending on the amount of charge (number of electrons) in the FG. For this reason, as described above, when an electron trap and a hole trap are generated in the oxide insulating film, electrons enter the electron trap and the hole trap to generate a voltage, and this voltage fluctuates the threshold voltage of the FG to record data. It is difficult to accurately discriminate.

こうした電子トラップ及び正孔トラップによる閾値電圧の変動は、プログラム、及びイレースの累積実行回数と制御間隔に依存することが知られている。また、閾値電圧の変動による、データ保持の時間特性(以下、リテンション特性と記す)の変化についても知られている。   It is known that the fluctuation of the threshold voltage due to such electron trap and hole trap depends on the program, the cumulative number of erase executions, and the control interval. Also known is a change in time characteristics of data retention (hereinafter referred to as retention characteristics) due to fluctuations in threshold voltage.

FGに蓄えられた電荷量は、時間経過により変化するため、不揮発性半導体メモリのデータ保持期間は限られている。加えて前述の電子トラップ及び正孔トラップによる閾値電圧が変動するため、データの保持期間は、更に短縮される。   Since the amount of charge stored in the FG changes with time, the data retention period of the nonvolatile semiconductor memory is limited. In addition, since the threshold voltage due to the aforementioned electron trap and hole trap varies, the data retention period is further shortened.

不揮発性半導体メモリを記憶媒体とする半導体記憶装置(以下、記憶装置と記す)は、装置仕様として定めたデータ保持期間の基準を満たす必要がある。記憶装置は、データのプログラムとイレース回数等から酸化絶縁膜の劣化具合を予測し、搭載した不揮発性半導体メモリの特定領域のデータ保持期間が、基準を満たないと予測される場合、この記憶領域を使用不可とする。   A semiconductor storage device using a nonvolatile semiconductor memory as a storage medium (hereinafter referred to as a storage device) needs to satisfy a data retention period standard defined as a device specification. The storage device predicts the deterioration degree of the oxide insulating film from the data program, the number of erases, and the like, and when the data retention period of the specific region of the mounted nonvolatile semiconductor memory is predicted not to meet the standard, this storage region Is disabled.

記憶装置は、こうした使用不可領域が生じても稼働し続けられるようにするため、一般に装置の総記憶データ量以上の予備の記憶領域を搭載し、この予備の記憶領域を前述の使用不可と判断した領域の代替えとして割り当て、常に一定の記憶領域を維持するように制御する。しかし、この割り当てる予備の領域が枯渇したときには、記憶装置は、データを新たに記録する能力を失ったとして停止する。   In order for the storage device to continue to operate even if such an unusable area occurs, generally a spare storage area larger than the total storage data amount of the apparatus is mounted, and this spare storage area is determined to be unusable as described above. The storage area is assigned as a replacement for the designated area, and control is performed so that a constant storage area is always maintained. However, when the reserved spare area is depleted, the storage device stops because it loses the ability to newly record data.

従って、記憶装置の長寿命化を実現させるには、電子トラップ及び正孔トラップによる閾値電圧の変動を抑え、記憶領域のデータ保持期間が短縮されるのを防止する必要がある。   Therefore, in order to realize the long life of the storage device, it is necessary to suppress the fluctuation of the threshold voltage due to the electron trap and the hole trap and prevent the data retention period of the storage area from being shortened.

こうした電子トラップ及び正孔トラップの影響を軽減する制御を開示する文献として、例えば特許文献1がある。特許文献1には、リテンション特性の悪化した領域を一定期間不使用とし、電子トラップおよび正孔トラップを減少させ、再利用する記憶装置が開示されている(特許文献1)。   As a document disclosing control for reducing the influence of such electron traps and hole traps, for example, there is Patent Document 1. Patent Document 1 discloses a storage device in which a region in which the retention characteristic is deteriorated is not used for a certain period, and electron traps and hole traps are reduced and reused (Patent Document 1).

US2010/0165689 A1US2010 / 0165689 A1

例えば、不揮発性半導体メモリ(典型的にはフラッシュメモリ)は、複数のブロックより構成され、このブロックを最小イレース単位としている。そして、前述した通り、イレースとプログラムの繰り返しの処理により酸化絶縁膜に電子トラップ及び正孔トラップが生成されるため、ブロック毎にイレース回数の上限が設けられている。   For example, a nonvolatile semiconductor memory (typically a flash memory) is composed of a plurality of blocks, and this block is the minimum erase unit. As described above, since an electron trap and a hole trap are generated in the oxide insulating film by the repeated processing of erasing and programming, an upper limit of the number of erasing is provided for each block.

一般的に、半導体メモリは、上書きが不可であり、プログラム済みの領域についてイレースが実施されなければ、その領域に再度プログラムすることができない。従って、データがプログラムされているブロックに新たなデータをプログラムする際、必ずイレースがプログラムとセットで実施される。そのため、記憶装置は、ブロックについてイレースを実施した回数(以下、ブロックイレース回数と記す)をブロック別に管理し、ブロックイレース回数の上限を超えたブロックについては、データ保持期間(具体的には、データを信頼性を持って保持できる期間)を超えたとして、そのブロックを使用不可とし予備ブロックを代替えとして割り当てる。   In general, the semiconductor memory cannot be overwritten, and if the programmed area is not erased, the area cannot be reprogrammed. Therefore, when new data is programmed in a block in which data is programmed, erasure is always performed in combination with the program. Therefore, the storage device manages the number of times that the block has been erased (hereinafter referred to as the block erase number) for each block, and the data retention period (specifically, the data retention period for the block exceeding the upper limit of the block erase number). Is exceeded, the block is made unusable and a spare block is assigned as a substitute.

特定のブロック群に対して、イレースとプログラムが集中した場合、短期間でブロックイレース回数が上限に達し使用不可となるブロックが多数生じてしまう可能性がある。そして、それらのブロックには、予備ブロックを割り当てる必要があるため、予備ブロックが早急に枯渇してしまう。つまり、特定のブロック群へのアクセス集中により、予備ブロックの枯渇が早まり、記憶装置の寿命が短縮してしまうことがある。   When erase and program are concentrated on a specific block group, there is a possibility that many blocks that cannot be used because the number of block erases reaches the upper limit in a short period of time. Since it is necessary to allocate spare blocks to these blocks, the spare blocks are quickly depleted. That is, due to concentration of access to a specific block group, the spare block may be depleted earlier and the life of the storage device may be shortened.

記憶装置は、このような特定のブロック群に対してプログラムとアクセスが集中するのを防止するため、ブロックへのプログラム処理を分散させ、ブロック毎のイレース回数を平準化する処理を実施する(以下、この処理をウェアレベリングと記す)。ウェアレベリングは、記憶装置に搭載するブロックのイレース回数の平均値に対して、より少ないイレース回数のブロックへ優先的にデータをプログラムするものである。   In order to prevent the program and access from being concentrated on such a specific group of blocks, the storage device distributes the program processing to the blocks and performs a process of leveling the number of erases for each block (hereinafter referred to as the block number). This process is referred to as wear leveling). In wear leveling, data is preferentially programmed to a block having a smaller number of erases than the average value of the number of erases of the blocks mounted on the storage device.

このため、記憶装置が搭載するブロックのブロックイレース回数の平均値がX(Xは1以上の整数)であり、記憶装置が搭載するブロックの中にブロックイレース回数がY(Yは、Y<Xを満たす整数)であるブロック(以下、対象ブロックと記す)が存在する場合、この対象ブロックが優先的に使用されることになる。このため、この対象ブロックには、プログラムとイレースが短期間に繰り返される可能性が生じる。   For this reason, the average value of the number of block erases of the blocks mounted on the storage device is X (X is an integer equal to or greater than 1), and the number of block erases in the blocks mounted on the storage device is Y (Y is Y <X If there is a block (hereinafter referred to as a target block) that is an integer satisfying this, this target block is preferentially used. Therefore, there is a possibility that the program and erase are repeated in this target block in a short time.

一般に、ブロックに対するイレースからそのブロックにデータをプログラムするまでの時間(以下、EP間隔と記す)が短い方がデータ保持期間は長い。   In general, the shorter the time from erasing a block to programming data in that block (hereinafter referred to as the EP interval), the longer the data retention period.

このため、或るブロックのブロックイレース回数が少なくても、そのブロックが優先的に繰り返し使用されることにより、そのブロックについてプログラムからイレースまでの時間(以下、PE間隔と記す)が短くなることがある。故に、そのブロックのブロックイレース回数が上限値に達していなくても、データ保持期間が経過してしまっているブロックが短時間で多数生じる可能性がある。これにより、記憶装置の寿命が短縮されてしまう可能性が高まる。   For this reason, even if the number of block erases of a certain block is small, the time from the program to the erase (hereinafter referred to as the PE interval) for that block may be shortened by preferentially repeatedly using that block. is there. Therefore, even if the number of block erases of the block does not reach the upper limit value, a large number of blocks in which the data holding period has elapsed may occur in a short time. This increases the possibility of shortening the life of the storage device.

つまり、ブロックイレース回数をカウントする、及びウェアレベリングだけでは、記憶装置の信頼性を維持することが困難となる場合がある。   That is, it may be difficult to maintain the reliability of the storage device only by counting the number of block erasures and wear leveling alone.

従って、本発明の目的は、不揮発半導体メモリを記憶媒体とした半導体記憶装置の高信頼化と長寿命化を実現することにある。   Accordingly, an object of the present invention is to realize high reliability and long life of a semiconductor memory device using a nonvolatile semiconductor memory as a storage medium.

半導体記憶装置は、ブロックにデータを最近プログラムした時刻である最近プログラム時刻と、ブロックに対してイレース処理を最近行った時刻である最近イレース時刻との少なくとも一方を表す情報を不揮発性半導体メモリの各ブロックについて含んだ管理情報を記憶している。半導体記憶装置は、(b1)ブロックの最近プログラム時刻と最近イレース時刻の少なくとも一方を基に、そのブロックにデータをプログラムするタイミングを制御する、及び/又は、(b2)ブロックの最近プログラム時刻を基に、そのブロックに対してイレース処理を行うタイミングを制御する。   The semiconductor memory device stores information representing at least one of the latest program time, which is the time when data is recently programmed in the block, and the latest erase time, which is the time when the erase process was recently performed on the block, in each nonvolatile semiconductor memory. Stores management information about the block. The semiconductor memory device controls (b1) the timing of programming data in the block based on at least one of the latest program time and the latest erase time of the block, and / or (b2) based on the latest program time of the block. In addition, the timing for performing the erase process on the block is controlled.

例えば、半導体記憶装置は、ウェアレベリングによるイレース回数の平準化を実施しながらも半導体記憶装置の通常処理であるプログラムとイレースの各処理の時間的間隔を制御し、最小時間を確保して良い。   For example, the semiconductor memory device may secure the minimum time by controlling the time interval between the program and erase processes, which are normal processes of the semiconductor memory device, while leveling the number of erases by wear leveling.

また、例えば、半導体記憶装置は、各ブロックに対し、プログラムとイレースの各処理の時間的間隔を上位装置(例えばホスト計算機)からの要求に対して可能な限り長く確保するように制御して良い。   Further, for example, the semiconductor memory device may control each block so that the time interval between each processing of the program and the erase is as long as possible in response to a request from the host device (for example, a host computer). .

また、例えば、データリテンション特性の悪いブロックを検出した際には、半導体記憶装置は、そのブロックの使用頻度を下げるように制御して良い。これにより、電子トラップおよび正孔トラップの減少が期待され、故に、リテンション特性の回復が期待される。   Further, for example, when a block with poor data retention characteristics is detected, the semiconductor memory device may be controlled to reduce the frequency of use of the block. As a result, a decrease in electron traps and hole traps is expected, and therefore recovery of retention characteristics is expected.

本発明によれば、半導体記憶装置の高信頼化と長寿命化を図ることができる。   According to the present invention, high reliability and long life of a semiconductor memory device can be achieved.

図1は、第1実施例に係るFMモジュール100を含んだ計算機システム1の構成例を示す。FIG. 1 shows a configuration example of a computer system 1 including an FM module 100 according to the first embodiment. 図2は、メモリチップ120の構成例を示す。FIG. 2 shows a configuration example of the memory chip 120. 図3は、ブロック202の内部構成例を示す。FIG. 3 shows an internal configuration example of the block 202. 図4は、ページ301に格納されるデータの例を示す。FIG. 4 shows an example of data stored in the page 301. 図5は、アドレス変換テーブル500の一例を示す。FIG. 5 shows an example of the address conversion table 500. 図6は、ブロック管理テーブル600の一例を示す。FIG. 6 shows an example of the block management table 600. 図7は、ウェアレベリング管理キュー700の一例を示す。FIG. 7 shows an example of the wear leveling management queue 700. 図8は、RAM114に記憶されるプログラムの例を示す。FIG. 8 shows an example of a program stored in the RAM 114. 図9は、イレース処理の制御の概要を示す。FIG. 9 shows an outline of the control of the erase process. 図10は、プログラム処理の制御の概要を示す。FIG. 10 shows an outline of control of program processing. 図11は、プログラム処理のフローの一例を示す。FIG. 11 shows an example of a program processing flow. 図12は、ステップS1102のフローの一例を示す。FIG. 12 shows an example of the flow of step S1102. 図13は、リード処理のフローの一例を示す。FIG. 13 shows an example of the flow of read processing. 図14は、リクラメーション処理のフローの一例を示す。FIG. 14 shows an example of the reclamation process flow. 図15は、PE間隔管理キュー1500の一例を示す。FIG. 15 shows an example of the PE interval management queue 1500. 図16は、第2実施例における、ブロックの利用サイクルを示した概要図である。FIG. 16 is a schematic diagram showing a block use cycle in the second embodiment. 図17は、無効ブロック生成処理のフローの一例を示す。FIG. 17 shows an example of the flow of invalid block generation processing. 図18は、イレース処理のフローの一例を示す。FIG. 18 shows an example of the erase process flow. 図19は、RAM114に記憶されるプログラムの例を示す。FIG. 19 shows an example of a program stored in the RAM 114. 図20は、経過日数と障害ビット閾値との関係を表すテーブルの一例を示す。FIG. 20 shows an example of a table representing the relationship between the elapsed days and the failure bit threshold. 図21は、管理画面2100の一例を示す。FIG. 21 shows an example of the management screen 2100. 図22は、第3実施例におけるイレース処理のフローの一例を示す。FIG. 22 shows an example of the flow of erase processing in the third embodiment. 図23は、第3実施例におけるリード処理のフローの一例を示す。FIG. 23 shows an example of the flow of read processing in the third embodiment.

以下、本発明の幾つかの実施例を説明する。   Several embodiments of the present invention will be described below.

なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。   In the following description, various types of information may be described using the expression “xxx table”, but the various types of information may be expressed using a data structure other than a table. In order to show that it does not depend on the data structure, the “xxx table” can be called “xxx information”.

また、以下の説明では、要素を特定するための識別情報として、番号が使用されるが、識別情報として、番号に代えて又は加えて他種の識別情報(例えば英文字)が使用されて良い。   In the following description, a number is used as identification information for specifying an element, but other types of identification information (for example, English characters) may be used as the identification information instead of or in addition to the number. .

また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェイス装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされても良い。プログラムを主語として説明された処理は、そのプロセッサを有する装置(例えば、記憶制御装置、記憶装置)が行う処理としても良い。また、プロセッサは、CPUのようなマイクロプロセッサに代えて又は加えて、処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各装置にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ、又は、コンピュータ読取可能な記憶メディアであっても良い。   In the following description, the process may be described using “program” as a subject. However, a program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed. Since processing is performed using a storage resource (for example, a memory) and / or a communication interface device (for example, a communication port), the subject of processing may be a processor. The processing described with the program as the subject may be processing performed by a device (for example, a storage control device or a storage device) having the processor. The processor may include a hardware circuit that performs part or all of the processing instead of or in addition to a microprocessor such as a CPU. The computer program may be installed in each device from a program source. The program source may be, for example, a program distribution server or a computer-readable storage medium.

また、管理計算機は、一以上の計算機で構成されて良い。例えば、管理計算機が情報を表示する場合、或いは、管理計算機が表示用情報を遠隔の計算機に送信する場合、一つの計算機が管理計算機である。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んで良い)が、管理計算機である。   The management computer may be composed of one or more computers. For example, when the management computer displays information or when the management computer transmits display information to a remote computer, one computer is the management computer. Further, for example, when a function equivalent to that of the management computer is realized by a plurality of computers, the plurality of computers (which may include a display computer when the display computer performs display) are management computers. .

また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号のみを用いることとし、同種の要素を区別して説明する場合には、参照符号(共通符号と個別符号の組合せ)を用いることがある。   Further, in the following description, in the case of explaining without distinguishing the same type of elements, only the common code among the reference codes is used, and in the case of distinguishing and explaining the same kind of elements, the reference code (common code) is used. And a combination of individual codes).

図1は、本発明の第1実施例に係る半導体記憶装置100を含んだ計算機システム1の構成例を示す。なお、半導体メモリは典型的にはFM(Flash Memory)であるため、以下、半導体記憶装置を「FMモジュール」と言う。   FIG. 1 shows a configuration example of a computer system 1 including a semiconductor memory device 100 according to the first embodiment of the present invention. Since the semiconductor memory is typically FM (Flash Memory), the semiconductor memory device is hereinafter referred to as “FM module”.

計算機システム1は、ホスト計算機10と、管理計算機11と、半導体記憶装置(以下、FM(Flash Memory)モジュールと言う)100とを有する。   The computer system 1 includes a host computer 10, a management computer 11, and a semiconductor storage device (hereinafter referred to as FM (Flash Memory) module) 100.

FMモジュール100は、内蔵する第1のFE−IF(Front End-Interface)111を介してホスト計算機10に接続され、内蔵する第2のFE−IFを介して111を介して管理計算機11に接続される。FMモジュール100とホスト計算機10間の通信のプロトコルと、FMモジュール100と管理計算機11間の通信のプロトコルは、同じであっても異なっていても良い。   The FM module 100 is connected to the host computer 10 via a built-in first FE-IF (Front End-Interface) 111 and connected to the management computer 11 via the built-in second FE-IF. Is done. The communication protocol between the FM module 100 and the host computer 10 and the communication protocol between the FM module 100 and the management computer 11 may be the same or different.

ホスト計算機10は、例えば、業務システムの中核をなすコンピュータ、ファイルサーバー、もしくは多数のFMモジュール100が接続されるストレージ装置である。   The host computer 10 is, for example, a computer, a file server, or a storage device to which a large number of FM modules 100 are connected, which is the core of a business system.

ホスト計算機10は、例えば、図示省略の、プロセッサ、メモリ、ネットワークインターフェース、及びローカル入出力用のデバイス等のハードウェア資源を備えている。また、ホスト計算機10は、デバイスドライバ、OS(Operating System)、管理プログラム、及びアプリケーションプログラム等のソフトウェア資源も備えている。   The host computer 10 includes hardware resources such as a processor, a memory, a network interface, and a local input / output device (not shown). The host computer 10 also includes software resources such as a device driver, an OS (Operating System), a management program, and an application program.

ホスト計算機10のプロセッサが各種プログラム(ソフトウェア資源)を実行することができる。例えば、ホスト計算機10のプロセッサがアプリケーションプログラムを実行することで、ホスト計算機10が、FMモジュール100との通信を行う、及びFMモジュール100に対するデータのリード/ライトコマンドを発行することができる。また、例えば、ホスト計算機10のプロセッサが管理用プログラムを実行することで、ホスト計算機10が、FMモジュール100の使用状況、及び処理状況等の管理情報を取得することができる。また、ホスト計算機10は、FMモジュール100の管理単位、制御方法の指定、及び制御方法の変更をすることができる。   The processor of the host computer 10 can execute various programs (software resources). For example, when the processor of the host computer 10 executes the application program, the host computer 10 can communicate with the FM module 100 and issue a data read / write command to the FM module 100. For example, when the processor of the host computer 10 executes the management program, the host computer 10 can acquire management information such as the usage status and processing status of the FM module 100. In addition, the host computer 10 can change the management unit, control method designation, and control method of the FM module 100.

管理計算機11は、計算機システム1全体を管理することができる。管理計算機11は、例えば、図示省略の、キーボードやマウスなどの入力装置、プロセッサ、液晶ディスプレイ装置などの表示装置、及びメモリ等の記憶資源を備えている。その記憶資源には、各種プログラムが記憶され、このプログラムがプロセッサにより実行され、各種機能が実現される。   The management computer 11 can manage the entire computer system 1. The management computer 11 includes storage devices such as an input device such as a keyboard and a mouse, a display device such as a processor and a liquid crystal display device, and a memory (not shown). Various programs are stored in the storage resource, and the programs are executed by the processor to realize various functions.

FMモジュール100は、FMコントローラ110と、複数個(例えば32個)の不揮発性半導体メモリチップ(以下、単にメモリチップと言う)120を備える。複数のメモリチップ120を基に複数のRAIDグループが構成されても良い。RAIDグループは、2以上のメモリチップ120で構成されて良い。RAIDグループを基に、論理ボリュームが構成されて良い。論理ボリュームは、ホスト計算機10に提供されても良いし、ホスト計算機10に提供されない種類の論理ボリューム(例えばプールを構成する論理ボリュームであるプールボリューム)であっても良い。プールボリュームは、2以上の領域(以下、実領域)に分割されて良い。実領域は、Thin Provisoningに従う仮想的な論理ボリュームを構成する仮想領域に割り当てられて良い。プールを構成する複数のプールボリュームのうちの少なくとも1つは、FMモジュール100に接続されている外部のストレージ装置(図示せず)の論理ボリュームがマッピングされた仮想的な論理ボリュームであっても良い。   The FM module 100 includes an FM controller 110 and a plurality of (for example, 32) nonvolatile semiconductor memory chips (hereinafter simply referred to as memory chips) 120. A plurality of RAID groups may be configured based on the plurality of memory chips 120. A RAID group may be composed of two or more memory chips 120. A logical volume may be configured based on the RAID group. The logical volume may be provided to the host computer 10 or may be a type of logical volume that is not provided to the host computer 10 (for example, a pool volume that is a logical volume constituting a pool). The pool volume may be divided into two or more areas (hereinafter, real areas). The real area may be allocated to a virtual area constituting a virtual logical volume according to Thin Provisoning. At least one of the plurality of pool volumes constituting the pool may be a virtual logical volume to which a logical volume of an external storage device (not shown) connected to the FM module 100 is mapped. .

FMコントローラ110は、本実施例では、FMモジュール100に内蔵されたコントローラであるが、FMモジュール100の外部に存在する計算機であっても良い。FMコントローラ110は、FE−IF(Front End-Interface)111と、データ転送を相互に行うスイッチ112と、記憶資源(例えば、データバッファ113と、RAM(Random Access Memory)114)と、プロセッサ115と、FM−IF(Flash Memory-Interface)116とを備えている。   In this embodiment, the FM controller 110 is a controller built in the FM module 100, but may be a computer that exists outside the FM module 100. The FM controller 110 includes an FE-IF (Front End-Interface) 111, a switch 112 that mutually transfers data, a storage resource (for example, a data buffer 113, a RAM (Random Access Memory) 114), a processor 115, FM-IF (Flash Memory-Interface) 116.

スイッチ112は、プロセッサ115、RAM114、データバッファ113、FE−IF111、及びFM−IF116を接続し、データをアドレス又はIDによってルーティングし転送する。   The switch 112 connects the processor 115, the RAM 114, the data buffer 113, the FE-IF 111, and the FM-IF 116, and routes and transfers data according to an address or ID.

FE−IF111は、スイッチ112を介してFMコントローラ110の各構成要素と、ホスト計算機10及び管理計算機11とを接続する。FE−IF111は、ホスト計算機10から、リード/ライトコマンド、及び対象の論理的な格納位置を指定するLBA(Logical Block Address)を受信する。ライトコマンドをホスト計算機10から受けたFE−IF111は、ホスト計算機10からライトデータも受信する。また、FE−IF111は、ホスト計算機10及び管理計算機11から、FMモジュール100に対する制御用のコマンド等を受領し、そのコマンドに応じてFMモジュール100を制御する。また、FE−IF111は、FMモジュール100の処理状況、利用状況、及び現在の設定値等を、ホスト計算機10及び管理計算機11に通知する。   The FE-IF 111 connects each component of the FM controller 110 to the host computer 10 and the management computer 11 via the switch 112. The FE-IF 111 receives from the host computer 10 a read / write command and an LBA (Logical Block Address) that specifies a target logical storage location. The FE-IF 111 that has received the write command from the host computer 10 also receives write data from the host computer 10. The FE-IF 111 receives a control command for the FM module 100 from the host computer 10 and the management computer 11 and controls the FM module 100 according to the command. Further, the FE-IF 111 notifies the processing status, usage status, current setting value, and the like of the FM module 100 to the host computer 10 and the management computer 11.

データバッファ113は、FMコントローラ110でのデータ転送処理途中の一時的なデータを格納する。   The data buffer 113 stores temporary data during the data transfer process in the FM controller 110.

RAM114は、具体的にはDRAM(Dynamic Random Access Memory)などの揮発性メモリである。RAM114は、FMモジュール100で用いられるメモリチップ120の管理情報1140、及び各DMA(Direct Memory Access)が用いる転送制御情報を含んだ転送リスト等を格納する。なお、RAM114は、データを格納するデータバッファ113の機能の一部又は全てを含み、データの一時的な格納先として用いることもできる。   Specifically, the RAM 114 is a volatile memory such as a DRAM (Dynamic Random Access Memory). The RAM 114 stores management information 1140 of the memory chip 120 used in the FM module 100, a transfer list including transfer control information used by each DMA (Direct Memory Access), and the like. The RAM 114 includes a part or all of the functions of the data buffer 113 for storing data, and can also be used as a temporary storage destination of data.

プロセッサ115は、スイッチ112を介してFMコントローラ110の各構成要素と接続され、RAM114に記憶されたプログラム及び管理情報を基に、FMコントローラ110の全体を制御する。また、プロセッサ115は、定期的な情報取得、及び割り込み受信機能等により、FMコントローラ110の全体を監視する。   The processor 115 is connected to each component of the FM controller 110 via the switch 112, and controls the entire FM controller 110 based on a program and management information stored in the RAM 114. In addition, the processor 115 monitors the entire FM controller 110 through periodic information acquisition, an interrupt reception function, and the like.

FM−IF116は、複数バス(例えば16本)によってメモリチップ120と接続される。各バスには複数(例えば2本)のメモリチップ120を接続される。各バスに接続された各メモリは、CE(Chip Enable)信号に基づき独立して制御される。   The FM-IF 116 is connected to the memory chip 120 by a plurality of buses (for example, 16 buses). A plurality of (for example, two) memory chips 120 are connected to each bus. Each memory connected to each bus is controlled independently based on a CE (Chip Enable) signal.

FM−IF116は、プロセッサ115から指示されるリード/ライトコマンドに応じて処理する。このときFM−IF116は、コマンドの対象を物理アドレス(以下PBA(Physical Block Address)によって指示される。   The FM-IF 116 performs processing according to a read / write command instructed from the processor 115. At this time, the FM-IF 116 indicates the command target by a physical address (hereinafter referred to as PBA (Physical Block Address)).

PBAを受領したFM−IF116は、このPBAから必要なメモリチップ120(ブロック、ページ)を算出し、メモリチップ120に対してブロック、及びページを指定して、リード/ライトコマンドを処理する。   Receiving the PBA, the FM-IF 116 calculates the necessary memory chip 120 (block, page) from the PBA, specifies the block and page for the memory chip 120, and processes the read / write command.

FM−IF116は、リード処理時には、メモリチップ120からデータをリードし、データバッファ113に転送する。また、FM−IF116は、ライト処理時には、ライトデータをデータバッファ113から呼び出し、メモリチップ120にライトする。   The FM-IF 116 reads data from the memory chip 120 and transfers it to the data buffer 113 during the read process. Further, the FM-IF 116 calls the write data from the data buffer 113 and writes it to the memory chip 120 during the write process.

また、FM−IF116は、ECC(Error Correcting Code)生成回路、ECCによるデータ損失検出回路、及びECC訂正回路を有している。FM−IF116は、ライト処理時にはデータに対してECCを付加してライトする。また、FM−IF116は、データ呼び出し時にはECCによるデータ損失検出回路によって、メモリチップ120からの呼び出しデータを検査する。データ損失が検出された際には、FM−IF116は、ECC訂正回路によってデータ訂正を行い、訂正bit数をプロセッサ115に通知する為、訂正bit数をRAM114に記憶する。   Further, the FM-IF 116 has an ECC (Error Correcting Code) generation circuit, an ECC data loss detection circuit, and an ECC correction circuit. The FM-IF 116 writes data with ECC added during write processing. Further, the FM-IF 116 checks the call data from the memory chip 120 by a data loss detection circuit using ECC at the time of data call. When data loss is detected, the FM-IF 116 performs data correction by the ECC correction circuit and stores the number of correction bits in the RAM 114 in order to notify the processor 115 of the number of correction bits.

以上説明した、FE−IF111、スイッチ112、データバッファ113、RAM114、プロセッサ115、及びFM−IF116は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)として、一つの半導体素子内で構成してもよいし、複数の個別専用IC(Integrated Circuit)を相互に接続した構成であってもよい。   The FE-IF 111, the switch 112, the data buffer 113, the RAM 114, the processor 115, and the FM-IF 116 described above are configured in one semiconductor element as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array). Alternatively, a configuration in which a plurality of individual dedicated ICs (Integrated Circuits) are connected to each other may be employed.

図2は、メモリチップ120の構成例を示す。   FIG. 2 shows a configuration example of the memory chip 120.

メモリチップ120は、複数(例えば、4096個)のブロック202で構成される。各ブロック202は、複数のページで構成される。メモリチップ120は、ブロック単位でイレース処理が行われ、ページ単位でデータのリード/プログラムが行われる。メモリチップ120は、例えば、ブロック単位でデータのイレースが可能なNAND型のフラッシュメモリである。フラッシュメモリは、NAND型でなくて良い(例えばNOR型でも良い)。   The memory chip 120 includes a plurality of (for example, 4096) blocks 202. Each block 202 is composed of a plurality of pages. The memory chip 120 is erased in units of blocks, and data read / program is performed in units of pages. The memory chip 120 is, for example, a NAND flash memory capable of erasing data in units of blocks. The flash memory may not be a NAND type (for example, a NOR type).

メモリチップ120は、レジスタ201を備える。レジスタ201は、ページサイズ(例えば4KB+付加ECC用の予備領域)以上の記憶容量を持つレジスタである。   The memory chip 120 includes a register 201. The register 201 is a register having a storage capacity equal to or larger than the page size (for example, 4 KB + additional ECC spare area).

メモリチップ120は、FM−IF116からのリード/ライトコマンドの指示に従って処理する。   The memory chip 120 performs processing in accordance with a read / write command instruction from the FM-IF 116.

ライト処理において、メモリチップ120は、まず、FM−IF116より、ライトコマンド及びライト先情報(例えば、ライトコマンドの対象ブロック、ページ番号、及びページ内のプログラム開始位置を表す情報)を受信する。   In the write process, first, the memory chip 120 receives a write command and write destination information (for example, information indicating a target block of the write command, a page number, and a program start position in the page) from the FM-IF 116.

次に、メモリチップ120は、FM−IF116より転送されるライトデータを、ページ内のプログラム開始位置(アドレス)順に、レジスタ201に格納する。その後、レジスタ201は、FM−IF116からデータ転送完了のコマンドを受領すると、レジスタ201に格納されたデータを、指定されたメモリチップ120(ページ)にライト(プログラム)する。   Next, the memory chip 120 stores the write data transferred from the FM-IF 116 in the register 201 in the program start position (address) order in the page. After that, when receiving a data transfer completion command from the FM-IF 116, the register 201 writes (programs) the data stored in the register 201 to the designated memory chip 120 (page).

リード処理において、メモリチップ120は、まず、FM−IF116からリードコマンド及びリード元情報(例えば、リードコマンドの対象のブロック、及びページ番号)を受信する。次に、メモリチップ120は、指定されたブロック202のページに格納されたデータをリードし、レジスタ201に格納する。その後、レジスタ201は、レジスタ201に格納されたデータを、FM−IF116に対して転送する。   In the read process, the memory chip 120 first receives a read command and read source information (for example, a target block and a page number of the read command) from the FM-IF 116. Next, the memory chip 120 reads the data stored in the page of the designated block 202 and stores it in the register 201. Thereafter, the register 201 transfers the data stored in the register 201 to the FM-IF 116.

図3は、ブロック202の内部構成例を示す。   FIG. 3 shows an internal configuration example of the block 202.

ブロック202は、複数(例えば128ページ)のページ301に分かれており、データの読み出し、及びデータのライトは、ページ単位でのみ処理可能である。また、ブロック202内のページ301を書き込む順序は規定されており、図では、ページ1から順番に連続的にデータが書き込まれる。   The block 202 is divided into a plurality of (for example, 128 pages) pages 301, and data reading and data writing can be processed only in units of pages. Further, the order in which the pages 301 in the block 202 are written is defined. In the figure, data is continuously written in order from the page 1.

FMモジュール100では、ホスト計算機10が指定するLBAと、FMモジュール100の内部における物理的な記憶位置を指定するアドレスPBA(Physical Block Address)とを、それぞれ別のアドレス体系によって管理すると共に、LBAとPBAとの対応関係をテーブル情報として管理する(図5参照)。   In the FM module 100, the LBA specified by the host computer 10 and the address PBA (Physical Block Address) specifying the physical storage location in the FM module 100 are managed by different address systems, and the LBA The correspondence with the PBA is managed as table information (see FIG. 5).

FMモジュール100では、また、ライト済みページへの上書きを行うことができず、そのページが属するブロックに対してイレース処理を実施しなければ、再びそのページにライトすることはできない。従って、データを更新する際には、更新前にLBAに対応付けられていたページを新たなページに変更し、その新たなページにデータをライトする。ホスト計算機10は、このように、LBAに新たなページが対応付けられたことは分からない。なお、更新前にLBAに対応付けられていたページは無効ページとなる。   Further, the FM module 100 cannot overwrite the written page, and cannot write to the page again unless the erase process is performed on the block to which the page belongs. Therefore, when updating the data, the page associated with the LBA before the update is changed to a new page, and the data is written to the new page. Thus, the host computer 10 does not know that a new page is associated with the LBA. Note that the page associated with the LBA before the update becomes an invalid page.

また、PBAはFMモジュール100の任意のページを一意に指定でき、少なくとも1ブロック分のデータサイズ範囲内はページ番号順にアドレスが連続するアドレス体系である。例えば、あるブロックの3ページ目を指定するPBAに対して1ページ分のデータサイズをインクリメントすると4ページ目を指定するPBAとなる。   The PBA can uniquely specify an arbitrary page of the FM module 100, and has an address system in which addresses are consecutive in the order of page numbers within a data size range of at least one block. For example, if the data size for one page is incremented with respect to the PBA specifying the third page of a block, the PBA specifying the fourth page is obtained.

図4は、ページ301に格納されるデータの例を示す。   FIG. 4 shows an example of data stored in the page 301.

ページ301は、一定bit数(例えば4KB)のデータを記憶する。ページ301には、データ401に加えてFM−IF116で付加されたECC(Error Correcting Code)402を格納している。ECCは、保護するデータ401(以下、保護データと言う)に対して隣接して記憶される。データ1 401と、データ1 401に付加されたECC402を1セットとして、ECC CW(ECC CodeWord)を構成するように記憶される。   The page 301 stores data of a certain number of bits (for example, 4 KB). The page 301 stores an ECC (Error Correcting Code) 402 added by the FM-IF 116 in addition to the data 401. The ECC is stored adjacent to data to be protected 401 (hereinafter referred to as protected data). Data 1 401 and ECC 402 added to data 1 401 are stored as one set to form an ECC CW (ECC CodeWord).

なお、図4には1ページにECC CWを4個格納した構成について示したが、ページサイズや、ECCの性能(訂正可能bit数)に合わせて、任意の数とすることができる。
また、上記構成においてデータ損失障害とは、1つのECC CW当たりの障害ビット数が、そのECC CWを構成するECCの訂正可能なbit数を超過した際に生じる現象である。
Although FIG. 4 shows a configuration in which four ECC CWs are stored in one page, any number can be used according to the page size and ECC performance (number of correctable bits).
In the above configuration, the data loss failure is a phenomenon that occurs when the number of failed bits per ECC CW exceeds the number of bits that can be corrected by the ECC constituting the ECC CW.

以上、FMモジュール100の構成、及びFMモジュール100のデータの記憶構成について説明した。   The configuration of the FM module 100 and the data storage configuration of the FM module 100 have been described above.

図5は、アドレス変換テーブル500の一例を示す。   FIG. 5 shows an example of the address conversion table 500.

アドレス変換テーブル500は、FMモジュール100のRAM114に記憶された管理情報1140のうちの1つである。   The address conversion table 500 is one of management information 1140 stored in the RAM 114 of the FM module 100.

アドレス変換テーブル500は、ページ(図5の例では4KB)毎に、LBA501と、PBA502とを対応付けて管理する。   The address conversion table 500 manages the LBA 501 and the PBA 502 in association with each page (4 KB in the example of FIG. 5).

LBA501は、1ページに記憶されるデータの先頭アドレスを示す。PBA502は、メモリチップ120を構成するページを一意に特定するアドレスを示す。なお、PBA502が対応付けられていない場合、LBA501には、未割当であることを示す情報が格納される。   LBA 501 indicates the head address of data stored in one page. The PBA 502 indicates an address that uniquely specifies a page constituting the memory chip 120. When the PBA 502 is not associated, the LBA 501 stores information indicating that it is not allocated.

本実施例では、FMコントローラ110は、LBA501に対応するページに新たなデータが書かれる度に、そのLBA501に、そのLBA501に対応付けられているPBA502に代えて新たなPBA502を対応付ける。FMコントローラ110は、ホスト計算機10から指定されたLBA501に新たなPBA502を対応付けて、アドレス変換テーブル500に登録する。なお、図5では、ページサイズ単位でLBA501とPBAと502とを対応付けた例を示したが、本発明はこの単位に限定されるものではない。例えば、LBA501とPBA502とを、ブロックサイズの単位で対応付けることもできる。   In this embodiment, every time new data is written on a page corresponding to the LBA 501, the FM controller 110 associates a new PBA 502 with the LBA 501 instead of the PBA 502 associated with the LBA 501. The FM controller 110 associates the new PBA 502 with the LBA 501 designated by the host computer 10 and registers it in the address translation table 500. Although FIG. 5 shows an example in which LBA 501 and PBA are associated with 502 in page size units, the present invention is not limited to this unit. For example, the LBA 501 and the PBA 502 can be associated with each other in block size units.

続いて、本実施例における特徴的な時間制御を実施する為の管理情報について説明する。   Next, management information for performing characteristic time control in the present embodiment will be described.

図6は、ブロック管理テーブル600の一例を示す。   FIG. 6 shows an example of the block management table 600.

ブロック管理テーブル600は、FMモジュール100のRAM114に記憶された管理情報のうちの1つである   The block management table 600 is one of the management information stored in the RAM 114 of the FM module 100.

ブロック管理テーブル600は、ブロック(図6の例では1MB)202毎に、PBA Group601、チップ番号602、ブロック番号603、イレース回数604、前回イレース日時605、Firstページプログラム日時606、Lastページプログラム日時607、最終プログラムページ608、及び無効ページ数609を対応付けて管理する。   The block management table 600 includes a PBA Group 601, a chip number 602, a block number 603, an erase count 604, a previous erase date and time 605, a First page program date and time 606, and a Last page program date and time 607 for each block (1 MB in the example of FIG. 6) 202. The final program page 608 and the invalid page number 609 are managed in association with each other.

PBA Group601は、ブロック202(図2参照)の先頭アドレス(先頭PBA)を示す。   PBA Group 601 indicates the head address (head PBA) of block 202 (see FIG. 2).

チップ番号602は、ブロック202を有するメモリチップ120の番号を示す。本実施例においては、図6に示すように、アドレスが早いPBA Group601から順番に、アドレスの早いチップ番号602を順番に対応付けている。   The chip number 602 indicates the number of the memory chip 120 having the block 202. In this embodiment, as shown in FIG. 6, the chip numbers 602 with earlier addresses are associated in order from the PBA Group 601 with earlier addresses.

ブロック番号603は、ブロックの番号を示す。本実施例においては、図6に示すように、アドレスが早いPBA Group601から順番に、アドレスの早いブロック番号603を順番に対応付けている。   A block number 603 indicates a block number. In this embodiment, as shown in FIG. 6, block numbers 603 with earlier addresses are associated in order from PBA Group 601 with earlier addresses.

イレース回数604は、Block番号603により特定されるブロックに実施されたイレース処理の回数を示す。ここでイレース処理とは、ブロック202に存在する全てのデータをイレースすること、及び、ブロック202にデータが存在しなくてもブロック202内のデータを再イレースすることを示す。本実施例においては、イレース処理が実施される度に、イレース回数604が1ずつインクリメントされる。   The number of erases 604 indicates the number of erase processes performed on the block specified by the block number 603. Here, the erase process indicates that all data existing in the block 202 is erased, and that data in the block 202 is re-erased even if no data exists in the block 202. In the present embodiment, the erase count 604 is incremented by 1 each time the erase process is performed.

前回イレース日時605は、ブロック番号603により特定されるブロックに対してイレース処理が最近実施された日時を示す。本実施例においては、ブロックに対してイレース処理をした時に、そのイレース処理の日時が前回イレース日時605として登録される。   The previous erase date and time 605 indicates the date and time when the erase process was recently performed on the block specified by the block number 603. In this embodiment, when the erase process is performed on the block, the date and time of the erase process is registered as the previous erase date and time 605.

Firstページプログラム日時606は、ブロック番号603により特定されるブロックの先頭ページに対してデータがプログラムされた日時を示す。ここで「プログラム」とは、レジスタ201からブロック202(ページ301)にデータが書き込まれることを示す。本実施例においては、先頭ページにデータがプログラムされる時に、そのプログラムの日時が、Firstページプログラム日時606として登録される。なお、先頭ページに対してプログラムが実施されていないブロックには「全ページイレース状態」、又は、「未書き込み」であることを示す値が、Firstページプログラム日時606に登録される。以後、ホスト計算機10からFMモジュール100にデータを書き込むことを「ライト」と言い、FMモジュール100内においてデータを書き込むことを「プログラム」と言う。   The First page program date and time 606 indicates the date and time when data was programmed for the first page of the block specified by the block number 603. Here, “program” indicates that data is written from the register 201 to the block 202 (page 301). In the present embodiment, when data is programmed in the first page, the date and time of the program is registered as the first page program date and time 606. It should be noted that a value indicating “all page erased” or “unwritten” is registered in the first page program date and time 606 for a block that has not been programmed for the first page. Hereinafter, writing data from the host computer 10 to the FM module 100 is referred to as “write”, and writing data in the FM module 100 is referred to as “program”.

Lastページプログラム日時607は、ブロック番号603により特定されるブロック202の最終ページにデータがプログラムされた日時を示す。本実施例においては、最終ページにデータがプログラムされる度に、そのプログラム時の日時がLastページプログラム日時607として登録される。なお、最終ページへのプログラムが実施されていないブロック202に関しては、ブロック内の全ページへの書き込みが未完了であることを示す値が、Lastページプログラム日時607として登録される。   The Last page program date and time 607 indicates the date and time when data was programmed on the last page of the block 202 specified by the block number 603. In this embodiment, every time data is programmed in the last page, the date and time at the time of programming is registered as the Last page program date and time 607. For the block 202 in which the program for the last page is not executed, a value indicating that writing to all pages in the block is not completed is registered as the Last page program date and time 607.

最終プログラムページ608は、ブロック番号603により特定されるブロックにおいて、現時点までにプログラムが終了したページの番号を示す。本実施例においては、この最終プログラムページ608の値を1つインクリメントすることで、次のプログラム先のページ301が特定される。なお、ブロック202内の全ページ301にデータがプログラムされている場合、最終プログラムページ608には、最終ページの番号が登録される。なお、そのブロック202には、イレース処理がされるまでデータをプログラムすることができない。   The last program page 608 indicates the number of the page where the program has been completed so far in the block specified by the block number 603. In the present embodiment, by incrementing the value of the final program page 608 by one, the next program destination page 301 is specified. When data is programmed in all pages 301 in the block 202, the last page number is registered in the last program page 608. The block 202 cannot be programmed with data until erase processing is performed.

無効ページ数609は、ブロック番号603により特定されるブロック202のうちの無効ページ(LBA501に対応づけられていないページ)の数を示す。   The number of invalid pages 609 indicates the number of invalid pages (pages not associated with the LBA 501) in the block 202 specified by the block number 603.

メモリチップ120は、上書き更新不可の為、ホスト計算機10がLBA501に対してデータ更新を行う際、LBA501に対して新たなPBA502が対応付けられる(図5参照)。そして、この新たに対応付けられたPBA502に対応するページ301に、データがプログラムされる。このため、更新前のデータをプログラムしたページ301は、LBA501との対応付けを失い、ホスト計算機10から参照されることのない無効ページとなる。本実施例では、こうした無効ページの数がブロック202毎に管理され、この無効ページの数に基づいて、後述するリクラメーションの対象とするブロック202が選定される。   Since the memory chip 120 cannot be overwritten, when the host computer 10 updates data to the LBA 501, a new PBA 502 is associated with the LBA 501 (see FIG. 5). Then, data is programmed into the page 301 corresponding to the newly associated PBA 502. For this reason, the page 301 in which the data before update is programmed becomes an invalid page that is not associated with the LBA 501 and is not referred to by the host computer 10. In this embodiment, the number of such invalid pages is managed for each block 202, and a block 202 to be a reclamation target to be described later is selected based on the number of invalid pages.

以上が、ブロック管理テーブル600についての説明である。なお、本実施例では、図6に示す全ての情報を用いる例について説明するが、ブロック管理テーブル600は、必ずしも図6に示す全種類の情報により構築されている必要はない。メモリチップ120への命令間隔制御における制御対象として「プログラムとイレースの間の時間」、「イレースとプログラムの間の時間」、「イレースと次回イレースの間の時間」、及び「プログラムと次回プログラムの間の時間」等複数が考えられるが、このうち制御対象とする時間により、図6に示す各情報欄の一部のみにより構築されるとしてもよい。例えば、制御対象を「プログラムとイレースの間の時間」とした場合、ブロック管理テーブル600は、Lastページプログラム日時607のみにより構築されるとしてもよい。また、テーブル600のサイズは大きくなるが、ページ毎に、プログラム日時を表す情報がテーブル600に登録されても良い。そして、PE間隔或いはEP間隔について、プログラム日時は、必ずしも先頭又は最終のページのプログラム日時ではなく、先頭及び最終のページ以外のプログラムの日時が、PE間隔或いはEP間隔についてのプログラム日時として採用されても良い。   This completes the description of the block management table 600. In the present embodiment, an example in which all information shown in FIG. 6 is used will be described. However, the block management table 600 does not necessarily have to be constructed with all types of information shown in FIG. As control objects in the control of the interval between instructions to the memory chip 120, “time between program and erase”, “time between erase and program”, “time between erase and next erase”, and “program and next program A plurality of times such as “interval time” are conceivable, but it may be constructed by only a part of each information column shown in FIG. 6 depending on the time to be controlled. For example, when the control target is “time between program and erase”, the block management table 600 may be constructed only by the Last page program date and time 607. Further, although the size of the table 600 increases, information indicating the program date and time may be registered in the table 600 for each page. As for the PE interval or EP interval, the program date / time is not necessarily the program date / time of the first or last page, but the program date / time other than the first or last page is adopted as the program date / time for the PE interval or EP interval. Also good.

また、ブロック管理テーブル600の各種情報(601〜609)は、必ずしも、RAM113に記録されなくてもよい。例えば、PBA Group601、チップ番号602、ブロック番号603、イレース回数604、前回イレース日時605、Firstページプログラム日時606、及びLastページプログラム日時607については、行ごとに、この行に含まれているブロック番号603により特定されるブロック202の最終ページに記録するとしてもよい。   The various information (601 to 609) of the block management table 600 is not necessarily recorded in the RAM 113. For example, for PBA Group 601, chip number 602, block number 603, erase count 604, previous erase date and time 605, First page program date and time 606, and Last page program date and time 607, the block number included in this row It may be recorded on the last page of the block 202 specified by 603.

1つのブロック202(1つのページ301)について、データがプログラムされてからイレースされるまでの時間(PE間隔)は、長い方が良い。本実施例では、FMコントローラ110は、あるブロック202にプログラムされているデータをイレースしようとするとき、このイレース処理の対象のブロック202を構成するページ301のうち、最後のページ301にデータがプログラムされた時間である「Lastページプログラム日時607」から現時点までの時間を検出し、この時間が、ある閾値(以下、PE閾値)以上である場合、イレース処理の対象のブロック202にプログラムされているデータをイレースする。このようにすると、ブロック202を構成する全ページ301のPE間隔を、PE閾値以上となるように制御することができる。それは、最後のページ301よりも前のページ301は、データがプログラムされてから現時点までの時間が、最後のページ301よりも必ず長くなるからである。つまり、ブロック202について最後のページ301のPE間隔が、そのブロック202について最短のPE間隔となり、そのブロック202について最初のページ301のPE間隔が、そのブロック202について最長のPE間隔となる。   For one block 202 (one page 301), a longer time (PE interval) from when data is programmed until it is erased is better. In this embodiment, when the FM controller 110 tries to erase data programmed in a certain block 202, the data is programmed in the last page 301 among the pages 301 constituting the block 202 to be erased. When the time from the “last page program date and time 607”, which is the recorded time, to the current time is detected and this time is greater than or equal to a certain threshold (hereinafter referred to as the PE threshold), it is programmed in the block 202 to be erased. Erase the data. In this way, it is possible to control so that the PE interval of all pages 301 constituting the block 202 is equal to or greater than the PE threshold. This is because the page 301 before the last page 301 is always longer than the last page 301 from the time the data is programmed until the current time. That is, the PE interval of the last page 301 for the block 202 is the shortest PE interval for the block 202, and the PE interval of the first page 301 for the block 202 is the longest PE interval for the block 202.

ページ301(又はセル:ページ301を構成する単位)毎に、プログラム日時を管理することが望ましいが、管理情報が膨大となってしまう。ブロック202を構成する全てのページのプログラム日時を管理するのではなく、本実施例の様に、最終ページについてプログラム日時を管理し、これに基づきPE間隔を算出することで、管理情報1140のサイズが膨大となるのを防止しつつ、ブロック202を構成する全てのページについてPE間隔をPE閾値以上に制御することができる。   Although it is desirable to manage the program date and time for each page 301 (or cell: a unit constituting the page 301), the management information becomes enormous. Instead of managing the program date and time of all the pages constituting the block 202, the program date and time is managed for the last page, and the PE interval is calculated based on this, thereby managing the size of the management information 1140. The PE interval can be controlled to be equal to or greater than the PE threshold value for all the pages constituting the block 202 while preventing the amount of data from becoming enormous.

また、ページ301は、データがイレースされてからプログラムされるまでの時間(EP間隔)は、短い方が良い。本実施例では、データをプログラムしようとしているブロック202(プログラム対象のブロック)の「前回Erase日時605」から現時点までの時間を検出し、この時間が、ある閾値(以下、EP閾値)以下である場合、プログラム対象のブロック202にデータをプログラムする。これにより、EP間隔をEP閾値以下に制御することができる。   The page 301 should have a shorter time (EP interval) from when data is erased until it is programmed. In the present embodiment, the time from the “previous erase date / time 605” to the current time of the block 202 (program target block) that is about to be programmed with data is detected, and this time is less than a certain threshold (hereinafter referred to as EP threshold). If so, data is programmed into the block 202 to be programmed. Thereby, the EP interval can be controlled to be equal to or less than the EP threshold.

なお、EP間隔(「前回Erase日時605」から現時点までの時間)がEP閾値を越えているブロック202がある場合、FMコントローラ110は、そのブロック202にデータがプログラムされていなくても、そのブロック202に対してイレース処理を実行する。これにより、「前回Erase日時605」が現在日時に更新されるので、EP間隔が初期値(例えばゼロ)にリセットされる。   When there is a block 202 in which the EP interval (the time from “previous erase date and time 605” to the current time) exceeds the EP threshold, the FM controller 110 does not block the block 202 even if data is programmed. Erase processing is executed for 202. As a result, “previous erase date and time 605” is updated to the current date and time, so the EP interval is reset to an initial value (for example, zero).

図7は、ウェアレベリング管理キュー700の一例を示す。   FIG. 7 shows an example of the wear leveling management queue 700.

ウェアレベリング管理キュー700は、RAM114に記憶された管理情報の1つである。ウェアレベリング管理キュー700は、ブロック202(PBA Group)のイレース回数を一定数毎にレベル分けにより管理する。ウェアレベリング管理キュー700は、イレース回数範囲701と、PBA Group702とを関連付けて管理する。   The wear leveling management queue 700 is one piece of management information stored in the RAM 114. The wear leveling management queue 700 manages the number of erasures of the block 202 (PBA Group) by level division every predetermined number. The wear leveling management queue 700 manages the erase count range 701 and the PBA Group 702 in association with each other.

イレース回数範囲701は、イレース回数の範囲(イレース回数の上限及び下限の少なくとも一方)を示す。図7では、FMモジュール100に搭載された全ブロック202のイレース回数の統計(例えば平均値)に基づき、5つのレベルに分けた例が示されている。つまり、イレース回数範囲は、FMモジュール100に搭載された全ブロック202のイレース回数の平均値によって異なる。イレース回数範囲は、定期的に又は不定期的に更新されて良い。   The erase count range 701 indicates the range of the erase count (at least one of the upper limit and the lower limit of the erase count). FIG. 7 shows an example in which the level is divided into five levels based on statistics (for example, an average value) of the number of times of erasure of all the blocks 202 mounted on the FM module 100. That is, the erase frequency range varies depending on the average value of the erase frequency of all the blocks 202 mounted on the FM module 100. The erase frequency range may be updated regularly or irregularly.

図7では、例えば、最もイレース回数の少ないレベル(イレース回数範囲)は、平均値より201回以上イレース回数の少ない範囲であり、以後、イレース回数:200回毎にイレース範囲が区切られている。ブロックのイレース回数を平準化するウェアレベリングでは、イレース回数の少ないブロック群から優先してブロックを利用することで(なるべく小さいレベルに属するブロックを優先的に利用することで)、イレース回数の平準化を実現する。   In FIG. 7, for example, the level with the smallest number of erases (erase number range) is a range where the number of erases is less than 201 times the average value, and thereafter, the erase range is divided every 200 times. In wear leveling that equalizes the number of erases of a block, the block is preferentially used from a block group with a small number of erases (by preferentially using blocks belonging to the smallest possible level), thereby equalizing the number of erases. Is realized.

PBA Group702は、イレース回数範囲701に属するブロック202の先頭アドレスを示す。   PBA Group 702 indicates the head address of the block 202 belonging to the erase count range 701.

PBA Group702は、FIFO(first In First Out)型のキューとして登録されており、キューの最後尾(図7の例では右端)に新たにPBA Group702が登録される。そして、ブロック利用時には、時系列的に最も前に登録されたブロックが使用され、先に登録された全ブロックが利用されるまで、キューの最後尾に登録されたブロックは選択されない。   The PBA Group 702 is registered as a FIFO (first in first out) type queue, and a new PBA Group 702 is registered at the end of the queue (right end in the example of FIG. 7). When using a block, the block registered at the earliest in time series is used, and the block registered at the end of the queue is not selected until all previously registered blocks are used.

なお、本実施例では、図7に示すイレース回数を200回毎に5段階にレベル分けする例について示したが、本発明はこのレベル分けに限定されるものではない。例えば、要求されるイレース回数の平準化の精度により、如何なる範囲でも分類することもできる。また、イレース回数範囲は必ずしも均等でなくて良い。例えば、或るイレース回数範囲は200回であるが、別のイレース回数範囲は150回でも良い。   In the present embodiment, the example in which the number of erases shown in FIG. 7 is divided into five levels every 200 times is shown, but the present invention is not limited to this level division. For example, any range can be classified according to the leveling accuracy of the required number of erases. Further, the erase frequency range is not necessarily uniform. For example, although a certain erase frequency range is 200 times, another erase frequency range may be 150 times.

以上が、本実施例で用いられる管理情報についての説明である。   The above is the description of the management information used in this embodiment.

図8は、RAM114に記憶されるプログラムの例を示す。   FIG. 8 shows an example of a program stored in the RAM 114.

RAM114には、I/O(Input/Output)プログラム1141、リクラメーションプログラム1142、及びイレースプログラム1143が記憶される。これらプログラムは、プロセッサ115により実行されることにより、各種機能が実現される。これら、プログラムの詳しい説明は、フローチャートを用いて後述する。   The RAM 114 stores an input / output (I / O) program 1141, a reclamation program 1142, and an erase program 1143. These programs are executed by the processor 115 to realize various functions. Detailed descriptions of these programs will be described later using flowcharts.

図9は、イレース処理の制御の概要を示す。   FIG. 9 shows an outline of the control of the erase process.

FMコントローラ110は、FMモジュール100が搭載する各メモリチップ120を構成するブロック202の「無効ページ数609」をチェックし、無効ページ数609が基準値より多いブロックを検出する(ステップS1)。基準値は、所定の閾値でも良いし、或いは、全ブロック202の無効ページ数の平均値であっても良い。つまり、S1では、無効ページ数が絶対的及び/又は相対的に多いブロックが検出される。ここでは、ブロック202Aが検出されたとする。   The FM controller 110 checks the “invalid page count 609” of the block 202 constituting each memory chip 120 mounted on the FM module 100, and detects a block in which the invalid page count 609 is greater than the reference value (step S1). The reference value may be a predetermined threshold value, or may be an average value of the number of invalid pages of all blocks 202. That is, in S1, a block having an absolute and / or relatively large number of invalid pages is detected. Here, it is assumed that the block 202A is detected.

次に、FMコントローラ110は、検出したブロック202Aの「Lastページプログラム日時607」から現時点までの時間を算出し、その算出した時間(経過時間)がPE閾値以上であるかをチェックする(S2)。図示の例によれば、PE閾値は3h(h:時間)である。ブロック202Aは、「Lastページプログラム日時607」が「2010/4.14/9:00」である。現在時刻が「2010/4.14/13:00」であることから、現在までの時間は4hである。この場合、FMコントローラ110は、ブロック202Aは、最後にプログラムされてからの時間がPE閾値以上となっていると判断する。   Next, the FM controller 110 calculates the time from the “Last page program date and time 607” of the detected block 202A to the current time, and checks whether the calculated time (elapsed time) is equal to or greater than the PE threshold (S2). . According to the illustrated example, the PE threshold is 3h (h: time). In the block 202A, “Last page program date 607” is “2010 / 4.14 / 9: 00”. Since the current time is “2010 / 4.14 / 13: 00”, the time to the present is 4h. In this case, the FM controller 110 determines that the time since the block 202A was last programmed is equal to or greater than the PE threshold.

従って、FMコントローラ110は、ブロック202Aに対してイレース処理を実行する(S3)。   Therefore, the FM controller 110 performs an erase process on the block 202A (S3).

一方、FMコントローラ110は、ブロック202Bを検出しても(S5)、ブロック202Bについてはイレース処理を行わない。すなわち、ブロック202Bの「Lastページプログラム日時607」は「2010/4.14/11:00」であり、現在時刻が「2010/4.14/13:00」であることから、現在までの時間は2hである。その時間(2h)は、PE閾値(3h)以上ではない。このため、FMコントローラ110は、ブロック202Bに対してイレース処理を実施しない(S6)。FMコントローラ110は、ブロック202Bに関しては、「Lastページプログラム日時607」から現在までの時間がPE閾値以上となった場合、ブロック202Bに対してイレース処理を実行する。   On the other hand, even if the FM controller 110 detects the block 202B (S5), the erase process is not performed on the block 202B. That is, since the “Last page program date and time 607” of the block 202B is “2010 / 4.14 / 11: 00” and the current time is “2010 / 4.14 / 13: 00”, the time until the present time Is 2h. The time (2h) is not longer than the PE threshold (3h). For this reason, the FM controller 110 does not perform erase processing on the block 202B (S6). When the time from “Last page program date and time 607” to the present time becomes equal to or greater than the PE threshold for the block 202B, the FM controller 110 executes an erase process on the block 202B.

このように、Lastページプログラム日時607から現在日時までの時間がPE閾値以上ではないブロックに対して、イレース処理が行われない。このため、ブロックのPE間隔がPE閾値になるよう保証される。   As described above, the erase process is not performed on the blocks whose time from the last page program date and time 607 to the current date and time is not equal to or greater than the PE threshold value. For this reason, it is guaranteed that the PE interval of the block becomes the PE threshold value.

図10は、プログラム処理の制御の概要を示す。   FIG. 10 shows an outline of control of program processing.

FMコントローラ110は、イレース処理後にデータが書き込まれていないブロック(以下、イレース済みブロック)202Cを検出する(S11)。FMコントローラ110は、そのブロック202Cの「前回イレース日時605」から現時点までの時間を算出し、算出した時間が、EP閾値以下か否かをチェックする(S12)。   The FM controller 110 detects a block (hereinafter, erased block) 202C in which no data is written after the erase process (S11). The FM controller 110 calculates the time from the “previous erase date and time 605” of the block 202C to the current time, and checks whether or not the calculated time is equal to or less than the EP threshold (S12).

図示の例では、EP閾値が5hである。ブロック202Cの「前回イレース日時605」が「2010/4.15/9:00」である。現在時刻が「2010/4.15/13:00」であることから、現在までの時間(経過時間)は4hである。この場合、FMコントローラ110は、ブロック202Cの「前回イレース日時605」からの時間がEP閾値以下であると判断する。この場合、FMコントローラ110は、ブロック202Cの先頭ページにデータをプログラムする(S13)。   In the illustrated example, the EP threshold is 5h. The “previous erase date and time 605” of the block 202C is “2010 / 4.15 / 9: 00”. Since the current time is “2010 / 4.15 / 13: 00”, the time (elapsed time) up to the present time is 4h. In this case, the FM controller 110 determines that the time from the “previous erase date and time 605” of the block 202C is equal to or less than the EP threshold value. In this case, the FM controller 110 programs data on the first page of the block 202C (S13).

一方、FMコントローラ110は、イレース済みブロック202Dを検出しても(S14)、ブロック202Dの先頭ページにデータをプログラムせず、ブロック202Dに対してイレース処理を行う。具体的には、ブロック202Dの「前回イレース日時605」は「2010/4.15/5:00」である。現在時刻が「2010/4.15/13:00」であることから、現在までの時間は8hである。この場合、FMコントローラ110は、ブロック202Dの「前回イレース日時605」からの時間(8h)がEP閾値を超えていると判断する(S15)。この場合、FMコントローラ110は、ブロック202Dの先頭ページにデータをプログラムせず、ブロック202Dに対してイレース処理を行う(S16)。   On the other hand, even if the FM controller 110 detects the erased block 202D (S14), the FM controller 110 performs the erase process on the block 202D without programming the data in the first page of the block 202D. Specifically, the “last erase date and time 605” of the block 202D is “2010 / 4.15 / 5: 00”. Since the current time is “2010 / 4.15 / 13: 00”, the time to the present is 8h. In this case, the FM controller 110 determines that the time (8h) from the “previous erase date and time 605” of the block 202D exceeds the EP threshold (S15). In this case, the FM controller 110 does not program data on the first page of the block 202D, and performs an erase process on the block 202D (S16).

このように、「前回イレース日時605」からの時間がEP閾値を超えているイレース済みブロックの先頭ページにデータが書き込まれない。このため、EP間隔がEP閾値を超えているブロックが生じてしまうことを回避することができる。   As described above, data is not written to the first page of the erased block whose time from the “previous erase date and time 605” exceeds the EP threshold. For this reason, it is possible to avoid a block in which the EP interval exceeds the EP threshold.

以下、本実施例で行われる処理の詳細を説明する。   Details of the processing performed in this embodiment will be described below.

図11は、プログラム処理のフローの一例を示す。プロセッサ115は、例えば、I/Oプログラム1141を実行することにより、図11を参照して説明する処理を行うことができる。   FIG. 11 shows an example of a program processing flow. For example, the processor 115 can execute the processing described with reference to FIG. 11 by executing the I / O program 1141.

FMモジュール100は、ホスト計算機10よりライト対象のデータ、及びライト対象領域を指定するLBAを含んだライトコマンドを受信する(S1101)。より具体的には、FE−IF111を介して、ライトコマンドが、ホスト計算機10からプロセッサ115に通知される。次に、プロセッサ115は、FE−IF111にライト対象のデータを、データバッファ113に書き込むよう指示する。FE−IF111は、ホスト計算機10からのライト対象のデータをデータバッファ113にプログラムする。   The FM module 100 receives a write command including data to be written and an LBA for designating a write target area from the host computer 10 (S1101). More specifically, a write command is notified from the host computer 10 to the processor 115 via the FE-IF 111. Next, the processor 115 instructs the FE-IF 111 to write data to be written to the data buffer 113. The FE-IF 111 programs data to be written from the host computer 10 in the data buffer 113.

次に、プロセッサ115は、S1101にて受信したLBAに対応付けるPBAを取得する(S1102)。この処理は、本実施例の特徴的な処理であるため、詳細については後述する。   Next, the processor 115 acquires the PBA associated with the LBA received in S1101 (S1102). Since this process is a characteristic process of this embodiment, the details will be described later.

プロセッサ115が、FM−IF116にECC(Error Correcting Code)の生成を指示する(S1103)。次に、FM−IF116は、ライト対象のデータを、データバッファ113よりECCの保護データ長単位で読み出し、FM−IF116の内部のECC生成回路により、保護データ長毎にECCを算出し、データバッファ113にプログラムする。   The processor 115 instructs the FM-IF 116 to generate an ECC (Error Correcting Code) (S1103). Next, the FM-IF 116 reads the data to be written from the data buffer 113 in units of ECC protection data length, and the ECC generation circuit in the FM-IF 116 calculates the ECC for each protection data length, and the data buffer Program 113.

プロセッサ115は、ステップS1103にて生成したECCとS1101にて受領したライト対象のデータを、データバッファ113からメモリチップ120に転送し、プログラムを実施する(S1104)。具体的には、プロセッサ115は、FM−IF116にライト対象のデータ、及びそれに対して生成したECCを、メモリチップ120に転送し、FM−IF116にプログラムを実施するように指示する。次に、指示を受けたFM−IF116は、データバッファ113よりライト対象のデータとECCを読み出し、メモリチップ120に転送し、メモリチップ120にプログラムを指示する。メモリチップ120は、その指示に従い、データをプログラムする。データのプログラム先は、S1102で特定されたPBAに対応するページである。   The processor 115 transfers the ECC generated in step S1103 and the write target data received in S1101 from the data buffer 113 to the memory chip 120, and executes the program (S1104). Specifically, the processor 115 transfers the data to be written to the FM-IF 116 and the ECC generated for it to the memory chip 120 and instructs the FM-IF 116 to execute the program. Next, the FM-IF 116 that has received the instruction reads the data to be written and the ECC from the data buffer 113, transfers them to the memory chip 120, and instructs the memory chip 120 to program. The memory chip 120 programs data according to the instruction. The data program destination is a page corresponding to the PBA specified in S1102.

S1101にて受領したLBAと、S1102にて取得したPBAの対応付けの為、プロセッサ115は、アドレス変換テーブル(図5参照)を更新する(S1105)。この処理により、ホスト計算機10からのLBAに対して対応付けられたPBAの取得が可能となる。具体的には、プロセッサ115が、アドレス変換テーブル500から、ライトコマンドで指定されているLBAに適合するLBA501を探索し、見つかったLBA501に対応するPBA502として、S1102にて取得したPBAを登録する。   In order to associate the LBA received in S1101 with the PBA acquired in S1102, the processor 115 updates the address conversion table (see FIG. 5) (S1105). With this process, it is possible to obtain a PBA associated with the LBA from the host computer 10. Specifically, the processor 115 searches the address conversion table 500 for an LBA 501 that matches the LBA specified by the write command, and registers the PBA acquired in S1102 as the PBA 502 corresponding to the found LBA 501.

プロセッサ115は、ブロック管理テーブル600を更新する(S1106)。具体的には、下記が行われる。
(S1106−1)プロセッサ115が、S1102にて取得したPBAに適合するPBA Groupを、ブロック管理テーブル600から探す。
(S1106−2)次に、プロセッサ115は、S1102にて取得したPBAのブロック(図11の説明において対象ブロック)における、S1104にてプログラム先となったページ、のページ番号301を取得する。プロセッサ115は、そのページ番号301を、最終プログラムページ608として登録する。
(S1106−3)なお、プロセッサ115は、このページ番号301が対象ブロック202の先頭ページであるとき、ブロック管理テーブル600の該当するFirstページプログラム日時606として、現在日時を表す情報を登録する。或いは、プロセッサ115は、ページ番号301が対象ブロック202の最終ページであるとき、Lastページプログラム日時607として現在日時を表す情報を登録する。
The processor 115 updates the block management table 600 (S1106). Specifically, the following is performed.
(S1106-1) The processor 115 searches the block management table 600 for a PBA Group that matches the PBA acquired in S1102.
(S1106-2) Next, the processor 115 acquires the page number 301 of the page that is the program destination in S1104 in the PBA block acquired in S1102 (the target block in the description of FIG. 11). The processor 115 registers the page number 301 as the final program page 608.
(S1106-3) When the page number 301 is the first page of the target block 202, the processor 115 registers information indicating the current date and time as the corresponding first page program date and time 606 of the block management table 600. Alternatively, when the page number 301 is the last page of the target block 202, the processor 115 registers information indicating the current date and time as the Last page program date and time 607.

以上が、プログラム処理の概要である。   The above is the outline of the program processing.

次に、本実施例の1つの特徴であるステップS1102について、図12を用いて説明する。   Next, step S1102 which is one feature of the present embodiment will be described with reference to FIG.

イレース処理が実施されてから長い時間が経過、又はページにデータをプログラムしてから長い時間が経過してしまうと、ページ301において初期閾値電圧が変動してしまい、プログラム時にフローティングゲートに対して適切な量の電荷を加えることが困難となり、格納データの信頼性が低下してしまうおそれがある。   If a long time elapses after the erase process is performed, or if a long time elapses after data is programmed in the page, the initial threshold voltage fluctuates in the page 301 and is appropriate for the floating gate during programming. It becomes difficult to apply a large amount of charge, and the reliability of stored data may be reduced.

こうしたメモリチップ120の特性に対して、本実施例では、前回イレース日時からの経過時間、及び先頭ページをプログラムしてからの経過時間を一定時間以内とする制御を行う。   In this embodiment, for the characteristics of the memory chip 120, control is performed so that the elapsed time from the previous erase date and time and the elapsed time after programming the first page are within a certain time.

図12は、ステップS1102のフローの一例を示す。   FIG. 12 shows an example of the flow of step S1102.

プロセッサ115が、途中プログラムブロック群から候補ブロックを選択する(S1201)。   The processor 115 selects a candidate block from the midway program block group (S1201).

具体的には、プロセッサ115が、ブロック管理テーブル600を参照し、最終プログラムページ608が最終ページを示していない複数のブロック202から任意に1つのブロックを選択する。ここで、最終プログラムページ608が最終ページを示していないブロック202が、図12の説明で言う「途中プログラムブロック」であり、任意に選択された1つのブロックが、図12の説明で言う「候補ブロック」である。   Specifically, the processor 115 refers to the block management table 600 and arbitrarily selects one block from the plurality of blocks 202 whose final program page 608 does not indicate the final page. Here, the block 202 in which the final program page 608 does not indicate the final page is the “intermediate program block” in the description of FIG. 12, and one arbitrarily selected block is the “candidate” in the description of FIG. "Block".

なお、S1201において、プロセッサ115は、イレース回数604が基準値(所定の閾値、又は、複数のブロックのイレース回数に基づいて得られた値)以上のブロックを、候補ブロックになり得る途中書きブロックとして良い。これにより、イレース回数604が少ないブロック202に対して優先的にプログラムできるので、イレースからの時間経過により生じるデータ保持信頼性の低下を軽減できる。   In step S1201, the processor 115 sets a block whose erase count 604 is equal to or greater than a reference value (a predetermined threshold or a value obtained based on the erase count of a plurality of blocks) as an intermediate writing block that can be a candidate block. good. Thus, since the block 202 with a small number of erases 604 can be preferentially programmed, it is possible to reduce the decrease in data retention reliability caused by the passage of time from the erase.

プロセッサ115は、候補ブロックを選択できるか否かを判断する(S1202)。候補ブロックが取得できる場合(S1202:Yes)、プロセッサ115は、選択した候補ブロックのFirstページプログラム日時606を特定する(S1203)。   The processor 115 determines whether a candidate block can be selected (S1202). If the candidate block can be acquired (S1202: Yes), the processor 115 identifies the First page program date and time 606 of the selected candidate block (S1203).

プロセッサ115は、Firstページプログラム日時606から現在までの経過時間を算出する(S1204)。   The processor 115 calculates the elapsed time from the first page program date 606 to the present time (S1204).

プロセッサ115は、S1204で算出した経過時間が、予め設定された閾値(以下、PP閾値)以下かどうかを判断する(S1205)。経過時間がPP閾値以下である場合(S1205:Yes)、プロセッサ115は、候補ブロックの最終プログラムページの次のページのPBAを特定する(S1206)。S1204で算出された時間経過がPP閾値以下である場合、信頼性は保たれているからである。   The processor 115 determines whether or not the elapsed time calculated in S1204 is equal to or less than a preset threshold (hereinafter referred to as PP threshold) (S1205). When the elapsed time is equal to or less than the PP threshold (S1205: Yes), the processor 115 specifies the PBA of the next page of the last program page of the candidate block (S1206). This is because the reliability is maintained when the elapsed time calculated in S1204 is equal to or less than the PP threshold.

S1204で算出された経過時間がPP閾値を超えている場合(S1205:No)、プロセッサ115は、S1201で選択したブロックを途中プログラムブロック群から外す(S1207)。S1204で算出された経過時間がPP閾値を超えている場合、信頼性低下が許容範囲外であるおそれがあるからである。S1207では、具体的には、例えば、プロセッサ115は、S1201で選択したブロックについて、最終プログラムページ608として、最終ページの値を登録し、Lastページプログラム日時607として、現在日時を表す情報を登録して良い。   When the elapsed time calculated in S1204 exceeds the PP threshold (S1205: No), the processor 115 removes the block selected in S1201 from the midway program block group (S1207). This is because if the elapsed time calculated in S1204 exceeds the PP threshold, the reliability degradation may be outside the allowable range. In S1207, specifically, for example, the processor 115 registers the value of the last page as the last program page 608 and the information indicating the current date and time as the Last page program date and time 607 for the block selected in S1201. Good.

一方、候補ブロックを選択できない場合(典型的には、途中プログラムブロックが無い場合)(S1202:No)、プロセッサ115は、ウェアリング管理キュー700を参照して、イレース回数が基準値未満であるブロックを選択する(S1208)。メモリチップ120は、前述の通り、EP時間が長いと信頼性が低下する特性を有する。この為、プログラムの直前にイレースを実施する制御方法が高信頼化に有効である。しかし、本実施例では、メモリチップ120のイレースにかかる時間はプログラムやリードの時間と比べて長いという特性に基づき、FMモジュール100の性能向上を目的として、イレース処理が施されたブロックが予め用意される。本実施例では、複数のイレース済みブロックが、ウェアレベリング管理キュー700に、イレース回数に応じてレベル分けをして登録される。S1208では、例えば、イレース回数範囲のレベルがなるべく小さいブロックが選択される。   On the other hand, when a candidate block cannot be selected (typically, when there is no program block in the middle) (S1202: No), the processor 115 refers to the wearing management queue 700 and has a block whose erase count is less than the reference value. Is selected (S1208). As described above, the memory chip 120 has a characteristic that reliability decreases when the EP time is long. For this reason, a control method of performing erase immediately before the program is effective for high reliability. However, in this embodiment, a block subjected to an erase process is prepared in advance for the purpose of improving the performance of the FM module 100 based on the characteristic that the time required for erasing the memory chip 120 is longer than the time for programming and reading. Is done. In this embodiment, a plurality of erased blocks are registered in the wear leveling management queue 700 by leveling according to the number of erases. In S1208, for example, a block with the smallest possible level in the erase count range is selected.

プロセッサ115は、S1208で選択したブロックの「前回イレース日時605」を特定する(S1209)。   The processor 115 identifies the “previous erase date and time 605” of the block selected in S1208 (S1209).

プロセッサ115は、S1209で特定した前回イレース日時605から現時点までの経過時間を算出する(S1210)。   The processor 115 calculates the elapsed time from the previous erase date and time 605 identified in S1209 to the current time (S1210).

プロセッサ115は、S1210で算出した経過時間がEP閾値以下かどうかをチェックする(S1211)。S1210で算出した経過時間がEP閾値以下である場合(S1212:Yes)、プロセッサ115は、S1208で取得したブロックのFirstページのPBAを特定する(S1213)。   The processor 115 checks whether or not the elapsed time calculated in S1210 is equal to or less than the EP threshold (S1211). When the elapsed time calculated in S1210 is equal to or less than the EP threshold (S1212: Yes), the processor 115 identifies the PBA of the First page of the block acquired in S1208 (S1213).

プロセッサ115は、S1210で算出した経過時間がEP閾値以下でない場合(S1212:No)、S1208で選択したブロックに対して、イレース処理を実行する(S1212)。この処理により、前回イレース日時605から現時点までの経過時間が初期値(例えばゼロ)にリセットされることになる。プロセッサ115は、S1212でイレース処理が実行されたブロックのFirstページのPBAを特定する(S1213)。   If the elapsed time calculated in S1210 is not less than or equal to the EP threshold (S1212: No), the processor 115 executes an erase process on the block selected in S1208 (S1212). By this process, the elapsed time from the previous erase date and time 605 to the present time is reset to an initial value (for example, zero). The processor 115 identifies the PBA of the First page of the block for which the erase process has been executed in S1212 (S1213).

S1211及びS1212によれば、S1213で特定されたPBAに対応するページを有するブロックは、前回イレース日時605から現時点までの経過時間がEP閾値以下であるブロックであることが保証される。   According to S <b> 1211 and S <b> 1212, it is guaranteed that the block having the page corresponding to the PBA specified in S <b> 1213 is a block whose elapsed time from the previous erase date / time 605 to the current time is equal to or less than the EP threshold.

S1206又はS1213で特定されたPBAに対応するページに、図11のS1104でデータがプログラムされる。   Data is programmed in S1104 of FIG. 11 to the page corresponding to the PBA specified in S1206 or S1213.

次に、リード処理について説明する。   Next, the read process will be described.

図13は、リード処理のフローの一例を示す。   FIG. 13 shows an example of the flow of read processing.

FMコントローラ110は、ホスト計算機10から、リード対象となるLBA(図13の説明で対象LBA)を指定したリードコマンドを受信する(S1301)。   The FM controller 110 receives from the host computer 10 a read command designating an LBA to be read (target LBA in the description of FIG. 13) (S1301).

プロセッサ115は、アドレス変換テーブル500を参照し、対象LBAに割り当てられたPBAを特定する(S1302)。   The processor 115 refers to the address conversion table 500 and identifies the PBA assigned to the target LBA (S1302).

プロセッサ115は、S1302にて特定したPBAに対応するページからデータをリードする(S1303)。具体的には、プロセッサ115が、FM−IF116に対して、リード命令を発行する。命令を受けたFM−IF116は、PBAが示すページを有するメモリチップ120に対して、ブロック202とページ301を指定してデータをリードする。   The processor 115 reads data from the page corresponding to the PBA specified in S1302 (S1303). Specifically, the processor 115 issues a read command to the FM-IF 116. Upon receiving the instruction, the FM-IF 116 reads data by designating the block 202 and the page 301 to the memory chip 120 having the page indicated by the PBA.

FM−IF116は、S1303でリードしたデータに付随するECC用いて、リードしたデータの整合性を検査する。この検査にて誤りが検出されれば、FM−IF116は、ECCを用いてリードしたデータを修正する(S1304)。   The FM-IF 116 checks the consistency of the read data using the ECC attached to the data read in S1303. If an error is detected in this check, the FM-IF 116 corrects the read data using the ECC (S1304).

FM−IF116は、リードしたデータをホスト計算機10に転送する。S1304にてデータを修正したのであれば、修正したデータをホスト計算機10に転送する(S1305)。   The FM-IF 116 transfers the read data to the host computer 10. If the data has been corrected in S1304, the corrected data is transferred to the host computer 10 (S1305).

以上が、本実施例におけるリード処理の説明である。   The above is the description of the read processing in this embodiment.

次に、本実施例におけるリクラメーション処理を説明する。リクラメーション処理は、ホスト計算機10からの要求の他にライト処理によっても副次的に生じる。   Next, the reclamation process in the present embodiment will be described. The reclamation process occurs secondary by a write process in addition to a request from the host computer 10.

まず、リクラメーション処理の開始契機を説明する。   First, the trigger for starting the reclamation process will be described.

前述の通り、メモリチップ120は、一旦、ページにデータをプログラムすると上書きできないという特性をもつ。この為、同一のLBAに対してライトが実施された際、最終プログラムページの次のページにデータがプログラムされ、アドレス変換テーブル500には、そのLBAに対応するPBAとして、更新前データがプログラムされているページのPBAから、新たにデータがプログラムされたページのPBAが登録される。   As described above, the memory chip 120 has a characteristic that once data is programmed in a page, it cannot be overwritten. For this reason, when a write is performed on the same LBA, data is programmed in the page following the last program page, and the pre-update data is programmed in the address conversion table 500 as the PBA corresponding to the LBA. The PBA of the page in which data is newly programmed is registered from the PBA of the current page.

この制御により、ホスト計算機10に、PBAが変更されたことを意識させることなくデータの更新が実施される。   By this control, the host computer 10 updates the data without making the host computer 10 aware that the PBA has been changed.

上述の更新ライトが実施されると、更新ライトの度に新たなページを使用する為、FMモジュール100内のプログラムが可能なページが減る。この為、本実施例のFMモジュール100は、FMモジュール100内のプログラムが可能なページが一定量以下となった場合に、リクラメーション処理を実施する。   When the update write described above is performed, a new page is used each time the update write is performed, and therefore the number of pages that can be programmed in the FM module 100 is reduced. For this reason, the FM module 100 according to the present embodiment performs a reclamation process when the number of pages that can be programmed in the FM module 100 becomes a predetermined amount or less.

リクラメーション処理は、例えば、プロセッサ115がリクラメーションプログラム1142を実行することによって実施される。具体的には、リクラメーション処理では、下記が実行される。
(x1)プロセッサ115は、基準値以上の無効ページを有するブロックを探す。ここで言う「基準値」は、所定の閾値であっても良いし、複数のブロックの無効ページ数に基づく値(例えば平均値)であっても良い。つまり、ここでは、無効ページ数が絶対的又は相対的に多いブロックが探される。「無効ページ」とは、アドレス変換テーブル500にてLBAが対応付けられていないページであって、データがプログラム済みのページである。
(x2)次に、プロセッサは、(x1)で見つかったブロックに含まれる有効ページ(アドレス変換テーブル500にてLBAに対応付けられているページ)内のデータを他ブロックのページにコピーし、アドレス変換テーブル500のLBAとの対応付けをコピー先のページに更新する。この処理により、(x1)で見つかったブロック内の全ページが無効ページとされる。つまり、そのブロックが無効ブロックとされる。無効ブロックは、全てのページが無効ページであるブロックである(言い換えれば、LBAに割り当てられたPBAから特定される有効ページを含まないブロックである)。無効ブロックが、イレース処理されて良いブロックである。
The reclamation process is implemented, for example, by the processor 115 executing the reclamation program 1142. Specifically, in the reclamation process, the following is executed.
(X1) The processor 115 searches for a block having an invalid page equal to or greater than the reference value. The “reference value” referred to here may be a predetermined threshold value or a value (for example, an average value) based on the number of invalid pages in a plurality of blocks. That is, here, a block having an absolute or relatively large number of invalid pages is searched. An “invalid page” is a page that is not associated with an LBA in the address conversion table 500 and that has been programmed with data.
(X2) Next, the processor copies the data in the valid page (the page associated with the LBA in the address translation table 500) included in the block found in (x1) to the page of another block, and addresses The association with the LBA in the conversion table 500 is updated to the copy destination page. By this processing, all pages in the block found at (x1) are set as invalid pages. That is, the block is an invalid block. An invalid block is a block in which all pages are invalid pages (in other words, a block that does not include a valid page specified from the PBA assigned to the LBA). An invalid block is a block that may be erased.

本実施例のリクラメーション処理では、複数の無効ブロック(イレース対象候補であるブロック)が管理され、無効ブロックに対するイレース処理は、イレース済みブロックの数が閾値以下となった場合に実施されて良い。なお、その閾値は、FMモジュール100のライト性能に合わせて決定されて良い。   In the reclamation process according to the present embodiment, a plurality of invalid blocks (blocks that are candidates for erasure) are managed, and the erase process for invalid blocks may be performed when the number of erased blocks is equal to or less than a threshold value. The threshold value may be determined according to the write performance of the FM module 100.

一方で、メモリチップ120の特性によれば、PE間隔(プログラムからイレースまでの経過時間)が短いと、セルの酸化絶縁膜に生成される電子及び正孔トラップの個数が、PE間隔が長い場合と比べて多数生じる。この為、PE間隔が短いブロックの信頼性は低いおそれがある。   On the other hand, according to the characteristics of the memory chip 120, when the PE interval (elapsed time from program to erase) is short, the number of electrons and hole traps generated in the oxide insulating film of the cell is long. Many occur in comparison with For this reason, the reliability of a block having a short PE interval may be low.

上記特性に対し、本実施例では、リクラメーション契機にて生じるイレース処理において、PE間隔がPE閾値以下のブロックについてはイレース処理が実施されない。例外として、イレース済みブロックの数が枯渇していれば、イレース済みブロックを確保するために、Lastページプログラム日時607からの経過時間がPE閾値以下のブロックに対してイレース処理が施されて良い。その際、イレース処理が施されるブロックは、Lastページプログラム日時607からの経過時間がPE閾値以下の複数のブロックのうち、Lastページプログラム日時607からの経過時間が最も長いブロックで良い。なお、イレース処理は、例えば、イレースプログラム1143をプロセッサ115が行うことにより行われて良い。   In contrast to the above characteristics, in the present embodiment, in the erase process that occurs at the reclamation opportunity, the erase process is not performed for blocks whose PE interval is equal to or less than the PE threshold. As an exception, if the number of erased blocks is depleted, erase processing may be performed on blocks whose elapsed time from the Last page program date and time 607 is equal to or less than the PE threshold value in order to secure erased blocks. At this time, the block to be erased may be the block having the longest elapsed time from the last page program date and time 607 among a plurality of blocks whose elapsed time from the last page program date and time 607 is equal to or less than the PE threshold. Note that the erase process may be performed by the processor 115 executing the erase program 1143, for example.

図14は、リクラメーション処理のフローの一例を示す。   FIG. 14 shows an example of the reclamation process flow.

リクラメーション処理は、所定のイベントが検出されたとき、例えば、FMモジュール100内のイレース済みブロックの数が所定の閾値以下となったことが検出されたときに、開始される。   The reclamation process is started when a predetermined event is detected, for example, when it is detected that the number of erased blocks in the FM module 100 is equal to or less than a predetermined threshold.

プロセッサ115は、ブロック管理テーブル600より、無効ページ数609が絶対的又は相対的に多いブロックを特定する(S1401)。S1401で選択されるブロックは、最終ページにデータがプログラム済みのブロックでよい。   The processor 115 identifies blocks having an absolute or relatively large number of invalid pages 609 from the block management table 600 (S1401). The block selected in S1401 may be a block in which data is programmed on the last page.

プロセッサ115は、S1401にて特定したブロック(図14の説明において「候補ブロック」)のLastページプログラム日時607を特定する(S1402)。   The processor 115 identifies the Last page program date and time 607 of the block identified in S1401 (“candidate block” in the description of FIG. 14) (S1402).

プロセッサ115が、S1402にて特定したLastページプログラム日時607の値と現在の日時の差を算出することで、候補ブロックについて、Lastページプログラム日時607からの経過時間を得る(S1403)。   The processor 115 calculates the difference between the value of the Last page program date and time 607 specified in S1402 and the current date and time to obtain the elapsed time from the Last page program date and time 607 for the candidate block (S1403).

プロセッサ115は、S1403にて算出した経過時間がPE閾値未満かどうかをチェックする(S1404)。S1403で得た経過時間がPE閾値未満の場合(S1404:Yes)、候補ブロックをキャンセルし(S1405)、再度S1401を行う。S1405で、プロセッサ115は、キャンセルした候補ブロックが再度選択されないよう、例えば、キャンセルした候補ブロックの番号をRAM114に書込んで良い。S1405のような処理が行われる理由は、S1403で得た経過時間がPE閾値未満のブロックは、データ保持に関する信頼性が低下しているおそれがあるからである。   The processor 115 checks whether or not the elapsed time calculated in S1403 is less than the PE threshold (S1404). If the elapsed time obtained in S1403 is less than the PE threshold (S1404: Yes), the candidate block is canceled (S1405), and S1401 is performed again. In S1405, the processor 115 may write, for example, the number of the canceled candidate block in the RAM 114 so that the canceled candidate block is not selected again. The reason why the processing as in S1405 is performed is that the reliability regarding data retention may be reduced in the block whose elapsed time obtained in S1403 is less than the PE threshold.

一方、S1403で得た経過時間がPE閾値以上の場合(S1404:No)、プロセッサ115は、候補ブロック内の全ての有効ページのデータを他のブロックのページにコピーする(S1406)。そして、プロセッサ115は、候補ブロックの有効ページのPBAに対応付けられているLBAに、そのPBAに代えて、コピー先ページのPBAを対応付ける(アドレス変換テーブル500の更新)。この処理により、候補ブロック内の全ページが無効ページとなる。つまり、候補ブロックが無効ブロックとなる。なお、S1401にて取得した候補ブロックが既に無効ブロックであった場合、このステップを実行する必要はなく、プロセッサ115は、S1404の処理の次に、S1407の処理を実行することができる。   On the other hand, when the elapsed time obtained in S1403 is equal to or greater than the PE threshold (S1404: No), the processor 115 copies all the valid page data in the candidate block to the page of another block (S1406). Then, the processor 115 associates the PBA of the copy destination page with the LBA associated with the PBA of the valid page of the candidate block instead of the PBA (update of the address conversion table 500). By this process, all pages in the candidate block become invalid pages. That is, the candidate block becomes an invalid block. If the candidate block acquired in S1401 is already an invalid block, it is not necessary to execute this step, and the processor 115 can execute the process of S1407 after the process of S1404.

プロセッサ115は、S1406にて作成した無効ブロックに対してイレース処理を実施する。(S1407)。   The processor 115 performs an erase process on the invalid block created in S1406. (S1407).

プロセッサ115は、S1406にてイレース処理を実施したブロックのイレース回数604に1を加算する。そして、プロセッサ115は、加算後のイレース回数に基づき、イレース済みブロック(候補ブロック)を、ウェアレベリング管理キュー700に登録する(S1408)。これにより、候補ブロックは、候補ブロックの加算後のイレース回数が属するイレース回数範囲のレベルに関連付けられる。   The processor 115 adds 1 to the erase count 604 of the block for which the erase process has been performed in S1406. Then, the processor 115 registers the erased block (candidate block) in the wear leveling management queue 700 based on the number of erases after the addition (S1408). Thereby, the candidate block is associated with the level of the erase count range to which the erase count after addition of the candidate block belongs.

以上が、本実施例におけるリクラメーション処理の説明である。なお、本実施例では、Lastページプログラム日時607からの経過時間がPE閾値と比較されるが、比較される経過時間は、これに限定されない。例えば、Firstページプログラム日時606からの現時点までの経過時間がPE閾値と比較されても良い。また、Lastページプログラム日時607は、実測値でなくても良く、例えば、Firstページプログラム日時606から予測された値であっても良い。   The above is the description of the reclamation process in the present embodiment. In this embodiment, the elapsed time from the Last page program date 607 is compared with the PE threshold, but the elapsed time to be compared is not limited to this. For example, the elapsed time from the first page program date and time 606 to the present time may be compared with the PE threshold. The last page program date and time 607 may not be an actual measurement value, and may be a value predicted from the first page program date and time 606, for example.

ここまで述べたように、本実施例では、Lastページプログラム日時607からの経過時間がPE閾値以上のブロックにイレース処理が施され、その経過時間がPE閾値未満のブロックにはイレース処理が施されない。また、前回イレース日時605からの経過時間がEP閾値以下のブロックの先頭ページにデータがプログラムされ、その経過時間がEP閾値を超えているブロックの先頭ページにはデータがプログラムされない(そのブロックにイレース処理が施されてから、そのブロックの先頭ページにデータがプログラムされる)。また、Firstページプログラム日時606から経過時間がPP閾値以下の場合に、データが最終プログラムページの次のページにプログラムされる。以上の制御により、FMモジュール100のデータ保持に関する信頼性の低下を抑えることができる。また、PE間隔がPE閾値以上であることが確保されるので、イレース回数が上限に達してしまう時期を遅くすることが図れ、以って、FMモジュール100の高寿命化が期待できる。   As described so far, in this embodiment, an erase process is performed on blocks whose elapsed time from the Last page program date and time 607 is equal to or greater than the PE threshold, and an erase process is not performed on blocks whose elapsed time is less than the PE threshold. . Also, data is programmed on the first page of a block whose elapsed time from the previous erase date and time 605 is less than or equal to the EP threshold, and data is not programmed on the first page of a block whose elapsed time exceeds the EP threshold (the erase is not included in that block). After processing, data is programmed into the first page of the block). In addition, when the elapsed time from the first page program date and time 606 is equal to or less than the PP threshold, the data is programmed to the page following the last program page. With the above control, it is possible to suppress a decrease in reliability related to data retention of the FM module 100. In addition, since it is ensured that the PE interval is equal to or greater than the PE threshold, it is possible to delay the time when the number of erasures reaches the upper limit, so that the life of the FM module 100 can be expected to be extended.

以下、実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する(なお、これは、実施例3についても同様である)。   Example 2 will be described below. At this time, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified (this is the same for the third embodiment).

実施例1では、PE間隔の最小時間(PE閾値)が規定されるが、実施例2では、PE閾値が規定されることに代えて、ホスト計算機10からのコマンドに対して個々のブロックについて可能な限りPE間隔を確保するよう制御が実施される。   In the first embodiment, the minimum time (PE threshold) of the PE interval is defined, but in the second embodiment, instead of defining the PE threshold, it is possible for each block in response to a command from the host computer 10. Control is performed to ensure the PE interval as much as possible.

図15は、PE間隔管理キュー1500の一例を示す。   FIG. 15 shows an example of the PE interval management queue 1500.

PE間隔管理キュー1500は、RAM114に記憶された管理情報の一つである、PE間隔管理キュー1500は、Lastページプログラム日時から現在日時までの経過時間(以下、プログラム経過時間と言う)によりグループ分けし、各グループの経過時間範囲内に該当する無効ブロックのPBA Groupを登録した管理情報である。PE間隔管理キュー1500は、プログラム経過時間1501と、PBA Group1502より構成される。   The PE interval management queue 1500 is one piece of management information stored in the RAM 114. The PE interval management queue 1500 is grouped according to the elapsed time from the last page program date to the current date (hereinafter referred to as program elapsed time). Management information in which the PBA Group of the invalid block corresponding to the elapsed time range of each group is registered. The PE interval management queue 1500 includes a program elapsed time 1501 and a PBA Group 1502.

プログラム経過時間1501は、プログラム経過時間を示す情報である。   The program elapsed time 1501 is information indicating the program elapsed time.

図15の例によれば、プログラム経過時間が4つのレベルに分けられている。プログラム経過時間が最も長いレベルに属するブロック群として、プログラム経過時間が30分以上であるブロック群があり、次に、プログラム経過時間が20分以上29分以下であるブロック群のように、プログラム経過時間の一定の範囲毎にブロックが分類される。本実施例では、プログラム経過時間は、分オーダーまで管理され、秒オーダーについて管理されないが、プログラム経過時間の単位は分までに限定されないで良い。   According to the example of FIG. 15, the program elapsed time is divided into four levels. As the block group belonging to the longest program elapsed time, there is a block group whose program elapsed time is 30 minutes or more, and then the program progress such as a block group whose program elapsed time is 20 minutes or more and 29 minutes or less. Blocks are classified according to a certain range of time. In this embodiment, the program elapsed time is managed up to the minute order and is not managed for the second order, but the unit of the program elapsed time may not be limited to the minute.

PBA Group1502は、プログラム経過時間レベル(範囲)毎に該当するブロックを示すPBA Group1502の先頭アドレスを格納する。PBA Group1502はFIFO型のキューとして登録されており、ブロックは新たにキューの最後尾に登録される。   The PBA Group 1502 stores the head address of the PBA Group 1502 indicating the corresponding block for each program elapsed time level (range). The PBA Group 1502 is registered as a FIFO-type queue, and a block is newly registered at the end of the queue.

実施例2では、PE間隔管理キュー1500を用いて無効ブロックが管理される。無効ブロック数が一定数以下となった際に、無効ブロック生成処理(例えばリクラメーション処理)により無効ブロックが作成され、生成された無効ブロックが、その無効ブロックのプログラム経過時間を基に、PE間隔管理キュー1500に登録される。これらの詳細は後述する。   In the second embodiment, invalid blocks are managed using the PE interval management queue 1500. When the number of invalid blocks falls below a certain number, an invalid block is created by invalid block generation processing (for example, reclamation processing), and the generated invalid block is based on the program elapsed time of the invalid block. Registered in the management queue 1500. Details of these will be described later.

また、実施例2では、PE間隔管理キュー1500は、定期的又は不定期的に、例えば10分毎に更新される。具体的には、FMコントローラ110が、PE間隔管理キュー1500を更新する都度に、その更新した時刻から現在までの時間を測定する。FMコントローラ110は、時点T(測定された時間が10分経過した時点)での無効ブロックのプログラム経過時間が、時点Tにおいてその無効ブロックが属するレベルよりも上のレベルに属していれば、その無効ブロックの先頭ページのPBAを、上のレベルのキューの最後尾に登録する。   In the second embodiment, the PE interval management queue 1500 is updated regularly or irregularly, for example, every 10 minutes. Specifically, each time the FM controller 110 updates the PE interval management queue 1500, the FM controller 110 measures the time from the updated time to the current time. If the program elapsed time of the invalid block at time T (when the measured time has passed 10 minutes) belongs to a level above the level to which the invalid block belongs at time T, the FM controller 110 The PBA of the first page of the invalid block is registered at the end of the upper level queue.

なお、本実施例では、10分経過毎にキュー1500が変更されるが、キュー1500の更新は、10分経過毎に限定されない。例えば1秒単位でキュー1500が更新されてもよい。   In this embodiment, the queue 1500 is changed every 10 minutes, but the update of the queue 1500 is not limited to every 10 minutes. For example, the queue 1500 may be updated every second.

次に、本実施例における無効ブロック生成処理について説明する。   Next, the invalid block generation process in the present embodiment will be described.

図16は、第2実施例における、ブロックの利用サイクルを示した概要図である。   FIG. 16 is a schematic diagram showing a block use cycle in the second embodiment.

データ記録ブロック群1601は、有効ページを含むブロックを概念的に示すブロック群である。FMコントローラ110は、ブロック管理テーブル600からデータ記録ブロック群1601を把握する。また、FMコントローラ110は、無効ブロック群1602に登録されたブロック数が一定数以下となった際、データ記録ブロック群1601の中から、無効ページが基準値以上のブロック(つまり、無効ページが絶対的に又は相対的に多いブロック)を選択する。その選択されたブロックが、リクラメーション候補ブロックである。そして、FMコントローラ110は、リクラメーション候補ブロックの全ての有効ページを、他のブロックのページにコピーする。   The data recording block group 1601 is a block group conceptually showing a block including an effective page. The FM controller 110 grasps the data recording block group 1601 from the block management table 600. Further, when the number of blocks registered in the invalid block group 1602 becomes equal to or less than a certain number, the FM controller 110 determines that blocks whose invalid pages are greater than or equal to the reference value from the data recording block group 1601 (that is, invalid pages are absolute Or relatively many blocks). The selected block is a reclamation candidate block. Then, the FM controller 110 copies all valid pages of the reclamation candidate block to pages of other blocks.

次に、FMコントローラ110は、リクラメーション候補ブロックの有効ページが対応していたLBAの対応先を、リクラメーション候補ブロックの有効ページからそれのコピー先ページに変更する。これにより、リクラメーション候補ブロックの全有効ページが無効ページとなる。その結果、リクラメーション候補ブロックは無効ブロックとなる。こうして生成された無効ブロックは、無効ブロック群1602に登録される。   Next, the FM controller 110 changes the correspondence destination of the LBA corresponding to the valid page of the reclamation candidate block from the valid page of the reclamation candidate block to its copy destination page. As a result, all valid pages of the reclamation candidate block become invalid pages. As a result, the reclamation candidate block becomes an invalid block. The invalid block generated in this way is registered in the invalid block group 1602.

無効ブロック群1602には、無効ブロック(全ページが無効ページとなったブロック)が登録されたブロック群である。FMコントローラ110は、無効ブロックを、その無効ブロックのプログラム経過時間が該当する、PE間隔管理キュー1500のレベルに、登録する。FMコントローラ110は、イレース済みブロック群1603を構成するブロックの数が一定数以下となった際、無効ブロック群1602の中からプログラム経過時間が基準値以上のブロックを選択し、選択した無効ブロックに対してイレース処理をすることで、イレース済みブロックを生成する。こうして生成されたイレース済みブロックは、イレース済みブロック群1603に登録される。なお、プログラム経過時間の基準値は、プログラム経過時間の所定のPE閾値でも良いし、無効ブロック群1602を構成する複数の無効ブロックのプログラム経過時間に基づく値(例えば平均値)であっても良い。つまり、選択される無効ブロックは、プログラム経過時間が絶対的又は相対的に長い無効ブロックである。   The invalid block group 1602 is a block group in which invalid blocks (blocks in which all pages are invalid pages) are registered. The FM controller 110 registers the invalid block at the level of the PE interval management queue 1500 corresponding to the program elapsed time of the invalid block. When the number of blocks constituting the erased block group 1603 falls below a certain number, the FM controller 110 selects a block whose program elapsed time is equal to or greater than a reference value from the invalid block group 1602 and sets the selected invalid block as the selected invalid block. On the other hand, erased blocks are generated by performing erase processing. The erased block generated in this way is registered in the erased block group 1603. Note that the reference value of the program elapsed time may be a predetermined PE threshold value of the program elapsed time, or may be a value (for example, an average value) based on the program elapsed times of a plurality of invalid blocks constituting the invalid block group 1602. . That is, the invalid block to be selected is an invalid block whose program elapsed time is absolute or relatively long.

イレース済みブロック群1603は、イレース済みのブロックが登録されたブロック群である。FMコントローラ110は、ウェアレベリング管理キュー700にイレース済みブロックを登録する。   The erased block group 1603 is a block group in which erased blocks are registered. The FM controller 110 registers the erased block in the wear leveling management queue 700.

FMコントローラ110は、ホスト計算機10からのライトコマンドが生じ、途中プログラムブロック(最終ページまでデータが記録されておらず、記録可能なページを持つブロック)が一定数以下となった際、イレース済みブロック群1603の中からイレース回数が基準値以下のブロックを選択し、ホスト計算機10から受領したライトデータを、その選択したブロック内ページにプログラムする。これにより、そのブロックは、データ記録ブロック(途中プログラムブロック)となる。なお、イレース回数の基準値は、イレース回数の所定の閾値でも良いし、イレース済みブロック群1603を構成する複数のイレース済みブロックのイレース回数に基づく値(例えば平均値)であっても良い。つまり、選択されるイレース済みブロックは、イレース回数が絶対的又は相対的に少ないイレース済みブロックである。   The FM controller 110 is an erased block when a write command from the host computer 10 is generated and the number of program blocks (blocks with no recordable data until the last page and having recordable pages) becomes less than a certain number. A block whose erase count is equal to or less than the reference value is selected from the group 1603, and the write data received from the host computer 10 is programmed into the page in the selected block. Thereby, the block becomes a data recording block (intermediate program block). The reference value for the number of erases may be a predetermined threshold value for the number of erases, or may be a value (for example, an average value) based on the number of erases of a plurality of erased blocks constituting the erased block group 1603. In other words, the erased block to be selected is an erased block whose erase count is absolute or relatively small.

以下、実施例2で行われる処理を詳細に説明する。   Hereinafter, the process performed in Example 2 will be described in detail.

図17は、無効ブロック生成処理のフローの一例を示す。プロセッサ115は、例えば、無効ブロック生成プログラム1144(図19参照)を実行することで、図17で説明する処理を行うことができる。   FIG. 17 shows an example of the flow of invalid block generation processing. For example, the processor 115 can execute the processing described in FIG. 17 by executing the invalid block generation program 1144 (see FIG. 19).

プロセッサ115は、データ記録ブロック群から無効ブロックの候補(以下、無効候補ブロック)を選択する(S1701)。具体的には、プロセッサ115が、ブロック管理テーブル600を参照し、無効ページ数609に格納された値が絶対的又は相対的に多いブロックを無効候補ブロックとして選択する。このとき、プロセッサ115は、テーブル600から、最も無効ページ数の多いブロックを無効候補ブロックとして選択してもよい。また、無効ブロック生成対象の基準として、無効ページ数の閾値があり、プロセッサ115は、無効ページ数609に登録された値が閾値以上のブロックを無効候補ブロックとして選択してもよい。   The processor 115 selects an invalid block candidate (hereinafter, invalid candidate block) from the data recording block group (S1701). Specifically, the processor 115 refers to the block management table 600 and selects a block having an absolute or relatively large value stored in the number of invalid pages 609 as an invalid candidate block. At this time, the processor 115 may select a block with the largest number of invalid pages from the table 600 as an invalid candidate block. Further, there is a threshold for the number of invalid pages as a reference for generating invalid blocks, and the processor 115 may select a block whose value registered in the number of invalid pages 609 is equal to or greater than the threshold as an invalid candidate block.

プロセッサ115は、S1701にて選択した無効候補ブロックにのLastページプログラム日時607を特定する(S1702)。   The processor 115 identifies the Last page program date and time 607 for the invalid candidate block selected in S1701 (S1702).

プロセッサ115は、S1702にて特定したLastページプログラム日時607から現在までの経過時間(プログラム経過時間)を算出する(S1703)。   The processor 115 calculates the elapsed time (program elapsed time) from the Last page program date and time 607 specified in S1702 to the present (S1703).

プロセッサ115は、S1701で選択した無効候補ブロック内の全有効ページを他のブロックの空きページ(有効データでも無効データでもない、データが記録されていないページ)にコピーし、コピー元の有効ページが対応付けられていたLBAの対応先を、コピー元の有効ページからそれのコピー先ページに変更する(S1704)。この処理により無効候補ブロック内の全ページは無効ページとなり、無効候補ブロックは無効ブロックとなる。   The processor 115 copies all valid pages in the invalid candidate block selected in S1701 to empty pages of other blocks (pages that are neither valid data nor invalid data and no data is recorded), and the valid page of the copy source is The correspondence destination of the associated LBA is changed from the valid page of the copy source to the copy destination page (S1704). By this processing, all pages in the invalid candidate block become invalid pages, and invalid candidate blocks become invalid blocks.

プロセッサ115は、PE間隔管理キュー1500における、S1704にて算出したプログラム経過時間が該当するレベルに、無効ブロック(全ページが無効ページとなった候補ブロック)を登録する(S1705)。例えば、S1703にて算出されたプログラム経過時間が12分であった場合、プロセッサ115は、PE間隔管理キュー1500における、PE間隔10分以上19分以内の行に、無効候補ブロックの先頭ページのPBAを記録する。   The processor 115 registers an invalid block (a candidate block in which all pages are invalid pages) in the level corresponding to the program elapsed time calculated in S1704 in the PE interval management queue 1500 (S1705). For example, when the program elapsed time calculated in S1703 is 12 minutes, the processor 115 puts the PBA of the first page of the invalid candidate block on the line in the PE interval management queue 1500 within the PE interval of 10 minutes to 19 minutes. Record.

以上が、本実施例における無効ブロック生成処理の説明である。   The above is the description of the invalid block generation process in the present embodiment.

次に、本実施例におけるイレース処理について説明する。   Next, the erase process in the present embodiment will be described.

図18は、イレース処理のフローの一例を示す。   FIG. 18 shows an example of the erase process flow.

イレース処理の最初のステップにおいて、プロセッサ115は、PE間隔管理キュー1500を参照し、最もプロセッサ経過時間の長いレベルよりブロックを選択する(S1801)。図18の説明において、S1801で選択されたブロックを「イレース候補ブロック」と言う。   In the first step of the erase process, the processor 115 refers to the PE interval management queue 1500 and selects a block from the level with the longest processor elapsed time (S1801). In the description of FIG. 18, the block selected in S1801 is referred to as an “erase candidate block”.

より具体的には、プロセッサ115が、PE間隔管理キュー1500を参照し、最もプロセッサ経過時間の長いレベル(最上位レベル)(図15の例では30分以上)の先頭ブロック(グループに登録された全ブロックのうち、最も過去に登録されたブロック)を特定する。このとき、最上位レベルに登録されたブロックがない場合、プロセッサ115が、次に上位のレベル(図15の例では20分以上29分以内)よりブロックを選択する。このように、ブロックを特定できない場合は、プロセッサ115は、1段階レベルを下げ、そのレベルからよりブロックを選択する。このように、ブロックが取得できるまで、ブロックの探索範囲が、順にプロセッサ経過時間の低いレベルに変更される。   More specifically, the processor 115 refers to the PE interval management queue 1500 and registers the first block (registered in the group) of the level with the longest processor elapsed time (the highest level) (30 minutes or more in the example of FIG. 15). Among all the blocks, the block registered most recently) is specified. At this time, when there is no block registered at the highest level, the processor 115 selects a block from the next higher level (in the example of FIG. 15, within 20 minutes to 29 minutes). As described above, when a block cannot be specified, the processor 115 lowers the level by one step and selects a block from that level. In this way, the block search range is sequentially changed to a level with a low processor elapsed time until a block can be acquired.

プロセッサ115は、ブロック管理テーブル600を参照し、イレース候補ブロックが該当する行のイレース回数604の値を特定する(S1802)。   The processor 115 refers to the block management table 600 and specifies the value of the erase count 604 of the row corresponding to the erase candidate block (S1802).

プロセッサ115は、FM−IF116に、イレース候補ブロックを示すPBAとイレースコマンドを通知し、FM−IF116が、イレース候補ブロックを含むチップに対して、ブロック番号を通知し、且つ、イレースコマンドを送信する(S1803)。   The processor 115 notifies the FM-IF 116 of the PBA indicating the erase candidate block and the erase command, and the FM-IF 116 notifies the block number including the erase candidate block and transmits the erase command. (S1803).

プロセッサ115は、S1802にて特定したイレース回数を1インクリメントする(S1804)。これにより、イレース候補ブロックの新たなイレース回数が決定される。   The processor 115 increments the number of erases specified in S1802 by 1 (S1804). Thereby, the new number of erases of the erase candidate block is determined.

プロセッサ115は、S1804にて算出したイレース回数を用いて、ウェアレベリング管理キュー700の該当するレベルに、S1803にてイレース処理を実施した候補ブロック(イレース済みブロック)を登録する。また、新たなイレース回数がブロック管理テーブル600イレース回数604に登録される(S1805)。   The processor 115 registers the candidate block (erased block) subjected to the erase process in S1803 at the corresponding level in the wear leveling management queue 700 using the number of erases calculated in S1804. Also, a new erase count is registered in the block management table 600 erase count 604 (S1805).

実施例2によれば、プログラム経過時間が長い無効ブロックに対して優先的にイレース処理を施す。これにより、全ブロックのPE間隔がより長くされることが図れる。この結果、短いPE間隔時に生じる電子トラップ及び正孔トラップの数が低減され、高信頼化が期待される。   According to the second embodiment, the erase process is preferentially performed on invalid blocks having a long program elapsed time. Thereby, the PE interval of all blocks can be made longer. As a result, the number of electron traps and hole traps generated at a short PE interval is reduced, and high reliability is expected.

また、こうした高信頼化により、データの記憶に使用不可と判断されるブロックを減らし、利用可能なブロックのイレース回数の上限を実質的に増やすことができるため、FMモジュール100の長寿命化が期待できる。   In addition, with such high reliability, the number of blocks that are determined to be unusable for data storage can be reduced, and the upper limit of the number of erasures of usable blocks can be substantially increased. it can.

なお、実施例1におけるPE間隔の最小時間規定と、本実施例におけるPE間隔を可能な限り確保する制御(つまり実施例1と実施例2)は、組み合わせて実施されてもよい。   In addition, the minimum time regulation of the PE interval in the first embodiment and the control for ensuring the PE interval in the present embodiment as much as possible (that is, the first embodiment and the second embodiment) may be implemented in combination.

ここまで、通常処理の中でPE間隔の最小時間を制限し(実施例1)、またはPE間隔を長く制御する(実施例2)例について述べてきた。PE間隔の短縮により電子トラップおよび正孔トラップが多量に発生するのを抑え、不揮発性半導体メモリのデータ保持に関する信頼性(データ保持信頼性)の低下を防ぐことが期待できる。   Up to this point, an example has been described in which the minimum time of the PE interval is limited in the normal processing (Example 1) or the PE interval is controlled to be long (Example 2). By shortening the PE interval, it can be expected that a large amount of electron traps and hole traps are suppressed, and a decrease in reliability (data retention reliability) related to data retention in the nonvolatile semiconductor memory can be expected.

実施例3では、稼働中にデータ保持信頼性が低いブロックが検出され、そのブロックのPE間隔を長くすることで、生じた正孔トラップおよび電子トラップを減らし、データ保持信頼性を向上させることが期待できる。つまり、本実施例により、使用不可となるブロックを減少することができる。   In the third embodiment, a block with low data retention reliability is detected during operation, and by increasing the PE interval of the block, the generated hole traps and electron traps can be reduced and the data retention reliability can be improved. I can expect. That is, according to the present embodiment, blocks that cannot be used can be reduced.

不揮発性半導体メモリは、一般にデータの保持期間が有限である。このため、一定期間毎にデータをリードし他所にコピーする処理を行うことが望ましい。こうした処理は、一般に「リフレッシュ処理」と呼ばれる。また、不揮発性半導体メモリは、データ記録後の時間経過とともに障害ビット数が増加する。このため、FMコントローラ110は、定期的又は不定期的にFMモジュール100内の全記憶領域をリードし、各ページに生じている障害ビット数を検査することができる。この処理を、本実施例において「ベリファイ処理」と呼ぶ。   A nonvolatile semiconductor memory generally has a finite data retention period. For this reason, it is desirable to perform a process of reading data and copying it to another place at regular intervals. Such processing is generally called “refresh processing”. In the nonvolatile semiconductor memory, the number of faulty bits increases with time after data recording. For this reason, the FM controller 110 can periodically or irregularly read the entire storage area in the FM module 100 and inspect the number of failure bits generated in each page. This processing is called “verification processing” in the present embodiment.

図20は、経過日数と障害ビット閾値との関係を表すテーブルの一例を示す。   FIG. 20 shows an example of a table representing the relationship between the elapsed days and the failure bit threshold.

データをプログラムしてから日数が経過すると、メモリの障害ビットは増加していく。このため、図20に示すテーブル2000によれば、経過日数2001(例えば或るページ(例えば先頭ページ又は最終ページ)にデータをプログラムしてから現在までの日数)の値が長いと、障害ビット閾値2002は高い。障害ビット閾値は、障害ビット数の閾値である。   As the number of days elapses after the data is programmed, the memory failure bits increase. Therefore, according to the table 2000 shown in FIG. 20, if the value of the elapsed days 2001 (for example, the number of days from when data is programmed to a certain page (for example, the first page or the last page)) is long, the failure bit threshold value 2002 is expensive. The failure bit threshold is a threshold for the number of failure bits.

本実施例では、リード処理(ホスト計算機10からのリードコマンドの処理)、リフレッシュ処理およびベリファイ処理の少なくとも1つの処理において、FMコントローラ110は、ブロックについての経過日数(例えば或るページ(例えば先頭ページ又は最終ページ)にデータをプログラムしてから現在までの日数)に対応する障害ビット閾値2002を特定する。FMコントローラ110は、障害ビット数(または、ブロック内全ECC CWの平均障害bit数)が障害ビット閾値以上のブロック(以下、危険ブロックと言う)を検出する。より具体的には、FMコントローラ110は、まず前述の何れかの処理においてブロック内のページからデータをリードする。そして、FMコントローラ110は、そのページを構成するECC毎の障害ビット数を取得する。次に、FMコントローラ110は、障害ビット数が障害ビット閾値以上となったブロックを危険ブロックとして特定する。なお、障害ビット閾値は、ECCで修正可能なbit数以下の値で良い。   In this embodiment, in at least one of the read process (read command process from the host computer 10), the refresh process, and the verify process, the FM controller 110 determines the number of days (for example, a certain page (for example, the first page) for a block. Alternatively, the failure bit threshold 2002 corresponding to the number of days from the time the data is programmed to the last page) is specified. The FM controller 110 detects a block (hereinafter referred to as a dangerous block) in which the number of failed bits (or the average number of failed bits of all ECC CWs in the block) is equal to or greater than a failed bit threshold. More specifically, the FM controller 110 first reads data from the page in the block in any of the processes described above. Then, the FM controller 110 acquires the number of failed bits for each ECC that configures the page. Next, the FM controller 110 identifies a block in which the number of failed bits is equal to or greater than the failed bit threshold value as a dangerous block. The failure bit threshold value may be a value equal to or less than the number of bits that can be corrected by ECC.

危険ブロックと判断されたブロックは、実施例2で述べた無効ブロック生成処理の対象となる。FMコントローラ110は、危険ブロックに含まれる全ページのデータを別のブロックにコピーし、アドレス変換テーブル500を更新する。この処理により、危険ブロックが無効ブロックとなる。そして、FMコントローラ110は、その無効ブロックを危険ブロック管理キュー(図示せず)に登録する。危険ブロック管理キューは、FIFO型のキューであり、ブロックをキューに登録する際には、キューの最後尾に登録する。   Blocks determined as dangerous blocks are subject to invalid block generation processing described in the second embodiment. The FM controller 110 copies the data of all pages included in the dangerous block to another block, and updates the address conversion table 500. By this processing, the dangerous block becomes an invalid block. Then, the FM controller 110 registers the invalid block in a dangerous block management queue (not shown). The dangerous block management queue is a FIFO-type queue, and is registered at the end of the queue when the block is registered in the queue.

実施例3では実施例2と同様に、無効ブロックはPE間隔管理キュー1500に登録される。   In the third embodiment, the invalid block is registered in the PE interval management queue 1500 as in the second embodiment.

図21は、管理画面2100の一例を示す。   FIG. 21 shows an example of the management screen 2100.

管理画面2100は、管理計算機11に表示される画面である。管理計算機11は、複数(又は一)のFMモジュール100を管理している。   The management screen 2100 is a screen displayed on the management computer 11. The management computer 11 manages a plurality (or one) of FM modules 100.

管理画面2100には、管理計算機11が管理している複数のFMモジュール100のID(モジュールリスト)が表示される。モジュールリストのうちの1以上のFMモジュールIDをユーザが選択することができる。   The management screen 2100 displays IDs (module lists) of a plurality of FM modules 100 managed by the management computer 11. The user can select one or more FM module IDs in the module list.

管理画面2100は、時間表示エリア2101を有し、この画面2100上の前面に、ブロック表示画面2102が表示される。この画面2102には、複数のFMモジュールIDからユーザにより選択されたFMモジュールに関する情報が表示される。管理計算機11が、複数のFMモジュール100から管理情報を収集しており、その管理情報の全部又は一部が、画面2100及び2102の少なくとも一方に表示されて良い。   The management screen 2100 has a time display area 2101, and a block display screen 2102 is displayed on the front surface of the screen 2100. On this screen 2102, information related to the FM module selected by the user from a plurality of FM module IDs is displayed. The management computer 11 collects management information from a plurality of FM modules 100, and all or part of the management information may be displayed on at least one of the screens 2100 and 2102.

時間表示エリア2101には、「許容最小PE間隔」及び「許容最大EP間隔」が表示される。この「許容最小PE間隔」(つまりPE閾値)及び「許容最大EP間隔」(つまりEP閾値)は、本実施例では、この管理画面2100からユーザは変更できないが、これらの閾値のうちの少なくとも1つがユーザによってこの画面2100から変更されても良い。   In the time display area 2101, “allowable minimum PE interval” and “allowable maximum EP interval” are displayed. In this embodiment, the “allowable minimum PE interval” (that is, the PE threshold) and the “allowable maximum EP interval” (that is, the EP threshold) cannot be changed from the management screen 2100 in this embodiment, but at least one of these thresholds It may be changed from this screen 2100 by the user.

ブロック表示画面2102は、モジュールリストからユーザに選択されたFMモジュールIDに対応するFMモジュールについて、「総ブロック数」及び「危険ブロック数」を表示する。「総ブロック数」は、ユーザに選択されたFMモジュール100が有するブロックの総数であり、「危険ブロック数」は、それらのブロックのうちの危険ブロックの数である。危険ブロックは、前述したように、障害ビット数が障害ビット閾値以上となったブロックである。   The block display screen 2102 displays “total number of blocks” and “number of dangerous blocks” for the FM module corresponding to the FM module ID selected by the user from the module list. The “total number of blocks” is the total number of blocks included in the FM module 100 selected by the user, and the “dangerous block number” is the number of dangerous blocks among those blocks. As described above, the dangerous block is a block in which the number of failed bits is equal to or greater than the failed bit threshold.

図22は、イレース処理のフローの一例を示す。   FIG. 22 shows an example of the erase process flow.

本実施例では、前述したように、障害ビット数が障害ビット閾値以上であるブロックが危険ブロックとして管理される。FMコントローラ110は、危険ブロックを、なるべくイレース対象とならないようにする。なぜなら、メモリチップ120は、データがプログラムされた状態で放置すると、次回プログラム時の記録データに生ずる障害ビット数が減少するという特性を有するからである。危険ブロックは、そのブロックのプログラム経過時間が所定時間を経過した後、イレース対象のブロックとなるように制御される。   In the present embodiment, as described above, blocks whose failure bit number is greater than or equal to the failure bit threshold are managed as dangerous blocks. The FM controller 110 prevents the dangerous block from being erased as much as possible. This is because the memory chip 120 has a characteristic that if the data is left in a programmed state, the number of failed bits generated in the recording data at the next programming time is reduced. The dangerous block is controlled to become a block to be erased after the program elapsed time of the block has passed a predetermined time.

プロセッサ115は、FMモジュール100が管理するブロック選択数が、所定の閾値未満かどうかを判断する(S2201)。このとき閾値は、例えば10万である。   The processor 115 determines whether or not the number of block selections managed by the FM module 100 is less than a predetermined threshold (S2201). At this time, the threshold is, for example, 100,000.

ブロック選択数が閾値未満である場合(S2201:Yes)、実施例2と同様に、プロセッサ115は、PE間隔管理キュー1500より無効ブロックを選択(S2202)する。プロセッサ115は、ブロック選択数を1インクリメントする。従って、前述の「ブロック選択数」とは、危険ブロックでない無効ブロックが選択された回数を示す。S2204〜S2207までの処理は、実施例2のS1802〜S1805(図18参照)とほぼ同じであるため、説明を省略する。   When the block selection number is less than the threshold (S2201: Yes), the processor 115 selects an invalid block from the PE interval management queue 1500 (S2202), as in the second embodiment. The processor 115 increments the block selection number by one. Therefore, the aforementioned “number of block selections” indicates the number of times an invalid block that is not a dangerous block is selected. Since the processing from S2204 to S2207 is substantially the same as S1802 to S1805 (see FIG. 18) of the second embodiment, description thereof is omitted.

一方、ブロック選択数が所定の閾値以上の場合(S2201:No)、プロセッサ115は、危険ブロック管理キューよりブロック(図22の説明においてイレース候補ブロック)を取得する(S2208)。ブロック選択数がゼロから閾値以上に増えたということは、ブロック選択数がゼロから閾値以上に増えるまでの時間だけ危険ブロックは選択されずに放置されていたことを意味する。故に、危険ブロックにおいて次回プログラム時の記録データに生ずる障害ビット数が減少する可能性がある。危険ブロックは、望ましくは何らかのデータがプログラム済みのブロックである。   On the other hand, if the block selection number is equal to or greater than the predetermined threshold (S2201: No), the processor 115 acquires a block (erase candidate block in the description of FIG. 22) from the dangerous block management queue (S2208). The fact that the block selection number has increased from zero to a threshold value or more means that the dangerous block has been left unselected for the time until the block selection number has increased from zero to the threshold value or more. Therefore, there is a possibility that the number of trouble bits generated in the recording data at the next program in the dangerous block is reduced. The dangerous block is preferably a block in which some data is programmed.

プロセッサ115は、ブロック選択数を初期値(例えば0)とする(S2209)。これにより、以後、ブロック選択数が再び閾値以上に増えるまで、危険ブロックがイレース候補ブロックとして選択されることは無い。   The processor 115 sets the block selection number to an initial value (for example, 0) (S2209). Thereby, thereafter, the dangerous block is not selected as the erase candidate block until the block selection number increases again to the threshold value or more.

S2209の後、プロセッサ115は、S2204の処理を行う。   After S2209, the processor 115 performs the process of S2204.

図23は、リード処理のフローの一例を示す。   FIG. 23 shows an example of the flow of read processing.

S2301〜S2304までの処理は、図13のS1301〜S1304と、ほぼ同じであるため説明を省略する。   The processing from S2301 to S2304 is almost the same as S1301 to S1304 in FIG.

プロセッサ115は、リード元のブロックの障害ビット数を特定する(S2305)。   The processor 115 identifies the number of faulty bits in the read source block (S2305).

プロセッサ115は、リード元ブロックのプログラム経過日数に対応する障害ビット閾値を図20に示したテーブル2000から特定し、S2305で特定した障害ビット数が特定された障害ビット閾値未満かどうかをチェックする(S2306)。   The processor 115 identifies the failure bit threshold corresponding to the program elapsed days of the read source block from the table 2000 shown in FIG. 20, and checks whether or not the number of failure bits identified in S2305 is less than the identified failure bit threshold ( S2306).

障害ビット数が障害ビット閾値未満である場合(S2306:Yes)、プロセッサ115は、修正したデータをホスト計算機10に転送する(S1305)。   When the number of failure bits is less than the failure bit threshold value (S2306: Yes), the processor 115 transfers the corrected data to the host computer 10 (S1305).

一方、特定した障害ビット数が障害ビット閾値以上の場合(S2306:No)、プロセッサ115は、リード元ブロックを危険ブロックとして登録する(S2307)。   On the other hand, when the specified number of failed bits is equal to or greater than the failed bit threshold (S2306: No), the processor 115 registers the read source block as a dangerous block (S2307).

実施例3によれば、危険ブロックではない無効ブロックよりも低い頻度で危険ブロックがイレース候補ブロックとして選択される。これにより、危険ブロックのPE間隔が延長される。PE間隔が延長されると、危険ブロックの酸化膜内にある電子トラップおよび正孔トラップのデトラップが行われ、危険ブロックのデータ保持能力は回復し、再度データ保持信頼性を維持可能となる。これにより、使用不可となるブロックが減り、利用可能なイレース回数が増加し、FMモジュール100の長寿命化が期待される。   According to the third embodiment, a dangerous block is selected as an erase candidate block at a lower frequency than an invalid block that is not a dangerous block. As a result, the PE interval of the dangerous block is extended. When the PE interval is extended, electron traps and hole traps in the oxide film of the dangerous block are detrapped, and the data holding capability of the dangerous block is restored, so that the data holding reliability can be maintained again. As a result, the number of blocks that cannot be used is reduced, the number of erasures that can be used is increased, and the life of the FM module 100 is expected to be extended.

なお、上記の説明によれば、危険ブロックは、障害ビット数が障害ビット閾値以上のブロックであるが、障害ビット数と障害ビット閾値の比較は、データ単位、ページ単位、ブロック単位、など、所定の単位で行われて良い。   In addition, according to the above description, the dangerous block is a block whose failure bit number is greater than or equal to the failure bit threshold value, but the comparison between the failure bit number and the failure bit threshold value is a predetermined unit such as data unit, page unit, block unit, etc. It may be done in units of.

また、危険ブロックは、障害ビット数が障害ビット閾値以上のブロックに代えて又は加えて、下記の(1)及び(2)のうちの少なくとも1つに該当するブロックであっても良い。
(1)プログラムにかかる時間が第1の基準値未満である。
(*)ブロックが劣化すると、酸化絶縁膜にホールができる。FG(フローティングゲート)にN個の電子をいれたつもりが、FGにはN個未満しか入らず、残りは酸化絶縁膜のホールに入るおそれがある。この場合、注入される電子の数は、N個未満で済むので、プログラムにかかる時間は短くなる。
(*)第1の基準値は、所定の閾値であっても良いし、複数のブロックのプログラム時間(プログラムに要した時間)に基づく値(例えば平均値)であっても良い。つまり、この(1)は、「プログラムにかかる時間が絶対的又は相対的に長い」ということで良い。
(2)イレースにかかる時間が第2の基準値未満である。
(*)ブロックが劣化すると、イレース処理においてなかなか電子がFGから出ていかない。
(*)第2の基準値は、所定の閾値であっても良いし、複数のブロックのイレース時間(イレース処理に要した時間)に基づく値(例えば平均値)であっても良い。つまり、この(2)は、「イレースにかかる時間が絶対的又は相対的に短い」ということで良い。
Further, the dangerous block may be a block corresponding to at least one of the following (1) and (2) instead of or in addition to the block having the number of failed bits equal to or greater than the failed bit threshold.
(1) The time required for the program is less than the first reference value.
(*) When the block deteriorates, holes are formed in the oxide insulating film. There is a possibility that N electrons are put into FG (floating gate), but less than N electrons are put into FG, and the rest may enter holes of the oxide insulating film. In this case, since the number of injected electrons is less than N, the time required for programming is shortened.
(*) The first reference value may be a predetermined threshold value, or may be a value (for example, an average value) based on a program time (time required for programming) of a plurality of blocks. That is, this (1) may be that “the time required for the program is absolute or relatively long”.
(2) The time required for erasing is less than the second reference value.
(*) When the block deteriorates, it is difficult for electrons to come out of the FG in the erase process.
(*) The second reference value may be a predetermined threshold value, or may be a value (for example, an average value) based on the erase time (time required for the erase process) of a plurality of blocks. That is, this (2) may be that “the time required for erasing is absolute or relatively short”.

以上、幾つかの実施例を説明したが、本発明は、これらの実施例に限定されない。   Although several embodiments have been described above, the present invention is not limited to these embodiments.

例えば、LBAは、多段であっても良い。例えば、ホスト計算機10から指定されるLBAは、論理ボリュームにおける領域の第1段のLBAであって、第1段のLBAには、FMモジュール100が認識する第2段のLBAが対応付けられていて、第2段のLBAに、PBAが対応付けられても良い。多段であっても、第1段のLBAに間接的にPBAが対応付けられる。   For example, the LBA may be multistage. For example, the LBA specified by the host computer 10 is the first LBA of the area in the logical volume, and the second LBA recognized by the FM module 100 is associated with the first LBA. Thus, the PBA may be associated with the second-stage LBA. Even in multiple stages, the PBA is indirectly associated with the first stage LBA.

また、例えば、実施例3は、実施例1及び2を含むが、実施例2を含まないでも良い。この場合、例えば、図22のS2202では、無効ページが絶対的又は相対的に多いブロックが選択され、S2203で、ブロック選択数が1インクリメントされても良い。   Further, for example, the third embodiment includes the first and second embodiments, but the second embodiment may not be included. In this case, for example, in S2202 of FIG. 22, a block having an absolute or relatively large number of invalid pages may be selected, and in S2203, the number of block selections may be incremented by one.

100…FMモジュール、110…FMコントローラ、120…メモリ(不揮発性半導体メモリ)   100 ... FM module, 110 ... FM controller, 120 ... memory (nonvolatile semiconductor memory)

Claims (14)

それぞれがデータイレースの単位であるブロックを複数含む複数のフラッシュメモリチップと、
前記複数のフラッシュメモリチップに接続されており、ブロックに対してデータのプログラム及びデータのイレースを行うコントローラと
を有し、
各ブロックは、データのプログラムの単位であるページを複数有し、
前記コントローラは、
無効ブロックを複数生成し、
前記複数の無効ブロックのそれぞれについて、ブロックにデータを最近プログラムした時刻である最近プログラム時刻を管理し、
前記複数の無効ブロックのうち、前記最近プログラム時刻からの経過時間である経過プログラム時間が相対的に長い無効ブロック内のデータをイレースする、
フラッシュメモリモジュール。
Each, and a plurality of flash memory chips including a plurality of blocks is a unit of data erase,
A controller that is connected to the plurality of flash memory chips and that performs data programming and data erasing on the block;
Each block has a plurality of pages which are units of data program,
The controller is
Generate multiple invalid blocks,
For each of the plurality of invalid blocks, managing the latest program time, which is the time at which data was recently programmed in the block,
Erasing data in an invalid block having a relatively long elapsed program time that is an elapsed time from the most recent program time among the plurality of invalid blocks;
Flash memory module.
前記複数の無効ブロックは、一定数より多くの無効ブロックであり、  The plurality of invalid blocks is more than a certain number of invalid blocks;
前記コントローラは、無効ブロックの数が前記一定数以下となった場合に新たに無効ブロックを生成することにより、前記一定数より多くの無効ブロックを維持する、  The controller maintains more invalid blocks than the certain number by newly creating invalid blocks when the number of invalid blocks becomes equal to or less than the certain number.
請求項1記載のフラッシュメモリモジュール。The flash memory module according to claim 1.
前記コントローラは、前記複数のページのそれぞれの論理アドレスと物理アドレスを対応付けて管理しており、  The controller manages the logical address and physical address of each of the plurality of pages in association with each other,
前記無効ブロックは、前記論理アドレスに対応付けられた前記物理アドレスから特定される有効ページを含まないブロックである、  The invalid block is a block that does not include a valid page identified from the physical address associated with the logical address.
請求項1又は2記載のフラッシュメモリモジュール。The flash memory module according to claim 1 or 2.
前記コントローラは、信頼性低下の危険がありデータがプログラムされているブロックである危険ブロックを検出し、
前記最近プログラム時刻に基づくブロックに関してイレース処理が行われるタイミングの制御において、前記コントローラは、前記危険ブロックの代わりに無効ブロックをイレース処理対象ブロックとして優先的に選択する、
請求項1乃至3のうちのいずれか1項に記載のフラッシュメモリモジュール。
The controller detects a dangerous block which is a block in which data is programmed and there is a risk of lowering reliability.
In the control of the timing of the erase process is performed on the block based on the recent program time, the controller preferentially selects the invalid block as the erase target block instead of the previous SL dangerous blocks,
The flash memory module according to claim 1 .
前記最近プログラム時刻に基づくブロックに関してイレース処理が行われるタイミングの制御において、前記コントローラは、
無効ブロックが選択された回数であるブロック選択数が所定の値未満である場合、無効ブロックを前記イレース処理対象ブロックとして選択し、前記ブロック選択数を更新し、
前記ブロック選択数が所定の値以上である場合、前記危険ブロックを前記イレース処理対象ブロックとして選択し、前記ブロック選択数の値を初期値に戻す、
請求項記載のフラッシュメモリモジュール。
In controlling the timing at which erase processing is performed for a block based on the latest program time, the controller
If the block selection number, which is the number of times the invalid block has been selected, is less than a predetermined value, select the invalid block as the erase process target block, and update the block selection number.
If the number of blocks selected is equal to or greater than a predetermined value, selecting the danger block as the erase target block, it returns the value of the block selection number to an initial value,
The flash memory module according to claim 4 .
前記危険ブロックは、障害ビット数が障害ビット閾値以上のブロックであり、
前記コントローラは、複数の障害ビット閾値から、ブロックの前記経過プログラム時間に対応した障害ビット閾値を特定し、そのブロックの障害ビット数が前記特定された障害ビット閾値以上の場合、そのブロックを前記危険ブロックとして検出する、
請求項記載のフラッシュメモリモジュール。
The dangerous block is a block having a failure bit number equal to or greater than a failure bit threshold value,
The controller identifies a failure bit threshold corresponding to the elapsed program time of a block from a plurality of failure bit thresholds, and if the number of failure bits of the block is equal to or greater than the identified failure bit threshold, the block is identified as the danger bit. Detect as a block,
The flash memory module according to claim 5 .
前記経過プログラム時間は、最終ページにデータが最近プログラムされた時刻からの経過時間である第1の経過時間と、前記最終ページ以外のページにデータが最近プログラムされた時刻からの経過時間である第2の経過時間とを含み、
前記危険ブロックを検出する前記コントローラに関する前記経過プログラム時間は、前記第2の経過時間である、
請求項記載のフラッシュメモリモジュール。
The elapsed program time is a first elapsed time that is an elapsed time from the time when data is recently programmed on the last page, and an elapsed time that is an elapsed time from the time when data is recently programmed on a page other than the last page. 2 elapsed time,
The elapsed program time for the controller that detects the dangerous block is the second elapsed time,
The flash memory module according to claim 6 .
それぞれがデータイレースの単位であるブロックを複数含む複数のフラッシュメモリモジュールと、
前記複数のフラッシュメモリモジュールに接続されており、ブロックに対してデータのプログラム及びデータのイレースを行うフラッシュコントローラと
を有し、
各ブロックは、データのプログラムの単位であるページを複数有し、
前記フラッシュコントローラは、
無効ブロックを複数生成し、
前記複数の無効ブロックのそれぞれについて、ブロックにデータを最近プログラムした時刻である最近プログラム時刻を管理し、
前記複数の無効ブロックのうち、前記最近プログラム時刻からの経過時間である経過プログラム時間が相対的に長い無効ブロック内のデータをイレースする、
ストレージ装置。
Each, and multiple including a plurality of flash memory modules block which is a unit of data erase,
A flash controller connected to the plurality of flash memory modules and performing data programming and data erasing on the block;
Each block has a plurality of pages which are units of data program,
The flash controller
Generate multiple invalid blocks,
For each of the plurality of invalid blocks, managing the latest program time, which is the time at which data was recently programmed in the block,
Erasing data in an invalid block having a relatively long elapsed program time that is an elapsed time from the most recent program time among the plurality of invalid blocks;
Storage device.
前記複数の無効ブロックは、一定数より多くの無効ブロックであり、  The plurality of invalid blocks is more than a certain number of invalid blocks;
前記コントローラは、無効ブロックの数が前記一定数以下となった場合に新たに無効ブロックを生成することにより、前記一定数より多くの無効ブロックを維持する、  The controller maintains more invalid blocks than the certain number by newly creating invalid blocks when the number of invalid blocks becomes equal to or less than the certain number.
請求項8記載のストレージ装置。The storage device according to claim 8.
前記コントローラは、前記複数のページのそれぞれの論理アドレスと物理アドレスを対応付けて管理しており、  The controller manages the logical address and physical address of each of the plurality of pages in association with each other,
前記無効ブロックは、前記論理アドレスに対応付けられた前記物理アドレスから特定される有効ページを含まないブロックである、  The invalid block is a block that does not include a valid page identified from the physical address associated with the logical address.
請求項8又は9記載のストレージ装置。The storage apparatus according to claim 8 or 9.
前記フラッシュコントローラは、信頼性低下の危険がありデータがプログラムされているブロックである危険ブロックを検出し、
前記最近プログラム時刻に基づくブロックに関してイレース処理が行われるタイミングの制御において、前記フラッシュコントローラは、前記危険ブロックの代わりに無効ブロックをイレース処理対象ブロックとして優先的に選択する、
請求項8乃至10のうちのいずれか1項に記載のストレージ装置。
The flash controller detects a dangerous block that is a block in which data is programmed because there is a risk of lowering reliability.
In the control of the timing of the erase process is performed on the block based on the recent program time, the flash controller preferentially selects the invalid block as the erase target block instead of the previous SL dangerous blocks,
The storage apparatus according to any one of claims 8 to 10 .
前記最近プログラム時刻に基づくブロックに関してイレース処理が行われるタイミングの制御において、前記フラッシュコントローラは、
無効ブロックが選択された回数であるブロック選択数が所定の値未満である場合、無効ブロックを前記イレース処理対象ブロックとして選択し、前記ブロック選択数を更新し、
前記ブロック選択数が所定の値以上である場合、前記危険ブロックを前記イレース処理対象ブロックとして選択し、前記ブロック選択数の値を初期値に戻す、
請求項11記載のストレージ装置。
In controlling the timing at which erase processing is performed on the block based on the latest program time, the flash controller
If the block selection number, which is the number of times the invalid block has been selected, is less than a predetermined value, select the invalid block as the erase process target block, and update the block selection number.
If the number of blocks selected is equal to or greater than a predetermined value, selecting the danger block as the erase target block, it returns the value of the block selection number to an initial value,
The storage apparatus according to claim 11 .
前記危険ブロックは、障害ビット数が障害ビット閾値以上のブロックであり、
前記フラッシュコントローラは、複数の障害ビット閾値から、ブロックの前記経過プログラム時間に対応した障害ビット閾値を特定し、そのブロックの障害ビット数が前記特定された障害ビット閾値以上の場合、そのブロックを前記危険ブロックとして検出する、
請求項12記載のストレージ装置。
The dangerous block is a block having a failure bit number equal to or greater than a failure bit threshold value,
The flash controller specifies a failure bit threshold corresponding to the elapsed program time of a block from a plurality of failure bit thresholds, and if the number of failure bits of the block is greater than or equal to the specified failure bit threshold, the block is Detect as dangerous blocks,
The storage device according to claim 12 .
前記経過プログラム時間は、最終ページにデータが最近プログラムされた時刻からの経過時間である第1の経過時間と、前記最終ページ以外のページにデータが最近プログラムされた時刻からの経過時間である第2の経過時間とを含み、
前記危険ブロックを検出する前記フラッシュコントローラに関する前記経過プログラム時間は、前記第2の経過時間である、
請求項13記載のストレージ装置。
The elapsed program time is a first elapsed time that is an elapsed time from the time when data is recently programmed on the last page, and an elapsed time that is an elapsed time from the time when data is recently programmed on a page other than the last page. 2 elapsed time,
The elapsed program time for the flash controller for detecting the dangerous block is the second elapsed time.
The storage apparatus according to claim 13 .
JP2015024112A 2015-02-10 2015-02-10 Flash memory module Expired - Fee Related JP5989156B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015024112A JP5989156B2 (en) 2015-02-10 2015-02-10 Flash memory module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015024112A JP5989156B2 (en) 2015-02-10 2015-02-10 Flash memory module

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014505787A Division JP5697796B2 (en) 2011-08-29 2011-08-29 Semiconductor memory device having electrically rewritable nonvolatile semiconductor memory

Publications (2)

Publication Number Publication Date
JP2015111453A JP2015111453A (en) 2015-06-18
JP5989156B2 true JP5989156B2 (en) 2016-09-07

Family

ID=53526174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015024112A Expired - Fee Related JP5989156B2 (en) 2015-02-10 2015-02-10 Flash memory module

Country Status (1)

Country Link
JP (1) JP5989156B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318829A (en) * 2000-05-08 2001-11-16 Funai Electric Co Ltd Device and method for controlling rewriting of flash memory
JP2008276832A (en) * 2007-04-26 2008-11-13 Toshiba Corp Semiconductor memory device and driving method thereof
JP4525816B2 (en) * 2007-09-28 2010-08-18 株式会社デンソー Electronic device and program
JP4489127B2 (en) * 2008-02-29 2010-06-23 株式会社東芝 Semiconductor memory device
JP2011145838A (en) * 2010-01-13 2011-07-28 Toshiba Corp Storage device management device and method for managing storage device

Also Published As

Publication number Publication date
JP2015111453A (en) 2015-06-18

Similar Documents

Publication Publication Date Title
JP5697796B2 (en) Semiconductor memory device having electrically rewritable nonvolatile semiconductor memory
US20200218655A1 (en) Storage system and information processing system for controlling nonvolatile memory
CN107168884B (en) Storage system, information processing system, and method for controlling nonvolatile memory
JP6523193B2 (en) Storage system, information processing system and control method
JP5629391B2 (en) Semiconductor memory device and method for controlling semiconductor memory device
US9298534B2 (en) Memory system and constructing method of logical block
US9111618B2 (en) De-duplication in flash memory module
JP6286622B2 (en) Storage system
JP5956675B2 (en) Storage device and storage device control method
US20180275894A1 (en) Storage system
US20180018113A1 (en) Storage device
US9798475B2 (en) Memory system and method of controlling nonvolatile memory
JP6102515B2 (en) Information processing apparatus, control circuit, control program, and control method
WO2017077624A1 (en) Nonvolatile memory device, and storage device having nonvolatile memory device
JP5858081B2 (en) Memory controller, memory system, and memory control method
US10684785B2 (en) Storage system
JP5989156B2 (en) Flash memory module
JP4636005B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US10915441B2 (en) Storage system having non-volatile memory device
KR20120070408A (en) Methods of non-volitile memory device for controlling block
JP4434171B2 (en) Memory controller and flash memory system
JP3934659B1 (en) Memory controller and flash memory system
JP6260395B2 (en) Memory controller, memory system, and memory control method
JP2007172066A (en) Memory controller and flash memory system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160701

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: 20160802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160809

R150 Certificate of patent or registration of utility model

Ref document number: 5989156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees