一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

提高存储设备可用性的故障管芯管理方法与流程

2022-08-31 01:39:48 来源:中国专利 TAG:


1.本技术涉及存储技术,特别地,涉及提高存储设备可用性的故障管芯管理方法及其存储设备。


背景技术:

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.存储设备存储了主固件与引导固件。控制部件104加载并执行固件来处理io命令以及实施存储设备的其他功能。固件是例如存储设备104的处理器运行的软件。引导固件存储在例如存储设备104的nor闪存(未示出)。控制部件上电后从nor闪存的指定地址加载并
执行引导固件。执行引导固件来初始化存储设备的各部件,以及加载主固件。主固件存储在例如nvm芯片。为提高可靠性,nvm芯片中存储了多份主固件的镜像或副本。响应于加载了主固件,引导固件将控制权移交给主固件。
8.在存储设备中,利用ftl(flash translation layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。这些情况下,存储设备所接收的读/写命令指示逻辑地址。
9.存储了从逻辑地址到物理地址的映射信息的表结构被称为ftl表。ftl表是固态存储设备中的重要元数据。通常ftl表的条目记录了存储设备中以数据页为单位的地址映射关系。
10.存储设备包括多个nvm芯片。每个nvm芯片包括一个或多个管芯(die)或逻辑单元(lun,logic unit)。管芯或逻辑单元之间可以并行响应读写操作。在同一管芯或逻辑单元上的多个读、写或擦除操作顺序执行。
11.图2展示出了大块的示意图。大块包括来自多个逻辑单元的每个的物理块。优选的,每个逻辑单元为大块提供一个物理块。作为举例,在每16个逻辑单元(lun)上构造大块。每个大块包括16个物理块,来自16个逻辑单元(lun)的每一个。在图2的例子中,大块0包括来自16个逻辑单元(lun)的每个的物理块0,而大块1包括来自每个逻辑单元(lun)的物理块1。也可以有多种其他方式来构造大块。
12.作为一种可选的方式,在大块中构造页条带,每个逻辑单元(lun)内相同物理地址的物理页构成了“页条带”。现有技术中有其他构造页条带的方式。图2中,物理页p0-0、物理页p0-1
……
与物理页p0-x构成了页条带0,其中物理页p0-0、物理p页0-1
……
物理页p0-14用于存储用户数据,而物理页p0-x用于存储根据条带内的所有用户数据计算得到的校验数据。类似地,图2中,物理页p2-0、物理页p2-1
……
与物理页p2-x构成了页条带2。可选地,用于存储校验数据的物理页可以位于页条带中的任意位置。
13.页条带提高了所存储数据的可靠性。在图2的例子中,当页条带中的单一物理页故障,从页条带的其他物理页得以恢复故障物理页的数据。nvm芯片的管芯包括一个或多个逻辑单元(lun)。管芯故障可导致其提供的逻辑单元都无法使用。从而使单一管芯为页条带仅提供单一的逻辑单元,以避免单一管芯故障导致页条带中多个物理页故障。


技术实现要素:

14.存储设备上电时,会初始化nvm芯片的所有管芯。初始化管芯的过程能识别出存在故障的管芯。通常,若识别出存储设备中存在故障的管芯,简单的处理方式是终止存储设备上电过程,这导致在主机或用户看来,存储设备上电失败或者长时间没有响应,而带来糟糕的用户体验,并可能导致主机的驱动程序或存储系统崩溃。随着存储设备的容量增加,所使用的nvm芯片以及管芯的数量也持续增加,出现故障管芯的机率也随之增加。因而希望在存储设备中存在故障的nvm芯片的管芯时,存储设备能作出妥善的响应,一方面使存储设备尽量得以工作,使得用户有机会取回存储的数据,另一方面使存储设备尽量向主机报告自身的工作状态,完成存储设备的上电过程,以避免主机驱动程序或存储系统崩溃,也避免存储
设备长时间没有响应而带来的糟糕用户体验。
15.根据本技术的第一方面,提供了根据本技术第一方面的第一提高存储设备可用性的故障管芯管理方法,包括:执行引导固件以初始化存储设备的所有管芯,并将存在故障的管芯信息记录在故障管芯表中;执行引导固件从存储设备的nvm芯片中加载主固件;执行主固件以根据所述故障管芯表获取存储设备的所有可用管芯,再次初始化所述所有可用管芯,而不再次初始化根据所述故障管芯表获取的故障管芯;执行主固件从存储设备的可用管芯中加载关键数据,以及完成存储设备的启动。
16.根据本技术第一方面的第一提高存储设备可用性的故障管芯管理方法,提供了根据本技术第一方面的第二提高存储设备可用性的故障管芯管理方法,其中再次初始化所述所有可用管芯包括向管芯发送复位命令,向管芯发送一个或多个设置特征(set feature)命令,对管芯进行训练,以使管芯工作在全速模式。
17.根据本技术第一方面的第二提高存储设备可用性的故障管芯管理方法,提供了根据本技术第一方面的第三提高存储设备可用性的故障管芯管理方法,其中在再次初始化所述所有可用管芯过程中,若一个或多个管芯对复位命令在指定时间内没有响应,则识别出管芯故障,以及继续初始化其他可用管芯,并将识别出故障的管芯信息记录在所述故障管芯表,对于识别出故障的管芯,不再对其继续进行初始化;若一个或多个第一管芯在指定时间内对复位命令作出响应,再对一个或多个第一管芯施加设置特征命令以及进行训练,若一个或多个管芯的训练过程超时,则识别出管芯故障,以及继续初始化其他可用管芯,并将识别出故障的管芯信息记录在所述故障管芯表。
18.根据本技术第一方面的第一至第三提高存储设备可用性的故障管芯管理方法之一,提供了根据本技术第一方面的第四提高存储设备可用性的故障管芯管理方法,其中初始化存储设备的所有管芯包括向管芯发送复位命令,向管芯发送一个或多个设置特征(set feature)命令;在初始化所述所有管芯过程中,若一个或多个管芯对复位命令在指定时间内没有响应,则识别出管芯故障,以及继续初始化其他管芯,并将识别出故障的管芯信息记录在所述故障管芯表,对于识别出故障的管芯,不再对其继续进行初始化。
19.根据本技术第一方面的第四提高存储设备可用性的故障管芯管理方法,提供了根据本技术第一方面的第五提高存储设备可用性的故障管芯管理方法,其中执行引导固件以初始化存储设备的所有管芯的过程中,若识别出一个或多个管芯故障,所述引导固件不停止执行,若识别出存储设备的所有管芯都故障或者从存储设备的nvm芯片中加载主固件,执行引导固件将指示引导失败的信息记录在所述存储设备的非易失存储芯片中。
20.根据本技术第一方面的第一至第五提高存储设备可用性的故障管芯管理方法之一,提供了根据本技术第一方面的第六提高存储设备可用性的故障管芯管理方法,其中所述存储设备的指定管芯的指定地址记录了主引导固件的多个副本;所述执行引导固件从存储设备的nvm芯片中加载主固件包括,从所述指定管芯的指定地址读出主固件的第一副本,若读出主固件的第一副本过程中出现数据读取错误,则从指定管芯读出主固件的其他副本,若主固件的所有副本都无法成功读出,则加载主固件失败,响应于加载主固件失败,执行引导固件将指示引导失败的信息记录在所述存储设备的非易失存储芯片中。
21.根据本技术第一方面的第一至第六提高存储设备可用性的故障管芯管理方法之一,提供了根据本技术第一方面的第七提高存储设备可用性的故障管芯管理方法,其中若
主固件加载成功,主固件接管对存储设备的控制;主固件从存储设备的存储器中获取所述引导固件生成的所述故障管芯表。
22.根据本技术第一方面的第七提高存储设备可用性的故障管芯管理方法,提供了根据本技术第一方面的第八提高存储设备可用性的故障管芯管理方法,其中所述关键数据包括日志和/或系统元数据;所述执行主固件从存储设备的可用管芯中加载关键数据包括,从存储设备的指定地址根据存储日志的数据结构读出日志的副本,以及从存储设备的指定地址根据存储系统元数据的数据结构读出系统元数据的副本;若日志的任何副本都无法成功读出,或者系统元数据的任何副本都无法成功读出,执行主固件是存储设备进入降级模式;若日志的任一副本成功读出,以及系统元数据的任一副本成功读出,则存储设备的启动完成,执行主固件使存储设备正常工作。
23.根据本技术第一方面的第八提高存储设备可用性的故障管芯管理方法,提供了根据本技术第一方面的第九提高存储设备可用性的故障管芯管理方法,其中所述存储设备在降级模式中,响应接收的主机命令,但不访问nvm芯片,其中,若接收的主机命令是io命令,以指定的结果作为对主机命令的响应,若接收的主机命令是管理命令,对于不需要访问nvm芯片以及不需要利用所述关键数据的管理命令,向主机给出对管理命令的正确响应,对于无法处理的管理命令,在向主机给出的对管理命令的响应中指示故障。
24.根据本技术第一方面的第九提高存储设备可用性的故障管芯管理方法,提供了根据本技术第一方面的第十提高存储设备可用性的故障管芯管理方法,还包括:执行主固件根据故障管芯表记录的故障管芯识别是否存在不可恢复的用户数据;响应于存在不可恢复的用户数据,使存储设备进入数据故障模式,在数据故障模式中,对从主机接收的写命令,不再将写命令对应的数据写入管芯,并向主机告知写命令处理失败,对从主机接收的读命令,尝试根据读命令从一个或多个管芯读出数据,并将读出数据的正确或错误的结果作为对读命令的响应告知主机。
25.根据本技术第一方面的第十提高存储设备可用性的故障管芯管理方法,提供了根据本技术第一方面的第十一提高存储设备可用性的故障管芯管理方法,还包括:响应于存在不可恢复的用户数据,使存储设备进入降级模式。
26.根据本技术的第二方面,提供了根据本技术第二方面的第一存储设备,包括存储器、处理器、nvm芯片及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现根据本技术第一方面的用于提高存储设备可用性的故障管芯管理方法的方法之一。
附图说明
27.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
28.图1展示了固态存储设备的框图;
29.图2展示出了大块的示意图;
30.图3a展示了根据本技术实施例的存储设备的框图;
31.图3b展示根据本技术实施例的nvm芯片中的数据组织的示意图;
32.图4展示了根据本技术实施例的存储设备上电过程的流程图;
33.图5展示了根据本技术又一实施例的存储设备主固件启动过程的流程图;以及
34.图6展示了根据本技术实施例的存储设备的降级模式的示意图。
具体实施方式
35.下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
36.图3a展示了根据本技术实施例的存储设备的框图。
37.存储设备包括多个nvm芯片,每个nvm芯片包括多个管芯。作为举例,管芯312存在故障。存储设备上电后,首先加载引导固件,从而控制部件104执行引导固件(图3a中由(1)指示)。引导固件使得控制部件104初始化每个nvm芯片的每个管芯(图3a中由(2)指示)。响应于识别出故障的管芯(例如,控制部件104向管芯发出初始化命令,却在指定时间内没有收到来自管芯的响应),引导固件将故障管芯记录在dram 110的故障管芯表(320)中。故障管芯表位于例如dram 110的指定存储位置,从而引导固件与主固件都知晓如何访问故障管芯表。
38.根据本技术的实施例,即使识别出一个或多个故障的管芯,引导固件也继续执行,将识别出的固件管芯记录在故障管芯表320。在完成了对所有管芯的初始化(即使部分管芯因故障而初始化失败),引导固件还使得控制部件104加载主固件。
39.主固件及其多个副本镜像例如存储在一个或多个nvm芯片的指定地址。引导固件尝试加载主固件的指定副本,以及在指定副本故障的情况,尝试通过主固件的其他副本来完成主固件的加载(图3a中由(4)指示)。由于管芯可能发生故障,将主固件的各副本镜像分别存储在不同的管芯,从而即使部分管芯故障,依然有机会从其他管芯加载主固件。
40.加载后的主固件取代了引导固件对控制部件104的控制权。控制部件104执行主固件,会再次初始化各个管芯。根据本技术的实施例,主固件从dram110的故障管芯表320获取正确和/或故障管芯的标识(图3a中由(5)指示),以及仅对根据故障管芯表所获得的正常管芯执行初始化(图3a中由(6)指示)。若主固件对管芯初始化的过程中,若识别出新的故障管芯,依然记录在故障管芯表320中。完成了nvm芯片的初始化,主固件还从nvm芯片中获取系统数据、恢复ftl表,以及开始响应从接口103获取的主机io命令。
41.图3b展示根据本技术实施例的nvm芯片中的数据组织的示意图。
42.存储设备包括多个nvm西片以及多个管芯(展示了管芯0-管芯7)。nvm芯片的管芯中存储了主固件镜像的多个副本(记为主固件镜像0、主固件镜像1、主固件镜像2与主固件镜像3)、日志数据的多个副本(记为日志0与日志1)、系统元数据的多个副本(系统元数据0、系统元数据1与系统元数据2),以及用户数据。通过提供多个副本,来提高存储数据的可靠性。用户数据没有副本,但用户数据由页条带提供保护。
43.日志是例如在申请号为201510430174.6、发明名称为“固态硬盘日志生成方法及其装置”的中国专利申请、申请号为201610499397.2、发明名称为“一种日志记录方法、加载
方法及其装置”的中国专利申请、以及申请号为201711456111.3、发明名称为“固态存储设备的日志数据组织”的中国专利申请中所记载的日志。通过日志,得以恢复例如存储设备上次关闭时的ftl表、cmb(controllermemorybuffer,在nvme协议中定义)、hmb(hostmemorybuffer,在nvme协议中定义)、控制设备缓存等数据。系统元数据是控制部件工作所需的关键信息,例如,命名空间数量、命名空间id、逻辑地址空间格式化配置信息、数据密钥等。
44.nvm芯片中的主固件镜像、日志以及系统元数据的各副本,被存储在指定的地址,从而主固件得以从nvm芯片中获取这些数据,以及在副本之一出现故障后,主固件知晓其他副本的存储位置。各种数据的副本的任何一个能被正确读出,所对应的数据就能被使用,进而使得存储设备正确工作。以及将各副本存储在多个管芯中,使得即使一个或若干管芯出现故障,也能从未故障的管芯中获取正确的副本。例如,若管芯0故障,引导固件能从管芯1和/或管芯2获取主固件镜像2或主固件镜像3,以完成对主固件的加载。作为举例,主固件镜像在nvm芯片中是连续存储的,从而引导固件得以容易地根据入口地址(起始地址)而获取完整的主固件镜像。日志与系统元数据的数据结构比主固件镜像复杂,以便于在运行时或异常掉电的瞬时生成并存储日志与系统元数据。而主固件有复杂的控制逻辑来识别并加载日志与系统元数据。主固件知晓日志与系统元数据的各副本的入口地址(起始地址)与数据结构。从而若例如管芯3发生故障,主固件也能通过日志副本(日志1)来获取日志。
45.根据本技术的实施例,引导固件负责加载主固件。而主固件负责加载日志与系统元数据。以及主固件还响应于主机的io命令以及通过实施垃圾回收来访问nvm芯片中存储的用户数据。
46.图4展示了根据本技术实施例的存储设备上电过程的流程图。
47.存储设备上电后,首先加载并执行引导固件。引导固件对每个nvm芯片的每个管芯进行初始化。在对管芯初始化过程中,引导固件根据管芯的响应识别出故障管芯,并将管芯故障记录在dram中,将dram中存储了故障管芯的信息的区域称为故障管芯表。接下来引导固件从nvm芯片中加载主固件。引导固件从指定管芯的指定位置读取主固件的副本。若对主固件副本的各部分数据都正确读出,则成功加载了主固件。若读出的主固件副本的部分数据故障,引导故障则尝试读出另一个主固件副本。可选地,引导固件还根据故障管芯表记录的故障管芯,识别出不可用或可用的主固件副本,从而略过不可用的主固件副本而缩短主固件副本加载过程。
48.若主固件加载成功,引导固件将控制部件的控制权移交给主固件。若主固件加载失败(所有的主固件副本都加载失败),引导固件在例如nor闪存中记录主固件加载失败及其原因。可选地,还在nor闪存中记录故障管芯表或者故障管芯的数量。引导固件可选地还终止引导过程。此时,用户或主机观察到存储设备关闭。可通过访问例如nor闪存来寻找存储设备启动失败的原因。
49.若主固件加载成功,控制部件的控制权由主固件接管。主固件再次执行管芯初始化过程。主固件初始化管芯目的在于使管芯工作在更高的时钟频率,以充分发挥存储设备的性能。根据本技术的实施例,在引导固件将控制部件控制权移交主固件过程中,不再初始化dram,从而引导固件写入dram的管芯故障表可被主固件获取。主固件运行后,首先从dram获取管芯故障表,对于已经由引导固件标记为故障的管芯,主固件不再对其初始化,以缩短
管芯初始化的过程,也避免操作故障管芯而引起故障;对于未标记为故障的管芯或者正常的管芯,主固件对其初始化,并可选地使管芯工作在全速模式。可选地,主固件还根据管芯初始化的结果再次更新dram中的管芯故障表。
50.接下来,主固件从nvm芯片的管芯的指定位置加载关键数据。关键数据包括日志和/或系统元数据。由于存储了日志/系统元数据的管芯可能故障,并导致日志和/或系统元数据的加载失败,此时存储设备的部分功能将无法实现(例如,ftl表不完整或不正确),为避免存储设备的故障被传播而引起主机崩溃,主固件控制存储设备进入降级模式。在降级模式中,控制部件能响应主机的命令,但不访问nvm芯片,并以指定的结果(例如“故障”)作为对主机命令的响应。在降级模式中,主机的驱动程序看来,存储设备是存在的,例如,在操作系统中能获取到存储设备的标识。对于存储设备的部分或全部管理命令(例如admin命令,而非io命令),控制部件能给出正确的响应,或者给出响应但响应的结果指示故障。在主机的应用程序尝试访问存储设备(例如读写数据)时,对存储设备的读/写命令将得到命令处理错误的提示。这种错误通常不会是操作系统崩溃。
51.若关键数据加载成功,存储设备的启动过程完成,存储设备开始正常工作并响应主机或用户的命令。
52.根据本技术的实施例,在存储设备的一个或多个管芯存在故障时,主固件还是尽力使存储设备启动并工作,从而提高存储设备的可用性。并且充分发挥存储设备的容错能力,即使因管芯故障导致关键数据的部分副本无法读出,只要每种关键数据有任何副本可用,就能使存储设备启动并正常工作,从而进一步提高了存储设备的可用性。
53.图5展示了根据本技术又一实施例的存储设备主固件启动过程的流程图。
54.在图5的实施例中,主固件记载后,从dram获取故障管芯表。可选地,引导固件将故障管芯表记录在存储设备的nor闪存中,相应地,主固件从nor闪存获取故障管芯表。
55.对于根据故障管芯表没有发现故障的管芯,主固件通过一系列操作完成对管芯的初始化,包括:向管芯发送复位命令,向管芯发送一个或多个设置特征(setfeature)命令,对管芯进行训练,以使管芯工作在全速模式。在对管芯初始化过程中,若管芯对复位命令在指定时间内没有响应,则识别出管芯初始化失败,将该管芯的标识记录在dram的故障管芯表中,以及对该管芯不再进行后续的设置特征、训练等操作。在对管芯进行训练的过程中,若训练过程超时,则识别出管芯初始化失败,该管芯的标识记录在dram的故障管芯表中,以及结束对该管芯的初始化。即使对一个或多个管芯的初始化过程中识别出管芯故障,依然继续对其他管芯的初始化过程,以使得主固件的启动过程继续进行。
56.在管芯初始化后,主固件开始加载关键数据的过程。由于关键数据有多种,对多种关键数据的加载可以串行或并行进行。作为举例,在图5的实施例中,首先加载日志,通过加载日志恢复诸如ftl表。作为举例,在存储设备中,日志有2份副本,任一副本可被正确读出,即能成功加载日志。若日志的两份副本的加载都失败,则意味着存储设备无法正常工作,此时不再加载其他关键数据,主固件使存储设备进入降级模式。
57.若日志加载成功,在图5的实施例中,接下来加载数据缓存。数据缓存也有例如2份副本,任一副本可被正确读出,即可成功加载数据缓存。若数据缓存加载失败,使存储设备进入降级模式。若数据缓存加载成功,则存储设备可正常工作并响应主机的io命令。
58.可选地,主固件还根据故障管芯表记录的故障管芯识别是否存在不可恢复的用户
数据。例如,当页条带的故障物理页数量超过了页条带所能容忍的故障的上限,则存在不可恢复的用户数据。以及作为响应,主固件使存储设备进入数据故障模式。在数据故障模式下,作为举例,向主机或用户告知存储设备的数据存在危险,拒绝再接受主机写入的数据,尽力响应主机的读命令,以利于主机读出数据。可选地,在识别出存在不可恢复的用户数据的情况下,使存储设备进入降级模式,以简化主固件的设计。
59.可选地,若存储设备工作过程中,出现新增的故障管芯,例如响应于主机命令而访问管芯时,管芯指示处理失败或在指定时间内没有响应,主固件使存储设备进入数据故障模式,或者主固件识别是否存在不可恢复的用户数据。若出现了不可恢复的用户数据,则使存储设备进入数据故障模式,否则通过垃圾回收过程,将故障管芯所涉及的页条带的数据搬移到工作正常的页条带,以避免数据丢失。
60.依然可选地,存储设备关闭的过程中,可能识别出新增的故障管芯。例如,在正常关闭存储设备的流程中或掉电等异常关闭存储设备的过程中,都会向管芯写入日志和/或系统元数据。基于向管芯写入数据失败或在指定时间内没有响应,识别出管芯故障。此时,主固件优先继续执行存储设备的关闭过程,包括例如向其他管芯重写之前因故障管理引起的写入失败的数据。因为关闭过程所能使用的电量可能受限,需要优先确保系统关键数据被有效保存。在完成了关闭流程中,再更新故障管芯表,以及将故障管芯表记录在nor闪存或其他非易失存储介质中。从而,在关闭流程后,即使更新故障管芯表或其持久化未完成,由于存储设备下次上电还会首先做管芯初始化,因而这也不影响存储设备下次上电后的工作。
61.图6展示了根据本技术实施例的存储设备的降级模式的示意图。
62.主机以遵循存储协议的io命令访问存储设备102。控制部件104根据来自主机的io命令,生成一个或多个介质接口命令并提供给介质接口控制器。介质接口控制器根据介质接口命令生遵循nvm芯片的接口协议的存储介质访问命令(例如,编程命令、读命令、擦除命令)。控制部件104还跟踪从一个io命令生成的所有介质接口命令都被执行完成,向主机指示io命令的处理结果。
63.参看图6,控制部件104包括例如主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器与存储介质管理单元。控制部件104的处理器通过执行主固件来提供主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器和/或存储介质管理单元。
64.主机接口获取主机提供的io命令,并生成存储命令提供给存储命令处理单元。存储命令例如访问相同大小的存储空间,例如4kb。
65.存储介质管理单元为每个存储命令维护逻辑地址到物理地址的转换。例如,存储介质管理单元包括ftl表。存储介质管理单元还维护诸如垃圾回收、磨损均衡等管理nvm芯片所需的功能。
66.存储命令处理单元根据存储介质管理单元提供的物理地址,操作介质接口控制器向nvm芯片发出存储介质访问命令。存储介质访问命令遵循nvm芯片的接口协议。
67.在存储设备的降级模式,控制部件的主机命令处理单元工作,而介质接口控制器不工作。从而避免再访问故障的管芯。访问故障的管芯可能因管芯短路或其他故障而引发进一步的不利后果。可选地,在降级模式,控制部件仅主机命令处理单元工作,而诸如存储命令处理单元、存储介质管理单元和/或介质接口控制器均不工作。通过例如切断主机命令
处理单元向存储命令处理单元提供消息或命令的通路来使得存储命令处理单元不工作。类似地,切断存储命令处理单元到存储介质管理单元/介质接口控制器的消息或命令的通路。
68.在降级模式,主机命令处理单元工作,接收主机提供给存储设备的命令,并给出响应。由于不能访问nvm芯片,对于主机提供给存储设备的读/写命令,存储命令处理单元自身生成命令处理结果(例如,读出数据错误、读出数据为诸如全0的指定值(代表错误)、写入数据失败等),并将命令处理结果提供给主机。可选地,存储命令处理单元不根据主机提供的命令生成存储命令,也不提供给存储命令处理单元。
69.在降级模式,响应于接收主机提供的管理命令(诸如nvme协议的admin命令),主机命令处理单元根据自身掌握的信息,能处理部分管理命令(例如,读取命名空间id,读取s.m.a,r.t信息等),主机命令处理单元相应地生成正确的结果作为对主机的响应,这也无需存储命令处理单元等部件的协助即可完成。一些管理命令(例如存储设备主固件更新)需要例如访问nvm芯片。对于此类管理命令,降级模式的存储设备无法执行,相应地,主机命令处理单元自身生成命令处理结果(例如,命令处理出现错误),并提供给主机。在降级模式的存储设备还向主机告知自身处于降级模式。例如,通过管理命令,或者存储设备定义的私有命令,主机命令处理单元向主机提供存储设备处于降级模式的指示。
70.根据本技术的实施例,即使一个或多个管芯故障,由于主固件依然使得控制部件工作,并能响应部分主机命令,从而主机操作系统能够同存储设备正常交互,避免了存储设备的故障被扩散并引起主机崩溃。用户也能通过访问存储设备获知其处于降级模式,以及进一步获取处于降级模式的原因是例如出现了故障的管芯及其数量。从而用户收获了更好的体验,并能作出相应的补救或应对措施,例如,更换存储设备,或者尽早进行数据恢复与数据迁移。
71.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献