管理NVM芯片的方法及相关产品与流程

文档序号:36596598发布日期:2024-01-06 23:07阅读:15来源:国知局
管理NVM芯片的方法及相关产品与流程

本技术一般地涉及存储。更具体地,本技术涉及管理nvm芯片的方法、以及执行前述方法的控制部件和存储设备。


背景技术:

1、图1a展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serial advanced technology attachment,串行高级技术附件)、scsi(small computer system interface,小型计算机系统接口)、sas(serial attachedscsi,串行连接scsi)、ide(integrated drive electronics,集成驱动器电子)、usb(universal serial bus,通用串行总线)、pcie(peripheral component interconnectexpress,pcie,高速外围组件互联)、nvme(nvm express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102(下文中,将固态存储设备简称为存储设备)包括接口103、控制部件104、一个或多个nvm芯片105以及dram(dynamic randomaccess memory,动态随机访问存储器)110。

2、上述nvm芯片105包括nand闪存、相变存储器、feram(ferroelectric ram,铁电存储器)、mram(magnetic random access memory,磁阻存储器)、rram(resistive randomaccess memory,阻变存储器)等常见的存储介质。

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

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

5、参看图1b,控制部件包括主机接口1041、主机命令处理单元1042、存储命令处理单元1043、介质接口控制器1044与存储介质管理单元1045。主机接口1041获取主机提供的io命令。主机命令处理单元1042根据io命令生成存储命令提供给存储命令处理单元1043。存储命令可以访问相同大小的存储空间,例如4kb。将nvm芯片中记录的对应一个存储命令所访问数据的数据单元称为数据帧。物理页记录一个或多个数据帧。例如,物理页的大小17664字节,而数据帧大小为4kb,则一个物理页能存储4个数据帧。

6、存储介质管理单元1045为每个存储命令维护逻辑地址到物理地址的转换。例如,存储介质管理单元1045包括ftl表。对于读命令,存储介质管理单元1045输出存储命令所访问的逻辑地址(lba)对应的物理地址。对于写命令,存储介质管理单元1045为其分配可用的物理地址,并记录其访问的逻辑地址(lba)与分配的物理地址的映射关系。存储介质管理单元1045还维护诸如垃圾回收、磨损均衡等管理nvm芯片所需的功能。

7、存储命令处理单元1043根据存储介质管理单元1045提供的物理地址,操作介质接口控制器1044向nvm芯片105发出存储介质访问命令。

8、为了清楚的目的,将主机发送给存储设备102的命令称为io命令,将主机命令处理单元1042发送给存储命令处理单元1043的命令称为存储命令,将存储命令处理单元1043发送给介质接口控制器1044的命令称为介质接口命令,而将介质接口控制器1044发送给nvm芯片105的命令称为存储介质访问命令。存储介质访问命令遵循nvm芯片的接口协议。

9、nvm芯片105包括一个或多个逻辑单元(logic unit,lun)。nv m芯片封装内可包括一个或多个管芯(die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(plane)。逻辑单元内的多个平面可以并行存取,而nvm芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/documents/products/other%20documents/onfi3_0gold.ashx获得的“open nand flash inter facespecification(revision 3.0)”中,提供了关于目标(target)、逻辑单元、平面(plane)的含义,其为现有技术的一部分。本技术中,除非另外指出,目标(target)与逻辑单元(lun)的使用可互换。

10、nvm芯片105通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页(也称为物理页)。物理页具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。每个平面(plane)可以包括多个物理块。在nvm芯片105中来自多个逻辑单元,且具有相同的物理地址的物理块进而组成大块。为大块提供物理块的多个逻辑单元被称为逻辑单元组,逻辑单元组中的每个逻辑单元可为大块提供一个物理块。

11、参看图1c,nvm芯片105包括多个逻辑单元(如lun0~lun4),每个逻辑单元包含有多个物理块,这些物理块根据所存储的数据类型又可以分为两大类,一类可以用于存储用户数据(data block)。而另一类可以用于存储元数据(super block),例如,例如固件镜像、日志或备份数据等。其中,super blcok的元数据(例如固件镜像、日志或备份数据等)同用户数据相比有显著的区别,例如,对于固件镜像,其具有连续且尺寸较大(例如几mb)、极少被修改以及可靠性要求高的数据特点,如果固件镜像损坏,存储设备即无法使用。又例如,对于日志,其具有尺寸较小(例如从几个字节到几kb)、频繁更新(例如每秒中可能都在被更新)、写入是顺序的以及对可靠性要求相对低等数据特点。再例如,对于备份数据,其具有依赖ftl表的备份策略、尺寸较大(例如几mb或gb)、更新较频繁以及在特殊场景下(例如掉电时)有突发大量更新需求的数据特点。此外,superblock同datablock在使用上的区别还在于,元数据通常存储在superblock中的特定区域内,例如存储在每个lun的物理块0,或者物理块1-9。而data block上的数据可在几乎所有data block上搬移,使得super block与data block具有不同的可靠性和/或不同的存储单元类型(例如superblock可以是slc存储单元,而data block可以是tlc存储单元)。


技术实现思路

1、对用户数据的管理可以通过ftl表来管理。由于superblcok的元数据与datablock的用户数据具体不同的特性,通过ftl表来管理数据方式不合适对元数据的管理。对于superblcok的元数据的管理,通常需要由元数据的管理者自行开发对所使用的元数据的管理策略。例如,对于ftl表,其开发人员除了要开发ftl表的查询、更新功能,还要负责在运行时将ftl表备份到nvm芯片的功能、在启动时从管理nvm芯片的用户数据、读取ftl表的功能、识别并处理存储ftl表的superblock中的坏块、巡检nvm芯片中备份的ftl表以及在发现其可靠性下降时需要提供处理方式等。因此,开发人员不仅需要针对每种元数据的数据特征来实现在superblock上管理元数据,并且还要满足按页读写、按块擦除、不能覆写的物理特性。这种需要结合元数据的数据特征和flash物理系性的管理方式为存储设备的固件开发引入了极大的复杂度。另外,对于superblock需要记录这些物理块的物理地址,根据物理地址来访问和管理superblock。当存储设备的性能下降(例如出现坏物理块)对其执行gc操作,或者更换存储设备中的nvm芯片,物理块的大小或者页都会发生变化,导致superblock的物理地址发生变化。因此,通过物理地址去访问或者管理superblock,会使得管理superblock比较复杂,进而影响存储设备的性能。

2、鉴于目前对superblock缺乏有效的存储介质管理手段,希望可以对superblock进行统一的管理,使得元数据的用户能够通过指定的数据接口来访问元数据,而不再通过物理地址来访问元数据,以降低元数据用户操作元数据的复杂度。同时,还希望能够集中地管理同superblock物理特性有关的问题,可以有效避免此类问题扩散,同时提高此类问题的处理效率。

3、本技术实施例所提供的方案,可以利用ftl表和/或文件系统分别对nvm芯片中不同物理块进行分类管理,以实现对数据的有效管理。

4、根据本技术的第一方面,提供了根据本技术第一方面的第一管理nvm芯片的方法,其中所述nvm芯片包括第一类物理块和第二类物理块,所述方法包括:响应于要对nvm芯片中的物理块进行管理,根据ftl表对第一类物理块进行管理,其中,所述第一类物理块包括所述nvm芯片中所有用于存储用户数据的第一物理块;以及基于文件系统对第二类物理块进行管理,其中,所述第二类物理块包括所述nvm芯片中所有用于存储元数据的第二物理块;所述元数据包括固件镜像、日志以及备份数据,所述备份数据包括对固件镜像或日志的备份以及工作过程中的非易失备份,所述非易失备份是指在nvm芯片对内存中的数据进行备份。

5、根据本技术的第一方面的第一管理nvm芯片的方法,提供了根据本技术第一方面的第二管理nvm芯片的方法,其中,响应于接收到io命令,基于ftl表将io命令所指示的逻辑地址转换为物理地址,根据物理地址访问第一物理块来响应所述io命令;响应于在工作过程中需要访问元数据,基于文件系统访问第二物理块中的所述元数据。

6、根据本技术的第一方面的第一管理nvm芯片的方法,提供了根据本技术第一方面的第三管理nvm芯片的方法,响应于接收到主机发送的写命令,为所述写命令分配物理地址,并更新所述ftl表,以记录所述写命令的逻辑地址与物理地址之间的映射关系;将所述写命令所指示的用户数据写入所述物理地址所指示的第一物理块中;以及响应于接收到主机发送的写命令,还生成关于更新ftl表的日志,且调用文件系统接口将所述日志写入所述第二物理块中。

7、根据本技术的第一方面的第一管理nvm芯片的方法至第三管理nvm芯片的方法之一,提供了根据本技术第一方面的第四管理nvm芯片的方法,响应于接收到关机信号,获取所述存储设备的内存中的ftl表,并调用文件系统接口将所述ftl表写入所述第二物理块中。

8、根据本技术的第一方面的第二管理nvm芯片的方法至第四管理nvm芯片的方法之一,提供了根据本技术第一方面的第五管理nvm芯片的方法,基于文件系统访问第二物理块中的元数据,包括:利用闪存文件系统访问第二物理块中的元数据。

9、根据本技术的第一方面的第五管理nvm芯片的方法,提供了根据本技术第一方面的第六管理nvm芯片的方法,还包括:响应于接收到待写入到所述第二物理块的数据,所述文件系统将所述数据组装成多平面的形式;所述文件系统发出一个编程命令将组装后的数据写入所述第二物理块。

10、根据本技术的第一方面的第五管理nvm芯片的方法,提供了根据本技术第一方面的第七管理nvm芯片的方法,还包括:所述文件系统在指定时间段内访问元数据所占用的逻辑单元的数量不超过指定阈值,其中所述指定阈值可被设置。

11、据本技术的第一方面的第二管理nvm芯片的方法至第七管理nvm芯片的方法之一,提供了根据本技术第一方面的第八管理nvm芯片的方法,基于文件系统访问第二物理块中的元数据,其中所述文件系统是闪存文件系统。

12、据本技术的第一方面的第八管理nvm芯片的方法,提供了根据本技术第一方面的第九管理nvm芯片的方法,还包括:将所述闪存文件系统对nvm芯片的编程操作修改为向所述控制部件的介质接口控制器发送的符合nvm芯片接口协议的介质接口命令;所述基于文件系统访问第二物理块中的元数据包括,所述闪存文件系统生成介质接口命令来通过所述介质接口控制器访问所述第二物理块中的元数据。

13、据本技术的第一方面的第一管理nvm芯片的方法至第九管理nvm芯片的方法之一,提供了根据本技术第一方面的第十管理nvm芯片的方法,其中所述第二类物理块包括多个区域,每个区域分别存储不同的元数据,以便通过多种文件形式实现对元数据的管理。

14、据本技术的第一方面的第十管理nvm芯片的方法,提供了根据本技术第一方面的第十一管理nvm芯片的方法,其中所述第二类物理块包括用于存储固件镜像的第三类物理块、用于存储日志的第四类物理块以及用于存储所述备份数据的第五类物理块,所述第三类物理块、所述第四类物理块和所述第五类物理块包括一个或多个所述第二物理块,以基于文件系统通过不同文件夹对存储不同类型元数据的第二物理块进行管理。

15、据本技术的第一方面的第十一管理nvm芯片的方法,提供了根据本技术第一方面的第十二管理nvm芯片的方法,基于文件系统通过不同文件夹对存储不同类型元数据的第二物理块进行管理包括:基于文件系统分别为每类元数据构建一个文件夹,以及在每个文件夹下将每个日志、固件镜像或每份备份数据作为一个文件,并记录每个文件的文件名和/或文件路径,以使得通过层次化的文件结构对元数据进行管理。

16、据本技术的第一方面的第十二管理nvm芯片的方法,提供了根据本技术第一方面的第十三管理nvm芯片的方法,其中,所述非易失备份包括对ftl表备份以及坏块表备份;响应于对ftl表备份,通过固件操作文件系统将ftl表整体作为一个文件存放在对应的文件夹下,并记录ftl表所对应文件的文件名和/或文件路径;响应于对坏块表备份,通过固件操作文件系统将坏块表整体作为一个文件存放在对应的文件夹下,并记录坏块表所对应文件的文件名和/或文件路径。

17、据本技术的第一方面的第十三管理nvm芯片的方法,提供了根据本技术第一方面的第十四管理nvm芯片的方法,其中,响应访问备份的ftl表,根据要访问的ftl表中存储单元的逻辑地址计算出该存储单元在备份的ftl表所对应的文件中的偏移值,调用文件系统接口根据备份的ftl表所对应的文件名或者文件路径以及偏移值访问该存储单元。

18、据本技术的第一方面的第十二管理nvm芯片的方法至第十四管理nvm芯片的方法之一,提供了根据本技术第一方面的第十五管理nvm芯片的方法,其中,响应于访问固件镜像备份数据,调用文件系统接口根据第一固件备份数据所对应的文件名访问所述第一固件备份数据;响应于所访问的第一固件备份数据出错,将错误信息发送给存储设备中控制部件的错误处理单元,通过所述错误处理单元对该错误进行处理;响应于该错误处理失败,将错误信息报告给固件,固件调用文件系统接口根据第二固件备份数据所对应的文件名访问所述第二固件备份数据,其中,第二固件备份数据与第一固件备份数据是在nvm芯片中所存储的两份固件备份数据。

19、据本技术的第一方面的第十二管理nvm芯片的方法至第十四管理nvm芯片的方法之一,提供了根据本技术第一方面的第十六管理nvm芯片的方法,其中,响应于生成新的日志,调用文件系统接口根据要访问的日志所对应的文件名以及日志文件当前的写指针将新日志追加写入日志所对应的文件。

20、据本技术的第一方面的第一管理nvm芯片的方法至第十六管理nvm芯片的方法之一,提供了根据本技术第一方面的第十七管理nvm芯片的方法,所述方法还包括:在所述第二类物理块中指定的一个或多个第二物理块中记录闪存文件系统的镜像;响应于启动存储设备,加载所述闪存文件系统,以便为后续加载的固件提供文件系统接口。

21、据本技术的第一方面的第二管理nvm芯片的方法至第十六管理nvm芯片的方法之一,提供了根据本技术第一方面的第十八管理nvm芯片的方法,基于文件系统访问第二物理块中的元数据,包括:通过固件调用所述文件系统接口从所述第二物理块中读取记录有元数据的文件,所述文件系统根据文件路径查询所述文件的物理地址;基于所述文件系统从查询到的物理地址所指示的第二物理块中读取出元数据;以及基于所述文件系统判断读取出的元数据是否存在错误;基于所述文件系统响应于读取出的元数据存在错误,将错误信息提供至所述存储设备中控制部件的错误处理单元,以进行错误处理获取所需的元数据;或者响应于读取出的元数据不存在错误,获取到所需的元数据。

22、据本技术的第一方面的第一管理nvm芯片的方法至第十八管理nvm芯片的方法之一,提供了根据本技术第一方面的第十九管理nvm芯片的方法,其中,响应于接收到主机发送的读命令,基于ftl表将读命令所指示的逻辑地址转换为物理地址,根据物理地址读取响应数据;若所述响应数据存在错误,生成第一错误信息,并通过控制部件中介质接口控制器将所述第一错误信息提供给错误处理单元。

23、据本技术的第一方面的第一管理nvm芯片的方法至第十八管理nvm芯片的方法之一,提供了根据本技术第一方面的第二十管理nvm芯片的方法,其中,响应于接收到主机发送的写命令,在对写命令处理过程中还需要读取元数据,调用文件系统接口读取该元数据;若读取的该元数据存在错误,生成第二错误信息,通过文件系统将所述第二错误信息提供给错误处理单元。

24、据本技术的第一方面的第十九管理nvm芯片的方法或第二十管理nvm芯片的方法,提供了根据本技术第一方面的第二十一管理nvm芯片的方法,其中,响应于接收到错误信息,基于所述错误处理单元对所述错误信息所指示的出错的物理页执行重读以及ldpc译码,得到重读译码后的数据;若所述重读译码后的数据存在错误且所述错误信息为第一错误信息,则通过所述介质接口控制器执行数据恢复操作;若所述重读译码后的数据存在错误且所述错误信息为第二错误信息,则通过文件系统访问第二类物理块中对应的备份数据,执行数据恢复操作。

25、根据本技术的第二方面,提供了根据本技术第二方面的控制部件,所述控制部件用于实现本技术第一方面所述的方法。

26、根据本技术的第三方面,提供了根据本技术第三方面的存储设备,包括存储介质和如本技术第二方面所述的控制部件。

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