掌桥专利:专业的专利平台
掌桥专利
首页

一种闪存控制方法、电子设备和存储介质

文献发布时间:2024-04-18 19:58:21


一种闪存控制方法、电子设备和存储介质

技术领域

申请涉及存储领域,尤其涉及一种闪存控制方法、电子设备和存储介质。

背景技术

随着手机等移动场景下使用的电子设备的技术的不断发展,用户在日常生活中使用电子设备的频率越来越高。而这也将必然使得用户对电子设备的存储需求越来越高。目前,手机等电子设备大都采用以NAND(not and,与非门)闪存技术作为基础的存储器(例如SSD(solid state drive,固态硬盘)、UFS(universal flash storage,通用闪存存储)、eMMC(embedded multi media card,嵌入式多媒体卡)等)存储数据。为了提高存储容量,电子设备的厂商可以增加NAND闪存中每个存储单元cell的存储容量。具体可以是将NAND闪存中的存储单元由最基本的能够存储1bit的单层存储单元(single-level,SLC)变更为多层存储单元(multi-level cell,MLC)、三层存储单元(triple -level cell,TLC)、四层存储单元(quad -level cell,QLC)等可以存储更多比特的存储单元。但是,这样会使得存储电压范围不变或者变化较小的情况下,存储单元中存储不同数据的电压区分度更低,用来读取存储单元中数据的阈值电压的数量也会更多且差别更小。这样一来,会使得电子设备从存储器中读取数据时的原始比特错误率升高,对电子设备的使用造成了不利影响。

发明内容

相关技术中,为了降低电子设备从存储器中读取数据的原始比特错误率,可以基于神经网络算法在电子设备从存储器中读取数据时,自动计算得出最优的阈值电压,从而使得电子设备可以从存储器读取到准确的数据。但是,由于神经网络算法耗时长会降低电子设备的带宽,且需要较大功耗。所以,该技术方案会使得电子设备的功耗增大且带宽减小,不利于用户的使用。

本申请实施例提供一种闪存控制方法、电子设备和存储介质,能够在降低功耗和消耗时长的基础上,降低数据读取时的原始比特错误率。

为了达到上述目的,本申请实施例采用如下技术方案:

第一方面,本申请实施例提供一种闪存控制方法,应用于电子设备中NAND闪存中的闪存控制器,该电子设备中还包括存算一体芯片。该方法包括:闪存控制器在NAND闪存处于空闲状态的情况下,获取NAND闪存中至少一个单位存储区域中每个单位存储区域的阈值电压参数,并利用存算一体芯片,获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组;存算一体芯片具备利用单位存储区域的阈值电压参数和预置的阈值电压计算模型,确定出单位存储区域的第一阈值电压组的能力;闪存控制器利用第二单位存储区域的第一阈值电压组,更新第二单位存储区域的最优阈值电压组;第二单位存储区域为至少一个单位存储区域中获取到了第一阈值电压组的一个单位存储区域。

基于本申请提供的技术方案,由于在更新最优阈值电压组的过程中,计算最优阈值电压组是放在功耗低的存算一体芯片上的,所以整体功耗不高。此外,由于计算最优阈值电压组时,NAND闪存处于空闲状态,计算的耗时也不会影响NAND闪存的正常使用,也就不会影响手机的带宽。这样一来,用户在使用手机的过程中,手机中NAND闪存中单位存储区域的最优阈值电压组便可以在产生较低功耗且不影响手机带宽的基础上,及时的更新,进一步的,这样可以保证手机读取数据时可以更大概率的读取到准确的数据,降低了数据读取时的原始比特错误率,提高了用户的使用体验。

在第一方面的一种可能的实现方式中,获取NAND闪存中至少一个单位存储区域中每个单位存储区域的阈值电压参数,并利用存算一体芯片,获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组,包括:

若前一次对至少一个单位存储区域中每个单位存储区域的最优阈值电压组更新之后,NAND闪存的数据读取次数大于第一预设阈值,则获取NAND闪存中至少一个单位存储区域中每个单位存储区域的阈值电压参数,并利用存算一体芯片,获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组。

实际中, NAND闪存中单位存储区域的最优阈值电压组中的最优阈值电压是随着时间逐步变化的,不会在短时间内产生较大的变化。所以在数据读取时,不需要每次都使用和当前时刻最符合的最优阈值电压组。也就是说,NAND闪存中单位存储区域的最优阈值电压组不需要实时或连续不断的更新,仅需要每隔一段时间更新即可。而一段时间对最优阈值电压组影响主要是由电子设备对NAND闪存的读取产生的,所以这里“每隔一段时间”中的一段时间具体可以由NAND闪存的数据读取次数表征。基于上述实现方式,则可以周期性的对NAND闪存中的单位存储区域的最优阈值电压组进行更新,使得NAND闪存在被读取数据时,可以使用和当前时刻匹配的最优阈值电压组读取到更准确的数据,降低原始比特错误率,提高用户的使用体验。

在第一方面的一种可能的实现方式中,获取NAND闪存中至少一个单位存储区域中每个单位存储区域的阈值电压参数,并利用存算一体芯片,获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组,包括:闪存控制器从至少一个单位存储区域中确定目标单位存储区域;闪存控制器获取目标单位存储区域的阈值电压参数,并利用存算一体芯片,获取目标单位存储区域的第一阈值电压组;闪存控制器在确定接收到读/写请求的情况下,对读/写请求进行响应;读/写请求用于请求在NAND闪存中进行数据读取或数据写入;闪存控制器在确定未接收到读/写请求的情况下,若至少一个单位存储区域中所有单位存储区域未均得到了第一阈值电压组,则重新从至少一个单位存储区域中确定目标单位存储区域。

基于上述实现方式,电子设备中NAND闪存的闪存控制器便可以在不影响NAND闪存正常使用的情况下,在NAND闪存处于空闲状态时完成对NAND闪存中单位存储区域的第一阈值电压组的获取,进而完成NAND闪存中单位存储区域的最优阈值电压组的更新。

在第一方面的一种可能的实现方式中,该方法还包括:闪存控制器在确定未接收到读/写请求的情况下,生成未完成更新信息并存储;未完成更新信息用于指示至少一个单位存储区域中存在单位存储区域未得到第一阈值电压组;未完成更新信息还包括指示该至少一个单位存储区域中,未得到第一阈值电压组的单位存储区域的标识的指示信息;

在NAND闪存处于空闲状态的情况下,该方法还包括:闪存控制器在确定存在未完成更新信息的情况下,则基于未完成更新信息中的指示信息,从至少一个单位存储区域确定目标单位存储区域。

基于上述实现方式,电子设备中NAND闪存的闪存控制器,便可以在不影响NAND闪存的正常使用的情况下,在NAND闪存处于空闲状态时,顺利完成对至少一个单位存储区域中在前一次阈值电压更新过程中未能得到第一阈值电压组的中部分单位存储区域进行最优阈值电压组的更新。

在第一方面的一种可能的实现方式中,获取NAND闪存中至少一个单位存储区域中每个单位存储区域的阈值电压参数,并利用存算一体芯片,获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组,包括:若NAND闪存中存在第三单位存储区域,则闪存控制器获取第三单位存储区域的阈值电压参数,并利用存算一体芯片,获取第三单位存储区域的第一阈值电压组;其中,第三单位存储区域为前一次更新了最优阈值电压组之后,数据读取次数大于第二预设阈值的单位存储区域;此时,至少一个单位存储区域包括第三单位存储区域。

基于上述实现方式,闪存控制器可以在每个单位存储区域需要更新最优阈值电压组时,在NAND闪存处于空闲状态的请款下完成更新。而且,由于每次获取第一阈值电压组仅针对一个单位存储区域,需要的时间很短,大概率可以在NAND闪存的一次空闲期(一次处于空闲状态的持续时期)完成,也不会对NAND闪存的正产使用造成不利影响,提高了用户的使用体验。

在第一方面的一种可能的实现方式中,闪存控制器利用第二单位存储区域的第一阈值电压组,更新第二单位存储区域的最优阈值电压组,包括:闪存控制器使用第二单位存储区域的第一阈值电压组,替换NAND闪存中目标存储区中存储的第二单位存储区域的最优阈值电压组。

基于上述实现方式,便可以使得NAND闪存中存储的单位存储区域的最优阈值电压及时的更新,方便NAND闪存在被读取时使用。

在第一方面的一种可能的实现方式中,目标存储区中使用单层存储单元SLC存储第二单位存储区域的最优阈值电压组。

基于上述实现方式,由于SLC的阈值电压仅有一个,所以SLC中阈值电压随时间产生改变时对从SLC中读取数据的影响较小,所以将最优阈值电压组存储在SLC中,可以降低最优阈值电压组被读取失败的风险,也就提高了依托最优阈值电压组进行的数据读取的可靠性。

在第一方面的一种可能的实现方式中,该方法还包括:闪存控制器响应于来自电子设备中需求方的读请求,基于待读取页所属的单位存储区域的最优阈值电压组,从待读取页中读取数据得到目标数据;读请求用于请求从NAND闪存中待读取页的数据;闪存控制器在对目标数据校验成功的情况下,向需求方发送目标数据。

基于上述实现方式,因为每个单位存储区域的最优阈值电压组会基于之前的阈值更新流程不断的更新。所以在进行数据读取时,可以利用待读取页所属的单位存储区域的最优阈值电压组,快速从待读取页读取到更准确的数据,降低了数据读取时的原始比特错误率,提高了用户的使用体验。

在第一方面的一种可能的实现方式中,闪存控制器响应于来自电子设备中需求方的读请求,基于待读取页所属的单位存储区域的最优阈值电压组,从待读取页中读取数据得到目标数据,包括:闪存控制器响应于来自电子设备中需求方的读请求,使用待读取页的默认阈值电压组,从待读取页中读取数据得到第一数据;在对第一数据校验失败的情况下,闪存控制器使用待读取页所属的单位存储区域的最优阈值电压组,从待读取页中读取数据得到目标数据。

基于上述实现方式,闪存控制器可以采用合适的阈值电压组从待读取页中读取到数据。

第二方面,本申请实施例还提供一种闪存控制装置,该装置可以应用于电子设备中的NAND闪存中。该装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,例如,阈值电压获取模块和更新模块。

其中,阈值电压获取模块,用于在NAND闪存处于空闲状态的情况下,获取NAND闪存中至少一个单位存储区域中每个单位存储区域的阈值电压参数,并利用存算一体芯片,获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组;存算一体芯片具备利用单位存储区域的阈值电压参数和预置的阈值电压计算模型,确定出单位存储区域的第一阈值电压组的能力;

更新模块,用于利用阈值电压获取模块获取的第二单位存储区域的第一阈值电压组,更新第二单位存储区域的最优阈值电压组;第二单位存储区域为至少一个单位存储区域中获取到了第一阈值电压组的一个单位存储区域。

第三方面,本申请提供一种电子设备,该电子设备包括显示屏、存储器、存算一体芯片和一个或多个处理器;显示屏、存储器与处理器耦合;其中,存储器中包括有NAND闪存,NAND闪存中包括闪存控制器;闪存控制器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被闪存控制器执行时,使得闪存控制器执行如第一方面及其任一种可能的设计方式提供的闪存控制方法。

第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备中NAND闪存的闪存控制器上运行时,使得电子设备中NAND闪存的闪存控制器执行如第一方面及其任一种可能的设计方式提供的闪存控制方法。

第五方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备中NAND闪存的闪存控制器上运行时,使得电子设备中NAND闪存的闪存控制器执行如第一方面及其任一种可能的设计方式提供的闪存控制方法。

可以理解地,上述提供的第二方面至第五方面提供的技术方案所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。

附图说明

图1为本申请实施例提供的存储单元的功能示意图;

图2为相关技术提供的一种闪存控制方法的原理示意图;

图3为本申请实施例提供的一种电子设备的硬件结构示意图;

图4为本申请实施例提供的一种闪存颗粒的结构示意图;

图5为本申请实施例提供的另一种电子设备的硬件架构示意图;

图6为本申请实施例提供的一种闪存控制方法中阈值电压更新流程的流程示意图一;

图7为本申请实施例提供的一种利用存算一体芯片获取第一阈值电压组的流程示意图;

图8为本申请实施例提供的一种闪存控制方法中阈值电压更新流程的流程示意图二;

图9为本申请实施例提供的一种闪存控制方法中阈值电压更新流程的流程示意图三;

图10为本申请实施例提供的一种闪存控制方法中阈值电压更新流程的流程示意图四;

图11为本申请实施例提供的一种闪存控制方法中阈值电压更新流程的流程示意图五;

图12为本申请实施例提供的一种闪存控制方法中阈值电压更新流程的流程示意图六;

图13为本申请实施例提供的一种闪存控制方法中数据读取流程的流程示意图一;

图14为本申请实施例提供的一种闪存控制方法中数据读取流程的流程示意图二;

图15为本申请实施例提供的一种闪存控制方法中数据读取流程的流程示意图三;

图16为本申请实施例提供的一种闪存控制装置的结构示意图;

图17为本申请实施例提供的一种芯片系统的结构示意图。

具体实施方式

本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。

本申请以下实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

首先,对本申请实施例中涉及名词进行如下说明:

与非门(Not And,NAND)闪存:NAND闪存是一种基于Flash存储技术的闪存芯片,它采用多个并联的与非门电路来存储和读取数据。这种存储方式使得NAND闪存具有更快的读写速度和更高的密度,与传统硬盘、U盘等其他存储设备相比。此外,NAND闪存的存储单元是垂直排列的,在狭小的面积里可以制造很多单元,从而实现大容量化。它不需要记忆各个存户单元的位置,因此写入速度很快。由于其小型化和大容量化,NAND闪存常常被用作各种移动设备和电子产品的存储设备。

NAND闪存中的存储单元可以包括有以下几种类型:单层存储单元(single-level,SLC)、多层存储单元(multi-level cell,MLC)、三层存储单元(triple -level cell,TLC)、四层存储单元(quad -level cell,QLC)。其中,每个SLC中可以存储1bit的数据,以二进制数据为例,SLC存储的数据可以为0或1;每个MLC中可以存储2bit的数据,以二进制数据为例,MLC存储的数据可以为01或10或11或00;每个TLC中可以存储3bit的数据,以二进制数据为例,TLC存储的数据可以为000或001或010或011或100或101或110或111;每个QLC中可以存储4bit的数据,以二进制数据为例,QLC存储的数据可以为0000或0001或0010或0011或0100或0101或0110或0111或1000或1001或1010或1011或1100或1101或1110或1111。

具体的,NAND闪存中的存储单元主要是通过存储不同的电压(实际可以为不同电压范围内的电压)来存储不同的数据的。SLC可以存储两种数据,所以SLC中可以存储两种不同电压(不同的电压隶属于不同的电压范围),每种电压则用于表示一种数据。同理,MLC中可以存储四种不同电压,每种电压则用于表示一种数据;TLC中可以存储八种不同电压,每种电压则用于表示一种数据;QLC中可以存储十六种不同电压,每种电压则用于表示一种数据。

实际中,手机等电子设备使用的存储设备可以是基于NAND闪存的存储器件。例如,手机使用的NAND闪存设备可以是通用闪存存储(universal flash storage,UFS)和/或嵌入式多媒体卡(embedded multi media card,eMMC),电脑使用的NAND闪存设备则可以是固态硬盘(solid state drive,SSD)。

读干扰(read disturb):读干扰主要是指在读取存储在NAND闪存设备中的数据时,可能会对相邻存储区域的数据产生干扰。这是因为NAND闪存设备的读取操作会对同一block物理块内的其他page页产生影响。随着闪存制程的提高,单个物理块内包含的页数增加,以及单个存储单元cell存储的信息更多(如TLC、QLC等),这种读干扰问题会变得更加突出。严重的情况下,可能会导致读回来的数据出错,甚至数据丢失。

数据保存时间(data retention):数据保存时间是指在NAND闪存设备中,数据的可靠存储期限。多种因素都可能会影响数据保存时间,例如闪存类型、质量、使用次数和环境条件等。一般来说,NAND闪存设备的数据保存期限在5年至10年之间。然而,这个时间可能会随着使用条件的不同而变化。例如,如果闪存设备长时间不使用,或者在高温、湿度和强磁场等恶劣环境条件下使用,那么数据的保存时间可能会缩短。

重读法(read retry):重读法是一种通过多次尝试读取数据以纠正错误的方法。在NAND闪存存储中,由于各种原因,如电子噪声、程序代码的错误等,可能导致读取数据时出现错误。通过多次尝试读取数据,可以增加成功读取数据的可能性,从而减少错误。通常,重读法会配合错误纠正码(error correcting code,ECC)一起使用,可以更有效地纠正错误。

阈值电压微调(Vt tuning):阈值电压微调是一种微调阈值电压的方法,用于改善NAND闪存的读取性能。在NAND闪存中,阈值电压是在读取NAND闪存中数据中必要的数据,主要用于对NAND中存储的数据进行判断。阈值电压微调方法可以通过改变与阈值电压的大小来配合ECC进行纠错,通过调整Vt±δ值来重新读取数据。由于不能确定修改VT值以后从NAND闪存中读取的数据的变化趋势,在该方法中,通常是将δ值逐渐增加和减小,直到读到正确值为止。这种方法需要多次调整和读取数据,可能会影响闪存控制器的性能。

阈值电压偏移(Vt shift):Vt shift是通过在NAND闪存中针对使用相同Vt的存储单元提前预存多组Vt。当电子设备需要从这类存储单元中读取数据时,可以从预存的多组Vt选取合适的一组Vt作为读取数据的依据。

存算一体芯片:存算一体芯片是一种集存算于一体的芯片。它以数据为中心,存储功能和计算功能有机融合,直接利用存储单元进行数据处理,通过修改“读”电路的存内计算架构,可以在“读”电路中获取运算结果,并将结果直接“写”回存储器的目的地址,不再需要在计算单元和存储单元之间进行频繁的数据转移,消除了数据搬移带来的开销,不仅极大降低了功耗,还大大提升了计算效率。

在现有技术中,为了提高用户的使用体验,手机等电子设备的厂商可以通过将电子设备中NAND闪存中每个存储单元cell的存储容量增加,从而提高电子设备的存储容量,满足用户日益增长的存储需求。具体的,可以将NAND闪存中的存储单元由最基本的能够存储2bit的SLC变更为MLC、TLC、QLC等可以存储更多比特的存储单元。但是,在可以存储的电压范围相同的情况下,存储单元中相邻比特的电压区分度更低,用来读取存储单元中数据的阈值电压的数量也会更多且差别更小。示例性的,存储单元中存储二进制数据为例,SLC、MLC、TLC、QLC对可存储的电压范围可以如图1中(a)所示。

其中,SLC为了存储0或1,将会把可存储的电压范围分为2等分,两部分的电压则分别对应0和1。MLC为了存储00、01、10或11,将会把可存储的电压范围分为4等分,四部分的电压则分别对应00、01、10和11。TLC为了存储000、001、010、011、100、101、110和111,将会把可存储的电压范围分为8等分,八部分的电压则分别对应000、001、010、011、100、101、110或111。QLC为了存储0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110或1111,将会把可存储的电压范围分为16等分,十六部分的电压则分别对应0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110或1111。

这样一来,电子设备的存储密度大幅增加,存储成本则会降低。但是,由于存储单元中可存储的不同数据更多,需要用来识别存储单元中不同数据的阈值电压也就更多(SLC仅需要一个阈值电压判断两种数据,而QLC则需要15中阈值电压来判断16种数据),且差别更小,即同一存储单元的阈值电压的分布更为密集。而阈值电压分布越密集,从NAND闪存中读取数据时也就更容易出现错误,使得电子设备从基于NAND闪存的存储器中读取数据时的原始比特错误率(raw bit error rate,RBER)升高。

此外,在NAND闪存中,由于读干扰和数据保存时间的影响,NAND闪存中存储单元用于保存数据的电荷会随着时逐渐变化。因此,用来判断NAND闪存中的存储单元的保存数据的最佳阈值电压也会随之变化。如图1中(b)所示,在第一时刻时,能够很好的区分NAND闪存中存储单元中存储的电压表示的为“1”还是“0”的阈值电压为V

而这也就进一步升高了电子设备从基于NAND闪存的存储器中读取数据时的原始比特错误率,电子设备从NAND闪存中读数据所需要花费的时间也就会边长,对电子设备的使用造成了不利影响。

为了使得电子设备从基于NAND闪存的存储器中读取数据可以读取到正确的数据,相关技术中可以使用重读法、阈值电压微调和阈值电压偏移等方法。但是,这些方法中,阈值电压是固定的,无法随着NAND闪存的状态而改变。也就是说,使用这些方法并不能很好的降低电子设备从存储器中读取数据时的原始比特率,且随着NAND闪存中某个数据存储时间的正常,电子设备从NAND闪存中读取该数据的错误概率会越来越高。

基于该问题,相关技术中则还提出使用神经网络算法来确定电子设备从存储器中读取数据时,需要的最优的阈值电压。具体的,在电子设备从存储器中读取数据时,可以基于数据所在存储区域(例如NAND闪存中的某page)的特征参数,实时的计算读取数据需要的最优的阈值电压。然后,电子设备则可以基于最优的阈值电压,快速的从存储器中读取到准确的数据。

但是,基于神经网络计算最优的阈值电压时,需要较大的功耗,而且计算时长较长。而计算时长越长,则会使得电子设备读取速率的速度越慢,后续电子设备处理和传输这些数据所需要的消耗总时间也就越长。这样一来,对于电子设备而言,带宽则会降低。对于在移动场景(例如用户随身携带使用的场景)下使用电子设备的用户而言,较大的功耗和较小的带宽会严重影响用户的正常使用。

针对上述问题,本申请提供一种闪存控制方法,应用于具备基于NAND闪存的存储器的电子设备中,具体可以由NAND闪存中的闪存控制器实施。参照图2所示,在该技术方案中,事先会在电子设备中设置存算一体芯片,该存算一体芯片具体利用神经网络计算最优阈值电压的能力。具体的,在NAND闪存处于空闲的情况下,利用存算一体芯片获取NAND闪存中各个存储区域(例如页page或块block)的最优阈值电压组(由至少一个最优的阈值电压组成的组合),并存储在特定区域。之后,在需要从NAND闪存中的待读取区域中读取数据时(例如接收到需求方host的读取指令/请求),则可以从特定区域中获取待读取区域的最优阈值电压组,并基于待读取区域的最优阈值电压组,从待读取区域中读取数据,并返回给需求方。

在该技术方案中,NAND闪存中最优阈值电压的计算是由存算一体芯片完成的,而存算一体芯片在进行数据运算时相比于传统处理器而言,会降低很大的功耗。此外,存算一体芯片计算最优阈值电压的时机是NAND闪存空闲的时候,这样也就不会影响NAND闪存的正产更实用。也就是说,用户在使用电子设备时,不会产生因为NAND闪存等待计算最优阈值电压无法顺利读取数据,从而造成带宽降低的缺陷。

下面结合附图对本申请实施例提供的技术方案进行详细表述。

本申请提供的技术方案可以应用在具备动效显示功能的电子设备中。在一些实施例中,该电子设备可以是手机、平板电脑、手持计算机、个人计算机(personal computer,PC),超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备等电子设备,本申请实施例对该电子设备的具体类型不作特殊限制。

示例性的,以电子设备是手机为例,图3示出了本申请实施例提供的一种电子设备的结构示意图。

参照图3所示,电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,显示屏193,用户标识模块(subscriber identification module,SIM)卡接口194,以及摄像头195等。其中,传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。

在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。

充电管理模块140用于从供电设备(例如充电器、笔记本电能等)接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。

电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏193,摄像头195,和无线通信模块160等供电。电源管理模块141还可以用于监测电池的电压、电流、电池循环次数、电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。

外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。

内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM )和一个或多个非易失性存储器(non-volatile memory,NVM)。随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。

在一种可能的实现方式中,内部存储器121中的非易失性存储器可以是由至少一个NAND闪存构成的存储器。例如UFS、SSD、eMMC等。参照图4所示,NAND闪存中可以包括有闪存控制器和多个闪存颗粒(Die Capacity)。每个闪存颗粒中可以包括有多个逻辑单元(logical unit number,LUN),每个逻辑单元中包括多个平面(plane),每个平面中包括多个块(block),每个块中可以包括多页(page),每页中包括多个存储单元(cell),每个存储单元根据其结构的不同则可以存储1bit或更多比特的数据。一般情况下,在对NAND闪存进行读/写操作时,page是最小的读/写单位,即电子设备每次读/写操作时,仅可以针对NAND闪存中的单个page。

在本申请实施例中,为了降低利用神经网络计算NAND闪存中单位存储区域的最优阈值电压组时产生的功耗,电子设备中还可以包括有存算一体芯片。该存算一体芯片主要用于在NAND闪存需要计算或更新单位存储区域的最优阈值电压时,基于预置的神经网络模型计算NAND闪存中单位存储区域的最新的最优阈值电压组(即后续的第一阈值电压组)。对于一个单位存储区域而言,其包括的多个存储单元所需要的阈值电压组是相同或近似相同的。所以一个单位存储区域的最优阈值电压组(或第一阈值电压组)可以认为是,该单位存储区域中存储单元需要的多个最优的阈值电阻的组合。例如,若单位存储区域为page,且该page中的存储单元均为TLC,则该page的最优阈值电压组为其包括的任意TLC需要的7个最优阈值电阻形成的组合。

在一种可能的实现方式中,参照图5中(a)所示,存算一体芯片可以单独的存在于电子设备中。同时,该存算一体芯片和NAND闪存中的闪存控制器之间可以采用任意方式建立通信连接,使得闪存控制器可以利用到存算一体芯片计算单位存储区域的最优阈值电压组。

在另一种可能的实现方式中,参照图5中(b)所示,存算一体芯片可以作为NAND闪存中闪存控制器的内置模块(可称为内置IP)。此时,闪存控制器可以自由的使用存算一体芯片的功能,以计算单位存储区域的最优阈值电压组。

触摸传感器,也称“触控器件”。触摸传感器可以设置于显示屏193,由触摸传感器与显示屏193组成触摸屏,也称“触控屏”。触摸传感器用于监测作用于显示屏上或附近的触摸操作。触摸传感器可以将监测到的触摸操作传递给应用处理器,以确定触摸事件类型,进而通过显示屏193提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器也可以设置于电子设备的表面,与显示屏193所处的位置不同。

环境光传感器用于感知环境光亮度。例如:环境光传感器可以测量环境光的四个通道的光强度。环境光传感器将测量到的环境光的四个通道的光强度输出给处理器110。处理器110可以对环境光传感器输出的环境光的四个通道的光强度进行处理得到环境光的光强度。在亮屏状态下,电子设备可以根据得到的环境光的光强度自适应调节显示屏亮度。

压力传感器用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器可以设置于显示屏193。压力传感器的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。当有触摸操作作用于显示屏193,电子设备根据压力传感器监测所述触摸操作强度。电子设备也可以根据压力传感器的监测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。

在一些实施例中,电子设备可以包括1个或N个摄像头195,N为大于1的正整数。在本申请实施例中,摄像头195的类型可以根据硬件配置以及物理位置进行区分。例如,设置在电子设备的显示屏193那一面的摄像头可以称为前置摄像头,设置在电子设备的后盖那一面的摄像头可以称为后置摄像头;又例如,焦距短、视越大的摄像头可以称为广角摄像头,焦距长、视角小的摄像头可以称为普通摄像头。其中,焦距的长短、视角的大小为相对概念,并无具体的参数限定,因此广角摄像头和普通摄像头也是一个相对概念,具体可以根据焦距、视角等物理参数进行区分。

电子设备通过GPU,显示屏193,以及应用处理器等实现显示功能。GPU为图像编辑的微处理器,连接显示屏193和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。

电子设备可以通过ISP,摄像头195,视频编解码器,GPU,显示屏193以及应用处理器等实现拍摄功能。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。本申请实施例中,每个图像帧的帧绘制过程中,都会使用的GPU的功能,以使得最终显示的画面获得更好的显示效果和性能表现。

ISP用于处理摄像头195反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头195中。摄像头195用于捕获静态图像或视频。

数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。

显示屏193用于显示图像,视频等。显示屏193包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏193,N为大于1的正整数。

本申请实施例中,显示屏193可用于显示电子设备需要的页面(例如,向导页面(包括亮点推荐页面和外部模块接入页面)等),并在该界面中显示来自任一个或多个摄像头195拍摄的图像。

电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调器以及基带处理器等实现。

天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。

移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。

调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏193显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或者其他功能模块设置在同一个器件中。

无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bltooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。

SIM卡接口194用于连接SIM卡。SIM卡可以通过插入SIM卡接口194,或从SIM卡接口194拔出,实现和电子设备的接触和分离。电子设备可以支持一个或多个SIM卡接口。SIM卡接口194可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口194可以同时插入多张卡。SIM卡接口194也可以兼容外部存储卡。电子设备通过SIM卡和网络交互,实现通话以及数据通信等功能。一个SIM卡对应一个用户号码。

可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

当然,可以理解的,上述图3所示仅仅为电子设备的形态为手机时的示例性说明。若电子设备是平板电脑,手持计算机,PC,PDA,可穿戴式设备(如:智能手表、智能手环)等其他设备形态时,电子设备的结构中可以包括比图3中所示更少的结构,也可以包括比图3中所示更多的结构,在此不作限制。

本申请实施例中提供的技术方案均可以在具有上述硬件架构的电子设备中实现。

基于上述图3-图5所示的硬件架构,以下结合附图,对本申请实施例提供的闪存控制方法进行介绍。

在本申请实施例中,闪存控制方法目的主要在于,在降低计算最优阈值电压时所需要的功耗以及消耗时长对带宽的不利影响基础上,使得电子设备在从NAND闪存中读取数据时可以更大概率的读取到正确的数据,降低原始比特错误率。其中,降低计算最优阈值电压时所需要的功耗的时长的基础上,则是要保证NAND闪存中各个存储区域的阈值电压组在更新时,可以选择合适的方式和合适的时间,进而降低功耗以及消耗时长对带宽的不利影响;这整个过程可以称为阈值电压更新流程。而电子设备在从NAND闪存中读取数据时,则需要基于阈值电压更新流程更新得到的最新的阈值电压组来读取数据,进而快速的读取到更为准确的数据,降低原始比特错误率;这整个过程则可以称为数据读取流程。

所以本申请实施例提供的闪存控制方法对应的整个技术方案具体可以包括阈值电压更新流程和数据读取流程。

其中,阈值电压更新流程主要用于对NAND闪存中存储的对应各个单位存储区域的阈值电压组进行更新,使得这些阈值电压都是各个单位存储区域在当前时段中较优的阈值电压组。更新过程中,阈值电压的计算则可以由存算一体芯片基于预置的神经网络完成。后续,电子设备从NAND闪存中读取某个待读取区域(具体可以为某个单位存储区域或某个单位存储区域中的某个区域)的数据时,可以基于该待读取区域所属的单位存储区域对应的最新的阈值电压组进行数据读取,从而快速的获取到准确的数据。由于该待读取区域所属的单位存储区域的阈值电压组是不断更新的,所以利用最新的阈值电压组从待读取区域读取数据可以更大概率的获取到准确的数据,降低了原始比特错误率。

在本申请实施例中,数据读取流程主要用于在阈值电压更新流程的基础上,进行数据读取的过程。在该数据读取流程中,电子设备在需要从NAND闪存中读取待读取区域的数据时,则可以基于待读取区域对应的最新的阈值电压组读取。由于该待读取区域对应的最新的阈值电压组是不断的基于阈值电压更新流程更新的,所以最终读取的数据的准确率会更高,可以降低原始比特错误率。

以下结合图6-图12对本申请实施例提供的闪存控制方法中的阈值电压更新流程进行详细说明。图6为本申请实施例提供的一种阈值电压更新流程的示意图。以电子设备为手机为例,该阈值电压更新流程具体可以由手机中NAND闪存的闪存控制器实施。参照图6所示,该流程具体可以包括S601-S603:

S601、手机中NAND闪存的闪存控制器判断NAND闪存是否处于空闲状态。

实际中,用户对手机的使用不是连续不断的,手机从NAND闪存中读取数据也必然不是连续不断的。也就是说,NAND闪存的输入/输出(Input/Output,I/O)是具有时间上的局域性的,即NAND闪存的写入或读取是分立在一段一段的工作时间段内进行的,工作时间段以外的时间内,NAND闪存本身是空闲的。

在NAND闪存处于空闲状态的情况下,计算或更新NAND闪存中每个单位存储区域的最优阈值电压组,是不会影响NAND闪存的正常使用的。也就是说,在NAND闪存处于空闲状态时更新最优阈值电压组,不会出现NAND闪存的I/O因为需要等待最优阈值电压组的等待,从而延长时间,进而降低手机的带宽,降低用户的使用体验的情况。

所以,本申请实施例提供的阈值电压更新流程中,闪存控制器首先需要判断NAND闪存是否处于空闲状态。

在一种可能的实现方式中,闪存控制器可以通过检测NAND闪存的内部状态标识以及相关的操作状态来确定NAND闪存是否处于空闲状态。例如,闪存控制器可以通过检测NAND闪存的忙标志(busy flag)或操作状态寄存器(operation status register)来确定NAND闪存是否处于空闲状态。

当然,实际中闪存控制器还可以采用任意可行的方式确定NAND闪存是否处于空闲状态,本申请对此不做具体限制。

在闪存控制器确定NAND闪存未处于空闲状态的情况下,则闪存控制器不再执行阈值电压更新流程的后续流程,即流程结束。

在闪存控制器确定NAND闪存处于空闲状态的情况下,闪存控制器则可以对NAND闪存中单位存储区域的阈值电压组进行更新,以使得NAND闪存中单位存储区域的阈值电压组都是当前最优的,即执行S602-S603。

需要说明的是,实际中可以不存在上述S601或者类似的判断步骤,闪存控制器可以在NAND闪存处于空闲状态的情况下,执行S602即可。

S602、手机中NAND闪存的闪存控制器获取至少一个单位存储区域中每个单位存储区域的阈值电压参数,并利用存算一体芯片,获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组。

示例性的,单位存储区域可以为页page或块block或面plane。其中,闪存控制器获取的位存储区域的阈值电压参数,具体为该单位存储区域当前时刻最新的阈值电压参数。第一阈值电压组即为与当前时刻对应的最优阈值电压组。

S602中的“至少一个单位存储区域”可以是每个或者所有,也可以是NAND闪存中特定的某些特定单位存储区域,本申请对此不做具体限制。

实际中,对NAND闪存进行数据读取或数据写入时,针对的存储区域为一页page。而一个page中多个存储单元cell的规格结果是相同或类似的,所以一个page中所有存储单元的需要的最优的阈值电压组则可以是近似或相同的。进一步的,可以将page中存储单元需要的最优阈值电压组认定为该page的阈值电压组。也就是说,在对该page进行数据读取时,可以基于该page的阈值电压组,从该page中的每个存储单元中完成数据的读取。

基于上述描述可知,在确定单位存储区域时,应当首选page作为单位存储区域。示例性的,某个以TLC作为最基本的存储单元的NAND闪存中的闪存颗粒的相关数据可以如下表1:

表1-闪存颗粒数据

上述闪存颗粒中存在的page数量为1024Gb /16KB=8388608。

假设一个TLC中七个最优的阈值电压组合而成的最优阈值电压组的大小为4B,则上述闪存颗粒所有page的最优阈值电压组的总数据量为:8388608*4=33554432B=32768KB=32MB。

假设某个存算一体芯片计算一次最优阈值电压组(即上述计算第一阈值电压组)需要消耗的时间为10ms,则计算上述闪存颗粒所有page的最优阈值电压组所需要消耗的时间为:8388608*10=83386080ms=83886.08s≈23.3小时(h)。

可见,若选择page作为单位存储区域,进而去计算NAND闪存中每个page的最优阈值电压组则会产生较多的数据且耗时较长,而这对NAND闪存的使用是极为不利的。

在此基础上,由于NAND闪存是以block为单位擦除的,一个block中的每个page的最优阈值电压组可以是近似相等的。所以,本申请实施例中,还可以以block作为单位存储区域。也就是说,在对某个page进行数据读取时,可以利用该page所属的block的最优阈值电压组进行数据读取。以上述表1所示的闪存颗粒为例,对单位存储区域为block时的消耗情况进行如下计算:

首先,上述闪存颗粒中存在的block数量为1024Gb /65.25MB≈2009。

假设一个TLC中七个最优阈值电压组合而成的最优阈值电压组的大小为4B(也为一个block的最优阈值电压组的大小),则上述闪存颗粒所有block的最优阈值电压组的总数据量为:2009*4=8036B≈7KB。

假设某个存算一体芯片计算一次最优阈值电压组需要消耗的时间为10ms,则计算上述闪存颗粒所有block的最优阈值电压组所需要消耗的时间为:2009*10=20090ms≈20s。

可见,若选择block作为单位存储区域,进而去计算NAND闪存中每个block的最优阈值电压组产生的数据量会小很多,且会节省很多时间。

同理,如果选择比block更大的存储区域作为单位存储区域,计算所有单位存储区域的最优阈值电压组所产生的数据量会更小,所消耗的时长也会更短。因而,在一些对数据量和耗时要求更严苛的场景下,还可以选择plane等更大的存储区域作为单位存储区域。在本申请实施例中,单位存储区域的具体实现可以根据实际需求而定,本申请对此不做具体限制。

其中,阈值电压参数为与单位存储区域的阈值电压关联的参数。示例性的,阈值电压参数可以包括以下任一项或多项:数据保存时间data retention、耐久性endurance、编程/擦除操作的次数P/E cycles、字线索引wordline index、页索引page index、保留时间retention time。

其中,耐久性是指闪存设备可以经受住多少次编程/擦除(P/E)操作。每一次P/E操作,闪存中的电子单元都会受到一次磨损。字线索引用于指示相关存储单元在NAND闪存中的位置。页索引用于指示相关页在NAND闪存中的位置。保留时间是指数据在闪存中可以保持有效性的最长时间,超过这个时间,数据可能会因为多种因素(如温度、电压等)而丢失或损坏。

在本申请实施例中,若单位存储区域为block,则上述子线索引可以指该block中所有的存储单元在NAND闪存中搞得位置,页索引则用于指示该block中所有page在NAND闪存中的位置。

在闪存控制器获取到单位存储区域的阈值电压参数后,闪存控制器则可以利用存算一体芯片完成至少一个单位存储区域中每个单位存储区域的第一阈值电压组的计算。

其中,存算一体芯片可以基于单位存储区域的阈值电压参数,以及存算一体芯片中预置的阈值电压计算模型,计算该单位存储区域的第一阈值电压组。该阈值电压计算模型具备利用单位存储区域的阈值电压参数,确定出单位存储区域的第一阈值电压组的能力。该阈值电压计算模型可以是预先采用任意可行的训练方式训练得到的神经网络模型,本申请对此不做具体限制。

在一些实施例中,若如图5中(a)所示,存算一体芯片是单独存在与电子设备中的。则参照图7所示,手机中NAND闪存的闪存控制器利用存算一体芯片计算单位存储区域的第一阈值电压组的具体实现可以包括S701-S705:

S701、手机中NAND闪存的闪存控制器向存算一体芯片发送计算请求。

其中,计算请求携带有第一单位存储区域的阈值电压参数,计算请求用于请求计算第一单位存储区域的第一阈值电压组。第一单位存储区域为至少一个单位存储区域中的一个。

S702、手机的存算一体芯片接收来自NAND闪存的闪存控制器的计算请求。

在接收到计算请求后,存算一体芯片则可以基于自身预置的阈值电压计算模型和单位存储区域的阈值电压参数,计算第一单位存储区域的第一阈值电压组,即执行S6023。

S703、手机的存算一体芯片响应于计算请求,基于预置的阈值电压计算模型和第一单位存储区域的阈值电压参数,计算第一单位存储区域的第一阈值电压组。

在存算一体芯片计算得到第一单位存储区域的最优阈值电压组后,便可以向闪存控制器返回第一单位存储区域的第一阈值电压组,以供其存储使用,即执行S6024。

S704、手机的存算一体芯片向NAND闪存的闪存控制器发送第一单位存储区域的第一阈值电压组。

S705、手机中NAND闪存的闪存控制器接收来自存算一体芯片的第一单位存储区域的第一阈值电压组。

基于上述S701-S705对应的技术方案,NAND闪存的闪存控制器便可以顺利的利用存算一体芯片,以较低的功耗获取到单位存储区域的第一阈值电压组,即获取到单位存储区域当前最新的最优阈值电压组。

在另一些实施例中,若如图5中(b)所示,存算一体芯片是作为NAND闪存中闪存控制器的内置模块存在的。则S602执行时,闪存控制器可以直接基于存算一体芯片的功能,完成单位存储区域的第一阈值电压组的计算,从而获取到单位存储区域的第一阈值电压组。

在本申请实施例中,S701-S705可以针对闪存控制器获取的至少一个单位存储区域中每个单位存储区域均执行一次,以使闪存控制器可以获取到所有需要更新阈值电压的单位存储区域最新的阈值电压组。

当然,在一些实施例中,若存算一体芯片可以同时计算多个单位存储区域的第一阈值电压组,则S701-S703执行时,计算请求则可以携带闪存控制器获取的至少一个单位存储区域中每个单位存储区域(至少一个单位存储区域中的每个)的阈值电压参数,且计算请求用于请求计算至少一个单位存储区域中每个单位存储区域的第一阈值电压组。同理,S703执行时,存算一体芯片则可以是计算至少一个单位存储区域中每个单位存储区域的第一阈值电压组;S704执行时,存算一体芯片则是向闪存控制器发送了至少一个单位存储区域中每个单位存储区域的第一阈值电压组;S705执行时,闪存控制器则是接收到了至少一个单位存储区域中每个单位存储区域的第一阈值电压组。

在闪存控制器获取到至少一个单位存储区域中每个单位存储区域的第一阈值电压组后,为了方便使用,闪存控制器还可以将及时利用第一阈值电压组更新存储在NAND闪存中,单位存储区域的最优阈值电压组。即S602后执行S603。

S603、手机中NAND闪存的闪存控制器利用第二单位存储区域的第一阈值电压组,更新第二单位存储区域的最优阈值电压组。

其中,第二单位存储区域为至少一个单位存储区域中获取到了第一阈值电压组的一个单位存储区域。第二单位存储区域的最优阈值电压组可以存储在NAND闪存在出厂前预先规定好的目标存储区中,第二单位存储区域的最优阈值电压组可以是之前一次获取的第二单位存储区域的第一阈值电压组。

S603具体可以是闪存控制器使用第二单位存储区域的第一阈值电压组,替换目标存储区中存储的第二单位存储区域的之前更新得到的最优阈值电压组;或者,可以是闪存控制器将目标存储区中存储的第二单位存储区域的之前更新得到的最优阈值电压组,更新为第二单位存储区域的第一阈值电压组。替换或更新后,第二单位存储区域的第一阈值电压组则变为第二单位存储区域的最优阈值电压组,在目标存储区中存储。

当然,S603还可以是闪存控制器将第二单位存储区域的第一阈值电压组作为新的最优阈值电压组直接存储在目标存储区中,并设定相应标识表征该第二单位存储区域的新的最优阈值电压组的产生时间,以使后续手机读取第二单位存储区域的数据时,可以从目标存储区中选择第二单位存储区域的所有阈值阈值电压组中最新的一个。

因为实际中NAND闪存中是存储了多个单位存储区域的最优阈值电压组的,所以在一些实施例中,为了使得手机从NAND闪存中的待读取区域读取数据时,可以快速获取到相应的最优阈值电压组,闪存控制器在NAND闪存中存储多个单位存储区域的最优阈值电压组时,还会存储每个单位存储区域中单位存储区域和最优阈值电压组的关联关系。

在一种可能的实现方式中,单位存储区域和最优阈值电压组的关联关系可以由最优阈值电压组的存储位置反映。具体的,闪存控制器可以在NAND闪存中的目标存储区中与至少一个单位存储区域中第二单位存储区域对应的存储位置,存储第二单位存储区域的最优阈值电压组。例如,目标存储区可以分为1、2、3、4、5、6、7和8这8个存储位置,至少一个单位存储区域中可以包括A、B、C、D、E、F、G和H八个单位存储区域,则A的最优阈值电压组可以存储在位置1中,B的最优阈值电压组可以存储在位置2中,C的最优阈值电压组可以存储在位置3中,D的最优阈值电压组可以存储在位置4中,E的最优阈值电压组可以存储在位置5中,F的最优阈值电压组可以存储在位置6中,G的最优阈值电压组可以存储在位置7中,H的最优阈值电压组可以存储在位置8中。A、B、C、D、E、F、G和H中的任一个均可以为第二单位存储区域。

这样一来,手机在读取待读取区域的数据时,则可以从目标存储区中与待读取区域所属的单位存储区域对应的位置中获取最优阈值电压组,进而读取数据。当然,实际中至少一个单位存储区域中单位存储区域和最优阈值电压组的关联关系,还可以以其他任意可行的方式存储在NAND闪存中,本申请对此不做具体限制。

基于此,S603执行时,闪存控制器还可以存储第二单位存储区域和第二单位存储区域的第一阈值电压组的关联关系,存储方式可以如上述实现方式。当然,闪存控制器还可以是利用第二单位存储区域和第二单位存储区域的第一阈值电压组的关联关系,更新第二单位存储区域和第二存储区域的最优阈值电压的关联关系。具体的,可以使用第二单位存储区域和第二单位存储区域的第一阈值电压组的关联关系,替换第二单位存储区域和第二存储区域的最优阈值电压的关联关系。例如,若目标存储区中的位置1用于存储第二单位存储区域的最优阈值电压组,则S603执行时,闪存控制器还可以使用第二单位存储区域的第一阈值电压组作为新的最优阈值电压组,替换或覆盖目标存储区中的位置1中已存储的第二单位存储区域的最优阈值电压组。

实际中,最优阈值电压组在存储后,被使用时的读取也需要依据相应的阈值电压读取。为了避免这个逻辑上的循环且降低最优阈值电压组读取失败的可能性,最优阈值电压组在被闪存控制器存储时,可以存储在目标存储区中的SLC中。由于SLC的阈值电压仅有一个,所以SLC中阈值电压随时间产生改变时对从SLC中读取数据的影响较小,所以将最优阈值电压组存储在SLC中,可以降低最优阈值电压组被读取失败的风险,也就提高了依托最优阈值电压组进行的数据读取的可靠性。

需要说明的是,本申请实施例中,为了及时更新单位存储区域的最优阈值电压组,闪存控制器可以在每次利用存算一体芯片获取到一个单位存储区域的第一阈值电压组时,便将其作为第二单位存储区域,并执行上述S603。这样,闪存控制器便以使得至少一个单位存储区域中的每个单位存储区域的最优阈值电压组均及时被最新得到第一阈值电压组更新。

另外,实际中手机中的存储器可以包括多个NAND闪存,本申请实施例提供的闪存控制方法(包括上述阈值电压更新流程以及后续的数据读取流程)可以应用在每个NAND闪存中。

基于上述S601-S603对应的技术方案,由于在更新最优阈值电压组的过程中,计算最优阈值电压组是放在功耗低的存算一体芯片上的,所以整体功耗不高。此外,由于计算最优阈值电压组时,NAND闪存处于空闲状态,计算的耗时也不会影响NAND闪存的正常使用,也就不会影响手机的带宽。这样一来,用户在使用手机的过程中,手机中NAND闪存中单位存储区域的最优阈值电压组便可以在产生较低功耗且不影响手机带宽的基础上,及时的更新,进一步的,这样可以保证手机读取数据时可以更大概率的读取到准确的数据,降低了数据读取时的原始比特错误率,提高了用户的使用体验。

实际中, NAND闪存中单位存储区域的最优阈值电压组中的最优阈值电压是随着时间逐步变化的,不会在短时间内产生较大的变化。所以在数据读取时,不需要每次都使用和当前时刻最符合的最优阈值电压组。也就是说,NAND闪存中单位存储区域的最优阈值电压组不需要实时或连续不断的更新,仅需要每隔一段时间更新即可。而一段时间对最优阈值电压组影响主要是由手机对NAND闪存的读取产生的,所以这里“每隔一段时间”中的一段时间具体可以由NAND闪存的数据读取次数表征。

基于此,在一些实施例中,若闪存控制器每次实施阈值电压更新流程时,是将至少一个单位存储区域中的每个单位存储区域的最优阈值电压组均进行更新,则结合图6,参照图8所示,S601执行后,在闪存控制器确定NAND闪存处于空闲状态的情况下,需要先执行S801:

S801、手机中NAND闪存的闪存控制器判断前一次对该至少一个单位存储区域中每个单位存储区域的最优阈值电压组更新之后,NAND闪存的数据读取次数Ts是否大于第一预设阈值。

在前一次对该至少一个单位存储区域中每个单位存储区域的最优阈值电压组更新之后,若NAND闪存的数据读取次数大于第一预设阈值,则可以认为前一次对NAND闪存中至少一个单位存储区域中每个单位存储区域的最优阈值电压组更新后,每个单位存储区域的最优阈值电压组当前已经完全不符合数据读取需要了。所以此时,需要重新获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组,以完成对至少一个单位存储区域中每个单位存储区域的最优阈值电压组的更新。即执行S602。

在前一次获取到该至少一个单位存储区域中每个单位存储区域的最优阈值电压组之后,若NAND闪存的数据读取次数小于第一预设阈值,则可以认为之前一次获取的NAND闪存中至少一个单位存储区域中每个单位存储区域的最优阈值电压组,还可以一定程度上符合当前时刻至少一个单位存储区域中每个单位存储区域的数据读取需要,所以此时可以不进行阈值电压更新流程的后续流程,即流程结束。或者,在一定时长后重新进行阈值电压更新流程,即在一定时长后重新执行S601。

需要说明的是,本申请实施例中,NAND闪存的数据读取次数等于第一预设阈值的情况,可以归于NAND闪存的数据读取次数小于第一预设阈值的情况中,也可以归于NAND闪存的数据读取次数大于第一预设阈值的情况中。实际中可以根据实际需求而定,本申请对此不做具体限制。

此外,实际中也可以不存在上述S801或者类似的判断步骤,S601执行后,在闪存控制器确定NAND闪存处于空闲状态时,手机中NAND闪存的闪存控制器可以在前一次获取到该至少一个单位存储区域中每个单位存储区域的最优阈值电压组之后,NAND闪存的数据读取次数大于第一预设阈值的情况下,执行S602即可。

实际中,用户在使用手机的过程中,可能会执行任意可能的操作,某些操作可能需要手机从NAND闪存中读取数据或写入数据,使NAND闪存处于忙碌状态而非空闲状态。也就是说,NAND闪存处于空闲状态的持续时长是不确定的。也就是说,NAND闪存中至少一个单位存储区域中每个单位存储区域的最优阈值电压组的获取时长之和,可能是大于NAND闪存处于空闲状态的持续时长的。所以,若闪存控制器每次实施阈值电压更新流程时,是将至少一个单位存储区域中的每个单位存储区域的最优阈值电压组均进行更新,则为了使得闪存控制器在对至少一个单位存储区域中单位存储区域的最优阈值电压进行更新的过程中,不对NAND闪存的正常使用产生影响,闪存控制器可以循环多次的利用存算一体芯片对至少一个单位存储区域中的单位存储区域进行第一阈值电压组的获取,进而获取到至少一个单位存储区域中每个单位存储区域的第一阈值电压组,并且在每次计算完某个单位存储区域的第一阈值电压组后,及时判断NAND闪存是否接收到了读/写请求。

基于此,在一些实施例汇中,结合图8,参照图9所示,S602具体可以包括S6021A-S6025A:

S6021A、手机中NAND闪存的闪存控制器从至少一个单位存储区域中确定目标单位存储区域。

其中,目标单位存储区域为至少一个单位存储区域中,未获取到第一阈值电压组的单位存储区域中的任一个。

在一种可能的实现方式中,至少一个单位存储区域中的所有单位存储区域是存在预定次序的,例如按照在NAND闪存中的位置进行的排序。在S6021A中,目标单位存储区域则具体可以是至少一个单位存储区域中,未获取到第一阈值电压组的单位存储区域中次序最靠前的单位存储区域。

S6022A、手机中NAND闪存的闪存控制器获取目标单位存储区域的阈值电压参数,并利用存算一体芯片,获取目标单位存储区域的第一阈值电压组。

S6022A的具体实现可以参照前述实施例中S701-S705的相关表述,此处不再赘述。

在闪存控制器利用存算一体芯片获取到了目标单位存储区域中的第一阈值电压组之后,为了及时对NAND闪存中目标单位存储区域的最优阈值电压组更新,闪存控制器则可以将目标单位存储区域确定为第二单位存储区域并执行S603。此外,S6022A之后,为了防止阈值电压更新流程对NAND闪存的正常使用产生影响,此时应当及时判断NAND闪存是否接收到了读/写请求。进而根据判断结果,决定是否暂停阈值电压更新流程,或者是否继续阈值电压更新流程。即S6022A后还执行S6023A。

需要说明的是,在本申请实施例中,S603和S6023可以是同时执行的,S603也可以是先与S6023A前执行的。这样一来,单位存储区域的最优阈值电压组的更新必然不会和NAND闪存的正产使用在时间上重合,阈值电压更新流程也就不会对NAND闪存的正常使用产生不利影响。

S6023A、手机中NAND闪存的闪存控制器判断NAND闪存是否接收到了读/写请求。

具体的,手机中数据读/写需求方(host)向NAND闪存发送的读/写请求,具体是向NAND闪存的闪存控制发送的。也就是说,闪存控制器可以直接确定是否接收到读/写请求。

在闪存控制器确定接收到读/写请求的情况下,可以认为此时NAND闪存已经不处于空闲状态了,需要暂停阈值电压更新流程,而是对该读取/写入请求进行响应,完成在NAND闪存中的数据读取或数据写入。即此时执行S6024A。

在闪存控制器确定未接收到读/写请求的情况下,则可以进一步判断至少一个单位存储区域中的所有单位存储区域是否均得到了第一阈值电压组。进而根据判断结果决定是否结束阈值电压更新流程,或者是否对至少一个单位存储区域中的未得到第一阈值电压组的单位存储区域进行第一阈值电压组的获取。即此时执行S6025A。

需要说明的是,本申请实施例中可以不存在上述S6023A或类似的判断步骤,S6022A后,闪存控制器可以在NAND闪存接收到了读取/写入请求的情况下执行S6024A,在NAND闪存未接收到读取/写入请求的情况下执行S6025A即可。

S6024A、手机中NAND闪存的闪存控制器对读/写请求进行响应。

S6024A执行后,闪存控制器便可以完成读/写请求所属的数据读/写需求方在NAND闪存中的数据读取或数据写入。

S6024A后,闪存控制器则可以结束阈值电压更新流程,并在下一次NAND闪存处于空闲状态的情况下,重新进行阈值电压更新流程。

S6025A、手机中NAND闪存的闪存控制器判断至少一个单位存储区域中,是否所有单位存储区域均得到了第一阈值电压组。

若闪存控制器确定至少一个单位存储区域中,所有单位存储区域均得到了第一阈值电压组,则阈值电压更新流程结束。

若闪存控制器确定至少一个单位存储区域中的所有单位存储区域未均得到了第一阈值电压组,则闪存控制器还需要重新从至少一个单位存储区域中确定目标单位存储区域,即执行S6021A。

需要说明的是,本申请实施例中可以不存在上述S6025A或类似的判断步骤,S6024A后,闪存控制器可以在确定至少一个单位存储区域中,所有单位存储区域均得到了第一阈值电压组的情况下结束阈值电压更新流程;在确定至少一个单位存储区域中,所有单位存储区域未均得到了第一阈值电压组的情况下执行S6021A即可。

基于上述S6021A-S6025A对应的技术方案,手机中NAND闪存的闪存控制器便可以在不影响NAND闪存正常使用的情况下,在NAND闪存处于空闲状态时完成对NAND闪存中单位存储区域的第一阈值电压组的获取,进而完成NAND闪存中单位存储区域的最优阈值电压组的更新。

在一些实施例中,在因为NAND闪存接收到读/写请求暂停阈值电压更新流程后,为了使得该次阈值电压更新流程中未能完成获取第一阈值电压组的单位存储区域,可以顺利获取到第一预设电压组,从而完成一次至少一个单位存储区域中所有单位存储区域的最优阈值电压组的更新。结合图9,参照图10所示,在 S6023A后,闪存控制器确定接收到读/写请求的情况下,该阈值更新流程还包括S1001。在每次S601执行后确定NAND闪存处于空闲状态的情况下,该阈值更新流程还包括S1002和S1003。

S1001、手机中NAND闪存的闪存控制器生成未完成更新信息并存储。

其中,该未完成更新信息用于指示至少一个单位存储区域中存在单位存储区域在前一次阈值电压更新流程(即对至少一个单位存储区域中每个单位存储区域的最优阈值电压组更新的流程)中,未得到第一阈值电压组。该未完成更新信息还包括指示该至少一个单位存储区域中,未得到第一阈值电压组的单位存储区域的标识的指示信息。

在一种可能的实现方式中,该指示信息可以是该至少一个单位存储区域中,未得到第一阈值电压组的所有单位存储区域的标识。

在另一种可能的实现方式中,若前述S6021A中,目标单位存储区域则具体可以是至少一个单位存储区域中,未获取到第一阈值电压组的单位存储区域中次序最靠前的单位存储区域。则这里指示信息还可以是包括该至少一个单位存储区域中,未得到第一阈值电压组的单位存储区域中,次序最靠前的单位存储区域的次序标识。

当然,若一次获取至少一个单位存储区域中所有单位存储区域的第一阈值电压组的过程中,NAND闪存多次接收到读/写请求,即至少一个单位存储区域中所有单位存储区域均得到第一阈值电压组之前,阈值电压更新流程暂停过多次。则手机中NAND闪存的闪存控制器在执行S1001之前,可能会生成并存储过未完成更新信息,则S1001具体可以是手机中NAND闪存的闪存控制器更新未完成更新信息中的指示信息,即使得未完成更新信息的指示信息可以正确的指示至少一个单位存储区域未得到第一阈值电压组的单位存储区域。

S1002、手机中NAND闪存的闪存控制器判断是否存储有未完成更新信息。

在闪存控制器确定存储有未完成更新信息的情况下,表明至少一个单位存储区域中存在因为NAND闪存接收到读/写请求,从而未能得到第一阈值电压组的单位存储区域。此时,闪存控制器则可以基于未完成更新信息中的指示信息,从至少一个单位存储区域确定目标存储区域并获取目标存储区域的第一阈值电压组,即执行S1003。

在闪存控制器确定未存储有未完成更新信息的情况下,则表明之前已经完成了一次对至少一个单位存储区域所有单位存储区域的第一阈值电压组的获取,或者说完成了一次对至少一个单位存储区域所有单位存储区域的最优阈值电压组的更新。此时,则可以继续进行阈值电压更新流程的后续流程,即执行S801。

需要说明的是,在本申请实施例中,在闪存控制器完成一次获取至少一个单位存储区域中的每个单位存储区域的第一阈值电压组(或可称为闪存控制器完成一次对至少一个单位存储区域中所有单位存储区域的最优阈值电压组的更新)的流程之后,闪存控制器则还会删除未完成更新信息。这样,可以避免闪存控制器在完成一次对至少一个单位存储区域中所有单位存储区域的最优阈值电压组的更新后,重复的对至少一个单位存储区域中部分单位存储区域进行最优阈值电压组的更新。而不是进行新一次对至少一个单位存储区域中所有单位存储区域的最优阈值电压组的更新。

S1003、手机中NAND闪存的闪存控制器基于未完成更新信息中的指示信息,从至少一个单位存储区域确定目标单位存储区域。

闪存控制器确定了目标单位存储区域后,则可以执行S6022A,以开始执行获取目标存储区域的第一阈值电压组的相关流程。

基于上述实施例,手机中NAND闪存的闪存控制器,便可以在不影响NAND闪存的正常使用的情况下,在NAND闪存处于空闲状态时,顺利完成对至少一个单位存储区域中在前一次阈值电压更新过程中未能得到第一阈值电压组的部分单位存储区域进行最优阈值电压组的更新。

下面以闪存控制器按照至少一个单位存储区域中每个单位存储区域的次序,对至少一个单位存储区域中的单位存储区域进行最优阈值电压的更新为例,结合前述实施例中针对图6-图10的相关表述,如图11所示,对本申请实施例提供的闪存控制方法中阈值电压更新流程的一种具体实现过程进行介绍。该具体实现过程可以由手机中NAND闪存的闪存控制器实施。参照图11所示,该具体实现流程可以包括S1101-S1113:

S1101、判断NAND闪存是否处于空闲状态。

若确定NAND闪存处于空闲状态(idle状态),则执行S1102;若确定NAND闪存未处于空闲状态,则流程结束。

S1101的具体实现可以参照前述实施例中S601的相关表述,此处不再赘述。

S1102、判断是否有未完成的更新。

具体的,S1102可以是通过判断NAND闪存中是否存储有未完成更新信息实现的。在闪存中未存储有未完成更新信息,则确定没有未完成的更新,此时执行S1103。在闪存中存储有未完成更新信息,则确定没有未完成的更新,此时执行S1104。

S1102的具体实现可以参照前述实施例中S1002的相关表述,此处不再赘述。

S1103、判断前一次对该至少一个单位存储区域中每个单位存储区域的最优阈值电压组更新之后,NAND闪存的数据读取次数Ts是否大于第一预设阈值Tt。

在确定Ts大于Tt的情况下,执行S1105;在确定Ts不大于Tt的情况下,结束流程。

S1103的具体实现可以参照前述实施例中S801的相关表述,此处不再赘述。

S1103后执行S1005。

S1104、基于未完成的更新的任务,确定目标次序标识i。

S1104具体可以基于未完成更新信息中的指示信息,从至少一个单位存储区域确定目标单位存储区域,进而确定目标单位存储区域在至少一个单位存储区域中的次序的目标次序标识i。

S1104的具体实现可以参照前述实施例中S1003的相关表述,此处不再赘述。此外,相比于S1003,S1104还需要,确定出目标单位存储区域在至少一个单位存储区域中的次序的目标次序标识i。例如,目标单位存储区域若为至少一个单位存储区域中第五个单位存储区域,则i为5。

S1104之后执行S1106。

S1105、将目标次序标识i确定为1。

S1105具体含义可以是将至少一个单位存储区域中次序为1的单位存储区域确定为目标单位存储区域。相当于前述实施例中S6021A首次执行后,确定目标单位存储区域的目标次序标识。

S1105后执行S1106。

S1106、判断目标次序标识是否大于N。

其中,N为至少一个单位存储区域中单位存储区域的个数。S1106即为判断至少一个单位存储区域中,是否所有单位存储区域均得到了第一阈值电压组。

在目标次序标识大于N的情况下,结束流程;在目标次序标识不大于N的情况下,执行S1107。

S1107、获取目标序列标识对应的目标单位存储区域的阈值电压参数。

其中,目标单位存储区域即为至少一个单位存储区域中,次序为目标次序标识的单位存储区域。

示例性的,阈值电压参数可以包括以下任一项或多项:数据保存时间、耐久性、编程/擦除操作的次数、字线索引、页索引、保留时间。

S1107后执行S1108。

S1108、基于目标单位存储区域的阈值电压参数,利用存算一体芯片,获取目标单位存储区域的第一阈值电压组。

S1107和S1108的具体实现可以参照前述实施例中S6022A的相关表述,此处不再赘述。

S1108后执行S1109。

S1109、利用目标单位存储区域的第一阈值电压组,更新目标单位区域的最优阈值电压组。

S1109的具体可以参照前述实施例中,将目标单位存储区域确定为第二单位存储区域后,执行S603的相关表述,此处不再赘述。

S1109后执行S1110。

S1110、判断是否接收到读/写请求。

在确定接收到读/写请求的情况下,执行S1111;在确定未接收到读/写请求的情况下,执行S1112。

S1110的具体实现可以参照前述实施例中,S6023A的相关表述,此处不再赘述。

S1111、生成未完成更新信息并存储。

其中,该未完成更新信息用于指示至少一个单位存储区域中存在单位存储区域在前一次阈值电压更新流程中,未得到第一阈值电压组。该未完成更新信息还包括指示信息,该指示信息用于指示未获取到第一阈值电压组的单位存储区域中次序最靠前的单位存储区域。基于该未完成信息,下一次闪存控制器在NAND闪存处于空闲状态时,执行到S1102时,可以确定存在未完成的更新。且后续执行到S1104时,确定的目标次序标识即为该指示信息指示的,未获取到第一阈值电压组的单位存储区域中次序最靠前的单位存储区域的次序的标识。

S1111的具体实现可以参照前述实施例中S1001的相关表述,此处不再赘述。

S1111后执行S1113。

S1112、将目标次序标识i确定为i+1。

S1112即为将至少一个单位存储区域中次序在目标单位存储区域之后的单位存储区域确定为新的目标单位存储区域。

S1112后执行S1106。

S1113、对读/写请求进行响应。

S1113的具体实现可以参照前述实施例中S 6024A 的相关表述,此处不再赘述。

需要说明的是,上述各个步骤的顺序仅为示例,实际中可以是任意可行的合理顺序,本申请对此不做具体限制。

在一些实施例中,为了避免闪存控制器对NAND闪存中单位存储区域的最优阈值电压的更新,对NAND闪存正常使用的影响。闪存控制器每次实施阈值电压更新流程时,还可以是仅针对某一个需要更新最优阈值电压组的单位存储区域进行更新。其中,需要更新最优阈值电压组的单位存储区域,则可以是根据单位存储区域在上次更新后进行的读取次数决定的。基于此,结合图6,参照图12所示,S601执行后,在闪存控制器确定NAND闪存处于空闲状态的情况下,该阈值电压更新流程还包括S1201,S602则具体可以包括S602B。

S1201、手机中NAND闪存的闪存控制器判断NAND闪存中是否存在第三单位存储区域。

其中,第三单位存储区域为在前一次最优阈值电压组更新之后,数据读取次数大于第二预设阈值。

对于某个单位存储区域而言,前一次对最优阈值电压组更新之后,若数据读取次数大于第二预设阈值,则可以认为前一次对该单位存储区域的最优阈值电压组更新后,该单位存储区域的最优阈值电压组当前已经完全不符合数据读取需要了。所以此时,可以重新获取该单位存储区域(即第三单位存储区域)的第一阈值电压组,以完成对该单位存储区域的最优阈值电压组的更新。也就是说,若确定NAND闪存中存在第三单位存储区域在前一次最优阈值电压组更新之后,数据读取次数大于第二预设阈值,则可以获取第三单位存储区域的第一阈值电压组,即执行S6021B。

若确定NAND闪存中不存在第三单位存储区域在前一次最优阈值电压组更新之后,数据读取次数大于第二预设阈值,则可以认为NAND闪存中每个单位存储区域的最优阈值电压组均符合当前数据读取需求,可以不对最优阈值电压组更新。此时流程结束。

S602B、手机中NAND闪存的闪存控制器获取第三单位存储区域的阈值电压参数,并利用存算一体芯片,获取第三单位存储区域的第一阈值电压组。

S602B的具体实现可以参照前述实施例中S701-S705的相关表述,此处不再赘述。

S602B后,闪存控制器则可以将第三单位存储区域确定为第二单位存储区域,进而执行S603,已完成对第三单位存储区域的最优阈值电压组的更新。

在该实施例中,前述实施例中S602中的至少一个单位存储区域则可以仅包括第三单位存储区域。

基于上述实施例,闪存控制器可以在每个单位存储区域需要更新最优阈值电压组时,在NAND闪存处于空闲状态的请款下完成更新。而且,由于每次获取第一阈值电压组仅针对一个单位存储区域,需要的时间很短,大概率可以在NAND闪存的一次空闲期(一次处于空闲状态的持续时期)完成,也不会对NAND闪存的正产使用造成不利影响,提高了用户的使用体验。

需要说明的是,若第三单位存储区域存在多个,则S602B的具体实现可以参照前述实施例中S6021A-S6025A的相关表述,此处不再赘述。

基于阈值电压更新流程,手机在从NAND闪存中读取数据时,便可以获取基于每个单位存储区域的最优阈值电压组,进而快速的从NAND闪存中获取到更为准确的数据,降低原始比特错误率,提高用户的使用体验。下面结合图13-图15,对本申请实施例提供的闪存控制方法中的数据读取流程进行详细结果。

图13为本申请实施例提供的一种数据读取流程的示意图。以电子设备为手机为例,该数据读取流程具体可以由手机中NAND闪存的闪存控制器实施。参照图13所示,该流程具体可以包括S1301-S1303:

S1301、手机中NAND闪存的闪存控制器接收来自需求方的读请求。

其中,需求方为手机中需要从NAND闪存中读取数据的模块,例如某个应用程序。读请求用于请求读取NAND闪存中待读取页的数据。

S1302、手机中NAND闪存的闪存控制器响应于读请求,基于待读取页所属的单位存储区域的最优阈值电压组,从待读取页中读取数据得到目标数据。

待读取页所属的单位存储区域的最优阈值电压组即为前述阈值电压更新流程中,更新得到的。

在一种可能的实现方式中,若单位存储区域为页,则待读取页所属的单位存储区域即为待读取页本身。在另一种可能的实现方式中,若单位存储区域为块,则待读取页所属的单位存储区域即为待读取页所属的块。

在闪存控制器从待读取页读取到目标数据后,则可以在对该目标数据校验成功后,将该目标数据发送给需求方。

S1303、手机中NAND闪存的闪存控制器对目标数据进行校验成功的情况下,向需求方发送目标数据。

在一种可能的实现方式中,闪存控制器对目标数据的校验可以是纠错码(errorcorrection code,ECC)校验或者任意可行的校验,本申请对此不做具体限制。

在需求方接收到目标数据后,则可以基于该目标数据完成相应的操作,例如显示目标数据等。

此外,闪存控制器对目标数据进行校验失败的情况下,则可以向需求方法发送失败指示信息。该失败指示信息用于指示读取数据失败。后续,需求方则可以在接收到失败指示信息后,及时提醒用户或执行任意可行的处理操作。

基于上述S1301-S1303对应的数据读取流程,因为每个单位存储区域的最优阈值电压组会基于之前的阈值更新流程不断的更新。所以在进行数据读取时,可以利用待读取页所属的单位存储区域的最优阈值电压组,快速从待读取页读取到更准确的数据,降低了数据读取时的原始比特错误率,提高了用户的使用体验。

在一些实施例中,闪存控制器在接收到读请求后,可以首先以待读取页的默认阈值电压组对待读取页进行数据读取,在读取数据错误的情况下在采用待读取页所属单位存储区域的最优阈值电压组,读取待读取页的数据。这样一来,如果默认阈值电压组本身符合待读取页的当前读取需求,则可以读取到正确的数据,整个数据读取过程也就不需要进行获取最优阈值电压组的过程,节省了相应的信令和耗时。基于此,结合图13,参照图14,S1302具体可以包括S1401-S1404:

S1401、手机中NAND闪存的闪存控制器响应于读请求,使用待读取页的默认阈值电压组,从待读取页中读取数据得到第一数据。

其中,默认阈值电压组可以是该NAND闪存出厂时,预先配置的待读取页的多个阈值电压组成的组合。在该NAND闪存出厂后一段时间内,该默认阈值电压组是可以从待读取页中读取到准确的数据的。

S1402、手机中NAND闪存的闪存控制器对第一数据进行校验,得到校验结果。

其中,校验结果用于指示第一数据错误或者指示第一数据正确。

一种可实现的方式中,闪存控制器具体可以对第一数据进行ECC校验。

S1403、在校验结果指示第一数据正确的情况下,手机中NAND闪存的闪存控制器向需求方法发送第一数据。

S1404、在校验结果指示第一数据错误的情况下,手机中NAND闪存的闪存控制器使用待读取页所属的单位存储区域的最优阈值电压组,从待读取页中读取数据得到目标数据。

基于上述S1401-S1404对应的技术方案,闪存控制器可以采用合适的阈值电压组从待读取页中读取到数据。

在另一些实施例中,闪存控制器在接收到读请求后,可以直接采用待读取页所属的单位存储区域的最优阈值电压组,从待读取页中读取数据。整个数据读取过程则可以仅经过一次校验,减少了数据读取流程的步骤,提高了读取效率。基于此,结合图13,参照图15所示,S1302具体可以包括S1501:

S1501、手机中NAND闪存的闪存控制器响应于读请求,使用待读取页所属的单位存储区域的最优阈值电压组,从待读取页中读取数据得到目标数据。

可以理解的是,上述电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。

本申请实施例可以根据上述方法示例对上述电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,参照图16所示,本申请实施例还提供了一种闪存控制装置,该装置可以应用在电子设备中NAND闪存中的闪存控制器中。该装置可以包括:阈值电压获取模块161和更新模块162。

其中,阈值电压获取模块161,用于在NAND闪存处于空闲状态的情况下,获取NAND闪存中至少一个单位存储区域中每个单位存储区域的阈值电压参数,并利用存算一体芯片,获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组;存算一体芯片具备利用单位存储区域的阈值电压参数和预置的阈值电压计算模型,确定出单位存储区域的第一阈值电压组的能力;

更新模块162,用于利用阈值电压获取模块161获取的第二单位存储区域的第一阈值电压组,更新第二单位存储区域的最优阈值电压组;第二单位存储区域为至少一个单位存储区域中获取到了第一阈值电压组的一个单位存储区域。

可选的,阈值电压获取模块161具体用于:若前一次对至少一个单位存储区域中每个单位存储区域的最优阈值电压组更新之后,NAND闪存的数据读取次数大于第一预设阈值,则获取NAND闪存中至少一个单位存储区域中每个单位存储区域的阈值电压参数,并利用存算一体芯片,获取至少一个单位存储区域中每个单位存储区域的第一阈值电压组。

可选的,阈值电压获取模块161具体用于:从至少一个单位存储区域中确定目标单位存储区域;闪存控制器获取目标单位存储区域的阈值电压参数,并利用存算一体芯片,获取目标单位存储区域的第一阈值电压组;在确定接收到读/写请求的情况下,对读/写请求进行响应;读/写请求用于请求在NAND闪存中进行数据读取或数据写入;在确定未接收到读/写请求的情况下,若至少一个单位存储区域中所有单位存储区域未均得到了第一阈值电压组,则重新从至少一个单位存储区域中确定目标单位存储区域。

可选的,阈值电压获取模块161还用于:闪存控制器在确定未接收到读/写请求的情况下,生成未完成更新信息并存储;未完成更新信息用于指示至少一个单位存储区域中存在单位存储区域未得到第一阈值电压组;未完成更新信息还包括指示该至少一个单位存储区域中,未得到第一阈值电压组的单位存储区域的标识的指示信息;在NAND闪存处于空闲状态的情况下,阈值电压获取模块161还用于在确定存在未完成更新信息的情况下,基于未完成更新信息中的指示信息,从至少一个单位存储区域确定目标单位存储区域。

可选的,阈值电压获取模块161具体用于:若NAND闪存中存在第三单位存储区域,则闪存控制器获取第三单位存储区域的阈值电压参数,并利用存算一体芯片,获取第三单位存储区域的第一阈值电压组;其中,第三单位存储区域为前一次更新了最优阈值电压组之后,数据读取次数大于第二预设阈值的单位存储区域;此时,至少一个单位存储区域包括第三单位存储区域。

可选的,更新模块162具体用于:使用第二单位存储区域的第一阈值电压组,替换NAND闪存中目标存储区中存储的第二单位存储区域的最优阈值电压组。

可选的,目标存储区中使用单层存储单元SLC存储第二单位存储区域的最优阈值电压组。

可选的,该装置还包括接收模块163、读取模块164、校验模块165和发送模块166。其中,接收模块163用于接收来自电子设备中需求方的读请求,读请求用于请求从NAND闪存中待读取页的数据;读取模块164用于响应于接收模块163接收到的来自电子设备中需求方的读请求,基于待读取页所属的单位存储区域的最优阈值电压组,从待读取页中读取数据得到目标数据;发送模块166,用于在校验模块165对读取模块164读取到的目标数据校验成功的情况下,向需求方发送目标数据。

可选的,读取模块164具体用于:响应于来自电子设备中需求方的读请求,使用待读取页的默认阈值电压组,从待读取页中读取数据得到第一数据;在校验模块165对第一数据校验失败的情况下,使用待读取页所属的单位存储区域的最优阈值电压组,从待读取页中读取数据得到目标数据。

关于上述实施例中的电子设备,其中各个模块执行操作的具体方式已经在前述实施例中的丢帧故障确定方法的实施例中进行了详细描述,此处不再具体阐述。其相关的有益效果也可参照前述丢帧故障确定方法的相关有益效果,此处不再赘述。

本申请实施例还提供一种芯片系统,如图17所示,该芯片系统1700包括至少一个处理器1701和至少一个接口电路1702。处理器1701和接口电路1702可通过线路互联。例如,接口电路1702可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1702可用于向其它装置(例如处理器1701)发送信号。

示例性的,接口电路1702可读取存储器中存储的指令,并将该指令发送给处理器1101。当指令被处理器1701执行时,可使得电子设备中NAND闪存中的闪存控制器执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。

本申请实施例还提供一种电子设备,该电子设备包括:显示屏、存储器、存算一体芯片和一个或多个处理器;显示屏、存储器与处理器耦合;其中,存储器中包括NAND闪存;NAND闪存中包括闪存控制器,闪存控制器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被闪存控制器执行时,使得闪存控制器执行如前述实施例提供的闪存控制方法。该电子设备的具体结构可参照图4中所示的电子设备的结构。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在电子设备中NAND闪存的闪存控制器上运行时,使得电子设备中的闪存控制器执行如前述实施例提供的闪存控制方法。

本申请实施例还提供一种计算机程序产品,该计算机程序产品包含可执行指令,当该计算机程序产品在电子设备中NAND闪存的闪存控制器上运行时,使得电子设备中的闪存控制器执行如前述实施例提供的闪存控制方法。

通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种智能控制方法、智能控制装置、电子设备和存储介质
  • 闪存器件可靠性测试方法、存储介质及电子设备
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种控制方法、移动终端、电子设备及存储介质
  • 一种设备控制的方法、电子设备及存储介质
  • 闪存的控制方法、装置、存储介质和电子设备
  • 闪存器、闪存擦写计数方法、电子设备及计算机存储介质
技术分类

06120116482003