统一存储介质的编程方法及其装置与流程

文档序号:26585897发布日期:2021-09-10 19:12阅读:80来源:国知局
统一存储介质的编程方法及其装置与流程

1.本技术涉及存储设备技术,尤其涉及在存储设备中为访问多种规格的存储介质而采用的统一存储介质,以及对统一存储介质的编程方法及其装置。


背景技术:

2.参看图1,展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata、ide、usb、pcie、nvme(nvm express)、sas、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个nvm(非易失存储器,non-volatile memory)芯片105以及可选地固件存储器110。接口103可适配于通过例如sata、ide、usb、pcie、nvme、sas、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、nvm芯片105以及固件存储器110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。可通过软件、硬件、固件或其组合的多种方式实现控制部件104。控制部件104可以是fpga(field-programmable gate array,现场可编程门阵列)、asic(application specific integrated circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器。控制部件104在运行时从固件存储器110加载固件。固件存储器110可以是nor闪存、rom、eeprom,也可以是nvm芯片105的部分。
3.控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到nvm芯片105,并以遵循nvm芯片105的接口协议的方式向nvm芯片105发出命令,以操作nvm芯片105,并接收从nvm芯片105输出的命令执行结果。已知的nvm芯片接口协议包括“toggle”、“onfi”等。
4.存储器目标(target)是nand闪存封装内的共享芯片使能(ce,chip enable)信号的一个或多个逻辑单元(logic unit)。每个逻辑单元具有逻辑单元号(lun,logic unit number)。nand闪存封装内可包括一个或多个管芯(die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(plane)。逻辑单元内的多个平面可以并行存取,而nand闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/documents/products/other%20documents/onfi3_0gold.as hx获得的“open nand flash interface specification(revision 3.0)”中,提供了关于目标(target)、逻辑单元、lun、平面(plane)的含义,其为现有技术的一部分。
5.存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
6.在存储设备中,利用ftl(flash translation layer,闪存转换层)来维护从逻辑
地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
7.存储了从逻辑地址到物理地址的映射信息的表结构被称为ftl表。ftl表是固态存储设备中的重要元数据。通常ftl表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
8.一些存储设备的ftl由存储设备所耦合的主机提供,由主机的存储器存储ftl表,主机的处理器执行软件提供ftl。还有一些被设置在主机与存储设备之间的存储管理装置提供ftl。
9.大块包括来自多个逻辑单元(lun)的每个的物理块。为大块提供物理块的多个逻辑单元被称为逻辑单元组。逻辑单元组的每个逻辑单元可以为大块提供一个物理块。例如,在图2a所示出的大块的示意图中,在每16个逻辑单元(lun)上构造大块。每个大块包括16个分别来自16个逻辑单元(lun)的物理块。在图2a的例子中,大块0包括来自16个逻辑单元(lun)中的每个逻辑单元的物理块0,而大块2包括来自每个逻辑单元(lun)的物理块2。也可以以多种其他方式来构造大块。图2中,用形如bb-a的附图标记指示物理块,其中a指示该物理块由逻辑单元(luna)提供,而b指示该物理块在逻辑单元中的块号为b。大块存储用户数据与校验数据。根据大块存储的用户数据计算得到大块的校验数据。作为举例,在大块的最后一个物理块中存储校验数据。也可以选择大块的其他物理块来存储校验数据。作为又一个例子,在申请号为201710752321.0的中国专利申请的中,提供了大块的其他构造方式。
10.图2b展示了逻辑单元与平面(plane)的示意图。每个逻辑单元(lun)包括多个平面(plane)。参看图3,在16个逻辑单元(lun0、lun1、
……
、lun15)的逻辑单元组上构造大块。以lun2为例,lun 2包括4个平面(平面0、平面1、平面2与平面3,其中示出了平面0与平面3)。lun内的各个平面可以同时进行读写操作,从而提升了nvm操作的并行性。
11.图2b中,lun0-lun15的块b0构成了大块0,其中lun0到lun14的各个平面中的物理块b0用于存储用户数据,而lun15的4个平面的物理块b0用于存储根据大块0的用户数据计算得到的校验数据。lun0-lun15的块b1构成了大块1。
12.图3展示了存储设备的控制部件与介质接口控制器的详细的框图。
13.例如控制部件的cpu根据来自处理的io命令,生成一个或多个存储命令(展示为c1、c2、c3与c4)并提供给介质接口控制器。介质接口控制器根据存储命令生遵循nvm芯片的接口协议的存储介质访问命令(例如,编程命令、读命令、擦除命令)。作为举例,图3展示了介质接口控制器接收的4个指示向nvm芯片写入数据的存储命令。存储命令还指示了要写入nvm芯片的数据的索引,对应的数据(指示为d1、d2、d3与d4)存储在dram中,其中存储命令c1对应的数据被展示为d1。
14.介质接口控制器耦合一个或多个nvm芯片。介质接口控制器并行地向nvm芯片的各lun和/或平面发出存储介质访问命令。
15.nvm芯片也在快速发展,已经出现了3dnand存储介质,其每个存储单元存储1比特(slc)、2比特(mlc)、3比特(tlc)甚至更多比特数据。3dnand在其所承载于的晶圆的晶圆平面的z方向(垂直于晶圆平面的方向)包括多层。物理块在每层设置字线。
16.3dnand存储介质有指定的向其物理块的各物理页写入数据的顺序。向物理块实施编程操作时,要按照指定的顺序依次向对应的物理页发送编程命令。每个存储单元存储2比特或更多比特数据,使得一条字线承载了多个物理页。作为举例,对于tlc闪存,将同一字线的多个物理页分别称为lsb(最低有效位)页、csb(中间有效位)页与msb(最高有效位)页。可选地,还要求按指定的组合方式编程属于同一字线的多个物理页。例如,将属于同一字线的多个物理页在一个编程命令中同时编程,或者用2个编程命令完成对同一字线的3个物理页的编程(第一个编程命令编程其中1个物理页,第二个编程命令编程余下的2个物理页)。
17.图4为展示了一种3d tlcnand的物理块的写入数据的指定顺序的编程序号表。
18.展示了物理块的3层(l3、l4与l5),每层又分为16个区段(记为区段0~区段15)。每个区段包括属于同一字线的3个物理页(lsb页、csb页与lsb页)。图4展示的单元格中的形式为bn的数字(称为编程序号)指示编程顺序,按照n代表的数字从小达到的顺序编程。而单元格的位置代表了在3d nand的物理块中的物理位置,由物理地址唯一确定。
19.参看图4,l3层的区块0的lsb页的编程序号b0,指示首先对该物理页编程,随后,对编程序号为b1的l3层的区块1的lsb页编程。接下来,编程l3层的区块2到区块15的lsb页。接下来,对l4层的区块0到区块15的lsb页编程,虽然这时l3的物理页尚未被完全编程。接下来,根据编程序号b32与b33,编程l3的区块0的msb页与csb页,并且这两页被用单一编程命令编程。编程序号为b31的物理页与编程序号为b32的物理页在由层与区段定义的物理位置上相距较远。接下来,根据编程序号b34编程l5层的区段0的lbs页。依次类推,按照编程序号递增的顺序对各物理页实施编程。在编程序号bn对应的物理页被编程前,不能对编程序号bm(m>n)对应的物理页实施编程操作。
20.图4展示的编程序号表中,物理页的位置(也称为物理地址)同编程序号的映射关系不可解析,通常以查表方式得到物理地址同编程序号的映射。编程序号表由存储介质的供应商提供。


技术实现要素:

21.nvm芯片的编程操作有一定几率失败,响应于编程失败需要向另外的物理页施加另外的编程命令。在例如图4展示的3dtlc的存储介质中,一层的区段之一的3个物理页属于相同的字线,其中任何一个物理页的编程失败,都导致要对该字线的所有3个物理页(不包括该层的其他区段的物理页)重新编程。为了实施重新编程,需要保证所要编程的数据依然可用。也参看图4,编程序号为b0、b32与b33的物理页属于相同的字线。而在为编程序号b0指示的物理页实施编程后,要等待较长时间后,编程序号b32与b33指示的物理页才被编程。如果对编程序号b32与b33指示的物理页的编程失败,还需要使用编程序号b0对应的数据来重新编程。而在对编程序号b32与b33指示的物理页的编程失败后,这些物理页所在字线可能已损害,并导致编程序号b0对应的物理页无法被读出,进而主机也无法得到记录编程序号b0对应的物理页的数据,这对存储设备是不可接受的。
22.因而,需要为了重新编程为适当地在存储设备的缓存中保留已被编程的数据,另一方面保留的数据又占据了存储设备的较大缓存,需要及时释放保留的数据以获得可用的缓存。
23.不同供应商、不同规格的nvm芯片,可能具有不同的编号序号表。进一步地,还具有
不同的物理页/物理块/平面/lun的大小和/或数量。从而对存储设备的nvm芯片的替换或升级将引起对控制部件的存储介质管理功能的修改。这引入了额外的开发成本,延长了存储设备的等待交付时间。
24.希望改进并克服上述的一种或多种缺陷。
25.根据本技术的第一方面,提供了根据本技术第一方面的第一控制部件,包括编程序号生成单元与编程命令组装单元;所述编程序号生成单元,根据存储命令的物理地址生成编程序号;所述编程命令组装单元按编程序号的顺序缓存存储命令,并按编程序号的顺序获取一个或多个缓存的编程命令用于生成存储介质访问命令;其中获取的所述一个或多个编程命令所关联的数据在一个存储介质访问命令中被写入存储介质。
26.根据本技术第一方面的第一控制部件,提供了根据本技术第一方面的第二控制部件,还包括字线管理单元;所述字线管理单元识别字线所提供的物理页是否都被编程,并向所述编程命令组装单元指示将其所有物理页都被编程的字线;所述编程信号生成单元还响应从所述字线管理单元接收对第一字线的指示而移除所缓存的访问了第一字线的所有存储命令。
27.根据本技术第一方面的第一或第二控制部件,提供了根据本技术第一方面的第三控制部件,其中编程序号生成单元用存储命令的物理地址查询物理地址到编程序号的映射表得到编程序号,并将编程序号附加到存储命令。
28.根据本技术第一方面的第一至第三控制部件之一,提供了根据本技术第一方面的第四控制部件,其中所述编程命令组装单元响应于为生成存储介质访问命令而获取的缓存存储命令的最大编程序号为n,而接下来仅获取编程序号为n+1的存储命令用来生成存储介质访问命令,其中n为正整数;若缓存的存储命令中没有编程序号为n+1的存储命令,则暂不获取存储命令。
29.根据本技术第一方面的第一至第四控制部件之一,提供了根据本技术第一方面的第五控制部件,其中所述编程命令组装单元响应于为生成存储介质访问命令而获取的缓存存储命令的最大编程序号为n,而接下来仅获取编程序号为n+1的存储命令与编程序号紧邻在n+1之后的一个或多个编程命令用来生成存储介质访问命令,其中n为正整数;若缓存的存储命令中没有编程序号为n+1的存储命令或者没有所述编程序号紧邻在n+1之后的一个或多个编程命令,则暂不获取存储命令。
30.根据本技术第一方面的第二至第五控制部件之一,提供了根据本技术第一方面的第六控制部件,其中所述编程命令组装单元响应于获取了一个或多个存储命令用于生成存储介质访问命令,还将获取的该一个或多个存储命令的物理地址提供给字线管理单元。
31.根据本技术第一方面的第二至第六控制部件之一,提供了根据本技术第一方面的第七控制部件,其中响应于所述编程命令组装单元移除所缓存的访问了第一字线的所有存储命令,还释放存储了所述所有存储命令对应的数据的缓存。
32.根据本技术第一方面的第一至第七控制部件之一,提供了根据本技术第一方面的第八控制部件,其中所述存储介质访问命令使用存储命令的物理地址访问存储介质。
33.根据本技术第一方面的第一至第八控制部件之一,提供了根据本技术第一方面的第九控制部件,还包括分发单元;指示编程操作的存储命令被提供给所述编程序号生成单元;所述分发单元使用指示编程操作之外的其他类型的存储命令来生成存储介质访问命
令。
34.根据本技术第一方面的第一至第九控制部件之一,提供了根据本技术第一方面的第十控制部件,还包括处理器;所述处理器将根据io命令生成的存储命令发送给编程序号生成单元,其中io命令访问逻辑地址,而根据io命令生成的存储命令访问物理地址;所述处理器还相关联地记录所述逻辑地址与其对应的物理地址;所述存储命令还指示了存储其对应的数据的缓存。
35.根据本技术第一方面的第一至第十控制部件之一,提供了根据本技术第一方面的第十一控制部件,还包括命令映射单元:命令映射单元耦合所述编程序号生成单元;命令映射单元根据存储命令的统一介质地址生成一个或多个指示了物理地址的存储命令,并将指示了物理地址的存储命令提供给编程序号生成单元。
36.根据本技术第一方面的第十一控制部件,提供了根据本技术第一方面的第十二控制部件,还包括分发单元;分发单元耦合所述命令映射单元;命令映射单元将指示编程操作的存储命令提供给所述编程序号生成单元,以及将指示编程操作之外的其他类型的存储命令提供给分发单元;所述分发单元使用指示编程操作之外的其他类型的存储命令来生成存储介质访问命令。
37.根据本技术第一方面的第十一或第十二控制部件,提供了根据本技术第一方面的第十三控制部件,其中所述命令映射单元根据统一介质地址指示的统一介质页所包括的一个或多个物理页,生成所述一个或多个指示了物理地址的存储命令,所述一个或多个指示了物理地址的存储命令各自访问所述一个或多个物理页之一。
38.根据本技术第一方面的第十三控制部件,提供了根据本技术第一方面的第十四控制部件,其中所述统一介质页所包括的所述一个或多个物理页,彼此具有相同的物理块号与物理页地址,但位于逻辑单元的不同平面。
39.根据本技术第一方面的第十一至第十四控制部件之一,提供了根据本技术第一方面的第十五控制部件,其中所述命令映射单元根据多个存储命令各自的统一介质地址生成多个指示了物理地址的存储命令,并将指示了物理地址的存储命令提供给编程序号生成单元;其中,所述多个存储命令各自的统一介质地址的每个指示了统一介质页,每个统一介质页包括多个物理页的部分。
40.根据本技术第一方面的第十五控制部件,提供了根据本技术第一方面的第十六控制部件,其中所述多个存储命令各自的统一介质地址包括第一统一介质地址与第二统一介质地址,第一统一介质地址指示了第一统一介质页,第二统一介质地址指示了第二统一介质页;第一统一介质页包括第一多个物理页的第一部分,第二统一介质页包括所述第一多个物理页的第二部分,其中物理页的第一部分不同于物理页的第二部分。
41.根据本技术第一方面的第十一至第十六控制部件之一,提供了根据本技术第一方面的第十七控制部件,其中命令映射单元识别根据存储命令的统一介质地址生成的所述一个或多个指示了物理地址的存储命令都被处理完成,返回指示了统一介质地址的存储命令被处理完成。
42.根据本技术第一方面的第十一至第十七控制部件之一,提供了根据本技术第一方面的第十八控制部件,还包括处理器;所述处理器将根据io命令生成的存储命令发送给所述命令映射单元,其中io命令访问逻辑地址,而根据io命令生成的存储命令访问统一介质
地址;所述处理器还相关联地记录所述逻辑地址与其对应的统一介质地址;所述存储命令还指示了存储其对应的数据的缓存。
43.根据本技术第一方面的第一至第十控制部件之一,提供了根据本技术第一方面的第十九控制部件,其中响应于第一存储命令的处理失败,所述字线管理单元向编程命令组装单元指示所述第一存储命令所访问的第一字线;所述字线管理单元识别已向第一命存储命令访问的物理地址所在字线实施编程的一个或多个存储命令;所述编程命令组装单元将缓存的访问所述第一字线一个或多个存储命令移除。
44.根据本技术第一方面的第十九控制部件,提供了根据本技术第一方面的第二十控制部件,其中向处理器指示访问所述第一字线一个或多个存储命令被移除;所述处理器为所述第一字线一个或多个存储命令重新生成物理地址,并发送给所述编程序号生成射单元。
45.根据本技术第一方面的第十一至第十八控制部件之一,提供了根据本技术第一方面的第二十一控制部件,其中响应于第一存储命令的处理失败,所述字线管理单元向编程命令组装单元指示所述第一存储命令所访问的第一字线;所述字线管理单元识别已向第一命存储命令访问的物理地址所在字线实施编程的一个或多个存储命令;所述编程命令组装单元将缓存的访问所述第一字线一个或多个存储命令移除。
46.根据本技术第一方面的第二十一控制部件,提供了根据本技术第一方面的第二十二控制部件,其中向处理器指示访问所述第一字线一个或多个存储命令被移除;所述处理器为所述第一字线一个或多个存储命令重新生成统一介质地址,并发送给所述命令映射单元。
47.根据本技术第一方面的第二十一控制部件,提供了根据本技术第一方面的第二十二控制部件,其中向处理器指示从中得到访问所述第一字线一个或多个存储命令的一个或多个访问统一介质地址的第二存储命令处理失败;所述处理器为所述一个或多个访问统一介质地址的第二存储命令重新生成统一介质地址,并发送给所述命令映射单元。
48.根据本技术的第二方面,提供了根据本技术第二方面的第一控制部件,包括命令映射单元与介质访问命令生成单元;所述命令映射单元根据存储命令的统一介质地址生成一个或多个指示了物理地址的存储命令;介质访问命令生成单元根据指示了物理地址的存储命令生成操作存储介质的存储介质访问命令。
49.根据本技术第二方面的第一控制部件,提供了根据本技术第二方面的第二控制部件,其中命令映射单元识别根据存储命令的统一介质地址生成的所述一个或多个指示了物理地址的存储命令都被处理完成,返回指示了统一介质地址的存储命令被处理完成。
50.根据本技术第二方面的第一或第二控制部件,提供了根据本技术第二方面的第三控制部件,其中所述命令映射单元根据统一介质地址指示的统一介质页所包括的一个或多个物理页,生成所述一个或多个指示了物理地址的存储命令,所述一个或多个指示了物理地址的存储命令各自访问所述一个或多个物理页之一。
51.根据本技术第二方面的第三控制部件,提供了根据本技术第二方面的第四控制部件,其中所述统一介质页所包括的所述一个或多个物理页,彼此具有相同的物理块号与物理页地址,但位于逻辑单元的不同平面。
52.根据本技术第二方面的第一至四控制部件之一,提供了根据本技术第二方面的第
五控制部件,其中所述命令映射单元根据多个存储命令各自的统一介质地址生成多个指示了物理地址的存储命令;其中,所述多个存储命令各自的统一介质地址的每个指示了统一介质页,每个统一介质页包括多个物理页的部分。
53.根据本技术第二方面的第五控制部件,提供了根据本技术第二方面的第六控制部件,其中所述多个存储命令各自的统一介质地址包括第一统一介质地址与第二统一介质地址,第一统一介质地址指示了第一统一介质页,第二统一介质地址指示了第二统一介质页;第一统一介质页包括第一多个物理页的第一部分,第二统一介质页包括所述第一多个物理页的第二部分,其中物理页的第一部分不同于物理页的第二部分。
54.根据本技术第二方面的第一至六控制部件之一,提供了根据本技术第二方面的第七控制部件,还包括处理器;所述处理器将根据io命令生成的存储命令发送给所述命令映射单元,其中io命令访问逻辑地址,而根据io命令生成的存储命令访问统一介质地址;所述处理器还相关联地记录所述逻辑地址与其对应的统一介质地址;所述存储命令还指示了存储其对应的数据的缓存。
55.根据本技术第二方面的第一至七控制部件之一,提供了根据本技术第二方面的第八控制部件,还包括编程序号生成单元与编程命令组装单元;所述编程序号生成单元,根据存储命令的物理地址生成编程序号;所述编程命令组装单元按编程序号的顺序缓存存储命令,并按编程序号的顺序获取一个或多个缓存的编程命令提供给所述介质访问命令生成单元。
56.根据本技术的第三方面,提供了根据本技术第三方面的第一处理存储命令的方法,包括:根据io命令生成一个或多个存储命令,其中io命令访问逻辑地址,存储命令访问物理地址;根据存储命令访问的物理地址为存储命令生成编程序号;按编程序号的顺序缓存存储命令;按编程序号的顺序获取一个或多个缓存的编程命令用于生成存储介质访问命令;其中获取的所述一个或多个编程命令所关联的数据在一个存储介质访问命令中被写入存储介质。
57.根据本技术第三方面的第一处理存储命令的方法,提供了根据本技术第三方面的第二处理存储命令的方法,还包括:记录被用于生成存储介质访问命令的存储命令所访问的物理地址所属的字线;响应于第一字线的所有物理页都被编程,移除所缓存的访问了第一字线的所有存储命令。
58.根据本技术第三方面的第一或第二处理存储命令的方法,提供了根据本技术第三方面的第三处理存储命令的方法,其中响应于为生成存储介质访问命令而获取的缓存存储命令的最大编程序号为n,而接下来仅获取编程序号为n+1的存储命令用来生成存储介质访问命令,其中n为正整数;若缓存的存储命令中没有编程序号为n+1的存储命令,则暂不获取存储命令。
59.根据本技术第三方面的第一至第三处理存储命令的方法之一,提供了根据本技术第三方面的第四处理存储命令的方法,其中响应于为生成存储介质访问命令而获取的缓存存储命令的最大编程序号为n,而接下来仅获取编程序号为n+1的存储命令与编程序号紧邻在n+1之后的一个或多个编程命令用来生成存储介质访问命令,其中n为正整数;若缓存的存储命令中没有编程序号为n+1的存储命令或者没有所述编程序号紧邻在n+1之后的一个或多个编程命令,则暂不获取存储命令。
60.根据本技术第三方面的第二至第四处理存储命令的方法之一,提供了根据本技术第三方面的第五处理存储命令的方法,其中响应于移除了所缓存的访问了第一字线的所有存储命令,还释放存储了所述所有存储命令对应的数据的缓存。
61.根据本技术第三方面的第一至第五处理存储命令的方法之一,提供了根据本技术第三方面的第六处理存储命令的方法,其中;对指示编程操作的存储命令,根据存储命令访问的物理地址为存储命令生成编程序号;对于指示编程操作之外的其他类型的存储命令,根据其他类型的存储命令直接生成存储介质访问命令。
62.根据本技术第三方面的第一至第六处理存储命令的方法之一,提供了根据本技术第三方面的第七处理存储命令的方法,其中还相关联地记录io命令访问的所述逻辑地址与根据io命令生成的存储命令所访问的物理地址;所述存储命令还指示了存储其对应的数据的缓存。
63.根据本技术第三方面的第一至第七处理存储命令的方法之一,提供了根据本技术第三方面的第八处理存储命令的方法,还包括:响应于第一存储命令的处理失败,识别所述第一存储命令所访问的第一字线,以及识别已向第一命存储命令访问的物理地址所在字线实施编程的一个或多个存储命令;将缓存的访问所述第一字线一个或多个存储命令移除。
64.根据本技术第三方面的第八处理存储命令的方法,提供了根据本技术第三方面的第九处理存储命令的方法,其中响应于访问所述第一字线一个或多个存储命令被移除;为访问所述第一字线一个或多个存储命令重新生成物理地址,并处理重新生成了物理地址的所述一个或多个存储命令。
65.根据本技术的第四方面,提供了根据本技术第四方面的第一处理存储命令的方法,包括:根据io命令生成一个或多个存储命令,其中io命令访问逻辑地址,存储命令访问统一介质地址;根据访问统一介质地址的存储命令生成一个或多个访问物理地址的存储命令;根据存储命令访问的物理地址为存储命令生成编程序号;按编程序号的顺序缓存存储命令;按编程序号的顺序获取一个或多个缓存的编程命令用于生成存储介质访问命令;其中获取的所述一个或多个编程命令所关联的数据在一个存储介质访问命令中被写入存储介质。
66.根据本技术第四方面的第一处理存储命令的方法,提供了根据本技术第四方面的第二处理存储命令的方法,还包括:记录被用于生成存储介质访问命令的存储命令所访问的物理地址所属的字线;响应于第一字线的所有物理页都被编程,移除所缓存的访问了第一字线的所有存储命令。
67.根据本技术第四方面的第一或第二处理存储命令的方法,提供了根据本技术第四方面的第三处理存储命令的方法,其中响应于为生成存储介质访问命令而获取的缓存存储命令的最大编程序号为n,而接下来仅获取编程序号为n+1的存储命令用来生成存储介质访问命令,其中n为正整数;若缓存的存储命令中没有编程序号为n+1的存储命令,则暂不获取存储命令。
68.根据本技术第四方面的第二或第三处理存储命令的方法,提供了根据本技术第四方面的第四处理存储命令的方法,其中响应于移除了所缓存的访问了第一字线的所有存储命令,还释放存储了所述所有存储命令对应的数据的缓存。
69.根据本技术第四方面的第一至第四处理存储命令的方法之一,提供了根据本技术
第四方面的第五处理存储命令的方法,其中;对指示编程操作的存储命令,根据存储命令访问的物理地址为存储命令生成编程序号;对于指示编程操作之外的其他类型的存储命令,根据其他类型的存储命令直接生成存储介质访问命令。
70.根据本技术第四方面的第一至第六处理存储命令的方法之一,提供了根据本技术第四方面的第七处理存储命令的方法,其中还相关联地记录io命令访问的所述逻辑地址与根据io命令生成的存储命令所访问的统一介质地址;所述存储命令还指示了存储其对应的数据的缓存。
71.根据本技术的第五方面,提供了根据本技术第五方面的第一处理存储命令的方法,包括:根据io命令生成一个或多个存储命令,其中io命令访问逻辑地址,存储命令访问统一介质地址;根据访问统一介质地址的存储命令生成一个或多个访问物理地址的存储命令;根据指示了物理地址的存储命令生成操作存储介质的存储介质访问命令。
72.根据本技术第五方面的第一处理存储命令的方法,提供了根据本技术第五方面的第二处理存储命令的方法,还包括:识别根据存储命令的统一介质地址生成的所述一个或多个指示了物理地址的存储命令都被处理完成,返回指示了统一介质地址的存储命令被处理完成。
73.根据本技术第五方面的第一或第二处理存储命令的方法,提供了根据本技术第五方面的第三处理存储命令的方法,其中根据统一介质地址指示的统一介质页所包括的一个或多个物理页,生成所述一个或多个指示了物理地址的存储命令,所述一个或多个指示了物理地址的存储命令各自访问所述一个或多个物理页之一。
74.根据本技术第五方面的第一至第三处理存储命令的方法之一,提供了根据本技术第五方面的第四处理存储命令的方法,其中根据多个存储命令各自的统一介质地址生成多个指示了物理地址的存储命令;其中,所述多个存储命令各自的统一介质地址的每个指示了统一介质页,每个统一介质页包括多个物理页的部分。
75.根据本技术第五方面的第一至第四处理存储命令的方法之一,提供了根据本技术第五方面的第五处理存储命令的方法,其中;所述多个存储命令各自的统一介质地址包括第一统一介质地址与第二统一介质地址,第一统一介质地址指示了第一统一介质页,第二统一介质地址指示了第二统一介质页;第一统一介质页包括第一多个物理页的第一部分,第二统一介质页包括所述第一多个物理页的第二部分,其中物理页的第一部分不同于物理页的第二部分。
76.根据本技术第五方面的第一至第五处理存储命令的方法之一,提供了根据本技术第五方面的第六处理存储命令的方法,其中还相关联地记录所述逻辑地址与其对应的统一介质地址;所述存储命令还指示了存储其对应的数据的缓存。
77.根据本技术第五方面的第一至第六处理存储命令的方法之一,提供了根据本技术第五方面的第七处理存储命令的方法,还包括:根据存储命令访问的物理地址为存储命令生成编程序号;按编程序号的顺序缓存存储命令;按编程序号的顺序获取一个或多个缓存的编程命令用于生成存储介质访问命令;其中获取的所述一个或多个编程命令所关联的数据在一个存储介质访问命令中被写入存储介质。
附图说明
78.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
79.图1展示了现有技术的存储设备的框图;
80.图2a展示了大块的示意图;
81.图2b展示了逻辑单元与平面(plane)的示意图;
82.图3展示了存储设备的控制部件与介质接口控制器的详细的框图;
83.图4为展示了一种3d tlc nand的物理块的写入数据的指定顺序的编程序号表;
84.图5展示了根据本技术实施例的从物理地址到编程序号的映射的示意图;
85.图6展示了根据本技术实施例的介质接口控制器的框图;
86.图7a-图7e展示了根据本技术的实施例组装存储命令的示意图;
87.图8展示了根据本技术又一实施例的从物理地址到编程序号的映射的示意图;
88.图9展示了根据本技术又一实施例的根据统一介质地址拆分存储命令的示意图;
89.图10a-10d展示了根据本技术实施例的统一介质页到物理页的映射;
90.图11a-图11c展示了根据本技术实施例处理访问统一介质页的存储命令的示意图;
91.图12展示了根据本技术又一实施例的介质接口控制器的框图。
具体实施方式
92.下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
93.图5展示了根据本技术实施例的从物理地址到编程序号的映射的示意图。
94.存储设备的控制部件响应于处理写io命令,为要写入存储介质的数据分配物理地址,并在ftl表中记录io命令的逻辑地址与分配的物理地址的映射关系。从而在后续收到读io命令时,用读io命令的逻辑地址查询ftl表以获得对应的物理地址,并用物理地址访问读出数据。
95.控制部件还提供物理地址到编程序号的映射表,从而根据物理地址查询对应的编程序号。根据厂商提供的编程序号表得到或生成物理地址到编程序号的映射表。
96.物理地址被记录在ftl表,介质接口控制器发送给nvm芯片的存储介质访问命令中也使用物理地址。而介质接口控制器根据编程序号确定多个待处理的存储介质访问命令中,向nvm芯片发送哪个存储介质访问命令(依照编程序号的升序)。
97.可选地,物理地址到编程序号的映射是分段可解析的。从而可省略物理地址到编程序号的映射表,而根据物理地址的值的范围,确定对应的映射函数,并得到编程序号。
98.依然可选地,一些存储介质的物理地址同编程序号相同。
99.根据本技术的实施例,由控制部件的cpu或介质接口控制器提供从物理地址到编
程序号的转换。从而控制部件的其他部分无须关心编程序号的存在,而依据物理地址的顺序,向介质接口控制器发出存储命令。可选地,物理地址关联于存储介质的存储单元的空间分布,存储单元的空间分布一定程度影响用所存储数据的可靠性(例如,由于交叉耦合干扰,所使用的错误校正技术等),从而控制部件的cpu得以根据物理地址而实施一定的在存储介质上组织数据的特定方式来提升可靠性或其他需求,而无须关心编程序号与编程顺序带来的影响,也无须为编程顺序的改变而更新相关处理过程。一些情况下,顺序分配物理地址以承载要写入的数据是简单的,这也为处理写io命令带来便利。
100.图6展示了根据本技术实施例的介质接口控制器的框图。
101.介质接口控制器包括编程序号生成单元、编程命令组装单元、介质访问命令生成单元、字线管理单元与数据传输单元。介质接口控制器耦合存储设备的缓存与nvm。
102.控制部件提供给介质接口控制器的存储命令首先被提供给编程序号生成单元。编程序号生成单元根据存储命令指示的物理地址,通过例如查询物理地址到编程序号的映射表得到编程序号,并将存储命令连同其编程序号提供给命令组装单元。
103.命令组装单元缓存存储命令(指示对物理页的编程操作)。并根据缓存的存储命令的编程序号,获取能用来生成介质访问命令的一个或多个存储命令提供给存储介质访问命令生成单元。作为举例,命令组装单元将缓存的存储命令按编程序号的值排序,并生成排序列表。以及从排序列表从前向后获取存储命令用来生成存储介质访问命令。用来生成存储介质访问命令的存储命令的编程序号应当是依次递增的,而不能跳跃。例如,在排序列表中的编程序号为bn的存储命令未被用来生成存储介质访问命令前,不能用编程序号为bm(m>n)的存储命令来生成存储介质访问命令。
104.从排序列表中获取并提供给介质访问命令生成单元的存储命令依然被保留在排序列表中,直到字线管理单元指示一个或多个存储命令可从排序列表中移除。编程命令组装单元向介质访问命令生成单元提供的存储命令,也被提供给字线管理单元。可选地,向字线管理单元提供存储命令中的物理地址,以减少传输的命令的大小。
105.字线管理单元记录存储介质的各字线的物理页是否已被编程。也参看图4,作为举例,l3层的区段0的字线有3个物理页(其编程序号分别为b0、b32与b33),各物理页也有自己的物理地址。字线管理单元根据接收的存储命令,识别字线的所有物理页是否已被编程(可选地,字线管理单元将存储命令发送给介质访问命令生成单元,作为该存储命令的物理地址所指示的物理页已被编程的依据)。并在识别出一字线的所有物理页已被编程后,向编程命令组装单元指示该字线的这些物理页(已被编程),从而编程命令组装单元得以释放访问这些物理页的存储命令。
106.根据本技术的实施例,字线管理单元根据物理地址识别字线的所有物理页是否都被编程,因为物理地址至少部分地反映了物理页在存储介质中的空间位置。从而根据各字线的标识,得以解析地得到其提供的物理页的物理地址。可选地,字线管理单元为每条字线记录其所提供的所有物理页的物理地址,从而响应于收到的物理地址,得以其所在的字线,并记录该字线的该物理地址已被施加了编程操作。可选地,字线管理单元根据编程序号识别字线的所有物理页是否都被编程。
107.编程命令组装单元缓存的存储命令还关联于例如dram中缓存的数据。直到字线管理单元向编程命令组装单元指示一字线的物理页已全部被编程,编程命令组装单元才将访
问这些已被编程的物理页的存储命令释放,以及也释放对应的dram中的缓存数据。
108.介质访问命令生成单元依据接收的存储命令,用其中的物理地址生成存储介质访问命令发送给nvm芯片,连同存储介质访问命令还通过数据传输单元从缓存中将要编程的数据传输到nvm芯片。
109.可选地或进一步地,若存储介质访问命令执行失败,所访问的物理页所在字线的所有物理页上已被写入的数据都需要被重新写入nvm芯片。作为举例,介质访问命令生成单元向命令组装单元指示该存储介质访问命令对应的存储命令执行失败。该执行失败的存储命令的物理地址也被提供给字线管理单元。字线管理单元识别该执行失败的存储命令所访问的物理地址所属的字线,并识别该字线的一个或多个是否已被编程。字线管理单元将该字线上已被编程的这些物理页提供给编程命令组装单元。编程命令组装单元从排序列表中移除访问了这些物理页的存储命令。这些物理页中记录的数据需要被重新写入nvm芯片的其他物理页。例如,介质接口控制器将这些存储命令提供给控制部件的cpu,由cpu重新为这些存储命令分配物理页,并再次提供给介质接口控制器处理。以及dram中缓存的写入这些物理页的数据得以被写入新分配的物理页,而无须重新为这些存储命令获取待写入nvm芯片的数据。
110.图7a-图7e展示了根据本技术的实施例组装存储命令的示意图。
111.介质接口控制器通过入站队列接收存储命令。图7a中,入站队列被添加了多个存储命令。存储命令指示了例如要访问的物理地址,例如,存储命令710要访问的物理地址为48(由addr指示物理地址)。每个存储命令关联于缓存中的数据,例如,存储命令710关联于缓存中的数据48。
112.入站队列中的例如存储命令710被取出,编程序号生成单元根据其物理地址48生成对应的编程序号(b0)。编程命令组装单元根据编程序号b0将该存储命令添加到组装命令集合,记为存储命令(720)。存储命令集合例如被组织为排序链表,其中的元素按编程序号排序。在图7a的例子中,组装命令集合仅有一个存储命令(720),其被排列在链表的表头。
113.参看图7b,入站队列中的存储命令(712)被获取,其访问物理地址49。编程序号生成单元根据物理地址49生成序号b33。编程命令组装单元根据编程序号b33将其插入到组装命令集合,由于组装命令集合中没有其他元素,因插入的编程序号b33的元素排序在编程序号为b0的元素之后。
114.编程命令组装单元还从组装命令集合中获取可提供给介质访问命令生成单元的存储命令。编程序号b0对应的存储命令是所访问的物理块的第一个可被编程的物理页,由于具有编程序号b0的存储命令在组装命令集合中,将该存储命令(720)提供给介质访问命令生成单元。图7b中,“编程位置”箭头指示的存储命令被提供给介质访问命令生成单元。以及存储命令(720)依然被记录在组装命令集合中而不被移除。
115.参看图7c,入站队列中的存储命令(714)被获取,其访问物理地址50。编程序号生成单元根据物理地址50生成序号b1。编程命令组装单元根据编程序号b31将其插入到组装命令集合,在编程序号为b0的元素之后,在编程序号为b31的元素之前。
116.由于编程序号b0的存储命令已被提供给介质访问命令生成单元,而编程序号b1的存储命令已出现在组装命令集合中,且编程序号b1是编程序号b0的紧邻下一个,因而将该存储命令(724)提供给介质访问命令生成单元。图7c中,“编程位置”箭头指示的存储命令被
提供给介质访问命令生成单元。以及编程命令(720)与存储命令(724)依然被记录在组装命令集合中而不被移除。编程命令(722)虽然较早被添加到组装命令集合中,但其编程序号b33同当前被提供给介质访问命令生成单元的存储命令的序号b1还差距很远。其前序编程序号b32对应的存储命令尚未被提交给介质访问命令生成单元,因而编程序号b33对应的存储命令也不会被提交给介质访问命令生成单元。
117.存储命令被继续添加到组装命令集合,也继续根据编程序号依次将存储命令提供给介质访问命令生成单元。参看图7d,多个存储命令已被按编程序号的顺序添加到组装命令集合。“编程位置”箭头指示的编程序号为b2的存储命令已被提交给介质访问命令生成单元。编程序号为b33的存储命令已被插入到组装命令集合。
118.参看图7e,“编程命令”箭头指示的编程序号为b32与b33的存储命令被提交给介质访问命令生成单元。作为举例,也参看图4,存储介质是tlc类型。编程序号b32与编程序号b33的两个存储命令分别访问相同字线的csb页与msb页,这两个存储命令被一同提供给介质访问命令生成单元,并且介质访问命令生成单元根据这两个存储命令生成单一的存储介质访问命令。
119.进一步地,字线管理单元知晓这两个存储命令被提交给介质访问命令生成单元,并识别出属于相同字线(例如,参看图4,l3层区段0的字线,记为字线wl0)的编程序号分别为b0、b32与b33的三个物理页都已被提交介质访问命令生成单元。从而字线管理单元向编程组装单元指示字线wl0的编程已完成。作为响应。编程命令组装单元从组装命令集合中移除这三个存储命令(其编程序号分别为b0、b32与b33)。相应地,这三个存储命令对应的缓存被释放。继而,介质接口控制器还向例如控制部件的cpu或其他部件发出消息以指示这三个存储命令被处理完成。可选地,由控制部件的cpu或其他部件释放同这三个存储命令对应的缓存。
120.图8展示了根据本技术又一实施例的从物理地址到编程序号的映射的示意图。
121.存储设备的nvm芯片有多种规格。为降低对存储设备的nvm芯片的替换或升级引起的对控制部件的存储介质管理功能的修改,根据本技术的又一实施例,提供了统一介质地址。存储介质管理功能使用统一介质地址管理存储介质,包括分配、垃圾回收、磨损均衡等。介质接口控制器或控制部件的其他组件根据所使用的具体nvm芯片,将统一介质地址转换为nvm芯片的物理地址。
122.参看图8,存储设备的控制部件响应于处理写io命令,为要写入存储介质的数据分配统一介质地址,并在ftl表中记录io命令的逻辑地址与分配的统一介质地址的映射关系。从而在后续收到读io命令时,用读io命令的逻辑地址查询ftl表以获得对应的统一介质地址,并用统一介质地址访问读出数据。
123.统一介质地址代表统一介质。统一介质具有同nvm芯片类似的几何特征,例如包括统一逻辑单元、统一块与统一页。统一介质按统一块擦除,按统一页写入或读取。作为举例,统一介质的逻辑单元、统一块与存储设备的nvm芯片的逻辑单元与物理块分别对应一致。而统一页的大小是该nvm芯片的物理页的2倍。该nvm芯片包括平面(plane)。统一页被映射到相同逻辑单元的两个平面的各自的具有相同物理块号与相同物理页地址的两个物理页。
124.在另一个例子中,统一页的大小是nvm芯片的物理页的4倍。该nvm芯的逻辑单元包括4个平面(plane)。统一页被映射到相同逻辑单元的四个平面的各自的具有相同物理块号
与相同物理页地址的四个物理页。
125.对于指定的存储设备,统一页与nvm芯片的物理页的映射方式是已知的。从而从统一介质地址到物理地址的映射是可解析的。对于上面统一页由2个物理页组成的例子,为统一介质地址添加1比特平面地址得到物理页地址。以及为对单一统一页的编程操作,被拆分为向2个物理页的编程操作,这2个物理页的物理地址的指示平面的比特分别指示了提供这两个物理页的平面。
126.统一介质地址到物理地址的映射由例如介质接口控制器实施。而在ftl表同逻辑地址相关联地记录的是统一介质地址。从而在响应读操作时,通过ftl表也获取到统一介质地址,并经由相同的统一介质地址到物理地址的映射方式得到物理地址。
127.根据本技术的实施例,物理地址还被映射到编程序号。从物理地址到编程序号的映射同在图5中展示的一致,在此不再赘述。
128.可选地,统一介质地址关联于物理地址,而物理地址关联于存储介质的存储单元的空间分布,存储单元的空间分布一定程度影响用所存储数据的可靠性,从而控制部件的cpu得以根据统一介质地址而实施一定的在存储介质上组织数据的特定方式来提升可靠性或其他需求,而无须关心编程序号与编程顺序带来的影响,也无须为编程顺序的改变而更新相关处理过程。一些情况下,顺序分配统一介质地址以承载要写入的数据是简单的,这也为处理写io命令带来便利。
129.根据图8展示的实施例,即使更换了nvm芯片,控制部件依旧使用统一地址管理存储介质,而由介质控制器根据nvm芯片的具体特征,提供从统一介质地址到物理地址的映射。
130.图9展示了根据本技术又一实施例的根据统一介质拆分存储命令的示意图。
131.在图9的例子中,统一页被映射到相同逻辑单元的四个平面的各自的具有相同物理块号与相同物理页地址的四个物理页。从而访问统一页的统一介质地址,被拆分为4个访问物理页的物理地址(910、920、930、940)。这四个物理地址分别指示提供组成统一页的四个物理页的四个平面(平面0、平面1、平面2与平面3)。
132.根据每个物理地址,还得到对应的编程序号(912、922、932与942)。介质接口控制器,根据编程序号912与物理地址910访问平面0,根据编程序号922与物理地址920访问平面1,根据编程序号932与物理地址930访问平面2,根据编程序号942与物理地址940访问平面3。
133.访问统一介质地址的存储命令被拆分为对应4个物理地址的存储命令。这4个访问物理地址的存储命令被处理完成后,意味着该访问统一介质地址的存储命令被处理完成。
134.图10a-10d展示了根据本技术实施例的统一介质页到物理页的映射。
135.参看图10a,统一介质页由4个物理页组成,这些物理页具有相同的逻辑单元地址、物理块号与物理页编号,而每个物理页各自位于不同的平面(平面0、平面1、平面2与平面3)。作为举例,统一介质页的大小是16kb,而物理页的大小是4kb。
136.参看图10b,统一介质页由2个物理页组成,这些物理页具有相同的逻辑单元地址、物理块号与物理页编号,而每个物理页各自位于不同的平面(平面0与平面1)。作为举例,统一介质页的大小是16kb,而物理页的大小是8kb。
137.参看图10c,统一介质页由2个物理页组成,这些物理页位于相同逻辑单元、相同物
理块与相同的平面,并各自具有不同的物理页号。为了便于从统一页到物理页的地址转换,组成统一页的两个物理页的物理页号除指定比特(例如,最低位)不同外,其余比特均相同。作为举例,统一介质页的大小是16kb,而物理页的大小是8kb。
138.参看图10d,2个统一介质页(1010与1020)由4个物理页(1030、1032、1034与1036)交织地组成。作为举例,统一介质页的大小是16kb,物理页的大小是8kb。统一介质页1010由物理页1030、物理页1032、物理页1034与物理页1036的前半部分(4kb大小)组成,统一介质页1020由物理页1030、物理页1032、物理页1034与物理页1036的后半部分(4kb大小)组成。通过将统一介质页分散到多个物理页,在从统一介质页读出数据时,向4个物理页同时发出存储介质访问(读)命令,从而将读16kb数据的时间缩短为并行读4份4kb数据的时间,缩短了读命令处理延迟。通过将数据分布在多个物理页中,在单个物理页损坏的情况下,也有助于从其他物理页通过容错技术重构数据。
139.根据图10d的例子,统一介质页1010与统一介质页1020的统一地址相关,例如相邻。从而每接收到访问相邻统一介质页的存储命令,得以向4个物理页写入数据。若响应于收到一个访问统一介质页的存储命令,要暂时缓存该存储命令,并等待收到另一个访问相同统一介质页的存储命令,以便生成访问4个物理页的存储命令。每个物理页记录了来自两个统一介质页的数据。
140.可以理解地,有其他方式由多个物理地址页交织地组成多个统一介质页。
141.图11a-图11c展示了根据本技术实施例处理访问统一介质页的存储命令的示意图。
142.参看图11a,统一介质页由2个物理页组成。读统一介质页的存储命令被提供给介质接口控制器。介质接口控制器将读统一介质页的存储命令拆分为访问两个物理页的存储介质访问(读)命令并提交给nvm芯片。介质接口控制器还响应于这两个存储介质访问(读)命令处理完成,生成指示读统一介质页的存储命令处理完成的消息。
143.参看图11b,统一介质页由2个物理页组成。写统一介质页的存储命令被提供给介质接口控制器。介质接口控制器将写统一介质页的存储命令拆分为访问两个物理页的存储介质访问(写)命令并提交给nvm芯片。介质接口控制器还响应于这两个存储介质访问(写)命令处理完成,生成指示写统一介质页的存储命令处理完成的消息。
144.参看图11c,统一介质块由2个物理块组成。擦除统一介质块的存储命令被提供给介质接口控制器。介质接口控制器将擦除统一介质块的存储命令拆分为访问两个物理块的存储介质访问(擦除)命令并提交给nvm芯片。介质接口控制器还响应于这两个存储介质访问(擦除)命令处理完成,生成指示擦除统一介质块的存储命令处理完成的消息。
145.图12展示了根据本技术又一实施例的介质接口控制器的框图。
146.介质接口控制器包括命令映射单元、编程序号生成单元、编程命令组装单元、介质访问命令生成单元、字线管理单元与数据传输单元。介质接口控制器耦合存储设备的缓存与nvm。
147.控制部件提供给介质接口控制器的存储命令是访问统一介质地址的存储命令。介质接口控制器的命令映射单元,将存储命令中的统一介质地址映射为物理地址。统一介质地址与物理地址的映射方式被配置给命令映射单元,例如,将一个访问统一介质地址的存储命令拆分为多个存储命令,在统一介质地址的指定位置插入指示平面的一个或多个比特
作为物理地址。可选地,统一介质地址与物理地址相同,以及将访问统一介质地址的存储命令作为访问物理地址的存储命令。
148.命令映射单元还识别存储命令的类型。将指示编程操作的存储命令提供给编程序号生成单元,而将指示其他操作的存储命令提供给分发单元。分发单元根据存储命令操作介质访问命令生成单元,生成存储介质访问命令。命令分发单元还获取存储命令的处理结果并提供给命令映射单元。
149.可选地,命令映射单元还为访问物理地址的存储命令生成缓存索引。访问统一介质地址的存储命令携带了一个或多个缓存索引,其指示容纳了统一介质页对应数据的缓存空间。根据生成的每个访问物理地址的存储命令,生成其所需的一个或多个缓存索引,以指示容纳了对应物理页的数据的缓存空间。例如,访问统一介质地址的存储命令对应的缓存空间为从地址a开始的连续16kb空间,生成的4个访问物理地址的存储命令各自对应的缓存空间为从地址a开始的连续4kb空间,从地址a+4kb开始的连续4kb空间,从地址a+8kb开始的连续4kb空间,与从地址a+12kb开始的连续4kb空间。
150.同图6展示的实施例类似地,编程序号生成单元根据存储命令指示的物理地址,得到编程序号。编程命令组装单元、字线管理单元与介质访问命令生成单元共同处理指示编程操作的存储命令。字线管理单元在识别出一字线的所有物理页已被编程后,向编程命令组装单元指示该字线的这些物理页(已被编程),从而编程命令组装单元得从组装命令集合中释放访问这些物理页的存储命令,并向命令映射单元指示这些存储命令的处理结果。
151.命令处理单元还识别从一条访问统一介质地址的存储命令拆分出的所有访问物理地址的存储命令都被处理完成,并返回该访问统一介质地址的存储命令的处理结果。
152.在可选的实施方式中,命令映射单元按交织方式将每指定数量的访问统一介质地址的存储命令,拆分为多个访问物理地址的存储命令。并且在这些拆分得到的访问物理地址的存储命令都被处理完成后,返回这些访问统一介质地址的存储命令都处理完成的消息。
153.例如,将每2个访问统一介质地址的存储命令,拆分为4个访问物理地址的存储命令(也参看图10d)。每个访问物理地址的存储命令,访问该2个访问统一介质地址的存储命令访问的部分空间。例如,2个访问统一介质地址的存储命令各自访问统一介质页u1与u2,该4个访问物理地址的存储命令各自访问物理页p1、p2、p3与p4,其中这4个物理页的每个的前半部分存储空间用于容纳统一介质页u1的数据,而这4个物理页的每个的后半部分存储空间用于容纳统一介质页u2的数据。可选地,命令映射单元还为生成的每个访问物理地址的存储命令,生成多个缓存索引,其指示容纳要写入各物理页的数据的多段缓存空间。
154.可选地或进一步地,若存储介质访问命令执行失败,介质访问命令生成单元向命令组装单元指示该存储介质访问命令对应的存储命令执行失败。字线管理单元识别该执行失败的存储命令所访问的物理地址所属的字线,并识别该字线的一个或多个是否已被编程。字线管理单元将该字线上已被编程的这些物理页提供给编程命令组装单元。编程命令组装单元从排序列表中移除访问了这些物理页的存储命令。根据排序表中的这些存储命令还获得用于生成这些存储命令的一个或多个访问统一介质地址的存储命令。
155.一个或多个访问统一介质地址的存储命令所对应的数据需要被重新写入nvm芯片的其他物理页。例如,介质接口控制器将该一个或多个访问统一介质地址的存储命令提供
给控制部件的cpu,由cpu重新为这些存储命令分配统一介质页,并再次提供给介质接口控制器处理。以及dram中缓存的写入这些统一介质页的数据得以被写入新分配的统一介质页,而无须重新为这些存储命令获取待写入nvm芯片的数据。
156.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1