一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于固态硬盘的加速映射表更新方法、装置及计算机设备与流程

2022-04-09 11:35:20 来源:中国专利 TAG:


1.本发明涉及存储系统技术领域,特别是涉及一种基于固态硬盘的加速映射表更新方法、装置、计算机设备及存储介质。


背景技术:

2.随着固态硬盘技术的发展,ssd(solid state disk,固态硬盘)已经被广泛应用于各种场合,在pc市场已经逐步替代传统的hdd(hard disk drive,硬盘驱动器),从可靠性和性能方面为用户提供较好的体验。
3.目前,ssd在响应主机写命令过程中需要更新映射表,而在处理大量写命令时频繁更新映射表会耗费处理时间,进而影响对主机命令的响应。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种基于固态硬盘的加速映射表更新方法、装置、计算机设备及存储介质。
5.一种基于固态硬盘的加速映射表更新方法,所述方法包括:
6.获取基于固态硬盘的加速映射表更新请求;
7.在处理一个写命令时,将对应的映射表项发送给硬件加速机制;
8.在所述硬件加速机制中,将所述对应的映射表项加入到待更新队列中;
9.从所述待更新队列中获取一个映射表项,更新对应的映射表并将更新结果放入结果队列中;
10.待一个映射表项更新完后,再从待更新队列中获取下一个映射表项继续更新直至所有映射表项都更新完毕。
11.在其中一个实施例中,所述方法还包括:
12.判断是否能够获取到新的写命令;
13.若能够获取到新的写命令则通过所述硬件加速机制进行更新映射表;
14.在通过所述硬件加速机制进行更新映射表的同时,通过软件依次对所有写命令进行相关处理。
15.在其中一个实施例中,在所述判断是否获取到新的写命令的步骤之后还包括:
16.若获取不到新的写命令,则表示所有写命令处理已完成。
17.在其中一个实施例中,在所述若获取不到新的写命令,则表示所有写命令处理已完成的步骤之后还包括:
18.当所有写命令处理完后,从所述结果队列中获取所有映射表更新结果,再一并进行后续处理。
19.一种基于固态硬盘的加速映射表更新装置,所述装置包括:
20.获取模块,所述获取模块用于获取基于固态硬盘的加速映射表更新请求;
21.发送模块,所述发送模块用于在处理一个写命令时,将对应的映射表项发送给硬
件加速机制;
22.队列加入模块,所述队列加入模块用于在所述硬件加速机制中,将所述对应的映射表项加入到待更新队列中;
23.映射表更新模块,所述映射表更新模块用于从所述待更新队列中获取一个映射表项,更新对应的映射表并将更新结果放入结果队列中;
24.循环模块,所述循环模块用于待一个映射表项更新完后,再从待更新队列中获取下一个映射表项继续更新直至所有映射表项都更新完毕。
25.在其中一个实施例中,所述装置还包括判断模块,所述判断模块用于:
26.判断是否能够获取到新的写命令;
27.若能够获取到新的写命令则通过所述硬件加速机制进行更新映射表;
28.在通过所述硬件加速机制进行更新映射表的同时,通过软件依次对所有写命令进行相关处理。
29.在其中一个实施例中,所述判断模块还用于:
30.若获取不到新的写命令,则表示所有写命令处理已完成。
31.在其中一个实施例中,所述判断模块还用于:
32.当所有写命令处理完后,从所述结果队列中获取所有映射表更新结果,再一并进行后续处理。
33.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
34.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
35.上述基于固态硬盘的加速映射表更新方法、装置、计算机设备及存储介质通过获取基于固态硬盘的加速映射表更新请求;在处理一个写命令时,将对应的映射表项发送给硬件加速机制;在所述硬件加速机制中,将所述对应的映射表项加入到待更新队列中;从所述待更新队列中获取一个映射表项,更新对应的映射表并将更新结果放入结果队列中;待一个映射表项更新完后,再从待更新队列中获取下一个映射表项继续更新直至所有映射表项都更新完毕。本发明在ssd软件处理写命令过程中,采用硬件加速机制更新映射表,使得映射表更新与写命令处理进行同步,有效地提升了系统写性能。
附图说明
36.图1为一个实施例中基于固态硬盘的加速映射表更新方法的流程示意图;
37.图2为另一个实施例中基于固态硬盘的加速映射表更新方法的流程示意图;
38.图3为再一个实施例中基于固态硬盘的加速映射表更新方法的流程示意图;
39.图4为一个实施例中基于固态硬盘的加速映射表更新装置的结构框图;
40.图5为另一个实施例中基于固态硬盘的加速映射表更新装置的结构框图;
41.图6为一个实施例中计算机设备的内部结构图。
具体实施方式
42.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
43.目前,ssd在响应主机写命令过程中需要更新映射表,而在处理大量写命令时频繁更新映射表会耗费处理时间,进而影响对主机命令的响应。
44.基于此,本发明提出一种基于固态硬盘的加速映射表更新方法,旨在响应主机写命令过程中尽量使映射表的更新与写命令处理同步进行,以提升系统写性能提升。
45.在一个实施例中,如图1所示,提供了一种基于固态硬盘的加速映射表更新方法,该方法包括:
46.步骤102,获取基于固态硬盘的加速映射表更新请求;
47.步骤104,在处理一个写命令时,将对应的映射表项发送给硬件加速机制;
48.步骤106,在硬件加速机制中,将对应的映射表项加入到待更新队列中;
49.步骤108,从待更新队列中获取一个映射表项,更新对应的映射表并将更新结果放入结果队列中;
50.步骤110,待一个映射表项更新完后,再从待更新队列中获取下一个映射表项继续更新直至所有映射表项都更新完毕。
51.在本实施例中,提出一种加速映射表更新的新策略,在响应主机写命令过程中尽量使映射表的更新与写命令处理同步进行,以提升系统写性能,其具体的实现步骤如下:
52.可参考图3中的右侧所示,在ssd软件处理写命令过程中,采用硬件加速机制更新映射表,使得写命令的处理与映射表的更新并行处理。
53.具体地,在处理一个写命令时,会将对应的映射表项发送给硬件加速机制,并加入到待更新队列中。在硬件加速机制中,从待更新队列中获取一个映射表项,更新对应的映射表,并将更新结果放入结果队列中。一个映射表项更新完后,再从待更新队列中获取下一个映射表项继续更新,直至所有映射表项都更新完毕。
54.在本实施例中,通过获取基于固态硬盘的加速映射表更新请求;在处理一个写命令时,将对应的映射表项发送给硬件加速机制;在所述硬件加速机制中,将所述对应的映射表项加入到待更新队列中;从所述待更新队列中获取一个映射表项,更新对应的映射表并将更新结果放入结果队列中;待一个映射表项更新完后,再从待更新队列中获取下一个映射表项继续更新直至所有映射表项都更新完毕。本方案在ssd软件处理写命令过程中,采用硬件加速机制更新映射表,使得映射表更新与写命令处理进行同步,有效地提升了系统写性能。
55.在一个实施例中,如图2所示,提供了一种基于固态硬盘的加速映射表更新方法,该方法还包括:
56.步骤202,判断是否能够获取到新的写命令;
57.步骤204,若能够获取到新的写命令则通过所述硬件加速机制进行更新映射表;
58.步骤206,在通过所述硬件加速机制进行更新映射表的同时,通过软件依次对所有写命令进行相关处理;
59.步骤208,若获取不到新的写命令,则表示所有写命令处理已完成;
60.步骤210,当所有写命令处理完后,从结果队列中获取所有映射表更新结果,再一并进行后续处理。
61.在本实施例中,可参考图3中的左侧所示,在硬件更新映射表的同时,软件也会依次对所有写命令进行相关处理,使得映射表的更新处理与写命令的处理同步进行。当所有写命令处理完后,从结果队列中获取所有映射表更新结果,再一并进行后续处理。
62.对于多个写命令,每处理一个写命令同时发送命令给硬件加速机制更新对应映射表。当所有写命令都处理完成后,硬件加速机制也同步完成了映射表的更新。最后再一并对所有更新完成后的映射表项进行处理。
63.应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
64.在一个实施例中,如图4所示,提供了一种基于固态硬盘的加速映射表更新装置400,该装置包括:
65.获取模块401,所述获取模块用于获取基于固态硬盘的加速映射表更新请求;
66.发送模块402,所述发送模块用于在处理一个写命令时,将对应的映射表项发送给硬件加速机制;
67.队列加入模块403,所述队列加入模块用于在所述硬件加速机制中,将所述对应的映射表项加入到待更新队列中;
68.映射表更新模块404,所述映射表更新模块用于从所述待更新队列中获取一个映射表项,更新对应的映射表并将更新结果放入结果队列中;
69.循环模块405,所述循环模块用于待一个映射表项更新完后,再从待更新队列中获取下一个映射表项继续更新直至所有映射表项都更新完毕。
70.在一个实施例中,如图5所示,提供了一种基于固态硬盘的加速映射表更新装置400,该装置还包括判断模块406,所述判断模块用于:
71.判断是否能够获取到新的写命令;
72.若能够获取到新的写命令则通过所述硬件加速机制进行更新映射表;
73.在通过所述硬件加速机制进行更新映射表的同时,通过软件依次对所有写命令进行相关处理。
74.在一个实施例中,判断模块406还用于:
75.若获取不到新的写命令,则表示所有写命令处理已完成。
76.在一个实施例中,判断模块406还用于:
77.当所有写命令处理完后,从所述结果队列中获取所有映射表更新结果,再一并进行后续处理。
78.关于基于固态硬盘的加速映射表更新装置的具体限定可以参见上文中对于基于固态硬盘的加速映射表更新方法的限定,在此不再赘述。
79.在一个实施例中,提供了一种计算机设备,其内部结构图可以如图6所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理
器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于固态硬盘的加速映射表更新方法。
80.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
81.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
82.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
83.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
84.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
85.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献