CN118034993B - 存储数据的保护方法、装置、电子设备及存储介质 - Google Patents
存储数据的保护方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN118034993B CN118034993B CN202410432776.4A CN202410432776A CN118034993B CN 118034993 B CN118034993 B CN 118034993B CN 202410432776 A CN202410432776 A CN 202410432776A CN 118034993 B CN118034993 B CN 118034993B
- Authority
- CN
- China
- Prior art keywords
- data
- storage device
- bit width
- error
- spliced
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012937 correction Methods 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 claims abstract description 9
- 238000013500 data storage Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 14
- 238000009825 accumulation Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请提供了存储数据的保护方法、装置、电子设备及存储介质,方法包括:接收输入数据,并基于输入数据确定写入数据,写入数据表征写入存储设备中的数据;基于写入数据确定写入数据对应的编码数据,将写入数据与编码数据进行拼接得到拼接数据,并将拼接数据存储于存储设备中;当数据请求设备请求读取存储设备中的拼接数据时,对拼接数据进行解码,并对解码得到的解码数据执行校验纠错操作;在执行校验纠错操作的过程中,获取对解码数据中的错误数据进行纠错处理所得到的正确数据;将正确数据发送至数据请求设备,并将正确数据写回存储设备中。这样,能够有效地避免因存储设备中的错误数据累积过多而导致的错误数据无法被纠正的问题。
Description
技术领域
本申请涉及数据保护技术领域,具体而言,涉及一种存储数据的保护方法、装置、电子设备及计算机可读存储介质。
背景技术
存储器在芯片设计中承担着举足轻重的作用,往往存放着芯片工作过程中的重要数据,例如芯片启动所需要加载的程序,芯片工作过程中所缓存的内容等。因此,对存储器所存储的数据进行保护十分重要,为此行业内也作出了对于存储数据进行保护的相关设计。
目前,相关技术往往对数据信号进行ECC(Error Checking and Correcting,错误检查和纠正)校验纠错或者进行CRC(Cyclic Redundancy Check,循环冗余校验)检验,虽然在一定程度上能够保证数据读取的正确性,但是如果错误数据的数量持续增加,进而将导致存储数据无法被完全纠正。
发明内容
为解决上述技术问题,本申请的实施例提供了一种存储数据的保护方法、装置、电子设备及计算机可读存储介质。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
第一方面,提供了一种存储数据的保护方法,所述方法包括:接收输入数据,并基于所述输入数据确定写入数据,所述写入数据表征写入存储设备中的数据;基于所述写入数据确定所述写入数据对应的编码数据,将所述写入数据与所述编码数据进行拼接得到拼接数据,并将所述拼接数据存储于所述存储设备中;当数据请求设备请求读取所述存储设备中的所述拼接数据时,对所述拼接数据进行解码,并对解码得到的解码数据执行校验纠错操作;在执行所述校验纠错操作的过程中,获取对所述解码数据中的错误数据进行纠错处理所得到的正确数据;将所述正确数据发送至所述数据请求设备,并将所述正确数据写回所述存储设备中。
在本申请的一个实施例中,基于前述方案,所述接收输入数据,并基于所述输入数据确定写入数据,包括:获取所述输入数据的位宽,并比较所述输入数据的位宽和所述存储设备对应的数据位宽;若所述输入数据的位宽等于所述存储设备对应的数据位宽,则将所述输入数据作为所述写入数据。
在本申请的一个实施例中,基于前述方案,所述接收输入数据,并基于所述输入数据确定写入数据,还包括:若所述输入数据的位宽小于所述存储设备对应的数据位宽,则获取与所述存储设备相对应的原数据,所述原数据的位宽与所述存储设备对应的数据位宽相同;根据所述输入数据的位宽确定所述原数据中待替换的数据位置,并将所述输入数据替换入所述待替换的数据位置得到新数据,并将所述新数据作为所述写入数据。
在本申请的一个实施例中,基于前述方案,所述存储设备包括存储容量相同的写入数据存储设备和编码数据存储设备,所述方法还包括:将所述写入数据存储设备和所述编码数据存储设备的地址对齐;所述将所述拼接数据存储于所述存储设备中,包括:将所述拼接数据中的写入数据存储至所述写入数据存储设备,并将所述拼接数据中的编码数据存储至所述编码数据存储设备。
在本申请的一个实施例中,基于前述方案,所述方法还包括:若检测到在执行所述校验纠错操作中,对所述解码数据中的错误数据进行纠错处理,则记录所述错误数据的地址,并将所述错误数据丢弃。
在本申请的一个实施例中,基于前述方案,所述方法还包括:设置看门狗复位机制;收集在执行所述校验纠错操作中检测到的所述错误数据的数量;若所述错误数据的数量达到预设数量阈值,则根据所述看门狗复位机制控制所述存储设备所属的芯片进行复位。
在本申请的一个实施例中,基于前述方案,所述方法还包括:将所述错误数据的数量上报至处理器,以使所述处理器根据所述错误数据的数量作出对应处理。
第二方面,提供了一种存储数据的保护装置,所述装置包括:写入数据确定模块,被配置为接收输入数据,并基于所述输入数据确定写入数据,所述写入数据表征写入存储设备中的数据;数据拼接模块,被配置为基于所述写入数据确定所述写入数据对应的编码数据,将所述写入数据与所述编码数据进行拼接得到拼接数据,并将所述拼接数据存储于所述存储设备中;校验纠错模块,被配置为当数据请求设备请求读取所述存储设备中的所述拼接数据时,对所述拼接数据进行解码,并对解码得到的解码数据执行校验纠错操作;正确数据获取模块,被配置为在执行所述校验纠错操作的过程中,获取对所述解码数据中的错误数据进行纠错处理所得到的正确数据;正确数据处理模块,被配置为将所述正确数据发送至所述数据请求设备,并将所述正确数据写回所述存储设备中。
第三方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上任意一项所述的存储数据的保护方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上任意一项所述的存储数据的保护方法。
在本申请的实施例所提供的技术方案中,将写入数据和编码数据进行拼接得到的拼接数据存储于存储设备中,当数据请求设备请求读取存储设备中的拼接数据时,对拼接数据进行解码得到解码数据,通过对解码数据中的错误数据进行纠错处理,并将纠错处理所得到的正确数据发送至数据请求设备,能够有效地保证数据请求设备接收到正确数据,以及将正确数据写回存储设备中,能够有效地避免因存储设备中的错误数据累积过多而导致的错误数据无法被纠正的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一示例性实施例示出的进行存储数据保护的应用场景示意图。
图2是本申请的一示例性实施例示出的存储数据的保护方法的步骤流程图。
图3是本申请的一示例性实施例示出的基于输入数据确定写入数据的步骤流程图。
图4是本申请的另一示例性实施例示出的基于输入数据确定写入数据的步骤流程图。
图5是本申请的一示例性实施例示出的对存储设备所属芯片进行复位的步骤流程图。
图6是本申请的一示例性实施例示出的设备交互的***架构图。
图7是本申请的一示例性实施例示出的存储数据的保护装置的结构框图。
图8示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图和实施例,对本申请作进一步的详细描述。特别指出的是,以下实施例仅用于说明本申请,但不对本申请的范围进行限定。同样的,以下实施例仅为本申请的部分实施例而非全部实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例,例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,在附图所示的实施方式中,方向的指示(诸如上、下、左、右、前和后)用于解释本申请的各种元件的结构和运动不是绝对的而是相对的。当这些元件处于附图所示的位置时,这些说明是合适的。如果这些元件的位置的说明发生改变时,则这些方向的指示也相应地改变。另外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
如前所述,技术往往对数据信号进行ECC(Error Checking and Correcting,错误检查和纠正)校验纠错或者进行CRC(Cyclic Redundancy Check,循环冗余校验)检验,虽然在一定程度上能够保证数据读取的正确性,但是如果错误数据的数量持续增加,进而将导致存储数据无法被完全纠正。
为了解决存储设备中错误数据的数据累积的问题,本申请提出一种存储数据的保护方法、装置、电子设备及计算机可读存储介质,下面将对本申请提出的方案进行详细阐述。
请参阅图1,图1是本申请的一示例性实施例示出的进行存储数据保护的应用场景示意图。如图1所示,包括预设请求设备101、电子设备102和存储设备103。其中,预设请求设备101可以为主机,电子设备102可以为控制器或服务器,存储设备103可以包括写入数据存储设备和编码数据存储设备,由写入数据存储设备存储写入数据,由编码数据存储设备存储写入数据所对应的编码数据,存储设备103还可以为FIFO(First Input First Output,先入先出)队列、寄存器文件(regfile)。
预设请求设备101可以向电子设备102发送输入数据,由电子设备102根据输入数据的位宽以及存储设备103对应的数据位宽确定出写入数据,对写入数据进行编码获得编码数据,并将写入数据与编码数据进行拼接得到的拼接数据存储于存储设备103中。预设请求设备101还可以作为数据请求设备,请求读取存储设备103中的拼接数据,由电子设备102对需要读取的拼接数据进行解码以及对解码得到的解码数据执行校验纠错操作,在执行校验纠错操作的过程中,能够获取对解码数据中的错误数据进行纠错处理所得到的正确数据,并将正确数据发送至数据请求设备,以及将正确数据写回存储设备103中。
请参阅图2,图2是本申请的一示例性实施例示出的存储数据的保护方法的步骤流程图。下面以控制器为例作为具体的执行主体来对本申请实施例提出的存储数据的保护方法进行详细介绍。
如图2所示,在一示例性的实施例中,存储数据的保护方法至少包括步骤S210至步骤S250,详细介绍如下:
步骤S210,接收输入数据,并基于输入数据确定写入数据,写入数据表征写入存储设备中的数据。
在步骤S210中,可以理解的是,输入数据是指预设请求设备发出的数据;写入数据是指写入存储设备中的数据,输入数据与写入数据可能相同或者不同。
具体的,基于输入数据的位宽以及存储设备对应的数据位宽能够确定出写入数据与输入数据是否相同,如果输入数据的位宽与存储设备对应的数据位宽刚好相等,例如,输入数据的位宽和存储设备对应的数据位宽均为8bit或者16bit,则能够确定写入数据与输入数据相同;如果输入数据的位宽与存储设备对应的数据位宽不相等,例如输入数据的位宽为8bit,而存储设备对应的数据位宽为16bit;或者输入数据的位宽为16bit,而存储设备对应的数据位宽为32bit,则能够确定写入数据与输入数据不相同。
请参阅图3,图3是本申请的一示例性实施例示出的基于输入数据确定写入数据的步骤流程图。如图3所示,基于输入数据确定写入数据至少包括步骤S310至步骤S320,详细介绍如下:
步骤S310,获取输入数据的位宽,并比较输入数据的位宽和存储设备对应的数据位宽;
步骤S320,若输入数据的位宽等于存储设备对应的数据位宽,则将输入数据作为写入数据。
示例性的,如果输入数据附带有元数据标签,其中,元数据标签包含有关数据格式和结构的信息,包括数据的位宽,则可以通过对输入数据的元数据标签进行解析以获取输入数据的位宽。另外,如果输入数据的头部部分携带有包含数据格式和数据位宽的信息,则还可以对输入数据的头部部分进行解析以获取输入数据的位宽。
如果输入数据的位宽等于存储设备对应的数据位宽,则写入数据与输入数据相同,因此能够将输入数据作为写入数据。
请参阅图4,图4是本申请的另一示例性实施例示出的基于输入数据确定写入数据的步骤流程图。如图4所示,基于输入数据确定写入数据至少包括步骤S410至步骤S420,详细介绍如下:
步骤S410,若输入数据的位宽小于存储设备对应的数据位宽,则获取与存储设备相对应的原数据,原数据的位宽与存储设备对应的数据位宽相同;
步骤S420,根据输入数据的位宽确定原数据中待替换的数据位置,并将输入数据替换入待替换的数据位置得到新数据,并将新数据作为写入数据。
示例性的,输入数据的位宽为8bit,存储设备对应的数据位宽为32bit,则获取与存储设备相对应的原数据,原数据的位宽同样为32bit;其中,原数据可以是预先为该存储设备配置的32bit的无实质内容的数据。由于输入数据的位宽为8bit,则可以确定原数据中待替换的数据的位宽也应该为8bit,该待替换的数据位置可以是随机确定的,例如待替换的数据位置可以为第8位至第15位,也可以为第6位至第13位;该待替换的数据位置还可以是原数据中的特定位置,如原数据中的前8位;通过将输入数据替换入待替换的数据位置从而得到新数据,如该新数据为8bit的输入数据以及24bit的无实质内容的数据,使得与存储设备中的数据位宽相匹配,进而将该新数据作为写入存储设备中的数据,便于对该输入数据进行有效存储。
步骤S220,基于写入数据确定写入数据对应的编码数据,将写入数据与编码数据进行拼接得到拼接数据,并将拼接数据存储于存储设备中。
在步骤S220中,示例性的,编码数据可以是ECC(Error Checking andCorrection,错误检查和纠正)码,也可以是CRC(Cyclic Redundancy Check,循环冗余校验)码;通过ECC纠错算法能够计算出写入数据对应的ECC码,ECC码可以例如32bit/7bit-ECC,64bit/8bit-ECC,128bit/9bit-ECC;通过CRC校验算法能够计算出写入数据对应的CRC码。
将写入数据与计算出的编码数据进行拼接,得到拼接数据。例如写入数据的位宽为32bit,编码数据的位宽为7bit,则拼接数据的位宽为39bit;写入数据的位宽为64bit,编码数据的位宽为8bit,则拼接数据的位宽为72bit。
在一个示例性的实施例中,存储设备包括存储容量相同的写入数据存储设备和编码数据存储设备,两个存储设备的存储容量相同也即两个存储设备的深度相同。
同时,将写入数据存储设备与编码数据存储设备的地址对齐,通过对齐写入数据存储设备与编码数据存储设备的地址,能够使得在读取写入数据的同时也将写入数据对应的编码数据读取出来。
将拼接数据存储于存储设备中,具体的,将拼接数据中的写入数据存储至写入数据存储设备;将拼接数据中的编码数据存储至编码数据存储设备。通过将写入数据与编码数据分开存储,能够降低彼此数据之间的耦合度,使得***更易于维护和扩展。
步骤S230,当数据请求设备请求读取存储设备中的拼接数据时,对拼接数据进行解码,并对解码得到的解码数据执行校验纠错操作。
在步骤S230中,数据请求设备指向存储设备发送请求以读取数据的设备,例如可以包括中央处理器CPU以及图形处理器GPU。通过解码器能够将读取出来的拼接数据进行解码,从而得到解码数据,示例性的,采用的解码器可以为ECC解码器、视频解码器以及音频解码器等。
对解码得到的解码数据执行校验纠错操作,具体的,可以通过ECC校验纠错算法对解码数据进行校验纠错,即对解码数据进行纠一检二;或者采用CRC循环冗余校验算法进行校验纠错。
步骤S240,在执行校验纠错操作的过程中,获取对解码数据中的错误数据进行纠错处理所得到的正确数据。
在步骤S240中,在执行校验纠错操作的过程中,如果检测到解码数据中存在错误数据,则将解码数据中的错误数据进行纠错处理,从而得到正确数据。
在一个示例性的实施例中,若检测到在执行校验纠错操作中,对解码数据中的错误数据进行纠错处理,则记录错误数据的地址,并将错误数据丢弃。
进一步的,如果检测到在执行校验纠错操作中,对解码数据中的错误数据进行纠错处理,则记录该错误数据的地址,并将该错误数据丢弃,以避免将读取到的错误数据返回至处理器,同时通过对错误数据的地址的记录可以避免后续读取到该地址的错误信息,例如后续接收到读取该地址的数据的读取请求时,可以直接忽略该读取请求,直到该地址写入了正确数据,才对读取请求进行处理。
在另一个示例性的实施例中,将错误数据的数量上报至处理器,以使处理器根据错误数据的数量作出对应处理。
进一步的,处理器能够根据错误数据的数量采取相应的处理措施,例如,如果错误数据的数量较少,则可以控制处理器选择忽略这些错误数据或者采取一些轻微的修复措施;如果错误数据的数量较多但仍然处于可控的情况下,则可以控制处理器采取一些纠正措施,例如使用纠错码来修复错误数据;如果错误数据的数量很多且超过可处理的数量阈值,则可以控制处理器采取紧急措施,例如发出警报等等。
步骤S250,将正确数据发送至数据请求设备,并将正确数据写回存储设备中。
在步骤S250中,将经过纠正后的正确数据发送至数据请求设备,以有效地保证数据请求设备接收到正确的数据,并且将正确数据写回存储设备中,以有效地避免因存储设备中的错误数据累积过多而导致的错误数据无法被纠正的问题。
请参阅图5,图5是本申请的一示例性实施例示出的对存储设备所属芯片进行复位的步骤流程图。如图5所示,对存储设备所属芯片进行复位至少包括步骤S510至步骤S530,详细介绍如下:
步骤S510,设置看门狗复位机制。
在步骤S510中,如果存储设备中错误数据的数量为2及其以上,无法对错误数据进行纠正,且该错误数据由处理器执行,那么即使将错误数据上报,处理器也可能无法解决,严重情况下可能引起处理器发生异常,因此需要设置看门狗复位机制。
看门狗(watch dog)复位机制,是一种用于监测***运行状态的定时器,通常被用于检测***是否正常运行,并在***出现故障或者死锁的情况下采取措施。
步骤S520,收集在执行校验纠错操作中检测到的错误数据的数量。
在步骤S520中,收集错误数据的数量可以是实时收集或者间歇收集,本申请在此不做限制。
步骤S530,若错误数据的数量达到预设数量阈值,则根据看门狗复位机制控制存储设备所属的芯片进行复位。
在步骤S530中,如果检测到错误数据的数量达到预设数量阈值,意味着当前的错误状况已经影响到***的正常运行,则根据看门狗复位机制控制存储设备所属的芯片进行复位,通过重启将***恢复至稳定的状态当中。
由上可知,通过设置看门狗复位机制,定期监测错误数据的数量情况并在错误数据的数量过多时将相关芯片自动进行复位,可以避免进一步的故障扩散,从而提高了***的容错性和可靠性。
请参阅图6,图6是本申请的一示例性实施例示出的设备交互的***架构图。如图6所示,接收主机发送的输入数据,并在接收后比较输入数据的位宽与存储设备的数据位宽。如果判定输入数据的位宽等于存储设备的数据位宽,则将该输入数据作为写入数据,通过对写入数据进行ECC编码得到写入数据对应的ECC码,将写入数据与写入数据对应的ECC码进行数据拼接并存储于存储设备当中。如果判定输入数据的位宽小于存储设备的数据位宽,则将该输入数据替换入待替换的数据位置,以得到新数据作为写入数据,然后同样对写入数据进行ECC编码得到写入数据对应的ECC码,以及将写入数据与写入数据对应的ECC码进行数据拼接并存储于存储设备当中。
如果检测到主机发送了请求读取信号后,将存储设备中的拼接数据进行解码,对解码后得到的解码数据执行校验纠错操作,如果没有错误数据则直接将读出数据和状态信息发送至主机,如果有错误数据则进行纠错处理,通过对错误数据进行纠错得到正确数据,将正确数据发送至主机,并且将正确数据写回存储设备中。
图7是本申请的一示例性实施例示出的存储数据的保护装置的结构示意图。如图7所示,在一示例性实施例中,该存储数据的保护装置700包括:
写入数据确定模块710,被配置为接收输入数据,并基于输入数据确定写入数据,写入数据表征写入存储设备中的数据;
数据拼接模块720,被配置为基于写入数据确定写入数据对应的编码数据,将写入数据与编码数据进行拼接得到拼接数据,并将拼接数据存储于存储设备中;
校验纠错模块730,被配置为当数据请求设备请求读取存储设备中的拼接数据时,对拼接数据进行解码,并对解码得到的解码数据执行校验纠错操作;
正确数据获取模块740,被配置为在执行校验纠错操作的过程中,获取对解码数据中的错误数据进行纠错处理所得到的正确数据;
正确数据处理模块750,被配置为将正确数据发送至数据请求设备,并将正确数据写回存储设备中。
在本申请的一个实施例中,基于前述方案,写入数据确定模块710还包括比较单元和第一写入数据确定单元。比较单元,被配置为获取输入数据的位宽,并比较输入数据的位宽和存储设备对应的数据位宽。第一写入数据确定单元,被配置为若输入数据的位宽等于存储设备对应的数据位宽,则将输入数据作为写入数据。
在本申请的一个实施例中,基于前述方案,写入数据确定模块710还包括原数据获取单元和第二写入数据确定单元。原数据获取单元,被配置为若输入数据的位宽小于存储设备对应的数据位宽,则获取与存储设备相对应的原数据,原数据的位宽与存储设备对应的数据位宽相同。第二写入数据确定单元,被配置为根据输入数据的位宽确定原数据中待替换的数据位置,并将输入数据替换入待替换的数据位置得到新数据,并将新数据作为写入数据。
在本申请的一个实施例中,基于前述方案,存储数据的保护装置还包括对齐单元和数据存储单元。对齐单元,被配置为将写入数据存储设备和编码数据存储设备的地址对齐。数据存储单元,被配置为将拼接数据中的写入数据存储至写入数据存储设备,并将拼接数据中的编码数据存储至编码数据存储设备。
在本申请的一个实施例中,基于前述方案,存储数据的保护装置还包括错误数据处理单元。错误数据处理单元,被配置为若检测到在执行校验纠错操作中,对解码数据中的错误数据进行纠错处理,则记录错误数据的地址,并将错误数据丢弃。
在本申请的一个实施例中,基于前述方案,存储数据的保护装置还包括超时机制设置单元、数量收集单元以及复位单元。超时机制设置单元,被配置为设置看门狗复位机制。数量收集单元,被配置为收集在执行校验纠错操作中检测到的错误数据的数量。复位单元,被配置为若错误数据的数量达到预设数量阈值,则根据看门狗复位机制控制存储设备所属的芯片进行复位。
在本申请的一个实施例中,基于前述方案,存储数据的保护装置还包括数量上报单元。数量上报单元,被配置为将错误数据的数量上报至处理器,以使处理器根据错误数据的数量作出对应处理。
需要说明的是,上述实施例所提供的存储数据的保护装置与上述实施例所提供的存储数据的保护方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现上述各个实施例中提供的存储数据的保护方法。
图8示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
需要说明的是,图8示出的电子设备的计算机***800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央处理单元(Central Processing Unit,CPU)801,其可以根据存储在只读存储器(Read-Only Memory,ROM)802中的程序或者从存储部分808加载到随机访问存储器(Random Access Memory,RAM)803中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 803中,还存储有***操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(Input /Output,I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的***中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以是电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不相同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的存储数据的保护方法。该计算机可读介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读介质中。计算机设备的处理器从计算机可读介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的存储数据的保护方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (9)
1.一种存储数据的保护方法,其特征在于,所述方法包括:
对输入数据的元数据标签进行解析以获取所述输入数据的位宽,并比较所述输入数据的位宽和存储设备对应的数据位宽;
若所述输入数据的位宽小于所述存储设备对应的数据位宽,则获取与所述存储设备相对应的原数据,所述原数据的位宽与所述存储设备对应的数据位宽相同;
根据所述输入数据的位宽确定所述原数据中待替换的数据位置,将所述输入数据替换入所述待替换的数据位置得到新数据,并将所述新数据作为写入数据,所述写入数据表征写入所述存储设备中的数据;
基于所述写入数据确定所述写入数据对应的编码数据,将所述写入数据与所述编码数据进行拼接得到拼接数据,并将所述拼接数据存储于所述存储设备中;
当数据请求设备请求读取所述存储设备中的所述拼接数据时,对所述拼接数据进行解码,并对解码得到的解码数据执行校验纠错操作;
在执行所述校验纠错操作的过程中,获取对所述解码数据中的错误数据进行纠错处理所得到的正确数据;
将所述正确数据发送至所述数据请求设备,并将所述正确数据写回所述存储设备中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述输入数据的位宽等于所述存储设备对应的数据位宽,则将所述输入数据作为所述写入数据。
3.根据权利要求1所述的方法,其特征在于,所述存储设备包括存储容量相同的写入数据存储设备和编码数据存储设备,所述方法还包括:
将所述写入数据存储设备和所述编码数据存储设备的地址对齐;
所述将所述拼接数据存储于所述存储设备中,包括:
将所述拼接数据中的写入数据存储至所述写入数据存储设备,并将所述拼接数据中的编码数据存储至所述编码数据存储设备。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若检测到在执行所述校验纠错操作中,对所述解码数据中的错误数据进行纠错处理,则记录所述错误数据的地址,并将所述错误数据丢弃。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
设置看门狗复位机制;
收集在执行所述校验纠错操作中检测到的所述错误数据的数量;
若所述错误数据的数量达到预设数量阈值,则根据所述看门狗复位机制控制所述存储设备所属的芯片进行复位。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述错误数据的数量上报至处理器,以使所述处理器根据所述错误数据的数量作出对应处理。
7.一种存储数据的保护装置,其特征在于,所述装置包括:
比较模块,被配置为对输入数据的元数据标签进行解析以获取所述输入数据的位宽,并比较所述输入数据的位宽和存储设备对应的数据位宽;
原数据获取模块,被配置为若所述输入数据的位宽小于所述存储设备对应的数据位宽,则获取与所述存储设备相对应的原数据,所述原数据的位宽与所述存储设备对应的数据位宽相同;
第二写入数据确定单元,被配置为根据所述输入数据的位宽确定所述原数据中待替换的数据位置,将所述输入数据替换入所述待替换的数据位置得到新数据,并将所述新数据作为写入数据,所述写入数据表征写入所述存储设备中的数据;
数据拼接模块,被配置为基于所述写入数据确定所述写入数据对应的编码数据,将所述写入数据与所述编码数据进行拼接得到拼接数据,并将所述拼接数据存储于所述存储设备中;
校验纠错模块,被配置为当数据请求设备请求读取所述存储设备中的所述拼接数据时,对所述拼接数据进行解码,并对解码得到的解码数据执行校验纠错操作;
正确数据获取模块,被配置为在执行所述校验纠错操作的过程中,获取对所述解码数据中的错误数据进行纠错处理所得到的正确数据;
正确数据处理模块,被配置为将所述正确数据发送至所述数据请求设备,并将所述正确数据写回所述存储设备中。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至6中任一项所述的存储数据的保护方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至6中任一项所述的存储数据的保护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410432776.4A CN118034993B (zh) | 2024-04-11 | 2024-04-11 | 存储数据的保护方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410432776.4A CN118034993B (zh) | 2024-04-11 | 2024-04-11 | 存储数据的保护方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118034993A CN118034993A (zh) | 2024-05-14 |
CN118034993B true CN118034993B (zh) | 2024-06-25 |
Family
ID=91002607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410432776.4A Active CN118034993B (zh) | 2024-04-11 | 2024-04-11 | 存储数据的保护方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118034993B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102203740A (zh) * | 2011-05-27 | 2011-09-28 | 华为技术有限公司 | 数据处理方法、装置及*** |
CN115729746A (zh) * | 2022-11-15 | 2023-03-03 | 中科芯集成电路有限公司 | 一种基于crc和ecc存储数据保护方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10319461B2 (en) * | 2016-06-29 | 2019-06-11 | Intel Corporation | Low-overhead mechanism to detect address faults in ECC-protected memories |
CN116521433A (zh) * | 2023-04-13 | 2023-08-01 | 济南浪潮数据技术有限公司 | 一种数据保护方法、***、设备和存储介质 |
-
2024
- 2024-04-11 CN CN202410432776.4A patent/CN118034993B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102203740A (zh) * | 2011-05-27 | 2011-09-28 | 华为技术有限公司 | 数据处理方法、装置及*** |
CN115729746A (zh) * | 2022-11-15 | 2023-03-03 | 中科芯集成电路有限公司 | 一种基于crc和ecc存储数据保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118034993A (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111880740B (zh) | 数据处理方法、装置、计算机***及可读存储介质 | |
CN102135925B (zh) | 用于检测错误检查和纠正内存的方法和装置 | |
US8140940B2 (en) | Method and apparatus for controlling memory | |
US20030037280A1 (en) | Computer memory error management system and method | |
JP2017517060A (ja) | 障害処理方法、関連装置、およびコンピュータ | |
EP1224548B1 (en) | System and method improving fault isolation and diagnosis in computers | |
JP2001256068A (ja) | 誤り検出・訂正方法、計算機システムの主記憶制御装置、及び計算機システム | |
US9665448B2 (en) | Semiconductor integrated circuit | |
CN114710224A (zh) | 帧同步方法及装置、计算机可读介质、电子设备 | |
CN110554929B (zh) | 数据校验方法、装置、计算机设备及存储介质 | |
CN118034993B (zh) | 存储数据的保护方法、装置、电子设备及存储介质 | |
CN111352764B (zh) | 一种芯片修复的方法、装置、设备及存储介质 | |
CN112751782A (zh) | 基于多活数据中心的流量切换方法、装置、设备及介质 | |
CN105023616A (zh) | 一种基于汉明码存取数据的方法及集成随机存取存储器 | |
WO2023024248A1 (zh) | 一种总线异常处置方法、装置、电子设备及可读存储介质 | |
CN111506460B (zh) | 内存故障的处理方法、装置、移动终端及存储介质 | |
CN115700549A (zh) | 模型训练方法、故障确定方法、电子设备和程序产品 | |
EP3882774A1 (en) | Data processing device and data processing method | |
CN109918231B (zh) | 数据重整的异常修复方法、装置、设备和存储介质 | |
US20050138487A1 (en) | Poisoned error signaling for proactive OS recovery | |
CN114124745A (zh) | 一种用于诊断mvb通信故障的方法与*** | |
CN118018153B (zh) | 传输数据的处理方法、装置及电子设备 | |
CN117792565A (zh) | 误码检测方法、装置、存储介质以及电子设备 | |
CN116679991B (zh) | 存储器的启动管理方法、***、设备及存储介质 | |
CN116089156A (zh) | 一种纠错模块检测方法、装置、电子设备及存储介质 |
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 |