CN101042654A - 从一非就地执行内存进行开机的方法与装置 - Google Patents
从一非就地执行内存进行开机的方法与装置 Download PDFInfo
- Publication number
- CN101042654A CN101042654A CNA2006101431236A CN200610143123A CN101042654A CN 101042654 A CN101042654 A CN 101042654A CN A2006101431236 A CNA2006101431236 A CN A2006101431236A CN 200610143123 A CN200610143123 A CN 200610143123A CN 101042654 A CN101042654 A CN 101042654A
- Authority
- CN
- China
- Prior art keywords
- internal memory
- spot
- operation system
- error
- detecting
- 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
Links
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- 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/4403—Processor initialisation
-
- 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/44568—Immediately runnable code
- G06F9/44573—Execute-in-place [XIP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了从一非就地执行内存进行开机的方法与装置,其利用不具有错误校正功能的一开机引擎来从一非就地执行内存进行开机。该装置包含有:一非就地执行内存,用来存储多个操作***映像文件以及一开机引导程序;一就地执行内存;以及一程序代码映射模块,用来将该开机引导程序映射至该就地执行内存中并加以执行,以对该非就地执行内存中的至少一操作***映像文件进行错误检测,若一特定操作***映像文件经该检测无误,则将该特定操作***映像文件映射至该就地执行内存中,其中该程序代码映射模块在开机过程中不具有错误校正能力。
Description
技术领域
本发明有关于从一非就地执行内存进行开机的技术,尤指利用在开机过程中不具有错误校正能力的一开机引擎来从一非就地执行内存进行开机的方法与装置。
背景技术
NOR型闪存(flash)与NAND型闪存是两种常见的闪存架构。NOR型闪存是一种具备就地执行(Execution in Place,XIP)功能的内存(以下简称XIP内存),不仅支持开机且存储于其中的程序代码可直接执行而无需先加载到其它内存中。然而,NOR型闪存的缺点之一是容量过于受限。要存储图像与内容的话,NAND型闪存是较佳的选择,特别是对高阶的通讯装置而言。NAND型闪存优于NOR型闪存的地方,在于程序执行与数据写入速度较快且容量较高。由于NAND型闪存是一种非就地执行内存(non-XIPmemory,以下简称非XIP内存),因此要开机前必须先将开机程序代码映射(即加载)到一XIP内存当中,例如一动态存取内存(RAM)。非XIP内存常会面临位翻转(bit-flipping)的问题,即内存中的位会有反转或被记述成反转的情形。位翻转的问题会对中央处理单元造成严重的后果。因此,当要从一非XIP内存开机时,***会于程序代码映射(Code Shadowing)的过程中进行错误检测(EDC)及错误校正(ECC)处理。
从一非XIP内存来开机的方式,可以完全用硬件方式来进行,也可以用软件搭配硬件的方式来实现。以硬件方式来进行的方法又称为开机引擎(bootengine)法。开机引擎会由现有的技术来暂停中央处理单元的运作(例如栅控输入中央处理单元的时间脉冲信号或传送一重置信号给中央处理单元等等),并将非XIP内存中所存储的一开机引导程序(boot loader code)映射至XIP内存中。接着,开机引擎会执行该开机引导程序以将存储于非XIP内存中的操作***映像文件(OS image)映射到XIP内存中,并同时进行错误检测及错误校正的动作。程序代码映射、错误检测及错误校正等处理都是由开机引擎来进行。等到所有开机码都映射到XIP内存之后,开机引擎会重新使能中央处理单元,使中央处理单元执行XIP内存中所存储的操作***映像文件。简言之,现有的开机引擎法是利用不同于以往的中央处理单元的一硬件组件(即开机引擎),来处理包括硬件初始化、程序代码映射、错误检测、错误校正及操作***激活在内的所有开机程序。
至于软件开机法则会利用存储有开机引导程序的一只读存储器(ROM)。该只读存储器会映射到中央处理单元的地址空间的最前端,并包含有一重置程序代码(Reset Code)。中央处理单元会先执行该重置程序代码以对硬件进行初始化作业,接着再执行该只读存储器中的开机引导程序。该开机引导程序用来将非XIP内存中的操作***映像文件映射至该XIP内存中。与前述的开机引擎的功能相类似,该中央处理单元也会执行该开机引导程序以同时进行错误检测及错误校正的程序。等到所有的映像文件都映射完成后,该中央处理单元便会开始执行该XIP内存中的操作***映像文件。简言之,现有的软件开机法是利用一中央处理单元来处理包括硬件初始化、程序代码映射、错误检测、错误校正及操作***激活在内的所有开机程序。
现有的软件开机法需要较长的时间才能完成开机程序,但实施起来较为容易。而现有的硬件开机法所需的开机时间较短,但由于需要使用复杂的错误检测/错误校正电路,故硬件复杂度较高。由上述可知,如何降低开机程序所需的时间又同时能减低硬件的复杂度,实为业界有待解决的问题。
发明内容
因此本发明的目的之一在于提供由一非就地执行内存进行开机的***及方法,以解决上述问题。
本发明提供了一种开机***的实施例,其包含有:一非就地执行内存,用来存储多个操作***映像文件以及一开机引导程序;一就地执行内存,耦接于该非就地执行内存;以及一程序代码映射模块,耦接于该非就地执行内存及该就地执行内存,用来将该开机引导程序映射至该就地执行内存中并加以执行,以对存储于该非就地执行内存中的至少一操作***映像文件进行错误检测,若一特定操作***映像文件经该错误检测判定为无误,则该程序代码映射模块会将该特定操作***映像文件映射至该就地执行内存中,其中该程序代码映射模块在开机过程中不具有错误校正能力。
本发明另提供了一种从一非就地执行内存进行开机的方法的实施例,其中该非就地执行内存存储有多个操作***映像文件及一开机引导程序。该方法包含有:提供一就地执行内存;将该非就地执行内存中的该开机引导程序映射至该就地执行内存中;执行映射至该就地执行内存中的开机引导程序以对存储于该非就地执行内存中的至少一操作***映像文件进行错误检测;以及若一特定操作***映像文件经该错误检测判定为无误,则将该特定操作***映像文件映射至该就地执行内存中;其中在开机过程中未进行任何错误校正程序。
附图说明
图1为本发明的开机***的第一实施例的示意图。
图2为描述本发明从一非XIP内存进行开机的方法的第一实施例的流程图。
图3为描述本发明从一非XIP内存进行开机的方法的第二实施例的流程图。
主要组件符号说明
100 开机***
20 中央处理单元
30 非就地执行内存
40 非XIP内存接口
50 开机引擎
60 就地执行内存
70 时间脉冲信号
80 与门
具体实施方式
请参考图1,其是依据本发明的第一实施例所表示的一开机***100的示意图。开机***100用来从一非就地执行内存(以下简称非XIP内存)进行开机。在本实施例中,开机***100包含有一中央处理单元20、一就地执行内存(以下简称XIP内存)60、一开机引擎50、一时间脉冲信号70、一非XIP内存30、以及一非XIP内存接口40。本实施例中的非XIP内存30以一非挥发性内存来实现,例如一NAND型序列式闪存,而XIP内存60则以一挥发性内存来实现,例如一随机存取内存(RAM),但此仅为一实施例,而非局限本发明的实际实施方式。非XIP内存30中会存储一开机引导程序以及多个操作***映像文件(OS images)。由于非XIP内存30并不支持就地执行(Execution in Place)功能,故这些操作***映像文件及该开机引导程序必须先映射至XIP内存60中才能加以执行。请注意,本实施例中的开机引擎50在开机过程中仅具有错误检测的能力,但无法进行错误校正的动作,故每一操作***映像文件会复制成多个复制文件(duplicate),而每一复制文件都存储在非XIP内存30中的不同区块。将所述操作***映像文件存储在非XIP内存30的不同区域中来作为备份映像文件的方式,可大幅降低前述位翻转的问题。这是因为非XIP内存30中同时存储有多个备份文件,故可增加完全无误的操作***映像文件存在的机率。请注意,每一操作***映像文件的备份文件个数可由***设计者自行决定,而非开机***100的限制条件。
当开机***100初始化之后,开机引擎50便会被激活,以将该开机引导程序映射至XIP内存60中。在开机过程中,开机引擎50会利用现有的技术来暂停中央处理单元20的运作,例如,开机引擎50可利用栅控时间脉冲的方式来暂停中央处理单元的运作。如图1所示,本实施例中利用一与门(AND gate)80来作为时间脉冲栅控单元。因此,只要开机引擎50输出一逻辑低信号(亦即“0”)至与门80,与门80的输出便会被迫变成“0”,进而栅除或隔绝中央处理单元20的时间脉冲输入。一旦开机引擎50输出逻辑高信号(亦即“1”)时,中央处理单元20又会重新激活。请注意,如所属技术领域中具有通常知识者所知,前述的时间脉冲栅控单元也可用其它逻辑栅来实现,图1中的与门80仅为用来方便说明的一实施例。
接着,开机引擎50会执行映射至XIP内存60中的该开机引导程序,以对所选定的一操作***映像文件进行错误检测的动作,并将该选定的操作***映像文件映射至XIP内存60中。开机引擎50会对非XIP内存30中存储一第一操作***映像文件的一第一区块(即一预设区块)进行前述的动作。在本实施例中,开机引擎50在开机过程中仅具有错误检测的能力,而无法进行错误校正处理。倘若该错误检测未检测出任何错误,则该第一操作***映像文件便会被映射至XIP内存60中,以作为一检测无误的操作***映像文件。然而,若该错误检测发现有错误存在,由于开机引擎50无法进行错误校正处理,故开机引擎50会对非XIP内存30中存储该第一操作***映像文件的一第一复制文件的区块进行错误检测。倘若该第一复制文件也被检测出错误,则开机引擎50会再对非XIP内存30中存储该第一操作***映像文件的一第二复制文件的区块进行错误检测。将操作***映像文件进行多次备份的方式可大幅降低该操作***映像文件内容出错的可能性。一旦该操作***映像文件的其中一复制文件被检测为正确无误,则该检测无误的复制文件便会被映射至XIP内存60中。简言的,开机引擎50会重复进行错误检测的动作,以找到完全无误的操作***映像文件,并将其映射至XIP内存60。此时,中央处理单元20会被激活,以便开始执行映射于XIP内存60当中的操作***映像文件。
在一较佳实施例中,开机引擎50并不具有用来进行错误校正的硬件,故可大幅降低硬件的复杂度。然而,在另一实施例中,开机引擎50仍可具备错误校正的能力,但会在开机程序当中将其错误校正硬件的功能关闭(disabled)。如此一来,前述的映像文件映射程序仍可正常进行,故这类的开机引擎架构仍属于本发明的范围。此外,图1中所示的非XIP内存接口40内建(embedded)于开机引擎50中,并耦接于非XIP内存30。开机引擎50与非XIP内存30两者间透过非XIP内存接口40来进行数据交流。实际上,如所属技术领域中具有通常知识者所熟知,XIP内存接口也可以是位于开机引擎50与非XIP内存30间的一独立组件,而不限定于要内建在开机引擎50中。
本发明的第二实施例考虑到当一个操作***映像文件中有错误存在时,便必须舍弃(discard)整个操作***映像文件的问题。一般而言,操作***映像文件愈大,被检测出错误的机会也愈高。假使一操作***映像文件中的最后一小部分无法通过错误检测,便必须将整个操作***映像文件包含已顺利通过错误检测的先前部分都舍弃,这会造成开机引擎50耗费过多的时间在进行错误检测的动作上。因此,在本发明的开机***100的第二实施例中,每一操作***映像文件都会再划分成多个部分,且每一部分都会复制成数个复制数据。所有的复制数据会被存储在非XIP内存30中的不同区域。本实施例的错误检测程序会对一操作***映像文件的多个部分逐一进行错误检测,被检测出有误的部分会被舍弃,而检测无误的部分则会被映射至XIP内存60中。
举例而言,倘若有一操作***映像文件被划分成十个部分,而其中有两个部分被检测出有错误存在,则其它八个检测无误的部分会被映射至XIP内存60中。开机引擎50会进一步对该两个检测有误部分的复制数据进行错误检测,而错误检测的方式与前述实施例相类似。即,开机引擎50会对非XIP内存30中存储该操作***映像文件的一复制文件的区块进行错误检测。在本实施例中,开机引擎50仅需对与该两个检测有误部分相对应的复制数据进行错误检测即可,而无须对整个操作***映像文件都进行错误检测。若该两个检测有误部分的复制数据经检测无误,便会被映射至XIP内存60中。由这样的方式,可大幅节省开机引擎50执行错误检测所需的时间。
请参考图2,其表示本发明从一非XIP内存进行开机的方法的第一实施例的流程图。图2中的步骤由前述的开机***100所执行,具体步骤如下:
步骤200:开始。
步骤201:初始化***。
步骤202:映射开机引导程序至XIP内存。
步骤203:执行映射至该XIP内存中的开机引导程序。
步骤204:对非XIP内存中存储有操作***映像文件的区块进行处理。
步骤205:对指定区块中的操作***映像文件进行错误检测,并将其映射至XIP内存。
步骤206:判断是否检测出错误。若检测出错误,则进行步骤207;否则,进行步骤210。
步骤207:判断该指定区块是否为存储该操作***映像文件的最后一区块。若该指定区块为最后一区块,则进行步骤208;否则,进行步骤209。
步骤208:开机失败。进行步骤213。
步骤209:对存储有该操作***映像文件的下一区块进行处理,并回到步骤205。
步骤210:判断程序代码映射程序是否完成。若已完成,则进行步骤211;否则,回到步骤205。
步骤211:激活中央处理单元。
步骤212:完成开机。
步骤213:结束。
当整个流程开始后(步骤200),开机***100会进行初始化动作(步骤201),而开机引擎50则会将该开机引导程序映射至XIP内存中(步骤202)。接着,开机引擎50会执行该开机引导程序以对非XIP内存中的一操作***映像文件进行错误检测及程序代码映射程序(步骤203)。开机引擎50会对非XIP内存中存储有操作***映像文件的一区块进行处理(步骤204),并开始对该操作***映像文件进行错误检测及映射该操作***映像文件至该非XIP内存(步骤205)。倘若检测出错误(步骤206),开机***100会先判断所指定的区块是否为包含该操作***映像文件的最后一区块、即是否已无其它的复制文件存在(步骤207)。若该指定区块为包含该操作***映像文件的最后一区块,则代表开机失败(步骤208)。若该非XIP内存中还有其它尚未存取的操作***映像文件的复制文件,则开机***100会对下一个复制文件进行处理(步骤209),以对该复制文件重新进行程序代码映射及错误检测的动作(步骤205)。若检测不出任何错误存在,开机***100会判断该程序代码映射程序是否已完成(步骤210)。若还没完成,则会继续对该操作***映像文件进行错误检测及程序代码映射的动作(步骤205)。若程序代码映射程序已完成、即经检测无误的一操作***映像文件已顺利映射至该XIP内存中,则开机***100会激活中央处理单元20(步骤211)。此时,便完成开机的程序(212),而结束整个流程(步骤213)。
请参考图3,其表示本发明从一非XIP内存进行开机的方法的第二实施例的流程图。图3中的步骤由前述的开机***100所执行,具体步骤如下:
步骤300:开始。
步骤301:初始化***。
步骤302:映射开机引导程序至XIP内存。
步骤303:执行映射至该XIP内存中的开机引导程序。
步骤304:对非XIP内存中存储有操作***映像文件的区块进行处理。
步骤305:对指定的操作***映像文件的多个部分逐一进行错误检测,并将其逐一映射至XIP内存。
步骤306:判断是否检测出错误。若检测出错误,则进行步骤312;否则,进行步骤307。
步骤307:纪录此一部分已顺利映射至该XIP内存。
步骤308:判断该操作***映像文件的所有部分是否都已完成错误检测。若都已完成,则进行步骤309;否则,进行步骤315。
步骤309:判断该操作***映像文件的所有部分是否都已顺利完成映射。若都已完成,则进行步骤310;否则,进行步骤313。
步骤310:激活中央处理单元。
步骤311:完成开机。进行步骤317。
步骤312:判断指定的部分是否为该操作***映像文件的最后一部分。若指定的部分为最后一部分,则进行步骤313;否则,进行步骤315。
步骤313:判断指定的区块是否为存储该操作***映像文件的最后一区块。若该指定区块为最后一区块,则进行步骤316;否则,进行步骤314。
步骤314:对存储有该操作***映像文件的下一区块进行处理,并进行步骤305。
步骤315:对该操作***映像文件的下一部分进行处理,并进行步骤305。
步骤316:开机失败。
步骤317:结束。
当整个流程开始后(步骤300),开机***100会进行初始化动作(步骤301),而开机引擎50则会将该开机引导程序映射至XIP内存中(步骤302)。接着,开机引擎50会执行该开机引导程序(步骤303),并开始对非XIP内存中存储有操作***映像文件的一区块进行处理(步骤304)。开机引擎50会对该操作***映像文件的多个部分逐一进行错误检测,并将该多个部分逐一映射至该非XIP内存(步骤305)。倘若检测出错误(步骤306),开机***100会判断指定的部分是否为当前指定的该操作***映像文件的最后一部分(步骤312)。若该指定的部分为最后一部分,开机***100会判断指定的区块是否为存储该操作***映像文件的最后一区块、即是否已无其它的复制文件存在(步骤313)。倘若已无其它复制文件,则代表开机失败(步骤316)。倘若该指定部分并非该操作***映像文件的最后一部分,开机***100会对该操作***映像文件的下一部分进行处理(步骤315),以对该部分进行程序代码映射及错误检测的程序(步骤305)。若该指定部分已是该操作***映像文件的最后一部分,但该非XIP内存中还有该操作***映像文件的其它复制文件尚未存取,则开机***100会对下一个复制文件进行处理(步骤314)。若步骤306中检测不出任何错误存在,开机***100会判断该部分是否已顺利映射至该XIP内存(步骤307)。接着,开机***100会判断该操作***映像文件的所有部分是否都已完成错误检测(步骤308)。若尚未全部完成,开机***100会继续进行步骤315。若该操作***映像文件的所有部分都已完成错误检测,开机***100会判断该操作***映像文件的所有部分是否都已顺利映射完成(步骤309)。若还没完成,则会进行步骤313。若该操作***映像文件的所有部分都已顺利映射至该XIP内存,则开机***100会激活中央处理单元20(步骤310)。此时,便完成了开机的程序(311),而结束整个流程(步骤317)。
由上述可知,前述开机***的优点之一,在于所使用的开机引擎于开机过程中只需具有错误检测的能力即可,而无须具备错误校正的功能,故可大幅降低硬件的复杂度。前述开机***的另一项优点,则是因每一操作***映像文件都会有多个复制文件,故可降低错误发生的机率。此外,在前述的第二实施例当中,每一操作***映像文件划分成多个部分,故只需对该操作***映像文件的一部分进行错误检测,可简化错误检测的程序,并可避免因局部的错误而舍弃整个操作***映像文件的情况。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求范围所做的均等变化与修饰,都应属本发明的涵盖范围。
Claims (17)
1.一种开机***,其包含有:
一非就地执行内存,用来存储多个操作***映像文件以及一开机引导程序;
一就地执行内存,耦接于所述非就地执行内存;以及
一程序代码映射模块,耦接于所述非就地执行内存及所述就地执行内存,用来将所述开机引导程序映射至所述就地执行内存中并加以执行,以对存储于所述非就地执行内存中的至少一操作***映像文件进行错误检测,若一特定操作***映像文件经所述错误检测判定为无误,则所述程序代码映射模块会将所述特定操作***映像文件映射至所述就地执行内存中,其中所述程序代码映射模块在开机过程中不具有错误校正能力。
2.如权利要求1所述的开机***,其特征在于,存储于所述非就地执行内存中的所述操作***映像文件包含一来源映像文件与多个该来源映像文件的复制文件。
3.如权利要求2所述的开机***,其特征在于,所述程序代码映射模块会对存储于所述非就地执行内存中的一操作***映像文件进行错误检测,而若所述操作***映像文件未通过所述错误检测,则所述程序代码映射模块会对所述操作***映像文件的一复制文件进行错误检测。
4.如权利要求2所述的开机***,其特征在于,每一操作***映像文件另区分成多个部分,而所述程序代码映射模块会逐一对所述多个部分进行错误检测。
5.如权利要求4所述的开机***,其特征在于,若一操作***映像文件中有一特定部分未通过所述错误检测,所述程序代码映射模块会将所述操作***映像文件中其它没有错误的部分映射至所述就地执行内存中,并对所述特定部分的至少一复制数据进行错误检测,以及将对应于所述特定部分的一检测无误的复制数据映射至所述就地执行内存中。
6.如权利要求1所述的开机***,其特征在于,另包含有一中央处理单元,耦接于所述就地执行内存,用来执行映射至所述就地执行内存中的操作***映像文件,其中所述程序代码映射模块为一开机引擎。
7.如权利要求1所述的开机***,其特征在于,所述程序代码映射模块为一中央处理单元。
8.如权利要求1所述的开机***,其特征在于,所述非就地执行内存为一NAND型闪存。
9.如权利要求8所述的开机***,其特征在于,所述NAND型闪存为一序列式闪存。
10.如权利要求1所述的开机***,其特征在于,所述程序代码映射模块不具备错误校正能力。
11.一种从一非就地执行内存进行开机的方法,该非就地执行内存存储有多个操作***映像文件及一开机引导程序,所述方法包含有:
提供一就地执行内存;
将所述非就地执行内存中的所述开机引导程序映射至所述就地执行内存中;
执行映射至所述就地执行内存中的开机引导程序以对存储于所述非就地执行内存中的至少一操作***映像文件进行错误检测;以及
若一特定操作***映像文件经所述错误检测判定为无误,则将所述特定操作***映像文件映射至所述就地执行内存中;
其中在开机过程中未进行任何错误校正程序。
12.如权利要求11所述的方法,其特征在于,存储于所述非就地执行内存中的所述操作***映像文件包含一来源映像文件与多个所述来源映像文件的复制文件。
13.如权利要求12所述的方法,其特征在于,对至少一操作***映像文件进行错误检测的步骤包含有:
若一操作***映像文件未通过所述错误检测,则对所述操作***映像文件的一复制文件进行错误检测。
14.如权利要求13所述的方法,其特征在于,每一操作***映像文件另区分成多个部分,而对所述操作***映像文件进行错误检测的步骤包含有:对所述多个部分逐一进行错误检测。
15.如权利要求14所述的方法,其特征在于,另包含有:
若一操作***映像文件中有一特定部分未通过所述错误检测,则将所述操作***映像文件中其它没有错误的部分映射至所述就地执行内存中;
对所述特定部分的至少一复制数据进行错误检测;以及
将对应于所述特定部分的一检测无误的复制数据映射至所述就地执行内存中。
16.如权利要求12所述的方法,其特征在于,所述非就地执行内存系为一NAND型闪存。
17.如权利要求16所述的方法,其特征在于,所述NAND型闪存系为一序列式闪存。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/277,349 US7555678B2 (en) | 2006-03-23 | 2006-03-23 | System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting |
US11/277,349 | 2006-03-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101042654A true CN101042654A (zh) | 2007-09-26 |
CN100485619C CN100485619C (zh) | 2009-05-06 |
Family
ID=38522011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101431236A Active CN100485619C (zh) | 2006-03-23 | 2006-11-01 | 从一非就地执行内存进行开机的方法与装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7555678B2 (zh) |
CN (1) | CN100485619C (zh) |
TW (1) | TWI318749B (zh) |
WO (1) | WO2007107060A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462478A (zh) * | 2015-04-29 | 2017-02-22 | 华为技术有限公司 | 数据恢复方法、装置以及终端 |
CN106598773A (zh) * | 2015-10-20 | 2017-04-26 | 深圳市中电智慧信息安全技术有限公司 | 可信***还原装置 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065563B2 (en) * | 2006-03-23 | 2011-11-22 | Mediatek Inc. | System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting |
US20070260869A1 (en) * | 2006-05-01 | 2007-11-08 | Symbol Technologies, Inc. | Apparatus and Method for Booting a Computing Device from a NAND Memory Device |
KR100837273B1 (ko) * | 2006-08-24 | 2008-06-12 | 삼성전자주식회사 | 플래시 메모리 장치 |
TWI327290B (en) * | 2006-10-03 | 2010-07-11 | Magic Pixel Inc | Electronic system with nand flash memory storing boot code and a highly reliable boot up method |
US8392762B2 (en) * | 2008-02-04 | 2013-03-05 | Honeywell International Inc. | System and method for detection and prevention of flash corruption |
TW200947221A (en) * | 2008-05-02 | 2009-11-16 | Inventec Corp | Method for sharing basic input output system and blade server and computer thereof |
TWI379234B (en) * | 2008-12-09 | 2012-12-11 | Phison Electronics Corp | Motherboard, storage device and controller thereof and booting method |
US8175012B2 (en) * | 2009-03-26 | 2012-05-08 | Mediatek Inc. | Decoding/encoding method for booting from a NAND flash and system thereof |
US7923233B1 (en) | 2009-12-07 | 2011-04-12 | E. I. Du Pont De Nemours And Company | Perhydrolase providing improved peracid stability |
CN102262574B (zh) * | 2011-06-20 | 2013-08-14 | 奇智软件(北京)有限公司 | 操作***启动保护方法和装置 |
US20130285943A1 (en) * | 2012-04-30 | 2013-10-31 | Mediatek Inc. | Apparatus and method for executing touch controller firmware downloaded from external host to control touch panel |
KR101992234B1 (ko) * | 2012-05-22 | 2019-06-24 | 삼성전자주식회사 | 디버깅 회로를 위한 클럭 제어 회로를 구비하는 집적 회로 및 이를 포함하는 시스템-온-칩 |
US9063851B2 (en) * | 2012-11-07 | 2015-06-23 | Infineon Technologies Ag | Fail safe code functionality |
US9558012B2 (en) * | 2013-02-21 | 2017-01-31 | Applied Micro Circuits Corporation | System boot with external media |
TWI484337B (zh) * | 2014-01-06 | 2015-05-11 | 威盛電子股份有限公司 | 記憶體晶片與資料保護方法 |
US20150293705A1 (en) * | 2014-04-11 | 2015-10-15 | Seagate Technology Llc | Formatting and capacity expansion in a data storage device |
CN105630599B (zh) * | 2014-10-28 | 2019-02-15 | 龙芯中科技术有限公司 | 基于32/64位混合操作***的显存分配方法及装置 |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581768A (en) * | 1995-02-27 | 1996-12-03 | Intel Corporation | Method and apparatus for executing applications in place from write once/seldom memories |
US6327106B1 (en) * | 1998-08-21 | 2001-12-04 | Western Digital Technologies, Inc | Disk drive having data-guarding firmware |
US6145069A (en) * | 1999-01-29 | 2000-11-07 | Interactive Silicon, Inc. | Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices |
US6892323B2 (en) * | 1999-05-05 | 2005-05-10 | Giga-Byte Technology Co., Ltd. | Dual basic input/output system for a computer |
US6446203B1 (en) * | 1999-05-24 | 2002-09-03 | International Business Machines Corporation | Method and system for selecting from multiple boot code images to be loaded in a data processing system |
US7098899B1 (en) * | 1999-09-21 | 2006-08-29 | Intel Corporation | Dual form low power, instant on and high performance, non-instant on computing device |
US6601167B1 (en) * | 2000-01-14 | 2003-07-29 | Advanced Micro Devices, Inc. | Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program |
US6611912B1 (en) * | 2000-02-04 | 2003-08-26 | Advanced Micro Devices, Inc. | Method and apparatus having a system BIOS write configuration data of a riser card to a controller configuration space when connecting the riser card to a motherboard |
US6591376B1 (en) * | 2000-03-02 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Method and system for failsafe recovery and upgrade of an embedded operating system |
US6459624B1 (en) * | 2000-09-01 | 2002-10-01 | Megawin Technology Co., Ltd. | Memory structure capable of preventing data loss therein and method for protecting the same |
US7058779B1 (en) * | 2001-03-05 | 2006-06-06 | Advanced Micro Devices, Inc. | Computer system initialization via boot code stored in a non-volatile memory having an interface compatible with synchronous dynamic random access memory |
US7386653B2 (en) * | 2001-08-06 | 2008-06-10 | Sandisk Il Ltd | Flash memory arrangement |
US7165137B2 (en) * | 2001-08-06 | 2007-01-16 | Sandisk Corporation | System and method for booting from a non-volatile application and file storage device |
GB0123422D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Improved memory controller |
US7073053B1 (en) * | 2001-10-11 | 2006-07-04 | Cisco Technology, Inc. | Method and apparatus for a boot progression scheme for reliably initializing a system |
TWI251771B (en) * | 2001-12-28 | 2006-03-21 | Asustek Comp Inc | Module and method for automatic restoring BIOS device, and the computer-readable recording media of storing the program codes thereof |
US7234052B2 (en) * | 2002-03-08 | 2007-06-19 | Samsung Electronics Co., Ltd | System boot using NAND flash memory and method thereof |
US20030206442A1 (en) * | 2002-05-02 | 2003-11-06 | Jerry Tang | Flash memory bridiging device, method and application system |
US7318173B1 (en) * | 2002-06-03 | 2008-01-08 | National Semiconductor Corporation | Embedded controller based BIOS boot ROM select |
US20030233533A1 (en) * | 2002-06-13 | 2003-12-18 | M-Systems Flash Disk Pioneers Ltd. | Boot from cache |
US7143275B2 (en) * | 2002-08-01 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | System firmware back-up using a BIOS-accessible pre-boot partition |
US7904897B2 (en) * | 2002-08-08 | 2011-03-08 | Rudelic John C | Executing applications from a semiconductor nonvolatile memory |
US7234051B2 (en) * | 2002-08-09 | 2007-06-19 | Intel Corporation | Method and apparatus for booting from a selection of multiple boot images |
US7082525B2 (en) * | 2002-10-02 | 2006-07-25 | Sandisk Corporation | Booting from non-linear memory |
US7340566B2 (en) * | 2002-10-21 | 2008-03-04 | Microsoft Corporation | System and method for initializing a memory device from block oriented NAND flash |
US6988163B2 (en) * | 2002-10-21 | 2006-01-17 | Microsoft Corporation | Executing binary images from non-linear storage systems |
KR100493884B1 (ko) * | 2003-01-09 | 2005-06-10 | 삼성전자주식회사 | 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩 |
US7340638B2 (en) * | 2003-01-30 | 2008-03-04 | Microsoft Corporation | Operating system update and boot failure recovery |
TWI220469B (en) * | 2003-03-25 | 2004-08-21 | Icp Electronics Inc | Automatic booting system and method thereof |
KR100526186B1 (ko) * | 2003-04-04 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 오류블록 관리방법 및 장치 |
US7206971B2 (en) * | 2003-04-07 | 2007-04-17 | Lsi Logic Corporation | Selectable and updatable computer boot memory |
US7089414B2 (en) * | 2003-04-10 | 2006-08-08 | International Business Machines Corporation | Method and apparatus for updating a microcode image in a memory |
US8108588B2 (en) * | 2003-04-16 | 2012-01-31 | Sandisk Il Ltd. | Monolithic read-while-write flash memory device |
GB2404748B (en) * | 2003-08-01 | 2006-10-04 | Symbian Ltd | Computing device and method |
KR100534613B1 (ko) | 2003-09-19 | 2005-12-07 | 삼성전자주식회사 | 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법 |
KR100562906B1 (ko) * | 2003-10-08 | 2006-03-21 | 삼성전자주식회사 | 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩 |
US7360118B1 (en) * | 2003-12-09 | 2008-04-15 | National Semiconductor Corporation | Method and system for verifying data in a shadow memory |
JP4404625B2 (ja) * | 2003-12-25 | 2010-01-27 | パナソニック株式会社 | 情報処理装置および該装置用のromイメージ生成装置 |
US7159091B1 (en) * | 2003-12-31 | 2007-01-02 | Intel Corporation | Dynamic relocation of execute in place applications |
KR100733147B1 (ko) * | 2004-02-25 | 2007-06-27 | 삼성전자주식회사 | 상변화 메모리 장치 및 그 제조 방법 |
DE102004013493B4 (de) * | 2004-03-18 | 2009-11-05 | Infineon Technologies Ag | Zugriffs-Verfahren für einen NAND-Flash-Speicherbaustein und ein entsprechender NAND-Flash-Speicherbaustein |
US20050268077A1 (en) * | 2004-05-11 | 2005-12-01 | Peter Kuan | Memory system for an electronic device and the method for controlling the same |
US7334179B2 (en) * | 2004-06-04 | 2008-02-19 | Broadcom Corporation | Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems |
EP1607865B1 (en) | 2004-06-14 | 2013-08-14 | Micron Technology, Inc. | Data control unit capable of correcting boot errors, and corresponding method |
EP1624372A1 (en) * | 2004-08-05 | 2006-02-08 | Sony Ericsson Mobile Communications AB | Compact storage of program code on mobile terminals |
US7409539B2 (en) * | 2004-08-06 | 2008-08-05 | International Business Machines Corporation | System design and code update strategy to implement a self-healing, self-verifying system |
US20060143368A1 (en) * | 2004-12-23 | 2006-06-29 | M-Systems Flash Disk Pioneers Ltd. | Method for using a multi-bit cell flash device in a system not designed for the device |
US7243856B2 (en) * | 2005-03-24 | 2007-07-17 | Sandisk Il Ltd.. | Loading internal applications on a smartcard |
US7352621B2 (en) * | 2005-06-23 | 2008-04-01 | Intel Corporation | Method for enhanced block management |
US7454673B2 (en) * | 2005-07-15 | 2008-11-18 | Kyocera Wireless Corp. | Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory |
US7725609B2 (en) * | 2005-08-05 | 2010-05-25 | Qimonda Ag | System memory device having a dual port |
US20070094439A1 (en) * | 2005-10-20 | 2007-04-26 | Xipkey, Inc. | Expandable portable solid-state device & method |
-
2006
- 2006-03-23 US US11/277,349 patent/US7555678B2/en active Active
- 2006-08-14 TW TW095129778A patent/TWI318749B/zh active
- 2006-11-01 CN CNB2006101431236A patent/CN100485619C/zh active Active
- 2006-11-01 WO PCT/CN2006/002928 patent/WO2007107060A1/zh active Application Filing
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462478A (zh) * | 2015-04-29 | 2017-02-22 | 华为技术有限公司 | 数据恢复方法、装置以及终端 |
CN106462478B (zh) * | 2015-04-29 | 2019-06-11 | 华为技术有限公司 | 数据恢复方法、装置以及终端 |
CN106598773A (zh) * | 2015-10-20 | 2017-04-26 | 深圳市中电智慧信息安全技术有限公司 | 可信***还原装置 |
CN106598773B (zh) * | 2015-10-20 | 2019-09-24 | 深圳市中电智慧信息安全技术有限公司 | 可信***还原装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI318749B (en) | 2009-12-21 |
US20070226548A1 (en) | 2007-09-27 |
US7555678B2 (en) | 2009-06-30 |
TW200737003A (en) | 2007-10-01 |
WO2007107060A1 (fr) | 2007-09-27 |
CN100485619C (zh) | 2009-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101042654A (zh) | 从一非就地执行内存进行开机的方法与装置 | |
US8234466B2 (en) | Flash memory storage system applying SLC NAND flash memory and MLC NAND flash memory and data writing method thereof | |
CN1848087A (zh) | 使用通用串行总线存储装置来恢复操作*** | |
CN101078991A (zh) | 基于bios读写内存spd的计算机***信息保存和读取方法 | |
US9495232B2 (en) | Error correcting (ECC) memory compatibility | |
JP2018517213A (ja) | メモリにおけるストライプマッピング | |
US11157357B2 (en) | Operation methods of memory system and host, and computing system | |
CN1348134A (zh) | 在非并发群集环境中提供多路径输入/输出的方法和设备 | |
US20100229032A1 (en) | Solid state disk device and related data storing and reading methods | |
JP2009283005A (ja) | 不揮発性メモリシステムにおいて用いられる電力管理ブロック | |
CN1499530A (zh) | 非易失性存储器***内有效允许失序写处理的方法和装置 | |
US20170077960A1 (en) | Adaptively strengthening ecc for solid state cache | |
CN1845058A (zh) | 用于使用约束简化存储器控制器的方法和*** | |
US8065563B2 (en) | System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting | |
WO2020231477A1 (en) | Optimized neural network data organization | |
CN101075213A (zh) | 只读存储器数据修补电路和方法、及其嵌入式*** | |
TW201941057A (zh) | 記憶體之部分儲存 | |
CN101030168A (zh) | 一种实现高可靠性链表的方法及装置 | |
KR20210024188A (ko) | 기입 버퍼 관리 | |
CN1290013C (zh) | 图形控制器中校验指令完整性的方法与电路 | |
US7849300B2 (en) | Method for changing booting sources of a computer system and a related backup/restore method thereof | |
US20100138603A1 (en) | System and method for preventing data corruption after power failure | |
CN1831760A (zh) | 应用自动编译框架来快速开发嵌入式***的方法及装置 | |
CN1845087A (zh) | 中断处理方法及中断处理装置 | |
CN1738246A (zh) | 网络终端产品的在线升级方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |