CN116893981A - 存储器的操作方法、装置、存储介质及电子装置 - Google Patents
存储器的操作方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN116893981A CN116893981A CN202310915392.3A CN202310915392A CN116893981A CN 116893981 A CN116893981 A CN 116893981A CN 202310915392 A CN202310915392 A CN 202310915392A CN 116893981 A CN116893981 A CN 116893981A
- Authority
- CN
- China
- Prior art keywords
- physical block
- physical
- block
- blocks
- subset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013507 mapping Methods 0.000 claims abstract description 112
- 230000007306 turnover Effects 0.000 claims abstract description 71
- 238000004590 computer program Methods 0.000 claims description 16
- 230000002159 abnormal effect Effects 0.000 abstract description 17
- 230000000694 effects Effects 0.000 abstract description 10
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000036541 health Effects 0.000 description 10
- 238000005192 partition Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 238000012966 insertion method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例提供了一种存储器的操作方法、装置、存储介质及电子装置,其中,该方法包括:获取存储器中包括的物理块集合中的各个物理块的翻转位数;根据物理块集合中的各个物理块的翻转位数,建立逻辑块集合与物理块集合之间的映射关系表,其中,映射关系表用于表示逻辑块的标识与物理块的标识之间的映射关系;根据映射关系表对存储器执行读和/或写操作。通过本发明实施例,解决了相关技术中存在的对存储器的操作方法容易出现异常的问题,达到了降低操作出现异常的概率的效果。
Description
技术领域
本发明实施例涉及存储技术领域,具体而言,涉及一种存储器的操作方法、装置、存储介质及电子装置。
背景技术
目前存储器在诸多领域都得到了广泛应用,而存储器的寿命成为了广大用户最关注的问题,因此,如何提高存储器的寿命成为了业内亟待解决的问题。例如,以NAND Flash为例,NAND Flash有寿命限制,主要体现在擦写次数上,擦写的单位为一个块block。每个NAND Flash以block进行管理,当某一个block达到NAND Flash的擦写上限时,该block会被标记为坏块,表明此block不能再使用了,否则会产生严重的不可预知的后果。相关技术中主要采用通过设置擦写次数阈值的方法,当检测到块的擦写次数达到一定阈值时,将擦除次数小的块上的冷数据迁移到擦除次数大的空闲块上,但是,由于Flash中包括多个块,每个块都存在工艺差异,无法对某一个block做精确具体的评估,即相关技术中对block健康状态的评估方法不准确,也就导致设置的擦写次数阈值可能并不精确,按照相关技术中的方法对Flash中的块执行读写操作容易出现异常的情况,最直接的影响就是NAND Flash中该block的数据丢失,即相关技术中对存储器的操作方法容易出现异常的问题。
针对相关技术中存在的对存储器的操作方法容易出现异常的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种存储器的操作方法、装置、存储介质及电子装置,以至少解决相关技术中存在的对存储器的操作方法容易出现异常的问题。
根据本发明的一个实施例,提供了一种存储器的操作方法,包括:获取存储器中包括的物理块集合中的各个物理块的翻转位数;根据所述物理块集合中的各个物理块的翻转位数,建立逻辑块集合与所述物理块集合之间的映射关系表,其中,所述映射关系表用于表示逻辑块的标识与物理块的标识之间的映射关系,所述逻辑块的标识为所述逻辑块集合中的逻辑块的标识,所述物理块的标识为所述物理块集合中的物理块的标识;根据所述映射关系表对所述存储器执行读和/或写操作。
在一个示例性实施例中,所述根据所述物理块集合中的各个物理块的翻转位数,建立逻辑块集合与所述物理块集合之间的映射关系表,包括:根据所述物理块集合中的各个物理块的翻转位数,创建N个链表,其中,所述N个链表中的第i个链表包括所述物理块集合中的翻转位数均位于第i个数值区间内的物理块的标识,N为大于或等于1的正整数,i为大于或等于1、且小于或等于N的正整数;在所述N个链表中的各个链表按照所对应的数值区间从小到大的顺序排列、且所述逻辑块集合的各个逻辑块按照所对应的逻辑地址从小到大的顺序排列的情况下,依次在所述N个链表中的第i个链表所包括的物理块的标识与所述逻辑块集合中的逻辑块的标识之间建立映射关系,得到所述映射关系表。
在一个示例性实施例中,所述根据所述映射关系表对所述存储器执行读和/或写操作,包括:在接收到目标操作命令的情况下,根据所述映射关系表确定与所述目标操作命令所指示的目标逻辑块子集对应具有映射关系的第一物理块子集,其中,所述逻辑块集合包括所述目标逻辑块子集,所述物理块集合包括所述第一物理块子集;在所述第一物理块子集中的各个物理块当前的翻转位数均小于或等于预定阈值的情况下,对所述第一物理块子集中的各个物理块执行所述目标操作命令所指示的读和/或写操作。
在一个示例性实施例中,所述方法还包括:在所述目标操作命令指示读操作、且在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,在所述物理块集合中确定第二物理块,其中,所述第二物理块当前的翻转位数小于或等于所述预定阈值、且所述第二物理块的剩余存储空间大于或等于所述第一物理块中当前存储的数据所占用的空间;将所述第一物理块中当前存储的数据拷贝至所述第二物理块中的剩余存储空间;对所述第一物理块子集中除所述第一物理块之外的物理块以及所述第二物理块执行所述目标操作命令所指示的读操作。
在一个示例性实施例中,所述方法还包括:在所述目标操作命令指示写操作、且在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,在所述物理块集合中确定第二物理块,其中,所述第二物理块当前的翻转位数小于或等于所述预定阈值;对所述第一物理块子集中除所述第一物理块之外的物理块以及所述第二物理块执行所述目标操作命令所指示的写操作。
在一个示例性实施例中,所述在所述物理块集合中确定第二物理块,包括:在确定第一目标链表中包括空闲物理块的情况下,从所述第一目标链表中选取一个物理块作为所述第二物理块,其中,所述空闲物理块表示所述第一目标链表中包括的翻转位数位于[B,A]内的空闲的物理块的标识,A为大于或等于0、且小于所述预定阈值的整数,B为大于或等于0、且小于或等于A的整数;在确定所述第一目标链表中没有所述空闲物理块的情况下,从第二目标链表中选取一个物理块作为所述第二物理块,其中,所述第二目标链表中包括翻转位数位于[A+1,C]内的空闲的物理块的标识,C为大于或等于1、且小于或等于所述预定阈值的整数。
在一个示例性实施例中,所述方法还包括:在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,将所述映射关系表中记录的与所述目标逻辑块子集具有映射关系的所述第一物理块子集更新为第二物理块子集,其中,所述第二物理块子集是将所述第一物理块子集中的所述第一物理块替换成所述第二物理块所得到的物理块子集。
在一个示例性实施例中,在所述物理块集合中确定第二物理块之前,所述方法还包括:将所述第一物理块的信息记录至第三目标链表中,其中,所述第三目标链表中包括所述物理块集合中翻转位数大于所述预定阈值的物理块的标识,所述第三目标链表中所包括的物理块被设置为不允许被执行读和/或写操作。
在一个示例性实施例中,所述获取存储器中包括的物理块集合中的各个物理块的翻转位数,包括:对于所述物理块集合中的第j个物理块,通过以下步骤获取所述第j个物理块的翻转位数,其中,所述第j个物理块包括Mj个存储页,Mj为大于或等于2的正整数,j为大于或等于1的正整数:读取所述存储器中的目标寄存器,得到所述Mj个存储页中的各个存储页的翻转位数,得到Mj个翻转位数;将所述Mj个翻转位数中的最大值确定为所述第j个物理块的翻转位数。
根据本发明的另一个实施例,还提供了一种存储器的操作装置,包括:获取模块,用于获取存储器中包括的物理块集合中的各个物理块的翻转位数;建立模块,用于根据所述物理块集合中的各个物理块的翻转位数,建立逻辑块集合与所述物理块集合之间的映射关系表,其中,所述映射关系表用于表示逻辑块的标识与物理块的标识之间的映射关系,所述逻辑块的标识为所述逻辑块集合中的逻辑块的标识,所述物理块的标识为所述物理块集合中的物理块的标识;第一执行模块,用于根据所述映射关系表对所述存储器执行读和/或写操作。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过获取存储器中包括的物理块集合中的各个物理块的翻转位数,再根据各个物理块的翻转位数,建立逻辑块集合与物理块集合之间的映射关系表,即建立逻辑块的标识与物理块的标识之间的映射关系,然后根据映射关系表对存储器执行读和/或写操作。即通过获取物理块集合中的各个物理块的翻转位数情况,能够比较准确地识别出物理块的健康状态,再根据各个物理块的翻转位数建立映射关系表,并基于映射关系表对存储器执行读和/或写操作,可实现降低对存储器的操作出现异常的概率,避免了相关技术中采取通过擦写次数评估物理块的健康状态的方法存在准确率较低的问题,以及对存储器的操作容易出现异常的问题。因此,解决了相关技术中存在的对存储器的操作方法容易出现异常的问题,达到了降低操作出现异常的概率的效果。
附图说明
图1是本发明实施例的存储器的操作方法的移动终端硬件结构框图;
图2是根据本发明实施例的存储器的操作方法的流程图;
图3是根据本发明实施例的映射表建立的流程图;
图4是根据本发明实施例的访问物理块的流程图;
图5是根据本发明实施例的存储器的操作装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的存储器的操作方法的移动终端硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储设备104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储设备104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的存储器的操作方法对应的计算机程序,处理器102通过运行存储在存储设备104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储设备104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储设备104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种存储器的操作方法,图2是根据本发明实施例的存储器的操作方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取存储器中包括的物理块集合中的各个物理块的翻转位数;
步骤S204,根据所述物理块集合中的各个物理块的翻转位数,建立逻辑块集合与所述物理块集合之间的映射关系表,其中,所述映射关系表用于表示逻辑块的标识与物理块的标识之间的映射关系,所述逻辑块的标识为所述逻辑块集合中的逻辑块的标识,所述物理块的标识为所述物理块集合中的物理块的标识;
步骤S206,根据所述映射关系表对所述存储器执行读和/或写操作。
通过上述步骤,通过获取存储器中包括的物理块集合中的各个物理块的翻转位数,再根据各个物理块的翻转位数,建立逻辑块集合与物理块集合之间的映射关系表,即建立逻辑块的标识与物理块的标识之间的映射关系,然后根据映射关系表对存储器执行读和/或写操作。即通过获取物理块集合中的各个物理块的翻转位数情况,能够比较准确地识别出物理块的健康状态,再根据各个物理块的翻转位数建立映射关系表,并基于映射关系表对存储器执行读和/或写操作,可实现降低对存储器的操作出现异常的概率,避免了相关技术中采取通过擦写次数评估物理块的健康状态的方法存在准确率较低的问题,以及对存储器的操作容易出现异常的问题。因此,解决了相关技术中存在的对存储器的操作方法容易出现异常的问题,达到了降低操作出现异常的概率的效果。
其中,上述步骤的执行主体可以为上述存储器,如NAND Flash,或Flash管理器,或者为配置在存储设备上的具备人机交互能力的处理器,或者为具备类似处理能力的处理设备或处理单元等,但不限于此。
在上述实施例中,获取存储器中包括的物理块集合中的各个物理块的翻转位数,以存储器为NAND Flash为例,物理块的翻转位数用于表示物理块在上一次或前一次读操作时发生bit位翻转的位数,例如将0翻转为1,或1翻转为0,通常NAND Flash都有一个status寄存器来描述bit翻转的情况,可通过GET FEATURES(0FH)命令来获取,例如,通过flash内部寄存器获取当前block的bit翻转情况,如0bit翻转、1bit翻转、2bit翻转、3bit翻转、4bit翻转、超过4bit翻转等;实际上NAND Flash都有ECC ErrorBits Descriptions寄存器,可获取各个物理块的bit翻转情况;在实际应用中,可根据各个物理块的bit位翻转位数来反馈各个物理块的健康状态,这样有利用对后续读或写操作进行管理,即有利于对存储器的管理。再根据物理块集合中的各个物理块的翻转位数,建立逻辑块集合与物理块集合之间的映射关系表,其中,映射关系表用于表示逻辑块的标识与物理块的标识之间的映射关系,即建立逻辑块与物理块之间的映射关系,映射关系表中记录有不同的逻辑块所分别对应的物理块,这样在执行读或写操作时可根据逻辑块确定出对应的物理块,进而对相应的物理块执行读或写操作;在建立上述映射关系表时,根据各个物理块的翻转位数的情况,按照优先将翻转位数较小的物理块与逻辑块进行映射的原则,如果翻转位数较小的物理块的数量不够的话,再将翻转位数较大的物理块与逻辑块进行映射,例如,在实际应用中,在获取到各个物理块的翻转位数的情况后,可创建多个链表,如N个链表(N=2,或3,或其它值),每个链表中记录有bit位翻转的位数等于具体某个值(如0,或1,或2,或其它值)或某个数值区间(如0-1,或0-2,或其它区间)的物理块的信息,如物理块的标识,或编号,还可包括物理块的具体的翻转位数等;然后根据映射关系表对存储器执行读和/或写操作。在本实施例中,通过获取物理块集合中的各个物理块的翻转位数情况,能够比较准确地识别出物理块的健康状态,再根据各个物理块的翻转位数建立映射关系表,并基于映射关系表对存储器执行读和/或写操作,可实现降低对存储器的操作出现异常的概率,避免了相关技术中采取通过擦写次数评估物理块的健康状态的方法存在准确率较低的问题,以及对存储器的操作容易出现异常的问题。因此,解决了相关技术中存在的对存储器的操作方法容易出现异常的问题,达到了降低操作出现异常的概率的效果。
在一个可选的实施例中,所述根据所述物理块集合中的各个物理块的翻转位数,建立逻辑块集合与所述物理块集合之间的映射关系表,包括:根据所述物理块集合中的各个物理块的翻转位数,创建N个链表,其中,所述N个链表中的第i个链表包括所述物理块集合中的翻转位数均位于第i个数值区间内的物理块的标识,N为大于或等于1的正整数,i为大于或等于1、且小于或等于N的正整数;在所述N个链表中的各个链表按照所对应的数值区间从小到大的顺序排列、且所述逻辑块集合的各个逻辑块按照所对应的逻辑地址从小到大的顺序排列的情况下,依次在所述N个链表中的第i个链表所包括的物理块的标识与所述逻辑块集合中的逻辑块的标识之间建立映射关系,得到所述映射关系表。在本实施例中,可根据各个物理块的翻转位数创建N个链表,如N=2,或3,或其它值,每个链表中记录有bit位翻转的位数等于具体某个值(如0,或1,或2,或其它值)或某个数值区间(如0-1,或0-2,或其它区间)的物理块的信息,例如链表1(如free list1)中包括物理块集合中的翻转位数位于[0,2]内的物理块的信息,如物理块的标识,或编号,还可包括物理块的具体的翻转位数等,链表2(如free list2)中包括物理块集合中的翻转位数等于3bit的物理块的信息,链表3(如free list3)中包括物理块集合中的翻转位数位等于4bit的物理块的信息,可选地,上述链表free list1用于描述bit位翻转为0~2bit的物理块的信息,在实际应用中还可进一步细分,例如,将bit位翻转为0bit的物理块加入list1_1中,将bit位翻转为1bit的物理块加入list1_2中,将bit位翻转为2bit的物理块加入list1_3中,或者,也可以采用其它方法创建链表;然后在按照各个链表所对应的数值区间从小到大的顺序排列、且按照各个逻辑块所对应的逻辑地址从小到大的顺序排列的情况下,依次在各个链表所包括的物理块的标识与各个逻辑块之间建立映射关系,得到上述映射关系表,在本实施例中,创建映射的基本原则是优先从bit位翻转比较少的链表中获取物理块,例如优先从上述链表free list1中获取物理块进行映射,如果free list1不够再从free list2中获取物理块进行映射,如果free list2不够再从free list3中获取物理块进行映射。通过本实施例,实现了基于各个物理块的翻转位数情况按照一定的映射规则创建映射关系表的目的。
在一个可选的实施例中,所述根据所述映射关系表对所述存储器执行读和/或写操作,包括:在接收到目标操作命令的情况下,根据所述映射关系表确定与所述目标操作命令所指示的目标逻辑块子集对应具有映射关系的第一物理块子集,其中,所述逻辑块集合包括所述目标逻辑块子集,所述物理块集合包括所述第一物理块子集;在所述第一物理块子集中的各个物理块当前的翻转位数均小于或等于预定阈值的情况下,对所述第一物理块子集中的各个物理块执行所述目标操作命令所指示的读和/或写操作。在本实施例中,在接收到目标操作命令时,可根据映射关系表确定与目标操作命令所指示的目标逻辑块子集对应具有映射关系的第一物理块子集,目标操作命令所指示的逻辑块可能为一个或多个,即目标逻辑块子集包括一个或多个逻辑块,这样可基于映射关系表找到对应的第一物理块子集,当确定第一物理块子集中的各个物理块当前的翻转位数均小于或等于预定阈值时,可对第一物理块子集中的各个物理块执行目标操作命令所指示的读和/或写操作,例如,上述预定阈值为4bit(或其它值),在执行读和/或写操作时,可获取各个物理块当前的翻转位数的情况,如果上述第一物理块子集中的各个物理块当前的翻转位数均小于或等于预定阈值时,则可直接对相应的各个物理块执行读和/或写操作;在实际应用中,在确定出与目标逻辑块子集对应的第一物理块子集时,可建立一个链表(如busy list),并将上述第一物理块子集中的各个物理块的信息加入到该busy list中,该链表busy list中包含将被使用的物理块的信息;可选地,如果上述第一物理块子集中存在某一个物理块(如第一物理块)当前的翻转位数均大于预定阈值、且其他物理块当前的翻转位数均小于或等于预定阈值时,例如第一物理块当前的翻转位数为5bit,而第一物理块子集中其他物理块当前的翻转位数均小于或等于预定阈值(如4bit),此时可将第一物理块替换为其它空闲物理块,例如,可从前述free list1或free list2或free list3中选择一个空闲物理块替换该第一物理块,可选地,可优先从free list1中选取,如果free list1中没有空闲物理块的情况下,再从freelist2中选取,以此类推。通过本实施例,在确定第一物理块子集中的各个物理块当前的翻转位数均小于或等于预定阈值的情况下再对各个物理块执行读和/或写操作,以避免部分物理块翻转位数较高时可能造成读写失败或数据丢失的问题,达到了降低操作出现异常的概率的效果,达到了提高对存储器的管理效率的效果。
在一个可选的实施例中,所述方法还包括:在所述目标操作命令指示读操作、且在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,在所述物理块集合中确定第二物理块,其中,所述第二物理块当前的翻转位数小于或等于所述预定阈值、且所述第二物理块的剩余存储空间大于或等于所述第一物理块中当前存储的数据所占用的空间;将所述第一物理块中当前存储的数据拷贝至所述第二物理块中的剩余存储空间;对所述第一物理块子集中除所述第一物理块之外的物理块以及所述第二物理块执行所述目标操作命令所指示的读操作。在本实施例中,在执行读操作时,如果第一物理块当前的翻转位数大于预定阈值,例如第一物理块当前的翻转位数为5bit,而第一物理块子集中其他物理块当前的翻转位数均小于或等于预定阈值(如4bit),此时在物理块集合中确定第二物理块,例如,可从前述free list1或free list2或freelist3中选择一个空闲物理块作为第二物理块,即第二物理块的翻转位数是小于或等于预定阈值的,在实际应用中,可优先从free list1中选取,如果free list1中没有空闲物理块的情况下,再从free list2中选取,以此类推;可选的,上述预定阈值也可设置为3bit,那么当第一物理块当前的翻转位数为4bit时,可从前述链表free list1或free list2中选择一个空闲的物理块作为第二物理块,即优先使用翻转位数较低的物理块;当上述第一物理块子集中包括多个物理块的翻转位数大于预定阈值时,按照与上述相同的方法进行替换;再将第一物理块中当前存储的数据拷贝到第二物理块中,然后再对第一物理块子集中除第一物理块之外的物理块以及第二物理块执行读操作。通过本实施例,在确定当前物理块的当前翻转位数大于预定阈值时将当前物理块替换为空闲物理块,从而实现NAND Flash的整体的磨损均衡的目的,可达到提高和延长NAND Flash寿命的效果。
在一个可选的实施例中,所述方法还包括:在所述目标操作命令指示写操作、且在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,在所述物理块集合中确定第二物理块,其中,所述第二物理块当前的翻转位数小于或等于所述预定阈值;对所述第一物理块子集中除所述第一物理块之外的物理块以及所述第二物理块执行所述目标操作命令所指示的写操作。在本实施例中,在执行写操作时,如果第一物理块当前的翻转位数大于预定阈值,例如第一物理块当前的翻转位数为5bit,而第一物理块子集中其他物理块当前的翻转位数均小于或等于预定阈值(如4bit),此时在物理块集合中确定第二物理块,例如,可从前述free list1或free list2或freelist3中选择一个空闲物理块作为第二物理块,即第二物理块的翻转位数是小于或等于预定阈值的,在实际应用中,可优先从free list1中选取,如果free list1中没有空闲物理块的情况下,再从free list2中选取,以此类推;可选的,上述预定阈值也可设置为3bit,那么当第一物理块当前的翻转位数为4bit时,可从前述链表free list1或free list2中选择一个空闲的物理块作为第二物理块,即优先使用翻转位数较低的物理块;然后再对第一物理块子集中除第一物理块之外的物理块以及第二物理块执行写操作。通过本实施例,在确定当前物理块的当前翻转位数大于预定阈值时将当前物理块替换为空闲物理块,从而实现NAND Flash的整体的磨损均衡的目的,可达到提高和延长NAND Flash寿命的效果。
在一个可选的实施例中,所述在所述物理块集合中确定第二物理块,包括:在确定第一目标链表中包括空闲物理块的情况下,从所述第一目标链表中选取一个物理块作为所述第二物理块,其中,所述空闲物理块表示所述第一目标链表中包括的翻转位数位于[B,A]内的空闲的物理块的标识,A为大于或等于0、且小于所述预定阈值的整数,B为大于或等于0、且小于或等于A的整数;在确定所述第一目标链表中没有所述空闲物理块的情况下,从第二目标链表中选取一个物理块作为所述第二物理块,其中,所述第二目标链表中包括翻转位数位于[A+1,C]内的空闲的物理块的标识,C为大于或等于1、且小于或等于所述预定阈值的整数。在本实施例中,可按照如下原则从物理块集合中确定第二物理块,第二物理块用于替换上述第一物理块,当第一目标链表中包括空闲物理块时,从第一目标链表中选取一个物理块作为第二物理块,第一目标链表可以是前述链表free list1,例如B=0,A=2,即第一目标链表中包括翻转位数位于[0,2]内的空闲物理块的信息,可选的,A可为0(即A=B),即第一目标链表中对应的物理块的翻转位数均为0bit,上述A、B均可根据需要进行灵活设置;只有在确定第一目标链表中没有空闲物理块时,再从第二目标链表中选取一个物理块作为第二物理块,第二目标链表中对应的物理块的翻转位数高于上述第一目标链表中的物理块的翻转位数,仍以A=2为例,第二目标链表中对应的物理块的翻转位数位于[3,4]内,或第二目标链表中对应的物理块的翻转位数等于3bit;通过本实施例,优先选取翻转位数较低的物理块进行替换第一物理块,以实现NAND Flash的整体的磨损均衡的目的。
在一个可选的实施例中,所述方法还包括:在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,将所述映射关系表中记录的与所述目标逻辑块子集具有映射关系的所述第一物理块子集更新为第二物理块子集,其中,所述第二物理块子集是将所述第一物理块子集中的所述第一物理块替换成所述第二物理块所得到的物理块子集。在本实施例中,当确定第一物理块子集中的第一物理块当前的翻转位数大于预定阈值、且第一物理块子集中其他物理块当前的翻转位数均小于或等于预定阈值时,可将映射关系表中记录的与第一物理块对应的映射关系中的第一物理块替换为第二物理块,即对映射关系表进行更新。例如,映射关系表中原本与第一物理块具有映射关系的逻辑块为逻辑块A,此时,将第一物理块替换为第二物理块,即第二物理块与逻辑块A具有对应的映射关系。通过本实施例,实现了对映射关系表及时进行更新的目的。
在一个可选的实施例中,在所述物理块集合中确定第二物理块之前,所述方法还包括:将所述第一物理块的信息记录至第三目标链表中,其中,所述第三目标链表中包括所述物理块集合中翻转位数大于所述预定阈值的物理块的标识,所述第三目标链表中所包括的物理块被设置为不允许被执行读和/或写操作。在本实施例中,当确定上述第一物理块的当前翻转位数大于预定阈值时,还可将上述第一物理块的信息记录至第三目标链表中,例如,预定阈值为4bit,第三目标链表中包括的物理块的翻转位数均大于预定阈值,可选地,第三目标链表中所包括的物理块可以被设置为不允许被执行读和/或写操作,即当物理块的翻转位数大于预定阈值时,可将该物理块标记不使用状态,也即在后续的读写操作中均不再使用该物理块;可选地,上述预定阈值也可设置为3bit,那么当第一物理块当前的翻转位数为4bit时,将第一物理块的信息记录至第三目标链表中;上述第三目标链表中的物理块除了可以被设置为不允许被执行读和/或写操作,也可被设置为允许被执行读和/或写操作,但是仅在其它翻转位数较低的物理块均被使用后才可。通过本实施例,实现了通过第三目标链表对物理块的信息进行维护的目的。
在一个可选的实施例中,所述获取存储器中包括的物理块集合中的各个物理块的翻转位数,包括:对于所述物理块集合中的第j个物理块,通过以下步骤获取所述第j个物理块的翻转位数,其中,所述第j个物理块包括Mj个存储页,Mj为大于或等于2的正整数,j为大于或等于1的正整数:读取所述存储器中的目标寄存器,得到所述Mj个存储页中的各个存储页的翻转位数,得到Mj个翻转位数;将所述Mj个翻转位数中的最大值确定为所述第j个物理块的翻转位数。在本实施例中,通常一个物理块中包括多个存储页,例如,对于物理块集合中的第j个物理块,第j个物理块中包括Mj个存储页,可通过读取存储器中的目标寄存器,以得到Mj个存储页中的各个存储页的翻转位数,这样可得到Mj个翻转位数,再将Mj个翻转位数中的最大值确定为第j个物理块的翻转位数。例如,以GD5F1GQ5xExxG为例,一个block中有多个pagesize,每个pagesize中bit翻转的情况可以通过读取ECC ErrorBitsDescriptions来获取,取最大值来表征整个block的bit位翻转情况。表1是ECC错误检查和纠正的bit数描述表。
表1
显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。下面结合实施例对本发明进行具体说明。
图3是根据本发明实施例的映射表建立的流程图,如图3所示,该流程包括以下步骤:
下面以NAND Flash升级过程为例进行说明,在升级的过程中,根据升级的起始地址和大小,扫描整个分区的每一个block(对应于前述物理块),根据bit翻转情况创建逻辑块和物理块的映射关系。创建过程是获取分区中每一个block的bit位翻转(对应于前述翻转位数)情况。
S302,根据升级的起始地址和大小,扫描整个分区的每一个block,获取分区中每一个block的bit位翻转情况;
S304,确定当前block发生了几个bit位翻转;
根据不同的翻转位数把该block加入到不同的bit翻转描述链表中,链表的插入方法为尾插法。
S306,判断当前block的bit位翻转是否为0~2bit;
当步骤S306的判断结果为是的情况下,将当前block加入到描述0~2bit翻转的链表中free list1;当步骤S306的判断结果为否的情况下,进入步骤S308;
S308,判断当前block的bit位翻转是否为3bit;
当步骤S308的判断结果为是的情况下,将当前block加入到描述3bit翻转的链表中free list2;当步骤S308的判断结果为否的情况下,进入步骤S310;
S310,判断当前block的bit位翻转是否为4bit;
当步骤S310的判断结果为是的情况下,将当前block加入到描述4bit翻转的链表中free list3;
在实际应用中,当步骤S310的判断结果为否的情况下,可将当前block加入到另外一个链表中(图3中未示出),例如list4,或bad list,该链表中记录的是翻转位数超过阈值(如4bit)的block的信息,在读或写操作可不使用该block;
即在上述步骤S306~步骤S310中,根据每一个block的bit位翻转的位数不同加入到不同的bit翻转描述链表中,如果翻转0~2位则加入空闲的链表list1中,如果翻转3bit则加入到空闲的链表list2中,如果翻转4bit则加入到空闲的链表list3中,超过4bit不可用,不处理。
在确定出当前block的翻转的bit位之后,进入步骤S312;
S312,判断当前分区的block是否扫描完了;
在步骤S312的判断结果为否的情况下,即当前分区的block未扫描完,则回到步骤S304,即确定下一个block的bit位翻转情况;在步骤S312的判断结果为是的情况下,进入步骤S314;
S314,根据bit翻转情况,创建对应的逻辑块和物理块之间的映射,创建映射的基本原则是优先从bit位翻转比较少的链表中获取物理块,即优先从free list1中获取block进行映射,如果free list1不够再从free list2中获取物理块进行映射,如果free list2不够再从free list3中获取物理块进行映射。从free list中获取完后,需要从free list中删除,然后加入到busy list中;
S316,映射完成之后,保存逻辑块和物理块的映射关系,通过写入逻辑块,根据逻辑块和物理块的映射表即可写入到对应的物理块中。
需要说明的是,上述实施例是以扫描整个分区为例进行说明的,在实际应用中,也可针对整个NAND Flash进行扫描,以获取整个NAND Flash中各个物理块的bit位翻转情况,或者获取NAND Flash中多个分区中的各个物理块的bit位翻转情况,再按照与上述相同的步骤建立逻辑块与物理块之间的映射关系,在此不再赘述。
还需要说明的是,上述链表free list1用于描述bit位翻转为0~2bit的block的信息,在实际应用中还可进一步细分,例如,将bit位翻转为0bit的block加入list1_1中,将bit位翻转为1bit的block加入list1_2中,将bit位翻转为2bit的block加入list1_3中,或者,也可以采用其它方法创建链表,以实现对NAND Flash中的物理块信息进行维护。在实际应用中,可基于各个物理块的bit位翻转情况来评估各个物理块的健康状态,还可基于各个物理块的bit位翻转情况来对物理块的访问进行管理,以实现NAND Flash中物理块的磨损均衡的效果。
下面再以读写分区中某个block或访问某个block为例进行说明。
图4是根据本发明实施例的访问物理块的流程图,如图4所示,包括以下步骤:
S402,根据访问的逻辑块,通过逻辑块和物理块的映射表找到对应的物理块;
S404,在读写物理块的时候获取当前物理块的bit位的翻转情况;
S406,判断是否需要更新list链表,即bit位翻转是否需要把当前block加入到其他list链表中;比如当前block的翻转bit位数由2bit变为4bit翻转,进入步骤S408;
S408,此时需要把该block从busy list中移除,挂到free list3链表尾部。然后从free list中获取一个空闲的block进行映射,同时把之前block的数据拷贝到当前block中,映射的原则是优先从free list1中获取,如果free list1中没了,从free list2中获取,如果free list2中没有了,从free list3中获取,把该block从free list中删除,然后加入到busy list中然后更新映射表,再进入步骤S410;
S410,对该逻辑块进行读写,根据逻辑块和物理块的映射表即可读写入到对应的物理块中。
需要说明的是,可在前述步骤S302~S316之后,即建立映射表之后,执行上述步骤S402~S410以实现对NAND Flash中的block进行读或写操作。
在上述实施例中,提出了一种基于NAND Flash的block已经翻转的bit位数来衡量NAND Flash的block的健康状态,通过一定的算法来实现对NAND Flash的磨损均衡,从而达到提高和延长NAND Flash的寿命的效果;本发明实施例既支持用于裸分区镜像的NANDFlash的磨损均衡,又支持于带文件系统的NAND Flash的磨损均衡,通用性强。
相比于相关技术,本发明实施例具有以下优点:1)支持从当前的NAND Flash的block的bit位翻转位数来反馈block的健康状态,根据健康状态,通过一定的动态调整算法来实现NAND Flash的整体的磨损均衡,大大提高和延长了flash寿命。因此,解决了NANDFlash的每一个block的寿命的差异,比较精确的判断出block寿命情况,使之更加合理的进行磨损均衡;2)通过busy list和free list来维护NAND Flash的每个block的bit翻转情况及使用情况,通过该的算法,能够使nand flash的磨损均衡更合理更精细化,更进一步的提高和延长了nand flash的寿命。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种存储器的操作装置,图5是根据本发明实施例的存储器的操作装置的结构框图,如图5所示,该装置包括:
获取模块502,用于获取存储器中包括的物理块集合中的各个物理块的翻转位数;
建立模块504,用于根据所述物理块集合中的各个物理块的翻转位数,建立逻辑块集合与所述物理块集合之间的映射关系表,其中,所述映射关系表用于表示逻辑块的标识与物理块的标识之间的映射关系,所述逻辑块的标识为所述逻辑块集合中的逻辑块的标识,所述物理块的标识为所述物理块集合中的物理块的标识;
第一执行模块506,用于根据所述映射关系表对所述存储器执行读和/或写操作。
在一个可选的实施例中,上述建立模块504包括:创建单元,用于根据所述物理块集合中的各个物理块的翻转位数,创建N个链表,其中,所述N个链表中的第i个链表包括所述物理块集合中的翻转位数均位于第i个数值区间内的物理块的标识,N为大于或等于1的正整数,i为大于或等于1、且小于或等于N的正整数;建立单元,用于在所述N个链表中的各个链表按照所对应的数值区间从小到大的顺序排列、且所述逻辑块集合的各个逻辑块按照所对应的逻辑地址从小到大的顺序排列的情况下,依次在所述N个链表中的第i个链表所包括的物理块的标识与所述逻辑块集合中的逻辑块的标识之间建立映射关系,得到所述映射关系表。
在一个可选的实施例中,上述执行模块506包括:确定单元,用于在接收到目标操作命令的情况下,根据所述映射关系表确定与所述目标操作命令所指示的目标逻辑块子集对应具有映射关系的第一物理块子集,其中,所述逻辑块集合包括所述目标逻辑块子集,所述物理块集合包括所述第一物理块子集;执行单元,用于在所述第一物理块子集中的各个物理块当前的翻转位数均小于或等于预定阈值的情况下,对所述第一物理块子集中的各个物理块执行所述目标操作命令所指示的读和/或写操作。
在一个可选的实施例中,上述装置还包括:第一确定模块,用于在所述目标操作命令指示读操作、且在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,在所述物理块集合中确定第二物理块,其中,所述第二物理块当前的翻转位数小于或等于所述预定阈值、且所述第二物理块的剩余存储空间大于或等于所述第一物理块中当前存储的数据所占用的空间;拷贝模块,用于将所述第一物理块中当前存储的数据拷贝至所述第二物理块中的剩余存储空间;第二执行模块,用于对所述第一物理块子集中除所述第一物理块之外的物理块以及所述第二物理块执行所述目标操作命令所指示的读操作。
在一个可选的实施例中,上述装置还包括:第二确定模块,用于在所述目标操作命令指示写操作、且在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,在所述物理块集合中确定第二物理块,其中,所述第二物理块当前的翻转位数小于或等于所述预定阈值;第三执行模块,用于对所述第一物理块子集中除所述第一物理块之外的物理块以及所述第二物理块执行所述目标操作命令所指示的写操作。
在一个可选的实施例中,上述第一确定模块或上述第二确定模块包括:第一选取单元,用于在确定第一目标链表中包括空闲物理块的情况下,从所述第一目标链表中选取一个物理块作为所述第二物理块,其中,所述空闲物理块表示所述第一目标链表中包括的翻转位数位于[B,A]内的空闲的物理块的标识,A为大于或等于0、且小于所述预定阈值的整数,B为大于或等于0、且小于或等于A的整数;第二选取单元,用于在确定所述第一目标链表中没有所述空闲物理块的情况下,从第二目标链表中选取一个物理块作为所述第二物理块,其中,所述第二目标链表中包括翻转位数位于[A+1,C]内的空闲的物理块的标识,C为大于或等于1、且小于或等于所述预定阈值的整数。
在一个可选的实施例中,上述装置还包括:更新模块,用于在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,将所述映射关系表中记录的与所述目标逻辑块子集具有映射关系的所述第一物理块子集更新为第二物理块子集,其中,所述第二物理块子集是将所述第一物理块子集中的所述第一物理块替换成所述第二物理块所得到的物理块子集。
在一个可选的实施例中,上述装置还包括:记录模块,用于在所述物理块集合中确定第二物理块之前,将所述第一物理块的信息记录至第三目标链表中,其中,所述第三目标链表中包括所述物理块集合中翻转位数大于所述预定阈值的物理块的标识,所述第三目标链表中所包括的物理块被设置为不允许被执行读和/或写操作。
在一个可选的实施例中,上述获取模块502包括:获取单元,用于对于所述物理块集合中的第j个物理块,通过以下步骤获取所述第j个物理块的翻转位数,其中,所述第j个物理块包括Mj个存储页,Mj为大于或等于2的正整数,j为大于或等于1的正整数:读取所述存储器中的目标寄存器,得到所述Mj个存储页中的各个存储页的翻转位数,得到Mj个翻转位数;将所述Mj个翻转位数中的最大值确定为所述第j个物理块的翻转位数。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种存储器的操作方法,其特征在于,包括:
获取所述存储器中包括的物理块集合中的各个物理块的翻转位数;
根据所述物理块集合中的各个物理块的翻转位数,建立逻辑块集合与所述物理块集合之间的映射关系表,其中,所述映射关系表用于表示所述逻辑块的标识与所述物理块的标识之间的映射关系,所述逻辑块的标识为所述逻辑块集合中的逻辑块的标识,所述物理块的标识为所述物理块集合中的物理块的标识;
根据所述映射关系表对所述存储器执行读和/或写操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述物理块集合中的各个物理块的翻转位数,建立逻辑块集合与所述物理块集合之间的映射关系表,包括:
根据所述物理块集合中的各个物理块的翻转位数,创建N个链表,其中,所述N个链表中的第i个链表包括所述物理块集合中的翻转位数均位于第i个数值区间内的物理块的标识,N为大于或等于1的正整数,i为大于或等于1、且小于或等于N的正整数;
在所述N个链表中的各个链表按照所对应的数值区间从小到大的顺序排列、且所述逻辑块集合的各个逻辑块按照所对应的逻辑地址从小到大的顺序排列的情况下,依次在所述N个链表中的第i个链表所包括的物理块的标识与所述逻辑块集合中的逻辑块的标识之间建立映射关系,得到所述映射关系表。
3.根据权利要求1所述的方法,其特征在于,所述根据所述映射关系表对所述存储器执行读和/或写操作,包括:
在接收到目标操作命令的情况下,根据所述映射关系表确定与所述目标操作命令所指示的目标逻辑块子集对应具有映射关系的第一物理块子集,其中,所述逻辑块集合包括所述目标逻辑块子集,所述物理块集合包括所述第一物理块子集;
在所述第一物理块子集中的各个物理块当前的翻转位数均小于或等于预定阈值的情况下,对所述第一物理块子集中的各个物理块执行所述目标操作命令所指示的读和/或写操作。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述目标操作命令指示读操作、且在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,在所述物理块集合中确定第二物理块,其中,所述第二物理块当前的翻转位数小于或等于所述预定阈值、且所述第二物理块的剩余存储空间大于或等于所述第一物理块中当前存储的数据所占用的空间;
将所述第一物理块中当前存储的数据拷贝至所述第二物理块中的剩余存储空间;
对所述第一物理块子集中除所述第一物理块之外的物理块以及所述第二物理块执行所述目标操作命令所指示的读操作。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述目标操作命令指示写操作、且在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,在所述物理块集合中确定第二物理块,其中,所述第二物理块当前的翻转位数小于或等于所述预定阈值;
对所述第一物理块子集中除所述第一物理块之外的物理块以及所述第二物理块执行所述目标操作命令所指示的写操作。
6.根据权利要求4或5所述的方法,其特征在于,所述在所述物理块集合中确定第二物理块,包括:
在确定第一目标链表中包括空闲物理块的情况下,从所述第一目标链表中选取一个物理块作为所述第二物理块,其中,所述空闲物理块表示所述第一目标链表中包括的翻转位数位于[B,A]内的空闲的物理块的标识,A为大于或等于0、且小于所述预定阈值的整数,B为大于或等于0、且小于或等于A的整数;
在确定所述第一目标链表中没有所述空闲物理块的情况下,从第二目标链表中选取一个物理块作为所述第二物理块,其中,所述第二目标链表中包括翻转位数位于[A+1,C]内的空闲的物理块的标识,C为大于或等于1、且小于或等于所述预定阈值的整数。
7.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
在所述第一物理块子集中除第一物理块之外的物理块当前的翻转位数均小于或等于所述预定阈值的情况下,将所述映射关系表中记录的与所述目标逻辑块子集具有映射关系的所述第一物理块子集更新为第二物理块子集,其中,所述第二物理块子集是将所述第一物理块子集中的所述第一物理块替换成所述第二物理块所得到的物理块子集。
8.根据权利要求4或5所述的方法,其特征在于,在所述物理块集合中确定第二物理块之前,所述方法还包括:
将所述第一物理块的信息记录至第三目标链表中,其中,所述第三目标链表中包括所述物理块集合中翻转位数大于所述预定阈值的物理块的标识,所述第三目标链表中所包括的物理块被设置为不允许被执行读和/或写操作。
9.根据权利要求1至5中任一项所述的方法,其特征在于,所述获取存储器中包括的物理块集合中的各个物理块的翻转位数,包括:
对于所述物理块集合中的第j个物理块,通过以下步骤获取所述第j个物理块的翻转位数,其中,所述第j个物理块包括Mj个存储页,Mj为大于或等于2的正整数,j为大于或等于1的正整数:
读取所述存储器中的目标寄存器,得到所述Mj个存储页中的各个存储页的翻转位数,得到Mj个翻转位数;
将所述Mj个翻转位数中的最大值确定为所述第j个物理块的翻转位数。
10.一种存储器的操作装置,其特征在于,包括:
获取模块,用于获取存储器中包括的物理块集合中的各个物理块的翻转位数;
建立模块,用于根据所述物理块集合中的各个物理块的翻转位数,建立逻辑块集合与所述物理块集合之间的映射关系表,其中,所述映射关系表用于表示逻辑块的标识与物理块的标识之间的映射关系,所述逻辑块的标识为所述逻辑块集合中的逻辑块的标识,所述物理块的标识为所述物理块集合中的物理块的标识;
第一执行模块,用于根据所述映射关系表对所述存储器执行读和/或写操作。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至9任一项中所述的方法的步骤。
12.一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至9任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310915392.3A CN116893981A (zh) | 2023-07-24 | 2023-07-24 | 存储器的操作方法、装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310915392.3A CN116893981A (zh) | 2023-07-24 | 2023-07-24 | 存储器的操作方法、装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116893981A true CN116893981A (zh) | 2023-10-17 |
Family
ID=88310610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310915392.3A Pending CN116893981A (zh) | 2023-07-24 | 2023-07-24 | 存储器的操作方法、装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116893981A (zh) |
-
2023
- 2023-07-24 CN CN202310915392.3A patent/CN116893981A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753443B (zh) | 一种数据处理方法、装置及电子设备 | |
CN111324303B (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
US6742078B1 (en) | Management, data link structure and calculating method for flash memory | |
US11100047B2 (en) | Method, device and computer program product for deleting snapshots | |
CN109213448B (zh) | 一种智能卡的擦写数据的方法、装置、设备及存储介质 | |
CN113572780A (zh) | 设备安全策略配置方法 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN112083882A (zh) | Sram坏点处理方法、系统、装置和计算机设备 | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
CN112711606A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN115543225B (zh) | 数据处理方法、系统、装置、计算机存储介质及电子设备 | |
CN109343800B (zh) | 存储设备管理方法、装置及可读存储介质 | |
CN116893981A (zh) | 存储器的操作方法、装置、存储介质及电子装置 | |
CN116225317A (zh) | 用户识别卡的数据读写方法、装置、用户识别卡及介质 | |
CN113535654B (zh) | 日志处理方法、系统、电子装置和存储介质 | |
CN111209304B (zh) | 数据处理方法、装置及系统 | |
CN112988037A (zh) | 静态磨损均衡方法、终端和计算机可读存储介质 | |
CN112015791A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN110837345A (zh) | 一种坏块表的存放方法及装置 | |
CN110795297B (zh) | 一种电子设备的测试方法及装置 | |
CN109669628B (zh) | 基于flash设备的数据存储管理方法及装置 | |
CN116166194B (zh) | 一种装备保障维修维护管理方法及系统 | |
CN112035068A (zh) | 一种数据写入方法、装置、电子设备和存储介质 | |
CN115359825A (zh) | 基于nand flash的文件数据存取方法、装置、设备及存储介质 | |
CN117666958A (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 |