CN112540799A - 启动数据的管理方法、系统、终端设备及存储介质 - Google Patents

启动数据的管理方法、系统、终端设备及存储介质 Download PDF

Info

Publication number
CN112540799A
CN112540799A CN202011393427.4A CN202011393427A CN112540799A CN 112540799 A CN112540799 A CN 112540799A CN 202011393427 A CN202011393427 A CN 202011393427A CN 112540799 A CN112540799 A CN 112540799A
Authority
CN
China
Prior art keywords
data
storage medium
error
startup
xor
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.)
Pending
Application number
CN202011393427.4A
Other languages
English (en)
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.)
SHENZHEN SILICONGO MICROELECTRONICS CO Ltd
Original Assignee
SHENZHEN SILICONGO MICROELECTRONICS CO Ltd
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 SHENZHEN SILICONGO MICROELECTRONICS CO Ltd filed Critical SHENZHEN SILICONGO MICROELECTRONICS CO Ltd
Priority to CN202011393427.4A priority Critical patent/CN112540799A/zh
Publication of CN112540799A publication Critical patent/CN112540799A/zh
Pending legal-status Critical Current

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
    • 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/1446Point-in-time backing up or restoration of persistent data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (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)

Abstract

本发明公开了一种启动数据的管理方法、系统、终端设备及计算机存储介质,通过生成系统引导相关的启动数据的异或数据,其中,所述启动数据包括多个数据片段;将各所述数据片段和所述异或数据关联存储在预设的存储介质当中;若从所述存储介质当中读取的任一所述数据片段出错,则确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限;在检测到所述出错状态超过所述纠错能力上限时,根据所述异或数据恢复得到所述启动数据。本发明能够在启动数据的数据片段无法被存储介质纠正时,仍确保boot程序读取到稳定的数据以完成正常启动,提升了boot相关的启动数据的稳定性,满足了boot程序启动中启动数据高稳定性的要求。

Description

启动数据的管理方法、系统、终端设备及存储介质
技术领域
本发明涉及数据存储技术领域,尤其涉及一种启动数据的管理方法、系统、终端设备及计算机存储介质。
背景技术
boot(系统引导)程序启动通常都是基于存储介质(例如Nand flash(Nand闪存,一种闪存存储器)等)来实现的,即,将boot相关的启动数据存储在该存储介质当中,在boot程序启动时直接从该存储介质当中读取该启动数据进行加载以完成程序的启动。由于boot的正常启动是终端正常能够运行的根本,如此,boot相关的启动数据在存储介质当中的稳定性要求自然也是非常高的。
现有市面上的存储介质为了保证数据的稳定性,通常会由存储介质的开发设计人员针对该存储介质开发对应的数据纠错机制。然而,现有存储介质的纠错机制对于出错数据进行纠错是具有一定能力上限的,在出错数据的出错量超过该上限之后,数据将无法被准确纠错过来,从而数据的稳定性也就无法得到保证。
综上,在boot相关的启动数据的稳定性需求非常高的情况下,现有存储介质的数据纠错机制却无法使数据稳定性得到有效的保证。
发明内容
本发明的主要目的在于提供一种启动数据的管理方法、系统、终端设备及计算机存储介质,旨在提升boot相关的启动数据的稳定性,以满足boot程序启动中启动数据高稳定性的要求。
为实现上述目的,本发明提供一种启动数据的管理方法,所述启动数据的管理方法包括:
生成系统引导相关的启动数据的异或数据,其中,所述启动数据包括多个数据片段;
将各所述数据片段和所述异或数据关联存储在预设的存储介质当中;
若从所述存储介质当中读取的任一所述数据片段出错,则确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限;
在确定所述出错状态超过所述纠错能力上限时,根据所述异或数据恢复得到所述启动数据。
进一步地,所述将各所述数据片段和所述异或数据关联存储在预设的存储介质当中的步骤,包括:
将各所述数据片段分别编码存写在所述存储介质的各第一物理页上;
将所述异或数据存储在所述存储介质中与各所述第一物理页相互独立的第二物理页上,并建立所述第二物理页与各所述第一物理页之间的关联关系。
进一步地,所述预设的存储介质包括第一存储介质和第二存储介质,
所述将各所述数据片段和所述异或数据关联存储在预设的存储介质当中的步骤,还包括:
将各所述数据片段分别编码存写在所述第一存储介质的各第一物理页上;
将所述异或数据编码存写在所述第二存储介质的第二物理页上,并建立所述异或数据与各所述数据片段之间的关联关系。
进一步地,所述确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限的步骤,包括:
检测所述目标数据片段中数据的出错比特位数;
根据所述出错比特位数确定所述目标数据片段的出错状态是否超过所述存储介质的纠错能力上限。
进一步地,所述根据所述出错比特位数确定所述目标数据片段的出错状态是否超过所述存储介质的纠错能力上限的步骤,包括:
提取所述存储介质预置的数据纠错机制的最大可纠错比特位数;
若所述出错比特位数大于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态超过所述存储介质的纠错能力上限;或者,
若所述出错比特位数小于或者等于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态未超过所述存储介质的纠错能力上限。
进一步地,所述生成系统引导相关的启动数据的异或数据的步骤,包括:
按照预设的异或算法针对所述启动数据的各所述数据片段进行异或运算得到所述异或数据。
进一步地,所述根据所述异或数据恢复得到所述启动数据的步骤,包括:
根据所述异或数据与各所述数据片段之间的关联关系,从所述存储介质中提取所述异或数据;
针对所述异或数据和各所述数据片段中除所述目标数据片段之外的各其他数据片段进行异或运算得到未出错的所述目标数据片段;
将未出错的所述目标数据片段与各所述其他数据片段组合以恢复得到所述启动数据。
此外,为实现上述目的,本发明还提供一种启动数据的管理系统,所述启动数据的管理系统包括:
异或运算模块,用于生成系统引导相关的启动数据的异或数据,其中,所述启动数据包括多个数据片段;
存储模块,用于将各所述数据片段和所述异或数据关联存储在预设的存储介质当中;
确定模块,用于若从所述存储介质当中读取的任一所述数据片段出错,则确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限;
恢复模块,用于在确定所述出错状态超过所述纠错能力上限时,根据所述异或数据恢复得到所述启动数据。
本发明启动数据的管理系统的各功能模块在运行时实现如上述的启动数据的管理方法的步骤。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的启动数据的管理程序,所述启动数据的管理程序被所述处理器执行时实现如上述中的启动数据的管理方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的启动数据的管理方法的步骤。
本发明提出的启动数据的管理方法、系统、终端设备以及计算机存储介质,通过生成系统引导相关的启动数据的异或数据,其中,所述启动数据包括多个数据片段;将各所述数据片段和所述异或数据关联存储在预设的存储介质当中;若从所述存储介质当中读取的任一所述数据片段出错,则确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限;在检测到所述出错状态超过所述纠错能力上限时,根据所述异或数据恢复得到所述启动数据。
本发明通过生成由多个数据片段组成的boot(系统引导)相关的启动数据的异或数据,然后将该多个数据片段与该异或数据关联存储在预设的存储介质当中,如此,在终端的boot程序启动过程中,若boot程序从存储介质当中读取的启动数据的某一个数据片段出错时,先确定该出错的目标数据片段的出错状态是否已经超过了该存储介质本身的纠错能力上限,然后在确定该出错状态超过了该纠错能力上限时,即根据该存储介质当中与各数据片段关联存储的异或数据恢复还原得到boot程序启动所需要启动数据。
本发明基于生成系统引导相关的启动数据的异或数据,并在boot程序启动以读取该启动数据的某一个数据片段出错且无法基于存储介质自身的数据纠错机制被纠正时,直接基于该异或数据来恢复还原该启动数据。相比于传统启动数据的仅依赖存储介质的数据纠错机制来维护数据稳定性的方式,本发明能够在启动数据的数据片段无法被存储介质纠正时,仍确保boot程序读取到稳定的数据以完成正常启动,提升了boot相关的启动数据的稳定性,满足了boot程序启动中启动数据高稳定性的要求。
附图说明
图1是本发明实施例方案涉及终端设备的硬件运行的结构示意图;
图2是本发明一种启动数据的管理方法一实施例的流程示意图;
图3是本发明一种启动数据的管理系统的模块结构示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及终端设备的硬件运行环境的结构示意图。
需要说明的是,图1即可为终端设备的硬件运行环境的结构示意图。本发明实施例终端设备可以是使用eMMC的移动设备,数据存储控制终端,PC,便携计算机等终端设备。
如图1所示,该终端设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是非易失性存储器(如,Flash存储器)、高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及分布式任务的处理程序。其中,操作系统是管理和控制样本终端设备硬件和软件资源的程序,支持分布式任务的处理程序以及其它软件或程序的运行。
在图1所示的终端设备中,用户接口1003主要用于与各个终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的启动数据的管理程序,并执行以下操作:
生成系统引导相关的启动数据的异或数据,其中,所述启动数据包括多个数据片段;
将各所述数据片段和所述异或数据关联存储在预设的存储介质当中;
若从所述存储介质当中读取的任一所述数据片段出错,则确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限;
在确定所述出错状态超过所述纠错能力上限时,根据所述异或数据恢复得到所述启动数据。
进一步地,处理器1001可以调用存储器1005中存储的启动数据的管理程序,还执行以下操作:
将各所述数据片段分别编码存写在所述存储介质的各第一物理页上;
将所述异或数据存储在所述存储介质中与各所述第一物理页相互独立的第二物理页上,并建立所述第二物理页与各所述第一物理页之间的关联关系。
进一步地,述预设的存储介质包括第一存储介质和第二存储介质,处理器1001可以调用存储器1005中存储的启动数据的管理程序,还执行以下操作:
将各所述数据片段分别编码存写在所述第一存储介质的各第一物理页上;
将所述异或数据编码存写在所述第二存储介质的第二物理页上,并建立所述异或数据与各所述数据片段之间的关联关系。
进一步地,处理器1001可以调用存储器1005中存储的启动数据的管理程序,还执行以下操作:
检测所述目标数据片段中数据的出错比特位数;
根据所述出错比特位数确定所述目标数据片段的出错状态是否超过所述存储介质的纠错能力上限。
进一步地,处理器1001可以调用存储器1005中存储的启动数据的管理程序,还执行以下操作:
提取所述存储介质预置的数据纠错机制的最大可纠错比特位数;
若所述出错比特位数大于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态超过所述存储介质的纠错能力上限;或者,
若所述出错比特位数小于或者等于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态未超过所述存储介质的纠错能力上限。
进一步地,处理器1001可以调用存储器1005中存储的启动数据的管理程序,还执行以下操作:
按照预设的异或算法针对所述启动数据的各所述数据片段进行异或运算得到所述异或数据。
进一步地,处理器1001可以调用存储器1005中存储的启动数据的管理程序,还执行以下操作:
根据所述异或数据与各所述数据片段之间的关联关系,从所述存储介质中提取所述异或数据;
针对所述异或数据和各所述数据片段中除所述目标数据片段之外的各其他数据片段进行异或运算得到未出错的所述目标数据片段;
将未出错的所述目标数据片段与各所述其他数据片段组合以恢复得到所述启动数据。
基于上述的结构,提出本发明启动数据的管理方法的各个实施例。
请参照图2,图2为本发明启动数据的管理方法第一实施例的流程示意图。
本发明实施例提供了启动数据的管理方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例启动数据的管理方法应用于上述对数据存储进行控制的终端设备中,与该终端设备进行通信连接的固态存储设备,本发明实施例终端设备可以是数据存储介质本身,数据存储控制终端,PC,便携计算机等终端设备,在此不做具体限制。
本实施例启动数据的管理方法包括:
步骤S100,生成系统引导相关的启动数据的异或数据,其中,所述启动数据包括多个数据片段;
终端设备在存储由多个数据片段所组成的boot(系统引导)相关的启动数据的过程中,终端设备通过异或运算生成该启动数据的异或数据。
需要说明的是,在本实施例中,由于系统引导相关的启动数据非常庞大,因此,终端设备在编程存储该启动数据时,通常会将该启动数据划分为多个数据片段分别进行存储。具体地,例如,当前终端设备系统引导相关的启动数据可以被分作数据片段1、数据片段2、....数据片段n,然后,终端设备将该数据片段1、数据片段2、....数据片段n,分别编程存写在存储介质的某一个或者多个物理块的各物理页进行存储。
进一步地,在一种可行的实施例中,上述步骤S100,可以包括:
步骤S101,按照预设的异或算法针对所述启动数据的各所述数据片段进行异或运算得到所述异或数据。
需要说明的是,在本实施例中,预设异或算法具体可以为现有任意成熟的异或算法。
具体地,例如,本实施例中,终端设备在针对系统引导相关的启动数据进行编程存储的过程中,基于该启动数据的各数据片段:数据片段1、数据片段2、....数据片段n,进行异或运算得到该启动数据的异或数据,即,终端设备按照下述公式1针对启动数据的各数据片段:数据片段1、数据片段2、....数据片段n,进行异或运算得到该启动数据的异或数据。
公式1:异或数据=数据片段1⊕数据片段2⊕...⊕数据片段n。
需要说明的是,在本实施例中,上述公式1中的“⊕”,表示异或运算。
步骤S200,将各所述数据片段和所述异或数据关联存储在预设的存储介质当中;
需要说明的是,在本实施例中,预设的存储介质可以为终端设备内置的固态存储介质,或者,该存储介质也可以为终端设备所外接的固态存储介质,又或者,该存储介质还可以同时为终端设备内置以及外接的固态存储介质,且该固态存储介质的数量也可以为多个。应当理解的是,基于实际应用的不同设计需要,终端设备可以选用上述任意的固态存储介质来作为预设的存储介质用于编程存储系统引导相关的启动数据,本发明启动数据的管理方法,并不针对该存储介质的类型、数量等进行具体地限定。
终端设备在通过异或运算生成系统引导相关的启动数据的异或数据之后,终端设备随即通过编程存写的方式,将该启动数据的各个数据片段以及该异或数据,分别写入到预设的存储介质的各物理页上进行存储,并且,终端设备还建立该各个数据片段与该异或数据之间的关联关系以供后续准确的对该异或数据进行调用。
进一步地,在一种可行的实施例中,上述步骤S200,可以包括:
步骤S201,将各所述数据片段分别编码存写在所述存储介质的各第一物理页上;
具体地,例如,在本实施例中,存储介质具体可以为内置在终端设备当中某一个flash存储器a,终端设备在将系统引导相关的启动数据划分为数据片段1、数据片段2、...数据片段n之后,终端设备依次控制该flash存储器a的主控,将该数据片段1、数据片段2、...数据片段n通过编程存写至该flash存储器a内部某一片区的物理块a的物理页1、物理页2、...物理页n上,并同步在该物理页1、物理页2、...物理页n上对应写入所存储的数据片段1、数据片段2、...数据片段n各自的纠错编码。
需要说明的是,在本实施例中,终端设备在将启动数据的各个数据片段以及异或数据编程存写至存储介质的各物理页上时,存储介质将基于自身的数据纠错机制,该存储介质会同步的在存储数据片段或者异或数据的物理页上,写入该数据片段或者异或数据对应纠错编码以形成该数据片段或者异或数据的校验数据进行同步存储,从而,在后续从该物理页上读取该数据片段或者异或数据发现数据出错时,存储介质即可触发自身数据纠错机制提取该校验数据针对出错的数据片段或者异或数据进行纠正。
步骤S202,将所述异或数据存储在所述存储介质中与各所述第一物理页相互独立的第二物理页上,并建立所述第二物理页与各所述第一物理页之间的关联关系。
需要说明的是,在本实施例中,终端设备可以将系统引导相关的启动数据的异或数据,也编写存储在存储有启动数据各数据片段的存储介质当中,而为了确保该异或数据的稳定性,终端设备可以选择将该异或数据编程存写在该存储介质中,与存储启动数据各数据片段的各物理页相互独立的其它物理页上。
具体地,例如,在本实施例中,终端设备在依次控制flash存储器a的主控,将系统引导相关的启动数据的数据片段1、数据片段2、...数据片段n通过编程存写至该flash存储器a内部某一片区的物理块a的物理页1、物理页2、...物理页n上进行存储之后,终端设备进一步控制该flash存储器a的主控将生成的该启动数据的异或数据,编程写入至该flash存储器a同一片区的物理块a的物理页n+1上,并同步在该物理页n+1上对应写入所存储的异或数据的纠错编码。然后,终端设备分别构建该物理页1、物理页2、...物理页n与该物理页n+1之间的关联关系,从而实现对数据片段1、数据片段2、...数据片段n与该异或数据进行关联存储。
进一步地,在另一种可行的实施例中,终端设备还可以在依次控制flash存储器a的主控,将系统引导相关的启动数据的数据片段1、数据片段2、...数据片段n通过编程存写至该flash存储器a内部某一片区的物理块a的物理页1、物理页2、...物理页n上进行存储之后,进一步控制该flash存储器a的主控将生成的该启动数据的异或数据,编程写入至该flash存储器a同一片区的物理块b的物理页n+2上,并同步在该物理页n+2上对应写入所存储的异或数据的纠错编码。然后,终端设备分别构建该物理页1、物理页2、...物理页n与该物理页n+2之间的关联关系,从而实现对数据片段1、数据片段2、...数据片段n与该异或数据进行关联存储。
进一步地,在另一种可行的实施例中,终端设备还可以直接将系统引导相关的启动数据的各个数据片段和该启动数据的异或数据分别存储在不同的存储介质当中。上述步骤S200,还可以包括:
步骤S203,将各所述数据片段分别编码存写在所述第一存储介质的各第一物理页上;
具体地,例如,在本实施例中,存储介质具体可以为内置在终端设备当中某一个flash存储器a,终端设备在将系统引导相关的启动数据划分为数据片段1、数据片段2、...数据片段n之后,终端设备依次控制该flash存储器a的主控,将该数据片段1、数据片段2、...数据片段n通过编程存写至该flash存储器a内部某一片区的物理块a的物理页1、物理页2、...物理页n上,并同步在该物理页1、物理页2、...物理页n上对应写入所存储的数据片段1、数据片段2、...数据片段n各自的纠错编码。
步骤S204,将所述异或数据编码存写在所述第二存储介质的第二物理页上,并建立所述异或数据与各所述数据片段之间的关联关系。
具体地,例如,在本实施例中,终端设备在依次控制flash存储器a的主控,将系统引导相关的启动数据的数据片段1、数据片段2、...数据片段n通过编程存写至该flash存储器a内部某一片区的物理块a的物理页1、物理页2、...物理页n上进行存储之后,再控制内置在终端设备当中的flash存储器b的主控将生成的该启动数据的异或数据,编程写入至该flash存储器b某一片区的物理块c的物理页n+3上,并同步在该物理页n+3上对应写入所存储的异或数据的纠错编码。然后,终端设备分别构建该启动数据的数据片段1、数据片段2、...数据片段n各自与该异或数据之间的关联关系,从而实现对数据片段1、数据片段2、...数据片段n与该异或数据进行关联存储。
需要说明的是,在本实施例中,终端设备具体可以通过建立一个物理页与物理页之间页标识的关联对应表格,从而构建得到存储启动数据各数据片段的各物理页各自与存储异或数据的物理页之间的关联关系,或者,终端设备还可以建立启动数据的各数据片段各自的数据标识与异或数据的数据标识之间的关联对应表格,从而构建得到该各数据片段各自与异或数据本身之间的关联关系。应当理解的是,基于实际应用的不同设计需要,在其他可行的实施方式当中,终端设备当然也可以采用不同与本实施例所列举的其它操作方式,来构建存储启动数据各数据片段的各物理页各自与存储异或数据的物理页之间的关联关系,或者各数据片段各自与异或数据本身之间的关联关系,本发明启动数据的管理方法并不针对终端设备构建该关联关系的操作进行具体的限定。
步骤S300,若从所述存储介质当中读取的任一所述数据片段出错,则确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限;
终端设备在将启动数据的各数据片段以及异或数据存储在存储介质当中之后,若终端设备在基于boot—系统引导程序启动的需要从该存储介质当中读取启动数据各数据片段的过程中,检测到当前读取出的某一个数据片段出错,则终端设备先确定该数据片段的出错状态是否已经超过了该存储介质自身数据纠错机制的纠错能力上限。
需要说明的是,在本实施例中,基于flash存储器本身的物理特性限制,该flash存储器可能会因为坏列甚至坏块、数据读干扰等等问题,导致已经编写存储在该flash存储器内部的数据出错,从而,flash存储器的设计开发人员通常会针对性的为各flash存储器配置一套数据纠错机制以在存储的数据出错时针对该出错的数据进行纠正,以此保证数据的稳定。
具体地,例如,在本实施例中,终端设备在boot系统引导程序启动的过程中,基于该boot系统引导程序启动的需要从flash存储器a当中读取启动数据的各个数据片段:数据片段1、数据片段2、...和/或者数据片段n,从而,若终端设备在当前控制flash存储器a的主控从物理页2上读取的数据片段2出错时,终端设备随即再控制该flash存储器a的主控从物理页2上读取数据片段2的纠错编码针对数据片段2出现的错误进行纠错,如此,在能够纠正该数据片段2出现的错误时,确定当前数据片段2的出错状态还未超过该flash存储器自身数据纠错机制的纠错能力上限,反之,在不能纠正该数据片段2出现的错误时,即确定当前数据片段2的出错状态已经超过了该flash存储器自身数据纠错机制的纠错能力上限。
进一步地,在一种可行的实施例中,终端设备还可以通过比对数据出错比特位数的方式,来确定出错的目标数据片段的出错状态是否已经超过了存储介质自身数据纠错机制的纠错能力上限。上述步骤S300中,“确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限”的步骤,还可以包括:
步骤S301,检测所述目标数据片段中数据的出错比特位数;
终端设备在基于boot—系统引导程序启动的需要从该存储介质当中读取启动数据各数据片段的过程中,若检测到当前读取出的某一个数据片段出错,则进一步检测当前该出错的目标数据片段中,数据出现错误的出错比特位数。
具体地,例如,在本实施例中,终端设备在boot系统引导程序启动的过程中,基于该boot系统引导程序启动的需要从flash存储器a当中读取启动数据的各个数据片段:数据片段1、数据片段2、...和/或者数据片段n,从而,若终端设备在当前控制flash存储器a的主控从物理页2上读取的数据片段2出错时,终端设备随即检测该数据片段2中,数据出现错误的数据比特位数。
步骤S302,根据所述出错比特位数确定所述目标数据片段的出错状态是否超过所述存储介质的纠错能力上限。
终端设备在检测到当前出错的目标数据片段中,数据出现错误的出错比特位数之后,通过比对该比特位数与该存储介质自身数据纠错机制所能够正确纠正回来的比特位数,从而根据比对结果来确定该目标数据片段的出错状态是否已经超过了该存储介质自身数据纠错机制的纠错能力上限。
进一步地,在一种可行的实施例中,上述步骤S302,可以包括:
步骤S3021,提取所述存储介质预置的数据纠错机制的最大可纠错比特位数;
需要说明的是,在本实施例中,不同的存储介质各自预置的数据纠错机制也是不同的,从而各存储介质各自数据纠错机制所拥有的最大可纠错比特位数自然也是有区别的。本实施例中,由于存储介质本身数据纠错机制的类型以及纠错方式等并非为本发明技术方案的重点,因此,本发明启动数据的管理方法并不针对该数据纠错机制的类型、数据纠错方式等进行具体地限定。
具体地,例如,在本实施例中,终端设备在当前控制flash存储器a的主控从物理页2上读取的数据片段2出错之后,随即控制该flash存储器a的中控,提取出该flash存储器a自身的数据纠错机制所记载的最大可纠错比特位数—32比特并返回。
步骤S3022,若所述出错比特位数大于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态超过所述存储介质的纠错能力上限;
具体地,例如,在本实施例中,假定终端设备在当前控制flash存储器a的主控从物理页2上读取的数据片段2出错时,终端设备随即检测到的该数据片段2中,数据出现错误的出错数据比特位数为40比特,从而,终端设备将该40比特与提取到的flash存储器a自身的数据纠错机制所记载的最大可纠错比特位数—32比特进行比对时,发现该出错数据比特位数—40比特大于flash存储器a自身数据纠错机制的最大可纠错比特位数—32比特,如此,终端设备即可确定当前数据片段2的出错状态已经超过了该flash存储器自身数据纠错机制的纠错能力上限。
步骤S3023,若所述出错比特位数小于或者等于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态未超过所述存储介质的纠错能力上限。
具体地,例如,在本实施例中,假定终端设备在当前控制flash存储器a的主控从物理页2上读取的数据片段2出错时,终端设备随即检测到的该数据片段2中,数据出现错误的出错数据比特位数为32比特,从而,终端设备将该32比特与提取到的flash存储器a自身的数据纠错机制所记载的最大可纠错比特位数—32比特进行比对时,发现该出错数据比特位数—32比特正好等于该flash存储器a自身数据纠错机制的最大可纠错比特位数—32比特,如此,终端设备即可确定当前数据片段2的出错状态尚未超过该flash存储器自身数据纠错机制的纠错能力上限。
步骤S400,在确定所述出错状态超过所述纠错能力上限时,根据所述异或数据恢复得到所述启动数据。
终端设备在确定目标数据片段的出错状态已经超过存储介质自身数据纠错机制的纠错能力上限之后,终端设备随即提取出与该目标数据片段相关联的异或数据,然后根据该异或数据再次执行异或运算从而恢复还原得到该启动数据以供系统引导进行调用。
在一种可行的实施例中,上述步骤S400中,“根据所述异或数据恢复得到所述启动数据”的步骤,可以包括:
步骤S401,根据所述异或数据与各所述数据片段之间的关联关系,从所述存储介质中提取所述异或数据;
终端设备在确定目标数据片段的出错状态已经超过存储介质自身数据纠错机制的纠错能力上限之后,先根据该目标数据片段与异或数据之间的关联关系,从存储介质当中提取出该异或数据。
具体地,例如,在本实施例中,终端设备在当前控制flash存储器a的主控从物理页2上读取的数据片段2出错,且已经确定数据片段2的出错状态已经超过了该flash存储器自身数据纠错机制的纠错能力上限之后,终端设备随即根据预先将该数据片段2写入至物理页2进行存储后,并通过建立该物理页2与该flash存储器a中存写异或数据的物理页n+1之间的关联关系,控制该flash存储器a的主控从而该物理页n+1上提取出异或数据。
步骤S402,针对所述异或数据和各所述数据片段中除所述目标数据片段之外的各其他数据片段进行异或运算得到未出错的所述目标数据片段;
步骤S403,将未出错的所述目标数据片段与各所述其他数据片段组合以恢复得到所述启动数据。
终端设备在提取得到与目标数据片段相关联的异或数据之后,随即联合系统引导相关的启动数据除该目标数据片段之外的其他各个数据片段一起,再次进行异或运算以恢复还原得到未出现数据错误的目标数据片段。
终端设备在基于再次异或运算恢复得到未出错的目标数据片段之后,将该未出错的目标数据片段连同其它的各个数据片段一起组合形成系统引导相关的启动数据,进而供系统引导程序启动时进行调用。
具体地,例如,在本实施例中,终端设备在从flash存储器a中的物理页n+1提取出异或数据之后,联合boot—系统引导相关的启动数据的各个数据片段中,除开当前出错的数据片段2的其他各个数据片段:数据片段1、...数据片段n一起进行异或运算,从而恢复得到为出错的数据片段2。然后,终端设备将该未出错的数据片段2与其他各个数据片段:数据片段1、...数据片段n一起组合形成boot—系统引导相关的整体启动数据,以供boot—系统引导程序启动时可随时调用。
在本实施例中,通过终端设备在存储由多个数据片段所组成的boot(系统引导)相关的启动数据的过程中,终端设备通过异或运算生成该启动数据的异或数据;终端设备在通过异或运算生成系统引导相关的启动数据的异或数据之后,终端设备随即通过编程存写的方式,将该启动数据的各个数据片段以及该异或数据,分别写入到预设的存储介质的各物理页上进行存储,并且,终端设备还建立该各个数据片段与该异或数据之间的关联关系以供后续准确的对该异或数据进行调用。终端设备在将启动数据的各数据片段以及异或数据存储在存储介质当中之后,若终端设备在基于boot—系统引导程序启动的需要从该存储介质当中读取启动数据各数据片段的过程中,检测到当前读取出的某一个数据片段出错,则终端设备先确定该数据片段的出错状态是否已经超过了该存储介质自身数据纠错机制的纠错能力上限;终端设备在确定目标数据片段的出错状态已经超过存储介质自身数据纠错机制的纠错能力上限之后,终端设备随即提取出与该目标数据片段相关联的异或数据,然后根据该异或数据再次执行异或运算从而恢复还原得到该启动数据以供系统引导进行调用。
本发明基于生成系统引导相关的启动数据的异或数据,并在boot程序启动以读取该启动数据的某一个数据片段出错且无法基于存储介质自身的数据纠错机制被纠正时,直接基于该异或数据来恢复还原该启动数据。相比于传统启动数据的仅依赖存储介质的数据纠错机制来维护数据稳定性的方式,本发明能够在启动数据的数据片段无法被存储介质纠正时,仍确保boot程序读取到稳定的数据以完成正常启动,提升了boot相关的启动数据的稳定性,满足了boot程序启动中启动数据高稳定性的要求。
此外,请参照图3,本发明实施例还提出一种启动数据的管理系统,本发明启动数据的管理系统包括:
异或运算模块,用于生成系统引导相关的启动数据的异或数据,其中,所述启动数据包括多个数据片段;
存储模块,用于将各所述数据片段和所述异或数据关联存储在预设的存储介质当中;
确定模块,用于若从所述存储介质当中读取的任一所述数据片段出错,则确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限;
恢复模块,用于在确定所述出错状态超过所述纠错能力上限时,根据所述异或数据恢复得到所述启动数据。
优选地,所述存储模块,包括:
第一存储单元,用于将各所述数据片段分别编码存写在所述存储介质的各第一物理页上;
第二存储单元,用于将所述异或数据存储在所述存储介质中与各所述第一物理页相互独立的第二物理页上,并建立所述第二物理页与各所述第一物理页之间的关联关系。
优选地,所述预设的存储介质包括第一存储介质和第二存储介质,所述存储模块,还包括:
第三存储单元,用于将各所述数据片段分别编码存写在所述第一存储介质的各第一物理页上;
第四存储单元,用于将所述异或数据编码存写在所述第二存储介质的第二物理页上,并建立所述异或数据与各所述数据片段之间的关联关系。
优选地,所述确定模块,包括:
检测单元,用于检测所述目标数据片段中数据的出错比特位数;
确定单元,用于根据所述出错比特位数确定所述目标数据片段的出错状态是否超过所述存储介质的纠错能力上限。
优选地,所述确定单元,包括:
提取子单元,用于提取所述存储介质预置的数据纠错机制的最大可纠错比特位数;
第一确定子单元,用于若所述出错比特位数大于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态超过所述存储介质的纠错能力上限;
第二确定子单元,用于若所述出错比特位数小于或者等于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态未超过所述存储介质的纠错能力上限。
优选地,所述异或运算模块,还用于按照预设的异或算法针对所述启动数据的各所述数据片段进行异或运算得到所述异或数据。
优选地,所述恢复模块,包括:
提取单元,用于根据所述异或数据与各所述数据片段之间的关联关系,从所述存储介质中提取所述异或数据;
运算单元,用于针对所述异或数据和各所述数据片段中除所述目标数据片段之外的各其他数据片段进行异或运算得到未出错的所述目标数据片段;
恢复单元,用于将未出错的所述目标数据片段与各所述其他数据片段组合以恢复得到所述启动数据。
其中,本发明启动数据的管理系统的各功能模块在运行时所实现的步骤,可参照上述本发明启动数据的管理方法的各个实施例,此处不再赘述。
此外,本发明实施例还提出一种终端设备,该终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的启动数据的管理程序,该启动数据的管理程序被所述处理器执行时实现如上述中的启动数据的管理方法的步骤。
其中,在所述处理器上运行的启动数据的管理程序被执行时所实现的步骤可参照本发明启动数据的管理方法的各个实施例,此处不再赘述。
此外,本发明实施例还提出一种计算机存储介质,应用于计算机,该计算机存储介质可以为非易失性计算机可读计算机存储介质,该计算机存储介质上存储有启动数据的管理程序,所述启动数据的管理程序被处理器执行时实现如上所述的启动数据的管理方法的步骤。
其中,在所述处理器上运行的启动数据的管理程序被执行时所实现的步骤可参照本发明启动数据的管理方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机存储介质(如Flash存储器、ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种启动数据的管理方法,其特征在于,所述启动数据的管理方法包括:
生成系统引导相关的启动数据的异或数据,其中,所述启动数据包括多个数据片段;
将各所述数据片段和所述异或数据关联存储在预设的存储介质当中;
若从所述存储介质当中读取的任一所述数据片段出错,则确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限;
在确定所述出错状态超过所述纠错能力上限时,根据所述异或数据恢复得到所述启动数据。
2.如权利要求1所述的启动数据的管理方法,其特征在于,所述将各所述数据片段和所述异或数据关联存储在预设的存储介质当中的步骤,包括:
将各所述数据片段分别编码存写在所述存储介质的各第一物理页上;
将所述异或数据存储在所述存储介质中与各所述第一物理页相互独立的第二物理页上,并建立所述第二物理页与各所述第一物理页之间的关联关系。
3.如权利要求1所述的启动数据的管理方法,其特征在于,所述预设的存储介质包括第一存储介质和第二存储介质,
所述将各所述数据片段和所述异或数据关联存储在预设的存储介质当中的步骤,还包括:
将各所述数据片段分别编码存写在所述第一存储介质的各第一物理页上;
将所述异或数据编码存写在所述第二存储介质的第二物理页上,并建立所述异或数据与各所述数据片段之间的关联关系。
4.如权利要求1所述的启动数据的管理方法,其特征在于,所述确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限的步骤,包括:
检测所述目标数据片段中数据的出错比特位数;
根据所述出错比特位数确定所述目标数据片段的出错状态是否超过所述存储介质的纠错能力上限。
5.如权利要求4所述的启动数据的管理方法,其特征在于,所述根据所述出错比特位数确定所述目标数据片段的出错状态是否超过所述存储介质的纠错能力上限的步骤,包括:
提取所述存储介质预置的数据纠错机制的最大可纠错比特位数;
若所述出错比特位数大于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态超过所述存储介质的纠错能力上限;或者,
若所述出错比特位数小于或者等于所述最大可纠错比特位数,则确定所述目标数据片段的出错状态未超过所述存储介质的纠错能力上限。
6.如权利要求1所述的启动数据的管理方法,其特征在于,所述生成系统引导相关的启动数据的异或数据的步骤,包括:
按照预设的异或算法针对所述启动数据的各所述数据片段进行异或运算得到所述异或数据。
7.如权利要求1所述的启动数据的管理方法,其特征在于,所述根据所述异或数据恢复得到所述启动数据的步骤,包括:
根据所述异或数据与各所述数据片段之间的关联关系,从所述存储介质中提取所述异或数据;
针对所述异或数据和各所述数据片段中除所述目标数据片段之外的各其他数据片段进行异或运算得到未出错的所述目标数据片段;
将未出错的所述目标数据片段与各所述其他数据片段组合以恢复得到所述启动数据。
8.一种启动数据的管理系统,其特征在于,所述启动数据的管理系统包括:
异或运算模块,用于生成系统引导相关的启动数据的异或数据,其中,所述启动数据包括多个数据片段;
存储模块,用于将各所述数据片段和所述异或数据关联存储在预设的存储介质当中;
确定模块,用于若从所述存储介质当中读取的任一所述数据片段出错,则确定出错的目标数据片段的出错状态是否超过所述存储介质的纠错能力上限;
恢复模块,用于在确定所述出错状态超过所述纠错能力上限时,根据所述异或数据恢复得到所述启动数据。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的启动数据的管理程序,所述启动数据的管理程序被所述处理器执行时实现如权利要求1至7中任一项所述的启动数据的管理方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的启动数据的管理方法的步骤。
CN202011393427.4A 2020-12-02 2020-12-02 启动数据的管理方法、系统、终端设备及存储介质 Pending CN112540799A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011393427.4A CN112540799A (zh) 2020-12-02 2020-12-02 启动数据的管理方法、系统、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011393427.4A CN112540799A (zh) 2020-12-02 2020-12-02 启动数据的管理方法、系统、终端设备及存储介质

Publications (1)

Publication Number Publication Date
CN112540799A true CN112540799A (zh) 2021-03-23

Family

ID=75017077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011393427.4A Pending CN112540799A (zh) 2020-12-02 2020-12-02 启动数据的管理方法、系统、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN112540799A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI831379B (zh) * 2022-06-14 2024-02-01 瑞昱半導體股份有限公司 開機資料讀取系統、方法以及處理電路

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739306A (zh) * 2008-11-12 2010-06-16 成都市华为赛门铁克科技有限公司 数据错误处理方法、数据错误检查和纠正装置及系统
CN102667738A (zh) * 2009-10-09 2012-09-12 提琴存储器公司 具有多个raid组分条的内存系统及其方法
CN104156174A (zh) * 2014-07-31 2014-11-19 记忆科技(深圳)有限公司 基于条带的固态硬盘raid实现方法及装置
CN104461926A (zh) * 2014-11-27 2015-03-25 记忆科技(深圳)有限公司 一种基于二维raid的固态硬盘数据保护方法
CN108089892A (zh) * 2017-12-13 2018-05-29 深圳市创维软件有限公司 一种系统安全启动的方法、装置、机顶盒及存储介质
CN108564972A (zh) * 2018-03-14 2018-09-21 广东紫晶信息存储技术股份有限公司 一种用于光盘数据存储的冗余恢复码纠错方法
CN109669800A (zh) * 2017-10-13 2019-04-23 爱思开海力士有限公司 用于写入路径错误的高效数据恢复
CN110222035A (zh) * 2019-06-10 2019-09-10 天津神舟通用数据技术有限公司 一种基于异或校验与日志恢复的数据库页面高效容错方法
CN111679934A (zh) * 2020-08-13 2020-09-18 杭州阿姆科技有限公司 基于raid信息的纠错方法、计算机可读存储介质及处理器

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739306A (zh) * 2008-11-12 2010-06-16 成都市华为赛门铁克科技有限公司 数据错误处理方法、数据错误检查和纠正装置及系统
CN102667738A (zh) * 2009-10-09 2012-09-12 提琴存储器公司 具有多个raid组分条的内存系统及其方法
CN104156174A (zh) * 2014-07-31 2014-11-19 记忆科技(深圳)有限公司 基于条带的固态硬盘raid实现方法及装置
CN104461926A (zh) * 2014-11-27 2015-03-25 记忆科技(深圳)有限公司 一种基于二维raid的固态硬盘数据保护方法
CN109669800A (zh) * 2017-10-13 2019-04-23 爱思开海力士有限公司 用于写入路径错误的高效数据恢复
CN108089892A (zh) * 2017-12-13 2018-05-29 深圳市创维软件有限公司 一种系统安全启动的方法、装置、机顶盒及存储介质
CN108564972A (zh) * 2018-03-14 2018-09-21 广东紫晶信息存储技术股份有限公司 一种用于光盘数据存储的冗余恢复码纠错方法
CN110222035A (zh) * 2019-06-10 2019-09-10 天津神舟通用数据技术有限公司 一种基于异或校验与日志恢复的数据库页面高效容错方法
CN111679934A (zh) * 2020-08-13 2020-09-18 杭州阿姆科技有限公司 基于raid信息的纠错方法、计算机可读存储介质及处理器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI831379B (zh) * 2022-06-14 2024-02-01 瑞昱半導體股份有限公司 開機資料讀取系統、方法以及處理電路

Similar Documents

Publication Publication Date Title
US20210124574A1 (en) Techniques for updating a file using a multi-version patch file
US9286164B2 (en) Electronic device to restore MBR, method thereof, and computer-readable medium
US8671330B2 (en) Storage device, electronic device, and data error correction method
CN107220141B (zh) 数据文件校验方法及装置
US20150074461A1 (en) Method and relevant apparatus for starting boot program
CN110442473B (zh) 一种非易失性数据存储方法、装置、电子设备及介质
CN107315616B (zh) 一种固件的加载方法、装置及电子设备
US20070174704A1 (en) Computer program automatic recovery activation control method and system
CN109086078B (zh) 安卓系统升级方法、装置、服务器及移动终端
US9218249B2 (en) Electronic apparatus, method of restoring guid partition table (GPT) and computer-readable recording medium
CN111813428A (zh) 终端固件的升级方法、装置、电子设备及存储介质
CN104077167A (zh) 基于nand flash的启动加载方法和装置
US20130080751A1 (en) Method and device for updating bios program for computer system
CN110569058B (zh) 系统升级方法、装置、终端及计算机可读存储介质
US8413132B2 (en) Techniques for resolving read-after-write (RAW) conflicts using backup area
US9772892B2 (en) Recovery method for portable touch-control device and portable touch-control device using the same
CN112540799A (zh) 启动数据的管理方法、系统、终端设备及存储介质
CN108196975B (zh) 基于多校验和的数据验证方法、装置及存储介质
CN116521062A (zh) 数据处理方法、装置、计算机设备和存储介质
CN116627519A (zh) 一种嵌入式设备的多系统启动方法
KR20180023575A (ko) 펌웨어 자동 업데이트 방법 및 이의 방법을 기록한 컴퓨터 판독 가능한 기록 매체
US20200341911A1 (en) Method, device, and computer program product for managing storage system
CN111984451A (zh) 表格数据的纠错方法、系统、设备及存储介质
CN113778485A (zh) 电子芯片的系统运行方法、装置、电子芯片和存储介质
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs

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