WO2022021857A1 - 一种固态硬盘访问方法、装置、设备及介质 - Google Patents

一种固态硬盘访问方法、装置、设备及介质 Download PDF

Info

Publication number
WO2022021857A1
WO2022021857A1 PCT/CN2021/076979 CN2021076979W WO2022021857A1 WO 2022021857 A1 WO2022021857 A1 WO 2022021857A1 CN 2021076979 W CN2021076979 W CN 2021076979W WO 2022021857 A1 WO2022021857 A1 WO 2022021857A1
Authority
WO
WIPO (PCT)
Prior art keywords
read
current data
storage time
data block
reading
Prior art date
Application number
PCT/CN2021/076979
Other languages
English (en)
French (fr)
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 苏州浪潮智能科技有限公司
Priority to US18/009,820 priority Critical patent/US11734113B2/en
Publication of WO2022021857A1 publication Critical patent/WO2022021857A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/061Improving I/O performance
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/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
    • G06F11/1016Error in accessing a memory location, i.e. addressing 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0674Disk device

Definitions

  • the present application relates to the technical field of data storage, and in particular, to a method, apparatus, device, and medium for accessing a solid-state hard disk.
  • the storage of massive data plays an increasingly important role. While the speed of computing components such as CPU is getting higher and higher, the storage and reading rate of data has always been the bottleneck of the system. At present, with the gradual decline in the price of NAND flash memory, the number of solid-state drives used has also increased year by year. Unlike traditional hard disks, the storage unit of solid-state disks is NAND flash memory, and the ability of NAND flash memory to save data will increase with the passage of PE times, data read times, and data storage time, and the probability of reading data errors will increase, thus making error processing. become an important part of SSD.
  • the current error handling is to use the retry table given by the NAND manufacturer for error correction to obtain correct user data.
  • the read voltage value in the retry table given by the NAND manufacturer it tries to read the data in the hard disk in turn for error correction.
  • ERF Error Recovery Flow, error Recovery process
  • the purpose of this application is to provide a solid-state hard disk access method, device, device, and medium, which can re-read and correct errors in data read in the solid-state hard disk, save ERF time, and improve ERF efficiency, thereby Improves the data read performance of SSDs. Its specific plan is as follows:
  • the present application discloses a method for accessing a solid-state hard disk, including:
  • the first read voltage of the current data block is determined according to the current data storage time interval to which the data storage time of the current data block belongs;
  • the second reading voltage corresponding to the current data block is determined according to the current data storage time interval and a preset data reading rule, wherein the preset data reading rule is based on data Rules for saving time interval and data read times;
  • the data in the current data block is re-read and error-corrected based on the second read voltage until the re-read and error-correction of the current data block satisfies a preset re-read and error-correction condition.
  • performing rereading and error correction on the data in the current data block based on the first read voltage includes:
  • the first read voltage includes multiple read voltage values
  • re-reading and error correction is performed on the data in the current data block based on the respective read voltage values in the first read voltage.
  • the method before determining the first read voltage of the current data block according to the current data storage time interval to which the data storage time of the current data block belongs, the method further includes:
  • the read voltages corresponding to the data read times are acquired, and each of the data storage time intervals, the read voltages corresponding to each of the data storage time intervals, and the read voltages corresponding to the data read times are stored.
  • the acquiring preset data storage time interval information and reading voltages corresponding to each data storage time interval includes:
  • the read voltage corresponding to each data storage time interval in the preset data storage time interval information is determined based on the read voltage in the retry table of the solid-state hard disk where the current data block is located.
  • determining the read voltage corresponding to any data storage time interval in the preset data storage time interval information based on the read voltage in the retry table of the solid-state hard disk where the current data block is located including:
  • the data that the storage time belongs to this data storage time interval is read, and the reading accuracy rate corresponding to each reading voltage in the described retry table is obtained;
  • the read voltage corresponding to the data storage time interval is determined according to the read accuracy rate.
  • the method before determining the first read voltage of the current data block according to the current data storage time interval to which the data storage time of the current data block belongs, the method further includes:
  • the method further includes:
  • the read correct rate of the current data block is greater than or equal to the preset correct rate threshold, it is determined that the current data block is reread and error correction is successful;
  • the read correct rate of the current data block is less than the preset correct rate threshold, it is determined that the re-read error correction of the current data block fails.
  • the present application discloses a solid-state hard disk access device, including:
  • a first voltage determination module configured to determine the first read voltage of the current data block according to the current data storage time interval to which the data storage time of the current data block belongs when an error occurs in the data reading of the current data block;
  • a first data reading module configured to reread and correct data in the current data block based on the first reading voltage
  • the second voltage determination module is configured to determine the second read voltage corresponding to the current data block according to the current data storage time interval and the preset data read rule according to the current data block rereading error correction failure, wherein the preset data block Let the data read rule be a rule determined based on the data storage time interval and the number of data read times;
  • the second data reading module is configured to re-read and correct the data in the current data block based on the second reading voltage until the re-reading and error-correcting of the current data block satisfies the preset re-reading and error-correcting conditions.
  • an electronic device comprising:
  • the memory is used to store computer programs
  • the processor is configured to execute the computer program to implement the method for accessing the solid state disk disclosed above.
  • the present application discloses a computer-readable storage medium for storing a computer program, wherein when the computer program is executed by a processor, the aforementioned method for accessing a solid-state hard disk is implemented.
  • the present application determines the first reading voltage of the current data block according to the current data storage time interval to which the data storage time of the current data block belongs, and then based on the first reading voltage Take the voltage to reread and correct the data in the current data block. If the rereading and error correction of the current data block fails, the second reading voltage corresponding to the current data block is determined according to the current data storage time interval and the preset data reading rule.
  • the preset data read rule is a rule determined based on the data storage time interval and the number of data read times
  • the data in the current data block is re-read and error-corrected until the current data
  • the block reread error correction meets the preset reread error correction conditions.
  • the second read voltage corresponding to the current data block is determined according to the current data storage time interval and the preset data reading rule, and then based on the second read voltage.
  • the reading voltage rereads and corrects the data in the current data block until the rereading and correcting of the current data block satisfies the preset rereading and correcting conditions. In this way, the data is reread and corrected from the dimension of data storage time, and then the rereading error correction fails.
  • FIG. 1 is a flowchart of a method for accessing a solid-state hard disk disclosed in the application
  • FIG. 2 is a flowchart of a specific solid-state disk access method disclosed in the application
  • FIG. 3 is a schematic structural diagram of a solid-state hard disk access device disclosed in the present application.
  • FIG. 4 is a structural diagram of an electronic device disclosed in this application.
  • the processing of data read errors in SSDs is to use the retry table given by the NAND manufacturer for error correction to obtain correct user data.
  • the read voltage value in the retry table given by the NAND manufacturer it tries to read the data in the hard disk in turn for error correction.
  • the retry table includes more read voltages, which increases the time consumed by the entire ERF and reduces the The data reading efficiency of the hard disk is improved.
  • the present application proposes a solid-state hard disk access method, which can re-read and correct errors in data read in the solid-state hard disk, save ERF time, improve ERF efficiency, and thus improve the data reading of solid-state hard disks. performance.
  • an embodiment of the present application discloses a method for accessing a solid-state hard disk, and the method includes:
  • Step S11 When an error occurs in the data reading of the current data block, the first read voltage of the current data block is determined according to the current data storage time interval to which the data storage time of the current data block belongs.
  • the data storage time interval determines the first read voltage of the current data block, so as to perform re-reading and error correction on the current data block based on the first read voltage. That is, the current data storage time interval is determined according to the data storage time of the current current data block and the pre-stored preset data storage time interval information, and then the current data storage time interval is determined according to the read voltage corresponding to each pre-stored data storage time interval. The first read voltage value corresponding to the time interval.
  • the division of each data storage time interval in the preset data storage time interval information may be determined according to the actual situation, for example, the storage time of 2-3 months is divided into one data storage time interval.
  • the first read voltage may include multiple read voltage values, which may be specifically determined according to actual conditions, and are not specifically limited herein. Whether there is an error in the data reading of the current data block can be determined by judging whether the data read correct rate of the current data block is greater than or equal to the corresponding correct rate threshold.
  • Step S12 Reread and correct the data in the current data block based on the first read voltage.
  • the data in the current data block can be re-read and error-corrected based on the first read voltage. If the first read voltage includes multiple read voltage values, re-reading and error correction is performed on the data in the current data block based on the respective read voltage values in the first read voltage.
  • the current data block After the current data block is re-read and error-corrected based on the first read voltage, it is also necessary to determine whether the read correct rate of the current data block is greater than or equal to the preset correct rate threshold; if the read correct rate of the current data block is greater than or equal to If it is equal to the preset accuracy rate threshold, it is determined that the re-reading error correction of the current data block is successful; if the reading accuracy rate of the current data block is less than the preset accuracy rate threshold, it is determined that the current data block re-reading and error correction fails.
  • the first read voltage includes a plurality of read voltage values
  • the threshold of correctness rate is preset, so as to determine whether the rereading error correction of the current data block is successful under the current reading voltage. And when the read correct rate of the current data block under each read voltage value in the first read voltage is less than the preset correct rate threshold, it is determined that the current data block is reread and error correction fails.
  • the plurality of read voltage values are greater than or equal to two read voltage values.
  • Step S13 if the rereading and error correction of the current data block fails, the second reading voltage corresponding to the current data block is determined according to the current data storage time interval and the preset data reading rule, wherein the preset data reading rule The rules are determined based on the data retention time interval and the number of data reads.
  • the current data block fails to be reread error correction under the first read voltage, it is also necessary to determine the second read voltage corresponding to the current data block according to the current data storage time interval and the preset data read rule.
  • the preset data reading rule is a rule determined based on a data storage time interval and the number of times of data reading.
  • Step S14 Perform rereading and error correction on the data in the current data block based on the second read voltage, until the current data block rereading and correcting errors satisfies the preset rereading and correcting conditions.
  • the data in the current data block can be re-read and error-corrected according to the second read voltage, until the re-read and error-correction of the current data block satisfies a preset re-read and error-correction condition. That is, until the current data block is reread and error correction is successful, or until the current data block is read according to the reading voltage corresponding to each data storage time interval in the preset data reading rule and the reading voltage corresponding to the number of data reading times. Error correction completed.
  • the present application determines the first reading voltage of the current data block according to the current data storage time interval to which the data storage time of the current data block belongs, and then based on the first reading voltage Take the voltage to reread and correct the data in the current data block. If the rereading and error correction of the current data block fails, the second reading voltage corresponding to the current data block is determined according to the current data storage time interval and the preset data reading rule.
  • the preset data read rule is a rule determined based on the data storage time interval and the number of data read times
  • the data in the current data block is re-read and error-corrected until the current data
  • the block reread error correction meets the preset reread error correction conditions.
  • the second read voltage corresponding to the current data block is determined according to the current data storage time interval and the preset data reading rule, and then based on the second read voltage.
  • the read voltage re-reads and corrects the data in the current data block until the current data block re-read and error-correction satisfies the preset re-read and error-correction conditions.
  • data re-read and error-correction are first performed from the dimension of data storage time, and then based on the current data block
  • the current data storage time interval and the preset data reading rules perform data re-reading and error-correcting for the current data block, which can re-read and correct the errors in the data read in the SSD, save ERF time, improve ERF efficiency, and thus improve
  • the data read performance of the solid-state drive is improved.
  • an embodiment of the present application discloses a specific solid-state disk access method, which includes:
  • Step S21 Acquire preset data storage time interval information and read voltages corresponding to each data storage time interval.
  • the data storage time is first divided into different intervals, and then the reading voltage corresponding to each time interval is determined.
  • the data storage time is divided into three intervals, the first interval A is 0-1 month, the third interval The second interval B is from January to February, and the third interval C is from February to March.
  • the above time intervals are based on the equivalent time at 40 degrees.
  • the division of each time interval can be determined according to specific conditions, which is not limited here.
  • the acquiring preset data storage time interval information and the reading voltage corresponding to each data storage time interval includes: acquiring the preset data storage time interval information; reading based on the retry table of the solid-state hard disk where the current data block is located
  • the voltage determines the read voltage corresponding to each data storage time interval in the preset data storage time interval information. That is, first obtain the preset data storage time interval information, and then determine the corresponding data storage time interval in the preset data storage time interval information based on the read voltage in the retry table of the solid-state hard disk where the current data block is located. Read the voltage. That is, the data whose storage time belongs to each data storage time interval is simulated and read to determine the read voltage corresponding to each data storage time interval.
  • determining the read voltage corresponding to any data storage time interval in the preset data storage time interval information based on the read voltage in the retry table of the solid-state hard disk where the current data block is located includes: Read the data whose storage time belongs to the data storage time interval for each read voltage of The read voltage corresponding to the interval. That is, the data whose storage time belongs to the data storage time interval is read based on the respective read voltages in the retry table, and the read accuracy rates corresponding to the respective read voltages in the retry table are obtained, and then The read accuracy rates are sorted in descending order, and the read voltages corresponding to the first N read accuracy rates are determined as the read voltages corresponding to the data storage time interval.
  • N is a positive integer greater than or equal to 1. For example, N can take 8.
  • Step S22 Acquire the read voltage corresponding to the data read times, and store each of the data storage time intervals, the read voltages corresponding to each of the data save time intervals, and the read voltages corresponding to the data read times .
  • the method for obtaining the read voltage corresponding to the number of data read times includes: reading data of different read times based on each read voltage in the retry table, respectively, to obtain the corresponding values of each read voltage in the retry table Then, the read accuracy rates are sorted in descending order, and the read voltages corresponding to the first M read accuracy rates are determined as the read voltages corresponding to the data read times.
  • M is a positive integer greater than or equal to 1.
  • M and N may or may not be the same.
  • Step S23 Acquire a preset data reading rule, and store the preset data reading rule, wherein the preset data reading rule is a rule determined based on a data storage time interval and the number of times of data reading.
  • the preset data reading rule determines that the re-reading and error correction in the dimension of data reading times cannot be performed in the last group.
  • the data storage time interval is divided into the aforementioned three intervals A, B, and C, and the number of data read times is regarded as a group D. If the current data storage time interval to which the data storage time of the current data block belongs is A, the After the failure to reread and correct the current data under the read voltage corresponding to the interval A, it indicates that the actual data storage time of the current data block is greater than that in the interval A, so the read voltage corresponding to the interval B is determined as the second read voltage, After the error correction of the current data based on the read voltage corresponding to the interval B fails, it indicates that the actual data storage time of the current data block is longer than that of the interval B, and the read voltage corresponding to the interval C should be determined as the next re-read correction.
  • the reading voltage corresponding to interval C is determined as the reading voltage for re-reading and error correction next, then the reading voltage of group D will become the last group of reading voltage, which is incorrect.
  • the reading voltage of group D needs to be determined as the reading voltage for rereading and error correction next, under the reading voltage corresponding to group D
  • the read voltage corresponding to the interval C is determined as the read voltage for the next rereading and error correction. That is, the order of the groups to which the read voltages for rereading and error correction belong is A-B-D-C.
  • the read voltage corresponding to interval C is determined as For the second read voltage, after the current data re-reading and error correction fails based on the read voltage corresponding to the interval C, the read voltage of group D is determined as the read voltage for re-reading and error correction next, and the read voltage of group D is determined as the read voltage for re-reading and error correction next.
  • the read voltage in interval A can be used to reread and correct the current data block. That is, the order of the group to which the read voltage for rereading and error correction belongs is B-C-D-A.
  • the current data storage time interval to which the data storage time of the current data block belongs is C
  • the read voltage corresponding to the interval D is determined as the Second reading voltage
  • the current data re-reading and error correction fails based on the reading voltage corresponding to interval D
  • the data storage time of interval C is the longest, but the re-reading and error correction still fails, so interval A can be reused
  • the current data block is re-read and error-corrected at the read voltage corresponding to the interval A.
  • the current data block is re-read and error-corrected by the read voltage of the interval B. That is, the order of the groups to which the read voltages for rereading and error correction belong is C-D-A-B.
  • Step S24 When an error occurs in the data reading of the current data block, the first read voltage of the current data block is determined according to the current data storage time interval to which the data storage time of the current data block belongs.
  • the first read voltage of the current data block is determined according to the current data storage time interval to which the data storage time of the current data block belongs.
  • Step S25 Reread and correct the data in the current data block based on the first read voltage.
  • Step S26 If the rereading and error correction of the current data block fails, the second reading voltage corresponding to the current data block is determined according to the current data storage time interval and the preset data reading rule.
  • the current data block is determined according to the current data storage time interval and the preset data reading rule For the corresponding second read voltage, for example, if the current data storage time interval is the aforementioned interval A, the read voltage corresponding to the interval B is determined as the second read voltage.
  • Step S27 Perform rereading and error correction on the data in the current data block based on the second read voltage, until the current data block rereading and correcting errors satisfies the preset rereading and correcting conditions.
  • the data in the current data block can be re-read and error-corrected based on the second read voltage, until the re-read error-correction of the current data block satisfies the preset re-reading. Error correction condition.
  • an embodiment of the present application discloses a solid-state hard disk access device, including:
  • the first voltage determination module 11 is used to determine the first read voltage of the current data block according to the current data storage time interval to which the data storage time of the current data block belongs when an error occurs in the data reading of the current data block;
  • a first data reading module 12 configured to reread and correct the data in the current data block based on the first reading voltage
  • the second voltage determination module 13 is configured to determine the second reading voltage corresponding to the current data block according to the current data storage time interval and the preset data reading rule according to the failure of rereading and correcting errors in the current data block, wherein the The preset data read rule is a rule determined based on the data storage time interval and the number of data read times;
  • the second data reading module 14 is configured to re-read and correct the data in the current data block based on the second read voltage until the re-read and error-correction of the current data block satisfies a preset re-read and error-correction condition.
  • the present application determines the first reading voltage of the current data block according to the current data storage time interval to which the data storage time of the current data block belongs, and then based on the first reading voltage Take the voltage to reread and correct the data in the current data block. If the rereading and error correction of the current data block fails, the second reading voltage corresponding to the current data block is determined according to the current data storage time interval and the preset data reading rule.
  • the preset data read rule is a rule determined based on the data storage time interval and the number of data read times
  • the data in the current data block is re-read and error-corrected until the current data
  • the block reread error correction meets the preset reread error correction conditions.
  • the second read voltage corresponding to the current data block is determined according to the current data storage time interval and the preset data reading rule, and then based on the second read voltage.
  • the read voltage re-reads and corrects the data in the current data block until the current data block re-read and error-correction satisfies the preset re-read and error-correction conditions.
  • data re-read and error-correction are first performed from the dimension of data storage time, and then based on the current data block
  • the current data storage time interval and the preset data reading rules perform data re-reading and error-correcting for the current data block, which can re-read and correct the errors in the data read in the SSD, save ERF time, improve ERF efficiency, and thus improve
  • the data read performance of the solid-state drive is improved.
  • the first data reading module 12 is specifically configured to: when the first reading voltage includes a plurality of reading voltage values, respectively based on each reading voltage in the first reading voltage The value rereads and corrects the data in the current data block.
  • the SSD access device further includes:
  • a first data acquisition module configured to acquire preset data storage time interval information and read voltages corresponding to each data storage time interval
  • the second data acquisition module is used to acquire the read voltage corresponding to the number of data read times
  • the data storage module is configured to store each of the data storage time intervals, the read voltage corresponding to each of the data storage time intervals, and the read voltage corresponding to the data read times.
  • the first data acquisition module is specifically used for:
  • the read voltage corresponding to each data storage time interval in the preset data storage time interval information is determined based on the read voltage in the retry table of the solid-state hard disk where the current data block is located.
  • the first data acquisition module is specifically used for:
  • the data whose storage time belongs to the data storage time interval is read based on each reading voltage in the retry table, respectively, to obtain the reading accuracy rate corresponding to each reading voltage in the retry table;
  • the read voltage corresponding to the data storage time interval is determined according to the read accuracy rate.
  • the SSD access device further includes:
  • a third data acquisition module configured to acquire the preset data reading rule, and store the preset data reading rule.
  • the SSD access device further includes:
  • the first judgment module is used for judging whether the read correct rate of the current data block is greater than or equal to the preset correct rate threshold;
  • the second judgment module is used to determine that the current data block is reread and corrected successfully when the read correct rate of the current data block is greater than or equal to the preset correct rate threshold;
  • the third judging module is used for determining that the rereading error correction of the current data block fails if the read correct rate of the current data block is less than the preset correct rate threshold.
  • FIG. 4 is a schematic structural diagram of an electronic device 20 according to an embodiment of the present application, and the electronic device 20 may include, but is not limited to, a tablet computer, a notebook computer, or a desktop computer.
  • the electronic device 20 in this embodiment includes: a processor 21 and a memory 22 .
  • the processor 21 may include one or more processing cores, such as a quad-core processor, an octa-core processor, and the like.
  • the processor 21 can be implemented by at least one hardware selected from DSP (digital signal processing, digital signal processing), FPGA (field-programmable gate array, field programmable array), and PLA (programmable logic array, programmable logic array).
  • the processor 21 may also include a main processor and a co-processor.
  • the main processor is a processor used to process data in the wake-up state, also called CPU (central processing unit, central processing unit); co-processor It is a low-power processor for processing data in the standby state.
  • the processor 21 may be integrated with a GPU (graphics processing unit, image processor), and the GPU is used for rendering and drawing images that need to be displayed on the display screen.
  • the processor 21 may include an AI (artificial intelligence, artificial intelligence) processor for processing computing operations related to machine learning.
  • Memory 22 may include one or more computer-readable storage media, which may be non-transitory. Memory 22 may also include high-speed random access memory, as well as non-volatile memory, such as one or more magnetic disk storage devices, flash storage devices. In this embodiment, the memory 22 is at least used to store the following computer program 221 , where, after the computer program is loaded and executed by the processor 21 , the steps of the solid-state disk access method disclosed in any of the foregoing embodiments can be implemented.
  • the electronic device 20 may further include a display screen 23 , an input/output interface 24 , a communication interface 25 , a sensor 26 , a power supply 27 and a communication bus 28 .
  • FIG. 4 does not constitute a limitation on the electronic device 20, and may include more or less components than those shown in the drawings.
  • an embodiment of the present application further discloses a computer-readable storage medium for storing a computer program, wherein when the computer program is executed by a processor, the solid-state disk access method disclosed in any of the foregoing embodiments is implemented.
  • the steps of a method or algorithm described in conjunction with the embodiments disclosed herein may be directly implemented in hardware, a software module executed by a processor, or a combination of the two.
  • the software module can be placed in random access memory (RAM), internal memory, read only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, removable disk, CD-ROM, or any other in the technical field. in any other known form of storage medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一种固态硬盘访问方法、装置、设备、介质,该方法包括:在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压(S11);基于所述第一读取电压对当前数据块中的数据进行重读纠错(S12);如果当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则(S13);基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件(S14)。这样提高了ERF效率,从而提高了固态硬盘的数据读取性能。

Description

一种固态硬盘访问方法、装置、设备及介质
本申请要求于2020年07月28日提交中国专利局、申请号为CN202010738637.6、发明名称为“一种固态硬盘访问方法、装置、设备及介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据存储技术领域,特别涉及一种固态硬盘访问方法、装置、设备、介质。
背景技术
在大数据时代,海量数据的存储位于越来重要的地位,在CPU等计算部件速率越来越高的同时,数据的存储与读取速率一直为系统瓶颈。目前随着NAND闪存价格逐渐下降,固态硬盘的使用数量也逐年上升。不同于传统硬盘,固态硬盘的存储单元为NAND闪存,而NAND闪存保存数据的能力会随着PE次数、数据读次数以及数据保存时间的推移,读数据出错的概率会升高,从而使错误处理成为SSD重要的组成部分。目前的错误处理是使用NAND厂商给出的retry表进行纠错,以获得正确的用户数据。具体的,就是按照NAND厂商给出的retry表中的读取电压值依次尝试读取硬盘中的数据来进行纠错。在这种方法下需要按照retry表中的顺序依次尝试各个读取电压,直到数据读取成功,而retry表中包括的读取电压都比较多,这就增加了整个ERF(Error Recovery Flow,错误恢复流程)所消耗的时间,降低了硬盘的数据读取效率。
发明内容
有鉴于此,本申请的目的在于提供一种固态硬盘访问方法、装置、设备、介质,能够对固态硬盘中读取出错的数据进行重读纠错,且节约了ERF时间,提高了ERF效率,从而提高了固态硬盘的数据读取性能。其具体方案如下:
第一方面,本申请公开了一种固态硬盘访问方法,包括:
在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压;
基于所述第一读取电压对当前数据块中的数据进行重读纠错;
如果当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则;
基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。
可选地,所述基于所述第一读取电压对当前数据块中的数据进行重读纠错,包括:
如果所述第一读取电压包括多个读取电压值,则分别基于所述第一读取电压中的各个读取电压值对当前数据块中的数据进行重读纠错。
可选地,所述根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压之前,还包括:
获取预设数据保存时间区间信息以及各个数据保存时间区间对应的读取电压;
获取数据读取次数对应的读取电压,并对各个所述数据保存时间区间、各个所述数据保存时间区间对应的读取电压以及所述数据读取次数对应的读取电压进行存储。
可选地,所述获取预设数据保存时间区间信息以及各个数据保存时间区间对应的读取电压,包括:
获取所述预设数据保存时间区间信息;
基于当前数据块所处固态硬盘的retry表中的读取电压确定所述预设数据保存时间区间信息中各个数据保存时间区间对应的读取电压。
可选地,基于当前数据块所处固态硬盘的retry表中的读取电压确定所述预设数据保存时间区间信息中任一数据保存时间区间对应的读取电压,包括:
分别基于所述retry表中的各个读取电压对保存时间属于该数据保存时间区间的数据进行读取,得到所述retry表中的各个读取电压对应的读取 正确率;
根据所述读取正确率确定该数据保存时间区间对应的读取电压。
可选地,所述根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压之前,还包括:
获取所述预设数据读取规则,并对所述预设数据读取规则进行存储。
可选地,所述基于所述第一读取电压对当前数据块中的数据进行重读纠错之后,还包括:
判断当前数据块的读取正确率是否大于或等于预设正确率阈值;
如果当前数据块的读取正确率大于或等于预设正确率阈值,则判定当前数据块重读纠错成功;
如果当前数据块的读取正确率小于预设正确率阈值,则判定当前数据块重读纠错失败。
第二方面,本申请公开了一种固态硬盘访问装置,包括:
第一电压确定模块,用于在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压;
第一数据读取模块,用于基于所述第一读取电压对当前数据块中的数据进行重读纠错;
第二电压确定模块,用于在当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则;
第二数据读取模块,用于基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。
第三方面,本申请公开了一种电子设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述公开的固态硬盘访问方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的固态硬盘访问方法。
可见,本申请先在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压,然后基于所述第一读取电压对当前数据块中的数据进行重读纠错,如果当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则,并基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。这样在当前数据块的数据读取出错时,先根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压,并基于所述第一读取电压对当前数据块中的数据进行重读纠错,如果重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,再基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件,这样先从数据保存时间维度进行数据重读纠错,然后在重读纠错失败的情况下,根据当前数据块所属的当前数据保存时间区间和预设数据读取规则对当前数据块进行数据重读纠错,能够对固态硬盘中读取出错的数据进行重读纠错,且节约了ERF时间,提高了ERF效率,从而提高了固态硬盘的数据读取性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种固态硬盘访问方法流程图;
图2为本申请公开的一种具体的固态硬盘访问方法流程图;
图3为本申请公开的一种固态硬盘访问装置结构示意图;
图4为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,固态硬盘数据读取错误的处理是使用NAND厂商给出的retry表进行纠错,以获得正确的用户数据。具体的,就是按照NAND厂商给出的retry表中的读取电压值依次尝试读取硬盘中的数据来进行纠错。在这种方法下需要按照retry表中的顺序依次尝试各个读取电压,直到数据读取成功,而retry表中包括的读取电压都比较多,这就增加了整个ERF所消耗的时间,降低了硬盘的数据读取效率。有鉴于此,本申请提出了一种固态硬盘访问方法,能够对固态硬盘中读取出错的数据进行重读纠错,且节约了ERF时间,提高了ERF效率,从而提高了固态硬盘的数据读取性能。
参见图1所示,本申请实施例公开了一种固态硬盘访问方法,该方法包括:
步骤S11:在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压。
在具体的实施过程中,在对固态硬盘进行数据读取时,会出现数据读取错误的情况,所以在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压,以便基于所述第一读取电压对当前数据块进行重读纠错。也即,根据当前当数据块的数据保存时间以及预先存储的预设数据保存时间区间信息确定当前数据保存时间区间,然后再根据预先存储的各个数据保存时间区间对应的读取电压确定当前数据保存时间区间对应的第一读取电压 值。所述预设数据保存时间区间信息中各个数据保存时间区间的划分可以根据实际情况确定,例如,将保存时间为2-3个月的划分为一个数据保存时间区间。
其中,所述第一读取电压中可以包括多个读取电压值,具体可以根据实际情况确定,在此不具体限定。可以通过判断当前数据块的数据读取正确率是否大于或等于相应的正确率阈值,来判断当前数据块的数据读取是否出现错误。
步骤S12:基于所述第一读取电压对当前数据块中的数据进行重读纠错。
可以理解的是,在确定出所述第一读取电压之后,便可以基于所述第一读取电压对当前数据块中的数据进行重读纠错。如果所述第一读取电压包括多个读取电压值,则分别基于所述第一读取电压中的各个读取电压值对当前数据块中的数据进行重读纠错。
基于所述第一读取电压对当前数据块进行重读纠错之后,还需要判断当前数据块的读取正确率是否大于或等于预设正确率阈值;如果当前数据块的读取正确率大于或等于预设正确率阈值,则判定当前数据块重读纠错成功;如果当前数据块的读取正确率小于预设正确率阈值,则判定当前数据块重读纠错失败。
如果所述第一读取电压包括多个读取电压值,则在基于每个读取电压进行数据重读纠错之后,判断当前读取电压下当前数据块的读取正确率是否大于或等于拥预设正确率阈值,以便确定在当前读取电压下当前数据块重读纠错是否成功。并在所述第一读取电压中的各个读取电压值下当前数据块的读取正确率均小于预设正确率阈值时,判定当前数据块重读纠错失败。其中,所述多个读取电压值也即大于或等于2个读取电压值。
步骤S13:如果当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则。
相应的,如果当前数据块在所述第一读取电压下重读纠错失败,则还 需要根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则。由于数据保存到固态硬盘中之后,如果固态硬盘掉过电,则固态硬盘中的数据保存时间会更新成再次上电的时间,所以固态硬盘中获取到的当前数据块的数据保存时间可能并不是一开始将数据存储到当前数据块中的时间,所以会存在当前数据块中的数据在所述第一读取电压下重读纠错失败的情况。
步骤S14:基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。
在确定出所述第二读取电压之后,便可以根据所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。也即,直到当前数据块重读纠错成功,或者直到按照所述预设数据读取规则中的各个数据保存时间区间对应的读取电压和数据读取次数对应的读取电压进行当前数据块的重读纠错完毕。
可见,本申请先在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压,然后基于所述第一读取电压对当前数据块中的数据进行重读纠错,如果当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则,并基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。这样在当前数据块的数据读取出错时,先根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压,并基于所述第一读取电压对当前数据块中的数据进行重读纠错,如果重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,再基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件,这样先从数据保存时间维度进行数据重读纠错,然后根据当前数据块所属的当前数据保存时间区间和预设数据读取规则对 当前数据块进行数据重读纠错,能够对固态硬盘中读取出错的数据进行重读纠错,且节约了ERF时间,提高了ERF效率,从而提高了固态硬盘的数据读取性能。
参见图2所示,本申请实施例公开了一种具体的固态硬盘访问方法,该方法包括:
步骤S21:获取预设数据保存时间区间信息以及各个数据保存时间区间对应的读取电压。
在实际应用中,需要先获取预设数据保存时间区间信息以及各个数据保存时间区间对应的读取电压。具体的,就是先将数据保存时间划分为不同的区间,然后确定各个时间区间对应的读取电压,例如,将数据保存时间划分为三个区间,第一个区间A为0-1月,第二个区间B为1-2月,第三个区间C为2-3月,上述时间区间都是基于40度下的等效时间。各个时间区间的划分可以根据具体情况确定,在此不做限定。
所述获取预设数据保存时间区间信息以及各个数据保存时间区间对应的读取电压,包括:获取所述预设数据保存时间区间信息;基于当前数据块所处固态硬盘的retry表中的读取电压确定所述预设数据保存时间区间信息中各个数据保存时间区间对应的读取电压。也即,先获取所述预设数据保存时间区间信息,然后基于当前数据块所处固态硬盘的retry表中的读取电压确定所述预设数据保存时间区间信息中各个数据保存时间区间对应的读取电压。也即,对保存时间属于各个数据保存时间区间的数据进行模拟读取,以确定各个数据保存时间区间对应的读取电压。
其中,基于当前数据块所处固态硬盘的retry表中的读取电压确定所述预设数据保存时间区间信息中任一数据保存时间区间对应的读取电压,包括:分别基于所述retry表中的各个读取电压对保存时间属于该数据保存时间区间的数据进行读取,得到所述retry表中的各个读取电压对应的读取正确率;根据所述读取正确率确定该数据保存时间区间对应的读取电压。也即,分别基于所述retry表中的各个读取电压对保存时间属于该数据保存时间区间的数据进行读取,得到所述retry表中的各个读取电压对应的读取正 确率,然后将所述读取正确率按照从大到小的顺序进行排序,将前N个读取正确率对应的读取电压确定为该数据保存时间区间对应的读取电压。N为大于或等于1的正整数。例如,N可以取8。
步骤S22:获取数据读取次数对应的读取电压,并对各个所述数据保存时间区间、各个所述数据保存时间区间对应的读取电压以及所述数据读取次数对应的读取电压进行存储。
还需要获取数据读取次数对应的读取电压,并对各个所述数据保存时间区间、各个所述数据保存时间区间对应的读取电压以及所述数据读取次数对应的读取电压进行存储。获取数据读取次数对应的读取电压的方法,包括:分别基于所述retry表中的各个读取电压对不同读取次数的数据进行读取,得到所述retry表中的各个读取电压对应的读取正确率,然后将所述读取正确率按照从大到小的顺序进行排序,将前M个读取正确率对应的读取电压确定为数据读取次数对应的读取电压。M为大于或等于1的正整数。M和N可以相同,也可以不相同。
步骤S23:获取预设数据读取规则,并对所述预设数据读取规则进行存储,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则。
在实际应用中,还需要获取预设数据读取规则,并对所述预设数据读取规则进行存储。其中,所述预设数据读取规则确定数据读取次数维度的重读纠错不能放在最后一组进行。
例如,数据保存时间区间被划分为前述的三个区间A、B、C,将数据读取次数作为一个组D,如果当前数据块的数据保存时间所属的当前数据保存时间区间为A,在基于区间A对应的读取电压下对当前数据重读纠错失败之后,表明当前数据块的实际数据存储时间大于区间A上,所以将区间B对应的读取电压确定为所述第二读取电压,在基于区间B对应的读取电压下对当前数据重读纠错失败之后,表明当前数据块的实际数据存储时间大于区间B上,本应将区间C对应的读取电压确定为接下来进行重读纠错的读取电压,但是如果将区间C对应的读取电压确定为接下来进行重读纠错的读取电压,则D组的读取电压就会成为最后一组读取电压,这样相比不对 数据保存时间进行区间划分时进行重读纠错所读取的次数要多。所以在基于区间B对应的读取电压下对当前数据重读纠错失败之后,需要将D组的读取电压确定为接下来进行重读纠错的读取电压,在D组对应的读取电压下对当前数据重读纠错失败之后,再将区间C对应的读取电压确定为接下来进行重读纠错的读取电压。也即,重读纠错的读取电压所属组别的顺序为A-B-D-C。
同理,如果当前数据块的数据保存时间所属的当前数据保存时间区间为B,在基于区间B对应的读取电压下对当前数据重读纠错失败之后,将区间C对应的读取电压确定为所述第二读取电压,在基于区间C对应的读取电压下对当前数据重读纠错失败之后,将D组的读取电压确定为接下来进行重读纠错的读取电压,在D组对当前数据重读纠错失败之后,由于C区间的数据保存时间已经是最久远的,但依然重读纠错失败,所以可以再利用区间A的读取电压对当前数据块进行重读纠错尝试。也即,重读纠错的读取电压所属组别的顺序为B-C-D-A。
如果当前数据块的数据保存时间所属的当前数据保存时间区间为C,在基于区间C对应的读取电压下对当前数据重读纠错失败之后,将区间D对应的读取电压确定为所述第二读取电压,在基于区间D对应的读取电压下对当前数据重读纠错失败之后,由于C区间的数据保存时间已经是最久远的,但依然重读纠错失败,所以可以再利用区间A的读取电压对当前数据块进行重读纠错尝试,在区间A对应的读取电压下对当前数据重读纠错失败之后,再利用区间B的读取电压对当前数据块进行重读纠错尝试。也即,重读纠错的读取电压所属组别的顺序为C-D-A-B。
步骤S24:在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压。
在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压。
步骤S25:基于所述第一读取电压对当前数据块中的数据进行重读纠错。
步骤S26:如果当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压。
基于所述第一读取电压对当前数据块中的数据进行重读纠错之后,如果当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,例如,当前数据保存时间区间为前述的区间A,则将区间B对应的读取电压确定为第二读取电压。
步骤S27:基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。
可以理解的是,在确定出所述第一读取电压之后,便可以基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。
参见图3所示,本申请实施例公开了一种固态硬盘访问装置,包括:
第一电压确定模块11,用于在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压;
第一数据读取模块12,用于基于所述第一读取电压对当前数据块中的数据进行重读纠错;
第二电压确定模块13,用于在当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则;
第二数据读取模块14,用于基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。
可见,本申请先在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压,然后基于所述第一读取电压对当前数据块中的数据进行重读纠错,如果当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预 设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则,并基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。这样在当前数据块的数据读取出错时,先根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压,并基于所述第一读取电压对当前数据块中的数据进行重读纠错,如果重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,再基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件,这样先从数据保存时间维度进行数据重读纠错,然后根据当前数据块所属的当前数据保存时间区间和预设数据读取规则对当前数据块进行数据重读纠错,能够对固态硬盘中读取出错的数据进行重读纠错,且节约了ERF时间,提高了ERF效率,从而提高了固态硬盘的数据读取性能。
具体的,所述第一数据读取模块12,具体用于:在所述第一读取电压包括多个读取电压值时,则分别基于所述第一读取电压中的各个读取电压值对当前数据块中的数据进行重读纠错。
进一步的,所述固态硬盘访问装置,还包括:
第一数据获取模块,用于获取预设数据保存时间区间信息以及各个数据保存时间区间对应的读取电压;
第二数据获取模块,用于获取数据读取次数对应的读取电压;
数据存储模块,用于对各个所述数据保存时间区间、各个所述数据保存时间区间对应的读取电压以及所述数据读取次数对应的读取电压进行存储。
具体的,所述第一数据获取模块,具体用于:
获取所述预设数据保存时间区间信息;
基于当前数据块所处固态硬盘的retry表中的读取电压确定所述预设数据保存时间区间信息中各个数据保存时间区间对应的读取电压。
进一步的,所述第一数据获取模块,具体用于:
分别基于所述retry表中的各个读取电压对保存时间属于该数据保存时间区间的数据进行读取,得到所述retry表中的各个读取电压对应的读取正确率;
根据所述读取正确率确定该数据保存时间区间对应的读取电压。
进一步的,所述固态硬盘访问装置,还包括:
第三数据获取模块,用于获取所述预设数据读取规则,并对所述预设数据读取规则进行存储。
进一步的,所述固态硬盘访问装置,还包括:
第一判断模块,用于判断当前数据块的读取正确率是否大于或等于预设正确率阈值;
第二判断模块,用于在当前数据块的读取正确率大于或等于预设正确率阈值,则判定当前数据块重读纠错成功;
第三判断模块,用于当前数据块的读取正确率小于预设正确率阈值,则判定当前数据块重读纠错失败。
图4为本申请实施例提供的一种电子设备20的结构示意图,该电子设备20可以包括但不限于平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的电子设备20包括:处理器21和存储器22。
其中,处理器21可以包括一个或多个处理核心,比如四核心处理器、八核心处理器等。处理器21可以采用DSP(digital signal processing,数字信号处理)、FPGA(field-programmable gate array,现场可编程们阵列)、PLA(programmable logic array,可编程逻辑阵列)中的至少一种硬件来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(central processing unit,中应处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有GPU(graphics processing unit,图像处理器),GPU用于负责显示屏所需要显示的图像的渲染和绘制。一些实施例中,处理器21可以包括AI(artificial intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器22可以包括一个或多个计算机可读存储介质,计算机可读存储介质可以是非暂态的。存储器22还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器22至少用于存储以下计算机程序221,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例中公开的固态硬盘访问方法步骤。
在一些实施例中,电子设备20还可包括有显示屏23、输入输出接口24、通信接口25、传感器26、电源27以及通信总线28。
本技术领域人员可以理解,图4中示出的结构并不构成对电子设备20的限定,可以包括比图示更多或更少的组件。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例中公开的固态硬盘访问方法。
其中,关于上述固态硬盘访问方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而 且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种固态硬盘访问方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

  1. 一种固态硬盘访问方法,其特征在于,包括:
    在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压;
    基于所述第一读取电压对当前数据块中的数据进行重读纠错;
    如果当前数据块重读纠错失败,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则;
    基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。
  2. 根据权利要求1所述的固态硬盘访问方法,其特征在于,所述基于所述第一读取电压对当前数据块中的数据进行重读纠错,包括:
    如果所述第一读取电压包括多个读取电压值,则分别基于所述第一读取电压中的各个读取电压值对当前数据块中的数据进行重读纠错。
  3. 根据权利要求1所述的固态硬盘访问方法,其特征在于,所述根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压之前,还包括:
    获取预设数据保存时间区间信息以及各个数据保存时间区间对应的读取电压;
    获取数据读取次数对应的读取电压,并对各个所述数据保存时间区间、各个所述数据保存时间区间对应的读取电压以及所述数据读取次数对应的读取电压进行存储。
  4. 根据权利要求3所述的固态硬盘访问方法,其特征在于,所述获取预设数据保存时间区间信息以及各个数据保存时间区间对应的读取电压,包括:
    获取所述预设数据保存时间区间信息;
    基于当前数据块所处固态硬盘的retry表中的读取电压确定所述预设数据保存时间区间信息中各个数据保存时间区间对应的读取电压。
  5. 根据权利要求4所述的固态硬盘访问方法,其特征在于,基于当前 数据块所处固态硬盘的retry表中的读取电压确定所述预设数据保存时间区间信息中任一数据保存时间区间对应的读取电压,包括:
    分别基于所述retry表中的各个读取电压对保存时间属于该数据保存时间区间的数据进行读取,得到所述retry表中的各个读取电压对应的读取正确率;
    根据所述读取正确率确定该数据保存时间区间对应的读取电压。
  6. 根据权利要求1所述的固态硬盘访问方法,其特征在于,所述根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压之前,还包括:
    获取所述预设数据读取规则,并对所述预设数据读取规则进行存储。
  7. 根据权利要求1所述的固态硬盘访问方法,其特征在于,所述基于所述第一读取电压对当前数据块中的数据进行重读纠错之后,还包括:
    判断当前数据块的读取正确率是否大于或等于预设正确率阈值;
    如果当前数据块的读取正确率大于或等于预设正确率阈值,则判定当前数据块重读纠错成功;
    如果当前数据块的读取正确率小于预设正确率阈值,则判定当前数据块重读纠错失败。
  8. 一种固态硬盘访问装置,其特征在于,包括:
    第一电压确定模块,用于在当前数据块的数据读取出现错误时,根据当前数据块的数据保存时间所属的当前数据保存时间区间确定当前数据块的第一读取电压;
    第一数据读取模块,用于基于所述第一读取电压对当前数据块中的数据进行重读纠错;
    第二电压确定模块,用于在当前数据块重读纠错失败时,则根据所述当前数据保存时间区间以及预设数据读取规则确定当前数据块对应的第二读取电压,其中,所述预设数据读取规则为基于数据保存时间区间和数据读取次数确定的规则;
    第二数据读取模块,用于基于所述第二读取电压对当前数据块中的数据进行重读纠错,直至当前数据块重读纠错满足预设重读纠错条件。
  9. 一种电子设备,其特征在于,包括:
    存储器和处理器;
    其中,所述存储器,用于存储计算机程序;
    所述处理器,用于执行所述计算机程序,以实现权利要求1至7任一项所述的固态硬盘访问方法。
  10. 一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的固态硬盘访问方法。
PCT/CN2021/076979 2020-07-28 2021-02-20 一种固态硬盘访问方法、装置、设备及介质 WO2022021857A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/009,820 US11734113B2 (en) 2020-07-28 2021-02-20 Solid state disk access method and apparatus, device, and medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010738637.6A CN111880736B (zh) 2020-07-28 2020-07-28 一种固态硬盘访问方法、装置、设备及介质
CN202010738637.6 2020-07-28

Publications (1)

Publication Number Publication Date
WO2022021857A1 true WO2022021857A1 (zh) 2022-02-03

Family

ID=73200889

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/076979 WO2022021857A1 (zh) 2020-07-28 2021-02-20 一种固态硬盘访问方法、装置、设备及介质

Country Status (3)

Country Link
US (1) US11734113B2 (zh)
CN (1) CN111880736B (zh)
WO (1) WO2022021857A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115793991A (zh) * 2023-01-20 2023-03-14 苏州浪潮智能科技有限公司 一种数据的读取方法、装置、电子设备及可读存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880736B (zh) * 2020-07-28 2022-08-16 苏州浪潮智能科技有限公司 一种固态硬盘访问方法、装置、设备及介质
CN112466378A (zh) * 2020-11-12 2021-03-09 苏州浪潮智能科技有限公司 一种固态硬盘运行纠错方法、装置及相关组件
CN113470727A (zh) * 2021-06-04 2021-10-01 山东英信计算机技术有限公司 固态硬盘不可纠错数据的处理方法、装置、设备及介质
CN113625947B (zh) * 2021-06-28 2023-08-25 苏州浪潮智能科技有限公司 一种数据纠错方法、装置、设备及计算机可读存储介质
CN113626091A (zh) * 2021-08-19 2021-11-09 深圳忆联信息系统有限公司 固态硬盘的启动优化方法、装置、计算机设备及存储介质
CN113946469B (zh) * 2021-10-29 2024-05-24 苏州浪潮智能科技有限公司 一种固态硬盘的数据纠错处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163165A (zh) * 2011-05-26 2011-08-24 忆正储存技术(武汉)有限公司 一种闪存错误预估模块及其预估方法
CN108647111A (zh) * 2018-05-14 2018-10-12 联芸科技(杭州)有限公司 用于存储器的读取控制装置、读取控制方法和存储器控制器
CN110007861A (zh) * 2019-03-29 2019-07-12 新华三技术有限公司 一种数据读取方法和装置
CN110689914A (zh) * 2019-09-06 2020-01-14 苏州浪潮智能科技有限公司 一种固态硬盘的读纠错方法、装置、设备及存储介质
CN111880736A (zh) * 2020-07-28 2020-11-03 苏州浪潮智能科技有限公司 一种固态硬盘访问方法、装置、设备及介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US9280301B2 (en) * 2013-08-28 2016-03-08 Huawei Technologies Co., Ltd. Method and device for recovering erroneous data
US20160077913A1 (en) * 2014-09-11 2016-03-17 Kabushiki Kaisha Toshiba Method of controlling nonvolatile memory
TWI566094B (zh) * 2015-02-04 2017-01-11 慧榮科技股份有限公司 資料儲存裝置及其資料更新方法
CN106981314A (zh) * 2017-03-10 2017-07-25 记忆科技(深圳)有限公司 一种固态硬盘快速纠错的方法
US10440037B2 (en) * 2017-03-31 2019-10-08 Mcafee, Llc Identifying malware-suspect end points through entropy changes in consolidated logs
CN107291382B (zh) * 2017-05-19 2020-04-28 记忆科技(深圳)有限公司 一种固态硬盘降低读响应延迟的方法及固态硬盘
KR102499794B1 (ko) * 2018-05-21 2023-02-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10789124B2 (en) * 2018-09-28 2020-09-29 Intel Corporation Techniques to a set voltage level for a data access
US11204828B2 (en) * 2018-12-10 2021-12-21 Micron Technology, Inc. Management of corruptive read in memory systems
CN110058957A (zh) * 2019-04-22 2019-07-26 湖南国科微电子股份有限公司 一种固态硬盘纠错能力提升方法与固态硬盘

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163165A (zh) * 2011-05-26 2011-08-24 忆正储存技术(武汉)有限公司 一种闪存错误预估模块及其预估方法
CN108647111A (zh) * 2018-05-14 2018-10-12 联芸科技(杭州)有限公司 用于存储器的读取控制装置、读取控制方法和存储器控制器
CN110007861A (zh) * 2019-03-29 2019-07-12 新华三技术有限公司 一种数据读取方法和装置
CN110689914A (zh) * 2019-09-06 2020-01-14 苏州浪潮智能科技有限公司 一种固态硬盘的读纠错方法、装置、设备及存储介质
CN111880736A (zh) * 2020-07-28 2020-11-03 苏州浪潮智能科技有限公司 一种固态硬盘访问方法、装置、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115793991A (zh) * 2023-01-20 2023-03-14 苏州浪潮智能科技有限公司 一种数据的读取方法、装置、电子设备及可读存储介质
CN115793991B (zh) * 2023-01-20 2023-04-14 苏州浪潮智能科技有限公司 一种数据的读取方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN111880736B (zh) 2022-08-16
US20230195569A1 (en) 2023-06-22
CN111880736A (zh) 2020-11-03
US11734113B2 (en) 2023-08-22

Similar Documents

Publication Publication Date Title
WO2022021857A1 (zh) 一种固态硬盘访问方法、装置、设备及介质
TWI541819B (zh) 用來進行錯誤更正之方法、記憶裝置、與控制器
CN103988263B (zh) 用以减少相变存储器的读取错误的读取偏置管理
US20160300609A1 (en) Non-volatile memory device
US8578245B2 (en) Data reading method, memory storage apparatus, and controller thereof
US20140082264A1 (en) Nand flash storage chip checking method and device
US8464132B2 (en) Method for accessing flash memory and associated memory device
TW201411633A (zh) 輸出經錯誤校正碼校正之位元之資訊
WO2017008501A1 (zh) 一种nand闪存出现ecc无法纠错时的数据恢复方法
CN104956443A (zh) Ram刷新率
KR20130027138A (ko) 에러 정정 방법 및 이를 이용하는 메모리 장치
CN103218271B (zh) 一种数据纠错方法及装置
CN113223583B (zh) NAND Flash坏块内数据重读的方法、电子设备及存储介质
US20060282757A1 (en) On-the fly error checking and correction codec system and method for supporting non-volatile memory
CN113643746A (zh) 闪存数据的分析方法、装置、终端设备及存储介质
TW201921281A (zh) 具備資料可靠性機制的儲存系統及其操作方法
CN101634938A (zh) 固态硬盘的数据迁移方法、数据迁移装置及固态硬盘
US9959166B2 (en) Error correction for non-volatile memory
US11176988B2 (en) Control method for memory and non-transitory computer-readable media
KR101001071B1 (ko) 메모리 비트 정정 보고 방법 및 장치
US10297304B1 (en) Memory device and operating method thereof
CN112540866B (zh) 存储器装置及其数据存取方法
US20230409428A1 (en) Boot data reading system, boot data reading method, and processor circuit
JPH0520220A (ja) 小型電子計算装置
CN113380303A (zh) 内存存储装置及数据访问方法

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

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

Country of ref document: EP

Kind code of ref document: A1