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

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

Info

Publication number
CN111880736B
CN111880736B CN202010738637.6A CN202010738637A CN111880736B CN 111880736 B CN111880736 B CN 111880736B CN 202010738637 A CN202010738637 A CN 202010738637A CN 111880736 B CN111880736 B CN 111880736B
Authority
CN
China
Prior art keywords
reading
current data
data block
data
storage time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010738637.6A
Other languages
English (en)
Other versions
CN111880736A (zh
Inventor
邵文豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010738637.6A priority Critical patent/CN111880736B/zh
Publication of CN111880736A publication Critical patent/CN111880736A/zh
Priority to US18/009,820 priority patent/US11734113B2/en
Priority to PCT/CN2021/076979 priority patent/WO2022021857A1/zh
Application granted granted Critical
Publication of CN111880736B publication Critical patent/CN111880736B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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

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

Description

一种固态硬盘访问方法、装置、设备及介质
技术领域
本申请涉及数据存储技术领域,特别涉及一种固态硬盘访问方法、装置、设备、介质。
背景技术
在大数据时代,海量数据的存储位于越来重要的地位,在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:基于所述第一读取电压对当前数据块中的数据进行重读纠错。
可以理解的是,在确定出所述第一读取电压之后,便可以基于所述第一读取电压对当前数据块中的数据进行重读纠错。如果所述第一读取电压包括多个读取电压值,则分别基于所述第一读取电压中的各个读取电压值对当前数据块中的数据进行重读纠错。
基于所述第一读取电压对当前数据块进行重读纠错之后,还需要判断当前数据块的读取正确率是否大于或等于预设正确率阈值;如果当前数据块的读取正确率大于或等于预设正确率阈值,则判定当前数据块重读纠错成功;如果当前数据块的读取正确率小于预设正确率阈值,则判定当前数据块重读纠错失败。
如果所述第一读取电压包括多个读取电压值,则在基于每个读取电压进行数据重读纠错之后,判断当前读取电压下当前数据块的读取正确率是否大于或等于拥预设正确率阈值,以便确定在当前读取电压下当前数据块重读纠错是否成功。并在所述第一读取电压中的各个读取电压值下当前数据块的读取正确率均小于预设正确率阈值时,判定当前数据块重读纠错失败。
步骤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(artificialintelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器22可以包括一个或多个计算机可读存储介质,计算机可读存储介质可以是非暂态的。存储器22还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器22至少用于存储以下计算机程序221,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例中公开的固态硬盘访问方法步骤。
在一些实施例中,电子设备20还可包括有显示屏23、输入输出接口24、通信接口25、传感器26、电源27以及通信总线28。
本技术领域人员可以理解,图4中示出的结构并不构成对电子设备20的限定,可以包括比图示更多或更少的组件。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例中公开的固态硬盘访问方法。
其中,关于上述固态硬盘访问方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种固态硬盘访问方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (9)

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

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010738637.6A CN111880736B (zh) 2020-07-28 2020-07-28 一种固态硬盘访问方法、装置、设备及介质
US18/009,820 US11734113B2 (en) 2020-07-28 2021-02-20 Solid state disk access method and apparatus, device, and medium
PCT/CN2021/076979 WO2022021857A1 (zh) 2020-07-28 2021-02-20 一种固态硬盘访问方法、装置、设备及介质

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN111880736A CN111880736A (zh) 2020-11-03
CN111880736B true CN111880736B (zh) 2022-08-16

Family

ID=73200889

Family Applications (1)

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

Country Status (3)

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

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 深圳忆联信息系统有限公司 固态硬盘的启动优化方法、装置、计算机设备及存储介质
CN115793991B (zh) * 2023-01-20 2023-04-14 苏州浪潮智能科技有限公司 一种数据的读取方法、装置、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106981314A (zh) * 2017-03-10 2017-07-25 记忆科技(深圳)有限公司 一种固态硬盘快速纠错的方法
CN107291382A (zh) * 2017-05-19 2017-10-24 记忆科技(深圳)有限公司 一种固态硬盘降低读响应延迟的方法及固态硬盘
CN108647111A (zh) * 2018-05-14 2018-10-12 联芸科技(杭州)有限公司 用于存储器的读取控制装置、读取控制方法和存储器控制器
CN110007861A (zh) * 2019-03-29 2019-07-12 新华三技术有限公司 一种数据读取方法和装置
CN110058957A (zh) * 2019-04-22 2019-07-26 湖南国科微电子股份有限公司 一种固态硬盘纠错能力提升方法与固态硬盘

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
CN102163165B (zh) 2011-05-26 2012-11-14 忆正存储技术(武汉)有限公司 一种闪存错误预估模块及其预估方法
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 慧榮科技股份有限公司 資料儲存裝置及其資料更新方法
US10440037B2 (en) * 2017-03-31 2019-10-08 Mcafee, Llc Identifying malware-suspect end points through entropy changes in consolidated logs
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
CN110689914B (zh) 2019-09-06 2021-08-10 苏州浪潮智能科技有限公司 一种固态硬盘的读纠错方法、装置、设备及存储介质
CN111880736B (zh) 2020-07-28 2022-08-16 苏州浪潮智能科技有限公司 一种固态硬盘访问方法、装置、设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106981314A (zh) * 2017-03-10 2017-07-25 记忆科技(深圳)有限公司 一种固态硬盘快速纠错的方法
CN107291382A (zh) * 2017-05-19 2017-10-24 记忆科技(深圳)有限公司 一种固态硬盘降低读响应延迟的方法及固态硬盘
CN108647111A (zh) * 2018-05-14 2018-10-12 联芸科技(杭州)有限公司 用于存储器的读取控制装置、读取控制方法和存储器控制器
CN110007861A (zh) * 2019-03-29 2019-07-12 新华三技术有限公司 一种数据读取方法和装置
CN110058957A (zh) * 2019-04-22 2019-07-26 湖南国科微电子股份有限公司 一种固态硬盘纠错能力提升方法与固态硬盘

Also Published As

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

Similar Documents

Publication Publication Date Title
CN111880736B (zh) 一种固态硬盘访问方法、装置、设备及介质
US9411689B2 (en) Method and relevant apparatus for starting boot program
CN109582216B (zh) 数据储存装置与存储器装置的数据处理方法
TWI433157B (zh) 存取快閃記憶體的方法以及相關之記憶裝置
CN105788648A (zh) 基于异构混合内存的nvm坏块识别处理及纠错方法和系统
CN112181714B (zh) 一种固态硬盘纠错方法、装置、存储设备及存储介质
CN110109716B (zh) 保证ssd固件稳定加载的方法、装置、计算机设备及存储介质
CN110718264A (zh) 测试固态硬盘信息的方法、装置、计算机设备及存储介质
CN111104246B (zh) 提升dram的错误检测与纠错的验证效率的方法、装置、计算机设备及存储介质
CN111125008B (zh) 一种异常inode的动态修复方法、系统及相关组件
CN111199146A (zh) 测试报告生成方法、装置、计算机设备及存储介质
CN113223583B (zh) NAND Flash坏块内数据重读的方法、电子设备及存储介质
CN111553847B (zh) 图像处理方法及装置
CN111143240B (zh) 图像存储方法、系统及终端设备
CN110109714B (zh) 提升固件加载效率的方法、装置、计算机设备及存储介质
CN111143111A (zh) Ssd映射表保护机制验证方法、装置、计算机设备及存储介质
CN111399857A (zh) 一种fru数据烧录方法、系统、设备及计算机存储介质
CN112216333B (zh) 芯片测试方法及装置
US20140092698A1 (en) Semiconductor device and operating method thereof
KR101001071B1 (ko) 메모리 비트 정정 보고 방법 및 장치
CN111857604A (zh) 分组管理映射反查表快速重建方法、装置、设备及介质
US20230409428A1 (en) Boot data reading system, boot data reading method, and processor circuit
CN114879916B (zh) 一种管理存储单元的方法和装置
CN112540866B (zh) 存储器装置及其数据存取方法
CN114020499A (zh) 一种数据修复方法、装置及计算机可读存储介质

Legal Events

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