CN105138472B - 闪存磨损优化方法及设备 - Google Patents

闪存磨损优化方法及设备 Download PDF

Info

Publication number
CN105138472B
CN105138472B CN201410250878.0A CN201410250878A CN105138472B CN 105138472 B CN105138472 B CN 105138472B CN 201410250878 A CN201410250878 A CN 201410250878A CN 105138472 B CN105138472 B CN 105138472B
Authority
CN
China
Prior art keywords
write operation
data
holding time
time
write
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
CN201410250878.0A
Other languages
English (en)
Other versions
CN105138472A (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.)
Changzhou Hengtang Technology Industry Co ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410250878.0A priority Critical patent/CN105138472B/zh
Publication of CN105138472A publication Critical patent/CN105138472A/zh
Application granted granted Critical
Publication of CN105138472B publication Critical patent/CN105138472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例提供一种闪存磨损优化方法及设备。该闪存磨损优化方法包括:当接收到写操作时,获取所述写操作对应的预保存数据的保存时间;在预设的保存时间与编程操作的对应关系中,若匹配到与所述保存时间对应的编程操作,则采用所述与所述保存时间对应的编程操作,存储所述预保存数据,其中,所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能。本发明实施例基于不同类型的数据具有不同的保存时间需求,选取不同的编程操作,从而实现在不影响闪存的整体写操作性能的前提下,降低对闪存的磨损,延长闪存的使用寿命。

Description

闪存磨损优化方法及设备
技术领域
本发明实施例涉及通信技术,尤其涉及一种闪存磨损优化方法及设备。
背景技术
由于闪存具有高性能、低延迟、低功耗、环境适应性强等优点,同时成本也在不断降低,因此得到越来越普遍的应用。闪存存储元利用浮置栅极(Floating Gate,简称:FG)存放数据,这些数据用FG中保存的电子数量来表示。对于单级存储元(Single Level Cell,简称:SLC),充电的FG代表“0”,未充电的FG代表“1”。对多级存储元,例如,两级存储元(Multiple Level Cell,简称:MLC)而言,不同的充电级别(即FG中电子数量不同)代表不同的状态,例如图1所示,4个充电级别分别代表“11”、“10”、“01”和“00”四种状态。
一般而言,闪存对应三种操作,分别是读操作、写操作和擦除操作。其中,写操作是通过步进式脉冲编程的方式来实现的。如图1所示,步进式脉冲编程采用大小为ΔVpp的脉冲步幅将FG充电至不同阈值,即Vp(0)、Vp(1)、Vp(2)和Vp(3)。擦除操作则是通过使用一个时间较长的高电压进行放电操作,此电压与图1中的最大阈值电压相关。进行写操作的电压称为编程电压,即图1中所示的ΔVpp;进行擦除操作的电压称为擦除电压,通常这两种电压值都较大,会对FG造成磨损,且电压越大,磨损越大,因此,通过降低擦写操作(擦除操作和写操作)的电压可实现磨损的减少。
在现有技术中,通过降低每次擦写操作的电压,使得每次擦写操作对闪存造成的磨损减少。然而,由于每次擦写操作的电压降低,导致单位时间能够写入存储元的电子数量减少,从而每一次擦写操作需要的时间增加(写速度降低),进而导致闪存的整体写操作性能降低。
发明内容
本发明实施提供一种闪存磨损优化方法及设备,以实现在不影响闪存的整体写操作性能的前提下,降低闪存磨损,延长闪存的使用寿命。
第一方面,本发明实施例提供一种闪存磨损优化方法,包括:
当接收到写操作时,获取所述写操作对应的预保存数据的保存时间;
在预设的保存时间与编程操作的对应关系中,若匹配到与所述保存时间对应的编程操作,则采用所述与所述保存时间对应的编程操作,存储所述预保存数据,其中,所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能。
在第一方面的第一种可能的实现方式中,所述获取所述写操作对应的预保存数据的保存时间,包括:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录每一闪存块中所存储数据的失效时间。
根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述预保存数据所对应的失效队列,确定其保存时间,包括:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数据的失效时间。
在第一方面的第三种可能的实现方式中,若所述写操作对应的闪存页中未写入数据,则所述获取所述写操作对应的预保存数据的保存时间,包括:
设置所述写操作对应的预保存数据的保存时间为预设时间;
在所述保存时间对应的失效队列中,添加所述预保存数据及其失效时间,其中,该失效时间为所述写操作的写入时间与所述保存时间的加和。
根据第一方面、第一方面的第一种至第三种可能的实现方式中任意一种,在第一方面的第四种可能的实现方式中,所述采用所述与所述保存时间对应的编程操作,存储所述预保存数据,包括:
确定所述写操作对应的闪存块;
在所述闪存块内,采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电压阈值,所述临界电压阈值的个数为至少一个;
记录所述写操作与所述闪存块的映射关系。
根据第一方面、第一方面的第一种至第四种可能的实现方式中任意一种,在第一方面的第五种可能的实现方式中,所述获取预保存数据的保存时间之后,所述方法还包括:
根据前一次数据更新时间间隔,预测所述预保存数据的失效时间;
若确定所述保存时间在所述失效时间内,则执行所述在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程操作;
若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存块。
第二方面,本发明实施例提供一种固态硬盘SSD控制器,包括:接收模块、写操作选择模块和访问引擎;其中,
所述接收模块,用于当接收到写操作时,触发所述写操作选择模块;
所述写操作选择模块与所述接收模块连接,用于获取所述写操作对应的预保存数据的保存时间;及在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程操作;若匹配到与所述保存时间对应的编程操作,则触发所述访问引擎,其中,所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能;
所述访问引擎与所述写操作选择模块连接,用于采用所述与所述保存时间对应的编程操作,存储所述预保存数据。
在第二方面的第一种可能的实现方式中,所述写操作选择模块具体用于:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录每一闪存块中所存储数据的失效时间。
根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述写操作选择模块进一步用于:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数据的失效时间。
在第二方面的第三种可能的实现方式中,若所述写操作对应的闪存页中未写入数据,则所述写操作选择模块具体用于:设置所述写操作对应的预保存数据的保存时间为预设时间;并触发所述访问引擎在所述保存时间对应的失效队列中,添加所述预保存数据及其失效时间,其中,该失效时间为所述写操作的写入时间与所述保存时间的加和。
根据第二方面、第二方面的第一种至第三种可能的实现方式中任意一种,在第二方面的第四种可能的实现方式中,所述SSD控制器还包括:与各所述模块连接的写操作与闪存块映射模块,其中,
所述写操作与闪存块映射模块,用于根据所述接收模块接收的所述写操作,确定所述写操作对应的闪存块;
所述访问引擎具体用于:在所述写操作与闪存块映射模块确定的所述闪存块内,采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电压阈值,所述临界电压阈值的个数为至少一个,其中,所述临界电压阈值是由所述写操作选择模块确定的;并记录所述写操作与所述闪存块的映射关系至所述写操作与闪存块映射模块。
根据第二方面、第二方面的第一种至第四种可能的实现方式中任意一种,在第二方面的第五种可能的实现方式中,所述SSD控制器还包括:与所述访问引擎连接的智能刷新模块;
所述智能刷新模块,用于根据前一次数据更新时间间隔,预测所述预保存数据的失效时间;若确定所述保存时间在所述失效时间内,则触发所述写操作选择模块执行所述在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程操作;若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存块。
第三方面,本发明实施例提供一种固态硬盘SSD控制器,包括:存储器和与所述存储器连接的处理器,其中,所述存储器存储执行指令,当接收到写操作时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述SSD控制器执行如第一方面任一项所述的方法。
本发明实施例基于不同类型的数据具有不同的保存时间需求,通过获取预保存数据的保存时间,并根据该保存时间在预设的保存时间与编程操作的对应关系中,选取不同的编程操作,针对不同的数据进行不同类型的编程操作,从而实现在不影响闪存的整体写操作性能的前提下,降低对闪存的磨损,延长闪存的使用寿命。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中两级存储元特征示意图;
图2为本发明应用场景示例图;
图3为本发明闪存磨损优化方法实施例一的流程示意图;
图4为不同类型数据与其保存时间的示例图;
图5为本发明SSD控制器实施例一的结构示意图;
图6为本发明SSD控制器实施例二的结构示意图;
图7为本发明SSD控制器实施例三的结构示意图;
图8为本发明SSD控制器实施例四的结构示意图;
图9为本发明SSD控制器实施例五的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为目前电子消费产品的主力军,在闪存的发展路线上,闪存包括两大发展方向:更小尺寸和更高密度。其中,闪存的密度可以通过增加单个存储元(Cell)容纳的比特数量得到提高,例如从早期的SLC到MLC,不断发展到最新的三级存储元(Triple Level Cell,简称:TLC)和四级存储元(Quad Level Cell,简称:QLC)。而闪存的尺寸则随着半导体集成工艺的发展,目前16nm的闪存已见诸市场。
本发明实施例主要应用于包括主机、多个通道的闪存制成的固态硬盘(SolidState Disk,简称:SSD)以及SSD控制器的场景。其中,主机通过SSD控制器读写闪存中的数据。例如,如图2所示,单机或服务器机框20内包含底板21,底板21上安装有南桥211、中央处理器(Central Processing Unit,简称:CPU)212和内存213等芯片,实现主机的功能,用于对其他扩展卡(例如图2所示的扩展卡22和扩展卡23)进行控制;SSD控制器(图2中未示出)也是一个芯片,如现场可编程门阵列(Field-Programmable Gate Array,简称:FPGA)和专用集成电路(Application Specific Integrated Circuit,简称:ASIC)等,通过对SSD控制器进行编程来完成接收主机的读写请求,并对SSD中的闪存芯片(进行各种访问及控制。SSD控制器对应的芯片可以与各个闪存都设置在一个印刷电路板(Printed Circuit Board,简称:PCB)上,通过PCB走线相连,最后呈现的形式是一个硬盘盒,即图2所示的SSD硬盘盒24;或者,也可以将闪存芯片和SSD控制器做成一个扩展卡,通过总线和接口标准(PeripheralComponent Interface Express,简称:PCIe)接口25与底板21相连。
图3为本发明闪存磨损优化方法实施例一的流程示意图。本发明实施例提供一种磨损优化方法,该方法可以由SSD控制器执行,该SSD控制器可以为一芯片,例如,FPGA或ASIC。如图3所示,该方法包括:
S301、当接收到写操作时,获取该写操作对应的预保存数据的保存时间。
在计算机中,不同的类型的数据有不同的保存时间。其中,不同数据所对应的保存时间的示例如图4所示。参见图4,其中,横轴表示的是数据保存时间,单位为秒;纵轴表示的是累积百分比。可以看到,Iozone和Proxy两个数据类型中,90%以上的数据需要的保存时间都不超过256秒;且除Postmark之外的其他数据中50%以上的数据的保存时间都不超过128秒。因此,本发明实施例结合数据对保存时间的不同需求,以及闪存的特性,实现闪存寿命的延长。
具体地,当SSD控制器接收到主机发送的写操作时,获取该写操作将要写入闪存的数据(即预保存数据)的保存时间,以便根据该保存时间执行S302;或,根据该保存时间,确定闪存中已保存数据的及时更新,保证存储数据的有效性。
S302、在预设的保存时间与编程操作的对应关系中,若匹配到与上述保存时间对应的编程操作,则采用该与所述保存时间对应的编程操作,存储预保存数据,其中,预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能。
通常情况下,保存时间较短的数据称为热数据,保存时间较长的数据称为冷数据。其中,存在多种判断标准来确定某一数据是热数据,还是冷数据。例如,判断标准为:在一设定时间内,若数据被访问的频率大于或等于预设频率,则确定该数据为热数据;否则,确定该数据为冷数据。这里仅为举例说明,并不限定热数据和冷数据的实际判断标准,也可以通过其它方式判断,这里不再一一列举。
由于热数据的被访问频率较大,热数据可能面临反复的擦写;又由于擦写电压的大小决定对闪存磨损的大小,因此,在预设的保存时间与编程操作的对应关系中,采用小于常规编程电压的电压对热数据进行编程操作,借此减少磨损。同理,由于热数据的被访问频率较小,采用常规编程电压对冷数据进行编程操作。在这里,常规编程电压是指现有技术中对闪存进行读写所采用的电压。
其中,预设的保存时间与编程操作的对应关系的示例可以如表1所示;该对应关系满足不影响闪存的整体写操作性能是指在确定预保存数据的保存时间之后,在对应关系中找到与该保存时间对应设置的临界电压阈值和脉冲步幅,采用该临界电压阈值和脉冲步幅,将预保存数据写入闪存的过程中的写速度,相较于现有技术中将该预保存数据写入闪存的写速度,二者相同,或采用本发明实施例的写速度优于现有技术的写速度。
表1
本发明实施例基于不同类型的数据具有不同的保存时间需求,通过获取预保存数据的保存时间,并根据该保存时间在预设的保存时间与编程操作的对应关系中,选取不同的编程操作,针对不同的数据进行不同类型的编程操作,从而实现在不影响闪存的整体写操作性能的前提下,降低对闪存的磨损,延长闪存的使用寿命。
在上述实施例中,S301可以包括:根据预保存数据所对应的失效队列,确定其保存时间,该失效队列用于记录每一闪存块中所存储数据的失效时间。可选地,上述根据预保存数据所对应的失效队列,确定其保存时间,具体细化为:根据预存保存数据所对应的失效队列,获得上述写操作要写入数据的闪存块中所存储数据的失效时间;根据该写操作要写入数据的闪存块中所存储数据的失效时间和该写操作写入的时间,确定该写操作的保存时间,并更新该失效队列中所述闪存块中所存储数据的失效时间。
在闪存中,读操作和写操作都以闪存页为执行单位,擦除操作以闪存块为执行单位。其中,一个闪存块可以包括多个闪存页。通常情况下,在写操作要写入预保存数据的闪存块中已存储有其它数据,该其它数据与预保存数据的保存时间相同,因此,与该保存时间对应的失效队列已经建立,且该失效队列中记录该闪存块中存储数据的失效时间,该失效时间为存储数据写入的时间与其保存时间的加和;当前写操作是对该闪存块的进一步写入,为一更新操作,因此,当前写操作对应的保存时间为其写入预保存数据的时间减去上述闪存块中所存储数据的失效时间。另外,在更新后的失效队列中,该闪存块中所存储数据的失效时间为写入预保存数据的时间与该预保存数据的保存时间的加和。
上述为SSD控制器当前接收的写操作所对应的闪存块中已存储有其它数据的实施例,补充说明的是,还存在SSD控制器当前接收的写操作所对应的闪存块中未存储有数据的场景,以下进行详细说明。
作为SSD控制器当前接收的写操作所对应的闪存块中未存储有数据的实施例,若写操作对应的闪存页中未写入数据,则上述获取该写操作对应的预保存数据的保存时间可以包括:设置该写操作对应的预保存数据的保存时间为预设时间;在该保存时间对应的失效队列中,添加该预保存数据及其失效时间,其中,该失效时间为所述写操作的写入时间与所述保存时间的加和。该实施例中,预设时间可选的可以设置为一较长时间间隔,这样,在对该闪存块进行下一次更新或刷新时,即可修改其保存时间和失效时间。
需要说明的是,需将所有同种磨损程度的写操作对应的数据,写入到同一个闪存块中,而每次写操作的操作单元为闪存页,即一次写操作对应某闪存块中的一些闪存页。
在上述实施例中,所述采用与所述保存时间对应的编程操作,存储预保存数据可以包括:确定写操作对应的闪存块;在该闪存块内,采用脉冲步幅,将闪存中的FG充电至临界电压阈值,该临界电压阈值的个数为至少一个;及,记录该写操作与闪存块的映射关系。
具体地,以MLC为例进行说明。在MLC中,未写入数据的存储元的状态为“11”,对该存储元写入数据,写操作是通过步进式的脉冲步幅来实现的。首先,采用脉冲步幅对该存储元所在的闪存页充电至Vp(0),获得状态“01”,若该闪存页中某些存储元的目标状态为“01”,则不对其进行继续充电,否则,采用脉冲步幅对存储元所在的闪存页充电至Vp(1),获得状态“10”,以此类推,获得状态“00”。这里,Vp(0)、Vp(1)、Vp(2)和Vp(3)为临界电压阈值。值得注意的是,对于可以表示多种存储状态的存储元,需要有多种临界电压阈值分别表示不同存储状态。
在上述实施例的基础上,所述获取预保存数据的保存时间之前,磨损优化方法还可以包括:基于闪存操作特征及错误源特征,构建错误模型,其中,该错误源特征表征引起闪存中错误的来源;根据错误模型,建立并存储预设的保存时间与编程操作的对应关系。
闪存中存在一错误校验机制(Error checking mechanism,简称:ECC),该错误校验机制用于保证闪存在一定错误率范围内的可靠性,这个错误率是各种原因导致的错误率的和。因此,如果保存时间导致的错误率降低,编程电压引起的错误率就可以更大一点,反之亦然。所以保存时间与编程操作之间的关系可以通过闪存错误模型进行关联,以平衡由于保存时间和编程操作导致的闪存错误。
进一步地,所述获取预保存数据的保存时间之后,磨损优化方法还可以包括:根据前一次数据更新时间间隔,预测所述预保存数据的失效时间范围;若确定所述保存时间在所述失效时间范围内,则执行所述在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程操作;若确定所述保存时间未在所述失效时间范围内,则刷新所述写操作要写入数据的闪存块。
可选地,所述采用所述与所述保存时间对应的编程操作,存储所述预保存数据之后,磨损优化方法还可以包括:到达周期性查询时间之后,从所述失效队列的头部开始,查询所述失效队列,判断是否需要刷新所述闪存中存储的数据;若确定需要刷新所述闪存中存储的数据,则将刷新后的数据根据新的失效时间添加到另一失效队列,其中,所述失效队列与保存时间对应设置,所述失效队列的个数为多个;否则,等待下一次周期性查询。
其中,判断是否需要刷新所述闪存中存储的数据可以有多种途径,例如,通过以下途径进行判断:若确定所述失效队列中存储的数据达到失效时间,则进行刷新操作,且所述刷新操作中采取的编程操作相较于所述写操作对应的编程操作的磨损要大。另外,该场景下,所述将刷新后的数据根据新的失效时间添加到另一失效队列可以包括:将执行所述刷新操作后的数据添加到所述另一个失效队列,该另一失效队列中各数据的保存时间大于所述失效队列中各数据的保存时间。
需要说明的是,本发明实施例主要用于改善闪存中由于热数据的擦写所导致的磨损,因为热数据的更新及刷新是闪存磨损的主要来源。
本发明实施例结合保存时间的需求确定编程操作,单次编程操作中的闪存磨损;且基于失效时间进行闪存中已存储数据的刷新,减少刷新次数,从而进一步降低闪存磨损,延长闪存寿命。
图5为本发明SSD控制器实施例一的结构示意图。本发明实施例的SSD控制器可以为一芯片,例如,FPGA或ASIC。如图5所示,该SSD控制器50包括:接收模块51、写操作选择模块52和访问引擎53。
其中,接收模块51用于当接收到写操作时,触发写操作选择模块52;写操作选择模块52与接收模块51连接,用于获取写操作对应的预保存数据的保存时间;及在预设的保存时间与编程操作的对应关系中,匹配与保存时间对应的编程操作;若匹配到与保存时间对应的编程操作,则触发访问引擎53,其中,预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能;访问引擎53与写操作选择模块52连接,用于采用与保存时间对应的编程操作,存储预保存数据。
常规SSD控制器包括主机接口54、检错/纠错模块(图5中未示出)和收发模块(例如,本实施例中的接收模块51)几个部分,通过主机接口54接收主机(图5中未示出)下发的请求及信息,通过闪存接口55与闪存(图5中未示出)连接,对闪存进行控制。
本发明实施例在常规SSD控制器的基础上进行了改进,新增写操作选择模块52和访问引擎53,在此基础上实施方案,执行如图3所示的闪存磨损优化方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例中,写操作选择模块52保存有读操作、写操作和擦除操作等不同类型的指令;访问引擎53用来向闪存提交不同类型的读操作、写操作和擦除操作。
一种实现方式中,写操作选择模块52可以具体用于:根据预保存数据所对应的失效队列,确定其保存时间,该失效队列用于记录每一闪存块中所存储数据的失效时间。
可选地,写操作选择模块52可进一步用于:根据预存保存数据所对应的失效队列,获得写操作要写入数据的闪存块中所存储数据的失效时间;根据写操作要写入数据的闪存块中所存储数据的失效时间和写操作写入的时间,确定写操作的保存时间,并更新对应失效队列中闪存块中所存储数据的失效时间。
另一种实现方式中,若写操作对应的闪存页中未写入数据,则写操作选择模块52可具体用于:设置写操作对应的预保存数据的保存时间为预设时间;并触发访问引擎53在保存时间对应的失效队列中,添加预保存数据及其失效时间,其中,该失效时间为写操作的写入时间与保存时间的加和。
图6为本发明SSD控制器实施例二的结构示意图。如图6所示,本发明实施例在如图5所示实施例的基础上,进一步地,SSD控制器60还可以包括:与上述各模块连接的写操作与闪存块映射模块61,其中,写操作与闪存块映射模块61用于根据接收模块51接收的写操作,确定写操作对应的闪存块;访问引擎53可具体用于:在写操作与闪存块映射模块61确定的闪存块内,采用脉冲步幅,将闪存中的FG充电至临界电压阈值,该临界电压阈值的个数为至少一个,其中,临界电压阈值是由写操作选择模块52确定的;并记录写操作与闪存块的映射关系至写操作与闪存块映射模块61。该实施例中,写操作与闪存块映射模块61用来维护写操作类型和闪存块之间的映射关系。
在上述基础上,写操作选择模块52还可以用于:基于闪存操作特征及错误源特征,构建错误模型,其中,错误源特征表征引起闪存中错误的来源;根据错误模型,建立并存储预设的保存时间与编程操作的对应关系。
图7为本发明SSD控制器实施例三的结构示意图。如图7所示,在图6所示实施例的基础上,SSD控制器70还可以包括:与访问引擎53及写操作与闪存块映射模块61连接的智能刷新模块71。
其中,智能刷新模块71用于根据前一次数据更新时间间隔,预测预保存数据的失效时间;若确定保存时间在失效时间内,则触发写操作选择模块52执行在预设的保存时间与编程操作的对应关系中,匹配与保存时间对应的编程操作;若确定保存时间未在失效时间内,则刷新写操作要写入数据的闪存块。该实施例中,智能刷新模块用来执行基于数据失效时间的刷新方案,从而保证闪存中所存储数据的有效性。
补充说明的是,在如图5所示的SSD控制器的基础上,则智能刷新模块与写操作选择模块52和访问引擎53连接,本发明实施例不局限于智能刷新模块与其它模块的连接方式,只要能满足其功能即可。
进一步地,智能刷新模块71还可以用于:到达周期性查询时间之后,从失效队列的头部开始,查询失效队列,判断是否需要刷新闪存中存储的数据;若确定需要刷新闪存中存储的数据,则将刷新后的数据根据新的失效时间添加到另一失效队列,其中,失效队列与保存时间对应设置,失效队列的个数为多个;否则,等待下一次周期性查询。
可选地,智能刷新模块71可进一步用于:若确定失效队列中存储的数据达到失效时间,则进行刷新操作,且刷新操作中采取的编程操作相较于写操作对应的编程操作的磨损要大;则智能刷新模块71在执行将刷新后的数据根据新的失效时间添加到另一失效队列时,具体用于:将执行刷新操作后的数据添加到另一个失效队列,该另一失效队列中各数据的保存时间大于失效队列中各数据的保存时间。本发明实施例的作用在于:若某一数据写入闪存时的保存时间较短,可采用本实施例中的技术方案,将该数据的保存时间延长,从而减少对该数据进行刷新的次数。
图8为本发明SSD控制器实施例四的结构示意图。如图8所示,SSD控制器80包括:接收器81和与接收器81连接的处理器82。
其中,接收器81用于当接收到写操作时,触发处理器82;处理器82用于获取写操作对应的预保存数据的保存时间;及,在预设的保存时间与编程操作的对应关系中,若匹配到与保存时间对应的编程操作,则采用与所述保存时间对应的编程操作,存储预保存数据,其中,预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能。
本实施例的SSD控制器,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述基础上,处理器82可具体用于:根据预保存数据所对应的失效队列,确定其保存时间,该失效队列用于记录每一闪存块中所存储数据的失效时间。可选地,处理器82可进一步用于:根据预存保存数据所对应的失效队列,获得写操作要写入数据的闪存块中所存储数据的失效时间;及,根据写操作要写入数据的闪存块中所存储数据的失效时间和写操作写入的时间,确定写操作的保存时间,并更新对应失效队列中闪存块中所存储数据的失效时间。
可选地,若写操作对应的闪存页中未写入数据,则处理器82可具体用于:设置写操作对应的预保存数据的保存时间为预设时间;在保存时间对应的失效队列中,添加预保存数据及其失效时间,其中,该失效时间为写操作的写入时间与保存时间的加和。
进一步地,处理器82可具体用于:确定写操作对应的闪存块;在闪存块内,采用脉冲步幅,将闪存中的FG充电至临界电压阈值,该临界电压阈值的个数为至少一个;记录写操作与闪存块的映射关系。
在上述实施例的基础上,处理器82还可以用于:在获取预保存数据的保存时间之前,基于闪存操作特征及错误源特征,构建错误模型,其中,错误源特征表征引起闪存中错误的来源;根据错误模型,建立并存储预设的保存时间与编程操作的对应关系。
在上述实施例的基础上,处理器82还可以用于:在获取预保存数据的保存时间之后,根据前一次数据更新时间间隔,预测预保存数据的失效时间;若确定保存时间在失效时间内,则执行在预设的保存时间与编程操作的对应关系中,匹配与保存时间对应的编程操作;若确定保存时间未在失效时间内,则刷新写操作要写入数据的闪存块。
进一步地,处理器82还可以用于:在存储预保存数据之后,到达周期性查询时间之后,从失效队列的头部开始,查询失效队列,判断是否需要刷新闪存中存储的数据;若确定需要刷新闪存中存储的数据,则将刷新后的数据根据新的失效时间添加到另一失效队列,其中,失效队列与保存时间对应设置,失效队列的个数为多个;否则,等待下一次周期性查询。
可选地,处理器82可以进一步用于:若确定失效队列中存储的数据达到失效时间,则进行刷新操作,且该刷新操作中采取的编程操作相较于写操作对应的编程操作的磨损要大;则将刷新后的数据根据新的失效时间添加到另一失效队列可以包括:将执行刷新操作后的数据添加到另一个失效队列,另一失效队列中各数据的保存时间大于失效队列中各数据的保存时间。
图9为本发明SSD控制器实施例五的结构示意图。如图9所示,SSD控制器90包括:存储器91和与存储器91连接的处理器92。其中,存储器91存储执行指令,当接收到写操作时,处理器92与存储器91之间通信,处理器92执行执行指令使得SSD控制器90执行上述任一方法实施例中的技术方案。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种闪存磨损优化方法,其特征在于,包括:
当接收到写操作时,获取所述写操作对应的预保存数据的保存时间;
在预设的保存时间与编程操作的对应关系中,若匹配到与所述保存时间对应的编程操作,则采用所述与所述保存时间对应的编程操作,存储所述预保存数据,其中,所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能;
所述获取所述写操作对应的预保存数据的保存时间,包括:
根据所述预保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中所存储数据的失效时间,所述失效队列用于记录每一闪存块中所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数据的失效时间。
2.根据权利要求1所述的方法,其特征在于,若所述写操作对应的闪存页中未写入数据,则所述获取所述写操作对应的预保存数据的保存时间,包括:
设置所述写操作对应的预保存数据的保存时间为预设时间;
在所述保存时间对应的失效队列中,添加所述预保存数据及其失效时间,其中,该失效时间为所述写操作的写入时间与所述保存时间的加和。
3.根据权利要求1或2所述的方法,其特征在于,所述采用所述与所述保存时间对应的编程操作,存储所述预保存数据,包括:
确定所述写操作对应的闪存块;
在所述闪存块内,采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电压阈值,所述临界电压阈值的个数为至少一个;
记录所述写操作与所述闪存块的映射关系。
4.根据权利要求1或2所述的方法,其特征在于,所述获取预保存数据的保存时间之后,所述方法还包括:
根据前一次数据更新时间间隔,预测所述预保存数据的失效时间;
若确定所述保存时间在所述失效时间内,则执行所述在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程操作;
若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存块。
5.一种固态硬盘SSD控制器,其特征在于,包括:接收模块、写操作选择模块和访问引擎;其中,
所述接收模块,用于当接收到写操作时,触发所述写操作选择模块;
所述写操作选择模块与所述接收模块连接,用于获取所述写操作对应的预保存数据的保存时间;及在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程操作;若匹配到与所述保存时间对应的编程操作,则触发所述访问引擎,其中,所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能;
所述访问引擎与所述写操作选择模块连接,用于采用所述与所述保存时间对应的编程操作,存储所述预保存数据;
所述写操作选择模块具体用于:
根据所述预保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中所存储数据的失效时间,所述失效队列用于记录每一闪存块中所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数据的失效时间。
6.根据权利要求5所述的SSD控制器,其特征在于,若所述写操作对应的闪存页中未写入数据,则所述写操作选择模块具体用于:设置所述写操作对应的预保存数据的保存时间为预设时间;并触发所述访问引擎在所述保存时间对应的失效队列中,添加所述预保存数据及其失效时间,其中,该失效时间为所述写操作的写入时间与所述保存时间的加和。
7.根据权利要求5或6所述的SSD控制器,其特征在于,所述SSD控制器还包括:与各所述模块连接的写操作与闪存块映射模块,其中,
所述写操作与闪存块映射模块,用于根据所述接收模块接收的所述写操作,确定所述写操作对应的闪存块;
所述访问引擎具体用于:在所述写操作与闪存块映射模块确定的所述闪存块内,采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电压阈值,所述临界电压阈值的个数为至少一个,其中,所述临界电压阈值是由所述写操作选择模块确定的;并记录所述写操作与所述闪存块的映射关系至所述写操作与闪存块映射模块。
8.根据权利要求5或6所述的SSD控制器,其特征在于,所述SSD控制器还包括:与所述访问引擎连接的智能刷新模块;
所述智能刷新模块,用于根据前一次数据更新时间间隔,预测所述预保存数据的失效时间;若确定所述保存时间在所述失效时间内,则触发所述写操作选择模块执行所述在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程操作;若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存块。
9.一种固态硬盘SSD控制器,其特征在于,包括:存储器和与所述存储器连接的处理器,其中,所述存储器存储执行指令,当接收到写操作时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述SSD控制器执行如权利要求1-4任一项所述的方法。
CN201410250878.0A 2014-06-06 2014-06-06 闪存磨损优化方法及设备 Active CN105138472B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410250878.0A CN105138472B (zh) 2014-06-06 2014-06-06 闪存磨损优化方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410250878.0A CN105138472B (zh) 2014-06-06 2014-06-06 闪存磨损优化方法及设备

Publications (2)

Publication Number Publication Date
CN105138472A CN105138472A (zh) 2015-12-09
CN105138472B true CN105138472B (zh) 2018-06-26

Family

ID=54723826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410250878.0A Active CN105138472B (zh) 2014-06-06 2014-06-06 闪存磨损优化方法及设备

Country Status (1)

Country Link
CN (1) CN105138472B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436726B (zh) * 2016-05-26 2020-09-08 华为技术有限公司 数据写入方法、存储控制器、计算设备以及存储装置
CN108932175B (zh) * 2017-05-24 2022-01-11 建兴储存科技(广州)有限公司 固态储存装置的控制方法
CN107832012A (zh) * 2017-11-03 2018-03-23 重庆大学 一种在线挖掘闪存制程差异现象优化刷新的方法
CN109032505A (zh) * 2018-06-26 2018-12-18 深圳忆联信息系统有限公司 带时效的数据读写方法、装置、计算机设备及存储介质
CN114420182B (zh) * 2022-03-29 2022-06-17 北京智芯微电子科技有限公司 非易失性存储单元的数据处理方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101315811A (zh) * 2008-07-22 2008-12-03 中国科学院上海微系统与信息技术研究所 动态相变存储器
CN101345088A (zh) * 2007-05-14 2009-01-14 桑迪士克Il有限公司 使用综合特征来测量存储器中的阈值电压分布
CN102890621A (zh) * 2011-07-22 2013-01-23 弗森-艾奥公司 确定固态存储介质配置参数的装置、系统和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100506061B1 (ko) * 2002-12-18 2005-08-03 주식회사 하이닉스반도체 특성 조정 장치를 부가한 메모리 장치
US8737141B2 (en) * 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101345088A (zh) * 2007-05-14 2009-01-14 桑迪士克Il有限公司 使用综合特征来测量存储器中的阈值电压分布
CN101315811A (zh) * 2008-07-22 2008-12-03 中国科学院上海微系统与信息技术研究所 动态相变存储器
CN102890621A (zh) * 2011-07-22 2013-01-23 弗森-艾奥公司 确定固态存储介质配置参数的装置、系统和方法

Also Published As

Publication number Publication date
CN105138472A (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
US9727271B2 (en) Data storage device and flash memory control method
US10209902B1 (en) Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data
CN105138472B (zh) 闪存磨损优化方法及设备
JP5728672B2 (ja) ハイブリッドメモリ管理
US9063864B2 (en) Storing data in presistent hybrid memory
TWI420303B (zh) 基於寫入頻率將資料寫至記憶體不同部份之方法、非暫態電腦可讀媒體與裝置
US8195971B2 (en) Solid state disk and method of managing power supply thereof and terminal including the same
CN106598484A (zh) 数据的存储方法、闪存芯片以及存储装置
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
CN105242871A (zh) 一种数据写入方法及装置
JP2009099149A (ja) 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置
CN111651371B (zh) 非对称型平面管理方法以及数据存储装置及其控制器
CN110673789B (zh) 固态硬盘的元数据存储管理方法、装置、设备及存储介质
CN109976673B (zh) 一种数据写入方法和装置
CN115114180A (zh) 在快闪存储器中进行耗损平衡操作的方法和相关控制器以及储存系统
CN112347001B (zh) 闪存垃圾回收的校验方法、装置及电子设备
US11698742B2 (en) Garbage collection in a memory component using an adjusted parameter
CN112204514A (zh) 用于保留非易失性存储器的预期寿命的技术
WO2014185038A1 (ja) 半導体記憶装置およびその制御方法
KR100817204B1 (ko) 플래시 메모리의 매핑 방법 및 장치
KR20220130526A (ko) 메모리 시스템 및 그 동작 방법
US20110055459A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
CN103377704A (zh) 存储器装置、存储器控制装置以及存储器控制方法
CN117785044A (zh) 一种存储设备的温度控制方法、装置、设备及存储介质
US20230051018A1 (en) Memory system and method of operating the same

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201030

Address after: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20201130

Address after: 213000 No. 11 Qingyang North Road, Tianning District, Changzhou, Jiangsu

Patentee after: Changzhou Hong quantity Electronic Technology Co.,Ltd.

Address before: 625, room 269, Connaught platinum Plaza, No. 518101, Qianjin Road, Xin'an street, Shenzhen, Guangdong, Baoan District

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220825

Address after: Tianning District Hehai road 213000 Jiangsu city of Changzhou province No. 9

Patentee after: Changzhou Tianning Communication Technology Industrial Park Co.,Ltd.

Address before: 213000 No. 11 Qingyang North Road, Tianning District, Changzhou City, Jiangsu Province

Patentee before: Changzhou Hong quantity Electronic Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230105

Address after: Tianning District Hehai road 213000 Jiangsu city of Changzhou province No. 9

Patentee after: Changzhou Hengtang Technology Industry Co.,Ltd.

Address before: Tianning District Hehai road 213000 Jiangsu city of Changzhou province No. 9

Patentee before: Changzhou Tianning Communication Technology Industrial Park Co.,Ltd.

TR01 Transfer of patent right