CN110032405B - ***开机码存储器管理方法、存储器装置与应用其的电子*** - Google Patents
***开机码存储器管理方法、存储器装置与应用其的电子*** Download PDFInfo
- Publication number
- CN110032405B CN110032405B CN201910024870.5A CN201910024870A CN110032405B CN 110032405 B CN110032405 B CN 110032405B CN 201910024870 A CN201910024870 A CN 201910024870A CN 110032405 B CN110032405 B CN 110032405B
- Authority
- CN
- China
- Prior art keywords
- configuration
- boot code
- address
- logic
- updated
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- 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
- G06F9/4406—Loading of operating system
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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
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)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
- Read Only Memory (AREA)
- Storage Device Security (AREA)
Abstract
一种存储器装置包括:一非易失性存储器,具有一第一部分及一第二部分,该第一部分以一第一范围的实体地址表示,该第二部分以一第二范围的实体地址表示,该第一部分与该第二部分以一第一配置与一第二配置中的一目前配置而被使用,该第一部分与该第二部分的其中一者储存一主要开机码而该第一部分与该第二部分的另一者储存一备份开机码;一地址译码器,耦合至该非易失性存储器,用以将接收到的一命令地址映射到该非易失性存储器的一实体地址;以及一控制电路,耦合至该址译码器。回应于一更新后开机码取代该备份开机码,该更新后开机码被执行一预验证操作,对该第一部分与该第二部分暂时以该第一配置与该第二配置的一另一配置而被使用。如果该更新后开机码正常运作,则于***重设后,该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用。如果该更新后开机码无法正常运作,则于***断电重开后,该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用。
Description
技术领域
本发明是有关于一种***开机码存储器管理方法、存储器装置与应用其的电子***。特别是,本技术用以管理及升级程序代码,例如储存于非易失性存储器(non-volatilememory)的基本输入输出***(Basic Input/Output System,BIOS)。
背景技术
一般而言,当计算器***第一次开机或重启,软件中首先被执行的部分是***开机码,***开机码例如是储存于非易失性存储器的基本输入输出***(BIOS)。当开机码执行时,计算器***通常会运行自我测试(self-test)。开机码也包括用以初始化或控制计算器***的基本组件的功能,基本组件例如键盘、显示器、各种碟盘机(例如硬盘、磁盘驱动器、CD-ROM、DVD光驱等)以及各种通信端口,例如串行端口(例如通用串行总线(USB)等)。开机码可初始化开机引导程序(boot loader),开机引导程序可从所选硬盘中加载操作***。若没有有效且具有正常功能的开机码,计算器***将无法开机。
开机码通常储存在非易失性存储器中,因而不会在每次计算器***重启时被擦除,且可于新版本发布时进行更新,例如改进开机码的效率或功能,或例如修正原本开机码的错误(bug)。随着时代演进,开机码的更新也变得更加容易。例如,在新版本的开机码发布时,许多计算器***都具备通过网络下载新版本开机码的自我更新的功能。
由于开机码的重要性,没有采取任何预防手段就直接擦除目前的开机码或直接覆盖目前的开机码,都是不安全的。这是因为可能会发生电源错误或***错误,或下载到损坏的文件。在没有安全防护的情况下,用户可能会面临目前的开机码全部或部分被擦除且更新的开机码还无法用来执行。这将导致用户的计算器***无法正常开机。为了完成保存及更新开机码的程序,传统的计算器***采用双BIOS***(DualBIOS或twinBIOS)。双BIOS***允许下载较新版本的开机码到另一个备份闪存。例如,传统计算器***的主板(motherboard)包括一主BIOS(开机码)闪存及一备份BIOS(开机码)闪存(注意,这个技术所用的「主BIOS闪存」及「备份BIOS闪存」是指两个不同的闪存,用来储存开机码或其他类型的数据)。这些双BIOS***下载新的开机码到备份闪存。当新的开机代码完全下载且被验证,接着计算器***就会在下一个开机循环(boot cycle)将新的开机码复制到主闪存,或是在下一个开机循环以备份闪存开机。通过这个架构,双BIOS***能够保有目前正在运行的开机码的备份,以便在发生像是病毒、电源浪涌或突发电源错误造成的崩溃事件时,能够在下一个开机循环执行备份的开机码。一般而言,主闪存中的开机码会被评估,若此开机码无法通过评估,那么开机码将会从备份闪存中执行。
这种传统的***需要用到两个不同的闪存来储存、更新及执行开机码。使用两个不同的闪存需要用到主板上额外的空间。近日来,使用开机码及需要进行开机码更新的计算器***的类型不仅限于个人或桌上型计算器,而扩展到可穿戴式装置、机顶盒、媒体中心接收器、物联网设备、家用电器、汽车部件、服务器、数据中心等,这些装置的空间限制都是最受重视的。
因此,需要提供一种***开机码存储器管理方法、存储器装置与电子***,以期解决现有技术的缺点。
发明内容
根据本案一示范性实施例,提供一种存储器装置,包括:一非易失性存储器,具有一第一部分及一第二部分,该第一部分以一第一范围的实体地址表示,该第二部分以一第二范围的实体地址表示,该第一部分与该第二部分以一第一配置与一第二配置中的一目前配置而被使用,该第一部分与该第二部分的其中一者储存一主要开机码而该第一部分与该第二部分的另一者储存一备份开机码;一地址译码器,耦合至该非易失性存储器,用以将接收到的一命令地址映射到该非易失性存储器的一实体地址;以及一控制电路,耦合至该址译码器。回应于一更新后开机码取代该备份开机码,该更新后开机码被执行一预验证操作,对该第一部分与该第二部分暂时以该第一配置与该第二配置的一另一配置而被使用。如果该更新后开机码正常运作,则于***重设后,该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用。如果该更新后开机码无法正常运作,则于***断电重开后,该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用。
根据本案另一示范性实施例,提供一种***开机码存储器管理方法,应用于一非易失性存储器,该非易失性存储器具有一第一部分及一第二部分,该第一部分以一第一范围的实体地址表示,该第二部分以一第二范围的实体地址表示,该第一部分与该第二部分以一第一配置与一第二配置中的一目前配置而被使用,该第一部分与该第二部分的其中一者储存一主要开机码而该第一部分与该第二部分的另一者储存一备份开机码,该方法包括:回应于一更新后开机码取代该备份开机码,对该更新后开机码执行一预验证操作,该第一部分与该第二部分暂时以该第一配置与该第二配置的一另一配置而被使用;如果判断该更新后开机码正常运作,则于***重设后,该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用;以及如果判断该更新后开机码无法正常运作,则于***断电重开后,该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用。
根据本案另一示范性实施例,提供一种电子***,包括:一主控制器;以及一存储器装置,耦接至该主控制器。该存储器装置包括:一非易失性存储器,具有一第一部分及一第二部分,该第一部分以一第一范围的实体地址表示,该第二部分以一第二范围的实体地址表示,该第一部分与该第二部分以一第一配置与一第二配置中的一目前配置而被使用,该第一部分与该第二部分的其中一者储存一主要开机码而该第一部分与该第二部分的另一者储存一备份开机码;一地址译码器,耦合至该非易失性存储器,用以将接收到的一命令地址映射到该非易失性存储器的一实体地址;以及一控制电路,耦合至该址译码器。回应于一更新后开机码取代该备份开机码,该主控制器对该更新后开机码执行一预验证操作,对该第一部分与该第二部分暂时以该第一配置与该第二配置的一另一配置而被使用。如果该更新后开机码正常运作,则于***重设后,该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用。如果该更新后开机码无法正常运作,则于***断电重开后,该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用。
本发明的其他方面及优点可通过后续的附图、详细说明及权利要求进一步了解。
附图说明
图1绘示根据本案一示范性实施例的电子***的功能性方块图。
图2绘示根据本案一示范性实施例的一存储器装置的一非易失性存储器的第一及第二部分的第一及第二配置的功能性方块图。
图3绘示根据本案一示范性实施例的图1的电子***的部分的功能性方块图。
图4与图5绘示根据本案一示范性实施例的操作于「双区域更新模式」的存储器装置的示意图。
图6绘示根据本案一示范性实施例的「双区域更新模式」的***开机码存储器管理方法流程图。
【符号说明】
100:***
110:主控制器
112:通信总线
120:存储器控制器
122:通信总线
130:存储器装置
132:总线接口
134:控制电路
136:地址译码器
137:映射表
138:状态逻辑
139:非易失性存储器
140:存储区块
142:第一部分
143:开机码区域
144:第二部分
145:更新码区域
200:第一配置
202:第二配置
302:闩锁逻辑
304:禁止写入逻辑
PQ:预验证标识
602~620:步骤
具体实施方式
以下将搭配附图对本发明的实施例进行详细说明。
图1绘示根据本案一示范性实施例的***100的功能性方块图。***100(亦即电子***100)包括主控制器110、通信总线112、存储器控制器120、通信总线122以及存储器装置130。在***100中,主控制器110可以执行一或多个程序,该(该些)程序以逻辑地址来读取及写入数据。主控制器110通过通信总线112而与存储器控制器120进行通信,且存储器控制器120通过通信总线122而与存储器装置130进行通信。
主控制器110例如是运行操作***的计算器***。操作***通过通信总线112传递请求(例如写入及读取)至存储器控制器120。
主控制器110与存储器控制器120之间的通信总线112例如是***组件互连标准(peripheral component interconnect,PCI)总线、快捷***组件互连标准(peripheralcomponent interconnect express,PCIe)总线、串行ATA(SATA,Serial AdvancedTechnology Attachment)及其他可用适合的通信协议进行通信的总线。
存储器控制器120可通过微控制单元(microcontroller unit,MCU)中的软件或其他逻辑结构来实现,或者可通过专用的存储器控制器芯片来实现。在其他实施例中,主控制器110与存储器控制器120可实现在单处理器上,或者主控制器110与存储器控制器120可为复杂数据处理***的一部分。存储器控制器120可作为主控制器110与存储器装置130之间的接口。存储器控制器120的其中一个功能是将高阶读取请求及高阶写入请求转译为存储器装置130的命令语言(command language),这种命令语言可用来存取存储器装置130上的非易失性存储器139。
存储器控制器120通过通信总线122连接至存储器装置130。为了说明的目的,通信总线122可在存储器控制器120及存储器装置130之间传送数据。通信总线122可包括连接到存储器控制器120及存储器装置130的总线线。
存储器装置130包括总线接口132、控制电路134、地址译码器136及非易失性存储器139。存储器装置130的非易失性存储器139可为单存储单元单位元(single-bit-per-cell)或单存储单元多位(multiple-bit-per-cell)NOR非易失性闪存装置。在其他例子中,非易失性存储器139可包括其他类型的非易失性存储器装置,例如单存储单元单位元或单存储单元多位NAND非易失性闪存装置、相变化存储器、磁性存储器、金属氧化物可编程电阻存储器等。
进一步来说,非易失性存储器139可包括复数个存储区块(block)140用来执行读取及写入操作。例如图1所示,非易失性存储器139的区块140可包括第一部分142及第二部分144。例如,第一部分142可代表从一确切地址xxx(例如,地址000000h)开始的一连续范围的实体地址,且第二部分144可代表从一确切地址yyy(例如地址800000h)开始的另一连续范围。第二部分144可从第一部分142的终止地址的下一个实体地址开始,或者第一部分142与第二部分144之间有额外空间可保留给其他用途或用于扩展第一部分142及/或第二部分144的范围。
存储器装置130的地址译码器136包括一映射表137,且控制电路134包括状态逻辑138。映射表137将从存储器控制器120所接收到的命令地址(例如读取命令地址及写入命令地址)映射至非易失性存储器体139的实体地址。状态逻辑138可用以指示映射表137要读取或写入第一部分142或第二部分144的哪一部分。控制电路134及/或状态逻辑138也可决定并指示存储器装置130是操作于何种模式。例如,控制电路134及/或状态逻辑138可决定并指示存储器装置130是处于一般模式或双区域更新模式,其中双区域更新模式下,第一部分142及第二部分144被用来储存及更新程序代码(例如开机码)。
包括状态逻辑138的控制电路134可存取非易失性存储器139、执行存储器读取及写入操作及保存一目前状态,其中目前状态用以决定非易失性存储器139的第一部分142或第二部分144的哪一部分要被使用或存取。在一实施例中,第一部分142及第二部分144用以储存BIOS或开机码。
控制电路134也可译码通过总线接口132从存储器控制器120接收的命令序列。这些命令序列可包括对应操作程序代码(例如读取、写入、擦除等)、命令地址及/或数据(例如要被写入非易失性存储器139的数据)。控制电路134对非易失性存储器139执行更新BIOS或开机码的更新操作。
图2绘示根据本案一示范性实施例的存储器装置的非易失性存储器的第一及第二部分的第一及第二配置的功能性方块图。
明确来说,图2绘示第一配置200及第二配置202。根据第一配置200,图1的非易失性存储器139的第一部分142用以储存在「开机」期间要被主控制器110所读取的数据(例如开机码),而非易失性存储器139的第二部分144用以写入更新的数据(例如更新的开机码)。在图2的这个例子中,第一部分142及第二部分144可用以储存BIOS或开机码。根据第一配置200,第一部分142包括开机码区域(boot code area)143,其中开机码区域143储存有在「开机」期间使用的开机码(亦可称为主要开机码)。第二部分144包括更新码区域(update codearea)145,其中更新码区域145被用来写入更新的开机码(或者是,存于更新码区域145的开机码亦可称为备份开机码)。根据第二配置202,第一部分142包括更新码区域145,其中更新码区域145被用来写入更新的开机码;而第二部分144包括开机码区域143,其中开机码区域143储存有在「开机」期间使用的开机码。这仅仅是本发明的一个示例性范例且不应被限制于BIOS或开机码。
在图2的第一配置200与第二配置202中,非易失性存储器139的第一部分142的起始地址被指派从实体地址000000h(十六进制制)(也就是二进制制的0000 0000 0000 00000000 0000)开始,而非易失性存储器139的第二部分144的起始地址则被指派为从800000h(也就是二进制制的1000 0000 0000 0000 0000 0000)开始。第一部分142的终止地址可为实体地址7FFFFFh(也就是二进制制的0111 1111 1111 1111 1111 1111);而第二部分144的终止地址可为实体地址FFFFFFh(也就是二进制制的1111 1111 1111 1111 1111 1111)。
进一步地,根据第一配置200,当主控制器110执行一读取操作(其主控制器地址000000h)以从非易失性存储器139读取开机码时,会被导向实体地址000000h(亦即,从第一部分142读出开机码)。再根据第一配置200,当主控制器110执行一写入操作(其主控制器地址800000h)以写入更新的开机码到非易失性存储器139时,会被导向实体地址800000h(亦即,对第二部分144写入更新的开机码)。
进一步地,根据第二配置202,当主控制器110执行读取操作(其主控制器地址000000h)以从非易失性存储器139读取开机码时,会被导向实体地址800000h(亦即,从第二部分144读出开机码)。再根据第二配置202,当主控制器110执行写入操作(其主控制器地址800000h)以写入更新的开机码到非易失性存储器139时,会被导向实体地址000000h(亦即,对第一部分142写入更新的开机码)。
也就是说,不论是第一配置200或第二配置202中,当主控制器110要读出主要开机码时,主控制器110皆是发出相同的主控制器读取地址000000h,但主控制器110被导向不同的存储器实体地址;当主控制器110要写入更新的开机码时,主控制器110皆是发出相同的主控制器写入地址800000h,但主控制器110被导向不同的存储器实体地址。
图2也绘示了变量bootcode-def(位),其可为「使能(enable)」或「禁能(disable)」。当bootcode-def为「使能」时,存储器装置130处于双区域更新模式(例如简称「双模式」),其中在双模式下,允许在继续使用目前开机码时,更新BIOS或开机码。换言之,当bootcode-def为「使能」时,第一配置200与第二配置202皆被用来读取/写入数据(开机码)。若bootcode-def指示为「禁能」时,存储器装置130会操作于传统模式,这表示第一配置200与第二配置202皆不会被使用(亦即双模式被禁用)。换言之,bootcode-def代表启用或禁用的「双区域更新模式」。bootcode-def可由用户设定且bootcode-def的值可储存于一非易失性存储器缓存器(未绘示)。图1的控制电路134及状态逻辑138根据bootcode-def而操作。「bootcode-def」的命名仅为一个例子,是用来指示存储器装置130要操作于传统模式还是双模式。任何其他的命名方式皆可以被使用。或者,变量bootcode-def亦可称为「双区域更新模式使能参数」。
此外,根据第一配置200,变量bootaddr-def等于0。这可代表第一部分142与第二部分144是根据第一配置200被使用。在这个例子中,当bootaddr-def等于0(也就是第一配置),在「开机」期间要被读取的程序代码(开机码)是从非易失性存储器139中为开机码指派的最低的地址开始储存的。此第一配置也可指示程序代码是从非易失性存储器139的最高地址开始储存。bootaddr-def可由用户设定且可被储存于一非易失性存储器缓存器(未绘示)。图1的控制电路134及状态逻辑138根据变量bootaddr-def而操作。同样地,「bootaddr-def」的命名方式只是一个例子,是用以指示非易失性存储器139的哪一个部分储存要被读取的目前程序代码,以及非易失性存储器139的哪一个部分要被写入更新的程序代码。或者是,变量bootaddr-def亦可称为「配置选择参数」。
在第一配置200中,当主控制器110意图要从地址000000h(亦即主控制器地址(host-addr)为000000h)读取目前程序代码时,存储器装置130从实体地址000000h(亦即存储器地址(mem-addr)为000000h)开始读取。当主控制器110意图写入更新的程序代码到地址800000h(亦即主控制器地址为800000h),存储器装置130从地址800000h(亦即存储器地址800000h)开始写入。
根据第二配置202,非易失性存储器139的第二部分144用以储存在开机期间要被读取的数据(例如开机码),且非易失性存储器139的第一部分142用以写入更新的数据(例如更新的开机码)。此外,当bootcode-def为「使能」且bootaddr-def为1时,存储器装置130实行第二配置202。明确来说,在第二配置202中,变量bootaddr-def等于1,这可代表第一部分142与第二部分144根据第二配置202而被使用。在这个例子中,当bootaddr-def等于1(也就是第二配置)时,开机期间要被读取的程序代码(开机码)的储存处是从非易失性存储器的最低地址以外的实体地址开始(例如实体地址800000h,不同于第一配置200中的实体地址000000h)。
如图2所示,根据第二配置202,当主控制器110意图要从地址000000h(亦即主控制器地址(host-addr)为000000h)读取目前程序代码时,存储器装置130从实体地址800000h(亦即存储器地址(mem-addr)为800000h)开始读取。当主控制器110意图写入更新的程序代码到地址800000h(亦即主控制器地址为800000h),存储器装置130从地址000000h(亦即存储器地址000000h)开始写入。
此外,参照图2,第一配置200中第一部分142(开机码区域143)的二进制制地址开始于0000 0000 0000 0000 0000 0000,而在第二配置202中第二部分144(开机码区域143)的二进制制地址起始于1000 0000 0000 0000 0000 0000。因此,通过简易地翻转地址的最高有效位,开机码区域143的实体地址可取决于所执行的配置而改变。如搭配图3所描述的更多细节,指定给bootaddr-def的值可致使控制电路134与状态逻辑138变换物理存储器地址的最高有效位,以使得能够从非易失性存储器139中适合的区域读取程序代码,以及将程序代码更新(写入)到非易失系存储器139中适合的区域。
图3绘示图1中的部分的功能性方块图。
明确来说,图3绘示图1的***100的控制电路134、地址译码器136以及非易失性存储器139等部分。请参照图3,***100可更包括地址逻辑300、闩锁逻辑302与EXOR逻辑303。地址逻辑300、闩锁逻辑302与EXOR逻辑303皆为图1中控制电路134的状态逻辑138的一部分。预验证标识PQ储存于控制电路134的易失性存储器缓存器中。
bootaddr-def的值储存于控制电路134的一非易失性存储器缓存器中。bootaddr-def的值可由闩锁逻辑302接收。如前面说明的,变量bootaddr-def可为「1」或「0」,用以指示***100使用第一配置或第二配置操作。第一配置可指图2的第一配置200,而第二配置可指图2的第二配置202。
每次***100开机时,闩锁逻辑302接收一上电触发信号(power up trigger),并输出一输出信号FF_OUT。也就是说,当上电触发信号使能时,闩锁逻辑302的输出信号FF_OUT等于变量bootaddr-def。然而,闩锁逻辑302的输出信号FF_OUT的值将不会被改变,直到***100重启且上电触发信号致使闩锁逻辑302重新闩锁bootaddr-def的值。
输出信号FF_OUT与预验证标识(prequalify flag)PQ输入至EXOR逻辑303,且EXOR逻辑303输出变量bootaddr(亦可称为开机地址参数)。变量bootaddr输入至地址逻辑300与禁止写入逻辑304。预验证标识PQ的预设为0。
如图3所示,地址逻辑300取得变量bootcode-def的值以及写入命令的写入地址的最高有效位。bootcode-def的值储存于控制电路134的一非易失性存储器缓存器中。变量bootcode-def如前面参照图2所说明的。基本上,bootcode-def指示双区域更新模式(即双模式)是启用还是禁用。若双模式被禁用,***100将操作在传统方法下。若双模式被启用,***100将使用如图2所示的两个不同配置进行操作。bootcode-def的值可为「0」或「1」,其中如图3所示,「0」代表禁用双模式,「1」代表启用双模式。上述的值仅仅是个示例,其意义是可以对调的。
由地址逻辑300获得的「主控制器写入地址的最高有效位(host mostsignificant bit of write address)」(或「主控制器读取地址的最高有效位(hostmostsignificant bit of read address)」)是由主控制器写入命令(或读取命令)标示出的写入地址(或读取地址)的最高有效位(也可称为主控制器地址的最高有效位)。也就是主控制器110意图要写入/读取的地址的最高有效位。为方便说明,底下以写入为例做说明。图3将主控制器写入地址的最高有效位标示为「HMSBaddr」。地址逻辑300也接收由闩锁逻辑302与EXOR逻辑303所决定的bootaddr的值。地址逻辑300的操作如下所述。
当bootcode-def为禁能(亦即禁能双区域更新模式),(1)由地址逻辑300输出的变量「MMSaddr」等于HMSBaddr,且(2)变量bootaddr以及inhibit-write被忽略。当bootcode-def为使能(亦即使能双区域更新模式)时,(1)若bootaddr等于「0」,则变数MMSaddr等于HMSBaddr,而(2)若bootaddr等于「1」,则变数MMSaddr等于HMSSBaddr的反相值(invertedvalue)。也可以说,(1)当bootaddr等于「0」,对非易失性存储器139的读/写可视为是第一配置200,而(2)当bootaddr等于「1」,对非易失性存储器139的读/写可视为是第二配置202。
地址译码器136接收地址逻辑300提供的MMSaddr以及主控制器写入地址的其余部分(也就是「主控制器写入地址的最低有效位(host least significant bits of writeaddress)」或「HLSBaddr」))。地址译码器136结合MMSaddr与HLSBaddr,并使用映射表137(如图1所示)以辨别非易失性存储器139的哪个实体地址应该要被存取。例如,若主控制器110发送一写入命令到地址000000h(即0000 0000 0000 0000 0000 0000),当bootcode-def为使能且bootaddr为1时,地址译码器136会将由MMSaddr表示的此写入命令的最高有效位从「0」翻转(反相)为「1」,并结合具有「1」的MMSaddr与具有值「000 0000 0000 0000 00000000」的HLSBaddr。其结果为「1000 0000 0000 0000 0000 0000」,被映射表137用来寻址到对应的实体地址。另一方面,例如,若主控制器110发送一写入命令到地址000000h(即00000000 0000 0000 0000 0000),当bootcode-def为使能且bootaddr为0时,地址译码器136会并结合具有「0」的MMSaddr与具有值「000 0000 0000 0000 0000 0000」的HLSBaddr。其结果为「0000 0000 0000 0000 0000 0000」,被映射表137用来寻址到对应的实体地址。
为了增加一层安全防护,禁止写入逻辑304被用来避免开机码区域143在更新码区域145上的程序代码更新并验证完成之前被覆写或擦除。禁止写入逻辑304接收(1)来自闩锁逻辑302的bootaddr、(2)来自地址逻辑300的MMSaddr及(3)bootcode-def。基于这些输入,禁止写入逻辑304可为开机码区域143及更新码区域145使能或禁能一禁止写入的状态。
变量bootaddr及inhibit-write的值无法由用户设置,只能由***100或***100的逻辑设置。此外,这些值可储存于易失性或非易失性存储器中。
图4与图5绘示根据本案一示范性实施例的操作于「双区域更新模式」的存储器装置的示意图。为方便解释,图4与图5以第一配置为例来说明,但习知此技者当可从下列说明来了解如何应用至第二配置。
请同时参考图3至图5。在第一配置下,变量bootaddr-def=0。如果尚未写入更新的开机码至更新码区域145,则预验证标识PQ为0(处于默认值)。故而,变量bootaddr-def=0且预验证标识PQ为0,EXOR逻辑303输出变量bootaddr=0。在此时,开机码(代码A)要从第一部分142读取,而当要更新开机码时,更新版的开机码则写入至第二部分144。也就是说,如上述般,当处于第一配置且当变量bootaddr=0时,当主控制器意图要从地址000000h(亦即主控制器地址(host-addr)为000000h)读取开机码A时,存储器装置130从实体地址000000h(亦即存储器地址(mem-addr)为000000h)开始读取开机码A。当主控制器意图写入更新的程序代码C到地址800000h(亦即主控制器地址为800000h),存储器装置130从地址800000h(亦即存储器地址800000h)开始写入程序代码C。
之后,进行更新码操作,对第二部分144解除「禁止写入」并擦除原先的备份开机码B。之后,将新的开机码C写入至第二部分144,并且对新的开机码C进行保护(亦即,对第二部分144使能「禁止写入」)。如果新的开机码C已完全写入至第二部分,则在本案示范性实施例中,主控制器110对于新的开机码C进行预验证,其细节如下。
当主控制器110对于新的开机码C进行预验证时,主控制器110将预验证标识PQ设为1且主控制器110发出***重设指令,但此***重设指令不能触发断电重开机循环(poweroff-on cycle)(亦即不能触发上电触发信号),以避免将预验证标识PQ复原为0,这是因为预验证标识PQ乃是存于状态逻辑134的一内部易失性缓存器之内,如果触发断电重开机循环的话,则预验证标识PQ会被复原为0。由于预验证标识PQ由0变为1且bootaddr-def=0,EX逻辑303所输出的变量bootaddr=1(由0变为1),故而,对于此时的主控制器而言,当主控制器意图要从地址000000h(亦即主控制器地址(host-addr)为000000h)读取开机码时,存储器装置130从实体地址800000h(亦即存储器地址(mem-addr)为800000h)开始读取。这是因为输入至地址逻辑300的变量bootaddr由0变为1,故而,地址译码器136所输出的地址会成为800000h。简言之,在此时(bootaddr-def=0且PQ=1),存储器装置130由第二部分144读取更新版的开机码C,以回传给主控制器110,以当成开机码。也就是说,在此实施例中,在此时,第二部分144「暂时」被架构成「开机码区域」而第一部分142「暂时」被架构成「更新码区域」。亦即,在此时,配置暂时从第一配置变成第二配置,但主控制器110仍未变更变量bootaddr-def的值。
如果主控制器110能够使用更新版程序代码C来完成开机的话(也就是说,更新版程序代码C是正确无误的),则主控制器110将变量bootaddr-def变更/反相(例如,bootaddr-def=!bootaddr-def)(将变数bootaddr-def由0变为1)。于下次断电重开时,闩锁逻辑302将会读取到已变为1的bootaddr-def且由于断电重开,所以预验证标识PQ已回复到0,故而,经由EXOR逻辑303的逻辑运算,变量bootaddr=1,亦即代表,在此时,已成功变为第二配置,第二部分144已被架构成「开机码区域」而第一部分142已被架构成「更新码区域」。亦即,之后,主控制器110从第二部分读出程序代码C当成开机码。
相反地,如图5所示,如果主控制器110无法使用更新版程序代码C来完成开机的话(也就是说,更新版程序代码C是错误的),则***100将会宕机(死机),则主控制器110不会变动变量bootaddr-def。于下次断电重开时,闩锁逻辑302将会读取到仍为0的bootaddr-def且由于断电重开,所以预验证标识PQ已回复到0,故而,经由EXOR逻辑303的逻辑运算,变量bootaddr=0,亦即代表,在此时,从暂时的第二配置复原为第一配置,亦即,第二部分144被复原为「更新码区域」而第一部分142被复原为「开机码区域」,亦即主控制器110仍由第一部分142来读出程序代码A为开机码。
也就是说,在本案示范性实施例中,于更新版的开机码写入至更新码区域后,通过使能预验证标识PQ,暂时地变更配置。如果主控制器110能够用更新版的开机码来成功开机的话,则配置将会被固定(配置变化为:「第一配置」→「暂时性的第二配置」→「第二配置」);如果主控制器110无法用更新版的开机码来成功开机的话,则配置将会被复原(如,配置变化为:「第一配置」→「暂时性的第二配置」→(复原成)「第一配置」)。
经由上述描述可知,在更新开机码时,即便是更新版的开机码C是错误的,通过本案上述实施例的预验证做法,主控制器110可以在不伤害到原开机码A的情况下,先行确认更新版的开机码C是正确或错误的(亦即对更新版的开机码C进行预验证),以避免在因为写入错误的更新版开机码,造成***死机无法救回的情况。
此外,如上述般,为达成本案上述示范性实施例的特点(预验证),所需的电路与控制方式并不复杂,故而,本案上述示范性实施例具有成本低、容易实施、容易控制、零风险更新开机码的优点。
图6显示根据本案一示范性实施例的「双区域更新模式」的***开机码存储器管理方法流程图。如图6所示,于步骤602中,***开机。于步骤604中,主控制器110检查预验证标识PQ是否为1。如果预验证标识PQ为1,则于步骤606中,主控制器110检查更新后的开机码是否能通过预验证。如果更新后的开机码通过预验证,于步骤608中,变更配置选择参数(主控制器变更变量bootaddr-def的值),如此,于下次上电触发信号使能时,可将配置由第一配置200(第二配置202)变成第二配置202(第一配置200)。于步骤610中,执行一般***操作。
如果更新后的开机码无法通过预验证,于步骤612中,主控制器不会变更变量bootaddr-def的值,断电重开(使得预验证标识PQ回复为0)以将配置复原。于步骤614中,用原开机码开机。
如果预验证标识PQ为0,则于步骤616中,检查是否要进行开机码更新。如果要进行开机码更新,于步骤618中,将更新的开机码写入至更新码区域并将预验证标识PQ设为1,之后,流程回至步骤602。
如果不进行开机码更新,于步骤620中执行一般***操作。
综上所述,本案可通过预验证更新的开机码,来避免因为更新到错误的开机码所导致的宕机或死机。亦即,在将更新的开机码设定为主要的开机码之前,主控制器会对更新的开机码进行预验证。在进行预验证时,具有更新的开机码的区域暂时被架构为开机码区域,而具有原本开机码的区域暂时被架构为更新码区域。如果主控制器可利用更新的开机码来成功开机(亦即更新的开机码可正确运作的话),则具有更新的开机码的区域会被架构为开机码区域,而具有原本开机码的区域会被架构为更新码区域。相反地,如果主控制器无法利用更新的开机码来成功开机(亦即更新的开机码无法正确运作的话),则具有更新的开机码的区域会被架构回为更新码区域,而具有原本开机码的区域会被架构为开机码区域(使得***利用原本开机码来开机)。
虽然本发明已通过参考实施例及各种例子对细节说明如上,然可以理解的是此些例子仅是作为说明之用,并非用来限制本发明。本领域的技术人员将能轻易地在本发明的精神和所附权利要求的范围内进行修改和组合。
Claims (16)
1.一种存储器装置,包括:
一非易失性存储器,具有一第一部分及一第二部分,该第一部分以一第一范围的实体地址表示,该第二部分以一第二范围的实体地址表示,该第一部分与该第二部分以一第一配置与一第二配置中的一目前配置而被使用,该第一部分与该第二部分的其中一者储存一主要开机码而该第一部分与该第二部分的另一者储存一备份开机码;
一地址译码器,耦合至该非易失性存储器,用以将接收到的一命令地址映射到该非易失性存储器的一实体地址;以及
一控制电路,耦合至该地址译码器,
其中,回应于一更新后开机码取代该备份开机码,该更新后开机码被执行一预验证操作,对该第一部分与该第二部分暂时以该第一配置与该第二配置的一另一配置而被使用,
如果该更新后开机码正常运作,则于***重设后,该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用,
如果该更新后开机码无法正常运作,则于***断电重开后,该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用;
其中该控制电路包括:
一闩锁逻辑,响应于一上电触发信号而闩锁一配置选择参数;
一EXOR逻辑,耦接于该闩锁逻辑,接收该闩锁逻辑的一输出信号与一预验证标识而输出一开机地址参数;
一地址逻辑,耦接于该EXOR逻辑,根据该开机地址参数、一双区域更新模式使能参数与一主控制器地址的最高有效位而输出一输出变量给该地址译码器;以及
一禁止写入逻辑,耦接于该EXOR逻辑与该地址逻辑,根据该开机地址参数、一双区域更新模式使能参数与该地址逻辑的输出变量而为该第一部分或该第二部分使能或禁能一禁止写入的状态。
2.如权利要求1所述的存储器装置,其中:
回应于该更新后开机码取代该备份开机码,该预验证标识被使能,
回应于该预验证标识被使能,该EXOR所输出的该开机地址参数变化,使得该地址逻辑所输出的该输出变量改变,该地址译码器导向一不同存储器地址,以使得该第一部分与该第二部分暂时以该第一配置与该第二配置的该另一配置而被使用。
3.如权利要求2所述的存储器装置,其中
响应于该更新后开机码正常运作,改变该配置选择参数,以使得该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用。
4.如权利要求2所述的存储器装置,其中
响应于该更新后开机码无法正常运作,保持该配置选择参数,以使得该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用。
5.如权利要求1所述的存储器装置,其中该预验证标识储存于该控制电路的一内部易失性缓存器内。
6.一种***开机码存储器管理方法,应用于权利要求1至5中任一项所述的存储器装置,该存储器装置包括一非易失性存储器,该非易失性存储器具有一第一部分及一第二部分,该第一部分以一第一范围的实体地址表示,该第二部分以一第二范围的实体地址表示,该第一部分与该第二部分以一第一配置与一第二配置中的一目前配置而被使用,该第一部分与该第二部分的其中一者储存一主要开机码而该第一部分与该第二部分的另一者储存一备份开机码,该方法包括:
回应于一更新后开机码取代该备份开机码,对该更新后开机码执行一预验证操作,该第一部分与该第二部分暂时以该第一配置与该第二配置的一另一配置而被使用,
如果判断该更新后开机码正常运作,则于***重设后,该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用,以及
如果判断该更新后开机码无法正常运作,则于***断电重开后,该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用。
7.如权利要求6所述的方法,更包括:
响应于一上电触发信号而闩锁一配置选择参数;
接收该闩锁逻辑的一输出信号与一预验证标识而输出一开机地址参数;以及
根据该开机地址参数、一双区域更新模式使能参数与一主控制器地址的最高有效位而输出一输出变量。
8.如权利要求7所述的方法,其中:
回应于该更新后开机码取代该备份开机码而使能该预验证标识,
响应于该预验证标识被使能,改变该开机地址参数与该输出变量,导向一不同存储器地址,以使得该第一部分与该第二部分暂时以该第一配置与该第二配置的该另一配置而被使用。
9.如权利要求8所述的方法,其中
响应于该更新后开机码正常运作,改变该配置选择参数,以使得该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用。
10.如权利要求8所述的方法,其中
响应于该更新后开机码无法正常运作,保持该配置选择参数,以使得该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用。
11.如权利要求7所述的方法,其中该预验证标识储存于一内部易失性缓存器内。
12.一种电子***,包括:
一主控制器;以及
一存储器装置,耦接至该主控制器,该存储器装置包括:
一非易失性存储器,具有一第一部分及一第二部分,该第一部分以一第一范围的实体地址表示,该第二部分以一第二范围的实体地址表示,该第一部分与该第二部分以一第一配置与一第二配置中的一目前配置而被使用,该第一部分与该第二部分的其中一者储存一主要开机码而该第一部分与该第二部分之另一者储存一备份开机码;
一地址译码器,耦合至该非易失性存储器,用以将接收到的一命令地址映射到该非易失性存储器的一实体地址;以及
一控制电路,耦合至该地址译码器,
其中,回应于一更新后开机码取代该备份开机码,该主控制器对该更新后开机码执行一预验证操作,对该第一部分与该第二部分暂时以该第一配置与该第二配置的一另一配置而被使用,
如果该更新后开机码正常运作,则于***重设后,该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用,
如果该更新后开机码无法正常运作,则于***断电重开后,该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用;
其中该控制电路包括:
一闩锁逻辑,响应于一上电触发信号而闩锁一配置选择参数;
一EXOR逻辑,耦接于该闩锁逻辑,接收该闩锁逻辑的一输出信号与一预验证标识而输出一开机地址参数;以及
一地址逻辑,耦接于该EXOR逻辑,根据该开机地址参数、一双区域更新模式使能参数与一主控制器地址的最高有效位而输出一输出变量给该地址译码器;
一禁止写入逻辑,耦接于该EXOR逻辑与该地址逻辑,根据该开机地址参数、一双区域更新模式使能参数与该地址逻辑的输出变量而为该第一部分或该第二部分使能或禁能一禁止写入的状态。
13.如权利要求12所述的电子***,其中:
回应于该更新后开机码取代该备份开机码,该主控制器使能该预验证标识,
回应于该预验证标识被使能,该EXOR所输出的该开机地址参数变化,使得该地址逻辑所输出的该输出变量改变,该地址译码器导向一不同存储器地址,以使得该第一部分与该第二部分暂时以该第一配置与该第二配置的该另一配置而被使用。
14.如权利要求13所述的电子***,其中
响应于该更新后开机码正常运作,该主控制器改变该配置选择参数,以使得该第一部分与该第二部分以该第一配置与该第二配置的该另一配置而被使用。
15.如权利要求13所述的电子***,其中
响应于该更新后开机码无法正常运作,该主控制器保持该配置选择参数,以使得该第一部分与该第二部分回复至以该第一配置与该第二配置的该目前配置而被使用。
16.如权利要求12所述的电子***,其中该预验证标识储存于该控制电路的一内部易失性缓存器内。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/868,896 US10445088B2 (en) | 2018-01-11 | 2018-01-11 | System boot code clone |
US15/868,896 | 2018-01-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110032405A CN110032405A (zh) | 2019-07-19 |
CN110032405B true CN110032405B (zh) | 2022-03-15 |
Family
ID=61192657
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810232378.2A Active CN110032520B (zh) | 2018-01-11 | 2018-03-20 | ***开机代码存储器管理方法、存储器装置及其制造方法 |
CN201811264242.6A Active CN110032403B (zh) | 2018-01-11 | 2018-10-26 | 存储器装置与电子装置的启动程序加载方法 |
CN201910024870.5A Active CN110032405B (zh) | 2018-01-11 | 2019-01-10 | ***开机码存储器管理方法、存储器装置与应用其的电子*** |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810232378.2A Active CN110032520B (zh) | 2018-01-11 | 2018-03-20 | ***开机代码存储器管理方法、存储器装置及其制造方法 |
CN201811264242.6A Active CN110032403B (zh) | 2018-01-11 | 2018-10-26 | 存储器装置与电子装置的启动程序加载方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10445088B2 (zh) |
EP (1) | EP3511826B1 (zh) |
CN (3) | CN110032520B (zh) |
TW (3) | TWI678613B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI666556B (zh) * | 2018-03-27 | 2019-07-21 | 緯創資通股份有限公司 | 電子裝置及其操作方法 |
KR102646630B1 (ko) * | 2018-10-01 | 2024-03-11 | 삼성전자주식회사 | 시스템 런타임 환경에서 dram 셀 상의 라이트 보호 커맨드를 발행하는 방법 |
US11762575B2 (en) | 2019-07-31 | 2023-09-19 | Hewlett-Packard Development Company, L.P. | Updates to flash memory based on determinations of bits to erase |
FR3105854A1 (fr) * | 2019-12-31 | 2021-07-02 | Stmicroelectronics (Rousset) Sas | Système embarqué |
CN111338668B (zh) * | 2020-02-14 | 2022-05-10 | 支付宝(杭州)信息技术有限公司 | 用于实时计算中的代码升级的方法及装置 |
TWI768316B (zh) * | 2020-03-30 | 2022-06-21 | 旺宏電子股份有限公司 | 記憶體裝置以及安全開機的記憶體管理方法 |
CN113495808A (zh) * | 2020-04-01 | 2021-10-12 | 旺宏电子股份有限公司 | 存储器装置以及安全开机的存储器管理方法 |
US11734018B2 (en) * | 2020-07-17 | 2023-08-22 | Western Digital Technologies, Inc. | Parallel boot execution of memory devices |
TWI805946B (zh) * | 2020-09-29 | 2023-06-21 | 瑞昱半導體股份有限公司 | 內嵌式系統及控制非揮發性記憶體之方法 |
TWI755184B (zh) | 2020-12-03 | 2022-02-11 | 聯陽半導體股份有限公司 | 電子裝置及其開機方法 |
US11550494B2 (en) * | 2021-02-03 | 2023-01-10 | Macronix International Co., Ltd. | Method to support high reliability multiple times program non-volatile configuration setting |
FR3128543B1 (fr) * | 2021-10-26 | 2023-12-22 | Sagemcom Broadband Sas | Procede de verrouillage d’une memoire non-volatile reinscriptible et dispositif electronique mettant en œuvre ledit procede |
US11797230B2 (en) * | 2021-12-14 | 2023-10-24 | Hewlett-Packard Development Company, L.P. | Bios variables storage |
CN116700061B (zh) * | 2023-04-12 | 2024-05-03 | 广东为辰信息科技有限公司 | 一种基于安全启动技术的快速启动方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205548B1 (en) * | 1998-07-31 | 2001-03-20 | Intel Corporation | Methods and apparatus for updating a nonvolatile memory |
US6275931B1 (en) * | 1998-06-22 | 2001-08-14 | Elsag International N.V. | Method and apparatus for upgrading firmware boot and main codes in a programmable memory |
US7017004B1 (en) * | 2002-03-29 | 2006-03-21 | Microsoft Corporation | System and method for updating contents of a flash ROM |
CN101206579A (zh) * | 2006-12-18 | 2008-06-25 | 纬创资通股份有限公司 | 避免基本输出入***程序更新失败的计算机***及其方法 |
CN101667128A (zh) * | 2008-09-05 | 2010-03-10 | 华硕电脑股份有限公司 | 更新与修复基本输入输出***的方法 |
CN103186434A (zh) * | 2011-12-31 | 2013-07-03 | 国民技术股份有限公司 | 恢复基本输入输出***的方法及*** |
CN104102585A (zh) * | 2013-04-03 | 2014-10-15 | 群联电子股份有限公司 | 映射信息记录方法、存储器控制器与存储器储存装置 |
US8880962B2 (en) * | 2012-04-24 | 2014-11-04 | International Business Machines Corporation | Maintenance planning and failure prediction from data observed within a time window |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282675B1 (en) | 1997-08-06 | 2001-08-28 | Macronix International Co., Ltd. | Fault-tolerant architecture for in-circuit programming |
US6473856B1 (en) * | 1999-06-30 | 2002-10-29 | International Business Machines Corporation | Gold code backup for corrupt boot code recovery |
US6748480B2 (en) | 1999-12-27 | 2004-06-08 | Gregory V. Chudnovsky | Multi-bank, fault-tolerant, high-performance memory addressing system and method |
US20010047473A1 (en) * | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
US6757838B1 (en) * | 2000-10-13 | 2004-06-29 | Hewlett-Packard Development Company, L.P. | Hardware independent implementation of computer system BIOS recovery |
US6651188B2 (en) * | 2001-06-29 | 2003-11-18 | Intel Corporation | Automatic replacement of corrupted BIOS image |
US7089549B2 (en) * | 2002-04-01 | 2006-08-08 | International Business Machines Corp. | Updating flash memory |
JP2004013719A (ja) * | 2002-06-10 | 2004-01-15 | Fujitsu Ltd | 多重化された不揮発性メモリの更新回路、及び多重化された不揮発性メモリの更新方法 |
TW200506731A (en) * | 2003-08-05 | 2005-02-16 | Via Tech Inc | Computer system with multiple basic input/output system (BIOS) memory blocks |
US8667249B2 (en) * | 2004-12-22 | 2014-03-04 | Intel Corporation | Systems and methods exchanging data between processors through concurrent shared memory |
US9003000B2 (en) * | 2006-07-25 | 2015-04-07 | Nvidia Corporation | System and method for operating system installation on a diskless computing platform |
TW200825915A (en) | 2006-12-07 | 2008-06-16 | Wistron Corp | Computer system and related method for preventing from failing to update BIOS program |
CN100501679C (zh) * | 2007-02-27 | 2009-06-17 | 华为技术有限公司 | 一种电子设备 |
US20090006834A1 (en) * | 2007-06-29 | 2009-01-01 | Michael Rothman | Proxied firmware updates |
US8156299B2 (en) | 2007-10-19 | 2012-04-10 | Virident Systems Inc. | Managing memory systems containing components with asymmetric characteristics |
TWI460657B (zh) * | 2008-09-05 | 2014-11-11 | Asustek Comp Inc | 更新與修復基本輸入輸出系統的方法 |
US8266408B2 (en) | 2009-03-17 | 2012-09-11 | Memoir Systems, Inc. | System and method for storing data in a virtualized high speed memory system |
US8397039B2 (en) * | 2010-02-12 | 2013-03-12 | Symantec Corporation | Storage systems and methods |
TWI441081B (zh) | 2011-11-04 | 2014-06-11 | Asrock Inc | 更新韌體方法與開機方法及使用其之電子裝置 |
TWI443507B (zh) * | 2011-12-05 | 2014-07-01 | Giga Byte Tech Co Ltd | 自動修復系統及其自動修復方法 |
KR101991905B1 (ko) * | 2012-07-19 | 2019-06-24 | 삼성전자주식회사 | 불휘발성 메모리, 불휘발성 메모리의 읽기 방법 및 불휘발성 메모리를 포함하는 메모리 시스템 |
US9158683B2 (en) | 2012-08-09 | 2015-10-13 | Texas Instruments Incorporated | Multiport memory emulation using single-port memory devices |
US9378572B2 (en) * | 2012-08-17 | 2016-06-28 | Intel Corporation | Shared virtual memory |
US20140089561A1 (en) | 2012-09-26 | 2014-03-27 | Kiran Pangal | Techniques Associated with Protecting System Critical Data Written to Non-Volatile Memory |
TWI514281B (zh) | 2014-08-28 | 2015-12-21 | 具spi介面的sata儲存裝置、應用該sata儲存裝置之開機方法及基本輸入輸出系統程式碼更新方法 | |
US10019358B2 (en) | 2015-03-20 | 2018-07-10 | Vixs Systems Inc. | Bank address remapping to load balance memory traffic among banks of memory |
TWI556172B (zh) | 2015-09-04 | 2016-11-01 | 神雲科技股份有限公司 | 電腦裝置及其開機方法 |
US10055296B2 (en) * | 2015-10-30 | 2018-08-21 | Quanta Computer Inc. | System and method for selective BIOS restoration |
CN106776376B (zh) * | 2015-11-24 | 2019-08-06 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制电路单元及存储装置 |
CN106814968B (zh) * | 2015-11-27 | 2020-03-17 | 群联电子股份有限公司 | 存储器管理方法与***及其存储器存储装置 |
-
2018
- 2018-01-11 US US15/868,896 patent/US10445088B2/en active Active
- 2018-01-30 EP EP18154123.6A patent/EP3511826B1/en active Active
- 2018-03-16 TW TW107109176A patent/TWI678613B/zh active
- 2018-03-20 CN CN201810232378.2A patent/CN110032520B/zh active Active
- 2018-10-25 TW TW107137817A patent/TWI703498B/zh active
- 2018-10-26 CN CN201811264242.6A patent/CN110032403B/zh active Active
-
2019
- 2019-01-07 TW TW108100560A patent/TWI722361B/zh active
- 2019-01-10 CN CN201910024870.5A patent/CN110032405B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275931B1 (en) * | 1998-06-22 | 2001-08-14 | Elsag International N.V. | Method and apparatus for upgrading firmware boot and main codes in a programmable memory |
US6205548B1 (en) * | 1998-07-31 | 2001-03-20 | Intel Corporation | Methods and apparatus for updating a nonvolatile memory |
US7017004B1 (en) * | 2002-03-29 | 2006-03-21 | Microsoft Corporation | System and method for updating contents of a flash ROM |
CN101206579A (zh) * | 2006-12-18 | 2008-06-25 | 纬创资通股份有限公司 | 避免基本输出入***程序更新失败的计算机***及其方法 |
CN101667128A (zh) * | 2008-09-05 | 2010-03-10 | 华硕电脑股份有限公司 | 更新与修复基本输入输出***的方法 |
CN103186434A (zh) * | 2011-12-31 | 2013-07-03 | 国民技术股份有限公司 | 恢复基本输入输出***的方法及*** |
US8880962B2 (en) * | 2012-04-24 | 2014-11-04 | International Business Machines Corporation | Maintenance planning and failure prediction from data observed within a time window |
CN104102585A (zh) * | 2013-04-03 | 2014-10-15 | 群联电子股份有限公司 | 映射信息记录方法、存储器控制器与存储器储存装置 |
Also Published As
Publication number | Publication date |
---|---|
TW201931115A (zh) | 2019-08-01 |
TWI722361B (zh) | 2021-03-21 |
TWI703498B (zh) | 2020-09-01 |
CN110032520A (zh) | 2019-07-19 |
US20190212999A1 (en) | 2019-07-11 |
CN110032403A (zh) | 2019-07-19 |
TWI678613B (zh) | 2019-12-01 |
US10445088B2 (en) | 2019-10-15 |
EP3511826A1 (en) | 2019-07-17 |
CN110032403B (zh) | 2022-02-22 |
TW201931111A (zh) | 2019-08-01 |
CN110032405A (zh) | 2019-07-19 |
EP3511826B1 (en) | 2022-03-16 |
TW201937367A (zh) | 2019-09-16 |
CN110032520B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032405B (zh) | ***开机码存储器管理方法、存储器装置与应用其的电子*** | |
US7430662B2 (en) | Techniques for initializing a device on an expansion card | |
US7908466B2 (en) | Method and apparatus for booting a microprocessor system using boot code stored on a serial flash memory array having a random-access interface | |
US8601255B2 (en) | Approaches for updating bios | |
US10977050B2 (en) | Method for managing system boot code memory, memory device and electronic system using the same | |
US20080098381A1 (en) | Systems and methods for firmware update in a data processing device | |
TW201624273A (zh) | 韌體變量更新方法 | |
US9886408B2 (en) | Data access protection for computer systems | |
WO2006069492A1 (en) | Manageability extension mechanism for system firmware | |
US11226811B2 (en) | Power safe offline download | |
US7849300B2 (en) | Method for changing booting sources of a computer system and a related backup/restore method thereof | |
US9361123B2 (en) | Boot from logical volume spanning plurality of PCI devices | |
JP2005182812A (ja) | コンピュータシステムにおいてイメージファイルを格納するシステムおよび方法 | |
WO2022199622A1 (zh) | 一种电子设备的启动程序的运行方法和电子设备 | |
US10817213B2 (en) | Data storage device and operating method for data storage device | |
CN112667544A (zh) | 一种控制主板插槽使能的方法、装置、***及介质 | |
US20220066784A1 (en) | Disabling software persistence | |
US20210389937A1 (en) | Systems And Methods For Fixing Incompatibilities In Field Firmware Updates | |
CN112883384A (zh) | 一种强鲁棒性的嵌入式计算机引导加载程序的保护方法 | |
KR20230001522A (ko) | 펌웨어 이미지의 부트 업 활성화를 위한 시스템들 및 방법 | |
JP2005182811A (ja) | コンピュータシステムにおいてイメージファイルを提供するシステムおよび方法 | |
CN112148201A (zh) | 数据写入方法、装置及存储介质 | |
TW202115579A (zh) | 電腦基本輸入輸出系統 bios 修復方法及實施該修復方法之電腦系統 |
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 |