CN112562766A - 一种重读管理方法、固态硬盘控制器及固态硬盘 - Google Patents

一种重读管理方法、固态硬盘控制器及固态硬盘 Download PDF

Info

Publication number
CN112562766A
CN112562766A CN202011539962.6A CN202011539962A CN112562766A CN 112562766 A CN112562766 A CN 112562766A CN 202011539962 A CN202011539962 A CN 202011539962A CN 112562766 A CN112562766 A CN 112562766A
Authority
CN
China
Prior art keywords
determining
threshold voltage
voltage distribution
state
distribution state
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
CN202011539962.6A
Other languages
English (en)
Other versions
CN112562766B (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.)
Suzhou Dapu Microelectronics Technology Co ltd
Original Assignee
Shenzhen Dapu Microelectronics 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 Shenzhen Dapu Microelectronics Co Ltd filed Critical Shenzhen Dapu Microelectronics Co Ltd
Priority to CN202011539962.6A priority Critical patent/CN112562766B/zh
Publication of CN112562766A publication Critical patent/CN112562766A/zh
Application granted granted Critical
Publication of CN112562766B publication Critical patent/CN112562766B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

本发明实施例涉及固态硬盘应用领域,公开了一种重读管理方法、固态硬盘控制器及固态硬盘,所述方法包括:根据第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向;根据第一记录值和第二记录值,确定每一阈值电压的偏移程度;根据所述阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,并基于调整后的阈值电压,进行重读操作。通过记录在写入阶段和读取阶段时的每一电压分布状态,调整阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,本发明实施例能够提高固态硬盘的重读效率,从而提升整体读性能。

Description

一种重读管理方法、固态硬盘控制器及固态硬盘
技术领域
本发明涉及固态硬盘应用领域,特别是涉及一种重读管理方法、固态硬盘控制器及固态硬盘。
背景技术
固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片)。目前固态硬盘***中有相当部分是存在动态随机存取存储器(Dynamic Random Access Memory,DRAM)的,所以SSD有较大的数据缓存空间用来缓存数据。
闪存(NAND Flash)是固态硬盘的主要存储介质。闪存目前已发展到3D TLC,其IO接口速度发展到1600MT;其发展也带来一些问题,如原始错误比特率(UBER)越来越高,为了减少原始错误比特率,需要通过调整阈值电压后进行重读(Read Retry)。但是由于从闪存(NAND Flash)外部难以观察其电压分布偏移方向,故而调整阈值电压的重读操作往往需要较多次数。重读次数会影响了固态硬盘的读性能,特别是读性能的QoS(Quality ofService)中性能一致性(Consistency)表现。
现有的固态硬盘的主控或者固件,往往通过重读等级依次递增进行。而对对应单个重读过程中的阈值电压设置,往往是按照厂商给出列表进行一个个遍历尝试,导致重读成功率不足,重读次数过多。
基于此,现有技术亟待改进。
发明内容
本发明实施例旨在提供一种重读管理方法、固态硬盘控制器及固态硬盘,其解决了现有固态硬盘重读成功率不足的技术问题,提高固态硬盘的重读效率,从而提升整体读性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种重读管理方法,所述方法包括:
获取在写入阶段时处于每一电压分布状态的第一单元数量,并确定每一电压分布状态对应的第一记录值;
获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,并确定每一电压分布状态对应的第二记录值;
根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向;
根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度;
根据所述阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,并基于调整后的阈值电压,进行重读操作。
在一些实施例中,所述第一记录值包括第一状态值,所述第二记录值包括第二状态值,所述根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度,包括:
计算所述第一状态值与第二状态值的差值;
根据所述差值,确定步进量;
根据所述步进量,确定阈值电压的偏移程度。
在一些实施例中,所述根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向,包括:
根据前一电压分布状态对应的第一单元数量和第二单元数量,确定前一电压分布状态对应的阈值电压的偏移方向;
根据前一电压分布状态对应的阈值电压的偏移方向,结合后一电压分布状态对应的第一单元数量和第二单元数量,确定后一电压分布状态对应的阈值电压的偏移方向。
在一些实施例中,所述根据前一电压分布状态对应的阈值电压的偏移方向,结合后一电压分布状态对应的第一单元数量和第二单元数量,确定后一电压分布状态对应的阈值电压的偏移方向,包括:
根据闪存颗粒类型,其电压分布状态有M个(M≥2且M是2的幂次方),按照从低到高进行排列,依次为第1,2,3,…,M-1,M个电压分布状态;
根据第N个电压状态的偏移量,确定第N+1个电压状态的偏移量,其中,N为正整数且N从1到M-1依次递增,直至确定第M个电压状态的偏移量;
根据前一电压分布状态的偏移量,确定前一电压分布状态对应的阈值电压的偏移方向,以确定后一电压分布状态对应的阈值电压的偏移方向,直至确定最后一个电压分布状态对应的阈值电压的偏移方向。
在一些实施例中,在进行重读操作之前,所述方法还包括:
在正常读操作时,判断是否存在重读等级记录表;
若是,则在有不可纠正错误时,查询所述重读等级记录表,确定重读等级,并基于所述重读等级进行第一次重读操作;
若否,则选择初始重读等级进行第一次重读操作。
在一些实施例中,所述方法还包括:
预先建立重读等级记录表,所述重读等级记录表包括至少两个重读等级。
在一些实施例中,所述方法还包括:
在第一次重读操作完成之后,若依然有不可纠正错误,则进一步判断重读次数是否达到最大;
若是,则记录当前读失败,并重置所述重读等级记录表;
若否,则获取在写入阶段时处于每一电压分布状态的第一单元数量,并确定每一电压分布状态对应的第一记录值;
获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,并确定每一电压分布状态对应的第二记录值;
根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向;
根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度;
根据所述阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,并基于调整后的阈值电压,进行第二次重读操作。
在一些实施例中,所述方法还包括:
在第二次重读操作完成之后,进行循环判断是否有不可纠正错误,直至重读次数达到最大,或者,没有不可纠正错误。
在一些实施例中,所述方法还包括:
若没有不可纠正错误,则记录当前读成功,并更新所述重读等级记录表。
第二方面,本发明实施例提供一种固态硬盘控制器,应用于固态硬盘,所述固态硬盘包括至少一个闪存介质,所述固态硬盘控制器包括数据通路处理模块,通信连接所述固态硬盘的至少一个闪存介质;
其中,所述数据通路处理模块,包括:
接口模块,用于与闪存介质进行数据交换;
缓存管理模块,用于缓存数据;
重读信息管理模块,用于统计处于每一电压分布状态的单元数量,并确定每一电压分布状态对应的数量记录值。
在一些实施例中,所述重读信息管理模块,包括:
数据分布统计模块,用于统计处于每一电压分布状态的单元数量;
信息处理逻辑模块,连接所述数据分布统计模块,用于确定每一电压分布状态对应的数量记录值;
记录值保护模块,连接所述数据分布统计模块以及信息处理逻辑模块,用于对所述数量记录值进行保护。
第三方面,本发明实施例提供一种固态硬盘,包括:
如上所述的固态硬盘控制器,其中,所述固态硬盘控制器用于执行如上所述的重读管理方法;
至少一个闪存介质,与所述固态硬盘控制器通信连接。
第四方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使固态硬盘能够执行如上所述的重读管理方法。
本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种重读管理方法,所述方法包括:获取在写入阶段时处于每一电压分布状态的第一单元数量,并确定每一电压分布状态对应的第一记录值;获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,并确定每一电压分布状态对应的第二记录值;根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向;根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度;根据所述阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,并基于调整后的阈值电压,进行重读操作。通过记录在写入阶段和读取阶段时的每一电压分布状态,调整阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,本发明实施例有利于命中所需最佳电压,提高重读效率,能够提升固态硬盘的整体读性能。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种TLC NAND Flash电压分布的示意图;
图2是本发明实施例提供的不同Page处于不同电压值的代表值的示意图;
图3是本发明实施例提供的不同Page的阈值电压分布的示意图;
图4是本发明实施例提供的理想的电压分布的示意图;
图5是本发明实施例提供的偏移的电压分布的示意图;
图6是现有技术的重读操作的流程图;
图7是本发明实施例提供的一种固态硬盘的结构示意图;
图8是本发明实施例提供的固态硬盘控制器的示意图;
图9是本发明实施例提供的一种数据通路模块的结构示意图;
图10是本发明实施例提供的另一种数据通路模块的结构示意图;
图11是图10中的重读信息管理模块的结构示意图;
图12是本发明实施例提供的一种重读管理方法的流程图;
图13是图12中的步骤S40的细化流程示意图;
图14是本发明实施例提供的一种电压分布的示意图;
图15是本发明实施例提供的一种数据写入的流程的示意图;
图16是本发明实施例提供的一种数据读出的流程的示意图;
图17是本发明实施例提供的一种重读管理方法的整体流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
典型的固态硬盘(Solid State Drives,SSD)通常包括固态硬盘控制器(主控制器)、闪存阵列、缓存单元以及其他***单元。
其中,固态硬盘控制器用于作为控制运算单元,管理SSD内部***;闪存阵列(NANDFlash),作为存储单元,用于存储数据,包括用户数据和***数据,闪存阵列一般呈现多个通道(Channel,简写CH),一个通道独立连接一组NAND Flash,例如CH0/CH1……CHx。其中闪存(NAND Flash),其特性是写入之前,必须进行擦除,且每个闪存擦除次数有限;缓存单元,用于缓存映射表,所述缓存单元一般为动态随机存取存储器(Dynamic Random AccessMemory,DRAM)。其他***单元可以包括传感器、寄存器等部件。
闪存(NAND Flash)是非易失性存储介质,其特征是在一个单元内可以存储电子,其存储电子的数量可以呈现为电压值,其电压值可以分为多个区域。如分为两个区域,那么就代表仅存储一个bit(此类Flash称之为SLC),如果分为4个区域,则代表存储2个bit(此类Flash称之为MLC),如果分为8个区域,则代表存储3个bit(此类Flash称之为TLC),以此类推以2的幂次方作为存储bit数量来确定分布区域数量。
当数据写入后,存储电子的数量可以呈现为电压值,而读时值的判定是依靠所在单元的电压值与参考电压(或称阈值电压)的比较来判断。
请参阅图1,图1是本发明实施例提供的一种TLC NAND Flash电压分布的示意图;
如图1所示,一种典型TLC NAND Flash,其一个单元存储3个bit,有8个电压分布区域,一般地一个单元中3个bit分布被编码分布到3个Page之中,由于,用二进制编码,那么各个Page所有单元的电压分布呈现如图1,其纵轴方向是代表某处于某电压值的单元数量。而同一区域,在不同Page上其代表的值有不同分布,比如A区域,电压分布在V1和V2之间,处于该电压范围的单元的数量呈现出一个波形。
请再参阅图2,图2是本发明实施例提供的不同Page处于不同电压值的代表值的示意图;
如图2所示,处于V1和V2之间的区域的cell,对于LSB Page而言,其二进制值为0,而对于CSB和MSB Page而言,其值代表1。这是由于颗粒厂商设定的规则,对于LSB而言,小于V1和大于V5的区域,都是设定为1值,而处于V1到V5之间,都是0值。以此类推,各个区域在不同Page上的值,如图2所示,从列来看,仍然呈现8个二进制值(000~111)。
请再参阅图3,图3是本发明实施例提供的不同Page的阈值电压分布的示意图;
如图3所示,对于不同的Page(LSB/CSB/MSB),其阈值电压的判定点分布不同。从另一个角度理解,存储的数据Pattern会决定闪存Cell的电压分布。
请一并参阅图4和图5,图4是本发明实施例提供的理想的电压分布的示意图;图5是本发明实施例提供的偏移的电压分布的示意图;
如图4所示,一种理想的电压分布,阈值电压处于两个波形的交叉点上,使得误判的bit最少。
如图5所示,在实际上,由于很多因素的影响,在完成写入后,其分布如图6.可见2个波形存在之间重叠部分,如ER和A之间,在阈值电压V1下,这些重叠部分的Cell,是被误判的,即其值对于读而言,是错误的bit。这些bit需要通过纠错技术来完成纠正。当纠错能力一定情况下,阈值电压的设定,应该尽量使误判的bit最小。
可以理解的是,如果阈值电压处于两个波形的交叉点上,那么其错误bit会误判最小。但是由于更多的因素,当读的时候,这些分布波形会进一步地发生偏移,如图5所示,导致阈值电压不处于两个波形的交叉点,当偏移过大时,那么对应带来的误判bit增加,从而使纠错技术来无法完成纠正。
重读技术,就是重新设置阈值电压后再次进行读,如图5中的V1,如果V1右移到两个波形的交叉点V1’处,那么会使误判的bit减少,使纠错技术来能完成纠正,从而读成功。以此类推,所谓的重读技术,就是通过调整阈值电压(或参考电压),使之处于相邻相关电压分布域的最佳分界点,从而使发生误判的bit最小,以便错误bit数在可纠错范围内,从而读取成功。
一般地,闪存(NAND Flash)供应商会提供一系列的重读等级(即对应不同调整阈值电压),用于重读过程的阈值电压调整。
请再参阅图6,图6是现有技术的重读操作的流程图;
如图6所示,该重读操作的流程,包括:
步骤S601:正常读操作;
步骤S602:是否有不可纠正错误;
步骤S603:若是,则选择初始重读等级;
步骤S604:进行重读操作;
步骤S605:是否有不可纠正错误;
步骤S606:若是,则进一步判断重读等级是否为最大;
步骤S607:若重读等级非最大,则递增重读等级;
步骤S608:若步骤S602或步骤S605的判断结果为否,则记录当前读成功;
步骤S609:若重读等级为最大,则记录当前读失败;
可以看出,现有的固态硬盘的主控或者固件,对于重读是没有进行特别管理的,往往每次重读都是从初始重读等级开始进行依次递增重读,直到重读成功(无不可纠正的错误发生),或者直到重读等级最高仍然无法成功的话则结束重读操作。
由于重读等级越来越多,导致通过重读等级依次递增进行。而对对应单个重读过程中的阈值电压设置,往往是按照厂商给出列表进行一个个遍历尝试,导致重读成功率不足。
有鉴于此,本发明实施例提供一种重读管理方法、固态硬盘控制器及固态硬盘,以解决现有固态硬盘重读成功率不足的技术问题,提高固态硬盘的整体读性能。
下面结合说明书附图具体地阐述本发明的技术方案。
请参阅图7,图7是本发明实施例提供的一种固态硬盘的结构示意图。
如图7所示,所述固态硬盘100包括闪存介质110以及与所述闪存介质110连接的固态硬盘控制器120。其中,所述固态硬盘100通过有线或无线的方式与所述主机200通信连接,用以实现数据交互。
闪存介质110,作为所述固态硬盘100的存储介质,也称作闪存、Flash、Flash存储器或Flash颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存介质110得以成为各类便携型数字设备的存储介质的基础。
其中,闪存介质110可以为Nand FLASH,Nand FLASH以单晶体管作为二进制信号的存储单元,其结构与普通的半导体晶体管非常相似,区别在于Nand FLASH的单晶体管加入了浮动栅和控制栅,浮动栅用于贮存电子,表面被一层硅氧化物绝缘体所包覆,并通过电容与控制栅相耦合,当负电子在控制栅的作用下被注入到浮动栅中,Nand FLASH的单晶体的存储状态就由“1”变成了“0”,而当负电子从浮动栅中移走后,存储状态就由“0”变成了“1”,包覆在浮动栅表面的绝缘体用于将浮动栅中的负电子困住,实现数据存储。即Nand FLASH的存储单元为浮动栅晶体管,使用浮动栅晶体管以电荷的形式存储数据。存储电荷的多少与浮动栅晶体管所被施加的电压的大小有关。
一个Nand FLASH包括至少一个Chip芯片,每一个Chip芯片由若干个Block物理块组成,每一个Block物理块包括若干个Page页。其中,Block物理块是Nand FLASH执行擦除操作的最小单位,Page页为Nand FLASH执行读写操作的最小单位,一个Nand FLASH的容量等于其Block物理块的数量*一个Block物理块包含的Page页的数量*一个Page页的容量。具体的,闪存介质10按照存储单元的电压的不同层次,可分为SLC、MLC、TLC以及QLC。
固态硬盘控制器120,包括数据转换器121、处理器122、缓存器123、闪存控制器124以及接口125。
数据转换器121,分别与处理器122和闪存控制器124连接,所述数据转换器121用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当所述闪存控制器124向所述闪存介质110写入数据时,通过所述数据转换器121将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质110。当所述闪存控制器124从所述闪存介质110读取数据时,通过所述数据转换器121将闪存介质110中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,所述数据转换器121可以包括二进制数据寄存器和十六进制数据寄存器。所述二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,所述十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
处理器122,分别与数据转换器121、缓存器123、闪存控制器124以及接口125连接,其中,处理器122与数据转换器121、缓存器123、闪存控制器124以及接口125可以通过总线或者其他方式连接,所述处理器用于运行存储在缓存器123中的非易失性软件程序、指令以及模块,从而实现本发明任一方法实施例。
缓存器123,主要用于缓存主机200发送的读/写指令以及根据主机200发送的读/写指令从闪存介质110获取的读数据或者写数据。缓存器123作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。缓存器123可以包括存储程序区,存储程序区可存储操作***、至少一个功能所需要的应用程序。此外,缓存器123可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,缓存器123可选包括相对于处理器124远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述缓存器123可以为静态随机存取存储器(StaticRandom Access Memory,SRAM)或者耦合内存(Tightly Coupled Memory,TCM)或者双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic Random AccessMemory,DDR SRAM)。
闪存控制器124,与闪存介质110、数据转换器121、处理器122以及缓存器123连接,用于访问后端的闪存介质110,管理闪存介质110的各种参数和数据I/O;或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取主机200发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责FTL(Flashtranslation layer,闪存转换层)的核心处理。
接口125,连接主机200以及数据转换器121、处理器122以及缓存器123,用于接收主机200发送的数据,或者,接收所述处理器122发送的数据,实现主机200与处理器122之间的数据传输,所述接口125可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。
请再参阅图8,图8是本发明实施例提供的一种固态硬盘控制器的结构示意图;其中,该固态硬盘控制器属于上述的固态硬盘。
如图8所示,该固态硬盘控制器,包括:PCIe接口控制器126、DDR控制器127、NVMe接口控制器128、处理器122、外设模块129、数据通路模块1210以及闪存控制器124。
具体的,所述PCIe接口控制器126,用于PCIe通信协议的控制,所述DDR控制器127,用于动态随机存储器的控制,所述NVMe接口控制器128用于NVMe通信协议的控制,所述外设模块129用于其他相关通信协议的控制,所述数据通路模块1210用于数据通路的控制,例如:写缓存的管理,所述闪存控制器124用于闪存的数据处理。
其中,该固态硬盘控制器120,还包括数据转换器121、缓存器123、接口125等。
具体的,所述数据转换器121,分别与处理器和闪存控制器连接,所述数据转换器用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当所述闪存控制器向所述闪存介质写入数据时,通过所述数据转换器将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质。当所述闪存控制器从所述闪存介质读取数据时,通过所述数据转换器将闪存介质中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,所述数据转换器可以包括二进制数据寄存器和十六进制数据寄存器。所述二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,所述十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
具体的,所述处理器122,分别与数据转换器121、缓存器123、闪存控制器124以及接口125连接,其中,处理器与数据转换器、缓存器、闪存控制器以及接口可以通过总线或者其他方式连接,所述处理器用于运行存储在缓存器中的非易失性软件程序、指令以及模块,从而实现本发明任一方法实施例。
具体的,所述缓存器,主要用于缓存主机发送的读/写指令以及根据主机发送的读/写指令从闪存介质获取的读数据或者写数据。缓存器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。缓存器可以包括存储程序区,存储程序区可存储操作***、至少一个功能所需要的应用程序。此外,缓存器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,缓存器可选包括相对于处理器远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述缓存器可以为静态随机存取存储器(Static Random AccessMemory,SRAM)或者耦合内存(Tightly Coupled Memory,TCM)或者双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic Random Access Memory,DDR SRAM)。
具体的,所述闪存控制器,与闪存介质、数据转换器、处理器以及缓存器连接,用于访问后端的闪存介质,管理闪存介质的各种参数和数据I/O;或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取主机发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责FTL(Flash translation layer,闪存转换层)的核心处理。
具体的,所述接口,连接主机以及数据转换器、处理器以及缓存器,用于接收主机发送的数据,或者,接收所述处理器发送的数据,实现主机与处理器之间的数据传输,所述接口可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。
请再参阅图9,图9是本发明实施例提供的一种数据通路模块的结构示意图;
如图9所示,该数据通路模块1210,包括:接口模块1211、缓存管理模块1212以及重读信息管理模块1213,其中,所述接口模块1211通信连接所述缓存管理模块1212以及所述重读信息管理模块1213,所述缓存管理模块1212通信连接所述重读信息管理模块1213。
具体的,所述接口模块1211,包括:处理器接口(CPU IF)、闪存接口以及NVMe接口(DMAC/NVMe IF),其中,所述处理器接口用于与CPU进行数据交换,所述闪存接口用于与闪存进行数据交换,其中,本发明实施例中的闪存包括SLC闪存、MLC闪存以及TLC闪存,所述NVMe接口用于与NVMe硬盘进行数据交换;
请再参阅图10,图10是本发明实施例提供的另一种数据通路模块的结构示意图;
如图10所示,该数据通路模块(Data Path Processor)包括:处理器接口、NVMe接口、缓存管理模块、ECC引擎(ECC Engine)以及闪存接口,其中,所述ECC引擎包括重读信息管理模块;
其中,所述处理器接口通信连接NVMe接口、缓存管理模块以及ECC引擎(ECCEngine),用于与处理器进行数据交换;
其中,所述NVMe接口通信连接所述处理器接口、缓存管理模块以及闪存接口,用于与NVMe硬盘进行数据交换;
其中,所述缓存管理模块通信连接所述处理器接口、重读信息管理模块以及闪存接口,用于缓存数据,具体的,所述缓存管理模块包括高速缓存器,例如:SRAM,用于作为Buffer缓存数据,所述缓存管理模块还包括逻辑电路,用于管理Buffer;
其中,所述重读信息管理模块通信连接所述缓存管理模块,用于进行重读信息管理;
其中,所述ECC引擎(ECC Engine)通信连接所述处理器接口、缓存管理模块以及闪存接口,用于进行重读信息管理的相关操作以及ECC校验;
其中,所述闪存接口通信连接所述NVMe接口、缓存管理模块以及ECC引擎(ECCEngine),用于与闪存进行数据交换;
请再参阅图11,图11是图10中的重读信息管理模块的结构示意图;
如图11所示,该重读信息管理模块1213,包括:数据分布统计模块12131、信息处理逻辑模块12132以及记录值保护模块12133,其中,所述数据分布统计模块12131通信连接所述信息处理逻辑模块12132,所述信息处理逻辑模块12132通信连接所述记录值保护模块12133;
其中,所述数据分布统计模块12131,用于统计处于每一电压分布状态的单元数量;
其中,所述信息处理逻辑模块12132,连接所述数据分布统计模块12131以及所述记录值保护模块12133,用于确定每一电压分布状态对应的数量记录值;在本发明实施例中,所述数量记录值包括每一电压分布状态的单元数量与总单元数量的百分比值。
其中,所述记录值保护模块12133,连接所述数据分布统计模块12131以及信息处理逻辑模块12132,用于对所述数量记录值进行保护,使得所述数量记录值能够存储到闪存上,在发生错误bit的时候能够进行纠正。
具体的,所述记录值保护模块12133,包括:ECC逻辑单元31和RAID XOR逻辑单元32,其中,所述ECC逻辑单元31用于进行纠错,所述ECC逻辑单元包括逻辑电路,所述逻辑电路用于实现BCH算法和/或RS算法,以进行纠错。
在本发明实施例中,所述记录值保护模块还包括编码单元和解码单元,所述编码单元用于在数量记录值写入时进行编码(Encode),所述解码单元用于在数量记录值读取时进行解码(Decode)。
在本发明实施例中,通过数据分布统计模块进行数据分布统计,得到每个电压分布状态的具体cell数量,再通过信息处理逻辑模块确定每一电压分布状态对应的数量记录值,例如:所述数量记录值包括百分比值,由信息处理逻辑模块进行计算获得结果,体现为“分布状态的占比”这样一组值,然后在这些值需要进行ECC+RAID保护,也就是把这些值作为输入,得到一组输出数据,以存储到闪存上,本发明能够实现对记录值的有效保护。
在本发明实施例中,通过提供一种固态硬盘控制器,应用于固态硬盘,所述固态硬盘包括至少一个闪存介质,所述固态硬盘控制器包括数据通路处理模块,通信连接所述固态硬盘的至少一个闪存介质;其中,所述数据通路处理模块,包括:接口模块,用于与闪存介质进行数据交换;缓存管理模块,用于缓存数据;重读信息管理模块,用于统计处于每一电压分布状态的单元数量,并确定每一电压分布状态对应的数量记录值。通过加入重读信息管理模块,用于统计处于每一电压分布状态的单元数量,并确定每一电压分布状态对应的数量记录值,本发明实施例能够提高固态硬盘的整体读性能。
可以理解的是,重读技术实质上是找到一个合适的阈值电压,从而减少误判的bit数量,如果能通过分析读取的数据来推断阈值电压偏向,那么给设置正确的阈值电压带来益处,如图4所示,当相关波形交叉点(波谷)是最佳电压点V1。但由于闪存的特性,其电压分布发生偏移,也就是说,原始设定阈值电压不处于波形交叉点,如图5所示,原先的最佳电压点V1已经不处于波谷了,而实际期望的最佳电压是V1’。因此,如何根据分析读取的数据来推断阈值电压偏向,是本发明需要解决的问题,基于此,本发明实施例提供一种重读管理方法。
请再参阅图12,图12是本发明实施例提供的一种重读管理方法的流程图;
如图12所示,该重读管理方法,应用于上述的固态硬盘控制器,所述方法包括:
步骤S10:获取在写入阶段时处于每一电压分布状态的第一单元数量,并确定每一电压分布状态对应的第一记录值;
具体的,本发明实施例通过考虑本次重读的前一次重读的信息,以为本次重读提供正确的调整方向。通过获取在写入阶段时处于每一电压分布状态的第一单元数量,并确定每一电压分布状态对应的第一记录值,其中,所述第一记录值包括第一状态值,其中,所述第一状态值体现为“分布状态的占比”这样一组值,例如:所述第一状态值包括每一电压分布状态的第一单元数量与总单元数量的比例、百分比中的至少一个;
步骤S20:获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,并确定每一电压分布状态对应的第二记录值;
可以理解的是,前一次重读的读取阶段在写入阶段之后,通过获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,并确定每一电压分布状态对应的第二记录值,其中,所述第二记录值包括第二状态值,其中,所述第二状态值体现为“分布状态的占比”这样一组值,例如:所述第二状态值包括每一电压分布状态的第一单元数量与总单元数量的比例、百分比中的至少一个;
步骤S30:根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向;
具体的,所述第一单元数量反映前一次重读的写入阶段的每一电压分布状态的cell数量,所述第二单元数量反映前一次重读的读取阶段的每一电压分布状态的cell数量,通过比较所述第一单元数量和所述第二单元数量,可以确定cell数量的变化趋势,以判断每一阈值电压的偏移方向,例如:当处于ER状态的第一单元数量小于第二单元数量时,则确定阈值电压V1的偏移方向为右偏,当处于ER状态的第一单元数量大于第二单元数量时,则确定阈值电压V1的偏移方向为左偏;
通过确定每一电压分布状态的第一单元数量和第二单元数量,从而确定每一阈值电压的偏移方向,本发明实施例能够更好地调整阈值电压。
在本发明实施例中,所述根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向,包括:
根据前一电压分布状态对应的第一单元数量和第二单元数量,确定前一电压分布状态对应的阈值电压的偏移方向;
根据前一电压分布状态对应的阈值电压的偏移方向,结合后一电压分布状态对应的第一单元数量和第二单元数量,确定后一电压分布状态对应的阈值电压的偏移方向。
具体的,所述根据前一电压分布状态对应的阈值电压的偏移方向,结合后一电压分布状态对应的第一单元数量和第二单元数量,确定后一电压分布状态对应的阈值电压的偏移方向,包括:
根据闪存颗粒类型,其电压分布状态有M个(M≥2,M是2的幂次方),按照从低到高进行排列,依次为第1,2,3,…,M-1,M个电压分布状态;
根据第N个电压状态的偏移量,确定第N+1个电压状态的偏移量,其中,N为正整数且N从1到M-1依次递增,直至确定第M个电压状态的偏移量;
根据前一电压分布状态的偏移量,确定前一电压分布状态对应的阈值电压的偏移方向,以确定后一电压分布状态对应的阈值电压的偏移方向,直至确定最后一个电压分布状态对应的阈值电压的偏移方向。
可以理解的是,具体的,闪存颗粒类型包括MLC类型、TLC类型以及QLC类型,当闪存颗粒类型为MLC类型时,其电压分布状态的数量为4,即M=4;当闪存颗粒类型为TLC类型时,其电压分布状态的数量为8,即M=8;当闪存颗粒类型为QLC类型时,其电压分布状态的数量为16,即M=16;下面以单元类型为TLC类型,即电压分布状态M=8为例进行说明:
假设电压分布状态按照从低到高进行排列,第一个电压分布状态为状态ER,第二个电压分布状态为状态A,第三个电压分布状态为状态B,第四个电压分布状态为状态C,第五个电压分布状态为状态D,第六个电压分布状态为状态E,第七个电压分布状态为状态F,第八个电压分布状态为状态G;
当第N个电压分布状态的电压分布发生右移时,其单元数量的统计值的计算公式如下式(1)、(2):
Ccnt(N’)=Ccnt(N)-ΔX; (1)
Ccnt(N+1’)=Ccnt(N+1)+ΔX±ΔN+1_N+2; (2)
当第N个电压分布状态的电压分布发生左移时,其单元数量的统计值的计算公式如下式(3)、(4):
Ccnt(N’)=Ccnt(N)+ΔM; (3)
Ccnt(N+1’)=Ccnt(N+1)-ΔM±ΔN+1_N+2; (4)
其中,Ccnt(N)为写入阶段的第N个电压状态的单元数量,Ccnt(N’)为读取阶段的第N个电压状态的单元数量,ΔX为第N个电压状态右偏的偏移量,Ccnt(N+1)为写入阶段的第N+1个电压状态的单元数量,Ccnt(N+1’)为读取阶段的第N+1个电压状态的单元数量,ΔN+1_N+2为第N+1个电压状态的偏移量;
根据第N个电压状态的偏移量,确定第N+1个电压状态的偏移量,其中,N为正整数且N从1到7依次递增,直至确定第八个电压状态的偏移量;
根据前一电压分布状态的偏移量,确定前一电压分布状态对应的阈值电压的偏移方向,以确定后一电压分布状态对应的阈值电压的偏移方向,直至确定最后一个电压分布状态对应的阈值电压的偏移方向。
可以理解的是,第一个电压分布状态,即电压分布状态ER不会存在前一个电压分布状态的影响,即第一个电压分布状态ER的对应的阈值电压V1的偏移方向可以通过统计得到的偏移量来确定,而第一电压分布状态之后的每一电压分布状态不仅会受到后一电压分布状态的影响,还会受到前一电压分布状态的影响,因此,需要确定前一电压分布状态的偏移量,以此来确定后一电压分布状态的偏移量,进而确定后一电压分布状态对应的阈值电压的偏移方向,因此,通过根据第N个电压状态的偏移量,确定第N+1个电压状态的偏移量,其中,N从1到7依次递增,直至确定第八个电压状态的偏移量;根据前一电压分布状态的偏移量,确定前一电压分布状态对应的阈值电压的偏移方向,以确定后一电压分布状态对应的阈值电压的偏移方向,直至确定最后一个电压分布状态对应的阈值电压的偏移方向。
可以理解的是,所述第一电压分布状态ER对应的阈值电压为V1,所述第二电压分布状态A对应的阈值电压为V2,所述第三电压分布状态B对应阈值电压为V3,所述第四电压分布状态C对应的阈值电压为V4,所述第五电压分布状态D对应的阈值电压为V5,所述第六电压分布状态E对应的阈值电压为V6,所述第七电压分布状态对应的阈值电压为V7,所述第八电压分布状态对应的阈值电压为V8。
在本发明实施例中,通过确定前一电压分布状态对应的阈值电压的偏移量,确定后一电压分布状态对应的阈值电压的偏移方向,本发明实施例能够更好地对阈值电压进行方向调整。
步骤S40:根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度;
具体的,所述第一记录值包括第一状态值,所述第二记录值包括第二状态值,优选地,所述第一状态值为第一百分比值,所述第二状态值为第二百分比值,请再参阅图13,图13是图12中的步骤S40的细化流程示意图;
如图13所示,该步骤S40:根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度,包括:
步骤S41:计算所述第一状态值与第二状态值的差值;
假设电压分布状态按照从低到高进行排列,第一个电压分布状态为状态ER,第二个电压分布状态为状态A,……,以此类推,第八个电压分布状态为状态G;
当电压分布发生右移时,其单元数量的统计值的计算公式如下式(1)、(2):
Ccnt(N’)=Ccnt(N)-ΔX; (1)
Ccnt(N+1’)=Ccnt(N+1)+ΔX±ΔN+1_N+2; (2)
其中,Ccnt(N)为写入阶段的第N个电压状态的单元数量,Ccnt(N’)为读取阶段的第N个电压状态的单元数量,ΔX为第N个电压状态右偏的偏移量,Ccnt(N+1)为写入阶段的第N+1个电压状态的单元数量,Ccnt(N+1’)为读取阶段的第N+1个电压状态的单元数量,ΔN+1_N+2为第N+1个电压状态的偏移量。
当电压分布发生左移时,其单元数量的统计值的计算公式如下式(3)、(4):
Ccnt(N’)=Ccnt(N)+ΔM; (3)
Ccnt(N+1’)=Ccnt(N+1)-ΔM±ΔN+1_N+2; (4)
其中,Ccnt(N)为写入阶段的第N个电压状态的单元数量,Ccnt(N’)为读取阶段的第N个电压状态的单元数量,ΔM为第N个电压状态左偏的偏移量,Ccnt(N+1)为写入阶段的第N+1个电压状态的单元数量,Ccnt(N+1’)为读取阶段的第N+1个电压状态的单元数量,ΔN+1_N+2为第N+1个电压状态的偏移量。
可以理解的是,偏移量ΔN+1_N+2可以为左偏的偏移量,也可以为右偏的偏移量,当偏移量ΔN+1_N+2为左偏的偏移量时,公式(2)为Ccnt(N+1’)=Ccnt(N+1)+ΔX+ΔN+1_N+2,公式(4)为Ccnt(N+1’)=Ccnt(N+1)-ΔM+ΔN+1_N+2;当偏移量ΔN+1_N+2为右偏的偏移量时,公式(2)为Ccnt(N+1’)=Ccnt(N+1)+ΔX-ΔN+1_N+2,公式(4)为Ccnt(N+1’)=Ccnt(N+1)-ΔM-ΔN+1_N+2;
具体的,请再参阅图14,图14是本发明实施例提供的一种电压分布的示意图;
如图14的上半部分所示,以状态ER为例进行说明:当读设定仍然保持是阈值电压V1,那么处于ΔA电压范围内,可知处于状态ER的Cell数量减少了ΔX,而仅考虑阈值电压V1时,处于状态A的Cell数量增加了ΔX,如果考虑阈值电压V2时,需要考虑阈值电压V2的相对于波形的位置,故而当发生波形偏移后,阈值电压保持原始值时,cell数量变化如下:
Ccnt(ER’)=Ccnt(ER)-ΔX
Ccnt(A’)=Ccnt(A)+ΔX±ΔA_B
其中,Ccnt(ER’)为处于,Ccnt(ER)为处于状态ER的单元数量,ΔX为右偏的偏移量,ΔA_B与阈值电压V2的偏移相关。
反之,如果电压分布发生左移,如图14的下半部分所示,那么处于状态ER的Cell数量增加了ΔM,而处于状态A的Cell数量减少了ΔM。
Ccnt(ER’)=Ccnt(ER)+ΔM
Ccnt(A’)=Ccnt(A)–ΔM±ΔA_B
在写入和读取时,对所有电压分布状态的Cell数量进行追踪和对比,例如写入时统计出并记录Ccnt(ER),读取是统计出Ccnt(ER’),可以得知ΔM的增减。基于上述发生偏移时,对应的状态的Cell数量发生变化的趋向来推测其偏移方向,例如读到数据呈现出来就是处于ER状态的Cell数量减少,相对于V1而言,波形右偏了,设置新的V1’时,应反向调整:向左调整,以便获得最佳的阈值电压Vth。对于V2而言,确定了ER状态的Cell数量变化后,进而可以确定A状态的Cell数量增减变化趋向,以此推断出V2的调整方向。其他V3-V7依次可以推断。
可以理解的是,无论是左偏,还是右偏,偏差数量的大小(ΔX/ΔM),代表着偏移的程度(可以理解为V1’和V1”离V1的距离),故而可以利用偏差数量大小来作为设置新的阈值电压Vth的步进大小。
具体的,计算所述第一状态值与第二状态值的差值,其中,所述第一状态值与第二状态值的差值可以用于表示偏差数量,以根据所述第一状态值与第二状态值的差值来确定步进量。
步骤S42:根据所述差值,确定步进量;
具体的,根据预先设置的差值与步进量的对应关系,基于所述差值,确定步进量,例如:所述差值与步进量的对应关系为:步进量=调整系数*差值,根据所述差值,通过所述对应关系,从而确定步进量。
步骤S43:根据所述步进量,确定阈值电压的偏移程度。
具体的,根据所述步进量,将所述步进量确定为阈值电压的偏移程度,即步进量=偏移程度。
步骤S50:根据所述阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,并基于调整后的阈值电压,进行重读操作。
具体的,每一电压状态对应的调整后的阈值电压=初始值±偏移程度,其中,当偏移方向为左偏时,每一电压状态对应的调整后的阈值电压=初始值+偏移程度;当偏移方向为右偏时,每一电压状态对应的调整后的阈值电压=初始值-偏移程度。
在本发明实施例中,通过追踪目标数据的电压分布状态信息,计算写入和读取时候的电压分布状态的Cell数量变化趋势,来推测其电压分布偏移方向,从而在重读的时候,将阈值电压向反方向进行调整,以实现阈值电压的方向调整,再通过追踪目标数据的电压分布状态信息,计算写入和读取时候的电压分布状态的Cell数量变化程度,用作调整阈值电压的步进大小的参考,以实现阈值电压的阈值调整,本发明实施例能够更好地调整阈值电压,以减少误判的bit数量,提高固态硬盘的整体读性能。
请再参阅图15,图15是本发明实施例提供的一种数据写入的流程的示意图;
如图15所示,用户数据外部接口通过数据处理模块后到达闪存阵列的过程,即从步骤S1到步骤S7。其中步骤S1,S2,S5,S6,S7是数据传递过程,不在本发明进行细节说明,步骤S3是进行数据纠错码的编码(LDPCEnCode)形成Parity添加到数据块中,完成后由步骤S4进行重读信息处理模块,即完成电压分布状态信息统计,并生成数量记录值(比如各个状态的百分比值),并对该记录进行单独纠错码编码(ECC+RAID XOR)后随用户数据一起经过步骤S5,步骤S6之后经过步骤S7:写入到闪存阵列;
请再参阅图16,图16是本发明实施例提供的一种数据读出的流程的示意图;
如图16所示,存储在闪存的数据(包含数量记录值以及纠错码Parity等)被读到数据处理模块进行处理后输出到外部接口的过程,即从步骤S1到S7。其中步骤S1,S2,S3,S6,S7是数据传递过程,不在本发明进行细节说明,其中步骤S4是重读信息处理模块对读到的数据,也进行电压分布状态信息统计数,并与读取的数量记录值进行对比,并把对比结果,读和写的分别的数量值(百分比值)一起发给外部模块,用于进一步处理(一般是发给CPU,即由软件进行处理,产生阈值电压的预期值);步骤S5是数据纠错码的解码(LDPCDeCode),这里会知道是否可以纠错成功,如果纠错失败那么需要进行重读,即步骤S1-S5可能重复进行,只有步骤S5成功完成纠错,才会把数据通过步骤S6,S7输出到外部接口;
在本发明实施例中,在进行重读操作之前,所述方法还包括:
在正常读操作时,判断是否存在重读等级记录表;
若是,则在有不可纠正错误时,查询所述重读等级记录表,确定重读等级,并基于所述重读等级进行第一次重读操作;
若否,则选择初始重读等级进行第一次重读操作。
在本发明实施例中,所述方法还包括:
预先建立重读等级记录表,所述重读等级记录表包括至少两个重读等级。
在本发明实施例中,所述方法还包括:
在第一次重读操作完成之后,若依然有不可纠正错误,则进一步判断重读次数是否达到最大;
若是,则记录当前读失败,并重置所述重读等级记录表;
若否,则获取在写入阶段时处于每一电压分布状态的第一单元数量,并确定每一电压分布状态对应的第一记录值;
获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,并确定每一电压分布状态对应的第二记录值;
根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向;
根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度;
根据所述阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,并基于调整后的阈值电压,进行第二次重读操作。
具体的,请再参阅图17,图17是本发明实施例提供的一种重读管理方法的整体流程示意图;
如图17所示,该重读管理方法,包括:
步骤S1701:正常读操作;
步骤S1702:是否有不可纠正错误;
具体的,若存在不可纠正错误,则进入步骤S1703;若不存在不可纠正错误,则进入步骤S1712:记录当前读成功,并更新重读等级记录表;
步骤S1703:是否有重读等级记录表;
具体的,在正常读操作时,判断是否存在重读等级记录表,若是,则进入步骤S1711:选择查表所得的重读等级;若否,则进入步骤S1704:选择初始重读等级;
步骤S1704:选择初始重读等级;
步骤S1705:进行重读操作;
步骤S1706:是否有不可纠正错误;
具体的,若存在不可纠正错误,则进入步骤S1707;若不存在不可纠正错误,则进入步骤S1712:记录当前读成功,并更新重读等级记录表;
步骤S1707:重读次数是否为最大;
具体的,若重读次数等于预设的重读次数阈值,则确定重读次数为最大,则进入步骤S1713:记录当前读失败,并重置重读等级记录表;若重读次数小于预设的重读次数阈值,则进入步骤S1708;
步骤S1708:根据电压分布状态,确定偏移方向;
具体的,获取在写入阶段时处于每一电压分布状态的第一单元数量,以及,获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向。
步骤S1709:根据电压分布状态,调整步进大小;
具体的,确定每一电压分布状态对应的第一记录值,以及,确定每一电压分布状态对应的第二记录值,计算所述第一状态值与第二状态值的差值;根据所述差值,确定步进量;
步骤S1710:确定并设置阈值电压;
具体的,确定每一电压分布状态对应的阈值电压。
步骤S1711:选择查表所得的重读等级;
具体的,在有不可纠正错误时,查询所述重读等级记录表,确定重读等级,并基于所述重读等级进行第一次重读操作;
步骤S1712:记录当前读成功,并更新重读等级记录表;
具体的,所述更新重读等级记录表,包括将所述重读等级记录表的初始重读等级修改为当前的重读等级。
步骤S1713:记录当前读失败,并重置重读等级记录表;
本发明实施例通过追踪目标数据写读之间的电压分布状态变化情况,可以为重读过程提供有效调整电压方向,同时提供阈值电压的调整步进大小,从而提高重读成功率,整体减少重读次数,提高固态硬盘的整体读性能,特别是读性能一致性的指标。
在本发明实施例中,通过提供一种重读管理方法,所述方法包括:获取在写入阶段时处于每一电压分布状态的第一单元数量,并确定每一电压分布状态对应的第一记录值;获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,并确定每一电压分布状态对应的第二记录值;根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向;根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度;根据所述阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,并基于调整后的阈值电压,进行重读操作。通过记录在写入阶段和读取阶段时的每一电压分布状态,调整阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,本发明实施例能够提高固态硬盘的整体读性能。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如上述一个或多个处理器可执行上述任意方法实施例中的重读管理方法,例如,执行上述任意方法实施例中的重读管理方法,例如,执行以上描述的各个步骤。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种重读管理方法,其特征在于,所述方法包括:
获取在写入阶段时处于每一电压分布状态的第一单元数量,并确定每一电压分布状态对应的第一记录值;
获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,并确定每一电压分布状态对应的第二记录值;
根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向;
根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度;
根据所述阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,并基于调整后的阈值电压,进行重读操作。
2.根据权利要求1所述的方法,其特征在于,所述第一记录值包括第一状态值,所述第二记录值包括第二状态值,所述根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度,包括:
计算所述第一状态值与第二状态值的差值;
根据所述差值,确定步进量;
根据所述步进量,确定阈值电压的偏移程度。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向,包括:
根据前一电压分布状态对应的第一单元数量和第二单元数量,确定前一电压分布状态对应的阈值电压的偏移方向;
根据前一电压分布状态对应的阈值电压的偏移方向,结合后一电压分布状态对应的第一单元数量和第二单元数量,确定后一电压分布状态对应的阈值电压的偏移方向。
4.根据权利要求3所述的方法,其特征在于,所述根据前一电压分布状态对应的阈值电压的偏移方向,结合后一电压分布状态对应的第一单元数量和第二单元数量,确定后一电压分布状态对应的阈值电压的偏移方向,包括:
根据闪存颗粒类型,其电压分布状态有M个(M≥2且M是2的幂次方),按照从低到高进行排列,依次为第1,2,3,…,M-1,M个电压分布状态;
根据第N个电压状态的偏移量,确定第N+1个电压状态的偏移量,其中,N为正整数且N从1到M-1依次递增,直至确定第M个电压状态的偏移量;
根据前一电压分布状态的偏移量,确定前一电压分布状态对应的阈值电压的偏移方向,以确定后一电压分布状态对应的阈值电压的偏移方向,直至确定最后一个电压分布状态对应的阈值电压的偏移方向。
5.根据权利要求1所述的方法,其特征在于,在进行重读操作之前,所述方法还包括:
预先建立重读等级记录表,所述重读等级记录表包括至少两个重读等级;
在正常读操作时,判断是否存在重读等级记录表;
若是,则在有不可纠正错误时,查询所述重读等级记录表,确定重读等级,并基于所述重读等级进行第一次重读操作;
若否,则选择初始重读等级进行第一次重读操作。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在第一次重读操作完成之后,若依然有不可纠正错误,则进一步判断重读次数是否达到最大;
若是,则记录当前读失败,并重置所述重读等级记录表;
若否,则获取在写入阶段时处于每一电压分布状态的第一单元数量,并确定每一电压分布状态对应的第一记录值;
获取前一次重读在读取阶段时处于每一电压分布状态的第二单元数量,并确定每一电压分布状态对应的第二记录值;
根据所述第一单元数量以及第二单元数量,确定每一阈值电压的偏移方向;
根据所述第一记录值和第二记录值,确定每一阈值电压的偏移程度;
根据所述阈值电压的偏移方向以及偏移程度,确定调整后的阈值电压,并基于调整后的阈值电压,进行第二次重读操作。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在第二次重读操作完成之后,进行循环判断是否有不可纠正错误,直至重读次数达到最大,或者,没有不可纠正错误;
若没有不可纠正错误,则记录当前读成功,并更新所述重读等级记录表。
8.一种固态硬盘控制器,应用于固态硬盘,所述固态硬盘包括至少一个闪存介质,其特征在于,所述固态硬盘控制器包括数据通路处理模块,通信连接所述固态硬盘的至少一个闪存介质;
其中,所述数据通路处理模块,包括:
接口模块,用于与闪存介质进行数据交换;
缓存管理模块,用于缓存数据;
重读信息管理模块,用于统计处于每一电压分布状态的单元数量,并确定每一电压分布状态对应的数量记录值。
9.根据权利要求1所述的固态硬盘控制器,其特征在于,所述重读信息管理模块,包括:
数据分布统计模块,用于统计处于每一电压分布状态的单元数量;
信息处理逻辑模块,连接所述数据分布统计模块,用于确定每一电压分布状态对应的数量记录值;
记录值保护模块,连接所述数据分布统计模块以及信息处理逻辑模块,用于对所述数量记录值进行保护。
10.一种固态硬盘,其特征在于,包括:
如权利要求8或9所述的固态硬盘控制器,其中,所述固态硬盘控制器用于执行如权利要求1-7任一项所述的重读管理方法;
至少一个闪存介质,与所述固态硬盘控制器通信连接。
CN202011539962.6A 2020-12-23 2020-12-23 一种重读管理方法、固态硬盘控制器及固态硬盘 Active CN112562766B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011539962.6A CN112562766B (zh) 2020-12-23 2020-12-23 一种重读管理方法、固态硬盘控制器及固态硬盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011539962.6A CN112562766B (zh) 2020-12-23 2020-12-23 一种重读管理方法、固态硬盘控制器及固态硬盘

Publications (2)

Publication Number Publication Date
CN112562766A true CN112562766A (zh) 2021-03-26
CN112562766B CN112562766B (zh) 2024-08-09

Family

ID=75032318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011539962.6A Active CN112562766B (zh) 2020-12-23 2020-12-23 一种重读管理方法、固态硬盘控制器及固态硬盘

Country Status (1)

Country Link
CN (1) CN112562766B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595562A (zh) * 2021-07-23 2021-11-02 深圳宏芯宇电子股份有限公司 软数据处理方法、装置、存储介质及解码器
CN114049910A (zh) * 2022-01-13 2022-02-15 深圳华电通讯有限公司 一种nand重读档位的换挡方法、***及相关组件
CN114138190A (zh) * 2021-11-19 2022-03-04 北京得瑞领新科技有限公司 闪存设备的数据读取方法、装置、存储介质及闪存设备
CN114296645A (zh) * 2021-12-17 2022-04-08 合肥大唐存储科技有限公司 一种Nand闪存中重读方法和固态硬盘
WO2022134712A1 (zh) * 2020-12-23 2022-06-30 深圳大普微电子科技有限公司 一种阈值电压的管理方法、读取闪存数据的方法
CN115620760A (zh) * 2022-09-16 2023-01-17 上海江波龙数字技术有限公司 一种最优读出阈值电压的搜索方法、终端及存储介质
CN116954524A (zh) * 2023-09-20 2023-10-27 深圳市爱普特微电子有限公司 一种抗干扰的flash数据读取方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161004A1 (en) * 2013-12-11 2015-06-11 International Business Machines Corporation Read buffer architecture supporting integrated xor-reconstructed and read-retry for non-volatile random access memory (nvram) systems
CN108647109A (zh) * 2018-03-27 2018-10-12 深圳忆联信息***有限公司 一种固态硬盘提升ldpc纠错能力的方法
CN108986865A (zh) * 2018-06-29 2018-12-11 长江存储科技有限责任公司 非易失性存储***及其读取方法
CN110515760A (zh) * 2019-08-29 2019-11-29 北京计算机技术及应用研究所 一种基于机器学习的ldpc闪存纠错方法
CN110706735A (zh) * 2019-09-30 2020-01-17 中国科学院微电子研究所 一种NAND Flash存储器读阈值电压修复方法
US20200066354A1 (en) * 2018-08-24 2020-02-27 International Business Machines Corporation Error recovery of data in non-volatile memory during read
CN111863098A (zh) * 2020-07-30 2020-10-30 深圳大普微电子科技有限公司 一种读操作处理方法、装置及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161004A1 (en) * 2013-12-11 2015-06-11 International Business Machines Corporation Read buffer architecture supporting integrated xor-reconstructed and read-retry for non-volatile random access memory (nvram) systems
CN108647109A (zh) * 2018-03-27 2018-10-12 深圳忆联信息***有限公司 一种固态硬盘提升ldpc纠错能力的方法
CN108986865A (zh) * 2018-06-29 2018-12-11 长江存储科技有限责任公司 非易失性存储***及其读取方法
US20200066354A1 (en) * 2018-08-24 2020-02-27 International Business Machines Corporation Error recovery of data in non-volatile memory during read
CN110515760A (zh) * 2019-08-29 2019-11-29 北京计算机技术及应用研究所 一种基于机器学习的ldpc闪存纠错方法
CN110706735A (zh) * 2019-09-30 2020-01-17 中国科学院微电子研究所 一种NAND Flash存储器读阈值电压修复方法
CN111863098A (zh) * 2020-07-30 2020-10-30 深圳大普微电子科技有限公司 一种读操作处理方法、装置及可读存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022134712A1 (zh) * 2020-12-23 2022-06-30 深圳大普微电子科技有限公司 一种阈值电压的管理方法、读取闪存数据的方法
CN113595562A (zh) * 2021-07-23 2021-11-02 深圳宏芯宇电子股份有限公司 软数据处理方法、装置、存储介质及解码器
CN114138190A (zh) * 2021-11-19 2022-03-04 北京得瑞领新科技有限公司 闪存设备的数据读取方法、装置、存储介质及闪存设备
CN114296645A (zh) * 2021-12-17 2022-04-08 合肥大唐存储科技有限公司 一种Nand闪存中重读方法和固态硬盘
CN114296645B (zh) * 2021-12-17 2024-01-02 合肥大唐存储科技有限公司 一种Nand闪存中重读方法和固态硬盘
CN114049910A (zh) * 2022-01-13 2022-02-15 深圳华电通讯有限公司 一种nand重读档位的换挡方法、***及相关组件
CN114049910B (zh) * 2022-01-13 2022-04-22 深圳华电通讯有限公司 一种nand重读档位的换档方法、***及相关组件
CN115620760A (zh) * 2022-09-16 2023-01-17 上海江波龙数字技术有限公司 一种最优读出阈值电压的搜索方法、终端及存储介质
CN115620760B (zh) * 2022-09-16 2023-10-20 上海江波龙数字技术有限公司 一种最优读出阈值电压的搜索方法、终端及存储介质
CN116954524A (zh) * 2023-09-20 2023-10-27 深圳市爱普特微电子有限公司 一种抗干扰的flash数据读取方法及装置

Also Published As

Publication number Publication date
CN112562766B (zh) 2024-08-09

Similar Documents

Publication Publication Date Title
US11386952B2 (en) Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell
US11334413B2 (en) Estimating an error rate associated with memory
CN112562766B (zh) 一种重读管理方法、固态硬盘控制器及固态硬盘
US9047972B2 (en) Methods, devices, and systems for data sensing
US11158386B2 (en) Memory system for interference compensation and operating method thereof
JP2018163707A (ja) 半導体記憶装置及びそのリード制御方法
US9430159B2 (en) Non-volatile memory devices and controllers
US20230187002A1 (en) Storage controller using history data, method of operating the same, and method of operating storage device including the same
CN115810386A (zh) 闪存块的寿命预测方法、闪存设备及存储介质
CN112558883B (zh) 一种数据存储管理方法、固态硬盘控制器及固态硬盘
CN112527550A (zh) 存储装置重读表的生成方法、测试装置以及存储介质
CN112562772A (zh) 自适应低密度奇偶校验硬解码器
US11869584B2 (en) Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell
US11934266B2 (en) Memory compaction management in memory devices

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
CB02 Change of applicant information

Country or region after: China

Address after: 518000 3501, venture capital building, No. 9, Tengfei Road, huanggekeng community, Longcheng street, Longgang District, Shenzhen, Guangdong Province

Applicant after: Shenzhen Dapu Microelectronics Co.,Ltd.

Address before: 518000 room 503, block B, building 2, Tian'an digital new town, Huangge North Road, Longcheng street, Longgang District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN DAPU MICROELECTRONICS Co.,Ltd.

Country or region before: China

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20240710

Address after: 215000, A601, Guohua Building, No. 328 Xinghu Street, Suzhou Industrial Park, Suzhou Area, China (Jiangsu) Pilot Free Trade Zone, Suzhou City, Jiangsu Province (This address is not allowed for retail)

Applicant after: Suzhou Dapu Microelectronics Technology Co.,Ltd.

Country or region after: China

Address before: 518000 3501, venture capital building, No. 9, Tengfei Road, huanggekeng community, Longcheng street, Longgang District, Shenzhen, Guangdong Province

Applicant before: Shenzhen Dapu Microelectronics Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right
GR01 Patent grant