CN105868127A - 一种数据存储、读取方法及装置 - Google Patents
一种数据存储、读取方法及装置 Download PDFInfo
- Publication number
- CN105868127A CN105868127A CN201610169523.8A CN201610169523A CN105868127A CN 105868127 A CN105868127 A CN 105868127A CN 201610169523 A CN201610169523 A CN 201610169523A CN 105868127 A CN105868127 A CN 105868127A
- Authority
- CN
- China
- Prior art keywords
- data
- eeprom
- target data
- buffer unit
- unit
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种数据存储、读取方法及装置,应用于EEPROM,所述数据存储方法包括:接收数据存储请求,数据存储请求中包括目标应用需要存储的目标数据;将目标数据置入预设的缓存单元;将缓存单元中的目标数据写入到EEPROM中与目标数据对应的主区域地址中。本发明通过设置一个缓存单元RAM,在把目标应用的数据写入到EEPROM时,可以先将数据写入到缓存单元中,再将数据写入到EEPROM中的主区域地址中,不再引入block以及永久RAM的概念,而是只简单的设置缓存RAM即可完成数据的写入操作,实现逻辑简单,灵活,为处理数据简单、数据量小的ECU实现外部EEPROM的数据存储提供了简单有效的方案。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据存储、读取方法及装置。
背景技术
目前,AUTOSAR(AUTomotive Open System Architecture,汽车开放系统架构)标准中通常采用NvM(NonVolatile Memory,非易失存储器)实现将ECU中的数据存储到EEPROM(Electrically Erasable Programmable Read-OnlyMemory,电可擦可编程只读存储器)中,具体为:采用block的管理方式,对数据按照block进行区域划分,并为了减少对非易失介质的访问次数在RAM区建立永久RAM,当数据与永久RAM不一致时,进行数据写入操作。
其中,NvM中为了实现对用户所有数据进行管理,从而引入block概念,并根据介质存储方式不同分为NATIVE、REDUNDANT、DATASET三种不同管理类型的Block,同时每种类型Block又包含不同数量的NvBlock、RAMBlock、AdministrativeBlock、ROM数据Block,同时还引入永久RAM和临时RAM的概念,虽然降低了非易失介质的访问次数,但是整个数据存储处理方案中逻辑复杂,对于数据存储量小、处理简单的ECU而言,过于复杂,使用起来不灵活,从而影响数据存储效率。
因此,针对处理逻辑简单、存储数据量少的ECU来讲,亟需一种快捷有效的数据存储方案。
发明内容
有鉴于此,本发明提供了一种数据存储、读取方法及装置,用以解决现有技术中数据存储逻辑复杂,影响数据存储效率的技术问题。
本发明提供了一种数据存储方法,应用于EEPROM,所述方法包括:
接收数据存储请求,所述数据存储请求中包括目标应用需要存储的目标数据;
将所述目标数据置入预设的缓存单元;
将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址中。
上述方法,优选的,还包括:
对所述EEPROM中写入的目标数据进行校验。
上述方法,优选的,在将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,所述方法还包括:
计算所述缓存单元中目标数据的checksum值;
相应的,对所述EEPROM中写入的目标数据进行校验,包括:
回读所述EEPROM中写入的目标数据并计算回读得到的目标数据的checksum值;
将所述目标数据被写入之前的checksum值与回读之后的checksum值进行比对;
在两个checksum值不一致时,设置写入错误状态。
上述方法,优选的,在两个checksum值一致时,所述方法还包括:
在所述目标数据需要备份时,将所述缓存单元中的目标数据写入所述EEPROM中与所述目标数据相对应的备份区域地址中。
上述方法,优选的,在将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,所述方法还包括:
获得所述目标应用对所述EEPROM的数据访问权限并设置占用信号值,以使得其他应用不具有对所述EEPROM的数据访问权限;
相应的,在将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之后,所述方法还包括:
释放对所述EEPROM的数据访问权限及所述占用信号值,以使得其他应用能够设置所述占用信号值以具有对所述EEPROM的数据访问权限。
本发明还提供了一种数据读取方法,应用于EEPROM,所述方法包括:
在接收所述EEPROM的启动信号时,启动所述EEPROM;
将所述EEPROM中的数据读取到预设的缓存单元中,以提供给目标应用对其相应的数据进行读取。
上述方法,优选的,在将所述EEPROM中的数据读取到预设的缓存单元中之后,还包括:
对读取到的所述缓存单元的数据进行校验。
上述方法,优选的,所述对读取到所述缓存单元的数据进行校验,包括:
计算读取到的所述缓存单元的数据的checksum值;
将读取到的所述缓存单元的数据的checksum值与该数据被写入到所述EEPROM时的checksum值进行比对;
在两个checksum值不一致时,若所述EEPROM具有备份数据,则将所述EEPROM中的备份数据读取到所述缓存单元中并对读取到所述缓存单元的备份数据进行校验,在所述备份数据对应的两个checksum值不一致时,在所述缓存单元中设置预设值。
本发明还提供了一种数据存储装置,应用于EEPROM,所述装置包括:
请求接收单元,用于接收数据存储请求,所述数据存储请求中包括目标应用需要存储的目标数据;
目标置入单元,用于将所述目标数据置入预设的缓存单元;
数据写入单元,用于将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址中。
上述装置,优选的,还包括:
第一校验单元,用于对所述EEPROM中写入的目标数据进行校验。
上述装置,优选的,还包括:
第一计算单元,用于在所述数据写入单元将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,计算所述缓存单元中目标数据的checksum值;
相应的,所述第一校验单元包括:
数据回读子单元,用于回读所述EEPROM中写入的目标数据;
第二计算子单元,用于计算回读得到的目标数据的checksum值;
第一比对子单元,用于将所述目标数据被写入之前的checksum值与回读之后的checksum值进行比对;
错误写入子单元,用于在两个checksum值不一致时,设置写入错误状态。
上述装置,优选的,还包括:
备份写入单元,用于在两个checksum值一致且所述目标数据需要备份时,将所述缓存单元中的目标数据写入所述EEPROM中与所述目标数据相对应的备份区域地址中。
上述装置,优选的,所述装置还包括:
权限获取单元,用于在所述数据写入单元将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,获得所述目标应用对所述EEPROM的数据访问权限并设置占用信号值,以使得其他应用不具有对所述EEPROM的数据访问权限;
权限释放单元,用于在所述数据写入单元将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之后,释放对所述EEPROM的数据访问权限及所述占用信号值,以使得其他应用能够设置所述占用信号值以具有对所述EEPROM的数据访问权限。
本发明还提供了一种数据读取装置,应用于EEPROM,所述装置包括:
启动单元,用于在接收所述EEPROM的启动信号时,启动所述EEPROM;
数据读取单元,用于将所述EEPROM中的数据读取到预设的缓存单元中,以提供给目标应用对其相应的数据进行读取。
上述装置,优选的,还包括:
第二校验单元,用于在将所述EEPROM中的数据读取到预设的缓存单元中之后,对读取到的所述缓存单元的数据进行校验。
上述装置,优选的,所述第二校验单元包括:
第三计算子单元,用于计算读取到的所述缓存单元的数据的checksum值;
第二比对子单元,用于将读取到的所述缓存单元的数据的checksum值与该数据被写入到所述EEPROM时的checksum值进行比对;
备份校验子单元,用于在两个checksum值不一致时,若所述EEPROM具有备份数据,则将所述EEPROM中的备份数据读取到所述缓存单元中并对读取到所述缓存单元的备份数据进行校验;
值设置子单元,用于在所述备份数据对应的两个checksum值不一致时,在所述缓存单元中设置预设值。
由上述方案可知,本发明提供的一种数据存储、读取方法及装置,通过设置一个缓存单元RAM,在把目标应用的数据写入到EEPROM时,可以先将数据写入到缓存单元中,再将数据写入到EEPROM中的主区域地址中,在后续读取操作中只需要将EEPROM中的数据读取到缓冲单元中,目标应用即可对缓冲单元中的数据进行读取,不再引入block以及永久RAM的概念,而是只简单的设置缓存RAM即可完成数据的写入操作或读取操作,实现逻辑简单,灵活,为处理数据简单、数据量小的ECU实现外部EEPROM的数据存储及读取提供了简单有效的方案。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例一提供的一种数据存储方法的流程图;
图2为本发明实施例二提供的一种数据存储方法的流程图;
图3为本发明实施例二的另一流程图;
图4为本发明实施例二的又一流程图;
图5为本发明实施例三提供的一种数据存储方法的流程图;
图6为本发明实施例四提供的一种数据读取方法的流程图;
图7为本发明实施例五提供的一种数据读取方法的流程图;
图8为本发明实施例五的部分流程图;
图9为本发明实施例六提供的一种数据存储装置的结构示意图;
图10为本发明实施例七提供的一种数据存储装置的结构示意图;
图11为本发明实施例七的另一结构示意图;
图12为本发明实施例七的部分结构示意图;
图13为本发明实施例七的又一结构示意图;
图14为本发明实施例八提供的一种数据存储装置的结构示意图;
图15为本发明实施例九提供的一种数据读取装置的结构示意图;
图16为本发明实施例十提供的一种数据读取装置的结构示意图;
图17为本发明实施例十的部分结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1,为本发明实施例一提供的一种数据存储方法的流程图,其中,所述方法适用于外部EEPROM的数据写入任务中,具体的,所述方法可以包括以下步骤:
步骤101:接收数据存储请求。
其中,所述数据存储请求中包括目标应用需要存储的目标数据。
步骤102:将所述目标数据置入预设的缓存单元中。
其中,所述缓存单元为所述EEPROM自身分配的一个RAM区间,作为自己的数据缓存区域。这里,所述缓存单元的大小可以根据所述EEPROM能够一次写入数据的最大值参考设置,以IIC总线的CAV24C64WE的EEPROM为例,其一次能够写入的最大数据为32Byte,则本实施例中,所述缓存单元可以设置为32Byte,相应的,所述目标数据为小于或等于32Byte的数据。
步骤103:将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址中。
具体的,所述EEPROM与各个应用之间具有约定,约定中,每个应用在所述EEPROM中对应相应的地址区域,因此,本实施例中可以根据所述数据存储请求中携带的所述目标数据的相对地址和数据长度,首先在所述EEPROM中找到所述目标应用相对应的地址区域,再在这一区域中将所述目标数据写入到对应的主区域地址中,区别于现有的NvM方案中数据存储地址的重映射操作,并且不需要实时监测数据是否发生变化,简化了处理逻辑。
其中,这里的主区域地址是相对于备份区域地址来理解的。
由上述方案可知,本发明实施例一提供的一种数据存储方法,通过设置一个缓存单元RAM,在把目标应用的数据写入到EEPROM时,可以先将数据写入到缓存单元中,再将数据写入到EEPROM中的主区域地址中,不再引入block以及永久RAM的概念,而是只简单的设置缓存RAM即可完成数据的写入操作,实现逻辑简单,灵活,为处理数据简单、数据量小的ECU实现外部EEPROM的数据存储提供了简单有效的方案。
参考图2,为本发明实施例二提供的一种数据存储方法的实现流程图,其中,在所述步骤103之后,所述方法还可以包括以下步骤:
步骤104:对所述EEPROM中写入的目标数据进行校验。
其中,这里校验的目的是判定所述目标数据是否写入成功。
具体的,如图3中所示,为本发明实施例的另一流程图,其中,在所述步骤103之前,所述方法还包括:
步骤105:计算所述缓存单元中目标数据的checksum值。
也就是说,本实施例中将所述目标数据写入到所述EEPROM之前,首先计算该目标数据的checksum值。
而相应的,所述步骤104可以通过以下步骤实现:
步骤141:回读所述EEPROM中写入的目标数据并计算回读得到的目标数据的checksum值。
需要说明的是,所述步骤141中计算checksum值的计算方案与所述目标数据被写入到所述EEPROM之前计算checksum值的计算方案相同。
步骤142:将所述目标数据被写入之前的checksum值与回读之后的checksum值进行比对。
步骤143:在两个checksum值不一致时,设置写入错误状态。
也就是说,本实施例中通过对所述目标数据被写入之前及被写入之后的checksum值进行比对,进而判定出所述目标数据被写入之前与被写入之后是否发生了变化,由此判断出所述目标数据是否出现写入错误。
为了保证数据的可靠性,在所述EEPROM中可以通过设置数据同步标志来实现数据备份,也就是说,在所述EEPROM中的主区域地址中写入成功所述目标数据之后,基于该数据同步标志,需要对所述目标数据进行备份写入,具体的,参考图4,为本发明实施例的另一流程图,在所述步骤142之后,若所述目标数据被写入之前及被写入之后的两个checksum值一致时,所述方法还包括:
步骤144:在所述目标数据需要备份时,将所述缓存单元中的目标数据写入所述EEPROM中与所述目标数据相对应的备份区域地址中。
也就是说,在所述目标数据被成功写入到所述EEPROM的主区域地址之后,基于数据同步标志,将所述缓存单元中的目标数据写入到所述EEPROM的备份区域地址中,完成所述目标数据的备份。
其中,本实施例中也可以采用上述校验方式对所述EEPROM中的备份区域地址中的数据进行校验。
需要说明的是,本实施例中对所述目标数据的写入校验可以进行3次,以保证所述目标数据的成功写入几率。而在3次都失败时,再设置写入错误状态,并将这一写入失败状态通知给应用。
另外,本实施例中对数据处理的实现函数采用轮询的方式进行操作。以10ms周期为例,第一个10ms为写入操作,第二个10ms进行数据回读,第三个10ms来临时,进行数据的读出校验,以此类推。
需要说明的是,为了实现对写入的数据的校验,本实施例中也可以直接将读取出的数据与写入的数据进行数据比对,进而判定出数据写入的准确性。而在存在数据写入不准确时,执行相应的功能,如设置写入错误状态等。另外,本实施例中采用哪种校验方式,可以根据用户需求进行设置。
需要说明的是,所述EEPROM的访问具有独占性,也就是说,同一时刻只能有一个应用对所述EEPROM进行数据的读取或写入操作。
具体的,参考图5为本发明实施例三提供的一种数据存储方法的实现流程图,其中,在所述步骤103之前,所述方法还包括以下步骤:
步骤106:获得所述目标应用对所述EEPROM的数据访问权限并设置占用信号值,以使得其他应用不具有对所述EEPROM的数据访问权限。
相应的,在所述步骤103之后,所述方法还包括以下步骤:
步骤107:释放对所述EEPROM的数据访问权限及所述占用信号值,以使得其他应用能够设置所述占用信号值以具有对所述EEPROM的数据访问权限。
其中,这里的占用信号值,可以用操作系统的信号量来实现,也就是说,本实施例中,所述EEPROM将操作系统的信号量概念引入数据存储策略,在需要进行数据存储时,查询该信号量,判断是否可以获得EEPROM的数据访问权限,一旦获得数据访问权限,即可设置该信号量,其他应用则不能获得EEPROM的处理权限,除非该应用处理完成,释放信号量。在收到请求后,信号量便被设置的应用所有,一直到处理完成,或处理出错,才会释放该信号量。
参考图6,为本发明实施例四提供的一种数据读取方法的实现流程图,其中,所述方法可以应用于EEPROM,所述方法可以包括以下步骤:
步骤601:在接收所述EEPROM的启动信号时,启动所述EEPROM。
步骤602:将所述EEPROM中的数据读取到预设的缓存单元中,以提供给目标应用对其相应的数据进行读取。
也就是说,在对所述EEPROM的数据进行读出操作时,本实施例在所述EEPROM系统启动时,将数据依次读出到相应应用的缓存单元即RAM区中,当应用需要读取所述EEPROM数据时,直接从RAM区读取数据即可,由此简化了数据操作流程,提高数据处理效率。
在系统运行时,为保证RAM中的数据与所述EEPROM中数据的一致性,需要对读取出的数据进行校验,具体的,参考图7,为本发明实施例五提供的一种数据读取方法的实现流程图,在所述步骤602之后,所述方法还可以包括以下步骤:
步骤603:对读取到的所述缓存单元的数据进行校验。
具体的,本实施例中可以通过比对缓存单元中数据的checksum值实现校验,如图8中所示,为所述步骤603的具体实现流程:
步骤801:计算读取到的所述缓存单元的数据的checksum值。
步骤802:将读取到的所述缓存单元的数据的checksum值与该数据被写入到所述EEPROM时的checksum值进行比对。
步骤803:在两个checksum值不一致时,若所述EEPROM具有备份数据,则将所述EEPROM中的备份数据读取到所述缓存单元中并对读取到所述缓存单元的备份数据进行校验;
步骤804:在所述备份数据对应的两个checksum值不一致时,在所述缓存单元中设置预设值。
其中,这里的预设值可以为系统默认值,也就是说,在所述EEPROM中读取数据失败时,使用系统默认值设置所述缓存单元,通知给应用。
参考图9,为本发明实施例六提供的一种数据存储装置的结构示意图,其中,所述装置可以适用于对EEPROM的数据写入任务中,所述装置可以包括以下结构:
请求接收单元901,用于接收数据存储请求。
其中,所述数据存储请求中包括目标应用需要存储的目标数据。
目标置入单元902,用于将所述目标数据置入预设的缓存单元。
其中,所述缓存单元为所述EEPROM自身分配的一个RAM区间,作为自己的数据缓存区域。这里,所述缓存单元的大小可以根据所述EEPROM能够一次写入数据的最大值参考设置,以IIC总线的CAV24C64WE的EEPROM为例,其一次能够写入的最大数据为32Byte,则本实施例中,所述缓存单元可以设置为32Byte,相应的,所述目标数据为小于或等于32Byte的数据。
数据写入单元903,用于将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址中。
具体的,所述EEPROM与各个应用之间具有约定,约定中,每个应用在所述EEPROM中对应相应的地址区域,因此,本实施例中可以根据所述数据存储请求中携带的所述目标数据的相对地址和数据长度,首先在所述EEPROM中找到所述目标应用相对应的地址区域,再在这一区域中将所述目标数据写入到对应的主区域地址中,区别于现有的NvM方案中数据存储地址的重映射操作,并且不需要实时监测数据是否发生变化,简化了处理逻辑。
其中,这里的主区域地址是相对于备份区域地址来理解的。
由上述方案可知,本发明实施例六提供的一种数据存储装置,通过设置一个缓存单元RAM,在把目标应用的数据写入到EEPROM时,可以先将数据写入到缓存单元中,再将数据写入到EEPROM中的主区域地址中,不再引入block以及永久RAM的概念,而是只简单的设置缓存RAM即可完成数据的写入操作,实现逻辑简单,灵活,为处理数据简单、数据量小的ECU实现外部EEPROM的数据存储提供了简单有效的方案。
参考图10,为本发明实施例七提供的一种数据存储装置的结构示意图,其中,所述装置还可以包括以下结构:
第一校验单元904,用于对所述EEPROM中写入的目标数据进行校验。
其中,这里校验的目的是判定所述目标数据是否写入成功。
具体的,如图11中所示,为本发明实施例的另一结构示意图,其中,所述装置还可以包括以下结构:
第一计算单元905,用于在所述数据写入单元903将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,计算所述缓存单元中目标数据的checksum值。
也就是说,本实施例中将所述目标数据写入到所述EEPROM之前,首先计算该目标数据的checksum值。
相应的,如图12中所示,所述第一校验单元904可以通过以下结构实现:
数据回读子单元941,用于回读所述EEPROM中写入的目标数据。
需要说明的是,所述数据回读子单元941中计算checksum值的计算方案与所述目标数据被写入到所述EEPROM之前计算checksum值的计算方案相同。
第二计算子单元942,用于计算回读得到的目标数据的checksum值。
第一比对子单元943,用于将所述目标数据被写入之前的checksum值与回读之后的checksum值进行比对。
错误写入子单元944,用于在两个checksum值不一致时,设置写入错误状态。
也就是说,本实施例中通过对所述目标数据被写入之前及被写入之后的checksum值进行比对,进而判定出所述目标数据被写入之前与被写入之后是否发生了变化,由此判断出所述目标数据是否出现写入错误。
为了保证数据的可靠性,在所述EEPROM中可以通过设置数据同步标志来实现数据备份,也就是说,在所述EEPROM中的主区域地址中写入成功所述目标数据之后,基于该数据同步标志,需要对所述目标数据进行备份写入,具体的,参考图13,为本发明实施例的另一结构图,所述装置还可以包括以下结构:
备份写入单元906,用于在两个checksum值一致且所述目标数据需要备份时,将所述缓存单元中的目标数据写入所述EEPROM中与所述目标数据相对应的备份区域地址中。
也就是说,本实施例在所述目标数据被成功写入到所述EEPROM的主区域地址之后,基于数据同步标志,将所述缓存单元中的目标数据写入到所述EEPROM的备份区域地址中,完成所述目标数据的备份。
其中,本实施例中也可以采用上述校验方式对所述EEPROM中的备份区域地址中的数据进行校验。
需要说明的是,本实施例中对所述目标数据的写入校验可以进行3次,以保证所述目标数据的成功写入几率。而在3次都失败时,再设置写入错误状态,并将这一写入失败状态通知给应用。
另外,本实施例中对数据处理的实现函数采用轮询的方式进行操作。以10ms周期为例,第一个10ms为写入操作,第二个10ms进行数据回读,第三个10ms来临时,进行数据的读出校验,以此类推。
需要说明的是,所述EEPROM的访问具有独占性,也就是说,同一时刻只能有一个应用对所述EEPROM进行数据的读取或写入操作。
具体的,参考图14,为本发明实施例八提供的一种数据存储装置的结构示意图,其中,所述装置还可以包括以下结构:
权限获取单元907,用于在所述数据写入单元903将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,获得所述目标应用对所述EEPROM的数据访问权限并设置占用信号值,以使得其他应用不具有对所述EEPROM的数据访问权限。
权限释放单元908,用于在所述数据写入单元903将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之后,释放对所述EEPROM的数据访问权限及所述占用信号值,以使得其他应用能够设置所述占用信号值以具有对所述EEPROM的数据访问权限。
其中,这里的占用信号值,可以用操作系统的信号量来实现,也就是说,本实施例中,所述EEPROM将操作系统的信号量概念引入数据存储策略,在需要进行数据存储时,查询该信号量,判断是否可以获得EEPROM的数据访问权限,一旦获得数据访问权限,即可设置该信号量,其他应用则不能获得EEPROM的处理权限,除非该应用处理完成,释放信号量。在收到请求后,信号量便被设置的应用所有,一直到处理完成,或处理出错,才会释放该信号量。
参考图15,为本发明实施例九提供的一种数据读取装置的结构示意图,其中,所述装置可以应用于EEPROM,所述装置可以包括以下结构:
启动单元1501,用于在接收所述EEPROM的启动信号时,启动所述EEPROM。
数据读取单元1502,用于将所述EEPROM中的数据读取到预设的缓存单元中,以提供给目标应用对其相应的数据进行读取。
也就是说,在对所述EEPROM的数据进行读出操作时,本实施例在所述EEPROM系统启动时,将数据依次读出到相应应用的缓存单元即RAM区中,当应用需要读取所述EEPROM数据时,直接从RAM区读取数据即可,由此简化了数据操作流程,提高数据处理效率。
在系统运行时,为保证RAM中的数据与所述EEPROM中数据的一致性,需要对读取出的数据进行校验,具体的,参考图16,为本发明实施例十提供的一种数据读取装置的结构示意图,所述装置还包括:
第二校验单元1503,用于在将所述EEPROM中的数据读取到预设的缓存单元中之后,对读取到的所述缓存单元的数据进行校验。
具体的,本实施例中可以通过比对缓存单元中数据的checksum值实现校验,如图17中所示,为所述第二校验单元1503的结构示意图,其中,所述第二校验单元1503可以包括以下结构:
第三计算子单元1531,用于计算读取到的所述缓存单元的数据的checksum值。
第二比对子单元1532,用于将读取到的所述缓存单元的数据的checksum值与该数据被写入到所述EEPROM时的checksum值进行比对。
备份校验子单元1533,用于在两个checksum值不一致时,若所述EEPROM具有备份数据,则将所述EEPROM中的备份数据读取到所述缓存单元中并对读取到所述缓存单元的备份数据进行校验。
值设置子单元1534,用于在所述备份数据对应的两个checksum值不一致时,在所述缓存单元中设置预设值。
其中,这里的预设值可以为系统默认值,也就是说,在所述EEPROM中读取数据失败时,使用系统默认值设置所述缓存单元,通知给应用。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据存储方法,其特征在于,应用于EEPROM,所述方法包括:
接收数据存储请求,所述数据存储请求中包括目标应用需要存储的目标数据;
将所述目标数据置入预设的缓存单元;
将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址中。
2.根据权利要求1所述的方法,其特征在于,还包括:
对所述EEPROM中写入的目标数据进行校验;
在将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,所述方法还包括:
计算所述缓存单元中目标数据的checksum值;
对所述EEPROM中写入的目标数据进行校验,包括:
回读所述EEPROM中写入的目标数据并计算回读得到的目标数据的checksum值;
将所述目标数据被写入之前的checksum值与回读之后的checksum值进行比对;
在两个checksum值不一致时,设置写入错误状态;
在两个checksum值一致且所述目标数据需要备份时,将所述缓存单元中的目标数据写入所述EEPROM中与所述目标数据相对应的备份区域地址中。
3.根据权利要求1所述的方法,其特征在于,在将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,所述方法还包括:
获得所述目标应用对所述EEPROM的数据访问权限并设置占用信号值,以使得其他应用不具有对所述EEPROM的数据访问权限;
在将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之后,所述方法还包括:
释放对所述EEPROM的数据访问权限及所述占用信号值,以使得其他应用能够设置所述占用信号值以具有对所述EEPROM的数据访问权限。
4.一种数据读取方法,其特征在于,应用于EEPROM,所述方法包括:
在接收所述EEPROM的启动信号时,启动所述EEPROM;
将所述EEPROM中的数据读取到预设的缓存单元中,以提供给目标应用对其相应的数据进行读取。
5.根据权利要求4所述的方法,其特征在于,在将所述EEPROM中的数据读取到预设的缓存单元中之后,还包括:
对读取到的所述缓存单元的数据进行校验;
所述对读取到所述缓存单元的数据进行校验,包括:
计算读取到的所述缓存单元的数据的checksum值;
将读取到的所述缓存单元的数据的checksum值与该数据被写入到所述EEPROM时的checksum值进行比对;
在两个checksum值不一致时,若所述EEPROM具有备份数据,则将所述EEPROM中的备份数据读取到所述缓存单元中并对读取到所述缓存单元的备份数据进行校验,在所述备份数据对应的两个checksum值不一致时,在所述缓存单元中设置预设值。
6.一种数据存储装置,其特征在于,应用于EEPROM,所述装置包括:
请求接收单元,用于接收数据存储请求,所述数据存储请求中包括目标应用需要存储的目标数据;
目标置入单元,用于将所述目标数据置入预设的缓存单元;
数据写入单元,用于将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址中。
7.根据权利要求6所述的装置,其特征在于,还包括:
第一校验单元,用于对所述EEPROM中写入的目标数据进行校验;
所述装置还包括:
第一计算单元,用于在所述数据写入单元将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,计算所述缓存单元中目标数据的checksum值;
所述第一校验单元包括:
数据回读子单元,用于回读所述EEPROM中写入的目标数据;
第二计算子单元,用于计算回读得到的目标数据的checksum值;
第一比对子单元,用于将所述目标数据被写入之前的checksum值与回读之后的checksum值进行比对;
错误写入子单元,用于在两个checksum值不一致时,设置写入错误状态;
备份写入单元,用于在两个checksum值一致且所述目标数据需要备份时,将所述缓存单元中的目标数据写入所述EEPROM中与所述目标数据相对应的备份区域地址中。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
权限获取单元,用于在所述数据写入单元将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之前,获得所述目标应用对所述EEPROM的数据访问权限并设置占用信号值,以使得其他应用不具有对所述EEPROM的数据访问权限;
权限释放单元,用于在所述数据写入单元将所述缓存单元中的目标数据写入到所述EEPROM中与所述目标数据对应的主区域地址之后,释放对所述EEPROM的数据访问权限及所述占用信号值,以使得其他应用能够设置所述占用信号值以具有对所述EEPROM的数据访问权限。
9.一种数据读取装置,其特征在于,应用于EEPROM,所述装置包括:
启动单元,用于在接收所述EEPROM的启动信号时,启动所述EEPROM;
数据读取单元,用于将所述EEPROM中的数据读取到预设的缓存单元中,以提供给目标应用对其相应的数据进行读取。
10.根据权利要求9所述的装置,其特征在于,还包括:
第二校验单元,用于在将所述EEPROM中的数据读取到预设的缓存单元中之后,对读取到的所述缓存单元的数据进行校验;
所述第二校验单元包括:
第三计算子单元,用于计算读取到的所述缓存单元的数据的checksum值;
第二比对子单元,用于将读取到的所述缓存单元的数据的checksum值与该数据被写入到所述EEPROM时的checksum值进行比对;
备份校验子单元,用于在两个checksum值不一致时,若所述EEPROM具有备份数据,则将所述EEPROM中的备份数据读取到所述缓存单元中并对读取到所述缓存单元的备份数据进行校验;
值设置子单元,用于在所述备份数据对应的两个checksum值不一致时,在所述缓存单元中设置预设值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610169523.8A CN105868127A (zh) | 2016-03-23 | 2016-03-23 | 一种数据存储、读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610169523.8A CN105868127A (zh) | 2016-03-23 | 2016-03-23 | 一种数据存储、读取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105868127A true CN105868127A (zh) | 2016-08-17 |
Family
ID=56625135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610169523.8A Pending CN105868127A (zh) | 2016-03-23 | 2016-03-23 | 一种数据存储、读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105868127A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062843A (zh) * | 2018-07-11 | 2018-12-21 | 河南森源电气股份有限公司 | 一种基于iic总线的数据存储方法及系统 |
CN109933340A (zh) * | 2019-03-04 | 2019-06-25 | 北京空间飞行器总体设计部 | 一种航天器eeprom基于页模式的在轨写入和自检方法 |
CN110888605A (zh) * | 2019-12-11 | 2020-03-17 | 重庆超力高科技股份有限公司 | Eeprom的数据写入方法、装置和电子设备 |
CN111090541A (zh) * | 2019-12-11 | 2020-05-01 | 深圳南方德尔汽车电子有限公司 | 控制器的数据防丢方法、装置、行车电脑设备及存储介质 |
CN115756998A (zh) * | 2023-01-05 | 2023-03-07 | 摩尔线程智能科技(北京)有限责任公司 | 缓存数据重取标记验证方法、装置及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1297197A (zh) * | 2000-12-28 | 2001-05-30 | 大唐电信科技股份有限公司微电子分公司 | 在一个物理存储器内架构多逻辑分区及不同用途的ic卡 |
CN101656106A (zh) * | 2009-08-27 | 2010-02-24 | 北京握奇数据系统有限公司 | 一种向eeprom写入数据的方法及装置 |
CN102063939A (zh) * | 2009-11-18 | 2011-05-18 | 中兴通讯股份有限公司 | 一种电可擦除可编程只读存储器的实现方法和装置 |
CN102063384A (zh) * | 2009-11-13 | 2011-05-18 | 恒宝股份有限公司 | 一种java卡利用缓存对编程只读存储器进行读写操作的方法 |
CN102890657A (zh) * | 2012-10-10 | 2013-01-23 | 深圳市航盛电子股份有限公司 | 一种减少eeprom的数据读写出错的方法 |
CN103823760A (zh) * | 2014-03-03 | 2014-05-28 | 山西科泰微技术有限公司 | 一种高效的数据存储和解析方法 |
CN103914667A (zh) * | 2012-12-29 | 2014-07-09 | 北京谊安医疗系统股份有限公司 | 一种安全读写eeprom的方法及其系统 |
-
2016
- 2016-03-23 CN CN201610169523.8A patent/CN105868127A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1297197A (zh) * | 2000-12-28 | 2001-05-30 | 大唐电信科技股份有限公司微电子分公司 | 在一个物理存储器内架构多逻辑分区及不同用途的ic卡 |
CN101656106A (zh) * | 2009-08-27 | 2010-02-24 | 北京握奇数据系统有限公司 | 一种向eeprom写入数据的方法及装置 |
CN102063384A (zh) * | 2009-11-13 | 2011-05-18 | 恒宝股份有限公司 | 一种java卡利用缓存对编程只读存储器进行读写操作的方法 |
CN102063939A (zh) * | 2009-11-18 | 2011-05-18 | 中兴通讯股份有限公司 | 一种电可擦除可编程只读存储器的实现方法和装置 |
CN102890657A (zh) * | 2012-10-10 | 2013-01-23 | 深圳市航盛电子股份有限公司 | 一种减少eeprom的数据读写出错的方法 |
CN103914667A (zh) * | 2012-12-29 | 2014-07-09 | 北京谊安医疗系统股份有限公司 | 一种安全读写eeprom的方法及其系统 |
CN103823760A (zh) * | 2014-03-03 | 2014-05-28 | 山西科泰微技术有限公司 | 一种高效的数据存储和解析方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062843A (zh) * | 2018-07-11 | 2018-12-21 | 河南森源电气股份有限公司 | 一种基于iic总线的数据存储方法及系统 |
CN109933340A (zh) * | 2019-03-04 | 2019-06-25 | 北京空间飞行器总体设计部 | 一种航天器eeprom基于页模式的在轨写入和自检方法 |
CN110888605A (zh) * | 2019-12-11 | 2020-03-17 | 重庆超力高科技股份有限公司 | Eeprom的数据写入方法、装置和电子设备 |
CN111090541A (zh) * | 2019-12-11 | 2020-05-01 | 深圳南方德尔汽车电子有限公司 | 控制器的数据防丢方法、装置、行车电脑设备及存储介质 |
CN111090541B (zh) * | 2019-12-11 | 2023-10-20 | 深圳南方德尔汽车电子有限公司 | 控制器的数据防丢方法、装置、行车电脑设备及存储介质 |
CN110888605B (zh) * | 2019-12-11 | 2023-10-20 | 重庆超力高科技股份有限公司 | Eeprom的数据写入方法、装置和电子设备 |
CN115756998A (zh) * | 2023-01-05 | 2023-03-07 | 摩尔线程智能科技(北京)有限责任公司 | 缓存数据重取标记验证方法、装置及系统 |
CN115756998B (zh) * | 2023-01-05 | 2023-03-31 | 摩尔线程智能科技(北京)有限责任公司 | 缓存数据重取标记验证方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201338B (zh) | 数据存储方法及装置 | |
US20200412526A1 (en) | Method and apparatus for verifying smart contracts in blockchain, and storage medium | |
CN105868127A (zh) | 一种数据存储、读取方法及装置 | |
US20210049715A1 (en) | Blockchain-based data procesing method, apparatus, and electronic device | |
CA2923444C (en) | High performance system providing selective merging of dataframe segments in hardware | |
WO2021135280A1 (zh) | 一种分布式存储系统的数据校验方法及相关装置 | |
CN102084350A (zh) | 数据的远程副本的验证 | |
CN102163155A (zh) | 存储设备的升级方法及升级控制装置 | |
CN105808378A (zh) | 元数据修复方法及装置 | |
CN105183641B (zh) | 一种内核模块的数据一致性校验方法及系统 | |
CN108932249A (zh) | 一种管理文件系统的方法及装置 | |
CN114443503A (zh) | 测试用例的生成方法、装置、计算机设备、存储介质 | |
US9588884B2 (en) | Systems and methods for in-place reorganization of device storage | |
US8838545B2 (en) | Incremental and prioritized restoration of blocks | |
CN106971757A (zh) | 一种检验Nand Flash质量的方法及系统 | |
CN113419680A (zh) | 一种存储方法及系统 | |
WO2024103600A1 (zh) | 一种数据管理方法、装置及电子设备和非易失性可读存储介质 | |
CN109800110A (zh) | 数据备份方法、系统及电子设备、存储介质和备份装置 | |
CN111221795A (zh) | 一种虚拟化磁盘数据校验方法、装置和介质 | |
CN108710658A (zh) | 一种数据记录的存储方法及装置 | |
CN107257281A (zh) | Nor flash存储密钥记录的方法、装置及计算机可读存储介质 | |
US9262264B2 (en) | Error correction code seeding | |
CN111782271A (zh) | 一种软硬件交互方法及装置、存储介质 | |
US8392621B2 (en) | Managing dataflow in a temporary memory | |
CN111737260A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160817 |