[go: up one dir, main page]

CN111611101B - Method and device for adjusting flash memory read data throughput rate - Google Patents

Method and device for adjusting flash memory read data throughput rate Download PDF

Info

Publication number
CN111611101B
CN111611101B CN202010322810.4A CN202010322810A CN111611101B CN 111611101 B CN111611101 B CN 111611101B CN 202010322810 A CN202010322810 A CN 202010322810A CN 111611101 B CN111611101 B CN 111611101B
Authority
CN
China
Prior art keywords
flash memory
data
ldpc
iteration
adjusting
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
CN202010322810.4A
Other languages
Chinese (zh)
Other versions
CN111611101A (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.)
Zhuhai Miaocun Technology Co ltd
Original Assignee
Zhuhai Miaocun 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 Zhuhai Miaocun Technology Co ltd filed Critical Zhuhai Miaocun Technology Co ltd
Priority to CN202010322810.4A priority Critical patent/CN111611101B/en
Publication of CN111611101A publication Critical patent/CN111611101A/en
Application granted granted Critical
Publication of CN111611101B publication Critical patent/CN111611101B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The technical scheme of the invention comprises a method and a device for adjusting the throughput rate of flash memory read data, which are applied to the stability of flash memory data storage and erasing, and comprise the following steps: the LDPC decoding unit is monitored in real time, iteration thresholds of the LDPC decoding unit for different data types are set, and real-time iteration times are acquired; comparing the obtained iteration times with the threshold iteration times of the LDPC, and adjusting the error distribution and the number of the flash memory based on different data types. The beneficial effects of the invention are as follows: the stability of the flash memory reading efficiency is ensured; and the LDPC iteration times are prevented from increasing to influence the system throughput rate.

Description

Method and device for adjusting flash memory read data throughput rate
Technical Field
The invention relates to the field of data storage, in particular to a method and a device for adjusting the throughput rate of flash memory read data.
Background
At present, many flash memory controllers use LDPC error correction codes, and the decoding algorithm of LDPC is an iterative algorithm, and the iteration times are not fixed, so the decoding speed is not fixed. Generally, the number of iterations is related to the distribution and the number of errors, and the more the errors are, the more the number of iterations is, but for a certain number of errors, the error distribution can cause the change of the number of iterations, and the difference is not small. Errors with the use of flash memory, the errors are increasing, resulting in slower and slower decoding speeds.
Disclosure of Invention
The invention aims to at least solve one of the technical problems in the prior art, and provides a method for adjusting the throughput rate of flash memory read data, so as to stabilize the read rate of flash memory equipment.
The technical scheme of the invention comprises a method for adjusting the throughput rate of flash memory read data, which is characterized in that: s100, performing real-time monitoring on the LDPC decoding unit, setting iteration thresholds of the LDPC decoding unit for different data types, and collecting real-time iteration times; s200, comparing the iteration times obtained in the S100 with the threshold iteration times of LDPC, and adjusting error distribution and quantity of the flash memory based on different data types.
According to the method for adjusting the flash memory read data throughput rate, wherein S100 specifically comprises S110, setting the iteration number threshold of the LDPC decoding unit, and setting the iteration threshold of the key data and the common data; s120, if the decoded data is key data, executing the step S200 on the flash memory when the iteration number threshold is exceeded; if the decoded data is normal data, taking average decoding times of a plurality of normal data, comparing the average decoding times with an iteration time threshold, and executing the S200 on the flash memory when the average decoding times exceed the iteration time threshold.
The method for adjusting the data throughput rate of flash memory includes, but is not limited to, rewriting the flash memory and changing the comparison voltage during flash memory reading.
The invention also comprises a device for adjusting the throughput rate of flash memory read data, for implementing the method of any one of claims 1-4, characterized in that: the flash memory device is used for storing and erasing data; the flash memory controller comprises an LDPC control unit, an LDPC encoding unit, an LDPC decoding unit and an interface; the LDPC decoding unit is used for performing iterative error correction when the flash memory device stores and erases data; the LDPC control unit is used for monitoring the LDPC decoding unit in real time, setting iteration thresholds of the LDPC decoding unit for different data types, collecting real-time iteration times, comparing the iteration times with the threshold iteration times of the LDPC, adjusting error distribution and quantity of the flash memory based on the different data types, and sending error correction instructions to the flash memory device; the interface comprises one or more data transmission channels and completes data interaction among the LDPC decoding unit, the LDPC control unit, the LDPC encoding unit and the flash memory device.
According to the device for adjusting the flash memory read data throughput rate, the monitoring unit and the control unit are arranged on a data storage page and/or a data storage block of the flash memory device.
The device for adjusting the flash memory read data throughput rate according to the above, wherein the LDPC decoding unit further comprises: and if the data is detected to be required to be rewritten, the data is encoded by the LDPC encoding unit and is retransmitted to the flash memory device.
The beneficial effects of the invention are as follows: the stability of the flash memory reading efficiency is ensured; and the LDPC iteration times are prevented from increasing to influence the system throughput rate.
Drawings
The invention is further described below with reference to the drawings and examples;
FIG. 1 is a schematic view of a device according to an embodiment of the present invention;
FIG. 2 is a general flow diagram according to an embodiment of the present invention;
fig. 3a and 3b show decoding throughput and error distribution caused by different iteration numbers.
Detailed Description
Reference will now be made in detail to the present embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein the accompanying drawings are used to supplement the description of the written description so that one can intuitively and intuitively understand each technical feature and overall technical scheme of the present invention, but not to limit the scope of the present invention.
In the description of the present invention, the description of the first and second is only for the purpose of distinguishing technical features, and should not be construed as indicating or implying relative importance or implying the number of technical features indicated or the precedence of the technical features indicated.
In the description of the present invention, unless explicitly defined otherwise, terms such as arrangement and the like should be construed broadly, and those skilled in the art can reasonably determine the specific meaning of the terms in the present invention in combination with the specific contents of the technical scheme.
Fig. 1 is a schematic view showing the structure of an apparatus according to an embodiment of the present invention. The flash memory controller comprises an LDPC control unit, an LDPC encoding unit, an LDPC decoding unit and an interface; the LDPC decoding unit is used for performing iterative error correction when the flash memory device stores and erases data; the LDPC control unit is used for monitoring the LDPC decoding unit in real time, setting iteration thresholds of the LDPC decoding unit for different data types, collecting real-time iteration times, comparing the iteration times with the threshold iteration times of the LDPC, adjusting error distribution and quantity of the flash memory based on the different data types, and sending error correction instructions to the flash memory device; the interface comprises one or more data transmission channels and completes data interaction among the LDPC decoding unit, the LDPC control unit, the LDPC encoding unit and the flash memory device. And if the data is detected to be required to be rewritten, the data is encoded by the LDPC encoding unit and is retransmitted to the flash memory device.
Fig. 2 shows an overall flow diagram according to an embodiment of the invention. S100, performing real-time monitoring on the LDPC decoding unit, setting iteration thresholds of the LDPC decoding unit for different data types, and collecting real-time iteration times; s200, comparing the iteration times obtained in the S100 with the threshold iteration times of LDPC, and adjusting error distribution and quantity of the flash memory based on different data types.
For the flow, the technical scheme of the invention provides the following specific embodiments:
(1) Recording iteration number iter of each LDPC decoding;
(2) Setting an iteration number threshold iter_thrd;
(3) For critical data, the decoding delay is required to be short, and if item > item_thrd, measures can be initiated
(4) For other data, an average iteration number item_avg may be counted, if item_avg > item_thrd, initiating measures;
(5) The measure is defined as rewriting the flash memory, the number of errors can be reduced to a very low level after the flash memory is rewritten, even if errors exist, the error distribution is changed with high probability, and as a result, the decoding iteration times can be reduced, and the throughput rate is improved;
(6) Measures can also be defined as changing the comparison voltage during flash reading, which changes the error distribution and number.
Description: depending on the design of the flash FTL, the statistical average iteration number and overwrite may be defined on pages or blocks. The measures are not limited to the descriptions of (5) and (6), and any measures that may change the distribution and the number of errors may be used.
Fig. 3a and 3b show decoding throughput and error distribution caused by different iteration numbers.
In fig. 3a, the relationship between the decoding throughput rate and the iteration number is:
number of iterations Decoding throughput (MByte/2)
5 1000
15 333.333333
20 250
25 200
30 166.666667
In fig. 3b, the relationship between the error distribution and the iteration number is:
error distribution Number of iterations
Error distribution 1 3
Error distribution 2 5
Error distribution 3 10
Error distribution 4 30
Error distribution 5 35
Error distribution 6 40
The embodiments of the present invention have been described in detail with reference to the accompanying drawings, but the present invention is not limited to the above embodiments, and various changes can be made within the knowledge of one of ordinary skill in the art without departing from the spirit of the present invention.

Claims (5)

1. A method for adjusting flash read data throughput rate, comprising:
s100, setting iteration thresholds of the LDPC decoding unit for different data types, collecting real-time iteration times, and monitoring the LDPC decoding unit in real time;
s200, comparing the iteration times obtained in the S100 with the threshold iteration times of LDPC, and adjusting error distribution and quantity of the flash memory based on different data types;
the step S100 specifically includes:
s110, setting the iteration times threshold of the LDPC decoding unit, wherein the setting of the iteration threshold of the key data and the common data is included;
s120, if the decoded data is key data, executing the step S200 on the flash memory when the iteration number threshold is exceeded;
if the decoded data is normal data, taking average decoding times of a plurality of normal data, comparing the average decoding times with an iteration time threshold, and executing the step S200 on the flash memory when the average decoding times exceed the iteration time threshold;
the method for adjusting the error distribution and the number of the flash memory includes, but is not limited to, rewriting the flash memory and changing the comparison voltage when the flash memory is read.
2. The method of claim 1, wherein the data types include critical data and normal data.
3. An apparatus for adjusting flash read data throughput rate for implementing the method of any of claims 1-2, characterized by:
the flash memory device is used for storing and erasing data;
the flash memory controller comprises an LDPC control unit, an LDPC encoding unit, an LDPC decoding unit and an interface;
the LDPC decoding unit is used for performing iterative error correction when the flash memory device stores and erases data;
the LDPC control unit is used for monitoring the LDPC decoding unit in real time, setting iteration thresholds of the LDPC decoding unit for different data types, collecting real-time iteration times, comparing the iteration times with the threshold iteration times of the LDPC, adjusting error distribution and quantity of the flash memory based on the different data types, and sending error correction instructions to the flash memory device;
the interface comprises one or more data transmission channels and completes data interaction among the LDPC decoding unit, the LDPC control unit, the LDPC encoding unit and the flash memory device.
4. A device for adjusting the throughput rate of flash memory read data according to claim 3, wherein the control unit is arranged on a data storage page and/or a data storage block of the flash memory device.
5. The apparatus for adjusting flash read data throughput rate of claim 3, wherein the LDPC decoding unit further comprises:
and if the data is detected to be required to be rewritten, the data is encoded by the LDPC encoding unit and is retransmitted to the flash memory device.
CN202010322810.4A 2020-04-22 2020-04-22 Method and device for adjusting flash memory read data throughput rate Active CN111611101B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010322810.4A CN111611101B (en) 2020-04-22 2020-04-22 Method and device for adjusting flash memory read data throughput rate

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010322810.4A CN111611101B (en) 2020-04-22 2020-04-22 Method and device for adjusting flash memory read data throughput rate

Publications (2)

Publication Number Publication Date
CN111611101A CN111611101A (en) 2020-09-01
CN111611101B true CN111611101B (en) 2023-09-29

Family

ID=72197499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010322810.4A Active CN111611101B (en) 2020-04-22 2020-04-22 Method and device for adjusting flash memory read data throughput rate

Country Status (1)

Country Link
CN (1) CN111611101B (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841338A (en) * 2009-03-18 2010-09-22 中国科学院微电子研究所 A method for early termination of iterative decoding of low-density parity-check codes
CN101950586A (en) * 2009-03-27 2011-01-19 联发科技股份有限公司 Storage controller and method for controlling data reading
WO2015139160A1 (en) * 2014-03-20 2015-09-24 山东华芯半导体有限公司 Hard decision decoding method for ldpc code of dynamic threshold bit-flipping
CN109660263A (en) * 2018-11-22 2019-04-19 华中科技大学 A kind of LDPC code interpretation method suitable for MLC NAN flash memory
CN110008052A (en) * 2017-12-14 2019-07-12 三星电子株式会社 Error correction device, the operating method of error correction device and the controller including error correction device
CN110752850A (en) * 2019-08-27 2020-02-04 广东工业大学 Method for quickly iterating LDPC code of MLC flash memory chip

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070113143A1 (en) * 2005-10-25 2007-05-17 Yu Liao Iterative decoder with stopping criterion generated from error location polynomial
US20070113149A1 (en) * 2005-10-26 2007-05-17 Broadcom Corporation Power savings technique for iterative decoding
CN103119563B (en) * 2010-09-29 2016-03-23 国际商业机器公司 Decoding in solid-state memory device
KR20150091693A (en) * 2014-02-03 2015-08-12 삼성전자주식회사 Read method of flash memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841338A (en) * 2009-03-18 2010-09-22 中国科学院微电子研究所 A method for early termination of iterative decoding of low-density parity-check codes
CN101950586A (en) * 2009-03-27 2011-01-19 联发科技股份有限公司 Storage controller and method for controlling data reading
WO2015139160A1 (en) * 2014-03-20 2015-09-24 山东华芯半导体有限公司 Hard decision decoding method for ldpc code of dynamic threshold bit-flipping
CN110008052A (en) * 2017-12-14 2019-07-12 三星电子株式会社 Error correction device, the operating method of error correction device and the controller including error correction device
CN109660263A (en) * 2018-11-22 2019-04-19 华中科技大学 A kind of LDPC code interpretation method suitable for MLC NAN flash memory
CN110752850A (en) * 2019-08-27 2020-02-04 广东工业大学 Method for quickly iterating LDPC code of MLC flash memory chip

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Su Chengeng 等."Performance evaluation of BDS M-ary LDPC encoding".《Journal of National University of Defense Technology》.2019,全文. *
朱鹏程 ; 程学云 ; 卫丽华 ; 管致锦 ; .基于错误位分布的可逆逻辑综合算法.计算机学报.2017,(第04期),全文. *
李春阳 ; 黑勇 ; 郭琨 ; .一种低复杂度LDPC码提前结束迭代准则.微电子学与计算机.2010,(第05期),全文. *
阴法明 ; .LDPC硬判决译码算法中的门限问题研究.信息化研究.2011,(第01期),全文. *

Also Published As

Publication number Publication date
CN111611101A (en) 2020-09-01

Similar Documents

Publication Publication Date Title
CN108269604B (en) Method and apparatus for read disturb detection and processing
CN106776109B (en) Solid state disk reading error detection device and method for detecting reasons of uncorrectable errors
CN100576359C (en) Increasing the efficiency of error-correcting codes and operating multi-level storage systems by using information about the quality of stored data
US9543035B2 (en) Transmission error detector for flash memory controller
Shim et al. Exploiting process similarity of 3D flash memory for high performance SSDs
TWI509624B (en) Flash memory apparatus, memory controller and method for controlling flash memory
US20200350930A1 (en) Content aware decoding method and system
CN111863097B (en) Reading control method and device of flash memory
CN105489239A (en) Data storage device and operating method thereof
CN112256193A (en) Method, device and storage medium for improving data security of solid state disk
CN107179880B (en) Storage device, control unit thereof and data moving method for storage device
US11057059B1 (en) Content aware bit flipping decoder
CN112347007A (en) Flash memory data protection method and device, electronic equipment and storage medium
JP2010079486A (en) Semiconductor recording device
JP2019096281A (en) Data storage device and associated operating method
CN111611101B (en) Method and device for adjusting flash memory read data throughput rate
KR20160042224A (en) Data storage device and operating method thereof
CN108564981B (en) Dynamic monitoring method for data security of storage device
US8392766B2 (en) Operational method of a controller of a flash memory, and associated memory device and controller thereof
CN112732181A (en) Data migration method of SSD and related device
CN111078498A (en) Data polling method in SSD
US9953722B2 (en) Methods of system optimization by over-sampling read
CN116804912A (en) Method, system, equipment and storage medium for predicting original error rate of three-dimensional flash memory
CN112732179A (en) Data management method of SSD (solid State disk) and related device
CN114765035A (en) Storage device and storage device management method

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