首页 / 专利库 / 资料储存系统 / 大容量存储 / 只读存储器 / 用于快速引导读取的方法

用于快速引导读取的方法

阅读:247发布:2020-05-08

专利汇可以提供用于快速引导读取的方法专利检索,专利查询,专利分析的服务。并且本 发明 题为“用于快速引导读取的方法”。本发明公开了一种优化数据存储设备处的挂载过程的方法。存储设备利用挂载过程与主机进行通信并挂载主表,所述主表高速缓存与引导分区相关联的转换表 指针 。然后,所述存储设备向所述主机发送就绪 信号 ,所述就绪信号指示所述存储设备准备好从所述主机接收引导分区读取命令。如果在一个 时间窗 口期间接收到所述引导分区读取命令,则所述存储设备在所述时间窗口内暂停所述挂载过程以接收所述引导分区读取命令并执行所述引导分区读取命令。因此,通过在所述主表中高速缓存引导分区指针,缩短所述引导分区的所述挂载时间,以允许所述存储设备更早地发送所述就绪信号并为所述主机提供对所述引导分区的更早 访问 。,下面是用于快速引导读取的方法专利的具体信息内容。

1.一种用于管理挂载过程的数据存储设备,包括:
非易失性存储器(NVM)阵列;和
处理器,所述处理器耦合到所述NVM阵列,并且被配置为:
利用挂载过程发起与主机设备的通信,
挂载主表,
在挂载所述主表之后向所述主机设备发送信号,所述信号指示所述数据存储设备准备好从所述主机设备接收与所述数据存储设备支持的引导分区相关的引导分区读取命令,在一个时间窗口内暂停所述挂载过程,以从所述主机设备接收所述引导分区读取命令,以及
如果在所述时间窗口期间接收到所述引导分区读取命令,
则执行所述引导分区读取命令。
2.根据权利要求1所述的数据存储设备,其中,被配置为暂停所述挂载过程的所述处理器被配置为:
在所述时间窗口期间接收命令;以及
确定所述命令是否为所述引导分区读取命令。
3.根据权利要求2所述的数据存储设备,其中,所述处理器被进一步配置为:如果所述命令不为所述引导分区读取命令,则避免执行所述命令。
4.根据权利要求1所述的数据存储设备,其中,使用与所述主表中高速缓存的所述引导分区相关联的转换表指针来执行所述引导分区读取命令。
5.根据权利要求1所述的数据存储设备,其中,如果未在所述时间窗口期间接收到所述引导分区读取命令,则所述处理器被进一步配置为:
挂载转换表;
挂载所述引导分区;以及
挂载主分区。
6.根据权利要求5所述的数据存储设备,其中,所述处理器被进一步配置为向所述主机设备发送第二信号,所述第二信号指示所述数据存储设备准备好从所述主机设备接收与所述数据存储设备支持的所有分区相关的命令。
7.根据权利要求5所述的数据存储设备,其中,所述处理器被进一步配置为将所述主表写入到所述NVM阵列。
8.根据权利要求1所述的数据存储设备,其中,所述处理器被进一步配置为挂载只读存储器(ROM)系统。
9.一种管理数据存储设备处的挂载过程的方法,包括:
利用挂载过程发起与主机设备的通信;
挂载主表;
在挂载所述主表之后向所述主机设备发送信号,所述信号指示所述数据存储设备准备好从所述主机设备接收与所述数据存储设备支持的引导分区相关的引导分区读取命令;
在一个时间窗口内暂停所述挂载过程,以从所述主机设备接收所述引导分区读取命令;以及
如果在所述时间窗口期间接收到所述引导分区读取命令,则执行所述引导分区读取命令。
10.根据权利要求9所述的方法,其中,所述主表高速缓存与所述引导分区相关联的转换表指针。
11.根据权利要求10所述的方法,其中,使用与所述引导分区相关联的所述转换表指针来执行所述引导分区读取命令。
12.根据权利要求1所述的方法,其中,所述暂停所述挂载过程包括:
在所述时间窗口期间接收命令;以及
确定所述命令是否为所述引导分区读取命令。
13.一种用于管理写入过程的系统,包括:
主机设备;
数据存储设备,所述数据存储设备包括非易失性存储器(NVM)阵列;和主机接口,所述主机接口促进所述主机设备与所述数据存储设备之间的通信,其中,所述主机设备被配置为:
更新转换表以将主机设备数据的逻辑地址(LBA)映射到所述NVM阵列中的所述主机设备数据的物理位置
基于所述更新的转换表更新转换表指针,
确定所述更新的转换表指针是否对应于与引导分区相关联的LBA;以及如果所述更新的转换表指针对应于与所述引导分区相关联的所述LBA,则基于所述更新的转换表指针更新主表中的引导分区指针。
14.根据权利要求13所述的系统,其中,所述主机设备被进一步配置为经由所述主机接口将所述主机设备数据写入到所述NVM阵列。
15.根据权利要求13所述的系统,其中,所述主机设备被进一步配置为经由所述主机接口将所述更新的转换表写入到所述NVM阵列。
16.根据权利要求13所述的系统,其中所述主机设备被进一步配置为经由所述主机接口将所述主表写入到所述NVM阵列。
17.根据权利要求13所述的系统,其中所述主表中所述更新的引导分区指针由所述数据存储设备用于执行来自与所述引导分区相关联的所述主机设备的命令。
18.一种用于管理写入过程的系统,包括:
用于将来自主机设备的主机设备数据写入到数据存储设备的非易失性存储器(NVM)阵列的装置;
用于更新转换表以将所述主机设备数据的逻辑块地址(LBA)映射到所述NVM阵列中的所述主机设备数据的物理位置的装置;
用于基于所述更新的转换表更新转换表指针的装置;
用于确定所述更新的转换表指针是否对应于与引导分区相关联的LBA的装置;和用于以下操作的装置:如果所述更新的转换表指针对应于与所述引导分区相关联的所述LBA,则基于所述更新的转换表指针更新主表中的引导分区指针。
19.根据权利要求18所述的系统,还包括用于发起所述主机设备与所述数据存储设备之间的通信的装置。
20.根据权利要求18所述的系统,其中所述主表中所述更新的引导分区指针由所述数据存储设备用于执行来自与所述引导分区相关联的所述主机设备的命令。

说明书全文

用于快速引导读取的方法

技术领域

[0001] 在一些实施方案中,本公开涉及包括非易失性存储器(NVM)设备以及与其一起使用的存储器控制器的数据存储设备(例如,固态设备(SSD)或固态驱动器)。更具体地,但非排他性地,本公开涉及优化数据存储设备处的挂载过程,以向主机设备提供对引导分区的更早访问(例如,读取访问)。

背景技术

[0002] 结合有非易失性存储器(NVM)(诸如,闪存NAND存储器)的固态设备(SSD),正在替代或补充传统的旋转硬盘驱动器,以用于针对许多消费者或工业电子器件和计算机的海量存储。在典型的基于SSD的产品中,主机计算设备包括NVM设备控制器或者与NVM设备控制器进行通信,NVM设备控制器继而又控制对一个或多个NVM设备的访问。
[0003] 在汽车技术中,主机设备的子系统可以依赖于存储在数据存储设备中的数据。由于主机设备子系统依赖于存储的数据,因此此类主机设备子系统可以相对于存储设备的挂载以串行方式挂载。因此,存储设备挂载时间可能极大地影响主机设备子系统的性能。
[0004] 在既往方法中,存储设备挂载过程是内部操作,其中存储设备挂载整个存储设备系统。既往的存储设备挂载设计旨在尽可能地减少挂载时间,以便存储设备开始从主机设备接收读取和写入命令。当挂载过程完成时,存储设备可以接收用于所有支持的分区的主机设备命令。值得注意的是,既往的主机设备写入过程可能被设计成,用于使写入和读取性能最大化而不是用于缩短挂载时间。
[0005] 存储设备可以支持包括主机引导分区的多个分区。目前,由于所有分区均受同一系统挂载过程的约束,主机引导分区挂载时间等同于其他分区的挂载时间。当存储设备准备好接收用于整个存储范围的命令时,挂载过程完成。即使在主机引导分区比其他分区更早挂载的系统中,与主机引导分区相关的读取命令的服务级别也较低(例如,读取等待时间较长),因为在挂载过程期间或在挂载过程完成时,对此类读取命令和来自其他分区的命令同时进行服务。鉴于上述情况,当前的存储设备挂载过程对于需要尽早访问主机引导分区的汽车应用(例如,备份摄像头应用)而言可能太慢。因此,减少主机引导分区或任何其他特定分区的挂载时间以改善与此类分区相关的命令的处理等待时间将是有利的。发明内容
[0006] 下文呈现了对本公开的一些方面的简要概述,以提供对这些方面的基本理解。该概述并不是对本公开的所有设想特征的广泛概述,并且既不旨在标识本公开的所有方面的关键或重要元素,也不旨在描绘本公开的任何或所有方面的范围。其唯一目的是以简化形式呈现本公开的一些方面的各种概念,以作为稍后呈现的更详细描述的序言。
[0007] 本公开的一个实施方案提供了用于管理挂载过程的数据存储设备,该数据存储设备包括非易失性存储器(NVM)阵列以及耦合到NVM阵列的处理器。在一个示例中,处理器被配置为:利用挂载过程发起与主机设备的通信;挂载只读存储器(ROM)系统;挂载主表;在挂载主表之后向主机设备发送信号,该信号指示数据存储设备准备好从主机设备接收与数据存储设备支持的引导分区相关的引导分区读取命令;在一个时间窗口内暂停挂载过程,以从主机设备接收引导分区读取命令,这包括在该时间窗口期间接收命令并确定该命令是否为引导分区读取命令;如果在该时间窗口期间接收到引导分区读取命令,则执行引导分区读取命令;如果该命令不为引导分区读取命令,则避免执行该命令;如果在时间窗口期间未接收到引导分区读取命令,则挂载转换表、挂载引导分区、挂载主分区、并且向主机设备发送第二信号,该第二信号指示数据存储设备准备好从主机设备接收与数据存储设备支持的所有分区相关的命令;并且将主表写入到NVM阵列。
[0008] 本公开的一个实施方案提供了管理数据存储设备处的挂载过程的方法。在一个示例中,该方法包括:利用挂载过程发起与主机设备的通信;挂载只读存储器(ROM)系统;挂载主表;在挂载主表之后向主机设备发送信号,该信号指示数据存储设备准备好从主机设备接收与数据存储设备支持的引导分区相关的引导分区读取命令;在一个时间窗口内暂停挂载过程,以从主机设备接收引导分区读取命令,这包括在该时间窗口期间接收命令并确定该命令是否为引导分区读取命令;如果在该时间窗口期间接收到引导分区读取命令,则执行引导分区读取命令;如果该命令不为引导分区读取命令,则避免执行该命令;如果在时间窗口期间未接收到引导分区读取命令,则挂载转换表、挂载引导分区、挂载主分区、并且向主机设备发送第二信号,该第二信号指示数据存储设备准备好从主机设备接收与数据存储设备支持的所有分区相关的命令;并且将主表写入到数据存储设备的非易失性存储器(NVM)阵列。
[0009] 本公开的一个实施方案提供了用于管理写入过程的系统,该系统包括:主机设备;数据存储设备,其包括非易失性存储器(NVM)阵列;以及主机接口,其促进主机设备与数据存储设备之间的通信。在一个示例中,主机设备被配置为:将来自主机设备的主机设备数据写入到NVM阵列;更新转换表以将主机设备数据的逻辑地址(LBA)映射到NVM阵列中的主机设备数据的物理位置;基于更新的转换表更新转换表指针;将更新的转换表写入到NVM阵列;确定更新的转换表指针是否对应于与引导分区相关联的LBA;如果更新的转换表指针对应于与引导分区相关联的LBA,则基于更新的转换表指针更新主表中的引导分区指针;并且将主表写入到NVM阵列。
[0010] 本公开的一个实施方案提供了用于管理写入过程的系统,该系统包括:用于发起主机设备与数据存储设备之间的通信的装置,该数据存储设备包括非易失性存储器(NVM)阵列;用于将来自主机设备的主机设备数据写入到NVM阵列的装置;用于更新转换表以将主机设备数据的逻辑块地址(LBA)映射到NVM阵列中的主机设备数据的物理位置的装置;用于基于更新的转换表更新转换表指针的装置;用于将更新的转换表写入到NVM阵列的装置;用于确定更新的转换表指针是否对应于与引导分区相关联的LBA的装置;用于以下操作的装置:如果更新的转换表指针对应于与引导分区相关联的LBA,则基于更新的转换表指针更新主表中的引导分区指针;以及用于将主表写入到NVM阵列的装置。
[0011] 通过阅读随后的详细描述,将更全面地理解本公开的这些和其他方面。通过阅读以下结合附图对本公开的具体实施方式的描述,本公开的其他方面、特征和具体实施对于本领域普通技术人员而言将变得显而易见。尽管可以相对于下文的某些具体实施和附图来讨论本公开的特征,但本公开的所有具体实施可以包括本文所讨论的有利特征中的一者或多者。换句话讲,尽管可以将一个或多个具体实施讨论为具有某些有利特征,但也可以根据本文所讨论的本公开的各种具体实施使用这些特征中的一者或多者。类似地,尽管某些具体实施在下文可以作为设备具体实施、系统具体实施或方法具体实施来讨论,但应当理解,此类具体实施可以在各种设备、系统和方法中实现。

附图说明

[0012] 下文参考附图中示出的具体实施方案包括了更具体的描述。应当理解,这些附图仅描绘了本公开的某些实施方案,因此不应被认为是对其范围的限制,通过使用附图,以额外的特异性和细节描述和解释了本公开,其中:
[0013] 图1是根据本公开的各方面的示例性固态设备(SSD)的框图,在该示例性固态设备处,可以管理挂载过程/写入过程。
[0014] 图2示出了根据本公开的各方面的用于主机写入流的示例性方法的流程图
[0015] 图3示出了根据本公开的各方面的用于数据存储设备处的设备挂载流的示例性方法的流程图。
[0016] 图4示出了根据本公开的各方面的用于管理写入过程的示例性方法的流程图。
[0017] 图5示出了根据本公开的各方面的用于管理数据存储设备中的挂载过程的示例性方法的流程图。
[0018] 图6是根据本公开的各方面的概述被配备用于管理写入过程的写入过程控制器的所选特征的框图。
[0019] 图7是根据本公开的各方面的概述被配备用于管理数据存储设备处的挂载过程的示例性挂载过程控制器的所选特征的框图。

具体实施方式

[0020] 在以下详细描述中,参考了构成所述详细描述的一部分的附图。除了以上描述的例示性方面、实施方案和特征之外,通过参考附图和以下详细描述,更多方面、实施方案和特征将变得显而易见。每个图中的元件的描述可以参考前面的图的元件。相似的数字可以指代附图中的相似元件,包括相似元件的替代实施方案。
[0021] 本公开提供了用于优化数据存储设备处的挂载过程的方法、装置和系统。挂载过程可以包括多个阶段,该多个阶段包括主表挂载和分区挂载。主表挂载是挂载主后端数据结构的过程,该主后端数据结构包含闪存管理表的根以及用于写入操作的当前开启块。分区挂载可以包括转换表(L2P表)挂载和引导分区挂载。转换表(L2P表)挂载是挂载转换表的过程,转换表是将逻辑地址映射到存储阵列中的物理位置(L2P表)的表。引导分区挂载是允许数据存储设备开始接收用于引导分区的命令的过程。
[0022] 在正常挂载过程期间,在挂载转换表(L2P表)之前挂载主表,并且在挂载引导分区之前挂载转换表。此外,引导分区指针(可由主机用于访问其引导分区数据)存储在转换表中。因此,主机可访问引导分区的速度可以取决于挂载转换表所需的时间量。然而,由于挂载转换表所需的时间量通常很大,对于需要尽早访问引导分区的一些应用(例如,汽车备份摄像头应用)而言,正常挂载过程可能太慢。在一定程度上,用于转换表的大量挂载时间要归因于其相对较大的尺寸。本公开的各方面涉及在主表中而不是在转换表中存储/高速缓存引导分区指针。通过在主表(其比转换表小)中存储/高速缓存引导分区指针,可以在挂载过程期间(利用主表)更早地挂载引导分区指针(即,在转换表之前挂载)。由于主机在访问引导分区之前不必等待转换表挂载,因此主机可以(使用存储在主表中的引导分区指针)比正常挂载过程更快地访问引导分区(例如,执行与引导分区相关的读取命令),从而减少主机挂载时间。
[0023] 在一个方面,存储设备的控制器利用挂载过程发起与主机的通信,并挂载主表。主表高速缓存与引导分区(引导分区指针)相关联的转换表指针。控制器向主机发送就绪信号,该就绪信号指示存储设备准备好从与引导分区相关的主机接收引导分区读取命令。如果在一个时间窗口期间接收到引导分区读取命令,则控制器在该时间窗口内暂停挂载过程以接收引导分区读取命令并执行引导分区读取命令。因此,通过在主表中高速缓存引导分区指针,缩短引导分区的挂载时间,以允许控制器更早地发送就绪信号并为主机提供对引导分区的更早访问。
[0024] 在另一方面,主机设备发起与数据存储设备的通信,并将来自主机设备的主机设备数据写入到数据存储设备的非易失性存储器(NVM)阵列。然后,主机设备更新转换表以将主机设备数据的逻辑块地址(LBA)映射到NVM阵列中的主机设备数据的物理位置,并基于更新的转换表更新转换表指针。主机设备可以将更新的转换表写入到NVM阵列。主机设备还可以确定更新的转换表指针是否对应于与引导分区相关联的LBA。然后,如果更新的转换表指针对应于与引导分区相关联的LBA,则主机设备基于更新的转换表指针更新主表中的引导分区指针,并且可以将主表写入到NVM阵列。
[0025] 参考附图,图1是根据本公开的各个方面的包括示例性固态设备(SSD)的系统100的框图,在该系统中,可以实现所公开的对写入过程/设备挂载过程的管理。在一个方面,SSD可以是固态驱动器。系统100包括主机102以及耦合到主机102的SSD 104。主机102向SSD 104提供命令,以用于在主机102与SSD 104之间传输数据。例如,主机102可以向SSD 104提供写入命令,以将数据写入到SSD 104,或者从SSD 104读取命令以从SSD 104读取数据。主机102可以是需要数据存储或检索的任何系统或设备以及用于与SSD 104通信的兼容接口。
例如,主机102可以是计算设备、个人计算机、便携式计算机、工作站、服务器个人数字助理、数字相机或数字电话,仅列出几个示例。
[0026] SSD 104包括主机接口106、控制器108、易失性存储器110、非易失性存储器接口(NVM接口)118、以及非易失性存储器(NVM)120(诸如,NAND闪存存储器)。在一个方面,NVM接口118可以是到闪存存储器的接口。主机接口106耦合到控制器108并促进主机102与控制器108之间的通信。另外,控制器108耦合到易失性存储器110,并经由NVM接口118耦合到NVM 
120。主机接口106可以是任何类型的通信接口,诸如集成驱动电子(IDE)接口、通用串行总线(USB)接口、串行外设(SP)接口、高级技术附件(ATA)或串行高级技术附件(SATA)接口、小型计算机系统接口(SCSI)、IEEE 1394(火线)接口等。在一些实施方案中,主机102包括SSD 
104。在其他实施方案中,SSD 104相对于主机102是远程的,或者被包含在与主机102通信地耦合的远程计算系统中。例如,主机102可以通过无线通信链路与SSD 104进行通信。
[0027] 控制器108控制SSD 104的操作。在各种方面,控制器108通过主机接口106从主机102处接收命令,并执行该命令,以在主机102与NVM 120之间传输数据。此外,控制器108可以管理对易失性存储器110的读取和写入,以用于执行由控制器实现的各种功能,并且维护和管理存储在易失性存储器110中的高速缓存的信息。控制器可以包括写入过程设备(或电路/模块)112,该写入过程设备管理数据/写入过程在NVM 120中的存储。控制器108还可以包括挂载过程管理器设备(或电路/模块)114,该挂载过程管理器设备管理主机102与SSD 
104之间的挂载过程。
[0028] 控制器108可以包括任何类型的处理设备,诸如微处理器微控制器、嵌入式控制器、逻辑电路软件固件等,以用于控制SSD 104的操作。在一些方面,本文描述为由控制器108执行的功能中的一些或所有功能可以替代地由SSD 104的另一个元件执行。例如,SSD 
104可以包括微处理器、微控制器、嵌入式控制器、逻辑电路、软件、固件或任何类型的处理设备,以用于执行本文描述为由控制器108执行的功能中的一者或多者。根据其他方面,本文描述为由控制器108执行的功能中的一者或多者替代地由主机102执行。在另外的方面,本文描述为由控制器108执行的功能中的一些或所有功能可以替代地由另一元件诸如混合驱动器中的控制器执行,该混合驱动器包括非易失性存储器元件和磁存储元件两者。
[0029] 易失性存储器110可以是能够存储数据的任何存储器、计算设备或系统。例如,易失性存储器110可以是随机存取存储器(RAM)、动态随机存取存储器(DRAM)、双倍数据速率(DDR)DRAM、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、闪存存储装置、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等。在各种实施方案中,控制器108使用易失性存储器110或其一部分在主机102与NVM 120之间的数据传输期间存储数据。例如,易失性存储器110或易失性存储器110的一部分可以是高速缓存存储器。
[0030] NVM 120经由NVM接口118从控制器108接收数据并存储数据。NVM 120可以是任何类型的非易失性存储器,诸如闪存存储装置系统、NAND型闪存存储器、固态数据存储设备、闪存存储器卡、安全数字(SD)卡、通用串行总线(USB)存储器设备、CompactFlash卡、SmartMedia设备、闪存存储装置阵列等。NVM 120可以包括一个或多个存储器模块122,其中,一个或多个存储器管芯124形成为存储器模块122的一部分。
[0031] 控制器108(包括写入过程管理器112和挂载过程管理器114)、NVM接口118和/或NVM 120可以被配置为执行本文所述的用于管理SSD中的写入过程和/或挂载过程的任何过程。
[0032] 本公开的各方面涉及在数据存储设备(例如,SSD)挂载过程期间优化特定分区(例如,主机引导分区)的挂载时间,以在执行挂载过程的其他操作的同时减少针对特定分区的读取等待时间。在一个方面,本公开有利于在完成整个挂载过程之前访问特定分区(例如,主机引导分区)。
[0033] 在一个方面,数据存储设备挂载过程是具有多个阶段的串行过程,其中,基于前一阶段的完成而发起每个阶段。挂载过程是数据存储设备中的基本过程,该过程使得数据存储设备能够在断电状态或电源故障情况下重启。挂载过程可以按顺序进行以下阶段:1)ROM系统挂载;2)主表挂载;3)分区挂载;以及4)向主机设备发送“准备好用于主机读取和写入”信号。
[0034] 只读存储器(ROM)系统挂载是基本的基础结构挂载,其使得数据存储设备能够操作存储器设备、主机接口、硬件单元等。主表挂载是挂载包含闪存管理表的根以及用于写入操作的当前开启块的主后端数据结构的过程。
[0035] 分区挂载包括转换表挂载、引导分区挂载和主分区挂载。转换表挂载是挂载转换表的过程,转换表是将逻辑地址映射到存储阵列中的物理位置(L2P表)的表。引导分区挂载是允许数据存储设备开始接收用于引导分区的命令的过程。这可以包括扫描与引导分区相关的开启块。主分区挂载是允许数据存储设备开始接收用于所有其他分区的命令的过程。这可以包括扫描与所有其他分区相关的开启块。
[0036] 挂载过程的每个阶段均可能需要一定时间来完成。因此,整个挂载过程的挂载时间是完成各阶段所需时间的总和。当整个挂载过程完成时,数据存储设备可以向主机设备发送“准备好用于主机读取和写入”信号。
[0037] 在一个方面,本公开涉及用于缩短引导分区的挂载时间并使得数据存储设备能够更早地发送“准备好用于主机读取和写入”信号以向主机设备提供对引导分区的更早访问的系统、装置和方法。整个挂载过程的挂载时间的大部分可以归因于转换表(L2P表)的挂载。因此,本公开提供了将引导分区指针从转换表高速缓存到主表中,以避免在可以挂载引导分区之前必须等待整个转换表的挂载。
[0038] 转换表的大小可以与数据存储设备的存储容量具有线性关系。例如,转换表大小可以是存储容量大小的约1/1000。引导分区的大小可以是导出容量的一小部分。例如,如果导出容量的大小为100MB(100,000KB)且转换表的大小为32KB,则引导分区可以由约4个指针(例如,(100,000KB)×(1/1000)/(32KB)=3.125≈4个指针)所指向。在一个方面,4个引导分区指针可以直接高速缓存在主表(MST)中。因此,在主表引导阶段完成之后,引导分区可以立即“准备好用于主机读取和写入”,而无需等待转换表挂载和/或其他分区挂载完成。
[0039] 在一个方面,当主机设备写入引导分区的逻辑块地址(LBA)时,闪存管理(FM)可能需要更新转换表的与引导分区LBA相关联的部分。如果这些部分的位置在转换表中改变,则FM可以更新主表中的引导表部分的指针。
[0040] 在一个方面,当在断电状态(正常关闭)期间写入主表时,在主表挂载并且数据存储设备针对引导分区LBA“准备好用于主机读取和写入”之后,用于与引导分区LBA相关联的转换表的部分的高速缓存指针可用。当发生电源故障(非正常关闭)时,不会写入主表,并且可能不会更新高速缓存的指针。因此,主机设备可能无法读取引导数据。然而,主机设备可以针对这种场景维护两个引导分区,并且主机设备可以从不同的引导分区挂载。
[0041] 在一个方面,每当写入引导分区时,可以将主表写入到闪存存储器。这可以增加写入放大(WA)但会降低引导分区的性能。然而,在一些方面,增加WA同时降低引导分区性能可能是可接受的。这使得能够支持非正常关闭,而无需使用其他引导分区作为备份。
[0042] 在一个方面,当主表的挂载完成并且发送了指示数据存储设备针对引导分区“准备好用于主机读取和写入”的信号时,数据存储设备可以在继续挂载过程之前等待预定义的时间窗口。在该时间窗口期间,主机设备可以发送针对引导分区的读取请求,并且数据存储设备可以以全带宽,在存储存储器阵列之间端到端地回复主机设备。值得注意的是,如果在数据存储设备在该时间窗口期间未等待的情况下继续挂载过程的其余部分,则带宽将会减小,因为挂载过程将与正在进行的主机读取操作并行处理,这将消耗中央处理单元(CPU)时间并使存储存储器阵列保持繁忙。
[0043] 在一个方面,作为对预定义的时间窗口的替代,可以根据引导分区大小来计算时间窗口:时间窗口=(引导分区大小/读取性能)+等待时间估计时间。例如,如果引导分区大小为4MB,设备读取性能为400MB/s,并且等待时间估计时间为5ms,则时间窗口为(4MB/400MB/s)+6ms=10ms+6ms=16ms。
[0044] 图2示出了根据本公开的各方面的用于主机写入流的示例性方法的流程图200。方法200可以由主机设备(例如,主机102)结合数据存储设备(例如,SSD 104)的控制器(例如,控制器108)来执行。
[0045] 方法200包括将主机数据写入到闪存存储器(例如,NVM 120),如框202处所示。方法200还包括更新转换表,如框204处所示。在一个方面,更新转换表包括写入转换表以将主机数据的逻辑块地址(LBA)映射到闪存存储器中的主机数据的物理位置。该方法还包括将转换表的更新部分写入到闪存存储器,如框206处所示。
[0046] 方法200还包括更新指向转换表的更新部分的指针,如框208处所示。方法200包括确定更新的指针是否对应于引导分区LBA,如框210处所示。如果是,则方法200还包括更新指向主表中的引导分区的指针,如框212处所示,并且任选地将主表写入到闪存存储器中,如框214处所示。
[0047] 图3示出了根据本公开的各方面的用于数据存储设备(诸如,固态设备(SSD))处的设备挂载流的示例性方法的流程图300。在一个方面,SSD可以是固态驱动器。方法300可以由数据存储设备(例如,SSD 104)的控制器(例如,控制器108)来执行。
[0048] 方法300包括挂载只读存储器(ROM)系统,如框302处所示。ROM系统挂载是基本的基础结构挂载,其使得数据存储设备能够操作数据存储设备的各种部件,诸如存储器、主机接口、硬件单元等。
[0049] 方法300还包括挂载主表,如框304处所示。主表挂载包括挂载主后端数据结构,该主后端数据结构包含闪存管理表的根以及用于写入操作的当前开启块。
[0050] 方法300还包括针对分区向主机设备发送“准备好用于主机读取和写入”信号,如框308处所示。通过在主表挂载之后向主机设备发送“准备好用于主机读取和写入”信号,数据存储设备允许主机设备访问引导分区,而不必等待转换表挂载和/或其他分区挂载完成。
[0051] 方法300包括:在发送“准备好用于主机读取和写入信号”之后在一个时间窗口内暂停挂载流;以及确定在该时间窗口期间是否从主机设备接收到新命令,如框308处所示。如果在该时间窗口期间接收到新命令,则方法300包括确定新命令是否为引导分区读取命令,如框310处所示。如果新命令不为引导分区读取命令,则方法300因错误而结束。然而,如果新命令为引导分区读取命令,则方法300包括使用与引导分区(引导分区指针)相关的主表中的高速缓存转换表指针来执行主机设备读取命令,如框312处所示。然后,方法300返回到框308。
[0052] 另选地,如果未在时间窗口期间接收到新命令,则方法300包括挂载整个数据存储设备的其余部分,如框314处所示。例如,这可以包括转换表挂载、引导分区挂载和主分区挂载。转换表挂载过程挂载映射表,该映射表将逻辑地址映射到闪存存储器存储阵列中的物理位置。引导分区挂载是允许数据存储设备开始接收用于引导分区的命令的过程。这可以包括扫描引导分区开启块以用于引导分区的将来写入操作。主分区挂载是允许数据存储设备开始接收用于所有其他分区的命令的过程。这可以包括扫描与所有其他分区相关的开启块。在挂载整个存储设备之后,方法300可以包括针对所有分区向主机设备发送“准备好用于主机读取和写入”信号。方法300可以任选地包括将主表写入到闪存存储器,如框316处所示。
[0053] 本公开的优点涉及优化数据存储设备处的挂载过程以向主机提供对引导分区的更早访问(例如,读取访问)。通过缩短引导分区的挂载时间并为数据存储设备提供用于从主机接收引导读取命令的专用引导读取命令时间窗口,可以缩短关键主机模块和应用的主机挂载时间。例如,根据本公开的优化挂载过程,与既往的挂载过程相比,可以在更短的时间内挂载汽车备份摄像头。
[0054] 图4示出了用于管理写入过程的示例性方法400的流程图。方法400可以由主机设备(例如,主机102)以及具有至少一个控制器(例如,控制器108)、非易失性存储器(例如,NVM 120)阵列和主机接口(例如,主机接口106)的数据存储设备(例如,SSD 104)来执行。
[0055] 方法400包括发起主机设备与数据存储设备之间的通信,如框402处所示。方法400还包括将来自主机设备的主机设备数据写入到NVM阵列,如框404处所示。
[0056] 方法400还包括更新转换表以将主机设备数据的逻辑块地址(LBA)映射到NVM阵列中的主机设备数据的物理位置,如框406处所示。方法400还可以包括将更新的转换表写入到NVM阵列,如框408处所示。
[0057] 方法400包括:基于更新的转换表更新转换表指针,如框410处所示;以及确定更新的转换表指针是否对应于与引导分区相关联的LBA,如框412处所示。方法400还包括:如果更新的转换表指针对应于与引导分区相关联的LBA,则基于更新的转换表指针更新主表中的引导分区指针,如框414处所示。在一个方面,主表中更新的引导分区指针由数据存储设备用于执行来自与引导分区相关联的主机设备的命令。方法400还可以包括将主表写入到NVM阵列,如框416处所示。
[0058] 图5示出了用于管理数据存储设备(例如,SSD 104)中的挂载过程的示例性方法500的流程图。数据存储设备可以为固态设备或固态驱动器。方法500可以由控制器(例如,控制器108)执行。
[0059] 方法500包括利用挂载过程发起与主机设备(例如,主机102)的通信,如框502处所示。方法500还包括挂载只读存储器(ROM)系统,如框504处所示。
[0060] 方法500包括挂载主表,如框506处所示。然后,方法500包括在挂载主表之后向主机设备发送信号,如框508处所示。该信号指示数据存储设备准备好从主机设备接收与数据存储设备支持的引导分区相关的引导分区读取命令。在一个方面,主表高速缓存与引导分区(即,引导分区指针)相关联的转换表指针。
[0061] 方法500包括:在一个时间窗口内暂停挂载过程,以从主机设备接收引导分区读取命令,如框510处所示。在一个方面,暂停挂载过程可以包括:在该时间窗口期间接收命令;以及确定该命令是否为引导分区读取命令。在另外的方面,方法500包括:如果该命令不为引导分区读取命令,则避免执行该命令。
[0062] 方法500包括:如果在该时间窗口期间接收到引导分区读取命令,则执行引导分区读取命令,如框512处所示。在一个方面,使用与主表中高速缓存的引导分区(引导分区指针)相关联的转换表指针来执行引导分区读取命令。
[0063] 如果未在时间窗口期间接收到引导分区读取命令,则方法500还包括执行与挂载过程相关的各种操作中的多种操作,如框514处所示。例如,方法500可以包括挂载转换表、挂载引导分区和挂载主分区。方法500还可以包括向主机设备发送第二信号。第二信号指示数据存储设备准备好从主机设备接收与数据存储设备支持的所有分区相关的命令。方法500还可以包括将主表写入到数据存储设备的非易失性存储器(NVM)阵列,如框516处所示。
[0064] 图6是根据本公开的各方面的概述被配备用于管理写入过程的写入过程控制器600的所选特征的框图。写入过程控制器600可以被配置为与主机设备602和数据存储设备(例如,SSD)604进行通信。尽管本文所述的许多示例涉及用于结合闪存管芯执行操作的NVM控制器或闪存控制器,但数据存储设备604可以是任何合适的存储器或存储设备且不限于NVM设备,并且写入过程控制器600可以是任何合适的存储器控制器设备且不限于基于NVM的控制器。
[0065] 图6的示例性写入过程控制器600包括处理器610(例如,处理系统/电路)。处理器610包括设备耦合器612,该设备耦合器被配置为发起主机设备602与数据存储设备604之间的通信。处理器610还包括数据写入器614,该数据写入器被配置为将来自主机设备602的主机设备数据写入到数据存储设备604的非易失性存储器(NVM)阵列。处理器610还包括转换表更新器616,该转换表更新器被配置为更新转换表以将主机设备数据的逻辑块地址(LBA)映射到数据存储设备604的NVM阵列中的主机设备数据的物理位置。转换表更新器616还被配置为基于更新的转换表来更新转换表指针。处理器610包括引导分区确定器618,该引导分区确定器被配置为确定更新的转换表指针是否对应于与引导分区相关联的LBA。处理器
610还包括主表更新器620,该主表更新器被配置为:如果更新的转换表指针对应于与引导分区相关联的LBA,则基于更新的转换表指针更新主表中的引导分区指针。处理器610还包括表写入器622,该表写入器被配置为将转换表和主表写入到数据存储设备604的NVM阵列。
[0066] 在至少一些示例中,可以提供用于执行图2和图4中示出的功能和/或本文示出或描述的其他功能(诸如,相对于图1所述的那些功能)的装置。例如,可以提供与主机设备(例如,主机602)和数据存储设备(例如,数据存储设备604)一起使用的装置(例如,处理系统610),其中,该装置包括:用于发起主机设备与数据存储设备之间的通信的装置(诸如,数据耦合器612);用于将来自主机设备的主机设备数据写入到数据存储设备的非易失性存储器(NVM)阵列的装置(诸如,数据写入器614);用于更新转换表以将主机设备数据的逻辑块地址(LBA)映射到NVM阵列中的主机设备数据的物理位置的装置(诸如,转换表更新器616);用于基于更新的转换表更新转换表指针的装置(诸如,转换表更新器616);用于确定更新的转换表指针是否对应于与引导分区相关联的LBA的装置(诸如,引导分区确定器618);用于以下操作的装置(诸如,主表更新器620):如果更新的转换表指针对应于与引导分区相关联的LBA,则基于更新的转换表指针更新主表中的引导分区指针;用于将转换表和主表写入到数据存储设备的NVM阵列的装置(诸如,表写入器622)。
[0067] 在一个方面,用于执行上述功能中的一些功能的装置也可以在图1中找到。
[0068] 图7是根据本公开的各方面的概述被配备用于管理数据存储设备(例如,SSD)处的挂载过程的示例性挂载过程控制器700的所选特征的框图。挂载过程控制器600可以被配置为与主机设备602和数据存储设备(例如,SSD)704进行通信。尽管本文所述的许多示例涉及用于结合闪存管芯执行操作的NVM控制器或闪存控制器,但数据存储设备704可以是任何合适的存储器或存储设备且不限于NVM设备,并且挂载过程控制器700可以是任何合适的存储器控制器设备且不限于基于NVM的控制器。
[0069] 图7的示例性挂载过程控制器700包括处理器710(例如,处理系统/电路)。处理器710包括设备耦合器712,该设备耦合器被配置为利用挂载过程发起主机设备702与数据存储设备704之间的通信。处理器710还包括表/分区挂载器714,该表/分区挂载器被配置为至少挂载只读存储器(ROM)系统、主表、转换表、引导分区和主分区。处理器710还包括信号发送器716,该信号发送器被配置为在挂载主表之后向主机设备702发送信号。该信号指示数据存储设备704准备好从主机设备702接收与数据存储设备704支持的引导分区相关的引导分区读取命令。信号发送器716还被配置为向主机设备702发送第二信号。第二信号指示数据存储设备704准备好从主机设备702接收与数据存储设备704支持的所有分区相关的命令。处理器710包括命令接收器718,该命令接收器被配置为在一个时间窗口内暂停挂载过程,以从主机设备702接收引导分区读取命令。命令接收器718被配置为在该时间窗口期间接收命令并确定该命令是否为引导分区读取命令。处理器710还包括引导分区读取命令执行器720,该引导分区读取命令执行器被配置为:如果在该时间窗口期间接收到引导分区读取命令,则执行引导分区读取命令。引导分区读取命令执行器720还被配置为:如果命令不为引导分区读取命令,则避免执行接收到的命令。处理器710还包括表写入器722,该表写入器被配置为将主表写入到数据存储设备704的非易失性存储器(NVM)阵列。
[0070] 在至少一些示例中,可以提供用于执行图3和图5中示出的功能和/或本文示出或描述的其他功能(诸如,相对于图1所述的那些功能)的装置。例如,可以提供与主机设备(例如,主机702)和数据存储设备(例如,数据存储设备704)一起使用的装置(例如,处理系统710),其中,该装置包括:用于利用挂载过程发起与主机设备的通信的装置(诸如,设备耦合器712);用于挂载只读存储器(ROM)系统、主表、转换表、引导分区和主分区的装置(诸如,表/分区挂载器714)。用于以下操作的装置(诸如,信号发送器716):在挂载主表之后向主机设备发送信号,该信号指示数据存储设备准备好从主机设备接收与数据存储设备支持的引导分区相关的引导分区读取命令,并且向主机设备发送第二信号,该第二信号指示数据存储设备准备好从主机设备接收与数据存储设备支持的所有分区有关的命令;用于在一个时间窗口内暂停挂载过程以从主机设备接收引导分区读取命令的装置(诸如,命令接收器
718);用于以下操作的装置(诸如,引导分区读取命令执行器720):如果在该时间窗口期间接收到引导分区读取命令,则执行引导分区读取命令,并且如果命令不为引导分区读取命令,则避免执行接收到的命令;以及用于将主表写入到数据存储设备704的非易失性存储器(NVM)阵列的装置(诸如,表写入器722)。
[0071] 在一个方面,用于执行上述功能中的一些功能的装置也可以在图1中找到。
[0072] 尽管以上描述包含本发明的许多具体实施方案,但这些不应解释为对本发明范围的限制,而是作为其具体实施方案的示例。因此,本发明的范围不应由例示的实施方案确定,而应由所附权利要求及其等同物确定。
[0073] 上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合均旨在落入本公开的范围内。另外,在一些具体实施中可以省略某些方法、事件、状态或过程块。本文描述的方法和过程也不限于任何特定序列,并且与其相关的块或状态可以以适当的其他序列执行。例如,所描述的任务或事件可以以不同于具体公开的顺序执行,或者多个可以在单个块或状态中组合。示例性任务或事件可以串行、并行或以某种其他合适的方式执行。可以向所公开的示例性实施方案添加任务或事件或从其中删除任务或事件。本文描述的示例性系统和部件可以与所描述的不同地配置。例如,与所公开的示例性实施方案相比,可以添加、移除或重新布置元件。
[0074] 词语“示例性”在本文中用于表示“用作示例、实例或说明”。本文中描述为“示例性”的任何方面并非一定被解释为比其他方面更优选或更具优势。同样,术语“方面”不要求所有方面均包括所讨论的特征、优点或操作模式。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈