CN112434282A - 差分写入操作 - Google Patents

差分写入操作 Download PDF

Info

Publication number
CN112434282A
CN112434282A CN202010863511.1A CN202010863511A CN112434282A CN 112434282 A CN112434282 A CN 112434282A CN 202010863511 A CN202010863511 A CN 202010863511A CN 112434282 A CN112434282 A CN 112434282A
Authority
CN
China
Prior art keywords
state
file
program file
signature
memory device
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
CN202010863511.1A
Other languages
English (en)
Other versions
CN112434282B (zh
Inventor
奥利维尔·杜瓦尔
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 CN112434282A publication Critical patent/CN112434282A/zh
Application granted granted Critical
Publication of CN112434282B publication Critical patent/CN112434282B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • G11C7/065Differential amplifiers of latching type
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1096Write circuits, e.g. I/O line write drivers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/229Timing of a write operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

本申请案涉及一种差分写入操作。描述用于差分写入操作的方法、系统和装置。本文中所描述的操作可用于将程序文件的一部分从第一状态改变为第二状态。举例来说,可在存储器装置处接收到与签名相关联的文件(例如,补丁文件)。基于认证过程,所述文件可用于将所述程序文件改变为所述第二状态。在一些实例中,所述程序文件能够使用所述存储器装置的缓冲器改变为所述第二状态。主机系统可发射包含所述第一状态与所述第二状态之间的差异的文件。签名可与所述文件相关联且可用于认证所述文件。

Description

差分写入操作
交叉参考
本专利申请案要求2019年8月26日由杜瓦尔(Duval)申请的标题为“差分写入操作(DIFFERENTIAL WRITE OPERATION)”的第16/551,567号美国专利申请案的优先权,所述美国专利申请案转让给本受让人且明确地以全文引用的方式并入本文中。
技术领域
技术领域涉及一种差分写入操作。
背景技术
下文大体上涉及一种包含至少一个存储器装置的系统,且更确切地说,涉及差分写入操作。
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等各种电子装置中。通过编程存储器装置的不同状态来存储信息。举例来说,二进制装置最常存储通常由逻辑1或逻辑0表示的两个状态中的一个。在其它装置中,可以存储多于两个状态。为了存取所存储的信息,装置的组件可读取或感测存储器装置中的至少一个所存储状态。为了存储信息,装置的组件可写入或编程存储器装置中的状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)等。存储器装置可为易失性或非易失性的。例如FeRAM的非易失性存储器即使在无外部电源存在下仍可维持所存储的逻辑状态很长一段时间。例如DRAM的易失性存储器装置在与外部电源断开连接时可能会丢失它们所存储的状态。
通常,改进存储器装置可包含增大存储器单元密度、增大读/写速度、增强可靠性、提高安全性、增强数据保持、减少功率消耗、减小存储器单元上的应力,或降低制造成本,以及其它度量。
发明内容
描述了一种方法。在一些实例中,方法可包含:在非易失性存储器装置处接收用于使用补丁文件和与补丁文件相关联的第一签名来将程序文件从第一状态改变为第二状态的命令,所述补丁文件包括程序文件的第一状态与第二状态之间的差异;至少部分地基于接收到命令使用第一签名且使用第二签名来认证补丁文件,所述第二签名与补丁文件相关联且由非易失性存储器装置产生;至少部分地基于认证补丁文件使用所述补丁文件来通过至少一个过渡状态将程序文件从第一状态改变为第二状态;及至少部分地基于检测到与非易失性存储器装置相关联的一或多个事件来将程序文件从任何状态改变为第二状态。
描述了一种设备。在一些实例中,设备可包含:第一存储组件,其经配置以存储程序文件,其中程序文件的至少一部分经配置以使用补丁文件和与补丁文件相关联的第一签名从第一状态改变为第二状态;第二存储组件,其经配置以在至少部分地基于接收到命令而将程序文件的部分从第一状态改变为第二状态的操作期间存储程序文件的部分和补丁文件;认证组件,其经配置以使用第一签名且使用第二签名来认证补丁文件;及执行组件,其经配置以通过将程序文件从第一状态改变为第二状态来更新程序文件。
描述了一种设备。在一些实例中,设备可包含处理器、与处理器耦合的存储器,和存储于存储器中且可由所述处理器执行以使得设备进行以下操作的指令:接收用于使用补丁文件和与补丁文件相关联的第一签名来将程序文件的一部分从第一状态改变为第二状态的命令;至少部分地基于接收到命令使用第一签名且使用第二签名来认证补丁文件,所述第二签名与补丁文件相关联且由处理器产生;至少部分地基于认证补丁文件使用所述补丁文件来将程序文件的部分从第一状态改变为第二状态。
附图说明
图1说明根据如本文中所公开的实例的支持差分写入操作的系统的实例。
图2说明根据如本文中所公开的实例的支持差分写入操作的过程流程图的实例。
图3展示根据如本文中所公开的实例的支持差分写入操作的存储器装置的框图。
图4到6展示说明根据如本文中所公开的实例的支持差分写入操作的一或多种方法的流程图。
具体实施方式
存储器装置可包含可周期性地更新的特定文件(例如,程序文件)。可对计算机系统(例如,对存储于计算机系统上的程序文件)执行软件更新以在使用特定程序之后添加新特征或去除所找到的缺陷(bug)。这些更新中的一些可为空中(OTA)软件更新的实例。这些软件更新通常由已知用户(例如,已知系统)提供给计算机系统。然而,由于软件更新通常由存储器装置的中央处理单元(CPU)执行,所以软件更新可将计算机系统置于后门攻击的风险中。举例来说,攻击者可修改更新以授权攻击者在更新完成之后接入计算系统。得到对计算系统的接入的未授权用户可部署恶意程序(例如,病毒)或窃取存储于计算系统上的数据,或穿过计算系统。
另外或替代地,存储在存储器装置处的一些程序文件可为计算机系统启动所需的,且这些程序文件上的软件更新可潜在地防止计算机系统启动,因此使装置不可操作(例如,砖化装置)。软件更新序列可导致此结果的一种方式为在断电事件在更新序列期间的任一点处发生的情况下,使程序文件仅部分地修改。相应地,用于安全地部署软件更新以便最小化或减少后门攻击的方法及/或系统可为有益的。另外或替代地,耐断电软件更新机制可在断电事件之后恢复(resume/revert)更新,其可确保存储器装置含有有效程序文件。
本文中所描述的方法及系统允许程序文件安全地更新,因此在执行更新时最小化或减轻对系统的任何可能的后门攻击。在一些实例中,安全更新可使用差分更新进行,其中更新仅涉及程序文件需要更新的部分。差分更新可包含可在计算装置外部产生的一或多个签名(或与一或多个签名相关联)。因此,签名对于计算装置可为秘密或未知的。计算装置可经配置以产生其自身的签名,签名可用于认证更新(即,提供到计算装置的与更新相关联的补丁文件)。如果经认证,那么更新可应用于程序文件。替代地,如果更新并未认证,那么更新可能不安装,或程序文件可恢复到先前状态以确保其安全且可靠地运行。通过在更新安装之前认证所述更新,对计算系统的后门攻击可最小化或减轻。
在一些情况下,差分更新可使用较少处理资源和较小量的存储空间(例如,与使用程序文件的全量备份来更新相比),这是由于差分更新仅更新程序文件的一部分(例如,程序文件需要更新的一部分)。相应地,本文中所描述的方法及系统可能并入有存储器装置的缓冲器(例如,写入块缓冲器(write block buffer;WBB))以执行更新。基于正认证的更新,补丁文件可更新且应用于程序文件,其可简化更新的设计且因此减少传送到存储器装置的数据量和原本专用于使用程序文件的全量备份的存储器资源。差分更新可消除(或减少)对存储大程序文件原本所需的备份存储器资源的需要。消除或减少对备份存储器资源的需要可增加存储器装置的有效密度。
如本文中所描述,可在发布更新的装置(例如,主机装置)与存储器装置之间交换一系列命令。命令可经发布以保留WBB的一部分以用于存储补丁文件和相关联签名,将补丁文件和相关联签名提供到存储器装置,执行更新,及/或请求关于最近更新的状态更新。利用本文中所描述的命令结构可以允许更新安全地提供到计算系统,其可简化更新系统的设计,增加存储器装置的有效密度,且可最小化或减少对系统的后门攻击。
首先在参考图1所描述的存储器系统的上下文中描述本公开的特征。在如参考图1和3所描述的过程流程图和框图的上下文中描述本公开的特征。本公开的这些和其它特征进一步由涉及如参考图4到6所描述的差分写入操作的流程图说明且参考流程图描述。
图1说明根据如本文中所公开的实例的利用一或多个存储器装置的系统100的实例。系统100可包含外部存储器控制器105、存储器装置110和耦合外部存储器控制器105与存储器装置110的多个信道115。系统100可包含一或多个存储器装置,但为易于描述,一或多个存储器装置可被描述为单个存储器装置110。
系统100可包含例如计算装置、移动计算装置、无线装置或图形处理装置等电子装置的部分。系统100可以是便携式电子装置的实例。系统100可为计算机、膝上型计算机、平板计算机、智能电话、蜂窝电话、可穿戴装置、因特网连接装置等等的实例。存储器装置110可以是经配置以存储用于系统100的一或多个其它组件的数据的系统组件。
系统100的至少部分可以是主机装置的实例。这类主机装置可为使用存储器来执行过程的装置的实例,所述装置例如计算装置、移动计算装置、无线装置、图形处理装置、计算机、膝上型计算机、平板计算机、智能电话、蜂窝电话、可穿戴装置、因特网连接装置、某一其它固定或便携式电子装置等等。在一些情况下,主机装置可以指实施外部存储器控制器105的功能的硬件、固件、软件或其组合。在一些情况下,外部存储器控制器105可被称为主机或主机装置。在一些实例中,系统100是图形卡。在一些实例中,主机装置105可经配置以将一或多个命令发射到存储器装置110以用于执行对程序文件的更新。在一些实例中,程序文件可存储到存储器装置110,且程序文件的一部分可基于从主机装置105发射的命令而更新。在一些实例中,命令可包含用于更新程序文件的补丁文件,且可包含程序文件的第一状态与第二状态之间的差异(即,补丁文件可经配置以将程序文件从第一状态更新为第二状态)。命令还可包含与补丁文件相关联的签名。存储器装置110可经配置以产生其自身的签名,且可基于签名匹配认证命令。在一些实例中,程序文件可基于认证从第一状态改变(例如,更新)为第二状态。
在一些情况下,存储器装置110可以是独立的装置或组件,其经配置以与系统100的其它组件通信,并提供系统100可使用或引用的物理存储器地址/空间。在一些实例中,存储器装置110可为可配置的以与至少一或多个不同类型的系统100一起工作。系统100的组件与存储器装置110之间的信令可为可操作的以支持用以调制信号的调制方案、用于传达信号的不同引脚设计、系统100和存储器装置110的不同封装、系统100与存储器装置110之间的时钟信令和同步、时序惯例,及/或其它因素。
存储器装置110可经配置以存储用于系统100的组件的数据。在某些情况下,存储器装置110可充当系统100的从属型装置(例如,响应于且执行由系统100通过外部存储器控制器105提供的命令)。这类命令可包含用于存取操作的存取命令,例如用于写入操作的写入命令、用于读取操作的读取命令、用于刷新操作的刷新命令或其它命令。存储器装置110可包含两个或更多个支持用于数据存储的所需或指定容量的存储器裸片160(例如存储器芯片)。包含两个或更多个存储器裸片的存储器装置110可被称作多裸片存储器或封装(也被称作多芯片存储器或封装)。
系统100可进一步包含处理器120、基本输入/输出系统(basic input/outputsystem,BIOS)组件125、一或多个外围组件130和输入/输出(I/O)控制器135。系统100的组件可使用总线140彼此电子通信。
处理器120可经配置以控制系统100的至少部分。处理器120可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其可以是这些类型的组件的组合。在此些情况下,处理器120可以是中央处理单元(CPU)、图形处理单元(GPU)、通用图形处理单元(GPGPU)或芯片上系统(SoC)的实例,以及其它实例。
BIOS组件125可为包含操作为固件的BIOS的软件组件,其可初始化且运行系统100的各种硬件组件。BIOS组件125还可管理处理器120与系统100的各种组件(例如外围组件130、I/O控制器135等)之间的数据流动。BIOS组件125可包含存储在只读存储器(ROM)、快闪存储器或任何其它非易失性存储器中的程序或软件。
外围组件130可以是任何输入装置或输出装置,或这类装置的接口,其可集成到系统100中或与系统100集成。实例可包含磁盘控制器、声音控制器、图形控制器、以太网控制器、调制解调器、通用串行总线(USB)控制器、串行或并行端口,或外围卡槽,例如外围组件互连(PCI)或专门的图形端口。外围组件130可为所属领域的技术人员理解为外围装置的其它组件。
I/O控制器135可管理处理器120与外围组件130、输入装置145或输出装置150之间的数据通信。I/O控制器135可管理未集成到系统100中或未与系统100集成在一起的外围装置。在一些情况下,I/O控制器135可表示到外部外围组件的物理连接或端口。
输入145可表示系统100外部的装置或信号,其将信息、信号或数据提供到系统100或其组件。此可包含用户接口或与其它装置接口或在其它装置之间。在一些情况下,输入145可为经由一或多个外围组件130与系统100介接的外围装置,或可由I/O控制器135管理。
输出150可以表示在系统100外部的装置或信号,其经配置以从系统100或其组件中的任一者接收输出。输出150的实例可包含显示器、音频扬声器、印刷装置或印刷电路板上的另一处理器等等。在一些情况下,输出150可以是经由一或多个外围组件130与系统100介接的外围装置,或可以由I/O控制器135管理。
系统100的组件可由经设计以执行其功能的通用或专用电路构成。这可包含经配置以执行本文中所描述的功能的各种电路元件,例如,导线、晶体管、电容器、电感器、电阻器、放大器或其它有源或无源元件。
存储器装置110可包含装置存储器控制器155和一或多个存储器裸片160。每一存储器裸片160可包含本地存储器控制器165(例如,本地存储器控制器165-a、本地存储器控制器165-b和/或本地存储器控制器165-N)和存储器阵列170(例如,存储器阵列170-a、存储器阵列170-b和/或存储器阵列170-N)。记忆阵列170可以是存储器单元的集合(例如,网格),其中每一存储器单元经配置以存储数字数据的至少一个位。参考图2更详细地描述存储器阵列170和/或存储器单元的特征。
装置存储器控制器155可包含经配置以控制存储器装置110的操作的电路或组件。因而,装置存储器控制器155可包含使存储器装置110能够执行命令且可经配置以接收、发射或执行命令、数据或控制与存储器装置110有关的信息的硬件、固件和软件。装置存储器控制器155可经配置以与外部存储器控制器105、一或多个存储器裸片160或处理器120通信。在一些情况下,存储器装置110可从外部存储器控制器105接收数据和/或命令。举例来说,存储器装置110可接收写入命令或读取命令,所述写入命令指示存储器装置110应存储代表系统100的组件(例如,处理器120)的某些数据,所述读取命令指示存储器装置110应将存储在存储器裸片160中的某些数据提供到系统100的组件(例如,处理器120)。在一些情况下,装置存储器控制器155可结合存储器裸片160的本地存储器控制器165控制本文中所描述的存储器装置110的操作。包含在装置存储器控制器155及/或本地存储器控制器165中的组件的实例可包含用于解调从外部存储器控制器105接收的信号的接收器、用于调制信号和将信号发射到外部存储器控制器105的解码器、逻辑、解码器、放大器、滤波器等等。
本地存储器控制器165(例如,在存储器裸片160的本地)可经配置以控制存储器裸片160的操作。此外,本地存储器控制器165可经配置以与装置存储器控制器155通信(例如,接收和发射数据和/或命令)。本地存储器控制器165可支持装置存储器控制器155以控制如本文中所描述的存储器装置110的操作。在一些情况下,存储器装置110不包含装置存储器控制器155,且本地存储器控制器165或外部存储器控制器105可执行本文中所描述的各种功能。因而,本地存储器控制器165可经配置以与装置存储器控制器155通信,与其它本地存储器控制器165通信,或直接与外部存储器控制器105或处理器120通信。
外部存储器控制器105可经配置以实现系统100的组件(例如,处理器120)与存储器装置110之间的信息、数据和/或命令的通信。外部存储器控制器105可以充当系统100的组件与存储器装置110之间的联络,使得系统100的组件可能不需要知道存储器装置的操作细节。系统100的组件可以向外部存储器控制器105呈现外部存储器控制器105满足的请求(例如,读取命令或写入命令)。外部存储器控制器105可以转换或转化在系统100的组件与存储器装置110之间交换的通信。在一些情况下,外部存储器控制器105可包含产生共同(源)系统时钟信号的系统时钟。在一些情况下,外部存储器控制器105可包含产生共同(源)数据时钟信号的共同数据时钟。
在一些情况下,外部存储器控制器105或系统100的其它组件或本文中所描述的其功能可由处理器120实施。举例来说,外部存储器控制器105可以是由处理器120或系统100的其它组件实施的硬件、固件或软件或其某一组合。虽然将外部存储器控制器105描绘为在存储器装置110外部,但在一些情况下,外部存储器控制器105或本文描述的其功能可以由存储器装置110实施。例如,外部存储器控制器105可以是由装置存储器控制器155或一或多个本地存储器控制器165实施的硬件、固件或软件或其某一组合。在一些情况下,外部存储器控制器105可以跨越处理器120和存储器装置110分布,使得外部存储器控制器105的部分由处理器120实施,且其它部分由装置存储器控制器155或本地存储器控制器165实施。同样,在一些情况下,本文中归属于装置存储器控制器155或本地存储器控制器165的一或多个功能可以在一些情况下由外部存储器控制器105(与处理器120分离或包含于处理器120中)执行。
系统100的组件可使用多个信道115与存储器装置110交换信息。在一些实例中,信道115可使得能够在外部存储器控制器105与存储器装置110之间进行通信。每一信道115可包含与系统100的组件相关联的端子之间的一或多个信号路径或发射媒体(例如,导体)。举例来说,信道115可包含第一端子,其包含外部存储器控制器105处的一或多个引脚或衬垫及存储器装置110处的一或多个引脚或衬垫。引脚可以是系统100的装置的导电输入或输出点的实例,且引脚可经配置以充当信道的部分。
信道115(和相关联的信号路径和端子)可专用于传达特定类型的信息。在一些情况下,信道115可为聚合信道(aggregated channel),且因此可包含多个个别信道。举例来说,数据信道190可以是x4(例如,包含四个信号路径)、x8(例如,包含八个信号路径)、x16(例如,包含十六个信号路径)等等。经由信道传送的信号可使用双数据速率(DDR)定时方案。举例来说,信号的一些符号可寄存在时钟信号的上升沿上,且信号的其它符号可寄存在时钟信号的下降沿上。经由信道传送的信号可使用单数据速率(SDR)用信号发送。举例来说,对于每一时钟循环,可寄存信号的一个符号。
在一些情况下,信道115可包含一或多个命令和地址(CA)信道186。CA信道186可经配置以在外部存储器控制器105和存储器装置110之间传送命令,包含与命令相关联的控制信息(例如,地址信息)。举例来说,CA信道186可以包含具有所需数据的地址的读取命令。在一些情况下,CA信道186可寄存在上升时钟信号沿和/或下降时钟信号沿上。在某些情况下,CA信道186可包含任何数量的信号路径以解码地址和命令数据(例如,八个或九个信号路径)。
在一些情况下,信道115可包含一或多个时钟信号(CK)信道188。CK信道188可经配置以在外部存储器控制器105与存储器装置110之间传达一或多个共同时钟信号。每一时钟信号可经配置以在高状态与低状态之间振荡且协调外部存储器控制器105与存储器装置110的动作。在一些情况下,时钟信号可以是差分输出(例如,CK_t信号和CK_c信号),并且CK信道188的信号路径可相应地予以配置。在一些情况下,时钟信号可以是单端的。CK信道188可包含任何数量的信号路径。在一些情况下,时钟信号CK(例如,CK_t信号和CK_c信号)可提供用于存储器装置110的命令和寻址操作或用于存储器装置110的其它全系统操作的定时参考。时钟信号CK可因此不同地被称作控制时钟信号CK、命令时钟信号CK或系统时钟信号CK。系统时钟信号CK可由系统时钟产生,所述系统时钟可包含一或多个硬件组件(例如,振荡器、晶体、逻辑门、晶体管等)。
在一些情况下,信道115可包含一或多个数据(DQ)信道190。数据信道190可经配置以在外部存储器控制器105与存储器装置110之间传达数据及/或控制信息。举例来说,数据信道190可传送待写入到存储器装置110的信息(例如,双向)或从存储器装置110读取的信息。
在一些情况下,信道115可包含可专用于其它目的的一或多个其它信道192。这些其它信道192可包含任何数量的信号路径。
信道115可以使用各种不同架构将外部存储器控制器105与存储器装置110耦合。各种架构的实例可包含总线、点对点连接、纵横开关、例如硅中介层的高密度中介层,或形成于有机衬底中的信道,或其某一组合。举例来说,在一些情况下,信号路径可以至少部分地包含高密度中介层,例如硅中介层或玻璃中介层。
经由信道115传达的信号可使用多种不同调制方案进行调制。在一些情况下,可以使用二进制符号(或二进制层级)调制方案来调制在外部存储器控制器105与存储器装置110之间传达的信号。二进制符号调制方案可为M进制调制方案的实例,其中M等于二。二进制符号调制方案的每一符号可经配置以表示一位数字数据(例如符号可表示逻辑1或逻辑0)。二进制符号调制方案的实例包含但不限于非归零(NRZ)、单极编码、双极编码、曼彻斯特(Manchester)编码、具有两个符号(例如,PAM2)的脉冲幅度调制(PAM),等。
在一些实例中,存储器装置110可支持差分写入操作,所述差分写入操作可以允许更新安全地提供到计算系统,其可简化更新系统的设计且可最小化或减少对系统的后门攻击。在写入操作的一部分期间,存储器装置110可接收一或多个命令以保留缓冲器(例如,WBB)的一部分以用于存储补丁文件和相关联签名,将补丁文件和相关联签名写入缓冲器,及执行补丁文件以便将程序文件从第一状态改变(例如,更新)为第二状态。在一些实例中,一或多个认证过程可由存储器装置110执行以认证补丁文件、从主机装置105发射到存储器装置的命令,及/或程序文件的更新状态(例如,以验证补丁文件经适当地执行)。在一些实例中,存储器装置110可将状态更新提供到主机装置105以指示补丁文件是恰当地还是不恰当地执行。如果不恰当地执行,那么存储器装置110可经配置以将程序文件恢复到先前状态,以防止错误因程序文件不恰当地更新而出现。
图2说明根据如本文中所公开的实例的支持差分写入操作的过程流程200的实例。过程流程200可说明由主机装置205和存储器装置210执行的一或多个操作。在一些实例中,存储器装置210可包含认证组件215和存储组件220。存储组件220可包含程序文件221、例如写入块缓冲器(WBB)的写入缓冲器222、补丁状态223和补丁224。另外或替代地,存储器装置210可包含一或多个存储器单元块,例如非易失性存储器单元。在一些实例中,一或多个存储器单元块可包含为存储组件220的部分。如图2中所说明,在存储器装置210处进行的操作可在特定组件(例如,通过认证组件215及/或存储组件220)处或通过特定组件执行。然而,如本文中所论述,在存储器装置210处或通过存储器装置210执行的操作可由组件的任何组合执行。此外,由图2所示的操作的次序是示范性的,且操作可按与所展示的不同的次序执行。
图2中所示的操作可导致存储在存储器装置210处的一个或多个文件使用补丁文件来更新。举例来说,存储器装置210可含有程序文件(例如,图像文件、二进制文件等等)。文件最初可以第一状态(例如,F)存在,且更新可导致使用补丁文件(例如,F_diff)将文件更新为第二状态(例如,不同状态,F')。补丁文件可通过主机装置205提供到存储器装置210且可由第一状态与第二状态之间的差异(例如,F与F'之间的差异)组成。在一些实例中,补丁文件可包含签名(例如,F_diff_signature)或与签名相关联,所述签名用于认证补丁文件是有效的及/或从认证源接收到的。举例来说,认证组件215可将补丁文件签名与对于存储器装置210唯一的签名进行比较。基于正认证的补丁文件,更新的至少一部分可在存储组件220处或通过存储组件220执行以防止因系统错误或未预期事件而导致(例如,因存储器装置210的断电而导致)的对文件的不利影响。
在一些实例中,启动事件225可发生,其可触发用于在存储器装置210处更新文件的一或多个操作。举例来说,启动事件225的发生可导致程序文件从第一状态更新为第二状态(例如,在280处)。在其它实例中,启动事件225可在图2中所示的操作的任何部分期间发生。举例来说,补丁文件(例如,F_diff)可经认证(例如,在275处),且启动事件225可在补丁文件经认证之后的时间处发生。在此实例中,启动事件225的发生可导致程序文件更新为第二状态(例如,更新为F')。启动事件225可包含存储器装置210通电、复位等等,且可导致算法应用于程序文件及/或更新以便将程序文件从第一状态(例如,从F)改变为第二状态(例如,改变为F')。在其它实例中,启动事件225可导致程序文件从任何状态恢复(例如,在299处)到第一状态(例如,恢复到F)。
为了将程序文件从第一状态改变为第二状态,主机装置205可将第一命令230发射到存储器装置210。第一命令230可经配置以使得程序文件(例如,存储在存储器装置210处的程序文件)从第一状态改变为第二状态。举例来说,第一命令230可激活算法(例如,存储在存储器装置210处的算法)以修改目标存储区域(例如,程序文件)。在一些实例中,激活算法可将程序文件(例如,F)修改为第二状态(例如,F')。在一些实例中,第一命令230可发射到认证组件215及/或存储组件220且可发起程序文件从第一状态到第二状态的改变(例如,在280处)。第一命令230可包含补丁文件(例如,F_diff)或可指导存储器装置210将补丁文件应用于程序文件(例如,在补丁文件已由存储组件220存储的情况下)。除包含补丁文件或指导存储器装置210应用补丁文件以外,第一命令230可包含与补丁文件相关联的签名(例如,F_diff_signature)及/或与程序文件的第二状态相关联的签名(例如,F'_signature)。签名中的每一个可由认证组件215使用以确保补丁文件是安全的及/或程序文件恰当地改变为第二状态。在一些实例中,在存储器装置210接收到第一命令230之后,可使用补丁文件的签名(例如,F_diff_signature)和存储器装置210处的签名(例如,第二签名)来认证补丁文件(例如,F_diff)。
在一些实例中,主机装置205可将第二命令240发射到存储器装置210。第二命令240可经配置以分配用于补丁文件和与补丁文件相关联的签名的存储组件220的一部分。举例来说,第二命令240可限制存储组件220的一部分用于存储补丁文件(例如,F_diff)、与补丁文件相关联的签名(例如,F_diff_signature),及/或与更新程序文件相关联的签名(例如,F'_signature)。在一些实例中,第二命令240可指定待用于将程序文件更新为第二状态的算法。在一些实例中,第二命令240可发射到认证组件215及/或存储组件220且可引起存储器装置210保留存储组件220的一部分以用于至少补丁文件(例如,F_diff)。在其它实例中,第二命令240可引起存储器装置210保留存储组件220的一部分以用于与补丁文件相关联的签名(例如,F_diff_signature)及/或与程序文件的第二状态相关联的签名(例如,F'_signature)。
在245处,在接收到第二命令240后,存储器装置210可保留存储组件220的一部分以用于存储与更新相关的任何文件(例如,任何数据)(例如,F_diff、F_diff_signature、F'_signature)。在一些实例中,存储器装置210可保留存储组件220的一部分以用于存储一或多个算法。举例来说,存储组件220的一部分可经保留用于存储与用于改变程序文件(例如,在280处)的算法及/或用于恢复程序文件(例如,在299处)的算法的状态相关的数据(例如,内部数据)。所保留的存储组件220的特定部分可通过存储器装置210(例如,通过与存储器装置210相关联的内存控制器)确定或可由第二命令240指示。举例来说,第二命令240可指示经保留用于相关联文件的一或多个地址(例如,行地址、列地址)。在一些实例中,程序文件的第二状态可使用存储器装置210处的额外存储空间。亦即,程序文件的第二状态可占用比程序文件的第一状态多的存储空间。相应地,除保留存储组件220的一部分以用于存储与更新相关的任何文件以外,第二命令240可指定(例如,保留)存储组件220内的额外空间。所保留的额外空间可通过存储器装置210确定或可由第二命令240指示,且可经保留用于程序文件的更新的第二状态(例如,用于F')。
在一些实例中,主机装置205可将第三命令250发射到存储器装置210。第三命令250可经配置以将补丁文件写入存储组件220的经分配部分(例如,如由第二命令240指定)。举例来说,第三命令250可将补丁文件(例如,F_diff)、与补丁文件相关联的签名(例如,F_diff_signature)及/或与更新程序文件相关联的签名(例如,F'_signature)写入(例如,安全地写入)存储组件220的经分配区域。在一些实例中,可基于第二命令240经发射或在第二命令240经发射之后发射第三命令250。在一些实例中,第三命令250可发射到认证组件215及/或存储组件220且可将至少补丁文件写入存储组件220(例如,在265处)。在其它实例中,第三命令250可将与补丁文件相关联的签名(例如,F_diff_signature)及/或与程序文件的第二状态相关联的签名(例如,F'_signature)写入存储组件220。在一些实例中,第一命令230和第三命令250可为同一命令或可为如图2中所展示的两个独立命令。举例来说,第一命令230可发起更新操作,且第三命令250可将必备文件写入存储组件220。替代地,第一命令230可发起更新操作并且将必备文件写入存储组件220。在单个命令的情况下,命令可在存储组件220的一部分经保留用于文件之后发布。
为了认证写入存储组件220(例如,在265处)的补丁文件,认证组件215可产生一或多个签名以用于认证补丁文件、更新程序文件或两者。举例来说,在255处,认证组件215可产生用于认证补丁文件的签名(例如,第二签名)。签名可使用算法(例如,加密算法)产生且可在运行中产生(例如,每当补丁文件写入存储组件220时),或可经产生且存储到存储器装置210(例如,以供用于后续认证过程)。签名对于存储器装置210可能是唯一的且可便于补丁文件的认证,其可防止存储器装置210从不可信的源接收补丁文件或接收不可信及/或不安全的补丁文件。在产生签名(例如,在255处)之后,认证组件215可在270处将所产生签名与相关联于补丁文件的签名(例如,具有F_diff_signature)进行比较。如果签名匹配,那么补丁文件可经认证(例如,在275处)且程序文件可改变(例如,在280处)。然而,如果签名并不匹配,那么补丁文件可能并未经认证(例如,在275处),且程序文件可能并未改变(即,其可保持在其当前状态中)。在任一例子中(例如,程序文件是否经更新),存储组件220的与更新操作相关联的内容可被删除。
在一些实例中,第一命令230及/或第三命令250可与命令签名相关联。认证组件215可经配置以认证命令签名作为附加的安全层以确保命令及/或命令的源是受信任的。为了认证命令签名,认证组件215可产生一或多个签名以用于认证第一命令230、第三命令250或两者。举例来说,在260处,认证组件215可产生签名(例如,第四签名)以用于认证命令。签名可使用算法(例如,加密算法)产生且可在运行中产生(例如,每当命令由存储器装置210接收到时),或可经产生且存储到存储器装置210(例如,以供用于后续认证过程)。签名对于存储器装置210可能是唯一的且可便于命令的认证,其可防止存储器装置210从不可信的源接收补丁文件或接收不可信及/或不安全的补丁文件。在产生签名(例如,在260处)之后,认证组件215可在270处将所产生签名与相关联于命令的签名进行比较。如果签名匹配,那么补丁文件可经认证(例如,在275处)且程序文件可改变(例如,在280处)。然而,如果签名并不匹配,那么补丁文件可能并未经认证(例如,在275处),且程序文件可能并未改变(即,其可保持在其当前状态中)。在任一例子中(例如,程序文件是否经更新),存储组件220的与更新操作相关联的内容可被删除。
在一些实例中,改变程序文件(例如,在280处)可在接收到第一命令230或第三命令250后初始化。这类初始化可能涉及设置补丁状态223的内容。在初始化之后,改变过程可基于触发事件开始(例如,启动),触发事件可包含启动事件225或第一命令230的接收。改变过程可包含读取补丁文件224和识别程序文件221的将从第一状态修改为第二状态的一部分(例如,第一部分)。程序文件221的处于第一状态的第一部分可移动(例如,复制)到写入缓冲器222中,且补丁状态223可改变(例如,变化)以指示程序文件221的第一部分正写入。在一些实例中,改变过程(例如,在280处)可利用补丁文件224和写入缓冲器222以产生程序文件221的处于第二状态的第一部分。程序文件221的第二状态可替换程序文件221的第一部分。补丁状态223接着可变化以指示完成写入程序文件221的第一部分。改变过程(例如,在280处)可继续读取补丁文件224并识别程序文件221的待修改的第二部分。在一些实例中,存储到写入缓冲器222的内容可由程序文件221的处于第一状态的第二部分替换且遵循本文中所描述的相同序列将程序文件221的第二部分变为第二状态。当补丁文件已全文应用时,程序文件改变过程可完成。
在一些实例中,改变程序文件(例如,在280处)可通过断电或其它事件而中断。在这类情况下,程序文件改变过程可在中断事件结束之后恢复。在这类情况下,程序文件改变过程可读取补丁状态223,且在一些情况下,接着可读取写入缓冲器222和补丁文件224的当前内容以将程序文件221的当前部分从第一状态变为第二状态。在这类操作之后,改变可继续本文中所描述的序列。在其它情况下,程序文件改变过程可包含读取程序文件221的将改变的下一部分且继续本文中所描述的序列。
在一些实例中,改变程序文件(例如,在280处)可通过断电或其它事件中断。在这类情况下,可取消改变程序文件,且可发起恢复过程(例如,在299处)。在这类情况下,恢复过程可读取补丁状态223,获得最后一个写入操作的索引,并且在一些情况下,可在索引位置处用写入缓冲器222的当前内容替换程序文件221的部分。在一些实例中,恢复过程可在索引之前一个步骤的位置的处读取补丁文件224且确定程序文件221的处于第二状态的部分。程序文件的处于第二状态的此部分可在写入缓冲器222中复制,且补丁状态223可变化以指示在索引之前的一个位置处的部分。恢复过程可读取补丁文件224和写入缓冲器222以在索引之前的一个位置处产生程序文件的处于第一状态的部分。
在一些实例中,补丁状态223随后可变化以指示在索引恢复之前的一个位置处的部分。恢复过程可继续以读取补丁文件224且识别程序文件221的待恢复的另一部分,用程序文件221的处于第二状态的下一部分替换写入缓冲器222,且遵循本文中所描述的序列以将程序文件的下一部分变化(例如,改变)为其第一状态。恢复过程(例如,在299处)可在补丁文件已全文恢复且程序文件221以第一状态存在时完成。
在一些实例中,程序文件改变过程(例如,在299处)可通过断电或其它事件中断。在这类情况下,恢复过程可在中断事件结束之后恢复。在这类情况下,恢复过程可包含读取补丁状态223,且在一些情况下,可包含读取写入缓冲器222和补丁文件224的当前内容以将程序文件221的当前部分从第二状态变为第一状态且接着继续本文中所描述的序列。在一些情况下,恢复过程可包含读取程序文件221的将恢复的下一部分且继续本文中所描述的序列。
在一些实例中,认证组件215可验证(例如,认证)程序文件的更新状态。如本文中所论述,第一命令230及/或第三命令250可包含与程序文件的第二状态相关联的签名(例如,F'_signature)。认证组件215可经配置以认证签名以确保程序文件恰当地更新。为了签名,认证组件215可产生一或多个签名以用于认证程序文件的更新状态。举例来说,在285处,认证组件215可产生签名(例如,第三签名)。签名可使用算法(例如,加密算法)产生且可在运行中产生(例如,每当补丁文件由存储器装置210接收时),或可经产生且存储到存储器装置210(例如,以供用于后续认证过程)。签名对于存储器装置210可能是唯一的且可便于更新程序文件的认证,其可防止存储器装置210运行不恰当地更新的程序文件。在产生签名(例如,在285处)之后,认证组件215可认证更新程序文件(例如,在290处)。然而,如果签名并不匹配,那么程序文件可恢复到先前状态(例如,在299处)。
在如本文中所描述的更新过程期间,主机装置205可询问更新的当前状态。举例来说,主机装置205可询问更新是已开始、在进行中,还是完成,及/或是否出现错误。主机装置205可询问过程的特定步骤或子步骤是否完成。为了询问更新的状态,主机装置205可将状态命令295发射到存储器装置210。由于主机装置205可询问更新过程中的各种台阶的状态,状态命令295可在图2中描绘的任何操作之前或之后发射到存储器装置210。
在一些实例中,状态命令295可在本文中所描述的操作期间不同地(例如,多次)发射。举例来说,主机205可将第一命令230发射到存储器装置210。在发射第一命令230之后,主机205可发射状态命令295以询问更新是已开始、在进行中,还是完成,及/或是否出现错误。主机205可接收更新已开始、在进行中或完成的应答,或更新尚未开始、不在进行中、未完成,或出现错误的否定应答。
另外或替代地,可在第二命令240已经发射之后发射状态命令295(例如,通过主机205)。在一些实例中,主机205可发射状态命令295以询问封装区域的一部分是否已经保留以存储补丁文件(例如,F_diff)、与补丁文件相关联的签名(例如,F_diff_signature)及/或与更新程序文件相关联的签名(例如,F'_signature)。主机205可接收存储组件220的部分已经保留的应答,或存储组件220的部分尚未保留或在保留所述部分时出现错误的否定应答。
在其它实例中,可在第三命令250已经发射之后发射状态命令295(例如,通过主机205)。在一些实例中,主机205可发射状态命令295以询问补丁文件(例如,F_diff)、与补丁文件相关联的签名(例如,F_diff_signature)及/或与更新程序文件相关联的签名(例如,F'_signature)是否写入存储组件220的保留部分。主机205可接收补丁文件(例如,F_diff)、与补丁文件相关联的签名(例如,F_diff_signature)及/或与更新程序文件相关联的签名(例如,F'_signature)写入保留部分的应答,或补丁文件(例如,F_diff)、与补丁文件相关联的签名(例如,F_diff_signature)及/或与更新程序文件相关联的签名(例如,F'_signature)未写入保留部分或在写入文件时出现错误的否定应答。
在一些实例中,状态命令295可询问程序文件是否成功地从第一状态改变为第二状态(例如,在280处)。如果成功地改变,那么存储器装置210可将确认程序文件的成功更新的通知297发射到主机装置205。在一些实例中,包含应答的通知被称为ACK(例如,存储器装置210可发射ACK)。然而,如果程序文件未成功地从第一状态改变为第二状态,那么存储器装置210可将确认程序文件的不成功更新的通知297发射到主机装置205。在一些实例中,包含不成功应答的通知可被称作否定应答或NACK(例如,存储器装置210可发射NACK)。在NACK的情况下,存储器装置210可将程序文件恢复到先前状态(例如,在299处)。
存储器装置可归因于各种事件(例如,错误)的发生将NACK发射到主机装置205。举例来说,补丁文件可能已成功地写入存储组件220,与补丁文件相关联的签名可能并不与由存储器装置210产生(例如,在255处)的签名匹配,与第一命令230及/或第三命令250相关联的签名可能并不与由存储器装置210产生(例如,在265处)的签名匹配,及/或与程序文件的更新版本相关联的签名可能并不与由存储器装置210产生(例如,在285处)的签名匹配。在任何这类事件中,存储器装置210可将指示错误的通知297发射到主机装置205,且可将程序文件恢复到先前状态(例如,在299处)。
存储器装置210可经配置以在程序文件并未成功地从第一状态改变为第二状态的情况下将程序文件恢复到先前状态。如本文中所论述,归因于包含但不限于断电、数据损坏及/或一或多个签名未认证的各种事件,程序文件可能并未成功地改变。在其它实例中,存储器装置210可确定主机装置205的一或多个特性,例如主机装置205的因特网协议(IP)地址。基于特性是否由存储器装置210视为可信,可改变或不改变程序文件。在任何这类事件中,可能有利的是避免程序文件在其当前状态中运行以避免其它错误。相应地,当存储器装置210确定程序文件未成功地改变时,存储器装置210可将程序文件恢复到其先前状态(例如,恢复到F)。在其它实例中,存储器装置210可将程序文件恢复到F之前的状态(例如,恢复到在程序文件更新到F之前的状态)。这类先前状态可存储(例如,存档)到存储组件220或存储器装置210的另一存储组件。在将程序文件恢复到先前状态之后,存储组件220的与更新操作相关联的内容可被删除。
如上文所描述,主机装置205和存储器装置210可经配置以使用补丁文件(例如,F_diff)将程序文件从第一状态(例如,F)改变为第二状态(例如,F')。为了产生F_diff,主机装置205可对F和F'两者运行算法。然而,在程序文件恢复到先前状态(例如,在299处)的情况下,主机装置205可将算法应用于F和F_diff以便产生F'。在其它实例中,主机装置205可将算法应用于F'和F_diff以产生F。相应地,由主机装置205使用的算法可为可逆的,其可以允许主机装置205产生程序文件及/或改变的程序文件的各种状态。利用可逆算法可确保存储器装置210处的程序文件可更新(例如,改变)及/或在错误的情况下恢复到先前状态。
图3展示根据如本文中所公开的实例的支持差分写入操作的存储器装置305的框图300。存储器装置305可为如参考图1和2所描述的存储器装置的方面的实例。存储器装置305可包含接收组件310、认证组件315、改变组件320、写入组件325、保留组件330、产生组件335、比较组件340、发射组件345、恢复组件350、确定组件355、第一存储组件360、第二存储组件365,和执行组件370。这些模块中的每一个可直接或间接地彼此通信(例如,经由一或多个总线)。
接收组件310可在存储器装置处接收用于使用补丁文件和与补丁文件相关联的第一签名来将程序文件的一部分从第一状态改变为第二状态的命令,所述补丁文件包含程序文件的部分的第一状态与第二状态之间的差异。在一些实例中,接收组件310可在存储器装置处接收指示缓冲器的存储器分配补丁文件和第一签名的第二命令,其中将补丁文件和第一签名写入缓冲器是基于接收到第二命令。
在一些实例中,接收组件310可在接收到第二命令之后接收第三命令以用于将补丁文件和第一签名写入缓冲器,其中将补丁文件和第一签名写入缓冲器是基于接收到所述第三命令。在一些实例中,接收组件310可接收与程序文件的第二状态相关联的第三签名。在一些实例中,接收组件310可在存储器装置处接收状态命令,所述状态命令包含对使用补丁文件的程序文件的一或多个变化的状态的指示的请求。
认证组件315可基于接收到所述命令使用第一签名且使用第二签名来认证补丁文件,所述第二签名与补丁文件相关联且由存储器装置产生。在一些实例中,认证组件315可在使用补丁文件将程序文件从第一状态改变为第二状态之后使用第三签名来认证程序文件。改变组件320可基于认证补丁文件使用所述补丁文件将程序文件的部分从第一状态改变为第二状态。
写入组件325可将补丁文件和第一签名写入存储器装置的缓冲器,其中认证补丁文件是基于将补丁文件和第一签名写入缓冲器。在一些实例中,写入组件325可基于接收到命令将程序文件的一部分写入存储器装置的缓冲器,其中将程序文件的部分从第一状态改变到第二状态是基于将程序文件的部分写入缓冲器。
保留组件330可基于接收到第二命令而保留缓冲器的一部分以用于写入补丁文件,其中将补丁文件和第一签名写入缓冲器是基于保留。
产生组件335可在存储器装置处使用补丁文件和存储器装置所存储的加密密钥来产生第二签名。在一些实例中,产生组件335可在存储器装置处产生第四签名。
比较组件340可将第一签名与第二签名进行比较,其中认证补丁文件是基于比较。
发射组件345可基于接收到状态命令而将包含程序文件的一或多个变化的状态的通知发射到主机装置。
恢复组件350可基于包含程序文件并未从第一状态改变为第二状态的指示的通知而将程序文件恢复到第一状态。
确定组件355可确定第四签名与相关联于命令的签名匹配,其中补丁文件基于确定而写入存储器装置的缓冲器。在一些实例中,确定组件355可确定与存储器装置相关联的启动事件的发生,其中将程序文件从第一状态改变为第二状态是基于确定启动事件的发生。
第一存储组件360可以是如参考图2所描述的存储组件220的实例或可以是不同存储组件的实例。在一些实例中,第一存储组件360可存储程序文件、程序文件的将从第一状态更新(例如,改变)为第二状态的一部分,及/或补丁文件(例如,F_diff)。在其它实例中,第一存储组件360可存储与补丁文件相关联的签名(例如,F_diff_signature)及/或与程序文件的更新状态相关联的签名(例如,F'_signature)。第一存储组件360可经配置以与存储器装置305的其它组件通信以便改变程序文件的状态。
第二存储组件365可以是如参考图2所描述的存储组件220的实例或可以是不同存储组件的实例。另外或替代地,第二存储组件365可以是与第一存储组件360相同或不同的存储组件。在一些实例中,第二存储组件365可能存储程序文件、程序文件的将从第一状态更新(例如,改变)为第二状态的一部分,及/或补丁文件(例如,F_diff)。在其它实例中,第二存储组件365可存储与补丁文件相关联的签名(例如,F_diff_signature)及/或与程序文件的更新状态相关联的签名(例如,F'_signature)。第二存储组件365可经配置以与存储器装置305的其它组件通信以便改变程序文件的状态。
执行组件370可将补丁文件应用于程序文件以便将程序文件从第一状态改变为第二状态。在一些实例中,执行组件可经配置以与存储器装置305的其它组件通信以便改变程序文件的状态。
图4展示说明根据如本文中所公开的实例的支持差分写入操作的一或多个方法400的流程图。方法400的操作可由如本文中所描述的存储器装置或其组件实施。举例来说,方法400的操作可由如参考图3所描述的存储器装置执行。在一些实例中,存储器装置可执行一组指令以控制存储器装置的功能元件,以执行所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的方面。
在405处,非易失性存储器装置可接收用于使用补丁文件和与所述补丁文件相关联的第一签名来将程序文件从第一状态改变为第二状态的命令,所述补丁文件包含程序文件的部分的第一状态与第二状态之间的差异。可以根据本文中所描述的方法来执行405的操作。在一些实例中,405的操作的方面可由如参考图3所描述的接收组件执行。
在410处,存储器装置可基于接收到命令使用第一签名且使用第二签名来认证补丁文件,所述第二签名与补丁文件相关联且由存储器装置产生。可以根据本文中所描述的方法来执行410的操作。在一些实例中,可由如参考图3所描述的认证组件来执行410的操作的方面。
在415处,存储器装置可基于认证补丁文件使用所述补丁文件通过至少一个过渡状态将程序文件从第一状态改变为第二状态。可以根据本文中所描述的方法来执行415的操作。在一些实例中,可由如参考图3所描述的改变组件执行415的操作的方面。
在420处,存储器装置可基于检测到与非易失性存储器装置相关联的一或多个事件来将程序文件从任何状态改变为第二状态。可以根据本文中所描述的方法来执行415的操作。在一些实例中,可由如参考图3所描述的改变组件执行415的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多个方法,例如方法400。设备可包含用于进行以下操作的特征、装置或指令(例如,非暂时性计算机可读媒体存储可由处理器执行的指令):在存储器装置处接收用于使用补丁文件和与补丁文件相关联的第一签名来将程序文件从第一状态改变为第二状态的命令,补丁文件包含程序文件的第一状态与第二状态之间的差异;基于接收到命令使用第一签名且使用第二签名来认证补丁文件,所述第二签名与补丁文件相关联且由存储器装置产生;基于认证补丁文件使用所述补丁文件来将程序文件从第一状态改变为第二状态。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:将补丁文件和第一签名写入存储器装置的缓冲器,其中认证补丁文件可基于将补丁文件和第一签名写入缓冲器。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:在存储器装置处接收指示缓冲器的存储器分配补丁文件和第一签名的第二命令,其中将补丁文件和第一签名写入缓冲器可基于接收到第二命令。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:基于接收到第二命令而保留缓冲器的一部分以用于写入补丁文件,其中将补丁文件和第一签名写入缓冲器可基于保留。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:在接收到第二命令之后接收第三命令以用于将补丁文件和第一签名写入缓冲器,其中将补丁文件和第一签名写入缓冲器可基于接收到第三命令。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:在存储器装置处使用补丁文件和存储器装置所存储的加密密钥来产生第二签名,及将第一签名与第二签名进行比较,其中认证补丁文件可基于比较。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:接收与程序文件的第二状态相关联的第三签名,且在使用补丁文件将程序文件从第一状态改变为第二状态之后使用所述第三签名来认证程序文件。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:基于接收到命令将程序文件写入存储器装置的缓冲器,其中将程序文件从第一状态改变为第二状态可基于将程序文件写入缓冲器。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:在存储器装置处接收状态命令,所述状态命令包含对使用补丁文件的程序文件的一或多个变化的状态的指示的请求,及基于接收到状态命令而将包含程序文件的一或多个变化的状态的通知发射到主机装置。
在本文中所描述的方法400和设备的一些实例中,通知包含程序文件基于改变从第一状态改变为第二状态的应答。本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:基于包含程序文件并未从第一状态改变为第二状态的指示的通知将程序文件恢复到第一状态。
在本文中所描述的方法400和设备的一些实例中,将程序文件从第一状态改变为第二状态可包含用于将程序文件更新到新状态或将程序文件恢复到先前状态的操作、特征、装置或指令。本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:在存储器装置处产生第四签名,及确定第四签名与相关联于命令的签名匹配,其中补丁文件可基于确定而写入存储器装置的缓冲器。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:确定与存储器装置相关联的启动事件的发生,其中将程序文件从第一状态改变为第二状态可基于确定启动事件的发生。在本文中所描述的方法400和设备的一些实例中,存储器装置包含一组非易失性存储器单元。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:检测与非易失性存储器装置相关联的断电事件,其中检测到断电事件指示程序文件的额外改变,且其中将程序文件从任何状态改变为第二状态是至少部分地基于检测到断电事件。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:将程序文件的第一部分写入存储器装置的非易失性缓冲器,程序文件的第一部分包括第一状态;将程序文件的第一部分的过渡状态的至少一部分写入非易失性缓冲器;及用程序文件的第二部分替换程序文件的处于第一状态的第一部分,其中将程序文件从第一状态改变为第二状态是至少部分地基于将程序文件第一部分写入非易失性缓冲器。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:用程序文件的处于第一状态的第二部分替换程序文件的处于第一状态的第一部分;将程序文件的第二部分的过渡状态的至少一部分写入非易失性缓冲器;及用程序文件的处于第二状态的第二部分替换程序的处于第一状态的第二部分,其中将程序文件的第二部分从第一状态改变为第二状态是至少部分地基于将程序文件的第二部分写入非易失性缓冲器。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:确定补丁文件的全部内容已应用于将程序文件从第一状态改变为第二状态;接收与程序文件的第二状态相关联的第三签名;使用第三签名认证程序文件;及至少部分地基于程序文件未经认证而发布通知。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:检测事件在非易失性存储器装置处的发生;及使用存储在非易失性缓冲器处的程序文件的最新过渡状态来恢复程序文件从第一状态到第二状态的改变。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:检测第二事件在非易失性存储器装置处的发生;及用存储在非易失性缓冲器中的程序文件的处于第一状态的一部分替换程序的改变部分。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:用程序文件的处于第二状态的第一部分替换程序文件的处于第一状态的部分;将关于程序文件的处于第二状态的第一部分的过渡状态的信息写入非易失性缓冲器;及用程序文件的处于第一状态的第一部分替换程序的处于第二状态的第一部分,其中程序文件的第一部分从第二状态改变为第一状态是至少部分地基于将程序文件的第一部分写入缓冲器。
本文中所描述的方法400和设备的一些实例可进一步包含用于进行以下操作的操作、特征、装置或指令:确定补丁文件的全部内容已应用于将程序文件从第二状态改变为第一状态;及至少部分地基于确定补丁文件的全部内容已经应用而发布通知。
图5展示说明根据如本文中所公开的实例的支持差分写入操作的一或多个方法500的流程图。方法500的操作可由如本文中所描述的存储器装置或其组件实施。举例来说,方法500的操作可由如参考图3所描述的存储器装置执行。在一些实例中,存储器装置可执行一组指令以控制存储器装置的功能元件,以执行所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的方面。
在505处,非易失性存储器装置可接收用于使用补丁文件和与所述补丁文件相关联的第一签名来将程序文件从第一状态改变为第二状态的命令,所述补丁文件包含程序文件的第一状态与第二状态之间的差异。可以根据本文中所描述的方法来执行505的操作。在一些实例中,505的操作的方面可由如参考图3所描述的接收组件执行。
在510处,存储器装置可将补丁文件和第一签名写入存储器装置的非易失性缓冲器,其中认证补丁文件是基于将补丁文件和第一签名写入缓冲器。可以根据本文中所描述的方法来执行510的操作。在一些实例中,510的操作的方面可由如参考图3所描述的写入组件执行。
在515处,存储器装置可基于接收到命令使用第一签名且使用第二签名来认证补丁文件,所述第二签名与补丁文件相关联且由存储器装置产生。可以根据本文中所描述的方法来执行515的操作。在一些实例中,可由如参考图3所描述的认证组件来执行515的操作的方面。
在520处,存储器装置可基于认证补丁文件使用所述补丁文件通过至少一个过渡状态将程序文件从第一状态改变为第二状态。可以根据本文中所描述的方法来执行520的操作。在一些实例中,可由如参考图3所描述的改变组件执行520的操作的方面。
在525处,存储器装置可基于检测到与非易失性存储器装置相关联的一或多个事件来将程序文件从任何状态改变为第二状态。可以根据本文描述的方法来执行525的操作。在一些实例中,可由如参考图3所描述的改变组件执行525的操作的方面。
图6展示说明根据如本文中所公开的实例的支持差分写入操作的一或多个方法600的流程图。方法600的操作可由如本文中所描述的存储器装置或其组件实施。举例来说,方法600的操作可由如参考图3所描述的存储器装置执行。在一些实例中,存储器装置可执行一组指令以控制存储器装置的功能元件,以执行所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的方面。
在605处,非易失性存储器装置可接收用于使用补丁文件和与所述补丁文件相关联的第一签名来将程序文件从第一状态改变为第二状态的命令,所述补丁文件包含程序文件的第一状态与第二状态之间的差异。可以根据本文中所描述的方法来执行605的操作。在一些实例中,605的操作的方面可由如参考图3所描述的接收组件执行。
在610处,存储器装置可在存储器装置处接收指示缓冲器的存储器分配补丁文件和第一签名的第二命令,其中将补丁文件和第一签名写入缓冲器是基于接收到第二命令。可根据本文中所描述的方法来执行610的操作。在一些实例中,610的操作的方面可由如参考图3所描述的接收组件执行。
在615处,存储器装置可将补丁文件和第一签名写入存储器装置的缓冲器,其中认证补丁文件是基于将补丁文件和第一签名写入缓冲器。可以根据本文中所描述的方法来执行615的操作。在一些实例中,615的操作的方面可由如参考图3所描述的写入组件执行。
在620处,存储器装置可基于接收到命令使用第一签名且使用第二签名来认证补丁文件,所述第二签名与补丁文件相关联且由存储器装置产生。可根据本文中所描述的方法来执行620的操作。在一些实例中,可由如参考图3所描述的认证组件来执行620的操作的方面。
在625处,存储器装置可基于认证补丁文件使用所述补丁文件通过至少一个过渡状态将程序文件从第一状态改变为第二状态。可以根据本文中所描述的方法来执行625的操作。在一些实例中,可由如参考图3所描述的改变组件执行625的操作的方面。
在630处,存储器装置可基于检测到与非易失性存储器装置相关联的一或多个事件来将程序文件从任何状态改变为第二状态。可以根据本文中所描述的方法来执行630的操作。在一些实例中,可由如参考图3所描述的改变组件执行630的操作的方面。
应注意,上文描述的方法描述了可能的实施方案,且操作和步骤可以重新布置或以其它方式加以修改,且其它实施方案是可能的。此外,可以组合方法中的两个或更多个的各部分。
描述了一种设备。设备可包含:第一存储组件,其经配置以存储程序文件,其中程序文件的至少一部分经配置以使用补丁文件和与补丁文件相关联的第一签名从第一状态改变为第二状态;第二存储组件,其经配置以在至少部分地基于接收到命令而将程序文件的部分从第一状态改变为第二状态的操作期间存储程序文件的部分和补丁文件;认证组件,其经配置以使用第一签名且使用第二签名来认证补丁文件;及执行组件,其经配置以通过将程序文件从第一状态改变为第二状态来更新程序文件。
在一些实例中,认证组件可经配置以产生第二签名。在一些实例中,认证组件可经配置以确定所述第一签名与所述第二签名匹配,且程序文件至少部分地基于所述第一签名与所述第二签名匹配而从第一状态改变为第二状态。在一些实例中,执行组件可经配置以通过将程序文件从第一状态改变为第二状态而将程序文件恢复到先前状态。
在一些实例中,第二存储组件的一部分可为可保留的以基于接收到命令而存储补丁文件。设备的一些实例可包含经配置以基于程序文件从第一状态改变为第二状态而将通知发射到主机装置的发射组件。在一些实例中,第一存储组件和第二存储组件可以是同一存储组件。
描述了一种设备。设备可包含处理器、与处理器耦合的存储器,和存储于存储器中且可由所述处理器执行以使得设备进行以下操作的指令:接收用于使用补丁文件和与补丁文件相关联的第一签名来将程序文件的一部分从第一状态改变为第二状态的命令;基于接收到命令使用第一签名且使用第二签名来认证补丁文件,所述第二签名与补丁文件相关联且由处理器产生;基于认证补丁文件使用所述补丁文件来将程序文件的部分从第一状态改变为第二状态。
在一些实例中,补丁文件可包含用于进行以下操作的操作、特征、装置或指令:接收指示缓冲器的存储器分配补丁文件和第一签名的第二命令;基于接收到第二命令而保留缓冲器的一部分以用于写入补丁文件;及将补丁文件和第一签名写入缓冲器的保留部分。一些实例可进一步包含:接收状态命令,所述状态命令包含对使用补丁文件的程序文件的一或多个变化的状态的指示的请求,及基于接收到状态命令而将包含程序文件的一或多个变化的状态的通知发射到主机装置。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号示出为单个信号;然而,所属领域的一般技术人员将理解,所述信号可表示信号总线,其中总线可具有多种位宽度。
如本文中所使用,术语“虚拟接地”指代保持在大约零伏(0V)的电压下而不直接与接地耦合的电路节点。因此,虚拟接地的电压可能会临时波动并且在稳定状态下返回到约0V。可使用如由运算放大器和电阻器组成的分压器的各种电子电路元件来实施虚拟接地。其它实施方案也是有可能的。“虚拟接地”或“虚拟地接地”是指连接到约0V。
术语“电子通信”、“导电接触”、“连接”和“耦合”可指代组件之间支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可以包含例如开关、晶体管或其它组件等中间组件的间接导电路径。在一些情况下,可例如使用例如开关或晶体管的一或多个中间组件将所连接组件之间的信号流动中断一段时间。
术语“耦合”指代从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。当例如控制器等组件将其它组件耦合在一起时,组件发起允许信号通过先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”指代信号当前无法在组件之间流动的组件之间的关系。如果组件之间存在开路,则它们彼此隔离。举例来说,由定位在两个组件之间的开关间隔开的所述组件在开关断开时彼此隔离。当控制器隔离两个组件时,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
本文中论述的装置,包含存储器阵列,可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些情况下,衬底为半导体晶片。在其它情况下,衬底可为绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可以通过使用包含但不限于磷、硼或砷的各种化学物种的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂手段来进行掺杂。
本文中所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端装置。端子可通过例如金属的导电材料连接到其它电子元件。源极和漏极可以是导电的,并且可以包括经重掺杂半导体区,例如简并半导体区。源极与漏极可由轻掺杂半导体区或沟道分离。如果沟道是n型(即,大部分载体为信号),那么FET可被称作n型FET。如果沟道是p型(即,多数载流子为电穴),那么FET可被称作p型FET。沟道可以由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电性。举例来说,将正电压或负电压相应地施加到n型FET或p型FET可使得沟道变为导电的。当大于或等于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“接通”或“激活”。当小于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“断开”或“去激活”。
本文中结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文所用的术语“示范性”意指“充当实例、例子或说明”,且不比其它实例“优选”或“有利”。详细描述包含具体细节,以便提供对所描述技术的理解。然而,可以在没有这些具体细节的情况下实践这些技术。在一些例子中,以框图的形式展示众所周知的结构和装置以免混淆所描述的实施例的概念。
在附图中,类似组件或特征可具有相同的参考标记。此外,可以通过在参考标记后面跟着短划线和区分类似组件的第二标签来区分相同类型的各种组件。如果在说明书中仅使用第一参考标记,则描述适用于具有相同第一参考标记而与第二参考标记无关的类似组件中的任一者。
结合本文中的公开内容所描述的各种说明性块和模块可使用经设计以执行本文中所描述的功能的通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它这类配置)。
本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果以由处理器执行的软件实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体发射。其它实例及实施方案在本公开及所附权利要求书的范围及精神内。举例来说,归因于软件的性质,上文所描述的功能可使用由处理器、硬件、固件、硬连线或这些中的任何者的组合执行的软件实施。实施功能的特征也可物理上位于各个位置处,包含经分布以使得功能的各部分在不同物理位置处实施。此外,如本文(包含在权利要求书中)所使用,如在项列表(例如,以例如“中的至少一个”或“中的一个或多个”的短语开头的项列表)中所使用的“或”指示包含性列表,使得例如A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文中所使用,短语“基于”不应理解为提及封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A和条件B两者。换句话说,如本文中所使用,短语“基于”应同样地解释为短语“至少部分地基于”。
提供本文描述以使得所属领域的技术人员能够制造或使用本公开。对本公开的各种修改对所属领域的技术人员来说将是显而易见的,且本文所定义的一般原理可在不脱离本公开的范围的情况下应用于其它变体。因此,本公开不限于本文所述的实例和设计,而是被赋予与本文所公开的原理和新颖特征一致的最宽范围。

Claims (27)

1.一种方法,其包括:
在非易失性存储器装置处接收用于使用补丁文件和与所述补丁文件相关联的第一签名来将程序文件从第一状态改变为第二状态的命令,所述补丁文件包括所述程序文件的所述第一状态与所述第二状态之间的差异;
至少部分地基于接收到所述命令使用所述第一签名且使用第二签名来认证所述补丁文件,所述第二签名与所述补丁文件相关联且由所述非易失性存储器装置产生;
至少部分地基于认证所述补丁文件使用所述补丁文件来通过至少一个过渡状态将所述程序文件从所述第一状态改变为所述第二状态;及
至少部分地基于检测到与所述非易失性存储器装置相关联的一或多个事件来将所述程序文件从任何状态改变为所述第二状态。
2.根据权利要求1所述的方法,其进一步包括:
将所述补丁文件和所述第一签名写入所述非易失性存储器装置的非易失性缓冲器,其中认证所述补丁文件是至少部分地基于将所述补丁文件和所述第一签名写入所述非易失性缓冲器。
3.根据权利要求2所述的方法,其进一步包括:
在所述非易失性存储器装置处接收指示所述非易失性缓冲器的存储器分配所述补丁文件和所述第一签名的第二命令,其中将所述补丁文件和所述第一签名写入所述非易失性缓冲器是至少部分地基于接收到所述第二命令。
4.根据权利要求3所述的方法,其进一步包括:
至少部分地基于接收到所述第二命令而保留所述非易失性缓冲器的一部分以用于写入所述补丁文件,其中将所述补丁文件和所述第一签名写入所述非易失性缓冲器是至少部分地基于所述保留。
5.根据权利要求3所述的方法,其进一步包括:
在接收到所述第二命令之后接收第三命令以用于将所述补丁文件和所述第一签名写入所述非易失性缓冲器,其中将所述补丁文件和所述第一签名写入所述非易失性缓冲器是至少部分地基于接收到所述第三命令。
6.根据权利要求1所述的方法,其进一步包括:
在所述非易失性存储器装置处使用所述补丁文件和所述非易失性存储器装置所存储的加密密钥来产生所述第二签名;及
将所述第一签名与所述第二签名进行比较,其中认证所述补丁文件是至少部分地基于所述比较。
7.根据权利要求1所述的方法,其进一步包括:
接收与所述程序文件的所述第二状态相关联的第三签名;及
在使用所述补丁文件将所述程序文件从所述第一状态改变为所述第二状态之后使用所述第三签名来认证所述程序文件。
8.根据权利要求1所述的方法,其进一步包括:
将所述程序文件的第一部分写入所述非易失性存储器装置的非易失性缓冲器,所述程序文件的所述第一部分包括所述第一状态;
将所述程序文件的所述第一部分的过渡状态的至少一部分写入所述非易失性缓冲器;及
至少部分地基于将所述第一部分和所述过渡状态写入所述非易失性缓冲器来用所述程序文件的第二部分替换所述程序文件的所述第一部分,其中将所述程序文件从所述第一状态改变为所述第二状态是至少部分地基于将所述程序文件的所述第一部分写入所述非易失性缓冲器。
9.根据权利要求8所述的方法,其进一步包括∶
用所述程序文件的处于所述第一状态的所述第二部分替换所述程序文件的处于所述第一状态的所述第一部分;
将所述程序文件的所述第二部分的过渡状态的至少一部分写入所述非易失性缓冲器;及
用所述程序文件的处于所述第二状态的所述第二部分替换所述程序文件的处于所述第一状态的所述第二部分,其中将所述程序文件的所述第二部分从所述第一状态改变为所述第二状态是至少部分地基于将所述程序文件的所述第二部分写入所述非易失性缓冲器。
10.根据权利要求9所述的方法,其进一步包括:
确定所述补丁文件的全部内容已应用于将所述程序文件从所述第一状态改变为所述第二状态;
接收与所述程序文件的所述第二状态相关联的第三签名;
确定所述程序文件是否使用所述第三签名来认证;及
至少部分地基于所述程序文件未能使用所述第三签名认证所述程序文件而发布通知。
11.根据权利要求10所述的方法,其进一步包括:
检测事件在所述非易失性存储器装置处的发生;及
使用存储在所述非易失性缓冲器处的所述程序文件的第二过渡状态来恢复所述程序文件从所述第一状态到所述第二状态的改变,所述第二过渡状态比所述过渡状态更新。
12.根据权利要求10所述的方法,其进一步包括:
检测第二事件在所述非易失性存储器装置处的发生;及
至少部分地基于检测到所述第二事件在所述非易失性存储器装置处的所述发生用存储在所述非易失性缓冲器中的所述程序文件的处于所述第一状态的一部分替换所述程序文件的经改变部分。
13.根据权利要求12所述的方法,其进一步包括:
用所述程序文件的处于所第二状态的所述第一部分替换所述程序文件的处于所述第一状态的所述部分;
将所述程序文件的处于所述第二状态的所述第一部分的所述过渡状态写入所述非易失性缓冲器;及
用所述程序文件的处于所述第一状态的所述第一部分替换所述程序文件的处于所述第二状态的所述第一部分,其中将所述程序文件的所述第一部分从所述第二状态改变为所述第一状态是至少部分地基于将所述程序文件的所述第一部分写入所述非易失性缓冲器。
14.根据权利要求13所述的方法,其进一步包括:
确定所述补丁文件的所述全部内容已应用于将所述程序文件从所述第二状态改变为所述第一状态;及
至少部分地基于确定所述补丁文件的所述全部内容经应用而发布通知。
15.根据权利要求1所述的方法,其进一步包括:
在所述非易失性存储器装置处接收状态命令,所述状态命令包括对使用所述补丁文件的所述程序文件的一或多个变化的状态的指示的请求;及
至少部分地基于接收到所述状态命令而将包括所述程序文件的所述一或多个变化的所述状态的通知发射到主机装置。
16.根据权利要求15所述的方法,其中所述通知包括所述程序文件至少部分地基于所述改变而从所述第一状态改变为所述第二状态的应答。
17.根据权利要求1所述的方法,其中:
将所述程序文件从所述第一状态改变为所述第二状态包括将所述程序文件更新为新状态或将所述程序文件恢复到先前状态。
18.根据权利要求1所述的方法,其进一步包括:
在所述非易失性存储器装置处产生第四签名;及
确定所述第四签名与相关联于所述命令的签名匹配,其中所述补丁文件至少部分地基于所述确定而写入所述非易失性存储器装置的缓冲器。
19.根据权利要求1所述的方法,其进一步包括:
检测与所述非易失性存储器装置相关联的断电事件,其中检测到所述断电事件指示所述程序文件的额外改变,且其中将所述程序文件从任何状态改变为所述第二状态是至少部分地基于检测到所述断电事件。
20.一种设备,其包括:
第一存储组件,其经配置以存储程序文件,其中所述程序文件的至少一部分经配置以使用补丁文件和与所述补丁文件相关联的第一签名从第一状态改变为第二状态;
第二存储组件,其经配置以在至少部分地基于接收到命令而将所述程序文件的所述部分从所述第一状态改变为所述第二状态的操作期间存储所述程序文件的所述部分和所述补丁文件;
认证组件,其经配置以使用所述第一签名且使用第二签名来认证所述补丁文件;及
执行组件,其经配置以通过将所述程序文件从所述第一状态改变为所述第二状态来更新所述程序文件。
21.根据权利要求20所述的设备,其中所述认证组件经配置以产生所述第二签名。
22.根据权利要求20所述的设备,其中所述认证组件经配置以确定所述第一签名与所述第二签名匹配,且所述程序文件至少部分地基于所述第一签名与所述第二签名匹配而从所述第一状态改变为所述第二状态。
23.根据权利要求20所述的设备,其中所述执行组件经配置以通过将所述程序文件从所述第一状态改变为所述第二状态而将所述程序文件恢复到先前状态。
24.根据权利要求20所述的设备,其中所述第二存储组件的一部分是可保留的以用于至少部分地基于接收到所述命令而存储所述补丁文件。
25.根据权利要求20所述的设备,其进一步包括:
发射组件,其经配置以至少部分地基于所述程序文件正从所述第一状态改变为所述第二状态而将通知发射到主机装置。
26.根据权利要求20所述的设备,其中所述第一存储组件和所述第二存储组件为同一存储组件。
27.一种设备,其包括:
处理器;
存储器,其与所述处理器耦合;及
指令,其存储于所述存储器中并且可由所述处理器执行以使所述设备进行以下操作:
接收用于使用补丁文件和与所述补丁文件相关联的第一签名来将程序文件的一部分从第一状态改变为第二状态的命令;
至少部分地基于接收到所述命令使用所述第一签名且使用第二签名来认证所述补丁文件,所述第二签名与所述补丁文件相关联且由所述处理器产生;及
至少部分地基于认证所述补丁文件使用所述补丁文件将所述程序文件的所述部分从所述第一状态改变为所述第二状态。
CN202010863511.1A 2019-08-26 2020-08-25 差分写入操作 Active CN112434282B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/551,567 2019-08-26
US16/551,567 US11017846B2 (en) 2019-08-26 2019-08-26 Updating program files of a memory device using a differential write operation

Publications (2)

Publication Number Publication Date
CN112434282A true CN112434282A (zh) 2021-03-02
CN112434282B CN112434282B (zh) 2022-05-17

Family

ID=74681866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010863511.1A Active CN112434282B (zh) 2019-08-26 2020-08-25 差分写入操作

Country Status (2)

Country Link
US (3) US11017846B2 (zh)
CN (1) CN112434282B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11436073B2 (en) * 2020-11-18 2022-09-06 Hewlett Packard Enterprise Development Lp Fault indications for storage system commands

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102282799A (zh) * 2009-01-19 2011-12-14 株式会社东芝 保护控制计测系统和装置以及数据传输方法
CN105511920A (zh) * 2015-12-08 2016-04-20 北京元心科技有限公司 一种基于容器的移动终端操作系统升级方法和装置
CN108710500A (zh) * 2018-05-23 2018-10-26 北京五八信息技术有限公司 资源发布方法、更新方法和装置
US20190155598A1 (en) * 2017-11-17 2019-05-23 Apple Inc. Techniques for updating a file using a multi-version patch file

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070143530A1 (en) * 2005-12-15 2007-06-21 Rudelic John C Method and apparatus for multi-block updates with secure flash memory
US10481901B2 (en) * 2017-04-24 2019-11-19 Amzetta Technologies, Llc System and method for performing firmware update by patching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102282799A (zh) * 2009-01-19 2011-12-14 株式会社东芝 保护控制计测系统和装置以及数据传输方法
CN105511920A (zh) * 2015-12-08 2016-04-20 北京元心科技有限公司 一种基于容器的移动终端操作系统升级方法和装置
US20190155598A1 (en) * 2017-11-17 2019-05-23 Apple Inc. Techniques for updating a file using a multi-version patch file
CN108710500A (zh) * 2018-05-23 2018-10-26 北京五八信息技术有限公司 资源发布方法、更新方法和装置

Also Published As

Publication number Publication date
US11508433B2 (en) 2022-11-22
US20230078377A1 (en) 2023-03-16
US20210065783A1 (en) 2021-03-04
CN112434282B (zh) 2022-05-17
US20210327498A1 (en) 2021-10-21
US11984155B2 (en) 2024-05-14
US11017846B2 (en) 2021-05-25

Similar Documents

Publication Publication Date Title
US11625170B2 (en) Row hammer protection for a memory device
KR20210061454A (ko) 메모리 장치에 대한 오류 정정 관리
US11700118B2 (en) Public key protection techniques
US11899982B2 (en) Command block management
CN114072772A (zh) 具有快速数据存取的错误校正存储器装置
CN113728388A (zh) 用于存储器装置的安全事件检测
US11984155B2 (en) Updating program files of a memory device using a differential write operation
US11870918B2 (en) Security descriptor generation
CN117055915A (zh) 用于管理离线标识升级的技术
CN116057530A (zh) 存储器的安全和保全
WO2022039993A1 (en) Host verification for a memory device
CN113764022A (zh) 用于存储器系统的主机识别
US20230208815A1 (en) Security configurations for zonal computing architecture
US20240073002A1 (en) Generating a shared secret for an electronic system
CN112149155B (zh) 用于存储器系统的有效负载验证
CN113383324B (zh) 用于存储器装置的信道调制
US20230325507A1 (en) Secure operating system update
CN117313079A (zh) 检测存储器系统中的信息修改
CN112149155A (zh) 用于存储器系统的有效负载验证
CN117149055A (zh) 基于检测攻击的用于存储器装置的保护性动作
CN116361789A (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