掌桥专利:专业的专利平台
掌桥专利
首页

从NAND媒体快速引导的固态存储装置

文献发布时间:2023-06-19 11:52:33


从NAND媒体快速引导的固态存储装置

本申请是申请日为2015年8月20日,申请号为“201580083941.9”,而发明名称为“从NAND媒体快速引导的固态存储装置”的发明专利申请的分案申请。

技术领域

所揭示实施例涉及存储器装置及系统。特定来说,所揭示实施例涉及用于基于初始化信息而将固态存储装置(SSD)初始化的方法,所述初始化信息存储于基于NAND的存储器媒体中。

背景技术

SSD使用例如快闪存储器媒体等非易失性固态存储媒体来持久地存储大量数据。SSD可以与常规硬盘驱动器(HDD)类似的方式操作,但无电动机、磁盘、读头及其它HDD移动组件。无移动零件使得SSD比HDD更稳定。举例来说,当HDD掉落或摇动时,读头可与旋转磁盘碰撞且有时损坏旋转磁盘。另外,SSD具有比HDD更快的读取/写入速度,且其几乎不发出噪声。

SSD的快闪存储器媒体可以是“NOR快闪存储器”及/或“NAND快闪存储器”媒体。NAND快闪存储器通常适合用于大量数据存储,这是因为其具有比NOR快闪存储器更高的存储容量、更低的成本及更快的写入速度。然而,与可以是随机存取接口的NOR快闪存储器接口相比,NAND快闪存储器具有相对的复杂串行接口。因此,通常将NOR快闪存储器与NAND快闪存储器结合使用以存储被频繁重新编程的特定编程信息。一种此类型的编程信息是初始化信息。控制器在启动时(即,当SSD被通电时)使用所述初始化信息。

发明内容

根据本申请的一些实施例描述的一种操作具有存储器媒体的存储器装置的方法。该方法包括:在所述存储器装置关机之前将初始化信息写入到所述存储器媒体的区域;及重新起动所述存储器装置,其中重新起动所述存储器装置包含:检测在所述存储器装置的所述关机之前所述存储器媒体的所述区域未被盖写,及至少部分地基于所述初始化信息而将所述存储器装置初始化。

根据本申请的一些实施例描述的一种操作具有存储器媒体的存储器装置的方法,所述存储器媒体包含存储启动表的第一存储器区域。该方法包括:识别所述启动表中所存储的存储器地址;对所述存储器媒体的与所述存储器地址相关联的第二存储器区域进行写入;及将所述启动表重写到所述第一存储器区域以使所述启动表失效。

附图说明

图1是具有根据本技术的实施例配置的存储器装置的系统的框图。

图2A到2D是展示根据本技术的实施例的在各种操作阶段中的图1的存储器装置的存储器单元的示意图。

图3是图解说明用于操作根据本技术的实施例的存储器装置的方法的流程图。

图4是包含根据本技术的实施例的存储器装置的系统的示意图。

具体实施方式

如下文更详细地描述,本文中所揭示的技术涉及存储器装置、具有存储器装置的系统及用于至少部分地基于存储于基于NAND的存储器媒体中的初始化信息而将存储器装置初始化的相关方法。然而,相关领域的技术人员将理解,所述技术可具有额外实施例且可在无下文参考图1到4所描述的实施例的数个细节的情况下实践所述技术。在下文所图解说明的实施例中,在并入基于NAND的存储媒体(例如,基于NAND的快闪存储器)的SSD的上下文中描述存储器装置。然而,除了基于NAND的存储媒体之外或代替基于NAND的存储媒体,根据本技术的其它实施例配置的存储器装置还可包含其它类型的适合存储媒体,例如磁性存储媒体。

图1是具有根据本技术的实施例配置的存储器装置或SSD 102的系统100的框图。如所展示,SSD 102包含存储器媒体104及存储器控制器106(“控制器106”),存储器控制器106经由控制器接口110将存储器媒体104可操作地耦合到主机装置108(例如,上游中央处理器(CPU))。举例来说,控制器接口110可以是串行接口(例如,计算机系统接口(SCSI)、串行AT附接(ATA)接口、高速外围组件互连(PCIe)接口等),及/或其它适合接口(例如,并行接口)。在下文更详细描述的一些实施例中,SSD 102可被配置为通用快闪存储系统(UFS),其包括存储器媒体104,但省略了其它类型的存储器媒体,例如随机存取存储器(RAM)。举例来说,在一些实施例中,此系统可省略基于NOR的存储器(例如,基于NOR的快闪存储器)及动态随机存取存储器(DRAM)以降低电力要求及/或制造成本。

存储器媒体104包含多个存储器单元112,多个存储器单元112各自包含多个存储器区(未展示)。个别存储器区可包含经配置以持久地或半持久地存储数据状态的存储元件(未展示)。在一些实施例中,此存储元件可包含浮动栅极。在图1中所图解说明的实施例中,存储器单元112是基于NAND的存储器单元112,其由布置成群组或“存储器页”114的存储器区组成。存储器页114继而被分组成更大的群组或“存储器块”116(在图1中被个别地识别为第一块116a及第二块116b)。在其它实施例中,可将存储器区布置成不同类型的群组及/或层级。此外,虽然在所图解说明的实施例中展示存储器页、块及单元的特定数目,但在其它实施例中,页、块及存储器单元的数目可不同,且可比所图解说明的实例中所展示的规模更大。举例来说,在一些实施例中,SSD 102可包含(例如)八个、十个或更多个(例如16、32、64或更多)存储器单元112。在这些实施例中,每一存储器单元112可包含(例如)2

存储器媒体104及/或个别存储器单元112还可包含其它电路组件(未展示),例如多路复用器、解码器、缓冲器、读取/写入驱动器、地址寄存器、数据输出/数据输入寄存器等,以用于存取并编程(例如,读取/写入)存储器媒体104中的存储器区及/或执行其它功能,例如处理信息及/或达成与控制器106的通信。在一个实施例中,存储器单元112中的每一者可由半导体裸片形成且与其它存储器单元裸片一起被布置于单个装置封装(未展示)中。在其它实施例中,存储器单元中的一或多者可共同定位于单个裸片上及/或跨越多个装置封装分布。

控制器106可以是微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或另一适合处理器。控制器106包含处理器118及内部存储器组件120。处理器118经配置以执行内部存储器组件120中所存储的指令以执行各种过程、逻辑流程及例程,以控制SSD 102的操作且管理SSD 102与主机装置108之间的通信。通常,控制器106可共同地及/或个别地直接存取且编程(即,读取及/或写入)存储器页114、存储器块116及/或存储器单元112。举例来说,控制器106可响应于从主机装置108接收到的写入命令而将数据写入到存储器媒体104的这些各个区域中的一或多者。

控制器106的一个功能是将SSD 102初始化以供操作。举例来说,初始化可包含编程具有初始值的数据寄存器(未展示)、加载引导块图像、建立与主机装置108的通信链路、验证凭证、创建映射表(例如,快闪转换表)等。通常,当SSD 102首次启动时(例如,当SSD102及/或主机装置108从被断电到被通电时),控制器106将初始化SSD 102。在一些例子中,控制器106可响应于从主机装置108接收到的复位命令而将SSD 102初始化。在图1中所图解说明的实施例中,控制器106至少部分地基于从存储器媒体104读出的初始化信息(例如,引导数据)而将SSD 102初始化。在下文所描述的实施例中,引导数据以启动表形式(未展示)存储于存储器媒体104的存储器页114中的一者中。举例来说,引导数据可包含存储器指针(例如,指涉存储器地址)、存储器映射、数据值及/或准备装置操作的其它适合信息。

在SSD 102的操作期间,控制器106周期性地更新存储器媒体104中所存储的引导数据。举例来说,在写入操作之后,控制器106可更新存储器指针以识别存储器媒体104的空白或者用于写入的不同区域(未展示)。因此,控制器106可在接收到后续写入命令时使用已更新的存储器指针来定位可用区域。另外或另一选择为,当控制器106检测到存储器媒体104存在非工作存储器区域(未展示)时,控制器106可将存储器指针添加到引导数据。举例来说,此非工作存储器区域可包含缺陷区域(例如,不良块)、超过最大写入计数的区域、压缩(trimmed)区域等。在一些情形中,当控制器106第一次循环通过存储器媒体104时,其会汇编出非工作存储器区域的列表。当控制器106第二次循环通过存储器媒体104时,其可使用此列表来避开非工作区域。当控制器106循环通过存储器媒体104时,其也可更新非工作区域的列表。

在至少一些实施例中,控制器106在SSD 102关机之前或期间(例如,在SSD 102及/或主机装置108被关闭电源之前或期间)将引导数据写入到存储器媒体104。当SSD102在关机之后又再次起动时,控制器106可使用引导数据来将SSD 102复原到其关机之前的先前状态(作为“快速引导”而为所属领域的技术人员所熟知)。举例来说,控制器106可使用引导数据来识别可用于写入的存储器页114、非工作存储器区域及/或与关机之前的SSD 102相关联的其它状态信息(例如,高速缓冲数据)。在一些实施例中,引导数据可仅占据存储器块116中的一者的总存储容量的一小部分(例如,一个存储器页114)。

通常,常规SSD将引导数据存储于RAM(例如,NOR及/或DRAM)中。RAM比基于NAND的存储器更适合存储引导数据,这是因为RAM具有允许存储器控制器选择并个别地(即,并非以NAND情形中的串行方式)重新编程存储器区的接口。因此,常规SSD的存储器控制器可容易地定位并更新RAM中的引导数据。通常,当更新引导数据时,存储器控制器通常将首先擦除RAM中所存储的引导数据,且接着将已更新的信息写入到最初存储初始信息的同一存储器位置(即,存储器地址)。当引导数据变得停滞或不再可靠时,存储器控制器还可将此信息标记为无效。

相比之下,基于NAND的存储器媒体中的存储器区无法像RAM中的存储器区一样被容易地重新编程。特定来说,在存储器控制器可重新编程选定存储器块中的存储器页(例如,存储器页114中的一者)中的任一者之前,重新编程NAND媒体通常需要存储器控制器先擦除存储器的整个块(例如,存储器块116中的一者)。如果存储器控制器在不首先擦除含有存储器页的整个块的情况下试图对所述页进行重写(例如,盖写),那么重写将在所述存储器页中产生位错误。通常,这些位错误是无法使用错误码校正(例如Bose、Chaudhuri及Hocquenghem(BCH)码校正)来轻易解决的(例如,高效地解决)。因此,当重新编程基于NAND的存储器媒体时,存储器控制器必须清除存储器块中的所有数据以清空存储器页,接着其才可重新编程存储器块中的存储器页中的任一者。

然而,根据本技术的各种实施例配置的SSD及其它存储器装置克服了与将引导数据存储于基于NAND的存储器媒体及类似存储器媒体中相关联的这些及其它挑战。在一个此实施例中,存储器媒体104将引导数据存储于存储器媒体104的第一区域(例如,单个存储器页114)中。当控制器106试图更新引导数据时,其使第一区域中所存储的引导数据无效,并将已更新的引导数据存储于存储器媒体104的第二区域(例如,不同存储器页114)中。在下文所描述的一些实施例中,控制器106通过在不首先擦除存储器媒体104的第一区域的情况下对所述第一区域进行重写来使所述第一区域中所存储的引导数据无效。以此方式盖写存储器媒体104的第一区域可能在第一区域中产生位错误,所述位错误指示此区域中所存储的引导数据不再有效。

图2A到2D是根据本技术的实施例的在各种操作阶段中的图1的SSD 102的个别存储器单元112的等角示意图。在图2A到2D所图解说明的实施例中,出于清晰起见仅展示单个存储器单元112。然而,在此实施例及其它实施例中,存储器媒体104(图1)的其它存储器单元112可包含类似操作状态及/或以与下文所描述类似的方式操作。

图2A展示第一操作阶段中的存储器单元112,例如在SSD 102(图1)关机(例如,关闭电源)之前的阶段。在图2A中所展示的第一阶段中,控制器106(图1)已将引导数据(例如,存储器指针、写入循环计数、不良块区域等)以启动表230a的形式写入到第一存储器页214a。在图2A中所图解说明的实例中,启动表230a包含指涉可用于写入的存储器页114中的一或多者的存储器指针P

图2B展示在图2A的第一操作阶段之后的第二操作阶段中的存储器单元112。在一个实施例中,在SSD 102(图1)启动之后立即出现第二阶段。在图2B中所展示的第二阶段中,控制器106(图1)已跨越位于第一存储器块116a及第二存储器块116b中的第二存储器页214b而写入数据d

图2C展示在图2B的第二操作阶段之后的第三操作阶段中的存储器单元112。在图2C中所展示的第三阶段中,控制器106(图1)已使第一存储器页214a中所存储的启动表230a无效。特定来说,控制器106使启动表230a无效,使得控制器106稍后在试图定位可用于写入的存储器页时不会依赖于目前无效的存储器指针P

在各种实施例中,控制器106通过利用其它信息(例如,空数据)盖写第一存储器页214a而在此存储器页214a中产生可由控制器106检测到的位错误而使启动表230a无效。然而,控制器106不盖写第二存储器页214b。因此,可基于第一存储器页214a中的位错误而检测到作为无效表的原始启动表230a,而第二存储器页214b中所存储的数据d

图2D展示在第三操作阶段之后的第四操作阶段中的存储器单元112。在图2D中所展示的第四阶段中,控制器106(图1)已将已更新的启动表230b存储于位于第二存储器块116b中的第三存储器页214c中。第三存储器页214c可以是存储器块116a及116b中的至少一者中的开放页114(例如,图2B及2C中所展示的所保留存储器页114),或例如在存储器单元112的另一存储器块(未展示)中的另一开放存储器页114。已更新启动表230b可包含至少一些与原始启动表230a相同的信息。然而,已更新启动表230b包含不再指涉第二存储器页214b的已更新存储器指针P

图3是图解说明用于操作根据本技术的实施例的存储器装置的例程340的流程图。在一个实施例中,控制器106(图1)可在SSD 102(图1)启动之后立即实施例程340,(例如)以使用存储器媒体104(图1)中所存储的引导数据来达成引导顺序(例如,快速引导)。例程340开始于确定存储引导数据的存储器媒体104的第一区域的位置(框341)。举例来说,在一个实施例中,例程340可使用存储器组件120(图1)中所存储的第一存储器地址A

接下来,例程340确定存储器媒体104的第一区域中所存储的引导数据是否有效(框342)。特定来说,例程340读出引导数据的至少一部分且检验位错误。通常,NAND存储器页包含专门用于错误码校正的相对小数目个存储器区。这些存储器区存储控制器106可使用以在读出操作期间解决位错误的信息,例如使用BCH码、低密度奇偶检验(LDPC)码或其它适合的错误码校正算法。如果所读出的数据通过了错误码校正,那么例程340继续基于引导数据而将SSD 102初始化(框343)。否则,例程340将引导数据标记为无效(框344)。在一些实施例中,当引导数据被标记为无效时,例程340可加载控制器106中所存储的默认引导指令。在这些情形中,默认引导指令将不包含存储器媒体104中所存储的引导数据的所有信息或任何信息。举例来说,默认引导信息不可识别可用存储器及/或不良块的位置,且控制器106可需要循环通过存储器媒体104并重新识别这些位置。因此,默认引导指令通常将不能达成快速引导。

一旦SSD 102被初始化,例程340便继续更新引导数据(框345)且将已更新引导数据存储于存储器媒体104的第二区域中。举例来说,例程340可在其检测到存储器媒体104中的不良存储器块的位置时更新引导数据。另外或另一选择为,例程340可结合写入操作、读取操作及/或若干个写入及/或读取操作而更新引导数据。此外,例程340可在SSD 102关机(例如,关机电源)之前更新引导数据。

在一个实施例中,已更新引导数据存储于单个存储器页114(图1)中。在其它实施例中,例程340可跨越多个存储器页114存储已更新引导数据及/或存储于专用存储器块116(图1)中。例程340可将存储器地址(例如,图2D的存储器地址B

在本技术的至少一些实施例的一个方面中,例程340能够将引导数据及/或其它初始化信息存储于基于NAND的存储器媒体而非RAM中。因此,可将根据这些及其它实施例配置的SSD及其它存储器装置制造成无RAM(例如,NOR存储器),或仅具有有限量的RAM(例如,仅具有基于RAM的内部组件120(图1))。因此,此类SSD及其它存储器装置可具有较低的电力要求及/或制造成本。

图4是包含根据本技术的实施例的存储器装置的系统的示意图。上文参考图1到3所描述的前述存储器装置中的任一者可被并入到无数更大及/或更复杂系统中的任一者中,所述系统的代表性实例是图4中所示意性展示的系统480。系统480可包含存储器400、电源482、驱动器484、处理器486及/或其它子系统或组件488。存储器装置400可包含与上文参考图1到3所描述的存储器装置的特征大体类似的特征,且因此可包含用于将引导数据存储于基于NAND的存储器媒体及类似存储器媒体中及更新所述引导数据的各种特征。所得系统480可执行各种各样的功能(例如存储器存储、数据处理及/或其它适合功能)中的任一者。因此,代表性系统480可包含(但不限于)手持式装置(例如移动电话、平板计算机、数字读取器及数字音频播放器)、计算机、车辆、电器及其它产品。可将系统480的组件装纳于单个单元中或(例如,通过通信网络)分布于多个互连单元上。系统480的组件还可包含远程装置及各种各样的计算机可读媒体中的任一者。

依据前述内容,将了解,虽然本文中已出于图解说明目的描述了本技术的具体实施例,但可在不偏离本发明的情况下做出各种修改。另外,还可在其它实施例中组合或去除在特定实施例的上下文中所描述的本新技术的特定方面。此外,尽管已在本新技术的特定实施例的上下文中描述了与所述实施例相关联的优点,但其它实施例也可展现这些优点且并非所有实施例均必须展现这些优点以归属于本技术的范围内。因此,本发明及相关联技术可囊括本文中未明确展示或描述的其它实施例。

相关技术
  • 从NAND媒体快速引导的固态存储装置
  • 从NAND媒体快速引导的固态存储装置
技术分类

06120113084416