CN106528441B - 仿真eeprom的数据处理方法、装置及电子设备 - Google Patents
仿真eeprom的数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN106528441B CN106528441B CN201610951146.3A CN201610951146A CN106528441B CN 106528441 B CN106528441 B CN 106528441B CN 201610951146 A CN201610951146 A CN 201610951146A CN 106528441 B CN106528441 B CN 106528441B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- written
- offset
- virtual
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims description 15
- 238000004088 simulation Methods 0.000 abstract description 31
- 238000010586 diagram Methods 0.000 description 8
- 238000003491 array Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
- G06F2212/2142—Solid state disk using write-once memory, e.g. OTPROM
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Read Only Memory (AREA)
Abstract
本发明实施例公开了一种仿真EEPROM的数据处理方法、装置及电子设备,每次对仿真EEPROM写数据后,记录下一次写数据的存储地址的偏移地址,当下一次写数据时,根据记录的偏移地址直接确定写数据的位置,而不再需要从存储区域首地址开始逐地址查找写数据的位置,从而提高对仿真EEPROM进行写数据的速率,即提高了对仿真EEPROM进行数据处理时的处理速率。
Description
技术领域
本发明涉及数据处理技术领域,更具体地说,涉及一种仿真EEPROM的数据处理方法、装置及电子设备。
背景技术
EEPROM(Electrically Erasable Programmable Read-Only Memory)是电可擦除可编程只读存储器,是一种掉电后数据不丢失的存储芯片,在工业应用中常用来保存一些需要更新的重要数据。EEPROM可以集成到MCU(Microcontroller Unit,微控制单元)中,也可以在嵌入式产品中使用外挂的EEPROM芯片,但无论是那种方式,鉴于EEPROM的性能特性,导致EEPROM的价格较高,从而增加产品的成本。为了降低产品的成本,可以使用MCU内部的eFlash(嵌入式闪存)来模拟仿真EEPROM。
传统的针对仿真EEPROM的数据处理方式是,通过轮询存储位置的方式进行数据读写。具体的,当写数据时,从存储区域的首地址开始逐地址查询写位置;当读数据时,从存储区域的尾地址开始逐地址查询读位置。这种数据处理方式的处理速率较低,例如,当存储区域快写满,则对存储区域写数据时的写速率会很低,而当存储区域内数据很少,则对存储区域读数据时的读效率会很低。
因此,如何提高对仿真EEPROM进行数据处理时的处理速率成为亟待解决的问题。
发明内容
本发明的目的是提供一种仿真EEPROM的数据处理方法、装置及电子设备,以提高对仿真EEPROM进行数据处理时的处理速率。
为实现上述目的,本发明提供了如下技术方案:
一种仿真EEPROM的数据处理方法,包括:
接收数据写请求,所述数据写请求中包括:待写数据的取值和所述待写数据的虚拟地址;
读取最近一次写所述仿真EEPROM后记录的,用于写数据的存储地址的偏移地址;
确定与所述偏移地址对应的第一存储地址;
将所述待写数据的取值和所述待写数据的虚拟地址写入所述第一存储地址;
将所述用于写数据的存储地址的偏移地址更新为所述第一存储地址之后的第二存储地址的偏移地址。
上述方法,优选的,在将所述待写数据的取值和所述待写数据的虚拟地址写入所述第一存储地址之后,还包括:
将与所述待写数据的虚拟地址对应的偏移地址更新为所述第一存储地址的偏移地址。
上述方法,优选的,还包括:
接收数据读请求,所述数据读请求中包括:待读取数据的虚拟地址;
查找与所述待读取数据的虚拟地址对应的第一偏移地址;
从所述第一偏移地址对应的存储地址中读取数据。
上述方法,优选的,通过二维数组的方式存储虚拟地址与偏移地址的对应关系。
一种仿真EEPROM的数据处理方法,包括:
接收数据读取请求,所述数据读取请求中包括:待读取数据的虚拟地址;
根据虚拟地址与偏移地址的对应关系,查找与所述待读取数据的虚拟地址对应的第二偏移地址;其中,所述虚拟地址与偏移地址的对应关系为:写所述仿真EEPROM后建立的,所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;
从所述第二偏移地址对应的存储地址中读取数据。
一种仿真EEPROM的数据处理装置,包括:
第一接收模块,用于接收数据写请求,所述数据写请求中包括:待写数据的取值和所述待写数据的虚拟地址;
获取模块,用于读取最近一次写所述仿真EEPROM后记录的,用于写数据的存储地址的偏移地址;
确定模块,用于确定与所述偏移地址对应的第一存储地址;
写模块,用于将所述待写数据的取值和所述待写数据的虚拟地址写入所述第一存储地址;
第一更新模块,用于将所述用于写数据的存储地址的偏移地址更新为所述第一存储地址之后的第二存储地址的偏移地址。
上述装置,优选的,还包括:
第二更新模块,用于将与所述待写数据的虚拟地址对应的偏移地址更新为所述第一存储地址的偏移地址。
上述装置,优选的,还包括:
第二接收模块,用于接收数据读请求,所述数据读请求中包括:待读取数据的虚拟地址;
第一查找模块,用于查找与所述待读取数据的虚拟地址对应的第一偏移地址;
第一读模块,用于从所述第一偏移地址对应的存储地址中读取数据。
一种仿真EEPROM的数据处理装置,包括:
第三接收模块,用于接收数据读取请求,所述数据读取请求中包括:待读取数据的虚拟地址;
第二查找模块,用户根据虚拟地址与偏移地址的对应关系,查找与所述待读取数据的虚拟地址对应的第二偏移地址;其中,所述虚拟地址与偏移地址的对应关系为:写所述仿真EEPROM后建立的,所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;
第二读模块,用于从所述第二偏移地址对应的存储地址中读取数据。
一种电子设备,包括仿真EEPROM,以及如上任意一项所述的仿真EEPROM的数据处理装置。
通过以上方案可知,本申请提供的一种仿真EEPROM的数据处理方法、装置及电子设备,每次对仿真EEPROM写数据后,记录下一次写数据的存储地址的偏移地址,当下一次写数据时,根据记录的偏移地址直接确定写数据的位置,而不再需要从存储区域首地址开始逐地址查找写数据的位置,从而提高对仿真EEPROM进行写数据的速率,即提高了对仿真EEPROM进行数据处理时的处理速率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的仿真EEPROM的数据处理方法的一种实现流程图;
图2为本发明实施例提供的仿真EEPROM的数据处理方法的另一种实现流程图;
图3为本发明实施例提供的仿真EEPROM的数据处理装置的一种结构示意图;
图4为本发明实施例提供的仿真EEPROM的数据处理装置的另一种结构示意图;
图5为本发明实施例提供的仿真EEPROM的数据处理装置的又一种结构示意图;
图6为本发明实施例提供的仿真EEPROM的数据处理装置的又一种结构示意图。
说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的仿真EEPROM的数据处理方法及装置可以应用于电子设备中,该电子设备具有仿真EEPROM。
请参阅图1,图1为本发明实施例提供的仿真EEPROM的数据处理方法的一种实现流程图,可以包括:
步骤S11:接收数据写请求,该数据写请求中包括:待写数据的取值和待写数据的虚拟地址;
虚拟地址是系统初始化时分配给数据的,用于对数据进行标记。上述系统是指发送上述数据写请求的系统。
步骤S12:读取最近一次写仿真EEPROM后记录的,用于写数据的存储地址的偏移地址;
本发明实施例中,每次对仿真EEPROM进行写操作后,会记录下一个可以写数据的存储地址的偏移地址,该偏移地址是指存储地址相对于存储区域的首地址的偏移量。其中,下一个可以写数据的存储地址是指:每次写数据后,距离本次写数据的存储地址最近的一个未写数据的存储地址。
步骤S13:确定与上述偏移地址对应的第一存储地址;
根据偏移地址以及存储区域的首地址,可以计算得到与上述偏移地址对应的第一存储地址。
步骤S14:将待写数据的取值和待写数据的虚拟地址写入第一存储地址;
步骤S15:将用于写数据的存储地址的偏移地址更新为上述第一存储地址之后的第二存储地址的偏移地址。
第二存储地址为在第一存储地址写入数据之后,距离第一存储地址最近的一个未写数据的存储地址。以便于下次写数据时,根据第二存储地址的偏移地址快速找到写数据的位置。
本发明实施例提供的仿真EEPROM的数据处理方法,每次对仿真EEPROM写数据后,记录下一次写数据的存储地址的偏移地址,当下一次写数据时,根据记录的偏移地址直接确定写数据的位置,而不再需要从存储区域首地址开始逐地址查找写数据的位置,从而提高对仿真EEPROM进行写数据的速率,即提高了对仿真EEPROM进行数据处理时的处理速率。而且,通过本发明实施例提供的仿真EEPROM的数据处理方法,即便仿真EEPROM的存储空间变大,也不会影响对仿真EEPROM写数据的效率。
在一个可选的实施例中,在将待写数据的取值和待写数据的虚拟地址写入第一存储地址之后,还可以包括:
将与待写数据的虚拟地址对应的偏移地址更新为第一存储地址的偏移地址。
本发明实施例中,建立并存储了虚拟地址(该虚拟地址是指写入仿真EEPROM的数据的虚拟地址)与偏移地址(该偏移地址是指在仿真EEPROM写入数据后,所写入数据的存储地址的偏移地址)的对应关系。在待写数据的取值和待写数据的虚拟地址写入第一存储地址之后,除了更新用于写数据的存储地址的偏移地址之外,还更新与待写数据的虚拟地址对应的偏移地址,即将待写数据的虚拟地址对应的偏移地址更新为所写入数据的存储地址对应的偏移地址。
可以选的,可以以表格的方式存储虚拟地址与偏移地址的对应关系。
在一个可选的实施例中,在对仿真EEPROM写数据后,如果系统没有保存所写入数据的虚拟地址与偏移地址的对应关系,则可以建立所写入虚拟地址与所写入数据的存储地址的偏移地址的对应关系。
本发明实施例中,每次对仿真EEPROM写数据后,还保存所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系,从而在从仿真EEPROM中读数据时,可以根据虚拟地址和偏移地址的对应关系,确定偏移地址,从而直接从偏移地址对应的存储地址读取数据,不再需要从存储区域尾地址开始逐地址查找读数据的位置,从而也可以提高对仿真EEPROM进行读数据的速率。
在一个可选的实施例中,本发明实施例提供的仿真EEPROM的数据处理方法还可以包括:
接收数据读请求,该数据读请求中包括:待读取数据的虚拟地址;
查找与待读取数据的虚拟地址对应的第一偏移地址;
可以查找写数据过程中建立或更新的虚拟地址与偏移地址的对应管理查找与待读取数据的虚拟地址对应的第一偏移地址。
从第一偏移地址对应的存储地址中读取数据。
本发明实施例中,在从仿真EEPROM中读数据时,根据虚拟地址和偏移地址的对应关系,确定偏移地址,从而直接从偏移地址对应的存储地址读取数据,不再需要从存储区域尾地址开始逐地址查找读数据的位置,从而也可以提高对仿真EEPROM进行读数据的速率。
若没有查找到与待读取数据的虚拟地址对应的第一偏移地址,说明仿真EEPROM中没有存储该数据,可以返回错误信息,提示用户没有存储该数据。
在一个可选的实施例中,可以以二维数组的方式存储虚拟地址与偏移地址的对应关系。可以将二维数组以表格的形式进行展现,通过数组的个数以及每个数组的维数可以决定表格的行数和列数。例如,假设一共有N个二维数组,则以表格的形式展现虚拟地址与偏移地址的对应关系时,表格可以为N行2列的表格,每一行用于存储一个二维数组的两个维度的数据。
在一个可选的实施例中,本发明实施例提供的仿真EEPROM的数据处理方法的另一种实现流程图如图2所示,可以包括:
步骤S21:接收数据读取请求,该数据读取请求中包括:待读取数据的虚拟地址;
步骤S22:根据虚拟地址与偏移地址的对应关系,查找与待读取数据的虚拟地址对应的第二偏移地址;其中,虚拟地址与偏移地址的对应关系为:写仿真EEPROM后建立的,所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;
步骤S23:从第二偏移地址对应的存储地址中读取数据。
本发明实施例提供的信息处理方法,在从仿真EEPROM中读数据时,根据虚拟地址和偏移地址的对应关系,确定偏移地址,从而直接从偏移地址对应的存储地址读取数据,不再需要从存储区域尾地址开始逐地址查找读数据的位置,从而也可以提高对仿真EEPROM进行读数据的速率。
下面举例说明本发明实施例提供的对仿真EEPROM进行读写的具体实现方式。
目前,在通过仿真EEPROM读取数据时,通常会将仿真EEPROM划分为多个子区域,每个子区域称为一个页。
传统的对仿真EEPROM进行读写的方法为:当对某一页写数据时,从该页的页首开始逐地址查询写位置;当对某一页读数据时,从该页的页尾开始逐地址查询读位置。那么,当对某一页写数据时,若该页快写满,则对该页写数据时的写速率会很低,当对某一页读数据时,若页数据很少,则对该页读数据时的读效率会很低。
本发明示例中,以片上eFlash仿真的EEPROM使用两页保存数据为例进行说明。假设保存到每个存储地址的数据由4个字节组成,其中高16位为要保存的数据,低16位为要保存的数据的虚拟地址。在写数据时,逐页写数据,即在第一页写满数据后,再写第二页数据。由于同一数据根据实际需要可能会有不同的取值,这就需要对数据的取值进行更新,那么,当需要对数据的取值更新时,是将该数据更新后的取值存入一个新的位置,而非在原存储位置进行擦除后重写,因此,一个页面中可能会有同一数据的多个取值,而这多个取值中只有最后一次存储的取值为有效数据。本示例中,当第一页写满时,只把第一页中的有效数据转移到第二页,而其它数据则不会转移到第二页,将第一页中的有效数据转移到第二页后,擦除第一页的数据,以便再次用来保存数据。同理,当第二页中数据写满后,只将第二页中的有效数据转移到第一页,然后擦除第二页的数据,以便再次用来存储数据。
下面以写第一页为例说明写数据的过程。这里假设需要保存温度和湿度这两个数据到仿真EEPROM。其中,温度的虚拟地址是0x1000,湿度的虚拟地址是0x2000。以下所示的每个表均表示第一页的一个示例,其中,每个表的一行表示一个存储地址,每个存储地址分为两个存储区域,一个区域用于存储温度的取值或湿度的取值,另一个区域用于存储相应的虚拟地址。每个表的第一行的偏移地址为0,由于每个存储地址的长度为4个字节,因此,第二行的偏移地址为4,第三行的偏移地址为8,第四行的偏移地址为12,第5行的偏移地址为16。可以通过一全局变量保存用于写数据的存储地址的偏移地址。在初始状态下,即第一页没有和第二页没有保存过任何数据的状态下,全局变量的取值为0,虚拟地址和偏移地址的映射关系为{{0x1000,0xFF},{0x2000,0xFF}},0xFF所在位置用户存储偏移地址,0xFF本身表示无效。
在初始状态下,第一页的状态如表1所示。表1中,0xFFFF本身表示存储位置为空,即没有保存任何数据。
表1
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
现在要保存温度值0x28,则从全局变量中读取偏移地址0,将温度值0x28和温度的虚拟地址写入偏移地址0,偏移地址0被写入数据后,第一页的状态如表2所示。然后,将虚拟地址和偏移地址的对应关系进行更新,更新后的对应关系为:{{0x1000,0x00},{0x2000,0xFF}},并将全局变量的值更新为下一个地址的偏移地址4。
表2
0x28 | 0x1000 |
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
之后的某个时刻,要保存温度值0x29,则从全局变量中读取偏移地址4,将温度值0x29和温度的虚拟地址写入偏移地址4,偏移地址4被写入数据后,第一页的状态如表3所示。然后,将虚拟地址和偏移地址的对应关系进行更新,更新后的对应关系为:{{0x1000,0x04},{0x2000,0xFF}},并将全局变量的值更新为下一个地址的偏移地址8。
表3
之后的某个时刻,要保存湿度值0x80,则从全局变量中读取偏移地址8,将湿度值0x80和湿度的虚拟地址写入偏移地址8,偏移地址8被写入数据后,第一页的状态如表4所示。然后,将虚拟地址和偏移地址的对应关系进行更新,更新后的对应关系为:{{0x1000,0x04},{0x2000,0x08}},并将全局变量的值更新为下一个地址的偏移地址12。
表4
0x28 | 0x1000 |
0x29 | 0x1000 |
0x80 | 0x2000 |
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
之后的某个时刻,要保存湿度值0x90,则从全局变量中读取偏移地址12,将湿度值0x90和湿度的虚拟地址写入偏移地址12,偏移地址12被写入数据后,第一页的状态如表5所示。然后,将虚拟地址和偏移地址的对应关系进行更新,更新后的对应关系为:{{0x1000,0x04},{0x2000,0x0C}},并将全局变量的值更新为下一个地址的偏移地址16。
表5
之后的某个时刻,要保存温度值0x30,则从全局变量中读取偏移地址16,将温度值0x30和温度的虚拟地址写入偏移地址16,偏移地址16被写入数据后,第一页的状态如表6所示。由于第一页已经写满,所以,当有新的数据需要保存时,就要“换页”,即在第二页写数据,因此,在将温度值0x30保存后,将第一页的有效数据0x30和0x90搬移到第二页(如表7所示),然后,将虚拟地址和偏移地址的对应关系进行更新,更新后的对应关系为:{{0x1000,0x00},{0x2000,0x04}},并将全局变量的值更新为下一个地址的偏移地址8。另外,将第一页的有效数据搬移到第二页后,擦除第一页的数据,以便第二页写满时使用。第一页的数据擦除后的状态如表1所示。
表6
0x28 | 0x1000 |
0x29 | 0x1000 |
0x80 | 0x2000 |
0x90 | 0x2000 |
0x30 | 0x1000 |
表7
0x30 | 0x1000 |
0x90 | 0x2000 |
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
0xFFFF | 0xFFFF |
需要说明的是,在第一页写数据时,某个存储地址的偏移地址是指该存储地址相对于第一页的首地址的偏移量,在第二页写数据时,某个存储地址的偏移地址是指该存储地址相对于第二页的首地址的偏移量。
下面以表7为例说明本发明实施例提供的读数据的过程。假设接收到读取温度数据的请求,该读取温度数据的请求中携带有温度的虚拟地址0x1000,则根据温度的虚拟地址0x1000,以及虚拟地址和偏移地址的对应关系{{0x1000,0x00},{0x2000,0x04}},可以确定要读取的温度数据的取值所对应的偏移地址为0x00,则在第二页的偏移地址为0x00的位置读取数据,而不再需要从最后一行开始向上查找数据。
与方法实施例相对应,本发明实施例还提供一种仿真EEPROM的数据处理装置,本发明实施例提供的仿真EEPROM的数据处理装置的一种结构示意图如图3所示,可以包括:
第一接收模块31,获取模块32,确定模块33,写模块34和第一更新模块35;其中,
第一接收模块31用于接收数据写请求,该数据写请求中包括:待写数据的取值和待写数据的虚拟地址;
虚拟地址是系统初始化时分配给数据的,用于对数据进行标记。上述系统是指发送上述数据写请求的系统。
获取模块32用于读取最近一次写仿真EEPROM后记录的,用于写数据的存储地址的偏移地址;
本发明实施例中,每次对仿真EEPROM进行写操作后,会记录下一个可以写数据的存储地址的偏移地址,该偏移地址是指存储地址相对于存储区域的首地址的偏移量。其中,下一个可以写数据的存储地址是指:每次写数据后,距离本次写数据的存储地址最近的一个未写数据的存储地址。
确定模块33用于确定与偏移地址对应的第一存储地址;
根据偏移地址以及存储区域的首地址,可以计算得到与上述偏移地址对应的第一存储地址。
写模块34用于将待写数据的取值和待写数据的虚拟地址写入第一存储地址;
第一更新模块35用于将用于写数据的存储地址的偏移地址更新为第一存储地址之后的第二存储地址的偏移地址。
第二存储地址为在第一存储地址写入数据之后,距离第一存储地址最近的一个未写数据的存储地址。以便于下次写数据时,根据第二存储地址的偏移地址快速找到写数据的位置。
本发明实施例提供的仿真EEPROM的数据处理装置,每次对仿真EEPROM写数据后,记录下一次写数据的存储地址的偏移地址,当下一次写数据时,根据记录的偏移地址直接确定写数据的位置,而不再需要从存储区域首地址开始逐地址查找写数据的位置,从而提高对仿真EEPROM进行写数据的速率,即提高了对仿真EEPROM进行数据处理时的处理速率。而且,通过本发明实施例提供的仿真EEPROM的数据处理装置,即便仿真EEPROM的存储空间变大,也不会影响对仿真EEPROM写数据的效率。
可选的,在图3所示实施例的基础上,本发明实施例提供的仿真EEPROM的数据处理装置的另一种结构示意图如图4所示,还可以包括:
第二更新模块41,用于将与待写数据的虚拟地址对应的偏移地址更新为第一存储地址的偏移地址。
本发明实施例中,建立并存储了虚拟地址(该虚拟地址是指写入仿真EEPROM的数据的虚拟地址)与偏移地址(该偏移地址是指在仿真EEPROM写入数据后,所写入数据的存储地址的偏移地址)的对应关系。在待写数据的取值和待写数据的虚拟地址写入第一存储地址之后,除了更新用于写数据的存储地址的偏移地址之外,还通过第二更新模块41更新与待写数据的虚拟地址对应的偏移地址,即将待写数据的虚拟地址对应的偏移地址更新为所写入数据的存储地址对应的偏移地址。
可以选的,可以以表格的方式存储虚拟地址与偏移地址的对应关系。
在一个可选的实施例中,在对仿真EEPROM写数据后,如果系统没有保存所写入数据的虚拟地址与偏移地址的对应关系,则第二更新模块41可以建立所写入虚拟地址与所写入数据的存储地址的偏移地址的对应关系。
本发明实施例中,每次对仿真EEPROM写数据后,还保存所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系,从而在从仿真EEPROM中读数据时,可以根据虚拟地址和偏移地址的对应关系,确定偏移地址,从而直接从偏移地址对应的存储地址读取数据,不再需要从存储区域尾地址开始逐地址查找读数据的位置,从而也可以提高对仿真EEPROM进行读数据的速率。
在图4所示实施例的基础上,本发明实施例提供的仿真EEPROM的数据处理装置的又一种结构示意图如图5所示,还可以包括:
第二接收模块51,第一查找模块52和第一读模块53;其中,
第二接收模块51用于接收数据读请求,该数据读请求中包括:待读取数据的虚拟地址;
第一查找模块52用于查找与待读取数据的虚拟地址对应的第一偏移地址;
可以查找写数据过程中建立或更新的虚拟地址与偏移地址的对应管理查找与待读取数据的虚拟地址对应的第一偏移地址。
第一读模块53用于从第一偏移地址对应的存储地址中读取数据。
本发明实施例中,在从仿真EEPROM中读数据时,根据虚拟地址和偏移地址的对应关系,确定偏移地址,从而直接从偏移地址对应的存储地址读取数据,不再需要从存储区域尾地址开始逐地址查找读数据的位置,从而也可以提高对仿真EEPROM进行读数据的速率。
若第一查找模块52没有查找到与待读取数据的虚拟地址对应的第一偏移地址,说明仿真EEPROM中没有存储该数据,可以返回错误信息,提示用户没有存储该数据。
可选的,可以以二维数组的方式存储虚拟地址与偏移地址的对应关系。
在一个可选的实施例中,本发明实施例提供的仿真EEPROM的数据处理装置的又一种结构示意图如图6所示,可以包括:
第三接收模块61,第二查找模块62和第二读模块63;其中,
第三接收模块61用于接收数据读取请求,该数据读取请求中包括:待读取数据的虚拟地址;
第二查找模块62用户根据虚拟地址与偏移地址的对应关系,查找与待读取数据的虚拟地址对应的第二偏移地址;其中,虚拟地址与偏移地址的对应关系为:写仿真EEPROM后建立的,所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;
第二读模块63用于从第二偏移地址对应的存储地址中读取数据。
本发明实施例提供的信息处理方法,在从仿真EEPROM中读数据时,根据虚拟地址和偏移地址的对应关系,确定偏移地址,从而直接从偏移地址对应的存储地址读取数据,不再需要从存储区域尾地址开始逐地址查找读数据的位置,从而也可以提高对仿真EEPROM进行读数据的速率。
本发明实施例还提供一种电子设备,该电子设备具有仿真EEPROM,还包括如上任意一装置实施例公开的仿真EEPROM的数据处理装置。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种仿真EEPROM的数据处理方法,其特征在于,包括:
接收数据写请求,所述数据写请求中包括:待写数据的取值和所述待写数据的虚拟地址;
读取最近一次写所述仿真EEPROM后记录的,用于写数据的存储地址的偏移地址;
确定与所述偏移地址对应的第一存储地址;
将所述待写数据的取值和所述待写数据的虚拟地址写入所述第一存储地址,以便于在未保存所写入数据的虚拟地址与偏移地址的对应关系情况下,建立所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;其中,保存到所述第一存储地址的数据包括多个字节,其中的部分字节对应待写数据的取值,另一部分字节对应待写数据的虚拟地址;
将所述用于写数据的存储地址的偏移地址更新为所述第一存储地址之后的第二存储地址的偏移地址。
2.根据权利要求1所述的方法,其特征在于,在将所述待写数据的取值和所述待写数据的虚拟地址写入所述第一存储地址之后,还包括:
将与所述待写数据的虚拟地址对应的偏移地址更新为所述第一存储地址的偏移地址。
3.根据权利要求2所述的方法,其特征在于,还包括:
接收数据读请求,所述数据读请求中包括:待读取数据的虚拟地址;
查找与所述待读取数据的虚拟地址对应的第一偏移地址;
从所述第一偏移地址对应的存储地址中读取数据。
4.根据权利要求2或3所述的方法,其特征在于,通过二维数组的方式存储虚拟地址与偏移地址的对应关系。
5.一种仿真EEPROM的数据处理方法,其特征在于,包括:
接收数据读取请求,所述数据读取请求中包括:待读取数据的虚拟地址;
根据虚拟地址与偏移地址的对应关系,查找与所述待读取数据的虚拟地址对应的第二偏移地址;其中,所述虚拟地址与偏移地址的对应关系为:写所述仿真EEPROM后建立的,所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;在写所述仿真EEPROM时,当将待写数据的取值写入相应存储地址时,将待写数据的虚拟地址一并写入待写数据的存储地址,以便于在未保存所写入数据的虚拟地址与偏移地址的对应关系情况下,建立所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;其中,保存到待写数据的存储地址的数据包括多个字节,其中的部分字节对应待写数据的取值,另一部分字节对应待写数据的虚拟地址;
从所述第二偏移地址对应的存储地址中读取数据。
6.一种仿真EEPROM的数据处理装置,其特征在于,包括:
第一接收模块,用于接收数据写请求,所述数据写请求中包括:待写数据的取值和所述待写数据的虚拟地址;
获取模块,用于读取最近一次写所述仿真EEPROM后记录的,用于写数据的存储地址的偏移地址;
确定模块,用于确定与所述偏移地址对应的第一存储地址;
写模块,用于将所述待写数据的取值和所述待写数据的虚拟地址写入所述第一存储地址,以便于在未保存所写入数据的虚拟地址与偏移地址的对应关系情况下,建立所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;其中,保存到所述第一存储地址的数据包括多个字节,其中的部分字节对应待写数据的取值,另一部分字节对应待写数据的虚拟地址;
第一更新模块,用于将所述用于写数据的存储地址的偏移地址更新为所述第一存储地址之后的第二存储地址的偏移地址。
7.根据权利要求6所述的装置,其特征在于,还包括:
第二更新模块,用于将与所述待写数据的虚拟地址对应的偏移地址更新为所述第一存储地址的偏移地址。
8.根据权利要求7所述的装置,其特征在于,还包括:
第二接收模块,用于接收数据读请求,所述数据读请求中包括:待读取数据的虚拟地址;
第一查找模块,用于查找与所述待读取数据的虚拟地址对应的第一偏移地址;
第一读模块,用于从所述第一偏移地址对应的存储地址中读取数据。
9.一种仿真EEPROM的数据处理装置,其特征在于,包括:
第三接收模块,用于接收数据读取请求,所述数据读取请求中包括:待读取数据的虚拟地址;
第二查找模块,用户根据虚拟地址与偏移地址的对应关系,查找与所述待读取数据的虚拟地址对应的第二偏移地址;其中,所述虚拟地址与偏移地址的对应关系为:写所述仿真EEPROM后建立的,所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;在写所述仿真EEPROM时,当将待写数据的取值写入相应存储地址时,将待写数据的虚拟地址一并写入待写数据的存储地址,以便于在未保存所写入数据的虚拟地址与偏移地址的对应关系情况下,建立所写入数据的虚拟地址与所写入数据的存储地址的偏移地址的对应关系;其中,保存到待写数据的存储地址的数据包括多个字节,其中的部分字节对应待写数据的取值,另一部分字节对应待写数据的虚拟地址;
第二读模块,用于从所述第二偏移地址对应的存储地址中读取数据。
10.一种电子设备,其特征在于,包括仿真EEPROM,以及如权利要求6-9任意一项所述的仿真EEPROM的数据处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610951146.3A CN106528441B (zh) | 2016-10-26 | 2016-10-26 | 仿真eeprom的数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610951146.3A CN106528441B (zh) | 2016-10-26 | 2016-10-26 | 仿真eeprom的数据处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528441A CN106528441A (zh) | 2017-03-22 |
CN106528441B true CN106528441B (zh) | 2020-08-04 |
Family
ID=58326788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610951146.3A Active CN106528441B (zh) | 2016-10-26 | 2016-10-26 | 仿真eeprom的数据处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528441B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694016B (zh) * | 2017-04-10 | 2021-06-08 | 联合汽车电子有限公司 | 模拟eeprom数据分析系统及方法 |
CN108845959B (zh) * | 2018-06-25 | 2023-06-23 | 联想(北京)有限公司 | 一种内存数据处理方法、装置和电子设备 |
CN113360077B (zh) * | 2020-03-04 | 2023-03-03 | 华为技术有限公司 | 数据存储方法、计算节点及存储系统 |
CN116501651A (zh) * | 2023-06-27 | 2023-07-28 | 北京世冠金洋科技发展有限公司 | 一种仿真数据的处理方法、装置、设备和计算机可读介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1420440A (zh) * | 2001-11-16 | 2003-05-28 | 三星电子株式会社 | 快闪存储器管理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315916B2 (en) * | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7349260B2 (en) * | 2005-12-29 | 2008-03-25 | Sandisk Corporation | Alternate row-based reading and writing for non-volatile memory |
US7324389B2 (en) * | 2006-03-24 | 2008-01-29 | Sandisk Corporation | Non-volatile memory with redundancy data buffered in remote buffer circuits |
TWI457940B (zh) * | 2009-05-15 | 2014-10-21 | Macronix Int Co Ltd | 區塊為基礎快閃記憶體之位元組存取 |
CN102169459B (zh) * | 2010-11-29 | 2013-04-24 | 北京握奇数据系统有限公司 | 一种访问数据的方法、装置和智能卡 |
CN103049222B (zh) * | 2012-12-28 | 2016-05-25 | 中国船舶重工集团公司第七0九研究所 | 一种raid5的写io优化处理方法 |
US20140258792A1 (en) * | 2013-03-08 | 2014-09-11 | Ross S. Scouller | Symmetrical Data Replication For Failure Management In Non-Volatile Memory Systems |
CN103823759A (zh) * | 2014-02-17 | 2014-05-28 | 天津瑞驰捷科技有限公司 | 检测仪器中电擦除可编程只读存储器的使用方法 |
CN104657281B (zh) * | 2015-03-17 | 2017-10-27 | 东港股份有限公司 | 一种Java卡包数据管理方法 |
-
2016
- 2016-10-26 CN CN201610951146.3A patent/CN106528441B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1420440A (zh) * | 2001-11-16 | 2003-05-28 | 三星电子株式会社 | 快闪存储器管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106528441A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9842030B2 (en) | Data storage device and flash memory control method | |
CN106528441B (zh) | 仿真eeprom的数据处理方法、装置及电子设备 | |
CN107168647B (zh) | Flash数据读写方法及系统 | |
CN102629237B (zh) | 非易失性半导体存储器及搜索最后写入地址的方法 | |
US7516296B2 (en) | Flash memory storage device and read/write method | |
US7461198B2 (en) | System and method for configuration and management of flash memory | |
CN101099125B (zh) | 群集的自动对准方法和存储器系统 | |
CN109426619A (zh) | 访问快闪存储器模块的方法及相关闪存控制器与电子装置 | |
US10475516B2 (en) | Data storage device and data erasing method wherein after erasing process, predetermined value is written to indicate completion of said erasing method | |
CN100458736C (zh) | Nand闪存信息提取方法和nand闪存自动识别方法 | |
CN109976669B (zh) | 一种边缘存储方法、装置和存储介质 | |
CN105988722A (zh) | 数据储存方法及嵌入式系统 | |
CN107422992A (zh) | 一种SSD运行时Journal保存方法及系统 | |
KR101400506B1 (ko) | 비휘발성 메모리 제어기 및 그 제어 방법 | |
CN110209349B (zh) | 数据处理的方法及终端设备 | |
US20150378609A1 (en) | Method for initializing nand flash | |
CN110554842A (zh) | 一种使用闪存模拟eeprom的方法 | |
CN106547472B (zh) | 存储阵列管理方法及装置 | |
CN112463055B (zh) | 一种优化并使用固态硬盘l2p表的方法、系统、设备及介质 | |
CN103336699A (zh) | 嵌入式系统软件的升级方法和装置 | |
JP2008084184A (ja) | メモリコントローラ | |
CN101339513B (zh) | 基本输入/输出系统数据更新方法 | |
CN103514953B (zh) | 对存储在闪存中的数据有地址ram的模拟电可擦存储器 | |
CN109669628B (zh) | 基于flash设备的数据存储管理方法及装置 | |
CN109165172A (zh) | 缓存数据处理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |