数据读取方法以及存储控制器与流程

文档序号:16744722发布日期:2019-01-28 13:24阅读:227来源:国知局
本发明涉及一种数据读取方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的数据读取方法以及存储控制器。
背景技术
::一般来说,在对可复写式非易失性存储器模块读取数据时,若页面读取失败的情况没有发生,系统会使用预设读取电压组或的前用过的最佳读取电压组来读取数据。直到读取失败的情况发生,系统(存储系统)才会不使用预设读取电压组或已用过的最佳电压,并且对应地调整读取电压组。换句话说,可复写式非易失性存储器模块的最佳读取电压组值并不会是固定的。然而,传统上调整读取电压组以获得最佳读取电压组来读取数据的作法是被动的,即,仅当读取失败的情况发生时,才使用不同电压值的读取电压组来重新读取数据,以由读取后的结果来找出最佳读取电压组。但是,上述的操作会导致多次的读取数据操作,进而严重影响数据读取的效率,降低数据存取的速度。特别是,若可复写式非易失性存储器模块为三维nand型快闪存储器模块且在间隔一段时间后才进行对其中的一实体单元读取数据,所读取数据的错误率会极高,并且导致数据所读取的数据不可被校正,进而发生数据读取错误。因此,如何主动地在读取数据的前,便找寻对应所欲读取数据的最佳读取电压组,以降低所读取数据的错误率且同时避免上述三维nand型快闪存储器模块的数据读取错误的问题,进而提升可复写式非易失性存储器模块的读取效率,是本领域人员研究的课题的一。技术实现要素:本发明提供一种数据读取方法以及存储控制器,可主动地根据可复写式非易失性存储器模块中对应读取指令的实体单元的信息来找寻最佳读取电压组,以读取数据,进而有效率地执行所述读取指令并且降低所读取的数据的错误率。本发明的一实施例提供适用于配置有可复写式非易失性存储器模块的存储装置的一种数据读取方法,其中所述可复写式非易失性存储器模块具有多个实体单元。所述方法包括从主机系统接收读取指令,其中所述读取指令用以指示读取目标数据;根据所述读取指令来识别所述可复写式非易失性存储器模块中存储所述目标数据的目标实体单元,并且识别所述目标实体单元的抹除次数值、第一时间戳记、第二时间戳记,其中所述第一时间戳记记录所述目标实体单元最后一次被写入的时间,并且所述第二时间戳记记录所述目标实体单元最后一次被读取的时间;以及根据所述目标实体单元的所述抹除次数值、所述第一时间戳记、所述第二时间戳记从不同的多个读取电压组中选择目标读取电压组,以使用所述目标读取电压组从所述目标实体单元读取所述目标数据。本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器,其中所述可复写式非易失性存储器模块具有多个实体单元。所述存储控制器包括连接接口电路、存储器接口控制电路、处理器、数据管理电路。连接接口电路用以电性连接至主机系统。存储器接口控制电路用以电性连接至所述可复写式非易失性存储器模块。处理器电性连接至所述连接接口电路及所述存储器接口控制电路。数据管理电路电性连接至所述处理器、所述连接接口电路及所述存储器接口控制电路。所述处理器用以从所述主机系统接收读取指令,其中所述读取指令用以指示读取一目标数据,其中所述处理器还用以根据所述读取指令来识别所述可复写式非易失性存储器模块中存储所述目标数据的目标实体单元,并且识别所述目标实体单元的抹除次数值、第一时间戳记、第二时间戳记,其中所述第一时间戳记记录所述目标实体单元最后一次被写入的时间,并且所述第二时间戳记记录所述目标实体单元最后一次被读取的时间,其中所述处理器还用以根据所述目标实体单元的所述抹除次数值、所述第一时间戳记、所述第二时间戳记从不同的多个读取电压组中选择目标读取电压组,以使用所述目标读取电压组从所述目标实体单元读取所述目标数据。基于上述,本发明实施例所提供的数据读取方法以及存储控制器,可根据所接收的读取指令来识别对应该读取指令的可复写式非易失性存储器模块中的一目标实体单元,并且识别目标实体单元的抹除次数值、第一时间戳记与第二时间戳记,以在执行一次读取操作的情况下,直接使用对应目标实体单元的状态的读取电压来从目标实体单元中读取目标数据,进而提升读取数据的效率与正确性。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。图2是根据本发明的一实施例所示出的数据读取方法的流程图。图3为根据本发明的一实施例所示出的选择目标读取电压组的流程图。图4为根据本发明的一实施例所示出的选择目标读取电压组的规则表。图5为根据本发明的一实施例所示出的临界电压分布与对应的读取电压的示意图。附图标记说明10:主机系统20:存储装置110、211:处理器120:主机存储器130:数据传输接口电路210:存储控制器212:数据传输管理电路213:存储器接口控制电路220:可复写式非易失性存储器模块230:连接接口电路s21、s23、s25:数据读取方法的流程步骤s31、s32、s33、s34、s35、s36、s37:选择目标读取电压组的流程步骤vs1、vs2、vs3、vs4、vs5、vs6、vs7、vs8:读取电压组x、y、z:门槛值v0’、v1’、v2’、v3’、v4’、v5’、v6’、v0”、v1”、v2”、v3”、v4”、v5”、v6”:读取电压vth:临界电压l:下页面的二进制位状态m:中页面的二进制位状态u:上页面的二进制位状态具体实施方式在本实施例中,存储装置包括可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)与存储装置控制器(也称,存储控制器或存储控制电路)。此外,存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储装置或从存储装置中读取数据。图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。请参照图1,主机系统(hostsystem)10包括处理器(processor)110、主机存储器(hostmemory)120及数据传输接口电路(datatransferinterfacecircuit)130。在本实施例中,数据传输接口电路130电性连接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130的间利用系统总线(systembus)彼此电性连接。存储装置20包括存储控制器(storagecontroller)210、可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)220及连接接口电路(connectioninterfacecircuit)230。其中,存储控制器210包括处理器211、数据管理电路(datatransfermanagementcircuit)212与存储器接口控制电路(memoryinterfacecontrolcircuit)213。在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230电性连接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式电性连接至存储装置20。存储装置20可例如是u盘、存储卡、固态硬盘(solidstatedrive,ssd)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(nearfieldcommunication,nfc)存储器存储装置、无线传真(wifi)存储器存储装置、蓝牙(bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,ibeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板也可以通过系统总线电性连接至全球定位系统(globalpositioningsystem,gps)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式i/o装置。在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(peripheralcomponentinterconnectexpress,pciexpress)标准的接口电路。并且,数据传输接口电路130与连接接口电路230的间是利用快速非易失性存储器接口标准(non-volatilememoryexpress,nvme)通讯协定来进行数据的传输。然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并行高级技术附件(paralleladvancedtechnologyattachment,pata)标准、电气和电子工程师协会(instituteofelectricalandelectronicengineers,ieee)1394标准、串行高级技术附件(serialadvancedtechnologyattachment,sata)标准、通用序列总线(universalserialbus,usb)标准、sd接口标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、存储棒(memorystick,ms)接口标准、多芯片封装(multi-chippackage)接口标准、多媒体存储卡(multimediacard,mmc)接口标准、emmc接口标准、通用快闪存储器(universalflashstorage,ufs)接口标准、emcp接口标准、cf接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于一包含存储控制器210的芯片外。在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(dynamicrandomaccessmemory,dram)、静态随机存取存储器(staticrandomaccessmemory,sram)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。存储控制器210用以执行以硬体型式或固体型式实作的多个逻辑闸或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。更详细来说,存储控制器210中的处理器211为具备运算能力的硬体,其用以控制存储控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在存储装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(centralprocessingunit,cpu)、微处理器(micro-processor)、或是其他可程序化的处理单元(microprocessor)、数字信号处理器(digitalsignalprocessor,dsp)、可程序化控制器、特殊应用积体电路(applicationspecificintegratedcircuits,asic)、可程序化逻辑装置(programmablelogicdevice,pld)或其他类似电路元件,本发明并不限于此。在一实施例中,存储控制器210还具有唯读存储器(未示出)及随机存取存储器(未示出)。特别是,此唯读存储器具有开机码(bootcode),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。的后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的实体存储单元中。在本实施例中,如上所述,存储控制器210还包括数据管理电路212与存储器接口控制电路213。应注意的是,存储控制器220各部件所执行的操作也可视为存储控制器220所执行的操作。其中,数据管理电路212电性连接至处理器211、存储器接口控制电路213与连接接口电路230。数据管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机系统10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个实体单元中读取数据,并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中(如,根据来自主机系统10的读取指令来进行读取操作)。在另一实施例中,数据管理电路212也可整合至处理器211中。以下会再配合多个图式与实施例来详细说明本发明中数据管理电路212的功能。存储器接口控制电路213用以接受处理器211的指示,配合数据管理电路212来进行对于可复写式非易失性存储器模块220的写入(也称,程序化,programming)操作、读取操作或抹除操作。举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个实体单元(也称,目标实体单元)中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压组电平或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。可复写式非易失性存储器模块220是电性连接至存储控制器210(存储器接口控制电路213)并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(singlelevelcell,slc)nand型快闪存储器模块(即,一个存储单元中可存储1个二进制位的快闪存储器模块)、多阶存储单元(multilevelcell,mlc)nand型快闪存储器模块(即,一个存储单元中可存储2个二进制位的快闪存储器模块)、三阶存储单元(triplelevelcell,tlc)nand型快闪存储器模块(即,一个存储单元中可存储3个二进制位的快闪存储器模块)、三维nand型快闪存储器模块(3dnandflashmemorymodule)或垂直nand型快闪存储器模块(verticalnandflashmemorymodule)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元是以阵列的方式设置。在本实施例中,可复写式非易失性存储器模块220的存储单元会构成多个实体程序化单元(也称,实体子单元),并且此些实体程序化单元会构成多个实体区块(也称,实体抹除单元或实体单元)。具体来说,同一条字元线(或同一个字元线层)上的存储单元会组成一或多个实体程序化单元。在本实施例中,是以实体子单元作为写入(程序化)数据的最小单位。实体单元为抹除的最小单位,即,每一实体单元含有最小数目的一并被抹除的存储单元。每一实体单元会具有多个实体子单元。实体子单元可为实体页面(page)或是实体扇(sector)。在本实施例中,实体子单元包括数据二进制位区与冗余(redundancy)二进制位区。数据二进制位区用以存储使用者数据,而冗余二进制位区用以存储系统数据。系统数据例如为错误更正码、错误检查码或元数据(metadata)。然而,本发明不限于此。例如,在另一实施例中,也可变化本实施例所述的数据传输方法,应用至以实体单元作为写入数据的最小存储单位的可复写式非易失性存储器模块220。应注意的是,在本实施例中,用以记录一实体单元的信息的系统数据可利用该实体单元中的一或多个实体子单元来记录,或是利用一个系统区中用以记录所有系统数据的特定实体单元的一或多个实体子单元来记录。在本实施例中,所述对应一实体单元的系统数据包括该实体单元的抹除次数值(programerasecycle,pec)、最后写入时间戳记(lastwritetimestamp,lwt)、最后读取时间戳记(lastreadtimestamp,lrt)等信息。所述时间戳记的大小(数值差异)可用来表示时间的先后顺序。本发明并不限定所述时间戳记的详细格式。更详细来说,每当处理器211对一实体单元进行抹除操作时,在完成所述抹除操作后,处理器211会对当前对应该实体单元的抹除次数值加1(如,抹除次数值会随着每次的抹除操作而从0开始累加)。即,抹除次数值可反映出其所对应的实体单元的被抹除的次数的总和。此外,每对实体单元执行一个抹除操作时,处理器211会重置所述实体单元的最后写入时间戳记(也称,第一时间戳记),如,在完成所述抹除操作时,第一时间戳记的值被记录为当前时间(即,完成所述抹除操作的本地时间)。并且,每对所述实体单元执行写入操作时,处理器211会更新所述实体单元的第一时间戳记为所述实体单元执行所述写入操作的时间。即,对应一实体单元的第一时间戳记用以表示所述实体单元最后一次被执行写入操作的时间(如,完成最后一次写入操作的本地时间)。所述写入操作例如是程序化数据至所述实体单元的一或多个实体子单元,或例如是程序化数据至所述实体单元的其他型态的实体地址。相似地,每对一实体单元执行一个抹除操作时,处理器211会重置所述实体单元的最后读取时间戳记(也称,第二时间戳记)为当前时间。即,在完成所述抹除操作时,第二时间戳记的值被记录为当前时间(即,完成所述抹除操作的本地时间)。并且,每对所述实体单元执行读取操作时,处理器211会更新所述实体单元的第二时间戳记为所述实体单元执行所述读取操作的时间。即,对应一实体单元的第二时间戳记用以表示所述实体单元最后一次被执行读取操作的时间(如,完成最后一次读取操作的本地时间)。所述读取操作例如是从所述实体单元的一或多个实体子单元读取数据,或例如是从所述实体单元的其他型态的一或多个实体地址中读取数据。在以下实施例中,是以一个实体区块作为一个实体单元的范例。然而,在另一实施例中,一个实体单元也可以是指任意数目的存储单元组成,视实务上的需求而定。此外,必须了解的是,当存储控制器211对可复写式非易失性存储器模块220中的存储单元(或实体单元)进行分组以执行对应的管理操作时,此些存储单元(或实体单元)是被逻辑地分组,而其实际位置并未更动。存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10是通过所配置的逻辑单元来存取存储在多个实体单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(logicalblock)、逻辑页面(logicalpage)或是逻辑扇区(logicalsector)。一个逻辑单元可以是映射至一或多个实体单元,其中实体单元可以是一或多个实体地址、一或多个实体扇、一或多个实体程序化单元或者一或多个实体抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。此外,存储控制器210会建立逻辑转实体地址映射表(logicaltophysicaladdressmappingtable)与实体转逻辑地址映射表(physicaltologicaladdressmappingtable),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与实体单元(如,实体抹除单元、实体程序化单元、实体扇区)的间的映射关系。换言的,存储控制器210可通过逻辑转实体地址映射表来查找一逻辑单元所映射的实体单元,并且存储控制器210可通过实体转逻辑地址映射表来查找一实体单元所映射的逻辑单元。然而,上述有关逻辑单元与实体单元映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。在一实施例中,存储控制器210还包括缓冲存储器与电源管理电路。缓冲存储器是电性连接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器中存取所述数据、指令或系统数据。电源管理电路是电性连接至处理器211并且用以控制存储装置20的电源。图2是根据本发明的一实施例所示出的数据读取方法的流程图。请同时参照图1与图2,在步骤s21中,处理器211从主机系统10接收读取指令,其中所述读取指令用以指示读目标数据。详细来说,当处理器211接收到所述读取指令时,处理器211会根据所述读取指令获得存储目标数据的逻辑地址,并且根据逻辑转实体地址映射表来获得可复写式非易失性存储器模块中存储目标数据的实体地址。接着,在步骤s23中,处理器211根据所述读取指令来识别所述可复写式非易失性存储器模块中存储所述目标数据的目标实体单元,并且识别所述目标实体单元的抹除次数值、第一时间戳记、第二时间戳记。如上所述,处理器211可根据读取指令来获得对应所述读取指令的实体地址(即,存储目标数据的实体地址)。此外,处理器211可识别所述实体地址是位于哪个实体单元中,即,处理器211可识别所述实体地址所属的实体单元,并且此实体单元(也称,目标实体单元)为存储目标数据的实体单元。接着,在识别出目标实体单元后,处理器211可读取对应目标实体单元的系统数据,以识别(获得)所述目标实体单元的抹除次数值、第一时间戳记与第二时间戳记。在步骤s25中,处理器211根据所述目标实体单元的所述抹除次数值、所述第一时间戳记、所述第二时间戳记从不同的多个读取电压组中选择目标读取电压组,以使用所述目标读取电压组从所述目标实体单元读取所述目标数据。以下会配合图3来详细说明步骤s25的细节。应说明的是,在本实施例中,是以三维三阶存储单元nand型快闪存储器模块(3dtlcnandflashmemorymodule)为例子来进行说明。图3为根据本发明的一实施例所示出的选择目标读取电压组的流程图。在获得所述目标实体单元的所述抹除次数值、所述第一时间戳记、所述第二时间戳记后,处理器211会将当前时间减去第一时间戳记所获得的差值作为第一时间值,并且将当前时间减去第二时间戳记所获得的差值作为第二时间值。所述当前时间指处理器211接收且执行所述读取指令的目前的本地时间。也就是说,所述第一时间值(也称,保存时间)可用以表示目标实体单元距离的前的最后一次写入操作的时间长度,所述第二时间值(也称,读取间隔时间)可用以表示目标实体单元距离的前的最后一次读取操作的时间长度。接着,处理器211经由比较目标实体单元的抹除次数值与抹除次数门槛值、比较第一时间值与第一时间门槛值、比较第二时间值与第二时间门槛值来从多个读取电压组中选择目标读取电压组,其中第一时间门槛值大于第二时间门槛值。更详细来说,处理器211会根据目标实体单元的抹除次数值、第一时间值与第二时间值来从8个读取电压组(如,第一读取电压组vs1、第二读取电压组vs2、第三读取电压组vs3、第四读取电压组vs4、第五读取电压组vs5、第六读取电压组vs6、第七读取电压组vs7、第八读取电压组vs8)中选择其中一组作为目标读取电压组。此外,由于图3是利用三维三阶存储单元nand型快闪存储器模块(3dtlcnandflashmemorymodule)为例子来进行说明,因此,为了读取存储在三阶存储单元的数据,所选择的读取电压组会包含7个不同的电压值(也称,读取电压值),并且处理器211可使用所述7个不同的读取电压值来从三维三阶存储单元nand型快闪存储器模块的存储单元中读取数据。请参照图3,举例来说,在步骤s31中,处理器211判断目标实体单元的抹除次数值是否小于抹除次数门槛值。厂商可根据可复写式非易失性存储器模块的规格或是物理特性来预先设定所述抹除次数门槛值。若判定目标实体单元的抹除次数值小于抹除次数门槛值,如,目标实体单元的损耗并没有到达一定的磨损程度(每一次的抹除操作皆会造成实体单元的磨损),在步骤s32中,处理器211会判断目标实体单元的第一时间值是否小于第一时间门槛值(也称,保存时间门槛值)。换言的,处理器211可藉此判断已经被写入于目标实体单元中的数据的保存时间是否大于或等于一定的保存时间(即,保存时间门槛值)。若判定目标实体单元的第一时间值不小于第一时间门槛值,在步骤s34中,处理器211判断目标实体单元的第二时间值是否小于第二时间门槛值(也称,读取间隔时间门槛值)。换言的,处理器211可藉此判断距离前次对目标实体单元所进行的读取操作的时间是否大于或等于一定的读取间隔时间(即,读取间隔时间门槛值)。若判定目标实体单元的第二时间值小于第二时间门槛值,处理器211会从多个读取电压组中选择第三读取电压组vs3作为目标读取电压组(即,步骤s34→是→vs3)。反的,在步骤s34中,若判定目标实体单元的第二时间值不小于第二时间门槛值,处理器211会从多个读取电压组中选择第四读取电压组vs3作为目标读取电压组(即,步骤s34→否→vs4)应注意的是,在本实施例中,由于前一次的写入操作与当前欲进行的本次读取操作的间的时间间隔(如,第一时间值)也会影响本次读取操作所读取的数据的正确性。因此,当第一时间值小于第一时间门槛值时,本实施例也会对此小于第一时间门槛值的第一时间值来进行考量,即,判断小于第一时间门槛值的第一时间值是否小于第二时间门槛值。举例来说,若第一时间值小于第二门槛值,此在本次读取操作的前的最后一次的写入操作,也会使本次的读取操作不发生首次读取现象(下文会详述首次读取现象的细节),进而使处理器211可采用不针对首次读取现象而调整的读取电压组来进行当前要进行的读取操作。因此,在第一时间值小于第一时间门槛值的情况下,处理器211更会去判断第一时间值是否小于第二时间门槛值,以判断应选择的读取电压组。例如,若在步骤s32中,处理器211判定目标实体单元的第一时间值小于第一时间门槛值,接续至步骤s35,处理器211会判断目标实体单元的第一时间值或第二时间值是否小于第二时间门槛值。若目标实体单元的第一时间值小于第二时间门槛值,或是目标实体单元的第二时间值是否小于第二时间门槛值(即,第一时间值或第二时间值的其中的一小于第二时间门槛值),处理器211会从多个读取电压组中选择第一读取电压组vs1作为目标读取电压组(即,步骤s35→是→vs1)。反的,在步骤s35中,若目标实体单元的第一时间值与第二时间值皆不小于第二时间门槛值,处理器211会从多个读取电压组中选择第二读取电压组vs2作为目标读取电压组(即,步骤s35→否→vs2)。依此类推,经由步骤s31~s37,处理器211可根据目标实体单元的抹除次数值、第一时间值与第二时间值(以及用以比较的抹除次数门槛值、第一时间门槛值与第二时间门槛值)来从多个读取电压组vs1~vs8中决定(选择)其中的一来作为对应所述目标实体单元的状态的目标读取电压组。接着,决定好目标读取电压组后,处理器211便可直接使用所判定(所选择)的目标读取电压组从所述目标实体单元读取所述目标数据。即,处理器211可直接使用目标读取电压组中的多个读取电压值来从所述目标实体单元读取所述目标数据。如此一来,处理器211可直接选择适合的读取电压来正确地读取数据,并且处理器211可不需要因为所读取数据的不可校正错误而调整读取电压的大小直到可正确读取数据为止,进而增进了读取操作的效率(因为避免了多次的读取操作、读取电压的调整操作或额外的数据校正操作)。图4为根据本发明的一实施例所示出的选择目标读取电压组的规则表。请参照图4,简单来说,处理器211也可以查表的方式,利用如图4所示出的规则表来从所述多个读取电压组(vs1~vs8)中选择目标读取电压组。具体来说,假设处理器211已识别出目标实体单元的抹除次数值、第一时间值与第二时间值。接着,处理器211可查找所述规则表,通过同时比较抹除次数值与抹除次数门槛值(即,x)、第一时间值与第一时间门槛值(即,y)、第一时间值与第二时间门槛值(即,z)、第二时间值与第二时间门槛值的间的大小关系,可找出对应的读取电压组。举例来说,假设目标实体单元的抹除次数值小于抹除次数门槛值、目标实体单元的第一时间值不小于第一时间门槛值且目标实体单元的第二时间值小于第二时间门槛值,处理器211会根据规则表找到对应的读取电压组为第三读取电压组vs3,并且将第三读取电压组vs3作为目标读取电压组,以通过目标读取电压组来开始执行当前的读取操作。应注意的是,若处理器211判定目标实体单元的抹除次数值小于抹除次数门槛值且目标实体单元的第一时间值小于第二时间门槛值,处理器211可不判断目标实体单元的第二时间值的大小(如对角斜线所表示),并且直接从多个读取电压组中选择第一读取电压组vs1作为目标读取电压组。因为,如上所述,在当下欲进行的读取操作的前,假设具有时间间隔较近的写入操作(第一时间值小于第二时间门槛值),因为此写入操作会导致首次读取现象不发生,故,可使用不针对首次读取现象而调整的读取电压组(如,第一读取电压组或第五读取电压组)来进行当前要进行的读取操作。相似地,若处理器211判定目标实体单元的抹除次数值小于抹除次数门槛值且目标实体单元的第一时间值小于第二时间门槛值,处理器211可不判断目标实体单元的第二时间值的大小,并且直接从多个读取电压组中选择第五读取电压组vs5作为目标读取电压组。图5为根据本发明的一实施例所示出的临界电压分布与对应的读取电压的示意图。请参照图5,如上所述,处理器211可使用所述7个不同的读取电压值来从三维三阶存储单元nand型快闪存储器模块的存储单元中读取数据。三阶存储单元nand型快闪存储器模块的每一存储单元具有三个页面来存储二进制位数据,包括下页面(lowpage,l),中页面(middlepage,m),以及上页面(upperpage,u)。每一存储单元中的栅极电压可依据预设读取电压组中的预设读取电压v0~v6而区分为8种存储状态,如图5所示出的“l:1m:1u:1”、“l:1m:1u:0”、“l:1m:0u:0”、“l:1m:0u:1”、“l:0m:0u:1”、“l:0m:0u:0”、“l:0m:1u:0”与“l:0m:1u:1”。即,经由施加不同电压值的预设读取电压v0~v6至一存储单元上,处理器211可根据该存储包的通道是否导通而判断出该存储单元所存储的数据为“111”、“110”、“100”、“101”、“001”、“000”、“010”或“011”。举例来说,假设一存储单元出厂时的预设临界电压分布如图5上方所示出,并且处理器211可利用预设读取电压组中的预设读取电压v0~v6来准确地判断存储单元所存储的(二进制位)状态(也称,二进制位值,bitvalue),即,判定该存储单元所存储的数据。然而,当存储单元被写入(程序化)数据且经过一段长时间(也称,第一时间门槛值)的存放时(如,该存储单元长时间不再被写入数据),所述存储单元的临界电压分布会发生所谓的久存(retention)现象。若一存储单元发生所述久存现象,所述存储单元的临界电压分布会如同图5中间所示出,相较于预设临界电压分布,发生久存现象的存储单元的临界电压分布整体上会往左偏移。如此一来,若继续利用预设读取电压组中的预设读取电压v0~v6来从(久存状态)该存储单元中读取数据,可能会导致所判定的所述存储单元的二进制位状态错误。换言的,处理器211需调整预设读取电压v0~v6为读取电压v0’~v6’,以准确地读取具有久存状态的存储单元。即,如图5中间所示出,调整后的读取电压v0’~v6’的电压值可接近位于每两个相邻的临界电压分布的电压间隔中线(如虚线所示)。除此的外,三维存储单元更具有“首次读取现象(firstreadissue)”的问题。处理器211也不能利用预设读取电压组来准确地读取具有所述“首次读取现象”的存储单元。更详细来说,若三维三阶存储单元nand型快闪存储器模块的一实体单元在被写入数据后,经过一定的时间(也称,第二时间门槛值)后才被读取(即,距离前一次的被读取的时间长度超过一定值),该实体单元的存储单元的临界电压会不规则地向左或是向右偏移。此现象可称为首次读取现象。然而,若对一实体单元的两次读取操作的时间间隔小于第二时间门槛值,虽然第一次经由预设读取电压组的读取操作会导致所读取的数据发生错误,但第二次经由预设读取电压组的读取操作所读取的数据却是正确的。也就是说,在两次读取操作(如,第一次读取操作与第二次读取操作)的间的时间间隔小于第二时间门槛值的情况下,较前一次的读取操作(如,第一次读取操作)所读取的数据会发生大量错误,上述的现象可称为首次读取现象。换言的,在两次读取操作的间的时间间隔不小于第二时间门槛值的情况下,较前一次的读取操作并不会导致首次读取现象,即,较前一次的读取操作所读取的数据不会发生大量错误。应注意的是,如上所述,就算两次读取操作(如,第一次读取操作与第二次读取操作)的间的时间间隔不小于第二时间门槛值,若前一次写入操作与第一次读取操作的间的时间间隔小于第二时间门槛值,所述第一次读取操作所读取到的数据也不会发生大量错误,即,不会导致首次读取现象。也就是说,若本次对于目标实体单元的读取操作与最后一次对于所述目标实体单元的写入操作的间的时间间隔小于第二时间门槛值,本次读取操作不会具有首次读取现象。举例来说,如图5下方所示出,发生首次读取现象的实体单元的存储单元,其临界电压分布会往左或是往右偏移。如此一来,若(经过一段时间后的第一次读取)利用预设读取电压组中的预设读取电压v0~v6来从所述(具有首次读取现象的)存储读取数据,会导致此次首次读取操作所判定的所述存储单元的二进制位状态是错误的,并且所述发生首次读取现象的多个存储单元会导致所对应的读取数据发生不可校正错误。换言的,处理器211需调整预设读取电压v0~v6为读取电压v0”~v6”,以准确地读取具有久存状态的存储单元。即,如图5下方所示出,调整后的读取电压v0”~v6”的电压值可接近位于每两个相邻的临界电压分布的电压间隔中线(如虚线所示)。在本实施例中,上述对应目标实体单元的第一~第八读取电压组中的每一读取电压组的多个读取电压值是处理器211依据预设读取电压组、所述目标实体单元的抹除次数门槛值、所述目标实体单元的第一时间值与所述目标实体单元的第二时间值、所述目标实体单元的一补偿电压值来计算的。更详细而言,处理器211可根据对应可复写式非易失性存储器模块的电压偏移补偿表、第一时间值与第二时间值来计算所述补偿电压值。即,根据目标实体单元的第一时间值与第二时间值,处理器211可以查询电压偏移补偿表来获得对应第一时间值的第一补偿电压值与第二补偿电压值。所述第一补偿电压值用来调整读取电压,以让被调整的读取电压可用于发生久存现象的存储单元;所述第二补偿电压值用来调整读取电压,以让被调整的读取电压可用于发生首次读取现象的存储单元。在本实施例中,经由比较目标实体单元的抹除次数值与抹除次数门槛值可知道所述目标实体单元是否已经耗损(wear-out)(即,是否具有耗损现象);经由比较目标实体单元的第一时间值与第一时间门槛值可知道所述目标实体单元是否具有久存现象;经由比较目标实体单元的第二时间值与第二时间门槛值可知道所述目标实体单元是否具有首次读取现象。换句话说,根据图3、图4的例子,处理器211可判断出目标实体单元是否具有耗损现象、久存现象或首次读取现象的其中的一或其组合,并且根据所述目标实体单元的状态(所具有的现象)来对应地采用适合的读取电压组来进行读取。举例来说,若一个目标实体单元的抹除次数门槛值低于抹除次数门槛值、第一时间值低于第一时间门槛值且第二时间值低于第二时间门槛值,则处理器211会判定此目标实体单元不具有耗损现象、久存现象与首次读取现象,并且使用预设读取电压组来对此目标实体单元来执行读取操作。在本实施例中,第一读取电压组vs1为预设读取电压组。又例如,若一个目标实体单元的抹除次数门槛值不低于抹除次数门槛值、第一时间值不低于第一时间门槛值且第二时间值不低于第二时间门槛值,则处理器211会判定此目标实体单元同时具有耗损现象、久存现象与首次读取现象,并且使用第八读取电压组来对此目标实体单元来执行读取操作。处理器211会利用对应久存现象的第一补偿电压值、对应首次读取现象的第二补偿电压值以及对应耗损现象的第三补偿电压值来调整预设电压组为第八读取电压组vs8。其中,如上所述,第一补偿电压值可根据第一时间值与电压偏移补偿表来进行查找,第二补偿电压值可根据第二时间值与电压偏移补偿表来进行查找,并且第三补偿电压值可根据抹除次数值与电压偏移补偿表来进行查找。举例来说,所述第八读取电压组vs8可利用下列公式(1)来计算:vs8i=v0i+vpeci+vri+vfri(1)其中,对于三阶存储单元(tlc)nand型存储器,“i”为0~6。(对于二阶存储单元(mlc)nand型存储器,“i”为0~2)。v0i为预设读取电压组的第一~第七预设读取电压值(如图5所示出的预设读取电压值v0~v6)。vpeci为根据抹除次数值所查找出的对应预设读取电压组的第一~第七预设读取电压值的其中的一的第三补偿电压值。vri为根据第一时间值所查找出的对应预设读取电压组的第一~第七预设读取电压值的其中的一的第一补偿电压值。vfri为根据第二时间值所查找出的对应预设读取电压组的第一~第七预设读取电压值的其中的一的第二补偿电压值。例如,第八读取电压组vs8中的第1个(i=0)读取电压值的计算公式为vs80=v00+vpec0+vr0+vfr0。其中,v00为预设读取电压组的第一预设读取电压值v0。又例如,由于第二读取电压组是用以读取仅具有首次读取现象的目标实体单元。第二读取电压组vs2可利用下列公式(2)来计算:vs2i=v0i+vfri(2)又例如,由于第三读取电压组是用以读取仅具有久存现象的目标实体单元。第三读取电压组vs3可利用下列公式(3)来计算:vs3i=v0i+vri(3)又例如,由于第四读取电压组是用以读取具有久存现象与首次读取现象的目标实体单元。第四读取电压组vs4可利用下列公式(4)来计算:vs4i=v0i+vri+vfri(4)又例如,由于第五读取电压组是用以读取仅具有耗损现象的目标实体单元。第五读取电压组vs5可利用下列公式(5)来计算:vs5i=v0i+vpeci(5)又例如,由于第六读取电压组是用以读取具有耗损现象与首次读取现象的目标实体单元。第六读取电压组vs6可利用下列公式(6)来计算:vs6i=v0i+vpeci+vfri(6)又例如,由于第七读取电压组是用以读取仅具有耗损现象与久存现象的目标实体单元。第七读取电压组vs7可利用下列公式(7)来计算:vs7i=v0i+vpeci+vri(7)应注意的是,由于在出厂时,厂商即可针对存储装置所使用的存储器模块的存储单元特性来进行实验,以计算出分别对应不同抹除次数值的范围、不同第一时间值的范围与不同第二时间值的范围的第三补偿电压值、第一补偿电压值与第二补偿电压值。因此,处理器211在识别到目标实体单元抹除次数值、第一时间值与第二时间值后,可即时地根据上述方法来根据预设读取电压组与所述目标实体单元的第一、第二、第三补偿电压值计算对应的目标读取电压组来对目标实体单元读取数据。如此一来,处理器211所采用的目标读取电压组可对应当前目标实体单元的临界电压的偏移状态来进行有效率地读取。综上所述,本发明实施例所提供的数据读取方法以及存储控制器,可根据所接收的读取指令来识别对应该读取指令的可复写式非易失性存储器模块中的一目标实体单元,并且识别目标实体单元的抹除次数值、第一时间戳记与第二时间戳记,以在执行一次读取操作的情况下,直接使用对应目标实体单元的状态的读取电压来从目标实体单元中读取目标数据,进而提升读取数据的效率与正确性。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视权利要求所界定者为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1