电压调整方法、存储器控制电路单元以及存储器存储装置

文档序号:1536689 发布日期:2020-02-14 浏览:17次 >En<

阅读说明:本技术 电压调整方法、存储器控制电路单元以及存储器存储装置 (Voltage adjusting method, memory control circuit unit and memory storage device ) 是由 林纬 许佑诚 郭才豪 陈思玮 欧沥元 林晓宜 于 2018-08-01 设计创作,主要内容包括:本发明提供一种电压调整方法、存储器控制电路单元以及存储器存储装置。所述方法包括:读取第一物理程序化单元组中的第一物理程序化单元以获得第一数据;根据对应第一数据的第一错误检查与校正码对第一数据进行校正以获得第一校正后数据;读取第一物理程序化单元组中的第二物理程序化单元以获得第二数据;根据第一数据、第一校正后数据以及第二数据将用于读取第一存储单元的第一读取电压调整为第二读取电压。(The invention provides a voltage adjusting method, a memory control circuit unit and a memory storage device. The method comprises the following steps: reading a first physical programming unit in the first physical programming unit group to obtain first data; correcting the first data according to a first error check and correction code corresponding to the first data to obtain first corrected data; reading a second physical programming unit in the first physical programming unit group to obtain second data; and adjusting the first reading voltage for reading the first storage unit to be a second reading voltage according to the first data, the first corrected data and the second data.)

电压调整方法、存储器控制电路单元以及存储器存储装置

技术领域

本发明涉及一种电压调整方法、存储器控制电路单元以及存储器存储装置。

背景技术

数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。

一般来说,在使用一读取电压从可复写式非易失性存储器模块中读取数据时,存储器管理电路可以对所读取出的数据进行解码以取得所欲读取的数据。然而,当解码失败时,存储器管理电路会执行重新读取(Retry-Read)机制以重新取得另一读取电压,并用此另一读取电压来进行读取以重新取得读取出的数据并进行解码。存储器管理电路702会根据重新取得的验证比特来执行上述的解码操作以取得由多个解码比特组成的另一解码后的数据。而上述重新取得读取电压来进行重新读取的机制可以反复地被执行直到次数超过预设次数为止。

特别是,通过上述重新读取的机制,可以找到用于读取位于同一字线上的多个存储单元的最佳读取电压,而此最佳读取电压可以用来读取出前述多个存储单元的数据并且成功地解码该些数据。然而需注意的是,用于读取位于一字线上的存储单元的最佳读取电压可能不适用于读取位于另一字线上的存储单元。换句话说,读取位于一字线上的存储单元的最佳读取电压可能不是用于读取位于另一字线上的存储单元的最佳读取电压。而在决定用于读取位于一字线上的最佳读取电压时所使用的多个重新读取电压的使用顺序也可能不适用于决定用于读取位于另一字线上的最佳读取电压。因此一般来说,决定最佳读取电压的过程通常会造成存储器控制器的效能的降低。因此,如何快速地找到用于读取存储单元的最佳读取电压,是本领域技术人员所欲解决的问题之一。

发明内容

本发明提供一种电压调整方法、存储器控制电路单元以及存储器存储装置,可以有效率地计算出用于读取存储单元的最佳读取电压以供后续的读取使用,藉此提高成功解码的机率并且降低重新读取的次数,能够有效地提升存储器控制器的执行效能。

本发明提供一种电压调整方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个存储单元,所述多个存储单元被配置于多个字线与多个位线的交错处,其中所述多个字线包括一第一字线,且位于所述第一字线上的所述多个存储单元中的多个第一存储单元形成一第一物理程序化单元组,所述电压调整方法包括:读取所述第一物理程序化单元组中的第一物理程序化单元以获得第一数据;根据对应所述第一数据的第一错误检查与校正码对所述第一数据进行校正以获得第一校正后数据;读取所述第一物理程序化单元组中的至少一第二物理程序化单元以获得第二数据;根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的一第一读取电压调整为第二读取电压。

在本发明的一实施例中,其中所述多个存储单元中的每一个存储单元具有多个存储状态的其中之一,其中根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电压调整为所述第二读取电压的步骤包括:对所述第一数据以及所述第一校正后数据执行互斥或运算以获得第三数据,其中所述第三数据具有多个比特且所述多个比特中的每一个比特对应至所述多个第一存储单元的其中之一。

在本发明的一实施例中,其中根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电调整为所述第二读取电压的步骤还包括:当所述第三数据的所述多个比特中的至少一第一比特为第一数值且所述第一比特所对应的所述多个第一存储单元中的至少一第二存储单元的存储状态为所述多个存储状态中的第一存储状态时,判断所述第二存储单元在存储状态分部图中位于第一错误区间;以及当所述第三数据的所述多个比特中的至少一第二比特为所述第一数值且所述第二比特所对应的所述多个第一存储单元中的至少一第三存储单元的存储状态为所述多个存储状态中的第二存储状态时,判断所述第三存储单元在所述存储状态分部图中位于第二错误区间。

在本发明的一实施例中,其中在所述存储状态分布图中,所述第一存储状态相邻于所述第二存储状态,位于所述第一错误区间的所述第二存储单元是属于所述第二存储状态而所述第二存储单元是根据所述第一读取电压被识别为所述第一存储状态,以及位于所述第二错误区间的所述第三存储单元是属于所述第一存储状态而所述第三存储单元是根据所述第一读取电压被识别为所述第二存储状态。

在本发明的一实施例中,其中根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电压调整为所述第二读取电压的步骤还包括:计算位于所述第一错误区间的所述第二存储单元的第一数量;计算位于所述第二错误区间的所述第三存储单元的第二数量;当所述第一数量大于所述第二数量时,将所述第一读取电压调整至所述第二读取电压以使得所述第二读取电压小于所述第一读取电压;以及当所述第一数量小于所述第二数量时,将所述第一读取电压调整至所述第二读取电压以使得所述第二读取电压大于所述第一读取电压。

在本发明的一实施例中,其中根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电压调整为所述第二读取电压的步骤之后,所述方法还包括:记录所述第二读取电压;以及当读取所述多个第一存储单元时,使用所述第二读取电压读取所述第一存储单元。

在本发明的一实施例中,所述方法还包括:根据对应所述第二数据的至少一第二错误检查与校正码对所述第二数据进行校正以获得至少一第二校正后数据;以及根据所述第一数据、所述第二数据以及所述第二校正后数据将用于读取所述多个第一存储单元的第三读取电压调整为第四读取电压。

本发明提供一种存储器控制电路单元,用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个存储单元,所述多个存储单元被配置于多个字线与多个位线的交错处,其中所述多个字线包括第一字线,且位于所述第一字线上的所述多个存储单元中的多个第一存储单元形成第一物理程序化单元组。所述存储器控制电路单元包括:主机接口、存储器接口以及存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至所述可复写式非易失性存储器模块。存储器管理电路电性连接至所述主机接口以及所述存储器接口。存储器管理电路用以执行下述运作:读取所述第一物理程序化单元组中的第一物理程序化单元以获得第一数据;根据对应所述第一数据的第一错误检查与校正码对所述第一数据进行校正以获得第一校正后数据;读取所述第一物理程序化单元组中的至少一第二物理程序化单元以获得第二数据;根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的第一读取电压调整为第二读取电压。

在本发明的一实施例中,其中所述多个存储单元中的每一个存储单元具有多个存储状态的其中之一,其中在根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电压调整为所述第二读取电压的运作中,所述存储器管理电路还用以执行下述运作:对所述第一数据以及所述第一校正后数据执行一互斥或运算以获得一第三数据,其中所述第三数据具有多个比特且所述多个比特中的每一个比特对应至所述多个第一存储单元的其中之一。

在本发明的一实施例中,其中在根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电调整为所述第二读取电压的运作中,当所述第三数据的所述多个比特中的至少一第一比特为第一数值且所述第一比特所对应的所述多个第一存储单元中的至少一第二存储单元的存储状态为所述多个存储状态中的第一存储状态时,所述存储器管理电路还用以判断所述第二存储单元在存储状态分部图中位于第一错误区间,以及当所述第三数据的所述多个比特中的至少一第二比特为所述第一数值且所述第二比特所对应的所述多个第一存储单元中的至少一第三存储单元的存储状态为所述多个存储状态中的第二存储状态时,所述存储器管理电路还用以判断所述第三存储单元在所述存储状态分部图中位于第二错误区间。

在本发明的一实施例中,其中在所述存储状态分布图中,所述第一存储状态相邻于所述第二存储状态,位于所述第一错误区间的所述第二存储单元是属于所述第二存储状态而所述第二存储单元是根据所述第一读取电压被识别为所述第一存储状态,以及位于所述第二错误区间的所述第三存储单元是属于所述第一存储状态而所述第三存储单元是根据所述第一读取电压被识别为所述第二存储状态。

在本发明的一实施例中,其中在根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电压调整为所述第二读取电压的运作中,所述存储器管理电路还用以执行下述运作:计算位于所述第一错误区间的所述第二存储单元的第一数量;计算位于所述第二错误区间的所述第三存储单元的一第二数量;当所述第一数量大于所述第二数量时,将所述第一读取电压调整至所述第二读取电压以使得所述第二读取电压小于所述第一读取电压;以及当所述第一数量小于所述第二数量时,将所述第一读取电压调整至所述第二读取电压以使得所述第二读取电压大于所述第一读取电压。

在本发明的一实施例中,其中在根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电压调整为所述第二读取电压的运作之后,所述存储器管理电路还用以执行下述运作:记录所述第二读取电压,以及当读取所述多个第一存储单元时,使用所述第二读取电压读取所述第一存储单元。

在本发明的一实施例中,所述存储器管理电路还用以执行下述运作:根据对应所述第二数据的至少一第二错误检查与校正码对所述第二数据进行校正以获得至少一第二校正后数据;根据所述第一数据、所述第二数据以及所述第二校正后数据将用于读取所述多个第一存储单元的第三读取电压调整为第四读取电压。

本发明提供一种存储器存储装置,包括连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块包括多个存储单元,所述多个存储单元被配置于多个字线与多个位线的交错处,其中所述多个字线包括第一字线,且位于所述第一字线上的所述多个存储单元中的多个第一存储单元形成第一物理程序化单元组。存储器控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性存储器模块。存储器控制电路单元用以执行下述运作:读取所述第一物理程序化单元组中的第一物理程序化单元以获得第一数据;根据对应所述第一数据的第一错误检查与校正码对所述第一数据进行校正以获得第一校正后数据;读取所述第一物理程序化单元组中的至少一第二物理程序化单元以获得第二数据;根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的第一读取电压调整为第二读取电压。

在本发明的一实施例中,其中所述多个存储单元中的每一个存储单元具有多个存储状态的其中之一,其中在根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电压调整为所述第二读取电压的运作中,所述存储器控制电路单元还用以执行下述运作:对所述第一数据以及所述第一校正后数据执行互斥或运算以获得第三数据,其中所述第三数据具有多个比特且所述多个比特中的每一个比特对应至所述多个第一存储单元的其中之一。

在本发明的一实施例中,其中在根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电调整为所述第二读取电压的运作中,所述存储器控制电路单元还用以执行下述运作:当所述第三数据的所述多个比特中的至少一第一比特为第一数值且所述第一比特所对应的所述多个第一存储单元中的至少一第二存储单元的存储状态为所述多个存储状态中的第一存储状态时,判断所述第二存储单元在一存储状态分部图中位于第一错误区间;以及当所述第三数据的所述多个比特中的至少一第二比特为所述第一数值且所述第二比特所对应的所述多个第一存储单元中的至少一第三存储单元的存储状态为所述多个存储状态中的第二存储状态时,判断所述第三存储单元在所述存储状态分部图中位于第二错误区间。

在本发明的一实施例中,其中在所述存储状态分布图中,所述第一存储状态相邻于所述第二存储状态,位于所述第一错误区间的所述第二存储单元是属于所述第二存储状态而所述第二存储单元是根据所述第一读取电压被识别为所述第一存储状态,以及位于所述第二错误区间的所述第三存储单元是属于所述第一存储状态而所述第三存储单元是根据所述第一读取电压被识别为所述第二存储状态。

在本发明的一实施例中,其中根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电压调整为所述第二读取电压的运作中,所述存储器控制电路单元还用以执行下述运作:计算位于所述第一错误区间的所述第二存储单元的第一数量;计算位于所述第二错误区间的所述第三存储单元的第二数量;当所述第一数量大于所述第二数量时,将所述第一读取电压调整至所述第二读取电压以使得所述第二读取电压小于所述第一读取电压;以及当所述第一数量小于所述第二数量时,将所述第一读取电压调整至所述第二读取电压以使得所述第二读取电压大于所述第一读取电压。

在本发明的一实施例中,其中在根据所述第一数据、所述第一校正后数据以及所述第二数据将用于读取所述多个第一存储单元的所述第一读取电压调整为所述第二读取电压的运作之后,所述存储器控制电路单元还用以执行下述运作:记录所述第二读取电压;以及当读取所述多个第一存储单元时,使用所述第二读取电压读取所述第一存储单元。

在本发明的一实施例中,所述存储器控制电路单元还用以执行下述运作:根据对应所述第二数据的至少一第二错误检查与校正码对所述第二数据进行校正以获得至少一第二校正后数据;以及根据所述第一数据、所述第二数据以及所述第二校正后数据将用于读取所述多个第一存储单元的第三读取电压调整为第四读取电压。

基于上述,本发明的电压调整方法、存储器控制电路单元以及存储器存储装置可以有效率地计算出用于读取存储单元的最佳读取电压以供后续的读取使用,藉此提高成功解码的机率并且降低重新读取的次数,能够有效地提升存储器管理电路的效能。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。

图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。

图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。

图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。

图5是根据一范例实施例所示出的可复写式非易失性存储器模块的概要方块图。

图6是根据一范例实施例所示出的存储单元阵列的示意图。

图7是根据一范例实施例所示出存储于存储单元阵列中的写入数据所对应的栅极电压的统计分配图。

图8是根据一范例实施例所示出的从存储单元中读取数据的示意图。

图9是根据另一范例实施例所示出的从存储单元中读取数据的示意图。

图10是根据本范例实施例所示出的物理抹除单元的范例示意图。

图11是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。

图12是根据本发明的一范例实施例所示出的多框架编码的示意图。

图13是根据一范例实施例示出重新读取机制的示意图。

图14A至图14C是根据本发明第一范例实施例所示出调整读取电压的示意图。

图15A至图15C是根据本发明第二范例实施例所示出调整读取电压的示意图。

图16是根据一范例实施例所示出的电压调整方法的流程图。

图17是根据一范例实施例所示出的根据错误区间中的存储单元数量调整读取电压的方法的流程图。

附图标记说明

10:存储器存储装置

11:主机系统

110:系统总线

111:处理器

112:随机存取存储器

113:只读存储器

114:数据传输接口

12:输入/输出(I/O)装置

20:主机板

201:U盘

202:存储卡

203:固态硬盘

204:无线存储器存储装置

205:全球定位系统模块

206:网络接口卡

207:无线传输装置

208:键盘

209:屏幕

210:喇叭

32:SD卡

33:CF卡

34:嵌入式存储装置

341:嵌入式多媒体卡

342:嵌入式多芯片封装存储装置

402:连接接口单元

404:存储器控制电路单元

406:可复写式非易失性存储器模块

2202:存储单元阵列

2204:字线控制电路

2206:位线控制电路

2208:行解码器

2210:数据输入/输出缓冲器

2212:控制电路

502、C1~C8:存储单元

504:位线

506:字线

508:共用源极线

512:选择栅漏极晶体管

514:选择栅源极晶体管

LSB:最低有效比特

CSB:中间有效比特

MSB:最高有效比特

VA、VA1、VB、VC、VD、VE、VF、VG、1440~1444:读取电压

1301、1303、1305、1307、1309:物理程序化单元组

702:存储器管理电路

704:主机接口

706:存储器接口

708:错误检查与校正电路

710:缓冲存储器

712:电源管理电路

801(1)~801(r):位置

820:编码数据

810(0)~810(E):物理程序化单元

1410、1420:分布

1430:区域

G1:物理程序化单元组

LP1~LP2:下物理程序化单元

MP2:中物理程序化单元

UP1~UP2:上物理程序化单元

LX1、LX2:互斥或数据

700、701:区间

T1、T2:表格

S1601:读取第一物理程序化单元组中的第一物理程序化单元以获得第一数据,其中第一物理程序化单元组是由多个第一存储单元所组成的步骤

S1603:根据对应第一数据的第一错误检查与校正码对第一数据进行校正以获得第一校正后数据的步骤

S1605:读取第一物理程序化单元组中的第二物理程序化单元以获得第二数据的步骤

S1607:根据第一数据、第一校正后数据以及第二数据将用于读取第一存储单元的一第一读取电压调整为一第二读取电压的步骤

S1609:根据对应第二数据的第二错误检查与校正码对第二数据进行校正以获得第二校正后数据的步骤

S1611:根据第一数据、第二数据以及第二校正后数据将用于读取第一存储单元的一第三读取电压调整为一第四读取电压的步骤

S1701:对第一数据以及第一校正后数据执行互斥或运算以获得第三数据,其中第三数据具有多个比特且所述多个比特中的每一个比特对应至前述多个第一存储单元的其中之一的步骤

S1703:当第三数据的多个比特中的至少一第一比特为第一数值且前述第一比特所对应的所述多个第一存储单元中的至少一第二存储单元的存储状态为第一存储状态时,判断第二存储单元在存储状态分部图中位于第一错误区间的步骤

S1705:当第三数据的所述多个比特中的至少一第二比特为所述第一数值且前述第二比特所对应的所述多个第一存储单元中的至少一第三存储单元的存储状态为第二存储状态时,判断第三存储单元在存储状态分部图中位于第二错误区间的步骤

S1707:计算位于第一错误区间的第二存储单元的第一数量的步骤

S1709:计算位于第二错误区间的第三存储单元的第二数量的步骤

S1711:判断第一数量大于或小于第二数量的步骤

S1713:当第一数量大于第二数量时,将第一读取电压调整至第二读取电压以使得第二读取电压小于第一读取电压的步骤

S1715:当第一数量小于第二数量时,将第一读取电压调整至第二读取电压以使得第二读取电压大于第一读取电压的步骤

具体实施方式

一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。

图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。

请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccess memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆电性连接至系统总线(system bus)110。

在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10电性连接。例如,主机系统11可经由数据传输接口114将数据存储至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与I/O装置12电性连接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。

在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式电性连接至存储器存储装置10。存储器存储装置10可例如是U盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(Near FieldCommunication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110电性连接至全球定位系统(Global Positioning System,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。

在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄影机、通讯装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的SD卡32、CF卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded MMC,eMMC)341和/或嵌入式多芯片封装存储装置(embedded Multi ChipPackage,eMCP)342等各类型将存储器模块直接电性连接于主机系统的基板上的嵌入式存储装置。

图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。

请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。

在本范例实施例中,连接接口单元402是相容于串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级技术附件(Parallel Advanced TechnologyAttachment,PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral ComponentInterconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、安全数字(Secure Digital,SD)接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi MediaCard,MMC)接口标准、崁入式多媒体存储卡(Embedded Multimedia Card,eMMC)接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、嵌入式多芯片封装(embeddedMulti Chip Package,eMCP)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。

存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。

可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、复数阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。

可复写式非易失性存储器模块406中的存储单元是以阵列的方式设置。以下以二维阵列来对存储单元阵列进行说明。但是,在此须注意的是,以下范例实施例只是存储单元阵列的一种范例,在其他的范例实施例中,存储单元阵列的配置方式可以被调整以符合实务上的需求。

图5是根据一范例实施例所示出的可复写式非易失性存储器模块的概要方块图。图6是根据一范例实施例所示出的存储单元阵列的示意图。

请同时参照图5与图6,可复写式非易失性存储器模块406包括存储单元阵列2202、字线控制电路2204、位线控制电路2206、行解码器(column decoder)2208、数据输入/输出缓冲器2210与控制电路2212。

在本范例实施例中,存储单元阵列2202可包括用以存储数据的多个存储单元502、多个选择栅极漏极(select gate drain,SGD)晶体管512与多个选择栅源极(select gatesource,SGS)晶体管514、以及连接此些存储单元的多条位线504、多条字线506、与共用源极线508(如图6所示)。存储单元502是以阵列方式(或立体堆叠的方式)配置在位线504与字线506的交叉点上。当从存储器控制电路单元404接收到写入指令或读取指令时,控制电路2212会控制字线控制电路2204、位线控制电路2206、行解码器2208、数据输入/输出缓冲器2210来写入数据至存储单元阵列2202或从存储单元阵列2202中读取数据,其中字线控制电路2204用以控制施予至字线506的电压,位线控制电路2206用以控制施予至位线504的电压,行解码器2208依据指令中的列地址以选择对应的位线,并且数据输入/输出缓冲器2210用以暂存数据。

可复写式非易失性存储器模块406中的存储单元是以临界电压的改变来存储多比特(bits)。具体来说,每一个存储单元的控制栅极(control gate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,因而改变了存储单元的临界电压。此改变临界电压的程序也称为“把数据写入至存储单元”或“程序化存储单元”。随着临界电压的改变,存储单元阵列2202的每一存储单元具有多个存储状态。并且通过读取电压可以判断存储单元是属于哪一个存储状态,藉此取得存储单元所存储的比特。

图7是根据一范例实施例所示出存储于存储单元阵列中的写入数据所对应的栅极电压的统计分配图。

请参照图7,以MLC NAND型快闪存储器为例,随着不同的临界电压,每一存储单元具有4种存储状态,并且此些存储状态分别地代表"11"、"10"、"00"与"01"等比特。换言之,每一个存储状态包括最低有效比特(Least Significant Bit,LSB)以及最高有效比特(Most Significant Bit,MSB)。在本范例实施例中,存储状态(即,"11"、"10"、"00"与"01")中从左侧算起的第1个比特为LSB,而从左侧算起的第2个比特为MSB。因此,在此范例实施例中,每一存储单元可存储2个比特。必须了解的是,图7所示出的临界电压及其存储状态的对应仅为一个范例。在本发明另一范例实施例中,临界电压与存储状态的对应也可是随着临界电压越大而以"11"、"10"、"01"与"00"排列,或是其他排列。此外,在另一范例实施例中,也可定义从左侧算起的第1个比特为MSB,而从左侧算起的第2个比特为LSB。

在一个存储单元可以存储多个比特(例如,MLC或TLC NAND快闪存储器模块)的范例实施例中,属于同一条字线的物理程序化单元至少可被分类为下物理程序化单元与上物理程序化单元。例如,在MLC NAND快闪存储器模块中,一存储单元的最低有效比特(LeastSignificant Bit,LSB)是属于下物理程序化单元,并且此存储单元的最高有效比特(MostSignificant Bit,MSB)是属于上物理程序化单元。在一范例实施例中,下物理程序化单元也称为快页(fast page),而上物理程序化单元也称为慢页(slow page)。此外,在TLC NAND快闪存储器模块中,一存储单元的最低有效比特(Least Significant Bit,LSB)是属于下物理程序化单元,此存储单元的中间有效比特(Center Significant Bit,CSB)是属于中物理程序化单元,并且此存储单元的最高有效比特(Most Significant Bit,MSB)是属于上物理程序化单元。

图8是根据一范例实施例所示出的从存储单元中读取数据的示意图,其是以MLCNAND型快闪存储器为例。

请参照图8,存储单元阵列2202的存储单元的读取运作是通过施予读取电压VA~VC于控制栅极,通过存储单元通道的导通状态,来识别存储单元存储的数据。验证比特(VA)是用以指示施予读取电压VA时存储单元通道是否为导通;验证比特(VC)是用以指示施予读取电压VC时,存储单元通道是否为导通;验证比特(VB)是用以指示施予读取电压VB时,存储单元通道是否为导通。在此假设验证比特是“1”时表示对应的存储单元通道导通,而验证比特是“0”时表示对应的存储单元通道没有导通。如图8所示,通过验证比特(VA)~(VC)可以判断存储单元是处于哪一个存储状态,进而取得所存储的比特。

图9是根据另一范例实施例所示出的从存储单元中读取数据的示意图。

请参照图9,以一TLC NAND型快闪存储器为例,每一个存储状态包括左侧算起的第1个比特的最低有效比特LSB、从左侧算起的第2个比特的中间有效比特(CenterSignificant Bit,CSB)以及从左侧算起的第3个比特的最高有效比特MSB。在此范例中,依照不同的临界电压,存储单元具有8种存储状态(即,"111"、"110"、"100"、"101"、"001"、"000"、"010"与"011")。通过施加读取电压VA~VG于控制栅极,可以识别存储单元所存储的比特。

其中,值得说明的是,图9的8种存储状态的排列顺序,可依制造商的设计而订,非以本范例的排列方式为限。

此外,可复写式非易失性存储器模块406的存储单元会构成多个物理程序化单元,并且此些物理程序化单元会构成多个物理抹除单元。具体而言,图6中同一条字线上的存储单元会组成一或多个物理程序化单元。例如,若可复写式非易失性存储器模块406为MLCNAND型快闪存储器模块,则同一条字线与多条位线的交错处上的存储单元会构成2个物理程序化单元,也即上物理程序化单元与下物理程序化单元。而一个上物理程序化单元与一个下物理程序化单元可以统称为一物理程序化单元组。特别是,倘若欲读取的数据位于一物理程序化单元组的一下物理程序化单元时,可以采用如图8中的读取电压VA来识别此下物理程序化单元中每一比特的值。倘若欲读取的数据位于一物理程序化单元组的一上物理程序化单元时,可以采用如图8中读取电压VB与读取电压VC来识别此上物理程序化单元中每一比特的值。

或者,若可复写式非易失性存储器模块406为TLC NAND型快闪存储器模块,则同一条字线与多条位线的交错处上的存储单元会构成3个物理程序化单元,也即上物理程序化单元、中物理程序化单元与下物理程序化单元。而一个上物理程序化单元、一个中物理程序化单元与一个下物理程序化单元可以统称为一物理程序化单元组。特别是,倘若欲读取的数据位于一物理程序化单元组的一下物理程序化单元时,可以采用如图9中的读取电压VA来识别此下物理程序化单元中每一比特的值。倘若欲读取的数据位于一物理程序化单元组的一中物理程序化单元时,可以采用如图9中的读取电压VB与读取电压VC来识别此中物理程序化单元中每一比特的值。倘若欲读取的数据位于一物理程序化单元组的一上物理程序化单元时,可以采用如图9中的读取电压VD、读取电压VE、读取电压VF与读取电压VG来识别此上物理程序化单元中每一比特的值。

在本范例实施例中,物理程序化单元为程序化的最小单元。即,物理程序化单元为写入数据的最小单元。例如,物理程序化单元为物理页面(page)或是物理扇(sector)。若物理程序化单元为物理页面,则此些物理程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个物理扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码)。在本范例实施例中,数据比特区包含32个物理扇,且一个物理扇的大小为512字节(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的物理扇,并且每一个物理扇的大小也可以是更大或更小。另一方面,物理抹除单元为抹除的最小单位。也即,每一物理抹除单元含有最小数目之一并被抹除的存储单元。例如,物理抹除单元为物理区块(block)。

图10是根据本范例实施例所示出的物理抹除单元的范例示意图。

请参照图10,在本范例实施例中,假设一个物理抹除单元是由多个物理程序化单元组所组成,其中每个物理程序化单元组包括由排列在同一条字线上的数个存储单元所组成的下物理程序化单元、中物理程序化单元与上物理程序化单元。例如,在物理抹除单元中,属于下物理程序化单元的第0个物理程序化单元、属于中物理程序化单元的第1个物理程序化单元和属于上物理程序化单元的第2个物理程序化单元会被视为一个物理程序化单元组。类似地,第3、4、5个物理程序化单元会被视为一个物理程序化单元组,并且以此类推其他物理程序化单元也是依据此方式被区分为多个物理程序化单元组。

图11是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。

请参照图11,存储器控制电路单元404包括存储器管理电路702、主机接口704、存储器接口706及错误检查与校正电路708。

存储器管理电路702用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路702具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路702或任何包含于存储器控制电路单元404中的电路元件的操作时,等同于说明存储器控制电路单元404的操作。

在本范例实施例中,存储器管理电路702的控制指令是以固件型式来实作。例如,存储器管理电路702具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。

在另一范例实施例中,存储器管理电路702的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路702具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路702的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。

此外,在另一范例实施例中,存储器管理电路702的控制指令也可以一硬件型式来实作。例如,存储器管理电路702包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路702还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。

主机接口704是电性连接至存储器管理电路702并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口704来传送至存储器管理电路702。在本范例实施例中,主机接口704是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口704也可以是相容于PATA标准、IEEE 1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。

存储器接口706是电性连接至存储器管理电路702并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口706转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路702要存取可复写式非易失性存储器模块406,存储器接口706会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路702产生并且通过存储器接口706传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。

错误检查与校正电路708是电性连接至存储器管理电路702并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路702从主机系统11中接收到写入指令时,错误检查与校正电路708会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路702会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路702从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路708会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。

在一范例实施例中,存储器控制电路单元404还包括缓冲存储器710与电源管理电路712。

缓冲存储器710是电性连接至存储器管理电路702并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路712是电性连接至存储器管理电路702并且用以控制存储器存储装置10的电源。

在本范例实施例中,错误检查与校正电路708可以针对存储于同一个物理程序化单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个物理程序化单元中的数据进行多框架(multi-frame)编码。单框架编码与多框架编码可以分别采用低密度奇偶检查校正码(low density parity code,LDPC)、BCH码、回旋码(convolutional code)或涡轮码(turbo code)等编码算法的至少其中之一。或者,在一范例实施例中,多框架编码还可以采用里德-所罗门码(Reed-solomon codes,RS codes)算法或互斥或(XOR)算法。此外,在另一范例实施例中,更多未列于上的编码算法也可以被采用,在此便不赘述。根据所采用的编码算法,错误检查与校正电路708可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。

图12是根据本发明的一范例实施例所示出的多框架编码的示意图。

请参照图12,以编码物理程序化单元810(0)~810(E)所存储的数据来产生相对应的编码数据820为例,物理程序化单元810(0)~810(E)中的每一者所存储的至少部分数据可视为一个框架。在多框架编码中,是以每一个比特(或,字节)所在的位置为依据来对物理程序化单元810(0)~810(E)中的数据进行编码。例如,位于位置801(1)的比特b11、b21、…、bp1会被编码为编码数据820中的比特bo1,位于位置801(2)的比特b12、b22、…、bp2会被编码为编码数据820中的比特bo2;以此类推,位于位置801(r)的比特b1r、b2r、…、bpr会被编码为编码数据820中的比特bor。尔后,根据编码数据820即可对从物理程序化单元810(0)~810(E)中读取的数据进行解码,以尝试更正所读取的数据中可能存在的错误。

此外,在图12的另一范例实施例中,用于产生编码数据820的数据也可能包括物理程序化单元810(0)~810(E)所存储的数据中的数据比特(data bits)所对应的冗余比特(redundancy bits)。以物理程序化单元810(0)所存储的数据为例,其中的冗余比特例如是对存储于物理程序化单元810(0)中的数据比特进行单框架编码而产生的。在本范例实施例中,假设在读取物理程序化单元810(0)中的数据时,从物理程序化单元810(0)中读取出的数据可以先使用物理程序化单元810(0)中的冗余比特(例如,单框架编码的编码数据)来解码以进行错误侦测与更正。然而,当使用物理程序化单元810(0)中的冗余比特进行解码发生失败(例如,解码后物理程序化单元810(0)中所存储的数据的错误比特数大于一门槛值)时,可以使用重新读取(Retry-Read)机制尝试从物理程序化单元810(0)中读取出正确的数据。关于重新读取机制的细节请容后详述。而当无法通过重新读取(Retry-Read)机制从物理程序化单元810(0)中读取出正确的数据时,可以读取编码数据820以及物理程序化单元810(1)~810(E)的数据,并根据编码数据820以及物理程序化单元810(1)~810(E)的数据进行解码,以尝试更正物理程序化单元810(0)中所存储的数据中存在的错误。也就是说,在本范例实施例中,当使用单框架编码产生的编码数据进行解码发生失败以及使用重新读取(Retry-Read)机制进行读取发生失败时,会改用多框架编码产生的编码数据进行解码。

特别是,图13是根据一范例实施例示出重新读取机制的示意图。

请参照图13,在此以SLC快闪存储器为例,分布1410与分布1420是用来表示多个第一存储单元的存储状态,而分布1410与1420分别代表着不同的存储状态。这些第一存储单元可以属于同样的物理程序化单元或是不同的物理程序化单元,本发明并不在此限。在此假设当一个存储单元属于分布1410时,此存储单元所存储的是比特“1”;当存储单元属于分布1420时,此存储单元存储的是比特“0”。当存储器管理电路702以读取电压1440来读取存储单元时,存储器管理电路702会取得验证比特,其是用来指示此存储单元是否为导通。在此假设存储单元导通时验证比特是“1”,反之则是“0”,但本发明并不在此限。若此验证比特为“1”,则存储器管理电路702会判断此存储单元属于分布1410,反之则是分布1420。然而,分布1410与分布1420在区域1430中是重叠的。也就是说,有若干个存储单元应该是属于分布1410但被识别为分布1420,并且有若干个存储单元应该是属于分布1420但被识别为分布1410。

在此范例实施例中,当要读取这些存储单元时,存储器管理电路702会先选择一预设的读取电压(例如,读取电压1441)来读取这些存储单元以取得这些存储单元的验证比特。错误检查与校正电路708会根据这些存储单元的验证比特来执行解码操作,以产生多个解码比特,而此些解码比特可以组成一个解码后的数据(也称为,码字)。

若解码失败,表示这些存储单元存储有不可更正的错误比特。若解码失败,在重新读取机制中,存储器管理电路702会重新取得另一读取电压,并用此另一读取电压(例如读取电压1442)来读取这些第一存储单元,以重新取得存储单元的验证比特。存储器管理电路702会根据重新取得的验证比特来执行上述的解码操作以取得由多个解码比特组成的另一解码后的数据。在一范例实施例中,错误检查与校正电路708会根据该另一解码后的数据所对应的校验子判断所述另一解码后的数据是否为有效的码字。若所述另一解码后的数据非为有效的码字时,存储器管理电路702会判断解码失败。若重新取得读取电压的次数没有超过预设次数,则存储器管理电路702会再重新取得其他取得电压(例如,读取电压1443),并且根据重新取得的读取电压1443读取存储单元,以重新取得验证比特并执行第一解码操作。

换句话说,当有不可更正的错误比特时,通过重新取得读取电压,一些存储单元的验证比特会被改变,进而有机会改变解码操作的解码结果。逻辑上来说,上述重新取得读取电压的动作是要翻转(flip)一个码字中的若干比特,并对新的码字重新解码。在一些情况下,在翻转前无法解码的码字(有不可更正的错误比特),有可能在翻转后可以解码。并且,在一范例实施例中存储器管理电路702会尝试解码数次,直到尝试的次数超过预设次数为止。然而,本发明并不限制预设次数为多少。

值得注意的是,在图13中所举的是SLC快闪存储器的例子,但重新取得读取电压的步骤也可以适用于MLC或是TLC快闪存储器。如图8所示,改变读取电压VA会翻转一个存储单元的LSB,而改变读取电压VB或VC则可以翻转一个存储单元的MSB。因此,改变读取电压VA、VB或VC都可以将一个码字改变为另一个码字。改变码字的结果也适用于图9的TLC快闪存储器。本发明并不限制所使用的是SLC、MLC或是TLC快闪存储器。

通过上述重新读取的机制,可以找到用于读取位于同一字线上的多个存储单元的最佳读取电压,而此最佳读取电压可以用来读取出前述多个存储单元的数据并且成功地解码。特别是,最佳读取电压通常是会让如图13中应该是属于分布1410但被识别为分布1420的存储单元的数量相同于应该是属于分布1420但被识别为分布1410的存储单元的数量,而此最佳读取电压例如是图13中的读取电压1440。找出读取存储单元的最佳读取电压可以是在可复写式非易失性存储器模块406闲置时(或称为在背景时间中)执行,而所决定出的最佳读取电压可以用于之后对于可复写式非易失性存储器模块406的读取。然而需注意的是,用于读取位于一字线上的存储单元的最佳读取电压可能不适用于读取位于另一字线上的存储单元。换句话说,读取位于一字线上的存储单元的最佳读取电压可能不是用于读取位于另一字线上的存储单元的最佳读取电压。而在决定用于读取位于一字线上的最佳读取电压时所使用的多个重新读取电压的使用顺序也可能不适用于决定用于读取位于另一字线上的最佳读取电压。因此一般来说,决定最佳读取电压的过程通常会造成存储器管理电路702的效能的降低。

基于上述,本发明所提出的电压调整方法可以有效率地计算出用于读取存储单元的最佳读取电压以供后续的读取使用,藉此提高成功解码的机率并且降低重新读取的次数,能够有效地提升存储器管理电路702的效能。

以下以多个实施例来说明本发明所提出的电压调整方法。

[第一实施例]

第一范例实施例是以MLC NAND型快闪存储器模块为范例进行说明。类似于图8所示,随着不同的临界电压,每一存储单元具有4种存储状态,并且此些存储状态分别地代表"11"、"10"、"00"与"01"。而在图8中,存储器管理电路702是使用读取电压VA来区别存储状态"10"与"00"。而图14A至图14C的范例实施例主要用于调整读取电压VA至一最佳读取电压。然而本发明不限于此,在其他实施例中,相同的方法也可以应用于调整图8中的读取电压VB与读取电压VC至最佳读取电压。

图14A至图14C是根据本发明第一范例实施例所示出调整读取电压的示意图。

请同时参照图14A与图14B,假设可复写式非易失性存储器模块406中具有一物理程序化单元组G1,如图14A中的表格T1所示。物理程序化单元组G1(也称为,第一物理程序化单元组)具有下物理程序化单元LP1以及上物理程序化单元UP1。物理程序化单元组G1由位于同一字线(也称为,第一字线)上的存储单元C1~C8(也称为,第一存储单元)所构成。存储单元C1~C8的LSB可以组成下物理程序化单元LP1,存储单元C1~C8的MSB可以组成上物理程序化单元UP1。

在本范例实施例中,存储器管理电路702首先会读取物理程序化单元组G1中的下物理程序化单元LP1(也称为,第一物理程序化单元)以获得一第一数据。如表格T1所示,从下物理程序化单元LP1读取出的第一数据的值例如为“11100000”。

存储器管理电路702可以根据对应此第一数据的错误检查与校正码(也称为,第一错误检查与校正码)对第一数据进行校正以获得第一校正后数据(未示出)。第一校正后数据的值例如为“01010111”。需说明的是,前述第一错误检查与校正码例如是对下物理程序化单元LP1进行单框架编码所产生的编码数据。

此外,存储器管理电路702还会读取物理程序化单元组G1的上物理程序化单元UP1(也称为,第二物理程序化单元)以获得一第二数据。如表格T1所示,从上物理程序化单元UP1读取出的第二数据的值例如为“00100010”。之后,存储器管理电路702会根据前述第一数据、前述第一校正后数据以及前述第二数据将用于读取存储单元C1~C8的读取电压VA(也称为,第一读取电压)调整为读取电压VA1(也称为,第二读取电压)。特别是,在本范例实施例中,调整后的读取电压VA1是用于区别存储状态“10”与“00”的最佳读取电压。

更详细来说,在将读取电压VA调整为读取电压VA1的过程中,首先,存储器管理电路702会对第一数据以及第一校正后数据执行互斥或(XOR)运算以获得互斥或数据LX1(也称为,第三数据)。如表格T1所示,互斥或数据LX1的值例如为“10110111”。特别是,互斥或数据LX1具有8个比特且每一个比特是对应至一存储单元。例如,互斥或数据LX1的第1个比特是对应至存储单元C1,且存储单元C1目前的存储状态“10”;互斥或数据LX1的第2个比特是对应至存储单元C2,且存储单元C2目前的存储状态“10”;互斥或数据LX1的第3个比特是对应至存储单元C3,且存储单元C3目前的存储状态“11”,以此类推。

在互斥或数据LX1中,当一个比特的数值为“1”时,则代表该比特的数值所对应的存储单元在存储状态分部图中位于一错误区间中。更详细来说,请同时参考图14A与图14B,以互斥或数据LX1的第1个比特为例,由于互斥或数据LX1的第1个比特的数值为“1”,故代表存储单元C1实际上是属于图14B中的错误区间701(也称为,第一错误区间)中。其中,位于错误区间701的存储单元C1是属于存储状态“00”(也称为,第二存储状态),但存储单元C1却是根据读取电压VA被识别为存储状态“10”(也称为,第一存储状态)。再例如,以互斥或数据LX1的第4、6、8个比特为例,由于互斥或数据LX1的第4、6、8个比特的数值为“1”,故代表存储单元C4、存储单元C6与存储单元C8是属于图14B中的错误区间700(也称为,第二错误区间)中。其中,位于错误区间701的存储单元C4、存储单元C6与存储单元C8实际上是属于存储状态“10”,但存储单元C4、存储单元C6与存储单元C8却是根据读取电压VA被识别为存储状态“00”。在此,存储单元C1可以称为“第二存储单元”,而存储单元C4、存储单元C6与存储单元C8可以统称为“第三存储单元”。

此外,由于互斥或数据LX1的第2、5个比特的数值为“0”,故代表存储单元C2与存储单元C5并非位于错误区间中。也就是说,非位于错误区间的存储单元的存储状态是根据读取电压被正确地识别。由于互斥或数据LX1的第3个比特的数值为“1”,故代表存储单元C3是属于如图8的存储状态分布图中的某一个错误区间中。

在此以将用于区别存储状态“10”与“00”的读取电压VA调整至最佳的读取电压VA1为例,存储器管理电路702首先会计算位于所述错误区间701的前述第二存储单元的数量(也称为,第一数量)。在此,由于第二存储单元是包括存储单元C1,故第一数量为“1”。

存储器管理电路702还会计算位于错误区间700的前述第三存储单元的数量(也称为,第二数量)。在此,由于第三存储单元是包括存储单元C4、存储单元C6与存储单元C8,故第二数量为“3”。

接着,存储器管理电路702会根据前述的第一数量与第二数量将读取电压VA调整为读取电压VA1。更详细来说,在图14A与图14B的范例实施例中,第一数量(值为“1”)是小于第二数量(值为“3”),以图14B的存储状态分布图来看,可以将第一数量视为错误区间701的面积并且将第二数量视为错误区间700的面积。而存储器管理电路702会根据前述的第一数量与第二数量(或错误区间701与错误区间700的面积)将读取电压VA调整至读取电压VA1,以使读取电压VA1大于读取电压VA。读取电压VA1与读取电压VA可以相距X伏特。特别是,当之后存储器管理电路702使用读取电压VA1来读取存储单元C1~C8时,位于错误区间701中的存储单元的数量(例如,“2”)会相同于位于错误区间700中的存储单元的数量(例如,“2”)。换句话说,假设一个读取电压是位于两个错误区间之间,则当使用该读取电压来读取存储单元时若此两个错误区间中的存储单元的数量相同,则代表该读取电压为最佳的读取电压,而使用此最佳的读取电压所读取出的数据可以有较高解码成功的机率。

需说明的是,本发明是根据第一数量以及第二数量两者的比例来决定读取电压调整的幅度(即,前述的X伏特)。举例来说,存储器管理电路702例如可以预先存储第一数量以及第二数量两者的多种比例以及对应该些比例的读取电压调整的幅度的查找表。当存储器管理电路使用读取电压VA获得第一数量以及第二数量时,可以通过前述的查找表来得知读取电压调整的幅度(即,前述的X伏特)。在本范例实施例中,可以通过查表的方式,当第一数量小于第二数量时,可以将读取电压VA调整为大于读取电压VA的读取电压VA1;并且当第一数量大于第二数量时,可以将读取电压VA调整为小于读取电压VA的读取电压VA1。

然而本发明不限于此,在其他实施例中,存储器管理电路702也可以不使用查找表,而是当第一数量小于第二数量时,直接将读取电压VA调整为大于读取电压VA的另一读取电压VA1;并且当第一数量大于第二数量时,直接将读取电压VA调整为小于读取电压VA的另一读取电压VA1。

此外,图14C是以另一范例描述当第一数量大于第二数量时的情况。

详细来说,请参照图14C,假设通过前述方式所计算出的第一数量(例如,数值为“3”)是大于第二数量(例如,数值为“1”)时,则以图14C的存储状态分布图来看,错误区间701的面积是大于错误区间700的面积。而存储器管理电路702会根据前述的第一数量与第二数量(或错误区间701与错误区间700的面积)将读取电压VA调整至读取电压VA1,以使读取电压VA1小于读取电压VA。读取电压VA1与读取电压VA可以相距X伏特。特别是,当之后存储器管理电路702使用读取电压VA1来读取存储单元C1~C8时,位于错误区间701中的存储单元的数量(例如,“2”)会相同于位于错误区间700中的存储单元的数量(例如,“2”)。

在决定出最佳的读取电压VA1之后,存储器管理电路702可以记录读取电压VA1,并且之后当存储器管理电路702要读取存储单元C1~C8时,存储器管理电路702可以使用读取电压VA1而不使用读取电压VA来读取存储单元C1~C8藉以识别存储状态“10”与“00”。

特别是,虽然前述范例是用于调整如图8中的读取电压VA。然而本发明不限于此,在其他实施例中,存储器管理电路702也可以调整用于区别存储状态“11”与“10”的读取电压至一最佳读取电压,或者调整用于区别存储状态“00”与“01”的读取电压至一最佳读取电压。举例来说,类似于图14A至图14C的范例,存储器管理电路702例如可以根据对应上物理程序化单元UP1的前述第二数据的第二错误检查与校正码(未示出)对第二数据进行校正以获得第二校正后数据(未示出)。之后,存储器管理电路702会根据前述的第一数据、第二数据以及第二校正后数据将图8中用于读取存储单元C1~C8的读取电压VB或读取电压VC(统称为,第三读取电压)分别调整为最佳读取电压(在此称为,第四读取电压)。在决定出第四读取电压之后,存储器管理电路702可以记录此第四读取电压,并且之后当存储器管理电路702要读取存储单元C1~C8时,存储器管理电路702可以使用此第四读取电压来读取存储单元C1~C8藉以识别存储状态“11”与“10”(或者存储状态“00”与“01”)。

[第二实施例]

第二范例实施例是以TLC NAND型快闪存储器模块为范例进行说明。类似于图9所示,随着不同的临界电压,每一存储单元具有8种存储状态,并且此些存储状态分别地代表"111"、"110"、"100"、"101"、"001"、"000"、"010"与"011"。而在图9中,存储器管理电路702是使用读取电压VA来区别存储状态"101"与"001"。而图15A至图15C的范例实施例主要用于调整读取电压VA至一最佳读取电压。然而本发明不限于此,在其他实施例中,相同的方法也可以应用于分别调整图9中的读取电压VB~VG至最佳读取电压。

图15A至图15C是根据本发明第二范例实施例所示出调整读取电压的示意图。

请同时参照图15A与图15B,假设可复写式非易失性存储器模块406中具有一物理程序化单元组G2,如图15A中的表格T2所示。物理程序化单元组G2(也称为,第一物理程序化单元组)具有下物理程序化单元LP2、中物理程序化单元MP2以及上物理程序化单元UP2。物理程序化单元组G2由位于同一字线(也称为,第一字线)上的存储单元C1~C8(也称为,第一存储单元)所构成。存储单元C1~C8的LSB可以组成下物理程序化单元LP2,存储单元C1~C8的CSB可以组成中物理程序化单元MP2,存储单元C1~C8的MSB可以组成上物理程序化单元UP2。

在本范例实施例中,存储器管理电路702首先会读取物理程序化单元组G2中的下物理程序化单元LP2(也称为,第一物理程序化单元)以获得一第一数据。如表格T2所示,从下物理程序化单元LP2读取出的第一数据的值例如为“11101000”。

存储器管理电路702可以根据对应此第一数据的错误检查与校正码(也称为,第一错误检查与校正码)对第一数据进行校正以获得第一校正后数据(未示出)。第一校正后数据的值例如为“01011111”。需说明的是,前述第一错误检查与校正码例如是对下物理程序化单元LP2进行单框架编码所产生的编码数据。

此外,存储器管理电路702还会读取物理程序化单元组G1的中物理程序化单元MP2与上物理程序化单元UP2(统称为,第二物理程序化单元)以获得此些物理程序化单元中所存储的第二数据。如表格T2所示,从中物理程序化单元MP2读取出的数据的值例如为“00100000”,从上物理程序化单元UP2读取出的数据的值例如为“10011101”。之后,存储器管理电路702会根据前述第一数据、前述第一校正后数据以及前述第二数据将用于读取存储单元C1~C8的读取电压VA(也称为,第一读取电压)调整为读取电压VA1(也称为,第二读取电压)。特别是,在本范例实施例中,调整后的读取电压VA1是用于区别存储状态“101”与“001”的最佳读取电压。

更详细来说,在将读取电压VA调整为读取电压VA1的过程中,首先,存储器管理电路702会对第一数据以及第一校正后数据执行互斥或(XOR)运算以获得互斥或数据LX2(也称为,第三数据)。如表格T2所示,互斥或数据LX2的值例如为“10110111”。

在互斥或数据LX2中,当一个比特的数值为“1”时,则代表该比特的数值所对应的存储单元在存储状态分部图中位于一错误区间中。更详细来说,请同时参考图15A与图15B,以互斥或数据LX2的第1个比特为例,由于互斥或数据LX2的第1个比特的数值为“1”,故代表存储单元C1实际上是属于图15B中的错误区间701(也称为,第一错误区间)中。其中,位于错误区间701的存储单元C1是属于存储状态“001”(也称为,第二存储状态),但存储单元C1却是根据读取电压VA被识别为存储状态“101”(也称为,第一存储状态)。再例如,以互斥或数据LX2的第4、6、8个比特为例,由于互斥或数据LX2的第4、6、8个比特的数值为“1”,故代表存储单元C4、存储单元C6与存储单元C8是属于图15B中的错误区间700(也称为,第二错误区间)中。其中,位于错误区间700的存储单元C4、存储单元C6与存储单元C8实际上是属于存储状态“101”,但存储单元C4、存储单元C6与存储单元C8却是根据读取电压VA被识别为存储状态“001”。在此,存储单元C1可以称为“第二存储单元”,而存储单元C4、存储单元C6与存储单元C8可以统称为“第三存储单元”。

此外,由于互斥或数据LX2的第2、5个比特的数值为“0”,故代表存储单元C2与存储单元C5并非位于错误区间中。也就是说,非位于错误区间的存储单元的存储状态是根据读取电压被正确地识别。由于互斥或数据LX2的第3个比特的数值为“1”,故代表存储单元C3是属于如图9的存储状态分布图中的某一个错误区间中。

在此以将用于区别存储状态“101”与“001”的读取电压VA调整至最佳的读取电压VA1为例,存储器管理电路702首先会计算位于所述错误区间701的前述第二存储单元的数量(也称为,第一数量)。在此,由于第二存储单元是包括存储单元C1,故第一数量为“1”。

存储器管理电路702还会计算位于错误区间700的前述第三存储单元的数量(也称为,第二数量)。在此,由于第三存储单元是包括存储单元C4、存储单元C6与存储单元C8,故第二数量为“3”。

接着,存储器管理电路702会根据前述的第一数量与第二数量将读取电压VA调整为读取电压VA1。更详细来说,在图15A与图15B的范例实施例中,第一数量(值为“1”)是小于第二数量(值为“3”),以图15B的存储状态分布图来看,可以将第一数量视为错误区间701的面积并且将第二数量视为错误区间700的面积。而存储器管理电路702会根据前述的第一数量与第二数量(或错误区间701与错误区间700的面积)将读取电压VA调整至读取电压VA1,以使读取电压VA1大于读取电压VA。读取电压VA1与读取电压VA可以相距X伏特。特别是,当之后存储器管理电路702使用读取电压VA1来读取存储单元C1~C8时,位于错误区间701中的存储单元的数量(例如,“2”)会相同于位于错误区间700中的存储单元的数量(例如,“2”)。换句话说,假设一个读取电压是位于两个错误区间之间,则当使用该读取电压来读取存储单元时若此两个错误区间中的存储单元的数量相同,则代表该读取电压为最佳的读取电压,而使用此最佳的读取电压所读取出的数据可以有较高解码成功的机率。

需说明的是,本发明是根据第一数量以及第二数量两者的比例来决定读取电压调整的幅度(即,前述的X伏特)。举例来说,存储器管理电路702例如可以预先存储第一数量以及第二数量两者的多种比例以及对应该些比例的读取电压调整的幅度的查找表。当存储器管理电路使用读取电压VA获得第一数量以及第二数量时,可以通过前述的查找表来得知读取电压调整的幅度(即,前述的X伏特)。在本范例实施例中,可以通过查表的方式,当第一数量小于第二数量时,可以将读取电压VA调整为大于读取电压VA的读取电压VA1;并且当第一数量大于第二数量时,可以将读取电压VA调整为小于读取电压VA的读取电压VA1。

然而本发明不限于此,在其他实施例中,存储器管理电路702也可以不使用查找表,而是当第一数量小于第二数量时,直接将读取电压VA调整为大于读取电压VA的另一读取电压VA1;并且当第一数量大于第二数量时,直接将读取电压VA调整为小于读取电压VA的另一读取电压VA1。

此外,图15C是以另一范例描述当第一数量大于第二数量时的情况。

详细来说,请参照图15C,假设通过前述方式所计算出的第一数量(例如,数值为“3”)是大于第二数量(例如,数值为“1”)时,则以图15C的存储状态分布图来看,错误区间701的面积是大于错误区间700的面积。而存储器管理电路702会根据前述的第一数量与第二数量(或错误区间701与错误区间700的面积)将读取电压VA调整至读取电压VA1,以使读取电压VA1小于读取电压VA。读取电压VA1与读取电压VA可以相距X伏特。特别是,当之后存储器管理电路702使用读取电压VA1来读取存储单元C1~C8时,位于错误区间701中的存储单元的数量(例如,“2”)会相同于位于错误区间700中的存储单元的数量(例如,“2”)。

在决定出最佳的读取电压VA1之后,存储器管理电路702可以记录读取电压VA1,并且之后当存储器管理电路702要读取存储单元C1~C8时,存储器管理电路702可以使用读取电压VA1而不使用读取电压VA来读取存储单元C1~C8藉以识别存储状态“101”与“001”。

特别是,虽然前述范例是用于调整如图9中的读取电压VA。然而本发明不限于此,在其他实施例中,存储器管理电路702也可以分别调整读取电压VB~VG至最佳读取电压。举例来说,类似于图15A至图15C的范例,存储器管理电路702例如可以根据对应中物理程序化单元MP2的数据的与该数据对应的错误检查与校正码(未示出)对中物理程序化单元MP2的数据进行校正以获得校正后数据(未示出)。之后,存储器管理电路702会根据前述的第一数据、中物理程序化单元MP2的数据、上物理程序化单元UP2的数据以及中物理程序化单元MP2的数据的校正后数据将图9中用于读取存储单元C1~C8的读取电压VB或读取电压VC分别调整为最佳读取电压。或者,存储器管理电路702例如可以根据对应上物理程序化单元UP2的数据与该数据对应的错误检查与校正码(未示出)对上物理程序化单元UP2的数据进行校正以获得校正后数据(未示出)。之后,存储器管理电路702会根据前述的第一数据、中物理程序化单元MP2的数据、上物理程序化单元UP2的数据以及上物理程序化单元UP2的数据的校正后数据将图9中用于读取存储单元C1~C8的读取电压VD、读取电压VE、读取电压VF或读取电压VG分别调整为最佳读取电压。

图16是根据一范例实施例所示出的电压调整方法的流程图。

请参照图16,在步骤S1601中,存储器管理电路702读取第一物理程序化单元组中的第一物理程序化单元以获得第一数据。其中,第一物理程序化单元组是由多个第一存储单元所组成。在步骤S1603中,存储器管理电路702根据对应第一数据的第一错误检查与校正码对第一数据进行校正以获得第一校正后数据。在步骤S1605中,存储器管理电路702读取第一物理程序化单元组中的第二物理程序化单元以获得第二数据。在步骤S1607中,存储器管理电路702根据第一数据、第一校正后数据以及第二数据将用于读取第一存储单元的一第一读取电压调整为一第二读取电压。在步骤S1609中,存储器管理电路702根据对应第二数据的第二错误检查与校正码对第二数据进行校正以获得第二校正后数据。在步骤S1611中,存储器管理电路702根据第一数据、第二数据以及第二校正后数据将用于读取第一存储单元的一第三读取电压调整为一第四读取电压。

此外,存储器管理电路702可以记录前述的第二读取电压以及第四读取电压,并且当存储器管理电路702之后要再读取前述第一存储单元时,存储器管理电路702会使用前述的第二读取电压以及第四读取电压来读取第一存储单元。

图17是根据一范例实施例所示出的根据错误区间中的存储单元数量调整读取电压的方法的流程图。其中,图17的流程是用以详细描述图16中的步骤S1607。

请参照图17,在步骤S1701中,存储器管理电路702对第一数据以及第一校正后数据执行互斥或运算以获得第三数据,其中第三数据具有多个比特且所述多个比特中的每一个比特对应至前述多个第一存储单元的其中之一。在步骤S1703中,当第三数据的多个比特中的至少一第一比特为第一数值且前述第一比特所对应的所述多个第一存储单元中的至少一第二存储单元的存储状态为第一存储状态时,存储器管理电路702判断第二存储单元在存储状态分部图中位于第一错误区间。其中,位于第一错误区间的第二存储单元是属于第二存储状态而第二存储单元是根据第一读取电压被识别为第一存储状态。在步骤S1705中,当第三数据的所述多个比特中的至少一第二比特为所述第一数值且前述第二比特所对应的所述多个第一存储单元中的至少一第三存储单元的存储状态为第二存储状态时,存储器管理电路702判断第三存储单元在存储状态分部图中位于第二错误区间。其中,位于第二错误区间的第三存储单元是属于第一存储状态而第三存储单元是根据第一读取电压被识别为第二存储状态。在步骤S1707中,存储器管理电路702计算位于第一错误区间的第二存储单元的第一数量。在步骤S1709中,存储器管理电路702计算位于第二错误区间的第三存储单元的第二数量。在步骤S1711中,存储器管理电路702判断第一数量大于或小于第二数量。

当第一数量大于第二数量时,在步骤S1713中,存储器管理电路702将第一读取电压调整至第二读取电压以使得第二读取电压小于第一读取电压。

当第一数量小于第二数量时,在步骤S1715中,存储器管理电路702将第一读取电压调整至第二读取电压以使得第二读取电压大于第一读取电压。

综上所述,本发明的电压调整方法、存储器控制电路单元以及存储器存储装置可以有效率地计算出用于读取存储单元的最佳读取电压以供后续的读取使用,藉此提高成功解码的机率并且降低重新读取的次数,能够有效地提升存储器管理电路的效能。

虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定者为准。

46页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种移位寄存器和显示面板

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!