部分页条带与使用部分页条带的存储设备及其方法与流程

文档序号:20203377发布日期:2020-03-27 20:52阅读:325来源:国知局
部分页条带与使用部分页条带的存储设备及其方法与流程

本申请涉及存储设备(solidstoragedevice,ssd),更具体地,涉及用部分页条带管理写入存储设备的非易失存储介质的数据。



背景技术:

参看图1,展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serialadvancedtechnologyattachment,串行高级技术附件)、scsi(smallcomputersysteminterface,小型计算机系统接口)、sas(serialattachedscsi,串行连接scsi)、ide(integrateddriveelectronics,集成驱动器电子)、usb(universalserialbus,通用串行总线)、pcie(peripheralcomponentinterconnectexpress,pcie,高速外围组件互联)、nvme(nvmexpress,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个nvm芯片105以及dram(dynamicrandomaccessmemory,动态随机访问存储器)110。

nand闪存、相变存储器、feram(ferroelectricram,铁电存储器)、mram(magneticrandomaccessmemory,磁阻存储器)、rram(resistiverandomaccessmemory,阻变存储器)等是常见的nvm。

接口103可适配于通过例如sata、ide、usb、pcie、nvme、sas、以太网、光纤通道等方式与主机交换数据。

控制部件104用于控制在接口103、nvm芯片105以及dram110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是fpga(field-programmablegatearray,现场可编程门阵列)、asic(applicationspecificintegratedcircuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理io(input/output)命令。控制部件104还可以耦合到dram110,并可访问dram110的数据。在dram可存储ftl表和/或缓存的io命令的数据。

控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到nvm芯片105,并以遵循nvm芯片105的接口协议的方式向nvm芯片105发出命令,以操作nvm芯片105,并接收从nvm芯片105输出的命令执行结果。已知的nvm芯片接口协议包括“toggle”、“onfi”等。

存储器目标(target)是闪存颗粒105封装内的共享芯片使能(ce,chipenable)信号的一个或多个逻辑单元(logicunit),每个逻辑单元具有逻辑单元号(lun,logicunitnumber)。nand闪存封装内可包括一个或多个管芯(die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(plane)。逻辑单元内的多个平面可以并行存取,而nand闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在http://www.onfi.org/~/media/onfi/specs/onfi_3_2%20gold.pdf获得的“opennandflashinterfacespecification(revision3.2)”中,提供了关于目标(target)、逻辑单元、lun、平面(plane)的含义,以及也提供了操作nvm芯片的命令。

存储介质上通常按页来存储和读取数据。而按块来擦除数据。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。物理页中可以包括多个数据帧(dataframe),数据帧具有指定的尺寸,例如4096或4416字节。

在存储设备中,利用ftl(flashtranslationlayer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在现有技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。存储了从逻辑地址到物理地址的映射信息的表结构被称为ftl表。ftl表是固态存储设备中的重要元数据。

存储设备102中包括多个nvm芯片105。每个nvm芯片包括一个或多个管芯(die)或逻辑单元(lun,logicunit)。管芯或逻辑单元之间可以并行响应读写操作。在同一管芯或逻辑单元上的多个读、写或擦除操作顺序执行。

图2示出了大块与页条带的示意图。大块包括来自多个逻辑单元的物理块。优选的,每个逻辑单元为大块提供一个物理块。作为举例,在每16个逻辑单元(lun)上构造大块。每个大块包括16个物理块,来自16个逻辑单元(lun)的每一个。在

图2的例子中,大块0包括来自8个逻辑单元(lun)的每个的物理块0,而大块1包括来自每个逻辑单元(lun)的物理块1。也可以有多种其他方式来构造大块。

作为一种可选的方式,在大块中构造页条带,每个逻辑单元(lun)内相同物理地址的物理页构成了“页条带”。图2中,大块0的物理页p0-0、物理页p0-1……与物理页p0-7构成了页条带0,其中物理页p0-0、物理页p0-1……物理页p0-6用于存储用户数据,而物理页0-7用于存储根据条带内的所有用户数据计算得到的校验数据。类似地,图2中,大块0的物理页p2-0、物理页p2-1……与物理页p2-7构成了页条带2。可选地,用于存储校验数据的物理页可以位于页条带中的任意位置。

为向页条带写入数据,存储设备的控制部件(104)(参看图1)提供校验数据计算器。以利用异或操作计算校验数据为例,对于包括n+1个物理页的页条带,对n个物理页的用户数据计算异或(例如,(p0-0)xor(p0-1)xor(p0-2)xor…xor(p0-(n-1))),并将计算结果写入为页条带存储校验数据的物理页(例如p0-n)。可选地,在控制部件(104)中提供多个校验数据计算器(例如,m个),以同时向m个页条带写入数据。校验数据计算器使用缓存(例如,xor缓存)记录校验数据的中间结果。



技术实现要素:

页条带包括多个多个物理页与较大量用户数据。为计算页条带的校验数据,要使用页条带的所有用户数据进行计算,校验数据计算器的缓存被占用较长时间。这些用户数据被写入nvm存储介质前,还需要保护这些用户数据的安全,避免因掉电等意外事件造成数据丢失。页条带的较大数据量,增加了用于保护用户数据安全的开销,也导致了校验数据计算器的缓存的低利用率。

根据本申请的实施例,将页条带分为两个或多个部分(称为部分页条带),并使用部分页条带向nvm芯片写入数据。从而条带的数据被通过多次操作写入nvm芯片,每次写入部分页条带的数据。在部分页条带被写入nvm芯片后,校验数据计算器的缓存被重新分配,提高了校验数据计算器的缓存的利用率。可选地或进一步地,为避免因掉电等意外事件造成数据丢失所需要的例如备用电源,仅需要支持对部分页条带数据的保护,从而降低了用于保护用户数据安全的资源,进而降低了成本。并且,页条带的校验数据与用户数据占比维持在较低的水平。

根据本申请的第一方面,提供了根据本申请第一方面的第一用于存储设备的方法,包括:获取要写入第一页条带的用户数据的第一部分;根据所述用户数据的第一部分生成第一页条带的第一校验数据;将所述用户数据的第一部分写入第一页条带。

根据本申请第一方面的第一用于存储设备的方法,提供了根据本申请第一方面的第二用于存储设备的方法,还包括:获取要写入第一页条带的用户数据的第二部分;

根据所述第一校验数据与所述用户数据的第二部分生成第一页条带的第二校验数据;以及将所述用户数据的第二部分数据与所述第二校验数据写入第一页条带。

根据本申请第一方面的第一或第二用于存储设备的方法,提供了根据本申请第一方面的第三用于存储设备的方法,其中所述用户数据的第一部分与第二部分组成了所述第一页条带的所有用户数据。

根据本申请第一方面的第一至第三用于存储设备的方法之一,提供了根据本申请第一方面的第四用于存储设备的方法,其中响应于生成了所述第一校验数据,将所述第一校验数据搬移到外部存储器。

根据本申请第一方面的第四用于存储设备的方法,提供了根据本申请第一方面的第五用于存储设备的方法,还包括:获取要写入第二页条带的用户数据的第一部分;响应于将所述第一页条带的第一校验数据搬移到外部存储器,根据要写入第二页条带的用户数据的第一部分生成第二页条带的第一校验数据。

根据本申请第一方面的第四或第五用于存储设备的方法,提供了根据本申请第一方面的第六用于存储设备的方法,还包括:从外部存储器获取所述第一页条带的第一校验数据,以根据所述第一校验数据与所述用户数据的第二部分生成第一页条带的第二校验数据。

根据本申请第一方面的第五或第六用于存储设备的方法,提供了根据本申请第一方面的第七用于存储设备的方法,其中使用相同的硬件资源生成第一页条带的第一校验数据与第二页条带的第一校验数据。

根据本申请第一方面的第五至第七用于存储设备的方法之一,提供了根据本申请第一方面的第八用于存储设备的方法,其中第一页条带与第二页条带耦合到相同的通道。

根据本申请第一方面的第一至第八用于存储设备的方法之一,提供了根据本申请第一方面的第九用于存储设备的方法,其中要写入第一页条带的所述用户数据的第一部分,被写入第一页条带的第一w页;以及要写入第一页条带的所述用户数据的第二部分与第一页条带的第二校验数据,被写入第一页条带的第二w页;其中第一w页不包括第一页条带的校验数据。

根据本申请第一方面的第九用于存储设备的方法,提供了根据本申请第一方面的第十用于存储设备的方法,其中响应于将所述用户数据的第一部分写入第一页条带的第一w页操作完成,才获取要写入第一页条带的用户数据的第二部分。

根据本申请第一方面的第四至第八用于存储设备的方法之一,提供了根据本申请第一方面的第十一用于存储设备的方法,其中获取要写入第三页条带的用户数据的第一部分;响应于将所述第二页条带的第一校验数据搬移到外部存储器,根据要写入第三页条带的用户数据的第一部分生成第三页条带的第一校验数据。

根据本申请第一方面的第十一用于存储设备的方法,提供了根据本申请第一方面的第十二用于存储设备的方法,还包括:响应于将要写入第三页条带的用户数据的第一部分写入第三页条带的第一w页操作完成,从外部存储器获取所述第一页条带的第一校验数据,以根据所述第一校验数据与所述用户数据的第二部分生成第一页条带的第二校验数据。

根据本申请第一方面的第一用于存储设备的方法,提供了根据本申请第一方面的第十三用于存储设备的方法,还包括:获取要写入第一页条带的用户数据的第二部分;根据所述第一页条带的第一校验数据与所述用户数据的第二部分生成第一页条带的第二校验数据;以及将所述用户数据的第二部分数据写入第一页条带。

根据本申请第一方面的第十三用于存储设备的方法,提供了根据本申请第一方面的第十四用于存储设备的方法,还包括:从外部存储器获取所述第一页条带的第一校验数据,以根据所述第一校验数据与所述用户数据的第二部分生成第一页条带的第二校验数据。

根据本申请第一方面的第十三或第十四用于存储设备的方法,提供了根据本申请第一方面的第十五用于存储设备的方法,还包括:获取要写入第一页条带的用户数据的第三部分;根据所述第一页条带的第二校验数据与所述用户数据的第三部分生成第一页条带的第三校验数据;以及将所述用户数据的第三部与第一页条带的第三校验数据写入第一页条带。

根据本申请第一方面的第十五用于存储设备的方法,提供了根据本申请第一方面的第十六用于存储设备的方法,还包括:从外部存储器获取所述第一页条带的第二校验数据,以根据所述第二校验数据与所述用户数据的第三部分生成第一页条带的第三校验数据。

根据本申请的第二方面,提供了根据本申请第二方面的第一存储设备,包括控制部件与nvm芯片,所述控制部件执行根据本申请第一方面的用于存储设备的方法之一。

附图说明

当连同附图阅读时,通过参考后面对示出性的实施例的详细描述,将最佳地理解本申请以及优选的使用模式和其进一步的目的和优点,其中附图包括:

图1为现有技术中的存储设备的示意图;

图2示出了大块与页条带的示意图;

图3展示了根据本申请实施例的部分页条带的示意图;

图4展示了根据本申请实施例的存储设备的框图;

图5a展示了根据本申请实施例的时序图;

图5b展示了根据本申请实施例的页条带的示意图;

图6a展示了根据本申请又一实施例的时序图;

图6b展示了根据本申请又一实施例的页条带的示意图

图6c展示了根据本申请再一实施例的时序图;

图6d展示了根据本申请依然再一实施例的时序图;以及

图7展示了根据本申请实施例的流程图。

具体实施方式

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

图3展示了根据本申请实施例的部分页条带的示意图。

为了清楚的目的,将部分页条带称为w页。

参看图3,在逻辑单元0到逻辑单元7上构造大块。例如大块0包括来自逻辑单元0到逻辑单元7的每个的物理块0。在大块上构造页条带。例如,页条带0包括大块0的物理页p0-0、物理页p0-1……与物理页p0-7,其中物理页p0-0、物理页p0-1……物理页p0-6用于存储用户数据,而物理页0-7用于存储根据条带0内的所有用户数据计算得到的校验数据。

图3的例子中,页条带包括2个w页。可以理解地,在根据本申请的实施例中,页条带包括其他数量的w页。为w页分配校验数据计算器的缓存。响应于将w页的数据写入nvm芯片,可释放为w页分配的缓存。

继续参看图3,页条带0包括w页0与w页1。w页0包括大块0的物理页p0-0、物理页p0-1、物理页p0-2与物理页p0-3,而w页1包括大块0的物理页p0-4、物理页p0-5、物理页p0-6与物理页p07。w页0所记录的都是页条带0的用户数据,而没有校验数据,w页1的物理页p0-4、物理页p0-5与物理页p0-6记录页条带0的用户数据,而物理页p0-7记录页条带0的校验数据。可选地,页条带的校验数据被记录在页条带的其他物理页(而非最后物理页),校验数据既可被记录在w页1,也可被记录在w页0。

依然可选地,构成同一页条带的多个w页可具有不同的大小。例如,页条带包括8个物理页,而构成页条带的w页0包括3个物理页,而构成页条带的w1包括5个物理页。

图4展示了根据本申请实施例的存储设备的框图。

存储设备的控制部件通过多个通道(452、454、456、458)耦合到多个nvm芯片105。每个通道耦合多个nvm芯片。

作为举例,nvm芯片各自提供逻辑单元。来自多个通道(452、454、456、458)的每个的逻辑单元的物理块构成大块。大块上的页条带包括w页0与w页1。w页0的物理页来自耦合到通道452与通道454的nvm芯片。w页1的物理页来自耦合到通道456与通道458的nvm芯片。依然作为举例,w页1存储所在页条带的校验数据,而w页0不存储校验数据。

存储设备的控制部件包括接口103、命令处理部件420与介质接口410。

命令处理部件420从接口103获取例如主机提供的io命令,还提供逻辑地址到物理地址映射、磨损均衡、垃圾回收等功能,并生成io操作发送给介质接口410。介质接口410通过多个通道耦合到nvm芯片105。介质接口410接收io操作,并根据io操作向nvm芯片发出读、编程、擦除、暂停、读取特征(feature)和/或设置特征等命令。

介质接口410还包括校验数据计算器,用于根据页条带的用户数据计算校验数据。校验数据计算器例如包括多个xor缓存(422、424、426、428)。xor缓存用于存储为页条带计算的校验数据的中间或最终结果。校验数据计算器还耦合到dram。xor缓存记录的数据可被存储到dram,以及dram存储的数据可被存储到xor缓存。

根据本申请的实施例,按w页分配/释放xor缓存。作为举例,w页0与w页1共同构成页条带,而w页0不包括页条带的校验数据,w页1包括页条带的校验数据。为向w页0写入数据,分配xor缓存(例如,xor缓存428),将w页0所在的各个nvm芯片发送编程命令,以及在xor缓存中记录w页0的各物理页的数据的异或(xor)计算结果。响应于w页0被写入了数据,xor缓存428中记录的数据被存储到dram。从而xor缓存428可被分配给向其他w页的写操作。响应于要向w页1写入数据,为w页1分配xor缓存(例如,xor缓存422),将dram中记录的之前由xor缓存428为w页0生成的数据搬移到xor缓存422,将xor缓存422的数据再同要写入w页1的各用户数据做异或操作,并将最终的结果作为w页1的校验数据(也是w页1与w页0所属页条带的校验数据)写入w页1,以及释放xor缓存422。此时,由于w页0与w页1所属的页条带已被写入完成,无须再将xor缓存422的数据保存到dram。

图5a展示了根据本申请实施例的时序图。图5a中,向右的方向代表时间流逝的方向。

图5b展示了根据本申请实施例的页条带的示意图。

参看图5b,在逻辑单元0到逻辑单元3上构造大块。大块包括页条带0、页条带1、页条带2与页条带3。用形如sa-b-c的附图标记指示物理页,字母a指示物理页所属的页条带,字母b指示物理页所属的w页,字母c指示物理页在w页内的序号。例如,物理页s0-0-0指示页条带0的w页0的0号物理页,物理页s3-1-1指示页条带3的w页1的1号物理页。作为举例,页条带包括4个物理页,2个w页,每个w页包括2个物理页。页条带的校验数据记录在例如页条带的第二个w页(w页1)。逻辑单元0与逻辑单元1耦合到通道452,逻辑单元2与逻辑单元3耦合到通道454。

返回参看图5a,命令处理单元420(也参看图4)准备好要写入页条带0的w页0的数据,为w页0的数据分配xor缓存424,将要写入w页0的各个物理页的数据逐一提供给例如xor缓存424。

接下来,对要写入页条带0的w页0的各物理页数据实施xor操作,在xor缓存424中记录xor操作的结果。随着用要写入w页0的各个物理页数据计算校验数据完成,将数据通过通道452写入属于w页0的物理页。

随着w页0的最后一个物理页的数据被传输给w页0,将xor缓存424中的数据(称为中间校验数据)存储到dram,从而xor缓存424可被分配用于其他w页的写入操作。被写入了数据的页条带0的w页0的物理页(s0-0-0与s0-0-1)在图5b中被用竖线阴影标注,以同其他物理页区分。

响应于命令处理单元420准备好要写入页条带0的w页1的数据,为w页1的数据分配xor缓存。作为举例,所分配的是xor缓存424。从dram获取之前为页条带0的w页0存储的中间检验数据,将中间校验数据写入xor缓存424。将要写入w页1的各个物理页的数据(仅用户数据)逐一提供给xor缓存424。

接下来,对要写入w页1的用户数据实施xor操作,在缓存424中记录xor操作的结果。作为举例,要写入w页1的用户数据仅占用物理页s0-1-0。随着根据用户数据计算校验数据完成,将用户数据通过通道454写入属于w页1的物理页s0-1-0。接下来,将xor缓存中的数据(称为校验数据)通过通道454写入属于w页1的物理页s0-1-1。

随着w页1的最后一个物理页s0-1-1的数据被传输给提供w页1的nvm芯片,释放xor缓存424,以及xor缓存424可被分配给其他w页的写入操作。至此,页条带0的w页1的物理页(s0-1-0与s0-1-1)也被写入数据,在图5b中被用竖线阴影标注。

图6a展示了根据本申请又一实施例的时序图。图6a中,向右的方向代表时间流逝的方向。图6b展示了根据本申请又一实施例的页条带的示意图。

参看图6b,在逻辑单元0到逻辑单元3上构造大块,在逻辑单元4到逻辑单元7上构造大块。页条带0、页条带1、页条带2与页条带3来自逻辑单元0到逻辑单元3的大块。页条带4到页条带7来自逻辑单元4到逻辑单元7的大块。逻辑单元0到逻辑单元3耦合到通道452,逻辑单元4到逻辑单元7耦合到通道454。

用形如sa-b-c的附图标记指示物理页,字母a指示物理页所属的页条带,字母b指示物理页所属的w页,字母c指示物理页在w页内的序号。作为举例,页条带包括4个物理页,2个w页,每个w页包括2个物理页。页条带的校验数据记录在例如页条带的第2个w页。

用形如we-f的附图标记指示w页,其中e指示w页所属的页条带,f指示w页在页条带中的序号。

返回参看图6a,命令处理单元420(也参看图4)准备好要写入页条带0的w页0-0的数据,为w页0-0的数据分配xor缓存424,将要写入w页0-0的各个物理页的数据逐一提供给例如xor缓存424。

接下来,对要写入w页0-0的数据实施xor操作,在缓存424中记录xor操作的结果。随着用各个物理页的数据计算校验数据完成,将各物理页的数据通过通道452写入属于w页0-0的物理页(s0-0-0与s0-0-1)。

随着w页0-0的最后一个物理页的数据被传输给w页0-0,将xor缓存424中的数据(称为中间校验数据)存储到dram,以及释放xor缓存424。被写入了数据的页条带0的w页0-0的物理页(s0-0-0与s0-0-1)在图6b中被用竖线阴影标注,以同其他物理页区分。

在向w页0-0的物理页(s0-0-0与s0-0-1)写入数据期间,通道452被占用。而w页4-0耦合到通道454,向w页0-0写入数据期间,可同时向w页4-0写入数据。因而,响应于通道452被占用,命令处理单元420准备要写入未被占用的通道454的页条带4的w页4-0的数据。

响应于命令处理单元420准备好要写入w页4-0的数据,为w页4-0的数据分配xor缓存。作为举例,所分配的是xor缓存424。将要写入w页4-0的各个物理页的数据逐一提供给xor缓存424。随着用各个物理页的数据计算校验数据完成,将各物理页的数据通过通道454写入属于w页4-0的物理页(s4-0-0与s4-0-1)。

随着w页4-0的最后一个物理页的数据被传输给提供w页4-0的nvm芯片,将xor缓存424中的数据(称为中间校验数据)存储到dram,以及释放xor缓存424。被写入了数据的页条带4的w页4-0的物理页(s4-0-0与s4-0-1)在图6b中被用竖线阴影标注。

接下来,向w页0-0的物理页(s0-0-0与s0-0-1)写入数据的操作即将完成或已经完成。命令处理单元420准备要写入已被部分写入数据的页条带0的另一w页(w页0-1)的数据。

响应于命令处理单元420准备好要写入w页0-1的数据,为w页0-1分配xor缓存424。从dram获取之前为w页0-0存储的中间校验数据,将中间校验数据写入xor缓存424。将要写入w页0-1的各个物理页的数据逐一提供给xor缓存424。

接下来,对中间校验数据与要写入w页0-1的用户数据实施xor操作,在缓存424中记录xor操作的结果。作为举例,要写入w页0-1的用户数据仅占用物理页s0-1-0。随着根据用户数据计算校验数据完成,将用户数据通过通道452写入属于w页0-1的物理页s0-1-0。接下来,将xor缓存中的数据(称为校验数据)通过通道452写入属于w页0-1的物理页s0-1-1。

随着w页0-1的最后一个物理页s0-1-1的数据被传输给提供w页0-1的nvm芯片,释放xor缓存424,以及xor缓存424可被分配给其他w页的写入操作。至此,页条带0的w页0-1的物理页(s0-1-0与s0-1-1)也被写入数据,在图6b中被用竖线阴影标注。

接下来,向w页4-0的物理页(s4-0-0与s4-0-1)写入数据的操作即将完成或已经完成。命令处理单元420准备要写入已被部分写入数据的页条带4的另一w页(w页4-1)的数据。

响应于命令处理单元420准备好要写入w页4-1的数据,为w页4-1的数据分配xor缓存424。从dram获取之前为w页4-0存储的中间校验数据,将中间校验数据写入xor缓存424。将要写入w页4-1的用户数据提供给xor缓存424。

接下来,对要写入w页4-1的用户数据实施xor操作,在缓存424中记录xor操作的结果。作为举例,要写入w页4-1的用户数据仅占用物理页s4-1-0。随着根据用户数据计算校验数据完成,将用户数据通过通道454写入属于w页4-1的物理页s4-1-0。接下来,将xor缓存中的校验数据通过通道454写入属于w页4-1的物理页s4-1-1。

随着w页4-1的最后一个物理页s4-1-1的数据被传输给提供w页4-1的nvm芯片,释放xor缓存424,以及xor缓存424可被分配给其他w页的写入操作。至此,页条带4的w页4-1的物理页(s4-1-0与s4-1-1)也被写入数据,在图6b中被用竖线阴影标注。

图6c展示了根据本申请再一实施例的时序图。

页条带0的w页0-0与w页0-1由耦合到通道452的逻辑单元提供,页条带4的w页4-0与w页4-1由耦合到通道454的逻辑单元提供。同时使用xor缓存424与xor缓存426分别为页条带0与页条带4计算校验数据。

命令处理单元420(也参看图4)准备好要写入页条带0的w页0-0的数据,为w页0-0的数据分配xor缓存424,将要写入w页0-0的各个物理页的数据逐一提供给例如xor缓存424。在缓存424中记录xor操作的结果。将各物理页的数据通过通道452写入属于w页0-0的物理页。

在xor缓存424为w页0-0计算中间校验数据期间,命令处理单元420准备要写入页条带4的w页4-0的数据,为w页4-0的数据分配xor缓存426,将要写入w页4-0的各个物理页的数据逐一提供给xor缓存426。在缓存426中记录xor操作的结果。将各物理页的数据通过通道454写入属于w页4-0的物理页。向w页0-0写入数据的操作与向w页4-0写入数据的操作被并行处理。

命令处理单元420继续准备要写入页条带0的w页0-1的数据。此时xor缓存424记录了根据w页0-0生成的中间校验结果。由于w页0-1与w页0-0属于相同的页条带,分配xor缓存424用于w页0-1,而省去将xor缓存424记录的中间校验结果搬移到dram的过程。

将要写入w页0-1的用户数据提供给xor缓存424。在缓存424中记录xor操作的结果。随着用各个物理页的用户数据计算校验数据完成,将各物理页的数据通过通道452写入属于w页0-1的物理页。将xor缓存424记录的校验数据,也写入属于w页0-1的物理页。

命令处理单元420继续准备要写入页条带4的w页4-1的数据。此时xor缓存426记录了根据w页4-0生成的中间校验结果。由于w页4-1与w页4-0属于相同的页条带4,分配xor缓存426用于w页4-1,而省去将xor缓存426记录的中间校验结果搬移到dram的过程。

将要写入w页4-1的用户数据提供给xor缓存426。在缓存426中记录xor操作的结果。随着用各个物理页的用户数据计算校验数据完成,将物理页的数据通过通道454写入属于w页4-1的物理页。将xor缓存426记录的校验数据,也写入属于w页4-1的物理页。向w页0-1写入数据的操作与向w页4-1写入数据的操作被并行处理。

图6d展示了根据本申请依然再一实施例的时序图。

页条带0的w页0-0与w页0-1由耦合到通道452的逻辑单元提供,页条带4的w页4-0与w页4-1页由耦合到通道452的逻辑单元提供。使用xor缓存424为页条带0与页条带4计算校验数据。

命令处理单元420(也参看图4)准备好要写入页条带0的w页0-0的数据,为w页0-0的数据分配xor缓存424,将要写入w页0-0的各个物理页的数据逐一提供给例如xor缓存424。在缓存424中记录xor操作的结果。随着用各个物理页的数据计算校验数据完成,将物理页的数据通过通道452写入属于w页0-0的物理页。

在xor缓存424为w页0-0计算中间校验数据期间,命令处理单元420准备要写入页条带4的w页4-0的数据。保存xor缓存424中根据w页0-0得到的中间校验结果,并将xor缓存424分配给w页4-0。将要写入w页4-0的各个物理页的数据逐一提供给xor缓存424。在缓存424中记录w页4-0的中间校验结果。随着用各个物理页的数据计算校验数据完成,将物理页的数据也通过通道452写入属于w页4-0的物理页。向w页0-0写入数据的操作与向w页4-0写入数据的操作被串行处理,以分时共享通道452。

命令处理单元420继续准备要写入页条带0的w页0-1的数据。保存xor缓存424中根据w页4-0得到的中间校验结果,并将xor缓存424分配给w页0-1。将之前保存的根据w页0-0生成的中间校验结果传输到xor缓存424。

将要写入w页0-1的用户数据提供给xor缓存424。在缓存424中记录xor操作的结果。随着用各个物理页的用户数据计算校验数据完成,将物理页的数据通过通道452写入属于w页0-1的物理页。将xor缓存424记录的校验数据,也写入属于w页0-1的物理页。

命令处理单元420继续准备要写入页条带4的w页4-1的数据。将xor缓存424分配给w页4-1。将之前保存的根据w页4-0生成的中间校验结果传输到xor缓存424。

将要写入w页4-1的用户数据提供给xor缓存424。随着用各个物理页的用户数据计算校验数据完成,将物理页的数据通过通道452写入属于w页4-1的物理页。将xor缓存424记录的校验数据,也写入属于w页4-1的物理页。

图7展示了根据本申请实施例的流程图。

为将第一页条带的数据写入nvm芯片,将第一页条带的至少部分用户数据写入组成第一页条带的一个或多个物理页(710)。在将用户数据写入第一页条带的过程中,根据这些用户数据计算校验数据。由于这些用户数据不是第一页条带所能容纳的所有用户数据,将根据这些用户数据得到的校验数据称为中间校验数据。

可选地,将中间校验数据从xor缓存保存到例如dram的外部存储器。以将xor缓存分配给其他页条带。

在完成向第一页条带写入数据之前,xor缓存与第一页条带所在通道,都可被用于向其他页条带写入数据。从而允许存储设备“同时”打开(open)多个页条带,并分时地向多个页条带写入数据,而又仅使用少量的xor缓存和/或通道等资源。允许同时打开多个页条带,使得存储设备能将不同类型的数据分组并写入不同的页条带。

为了完成向第一页条带写入数据,从外部存储器将之前保存的用于第一页条带的中间校验结果搬移到xor缓存。并根据第一页条带的其他用户数据与xor缓存中记录的数据而计算校验数据。以及将第一页条带的其他用户数据写入组成第一页条带的物理页,以及将生成的校验数据也写入组成第一页条带的物理页(730)。

可选地,第一页条带的用户数据与校验数据被分为更多次写入第一页条带的物理页,每次向第一页条带写入数据之间,为第一页条带所生成的中间校验数据和/或第一页条带所耦合的通道,可被用于向其他页条带写入数据。

已经为了示出和描述的目的而展现了对本申请的描述,并且不旨在以所公开的形式穷尽或限制本申请。对所属领域技术人员,许多调整和变化是显而易见的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1