固态硬盘的管理方法和固态硬盘

文档序号:189821 发布日期:2021-11-02 浏览:6次 >En<

阅读说明:本技术 固态硬盘的管理方法和固态硬盘 (Solid state disk and management method thereof ) 是由 蔡全 陈正亮 王琛銮 骆小敏 蔡勤世 于 2021-07-27 设计创作,主要内容包括:公开了一种固态硬盘的管理方法和固态硬盘,固态硬盘包括控制器和闪存存储器,闪存存储器包括多个DIE,其中控制器针对每个DIE执行以下操作:将所述多个DIE划分为多个虚拟DIE;以多个所述虚拟DIE为基准建立多个RAID条带组;根据所述RAID条带组的长度建立待存储数据的逻辑地址与物理地址的映射关系;根据所述映射关系将数据存储在闪存存储器中和访问所述闪存存储器。本申请的固态硬盘将一个DIE划分为多个虚拟操作单元,再建立RAID条带组,改变条带组的长度,节省校验数据占用的空间,提升数据保护能力。(The solid state disk comprises a controller and a flash memory, wherein the flash memory comprises a plurality of DIEs, and the controller executes the following operations aiming at each DIE: dividing the DIEs into virtual DIEs; establishing a plurality of RAID stripe groups by taking a plurality of virtual DIEs as a reference; establishing a mapping relation between a logical address and a physical address of data to be stored according to the length of the RAID stripe group; and storing data in a flash memory according to the mapping relation and accessing the flash memory. According to the solid state disk, one DIE is divided into the plurality of virtual operation units, the RAID stripe group is established, the length of the stripe group is changed, the space occupied by check data is saved, and the data protection capability is improved.)

固态硬盘的管理方法和固态硬盘

技术领域

本发明涉及数据存储技术领域,特别涉及一种固态硬盘的管理方法和固态硬盘。

背景技术

固态硬盘(SSD,Solid State Drives)是用固态电子存储芯片制作的存储硬盘,主要由控制器,存储介质和缓存单元组成。由于其具有读写速度快、功耗低、无噪音等优点而广泛应用于电子、军事等领域。

目前最主流的固态硬盘采用闪存存储器(Flash Memory)作为存储介质来存储数据,为避免由于颗粒磨损、高温环境等造成的比特翻转等问题,固态硬盘的控制器内部一般会有译码电路(ECC码或LDPC码),用于数据的恢复和纠错处理。然而,当Flash等级比较差或者寿命末期,以及一些对数据正确性有更高要求的应用场景,译码电路不能完全满足数据的正确性需求,可能不能正确解码Flash里的数据。因此,固态硬盘的固件设计会考虑使用RAID(Redundant Array of Independent Disk,独立冗余磁盘阵列)策略来提高数据的保护能力,当译码电路不能纠错时,利用已有的RAID条带组恢复出错的数据。

通常在SSD的Flash内部包含多个可独立并发操作的单元DIE,以多个DIE为基础能建立多个RAID条带组,使数据分段存储在条带组中。RAID条带组中包含有一个数据校验条带,是由其余条带的数据进行逻辑运算后得到的结果,当某处的数据发生错误时,可以通过条带间的数据运算恢复存储数据。但是由于RAID条带组较小,校验数据的存在占据了很大的空间,固态硬盘损失的空间较大。

因此,需要进一步提升固态硬盘的空间利用效率,提升数据保护能力。

发明内容

鉴于上述问题,本发明的目的在于提供一种固态硬盘的管理方法和固态硬盘,以解决现有技术中存在的问题。

根据本发明的一方面,提供一种固态硬盘的管理方法,所述固态硬盘包括控制器和闪存存储器,所述闪存存储器包括多个DIE,其中所述控制器针对每个所述DIE执行以下操作:

将所述多个DIE划分为多个虚拟DIE;

以多个所述虚拟DIE为基准建立多个RAID条带组;

根据所述RAID条带组的长度建立待存储数据的逻辑地址与物理地址的映射关系;

根据所述映射关系将数据存储在闪存存储器中和访问所述闪存存储器。

可选地,将所述多个DIE划分为多个虚拟DIE的步骤包括:

将每个所述DIE均拆分为相同的至少两个所述虚拟DIE。

可选地,将所述多个DIE划分为多个虚拟DIE的步骤包括:

将每至少两个所述DIE合并成一个所述虚拟DIE。

可选地,每个所述DIE均包括多个物理块,以物理块为单位划分所述虚拟DIE,每个所述虚拟DIE包括的所述物理块的个数相同。

可选地,每个所述物理块均包括多行物理页,所述多行物理页分别以不同的页号命名;以多个所述虚拟DIE为基准建立多个RAID条带组的步骤包括:

对每个所述虚拟DIE中的多个所述物理块进行编号;

将每个所述虚拟DIE中,相同编号的所述物理块内所述页号相同的物理页合并为同一个所述RAID条带组;

按照所述编号的顺序和所述页号的顺序建立多个所述RAID条带组。

可选地,所述DIE对应的存储空间为所述物理地址,所述虚拟DIE对应的存储空间为所述逻辑地址。

可选地,根据所述映射关系将数据存储在闪存存储器中和访问所述闪存存储器的步骤包括:

根据所述映射关系,将所述待存储数据按照RAID条带组的存储方式存储在所述物理地址中;

访问所述闪存存储器时,根据所述映射关系将所述物理地址转换为所述逻辑地址。

根据本发明的另一方面,提供一种固态硬盘,包括:

控制器,与主机连接,用于从外部接收写数据;以及

闪存存储器,与所述控制器连接,接收所述写数据,所述闪存存储器包括多个DIE,

其中,所述控制器用于将每个所述DIE划分为多个虚拟DIE,并以每个所述虚拟DIE为基准建立多个RAID条带组。

可选地,每个所述DIE均包括多个物理块,以物理块为单位划分所述虚拟DIE,每个所述虚拟DIE包括的所述物理块的个数相同。

可选地,每个所述DIE均包括至少两个相同的所述虚拟DIE,或,每至少两个所述DIE合并成一个所述虚拟DIE。

本发明提供的固态硬盘的管理方法和固态硬盘,通过将闪存内部的每个DIE划分为多个虚拟DIE,以此为基础建立RAID条带组,从而增加(或减小)RAID条带组的长度,对应降低(或提升)RAID条带组中校验数据的占用空间,降低(或提升)对RAID空间的需求,提升数据保护能力和管理能力,提高固态硬盘的读写效率和质量。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示出了根据本发明实施例的固态硬盘的示意性结构框图;

图2示出了根据本发明实施例的闪存存储器的示意性结构框图;

图3示出了传统固态硬盘中RAID条带组的示意图;

图4示出了根据本发明实施例的固态硬盘的管理方法的流程图;

图5示出了根据本发明第一实施例的固态硬盘中闪存存储器内部的示意性结构图;

图6示出了根据本发明第一实施例的RAID条带组的示意图;

图7示出了根据本发明第二实施例的固态硬盘中闪存存储器内部的示意性结构图。

具体实施方式

以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。

除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

图1示出了根据本发明实施例的固态硬盘的示意性结构框图,图2示出了根据本发明实施例的闪存存储器的示意性结构框图。

如图1,固态硬盘是用固态电子存储芯片制作的存储硬盘,本实施例的固态硬盘100包括:控制器110和闪存存储器120,控制器110负责闪存存储器120上的数据管理,作为数据的中转,连通主机200和闪存存储器120,从外部接收写数据。固态硬盘100还可以包括DRAM130,作为第二缓存单元,用来辅助控制器110进行数据处理。

进一步地,控制器110包括:接口单元111,闪存控制器112,缓存控制器113,中央处理器114和第一缓存单元115。接口单元111连接外部主机200和中央处理器114,实现数据传输,例如是将主机200的写数据传输至控制器110,常见的接口单元111有SATA,PCIe等;中央处理器114例如是CPU,用于控制固态硬盘100内的各个部件的运作,例如与第一缓存单元115连接,控制第一缓存单元115内的写数据的存储和释放,可以将写数据存储在第一缓存单元115中,第一缓存单元115为SRAM;闪存控制器112与中央处理器114和闪存存储器120连接,根据中央处理器114的控制,将写数据写入闪存存储器120中;缓存控制器113连接中央处理器114和第二缓存单元130,第二缓存单元130为DRAM。本实施例中,控制器110通过其内部的中央处理器114控制闪存控制器112从而实现对闪存存储器120的控制。

闪存存储器120与控制器110连接,接收控制器110传来的写数据。闪存存储器120包括多个DIE121(Logical Unit,闪存存储器120中可独立执行命令并上报命令执行状态的最小单元,一个闪存存储器120中包含有多个DIE),本实施例的固态硬盘100将闪存存储器120中的每个DIE121均划分为多个虚拟DIE1211(Virtual DIE),并以每个虚拟DIE1211为基准建立多个RAID条带组。

如图2所示,每个闪存存储器120均包括多个DIE121,它们是闪存存储器120内部的可并发执行操作的最小物理单元。每个DIE中又包含若干个Plane(操作面),每个Plane中包含有若干个Block(物理块),每个Block包含多个Page(物理页),其中Block为擦除操作的最小单元,Page为读写操作的最小单元。以闪存存储器120内的物理页为单位可以组成RAID条带组。

本实施例中,以一个闪存存储器120中包含4个DIE121(DIE0、DIE1、DIE2和DIE3)为例说明,每个DIE121均包括至少两个虚拟DIE1211,图2中每个DIE121均包括两个虚拟DIE1211(Virtual DIE),那么,4个DIE121即可拆分为8个虚拟DIE1211。在图2的右侧中示出了每个DIE121内部的结构示意。以DIE1为例,每个DIE121包含多个物理块,每个物理块用块编号标识(分别以DIE 1Block 0、DIE 1Block1…DIE 1Block M、DIE 1Block M+1……BlockT命名,T例如是255)。根据物理块的个数可以将DIE121划分为多个虚拟DIE1211,具体地,每个DIE121中的多个虚拟DIE1211均包括相同个数的物理块。因此,每个虚拟DIE1211也包括多个物理块,每个物理块都按照相同规则用块编号重新标识。DIE 1划分为了Virtual DIE1和Virtual DIE 5两个虚拟DIE1211,Virtual DIE 1包括N+1个物理块(Virtual DIE1Block 0—Virtual DIE 1Block N),Virtual DIE 5页包括N+1个物理块(Virtual DIE5Block 0—Virtual DIE 5Block N),两个虚拟DIE1211的总的物理块的个数等于DIE 1中所有物理块的个数。

另外,每个物理块内部的结构也相同,具体地,每个物理块内包括多行物理页,以行号示出(Page 0、Page 1……Page X),每行均代表一页。以一个DIE包括两个Plane(Plane0和Plane 1)为例,那么,一个Block的一个行中包含两个物理页Page。在每个虚拟DIE1211上各取一部分物理页可以组成RAID条带组。具体地,将所有虚拟DIE1211中的块编号相同的物理块中的行号相同的物理页行作为一个RAID条带组,从而得到多个条带组,控制器110接收写数据并逐一向每个条带组中写入写数据。

图3示出了传统固态硬盘中RAID条带组的示意图。

如图3所示,一个闪存存储器包括4个DIE121,结合图2和图3,闪存存储器包括DIE0、DIE1、DIE2和DIE3。将每个DIE内相同编号的物理块(Block N)内,行号相同(Page 0)的多个物理页组成一个RAID条带组。图3中虚线框中示出的部分为条带组,用Stripe 0表示。通常,一个条带包含一个或多个物理页Page,而若干个条带一起组成一个RAID条带组,条带组包含的条带的个数即RAID条带组的长度。根据RAID策略不同,如果组成RAID条带组的任一条带出错时,可以由其他条带恢复出错条带的数据。常见的RAID5策略,有一个条带用于存储校验数据,其余条带存储写数据,校验数据为由同一条带组中的各写数据进行异或操作后得到的结果,若其中某个条带的写数据丢失,可以由其他的条带的写数据进行运算得出该丢失的写数据,从而恢复写数据。

对于只有4个DIE的固态硬盘,根据条带包含物理页的不同,RAID条带组的组成方式可以有以下几种:策略一:1个DIE的1个plane是一个条带,每行物理页都有数据保护,1个DIE则有2个条带,RAID条带组有4个DIE,8个条带,其中7个条带存储写数据,第8个条带存储校验数据;策略二:1个DIE的2个plane是一个条带,每行物理页都有数据保护,1个DIE则有1个条带,RAID条带组有4个DIE,4个条带,其中3个条带存储写数据,第4个条带存储校验数据;策略三:1个DIE的1个plane是一个条带,多行物理页(例如4行,Page 0-Page 3)有一个数据保护,1个DIE则有8个条带,RAID条带组有4个DIE,32个条带,其中31个条带存储写数据,第32个条带存储校验数据;策略四:1个DIE的2个plane是一个条带,多行物理页(例如4行,Page 0-Page 3)有一个数据保护,1个DIE则有4个条带,RAID条带组有4个DIE,16个条带,其中15个条带存储写数据,第16个条带存储校验数据。当采用策略三或策略四的RAID保护数据时,如果同一个DIE内有连续多行物理页(例如Page 1和Page2同时)有不可恢复的错误,此时一个条带组内至少有两个条带发生了数据错误,不能通过RAID纠错,因此固态硬盘一般较少采用这种存储方式。而使用策略一和策略二时,虽然连续行物理页出错时,每行均可以在相应的条带组内恢复数据,但是却需要较大的校验数据的空间,例如策略一固态硬盘需要损失1/8的可用空间用于存储校验数据,策略二则损失1/4的可用空间。这对固态硬盘的空间损失是巨大的。

本发明则是对传统的固态硬盘进行改进,使其可以减小RAID的需求空间,同时达到较好的数据保护功能。因此,本发明还提供一种固态硬盘的管理方法,具体结合附图4-7进行说明。

图4示出了根据本发明实施例的固态硬盘的管理方法的流程图。

本发明实施例的固态硬盘的管理方法中,固态硬盘可以通过构建虚拟DIE的方式来增加DIE的数目,从而增加RAID条带组的长度,从而降低对RAID空间的需求。

结合图2和图4,本实施例的用于固态硬盘100的管理方法由控制器110执行,具体地,包括以下步骤:

在步骤S101中,将多个DIE划分为多个虚拟DIE。在本步骤中,将每个DIE121划分为多个虚拟DIE1211,虚拟操作单元1211的个数与DIE121的个数呈倍数关系。本发明中可以将一个DIE121划分为多个虚拟DIE1211(图4-6示出的实施例),另外,还可以将多个DIE121合并为一个虚拟DIE1211(图7示出的实施例)。

在步骤S102中,以多个虚拟DIE为基准建立多个RAID条带组。本步骤中,由于虚拟DIE1211实际上还是DIE121的一部分,可以看做是新的DIE121,以虚拟DIE1211代替DIE121,建立RAID条带组,新的RAID条带组以虚拟DIE1211为基准建立。那么,由于虚拟DIE1211的个数不同于DIE121,因此,RAID条带组的长度得到改变。以图3中提到的策略一为例,若有4个DIE121,不划分虚拟DIE时,一个RAID条带组仅有8个条带;而若划分为8个虚拟DIE时,一个RAID条带组有16个条带。

在步骤S103中,根据RAID条带组的长度建立待存储数据的逻辑地址与物理地址的映射关系。本步骤中,需要建立DIE121和虚拟DIE1211之间的映射关系。那么,在固态硬盘100上电之后,首先构建虚拟DIE和实际DIE间的映射关系,建立起待存储数据的逻辑地址和物理地址之间的关系,待存储数据例如为写数据。可以根据不同的数据管理要求,设定不同的虚拟级别,但是需要保证固态硬盘100在同一批操作中,每次上电后构建的映射关系都是一样的。应该理解,由于闪存存储器120的读写单位为页,而页的大小一般为4KB或8KB,但是经由主机200发送过来的写数据通常是按照硬盘的扇区尺寸进行的(一般为512个字节),因此从主机200接收的写数据需要转换为一个以闪存的页为单位组织的写数据,但是主机200还需要访问这些写数据,因此需要建立逻辑地址(后续主机200可基于逻辑地址访问写数据)和物理地址(用于指定实际的写数据在闪存存储器120的存储位置)的地址映射关系数据。例如,在DIE1211上实际存储的位置为数据的物理地址,在虚拟DIE上的位置为逻辑地址。

在步骤S104中,根据映射关系将数据存储在闪存存储器中和访问闪存存储器。本步骤包括:根据映射关系,将待存储数据按照RAID条带组的存储方式存储在物理地址中;访问闪存存储器120时,根据映射关系将物理地址转换为逻辑地址。

具体地,本步骤中,固态硬盘100在运行过程中,按照映射关系,在DIE1211中进行各种数据的管理。而在访问闪存存储器120之前,则需要按照映射关系,将数据转换到逻辑地址上去。例如,控制器110持续接收主机200发送的写数据。若固态硬盘100已在运行过程中,已经建立好映射关系,那么控制器110在接收到写数据之后,会按照映射关系,在DIE1211中进行各种数据的管理,将写数据按照映射关系写入真正的物理地址中。进一步地,在主机200访问存储器120时,获得用户数据的逻辑地址,以逻辑地址作为索引查找获得用户数据的物理地址。

进一步地,按照图3中提到的策略一,对于每个条带组,先将写数据逐个物理页地写入到条带组的最后一个物理页之前的所有物理页中,然后生成校验数据并将校验数据写入到条带组的最后一个物理页。

由此,实现了对RAID条带组长度的调整,在实现数据保护的同时也改变了RAID条带组的长度,改变了对RAID的需求空间,提升数据保护能力。

图5示出了根据本发明第一实施例的固态硬盘中闪存存储器内部的示意性结构图;图6示出了根据本发明第一实施例的RAID条带组的示意图。

如图5所示,在第一实施例中,将多个DIE121划分为多个虚拟DIE1211而每个虚拟DIE1211内部的结构参照图2,如图5中,将原先的DIE 0拆分为现在的Virtual DIE 0和Virtual DIE 4,将DIE 1拆分为Virtual DIE 1和Virtual DIE 5,将DIE 2拆分为VirtualDIE 2和Virtual DIE 6,将DIE 3拆分为Virtual DIE 3和Virtual DIE 7,每个虚拟DIE1211均可以看成是一个DIE121,因此可看做是用于建立RAID条带组的DIE121的个数增加了。可以支持DIE数目较小的固态硬盘采用策略一和策略二的RAID保护数据,减小RAID资源开销,达到提升固态硬盘数据保护能力。

以多个虚拟操作单元1211为基准建立多个RAID条带组的步骤包括:对每个虚拟操作单元1211中的多个物理块进行编号;将每个虚拟操作单元1211中,相同块编号的物理块内行号相同的物理页合并为同一个RAID条带组;按照块编号的顺序和行号的顺序建立多个RAID条带组。每个RAID条带组均包括多个占用空间相同的条带,每个虚拟DIE1211的每一行物理页均包括两个物理页,每个条带包括一个或两个物理页。其中一个条带用于存储校验数据,其余的条带用于存储待存储写数据。可以支持DIE数目较大的固态硬盘采用策略一和策略二的RAID保护数据,减小RAID条带长度,提升固态硬盘数据保护能力。

参见图6,选取所有虚拟操作单元1211的同一Block N,将Virtual DIE 0的Page 0的Plane 0以(0,0)表示,Virtual DIE 1的Page 0的Plane 1以(1,1)表示……,那么,以8个虚拟DIE1211的第一行(Page 0)物理页建立的RAID条带组为Stripe 1,该条带组为各个虚拟DIE1211中相同编号的物理块内页号相同的物理页合并而来。以策略一为例,那么,本条带组包括16个条带,(7,1)作为校验信息存储位,其余条带存储数据,相比图3,相同的闪存存储器中,本实施例的RAID条带组中,校验信息占用空间降低为1/16,比原先的1/8节省了一半的空间,因此对RAID的空间需求降低了。8个虚拟DIE1211可以建立多个RAID条带组,整体的校验数据的占用空间均比原先降低了1/2,提升了写数据的占用空间,使数据能得到有效的保护。另外,如果构建更多的虚拟DIE1211(即将一个DIE拆分为3个甚至更多个虚拟DIE),则对空间需求下降更多。

图7示出了根据本发明第二实施例的固态硬盘中闪存存储器内部的示意性结构图。

在第二实施例中,将多个DIE121划分为多个虚拟DIE1211包括:将每至少两个DIE121合并成一个虚拟DIE1211。如图7所示,将原先的2个DIE121合并为一个虚拟DIE1211,以原先的存储颗粒包含8个DIE为例,合并后,形成4个虚拟DIE。以策略一为例,建立RAID条带组时,条带组的长度降低,校验信息占用空间增多。对于本身存储空间很大的固态硬盘,由于每一行物理页均能组成RAID条带,校验数据增多,那么,数据的出错率降低,数据恢复率提升。

因此,本申请实施例提供的固态硬盘的管理方法和固态硬盘,可以适用于不同的场景中,对DIE数目较小的固态硬盘,可以采用第一实施例的管理方法,减小RAID资源开销,扩大数据存储的空间,使较小容量的固态硬盘可以尽可能多的存储数据,达到提升固态硬盘数据保护能力的效果。也可以支持DIE数目较大的固态硬盘的数据保护,采用第二实施例的管理方法,减小RAID条带长度,减小数据存储的错误率,提升校验率,提升固态硬盘的数据保护能力。还可以根据实际情况随时变换管理方法,对一些固态硬盘采用第一实施例的管理方法,对另一些采用第二实施例的管理方法,提升对固态硬盘关键数据的保护能力。

综上,本发明提供的固态硬盘的管理方法和固态硬盘,通过将闪存存储器内部的DIE划分为多个虚拟操作单元,以此为基础建立RAID条带组,从而增加RAID条带组的长度,对应降低RAID条带组中校验数据的占用空间,降低对RAID空间的需求,提升数据保护能力和管理能力,提高固态硬盘的读写效率和质量。

依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于多副本缓存动态伸缩分布的方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类