首页> 中国专利> 在具有硬件加速输入/输出路径的存储器子系统上生成系统存储器快照

在具有硬件加速输入/输出路径的存储器子系统上生成系统存储器快照

摘要

本公开涉及在具有硬件加速输入/输出路径的存储器子系统上生成系统存储器快照。存储器装置的本地媒体控制器从存储器子系统控制器接收要生成的快照的描述。所述描述包括存储器装置的存储器地址范围。响应于检测到触发事件,鉴于所述描述生成所述存储器装置的所述存储器地址范围的快照。将所述快照存储到目的地地址。向所述存储器子系统控制器通知所述触发事件。

著录项

  • 公开/公告号CN115687180A

    专利类型发明专利

  • 公开/公告日2023-02-03

    原文格式PDF

  • 申请/专利权人 美光科技公司;

    申请/专利号CN202210868161.7

  • 发明设计人 N·M·努鲁德赫恩;

    申请日2022-07-22

  • 分类号G06F12/06;G11C29/00;

  • 代理机构北京律盟知识产权代理有限责任公司;

  • 代理人任超

  • 地址 美国爱达荷州

  • 入库时间 2023-06-19 18:32:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-03

    公开

    发明专利申请公布

说明书

技术领域

本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及在具有硬件加速输入/输出路径的存储器子系统上生成系统存储器快照。

背景技术

存储器子系统可以包含存储数据的一或多个存储器装置。所述存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。

发明内容

在一个方面中,本公开涉及一种方法,其包括:由存储器装置的本地媒体控制器从存储器子系统控制器接收要生成的快照的描述,其中所述描述包括所述存储器装置的存储器地址范围和目的地地址;响应于检测到触发事件,鉴于所述描述生成所述存储器地址范围的所述快照;将所述快照存储到所述目的地地址;以及向所述存储器子系统控制器通知所述触发事件。

在另一方面中,本公开涉及一种系统,其包括:多个存储器装置;以及处理装置,其以操作方式与所述多个存储器装置耦合以执行包括以下各项的操作:将要生成的第一快照的描述发送到第一存储器装置的本地媒体控制器,其中所述描述包括起始地址、对应于所述起始地址的大小以及要存储所述第一快照的目的地地址;响应于从所述第一存储器装置的所述本地媒体控制器接收到触发事件的通知,将生成第二存储器装置的第二快照的指令发送到所述第二存储器装置;以及将存储在所述目的地地址处的所述第一快照和所述第二存储器装置的所述第二快照存储到持久存储器装置。

在另一方面中,本公开涉及一种非暂时性计算机可读存储媒体,其包括指令,所述指令当由处理装置执行时使得所述处理装置执行包括以下各项的操作:由存储器装置的本地媒体控制器从存储器子系统控制器接收要生成的快照的描述,其中所述描述包括所述存储器装置的存储器地址范围和目的地地址;响应于检测到触发事件,鉴于所述描述生成所述存储器地址范围的所述快照;将所述快照存储到所述目的地地址;以及向所述存储器子系统控制器通知所述触发事件。

附图说明

根据下文给出的详细描述并且根据本公开的各种实施例的附图将更加充分地理解本公开。然而,图式不应被视为将本公开限于特定实施例,而是仅用于解释和理解。

图1A说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。

图1B以额外细节说明根据本公开的一些实施例的包含具有加速输入/输出路径的存储器装置的图1A的实例计算系统。

图1C以额外细节说明根据本公开的一些实施例的包含具有加速输入/输出路径的存储器子系统的图1A的实例计算系统。

图2描绘根据本公开的一些实施例的说明由计算机系统执行的用于生成具有硬件加速输入/输出路径的存储器子系统的快照的方法的实施方案的框图。

图3为根据本公开的一些实施例的用于生成具有硬件加速输入/输出路径的存储器装置的快照的实例方法的流程图。

图4是根据本公开的一些实施例的用于生成具有硬件加速输入/输出路径的存储器子系统的综合快照的实例方法的流程图。

图5为本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的各方面涉及在具有硬件加速输入/输出路径的存储器子系统上生成系统存储器快照以便获得时间点调试信息。存储器子系统可为存储装置、存储器模块,或存储装置与存储器模块的组合。下文结合图1A描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含例如存储数据的存储器装置的一或多个组件的存储器子系统。主机系统可提供要存储在存储器子系统处的数据且可请求要从存储器子系统检索的数据。

存储器子系统可包含高密度非易失性存储器装置,其中当未向存储器装置供应电力时,需要保留数据。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1A描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每一裸片可以由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面包含一组物理块。每一块包含一组页。每一页包含一组存储器单元(“单元”)。单元为存储信息的电子电路。取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或这些值的组合表示。

调试可涉及发现且减少例如存储器子系统等电子装置中的缺陷(即,“错误”)的数目。可使用各种调试技术检测异常,评估其影响,并且调度硬件改变、固件升级,或对系统进行完全更新。调试目标包含识别和修正系统中的缺陷(例如,固件中的逻辑或同步问题,或硬件中的设计错误),并且收集系统状态信息。系统状态信息可包含关于存储器子系统的操作的信息,包含内部处理器寄存器的内容(例如,可包含程序计数器和堆栈指针)、存储器管理信息、元数据表和/或某些存储器地址范围。系统状态信息可包含但不限于硬件寄存器、外围寄存器、硬件日志区域、硬件内部状态机和硬件错误寄存器。系统状态信息可用于分析存储器子系统,以找到提高其性能或优化其它重要特性的方式。

系统状态信息的一个实例可包含在存储器子系统中生成的事件数据。如本文中所使用的事件通常是指由存储器子系统中的硬件、软件、固件或以上中的任一个的组合执行的动作引起的可检测状态变化。事件的实例包含存储器子系统控制器发送和/或接收数据或存取存储器装置的存储器位置、与存储器装置的一些可靠性统计(例如,原始位错误率(RBER))相关的警告、存储器子系统控制器在从存储器装置读取数据或向存储器装置写入数据时经历的错误等。

时间点调试信息对于分析从客户使用和/或在存储器子系统的鉴定期间报告的事件可能很重要。调试信息可包含存储器子系统和/或存储器子系统内的存储器装置的状态的快照,所述快照在报告的问题发生期间(例如,在引起存储器子系统内的错误或故障的事件期间)生成。快照可以是存储器子系统和/或存储器装置在某个时间点的状态副本。快照可包含存储器装置的某些存储器区的副本,例如,某些寄存器状态在某个时间点的副本。分析调试信息可有助于确定问题的根本原因。为了在引起报告问题的事件期间(例如,在硬件故障期间)生成快照,每一处理器核心保存其硬件寄存器和/或其它重要存储器区的副本。此数据组合有时被称为核心转储。

因此,在软件和/或硬件故障的情况下,核心转储捕获存储器子系统的给定运行时间循环的最后时刻。更具体地说,核心转储从一组存储器地址捕获数据,且将所述数据保存到指明的持久存储器区。然后可分析来自核心转储的信息以确定在发生故障时存储器子系统的状态。

然而,对于具有硬件加速输入/输出路径的存储器子系统,此核心转储过程可能会使存储器子系统的快照不准确。为了加速读取和写入命令,具有硬件加速I/O路径的存储器子系统使得能够通过存储器子系统的硬件引导读取和写入命令,因此绕过固件。因此,固件可能不知道硬件内出现的问题。可加速主机系统与存储器子系统之间的I/O路径,且可加速存储器子系统内(即,存储器子系统控制器与存储器装置之间)的I/O路径。当出现问题时,硬件例如通过生成中断将事件报告给处理器。在接收到中断之后,处理器启动快照过程且将硬件寄存器和其它重要存储器区复制到共享存储器区。在一些实施例中,从硬件寄存器复制的数据可被格式化为可执行和可链接格式(ELF)核心转储。中断与处理器响应之间经过的时间并非无关紧要;例如,基于中断等待时间和处理器响应时间,两个事件之间经过的时间可以是毫秒级。处理器响应时间可基于在错误事件的时间期间处理器参与的活动而变化。在此时间(即,中断与处理器响应时间之间的数毫秒)期间,存储器空间的系统和状态可能会发生重大变化。因此,通过上文所描述的快照过程捕获的快照可为在发生错误事件时系统和存储器的状态的不准确表示。也就是说,在一些基于固件的实施方案中,到硬件向固件通知触发事件时,硬件状态可能已经改变,并且硬件状态可能不会反映故障,因为存储器和硬件寄存器由于向固件通知的延迟而被覆盖。

本公开的各方面通过使得具有加速I/O的硬件能够执行快照过程来解决上文提出的缺陷和其它缺陷。在初始化存储器子系统之后,存储器子系统控制器可将快照的描述发送到存储器子系统内的存储器装置以响应于触发事件而生成。触发事件可为触发快照生成过程的错误或故障。存储器子系统控制器还可指明用于存储所生成快照的共享存储器区。在触发事件的情况下将生成的快照的描述可构建到具有加速I/O的硬件中。因此,具有加速I/O的硬件可根据描述响应于触发事件而生成并存储快照,而不需要来自存储器子系统控制器的干预。在生成快照时,硬件存储器、日志和寄存器完好无损,且在快照被立即发起时给出正确的硬件故障。

在初始化硬件后,存储器子系统控制器将响应于检测到触发事件而生成的快照的描述提供到硬件。所述描述可包含在检测到触发事件后硬件将捕获的调试数据的特定寄存器和/或存储器区的识别符。举例来说,存储器子系统控制器可提供硬件要捕获的物理地址范围的列表。存储器子系统控制器还可提供硬件要存储所捕获数据的指明共享存储器区的物理地址。

所述描述可提供到具有硬件加速I/O路径的任何装置的控制器,例如存储器装置控制器、存储器子系统控制器或网络控制器。在一些实施例中,存储器子系统控制器可将快照的描述提供到具有硬件加速I/O的存储器装置的本地媒体控制器。所述描述可包含触发事件的列表,例如触发快照生成的错误代码的列表。错误代码可以表示使得过程意外终止的严重错误。在一些实施例中,触发事件可包含由存储器装置控制器检测到的装置故障。因此,在故障、错误或其它触发事件的情况下,存储器装置可立即将调试寄存器和/或描述中指定的其它存储器区快照到指明的共享存储器区。此快照数据可准确地表示存储器装置在触发事件时的状态。存储器装置的本地媒体控制器还可向存储器子系统控制器报告错误。存储器子系统控制器可发起其自身的快照过程,以便捕获检测到触发事件的本地媒体控制器无法存取的存储器区的状态。然后,存储器子系统控制器可聚合快照,以在事件时产生存储器子系统的综合系统快照。

在一些实施例中,存储器子系统可具有硬件加速I/O。存储器子系统可存储将响应于检测到触发事件而生成的快照的描述。因此,在故障、错误或其它触发事件的情况下,存储器子系统可将描述中指定的调试寄存器和/或其它存储器区快照到指明的共享存储器区。存储器子系统控制器还可向主机系统报告触发事件,所述主机系统可发起捕获计算机系统内的其它存储器子系统的状态的快照过程。

本公开的优点包含但不限于提供在硬件故障或与事件的确切时间匹配的其它触发错误事件期间拍摄的改进的系统快照。此快照提供改进的时间点调试信息,其可用于确定引起故障的问题的根本原因。本公开的各方面通过使硬件能够在没有固件干预的情况下对内部调试存储器区进行快照来减少捕获调试状态(寄存器、存储器和/或调试信息)的等待时间。所得时间点调试信息与在硬件内发生问题的时间匹配,因此减少与快照过程相关的等待时间,并提供更准确的调试数据,以便对具有硬件加速I/O路径的存储器子系统执行故障分析。

图1A说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类媒体的组合。

存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM),以及各种类型的非易失性双列直插式存储器模块(NVDIMM)。

计算系统100可以是计算装置,例如台式计算机、笔记本计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或包含存储器和处理装置的此类计算装置。

计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1A说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与……耦合”通常指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论有线或无线,包含例如电连接、光学连接、磁性连接等连接。

主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110以及从存储器子系统110读取数据。

主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可以进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1A说明作为实例的存储器子系统110。一般来说,主机系统120可经由同一通信连接、多个分开的通信连接和/或通信连接的组合存取多个存储器子系统。

存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。

存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC),可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC、PLC或这些的任何组合。在一些实施例中,特定存储器装置可以包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为可指用于存储数据的存储器装置的逻辑单元的页。在一些类型的存储器(例如,NAND)的情况下,页可分组以形成块。

尽管描述了例如非易失性存储器单元的3D交叉点阵列和NAND型快闪存储器(例如,2D NAND、3D NAND)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器或电可擦除可编程只读存储器(EEPROM)。

存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据之类的操作以及其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。

存储器子系统控制器115可以包含处理装置,所述处理装置包含被配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程。

在一些实施例中,本地存储器119可包含存储器寄存器,其存储存储器指针、所获取数据等。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1A中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可改为依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。

通常,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器装置130以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可以包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115进行操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是受管理存储器装置,其是具有裸片上的控制逻辑(例如,本地媒体控制器135)和用于在同一存储器装置封装内进行媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理NAND(MNAND)装置。

存储器子系统110包含可实施硬件生成的快照过程的快照管理器组件113。在一些实施例中,存储器子系统控制器115包含快照管理器组件113的至少一部分。在一些实施例中,快照管理器组件113是主机系统120、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含快照管理器组件113的至少一部分,且被配置成执行本文中所描述的功能性。

快照管理器组件113可在触发事件后生成存储器子系统的综合快照。在初始化存储器子系统110后,快照管理器组件113可指明存储器的一部分作为共享存储器区,存储器装置130、140可将快照存储到所述共享存储器区。在一些实施例中,共享存储器区可为例如存储器装置140处的易失性存储器。在初始化存储器子系统110后,快照管理器组件113还可将响应于触发事件而生成的快照的描述发送到每一存储器装置130、140。快照的描述可包含相应存储器装置130、140内的存储器地址范围的列表,所述相应存储器装置将在快照中包含所述列表的副本。举例来说,存储器地址范围的列表可指向存储器装置内的调试寄存器。在一些实施例中,存储器地址范围的列表可包含一或多个起始存储器地址,后跟在快照期间要捕获的存储器的大小。快照的描述还可包含由快照管理器组件113指明的目的地地址。

存储器装置130的本地媒体控制器135可存储快照的描述。在一些实施例中,快照的描述可包含在存储器装置130的控制逻辑中。描述可包含触发快照生成的事件的列表。触发事件可包含装置故障或错误,例如使得程序中止的错误、与存取无效代码或无效数据相关的错误,或与意外终止的过程相关的错误。触发事件的实例列表包含非易失性存储器快速(NVMe)命令超时、NVMe状态机错误、NVMe内部错误、NVMe奇偶校验错误、复位、链路断开、CRC错误和PCIe AXI错误。在检测到触发事件后,本地媒体控制器135可使用描述中包含的规范立即生成存储器装置130的快照。具体来说,本地媒体控制器135可识别描述中所指定的存储器地址范围,且复制所指定的存储器地址范围以生成快照。本地媒体控制器135可将所生成快照存储到描述中所指定的指明共享存储器区。本地媒体控制器135可随后例如通过将中断发送到存储器子系统控制器115而向快照管理器组件113通知触发事件。快照管理器组件113可随后生成本地媒体控制器135无法存取的存储器子系统110的其它存储器装置的快照。举例来说,快照管理器组件113可将指令发送到存储器装置140以生成存储器装置140内的某些存储器区的快照。快照管理器组件113还可生成存储器子系统控制器115的内部寄存器的快照。快照管理器组件113可通过组合由本地媒体控制器135生成的快照和由快照管理器组件113生成的额外快照来聚合快照以创建存储器子系统110的综合快照。快照管理器组件113可将综合快照存储到持久存储器。在一些实施例中,快照管理器组件113可将综合快照存储到被实施为受电源保护的易失性存储器装置(例如,受电源保护的动态随机存取存储器(DRAM))的持久存储器的区域。在将综合快照成功地存储到持久存储器装置之后,快照管理器组件113可通知本地媒体控制器135快照已成功地存储。

在一些实施例中,快照管理器组件113可向主机系统120通知触发事件。通知可包含综合快照已成功地存储到持久存储器的指示。下文描述关于快照管理器组件113的操作的其它细节。

图1B以额外细节说明根据本公开的一些实施例的包含可生成快照的具有加速输入/输出路径的存储器装置的图1A的实例计算系统100。在实施例中,存储器装置130、140和/或存储器子系统110可具有硬件加速输入/输出路径。硬件加速输入/输出路径使得输入/输出能够直接从处理器发送到硬件,绕过固件。在实施例中,存储器子系统控制器115和/或存储器装置130、140可(分别)包含硬件加速器139C、139A、139B。硬件加速器139A到C可为相同的,或硬件加速器139A到C可各自彼此不同。硬件加速器可包含硬译码逻辑以执行输入/输出命令,从而启用绕过控制器的固件的I/O路径。在实施例中,存储器子系统控制器115的硬件加速器139C可从主机系统120接收输入/输出数据,且可将数据引导到适当的存储器装置130、140。在一些实施例中,存储器装置130、140的硬件加速器139A、139B可从存储器子系统控制器115接收输入/输出命令,因此(分别)绕过本地媒体控制器135A、135B。在一些实施例中,硬件加速器139A、139B可从存储器子系统控制器115的硬件加速器139C接收输入/输出命令。

存储器子系统控制器115可包含快照管理器组件113。快照管理器组件113可执行与图1A的快照管理器组件113相同的功能。存储器子系统控制器115的快照管理器组件113可将在例如错误或装置故障等触发事件的情况下要生成的快照的描述发送到存储器装置130、140。在一些实施例中,存储器装置130可将接收到的快照的描述存储在快照描述137处,所述快照将在触发事件的情况下生成。在一些实施例中,快照描述137可包含将触发快照生成的事件的列表。事件的列表可为存储器装置130可经历的错误代码。快照描述137还可包含存储器装置130将复制以生成快照的存储器装置130的存储器地址范围。在一些实施例中,快照描述137可包含起始存储器地址的列表,以及要捕获的存储器的对应大小。举例来说,快照描述137可包含存储器装置130内的起始物理地址的列表,每一起始物理地址后跟着大小(例如,256K)。因此,为了根据快照描述137生成快照,存储器装置130可在列表中的每一起始地址之后复制指定量的存储器((例如,在起始物理地址之后复制256K的存储器)。

快照描述137可包含要存储所生成快照(即,要存储复制的存储器地址范围)的目的地地址。目的地地址可指定由存储器子系统控制器115的快照管理器组件113指明的共享存储器区。举例来说,快照管理器组件113可指明存储器装置140的共享存储器区141,且包含于快照描述137中的目的地地址可指向共享存储器区141。因此,响应于检测到快照描述137中列出的触发事件中的一个,存储器装置130可生成包含快照描述137中定义的存储器区的副本的快照,且可将所述快照存储在共享存储器区141处。

在一些实施例中,快照描述137可包含指示共享存储器区141是否可用的可用性指示符。如果共享存储器区141当前正存储尚未存储到持久存储器的快照,那么所述共享存储器区不可用。因此,在生成快照之前,本地媒体控制器135可通过检测可用性指示符来确定共享存储器区141是否可用。在生成快照并将其存储在共享存储器区141处之后,本地媒体控制器135可更新可用性指示符以指示共享存储器区141不可用。

快照描述137可包含在存储快照之后将通知发送到快照管理器组件113的指令。因此,在将快照存储在共享存储器区141处之后,本地媒体控制器135可将通知发送到快照管理器组件113。通知可为中断。通知可包含触发事件的识别(例如,触发快照过程的错误代码)。响应于从本地媒体控制器135接收到通知,快照管理器组件113可发起出错的存储器装置130无法存取的存储器子系统的其余部分的快照过程。也就是说,响应于从存储器装置130接收到错误的通知,快照管理器组件113可将指令发送到存储器装置140以生成快照。在一些实施例中,快照管理器组件113可发送特定指令以生成存储器装置140的快照。另外或替代地,快照管理器组件113可响应于从存储器装置130接收到故障的通知而生成本地存储器119的快照。

然后,快照管理器组件113可聚合存储在共享存储器区141处的存储器装置130的所生成快照,以及存储器装置140和/或本地存储器119的额外所生成快照,以创建存储器子系统110的状态的综合快照。综合快照可存储在持久存储器中。在一些实施例中,综合快照150可存储在存储器缓冲器118中。在将综合快照存储到持久存储器之后,快照管理器组件113可通知本地媒体控制器135已成功地存储快照。本地媒体控制器135可接着将共享存储器区141重新用于未来的快照。也就是说,在从快照管理器组件113接收到综合快照已成功地存储到持久存储器的通知后,本地媒体控制器135可更新可用性指示符以指示共享存储器区141可用。

图1C以额外细节说明根据本公开的一些实施例的包含可生成快照的具有加速输入/输出路径的存储器子系统的图1A的实例计算系统。在实施例中,存储器装置130、140和/或存储器子系统110可具有硬件加速输入/输出路径。硬件加速输入/输出路径使得输入/输出能够直接从处理器发送到硬件,绕过固件。在图1C中,存储器子系统110可包含硬件加速器139C。硬件加速器139C可从主机系统120接收输入/输出命令,因此绕过存储器子系统控制器115的固件。

在一些实施例中,主机系统120可执行如上文所描述的快照管理器组件113的功能。具体来说,快照管理器组件113可驻留在主机系统120上。主机系统120可将存储器子系统110的一部分指明为共享存储器区,例如存储器装置140的共享存储器区141。主机系统120可将在检测到触发事件后将生成的快照的描述发送到存储器子系统110。存储器子系统控制器115可将快照描述137存储在本地存储器119中。在一些实施例中,快照描述137可包含例如严重错误或装置故障等触发事件的列表。在检测到触发事件中的一个后,存储器子系统可在快照描述137中执行指令以生成存储器子系统110的快照。举例来说,存储器子系统控制器115可识别包含在快照描述137中的存储器地址范围。存储器地址范围可指向存储器装置130、140和/或本地存储器119。存储器子系统控制器115可创建存储器地址范围的副本,且将所复制的存储器地址范围存储在共享存储器区141中。在一些实施例中,存储器子系统控制器可聚合复制的存储器地址范围以生成综合快照,且可将综合快照150存储在存储器缓冲器118中。存储器子系统控制器可向主机系统120通知触发快照的事件。在一些实施例中,主机系统120可发起与主机系统120相关联的任何其它存储器子系统(未描画)的快照。

图2描绘根据本公开的一些实施例的说明由计算机系统执行的用于生成具有硬件加速输入/输出路径的存储器子系统的快照的方法200的实施方案的框图。方法200可由图1A到1C的计算系统100实施。在一些实施例中,且关于图2的以下描述,快照管理器113可为图1A、1B的存储器子系统控制器115的部分,且快照描述137可为图1B的存储器装置130的部分。应注意,在一些实施例中,快照管理器113可为图1C的主机系统120的部分,且快照描述137可为图1C的存储器子系统控制器115的部分。在一些实施例中,存储器范围215可包含存储器装置的内部存储器和图1A到1C的存储器装置130、140的外围寄存器,以及图1B、1C的存储器缓冲器118。

在初始化后,在操作217处,快照管理器113可编程要通过对硬件寄存器进行编程而捕获的源存储器范围。快照管理器113可将快照的描述发送到存储器装置130的快照描述137以响应于检测到触发事件而生成。快照的描述可包含存储器装置130的硬件寄存器和/或特定存储器地址范围以包含在快照中。如图2中所说明,在一些实施例中,描述可包含起始存储器地址的列表(例如,硬件201内的逻辑块地址的列表,或硬件201内的物理地址的列表),说明为地址0到地址2,以及对应于每一起始地址的大小,说明为大小0到大小2。应注意,起始地址的列表和大小不限于三个,且在大多数实施方案中将包含更多地址和对应大小。起始地址可指向存储器装置130内的物理地址,且大小可指示从起始地址开始快照的数据量。

在操作219处,快照管理器113可对要捕获的目的地存储器地址和大小进行编程。如图2中所说明,快照管理器113对两个目的地存储器地址和对应大小进行编程。目的地存储器地址可具有相关联可用性指示符,且指示目的地地址是否可用。目的地地址可指向持久存储器,例如,指向图1B到C中的存储器子系统110的存储器缓冲器118。

在一些实施例中,接收包含在触发事件的列表中的错误可根据存储在快照描述137中的指令自动触发快照的生成。在一些实施例中,存储在存储器装置130中的描述可监视存储器装置130的错误,且如果错误与触发事件中的一个匹配,那么存储器装置130的处理逻辑可执行包含在快照的描述中的指令。如图2中所说明,在操作221处,存储器装置130可检测触发事件。举例来说,触发事件可为硬件故障或关于输入/输出路径的错误。在实施例中,快照描述137可包含将触发快照的触发事件的列表。触发事件的列表可包含存储器装置130可经历的错误代码或触发识别代码的列表。快照描述137可包含在检测到触发事件中的一个后自动发起快照生成过程的指令。

在操作223处,响应于检测到触发事件,存储器装置130的处理逻辑根据快照描述137确定注册的目的地存储器地址中的任一个是否可用。存储器装置130的处理逻辑可检查与目的地地址相关联的可用性指示符以确定存储器地址的可用性。在操作223处,存储器装置130的处理逻辑选择可用目的地存储器地址中的一个且将所述目的地存储器地址标记为选定的。举例来说,存储器装置130的处理逻辑可选择目的地存储器2,且更新与目的地存储器2相关联的可用性指示符以指示目的地存储器不可用。

在操作225处,在实施例中,存储器装置130的处理逻辑重复所有注册的源地址范围且将其复制到目的地空间。在一些实施例中,处理逻辑逐个地将源存储器范围复制到目的地空间。如图2中所说明,根据快照描述137,存储器装置130的处理逻辑将地址0和大小0识别为要复制的第一源存储器地址。处理逻辑复制存储在地址0和大小0处的数据(在图2中说明为硬件内部存储器)且将数据存储在选定目的地地址(即,目的地存储器2)中。处理逻辑接着将地址1和大小1识别为要复制的第二源存储器地址,且将存储在地址1和大小1(在图2中说明为外围寄存器1)处的数据复制到目的地存储器2等。

在操作227处,存储器装置130的处理逻辑向快照管理器113通知触发事件和选定的目的地存储器。在一些实施例中,处理逻辑可将触发ID和目的地存储器ID(例如,图2中的目的地存储器2)发送到快照管理器113。在实施例中,存储器装置130的处理逻辑可通过将中断发送到存储器子系统控制器115来通知快照管理器113。通知(例如,中断)可包含识别触发事件的类型(例如,错误或故障)的触发识别(ID)或错误代码。在实施例中,触发ID可指定要快照哪些额外硬件装置。

在操作229处,响应于接收到触发事件的通知,快照管理器113通过生成存储器装置130无法存取的内部存储器范围的快照来继续快照过程。因此,在操作229处,快照管理器113快照内部存储器范围且将其复制到选定的目的地存储器。举例来说,如图2中所说明,快照管理器113将固件CPU地址空间和固件BSS堆栈复制到目的地存储器2。

在操作231处,快照过程完成。在一些实施例中,目的地存储器2为易失性存储器,在此情况下,快照管理器113可在完成快照过程之前将快照从目的地存储器2存储到持久或非易失性存储器。一旦快照过程完成,快照管理器113就可通过将选定的目的地存储器地址标记为在快照描述137中可用来释放所述选定的目的地存储器地址。举例来说,为了继续图2中的实例,快照管理器113可更新与目的地存储器2相关联的可用性指示符以指示目的地存储器2可用。在一些实施例中,快照管理器113可将指示快照过程完成的通知发送到存储器装置130。响应于接收到所述通知,存储器装置130的处理逻辑可更新与选定的目的地存储器(即,目的地存储器2)相关联的可用性指示符。

图3是根据本公开的一些实施例的用于生成具有硬件加速输入/输出路径的存储器装置的快照的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1B的快照描述137执行。虽然以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,并且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。

在操作310处,处理逻辑通过存储器装置的本地媒体控制器从存储器子系统控制器接收将响应于检测到触发事件而生成的快照的描述。所述描述包含要包含在快照中的存储器装置的存储器地址范围,以及要存储所生成快照的目的地地址。存储器地址范围可为指示要包含在快照中的存储器装置的区的起始物理地址的列表和对应大小。在一些实施例中,处理逻辑可存储将响应于在存储器装置内局部检测到触发事件而生成的快照的描述。在一些实施例中,描述可包含将触发快照生成过程的事件的列表(例如,错误代码的列表)。

处理装置还可存储与所述描述相关联的可用性指示符。可用性指示符指示目的地地址是否可用。举例来说,可用性指示符可为单个位数据字段,且处理逻辑可在目的地地址可用的情况下将指示符设置为“0”,且在目的地地址不可用的情况下将指示符设置为“1”。默认设置可为指示目的地地址可用的“0”。如果目的地地址当前正存储尚未存储到持久存储器的快照,那么所述目的地地址不可用。

在操作320处,响应于检测到触发事件,处理逻辑鉴于描述生成存储器装置的存储器地址范围的快照。触发事件可为存储器装置的故障或存储器装置的错误。触发事件可包含触发事件的识别,例如错误代码。在一些实施例中,在生成快照之前,处理逻辑确定与描述相关联的可用性指示符指示目的地地址是可用的。举例来说,处理逻辑可确定与目的地地址相关联的可用性指示符是被设置为指示目的地地址可用的“0”还是被设置为指示目的地地址不可用的“1”。如果目的地地址是可用的,那么处理逻辑可继续鉴于描述生成快照,且接着继续进行到操作330。如果目的地地址不可用,那么处理逻辑可继续进行到操作340且向存储器子系统控制器通知触发事件,且可进一步通知存储器子系统控制器快照过程失败。在一些实施例中,存储器子系统控制器可响应于接收到快照过程失败的通知而生成存储器装置的快照。

在操作330处,处理逻辑将快照存储到目的地地址。在一些实施例中,目的地地址指向易失性存储器。在一些实施例中,响应于将快照存储到目的地地址,处理逻辑更新与描述相关联的可用性指示符以指示目的地地址不可用。这可避免在将快照存储到持久存储器之前覆盖快照。

在操作340处,处理逻辑向存储器子系统控制器通知触发事件。通知可为发送到存储器子系统控制器的处理器的中断。通知可包含触发事件的识别,例如错误代码。在一些实施例中,处理逻辑可从存储器子系统控制器接收指示快照完成的通知。通知可指示快照已成功地存储到持久存储器。处理逻辑可随后更新与描述相关联的可用性指示符以指示目的地地址再次可用。举例来说,处理逻辑可将与目的地相关联的可用性指示符从“1”更新为“0”。

图4是根据本公开的一些实施例的用于生成具有硬件加速输入/输出路径的存储器子系统的综合快照的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1A、1B的快照管理器组件113执行。虽然以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,并且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。

在操作410处,处理逻辑将要生成的第一快照的描述发送到第一存储器装置的本地媒体控制器。所述描述可包含可触发快照过程的触发事件的列表,例如错误代码的列表。所述描述可包含要包含在快照中的存储器区的列表,例如,所述描述包含一或多个起始地址及对应于所述起始地址的大小。所述描述还包含要存储第一快照的目的地地址。在一些实施例中,处理逻辑将易失性存储器的一部分指明为存储器装置可存储所生成快照的共享存储器区。在一些实施例中,处理逻辑在初始化第一存储器装置期间发送第一快照的描述。另外或替代地,处理逻辑在存储器子系统的初始化期间发送第一快照的描述。第一存储器装置具有硬件加速输入/输出路径。

在操作420处,响应于从第一存储器装置的本地媒体控制器接收到触发事件的第一通知,处理逻辑将生成第二存储器装置的第二快照的指令发送到第二存储器装置。在实施例中,处理逻辑将生成快照的指令发送到多于一个额外存储器装置。从第一存储器装置的本地媒体控制器接收到的通知可为识别使得本地媒体控制器生成第一快照的触发事件的通知。在实施例中,通知可为中断。在实施例中,通知可包含错误代码,所述错误代码可识别要快照的第二存储器装置。在实施例中,处理逻辑从第二存储器装置接收指示第二快照的成功生成的通知。通知可包含存储第二快照的第二目的地地址。

在一些实施例中,在初始化存储器子系统后,处理逻辑可将要生成的快照的描述发送到存储器子系统的多于一个存储器装置。随后,响应于从存储器装置中的一个接收到触发事件(例如,中断)的通知,处理逻辑可鉴于预定义描述而发送生成快照的指令。发送到每一存储器装置的描述可包含共享存储器区内的不同对应目的地地址。

在操作430处,处理逻辑将存储在目的地地址处的第一快照和第二存储器装置的第二快照存储到持久存储器装置。在一些实施例中,处理逻辑将存储在目的地地址处的第一快照和第二存储器装置的第二快照聚合为综合快照。处理逻辑将综合快照存储到持久存储器装置。在实施例中,综合快照包含与通知相关联的触发事件的识别。举例来说,综合快照包含触发第一存储器装置上的第一快照的错误代码的识别。

在操作440处,响应于将第一快照成功地存储到持久存储器,处理逻辑通知第一存储器装置的本地媒体控制器,指示将第一快照成功地存储到持久存储器装置。

在一些实施例中,存储器子系统控制器可从本地媒体控制器接收触发事件的通知,包含目的地地址不可用的指示。也就是说,存储器装置的本地媒体控制器可能已经检测到触发事件,然而,在生成快照之前,本地媒体控制器可能已确定与快照的描述相关联的可用性指示符指示目的地地址不可用。在此情况下,存储器装置的本地媒体控制器可(例如,通过生成中断)向存储器子系统控制器通知触发事件,且可包含目的地地址不可用的指示。在接收到此通知之后,存储器子系统控制器可发起存储器装置的快照过程且将快照直接存储到持久存储器装置。

图5说明计算机系统500的实例机器,在所述计算机系统内可执行用于使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统500可对应于主机系统(例如,图1A的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1A的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1A的快照管理器组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(按顺序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。此外,虽然说明单个机器,但应认为术语“机器”还包含机器的任何集合,所述机器单独地或共同地执行指令集(或多个指令集)以执行本文中所论述的方法中的任何一或多种。

实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或RDRAM等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等),及数据存储系统518,它们经由总线530彼此通信。

处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502被配置成执行指令526以用于执行本文中所论述的操作和步骤。计算机系统500可进一步包含网络接口装置508以经由网络520通信。

数据存储系统518可以包含机器可读存储媒体524(也称为计算机可读媒体),其上存储有一或多组指令526或体现本文中所描述的方法或功能中的任何一或多种的软件。指令526还可在由计算机系统500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可以对应于图1A的存储器子系统110。

在一个实施例中,指令526包含用于实施对应于快照管理器组件(例如,图1A的快照管理器组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体524展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。

已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。数据处理领域的技术人员使用这些算法描述和表示将其工作的主旨最有效地传达给所属领域的其它技术人员。算法在这里且通常认为是引起所需结果的操作的自洽序列。所述操作为需要对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电气或磁信号的形式。已证明,有时,主要出于普遍使用的原因,将这些信号称为位、值、要素、符号、字符、项、数字等是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可涉及将计算机系统的寄存器及存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。

本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。

本文中呈现的算法和显示本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述来呈现多种这些系统的结构。另外,不参考任何特定编程语言描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。

本公开可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含上面存储有可用以对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

在前述说明书中,本公开的实施例已经参考其具体实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号