CN111813339B - 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质 - Google Patents

闪存Nand Flash的数据写入方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111813339B
CN111813339B CN202010630955.0A CN202010630955A CN111813339B CN 111813339 B CN111813339 B CN 111813339B CN 202010630955 A CN202010630955 A CN 202010630955A CN 111813339 B CN111813339 B CN 111813339B
Authority
CN
China
Prior art keywords
programming
editing
nand flash
storage block
flash chip
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
CN202010630955.0A
Other languages
English (en)
Other versions
CN111813339A (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.)
STMicroelectronics Shenzhen R&D Co Ltd
Original Assignee
STMicroelectronics Shenzhen R&D 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 STMicroelectronics Shenzhen R&D Co Ltd filed Critical STMicroelectronics Shenzhen R&D Co Ltd
Priority to CN202010630955.0A priority Critical patent/CN111813339B/zh
Publication of CN111813339A publication Critical patent/CN111813339A/zh
Application granted granted Critical
Publication of CN111813339B publication Critical patent/CN111813339B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种闪存Nand Flash的数据写入方法,包括:在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取编辑记录表中各存储块对应的编程间隔时间,及获取Nand Flash芯片当前的编程温度;利用各编辑次数、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数;根据编程优先级系数的系数值大小确定各存储块中待编程的目标存储块;对目标存储块进行数据写入。通过实施本方案,根据Nand Flash芯片当前的编程温度、各存储块的编辑次数及编程间隔时间计算各存储块的编程优先级系数,根据编程优先级系数确定Nand Flash芯片中的目标存储块,并对目标存储块进行数据写入,可降低Nand Flash芯片的误码率。

Description

闪存Nand Flash的数据写入方法、装置、电子设备及存储介质
技术领域
本发明涉及Nand Flash数据技术领域,尤其涉及一种闪存Nand Flash的数据写入方法、装置、电子设备及存储介质。
背景技术
固态存储技术具有非易失性、抗震性好、存储密度高、访问速度快、功耗低等优势,逐渐成为使用最广泛的非易失性存储器之一。为了降低NAND Flash的成本,3D(ThreeDimensions,三维)垂直设计的Nand Flash(闪存)芯片已逐步实现在硅片上进行垂直堆叠的结构设计,及Nand Flash发展了多比特存储技术,这虽然使得Nand Flash的存储密度快速增加,但是也会不断降低Nand Flash的可靠性。
为了解决上述问题,相关技术是通过采用磨损均衡方法高效的利用NAND Flash存储芯片中每个存储物理块,使得各个存储物理块的擦除次数更均匀化,减少不必要的数据迁移操作和块擦除操作,以推迟存储块到达擦除次数上限的时间;但是,该磨损均衡方法只能延长Nand Flash芯片的可靠工作时间,无法降低Nand Flash存储芯片的误码率。
因此,有必要提出一种新的Nand Flash的控制技术。
发明内容
本申请提供了一种闪存Nand Flash的数据写入方法、装置、电子设备及存储介质,可以解决无法降低Nand Flash存储芯片的误码率的技术问题。
本发明第一方面提供一种闪存Nand Flash的数据写入方法,所述方法包括:
在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取所述编辑记录表中各所述存储块对应的编程间隔时间,及获取所述Nand Flash芯片当前的编程温度;
利用各所述编辑次数、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数;
根据所述编程优先级系数的系数值大小确定所述Nand Flash芯片中待编程的目标存储块;
对所述目标存储块进行数据写入。
可选的,所述获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数的步骤之前包括:
分别获取所述Nand Flash芯片中各所述存储块对应的编辑次数;
根据所述编辑次数的大小进行排序,得到各所述存储块的编辑次数序列;
根据所述编辑次数序列生成所述Nand Flash芯片的所述编辑记录表。
可选的,所述获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取所述编辑记录表中各所述存储块对应的编程间隔时间的步骤包括:
查找所述编辑记录表中的编辑次数序列,确定所述编辑次数序列中各所述存储块对应的编辑次数;
获取所述编辑记录表中各所述存储块编程时间,根据所述编程时间与当前的时间确定所述编程间隔时间。
可选的,所述利用各所述编辑次数、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数的步骤包括:
利用各所述编辑次数计算所述各存储块的编辑次数平均值;
根据各所述编辑次数及所述编辑次数平均值分别计算各所述存储块对应的编辑次数差值;
利用各所述编辑次数差值、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数。
可选的,所述利用各所述编辑次数差值、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数的步骤包括:
利用所述编辑次数差值、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数,所述编程优先级系数的计算公式如下:
其中,P表示所述编程优先级系数,N表示所述编辑次数差值,D表示所述编程间隔时间,T表示所述编程温度。
可选的,所述根据所述编程优先级系数的系数值大小确定所述Nand Flash芯片中待编程的目标存储块的步骤包括:
将各所述存储块对应的所述编程优先级系数进行系数值大小排序,得到优先级序列;
查找所述优先级列表中系数值最小的所述编程优先级系数;
将系数值最小的所述编程优先级系数对应所述存储块确定为所述目标存储块。
可选的,所述对所述目标存储块进行数据写入的步骤之后包括:
在完成对所述目标存储块的数据写入后,接收所述Nand Flash芯片反馈的编程完成信号;
根据所述编程完成信号更新所述目标存储块在所述编辑记录表中的编辑次数及编程时间。
本发明第二方面提供一种闪存Nand Flash的控制装置,所述装置包括:
获取模块,用于在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取所述编辑记录表中各所述存储块对应的编程间隔时间,及获取所述Nand Flash芯片当前的编程温度;
计算模块,用于利用各所述编辑次数、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数;
确定模块,用于根据所述编程优先级系数的系数值大小确定所述Nand Flash芯片中待编程的目标存储块;
写入模块,用于对所述目标存储块进行数据写入。
本发明第三方面提供一种电子设备,包括:存储器、处理器及通信总线,所述通信总线分别与所述存储器及所述处理器通信连接,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时,实现第一方面的闪存Nand Flash的数据写入方法中的各个步骤。
本发明第四方面提供一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面的闪存Nand Flash的数据写入方法中的各个步骤。
本发明提供的闪存Nand Flash的数据写入方法,包括:在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取编辑记录表中各存储块对应的编程间隔时间,及获取Nand Flash芯片当前的编程温度;利用各编辑次数、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数;根据编程优先级系数的系数值大小确定各存储块中待编程的目标存储块;对目标存储块进行数据写入。通过实施本方案,根据Nand Flash芯片当前的编程温度、各存储块的编辑次数及编程间隔时间计算各存储块的编程优先级系数,根据编程优先级系数确定Nand Flash芯片中的目标存储块,并对目标存储块进行数据写入,可降低Nand Flash芯片的误码率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的闪存Nand Flash的控制系统图;
图2为本发明实施例提供的闪存Nand Flash的数据写入方法的步骤流程图;
图3为本发明实施例提供的闪存Nand Flash的数据写入方法的又一步骤流程图;
图4为本发明实施例的闪存Nand Flash的控制装置的模块方框图;
图5为本发明实施例提供的电子设备的架构图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术中无法降低Nand Flash存储芯片的误码率的技术问题。
为了解决上述技术问题,本发明提出一种闪存Nand Flash的数据写入方法、装置、电子设备及存储介质。
请参阅图1,为本发明实施例提供的闪存Nand Flash的数据写入系统图。本发明实施例提供一种闪存Nand Flash的控制系统,该系统包括:控制器101、Nand Flash芯片102,其中,控制器101为用于控制Nand Flash芯片的处理器或控制单元,控制器101具有数据获取、数据计算、判断或确定、数据发送等数据处理能力,通过控制器101与Nand Flash芯片102之间的数据交互,实现控制器101对Nand Flash芯片102进行控制,如控制Nand Flash芯片102进行数据写入操作,需要说明的是,数据写入操作包括:数据擦除操作及擦除后的数据编程操作。
具体的,Nand Flash芯片102为固态存储器,具有非易失性、抗震性好、存储密度高、访问速度快、功耗低等优势。一个NAND FLASH芯片有多个存储块,每个存储块都有独立的被选择晶体管分开的字线和电源线,当一个块坏了之后不会影响其它块的性能。
Nand Flash芯片102具有对应的数据写入操作记录,该数据写入操作记录存储在与该控制器101通信连接的存储器内,或当该控制器101具有存储能力时,可存储在该控制器101内;数据写入操作记录通常记录Nand Flash芯片102内各存储块的数据写入情况。在Nand Flash芯片102的数据写入操作记录中,由于每次数据写入操作相当于对Nand Flash芯片进行一次编辑,数据写入通常对一个存储块进行擦除和编程,则在完成一次数据写入后,编辑次数加1;经过多次对Nand Flash芯片进行数据写入操作,不同的存储块之间可能会存在不同的编辑次数;以及由于各存储块是分别在不同时间下进行数据写入操作的,则在同一时间下选取各存储进行再次数据写入操作,则每个存储块之间也会存在不同的编程间隔时间。需要说明的是,在对Nand Flash芯片的存储块进行多次数据写入操作时,如果多次循环选取特定几个存储块进行数据写入操作,也可能存在部分存储块的编辑次数相同的情况,但是,每个存储块之间的编程间隔时间是不同的。
该控制器101为Nand Flash控制器,用于在当前的编程温度下,获取Nand Flash芯片102内各存储块的编辑次数、编程间隔时间,通过各存储块对应的编辑次数、编程间隔时间及当前的编程温度计算各存储块的编程优先级系数,并通过各存储块的编程优先级系数确定Nand Flash芯片102内待编程的目标存储块,进一步的,通过对选取的目标存储块进行数据写入操作,可降低Nand Flash芯片102的误码率。
请参阅图2,为本发明实施例提供的闪存Nand Flash的数据写入方法的步骤流程图。本实施例提供一种闪存Nand Flash的数据写入方法,该方法以应用于图1所示的闪存Nand Flash数据写入系统中的控制器101,控制器101执行程序时实现闪存Nand Flash的数据写入方法,该方法包括以下步骤:
步骤S201:在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取编辑记录表中各存储块对应的编程间隔时间,及获取Nand Flash芯片当前的编程温度。
需要说明的是,当Nand Flash存储单元(即Nand Flash芯片)进行重复的擦除编程时,Nand Flash芯片的隧穿氧化层的电势会导致电荷被隧穿氧化层俘获,这些被俘获的电荷被使得Nand Flash芯片不能够有效的进行擦除操作,还会形成电荷通路导致电荷俘获层存储的电荷泄漏,加快了电荷俘获层电荷流失的速度,随着数据保持时间的增加,阈值电压会变低,这导致了Nand Flash芯片的错误率提高。而Nand Flash芯片的具有自恢复效应,该自恢复效应可以修复这种损伤,在数据写入操作循环的编程间隔时间里,隧穿氧化层被俘获的电子会脱陷阱,因此,数据写入操作循环之间的编程间隔时间越长,自恢复效果越好,阈值电压偏移量也越小,误码率也就越低。进一步的,编程温度会影响电子的迁移率,编程温度越高,加快了编程操作的速度,使得编程的电子数量变多,编程后的阈值电压变大,则误码率增大,需要说明的是,随着数据保持时间的增加,阈值电压会变低,因此,编程温度高时,选择自恢复时间较短的存储块(阈值电压偏小值大的),即编程间隔时间小的存储块;当编程温度低时,选择自恢复间隔时间长的存储块(阈值电压偏小值小的),即编程间隔时间较大的存储块。
在步骤S201中,该编辑记录表包含:Nand Flash芯片的各存储块对应的编辑次数、及各存储块上一次数据写入操作的编程时间。Nand Flash芯片的数据写入操作包括:数据擦除及擦除后的数据编程。具体的,Nand Flash控制器在接收到编程指令时,获取编辑记录表中各存储块对应的编辑次数和当前的编程间隔时间,并接收Nand Flash芯片当前的编程环境下的编程温度,需要说明的是,Nand Flash控制器在获取Nand Flash芯片的编程温度时,具体可以通过温度传感器或红外传感器等器件测量Nand Flash芯片当前的编程温度,并通过Nand Flash控制器接收温度传感器或其他等同器件反馈的编程温度信号,以获取Nand Flash芯片的编程温度。通过执行本步骤,可准确获取Nand Flash芯片内各存储块的编辑次数、编程间隔时间及Nand Flash芯片当前的编程温度,以这些获取的参数作为确定本实施例待编程的目标存储块的确定因素,以提高选取目标存储块的准确度。
步骤S202:利用各编辑次数、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数。
具体的,在获取各存储块对应的编程次数、编程间隔时间以及Nand Flash芯片当前的编程温度后,可利用获取的编程次数、编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数,各存储块对应的编程优先级系数的计算方式具体如下:
其中,P表示编程优先级系数,N表示编辑次数与各存储块编辑次数平均值的差值,D表示编程间隔时间,T表示编程温度。
通过上公式计算各存储块对应的编程优先级系数,该编程优先级系数用于确定Nand Flash芯片中各存储块的编程的优先程度,具体通过编程优先级系数的大小来确定各存储块的编程优先级。编程优先级系数与编辑次数、编程温度及编程间隔时间相关,可以理解的是,编辑次数大于编辑次数平均值,且差值越大,则编程优先级系数越大;当编辑次数一定时,且编程温度越高,编程间隔时间越大,则编程优先级系数越大,或编程温度越小,编程时间时间越小,编程优先级系数越大。需要说明的是,本实施例是选择编程优先级系数最小的存储块进行编辑(数据写入),根据编程优先级系数可得,当编程温度越高时,选择编程间隔时间较小的存储块,当编程温度越小时,则选择编程间隔时间较大的存储块。通过实施本步骤,可通过编辑次数、编程间隔时间及编程温度作为确定Nand Flash芯片中目标存储块的依据,计算各存储块的编程优先级系数,提高选取目标存储块的准确度。
步骤S203:根据编程优先级系数的系数值大小确定Nand Flash芯片中待编程的目标存储块。
在步骤S203中,在得到各存储块对应的编程优先级系数后,可根据编程优先级系数的系数值大小来确定Nand Flash芯片中待编程的目标存储块,本实施根据各编程优先级系数中最小的编程优先级系数对应的存储块作为待编程的目标存储块。由于编程优先级系数是根据编辑次数、编程间隔时间及编程温度计算得到的,当存在多个存储块的编辑次数相同时,即编辑次数与与各存储块编辑次数平均值的差值相同时,若编程温度越高时,该存储块的阈值电压越大,由于存储块的编程间隔时间越小,其自恢复效应差,且阈值电压偏移值较大,则选择编程间隔时间越小的存储块进行编程,通过补偿,有利于降低误码率,且该存储块对应的编程优先级系数越小。若编程温度越低,阈值电压不会变大,由于编程间隔时间越大,存储块的自恢复效应好,则选择编程间隔时间越大的存储块进行编程,有利于降低误码率,且该存储块对应的编程优先级系数越小。因此,选取编程优先级系数小的存储块进行数据写入,可降低误码率。具体的,通过将各编程优先级系数进行系数值大小排序,选取排序后的系数值最小的编程优先级系数,查找系数值最小的各编程优先级系数对应的存储块,确定该存储块为目标存储块。通过执行本步骤,可确定Nand Flash芯片中待编程的目标存储块,以降低Nand Flash芯片的误码率。
步骤S204:对目标存储块进行数据写入。
在步骤S204中,在确定目标存储块后,则对目标存储块进行数据写入,该数据写入操作包括:数据擦除及擦除后的数据编程;具体的,在确定目标存储块后,先擦除目标存储块内的数据,在擦除完成后,对存储块进行数据编程。需要说明的是,本实施例中,假若不对Nand Flash芯片的存储块进行擦除,将无法进行数据编程,因此,在对Nand Flash芯片进行数据编程前必须擦除存储块的数据,本实施例不对数据擦除操作的成功与否进行检测,在数据编程成功后根据Nand Flash芯片的反馈信号确定是否完成数据写入。通过执行本步骤,通过对确定的目标存储块进行数据写入,以降低Nand Flash芯片的误码率,提高可靠性。
本发明提供的闪存Nand Flash的数据写入方法,包括:在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取编辑记录表中各存储块对应的编程间隔时间,及获取Nand Flash芯片当前的编程温度;利用各编辑次数、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数;根据编程优先级系数的系数值大小确定各存储块中待编程的目标存储块;对目标存储块进行数据写入。通过实施本方案,根据Nand Flash芯片当前的编程温度、各存储块的编辑次数及编程间隔时间计算各存储块的编程优先级系数,根据编程优先级系数确定Nand Flash芯片中的目标存储块,通过对目标存储块进行数据写入,以降低Nand Flash芯片误码率。
请参阅图3,为本发明实施例提供的闪存Nand Flash的数据写入方法的又一步骤流程图,该方法包括以下步骤:
步骤S301:分别获取Nand Flash芯片中各存储块对应的编辑次数及编程时间。
具体的,Nand Flash芯片的各存储块通常包括:数据区和冗余区,其中,数据区用于存储编程或写入的数据,冗余区用于储存关于存储块的参数,如编辑次数及上一次数据写入操作的编程时间。通过访问Nand Flash芯片中各存储块的冗余区,获取各存储块的冗余区中的编辑次数及上一次数据写入操作的编程时间。
步骤S302:根据编辑次数的大小进行排序,得到各存储块的编辑次数序列。
具体的,根据获取的各存储块对应的编辑次数的值进行大小排序,生成各存储块对应的编辑次数序列,该编辑次数序列为各存储块对应的编辑次数大小排序的序列,关于该编辑次数排序方式可通过将各编辑次数按照从大到小的方式排序,或以从小打到的方式排序,通过该编辑次数序列可获悉Nand Flash芯片中各存储块对应的编辑次数的排序位置。
步骤S303:根据编辑次数序列及编程时间生成Nand Flash芯片的编辑记录表。
具体的,根据编辑次数序列及上一次数据写入操作对应的编程时间生成NandFlash芯片对应的编辑记录表,该编辑记录表包含各存储块对应的编辑次数在列表中的排列顺序,通过生成该编辑记录表,可将编辑次数序列存储至Nand Flash控制器内,或存储至与Nand Flash控制器通信连接的存储器,提高数据处理速度。需要注意的是,该存储器并非待编程的Nand Flash芯片内的存储块。
步骤S304:在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取编辑记录表中各存储块对应的编程间隔时间,及获取Nand Flash芯片当前的编程温度。
步骤S305:利用各编辑次数、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数。
步骤S306:根据编程优先级系数的系数值大小确定Nand Flash芯片中待编程的目标存储块。
步骤S307对目标存储块进行数据写入。
步骤S304-S307为与前述的闪存Nand Flash的数据写入方法步骤中的S201-S204相近或相同的方法步骤,本实施例的步骤S304-S307的描述与前述步骤中的S201-S204的描述相近,本实施例对此不作进一步赘述。
步骤S308:在完成对目标存储块的数据写入后,接收Nand Flash芯片反馈的编程完成信号;并根据编程完成信号更新目标存储块在编辑记录表中的编辑次数及编程时间。
具体的,数据写入操作包括:数据擦除及擦除后的数据编程,因此,在对NandFlash芯片中目标存储块进行数据写入操作时,需要先对目标存储块的数据擦除后,并对目标存储块进行数据编程。需要说明的是,在对存储块进行一次擦除/编程操作视为一次数据写入循环,每一次数据写入循环都需要更新Nand Flash芯片相应存储块的编辑次数及编程时间,及更新编辑记录表中的编辑次数及编程时间。在完成一次数据写入循环后,NandFlash控制器接收Nand Flash芯片反馈的编程完成信号,并根据编程完成信号执行更新目标存储块在编辑记录表中的编辑次数及编程时间。通过实时更新目标存储块在编辑记录表中的编辑次数及编程时间,以提高准确度。
进一步的,步骤S304包括:
查找编辑记录表中的编辑次数序列,确定编辑次数序列中各存储块对应的编辑次数。
获取编辑记录表中各存储块的编程时间,根据编程时间与当前的时间确定编程间隔时间。
具体的,编辑记录表包含:Nand Flash芯片中各存储块对应的编辑次数序列及各存储块对应的编程时间,该编程时间为存储块上一次完成数据写入操作的编程时间,通过查找编辑记录表中的编辑次数序列,可获取各存储块对应的编辑次数,并通过获取编辑记录表内包含的各存储块对应的编程时间,根据该编程时间与当前的时间确定编程间隔时间,可以理解的是,该当前的时间可以理解为对Nand Flash芯片中任一存储块进行数据写入时的固定时间,通过该固定时间确定各存储块的编程间隔时间。
进一步的,步骤S305包括:
利用各编辑次数计算各存储块的编辑次数平均值;
根据各编辑次数及编辑次数平均值分别计算各存储块对应的编辑次数差值;
利用各编辑次数差值、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数。
在步骤S305中,在计算各存储块对应的编程优先级次数时,具体需要涉及各存储块对应的编辑次数差值、编程间隔时间及当前的编程温度三个参数。具体的,利用各存储块对应的编辑次数计算编辑次数平均值,分别根据各编辑次数与编辑次数差值作差,得到各存储块对应的编辑次数差值;进一步的,利用各编辑次数差值、各编程间隔时间及获取的当前编程温度分别计算各存储块对应的编程优先级系数,提高选取目标存储块的准确度。
进一步的,利用编辑次数差值、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数,编程优先级系数的计算公式如下:
其中,P表示编程优先级系数,N表示编辑次数与各存储块编辑次数平均值的差值,D表示编程间隔时间,T表示编程温度;N为整数,
可以理解的是,通过上公式可计算各存储块对应的编程优先级系数,该编程优先级系数用于确定Nand Flash芯片中各存储块的编程的优先程度,具体通过编程优先级系数的大小来确定各存储块的编程优先级。本实施根据各编程优先级系数中最小的编程优先级系数对应的存储块作为待编程的目标存储块。
编程优先级系数是根据编辑次数、编程间隔时间及编程温度计算得到的。具体的,编辑次数大于编辑次数平均值,且差值越大,则编程优先级系数越大。当存在多个存储块的编辑次数相同时,即编辑次数与与各存储块编辑次数平均值的差值相同时,若编程温度越高时,则该存储块的阈值电压越大,则选择编程间隔时间越小的存储块进行编程,自恢复效应差,阈值电压偏移量变大,通过补偿,有利于降低误码率,且该存储块对应的编程优先级系数越小。若编程温度越低,阈值电压不会变大,编程间隔时间越大,存储块的自恢复效应好,则选择编程间隔时间越大的存储块进行编程,有利于降低误码率,且该存储块对应的编程优先级系数越小。因此,选取编程优先级系数小的存储块进行数据写入,可降低待写入数据编程后的误码率。
通过实施本步骤,可通过编辑次数、编程间隔时间及编程温度作为确定NandFlash芯片中目标存储块的依据,计算各存储块的编程优先级系数,提高选取目标存储块的准确度。
进一步的,步骤S306包括:
将各存储块对应的编程优先级系数进行系数值大小排序,得到优先级序列;
查找优先级列表中系数值最小的编程优先级系数;
将系数值最小的编程优先级系数对应存储块确定为目标存储块。
具体的,由于编程优先级系数是根据编辑次数、编程间隔时间及编程温度计算得到的,当存在多个存储块的编辑次数相同时,即编辑次数与与各存储块编辑次数平均值的差值相同时,若编程温度越高时,则该存储块的阈值电压越大,编程间隔时间越小的存储块,其自恢复效应差,导致阈值电压偏移量较大,则选择编程间隔时间越小的存储块进行编程,通过补偿,有利于降低误码率,且该存储块对应的编程优先级系数越小;若编程温度越低,阈值电压不会变大由于编程间隔时间越大,存储块的自恢复效应越好,则选择编程间隔时间越大的存储块进行编程,有利于降低误码率,且该存储块对应的编程优先级系数越小。因此,选取编程优先级系数小的存储块进行数据写入。具体的,通过将各编程优先级系数进行系数值大小排序,选取排序后的系数值最小的编程优先级系数,查找系数值最小的各编程优先级系数对应的存储块,确定该存储块为目标存储块。通过执行本步骤,可确定NandFlash芯片中待编程的目标存储块,以降低Nand Flash芯片的误码率。
请参阅图4,为本发明实施例提供一种闪存Nand Flash的控制装置模块方框图;本发明实施例提供一种闪存Nand Flash的控制装置,该装置400包括:
获取模块401,用于在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取各存储块对应的编程间隔时间,及获取Nand Flash芯片当前的编程温度;
计算模块402,用于利用各编辑次数、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数;
确定模块403,用于根据编程优先级系数的系数值大小确定Nand Flash芯片中待编程的目标存储块;
写入模块404,用于对目标存储块进行数据写入。
本发明提供的闪存Nand Flash的控制装置,包括:获取模块401、计算模块402、确定模块403及写入模块404。在接收到编程指令时,通过获取模块401获取编辑记录表中NandFlash芯片的各存储块对应的编辑次数,获取各存储块对应的编程间隔时间,及获取NandFlash芯片当前的编程温度;通过计算模块402利用各编辑次数、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数;通过确定模块403根据编程优先级系数的系数值大小确定各存储块中待编程的目标存储块;通过写入模块404对目标存储块进行数据写入。通过实施本方案,根据Nand Flash芯片当前的编程温度、各存储块的编辑次数及编程间隔时间计算各存储块的编程优先级系数,根据编程优先级系数确定Nand Flash芯片中的目标存储块,通过对目标存储块进行数据写入,以降低Nand Flash芯片的误码率。
进一步的,该装置400还包括:生成模块405及更新模块406。
生成模块405,用于分别获取Nand Flash芯片中各存储块对应的编辑次数及编程时间;根据编辑次数的大小进行排序,得到各存储块的编辑次数序列;根据编辑次数序列及编程时间生成Nand Flash芯片的编辑记录表。
具体的,通过生成模块405获取各存储块的冗余区中的编辑次数及上一次数据写入操作的编程时间,根据获取的各存储块对应的编辑次数的值进行大小排序,生成各存储块对应的编辑次数序列,及根据编辑次数序列及上一次数据写入操作对应的编程时间生成Nand Flash芯片对应的编辑记录表,提高数据处理速度。
更新模块406,用于在完成目标存储块的数据写入后,接收Nand Flash反馈的编程完成信号;根据编程完成信号更新目标存储块在编辑记录表中的编辑次数及编程时间。
具体的,数据写入操作包括:数据擦除及擦除后的数据编程,因此,在对NandFlash芯片中目标存储块进行数据写入操作时,需要先对目标存储块的数据擦除后,并对目标存储块进行数据编程。在对存储块进行一次擦除/编程操作视为一次数据写入循环后,通过更新模块406更新Nand Flash芯片相应存储块(目标存储块)的编辑次数及编程时间,并根据更新后的存储块冗余区的编辑次数及编程时间实时更新目标存储块(编程后的存储块)在编辑记录表中的编辑次数及编程时间,提高计算下一次计算编程优先级系数准确度。
本发明提供一种电子设备,请参阅图5,为本发明实施例提供的电子设备的架构图,该电子设备包括:存储器501、处理器502及通信总线503,通信总线503分别与存储器501及处理器502通信连接,存储器501与处理器502耦合,存储器501上存储有计算机程序,处理器502执行计算机程序时,实现上述任意一实施例的闪存Nand Flash的数据写入方法中的各个步骤。
示例性的,该闪存Nand Flash的数据写入方法的计算机程序主要包括:在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取各存储块对应的编程间隔时间,及获取Nand Flash芯片当前的编程温度;利用各编辑次数、各编程间隔时间及编程温度分别计算各存储块对应的编程优先级系数;根据编程优先级系数的系数值大小确定各存储块中待编程的目标存储块;对目标存储块进行数据写入。另外,计算机程序也可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算设备中的执行过程。例如,计算机程序可以被分割成如图4所示的获取模块401、计算模块402、确定模块403及写入模块404。
处理器502可以是中央处理模块(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本发明还提供一种存储介质,存储介质为计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现上述任意一实施例的闪存Nand Flash的数据写入方法中的各个步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种闪存Nand Flash的数据写入方法、装置、电子设备及存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种闪存Nand Flash的数据写入方法,其特征在于,所述方法包括:
在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取所述编辑记录表中各所述存储块对应的编程间隔时间,及获取所述Nand Flash芯片当前的编程温度;
利用各所述编辑次数、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数,包括:利用各所述编辑次数计算所述各存储块的编辑次数平均值;根据各所述编辑次数及所述编辑次数平均值分别计算各所述存储块对应的编辑次数差值;利用所述编辑次数差值、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数,所述编程优先级系数的计算公式如下:
其中,表示所述编程优先级系数,/>表示所述编辑次数差值,/>表示所述编程间隔时间,/>表示所述编程温度;
根据所述编程优先级系数的系数值大小确定所述Nand Flash芯片中待编程的目标存储块;
对所述目标存储块进行数据写入。
2.根据权利要求1所述的闪存Nand Flash的数据写入方法,其特征在于,所述获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数的步骤之前包括:
分别获取所述Nand Flash芯片中各所述存储块对应的编辑次数及编程时间;
根据所述编辑次数的大小进行排序,得到各所述存储块的编辑次数序列;
根据所述编辑次数序列及所述编程时间生成所述Nand Flash芯片的所述编辑记录表。
3.根据权利要求1所述的闪存Nand Flash的数据写入方法,其特征在于,所述获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取所述编辑记录表中各所述存储块对应的编程间隔时间的步骤包括:
查找所述编辑记录表中的编辑次数序列,确定所述编辑次数序列中各所述存储块对应的编辑次数;
获取所述编辑记录表中各所述存储块的编程时间,根据所述编程时间与当前的时间确定所述编程间隔时间。
4.根据权利要求1所述的闪存Nand Flash的数据写入方法,其特征在于,所述根据所述编程优先级系数的系数值大小确定所述Nand Flash芯片中待编程的目标存储块的步骤包括:
将各所述存储块对应的所述编程优先级系数进行系数值大小排序,得到优先级序列;
查找所述优先级序列中系数值最小的所述编程优先级系数;
将系数值最小的所述编程优先级系数对应所述存储块确定为所述目标存储块。
5.根据权利要求1所述的闪存Nand Flash的数据写入方法,其特征在于,所述对所述目标存储块进行数据写入的步骤之后包括:
在完成对所述目标存储块的数据写入后,接收所述Nand Flash芯片反馈的编程完成信号;
根据所述编程完成信号更新所述目标存储块在所述编辑记录表中的编辑次数及编程时间。
6.一种闪存Nand Flash的控制装置,其特征在于,包括:
获取模块,用于在接收到编程指令时,获取编辑记录表中Nand Flash芯片的各存储块对应的编辑次数,获取所述编辑记录表中各所述存储块对应的编程间隔时间,及获取所述Nand Flash芯片当前的编程温度;
计算模块,用于利用各所述编辑次数、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数,包括:利用各所述编辑次数计算所述各存储块的编辑次数平均值;根据各所述编辑次数及所述编辑次数平均值分别计算各所述存储块对应的编辑次数差值;利用所述编辑次数差值、各所述编程间隔时间及所述编程温度分别计算所述各存储块对应的编程优先级系数,所述编程优先级系数的计算公式如下:
其中,表示所述编程优先级系数,/>表示所述编辑次数差值,/>表示所述编程间隔时间,/>表示所述编程温度;
确定模块,用于根据所述编程优先级系数的系数值大小确定所述Nand Flash芯片中待编程的目标存储块;
写入模块,用于对所述目标存储块进行数据写入。
7.一种电子设备,包括:存储器、处理器及通信总线,所述通信总线分别与所述存储器及所述处理器通信连接,其特征在于,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至5任意一项所述的闪存Nand Flash的数据写入方法中的各个步骤。
8.一种存储介质,所述存储介质为计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至5任意一项所述的闪存Nand Flash的数据写入方法中的各个步骤。
CN202010630955.0A 2020-07-03 2020-07-03 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质 Active CN111813339B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010630955.0A CN111813339B (zh) 2020-07-03 2020-07-03 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010630955.0A CN111813339B (zh) 2020-07-03 2020-07-03 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111813339A CN111813339A (zh) 2020-10-23
CN111813339B true CN111813339B (zh) 2023-08-15

Family

ID=72855994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010630955.0A Active CN111813339B (zh) 2020-07-03 2020-07-03 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111813339B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113625964B (zh) * 2021-07-16 2024-01-26 浙江鸿泉电子科技有限公司 基于NandFlash的顺序存储方法、电子设备和存储介质
CN113900994B (zh) * 2021-12-02 2022-03-01 新华三智能终端有限公司 一种文件写入方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810110A (zh) * 2012-11-13 2014-05-21 索尼公司 存储器控制装置、存储器系统和信息处理系统
CN106598484A (zh) * 2016-11-17 2017-04-26 华为技术有限公司 数据的存储方法、闪存芯片以及存储装置
CN108182035A (zh) * 2017-12-28 2018-06-19 湖南国科微电子股份有限公司 一种提高ssd可靠性的方法
CN109582224A (zh) * 2018-11-12 2019-04-05 哈尔滨工业大学 一种基于自恢复效应的NAND Flash存储可靠性优化方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170285970A1 (en) * 2016-03-30 2017-10-05 Dell Products L.P. Information Handling System Persistent Storage Device Life Management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810110A (zh) * 2012-11-13 2014-05-21 索尼公司 存储器控制装置、存储器系统和信息处理系统
CN106598484A (zh) * 2016-11-17 2017-04-26 华为技术有限公司 数据的存储方法、闪存芯片以及存储装置
CN108182035A (zh) * 2017-12-28 2018-06-19 湖南国科微电子股份有限公司 一种提高ssd可靠性的方法
CN109582224A (zh) * 2018-11-12 2019-04-05 哈尔滨工业大学 一种基于自恢复效应的NAND Flash存储可靠性优化方法

Also Published As

Publication number Publication date
CN111813339A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
US10096357B2 (en) Data storage device and data writing method thereof
US10296226B2 (en) Control logic, semiconductor memory device, and operating method
US8949690B2 (en) Memory controller
US10168913B2 (en) Data storage device and data maintenance method thereof
US9653176B2 (en) Read disturb reclaim policy
CN105097028A (zh) 包括非易失性存储器件的存储装置和该器件的读取方法
KR20180040288A (ko) 비휘발성 메모리 장치의 리클레임 제어 방법, 상기 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법 및 저장 장치
TWI728190B (zh) 半導體記憶體裝置及其操作方法
JP2018156711A (ja) メモリコントローラおよびデータ読み出し方法
US11043275B2 (en) Memory system, read method, program, and memory controller
CN111813339B (zh) 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质
CN106373609B (zh) 包括半导体存储装置的存储系统及其操作方法
US20170125127A1 (en) Memory system and operating method thereof
JP2019160355A (ja) メモリシステム、読み出し方法、プログラムおよびメモリコントローラ
KR20190050487A (ko) 반도체 메모리 장치 및 그것의 동작 방법
CN111816240A (zh) 闪存Nand Flash的动态测试方法、装置、电子设备及存储介质
CN112513988A (zh) 伪异步多平面独立读取
KR20150074655A (ko) 메모리 시스템
KR20180073885A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20170111657A (ko) 반도체 메모리 장치 및 이의 동작 방법
CN111813591B (zh) Nand Flash的数据纠错方法、装置、电子设备及存储介质
KR20220008058A (ko) 컨트롤러 및 컨트롤러의 동작방법
CN111143146B (zh) 一种存储装置的健康状态预测方法及系统
KR20180132357A (ko) 반도체 메모리 장치 및 이의 동작 방법
US20150154067A1 (en) Memory system including randomizer and derandomizer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant