CN116909487B - 数据读写方法、芯片、嵌入式微控制器和智能终端设备 - Google Patents
数据读写方法、芯片、嵌入式微控制器和智能终端设备 Download PDFInfo
- Publication number
- CN116909487B CN116909487B CN202311138462.5A CN202311138462A CN116909487B CN 116909487 B CN116909487 B CN 116909487B CN 202311138462 A CN202311138462 A CN 202311138462A CN 116909487 B CN116909487 B CN 116909487B
- Authority
- CN
- China
- Prior art keywords
- data
- eeprom
- ram
- address
- storage 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004088 simulation Methods 0.000 claims abstract description 8
- 238000012795 verification Methods 0.000 claims description 88
- 230000006870 function Effects 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 4
- 239000003550 marker Substances 0.000 claims description 3
- 230000011664 signaling Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 6
- 238000013461 design Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 26
- 238000013507 mapping Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种数据读写方法、芯片、嵌入式微控制器和智能终端设备,涉及芯片设计技术领域。EEPROM模拟器将接收到的数据写入FLASH中有效的存储单元的第二存储区域,因FLASH具有非易失性,故能确保芯片掉电后该数据不会丢失。故通过将数据存储在FLASH中能达到存储在EEPROM中的效果。芯片初始化后,EEPROM模拟器能够将初始化前有效的存储单元中的数据写入RAM的第一存储区域以供读取设备读取,因RAM与EEPROM的读写方式相同,故能确保读取设备通过访问RAM达到访问EEPROM的效果。如此,即可模拟实现EEPROM的功能,而无需额外新增EEPROM,因此降低了芯片的硬件成本。
Description
技术领域
本申请涉及芯片设计技术领域,特别涉及一种数据读写方法、芯片、嵌入式微控制器和智能终端设备。
背景技术
电可擦除可编程只读存储器(electrically erasable programmable read onlymemory,EEPROM)具有即时读写的功能,且能够在掉电后保存需要的数据(如配置数据)。因此,很多处理器件(如芯片)往往需要EEPROM来实现数据的读写和保存。
然而,较多的处理器件均未设置EEPROM,因此为了实现数据的即时读写和掉电保存,相关技术中,可以在该处理器件中新增一个EEPROM。
由此可见,相关技术中的处理器件实现数据的即时读写和掉电保存的硬件成本较高。
发明内容
本申请提供了一种数据读写方法、芯片、嵌入式微控制器和智能终端设备,可以解决相关技术中的处理器件实现数据的即时读写和掉电保存的硬件成本较高的问题。所述技术方案如下:
一方面,提供了一种芯片,所述芯片包括:电可擦除可编程只读存储器EEPROM模拟器、随机存取存储器RAM和闪速存储器FLASH,所述FLASH包括多个存储单元;
所述EEPROM模拟器,用于在所述芯片初始化后,将所述多个存储单元中第一存储单元存储的第一数据写入所述RAM的第一存储区域,以供读取设备读取,所述第一存储单元为所述芯片初始化前所述多个存储单元中有效的存储单元;
以及用于在接收到待存储于EEPROM的第二数据后,将所述第二数据写入所述RAM的第二存储区域,并将所述第二数据和所述第二数据的目标地址写入所述多个存储单元中的第二存储单元,所述第二存储单元为所述芯片初始化后所述多个存储单元中有效的存储单元,所述目标地址为所述第二数据在所述EEPROM中的EEPROM地址,或所述第二存储单元的地址;
其中,所述第一存储区域和所述第二存储区域位于所述RAM的目标存储空间内;所述目标存储空间的容量小于所述RAM的存储空间的容量,且所述目标存储空间的结束地址为所述存储空间的结束地址。
可选的,所述EEPROM模拟器包括:主控组件、RAM控制组件和FLASH控制组件;
所述主控组件分别与所述RAM控制组件和所述FLASH控制组件连接,所述RAM控制组件还与所述RAM连接,所述FLASH控制组件还与所述FLASH连接;
所述主控组件,用于在所述芯片初始化后,通过所述RAM控制组件和所述FLASH控制组件,将所述第一数据写入所述RAM的第一存储区域,以及在接收到所述第二数据后,通过所述RAM控制组件将所述第二数据写入所述RAM的第二存储区域,并通过所述FLASH控制组件将所述第二数据和所述第二数据的目标地址写入所述第二存储单元。
可选的,所述主控组件,用于在所述芯片初始化后,向所述FLASH控制组件发送读取信号,并向所述RAM控制组件发送第一写入信号,以及在接收到所述第二数据后,向所述FLASH控制组件发送第二写入信号,并向所述RAM控制组件发送第三写入信号,其中,所述第二写入信号包括所述第二数据和所述第二数据的目标地址,所述第三写入信号包括所述第二数据;
所述FLASH控制组件,用于响应于所述读取信号,控制所述FLASH将所述第一存储单元中存储的所述第一数据传输至所述RAM控制组件;以及响应于所述第二写入信号,将所述第二数据和所述第二数据的目标地址写入所述第二存储单元;
所述RAM控制组件用于,响应于所述第二写入信号,将接收到所述第一数据写入所述RAM的第一存储区域;以及响应于所述第三写入信号,将所述第二数据写入所述RAM的第二存储区域。
可选的,所述EEPROM模拟器还包括:缓冲组件,所述缓冲组件与所述RAM控制组件和所述FLASH控制组件连接;
所述主控组件,用于在初始化后,通过所述FLASH控制组件将所述第一数据读取至所述缓冲组件,并通过所述RAM控制组件从所述缓冲组件中读取所述第一数据,以将所述第一数据写入所述RAM的第一存储区域。
可选的,所述第一存储单元还存储有所述第一数据对应的校验值,所述校验值是所述主控组件采用校验算法对所述第一数据进行处理得到的;所述EEPROM模拟器还包括:校验组件;
所述主控组件,用于在初始化后,通过所述FLASH控制组件将所述第一数据和所述校验值读取至所述缓冲组件;
所述校验组件与所述缓冲组件连接,所述校验组件用于基于所述缓冲组件中存储的所述校验值,对所述缓冲组件中存储的所述第一数据进行校验;
所述主控组件,用于在所述校验组件对所述第一数据校验成功后,通过所述RAM控制组件从所述缓冲组件中读取所述第一数据,以将所述第一数据写入所述RAM的第一存储区域。
可选的,所述主控组件用于:
获取目标FLASH地址;
通过所述FLASH控制组件,将所述第二数据和所述第二数据的目标地址,写入第二存储单元中所述目标FLASH地址所指示的存储区域。
可选的,所述EEPROM模拟器还包括:比对组件;
所述比对组件,用于在所述第二数据和所述第二数据的目标地址写入所述目标FLASH地址指示的存储区域后,读取所述目标FLASH地址指示的存储区中存储的第三数据和所述第三数据的目标地址,并在确定所述第二数据与所述第二数据不同,和/或,所述第二数据的目标地址与所述第三数据的目标地址不同的情况下,发出告警信号。
可选的,所述芯片还包括:处理器,所述第二数据是所述处理器发送至所述EEPROM模拟器的;所述主控组件包括:配置寄存器和主控单元;
所述配置寄存器与所述处理器和所述主控单元连接,所述主控单元与所述RAM控制组件和所述FLASH控制组件连接;
所述处理器,用于将所述第二数据写入所述配置寄存器中;
所述主控单元,用于在所述芯片初始化后,通过所述RAM控制组件和所述FLASH控制组件,将所述第一数据写入所述RAM的第一存储区域,以及从所述配置寄存器中读取所述第二数据,通过所述RAM控制组件将所述第二数据写入所述RAM的第二存储区域,并通过所述FLASH控制组件将所述第二数据和所述第二数据的目标地址写入所述第二存储单元。
可选的,所述第一存储区域的地址基于所述第一数据的目标地址确定,所述第一数据的目标地址为所述第一数据在所述EEPROM中的EEPROM地址,或所述RAM中与所述第一数据的EEPROM地址对应的RAM地址;
所述第二存储区域的地址基于所述第二数据的EEPROM地址确定。
可选的,所述多个存储单元按序排列;所述EEPROM模拟器用于:
在将所述第二数据写入所述RAM的第一存储区域后,获取所述多个存储单元中有效的第三存储单元;
若所述第三存储单元的剩余容量大于等于容量阈值,则将所述第三存储单元确定为所述第二存储单元,并将所述第二数据和所述第二数据的目标地址写入所述第二存储单元;
若所述第三存储单元的剩余容量小于所述容量阈值,则将所述第三存储单元的下一个存储单元确定为所述第二存储单元,并将所述目标存储空间中存储的多个数据与所述多个数据中每个数据的目标地址,写入所述第二存储单元,所述多个数据包括所述第二数据;
所述EEPROM模拟器还用于:
将所述第二存储单元作为所述多个存储单元中有效的存储单元,所述多个存储单元中有效的存储单元的个数为1。
可选的,每个所述存储单元均存储有:用于指示所述存储单元的有效状态的标志值,所述有效状态包括:有效或无效;所述EEPROM模拟器用于:
更新所述第二存储单元的标志值,以使所述第二存储单元作为所述多个存储单元中有效的存储单元;
其中,所述第二存储单元的更新后的标志值指示的有效状态为有效。
可选的,所述第二存储单元的更新后的标志值为所述第三存储单元的标志值与目标数值之和,或者为所述第三存储单元的标志值与所述目标数值之差。
可选的,所述EEPROM模拟器还用于:
将所述多个存储单元中标志值为极值的存储单元确定为所述第三存储单元。
可选的,所述EEPROM模拟器用于:
在所述第二存储单元的更新后的标志值为所述第三存储单元的标志值与所述目标数值之和的情况下,将所述多个存储单元中标志值最大的存储单元确定为所述第三存储单元;
在所述第二存储单元的更新后的标志值为所述第三存储单元的标志值与所述目标数值之差的情况下,将所述多个存储单元中标志值最小的存储单元确定为所述第三存储单元。
可选的,所述多个存储单元的个数为至少三个。
可选的,每个所述存储单元的容量大于所述EEPROM的容量。
可选的,所述RAM为静态RAM;
所述芯片为系统级芯片。
可选的,所述EEPROM模拟器用于:
在所述芯片初始化后,若检测到EEPROM模拟功能启用,则将所述多个存储单元中第一存储单元存储的第一数据写入所述RAM中;以及将所述第二数据写入所述RAM中,并将所述第二数据和所述第二数据的目标地址写入所述多个存储单元中的第二存储单元。
另一方面,提供了一种数据读写方法,应用于芯片的EEPROM模拟器,所述芯片还包括:随机存取存储器RAM和闪速存储器FLASH,所述FLASH包括多个存储单元;所述方法包括:
在所述芯片初始化后,将所述多个存储单元中第一存储单元存储的第一数据写入所述RAM的第一存储区域,以供读取设备读取,其中,所述第一存储单元为所述芯片初始化前所述多个存储单元中有效的存储单元;
在接收到待存储于EEPROM的第二数据后,将所述第二数据写入所述RAM的第二存储区域,并将所述第二数据和所述第二数据的目标地址写入所述多个存储单元中的第二存储单元,所述第二存储单元为所述芯片初始化后所述多个存储单元中有效的存储单元,所述目标地址为所述第二数据在所述EEPROM中的EEPROM地址,或所述第二存储单的地址;
其中,所述第一存储区域和所述第二存储区域位于所述RAM的目标存储空间内;所述目标存储空间的容量小于所述RAM的存储空间的容量,且所述目标存储空间的结束地址为所述存储空间的结束地址。
可选的,所述EEPROM模拟器包括:RAM控制组件和FLASH控制组件;所述将所述第二数据写入所述RAM的第二存储区域,并将所述第二数据和所述第二数据的目标地址写入所述多个存储单元中的第二存储单元,包括:
通过所述RAM控制组件将所述第二数据写入所述RAM的第二存储区域,并通过所述FLASH控制组件,将所述第二数据和所述第二数据的目标地址写入所述第二存储单元。
可选的,所述EEPROM模拟器还包括:缓冲组件;所述将所述多个存储单元中第一存储单元存储的第一数据写入所述RAM的第一存储区域,包括:
通过所述FLASH控制组件将所述第一数据读取至所述缓冲组件;
通过所述RAM控制组件从所述缓冲组件中读取所述第一数据,并将所述第一数据写入所述RAM的第一存储区域。
可选的,所述第一存储单元还存储有所述第一数据对应的校验值,所述校验值是采用校验算法对所述第一数据进行处理得到的;所述通过所述FLASH控制组件将所述第一数据读取至所述缓冲组件,包括:
通过所述FLASH控制组件,将所述第一数据和所述校验值读取至所述缓冲组件。
可选的,所述EEPROM模拟器还包括:校验组件;所述通过所述RAM控制组件从所述缓冲组件中读取所述第一数据,包括:
控制所述校验组件,基于所述缓冲组件中存储的校验值对所述缓冲组件存储的第一数据进行校验;
若校验成功,则通过所述RAM控制组件从所述缓冲组件中读取所述第一数据。
可选的,所述将所述第二数据和所述第二数据的目标地址写入所述多个存储单元中的第二存储单元,包括:
从所述第二存储单元中获取目标FLASH地址;
将所述第二数据和所述第二数据的目标地址,写入所述目标FLASH地址所指示的存储区域。
可选的,所述EEPROM模拟器还包括:比对组件;在将所述第二数据和所述第二数据的目标地址,写入所述目标FLASH地址所指示的存储区域之后,所述方法还包括:
读取所述目标FLASH地址所指示的存储区域中存储的第三数据和所述第三数据的目标地址;
在确定所述第二数据与所述第二数据不同,和/或,所述第二数据的目标地址与所述第三数据的目标地址不同的情况下,发出告警信号。
可选的,每个所述存储单元的容量大于所述EEPROM的容量。
可选的,所述多个存储单元的个数为至少三个。
又一方面,提供了一种嵌入式微控制器,包括:如上述方面所述的芯片。
再一方面,提供了一种智能终端设备,包括:如上述方面所述的芯片。
再一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述方面所述的数据读写方法。
再一方面,提供了一种包含指令的计算机程序产品,当所述计算机程序产品在所述计算机上运行时,使得所述计算机执行上述方面所述的数据读写方法。
本申请提供的技术方案带来的有益效果至少包括:
本申请提供了一种数据读写方法、芯片、嵌入式微控制器和智能终端设备,芯片的EEPROM模拟器能够将接收到的数据写入FLASH中有效的存储单元的第二存储区域,由于FLASH具有非易失性,因此能够确保在芯片掉电后该数据不会丢失。由此可见,通过将数据存储在FLASH中可以达到存储在EEPROM中的效果。而在芯片初始化后,EEPROM模拟器能够将初始化前有效的存储单元中存储的数据写入RAM的第一存储区域以供读取设备读取,由于RAM与EEPROM的读写方式相同,因此可以确保读取设备通过访问RAM达到访问EEPROM的效果。由此可见,通过EEPROM模拟器对芯片自身所具有的FLASH和RAM所执行的数据读写操作,即可模拟实现EEPROM的功能。而无需额外新增EEPROM,因此有效降低了芯片的体积、硬件成本、硬件复杂度和功耗,且可以简化芯片的制造工艺。
并且,由于FLASH包括多个存储单元,因此可以确保各个存储单元的使用寿命较长。此外,由于目标存储空间的结束地址为RAM的存储空间的结束地址,因此可以避免模拟实现EEPROM的过程,导致芯片中运行的需要读写RAM的应用程序所需使用的地址发生变化,从而可以避免影响该应用程序的运行。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
图1是本申请实施例提供的一种芯片的结构示意图;
图2是本申请实施例提供的另一种芯片的结构示意图;
图3是本申请实施例提供的又一种芯片的结构示意图;
图4是本申请实施例提供的一种存储单元的结构示意图;
图5是本申请实施例提供的一种向存储单元中写入数据的示意图;
图6是本申请实施例提供的一种确定第一存储单元的方法流程图;
图7是本申请实施例提供的另一种确定第一存储单元的方法流程图;
图8是本申请实施例提供的一种将第一存储单元中的数据写入RAM中的方法流程图;
图9是本申请实施例提供的一种数据读写方法的流程图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
本申请实施例提供了一种芯片,参见图1,该芯片包括:EEPROM模拟器100、随机存取存储器(random access memory,RAM)200和闪速存储器(flash memory)300(简称为FLASH)。该FLASH300包括多个存储单元。该RAM200为片内RAM,该FLASH300为片内FLASH。且从图1可以看出,该EEPROM模拟器100分别与RAM200和FLASH300连接。
该EEPROM模拟器100用于在芯片初始化后,将多个存储单元中第一存储单元存储的第一数据写入RAM的第一存储区域,以供读取设备读取。其中,第一存储单元为芯片初始化前多个存储单元中有效的存储单元。该有效的存储单元是指:在芯片初始化前,多个存储单元中最近一次写入数据的存储单元。多个存储单元中有效的存储单元的个数为1。该芯片初始化是指芯片复位或者芯片上电。
并且,该EEPROM模拟器100还用于在接收到待存储于EEPROM的第二数据后,将第二数据写入RAM200的第二存储区域,并将第二数据和第二数据的目标地址写入多个存储单元中的第二存储单元。该第二存储单元为芯片初始化后多个存储单元中有效的存储单元。该有效的存储单元是指:在芯片初始化后,多个存储单元中最近一次写入数据的存储单元。
其中,第二数据的目标地址为第二数据在EEPROM中的EEPROM地址,或第二存储区域的地址。该第二存储区域的地址为RAM200中与该第二数据的EEPROM地址对应的RAM地址。并且,第一存储区域和第二存储区域均位于RAM200的目标存储空间,该目标存储空间的容量小于RAM200的存储空间的容量,且该目标存储空间的结束地址为该存储空间的结束地址。
综上所述,本申请实施例提供了一种芯片,芯片的EEPROM模拟器能够将接收到的数据写入FLASH中有效的存储单元的第二存储区域,由于FLASH具有非易失性,因此能够确保在芯片掉电后该数据不会丢失。由此可见,通过将数据存储在FLASH中可以达到存储在EEPROM中的效果。而在芯片初始化后,EEPROM模拟器能够将初始化前有效的存储单元中存储的数据写入RAM的第一存储区域以供读取设备读取,由于RAM与EEPROM的读写方式相同,因此可以确保读取设备通过访问RAM达到访问EEPROM的效果。由此可见,通过EEPROM模拟器对芯片自身所具有的FLASH和RAM所执行的数据读写操作,即可模拟实现EEPROM的功能,即实现数据的即时读写和掉电保存。而无需额外新增EEPROM,因此有效降低了芯片的体积、硬件成本、硬件复杂度和功耗,且可以简化芯片的制造工艺。
并且,由于FLASH包括多个存储单元,因此可以确保各个存储单元的使用寿命较长。此外,由于目标存储空间的结束地址为RAM的存储空间的结束地址,因此可以避免模拟实现EEPROM的过程,导致芯片中运行的需要读写RAM的应用程序所需使用的地址发生变化,从而可以避免影响该应用程序的运行。
在本申请实施例中,多个存储单元中的每个存储单元均可以存储有:用于指示存储单元的有效状态的标志值。该有效状态可以包括:有效或无效。该EEPROM模拟器100可以用于在芯片初始化后,检测各个存储单元的标志值,并可以将指示有效状态为有效的标志值所属的存储单元,确定为第一存储单元。
在一种可选的示例中,每个存储单元的标志值可以为第一数值或第二数值。该第一数值指示的有效状态为有效,第二数值指示的有效状态为无效。该第一数值与第二数值不同,例如该第一数值可以为1,第二数值可以为0。
示例的,假设第一数值为1,第二数值为0,则EEPROM模拟器100在芯片初始化后,对于多个存储单元中每个存储单元,EEPROM模拟器100可以检测存储单元的标志值是否为1。若EEPROM模拟器100确定该存储单元的标志值为0,则可以确定该标志值指示的有效状态为无效,即该存储单元为无效的存储单元。若EEPROM模拟器100确定该存储单元的标志值为1,则可以确定该标志值指示的有效状态为有效,即该存储单元为有效的存储单元,继而可以将该存储单元确定为第一存储单元。
在另一种可选的示例中,多个存储单元可以按序排列,例如按照地址从低到高的顺序排列。按序排列的多个存储单元中,未存储有数据的存储单元的标志值为默认值。存储有数据的每个存储单元的标志值,可以为上一个存储有数据的存储单元的标志值与目标数值的差值(或和值)。第一个存储有数据的存储单元的标志值可以为默认值与目标数值的差值(或和值)。由此可见,存储有数据的存储单元的标志值可以递减(或递增)。
可以理解的是,EEPROM模拟器100通常按照多个存储单元的排列次序,依次向多个存储单元写入数据,即先向第一个存储单元写入数据,第一个存储单元写满后,再向下一个存储单元写入数据,如此轮流向多个存储单元中写入数据。因此可以毫无疑义的确定,EEPROM模拟器100最近一次接收的数据所写入的存储单元的标志值最大(或最小)。又由于EEPROM模拟器100最近一次接收的数据所写入的存储单元即为有效的存储单元,因此EEPROM模拟器100可以将多个存储单元中标志值为极值的存储单元,确定为第一存储单元。
例如,若存储有数据的存储单元的标志值递减,则该EEPROM模拟器100可以用于在芯片初始化后,将标志值最小的存储单元确定为第一存储单元。若存储有数据的存储单元的标志值递增,则该EEPROM模拟器100可以用于在芯片初始化后,将标志值最大的存储单元确定为第一存储单元。
可以理解的是,递增的场景下的默认值与递减的场景下的默认值不同。例如,假设该标志值为32位的数值,则递增的场景下该默认值可以为0x00000000,递减的场景下该默认值为0xFFFFFFFF。0x表示16进制。
可选的,对于存储有数据的存储单元的标志值递减或递增的场景,每个存储单元还可以存储有:该存储单元的标志值的验证值,该验证值用于供EEPROM模拟器100验证该标志值的准确性。其中,未存储有数据的存储单元的验证值与标志值相同。
在本申请实施例中,存储有数据的存储单元的验证值可以是对该存储单元的标志值进行按位取反操作后得到的。或者,存储有数据的存储单元的验证值可以是采用校验算法对该存储单元的标志值进行处理后得到的。该校验算法可以为和校验算法、冗余校验算法或异或校验算法。
该EEPROM模拟器100可以用于:在芯片初始化后,对于多个存储单元中的每个存储单元,基于该存储单元的验证值对该存储单元的标志值进行验证,并将多个存储单元中,标志值通过验证且标志值为极值的存储单元,确定为第一存储单元。
例如,假设存储有数据的存储单元的验证值是对该存储单元的标志值进行按位取反操作后得到的,则EEPROM模拟器100可以对该标志值与验证值进行异或运算,并检测异或运算的结果是否为参考值。该参考值可以是EEPROM模拟器100预先存储的,若EEPROM模拟器100确定该结果为参考值,则可以确定标志值通过验证。若EEPROM模拟器100确定该结果不是参考值,则可以确定标志值未通过验证。
示例的,若默认值为0xFFFFFFFF或0x00000000,验证值为对标志值进行按位取反后得到的,则该参考值可以为0xFFFFFFFF。
在本申请实施例中,第一存储单元中还存储有第一数据的目标地址。该目标地址可以为第一数据的EEPROM地址(为了便于描述,后文简称为第一EEPROM地址),或RAM200中与该第一EEPROM地址对应的RAM地址。EEPROM模拟器100确定第一存储单元后,即可从第一存储单元中读取第一数据和第一数据的目标地址,继而根据第一数据的目标地址确定RAM200的第一存储区域,并将第一数据写入该第一存储区域。
可以理解的是,若第一数据的目标地址为第一EEPROM地址对应的RAM地址,则EEPROM模拟器100可以直接将该RAM地址确定为第一存储区域的地址。若该第一数据的目标地址为第一EEPROM地址,则EEPROM模拟器100可以基于目标地址映射关系,确定该第一EEPROM地址对应的RAM地址,并将该RAM地址确定为第一存储区域的地址。其中,该目标地址映射关系中记录有目标存储空间中多个存储区域的RAM地址,以及每个RAM地址对应的EEPROM中的一个存储区域的EEPROM地址。
EEPROM模拟器100在将第二数据写入RAM200的第二存储区域之前,需要先基于第二数据的EEPROM地址(为了便于描述后文称为第二EEPROM地址),确定第二存储区域的地址。如,EEPROM模拟器100可以根据第二EEPROM地址,从目标地址映射关系中确定对应的RAM地址,并将该RAM地址确定为第二存储区域的地址。该第二存储区域的地址与第一存储区域的地址可能不同,也可能相同。
并且,若第二数据的目标地址为RAM200中与该第二EEPROM地址对应的RAM地址,则EEPROM模拟器100在将第二数据和第二数据的目标地址写入第二存储单元之前,可以基于该第二EEPROM地址和目标地址映射关系,确定RAM200中与该第二EEPROM地址对应的RAM地址。
可选的,该第一存储单元中存储的第一数据的个数可以为一个或多个。EEPROM模拟器100可以将第一存储单元中存储有的所有第一数据均写入RAM200。对于第一数据为多个的情况,多个第一数据可以存储于第一存储单元的不同存储区域中。该不同存储区域的FLASH地址不同。此时,该EEPROM模拟器100可以按照FLASH地址从低到高的顺序,将多个第一数据依次从第一存储单元读取出来,并将读取出的每个第一数据均写入RAM200中对应的第一存储区域。
在本申请实施例中,参见图2,该芯片还可以包括处理器400。该处理器400可以向EEPROM模拟器100发送第二数据和第二数据的EEPROM地址。且第一数据和第二数据均为原本需要存储于EEPROM中的数据(如配置数据)。该读取设备为原本需要访问EEPROM的设备,如处理器400。该读取设备可以基于第一数据的目标地址从RAM200中读取该第一数据,并基于该第一数据进行相应的配置。
可以理解的是,本申请实施例是EEPROM模拟器100通过执行对RAM200和FLASH300的读写操作,来模拟实现EEPROM,实际上并不存在EEPROM,相应的也不存在该EEPROM地址所指示的存储区域。因此,该第二数据在EEPROM中的EEPROM地址是虚拟地址。
可选的,该RAM可以为静态随机存储器(static random access memory,SRAM)。该芯片可以为系统级芯片(system on chip,SOC),或数字信号处理(digital signalprocessing,DSP)芯片。
在本申请实施例中,EEPROM模拟器100可以从RAM200中取出n字节(byte,B)的目标存储空间,并可以从FLASH300中取出K个存储单元。然后,EEPROM模拟器100可以通过向该目标存储空间和K个存储单元读写数据,模拟实现EEPROM的功能。例如,EEPROM模拟器100可以在芯片出厂后,首次检测到需要模拟实现EEPROM后,从RAM200中取出目标存储空间,并从FLASH300中取出K个存储单元。K为大于等于2的整数。
其中,n为所需模拟实现的EEPROM的存储容量(后文均简称为容量)。目标存储空间的容量小于RAM的容量,且包括容量相等的多个存储区域,该多个存储区域与所需模拟的EEPROM中的多个存储区域一一对应。且目标存储空间中的每个存储区域的容量等于EEPROM中的每个存储区域的容量。由此可见,目标存储空间中存储的数据,即为所需模拟的EEPROM中存储的数据。相应的,该目标存储空间也可以称为EEPROM的影子(shadow)RAM。该EEPROM中每个存储区域的容量可以是基于所需存储的数据的最大容量确定,并预先存储至EEPROM模拟器100中的。如EEPROM中每个存储区域的容量可以等于该最大容量。所能存储的数据的容量是指:该数据所占用的存储区域的大小。例如,若该数据的最大容量为2B,则该EEPROM中每个存储区域的容量为2B。相应的,目标存储空间中每个存储区域的容量也为2B。
K个存储单元的容量之和可以小于FLASH300的容量。每个存储单元也可以包括多个容量相等的存储区域,每个存储区域的容量可以是预先存储的。由于存储单元中的存储区域不仅需要存储数据,还需要存储数据的地址,因此每个存储单元中的存储区域的容量需要大于EEPROM中的每个存储区域的容量,即大于目标存储空间中每个存储区域的容量。如,每个存储单元中的任一存储区域的容量,可以等于EEPROM中的每个存储区域的容量的2倍。示例的,假设EEPROM中的每个存储区域的容量为2B,则每个存储单元中的存储区域的容量可以为4B。
在本申请实施例中,EEPROM模拟器100取出n B的目标存储空间后,即可将该目标存储空间中多个存储区域中每个存储区域的RAM地址,以及该存储区域对应的EEPROM中的存储区域的EEPROM地址,对应记录在目标地址映射关系中。
其中,目标存储空间中每个存储区域的地址基于目标存储空间的地址范围以及该存储区域的容量确定。由于该地址范围的结束地址为RAM200的结束地址,即EEPROM模拟器100可以从RAM200的存储空间的末尾开始,取出容量为nB的部分存储空间作为目标存储空间,因此目标存储空间的开始地址可以基于该结束地址和容量nB确定。
请继续参见图2,该EEPROM模拟器100可以包括:主控组件101、RAM控制组件102和FLASH控制组件103。该主控组件101分别可以与处理器400、RAM控制组件102和FLASH控制组件103连接。该RAM控制组件102还可以与RAM200连接,该FLASH控制组件103还可以与FLASH300连接。
该主控组件101可以用于在芯片初始化后,通过RAM控制组件102和FLASH控制组件103,将FLASH300的第一存储单元中存储的第一数据写入RAM200的第一存储区域;以及在接收到待存储于EEPROM的第二数据后,通过RAM控制组件102将该第二数据写入RAM200的第二存储区域,并通过FLASH控制组件103,将第二数据和第二数据的目标地址写入FLASH300的第二存储单元。
可以理解的是,该主控组件101、RAM控制组件102和FLASH控制组件103可以独立设置,或者可以集成在一起。或者,RAM控制组件102和FLASH控制组件103可以集成在一起。
如图3所示,该主控组件101可以包括:配置寄存器1011和主控单元1012。该配置寄存器1011可以与处理器400和主控单元1012连接。该主控单元1012可以分别与RAM控制组件102和FLASH控制组件103连接。该处理器400可以用于:将第二数据写入配置寄存器1011中。例如,处理器400可以将第二数据,以及第二数据的第二EEPROM地址均写入配置寄存器1011中。
该主控单元1012可以用于:从配置寄存器1011中读取的第二数据,如读取第二数据和第二EEPROM地址。然后,该主控单元1012可以用于:通过RAM控制组件102将第二数据写入RAM200的第二存储区域,以及通过FLASH控制组件103将第二数据和第二数据的目标地址写入FLASH300的第二存储单元。
并且,主控单元1012还可以用于:在芯片初始化后,通过RAM控制组件102和FLASH控制组件103,将FLASH300的第一存储单元中存储的第一数据写入RAM200的第一存储区域。
在本申请实施例中,该主控组件101可以用于在芯片初始化后,向FLASH控制组件103发送读取信号,并向RAM控制组件102发送第一写入信号,以及在接收到第二数据后,向FLASH控制组件103发送第二写入信号,并向RAM控制组件102发送第三写入信号。其中,该第二写入信号包括第二数据和第二数据的目标地址。第三写入信号包括第二数据。
该FLASH控制组件103可以用于响应于读取信号,控制FLASH300将第一存储单元中存储的第一数据传输至RAM控制组件102;以及响应于第二写入信号,将第二数据和第二数据的目标地址写入第二存储单元。例如,该FLASH控制组件103响应于读取信号,可以向FLASH300发送读控制信号,该读控制信号包括第一存储单元的标识。该FLASH300接收到该读控制信号后,可以将第一存储单元中存储的第一数据和第一数据的目标地址,传输至RAM控制组件102。并且,FLASH控制组件103响应于第二写入信号,可以向FLASH300发送写控制信号,第二数据,以及第二数据的目标地址。该FLASH300接收到该写控制信号后,可以将第二数据和第二数据的目标地址写入第二存储单元。
该RAM控制组件102可以用于响应于第一写入信号,将接收到的第一数据写入RAM200的第一存储区域;以及响应于第三写入信号,将第二数据写入RAM200的第二存储区域。例如,RAM控制组件102可以基于接收到的第一数据的目标地址,确定第一存储区域的RAM地址。然后,RAM控制组件102可以向RAM200发送该RAM地址、写控制信号和第一数据。RAM200接收到该写控制信号后,即可将第一数据写入该RAM地址指示的第一存储区域。
可以理解的是,若目标地址为EEPROM地址,则RAM控制组件102可以基于目标地址映射关系,确定该EEPROM地址对应的RAM地址,继而将该第一数据写入该RAM地址指示的第一存储区域。其中,该目标地址映射关系可以是RAM控制组件102预先存储的,或者可以是主控组件101通过第二写入信号发送至RAM控制组件102的。
在本申请实施例中,主控组件101可以从多个存储单元中确定第一存储单元,并通过读取信号向FLASH控制组件发送第一存储单元的标识,以及可以确定第二存储单元,并通过第一写入信号向FLASH控制组件发送第二存储单元的标识。
或者,FLASH控制组件可以响应于读取信号确定第一存储单元,并可以响应于第一写入信号确定第二存储单元。其中,第一存储单元和第二存储单元中每个存储单元的标识可以用于唯一标识该存储单元。例如,该标识可以为该存储单元在多个存储单元中的排列次序,或者可以为该存储单元的开始地址,或者可以为该存储单元的结束地址。
在一种可选的实施例中,请继续参见图2,该芯片还可以包括总线矩阵500。该处理器400、主控组件101、RAM200和FLASH300均与该总线矩阵500连接。FLASH300可以通过总线矩阵500和主控组件101,将第一存储单元存储的第一数据和第一数据的目标地址传输至该RAM控制组件102。如,FLASH300可以在接收到FLASH控制组件103发送的读控制信号后,将第一数据和第一数据的目标地址传输至总线矩阵500。然后,主控组件101可以从总线矩阵500中读取第一数据和第一数据的目标地址,并将读取到的第一数据和第一数据的目标地址传输至RAM控制组件102,以供RAM控制组件102基于第一数据的目标地址将第一数据写入RAM200的第一存储区域。即主控组件101可以控制FLASH控制组件103和RAM控制组件102,通过总线矩阵500将第一存储单元中存储的第一数据写入RAM200的第一存储区域。
在另一种可选的实施例中,参见图3,EEPROM模拟器100还包括:缓冲组件104。该缓冲组件104可以分别与RAM控制组件102和FLASH控制组件103连接。该主控组件101可以用于在初始化后,控制FLASH控制组件103将第一数据读取至缓冲组件104,并控制RAM控制组件102从缓冲组件104中读取第一数据,以将第一数据写入RAM200中。即主控组件101可以控制FLASH控制组件103和RAM控制组件102,通过缓冲组件104将第一存储单元中存储的第一数据写入RAM200中。
可以理解的是,FLASH控制组件103将第一数据读取至缓冲组件104的过程可以包括:FLASH控制组件103控制FLASH300将第一数据反馈给FLASH控制组件103。之后,FLASH控制组件103可以将第一数据传输至缓冲组件104。
可选的,在芯片未损坏的情况下,EEPROM模拟器在向存储单元中写入数据的过程中,芯片可能会意外断电,导致数据未写入成功。此时,若EEPROM模拟器100上电后直接将该数据写入RAM200中,则会导致读取设备读取出的数据有误。基于此,第一存储单元还可以存储有第一数据对应的校验值。该校验值是EEPROM模拟器100在芯片在初始化之前,采用校验算法对第一数据进行处理得到的,并与第一数据一起写入第一存储单元的。可选的,该校验算法可以为下述算法中的一种:奇偶校验算法,和校验算法,以及冗余校验算法。
此时,参见图3,该EEPROM模拟器100还可以包括:校验组件105。该校验组件105可以分别与主控组件101和缓冲组件104连接。
该主控组件101可以用于在初始化后,通过FLASH控制组件103将第一数据和校验值读取至缓冲组件104。该校验组件105可以用于基于该缓冲组件104中存储的校验值,对缓冲组件104中存储的第一数据进行校验。如该校验组件105可以在主控组件101的控制作用下,从缓冲组件104中读取第一数据和该校验值,并基于该校验值对该第一数据进行校验。
该主控组件101可以用于在校验组件105对第一数据校验成功后,通过RAM控制组件102从缓冲组件104中读取第一数据,以将第一数据写入RAM200的第一存储区域。如此,可以确保写入至RAM200中的数据的准确性较高,从而可以确保读取设备读取到的数据较为准确。
在本申请实施例中,若校验算法为奇偶校验算法,则校验组件105可以检测辅助数值中的1的个数是否为奇数(或偶数),来实现对第一数据的校验。其中,辅助数值包括读取出的校验值和第一数据。若校验算法为和校验算法或冗余校验算法,则校验组件105可以在读取出第一数据和该校验值后,可以采用该校验算法对该第一数据进行处理,并通过检测处理得到的结果与校验值的异同,来实现对第一数据的校验。
可选的,校验值可以是EEPROM模拟器100中主控组件101在将第一数据和第一数据的目标地址写入第一存储单元之前,采用校验算法对第一数据和该目标地址进行处理得到的。相应的,校验组件105可以基于校验值对第一数据和该目标地址进行校验。
可选的,主控组件101可以在校验功能启用后,控制校验组件105对缓冲组件104中存储的第一数据进行校验。如此,可以提高芯片的使用灵活性。
在本申请实施例中,一个目标地址(如RAM地址)所指示的存储区域可以被多次写入不同的数据。EEPROM模拟器100每次向该目标地址中写入一个数据,均可以将该数据和该数据的目标地址写入FLASH300的存储单元中,因此每个存储有数据的存储单元(如第一存储单元)中可能会存储有目标地址相同的多个数据。该多个数据位于该存储单元的多个不同的存储区域内。该多个不同的存储区域的FLASH地址不同。
多个FLASH地址中,最高的FLASH地址指示的存储区域中的数据,为写入该目标地址所指示的存储区域中的最新数据。该种情况下,若存储单元中目标地址相同的多个数据均通过验证,则EEPROM模拟器100写入RAM200中该目标地址指示的存储区域的数据为该最新数据。若多个数据中某一数据未通过验证,则EEPROM模拟器100可以向处理器400输出用于指示数据未通过验证的提示信息。处理器400接收到该提示信息后,可以展示该提示信息,以供用户查看。然后,若处理器400根据用户的操作,确定可以跳过该数据,则可以指示EEPROM模拟器100读取该存储单元的下一个存储区域中存储的数据、该数据的目标地址和校验值。若处理器400根据用户的操作,确定无法跳过该数据,则可以指示EEPROM模拟器100停止工作。
基于此,主控组件101还可以用于:在校验组件105基于校验值对第一数据校验失败后,向处理器400输出提示信息。且,主控组件101还可以用于:若接收到处理器400发送的用于指示继续读取的指令后,则保持第一存储区域中的数据为前一次写入的数据,并读取当前所读取的存储单元中下一个存储区域中存储的数据、该数据的目标地址和校验值;若接收到处理器400发送的指示停止工作的指令,则停止工作。
由此可见,在芯片未损坏的情况下,本申请实施例提供的芯片,对第一数据校验失败后,可以跳过该第一数据,并保持前一次写入至第一存储区域中的数据不变。即本申请实施例提供的芯片具有数据自动恢复的功能。如此,可以确保数据的安全性较高。
在本申请实施例中,EEPROM模拟器100(如主控组件101)可以用于:在将第二数据写入RAM200后,获取多个存储单元中有效的第三存储单元,并检测该第三存储单元的剩余容量是否小于容量阈值。若EEPROM模拟器100确定该第三存储单元的剩余容量大于等于容量阈值,则可以将第三存储单元确定为第二存储单元,并将第二数据和第二数据的目标地址写入第二存储单元。其中,该容量阈值可以是EEPROM模拟器100预先存储的。且该容量阈值可以基于第二数据和第二数据的目标地址所占用的存储区域的容量确定。例如,该容量阈值可以为4B。
若EEPROM模拟器100确定第三存储单元的剩余容量小于容量阈值,则可以将按序排列的多个存储单元中的第三存储单元的下一个存储单元,确定为第二存储单元,并将RAM200的目标存储空间中存储的多个数据与多个数据中每个数据的目标地址,写入第二存储单元中。该多个数据包括第二数据。然后,该EEPROM模拟器100还可以用于:将第二存储单元作为多个存储单元中有效的存储单元。
可以理解的是,EEPROM模拟器100在将数据写入第二存储单元之前可以先对该第二存储单元进行擦除处理,然后再将该多个数据与多个数据中每个数据的目标地址写入第二存储单元中。
在本申请实施例中,EEPROM模拟器100可以用于更新第二存储单元的标志值,以使第二存储单元作为多个存储单元中有效的存储单元。其中,第二存储单元的更新后的标志值指示的有效状态为有效。
由此可知,EEPROM模拟器100在当前有效的第三存储单元写满时,能够先将RAM200中的所有数据写入下一个存储单元(即第二存储单元),再更新第二存储单元的标志值,以使第二存储单元作为有效的存储单元。如此,可以确保在向该下一个存储单元写入数据的过程中,即使嵌入式微控制器意外断电,在芯片初始化后,EEPROM模拟器100也能够从初始化后有效的存储单元中读取到断电前存储于RAM中的较为完整的数据。
由于EEPROM模拟器100能够在将RAM200中的所有数据写入下一个存储单元(即第二存储单元)后,才更新第二存储单元的标志值,因此若在向该第二存储单元写入数据的过程中,芯片意外断电,则在芯片初始化后有效的存储单元依然为第三存储单元,而该第三存储单元记录有断电前存储于RAM中的较为完整的数据,因此在芯片初始化后EEPROM模拟器100能够读取到断电前存储于RAM中的较为完整的数据。
在本申请实施例中,若每个存储单元的标志值为第一数值或第二数值,则EEPROM模拟器100可以将第二存储单元的标志值从第二数值更新为第一数值,并可以将第三存储单元的标志值从第一数值更新为第二数值。
若存储有数据的存储单元的标志值递增,则EEPROM模拟器100可以将第二存储单元的标志值更新为第三存储单元的标志值与目标数值之和。若存储有数值的存储单元的标志值递减,则EEPROM模拟器100可以将第二存储单元的标志值更新为第三存储单元的标志值与目标数值之差。
其中,该目标数值可以是EEPROM模拟器100预先存储的正整数,例如,该目标数值可以为1。
在本申请实施例中,EEPROM模拟器100从多个存储单元中确定有效的第三存储单元的过程,可以参考在初始化后从多个存储单元中确定第一存储单元的过程。例如,对于存储有数据的存储单元的标志值递增或递减的场景,EEPROM模拟器100可以用于:将多个存储单元中标志值为极值的存储单元确定为第三存储单元。
也即是,在存储有数据的存储单元的标志值递增的场景下,即第二存储单元的更新后的标志值为第三存储单元的标志值与目标数值之和的情况下,EEPROM模拟器100可以将多个存储单元中标志值最大的存储单元确定为第三存储单元。
在存储有数据的存储单元的标志值递增或递减的场景下,即在第二存储单元的更新后的标志值为第三存储单元的标志值与目标数值之差的情况下,EEPROM模拟器100可以将多个存储单元中标志值最小的存储单元确定为第三存储单元。
在本申请实施例中,该主控组件101可以用于获取目标FLASH地址,并通过FLASH控制组件103将第二数据和第二数据的目标地址,写入第二存储单元中目标FLASH地址所指示的存储区域。
由于EEPROM模拟器100每获取一个数据,均可以将该数据写入有效的存储单元中,未存储数据且地址最低的存储区域内,且EEPROM模拟器100每向一个存储区域写入数据后,均可以记录该存储区域的FLASH地址,因此EEPROM模拟器100可以将最近一次记录的第二存储单元中的一个FLASH地址的下一个FLASH地址,确定为目标FLASH地址。
可选的,对于多个存储单元中每个存储单元,EEPROM模拟器100(如主控组件101)可以按照地址从低到高的顺序,记录该存储单元包括的各个存储区域的FLASH地址。此时,EEPROM模拟器100可以基于第二存储单元中按序排列的多个存储区域的FLASH地址,确定该下一个FLASH地址。
或者,对于多个存储单元中每个存储单元,EEPROM模拟器100可以记录该存储单元的开始地址,结束地址,以及该存储单元中每个存储区域的容量。然后,EEPROM模拟器100可以根据第二存储单元的开始地址,结束地址,该容量,以及最近一次记录的第二存储单元中的一个FLASH地址,确定该下一个FLASH地址。
可以理解的是,此时若最近一次记录的第二存储单元中的一个FLASH地址为空,则该下一个FLASH地址为该第二存储单元的第一个存储单元的FLASH地址。
又或者,多个存储单元的地址连续,且多个存储单元按地址从低到高的顺序排列。EEPROM模拟器100记录多个存储单元所组成的存储空间的开始地址,结束地址,以及该存储空间中每个存储区域的容量。然后,EEPROM模拟器100可以根据该开始地址,结束地址,该容量,以及最近一次记录的第二存储单元中的一个FLASH地址,确定该下一个FLASH地址。
可以理解的是,此时若最近一次记录的第二存储单元中的一个FLASH地址为空,则该下一个FLASH地址为该存储空间的开始地址。
可以理解的是,该多个存储单元的地址可以连接,且多个存储单元可以按序排列,例如按照地址从低到高的顺序排列。该多个存储单元中最后一个存储单元的结束地址可以为该FLASH的结束地址。且每个存储单元所包括的存储区域的总数,可以大于目标存储空间中存储区域的总数。其中,目标存储空间中存储区域的总数等于目标存储空间的容量与目标存储空间中一个存储区域的容量的商值。每个存储单元中存储区域的总数等于该存储单元的容量与该存储单元中一个存储区域的容量的商值。
在本申请实施例中,EEPROM模拟器100在将第二数据和第二数据的目标地址写入FLASH300的过程中,可能会因为芯片本身有损坏或者芯片受到电磁干扰导致位翻转,从而导致写入至FLASH300中的数据和地址,与期望值(即第二数据和第二数据的目标地址)有所差异。
基于此,请继续参见图3,该EEPROM模拟器100还可以包括:比对组件106。该比对组件106可以用于在第二数据和第二数据的目标地址写入目标FLASH地址指示的存储区域后,读取目标FLASH地址指示的存储区中存储的第三数据和第三数据的目标地址,并在确定第二数据与第二数据不同,和/或,第二数据的目标地址与第三数据的目标地址不同的情况下,发出告警信号。如此,可以确保写入至FLASH300中的数据的准确性较高。
可以理解的是,该告警信号可以为第一中断信号。该芯片还可以包括:中断控制器。该中断控制器可以与该比对组件106和处理器400连接,该中断控制器在接收到该第一中断信号后,可以确定写入数据错误,继而可以向处理器400发送第一通知信号。处理器400接收到该第一通知信号后,可以执行该第一中断信号对应的中断处理程序,以实现对该第一中断信号的处理。该中断处理程序是处理器400预先存储的。
例如,处理器400执行该中断处理程序后,可以指示EEPROM模拟器100重复执行写入第二数据和第二数据的目标地址的操作,直至写入成功或者连续写入失败的次数大于次数阈值。其中,该次数阈值可以是处理器400预先存储的。该写入成功是指:比对组件106确定写入目标FLASH地址指示的存储区域的数据为第二数据,地址为第二数据的目标地址。若处理器400确定连续写入失败的次数大于次数阈值,则可以确定是芯片损坏(如内部电路损坏),继而可以发出提示消息,以提示用户送检维修。
如图3所示,该比对组件106可以与主控组件101和缓冲组件104连接。该主控组件101还可以用于:向比对组件106发送第二数据和第二数据的目标地址,且可以在第二数据和第二数据的目标地址写入目标FLASH地址指示的存储区域后,控制FLASH控制组件103将该存储区域中存储的第三数据和第三数据的目标地址,读取至缓冲组件104中。该缓冲组件104存储的该第三数据和第三数据的目标地址用于供比对组件106读取,以与接收到的第二数据和第二数据的目标地址进行比对。
可选的,本申请实施例提供的校验组件105和比对组件106可以独立设置,也可以集成设置。
可选的,EEPROM模拟器100在将第二数据和第二数据的目标地址写入第二存储单元之前,还可以采用校验算法处理第二数据和该目标地址,以得到第二数据的校验值。然后,EEPROM模拟器100可以将第二数据、该目标地址和该校验值,一起写入第二存储单元。如此,可以避免在EEPROM模拟器100将该第二数据、该目标地址和该校验值写入第二存储单元中的过程中,因芯片意外断电,使得EEPROM模拟器100写入的数据有误,而导致后续在芯片重新上电后,EEPROM模拟器100依然将有误的数据写入RAM200中的现象,从而可以确保在芯片初始化后,EEPROM模拟器100入RAM200中的数据的准确性较高。
可选的,EEPROM模拟器100还可以用于:在芯片初始化后,若检测到EEPROM模拟功能启用,则可以将多个存储单元中第一存储单元存储的第一数据写入RAM200中,并可以将接收到的第二数据和第二数据的目标地址写入第二存储单元中。如此,提高了芯片的使用灵活性。
在本申请实施例中,配置寄存器1011包括启动标志位,该启动标志位的数值可以用于指示EEPROM模拟功能是否启用。如,该数值可以为第三数值或第四数值,该第三数值用于指示启用EEPROM模拟功能,该第四数值用于指示禁用EEPROM模拟功能。该第三数值与第四数值不同。如,第三数值可以为1,第四数值可以为0。
主控单元1012可以读取该启动标志位的数值,以确定该EEPROM模拟功能是否启用。例如,该主控单元1012读取到的数值为第三数值,则可以确定EEPROM模拟功能启用。若该主控单元1012读取到的数值为第四数值,则可以确定EEPROM模拟功能未启用。
可以理解的是,处理器400可以根据用户执行的操作,更新配置寄存器1011中的启动标志位的数值。该操作取决于用户启用芯片的EEPROM模拟功能的意图或禁用该EEPROM模拟功能的意图。
还可以理解的是,处理器在EEPROM模拟功能启用后,若FLASH的K个存储单元中任一存储单元均未写入数据,即处理器还未开始模拟实现EEPROM的功能,则在接收到待存储于EEPROM的数据后,处理器可以先将该数据和数据的目标地址写入多个存储单元中的第一个存储单元,再将该第一个存储单元确定为有效的存储单元。
以目标存储空间中的存储区域的容量为2B,存储单元中的存储区域的容量为4B,所需模拟的EEPROM的容量为nB,对本申请实施例提供的目标存储空间和每个存储单元进行示例性说明:
由于所需模拟的EEPROM的容量为nB,目标存储空间中的存储区域的容量为2B,因此目标存储空间中的存储区域的总数为n/2。即EEPROM模拟器100从RAM200中获取目标存储空间后,可以将该目标存储空间划分为n/2个存储区域。其中,所需模拟的EEPROM的容量可以是处理器400发送至EEPROM模拟器100的。
假设每个存储单元的存储区域的总数比目标存储空间的存储区域的总数多m,那么参见图4,每个存储单元的存储区域(也可以称为存储行)的总数即为n/2+m。故而,每个存储单元的容量可以为(n/2+m)×4 B,即EEPROM模拟器100总共从FLASH中取出容量为K×(n/2+m)×4 B的存储空间,用来模拟EEPROM。其中,m可以为大于等于1的整数。
可以理解的是,由于FLASH的最小擦除单位为页(Page),因此需要保证每个存储单元的容量为一页容量的整数倍。例如,假设每页的容量为p B,则需要保证(n/2+m)×4是p的整数倍。
由于每个存储单元的存储区域的总数比目标存储空间的存储区域的总数多m,因此每个存储单元的容量大于EEPROM的容量,故而可以避免EEPROM写满后,修改EEPROM中一个数据都需要切换至下一个存储单元的问题。
可以理解的是,由于EEPROM模拟器100每获取一个数据,即可将该数据写入FLASH300的一个存储单元中,因此即便是向同一EEPROM地址中写入多个数据,该多个数据实际已均匀分布到FLASH300的不同页中。如此,避免多次擦写FLASH300的同一页导致该页先损坏,从而可以实现对多个存储单元的均匀擦写,继而可以确保存储单元的使用寿命较长。
可选的,K个存储单元的个数可以大于等于3,即多个存储单元的个数可以为至少三个。如此,可以进一步确保各个存储单元的使用寿命较长。
EEPROM模拟器100在向FLASH300中写数据时,是将一个存储单元写满后,再切换至下一个存储单元,即多个存储单元轮流存储数据。因此,在总的擦写次数不变的情况下,多个存储单元的个数越多,每个存储单元的擦写次数越少。相应的,每个存储单元的寿命就越长。
参见图4和图5,每个存储单元的第一个存储行可以用于存储该存储单元的标志值,标志值为无符号数据。第二个存储行可以用于存储该标志值的验证值。接下来的(n/2+m)-2个存储行可以存储待存储于EEPROM的数据、该数据的目标地址和该数据的校验值。
如(n/2+m)-2个存储行中的每个存储行的低16位可以保存2B的数据。每个存储行的高16位可以保存该数据的目标地址和校验值。可以理解的是,由于EEPROM的容量通常为4千字节(Kilobyte,KB),因此12位的存储区域便足以存储EEPROM地址,(n/2+m)-2个存储行中的每个存储行还剩余4位的存储区域。故而,该每个存储行的高4位可以存储该校验值。该每个存储行的高16位中除该高4位外剩余的12位可以用来存储该数据的EEPROM地址。
示例的,从图4和图5可以看出,第一个存储单元中存储有数据,该第一个存储单元的标志值为0xFFFFFFFE。假设存储单元的验证值为对该存储单元的标志值执行按位取反的操作后得到的,则如图4和图5所示,该第一个存储单元的验证值可以为0x00000001。第二个存储单元至第K个存储单元均未存储有数据,因此该第二个存储单元至第K个存储单元中的每个存储单元的标志值与验证值均为0xFFFFFFFF。
假设按序排列的多个存储单元中任一存储单元均为写入数据,目标地址为EEPROM地址,默认值为0xFFFFFFFF,目标数值为1,有效的存储单元为标志值最小的存储单元,且先不考虑数据的校验值,则如图5所示,EEPROM模拟器100将接收到的数据写入RAM200和FLASH300的过程可以如下所述:
首先,EEPROM模拟器100接收到处理器400发送的EEPROM地址为0x0100的数据0x1234后,参见图5,可以先将该数据0x1234,写入RAM200中与该地址0x0100对应的存储区域。然后,EEPROM模拟器100可以擦除多个存储单元中的第一个存储单元,并将该地址为0x0100和数据0x1234写入第一个存储单元中的第三个存储行中。之后,EEPROM模拟器100可以将第一个存储单元的标志值更新为0xFFFFFFFE,并可以将第一个存储单元的验证值更新为0x000000001。此时,该第一个存储单元即为有效的存储单元(即第二存储单元)。其中,从图5可以看出,擦除后的第一个存储单元中每个存储行的高16位和低16位所存储的数值均为0xFFFF。0xFFFF表示未写入数据。
其次,EEPROM模拟器100接收到EEPROM地址为0x0200的数据0x5678。EEPROM模拟器100将数据0x5678,写入RAM200中与该地址0x0200对应的存储区域。之后,EEPROM模拟器100将地址0x0200和数据0x5678一起写入该第一个存储单元的第四个存储行。
之后,EEPROM模拟器100接收到EEPROM地址为0x0100的数据。EEPROM模拟器100可以将数据0xAB,写入RAM200中与该地址0x0100对应的存储区域。此时,由于该数据0xAB占用8位的存储区域,因此EEPROM模拟器100可以将该数据0xAB更新该存储区域的低8位存储单元中,并保持该存储区域的高8位数据不变。即更新后的数据为0x12AB。之后,EEPROM模拟器100可以将地址0x0100和数据0x12AB写入到第一个存储单元的第三个数据行。
如此不断的写入数据,直至该第一个存储单元写满,即第一个存储单元的所有存储行均存储有数据。然后,EEPROM模拟器100下一次接收到数据和该数据的EEPROM地址后,可以先基于该EEPROM地址将该数据写入RAM200中。之后,EEPROM模拟器100可以切换到下一个存储单元(即第二个存储单元)。此时EEPROM模拟器100可以先擦除该下一个存储单元,并将RAM200的目标存储空间中值不为0xFFFF的数据,以及该数据的目标地址一起保存到该下一个存储单元的存储行中。最后,EEPROM模拟器再更新该下一个存储单元的标志值和验证值。当多个存储单元中的最后一个存储单元写满时,EEPROM模拟器100可以自动切换到第一个存储单元。
以存储有数据的存储单元的标志值递减,存储单元的默认值为0xFFFFFFFF,存储单元的验证值为对该标志值执行按位取反操作后得到的为例,对EEPROM模拟器100从多个存储单元中确定第一存储单元的过程进行示例性的说明。参见图6,该过程可以包括:
步骤A1、读取存储单元的标志值和验证值。
EEPROM模拟器100可以在启动后,可以读取多个存储单元中每个存储单元的标志值和验证值。如,EEPROM模拟器100可以按照多个存储单元的排列顺序,依次读取多个存储单元中每个存储单元的标志值和验证值。
步骤A2、检测该存储单元的标志值与验证值是否均为0xFFFFFFFF。
若EEPROM模拟器100确定该存储单元的标志值与验证码均不是0xFFFFFFFF,则可以确定该存储单元中存储有数据,继而可以执行步骤A3。若EEPROM模拟器100确定该存储单元的标志值与验证码均为0xFFFFFFFF,则可以确定该存储单元中未存储有数据,继而可以执行步骤A8。
步骤A3、检测读取到的标志值与验证值的异或运算的结果是否为0xFFFFFFFF。
若EEPROM模拟器100确定该结果不是0xFFFFFFFF,则可以确定该标志值有误,即未通过验证,继而可以执行步骤A4。若EEPROM模拟器100确定该结果为0xFFFFFFFF,则可以确定该存储单元中标志值准确,即通过验证,继而可以执行步骤A5。
由此可见,在本申请实施例中,EEPROM模拟器100还可以根据验证值对存储单元的标志值进行验证。如此,可以确保确定的第一存储单元的准确性较高,从而可以确保初始化后写入RAM200的数据的准确性较高。
步骤A4、输出告警信息,并检测是否接收到用于指示继续检测的指令。
若EEPROM模拟器100确定该结果不是0xFFFFFFFF,则可以确定该标志值有误,继而可以向处理器400输出告警信息。
其中,该告警信息可以为第二中断信号。芯片的中断控制器在接收到该第二中断信号后,可以确定存储单元的标志值有误,继而可以向处理器400发送第二通知信号。处理器400接收到该第二通知信号后,可以执行该第二中断信号对应的中断处理程序,以实现对该第二中断信号的处理,并可以通过指令的方式向EEPROM模拟器100发送处理结果。该中断处理程序是处理器400预先存储的。
其中,该处理结果可以为:指示EEPROM模拟器100继续检测,或者指示EEPROM模拟器100停止检测。
若EEPROM模拟器100接收到用于指示继续检测的指令,则可以执行步骤A8。若EEPROM模拟器100接收到用于指示停止检测的指令,则可以结束操作。
步骤A5、检测标志值是否小于第一参考值。
EEPROM模拟器100确定该存储单元的标志值通过验证后,可以检测该标志值是否小于第一参考值。若EEPROM模拟器100确定该标志值小于第一参考值,则可以执行步骤A6。若EEPROM模拟器100确定该标志值大于等于第一参考值,则可以执行步骤A7。其中,该第一参考值为在读取到该存储单元的标志值之前,所确定的最小的标志值。
步骤A6、将第一参考值更新为该标志值。
若EEPROM模拟器100确定标志值小于第一参考值,则可以将该第一参考值更新为该标志值,即将该标志值作为第一参考值。
步骤A7、保持第一参考值不变。
若EEPROM模拟器100确定标志值大于等于参考值,则可以保持第一参考值不变。
根据上述描述可知,第一参考值是一个变量。可以理解的是,对于按序排列的多个存储单元中第一个通过验证的存储单元,EEPROM模拟器100可以将该存储单元的标志值直接确定为第一参考值,并结束操作。之后,EEPROM模拟器100可以根据后续读取到的标志值,对该第一参考值进行更新。
步骤A8、检测该存储单元是否为多个存储单元中的最后一个存储单元。
在本申请实施例中,EEPROM模拟器100在确定存储单元中未存储有数据后,或者在接收到用于指示继续检测的指令后,又或者在执行步骤A6或A7后,可以执行步骤A8。
若EEPROM模拟器100确定该存储单元并非是最后一个存储单元,则可以继续执行步骤A1。若EEPROM模拟器100确定该存储单元是最后一个存储单元,则可以结束操作,并将当前的参考值所属的存储单元确定为第一存储单元。
以存储有数据的存储单元的标志值递增,存储单元的默认值为0x00000000,存储单元的验证值为对该标志值执行按位取反操作后得到的为例,对EEPROM模拟器100从多个存储单元中确定第一存储单元的过程进行示例性的说明。参见图7,该过程可以包括:
步骤B1、读取存储单元的标志值和验证值。
步骤B2、检测该存储单元的标志值与验证值是否均为0xFFFFFFFF。
步骤B3、检测读取到的标志值与验证值的异或运算的结果是否为0xFFFFFFFF。
步骤B4、输出告警信息,并检测是否接收到用于指示继续检测的指令。
可以理解的是,步骤B1至步骤B4的实现过程,可以参考步骤A1至步骤A4的实现过程,本申请实施例在此不再赘述。
步骤B5、检测标志值是否大于第二参考值。
若EEPROM模拟器100确定标志值大于第二参考值,则可以执行步骤B6。若EEPROM模拟器100确定该标志值小于等于第二参考值,则可以执行步骤B7。其中,该第二参考值为在读取到该存储单元的标志值之前,所确定的最大的标志值。
步骤B6、将第二参考值更新为该标志值。
若EEPROM模拟器100确定标志值大于第二参考值,则可以将第二参考值更新为该标志值。
步骤B7、保持第二参考值不变。
若EEPROM模拟器100确定标志值小于等于第二参考值,则可以保持第二参考值不变。
步骤B8、检测该存储单元是否为多个存储单元中的最后一个存储单元。
其中,步骤B8的实现过程可以参考步骤A8的实现过程,本申请实施例在此不再赘述。
参见图8,对EEPROM模拟器100在初始化后,将第一存储单元中存储的第一数据写入RAM200中的过程进行示例性的说明:
步骤S1、检测EEPROM模拟功能是否启用。
芯片在初始化后,EEPROM模拟器100可以检测EEPROM模拟功能是否启用。若EEPROM模拟器100检测到EEPROM模拟功能未启用,则可以结束操作,无需执行后续流程。若EEPROM模拟器100检测到EEPROM模拟功能启用,则可以执行步骤S2。
步骤S2、将RAM的目标存储空间中各个存储区域所存储的数据均写为初始值。
EEPROM模拟器100检测到EEPROM模拟功能启用后,可以擦除该目标存储空间,以将该目标存储空间的各个存储区域的均初始化为初始值。该初始值可以为0xFFFF。
步骤S3、获取有效的第一存储单元。
EEPROM模拟器100可以采用上述步骤A1至步骤A8,或者采用上述步骤B1至步骤B8,从多个存储单元中获取第一存储单元。
步骤S4、读取第一存储单元中存储行存储的第一数据、第一数据的目标地址和校验值。
EEPROM模拟器100确定第一存储单元后,即可依次读取该第一存储单元的多个存储行中,每个存储行所存储的第一数据、第一数据的目标地址和校验值。
步骤S5、检测校验功能是否启用。
若EEPROM模拟器100确定校验功能启用,则可以执行步骤S6。若EEPROM模拟器100确定校验功能未启用,则可以执行步骤S7。
可以理解的是,配置寄存器1011还可以包括:校验标志位,该校验标志位的数值可以为第五数值或第六数值。该第五数值可以用于指示启用校验功能,该第六数值可以用于指示禁用校验功能。第五数值与第六数值不同,例如第五数值可以为1,第六数值可以为0。EEPROM模拟器100读取校验标志位的数值,并基于读取到的数值判断校验功能是否启用。
其中,该校验标志位的数值可以是处理器400基于用户的执行操作更新。
步骤S6、基于校验值对第一数据和第一数据的目标地址进行校验,并检测是否校验成功。
EEPROM模拟器100在确定校验功能启用后,可以基于校验值对第一数据和第一数据的目标地址进行校验,并确定是否校验成功。例如,EEPROM模拟器100可以通过校验组件105对第一数据和第一数据的目标地址进行校验。
若EEPROM模拟器100对第一数据和第一数据的目标地址校验成功,则可以执行步骤S7。若EEPROM模拟器100对第一数据和第一数据的目标地址校验失败,则可以执行步骤S8。
步骤S7、将第一数据写入RAM的第一存储区域。
若EEPROM模拟器100基于校验值对第一数据和第一数据的目标地址校验成功,则可以将第一数据写入RAM的第一存储区域。其中,第一存储区域的地址基于第一数据的目标地址确定。
步骤S8、输出提示信息,并检测是否接收到用于指示继续读取的指令。
若EEPROM模拟器100基于校验值对第一数据和第一数据的目标地址校验失败,则可以向处理器400输出提示信息,以供处理器400展示。处理器400展示该提示信息后,可以根据用户的操作,向EEPROM模拟器100发送用于指示继续读取的指令,或停止工作指令。其中,该提示信息可以包括:声音消息和/或文本消息。
之后,若EEPROM模拟器100接收到处理器400发送的用于指示继续读取的指令,则可以跳过本次未通过验证的数据,保持前一次写入至第一存储区域的数据不变,并继续执行步骤S4。若EEPROM模拟器100接收到处理器400发送的指示停止工作的指令,则可以结束操作。
步骤S9、检测该存储行是否第一存储单元的最后一个存储行。
若EEPROM模拟器100确定该存储行为最后一个存储行,则可以确定已经将第一存储单元中的数据均写入RAM200中,继而可以结束操作。若EEPROM模拟器100确定该存储行并非是最后一个存储行,则可以继续执行步骤S4,以读取下一个存储行存储的第一数据。
综上所述,本申请实施例提供了一种芯片,芯片的EEPROM模拟器能够将接收到的数据写入FLASH中有效的存储单元的第二存储区域,由于FLASH具有非易失性,因此能够确保在芯片掉电后该数据不会丢失。由此可见,通过将数据存储在FLASH中可以达到存储在EEPROM中的效果。而在芯片初始化后,EEPROM模拟器能够将初始化前有效的存储单元中存储的数据写入RAM的第一存储区域以供读取设备读取,由于RAM与EEPROM的读写方式相同,因此可以确保读取设备通过访问RAM达到访问EEPROM的效果。由此可见,通过EEPROM模拟器对芯片自身所具有的FLASH和RAM所执行的数据读写操作,即可模拟实现EEPROM的功能,即实现数据的即时读写和掉电保存。而无需额外新增EEPROM,因此有效降低了芯片的体积、硬件成本、硬件复杂度和功耗,且可以简化芯片的制造工艺。
并且,由于FLASH包括多个存储单元,因此可以确保各个存储单元的使用寿命较长。此外,由于目标存储空间的结束地址为RAM的存储空间的结束地址,因此可以避免模拟实现EEPROM的过程,导致芯片中运行的需要读写RAM的应用程序所需使用的地址发生变化,从而可以避免影响该应用程序的运行。
本申请实施例还提供了一种数据读写方法,该方法可以应用于芯片的EEPROM模拟器。该芯片还包括:处理器、随机存取存储器RAM和闪速存储器FLASH,该FLASH包括多个存储单元。例如图1所示的芯片。参见图9,该方法包括:
步骤301、在芯片初始化后,将多个存储单元中第一存储单元存储的第一数据写入RAM的第一存储区域,以供读取设备读取。
其中,第一存储单元为芯片初始化前多个存储单元中有效的存储单元。该第一数据的个数可以为一个或多个。
步骤302、在接收到待存储于EEPROM的第二数据后,将第二数据写入RAM的第二存储区域,并将第二数据和第二数据的目标地址写入多个存储单元中的第二存储单元。
其中,该第二数据可以为配置数据。且该第二数据可以是处理器发送的。
第二存储单元为芯片初始化后多个存储单元中有效的存储单元。该目标地址为第二数据在EEPROM中的EEPROM地址,或第二存储区域的地址。
该第一存储区域和该第二存储区域位于该RAM的目标存储空间内。该目标存储空间的容量小于RAM的存储空间的容量,且目标存储空间的结束地址为存储空间的结束地址。
在本申请实施例中,处理器还可以向EEPROM模拟器发送第二数据在EEPROM中的EEPROM地址。EEPROM模拟器可以基于该EEPROM地址,确定目标地址。
可选的,该EEPROM模拟器可以包括:RAM控制组件和FLASH控制组件。该EEPROM模拟器可以通过RAM控制组件和FLASH控制组件,将第一数据写入RAM的第一存储区域,通过RAM控制组件将第二数据写入RAM的第二存储区域,并通过FLASH控制组件将第二数据和第二数据的目标地址写入第二存储单元。
可选的,EEPROM模拟器还包括:缓冲组件。EEPROM模拟器将多个存储单元中第一存储单元存储的第一数据写入RAM的第一存储区域的过程可以包括:
EEPROM模拟器可以通过FLASH控制组件将第一数据读取至缓冲组件,然后通过RAM控制组件从缓冲组件中读取第一数据,并将第一数据写入RAM的第一存储区域。
可选的,第一存储单元还存储有第一数据对应的校验值。该校验值是采用校验算法对第一数据进行处理得到的。EEPROM模拟器可以通过FLASH控制组件将第一数据和校验值读取至缓冲组件。
可选的,EEPROM模拟器还包括:校验组件。该EEPROM模拟器通过RAM控制组件从缓冲组件中读取第一数据的过程可以包括:
EEPROM模拟器通过校验组件,基于缓冲组件中存储的校验值,对缓冲组件存储的第一数据进行校验。若EEPROM模拟器确定校验成功,则通过RAM控制组件从缓冲组件中读取第一数据。
可选的,EEPROM模拟器将第二数据和第二数据的目标地址写入多个存储单元中的第二存储单元的过程可以包括:EEPROM模拟器从第二存储单元中获取目标FLASH地址,继而将第二数据和第二数据的目标地址,写入目标FLASH地址所指示的存储区域。
可选的,EEPROM模拟器还包括:比对组件。在将第二数据和第二数据的目标地址,写入目标FLASH地址所指示的存储区域之后,比对组件可以读取目标FLASH地址所指示的存储区域中存储的第三数据和第三数据的目标地址。之后,若比对组件确定第二数据与第二数据不同,和/或,第二数据的目标地址与第三数据的目标地址不同,则可以发出告警信号。如此,可以确保写入目标FLASH地址所指示的存储区域的数据的准确性较高。
综上所述,本申请实施例提供了一种数据读写方法,EEPROM模拟器能够将接收到的数据写入FLASH中有效的存储单元的第二存储区域,由于FLASH具有非易失性,因此能够确保在芯片掉电后该数据不会丢失。由此可见,通过将数据存储在FLASH中可以达到存储在EEPROM中的效果。而在芯片初始化后,EEPROM模拟器能够将初始化前有效的存储单元中存储的数据写入RAM的第一存储区域以供读取设备读取,由于RAM与EEPROM的读写方式相同,因此可以确保读取设备通过访问RAM达到访问EEPROM的效果。由此可见,通过EEPROM模拟器对芯片自身所具有的FLASH和RAM所执行的数据读写操作,即可模拟实现EEPROM的功能,即实现数据的即时读写和掉电保存。而无需额外新增EEPROM,因此有效降低了芯片的体积、硬件成本、硬件复杂度和功耗,且可以简化芯片的制造工艺。
并且,由于FLASH包括多个存储单元,因此可以确保各个存储单元的使用寿命较长。此外,由于目标存储空间的结束地址为RAM的存储空间的结束地址,因此可以避免模拟实现EEPROM的过程,导致芯片中运行的需要读写RAM的应用程序所需使用的地址发生变化,从而可以避免影响该应用程序的运行。
本申请实施例还提供了一种嵌入式微控制器,该嵌入式微控制器可以包括上述装置实施例提供的芯片,如图1图3任一所述的芯片。
本申请实施例还提供了一种智能终端设备,该智能终端设备可以包括上述装置实施例提供的芯片,如图1图3任一所述的芯片。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如上述方法实施例提供的数据读写方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当所述计算机程序产品在所述计算机上运行时,使得所述计算机执行上述方法实施例提供的数据读写方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
在本申请的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
在本申请中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (28)
1.一种芯片,其特征在于,所述芯片包括:电可擦除可编程只读存储器EEPROM模拟器、随机存取存储器RAM和闪速存储器FLASH,所述EEPROM模拟器包括:主控组件、RAM控制组件和FLASH控制组件,所述FLASH包括多个存储单元;
所述主控组件,用于在所述芯片初始化后,通过所述RAM控制组件和所述FLASH控制组件,将所述多个存储单元中第一存储单元存储的第一数据写入所述RAM的第一存储区域,以供读取设备读取;以及用于在接收到待存储于EEPROM的第二数据后,通过所述RAM控制组件将所述第二数据写入所述RAM的第二存储区域,并通过所述FLASH控制组件将所述第二数据和所述第二数据的目标地址写入所述多个存储单元中的第二存储单元;
其中,所述第一存储单元为所述芯片初始化前所述多个存储单元中有效的存储单元;所述第一存储区域和所述第二存储区域位于所述RAM的目标存储空间内,所述目标存储空间的容量小于所述RAM的存储空间的容量,且所述目标存储空间的结束地址为所述存储空间的结束地址;
所述目标地址为所述第二数据在所述EEPROM中的EEPROM地址,或所述第二存储区域的地址;所述第二存储单元为所述芯片初始化后所述多个存储单元中有效的存储单元。
2.根据权利要求1所述的芯片,其特征在于,
所述主控组件,用于在所述芯片初始化后,向所述FLASH控制组件发送读取信号,并向所述RAM控制组件发送第一写入信号,以及在接收到所述第二数据后,向所述FLASH控制组件发送第二写入信号,并向所述RAM控制组件发送第三写入信号,其中,所述第二写入信号包括所述第二数据和所述第二数据的目标地址,所述第三写入信号包括所述第二数据;
所述FLASH控制组件,用于响应于所述读取信号,控制所述FLASH将所述第一存储单元中存储的所述第一数据传输至所述RAM控制组件;以及响应于所述第二写入信号,将所述第二数据和所述第二数据的目标地址写入所述第二存储单元;
所述RAM控制组件,用于响应于所述第二写入信号,将接收到的所述第一数据写入所述RAM的第一存储区域;以及响应于所述第三写入信号,将所述第二数据写入所述RAM的第二存储区域。
3.根据权利要求1所述的芯片,其特征在于,所述EEPROM模拟器还包括:缓冲组件,所述缓冲组件与所述RAM控制组件和所述FLASH控制组件连接;
所述主控组件,用于在初始化后,通过所述FLASH控制组件将所述第一数据读取至所述缓冲组件,并通过所述RAM控制组件从所述缓冲组件中读取所述第一数据,以将所述第一数据写入所述RAM的第一存储区域。
4.根据权利要求3所述的芯片,其特征在于,所述第一存储单元还存储有所述第一数据对应的校验值,所述校验值是所述主控组件采用校验算法对所述第一数据进行处理得到的;所述EEPROM模拟器还包括:校验组件;
所述主控组件,用于在初始化后,通过所述FLASH控制组件将所述第一数据和所述校验值读取至所述缓冲组件;
所述校验组件与所述缓冲组件连接,所述校验组件用于基于所述缓冲组件中存储的所述校验值,对所述缓冲组件中存储的所述第一数据进行校验;
所述主控组件,用于在所述校验组件对所述第一数据校验成功后,通过所述RAM控制组件从所述缓冲组件中读取所述第一数据,以将所述第一数据写入所述RAM的第一存储区域。
5.根据权利要求1所述的芯片,其特征在于,所述主控组件用于:
获取目标FLASH地址;
通过所述FLASH控制组件,将所述第二数据和所述第二数据的目标地址,写入第二存储单元中所述目标FLASH地址所指示的存储区域。
6.根据权利要求5所述的芯片,其特征在于,所述EEPROM模拟器还包括:比对组件;
所述比对组件,用于在所述第二数据和所述第二数据的目标地址写入所述目标FLASH地址指示的存储区域后,读取所述目标FLASH地址指示的存储区中存储的第三数据和所述第三数据的目标地址,并在确定所述第二数据与所述第二数据不同,和/或,所述第二数据的目标地址与所述第三数据的目标地址不同的情况下,发出告警信号。
7.根据权利要求1所述的芯片,其特征在于,所述芯片还包括:处理器,所述第二数据是所述处理器发送至所述EEPROM模拟器的;所述主控组件包括:配置寄存器和主控单元;
所述配置寄存器与所述处理器和所述主控单元连接,所述主控单元与所述RAM控制组件和所述FLASH控制组件连接;
所述处理器,用于将所述第二数据写入所述配置寄存器;
所述主控单元,用于在所述芯片初始化后,通过所述RAM控制组件和所述FLASH控制组件,将所述第一数据写入所述RAM的第一存储区域,以及从所述配置寄存器中读取所述第二数据,通过所述RAM控制组件将所述第二数据写入所述RAM的第二存储区域,并通过所述FLASH控制组件将所述第二数据和所述第二数据的目标地址写入所述第二存储单元。
8.根据权利要求1至7任一所述的芯片,其特征在于,
所述第一存储区域的地址基于所述第一数据的目标地址确定,所述第一数据的目标地址为所述第一数据在所述EEPROM中的EEPROM地址,或所述RAM中与所述第一数据的EEPROM地址对应的RAM地址;
所述第二存储区域的地址基于所述第二数据的EEPROM地址确定。
9.根据权利要求1至7任一所述的芯片,其特征在于,所述多个存储单元按序排列;所述主控组件用于:
在将所述第二数据写入所述RAM的第二存储区域后,获取所述多个存储单元中有效的第三存储单元;
若所述第三存储单元的剩余容量大于等于容量阈值,则将所述第三存储单元确定为所述第二存储单元,并将所述第二数据和所述第二数据的目标地址写入所述第二存储单元;
若所述第三存储单元的剩余容量小于所述容量阈值,则将所述第三存储单元的下一个存储单元确定为所述第二存储单元,并将所述目标存储空间中存储的多个数据与所述多个数据中每个数据的目标地址,写入所述第二存储单元,所述多个数据包括所述第二数据;
所述主控组件还用于:
将所述第二存储单元作为所述多个存储单元中有效的存储单元,所述多个存储单元中有效的存储单元的个数为1。
10.根据权利要求9所述的芯片,其特征在于,每个所述存储单元均存储有:用于指示所述存储单元的有效状态的标志值,所述有效状态包括:有效或无效;所述主控组件用于:
更新所述第二存储单元的标志值,以使所述第二存储单元作为所述多个存储单元中有效的存储单元;
其中,所述第二存储单元的更新后的标志值指示的有效状态为有效。
11.根据权利要求10所述的芯片,其特征在于,
所述第二存储单元的更新后的标志值为所述第三存储单元的标志值与目标数值之和,或者为所述第三存储单元的标志值与所述目标数值之差。
12.根据权利要求11所述的芯片,其特征在于,所述主控组件还用于:
将所述多个存储单元中标志值为极值的存储单元确定为所述第三存储单元。
13.根据权利要求12所述的芯片,其特征在于,所述主控组件用于:
在所述第二存储单元的更新后的标志值为所述第三存储单元的标志值与所述目标数值之和的情况下,将所述多个存储单元中标志值最大的存储单元确定为所述第三存储单元;
在所述第二存储单元的更新后的标志值为所述第三存储单元的标志值与所述目标数值之差的情况下,将所述多个存储单元中标志值最小的存储单元确定为所述第三存储单元。
14.根据权利要求1至7任一所述的芯片,其特征在于,所述多个存储单元的个数为至少三个。
15.根据权利要求14所述的芯片,其特征在于,
每个所述存储单元的容量大于所述EEPROM的容量。
16.根据权利要求1至7任一所述的芯片,其特征在于,
所述RAM为静态RAM;
所述芯片为系统级芯片。
17.根据权利要求1至7任一所述的芯片,其特征在于,所述主控组件用于:
在所述芯片初始化后,若检测到EEPROM模拟功能启用,则通过所述RAM控制组件和所述FLASH控制组件,将所述多个存储单元中第一存储单元存储的第一数据写入所述RAM的第一存储区域;以及通过所述RAM控制组件将所述第二数据写入所述RAM的第二存储区域,并通过所述FLASH控制组件将所述第二数据和所述第二数据的目标地址写入所述多个存储单元中的第二存储单元。
18.一种数据读写方法,其特征在于,应用于芯片的EEPROM模拟器,所述EEPROM模拟器还包括:主控组件、RAM控制组件和FLASH控制组件;所述芯片还包括:随机存取存储器RAM和闪速存储器FLASH,所述FLASH包括多个存储单元;所述方法包括:
在所述芯片初始化后,所述主控组件通过所述RAM控制组件和所述FLASH控制组件,将所述多个存储单元中第一存储单元存储的第一数据写入所述RAM的第一存储区域,以供读取设备读取;
在接收到待存储于EEPROM的第二数据后,所述主控组件通过所述RAM控制组件将所述第二数据写入所述RAM的第二存储区域,并通过所述FLASH控制组件将所述第二数据和所述第二数据的目标地址写入所述多个存储单元中的第二存储单元;
其中,所述第一存储单元为所述芯片初始化前所述多个存储单元中有效的存储单元;所述第一存储区域和所述第二存储区域位于所述RAM的目标存储空间内,所述目标存储空间的容量小于所述RAM的存储空间的容量,且所述目标存储空间的结束地址为所述存储空间的结束地址;
所述目标地址为所述第二数据在所述EEPROM中的EEPROM地址,或所述第二存储区域的地址;所述第二存储单元为所述芯片初始化后所述多个存储单元中有效的存储单元。
19.根据权利要求18所述的方法,其特征在于,所述EEPROM模拟器还包括:缓冲组件;通过所述RAM控制组件和所述FLASH控制组件,将所述多个存储单元中第一存储单元存储的第一数据写入所述RAM的第一存储区域,包括:
通过所述FLASH控制组件将所述第一数据读取至所述缓冲组件;
通过所述RAM控制组件从所述缓冲组件中读取所述第一数据,并将所述第一数据写入所述RAM的第一存储区域。
20.根据权利要求19所述的方法,其特征在于,所述第一存储单元还存储有所述第一数据对应的校验值,所述校验值是采用校验算法对所述第一数据进行处理得到的;所述通过所述FLASH控制组件将所述第一数据读取至所述缓冲组件,包括:
通过所述FLASH控制组件,将所述第一数据和所述校验值读取至所述缓冲组件。
21.根据权利要求19所述的方法,其特征在于,所述EEPROM模拟器还包括:校验组件;所述通过所述RAM控制组件从所述缓冲组件中读取所述第一数据,包括:
控制所述校验组件,基于所述缓冲组件中存储的校验值对所述缓冲组件存储的所述第一数据进行校验;
若校验成功,则通过所述RAM控制组件从所述缓冲组件中读取所述第一数据。
22.根据权利要求18至21任一所述的方法,其特征在于,通过所述FLASH控制组件将所述第二数据和所述第二数据的目标地址写入所述多个存储单元中的第二存储单元,包括:
从所述第二存储单元中获取目标FLASH地址;
通过所述FLASH控制组件将所述第二数据和所述第二数据的目标地址,写入所述目标FLASH地址所指示的存储区域。
23.根据权利要求22所述的方法,其特征在于,所述EEPROM模拟器还包括:比对组件;在通过所述FLASH控制组件将所述第二数据和所述第二数据的目标地址,写入所述目标FLASH地址所指示的存储区域之后,所述方法还包括:
所述比对组件读取所述目标FLASH地址所指示的存储区域中存储的第三数据和所述第三数据的目标地址;
所述比对组件在确定所述第二数据与所述第二数据不同,和/或,所述第二数据的目标地址与所述第三数据的目标地址不同的情况下,发出告警信号。
24.根据权利要求18至21任一所述的方法,其特征在于,所述多个存储单元的个数为至少三个。
25.根据权利要求24所述的方法,其特征在于,每个所述存储单元的容量大于所述EEPROM的容量。
26.一种嵌入式微控制器,其特征在于,包括:如权利要求1至权利要求17中任一所述的芯片。
27.一种智能终端设备,其特征在于,包括:如权利要求1至权利要求17中任一所述的芯片。
28.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求18至25中任一所述的数据读写方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311138462.5A CN116909487B (zh) | 2023-09-05 | 2023-09-05 | 数据读写方法、芯片、嵌入式微控制器和智能终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311138462.5A CN116909487B (zh) | 2023-09-05 | 2023-09-05 | 数据读写方法、芯片、嵌入式微控制器和智能终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116909487A CN116909487A (zh) | 2023-10-20 |
CN116909487B true CN116909487B (zh) | 2024-01-23 |
Family
ID=88368046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311138462.5A Active CN116909487B (zh) | 2023-09-05 | 2023-09-05 | 数据读写方法、芯片、嵌入式微控制器和智能终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116909487B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012355B (zh) * | 2024-04-10 | 2024-07-05 | 上海朔集半导体科技有限公司 | 模拟eeprom及其控制方法、模拟控制器、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6904400B1 (en) * | 1998-09-30 | 2005-06-07 | Stmicroelectronics S.R.L. | Flash EEPROM memory emulator of non-flash EEPROM device and corresponding method |
CN111950219A (zh) * | 2019-04-30 | 2020-11-17 | 北京百度网讯科技有限公司 | 用于实现模拟器的方法、装置、设备以及介质 |
CN112417802A (zh) * | 2020-11-12 | 2021-02-26 | 深圳市创智成科技股份有限公司 | 一种模拟存储芯片的方法、系统、设备及存储介质 |
CN115718641A (zh) * | 2023-01-09 | 2023-02-28 | 苏州浪潮智能科技有限公司 | 存储器模拟方法及装置、存储介质及电子装置 |
CN116301601A (zh) * | 2023-02-16 | 2023-06-23 | 上海东软载波微电子有限公司 | 嵌入式系统内置Flash模拟EEPROM的数据存储方法及装置 |
-
2023
- 2023-09-05 CN CN202311138462.5A patent/CN116909487B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6904400B1 (en) * | 1998-09-30 | 2005-06-07 | Stmicroelectronics S.R.L. | Flash EEPROM memory emulator of non-flash EEPROM device and corresponding method |
CN111950219A (zh) * | 2019-04-30 | 2020-11-17 | 北京百度网讯科技有限公司 | 用于实现模拟器的方法、装置、设备以及介质 |
CN112417802A (zh) * | 2020-11-12 | 2021-02-26 | 深圳市创智成科技股份有限公司 | 一种模拟存储芯片的方法、系统、设备及存储介质 |
CN115718641A (zh) * | 2023-01-09 | 2023-02-28 | 苏州浪潮智能科技有限公司 | 存储器模拟方法及装置、存储介质及电子装置 |
CN116301601A (zh) * | 2023-02-16 | 2023-06-23 | 上海东软载波微电子有限公司 | 嵌入式系统内置Flash模拟EEPROM的数据存储方法及装置 |
Non-Patent Citations (4)
Title |
---|
MC68HC908JL8 MCU中虚拟EEPROM特性的应用及剖析;徐丽华 等;计算机工程与应用(第28期);全文 * |
Reliability model and implementation for EEPROM emulation using flash memory;Chen He et al.;《 IEEE Xplore》;全文 * |
基于TCAD软件的单层多晶EEPROM器件模拟分析;邓勇 等;半导体技术(第01期);全文 * |
基于微控制器的FLASH模拟EEPROM的设计;韩金霞 等;广东轻工职业技术学院学报(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116909487A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6931582B2 (en) | Memory card and memory controller | |
JP4933268B2 (ja) | フラッシュメモリシステムの起動動作 | |
JP4323707B2 (ja) | フラッシュメモリの欠陥管理方法 | |
US7290097B2 (en) | Nonvolatile memory | |
CN116909487B (zh) | 数据读写方法、芯片、嵌入式微控制器和智能终端设备 | |
TWI396202B (zh) | 錯誤校正控制器及其快閃記憶體晶片系統與錯誤校正方法 | |
CN107239411B (zh) | 一种车载控制器内存管理方法及系统 | |
CN105723344A (zh) | 用于非易失性ram差错重映射的方法和装置 | |
TWI554886B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
EP1934752A1 (en) | Flash memory management | |
CN107195329B (zh) | 在读操作时纠正dram中存储阵列的错误的方法以及dram | |
JPH09244961A (ja) | フラッシュata−pcカード | |
CN109426441B (zh) | 数据储存装置以及其操作方法 | |
CN102279757B (zh) | 一种系统程序启动的方法及装置 | |
CN117289860A (zh) | 嵌入式微控制器及其数据读写方法 | |
CN108664358A (zh) | 单片机参数处理方法、系统、可读存储介质及终端设备 | |
JP4775969B2 (ja) | 不揮発性記憶装置 | |
CN109407807B (zh) | 一种芯片复位电路、复位方法及mcu芯片 | |
US9213597B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US20080140920A1 (en) | Microcomputer for flash memory rewriting | |
CN111897685A (zh) | 掉电时校验数据的方法、装置、存储介质及电子设备 | |
KR100692982B1 (ko) | 배드 블럭 정보가 기록된 난드 타입의 플래시 메모리 | |
KR20050064887A (ko) | 오류 검출 능력이 강화된 플래시 메모리 및 다비트 오류검출 방법 | |
CN111124742B (zh) | Flash数据校验方法及Flash控制器、存储介质、设备 | |
CN114300026A (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 |