PLP备份失败之后的SSD支持只读模式的制作方法

文档序号:28955480发布日期:2022-02-19 11:40阅读:210来源:国知局
PLP备份失败之后的SSD支持只读模式的制作方法
plp备份失败之后的ssd支持只读模式
技术领域
1.本发明大体上涉及经设计以确保固态硬盘(ssd)可在断电保护(plp)失败之后进入至少只读模式的ssd实施技术。


背景技术:

2.由于ssd的性能优势,ssd胜过传统转盘式硬盘。ssd提供许多优势,尤其在减少延时上,其使ssd有利用于需要大量快速数据移动的数据中心及其它应用中。ssd甚至正取代个人计算机中的传统转盘式硬盘。
3.为了管理存储在ssd上的数据,ssd需要记录特定元数据以允许其知道存储在ssd上的数据已进行哪些改变及所述数据已存储在哪里。为了减少延时且保持高吞吐量,元数据存储在快速易失性存储器(例如dram)而非非易失性但较慢nand闪存中。然而,在断电事件期间,将易失性存储器中的此元数据及任何其它数据存储到非易失性存储器中(作为称为“硬化”的过程的部分)以保存数据是很重要的。
4.如果元数据丢失,那么ssd将无法确定哪些数据存储在哪里且因此不会允许对任何数据进行任何存取。此包含无法存取存储在非易失性存储器中的所有数据,即使数据在断电事件之前已很好存储。
5.一些ssd经设计以响应于断电事件而硬化存储在易失性存储器中的所有数据。此数据不限于操作驱动所需的关键元数据,而是可包含非关键元数据及高速缓存数据。非关键元数据及缓冲区数据尽管未永久存储,但会在电源恢复时丢失且不完全阻碍对ssd的所有存取。然而,尝试保存所有易失性数据(包含对ssd的操作不重要的数据)的结果是有效硬化所有数据及指向所有经存储数据的目录所需的时间量及能量增加。
6.在许多传统ssd中,仅在保存所有数据之后写入目录。然而,如果备用电源(例如由plp电容器提供的电源)在保存所有数据及写入目录之前发生故障,那么ssd无法完全恢复。尽管制造试图预测将需要多少能量来完全硬化所有易失性数据,但此并不总是可行。此外,随着ssd老化,特定plp组件(例如plp电容器)可能不再像最初设计那样表现。因此,无法保证ssd将具有足够备用电源来完全硬化所有易失性数据且在完全断电之前产生指向硬化数据的目录。
7.在缺乏plp电容器/备用电源的一些消费类ssd中存在一种替代方法,其中在运行时连续产生元数据日志,使得当发生断电时,ssd固件可通过读取及重放日志来重新产生所需元数据及其它易失性数据。然而,由于各种原因,此方法不适合大规模操作。例如,在运行时不断写入元数据日志产生延时,因为此写入与对ssd的所有其它写入操作竞争。此外,设计及维护元数据日志是一项复杂任务,其不仅增加开发费用,而且增加,降低ssd的效力的处理费用。
8.因此,存在长期期盼及未满足需要来产生一种用于在具有plp保护组件的ssd中保存关键元数据的方法,其降低断电事件使ssd完全操作的风险,但不降低ssd的效率。


技术实现要素:

9.根据本发明的特定实施例,操作ssd涉及识别对应于先前写入到所述ssd的数据的关键元数据。响应于断电事件,所述方法还包含:将所述关键元数据存储在非易失性存储器中;将对应于所述经存储关键元数据的第一目录写入到所述非易失性存储器;及存储指向所述第一目录的指针。
10.根据本发明的特定实施例,所述方法还包含:将存储在写缓冲区中的数据存储在所述非易失性存储器中;及将非关键元数据存储在所述非易失性存储器中。根据进一步实施例,所述方法还包含:将对应于所述经存储关键元数据、所述经存储非关键元数据及所述经存储写缓冲区数据的第二目录写入到所述非易失性存储器;及更新所述指针以指向所述第二目录。
11.根据本发明的其它实施例,所述方法还包含响应于电源恢复事件而确定所述指针是指向所述第一目录还是指向对应于经存储关键元数据、经存储非关键元数据及经存储写缓冲区数据的第二目录。根据本发明的额外实施例,所述方法还包含:如果所述指针指向所述第一目录,那么进入只读模式;及如果所述指针指向所述第二目录,那么进入读写模式且处理所述经存储写缓冲区数据。
12.在本发明的特定其它实施例中,其中存储所述指针包括将所述指针存储在不同于所述非易失性存储器的第二非易失性存储器中。在本发明的特定实施例中,所述第二非易失性存储器是spi-nor闪存。
13.在本发明的一些实施例中,所述非易失性存储器是nand闪存。
14.在特定其它实施例中,所述第一目录包括各自指向多个数据结构中的不同数据结构的多个条目。在一些额外实施例中,所述第二目录包括各自指向多个数据结构中的不同数据结构的多个条目。
15.根据本发明的特定实施例,一种ssd包括存储器控制器、非易失性存储器及断电保护电容器。所述存储器控制器经配置以:识别对应于先前写入到所述ssd的数据的关键元数据;及响应于断电事件而将所述关键元数据存储在非易失性存储器中、将对应于所述经存储关键元数据的第一目录写入到所述非易失性存储器及存储指向所述第一目录的指针。
16.在一些实施例中,响应于断电事件,所述存储器控制器经配置以:将存储在写缓冲区中的数据存储在所述非易失性存储器中;及将存储在所述写缓冲区中的数据存储在所述非易失性存储器中。在本发明的一些额外实施例中,所述存储器控制器还经配置以:将对应于所述经存储关键元数据、所述经存储非关键元数据及所述经存储写缓冲区数据的第二目录写入到所述非易失性存储器;及更新所述指针以指向所述第二目录。
17.在本发明的一些其它实施例中,所述存储器控制器还经配置以响应于电源恢复事件而确定所述指针是指向所述第一目录还是指向对应于经存储关键元数据、经存储非关键元数据及经存储写缓冲区数据的第二目录。在特定额外实施例中,所述ssd经配置以:如果所述指针指向所述第一目录,那么进入只读模式;及如果所述指针指向所述第二目录,那么进入读写模式且处理所述经存储写缓冲区数据。
18.在本发明的一些其它实施例中,所述ssd进一步包括不同于所述非易失性存储器的第二非易失性存储器,且所述存储器控制器经配置以将所述指针存储在所述第二非易失性存储器中。在本发明的更多实施例中,所述第二非易失性存储器是spi-nor闪存。
19.在本发明的特定实施例中,所述非易失性存储器是nand闪存。
20.在本发明的一些实施例中,所述第一目录包括各自指向多个数据结构中的不同数据结构的多个条目。根据本发明的特定实施例,所述第二目录包括各自指向多个数据结构中的不同数据结构的多个条目。
附图说明
21.图1说明根据本发明的特定实施例的ssd。
22.图2说明根据本发明的特定实施例的处置断电事件的过程。
23.图3说明根据本发明的特定实施例的从断电事件恢复的过程。
具体实施方式
24.图1说明根据本发明的特定实施例的ssd 100,其包含各种不同类型的存储器。
25.例如,ssd 100包含主非易失性存储器110。主非易失性存储器110操作为ssd 100的大容量存储组件且经设计以长期存储数据。在本发明的特定实施例中,主非易失性存储器110是包括多个nand裸片120的nand闪存。将数据写入到各种裸片120。所属领域的一般技术人员将理解,可在不脱离本发明的精神的情况下使用各种其它主易失性存储器类型。
26.ssd 100还可包含易失性存储器160,在不脱离本发明的精神的情况下,其可为各种不同类型的易失性存储器,例如sram及dram。易失性存储器160快于主非易失性存储器110。因此,ssd 100使用易失性存储器160来存储需要快速存取或存储的数据。
27.例如,易失性存储器160存储ssd 100的关键元数据170。关键元数据170存储关于存储在主非易失性存储器110上的数据的信息。关键元数据170对于存取主非易失性存储器110来说是必不可少的。如果没有关键元数据170,那么ssd 100无法分辨主非易失性存储器110上存储什么数据或任何数据存储在主非易失性存储器110中的什么位置。如果关键元数据170丢失,那么ssd 100变得不可操作或“砖化(bricked)”,甚至在关键元数据170丢失之前存储在主非易失性主存储器110中的数据也无法从ssd 100读取。关键元数据170的丢失会阻碍ssd成功继续操作或再启动/重启(无法成功操作或再启动/重启通常称为“砖化”ssd,因为ssd表现得像块砖,即,完全无响应)。关键元数据170可包含逻辑到物理映射表、超级块表、超级块列表、增长坏块表、raid奇偶校验信息、前端用户配置设置、nand错误及可靠性信息。然而,所属领域的一般技术人员将理解,上述内容仅是实例且构成关键元数据170的信息可在不脱离本发明的精神的情况下变化。
28.易失性存储器160还可存储非关键数据175。非关键数据175可包含额外元数据,例如最近未完成命令、自由trim信息及调试日志。另外,非关键数据175可包含缓冲区数据,例如写缓冲区信息。写缓冲区数据被临时存储,直到ssd 100将数据写入到主非易失性存储器110。由于易失性存储器160快于主非易失性存储器110,因此将数据存储为写缓冲区数据以减少系统延时可为有利的。所属领域的一般技术人员将理解,在不脱离本发明的精神的情况下,各种不同类型的数据可为非关键数据175的部分,例如读缓冲区中的数据。
29.如果可能,非关键数据175应被硬化。例如,硬化写缓冲区数据将允许ssd 100回放脏写缓冲区且因此在ssd 100恢复供电时存储写入数据。
30.根据本发明的特定实施例,如果非关键数据175未被硬化,那么存储此数据的失败
不会阻碍ssd 100运行。在其中在存储所有非关键数据175之前plp系统发生故障但所有关键元数据170被存储且可存取的情况中,ssd 100将能够启动进入只读模式且允许存取保存在主非易失性存储器110中的先前存储数据。
31.ssd控制器140需要备用电源以在断电事件之后硬化存储在易失性存储器160中的数据。ssd控制器140可为固件、硬件、软件或其组合。在本发明的一些实施例中,plp电容器130提供上述备用电源。plp电容器130在正常操作期间充电且在存储在易失性存储器160中的所有数据硬化且ssd 100完成完全关闭以前或在plp电容器130中的所有备用电源耗尽以前放电。尽管图1说明plp电容器130,但所属领域的一般技术人员将理解,在不脱离本发明的精神的情况下,可使用各种其它plp装置,例如电池。
32.如上文所暗示,在断电事件之后,当主电源断电时,ssd控制器140将工作以将存储在易失性存储器160中的数据写入到主非易失性存储器110。然而,因为主非易失性存储器110实际上由多个非易失性存储器裸片组成,所以仅将数据写入到主非易失性存储器110是不够的。如果没有额外信息,那么数据是杂乱无章的且几乎没有价值,因为在恢复之后,ssd控制器140无法确定来自易失性存储器160的哪些数据已存储在哪里。
33.因此,ssd 100需要存储可由ssd控制器140用于查找及管理硬化数据的目录或其它信息。为了定位目录或关于硬化数据的位置及性质的其它信息,ssd 100可在不同于主非易失性存储器110的辅非易失性存储器中存储指向一个或多个目录的指针。例如,ssd 100可含有spi-nor闪存150以存储指向目录的指针或关于硬化数据的其它信息。使用此替代非易失性存储器可提供许多优点。首先,此存储器可快于主非易失性存储器110且功耗小于主非易失性存储器110。此外,由于spi-nor 150不是ssd 100的主非易失性存储器110,因此其可留作特定任务且存储器区域可预分配及固定。因此,可在ssd控制器140的固件或软件内硬编码spi-nor 150内信息的位置。此将包含指向目录的指针的位置,使得ssd控制器140可在断电事件之后启动时容易地找到关键信息。尽管图1参考spi-nor 150,但所属领域的一般技术人员将理解,其它类型的非易失性存储器可适合于提供专门非易失性存储器。例如,非易失性存储器110的选定部分可经预分配使得其位于不同于在非易失性存储器110中存储用户数据的超级块的位置中。
34.然而,传统ssd仅在所有数据硬化之后写入目录。事实上,由于此方法,一些传统ssd甚至无法记录易失性数据硬化的顺序。因此,如果plp电容器在ssd完成硬化过程之前发生故障,那么ssd将无法存取所有先前易失性数据。此损失将包含关键元数据,其损失削弱ssd。
35.然而,根据本发明的特定实施例操作的ssd(例如ssd 100)依显著降低任何关键元数据170丢失的机会的方式操作,即使plp电容器130过早发生故障。此将在下文参考图2及3进一步解释。本文中所描述的方法可由ssd控制器140、其它装置、软件、固件或其组合实施。
36.图2说明根据本发明的特定实施例的硬化数据的过程。
37.过程开始于200,此时发生断电事件。断电事件可包含(但不限于)ssd所在的系统外部的电网故障、ssd所在的系统内部的电源故障或ssd自身内的电源故障。此外,尽管本文中所描述的过程依特定顺序描述,但其它步骤可发生在特定步骤之间,步骤可同时发生,且一些步骤可在其它步骤开始之前未完全完成。
38.在步骤210,ssd通过测量内部电压及电流的控制器或其它机构来检测断电事件。
在检测到断电事件之后,ssd开始硬化过程。在不脱离本发明的精神的情况下,控制器、另一元件或元件的组合可实施过程。
39.在步骤220,ssd识别存储在易失性存储器中的关键元数据。步骤220可在断电之前执行。例如,固件可经设计以在常规操作期间保存关键及非关键元数据地址的列表。固件可在ssd的常规操作期间将关键元数据及非关键元数据记录在单独列表中。此外,所属领域的一般技术人员将理解,在不脱离本发明的精神的情况下,固件可依不同方式(例如表格)记录关键及非关键元数据。关键元数据可为ssd在启动ssd且允许对所有用户数据及查找表进行读取/写入存取时需要的任何数据。非关键元数据可为有用但在不存在时不会使ssd不可用的任何数据。此外,所属领域的一般技术人员将理解,构成关键元数据或非关键元数据的数据可在不脱离本发明的精神的情况下变化。
40.接下来,在步骤230,ssd开始存储关键元数据。与许多传统ssd不同,根据本发明的特定实施例的ssd使此必要数据比其丢失不会“砖化”ssd的数据优先存储。
41.在步骤240,ssd写入对应于关键元数据的第一目录。第一目录可在存储所有元数据之后写入或其可在存储关键元数据时写入。目录可存储在主非易失性存储器或其它非易失性存储器中,其取决于目录的大小、存储器的可用性及/或其它设计决策/约束。在一些实施例中,目录是一组条目。在特定实施例中,条目各自含有指向数据结构的指针。通常将存在一个以上条目,因为将存储多个数据结构作为关键元数据硬化的部分且目录的每一条目将指向存储关键元数据的数据结构中的不同者。
42.在步骤250,ssd存储指向第一目录的指针。在本发明的一些实施例中,指针存储在辅非易失性存储器内的固定位置中,例如关于图1描述的spi-nor。所属领域的一般技术人员将理解,在背离本发明的精神的情况下,存在许多不同可行位置来存储第一目录。将指向第一目录的指针存储在已知位置处允许ssd在启动之后找到其。ssd使用指针来识别及使用关键元数据以在断电事件之后提供只读存取。
43.关键元数据仅是在断电事件之前存储在易失性存储器中的数据的一小部分。因此,存储关键元数据是一个相对较快过程,其几乎无需像在断电之前完全硬化存储在易失性存储器中的所有数据一样多的功率。优先存储关键元数据且产生第一目录而非一直等到存储在易失性存储器中的所有数据硬化显著降低根据本发明的特定实施例的ssd将“砖化”的可能性,即使ssd的plp系统过早发生故障。
44.在步骤260,ssd开始存储来自易失性存储器的剩余数据。此可包含(但不限于)非关键元数据及写缓冲区。在理想情况下,此数据也硬化,但如先前所提及,如果plp组件过早发生故障,那么此数据的丢失不会阻碍对ssd的所有存取。在最坏情况下,写缓冲区中已被主机确认为已成功写入的数据将丢失,在此情况下,如果ssd尝试随后读取此数据,那么其会使不可恢复错误状态返回到主机,否则ssd能够正常读取及写入其它数据。所属领域的一般技术人员将理解,设计选择可指示此时存储什么数据。非所有非关键数据可同时存储,且在确定首先硬化哪些非关键数据时可发生一些优先排序。非关键数据可在步骤220期间经识别及排序,或优先排序可发生在过程中的另一点处。例如,作为写入数据传送的部分的小数据可优先于作为大得多的数据传送的部分的数据,因为如果大数据传送的硬化仅部分完成,那么整个数据传送必须归类为失败。因此,对于给定量的可用备用电源,最好优先完全硬化许多较小数据传送,而非冒险使用备用电源用于较大传送,因为其硬化由于备用电源
耗尽而永远无法完成。
45.在步骤270,ssd将第二目录存储在主非易失性存储器中。在本发明的特定实施例中,将第二目录写入到不同于第一目录的位置,且在其它实施例中,其可存储在相同位置处或甚至盖写第一目录。第二目录包含来自第一目录的所有信息及与新硬化非关键数据相关的信息,例如含有指向对应于新硬化数据的额外数据结构的指针的新条目。
46.在一些实施例中,当优先考虑特定非关键数据时,随着不同批次的非关键数据硬化,可逐批次产生一个以上第二目录。
47.在步骤280,用指向第二目录的指针替换辅非易失性存储器中的指针。然而,在一些实施例中,指向第二目录的指针可写入辅非易失性存储器内的单独位置中。所属领域的一般技术人员将理解,可对指向第二目录的指针存储在哪里做出不同设计选择。例如,盖写第一指针可节省有限辅非易失性存储器中的空间。另一方面,将指针存储在不同位置中可有益于确定在完全断电发生之前硬化过程进展到什么程度。
48.一旦指针经更新以指向第二目录,则ssd完成原先存储在易失性存储器中的所有数据的硬化。在从断电事件恢复之后,ssd将能够重放写缓冲区且处理其它非关键数据且返回到所有操作在不断电的情况下停止的点。
49.在步骤290,ssd完成关闭过程且停止所有活动直到电源恢复。所属领域的一般技术人员将理解,在完全关闭发生之前,ssd必须完成各种不同过程及任务,且非所有任务关于图2或本技术案进行描述。
50.图3说明根据本发明的特定实施例的ssd启动时ssd操作的过程。在不脱离本发明的精神的情况下,本文中所描述的步骤可由控制器、另一组件、软件及/或其组合实施。
51.在步骤300或步骤300之前,对ssd恢复供电。
52.在步骤300,ssd开始初始启动过程。
53.在步骤310,ssd加载其固件且开始根据固件操作。所属领域的一般技术人员将理解,在不脱离本发明的精神的情况下,固件表示ssd的初始低级操作指令集且可包括软件及/或硬件的混合。
54.在一些实施例中,固件可包含检测ssd从意外断电事件恢复的能力。在此类实施例中,当从预期断电事件(例如ssd的计划关闭)恢复时,可不发生本文中所描述的步骤。
55.在步骤320,ssd确定是否可找到在断电事件之前存储在易失性存储器中的数据的任何目录。在本发明的特定实施例中,此可通过检查在辅非易失性存储器(例如spi-nor)内的固定位置处是否有指向目录的任何指针可用来完成。然而,所属领域的一般技术人员将理解,可使用各种不同技术来确定目录是否适当写入及可存取,例如设置指示特定目录及其指针在ssd完全断电或关闭之前成功保存的旗标。此外,所属领域的一般技术人员将理解,确定是否存在任何目录的过程可为与确定存在什么类型的目录的过程相同的过程的部分。
56.如果无目录被识别,那么过程结束于步骤330。在步骤330,ssd无法启动,因为其没有关于先前写入到主非易失性存储器的信息的关键元数据。因此,数据无法用于ssd且ssd无法执行进一步操作。如上文所解释,首先硬化关键元数据且在断电事件时硬化存储在易失性存储器中的任何其它数据之前存储对应于关键元数据的单独目录显著降低根据本发明的特定实施例的ssd在任何时候到达步骤330的机会。在一些实施方案中,即使ssd无法启
动且执行正常读取及写入数据操作,但其能够响应来自主机的特定命令以提供错误状态及/或错误数据日志;运行诊断辅助器或工具以帮助识别启动失败的原因,且在一些其它实施方案中可提供对存储在主非易失性存储器中的数据的基本存取以使适当配置主机能够执行数据恢复。
57.在步骤340,ssd确定存储什么种类的目录。此可通过不同方式完成,包含通过设置辅非易失性存储器内的旗标或检查指针是否存储在辅非易失性存储器内的预定位置中。然而,所属领域的一般技术人员将理解,在不脱离本发明的精神的情况下,可采用各种不同方法来确定指针指向哪个目录。例如,指针可存储在含有指示指针指向的目录的类型的额外属性的数据结构中,或指针的地址值可用于指示目录的类型。
58.如果仅找到第一目录及/或指向第一目录的对应指针,那么ssd进入步骤350。在步骤350,ssd启动进入只读模式。在只读模式下,先前存储在主非易失性存储器中的数据可存取,但在断电事件期间写入到ssd的过程中的数据将丢失且无新数据可写入到ssd。尽管此结果不是最佳情况,但其好于其中ssd完全无法存取的情况,其可发生在特定现有技术方法下关键元数据硬化但没有对应目录存取所述数据时。
59.另一方面,如果第二目录及/或其指针经定位且ssd能够检索第二目录,那么ssd进行到步骤360。在步骤360,ssd进入读写模式且完全运行。此时,可检索先前存储数据且可将新数据写入到ssd。
60.另外,在特定实施例中,作为恢复过程的部分,ssd也可进入步骤370。在步骤370,ssd处理脏写入缓存区数据,即,在关闭过程期间保存但未根据正常操作程序适当存储的写缓存区数据。写缓冲区数据的处理通过根据正常操作程序存储数据来有效完成由plp事件中断的数据写入操作。一旦处理脏写缓冲区数据,则ssd可恢复操作,仿佛断电事件没有发生。
61.所属领域的熟练技术人员将明白本文中所描述的特定实施例的各个方面的其它目的、优点及实施例且其在说明书及附图的范围内。例如(但不限于),结构或功能元件可根据本文中所描述的特定实施例重新布置。类似地,根据本文中所描述的特定实施例的原理可应用于其它实例,即使此处未具体详细描述,但其将在本文中所描述的特定实施例的范围内。
62.此外,所属领域的一般技术人员将理解,本发明的特定方面(例如各种控制器)可实施为硬件、软件、固件或其组合。本文中所描述的特定实施例中的此类元件的描述不希望将这些类型的元件的实现方案限制为单一实施方案。所属领域的一般技术人员将理解,在不脱离本发明的精神的情况下,存在各种方式来实施本文中所描述的特定实施例的特定元件。
63.另外,在不脱离本发明的精神的情况下,本文中所描述的特定实施例中的元件参考可分成特定子元件、组合或复制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1