CN113934370B - 非易失性存储器的耗损均衡方法、设备及介质 - Google Patents

非易失性存储器的耗损均衡方法、设备及介质 Download PDF

Info

Publication number
CN113934370B
CN113934370B CN202111058196.6A CN202111058196A CN113934370B CN 113934370 B CN113934370 B CN 113934370B CN 202111058196 A CN202111058196 A CN 202111058196A CN 113934370 B CN113934370 B CN 113934370B
Authority
CN
China
Prior art keywords
node
memory
effective data
logic
physical address
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
Application number
CN202111058196.6A
Other languages
English (en)
Other versions
CN113934370A (zh
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.)
Zhuhai Haiqi Semiconductor Co ltd
Original Assignee
Zhuhai Haiqi Semiconductor 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 Zhuhai Haiqi Semiconductor Co ltd filed Critical Zhuhai Haiqi Semiconductor Co ltd
Priority to CN202111058196.6A priority Critical patent/CN113934370B/zh
Publication of CN113934370A publication Critical patent/CN113934370A/zh
Application granted granted Critical
Publication of CN113934370B publication Critical patent/CN113934370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种非易失性存储器的耗损均衡方法、设备及介质,本申请在物理逻辑块中高频次写入小量数据时,利用多个逻辑节点从物理逻辑块的第一个字节写到最后一个字节,直至写满,无需每一次写入数据都进行一次擦除操作,能够极大的减少擦除次数,并且写数据会均匀覆盖整个非易失性存储器,从而达到在该非易失性存储器内实现耗损均衡的目的,具备低成本高效率的优势。

Description

非易失性存储器的耗损均衡方法、设备及介质
技术领域
本发明涉及数据存储技术领域,特别涉及一种非易失性存储器的耗损均衡方法、设备及介质。
背景技术
非易失性存储器设备在执行了许多编程/擦除循环之后耗尽。非易失性存储器设备因为其特性具有读取速度快,但是写数据的话需要先进行块(32KB或者64KB)擦除,块擦除需要几个毫秒时间,如果不做耗损均衡的话,会存在反复擦写同一个物理块的情形,这样会导致写数据变慢(因为每次写操作都需要先擦除),而且由于反复擦写同一物理地址块会导致改该物理地址块先于其他物理地址块失效(非易失性存储器中的物理地址块的擦除寿命有限),从而导致整个非易失性存储器设备产品生命周期缩短。
在相关技术中,已有各种各样的耗损均衡算法实现避免对同一个物理地址块高频次地反复擦写,而是把擦写更均匀地分配到整个设备,使得所有物理地址块的擦写次数趋于平均,从而延长整个产品的生命周期。如专利公开号为CN102792284,发明名称为存储器设备耗损均衡技术的中国公开专利,其公开了将逻辑块地址和该逻辑块地址中指定多个逻辑页面的长度转译为多个物理地址以访问一个或多个存储器设备。每个物理地址均包括设备地址、逻辑单元地址、块地址和页面地址.在另一个实施例中,耗损均衡存储器控制器发现一个或多个存储器设备的持久(persistent)状态。如果对于给定存储器设备没有发现持久状态,则存储器控制器还会为该给定存储器设备的每个逻辑单元建立并缓存持久状态参数。如专利公开号为CN108369556,发明名称为非易失性存储器中的耗损均衡的中国公开专利,其公开了针对支持随机存取(即,不需要单独的擦除循环)的非易失性存储器设备提供了一种改进的耗损均衡技术。特别地,本耗损均衡技术在存储器设备内的小块上运行,并且在实施例中,与常常重新映射大数据块(例如,几千字节)的普通耗损均衡相比,以更精细的尺度/粒度运行。该方法主要针对字节内数据做耗损均衡。
虽然在相关技术中,已有多种的耗损均衡算法实现避免对同一个物理地址块高频次地反复擦写,但是存在着代价高和效率低的缺陷,尤其是针对小量数据高频次写的情形,例如:对于多媒体硬件播放器应用中,需要实时存储播放列表到flash(闪存)非易失性存储器中,其仅需要一个小的非易失性存储空间,例如2KB的空间,方便系统(这里的系统默认为计算机系统)下次开机时能够显示上次播放列表,因此,应用需要每隔几秒钟存储播放列表(几个字节到几十个字节)到flash中,但使用相关方案的耗损均衡技术,付出的代价过高,而且效率也较低。
发明内容
本发明旨在至少解决现有技术中存在的技术问题。为此,本发明提出一种非易失性存储器的耗损均衡方法、设备及介质,能够在该非易失性存储器内实现耗损均衡的目的,同时具备低成本高效率的优势。
本发明的第一方面,提供了一种非易失性存储器的耗损均衡方法,所述耗损均衡方法包括以下步骤:
当每次执行写操作时,生成一个当前逻辑节点,将所述当前逻辑节点写入至所述非易失性存储器的当前物理地址块中,直至将所述当前物理地址块写满;其中,所述当前逻辑节点位于前一个写入所述当前物理地址块中的历史逻辑节点之后;所述当前物理地址块的每个逻辑节点中包括写入的有效数据、所述有效数据在所述非易失性存储器中的长度和偏移地址以及所述有效数据对应的CRC验证值。
本发明的第二方面,提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现:如上述的非易失性存储器的耗损均衡方法。
本发明的第三方面,提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行:如上述的非易失性存储器的耗损均衡方法。
根据本发明提供的非易失性存储器的耗损均衡方法,本实施例在物理逻辑块中高频次写入小量数据时,利用多个逻辑节点从物理逻辑块的第一个字节写到最后一个字节,直至写满,可在写满之后再进行擦除操作,无需每一次写入数据都进行一次擦除操作,能够极大的减少擦除次数,并且写数据会均匀覆盖整个非易失性存储器,从而达到在该非易失性存储器内实现耗损均衡的目的,具备低成本高效率的优势。
可以理解的是,上述第二方面至第三方面与相关技术相比存在的有益效果与上述第一方面与相关技术相比存在的有益效果相同,可以参见上述第一方面中的相关描述,在此不再赘述。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一个实施例提供的一种非易失性存储器的耗损均衡方法的流程示意图;
图2为本发明一个实施例提供的逻辑节点的结构示意图;
图3为本发明一个实施例提供的当前物理地址块中写入逻辑节点的结构示意图;
图4为本发明另一个实施例提供的一种非易失性存储器的耗损均衡方法的流程示意图;
图5为本发明一个实施例提供的内存节点的结构示意图;
图6为本发明另一个实施例提供的一种非易失性存储器的耗损均衡方法的流程示意图;
图7为本发明一个实施例提供的逻辑节点合并和内存节点链表更新的示意图;
图8为本发明一个实施例提供的不同逻辑节点之间重合时,内存节点合并的示意图;
图9为本发明另一个实施例提供的一种非易失性存储器的耗损均衡方法的流程示意图;
图10为本发明一个实施例提供的一种非易失性存储器的耗损均衡方法掉电恢复数据的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
相关技术针对小量数据高频次写提出特别优化的耗损均衡技术,存在代价高和效率低的缺陷。
为了解决上述缺陷,参照图1,本发明的一种非易失性存储器的耗损均衡方法,本方法包括:
步骤S100、当每次执行写操作时,生成一个当前逻辑节点,将当前逻辑节点写入至非易失性存储器的当前物理地址块中,直至将当前物理地址块写满;其中,当前逻辑节点位于前一个写入当前物理地址块中的历史逻辑节点之后;当前物理地址块的每个逻辑节点中包括写入的有效数据、有效数据在非易失性存储器中的长度和偏移地址以及有效数据对应的CRC验证值。
在本实施例中,设计了逻辑节点用于数据写操作,其中当前逻辑节点是指的当前时刻执行写操作时产生的逻辑节点;历史逻辑节点是指的历史时刻执行写操作时产生的逻辑节点,每个逻辑节点具备写入和擦除的功能。如图2所示,一个逻辑节点从左至右依次包括:Length(有效数据的长度)、Offset(有效数据在2KB非易失性存储器中的偏移地址)、Payload(有效数据,即实际需要被写入到非易失性存储器中的数据)以及CRC(有效数据的CRC校验值),其中,Length和Offset用于区分每一笔写入至当前物理逻辑块中的有效数据。CRC用于验证逻辑节点中有效数据的完整性。
如图2所示,每个逻辑节点包含2字节的长度+2字节的偏移地址+有效数据(以最大2KB为例)+4字节的CRC校验值。每次应用层调用有效数据写操作时(即应用层执行一次写操作时),系统(本申请所述的系统可默认为计算机系统)都会自动生成一个逻辑节点,然后将逻辑节点按照生成顺序写入当前物理逻辑块中。如图3所示,当前时刻执行写操作,生成一个当前逻辑节点Logic node3,将当前逻辑节点Logic node3写入至当前物理逻辑块A的历史逻辑节点Logic node2之后,依次类推,直至当前物理逻辑块A被写满。需要注意的是,本实施例所述的当前物理逻辑块是指的正在被写入数据的物理逻辑块,非易失性存储器包括至少两个物理逻辑块,假设非易失性存储器设置物理逻辑块A和物理逻辑块B,当物理逻辑块A写满逻辑节点之后,对后一个物理逻辑块B进行擦除,然后将新产生的逻辑节点写入物理逻辑块B中,直至物理逻辑块B写满之后,又擦除物理逻辑块A,依次类推。
在相关方案中,对非易失性存储器进行数据写操作时,例如对nor flash(norflash是指一种常见的非易失性存储器)进行数据写操作时,只能对“新的扇区(sector)”进行写操作,如果要对曾经写的地方再写数据,就需要对这个扇区进行擦除(erase)操作才能写,而非易失性存储器对于擦除和编程次数是有次数限制的,例如10万次,而相关方案针对小量数据高频次写的情形存在代价高和效率低的缺陷。为了解决该缺陷,本实施例在物理逻辑块中高频次写入小量数据时,利用多个逻辑节点从物理逻辑块的第一个字节写到最后一个字节,直至将当前物理逻辑块写满,可在当前物理逻辑块写满之后再进行擦除操作,无需每一次写入数据都进行一次擦除操作,能够极大的减少擦除次数,并且通过逻辑节点写入数据会均匀覆盖整个非易失性存储器,从而达到在该非易失性存储器内实现耗损均衡的目的,具备低成本高效率的优势。
参照图4,基于上述步骤S100,本非易失性存储器的耗损均衡方法还包括以下步骤:
步骤S200、在内存中设置可随机地址访问的镜像存储空间,镜像存储空间设置有根据当前物理地址块的每个逻辑节点中的有效数据进行扫描重构得到的有效数据缓存,且还设置有内存节点链表,内存节点链表由多个内存节点组成,每个内存节点用于指示对应的逻辑节点中的有效数据在有效数据缓存中的长度和偏移地址。
在上述实施例步骤S100的基础上,本实施例针对于系统读数据操作,在内存中设置可随机地址访问的镜像存储空间,镜像存储空间设计了有效数据缓存(例如2KB)和内存节点链表(后续附图使用buffer nodes标识内存节点链表)。其中,有效数据缓存是通过扫描当前物理地址块的每个逻辑节点中的有效数据之后,重构而成,需要注意的是,这里可以在当前物理地址块中每存入一个逻辑节点之后就进行扫描,也可以在当前物理地址块写满之后进行扫描,此处不进行限制。内存节点链表由多个内存节点(后续附图使用buffernode标识内存节点)组成,每个内存节点用于指示对应的逻辑节点中的有效数据在有效数据缓存中的长度和偏移地址。如图5所示,一个内存节点包括:Length(有效数据缓存的长度)和Offset(有效数据缓存的偏移地址),可以根据当前物理地址块的逻辑节点中已给出的有效数据的长度和有效数据在非易失性存储器中的偏移地址进行求取,此处不再细述。
例如:对于小量数据高频次写的应用程序开发来说,只需要2KB的非易失性存储空间,对于这2KB的空间,想要能够随机地址访问(读取或者写入),就需要在内存中构建一个2KB的可随机地址访问的非易失性存储镜像空间,从物理地址块中的逻辑节点一个个扫描完后重构出有效数据缓存。值得注意的是,镜像存储空间中的有效数据缓存是对物理地址块中的逻辑节点进行扫描并“汇总”后重构的数据。本实施例还设计一个内存节点链表,用于指示对应的逻辑节点中的有效数据在有效数据缓存中的长度和偏移地址,本实施例基于上述步骤S100的基础上,不仅实现了非易失性存储器的低代价高效率的耗损均衡,而且还构建一镜像存储空间,在镜像存储空间中构建有效数据缓存和内存节点链表,使得应用层的写数据接口可以做到随机访问,无需关心实际物理地址块的写操作。
参照图6,基于上述实施例,步骤S200之后还包括步骤:
步骤S201、遍历当前物理地址块的每个逻辑节点,获取有效数据的偏移地址存在重合的逻辑节点。
步骤S202、合并有效数据的偏移地址存在重合的逻辑节点,得到合并结果。
步骤S203、根据合并结果,对有效数据缓存和相应的内存节点分别进行合并,并得到更新后的有效数据缓存和更新后的内存节点链表。
由于当前物理地址块中写入的逻辑节点有可能出现偏移地址重合,出现地址重合的有效数据没有意义,因此需要对地址重合的有效数据进行合并。例如:假设当前物理地址块写满有100个逻辑节点,有可能这100个逻辑节点仅覆盖了地址0至2KB的空间,里面有重复的写操作,因此本实施例步骤S201至S203在当前物理地址块和镜像存储空间中对重复写操作的数据进行合并,过滤没有意义的数据。
如图7所示,图7示出了系统在遍历了当前物理地址块中3个逻辑节点(图7中使用Logic node标识逻辑节点)后的内存节点链表(图7中使用buffer nodes标识内存节点链表,用Updated Buffer Nodes标识更新后的内存节点链表)的指示结果,当系统遍历第4个逻辑节点(Logic node4)后发现第4个逻辑节点与第2个逻辑节点的偏移地址有重合,系统会将Payload of Logic node4(第4个逻辑节点中的有效数据)和Payload of Logic node2(第2个逻辑节点中的有效数据)进行合并,并在合并之后对镜像存储空间中的有效数据缓存(图7中使用Payload Buffer标识有效数据缓存)和内存节点进行同步合并或同步更新,得到更新后的内存节点链表和更新后的有效数据缓存。
每当遍历物理地址块中的一个逻辑节点时,如果发现有跟当前遍历的逻辑节点存在地址重合的其它逻辑节点后,系统就会把存在地址重合的其它相关逻辑节点进行合并,并同步更新有效数据缓存和内存节点链表。
图8(图8中,通过Buffer node标识内存节点,使用New Buffer node标识合并后产生的新的内存节点)示出了不同的逻辑节点地址重合情况下内存节点合并的结果,具体如下所示:
若当前遍历的逻辑节点中的有效数据的偏移地址与前一个逻辑节点中的有效数据的偏移地址之间存在部分重合或完全重合,将当前遍历的逻辑节点对应的内存节点和前一个逻辑节点对应的内存节点进行合并。
若当前遍历的逻辑节点中的有效数据的偏移地址与前一个逻辑节点中的有效数据的偏移地址之间存在部分重合,且当前遍历的逻辑节点中的有效数据的偏移地址与后一个逻辑节点中的有效数据的偏移地址之间存在部分重合,将当前遍历的逻辑节点对应的内存节点、前一个逻辑节点对应的内存节点以及后一个逻辑节点对应的内存节点进行合并。
若当前遍历的逻辑节点中的有效数据的偏移地址与后一个逻辑节点中的有效数据的偏移地址之间存在完全重合,将当前遍历的逻辑节点对应的内存节点和后一个逻辑节点对应的内存节点进行合并。
若当前遍历的逻辑节点中的有效数据的偏移地址与前一个逻辑节点中的有效数据的偏移地址之间存在部分重合,且当前遍历的逻辑节点中的有效数据的偏移地址与后一个逻辑节点中的有效数据的偏移地址之间存在完全重合;或者若当前遍历的逻辑节点中的有效数据的偏移地址与前一个逻辑节点中的有效数据的偏移地址之间存在完全重合,且当前遍历的逻辑节点中的有效数据的偏移地址与后一个逻辑节点中的有效数据的偏移地址之间存在部分重合,将当前遍历的逻辑节点对应的内存节点、前一个逻辑节点对应的内存节点以及后一个逻辑节点对应的内存节点进行合并。
若当前遍历的逻辑节点中的有效数据的偏移地址与其它多个逻辑节点中的有效数据的偏移地址之间存在重合,将当前遍历的逻辑节点对应的内存节点和其它多个逻辑节点对应的内存节点进行合并。
参照图9,基于上述实施例,本非易失性存储器的耗损均衡方法还包括如下步骤:
步骤S300、当非易失性存储器的当前物理地址块写满后,擦除当前物理地址块的后一块物理地址块。
步骤S400、根据有效数据缓存生成新的逻辑节点,将生成的新的逻辑节点写入至后一块物理地址块的顶部。
在本实施例的步骤S300中,当非易失性存储器的当前物理地址块写满之后,当前物理地址块无法再进行数据写入,需要擦除当前物理地址块的后一块物理地址块,然后继续在当前物理地址块的后一块物理地址块中进行写入,这里所述的后一块物理地址块是指的下一个写入数据的物理地址块。例如一个非易失性存储器中包括物理地址块A和物理地址块B,假设物理地址块A为当前物理地址块,那么在物理地址块A写满之后,将擦除物理地址块B(这里将物理地址块B作为物理地址块A的后一块物理地址块)中的数据,然后就可将新生成的逻辑节点写入物理地址块B中。
在本实施例的步骤S400中,将根据有效数据缓存生成新的逻辑节点,然后将该新的逻辑节点写入至后一块物理地址块的顶部。例如:一个非易失性存储器中包括物理地址块A和物理地址块B,物理地址块A中写满有100个逻辑节点,100个逻辑节点就覆盖了地址0至2KB的空间,里面有重复的写操作,那么,往物理地址块B写入数据之前,就先需要根据有效数据缓存新生成一个逻辑节点,该新生成一个逻辑节点描述地址0至2KB这段空间的有效数据,然后将新生成一个逻辑节点写入至物理地址块B的顶部(这里所述的顶部指的是物理地址块B的第一个位置)。例如:物理地址块A中写满有100个逻辑节点,100个逻辑节点中就覆盖了地址0至1KB的空间和1.5至2KB的空间,里面有重复的写操作,那么,往物理地址块B写入数据之前,就需要根据有效数据缓存新生成两个逻辑节点分别描述0至1KB以及1.5至2KB这两段空间的有效数据,然后将新生成两个逻辑节点写入至物理地址块B的顶部。
基于上述实施例,在步骤S400之后,本方法还包括步骤:
步骤S401、生成当前物理地址块对应的CRC验证值。
步骤S402、将当前物理地址块对应的CRC验证值写入至当前物理地址块的尾部。
基于上述实施例,本实施例提供的方法,能够安全的进行数据恢复,能够确保非易失性存储器中的数据可靠性。参照图10,本实施例的具体实现方式如下所示:
假设一个非易失性存储器中包括物理地址块A和物理地址块B,当物理地址块A(当前物理地址块)写满,且物理地址块B(当前物理地址块的后一个物理地址块)没有写入数据时(没有被写入数据就不需要进行擦除),系统执行如下步骤:
第一步、根据内存中的有效缓存数据(2KB)生成新的逻辑节点写入到物理地址块A中;
第二步、4字节CRC验证值被写入到物理地址块A中的尾部;
如果系统掉电发生在第一步过程中,那么重新开机后系统仍然从物理地址块A中恢复有效数据;本实施例是从物理地址块中恢复有效数据至内存的镜像存储空间中,并且会同步恢复生成内存节点链表,后文同理并不再赘述。
如果系统掉电发生在第二步过程中,那么重新开机后系统检查物理地址块A的CRC校验是否正确,此时CRC校验发生错误,系统仍然从物理地址块A中恢复有效数据;
如果系统掉电发生在第二步正常执行完成,那么重新开机后系统检查物理地址块A的CRC校验是否正确,此时CRC校验正确,系统将从物理地址块B中恢复有效数据。
假设一个非易失性存储器中包括物理地址块A和物理地址块B,当物理地址块A(当前物理地址块的后一个物理地址块)先被写满,且物理地址块B(当前物理地址块)写满时,系统执行如下步骤:
第一步、擦除物理地址块A;
第二步、根据内存中的有效缓存数据(2KB)生成新的逻辑节点写入到物理地址块A的顶部;
第三步、4字节CRC验证值被写入到物理地址块B的尾部;
如果系统掉电发生在第一步过程中,因为物理地址块B的CRC验证值未被写入,还是保持擦除后的初始值0xff,那么重新开机后系统从物理地址块B中恢复有效数据;
如果系统掉电发生在第二步过程中,因为物理地址块B的CRC字段未被写入,还是保持擦除后的初始值0xff,那么重新开机后系统从物理地址块B中恢复有效数据;
如果系统掉电发生在第三步过程中,因为物理地址块B的CRC校验错误,那么重新开机后系统从物理地址块B中恢复有效数据;
如果系统掉电发生在第三步过程执行完成后,因为物理地址块B的CRC校验正确,那么重新开机后系统从物理地址块A中恢复有效数据。
在本申请的一个实施例中,在步骤S400将生成的新的逻辑节点写入至后一块物理地址块的顶部之后,本方法还包括如下步骤:
步骤S403、将每次执行写操作时新生成的逻辑节点按生成顺序写入后一块物理地址块中。
这里的过程同在当前物理地址块中写入当前逻辑节点的过程一致,此处不再赘述。
本申请的一个实施例,提供了非易失性存储器的耗损均衡方法的一种实施过程:
以用户需求2KB的非易失性随机访问存储,物理地址块大小为64KB为例,非易失性存储器包括物理地址块A和物理地址块B。
系统每执行一次写操作后将生成一个逻辑节点,逻辑节点会被写入物理地址块中,系统同时在内存中生成并维护一个2KB的有效数据缓存以及相应的内存节点链表。逻辑节点会被顺序写入到物理地址块A中已达到耗损均衡的目的直至物理地址块A写满。物理地址块A写满后将按照内存中的有效数据缓存生成新的逻辑节点写入物理地址块B中的顶部,然后在物理地址块B中根据应用需求开始逻辑节点写入(即执行写入操作时,生成逻辑节点,将逻辑节点写入至物理地址块B中)。
当系统掉电并重新上电后,系统根据上述实施例的数据恢复方案从物理地址块A或物理地址块B中恢复有效数据至系统内存中并且恢复生成相应的内存节点链表,能够确保非易失性存储器中的数据可靠性。
本发明的一个实施例,提供了一种电子设备,该设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
处理器和存储器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述实施例的非易失性存储器的耗损均衡方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例方法,例如,执行以上描述的图1中的方法步骤S100、图4中的方法步骤S100至步骤S200、图6中的方法步骤S201至步骤S203以及图9中的方法步骤S100至步骤S400。
以上所描述的终端实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
此外,本发明的一个实施例,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述终端实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的非易失性存储器的耗损均衡方法,例如,执行以上描述的图1中的方法步骤S100、图4中的方法步骤S100至步骤S200、图6中的方法步骤S201至步骤S203以及图9中的方法步骤S100至步骤S400。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (9)

1.一种非易失性存储器的耗损均衡方法,其特征在于,所述耗损均衡方法包括以下步骤:
当每次执行写操作时,生成一个当前逻辑节点,将所述当前逻辑节点写入至所述非易失性存储器的当前物理地址块中,直至将所述当前物理地址块写满;其中,所述当前逻辑节点位于前一个写入所述当前物理地址块中的历史逻辑节点之后;所述当前物理地址块的每个逻辑节点中包括写入的有效数据、所述有效数据在所述非易失性存储器中的长度和偏移地址以及所述有效数据对应的CRC验证值;
在内存中设置可随机地址访问的镜像存储空间,所述镜像存储空间设置有根据所述当前物理地址块的每个逻辑节点中的所述有效数据进行扫描重构得到的有效数据缓存,且还设置有内存节点链表,所述内存节点链表由多个内存节点组成,每个所述内存节点用于指示对应的逻辑节点中的所述有效数据在所述有效数据缓存中的长度和偏移地址。
2.根据权利要求1所述的非易失性存储器的耗损均衡方法,其特征在于,所述耗损均衡方法还包括:
遍历所述当前物理地址块的每个逻辑节点,获取所述有效数据的偏移地址存在重合的逻辑节点;
合并所述有效数据的偏移地址存在重合的逻辑节点。
3.根据权利要求2所述的非易失性存储器的耗损均衡方法,其特征在于,在所述合并所述有效数据的偏移地址存在重合的逻辑节点之后,所述耗损均衡方法还包括:
根据所述合并所述有效数据的偏移地址存在重合的逻辑节点之后得到的合并结果,对所述有效数据缓存和相应的所述内存节点分别进行合并,得到更新后的所述有效数据缓存和更新后的所述内存节点链表。
4.根据权利要求3所述的非易失性存储器的耗损均衡方法,其特征在于,所述根据所述合并所述有效数据的偏移地址存在重合的逻辑节点之后得到的合并结果,对相应的所述内存节点进行合并,包括:
若当前遍历的逻辑节点中的所述有效数据的偏移地址与前一个逻辑节点中的所述有效数据的偏移地址之间存在部分重合或完全重合,将当前遍历的逻辑节点对应的所述内存节点和前一个逻辑节点对应的所述内存节点进行合并;
若当前遍历的逻辑节点中的所述有效数据的偏移地址与前一个逻辑节点中的所述有效数据的偏移地址之间存在部分重合,且当前遍历的逻辑节点中的所述有效数据的偏移地址与后一个逻辑节点中的所述有效数据的偏移地址之间存在部分重合,将当前遍历的逻辑节点对应的所述内存节点、前一个逻辑节点对应的所述内存节点以及后一个逻辑节点对应的所述内存节点进行合并;
若当前遍历的逻辑节点中的所述有效数据的偏移地址与后一个逻辑节点中的所述有效数据的偏移地址之间存在完全重合,将当前遍历的逻辑节点对应的所述内存节点和后一个逻辑节点对应的所述内存节点进行合并;
若当前遍历的逻辑节点中的所述有效数据的偏移地址与前一个逻辑节点中的所述有效数据的偏移地址之间存在部分重合,且当前遍历的逻辑节点中的所述有效数据的偏移地址与后一个逻辑节点中的所述有效数据的偏移地址之间存在完全重合;或者若当前遍历的逻辑节点中的所述有效数据的偏移地址与前一个逻辑节点中的所述有效数据的偏移地址之间存在完全重合,且当前遍历的逻辑节点中的所述有效数据的偏移地址与后一个逻辑节点中的所述有效数据的偏移地址之间存在部分重合,将当前遍历的逻辑节点对应的所述内存节点、前一个逻辑节点对应的所述内存节点以及后一个逻辑节点对应的所述内存节点进行合并;
若当前遍历的逻辑节点中的所述有效数据的偏移地址与其它多个逻辑节点中的所述有效数据的偏移地址之间存在重合,将当前遍历的逻辑节点对应的所述内存节点和其它多个逻辑节点对应的所述内存节点进行合并。
5.根据权利要求3所述的非易失性存储器的耗损均衡方法,其特征在于,所述耗损均衡方法还包括:
当所述非易失性存储器的所述当前物理地址块写满后,擦除所述当前物理地址块的后一块物理地址块;
根据所述有效数据缓存生成新的逻辑节点,将生成的所述新的逻辑节点写入至所述后一块物理地址块的顶部。
6.根据权利要求5所述的非易失性存储器的耗损均衡方法,其特征在于,在所述将生成的所述新的逻辑节点写入至所述后一块物理地址块的顶部之后,所述耗损均衡方法还包括:
生成所述当前物理地址块对应的CRC验证值;
将所述当前物理地址块对应的CRC验证值写入至所述当前物理地址块的尾部。
7.根据权利要求6所述的非易失性存储器的耗损均衡方法,其特征在于,在所述将生成的所述新的逻辑节点写入至所述后一块物理地址块的顶部之后,所述耗损均衡方法还包括:
将每次执行写操作时新生成的逻辑节点按生成顺序写入所述后一块物理地址块中。
8.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现:如权利要求1至7任一项所述的非易失性存储器的耗损均衡方法。
9.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行:如权利要求1至7任一项所述的非易失性存储器的耗损均衡方法。
CN202111058196.6A 2021-09-09 2021-09-09 非易失性存储器的耗损均衡方法、设备及介质 Active CN113934370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111058196.6A CN113934370B (zh) 2021-09-09 2021-09-09 非易失性存储器的耗损均衡方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111058196.6A CN113934370B (zh) 2021-09-09 2021-09-09 非易失性存储器的耗损均衡方法、设备及介质

Publications (2)

Publication Number Publication Date
CN113934370A CN113934370A (zh) 2022-01-14
CN113934370B true CN113934370B (zh) 2022-06-28

Family

ID=79275221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111058196.6A Active CN113934370B (zh) 2021-09-09 2021-09-09 非易失性存储器的耗损均衡方法、设备及介质

Country Status (1)

Country Link
CN (1) CN113934370B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020107243A (ja) * 2018-12-28 2020-07-09 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727402B (zh) * 2009-10-23 2012-07-04 深圳市江波龙电子有限公司 一种非易失性存储器数据的读写控制方法及系统
CN107168647B (zh) * 2017-04-17 2020-10-23 武汉永力科技股份有限公司 Flash数据读写方法及系统
CN109582599B (zh) * 2017-09-29 2023-12-22 上海宝存信息科技有限公司 数据储存装置以及非挥发式存储器操作方法
CN109032512A (zh) * 2018-07-10 2018-12-18 郑州云海信息技术有限公司 一种实现数据追加写的方法、装置及设备
US11055008B2 (en) * 2018-08-02 2021-07-06 EMC IP Holding Company LLC Managing wear balancing in mapped RAID storage systems
TWI676176B (zh) * 2018-10-25 2019-11-01 群聯電子股份有限公司 資料整併方法、記憶體儲存裝置及記憶體控制電路單元
CN112817544B (zh) * 2021-03-05 2024-09-20 北京星网锐捷网络技术有限公司 一种数据处理方法、存储系统及存储设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020107243A (ja) * 2018-12-28 2020-07-09 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法

Also Published As

Publication number Publication date
CN113934370A (zh) 2022-01-14

Similar Documents

Publication Publication Date Title
US10783071B2 (en) Data storage device and operating method thereof, wherein mapping table for valid data of source block that has not been copied to destination block has a higher priority than mapping information collected by reverse scanning from end of the destination block
US8307149B2 (en) Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table
USRE46404E1 (en) Flash memory management method
US6865658B2 (en) Nonvolatile data management system using data segments and link information
US10067032B2 (en) Back-up and restoration of data between volatile and flash memory
US8171205B2 (en) Wrap-around sequence numbers for recovering from power-fall in non-volatile memory
US20130114339A1 (en) Storage apparatus and data control method
US20070083697A1 (en) Flash memory management
KR20030011230A (ko) 비휘발성 기억 장치 및 그의 재기입 제어 방법
CN107203331B (zh) 写数据的方法及装置
CN112596668A (zh) 一种存储器的坏块处理方法及系统
CN113934370B (zh) 非易失性存储器的耗损均衡方法、设备及介质
CN116027981A (zh) 数据存储器及其数据回收方法
JP2001249855A (ja) 不揮発性メモリのデータ書き替え方法及び加入者回路
CN110018784B (zh) 数据处理方法、装置及计算设备
KR100319254B1 (ko) 플레쉬 메모리를 이용한 비휘발성 데이터 영역 복구 방법
JP4866114B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
JP4239754B2 (ja) 不揮発メモリシステム
US12039193B2 (en) Apparatus, method and computer program for managing memory page updates within non-volatile memory
US20240265964A1 (en) Flash memory and wear leveling method thereof
JPH1091490A (ja) フラッシュメモリを利用した記憶装置
JP2009199211A (ja) メモリ制御方法及び装置、コンピュータプログラム
TW202433483A (zh) 快閃記憶體及其耗損均衡方法
CN116775379A (zh) 一种链表式数据存储方法、智能终端及存储介质
CN114138206A (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