闪存设备的空间管理方法、存储控制芯片及闪存设备与流程
未命名
07-15
阅读:113
评论:0
1.本技术涉及存储设备应用领域,特别是涉及一种闪存设备的空间管理方法、存储控制芯片及闪存设备。
背景技术:
2.闪存设备,例如:固态硬盘(solid state drives,ssd),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(flash存储芯片或 dram存储芯片)。
3.闪存(nand flash)是固态硬盘的主要存储介质。在向存有数据的闪存块写入数据时,必须先擦除再写入,因此,闪存在设计上会保留一部分空间作为预留空间,预留空间用于错误校验、坏块替换、磨损均衡和垃圾回收等。预留空间可以分为本征预留空间和标称预留空间。
4.目前,闪存设备通过压缩用户数据减少用户数据实际占据的闪存空间,现有技术通常对压缩带来的可用空间和原有的预留空间即本征预留空间和标称预留空间,采用相同的管理方法,并通过压缩率进行管理。然而压缩率不能完全体现存储需要的空间变化情况,压缩数据带来的可用空间仍然具有不确定性,对压缩带来的可用空间和原有的预留空间采用相同的管理方法,会导致闪存设备的性能下降。
技术实现要素:
5.本技术实施例提供一种闪存设备的空间管理方法、存储控制芯片及闪存设备,以对压缩带来的可用空间进行独立管理,准确确定压缩带来的可用空间的大小,从而减少出现闪存设备性能下降的情况。
6.本技术实施例提供以下技术方案:第一方面,本技术实施例提供一种闪存设备的空间管理方法,包括:将闪存可用物理空间划分为用户空间和典型预留空间,将用户空间划分为数据空间和可变预留空间,其中,数据空间用于存储用户数据,可变预留空间为由于数据被压缩而额外可使用的用户空间;根据数据压缩率和压缩存储率,确定可变预留空间的大小。
7.在一些实施例中,数据压缩率为压缩数据的大小与原始用户数据的大小之比,压缩存储率为压缩数据的大小与压缩数据所占数据空间的大小之比;根据数据压缩率和压缩存储率,确定可变预留空间的大小,包括:根据数据压缩率和压缩存储率,确定空间变量;根据空间变量,确定可变预留空间的大小,其中,可变预留空间的大小=空间变量*用户空间的大小。
8.在一些实施例中,根据数据压缩率和压缩存储率,确定空间变量,包括:获取用户数据;
压缩每一用户数据,并将压缩后的用户数据存储至数据空间;计算每一用户数据对应的数据压缩率和压缩存储率;对若干个数据压缩率取平均值,得到数据平均压缩率,并对若干个压缩存储率取平均值,得到压缩平均存储率;根据数据平均压缩率和压缩平均存储率,计算得到空间变量。
9.在一些实施例中,对若干个数据压缩率取平均值,得到数据平均压缩率,并对若干个压缩存储率取平均值,得到压缩平均存储率,包括:对第一预设周期内的若干个数据压缩率取平均值,得到历史数据平均压缩率,并对第一预设周期内的若干个压缩存储率取平均值,得到历史压缩平均存储率;对第二预设周期内的若干个数据压缩率取平均值,得到第一数据平均压缩率,并对第二预设周期内的若干个压缩存储率取平均值,得到第一压缩平均存储率,其中,第二预设周期与第一预设周期不同。
10.在一些实施例中,根据数据平均压缩率和压缩平均存储率,计算得到空间变量,包括:根据历史数据平均压缩率与历史压缩平均存储率,计算得到第一空间变量。
11.在一些实施例中,根据空间变量,确定可变预留空间的大小,包括:若第一数据平均压缩率与历史数据平均压缩率的差值大于第一阈值,或者,历史压缩平均存储率与第一压缩平均存储率的差值大于第二阈值,则通过预测算法分别对数据压缩率和压缩存储率的变化趋势进行预测,以得到趋势因子;根据趋势因子、第一空间变量与空间变量的变化值,计算得到可变预留空间的大小。
12.在一些实施例中,根据数据平均压缩率与压缩平均存储率,计算得到空间变量,包括:其中,表示空间变量,表示数据平均压缩率,表示压缩平均存储率。
13.第二方面,本技术实施例提供一种存储控制芯片,应用如第一方面的闪存设备的空间管理方法,存储控制芯片包括:数据压缩及数据通路单元,连接可变预留空间管理单元与映射管理单元,用于对用户数据进行压缩和存储;可变预留空间管理单元,连接数据纠错及数据存储单元、映射管理单元与数据纠错及数据存储单元,用于根据数据压缩率和压缩存储率确定可变预留空间的大小;映射管理单元,连接数据压缩及数据通路单元、可变预留空间管理单元与数据纠错及数据存储单元,用于进行地址映射管理、垃圾回收管理或磨损均衡管理;数据纠错及数据存储单元,连接可变预留空间管理单元与映射管理单元,用于对数据进行纠错编码和/或解码,以及写入或读取数据。
14.在一些实施例中,可变预留空间管理单元包括模块管理单元、数据压缩率管理单元、压缩存储率管理单元、数学计算单元与预测单元,其中,模块管理单元,连接数据压缩率管理单元、压缩存储率管理单元与预测单元,用于
根据数据平均压缩率、压缩平均存储率与趋势因子,计算得到可变预留空间的大小;数据压缩率管理单元,连接模块管理单元、预测单元与数学计算单元,用于对若干个数据压缩率进行管理,并统计数学计算单元计算得到的数据平均压缩率;预测单元,连接数据压缩率管理单元、模块管理单元、数学计算单元与所述压缩存储率管理单元,用于通过预测算法对数据压缩率和压缩存储率的变化趋势进行预测,以得到趋势因子;数学计算单元,连接数据压缩率管理单元、预测单元与压缩存储率管理单元,用于根据数据压缩率和压缩存储率,计算得到数据平均压缩率和压缩平均存储率;压缩存储率管理单元,连接模块管理单元、预测单元与数学计算单元,用于对若干个压缩存储率进行管理,并统计数学计算单元计算得到的压缩平均存储率。
15.第三方面,本技术实施例提供一种闪存设备,包括:如第二方面的存储控制芯片;至少一个闪存介质,与存储控制芯片通信连接。
16.第四方面,本技术实施例还提供了一种非易失性计算机可读存储介质,非易失性计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使闪存设备能够执行第一方面的闪存设备的空间管理方法。
17.本技术实施例的有益效果是:区别于现有技术的情况下,本技术实施例提供的一种闪存设备的空间管理方法,方法包括:将闪存可用物理空间划分为用户空间和典型预留空间,将用户空间划分为数据空间和可变预留空间,其中,数据空间用于存储用户数据,可变预留空间为由于数据被压缩而额外可使用的用户空间;根据数据压缩率和压缩存储率,确定可变预留空间的大小。通过将闪存可用物理空间划分为用户空间和典型预留空间,将用户空间划分为数据空间和可变预留空间,根据数据压缩率和压缩存储率确定可变预留空间的大小,本技术能够对压缩带来的可用空间进行独立管理,准确确定压缩带来的可用空间的大小,从而减少出现闪存设备性能下降的情况。
附图说明
18.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
19.图1是本技术实施例提供的一种闪存设备的结构示意图;图2是本技术实施例提供的一种闪存封装芯片的结构示意图;图3是本技术实施例提供的一种垃圾回收的示意图;图4是本技术实施例提供的一种对典型预留空间的管理示意图;图5是本技术实施例提供的一种闪存设备的空间管理方法的流程示意图;图6是本技术实施例提供的一种闪存可用物理空间的示意图;图7是本技术实施例提供的一种压缩数据存储管理策略的方法示意图;图8是图5中的步骤s502的细化流程示意图;图9是图8中的步骤s521的细化流程示意图;图10是本技术实施例提供的一种获取数据平均压缩率和压缩平均存储率的细化
流程示意图;图11是图8中的步骤s522的细化流程示意图;图12是本技术实施例提供的一种闪存设备的空间管理方法的总体流程示意图;图13是本技术实施例提供的一种存储控制芯片的结构示意图;图14是本技术实施例提供的一种可变预留空间管理单元的结构示意图。
具体实施方式
20.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
21.此外,下面所描述的本技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
22.下面结合说明书附图具体地阐述本技术的技术方案。
23.请参阅图1,图1是本技术实施例提供的一种闪存设备的结构示意图;如图1所示,闪存设备100包括连接器101、存储控制芯片102、其他外围单元103、缓存单元104和闪存介质105。
24.其中,连接器101,连接存储控制芯片102与主机,用于与主机通信,主机例如:计算机或者服务器;存储控制芯片102,连接连接器101、其他外围单元103、缓存单元104和闪存介质105,用于作为控制运算单元,管理闪存设备的内部系统,存储控制芯片102包括但不限于固态硬盘控制器;外围单元103,连接存储控制芯片102,包括串口、传感器、寄存器、电源芯片等部件;缓存单元104,连接存储控制芯片102,作为缓存、算法表存储单元,缓存单元104一般为动态随机存取存储器(dynamic random access memory,dram)。
25.其中,闪存介质105,作为闪存设备100的存储介质,也称作闪存、flash、flash存储器或flash颗粒,作为存储单元,用于存储用户数据、系统数据等。存储控制芯片102与闪存介质105之间呈现多个通道,一个通道独立连接一个闪存介质,例如:通道0连接一个闪存介质、通道1连接一个闪存介质、
……
、通道x连接一个闪存介质。其中,闪存介质105的特性是写入之前,必须进行擦除,且每个闪存擦除次数有限,一个闪存介质105包括至少一个闪存封装芯片(chip)。
26.请参阅图2,图2是本技术实施例提供的一种闪存封装芯片的结构示意图;如图2所示,一个闪存封装芯片(chip)由多个裸片(die)组成,例如:由裸片0,
……
,裸片n组成;每个裸片由多个分组(plane)组成,例如:由分组0,
……
,分组n组成;每个分组由多个块(block)组成,例如:由块0,
……
,块x,
……
,块n组成;每个块由多个字线(wordline)组成,例如:由字线0,
……
,字线x,
……
,字线n组成;每个字线由1~n个页(page,又称闪存页)组成。对于不同的闪存设备,例如:单层存储单元模式的闪存设备(single level cell flash,slc flash)、双层存储单元模式的闪存设备(multiple level cell flash,mlc flash)、三层存储单元模式的闪存设备(triple level cell flash,tlc flash)、四层存储单元模式的闪存设备(quad-level cell flash,qlc flash),组成一个字线的页的类型和数量也不同,图2中以tlc flash为例,tlc flash的一个字线由最低有效位
(least significant bit ,lsb)数据页、中央有效位(central significant bit ,csb)数据页和最高有效位(most significant bit ,msb)数据页组成。其中,n、x、n均为正整数,0《x《n。
27.其中,块是擦除的基本单位,页或者字线是读写的基本单位。当一个存储页或者字线被写入数据后,只有在进行了块擦除后才可进行新的写入操作。可以理解的是,在一些老类型的闪存设备中,闪存封装芯片内无字线,块由多个页组成。
28.因此,当主机重复向闪存写入同一个地址数据时,会先将数据写到一个新的位置上,即需要一个预留的空间来挪移数据,所以闪存在设计上会保留一部分空间作为预留空间,预留空间对主机(用户)不可见,预留空间用于错误校验、坏块替换、磨损均衡和垃圾回收等。
29.请参阅图3,图3是本技术实施例提供的一种垃圾回收的示意图;预留空间主要用于垃圾回收,垃圾回收是指将某个闪存块上的有效数据读取、重写后,擦除该闪存块擦除,得到新的可用闪存块的过程。
30.如图3所示,主机数据更新后使得原来在闪存的部分数据成为无效数据,如:闪存块a和闪存块b均具有部分有效数据和无效数据,有效数据分散而占据两个块,需要将有效数据整理搬移后集中到一个新的块,即闪存块c,从而释放闪存块a和闪存块b中无效数据占用的空间。
31.这种搬移有效数据的操作会导致闪存设备往闪存中写入的数据量比实际用户写入闪存设备的数据量多,带来写放大。而在闪存中设计预留空间,可以减小写放大,从而提高闪存设备的寿命。
32.目前,预留空间可以分为本征预留空间和标称预留空间。其中,本征预留空间是由于标称容量与nand闪存计算差异造成的预留空间。闪存设备的标称容量是按照千进制(1000)来计算的,但是闪存容量是按照1024计算的,计算方式如下:标称容量:1gb(gigabyte)=1000mb=1000*1000kb= 1000*1000*1000byte =byte(1,000,000,000byte);闪存容量:1gb(gibibyte)=1024mb=1024*1024kb =1024*1024*1024byte =byte (1,073,741,824byte)。
33.可以看出,两个计算方式之间正好相差7.37%,即本征预留空间为7.37%。
34.标称预留空间是闪存设备由于性能要求而预留的空间,标称预留空间主要用于垃圾回收、存储闪存设备主控的固件等。为了追踪可靠性和保证闪存设备性能等原因,通常闪存设备会在设计上减少标称预留空间。
35.例如:当闪存容量是1024gb的情况下,消费级闪存设备的标称容量是1000gb(1tb),企业级闪存设备的标称容量是960gb。在消费级闪存设备和企业级闪存设备中,都有24gb的预留空间,即本征预留空间,而企业级闪存设备中,多预留的40gb的预留空间,即标称预留空间。
36.目前,闪存设备通过压缩用户数据减少用户数据实际占据的闪存空间,例如:用户数据是10mb,用户数据被闪存设备压缩处理之后,用户数据大小变为5mb,那么实际存储在闪存的用户数据小于10mb,实际存储在闪存的用户数据的大小与压缩前的用户数据的大小
的差值,就是压缩带来的可用空间的大小。
37.现有技术通常对压缩带来的可用空间和原有的预留空间即本征预留空间和标称预留空间,采用相同的管理方法,并通过压缩率进行管理。
38.请参阅图4,图4是本技术实施例提供的一种对典型预留空间的管理示意图;在本技术实施例中,为便于区分,将本征预留空间和标称预留空间统称为典型预留空间,闪存可用物理空间包括典型预留空间与用户空间。
39.如图4所示,当对闪存设备的性能稳定性不做要求时,算法通常会使用整个典型预留空间(主要是垃圾回收时使用),但是设置了调节水线(或者叫阈值,报警线等)。当坏块增加,整个典型预留空间相应减少到预设的调节水线时,算法会做相应处理,比如报警,拒绝主机写入等。
40.当对闪存设备的性能稳定性有要求时,固件管理会把整个典型预留空间划分为两个区域(以调节水线为分界线),调节水线以下作为固定区域给算法使用,调节水线以上保留不使用。当坏块增加时,把调节水线以上的区域开放到固定区域,从而确保固定区域大小不变。
41.当预留空间小于调节水线时,通过调整典型预留空间和分配用户空间,从用户空间的区域调节部分空间到典型预留空间,但是此时牺牲了用户容量(即显示的硬盘容量变小)。
42.同时,由于压缩率仅仅表征数据压缩前后数据大小的变化,不能完全体现存储需要的空间变化情况,例如:压缩后的数据与原始数据的大小之比为1:2,原始数据为500gb,压缩后的数据为250gb,涉及到压缩数据存储管理策略,此时不能确定250gb的存储空间足够存储压缩后的数据。所以在压缩率确定的情况下,考虑到数据本身和压缩引擎的算法,以及压缩数据存储管理策略,压缩数据带来的可用空间仍然具有不确定性。
43.所以,对压缩带来的可用空间和原有的预留空间(即典型预留空间)即本征预留空间和标称预留空间,采用相同的管理方法,并通过压缩率进行管理,会导致闪存设备出现性能问题,例如:过分使用预留空间而延缓垃圾回收操作,当压缩率变大,对实际存储空间的需求变大时,需要短时间内做大量垃圾回收来腾出存储空间,这些回收操作会占据内部带宽,从而导致主机数据性能有明显的波动下跌。
44.因此,本技术实施例提供一种闪存设备的空间管理方法,通过将闪存设备的用户空间划分为数据空间和可变预留空间,根据数据压缩率和压缩存储率确定可变预留空间的大小,实现对压缩带来的可用空间进行独立管理,并准确确定压缩带来的可用空间的大小,从而减少出现闪存设备性能下降的情况。
45.请参阅图5,图5是本技术实施例提供的一种闪存设备的空间管理方法的流程示意图;其中,该闪存设备的空间管理方法,应用于闪存设备。
46.如图5所示,该闪存设备的空间管理方法,包括:步骤s501:将闪存可用物理空间划分为用户空间和典型预留空间,将用户空间划分为数据空间和可变预留空间;具体的,将闪存设备的闪存可用物理空间划分为用户空间和典型预留空间,典型预留空间包括本征预留空间和标称预留空间。将闪存设备的用户空间划分为数据空间和可
变预留空间,也就是将闪存设备原有的数据空间额外划分出来一部分作为可变预留空间,其中,数据空间用于存储用户数据,例如: 数据空间用于存储压缩后的用户数据和纠错所需的校验数据,可变预留空间为由于数据被压缩而额外可使用的用户空间。相比于数据空间与典型预留空间,可变预留空间是因数据压缩而带来的可额外使用的存储空间。
47.请结合表1参阅表2,表1是本技术实施例提供的不同闪存设备的标称数据容量、数据占据物理容量与闪存物理容量的示例;表2是本技术实施例提供的不同闪存设备的本征预留空间、标称预留空间与可变预留空间的大小的示例;表1表2其中,标称数据容量即用户空间的大小,数据占据物理容量即用户空间的大小,标识*的计算是按照1000进制计算,其它按照1024进制计算。
48.请参阅图6,图6是本技术实施例提供的一种闪存可用物理空间的示意图;如图6所示,闪存可用物理空间包括用户空间和典型预留空间,用户空间也称为标称数据容量空间、用户容量、逻辑容量或者逻辑空间,用户空间包括数据空间和可变预留空间。
49.由于数据压缩率具有不确定性,以及压缩数据存储管理策略的不同,会导致用户空间中的数据空间(指最大需求空间)的大小发生变化,从而导致可变预留空间的大小也发生变化。其中,数据压缩率与数据本身和压缩引擎的算法有关,压缩数据存储管理策略指的是压缩数据在闪存内的存储方式,包括存储时数据的排列和组合方式,例如:压缩数据按照一定规则组合到一个单元(一般是纠错单元)内进行存储。
50.可以理解的是,在本技术实施例中不考虑其它数据特性和闪存块特性对可变预留空间的影响。这是因为数据特性,例如:顺序写入数据的占比,闪存块特性,例如:出厂坏块数量、使用过程坏块数量、块的磨损程度,属于典型预留空间的影响因素,不会影响本技术
中的可变预留空间。
51.在本技术实施例中,通过将闪存可用物理空间划分为用户空间和典型预留空间,将用户空间划分为数据空间和可变预留空间,以对可变预留空间进行独立分区管理,本技术能够有效分离压缩变化对原有的预留空间(典型预留空间)的影响。
52.步骤s502:根据数据压缩率和压缩存储率,确定可变预留空间的大小。
53.具体的,数据压缩率用于度量数据本身和压缩引擎的算法对可变预留空间的影响,数据压缩率为压缩数据的大小与原始用户数据的大小之比,压缩存储率为压缩数据的大小与压缩数据所占数据空间的大小之比。
54.由于可变预留空间的大小除了受到数据本身和压缩引擎的算法的影响,还会受到压缩数据存储管理策略的影响,所以本技术引入压缩存储率来度量压缩数据存储管理策略对可变预留空间的影响。
55.请参阅图7,图7是本技术实施例提供的一种压缩数据存储管理策略的方法示意图;在本技术实施例中,闪存设备对用户数据(主机数据)进行无损压缩时,根据不同的数据类型和压缩引擎算法,大小相同的用户数据会有不同压缩率,即压缩后的数据大小有差别。
56.如图7所示,用户数据0、用户数据1、用户数据2、用户数据3都是4kb的数据,但压缩后对应的压缩数据0、压缩数据1、压缩数据2、压缩数据3的大小分别为2kb、2kb、3kb、3.5kb。可以理解的是,当用户数据为4kb时,其对应的压缩数据可以为4kb(无压缩情况)。
57.虽然用户数据在压缩后变小了,但是压缩数据的大小与压缩数据占据的存储空间的大小并不一致。如图7所示,由于纠错单元的需求,需要对压缩数据进行组合,当纠错单元的数据长度要求为4kb(虚数,实际比4kb大)时,如果2个2kb的数据组合在一起存储至一个纠错单元,例如:压缩数据0与压缩数据1组合存储至纠错单元0,那么这两个2kb的压缩数据占据的存储空间的大小和压缩数据的大小相一致。
58.而对于数据大小为3k的压缩数据2或者数据大小为3.5kb的压缩数据3,由于组合后的数据大于4kb,需要在压缩数据后填充无效数据,或者在对压缩数据切割组合之后,对部分纠错单元填充无效数据。因此,从整体看上,数据大小为3k的压缩数据2或者数据大小为3.5kb的压缩数据3,所占的存储空间的大小仍然为4kb(虚数,实际比4kb大),此时,压缩数据的大小与压缩数据占据的存储空间的大小并不一致。
59.显然,仅用压缩率来度量压缩数据占据存储空间的大小是不合适的。需要考虑压缩数据存储管理策略—压缩数据存储时排列和组合的方式,对可变预留空间的影响。
60.因此,在本技术实施例中,同时根据数据压缩率和压缩存储率,确定可变预留空间的大小,从而有效控制压缩率变化带来的影响,并且进一步细化到实际存储率的颗粒度,使得可变预留空间的管理更为精细。
61.请参阅图8,图8是图5中的步骤s502的细化流程示意图;如图8所示,步骤s502:根据数据压缩率和压缩存储率,确定可变预留空间的大小,包括:步骤s521:根据数据压缩率和压缩存储率,确定空间变量;具体的,空间变量用于表征不同的数据类型、压缩引擎算法和压缩数据存储管理
策略对可变预留空间的影响程度,空间变量的大小取决于数据压缩率和压缩存储率的大小。
62.空间变量与数据压缩率和压缩存储率的关系,可由如下公式表示:其中,表示空间变量,表示数据平均压缩率,表示压缩平均存储率,表示基于数据平均压缩率的函数表达关系式,表示基于压缩平均存储率的函数表达关系式。
63.用于表征数据经过压缩后节省的存储空间,与成正比关系;用于表征由于存储排列损失的节省空间,与成反比关系,其中,节省空间为数据经过压缩后节省的存储空间。
64.其中,数据平均压缩率可由对一定周期内的若干个数据压缩率取均值得到,压缩平均存储率可由对一定周期内的若干个压缩存储率取均值得到。取均值的方式包括但不限于取平均值、取均方值、取几何平均值、取平方平均值、取调和平均值。
65.请参阅图9,图9是图8中的步骤s521的细化流程示意图;如图9所示,步骤s521:根据数据压缩率和压缩存储率,确定空间变量,包括:步骤s5211:获取用户数据;具体的,获取主机发送的至少一个用户数据。
66.步骤s5212:压缩每一用户数据,并将压缩后的用户数据存储至数据空间;具体的,压缩每一用户数据,得到压缩后的用户数据,即压缩数据,并将压缩数据存储至数据空间。
67.步骤s5213:计算每一用户数据对应的数据压缩率和压缩存储率;具体的,在对用户数据进行压缩,并将压缩后的用户数据存储至数据空间的过程中,计算每一用户数据对应的数据压缩率和压缩存储率,其中,数据压缩率为压缩数据的大小与原始用户数据的大小之比,压缩存储率为压缩数据的大小与压缩数据所占数据空间的大小之比,原始用户数据的大小为压缩前的用户数据的大小。
68.步骤s5214:对若干个数据压缩率取平均值,得到数据平均压缩率,并对若干个压缩存储率取平均值,得到压缩平均存储率;在一些实施例中,数据平均压缩率可由对一定周期内的若干个数据压缩率取平均值得到,压缩平均存储率可由对一定周期内的若干个压缩存储率取平均值得到。
69.在另一些实施例中,数据平均压缩率或压缩平均存储率,可通过对一定周期内的若干个数据压缩率或压缩存储率,取均方值、几何平均值、平方平均值或调和平均值得到。
70.可以看出,数据平均压缩率越小,表示数据经过压缩后能节省的数据空间的概率越高,由于数据压缩率受限于数据格式和压缩算法等条件, 数据平均压缩率小于或等于1(如果数据不能压缩,那么数据平均压缩率等于1); 同样地,压缩平均存储率越小,表示由于存储排列损失的节省空间越大,数据经过压缩后对数据空间的实际节省效果越差,当压缩数据排列组合最合理时,压缩平均存储率等于1,如果在压缩数据排列组合后对应的纠错单元内有剩余空间,则压缩平均存储率小于1,因此,压缩平均存储率小于或等于1。
71.具体的,请参阅图10,图10是本技术实施例提供的一种获取数据平均压缩率和压缩平均存储率的细化流程示意图;如图10所示,获取数据平均压缩率和压缩平均存储率的细化流程,包括:步骤s1001:对第一预设周期内的若干个数据压缩率取平均值,得到历史数据平均压缩率,并对第一预设周期内的若干个压缩存储率取平均值,得到历史压缩平均存储率;具体的,历史数据平均压缩率为第一预设周期对应的数据平均压缩率,历史压缩平均存储率为第一预设周期对应的压缩平均存储率,第一预设周期可由本领域技术人员根据实际需求进行设置,在本技术实施例中不做限制。
72.在一些实施例中,历史数据平均压缩率或历史压缩平均存储率,可通过对第一预设周期内的若干个数据压缩率或压缩存储率,取均方值、几何平均值、平方平均值或调和平均值得到。
73.步骤s1002:对第二预设周期内的若干个数据压缩率取平均值,得到第一数据平均压缩率,并对第二预设周期内的若干个压缩存储率取平均值,得到第一压缩平均存储率;具体的,第一数据平均压缩率为第二预设周期对应的数据平均压缩率,第一压缩平均存储率为第二预设周期对应的压缩平均存储率,第二预设周期与第一预设周期为不同的时间周期,第二预设周期的时间晚于第一预设周期的时间,第二预设周期可由本领域技术人员根据实际需求进行设置,在本技术实施例中不做限制。
74.在一些实施例中,第一数据平均压缩率或第一压缩平均存储率,可通过对第二预设周期内的若干个数据压缩率或压缩存储率,取均方值、几何平均值、平方平均值或调和平均值得到。
75.步骤s5215:根据数据平均压缩率和压缩平均存储率,计算得到空间变量。
76.在一些实施例中,将数据平均压缩率与压缩平均存储率,代入下述空间变量的计算公式中,计算得到空间变量。其中,空间变量的计算公式为:其中,表示空间变量,表示数据平均压缩率,表示压缩平均存储率。,。
77.例如:数据平均压缩率为0.6(60%),表明数据平均下来压缩了60%;压缩平均存储率为0.8,表明80%的压缩数据是按照原始压缩后的大小存储到闪存上的,那么。
78.在另一些实施例中,考虑到实际工程中会出现更多的影响因素,比如垃圾回收之后,压缩数据迁移带来的排列变化,使压缩平均存储率统计出现偏差,或者,比如平均计算方法带来的计算偏差,因此,需要在上述空间变量的计算公式中设定一些计算影响因子,所以在的基础上存在诸多的变式。
79.例如:将数据平均压缩率与压缩平均存储率,代入下述空间变量的计算公式中,计算得到空间变量。公式如下:其中,表示空间变量,表示第一调节因子,表示数据平均压缩率,表示第二
term memory,lstm)算法。
89.具体的,预测算法以历史数据平均压缩率与历史压缩平均存储率为预测起点,对数据压缩率和压缩存储率进行跟踪,根据数据压缩率和压缩存储率的变化趋势,以得到趋势因子,从而计算和更新空间变量的值,更新可变预留空间的大小。其中,更新是趋势型的,也就是会影响到未来一段时间,趋势因子用于表征数据压缩率和压缩存储率的变化趋势,趋势因子可由预测算法的可信度评估得到,,0代表变化不具有确定性,保持历史值,1代表趋势明显,调整为当前值。
90.步骤s5224:根据趋势因子、第一空间变量与空间变量的变化值,计算得到可变预留空间的大小;具体的,将步骤s1002计算得到的第二预设周期的第一数据平均压缩率与第一压缩平均存储率,代入上文中计算第一空间变量时使用的空间变量的计算公式,计算得到第二空间变量。
91.例如:计算第一空间变量时使用的公式为,则将第一数据平均压缩率与第一压缩平均存储率代入,计算得到第二空间变量;或者,将第一数据平均压缩率与第一压缩平均存储率代入中,计算得到第二空间变量,其中,表示第二空间变量,表示第一数据平均压缩率,表示第一压缩平均存储率。
92.从而根据第一空间变量与第二空间变量,计算得到空间变量的变化值,其中,空间变量的变化值=第二空间变量-第一空间变量。
93.将趋势因子、第一空间变量与空间变量的变化值,代入下述公式,计算得到可变预留空间的大小,即可变预留空间的容量,并将计算得到的可变预留空间的容量存储至闪存内,以更新上一次存储的可变预留空间的容量。公式如下:其中,表示可变预留空间的大小,表示第一空间变量,表示趋势因子,表示空间变量的变化值,表示用户空间的大小。
94.例如:第一预设周期内,历史数据平均压缩率为0.6,历史压缩平均存储率为0.8;第二预设周期,第一数据平均压缩率为0.8,压缩平均存储率为0.7,则:第一数据平均压缩率与历史数据平均压缩率的差值==,历史压缩平均存储率与第一压缩平均存储率的差值;当大于第一阈值,或者,大于第二阈值时,由于,表明数据压缩率变大,,表明压缩存储率也变大,认为变化趋势确定,。
95.以用户空间的大小为1000gb、空间变量计算公式为例,第一变
量,空间变量的变化值,可变预留空间的大小。
96.步骤s5225:获取每一用户数据对应的数据压缩率和压缩存储率。
97.具体的,若第一数据平均压缩率与历史数据平均压缩率的差值小于或等于第一阈值,且历史压缩平均存储率与第一压缩平均存储率的差值小于或等于第二阈值,则在用户数据写入闪存设备的过程中,获取新的用户数据对应的数据压缩率和压缩存储率。
98.在本技术实施例中,通过预测算法分别对数据压缩率和压缩存储率的变化趋势进行预测,本技术能够对可变预留空间的大小进行周期性地动态更新,从而使得闪存设备能够提前进行一些必要的处理,如垃圾回收等,减少出现闪存设备性能下降的情况。
99.请参阅图12,图12是本技术实施例提供的一种闪存设备的空间管理方法的总体流程示意图;如图12所示,闪存设备的空间管理方法的总体流程,包括:步骤s1201:设置初始参数;具体的,将闪存设备的用户空间划分为数据空间和可变预留空间,其中,数据空间用于存储用户数据,可变预留空间为由于数据被压缩而额外可使用的用户空间。设置初始数据压缩率为1,初始压缩存储率为1,计算得到初始可变预留空间为0,设定第一预设周期、第二预设周期、第一阈值、第二阈值以及各类因子值,例如:第一调节因子与第二调节因子。
100.步骤s1202:在用户数据写入闪存设备的过程中,获取每一用户数据对应的数据压缩率和压缩存储率;具体的,获取用户数据,压缩每一用户数据,得到对应的压缩数据,并将压缩数据存储至数据空间,计算每一用户数据对应的数据压缩率和压缩存储率。
101.步骤s1203:在设定周期内,计算得到数据平均压缩率和压缩平均存储率;具体的,对第一预设周期内的若干个数据压缩率与压缩存储率分别取平均值,得到历史数据平均压缩率与历史压缩平均存储率,和/或,对第二预设周期内的若干个数据压缩率与压缩存储率分别取平均值,得到第一数据平均压缩率与第一压缩平均存储率。该步骤的具体实现方式与步骤s5214的具体实现方式相同,在此不再赘述。
102.步骤s1204:确定第一数据平均压缩率与历史数据平均压缩率的差值,以及第一压缩平均存储率与历史压缩平均存储率的差值;具体的,第一数据平均压缩率与历史数据平均压缩率的差值=第一数据平均压缩率-历史数据平均压缩率,第一压缩平均存储率与历史压缩平均存储率的差值=第一压缩平均存储率-历史压缩平均存储率的差值。
103.步骤s1205:判断第一数据平均压缩率与历史数据平均压缩率的差值是否大于第一阈值,或者,第一压缩平均存储率与历史压缩平均存储率的差值是否大于第二阈值;具体的,若第一数据平均压缩率与历史数据平均压缩率的差值大于第一阈值,或者,历史压缩平均存储率与第一压缩平均存储率的差值大于第二阈值,则进入步骤s1206;若第一数据平均压缩率与历史数据平均压缩率的差值小于或等于第一阈值,且历史压缩平均存储率与第一压缩平均存储率的差值小于或等于第二阈值,则返回步骤s1202,以获取新的用户数据对应的数据压缩率和压缩存储率。
104.步骤s1206:获取趋势因子;
具体的,该步骤的具体实现方式与步骤s5223的具体实现方式相同,在此不再赘述。
105.步骤s1207:根据趋势因子、第一空间变量与空间变量的变化值,计算得到可变预留空间的大小;具体的,该步骤的具体实现方式与步骤s5224的具体实现方式相同,在此不再赘述。进一步地,在完成该步骤后,返回步骤s1202,以获取新的用户数据对应的数据压缩率和压缩存储率。
106.在本技术实施例中,通过提供一种闪存设备的空间管理方法,包括:将闪存可用物理空间划分为用户空间和典型预留空间,将用户空间划分为数据空间和可变预留空间,其中,数据空间用于存储用户数据,可变预留空间为由于数据被压缩而额外可使用的用户空间;根据数据压缩率和压缩存储率,确定可变预留空间的大小。通过将闪存可用物理空间划分为用户空间和典型预留空间,将用户空间划分为数据空间和可变预留空间,根据数据压缩率和压缩存储率确定可变预留空间的大小,本技术能够对压缩带来的可用空间进行独立管理,准确确定压缩带来的可用空间的大小,从而减少出现闪存设备性能下降的情况。
107.请参阅图13,图13是本技术实施例提供的一种存储控制芯片的结构示意图;在本技术实施例中,该存储控制芯片应用上述任一实施例的闪存设备的空间管理方法。
108.如图13所示,存储控制芯片130包括数据压缩及数据通路单元131、可变预留空间管理单元132、映射管理单元133与数据纠错及数据存储单元134。
109.数据压缩及数据通路单元131,连接可变预留空间管理单元132与映射管理单元133,用于对用户数据进行压缩和存储。具体的,数据压缩及数据通路单元131包括数据压缩单元和数据通路单元,数据压缩单元用于对用户数据进行压缩以及计算数据压缩率,并将若干个数据压缩率发送给可变预留空间管理单元132,其中,数据压缩单元包括压缩引擎,压缩引擎用于对用户数据进行压缩;数据通路单元用于缓存数据以及将数据信息发送给映射管理单元133,以便于映射管理单元133管理数据信息。
110.可变预留空间管理单元132,连接数据纠错及数据存储单元134、映射管理单元133与数据纠错及数据存储单元131,用于根据数据压缩率和压缩存储率确定可变预留空间的大小。具体的,可变预留空间管理单元132用于计算数据平均压缩率、压缩平均存储率和空间变量,并通过预测算法分别对数据压缩率和压缩存储率的变化趋势进行预测,以得到趋势因子,以及根据趋势因子与空间变量,计算得到可变预留空间的大小,并将计算得到的可变预留空间的大小发送给映射管理单元133。
111.请参阅图14,图14是本技术实施例提供的一种可变预留空间管理单元的结构示意图;如图14所示,可变预留空间管理单元132包括模块管理单元1321、数据压缩率管理单元1322、预测单元1323、数学计算单元1324与压缩存储率管理单元1325,其中,模块管理单元1321,连接数据压缩率管理单元1322、压缩存储率管理单元1325与预测单元1323,用于根据数据平均压缩率、压缩平均存储率与趋势因子,计算得到可变预留空间的大小。
112.数据压缩率管理单元1322,连接模块管理单元1321、预测单元1323与数学计算单
元1324,用于对若干个数据压缩率进行管理,并统计数学计算单元1324计算得到的数据平均压缩率。
113.预测单元1323,连接数据压缩率管理单元1322、模块管理单元1321、数学计算单元1324与压缩存储率管理单元1325,用于通过预测算法对数据压缩率和压缩存储率的变化趋势进行预测,以得到趋势因子。
114.数学计算单元1324,连接数据压缩率管理单元1322、预测单元1323与压缩存储率管理单元1325,用于根据数据压缩率和压缩存储率,计算得到数据平均压缩率和压缩平均存储率。
115.压缩存储率管理单元1325,连接模块管理单元1321、预测单元1323与数学计算单元1324,用于对若干个压缩存储率进行管理,并统计数学计算单元1324计算得到的压缩平均存储率。
116.映射管理单元133,连接数据压缩及数据通路单元131、可变预留空间管理单元132与数据纠错及数据存储单元134,用于进行地址映射管理、垃圾回收管理或磨损均衡管理等,以及管理典型预留空间。
117.数据纠错及数据存储单元134,连接可变预留空间管理单元132与映射管理单元133,用于对数据进行纠错编码和/或解码,以及写入或读取数据。具体的,数据纠错及数据存储单元134用于接收映射管理单元133发起的数据存储或读取操作请求,对闪存进行存储管理等,以及计算压缩存储率,并将若干个压缩存储率发送给可变预留空间管理单元132。
118.在本技术实施例中,提供一种存储控制芯片,该存储控制芯片包括:数据压缩及数据通路单元,连接可变预留空间管理单元与映射管理单元,用于对用户数据进行压缩和存储;可变预留空间管理单元,连接数据纠错及数据存储单元、映射管理单元与数据纠错及数据存储单元,用于根据数据压缩率和压缩存储率确定可变预留空间的大小;映射管理单元,连接数据压缩及数据通路单元、可变预留空间管理单元与数据纠错及数据存储单元,用于进行地址映射管理、垃圾回收管理或磨损均衡管理;数据纠错及数据存储单元,连接可变预留空间管理单元与映射管理单元,用于对数据进行纠错编码和/或解码,以及写入或读取数据。
119.通过数据压缩及数据通路单元用于对用户数据进行压缩和存储,可变预留空间管理单元用于根据数据压缩率和压缩存储率确定可变预留空间的大小,映射管理单元用于进行地址映射管理、垃圾回收管理或磨损均衡管理,数据纠错及数据存储单元用于对数据进行纠错编码和/或解码,以及写入或读取数据,本技术能够对压缩带来的可用空间进行独立管理,准确确定压缩带来的可用空间的大小,从而减少出现闪存设备性能下降的情况。
120.本技术实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,可使得上述一个或多个处理器可执行上述任意方法实施例中的闪存设备的空间管理方法,例如,执行上述任意方法实施例中的闪存设备的空间管理方法。
121.以上所描述的装置或设备实施例仅仅是示意性的,其中作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
122.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
123.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上的本技术的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
技术特征:
1.一种闪存设备的空间管理方法,其特征在于,所述方法包括:将闪存可用物理空间划分为用户空间和典型预留空间,将所述用户空间划分为数据空间和可变预留空间,其中,所述数据空间用于存储用户数据,所述可变预留空间为由于数据被压缩而额外可使用的用户空间;根据数据压缩率和压缩存储率,确定所述可变预留空间的大小。2.根据权利要求1所述的方法,其特征在于,所述数据压缩率为压缩数据的大小与原始用户数据的大小之比,所述压缩存储率为压缩数据的大小与压缩数据所占数据空间的大小之比;所述根据数据压缩率和压缩存储率,确定所述可变预留空间的大小,包括:根据所述数据压缩率和所述压缩存储率,确定空间变量;根据所述空间变量,确定所述可变预留空间的大小,其中,所述可变预留空间的大小=所述空间变量*所述用户空间的大小。3.根据权利要求2所述的方法,其特征在于,所述根据所述数据压缩率和所述压缩存储率,确定空间变量,包括:获取用户数据;压缩每一所述用户数据,并将压缩后的用户数据存储至所述数据空间;计算每一所述用户数据对应的数据压缩率和压缩存储率;对若干个所述数据压缩率取平均值,得到数据平均压缩率,并对若干个所述压缩存储率取平均值,得到压缩平均存储率;根据所述数据平均压缩率和所述压缩平均存储率,计算得到空间变量。4.根据权利要求3所述的方法,其特征在于,所述对若干个所述数据压缩率取平均值,得到数据平均压缩率,并对若干个所述压缩存储率取平均值,得到压缩平均存储率,包括:对第一预设周期内的若干个所述数据压缩率取平均值,得到历史数据平均压缩率,并对第一预设周期内的若干个所述压缩存储率取平均值,得到历史压缩平均存储率;对第二预设周期内的若干个所述数据压缩率取平均值,得到第一数据平均压缩率,并对第二预设周期内的若干个所述压缩存储率取平均值,得到第一压缩平均存储率,其中,所述第二预设周期与所述第一预设周期不同;所述根据所述数据平均压缩率和所述压缩平均存储率,计算得到空间变量,包括:根据所述历史数据平均压缩率与所述历史压缩平均存储率,计算得到第一空间变量。5.根据权利要求4所述的方法,其特征在于,所述根据所述空间变量,确定所述可变预留空间的大小,包括:若所述第一数据平均压缩率与所述历史数据平均压缩率的差值大于第一阈值,或者,所述历史压缩平均存储率与所述第一压缩平均存储率的差值大于第二阈值,则通过预测算法分别对数据压缩率和压缩存储率的变化趋势进行预测,以得到趋势因子;根据所述趋势因子、所述第一空间变量与空间变量的变化值,计算得到可变预留空间的大小。6.根据权利要求3所述的方法,其特征在于,所述根据所述数据平均压缩率和所述压缩平均存储率,计算得到空间变量,包括:
其中,表示空间变量,表示数据平均压缩率,表示压缩平均存储率。7.根据权利要求3所述的方法,其特征在于,所述根据所述数据平均压缩率和所述压缩平均存储率,计算得到空间变量,包括:其中,表示空间变量,表示第一调节因子,表示数据平均压缩率,表示第二调节因子,表示压缩平均存储率。8.根据权利要求5所述的方法,其特征在于,所述空间变量的变化值=第二空间变量-第一空间变量,其中,所述第二空间变量根据所述第一数据平均压缩率与所述第一压缩平均存储率计算得到。9.根据权利要求5所述的方法,其特征在于,所述根据所述趋势因子、所述第一空间变量与空间变量的变化值,计算得到可变预留空间的大小,包括:其中,表示可变预留空间的大小,表示第一空间变量,表示趋势因子,表示空间变量的变化值,表示用户空间的大小。10.一种存储控制芯片,其特征在于,应用如权利要求1-9任一项所述的闪存设备的空间管理方法,所述存储控制芯片包括:数据压缩及数据通路单元,连接可变预留空间管理单元与映射管理单元,用于对用户数据进行压缩和存储;可变预留空间管理单元,连接数据纠错及数据存储单元、映射管理单元与数据纠错及数据存储单元,用于根据数据压缩率和压缩存储率确定可变预留空间的大小;映射管理单元,连接数据压缩及数据通路单元、可变预留空间管理单元与数据纠错及数据存储单元,用于进行地址映射管理、垃圾回收管理或磨损均衡管理;数据纠错及数据存储单元,连接可变预留空间管理单元与映射管理单元,用于对数据进行纠错编码和/或解码,以及写入或读取数据。11.根据权利要求10所述的存储控制芯片,其特征在于,所述可变预留空间管理单元包括模块管理单元、数据压缩率管理单元、压缩存储率管理单元、数学计算单元与预测单元,其中,模块管理单元,连接所述数据压缩率管理单元、所述压缩存储率管理单元与所述预测单元,用于根据数据平均压缩率、压缩平均存储率与趋势因子,计算得到可变预留空间的大小;数据压缩率管理单元,连接所述模块管理单元、所述预测单元与所述数学计算单元,用于对若干个数据压缩率进行管理,并统计所述数学计算单元计算得到的数据平均压缩率;预测单元,连接所述数据压缩率管理单元、所述模块管理单元、所述数学计算单元与所述压缩存储率管理单元,用于通过预测算法对数据压缩率和压缩存储率的变化趋势进行预测,以得到趋势因子;数学计算单元,连接所述数据压缩率管理单元、所述预测单元与所述压缩存储率管理
单元,用于根据数据压缩率和压缩存储率,计算得到数据平均压缩率和压缩平均存储率;压缩存储率管理单元,连接所述模块管理单元、所述预测单元与所述数学计算单元,用于对若干个压缩存储率进行管理,并统计所述数学计算单元计算得到的压缩平均存储率。12.一种闪存设备,其特征在于,包括:如权利要求10或11所述的存储控制芯片;至少一个闪存介质,与所述存储控制芯片通信连接。
技术总结
本申请实施例涉及存储设备应用领域,公开了一种闪存设备的空间管理方法、存储控制芯片及闪存设备,闪存设备的空间管理方法包括:将闪存可用物理空间划分为用户空间和典型预留空间,将用户空间划分为数据空间和可变预留空间,其中,数据空间用于存储用户数据,可变预留空间为由于数据被压缩而额外可使用的用户空间;根据数据压缩率和压缩存储率,确定可变预留空间的大小。通过将闪存可用物理空间划分为用户空间和典型预留空间,将用户空间划分为数据空间和可变预留空间,根据数据压缩率和压缩存储率确定可变预留空间的大小,本申请能够对压缩带来的可用空间进行独立管理,准确确定压缩带来的可用空间的大小,从而减少出现闪存设备性能下降的情况。备性能下降的情况。备性能下降的情况。
技术研发人员:方浩俊 黄运新 王飞 印中举
受保护的技术使用者:深圳大普微电子科技有限公司
技术研发日:2023.06.12
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
