WO2018192488A1 - Data processing method and apparatus for nand flash memory device - Google Patents

Data processing method and apparatus for nand flash memory device Download PDF

Info

Publication number
WO2018192488A1
WO2018192488A1 PCT/CN2018/083355 CN2018083355W WO2018192488A1 WO 2018192488 A1 WO2018192488 A1 WO 2018192488A1 CN 2018083355 W CN2018083355 W CN 2018083355W WO 2018192488 A1 WO2018192488 A1 WO 2018192488A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
page
storage unit
block data
data processing
Prior art date
Application number
PCT/CN2018/083355
Other languages
French (fr)
Chinese (zh)
Inventor
王凤海
杨骥
张建涛
夏杰旭
王嵩
Original Assignee
北京紫光得瑞科技有限公司
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 北京紫光得瑞科技有限公司 filed Critical 北京紫光得瑞科技有限公司
Publication of WO2018192488A1 publication Critical patent/WO2018192488A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Definitions

  • the present invention relates to the field of data storage technologies, and in particular, to a data processing method and apparatus for a NAND flash memory device.
  • MLC NAND flash memory device can greatly increase the storage density of the memory and reduce the storage cost by applying the MLC NAND flash memory to the solid state hard disk.
  • MLC NAND refers to NAND flash memory of Multi-Level Cell. If a memory cell of NAND flash memory only stores one bit of data, it is called SLC (Single-Level Cell) NAND flash memory. If it can store 2 bits of data, it is called CMOS flash memory of multi-level cell (MLC), if it can store 3 One bit of data, called a three-level cell (TLC) NAND flash.
  • SLC Single-Level Cell
  • MLC multi-level cell
  • TLC three-level cell
  • the probability of data error is greatly increased.
  • the process size is reduced to less than 20 nm, the amount of charge stored in the floating gate layer is reduced, and the thickness of the oxide layer is smaller, the charge stored in the floating gate layer is more likely to escape, resulting in data retention errors. The probability is greatly improved.
  • the methods for reducing data errors of MLC NAND flash memory devices in the prior art mainly include the following:
  • BCH/LDPC Use error correction techniques such as BCH/LDPC. They are general-purpose data error correction techniques that do not require knowledge of the principles and mechanisms of error generation and can be used for data errors in any scenario. This method requires some redundancy bits to encode the original data. If the number of errors in the flash memory is more, the more redundant bits are needed, and these redundant bits need to occupy the storage space of the flash memory, so the data that the user can store is reduced.
  • Asymmetric coding technology reduces data retention errors by changing the input data pattern and reducing the probability of data with higher threshold voltages. This method has a good effect on data retention errors, but it is ineffective for data interference errors and may even increase data interference errors.
  • the scheme adds a flag for every 16 bits of data to identify whether the 16 bits are 0 or more. The flag also needs to be stored in the NAND flash, so the space cost of this encoding is 6.25%. If asymmetric coding is used alone, the space cost is not too great for SSDs.
  • the invention provides a data processing method and device for a NAND flash memory device, which can effectively reduce the probability of data error occurrence of the NAND flash memory device and improve the overall performance of the NAND flash memory device.
  • One aspect of the present invention provides a data processing method for a NAND flash memory device, the method comprising:
  • the processed block data to be processed is encoded, and the encoded coded data is written into the to-be-operated memory unit.
  • the method further includes:
  • a corresponding metadata area is set in advance for each of the NAND flash memory devices, and the metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
  • the inversion operation is performed on the to-be-processed block data according to a type of the page page and the data feature of the to-be-processed block data, and the metadata of the page page corresponding to the to-be-operated storage unit is The identification of the data processing mode of the area, including:
  • the inversion operation is performed on the to-be-processed block data according to a type of the page page and the data feature of the to-be-processed block data, and the metadata of the page page corresponding to the to-be-operated storage unit is The identification of the data processing mode of the area, including:
  • the Page page is an upper page page, determining whether the number of 1 in the to-be-processed block data is greater than 0; if yes, inverting data corresponding to each bit in the to-be-processed block data The operation is performed, and the data processing mode identifier corresponding to the inverse operation is written in the metadata area corresponding to the Page page of the to-be-operated storage unit; otherwise, the encoding operation is performed on the to-be-processed block data.
  • the method further includes:
  • the identification information is a data processing mode identifier corresponding to the inverse operation, and if so, inverting the data corresponding to each bit in the decoded block data, and transmitting the obtained block data to the host, Otherwise, the decoded block data is directly transmitted to the host.
  • a data processing apparatus for a NAND flash memory device comprising:
  • a determining module configured to: when receiving a data write request command sent by the host, determine that the to-be-processed block data is in a corresponding Page page in the to-be-operated storage unit of the NAND flash memory device;
  • a data processing module configured to perform an inverse operation on the to-be-processed block data according to a type of a Page page and a data feature of the to-be-processed block data, and to perform metadata of the Page page corresponding to the to-be-operated storage unit
  • the area identifies the data processing method
  • the command execution module is configured to encode the to-be-processed block data processed by the data processing module, and write the encoded coded data into the to-be-operated storage unit.
  • the device further includes:
  • a configuration module configured to pre-set a corresponding metadata area for each storage unit in the NAND flash memory device, where the metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
  • the data processing module is configured to determine, when the Page page is a lower page page, whether the number of 0s in the to-be-processed block data is greater than 1, and if yes, the to-be-processed block
  • the data corresponding to each bit in the data is subjected to a negation operation, and the data processing mode identifier corresponding to the inverse operation is written into the metadata area of the Page page corresponding to the to-be-operated storage unit;
  • the command execution module is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 0s in the to-be-processed block data is less than or equal to 1.
  • the data processing module is configured to determine, when the Page page is an upper page page, whether the number of 1 in the to-be-processed block data is greater than 0, and if yes, the to-be-processed block
  • the data corresponding to each bit in the data is subjected to a negation operation, and the data processing mode identifier corresponding to the inverse operation is written into the metadata area of the Page page corresponding to the to-be-operated storage unit;
  • the command execution module is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 1 in the to-be-processed block data is less than or equal to 0.
  • the command execution module is further configured to: after the encoded encoded data is written into the to-be-operated storage unit, when receiving the data read request command sent by the host, from the to-be-operated storage unit Reading the target data in the Page page, and decoding the target data;
  • the device also includes:
  • An obtaining module configured to acquire identifier information in a metadata area corresponding to the Page page of the target data
  • the determining module is further configured to determine whether the identifier information is a data processing mode identifier corresponding to the inverse operation;
  • the data processing module is further configured to: when the determination result of the determining module is that the identifier information is a data processing mode identifier corresponding to the negation operation, perform data corresponding to each bit in the decoded block data Reverse the operation and transfer the obtained block data to the host. Otherwise, the decoded block data is directly transmitted to the host.
  • the data processing method and device of the NAND flash memory device provided by the embodiment of the present invention, when receiving the data write request command sent by the host, according to the type of the corresponding Page page in the storage unit to be operated and the data characteristics of the block data to be processed, according to the data characteristics of the block data to be processed
  • the preset rule performs a negation operation on the processing block data, and stores a small amount of information in the metadata area in the storage unit of the NAND flash memory device to identify a data processing manner corresponding to the stored data in the corresponding page page of the storage unit, and then uses the information to Reducing data retention errors can effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
  • FIG. 1 is a schematic structural view of a NAND memory cell
  • FIG. 2 is a schematic diagram showing threshold voltage distribution of memory cells in an MLC NAND flash memory device
  • FIG. 3 is a schematic diagram of a threshold voltage shift of a memory cell in an MLC NAND flash memory device due to a data retention error
  • FIG. 4 is a flowchart of a data processing method of a NAND flash memory device according to an embodiment of the present invention.
  • FIG. 5 is a flowchart of a specific process for a 4K byte write operation process
  • FIG. 6 is a flowchart of a specific process for a 4K byte read operation process
  • FIG. 7 is a schematic structural diagram of a data processing apparatus of a NAND flash memory device according to an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of a data processing apparatus of a NAND flash memory device according to another embodiment of the present invention.
  • FIG. 1 is a schematic structural diagram of a NAND memory cell.
  • each NAND memory cell is developed from an SLC having only one bit of data to a current MLC/TLC.
  • the benefits of these developments are obvious, the number of storage units on the same area is increasing, and costs are continually decreasing.
  • the accompanying challenge is that the distance between the various memory cells is getting smaller and smaller, the oxide layer is getting thinner, and the interference of the electrical signals of adjacent memory cells is getting stronger and stronger, so data errors are increasing.
  • FIG. 2 is a schematic diagram of threshold voltage distribution of memory cells in an MLC NAND flash device.
  • one memory cell stores 2-bit data, one bit belongs to the lower page and the other bit belongs to the upper page.
  • the memory cell is programmed to four different threshold voltages based on this 2-bit data.
  • the embodiment of the present invention provides a data processing method for reducing data retention errors by reducing the probability of data 10 and 00, so as not to add excessive redundancy bits and occupy excessive storage space. Effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
  • FIG. 4 is a flow chart schematically showing a data processing method of a NAND flash memory device in accordance with an embodiment of the present invention.
  • the data processing method of the NAND flash memory device of the embodiment of the present invention specifically includes the following steps:
  • the data processing method of the NAND flash memory device provided by the embodiment of the present invention, according to the data write request command sent by the host, according to the type of the corresponding Page page in the storage unit to be operated and the data feature of the block data to be processed, according to the preset
  • the rule performs the negation operation on the processing block data, and stores a small amount of information in the metadata area in the storage unit of the NAND flash memory device to identify the data processing mode corresponding to the stored data in the corresponding page page of the storage unit, and then uses the information to reduce the data. Retaining errors can effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
  • the method further includes the step of setting a corresponding metadata area for each of the NAND flash memory devices in advance.
  • the metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
  • the step S12 may further include the following two situations, as follows:
  • the Page page is not a lower page page, that is, when the Page page is an upper page page, it is determined whether the number of 1 in the to-be-processed block data is greater than 0; if yes, the to-be-processed The data corresponding to each bit in the block data is subjected to a negation operation, and the data processing mode identifier corresponding to the inverse operation is written in the metadata area corresponding to the Page page of the to-be-operated storage unit; otherwise, the The block data is processed for encoding operations.
  • MLC NAND flash When MLC NAND flash is applied to a solid state drive, it is accessed as a block device.
  • the size of a block is mostly 512 bytes or 4K bytes.
  • 4K bytes is taken as an example.
  • the SSD master When the host writes 4K bytes of data, the SSD master will encode according to the adopted BCH/LDPC technology, and for each 4K bytes of data, the master will add a few bytes of metadata for Management information for storing data.
  • the data method proposed by the embodiment of the present invention utilizes the storage area of the metadata to reduce the data retention error of the NAND flash memory.
  • the reliability of the data is the most important. According to the barrel theory, problems with the reliability of data often occur in the worst case. In particular, the capacity of SSDs is getting larger and larger, and small-probability events will become unnegligible as statistical samples increase. For example, for data retention errors, if the data stored in NAND is 10 (data state is 3, upper page is 1, lower page is 0), then many data retention errors may occur, possibly exceeding BCH.
  • the error correction capability of technologies such as /LDPC causes irreversible errors and affects the reliability of data. Therefore, the data processing method proposed by the embodiment of the present invention is to prevent the occurrence of such an extreme situation.
  • FIG. 5 is a specific processing flowchart of a 4K byte write operation process, which specifically includes: when receiving a data write request command sent by a host, differentiating the metadata storage area for identifying the write storage unit
  • the identification information of the data processing mode corresponding to the data of the page page may be set to 0 in one specific embodiment.
  • the block data of the lower page in the storage unit to be operated if the number of 0s in the original data is greater than one, the entire block of data is inverted, that is, the inverse operation is performed, and 1 is stored in the metadata area to indicate the The data of the Page page corresponding to the storage unit is the data after the data is inverted, so that the original data is obtained by performing the corresponding inversion operation when the data is subsequently read. If the number of 0s in the original data is less than or equal to 1, the entire block of data is not inverted, and 0 is stored in the metadata area to indicate that the data of the Page page corresponding to the storage unit is data that has not undergone data inversion processing. The subsequent can be directly read and sent to the host.
  • the inverted data is encoded by the BCH/LDPC error correction technique and sent to the storage unit.
  • the block data of the upper page in the storage unit to be operated if the number of 1s in the original data is greater than 0, the entire block of data is inverted, and 1 is stored in the metadata area. If the number of 1s in the original data is less than or equal to 0, the entire block of data is not inverted and 0 is stored in the metadata area.
  • the method further includes the following steps:
  • the identification information is a data processing mode identifier corresponding to the inverse operation, and if so, inverting the data corresponding to each bit in the decoded block data, and transmitting the obtained block data to the host, Otherwise, the decoded block data is directly transmitted to the host.
  • FIG. 6 is a specific processing flowchart for a 4K byte read operation process, which specifically includes: when receiving a data read request command sent by a host, from a storage unit to be operated The page reads the data, and decodes the read data through the BCH/LDPC error correction technology, and then obtains the identification information in the metadata area of the Page page storing the data. If the identification information of the metadata area is 1, The data of the Page page is data after data inversion. Therefore, the data corresponding to each bit in the decoded block data is inversely operated, and the obtained block data is transmitted to the host, otherwise The decoded block data is transmitted to the host.
  • the data processing method of the NAND flash memory device provided by the embodiment of the present invention combines a common BCH/LDPC error correction technology to store a small amount of information in a metadata area of a block device using NAND FLASH as a storage medium to identify a data mode. This information reduces data retention errors and effectively reduces the probability of data errors in NAND flash devices.
  • the technical solution provided by the embodiments of the present invention is not limited to the MLC NAND flash memory device, and is also applicable to the TLC and SLC NAND flash memory devices.
  • the data processing method embodiments of the TLC and SLC NAND flash memory devices due to the MLC NAND flash memory device
  • the data processing method embodiments are basically similar, so the description is not described too much.
  • the technical solution provided by the embodiment of the present invention is not limited to the SSD application.
  • the data processing of the NAND flash memory device provided by the embodiment of the present invention can be applied as long as the metadata area exists. The method is to effectively reduce the probability of data error occurrence of the NAND flash device.
  • FIG. 7 is a schematic block diagram showing the structure of a data processing apparatus of a NAND flash memory device according to an embodiment of the present invention.
  • the data processing apparatus of the NAND flash memory device of the embodiment of the present invention may be disposed in a main controller of the NAND flash memory device or implemented by a main controller.
  • the data processing apparatus of the NAND flash memory device of the embodiment of the present invention specifically includes a determining module 701, a data processing module 702, and a command execution module 703, wherein: the determining module 701 is configured to receive data sent by the host.
  • the data processing module 702 is configured to use, according to the type of the Page page and the data characteristics of the to-be-processed block data, Performing a negation operation on the to-be-processed block data according to a preset rule, and performing data processing mode identification on a metadata area corresponding to the Page page of the to-be-operated storage unit;
  • the command execution module 703 is configured to The to-be-processed block data processed by the data processing module 702 is encoded, and the encoded encoded data is written into the to-be-operated storage unit.
  • the data processing apparatus of the NAND flash memory device provided by the embodiment of the present invention, according to the data write request command sent by the host, according to the type of the corresponding Page page in the storage unit to be operated and the data characteristics of the to-be-processed block data, according to the pre-pre
  • the rule is to perform the negation operation on the processing block data, and store a small amount of information in the metadata area in the storage unit of the NAND flash memory device to identify the data processing mode corresponding to the stored data in the corresponding page page of the storage unit, and then use the information to reduce Data retention errors can effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
  • the data processing apparatus of the NAND flash memory device further includes a configuration module not shown in the drawing, the configuration module for pre-empting each of the NAND flash memory devices
  • a storage unit sets a corresponding metadata area, and the metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
  • the data processing module 702 is specifically configured to determine, when the Page page is a lower page page, whether the number of 0s in the to-be-processed block data is greater than 1, and if yes, The data corresponding to each bit in the to-be-processed block data is inversely operated, and the data processing mode identifier corresponding to the inverse operation is written into the metadata area of the Page page corresponding to the to-be-operated storage unit;
  • the command execution module 703 is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 0s in the to-be-processed block data is less than or equal to 1.
  • the data processing module 702 is specifically configured to determine, when the Page page is an upper page page, whether the number of 1 in the to-be-processed block data is greater than 0, and if yes, The data corresponding to each bit in the to-be-processed block data is inversely operated, and the data processing mode identifier corresponding to the inverse operation is written into the metadata area of the Page page corresponding to the to-be-operated storage unit;
  • the command execution module 703 is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 1 in the to-be-processed block data is less than or equal to 0.
  • the command execution module 703 is further configured to: after the encoded encoded data is written into the to-be-operated storage unit, receive a data read request sent by the host At the time of the command, the target data is read from the Page page of the storage unit to be operated, and the target data is decoded.
  • the apparatus further includes an obtaining module 704, where the acquiring module 704 is configured to acquire identifier information in a metadata area corresponding to the Page page of the target data;
  • the determining module 701 is further configured to determine whether the identifier information is a data processing mode identifier corresponding to the inverse operation;
  • the data processing module 702 is further configured to: when the determination result of the determining module 701 is that the identifier information is a data processing mode identifier corresponding to the negation operation, corresponding to each bit in the decoded block data The data is negated and the obtained block data is transmitted to the host. Otherwise, the decoded block data is directly transmitted to the host.
  • the description is relatively simple, and the relevant parts can be referred to the description of the method embodiment.
  • the data processing method and device of the NAND flash memory device provided by the embodiment of the present invention, when receiving the data write request command sent by the host, according to the type of the corresponding Page page in the storage unit to be operated and the data characteristics of the block data to be processed, according to The preset rule performs a negation operation on the processing block data, and stores a small amount of information in the metadata area in the storage unit of the NAND flash memory device to identify a data processing manner corresponding to the stored data in the corresponding page page of the storage unit, and then uses the information to Reducing data retention errors can effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
  • embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) including computer usable program code.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

Disclosed are a data processing method and apparatus for an NAND flash memory device, wherein the method comprises: when a data write-in request command sent by a host is received, determining a page, corresponding to block data to be processed, in a storage unit to be operated of the NAND flash memory device (S11); according to the type of page and a data characteristic of the block data to be processed, carrying out, according to a pre-set rule, a complementary operation for the block data to be processed, and identifying a data processing mode for a metadata area of the corresponding page of the storage unit to be operated (S12); and encoding the processed block data to be processed, and writing the encoded data into the storage unit to be operated (S13). According to the data processing method and apparatus for the NAND flash memory device, the data error occurrence probability of the NAND flash memory device can be effectively reduced, and the overall performance of the NAND flash memory device is improved.

Description

一种NAND闪存设备的数据处理方法及装置Data processing method and device for NAND flash memory device 技术领域Technical field
本发明涉及数据存储技术领域,尤其涉及一种NAND闪存设备的数据处理方法及装置。The present invention relates to the field of data storage technologies, and in particular, to a data processing method and apparatus for a NAND flash memory device.
背景技术Background technique
固态硬盘与传统机械硬盘相比,在存取速度上有了质的飞跃。而MLC NAND闪存设备,通过将MLC NAND闪存应用于固态硬盘,可以大大增加存储器的存储密度,降低存储成本。MLC NAND是指多层单元(Multi-Level Cell)的NAND闪存。NAND闪存的一个存储单元如果只存储一个比特数据,称为SLC(Single-Level Cell)的NAND闪存,如果能存储2个比特数据,称为多层单元(MLC)的NAND闪存,如果能存储3个比特数据,称为三层单元(TLC)的NAND闪存。但是,由于MLC NAND闪存设备的一个存储单元里存储多比特数据,数据出错的概率大大增加。尤其是随着工艺尺寸减少到20nm以下,在浮栅层存储的电荷数目减少,氧化层的厚度更小的情况下,保存在浮栅层的电荷更有可能逸出,从而导致数据保留错误发生的概率大大提高。Compared with traditional mechanical hard drives, SSDs have a qualitative leap in access speed. The MLC NAND flash memory device can greatly increase the storage density of the memory and reduce the storage cost by applying the MLC NAND flash memory to the solid state hard disk. MLC NAND refers to NAND flash memory of Multi-Level Cell. If a memory cell of NAND flash memory only stores one bit of data, it is called SLC (Single-Level Cell) NAND flash memory. If it can store 2 bits of data, it is called CMOS flash memory of multi-level cell (MLC), if it can store 3 One bit of data, called a three-level cell (TLC) NAND flash. However, since multi-bit data is stored in one memory unit of the MLC NAND flash memory device, the probability of data error is greatly increased. In particular, as the process size is reduced to less than 20 nm, the amount of charge stored in the floating gate layer is reduced, and the thickness of the oxide layer is smaller, the charge stored in the floating gate layer is more likely to escape, resulting in data retention errors. The probability is greatly improved.
目前,现有技术中减少MLC NAND闪存设备数据错误的方法主要包括如下几种:At present, the methods for reducing data errors of MLC NAND flash memory devices in the prior art mainly include the following:
利用BCH/LDPC等纠错技术。它们是通用的数据纠错技术,不需要了解错误产生的原理和机制,可用于任合场景下的数据错误。该方法需要一些冗余位来对原始数据进行编码。如果闪存中的错误数量越多,需要的冗余位就越多,这些冗余位需要额外占据闪存的存储空间,因此用户能够存储的数据就变少了。在NAND闪存中主要有两种数据错误方式:一种是数据干扰错误,另一种是数据保留错误。在当今的工艺尺寸下,数据保留错误的概率远远大于数据干扰错误。因此,BCH/LDPC作为通用的数据纠错技术,它无法利用这种概率的差异性来减小错误的概率。Use error correction techniques such as BCH/LDPC. They are general-purpose data error correction techniques that do not require knowledge of the principles and mechanisms of error generation and can be used for data errors in any scenario. This method requires some redundancy bits to encode the original data. If the number of errors in the flash memory is more, the more redundant bits are needed, and these redundant bits need to occupy the storage space of the flash memory, so the data that the user can store is reduced. There are two main types of data error in NAND flash: one is data interference error and the other is data retention error. In today's process sizes, the probability of data retention errors is much greater than data interference errors. Therefore, BCH/LDPC is a general-purpose data error correction technique that cannot exploit the difference in probability to reduce the probability of errors.
非对称编码技术。该技术通过更改输入的数据模式,降低阈值电压比较高的数据出现的概率,以此来降低数据保留错误。这种方法对数据保留错误有很好的效果,但对数据干扰错误无效,甚至可能会增加数据干扰错误。该方案针对每16比特数据就增加一个flag来标识这16比特是0的数目多还是1的数目多,这个flag也需要存储在NAND闪存中,因此这种编码的空间代价是6.25%。如果单独使用非对称编码,那这个空间代价对于固态硬盘来说,不是太大。但由于这种编码算法只针对数据保留错误,对干扰错误无效,因此必须同时使用通 用的BCH/LDPC纠错技术,这样非对称编码算法6.3%的空间代价就是BCH/LDPC冗余码之外额外增加的代价,很难被接受。Asymmetric coding technology. This technique reduces data retention errors by changing the input data pattern and reducing the probability of data with higher threshold voltages. This method has a good effect on data retention errors, but it is ineffective for data interference errors and may even increase data interference errors. The scheme adds a flag for every 16 bits of data to identify whether the 16 bits are 0 or more. The flag also needs to be stored in the NAND flash, so the space cost of this encoding is 6.25%. If asymmetric coding is used alone, the space cost is not too great for SSDs. However, since this coding algorithm only targets data reservation errors and is ineffective for interference errors, it is necessary to use the common BCH/LDPC error correction technique at the same time, so that the space cost of the asymmetric coding algorithm is 6.3%, which is extra for the BCH/LDPC redundancy code. The added cost is hard to accept.
因此,如何提供一种能够有效地降低NAND闪存设备的数据错误发生概率的数据处理方法是目前亟待解决的技术问题。Therefore, how to provide a data processing method capable of effectively reducing the probability of occurrence of data errors in a NAND flash memory device is a technical problem to be solved at present.
发明内容Summary of the invention
本发明提出了一种NAND闪存设备的数据处理方法及装置,能够有效地降低NAND闪存设备的数据错误发生概率,提升NAND闪存设备的总体性能。The invention provides a data processing method and device for a NAND flash memory device, which can effectively reduce the probability of data error occurrence of the NAND flash memory device and improve the overall performance of the NAND flash memory device.
为解决上述技术问题,本发明采用如下技术方案:In order to solve the above technical problem, the present invention adopts the following technical solutions:
本发明的一个方面,提供了一种NAND闪存设备的数据处理方法,所述方法包括:One aspect of the present invention provides a data processing method for a NAND flash memory device, the method comprising:
接收到主机发送的数据写入请求命令时,判定待处理块数据在NAND闪存设备的待操作存储单元中对应的Page页;Receiving a data write request command sent by the host, determining that the to-be-processed block data is in a corresponding Page page in the to-be-operated storage unit of the NAND flash memory device;
根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识;Determining the to-be-processed block data according to a preset rule according to a type of the page page and a data feature of the to-be-processed block data, and performing data processing on the metadata area corresponding to the Page page of the to-be-operated storage unit Identification
对处理后的待处理块数据进行编码,并将编码后的编码数据写入所述待操作存储单元。The processed block data to be processed is encoded, and the encoded coded data is written into the to-be-operated memory unit.
可选地,所述方法还包括:Optionally, the method further includes:
预先为所述NAND闪存设备中的每一存储单元设置对应的元数据区,所述元数据区用于标识写入存储单元不同Page页的数据对应的数据处理方式。A corresponding metadata area is set in advance for each of the NAND flash memory devices, and the metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
可选地,所述根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识,包括:Optionally, the inversion operation is performed on the to-be-processed block data according to a type of the page page and the data feature of the to-be-processed block data, and the metadata of the page page corresponding to the to-be-operated storage unit is The identification of the data processing mode of the area, including:
当所述Page页为lower page页时,判定所述待处理块数据中0的数量是否大于1的数量;若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;否则,直接对所述待处理块数据进行编码操作。When the Page page is a lower page, determining whether the number of 0s in the to-be-processed block data is greater than 1; if yes, inverting data corresponding to each bit in the to-be-processed block data The operation is performed, and the data processing mode identifier corresponding to the inverse operation is written in the metadata area corresponding to the Page page of the to-be-operated storage unit; otherwise, the encoding operation is performed on the to-be-processed block data.
可选地,所述根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识,包括:Optionally, the inversion operation is performed on the to-be-processed block data according to a type of the page page and the data feature of the to-be-processed block data, and the metadata of the page page corresponding to the to-be-operated storage unit is The identification of the data processing mode of the area, including:
当所述Page页为upper page页时,判定所述待处理块数据中1的数量是否大于0的数量;若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;否则,直接对所述待处理块数据进行编码操作。When the Page page is an upper page page, determining whether the number of 1 in the to-be-processed block data is greater than 0; if yes, inverting data corresponding to each bit in the to-be-processed block data The operation is performed, and the data processing mode identifier corresponding to the inverse operation is written in the metadata area corresponding to the Page page of the to-be-operated storage unit; otherwise, the encoding operation is performed on the to-be-processed block data.
可选地,在将编码后的编码数据写入所述待操作存储单元之后,所述方法还包括:Optionally, after the encoded encoded data is written into the to-be-operated storage unit, the method further includes:
当接收到所述主机发送的数据读取请求命令时,从待操作存储单元的Page页中读取目标数据,并对所述目标数据进行解码;When receiving the data read request command sent by the host, reading the target data from the Page page of the storage unit to be operated, and decoding the target data;
获取所述目标数据对应Page页的元数据区中的标识信息;Obtaining the identification information in the metadata area corresponding to the Page page of the target data;
判定所述标识信息是否为求反运算对应的数据处理方式标识,若是,则将解码后的块数据中每一比特位对应的数据均进行求反运算,并将得到的块数据传输到主机,否则,直接将解码后的块数据传输到主机。Determining whether the identification information is a data processing mode identifier corresponding to the inverse operation, and if so, inverting the data corresponding to each bit in the decoded block data, and transmitting the obtained block data to the host, Otherwise, the decoded block data is directly transmitted to the host.
本发明的又一个方面,提供了一种NAND闪存设备的数据处理装置,所述装置包括:In still another aspect of the present invention, a data processing apparatus for a NAND flash memory device is provided, the apparatus comprising:
判定模块,用于在接收到主机发送的数据写入请求命令时,判定待处理块数据在NAND闪存设备的待操作存储单元中对应的Page页;a determining module, configured to: when receiving a data write request command sent by the host, determine that the to-be-processed block data is in a corresponding Page page in the to-be-operated storage unit of the NAND flash memory device;
数据处理模块,用于根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识;a data processing module, configured to perform an inverse operation on the to-be-processed block data according to a type of a Page page and a data feature of the to-be-processed block data, and to perform metadata of the Page page corresponding to the to-be-operated storage unit The area identifies the data processing method;
命令执行模块,用于对所述数据处理模块处理后的待处理块数据进行编码,并将编码后的编码数据写入所述待操作存储单元。The command execution module is configured to encode the to-be-processed block data processed by the data processing module, and write the encoded coded data into the to-be-operated storage unit.
可选地,所述装置还包括:Optionally, the device further includes:
配置模块,用于预先为所述NAND闪存设备中的每一存储单元设置对应的元数据区,所述元数据区用于标识写入存储单元不同Page页的数据对应的数据处理方式。And a configuration module, configured to pre-set a corresponding metadata area for each storage unit in the NAND flash memory device, where the metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
可选地,所述数据处理模块,具体用于当所述Page页为lower page页时,判定所述待处理块数据中0的数量是否大于1的数量,若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;Optionally, the data processing module is configured to determine, when the Page page is a lower page page, whether the number of 0s in the to-be-processed block data is greater than 1, and if yes, the to-be-processed block The data corresponding to each bit in the data is subjected to a negation operation, and the data processing mode identifier corresponding to the inverse operation is written into the metadata area of the Page page corresponding to the to-be-operated storage unit;
所述命令执行模块,还用于当所述待处理块数据中0的数量小于或等于1的数量时,直接对所述待处理块数据进行编码操作。The command execution module is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 0s in the to-be-processed block data is less than or equal to 1.
可选地,所述数据处理模块,具体用于当所述Page页为upper page页时,判定所述待处理块数据中1的数量是否大于0的数量,若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;Optionally, the data processing module is configured to determine, when the Page page is an upper page page, whether the number of 1 in the to-be-processed block data is greater than 0, and if yes, the to-be-processed block The data corresponding to each bit in the data is subjected to a negation operation, and the data processing mode identifier corresponding to the inverse operation is written into the metadata area of the Page page corresponding to the to-be-operated storage unit;
所述命令执行模块,还用于当所述待处理块数据中1的数量小于或等于0的数量时,直接对所述待处理块数据进行编码操作。The command execution module is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 1 in the to-be-processed block data is less than or equal to 0.
可选地,所述命令执行模块,还用于在将编码后的编码数据写入所述待操作存储单元之后,当接收到所述主机发送的数据读取请求命令时,从待操作存储单元的Page页中读取目标数据,并对所述目标数据进行解码;Optionally, the command execution module is further configured to: after the encoded encoded data is written into the to-be-operated storage unit, when receiving the data read request command sent by the host, from the to-be-operated storage unit Reading the target data in the Page page, and decoding the target data;
所述装置还包括:The device also includes:
获取模块,用于获取所述目标数据对应Page页的元数据区中的标识信息;An obtaining module, configured to acquire identifier information in a metadata area corresponding to the Page page of the target data;
相应的,所述判定模块,还用于判定所述标识信息是否为求反运算对应的数据处理方式标识;Correspondingly, the determining module is further configured to determine whether the identifier information is a data processing mode identifier corresponding to the inverse operation;
所述数据处理模块,还用于当所述判定模块的判定结果为所述标识信息是求反运算对应的数据处理方式标识时,将解码后的块数据中每一比特位对应的数据均进行求反运算,并将得到的块数据传输到主机,否则,直接将解码后的块数据传输到主机。The data processing module is further configured to: when the determination result of the determining module is that the identifier information is a data processing mode identifier corresponding to the negation operation, perform data corresponding to each bit in the decoded block data Reverse the operation and transfer the obtained block data to the host. Otherwise, the decoded block data is directly transmitted to the host.
与现有技术相比,本发明技术方案主要的优点如下:Compared with the prior art, the main advantages of the technical solution of the present invention are as follows:
本发明实施例提供的NAND闪存设备的数据处理方法及装置,接收到主机发送的数据写入请求命令时,根据待操作存储单元中对应的Page页的类型以及待处理块数据的数据特征,按照预设规则对待处理块数据进行求反运算,并在NAND闪存设备的存储单元中的元数据区存储少量信息来标识该存储单元对应Page页中存储数据对应的数据处理方式,进而利用这些信息来减少数据保留错误,能够有效地降低NAND闪存设备的数据错误发生概率,提升NAND闪存设备的总体性能。The data processing method and device of the NAND flash memory device provided by the embodiment of the present invention, when receiving the data write request command sent by the host, according to the type of the corresponding Page page in the storage unit to be operated and the data characteristics of the block data to be processed, according to the data characteristics of the block data to be processed The preset rule performs a negation operation on the processing block data, and stores a small amount of information in the metadata area in the storage unit of the NAND flash memory device to identify a data processing manner corresponding to the stored data in the corresponding page page of the storage unit, and then uses the information to Reducing data retention errors can effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。Other features and advantages of the invention will be set forth in the description which follows, The objectives and other advantages of the invention may be realized and obtained by means of the structure particularly pointed in the appended claims.
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。The technical solution of the present invention will be further described in detail below through the accompanying drawings and embodiments.
附图说明DRAWINGS
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:Various other advantages and benefits will become apparent to those skilled in the art from a The drawings are only for the purpose of illustrating the preferred embodiments and are not to be construed as limiting. Throughout the drawings, the same reference numerals are used to refer to the same parts. In the drawing:
图1为NAND存储单元的结构示意图;1 is a schematic structural view of a NAND memory cell;
图2为MLC NAND闪存设备中存储单元的阈值电压分布示意图;2 is a schematic diagram showing threshold voltage distribution of memory cells in an MLC NAND flash memory device;
图3为MLC NAND闪存设备中存储单元由于数据保留错误导致的阈值电压偏移示意图;3 is a schematic diagram of a threshold voltage shift of a memory cell in an MLC NAND flash memory device due to a data retention error;
图4为本发明实施例的一种NAND闪存设备的数据处理方法的流程图;4 is a flowchart of a data processing method of a NAND flash memory device according to an embodiment of the present invention;
图5为对于4K字节的写操作处理的具体处理流程图;FIG. 5 is a flowchart of a specific process for a 4K byte write operation process;
图6为对于4K字节的读取操作处理的具体处理流程图;6 is a flowchart of a specific process for a 4K byte read operation process;
图7为本发明实施例的一种NAND闪存设备的数据处理装置的结构示意图;FIG. 7 is a schematic structural diagram of a data processing apparatus of a NAND flash memory device according to an embodiment of the present invention; FIG.
图8为本发明另一实施例的一种NAND闪存设备的数据处理装置的结构示意图。FIG. 8 is a schematic structural diagram of a data processing apparatus of a NAND flash memory device according to another embodiment of the present invention.
具体实施方式detailed description
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While the embodiments of the present invention have been shown in the drawings, the embodiments Rather, these embodiments are provided so that this disclosure will be more fully understood and the scope of the disclosure will be fully disclosed.
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。Those skilled in the art will appreciate that all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention belongs, unless otherwise defined. It should also be understood that terms such as those defined in a general dictionary should be understood to have meaning consistent with the meaning in the context of the prior art, and will not be idealized or overly formal unless specifically defined. To explain.
NAND闪存设备是一种高性能低功耗的非易失性存储器,在现今的存储行业中正得到越来越广泛的应用,尤其是固态硬盘更是发展迅猛。一直以来,NAND闪存的工艺制程越来越小。图1为NAND存储单元的结构示意图,参见图1,每个NAND存储单元从仅有一比特数据的SLC,发展到现今的MLC/TLC。这些发展的好处显而易见,同样的面积上存储单元的数量不断增加,成本因此不断地下降。但伴随而来的挑战是,各个存储单元之间的距离越来越小,氧化层越来越薄,相邻存储单元电信号的干扰越来越强,因此数据错误越来越多。NAND flash memory devices are high-performance, low-power, non-volatile memories that are becoming more widely used in today's storage industry, especially for SSDs. The process of NAND flash has been getting smaller and smaller. FIG. 1 is a schematic structural diagram of a NAND memory cell. Referring to FIG. 1, each NAND memory cell is developed from an SLC having only one bit of data to a current MLC/TLC. The benefits of these developments are obvious, the number of storage units on the same area is increasing, and costs are continually decreasing. However, the accompanying challenge is that the distance between the various memory cells is getting smaller and smaller, the oxide layer is getting thinner, and the interference of the electrical signals of adjacent memory cells is getting stronger and stronger, so data errors are increasing.
图2为MLC NAND闪存设备中存储单元的阈值电压分布示意图,参见图2,对于MLCNAND闪存来说,一个存储单元存2比特数据,其中一个bit属于lower page,另一个bit属于upper page。存储单元根据这2比特数据会编程到4种不同的阈值电压。图2中,当存储数据为11(数据状态data state是0)时,存储单元的阈值电压符合最左边的高斯分布;当存储数据为01(data state是1,upper page为0,lower page为1)时,存储单元的阈值电压符合次左边的高斯分布;当存储数据为00(data state是2)时,存储单元的阈值电压符合次右边的高斯分布;当存储数据为10(data state是3,upper page为1,lower page为0)时,存储单元的阈值电压符合最右边的高斯分布。2 is a schematic diagram of threshold voltage distribution of memory cells in an MLC NAND flash device. Referring to FIG. 2, for MLCNAND flash memory, one memory cell stores 2-bit data, one bit belongs to the lower page and the other bit belongs to the upper page. The memory cell is programmed to four different threshold voltages based on this 2-bit data. In Figure 2, when the stored data is 11 (data state data state is 0), the threshold voltage of the memory cell conforms to the leftmost Gaussian distribution; when the stored data is 01 (data state is 1, upper page is 0, lower page is 1), the threshold voltage of the memory cell conforms to the Gaussian distribution on the left side; when the stored data is 00 (data state is 2), the threshold voltage of the memory cell conforms to the Gaussian distribution on the right side; when the data is stored as 10 (data state is 3. When the upper page is 1, and the lower page is 0), the threshold voltage of the memory cell conforms to the rightmost Gaussian distribution.
当一个存储单元编程以后,随着时间的流逝,存储的电荷可能会逸出,从而发生数据保留错误。这种错误会导致这个存储单元的阈值电压会降低,如图3所示。可见,一个存储单元的热平衡电压是在0V左右,所以阈值电压越高,越可能发生电荷逸出,从而导致数据保留错误。统计中也发现,对于数据保留错误,upper page发生从1到0的错误比较多,而lower page发生从0到1的错误比较多。When a memory cell is programmed, as time passes, the stored charge may escape, causing a data retention error. This type of error can cause the threshold voltage of this memory cell to decrease, as shown in Figure 3. It can be seen that the heat balance voltage of one memory cell is around 0V, so the higher the threshold voltage, the more likely the charge to escape, resulting in data retention errors. Statistics also found that for data retention errors, the upper page has more errors from 1 to 0, while the lower page has more errors from 0 to 1.
为此,本发明实施例提供了一种通过降低数据10和00的概率来减少数据保留错误的数据处理方法,以在不增加过多的冗余位、不占据过多的存储空间的前提下,有效地降低NAND闪存设备的数据错误发生概率,提升NAND闪存设备的总体性能。To this end, the embodiment of the present invention provides a data processing method for reducing data retention errors by reducing the probability of data 10 and 00, so as not to add excessive redundancy bits and occupy excessive storage space. Effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
图4示意性示出了本发明一个实施例的NAND闪存设备的数据处理方法的流程图。参照图4,本发明实施例的NAND闪存设备的数据处理方法具体包括以下步骤:4 is a flow chart schematically showing a data processing method of a NAND flash memory device in accordance with an embodiment of the present invention. Referring to FIG. 4, the data processing method of the NAND flash memory device of the embodiment of the present invention specifically includes the following steps:
S11、接收到主机发送的数据写入请求命令时,判定待处理块数据在NAND闪存设备的待操作存储单元中对应的Page页。S11. When receiving a data write request command sent by the host, determining that the to-be-processed block data is in a corresponding Page page in the to-be-operated storage unit of the NAND flash memory device.
S12、根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识。S12. Perform inverse operation on the to-be-processed block data according to a preset rule according to a type of the Page page and a data feature of the to-be-processed block data, and perform data processing in the metadata area corresponding to the Page page of the to-be-operated storage unit. The way the logo is.
S13、对处理后的待处理块数据进行编码,并将编码后的编码数据写入所述待操作存储单元。S13. Encode the processed block data to be processed, and write the encoded coded data into the to-be-operated storage unit.
本发明实施例提供的NAND闪存设备的数据处理方法,接收到主机发送的数据写入请求命令时,根据待操作存储单元中对应的Page页的类型以及待处理块数据的数据特征,按照预设规则对待处理块数据进行求反运算,并在NAND闪存设备的存储单元中的元数据区存储少量信息来标识该存储单元对应Page页中存储数据对应的数据处理方式,进而利用这些信息来 减少数据保留错误,能够有效地降低NAND闪存设备的数据错误发生概率,提升NAND闪存设备的总体性能。The data processing method of the NAND flash memory device provided by the embodiment of the present invention, according to the data write request command sent by the host, according to the type of the corresponding Page page in the storage unit to be operated and the data feature of the block data to be processed, according to the preset The rule performs the negation operation on the processing block data, and stores a small amount of information in the metadata area in the storage unit of the NAND flash memory device to identify the data processing mode corresponding to the stored data in the corresponding page page of the storage unit, and then uses the information to reduce the data. Retaining errors can effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
进一步地,所述方法还包括预先为所述NAND闪存设备中的每一存储单元设置对应的元数据区的步骤。其中,所述元数据区用于标识写入存储单元不同Page页的数据对应的数据处理方式。Further, the method further includes the step of setting a corresponding metadata area for each of the NAND flash memory devices in advance. The metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
本发明实施例中,步骤S12进一步可以包括以下两种情况,具体如下:In the embodiment of the present invention, the step S12 may further include the following two situations, as follows:
当所述Page页为lower page页时,判定所述待处理块数据中0的数量是否大于1的数量;若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;否则,直接对所述待处理块数据进行编码操作。When the Page page is a lower page, determining whether the number of 0s in the to-be-processed block data is greater than 1; if yes, inverting data corresponding to each bit in the to-be-processed block data The operation is performed, and the data processing mode identifier corresponding to the inverse operation is written in the metadata area corresponding to the Page page of the to-be-operated storage unit; otherwise, the encoding operation is performed on the to-be-processed block data.
当所述Page页不为lower page页时,也即当所述Page页为upper page页时,判定所述待处理块数据中1的数量是否大于0的数量;若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;否则,直接对所述待处理块数据进行编码操作。When the Page page is not a lower page page, that is, when the Page page is an upper page page, it is determined whether the number of 1 in the to-be-processed block data is greater than 0; if yes, the to-be-processed The data corresponding to each bit in the block data is subjected to a negation operation, and the data processing mode identifier corresponding to the inverse operation is written in the metadata area corresponding to the Page page of the to-be-operated storage unit; otherwise, the The block data is processed for encoding operations.
下面以MLC NAND闪存设备为例对本发明技术方案进行解释说明。The technical solution of the present invention will be explained below by taking an MLC NAND flash memory device as an example.
MLC NAND闪存应用于固态硬盘时,都是以块设备的方式来访问。一个块的大小多为512字节或4K字节。本发明实施例中以4K字节为例。当主机写入4K字节数据时,固态硬盘主控器会根据采用的BCH/LDPC技术来进行编码,同时针对每一个4K字节数据,主控器都会添加少许字节的元数据,用于存储数据的管理信息。本发明实施例提出的数据方法就是利用元数据的存储区来减少NAND闪存的数据保留错误。When MLC NAND flash is applied to a solid state drive, it is accessed as a block device. The size of a block is mostly 512 bytes or 4K bytes. In the embodiment of the present invention, 4K bytes is taken as an example. When the host writes 4K bytes of data, the SSD master will encode according to the adopted BCH/LDPC technology, and for each 4K bytes of data, the master will add a few bytes of metadata for Management information for storing data. The data method proposed by the embodiment of the present invention utilizes the storage area of the metadata to reduce the data retention error of the NAND flash memory.
对于固态硬盘来说,数据的可靠性是最重要的。根据木桶理论,数据的可靠性出现问题往往发生在最差的情况。尤其是现在的固态硬盘容量越来越大,小概率事件也会随着统计样本的增大而变得不可忽视。比如,对于数据保留错误来说,如果在NAND中存储的数据都是10(data state是3,upper page为1,lower page为0),那么可能会发生很多的数据保留错误,很可能超过BCH/LDPC等技术的纠错能力,从而造成不可恢复的错误,影响数据的可靠性。因此,本发明实施例提出的数据处理方法就是要防止这种极端情况的发生。同时,为了减少冗余位占据太多存储空间,针对一块(512字节或4K字节)数据,本发明实施例只在元数据区存储少量比特来标识数据处理方式。参见图5,图5为对于4K字节的写操作处理的具体处理流程图,具体包括:接收到主机发送的数据写入请求命令时,初始化元数据区中的用 于标识写入存储单元不同Page页的数据对应的数据处理方式的标识信息,在一个具体实施例中,可将该标识信息设置为0。对于待操作存储单元中的lower page的块数据,如果原始数据中0的数量大于1的数量,则将整块数据反转,即进行求反运算,并在元数据区存储1,以表示该存储单元对应的Page页的数据是经过数据反转后的数据,以在后续进行数据读取时,通过进行相应的反转操作而得到原始数据。如果原始数据中0的数量小于等于1的数量,则不对整块数据进行反转,并在元数据区存储0,以表示该存储单元对应的Page页的数据是未经过数据反转处理的数据,后续可进行直接读取并发送主机。然后,将经过求反运算后的数据通过BCH/LDPC纠错技术进行编码,并发送到存储单元。对于待操作存储单元中的upper page的块数据,如果原始数据中1的数量大于0的数量,则将整块数据反转,并在元数据区存储1。如果原始数据中1的数量小于等于0的数量,则不对整块数据进行反转,并在元数据区存储0。For SSDs, the reliability of the data is the most important. According to the barrel theory, problems with the reliability of data often occur in the worst case. In particular, the capacity of SSDs is getting larger and larger, and small-probability events will become unnegligible as statistical samples increase. For example, for data retention errors, if the data stored in NAND is 10 (data state is 3, upper page is 1, lower page is 0), then many data retention errors may occur, possibly exceeding BCH. The error correction capability of technologies such as /LDPC causes irreversible errors and affects the reliability of data. Therefore, the data processing method proposed by the embodiment of the present invention is to prevent the occurrence of such an extreme situation. At the same time, in order to reduce redundant bits occupying too much storage space, for one piece (512 bytes or 4 Kbytes) of data, the embodiment of the present invention stores only a small number of bits in the metadata area to identify the data processing mode. Referring to FIG. 5, FIG. 5 is a specific processing flowchart of a 4K byte write operation process, which specifically includes: when receiving a data write request command sent by a host, differentiating the metadata storage area for identifying the write storage unit The identification information of the data processing mode corresponding to the data of the page page may be set to 0 in one specific embodiment. For the block data of the lower page in the storage unit to be operated, if the number of 0s in the original data is greater than one, the entire block of data is inverted, that is, the inverse operation is performed, and 1 is stored in the metadata area to indicate the The data of the Page page corresponding to the storage unit is the data after the data is inverted, so that the original data is obtained by performing the corresponding inversion operation when the data is subsequently read. If the number of 0s in the original data is less than or equal to 1, the entire block of data is not inverted, and 0 is stored in the metadata area to indicate that the data of the Page page corresponding to the storage unit is data that has not undergone data inversion processing. The subsequent can be directly read and sent to the host. Then, the inverted data is encoded by the BCH/LDPC error correction technique and sent to the storage unit. For the block data of the upper page in the storage unit to be operated, if the number of 1s in the original data is greater than 0, the entire block of data is inverted, and 1 is stored in the metadata area. If the number of 1s in the original data is less than or equal to 0, the entire block of data is not inverted and 0 is stored in the metadata area.
本发明实施例中,在将编码后的编码数据写入所述待操作存储单元之后,所述方法还包括以下步骤:In the embodiment of the present invention, after the encoded encoded data is written into the to-be-operated storage unit, the method further includes the following steps:
当接收到所述主机发送的数据读取请求命令时,从待操作存储单元的Page页中读取目标数据,并对所述目标数据进行解码;When receiving the data read request command sent by the host, reading the target data from the Page page of the storage unit to be operated, and decoding the target data;
获取所述目标数据对应Page页的元数据区中的标识信息;Obtaining the identification information in the metadata area corresponding to the Page page of the target data;
判定所述标识信息是否为求反运算对应的数据处理方式标识,若是,则将解码后的块数据中每一比特位对应的数据均进行求反运算,并将得到的块数据传输到主机,否则,直接将解码后的块数据传输到主机。Determining whether the identification information is a data processing mode identifier corresponding to the inverse operation, and if so, inverting the data corresponding to each bit in the decoded block data, and transmitting the obtained block data to the host, Otherwise, the decoded block data is directly transmitted to the host.
在一个具体实施例中,参见图6,图6为对于4K字节的读取操作处理的具体处理流程图,具体包括:接收到主机发送的数据读取请求命令时,从待操作存储单元的Page页中读取数据,并通过BCH/LDPC纠错技术对读取到的数据进行解码,然后获取存储数据的Page页的元数据区中的标识信息,若元数据区的标识信息为1,则表示该Page页的数据是经过数据反转后的数据,因此,将解码后的块数据中每一比特位对应的数据均进行求反运算,并将得到的块数据传输到主机,否则直接将解码后的块数据传输到主机。In a specific embodiment, referring to FIG. 6, FIG. 6 is a specific processing flowchart for a 4K byte read operation process, which specifically includes: when receiving a data read request command sent by a host, from a storage unit to be operated The page reads the data, and decodes the read data through the BCH/LDPC error correction technology, and then obtains the identification information in the metadata area of the Page page storing the data. If the identification information of the metadata area is 1, The data of the Page page is data after data inversion. Therefore, the data corresponding to each bit in the decoded block data is inversely operated, and the obtained block data is transmitted to the host, otherwise The decoded block data is transmitted to the host.
本发明实施例提供的NAND闪存设备的数据处理方法,结合通用的BCH/LDPC等纠错技术,在以NAND FLASH为存储介质的块设备中的元数据区存储少量信息来标识数据的模式,利用这些信息来减少数据保留错误,有效地降低NAND闪存设备的数据错误发生概率。The data processing method of the NAND flash memory device provided by the embodiment of the present invention combines a common BCH/LDPC error correction technology to store a small amount of information in a metadata area of a block device using NAND FLASH as a storage medium to identify a data mode. This information reduces data retention errors and effectively reduces the probability of data errors in NAND flash devices.
本发明实施例提供的技术方案,不仅限于MLC NAND闪存设备,对于TLC和SLC NAND 闪存设备也同样适用,对于TLC和SLC NAND闪存设备的数据处理方法实施例而言,由于其与MLC NAND闪存设备的数据处理方法实施例基本相似,因此不做过多描述,相关之处可参见MLC NAND闪存设备的数据处理方法实施例的部分说明即可。The technical solution provided by the embodiments of the present invention is not limited to the MLC NAND flash memory device, and is also applicable to the TLC and SLC NAND flash memory devices. For the data processing method embodiments of the TLC and SLC NAND flash memory devices, due to the MLC NAND flash memory device The data processing method embodiments are basically similar, so the description is not described too much. For related details, refer to the description of the embodiment of the data processing method of the MLC NAND flash memory device.
另外,本发明实施例提供的技术方案,不仅限于固态硬盘应用,对于以NAND FLASH为存储介质的其他块设备,只要存在元数据区,均可应用本发明实施例提供的NAND闪存设备的数据处理方法,以有效地降低NAND闪存设备的数据错误发生概率。In addition, the technical solution provided by the embodiment of the present invention is not limited to the SSD application. For other block devices that use the NAND FLASH as the storage medium, the data processing of the NAND flash memory device provided by the embodiment of the present invention can be applied as long as the metadata area exists. The method is to effectively reduce the probability of data error occurrence of the NAND flash device.
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。For the method embodiments, for the sake of simple description, they are all expressed as a series of action combinations, but those skilled in the art should understand that the embodiments of the present invention are not limited by the described action sequence, because the embodiment according to the present invention Some steps can be performed in other orders or at the same time. In the following, those skilled in the art should also understand that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present invention.
图7示意性示出了本发明一个实施例的NAND闪存设备的数据处理装置的结构示意图。本发明实施例的NAND闪存设备的数据处理装置可以设置于NAND闪存设备的主控器内,或通过主控器来实现。参照图7,本发明实施例的NAND闪存设备的数据处理装置具体包括判定模块701、数据处理模块702以及命令执行模块703,其中:所述的判定模块701,用于在接收到主机发送的数据写入请求命令时,判定待处理块数据在NAND闪存设备的待操作存储单元中对应的Page页;所述的数据处理模块702,用于根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识;所述的命令执行模块703,用于对所述数据处理模块702处理后的待处理块数据进行编码,并将编码后的编码数据写入所述待操作存储单元。FIG. 7 is a schematic block diagram showing the structure of a data processing apparatus of a NAND flash memory device according to an embodiment of the present invention. The data processing apparatus of the NAND flash memory device of the embodiment of the present invention may be disposed in a main controller of the NAND flash memory device or implemented by a main controller. Referring to FIG. 7, the data processing apparatus of the NAND flash memory device of the embodiment of the present invention specifically includes a determining module 701, a data processing module 702, and a command execution module 703, wherein: the determining module 701 is configured to receive data sent by the host. When the request command is written, it is determined that the to-be-processed block data is in the corresponding Page page in the to-be-operated storage unit of the NAND flash memory device; the data processing module 702 is configured to use, according to the type of the Page page and the data characteristics of the to-be-processed block data, Performing a negation operation on the to-be-processed block data according to a preset rule, and performing data processing mode identification on a metadata area corresponding to the Page page of the to-be-operated storage unit; the command execution module 703 is configured to The to-be-processed block data processed by the data processing module 702 is encoded, and the encoded encoded data is written into the to-be-operated storage unit.
本发明实施例提供的NAND闪存设备的数据处理装置,在接收到主机发送的数据写入请求命令时,根据待操作存储单元中对应的Page页的类型以及待处理块数据的数据特征,按照预设规则对待处理块数据进行求反运算,并在NAND闪存设备的存储单元中的元数据区存储少量信息来标识该存储单元对应Page页中存储数据对应的数据处理方式,进而利用这些信息来减少数据保留错误,能够有效地降低NAND闪存设备的数据错误发生概率,提升NAND闪存设备的总体性能。The data processing apparatus of the NAND flash memory device provided by the embodiment of the present invention, according to the data write request command sent by the host, according to the type of the corresponding Page page in the storage unit to be operated and the data characteristics of the to-be-processed block data, according to the pre-pre The rule is to perform the negation operation on the processing block data, and store a small amount of information in the metadata area in the storage unit of the NAND flash memory device to identify the data processing mode corresponding to the stored data in the corresponding page page of the storage unit, and then use the information to reduce Data retention errors can effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
在本发明的一个可选实施例中,所述NAND闪存设备的数据处理装置还包括附图中未示出的配置模块,所述的配置模块,用于预先为所述NAND闪存设备中的每一存储单元设置对应的元数据区,所述元数据区用于标识写入存储单元不同Page页的数据对应的数据处理方 式。In an optional embodiment of the present invention, the data processing apparatus of the NAND flash memory device further includes a configuration module not shown in the drawing, the configuration module for pre-empting each of the NAND flash memory devices A storage unit sets a corresponding metadata area, and the metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
本发明实施例中,所述数据处理模块702,具体用于当所述Page页为lower page页时,判定所述待处理块数据中0的数量是否大于1的数量,若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;In the embodiment of the present invention, the data processing module 702 is specifically configured to determine, when the Page page is a lower page page, whether the number of 0s in the to-be-processed block data is greater than 1, and if yes, The data corresponding to each bit in the to-be-processed block data is inversely operated, and the data processing mode identifier corresponding to the inverse operation is written into the metadata area of the Page page corresponding to the to-be-operated storage unit;
所述命令执行模块703,还用于当所述待处理块数据中0的数量小于或等于1的数量时,直接对所述待处理块数据进行编码操作。The command execution module 703 is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 0s in the to-be-processed block data is less than or equal to 1.
本发明实施例中,所述数据处理模块702,具体用于当所述Page页为upper page页时,判定所述待处理块数据中1的数量是否大于0的数量,若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;In the embodiment of the present invention, the data processing module 702 is specifically configured to determine, when the Page page is an upper page page, whether the number of 1 in the to-be-processed block data is greater than 0, and if yes, The data corresponding to each bit in the to-be-processed block data is inversely operated, and the data processing mode identifier corresponding to the inverse operation is written into the metadata area of the Page page corresponding to the to-be-operated storage unit;
所述命令执行模块703,还用于当所述待处理块数据中1的数量小于或等于0的数量时,直接对所述待处理块数据进行编码操作。The command execution module 703 is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 1 in the to-be-processed block data is less than or equal to 0.
在本发明的一个可选实施例中,所述命令执行模块703,还用于在将编码后的编码数据写入所述待操作存储单元之后,当接收到所述主机发送的数据读取请求命令时,从待操作存储单元的Page页中读取目标数据,并对所述目标数据进行解码。In an optional embodiment of the present invention, the command execution module 703 is further configured to: after the encoded encoded data is written into the to-be-operated storage unit, receive a data read request sent by the host At the time of the command, the target data is read from the Page page of the storage unit to be operated, and the target data is decoded.
相应的,参照图8,所述装置还包括获取模块704,所述的获取模块704,用于获取所述目标数据对应Page页的元数据区中的标识信息;Correspondingly, referring to FIG. 8 , the apparatus further includes an obtaining module 704, where the acquiring module 704 is configured to acquire identifier information in a metadata area corresponding to the Page page of the target data;
进一步地,所述的判定模块701,还用于判定所述标识信息是否为求反运算对应的数据处理方式标识;Further, the determining module 701 is further configured to determine whether the identifier information is a data processing mode identifier corresponding to the inverse operation;
所述的数据处理模块702,还用于当所述判定模块701的判定结果为所述标识信息是求反运算对应的数据处理方式标识时,将解码后的块数据中每一比特位对应的数据均进行求反运算,并将得到的块数据传输到主机,否则,直接将解码后的块数据传输到主机。The data processing module 702 is further configured to: when the determination result of the determining module 701 is that the identifier information is a data processing mode identifier corresponding to the negation operation, corresponding to each bit in the decoded block data The data is negated and the obtained block data is transmitted to the host. Otherwise, the decoded block data is directly transmitted to the host.
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。For the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the description of the method embodiment.
与现有技术相比,本发明技术方案主要的优点如下:Compared with the prior art, the main advantages of the technical solution of the present invention are as follows:
本发明实施例提供的NAND闪存设备的数据处理方法及装置,接收到主机发送的数据写入请求命令时,根据待操作存储单元中对应的Page页的类型以及待处理块数据的数据特征, 按照预设规则对待处理块数据进行求反运算,并在NAND闪存设备的存储单元中的元数据区存储少量信息来标识该存储单元对应Page页中存储数据对应的数据处理方式,进而利用这些信息来减少数据保留错误,能够有效地降低NAND闪存设备的数据错误发生概率,提升NAND闪存设备的总体性能。The data processing method and device of the NAND flash memory device provided by the embodiment of the present invention, when receiving the data write request command sent by the host, according to the type of the corresponding Page page in the storage unit to be operated and the data characteristics of the block data to be processed, according to The preset rule performs a negation operation on the processing block data, and stores a small amount of information in the metadata area in the storage unit of the NAND flash memory device to identify a data processing manner corresponding to the stored data in the corresponding page page of the storage unit, and then uses the information to Reducing data retention errors can effectively reduce the probability of data errors in NAND flash devices and improve the overall performance of NAND flash devices.
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art will appreciate that embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) including computer usable program code.
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present invention has been described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (system), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or FIG. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device. Means for implementing the functions specified in one or more of the flow or in a block or blocks of the flow chart.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。The computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device. The apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device. The instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。It is apparent that those skilled in the art can make various modifications and variations to the invention without departing from the spirit and scope of the invention. Thus, it is intended that the present invention cover the modifications and modifications of the invention

Claims (10)

  1. 一种NAND闪存设备的数据处理方法,其特征在于,包括:A data processing method for a NAND flash memory device, comprising:
    接收到主机发送的数据写入请求命令时,判定待处理块数据在NAND闪存设备的待操作存储单元中对应的Page页;Receiving a data write request command sent by the host, determining that the to-be-processed block data is in a corresponding Page page in the to-be-operated storage unit of the NAND flash memory device;
    根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识;Determining the to-be-processed block data according to a preset rule according to a type of the page page and a data feature of the to-be-processed block data, and performing data processing on the metadata area corresponding to the Page page of the to-be-operated storage unit Identification
    对处理后的待处理块数据进行编码,并将编码后的编码数据写入所述待操作存储单元。The processed block data to be processed is encoded, and the encoded coded data is written into the to-be-operated memory unit.
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:The method of claim 1 further comprising:
    预先为所述NAND闪存设备中的每一存储单元设置对应的元数据区,所述元数据区用于标识写入存储单元不同Page页的数据对应的数据处理方式。A corresponding metadata area is set in advance for each of the NAND flash memory devices, and the metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
  3. 根据权利要求1或2所述的方法,其特征在于,所述根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识,包括:The method according to claim 1 or 2, wherein the inverse of the to-be-processed block data is performed according to a preset rule according to a type of the Page page and a data feature of the to-be-processed block data, and Declaring the identifier of the data processing mode corresponding to the metadata area of the Page page corresponding to the operation storage unit, including:
    当所述Page页为lower page页时,判定所述待处理块数据中0的数量是否大于1的数量;若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;否则,直接对所述待处理块数据进行编码操作。When the Page page is a lower page, determining whether the number of 0s in the to-be-processed block data is greater than 1; if yes, inverting data corresponding to each bit in the to-be-processed block data The operation is performed, and the data processing mode identifier corresponding to the inverse operation is written in the metadata area corresponding to the Page page of the to-be-operated storage unit; otherwise, the encoding operation is performed on the to-be-processed block data.
  4. 根据权利要求1或2所述的方法,其特征在于,所述根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识,包括:The method according to claim 1 or 2, wherein the inverse of the to-be-processed block data is performed according to a preset rule according to a type of the Page page and a data feature of the to-be-processed block data, and Declaring the identifier of the data processing mode corresponding to the metadata area of the Page page corresponding to the operation storage unit, including:
    当所述Page页为upper page页时,判定所述待处理块数据中1的数量是否大于0的数量;若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;否则,直接对所述待处理块数据进行编码操作。When the Page page is an upper page page, determining whether the number of 1 in the to-be-processed block data is greater than 0; if yes, inverting data corresponding to each bit in the to-be-processed block data The operation is performed, and the data processing mode identifier corresponding to the inverse operation is written in the metadata area corresponding to the Page page of the to-be-operated storage unit; otherwise, the encoding operation is performed on the to-be-processed block data.
  5. 根据权利要求1所述的方法,其特征在于,在将编码后的编码数据写入所述待操作存储单元之后,所述方法还包括:The method according to claim 1, wherein after the encoded encoded data is written into the to-be-operated storage unit, the method further comprises:
    当接收到所述主机发送的数据读取请求命令时,从待操作存储单元的Page页中读取目标数据,并对所述目标数据进行解码;When receiving the data read request command sent by the host, reading the target data from the Page page of the storage unit to be operated, and decoding the target data;
    获取所述目标数据对应Page页的元数据区中的标识信息;Obtaining the identification information in the metadata area corresponding to the Page page of the target data;
    判定所述标识信息是否为求反运算对应的数据处理方式标识,若是,则将解码后的块数据中每一比特位对应的数据均进行求反运算,并将得到的块数据传输到主机,否则,直接将解码后的块数据传输到主机。Determining whether the identification information is a data processing mode identifier corresponding to the inverse operation, and if so, inverting the data corresponding to each bit in the decoded block data, and transmitting the obtained block data to the host, Otherwise, the decoded block data is directly transmitted to the host.
  6. 一种NAND闪存设备的数据处理装置,其特征在于,包括:A data processing device for a NAND flash memory device, comprising:
    判定模块,用于在接收到主机发送的数据写入请求命令时,判定待处理块数据在NAND闪存设备的待操作存储单元中对应的Page页;a determining module, configured to: when receiving a data write request command sent by the host, determine that the to-be-processed block data is in a corresponding Page page in the to-be-operated storage unit of the NAND flash memory device;
    数据处理模块,用于根据Page页的类型以及待处理块数据的数据特征,按照预设规则对所述待处理块数据进行求反运算,并在所述待操作存储单元对应Page页的元数据区进行数据处理方式的标识;a data processing module, configured to perform an inverse operation on the to-be-processed block data according to a type of a Page page and a data feature of the to-be-processed block data, and to perform metadata of the Page page corresponding to the to-be-operated storage unit The area identifies the data processing method;
    命令执行模块,用于对所述数据处理模块处理后的待处理块数据进行编码,并将编码后的编码数据写入所述待操作存储单元。The command execution module is configured to encode the to-be-processed block data processed by the data processing module, and write the encoded coded data into the to-be-operated storage unit.
  7. 根据权利要求6所述的装置,其特征在于,所述装置还包括:The device according to claim 6, wherein the device further comprises:
    配置模块,用于预先为所述NAND闪存设备中的每一存储单元设置对应的元数据区,所述元数据区用于标识写入存储单元不同Page页的数据对应的数据处理方式。And a configuration module, configured to pre-set a corresponding metadata area for each storage unit in the NAND flash memory device, where the metadata area is used to identify a data processing manner corresponding to data written to different Page pages of the storage unit.
  8. 根据权利要求6或7所述的装置,其特征在于,所述数据处理模块,具体用于当所述Page页为lower page页时,判定所述待处理块数据中0的数量是否大于1的数量,若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;The device according to claim 6 or 7, wherein the data processing module is configured to determine whether the number of 0s in the to-be-processed block data is greater than 1 when the Page page is a lower page page. The quantity, if yes, inverts the data corresponding to each bit of the to-be-processed block data, and writes the data processing mode identifier corresponding to the inverse operation to the element corresponding to the Page page of the to-be-operated storage unit Data area
    所述命令执行模块,还用于当所述待处理块数据中0的数量小于或等于1的数量时,直接对所述待处理块数据进行编码操作。The command execution module is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 0s in the to-be-processed block data is less than or equal to 1.
  9. 根据权利要求6或7所述的装置,其特征在于,所述数据处理模块,具体用于当所述Page页为upper page页时,判定所述待处理块数据中1的数量是否大于0的数量,若是,则将所述待处理块数据中每一比特位对应的数据均进行求反运算,并将求反运算对应的数据处理方式标识写入所述待操作存储单元对应Page页的元数据区;The device according to claim 6 or 7, wherein the data processing module is configured to determine whether the number of 1 in the to-be-processed block data is greater than 0 when the Page page is an upper page page. The quantity, if yes, inverts the data corresponding to each bit of the to-be-processed block data, and writes the data processing mode identifier corresponding to the inverse operation to the element corresponding to the Page page of the to-be-operated storage unit Data area
    所述命令执行模块,还用于当所述待处理块数据中1的数量小于或等于0的数量时,直接对所述待处理块数据进行编码操作。The command execution module is further configured to directly perform an encoding operation on the to-be-processed block data when the number of 1 in the to-be-processed block data is less than or equal to 0.
  10. 根据权利要求6所述的装置,其特征在于,所述命令执行模块,还用于在将编码后 的编码数据写入所述待操作存储单元之后,当接收到所述主机发送的数据读取请求命令时,从待操作存储单元的Page页中读取目标数据,并对所述目标数据进行解码;The device according to claim 6, wherein the command execution module is further configured to: after the encoded encoded data is written into the to-be-operated storage unit, receive data read by the host When the command is requested, the target data is read from the Page page of the storage unit to be operated, and the target data is decoded;
    所述装置还包括:The device also includes:
    获取模块,用于获取所述目标数据对应Page页的元数据区中的标识信息;An obtaining module, configured to acquire identifier information in a metadata area corresponding to the Page page of the target data;
    相应的,所述判定模块,还用于判定所述标识信息是否为求反运算对应的数据处理方式标识;Correspondingly, the determining module is further configured to determine whether the identifier information is a data processing mode identifier corresponding to the inverse operation;
    所述数据处理模块,还用于当所述判定模块的判定结果为所述标识信息是求反运算对应的数据处理方式标识时,将解码后的块数据中每一比特位对应的数据均进行求反运算,并将得到的块数据传输到主机,否则,直接将解码后的块数据传输到主机。The data processing module is further configured to: when the determination result of the determining module is that the identifier information is a data processing mode identifier corresponding to the negation operation, perform data corresponding to each bit in the decoded block data Reverse the operation and transfer the obtained block data to the host. Otherwise, the decoded block data is directly transmitted to the host.
PCT/CN2018/083355 2017-04-17 2018-04-17 Data processing method and apparatus for nand flash memory device WO2018192488A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710251994.8A CN107102820B (en) 2017-04-17 2017-04-17 The data processing method and device of a kind of NAND flash memory equipment
CN201710251994.8 2017-04-17

Publications (1)

Publication Number Publication Date
WO2018192488A1 true WO2018192488A1 (en) 2018-10-25

Family

ID=59657032

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/083355 WO2018192488A1 (en) 2017-04-17 2018-04-17 Data processing method and apparatus for nand flash memory device

Country Status (2)

Country Link
CN (1) CN107102820B (en)
WO (1) WO2018192488A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102820B (en) * 2017-04-17 2018-07-06 北京得瑞领新科技有限公司 The data processing method and device of a kind of NAND flash memory equipment
CN111488122A (en) * 2017-10-25 2020-08-04 华为技术有限公司 Data writing method and storage device
CN109407989B (en) * 2018-10-18 2022-02-18 郑州云海信息技术有限公司 Method and device for flashing metadata
EP3834066A4 (en) * 2018-10-26 2022-03-09 Yangtze Memory Technologies Co., Ltd. Data processing method for memory and related data processor
CN110704235B (en) * 2019-09-23 2023-03-21 深圳忆联信息系统有限公司 SSD data protection method and device, computer equipment and storage medium
CN114281271B (en) * 2022-03-07 2022-05-13 北京得瑞领新科技有限公司 Method for judging reliability of NAND flash memory data, storage medium and storage device
CN115617567B (en) * 2022-12-16 2023-04-14 珠海妙存科技有限公司 Data recovery method and device of flash memory, electronic equipment and medium
CN116757158B (en) * 2023-08-11 2024-01-23 深圳致赢科技有限公司 Data management method based on semiconductor storage

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083138A (en) * 2007-05-30 2007-12-05 忆正存储技术(深圳)有限公司 Flash memory data read-write processing method
CN101999148A (en) * 2007-12-27 2011-03-30 韩商英得联股份有限公司 Flash memory device and flash memory programming method equalizing wear-level
US20130166827A1 (en) * 2010-06-28 2013-06-27 International Business Machines Corporation Wear-level of cells/pages/sub-pages/blocks of a memory
CN103514060A (en) * 2012-06-29 2014-01-15 富士通株式会社 Data converting method and data converting apparatus
CN107102820A (en) * 2017-04-17 2017-08-29 北京得瑞领新科技有限公司 The data processing method and device of a kind of NAND flash memory equipment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101025792A (en) * 2006-02-17 2007-08-29 游旭 Audio book and pickup body
CN103578565B (en) * 2012-07-19 2017-06-20 百富计算机技术(深圳)有限公司 The method of calibration and device of a kind of NAND Flash memory chips
CN104715102B (en) * 2014-12-30 2018-05-08 华立科技股份有限公司 The design method of intelligent electric energy meter load curve based on dichotomy

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083138A (en) * 2007-05-30 2007-12-05 忆正存储技术(深圳)有限公司 Flash memory data read-write processing method
CN101999148A (en) * 2007-12-27 2011-03-30 韩商英得联股份有限公司 Flash memory device and flash memory programming method equalizing wear-level
US20130166827A1 (en) * 2010-06-28 2013-06-27 International Business Machines Corporation Wear-level of cells/pages/sub-pages/blocks of a memory
CN103514060A (en) * 2012-06-29 2014-01-15 富士通株式会社 Data converting method and data converting apparatus
CN107102820A (en) * 2017-04-17 2017-08-29 北京得瑞领新科技有限公司 The data processing method and device of a kind of NAND flash memory equipment

Also Published As

Publication number Publication date
CN107102820A (en) 2017-08-29
CN107102820B (en) 2018-07-06

Similar Documents

Publication Publication Date Title
WO2018192488A1 (en) Data processing method and apparatus for nand flash memory device
US11775178B2 (en) Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery
TWI455136B (en) Method for performing data shaping, and associated memory device and controller thereof
US20200042223A1 (en) System and method for facilitating a high-density storage device with improved performance and endurance
US9043517B1 (en) Multipass programming in buffers implemented in non-volatile data storage systems
CN107204207B (en) Method and architecture for using degraded flash memory die for cache applications, solid state drive
US11146291B2 (en) Configuring iterative error correction parameters using criteria from previous iterations
US10789003B1 (en) Selective deduplication based on data storage device controller status and media characteristics
US20240086282A1 (en) Multi-layer code rate architecture for copyback between partitions with different code rates
US11211119B1 (en) QLC programming method with staging of fine data
US20240184695A1 (en) Managing power loss recovery using a dirty section write policy for an address mapping table in a memory sub-system
US11886718B2 (en) Descrambling of scrambled linear codewords using non-linear scramblers
US20240264743A1 (en) Address translation metadata compression in memory devices
US9009576B1 (en) Adaptive LLR based on syndrome weight
US11928353B2 (en) Multi-page parity data storage in a memory device
US11977480B2 (en) Scaling factors for media management operations at a memory device
US11693736B2 (en) Modifying conditions for memory device error corrections operations
US20220294473A1 (en) Iterative error correction with adjustable parameters after a threshold number of iterations
US11137944B1 (en) Combined QLC programming method
US9704594B1 (en) Inter-cell interference reduction in flash memory devices
US20220199163A1 (en) Setting an initial erase voltage using feedback from previous operations
US10360973B2 (en) Data mapping enabling fast read multi-level 3D NAND to improve lifetime capacity
US11656938B2 (en) Preemptive read verification after hardware write back
US9367246B2 (en) Performance optimization of data transfer for soft information generation
US20240054048A1 (en) Multi-layer code rate architecture for special event protection with reduced performance penalty

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18787478

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18787478

Country of ref document: EP

Kind code of ref document: A1