CN105302474A - 控制闪存的写操作的方法和闪存的控制器 - Google Patents

控制闪存的写操作的方法和闪存的控制器 Download PDF

Info

Publication number
CN105302474A
CN105302474A CN201410371031.8A CN201410371031A CN105302474A CN 105302474 A CN105302474 A CN 105302474A CN 201410371031 A CN201410371031 A CN 201410371031A CN 105302474 A CN105302474 A CN 105302474A
Authority
CN
China
Prior art keywords
erasable
write operation
data
numbers range
temperature rank
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.)
Granted
Application number
CN201410371031.8A
Other languages
English (en)
Other versions
CN105302474B (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.)
Huawei Technologies 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 CN201410371031.8A priority Critical patent/CN105302474B/zh
Publication of CN105302474A publication Critical patent/CN105302474A/zh
Application granted granted Critical
Publication of CN105302474B publication Critical patent/CN105302474B/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

控制闪存的写操作的方法和闪存的控制器
技术领域
本发明的实施例涉及信息技术领域,并更具体地,涉及一种控制闪存的写操作的方法和闪存的控制器。
背景技术
闪存是一种非易失性存储器,能够靠存储元周围的氧化层在一定时间内保存表示数据值的电荷。并且闪存的很多优点,比如随机访问速度快、低功耗等,使得闪存的应用范围越来越广,不仅广泛应用于各种嵌入式设备,还应用于各种个人设备,如笔记本等。随着技术的不断发展,闪存尺寸变得越来越小,并且密度越来越大,每个存储元可以保存两个,三个甚至四个比特。但是,闪存的性能却成为了新的挑战。
现有技术采用闪存存储块中存储页的ECC(ErrorCorrectionCode,纠错码)来和可擦写次数来确定写操作速度,在闪存使用的早期,更加充分的利用了纠错码的纠错能力,一定程度上提高了闪存的性能。
然而现有技术在进行写操作时,对所有的闪存存储块均采用了默认的可擦写次数,由于存储块之间存在制程差异现象,存储块的实际可擦写次数并不一定与默认的可擦写次数相同,因此采用这种方法时存储块的性能仍然较低。
发明内容
本发明的实施例提供了一种控制闪存的写操作的方法和闪存的控制器,能够提高存储块的性能。
第一方面,提供了一种闪存的控制器,该闪存包括至少一个存储块,闪存的控制器包括:获取模块,用于获取写操作速度表,写操作速度表记录有多个可擦写次数范围和多个写操作速度之间的一一对应关系;第一确定模块,用于确定目标存储块的实际可擦写次数,其中,目标存储块的实际可擦写次数与目标存储块的默认可擦写次数相异,目标存储块的默认可擦写次数存储在闪存中;第二确定模块,用于根据实际可擦写次数所在的可擦写次数范围,查找写操作速度表,以确定实际可擦写次数所对应的写操作速度;控制模块,用于根据实际可擦写次数所对应的写操作速度,控制针对目标存储块的写操作。
结合第一方面,在第一方面的第一种可能实现的方式中,第一确定模块具体用于:根据写操作速度表,确定目标存储块的实际可擦写次数。结合第一方面的第一种可能实现的方式,在第一方面的第二种可能的实现方式中,第一确定模块具体用于:从写操作速度表中,确定多个写操作速度;基于多个写操作速度,多次写入测试数据,其中,测试数据是每次以多个写操作速度中不同的写操作速度写入的;多次读取测试数据以及测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度;根据最大的写操作速度,确定实际可擦写次数。
结合第一方面的第二种可能实现的方式,在第一方面的第三种可能的实现方式中,第一确定模块具体用于:针对目标存储块的每个存储页,多次读取测试数据和测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度,其中,每个存储页对应于每个最大的写操作速度,确定所有的最大的写操作速度中的最小值;根据最小值对应的可擦写次数范围确定实际可擦写次数。
结合第一方面的第三种可能实现的方式,在第一方面的第四种可能的实现方式中,第一确定模块具体用于:确定与最小值对应的可擦写次数范围相邻的可擦写次数范围;将相邻的可擦写次数范围的上界确定为实际可擦写次数。
结合第一方面、第一方面的第一种至第四种中的任一种可能实现的方式,在第一方面的第五种可能的实现方式中,该闪存的控制器还包括:映射模块,用于将目标存储块映射到实际可擦写次数所在的可擦写次数范围;匹配模块,用于将多个数据热度级别和多个可擦写次数范围匹配,使得多个数据热度级别中的每个数据热度级别对应于多个可擦写次数范围中的至少一个可擦写次数范围,其中,多个数据热度级别包括第一数据热度级别和第二数据热度级别,当第一数据热度级别大于第二数据热度级别时,与第一数据热度级别对应的可擦写次数范围的下界不小于与第二数据热度级别对应的可擦写次数范围的下界;控制模块具体用于:从多个数据热度级别中,确定目标数据的数据热度级别;根据与目标数据的数据热度级匹配的可擦写次数范围,确定使用目标存储块存储目标数据。
结合第一方面的第五种可能实现的方式,在第一方面的第六种可能的实现方式中,匹配模块具体用于:根据映射到每个可擦写次数范围的所有存储块的数目,将多个数据热度级别和多个可擦写次数范围匹配。
结合第一方面的第六种可能实现的方式,在第一方面的第七种可能的实现方式中,多个数据热度级别是根据数据大小确定的。
结合第一方面的第七种可能实现的方式,在第一方面的第八种可能的实现方式中,匹配模块具体用于:根据公式1和公式2将多个数据热度级别和多个可擦写次数范围匹配,公式1为:
Σ k = 1 i - 1 ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 j c n gk / Σ k = 1 N n gk
公式2为:
Σ k = 1 i ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 jf n gk / Σ k = 1 N n gk
其中,N为数据热度级别和多个可擦写次数范围的个数;Sizerk表示具有第k个数据热度级别的数据的大小;nrk为第k个数据热度级别的数据的个数;ngk为映射到第k个可擦写次数范围的所有存储块的个数;在写操作速度表中,满足公式1的jc的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的上界,满足公式2的jf的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的下界。
第二方面,提供了一种方法,该方法包括:获取写操作速度表,写操作速度表记录有多个可擦写次数范围和多个写操作速度之间的一一对应关系;确定目标存储块的实际可擦写次数,其中,目标存储块的实际可擦写次数与目标存储块的默认可擦写次数相异,目标存储块的默认可擦写次数存储在闪存中;根据实际可擦写次数所在的可擦写次数范围,查找写操作速度表,以确定实际可擦写次数所对应的写操作速度;根据实际可擦写次数所对应的写操作速度,控制针对目标存储块的写操作。
结合第二方面,在第二方面的第一种可能的实现方式中,确定目标存储块的实际可擦写次数,包括:根据写操作速度表,确定目标存储块的实际可擦写次数。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,根据写操作速度表,确定目标存储块的实际可擦写次数,包括:从写操作速度表中,确定多个写操作速度;基于多个写操作速度,多次写入测试数据,其中,测试数据是每次以多个写操作速度中不同的写操作速度写入的;多次读取测试数据以及测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度;根据最大的写操作速度,确定实际可擦写次数。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,多次读取测试数据以及测试数据的纠错码,包括:针对目标存储块的每个存储页,多次读取测试数据和测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度,其中,每个存储页对应于每个最大的写操作速度,根据最大的写操作速度,确定实际可擦写次数,包括:确定所有的最大的写操作速度中的最小值;根据最小值对应的可擦写次数范围确定实际可擦写次数。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,根据最小值对应的可擦写次数范围确定实际可擦写次数,包括:确定与最小值对应的可擦写次数范围相邻的可擦写次数范围;将相邻的可擦写次数范围的上界确定为实际可擦写次数。
结合第二方面、第二方面的第一种至第四种中的任一种可能实现的方式,在第二方面的第五种可能的实现方式中,该方法还包括:将目标存储块映射到实际可擦写次数所在的可擦写次数范围;将多个数据热度级别和多个可擦写次数范围匹配,使得多个数据热度级别中的每个数据热度级别对应于多个可擦写次数范围中的至少一个可擦写次数范围,其中,多个数据热度级别包括第一数据热度级别和第二数据热度级别,当第一数据热度级别大于第二数据热度级别时,与第一数据热度级别对应的可擦写次数范围的下界不小于与第二数据热度级别对应的可擦写次数范围的下界;根据实际可擦写次数所对应的写操作速度,控制针对目标存储块的写操作,包括:从多个数据热度级别中,确定目标数据的数据热度级别;根据与目标数据的数据热度级匹配的可擦写次数范围,确定使用目标存储块存储目标数据。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,将多个数据热度级别和多个可擦写次数范围匹配,包括:根据映射到每个可擦写次数范围的所有存储块的数目,将多个数据热度级别和多个可擦写次数范围匹配。
结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,多个数据热度级别是根据数据大小确定的。
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,根据映射到每个可擦写次数范围的所有存储块的数目,将多个数据热度级别和多个可擦写次数范围匹配,包括:根据公式1和公式2将多个数据热度级别和多个可擦写次数范围匹配,公式1为:
Σ k = 1 i - 1 ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 j c n gk / Σ k = 1 N n gk
公式2为:
Σ k = 1 i ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 jf n gk / Σ k = 1 N n gk
其中,N为数据热度级别和多个可擦写次数范围的个数;Sizerk表示具有第k个数据热度级别的数据的大小;nrk为第k个数据热度级别的数据的个数;ngk为映射到第k个可擦写次数范围的所有存储块的个数;在写操作速度表中,满足公式1的jc的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的上界,满足公式2的jf的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的下界。
本发明的实施例可以确定与目标存储块的默认可擦写次数相异的实际可擦写次数,然后根据实际可擦写次数所在的可擦写次数范围,查找写操作速度表,以确定实际可擦写次数所对应的写操作速度,进而控制针对目标存储块的写操作。由于考虑了储存块的制程差异,针对每个储存块确定了实际可擦写次数,因此提高了存储块的性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明的一个实施例的闪存控制系统的示意性结构图。
图2是根据本发明的另一实施例的闪存的控制器的示意性结构图。
图3是根据本发明的另一实施例的控制闪存的写操作的方法的示意性流程图。
图4是根据本发明的另一实施例的控制闪存的写操作的方法的示意性流程图。
图5是根据本发明的另一实施例的闪存的控制器的示意性结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1是根据本发明的一个实施例的闪存控制系统的示意性结构图。闪存控制系统100可以包括:主机110、例如可以是处理器(例如,中央处理器)或其他类型的控制器;主机接口120;闪存控制器130,例如可以是SSD(SolidStateDrive,固态硬盘)控制器等;闪存接口140;闪存芯片150,例如可以是各种类型的闪存芯片,例如NOR型闪存或NAND型闪存。其中主机110通过闪存控制器130来控制闪存芯片,以实现读操作或写操作。
闪存控制系统100的部件之间的连接关系可以是如下的方式,例如,闪存控制系统包括一块底板,底板上安装有中央处理器、内存、南桥等芯片,用于对其他扩展卡进行控制,实现主机的功能;用于对SSD内部的闪存芯片进行控制的SSD控制器也是一个芯片,例如,FPGA(Field-ProgrammableGateArray,现场可编程门阵列)或ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)等,通过对这个芯片进行编程来完成接收主机的读写请求,并对SSD中的闪存芯片进行各种访问及控制;SSD控制器对应的芯片可以与各个闪存芯片都设置在一个PCB(PrintedCircuitBoard,印制电路板)板上,通过PCB走线相连,最后呈现的形式是一个硬盘盒。或者也可以将闪存芯片和SSD控制器做成一个扩展卡,通过总线接口与底板相连。
图2是根据本发明的另一实施例的闪存的控制器的示意性结构图。闪存的控制器200包括:
获取模块210,用于获取写操作速度表,写操作速度表记录有多个可擦写次数范围和多个写操作速度之间的一一对应关系;
第一确定模块220,用于确定目标存储块的实际可擦写次数,其中,目标存储块的实际可擦写次数与目标存储块的默认可擦写次数相异,目标存储块的默认可擦写次数存储在闪存中;
第二确定模块230,用于根据实际可擦写次数所在的可擦写次数范围,查找写操作速度表,以确定实际可擦写次数所对应的写操作速度;
控制模块240,用于根据实际可擦写次数所对应的写操作速度,控制针对目标存储块的写操作。
应理解,确定目标存储块的实际可擦写次数,可以是,根据目标存储块的相关参数进行确定,例如,估算或者检测。也可以根据纠错码进行正确性的测试来确定。可以是本领域的普通技术人员在不付出创造性劳动,能够想到的任何的确定方式。本发明的实施例对此不作限定。
还应理解,目标存储块可以是一个或多个存储块。为了便于理解,本发明的实施例以一个存储块为例进行说明。默认可擦写次数可以是存储块出厂时的默认值,或者是设定的默认值,例如,多个存储块共用的一个可擦写次数数值。也可以是存储块使用过程中的当前可擦写次数。写操作速度可以是指示写操作的速度的参数,例如时间等。也可以是通常在闪存写操作中采用增进步长编程脉冲(IncreasingStepProgrammingPulse,ISPP)的方式时,所使用的电压的步长。
本发明的实施例可以确定与目标存储块的默认可擦写次数相异的实际可擦写次数,然后根据实际可擦写次数所在的可擦写次数范围,查找写操作速度表,以确定实际可擦写次数所对应的写操作速度,进而控制针对目标存储块的写操作。由于考虑了储存块的制程差异,针对每个储存块确定了实际可擦写次数,因此提高了存储块的性能。换句话说,挖掘了闪存的制程差异现象并依据现有工作对闪存块进行加速,提高了闪存的写性能。
根据本发明的实施例,第一确定模块具体用于:根据写操作速度表,确定目标存储块的实际可擦写次数。
例如,根据写操作速度表确定初始可擦写次数范围,再根据该初始可擦写次数范围确定实际可擦写次数。由于写操作速度表存储在闪存中,采用写操作速度表来确定实际可擦写次数,使得确定的过程更加快捷。
根据本发明的实施例,第一确定模块具体用于:从写操作速度表中,确定多个写操作速度;基于多个写操作速度,多次写入测试数据,其中,测试数据是每次以多个写操作速度中不同的写操作速度写入的;多次读取测试数据以及测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度;根据最大的写操作速度,确定实际可擦写次数。
应理解,测试数据可以是每次写入相同的测试数据,也可以是每次写入不同的测试数据。多次读取测试数据以及测试数据的纠错码,可以是多次读取同一次写入的测试数据,也可以是写入一次数据,在读取一次数据。此外,测试数据可以以多种不同的方式进行写入,例如,可以是从大到小的顺序、从小到大的顺序,以及随机选取的方式等。根据纠错码测试时,可以针对每个存储页来进行写入读取,也可以根据多个存储页进行写入读取,也可以只对一个存储页来进行写入读取。对于每个写操作速度进行的测试数据的正确性,可以进行多次测试,再对测试的结果取平均值来判读正确性;也可以至进行一次测试;也可以针对不同的写操作速度采用不同的测试次数,本发明的实施例对此不作限定。由于采用纠错码的方式来确定最大的写操作速度,使得在快捷的基础上,确定的结果更加准确。
根据本发明的实施例,第一确定模块具体用于:针对目标存储块的每个存储页,多次读取测试数据和测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度,其中,每个存储页对应于每个最大的写操作速度,确定所有的最大的写操作速度中的最小值;根据最小值对应的可擦写次数范围确定实际可擦写次数。
应理解,针对每个存储页上的测试页也可以采用不同的测量方式,例如,还可以采用在写操作速度表中从小到大的顺序进行测试,或者从特定的写操作速度开始测试。对于每个存储页可以采用上述任何的方式,本发明的实施例同样对此不作限定。由于针对每个存储页进行了相应的测试,使得最终确定的最大的写操作速度更加准确,更能反映存储块实际的性能。
根据本发明的实施例,第一确定模块具体用于:确定与最小值对应的可擦写次数范围相邻的可擦写次数范围;将相邻的可擦写次数范围的上界确定为实际可擦写次数。
可选地,作为另一实施例,图2的闪存的控制器还包括:映射模块,用于将目标存储块映射到实际可擦写次数所在的可擦写次数范围;匹配模块,用于将多个数据热度级别和多个可擦写次数范围匹配,使得多个数据热度级别中的每个数据热度级别对应于多个可擦写次数范围中的至少一个可擦写次数范围,其中,多个数据热度级别包括第一数据热度级别和第二数据热度级别,当第一数据热度级别大于第二数据热度级别时,与第一数据热度级别对应的可擦写次数范围的下界不小于与第二数据热度级别对应的可擦写次数范围的下界;控制模块具体用于:从多个数据热度级别中,确定目标数据的数据热度级别;根据与目标数据的数据热度级匹配的可擦写次数范围,确定使用目标存储块存储目标数据。
应理解,数据热度级别可以根据不同的判断方法,例如可以根据数据大小来判断,数据大的为冷数据,数据小的为热数据。还可以根据数据的访问类别以及数据的访问等待队列长度等等来判断。
由于对数据热度级别和可擦写次数范围进行了匹配,使得存储块与数据达到了优化的匹配,从而更加充分的利用的闪存的性能。换句话说,依据冷热数据的本意,对热数据充分加速才更有远见性。采用了数据分配方案,使加速空间充分留给了热数据使用。而冷数据本来也就是不会经常访问的数据,因此将其用较慢速的闪存块存储不会影响闪存的性能。
根据本发明的实施例,匹配模块具体用于:根据映射到每个可擦写次数范围的所有存储块的数目,将多个数据热度级别和多个可擦写次数范围匹配
由于根据数据大小以及每个可擦写次数范围的所有存储块的数目,来进行匹配,使得可以实现动态的匹配操作,即当可擦写次数范围对应的存储块的数目变化时,可以及时的进行更新。因而进一步充分利用了闪存的性能。
根据本发明的实施例,多个数据热度级别是根据数据大小确定的。
由于数据大小更加便于获取,因此采用数据大小来进行匹配,使得匹配的过程更加有效率。
根据本发明的实施例,匹配模块具体用于:根据公式1和公式2将多个数据热度级别和多个可擦写次数范围匹配,公式1为:
Σ k = 1 i - 1 ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 j c n gk / Σ k = 1 N n gk
公式2为:
Σ k = 1 i ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 jf n gk / Σ k = 1 N n gk
其中,N为数据热度级别和多个可擦写次数范围的个数;Sizerk表示具有第k个数据热度级别的数据的大小;nrk为第k个数据热度级别的数据的个数;ngk为映射到第k个可擦写次数范围的所有存储块的个数;在写操作速度表中,满足公式1的jc的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的上界,满足公式2的jf的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的下界。
应理解,可擦写次数范围的序数可以是从按照可擦写次数从大到小的顺序,也可以按照从小到大的顺序。由于针对每个可擦写次数范围来精确地确定对应的数据热度级别,同时考虑到每个存储块的充分利用,因此使得闪存的性能达到最优。
上面描述了根据本发明实施例的闪存的控制器,下面分别结合图3描述根据本发明实施例的控制闪存的写操作的方法。
图3是根据本发明的另一实施例的控制闪存的写操作的方法的示意性流程图。图3的方法由闪存的控制器执行,具体包括:
310、获取写操作速度表,写操作速度表记录有多个可擦写次数范围和多个写操作速度之间的一一对应关系;
320、确定目标存储块的实际可擦写次数,其中,目标存储块的实际可擦写次数与目标存储块的默认可擦写次数相异,目标存储块的默认可擦写次数存储在闪存中;
330、根据实际可擦写次数所在的可擦写次数范围,查找写操作速度表,以确定实际可擦写次数所对应的写操作速度;
340、根据实际可擦写次数所对应的写操作速度,控制针对目标存储块的写操作。
本发明的实施例可以确定与目标存储块的默认可擦写次数相异的实际可擦写次数,然后根据实际可擦写次数所在的可擦写次数范围,查找写操作速度表,以确定实际可擦写次数所对应的写操作速度,进而控制针对目标存储块的写操作。由于考虑了储存块的制程差异,针对每个储存块确定了实际可擦写次数,因此提高了存储块的性能。换句话说,挖掘了闪存的制程差异现象并依据现有工作对闪存块进行加速,提高了闪存的写性能。
根据本发明的实施例,确定目标存储块的实际可擦写次数,包括:根据写操作速度表,确定目标存储块的实际可擦写次数。
根据本发明的实施例,根据写操作速度表,确定目标存储块的实际可擦写次数,包括:从写操作速度表中,确定多个写操作速度;基于多个写操作速度,多次写入测试数据,其中,测试数据是每次以多个写操作速度中不同的写操作速度写入的;多次读取测试数据以及测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度;根据最大的写操作速度,确定实际可擦写次数。
根据本发明的实施例,多次读取测试数据以及测试数据的纠错码,包括:
针对目标存储块的每个存储页,多次读取测试数据和测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度,其中,每个存储页对应于每个最大的写操作速度,根据最大的写操作速度,确定实际可擦写次数,包括:确定所有的最大的写操作速度中的最小值;根据最小值对应的可擦写次数范围确定实际可擦写次数。
根据本发明的实施例,根据最小值对应的可擦写次数范围确定实际可擦写次数,包括:确定与最小值对应的可擦写次数范围相邻的可擦写次数范围;将相邻的可擦写次数范围的上界确定为实际可擦写次数。
可选地,作为另一实施例,图3的方法还包括:将目标存储块映射到实际可擦写次数所在的可擦写次数范围;将多个数据热度级别和多个可擦写次数范围匹配,使得多个数据热度级别中的每个数据热度级别对应于多个可擦写次数范围中的至少一个可擦写次数范围,其中,多个数据热度级别包括第一数据热度级别和第二数据热度级别,当第一数据热度级别大于第二数据热度级别时,与第一数据热度级别对应的可擦写次数范围的下界不小于与第二数据热度级别对应的可擦写次数范围的下界;根据实际可擦写次数所对应的写操作速度,控制针对目标存储块的写操作,包括:从多个数据热度级别中,确定目标数据的数据热度级别;根据与目标数据的数据热度级匹配的可擦写次数范围,确定使用目标存储块存储目标数据。
根据本发明的实施例,将多个数据热度级别和多个可擦写次数范围匹配,包括:根据映射到每个可擦写次数范围的所有存储块的数目,将多个数据热度级别和多个可擦写次数范围匹配。
根据本发明的实施例,多个数据热度级别是根据数据大小确定的。
根据本发明的实施例,根据映射到每个可擦写次数范围的所有存储块的数目,将多个数据热度级别和多个可擦写次数范围匹配,包括:根据公式1和公式2将多个数据热度级别和多个可擦写次数范围匹配,公式1为:
Σ k = 1 i - 1 ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 j c n gk / Σ k = 1 N n gk
公式2为:
Σ k = 1 i ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 jf n gk / Σ k = 1 N n gk
其中,N为数据热度级别和多个可擦写次数范围的个数;Sizerk表示具有第k个数据热度级别的数据的大小;nrk为第k个数据热度级别的数据的个数;ngk为映射到第k个可擦写次数范围的所有存储块的个数;在写操作速度表中,满足公式1的jc的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的上界,满足公式2的jf的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的下界。
图3的方法与图2的闪存的控制器更模块执行的操作对应,此处不再赘述。下面结合具体例子,更加详细地描述本发明的实施例。
图4是根据本发明的另一实施例的控制闪存的写操作的方法的示意性流程图。图4的方法与图3的方法相对应。在本实施例中,采用增进步长编程脉冲的方式执行写操作,将增进步长编程脉冲的电压步长作为写操作速度;将写操作速度采用的测试速度作为第一写操作速度;另外,存储块可以看作是目标存储块。表1和表2为写操作速度表的例子。
可擦写次数范围 ΔVpp
0-2000 0.30
2000-4000 0.33
4000-6000 0.36
6000-8000 0.39
8000-10000 0.42
10000-12000 0.45
12000-14000 0.48
14000-16000 0.51
16000-18000 0.54
18000-20000 0.57
20000-22000 0.61
22000-24000 0.65
表1
可擦写次数范围 ΔVpp
0-2000 0.30
2001-4000 0.33
4001-6000 0.36
6001-8000 0.39
8001-10000 0.42
10001-12000 0.45
12001-14000 0.48
14001-16000 0.51
16001-18000 0.54
18001-20000 0.57
20001-22000 0.61
22001-24000 0.65
表2
410、获取所述写操作速度表。例如表1或表2。
420、确定实际可擦写次数范围。
确定每个存储页上对应的最大的写操作速度。例如,在每个存储页上都可以执行以下操作:以写操作速度表中的最大的写操作速度写入测试数据,同时写入该测试数据的纠错码。然后读取该测试数据,根据纠错码判断读取的测试数据的正确性。如果读取的测试数据是错误的,则继续采用写操作速度表中相邻的写操作速度进行测试,直到所读取的测试数据是正确的,然后将写入该测试数据的写操作速度确定为每个存储页上对应的最大的写操作速度;如果读取的第一次写入的测试数据(以最大的写操作速度写入的)是正确的,则直接确定该最大的写操作速度。
然后,为了写操作的安全性考虑,可以将写操作速度表中,将多个最大的写操作速度中的最小值所对应的可擦写次数范围确定为实际可擦写次数范围。也可以将比该写操作速度更小的速度所对应的可擦写次数范围确定为实际可擦写次数范围。
应理解,对于每个写操作速度进行的测试数据的正确性,可以进行多次测试,再对测试的结果取平均值来判读正确性;也可以至进行一次测试;也可以针对不同的写操作速度采用不同的测试次数,本发明的实施例对此不作限定。还应理解,针对每个存储页上的测试页也可以采用不同的测量方式,例如,还可以采用在写操作速度表中从小到大的顺序进行测试,或者从特定的写操作速度开始测试。对于每个存储页可以采用上述任何的方式,本发明的实施例同样对此不作限定。
430、确定实际可擦写次数。
优选地,可以根据写操作速度表,将与实际可擦写次数范围相邻的可擦写次数范围的上界确定为实际可擦写次数,例如当实际可擦写次数范围为表1中的18000-20000时,或者为表2中的18001-20000时,可以把18000确定为实际可擦写次数。考虑到在后续的操作中,当存储块的可擦写次数发生变化时,可能需要重新将存储块映射到相应的可擦写次数范围,因此,通常选择可擦写次数范围的上界。
应理解也可以将其他的可擦写次数确定为实际可擦写次数,例如,将更小的可擦写次数确定为实际可擦写次数。
440、将存储块加入至相应队列。
例如,存储块的当前的可擦写次数为21000,将该存储块对应于表1中当前可擦写次数范围20000-22000。随着存储块的不断使用,当存储块的可擦写次数为20000时,将该存储块的地址信息映射到可擦写次数范围18000-20000。换句话说,在该存储块接下来的使用过程中,是位于可擦写次数范围18000-20000这个范围中,因此将该存储块加入可擦写次数范围18000-20000这个队列。
450、设定数据热度级别。
具体地,数据热度级别的数据的数目分布为(nr1,nr2,…,nri,…,nrN),闪存中可用于擦写的存储块的个数的分布为(ng1,ng2,…,ngi,…,ngN)其中,每个可擦写次数范围为一个级别,nri为第i个数据热度级别的数据的数目,ngi为第i个数据级别的数目。应理解,对于数据冷热的判断可以为可以根据数据大小,数据大的为冷数据,小的为热数据。还可以根据数据的访问类别以及数据的访问等待队列长度等来判断。在本实施例中,以数据大小为例进行说明。
460、将多个数据热度级别和多个可擦写次数范围匹配。
具体而言,
根据公式1和公式2将多个数据热度级别和多个可擦写次数范围匹配,公式1为:
Σ k = 1 i - 1 ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 j c n gk / Σ k = 1 N n gk
公式2为:
Σ k = 1 i ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 jf n gk / Σ k = 1 N n gk
其中,N为数据热度级别和可擦写次数范围的个数;Sizerk表示具有第k个数据热度级别的数据的大小;nrk为第k个数据热度级别的数据的个数;ngk为映射到第k个可擦写次数范围的所有存储块的个数;在写操作速度表中,满足公式1的jc的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的上界,满足公式2的jf的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的下界。
470、确定目标数据的数据热度级别。
具体地,针对获取的目标数据确定该目标数据的数据热度级别。
480、根据对应关系确定目标数据的写操作速度并写入数据。
具体地,确定目标数据的数据热度级别对应的可擦写次数范围,进而确定存储块的地址信息,然后确定存储块,控制将目标数据以相应的写操作速度写入到存储块中。
图5是根据本发明的另一实施例的闪存的控制器的示意性结构图。图5的闪存的控制器500包括:存储元件510,用于存储写操作速度表,写操作速度表记录有多个可擦写次数范围和多个写操作速度之间的一一对应关系;控制元件520,用于:获取写操作速度表;确定目标存储块的实际可擦写次数,其中,目标存储块的实际可擦写次数与目标存储块的默认可擦写次数相异,目标存储块的默认可擦写次数存储在闪存中;根据实际可擦写次数所在的可擦写次数范围,查找写操作速度表,以确定实际可擦写次数所对应的写操作速度;根据实际可擦写次数所对应的写操作速度,控制针对目标存储块的写操作。
本发明的实施例可以确定与目标存储块的默认可擦写次数相异的实际可擦写次数,然后根据实际可擦写次数所在的可擦写次数范围,查找写操作速度表,以确定实际可擦写次数所对应的写操作速度,进而控制针对目标存储块的写操作。由于考虑了储存块的制程差异,针对每个储存块确定了实际可擦写次数,因此提高了存储块的性能。
根据本发明的实施例,控制元件具体用于:根据写操作速度表,确定目标存储块的实际可擦写次数。
根据本发明的实施例,控制元件具体用于:从写操作速度表中,确定多个写操作速度;基于多个写操作速度,多次写入测试数据,其中,测试数据是每次以多个写操作速度中不同的写操作速度写入的;多次读取测试数据以及测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度;根据最大的写操作速度,确定实际可擦写次数。
根据本发明的实施例,控制元件具体用于:针对目标存储块的每个存储页,多次读取测试数据和测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度,其中,每个存储页对应于每个最大的写操作速度,确定所有的最大的写操作速度中的最小值;根据最小值对应的可擦写次数范围确定实际可擦写次数。
根据本发明的实施例,控制元件具体用于:确定与最小值对应的可擦写次数范围相邻的可擦写次数范围;将相邻的可擦写次数范围的上界确定为实际可擦写次数。
根据本发明的实施例,控制元件还用于:将目标存储块映射到实际可擦写次数所在的可擦写次数范围;将多个数据热度级别和多个可擦写次数范围匹配,使得多个数据热度级别中的每个数据热度级别对应于多个可擦写次数范围中的至少一个可擦写次数范围,其中,多个数据热度级别包括第一数据热度级别和第二数据热度级别,当第一数据热度级别大于第二数据热度级别时,与第一数据热度级别对应的可擦写次数范围的下界不小于与第二数据热度级别对应的可擦写次数范围的下界;从多个数据热度级别中,确定目标数据的数据热度级别;根据与目标数据的数据热度级匹配的可擦写次数范围,确定使用目标存储块存储目标数据。
根据本发明的实施例,控制元件具体用于:根据映射到每个可擦写次数范围的所有存储块的数目,将多个数据热度级别和多个可擦写次数范围匹配。
根据本发明的实施例,多个数据热度级别是根据数据大小确定的。
根据本发明的实施例,控制元件具体用于:根据公式1和公式2将多个数据热度级别和多个可擦写次数范围匹配,公式1为:
Σ k = 1 i - 1 ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 j c n gk / Σ k = 1 N n gk
公式2为:
Σ k = 1 i ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 jf n gk / Σ k = 1 N n gk
其中,N为数据热度级别和多个可擦写次数范围的个数;Sizerk表示具有第k个数据热度级别的数据的大小;nrk为第k个数据热度级别的数据的个数;ngk为映射到第k个可擦写次数范围的所有存储块的个数;在写操作速度表中,满足公式1的jc的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的上界,满足公式2的jf的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的下界。
图5的各元件的功能所执行的操作与图3的方法对应,此处不赘述。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本发明实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种闪存的控制器,其特征在于,所述闪存包括至少一个存储块,所述闪存的控制器包括:
获取模块,用于获取写操作速度表,所述写操作速度表记录有多个可擦写次数范围和多个写操作速度之间的一一对应关系;
第一确定模块,用于确定目标存储块的实际可擦写次数,其中,所述目标存储块的实际可擦写次数与所述目标存储块的默认可擦写次数相异,所述目标存储块的默认可擦写次数存储在所述闪存中;
第二确定模块,用于根据所述实际可擦写次数所在的可擦写次数范围,查找所述写操作速度表,以确定所述实际可擦写次数所对应的写操作速度;
控制模块,用于根据所述实际可擦写次数所对应的写操作速度,控制针对所述目标存储块的写操作。
2.根据权利要求1所述的方法,其特征在于,所述第一确定模块具体用于:根据所述写操作速度表,确定所述目标存储块的实际可擦写次数。
3.根据权利要求2所述的方法,其特征在于,所述第一确定模块具体用于:
从所述写操作速度表中,确定所述多个写操作速度;
基于所述多个写操作速度,多次写入测试数据,其中,所述测试数据是每次以所述多个写操作速度中不同的写操作速度写入的;
多次读取测试数据以及所述测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度;
根据所述最大的写操作速度,确定所述实际可擦写次数。
4.根据权利要求3所述的方法,其特征在于,所述第一确定模块具体用于:针对所述目标存储块的每个存储页,多次读取所述测试数据和所述测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度,其中,所述每个存储页对应于每个最大的写操作速度,
确定所有的最大的写操作速度中的最小值;
根据所述最小值对应的可擦写次数范围确定所述实际可擦写次数。
5.根据权利要求4所述的方法,其特征在于,所述第一确定模块具体用于:
确定与所述最小值对应的可擦写次数范围相邻的可擦写次数范围;
将所述相邻的可擦写次数范围的上界确定为所述实际可擦写次数。
6.根据权利要求1-5中的任一项所述的方法,其特征在于,还包括:
映射模块,用于将所述目标存储块映射到所述实际可擦写次数所在的可擦写次数范围;
匹配模块,用于将多个数据热度级别和所述多个可擦写次数范围匹配,使得所述多个数据热度级别中的每个数据热度级别对应于所述多个可擦写次数范围中的至少一个可擦写次数范围,其中,所述多个数据热度级别包括第一数据热度级别和第二数据热度级别,当所述第一数据热度级别大于所述第二数据热度级别时,与所述第一数据热度级别对应的可擦写次数范围的下界不小于与所述第二数据热度级别对应的可擦写次数范围的下界;
所述控制模块具体用于:
从所述多个数据热度级别中,确定目标数据的数据热度级别;
根据与所述目标数据的数据热度级匹配的可擦写次数范围,确定使用所述目标存储块存储所述目标数据。
7.根据权利要求6所述的方法,其特征在于,所述匹配模块具体用于:
根据映射到每个可擦写次数范围的所有存储块的数目,将所述多个数据热度级别和所述多个可擦写次数范围匹配。
8.根据权利要求7所述的方法,其特征在于,所述多个数据热度级别是根据数据大小确定的。
9.根据权利要求8所述的方法,其特征在于,所述匹配模块具体用于:根据公式1和公式2将所述多个数据热度级别和所述多个可擦写次数范围匹配,所述公式1为:
Σ k = 1 i - 1 ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 j c n gk / Σ k = 1 N n gk
所述公式2为:
Σ k = 1 i ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 jf n gk / Σ k = 1 N n gk
其中,N为所述数据热度级别和所述多个可擦写次数范围的个数;Sizerk表示具有第k个数据热度级别的数据的大小;nrk为第k个数据热度级别的数据的个数;ngk为映射到第k个可擦写次数范围的所有存储块的个数;在所述写操作速度表中,满足公式1的jc的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的上界,满足公式2的jf的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的下界。
10.一种控制闪存的写操作的方法,其特征在于,所述闪存包括至少一个存储块,所述方法包括:
获取写操作速度表,所述写操作速度表记录有多个可擦写次数范围和多个写操作速度之间的一一对应关系;
确定目标存储块的实际可擦写次数,其中,所述目标存储块的实际可擦写次数与所述目标存储块的默认可擦写次数相异,所述目标存储块的默认可擦写次数存储在所述闪存中;
根据所述实际可擦写次数所在的可擦写次数范围,查找所述写操作速度表,以确定所述实际可擦写次数所对应的写操作速度;
根据所述实际可擦写次数所对应的写操作速度,控制针对所述目标存储块的写操作。
11.根据权利要求10所述的方法,其特征在于,
所述确定目标存储块的实际可擦写次数,包括:
根据所述写操作速度表,确定所述目标存储块的实际可擦写次数。
12.根据权利要求11所述的方法,其特征在于,所述根据所述写操作速度表,确定所述目标存储块的实际可擦写次数,包括:
从所述写操作速度表中,确定所述多个写操作速度;
基于所述多个写操作速度,多次写入测试数据,其中,所述测试数据是每次以所述多个写操作速度中不同的写操作速度写入的;
多次读取测试数据以及所述测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度;
根据所述最大的写操作速度,确定所述实际可擦写次数。
13.根据权利要求12所述的方法,其特征在于,所述多次读取测试数据以及所述测试数据的纠错码,包括:
针对所述目标存储块的每个存储页,多次读取所述测试数据和所述测试数据的纠错码,以确定在读取的测试数据为正确的情况下,写入所读取的正确的测试数据时采用的最大的写操作速度,其中,所述每个存储页对应于每个最大的写操作速度,
所述根据所述最大的写操作速度,确定所述实际可擦写次数,包括:
确定所有的最大的写操作速度中的最小值;
根据所述最小值对应的可擦写次数范围确定所述实际可擦写次数。
14.根据权利要求13所述的方法,其特征在于,所述根据所述最小值对应的可擦写次数范围确定所述实际可擦写次数,包括:
确定与所述最小值对应的可擦写次数范围相邻的可擦写次数范围;
将所述相邻的可擦写次数范围的上界确定为所述实际可擦写次数。
15.根据权利要求10-14中的任一项所述的方法,其特征在于,还包括:
将所述目标存储块映射到所述实际可擦写次数所在的可擦写次数范围;
将多个数据热度级别和所述多个可擦写次数范围匹配,使得所述多个数据热度级别中的每个数据热度级别对应于所述多个可擦写次数范围中的至少一个可擦写次数范围,其中,所述多个数据热度级别包括第一数据热度级别和第二数据热度级别,当所述第一数据热度级别大于所述第二数据热度级别时,与所述第一数据热度级别对应的可擦写次数范围的下界不小于与所述第二数据热度级别对应的可擦写次数范围的下界;
所述根据所述实际可擦写次数所对应的写操作速度,控制针对所述目标存储块的写操作,包括:
从所述多个数据热度级别中,确定目标数据的数据热度级别;
根据与所述目标数据的数据热度级匹配的可擦写次数范围,确定使用所述目标存储块存储所述目标数据。
16.根据权利要求15所述的方法,其特征在于,所述将多个数据热度级别和所述多个可擦写次数范围匹配,包括:
根据映射到每个可擦写次数范围的所有存储块的数目,将所述多个数据热度级别和所述多个可擦写次数范围匹配。
17.根据权利要求16所述的方法,其特征在于,所述多个数据热度级别是根据数据大小确定的。
18.根据权利要求17所述的方法,其特征在于,所述根据映射到每个可擦写次数范围的所有存储块的数目,将所述多个数据热度级别和所述多个可擦写次数范围匹配,包括:
根据公式1和公式2将所述多个数据热度级别和所述多个可擦写次数范围匹配,所述公式1为:
Σ k = 1 i - 1 ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 j c n gk / Σ k = 1 N n gk
所述公式2为:
Σ k = 1 i ( n rk × Size rk ) / Σ k = 1 N ( n rk × Size rk ) ≥ Σ k = 1 jf n gk / Σ k = 1 N n gk
其中,N为所述数据热度级别和所述多个可擦写次数范围的个数;Sizerk表示具有第k个数据热度级别的数据的大小;nrk为第k个数据热度级别的数据的个数;ngk为映射到第k个可擦写次数范围的所有存储块的个数;在所述写操作速度表中,满足公式1的jc的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的上界,满足公式2的jf的最大值为第i个数据热度级别所对应的至少一个可擦写次数范围的序数的下界。
CN201410371031.8A 2014-07-31 2014-07-31 控制闪存的写操作的方法和闪存的控制器 Active CN105302474B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410371031.8A CN105302474B (zh) 2014-07-31 2014-07-31 控制闪存的写操作的方法和闪存的控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410371031.8A CN105302474B (zh) 2014-07-31 2014-07-31 控制闪存的写操作的方法和闪存的控制器

Publications (2)

Publication Number Publication Date
CN105302474A true CN105302474A (zh) 2016-02-03
CN105302474B CN105302474B (zh) 2018-03-16

Family

ID=55199788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410371031.8A Active CN105302474B (zh) 2014-07-31 2014-07-31 控制闪存的写操作的方法和闪存的控制器

Country Status (1)

Country Link
CN (1) CN105302474B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832012A (zh) * 2017-11-03 2018-03-23 重庆大学 一种在线挖掘闪存制程差异现象优化刷新的方法
CN109119108A (zh) * 2018-08-15 2019-01-01 杭州阿姆科技有限公司 一种提高Nand寿命的方法
CN110221774A (zh) * 2019-05-05 2019-09-10 杭州电子科技大学 一种具有磨损均衡意识的固态硬盘垃圾回收的方法
WO2019227619A1 (zh) * 2018-05-29 2019-12-05 深圳市华星光电技术有限公司 一种Nand设备的硬件控制器、控制方法及液晶显示器
US10748462B2 (en) 2018-05-29 2020-08-18 Shenzhen China Star Optoelectronics Technology Co., Ltd. Hardware controller of NAND device, control method and liquid crystal display

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625898A (zh) * 2008-07-10 2010-01-13 海力士半导体有限公司 对非易失性存储器设备进行编程的方法
US20120239858A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
CN102915211A (zh) * 2012-09-04 2013-02-06 邹粤林 提高闪存芯片写入速度的方法、闪存存储系统及其控制器
CN103337257A (zh) * 2013-06-20 2013-10-02 深圳市瑞耐斯技术有限公司 一种nand闪存设备及其操作方法
CN103578540A (zh) * 2012-08-10 2014-02-12 爱思开海力士有限公司 半导体存储器件及其操作方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625898A (zh) * 2008-07-10 2010-01-13 海力士半导体有限公司 对非易失性存储器设备进行编程的方法
US20120239858A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
CN103578540A (zh) * 2012-08-10 2014-02-12 爱思开海力士有限公司 半导体存储器件及其操作方法
CN102915211A (zh) * 2012-09-04 2013-02-06 邹粤林 提高闪存芯片写入速度的方法、闪存存储系统及其控制器
CN103337257A (zh) * 2013-06-20 2013-10-02 深圳市瑞耐斯技术有限公司 一种nand闪存设备及其操作方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832012A (zh) * 2017-11-03 2018-03-23 重庆大学 一种在线挖掘闪存制程差异现象优化刷新的方法
WO2019227619A1 (zh) * 2018-05-29 2019-12-05 深圳市华星光电技术有限公司 一种Nand设备的硬件控制器、控制方法及液晶显示器
US10748462B2 (en) 2018-05-29 2020-08-18 Shenzhen China Star Optoelectronics Technology Co., Ltd. Hardware controller of NAND device, control method and liquid crystal display
CN109119108A (zh) * 2018-08-15 2019-01-01 杭州阿姆科技有限公司 一种提高Nand寿命的方法
CN110221774A (zh) * 2019-05-05 2019-09-10 杭州电子科技大学 一种具有磨损均衡意识的固态硬盘垃圾回收的方法

Also Published As

Publication number Publication date
CN105302474B (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
US11735273B2 (en) Data storage systems and methods for improved recovery after a write abort event
US9846542B2 (en) Storage controller, storage device, storage system and method of operating the storage controller
US9129699B2 (en) Semiconductor storage apparatus and method including executing refresh in a flash memory based on a reliability period using degree of deterioration and read frequency
US9043536B2 (en) Method of recording mapping information, and memory controller and memory storage apparatus using the same
CN105302474A (zh) 控制闪存的写操作的方法和闪存的控制器
US10168913B2 (en) Data storage device and data maintenance method thereof
US10860227B2 (en) Memory controller, memory system having the same, and method of operating the same
EP3404661A1 (en) Flash memory device refreshing method and apparatus
US8732552B2 (en) Block management method, memory controller and memory storage device thereof
US10475516B2 (en) Data storage device and data erasing method wherein after erasing process, predetermined value is written to indicate completion of said erasing method
US20170046068A1 (en) Memory management method, memory control circuit unit and memory storage device
US20210232321A1 (en) Multistreaming in heterogeneous environments
US9940058B2 (en) Data storage device and data maintenance method thereof
US9881682B1 (en) Fine grained data retention monitoring in solid state drives
US20170168716A1 (en) Paired Metablocks in Non-Volatile Storage Device
US20170221584A1 (en) Ssd controlling circuit for determining reusability of data block of ssd
CN103426471A (zh) 在非易失性存储设备中编程数据的方法和装置
US10922200B2 (en) Memory system and method of operating the same
US11023138B2 (en) Management operations in predictable latency mode
US20170115933A1 (en) Data storage device and data maintenance method thereof
US9858366B2 (en) Simulator and simulating method for flash memory background
KR102559549B1 (ko) 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치
US20200073582A1 (en) Flash memory controller and associated accessing method and electronic device
US9311348B2 (en) Method and system for implementing an array using different data structures
CN109256166A (zh) 闪存器的擦除方法及闪存器

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