固态硬盘的介质访问管理方法及固态硬盘与流程

文档序号:27947980发布日期:2021-12-11 15:46阅读:214来源:国知局
固态硬盘的介质访问管理方法及固态硬盘与流程

1.本发明涉及访问管理技术领域,特别涉及一种固态硬盘的介质访问管理方法及固态硬盘。


背景技术:

2.固态硬盘(ssd,solid state drive)是由控制器和存储芯片阵列组成的非挥发性数据存储装置。固态硬盘的存储介质包括闪存芯片(flash) 或dram芯片。固态硬盘的接口可以兼容以磁盘作为存储介质的传统硬盘,与传统硬盘相比具有体积小、质量轻、功耗低、无机械噪声、读写速度快等优点,因此,已经广泛地用于替代传统硬盘,例如应用于笔记本电脑、工控、视频监控、网络监控、网络终端、导航设备等诸多领域。
3.nand型快闪存储器使用i/o口来实现传送控制,地址和数据信息。快闪存储器的写入操作只能在已经是空的或擦除的单元内进行,所以大多数固态硬盘的一个必要操作就是执行垃圾回收(garbage colletion,简称gc)来获取新的可使用的空间。
4.但是,有些时候并不能及时对存储器中的存储单元进行垃圾回收以增加空的或擦除的存储单元,若在这种情况下对nand型快闪存储器进行写入操作,将会因为空的或擦除的存储单元过少而使得写入操作不能及时进行,从而产生固态硬盘进入写保护和读写响应严重延迟的问题。
5.为了使用户体验更好,固态硬盘的固件需要对nand型快闪存储器的访问进行必要的流程控制,从而预防固态硬盘进入写保护和读写响应严重延迟。


技术实现要素:

6.鉴于上述问题,本发明的目的在于提供一种固态硬盘的介质访问管理方法及固态硬盘,从而使固态硬盘更多时间保持较高的性能,以及保持固态硬盘数据的可靠性及使用寿命。
7.根据本发明的一方面,提供一种固态硬盘的介质访问管理方法,包括:当访问请求从访问队列中被取出执行时,获取所述访问请求的属性,其中,所述访问请求的属性至少包括操作类型,所述操作类型包括读操作和写操作;根据所述访问请求的属性获取固态硬盘的读操作负载和写操作负载;根据固态硬盘的读操作负载和写操作负载启动垃圾回收操作,并获取固态硬盘的状况信息;以及根据固态硬盘的状况信息调节写操作和垃圾回收操作之间的优先级。
8.可选地,根据固态硬盘的读操作负载和写操作负载启动垃圾回收操作的步骤包括:统计所述固态硬盘的读操作负载和写操作负载;当所述读操作负载和写操作负载低于第一预设条件时,启动垃圾回收操作,其中,所述读操作负载和写操作负载低于第一预设条件包括:所述读操作负载在一个统计周期内低于第一设定值,且所述读操作负载低于第一设定值持续n个周期;以及所述写操作负载在一个统计周期内低于第二设定值,且所述写操作负载低于第二设定值持续m个周期,n和m为大于1的自然数。
9.可选地,所述固态硬盘的状况信息包括:所述固态硬盘的存储阵列未使用的存储空间大小;所述固态硬盘的读干扰;以及所述固态硬盘的磨损情况。
10.可选地,根据固态硬盘的状况信息调节写操作和垃圾回收操作之间的优先级包括:在所述固态硬盘的存储阵列未使用的存储空间大小、读干扰以及磨损情况中的至少一项满足第二预设条件时提高所述垃圾回收操作的优先级;在所述固态硬盘的存储阵列未使用的存储空间大小、读干扰以及磨损情况中的至少一项满足第三预设条件时降低所述垃圾回收操作的优先级。
11.可选地,当访问请求从访问队列中被取出执行的步骤之前,还包括:访问请求申请访问权限并进入访问队列;在访问队列中按照访问请求的优先级获得访问权限。
12.可选地,访问请求申请访问权限并进入访问队列和在访问队列中按照访问请求的优先级获得访问权限的步骤之间,还包括:统计所述访问请求进入访问队列到获得访问权限的响应时间;判断所述响应时间是否大于第三设定值;大于所述第三设定值时使所述访问请求获得访问权限。
13.可选地,使所述访问请求获得访问权限的步骤包括:所述访问请求再次申请访问权限;调整所述访问请求的优先级或暂停部分垃圾回收操作,从而使所述访问请求获得访问权限。
14.根据本发明的另一方面,提供一种固态硬盘,包括:存储阵列,用于存储应用程序和数据;控制器,与所述存储阵列连接,是访问所述存储阵列的总控制,其中,所述控制器包括:控制模块,与所述存储阵列连接,用于判断访问请求的优先级以及访问顺序;负载统计模块,与所述控制模块连接,用于获取固态硬盘的读操作负载和写操作负载;gc 条件检测模块,与所述控制模块连接,用于获取固态硬盘的状况信息; gc事务计算模块,与所述gc条件检测模块和所述控制模块连接,用于根据固态硬盘的状况信息调节写操作和垃圾回收操作之间的优先级,其中,所述负载统计模块在所述读操作负载和写操作负载满足第一预定条件时启动垃圾回收操作。
15.可选地,所述第一预定条件包括:一个周期内所述读操作负载低于第一设定值,且所述读操作负载低于第一设定值持续n个周期;一个周期内所述写操作负载低于第二设定值,且所述写操作负载低于第二设定值持续m个周期,其中,n和m为大于1的自然数。
16.可选地,所述gc条件检测模块获取的固态硬盘的状况信息包括:所述固态硬盘的存储阵列未使用的存储空间大小、所述固态硬盘的读干扰,以及所述固态硬盘的磨损情况。
17.可选地,还包括:响应统计模块,用于统计访问请求进入访问队列到获得访问权限的响应时间。
18.可选地,当访问请求的响应时间大于第三设定值时,所述响应统计模块通知所述控制模块对响应的访问请求进行处理。
19.可选地,所述gc事务计算模块根据所述固态硬盘的存储阵列未使用的存储空间大小、读干扰以及磨损情况提高或降低所述垃圾回收操作的优先级。
20.本发明提供的固态硬盘的介质访问管理方法中,在固态硬盘的读操作负载和写操作负载达到预设条件后启动垃圾回收操作,能够在负载较轻时,及时对存储空间进行清理,不会对后续的写操作造成影响;根据固态硬盘的状况信息调节写操作和垃圾回收操作的优先级,可以降低写操作的响应时间,加快写操作的应急响应,从而提高固态硬盘的效率。
21.本发明提供的固态硬盘的介质访问管理方法及固态硬盘中,控制模块将固态硬盘的访问请求进行分类,并对每一种需求设定为一个事件,赋予优先级,当多个事件同时请求时,控制模块按照事件的优先级对访问顺序进行控制,从而获得更好的i/o响应,并保持在较低的振荡区间。
22.本发明提供的固态硬盘的介质访问管理方法及固态硬盘中,负载统计模块统计固态硬盘的读负载、写负载,并与第一预定条件进行比较,当判断固态硬盘负载较轻时,控制模块控制相应的模块执行垃圾回收的操作,从而使得固态硬盘的负载保持在正常值,因此使得固态硬盘可以有更多时间保持在较高的性能,从而提高了固态硬盘的效率。
23.本发明提供的固态硬盘的介质访问管理方法及固态硬盘中,响应统计模块统计访问请求进入访问队列到获得访问权限之间的响应时间,当该响应时间持续增加,达到第三设定值时,默认访问请求的响应超时,响应统计模块通知控制模块对该访问请求进行处理,从而提高了固态硬盘的访问请求的整体响应速度,同时也避免了由于固件原因导致的固态硬盘持续无法写入的问题。
24.本发明提供的固态硬盘的介质访问管理方法及固态硬盘中,gc条件检测模块以及gc事务计算模块需要对固态硬盘的状态信息进行监测以及对垃圾回收进行总体负载计算,并根据第二预设条件判断是否需要启动或中止垃圾回收的操作,或分配写操作与垃圾回收操作的负载比例,或调整垃圾回收操作与写操作之间的优先级,通过总体考虑垃圾回收的场景,保持固态硬盘数据的可靠性及使用寿命。
附图说明
25.通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
26.图1示出了根据本发明实施例的固态硬盘的结构图;
27.图2a示出了根据本发明实施例的固态硬盘的介质访问管理方法的一部分流程图;
28.图2b示出了根据本发明实施例的固态硬盘的介质访问管理方法的另一部分流程图。
具体实施方式
29.以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
30.附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
31.下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
32.图1示出了根据本发明实施例的固态硬盘的结构图。
33.参考图1,本技术的固态硬盘100包括控制器110和存储阵列120 (如nand型快闪存储器)。控制器110用于控制对存储阵列120的访问请求以及访问顺序,存储阵列120用于存储应用程序或数据。
34.控制器110包括:控制模块111,是访问存储阵列120的总体控制模块,用于判断访问请求的优先级以及根据优先级控制访问请求的访问顺序。当主机或其他单元要访问存储阵列120时,必须要向控制模块111 申请访问权限,不同的访问请求具有不同的优先级,控制模块111根据访问请求的优先级给出访问权限,没有访问权限的,暂停对存储阵列120 的访问,直到访问权限被允准为止。
35.在多种访问请求中,控制模块111对访问请求进行分类,并对每一种请求设定为一个事件,赋予优先级,当多个事件同时请求访问权限时,控制模块111按照访问请求的优先级进行控制。其中,访问请求在请求访问权限之后进入访问队列,在访问队列中按照优先级获得访问权限,获得访问权限后,相应的访问请求从访问队列中取出被执行。
36.负载统计模块112,与控制模块111连接,用于定时统计主机或其他单元访问固态硬盘时的读、写操作负载。当统计到读操作在一个统计周期内低于第一设定值,并持续n(n为大于1的自然数)个周期,则认为主机或其他单元的读操作负载较轻,否则认为主机或其他单元的读操作负载正常,计数清零;当统计到写操作在一个统计周期内低于第二设定值,并持续m(m为大于1的自然数)个周期,则认为主机或其他单元的写操作负载较轻,否则认为主机或其他单元的写操作负载正常,计数清零。如果统计到读操作和写操作都达到第一预设条件的负载较轻,则通知控制模块111,可以对存储阵列120进行垃圾回收(gc)的操作。
37.在该模块中,第一预设条件包括读操作负载和写操作负载同时在若干个周期内低于设定值,则表明该固态硬盘100的负载较轻,可以同时启动垃圾回收操作,使得固态硬盘100的负载始终保持在一个较为合适的状态,进而使得固态硬盘能够更多时间的保持在较高的性能,节省了专门进行垃圾回收的时间,相应的提高了访问请求的访问时间比率,从而提高了固态硬盘的访问效率。
38.在负载统计模块112模块中,还可以用于统计垃圾回收操作的负载,便于后续再次申请访问权限的访问请求的处理。
39.响应统计模块113,与控制模块111连接,用于统计主机需求的响应时间,如访问请求申请访问权限或进入访问队列到获得访问权限的响应时间。当主机或其他单元的访问请求申请访问权限之后,控制模块111 没有给出访问权限,则进入访问队列并开始计时。该响应时间持续增加,达到第三设定值,则认为该访问请求的响应超时,需要通知控制模块111 进行处理,此时该访问请求再次申请权限,控制模块111根据当前负载统计模块112统计的负载情况同意该访问请求的访问权限,该访问请求获得访问权限之后,统计归零。
40.在该模块中,控制模块111例如可以适当提高再次申请访问权限的访问请求的优先级;或在读操作和写操作的负载较轻时,安排该访问请求的访问权限;或在垃圾回收操作的优先级较低时安排该访问请求的访问权限;或在垃圾回收操作的负载占比较大时降低垃圾回收操作的负载比率用于执行该访问请求,使得该访问请求能够及时满足需求,从而使得固态硬盘100获得更好的i/o响应,并保持较低的振荡区间。
41.gc条件监测模块114,与控制模块111连接,用于对固态硬盘的状况信息进行监测,
并根据预设条件判断是否需要启动或中止垃圾回收 (gc)的操作。
42.在该模块中,监测的内容包括垃圾回收操作的触发事件、垃圾回收操作的中止事件、垃圾回收操作的优先级等。具体地,例如为存储阵列 120中的可用空闲块的数量,固态硬盘的负载情况等多种情况。其中, gc条件监测模块114监测的固态硬盘的负载情况和垃圾回收操作的优先级等情况例如可以帮助响应统计模块113中再次申请访问权限的访问请求及时进行访问。因此,gc条件监测模块114监测的事件不限于与垃圾回收操作相关的事件,还可以是其他事件。
43.gc事务计算模块115,与控制模块111和gc条件检测模块114连接,用于获取垃圾回收操作的状况信息以及负责对垃圾回收操作进行总体计算。获取垃圾回收操作的状况信息包括垃圾回收的优先级和垃圾回收的负载。在该实施例中,例如综和考虑垃圾回收操作的优先级和垃圾回收操作的负载比率,重新分配主机或其他单元访问固态硬盘时写操作与垃圾回收操作的优先级和负载比率。可以平衡垃圾回收和写操作,以便在空闲时及时进行垃圾回收,同时满足写操作的应急需求。
44.在该实施例中,启动垃圾回收操作的预设条件例如包括:读操作负载和写操作负载轻,存储阵列120中的未使用的存储空间少(可用空闲块少),磨损均衡,读干扰超标等;中止垃圾回收操作的预设条件例如包括:可用空闲块多,读操作负载和写操作负载正常,访问请求的响应超时等。
45.进一步地,不同原因导致的垃圾回收操作以及不同状态下的垃圾回收操作的优先级不同,有些是需要快速响应的,例如读干扰超标等,有些仅仅需要正常响应;同一原因导致的垃圾回收操作在不同的时间其优先级也会有所变化。例如,可用空闲块少导致的垃圾回收操作比读操作负载和写操作负载轻导致的垃圾回收操作优先级高,而可用空闲块少导致的垃圾回收操作在一段时间后随着可用空闲块的增多,其优先级会降低,从而可以更好的分配写操作和垃圾回收操作的比率,或者调整访问请求的访问权限,实现固态硬盘的高性能。
46.图2a示出了根据本发明实施例的固态硬盘的介质访问管理方法的一部分流程图。参考图2a,本发明实施例的固态硬盘的介质访问管理方法包括以下步骤。
47.步骤s101:申请访问权限并进入访问队列。
48.在该步骤中,任何想向固态硬盘100进行操作的主机或其他单元都需要先向固态硬盘100申请访问权限,只有在获得访问权限后,才能对固态硬盘进行操作。访问请求在申请访问权限之后,进入访问队列等待获得访问权限。
49.在该实施例中,将需要向固态硬盘100进行操作的访问请求进行分类,将每一种需求设定为一个访问请求,并赋予优先级。进入访问队列的多个访问请求按照优先级获得访问权限。
50.步骤s102:访问请求被执行时,获取访问请求的属性。
51.在该步骤中,例如为多个访问请求同时申请访问权限,则对多个访问请求的优先级进行判断,优先级高的访问请求首先获得访问权限,从访问队列中取出被执行。优先级低的访问请求需要先进行等待,直到获得访问权限才能被执行。若只有一个访问请求申请访问权限,则可以直接获得访问权限,对固态硬盘进行访问。
52.在执行时,需要获取访问请求的属性,其中,访问请求的属性至少包括操作类型,
操作类型包括读操作和写操作。
53.在固态硬盘100中,包括控制器110和存储阵列120,控制器110 中的控制模块111用于判断访问请求的优先级,并根据访问请求的优先级对多个访问请求进行优先级的排列。
54.步骤s103:根据访问请求的属性获取固态硬盘的读操作负载和写操作负载。
55.在该步骤中,访问请求获得访问权限对固态硬盘100进行访问,该访问请求例如为读操作和写操作,此时,固态硬盘的负载被占用,统计读操作和写操作在一个统计周期内负载大小。当读操作在一个统计周期内的负载大小低于第一设定值,并且持续n(n为大于1的自然数)个周期时,认为固态硬盘的读操作负载较轻,否则认为固态硬盘的读操作负载正常,统计清零;当写操作在一个统计周期内的负载大小低于第二设定值,并且持续m(m为大于1的自然数)个周期时,认为固态硬盘的写操作负载较轻,否则认为固态硬盘的写操作负载正常,统计清零。
56.步骤s104:根据固态硬盘的读操作负载、写操作负载启动垃圾回收操作,并获取固态硬盘的状况信息。
57.在该步骤中,例如当固态硬盘的读操作负载、写操作负载满足第一预设条件时启动垃圾回收操作,第一预设条件例如为读操作负载较轻和写操作负载较轻,当读操作和写操作都在若干个统计周期内统计的负载大小低于设定值,则表明固态硬盘的读操作负载和写操作负载都满足第一预设条件,此时能够进行一些其他操作以提高负载,使固态硬盘大部分时间都能够保持在一个较高的性能。其中,垃圾回收操作不会影响到主机的读操作和写操作,同时能够使固态硬盘获取到新的可使用空间,便于后续的写操作。此外,垃圾回收操作在大部分时间都可以做到随时中止,因而选择在固态硬盘的读操作负载和写操作负载较轻时进行垃圾回收操作,对其他访问请求的访问权限的申请影响不大。
58.进一步地,获取固态硬盘的状况信息包括获取固态硬盘的存储阵列未使用的存储空间大小、所述固态硬盘的读干扰,以及所述固态硬盘的磨损情况等。获取固态硬盘的状况信息还可以包括垃圾回收操作的其他触发事件、垃圾回收操作的中止事件、垃圾回收操作的优先级等。
59.在该实施例中,启动垃圾回收操作的的条件包括:固态硬盘的读操作负载和写操作负载低于第一预设条件、固态硬盘可用空闲块少、磨损均衡、读干扰超标等;中止垃圾回收操作的条件例如包括:可用空闲块多,读操作负载和写操作负载正常,访问请求的响应超时等。本技术中以固态硬盘的读操作负载和写操作负载低于第一预设条件为例进行实施例的描述,但是并不限于此,本领域的技术人员容易想到根据固态硬盘的其他垃圾回收操作的启动条件为例的实施例。
60.此外,在启动垃圾回收操作之后,还需要实时监测和计算固态硬盘中的垃圾回收操作的状况信息,垃圾回收操作的状况信息至少包括垃圾回收操作的优先级以及负载大小。
61.步骤s105:根据固态硬盘的状况信息调节写操作和垃圾回收操作之间的优先级。
62.根据固态硬盘的状况信息,分配固态硬盘中写操作与垃圾回收操作之间的优先级,使得固态硬盘的的效率处于高性能状态。
63.在该实施例中,当固态硬盘的存储阵列未使用的存储空间大小、读干扰以及磨损
情况中的至少一项满足第二预设条件时提高垃圾回收操作的优先级;在固态硬盘的存储阵列未使用的存储空间大小、读干扰以及磨损情况中的至少一项满足第三预设条件时降低垃圾回收操作的优先级。
64.在该实施例中,第二预设条件例如为固态硬盘的可用空闲块低于第四预定值,或读干扰超过第五预定值,或磨损情况超过第六预定值,此时需要提高垃圾回收操作的优先级,进而提高垃圾回收的负载比率,获得较多的可用空闲块;第三预设条件例如为固态硬盘的可用空闲块高于第七预定值,或读干扰低于第八预定值,或磨损情况低于第九预定值,此时可以通过降低垃圾回收的优先级来降低垃圾回收的比率,提高写操作的比率。
65.图2b示出了根据本发明实施例的固态硬盘的介质访问管理方法的另一部分流程图。图2b所示的流程图为等待获取申请权限的流程图。参考图2b,该流程包括以下步骤。
66.步骤s101:申请访问权限并进入访问队列。
67.主机或其他单元要对固态硬盘进行访问时,需要向固态硬盘申请访问权限,只有获得访问权限以后,才能对固态硬盘进行访问。访问请求在申请访问权限之后,进入访问队列等待获得访问权限。
68.步骤s111:统计从进入访问队列到获得访问权限的响应时间。
69.多个访问请求同时申请访问权限,优先级较低的访问请求就不能立即获得访问权限,只有在优先级高的访问请求访问结束之后,才能到优先级低的访问请求进行访问。从主机或其他单元的访问请求申请访问权限或进入访问队列,而固态硬盘的控制模块111没有给出访问权限时开始计时,记录访问请求从申请访问权限到获得访问权限的时间,该时间记为响应时间。
70.步骤s112:响应时间达到第三设定值时再次申请访问权限。
71.响应时间持续增加,响应统计模块113判断该响应时间是否满足设定条件,若满足设定条件,则执行步骤s114。在该实施例中,设定条件例如为第三设定值,当响应时间达到第三设定值,则认为响应超时,需要通知控制模块111进行处理。
72.由于访问请求的响应超时,需要再次申请访问权限,此时,可以通过提高访问请求的优先级、或降低垃圾回收操作的优先级、或降低垃圾回收操作的比率,以确保再次申请访问权限后在响应时间超过第三设定值之前获得访问权限。
73.步骤s113:执行相应的访问请求。
74.对于再次申请访问权限的访问请求,优先级有所提高,同时也会优先处理,这可以解决大部分情况下的访问请求响应超时问题,满足相应写操作的应急需求。但还存在其他问题,例如正在访问的事件其优先级大于再次申请访问权限的访问请求,此时就可以通过监测和计算到的固态硬盘的状况信息对访问请求进行处理,例如在固态硬盘的可用空闲块较多的情况下减少或中止垃圾回收操作,用于该访问请求的访问,从而保证该访问请求能够及时获得访问权限。
75.本发明提供的固态硬盘的介质访问管理方法及固态硬盘中,控制模块将固态硬盘的访问请求进行分类,并对每一种需求设定为一个事件,赋予优先级,当多个事件同时请求时,控制模块按照事件的优先级对访问顺序进行控制,从而获得更好的i/o响应,并保持在较低的振荡区间。
76.本发明提供的固态硬盘的介质访问管理方法及固态硬盘中,负载统计模块统计固
态硬盘的读操作负载、写操作负载,并与第一预定条件进行比较,当判断固态硬盘负载较轻时,控制模块控制相应的模块执行垃圾回收的操作,从而使得固态硬盘的负载保持在正常值,因此使得固态硬盘可以有更多时间保持在较高的性能,从而提高了固态硬盘的效率。
77.本发明提供的固态硬盘的介质访问管理方法及固态硬盘中,响应统计模块统计访问请求进入访问队列到获得访问权限之间的响应时间,当该响应时间持续增加,达到第三设定值时,默认访问请求的响应超时,响应统计模块通知控制模块对该访问请求进行处理,从而提高了固态硬盘的访问请求的整体响应速度,同时也避免了由于固件原因导致的固态硬盘持续无法写入的问题。
78.本发明提供的固态硬盘的介质访问管理方法及固态硬盘中,gc条件检测模块以及gc事务计算模块需要对固态硬盘的状态信息进行监测以及对垃圾回收进行总体负载计算,并根据第二预设条件判断是否需要启动或中止垃圾回收的操作,或分配写操作与垃圾回收操作的负载比例,或调整垃圾回收操作与写操作之间的优先级,通过总体考虑垃圾回收的场景,保持固态硬盘数据的可靠性及使用寿命。
79.依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1