为多命名空间提供不同数据保护级别的方法与存储设备与流程

文档序号:25649969发布日期:2021-06-29 19:54阅读:108来源:国知局
为多命名空间提供不同数据保护级别的方法与存储设备与流程

1.本申请涉及存储设备,具体地,涉及为具有多个命名空间的存储设备提供不同数据保护级别的方法与存储设备。


背景技术:

2.图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serial advanced technology attachment,串行高级技术附件)、scsi(small computer systeminterface,小型计算机系统接口)、sas(serial attached scsi,串行连接scsi)、ide(integrated driveelectronics,集成驱动器电子)、usb(universal serial bus,通用串行总线)、pcie(peripheral component interconnect express,pcie,高速外围组件互联)、nvme(nvm express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个nvm芯片105以及dram(dynamic random access memory,动态随机访问存储器)110。
3.nand闪存、相变存储器、feram(ferroelectricram,铁电存储器)、mram(magnetic random access memory,磁阻存储器)、rram(resistive randomaccess memory,阻变存储器)等是常见的nvm。
4.接口103可适配于通过例如sata、ide、usb、pcie、nvme、sas、以太网、光纤通道等方式与主机交换数据。
5.控制部件104用于控制在接口103、nvm芯片105以及dram 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是fpga(field-programmable gate array,现场可编程门阵列)、asic(application specific integrated circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理io(input/output)命令。控制部件104还可以耦合到dram 110,并可访问dram 110的数据。在dram可存储ftl表和/或缓存的io命令的数据。
6.控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到nvm芯片105,并以遵循nvm芯片105的接口协议的方式向nvm芯片105发出命令,以操作nvm芯片105,并接收从nvm芯片105输出的命令执行结果。已知的nvm芯片接口协议包括“toggle”、“onfi”等。
7.存储器目标(target)是nand闪存封装内的共享ce(chip enable,芯片使能)信号的一个或多个逻辑单元(lun,logic unit)。nand闪存封装内可包括一个或多个管芯(die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(plane)。逻辑单元内的多
个平面可以并行存取,而nand闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。
8.存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
9.在固态存储设备中,利用ftl(flash translation layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
10.存储了从逻辑地址到物理地址的映射信息的表结构被称为ftl表。ftl表是固态存储设备中的重要元数据。通常ftl表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
11.ftl表包括多个ftl表条目(或称表项)。在一种情况下,每个ftl表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一种情况下,每个ftl表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一种情况下,每个ftl表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一种情况下,ftl表中记录逻辑块地址与物理块地址的映射关系,和/或逻辑页地址与物理页地址的映射关系。固态存储设备中包括多个nvm芯片。每个nvm芯片包括一个或多个管芯(die)或逻辑单元(lun)。管芯或逻辑单元之间可以并行响应读写操作。在同一管芯或逻辑单元上的多个读、写或擦除操作顺序执行。
12.大块包括来自多个逻辑单元(lun),也称为逻辑单元组,的每个的物理块。每个逻辑单元可以为大块提供一个物理块。例如,在图2所示出的大块的示意图中,在每16个逻辑单元(lun)上构造大块。每个大块包括16个分别来自16个逻辑单元(lun)的物理块。在图2的例子中,大块0包括来自16个逻辑单元(lun)中的每个逻辑单元的物理块0,而大块1包括来自每个逻辑单元(lun)的物理块1。也可以以多种其他方式来构造大块。申请号为201710752321.0的中国专利申请公开了可变长度的大块,将其全文通过引用合并于此。
13.作为一种可选的方式,在大块中构造页条带,每个逻辑单元(lun)内相同物理地址的物理页构成了“页条带”。图2中,大块0的物理页p0-0、物理页p0-1
……
与物理页p0-x构成了页条带0,其中物理页p0-0、物理页p0-1
……
物理页p0-6用于存储用户数据,而物理页0-x用于存储根据条带内的所有用户数据计算得到的校验数据。类似地,图2中,大块0的物理页p2-0、物理页p2-1
……
与物理页p2-x构成了页条带2。可选地,用于存储校验数据的物理页可以位于页条带中的任意位置。
14.为向页条带写入数据,存储设备的控制部件(104)(也参看图1)提供校验数据计算器。以利用异或操作计算校验数据为例,对于包括n+1个物理页的页条带,对n个物理页的用户数据计算异或(例如,(p0-0)xor(p0-1)xor(p0-2)xor

xor(p0-(n-1))),并将计算结果写入为页条带存储校验数据的物理页(例如p0-n)。可选地,在控制部件(104)中提供多个校验数据计算器(例如,m个),以同时向m个页条带写入数据。校验数据计算器使用缓存(例如,xor缓存)记录校验数据的中间结果。
15.页条带的校验数据用于保护页条带的用户数据。生成校验数据的方式定义了数据
保护级别。例如在raid(redundant arrays of independent drives,独立冗余磁盘阵列)技术中包括raid1-5、raid10、raid11等数据保护级别。
16.图3展示了存储设备为页条带生成校验数据的示意图。
17.待写入nvm的数据被缓存在dram(图3中展示为数据d1、d2与d3)。作为举例,存储设备的数据保护级别是“3+1”,为每三份数据生成一份校验数据,在页条带中记录该三份数据及其校验数据。
18.控制部件的cpu将dram中的例如数据d1提供给介质接口控制器。介质接口控制器将数据d1写入nvm。介质接口控制器还为数据d1生成中间校验数据dx,并记录在xor缓存中。作为举例,数据d1是页条带的第1份数据,xor缓存被初始化为0,以及使用xor缓存所存储的数据同数据d1做异或,并用计算结果更新xor缓存。
19.接下来cpu还将dram中的数据d2提供给介质接口控制器。介质接口控制器将数据d2写入nvm。介质接口控制器还使用xor缓存所存储的数据同数据d2做异或以生成新的中间校验数据dx,并用计算结果更新xor缓存。接下来cpu还将dram中的数据d3提供给介质接口控制器。介质接口控制器将数据d3写入nvm。介质接口控制器还使用xor缓存所存储的数据同数据d3做异或以生成新的校验数据dx,并用计算结果更新xor缓存。
20.以及cpu还指示介质接口控制器将xor缓存中的数据dx写入nvm,并且被nvm的数据d1、d2、d3与dx位于同一页条带。
21.可选地,cpu还指示介质接口控制器将xor缓存的数据搬移到dram。
22.通常存储设备具有确定的数据保护级别,并且按确定的数据保护级别对存储设备实施格式化。要改变存储设备的数据保护级别,也需要对存储设备重新格式化。在cpu的控制下,通过图3的介质接口控制器能够根据多种数据保护级别生成校验数据。
23.nvme协议中还定义了命名空间ns(namespace)。大小为n的命名空间是具有从0到n-1的逻辑页地址的逻辑页集合。通过命名空间id(namespace id)能够唯一标识命名空间。


技术实现要素:

24.命名空间(ns)向耦合到存储设备的主机展示出多个虚拟的存储设备,尽管这些虚拟存储设备可能由同一存储设备提供,但每个ns被主机视作独立的虚拟存储设备。从而主机希望为对一个或多个ns独立的实施格式化,并且希望各ns提供有差异化的功能或性能,例如,希望各ns具有不同的数据保护级别,并且能调整一个或多个ns的数据保护级别而不影响同该一个或这些ns属于相同存储设备的其他ns的使用。
25.存储设备中共存的多种数据保护级别需要多种产生校验数据的方式。用cpu控制介质接口控制器的对每份用户数据生成校验数据的过程提供了最大的灵活性,也为cpu引入了最大的工作负担。用介质接口控制器的硬件计算校验数据提供了更好的性能,但又缺乏灵活性,通常要针对确定的数据保护级别设计并提供硬件电路来计算校验数据,硬件难以适应数据保护级别的变化。因而需要为提供多种数据保护级别而在性能与灵活性之间获得合理平衡。
26.根据本申请的第一方面,提供了根据本申请第一方面的一种生成写入数据的方法,包括如下步骤:获取页条带的数据保护级别m和介质接口控制器的数据处理能力n;在m大于n+1时,执行以下步骤:向介质接口控制器提供n份用户数据,使介质接口控制器为所述
n份用户数据生成中间校验数据;将所述n份数据写入所述页条带;向介质接口控制器提供n-1份用户数据与所述中间校验数据,根据所述n-1份用户数据和中间校验数据生成校验数据dy;判断提供给介质接口控制器的用户数据与中间校验数据之和是否已达到m-1份数据;如果是,则指示介质接口控制器将生成的校验数据dy写入所述页条带。
27.根据本申请的第一方面的第一种方法,其中若提供给介质接口控制器的用户数据与中间校验数据之和未达到m-1份数据,继续执行向介质接口控制器提供n-1份用户数据与所述中间校验数据的步骤,及其后续步骤。
28.根据本申请的第一方面的第一或第二种方法,其中若向介质接口控制器提供的用户数据不足n-1份,还获取指定数据,以使得获取的指定数据和向介质接口控制器提供的用户数据的和满足n-1份。
29.根据本申请的第一方面的第三种方法,其中指定数据是全零数据或随机数据。
30.根据本申请的第一方面的第一到第四种方法,其中向介质接口控制器指示中间校验数据dx具有占位标记,作为响应,介质接口控制器在将数据写入所述页条带时,具有占位标记的数据不被写入所述页条带。
31.根据本申请的第一方面的第一到第五种方法,其中向介质接口控制器指示中间校验数据dx与所述指定数据具有占位标记,作为响应,介质接口控制器在将数据写入所述页条带时,具有占位标记的数据不被写入所述页条带。
32.根据本申请的第一方面的第一到第六种方法,,其中为指定数据标记占位标记,在将数据写入所述页条带时,具有占位标记的数据不被写入。
33.根据本申请的第一方面的第一到第七种方法,其中m和n满足以下关系:m=n+m+1,其中m、n与m为正整数,且n>1。
34.根据本申请的第一方面的第一到第八种方法,其中若m小于n,执行以下步骤:向介质接口控制器提供m-1份用户数据;获取指定数据,以使得获取的指定数据和所述m-1份用户数据的和满足n份;为所述m-1份用户数据和所述指定数据生成校验数据dx;将m-1份用户数据和校验数据dx写入所述页条带。
35.根据本申请的第一方面的第九种方法,其中所述向介质接口控制器提供m-1份用户数据时,若用户数据不足m-1份,还获取第二指定数据,使得获取的用户数据与第二指定数据之和为m-1份。
36.根据本申请的第二方面,提供了根据本申请第二方面的一种存储设备,包括控制部件,执行如上所述的方法。
37.根据本申请的第三方面,提供了根据本申请第三方面的一种存储设备,包括cpu、介质接口控制器、dram和页条带,其中:dram,缓存待写入nvm的用户数据;cpu,根据介质接口控制器的数据处理能力n,将n份dram中缓存的数据提供给介质接口控制器;介质接口控制器在判断m大于n时,执行以下步骤:缓存n份用户数据,并为所述n份用户数据生成中间校验数据dx,将所述n份数据写入所述页条带;介质接口控制器缓存n-1份用户数据,根据所述n-1份用户数据和中间校验数据dx生成校验数据dy;判断是否已经为m-1份数据生成了最终校验数据。
38.根据本申请的第四方面,提供了根据本申请第四方面的一种生成多种保护级别数据的方法,包括如下步骤:响应于向命名空间中写入数据的写命令,获得所述写命令所要写
入的命名空间;查询命名空间表,获得所述写命令所指示的命名空间的命名空间配置信息;从命名空间配置信息中获得所述写命令所指示的命名空间的数据保护级别m与物理地址空间;从所述物理地址空间分配根据数据保护等级所构造的大块;从所述大块中分配可承载数据的页条带;若m大于n+1,执行以下步骤,其中n为介质接口控制器的数据处理能力:向介质接口控制器提供n份用户数据,使介质接口控制器为所述n份用户数据生成中间校验数据;将所述n份数据写入所述页条带;向介质接口控制器提供n-1份用户数据与所述中间校验数据,根据所述n-1份用户数据和中间校验数据生成校验数据dy;若提供给介质接口控制器的用户数据与中间校验数据之和已达到m-1份数据则指示介质接口控制器将生成的校验数据dy写入所述页条带。
39.根据本申请的第四方面的第一种方法,其中还包括步骤:在所述写命令所指示的命名空间所对应的ftl表的相应部分中记录所述写命令要访问的地址以及为所述命名空间所分配的页条带中承载写入数据的物理地址。
40.根据本申请的第四方面的第二种方法,其中若提供给介质接口控制器的用户数据与中间校验数据之和未达到m-1份数据,继续执行向介质接口控制器提供n-1份用户数据与所述中间校验数据的步骤,及其后续步骤。
41.根据本申请的第四方面的第一到第三种方法,其中若向介质接口控制器提供的用户数据不足n-1份,还获取指定数据,以使得获取的指定数据和向介质接口控制器提供的用户数据的和满足n-1份。
42.根据本申请的第四方面的第五种方法,其中指定数据是全零数据或随机数据。
43.根据本申请的第四方面的第一到第六种方法,其中向介质接口控制器指示中间校验数据dx具有占位标记,作为响应,介质接口控制器在将数据写入所述页条带时,具有占位标记的数据不被写入所述页条带。
44.根据本申请的第四方面的第一到第七种方法,其中向介质接口控制器指示中间校验数据dx与所述指定数据具有占位标记,作为响应,介质接口控制器在将数据写入所述页条带时,具有占位标记的数据不被写入所述页条带。
45.根据本申请的第四方面的第一到第吧种方法,其中为指定数据标记占位标记,在将数据写入所述页条带时,具有占位标记的数据不被写入。
46.根据本申请的第四方面的第一到第九种方法,其中m和n满足以下关系:m=n+m+1;其中m、n与m为正整数,且n>1。
47.根据本申请的第四方面的第一到第十种方法,其中若m小于n,执行以下步骤:向介质接口控制器提供m-1份用户数据;获取指定数据,以使得获取的指定数据和所述m-1份用户数据的和满足n份;为所述m-1份用户数据和所述指定数据生成校验数据dx;将m-1份用户数据和校验数据dx写入所述页条带。
48.根据本申请的第四方面的第十一种方法,其中所述向介质接口控制器提供m-1份用户数据时,若用户数据不足m-1份,还获取第二指定数据,使得获取的用户数据与第二指定数据之和为m-1份。
49.根据本申请的第五方面,提供了根据本申请第五方面的一种生成多种保护级别数据的方法,包括如下步骤:响应于向命名空间中写入数据的写命令,获得所述写命令所要写入的命名空间;查询命名空间表,获得所述写命令所指示的命名空间的命名空间配置信息;
从命名空间配置信息中获得所述命名空间的数据保护级别。
50.根据本申请的第五方面的第一方法,其中还从命名空间配置信息中获得物理地址空间;从所述物理地址空间分配根据数据保护等级所构造的大块;从所述大块中分配可承载数据的页条带。
51.根据本申请的第六方面,提供了根据本申请第六方面的一种向命名空间中写入数据的方法,包括如下步骤:响应于向命名空间中写入数据的写命令,获得所述写命令所要写入的命名空间;查询命名空间表,获得所述写命令所指示的命名空间的命名空间配置信息;从命名空间配置信息中获得所述命名空间的数据保护级别与物理地址空间;从所述物理地址空间分配根据数据保护等级所构造的大块;从所述大块中分配可承载数据的页条带;将所述写命令所指示的用户数据写入分配的页条带。
52.根据本申请的第六方面的第一种方法,其中介质接口控制器根据所述写命令所指示的命名空间的数据保护级别为所述用户数据生成校验数据,并将所述校验数据写入所述页条带。
53.根据本申请的第六方面的第一、第二种方法,其中还包括步骤:在所述写命令所指示的命名空间所对应的ftl表的相应部分中记录所述写命令要访问的地址以及为所述命名空间所分配的页条带中承载写入数据的物理地址。
54.根据本申请的第六方面的第二到第三种方法,其中若流经介质接口控制器的用户数据的个数小于命名空间配置信息中所记录的生成校验数据的用户数据个数,则存储的校验数据是中间结果。
55.根据本申请的第六方面的第四种方法,其中使用中间结果和向命名空间中新写入的数据生成校验数据。
56.根据本申请的第六方面的第一到第五种方法,其中在流经介质接口控制器的用户数据的个数等于命名空间配置信息中所记录的生成校验数据的用户数据个数时,生成所述命名空间所对应的页条带的校验数据,将所述校验数据写入所述命名空间所对应的物理存储空间,并占据所述页条带的校验数据页。
57.根据本申请的第七方面,提供了根据本申请第七方面的一种为多命名空间提供不同数据保护级别的存储设备,其特征在于,包括:存储了命名空间表的控制部件、ftl表,以及一个或多个nvm芯片;其中控制部件执行如上所述的方法。
58.根据本申请的第七方面的第一种设备,其中命名空间表包括至少一个条目,每个条目内记录存储设备提供的命名空间之一的配置信息。
59.根据本申请的第七方面的第一种设备,其中配置信息中包括命名空间的存储容量、命令空间的数据保护级别、使用的ftl表以及物理地址范围的一个或多个。
60.根据本申请的第七方面的第一种设备,其中存储设备还包括dram。
61.根据本申请的第七方面的第一到第四种设备,其中ftl表包括多个部分,每个部分为存储设备提供的命名空间之一提供从逻辑地址到物理地址的转换。
62.根据本申请的第七方面的第一到第五种设备,其中命名空间表的条目中记录该条目对应的命名空间所使用的ftl表的部分。
63.根据本申请的第七方面的第一到第六种设备,其中nvm芯片提供了存储设备的物理地址空间。
64.根据本申请的第七方面的第一到第七种设备,其中物理地址空间被分为多个部分,每个部分同命名空间一一对应。
65.根据本申请的第七方面的第一到第八种设备,其中在命名空间被创建时,根据命名空间的存储空间大小以及数据保护级别,确定为该命名空间所分配的物理地址空间的大小。
66.根据本申请的第七方面的第一到第九种设备,其中根据命名空间的存储空间大小以及数据保护级别在nvm芯片中构造大块。
67.根据本申请的第七方面的第十种设备,,其中数据保护级别指示所采用的错误校验方式。
68.根据本申请的第七方面的第八到第九种设备,其中命名空间的配置信息中记录了所占用的物理地址空间的大块数量、大块的构造方式以及大块编号同物理地址的对应关系中的一个或多个。
69.根据本申请的第七方面的第一到第十种设备,其中为命名空间分配的物理地址空间大于、等于或小于命名空间所需要的存储空间。
70.根据本申请的第七方面的第十一种设备,其中在为命名空间分配的物理地址空间大于该命名空间所需要的存储空间时,额外的存储空间用于为对该命令空间所分配的物理地址空间进行垃圾回收时提供可用的大块和/或为所述命名空间提供额外的存储空间以便写入更多的数据。
71.根据本申请的第七方面的第十一到第十二种设备,其中在为命名空间分配的物理地址空间小于该命名空间所需要的存储空间时,根据写入该命令空间所分配的物理地址空间的数据量,动态调整为其分配的存储空间的大小,并根据调整的结果更新该命名空间的配置信息。
72.根据本申请的第八方面,提供了根据本申请一种创建命名空间的方法,其特征在于,包括如下步骤:响应于创建命名空间的命令,从所述命令空间获得要创建的命名空间的大小;为所述命令空间分配物理存储空间。
73.根据本申请的第八方面的第一种方法,其中依据要创建的命名空间的大小和数据保护级别为所述命名空间分配物理存储空间。
74.根据本申请的第八方面的第一种方法,其中数据保护级别从所述命令中获得,或者使用预定的数据保护级别。
75.根据本申请的第八方面的第一种方法,其中从存储设备的未被使用的物理地址空间中为所述命令空间分配物理地址空间。
76.根据本申请的第八方面的第四种方法,其中为所述命名空间分配的物理地址空间等于、小于或大于所述命令空间依据要创建的命名空间的大小和数据保护级别所请求的物理地址空间。
77.根据本申请的第八方面的第五种方法,其中所述命令指示要创建的命名空间所需要的额外的存储空间。
78.根据本申请的第八方面的第六种方法,其中所有命名空间共享未被分配的物理地址空间。
79.根据本申请的第八方面的第七种方法,其中在命名空间的配置信息中记录分配给
所述命名空间的大块。
80.根据本申请的第八方面的第八种方法,其中在物理存储空间中构造一个或多个大块,每个大块具有其被分配给的命名空间的数据保护级别。
81.根据本申请的第八方面的第九种方法,其中创建大块表,记录分配给指定命名空间的一个或多个大块。
82.根据本申请的第八方面的第九种方法,其中大块表的条目中记录大块的物理地址、存储校验数据的物理块的位置以及坏块标记的一个或多个。
83.根据本申请的第八方面的第九种方法,其中在命名空间表中添加条目,以记录所创建的命名空间的配置信息。
84.根据本申请的第八方面的第九种方法,其中命名空间的配置信息中包括命名空间的存储空间大小、数据保护级别、分配的物理地址空间、额外存储空间大小或比例、和/或所述物理地址空间的大块表。
85.根据本申请的第九方面,提供了根据本申请第九方面的一种删除命名空间的方法,包括如下步骤:响应于删除命名空间的命令,从所述命令中获得命名空间标识;根据所述命名空间标识从命名空间表中获取所述命令空间标识相对应的条目;从所述条目中获得分配给所述命名空间的物理地址空间和大块;删除所述条目;将所述大块标记为未使用。
86.根据本申请的第九方面的第一种方法,其中响应于所述大块标记为未使用,擦除所述大块中记录的数据。
附图说明
87.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
88.图1是相关技术中固态存储设备的框图;
89.图2是相关技术中大块的示意图;
90.图3展示了根据本申请一个实施例的主机与存储设备的框图;
91.图4展示了根据本申请另一个实施例的主机与存储设备的框图
92.图5展示了根据本申请实施例向ns写入数据的流程的示意图;
93.图6展示了根据本申请实施例的处理写命令的流程图;
94.图7展示了根据本申请实施例创建ns的流程图;
95.图8展示了存储设备为页条带生成校验数据的示意图;
96.图9a、图9b、图9c展示了根据本申请实施例的存储设备为页条带生成校验数据的示意图;
97.图10展示了根据本申请一实施例的向页条带写入数据的流程图;
98.图11展示了根据本申请另一实施例的向页条带写入数据的流程图。
具体实施方式
99.下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整
地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
100.图4展示了根据本申请实施例的主机与存储设备的框图。
101.参看图4,主机同存储耦合。主机通过访问存储设备提供的多个命名空间(例如,ns 0、ns 1、ns 2与ns 3)而访问存储设备。命名空间是根据例如nvme协议而提供的命名空间。
102.根据本申请实施例,存储设备提供的命名空间具有相同或不同的命名空间配置。命名空间配置包括例如命名空间的存储容量大小、命名空间的数据保护级别、使用的ftl表、物理地址范围等。
103.存储设备包括控制部件、一个或多个nvm芯片与可选地dram。一些实施方式中,控制部件内部集成存储器而无须在存储设备中另外地设置dram。又一些实施方式中,控制部件使用主机提供的dram。dram用于存储缓存为用户数据生成的校验数据。
104.根据本申请的实施例,控制部件还包括命名空间表(简记为ns表)。ns表包括多个条目,ns表的每个条目记录存储设备提供的命名空间之一的配置信息。
105.可选地,ftl表包括多个部分,每个部分用于为存储设备提供的ns之一提供从逻辑地址到物理地址的转换。例如,ns表的条目中记录该ns所使用的ftl表的部分(例如ftl表在dram中的起始地址)。依然作为举例,根据ns的编号与存储空间大小,计算出该ns所使用的ftl表的部分。
106.可选地,存储设备的一个或多个nvm芯片提供了存储设备的物理地址空间。物理地址空间被分为多个部分(每部分简记为nvm空间,例如,nvm空间0、nvm空间1、nvm空间2与nvm空间3,物理地址空间还包括未被分配的nvm空间)。被分配的nvm空间同ns一一对应。
107.在ns被创建时,根据ns的存储空间大小以及数据保护级别,确定为该被创建的ns分配的nvm空间大小。例如,ns的存储空间为100gb,而数据保护级别为“5+1”,那么分配的nvm空间需要100gb存储用户数据,还需要额外20gb存储校验数据,从而分配的nvm空间至少需要120gb存储空间。在ns配置信息中还记录了分配的例如120gb存储空间的物理地址范围。
108.数据保护级别也对应于nvm空间的大块的构造方案。根据数据保护级别在nvm空间中构造大块。例如,创建的ns的数据保护级别为“2+1”,那么所构造的大块包括3个物理块,其中2个物理块存储用户数据而1个物理块存储校验数据。作为又一个例子,创建的ns的数据保护级别为“a+b”,那么所构造的大块包括a+b个物理块,其中a个物理块存储用户数据而b个物理块存储校验数据,其中a与b均为正整数。进一步可选地,属于相同大块的各物理块,分别由不同的逻辑单元(lun)提供,以确保大块的数据访问的并行性。
109.可选地,数据保护级别还指示所采用的错误校验方式。例如,通过对用户数据的异或计算得到校验数据,或者对用户数据实施rs编码得到校验数据。
110.ns配置信息还记录了例如nvm空间的大块数量、大块的构造方式以及大块编号同物理地址的对应关系等。
111.进一步可选地,分配的nvm空间大于存储ns的用户数据与校验数据所需的存储空间,额外的存储空间用于为nvm空间进行垃圾回收时提供可用的大块。一些ns还有写入数据量的需求。由于nvm芯片具有有限的擦写次数,通过为ns分配的nvm空间提供给更多的额外
存储空间,也用于承载更多的写入数据量。
112.依然可选地,分配的nvm空间小于存储ns的用户数据与校验数据所需的存储空间。在ns被使用的初期,用户写入ns的数据量较少或尚未向ns写入数据,此时为ns分配较少的nvm空间,使得存储设备得以向其他ns提供更多的大块,从而提高存储设备的物理存储资源的利用率。当用户向ns写入了更多的数据,为同该ns对用的nvm空间提供更多的大块,以增加分配的nvm空间。并且更新ns配置信息来记录分配给其nvm空间的大块。进一步可选地,当用户删除了其ns中的数据,或识别出ns中记录的有效数据较少,也释放分配给对应的nvm空间的大块,以及也更新ns配置信息来记录分配给其nvm空间的大块。
113.介质接口控制器根据要写入nvm空间的用户数据生成校验数据,并在dram中缓生成的存校验数据。例如,数据保护级别为a+b,需要a页用户数据才生成b页校验数据。而在收到全部a页用户数据前,对每页用户数据计算的校验数据被缓存在dram中。图3中展示了dram为ns0~ns3所生成并缓存的校验数据。可以理解地,响应于b页校验数据被最终生成,介质接口控制器将b页校验数据写入存储了a页用户数据的大块。以及还释放b页校验数据所占用的dram存储空间。
114.图5展示了根据本申请实施例向ns写入数据的流程的示意图。
115.例如,主机向ns 0写入数据(图5中,由(1)指示)。写入数据的命令(简称为写命令)被发送给存储设备的控制部件(图5中,由(2)指示)。写命令指示了要访问的地址以及ns。控制部件根据写命令指示的ns查询ns表(图5中,由(3)指示),得到该ns的ns配置信息。从ns配置信息中得到该ns的数据保护级别(例如“2+1”)与nvm空间(例如,nvm空间0)。从nvm空间0分配根据数据保护等级“2+1”所构造的大块,以及从该大块中分配可承载数据的页条带。介质接口控制器将该写命令所指示的用户数据写入分配的页条带(图5中,由(5)指示)。随着写命令所指示的用户数据流经介质接口控制器,介质接口控制器还根据ns0的数据保护等级“2+1”为其生成校验数据,生成的校验被存储在dram中(图5中,由(4)指示)。
116.以及还在同ns0对应的ftl表中记录写命令要访问的地址与分配的页条带中承载写入数据的物理地址,从而主机接下来通过读命令访问所写入的数据时,通过ns0对应的ftl表得以获取该物理地址,从该物理地址读出之前写入的数据。读命令指示了ns。用读命令指示的ns访问ns表得到ns配置信息,ns配置信息指示了该ns所对应的ftl。可选地,根据读命令访问的ns编号与地址查询ftl表,而无须查找ns表,例如,将ns编号与地址按位拼接后作为访问ftl表的索引。
117.若流经介质接口控制器的用户数据尚不满页条带所需的“2”页,dram中记录的校验数据是校验数据的中间结果。当用户下次向ns 0写入数据时,介质接口控制器使用dram缓存的校验数据的中间结果与用户向ns 0新写入的数据继续生成校验数据(图5中未示出)。响应于流经介质接口控制器的用户数据填满了页条带所需的“2”页,用于该页条带的校验数据也随之被介质接口控制器生成,继而将dram中的该校验数据也写入nvm空间0,并占据该页条带所需的“1”页校验数据。
118.依然作为举例,主机又向ns 2写入数据(图5中,由(6)指示)。写命令被发送给存储设备的控制部件(图5中,由(7)指示)。写命令指示了要访问的地址以及ns。控制部件根据写命令指示的ns查询ns表(图4中,由(8)指示),得到该ns 2的ns配置信息。从ns配置信息中得到该ns的数据保护级别(例如“15+1”)与nvm空间(例如,nvm空间2)。从nvm空间2分配根据数
据保护等级“15+1”所构造的大块,以及从该大块中分配可承载数据的页条带。介质接口控制器将该写命令所指示的用户数据写入分配的页条带(图5中,由(10)指示)。随着写命令所指示的用户数据流经介质接口控制器,介质接口控制器还根据ns 2的数据保护等级“15+1”为其生成校验数据,生成的校验被存储在dram中(图5中,由(9)指示)。
119.若流经介质接口控制器的要写入ns 2的用户数据尚不满页条带所需的“15”页,dram中记录的校验数据是校验数据的中间结果。当用户下次向ns 2写入数据时,介质接口控制器使用dram缓存的校验数据的中间结果与用户向ns 2新写入的数据继续生成校验数据(图5中未示出)。响应于流经介质接口控制器的要写入ns 2的用户数据填满了页条带所需的“15”页,用于该页条带的校验数据也随之被介质接口控制器生成,继而将dram中的该校验数据也写入nvm空间2,并占据该页条带所需的“1”页校验数据。
120.图6展示了根据本申请实施例的处理写命令的流程图。
121.根据本申请实施例,主机向存储设备发出写命令以在存储设备中写入数据。
122.参看图6,存储设备的控制部件收到写命令,根据写命令要访问的命名空间(ns),从ns表中获取要访问的命名空间(ns)的ns配置信息,根据获取的ns配置信息,分配物理地址以及获取要访问的命名空间(ns)的数据保护级别;根据获取的数据保护级别计算校验数据,从而将数据写入nvm。
123.图7展示了根据本申请实施例创建ns的流程图。
124.根据本申请实施例的存储设备提供创建ns的命令。主机向存储设备发出创建ns命令以在存储设备中创建ns。创建ns命令指示要创建的ns的大小与可选地数据保护级别。可选地,创建ns命令可以不指示数据保护级别,而由存储设备使用默认的数据保护级别创建ns。
125.参看图7,控制部件收到创建ns命令,从创建ns命令提取要创建的ns的存储空间大小与可选地数据保护级别。
126.控制部件作为响应,为要创建的ns分配nvm空间。根据ns命令指示的存储空间大小与数据保护级别确定要要分配的nvm空间大小。从存储设备的未被使用的nvm空间中为该ns分配nvm空间。例如,要创建的ns的存储空间大小为200gb,数据保护级别是“15+1”,则分配的nvm空间大小至少为200gb+13.4gb+额外存储空间大小。可选地,分配的nvm空间大小小于200gb,当用户向该ns写入的数据达到或接近200gb时,再为该nvm空间分配额外的大块。
127.可选地,ns命令还指示要创建的ns所需要的额外的存储空间。例如,默认为所创建的ns提供相当于ns的存储空间大小10~20%的额外存储空间,而ns命令可以指示其他数量的额外存储空间。依然可选地,不为ns分配额外的存储空间,而是各ns共享存储设备的未被分配的nvm空间。例如,响应于ns 0需要从额外的大块来接收垃圾回收产生的数据,从未被分配的nvm空间分配大块c,并在ns 0的ns配置表中记录大块c已被分配给ns 0。
128.可选地,控制部件还在nvm空间中构造一个或多个大块,所构造的大块满足创建ns命令所指示的数据保护等级。进一步可选地,创建大块表来记录分配给指定nvm空间的一个或多个大块,大块表的条目记录大块的物理地址、存储校验数据的物理块的位置、坏块标记等。
129.控制部件还在ns表中添加条目,以记录所创建的ns的配置信息。ns配置信息包括ns的存储空间大小、数据保护级别、分配的nvm空间、额外存储空间大小或比例、和/或该nvm
空间的大块表等。
130.根据本申请的又一实施例,存储设备提供删除ns的命令。主机向存储设备发出删除ns命令以在存储设备中删除ns。删除ns命令指示要创建的ns的编号或标识符。
131.控制部件收到删除ns命令,从删除ns命令提取要删除的ns的例如编号。用ns编号访问ns表,以从ns表中获取并删除同该ns编号对应的条目。以及还根据获取的ns表的条目,得到分配给该ns的nvm空间及其大块,将这些大块标记为未被使用,从而这些大块可被分配给其他ns。进一步可选地,响应于将这些大块标记为未被使用,还擦除这些大块中记录的数据。
132.不同的数据保护级别对应了校验数据的不同生成方式。在控制部件的控制下,通过图3-图5的介质接口控制器能够根据多种数据保护级别生成校验数据。
133.图3的例子中,对每份数据从dram到nvm的搬移都需要cpu参与,从而为cpu引入了较大的负载。希望减少为数据生成校验数据并写入nvm芯片的过程中cpu的负载。
134.图8展示了又一存储设备为页条带生成校验数据的示意图。
135.图8的例子中,cpu将写入页条带所需的所有用户数据一次性提供给介质接口控制器,从而减少向页条带写入数据过程中cpu参与的次数,以相对于图3的技术方案减轻cpu的负载。作为举例,cpu一次性将n份数据通过介质接口控制器写入nvm芯片。介质接口控制器一次性对连续接收的n份数据(图8中作为举例,n=3,并展示为数据d1、d2与d3)计算校验数据,生成的校验数据被存储在xor缓存(记为数据dx)。介质接口控制器还将连续接收的n份数据作为用户数据写入nvm的页条带。介质接口控制器还将xor缓存的数据dx写入nvm,作为页条带的校验数据。并且数据d1、d2与d3与校验数据dx被存储于相同的页条带。
136.下面以存储设备的数据保护级别为“3+1”为例,描述图8的实施例中为每三份数据生成一份校验数据,并在nvm芯片的页条带中记录该三份数据及其校验数据的过程。
137.参看图8,待写入nvm的数据(数据d1、d2与d3)被缓存在dram(图8中未示出)。控制部件的cpu根据指定的数据保护级别将dram中的n份(n=3)数据(d1、d2与d3)从dram搬移到控制部件(图8中由(1)指示),并提供给介质接口控制器(图8中由(2)指示)。介质接口控制器将数据d1、d2与d3写入nvm芯片中的页条带(图8中由(3)指示)。介质接口控制器还为数据d1、d2与d3生成校验数据dx,并记录在xor缓存中(图8中由(4)指示)。可以理解地,图8中由(3)所指示的操作与由(4)所指示的操作可同时被实施。介质接口控制器还将xor缓存中生成的校验数据dx写入nvm芯片(图8中由(5)指示),在nvm芯片中,数据d1、d2、d3与校验数据dx位于相同的页条带。
138.作为举例,xor缓存被初始化为0,介质接口控制器操作数据d1、d2与d3依次与xor缓存所存储的数据做异或,并用计算结果更新xor缓存。在数据d1、d2与d3都同xor所存储的数据完成异或操作后,xor缓存中的数据dx为同数据d1、d2与d3对应的校验数据dx。
139.可选地,介质接口控制器将xor缓存初始化为数据d1,并操作数据d2与d3依次与xor缓存所存储的数据做异或,并用计算结果更新xor缓存。在数据d2与d3都同xor所存储的数据完成异或操作后,xor缓存中的数据dx为同数据d1、d2与d3对应的校验数据dx。
140.根据图8的实施例,介质接口控制器对确定的n份数据计算校验数据,n对应于数据保护级别。从而cpu向介质接口控制器指示的将数据写入nvm芯片并生成校验数据的命令也指示确定的数据保护级别,例如“n+1”。从而为生成一组页条带的数据的过程中,cpu仅介入
一次,生成一条命令提供给介质接口控制器,其中指示了n份数据与页条带的物理地址。在另一个例子中,cpu还单独地向介质接口控制器指示将xor缓存中的数据写入页条带。
141.可选地,cpu还指示介质接口控制器将xor缓存的数据搬移到dram。
142.图8的实施例中,介质接口控制器仅针对指定的数据保护级别向页条带写入数据,当存储设备需要提供多种不同的数据保护级别,需要对图8的实施例进行改进。
143.图9a、图9b与图9c展示了根据本申请实施例的存储设备为页条带生成校验数据的示意图。在图9a的实施例中,cpu操作介质控制器向具有多种不同数据保护级别的页条带写入数据。
144.图9a的例子中,介质接口控制器的处理能力在于对n份数据(作为举例,n=3)计算校验数据,生成的校验数据被存储在xor缓存)。介质接口控制器还将n份数据作为用户数据写入nvm的页条带。介质接口控制器还将xor缓存的数据dx写入nvm,作为页条带的校验数据。
145.需要的数据保护级别是例如n+m+1(作为举例,n=3,m=2),为每5份数据生成1份校验数据,5份数据同其校验数据被记录在相同的页条带。
146.参看图9a,待写入nvm的数据(数据d1、d2与d3)被缓存在dram(图9a中未示出)。控制部件的cpu根据指定的数据保护级别将dram中的n份(n=3)数据(d1、d2与d3)从dram搬移到控制部件(图9a中由(1)指示),并提供给介质接口控制器(图9a中由(2)指示)。介质接口控制器将数据d1、d2与d3写入nvm芯片中的页条带(图9a中由(3)指示)。介质接口控制器还为数据d1、d2与d3生成校验数据dx,并记录在xor缓存中(图9a中由(4)指示)。介质接口控制器还将xor缓存中生成的校验数据dx搬移到dram(图9a中由(5)指示)。
147.继续参看图9b,待写入nvm的其他数据(数据d4与d5)也被缓存在dram(图9b中未示出)。由于介质接口控制器接受的数据保护等级为n(n=3),cpu将校验数dx与数据(d4与d5)从dram搬移到控制部件(图9b中由(6)与(7)指示)。校验数据dx是在图9a所展示的处理过程中,由控制部件生成,并被搬移到dram的。在图9b的例子中,cpu将dram中的校验数据dx与待写入nvm的数据d4与d5组成介质接口控制器为生成校验数据可接受的n份数据(n=3),从而在介质接口控制器看来,其依然仅需处理对n份数据生成校验的操作。
148.根据图9b的实施例,cpu向介质接口控制器指示将校验数dx与数据(d4与d5)写入nvm时,还为校验数据dx提供“占位”标记(图9b中由数据dx的阴影线所指示)。由于校验数据dx具有“占位”标记,介质接口控制器使用带有“占位”标记的数据计算校验数据,但不将带有“占位”标记的数据写入nvm。具体地,参看图9b,介质接口控制器将数据d4与d5写入nvm芯片中的页条带(图9b中由(8)指示)(数据dx因带有占位标记,而未被写入nvm芯片)。介质接口控制器还为数据d4、d5与dx生成校验数据dy,并记录在xor缓存中(图9b中由(9)指示)。介质接口控制器还将xor缓存中生成的校验数据dy搬移到dram(图9b中由(10)指示)。至此,nvm芯片中被写入了数据d1-d5以及校验数据dy,这些数据与校验数据构成了完整的页条带。
149.可选地介质接口控制器还将xor缓存中生成的校验数据dy搬移到dram。
150.作为举例,cpu向介质接口控制器提供数据d4、d5与dx以生成校验数据dy之前,xor缓存被初始化为0,介质接口控制器操作数据dx、d4与d5依次与xor缓存所存储的数据做异或,并用计算结果更新xor缓存。在数据dx、d4与d5都同xor所存储的数据完成异或操作后,
xor缓存中的数据dy为同数据dx、d4与d5对应的校验数据dy。
151.可选地,响应于cpu向介质接口控制器提供数据d4、d5与dx以生成校验数据dy,介质接口控制器将xor缓存初始化为接收到的该组n(n=3)份数据中的第一份数据(例如,数据dx),并操作数据d4与d5依次与xor缓存所存储的数据做异或,并用计算结果更新xor缓存。在数据d4与d5都同xor所存储的数据完成异或操作后,xor缓存中的数据dy为同数据d4、d5与dx对应的校验数据dy。进一步地,由于xor缓存被初始化为数据dx,而在图9a的处理后,xor缓存中生成的中间校验数据也为dx,从而在图9b的步骤(6),可以仅将数据d4与d5提供给介质接口控制器,而无须从dram中搬移数据dx。但这样做需要改进介质接口控制器使得接受指示了不同于n份数据(n=3)的命令而能接受指示了n-1份数据且暗示另一份数据是xor缓存中的数据的命令。
152.通过组合图9a与图9b的操作,利用仅接受数据保护等级“n+1”(n=3)的介质接口控制器上实现了写入数据保护等级“3+2+1”的页条带。
153.而通过组合图9a与图9c的操作,则,利用仅接受数据保护等级“n+1”(n=3)的介质接口控制器上实现了写入数据保护等级“3+1+1”的页条带。
154.参看图9c,需要的数据保护级别是例如n+m+1(作为举例,n=3,m=1),为每4份数据生成1份校验数据,4份数据同其校验数据被记录在相同的页条带。而在依据图9a的处理过程为n份数据生成了(中间)校验数据dx后,余下的m份数据与中间校验数据x的组合不足n份数据,图9c的实施例要处理这种情况。
155.继续参看图9c,待写入nvm的其他数据(数据d4)也被缓存在dram(图9b中未示出)。由于介质接口控制器接受的数据保护等级为n(n=3),cpu将校验数dx与数据d4以及全0数据(记为d0’)从dram搬移到控制部件(图9c中由(6)与(7)指示)。校验数据dx是在图9a所展示的处理过程中,由控制部件生成,并被搬移到dram的。在图9c的例子中,cpu将dram中的校验数据dx与待写入nvm的数据d4,以及全0的数据d0’组成介质接口控制器为生成校验数据可接受的n份数据(n=3),从而在介质接口控制器看来,其依然仅需处理对n份数据生成校验的操作。
156.根据图9c的实施例,cpu向介质接口控制器指示将校验数据dx与数据(d4与d0’)写入nvm时,还为校验数据dx与数据d0’提供“占位”标记(图9c中由数据dx与d0’的阴影线所指示)。由于校验数据dx与数据d0’具有“占位”标记,介质接口控制器使用带有“占位”标记的数据计算校验数据,但不将带有“占位”标记的数据写入nvm。具体地,参看图9c,介质接口控制器将数据d4写入nvm芯片中的页条带(图9c中由(8)指示)(数据dx与数据d0’因带有占位标记,而未被写入nvm芯片)。介质接口控制器还为数据d4、d0’与dx生成校验数据dy,并记录在xor缓存中(图9c中由(9)指示)。介质接口控制器还将xor缓存中生成的校验数据dy搬移到dram(图9c中由(10)指示)。至此,nvm芯片中被写入了数据d1-d4以及校验数据dy,这些数据与校验数据构成了完整的页条带。
157.可选地介质接口控制器还将xor缓存中生成的校验数据dy搬移到dram。
158.从而当要写入页条带的用户数据与之前生成的中间校验数据的组合依然未达到介质接口控制器生成校验数据所需的n份数据时,cpu获取例如全0的数据d0’来使得提供给介质接口控制器的数据凑满n份数据。
159.图10展示了根据本申请实施例的向页条带写入数据的流程图。
160.图10的实施例适用于介质接口控制器用于为n份数据生成校验数据并将n份数据写入nvm,而页条带的数据保护级别为“n+m+1”的情况,其中m与n都为正整数,且n>1。
161.为向页条带写入数据,cpu获取n份数据。n份数据被存储于例如dram中。
162.cpu将获取的n份数据提供给介质接口控制器,指示介质接口控制器将该n份数据写入nvm的页条带,以及介质接口控制器还根据该n份数据生成第一校验数据。cpu指示提供给介质接口控制器的n份数据的每份是否是“占位”数据。介质接口控制器将非“占位”数据写入页条带,而“占位”数据不被写入页条带。
163.cpu再从例如dram获取n-1份待写入页条带的数据,将其与之前生成的第一校验数据组成n份数据提供给介质接口控制器,并向介质接口控制器指示从dram获取的n-1份数据是非“占位”数据,而第一检验数据是“占位数据”。作为响应,介质接口控制器将非“占位”数据的n-1份数据写入页条带,而不将“占位”数据写入页条带。介质接口控制器还根据接收到的n份数据生成第二校验数据。
164.作为举例,m=n-1,至此已向页条带写入了其全部用户数据,并且第二校验数据是该页条带的校验数据。cpu还指示介质接口控制器将第二校验数据写入页条带。前面第一次写入的n份数据,第二次写入的n-1份数据以及第二校验数据被写入相同的该页条带。
165.图11展示了根据本申请再一实施例的向页条带写入数据的流程图。
166.图11的实施例适用于介质接口控制器用于为n份数据生成校验数据并将n份数据写入nvm,而页条带的数据保护级别为“n+m+1”的情况,其中m与n都为正整数,且n>1。
167.为向页条带写入数据,cpu首先获取当前要写入的数据的数据保护级别。作为举例,数据保护级别为m(m=n+m+1).
168.cpu获取n份数据(每份数据是例如页条带的1页)。n份数据被存储于例如dram中。cpu将获取的n份数据提供给介质接口控制器,指示介质接口控制器将该n份数据写入nvm的页条带,以及介质接口控制器还根据该n份数据生成中间校验数据。cpu指示提供给介质接口控制器的n份数据的每份是否是“占位”数据。介质接口控制器将非“占位”数据写入页条带,而“占位”数据不被写入页条带。可选地,cpu还指示介质接口控制器将xor缓存的数据搬移到dram。
169.为数据保护级别为“n+m+1”的页条带生成校验数据,需要对n+m份数据计算出校验数据。cpu识别是否已经对m-1(=n+m)份数据生成了校验数据(1130)。如果已经为m-1份数据生成了校验数据,cpu指示介质接口控制器将生成的校验数据(记为最终校验数据)写入nvm的同之前写入m-1份数据相同的页条带。若尚未为m-1份数据生成校验数据,cpu从dram中获取n-1份数据。如果用户提供的要写入nvm的数据已不足n-1份,还额外获取一份或多份指定数据(例如,全0数据)或随机数据,使得用户提供的要写入nvm的数据与额外获取的指定数据的组合为n-1份数据。cpu将该n-1份数据与介质接口控制器之前生成的中间校验数据组合为n份数据提供给介质接口控制器,cpu还将该中间校验数据标记为“占位”。如果有额外获取的指定数据,cpu也将额外获取的指定数据标记为“占位”。
170.介质接口控制器用cpu获取的该n-1份数据与该中间校验数据计算出新的中间校验数据,新的中间校验数据被保存在xor缓存。介质接口控制器还将获取的n份数据中未被标记为“占位”的数据写入nvm。可选地,cpu还指示介质接口控制器将xor缓存的数据搬移到dram。
171.以及转向步骤1130,cpu识别是否已经对m-1(=n+m)份数据生成了校验数据(1130),并继续后续的步骤。
172.根据本申请的实施例还提供了一种固态存储设备,该设备包括控制器与非易失存储器芯片,其中,控制器执行本申请实施例提供的任意一种方法。
173.根据本申请的实施例还提供了一种存储在可读介质上的程序,当被固态存储设备的控制器运行时,使得固态存储设备执行根据本申请实施例提供的任意一种方法。
174.尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变形在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1