CN117854564A - 闪存存储方法、设备及计算机可读存储介质 - Google Patents
闪存存储方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117854564A CN117854564A CN202311832177.3A CN202311832177A CN117854564A CN 117854564 A CN117854564 A CN 117854564A CN 202311832177 A CN202311832177 A CN 202311832177A CN 117854564 A CN117854564 A CN 117854564A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- data
- stored
- memory block
- target
- 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
- 230000005055 memory storage Effects 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000014759 maintenance of location Effects 0.000 claims abstract description 48
- 238000013507 mapping Methods 0.000 claims description 16
- 238000005259 measurement Methods 0.000 claims description 4
- 230000002035 prolonged effect Effects 0.000 abstract description 4
- 238000012360 testing method Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种闪存存储方法、设备及计算机可读存储介质,所述闪存存储方法包括以下步骤:在接收到待存储数据时,确定所述待存储数据所需的保留时长和闪存块的擦除次数;根据所述保留时长和所述闪存块的擦除次数,确定所述待存储数据的目标擦除电压参数和目标编程电压参数;根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块。通过以上步骤,能够根据数据所需的保留时长,为数据分配合理的闪存块,提高SSD的寿命。
Description
技术领域
本发明涉及闪存存储领域,尤其涉及闪存存储方法、设备及计算机可读存储介质。
背景技术
固态硬盘(SSD)由一些闪存芯片组成,每个闪存芯片分为多个块,每个块又由许多存储单元组成。在一些情况下,当SSD需要向某个存储单元写入数据时,闪存控制器会首先将该存储单元所在块的数据全部擦除,然后再将新数据写入到该存储单元中。
每个存储单元都有一个阈值电压,用来区分数据的擦除和写入。传统操作中,由于每一次擦除编程对每个存储单元中氧化层产生磨损,使得数据在给定时间内无法保持,最终影响SSD的寿命。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种闪存存储方法、设备及计算机可读存储介质,旨在解决传统操作中,由于每一次擦除编程对每个存储单元中氧化层产生磨损,使得数据在给定时间内无法保持,最终影响SSD的寿命的技术问题。
为实现上述目的,本发明提供一种闪存存储方法,所述闪存存储方法包括以下步骤:
在接收到待存储数据时,确定所述待存储数据所需的保留时长和闪存块的擦除次数;
根据所述保留时长和所述闪存块的擦除次数,确定所述待存储数据的目标擦除电压参数和目标编程电压参数;
根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块。
可选地,所述根据所述保留时长和所述闪存块的擦除次数,确定所述待存储数据的目标擦除电压参数和目标编程电压参数的步骤包括:
确定所述保留时长所属的时长区间;
基于预先设定的所述时长区间与所述闪存块的擦除次数的对应关系,确定所述待存储数据的目标擦除电压参数和目标编程电压参数。
可选地,所述基于预先设定的所述时长区间与所述闪存块的擦除次数的对应关系,确定所述待存储数据的目标擦除电压参数和目标编程电压参数的步骤之前,还包括:
基于每一闪存块的初始电压阈值参数,设置对应的测量电压阈值参数;
基于每一所述测量电压阈值参数,对所述闪存块进行数据擦除和数据写入操作;
获取断电后所述闪存块中数据的保留时长;
基于所述保留时长和所述闪存块的擦除次数,设定所述时长区间和所处闪存块擦除次数的对应的关系。
可选地,所述根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块的步骤包括:
确定所述闪存块对应的存储器件;
基于所述目标擦除电压参数控制所述存储器件,以将所述闪存块中的数据擦除;
在确认擦除完成后,基于所述目标编程电压参数控制所述存储器件,以将所述待存储数据写入所述闪存块。
可选地,所述在接收到待存储数据时,确定所述待存储数据所需的保留时长和闪存块的擦除次数的步骤包括:
在接收到所述待存储数据时,获取所述待存储数据的数据类型;
根据所述数据类型对应的历史访问频率和访问模式,确定所述待存储数据所需的保留时长;
基于固件的记录信息,确定所述闪存块的擦除次数。
可选地,所述根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块的步骤之后,还包括:
对所述待存储数据进行编码,并计算出对应的校验码;
将所述校验码存储至所述闪存块;
在接收到读取所述闪存块中已存储数据的指令时,基于所述校验码对所述已存储数据的校验位进行校验;
在校验出所述已存储数据存在错误数据时,基于所述校验码纠正所述错误数据。
可选地,所述根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块的步骤之后,还包括:
获取所述待存储数据的逻辑地址;
基于所述待存储数据的逻辑地址和所述闪存块对应的物理地址,进行地址映射;
根据所述地址映射的结果,生成对应的块级映射表。
可选地,所述根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块的步骤之后,还包括:
在所述闪存块编程或擦除失败时,将所述闪存块的状态寄存器设置为失败,并将所述闪存块标识为坏块;
将所述闪存块中的数据搬移至另一闪存块中;
基于所述块级映射表,删除所述闪存块的逻辑地址。
此外,为实现上述目的,本发明还提供一种闪存存储设备,所述闪存存储方法设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的闪存存储方法程序,所述闪存存储方法程序配置为实现如上所述的闪存存储方法的步骤。
此外,为实现上述目的,本发明还提供一种闪存存储方法存储介质,所述存储介质上存储有闪存存储方法程序,所述闪存存储方法程序被处理器执行时实现如上所述的闪存存储方法的步骤。
本发明实施例通过提供一种闪存存储方法,在需要写入数据时,根据待存储数据所要保留的时长以及各个闪存块的擦除次数,确定待存储数据的目标擦除电压参数和目标编程电压参数,并以目标擦除电压参数擦除对应的闪存块,在擦除完成后再以目标编程电压参数将待存储数据写入闪存块当中。通过以上步骤,能够根据数据所需的保留时长,为数据分配合理的闪存块,提高SSD的寿命。
附图说明
图1为本发明闪存存储方法第一实施例的流程示意图;
图2为本发明闪存存储方法第二实施例的流程示意图;
图3为本发明闪存存储方法第三实施例的流程示意图;
图4为本发明第一实施例中闪存块擦除次数与常温下数据保留时间对应关系的示意图;
图5是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供了一种闪存存储方法,参照图1,图1为本发明一种闪存存储方法第一实施例的流程示意图。
本实施例中,所述闪存存储方法包括:
步骤S10、在接收到待存储数据时,确定所述待存储数据所需的保留时长和闪存块的擦除次数。
在本实施例中,在接收到待存储数据时,即在需要利用闪存进行数据存储时,首先确定待存储数据所要保留的时长,以及当前闪存芯片中可用闪存块的擦除次数。待存储数据的保留时长可以预先根据数据类型进行划分,在接收到待存储数据时,可以根据数据类型确定所需的保留时长。固态硬盘采用的闪存技术在写入新数据时需要先进行擦除操作,而擦除操作会消耗闪存的寿命。因此,每个闪存块的擦除次数是一个重要的参考指标。当某个存储单元的擦除次数达到一定限制时,该存储单元可能会出现损坏或不稳定的情况,从而影响数据的可靠性。闪存块的擦除次数通常由闪存控制器来记录。固态硬盘中的闪存块由闪存控制器动态分配和管理,控制器会在使用过程中记录每个闪存块的使用情况,包括写入、读取和擦除操作,以及每个块被使用的次数。
进一步地,在一可行的实施方式中,可以通过固件监测数据的访问模式和频率来了解数据的热度,即通过跟踪读取和写入操作,并记录闪存块的访问次数和时间戳等信息,确定各个数据类型的访问模式和频率,进而根据数据的访问模式和频率,预先将数据分类到不同的层级中,而不同的层级对应不同的所需的保留时长。可选地,可以将数据划分为热数据层级和冷数据层级,而热数据层级和冷数据层级还可以包含多个层级。
在本实施例中,通过获取待存储数据所需的保留时长和各个闪存块的擦除次数,可以根据各个数据类型所需的保留时长需求来优化数据的存储和访问性能。
步骤S20、根据所述保留时长和所述闪存块的擦除次数,确定所述待存储数据的目标擦除电压参数和目标编程电压参数。
在本实施例中,通过已经获知的待存储数据所需的保留时长以及闪存块的擦除次数,可以进一步为待存储数据分配合理的闪存块,用来存储待存储数据,不同的闪存块对应不同的目标擦除电压参数和目标编程电压参数。这里的目标擦除电压参数和目标面层电压参数分别指的是闪存块的擦除电压阈值和编程电压阈值。闪存存储单元是由一对互补的浮栅电极构成的。每个闪存块自身都对应有阈值电压,用来区分0和1。在进行编程操作时,通过基于擦除电压阈值施加适当的电压,存储单元的电荷会被改变回到初始状态,再通过编程电压阈值施加编程电压,可以再次改变浮栅电极的电荷状态,从而表示数据存储。
进一步地,首先确定保留时长所属的时长区间,基于预先设定的时长区间与闪存块的擦除次数的对应关系,来确定用来存储待存储数据的目标擦除电压参数和目标编程电压参数。参照图4,图4的表格中则表示了一种闪存块当前磨损次数和常温下数据的保留时长的对应关系。表格中的数据表示数据不同保留时长和闪存块擦除次数对应的擦除电压阈值和编程电压阈值。通过预先划分的对应关系,可以为待存储数据划分合理的闪存块进行数据存储。闪存控制器在决定如何为待存储数据分配存储块时,通过待存储数据的访问模式以及保留时长,首先选择闪存块区域。如果某些数据被频繁地访问,控制器则会将这些数据存储在更容易访问的位置,如闪存的前端部分。相反,不常访问的数据可能会被存储在后端部分,以便于更有效的空间管理。此后,闪存控制器还需要实施磨损平衡策略,根据闪存块区域中各个闪存块的磨损次数,选择合理的闪存块进行数据存储,这里会尽可能地将数据平均分配到每一个区块,保证对每一个闪存块的编程/擦写次数一致。以防止某个存储区块的过度使用。通过磨损平均策略选中目标闪存块,与此同时通过预先划分好的对应关系,可以确定该目标闪存块的对应的目标电压阈值参数,也就是目标擦除电压参数和目标编程电压参数。
需要说明的是,由于不同闪存器件的特性不同,其闪存块擦除次数与数据保时长之间的对应的电压阈值参数也不相同。因此,在划分对应关系之前,需要先对闪存块对数据的保留能力进行测试。这些测试主要包括数据保持能力测试和耐久性测试。在数据保持能力测试中,会评估随着时间的流逝,闪存介质中保存的数据会发生何种程度的保存错误。另一方面,耐久性测试是为了确保闪存的可靠性,即通过重复写入和擦除操作来模拟实际使用过程中的压力和损耗。具体地,在数据保持能力测试中,首先对闪存芯片进行全片擦除、查空、写入ckbd数据、并进行数据校验。然后地址以扇区大小均等分组,分成若干个测试组。将每一测试组按顺序划分为重度擦除区域、中度擦除区域、轻度擦除区域和不擦除区域,其中,重度擦除区域、中度擦除区域、轻度擦除区域和不擦除区域分别占用不同数量的扇区。通过对以上各个区域初始电压阈值参数,设置不同的测量电压阈值参数并进行相应的擦除测试操作,读取全部数据读1时和全部数据读0时的阈值电压,同时输出各个区域的累积擦除时间并结束测试。同时获取断电后闪存块对于数据的保留时长,经过多次测试之后,设定时长区间和闪存块擦除次数的对应关系。
可选地,在另一可行的实施方式中,还可以利用基于AI的预测方法,通过对闪存芯片进行一系列固定PE周期(包括一次写入和一次擦除操作)实验并获取序列数据集,然后采用AI算法进行分析和预测。具体地,通过对闪存芯片进行一系列固定PE周期实验,将每一个PE周期的数据记录下来并获取序列数据集,通过深度学习模型来预测一个闪存单元能够承受的P/E操作的最大次数,从而评估其耐用性和可靠性。此外,还可以利用其他的AI技术,如循环神经网络或者长短期记忆网络,来分析和预测闪存的使用寿命。上述模型可以处理时间序列数据,并且能够捕捉到数据中的时间依赖性,因此非常适合用来预测PE周期这类有时间顺序的数据。
通过以上步骤,可以根据待存储数据所需的保留时长,按照相应的需求选择合适的擦除电压阈值和编程电压阈值,将其存储到对应的闪存块当中,对于保留时长较短的数据,可以选择适当降低电压阈值,通过降低擦除电压减小编程后整体阈值分布,这可以在一定程度上降低满足错误检测和纠正要求的保留时间,即使数据出现了错误,也可以通过ECC进行修正,无需进行数据搬迁等动作。通过降低擦除电压,存储单元的阈值偏移将减少,从而提高数据的可靠性。因此,在确定是否降低擦除电压时,需要权衡数据的保留时间和固态硬盘的性能需求。如果数据不需要长时间保留且性能要求较高,可以考虑适度降低擦除电压。但如果需要长期数据保留或对性能要求较高,建议谨慎调整擦除电压以平衡可靠性和性能之间的关系。
在本实施例中,当数据需要长时间保留时,就使用默认擦除电压参数进行操作,以获得数据较长的保留时间。然而如果数据不需要长时间使用,则可以根据需求适当降低擦除电压,从而减小编程后的整体阈值分布,以降低满足ECC要求的保留时间。通过降低擦除电压,可以减少单次P/E磨损,进而延迟SSD的寿命。
步骤S30、根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块。
在本实施例中,闪存芯片通常由多个块组成,而每个块又被分为多个页。每个块的大小通常在几十KB到数百KB之间,而每个页的大小通常是几KB。擦除操作以块为单位进行,而写入操作通常以页为单位进行。当需要写入数据时,需要进行擦除操作,将整个块标记为空闲状态,并将原有数据移动到其他位置。在闪存芯片中,数据的存储和擦除都是通过对浮栅MOS(金属氧化物半导体)管的阈值电压(Vt)进行控制来实现的。擦除操作是将浮栅MOS管的阈值电压调整到一个较低的状态,而编程操作则是将其调整到一个较高的状态。以单层单元闪存为例,其双稳态表现为相对稳定的编程态(通常定义为高阈值电压,记为0)和相对稳定的擦除态(低阈值电压,记为1)。在进行数据写入或擦除时,便通过改变选定单元的阈值电压,来达到数据存储或清除的目的。进行擦除操作时,会对所选的闪存块施加一个高于正常电压的擦除电压,使得该块中所有单元的阈值电压都下降到擦除态的阈值电压,相应的,在编程操作中,会使用低于正常电压的编程电压,以提升选中单元的阈值电压至编程态的水平。
在本实施例中,当数据需要长时间保留时,就使用默认擦除电压参数进行操作,以获得数据较长的保留时间。然而如果数据不需要长时间使用,则可以根据需求适当降低擦除电压,从而减小编程后的整体阈值分布,以降低满足ECC要求的保留时间。通过降低擦除电压,可以减少单次P/E磨损,进而延迟SSD的寿命。
进一步的,参照图2,本发明闪存存储方法第二实施例,所述步骤S30之后,还包括以下步骤:
步骤S40、确定所述闪存块对应的存储器件。
步骤S50、基于所述目标擦除电压参数控制所述存储器件,以将所述闪存块中的数据擦除。
步骤S60、在确认擦除完成后,基于所述目标编程电压参数控制所述存储器件,以将所述待存储数据写入所述闪存块。
在本实施例中,在确定了将待存储数据所要存入的闪存块时,还需要确定闪存块对应的存储器件,这里的存储器件指的是MOS晶体管,MOS晶体管的电荷状态可以被控制,以实现数据的存储和读取。每个闪存块通常由多个MOS晶体管组成,这些MOS晶体管之间共享控制线路和位线,以实现同时读取或编程。当需要擦除闪存块时,整个闪存块内的所有记忆单元都会被擦除,并重新写入数据。
进一步地,数据写入的流程为先擦除闪存块中的数据,然后再将待存储数据写入闪存块中。根据目标擦除电压参数擦除对应的闪存块,即将目标擦除电压参数施加到存储器件MOS晶体管的相应位置上,持续施加擦除电压一段时间,以确保擦除目标闪存块中的数据,随后施加适当的消除电压来关闭擦除擦操作,将闪存器件恢复到擦除之前状态。在确认擦除操作完成之后,将目标编程电压参数应用于存储器件MOS晶体管的相应位置上,使其达到编程电压阈值,将要写入的待存储数据输入到存储器件的相应存储单元,持续施加编程电压阈值一段时间,以确保将待存储数据写入目标闪存块中,最后施加适当的消除电压来关闭编程操作,并将闪存器件恢复到编程之前的状态。对于闪存中的数据,系统会使用文件系统或类似的管理机制来维护数据的逻辑地址。文件系统将数据组织成文件和目录的结构,并使用文件名、路径等来表示数据的逻辑地址。通过文件系统的管理,应用程序可以以逻辑方式访问和操作闪存中的数据。在存储完成之后,闪存控制器还会基于写入的数据进行地址映射,即根据文件系统或操作系统提供的逻辑地址映射到物理地址(即闪存芯片中当前闪存块的位置),通过采用块级映射表记录逻辑地址与物理地址之间的对应关系。此外,当应用程序需要读取或写入闪存中的数据时,它会使用文件系统提供的接口和路径来指定数据的逻辑地址。文件系统则负责将逻辑地址转换为相应的物理地址,并执行实际的读写操作。
此外,闪存芯片可能存在一些无法正常读取或写入数据的坏块。在使用过程中,如果编程或擦除时,就将闪存块的状态寄存器反馈为失败,同时将也会将此闪存块列为坏块,即进行坏块的检测和标记,此后还会从块级映射表中移除对应的逻辑地址。坏块信息会被保存在一个好的块中。
在本实施例中,通过将待存储数据基于目标擦除电压参数和目标编程电压存储到对应的闪存块中,可以使得待存储数据存入到合适的闪存块中,提高数据搬移前的读取次数上限,进而减少数据搬移,提高SSD的寿命。
参照图3,本发明闪存存储方法第三实施例,基于上述图1所示的实施例,所述步骤S30之后还包括以下步骤:
步骤S70、对所述待存储数据进行编码,并计算出对应的校验码。
步骤S80、将所述校验码存储至所述闪存块。
步骤S90、在接收到读取所述闪存块中已存储数据的指令时,基于所述校验码对所述已存储数据的校验位进行校验。
步骤S100、在校验出所述已存储数据存在错误数据时,基于所述校验码纠正所述错误数据。
在本实施例中,为了保证数据存储的正确性,还会利用ECC(Error-correctingcode,纠错码),ECC是一种错误纠正编码技术,可以检测和纠正数据传输过程中出现的错误,提高数据的可靠性和完整性。通过对待存储数据使用ECC编码算法,计算生成冗余校验码,这些校验码将用于后续的错误检测和纠正。在将待存储数据写入闪存块的同时,校验码也会一同写入,当需要读取闪存块中的数据时,闪存控制器会读取整个数据块,对读取的数据块使用相同的ECC算法计算冗余校验位,将计算得到的校验位与存储在闪存中的校验位进行比较,如果校验位不匹配,表示数据块中存在错误。如果发现错误,闪存控制器可以通过纠正码的方式自动纠正错误的数据。
进一步地,在一可行的实施例中,使用ECC算法进行错误定位,以确定发生错误的位置。具体的错误定位方法取决于所使用的ECC算法和纠错能力。在奇偶校验位中,每个字节都有一个奇偶校验位,用于检测单个字节的错误。如果某个字节的奇偶校验位与实际数据不符,则表示该字节出现了错误。而海明码使用一种类似于二叉树的结构来定位错误。在编码过程中,每个数据位都被映射到一组校验位中,这些校验位按照一定的规则进行排列,形成了一个海明矩阵,每个数据位都对应一个或多个校验位。如果数据位出现错误,校验位中的某些位将会发生变化,从而帮助定位并纠正错误。一旦错误定位到具体位置,ECC可以尝试纠正错误。
需要说明的是,ECC提供的纠错能力是有限的。它可以检测和纠正一定数量的错误,但当错误数量超过其纠错能力时,ECC可能无法恢复原始数据。如果无法自动修正,则存储设备将返回错误代码或故障信息。
在本实施例中,通过利用ECC对数据进行校验,可以提高数据存储的完整性可靠性。与此同时,通过ECC将错误数据进行纠正,可以提高数据搬移前的读取次数上限,进而减少数据搬移,提高SSD的寿命。
参照图5,图5为本发明实施例方案设计的硬件运行环境的闪存存储设备结构示意图。
如图5所示,该闪存存储设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图5中示出的结构并不构成对闪存存储设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及闪存存储程序。
在图5所示的闪存存储设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明闪存存储设备中的处理器1001、存储器1005可以设置在闪存存储设备中,所述闪存存储设备通过处理器1001调用存储器1005中存储的闪存存储程序,并执行以下步骤:
在接收到待存储数据时,确定所述待存储数据所需的保留时长和闪存块的擦除次数;
根据所述保留时长和所述闪存块的擦除次数,确定所述待存储数据的目标擦除电压参数和目标编程电压参数;
根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块。
进一步地,所述闪存存储设备通过处理器1001调用存储器1005中存储的闪存存储程序,还执行以下步骤:
确定所述保留时长所属的时长区间;
基于预先设定的所述时长区间与所述闪存块的擦除次数的对应关系,确定所述待存储数据的目标擦除电压参数和目标编程电压参数。
进一步地,所述闪存存储设备通过处理器1001调用存储器1005中存储的闪存存储程序,还执行以下步骤:
基于每一闪存块的初始电压阈值参数,设置对应的测量电压阈值参数;
基于每一所述测量电压阈值参数,对所述闪存块进行数据擦除和数据写入操作;
获取断电后所述闪存块中数据的保留时长;
基于所述保留时长和所述闪存块的擦除次数,设定所述时长区间和所处闪存块擦除次数的对应的关系。
进一步地,所述闪存存储设备通过处理器1001调用存储器1005中存储的闪存存储程序,还执行以下步骤:
确定所述闪存块对应的存储器件;
基于所述目标擦除电压参数控制所述存储器件,以将所述闪存块中的数据擦除;
在确认擦除完成后,基于所述目标编程电压参数控制所述存储器件,以将所述待存储数据写入所述闪存块。
进一步地,所述闪存存储设备通过处理器1001调用存储器1005中存储的闪存存储程序,还执行以下步骤:
在接收到所述待存储数据时,获取所述待存储数据的数据类型;
根据所述数据类型对应的历史访问频率和访问模式,确定所述待存储数据所需的保留时长;
基于固件的记录信息,确定所述闪存块的擦除次数。
进一步地,所述闪存存储设备通过处理器1001调用存储器1005中存储的闪存存储程序,还执行以下步骤:
对所述待存储数据进行编码,并计算出对应的校验码;
将所述校验码存储至所述闪存块;
在接收到读取所述闪存块中已存储数据的指令时,基于所述校验码对所述已存储数据的校验位进行校验;
在校验出所述已存储数据存在错误数据时,基于所述校验码纠正所述错误数据。
进一步地,所述闪存存储设备通过处理器1001调用存储器1005中存储的闪存存储程序,还执行以下步骤:
获取所述待存储数据的逻辑地址;
基于所述待存储数据的逻辑地址和所述闪存块对应的物理地址,进行地址映射;
根据所述地址映射的结果,生成对应的块级映射表。
进一步地,所述闪存存储设备通过处理器1001调用存储器1005中存储的闪存存储程序,还执行以下步骤:
在所述闪存块编程或擦除失败时,将所述闪存块的状态寄存器设置为失败,并将所述闪存块标识为坏块;
将所述闪存块中的数据搬移至另一闪存块中;
基于所述块级映射表,删除所述闪存块的逻辑地址。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种闪存存储方法,其特征在于,所述闪存存储方法包括以下步骤:
在接收到待存储数据时,确定所述待存储数据所需的保留时长和闪存块的擦除次数;
根据所述保留时长和所述闪存块的擦除次数,确定所述待存储数据的目标擦除电压参数和目标编程电压参数;
根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块。
2.如权利要求1所述的闪存存储方法,其特征在于,所述根据所述保留时长和所述闪存块的擦除次数,确定所述待存储数据的目标擦除电压参数和目标编程电压参数的步骤包括:
确定所述保留时长所属的时长区间;
基于预先设定的所述时长区间与所述闪存块的擦除次数的对应关系,确定所述待存储数据的目标擦除电压参数和目标编程电压参数。
3.如权利要求2所述的闪存存储方法,其特征在于,所述基于预先设定的所述时长区间与所述闪存块的擦除次数的对应关系,确定所述待存储数据的目标擦除电压参数和目标编程电压参数的步骤之前,还包括:
基于每一闪存块的初始电压阈值参数,设置对应的测量电压阈值参数;
基于每一所述测量电压阈值参数,对所述闪存块进行数据擦除和数据写入操作;
获取断电后所述闪存块中数据的保留时长;
基于所述保留时长和所述闪存块的擦除次数,设定所述时长区间和所处闪存块擦除次数的对应的关系。
4.如权利要求1所述的闪存存储方法,其特征在于,所述根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块的步骤包括:
确定所述闪存块对应的存储器件;
基于所述目标擦除电压参数控制所述存储器件,以将所述闪存块中的数据擦除;
在确认擦除完成后,基于所述目标编程电压参数控制所述存储器件,以将所述待存储数据写入所述闪存块。
5.如权利要求1所述的闪存存储方法,其特征在于,所述在接收到待存储数据时,确定所述待存储数据所需的保留时长和闪存块的擦除次数的步骤包括:
在接收到所述待存储数据时,获取所述待存储数据的数据类型;
根据所述数据类型对应的历史访问频率和访问模式,确定所述待存储数据所需的保留时长;
基于固件的记录信息,确定所述闪存块的擦除次数。
6.如权利要求1所述的闪存存储方法,其特征在于,所述根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块的步骤之后,还包括:
对所述待存储数据进行编码,并计算出对应的校验码;
将所述校验码存储至所述闪存块;
在接收到读取所述闪存块中已存储数据的指令时,基于所述校验码对所述已存储数据的校验位进行校验;
在校验出所述已存储数据存在错误数据时,基于所述校验码纠正所述错误数据。
7.如权利要求1所述的闪存存储方法,其特征在于,所述根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块的步骤之后,还包括:
获取所述待存储数据的逻辑地址;
基于所述待存储数据的逻辑地址和所述闪存块对应的物理地址,进行地址映射;
根据所述地址映射的结果,生成对应的块级映射表。
8.如权利要求7所述的闪存存储方法,其特征在于,所述根据所述目标擦除电压参数擦除对应的闪存块,并基于所述目标编程电压参数将所述待存储数据写入所述闪存块的步骤之后,还包括:
在所述闪存块编程或擦除失败时,将所述闪存块的状态寄存器设置为失败,并将所述闪存块标识为坏块;
将所述闪存块中的数据搬移至另一闪存块中;
基于所述块级映射表,删除所述闪存块的逻辑地址。
9.一种闪存存储方法设备,其特征在于,所述闪存存储设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的闪存存储方法程序,所述闪存存储方法程序配置为实现如权利要求1至8中任一项所述的闪存存储方法的步骤。
10.一种闪存存储方法存储介质,其特征在于,所述存储介质上存储有闪存存储方法程序,所述闪存存储方法程序被处理器执行时实现如权利要求1至8任一项所述的闪存存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311832177.3A CN117854564A (zh) | 2023-12-26 | 2023-12-26 | 闪存存储方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311832177.3A CN117854564A (zh) | 2023-12-26 | 2023-12-26 | 闪存存储方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117854564A true CN117854564A (zh) | 2024-04-09 |
Family
ID=90539494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311832177.3A Pending CN117854564A (zh) | 2023-12-26 | 2023-12-26 | 闪存存储方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117854564A (zh) |
-
2023
- 2023-12-26 CN CN202311832177.3A patent/CN117854564A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10275165B2 (en) | Memory controller | |
CN101529526B (zh) | 用于估计和报告闪存盘存储器的预期寿命的方法 | |
US8799747B2 (en) | Data hardening to compensate for loss of data retention characteristics in a non-volatile memory | |
US9263158B2 (en) | Determining data retention time in a solid-state non-volatile memory | |
US7992061B2 (en) | Method for testing reliability of solid-state storage medium | |
US10936391B2 (en) | Memory management method and storage controller | |
JP2009512119A (ja) | 訂正済みデータの格納および処理方法 | |
US9122593B2 (en) | Restoring virtualized GCU state information | |
US8332696B2 (en) | Defect management method for storage medium and system thereof | |
KR960005895B1 (ko) | 불휘발성 반도체 메모리장치 | |
US9465537B2 (en) | Memory system and method of controlling memory system | |
US10324648B1 (en) | Wear-based access optimization | |
Peleato et al. | BER-based wear leveling and bad block management for NAND flash | |
CN111813591B (zh) | Nand Flash的数据纠错方法、装置、电子设备及存储介质 | |
CN115938458A (zh) | 存储装置、控制器以及存储装置的操作方法 | |
CN109378027A (zh) | 固态储存装置的控制方法 | |
US10656847B2 (en) | Mitigating asymmetric transient errors in non-volatile memory by proactive data relocation | |
US20230122275A1 (en) | Voltage calibration scans to reduce memory device overhead | |
CN110377538B (zh) | 存储器管理方法以及存储控制器 | |
CN117854564A (zh) | 闪存存储方法、设备及计算机可读存储介质 | |
US10475522B2 (en) | Memory system including a delegate page and method of identifying a status of a memory system | |
Li et al. | Data archiving in 1x-nm NAND flash memories: Enabling long-term storage using rank modulation and scrubbing | |
CN114974387B (zh) | 基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘 | |
US9576649B2 (en) | Charge loss compensation through augmentation of accumulated charge in a memory cell | |
CN115273942A (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 |