JP6523114B2 - Memory control device and memory control method - Google Patents
Memory control device and memory control method Download PDFInfo
- Publication number
- JP6523114B2 JP6523114B2 JP2015182116A JP2015182116A JP6523114B2 JP 6523114 B2 JP6523114 B2 JP 6523114B2 JP 2015182116 A JP2015182116 A JP 2015182116A JP 2015182116 A JP2015182116 A JP 2015182116A JP 6523114 B2 JP6523114 B2 JP 6523114B2
- Authority
- JP
- Japan
- Prior art keywords
- read
- block
- pages
- monitoring
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
本発明は、半導体メモリに対してデータのアクセスを行うメモリ制御装置及びメモリ制御方法に関する。 The present invention relates to a memory control device and a memory control method for accessing data to a semiconductor memory.
近年、メモリ容量の増大化に伴い、ビット単価で優れているNAND型フラッシュメモリが普及している。かかるNAND型フラッシュメモリでは、大容量化、高集積化に伴い、データが正しく読み出せなくなるという問題が顕著化している。ここで、特定のメモリセルが繰り返し読み出されることによって記憶データが破壊されるという、いわゆるリードディスターブ(Read Disturb)を未然に防ぐことが可能なメモリアクセス制御装置が提案されている(例えば、特許文献1)。当該メモリアクセス制御装置では、通常のデータ読出しがなされていないときにメモリからデータを読み出し、その読出データに誤りが生じているか否かを検出する誤り検査を行う。そして、誤りが生じているブロックに対してデータを再書き込みする、いわゆるリフレッシュ処理を実施する。 2. Description of the Related Art In recent years, with the increase of memory capacity, NAND type flash memory superior in bit unit price has become widespread. In such a NAND flash memory, the problem that data can not be read correctly becomes remarkable as the capacity increases and the degree of integration increases. Here, there has been proposed a memory access control device capable of preventing so-called read disturb that the stored data is destroyed by repeatedly reading a specific memory cell (for example, Patent Document) 1). The memory access control device reads data from the memory when normal data reading is not performed, and performs an error check to detect whether an error occurs in the read data. Then, so-called refresh processing is performed to rewrite data in a block in which an error occurs.
ここで、全ブロックを対象として上記のような誤り検査を行うと、リードディスターブの虞があるブロックに対して誤り検査が為される前に、このブロックでリードディスターブによるデータ破壊が生じる虞があった。そこで、特許文献1に記載されているメモリアクセス制御装置では、読み出し回数の多いブロックを誤り検査対象としている。 Here, if the above error check is performed on all the blocks, there is a possibility that the data may be destroyed by the read disturb in this block before the error check is performed on the block having the possibility of the read disturb. The Therefore, in the memory access control device described in Patent Document 1, a block having a large number of reads is subjected to error check.
しかしながら、NAND型フラッシュメモリでは、読み出しが為されていないメモリセルにおいてもリードディスターブが生じる場合がある。よって、特許文献1に開示されている方法では、リードディスターブが生じる可能性が高いブロックが誤り検査対象として選定されない虞があり、データの破壊を未然に防ぐことができない場合があった。 However, in the NAND type flash memory, read disturb may occur even in a memory cell in which reading is not performed. Therefore, in the method disclosed in Patent Document 1, there is a possibility that a block having a high possibility of read disturb may not be selected as an error inspection target, and there is a case where data destruction can not be prevented in advance.
そこで、本発明は、リードディスターブに伴うデータの破壊を未然に且つ確実に防ぐことが可能なメモリ制御装置及びメモリ制御方法を提供することを目的とする。 Therefore, an object of the present invention is to provide a memory control device and a memory control method capable of preventing the destruction of data accompanying read disturb in advance and reliably.
本発明に係るメモリ制御装置は、複数のページが配置されてなるブロックが複数形成されている半導体メモリに対してデータの読出又は書込を行うメモリ制御装置であって、前記データの読出によって読出対象となるブロックから読み出されたページの数を読出回数として前記ブロック毎に計数する読出回数カウンタと、前記読出回数に基づき、複数の前記ブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定する監視対象登録部と、前記読出対象となった前記ブロック又は前記監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数をブロック毎に計数する監視処理を実行する監視部と、前記監視対象ブロックに対応した前記誤りビットの数が所定の第1のエラー閾値より大きい場合に前記監視対象ブロックに対してリフレッシュ処理を施すリフレッシュ部と、前記読出回数を補正する読出回数補正部と、を有し、前記読出回数補正部は、前記読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には前記読出対象となるページの数に対応した値を前記読出回数に加算し、前記読出対象となるブロック内において前記読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値を前記読出回数に加算する。 A memory control device according to the present invention is a memory control device that reads or writes data to a semiconductor memory in which a plurality of blocks are arranged and a plurality of blocks are formed. Based on the read count counter that counts the number of pages read from the target block as the read count for each block, and based on the read count, monitors a block to be monitored for error check from among the plurality of blocks Number of error bits obtained by reading data from the monitoring target registration unit selected as a target block, the block to be read or the monitoring target block, and performing read processing on the read data A monitoring unit that executes a monitoring process that counts each block, and the number of error bits corresponding to the monitoring target block is And a refresh unit that performs a refresh process on the monitoring target block when the first error threshold is larger than a predetermined error threshold, and a read number correction unit that corrects the read number, and the read number correction unit When reading is performed sequentially from pages adjacent to each other in a block to be read, a value corresponding to the number of pages to be read is added to the number of readings, and the block is to be read When the interval between pages to be read is less than n pages (n is an integer of 2 or more), a predetermined fixed value is added to the number of times of reading.
また、本発明に係るメモリ制御方法は、複数のページが配置されてなるブロックが複数形成されている半導体メモリに対してデータの読出又は書込を行うメモリ制御方法であって、前記データの読出によって読出対象となるブロックから読み出されたページの数を読出回数としてブロック毎に計数し、前記読出回数に基づき、複数の前記ブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定し、前記読出対象となった前記ブロック又は前記監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数を前記ブロック毎に計数し、前記監視対象ブロックに対応した前記誤りビットの数が所定の第1のエラー閾値より大きい場合に前記監視対象ブロックに対してリフレッシュ処理を行い、前記読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には前記読出対象となるページの数に対応した値を前記読出回数に加算し、前記読出対象となるブロック内において前記読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値を前記読出回数に加算する。 A memory control method according to the present invention is a memory control method for reading or writing data in a semiconductor memory in which a plurality of blocks in which a plurality of pages are arranged are formed. The number of pages read from the block to be read by this is counted for each block as the number of reads, and based on the number of reads, the block to be monitored for error check is selected as the monitoring target block among the plurality of blocks. Selecting and reading data from the block to be read or the monitoring target block, performing error detection processing on the read data, counting the number of error bits obtained for each block; If the number of error bits corresponding to the monitoring target block is larger than a predetermined first error threshold, the monitoring target block is selected. Refresh is performed, and when reading is performed sequentially from adjacent pages in the block to be read, a value corresponding to the number of pages to be read is added to the number of times of reading, A predetermined fixed value is added to the number of readings when the interval between pages to be read is less than n pages (n is an integer of 2 or more) in a block to be read.
本発明においては、半導体メモリに形成されている複数のブロックのうちから、データの読出回数が多いブロックを誤り検査の監視対象とするにあたり、その読出回数に対して、以下の補正を施すようにしている。すなわち、読出対象となるブロック内において互いに近接したページの各々が読出対象となる場合には、互いに遠隔したページの各々が読出対象となる場合に比べて、1つのページに集中して掛かるストレスが大きくなる。そこで、本発明では、読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には読出対象となるページの数に対応した値を読出回数に加算する。また、読出対象となるページ同士の間隔がnページ分未満となる場合には所定の固定値を読出回数に加算し、読出対象となるページ同士の間隔がnページ分以上となる場合には読出回数の加算を行わないようにしている。 In the present invention, among the plurality of blocks formed in the semiconductor memory, the following corrections are applied to the number of times of reading the block whose number of times of reading of data is to be monitored. ing. That is, when each of the pages adjacent to each other in the block to be read is to be read, stress applied to one page is concentrated compared to the case where each page to be distant from each other is to be read. growing. Therefore, in the present invention, when reading is sequentially performed from pages adjacent to each other in a block to be read, a value corresponding to the number of pages to be read is added to the number of times of reading. Further, if the interval between pages to be read is less than n pages, a predetermined fixed value is added to the number of readings, and if the interval between pages to be read is equal to n pages or more, reading is performed It does not add the number of times.
かかる構成によれば、リードディスターブの影響を反映させた読出回数に基づいて、監視対象となるブロックが選定されるようになるので、リードディスターブに伴うデータの破壊を未然に且つ確実に防ぐことが可能となる。 According to this configuration, the block to be monitored is selected based on the number of readings reflecting the influence of read disturbance, so that data destruction due to read disturbance can be reliably and surely prevented. It becomes possible.
以下、本発明の実施例を図面を参照しつつ詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
図1は、本発明に係るメモリ制御装置としてのメモリコントローラ20を含むメモリ100の構成を示すブロック図である。図1において、メモリセルアレイ10は、例えばNAND型のフラッシュメモリ等のような不揮発性の半導体メモリである。メモリセルアレイ10では、複数のメモリセルによって読出の最小単位となるページが形成され、複数のページでブロックが形成されている。各ブロックは、アドレス順に隣接して配置された複数のページで構成される。 FIG. 1 is a block diagram showing a configuration of a memory 100 including a memory controller 20 as a memory control device according to the present invention. In FIG. 1, a memory cell array 10 is a non-volatile semiconductor memory such as, for example, a NAND flash memory. In the memory cell array 10, a plurality of memory cells form a page serving as a minimum unit of reading, and a plurality of pages form a block. Each block is composed of a plurality of pages arranged adjacent to each other in the address order.
尚、メモリセルアレイ10の特定のブロック内には、優先監視リスト領域SAが設けられている。優先監視リスト領域SAには、電源投入時に優先監視処理(後述する)が施されるブロック(以下、優先監視ブロックと称する)を示す情報として、例えばブロックアドレス又はブロック番号等が記憶されている。よって、電源オフ後も、優先監視ブロックを示す情報は、メモリセルアレイ10の優先監視リスト領域SAに保持される。 In a specific block of the memory cell array 10, a priority monitoring list area SA is provided. In the priority monitoring list area SA, for example, a block address or a block number is stored as information indicating a block (hereinafter referred to as a priority monitoring block) to which a priority monitoring process (described later) is applied when the power is turned on. Therefore, even after power-off, the information indicating the priority monitoring block is held in the priority monitoring list area SA of the memory cell array 10.
メモリコントローラ20は、外部供給された各種のコマンド信号CMD(読出指令、書込指令等)、アドレスAD及びデータDATに基づき、メモリセルアレイ10に対してデータの読出、書込、消去等のアクセスを行う。 The memory controller 20 accesses the memory cell array 10 for reading, writing, erasing and the like based on various externally supplied command signals CMD (read command, write command, etc.), address AD and data DAT. Do.
メモリコントローラ20は、RAM(Random Access Memory)21、誤り検出部22、読出回数カウンタ23、読出回数補正部24、リフレッシュ処理部25、集中監視対象登録部26、優先監視対象登録部27、全体監視部28、集中監視部29及び優先監視部30を含む。 The memory controller 20 includes a random access memory (RAM) 21, an error detection unit 22, a read number counter 23, a read number correction unit 24, a refresh processing unit 25, a centralized monitoring target registration unit 26, a priority monitoring target registration unit 27, and overall monitoring. The unit 28 includes a central monitoring unit 29 and a priority monitoring unit 30.
誤り検出部22は、外部供給された読出指令(以下、読出アクセスと称する)に応じてメモリセルアレイ10から読み出されたデータに対して誤り検出を行い、ブロック毎に、そのブロックに属するページを読み出した際に検出された誤りビットの数を計数する。誤り検出部22は、各ブロックに対応付けして、誤り情報として、例えば誤りビット数を示す情報をRAM21に書き込む。 The error detection unit 22 performs error detection on data read from the memory cell array 10 according to an externally supplied read command (hereinafter referred to as a read access), and for each block, a page belonging to the block Count the number of erroneous bits detected when read out. The error detection unit 22 writes, for example, information indicating the number of error bits in the RAM 21 as error information in association with each block.
読出回数カウンタ23は、読出アクセスによって読出対象となったページを読み出した回数を、ブロック毎に計数する。読出回数カウンタ23は、各ブロックに対応付けして、その読出回数を示す情報をRAM21に書き込む。更に、読出回数カウンタ23は、各ブロックの読出回数の総数を示す情報をRAM21に書き込む。尚、以降、読出アクセスによって読出対象となったページが属するブロックを、”読出対象となったブロック”と称する。 The read number counter 23 counts, for each block, the number of times the page which has become the read target by the read access is read. The read number counter 23 writes information indicating the read number in the RAM 21 in association with each block. Further, the read number counter 23 writes in the RAM 21 information indicating the total number of read numbers of each block. Hereinafter, the block to which the page to be read by the read access belongs is referred to as a "block to be read".
読出回数補正部24は、読出アクセスが為される度に、読出対象となったブロックに対応付けしてRAM21に格納されている読出回数を補正し、その補正が施された読出回数をRAM21に上書きする。尚、読出回数補正部24による読出回数の補正方法については後述する。 The read number correction unit 24 corrects the read number stored in the RAM 21 in association with the block to be read each time a read access is made, and the read number subjected to the correction is stored in the RAM 21. Overwrite. The method of correcting the number of readings by the number of readings correction unit 24 will be described later.
リフレッシュ処理部25は、読出対象となったブロックに対応付けしてRAM21に格納されている誤りビット数が所定の第1のエラー閾値TE1よりも大なる場合に、その読出対象となったブロックに対して、誤り訂正後のデータを再度書き込むという、いわゆるリフレッシュ処理を施す。更に、リフレッシュ処理部25は、各ブロックに対応付けして、そのブロックで実施されたリフレッシュ処理の回数を示す情報をRAM21に書き込む。尚、エラー閾値TE1とは、誤り訂正可能な誤りビット数の上限を表す値である。 If the number of error bits stored in the RAM 21 in association with the block to be read out is larger than a predetermined first error threshold value TE1, the refresh processing unit 25 sets the block to be read out. On the other hand, so-called refresh processing is performed to rewrite the data after error correction. Further, the refresh processing unit 25 writes, in the RAM 21, information indicating the number of times of the refresh process performed in the block in association with each block. The error threshold value TE1 is a value that represents the upper limit of the number of error bits that can be corrected.
集中監視対象登録部26は、読出対象となったブロックに対応付けしてRAM21に格納されている読出回数が所定の第1の監視対象閾値TM1よりも大なる場合に、その読出対象となったブロックを、集中的に誤り検査の監視対象とする為の集中監視対象ブロックとして登録する。また、集中監視対象登録部26は、当該読出アクセス時に、誤り検出部22において所定の第2のエラー閾値TE2(TE1>TE2)よりも多い誤りが検出されたブロックも、集中監視対象ブロックとして登録する。すなわち、集中監視対象登録部26は、上記した集中監視対象ブロックを表す情報として、例えばブロックアドレス、ブロック番号等をRAM21に書き込む。 The centralized monitoring target registration unit 26 has become the reading target when the number of readings stored in the RAM 21 in association with the block to be reading is larger than the predetermined first monitoring target threshold TM1. The block is registered as a centralized monitoring target block for intensively monitoring the error check. In addition, the centralized monitoring target registration unit 26 also registers, as the centralized monitoring target block, a block for which an error detected by the error detection unit 22 is more than a predetermined second error threshold TE2 (TE1> TE2) at the time of the read access. Do. That is, the centralized monitoring target registration unit 26 writes, for example, a block address, a block number, and the like in the RAM 21 as information representing the centralized monitoring target block described above.
優先監視対象登録部27は、RAM21に格納されているブロック毎の誤り情報、読出回数情報、及びリフレッシュ回数情報に基づき、データ破壊直前の状態にあるブロックを、優先的に誤り検査の監視対象とする為の優先監視対象ブロックとして選定する。優先監視対象登録部27は、当該優先監視対象ブロックを表す情報を、メモリセルアレイ10の優先監視リスト領域SAに書き込む。尚、優先監視対象登録部27による優先監視対象ブロックの選定方法については後述する。 The priority monitoring target registration unit 27 prioritizes blocks in a state immediately before data destruction as monitoring targets for error check based on error information for each block, reading count information, and refresh count information stored in the RAM 21. To be selected as a priority monitoring target block. The priority monitoring target registration unit 27 writes information representing the priority monitoring target block in the priority monitoring list area SA of the memory cell array 10. A method of selecting a priority monitoring target block by the priority monitoring target registration unit 27 will be described later.
全体監視部28は、メモリセルアレイ10内の全てのブロックに対して以下のような全体監視処理を行う。すなわち、全体監視部28は、メモリセルアレイ10の全ブロックの全ページに対してデータの読出しを行う。ここでの全体監視処理は全ブロックの全ページを万遍なく読む必要があるため、例えば、全体監視部28は、第1ブロックの第4r(rは正の整数)ページのデータを順に読出し、次に第2ブロックの第4r+1ページのデータを順に読出し、第3ブロックの第4r+2ページのデータを順に読出す。最終ブロックまで4ページおきにデータの読出しが終わったら、第1ブロックに戻り、第4r+1ページのデータを順に読出し、次に第2ブロックの第4r+2ページのデータを順に読出し、第3ブロックの第4r+3ページのデータを順に読み出す。これを繰り返すことで、4ページおきに全ブロックの全ページに対して万遍なくデータの読出しを行うことができる。ここでは、4ページおきで全体監視処理を行う例を示したが、全体監視処理の精度によってデータの読出しを何ページおきに設定してもよい。この際、誤り検出部22にてブロック毎に検出された誤り情報を、各ブロックに対応づけしてRAM21に書き込む。 The overall monitoring unit 28 performs the following overall monitoring process on all the blocks in the memory cell array 10. That is, the entire monitoring unit 28 reads data from all pages of all blocks of the memory cell array 10. Since it is necessary to read all pages of all blocks uniformly in the whole monitoring process here, for example, the whole monitoring unit 28 sequentially reads data of the fourth r (r is a positive integer) page of the first block, Next, the data of the fourth r + 1 page of the second block are sequentially read, and the data of the fourth r + 2 page of the third block are sequentially read. When reading of data is finished every four pages until the final block, the process returns to the first block, sequentially reads data of the 4r + 1 page, then reads data of the 4 r + 2 page of the second block in order, and 4 r + 3 of the third block Read page data in order. By repeating this, it is possible to read out data from all pages of all blocks uniformly every four pages. Here, an example in which the entire monitoring process is performed every four pages is shown, but reading of data may be set every few pages depending on the accuracy of the entire monitoring process. At this time, the error detection unit 22 writes error information detected for each block in the RAM 21 in association with each block.
集中監視部29は、RAM21に格納されている集中監視対象ブロックを表す情報に基づき、以下のような集中監視処理を実行する。すなわち、集中監視部29は、先ず、メモリセルアレイ10内の集中監視対象ブロックに対応したブロック内の全ページからデータを読み出す。そして、集中監視部29は、誤り検出部22において検出された誤り情報を、集中監視対象ブロックに対応したブロックに対応づけしてRAM21に書き込む。 The centralized monitoring unit 29 executes the following centralized monitoring processing based on the information representing the centralized monitoring target block stored in the RAM 21. That is, the centralized monitoring unit 29 first reads data from all pages in the block corresponding to the centralized monitoring target block in the memory cell array 10. Then, the centralized monitoring unit 29 writes the error information detected by the error detection unit 22 in the RAM 21 in association with the block corresponding to the centralized monitoring target block.
また、集中監視部29は、読出アクセスの対象となったブロックに対応づけしてRAM21に格納されている読出回数が第1の監視対象閾値TM1に到達した場合に、当該ブロックに対して上記した集中監視処理を行う。すなわち、集中監視部29は、補正読出回数が第1の監視対象閾値TM1に到達したブロックからデータを読み出し、この際、誤り検出部22において検出された誤りビットの数を示す誤り情報を、このブロックに対応付けしてRAM21に書き込む。尚、集中監視部29は、一旦、その読出回数が第1の監視対象閾値TM1に到達したブロックに対しては、それ以降、所定回数分の読出アクセスが為される度に、上記した集中監視処理を行う。 Further, when the number of times of reading stored in the RAM 21 in correspondence with the block which is the target of the read access reaches the first monitoring target threshold value TM1, the centralized monitoring unit 29 described above for the block. Perform centralized monitoring processing. That is, the concentration monitoring unit 29 reads out data from the block in which the number of correction readings reaches the first monitoring target threshold value TM1. At this time, the error information indicating the number of error bits detected in the error detection unit 22 is It writes in RAM21 corresponding to a block. The centralized monitoring unit 29 performs the centralized monitoring described above every time a read access is performed a predetermined number of times thereafter for a block whose read number has reached the first monitoring target threshold TM1. Do the processing.
優先監視部30は、電源が投入されると、メモリセルアレイ10の優先監視リスト領域SAから優先監視対象ブロックを表す情報を読み出し、メモリセルアレイ10に対して以下のような優先監視処理を実行する。すなわち、優先監視部30は、先ず、メモリセルアレイ10内の優先監視対象ブロックに対応したブロックからデータを読み出す。そして、優先監視部19は、誤り検出部22において検出された誤りビットの数を示す誤り情報を、優先監視対象ブロックに対応したブロックに対応づけしてRAM21に書き込む。 When the power is turned on, the priority monitoring unit 30 reads information representing a priority monitoring target block from the priority monitoring list area SA of the memory cell array 10, and executes the following priority monitoring process on the memory cell array 10. That is, the priority monitoring unit 30 first reads data from the block corresponding to the priority monitoring target block in the memory cell array 10. Then, the priority monitoring unit 19 writes error information indicating the number of error bits detected by the error detection unit 22 in the RAM 21 in association with the block corresponding to the priority monitoring target block.
尚、電源投入時には、RAM21に格納されている誤りビット数、読出回数、リフレッシュ回数、ブロックアドレス(ブロック番号)の値は全て、例えばゼロに初期化される。
次に、メモリ100に対して読出アクセスが為された場合に、メモリコントローラ20が実行する動作について説明する。
When the power is turned on, the values of the number of error bits, the number of times of reading, the number of times of refreshing, and the block address (block number) stored in the RAM 21 are all initialized to, for example, zero.
Next, an operation performed by the memory controller 20 when a read access is made to the memory 100 will be described.
読出アクセスに応じて、メモリコントローラ20は、その読出アクセスによって読出対象となったページからデータを読み出し、データDATとして出力する。更に、メモリコントローラ20は、その読出対象となった各ページのアドレスを示す読出アドレス情報をRAM21に書き込む。 In response to the read access, the memory controller 20 reads data from the page to be read by the read access and outputs it as data DAT. Furthermore, the memory controller 20 writes read address information indicating the address of each page to be read to the RAM 21.
その後、メモリコントローラ20は、図2に示す読出後処理に従った制御を実行する。 Thereafter, memory controller 20 executes control in accordance with the post-reading process shown in FIG.
図2において、先ず、メモリコントローラ20の読出回数カウンタ23は、上記した読出動作によって、読出対象となったブロック内で実施された読出の回数を、当該ブロックに対応付けしてRAM21に格納されている読出回数に加算することにより、読出回数を更新する(ステップS1)。 In FIG. 2, first, the read number counter 23 of the memory controller 20 stores the number of reads performed in the block to be read by the above-described read operation in the RAM 21 in association with the block. The number of times of reading is updated by adding to the number of times of reading (step S1).
次に、当該読出回数を、更新された読出回数としての読出回数RNが、第1の監視対象閾値TM1よりも大であるか否かを判定する(ステップS2)。 Next, it is determined whether the number of readings RN as the number of updated readings is larger than the first monitoring target threshold TM1 (step S2).
ステップS2において、読出回数RNが第1の監視対象閾値TM1よりも大であると判定された場合、メモリコントローラ20の集中監視部29が、当該読出アクセスの対象となったブロックに対して、上記した集中監視処理を実行する(ステップS3)。 If it is determined in step S2 that the read number RN is larger than the first monitoring target threshold value TM1, the centralized monitoring unit 29 of the memory controller 20 performs the above-described operation on the block that is the target of the read access. The centralized monitoring process is executed (step S3).
一方、ステップS2において、読出回数RNが第1の監視対象閾値TM1以下であると判定された場合、メモリコントローラ20の誤り検出部22は、読出アクセスの対象となったブロックから読み出されたデータに誤り検出処理を施し、この際得られた誤りビットの数を、誤りビット数ENとして取得する(ステップS4)。 On the other hand, when it is determined in step S2 that the read number RN is equal to or less than the first monitoring target threshold value TM1, the error detection unit 22 of the memory controller 20 reads data read from the block that is the target of read access. An error detection process is performed on the image data, and the number of error bits obtained at this time is obtained as the number of error bits EN (step S4).
次に、メモリコントローラ20は、誤りビット数ENが第1のエラー閾値TE1よりも大であるか否かを判定する(ステップS5)。 Next, the memory controller 20 determines whether the number of error bits EN is larger than the first error threshold TE1 (step S5).
ステップS5において、誤りビット数ENが第1のエラー閾値TE1よりも大であると判定された場合、メモリコントローラ20のリフレッシュ処理部25は、読出アクセスの対象となったブロックに対して、上記したリフレッシュ処理を施す(ステップS6)。つまり、リフレッシュ処理部25は、ブロック内で検出された誤りビットの数が誤り訂正可能な上限数(TE1)を超えた場合に、このブロックにリフレッシュ処理を施すのである。尚、当該リフレッシュ処理により、読出アクセスの対象となったブロックに対応付けしてRAM21に格納されている読出回数はゼロに初期化される。更に、このリフレッシュ処理により、読出アクセスの対象となったブロックに対応付けしてRAM21に格納されているリフレッシュ回数はインクリメントされる。 When it is determined in step S5 that the error bit number EN is larger than the first error threshold value TE1, the refresh processing unit 25 of the memory controller 20 executes the above-described process for the block that is the target of the read access. A refresh process is performed (step S6). That is, when the number of error bits detected in the block exceeds the error correctable upper limit number (TE1), the refresh processing unit 25 performs the refresh process on the block. By the refresh process, the number of times of reading stored in the RAM 21 in association with the block which is the target of the read access is initialized to zero. Furthermore, the number of refreshes stored in the RAM 21 in association with the block which is the target of the read access is incremented by this refresh process.
一方、ステップS5において、誤りビット数ENが第1のエラー閾値TE1以下であると判定された場合、メモリコントローラ20は、当該誤りビット数ENが第2のエラー閾値TE2よりも大であるか否かを判定する(ステップS7)。 On the other hand, if it is determined in step S5 that the error bit number EN is less than or equal to the first error threshold value TE1, the memory controller 20 determines whether the error bit number EN is greater than the second error threshold value TE2. It is determined (step S7).
ステップS7において、誤りビット数ENが第2のエラー閾値TE2よりも大であると判定された場合、メモリコントローラ20の読出回数補正部24は、読出アクセスの対象となったブロックに対応付けしてRAM21に格納されている読出回数を、監視対象閾値TM2と同一値に置換する(ステップS8)。すなわち、誤り訂正可能な数、つまりTE1より小であり且つTE2より大となる数のビット誤りが検出された場合には、このブロックでの読出回数を、強制的に監視対象閾値TM2と同一値に置換するのである。 If it is determined in step S7 that the error bit number EN is larger than the second error threshold value TE2, the read number correction unit 24 of the memory controller 20 associates the block with the block that is the target of the read access. The number of readings stored in the RAM 21 is replaced with the same value as the monitoring target threshold value TM2 (step S8). That is, when a number of bit errors that can be corrected for errors, that is, smaller than TE1 and larger than TE2, is detected, the number of readings in this block is forcibly set equal to the monitoring target threshold TM2. To replace.
一方、ステップS7において、誤りビット数ENが第2のエラー閾値TE2以下であると判定された場合、読出回数補正部24は、図3に示す読出回数増加補正処理を実行する(ステップS9)。 On the other hand, when it is determined in step S7 that the error bit number EN is equal to or less than the second error threshold value TE2, the read number correction unit 24 executes read number increase correction processing shown in FIG. 3 (step S9).
図3において、先ず、読出回数補正部24は、読出アクセスによってRAM21に格納された、各ページの読出アドレスを示す情報に基づき、この読出アクセスが、互いに隣接して配置されているページ同士からその配置順にデータの読み出しを行う、シーケンシャルな読出アクセスであるか否かを判定する(ステップS31)。ステップS31において、シーケンシャルな読出アクセスであると判定された場合、読出回数補正部24は、読出対象となったページの数に対応した値を有する加算値ADを設定する(ステップS32)。つまり、シーケンシャルな読出アクセスによって読出対象となったページの数が多いほど、加算値ADも大となる。尚、読出対象となったページの数に対応した値を有する加算値ADを設定するにあたり、図4に示すように、読出対象となったページ数がN(Nは2以上の整数)に到るまではそのページ数に対応した大きさの加算値ADを設定し、ページ数がN以上となった場合には、限度値ULで固定される加算値ADを設定するようにしても良い。 In FIG. 3, first, based on the information indicating the read address of each page stored in the RAM 21 by the read access, the read number correction unit 24 starts the read access from the pages arranged adjacent to each other. It is determined whether or not it is a sequential read access in which data is read out in the order of arrangement (step S31). If it is determined in step S31 that the read access is a sequential read access, the read number correction unit 24 sets an addition value AD having a value corresponding to the number of pages to be read (step S32). That is, as the number of pages targeted for reading by the sequential read access increases, the addition value AD also increases. When setting the addition value AD having a value corresponding to the number of pages targeted for reading, as shown in FIG. 4, the number of pages targeted for reading reaches N (N is an integer of 2 or more). The addition value AD may be set to a size corresponding to the number of pages until the number of pages reaches N, and the addition value AD fixed at the limit value UL may be set when the number of pages is N or more.
一方、ステップS31において、シーケンシャルな読出アクセスではないと判定された場合、読出回数補正部24は、読出対象となったページ同士の間隔が、n(nは2以上の整数)ページ分以上離間しているか否かを判定する(ステップS33)。 On the other hand, when it is determined in step S31 that the read access is not a sequential read access, the read count correction unit 24 separates the pages to be read from each other by n (n is an integer of 2 or more) pages or more. It is determined whether or not it is (step S33).
ステップS33において、読出対象となったページ同士の間隔がnページ分未満であると判定された場合、読出回数補正部24は、所定の固定値K(Kは正の整数)を加算値ADとして設定する(ステップS34)。 If it is determined in step S33 that the interval between the pages to be read is less than n pages, the read number correction unit 24 sets the predetermined fixed value K (K is a positive integer) as the addition value AD. It sets (step S34).
一方、ステップS33において読出対象となったページ同士の間隔がnページ分以上離間していると判定された場合、読出回数補正部24は、ゼロを加算値ADとして設定する(ステップS35)。尚、ステップS33において読出対象となったページ同士の間隔がnページ分以上離間していると判定された場合には、読出回数補正部24は、読出回数への加算を実施しないようにしても良い。 On the other hand, when it is determined in step S33 that the interval between the pages to be read is separated by n pages or more, the read number correction unit 24 sets zero as the addition value AD (step S35). If it is determined in step S33 that the interval between pages to be read is separated by n pages or more, the read number correction unit 24 does not perform addition to the read number. good.
上記したステップS32、S34又はS35の実行後、読出回数補正部24は、加算値ADを、読出アクセスの対象となったブロックに対応付けしてRAM21に格納されている読出回数に加算し、その加算結果を新たな読出回数としてRAM21に上書きする(ステップS36)。かかるステップS36の実行後、読出回数補正部24は、読出回数増加補正ルーチンを抜けて、図2に示すステップS9を終了する。 After execution of step S32, S34 or S35 described above, the read number correction unit 24 adds the addition value AD to the read number stored in the RAM 21 in association with the block targeted for read access, and The addition result is overwritten on the RAM 21 as a new number of readings (step S36). After execution of step S36, the read number correction unit 24 exits the read number increase correction routine and ends step S9 shown in FIG.
図2においてステップS8又はS9の終了後、メモリコントローラ20の優先監視対象登録部27は、優先監視対象登録処理を実行する(ステップS10)。 After step S8 or S9 in FIG. 2 ends, the priority monitoring target registration unit 27 of the memory controller 20 executes priority monitoring target registration processing (step S10).
すなわち、優先監視対象登録部27は、先ず、RAM21に格納されているブロック毎の誤り情報、読出回数情報、リフレッシュ回数情報に基づき、データ破壊となる可能性が高い状態にあるブロックを選定する。すなわち、優先監視対象登録部27は、各ブロックのうちで、誤りビット数が所定の第3のエラー閾値TE3より大であり、リフレッシュ回数が所定の実行回数閾値TXより大であり、読出回数が第3の監視対象閾値TM3(TM1>TM3)より大となるブロックを、破壊の危険度が高い優先監視対象ブロックとして選定する。そして、優先監視対象登録部27は、当該優先監視対象ブロックを表す情報、例えばブロックアドレス又はブロック番号を、メモリセルアレイ10の優先監視リスト領域SAに書き込む。尚、複数の優先監視対象ブロックが検出された場合には、優先監視対象登録部27は、各優先監視対象ブロックを示す情報を優先監視リスト領域SAに追記して行く。この際、優先監視対象登録部27は、これら優先監視対象ブロックのうちで、リフレッシュ回数が多い順に上記した優先監視処理を実行させるように、優先監視対象ブロックを示す情報を優先監視リスト領域SAに追記して行く。尚、リフレッシュ回数が同一である場合には、優先監視対象登録部27は、誤りビットの数が多い順に優先監視処理を実行させるように、優先監視対象ブロックを示す情報を優先監視リスト領域SAに追記して行く。よって、優先監視部30は、リフレッシュ回数が多いブロック、誤りビット数が多いブロック、読出回数が多いブロックの順に優先順位を設定し、その優先順位に従った順に優先監視処理を実行する。 That is, the priority monitoring target registration unit 27 first selects a block in a state in which the possibility of data destruction is high, based on error information, read count information, and refresh count information for each block stored in the RAM 21. That is, in each block, the priority monitoring target registration unit 27 has the number of error bits larger than the predetermined third error threshold TE3, the number of refreshes is larger than the predetermined number of executions threshold TX, and the number of reads A block larger than the third monitoring target threshold TM3 (TM1> TM3) is selected as a priority monitoring target block having a high risk of destruction. Then, the priority monitoring target registration unit 27 writes information indicating the priority monitoring target block, such as a block address or a block number, in the priority monitoring list area SA of the memory cell array 10. When a plurality of priority monitoring target blocks are detected, the priority monitoring target registration unit 27 adds information indicating each priority monitoring target block to the priority monitoring list area SA. At this time, the priority monitoring target registration unit 27 sets information indicating a priority monitoring target block in the priority monitoring list area SA so that the priority monitoring process described above is executed among the priority monitoring target blocks in descending order of the number of refreshes. I will add it. If the number of refreshes is the same, the priority monitoring target registration unit 27 sends information indicating the priority monitoring target block to the priority monitoring list area SA so that the priority monitoring process is executed in descending order of the number of error bits. I will add it. Therefore, the priority monitoring unit 30 sets the priority in the order of the block having a large number of refreshes, the block having a large number of error bits, and the block having a large number of readings, and executes the priority monitoring process in the order according to the priority.
かかるステップS10による優先監視対象登録処理の実行後、メモリコントローラ20は、図2に示す読出後処理の実行を終了し、外部からのアクセス待ち状態に移行する。 After execution of the priority monitoring target registration process in step S10, the memory controller 20 ends the execution of the post-reading process shown in FIG. 2 and shifts to an external access waiting state.
このアクセス待ち状態の間に、上記した全体監視部28による全体監視処理、及び集中監視部29による集中監視処理を実行するようにしても良い。更に、電源投入に応じて優先監視部30が実行する優先監視処理の直後に、読出アクセスが為されるか否かに拘わらず、全体監視部28による全体監視処理を実行するようにしても良い。尚、全体監視処理の実行中に読出アクセスが為された場合には、この全体監視処理を一旦中断し、図2に示す読出後処理の終了後、その中断した箇所から全体監視処理を行う。また、優先監視部30による優先監視処理に関しては、電源投入時点のみならず、電源投入後、所定周期毎に実行するようにしても良い。 While in the access waiting state, the overall monitoring process by the overall monitoring unit 28 and the centralized monitoring process by the centralized monitoring unit 29 may be executed. Furthermore, the overall monitoring process by the overall monitoring unit 28 may be executed immediately after the priority monitoring process executed by the priority monitoring unit 30 in response to the power-on, regardless of whether or not the read access is made. . If read access is made during execution of the overall monitoring process, the overall monitoring process is temporarily interrupted, and after the end of the post-reading process shown in FIG. 2, the overall monitoring process is performed from the interrupted point. The priority monitoring process by the priority monitoring unit 30 may be performed not only at the time of power-on but also at predetermined intervals after power-on.
以上のように、図1に示すメモリコントローラ20は、ブロック毎に、そのブロック内で読出対象となったページの数を読出回数として計数する。メモリコントローラ20は、読出回数が所定の閾値(TM1)よりも多くなったブロックについては、読出動作に伴う劣化が進行していると判定し、当該ブロックを集中監視対象ブロックとして登録し、全ブロックのうちで集中監視対象ブロックに対して集中的に監視処理を施す。つまり、集中監視対象ブロックの各々からデータを読み出して誤り検出を行い、ブロック毎に誤りビットの数を集計する。この際、誤りビットの数が所定の閾値(TE1)を超えたブロックに対しては、メモリコントローラ20は、リフレッシュ処理(図2のステップS6)を施すことにより、メモリセルの劣化に伴うデータ破壊を回避する。 As described above, the memory controller 20 shown in FIG. 1 counts, for each block, the number of pages to be read in the block as the number of times of reading. The memory controller 20 determines that deterioration due to the read operation is progressing for a block whose number of times of reading is larger than a predetermined threshold (TM1), registers the block as a block to be centrally monitored, and all blocks The central monitoring target block is centrally monitored. That is, data is read from each of the centralized monitoring target blocks to perform error detection, and the number of error bits is totaled for each block. At this time, the memory controller 20 performs the refresh process (step S6 in FIG. 2) on the block where the number of error bits exceeds the predetermined threshold (TE1), thereby destroying the data accompanying the deterioration of the memory cell. To avoid.
この際、全ブロックのうちで、比較的劣化が進行していると推定される集中監視対象ブロックを集中的に監視するようにしたので、早い段階でリフレッシュ処理を必要とするブロックを選定することができる。 At this time, since centralized monitoring target blocks, which are estimated to be relatively deteriorated, are intensively monitored among all blocks, it is necessary to select a block requiring refresh processing at an early stage. Can.
しかしながら、全ブロックのうちから集中監視対象ブロックを選定する為に用いる読出回数情報は、電源が遮断されるとゼロに初期化されてしまう。よって、破壊寸前まで劣化が進んでいるブロックが存在しているにも拘わらず、電源投入時点では、このブロックに対応した読出回数はゼロである。従って、このブロックが集中監視対象ブロックに登録される前に、当該ブロックに対する読出アクセスによってデータ破壊が生じてしまう虞がある。 However, the read number information used to select the centralized monitoring target block from among all the blocks is initialized to zero when the power is shut off. Therefore, the number of readings corresponding to this block is zero at the time of power-on, although there is a block whose deterioration is about to be destroyed. Therefore, before this block is registered in the centralized monitoring target block, data corruption may occur due to read access to the block.
そこで、メモリコントローラ20では、読出アクセス対象となったブロック内で誤り訂正可能な程度の数(TE1より小でありTE2より大となる数)のビット誤りが検出された場合には、このブロックでの読出回数を、強制的に監視対象閾値TM2と同一値置換する(図2のS8)ようにしている。尚、監視対象閾値TM2としては、上記した
監視対象閾値TM1と同一値を用いるようにしても良い。これにより、当該ブロックは、集中監視対象ブロックとして登録されることになり、直ちに集中監視処理が施されるようになる。
Therefore, in the memory controller 20, when a bit error of a number (a number smaller than TE1 and a number larger than TE2) to which error correction is possible is detected in the block subjected to read access, The number of times of reading is forcibly replaced with the monitoring target threshold value TM2 by the same value (S8 in FIG. 2). As the monitoring target threshold TM2, the same value as the above-described monitoring target threshold TM1 may be used. As a result, the block is registered as a centralized monitoring target block, and centralized monitoring processing is immediately performed.
これにより、劣化が進んでいるブロックが存在しているにも拘わらず、電源オフによって当該ブロックに対応付けされてRAM21に格納されている読出回数がゼロに初期化されてしまっても、このブロックに対して、早い段階で集中監視処理を施す、或いは優先監視対象ブロックとして選定することが可能となる。よって、データ破壊を未然に防ぐことが可能となる。 As a result, even though there is a block whose deterioration is progressing, even if the number of readings stored in the RAM 21 corresponding to the block is initialized to zero by power-off, this block On the other hand, centralized monitoring processing can be performed at an early stage, or it can be selected as a priority monitoring target block. Thus, data corruption can be prevented in advance.
更に、メモリコントローラ20では、全ブロックのうちで、劣化が進行しており且つ破壊の危険度が高いブロックを優先監視対象ブロックとして登録するようにしている。すなわち、メモリコントローラ20は、読出回数が所定の閾値(TM1)より大である(第1の条件)、誤りビット数が所定の閾値(TE3)より大である(第2の条件)、リフレッシュ回数が所定回数(TX)より大である(第3の条件)のうちのいずれか1つの条件を満たすブロックを、優先監視対象ブロックとして選定する。つまり、ブロックの劣化度合いは、読出回数のみならず、実施されたリフレッシュ処理の回数、誤りビットの数にも反映されるので、これらを考慮して破壊の危険度が高いブロックを精度良く検知するようにしたのである。そして、メモリコントローラ20は、当該優先監視対象ブロックを示す情報(ブロックアドレス又はブロック番号)を、不揮発性半導体メモリとしてのメモリセルアレイ20に書き込む。よって、優先監視対象ブロックを示す情報は、電源オフ後も、メモリセルアレイ20に保持される。そこで、メモリコントローラ20は、電源投入に応じて、先ず、メモリセルアレイ20に格納されている優先監視対象ブロックを示す情報を読み出し、当該優先監視対象ブロックに対して監視処理を施すのである。例えば、電源オフの前に、監視対象閾値TM1に到達しなかった為、集中監視処理対象とならなかったブロックに対しても、監視対象閾値TM3に達していれば優先監視対象となるため、電源投入時に優先監視処理が施される。つまり、電源オフ時に読出回数はゼロに初期化されるので、再び1から読出回数の計数が為されることになるが、読出回数が多いブロックの履歴を残すことで、このブロックを優先的に監視することが可能となる。 Furthermore, in the memory controller 20, among all the blocks, a block whose deterioration is in progress and which has a high risk of destruction is registered as a priority monitoring target block. That is, in the memory controller 20, the number of times of reading is larger than the predetermined threshold (TM1) (first condition), the number of error bits is larger than the predetermined threshold (TE3) (second condition), and the number of times of refreshing A block satisfying any one of the conditions (third condition) of which is larger than a predetermined number of times (TX) is selected as a priority monitoring target block. That is, the degree of deterioration of the block is reflected not only in the number of readings but also in the number of refresh operations and the number of error bits. Therefore, in consideration of these, blocks with a high risk of destruction are accurately detected. It did so. Then, the memory controller 20 writes the information (block address or block number) indicating the priority monitoring target block in the memory cell array 20 as the nonvolatile semiconductor memory. Therefore, the information indicating the priority monitoring target block is held in the memory cell array 20 even after the power is turned off. Therefore, the memory controller 20 first reads the information indicating the priority monitoring target block stored in the memory cell array 20 in response to power on, and performs monitoring processing on the priority monitoring target block. For example, since the monitoring target threshold TM1 is not reached before the power is turned off, the monitoring target threshold TM3 is also applied to the blocks that are not the central monitoring processing target. Priority monitoring processing is performed at the time of injection. That is, since the number of readings is initialized to zero when the power is turned off, the number of readings is counted from 1 again, but this block is given priority by leaving a history of blocks having a large number of readings. It becomes possible to monitor.
従って、上記した優先監視対象ブロックの登録及び優先監視処理によれば、破壊寸前まで劣化が進んでいるブロックに対して、早い段階でリフレッシュ処理を施すことが可能となる。これにより、破壊寸前まで劣化が進んでいるブロックが存在していても、データ破壊を未然に防ぐことが可能となる。 Therefore, according to the registration of the priority monitoring target block and the priority monitoring processing described above, it is possible to perform the refresh processing at an early stage on a block whose deterioration is about to be destroyed. This makes it possible to prevent data destruction even if there is a block whose deterioration is about to be destroyed.
ところで、前述したようにブロックの劣化は読出回数の増加につれて進行するが、例えばNAND型のフラッシュメモリ等では、読出対象となったページのみならず、そのページに隣接する、少なくとも1つのページにもストレスが掛かって劣化するという、いわゆるリードディスターブが生じる。 By the way, although the deterioration of the block progresses as the number of reading increases as mentioned above, for example, in the NAND type flash memory etc., not only the page which is the reading object but also at least one page adjacent to the page. There is a so-called lead disturb, which is stressed and degraded.
以下に、リードディスターブの影響により、読出対象となったページに隣接する1ページ分の範囲にストレスが掛かる場合を例にとって、各ページに掛かる読出動作に伴うストレス(以下、読出ストレスと称する)について、図5(a)〜図5(c)を参照しつつ説明する。尚、図5(a)〜図5(c)は、1つのブロック内に形成されている8ページ分の領域を模式的に表す図である。 Hereinafter, stress caused by a read operation applied to each page (hereinafter referred to as read stress) will be described taking a case where stress is applied to a range of one page adjacent to the page to be read due to the influence of read disturb. This will be described with reference to FIGS. 5 (a) to 5 (c). 5 (a) to 5 (c) are diagrams schematically showing an area of eight pages formed in one block.
例えば、図5(a)に示すように互いに2ページ以上離間した位置に配置されているページP3及びP7が読出対象(斜線にて示す)となる場合、ページP3と共に当該P3に隣接するP2及びP4にもストレスが掛かる。更に、ページP7と共に当該P7に隣接するP6及びP8にもストレスが掛かる。よって、この際、ページP2〜P4、及びP6〜P8に夫々1回分の読出ストレスが掛かる。 For example, as shown in FIG. 5A, when pages P3 and P7 arranged at positions separated by two or more pages from each other are to be read (indicated by hatching), P2 adjacent to P3 together with page P3. Stress is also applied to P4. Furthermore, stress is also applied to P6 and P8 adjacent to the page P7 as well as the page P7. Therefore, in this case, a read stress of one time is applied to each of the pages P2 to P4 and P6 to P8.
また、図5(b)に示すように互いに1ページ離間した位置に配置されているページP3及びP5が読出対象となると、ページP3と共に当該P3に隣接するP2及びP4にもストレスが掛かる。更に、ページP5と共に当該P5に隣接するP4及びP6にもストレスが掛かる。よって、この際、ページP2、P3、P5及びP6には夫々1回分の読出ストレスが掛かるが、ページP4には2回分の読出ストレスが掛かる。 Further, as shown in FIG. 5B, when the pages P3 and P5 arranged at positions separated by one page from each other are to be read, stress is applied to the pages P2 and P4 adjacent to the page P3 as well as the page P3. Furthermore, stress is also applied to P4 and P6 adjacent to the page P5 together with the page P5. Therefore, in this case, although reading stress of one time is applied to pages P2, P3, P5 and P6, reading stress of two times is applied to page P4.
また、図5(c)に示すように互いに隣接して配置されているページP3及びP4を連続して読出対象とする、いわゆるシーケンシャルな読出が為されると、ページP3と共に当該P3に隣接するP2及びP4にもストレスが掛かる。更に、ページP4と共に当該P4に隣接するP3及びP5にもストレスが掛かる。よって、この際、ページP2及び5に対しては1回分の読出ストレスが掛かるが、ページP3及びP4には夫々2回分の読出ストレスが掛かることになる。 In addition, as shown in FIG. 5C, when so-called sequential reading is performed in which pages P3 and P4 arranged adjacent to each other are continuously read, they are adjacent to the page P3 together with page P3. Stress is also applied to P2 and P4. Furthermore, stress is also applied to P3 and P5 adjacent to the page P4 as well as the page P4. Therefore, in this case, although read stress of one time is applied to pages P2 and P5, read stress of two times is applied to pages P3 and P4, respectively.
このように、図5(a)〜図5(c)に示される読出アクセスでは、読出回数は全て2回である。ところが、読出アクセスの対象となるページ同士の間隔が、図5(b)に示すようにリードディスターブの影響を受ける範囲(P2、P4、P4、P6)が重なる程度に短い場合には、図5(a)に示すように、その範囲(P2、P4、P6、P8)が互いに重ならない程度に離間している場合に比べて、1ページに集中する読出ストレスは大となる。また、この図5(b)に示す状態よりも、図5(c)に示すように、互いに隣接するページ同士を順次読出対象とする、いわゆるシーケンシャルアクセスを行う場合の方が1ページに集中する読出ストレスは大となる。 Thus, in the read access shown in FIGS. 5A to 5C, the number of readings is all two. However, as shown in FIG. 5B, when the interval between the pages to be subjected to the read access is short to such an extent that the ranges (P2, P4, P4, P6) affected by the read disturb overlap, as shown in FIG. As shown in (a), the read stress concentrated on one page is greater than when the ranges (P2, P4, P6, P8) are separated to such an extent that they do not overlap each other. Further, as shown in FIG. 5C, in the case of performing so-called sequential access in which pages adjacent to each other are sequentially read, more concentration on one page than in the state shown in FIG. 5B. The read stress is large.
よって、図5(a)〜図5(c)に示される例では読出回数が全て2回となるものの、ブロック劣化の進行度は、図5(c)の形態で読出アクセスを行った場合が最も早く、図5(a)の形態で読出アクセスを行った場合が最も遅くなる。 Therefore, although the number of readings is all two in the example shown in FIGS. 5A to 5C, the degree of progress of the block deterioration is obtained when the reading access is performed in the form of FIG. 5C. The earliest is when the read access is performed in the form of FIG. 5A.
そこで、メモリコントローラ20では、リードディスターブに伴ってメモリセルに掛かるストレスを考慮した読出回数となるように、実際に実行された読出の回数に対して図3に示すような補正を施すようにしている。 Therefore, the memory controller 20 performs correction as shown in FIG. 3 with respect to the number of readings actually executed so that the number of readings takes into consideration the stress applied to the memory cells due to the read disturbance. There is.
すなわち、図5(a)に示すように、読出対象となったページ同士の間隔が、nページ分以上よりも大となる場合、つまりリードディスターブの影響を受ける範囲が重ならない場合には、ゼロを有する加算値ADを実際の読出回数に加算する(図3のS35、S36)。つまり、この際、読出回数への加算を行わない。また、図5(b)に示すように、読出対象となったページ同士の間隔がn(nは2以上の整数)ページ分未満となる場合、つまりリードディスターブの影響を受ける範囲が重なる場合には、所定の固定値Kを有する加算値ADを、実際の読出回数に加算する(図3のS34、S36)。また、図5(c)に示すように、隣接ページ同士が読出対象となるシーケンシャルアクセスが為された場合、つまり読出対象となったページの読み出しに伴うリードディスターブの影響が、読出対象となった隣接ページにも及ぶ場合には、そのページ数に対応した値を有する加算値ADを、実際の読出回数に加算(図3のS32、S36)する。例えば、シーケンシャルアクセスされるページ数がw(wは2以上の整数)ページとなる場合には、加算値ADを”w”又は”w”に所定の係数を乗算した値に設定し、この加算値ADを、実際の読出回数に加算する。
尚、図5(a)〜図5(c)では、リードディスターブの影響を受ける範囲が隣接する1ページ分だけとなっているが、隣接する2ページ分、或いは隣接する3ページ分以上を、リードディスターブの影響を受ける範囲と捉えて加算値ADを設定するようにしても良い。この際、読出対象となったページから遠いページほど、掛かるストレスが弱いので、読出対象となったページからの距離に応じて、隣接する複数のページに対応させて加算する加算値ADの値を設定するようにしても良い。つまり、読出対象となったページから遠いページほど加算値ADの値を小さくするのである。
That is, as shown in FIG. 5A, if the interval between pages to be read out is larger than n pages or more, that is, if the range affected by read disturbance does not overlap, zero. Is added to the actual number of readings (S35, S36 in FIG. 3). That is, at this time, addition to the number of readings is not performed. In addition, as shown in FIG. 5B, when the interval between the pages to be read is less than n (n is an integer of 2 or more) pages, that is, the ranges affected by the read disturb overlap. Adds the addition value AD having a predetermined fixed value K to the actual number of readings (S34 and S36 in FIG. 3). Further, as shown in FIG. 5C, in the case where sequential access in which adjacent pages are to be read is performed, that is, the influence of read disturb associated with reading of the page to be read is the read object. If it extends to the adjacent page, the addition value AD having a value corresponding to the number of pages is added to the actual number of readings (S32, S36 in FIG. 3). For example, when the number of pages to be sequentially accessed is w (w is an integer of 2 or more) pages, the addition value AD is set to a value obtained by multiplying “w” or “w” by a predetermined coefficient, and this addition The value AD is added to the actual number of reads.
In FIGS. 5 (a) to 5 (c), the range affected by the read disturbance is only for one adjacent page, but for two adjacent pages or three or more adjacent pages, The added value AD may be set as a range affected by the read disturb. At this time, since the stress applied to the page farther from the read target page is less stressed, the value of the addition value AD to be added corresponding to a plurality of adjacent pages according to the distance from the read target page is added. You may set it. That is, the value of the addition value AD is decreased as the page is further from the page to be read.
したがって、かかる読出回数補正によれば、リードディスターブの影響を反映させた読出回数に基づき、監視対象とするブロックが選定されるようになるので、リードディスターブに伴うデータ破壊を未然に且つ確実に防ぐことが可能となる。 Therefore, according to the read number correction, since the block to be monitored is selected based on the read number reflecting the influence of read disturbance, data destruction due to read disturbance can be surely and surely prevented. It becomes possible.
要するに、メモリ制御装置としてのメモリコントローラ20は、以下の読出回数カウンタ、監視対象登録部、監視部、及び読出回数補正部を有することにより、リードディスターブに伴うデータの破壊を未然に且つ確実に防ぐのである。つまり、読出回数カウンタ(23)は、データの読出によって読出対象となるブロックから読み出されたページの数を読出回数としてブロック毎に計数する。監視対象登録部(26、27)は、この読出回数に基づき、複数のブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定する。監視部(29、30)は、読出対象となったブロック又は監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数をブロック毎に計数する監視処理を実行する。リフレッシュ部(25)は、監視対象ブロックに対応した誤りビットの数が所定の第1のエラー閾値(TE1)より大きい場合に監視対象ブロックに対してリフレッシュ処理を施す。そして、読出回数補正部(24)は、読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には読出対象となるページの数に対応した値を読出回数に加算する(図3のS31、S32、S36)。また、読出回数補正部は、読出対象となるブロック内において読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値(K)を読出回数に加算する(図3のS33、S34、S36)。また、読出回数補正部は、読出対象となるブロック内において読出対象となるページ同士の間隔がnページ分以上となる場合には読出回数への加算を行わない(図3のS33、S35、S36)。 In short, the memory controller 20 as a memory control device has the following read number counter, monitoring target registration unit, monitoring unit, and read number correction unit to prevent data destruction accompanying read disturb in a reliable manner. It is That is, the read number counter (23) counts the number of pages read from the block to be read by the data read for each block as the read number. The monitoring target registration unit (26, 27) selects a block to be a monitoring target of the error check from among the plurality of blocks as the monitoring target block based on the number of times of reading. The monitoring unit (29, 30) reads data from the block to be read or the monitoring target block and counts the number of error bits obtained by performing error detection processing on the read data for each block Execute monitoring processing. The refresh unit (25) performs the refresh process on the monitoring target block when the number of error bits corresponding to the monitoring target block is larger than a predetermined first error threshold (TE1). The read number correction unit (24) adds a value corresponding to the number of pages to be read to the number of reads when reading is sequentially performed from adjacent pages in a block to be read S31, S32, S36 of FIG. In addition, the read number correction unit reads a predetermined fixed value (K) when the interval between pages to be read in the block to be read is less than n pages (n is an integer of 2 or more). The number is added (S33, S34, S36 in FIG. 3). Further, the read number correction unit does not perform addition to the read number when the interval between pages to be read within the block to be read is equal to or larger than n pages (S33, S35, and S36 in FIG. 3). ).
10 メモリセルアレイ
20 メモリコントローラ
22 誤り検出部
23 読出回数カウンタ
24 読出回数補正部
27 優先監視対象登録部
30 優先監視部
SA 優先監視リスト領域
DESCRIPTION OF SYMBOLS 10 Memory cell array 20 Memory controller 22 Error detection part 23 Reading number counter 24 Reading number correction part 27 Priority monitoring object registration part 30 Priority monitoring part SA Priority monitoring list area
Claims (6)
前記データの読出によって読出対象となるブロックから読み出されたページの数を読出回数として前記ブロック毎に計数する読出回数カウンタと、
前記読出回数に基づき、複数の前記ブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定する監視対象登録部と、
前記読出対象となった前記ブロック又は前記監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数をブロック毎に計数する監視処理を実行する監視部と、
前記監視対象ブロックに対応した前記誤りビットの数が所定の第1のエラー閾値より大きい場合に前記監視対象ブロックに対してリフレッシュ処理を施すリフレッシュ部と、
前記読出回数を補正する読出回数補正部と、を有し、
前記読出回数補正部は、
前記読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には前記読出対象となるページの数に対応した値を前記読出回数に加算し、前記読出対象となるブロック内において前記読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値を前記読出回数に加算することを特徴とするメモリ制御装置。 A memory control device for reading or writing data to a semiconductor memory in which a plurality of blocks are arranged and a plurality of blocks are arranged.
A read number counter that counts for each block the number of pages read from a block to be read by reading the data as the number of reads;
A monitoring target registration unit that selects a block to be a monitoring target of an error check from among the plurality of blocks based on the number of times of reading, as a monitoring target block;
A monitoring process is performed to read data from the block to be read or the monitoring target block, and count the number of error bits obtained by performing an error detection process on the read data for each block. The monitoring department,
A refresh unit that performs a refresh process on the monitoring target block when the number of error bits corresponding to the monitoring target block is larger than a predetermined first error threshold;
And a read number correction unit that corrects the read number.
The read number correction unit
When reading is performed sequentially from adjacent pages in the block to be read, a value corresponding to the number of pages to be read is added to the number of readings, and in the block to be read A memory control apparatus characterized in that a predetermined fixed value is added to the number of readings when the interval between the pages to be read is less than n pages (n is an integer of 2 or more).
前記監視部は、前記読出対象となった前記ブロックに対応した前記読出回数が前記第1の監視閾値よりも大なる第2の監視閾値よりも大きい場合に前記読出対象となった前記ブロックに前記監視処理を実行し、
前記読出回数補正部は、前記読出対象となった前記ブロックに対応した前記誤りビットの数が前記第1のエラー閾値より小なる第2のエラー閾値よりも大きい場合には、前記読出対象となった前記ブロックに対応した前記読出回数の値を前記第2の監視閾値の値に置換することを特徴とする請求項1記載のメモリ制御装置。 The monitoring target registration unit selects a block corresponding to the number of readings having a value larger than a first monitoring threshold among the plurality of blocks as the monitoring target block.
The monitoring unit is configured to, when the number of readings corresponding to the block to be read out is larger than a second monitoring threshold that is larger than the first monitoring threshold, to the block to be read out. Execute monitoring process,
The read number correction unit becomes the read target when the number of error bits corresponding to the block to be read is larger than a second error threshold smaller than the first error threshold. The memory control device according to claim 1, wherein the value of the number of times of reading corresponding to the block is replaced with the value of the second monitoring threshold.
前記監視部は、電源投入に応じて前記半導体メモリから前記監視対象ブロックを示す情報を読み出し、前記情報によって示される前記監視対象ブロックに対して前記監視処理を施すことを特徴とする請求項2記載のメモリ制御装置。 The monitoring target registration unit, from among the plurality of blocks, a first condition that said read count is the first large than superintendent Mi閾 value, the number of the error bits is larger than a third error threshold A block satisfying at least one of the second condition and the third condition in which the number of times of execution of the refresh process is larger than a predetermined number of times of execution threshold is selected as the monitoring target block; Writing information indicating a target block in the semiconductor memory;
Claim wherein the monitoring unit, which reads the information indicating the supervising object block from the semiconductor memory in response to power-on, and characterized by applying the monitoring process to the front Ki監 visual target block indicated by said information The memory control device according to 2 .
前記データの読出によって読出対象となるブロックから読み出されたページの数を読出回数としてブロック毎に計数し、
前記読出回数に基づき、複数の前記ブロックのうちから誤り検査の監視対象となるブロックを監視対象ブロックとして選定し、
前記読出対象となった前記ブロック又は前記監視対象ブロックからデータを読み出し、読み出されたデータに対して誤り検出処理を施して得られた誤りビットの数を前記ブロック毎に計数し、
前記監視対象ブロックに対応した前記誤りビットの数が所定の第1のエラー閾値より大きい場合に前記監視対象ブロックに対してリフレッシュ処理を行い、
前記読出対象となるブロック内において互いに隣接するページから順に読み出しが為される場合には前記読出対象となるページの数に対応した値を前記読出回数に加算し、前記読出対象となるブロック内において前記読出対象となるページ同士の間隔がnページ(nは2以上の整数)分未満となる場合には所定の固定値を前記読出回数に加算することを特徴とするメモリ制御方法。 A memory control method for reading or writing data to a semiconductor memory in which a plurality of blocks are arranged and a plurality of blocks are arranged.
The number of pages read from the block to be read by reading the data is counted for each block as the number of readings,
Based on the number of times of reading, a block to be monitored for error check is selected from among the plurality of blocks as a monitoring target block,
Reading data from the block to be read or the monitoring target block, counting the number of error bits obtained by performing error detection processing on the read data for each block;
Refresh processing is performed on the monitoring target block if the number of error bits corresponding to the monitoring target block is larger than a predetermined first error threshold;
When reading is performed sequentially from adjacent pages in the block to be read, a value corresponding to the number of pages to be read is added to the number of readings, and in the block to be read A memory control method characterized in that a predetermined fixed value is added to the number of readings when the interval between pages to be read is less than n pages (n is an integer of 2 or more).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015182116A JP6523114B2 (en) | 2015-09-15 | 2015-09-15 | Memory control device and memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015182116A JP6523114B2 (en) | 2015-09-15 | 2015-09-15 | Memory control device and memory control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017058870A JP2017058870A (en) | 2017-03-23 |
JP6523114B2 true JP6523114B2 (en) | 2019-05-29 |
Family
ID=58390438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015182116A Active JP6523114B2 (en) | 2015-09-15 | 2015-09-15 | Memory control device and memory control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6523114B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019160197A (en) * | 2018-03-16 | 2019-09-19 | 富士通株式会社 | Storage device, control program and control method |
JP7074519B2 (en) | 2018-03-19 | 2022-05-24 | キオクシア株式会社 | Memory system and memory control method |
KR102639696B1 (en) * | 2018-05-23 | 2024-02-23 | 에스케이하이닉스 주식회사 | Memory system, controller and operation method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5265883B2 (en) * | 2007-05-24 | 2013-08-14 | 株式会社メガチップス | Memory access system |
JP2010160816A (en) * | 2010-03-29 | 2010-07-22 | Toshiba Corp | Control method of semiconductor memory device |
JP5815388B2 (en) * | 2011-12-02 | 2015-11-17 | 株式会社メガチップス | Memory access control apparatus and method |
JP2014235757A (en) * | 2013-05-30 | 2014-12-15 | 株式会社東芝 | Controller |
-
2015
- 2015-09-15 JP JP2015182116A patent/JP6523114B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017058870A (en) | 2017-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11189353B2 (en) | Memory system and memory control method | |
US9146809B2 (en) | ECC method for double pattern flash memory | |
US10388395B2 (en) | Storage device and bad block assigning method thereof | |
US9514843B2 (en) | Methods for accessing a storage unit of a flash memory and apparatuses using the same | |
US9535785B2 (en) | ECC method for flash memory | |
JP5815388B2 (en) | Memory access control apparatus and method | |
US20130159798A1 (en) | Non-volatile memory device and operating method thereof | |
JP6523114B2 (en) | Memory control device and memory control method | |
JP2019192316A (en) | Nonvolatile storage device, memory control device, and memory control method | |
US20180277227A1 (en) | Semiconductor memory device and read control method thereof | |
JP5604313B2 (en) | Memory access control device | |
TWI648743B (en) | Semiconductor device and method of operating same | |
TWI659299B (en) | Data storage apparatus and method for preventing data error using the same | |
JP2020042890A (en) | Memory system and controlling method of memory system | |
US11176988B2 (en) | Control method for memory and non-transitory computer-readable media | |
JP6423282B2 (en) | Memory control device and memory control method | |
JP5535113B2 (en) | Memory system | |
CN109710445B (en) | Memory correction method and electronic equipment | |
US10297304B1 (en) | Memory device and operating method thereof | |
TWI633435B (en) | Methods for migrating data to avoid read disturbance and apparatuses using the same | |
US11119854B2 (en) | Method of controlling verification operations for error correction of non-volatile memory device, and non-volatile memory device | |
TWI764569B (en) | semiconductor memory device | |
JP6448254B2 (en) | Memory control device and memory control method | |
JP6700082B2 (en) | Semiconductor device, battery monitoring system, and data reading method | |
JP6306777B2 (en) | Semiconductor memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180622 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181211 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190222 |
|
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: 20190402 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190425 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6523114 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |