固态非易失存储设备中数据的管理方法以及管理装置

文档序号:1286908 发布日期:2020-08-28 浏览:24次 >En<

阅读说明:本技术 固态非易失存储设备中数据的管理方法以及管理装置 (Management method and management device for data in solid-state nonvolatile storage equipment ) 是由 向雄 于 2020-05-21 设计创作,主要内容包括:本申请提供了一种固态非易失存储设备中数据的管理方法以及管理装置,该方法包括:确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中,第一缓存单元为随机存储器;在目标子层表不在第一缓存单元中的情况下,控制将目标子层表存入第一缓存单元中;确定第一缓存单元中的目标子层表是否为编码压缩格式;在确定目标子层表为非编码压缩格式的情况下,控制至少对目标子层表进行压缩。该方法可以解决现有技术中难以在降低成本的同时保证固态非易失存储设备具有较好的存取性能的问题。(The application provides a management method and a management device for data in a solid-state nonvolatile storage device, wherein the method comprises the following steps: determining whether a target sublayer table in the L2P table is in a first cache unit in the solid-state nonvolatile storage device, wherein the first cache unit is a random access memory; under the condition that the target sublayer table is not in the first cache unit, controlling to store the target sublayer table in the first cache unit; determining whether a target sub-layer table in a first cache unit is in a coding compression format; and controlling to compress at least the target sub-layer table in the case that the target sub-layer table is determined to be in the non-coding compression format. The method can solve the problem that the solid-state nonvolatile storage device is difficult to ensure to have better access performance while the cost is reduced in the prior art.)

固态非易失存储设备中数据的管理方法以及管理装置

技术领域

本申请涉及数据存储领域,具体而言,涉及一种固态非易失存储设备中数据的管理方法、管理装置、存储介质、处理器和固态非易失存储设备。

背景技术

固态硬盘(Solid-State Drive,简称SSD)等固态非易失存储设备广泛使用闪存作为基础存储。由于OS的文件系统是基于逻辑地址的访问,而NAND Flash是基于虚拟地址的管理。因此,SSD的固件(Firmware,简称FW)需要维护一张从逻辑地址到虚拟地址的映射表。这张表需要占用不小的容量,例如1TB容量的SSD需要1GB的逻辑地址到虚拟地址(Logical-to-Physical,简称L2P)表。而且为了提高SSD的每秒IO次数(IO per Second,简称IOPS),L2P表一般需要放在高速RAM中。随机存储器、内存或缓存(Random Access Memory,简称RAM)资源是有限的,而且单位成本也很高。

为了缩减RAM开销,一般将L2P表进行分层处理。比如分2层:父层表与子层表;父层表常驻RAM,父层存储子层各个单元的信息;子层表单元依据是否被调用,动态调入/调出RAM。实践表明分2层基本可以解决RAM开销的问题,但是相应SSD等固态非易失存储设备的性能也会下降,具体原理为:Host(主机)发送命令经FW解析得到逻辑地址,如果该逻辑地址对应的L2P子层表刚好在RAM中,则FW可以直接使用,该情形称为Hit。反之称为miss,FW需要从闪存中读取该子层表到RAM再使用。如果RAM是满的,在读取子层表之前,FW还需要把RAM中暂时用不到的其他子层表挑一些淘汰到闪存中去。闪存的性能要比RAM差很多,接近5000X的关系。如果一条指令出现hit,显然FW存取L2P的性能完全不受影响;而出现miss,存取L2P的性能就会慢上差不多5000倍。具体计算过程如下:

FW存取L2P的平均时间可以用下式计算:

Avg_Time=Racc_Time*Hit_Rate+Facc_Time*(1-Hit_Rate),

Avg_Time为平均获取时间(Average Access Unit Time),

Racc_Time为RAM数据获取时间(RAM Access Unit Time),

Facc_Time为NANDFLASH数据获取时间(Flash Access Unit Time),

Hit_Rate表示命中率,

例如Racc_Time=0.02μs,Facc_time=100μs,

对应的,如果Hit_Rate=0.90,Avg_Time=10.02μs;(Avg_Time≈10.02μs;)

如果Hit_Rate≈0.97,Avg_Time≈3.02μs。

在背景技术部分中公开的以上信息只是用来加强对本文所描述技术的背景技术的理解,因此,背景技术中可能包含某些信息,这些信息对于本领域技术人员来说并未形成在本国已知的现有技术。

发明内容

本申请的主要目的在于提供一种固态非易失存储设备中数据的管理方法、管理装置、存储介质、处理器和固态非易失存储设备,以解决现有技术中难以在降低成本的同时保证固态非易失存储设备具有较好的存取性能的问题。

根据本发明实施例的一个方面,提供了一种固态非易失存储设备中数据的管理方法,包括:确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中,所述第一缓存单元为随机存储器;在所述目标子层表不在所述第一缓存单元中的情况下,控制将所述目标子层表存入所述第一缓存单元中;确定所述第一缓存单元中的所述目标子层表是否为编码压缩格式;在确定所述目标子层表为非编码压缩格式的情况下,控制至少对所述目标子层表进行压缩。

可选地,在将所述目标子层表存入所述第一缓存单元中之前,所述方法还包括:控制采用游程编码的方式对包括所述目标子层表在内的多个所述子层表进行压缩,得到压缩单元和/或非编码压缩格式的所述子层表,所述压缩单元中包括多个所述编码压缩格式的所述子层表,未存在于所述压缩单元中的所述子层表为所述非编码压缩格式的所述子层表。

可选地,控制采用游程编码的方式对包括所述目标子层表在内的多个所述子层表进行压缩,得到压缩单元和/或非编码压缩格式的所述子层表,包括:确定多个所述子层表中的数据的虚拟地址或逻辑地址是否依次连续;在所述虚拟地址或所述逻辑地址依次连续的情况下,对多个所述子层表进行编码压缩,得到所述压缩单元。

可选地,在确定所述子层表为非编码压缩格式的情况下,至少控制对所述目标子层表进行压缩,包括:在确定所述子层表为非编码压缩格式中的情况下,控制对包括所述目标子层表的多个所述子层表进行一次压缩,并输出一次压缩子层表;在压缩命令的控制下,控制对所述一次压缩子层表进行二次压缩;确定所述二次压缩后的所述一次压缩子层表的容量是否大于第一阈值,所述第一阈值为所述一次压缩子层表的容量;在所述二次压缩后的所述子层表的容量大于所述第一阈值的情况下,控制输出所述一次压缩子层表;在所述二次压缩后的所述子层表的容量小于或者等于所述第一阈值的情况下,控制输出所述二次压缩子层表,所述二次压缩子层表为所述二次压缩后的所述一次压缩子层表。

可选地,在确定所述目标子层表为非编码压缩格式的情况下,所述方法还包括:控制对包括所述目标子层表的多个所述子层表进行压缩,得到压缩子层表;确定所述压缩子层表的容量是否大于第二阈值,所述第二阈值为包括所述目标子层表的多个所述子层表的容量;在所述压缩子层表的容量大于所述第二阈值的情况下,控制对所述压缩子层解压缩;在所述压缩子层表的容量小于或者等于所述第二阈值的情况下,控制输出所述压缩子层表。

可选地,所述方法还包括:接收写命令;确定所述写命令对应的所述子层表是否为压缩格式;在所述子层表为所述压缩格式的情况下,控制将所述写命令存储至所述固态非易失存储设备的第二缓存单元中;在所述第二缓存单元中的所有的所述写命令的所占容量之和大于预定容量的情况下,控制对各所述写命令对应的所述压缩格式的所述子层表进行解压缩;控制按照所述写命令修改对应的解压缩后的各所述子层表中的数据。

可选地,所述预定容量等于所述第二缓存单元的最大存储容量。

可选地,所述方法还包括:在所述子层表不为所述压缩格式的情况下,控制根据所述写命令对对应的所述子层表的数据进行修改。

根据本发明实施例的另一方面,还提供了一种固态非易失存储设备中数据的管理装置,包括:第一确定单元,用于确定L2P表中的目标子层表是否在第一缓存单元中,所述第一缓存单元为随机存储器;第一控制单元,用于在所述目标子层表不在所述第一缓存单元中的情况下,将所述目标子层表存入所述第一缓存单元中;第二确定单元,用于确定所述第一缓存单元中的所述目标子层表是否为编码压缩格式;第二控制单元,用于在确定所述目标子层表为非编码压缩格式的情况下,控制至少对所述目标子层表进行压缩。

根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行任意一种所述的管理方法。

根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的管理方法。

根据本发明实施例的另一方面,还提供了一种固态非易失存储设备,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的管理方法。

可选地,所述固态非易失存储设备包括固态硬盘,通用闪存设备、嵌入式的多媒体存储卡以及U盘中的至少一种。

在本发明实施例中,上述的方法中,首先,确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中;在上述目标子层表不在上述第一缓存单元中的情况下,控制将上述目标子层表存入上述第一缓存单元中;确定上述第一缓存单元中的上述目标子层表是否为编码压缩格式,该步骤中的目标子层表可以为确定不在上述第一缓存单元后存入的,也可以为本身就在第一缓存单元中的;在确定上述目标子层表为非编码压缩格式的情况下,控制至少对上述目标子层表进行压缩。该方法中,保证在第一缓存单元中的目标子层表处于被压缩的状态,这样,使得第一缓存单元在同样的缓存容量下,可以同时缓存更多的子层表,从而可以显著提升命中率,进而达到提升固态非易失存储设备系统的存取性能的目的。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了根据本申请的固态非易失存储设备的管理方法的实施例的流程示意图;

图2示出了根据本申请的固态非易失存储设备的管理装置的实施例的结构框图;以及

图3示出了根据本申请的固态非易失存储设备的结构框图。

其中,上述附图包括以下附图标记:

50、请求输入接口;60、固件操作接口;70、结果返回接口;80、读写接口;90、压缩/解压缩单元;100、缓存管理模块;110、管理装置;200、固态非易失存储设备。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。

正如背景技术中所说的,现有技术中通过将L2P表分为两层,其中一层常驻RAM,另一层动态调入或者调出RAM,这种方式虽然能够解决RAM开销的问题,但是,相应固态非易失存储设备的性能较差,为了解决上述问题,本申请的一种典型的实施方式中,提供了一种固态非易失存储设备中数据的管理方法、管理装置、存储介质、处理器和固态非易失存储设备。

根据本申请的实施例,提供了一种固态非易失存储设备中数据的管理方法。

图1是根据本申请实施例的固态非易失存储设备中数据的管理方法的流程图。如图1所示,该方法包括以下步骤:

步骤S101,确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中,上述第一缓存单元为随机存储器;

步骤S102,在上述目标子层表不在上述第一缓存单元中的情况下,控制将上述目标子层表存入上述第一缓存单元中;

步骤S103,确定上述第一缓存单元中的上述目标子层表是否为编码压缩格式;

步骤S104,在确定上述目标子层表为非编码压缩格式的情况下,控制至少对上述目标子层表进行压缩。

上述的方法中,首先,确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中;在上述目标子层表不在上述第一缓存单元中的情况下,控制将上述目标子层表存入上述第一缓存单元中;确定上述第一缓存单元中的上述目标子层表是否为编码压缩格式,该步骤中的目标子层表可以为确定不在上述第一缓存单元后存入的,也可以为本身就在第一缓存单元中的;在确定上述目标子层表为非编码压缩格式的情况下,控制至少对上述目标子层表进行压缩。该方法中,保证在第一缓存单元中的目标子层表处于被压缩的状态,这样,使得第一缓存单元在同样的缓存容量下,可以同时缓存更多的子层表,从而可以显著提升命中率,进而达到提升固态非易失存储设备系统的存取性能的目的。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

还需要说明的是,同时存在压缩编码格式和非压缩编码格式的子层表。格式信息由父层表维护。

实际的应用过程中,有些子层表的数据可以获得很高的压缩比,而有些子层表的数据压缩后反而会占用更大的存储空间。为了将子层表进行合理的压缩,即使得压缩后的子层表所占的容量小于压缩前的子层表的容量,从而进一步保证第一缓存单元可以缓存更多的子层表,本申请的一种实施例中,在将上述目标子层表存入上述第一缓存单元中之前,上述方法还包括:控制采用游程编码的方式对包括上述目标子层表在内的多个上述子层表进行压缩,得到压缩单元和/或非编码压缩格式的上述子层表,上述压缩单元中包括多个上述编码压缩格式的上述子层表,未存在于上述压缩单元中的上述子层表为上述非编码压缩格式的上述子层表。

具体的一种实施例中,控制采用游程编码的方式对包括上述目标子层表在内的多个上述子层表进行压缩,得到压缩单元和/或非编码压缩格式的上述子层表,包括:确定多个上述子层表中的数据的虚拟地址或逻辑地址是否依次连续;在上述虚拟地址或上述逻辑地址连续的情况下,对多个上述子层表进行编码压缩,得到上述压缩单元。这样可以进一步保证压缩后的多个子层表所占的容量小于压缩前所占的容量,从而进一步保证了第一缓存单元可以缓存更多的子层表,从而可以提升命中率,进而提升固态非易失存储设备系统性能。例如,在四个32bit的子层表的逻辑地址和虚拟地址依次连续的情况,例如,sector为512,那么4个连续的地址就是依次递增512,如果sector为4096,那么4个连续地址就是依次递增4096,将四个子层表压缩形成一个压缩单元,该压缩单元所占的容量为64bit,很显然,形成的压缩单元所占的容量小于压缩前的四个子层表所占的容量和。

为了进一步保证第一缓存单元可以缓存更多的子层表,本申请的一种实施例中,在确定上述子层表为非编码压缩格式的情况下,至少控制对上述目标子层表进行压缩,包括:在确定上述子层表为非编码压缩格式中的情况下,控制对包括上述目标子层表的多个上述子层表进行一次压缩,并输出一次压缩子层表;在压缩命令的控制下,控制对上述一次压缩子层表进行二次压缩;确定上述二次压缩后的上述一次压缩子层表的容量是否大于第一阈值,上述第一阈值为上述一次压缩子层表的容量;在上述二次压缩后的上述子层表的容量大于上述第一阈值的情况下,控制输出上述一次压缩子层表;在上述二次压缩后的上述子层表的容量小于或者等于上述第一阈值的情况下,控制输出上述二次压缩子层表,上述二次压缩子层表为上述二次压缩后的上述一次压缩子层表。

当然,并不是只有在目标子层表为非编码压缩格式的情况下,才可以对目标子层表进行压缩,本申请的另一种实施例中,在确定上述目标子层表为非编码压缩格式的情况下,上述方法还包括:控制对包括上述目标子层表的多个上述子层表进行压缩,得到压缩子层表;确定上述压缩子层表的容量是否大于第二阈值,上述第二阈值为包括上述目标子层表的多个上述子层表的容量;在上述压缩子层表的容量大于上述第二阈值的情况下,控制对上述压缩子层解压缩;在上述压缩子层表的容量小于或者等于上述第二阈值的情况下,控制输出上述压缩子层表。该方法可以进一步对目标子层表进行压缩,从而可以进一步增加第一缓存单元中的子层表的存储数量,从而进一步提升命中率。

需要说明的是,本申请中的目标子层表可以为一个或者多个,本领域技术人员可以根据实际情况选择一个或者多个子层表作为目标子层表。

当接收到写命令时,L2P表中的数据需要做修改。对于非压缩格式的子层表,定位后直接修改就可以,但是对于压缩格式的子层表,无法直接进行修改,需要先进行解压缩操作。解压缩操作不但耗时,而且会导致第一缓存单元中的子层表的数量增加,占用更多空间。为了提高进一步提升命中率,本申请的一种具体的实施例中,上述方法还包括:接收写命令;确定上述写命令对应的上述子层表是否为压缩格式,需要说明的是,这里的压缩格式并不限于上述提及的编码压缩格式,还包括其他的任何的压缩格式;在上述子层表为上述压缩格式的情况下,控制将上述写命令存储至上述固态非易失存储设备的第二缓存单元中;在上述第二缓存单元中的所有的上述写命令的所占容量之和大于预定容量的情况下,控制对各上述写命令对应的上述压缩格式的上述子层表进行解压缩;控制按照上述写命令修改对应的解压缩后的各上述子层表中的数据。

上述的预定容量可以为小于或者等于第二缓存单元的容量的任何数值,在实际的应用中,本领域技术人员可以根据实际情况选择合适的数值作为预定容量。一种具体的实施例中,上述预定容量等于上述第二缓存单元的最大存储容量,这样可以进一步保证第一缓存单元可以在更长的时间内存储更多的子层表,从而进一步提升命中率。

在实际的应用过程中,当然,还存在子层表不为压缩格式的情况,在这种情况下,上述方法还包括:可以控制根据上述写命令对对应的上述子层表的数据进行修改。

在实际的应用过程中,上述方法还包括:接收到(可以为主机发出的)读命令;确定上述第一缓存单元的片内部分中是否存在对应的子层表,存在,则命中,并且返回对应的虚拟地址,若不存在,在确定述第一缓存单元的片上部分中是否存在对应的子层表,存在,则命中,并且返回对应的虚拟地址,若不存在,则返回失败信息。

本申请实施例还提供了一种固态非易失存储设备中数据的管理装置,需要说明的是,本申请实施例的固态非易失存储设备中数据的管理装置可以用于执行本申请实施例所提供的用于固态非易失存储设备中数据的管理方法。以下对本申请实施例提供的固态非易失存储设备中数据的管理装置进行介绍。

图2是根据本申请实施例的固态非易失存储设备中数据的管理装置的示意图。如图2所示,该装置包括:

第一确定单元10,用于确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中,上述第一缓存单元为随机存储器;

第一控制单元20,用于在上述目标子层表不在上述第一缓存单元中的情况下,控制将上述目标子层表存入上述第一缓存单元中;

第二确定单元30,用于确定上述第一缓存单元中的上述目标子层表是否为编码压缩格式;

第二控制单元40,用于在确定上述目标子层表为非编码压缩格式的情况下,控制至少对上述目标子层表进行压缩。

上述的装置中,第一确定单元确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中;第一控制单元在上述目标子层表不在上述第一缓存单元中的情况下,控制将上述目标子层表存入上述第一缓存单元中;第二确定单元确定上述第一缓存单元中的上述目标子层表是否为编码压缩格式,该单元中确定中的目标子层表可以为确定不在上述第一缓存单元后存入的,也可以为本身就在第一缓存单元中的;第二控制单元在确定上述目标子层表为非编码压缩格式的情况下,控制至少对上述目标子层表进行压缩。该装置中,保证在第一缓存单元中的目标子层表处于被压缩的状态,这样,使得第一缓存单元在同样的缓存容量下,可以同时缓存更多的子层表,从而可以显著提升命中率,进而达到提升固态非易失存储设备系统的存取性能的目的。

实际的应用过程中,有些子层表的数据可以获得很高的压缩比,而有些子层表的数据压缩后反而会占用更大的存储空间。为了将子层表进行合理的压缩,即使得压缩后的子层表所占的容量小于压缩前的子层表的容量,从而进一步保证第一缓存单元可以缓存更多的子层表,本申请的一种实施例中,上述装置还包括第三控制单元,用于在将上述目标子层表存入上述第一缓存单元中之前,控制采用游程编码的方式对包括上述目标子层表在内的多个上述子层表进行压缩,得到压缩单元和/或非编码压缩格式的上述子层表,上述压缩单元中包括多个上述编码压缩格式的上述子层表,未存在于上述压缩单元中的上述子层表为上述非编码压缩格式的上述子层表。

具体的一种实施例中,第三控制单元还用于:确定多个上述子层表中的数据的虚拟地址或逻辑地址是否依次连续;在上述虚拟地址或上述逻辑地址连续的情况下,对多个上述子层表进行编码压缩,得到上述压缩单元。这样可以进一步保证压缩后的多个子层表所占的容量小于压缩前所占的容量,从而进一步保证了第一缓存单元可以缓存更多的子层表,从而可以提升命中率,进而提升固态非易失存储设备系统性能。例如,在四个32bit的子层表的逻辑地址和虚拟地址依次连续的情况,例如,sector为512,那么4个连续的地址就是依次递增512,如果sector为4096,那么4个连续地址就是依次递增4096,将四个子层表压缩形成一个压缩单元,该压缩单元所占的容量为64bit,很显然,形成的压缩单元所占的容量小于压缩前的四个子层表所占的容量和。

为了进一步保证第一缓存单元可以缓存更多的子层表,本申请的一种实施例中,第二控制单元还用于:在确定上述子层表为非编码压缩格式中的情况下,控制对包括上述目标子层表的多个上述子层表进行一次压缩,并输出一次压缩子层表;在压缩命令的控制下,控制对上述一次压缩子层表进行二次压缩;确定上述二次压缩后的上述一次压缩子层表的容量是否大于第一阈值,上述第一阈值为上述一次压缩子层表的容量;在上述二次压缩后的上述子层表的容量大于上述第一阈值的情况下,控制输出上述一次压缩子层表;在上述二次压缩后的上述子层表的容量小于或者等于上述第一阈值的情况下,控制输出上述二次压缩子层表,上述二次压缩子层表为上述二次压缩后的上述一次压缩子层表。

当然,并不是只有在目标子层表为非编码压缩格式的情况下,才可以对目标子层表进行压缩,本申请的另一种实施例中,第二控制单元还用于:控制对包括上述目标子层表的多个上述子层表进行压缩,得到压缩子层表;确定上述压缩子层表的容量是否大于第二阈值,上述第二阈值为包括上述目标子层表的多个上述子层表的容量;在上述压缩子层表的容量大于上述第二阈值的情况下,控制对上述压缩子层解压缩;在上述压缩子层表的容量小于或者等于上述第二阈值的情况下,控制输出上述压缩子层表。该装置可以进一步对目标子层表进行压缩,从而可以进一步增加第一缓存单元中的子层表的存储数量,从而进一步提升命中率。

需要说明的是,本申请中的目标子层表可以为一个或者多个,本领域技术人员可以根据实际情况选择一个或者多个子层表作为目标子层表。

当接收到写命令时,L2P表中的数据需要做修改。对于非压缩格式的子层表,定位后直接修改就可以,但是对于压缩格式的子层表,无法直接进行修改,需要先进行解压缩操作。解压缩操作不但耗时,而且会导致第一缓存单元中的子层表的数量增加,占用更多空间。为了提高进一步提升命中率,本申请的一种具体的实施例中,上述装置还包括接收单元、确定单元和第四控制单元,其中,接收单元用于接收写命令。确定单元用于确定上述写命令对应的上述子层表是否为压缩格式,需要说明的是,这里的压缩格式并不限于上述提及的编码压缩格式,还包括其他的任何的压缩格式。第四控制单元用于:在上述子层表为上述压缩格式的情况下,控制将上述写命令存储至上述固态非易失存储设备的第二缓存单元中;在上述第二缓存单元中的所有的上述写命令的所占容量之和大于预定容量的情况下,控制对各上述写命令对应的上述压缩格式的上述子层表进行解压缩;控制按照上述写命令修改对应的解压缩后的各上述子层表中的数据。

上述的预定容量可以为小于或者等于第二缓存单元的容量的任何数值,在实际的应用中,本领域技术人员可以根据实际情况选择合适的数值作为预定容量。一种具体的实施例中,上述预定容量等于上述第二缓存单元的最大存储容量,这样可以进一步保证第一缓存单元可以在更长的时间内存储更多的子层表,从而进一步提升命中率。

在实际的应用过程中,当然,还存在子层表不为压缩格式的情况,在这种情况下,上述装置还包括第五控制单元,用于在子层表不为压缩格式的情况,控制根据上述写命令对对应的上述子层表的数据进行修改。

在实际的应用过程中,上述装置还用于执行:接收到(可以为主机发出的)读命令;确定上述第一缓存单元的片内部分中是否存在对应的子层表,存在,则命中,并且返回对应的虚拟地址,若不存在,在确定述第一缓存单元的片上部分中是否存在对应的子层表,存在,则命中,并且返回对应的虚拟地址,若不存在,则返回失败信息。

上述固态非易失存储设备中数据的管理装置包括处理器和存储器,上述第一确定单元、第二确定单元、第一控制单元以及第二控制单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来保证RAM开销较小的情况下,同时保证固态非易失存储设备具有较好的存取性能的问。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述固态非易失存储设备中数据的管理方法。

本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述固态非易失存储设备中数据的管理方法。

本发明实施例提供了一种固态非易失存储设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:

步骤S101,确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中,上述第一缓存单元为随机存储器;

步骤S102,在上述目标子层表不在上述第一缓存单元中的情况下,控制将上述目标子层表存入上述第一缓存单元中;

步骤S103,确定上述第一缓存单元中的上述目标子层表是否为编码压缩格式;

步骤S104,在确定上述目标子层表为非编码压缩格式的情况下,控制至少对上述目标子层表进行压缩。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:

步骤S101,确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中,上述第一缓存单元为随机存储器;

步骤S102,在上述目标子层表不在上述第一缓存单元中的情况下,控制将上述目标子层表存入上述第一缓存单元中;

步骤S103,确定上述第一缓存单元中的上述目标子层表是否为编码压缩格式;

步骤S104,在确定上述目标子层表为非编码压缩格式的情况下,控制至少对上述目标子层表进行压缩。

在实际的应用中,如图3所示,固态非易失存储设备200还包括:请求输入接口50、固件操作接口60、结果返回接口70、读写接口80、压缩/解压缩单元90和缓存管理模块100(包括第一缓存单元和第二缓存单元),管理装置110可以与固件操作接口60进行通信,也可以与第一缓存单元、第二缓存单元进行通信,还可以与压缩/解压缩单元90进行通行,从而执行对应的步骤。

FW通过FW操作接口控制本模块的各种工作,例如启动初始化,启动对特定子层表的合并操作,监视硬件工作状态等。

大批量的LBA请求信息通过请求输入接口进入,读命令只有LBA(逻辑地址)信息,没有VBA(虚拟地址)信息。写命令包含LBA和VBA信息对。对读命令,主控逻辑通过搜索找到对应的VBA信息,填入结果返回接口;对写命令,(LBA,VBA)信息对先进入第二缓存单元暂存。

上述固态非易失存储设备包括固态硬盘,通用闪存设备(Universal FlashStorage,简称UFS)、嵌入式的多媒体存储卡(embedded Multi Media Card,简称eMMC)以及U盘中的至少一种。

当然,实际的应用中,并不限于上述的具体存储设备,固态非易失存储设备还可以包括其他的对应设备。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:

1)、本申请的管理方法中,首先,确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中;在上述目标子层表不在上述第一缓存单元中的情况下,控制将上述目标子层表存入上述第一缓存单元中;确定上述第一缓存单元中的上述目标子层表是否为编码压缩格式,该步骤中的目标子层表可以为确定不在上述第一缓存单元后存入的,也可以为本身就在第一缓存单元中的;在确定上述目标子层表为非编码压缩格式的情况下,控制至少对上述目标子层表进行压缩。该方法中,保证在第一缓存单元中的目标子层表处于被压缩的状态,这样,使得第一缓存单元在同样的缓存容量下,可以同时缓存更多的子层表,从而可以显著提升命中率,进而达到提升固态非易失存储设备系统的存取性能的目的。

2)、本申请的管理装置中,第一确定单元确定L2P表中的目标子层表是否在固态非易失存储设备中的第一缓存单元中;第一控制单元在上述目标子层表不在上述第一缓存单元中的情况下,控制将上述目标子层表存入上述第一缓存单元中;第二确定单元确定上述第一缓存单元中的上述目标子层表是否为编码压缩格式,该单元中确定中的目标子层表可以为确定不在上述第一缓存单元后存入的,也可以为本身就在第一缓存单元中的;第二控制单元在确定上述目标子层表为非编码压缩格式的情况下,控制至少对上述目标子层表进行压缩。该装置中,保证在第一缓存单元中的目标子层表处于被压缩的状态,这样,使得第一缓存单元在同样的缓存容量下,可以同时缓存更多的子层表,从而可以显著提升命中率,进而达到提升固态非易失存储设备系统的存取性能的目的。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:缓存管理方法、装置、存储介质和固态非易失存储设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类