CN111916141B - Flash memory management method and flash memory - Google Patents

Flash memory management method and flash memory Download PDF

Info

Publication number
CN111916141B
CN111916141B CN201910619159.4A CN201910619159A CN111916141B CN 111916141 B CN111916141 B CN 111916141B CN 201910619159 A CN201910619159 A CN 201910619159A CN 111916141 B CN111916141 B CN 111916141B
Authority
CN
China
Prior art keywords
block
page
swap
flash memory
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910619159.4A
Other languages
Chinese (zh)
Other versions
CN111916141A (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.)
Asolid Technology Co Ltd
Original Assignee
Asolid Technology Co 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 Asolid Technology Co Ltd filed Critical Asolid Technology Co Ltd
Publication of CN111916141A publication Critical patent/CN111916141A/en
Application granted granted Critical
Publication of CN111916141B publication Critical patent/CN111916141B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

The invention provides a flash memory management method and a flash memory. The flash memory management method comprises the following steps: receiving a first reading instruction to read a first page of a first block, wherein the first block corresponds to a single-level storage mode; when the first block is a data block and the error correction code value of the first page is greater than a first threshold value, performing exchange operation on the first block and the exchange block; and performing swapping operation on the first block and the swap block when the first block is a system block and the number of times of reading the first block is greater than the second threshold or the ECC value of the first page is greater than the third threshold.

Description

Flash memory management method and flash memory
Technical Field
The present invention relates to a flash memory management method and a flash memory, and more particularly, to a flash memory management method and a flash memory for handling read disturb.
Background
When a page of the flash memory is read a certain number of times, the Error Correction Code (ECC) value of the read page gradually increases, and the same happens to the adjacent pages of the page. This is because after a large number of read cycles, the memory cells of the flash memory may be soft programmed (soft programmed) to other states, resulting in errors in stored data. The above problem is also called read disturb. Therefore, how to deal with read disturb of flash memory is an objective that should be addressed by those skilled in the art.
Disclosure of Invention
The invention provides a flash memory management method and a flash memory, which can solve the problem of reading interference of the flash memory.
The invention provides a flash memory management method and a flash memory. The flash memory management method comprises the following steps: receiving a first reading instruction to read a first page of a first block, wherein the first block corresponds to a single-level storage mode; when the first block is a data block and the error correction code value of the first page is greater than a first threshold value, performing exchange operation on the first block and the exchange block; and when the first block is a system block and the reading times of the first block are more than a second threshold value or the error correction code value of the first page is more than a third threshold value, exchanging the first block and the exchange block.
The invention provides a flash memory, comprising: the memory unit module comprises a plurality of entity blocks, and each entity block comprises a plurality of entity pages; and the controller is coupled with the storage unit module. The controller receives a first reading instruction to read a first page of a first block, wherein the first block corresponds to a single-level storage mode; when the first block is a data block and the error correction code value of the first page is greater than a first threshold value, performing exchange operation on the first block and the exchange block; and when the first block is a system block and the reading times of the first block are more than a second threshold value or the error correction code value of the first page is more than a third threshold value, exchanging the first block and the exchange block.
Based on the above, the flash memory management method and the flash memory of the invention read the first page of the first block in the single-level storage mode. And performing swapping operation on the first block when the first block is a data block and the ECC value of the first page is greater than a first threshold value. When the first block is a system block and the reading times of the first block are greater than a second threshold value or the ECC value of the first page is greater than a third threshold value, performing swapping operation on the first block. Therefore, the reading interference caused by the increase of the page reading times can be avoided.
In order to make the aforementioned and other features and advantages of the invention more comprehensible, embodiments accompanied with figures are described in detail below.
Drawings
FIG. 1 is a block diagram of a flash memory according to an embodiment of the present invention;
FIG. 2 is a flowchart of reading SLC blocks according to a flash memory management method of an embodiment of the invention;
FIG. 3 is a flowchart of reading TLC blocks according to a flash memory management method of the present invention;
fig. 4 is a flow chart of a block swapping sequence according to an embodiment of the invention.
The reference numbers illustrate:
100: flash memory
110: controller
120: memory cell module
S201 to S207: step of reading SLC block
S301 to S308: step of reading TLC Block
S401 to S405: step of block exchange sequence
Detailed Description
FIG. 1 is a block diagram of a flash memory according to an embodiment of the invention.
Referring to fig. 1, a flash memory 100 according to an embodiment of the invention includes a controller 110 and a memory cell module 120 coupled to the controller 110. The controller 110 may perform management operations with respect to the memory cell module 120. The memory cell module 120 includes a plurality of physical blocks, and each physical block includes a plurality of physical pages. Most of the physical blocks are used to store general data, also called data blocks. A few physical blocks are used to store system data such as page mapping tables, which are also called system blocks. The blocks may be further divided into Single Level Cell block (SLC block) and Triple Level Cell block (TLC block).
In an embodiment, when the controller 110 receives a first read command to read a first page of a first block of the single-level storage mode, the controller 110 first determines that the first block is a data block or a system block. When the first block is a data block, the controller 110 further determines whether the error correction code value (e.g., the number of error bits) of the first page is greater than a first threshold value (e.g., 70% of the maximum number of error bits). When the ECC value of the first page is greater than the first threshold, the controller 110 performs a swap operation on the first block and the swap block (e.g., swap the first block data to an erased new block). When the first block is a system block (i.e., the first block stores page mapping table information), the controller 110 further determines whether the number of times the first block is read is greater than a second threshold or whether the ECC value of the first page is greater than a third threshold. When the number of times of reading the first block is greater than the second threshold or the ECC value of the first page is greater than a third threshold (e.g., 100 ECC bits), the controller 110 performs a swap operation on the first block and the swap block (e.g., swap the first block data to an erased new block).
In one embodiment, when the controller 110 receives a second read command to read a second page of the second block of the third-order memory mode and the ecc check of the second page fails, the controller 110 performs a re-read (re-read) operation on the second page and determines whether the second page passes the ecc check. If the second page passes the ECC check after the re-read operation and the ECC value of the second page is greater than the fourth threshold (e.g., 200 ECC bits), the controller 110 performs a swap operation on the second block and the swap block. If the second page fails the ECC check after the re-read operation, the controller 110 performs a retry (retry) operation on the second page and determines whether the second page after the retry operation passes the ECC check. If the second page passes the ECC check after the retry operation, the controller 110 performs a swap operation on the second block and the swap block (e.g., swap the second block to a cache merge line). It is noted that the retry operation includes changing the read voltage of the second page and reading the second page with the changed read voltage.
Since the number of pages of the block in the third-order memory mode is greater than that of the block in the single-order memory mode, the controller 110 may spend more time performing the block swap operation in the third-order memory mode. Therefore, when another block (e.g., the third block corresponding to the third-order memory mode) is performing the swap operation, the controller 110 may first send the second block to the queue for waiting, and then perform the swap operation of the second block after the third block completes the swap operation. In one embodiment, the controller 110 may prioritize the swapping of important pages of blocks in the queue. The important page is, for example, the second page and the page with the page index value in the same block within a predetermined range before and after the second page (i.e., the neighboring page of the second page). In another embodiment, the system block may have the highest switching priority, the data block may have the next highest switching priority, and the third rank memory mode block has the lowest switching priority. In another embodiment, when the third-order memory mode blocks are switched, the switching operation of the system block or the data block is generated, and after the important pages in the third-order memory mode blocks are switched, the switching operation of the remaining pages except the important pages can be performed after the switching operation of the system block or the data block is finished in the queue and/or after the switching operation of the important pages in other third-order memory mode blocks in the queue is finished.
In addition, the second page after the retry operation passes the error correction code check to indicate that the controller 110 has available the correct data of the second page. Therefore, the controller 110 can perform the swap operation on the second page in advance before the swap operation between the second block and the swap block, that is, immediately after the retry operation passes the ECC check, the swap operation is performed on the second page. The swap operation is started before the first read instruction or the second read instruction ends.
It is noted that although the second block is described as belonging to the third-level memory mode, the invention is not limited thereto. In another embodiment, the second chunk may also belong to a multi-Level Cell (MLC) or a Quad-Level Cell (QLC) that is not a single-Level storage mode.
FIG. 2 is a flow chart of reading a block of SLC (single level cell) according to a flash memory management method of an embodiment of the invention.
Referring to fig. 2, in step S201, a first page of a single-level memory mode block of a flash memory is read.
In step S202, the read block is a data block.
In step S203, it is determined whether the ecc value of the first page is greater than a first threshold.
If the ECC value of the first page is greater than the first threshold, the block is swapped in step S204, and the process ends in step S205. If the ECC value of the first page is not greater than the first threshold, in step S205, the process ends.
In step S206, the read block is a system block.
In step S207, it is determined whether the number of times the block is read is greater than a second threshold or whether the ecc value of the first page is greater than a third threshold. If the number of times the block is read is greater than the second threshold or the ECC value of the first page is greater than the third threshold, the block is swapped in step S204, and the process ends in step S205. If the number of times the block is read is not greater than the second threshold and the ECC value of the first page is not greater than the third threshold, in step S205, the process ends.
Fig. 3 is a flowchart of reading a TLC (third order cell) block according to a flash memory management method of the present invention.
Referring to fig. 3, in step S301, a second page of a third-level block of the flash memory is read.
In step S302, when the error correction code check of the second page fails, a re-reading operation is performed on the second page.
In step S303, it is determined whether the second page passes the error correction code check.
If the second page passes the ECC check after the re-read operation, in step S304, it is determined whether the ECC value of the second page is greater than the fourth threshold.
If the ECC value of the second page is greater than the fourth threshold, the second block and the swap block are swapped in step S305, and the process ends in step S306.
If the ECC value of the second page is not greater than the fourth threshold, in step S306, the process ends.
If the second page fails the ECC check after the re-read operation, in step S307, a retry operation is performed on the second page. Next, in step S308, it is determined whether the second page after the retry operation passes the ECC check.
If the second page after the retry operation passes the ECC check, in step S305, the second block and the swap block are swapped.
If the second page after the retry operation does not pass the ECC check, in step S306, the process ends.
Fig. 4 is a flow chart of a block swapping sequence according to an embodiment of the invention.
Referring to fig. 4, in step S401, the priority of the block to be exchanged is determined according to the block type.
In step S402, the SLC system block has the highest priority.
In step S403, the SLC data block has the next highest priority.
In step S404, the TLC block has the lowest priority.
In step S405, a block swap operation is performed starting from the block with the highest priority.
In summary, the flash memory management method and the flash memory of the present invention read the first page of the first block in the single-level storage mode. And performing swapping operation on the first block when the first block is a data block and the ECC value of the first page is greater than a first threshold value. When the first block is a system block and the reading times of the first block are greater than a second threshold value or the ECC value of the first page is greater than a third threshold value, performing swapping operation on the first block. The flash memory management method and the flash memory can also read the second page of the second block of the third-order storage mode. And when the error correction code value of the second page is larger than the fourth threshold value or the second page after the retry operation passes the error correction code check, exchanging the second block and the exchange block. Therefore, reading interference caused by the increase of the page reading times can be avoided.
Although the present invention has been described with reference to the above embodiments, it should be understood that various changes and modifications can be made therein by those skilled in the art without departing from the spirit and scope of the invention as defined in the appended claims.

Claims (10)

1. A method for flash memory management, comprising:
receiving a first reading instruction to read a first page of a first block, wherein the first block corresponds to a single-level storage mode;
when the first block is a data block and the error correction code value of the first page is greater than a first threshold value, performing an exchange operation on the first block and an exchange block; and
and when the first block is a system block and the reading times of the first block are greater than a second threshold value or the error correction code value of the first page is greater than a third threshold value, performing the swapping operation on the first block and the swap block.
2. The flash memory management method of claim 1, further comprising:
receiving a second read instruction to read a second page of a second block, wherein the second block corresponds to a three-level memory mode;
when the error correction code check of the second page fails, re-reading the second page and judging whether the second page passes the error correction code check;
if the second page passes the ECC check after the re-read operation and the ECC value of the second page is greater than a fourth threshold value, performing the swap operation on the second block and the swap block; and
if the second page does not pass the ECC check after the re-reading operation, performing a retry operation on the second page and determining whether the second page passes the ECC check, and if the second page passes the ECC check after the retry operation, performing the swap operation on the second block and the swap block, wherein the retry operation includes changing a read voltage of the second page and reading the second page with the changed read voltage.
3. The flash memory management method of claim 2, further comprising: when the third block corresponding to the third-order storage mode is performing the swap operation, the second block is transmitted to a queue, and the swap operation of the second block is performed after the third block completes the swap operation.
4. The flash memory management method of claim 2, further comprising: when the second page after the retry operation passes the error correction code check, performing the swap operation on the second page before the swap operation of the second block and the swap block.
5. The flash memory management method of claim 2, wherein the swap operation begins before the first read instruction or the second read instruction ends.
6. A flash memory, comprising:
the memory unit module comprises a plurality of entity blocks, and each entity block comprises a plurality of entity pages; and
a controller coupled to the memory cell module, wherein the controller
Receiving a first reading instruction to read a first page of a first block, wherein the first block corresponds to a single-level storage mode;
when the first block is a data block and the error correction code value of the first page is greater than a first threshold value, performing an exchange operation on the first block and an exchange block; and
and when the first block is a system block and the reading times of the first block are greater than a second threshold value or the error correction code value of the first page is greater than a third threshold value, performing the swapping operation on the first block and the swap block.
7. The flash memory of claim 6, wherein the controller receives a second read command to read a second page of a second block, wherein the second block corresponds to a third order memory mode;
when the error correction code check of the second page fails, the controller performs re-reading operation on the second page and judges whether the second page passes the error correction code check;
if the second page passes the ECC check after the re-read operation and the ECC value of the second page is greater than a fourth threshold value, the controller performs the swap operation on the second block and the swap block; and
if the second page does not pass the ECC check after the reread operation, the controller retries the second page and determines whether the second page passes the ECC check, and if the second page passes the ECC check after the retrial operation, the controller performs the swap operation on the second block and the swap block, wherein the retrial operation includes changing a read voltage of the second page and reading the second page with the changed read voltage.
8. The flash memory according to claim 7, wherein the controller transfers the second block to a queue while a third block corresponding to the third rank storage mode is performing the swap operation, and performs the swap operation of the second block after the third block completes the swap operation.
9. The flash memory of claim 7, wherein the controller performs the swap operation on the second page before the swap operation of the second block with the swap block when the second page after the retry operation passes the error correction code check.
10. The flash memory of claim 7, wherein the swap operation begins before the first read instruction or the second read instruction ends.
CN201910619159.4A 2019-05-09 2019-07-10 Flash memory management method and flash memory Active CN111916141B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW108116111A TWI697006B (en) 2019-05-09 2019-05-09 Flash memory management method and flash memory
TW108116111 2019-05-09

Publications (2)

Publication Number Publication Date
CN111916141A CN111916141A (en) 2020-11-10
CN111916141B true CN111916141B (en) 2022-05-31

Family

ID=72176458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910619159.4A Active CN111916141B (en) 2019-05-09 2019-07-10 Flash memory management method and flash memory

Country Status (2)

Country Link
CN (1) CN111916141B (en)
TW (1) TWI697006B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252020A (en) * 2007-02-22 2008-08-27 海力士半导体有限公司 Read method of memory device
CN102073563A (en) * 2011-02-23 2011-05-25 深圳市江波龙电子有限公司 Flash memory equipment, and method and system for managing storage blocks in same
CN104360957A (en) * 2014-11-26 2015-02-18 上海爱信诺航芯电子科技有限公司 Method for maintaining flash memory wear leveling
WO2015027700A1 (en) * 2013-08-28 2015-03-05 华为技术有限公司 Method and device for repairing error data
US9159423B1 (en) * 2012-09-28 2015-10-13 Cadence Design Systems, Inc. Robust erase page detection logic for NAND flash memory devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4073799B2 (en) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ Memory system
CN101645026B (en) * 2008-08-07 2011-11-16 创惟科技股份有限公司 Storage device for updating flash memory pages according to error-correcting codes and method thereof
TWI508068B (en) * 2012-07-25 2015-11-11 Silicon Motion Inc Method for managing data stored in flash memory and associated memory device and controller
TWI608350B (en) * 2016-03-09 2017-12-11 慧榮科技股份有限公司 Memory device and control unit thereof, and data movement method for memory device
CN108958961B (en) * 2017-05-22 2021-11-30 上海宝存信息科技有限公司 Data storage device and data error management method
TWI650763B (en) * 2018-05-14 2019-02-11 慧榮科技股份有限公司 Method, memory device and electronic device and page availability management system for performing page availability management of memory device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252020A (en) * 2007-02-22 2008-08-27 海力士半导体有限公司 Read method of memory device
CN102073563A (en) * 2011-02-23 2011-05-25 深圳市江波龙电子有限公司 Flash memory equipment, and method and system for managing storage blocks in same
US9159423B1 (en) * 2012-09-28 2015-10-13 Cadence Design Systems, Inc. Robust erase page detection logic for NAND flash memory devices
WO2015027700A1 (en) * 2013-08-28 2015-03-05 华为技术有限公司 Method and device for repairing error data
CN104360957A (en) * 2014-11-26 2015-02-18 上海爱信诺航芯电子科技有限公司 Method for maintaining flash memory wear leveling

Also Published As

Publication number Publication date
CN111916141A (en) 2020-11-10
TW202042246A (en) 2020-11-16
TWI697006B (en) 2020-06-21

Similar Documents

Publication Publication Date Title
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
US8732552B2 (en) Block management method, memory controller and memory storage device thereof
US20090307412A1 (en) Memory management method for non-volatile memory and controller using the same
US20130013853A1 (en) Command executing method, memory controller and memory storage apparatus
CN111651371B (en) Asymmetric plane management method, data storage device and controller thereof
CN112289360A (en) Read retry threshold voltage selection
CN110795270B (en) Solid state storage device and reading retry method thereof
US20130159605A1 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
US9009442B2 (en) Data writing method, memory controller and memory storage apparatus
US20160054935A1 (en) Data storing method and memory controller and memory storage device using the same
CN107045423B (en) Memory device and data access method thereof
CN113360303A (en) Method for managing data storage to improve data reliability and related equipment
US10509583B1 (en) Memory management method and storage controller
CN103106148B (en) Block management method, storage controller and storage storing device
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN111916141B (en) Flash memory management method and flash memory
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus
US11487655B2 (en) Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations
CN113094307B (en) Mapping information management method, memory storage device and memory controller
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
TWI752784B (en) Unbalanced plane management method, associated data storage device and controller thereof
US20200293224A1 (en) Electronic device, related controller circuit and method
CN116185309B (en) Data processing method and data storage device
CN118069070B (en) Write-back method and device for reducing soft error rate of memory

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant