硬件辅助固件下载同步的制作方法

文档序号:17261426发布日期:2019-03-30 09:41阅读:127来源:国知局
硬件辅助固件下载同步的制作方法

本公开要求2017年9月21日提交的美国临时申请62/561,614的优先权,其全文通过引用并入本文。

本公开的实施例总体涉及存储设备和操作存储设备的方法。更具体地,本公开的各方面涉及硬件辅助固件下载同步操作和结构。



背景技术:

硬件需要不断被更新。当固件中发现故障时尤其如此,固件被重写以执行新的任务或者固件被重写以按照不同的顺序执行指定的任务。对于存储设备而言固件更新可以是富有挑战的。

固件更新需要被下载到设备上,但是固件下载通常要么是电力安全但是具有长响应时间,要么是电力不安全但是快速。在电力损失的情况下,电力安全被认为是安全的。固件可以被下载到快速介质(即nand)并且然后被同步到较慢的传统启动介质(即nor),但是同步可以消耗长的时间。同步可以影响驱动控制器处理能力并且影响设备性能。

当时间允许时,主机设备处理器可以在后台随时间执行按片(inslices)同步,但是这种处理器既耗时又效率低。替代性地,设备处理能力可以被用于执行同步并且因此负面影响设备性能。

因此,存在在后台中快速同步新固件但是不负面影响设备性能的需要。

还存在以成本有效的方式执行新固件同步的需要。

还存在执行安全和编程有效的同步方法的需要。



技术实现要素:

本公开总体涉及利用异步gpdma硬件单元或低电力协处理器执行后台下载更新片。

在一个非限制性实施例中,公开一种用于执行下载操作的方法,包括:检测用于安装的更新固件;将至少一片更新固件从更新固件位置传输到第二固件位置;确定至少一片更新固件的同步是否已经完成;当至少一片更新固件的同步已经完成时,确定是否存在额外片有待被同步;当对以下状况进行确定时,将至少一个额外片的更新固件从更新固件位置发送到第二固件位置:当至少一片更新固件的同步已经完成时,确定是否存在额外片有待被同步;以及执行至少一个额外片的更新固件的同步。

在另一个非限制性实施例中,公开一种用于执行下载操作的结构,包括:用于检测用于安装的更新固件的装置;用于将至少一片更新固件从更新固件位置传输到第二固件位置的装置;用于确定至少一片更新固件的同步是否已经完成的装置;用于当至少一片更新固件的同步已经完成时,确定是否存在额外片有待被同步的装置;以及用于当对以下状况进行确定时,将至少一个额外片的更新固件从更新固件位置发送到第二固件位置的装置:当至少一片更新固件的同步已经完成时,确定是否存在额外片有待被同步。

在另一个非限制性实施例中,公开一种用于执行用于存储器设备的下载操作的方法,包括:使用处理器,检测用于安装在存储器结构中的更新固件;将至少一片更新固件从存储器结构传输到第二固件位置;执行至少一片更新固件的同步以形成更新固件的副本;在同步之后确定更新固件的副本是否被完成;将其他片的更新固件从存储器结构传输到第二固件位置;以及执行其他片的更新固件从存储器结构到第二位置的第二同步,直到更新固件被完成。

在另一个非限制性实施例中,公开一种用于执行下载操作的结构,包括:用于检测用于安装在存储器结构中的更新固件的处理器装置;用于将至少一片更新固件从存储器结构传输到第二固件位置的装置;用于执行至少一片更新固件的同步以形成更新固件的副本的装置;以及用于在同步之后确定更新固件的副本是否被完成的装置。

在另一个非限制性实施例中,公开一种固态存储器设备,包括:至少两个nand存储器结构;至少两个存储器非易失性存储器结构;至少两个易失性存储器结构,其连接到至少两个存储器;接口,其经配置以将数据传输到连接到接口的以下位置和传输来自连接到接口的以下位置的数据:存储器设备、至少两个nand存储器结构、至少两个存储器非易失性存储器结构和至少两个易失性存储器结构;控制器,其经配置以控制至少两个nand存储器结构、至少两个存储器非易失性存储器结构和至少两个易失性存储器结构;以及电源,其连接到易失性存储器设备和控制器。

附图说明

因此上述本公开的特征可以更详细地被理解,以上简要总结的本公开的更具体描述可以参考实施例,一些实施例在附图中说明。但是,注意到,附图仅说明本公开的典型实施例,并且因此不被视为是本公开的范围的限制,因为本公开可以承认其他同等有效的实施例。

图1是根据一个实施例的设备的示意图。

图2是根据一个实施例的一种用于利用专用硬件设备来协调高速缓存(cache)和nor之间的同步的方法的示意图。

为了便于理解,在适用时,已经使用相同的附图标记来指定附图共有的相同的元素。考虑到,在没有具体详述的情况下,一个实施例中公开的元素可以关于其他实施例被有利地利用。

具体实施方式

在下文中,参考本公开的实施例。但是,应理解,本公开不限于具体描述的实施例。相反,下面特征和元素的任何组合,不管是否涉及到不同的实施例,均被考虑为实施和实践本公开。此外,虽然本公开的实施例可以实现优于其他可能的方案和/或优于现有技术的优势,但是一个特定的优势是否由一个给定的实施例实现并不限制本公开。因此,下面的方面、特征、实施例和优势仅是说明性的,并且除非在(一个或更多个)权利要求中明确详述,否则其不是随附权利要求的考虑元素或限制。同样,对“本公开”的参考不应被理解为本文中公开的任何创造性主题的概括,并且除非在(一个或更多个)权利要求中明确详述,否则不应被视为随附权利要求的元素或限制。

本公开总体涉及利用异步gpdma硬件单元或低电力协处理器执行后台下载更新片。

图1是根据一个实施例的设备100的示意图。该设备包括主机设备102和存储设备104。主机设备102通过接口106物理地以及电气地耦合到存储设备104,接口106包含一个或更多个物理层(phy)108a-108n。

主机设备102包括控制器110以及本地存储设备112,诸如内部存储器。存储设备104还包括控制器114以及一个或更多个快速或迅速非易失性存储器设备116a-116n和一个或更多个易失性存储器设备118a-118n两者,控制器114与接口106耦合并进行通信。电源120耦合到接口106和控制器114。控制器114包括一个或更多个处理器122a-122n。此外,控制器114耦合到一个或更多个慢速非易失性存储器设备124a-124n。慢速非易失性存储器设备124a-124n的一个示例是nor,并且快速或迅速非易失性存储器设备116-116n的一个示例是nand。

在一些示例中,存储设备104可以包括为了简洁性而未在图1中示出的额外组件。例如,存储设备104可以包括印刷板(pb),存储设备104的组件机械附接至印刷板,并且印刷板包括导电迹线,导电迹线电互连存储设备104的组件,等等。在一些示例中,存储设备104的物理尺寸和连接器配置可以符合一个或更多个标准形状因子。一些示例标准形状因子包括但不限于3.5”硬盘驱动器(hdd)、2.5”hdd、1.8”hdd、外围组件互连(pci)、pci-扩展(pci-x)、pciexpress(pcie)(例如,pciex1、x4、x8、x16、pcieminicard、minipci等)。在一些示例中,存储设备104可以直接耦合(例如,直接焊接)到主机设备102的主机板。

接口106可以根据任何合适的协议进行操作。例如,接口106可以根据以下协议中的一个或更多个进行操作:高级技术附件(ata)(例如,串行-ata(sata)和并行-ata(pata))、光纤通道、小型计算机系统接口(scsi)、串行附接scsi(sas)、外围组件互连(pci)、pci-express或非易失性存储器express(nvme)。接口106的电连接件(例如,数据总线、控制总线或二者)电连接到控制器114,提供了主机设备102和控制器114之间的电连接,允许数据在主机设备102和控制器114之间进行交换。在一些示例中,接口106的电连接件还可以允许存储设备104从主机设备102接收电力。例如,如图1中所示,电源120可以经由接口106从主机设备102接收电力。

存储设备104可以包括电源120,电源120可以向存储设备104的一个或更多个组件提供电力。当在标准模式中操作时,电源120可以使用由外部设备(诸如,主机设备102)提供的电力,向一个或更多个组件提供电力。例如,电源120可以使用经由接口106从主机设备102接收的电力,向一个或更多个组件提供电力。在一些示例中,电源120可以包括一个或更多个电力存储组件,当在关机模式中操作时,诸如在停止从外部设备接收电力时,一个或更多个电力存储组件经配置以向一个或更多个组件提供电力。以此方式,电源120可以充当板上备用电源。一个或更多个电力存储组件的一些示例包括但不限于:电容器、超级电容器、电池等。在一些示例中,可以由一个或更多个电力存储组件存储的电力的量可以是一个或更多个电力存储组件的成本和/或大小(例如,面积/体积)的函数。换言之,随着由一个或更多个电力存储组件存储的电力的量增加,一个或更多个电力存储组件的成本和/或大小也增加。

存储设备104包括一个或更多个易失性存储器设备118a-118n,一个或更多个易失性存储器设备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,控制器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读取数据或将数据写入非易失性存储器116;内务处理,其可以包括垃圾收集、磨损均衡、trim等;以及系统任务。在一些示例中,处理器122a-122n可以被称为计算机单元、处理单元、内核或中央处理单元(cpu)。

当固件被更新时,当前固件以慢速被存储,但是对于为非易失性存储器(诸如,nor)加电而言是快速的。新固件可以被下载到较快非易失性存储器。最终,新固件需要被同步到nor,但是同步时可能发生错误,并且处理能力和速度可能受影响。

如下面更详细讨论的,异步gpdma硬件单元或低电力协处理器执行后台下载更新片。当下载数据可用于同步时,主处理器使得专用硬件单元开始。然后,专用硬件单元经由中断通知主处理器何时片被同步,并且过程从下一个片再次开始,直到在下载固件中的所有片都已经被同步。

换言之,中断可能发生在同步期间。使用专用硬件功能允许从dram缓冲器到nor的转移更高效地发生,因为主处理器未被使用。例如,如果处理器122a是主处理器,则专用处理器122n被用于处理同步操作。专用处理器122n协调转移以便不中断或影响主处理器122a操作。专用处理器122n管理数据转移用于同步,而主处理器122a正常处理主机设备102请求。应理解,gpdma(通用直接存储器存取)只不过是可以专门用于处理同步操作的可能的硬件单元的一个示例。

本公开的优势在于主处理器的带宽在后台下载同步的时间段期间受到最小的影响,因此使高i/o速率在很少固件包已经被高速缓存到高速存储器之后能够立即恢复。这也是更电力高效的,因为用于完成同步的时间被减小并且主处理器没有被用于来回运送数据。

图2是根据一个实施例的一种利用专用硬件设备协调高速缓存和nor之间的同步的方法200的示意图。过程开始于项202,其中主处理器122a检测到新固件需要被安装。新固件被设置在存储位置中而不是nor中。此后,在项204中,主处理器122a指示专用处理器122n开始发送固件更新的片到nor。在项208处,确定片同步是否已经完成。如果片同步还未完成,则在项214处,片同步继续,直到片同步结束。在项208处,如果片同步已经结束,则在项210处确定是否存在额外片待同步。如果不存在额外片待同步,则在项212处,过程结束。但是,如果存在额外片待同步,则在项216处,专用处理器122n将下一片的新固件发送到nor。最终,在项208处确定是否额外片已经完成同步。最后,在所有片已经被同步之后,在项212处,过程结束。应理解,在专用处理器122n执行片同步操作时,主处理器122a继续通过处理来自主机设备102的请求而正常工作。

通过使用利用专用处理器而不是主处理器的片同步操作,存储设备性能不会受到同步操作的负面影响、用于同步固件的时间被减小并且存储设备是更加电力高效的。

本公开中描述的技术可以至少部分地在硬件、软件、固件或任何其组合中实施。例如,描述的技术的各个方面可以在一个或更多个处理器内实施,一个或更多个处理器包括:一个或更多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或任何其他等效集成或分立逻辑电路以及这些组件的任何组合。术语“处理器”或“处理电路”可以总体上指代前述逻辑电路(单独或与其他逻辑电路的组合)或任何其他等效电路中的任何一个。包括硬件的控制单元还可以执行本公开的技术中的一个或更多个。

这些硬件、软件和固件可以在相同设备内或在分开的设备内实施以支持本公开中描述的各种技术。此外,描述的单元、模块或组件中的任何一个可以一起实施或分开实施,作为分立但可互操作的逻辑设备。不同特征作为模块或单元的描绘意在突出不同的功能方面,并且不一定暗示这种模块或单元必须通过分开的硬件、固件或软件组件来实现。相反,与一个或更多个模块或单元相关联的功能可以由分开的硬件、固件或软件组件执行,或者可以被集成在公共或分开的硬件、固件或软件组件中。

本公开中描述的技术还可以体现或编码在包括编码有指令的计算机可读存储介质的制品中。体现或编码在包括经编码的计算机可读存储介质的制品中的指令可以致使一个或更多个可编程处理器或其他处理器实施本文描述的技术中的一个或更多个,诸如当包括或编码在计算机可读存储介质中的指令由一个或更多个处理器执行时。计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪存、硬盘、紧凑盘rom(cd-rom)、软盘、磁带、磁介质、光学介质或其他计算机可读介质。在一些示例中,制品可以包括一个或更多个计算机可读存储介质。

在一些示例中,计算机可读存储介质可以包括非暂时性介质。术语“非暂时性”可以指示存储介质不是体现在载波或传播信号中。在某些示例中,非暂时存储介质可以存储(例如,在ram或高速缓存中)可能随时间推移而发生变化的数据。

在一个非限制性实施例中,一种用于执行下载操作的方法,包括:检测用于安装的更新固件;将至少一片更新固件从更新固件位置传输到第二固件位置;确定至少一片更新固件的同步是否已经完成;当至少一片更新固件的同步已经完成时,确定是否存在额外片有待被同步;当对以下状况进行确定时,将至少一个额外片的更新固件从更新固件位置发送到第二固件位置:当至少一片更新固件的同步已经完成时,确定是否存在额外片有待被同步;以及执行至少一个额外片的更新固件的同步。

在另一个非限制性实施例中,方法可以被执行,其中检测用于安装的更新固件是由处理器执行的。

在另一个非限制性实施例中,方法可以被执行,其中处理器是主处理器。

在另一个非限制性实施例中,方法可以被执行,其中第二固件位置是nor存储器。

在另一个非限制性实施例中,方法可以被执行,其中将至少一片更新固件从更新固件位置传输到第二固件位置是由处理器执行的。

在另一个非限制性实施例中,方法可以被执行,其中处理器是专用处理器。

在另一个非限制性实施例中,方法可以被执行,其中执行至少一个额外片的更新固件的同步是由专用处理器执行的。

在另一个非限制性实施例中,方法可以进一步包括:当确定至少一片更新固件的同步已经完成时,继续片的同步。

在另一个非限制性实施例中,公开一种用于执行下载操作的结构,包括:用于检测用于安装的更新固件的装置;用于将至少一片更新固件从更新固件位置传输到第二固件位置的装置;用于确定至少一片更新固件的同步是否已经完成的装置;用于当至少一片更新固件的同步已经完成时,确定是否存在额外片有待被同步的装置;以及用于当对以下状况进行确定时,将至少一个额外片的更新固件从更新固件位置发送到第二固件位置的装置:当至少一片更新固件的同步已经完成时,确定是否存在额外片有待被同步。

在另一个非限制性实施例中,公开一种用于执行用于存储器设备的下载操作的方法,包括:使用处理器,检测用于安装在存储器结构中的更新固件;将至少一片更新固件从存储器结构传输到第二固件位置;执行至少一片更新固件的同步以形成更新固件的副本;在同步之后确定更新固件的副本是否被完成;将其他片的更新固件从存储器结构传输到第二固件位置;以及执行其他片的更新固件从存储器结构到第二位置的第二同步,直到更新固件被完成。

在另一个非限制性实施例中,方法可以进一步包括:加载更新固件。

在另一个非限制性实施例中,方法可以进一步包括:擦除不是更新固件的固件。

在另一个非限制性实施例中,方法可以被执行,其中第二固件位置是nor存储器。

在另一个非限制性实施例中,方法可以被执行,其中将至少一片更新固件从存储器结构传输到第二固件位置是沿着总线进行的。

在另一个非限制性实施例中,方法可以进一步包括:将更新固件下载到存储器结构。

在另一个非限制性实施例中,方法可以被执行,其中存储器结构是固态驱动器。

在另一个非限制性实施例中,方法可以被执行,其中处理器是用于存储器设备的主处理器。

在另一个非限制性实施例中,方法可以被执行,其中存储器设备是固态驱动器。

在另一个非限制性实施例中,方法可以被执行,其中从主机加载更新固件。

在另一个非限制性实施例中,方法可以被执行,其中主机是个人计算机、服务器、音乐设备和平板计算机中的一个。

在另一个非限制性实施例中,公开一种用于执行下载操作的结构,包括:用于检测用于安装在存储器结构中的更新固件的处理器装置;用于将至少一片更新固件从存储器结构传输到第二固件位置的装置;用于执行至少一片更新固件的同步以形成更新固件的副本的装置;以及用于在同步之后确定更新固件的副本是否被完成的装置。

在另一个非限制性实施例中,用于执行下载操作的结构进一步包括:用于将数据从存储器结构传输到第二固件位置的装置。

在另一个非限制性实施例中,用于执行下载操作的结构进一步包括:用于从存储器结构擦除固件的装置。

在另一个非限制性实施例中,公开一种固态存储器设备,包括:至少两个nand存储器结构;至少两个存储器非易失性存储器结构;至少两个易失性存储器结构,其连接到至少两个存储器;接口,其经配置以将数据传输到连接到接口的以下位置和传输来自连接到接口的以下位置的数据:存储器设备、至少两个nand存储器结构、至少两个存储器非易失性存储器结构和至少两个易失性存储器结构;控制器,其经配置以控制至少两个nand存储器结构、至少两个存储器非易失性存储器结构和至少两个易失性存储器结构;以及电源,其连接到易失性存储器设备和控制器。

在另一个非限制性实施例中,公开了固态存储器设备,其中接口进一步包含:至少两个物理连接件。

虽然上面涉及本公开的实施例,但是在不脱离本公开的基本范围的情况下,本公开的其他和进一步的实施例可以被想到,并且本公开的范围由随附权利要求书确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1