DRAM-less固态硬盘大范围随机读性能提升方法和装置与流程

未命名 09-01 阅读:153 评论:0

dram-less固态硬盘大范围随机读性能提升方法和装置
技术领域
1.本发明涉及固态硬盘技术领域,特别是涉及一种dram-less固态硬盘大范围随机读性能提升方法、装置、计算机设备和存储介质。


背景技术:

2.在dram-less ssd中,因ssd自身的ram空间有限,通常会借用主机存储空间(host memory buffer,简称hmb)来缓存从nand加载的映射表。映射表缓存通常是划分成固定大小单元来管理的,当因处理命令需要访问的映射表在hmb中时,需要将hmb中的映射表单元交换到ssd本地ram,才能进行映射表的读写访问。对于大范围随机读场景,dram-less ssd本地ram不能容纳读命令所涉及的全部映射表缓存,需要频繁地将hmb和ssd本地ram中的映射表缓存进行交换,这些交换操作对读性能有较大的不利影响。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种dram-less固态硬盘大范围随机读性能提升方法、装置、计算机设备和存储介质。
4.一种dram-less固态硬盘大范围随机读性能提升方法,所述方法包括:
5.在大范围随机读场景下,检查当前读命令所需要的临时映射缓存空间是否足够;
6.若足够则为所述读命令分配临时映射缓存并提交从hmb加载映射到临时映射缓存请求,若不足则异步等待;
7.待加载请求执行完毕后,根据临时映射缓存和本地映射缓存获取读命令所需的完整映射;
8.向nand提交读请求,然后释放为所述读命令分配的临时映射缓存。
9.在其中一个实施例中,所述方法还包括:
10.通过检测映射表的命中率对大范围随机读场景进行识别,若命中率低于预设的阈值则标识进入大范围随机读场景,否则清除所述标识。
11.在其中一个实施例中,所述通过检测映射表的命中率对大范围随机读场景进行识别,若命中率低于预设的阈值则标识进入大范围随机读场景,否则清除所述标识的步骤还包括:
12.将收到命令按逻辑单元大小进行分解,对每个逻辑单元检查其对应的映射表是否加载或是否已提交请求;
13.若是则将命中计数加1,否则将未命中计数加1;
14.在命令处理结束后,先更新采样阶段命令访问的逻辑空间范围,然后再判断映射表命中检查数是否超过读检测阈值;
15.若是则更新映射表命中率阈值并计算采样阶段映射表命中率;
16.若计算得到的命中率低于映射表命中率阈值则标识进入大范围随机读场景,否则清除所述标识。
17.在其中一个实施例中,所述临时映射缓存的大小为hmb交换的最小单元的大小与命令所需映射表的大小的最大值。
18.一种dram-less固态硬盘大范围随机读性能提升装置,所述装置包括:
19.检查模块,所述检查模块用于在大范围随机读场景下,检查当前读命令所需要的临时映射缓存空间是否足够;
20.分配模块,所述分配模块用于若足够则为所述读命令分配临时映射缓存并提交从hmb加载映射到临时映射缓存请求,若不足则异步等待;
21.获取模块,所述获取模块用于待加载请求执行完毕后,根据临时映射缓存和本地映射缓存获取读命令所需的完整映射;
22.释放模块,所述释放模块用于向nand提交读请求,然后释放为所述读命令分配的临时映射缓存。
23.在其中一个实施例中,所述装置还包括:
24.场景识别模块,所述场景识别模块用于通过检测映射表的命中率对大范围随机读场景进行识别,若命中率低于预设的阈值则标识进入大范围随机读场景,否则清除所述标识。
25.在其中一个实施例中,所述场景识别模块还用于:
26.将收到命令按逻辑单元大小进行分解,对每个逻辑单元检查其对应的映射表是否加载或是否已提交请求;
27.若是则将命中计数加1,否则将未命中计数加1;
28.在命令处理结束后,先更新采样阶段命令访问的逻辑空间范围,然后再判断映射表命中检查数是否超过读检测阈值;
29.若是则更新映射表命中率阈值并计算采样阶段映射表命中率;
30.若计算得到的命中率低于映射表命中率阈值则标识进入大范围随机读场景,否则清除所述标识。
31.在其中一个实施例中,所述临时映射缓存的大小为hmb交换的最小单元的大小与命令所需映射表的大小的最大值。
32.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
33.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
34.上述dram-less固态硬盘大范围随机读性能提升方法、装置、计算机设备和存储介质,在大范围随机读场景,如果随机读命令对应的映射表在hmb中,则针对该读命令单独分配单独的临时映射表缓存,仅从hmb中加载该命令所需的映射表项。从hmb中加载命令所需的映射表项到临时缓存后,即可发起nand读操作,同时释放该读命令对应的临时映射表。如此,可以避免大范围随机读场景映射表缓存在hmb和ssd本地ram间频繁地交换,进而提升了大范围随机读性能。
附图说明
35.图1为一个实施例中dram-less固态硬盘大范围随机读性能提升方法的流程示意
图;
36.图2为另一个实施例中dram-less固态硬盘大范围随机读性能提升方法的流程示意图;
37.图3为一个实施例中大范围随机读场景读命令处理的流程示意图;
38.图4为一个实施例中大范围随机读场景识别的流程示意图;
39.图5为一个实施例中dram-less固态硬盘大范围随机读性能提升装置的结构框图;
40.图6为另一个实施例中dram-less固态硬盘大范围随机读性能提升装置的结构框图;
41.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
42.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
43.目前,对于大范围随机读场景,dram-less ssd本地ram不能容纳读命令所涉及的全部映射表缓存,需要频繁地将hmb和ssd本地ram中的映射表缓存进行交换,这些交换操作对读性能有较大不利影响。
44.基于此,本方案提供了一种dram-less固态硬盘大范围随机读性能提升方法旨在可以避免大范围随机读场景映射表缓存在hmb和ssd本地ram间频繁地交换。
45.在一个实施例中,如图1所示,提供了一种dram-less固态硬盘大范围随机读性能提升方法,该方法包括:
46.步骤102,在大范围随机读场景下,检查当前读命令所需要的临时映射缓存空间是否足够;
47.步骤104,若足够则为读命令分配临时映射缓存并提交从hmb加载映射到临时映射缓存请求,若不足则异步等待;
48.步骤106,待加载请求执行完毕后,根据临时映射缓存和本地映射缓存获取读命令所需的完整映射;
49.步骤108,向nand提交读请求,然后释放为读命令分配的临时映射缓存。
50.在本实施例中,提供了一种dram-less固态硬盘大范围随机读性能提升方法,具体地,可参考图3所示的大范围随机读场景读命令处理的流程示意图,首先,接收到新的读命令,计算并检查当前读命令所需要的临时映射缓存是否足够,若不足则异步等待。
51.在一个实施例中,临时映射缓存的大小为hmb交换的最小单元的大小与命令所需映射表的大小的最大值。
52.具体地,临时缓存大小为hmb交换的最小单元大小和命令所需映射表大小的最大值。如假定hmb交换的最小单元大小为64b,命令最大256kb(对应256b映射表),则临时缓存大小取256b。临时映射缓存动态分配和释放,分配后与指定的读命令关联。
53.然后,分配临时映射缓存并提交从hmb加载请求。待加载请求执行完毕,根据临时映射缓存和本地映射缓存获取命令所需的完整映射,向nand提交读请求,最后释放为该命令分配的临时缓存。
54.在上述实施例中,在大范围随机读场景,如果随机读命令对应的映射表在hmb中,则针对该读命令单独分配单独的临时映射表缓存,仅从hmb中加载该命令所需的映射表项。从hmb中加载命令所需的映射表项到临时缓存后,即可发起nand读操作,同时释放该读命令对应的临时映射表。如此,可以避免大范围随机读场景映射表缓存在hmb和ssd本地ram间频繁地交换,进而提升了大范围随机读性能。
55.在一个实施例中,该方法还包括:通过检测映射表的命中率对大范围随机读场景进行识别,若命中率低于预设的阈值则标识进入大范围随机读场景,否则清除所述标识。
56.在一个实施例中,如图2所示,提供了一种dram-less固态硬盘大范围随机读性能提升方法,该方法还包括:
57.步骤202,将收到命令按逻辑单元大小进行分解,对每个逻辑单元检查其对应的映射表是否加载或是否已提交请求;
58.步骤204,若是则将命中计数加1,否则将未命中计数加1;
59.步骤206,在命令处理结束后,先更新采样阶段命令访问的逻辑空间范围,然后再判断映射表命中检查数是否超过读检测阈值;
60.步骤208,若是则更新映射表命中率阈值并计算采样阶段映射表命中率;
61.步骤210,若计算得到的命中率低于映射表命中率阈值则标识进入大范围随机读场景,否则清除标识。
62.具体地,如图4所示的大范围随机读场景识别的流程示意图,大范围随机读写场景通过检测映射表的命中率(按逻辑单元大小)来识别,该场景识别的过程包括如下实现步骤:
63.将收到命令按逻辑单元大小分解,对每个逻辑单元检查其对应的映射表是否加载或是否已提交请求。若是,则将命中计数加1,否则将未命中计数加1。
64.在命令处理结束后,先更新采样阶段命令访问的逻辑空间范围,后检查命中检查数(命中计数+未命中计数)是否超过阈值,若是,则更新映射表命中率阈值,计算此采样阶段映射表命中率(命中计数/命中检查数),若命中率低于阈值,则标识进入大范围随机读写场景,否则清除此标记。
65.具体地,以本地映射表缓存为1mb,映射单元大小为4kb的ssd进行举例说明。在采样阶段,若检测到命令访问的逻辑空闲大小为8gb,此区间对应8mb的映射表,则命中率阈值计算为2*1mb/8mb=25%,当命中率低于25%时,则标识进入大范围随机读写场景。
66.在本实施例中,实现了对大范围随机读写场景进行快速有效地识别。
67.应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
68.在一个实施例中,如图5所示,提供了一种dram-less固态硬盘大范围随机读性能提升装置500,该装置包括:
69.检查模块501,所述检查模块用于在大范围随机读场景下,检查当前读命令所需要的临时映射缓存空间是否足够;
70.分配模块502,所述分配模块用于若足够则为所述读命令分配临时映射缓存并提交从hmb加载映射到临时映射缓存请求,若不足则异步等待;
71.获取模块503,所述获取模块用于待加载请求执行完毕后,根据临时映射缓存和本地映射缓存获取读命令所需的完整映射;
72.释放模块504,所述释放模块用于向nand提交读请求,然后释放为所述读命令分配的临时映射缓存。
73.在一个实施例中,如图6所示,提供了一种dram-less固态硬盘大范围随机读性能提升装置500,该装置还包括:
74.场景识别模块505,所述场景识别模块用于通过检测映射表的命中率对大范围随机读场景进行识别,若命中率低于预设的阈值则标识进入大范围随机读场景,否则清除所述标识。
75.在一个实施例中,场景识别模块505还用于:
76.将收到命令按逻辑单元大小进行分解,对每个逻辑单元检查其对应的映射表是否加载或是否已提交请求;
77.若是则将命中计数加1,否则将未命中计数加1;
78.在命令处理结束后,先更新采样阶段命令访问的逻辑空间范围,然后再判断映射表命中检查数是否超过读检测阈值;
79.若是则更新映射表命中率阈值并计算采样阶段映射表命中率;
80.若计算得到的命中率低于映射表命中率阈值则标识进入大范围随机读场景,否则清除所述标识。
81.在一个实施例中,所述临时映射缓存的大小为hmb交换的最小单元的大小与命令所需映射表的大小的最大值。
82.关于dram-less固态硬盘大范围随机读性能提升装置的具体限定可以参见上文中对于dram-less固态硬盘大范围随机读性能提升方法的限定,在此不再赘述。
83.在一个实施例中,提供了一种计算机设备,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种dram-less固态硬盘大范围随机读性能提升方法。
84.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
85.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
86.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
87.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一种非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
88.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
89.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。

技术特征:
1.一种dram-less固态硬盘大范围随机读性能提升方法,所述方法包括:在大范围随机读场景下,检查当前读命令所需要的临时映射缓存空间是否足够;若足够则为所述读命令分配临时映射缓存并提交从hmb加载映射到临时映射缓存请求,若不足则异步等待;待加载请求执行完毕后,根据临时映射缓存和本地映射缓存获取读命令所需的完整映射;向nand提交读请求,然后释放为所述读命令分配的临时映射缓存。2.根据权利要求1所述的dram-less固态硬盘大范围随机读性能提升方法,其特征在于,所述方法还包括:通过检测映射表的命中率对大范围随机读场景进行识别,若命中率低于预设的阈值则标识进入大范围随机读场景,否则清除所述标识。3.根据权利要求2所述的dram-less固态硬盘大范围随机读性能提升方法,其特征在于,所述通过检测映射表的命中率对大范围随机读场景进行识别,若命中率低于预设的阈值则标识进入大范围随机读场景,否则清除所述标识的步骤还包括:将收到命令按逻辑单元大小进行分解,对每个逻辑单元检查其对应的映射表是否加载或是否已提交请求;若是则将命中计数加1,否则将未命中计数加1;在命令处理结束后,先更新采样阶段命令访问的逻辑空间范围,然后再判断映射表命中检查数是否超过读检测阈值;若是则更新映射表命中率阈值并计算采样阶段映射表命中率;若计算得到的命中率低于映射表命中率阈值则标识进入大范围随机读场景,否则清除所述标识。4.根据权利要求1-3任一项所述的dram-less固态硬盘大范围随机读性能提升方法,其特征在于,所述临时映射缓存的大小为hmb交换的最小单元的大小与命令所需映射表的大小的最大值。5.一种dram-less固态硬盘大范围随机读性能提升装置,其特征在于,所述装置包括:检查模块,所述检查模块用于在大范围随机读场景下,检查当前读命令所需要的临时映射缓存空间是否足够;分配模块,所述分配模块用于若足够则为所述读命令分配临时映射缓存并提交从hmb加载映射到临时映射缓存请求,若不足则异步等待;获取模块,所述获取模块用于待加载请求执行完毕后,根据临时映射缓存和本地映射缓存获取读命令所需的完整映射;释放模块,所述释放模块用于向nand提交读请求,然后释放为所述读命令分配的临时映射缓存。6.根据权利要求5所述的dram-less固态硬盘大范围随机读性能提升装置,其特征在于,所述装置还包括:场景识别模块,所述场景识别模块用于通过检测映射表的命中率对大范围随机读场景进行识别,若命中率低于预设的阈值则标识进入大范围随机读场景,否则清除所述标识。7.根据权利要求6所述的dram-less固态硬盘大范围随机读性能提升装置,其特征在
于,所述场景识别模块还用于:将收到命令按逻辑单元大小进行分解,对每个逻辑单元检查其对应的映射表是否加载或是否已提交请求;若是则将命中计数加1,否则将未命中计数加1;在命令处理结束后,先更新采样阶段命令访问的逻辑空间范围,然后再判断映射表命中检查数是否超过读检测阈值;若是则更新映射表命中率阈值并计算采样阶段映射表命中率;若计算得到的命中率低于映射表命中率阈值则标识进入大范围随机读场景,否则清除所述标识。8.根据权利要求5-7任一项所述的dram-less固态硬盘大范围随机读性能提升装置,其特征在于,所述临时映射缓存的大小为hmb交换的最小单元的大小与命令所需映射表的大小的最大值。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。

技术总结
本申请涉及一种DRAM-less固态硬盘大范围随机读性能提升方法、装置、计算机设备和存储介质,其中该方法包括:在大范围随机读场景下,检查当前读命令所需要的临时映射缓存空间是否足够;若足够则为所述读命令分配临时映射缓存并提交从HMB加载映射到临时映射缓存请求,若不足则异步等待;待加载请求执行完毕后,根据临时映射缓存和本地映射缓存获取读命令所需的完整映射;向NAND提交读请求,然后释放为所述读命令分配的临时映射缓存。本发明可以避免大范围随机读场景映射表缓存在HMB和SSD本地RAM间频繁地交换,进而提升了大范围随机读性能。性能。性能。


技术研发人员:李建 赵连庚 肖世平
受保护的技术使用者:苏州忆联信息系统有限公司
技术研发日:2023.05.22
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐