CN117312184A - 数据存储方法、装置及电子设备 - Google Patents

数据存储方法、装置及电子设备 Download PDF

Info

Publication number
CN117312184A
CN117312184A CN202210711985.3A CN202210711985A CN117312184A CN 117312184 A CN117312184 A CN 117312184A CN 202210711985 A CN202210711985 A CN 202210711985A CN 117312184 A CN117312184 A CN 117312184A
Authority
CN
China
Prior art keywords
information
physical
physical block
address
data
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
Application number
CN202210711985.3A
Other languages
English (en)
Inventor
李昱
王峨峨
王冬格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Goodix Technology Co Ltd
Original Assignee
Shenzhen Goodix Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Goodix Technology Co Ltd filed Critical Shenzhen Goodix Technology Co Ltd
Priority to CN202210711985.3A priority Critical patent/CN117312184A/zh
Publication of CN117312184A publication Critical patent/CN117312184A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请实施例提供一种数据存储方法、装置及电子设备,该方法包括:当对NVM进行初始化时,获取第一信息和第二信息,其中,所述第一信息由所述NVM中的物理块中的标识信息确定,所述标识信息至少包括第一标识、第二标识及第三标识,所述第一标识用于指示所述物理块对应的逻辑地址,所述第二标识用于指示所述物理块的新旧,所述第三标识用于指示完整性校验码;第一信息包括逻辑地址与已占用物理块的物理地址之间的映射关系,第二信息由NVM中的物理块的擦除状态确定,第二信息包括空闲物理块的物理地址;基于所述第一信息和所述第二信息,将待写入数据写入所述NVM的物理块。本申请实施例提供的方法,有助于在对非易失性存储器进行擦写时实现掉电保护。

Description

数据存储方法、装置及电子设备
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种数据存储方法、装置及电子设备。
背景技术
非易失性存储器(None Volatile Memory,NVM)弥补了只读存储器(Read-OnlyMemory,ROM)和随机存取存储器(Random Access Memory,RAM)的缺点,不仅具备电子可擦除可编程的能力,还能在断电没有电流的情况下长久地保持数据,因此,其作为存储单元广泛应用在芯片中。
然而,在对NVM中的数据进行写入的过程中,可能会发生异常掉电,由此会使得NVM重新上电之后,读出的数据可能不完整,甚至是错误的,因此,需要对NVM进行掉电保护,用于在数据发生异常时进行数据恢复。而如何在对NVM中的数据进行写入的过程中实现掉电保护是当前亟需解决的问题。
发明内容
本申请实施例提供了一种数据存储方法、装置及电子设备,有助于在对NVM进行擦写时实现掉电保护。
第一方面,本申请实施例提供了一种数据存储方法,应用于NVM,包括:
当对所述NVM进行初始化时,获取第一信息和第二信息,其中,所述第一信息由所述NVM中的物理块中的标识信息确定,所述标识信息至少包括第一标识、第二标识及第三标识,所述第一标识用于指示所述物理块对应的逻辑地址,所述第二标识用于指示所述物理块的新旧,所述第三标识用于指示完整性校验码;所述第一信息包括逻辑地址与已占用物理块的物理地址之间的映射关系,第二信息由所述NVM中的物理块的擦除状态确定,所述第二信息包括空闲物理块的物理地址;
基于所述第一信息和所述第二信息,将待写入数据写入所述NVM的物理块。
本申请实施例中,通过已写入数据的物理块中携带标识信息,并由标识信息指示逻辑地址、物理块间的新旧以及完整性校验码,由此可以使得NVM掉电后可以根据标识信息找到物理地址与逻辑地址的映射关系、判断物理块间的新旧以及进行完整性校验,可以在完整性校验后,通过物理地址与逻辑地址的映射关系以及物理块间的新旧完成对物理块的数据写入或物理块的恢复,有助于在对非易失性存储器进行擦写时实现掉电保护
其中一种可能的实现方式中,所述基于所述第一信息和所述第二信息,将待写入数据写入所述NVM的物理块具体包括:
若所述第一信息中不包括第一逻辑地址与已占用物理块的物理地址之间的映射关系,则基于所述第二信息确定目标物理块的物理地址,将所述待写入数据写入所述目标物理块,并在所述目标物理块中创建所述标识信息,其中,所述第一逻辑地址为所述待写入数据的逻辑地址;
在所述第一信息中创建所述第一逻辑地址与所述目标物理块的物理地址之间的映射关系,并删除所述第二信息中的所述目标物理块的物理地址。
本申请实施例可以实现单个数据的首次写入。
其中一种可能的实现方式中,所述待写入数据包括一次事务写入的多个数据,所述多个数据用于待写入多个物理块,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块。
本申请实施例可以实现事务级的首次写入。
其中一种可能的实现方式中,所述基于所述第一信息和所述第二信息将待写入数据写入所述NVM的物理块具体包括:
若所述第一信息中包括第一逻辑地址与已占用物理块的物理地址之间的第一映射关系,则基于所述第二信息确定目标物理块的物理地址,其中,所述第一逻辑地址为所述待写入数据的逻辑地址;
将所述第一映射关系中的已占用物理块的数据及标识信息写入缓存,将所述缓存中的第一映射关系中的已占用物理块的数据更新成所述待写入数据,并对所述缓存中的标识信息进行更新,将所述缓存中的待写入数据及更新后的标识信息写入所述目标物理块,其中,所述第一映射关系中已占用物理块的第二标识用于标识所述第一映射关系中已占用物理块为旧物理块,所述目标物理块的第二标识用于标识所述目标物理块为新物理块;
在所述第一信息中将所述第一映射关系更新为第二映射关系,并删除所述第二信息中的所述目标物理块的物理地址,其中,所述第二映射关系为所述第一逻辑地址与所述目标物理块的物理地址之间的映射关系;
对所述旧物理块的数据进行擦除。
本申请实施例可以实现单个数据的数据更新。
其中一种可能的实现方式中,所述待写入数据包括一次事务写入的多个数据,所述多个数据用于待写入多个物理块,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块;所述对所述旧物理块的数据进行擦除具体包括:
当在所述第一信息中获取到本次事务写入中任一旧物理块的物理地址后,将所述旧物理块的物理地址存入第三信息;
若检测到已完成写入的新物理块的第四标识指示所述已完成写入的新物理块是事务写入中的最后一个写入的物理块,则基于所述第三信息中的物理地址对本次事务写入的所有旧物理块的数据进行擦除,并在擦除后删除所述第三信息中的物理地址。
本申请实施例可以实现事务级的数据更新。
其中一种可能的实现方式中,所述当对所述NVM进行初始化时,获取第一信息和第二信息包括:
当对所述NVM进行初始化时,对所述NVM中的物理块进行遍历;
在遍历过程中,创建第一信息和第二信息,其中,若任一物理块处于已擦除状态,则将当前遍历到的物理块的物理地址存入所述第二信息;或,若任一物理块处于非擦除状态,且处于所述非擦除状态的物理块基于所述第三标识完整性校验成功,则将所述当前遍历到的物理块的物理地址与第二逻辑地址之间的映射关系存入所述第一信息,所述第二信息中不包含所述当前遍历到的物理块的物理地址;
其中,所述第二逻辑地址为所述处于非擦除状态的物理块的第一标识指示的逻辑地址。
本申请实施例中,通过遍历的方式基于标识信息创建第一信息及第二信息,既可以快速创建第一信息和第二信息,又可以节省NVM的存储空间。
其中一种可能的实现方式中,所述方法还包括:
在遍历过程中,若任一物理块基于所述第三标识完整性校验失败,则将完整性校验失败的物理块的物理地址存入第三信息;
在遍历完成后,基于所述第三信息中的物理地址将完整性校验失败的物理块进行擦除,并在擦除后将所述第三信息中的物理地址进行删除。
本申请实施例中,通过基于第三标识进行完整性校验,避免掉电后出现数据错误的情况,由此可以实现掉电后的数据保护。
其中一种可能的实现方式中,所述方法还包括:
在遍历过程中,若存在一个逻辑地址映射两个物理地址的情况,则将旧物理块的物理地址存入第三信息,其中,所述第一信息中包含新物理块的物理地址与逻辑地址的映射关系。
本申请实施例中,通过物理地址与逻辑地址的映射冲突检测,避免掉电后出现一个逻辑地址映射多个物理地址的情况,由此可以实现掉电后的数据保护。
其中一种可能的实现方式中,所述方法还包括:
在遍历完成后,基于所述第三信息将所述旧物理块进行擦除,并在擦除后将所述第三信息中的物理地址进行删除。
其中一种可能的实现方式中,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块,所述方法还包括:
在遍历过程中,基于所述第四标识判断本次事务写入是否已完成;
在遍历完成后,若判断本次事务写入未完成,则基于所述第三信息中的物理地址在所述第一信息中重新创建所述旧物理块的物理地址与逻辑地址的映射关系,在创建映射关系后在所述第三信息中删除所述旧物理块的物理地址,将所述第一信息中的新物理块的物理地址存入所述第三信息,基于所述第三信息中的物理地址将所述新物理块进行擦除,并在擦除后删除所述第三信息中的新物理块的物理地址;或,
在遍历完成后,若判断本次事务写入已完成,则基于所述第三信息中的旧物理块的物理地址将所述旧物理块进行擦除,并在擦除后将所述第三信息中的旧物理块的物理地址进行删除。
本申请实施例可以实现事务级的掉电保护。
其中一种可能的实现方式中,所述基于所述第四标识判断本次事务写入是否已完成具体包括:
若任一新物理块的第四标识指示所述新物理块为本次事务写入中的最后一个写入的物理块,则确定本次事务写入已完成;或,
若所有新物理块的第四标识都指示所述所有新物理块为本次事务写入中的非最后一个写入的物理块,则确定本次事务写入未完成。
其中一种可能的实现方式中,所述第一信息及所述第二信息存储在随机存取存储器RAM或寄存器中。
本申请实施例可以加快对第一信息和第二信息的访问,又可以避免第一信息及第二信息对NVM的存储空间的占用。
其中一种可能的实现方式中,所述第二信息中空闲物理块的物理地址从所述NVM的随机物理地址开始遍历获得。
本申请实施例可以避免对同一个物理块进行擦写,有助于实现磨损平衡。
第二方面,本申请实施例提供了一种数据存储装置,包括:获取模块和写入模块,获取模块和写入模块用于执行如第一方面所述的数据存储方法。
第三方面,本申请实施例提供了一种电子设备,包括:处理器和存储器,存储器用于存储计算机程序;处理器用于运行计算机程序,执行如第一方面所述的数据存储方法。
附图说明
图1为本申请实施例提供的系统架构图;
图2为逻辑地址与物理地址之间的转换示意图;
图3为本申请提供的数据存储方法一个实施例的流程示意图;
图4为本申请提供的数据存储方法另一个实施例的流程示意图;
图5为本申请提供的数据存储方法再一个实施例的流程示意图;
图6为本申请提供的数据存储方法再一个实施例的流程示意图;
图7为本申请提供的数据存储方法再一个实施例的流程示意图;
图8a-图8e为本申请实施例提供的NVM中的物理块示意图;
图9为本申请实施例提供的数据存储装置的结构示意图;
图10为本申请实施例提供的电子设备的结构示意图。
具体实施方式
本申请实施例中,除非另有说明,字符“/”表示前后关联对象是一种或的关系。例如,A/B可以表示A或B。“和/或”描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
需要指出的是,本申请实施例中涉及的“第一”、“第二”等词汇,仅用于区分描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量,也不能理解为指示或暗示顺序。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。此外,“以下至少一项(个)”或者其类似表达,是指的这些项中的任意组合,可以包括单项(个)或复数项(个)的任意组合。例如,A、B或C中的至少一项(个),可以表示:A,B,C,A和B,A和C,B和C,或A、B和C。其中,A、B、C中的每个本身可以是元素,也可以是包含一个或多个元素的集合。
本申请实施例中,“示例的”、“在一些实施例中”、“在另一实施例中”等用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中的“的(of)”、“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,所要表达的含义是一致的。本申请实施例中,通信、传输有时可以混用,应当指出的是,在不强调其区别时,其所表达的含义是一致的。例如,传输可以包括发送和/或接收,可以为名词,也可以是动词。
本申请实施例中涉及的等于可以与大于连用,适用于大于时所采用的技术方案,也可以与小于连用,适用于小于时所采用的技术方案。需要说明的是,当等于与大于连用时,不能与小于连用;当等于与小于连用时,不与大于连用。
NVM弥补了ROM和RAM的缺点,不仅具备电子可擦除可编程的能力,还能在断电没有电流的情况下长久地保持数据,因此,其作为存储单元广泛应用在芯片中。
然而,在对NVM中的数据进行写入的过程中,可能会发生异常掉电,由此会使得NVM重新上电之后,读出的数据可能不完整,甚至是错误的,因此,需要对NVM进行掉电保护,用于在数据发生异常时进行数据恢复。而如何在对NVM中的数据进行写入的过程中实现掉电保护是当前亟需解决的问题。
基于上述问题,本申请实施例提出了一种数据存储方法,应用于NVM,通过已写入数据的物理块中携带标识信息,并由标识信息指示逻辑地址、物理块间的新旧以及完整性校验码,由此可以使得NVM掉电后可以根据标识信息找到物理地址与逻辑地址的映射关系、判断物理块间的新旧以及进行完整性校验,可以在完整性校验后,通过物理地址与逻辑地址的映射关系以及物理块间的新旧完成对物理块的数据写入或物理块的恢复,有助于在对非易失性存储器进行擦写时实现掉电保护。
现结合图1-图7、图8a-图8e对本申请实施例提供的数据存储方法进行说明。
图1为本申请实施例提供的系统架构图。如图1所示,上述系统架构包括非易失性存储器控制器及NVM。其中,非易失性存储器控制器用于对NVM进行读取和写入,例如,非易失性存储器控制器获取逻辑地址与物理地址之间的映射关系,并可以根据逻辑地址与物理地址之间的映射关系对NVM进行读取和写入。可以理解的是,逻辑地址可以是用于存储数据的虚拟地址,而物理地址是用于存储数据的真实地址。用户通过对逻辑地址进行访问,由非易失性存储器控制器将逻辑地址转换为物理地址后,在NVM中的对应的物理地址处获取用户访问的数据,由此可以对NVM中存储的数据进行擦写。
图2为逻辑地址与物理地址之间的转换示意图。如图2所示,NVM中包含多个物理块,每个物理块具有物理地址,这段物理地址占用了NVM的物理空间,在对物理地址对应的物理空间进行擦写时,会产生磨损的问题。示例性的,当逻辑地址处于0-0x3F时,对应的是逻辑块0,映射的是物理块3;当逻辑地址处于0x40-0x7F时,对应的是逻辑块1,映射的是物理块6。当逻辑地址处于0x80-0xCF时,对应的是逻辑块2,映射的是物理块0。当逻辑地址处于0xC0-0xFF时,对应的是逻辑块3,映射的是物理块2。由于逻辑地址对应的是逻辑空间,因此,对逻辑空间的擦写不存在磨损问题。由此,通过逻辑地址和物理地址的转换,可以避免长时间对同一个物理地址进行访问导致的磨损过度问题。
如图3所示为本申请提供的数据存储方法一个实施例的流程示意图,具体包括以下步骤:
步骤301,当对NVM进行初始化时,获取第一信息和第二信息,其中,第一信息由NVM中的物理块中的标识信息确定,该标识信息至少包括第一标识、第二标识及第三标识,第一标识用于指示该标识信息所在的物理块对应的逻辑地址,第二标识用于指示该物理块的新旧,第三标识用于指示该物理块的完整性校验码;第一信息包括逻辑地址与已占用物理块的物理地址之间的映射关系,第二信息由物理块的擦除状态确定,第二信息包括空闲物理块的物理地址。
具体地,初始化包括但不限于正常上电、异常上电、复位及重置等场景,也就是说,当用户进行正常上电、异常上电、复位及重置后,NVM会进行初始化。其中,获取第一信息及第二信息的具体方式可以包括以下两种场景:
场景1,第一信息和第二信息存储在RAM或寄存器中。
具体地,为了避免将第一信息和第二信息存储在NVM导致对NVM的物理空间的额外占用,第一信息和第二信息可以存储在RAM或寄存器中。此外,由于对NVM的物理空间的访问会降低数据访问的效率,通过对RAM或寄存器的访问还可以加快数据的访问效率。如果将第一信息和第二信息存储在NVM中,会发生对第一信息和第二信息的擦写,而RAM或寄存器没有寿命的问题,因此,将第一信息和第二信息存储在RAM或寄存器中可以避免存储在NVM中导致的磨损过度问题。
在场景1中,当每次对NVM初始化时,可以通过对NVM中的物理块进行遍历的方式获取第一信息和第二信息。可以理解的是,由于NVM初始化通常会伴随RAM或寄存器的初始化,而当RAM或寄存器进行初始化后,存储在RAM或寄存器中的数据会丢失,因此,当对NVM进行初始化后,存储在RAM或寄存器中的第一信息和第二信息会丢失。在这种情况下,可以通过对NVM中的物理块进行遍历的方式获取第一信息和第二信息。
在具体实现时,获取第一信息和第二信息的具体方式可以是:当遍历到任意一个物理块时,若当前遍历到的物理块处于已擦除状态,说明该物理块为空物理块,该空物理块没有任何数据,也就是说,该空物理块中也不包含标识信息,由此可以根据物理块的已擦除状态创建第二信息。例如,可以将当前遍历到的空物理块的物理地址存入第二信息,也就是说,第二信息中包含当前遍历到的空物理块的物理地址。可以理解的是,由于当前遍历到的物理块不包含标识信息(例如,第一标识),因此,无需在第一信息中创建逻辑地址与当前遍历到的物理块的物理地址之间的映射关系,也就是说,第一信息中不包含逻辑地址与当前遍历到的物理块的物理地址之间的映射关系。
若当前遍历到的物理块处于非擦除状态,说明该物理块为非空物理块,该非空物理块存储有数据,因此,可以读取该非空物理块中的标识信息,并可以由读取的标识信息创建第一信息。例如,可以从当前遍历到的物理块中的第一标识读取逻辑地址,并可以将该逻辑地址与当前遍历到的非空物理块的物理地址之间的映射关系存入第一信息。也就是说,第一信息中包含逻辑地址与当前遍历到的非空物理块的物理地址之间的映射关系。可以理解的是,由于当前遍历到的物理块处于非擦除状态,因此,无需将当前遍历到的非空物理块的物理地址存入第二信息,也就是说,第二信息中不包含当前遍历到的非空物理块的物理地址。
可以理解的是,上述判断当前遍历到的物理块是否处于擦除状态的具体实现方式可以是:读取物理块中的标识信息所对应的数据位,示例性的,若标识信息所对应的数据位为预设值,例如,全1或全0,则确定当前遍历到的物理块处于已擦除状态;若标识信息所对应的数据位为非预设值,则确定当前遍历到的物理块处于非擦除状态。其中,上述预设值为举例说明,并不构成对本申请实施例的限定,在一些实施例中,上述预设值还可以是其他数值。
场景2,第一信息和第二信息存储在NVM中。
具体地,为了避免每次初始化时都需要通过遍历的方式创建第一信息和第二信息,还可以将第一信息和第二信息存储在NVM中。可以理解的是,NVM中的第一信息和第二信息可以在NVM首次初始化时,通过遍历的方式创建。此外,由于NVM中的数据在再次初始化后不会丢失,因此,在再次初始化后无需再通过遍历的方式创建第一信息和第二信息,由此可以提高效率。其中,场景2中创建第一信息和第二信息的具体实现方式可以参考场景1中的相关描述,在此不再赘述。
进一步地,由于NVM在写入数据之前,需要先进行擦除操作,其中,最小的擦除单位为块(Block),例如,一个物理块。由于NVM的擦写次数是有限的,当某个物理块被频繁写入,使得该物理块达到其最大擦写次数后,会成为坏块,由此会影响整个NVM的寿命。因此,在进行写入操作时需要对NVM考虑磨损平衡。在本申请实施例中,在对NVM中的物理块进行遍历时,可以从一个随机的物理地址开始,由此可以使得数据的擦写操作可以在一个随机的物理块上进行,避免数据的擦写在同一个物理块上进行,从而可以实现磨损平衡。
步骤302,基于第一信息和第二信息,将待写入数据写入NVM的物理块。
具体地,当获取到第一信息和第二信息后,用户可以在NVM中进行操作,用于将待写入数据写入NVM中。其中,上述将待写入数据写入NVM的物理块可以是将待写入数据写入一个空物理块,或,上述将待写入数据写入NVM的物理块也可以是对已写有数据的非空物理块进行数据更新,本申请实施例对此不作特殊限定。
对于将待写入数据写入一个空物理块的场景,可以基于第二信息确定目标物理块,将待写入数据写入目标物理块,在目标物理块中创建与目标物理块对应的标识信息,例如,第一标识、第二标识及第三标识,其中,第一标识用于指示逻辑地址,例如,该逻辑地址为待写入数据的逻辑地址;第二标识用于指示物理块间的新旧,第三标识用于指示完整性校验码,并可以当待写入数据成功写入目标物理块后,在第一信息中创建逻辑地址与目标物理块的物理地址之间的映射关系。
对于对已写有数据的非空物理块进行数据更新的场景,可以基于第二信息确定目标物理块。为说明方便,下文将上述已写有数据的非空物理块称为待更新物理块,首先将待更新物理块中的数据及标识信息写入缓存,接着,将缓存中的数据(也就是待更新物理块的数据)更新成待写入数据,并更新标识信息,将更新后的标识信息与待写入数据写入目标物理块。其中,目标物理块中的第二标识用于指示该目标物理块为新物理块,待更新物理块中的第二标识用于指示该待更新物理块为旧物理块;目标物理块中的第三标识用于指示目标物理块的完整性校验码,待更新物理块中的第三标识用于指示待更新物理块的完整性校验码。可以理解的是,目标物理块中的第一标识指示的逻辑地址与待更新物理块中的第一标识指示的逻辑地址相同;并可以当待写入数据成功写入目标物理块后,在第一信息中将第一逻辑地址与待更新物理块的物理地址之间的映射关系更新为第一逻辑地址与目标物理块的物理地址之间的映射关系,删除第二信息中的目标物理块的物理地址,擦除待更新物理块。
本申请实施例中,通过已写入数据的物理块中携带标识信息,并由标识信息指示逻辑地址、物理块间的新旧以及完整性校验码,由此可以使得NVM掉电后可以根据标识信息找到物理地址与逻辑地址的映射关系、判断物理块间的新旧以及进行完整性校验,可以在完整性校验后,通过物理地址与逻辑地址的映射关系以及物理块间的新旧完成对物理块的数据写入或物理块的恢复,有助于在对非易失性存储器进行擦写时实现掉电保护。
接着,以第一信息和第二信息存储在RAM或寄存器为例,并结合图4-图8对本申请实施例提供的数据存储方法进行进一步说明。
图4为本申请提供的数据存储方法另一个实施例的流程示意图。在图4所示的实施例中,应用场景可以是对一个空物理块进行写入,上述步骤303具体包括以下步骤:
步骤401,若第一信息中不包括第一逻辑地址与已占用物理块的物理地址之间的映射关系,则基于第二信息确定目标物理块的物理地址,将待写入数据写入目标物理块,并在目标物理块中创建标识信息,其中,第一逻辑地址为待写入数据的逻辑地址。
具体地,在对一个空物理块进行数据写入的场景中,可以基于第一信息进行判定,若第一信息中不包括第一逻辑地址与已占用物理块的物理地址之间的映射关系,则可以在第二信息中选取一个空闲物理块作为目标物理块,并可以将待写入数据及标识信息写入目标物理块中。其中,标识信息可以包括第一标识、第二标识及第三标识。
在具体实现时,可以先将待写入数据写入一块缓存区,其中,该缓存区可以是RAM或寄存器。接着,可以在该缓存区中写入标识信息。然后,在第二信息中选取空闲物理块作为目标物理块。其中,选取的目标物理块可以是第二信息中的第一个物理地址对应的物理块,或可以是第二信息中的最后一个物理地址对应的物理块,或可以是第二信息中的中间的任意一个物理地址对应的物理块,本申请实施例对目标物理块的选取不作特殊限定。
当确定目标物理块后,可以将缓存区中的内容写入目标物理块,其中,缓存区中的内容可以包括待写入数据和标识信息,由此可以使得目标物理块中包含待写入数据和标识信息。
在一些可选的实施例中,用户还可以进行事务操作,其中,事务操作用于表征一次事务写入。在一次事务写入中,可能包括多个待写入数据,该多个待写入数据用于写入多个物理块。因此,当对任一个待写入数据进行写入时,目标物理块中还可以包括第四标识,第四标识用于指示是否是本次事务写入中的最后一个写入的物理块。示例性的,若当前写入的物理块不是本次事务写入中的最后一个写入的物理块,则第四标识指示当前写入的物理块不是本次事务写入中的最后一个写入的物理块,例如,第四标识的值为0;若当前写入的物理块是本次事务写入中的最后一个写入的物理块,则第四标识指示当前写入的物理块是本次事务写入中的最后一个写入的物理块,例如,第四标识的值为1。可以理解的是,第四标识的值仅为举例说明,并不构成对本申请实施例的限定。需要说明的是,一个物理块的标识信息中第一至第四标识在该物理块中的存储顺序根据实际情况可以灵活设置,例如可以是第一至第四标识依次存储,也可以是按照第一标识、第二标识、第四标识、第三标识顺序进行存储,本申请实施例对此不做限定。
需要说明的是,若第二信息中不包含可供选取的空闲物理块(也就是第二信息中可供选取的空闲物理块的数目为0),或可供选取的空闲物理块的数目不足以满足本次事务写入所需的物理块的数目。示例性的,假设本次事务写入涉及3个物理块的写入,若第二信息中可供选取的空闲物理块的数目为2,则可以认为供选取的空闲物理块的数目不足以满足本次事务写入所需的物理块的数目。此时,可以进一步对NVM的物理块进行遍历,由此可以获取空闲物理块,并可以将遍历到的空闲物理块的物理地址存入第二信息,由此可以完成对数据的写入。可以理解的是,此处的遍历方式也可以是从一个随机的物理地址开始,从而可以避免磨损过度的问题。
步骤402,在第一信息中创建第一逻辑地址与目标物理块的物理地址之间的映射关系,并删除第二信息中的目标物理块的物理地址。
具体地,当待写入数据和标识信息成功写入到目标物理块后,可以在第一信息中创建第一逻辑地址与目标物理块的物理地址之间的映射关系。接着,可以删除第二信息中的目标物理块的物理地址,由此可以使得该目标物理块更新为已占用物理块,从而可以完成将待写入数据写入NVM的过程。由于目标物理块中已经包含标识信息,由此可以使得在掉电后根据标识信息对物理块进行处理,从而可以实现掉电保护,其中,掉电后的相关处理可以参考下文的相关描述,在此不再赘述。
图5为本申请提供的数据存储方法再一个实施例的流程示意图。同样以第一信息和第二信息存储在RAM或寄存器为例,在图5所示的实施例中,应用场景可以是对非空物理块进行数据更新,上述步骤303具体包括以下步骤:
步骤501,若第一信息中包括第一逻辑地址与已占用物理块的物理地址之间的第一映射关系,则基于第二信息确定目标物理块的物理地址,其中,第一逻辑地址为待写入数据的逻辑地址。
具体地,在对一个非空物理块进行数据更新的场景中,可以基于第一信息进行判定,若第一信息中包括第一逻辑地址与已占用物理块的物理地址之间的第一映射关系,则可以在第二信息中选取一个空闲的物理块作为目标物理块,以便于将待更新数据写入目标物理块中。
步骤502,将第一映射关系中的已占用物理块的数据及标识信息写入缓存,将缓存中的第一映射关系中的已占用物理块的数据更新成待写入数据,并对缓存中的标识信息进行更新,将缓存中的待写入数据及更新后的标识信息写入目标物理块,其中,第一映射关系中的已占用物理块的第二标识指示第一映射关系中的已占用物理块为旧物理块,目标物理块的第二标识指示目标物理块为新物理块。
具体地,当确定目标物理块后,可以将第一映射关系中的已占用物理块的数据及标识信息写入缓存,其中,缓存可以是RAM或寄存器,标识信息可以包括第一标识、第二标识和第三标识。接着,可以基于待写入数据将缓存中的数据(也就是第一映射关系中的已占用物理块的数据)更新成待写入数据,并对缓存中的标识信息进行更新。例如,第一映射关系中的已占用物理块的第二标识指示第一映射关系中的已占用物理块为旧物理块,缓存中的第二标识指示目标物理块为新物理块。也就是说,第一映射关系中的已占用物理块可以认为是数据更新前的物理块,目标物理块可以认为是数据更新后的物理块。第一映射关系中的已占用物理块的第一标识指示的逻辑地址与目标物理块的第一标识指示的逻辑地址相同,第一映射关系中的已占用物理块的第三标识指示的完整性校验码与目标物理块的第三标识指示的完整性校验码不同。最后,将缓存中的待写入数据及更新后的标识信息写入目标物理块中。
示例性的,以第二标识为索引为例,对第二标识进行更新的具体实现方式可以是:新物理块的索引值=旧物理块的索引值+1,假设旧物理块的索引值为0,则新物理块的索引值为1;假设旧物理块的索引值为1,则新物理块的索引值为2,由此可以区分物理块间的新旧。
在一些可选的实施例中,由于随着索引值的不断增大,会增加对存储空间的占用。因此,为了减少索引值对存储空间的占用,可以对索引值进行循环使用。示例性的,索引值的循环区间为0-3,假设旧物理块的索引值为3,则新物理块的索引值为0,接着,可以按照索引者递增的方式区分新旧物理块,具体实现方式可以参考上述实施例,在此不再赘述。
在具体实现时,可以先将第一映射关系中的已占用物理块的数据及标识信息写入一块缓存区,然后根据待写入数据对该缓存区中的数据进行更新,例如,可以对第一映射关系中的已占用物理块的数据中的部分或全部的字或字节进行更新;以及对标识信息进行更新。接着,可以将缓存区中的更新后的数据及更新后的标识信息写入目标物理块。
在一些可选的实施例中,在事务写入的场景中,数据写入后的目标物理块中还可以包括第四标识。第四标识的具体写入方式可以参考上述实施例,在此不再赘述。
步骤503,在第一信息中将第一映射关系更新为第二映射关系,并删除第二信息中的目标物理块的物理地址,其中,第二映射关系为第一逻辑地址与目标物理块的物理地址之间的映射关系。
具体地,当将缓存区中的更新后的数据及更新后的标识信息写入目标物理块后,也就是说,本次数据写入成功后,可以将第一信息中的第一映射关系更新为第二映射关系,并删除第二信息中的目标物理块的物理地址,其中,第二映射关系为第一逻辑地址与目标物理块的物理地址之间的映射关系,由此可以指示目标物理块已被占用。
步骤504,对旧物理块的数据进行擦除。
具体地,当在第一信息中查询到旧物理块的物理地址后,可以先将旧物理块的物理地址存入第三信息。接着,当新物理块中的数据成功写入后,可以基于第三信息中的物理地址对旧物理块的数据进行擦除,并删除第三信息中的物理地址。需要说明的是,第三信息也可以存储在RAM或寄存器中。
在一些可选的实施例中,在事务写入的场景中,当在第一信息中获取到本次事务写入中任一旧物理块的物理地址后,将旧物理块的物理地址存入第三信息。
若检测到已完成写入的新物理块的第三标识指示已完成写入的新物理块是本次事务写入中的最后一个写入的物理块,则可以基于第三信息中的物理地址对本次事务写入的所有旧物理块的数据进行擦除,并在擦除后删除第三信息中的物理地址,由此可以避免在事务写入中因过早擦除旧物理块且事务写入失败导致的旧物理块的无法恢复。
通过本申请实施例提供的方法,可以在对已写入数据的物理块进行数据更新时实现掉电保护。
图6为本申请提供的数据存储方法再一个实施例的流程示意图。再次以第一信息和第二信息存储在RAM或寄存器为例,在图6所示的实施例中,应用场景可以是数据更新后的正常上电、重置或复位,还可以包括以下步骤:
步骤601,当对NVM进行初始化时,对NVM中的物理块进行遍历。
具体地,当NVM正常上电、重置或复位后,NVM会进行初始化。当对NVM进行初始化时,会对NVM中的物理块进行遍历。其中,对NVM中的物理块进行遍历的具体方式可以是:依次读取NVM中的每个物理块的标识信息。可以理解的是,在进行遍历时,可以从NVM中的一个随机物理地址开始,也可以从预先指定的物理地址开始,本申请实施例对此不作特殊限定。
步骤602,在遍历过程中,若任一物理块处于已擦除状态,则将当前遍历到的物理块的物理地址存入第二信息;或,若任一物理块处于非擦除状态,且处于非擦除状态的物理块基于第三标识完整性校验成功,则在第一信息中创建第二逻辑地址与处于非擦除状态的物理块的物理地址之间的映射关系,其中,第二逻辑地址为处于非擦除状态的物理块的第一标识指示的逻辑地址。
具体地,当遍历到任一物理块时,若当前遍历到的物理块处于已擦除状态,则可以将当前遍历到的物理块的物理地址存入第二信息;若当前遍历到的物理块处于非擦除状态,则可以进一步对当前遍历到的物理块进行完整性校验。以第三标识为完整性校验码为例,对当前遍历到的物理块进行完整性校验的具体方式可以是:基于完整性校验码对当前遍历到的物理块进行完整性校验。若当前遍历到物理块中的数据与完整性校验码不匹配,则可以认为该物理块完整性校验失败,说明掉电过程中该物理块中的数据发生了错误,具体来说,可能是写到一半掉电了,或者擦到一半掉电了;若当前遍历到物理块中的数据与校验码匹配,则可以认为该物理块完整性校验成功,说明掉电过程中该物理块未发生数据错误。其中,该完整性校验码可以是循环冗余校验码(Cyclic Redundancy Check,CRC)或检错码(Error Detect Code,EDC),也可以是其他类型的完整性校验码,本申请实施例对此不作特殊限定。
可以理解的是,当对NVM中的所有物理块遍历完之后,若所有物理块基于第三标识完整性校验成功,且第一信息中不存在一个逻辑地址映射两个物理地址的情况,则可以认为本次数据写入成功完成,无需进一步的操作,。其中,检测一个逻辑地址映射两个物理地址的情况的具体实现方式可以是:读取每个物理块中的第一标识指示的第二逻辑地址,若存在两个物理块的第一标识中保存了相同的第二逻辑地址,则可以认为是存在一个逻辑地址映射两个物理地址的情况。
图7为本申请提供的数据存储方法再一个实施例的流程示意图。再次以第一信息和第二信息存储在RAM或寄存器为例,在图7所示的实施例中,应用场景可以是数据更新后的异常掉电,还可以包括以下步骤:
步骤701,当对NVM进行初始化时,对NVM中的物理块进行遍历。
具体地,当NVM异常掉电重新上电后,NVM会进行初始化。当对NVM进行初始化时,会对NVM中的物理块进行遍历。
步骤702,在遍历过程中,若任一物理块基于第三标识完整性校验失败,则将完整性校验失败的物理块的物理地址存入第三信息,在遍历完成后,基于第三信息中的物理地址将完整性校验失败的物理块进行擦除,并在擦除后将第三信息中的物理地址进行删除;或,在遍历过程中,若存在一个逻辑地址映射两个物理地址的情况,则将旧物理块的物理地址存入第三信息,在遍历完成后,基于第三信息中的物理地址将旧物理块进行擦除,并在擦除后将第三信息中的物理地址进行删除,其中,第一信息中包含新物理块的物理地址与逻辑地址的映射关系。
具体地,在遍历过程中,当遍历到任一物理块时,若当前遍历到的物理块处于已擦除状态,则可以将当前遍历到的物理块的物理地址存入第二信息;若当前遍历到的物理块处于非擦除状态,则可以进一步基于第三标识对当前遍历到的物理块进行完整性校验。若完整性校验成功,则将第二逻辑地址与当前遍历到的物理块的物理地址之间的映射关系存入表1。若完整性校验失败,则将校验失败的物理块的物理地址存入第三信息。其中,判断物理块处于已擦除状态或非擦除状态的具体方式以及对物理块进行完整性校验的具体方式可以参考上述实施例,在此不再赘述。
由于完整性校验失败的物理块都是数据错误的物理块,例如,完整性校验失败的物理块可以是数据写入时发生错误的物理块,也可以是数据擦除时发生的错误的物理块。因此,在遍历完成后,可以将完整性校验失败的物理块进行擦除。其中,将完整性校验失败的物理块进行擦除的具体实现方式,可以基于第三信息中的物理地址将完整性校验失败的物理块进行擦除,并在擦除后,将第三信息中的物理地址进行删除,避免发生重复的对物理块的擦除。
在一些可选的实施例中,若完整性校验成功,则可以创建第二逻辑地址与当前遍历到的物理块的物理地址之间的映射关系。然而,若第一信息中已存储第二逻辑地址与其他物理块的物理地址之间的映射关系,此时,会发生一个逻辑地址映射两个物理地址的情况,也就是产生了冲突。由此,可以进一步根据物理块中的第二标识确定哪个是旧物理块,哪个是新物理块,并可以将旧物理块的物理地址存入第三信息,第一信息中保存新物理块的物理地址与第二逻辑地址之间的映射关系。示例性的,若当前遍历到的物理块为新物理块,则将第一信息中的与第二逻辑地址对应的其他物理块的物理地址存入第三信息,并在第一信息中创建当前遍历到的物理块的物理地址与第二逻辑地址之间的映射关系;若当前遍历到的物理块为旧物理块,则将第一信息中保留第二逻辑地址与其他物理块的物理地址之间的映射关系,并将当前遍历到的物理块的物理地址存入第三信息。
在遍历完成后,可以基于第三信息中的物理地址将旧物理块进行擦除,并在擦除后,将第三信息中的物理地址进行删除。
在一些可选的实施例中,在事务写入的场景中,遍历过程中,还需判断本次事务写入涉及的所有待写入数据是否都已成功写入,若本次事务写入涉及的所有待写入数据都已成功写入,则可以在遍历完成后,基于第三信息中的旧物理块的物理地址将旧物理块进行擦除,并在擦除后,将第三信息中的旧物理块的物理地址进行删除;若本次事务写入涉及的所有待写入数据中至少有一个待写入数据未成功写入,则可以在遍历完成后将本次事务写入中已写入待写入数据的新物理块进行恢复,例如,可以将已写入待写入数据的新物理块与逻辑地址之间的映射关系恢复成未写入待写入数据的旧物理块与逻辑地址之间的映射关系。也就是说,一次事务写入中即使有部分待写入数据写入成功,部分待写入数据写入失败,也要将已写入成功的新物理块与逻辑地址之间的映射关系恢复成旧物理块与逻辑地址之间的映射关系,从而保证事务的原子性,实现事务级别的掉电保护。
在具体实现时,在遍历过程中,首先基于第四标识判断本次事务写入是否已完成。例如,若当前遍历的物理块是新物理块,且第四标识指示当前遍历的物理块是本次事务写入的最后一个写入的物理块,则可以确定本次事务写入已完成;若所有新物理块的第四标识都指示所有新物理块为本次事务写入中的非最后一个写入的物理块,则确定本次事务写入未完成。
当对NVM中的物理块遍历完后,若判断本次事务写入未完成,则可以基于第三信息中的物理地址在第一信息中重新创建旧物理块的物理地址与逻辑地址之间的映射关系,并可以在创建映射关系后在第三信息中删除旧物理块的物理地址。接着,由于第一信息中存储有新物理块的物理地址与逻辑地址之间的映射关系,因此,为了将新物理块的物理地址与逻辑地址之间解除映射关系,可以删除第一信息中该逻辑地址映射的新物理块的物理地址,并将该新物理块的物理地址存入第三信息,基于第三信息中的物理地址将新物理块进行擦除,并可以在擦除后删除第三信息中新物理块的物理地址,由此可以在事务写入失败的情况下实现物理块的恢复。若本次事务写入已完成,则可以基于第三信息中的旧物理块的物理地址将旧物理块进行擦除,并在擦除后,将第三信息中的旧物理块的物理地址进行删除。
在一些可选的实施例中,当对新物理块进行擦除后,还可以将新物理块的物理地址存入第二信息;或,当对旧物理块进行擦除后,还可以将旧物理块的物理地址存入第二信息,由此可以保证第二信息中有充足的空闲物理地址,避免在数据写入时因缺少空闲物理地址导致的重新遍历。
现结合图8a-图8e对上述异常掉电后上电的事务写入的掉电保护过程进行示例性说明。假设NVM中物理块1和物理块2存储有旧数据,其中,物理块1和物理块2的标识信息包括第一标识、第二标识、第三标识和第四标识。以第一标识为逻辑地址,第二标识为索引值,第三标识为完整性校验码,以及第四标识通过布尔值(例如,或1)指示是否是事务写入中的最后一个写入的物理块为例,物理块1的第一标识=逻辑地址1,用于指示物理块1对应的逻辑地址为逻辑地址1,物理块1的第二标识=1,用于指示物理块1的索引值为1,物理块1的第三标识=CRC1,用于指示物理块1的完整性校验码为CRC1,物理块1的第四标识=0,用于指示物理块1非事务写入中的最后一个写入的物理块;物理块2的第一标识=逻辑地址2,用于指示物理块2对应的逻辑地址为逻辑地址2,物理块2的第二标识=1,用于指示物理块2的索引值为1,物理块2的第三标识=CRC2,用于指示物理块2的完整性校验码为CRC2,物理块2的第四标识=1,用于指示物理块2为事务写入中的最后一个写入的物理块。若本次事务写入包含两个待写入数据,例如,待写入数据1及待写入数据2,其对应的逻辑地址分别为逻辑地址1和逻辑地址2,也就是说,本次事务写入是对逻辑地址1和逻辑地址2的原数据进行更新,即对物理块1和物理块2中数据进行数据更新其中,待写入数据2为本次事务写入的最后一个数据。且在事务写入的过程中,待写入数据1写入成功,在待写入数据2的写入过程中发生异常掉电,则重新上电后,可以得到图8a所示的NVM中的物理块示意图。如图8a所示,NVM中包含物理块1、物理块2、物理块3及物理块4。其中,待写入数据1写入物理块3,待写入数2写入物理块4,物理块3的第一标识=逻辑地址1,用于指示物理块3对应的逻辑地址为逻辑地址1,物理块3的第二标识=2,用于指示物理块3的索引值为2,物理块3的第三标识=CRC3,用于指示物理块3的完整性校验码为CRC3,物理块3的第四标识=0,用于指示物理块3非事务写入中的最后一个写入的物理块;物理块4的第一标识=逻辑地址2,用于指示物理块4对应的逻辑地址为逻辑地址2,物理块4的第二标识=2,用于指示物理块4的索引值为2,物理块4的第三标识=CRC4,用于指示物理块4的完整性校验码为CRC4,物理块4的第四标识=1,用于指示物理块4为事务写入中的最后一个写入的物理块。
对NVM中的物理块1-物理块4进行遍历后,由于是在待写入数据2的写入过程中发生异常掉电,因此,物理块1和物理块2的数据是正确的,也就是说,物理块1和物理块2完整性校验成功,可以将物理块1的物理地址和逻辑地址1的映射关系存入第一信息,以及将物理块2的物理地址和逻辑地址2的映射关系存入第一信息。此外,由于待写入数据1成功写入物理块3,因此,物理块3的完整性校验成功,可以创建物理块3的物理地址与逻辑地址1的映射关系。然而,第一信息中已经存储有物理块1的物理地址和逻辑地址1的映射关系,此时,逻辑地址1会同时映射物理块1的物理地址和物理块3的物理地址。通过物理块1的第二标识指示的索引值与物理块3的第二标识指示的索引值的比较,物理块3的第二标识指示的索引值=物理块1的第二标识指示的索引值+1,也就是说,通过将物理块3和物理块1进行比较,物理块3为新物理块,物理块1为旧物理块。接着,可以将新物理块(也就是物理块3)的物理地址与逻辑地址1的映射关系存入第一信息,并可以将旧物理块(也就是物理块1)的物理地址存入第三信息,在第一信息中删除旧物理块(也就是物理块1)的物理地址。
其中,若物理块4的完整性校验成功,也就是说,待写入数据2也成功写入物理块4,则可以创建物理块4的物理地址与逻辑地址2的映射关系。然而,第一信息中已经存储有物理块2的物理地址和逻辑地址2的映射关系,此时,逻辑地址2会同时映射物理块2的物理地址和物理块4的物理地址。通过物理块2的第二标识指示的索引值与物理块4的第二标识指示的索引值的比较,物理块4的第二标识指示的索引值=物理块2的第二标识指示的索引值+1,也就是说,通过将物理块4和物理块2进行比较,物理块4为新物理块,物理块2为旧物理块。接着,可以将新物理块(也就是物理块4)的物理地址与逻辑地址2的映射关系存入第一信息,并可以将旧物理块(也就是物理块2)的物理地址存入第三信息,在第一信息中删除旧物理块(也就是物理块2)的物理地址。由此可以得到如图8b所示的物理块示意图。此外,由于物理块4是新物理块,且通过物理块4的第四标识可以确定物理块4是本次事务写入的最后一个物理块,因此,当待写入数据2成功写入物理块4后,可以认为本次事务写入已完成。接着,可以基于第三信息中的物理地址将旧物理块进行擦除,例如,将物理块1和物理块2进行擦除,由此可以得到如图8c所示的物理块示意图,从而可以完成事务写入的整个过程。如图8c所示,NVM中包含物理块1、物理块2、物理块3及物理块4。其中,物理块1和物理块2已经被擦除,因此,物理块1和物理块2为空,逻辑地址1不再映射向物理块1的物理地址,逻辑地址2不再映射向物理块2的物理地址。物理块3包含新数据(也就是待写入数据1),物理块3的第一标识=逻辑地址1,物理块3的第二标识=2,物理块3的第三标识=CRC3,物理块3的第四标识=0。物理块4包含新数据(待写入数据2),物理块4的第一标识=逻辑地址2,物理块4的第二标识=2,物理块4的第三标识=CRC4,物理块4的第四标识=1。
若物理块4的完整性校验失败,也就是说,待写入数据2未成功写入物理块4,物理块4中的数据是不完整的,则可以将物理块4的物理地址存入第三信息,也就是将校验失败的物理块的物理地址存入第三信息,第一信息中不包含物理块4的物理地址与逻辑地址2之间的映射关系,由此可以得到如图8d所示的物理块示意图。由于待写入数据2是本次事务写入中的一个数据,然而,待写入数据2未成功写入,因此,本次事务写入未完成,需要将本次事务涉及的所有物理块进行恢复。此时,可以将第三信息中的旧物理块的物理地址与逻辑地址的映射关系存入第一信息,例如,将物理块1的物理地址与逻辑地址1的映射关系存入第一信息,在第三信息中删除物理块1的物理地址;接着,将新物理块的物理地址存入第三信息,例如,将物理块3的物理地址存入第三信息,并可以将第一信息中的新物理块(例如,物理块3)的物理地址删除,由此可以解除第一信息中物理块3的物理地址和逻辑地址1的映射关系。最后,可以基于第三信息中的物理地址将物理块进行擦除,例如,擦除物理块3和物理块4,由此可以完成数据恢复,从而可以实现事务写入的掉电保护。当完成数据恢复后,可以得到如图8e所示的物理块的物理地址与逻辑地址的映射示意图。如图8e所示,NVM中包含物理块1、物理块2、物理块3及物理块4。其中,物理块3和物理块4已被擦除,因此,物理块3和物理块4为空,逻辑地址1不再映射向物理块3的物理地址,。物理块1中包含旧数据,物理块1的第一标识=逻辑地址1,物理块1的第二标识=1,物理块1的第三标识=CRC1,物理块1的第四标识=0,物理块2中包含旧数据,物理块2的第一标识=逻辑地址2,物理块2的第二标识=1,物理块2的第三标识=CRC2,物理块2的第四标识=1。
图9为本申请数据存储装置一个实施例的结构示意图,如图9所示,上述数据存储装置90可以包括:获取模块91及写入模块92;其中,
获取模块91,用于当对所述NVM进行初始化时,获取第一信息和第二信息,其中,所述第一信息由所述NVM中的物理块中的标识信息确定,所述标识信息至少包括第一标识、第二标识及第三标识,所述第一标识用于指示所述物理块对应的逻辑地址,所述第二标识用于指示所述物理块的新旧,所述第三标识用于指示完整性校验码;所述第一信息包括逻辑地址与已占用物理块的物理地址之间的映射关系,第二信息由所述NVM中的物理块的擦除状态确定,所述第二信息包括空闲物理块的物理地址;
写入模块92,用于基于所述第一信息和所述第二信息,将待写入数据写入所述NVM的物理块。
其中一种可能的实现方式中,上述写入模块92具体用于若所述第一信息中不包括第一逻辑地址与已占用物理块的物理地址之间的映射关系,则基于所述第二信息确定目标物理块的物理地址,将所述待写入数据写入所述目标物理块,并在所述目标物理块中创建所述标识信息,其中,所述第一逻辑地址为所述待写入数据的逻辑地址;
在所述第一信息中创建所述第一逻辑地址与所述目标物理块的物理地址之间的映射关系,并删除所述第二信息中的所述目标物理块的物理地址。
其中一种可能的实现方式中,所述待写入数据包括一次事务写入的多个数据,所述多个数据用于待写入多个物理块,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块。
其中一种可能的实现方式中,上述写入模块92具体用于若所述第一信息中包括第一逻辑地址与已占用物理块的物理地址之间的第一映射关系,则基于所述第二信息确定目标物理块的物理地址,其中,所述第一逻辑地址为所述待写入数据的逻辑地址;
将所述第一映射关系中的已占用物理块的数据及标识信息写入缓存,将所述缓存中的第一映射关系中的已占用物理块的数据更新成所述待写入数据,并对所述缓存中的标识信息进行更新,将所述缓存中的待写入数据及更新后的标识信息写入所述目标物理块,其中,所述第一映射关系中已占用物理块的第二标识用于标识所述第一映射关系中已占用物理块为旧物理块,所述目标物理块的第二标识用于标识所述目标物理块为新物理块;
在所述第一信息中将所述第一映射关系更新为第二映射关系,并删除所述第二信息中的所述目标物理块的物理地址,其中,所述第二映射关系为所述第一逻辑地址与所述目标物理块的物理地址之间的映射关系;
对所述旧物理块的数据进行擦除。
其中一种可能的实现方式中,所述待写入数据包括一次事务写入的多个数据,所述多个数据用于待写入多个物理块,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块;上述写入模块92还用于当在所述第一信息中获取到本次事务写入中任一旧物理块的物理地址后,将所述旧物理块的物理地址存入第三信息;
若检测到已完成写入的新物理块的第四标识指示所述已完成写入的新物理块是事务写入中的最后一个写入的物理块,则基于所述第三信息中的物理地址对本次事务写入的所有旧物理块的数据进行擦除,并在擦除后删除所述第三信息中的物理地址。
其中一种可能的实现方式中,上述获取模块91具体用于当对所述NVM进行初始化时,对所述NVM中的物理块进行遍历;
在遍历过程中,创建第一信息和第二信息,其中,若任一物理块处于已擦除状态,则将当前遍历到的物理块的物理地址存入所述第二信息;或,若任一物理块处于非擦除状态,且处于所述非擦除状态的物理块基于所述第三标识完整性校验成功,则将所述当前遍历到的物理块的物理地址与第二逻辑地址之间的映射关系存入所述第一信息,所述第二信息中不包含所述当前遍历到的物理块的物理地址;
其中,所述第二逻辑地址为所述处于非擦除状态的物理块的第一标识指示的逻辑地址。
其中一种可能的实现方式中,上述获取模块91还用于在遍历过程中,若任一物理块基于所述第三标识完整性校验失败,则将完整性校验失败的物理块的物理地址存入第三信息;
在遍历完成后,基于所述第三信息中的物理地址将完整性校验失败的物理块进行擦除,并在擦除后将所述第三信息中的物理地址进行删除。
其中一种可能的实现方式中,上述获取模块91还用于在遍历过程中,若存在一个逻辑地址映射两个物理地址的情况,则将旧物理块的物理地址存入第三信息,其中,所述第一信息中包含新物理块的物理地址与逻辑地址的映射关系。
其中一种可能的实现方式中,上述获取模块91还用于在遍历完成后,基于所述第三信息将所述旧物理块进行擦除,并在擦除后将所述第三信息中的物理地址进行删除。
其中一种可能的实现方式中,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块,上述获取模块91还用于在遍历过程中,基于所述第四标识判断本次事务写入是否已完成;
在遍历完成后,若判断本次事务写入未完成,则基于所述第三信息中的物理地址在所述第一信息中重新创建所述旧物理块的物理地址与逻辑地址的映射关系,在创建映射关系后在所述第三信息中删除所述旧物理块的物理地址,将所述第一信息中的新物理块的物理地址存入所述第三信息,基于所述第三信息中的物理地址将所述新物理块进行擦除,并在擦除后删除所述第三信息中的新物理块的物理地址;或,
在遍历完成后,若判断本次事务写入已完成,则基于所述第三信息中的旧物理块的物理地址将所述旧物理块进行擦除,并在擦除后将所述第三信息中的旧物理块的物理地址进行删除。
其中一种可能的实现方式中,上述获取模块91还用于若任一新物理块的第四标识指示所述新物理块为本次事务写入中的最后一个写入的物理块,则确定本次事务写入已完成;或,
若所有新物理块的第四标识都指示所述所有新物理块为本次事务写入中的非最后一个写入的物理块,则确定本次事务写入未完成。
其中一种可能的实现方式中,所述第一信息及所述第二信息存储在随机存取存储器RAM或寄存器中。
其中一种可能的实现方式中,所述第二信息中空闲物理块的物理地址从所述NVM的随机物理地址开始遍历获得。
图10为本申请实施例提供的一种电子设备1000的结构示意图,上述电子设备1000可以包括:至少一个处理器;以及与上述处理器通信连接的至少一个存储器。上述存储器存储有可被上述处理器执行的程序指令,处理器可调用上述程序指令能够执行本申请实施例提供的电子设备1000执行的动作。
如图10所示,电子设备1000可以以通用计算设备的形式表现,或者电子设备1000也可以为手机、平板电脑等移动终端,或者电子设备1000也可以为可穿戴设备、POS机,本申请实施例对电子设备1000的具体形式不作特殊限定。电子设备1000的组件可以包括但不限于:一个或者多个处理器1010,存储器1020,连接不同系统组件(包括存储器1020和处理器1010)的通信总线1040及通信接口1030。
通信总线1040表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnection,PCI)总线。
电子设备1000典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备1000访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器1020可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)和/或高速缓存存储器。电子设备1000可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。尽管图10中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read Only Memory,CD-ROM)、数字多功能只读光盘(Digital Video Disc Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与通信总线1040相连。存储器1020可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器1020中,这样的程序模块包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本申请所描述的实施例中的功能和/或方法。
电子设备1000也可以与一个或多个外部设备(例如键盘、指向设备、显示器等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过通信接口1030进行。并且,电子设备1000还可以通过网络适配器(图10中未示出)与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信,上述网络适配器可以通过通信总线1040与电子设备的其它模块通信。应当明白,尽管图10中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Drives,RAID)系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种数据存储方法,应用于非易失性存储器NVM,其特征在于,所述方法包括:
当对所述NVM进行初始化时,获取第一信息和第二信息,其中,所述第一信息由所述NVM中的物理块中的标识信息确定,所述标识信息至少包括第一标识、第二标识及第三标识,所述第一标识用于指示所述物理块对应的逻辑地址,所述第二标识用于指示所述物理块的新旧,所述第三标识用于指示完整性校验码;所述第一信息包括逻辑地址与已占用物理块的物理地址之间的映射关系,第二信息由所述NVM中的物理块的擦除状态确定,所述第二信息包括空闲物理块的物理地址;
基于所述第一信息和所述第二信息,将待写入数据写入所述NVM的物理块。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一信息和所述第二信息,将待写入数据写入所述NVM的物理块具体包括:
若所述第一信息中不包括第一逻辑地址与已占用物理块的物理地址之间的映射关系,则基于所述第二信息确定目标物理块的物理地址,将所述待写入数据写入所述目标物理块,并在所述目标物理块中创建所述标识信息,其中,所述第一逻辑地址为所述待写入数据的逻辑地址;
在所述第一信息中创建所述第一逻辑地址与所述目标物理块的物理地址之间的映射关系,并删除所述第二信息中的所述目标物理块的物理地址。
3.根据权利要求2所述的方法,其特征在于,所述待写入数据包括一次事务写入的多个数据,所述多个数据用于待写入多个物理块,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第一信息和所述第二信息将待写入数据写入所述NVM的物理块具体包括:
若所述第一信息中包括第一逻辑地址与已占用物理块的物理地址之间的第一映射关系,则基于所述第二信息确定目标物理块的物理地址,其中,所述第一逻辑地址为所述待写入数据的逻辑地址;
将所述第一映射关系中的已占用物理块的数据及标识信息写入缓存,将所述缓存中的第一映射关系中的已占用物理块的数据更新成所述待写入数据,并对所述缓存中的标识信息进行更新,将所述缓存中的待写入数据及更新后的标识信息写入所述目标物理块,其中,所述第一映射关系中已占用物理块的第二标识用于标识所述第一映射关系中已占用物理块为旧物理块,所述目标物理块的第二标识用于标识所述目标物理块为新物理块;
在所述第一信息中将所述第一映射关系更新为第二映射关系,并删除所述第二信息中的所述目标物理块的物理地址,其中,所述第二映射关系为所述第一逻辑地址与所述目标物理块的物理地址之间的映射关系;
对所述旧物理块的数据进行擦除。
5.根据权利要求4所述的方法,其特征在于,所述待写入数据包括一次事务写入的多个数据,所述多个数据用于待写入多个物理块,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块;所述对所述旧物理块的数据进行擦除具体包括:
当在所述第一信息中获取到本次事务写入中任一旧物理块的物理地址后,将所述旧物理块的物理地址存入第三信息;
若检测到已完成写入的新物理块的第四标识指示所述已完成写入的新物理块是事务写入中的最后一个写入的物理块,则基于所述第三信息中的物理地址对本次事务写入的所有旧物理块的数据进行擦除,并在擦除后删除所述第三信息中的物理地址。
6.根据权利要求1所述的方法,其特征在于,所述当对所述NVM进行初始化时,获取第一信息和第二信息包括:
当对所述NVM进行初始化时,对所述NVM中的物理块进行遍历;
在遍历过程中,创建第一信息和第二信息,其中,若任一物理块处于已擦除状态,则将当前遍历到的物理块的物理地址存入所述第二信息;或,若任一物理块处于非擦除状态,且处于所述非擦除状态的物理块基于所述第三标识完整性校验成功,则将所述当前遍历到的物理块的物理地址与第二逻辑地址之间的映射关系存入所述第一信息,所述第二信息中不包含所述当前遍历到的物理块的物理地址;
其中,所述第二逻辑地址为所述处于非擦除状态的物理块的第一标识指示的逻辑地址。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在遍历过程中,若任一物理块基于所述第三标识完整性校验失败,则将完整性校验失败的物理块的物理地址存入第三信息;
在遍历完成后,基于所述第三信息中的物理地址将完整性校验失败的物理块进行擦除,并在擦除后将所述第三信息中的物理地址进行删除。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在遍历过程中,若存在一个逻辑地址映射两个物理地址的情况,则将旧物理块的物理地址存入第三信息,其中,所述第一信息中包含新物理块的物理地址与逻辑地址的映射关系。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在遍历完成后,基于所述第三信息将所述旧物理块进行擦除,并在擦除后将所述第三信息中的物理地址进行删除。
10.根据权利要求8所述的方法,其特征在于,所述标识信息还包括第四标识,所述第四标识用于指示是否是事务写入中的最后一个写入的物理块,所述方法还包括:
在遍历过程中,基于所述第四标识判断本次事务写入是否已完成;
在遍历完成后,若判断本次事务写入未完成,则基于所述第三信息中的物理地址在所述第一信息中重新创建所述旧物理块的物理地址与逻辑地址的映射关系,在创建映射关系后在所述第三信息中删除所述旧物理块的物理地址,将所述第一信息中的新物理块的物理地址存入所述第三信息,基于所述第三信息中的物理地址将所述新物理块进行擦除,并在擦除后删除所述第三信息中的新物理块的物理地址;或,
在遍历完成后,若判断本次事务写入已完成,则基于所述第三信息中的旧物理块的物理地址将所述旧物理块进行擦除,并在擦除后将所述第三信息中的旧物理块的物理地址进行删除。
11.根据权利要求10所述的方法,其特征在于,所述基于所述第四标识判断本次事务写入是否已完成具体包括:
若任一新物理块的第四标识指示所述新物理块为本次事务写入中的最后一个写入的物理块,则确定本次事务写入已完成;或,
若所有新物理块的第四标识都指示所述所有新物理块为本次事务写入中的非最后一个写入的物理块,则确定本次事务写入未完成。
12.根据权利要求1-11中任一项所述的方法,其特征在于,所述第一信息及所述第二信息存储在随机存取存储器RAM或寄存器中。
13.根据权利要求1-11中任一项所述的方法,其特征在于,所述第二信息中空闲物理块的物理地址从所述NVM的随机物理地址开始遍历获得。
14.一种数据存储装置,应用于非易失性存储器NVM,其特征在于,所述数据存储装置包括:
获取模块,用于当对所述NVM进行初始化时,获取第一信息和第二信息,其中,所述第一信息由所述NVM中的物理块中的标识信息确定,所述标识信息至少包括第一标识、第二标识及第三标识,所述第一标识用于指示所述物理块对应的逻辑地址,所述第二标识用于指示所述物理块的新旧,所述第三标识用于指示完整性校验码;所述第一信息包括逻辑地址与已占用物理块的物理地址之间的映射关系,第二信息由所述NVM中的物理块的擦除状态确定,所述第二信息包括空闲物理块的物理地址;
写入模块,用于基于所述第一信息和所述第二信息,将待写入数据写入所述NVM的物理块。
15.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于运行计算机程序,执行如权利要求1-13任一项所述的数据存储方法。
CN202210711985.3A 2022-06-22 2022-06-22 数据存储方法、装置及电子设备 Pending CN117312184A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210711985.3A CN117312184A (zh) 2022-06-22 2022-06-22 数据存储方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210711985.3A CN117312184A (zh) 2022-06-22 2022-06-22 数据存储方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN117312184A true CN117312184A (zh) 2023-12-29

Family

ID=89287194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210711985.3A Pending CN117312184A (zh) 2022-06-22 2022-06-22 数据存储方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN117312184A (zh)

Similar Documents

Publication Publication Date Title
US11249840B2 (en) Data storage devices and methods for rebuilding a memory address mapping table
US8510532B2 (en) Logical-to-physical address translation for a removable data storage device
US7299463B2 (en) Method for atomically updating a plurality of files
US7409623B2 (en) System and method of reading non-volatile computer memory
CN102880521B (zh) 非易失性存储器装置中管理块和存取数据页的方法及设备
JP4560408B2 (ja) 不揮発性記憶装置の制御方法
US8671330B2 (en) Storage device, electronic device, and data error correction method
US20030093610A1 (en) Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
US8332696B2 (en) Defect management method for storage medium and system thereof
US11354192B2 (en) Data storage devices and methods for firmware failure prevention
WO2017143843A1 (zh) 元数据修复方法及装置
CN114924923A (zh) 一种硬盘写入点正确性验证方法、系统、设备及介质
US8966161B2 (en) Memory storage device and restoring method thereof
CN114822664B (zh) 基于数据优先级的风险评估方法、存储装置及控制电路
CN117312184A (zh) 数据存储方法、装置及电子设备
CN112230855A (zh) 固态硬盘及其读写方法
JP2005056144A (ja) フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム
CN113704028B (zh) 一种存储器、数据存储方法以及门锁系统
CN102693372B (zh) 内存储存装置、内存控制器与病毒扫描方法
CN108052410B (zh) 一种防止SPI-Nand读取数据页出错的方法及装置
CN116880745A (zh) 存储块管理方法、装置、计算机设备及计算机存储介质
CN117577154A (zh) 闪存模拟电可擦除可编程只读存储器的方法及相关装置
CN117992294A (zh) 基于Emulator仿真平台的固态硬盘预埋测试方法、装置、设备及介质
CN115220949A (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