CN101042654A - 从一非就地执行内存进行开机的方法与装置 - Google Patents

从一非就地执行内存进行开机的方法与装置 Download PDF

Info

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
Application number
CNA2006101431236A
Other languages
English (en)
Other versions
CN100485619C (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.)
MediaTek Inc
Original Assignee
MediaTek 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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN101042654A publication Critical patent/CN101042654A/zh
Application granted granted Critical
Publication of CN100485619C publication Critical patent/CN100485619C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data 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型闪存系为一序列式闪存。
CNB2006101431236A 2006-03-23 2006-11-01 从一非就地执行内存进行开机的方法与装置 Active CN100485619C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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