CN109542491B - 用于后台固件更新的方法和装置 - Google Patents
用于后台固件更新的方法和装置 Download PDFInfo
- Publication number
- CN109542491B CN109542491B CN201811107302.3A CN201811107302A CN109542491B CN 109542491 B CN109542491 B CN 109542491B CN 201811107302 A CN201811107302 A CN 201811107302A CN 109542491 B CN109542491 B CN 109542491B
- Authority
- CN
- China
- Prior art keywords
- volatile memory
- firmware update
- firmware
- power
- booting
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
Abstract
本公开整体涉及在损耗均衡位置中缓存新固件下载,该损耗均衡位置可适于进行超过几百次的下载。
Description
相关申请的交叉引用
本申请要求2017年9月21日提交的美国临时申请62/561,611的优先权,其全部内容以引用方式并入本文。
背景技术
技术领域
本公开的实施方案总体涉及存储设备和操作存储设备的方法。更具体地讲,本公开的实施方案提供了执行后台固件更新的方法和装置。
相关技术说明
固件配备有计算机装置,以允许装置执行所需的功能。计算机装置随着使用年限的增加,可能需要执行与最初预期不同的任务,或者原始固件可能尚未被无误差地写入。由于可能出现这些情况中的任一种,有时需要更新固件。对存储设备的固件更新可能是具有挑战性的,因为必须格外小心,不仅要写入固件,而且还要正确实施可能在全球范围内运行的装置的固件。
当需要将固件更新下载到设备时,下载通常是功率安全的但响应时间长,或者快速但不是功率安全的。功率安全被理解为在功率损耗的情况下是安全的,其中设备不会受到可能损坏的固件的损害,使得设备不可用。更多数据和代码用于运行存储设备(例如,SSD设备),但是为了具有更多数据和代码,通常需要更多下载时间。
在其他传统方法中,加载固件的功率安全方法包括将固件包写入快速形式的非易失性介质(即,非损耗均衡的单层单元(“SLC”)NAND)。然而,这种方法的一个缺点是由于低NAND耐久性,终身期产品下载仅限于几百次下载。对新固件使用非损耗均衡(“SLC”)NAND位置也会增加固件的复杂性,以管理读取干扰效应,从而导致这些插槽中NAND耐久性的额外命中以及可能的脱机固件随时间推移降级。SLC NAND位置也比多层单元(“MLC”)或三层单元(“TLC”)更昂贵。
需要具有可存储在存储器中的功率安全下载,其可承受超过几百次下载。
还需要提供对用户和制造商都经济的功率安全下载容量。
发明内容
本公开总体涉及在损耗均衡位置缓存新固件下载,其中所述位置能够适于进行超过几百次的下载。
在一个非限制性实施方案中,一种执行后台固件更新的方法,包括:从第一非易失性存储器引导部分引导具有原始固件的设备,在从非易失性存储器引导设备期间下载固件更新,将固件更新从非易失性存储器发送到非易失性存储器引导部分使得设备的连续引导将使用固件更新,以及从非易失性存储器引导部分擦除原始固件。
在另一个非限制性实施方案中,公开了一种装置,包括用于从第一非易失性存储器引导部分引导具有原始固件的设备的装置,用于在从非易失性存储器引导设备期间下载固件更新的装置,以及用于将固件更新从非易失性存储器发送到非易失性存储器引导部分使得设备的连续引导将使用固件更新的装置。
在另一个非限制性实施方案中,公开了一种执行固态设备的后台固件更新的方法,包括:执行固态设备的上电程序,从第一非易失性存储器引导部分引导具有原始固件的固态设备,检查第二非易失性存储器中的固件更新,在固件更新的检查指示存在固件更新时从非易失性存储器引导固态设备期间,通过接口从第二非易失性存储器下载固件更新;将固件更新从第二非易失性存储器发送到第一非易失性存储器引导部分使得设备的连续引导将使用固件更新,并且从非易失性存储器引导部分擦除原始固件。
在另一个非限制性实施方案中,公开了一种用于执行后台固件更新的装置,包括:用于执行固态设备的上电程序的装置;用于从第一非易失性存储器引导部分引导具有原始固件的固态设备的装置,用于检查第二非易失性存储器中的固件更新的装置,用于在固件更新的检查指示存在固件更新时从非易失性存储器引导固态设备期间通过接口从第二非易失性存储器下载固件更新的装置,用于将固件更新从第二非易失性存储器发送到第一非易失性存储器引导部分使得设备的连续引导将使用固件更新的装置,以及用于从非易失性存储器引导部分擦除原始固件的装置。
在另一个非限制性实施方案中,公开了一种装置,包括:第一非易失性存储器、第二非易失性存储器,被配置为从装置传输和接收数据的接口,以及被配置为通过接口将固件更新下载到第二非易失性存储器的控制器,其中该控制器被进一步配置为在后台环境中将固件从第二非易失性存储器复制到第一非易失性存储器。
附图说明
为了可以详细地理解本公开的上述特征的方式,可通过参考实施方案获得上面简要概述的本公开的更具体的描述,其中一些实施方案在附图中示出。然而,应当注意,附图仅示出了本公开的典型实施方案,因此不应视为限制本公开的范围,因为本公开可允许其他同等有效的实施方案。
图1是根据一个实施方案的设备的示意图。
图2是根据一个实施方案的使用损耗均衡存储器对存储设备进行功率安全引导的方法的示意图。
为了便于理解,在可能的情况下,使用相同的附图标记来表示附图中共有的相同元件。可以设想,在一个实施方案中公开的元件可有利地用于其他实施方案而无需详述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应该理解,本公开不限于具体描述的实施方案。相反,预期由以下特征和元素的任何组合(无论是否与不同实施方案相关)实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能的解决方案和/或优于现有技术的优点,但是否通过给定实施方案实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且除非在权利要求中书明确地陈述,否则不被认为是所附权利要求书的元素或限制。同样,对“本公开”的引用不应被解释为本文公开的任何发明主题的概括,并且除非在权利要求书中明确地陈述,否则不应被认为是所附权利要求书的元素或限制。
本公开整体般涉及在损耗均衡位置缓存新固件下载,其中所述位置能够适于进行超过几百次的下载。
图1是根据一个实施方案的设备100的示意图。该设备包括主机设备102和存储设备104。主机设备102以物理的和电的方式两者通过包含一个或多个物理设备108A至108N的接口106耦接到存储设备104。在其他实施方案中,设备100可以仅从数据传输能力连接,使得数据可以从主机设备102发送到存储设备104,反之亦然。
主机设备102包括控制器110以及本地存储设备112诸如内部存储器。存储设备104还包括控制器114,该控制器耦接到接口106以及一个或多个高速或快速非易失性存储器设备116A至116N和一个或多个易失性存储器设备118A至118N两者并与之通信。稍后将描述控制器114的细节。
在实施方案中,提供电源120。在至少一个实施方案中,电源120耦接到接口106和控制器114。控制器114包括一个或多个处理器122A至122N。另外,控制器114耦接到一个或多个低速非易失性存储器设备124A至124N。低速非易失性存储器设备124A至124N的示例是NOR,并且高速或快速非易失性存储器设备116A至116N的示例是NAND。应当理解,当被描述为非易失性存储器设备时,该设备可以根据需要是独立单元、芯片、卡或其他形状因数。
在一些示例中,存储设备104可以包括图1中为清楚起见未示出的附加部件。例如,存储设备104可以包括机械地附接至存储设备104的部件的印刷板(PB),并且该印刷板包括将存储设备104的部件电气互连的导电迹线等。在一些示例中,存储设备104的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因数包括但不限于3.5"硬盘驱动器(HDD)、2.5"HDD、1.8"HDD、外围部件互连(PCI)、扩展PCI(PCI-X)、PCIExpress(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe迷你卡、MiniPCI等)。在一些示例中,存储设备104可以直接耦接(例如,直接焊接)到主机设备102的主板。
接口106可以根据任何合适的协议操作。例如,接口106可以根据以下协议中的一个或多个操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤通道、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、外围部件互连(PCI)、PCI-express或非易失性高速存储器(NVMe)。接口106的电连接件(例如,数据总线、控制总线或两者)电连接到控制器114,提供主机设备102和控制器114之间的电连接,允许在主机设备102和控制器114之间交换数据。在一些示例中,接口106的电连接还可以允许存储设备104从主机设备102接收电力。例如,如图1所示,电源120可以经由接口106从主机设备102接收电力。
存储设备104可以包括电源120,电源可以向存储设备104的一个或多个部件提供电力。当以标准模式操作时,电源120可以使用由外部设备诸如主机设备102提供的电力向一个或多个部件供电。例如,电源120可以使用经由接口106从主机设备102接收的电力向一个或多个部件供电。在一些示例中,电源120可以包括一个或多个电力存储部件,其被配置为当在关闭模式(例如,在停止从外部设备接收电力的情况下)下操作时向一个或多个部件提供电力。这样,电源120可以用作机载备用电源。所述一个或多个电力存储部件的一些示例包括但不限于电容器、超级电容器、电池等。在一些示例中,可由一个或多个电力存储部件存储的电量可以是一个或多个电力存储部件的成本和/或尺寸(例如,面积/体积)的函数。换句话说,随着由一个或多个电力存储部件存储的电量增加,一个或多个电力存储部件的成本和/或尺寸也增加。在环境条件允许这种使用的情况下,可以执行物品诸如超级电容器的使用。
存储设备104包括一个或多个易失性存储设备118A至118N,其可以由控制器114用于临时存储信息。在一些示例中,控制器114可以使用一个或多个易失性存储器设备118A至118N作为高速缓存。易失性存储器设备在本文中定义为当从设备移除或切断电源时数据丢失的设备。例如,控制器114可以将高速缓存的信息存储在一个或多个易失性存储器设备118A至118N中,直到高速缓存信息被写入一个或多个非易失性存储器设备116A至116N。所述一个或多个易失性存储器设备118A至118N可以消耗从电源120接收的电力,以维持存储在一个或多个易失性存储器设备118A至118N中的数据。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4等))。
存储设备104包括控制器114,该控制器可以管理存储设备104的一个或多个操作。例如,控制器114可以管理从一个或多个非易失性存储器设备116A至116N或一个或多个易失性存储器设备118A至118N读取数据和/或将数据写入其中。在一些示例中,控制器114可通过与一个或多个非易失性存储器设备116A至116N或一个或多个易失性存储器设备118A至118N交换信号,管理从一个或多个非易失性存储器设备116A至116N或一个或多个易失性存储器设备118A至118N读取数据和/或将数据写入其中。如上所述,控制器114可根据通信协议与一个或多个非易失性存储器设备116A至116N或一个或多个易失性存储器设备118A至118N交换信号。
控制器114包括一个或多个处理器122A至122N。处理器122A至122N可以被配置为执行任务。这些任务可以是不同类型的,并且在一些示例中,每个相应类型的任务可以在等待由处理器122A至122N执行时存储在相应任务队列中或与相应任务队列相关联。不同类型的任务可包括例如前端任务,该前端任务可包括接收和解译从主机设备102接收的指令。其他类型的任务,包括高速缓存;后端任务,该后端任务可包括从非易失性存储器116读取数据或将数据写入其中;内务处理,该内务处理可包括垃圾收集、磨损均衡、TRIM等;以及系统任务。在一些示例中,处理器122A至122N可被称为计算机单元、处理单元、核或中央处理单元(CPU)。
如下面将更详细讨论的,将下载的固件分组高速缓存在NAND中客户空间保留区域上的磨损均衡位置允许更低的成本和更高的耐久性。在将固件下载到NAND之后,然后可以在下载状态已经返回到主机设备102之后在后台将高速缓存的固件同步到NOR。客户空间保留区域是能够进行多次下载(即下载量达到30k或更多)的地方。客户空间保留区域的一个示例是通用介质或快速访问的任何通用存储器,诸如相变存储器(PCM)或硬盘驱动器(HDD)。在实施方案中,客户空间保留区域是引导可访问介质,并且是可以快速写入的区域。此外,客户空间保留区域是在启动主机设备时不立即启动的存储器。在完成与NOR的同步之前发生的任何启动过程将执行双启动过程,其中原始固件将启动并查找在NAND(或客户空间保留区域)上高速缓存的更新的固件,并且其中设备加载并启动高速缓存的固件。从NAND到NOR的同步在后台发生,因此最大限度地减少了对处理器和数据总线的需求。固件同步一旦完成,NAND(或客户空间保留区域)上的固件副本将被删除,并且不再需要双启动。因此,NAND的速度可随着NOR的耐久性而加快。通过从NAND副本读取固件的部分(“区块”)来写入NOR并且在主机输入/输出(“I/O”)空闲时间允许时将这些区块写入来完成后台同步。可以使用服务质量(“QoS”)机制来确保固件后台同步将在一定时间内完成,而不管主机I/O如何。
本公开的优点包括为存储设备提供针对产品或固件下载的NOR的耐久性、针对整体下载时间的NAND的速度,以及针对专用SLC NAND区域的较低产品成本。此外,所提供的方法允许电力安全操作,为最终用户提供更高的可靠性。
图2是根据一个非限制性实施方案的使用磨损均衡存储器对存储设备进行功率安全启动的方法200的示意图。该方法在项目202处开始,其中存储设备104开始上电程序。此后,在项目204中,控制器114读取驻留在慢速非易失性存储器(诸如NOR存储设备)中的现有固件。项目206中,存储设备104利用存储在NOR存储设备上的固件开始启动。在项目208中,当存储设备正在启动时,控制器114检查其他存储设备以查看是否存在新固件。如果在项目210中没有固件,则在项目212中通过NOR继续启动。然而,如果存在检测到的固件,则将新固件加载到存储器中并在214处启动。一旦完成双启动到最新固件,最新固件到NOR的后台同步可以如下所述进行。然后,在项216中,将新固件写入NOR,使得随后的启动将通过NOR发生。在216中写入新固件在后台发生,从而最小程度地影响处理器功能和总线功能。如果在项目216期间存在功率损耗,则新固件仍然在高速缓存中,因此从项目202开始的过程将能够正常进行,因而该过程是功率安全的。一旦将新固件写入NOR,一旦同步完成,便可以删除NAND中的副本。
通过使用客户空间预留区域存储设备上的磨损均衡位置,存储设备可以无故障地处理数千个固件更新。此外,该固件更新既电力安全又比直接写入到NOR快。
在一个非限制性实施方案中,公开了一种执行后台固件更新的方法,包括:从第一存储器引导部分引导具有原始固件的设备;在从非易失性存储器引导所述设备期间下载固件更新;将所述固件更新从所述非易失性存储器传输到第二引导部分,使得所述设备的连续引导将使用所述固件更新;以及从所述第一非易失性存储器引导部分擦除所述原始固件。
在另一个非限制性实施方案中,执行所述后台固件更新的所述方法被执行,其中所述非易失性存储器引导部分是NOR存储器。
在另一个非限制性实施方案中,所述方法可被执行,其中在从所述非易失性存储器引导所述设备期间所述固件更新的所述下载是到第二非易失性存储器。
在另一个非限制性实施方案中,执行所述后台固件更新的所述方法可被执行,其中所述第二非易失性存储器是NAND闪存存储器。
在另一个非限制性实施方案中,执行所述后台固件更新的所述方法可被执行,其中NAND闪存存储器是单级单元存储器。
在另一个非限制性实施方案中,执行所述后台固件更新的所述方法可被执行,其中在从所述非易失性存储器引导所述设备期间所述固件更新的所述下载是到第二非易失性存储器。
在另一个非限制性实施方案中,执行所述后台固件更新的所述方法还可包括在从所述第一非易失性存储器引导部分引导具有所述原始固件的所述设备之前,为所述设备执行上电程序。
在另一个非限制性实施方案中,执行所述后台固件更新的所述方法可被执行,其中在从所述第一非易失性存储器引导部分引导具有所述原始固件的所述设备之前为所述设备执行上电程序是由控制器执行的。
在另一个非限制性实施方案中,公开了一种装置,包括用于从第一非易失性存储器引导部分引导具有原始固件的设备的装置,用于在从所述非易失性存储器引导所述设备期间下载固件更新的装置,和用于将所述固件更新从所述非易失性存储器传输到所述非易失性存储器引导部分使得所述设备的连续引导将使用所述固件更新的装置。
在另一个非限制性实施方案中,所述装置还可包括用于从非易失性存储器引导部分擦除原始固件的装置。
在另一个非限制性实施方案中,所述装置还可包括用于在从所述第一非易失性存储器引导部分引导具有所述原始固件的所述设备之前,为所述设备执行上电程序的装置。
在另一个非限制性实施方案中,公开了一种执行固态设备的后台固件更新的方法,包括:为所述固态设备执行上电程序;从第一非易失性存储器引导部分引导具有原始固件的所述固态设备;检查第二非易失性存储器中的固件更新;当对所述固件更新的所述检查指示存在所述固件更新时,在从所述非易失性存储器引导所述固态设备期间,通过接口,从所述第二非易失性存储器下载固件更新;将所述固件更新从所述第二非易失性存储器传输到所述第一非易失性存储器引导部分,使得所述设备的连续引导将使用所述固件更新;以及从所述非易失性存储器引导部分擦除所述原始固件。
在另一个非限制性实施方案中,所述方法可被执行,其中所述第一非易失性存储器引导部分为NOR存储器。
在另一个非限制性实施方案中,所述方法可被实现,其中所述第二非易失性存储器为NAND存储器。
在另一个非限制性实施方案中,所述方法可被实现,其中所述第二非易失性存储器为单级单元NAND存储器。
在另一个非限制性实施方案中,所述方法可被实现,其中对所述固件更新的所述检查是通过控制器执行的。
在另一个非限制性实施方案中,所述方法可被实现,其中所述控制器具有至少一个处理器。
在另一个非限制性实施方案中,所述方法可被实现,其中将所述固件更新从所述第二非易失性存储器传输到所述第一非易失性存储器引导部分使得所述设备的连续引导将使用所述固件更新是在后台环境中完成的。
在另一个非限制性实施方案中,公开了一种用于执行后台固件更新的装置,包括:用于从第一非易失性存储器引导部分引导具有原始固件的所述固态设备的装置,用于检查第二非易失性存储器中的固件更新的装置,用于当对所述固件更新的所述检查指示存在固件更新时,在从所述非易失性存储器引导所述固态设备期间,通过接口从所述第二非易失性存储器下载固件更新的装置,用于将所述固件更新从所述第二非易失性存储器传输到所述第一非易失性存储器引导部分使得所述设备的连续引导将使用所述固件更新的装置和用于从所述非易失性存储器引导部分擦除所述原始固件的装置。
在另一个非限制性实施方案中,所述装置可被配置为其中所述第一非易失性存储器引导部分为NOR存储器。
在另一个非限制性实施方案中,所述装置可被配置为其中所述第二非易失性存储器为NAND存储器。
在另一个非限制性实施方案中,所述装置可被配置为其中所述第二非易失性存储器为单级单元NAND存储器。
在另一个非限制性实施方案中,所述装置可被配置为其中对所述固件更新的所述检查是通过控制器执行的。
在另一个非限制性实施方案中,所述装置可被配置为其中所述控制器具有至少一个处理器。
在另一个非限制性实施方案中,所述装置可被配置为其中将所述固件更新从所述第二非易失性存储器传输到所述第一非易失性存储器引导部分使得所述设备的连续引导将使用所述固件更新是在后台环境中完成的。
在另一个非限制性实施方案中,所述装置还可包括用于为所述固态设备执行上电程序的装置。
在另一个非限制性实施方案中,公开了一种装置,包括第一非易失性存储器、第二非易失性存储器、被配置为从所述装置传输并接收数据的接口和被配置为通过所述接口将固件更新下载到所述第二非易失性存储器的控制器,其中所述控制器被进一步配置为在后台环境中将所述固件从所述第二非易失性存储器复制到所述第一非易失性存储器。
在另一个非限制性实施方案中,所述装置可被配置为其中所述第一非易失性存储器为NOR存储器并且所述第二非易失性存储器为NAND存储器。
本公开中所描述的技术可至少部分地在硬件、软件、固件或它们的任何组合中实现。例如,所述技术的各个方面可在一个或多个处理器内实现,所述一个或多个处理器包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效集成电路或分立逻辑电路,以及此类部件的任何组合。术语“处理器”或“处理电路”一般可指任何单独的前述逻辑电路,或其与其他逻辑电路或任何其他等效电路的结合。包括硬件的控制单元也可执行本公开的一种或多种技术。
此类硬件、软件和固件可在同一设备内或在独立设备内实现以支持本公开所描述的各种技术。此外,所描述的单元、模块或部件中的任一者可一起被实现或作为分立但可互操作的逻辑设备被单独实现。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着此类模块或单元必须通过单独的硬件、固件或软件部件来实现。相反,与一个或多个模块或单元相关联的功能可通过单独的硬件、固件或软件部件或集成在公共或独立硬件、固件或软件部件内来执行。
本公开中所描述的技术还可以体现或编码在制品中,所述制品包括编码有指令的计算机可读存储介质。嵌入或编码在包括经编码的计算机可读存储介质的制品中的指令可使得一个或多个可编程处理器或其他处理器实现本文所述技术中的一者或多者,诸如当包括或编码在计算机可读存储介质中的指令由一个或多个处理器执行时。计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器、硬盘、光盘ROM(CD-ROM)、软盘、磁带、磁介质、光学介质或其他计算机可读介质。在一些示例中,制品可包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可包括非暂时性介质。术语“非暂时性”可指示存储介质未体现在载波或传播信号中。在某些示例中,非暂时性存储介质可存储能够随时间推移而变化的数据(例如,在RAM或高速缓存中)。
虽然前述内容涉及本公开的实施方案,但在不脱离本公开的基本范围的前提下,可设计本公开的其他和另外的实施方案,并且其范围由以下权利要求所确定。
Claims (25)
1.一种执行后台固件更新的功率安全的方法,其中功率安全包括在功率损耗的情况下确保所述后台固件更新是安全的,使得设备不会受到可能损坏的固件的损害而造成所述设备不可用,所述功率安全的方法包括:
从第一非易失性存储器的第一引导部分利用原始固件引导设备;
在从所述第一非易失性存储器引导所述设备期间下载固件更新,所述下载发生于第二非易失性存储器的磨损均衡的客户空间保留区域,其中所述第二非易失性存储器具有比所述第一非易失性存储器高的速度;
从所述第二非易失性存储器的所述磨损均衡的客户空间保留区域利用所述固件更新引导所述设备;
将所述固件更新从所述第二非易失性存储器传输到所述第一非易失性存储器的第二引导部分,使得所述设备的连续引导将使用存储在所述第二引导部分中的所述固件更新,其中在输入/输出空闲时间期间在所述固件更新的一个或多个部分中执行所述传输;以及
从所述第一非易失性存储器的所述第一引导部分擦除所述原始固件。
2.根据权利要求1所述的执行所述后台固件更新的功率安全的方法,其中所述第一非易失性存储器为NOR存储器。
3.根据权利要求1所述的执行所述后台固件更新的功率安全的方法,其中所述第二非易失性存储器是NAND闪存存储器。
4.根据权利要求3所述的执行所述后台固件更新的功率安全的方法,其中所述NAND闪存存储器为单级单元存储器。
5.根据权利要求1所述的执行所述后台固件更新的功率安全的方法,还包括:
在从所述第一非易失性存储器的所述第一引导部分利用所述原始固件引导所述设备之前,为所述设备执行上电程序。
6.根据权利要求5所述的执行所述后台固件更新的功率安全的方法,其中在从所述第一非易失性存储器的所述第一引导部分利用所述原始固件引导所述设备之前为所述设备执行上电程序是由控制器执行的。
7.一种用于执行后台固件更新的装置,其中功率安全包括在功率损耗的情况下确保所述后台固件更新是安全的,使得设备不会受到可能损坏的固件的损害而造成所述设备不可用,所述装置包括:
用于从第一非易失性存储器的第一引导部分利用原始固件引导设备的装置;
用于在从所述第一非易失性存储器引导所述设备期间下载固件更新的装置,所述下载发生于第二非易失性存储器的磨损均衡的客户空间保留区域,其中所述第二非易失性存储器具有比所述第一非易失性存储器高的速度;
用于从所述第二非易失性存储器的所述磨损均衡的客户空间保留区域利用所述固件更新引导所述设备的装置;和
用于将所述固件更新从所述第二非易失性存储器传输到所述第一非易失性存储器的第二引导部分使得所述设备的连续引导将使用存储在所述第二引导部分中的所述固件更新的装置,其中在输入/输出空闲时间期间在所述固件更新的一个或多个部分中执行所述传输。
8.根据权利要求7所述的装置,还包括:
用于从所述第一非易失性存储器的所述第一引导部分擦除所述原始固件的装置。
9.根据权利要求8所述的装置,还包括:
用于在从所述第一非易失性存储器的所述第一引导部分利用所述原始固件引导所述设备之前为所述设备执行上电程序的装置。
10.一种用于为固态设备执行后台固件更新的功率安全的方法,所述固态设备包括第一非易失性存储器和第二非易失性存储器,其中所述第一非易失性存储器具有比所述第二非易失性存储器高的速度,其中功率安全包括在功率损耗的情况下确保所述后台固件更新是安全的,使得所述固态设备不会受到可能损坏的固件的损害而造成所述固态设备不可用,所述功率安全的方法包括:
发起从所述第二非易失性存储器利用原始固件引导所述固态设备;
检查固件更新;
确定所述固件更新存储在所述第一非易失性存储器中;
将所述固件更新加载到所述第一非易失性存储器的磨损均衡的客户空间保留区域;
从所述第一非易失性存储器的所述磨损均衡的客户空间保留区域利用所述固件更新引导所述固态设备;
在利用所述固件更新引导所述固态设备完成之后,将所述固件更新从所述第一非易失性存储器的所述磨损均衡的客户空间保留区域传输到所述第二非易失性存储器,使得所述固态设备的连续引导将使用存储在所述第二非易失性存储器中的所述固件更新,其中在输入/输出空闲时间期间在所述固件更新的一个或多个部分中执行所述传输;以及
从所述第二非易失性存储器擦除所述原始固件。
11.根据权利要求10所述的功率安全的方法,其中所述第二非易失性存储器为NOR存储器。
12.根据权利要求10所述的功率安全的方法,其中所述第一非易失性存储器为NAND存储器。
13.根据权利要求12所述的功率安全的方法,其中所述第一非易失性存储器是单级单元NAND存储器。
14.根据权利要求12所述的功率安全的方法,其中对所述固件更新的所述检查是通过控制器执行的。
15.根据权利要求14所述的功率安全的方法,其中所述控制器具有至少一个处理器。
16.根据权利要求12所述的功率安全的方法,其中将所述固件更新从所述第一非易失性存储器的所述磨损均衡的客户空间保留区域传输到所述第二非易失性存储器使得所述固态设备的连续引导将使用在后台环境中完成的所述固件更新。
17.一种用于为固态设备执行功率安全的后台固件更新的装置,所述固态设备包括第一非易失性存储器和第二非易失性存储器,其中所述第一非易失性存储器具有比所述第二非易失性存储器高的速度,其中功率安全包括在功率损耗的情况下确保所述后台固件更新是安全的,使得所述固态设备不会受到可能损坏的固件的损害而造成所述固态设备不可用,所述装置包括:
用于发起从所述第二非易失性存储器利用原始固件引导所述固态设备的装置;
用于检查固件更新的装置;
用于确定所述固件更新存储在所述第一非易失性存储器中的装置;
用于将所述固件更新加载到所述第一非易失性存储器的磨损均衡的客户空间保留区域的装置;
用于从所述第一非易失性存储器的所述磨损均衡的客户空间保留区域利用所述固件更新引导所述固态设备的装置;
用于在利用所述固件更新引导所述固态设备完成之后将所述固件更新从所述第一非易失性存储器的所述磨损均衡的客户空间保留区域传输到所述第二非易失性存储器使得所述固态设备的连续引导将使用存储在所述第二非易失性存储器中的所述固件更新的装置,其中在输入/输出空闲时间期间在所述固件更新的一个或多个部分中执行所述传输;和
用于当存在所述固件更新时从所述第二非易失性存储器擦除所述原始固件的装置。
18.根据权利要求17所述的装置,其中所述第二非易失性存储器为NOR存储器。
19.根据权利要求17所述的装置,其中所述第一非易失性存储器为NAND存储器。
20.根据权利要求19所述的装置,其中所述第一非易失性存储器是单级单元NAND存储器。
21.根据权利要求17所述的装置,其中对所述固件更新的所述检查是通过控制器执行的。
22.根据权利要求21所述的装置,其中所述控制器具有至少一个处理器。
23.根据权利要求17所述的装置,其中将所述固件更新从所述第一非易失性存储器的所述磨损均衡的客户空间保留区域传输到所述第二非易失性存储器使得所述固态设备的连续引导将使用在后台环境中完成的所述固件更新。
24.一种存储设备,其可操作以执行功率安全的后台固件更新,其中功率安全包括在功率损耗的情况下确保所述后台固件更新是安全的,使得所述存储设备不会受到可能损坏的固件的损害而造成所述存储设备不可用,所述存储设备包括:
第一非易失性存储器;
第二非易失性存储器,其中所述第一非易失性存储器具有比所述第二非易失性存储器高的速度;
接口,所述接口耦接到主机;和
控制器,所述控制器被配置为:
发起从所述第二非易失性存储器利用原始固件引导所述存储设备;
检查固件更新;
确定所述固件更新存储在所述第一非易失性存储器中;
将所述固件更新加载到所述第一非易失性存储器的磨损均衡的客户空间保留区域;
从所述第一非易失性存储器的所述磨损均衡的客户空间保留区域利用所述固件更新引导所述存储设备;
在利用所述固件更新引导所述存储设备完成之后,将所述固件更新从所述第一非易失性存储器的所述磨损均衡的客户空间保留区域传输到所述第二非易失性存储器,使得所述存储设备的连续引导将使用存储在所述第二非易失性存储器中的所述固件更新,其中在输入/输出空闲时间期间在所述固件更新的一个或多个部分中执行所述传输;以及
从所述第二非易失性存储器擦除所述原始固件。
25.根据权利要求24所述的存储设备,其中所述第二非易失性存储器是NOR存储器,并且所述第一非易失性存储器是NAND存储器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762561611P | 2017-09-21 | 2017-09-21 | |
US62/561,611 | 2017-09-21 | ||
US16/134,910 | 2018-09-18 | ||
US16/134,910 US20190087174A1 (en) | 2017-09-21 | 2018-09-18 | Background firmware update |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542491A CN109542491A (zh) | 2019-03-29 |
CN109542491B true CN109542491B (zh) | 2022-04-05 |
Family
ID=65527136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811107302.3A Active CN109542491B (zh) | 2017-09-21 | 2018-09-21 | 用于后台固件更新的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109542491B (zh) |
DE (1) | DE102018123311A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221783B (zh) * | 2019-06-12 | 2022-03-15 | 西安奥卡云数据科技有限公司 | 一种NVMe-oF用户空间直通后端存储的方法及系统 |
CN113312071A (zh) * | 2021-06-10 | 2021-08-27 | 山东英信计算机技术有限公司 | 一种ssd设备固件升级方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101512485A (zh) * | 2006-09-29 | 2009-08-19 | 诺基亚公司 | 用于作为后台任务更新固件的方法和装置 |
US7818556B2 (en) * | 2006-08-28 | 2010-10-19 | Toshiba Storage Device Corporation | Storage apparatus, control method, and control device which can be reliably started up when power is turned on even after there is an error during firmware update |
CN103562875A (zh) * | 2011-04-06 | 2014-02-05 | 罗伯特·博世有限公司 | 故障保护固件更新 |
CN104375844A (zh) * | 2013-08-12 | 2015-02-25 | 中兴通讯股份有限公司 | 固件升级方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046710A1 (en) * | 2006-08-17 | 2008-02-21 | Steven Maddocks | Switching firmware images in storage systems |
US9043672B2 (en) * | 2013-02-27 | 2015-05-26 | Kabushiki Kaisha Toshiba | Memory controller, storage device, and memory control method |
KR102261815B1 (ko) * | 2014-10-30 | 2021-06-07 | 삼성전자주식회사 | 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템 |
-
2018
- 2018-09-21 CN CN201811107302.3A patent/CN109542491B/zh active Active
- 2018-09-21 DE DE102018123311.6A patent/DE102018123311A1/de active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818556B2 (en) * | 2006-08-28 | 2010-10-19 | Toshiba Storage Device Corporation | Storage apparatus, control method, and control device which can be reliably started up when power is turned on even after there is an error during firmware update |
CN101512485A (zh) * | 2006-09-29 | 2009-08-19 | 诺基亚公司 | 用于作为后台任务更新固件的方法和装置 |
CN103562875A (zh) * | 2011-04-06 | 2014-02-05 | 罗伯特·博世有限公司 | 故障保护固件更新 |
CN104375844A (zh) * | 2013-08-12 | 2015-02-25 | 中兴通讯股份有限公司 | 固件升级方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
DE102018123311A1 (de) | 2019-03-21 |
CN109542491A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9443591B2 (en) | Storage device out-of-space handling | |
KR102419036B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20190317892A1 (en) | Memory system, data processing system, and operating method of memory system | |
KR20180051272A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11269765B2 (en) | Operating method of controller and memory system | |
US10838854B2 (en) | Data storage device and operating method thereof | |
US9372741B2 (en) | Data storage device and operating method thereof | |
KR20190117117A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20180130229A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11681462B2 (en) | Memory system, operating method thereof and computing system | |
US10831657B2 (en) | Debug data recovery after PLI event | |
US10795594B2 (en) | Storage device | |
US20190087174A1 (en) | Background firmware update | |
CN114647375B (zh) | 使装置具备增强型持久性存储器区存取能力 | |
CN109542491B (zh) | 用于后台固件更新的方法和装置 | |
US11226811B2 (en) | Power safe offline download | |
CN113741798A (zh) | 数据存储装置及其操作方法 | |
CN110083305B (zh) | 存储器系统及其操作方法 | |
CN111459527A (zh) | 存储器系统及其操作方法 | |
KR102475688B1 (ko) | 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그것의 동작 방법 | |
US20150169235A1 (en) | Data storage device and operating method thereof | |
KR20230134288A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
KR20160025377A (ko) | 반도체 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 | |
US10761834B2 (en) | SSD firmware download dual boot | |
US20190163602A1 (en) | Memory system and operating method thereof |
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 |