CN111863098A - 一种读操作处理方法、装置及可读存储介质 - Google Patents
一种读操作处理方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN111863098A CN111863098A CN202010750795.3A CN202010750795A CN111863098A CN 111863098 A CN111863098 A CN 111863098A CN 202010750795 A CN202010750795 A CN 202010750795A CN 111863098 A CN111863098 A CN 111863098A
- Authority
- CN
- China
- Prior art keywords
- target address
- reading
- read
- probability
- value
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种读操作处理方法、装置及可读存储介质。本申请公开的方法包括:记录对目标地址进行读操作的操作信息;读操作包括执行成功的重读操作和正常读操作;基于操作信息统计目标地址发生重读操作的概率;根据概率调整目标地址的参考电压偏移值。本申请能够根据目标地址上发生重读操作的概率给目标地址赋合适的参考电压偏移值,从而可提高读命中率,减少遍历retry表的次数和重读操作发生的概率,也不会因为重读操作较多影响读写IO的性能,从而提高了固态硬盘性能。相应地,本申请提供的一种读操作处理装置及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种读操作处理方法、装置及可读存储介质。
背景技术
目前,固态硬盘一般基于Nand flash进行数据的读取。若数据读取失败,那么可利用retry表尝试重读。retry表可以由固态硬盘的厂商提供,其中记录着用于读取数据的参考电压偏移值。
在现有技术中,若数据读取失败,则需要对retry表进行遍历,以获得可读数据的参考电压偏移值进行重读操作。并且,当某个地址上出现重读操作后,下一次要读取该地址上的数据,仍需要执行重读操作。也就是需要重复遍历retry表,遍历retry表对读写IO的性能有很大的影响,如果频繁出现重读,甚至会出现因为IO超时而使固态硬盘故障。
因此,如何减少遍历retry表的次数和重读操作发生的概率,提高固态硬盘性能,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种读操作处理方法、装置及可读存储介质,以减少遍历retry表的次数和重读操作发生的概率,提高固态硬盘性能。其具体方案如下:
第一方面,本申请提供了一种读操作处理方法,包括:
记录对目标地址进行读操作的操作信息;所述读操作包括执行成功的重读操作和正常读操作;
基于所述操作信息统计所述目标地址发生重读操作的概率;
根据所述概率调整所述目标地址的参考电压偏移值。
优选地,所述记录对目标地址进行读操作的操作信息,包括:
若所述读操作为执行成功的重读操作,则记录所述目标地址,是否重读的标志位以及所述重读操作执行成功时从retry表中读取的电压值;
若所述读操作为正常读操作,则记录所述目标地址和是否重读的标志位。
优选地,所述记录对目标地址进行读操作的操作信息,包括:
记录所述操作信息至预设循环链表,所述预设循环链表以滑动窗口记录N个操作信息。
优选地,所述基于所述操作信息统计所述目标地址发生重读操作的概率,包括:
基于记录的所有操作信息统计所述目标地址发生重读操作的概率;
或者
基于预设时间段内记录的操作信息统计所述目标地址发生重读操作的概率;
或者
基于最近记录的M个操作信息统计所述目标地址发生重读操作的概率。
优选地,所述根据所述概率调整所述目标地址的参考电压偏移值,包括:
若所述目标地址为die地址,且所述概率大于预设阈值,则将所述参考电压偏移值更改为所述操作信息中记录的最近一次重读操作执行成功时从retry表中读取的电压值;
或者
若所述目标地址为die地址,且所述概率大于预设阈值,则计算所述操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值的平均值,将所述参考电压偏移值更改为所述平均值;
或者
若所述目标地址为die地址,且所述概率大于预设阈值,则从所述操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值中随机选择目标电压值,将所述参考电压偏移值更改为所述目标电压值。
优选地,所述根据所述概率调整所述目标地址的参考电压偏移值,包括:
若所述目标地址为多个块地址或页地址,且最近获得的所述概率均大于预设阈值,则将所述参考电压偏移值更改为所述操作信息中记录的最近一次重读操作执行成功时从retry表中读取的电压值;
或者
若所述目标地址为多个块地址或页地址,且最近获得的所述概率均大于预设阈值,则计算所述操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值的平均值,将所述参考电压偏移值更改为所述平均值;
或者
若所述目标地址为多个块地址或页地址,且最近获得的所述概率均大于预设阈值,则从所述操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值中随机选择目标电压值,将所述参考电压偏移值更改为所述目标电压值。
优选地,对所述目标地址进行读操作,包括:
在目标信息表中查询所述目标地址;
若在所述目标信息表中查询到所述目标地址对应的电压值,则读取所述电压值,并利用所述电压值读取数据;
若在所述目标信息表中未查询到所述目标地址对应的电压值,则利用默认值读取数据。
优选地,还包括:
若读取数据成功,则将本次读取数据所用的电压值和所述目标地址记录至所述目标信息表;
若读取数据失败,则遍历retry表,并利用遍历到的电压值读取数据,若利用遍历到的电压值读取数据成功,则将遍历到的电压值和所述目标地址记录至所述目标信息表,并将所述参考电压偏移值更改为0。
第二方面,本申请提供了一种读操作处理装置,包括:
记录模块,用于记录对目标地址进行读操作的操作信息;所述读操作包括执行成功的重读操作和正常读操作;
统计模块,用于基于所述操作信息统计所述目标地址发生重读操作的概率;
调整模块,用于根据所述概率调整所述目标地址的参考电压偏移值。
第三方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的读操作处理方法。
通过以上方案可知,本申请提供了一种读操作处理方法,包括:记录对目标地址进行读操作的操作信息;所述读操作包括执行成功的重读操作和正常读操作;基于所述操作信息统计所述目标地址发生重读操作的概率;根据所述概率调整所述目标地址的参考电压偏移值。
可见,本申请能够记录目标地址上的读操作的操作信息,然后统计目标地址上发生重读操作的概率,最后根据此概率值调整目标地址的参考电压偏移值,也就是根据目标地址上发生重读操作的概率给目标地址赋相应的参考电压偏移值,以免下一次要读取目标地址上的数据时,再去遍历retry表。可见,本申请能够给地址赋合适的参考电压偏移值,从而可在一定程度上提高读命中率,避免读失败,因此可减少遍历retry表的次数和重读操作发生的概率,也不会因为重读操作较多影响读写IO的性能,从而提高了固态硬盘性能。
相应地,本申请提供的一种读操作处理装置及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的第一种读操作处理方法流程图;
图2为本申请公开的另一种读操作处理方法流程图;
图3为本申请公开的第三种读操作处理方法流程图;
图4为本申请公开的一种读操作处理装置示意图;
图5为本申请公开的一种retry表示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,当某个地址上出现重读操作后,下一次要读取该地址上的数据,仍需要执行重读操作。也就是需要重复遍历retry表,遍历retry表读写IO的性能有很大的影响,如果频繁出现重读,甚至会出现因为IO超时而使固态硬盘故障。为此,本申请提供了一种读操作处理方案,能够减少遍历retry表的次数和重读操作发生的概率,提高固态硬盘性能。
参见图1所示,本申请实施例公开了一种读操作处理方法,包括:
S101、记录对目标地址进行读操作的操作信息;读操作包括执行成功的重读操作和正常读操作。
具体的,由于读操作包括执行成功的重读操作和正常读操作,因此操作信息按照重读操作和正常读操作分别记录不同的数据。
在一种具体实施方式中,记录对目标地址进行读操作的操作信息,包括:若读操作为执行成功的重读操作,则记录目标地址,是否重读的标志位以及重读操作执行成功时从retry表中读取的电压值;若读操作为正常读操作,则记录目标地址和是否重读的标志位。这些信息可以记录在一个表中,目标地址上每次有执行成功的读操作,便记录一条相应信息。当然,还可以记录读操作对应的时间戳等信息。
其中,retry表可以离线生成或在线生成。离线生成的retry表一般由厂商提供,当然,用户也可以自己做flash颗粒研究生成。在线生成是基于主机IO过程进行一系列读取数据的统计、分类等技术处理,从而找到最佳偏移电压值,从而即时生成retry表。
在一种具体实施方式中,记录对目标地址进行读操作的操作信息,包括:记录操作信息至预设循环链表,预设循环链表以滑动窗口记录N个操作信息。
其中,预设循环链表是一个滑动窗口信息表,该表中的头部指针总是指向最新记录的某条数据,当有新的数据需要记录时,该新数据会插入到队头,同时头部指针移动至最新数据。预设循环链表中始终记录着最近记录的N个操作信息,也就是N个执行成功的读操作对应的操作信息。当预设循环链表被记满后,新记录的数据会覆盖表中时间最久的数据。
S102、基于操作信息统计目标地址发生重读操作的概率。
在一种具体实施方式中,基于操作信息统计目标地址发生重读操作的概率,包括:基于记录的所有操作信息统计目标地址发生重读操作的概率,即以目标地址发生的所有读操作为基础,统计其发生重读操作的概率;或者,基于预设时间段内记录的操作信息统计目标地址发生重读操作的概率,即:以某段时间内(如2020年7月20日00:00~2020年7月20日01:00)目标地址发生的读操作为基础,统计其发生重读操作的概率;或者,基于最近记录的M个操作信息统计目标地址发生重读操作的概率,即:以当前时间点为基础,按照时间倒序顺序,数M个最近记录的操作信息,并以此为基础,统计其发生重读操作的概率;其中,若目标地址的操作信息记录在包括N个操作信息的预设循环链表中,那么M≤N。
S103、根据概率调整目标地址的参考电压偏移值。
需要说明的是,若某个地址上发生重读操作,在重读成功后,现有技术会将该地址的参考电压偏移值设置为0,因此下一次要读该地址上的数据,需要按照重读流程读取数据,也就是需要遍历retry表,这样就增加了retry表的遍历次数和重读次数。为此,本实施例可以根据目标地址上发生重读操作的概率给目标地址赋相应的参考电压偏移值,以免下一次要读取目标地址上的数据时,再去遍历retry表。
在一种具体实施方式中,根据概率调整目标地址的参考电压偏移值,包括:若目标地址为die地址,且概率大于预设阈值,则将参考电压偏移值更改为操作信息中记录的最近一次重读操作执行成功时从retry表中读取的电压值。或者,若目标地址为die地址,且概率大于预设阈值,则计算操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值的平均值,将参考电压偏移值更改为平均值;或者,若目标地址为die地址,且概率大于预设阈值,则从操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值中随机选择目标电压值,将参考电压偏移值更改为目标电压值。
若目标地址为die地址,且概率大于预设阈值(如20%),则表明目标地址上发生重读操作的概率较大,读其上的数据会增加重读操作次数,故给目标地址赋合适的参考电压偏移值。其中,给目标地址设置的参考电压偏移值可以是:目标地址上最近一次重读操作执行成功时从retry表中读取的电压值、目标地址上所有重读操作读取的电压值的平均值或目标地址上所有重读操作读取的电压值中的任一个。
需要说明的是,固态硬盘中包括多个die,每个die包括多个数据块,每个数据块包括多个物理页。因此一个die的参考电压偏移值是什么,其下的所有数据块和物理页的参考电压偏移值便是什么。
在一种具体实施方式中,根据概率调整目标地址的参考电压偏移值,包括:若目标地址为多个块地址或页地址,且最近获得的概率均大于预设阈值,则将参考电压偏移值更改为操作信息中记录的最近一次重读操作执行成功时从retry表中读取的电压值;或者,若目标地址为多个块地址或页地址,且最近获得的概率均大于预设阈值,则计算操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值的平均值,将参考电压偏移值更改为平均值;或者,若目标地址为多个块地址或页地址,且最近获得的概率均大于预设阈值,则从操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值中随机选择目标电压值,将参考电压偏移值更改为目标电压值。
若目标地址为多个块地址或页地址,且最近获得的概率均大于预设阈值,则表明这多个块地址或多个页地址所属的die上发生重读操作的概率较大,读这多个块地址或多个页地址上的数据会增加重读操作次数,故给目标地址赋合适的参考电压偏移值,也就是给这多个块地址或多个页地址所属的die地址赋合适的参考电压偏移值。其中,给目标地址设置的参考电压偏移值可以是:目标地址上最近一次重读操作执行成功时从retry表中读取的电压值、目标地址上所有重读操作读取的电压值的平均值或目标地址上所有重读操作读取的电压值中的任一个。其中,多个块地址或多个页地址为其所属die上的大部分(一半以上)地址。
在一种具体实施方式中,对目标地址进行读操作,包括:在目标信息表中查询目标地址;若在目标信息表中查询到目标地址对应的电压值,则读取电压值,并利用电压值读取数据;若在目标信息表中未查询到目标地址对应的电压值,则利用默认值读取数据。其中,目标信息表中记录有发生过重读操作的Die地址、是否重读的标志位、重读操作成功时读取的电压值。
其中,当目标地址上发生读操作时,不管目标地址当前读操作是正常读操作还是重读操作,都先在目标信息表中查询目标地址;若查询到目标地址,则表明目标地址上发生过重读操作,此时直接从目标信息表中读取相应电压值执行读操作即可。若未查询到目标地址,则表明目标地址上没有发生过重读操作,此时按照目的地址所赋的电压值执行正常读操作。
其中,若按照图1所示的流程给目的地址调整过参考电压偏移值,则将目标信息表中的目的地址对应的电压值修改为目的地址当前所赋的参考电压偏移值,以提高目标信息表中记录的目的地址对应的电压值读取数据的成功率。
在一种具体实施方式中,若读取数据成功,则将本次读取数据所用的电压值和所述目标地址记录至所述目标信息表,若目标信息表中已有电压值,则覆盖式记录本次读取数据所用的电压值至目标信息表,即:将目标信息表中的电压值更新为本次读取数据所用的电压值。若读取数据失败,则遍历retry表,并利用遍历到的电压值读取数据,若利用遍历到的电压值读取数据成功,则将遍历到的电压值和目标地址记录至目标信息表,并将参考电压偏移值更改为0。其中,读取数据失败为:利用从目标信息表中读取的电压值读取数据失败或利用目的地址所赋的电压值执行正常读操作失败。
可见,本申请实施例能够记录目标地址上的读操作的操作信息,然后统计目标地址上发生重读操作的概率,最后根据此概率值调整目标地址的参考电压偏移值,也就是根据目标地址上发生重读操作的概率给目标地址赋相应的参考电压偏移值,以免下一次要读取目标地址上的数据时,再去遍历retry表。可见,本申请能够给地址赋合适的参考电压偏移值,从而可在一定程度上提高读命中率,避免读失败,因此可减少遍历retry表的次数和重读操作发生的概率,也不会因为重读操作较多影响读写IO的性能,从而提高了固态硬盘性能。
参见图2所示,本申请实施例公开了另一种读操作处理流程,具体包括:
第一步:接收读取地址B0上的数据的命令;
第二步:查询表C(即目标信息表),以确定地址B0是否记录在表C中,如是,则执行第三步;如不是,则执行第四步;
第三步:查询表C,以读取地址B0对应的电压值A,并用flash接口命令设置给地址B0;
第四步:读取地址B0上的数据;
第五步:判断是否发生UNC(即重读),如是,则执行第六步,如不是,则执行第七步;
第六步:遍历retry表,以获取读电压值An,并执行第九步。这里每次取一个电压值,下一次轮询过来再取下一个。
第七步:读取成功,并执行第八步;
第八步:设置默认的电压值0到地址B0,记录本次读取数据所用的电压值到表C,并标记地址B0是否发生过重读,读取流程结束;
第九步:是否遍历到An,如是,则执行第四步,如不是,则执行第十步;
第十步:读取失败,读取流程结束。
如图2所示,当地址B0上发生读操作时,不管当前读操作是正常读操作还是重读操作,都先在表C中查询目标地址;若查询到地址B0,则直接从表C中读取相应电压值并执行读操作。若未查询到地址B0,则按照地址B0所赋的电压值执行正常读操作。若读取数据失败,则遍历retry表,并利用遍历到的电压值读取数据,若利用遍历到的电压值读取数据成功,则将遍历到的电压值和地址B0记录至表C,并将地址B0的电压更改为0。
可见,本实施例通过提前查表C,使得大部分读操作(大概80%)可以直接用表C中读取到的电压值或地址自身所赋的电压值成功执行读操作,小部分读操作(大概20%)遍历retry表执行读操作,从而降低了遍历retry表带来的开销。
参见图3所示,本申请实施例公开了第三种读操作处理流程,具体包括:
第一步:对die地址Q进行读操作;
第二步:判断是否发生重读,如是,则执行第三步,如不是,则执行第四步;
第三步:记录重读信息到滑动窗口信息表T的最近项,记录当前重读的电压值到die电压管理表T2;
第四步:记录正常读取信息到滑动窗口信息表T的最近项;
第五步:更新滑动窗口信息表T的头部指针;
第六步:基于滑动窗口信息表T判断最近N笔读操作发生重读的概率是否大于阈值Y,如是,则执行第七步;如不是,则无操作;
第七步:当前die地址Q满足更改电压值的条件,从die电压管理表T2获取任一个电压值,到第八步;
第八步:发送flash操作命令将获得的电压值设置给die地址Q。
本实施例中,优选的,die地址Q满足更改电压值的条件为:die地址Q上最近N笔读操作中重读操作发生的概率大于20%,即:阈值Y取值20%。
可见,本实施例可以根据die地址上发生重读操作的概率给die地址赋合适的参考电压偏移值,以免下一次要读取die地址上的数据时,再去遍历retry表,从而可在一定程度上提高读命中率,避免读失败,因此可减少遍历retry表的次数和重读操作发生的概率,也不会因为重读操作较多影响读写IO的性能,从而提高了固态硬盘性能和使用寿命。
下面对本申请实施例提供的一种读操作处理装置进行介绍,下文描述的一种读操作处理装置与上文描述的一种读操作处理方法可以相互参照。
参见图4所示,本申请实施例公开了一种读操作处理装置,包括:
记录模块401,用于记录对目标地址进行读操作的操作信息;读操作包括执行成功的重读操作和正常读操作;
统计模块402,用于基于操作信息统计目标地址发生重读操作的概率;
调整模块403,用于根据概率调整目标地址的参考电压偏移值。
在一种具体实施方式中,记录模块具体用于:
若读操作为执行成功的重读操作,则记录目标地址,是否重读的标志位以及重读操作执行成功时从retry表中读取的电压值;若读操作为正常读操作,则记录目标地址和是否重读的标志位。retry表可参见图5。
在一种具体实施方式中,记录模块具体用于:
记录操作信息至预设循环链表,预设循环链表以滑动窗口记录N个操作信息。
在一种具体实施方式中,统计模块具体用于:
基于记录的所有操作信息统计目标地址发生重读操作的概率;
或者
基于预设时间段内记录的操作信息统计目标地址发生重读操作的概率;
或者
基于最近记录的M个操作信息统计目标地址发生重读操作的概率。
在一种具体实施方式中,调整模块具体用于:
若目标地址为die地址,且概率大于预设阈值,则将参考电压偏移值更改为操作信息中记录的最近一次重读操作执行成功时从retry表中读取的电压值;
或者
若目标地址为die地址,且概率大于预设阈值,则计算操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值的平均值,将参考电压偏移值更改为平均值;
或者
若目标地址为die地址,且概率大于预设阈值,则从操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值中随机选择目标电压值,将参考电压偏移值更改为目标电压值。
在一种具体实施方式中,调整模块具体用于:
若目标地址为多个块地址或页地址,且最近获得的概率均大于预设阈值,则将参考电压偏移值更改为操作信息中记录的最近一次重读操作执行成功时从retry表中读取的电压值;
或者
若目标地址为多个块地址或页地址,且最近获得的概率均大于预设阈值,则计算操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值的平均值,将参考电压偏移值更改为平均值;
或者
若目标地址为多个块地址或页地址,且最近获得的概率均大于预设阈值,则从操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值中随机选择目标电压值,将参考电压偏移值更改为目标电压值。
在一种具体实施方式中,还包括读操作模块,用于对目标地址进行读操作,读操作模块包括:
查询单元,用于在目标信息表中查询目标地址;
第一读取单元,用于若在目标信息表中查询到目标地址对应的电压值,则读取电压值,并利用电压值读取数据;
第二读取单元,用于若在目标信息表中未查询到目标地址对应的电压值,则利用默认值读取数据。
在一种具体实施方式中,读操作模块还包括:
读取成功单元,用于若读取数据成功,则将本次读取数据所用的电压值和目标地址记录至目标信息表;
读取失败单元,用于若读取数据失败,则遍历retry表,并利用遍历到的电压值读取数据,若利用遍历到的电压值读取数据成功,则将遍历到的电压值和目标地址记录至目标信息表,并将参考电压偏移值更改为0。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种读操作处理装置,该装置能够给地址赋合适的参考电压偏移值,从而可在一定程度上提高读命中率,避免读失败,因此可减少遍历retry表的次数和重读操作发生的概率,也不会因为重读操作较多影响读写IO的性能,从而提高了固态硬盘性能。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种读操作处理方法、装置可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的读操作处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种读操作处理方法,其特征在于,包括:
记录对目标地址进行读操作的操作信息;所述读操作包括执行成功的重读操作和正常读操作;
基于所述操作信息统计所述目标地址发生重读操作的概率;
根据所述概率调整所述目标地址的参考电压偏移值。
2.根据权利要求1所述的读操作处理方法,其特征在于,所述记录对目标地址进行读操作的操作信息,包括:
若所述读操作为执行成功的重读操作,则记录所述目标地址,是否重读的标志位以及所述重读操作执行成功时从retry表中读取的电压值;
若所述读操作为正常读操作,则记录所述目标地址和是否重读的标志位。
3.根据权利要求1所述的读操作处理方法,其特征在于,所述记录对目标地址进行读操作的操作信息,包括:
记录所述操作信息至预设循环链表,所述预设循环链表以滑动窗口记录N个操作信息。
4.根据权利要求1所述的读操作处理方法,其特征在于,所述基于所述操作信息统计所述目标地址发生重读操作的概率,包括:
基于记录的所有操作信息统计所述目标地址发生重读操作的概率;
或者
基于预设时间段内记录的操作信息统计所述目标地址发生重读操作的概率;
或者
基于最近记录的M个操作信息统计所述目标地址发生重读操作的概率。
5.根据权利要求1所述的读操作处理方法,其特征在于,所述根据所述概率调整所述目标地址的参考电压偏移值,包括:
若所述目标地址为die地址,且所述概率大于预设阈值,则将所述参考电压偏移值更改为所述操作信息中记录的最近一次重读操作执行成功时从retry表中读取的电压值;
或者
若所述目标地址为die地址,且所述概率大于预设阈值,则计算所述操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值的平均值,将所述参考电压偏移值更改为所述平均值;
或者
若所述目标地址为die地址,且所述概率大于预设阈值,则从所述操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值中随机选择目标电压值,将所述参考电压偏移值更改为所述目标电压值。
6.根据权利要求1所述的读操作处理方法,其特征在于,所述根据所述概率调整所述目标地址的参考电压偏移值,包括:
若所述目标地址为多个块地址或页地址,且最近获得的所述概率均大于预设阈值,则将所述参考电压偏移值更改为所述操作信息中记录的最近一次重读操作执行成功时从retry表中读取的电压值;
或者
若所述目标地址为多个块地址或页地址,且最近获得的所述概率均大于预设阈值,则计算所述操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值的平均值,将所述参考电压偏移值更改为所述平均值;
或者
若所述目标地址为多个块地址或页地址,且最近获得的所述概率均大于预设阈值,则从所述操作信息中记录的所有重读操作执行成功时从retry表中读取的电压值中随机选择目标电压值,将所述参考电压偏移值更改为所述目标电压值。
7.根据权利要求1至6任一项所述的读操作处理方法,其特征在于,对所述目标地址进行读操作,包括:
在目标信息表中查询所述目标地址;
若在所述目标信息表中查询到所述目标地址对应的电压值,则读取所述电压值,并利用所述电压值读取数据;
若在所述目标信息表中未查询到所述目标地址对应的电压值,则利用默认值读取数据。
8.根据权利要求7所述的读操作处理方法,其特征在于,还包括:
若读取数据成功,则将本次读取数据所用的电压值和所述目标地址记录至所述目标信息表;
若读取数据失败,则遍历retry表,并利用遍历到的电压值读取数据,若利用遍历到的电压值读取数据成功,则将遍历到的电压值和所述目标地址记录至所述目标信息表,并将所述参考电压偏移值更改为0。
9.一种读操作处理装置,其特征在于,包括:
记录模块,用于记录对目标地址进行读操作的操作信息;所述读操作包括执行成功的重读操作和正常读操作;
统计模块,用于基于所述操作信息统计所述目标地址发生重读操作的概率;
调整模块,用于根据所述概率调整所述目标地址的参考电压偏移值。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的读操作处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010750795.3A CN111863098B (zh) | 2020-07-30 | 2020-07-30 | 一种读操作处理方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010750795.3A CN111863098B (zh) | 2020-07-30 | 2020-07-30 | 一种读操作处理方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111863098A true CN111863098A (zh) | 2020-10-30 |
CN111863098B CN111863098B (zh) | 2022-10-11 |
Family
ID=72945526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010750795.3A Active CN111863098B (zh) | 2020-07-30 | 2020-07-30 | 一种读操作处理方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111863098B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112562766A (zh) * | 2020-12-23 | 2021-03-26 | 深圳大普微电子科技有限公司 | 一种重读管理方法、固态硬盘控制器及固态硬盘 |
CN114049910A (zh) * | 2022-01-13 | 2022-02-15 | 深圳华电通讯有限公司 | 一种nand重读档位的换挡方法、系统及相关组件 |
CN114296645A (zh) * | 2021-12-17 | 2022-04-08 | 合肥大唐存储科技有限公司 | 一种Nand闪存中重读方法和固态硬盘 |
WO2022193272A1 (en) * | 2021-03-19 | 2022-09-22 | Micron Technology, Inc. | Determining offsets for memory read operations |
CN116665761A (zh) * | 2023-05-24 | 2023-08-29 | 珠海妙存科技有限公司 | 数据分析方法、数据分析装置、电子设备和存储介质 |
CN116682475A (zh) * | 2023-05-24 | 2023-09-01 | 珠海妙存科技有限公司 | 电压偏移量确定方法、电压偏移量调整方法和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60220444A (ja) * | 1984-04-17 | 1985-11-05 | Fujitsu Ltd | 交替ビツト制御回路 |
JPS6266357A (ja) * | 1985-09-18 | 1987-03-25 | Nec Corp | フアイル制御装置 |
US6687194B1 (en) * | 1998-12-15 | 2004-02-03 | Fujitsu Limited | Optical storing apparatus and reproducing method for correcting read errors |
US20050144376A1 (en) * | 2003-10-04 | 2005-06-30 | Samsung Electronics Co., Ltd. | Method and apparatus to perform improved retry in data storage system |
CN103914358A (zh) * | 2014-04-03 | 2014-07-09 | 深圳市硅格半导体有限公司 | 一种对闪存进行重读操作的方法及装置 |
CN111078151A (zh) * | 2019-12-19 | 2020-04-28 | 江苏芯盛智能科技有限公司 | 固态硬盘数据重读方法、装置和固态硬盘 |
CN111863097A (zh) * | 2020-06-29 | 2020-10-30 | 联芸科技(杭州)有限公司 | 快闪存储器的读取控制方法及装置 |
-
2020
- 2020-07-30 CN CN202010750795.3A patent/CN111863098B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60220444A (ja) * | 1984-04-17 | 1985-11-05 | Fujitsu Ltd | 交替ビツト制御回路 |
JPS6266357A (ja) * | 1985-09-18 | 1987-03-25 | Nec Corp | フアイル制御装置 |
US6687194B1 (en) * | 1998-12-15 | 2004-02-03 | Fujitsu Limited | Optical storing apparatus and reproducing method for correcting read errors |
US20050144376A1 (en) * | 2003-10-04 | 2005-06-30 | Samsung Electronics Co., Ltd. | Method and apparatus to perform improved retry in data storage system |
CN103914358A (zh) * | 2014-04-03 | 2014-07-09 | 深圳市硅格半导体有限公司 | 一种对闪存进行重读操作的方法及装置 |
CN111078151A (zh) * | 2019-12-19 | 2020-04-28 | 江苏芯盛智能科技有限公司 | 固态硬盘数据重读方法、装置和固态硬盘 |
CN111863097A (zh) * | 2020-06-29 | 2020-10-30 | 联芸科技(杭州)有限公司 | 快闪存储器的读取控制方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112562766A (zh) * | 2020-12-23 | 2021-03-26 | 深圳大普微电子科技有限公司 | 一种重读管理方法、固态硬盘控制器及固态硬盘 |
WO2022193272A1 (en) * | 2021-03-19 | 2022-09-22 | Micron Technology, Inc. | Determining offsets for memory read operations |
CN114296645A (zh) * | 2021-12-17 | 2022-04-08 | 合肥大唐存储科技有限公司 | 一种Nand闪存中重读方法和固态硬盘 |
CN114296645B (zh) * | 2021-12-17 | 2024-01-02 | 合肥大唐存储科技有限公司 | 一种Nand闪存中重读方法和固态硬盘 |
CN114049910A (zh) * | 2022-01-13 | 2022-02-15 | 深圳华电通讯有限公司 | 一种nand重读档位的换挡方法、系统及相关组件 |
CN114049910B (zh) * | 2022-01-13 | 2022-04-22 | 深圳华电通讯有限公司 | 一种nand重读档位的换档方法、系统及相关组件 |
CN116665761A (zh) * | 2023-05-24 | 2023-08-29 | 珠海妙存科技有限公司 | 数据分析方法、数据分析装置、电子设备和存储介质 |
CN116682475A (zh) * | 2023-05-24 | 2023-09-01 | 珠海妙存科技有限公司 | 电压偏移量确定方法、电压偏移量调整方法和存储介质 |
CN116682475B (zh) * | 2023-05-24 | 2024-01-23 | 珠海妙存科技有限公司 | 电压偏移量确定方法、电压偏移量调整方法和存储介质 |
CN116665761B (zh) * | 2023-05-24 | 2024-01-23 | 珠海妙存科技有限公司 | 数据分析方法、数据分析装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111863098B (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111863098B (zh) | 一种读操作处理方法、装置及可读存储介质 | |
US7171515B2 (en) | Storage unit with improved performance by purging unnecessary data and transferring data with high probability of future hits to a segment buffer | |
CN111309687A (zh) | 一种对象存储小文件处理方法、装置、设备及存储介质 | |
US10303382B1 (en) | Application defined storage device | |
CN108228449B (zh) | 终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
US10572335B2 (en) | Metadata recovery method and apparatus | |
EP3142014B1 (en) | Method, device and user equipment for reading/writing data in nand flash | |
CN111949220B (zh) | 存储设备异常断电恢复方法及存储设备 | |
CN112068772B (zh) | 数据存储方法、数据存储装置及存储装置 | |
CN108829355B (zh) | 一种垃圾回收方法及装置 | |
US10585592B2 (en) | Disk area isolation method and device | |
US20110107056A1 (en) | Method for determining data correlation and a data processing method for a memory | |
CN112347001A (zh) | 闪存垃圾回收的校验方法、装置及电子设备 | |
US8810846B1 (en) | Updating data in a one-time programmable data storage device | |
CN112463795A (zh) | 一种动态哈希方法、装置、设备及存储介质 | |
CN109669641B (zh) | 降低ssd误码率的数据存放方法及装置 | |
CN110795031A (zh) | 一种基于全闪存储的数据重删方法、装置和系统 | |
CN108228340B (zh) | 终端控制方法及装置、终端设备及计算机可读存储介质 | |
CN115328851A (zh) | 一种数据保护方法、装置、设备及介质 | |
CN115114239A (zh) | 分布式系统数据处理方法、装置、设备及介质 | |
CN109783024B (zh) | 数据存储处理方法及装置 | |
US10838621B2 (en) | Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection | |
CN113032348A (zh) | 一种空间数据管理方法、系统及计算机可读存储介质 | |
CN112214356A (zh) | 文件数据恢复方法、装置、计算机设备及存储介质 | |
CN112463041A (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 |