处理IO命令的方法及其控制部件与流程

文档序号:26848659发布日期:2021-10-09 01:13阅读:162来源:国知局
处理IO命令的方法及其控制部件与流程
处理io命令的方法及其控制部件
技术领域
1.本技术涉及存储设备技术,尤其涉及在nvm(non volatile memory,非易失存储器)存在坏块的情况下,处理io命令的方法及其控制部件。


背景技术:

2.图1展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serial advanced technology attachment,串行高级技术附件)、scsi(small computer system interface,小型计算机系统接口)、sas(serial attached scsi,串行连接scsi)、ide(integrated drive electronics,集成驱动器电子)、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(ferroelectric ram,铁电存储器)、mram(magnetic random access memory,磁阻存储器)、rram(resistive random access memory,阻变存储器)、xpoint存储器等是常见的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.申请号为201510253428.1、专利名称为“微指令序列执行方法及其装置”的中国专利中提供了介质接口控制器的例子,通过执行微指令,将存储介质访问命令施加给nvm芯片。申请号为2020106080147、专利名称为“自适应nvm读取方法及其装置”的中国专利申请,
申请号为“202010615178.2”、专利名称为“智能读重做方法及其介质接口控制器”的中国专利申请,申请号为“202010207004.2”、专利名称为“用于读命令融合的介质接口控制器及存储控制器”的中国专利申请,申请号为201810380329.3、专利名称为“乱序执行nvm命令的方法与装置”的中国专利,申请号为201610836531.3、专利名称为“生成nvm芯片接口命令的方法与装置”的中国专利申请中均提供了介质接口控制器的例子。
8.图2展示了存储设备的控制部件的详细的框图。
9.主机以遵循存储协议的io命令访问存储设备。控制部件根据来自主机的io命令,生成一个或多个存储命令并提供给介质接口控制器。介质接口控制器根据存储命令生遵循nvm芯片的接口协议的存储介质访问命令(例如,编程命令、读命令、擦除命令)。控制部件还跟踪从一个io命令生成的所有存储命令都被执行完成,并向主机指示io命令的处理结果。
10.参看图2,控制部件包括例如主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器与存储介质管理单元。主机接口获取主机提供的io命令,并生成存储命令提供给存储命令处理单元。存储命令例如访问相同大小的存储空间,例如4kb。将nvm芯片中记录的对应一个存储命令所访问数据的数据单元称为数据帧。物理页记录一个或多个数据帧。例如,物理页的大小17664字节,而数据帧大小为4kb,则一个物理页能存储4个数据帧。
11.存储介质管理单元为每个存储命令维护逻辑地址到物理地址的转换。例如,存储介质管理单元包括ftl表。对于读命令,存储介质管理单元输出存储命令所访问的逻辑地址对应的物理地址,对于写命令,存储介质管理单元为其分配可用的物理地址,并记录其访问的逻辑地址与分配的物理地址的映射关系。存储介质管理单元还维护诸如垃圾回收、磨损均衡等管理nvm芯片所需的功能。
12.存储命令处理单元根据存储介质管理单元提供的物理地址,操作介质接口控制器向nvm芯片发出存储介质访问命令。为了清楚的目的,将存储命令处理单元发送给介质接口控制器的命令称为介质接口命令,而将介质接口控制器发送给nvm芯片的命令称为存储介质访问命令。存储介质访问命令遵循nvm芯片的接口协议。
13.nvm芯片包括一个或多个逻辑单元(logic unit,lun)。nvm芯片封装内可包括一个或多个管芯(die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(plane)。逻辑单元内的多个平面可以并行存取,而nvm芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/documents/products/other%20documents/onfi3_0gold.as hx获得的“open nand flash interface specification(revision 3.0)”中,提供了关于目标(target)、逻辑单元、平面(plane)的含义,其为现有技术的一部分。本技术中,除非另外指出,目标(target)与逻辑单元(lun)的使用可互换。
14.nvm芯片通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页(也称为物理页)。物理页具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。每个平面(plane)可以包括多个物理块。在nvm芯片中来自多个逻辑单元,且具有相同的物理地址的物理块进而组成大块。为大块提供物理块的多个逻辑单元被称为逻辑单元组,逻辑单元组中的每个逻辑单元可为大块提供一个物理块。
15.例如,图3a展示了大块构造示意图,在图3a中,在每16个逻辑单元上构造大块,每个大块包括来自16个逻辑单元的物理块,在图3a中大块0包括来自16个逻辑单元中每个逻
辑单元的物理块0,而大块2包括来自每个逻辑单元的物理块2,也可以用其他的方式构造大块,作为举例,在申请号为201710752321.0的中国申请专利中,提供了大块的其他构造方式。另外在图3a中,用形如bb

a的附图标记指示物理块,其中a指示该物理块由逻辑单元(luna)提供,而b指示该物理块在逻辑单元中的块号为b。
16.图3b展示了逻辑单元与平面(plan)的示意图。每个逻辑单元(lun)包括多个平面(plan)。参见图3b,在16个逻辑单元(lun0、lun1、lun2、

、lun15)的逻辑单元上构造大块,lun0

lun15的物理块b0构成大块0,lun0

lun15的物理块b1构成大块1。以lun2为例,lun2包括4个平面(平面0、平面1、平面2和平面3,其中,在图3b中示出平面0和平面3,平面1和平面2并未示出),lun内的各个平面可以同时进行读写操作,以提升nvm操作的并行性。
17.随着时代的发展,为了满足海量数据存储,nvm的存储容量也越来越大。大容量的nvm拥有更多的逻辑单元(lun),每个lun包括更多的物理块。工厂中制造出的nvm不可避免的存在坏块。坏块的出现与分布通常是随机的。nvm在出厂时既存在坏块,以及随着时间的流逝和被使用,nvm上会出现新的坏块。控制部件的存储介质管理单元对坏物理块进行管理以及存储坏物理块信息(例如通过ftl算法)。为了识别和管理坏块,nvm出厂时会被标记坏块的位置。在包括nvm的存储设备的制造过程中,会扫描其所包括的nvm以识别其中的坏块,这里的坏块既包括nvm出厂时的既有坏块,也包括出厂后新产生的坏块。控制部件记录每个坏块的位置(例如物理地址、块号或指示坏块的位图),以便于存储介质管理单元知晓坏块的存在,以及正常的物理块替代坏块。现有技术中,控制部件在记录坏物理块信息的方法是每一个坏物理块生成一个坏物理块比特存储到nvm的指定物理块中,而对于大容量存储设备需要消耗更多的存储资源来存储坏块信息。


技术实现要素:

18.nvm具有多种规格。例如,相同或不同厂家的nvm,其物理块数量与大小、物理页数量与大小等各不相同,这为控制部件管理nvm引入了额外的负担。为了便于使用多样化的nvm,控制部件或其存储介质管理单元将多样化的nvm组织为标准的或统一的形态。例如统一形态物理块包括1000个物理页,每个物理页大小为16kb。可以理解的,1000个物理页、16kb这些均为举例。依然作为举例,一款nvm芯片,其物理块实际包括512个物理页,每个物理页大小为16kb。此时,将这款nvm芯片的2个物理块组合得到统一形态的物理块,每个真实物理块为统一形态的物理块提供500个物理页,余下的物理页保留或不使用。可以理解的,根据nvm芯片的实际规格,用一个或多个真实的物理块构建统一形态的物理块。为了简单的目的,下文中也将统一形态的物理块称为“合并块”。使用合并块也有助于使用更少的存储资源来存储物理块(合并块)信息。
19.一般地,将相邻的物理块组合得到合并块,从而合并块的块地址(块号)同构成该合并块的物理块的块地址存在直接映射关系。例如,在合并块的块地址后追加1比特,即得到构成该合并块的2个物理块各自的块地址。以及根据沟通合并块的物理块的地址或物理块号,去掉块地址或块号的最低比特得到合并块地址或合并块号。
20.然而,由于nvm的坏块的存在,为构建合并块(统一形态的物理块)增加了复杂度。一方面,由于相邻的两个或多个物理块中存在坏块的几率成倍增加(倍数等于构成合并块的物理块数),一旦某物理块是坏块,与其相同的物理块所构造的合并块无法被使用,这导
致对nvm的存储资源(物理块)的浪费;另一方面,现有技术的坏(物理)块的替换技术无法应用于合并块,因为各合并块中的坏物理块分布情况各异,而不能直接用合并块替换另一合并块。通过块替换技术,将nvm中一些偶然存在的坏块,替换为具有不同地址的正常块,并且在坏块的物理地址被访问时,该访问由替换了该坏块的正常块所响应。从而块替换技术构建出逻辑块空间,这里的“逻辑块空间”不同于lba(逻辑区块地址)所构成的逻辑地址空间,而是意在表达逻辑块空间包括连续的块号,每个块号都可正常访问。在使用了合并块时,逻辑块空间的块号代表合并块号,而当某物理块为坏块时,用其他正``常的合并块服务于坏块所对应的逻辑块空间中的合并块号,以使得上层系统或控制部件的其他部分得以操作完全由正常块构成的逻辑块空间而无需再考虑坏块的影响。
21.在此情况下,希望构造出不包含坏块的逻辑块空间,以便于上层使用。
22.本技术实施例所提供的方案,控制部件通过在第一信息表每个条目中记录至少两个物理块合并所得到的一次合并的合并块的信息,意味着控制部件可通过第一信息表中每个条目来记录多个物理块的信息,从而能够消耗尽可能少的存储资源来存储物理块信息;控制部件除了记录一次合并的合并块的信息,还记录第一合并块中坏物理块的第一物理地址以及其对应的第二合并块中好物理块的第二物理地址的关联关系,并根据关联关系将第一合并块中好物理与第二合并块中的好物理进行合并得到二次合并的好物理块,在nvm芯片会存在天然的坏物理块情况下,构造出不包含坏物理块且地址连续的逻辑块空间,以便于上层使用,进而提高存储设备的性能。
23.根据本技术的第一方面,提供了根据本技术第一方面的第一nvm坏块管理的方法,包括:对每个逻辑单元(lun)中物理块进行扫描生成第一信息表,其中,第一信息表包括多个条目,每个条目包括一次合并的合并块的信息,每个合并块包含至少两个物理块;根据第一信息表确定出第一类合并块和第二类合并块,从第一类合并块中确定出至少一个第一合并块以及从第二类合并块中确定出与每个第一合并块对应的第二合并块,其中,第一类合并块与第二类合并块是不同合并块,且第一合并块包含坏物理块,第二合并块包含好物理块,第二合并块中的好物理块能替代第一合并块中的坏物理块进行数据存储;确定每个第一合并块中坏物理块的第一物理地址以及其对应的第二合并块中好物理块的第二物理地址,记录第一物理地址和第二物理地址的关联关系。
24.根据本技术第一方面的第一nvm坏块管理的方法,提供了根据本技术第一方面的第二nvm坏块管理的方法,每个合并块,包括:同一平面(plane)内至少两个物理地址相邻的物理块;或相同逻辑单元(lun)的多个平面内至少两个物理地址相同的物理块。
25.根据本技术第一方面的第二nvm坏块管理的方法,提供了根据本技术第一方面的第三nvm坏块管理的方法,一次合并的合并块的信息,包括:合并块的类型以及合并块中各个物理块的信息,其中,合并块的类型包括一次合并的好合并块和坏合并块,坏合并块包括第一类坏合并块和第二类坏合并块,第一类坏合并块为所有物理块均为坏物理块,第二类坏合并块包含好物理块和坏物理块,一次合并的好合并块为所有物理块均为好物理块。
26.根据本技术第一方面的第一、第二或第三nvm坏块管理的方法,提供了根据本技术第一方面的第四nvm坏块管理的方法,还包括:合并第一合并块以及与其对应的第二合并块中的好物理块得到二次合并的好合并块;其中,二次合并的好合并块的物理块数量同合并块的物理块数量相同,二次合并的好合并块的所有物理块均为好物理块。
27.根据本技术第一方面的第四nvm坏块管理的方法,提出了根据本技术第一方面的第五nvm坏块管理的方法,第二类坏合并块,包括:高比特位为好物理块高比特位为坏物理块的合并块或高比特位为坏物理块高比特位为好物理块的合并块,其中,高比特位和高比特位是指存储合并块中各个物理块的信息所占用的两比特中的高比特位和高比特位。
28.根据本技术第一方面的第四或第五nvm坏块管理的方法,提出了根据本技术第一方面的第六nvm坏块管理的方法,第二类合并块至少包括一次合并的好合并块和/或第二类坏合并块;第一类合并块至少包括第二类坏合并块。
29.根据本技术第一方面的第一至第六任一项nvm坏块管理的方法,提出了根据本技术第一方面的第七nvm坏块管理的方法,根据第一信息表确定出第一类合并块和第二类合并块,包括:根据第一信息表确定出存储设备的各个大块中坏合并块的数量,根据数量确定出第一类合并块和第二类合并块。
30.根据本技术第一方面的第七nvm坏块管理的方法,提出了根据本技术第一方面的第八nvm坏块管理的方法,根据数量确定出第一类合并块和第二类合并块,包括:将坏合并块数量最多的指定数量的第一大块中所有的合并块或其中所有包括至少一个好物理块的合并块作为第二类合并块,从存储设备中除第一大块之外的其他大块的合并块获取第一类合并块;或将数量大于预设阈值的第二大块中所有的合并块或其中所有包括至少一个好物理块的合并块作为第二类合并块,从存储设备中除第二大块之外的其他大块的合并块获取第一类合并块。
31.根据本技术第一方面的第一至第八任一项nvm坏块管理的方法,提出了根据本技术第一方面的第九nvm坏块管理的方法,从第一类合并块中确定出至少一个第一合并块以及从第二类合并块中确定出与每个第一合并块对应的第二合并块,包括:对于第一类合并块的合并块a,若存在未被分配且同合并块a处于相同逻辑单元内的第二类合并块的一个或多个合并块b,则将同合并块a的物理地址最接近的合并块b分配给合并块a,以及将合并块a与该被分配的合并块b作为对应的第一合并块与第二合并块。
32.根据本技术第一方面的第九nvm坏块管理的方法,提出了根据本技术第一方面的第十nvm坏块管理的方法,还包括:对于第一类合并块的合并块a,若不存在未被分配且同合并块a处于相同逻辑单元内的第二类合并块的合并块b,则将合并块a所在大块的合并块作为第二类合并块。
33.根据本技术第一方面的第九或第十nvm坏块管理的方法,提出了根据本技术第一方面的第十一nvm坏块管理的方法,还包括:对于第一类合并块的合并块a,若存在未被分配且同合并块a处于相同逻辑单元内的相同平面内的第二类合并块的一个或多个合并块b,则将同合并块a的物理地址最接近的合并块b分配给合并块a,以及将合并块a与该被分配的合并块b作为对应的第一合并块与第二合并块。
34.根据本技术第一方面的第十一nvm坏块管理的方法,提出了根据本技术第一方面的第十二nvm坏块管理的方法,还包括:对于第一类合并块的合并块a,若不存在未被分配且同合并块a处于相同逻辑单元内的相同平面内的第二类合并块的合并块b,则将合并块a所在大块的合并块作为第二类合并块。
35.根据本技术第一方面的第一至第十二任一项nvm坏块管理的方法,提出了根据本技术第一方面的第十三nvm坏块管理的方法,从第一类合并块中确定出至少一个第一合并
块以及从第二类合并块中确定出与每个第一合并块对应的第二合并块,包括:分别根据第一信息表从处于同一逻辑单元(lun)内的第一类合并块中确定出多个第三合并块和其第一数量以及从第二类合块中确定出多个第四合并块和其第二数量,其中,第三合并块包含好物理块和坏物理块,第四合并块包含都是好物理块或好物理块和坏物理块;根据第一数量和第二数量确定出第一合并块和第二合并块。
36.根据本技术第一方面的第十三nvm坏块管理的方法,提出了根据本技术第一方面的第十四nvm坏块管理的方法,根据第一数量和第二数量确定出第一合并块和第二合并块,包括:若第一数量不大于第二数量,将每个第三合并块作为一个第一合并块,将与每个第一合并块距离最近的第四合并块作为其对应的第二合并块;或若第一数量大于第二数量,将每个第四合并块最为一个第二合并块,将与每个第二合并块距离最近的第一合并块为其对应的第一合并块。
37.根据本技术第一方面的第十四nvm坏块管理的方法,提出了根据本技术第一方面的第十五nvm坏块管理的方法,还包括:若第一数量大于第二数量,确定出至少一个第三合并块中没有与其对应的第二合并块的第五合并块;将第五合并块所对应的行中的所有合并块作为第二类合并块。
38.根据本技术第一方面的第一至第十五任一项nvm坏块管理的方法,提出了根据本技术第一方面的第十六nvm坏块管理的方法,还包括:将第一信息表中每个第一合并块所对应的合并块类型由一次合并的坏合并块调整为二次合并的好合并块得到第二信息表;或生成第二信息表,其中,第二信息表中每个条目包含二次合并的合并块的信息,第二信息表中每个条目的索引与对应的第一信息表中第一合并块的索引相同。
39.根据本技术第一方面的第三至第十六任一项nvm坏块管理的方法,提出了根据本技术第一方面的第十七nvm坏块管理的方法,还包括:根据第二信息表和关联关系生成第三信息表,其中,第三信息表中每个条目包含二次合并的好合并块中各个物理块的来源信息。
40.根据本技术第一方面的第十七nvm坏块管理的方法,提出了根据本技术第一方面的第十八nvm坏块管理的方法,来源信息包括如下至少一种信息:构成二次合并的好合并块的两个物理块中,提供第一物理块的合并块的构成合并块的各个物理块的信息的高比特指示好物理块,低比特指示坏物理块,提供第二物理块的合并块的构成合并块的各个物理块的信息的高比特指示好物理块,低比特指示坏物理块;提供第一物理块的合并块的构成合并块的各个物理块的信息的低比特指示好物理块,高比特指示坏物理块,提供第二物理块的合并块的构成合并块的各个物理块的信息的低比特指示坏物理块,高比特指示好物理块;提供第一物理块的合并块的构成合并块的各个物理块的信息的高比特指示好物理块,低比特指示好物理块,提供第二物理块的合并块的构成合并块的各个物理块的信息的低比特指示好物理块,高比特指示坏物理块;提供第一物理块的合并块的构成合并块的各个物理块的信息的高比特指示坏物理块,低比特指示好物理块,提供第二物理块的合并块的构成合并块的各个物理块的信息的高比特指示坏物理块,低比特指示好物理块。
41.根据本技术第一方面的第十七或第十八nvm坏块管理的方法,提出了根据本技术第一方面的第十九nvm坏块管理的方法,还包括:将第二信息表、第三信息表以及关联关系存放在每个逻辑单元(lun)的指定物理块中。
42.根据本技术第一方面的第十九nvm坏块管理的方法,提出了根据本技术第一方面
的第二十nvm坏块管理的方法,关联关系以地址映射表的形式存放。
43.根据本技术第一方面的第十六至第二十任一项nvm坏块管理的方法,提出了根据本技术第一方面的第二十一nvm坏块管理的方法,第二信息表中第一合并块所对应的合并块的信息,包括:标记位、第一合并块的类型以及与其对应的第二合并块的类型,其中,标记位用于标记第一合并块中的坏块是否能被第二合并块所替代。
44.根据本技术第一方面的第二十一nvm坏块管理的方法,提出了根据本技术第一方面的第二十二nvm坏块管理的方法,合并块的信息占用8比特,其中,标记位占用1比特、第二合并块的类型和第一合并块的类型均占用3比特。
45.根据本技术的第二方面,提供了根据本技术第二方面的一种控制部件,包括处理器及存储器,存储器存储有程序代码,当程序代码由处理器运行时,执行第一方面第一至第二十二任一项nvm坏块管理的方法。
46.根据本技术的第三方面,提供了根据本技术第三方面的第一处理io命令的方法,包括:接收主机发送的i/o命令,获取i/o命令要访问的合并块;获取构成合并块的一个或多个物理块;访问合并块的一个或多个物理块以响应i/o命令。
47.根据本技术第三方面的第一处理io命令的方法,提出了根据本技术第三方面的第二处理io命令的方法,合并块包括一次合并的好合并块和二次合并的好合并块,其中,一次合并的好合并块是指由至少两块好物理块一次合并得到的合并块,一次合并的好合并块为所有物理块均为好物理块;二次合并的好合并块是指合并第一合并块以及与其对应的第二合并块中的好物理块得到的合并块,二次合并的好合并块的所有物理块均为好物理块,第一合并块和第二合并块均为一次合并的合并块,且第一合并块中至少包含坏物理块,第二合并块中至少包含好物理块,第二合并块中的好物理块能替代第一合并块中的坏物理块进行数据存储。
48.根据本技术第三方面的第一或第二处理io命令的方法,提出了根据本技术第三方面的第三处理io命令的方法,获取构成合并块的一个或多个物理块,包括:判断合并块是否为一次合并的好合并块或二次合并的好合并块;若该合并块是一次合并的好合并块,则根据该一次合并的好合并块的编号或索引确定构成该一次合并的好合并块中的一个或多个物理块。
49.根据本技术第三方面的第三处理io命令的方法,提出了根据本技术第三方面的第四处理io命令的方法,还包括:若合并块是二次合并的好合并块,则查询第三信息表获取二次合并的好合并块所对应的好物理块,其中,第三信息表中每个条目包含二次合并的好合并块中各个物理块的来源信息。
50.根据本技术第三方面的第一至第四任一项处理io命令的方法,提出了根据本技术第三方面的第五处理io命令的方法,提出了根据本技术第二方面的第六访问存储设备的方法,若i/o命令为读命令或写命令,访问该合并块的一个物理块以响应i/o命令。
51.根据本技术第三方面的第四或第五处理io命令的方法,提出了根据本技术第三方面的第六处理io命令的方法,若i/o命令为擦除命令,擦除该合并块的所有物理块以响应i/o命令。
52.根据本技术第三方面的第四或第五处理io命令的方法,提出了根据本技术第三方面的第七处理io命令的方法,还包括:若i/o命令为写命令,所述获取i/o命令要访问的合并
块包括从未写满的合并块中选择出一合并块;所述访问合并块的一个或多个物理块以响应i/o命令包括,将写命令所对应的数据写入从构成所选择的合并块的物理块所分配的存储空间。
53.根据本技术第三方面的第七处理io命令的方法,提出了根据本技术第三方面的第八处理io命令的方法,将该合并块所对应的存储空间分配给所述写命令,包括:识别该合并块是否为二次合并的好合并块;若是,则通过查询第三信息表得到该合并块中各个物理块的来源信息,根据所述来源信息将该合并块中部分或全部物理块所对应的存储空间分配给所述写命令。
54.根据本技术第三方面的第四或第八处理io命令的方法,提出了根据本技术第三方面的第九处理io命令的方法,接收主机发送的读命令,根据ftl表查询读命令所携带逻辑区块地址对对应的物理块的物理地址;根据读命令从所述物理地址所对应的物理块中读取数据,并发送给主机。
55.根据本技术的第四方面,提供了根据本技术第四方面的第一处理io命令的方法,其特征在于,包括:接收主机发送的写命令;从未写满的合并块中选择出一合并块;从所选择的合并块中分配存储空间;将所述写命令对应的数据写入所分配的存储空间;记录写命令对应的逻辑区块地址与所分配的存储空间的物理地址。
56.根据本技术第四方面的第一处理io命令的方法,提供了根据本技术第四方面的第二处理io命令的方法,还包括:接收主机发送的读命令;查询读命令所访问的逻辑区块地址对应的物理地址;从物理地址对应的存储空间读出数据以响应所述读命令。
57.根据本技术第四方面的第一或第二处理io命令的方法,提供了根据本技术第四方面的第三处理io命令的方法其中所述从所选择的合并块中分配存储空间包括,若所选择的合并块是一次合并的好合并块,根据所选择的合并块号确定一个或多个物理块;若所选择的合并块是二次合并的好合并块,查询信息表确定一个或多个物理块;从该一个或多个物理块中分配所述存储空间。
58.根据本技术第四方面的第三处理io命令的方法,提供了根据本技术第四方面的第四处理io命令的方法,其中根据所选择的合并块的块号查询信息表,确定所选择的合并块是一次合并的好合并块,还是二次合并的好合并块。
59.根据本技术第四方面的第一至第四处理io命令的方法之一,提供了根据本技术第四方面的第五处理io命令的方法,其中合并块包括一次合并的好合并块和二次合并的好合并块,其中,一次合并的好合并块是指由至少两块好物理块一次合并得到的合并块,一次合并的好合并块为所有物理块均为好物理块;二次合并的好合并块是指合并第一合并块以及与其对应的第二合并块中的好物理块得到的合并块,二次合并的好合并块的所有物理块均为好物理块,第一合并块和第二合并块均为一次合并的合并块,且第一合并块中至少包含坏物理块,第二合并块中至少包含好物理块,第二合并块中的好物理块能替代第一合并块中的坏物理块进行数据存储。
60.根据本技术的第五方面,提供了根据本技术第五方面的控制部件,包括处理器及存储器,存储器存储有程序代码,当程序代码由处理器运行时,执行第三方面与第四方面任一项访问存储设备的方法。
61.与现有技术相比,本技术实施例所提供的方案至少具有如下有益效果:
62.1、在本技术实施例所提供的方案中,控制部件通过在第一信息表每个条目中记录至少两个物理块合并所得到的一次合并的合并块的信息,意味着控制部件可通过第一信息表中每个条目来记录多个物理块的信息,从而能够消耗尽可能少的存储资源来存储物理块信息。
63.2、控制部件除了记录一次合并的合并块的信息,还记录第一合并块中坏物理块的第一物理地址以及其对应的第二合并块中好物理块的第二物理地址的关联关系,并根据关联关系将第一合并块中好物理与第二合并块中的好物理进行合并得到二次合并的好物理块,在nvm芯片会存在天然的坏物理块情况下,构造出不包含坏物理块且地址连续的逻辑块空间内,以便于上层使用,进而提高存储设备的性能。
附图说明
64.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
65.图1展示了现有技术的存储设备的框图;
66.图2展示了存储设备的控制部件的详细的框图;
67.图3a展示了现有技术的大块构造示意图;
68.图3b展示了逻辑单元与平面(plane)的示意图;
69.图4a展示了本技术的第一信息表的结构示意图;
70.图4b展示了本技术的nvm坏块管理方法的流程示意图;
71.图4c展示了本技术的第一类合并块和第二类合并块的示意图;
72.图5a展示了本技术的相同逻辑单元内第一合并块和第二合并块的示意图;
73.图5b展示了本技术的又一种相同逻辑单元内第一合并块和第二合并块的示意图;
74.图5c展示了本技术的相同逻辑单元相同平面内第一合并块和第二合并块的示意图;
75.图5d展示了本技术的又一种相同逻辑单元相同平面内第一合并块和第二合并块的示意图;
76.图5e展示了本技术的二次合并得到二次合并的好合并块的示意图;
77.图5f展示了本技术的又一种二次合并得到二次合并的好合并块的示意图;
78.图5g展示了本技术的又一种二次合并得到二次合并的好合并块的示意图;
79.图6a展示了本技术的第二信息表的示意图;
80.图6b展示了本技术的又一种第二信息表的结构示意图;
81.图6c展示了本技术的第二信息表中第一合并块所对应的合并块的信息的示意图;
82.图6d展示了本技术实施例所提供的第三信息表中的结构示意图;
83.图7展示了本技术实施例提供的另一种nvm坏块管理方法的流程示意图。
84.图8a展示了本技术的存储设备访问的方法流程示意图;
85.图8b展示本技术实施例提供的响应读命令的示意图;
86.图8c展示本技术实施例提供的响应写命令的示意图;
87.图8d展示本技术实施例提供的又一种响应读命令的示意图;
88.图8e展示本技术实施例提供的响应擦除命令的示意图;
89.图9a展示本技术又一实施例提供的响应写命令的示意图;
90.图9b展示本技术又一实施例提供的响应读命令的示意图;
91.图10展示了本技术的控制部件的结构示意图。
具体实施方式
92.下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
93.图4a展示了本技术实施例提供的第一信息表的结构示意图。
94.作为举例,在第一信息表中每个条目所对应的合并块的索引可以是合并块的块号,也可以是合并块在nvm芯片上的物理地址;第一信息表中每个条目所对应的合并块可以由两个或两个以上的物理块构成。以索引为合并块的块号以及每个合并块包含两个物理块(第一物理块和第二物理块)来构建图4a所示的第一信息表。
95.如图4a所示,该第一信息表包括3个条目,分别为条目0、条目1和条目2,每个条目中包含合并块的索引、合并块的类型以及合并块中各个物理块信息,其中,条目0所对应的合并块的块号为0,合并块的类型为一次合并的好合并块,合并块中各物理信息中高比特指示的物理块0

0为好物理块,低比特指示的物理块0

1也为好物理块;条目1所对应的合并块的块号为1,合并块的类型为一次合并的坏合并块,合并块中各物理信息中高比特指示的物理块1

0为坏物理块,低比特指示的物理块1

1也为坏物理块;条目2所对应的合并块的块号为2,合并块的类型为一次合并的坏合并块,合并块中各物理信息中高比特指示的物理块2

0为好物理块,低比特指示的物理块2

1也为坏物理块。应理解,在本技术实施例所说的物理块合并不是指物理上的合并,而是数据读/写/擦除等操作所对应的操作单元。例如,响应于擦除命令,合并块的所有物理块被同时擦除。组成一次合并的合并块的方式有多种,包括但不限制于:由同一lun和/或平面(plane)内至少两个物理地址相邻的物理块组成;或由相同逻辑单元(lun)的多个平面内至少两个物理地址相同的物理块组成。
96.根据本技术的实施例,也参看图4a,第一信息表的多个条目记录了nvm的所有一次合并的合并块的信息(也称为一次合并的合并块信息)。
97.进一步,在存储设备中物理块的类型又包括好物理块和坏物理块,其中,好物理块是指能够执行数据读/写/擦除等操作的物理块,坏物理块由已知的或将来产生的方式被识别。由于物理块的类型有两种,故由至少两个物理块组成的一次合并的合并块的类型会存在多种形式。例如,以每个一次合并的合并块包含两个物理块为例,一次合并的合并块的组成包括两个坏物理块、两个好物理块或一个坏物理块和一个好物理块。作为一个例子,将全部由好物理块组成的一次合并的合并块称为一次合并的好合并块,将包含坏物理块的一次合并的合并块称为坏合并块。坏合并块又包含两种情况:所有物理块均为坏物理块或包含好物理块和坏物理块。作为一个例子,将所有物理块均为坏物理块称为第一类坏合并块,将包含好物理块和坏物理块称为第二类坏合并块。
98.又作为一个例子,一次合并的合并块信息包含:一次合并的合并块的类型以及构成合并块的各个物理块的信息,其中,合并块的类型包括一次合并的好合并块和坏合并块,坏合并块包括第一类坏合并块和第二类坏合并块。
99.进一步,在本技术实施例所提供的方案中,控制部件存储第一信息表时,每个条目中构成合并块的各个物理块的信息占用多个比特,比特的位数与每个合并块所包含的物理块的数目相同,每比特存储一个物理块的信息。例如,以每个合并块包含两个物理块为例,每个条目中构成合并块的各个物理块的信息占用2比特,每一比特存储一个物理块的信息。由于物理块包含好坏两种情况,因此,由两个物理块所组成的坏合并块的构成合并块的各个物理块的信息(2比特)又包括如下两种形式:高比特位指示好物理块以及低比特位指示坏物理块的合并块,或高比特位指示坏物理块以及低比特位指示好物理块的合并块,其中,高比特位和高比特位是指构成合并块的各个物理块的信息所占用的两比特中的高比特位和高比特位。
100.图4b展示本技术实施例提供的nvm坏块管理方法的流程示意图。在例如制造存储设备的生产线上,或者存储设备被上电时执行图4b所展示的流程以构建合并块。
101.步骤401,控制部件对每个逻辑单元(lun)中物理块进行扫描生成第一信息表。
102.例如,控制部件扫描每个lun的存储了坏块(物理块)信息的坏块表,以及可选地通过访问各物理块以识别好块与坏块,并为每个lun生成如图4a所展示的第一信息表。可选地,第一信息表被记录在各lun的0号合并块的起始位置。
103.步骤402,控制部件根据第一信息表获取第一合并块及其对应的第二合并块。
104.具体的,由于第一信息表所记录nvm的所有一次合并的合并块的信息包括一次合并的好合并块(构成合并块的各个物理块均为好物理块)信息和坏合并块(构成合并块的物理块中存在坏物理块)信息,即一次合并的合并块还可能存在无法被使用的坏合并块,为了尽可能使得nvm上所构造出大块中,所有的合并块都能被使用,或者尽可能多的合并块能被使用。作为举例,可以将nvm中某些一次合并的合并块(至少存在好物理块的合并块和至少存在坏物理块的合并块)进行二次合并得到能被使用的二次合并的好合并块。
105.进一步,为了二次合并得到能被使用的二次合并的好合并块,需要从一次合并的所有合并块中挑选出可进行二次合并的合并块(第一合并块和第二合并块)。
106.在本技术实施例所提供的方案中,控制部件确定出二次合并所对应的第一合并块和第二合并块的方式有多种,作为举例,控制部件根据第一信息表确定出第一类合并块和第二类合并块,从第一类合并块中确定出至少一个第一合并块以及从第二类合并块中确定出与每个第一合并块对应的第二合并块。第一合并块是指包含坏物理块的一次合并的合并块,例如,第一合并块为部分或全部物理块为坏物理块;第二合并块是指包含好物理块的一次合并的合并块,且好物理块能替代第一合并块中的坏物理块进行数据存储,例如,第二合并块为全部或部分物理块为好物理块。处理器根据第一信息表中各个合并块的类型以及组成合并块的物理块信息将一次合并的合并块分为两类,分别为第一类合并块和第二类合并块,其中,第一类合并块与第二类合并块不同,且第一类合并块包含第一合并块,第二类合并块包括第二合并块。
107.进一步,控制部件确定第一类合并块和第二类合并块的方式有多种,为了尽可能使得nvm上所构造出大块中,所有的合并块都能被使用,或者尽可能多的合并块能被使用,
而拆解尽量少的大块来为其他大块提供好物理块。在一种可能实现的方式中,控制部件根据第一信息表确定出存储设备的各个大块中坏合并块的数量,根据各个大块中坏合并块的数量确定出第一类合并块和第二类合并块。
108.可选的,控制部件将坏合并块数量最多的指定数量的第一大块中所有的合并块或其中所有包括至少一个好物理块的合并块作为第二类合并块,从存储设备中除第一大块之外的其他大块的合并块获取第一类合并块;或将数量大于预设阈值的第二大块中所有的合并块或其中所有包括至少一个好物理块的合并块作为第二类合并块,从存储设备中除第二大块之外的其他大块的合并块获取第一类合并块。
109.具体的,控制部件分别确定每个大块中坏合并块的数量,然后根据每个大块中坏合并块的数量从所有大块中选择出第一大块,其中,第一大块包括但不限制于:所有大块中坏合并块数量最多的大块,所有大块中坏合并块数量大于指定数量的大块或按照坏合并块数量从多到少排序,从该序列中选择指定数量的大块。控制部件从第一大块中获取第二类合并块,以及从除第一大块的所有合并块中获取第一类合并块,例如,将除第一大块之外的所有合并块作为第一类合并块,或从除第一大块之外的所有合并块中选择至少包含坏物理块的合并块作为第一类合并块。
110.图4c展示了本技术实施例提供的存储设备中第一类合并块和第二类合并块示意图。
111.根据本技术的实施例,大块包括来自各个lun的多个合并块。作为举例,属于相同大块的各合并块具有相同的块地址或合并块号。
112.如图4c所示,大块0包括来自16个逻辑单元的每个逻辑单元的合并块0(由例如物理块0与物理块1构成),大块1由每个逻辑单元的合并块1(由例如物理块2与物理块3构成),大块2由每个逻辑单元的合并块2(由例如物理块4与物理块3构成),大块n包括来自每个逻辑单元的合并块n(由例如物理块2n与物理块2n+1构成)。若大块n为所有大块中坏合并块数目最多的大块,则从大块n中获取第二类合并块,从大块0~大块n

1中获取第一类合并块。
113.进一步,在本技术实施例所提供的方案中,控制部件从第一类合并块中确定出至少一个第一合并块以及从第二类合并块中确定出与每个第一合并块对应的第二合并块的方式有多种,包括但不限制于:
114.在一个可能实现方式中,控制部件对于第一类合并块的合并块a,若存在未被分配且同合并块a处于相同逻辑单元内的第二类合并块的一个或多个合并块b,则将同合并块a的物理地址最接近的合并块b分配给合并块a,以及将合并块a与该被分配的合并块b作为对应的第一合并块与第二合并块。
115.图5a展示了本技术实施例提供的相同逻辑单元内第一合并块和第二合并块的示意图。
116.如图5a所示,在逻辑单元lun0中存在第一类合并块的合并块a以及第二类合并块的合并块b1和b2,其中,合并块a包含坏物理块,合并块b1和合并块b2各自包含好物理块,且合并块b1和合并块b2均未被分配与之对应的第一合并块。若在lun0中合并块b1与合并块a的距离小于合并块b2与合并块a的距离,则将合并块a作为第一合并块,将合并块b1作为与之对应的第二合并块。其中,“距离”是指nvm芯片在合并块a与合并块b1实际物理位置或物理地址之间的距离。
117.在又一个可能实现方式中,控制部件对于第一类合并块的合并块a,若不存在未被分配且同合并块a处于相同逻辑单元内的第二类合并块的合并块b,则将合并块a所在大块的合并块作为第二类合并块。
118.图5b展示了本技术实施例提供的又一种相同逻辑单元内第一合并块和第二合并块的示意图。
119.如图5b所示,在逻辑单元lun0中存在第一类合并块的合并块a1、a2和a3以及第二类合并块的合并块b1和b2,其中,合并块a1、a2和a3包含坏物理块,合并块b1和合并块b2各自包含好物理块,且合并块b1被分配给与之对应的第一合并块a1,合并块b2被分配给与之对应的第一合并块a2,即在lun0中所有的第二类合并块均被分配,不存在未被分配的第二类合并块,对于合并块a3没有与匹配的第二类合并块,则将合并块a3所在大块的(包含好物理块的)合并块都作为第二类合并块,用于为其他第一类合并块提供好物理块。
120.在又一个可能实现方式中,控制部件对于第一类合并块的合并块a,若存在未被分配且同合并块a处于相同逻辑单元内的相同平面内的第二类合并块的一个或多个合并块(b1、b2),则将同合并块a的物理地址最接近的合并块b1分配给合并块a,以及将合并块a与该被分配的合并块b1作为对应的第一合并块与第二合并块。
121.图5c展示了本技术实施例提供的相同逻辑单元相同平面内第一合并块和第二合并块的示意图。
122.如图5c所示,在逻辑单元lun0中包括多个平面(plane),分别为pl0

pln。若在pl0中存在第一类合并块的合并块a1与a2以及第二类合并块的合并块b1和b2,其中,合并块a1与a2包含坏物理块,合并块b1和合并块b2各自包含好物理块,且合并块b1和合并块b2均未被分配与之对应的第一合并块,若合并块b1与合并块a1的距离小于合并块b2与合并块a1的距离,则将合并块a1作为第一合并块,将合并块b1作为与之对应的第二合并块,将与合并块a1距离最近的合并块b2作为与之对应的第二合并块,即在pl0中所有的第二类合并块均被分配,不存在未被分配的第二类合并块。
123.在又一个可能实现方式中,控制部件对于第一类合并块的合并块a,若不存在未被分配且同合并块a处于相同逻辑单元内的相同平面内的第二类合并块的合并块b,则将合并块a所在大块的合并块作为第二类合并块。从而合并块a以及合并块a所在大块的其他合并块可作为第二类合并块被分配给其他大块的合并块。
124.图5d展示了本技术实施例提供的又一种相同逻辑单元相同平面内第一合并块和第二合并块的示意图。
125.如图5d所示,在逻辑单元lun0中包括多个平面(plane),分别为平面0(pl0)

平面n(pln)。若在pl0中存在第一类合并块的合并块a1、a2和a3以及第二类合并块的合并块b1和b2,其中,合并块a1、a2和a3包含坏物理块,合并块b1和合并块b2各自包含好物理块,且合并块b1被分配给与之对应的第一合并块a1,合并块b2被分配给与之对应的第一合并块a2,即在pl0中所有的第二类合并块均被分配,不存在未被分配的第二类合并块,对于合并块a3没有与匹配的第二类合并块,则将合并块a3所在大块的合并块作为第二类合并块。
126.在又一个可能实现方式中,控制部件分别根据第一信息表从处于同一逻辑单元(lun)内的第一类合并块中确定出多个第三合并块和其第一数量以及从第二类合块中确定出多个第四合并块和其第二数量,其中,第三合并块包含好物理块和坏物理块,第四合并块
包含都是好物理块或好物理块和坏物理块;根据第一数量和第二数量确定出第一合并块和第二合并块。
127.在又一个可能实现方式中,若第一数量不大于第二数量,控制部件将每个第三合并块作为一个第一合并块,将与每个第一合并块距离最近的第四合并块作为其对应的第二合并块;或若第一数量大于第二数量,控制部件将每个第四合并块最为一个第二合并块,将与每个第二合并块距离最近的第一合并块为其对应的第一合并块。
128.在又一个可能实现方式中,若第一数量大于第二数量,控制部件确定出至少一个第三合并块中没有与其对应的第二合并块的第五合并块;将第五合并块所对应的行中的所有合并块作为第二类合并块。
129.步骤403,控制部件确定并记录第一合并块中坏物理块的第一物理地址与其对应的第二合并块中好物理块的第二物理地址的关联关系。
130.具体的,控制部件确定每个第一合并块中坏物理块的第一物理地址以及其对应的第二合并块中好物理块的第二物理地址,记录第一物理地址和第二物理地址的关联关系。控制部件在记录第一物理地址和第二物理地址的关联关系之后,可以根据该关联关系合并第一合并块以及与其对应的第二合并块中的好物理块得到二次合并的好合并块;其中,二次合并的好合并块的物理块数量同合并块的物理块数量相同,二次合并的好合并块的所有物理块均为好物理块。
131.进一步,一次合并的坏合并块又存在两种情况:第一种情况是构成合并块的所有物理块均为坏块;第二种情况是构成合并块的所有物理块中一部分物理块为坏块,一部分物理块为好块。作为举例,针对第一种情况坏合并块,即第一合并块中所有物理块均为坏物理块,可以从第一大块中选择出一次合并的好合并块作为第二合并块,将第二合并块中全部好物理块与第一合并块中所有坏物理块进行替换,得到二次合并的好合并块,或者从第一大块中选择出一次合并的至少包括一个好物理块的坏合并块作为第二合并块,将多个第二合并块中的好物理块替换第一合并块中所有坏物理块,得到二次合并的好合并块;针对第二种坏合并块,即第一合并块包含好物理块和坏物理块,可以从第一大块中选择出一次合并的好合并块或者包含好物理块和坏物理块的一次合并的坏合并块作为第二合并块,将第二合并块中的好物理块与第一合并块的坏物理块进行替换得到二次合并的好合并块。
132.图5e展示了本技术实施例提供的二次合并得到二次合并的好合并块的示意图。在例如第一合并块为包含好物理块和坏物理块,第二合并块为包含好物理块和坏物理块,执行图5e所展示的得到二次合并的好合并块的示意图。
133.如图5e所示,平面0(pl0)包括四个一次合并的合并块,分别为合并块0、合并块1、合并块2以及合并块3,其中,合并块0和合并块1为一次合并的坏合并块,合并块2和合并块3为一次合并的好合并块,合并块0包括坏物理块0

0和好物理块0

1,合并块1包括坏物理块1

0和好物理块1

1。当合并块0为第一合并块,合并块1为第二合并块时,将合并块1中好物理块1

1替代合并块0中坏物理块0

0得到二次合并的好合并块,其中,二次合并的好合并块包含物理块0

1和物理块1

1。
134.图5f展示了本技术实施例提供的又一种二次合并得到二次合并的好合并块的示意图。在例如第一合并块为包含好物理块和坏物理块,第二合并块为包含所有物理块均为好物理块,执行图5f所展示的方法得到二次合并的好合并块的示意图。
135.如图5f所示,平面0(pl0)包括四个一次合并的合并块,分别为合并块0、合并块1、合并块2以及合并块3,其中,合并块0和合并块1为一次合并的坏合并块,合并块2和合并块3为一次合并的好合并块,合并块0包括坏物理块0

0和好物理块0

1,合并块2包括好物理块2

0和好物理块2

1。当合并块0为第一合并块,合并块2为第二合并块时,将合并块2中好物理块2

0替代合并块0中坏物理块0

0得到二次合并的好合并块,其中,二次合并的好合并块包含物理块0

1和物理块2

0。
136.图5g展示了本技术实施例提供的又一种二次合并得到二次合并的好合并块的示意图。在例如第一合并块为包含所有物理块均为坏物理块,第二合并块为包含所有物理块均为好物理块,执行图5e所展示的得到二次合并的好合并块的示意图。
137.如图5f所示,平面0(pl0)包括四个一次合并的合并块,分别为合并块0、合并块1、合并块2以及合并块3,其中,合并块0和合并块1为一次合并的坏合并块,合并块2和合并块3为一次合并的好合并块,合并块0包括坏物理块0

0和坏物理块0

1,合并块2包括好物理块2

0和好物理块2

1。当合并块0为第一合并块,合并块2为第二合并块时,将合并块2中好物理块2

0和好物理块2

1替代合并块0中坏物理块0

0和坏物理块0

1得到二次合并的好合并块,其中,二次合并的好合并块包含物理块2

0和物理块2

1。
138.进一步,在得到二次合并的合并块后,为了记录二次合并的合并块的信息,控制部件将第一信息表中每个第一合并块所对应的合并块类型由一次合并的坏合并块调整为二次合并的好合并块得到第二信息表;或生成第二信息表,其中,第二信息表中每个条目包含二次合并的合并块的信息,第二信息表中每个条目的索引与对应的第一信息表中第一合并块的索引相同。作为举,在第二信息表中二次合并的合并块的信息可以仅包含二次合并的好合并块的类型,也可以同时包含二次合并的好合并块的类型和构成二次合并块的好合并块的各个物理块的信息(来源和/或物理地址)。
139.图6a展示了本技术实施例所提供的第二信息表的结构示意图。
140.通过在第一信息表中增加至少一个二次合并块的信息条目以及第二信息表中二次合并的合并块的信息仅包含二次合并的合并块的类型来构建图6a所示的第二信息表。如图6a所示,该第一信息表包括5个条目,分别为条目0、条目1、条目2以及条目3,其中,条目0、条目1以及条目2包含的是一次合并块的合并块信息,条目3包含的是二次合并块的合并块信息,其中,合并块中各物理块的信息为2比特,每比特指示一个物理块的信息。具体的,条目0所对应的合并块的块号为0,合并块的类型为一次合并的好合并块,该好合并块包含高比特指示的物理块0

0和低比特指示的物理块0

1,且物理块0

0和物理块0

1均为好物理块;条目1所对应的合并块的块号为1,合并块的类型为一次合并的坏合并块,该坏合并块包含高比特指示的物理块1

0和低比特指示的物理块1

1,且物理块1

0为好物理块、物理块1

1为坏物理块;条目2所对应的合并块的块号为2,合并块的类型为一次合并的坏合并块,该坏合并块包含高比特指示的物理块2

0和低比特指示的物理块2

1,且物理块2

0为好物理块、物理块2

1为坏物理块。
141.进一步,在图6a中,条目1所对应的一次合并的坏合并块为第一类合并块,条目2所对应的一次合并的坏合并块为第二类合并块,将条目1和条目2所对应的一次合并的坏合并块进行合并(用条目2所对应的物理块2

0替代条目1所对应的物理块1

1)得到一个二次合并的好合并块。在第一信息表中增加标目来记录第二信息表。将二次合同中作为第一类合
并块的由条目1所指示的合并块的索引(块号1)作为第二信息表的条目的索引,将第二信息表的该条目中合并块的类型记为二次合并的好合并块,而该标目的合并块的各物理块的信息记为均为好合并块。
142.可选地,通过修改第一信息表中的条目来生成第二信息表,例如,将第一信息表中索引为块号1的条目的合并块的类型更新为二次合并的好合并块,而其他信息不变。
143.图6b展示了本技术实施例所提供的又一种第二信息表的结构示意图。
144.通过生成单独的第二信息表来记录二次合并的合并块信息,以及第二信息表中二次合并的合并块的信息仅包含二次合并的合并块的类型来构建图6b所示的第二信息表。
145.例如,在第一信息表中,条目0所对应的合并块为一次合并的坏合并块,索引为块号0,所包含的物理块为高比特指示的物理块0

0(坏物理块)和低比特指示的物理块0

1(好物理块),条目1所对应的合并块为一次合并的坏合并块,索引为块号1,所包含的物理块为高比特指示的物理块1

0(好物理块)和低比特指示的物理块1

1(坏物理块)。若条目0所对应的一次合并的坏合并块为第一类合并块,条目1所对应的一次合并的坏合并块为第二类合并块,将第一信息表中条目0和条目1中所对应的一次合并的坏合并块进行合并,得到图6b所示的第二信息表。在第二信息表中包含条目0;其中,第二信息表中条目0所对应的索引与第一信息表中条目0所对应的索引相同,第二信息表中条目0包含二次合并的好合并块,二次合并的好合并块中所有物理块均为好物理块。
146.可选地,图6b中,第一信息表的条目的索引为条目在第一信息表中的位置,并且该位置同条目所代表的合并块的块号一一对应。而第二信息表的条目的索引为该条目所代表的合并块的块号,并且,第二信息表中仅为二次合并的好合并块提供条目,而不为二次合并的坏合并块提供条目。
147.图6c展示了本技术实施例所提供的第二信息表中第一合并块所对应的合并块的信息的示意图。
148.如图6c所示,任意第一合并块的合并块信息占用8比特,依次为标记位、第二合并块的类型和第一合并块的类型,其中,标记位占用1比特,第二合并块的类型和第一合并块的类型均占用3比特。第一合并块的类型和第二合并块的类型分别所占用的3比特可以是连续的3比特,也可以是分开的3比特,在此不做限定。
149.进一步,在第一合并块和第二合并块合并得到二次合并的好合并块之后,控制部件还可根据第二信息表和关联关系生成第三信息表,第三信息表包括多个条目,其中,每个条目包括二次合并的好合并块中各个物理块的来源信息。
150.图6d展示了本技术实施例所提供的第三信息表中的结构示意图。
151.以生成单独的第二信息表来记录二次合并的合并块信息、第二信息表中二次合并的合并块的信息仅包含二次合并的合并块的类型来构建图6d所示的第三信息表。例如,在第一信息表中,条目0所对应的合并块为一次合并的坏合并块,索引为块号0,所包含的物理块为高比特指示的物理块0

0(坏物理块)和低比特指示的物理块0

1(好物理块),条目1所对应的合并块为一次合并的坏合并块,索引为块号1,所包含的物理块为高比特指示的物理块1

0(好物理块)和低比特指示的物理块1

1(坏物理块)。若条目0所对应的一次合并的坏合并块为第一类合并块,条目1所对应的一次合并的坏合并块为第二类合并块,将第一信息表中条目0和条目1中所对应的一次合并的坏合并块进行合并,得到第二信息表中的条目0,
其中,第二信息表中的条目0所对应的合并块为二次合并的好合并块,索引为块号0,且该合并块所对应的所有物理块均为好物理块。根据第一信息表中条目0和条目1中所对应的一次合并的坏合并块中好物理块的信息得到第三信息表,其中,第三信息表包括条目0,条目0的索引为块号0,合并块中各个物理块的来源信息是指第二信息表中条目0所对应的二次合并的好合并块的来源,即第二信息表中条目0所对应的二次合并的好合并块中物理块来自块号为0的一次合并的坏合并块中低比特指示的物理块(物理块0

1)以及块号为1的一次合并的坏合并块中高比特指示的物理块(物理块1

0)。
152.在一个可能实现方式中,来源信息包括如下至少一种信息:构成二次合并的好合并块的两个物理块中,提供第一物理块的合并块的构成合并块的各个物理块的信息的高比特指示好物理块,低比特指示坏物理块,提供第二物理块的合并块的构成合并块的各个物理块的信息的高比特指示好物理块,低比特指示坏物理块;提供第一物理块的合并块的构成合并块的各个物理块的信息的低比特指示好物理块,高比特指示坏物理块,提供第二物理块的合并块的构成合并块的各个物理块的信息的低比特指示坏物理块,高比特指示好物理块;提供第一物理块的合并块的构成合并块的各个物理块的信息的高比特指示好物理块,低比特指示好物理块,提供第二物理块的合并块的构成合并块的各个物理块的信息的低比特指示好物理块,高比特指示坏物理块;提供第一物理块的合并块的构成合并块的各个物理块的信息的高比特指示坏物理块,低比特指示好物理块,提供第二物理块的合并块的构成合并块的各个物理块的信息的高比特指示坏物理块,低比特指示好物理块。
153.具体的,在本技术实施例所提供的方案中,可以用不同的语句表达几种生成二次合并的好合并块的场景。例如,rpl_low_low=1表示二次合并的好合并块由一个低比特位是好物理块的第一合并块和一个低比特位是好物理块的第二合并块合并得到的;rpl_low_up=2表示二次合并的好合并块由一个低比特位是好物理块的第一合并块和一个高比特位是好物理块的第二合并块合并得到的;rpl_up_low=3表示二次合并的好合并块由一个高比特位是好物理块的第一合并块和一个低比特位是好物理块的第二合并块合并得到的;rpl_up_up=4表示二次合并的好合并块由一个高比特位是好物理块的第一合并块和一个高比特位是好物理块的第二合并块合并得到的。
154.进一步,控制部件在生成第一信息表、第二信息表、第三信息表以及关联关系之后,将每个逻辑单元所对应的第二信息表、第三信息表以及关联关系存放在每个逻辑单元(lun)的指定物理块中。例如,指定的物理块可以是每个逻辑单元中第一个物理块。
155.在本技术实施例所提供的方案中,关联关系存储的方式有多种,包括但不限制于以地址映射表的形式存放。
156.图7展示了本技术实施例提供的另一种nvm坏块管理方法的流程示意图。在例如制造存储设备的生产线上,或者存储设备被上电时执行图7所展示的流程以构建合并块。
157.步骤701,控制部件扫描存储设备的nvm芯片,构建保留块池(reserved block池)。具体的,控制部件扫描存储设备的nvm芯片中的各个物理块,确定nvm芯片中各个大块中合并块的情况(坏合并块的数量和/或好合并块的数量),根据大块中合并块的情况来构建保留块池,作为举例,根据合并块的情况确定出nvm芯片中含有最多坏合并块数量的一个或多个大块,获取该一个或多个大块中至少包含一个好物理块的合并块,将该合并块作为保留块池中的元素,其中,保留块池中的合并块(作为第二类合并块)可与nvm芯片中除保留块池
中元素之外的同时包含好物理块和坏物理块的合并块(作为第一类合并块)进行合并得到由全好物理块构成的逻辑块空间。
158.进一步,为了将保留块池中第二类合并块与nvm芯片中第一类合并块进行二次合并得到由全好物理块构成的逻辑块空间。控制部件通过执行步骤702来确定出第一类合并块。步骤702,控制部件判断存储设备中是否存在包括至少一个非好合并块的大块。具体的,控制部件逐个判断nvm芯片中除含有最多坏合并块数量的一个或多个大块之外的大块是否包含至少一个非好合并块,其中,非好合并块是指同时包括好物理和坏物理块的合并块,即其作为第一类合并块。
159.进一步,若在nvm芯片中存在包含至少一个非好合并块的大块,则执行步骤703,控制部件获取包括至少一个非好合并块的大块。以及执行步骤704,控制部件判断获取的大块中非好合并块是否都能被从保留块池中获取的合并块替换。作为举例,对于每个非好合并块,控制部件判断在与其相同的平面(plane)或者逻辑单元(lun)内是否从保留块池中能找到至少一个或多个未分配的合并块,若能找到,则将与该非好合并块距离最近的合并块作为与其替换的合并块。
160.进一步,若获取的大块中非好合并块都能被从保留块池中获取的合并块替换,执行步骤705,控制部件将获取的大块中的非好合并块用从reserved block池中获取的合并块替换。具体的,控制部件用从保留块池中获取的合并块中好物理块替换非好合并块中的坏物理块得到由全好物理块构成的逻辑块空间。否则,执行步骤706,将获取的大块中的所有合并块添加到保留块池中。
161.图8a展示本技术实施例提供的存储设备访问的方法流程示意图。例如,存储设备接收主机发送的读命令、写命令或擦除命令时执行图8a所述访问过程。
162.步骤801,控制部件接收主机发送的i/o命令,获取i/o命令要访问的合并块。
163.步骤802,控制部件获取构成合并块的一个或多个物理块。
164.步骤803,控制部件访问合并块的一个或多个物理块以响应i/o命令。
165.在一个可能实现方式中,合并块包括一次合并的好合并块和二次合并的好合并块,其中,一次合并的好合并块是指由至少两块好物理块一次合并得到的合并块,一次合并的好合并块为所有物理块均为好物理块;二次合并的好合并块是指合并第一合并块以及与其对应的第二合并块中的好物理块得到的合并块,二次合并的好合并块的所有物理块均为好物理块,第一合并块和第二合并块均为一次合并的合并块,且第一合并块中至少包含坏物理块,第二合并块中至少包含好物理块,第二合并块中的好物理块能替代第一合并块中的坏物理块进行数据存储。
166.在又一个可能实现方式中,获取构成合并块的一个或多个物理块,包括:判断合并块是否为一次合并的好合并块或二次合并的好合并块;若该合并块是一次合并的好合并块,则根据该一次合并的好合并块的编号或索引确定构成该一次合并的好合并块中的一个或多个物理块。
167.具体的,控制部件在接收主机发送的i/o命令之后,根据i/o命令所指示的索引(如合并块的块号),根据索引以及第一信息表确定i/o命令要访问的合并块为一次合并的好合并块,还是一次合并的坏合并块。若i/o命令要访问的合并块为一次合并的好合并块,则直接根据合并块的块号计算出要访问物理块地址,例如,该一次合并的好合并块的块号为x,
则其对应的好物理块的物理地址为2x和2x+1。
168.进一步,若i/o命令要访问的合并块为一次合并的坏合并块,确定该一次合并的坏合并块所对应的索引,在第二信息表中查询是否存在该索引所对应的条目,若存在,则确定i/o命令实际访问的合并块为二次合并的好合并块。
169.在又一个可能实现方式中,若合并块是二次合并的好合并块,则查询第三信息表获取二次合并的好合并块所对应的好物理块,其中,第三信息表中每个条目包含二次合并的好合并块中各个物理块的来源信息。
170.具体的,根据该二次合并的好合并块所对应的索引在第三信息表中查询其对应的条目,根据该条目所包含的物理块的来源信息确定出对应的物理块。
171.在又一个可能实现方式中,若i/o命令为读命令或写命令,访问该合并块的一个物理块以响应i/o命令。
172.图8b展示本技术实施例提供的响应读命令的示意图。
173.在存储设备中,利用ftl(flash translation layer,闪存转换层)来维护从逻辑区块地址(logicalblockaddress,lba)(这里使用“逻辑区块”以同本技术使用的“逻辑块空间”相区分)到合并块物理地址的映射信息。如图8b所示,控制部件接收主机发送的i/o命令,该i/o命令为读命令且该读命令上携带逻辑区块地址lba1,根据ftl表确定出与lba1对应的合并块5,其中,合并块5为一次合并的好合并块,控制部件根据合并块5的块号直接计算其对应的物理块地址,并根据物理块地址从该物理块中读取数据,并将该数据传输给主机。
174.图8c展示本技术实施例提供的响应写命令的示意图。
175.如图8c所示,控制部件接收主机发送的i/o命令,该i/o命令为写命令且该写命令上携带逻辑区块地址lba3。为该写命令分配由合并块1提供的逻辑块空间。然后通过查询第二信息表确定合并块1为二次合并的好合并块,控制部件根据合并块1的块号以及第三信息表查询得到合并块1中各个物理块的来源,根据各个物理块的来源确定其对应的物理块分别为物理块2和物理块202,将写命令对应的数据写入物理块2和/或物理块202。以及将lba3与用于合并块1的地址(例如,合并块1的块号)记录在ftl表中。
176.图8d展示本技术实施例提供的又一种响应读命令的示意图。
177.如图8d所示,控制部件接收主机发送的i/o命令,该i/o命令为读命令且该读命令上携带逻辑区块地址lba100,根据ftl表确定出与lba100对应的合并块3,然后通过查询第二信息表确定合并块3为二次合并的好合并块,控制部件根据合并块3的块号以及第三信息表查询得到合并块3中各个物理块的来源,根据各个物理块的来源确定其对应的物理块分别为物理块106和物理块107,根据物理块106和/或物理块107的物理地址读出数据并发送给主机。
178.在又一个可能实现方式中,若i/o命令为擦除命令,擦除该合并块的所有物理块以响应i/o命令。
179.图8e展示本技术实施例提供的响应擦除命令的示意图。
180.如图8e所示,控制部件接收主机发送的i/o命令,该i/o命令为擦除命令且该擦除命令上携带逻辑区块地址lba100,根据ftl表确定出与lba100对应的合并块3,然后通过查询第二信息表确定合并块3为二次合并的好合并块,控制部件根据合并块3的块号以及第三
信息表查询得到合并块3中各个物理块的来源,根据各个物理块的来源确定其对应的物理块分别为物理块106和物理块107,根据物理块106和物理块107的物理地址对物理块106和物理块107中数据进行擦除。
181.在图8a到图8e展示的实施例中,ftl表中记录了同逻辑区块地址(lba)对应的用于合并块的地址(例如合并块号)。在处理读命令时,在ftl表中记录的用于合并块的地址对应的合并块是二次合并的好合并块的情况下,还需要根据合并块号进一步获取构成该二次合并的好合并块的物理块,并访问得到的物理块的一个或多个来响应读命令。根据本技术的又一种实施方式,参看图9a与图9b,在ftl表中记录包括物理块号(或物理块地址)的物理地址,从而在处理读命令时,无需再判断合并块的好坏,进一步降低了处理延迟。
182.在又一个可能实现方式中,还包括:接收主机发送的写命令,从未分配的合并块中选择出一合并块,并将该合并块所对应的存储空间分配给所述写命令;根据写命令向所述存储空间写入数据。
183.在又一个可能实现方式中,将该合并块所对应的存储空间分配给所述写命令,包括:识别该合并块是否为二次合并的好合并块;若是,则通过查询第三信息表得到该合并块中各个物理块的来源信息,根据所述来源信息将该合并块中部分或全部物理块所对应的存储空间分配给所述写命令。
184.图9a展示本技术又一实施例提供的响应写命令的示意图。
185.在图9a的例子中,ftl表记录逻辑地址与物理地址的对应关系,物理地址包括物理块地址而非合并块号。逻辑块依然逻辑块空间,其中合并块1与合并块3是二次合并的好合并块,而其他合并块是一次合并的好合并块。在处理写命令时,从逻辑块空间中为写命令分配未被写入数据的存储空间。而将所分配存储空间的物理地址(非合并块号)记录在ftl表中。
186.如图9a所示,控制部件接收主机发送的写命令,该写命令携带逻辑区块地址lba3。为该写命令分配由合并块1提供的存储空间。进一步地,还识别出合并块1是二次合并的好合并块,从而进一步查询第三信息表得到合并块1中各个物理块(例如,物理块2和物理块202)的来源,以及根据分配的存储空间还确定其由物理块2和/或物理块202提供。作为举例,分配的物理空间由物理块202提供。将写命令对应的数据写入物理块202。以及将lba3与包括物理块202的物理地址记录在ftl表中。
187.在又一个可能实现方式中,还包括:接收主机发送的读命令,根据ftl表查询读命令所携带逻辑区块地址对对应的物理块的物理地址;根据读命令从所述物理地址所对应的物理块中读取数据,并发送给主机。
188.图9b展示本技术又一实施例提供的响应读命令的示意图。
189.在图9b的例子中,逻辑块空间的合并块1与合并块3是二次合并的好合并块。合并块1由物理块2与物理块202构成,而合并块3由物理块106与物理块107构成。通过第一、第二和/或第三信息表得到构成合并块的物理块。ftl表中记录了逻辑地址与物理地址的对应关系,物理地址包括物理块地址而非合并块号。
190.如图9b所示,控制部件接收主机发送的读命令,该读命令上携带逻辑区块地址lba3,根据ftl表确定出与lba3对应的物理块202的物理地址,根据该物理地址直接访问物理块202得到读命令要读出的数据并发送给主机。
191.图10展示本技术实施例提供的控制部件的结构示意图。控制部件包括主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器和存储介质管理单元。其中介质接口控制器与nvm芯片耦合,控制部件通过主机接口接收主机发送的nvme命令,该nvm命令用于指示对存储设备中的物理块进行快速诊断测试(rapid diagnostic test,rdt)测试以及坏块管理。主机命令处理单元(处理器)解析nvme命令,并生成适用于存储命令处理单元的命令。响应于收到命令,存储命令处理单元进行操作介质接口控制器访问nvm芯片、或进行操作存储介质管理单元以维护第一信息表或第二信息表。本实施例中,存储介质管理单元除了维护第一信息表或第二信息表,还维护第三信息表。本技术也可以由介质接口控制器实施,从而介质管理单元操作的是逻辑块空间。
192.在本技术实施例所提供的方案中,控制部件通过在第一信息表每个条目中记录至少两个物理块合并所得到的一次合并的合并块的信息,意味着控制部件可通过第一信息表中每个条目来记录多个物理块的信息,从而能够消耗尽可能少的存储资源来存储物理块信息。另外,控制部件除了记录一次合并的合并块的信息,还记录第一合并块中坏物理块的第一物理地址以及其对应的第二合并块中好物理块的第二物理地址的关联关系,并根据关联关系将第一合并块中好物理与第二合并块中的好物理进行合并得到二次合并的好物理块,在nvm芯片会存在天然的坏物理块情况下,构造出不包含坏物理块且地址连续的逻辑块空间,以便于上层使用,进而提高存储设备的性能。
193.需要说明的是,为了简明的目的,本技术将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本技术的方案并不受所描述的动作的顺序限制。因此,依据本技术的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本技术所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本技术某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本技术对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本技术某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
194.在具体实现方面,基于本技术的公开和教导,本领域技术人员可以理解本技术所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
195.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1