CN112559056A - 用于减少固件激活时间的技术 - Google Patents

用于减少固件激活时间的技术 Download PDF

Info

Publication number
CN112559056A
CN112559056A CN202010975469.2A CN202010975469A CN112559056A CN 112559056 A CN112559056 A CN 112559056A CN 202010975469 A CN202010975469 A CN 202010975469A CN 112559056 A CN112559056 A CN 112559056A
Authority
CN
China
Prior art keywords
memory
firmware image
firmware
image
volatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010975469.2A
Other languages
English (en)
Other versions
CN112559056B (zh
Inventor
S·阿格拉瓦尔
A·K·亚达夫
S·瓦苏
V·A·德赛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN112559056A publication Critical patent/CN112559056A/zh
Application granted granted Critical
Publication of CN112559056B publication Critical patent/CN112559056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请案涉及用于减少固件激活时间的技术。如本文所描述,响应于客户端装置经历至少部分热复位或重启而执行的方法可包含:从客户端装置接收固件提交请求。所述方法还可包含:在第一时间将与所述客户端装置相关联的固件图像写入到易失性存储器的执行存储器中。所述方法还可包含在第二时间将与所述客户端装置相关联的所述固件图像写入到非易失性存储器的存储器插槽中。

Description

用于减少固件激活时间的技术
技术领域
本申请案涉及一种计算系统,并且特定来说涉及用于减少用于计算系统的固件激活时间的技术。
背景技术
本章节希望向读者介绍可与在下文描述及/或主张的本技术的各种方面有关的各种技术方面。据信,此论述有助于对读者提供背景信息以促进更好地理解本发明的各种方面。因此,应了解,这些陈述应在此背景下阅读而非作为现有技术的认可。
一般来说,计算系统包含处理电路系统,例如一或多个处理器或其它合适组件,以及存储器装置,例如芯片或集成电路。可在例如双列直插式存储器模块(DIMM)的存储器模块上实施一或多个存储器装置,以存储处理电路系统可存取的数据。举例来说,基于到计算系统的用户输入,处理电路系统可请求存储器模块从其存储器装置检索对应于用户输入的数据。在一些例子中,所检索数据可包含固件或可由处理电路系统执行以执行操作的指令,及/或可包含待用作用于操作的输入的数据。另外,在一些情况中,举例来说,从操作输出的数据可存储在存储器中,以实现后续检索。在从非易失性存储器(例如,媒体、存储装置)检索固件的例子中,作为固件存储在存储器中的信息的检索路径可能效率低下。举例来说,固件图像(例如,固件应用程序数据)可在被读取到非易失性存储器之前最初被存储在易失性存储器的文件系统存储区域(FSA)中,并且最终被存储到执行存储器(例如,指令随机存取存储器(RAM))中。可能需要更有效的加载操作来改进存储器管理操作并减少图像激活时间。
发明内容
一方面,本申请案涉及一种设备,其包括:易失性存储器装置,其包括:执行存储器,其经配置以在第一时间存储固件图像用于迟于所述第一时间的第二时间进行检索;及存储器插槽;非易失性存储器装置;及存储器控制器,其经配置以耦合到客户端装置的图像缓冲器并且经配置以:在所述第一时间将存储在所述图像缓冲器中的所述固件图像写入所述执行存储器;及在第三时间将所述固件图像写入到所述非易失性存储器装置中,其中所述第三时间不早于所述第一时间。
另一方面,本申请案涉及一种方法,其包括:从客户端装置接收固件提交请求;在第一时间,将定义所述客户端装置的一部分的操作的固件图像写入到易失性存储器的执行存储器中;及在第二时间将所述固件图像写入到非易失性存储器的存储器插槽中。
另一方面,本申请案涉及一种系统,其包括:处理电路系统,其经配置以耦合到外部装置的图像缓冲器;及存储器,其包括一或多个有形的非暂时性机器可读媒体,并且经配置以存储可由所述处理电路系统执行的指令,其中在执行所述指令时,所述处理电路系统经配置以:从客户端装置接收固件提交请求;至少部分基于所述固件提交请求,将固件图像从所述客户端装置写入易失性存储器的存储器插槽中;在第一时间将所述固件图像写入与非易失性存储器分离的执行存储器中,其中将所述固件图像从所述易失性存储器的所述存储器插槽传输到所述执行存储器中;及在第二时间将所述固件图像写入到所述非易失性存储器中。
附图说明
在阅读以下具体实施方式且参考图式之后可更好地理解本发明的各种方面,其中:
图1是根据实施例的包含客户端装置及一或多个计算装置的计算系统的框图;
图2是根据实施例的可在图1的计算装置中实施的存储器模块的框图;
图3A是根据实施例的在固件图像被存储在执行存储器中之前存储固件图像的图2的存储器模块的框图;
图3B是根据实施例的在将图3A的固件图像存储在执行存储器中之后的图2的存储器模块的框图;及
图4是根据实施例的用于将图3A的固件图像加载到执行存储器中的过程的流程图。
具体实施方式
当介绍本发明的各个实施例的元件时,冠词“一”及“所述”希望意味着存在所述元件中的一或多者。术语“包括”、“包含”及“具有”希望为包含性且意味着可存在除所列出元件之外的额外元件。下文将描述本文描述的本实施例的一或多个特定实施例。为了提供这些实施例的简明描述,本说明书中可能未描述实际实施方案的全部特征。应了解,在任何此实际实施方案的开发中(如在任何工程或设计项目中),必须进行许多实施方案特定决策以实现开发者的可随实施方案变化的特定目标,例如符合系统相关及业务相关约束。此外,应了解,此开放努力可能是复杂的且耗时的,但对于获益于本发明的所属领域的一般技术人员来说仍将为常规设计、制作及制造任务。
一般来说,计算系统的硬件包含例如使用一或多个处理器及/或一或多个存储器装置(例如,芯片或集成电路)实施的处理电路系统及存储器。在计算系统的操作期间,处理电路系统可例如通过基于用户输入执行对应指令来执行各种操作(例如,任务),以通过对输入数据执行操作来确定输出数据。为促进计算系统的操作,可将处理电路系统可存取的数据存储在存储器装置中,使得所述存储器装置存储输入数据、输出数据、指示可执行指令的数据或其任何组合。
另外,在一些例子中,可使用不同存储器类型来实施存储器装置。举例来说,存储器装置可经实施为易失性存储器,例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。替代地,存储器装置可经实施为非易失性存储器,例如快闪(例如,NAND、NOR)存储器、相变存储器(例如,3D XPointTM)或铁电随机存取存储器(FeRAM)。在任何情况中,存储器装置通常包含至少一个存储器裸片(例如,配置在半导体晶片的一部分或“裸片”上的存储单元阵列)以存储通过通道(例如,数据通道、通信耦合、总线接口)传输到存储器装置的数据位(例如,“0”位或“1”位),并且即使当存储器装置包含不同存储器类型时从处理电路系统的角度来看存储器装置也可在功能上相似。
在一些情况中,从存储器执行的指令可与固件交互或影响固件。计算装置固件可促进软件与硬件之间的命令或指令转译。举例来说,固件可根据汇编或另一合适形式的相对低级编程语言来操作。以此方式,固件可帮助定义将在主机装置(例如,客户端装置)上运行的软件及/或应用程序。
在主机装置的操作期间,可能出现可能导致需要重新启动或重启主机装置的情形。当将在不关闭的情况下重启主机装置(例如,热复位)时,在主机装置上运行的固件可存储在非易失性存储器中。在热复位期间以及在主机装置上执行及/或操作固件之前,可将固件的图像加载到主机装置的易失性存储器的执行存储器中。以此方式,可将固件从主机装置移动到易失性存储器内的存储器插槽的文件系统存储区域(FSA),到非易失性存储器,并回到易失性存储器内的执行存储器。当在将固件存储到非易失性存储器中之前将固件至少部分移动到执行存储器时,可发生对存储器操作的改进。举例来说,在不首先将固件存储到非易失性存储器中的情况下将固件存储到执行存储器中可减少固件在热复位期间的图像激活时间。
如本文所述,存储器控制器可将固件图像存储到FSA存储器插槽中,并且可将固件图像从FSA存储器插槽移动到非易失性存储器及执行存储器中,而无需任何中间存储操作。固件的移动(及存储)可在至少部分类似时间发生。以此方式,固件图像在被移动并存储在执行存储器中之前不会被移动到非易失性存储器存储装置。从执行存储器执行固件图像。由于固件图像在保存到执行存储器中之前未保存在非易失性存储器中,因此减少与将固件重新应用到主机装置相关联的固件激活时间。较短固件激活时间可改进存储器操作,因为减少了热复位期间主机装置的停机时间。
为帮助说明,图1描绘包含一或多个远程计算装置11的计算系统10的实例。如在所描绘实施例中,远程计算装置11可经由通信网络14通信耦合到一或多个客户端装置12。应了解,所描绘实施例仅希望为说明性的而不是限制性的。举例来说,在其它实施例中,远程计算装置11可通信耦合到单个客户端装置12或两个以上客户端装置12。此外,取决于计算系统10,存储器控制器30可能不仅仅在存储器模块24上。以此方式,描绘的是所描述技术的一般使用,其中存储器控制器30完全在存储器模块24上。然而,其它实例可包含不具有存储器模块的存储器控制器及/或可使用处理电路22作为存储器控制器30。
在任何情况中,通信网络14可实现客户端装置12与远程计算装置11之间的数据通信。在一些实施例中,举例来说,客户端装置12可在物理上远离远程计算装置11(例如,与远程计算装置11分离),使得远程计算装置11位于集中式数据中心处。因此,在一些实施例中,通信网络14可为例如因特网的广域网(WAN)。为促进经由通信网络14的通信,远程计算装置11及客户端装置12可各自包含网络接口16。
除网络接口16之外,客户端装置12可包含输入装置18及/或电子显示器20以使用户能够与客户端装置12交互。举例来说,输入装置18可接收用户输入,且因此可包含按钮、键盘、鼠标、轨迹板及/或类似物。额外地或替代地,电子显示器20可包含触摸感测组件,其通过检测触摸其屏幕(例如,电子显示器20的表面)的物体的出现及/或位置来接收用户输入。除实现用户输入之外,电子显示器20可通过显示操作系统的图形用户接口(GUI)、应用程序接口、文本、静止图像、视频内容或类似者来促进提供信息的视觉表示。
如上文描述,通信网络14可实现远程计算装置11与一或多个客户端装置12之间的数据通信。换句话说,通信网络14可使用户输入能够从客户端装置12传达到远程计算装置11。额外地或替代地,通信网络14可使由远程计算装置11基于用户输入执行的操作的结果能够被传达回到客户端装置12,例如作为待显示在其电子显示器20上的图像数据。
实际上,在一些实施例中,可利用由通信网络14提供的数据通信来使集中式硬件可用于多个用户,使得可减少客户端装置12处的硬件。举例来说,远程计算装置11可提供用于多个不同客户端装置12的数据存储装置,借此使得能够减少在客户端装置12处本地提供的数据存储装置(例如,存储器)。额外地或替代地,远程计算装置11可为多个不同客户端装置12提供处理,借此使得能够减少在客户端装置12处本地提供的处理能力。
因此,除网络接口16之外,远程计算装置11可包含经由数据总线25通信耦合的处理电路系统22及一或多个存储器模块24(例如,子系统)。举例来说,可跨多个远程计算装置11实施处理电路系统22及/或存储器模块24,使得第一远程计算装置11包含处理电路系统22的一部分及第一存储器模块24A,而第M个远程计算装置11包含处理电路系统22的另一部分及第M个存储器模块24M。额外地或替代地,处理电路系统22及存储器模块24可在单个远程计算装置11中实施。
在任何情况中,处理电路系统22通常可执行指令以执行例如由从客户端装置12接收的用户输入所指示的操作。因此,处理电路系统22可包含一或多个中央处理单元(CPU)、一或多个图形处理单元(GPU)、一或多个处理器核心或其任何组合。在一些实施例中,处理电路系统22可额外地基于形成(例如,编程)在处理电路系统22中的电路连接来执行操作。因此,在此类实施例中,处理电路系统22可额外地包含一或多个专用集成电路(ASIC)、一或多个现场可编程逻辑阵列(FPGA)或合适处理装置的任何组合。
另外,存储器模块24可提供处理电路系统22可存取的数据存储装置。举例来说,存储器模块24可存储从客户端装置12接收的数据,源自由处理电路系统22执行的操作的数据,待输入到由处理电路系统22执行的操作的数据,可由处理电路系统22执行以执行操作的指令或其任何组合。为促进提供数据存储装置,存储器模块24可包含一或多个存储器装置26(例如,芯片或集成电路)。换句话说,存储器装置26可各自包含存储处理电路系统22可存取的数据的有形非暂时性计算机可读媒体。
至少在一些例子中,由于远程计算装置11的硬件可由多个客户端装置12利用,因此存储器模块24可存储对应于不同客户端装置12的数据。在一些实施例中,数据可经分组并且存储为数据块28。实际上,在一些实施例中,与每一客户端装置12对应的数据可经存储为单独数据块28。举例来说,第一存储器模块24A中的存储器装置26可存储与第一客户端装置12A对应的第一数据块28A,及与第N客户端装置12N对应的第N数据块28N。一或多个数据块28可存储在存储器装置26的存储器裸片内。
额外地或替代地,在一些实施例中,数据块28可对应于提供到客户端装置12的虚拟机(VM)。换句话说,作为说明性实例,远程计算装置11可经由第一数据块28A向第一客户端装置12A提供第一虚拟机,并经由第N数据块28N向第N客户端装置12N提供第N虚拟机。因此,当第一客户端装置12A接收希望用于第一虚拟机的用户输入时,第一客户端装置12A可经由通信网络14将用户输入传达到远程计算装置11。至少部分基于用户输入,远程计算装置11可检索第一数据块28A,执行指令以执行对应操作,并且将操作的结果经由通信网络14传达回到第一客户端装置12A。
类似地,当第N客户端装置12N接收希望用于第N虚拟机的用户输入时,第N客户端装置12N可经由通信网络14将用户输入传达到远程计算装置11。至少部分基于用户输入,远程计算装置11可检索第N数据块28N,执行指令以执行对应操作,并且将操作的结果经由通信网络14传达回到第N客户端装置12N。因此,远程计算装置11可存取(例如,读取及/或写入)存储在存储器模块24中的各种数据块28。
为促进改进对存储的数据块28的存取,存储器模块24可包含存储器控制器30,其控制数据在其存储器装置26中的存储。在一些实施例中,存储器控制器30可基于形成(例如,编程)在存储器控制器30中的电路连接来操作。因此,在此类实施例中,存储器控制器30可包含一或多个专用集成电路(ASIC)、一或多个现场可编程逻辑门阵列(FPGA)或合适处理装置的任何组合。在任何情况中,如上文描述,存储器模块24可包含实施不同存储器类型的存储器装置26,例如其在数据存取速度及数据存储密度之间提供不同的折衷。因此,在此类实施例中,存储器控制器30可控制跨多个存储器装置26的数据存储以促进利用各种折衷,例如使得存储器模块24提供快速数据存取速度以及高数据存储容量。
为帮助说明,图2描绘包含不同类型的存储器装置26的存储器模块24的实例。特定来说,存储器模块24包含一或多个非易失性存储器装置32及一或多个易失性存储器装置34。在一些实施例中,易失性存储器装置34可经实施为动态随机存取存储器(DRAM)及/或静态随机存取存储器(SRAM)。换句话说,在此类实施例中,存储器模块24可包含一或多个DRAM装置(例如,芯片或集成电路)、一或多个SRAM装置(例如,芯片或集成电路)或合适存储器装置的任何组合。
另外,在一些实施例中,非易失性存储器装置32可经实施为快闪(例如,NAND)存储器、相变(例如,3D XPointTM)存储器及/或FeRAM。换句话说,在此类实施例中,存储器模块24可包含一或多个NAND存储器装置、一或多个3D XPointTM存储器装置、一或多个FeRAM存储器装置或合适存储器装置的任何组合。实际上,在一些实施例中,非易失性存储器装置32可提供存储级存储器(SCM),其至少在一些情况中可例如通过消除计算系统10中的其它非易失性数据存储装置来促进降低与实施相关联的成本。
在任何情况中,在一些实施例中,可通过将非易失性存储器件32及易失性存储器件34中的每一者安置在印刷电路板(PCB)的平坦(例如,前及/或后)表面上来实施存储器模块24。为促进经由数据总线25的数据通信,存储器模块24可包含总线接口36(总线I/F)。举例来说,总线接口36可包含沿印刷电路板的(例如,底部)边缘形成的数据引脚(例如,接触件)。因此,在一些实施例中,存储器模块24可为单列直插式存储器模块(SIMM)、双列直插式存储器模块(DIMM)等。
另外,在一些实施例中,总线接口36可包含使存储器模块24能够经由在数据总线25上实施的通信协议通信的逻辑。举例来说,总线接口36可控制从存储器模块24输出到数据总线25的数据的时序,及/或根据通信协议解译从数据总线25输入到存储器模块24的数据。因此,在一些实施例中,总线接口36可为双倍数据速率第四代(DDR4)接口、双倍数据速率第五代(DDR5)接口、外围组件互连快速(PCIe)接口、非易失性双列直插式存储器模块(例如,NVDIMM-P)接口、用于加速器的高速缓存一致性互连(CCIX)接口或类似者。
在任何情况下,如上文描述,存储器控制器30可控制存储器模块24中的数据存储,例如以通过利用由实施在存储器模块24中的存储器类型提供的各种折衷来促进改进数据存取速度及/或数据存储效率。因此,如在所描绘实例中,存储器控制器30可经由例如提供为形成在印刷电路板上的导电迹线的一或多个内部总线37耦合在总线接口36及存储器装置26之间。举例来说,存储器控制器30可控制是否将数据块28存储在非易失性存储器装置32中或易失性存储器装置34中。换句话说,存储器控制器30可将数据块28从非易失性存储器装置32转移到易失性存储器装置34中,反之亦然。
为促进数据转移,存储器控制器30可包含缓冲存储器38例如以提供临时数据存储。在一些实施例中,缓冲存储器38可包含静态随机存取存储器(SRAM),且因此与易失性存储器装置34及非易失性存储器装置32相比,可提供更快数据存取速度。缓冲存储器38在一些情况中可为DRAM或FeRAM。另外,为促进存取所存储数据块28,存储器模块24可包含存储在缓冲存储器38、非易失性存储器装置32、易失性存储器装置34、专用地址映射存储器26或其任何组合中的地址映射及/或其它参数。其它参数可包含物理经验表,其存储与存储器模块24及/或计算系统10的一或多个组件的操作相关的参数及/或数据。
此外,远程计算装置11可与包含在处理电路系统22及/或数据总线25中或与其分离的服务处理器及/或服务总线通信。服务处理器、处理电路系统22及/或存储器控制器30可执行错误检测操作及/或错误校正操作(ECC),并且可经安置在远程计算装置11的外部,使得错误检测及错误校正操作可失去在到远程计算装置11的电力的情况下继续。为简化描述,将服务处理器的操作描述为包含在存储器控制器30中并由其执行,但应注意,在一些实施例中,错误校正操作或数据恢复操作可用作由服务处理器、处理电路系统22或位于远程计算装置11或客户端装置12内部或外部的额外处理电路系统执行的功能。
存储器模块24在图2经描绘为包含各种组件或子模块的单个装置。在一些实例中,远程计算装置可包含与构成存储器模块24的各种装置、模块及组件等效的一或若干离散组件。例如,远程计算装置可包含定位在一或若干不同芯片或衬底上的非易失性存储器、易失性存储器及控制器。换句话说,不需要在单个模块中采用存储器模块24的特征及功能来实现本文所描述的益处。
为帮助说明,图3A描绘包含存储器装置26(例如,多达N个存储器装置26)中的一或多者的存储器模块24的实例,每一存储器装置基于特定应用包含非易失性(例如,非易失性存储器装置32)或易失性存储器(例如,易失性存储器装置34)基础架构。每一存储器装置26可在存储器插槽52(例如,存储器插槽52A、存储器插槽52B等)中存储对应于存储器地址的数据片段。特定存储器装置26可包含任何数目个存储器裸片50(例如,存储器裸片50A、存储器裸片50B等),其各自具有存储器插槽52。由存储器装置26存储的数据片段可小于存储器插槽52的总体大小。举例来说,数据片段可为512字节(B),而整个存储器裸片50可存储数千兆字节。应了解,所描绘实例仅希望为说明性的而不是限制性的。
在任何情况中,关于图3A中所展示的所描绘实施例,处理电路系统22及/或存储器控制器30可促进存储器装置26与客户端装置12之间经由信道的通信。每一存储器装置26存储客户端装置12可存取的特定数量的数据。当所存储数据对应于固件(例如,运行或支持客户端装置12的操作的固件及/或将用于运行或支持客户端装置12的操作的固件)时,其称为固件图像,其中固件图像是在同一存储操作内读取或写入存储器装置26的数据的子集。
在客户端装置12(例如,主机装置)的热复位操作之后可适当地使用固件之前,将固件存储到执行存储器54中。为此,存储器控制器30可将来自客户端装置12的图像缓冲器56的固件图像写入到缓冲存储器38中。存储器控制器30可将来自缓冲存储器38的固件图像存储到存储器插槽52(例如,作为固件图像58存储到存储器插槽52C)中。如图3A中所描绘,固件图像已由存储器控制器30作为固件图像58存储到存储器插槽52C中。与在将固件图像58存储到执行存储器54中之前将固件图像58从存储器插槽52C写入到额外存储器位置的存储器操作相比,将固件图像58从存储器插槽52C直接写入到执行存储器54中的存储器操作可更高效(例如,花费更少时间,使用更少处理资源)。
举例来说,图3B描绘存储器模块24的实例,其已将固件图像58从存储器插槽52C写入到执行存储器54中,而不必在将固件图像58写入执行存储器54之前将固件图像58写入非易失性存储器装置32。应理解,除在固件激活操作结束时存储在执行存储器54中之外,固件图像58可存储在存储器插槽52中的任何者中。
可响应于经产生以更新例如用以在企业与客户端系统之间(例如,在远程计算装置11与客户端装置12之间)转移数据的主机控制器接口及/或存储协议(例如非易失性存储器快速(NVMe))的固件图像激活命令而执行经由图3A及图3B描绘的固件图像激活操作。通过使用本文描述的控制方法,可减少固件图像58的激活时间(例如,更新命令的传输到更新固件图像58的运行时间之间的持续时间)。
本文描述的控制方法可不通过从非易失性存储器装置32加载固件图像58而是通过使用存储在易失性存储器装置34中的固件图像58来激活新固件图像58。此方法可在易失性存储器装置34中使用额外缓冲器来保持固件图像58完整以进行下一个(例如,后续)固件图像激活操作。以此方式,客户端装置12的固件可在易失性存储器中维持至少两个缓冲器(例如,经由易失性存储器装置34)。一个缓冲器可存储已由客户端装置12激活及/或提交的固件图像58,并且第二缓冲器用于保持已由客户端装置12下载但未提交的固件图像58。
一般来说,参考图3A及3B,固件下载命令可启动从客户端装置12到易失性存储器装置34的第一缓冲器的固件图像58的数据转移。当固件图像58的所有数据都下载到易失性存储器装置34时,固件下载命令可完成。固件提交(例如,激活)命令指示存储器控制器30验证存储在易失性存储器装置34(例如,易失性存储器装置34的缓冲器)中的固件图像58的签名。在验证固件图像58的签名之后,存储器控制器30可使用文件系统存储区域(FSA)来将固件图像58存储在易失性存储器装置34的执行存储器54中。FSA可对应于或包含存储器插槽52中的一或多者,例如存储器插槽52C。当固件图像58存储在存储器插槽52中的一者中时,固件下载命令可完成。在此实例中,固件可使易失性存储器装置34的缓冲器保持完整,直到下一个固件提交命令为止。如果在第一缓冲器将被保持完整的同时将寻址额外下载命令,那么存储器控制器30可引用易失性存储器装置34的第二缓冲器。
为激活固件图像58,存储器控制器30可验证存储固件图像58的存储器插槽52与固件提交命令中的固件存储器插槽参数匹配。如果存储器插槽52匹配,那么存储器控制器30可继续以验证图像标头及签名及/或执行循环冗余校验(CRC)操作。此验证操作可帮助存储器控制器30确认固件图像58具有合适质量以被加载到执行存储器54中以供客户端装置12使用。如果验证成功,那么存储器控制器30可将固件图像58加载到执行存储器54中。在一些实施例中,存储器控制器30匹配可与固件相关联地发生。举例来说,固件可将指令作为命令提供到存储器控制器30,以对固件图像58执行前述操作中的一些或全部。
为帮助说明,图4是用于在热复位期间加载固件图像58的过程80的流程图。下文将存储器控制器30描述为执行过程80,但应理解,任何合适处理电路系统可额外地或替代地执行过程80。此外,尽管下文将过程80描述为以特定顺序执行,但应理解,任何合适顺序可用以执行过程80的个别操作。
一般来说,过程80包含存储器控制器,其接收固件提交请求(框82),将更新图像从主机图像缓冲器传输到易失性存储器装置(框84),将图像写入到执行存储器中(框86),并将图像存储到非易失性存储器装置中(框88)。
因此,在框82处,存储器控制器30可接收固件提交请求。固件提交请求可为例如响应于系统崩溃或其它事件而从客户端装置12的控制器传输的命令(例如,控制信号)。在一些操作情形中,可能希望复位或重启客户端装置12的一部分及/或客户端装置12的固件,同时客户端装置12的第二部分保持通电及可操作(例如,热复位而不是冷复位,在冷复位中客户端装置12从断电状态重启)。在此情况中,可备份客户端装置12的固件(例如,存储在非易失性存储器装置32中的固件的图像)以在热复位完成之后被检索。固件提交请求可指定哪个存储器插槽52将客户端装置12的固件图像58存储在存储器中。固件提交请求还可包含图像标头,其定义与固件图像58相关联的其它参数以及固件图像58的图像激活。
在框84处,存储器控制器30可将更新图像从图像缓冲器56传输到易失性存储器装置34。客户端装置12的控制器可响应于确定传输固件提交请求而将固件图像58写入图像缓冲器56。当存储器控制器30接收固件提交请求时,存储器控制器30将对应于来自图像缓冲器56的更新图像的数据写入到存储器插槽52中。任何合适存储器插槽52可用在易失性存储器中,例如存储器插槽52C。
在一些实施例中,存储器控制器30可在继续进行过程80之前验证固件图像58的数据完整性。为有效并且具有合适数据完整性,可验证写入固件图像58使其数据以偏移零开始,连续且不包含任何重叠的数据区。以此方式,在将固件图像58存储到存储器插槽52中之后,存储器控制器30可验证写入固件图像58的签名。这可作为验证操作的部分来执行。为验证写入固件图像58,存储器控制器30可将存储固件图像58的存储器插槽52与固件提交请求的存储器插槽参数进行比较。如果存储器插槽参数与存储固件图像58的存储器插槽52匹配,那么存储器控制器30可继续以验证固件图像58的图像标头及签名,例如加密散列或数字签名。此外,在一些实施例中,存储器控制器30对存储在存储器插槽52中的固件图像58执行CRC操作以验证发生的合适写入。如果验证操作成功,那么存储器控制器30可继续进行过程80。如果验证操作不成功,那么存储器控制器30可从图像缓冲器56重写固件图像58。
在框86处,存储器控制器30可将固件图像58写入到执行存储器54中。存储器控制器30可从易失性存储器装置34的存储器插槽52读取固件图像58并将固件图像58写入执行存储器54中,而无需将固件图像58存储到非易失性存储器装置32中作为中介操作的部分。去除将固件图像58写入到非易失性存储器装置32的中介操作可减少与重新启动客户端装置12的固件图像相关联的激活时间。
在框88处,存储器控制器30可将固件图像58写入到非易失性存储器装置32中。存储器控制器30可将固件图像58写入到非易失性存储器装置32的存储器插槽52中,例如存储器插槽52D。在框84或框88的任一操作中,固件图像58可占据一或多个存储器插槽52,因此存储器控制器30可重复写入操作以将完整固件图像58写入存储器。由于不需要在框86的操作之前发生框88的操作,因此固件图像58可在被写入到非易失性存储器装置32中的同时被写入执行存储器54。经由存储器控制器30的这些系统及方法可允许时序的其它合适组合。举例来说,在起始将固件图像58写入到非易失性存储器装置32之前,可将固件图像58完全写入执行存储器54。此外,在一些情况中,存储器控制器30可开始同时将固件图像58写入非易失性存储器装置32及执行存储器54两者,但一个操作可在另一操作之前完成。
因此,本发明的技术效果包含促进改进存储器写入操作以减少固件图像在客户端装置的热复位期间的激活时间。为此,控制器可经配置以将来自客户端装置的图像从易失性存储器中的存储器插槽写入到易失性存储器中的执行存储器,而无需在写入执行存储器中之前将图像写入到非易失性存储器中的存储器插槽(例如,固件插槽)中的中介操作。易失性存储器的存储器插槽可为用以将图像存储到非易失性存储器中的固件插槽的文件系统区域。考虑到这一点,存储器控制器可在不迟于完成将固件图像写入非易失性存储器的时间的时间将固件图像写入执行存储器(例如,将固件图像写入非易失性存储器不必在将固件图像写入执行存储器可开始之前完成)。
考虑到这些技术效果,可在存储器模块上实施多个存储器装置,借此使存储器装置能够作为一单元通信耦合到处理电路系统。举例来说,双列直插式存储器模块(DIMM)可包含印刷电路板(PCB)及多个存储器装置。存储器模块响应于来自经由通信网络通信耦合到客户端装置或主机装置的存储器控制器的命令。或者在一些情况中,可在存储器-主机接口的主机侧上实施存储器控制器;举例来说,处理器、微控制器、FPGA、ASIC或类似者可各自包含存储器控制器。此通信网络可实现客户端装置与存储器装置之间的数据通信,并且因此使得客户端装置能够利用可通过存储器控制器存取的硬件资源。至少部分基于到客户端装置的用户输入,存储器控制器的处理电路系统可执行一或多个操作以促进客户端装置与存储器装置之间的数据的检索或传输。在客户端装置与存储器装置之间通信的数据可用于多种目的,其包含(但不限于)通过在客户端装置处的图形用户接口(GUI)向用户呈现可视化、处理操作、计算或类似者。因此,考虑到这一点,对存储器控制器操作及存储器写入操作的上文描述的改进可表现为可视化质量(例如,渲染速度、渲染质量)的改进、处理操作的改进、计算的改进或类似者。
已通过实例的方式展示上文描述的特定实施例,并且应理解,这些实施例可能易于进行各种修改及替代形式。应进一步理解,权利要求书并不希望限于所揭示的特定形式,而是覆盖落入本发明的精神及范围内的所有修改、等效物及替代物。
本文中提出及主张的技术被引用并应用于具实用性的实物及具体实例,其明显改进本技术领域且因而并非抽象的、无形的或纯理论的。此外,如果附加于本说明书末尾的任何权利要求书含有指定为“用于[执行功能]的构件”或“用于[执行功能]的步骤”的一或多个要素,那么这些元件希望根据35U.S.C.112(f)解释。然而,对于含有以任何其它方式指定的元件的任何权利要求书,此类要素并不希望根据35U.S.C.112(f)解释。

Claims (20)

1.一种设备,其包括:
易失性存储器装置,其包括:
执行存储器,其经配置以在第一时间存储固件图像用于在迟于所述第一时间的第二时间进行检索;及
存储器插槽;
非易失性存储器装置;及
存储器控制器,其经配置以耦合到客户端装置的图像缓冲器并且经配置以:
在所述第一时间将存储在所述图像缓冲器中的所述固件图像写入所述执行存储器;及
在第三时间将所述固件图像写入到所述非易失性存储器装置中,其中所述第三时间不早于所述第一时间。
2.根据权利要求1所述的设备,其中所述执行存储器经配置以存储所述固件图像用于在完成热复位之后进行检索,其中所述热复位是通信耦合到所述易失性存储器装置的客户端装置的复位,其中所述客户端装置未断电。
3.根据权利要求1所述的设备,其中所述存储器控制器经配置以:
接收至少部分基于所述固件图像产生的命令,其中在将所述固件图像写入所述存储器插槽时引用所述命令;及
基于指定所述存储器插槽的所述命令而将所述固件图像存储到所述存储器插槽中。
4.根据权利要求3所述的设备,其中所述命令指定来自所述易失性存储器装置的多个存储器插槽的所述存储器插槽,且其中所述命令的存储器插槽参数用以验证存储在所述存储器插槽中的写入固件图像是否包括有效数据。
5.根据权利要求3所述的设备,其中所述存储器控制器经配置以将所述固件图像的至少一部分存储到所述存储器插槽中,且将所述固件图像的其余部分存储到所述易失性存储器的额外存储器插槽中。
6.根据权利要求1所述的设备,其中所述非易失性存储器装置包含闪存、NAND存储器、相变存储器、3D XPointTM存储器或铁电随机存取存储器中的至少一者或其任何组合。
7.根据权利要求1所述的设备,其中所述存储器控制器经配置以在将所述固件图像写入到所述执行存储器中之前将所述固件图像从所述图像缓冲器写入所述存储器插槽。
8.根据权利要求1所述的设备,其中所述存储器控制器经配置以:
至少部分通过执行循环冗余校验CRC操作来验证存储在所述执行存储器中的所述固件图像是否包括有效数据;及
响应于验证所述固件图像包括有效数据,响应于接收所述客户端装置的热复位已完成的通知,将所述固件图像写入所述客户端装置的所述图像缓冲器。
9.根据权利要求1所述的设备,其中所述执行存储器经配置以在所述非易失性存储装置存储所述固件图像之前存储所述固件图像。
10.一种方法,其包括:
从客户端装置接收固件提交请求;
在第一时间,将定义所述客户端装置的一部分的操作的固件图像写入到易失性存储器的执行存储器中;及
在第二时间将所述固件图像写入到非易失性存储器的存储器插槽中。
11.根据权利要求10所述的方法,其包括:
在将所述固件图像的第一部分写入到所述执行存储器之后,将所述固件图像写入到所述非易失性存储器的所述存储器插槽中。
12.根据权利要求10所述的方法,其包括:
执行循环冗余校验CRC操作以验证写入固件图像包括所述固件图像,其中所述写入固件图像在所述第一时间之后存储在所述易失性存储器的所述执行存储器中。
13.根据权利要求12所述的方法,其包括:
对所述写入固件图像执行额外验证操作,其包括以下中的至少一者:
验证所述写入固件图像的标头;
验证所述写入固件图像的加密标头;
验证所述写入固件图像的签名;
验证所述写入固件图像的数据从零开始;
验证所述写入固件图像的所述数据包括连续数据;或
验证所述写入固件图像的所述数据不包括所述数据的重叠区部分。
14.根据权利要求10所述的方法,其包括:
在将所述固件图像写入到所述易失性存储器的所述执行存储器之前,将所述固件图像从客户端装置的图像缓冲器写入所述易失性存储器的存储器插槽。
15.根据权利要求10所述的方法,其包括:
在将所述固件图像写入所述非易失性存储器之前,将所述固件图像写入所述执行存储器。
16.一种系统,其包括:
处理电路系统,其经配置以耦合到外部装置的图像缓冲器;及
存储器,其包括一或多个有形非暂时性机器可读媒体,并且经配置以存储可由所述处理电路系统执行的指令,其中在执行所述指令之后,所述处理电路系统经配置以:
从客户端装置接收固件提交请求;
至少部分基于所述固件提交请求,将固件图像从所述客户端装置写入易失性存储器的存储器插槽中;
在第一时间将所述固件图像写入与非易失性存储器分离的执行存储器中,其中将所述固件图像从所述易失性存储器的所述存储器插槽传输到所述执行存储器中;及
在第二时间将所述固件图像写入到所述非易失性存储器中。
17.根据权利要求16所述的系统,其中所述处理电路系统还进一步经配置以:
读取所述固件提交请求的存储器插槽参数;
验证所述存储器插槽等于所述存储器插槽参数;及
响应于所述存储器插槽等于所述存储器插槽参数,将所述固件图像写入与非易失性存储器分离的所述执行存储器中,其中将所述固件图像从所述易失性存储器的所述存储器插槽传输到所述执行存储器中。
18.根据权利要求16所述的系统,其中所述第二时间在所述第一时间之后。
19.根据权利要求18所述的系统,其中所述第二时间充分地在所述第一时间之后,使得所有所述固件图像在所述第二时间之前被写入到所述执行存储器中。
20.根据权利要求16所述的系统,其中所述非易失性存储器包括3D XPointTM存储器。
CN202010975469.2A 2019-09-26 2020-09-16 用于减少固件激活时间的技术 Active CN112559056B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/584,261 2019-09-26
US16/584,261 US11379024B2 (en) 2019-09-26 2019-09-26 Systems and methods capable of bypassing non-volatile memory when storing firmware in execution memory

Publications (2)

Publication Number Publication Date
CN112559056A true CN112559056A (zh) 2021-03-26
CN112559056B CN112559056B (zh) 2024-04-30

Family

ID=75041011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010975469.2A Active CN112559056B (zh) 2019-09-26 2020-09-16 用于减少固件激活时间的技术

Country Status (2)

Country Link
US (2) US11379024B2 (zh)
CN (1) CN112559056B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379024B2 (en) * 2019-09-26 2022-07-05 Micron Technology, Inc. Systems and methods capable of bypassing non-volatile memory when storing firmware in execution memory
KR20210144180A (ko) * 2020-05-21 2021-11-30 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
EP4158471A4 (en) * 2020-05-29 2024-02-14 Hewlett Packard Development Co BIOS CONFIGURATIONS VIA PROVISION DEVICES
US11842059B2 (en) * 2021-09-01 2023-12-12 Micron Technology, Inc. Memory sub-system address mapping

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070055969A1 (en) * 2005-09-06 2007-03-08 Benq Corporation System and method for updating firmware
US20090083733A1 (en) * 2007-09-24 2009-03-26 Di Ling Chen Installing Software onto a Client through a Network, and Corresponding Client
CN110073355A (zh) * 2016-12-13 2019-07-30 亚马逊技术股份有限公司 服务器上的安全执行环境

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976058B1 (en) * 2000-09-29 2005-12-13 Hewlett-Packard Development Company, L.P. Computer card for storing bootable images and providing remote management functions
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
US7617502B2 (en) * 2002-11-06 2009-11-10 Scientific-Atlanta, Llc Managing peripheral device drivers
US7756833B2 (en) * 2004-09-22 2010-07-13 Microsoft Corporation Method and system for synthetic backup and restore
US7631175B2 (en) * 2006-02-21 2009-12-08 Microsoft Corporation Control protocol for image enumeration and transfer
JP4944686B2 (ja) * 2007-06-28 2012-06-06 ソニーモバイルコミュニケーションズ株式会社 ソフトウェア更新方法および携帯端末装置
US7925877B2 (en) * 2007-09-27 2011-04-12 Texas Instruments Incorporated Method, system and apparatus for providing a boot loader of an embedded system
US8200800B2 (en) * 2009-03-12 2012-06-12 International Business Machines Corporation Remotely administering a server
JP2014182417A (ja) * 2013-03-18 2014-09-29 Fujitsu Ltd ファイルシステム検証方法、ファイルシステム検証プログラム、および情報処理装置
JP6226709B2 (ja) * 2013-11-15 2017-11-08 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
US10157190B2 (en) * 2016-03-28 2018-12-18 Microsoft Technology Licensing, Llc Image action based on automatic feature extraction
US11101014B2 (en) * 2019-03-14 2021-08-24 Micron Technology, Inc. Two-stage flash programming for embedded systems
US11379024B2 (en) * 2019-09-26 2022-07-05 Micron Technology, Inc. Systems and methods capable of bypassing non-volatile memory when storing firmware in execution memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070055969A1 (en) * 2005-09-06 2007-03-08 Benq Corporation System and method for updating firmware
US20090083733A1 (en) * 2007-09-24 2009-03-26 Di Ling Chen Installing Software onto a Client through a Network, and Corresponding Client
CN110073355A (zh) * 2016-12-13 2019-07-30 亚马逊技术股份有限公司 服务器上的安全执行环境

Also Published As

Publication number Publication date
US11379024B2 (en) 2022-07-05
US20210096621A1 (en) 2021-04-01
US11775038B2 (en) 2023-10-03
US20220326749A1 (en) 2022-10-13
CN112559056B (zh) 2024-04-30

Similar Documents

Publication Publication Date Title
CN112559056B (zh) 用于减少固件激活时间的技术
US11099831B2 (en) Firmware update in a storage backed memory system
US20150100744A1 (en) Methods and apparatuses for requesting ready status information from a memory
US10649692B2 (en) Storage device, system including the same and method of operating the same
EP2664990A1 (en) Method and device for implementing memory migration
CN111684408B (zh) 多存储器类型存储器模块系统和方法
KR20110007571A (ko) 듀얼 인라인 메모리 모듈의 상변화 메모리
CN111831220B (zh) 用于存储器写入操作的设备、方法和存储器模块
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US20230185480A1 (en) Ssd-based log data storage method and apparatus, device and medium
CN104423888A (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
CN103984565A (zh) 文件系统预提取的方法与电子装置以及启动方法
JP2024511385A (ja) コピーオンライトを使用するon-SSDコピー技法
US20130159604A1 (en) Memory storage device and memory controller and data writing method thereof
US20170371785A1 (en) Techniques for Write Commands to a Storage Device
US20230004320A1 (en) Method of managing debugging log in storage device
TW202011203A (zh) 指令處理方法及使用所述方法的儲存控制器
US10642684B1 (en) Memory command interleaving
US20100153622A1 (en) Data Access Controller and Data Accessing Method
US11681638B2 (en) Method of synchronizing time between host device and storage device and system performing the same
US11783893B2 (en) Utilizing NAND buffer for DRAM-less multilevel cell programming
CN109445686B (zh) 一种存储磁盘以及存取数据的方法
US10489077B2 (en) Systems and methods for controlling metapage storage on data storage devices
US10628258B2 (en) Die-level error recovery scheme
TWI622044B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant