CN107102851A - 存储器芯片与数据保护方法 - Google Patents

存储器芯片与数据保护方法 Download PDF

Info

Publication number
CN107102851A
CN107102851A CN201710133315.7A CN201710133315A CN107102851A CN 107102851 A CN107102851 A CN 107102851A CN 201710133315 A CN201710133315 A CN 201710133315A CN 107102851 A CN107102851 A CN 107102851A
Authority
CN
China
Prior art keywords
memory chip
start image
correct
image document
memory
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
CN201710133315.7A
Other languages
English (en)
Other versions
CN107102851B (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.)
Via Technologies Inc
Original Assignee
Via Technologies 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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN107102851A publication Critical patent/CN107102851A/zh
Application granted granted Critical
Publication of CN107102851B publication Critical patent/CN107102851B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Abstract

一种存储器芯片与数据保护方法。该存储器芯片,耦接一主机,包括存储器与控制器。存储器用以预先载入多个具有相同的内容的启动映像文档。控制器耦接至存储器,用以处理存储器芯片与主机之间的数据传输。控制器进一步判断存储器芯片是否第一次进入一启动模式,并且当存储器芯片第一次进入启动模式时,控制器存取存储器,用以自多个启动映像文档取得一份正确的启动映像文档,并且将正确的启动映像文档传送至主机。其中各启动映像文档分别包括多个数据区块,该控制器自一个或多个这些启动映像文档载入多个正确的数据区块,以取得该份正确的启动映像文档。

Description

存储器芯片与数据保护方法
本申请为申请日为2014年1月27日、申请号为201410040996.9的发明名称为“存储器芯片与数据保护方法”的申请案的分案申请。
技术领域
本发明涉及一种可有效保护正确数据的系统及方法,特别是涉及可保护存储器芯片中正确数据的系统及方法。
背景技术
近年来,越来越多种类的电子产品被开发出来,像是手机、平板计算机、MP3随身听、随身硬盘、卫星导航、数字相机、手持式游戏装置等等。电子产品内通常配置存储器装置,用以储存电子产品系统内主机的运作所必备的数据,以及使用者的个人数据等。
由于主机的运作所必备的数据为用以启动及初始化主机,并且致使该电子装置开始正常运作的重要数据,为了避免存储器装置的数据损坏导致电子产品系统无法顺利被启动,需要一种可有效保护正确数据的系统及方法。
发明内容
根据本发明的一实施例,一种存储器芯片,耦接一主机,包括存储器与控制器。存储器用以预先载入多个具有相同的内容的启动映像文档。控制器耦接至存储器,用以处理存储器芯片与主机之间的数据传输,其中控制器进一步判断存储器芯片是否第一次进入一启动模式,并且当存储器芯片第一次进入启动模式时,控制器存取存储器,用以自多个启动映像文档取得一份正确的启动映像文档,并且将正确的启动映像文档传送至主机。其中各启动映像文档分别包括多个数据区块,该控制器自一个或多个这些启动映像文档载入多个正确的数据区块,以取得该份正确的启动映像文档。
根据本发明的另一实施例,一种数据保护方法,包括:将多个具有相同的内容的启动映像文档预先载入一存储器芯片;判断存储器芯片是否第一次进入一启动模式;当存储器芯片第一次进入启动模式时,自启动映像文档取得一份正确的启动映像文档;以及将正确的启动映像文档传送至耦该存储器芯片的一主机。其中各启动映像文档分别包括多个数据区块,并且其中自这些启动映像文档取得该份正确的启动映像文档的该步骤还包括:判断一个或多个这些启动映像文档中的这些数据区块是否正确;以及自一个或多个这些启动映像文档载入多个正确的数据区块,以取得该份正确的启动映像文档。
根据本发明的另一实施例,一种数据保护方法,包括:判断存储器芯片是否进入一启动模式;判断存储器芯片是否预先载入多个具有相同内容的启动映像文档;当存储器芯片进入启动模式且存储器芯片预先载入多个具有相同内容的启动映像文档时,自启动映像文档取得一份正确的启动映像文档传送至耦接存储器芯片的一主机。其中各启动映像文档分别包括多个数据区块,并且其中自这些启动映像文档取得该份正确的启动映像文档的该步骤还包括:判断一个或多个这些启动映像文档中的这些数据区块是否正确;以及自一个或多个这些启动映像文档载入多个正确的数据区块,以取得该份正确的启动映像文档。
基于上述,在本发明的范例实施例中,当存储器芯片进入启动模式且存储器芯片预先载入多个具有相同内容的启动映像文档时,会自启动映像文档取得一份正确的启动映像文档传送至耦接存储器芯片的一主机,防止了由于启动映像文档产生过多位错误因而致使存储器芯片甚至于配置存储器芯片的主机无法被启动的问题。从而克服了现有技术中由于存储器装置的数据损坏而导致电子产品系统无法顺利被启动的缺陷。
附图说明
图1是显示根据本发明的一实施例所述的存储器芯片方块图。
图2是显示根据本发明的一实施例所述的烧录启动映像文档的方法流程图。
图3是显示根据本发明的一实施例所述的数据保护方法流程图。
图4是显示根据本发明的另一实施例所述的数据保护方法流程图。
图5是显示根据本发明的一实施例所述的控制器方块图。
图6是显示根据本发明的又另一实施例所述的数据保护方法流程图。
图7是显示根据本发明的一实施例所述的取得正确的启动映像文档的方法流程图。
图8是显示根据本发明的一实施例所述的合并操作流程图。
图9是显示根据本发明的一实施例所述的合并操作示意图。
附图符号说明
50 主机
60 接口
100 存储器芯片
110 控制器
120 存储器
530 错误检测与更正模块
540 合并模块
900、901、902、90M 启动映像文档
950 正确的启动映像文档复本
具体实施方式
为使本发明的制造、操作方法、目标和优点能更明显易懂,下文特举几个较佳实施例,并配合附图详细说明如下。
实施例:
图1是显示根据本发明的一实施例所述的存储器芯片方块图。存储器芯片100可包含存储器120与用以控制存储器120及处理存储器芯片100与主机50之间的数据传输的控制器110。根据本发明的一实施例,控制器110与存储器120可分别为一控制器晶粒(die)与一存储器晶粒,共同封装于存储器芯片100中。存储器芯片100可通过一接口60耦接至一主机50。值得注意的是,为了简化说明,图1显示为一简化过的方块图,其中仅显示出与本发明相关的部分。然而,本领域技术人员应可理解触控装置亦可包括其他图中未显示的电路元件,因此本发明并不限于图中所示的内容。存储器芯片100及主机50可于客户端安装或配置于一电子装置内,并且可与电子装置的硬件与软件/固件模块组合为一系统。于本发明的实施例中,电子装置可以是移动通讯装置、平板计算机、MP3随身听、随身硬盘、卫星导航、数字相机、手持式游戏装置等相关产品。
在存储器芯片100的制造生产过程中,工厂端通常会通过机台或制具将客户所指定的重要数据通过工厂端外接的计算机装置(图未绘示)预先载入于存储器120中,再将存储器芯片100焊接在印刷电路板上。预先载入于存储器晶粒中的重要数据可包含启动映像文档(boot image)(或称启动程序码(boot code))。启动映像文档可包含许多软件或固件程序以及重要的系统参数,使得耦接至存储器芯片100的主机50可根据启动映像文档初始化主机50本身以及电子装置内的其它硬件,或驱动存储器芯片100与主机50内的其他硬件,使得主机50可具备基本的输入/输出能力。例如,具备可存取及控制存储器芯片100以及其他硬件的能力。主机50可以包含于电子装置内,例如,是电子装置内的一微处理器(MCU),亦可以独立于电子装置,例如,是于工厂端外接的计算机装置。
一般而言,存储器芯片100被焊接在印刷电路板前,会有一份启动映像文档预先载入或烧录于存储器120中。接着,再将存储器芯片100焊接印刷电路板上。然而,焊接过程中的环境高温通常会导致此单一份的启动映像文档产生位错误。当位错误过多时,启动映像文档会被视为损毁,因而导致存储器芯片100甚至于耦接存储器芯片的主机50无法被启动。为了解决此问题,本发明提出一种可有效保护正确数据的系统及方法。
继续参考图1,存储器120中包含了预先载入的多个个启动映像文档。根据本发明的一实施例,各启动映像文档具有相同的内容。控制器110耦接存储器120,可处理存储器芯片100与主机50之间的数据传输。此外,控制器110可判断存储器芯片100是否第一次进入一启动模式。当存储器芯片100第一次进入启动模式时,控制器110可存取存储器120,由这些启动映像文档取得一份正确的启动映像文档,并且将该份正确的启动映像文档传送至主机50。
图2是显示根据本发明的一实施例所述的烧录启动映像文档的方法流程图。根据本发明的一实施例,在制造存储器芯片100时,制造商可将多个启动映像文档预先载入(pre-load)存储器芯片100的存储器120中(步骤S202)。根据本发明的一实施例,为了保护启动映像文档的内容,预先载入的多个启动映像文档可具有相同的内容。即,除了原始的启动映像文档外,存储器120中还可储存一份以上的备份启动映像文档。接着,制造商可设定用以指示存储器芯片储存多个具有相同内容的启动映像文档的一第一标志FMultiCopy(步骤S204),例如,设定FMultiCopy=1,并且将第一标志FMultiCopy储存于存储器120中。接着,制造商可依照客户需求组装或焊接存储器芯片100(步骤S206)。例如,将存储器芯片100焊接于印刷电路板上。
待存储器芯片100组装完成后,存储器芯片100可进一步于客户端被安装或配置于一电子装置中。当电子装置被供电时,存储器芯片100内的控制器110可根据本发明的数据保护方法载入启动映像文档,以解决先前因过多的位错误导致存储器芯片100甚至于配置存储器芯片100的电子装置无法被顺利启动的问题。
图3是显示根据本发明的一实施例所述的数据保护方法流程图。首先,将多个启动映像文档预先载入一存储器芯片100(步骤S301)。要注意的是,步骤S301通常是在存储器芯片100尚未焊接于印刷电路板前执行。当焊接完成且耦接至主机50后,存储器芯片100才会执行步骤S302以下的步骤。当电子装置被供电时,判断存储器芯片100是否第一次进入一启动模式(boot mode)(步骤S302)。若是,则自预先载入的多个启动映像文档取得一份正确的启动映像文档(步骤S304),接着,将正确的启动映像文档传送至主机50(步骤S306)。若否,则不执行所述的数据保护方法。
根据本发明的一实施例,于步骤S302中,控制器302可根据接口60上传送的一信号波形判断存储器芯片100是否进入启动模式。当此信号波形符合对应的技术规格所定义的一既定波形时,可判断存储器芯片进入启动模式。在一实施例中,存储器芯片100可以是符合MMCA协会(MultiMediaCard Association,多媒体卡协会)所订立的内嵌式存储器标准规格的一内嵌式多媒体卡(embedded MultiMediaCard,eMMC)芯片。此eMMC芯片100可通过eMMC界面60耦接主机50。当主机50未完成启动程序前,主机50无法下达完整的数据存取指令给存储器芯片100,以取得存储器芯片100中启动映像文档藉以执行后续的启动程序。但此时主机50可于eMMC界面60上特定的一个或多个接脚上传输特定的电压或信号波形,使eMMC芯片100根据此电压或信号波形进入eMMC启动模式(eMMC boot mode)。于eMMC启动模式中,eMMC芯片100可主动提供启动映像文档给主机50。此外,在步骤S302中,当存储器芯片100根据接口60上的信号波形进入了启动模式时,可根据存储器芯片100中是否预先设定了一第一标志以判断是否第一次进入此启动模式。在一实施例中,此第一标志可为图2步骤S204所设定的第一标志(例如,设定FMultiCopy=1)。当存储器芯片100于第一次进入此启动模式且将正确的启动映像文档传送至主机50后(步骤S306),存储器芯片100还可清除该第一标志(例如,设定FMultiCopy=0),即是说,后续再次启动存储器芯片100时,该第一标志FMultiCopy均为清除状态。根据本发明的另一实施例,于步骤S302中,控制器302还可仅根据前述的存储于存储器120中的第一标志FMultiCopy判断存储器芯片100是否第一次进入启动模式。
图4是显示根据本发明的另一实施例所述的数据保护方法流程图。首先,将多个启动映像文档预先载入存储器芯片100(步骤S401)。类似于步骤S301,步骤S401是在存储器芯片100尚未焊接于印刷电路板前执行。当焊接完成且耦接至主机50后,存储器芯片100才会执行步骤S402以下的步骤。当电子装置被供电时,判断存储器芯片100是否进入一启动模式(boot mode)(步骤S402)。若是,则进一步判断存储器芯片100是否预先载入多个具有相同内容的启动映像文档(步骤S404)。若是,则自预先载入的多个启动映像文档取得一份正确的启动映像文档(步骤S406),接着,将正确的启动映像文档传送至耦接存储器芯片100的主机50(步骤S408)。若存储器芯片100并未进入一启动模式,或者存储器芯片100并未预先载入多个具有相同内容的启动映像文档,则不执行所述的数据保护方法。
与图3的实施例相较,其差异在于本实施例的存储器芯片100是根据第一标志判断是否预先载入多个启动映像文档,而非判断存储器芯片100是否第一次进入启动模式。其余部份皆为相同,就不在此赘述。值得注意的是,存储器芯片100内也可以储存其他标志或变数,用以指示存储器芯片100是否预先载入多个启动映像文档或第一次进入启动模式,因此本发明并不限于此。
图5是显示根据本发明的一实施例所述的控制器方块图。根据本发明的一实施例,存储器120是以数据区块来存储数据,因此预先载入存储器120的多个启动映像文档各包括多个数据区块,控制器110可至少包括一错误检测与更正模块530与一合并模块540。错误检测模块530用以检测并更正存储器120内所储存的数据的位错误。一般而言,错误检测与更正模块530可设定一可修复临界值。错误检测与更正模块530可通过既定的演算法检测一数据区块内的错误位数量。当错误位数量未超过此可修复临界值时,错误检测与更正模块530有能力更正数据区块内的错误位。更正后的数据区块仍可被视为正确的数据区块。然而,当错误位数量超过此可修复临界值时,错误检测与更正模块530将无法修复此数据区块内的错误位,因而此数据区块将被视为损坏的数据区块。合并模块540用以自一个或多个这些启动映像文档载入正确的数据区块,以取得该份正确的启动映像文档。在本发明另一实施例中,合并模块540还用以执行合并(merge)操作,即用以合并预先载入的多个启动映像文档中正确的数据区块,使这些正确的数据区块合并成一启动映像文档复本,并且将该启动映像文档复本储存于该存储器120中,其中该启动映像文档复本与前述传送至主机50的该份正确的启动映像文档内容相同。在一实施例中,控制器110于取得该份正确的启动映像文档后设定一第二标志,当存储器芯片100处于一闲置状态时,合并模块540还根据该第二标志合并这些正确的数据区块,并于合并成该启动映像文档复本后,清除该第二标志。此外,值得注意的是,为了简化说明,图5显示为一简化过的方块图,其中仅显示出与本发明相关的部分。然而,本领域技术人员可理解控制器110亦可包括其他图中未显示的电路元件,因此本发明并不限于图中所示的内容。
以下段落将通过更详细的流程图介绍本发明所提出的数据保护方法。
图6是显示根据本发明的又另一实施例所述的数据保护方法流程图。请一并参阅图2以及图6。首先,将多个启动映像文档预先载入存储器芯片100(步骤S601)。要注意的是,步骤S601通常是在存储器芯片100尚未焊接于印刷电路板前执行。当焊接完成且耦接至主机50后,存储器芯片100才会执行步骤S602以下的步骤。将电源供应至电子装置,以致使主机50开机(步骤S602)。接着,存储器芯片100的控制器110可先判断存储器芯片100是否第一次进入一启动模式(步骤S604)。若是,则控制器110执行流程A,用以自预先载入的多个启动映像文档取得一份正确的启动映像文档(步骤S606)。根据本发明的一实施例,控制器110可藉由分别自一个或多个启动映像文档中载入正确的数据区块,以取得一份正确的启动映像文档。流程A将于图7作更详细的介绍。待流程A结束后,控制器110判断是否已成功取得正确的启动映像文档(步骤S608)。若是,则控制器110可清除第一标志FMultiCopy(步骤S610),例如,设定FMultiCopy=0。接着,控制器110可设定并储存第二标志FMergeCopy于存储器120中(步骤S612),例如,设定FMergeCopy=1。根据本发明的一实施例,第二标志FMergeCopy用以指示是否须对预先载入的多个启动映像文档执行合并操作,合并操作将于以下段落作进一步介绍。接着,控制器110可将正确的启动映像文档传送至主机50(步骤S614)。另一方面,若存储器芯片100并非第一次进入启动模式,或者无法于流程A中成功取得正确的启动映像文档,则此流程结束。
值得注意的是,于本发明的实施例中,执行步骤S610、S612与S614的先后顺序可任意调整,而本发明并不限于任一种实施方式。
图7是显示根据本发明的一实施例所述的取得正确的启动映像文档的方法流程图。请一并参阅图5与图7。根据本发明的一实施例,假设存储器120内储存M份内容相同的启动映像文档,其中M为大于1的一正整数,而各启动映像文档分别包括N个数据区块,其中N为一正整数。于流程A开始时,控制器110先设定变数n=0(步骤S702),以及设定变数m=0(步骤S704)。接着,控制器110存取存储器120,用以载入第m份启动映像文档的第n个数据区块(步骤S706)。接着,控制器110可判断第m份启动映像文档的第n个数据区块是否为正确的数据区块(步骤S708)。如上所述,控制器110可通过错误检测与更正模块(例如,错误检测与更正模块530)的检测结果判断数据区块是否为正确的数据区块。
若第m份启动映像文档的第n个数据区块是正确的数据区块(步骤S708的是),则控制器110累加变数n(步骤S710)。接着,控制器110判断第m份启动映像文档的所有数据区块是否已全数检查完毕,例如,判断变数n是否等于N(步骤S712)。若否,则回到步骤S704,控制器110设定变数m=0,并且接着存取存储器120,用以载入第m份启动映像文档的第n个数据区块(步骤S706)。若控制器110判断正确数据区块已全数载入(步骤S712的是),则设定变数LoadFail=0(步骤S714),代表控制器110已成功取得正确的启动映像文档。
另一方面,若第m份启动映像文档的第n个数据区块不是正确的数据区块(步骤S708的否),则控制器110累加变数m(步骤S716)。接着,控制器接着存取存储器120,用以载入第m份启动映像文档的第n个数据区块(步骤S718)。接着,控制器110可判断第m份启动映像文档的第n个数据区块是否为正确的数据区块(步骤S720)。如上所述,控制器110可通过错误检测与更正模块(例如,错误检测与更正模块530)的检测结果判断数据区块是否为正确的数据区块。
若第m份启动映像文档的第n个数据区块是正确的数据区块,则控制器110回到步骤S710累加变数n。若第m份启动映像文档的第n个数据区块不是正确的数据区块,则控制器110进一步判断M份启动映像文档是否已全数检查完毕,例如,判断变数m是否等于M(步骤S722)。若否,则控制器110回到步骤S716累加变数m。若M份启动映像文档已全数检查完毕,由于此时尚未能完整取得一份启动映像文档的所有正确的数据区块,因此控制器110设定变数LoadFail=1(步骤S724),代表控制器110无法成功取得正确的启动映像文档。
值得注意的是,虽然于图7所示的流程图中,当控制器110于其他份启动映像文档取得正确的数据区块后,会回到第1份启动映像文档载入后续的数据区块(例如,控制器110于步骤S720中判断第m份启动映像文档的第n个数据区块是正确的数据区块后,会回到步骤S710累加变数n,并且尔后会回到步骤S704设定变数m=0,用以继续自第一份启动映像文档载入后续的数据区块),然而本发明并不限于此。举例而言,于其他实施例中,当控制器110于步骤S720中判断第m份启动映像文档的第n个数据区块是正确的数据区块后,亦可停留在第m份启动映像文档继续自第m份启动映像文档载入后续的数据区块,因此本发明并不限于图7所示的实施方式。此外,控制器110不一定要依序浏览各启动映像文档,控制器110也可根据其他控制机制于M份启动映像文档中随机地寻找正确的数据区块,因此本发明并不限于以上所述的实施方式。
当控制器110成功取得正确的启动映像文档后,主机50可自存储器芯片100接收正确的启动映像文档,并执行接收到的启动映像文档,以完成既定的启动流程。尔后,主机50可正常运作。根据本发明的一实施例,控制器110可进一步于主机50正常运作后,对存储器120所储存的多个内容相同的启动映像文档执行合并操作,用以保留一份正确的启动映像文档复本,并且擦除其余重复的启动映像文档。例如,控制器110可通过合并模块(例如,合并模块540)执行所述的合并操作。
图8是显示根据本发明的一实施例所述的合并操作流程图。当存储器芯片100处于一闲置状态(idle mode)时(步骤S802),控制器110可判断第二标志FMergeCopy是否被设起(步骤S804),例如,判断FMergeCopy是否等于1。在一实施例中,当判断到耦接主机50以及存储器芯片100的接口60闲置时,则说明存储器芯片100处于闲置状态。如上所述,第二标志FMergeCopy可于步骤S612中被设定,用以指示须对预先载入的多个启动映像文档执行合并操作。若FMergeCopy被设起,则控制器对存储器120所储存的多个内容相同的启动映像文档执行合并操作,用以保留一正确的启动映像文档复本(步骤S806)。另一方面,若控制器110于步骤S804中判断第二标志FMergeCopy未被设起,则代表无须执行合并操作。最后,控制器110可清除第二标志FMergeCopy,例如,设定FMergeCopy=0(步骤S808)。于合并操作后,正确的启动映像文档复本被储存于存储器120中,并且其余重复的启动映像文档会被擦除。
图9是显示根据本发明的一实施例所述的合并操作示意图。图9左手边代表合并操作前的多个启动映像文档,右手边代表合并操作后的正确的启动映像文档复本,其中启动映像文档900可以是原始启动映像文档,而启动映像文档901、902…90M可以是启动映像文档900的备份数据。换言之,启动映像文档900~90M可具有相同的内容。于合并操作中,一个或多个启动映像文档中正确的数据区块(如图9中由斜线所标示出的区块)会被控制器110收集并合并,最后组成正确的启动映像文档复本950。
于本发明的实施例中,通过以上所介绍的数据保护方法,由焊接过程中的环境高温导致启动映像文档产生过多位错误因而致使存储器芯片甚至于配置存储器芯片的主机无法被启动的问题可有效被解决。
本发明的上述实施例能够以多种方式执行,例如使用硬件、软件或其结合来执行。本领域技术人员应了解执行上述功能的任何组件或组件的集合可被视为一个或多个控制上述功能的处理器。此一个或多个处理器可以多种方式执行,例如藉由指定硬件,或使用微码或软件来编程的通用硬件来执行上述功能。
权利要求中用以修饰元件的“第一”、“第二”等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,本领域技术人员在不脱离本发明的精神和范围的前提下,可做些许的更动与润饰,因此本发明的保护范围是以本发明的权利要求为准。

Claims (18)

1.一种存储器芯片,耦接一主机,包括:
一存储器,用以预先载入多个启动映像文档,其中这些启动映像文档具有相同的内容;以及
一控制器,耦接至该存储器,用以处理该存储器芯片与该主机之间的数据传输,其中该控制器进一步判断该存储器芯片是否第一次进入一启动模式,并且当该存储器芯片第一次进入该启动模式时,该控制器存取该存储器,用以自这些启动映像文档取得一份正确的启动映像文档,并且将该份正确的启动映像文档传送至该主机,
其中各启动映像文档分别包括多个数据区块,该控制器自一个或多个这些启动映像文档载入多个正确的数据区块,以取得该份正确的启动映像文档。
2.如权利要求1所述的存储器芯片,其中该控制器根据一第一标志判断该存储器芯片是否第一次进入该启动模式。
3.如权利要求2所述的存储器芯片,其中该存储器芯片通过一接口耦接至该主机,该控制器还根据该主机于该接口上传送的一信号波形判断该存储器芯片是否第一次进入该启动模式,当该信号波形符合一既定波形,并且该第一标志被设起时,该控制器判断该存储器芯片第一次进入该启动模式。
4.如权利要求2所述的存储器芯片,其中该第一标志用以指示该存储器是否储存多个具有相同内容的启动映像文档。
5.如权利要求2所述的存储器芯片,其中当该存储器芯片第一次进入该启动模式且取得该份正确的启动映像文档之后,该控制器清除该第一标志。
6.如权利要求1所述的存储器芯片,其中该控制器包括:
一错误检测与更正模块,用以检测并更正这些启动映像文档的位错误,
其中于存取该存储器的过程中,当该错误检测与更正模块检测到这些数据区块其中的一所包含的错误位数量未超过一可修复临界值时,该数据区块被视为正确的数据区块。
7.如权利要求1所述的存储器芯片,其中各启动映像文档分别包括多个数据区块,并且该控制器包括:
一合并模块,用以合并这些启动映像文档中正确的数据区块,使这些正确的数据区块合并成一启动映像文档复本,并且将该启动映像文档复本储存于该存储器中。
8.如权利要求7所述的存储器芯片,其中该控制器于取得该份正确的启动映像文档后设定一第二标志,当该存储器芯片处于一闲置状态时,该合并模块还根据该第二标志合并这些正确的数据区块,并于合并成该启动映像文档复本后,清除该第二标志。
9.如权利要求8所述的存储器芯片,其中该存储器芯片通过一接口与该主机耦接,其中当该接口闲置时,该存储器芯片处于该闲置状态。
10.一种数据保护方法,包括:
将多个启动映像文档预先载入一存储器芯片,其中这些启动映像文档具有相同的内容;
判断该存储器芯片是否第一次进入一启动模式;
当该存储器芯片第一次进入该启动模式时,自这些启动映像文档取得一份正确的启动映像文档;以及
将该份正确的启动映像文档传送至耦该该存储器芯片的一主机,
其中各启动映像文档分别包括多个数据区块,并且其中自这些启动映像文档取得该份正确的启动映像文档的该步骤还包括:
判断一个或多个这些启动映像文档中的这些数据区块是否正确;以及
自一个或多个这些启动映像文档载入多个正确的数据区块,以取得该份正确的启动映像文档。
11.如权利要求10所述的方法,其中判断该存储器芯片是否第一次进入该启动模式的步骤还包括:
根据一第一标志判断该存储器芯片是否第一次进入该启动模式。
12.如权利要求11所述的方法,其中该存储器芯片通过一接口耦接至该主机,当该主机于该接口上传送的一信号波形符合一既定波形,且该第一标志被设起时,该存储器芯片被判断为第一次进入该启动模式。
13.如权利要求11所述的方法,其中该第一标志用以指示该存储器是否储存多个具有相同内容的启动映像文档。
14.如权利要求11所述的方法,还包括当该存储器芯片第一次进入该启动模式且取得该份正确的启动映像文档之后,清除该第一标志。
15.如权利要求10所述的方法,其中判断一个或多个这些启动映像文档中的这些数据区块是否正确的该步骤还包括:
检测这些数据区块其中的一所包含的错误位数量;以及
当该数据区块内所包含的错误位数量未超过一可修复临界值时,该数据区块被视为正确的数据区块。
16.如权利要求10所述的方法,还包括:
合并这些启动映像文档中的多个正确的数据区块,使这些正确的数据区块合并成一启动映像文档复本;以及
将该启动映像文档复本储存于该存储器芯片中。
17.如权利要求16所述的方法,还包括:
取得该份正确的启动映像文档后设定一第二标志;
当该存储器芯片处于一闲置状态时,根据该第二标志合并这些正确的数据区块;以及
合并成该启动映像文档复本后,清除该第二标志。
18.一种数据保护方法,包括:
判断一存储器芯片是否进入一启动模式;
判断该存储器芯片是否预先载入多个具有相同内容的启动映像文档;
当该存储器芯片进入该启动模式且该存储器芯片预先载入多个具有相同内容的启动映像文档时,自这些启动映像文档取得一份正确的启动映像文档;以及
将该份正确的启动映像文档传送至耦接该存储器芯片的一主机,
其中各启动映像文档分别包括多个数据区块,并且其中自这些启动映像文档取得该份正确的启动映像文档的该步骤还包括:
判断一个或多个这些启动映像文档中的这些数据区块是否正确;以及
自一个或多个这些启动映像文档载入多个正确的数据区块,以取得该份正确的启动映像文档。
CN201710133315.7A 2014-01-06 2014-01-27 存储器芯片与数据保护方法 Active CN107102851B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
TW103100330A TWI484337B (zh) 2014-01-06 2014-01-06 記憶體晶片與資料保護方法
TW103100330 2014-01-06
CN201410040996.9A CN103761198B (zh) 2014-01-06 2014-01-27 存储器芯片与数据保护方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201410040996.9A Division CN103761198B (zh) 2014-01-06 2014-01-27 存储器芯片与数据保护方法

Publications (2)

Publication Number Publication Date
CN107102851A true CN107102851A (zh) 2017-08-29
CN107102851B CN107102851B (zh) 2020-06-16

Family

ID=50528440

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710133315.7A Active CN107102851B (zh) 2014-01-06 2014-01-27 存储器芯片与数据保护方法
CN201410040996.9A Active CN103761198B (zh) 2014-01-06 2014-01-27 存储器芯片与数据保护方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201410040996.9A Active CN103761198B (zh) 2014-01-06 2014-01-27 存储器芯片与数据保护方法

Country Status (3)

Country Link
US (2) US9507666B2 (zh)
CN (2) CN107102851B (zh)
TW (1) TWI484337B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112464501A (zh) * 2020-12-24 2021-03-09 深圳市芯天下技术有限公司 非易失芯片强0修复验证方法、装置、存储介质和终端

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI484337B (zh) * 2014-01-06 2015-05-11 威盛電子股份有限公司 記憶體晶片與資料保護方法
TWI609378B (zh) * 2016-06-15 2017-12-21 慧榮科技股份有限公司 資料儲存裝置與操作方法
US11797319B2 (en) * 2019-05-10 2023-10-24 Dell Products L.P. Copy and paste in virtual console with keyboard play
CN112486514B (zh) * 2020-11-27 2024-01-16 广州视源电子科技股份有限公司 eMMC烧录文件的制作方法、装置和计算机设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367688A (en) * 1987-09-04 1994-11-22 Digital Equipment Corporation Boot system for distributed digital data processing system
CN1553349A (zh) * 2003-05-29 2004-12-08 联想(北京)有限公司 一种安全芯片及基于该芯片的信息安全处理设备和方法
US6892297B1 (en) * 2000-03-16 2005-05-10 International Business Machines Corporation Method and system for searching an updated version of boot code for updating current running boot code prior to loading an operating system
CN1635473A (zh) * 2003-12-30 2005-07-06 联发科技股份有限公司 判断存储器模块中程序码正确性的方法
CN1902583A (zh) * 2003-12-31 2007-01-24 桑迪士克股份有限公司 快闪存储器系统起动操作
US20070033387A1 (en) * 2004-08-06 2007-02-08 International Business Machines Corporation System design and code update strategy to implement a self-healing, self-verifying system
CN101086701A (zh) * 2006-06-07 2007-12-12 普天信息技术研究院 一种对存储卡片上操作系统进行升级的方法
TW201007577A (en) * 2008-08-15 2010-02-16 Qnap Systems Inc Embedded system with capability of recovering operation system and recovery method for the same
TW201227304A (en) * 2010-12-24 2012-07-01 Phison Electronics Corp Data management method, memory controller and embedded memory storage apparatus using the same
CN103218319A (zh) * 2012-01-20 2013-07-24 群联电子股份有限公司 数据保护方法、存储器控制器与存储器储存装置
CN103761198B (zh) * 2014-01-06 2017-04-05 威盛电子股份有限公司 存储器芯片与数据保护方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822581A (en) * 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
US5918047A (en) * 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US5913057A (en) * 1996-12-18 1999-06-15 Intel Corporation Hidden headers for protecting computer system data
US6684353B1 (en) * 2000-12-07 2004-01-27 Advanced Micro Devices, Inc. Reliability monitor for a memory array
US6651188B2 (en) * 2001-06-29 2003-11-18 Intel Corporation Automatic replacement of corrupted BIOS image
US7165137B2 (en) * 2001-08-06 2007-01-16 Sandisk Corporation System and method for booting from a non-volatile application and file storage device
US7234051B2 (en) * 2002-08-09 2007-06-19 Intel Corporation Method and apparatus for booting from a selection of multiple boot images
US7555678B2 (en) * 2006-03-23 2009-06-30 Mediatek Inc. System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting
TWI341491B (en) * 2007-03-07 2011-05-01 Via Tech Inc Memory access system and memory access method thereof
TW200847021A (en) * 2007-05-17 2008-12-01 Asustek Comp Inc Automatic backup, restore and update BIOS computer system
JPWO2008149675A1 (ja) * 2007-06-05 2010-08-26 株式会社アドバンテスト 波形発生装置、波形発生方法およびプログラム
US8504904B2 (en) * 2008-01-16 2013-08-06 Hitachi Data Systems Engineering UK Limited Validating objects in a data storage system
KR20110024832A (ko) * 2009-09-03 2011-03-09 주식회사 하이닉스반도체 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법
US9208041B2 (en) * 2012-10-05 2015-12-08 International Business Machines Corporation Dynamic protection of a master operating system image
US9542195B1 (en) * 2013-07-29 2017-01-10 Western Digital Technologies, Inc. Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367688A (en) * 1987-09-04 1994-11-22 Digital Equipment Corporation Boot system for distributed digital data processing system
US6892297B1 (en) * 2000-03-16 2005-05-10 International Business Machines Corporation Method and system for searching an updated version of boot code for updating current running boot code prior to loading an operating system
CN1553349A (zh) * 2003-05-29 2004-12-08 联想(北京)有限公司 一种安全芯片及基于该芯片的信息安全处理设备和方法
CN1635473A (zh) * 2003-12-30 2005-07-06 联发科技股份有限公司 判断存储器模块中程序码正确性的方法
CN1902583A (zh) * 2003-12-31 2007-01-24 桑迪士克股份有限公司 快闪存储器系统起动操作
US20070033387A1 (en) * 2004-08-06 2007-02-08 International Business Machines Corporation System design and code update strategy to implement a self-healing, self-verifying system
CN101086701A (zh) * 2006-06-07 2007-12-12 普天信息技术研究院 一种对存储卡片上操作系统进行升级的方法
TW201007577A (en) * 2008-08-15 2010-02-16 Qnap Systems Inc Embedded system with capability of recovering operation system and recovery method for the same
TW201227304A (en) * 2010-12-24 2012-07-01 Phison Electronics Corp Data management method, memory controller and embedded memory storage apparatus using the same
CN103218319A (zh) * 2012-01-20 2013-07-24 群联电子股份有限公司 数据保护方法、存储器控制器与存储器储存装置
CN103761198B (zh) * 2014-01-06 2017-04-05 威盛电子股份有限公司 存储器芯片与数据保护方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112464501A (zh) * 2020-12-24 2021-03-09 深圳市芯天下技术有限公司 非易失芯片强0修复验证方法、装置、存储介质和终端
CN112464501B (zh) * 2020-12-24 2023-06-23 芯天下技术股份有限公司 非易失芯片强0修复验证方法、装置、存储介质和终端

Also Published As

Publication number Publication date
CN107102851B (zh) 2020-06-16
US10120597B2 (en) 2018-11-06
TW201527975A (zh) 2015-07-16
US20150193308A1 (en) 2015-07-09
CN103761198A (zh) 2014-04-30
US9507666B2 (en) 2016-11-29
TWI484337B (zh) 2015-05-11
CN103761198B (zh) 2017-04-05
US20170038988A1 (en) 2017-02-09

Similar Documents

Publication Publication Date Title
CN103761198B (zh) 存储器芯片与数据保护方法
KR101652874B1 (ko) 메모리 장치를 위한 온 칩 리던던시 수리
CN107924443A (zh) 用于过程控制的控制装置的固件升级方法及其系统
US10922071B2 (en) Centralized off-board flash memory for server devices
CN104679685A (zh) 基板管理控制器存取方法
US20140310816A1 (en) Method to Prevent Operating System Digital Product Key Activation Failures
WO2013096589A1 (en) Auxiliary card initialization routine
CN104679622A (zh) 基本输入输出系统维护方法
CN115314416B (zh) 网卡状态自动检测方法、装置、电子设备及存储介质
CN103761131A (zh) 一种基于内存共享的多板卡部件自动更新方法及系统
CN102915209B (zh) 一种存储控制芯片、存储设备及其系统数据写入方法
CN103475514B (zh) 无bmc的节点、集群系统及bios修复和升级方法
CN101334746A (zh) 多组件系统
CN112380078A (zh) Usb设备通信测试方法和测试装置
US7937511B2 (en) Burning apparatus
CN116820193A (zh) 线缆连接正确性识别系统、方法、装置、设备和存储介质
CN114637669A (zh) 设备管理方法、装置、设备及存储介质
CN108052337A (zh) 一种eMMC量产工具的固件升级方法及装置
CN105376481B (zh) 摄像装置驱动方法及摄像装置的驱动装置
CN103226479B (zh) 电子设备系统以及电子设备
EP3557422A1 (en) Method for accessing code sram, and electronic device
CN116471507B (zh) 交换机数据通信方法、装置、交换机和存储介质
TWI764342B (zh) 啟動狀態偵測系統及其方法
CN113765827B (zh) 一种交换机固件保护系统
JP5435648B2 (ja) ファイル共有装置、ファイル共有装置のファームウェアアップデート方法、コンピュータプログラム

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