CN115129264B - 固态硬盘读性能优化方法及装置、介质、固态硬盘 - Google Patents
固态硬盘读性能优化方法及装置、介质、固态硬盘 Download PDFInfo
- Publication number
- CN115129264B CN115129264B CN202211046597.4A CN202211046597A CN115129264B CN 115129264 B CN115129264 B CN 115129264B CN 202211046597 A CN202211046597 A CN 202211046597A CN 115129264 B CN115129264 B CN 115129264B
- Authority
- CN
- China
- Prior art keywords
- read
- data
- register group
- reading
- filter
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明涉及一种固态硬盘读性能优化方法及装置、介质、固态硬盘,方法包括:在接收到主机发送来的读请求时,获取所述读请求中的地址信息;将所述地址信息输入到布隆滤波器中,得到所述读请求对应的待读取数据是否为热数据的判断结果;其中,所述布隆滤波器为基于所述读请求的时间就近特性和读频次而输出对应的所述判断结果;若所述判断结果为所述待读取数据为热数据,则判断所述待读取数据所在的数据块的读判决电平是否为优化后的读判决电平;若是,则根据所述读请求进行读操作;否则,根据所述读请求进行读操作,并在所述读操作之后通过预测模型对所述块的读判决电平进行优化。本发明可以降低只用频率信息导致的热数据误识别率偏高的问题。
Description
技术领域
本发明涉及固态硬盘技术领域,尤其是涉及一种固态硬盘读性能优化方法及装置、介质、固态硬盘。
背景技术
固态硬盘的数据读取速率和响应速度是固态硬盘的重要性能指标。受固态硬盘本身物理存储介质特性的影响,数据读出时会包含一定的错误,必须由纠错码解码器即ECC解码器将这些错误消除。但是随着存储介质特性逐步恶化,数据中的错误数量同步攀升,进而导致ECC解码器的延时、功耗也不断增加,直至超过其纠错能力,进而引发retry read,最终导致服务质量即QS的急剧恶化。其中,retry read是指尝试用不同的参考电压来读数据,直到读出。
为了缓解这类问题,很多现有方法会将筛选出的热数据从NAND中读取、纠错后存放在高速缓存里。这样当这些数据被主机再次读取时就可以大大提高响应速度。但是现实中固态硬盘面临的业务场景千差万别,仅凭固态硬盘上相当有限的缓存资源难以保证足够的热数据命中率。尤其对于企业级用户,其大吞吐率连续读取场景也让小尺寸的缓存显得可有可无。此外,为了维持缓存的命中率,还需要设计一套更新机制,将长期没有被访问的数据或者 “脏数据”清理出去,这无疑又增加了固件的复杂度。
现有方案对于热数据的筛选,大都基于记录每个逻辑页地址被读取的频次信息。且不论单凭频次信息筛选的片面性,单是储存这些频次信息就是非常大的一笔开销。因此现有方案不仅筛选效果不理想,占用的资源却很多,总之性价比不高。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种固态硬盘读性能优化方法及装置、介质、固态硬盘。
第一方面,本发明实施例提供一种固态硬盘读性能优化方法,包括:
在接收到主机发送来的读请求时,获取所述读请求中的地址信息;
将所述地址信息输入到布隆滤波器中,得到所述读请求对应的待读取数据是否为热数据的判断结果;其中,所述布隆滤波器为基于所述读请求的时间就近特性和读频次而输出对应的所述判断结果;
若所述判断结果为所述待读取数据为热数据,则判断所述待读取数据所在的数据块的读判决电平是否为优化后的读判决电平;
若是,则根据所述读请求进行读操作;
否则,根据所述读请求进行读操作,并在所述读操作之后通过预测模型对所述块的读判决电平进行优化。
在一个实施例中,方法还包括:若所述判断结果为所述待读取数据不是热数据,则根据所述读请求进行读操作。
在一个实施例中,所述布隆滤波器中设置有V个独立的滤波寄存器组,每一个滤波寄存器组中包括预设数量的目标寄存器;所述布隆滤波器中还设置有M个散列函数,每一个散列函数用于根据输入地址计算出对应的映射值,每一个映射值对应所述滤波寄存器组中的一个目标寄存器;第一个滤波寄存器组作为当前滤波寄存器组,滤波寄存器组的编号越小,对应的权重值越大;采用预设轮询策略对当前滤波寄存器组进行更新,使得编号越小的滤波寄存器组对应的读请求越接近当前时间;V为大于1的正整数, M为大于1的正整数;
对应的,所述布隆滤波器根据输入的地址信息输出所述判断结果的过程包括:
将所述地址信息输入到所述M个散列函数中,得到对应的M个映射值,并将所述当前滤波寄存器组中所述M个映射值对应的M个目标寄存器的状态值均置为1;
获取在每一个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值,并根据各个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值以及各个滤波寄存器组各自对应的权重值,计算所述待读取数据的读热度值;
判断所述读热度值是否高于预设门限;
若是,则输出所述待读取数据为热数据的判断结果;
否则,所输出所述待读取数据不是热数据的判断结果。
在一个实施例中,采用第一计算式计算所述读热度值,所述第一计算式为:
式中,Heat为所述读热度值;为第i个滤波寄存器组的权重值,i为大于等于1且小于等于V的正整数;在第i个滤波寄存器组中,若所述M个映射值对应的M个目标寄存器置的状态值均为1,则为1,否则为0;LPN为所述地址信息。
在一个实施例中,所述预设轮询策略包括:每经历T个读请求,则将第V个滤波寄存器组中的各个目标寄存器的状态值均清零,将第1个滤波寄存器组至第V-1个滤波寄存器组的编号均加1,将清零后的第V个滤波寄存器组的编号置为1,以使清零后的第V个滤波寄存器组成为第一个滤波寄存器组,以实现对当前滤波寄存器组的轮询更新;其中,T为大于1的预设正整数。
在一个实施例中,所述通过预测模型对所述块的读判决电平进行优化,包括:
获取待读取数据所在的数据块的使用状态信息、读数据温度和写数据温度;其中,所述读数据温度为所述数据块的当前温度,所述写数据温度为所述待读取数据写入时所述数据块的温度;
根据所述使用状态信息确定所述数据块的读判决电平初始值;
根据所述读数据温度和所述写数据温度确定电平补偿值,根据所述电平补偿值对所述读判决电平初始值进行修正。
进一步的,所述使用状态信息为等效驻留时间和擦写次数。
第二方面,本发明实施例提供一种固态硬盘读性能优化装置,包括:
地址获取模块,用于在接收到主机发送来的读请求时,获取所述读请求中的地址信息;
地址输入模块,用于将所述地址信息输入到布隆滤波器中,得到所述读请求对应的待读取数据是否为热数据的判断结果;其中,所述布隆滤波器为基于所述读请求的时间就近特性和读频次而输出对应的所述判断结果;
数据读取模块,用于:若所述判断结果为所述待读取数据为热数据,则判断所述待读取数据所在的数据块的读判决电平是否为优化后的读判决电平;若是,则根据所述读请求进行读操作;否则,根据所述读请求进行读操作,并在所述读操作之后通过预测模型对所述块的读判决电平进行优化。
第三方面,本发明实施例提供一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面提供的所述的方法。
第四方面,本发明实施例提供一种SSD设备,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面提供的所述方法的步骤。
本发明实施例提供的固态硬盘读性能优化方法及装置、固态硬盘,各自或者组合后至少具有如下技术效果:
(1)由于频次信息不能反映数据最近的热度,很多研究显示这种方法会导致热数据误识别率偏高。在本发明实施例中的布隆滤波器考虑到了时间近因特性,从而会避免旧的热数据被重复识别,从而降低了只用频率信息导致的热数据误识别率偏高的问题。
(2)利用预测模型优化读取数据的判决电平来改善固态硬盘的读性能,有效降低了读出数据中包含的错误率,从而减轻ECC解码器的工作负荷,减少了读延时和功耗,并且避免了缓存数据引起的各种麻烦。
(3)本发明实施例中采用的布隆滤波器来代替现有技术中对各个LPN读频次的统计,虽然在本方法中的布隆滤波器也涉及到频次信息,但是不必专门为频次信息预留缓存来存储频次信息,在计算时直接统计即可。而且,统计的频次信息并非是真正的精准频次信息,而是能表明待读取数据是否被读取过的信息,因此本方法可以解决读频次信息存储量大的问题,节省了筛选信息的存储量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例中固态硬盘读性能优化方法的流程示意图;
图2为本发明一个实施例中布隆滤波器的架构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,本发明实施例提供一种固态硬盘读性能优化方法。
参见图1,该方法包括如下步骤S101~S105:
S101、在接收到主机发送来的读请求时,获取所述读请求中的地址信息;
可理解的是,本发明实施例提供的方法可以由固态硬盘来执行。当固态硬盘接收到主机发送来的一个读请求时,便可以执行本发明实施例提供的方法。
其中,在主机发送来的读请求中包含待读取的数据对应的逻辑地址或者物理地址,将这些地址作为上述地址信息。
S102、将所述地址信息输入到布隆滤波器中,得到所述读请求对应的待读取数据是否为热数据的判断结果;其中,所述布隆滤波器为基于所述读请求的时间就近特性和读频次而输出对应的所述判断结果;
其中,热数据为访问比较频繁的数据。除了热数据之外,数据的类型还包括冷数据和温数据,冷数据和温数据的访问频率都低于热数据的访问频率。
其中,布隆滤波器的输入信息为读请求中的地址信息,输出信息为判断结果,该判断结果可以表明待读取数据是否为热数据。
其中,布隆滤波器在根据地址信息输出判断结果时考虑到相同地址的数据的读频次信息。除了读频次之外,还考虑到时间就近特性。所谓的时间就近特性是指:在一段时间内可能接收到针对相同地址的读请求,这些读请求对应的时间距离当前时间越近越重要,距离当前时间越远越不重要,如果距离当前时间很远,则可以不考虑其影响。
S103、若所述判断结果为所述待读取数据为热数据,则判断所述待读取数据所在的数据块的读判决电平是否为优化后的读判决电平;
S104、若所述判断结果为所述待读取数据为热数据,则根据所述读请求进行读操作;
S105、所述判断结果为所述待读取数据不是热数据,则根据所述读请求进行读操作,并在所述读操作之后通过预测模型对所述块的读判决电平进行优化。
也就是说,如果待读取数据所在的数据块即Block的读判决电平为经过优化后的读判决电平,则直接进行读操作。而如果待读取数据所在的数据块的读判决电平没有经过优化,则先进行读操作,在读操作执行完毕后再对所在块的读判决电平进行优化处理。
这里,优化读判决电平设置在读操作之后的原因是:用户对读请求的延时要求通常较高,而优化读判决电平需要向NAND颗粒发送配置命令,这会引起额外的延时,因此在读完后再配置虽然不会对当前的读请求生效,但对后续的读请求会产生有益效果。由于热数据被再次访问的概率要远大于其他数据,因此这种先进行读操作后进行读判决电平优化的方式对后续的读请求有很大的益处。
当然,如果判断结果为所述待读取数据不是热数据,则可以直接根据所述读请求进行读操作。也就是说,如果待读取数据不是热数据,或者虽然是热数据但是所在块的读判决电平被优化处理过,则直接进行读操作,读操作执行完毕后结束本方法。而如果待读取数据是热数据,而且待读取数据所在的数据块的读判决电平没有被优化过,则先进行读操作,读操作完毕后再进行读判决电平的优化,优化完成后再结束本方法。
在一个实施例中,所述布隆滤波器中可以设置有V个独立的滤波寄存器组,每一个滤波寄存器组中包括预设数量的目标寄存器;所述布隆滤波器中还设置有M个散列函数,每一个散列函数用于根据输入地址计算出对应的映射值,每一个映射值对应所述滤波寄存器组中的一个目标寄存器;第一个滤波寄存器组作为当前滤波寄存器组,滤波寄存器组的编号越小,对应的权重值越大;V为大于1的正整数, M为大于1的正整数。采用预设轮询策略对当前滤波寄存器组进行更新,使得编号越小的滤波寄存器组中的目标寄存器对应的读请求越接近当前时间。
基于上述结构,所述布隆滤波器根据输入的地址信息输出所述判断结果的过程包括a~c:
a、将所述地址信息输入到所述M个散列函数中,得到对应的M个映射值,并将所述当前滤波寄存器组中所述M个映射值对应的M个目标寄存器的状态值均置为1;
其中,将地址信息输入到一个散列函数中,得到一个映射值。由于需要输入到M个散列函数中,便可以得到M个映射值。
其中,当前编号为1的滤波寄存器组即第一个当前滤波寄存器组,也是当前滤波寄存器组。编号为i的滤波寄存器组即第i个当前滤波寄存器组。
其中,在每一个滤波寄存器组中,M个映射值对应M个目标寄存器。针对SSD硬盘本次接收到的读请求,只将当前滤波寄存器组中的M个目标寄存器置为1。
b、获取在每一个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值,并根据各个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值以及各个滤波寄存器组各自对应的权重值,计算所述待读取数据的读热度值;
可理解的是,在每一个滤波寄存器组中M个映射值对应的M个目标寄存器的状态值。由于一共有V个滤波寄存器组,因此一共有V*M个目标寄存器的状态值。
其中,每一个滤波寄存器组对应一个权重值,编号越小的滤波寄存器组的权重值越大,即第一个滤波寄存器组的权重值最大,第V个滤波寄存器组的权重值是最小的。基于滤波寄存器组一定的轮询策略对当前滤波寄存器组进行更新,使得滤波寄存器组的编号越小,滤波寄存器组中目标寄存器对应的读请求越接近当前时间。可见,距离当前时间越近,对应的滤波寄存器组的权重越大。距离当前时间越远,对应的滤波寄存器组的权重越小。即在此处体现出时间就近特性。
其中,散列函数可以为CRC生成函数,CRC即循环冗余校验码。
具体的,可以采用第一计算式计算一个读请求对应的待读取数据的读热度值,第一计算式为:
式中,Heat为所述读热度值;为第i个滤波寄存器组的权重值;i为大于等于1且小于等于V的正整数;在第i个滤波寄存器组中,若所述M个映射值对应的M个目标寄存器置的状态值均为1,则为1,否则为0;LPN为所述地址信息。
也就是说,如果在第i个滤波寄存器组中,所述M个映射值对应的M个目标寄存器置的状态值均为1,说明在i个滤波寄存器组中,针对上述地址信息的待读取数据至少读取过一次,因此此时的为1。如果M目标寄存器置的状态值不全为0,M目标寄存器置的状态值中存在至少一个0,说明在i个滤波寄存器组中,针对上述地址信息的待读取数据没有读取过,因此此时为0。可见,在第一计算式中考虑到频次信息,但并不是精准的频次信息,而是粒度比较大的频次信息。其中的为第i个滤波寄存器组的权重值,即体现出了时间就近特性。
可见,在上述第一计算式中体现出了时间就近特性和频次信息。
c、判断所述读热度值是否高于预设门限;
若是,则输出所述待读取数据为热数据的判断结果;
否则,所输出所述待读取数据不是热数据的判断结果。
举例来说,参见图2,每一列目标寄存器为一个滤波寄存器组,一共有V列目标寄存器,即一共有V个滤波寄存器组。一共有两个散列函数。一个逻辑地址或者物理地址经过两个散列函数后,会得到两个映射值,这两个映射值对应当前滤波寄存器组即第一个滤波寄存器组中的两个目标寄存器,则将这两个目标寄存器置为1。然后针对每一个滤波寄存器组,查找对应的2个目标寄存器的状态值。例如,在图2中,在第二个滤波寄存器组中,对应的2个目标寄存器的状态值均为0。在第三个滤波寄存器组中,对应的2个目标寄存器的状态值均为1。……在第V个滤波寄存器组中,对应的2个目标寄存器的状态值均为0。然后基于上述第一计算式计算读热度值,判断读热度值和预设门限的大小关系,如果大于预设门限,则判断为热数据,如果小于等于预设门限,则判断为不是热数据。
在一个实施例中,预设轮询策略可以包括:所述预设轮询策略包括:每经历T个读请求,则将第V个滤波寄存器组中的各个目标寄存器的状态值均清零,将第1个滤波寄存器组至第V-1个滤波寄存器组的编号均加1,将清零后的第V个滤波寄存器组的编号置为1,以使清零后的第V个滤波寄存器组成为第一个滤波寄存器组,实现对当前滤波寄存器组的轮询更新;其中,T为大于1的预设正整数。
其中,T为预先设置的一定数量。
也就是说,每当经历T个读请求,此时第V个滤波寄存器组中存储的状态值距离当前时间比较远,可以忽略不计其影响,因此将第V个滤波寄存器组中的所有状态值均置为0。然后将第V个滤波寄存器组作为第一个滤波寄存器组,即,将清零后的第V个滤波寄存器组设置为当前滤波寄存器组。而且将其余的滤波寄存器组的顺序向后移动一位,即编号加1。也就是说,原本的第1个滤波寄存器组变成了第2个滤波寄存器组,原本的第2个滤波寄存器组变成了第3个滤波寄存器组,……,原本的第V-1个滤波寄存器组变成了第V个滤波寄存器组,原本的第V个滤波寄存器组清零后变成了第1个滤波寄存器组。
通过上述策略轮询可知,编号越小的滤波寄存器组对应的是距离当前时间越近的读请求,编号越大的滤波寄存器组对应的是距离当前时间越远的读请求。
由于频次信息不能反映数据最近的热度,很多研究显示这种方法会导致热数据误识别率偏高。在上述布隆滤波器中考虑到了近因特性,从而会避免旧的热数据被重复识别,从而降低了只用频率信息导致的热数据误识别率偏高的问题。上述布隆滤波器为改进的布隆滤波器。
可理解的是,采用上述改进的布隆滤波器来代替现有技术中对各个LPN读频次的统计,虽然在本方法中的布隆滤波器也涉及到频次信息,但是不必专门为频次信息预留缓存来存储频次信息,在计算时直接统计即可。而且,统计的频次信息并非是真正的精准频次信息,而是能表明待读取数据是否被读取过的信息,因此本方法可以解决读频次信息存储量大的问题。
可理解的是,利用预测模型优化读取数据的判决电平来改善固态硬盘的读性能,有效降低了读出数据中包含的错误率,从而减轻ECC解码器的工作负荷,减少了读延时和功耗,并且避免了缓存数据引起的各种麻烦。
发明实施例采用的布隆滤波器为一种改进的布隆滤波器,通过改进的布隆滤波器筛选出热数据,并通过预测模型优化待读取数据所在块的读判决电平来改善固态硬盘的读性能。相比现有技术,本发明实施例提供的方法不但改善了筛选效果,节省了筛选信息的存储量,而且避免了将热数据存储在缓存中的一系列麻烦。
在一个实施例中,通过预测模型对所述块的读判决电平进行优化的过程可以包括如下步骤:
1、获取待读取数据所在的数据块的使用状态信息、读数据温度和写数据温度;其中,所述读数据温度为所述数据块的当前温度,所述写数据温度为所述待读取数据写入时所述数据块的温度;
2、根据所述使用状态信息确定所述数据块的读判决电平初始值;
3、根据所述读数据温度和所述写数据温度确定电平补偿值,根据所述电平补偿值对所述读判决电平初始值进行修正。
其中,可以从预设的信息记录表中获取所述数据块的写数据记录,写数据记录中包括写入时间、写入数据时的温度等信息。
其中,所述数据块的实时温度或者所处工作环境的温度作为读数据温度。
其中,使用状态信息可以包括等效驻留时间和擦写次数。其中,等效驻留时间是指高温场景相对低温场景对驻留时间具有加速作用,可根据阿伦尼乌斯公式计算某个温度下的等效驻留时间,可见等效驻留时间相对于驻留时间考虑了温度因素。因此可以根据等效驻留时间和/或擦写次数预测所述数据块的读判决电平初始值,该步骤可以参考相关文献,这里不再赘述。
其中,电平补偿值的确定过程可以包括:
1、计算写数据温度与预设的补偿参考温度之间的第一温差,从第一关系表中查找与所述第一温差对应的第一电平补偿值;其中,所述第一关系表中包括多个第一温差和第一电平补偿值之间的对应关系;第一电平补偿值为写验证电平补偿值;
2、计算读数据温度与预设的补偿参考温度之间的第二温差,从第二关系表中查找所述第二温度对应的第二电平补偿值;其中,所述第二关系表中包括多个第二温差和第二电平补偿值之间的对应关系;第二电平补偿值为默认判决电平补偿值;
3、将第一电平补偿值和第二电平补偿值求和,得到所述电平补偿值。
可见,上述方式为通过查表确定电平补偿值,第一关系表和第二关系表都是提前标定好的。
其中,默认判决电平补偿值对应的默认判决电平为主机向固态硬盘发送读请求时采用的默认电压。默认判决电平补偿值即该默认电压对应的补偿值。
其中,写验证电平补偿值对应的写验证电平是指:在写数据的时候,颗粒采用步进的方式向单元中注入电子,写过程中单元cell会不断的将自身电压和写验证电平门限进行比对,超出该门限后停止注入电子,此时的电平为写验证电平。
基于上述预测模型对所述块的读判决电平进行优化后,可以使得在进行数据读取时以最优判决电平进行数据读取,可以将读出数据中的原始错误平均降低一半以上,减低ECC解码器的延时和功耗,提高固态硬盘的寿命,显著减少retry read的触发次数,提高读请求的服务质量。
第二方面,本发明实施例提供一种固态硬盘读性能优化装置。
该装置包括:
地址获取模块,用于在接收到主机发送来的读请求时,获取所述读请求中的地址信息;
地址输入模块,用于将所述地址信息输入到布隆滤波器中,得到所述读请求对应的待读取数据是否为热数据的判断结果;其中,所述布隆滤波器为基于所述读请求的时间就近特性和读频次而输出对应的所述判断结果;
数据读取模块,用于:若所述判断结果为所述待读取数据为热数据,则判断所述待读取数据所在的数据块的读判决电平是否为优化后的读判决电平;若是,则根据所述读请求进行读操作;否则,根据所述读请求进行读操作,并在所述读操作之后通过预测模型对所述块的读判决电平进行优化。
在一个实施例中,数据读取模块还用于:若所述判断结果为所述待读取数据不是热数据,则根据所述读请求进行读操作。
在一个实施例中,所述布隆滤波器中设置有V个独立的滤波寄存器组,每一个滤波寄存器组中包括预设数量的目标寄存器;所述布隆滤波器中还设置有M个散列函数,每一个散列函数用于根据输入地址计算出对应的映射值,每一个映射值对应所述滤波寄存器组中的一个目标寄存器;第一个滤波寄存器组作为当前滤波寄存器组,滤波寄存器组的编号越小,对应的权重值越大;采用预设轮询策略对当前滤波寄存器组进行更新,使得编号越小的滤波寄存器组对应的读请求越接近当前时间;V为大于1的正整数, M为大于1的正整数;
对应的,所述布隆滤波器具体用于:将所述地址信息输入到所述M个散列函数中,得到对应的M个映射值,并将所述当前滤波寄存器组中所述M个映射值对应的M个目标寄存器的状态值均置为1;获取在每一个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值,并根据各个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值以及各个滤波寄存器组各自对应的权重值,计算所述待读取数据的读热度值;判断所述读热度值是否高于预设门限;若是,则输出所述待读取数据为热数据的判断结果;否则,所输出所述待读取数据不是热数据的判断结果。
进一步的,所述布隆滤波器具体用于:采用第一计算式计算所述读热度值,所述第一计算式为:
式中,Heat为所述读热度值;为第i个滤波寄存器组的权重值,i为大于等于1且小于等于V的正整数;在第i个滤波寄存器组中,若所述M个映射值对应的M个目标寄存器置的状态值均为1,则为1,否则为0;LPN为所述地址信息。
进一步的,所述布隆滤波器采用的所述预设轮询策略包括:每经历T个读请求,则将第V个滤波寄存器组中的各个目标寄存器的状态值均清零,将第1个滤波寄存器组至第V-1个滤波寄存器组的编号均加1,将清零后的第V个滤波寄存器组的编号置为1,以使清零后的第V个滤波寄存器组成为第一个滤波寄存器组,以实现对当前滤波寄存器组的轮询更新;其中,T为大于1的预设正整数。
在一个实施例中,所述预测模型具体用于:获取待读取数据所在的数据块的使用状态信息、读数据温度和写数据温度;其中,所述读数据温度为所述数据块的当前温度,所述写数据温度为所述待读取数据写入时所述数据块的温度;根据所述使用状态信息确定所述数据块的读判决电平初始值;根据所述读数据温度和所述写数据温度确定电平补偿值,根据所述电平补偿值对所述读判决电平初始值进行修正。
进一步的,所述使用状态信息为等效驻留时间和擦写次数。
可理解的是,本发明实施例提供的装置中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
第三方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面提供的方法的步骤。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
可理解的是,本发明实施例提供的计算机可读介质中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
第四方面,本发明实施例提供一种固态硬盘,固态硬盘包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的方法的步骤。
可理解的是,本发明实施例提供的固态硬盘中有关内容的解释、具体实施方式、有益效果、举例等内容可以参见第一方面提供的方法中的相应部分,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (9)
1.一种固态硬盘读性能优化方法,其特征在于,包括:
在接收到主机发送来的读请求时,获取所述读请求中的地址信息;
将所述地址信息输入到布隆滤波器中,得到所述读请求对应的待读取数据是否为热数据的判断结果;其中,所述布隆滤波器为基于所述读请求的时间就近特性和读频次而输出对应的所述判断结果;
若所述判断结果为所述待读取数据为热数据,则判断所述待读取数据所在的数据块的读判决电平是否为优化后的读判决电平;
若是,则根据所述读请求进行读操作;
否则,根据所述读请求进行读操作,并在所述读操作之后通过预测模型对所述块的读判决电平进行优化;
所述布隆滤波器中设置有V个独立的滤波寄存器组,每一个滤波寄存器组中包括预设数量的目标寄存器;所述布隆滤波器中还设置有M个散列函数,每一个散列函数用于根据输入地址计算出对应的映射值,每一个映射值对应所述滤波寄存器组中的一个目标寄存器;第一个滤波寄存器组作为当前滤波寄存器组,滤波寄存器组的编号越小,对应的权重值越大;采用预设轮询策略对当前滤波寄存器组进行更新,使得编号越小的滤波寄存器组对应的读请求越接近当前时间;V为大于1的正整数, M为大于1的正整数;
对应的,所述布隆滤波器根据输入的地址信息输出所述判断结果的过程包括:
将所述地址信息输入到所述M个散列函数中,得到对应的M个映射值,并将所述当前滤波寄存器组中所述M个映射值对应的M个目标寄存器的状态值均置为1;
获取在每一个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值,并根据各个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值以及各个滤波寄存器组各自对应的权重值,计算所述待读取数据的读热度值;
判断所述读热度值是否高于预设门限;
若是,则输出所述待读取数据为热数据的判断结果;
否则,所输出所述待读取数据不是热数据的判断结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述判断结果为所述待读取数据不是热数据,则根据所述读请求进行读操作。
4.根据权利要求1所述的方法,其特征在于,所述预设轮询策略包括:每经历T个读请求,则将第V个滤波寄存器组中的各个目标寄存器的状态值均清零,将第1个滤波寄存器组至第V-1个滤波寄存器组的编号均加1,将清零后的第V个滤波寄存器组的编号置为1,以使清零后的第V个滤波寄存器组成为第一个滤波寄存器组,以实现对当前滤波寄存器组的轮询更新;其中,T为大于1的预设正整数。
5.根据权利要求1所述的方法,其特征在于,所述通过预测模型对所述块的读判决电平进行优化,包括:
获取待读取数据所在的数据块的使用状态信息、读数据温度和写数据温度;其中,所述读数据温度为所述数据块的当前温度,所述写数据温度为所述待读取数据写入时所述数据块的温度;
根据所述使用状态信息确定所述数据块的读判决电平初始值;
根据所述读数据温度和所述写数据温度确定电平补偿值,根据所述电平补偿值对所述读判决电平初始值进行修正。
6.根据权利要求5所述的方法,其特征在于,所述使用状态信息为等效驻留时间和擦写次数。
7.一种固态硬盘读性能优化装置,其特征在于,包括:
地址获取模块,用于在接收到主机发送来的读请求时,获取所述读请求中的地址信息;
地址输入模块,用于将所述地址信息输入到布隆滤波器中,得到所述读请求对应的待读取数据是否为热数据的判断结果;其中,所述布隆滤波器为基于所述读请求的时间就近特性和读频次而输出对应的所述判断结果;
数据读取模块,用于:若所述判断结果为所述待读取数据为热数据,则判断所述待读取数据所在的数据块的读判决电平是否为优化后的读判决电平;若是,则根据所述读请求进行读操作;否则,根据所述读请求进行读操作,并在所述读操作之后通过预测模型对所述块的读判决电平进行优化;
其中,所述布隆滤波器中设置有V个独立的滤波寄存器组,每一个滤波寄存器组中包括预设数量的目标寄存器;所述布隆滤波器中还设置有M个散列函数,每一个散列函数用于根据输入地址计算出对应的映射值,每一个映射值对应所述滤波寄存器组中的一个目标寄存器;第一个滤波寄存器组作为当前滤波寄存器组,滤波寄存器组的编号越小,对应的权重值越大;采用预设轮询策略对当前滤波寄存器组进行更新,使得编号越小的滤波寄存器组对应的读请求越接近当前时间;V为大于1的正整数, M为大于1的正整数;
对应的,所述布隆滤波器根据输入的地址信息输出所述判断结果的过程包括:将所述地址信息输入到所述M个散列函数中,得到对应的M个映射值,并将所述当前滤波寄存器组中所述M个映射值对应的M个目标寄存器的状态值均置为1;获取在每一个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值,并根据各个滤波寄存器组中所述M个映射值对应的M个目标寄存器置的状态值以及各个滤波寄存器组各自对应的权重值,计算所述待读取数据的读热度值;判断所述读热度值是否高于预设门限;若是,则输出所述待读取数据为热数据的判断结果;否则,所输出所述待读取数据不是热数据的判断结果。
8.一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至6中任一所述的方法。
9.一种SSD设备,其特征在于,包括存储控制器,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211046597.4A CN115129264B (zh) | 2022-08-30 | 2022-08-30 | 固态硬盘读性能优化方法及装置、介质、固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211046597.4A CN115129264B (zh) | 2022-08-30 | 2022-08-30 | 固态硬盘读性能优化方法及装置、介质、固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115129264A CN115129264A (zh) | 2022-09-30 |
CN115129264B true CN115129264B (zh) | 2022-11-25 |
Family
ID=83387846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211046597.4A Active CN115129264B (zh) | 2022-08-30 | 2022-08-30 | 固态硬盘读性能优化方法及装置、介质、固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129264B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210280B2 (en) * | 2019-06-04 | 2021-12-28 | Alibaba Group Holding Limited | Systems and methods for fast bloom filter operations |
US11385984B2 (en) * | 2020-02-24 | 2022-07-12 | Western Digital Technologies, Inc. | Variable read scan for solid-state storage device quality of service |
CN112052190B (zh) * | 2020-09-03 | 2022-08-30 | 杭州电子科技大学 | 一种基于布隆过滤器和二级lru表的固态硬盘热数据识别方法 |
CN114020573B (zh) * | 2021-11-09 | 2022-06-07 | 北京得瑞领新科技有限公司 | 判决电平预测方法、存储介质及ssd设备 |
CN114118439B (zh) * | 2021-11-09 | 2022-05-13 | 北京得瑞领新科技有限公司 | 判决电平预测模型的训练数据生成方法、系统及存储介质 |
CN114333957A (zh) * | 2022-03-07 | 2022-04-12 | 北京得瑞领新科技有限公司 | 判决电平的预测方法、存储设备及存储介质 |
-
2022
- 2022-08-30 CN CN202211046597.4A patent/CN115129264B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115129264A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789860B2 (en) | Logical to physical mapping management using low-latency non-volatile memory | |
US10732898B2 (en) | Method and apparatus for accessing flash memory device | |
US11287998B2 (en) | Read count scaling factor for data integrity scan | |
CN113015965B (zh) | 基于小计写入计数器执行混合损耗均衡操作 | |
KR101522402B1 (ko) | 반도체 디스크 장치 및 그것의 데이터 관리 방법 | |
US9274943B2 (en) | Storage unit management method, memory controller and memory storage device using the same | |
US10296466B2 (en) | Information processing device, method of controlling a cache memory, and storage medium | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US20210191815A1 (en) | Read disturb scan consolidation | |
CN109213693B (zh) | 存储管理方法、存储系统和计算机程序产品 | |
CN114020573B (zh) | 判决电平预测方法、存储介质及ssd设备 | |
CN113076218B (zh) | Nvm芯片读数据错误快速处理方法及其控制器 | |
KR20170086840A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20210294519A1 (en) | Memory system and control method thereof | |
CN109901944B (zh) | 基于机器学习的读数据错误处理方法与系统 | |
CN115129264B (zh) | 固态硬盘读性能优化方法及装置、介质、固态硬盘 | |
US10698834B2 (en) | Memory system | |
CN115827511A (zh) | 设置缓存的方法以及装置 | |
CN111767165B (zh) | 数据处理方法、装置及控制设备 | |
US20090063769A1 (en) | Raid apparatus, controller of raid apparatus and write-back control method of the raid apparatus | |
US10503651B2 (en) | Media cache band cleaning | |
TWI712052B (zh) | 記憶體管理方法、儲存控制器與儲存裝置 | |
US20240168683A1 (en) | Folding Zone Management Optimization in Storage Device | |
CN113010458B (zh) | 存储器管理方法、存储控制器与存储装置 | |
TW202411850A (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 |