掌桥专利:专业的专利平台
掌桥专利
首页

片内CRC检查数据完整性方法、装置、存储介质和终端

文献发布时间:2023-06-19 09:43:16


片内CRC检查数据完整性方法、装置、存储介质和终端

技术领域

本发明涉及数据闪存技术领域,尤其涉及的是一种片内CRC检查数据完整性方法、装置、存储介质和终端。

背景技术

NOR FLASH在生命周期中存在数据丢失的问题,在高可靠性的应用场景中,客户需要定期检查所存储的数据是否完整,一般有如下两种方法:

1.读出指定范围的数据,直接将读出的数据与原数据进行一一对比,如图1所示。

2.读出指定范围的数据到片外CRC,利用片外CRC(循环冗余校验码)算出一个及时CRC结果,再将计算出的及时CRC结果与编程到NOR Flash时存储的CRC原始值进行比较,如图2所示。

上述两种方法的不足之处在于:无论用哪一种方法,都需要将所有需要检查的数据读出到片外,NOR flash的数据接口位宽通常用的是4位(X4),读出全部数据会耗时耗电,不能满足使用要求。

因此,现有的技术还有待于改进和发展。

发明内容

本发明的目的在于提供一种片内CRC检查数据完整性方法、装置、存储介质和终端,旨在解决现有NOR FLASH在检查数据完整性时,需要将检查的数据全部读出到片外,耗时耗电的问题。

本发明的技术方案如下:一种片内CRC检查数据完整性方法,其中,具体包括以下步骤:

接收CRC计算的命令;

根据CRC计算的命令读出对应的数据;

对读出的数据进行片内CRC计算;

得出CRC结果并存储CRC结果。

所述的片内CRC检查数据完整性方法,其中,所述CRC计算的命令包含需要计算CRC的数据在NOR Flash内的起始地址与终止地址;或所述CRC计算的命令包含需要计算CRC的数据在NOR Flash内的起始地址与终止地址以及需要计算CRC的数据的原始CRC值。

所述的片内CRC检查数据完整性方法,其中,所述根据CRC计算的命令读出对应的数据中,具体包括以下步骤:

s21:根据CRC计算的命令顺序读出对应的数据;

s22:判断需要计算CRC的数据是否已经全部读出,是执行对读出的数据进行片内CRC计算,否执行s21。

所述的片内CRC检查数据完整性方法,其中,所述得出CRC结果并存储CRC结果中,得出的CRC结果存储在状态寄存器中。

所述的片内CRC检查数据完整性方法,其中,判断是否接收到读取状态寄存器标志位的指令,是则输出状态寄存器标志位,否则不输出状态寄存器标志位。

所述的片内CRC检查数据完整性方法,其中,当CRC计算命令包含需要计算CRC的数据的原始CRC值时,所述得出CRC结果并存储CRC结果的过程如下:得出CRC结果,将得出的CRC结果与原始CRC值进行比对,得出CRC比较结果并存储。

所述的片内CRC检查数据完整性方法,其中,在得出CRC结果并存储CRC结果之后还包括如下步骤:输出CRC结果。

一种采用如上述任一所述的片内CRC检查数据完整性方法的装置,其中,包括:

接收CRC计算的命令的命令接收模块;

根据CRC计算的命令读出对应的数据的数据读出模块;

对读出的数据进行片内CRC计算的CRC计算模块;

存储CRC结果的存储模块。

一种终端,其中,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行上述任一项所述的方法。

一种存储介质,其中,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一项所述的方法。

本发明的有益效果:本发明通过提供一种片内CRC检查数据完整性方法、装置、存储介质和终端,通过在NOR Flash内部实现片内CRC计算,无需将NOR Flash内部数据读出到片外,极大地节省了整个NOR Flash数据完整性的检查耗时;而且利用系统内部数据位宽比NOR flash的数据接口位宽长得多,可以提高数据的读出效率,省时省电。

附图说明

图1和图2是现有技术中NOR flash数据完整性检查的方法示意图。

图3是本发明中片内CRC检查数据完整性方法的步骤流程图。

图4是本发明中装置的示意图。

图5是本发明中终端的示意图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

如图3所示,一种片内CRC检查数据完整性方法,主要应用在NOR flash的内部数据完整性的检查中,具体包括以下步骤:

S1:接收CRC计算的命令。

其中,所述CRC计算的命令包含了需要计算CRC的数据在NOR Flash内的起始地址与终止地址。

在某些具体实施例中,所述CRC计算的命令还可以包含需要计算CRC的数据的原始CRC值。

S2:根据CRC计算的命令读出对应的数据。

其中,根据不同位数的系统(如X64/X128),系统每次读出与系统位数对应的内部数据位宽的数据(比NOR flash的数据接口位宽长得多,可以提高数据的读出效率)。

其中,读出的对应数据进入NOR flash内部的CRC状态机中。

其中,所述S2:具体包括以下步骤:

s21:根据CRC计算的命令顺序读出对应的数据;

s22:判断需要计算CRC的数据是否已经全部读出,是执行S3,否执行s21。

S3:对读出的数据进行片内CRC计算。

其中,所述片内CRC计算可以通过NOR flash内部的CRC状态机中的CRC计算电路实现。

S4:得出CRC结果并存储CRC结果。

其中,可将得出的CRC结果存储在状态寄存器中。

因为读出对应的数据和进行片内CRC计算需要一定耗时,而用户无法获知系统什么时候执行完数据的CRC计算,为了解决这一问题,用户可以通过发生指令读状态寄存器的标志位来判断片内CRC的计算是否已经完成。

其中,对于存储在状态寄存器中的CRC结果,系统可以在CRC结果计算完毕后自动输出,也可以根据用户的指令来判断是否输出;若根据用户的指令来判断是否输出,则过程如下:

S5:判断是否接收到输出指令,是则输出CRC结果,否则不输出CRC结果。这样,用户通过发送命令读内部状态寄存器的方式读取CRC结果,将读出的CRC结果与原始CRC进行比对,从而判断NOR flash内部的数据是否完整。

其中,当S1中接到的CRC计算命令包含需要计算CRC的数据的原始CRC值时,所述S4的过程如下:得出CRC结果,将得出的CRC结果与原始CRC值进行比对,得出CRC比较结果并存储。

此时,所述S5的过程如下:判断是否接收到输出指令,是则输出CRC比较结果,否则不输出CRC比较结果。

如图4所示,一种采用如上述所述的片内CRC检查数据完整性方法的装置,包括:

接收CRC计算的命令的命令接收模块101;

根据CRC计算的命令读出对应的数据的数据读出模块102;

对读出的数据进行片内CRC计算的CRC计算模块103;

存储CRC结果的存储模块104。

请参照图5,本发明实施例还提供一种终端。如示,终端300包括处理器301和存储器302。其中,处理器301与存储器302电性连接。处理器301是终端300的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或调用存储在存储器302内的计算机程序,以及调用存储在存储器302内的数据,执行终端的各种功能和处理数据,从而对终端300进行整体监控。

在本实施例中,终端300中的处理器301会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器302中,并由处理器301来运行存储在存储器302中的计算机程序,从而实现各种功能:接收CRC计算的命令;根据CRC计算的命令读出对应的数据;对读出的数据进行片内CRC计算;存储CRC结果。

存储器302可用于存储计算机程序和数据。存储器302存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器301通过调用存储在存储器302的计算机程序,从而执行各种功能应用以及数据处理。

本申请实施例提供一种存储介质,所述计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:接收CRC计算的命令;根据CRC计算的命令读出对应的数据;对读出的数据进行片内CRC计算;存储CRC结果。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory, 简称SRAM),电可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-Only Memory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 片内CRC检查数据完整性方法、装置、存储介质和终端
  • 采用CRC用于芯片上存储器中数据完整性的方法和装置
技术分类

06120112276674