译码方法、内存储存装置及内存控制电路单元与流程

文档序号:11592387阅读:269来源:国知局
本发明涉及一种译码技术,尤其涉及一种译码方法、内存储存装置及内存控制电路单元。
背景技术
::数字相机、移动电话与mp3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性内存模块(例如,闪存)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。一般来说,可复写式非易失性内存模块中用以储存数据的最小单位为记忆胞。随着可复写式非易失性内存模块的使用程度增加,记忆胞的可靠度会下降,从而导致储存于记忆胞中的数据出现错误。因此,在将某数据从可复写式非易失性内存模块中读取出来后,会藉由译码程序来更正其中的错误。然而,在基于机率来译码的某些译码程序中,若没有随着使用程度不同的记忆胞来适应性地调整在相对应的译码程序中使用的一些参数,则可能会导致后续译码效率低落。技术实现要素:有鉴于此,本发明提供一种译码方法、内存储存装置及内存控制电路单元,可实时地更新使用程度不同的记忆胞所对应的信道可靠度信息,从而提升译码效率。本发明的一范例实施例提供一种译码方法,其用于可复写式非易失性内存模块,所述可复写式非易失性内存模块包括多个实体单元,所述译码方法包括:程序化第一数据至所述实体单元中的至少一第一实体单元;读取所述第一实体单元以获得第二数据;根据所述第一数据与所述第二数据获得对应于第一位值的第一临界电压分布与对应于第二位值的第二临界电压分布,其 中所述第一位值与所述第二位值不同;根据所述第一临界电压分布与所述第二临界电压分布计算对应于所述第一实体单元的第一信道可靠度信息;以及根据所述第一信道可靠度信息来译码储存于所述第一实体单元的第三数据。在本发明的一范例实施例中,所述译码方法还包括:将随机种子输入至随机数产生器以产生所述第一数据并储存所述随机种子与所述第一数据的至少其中之一。在本发明的一范例实施例中,获得所述第一临界电压分布与所述第二临界电压分布并且计算所述第一信道可靠度信息的步骤包括:根据所述第二数据将所述第一实体单元中用以储存所述第一数据的每一个记忆胞的临界电压分组至多个电压区间的其中之一;根据所述第一数据统计被分组至所述电压区间中的每一个的记忆胞中,属于所述第一临界电压分布的第一记忆胞的第一总数;根据所述第一数据统计被分组至所述电压区间中的每一个的记忆胞中,属于所述第二临界电压分布的第二记忆胞的第二总数;以及根据所述第一总数与所述第二总数计算所述第一信道可靠度信息。在本发明的一范例实施例中,根据所述第一信道可靠度信息来译码所述第三数据的步骤包括:根据所述第一信道可靠度信息查询查找表以获得默认信道可靠度信息;以及根据所述默认信道可靠度信息来译码所述第三数据。在本发明的一范例实施例中,所述译码方法还包括:根据所述第一信道可靠度信息从多个信道可靠度信息集合中选择其中之一;从所选择的信道可靠度信息集合中获得对应于至少一第二实体单元的第二信道可靠度信息;以及根据所述第二信道可靠度信息来译码储存于所述第二实体单元的第四数据。本发明的另一范例实施例提供一种内存储存装置,其包括连接接口单元、可复写式非易失性内存模块及内存控制电路单元。所述连接接口单元用以电性连接至主机系统。所述可复写式非易失性内存模块包括多个实体单元。所述内存控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性内存模块,其中所述内存控制电路单元用以发送写入指令序列,其中所述写入指令序列用以指示程序化第一数据至所述实体单元中的至少一第一实体单元,所述内存控制电路单元更用以发送读取指令序列,其中所述读取指令序列用以指示读取所述第一实体单元以获得第二数据,所述内存控制电路单元 更用以根据所述第一数据与所述第二数据获得对应于第一位值的第一临界电压分布与对应于第二位值的第二临界电压分布,其中所述第一位值与所述第二位值不同,所述内存控制电路单元更用以根据所述第一临界电压分布与所述第二临界电压分布计算对应于所述第一实体单元的第一信道可靠度信息,所述内存控制电路单元更用以根据所述第一信道可靠度信息来译码储存于所述第一实体单元的第三数据。在本发明的一范例实施例中,所述内存控制电路单元更用以将随机种子输入至随机数产生器以产生所述第一数据并储存所述随机种子与所述第一数据的至少其中之一。在本发明的一范例实施例中,所述内存控制电路单元获得所述第一临界电压分布与所述第二临界电压分布并且计算所述第一信道可靠度信息的操作包括:根据所述第二数据将所述第一实体单元中用以储存所述第一数据的每一个记忆胞的临界电压分组至多个电压区间的其中之一;根据所述第一数据统计被分组至所述电压区间中的每一个的记忆胞中,属于所述第一临界电压分布的第一记忆胞的第一总数;根据所述第一数据统计被分组至所述电压区间中的每一个的记忆胞中,属于所述第二临界电压分布的第二记忆胞的第二总数;以及根据所述第一总数与所述第二总数计算所述第一信道可靠度信息。在本发明的一范例实施例中,所述内存控制电路单元根据所述第一信道可靠度信息来译码所述第三数据的操作包括:根据所述第一信道可靠度信息查询查找表以获得默认信道可靠度信息;以及根据所述默认信道可靠度信息来译码所述第三数据。在本发明的一范例实施例中,所述内存控制电路单元更用以根据所述第一信道可靠度信息从多个信道可靠度信息集合中选择其中之一,所述内存控制电路单元更用以从所选择的信道可靠度信息集合中获得对应于至少一第二实体单元的第二信道可靠度信息,所述内存控制电路单元更用以根据所述第二信道可靠度信息来译码储存于所述第二实体单元的第四数据。本发明的另一范例实施例提供一种内存控制电路单元,其用以控制可复写式非易失性内存模块,所述可复写式非易失性内存模块包括多个实体单元,所述内存控制电路单元包括主机接口、内存接口、错误检查与校正电路及内存管理电路。所述主机接口用以电性连接至主机系统。所述内存接口用以电 性连接至所述可复写式非易失性内存模块。所述内存管理电路电性连接至所述主机接口、所述内存接口及所述错误检查与校正电路,所述内存管理电路用以发送写入指令序列,其中所述写入指令序列用以指示程序化第一数据至所述实体单元中的至少一第一实体单元,所述内存管理电路更用以发送读取指令序列,其中所述读取指令序列用以指示读取所述第一实体单元以获得第二数据,所述内存管理电路更用以根据所述第一数据与所述第二数据获得对应于第一位值的第一临界电压分布与对应于第二位值的第二临界电压分布,其中所述第一位值与所述第二位值不同,所述内存管理电路更用以根据所述第一临界电压分布与所述第二临界电压分布计算对应于所述第一实体单元的第一信道可靠度信息,所述错误检查与校正电路用以根据所述第一信道可靠度信息来译码储存于所述第一实体单元的第三数据。在本发明的一范例实施例中,所述内存管理电路更用以将随机种子输入至随机数产生器以产生所述第一数据并储存所述随机种子与所述第一数据的至少其中之一。在本发明的一范例实施例中,所述内存管理电路获得所述第一临界电压分布与所述第二临界电压分布并且计算所述第一信道可靠度信息的操作包括:根据所述第二数据将所述第一实体单元中用以储存所述第一数据的每一个记忆胞的一临界电压分组至多个电压区间的其中之一;根据所述第一数据统计被分组至所述电压区间中的每一个的记忆胞中,属于所述第一临界电压分布的第一记忆胞的第一总数;根据所述第一数据统计被分组至所述电压区间中的每一个的记忆胞中,属于所述第二临界电压分布的第二记忆胞的第二总数;以及根据所述第一总数与所述第二总数计算所述第一信道可靠度信息。在本发明的一范例实施例中,所述内存管理电路更用以根据所述第一信道可靠度信息查询查找表以获得默认信道可靠度信息,所述错误检查与校正电路更用以根据所述默认信道可靠度信息来译码所述第三数据。在本发明的一范例实施例中,所述内存管理电路更用以根据所述第一信道可靠度信息从多个信道可靠度信息集合中选择其中之一,所述内存管理电路更用以从所选择的信道可靠度信息集合中获得对应于至少一第二实体单元的第二信道可靠度信息,所述错误检查与校正电路更用以根据所述第二信道可靠度信息来译码储存于所述第二实体单元的第四数据。在本发明的一范例实施例中,所述第一实体单元与所述第二实体单元位于同一条字符线或同一个字符线层。在本发明的一范例实施例中,所述实体单元包括数据位区与冗余位区,所述第一数据被储存于所述数据位区与所述冗余位区的至少其中之一。基于上述,在将第一数据储存至第一实体单元并藉由读取第一实体单元来获得第二数据之后,通过分析第一数据与第二数据,对应于第一位值的第一临界电压分布与对应于第二位值的第二临界电压分布会被获得。根据第一临界电压分布与第二临界电压分布,对应于第一实体单元的第一信道可靠度信息会被获得。尔后,此第一信道可靠度信息即可用来译码储存于第一实体单元中的数据,从而提升译码效率。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据本发明的一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图;图2是根据本发明的另一范例实施例所显示的主机系统、内存储存装置及i/o装置的示意图;图3是根据本发明的另一范例实施例所显示的主机系统与内存储存装置的示意图;图4是根据本发明的一范例实施例所显示的内存储存装置的概要方框图;图5a是根据本发明的一范例实施例所显示的记忆胞数组的示意图;图5b是根据本发明的另一范例实施例所显示的记忆胞数组的示意图;图6是根据本发明的一范例实施例所显示的内存控制电路单元的概要方框图;图7是根据本发明的一范例实施例所显示的低密度奇偶检查码的置信传播(beliefpropagation)的示意图;图8是根据本发明的一范例实施例所显示的管理可复写式非易失性内存模块的示意图;图9至图12是根据本发明的一范例实施例所显示的信道可靠度信息更新程序的示意图;图13是根据本发明的一范例实施例所显示的实体单元的示意图;图14是根据本发明的一范例实施例所显示的译码方法的流程图。附图标记:10、30:内存储存装置11、31:主机系统110:系统总线111:处理器112:随机存取内存113:只读存储器114:数据传输接口12:输入/输出(i/o)装置20:主板201:随身碟202:记忆卡203:固态硬盘204:无线内存储存装置205:全球定位系统模块206:网络适配器207:无线传输装置208:键盘209:屏幕210:喇叭32:sd卡33:cf卡34:嵌入式储存装置341:嵌入式多媒体卡342:嵌入式多芯片封装储存装置402:连接接口单元404:内存控制电路单元406:可复写式非易失性内存模块510、520:记忆胞数组502、522:记忆胞504、524:位线506:字符线508:共享源极线512:选择门漏极晶体管514:选择门源极晶体管524(1)~524(4):位线组526(1)~526(8):字符线层602:内存管理电路604:主机接口606:内存接口608:错误检查与校正电路610:缓冲存储器612:电源管理电路710:置信传播图701(1)~701(k):奇偶节点702(1)~702(n):信息节点l1~ln:信道可靠度信息li→j、lj→i:可靠度信息810(0)~810(b):实体单元812(0)~812(c):逻辑单元801:储存区802:替换区901、902:数据1001:随机种子1010:随机数产生器1110、1120:临界电压分布1101~1106:电压区间b1~b5:验证位v1~v5:读取电压1301:数据位区1302:冗余位区s1401~s1405:步骤具体实施方式一般而言,内存储存装置(亦称,内存储存系统)包括可复写式非易失性内存模块(rewritablenon-volatilememorymodule)与控制器(亦称,控制电路)。通常内存储存装置是与主机系统一起使用,以使主机系统可将数据写入至内存储存装置或从内存储存装置中读取数据。图1是根据本发明的一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图。图2是根据本发明的另一范例实施例所显示的主机系统、内存储存装置及i/o装置的示意图。请参照图1与图2,主机系统11一般包括处理器111、随机存取内存(randomaccessmemory,ram)112、只读存储器(readonlymemory,rom)113及数据传输接口114。处理器111、随机存取内存112、只读存储器113及数据传输接口114皆电性连接至系统总线(systembus)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可例如是随身碟201、记忆卡202、固态硬盘(solidstatedrive,ssd)203或无线内存储存装置204。无线内存储存装置204可例如是近距离无线通信(nearfieldcommunication,nfc)内存储存装置、无线传真(wifi)内存储存装置、蓝牙(bluetooth)内存储存 装置或低功耗蓝牙内存储存装置(例如,ibeacon)等以各式无线通信技术为基础的内存储存装置。此外,主板20也可以通过系统总线110电性连接至全球定位系统(globalpositioningsystem,gps)模块205、网络适配器206、无线传输装置207、键盘208、屏幕209、喇叭210等各式i/o装置。例如,在一范例实施例中,主板20可通过无线传输装置207存取无线内存储存装置204。在一范例实施例中,所提及的主机系统为可实质地与内存储存装置配合以储存数据的任意系统。虽然在上述范例实施例中,主机系统是以计算机系统来作说明,然而,图3是根据本发明的另一范例实施例所显示的主机系统与内存储存装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数字相机、摄影机、通信装置、音频播放器、视频播放器或平板计算机等系统,而内存储存装置30可为其所使用的安全数字(securedigital,sd)卡32、小型快闪(compactflash,cf)卡33或嵌入式储存装置34等各式非易失性内存储存装置。嵌入式储存装置34包括嵌入式多媒体卡(embeddedmmc,emmc)341和/或嵌入式多芯片封装(embeddedmultichippackage,emcp)储存装置342等各类型将内存模块直接电性连接于主机系统的基板上的嵌入式储存装置。图4是根据本发明的一范例实施例所显示的内存储存装置的概要方框图。请参照图4,内存储存装置10包括连接接口单元402、内存控制电路单元404与可复写式非易失性内存模块406。在本范例实施例中,连接接口单元402是兼容于序列先进附件(serialadvancedtechnologyattachment,sata)标准。然而,必须了解的是,本发明不限于此,连接接口单元402亦可以是符合并列先进附件(paralleladvancedtechnologyattachment,pata)标准、电气和电子工程师协会(instituteofelectricalandelectronicengineers,ieee)1394标准、高速周边零件连接接口(peripheralcomponentinterconnectexpress,pciexpress)标准、通用串行总线(universalserialbus,usb)标准、sd接口标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、记忆棒(memorystick,ms)接口标准、多芯片封装(multi-chippackage)接口标准、多媒体储存卡(multimediacard,mmc)接口标准、emmc接口标准、通用闪存 (universalflashstorage,ufs)接口标准、emcp接口标准、cf接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。连接接口单元402可与内存控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含内存控制电路单元404的芯片外。内存控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性内存模块406中进行数据的写入、读取与抹除等运作。可复写式非易失性内存模块406是电性连接至内存控制电路单元404并且用以储存主机系统11所写入的数据。可复写式非易失性内存模块406可以是单阶记忆胞(singlelevelcell,slc)nand型闪存模块(即,一个记忆胞中可储存1个位的闪存模块)、多阶记忆胞(multilevelcell,mlc)nand型闪存模块(即,一个记忆胞中可储存2个位的闪存模块)、三阶阶记忆胞(triplelevelcell,tlc)nand型闪存模块(即,一个记忆胞中可储存3个位的闪存模块)、其他闪存模块或其他具有相同特性的内存模块。可复写式非易失性内存模块406中的记忆胞是以数组的方式设置。以下分别以二维数组与三维数组来对不同范例实施例中的记忆胞数组进行说明。但是,在此须注意的是,以下范例实施例只是记忆胞数组的几种范例,在其他的范例实施例中,记忆胞数组的配置方式可以被调整以符合实务上的需求。图5a是根据本发明的一范例实施例所显示的记忆胞数组的示意图。请参照图5a,记忆胞数组510包括用以储存数据的多个记忆胞502、多个选择门漏极(selectgatedrain,sgd)晶体管512与多个选择门源极(selectgatesource,sgs)晶体管514、以及连接此些记忆胞的多条位线504、多条字符线506、与共享源极线508。在本范例实施例中,记忆胞502是以数组方式配置在位线504与字符线506的交叉点上。图5b是根据本发明的另一范例实施例所显示的记忆胞数组的示意图。请参照图5b,在本范例实施例中,记忆胞数组520包括用以储存数据的多个记忆胞522、多个位线组524(1)~524(4)及多个字符线层526(1)~526(8)。位线组524(1)~524(4)彼此独立(例如,彼此分离)并且沿第一方向(例如,x轴方向)排列。位线组524(1)~524(4)中的每一个位线组包括彼此独立(例如,彼此分离)的多条位线524。包含于位线组524(1)~524(4)中的每一个的位线524 沿第二方向(例如,y轴方向)排列并且往第三方向(例如,z轴方向)延伸。字符线层526(1)~526(8)彼此独立(例如,彼此分离)并且沿第三方向堆栈。在本范例实施例中,字符线层526(1)~526(8)中的每一个字符线层可视为一个字符线平面。每一个记忆胞522皆被配置于位元元线组524(1)~524(4)与字符线层526(1)~526(8)之间的每一个交错处。然而,在另一范例实施例中,记忆胞数组520可以包括更多或更少的字符线层,一个位线组可以包括更多或更少的位线,并且一个字符线层也可以让更多或更少的位线组通过。可复写式非易失性内存模块406中的每一个记忆胞是以电压(以下亦称为临界电压)的改变来储存一或多个位。具体来说,每一个记忆胞的控制栅极(controlgate)与信道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变记忆胞的临界电压。此改变临界电压的程序亦称为“把数据写入至记忆胞”或“程序化记忆胞”。随着临界电压的改变,可复写式非易失性内存模块406中的每一个记忆胞具有多个储存状态。通过施予读取电压可以判断一个记忆胞是属于哪一个储存状态,藉此取得此记忆胞所储存的一或多个位。图6是根据本发明的一范例实施例所显示的内存控制电路单元的概要方框图。请参照图6,内存控制电路单元404包括内存管理电路602、主机接口604、内存接口606及错误检查与校正电路608。内存管理电路602用以控制内存控制电路单元404的整体运作。具体来说,内存管理电路602具有多个控制指令,并且在内存储存装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明内存管理电路602的操作时,等同于说明内存控制电路单元404的操作。在本范例实施例中,内存管理电路602的控制指令是以固件型式来实作。例如,内存管理电路602具有微处理器单元(未显示)与只读存储器(未显示),并且此些控制指令是被刻录至此只读存储器中。当内存储存装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。在另一范例实施例中,内存管理电路602的控制指令亦可以程序代码型式储存于可复写式非易失性内存模块406的特定区域(例如,内存模块中专用 于存放系统数据的系统区)中。此外,内存管理电路602具有微处理器单元(未显示)、只读存储器(未显示)及随机存取内存(未显示)。特别是,此只读存储器具有开机码(bootcode),并且当内存控制电路单元404被致能时,微处理器单元会先执行此开机码来将储存于可复写式非易失性内存模块406中的控制指令加载至内存管理电路602的随机存取内存中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在另一范例实施例中,内存管理电路602的控制指令亦可以一硬件型式来实作。例如,内存管理电路602包括微控制器、记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路。记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路皆电性连接至微控制器。记忆胞管理电路用以管理可复写式非易失性内存模块406的记忆胞或其群组。内存写入电路用以对可复写式非易失性内存模块406下达写入指令序列以将数据写入至可复写式非易失性内存模块406中。内存读取电路用以对可复写式非易失性内存模块406下达读取指令序列以从可复写式非易失性内存模块406中读取数据。内存抹除电路用以对可复写式非易失性内存模块406下达抹除指令序列以将数据从可复写式非易失性内存模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性内存模块406的数据以及从可复写式非易失性内存模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序代码或脚本并且用以指示可复写式非易失性内存模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,内存管理电路602还可以下达其他类型的指令序列给可复写式非易失性内存模块406以指示执行相对应的操作。主机接口604是电性连接至内存管理电路602并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口604来传送至内存管理电路602。在本范例实施例中,主机接口604是兼容于sata标准。然而,必须了解的是本发明不限于此,主机接口604亦可以是兼容于pata标准、ieee1394标准、pciexpress标准、usb标准、sd标准、uhs-i标准、uhs-ii标准、ms标准、mmc标准、emmc标准、ufs标准、cf标准、ide标准或其他适合的数据传输标准。内存接口606是电性连接至内存管理电路602并且用以存取可复写式非 易失性内存模块406。也就是说,欲写入至可复写式非易失性内存模块406的数据会经由内存接口606转换为可复写式非易失性内存模块406所能接受的格式。具体来说,若内存管理电路602要存取可复写式非易失性内存模块406,内存接口606会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种记忆体操作(例如,改变读取电压准位或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列例如是由内存管理电路602产生并且通过内存接口606传送至可复写式非易失性内存模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括脚本或程序代码。例如,在读取指令序列中,会包括读取的辨识码、内存地址等信息。错误检查与校正电路608是电性连接至内存管理电路602并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当内存管理电路602从主机系统11中接收到写入指令时,错误检查与校正电路608会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ecc)和/或错误检查码(errordetectingcode,edc),并且内存管理电路602会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性内存模块406中。之后,当内存管理电路602从可复写式非易失性内存模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路608会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。在本范例实施例中,错误检查与校正电路608所使用的是低密度奇偶检查码(lowdensityparitycode,ldpc)。然而,在另一范例实施例中,错误检查与校正电路608所使用的也可以是bch码、回旋码(convolutionalcode)、涡轮码(turbocode)、位翻转(bitflipping)等编/译码算法。图7是根据本发明的一范例实施例所显示的低密度奇偶检查码的置信传播(beliefpropagation)的示意图。请参照图7,低密度奇偶检查码的译码过程可以表示为一个置信传播图710。置信传播图710包括奇偶节点701(1)~701(k)与信息节点702(1)~702(n)。每一个奇偶节点701(1)~701(k)是对应到一个校验子(syndrome),而每一个信息 节点702(1)~702(n)是对应当前译码的码字中的一个数据位。数据位与校验子之间的对应关系(即,信息节点702(1)~702(n)与奇偶节点701(1)~701(k)之间的连结关系)是根据低密度奇偶检查码所采用的一个奇偶检查矩阵所产生的。具体来说,若奇耦检查矩阵中第i列(row)第j行(column)的元素为1,则第i个奇偶节点701(i)便会连接到第j个信息节点702(j),其中i与j为正整数。当内存管理电路602从可复写式非易失性内存模块406中读取n个数据位(形成一个码字)时,内存管理电路602(或错误检查与校正电路608)也会取得每一个数据位的信道可靠度信息。此信道可靠度信息用以表示对应的数据位被译码为位“1”或是“0”的机率(或称信心度)。例如,在置信传播图710中,信息节点702(1)~702(n)会接收到对应的信道可靠度信息l1~ln。其中,信息节点702(1)会接收第1个数据位的信道可靠度信息l1,而信息节点702(j)会接收第j个数据位的信道可靠度信息lj。错误检查与校正电路608会根据置信传播图710的结构与信道可靠度信息l1~ln来执行译码程序。在本范例实施例中,错误检查与校正电路608所执行的译码程序为迭代译码(iterativedecoding)程序。在迭代译码程序中,信息节点702(1)~702(n)会计算出可靠度信息给奇偶节点701(1)~701(k),并且奇偶节点701(1)~701(k)也会计算出可靠度信息给信息节点702(1)~702(n)。计算出来的可靠度信息会沿着置信传播图710中的边(edge)来传送。例如,奇偶节点701(i)传送给信息节点702(j)的是可靠度信息li→j,而信息节点702(j)传送给奇偶节点701(i)是可靠度信息lj→i。某一个可靠度信息是用来表示一个节点认为某一个数据位被译码为“1”或是“0”的机率(或上述信心度)有多少。举例来说,可靠度信息lj→i表示信息节点702(j)认为第j个数据位被译码为“1”或是“0”的信心度(可为正或是负),而可靠度信息li→j表示奇偶节点701(i)认为第j个数据位被译码为“1”或是“0”的信心度(亦可为正或是负)。而信息节点702(1)~702(n)与奇偶节点701(1)~701(k)会根据输入的可靠度信息来计算输出的可靠度信息,其近似于计算一个数据位被译码为“1”或是“0”的条件机率。因此,上述传送可靠度信息的过程又被称为置信传播。在一范例实施例中,在节点间传输的可靠度信息(例如,可靠度信息li→j与lj→i)以及实际用来对数据位进行译码的信道可靠度信息(例如,信道可靠度信息l1~ln)皆是以对数可能性比值(loglikelihoodratio,llr)来表示。然而, 当采用不同的算法来更新迭代译码程序中的可靠度信息和/或信道可靠度信息时,信息节点702(1)~702(n)和/或奇偶节点701(1)~701(k)会计算出不同类型/属性的可靠度信息和/或信道可靠度信息。例如,错误检查与校正电路608可以采用总和-乘积算法(sum-productalgorithm)、最小值-总和算法(min-sumalgorithm)、或位翻转算法(bit-flippingalgorithm)等,本发明不加以限制。在本范例实施例中,迭代译码程序中的迭代(iteration)会不断的重复执行,以更新至少部分数据位所对应的信道可靠度信息。例如,在迭代译码程序的每一次迭代中,信息节点702(1)~702(n)会传递可靠度信息给奇偶节点701(1)~701(k),并且奇偶节点701(1)~701(k)会传递可靠度信息给信息节点702(1)~702(n)。藉此,实际用来对数据位进行译码的信道可靠度信息(例如,信道可靠度信息l1~ln)可能会在任一次的迭代中被更新。若经由译码程序中的某一次迭代所产生的码字为有效(valid)码字,表示译码成功,并且译码程序会停止。若所产生的码字不是有效的码字,则会进行下一次的迭代。此外,若译码程序中执行迭代的总次数到达一预定门槛值,则表示译码失败,并且此译码程序也会停止。在一范例实施例中,内存控制电路单元404还包括缓冲存储器610与电源管理电路612。缓冲存储器610是电性连接至内存管理电路602并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性内存模块406的数据。电源管理电路612是电性连接至内存管理电路602并且用以控制内存储存装置10的电源。在本范例实施例中,可复写式非易失性内存模块406的记忆胞会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体来说,同一条字符线(或同一个字符线层)上的记忆胞会组成一或多个实体程序化单元。若每一个记忆胞被用以储存2个以上的位,则同一条字符线(或同一个字符线层)上的实体程序化单元至少可被分类为一个下(lower)实体程序化单元与一个上(upper)实体程序化单元。在一范例实施例中,若每一个记忆胞被用以储存2个位,则同一条字符线(或同一个字符线层)上的实体程序化单元可被分类为一个下实体程序化单元与一个上实体程序化单元。例如,一记忆胞的最低有效位(leastsignificant bit,lsb)是属于下实体程序化单元,并且一记忆胞的最高有效位(mostsignificantbit,msb)是属于上实体程序化单元。一般来说,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度会高于上实体程序化单元的可靠度。在另一范例实施例中,若每一个记忆胞被用以储存3个位,则同一条字符线(或同一个字符线层)上的实体程序化单元可被分类为一个下实体程序化单元、一个上实体程序化单元及一个额外(extra)实体程序化单元。例如,一记忆胞的最低有效位是属于下实体程序化单元,一记忆胞的中间有效位(centralsignificantbit,csb)是属于上实体程序化单元,并且一记忆胞的的最高有效位是属于额外实体程序化单元。在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据位区与冗余(redundancy)位区。数据位区包含多个实体扇,用以储存用户数据,而冗余位区用以储存系统数据(例如,错误更正码)。在本范例实施例中,数据位区包含32个实体扇,且一个实体扇的大小为512字节(byte,b)。然而,在其他范例实施例中,数据位区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目之一并被抹除的记忆胞。例如,实体抹除单元为实体区块(block)。在一范例实施例中,内存管理电路602是基于实体单元来管理可复写式非易失性内存模块406中的记忆胞。例如,在以下范例实施例中,是以一个实体程序化单元作为一个实体单元的范例。然而,在另一范例实施例中,一个实体单元亦可以是指一个实体抹除单元或由任意数目的记忆胞组成,视实务上的需求而定。此外,必须了解的是,当内存管理电路602对可复写式非易失性内存模块406中的记忆胞(或实体单元)进行分组时,此些记忆胞(或实体单元)是被逻辑地分组,而其实际位置并未更动。图8是根据本发明的一范例实施例所显示的管理可复写式非易失性内存模块的示意图。请参照图8,内存管理电路602会将可复写式非易失性内存模块406的 实体单元810(0)~810(b)逻辑地分组为储存区801与替换区802。储存区801中的实体单元810(0)~810(a)是用以储存数据,而替换区802中的实体单元810(a+1)~810(b)是用以替换储存区801中损坏的实体单元。在本范例实施例中,内存管理电路602会配置逻辑单元812(0)~812(c)以映像储存区801中的实体单元810(0)~800(a)的至少一部分。在本范例实施例中,主机系统11是通过逻辑地址(logicaladdress,la)来存取储存区801中的数据,因此,逻辑单元812(0)~812(c)中的每一个是指一个逻辑地址。然而,在另一范例实施例中,逻辑单元812(0)~812(c)中的每一个也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成,视实务上的需求而定。此外,逻辑单元812(0)~812(c)中的每一个也可被映射至一或多个实体单元。在本范例实施例中,内存管理电路602会在特定时间点执行一信道可靠度信息更新程序,以更新对应于特定的实体单元的信道可靠度信息。在一范例实施例中,此特定时间点包括内存储存装置10开机时、内存储存装置10正常关机时、内存储存装置10突然断电时及内存储存装置10闲置超过一预设时间时的至少其中之一。在一范例实施例中,此特定时间点亦可以是周期性的时间点。例如,每隔一段时间(例如,一周)执行一次信道可靠度信息更新程序。在一范例实施例中,此特定时间点亦可以是当某一实体单元的位错误率、抹除计数、写入计数、读取计数及数据储存时间的至少其中之一超过对应的一默认值时。在一范例实施例中,此特定时间点亦可以是当上述特定的实体单元被抹除时。在一范例实施例中,此特定时间点亦可以是当上述特定的实体单元被抹除后并且再次被用以储存来自主机系统11的数据时。在一范例实施例中,此特定时间点亦可以是当上述特定的实体单元被从替换区801选择以替换储存区802的一个损坏的实体单元时。在一范例实施例中,此特定时间点亦可以是对储存于上述特定实体单元的数据所执行的某一次迭代译码程序失败时。在信道可靠度信息更新程序中,内存管理电路602会发送一写入指令序列至可复写式非易失性内存模块406。此写入指令序列用以指示可复写式非易失性内存模块406将一数据(以下亦称为第一数据)程序化至实体单元810(0)~800(a)的至少其中之一(以下亦称为第一实体单元)。然后,内存管理 电路602会发送一读取指令序列至可复写式非易失性内存模块406。此读取指令序列用以指示可复写式非易失性内存模块406读取此第一实体单元以获得另一数据(以下亦称为第二数据)。根据第一数据与第二数据,内存管理电路602会获得对应于一位值(以下亦称为第一位值)的一临界电压分布(以下亦称为第一临界电压分布)与对应于另一位值(以下亦称为第二位值)的另一临界电压分布(以下亦称为第二临界电压分布),其中第一位值与第二位值不同。在本范例实施例中,第一位值是“1”,而第二位值是“0”。也就是说,第一临界电压分布是第一实体单元中储存有位“1”的记忆胞的临界电压分布,而第二临界电压分布是第一实体单元中储存有位“0”的记忆胞的临界电压分布。根据第一临界电压分布与第二临界电压分布,内存管理电路602会计算对应于第一实体单元的信道可靠度信息(以下亦称为第一信道可靠度信息)。尔后,当第一实体单元被用来储存来自主机系统11的其他数据(以下亦称为第三数据)且此第三数据被从第一实体单元读取出来时,错误检查与校正电路608会根据此第一信道可靠度信息来译码此第三数据。由于第一信道可靠度信息是根据第一实体单元真实的第一临界电压分布与真实的第二临界电压所计算出来的,错误检查与校正电路608根据此第一信道可靠度信息来译码第三数据的效率也可被提升。图9至图12是根据本发明的一范例实施例所显示的信道可靠度信息更新程序的示意图。请参照图9,在一个特定时间点,内存管理电路602会执行对应于实体单元810(0)的信道可靠度信息更新程序。在此信道可靠度信息更新程序中,内存管理电路602指示将数据901(即,第一数据)程序化至实体单元810(0)。请参照图10,在本范例实施例中,在将数据901程序化至实体单元810(0)之前,内存管理电路602会将一个随机种子1001输入至随机数产生器1010以产生数据901。也就是说,在本范例实施例中,数据901为随机数据。其中,随机数产生器1010可以是扰码器(scrambler)并且可以实作为软件模块或硬件电路。在本范例实施例中,内存管理电路602会储存随机种子1001。藉此,在将数据901程序化至实体单元810(0)之后,内存管理电路602可再次利用随机种子1001产生相同的数据901。在另一范例实施例中,内存管理电 路602也可以直接储存数据901,以在后续需要计算第一信道可靠度信息时使用。在另一范例实施例中,数据901也可以是不经过随机数产生器1010的任意数据或来自主机系统11的数据。此外,在不同的信道可靠度信息更新程序中,所使用的随机种子1001和/或数据901可能相同也可能不同,本发明不加以限制。例如,在某一次的信道可靠度信息更新程序中所使用的随机种子1001和/或数据901,也可以在其他的信道可靠度信息更新程序中使用。请再次参照图9,在将数据901程序化至实体单元810(0)之后,内存管理电路602会指示读取储存有数据901的实体单元810(0)以获得数据902(即,第二数据)。请参照图11,假设在将数据901程序化至实体单元810(0)之后,实体单元810(0)中储存有数据902的记忆胞的临界电压分布包括临界电压分布1110与1120。其中,临界电压分布1110是储存有位“1”的记忆胞(以下亦称为第一记忆胞)的临界电压分布(即,第一临界电压分布),而临界电压分布1120是储存有位“0”的记忆胞(以下亦称为第二记忆胞)的临界电压分布(即,第二临界电压分布)。内存管理电路602会根据数据901与数据902来获得临界电压分布1110与1120。具体而言,在读取数据902的操作中,内存管理电路602会指示利用多个读取电压v1~v5来读取实体单元810(0)中储存有数据902的记忆胞,以获得多个验证位b1~b5。在一范例实施例中,此些验证位b1~b5亦称为软位(softbits)或软信息(softinformation)。相对地,在另一范例实施例中,若仅使用读取电压v1~v5的其中之一来读取此些记忆胞,则只有验证位b1~b5的其中之一会被获得,并且此单一个验证位亦称为硬位(hardbit)或硬信息(hardinformation)。在一范例实施例中,基于多个验证位(例如,验证位b1~b5)来执行的译码程序亦称为软译码程序,而基于单一个验证位来执行的译码程序亦称为硬译码程序。一般来说,软译码程序的错误更正能力强于硬译码程序的错误更正能力,但是,硬译码程序的译码速度会高于软译码程序的译码速度。因此,在一范例实施例中,当欲译码某一数据(例如,某一个码字)时,错误检查与校正电路608会先执行硬译码程序;若硬译码程序译码失败,错误检查与校正电路608会接续执行软译码程序。在一范例实施例中,执行所述信道可靠度 信息更新程序的特定时间点亦可以是在硬译码程序失败时或软译码程序失败时。请参照回图11,在获得验证位b1~b5之后,内存管理电路602会将实体单元810(0)中储存有数据902的每一个记忆胞的临界电压分组至多个电压区间1101~1106的其中之一。例如,假设在利用读取电压v1~v5来读取某一个记忆胞后,此记忆胞反应于读取电压v1~v5回传的验证位b1~b5是“11111”,则内存管理电路602会将此记忆胞的临界电压分组至电压区间1101;假设在利用读取电压v1~v5来读取某一个记忆胞后,此记忆胞反应于读取电压v1~v5回传的验证位b1~b5是“01111”,则内存管理电路602会将此记忆胞的临界电压分组至电压区间1102;假设在利用读取电压v1~v5来读取某一个记忆胞后,此记忆胞反应于读取电压v1~v5回传的验证位b1~b5是“00111”,则内存管理电路602会将此记忆胞的临界电压分组至电压区间1103;假设在利用读取电压v1~v5来读取某一个记忆胞后,此记忆胞反应于读取电压v1~v5回传的验证位b1~b5是“00011”,则内存管理电路602会将此记忆胞的临界电压分组至电压区间1104;假设在利用读取电压v1~v5来读取某一个记忆胞后,此记忆胞反应于读取电压v1~v5回传的验证位b1~b5是“00001”,则内存管理电路602会将此记忆胞的临界电压分组至电压区间1105;假设在利用读取电压v1~v5来读取某一个记忆胞后,此记忆胞反应于读取电压v1~v5回传的验证位b1~b5是“00000”,则内存管理电路602会将此记忆胞的临界电压分组至电压区间1106。在完成分组后,内存管理电路602会根据数据901统计被分组至电压区间1101~1106中的每一个的记忆胞中,属于临界电压分布1110的记忆胞(即,实际储存位“1”的第一记忆胞)的总数(以下亦称为第一总数)。同时,内存管理电路602会根据数据901统计被分组至电压区间1101~1106中的每一个的记忆胞中,属于临界电压分布1120的记忆胞(即,实际储存位“0”的第二记忆胞)的总数(以下亦称为第二总数)。然后,内存管理电路602会根据第一总数与第二总数来计算第一信道可靠度信息。请参照图12,假设在属于临界电压分布1120的记忆胞中,被分组至电压区间1101~1106的记忆胞的总数分别为“5”、“6”、“9”、“72”、“309”及“18031”,而在属于临界电压分布1110的记忆胞中,被分组至电压区间1101~1106的记 忆胞之总数分别为“17497”、“230”、“208”、“189”、“124”及“184”,则内存管理电路602可分别计算出对应于这6个电压区间1101~1106之记忆胞的信道可靠度信息为“-8”、“-4”、“-3”、“-1”、“1”及“5”。这些信道可靠度信息皆属于第一信道可靠度信息。尔后,当这些记忆胞被用来储存其他数据(即,第三数据)且此些数据被读取出来时,信道可靠度信息“-8”、“-4”、“-3”、“-1”、“1”及“5”可分别被用来译码从相对应的记忆胞中读取出来的数据。在一范例实施例中,内存管理电路602可根据以下方程序(1)来计算上述第一信道可靠度信息:其中,y表示电压区间1101~1106中的某一个,cnt(x=1|y)表示此电压区间中第一记忆胞(实际储存位“1”的记忆胞)的总数,cnt(x=0|y)表示此电压区间中第二记忆胞(实际储存位“0”的记忆胞)的总数,并且llr(y)表示对应于此电压区间中所有记忆胞的信道可靠度信息。然而,在另一范例实施例中,在获得第一总数与第二总数之后,第一信道可靠度信息亦可以采用任意的算法来计算,本发明并不限于使用方程式(1)。在一范例实施例中,在获得上述第一信道可靠度信息之后,此第一信道可靠度信息可能不会直接被错误检查与校正电路608使用。例如,内存管理电路602会根据第一信道可靠度信息来查询一查找表,以获得记录在此查找表中的一个默认信道可靠度信息。尔后,错误检查与校正电路608会根据此默认信道可靠度信息来译码上述第三数据。在一范例实施例中,第一数据还可以用来更新未储存此第一数据的其他实体单元所对应的信道可靠度信息。例如,在一范例实施例中,内存管理电路602会根据计算出来的第一信道可靠度信息从多个信道可靠度信息集合中选择其中之一。例如,此些信道可靠度信息集合被记载于一查找表。内存管理电路602会从此些信道可靠度信息集合中寻找并选择一个特定的信道可靠度信息集合。例如,所选择的信道可靠度信息集合可能包含与第一信道可靠度信息(或上述默认信道可靠度信息)相同或相近的信道可靠度信息。内存管理电路602会从所选择的信道可靠度信息集合中获得对应于另一实体单元(以下亦称为第二实体单元)的信道可靠度信息(以下亦称为第二信道可靠度信息)。 例如,此第二信道可靠度信息会记录于所选择的信道可靠度信息集合中。往后,错误检查与校正电路608即可根据此第二信道可靠度信息来执行对应于第二实体单元的译码程序,以译码储存于第二实体单元的数据(以下亦称为第四数据)。在一范例实施例中,上述第一实体单元与上述第二实体单元是位于同一条字符线或同一个字符线层。例如,若第一实体单元是位于某一条字符线的一个下实体程序化单元,则第二实体单元可以是同样位于此字符线的上实体程序化单元和/或额外实体程序化单元。图13是根据本发明的一范例实施例所显示的实体单元的示意图。请参照图13,实体单元810(0)~810(2)位于同一条字符线或同一个字符线层。其中,实体单元810(0)是下实体程序化单元、实体单元810(1)是上实体程序化单元,并且实体单元810(2)是额外实体程序化单元。实体单元810(0)~810(2)分别包含一个数据位区1301与一个冗余位区1302。实体单元810(0)~810(2)中的每一个的数据位区1301与冗余位区1302分别用于储存来自主机系统11的用户数据与相对应的系统数据(例如,ecc)。在一范例实施例中,上述第一数据的储存位置可以是实体单元810(0)~810(2)的至少其中之一的数据位区1301和/或冗余位区1302。在图13的一范例实施例中,第一数据仅储存于实体单元810(0)中。例如,此第一数据可能仅储存于实体单元810(0)的数据位区1301、仅储存于实体单元810(0)的冗余位区1302、或者同时储存于实体单元810(0)的数据位区1301与实体单元810(0)的冗余位区1302。第一数据的数据大小可以是等于或小于一个数据位元区1301的容量、等于或小于一个冗余位元区1302的容量大小、或者等于整个实体单元810(0)的容量。在利用储存于实体单元810(0)的第一数据计算出对应于实体单元810(0)的信道可靠度信息之后,内存管理电路602可从某一个信道可靠度信息集合中查询对应于实体单元810(1)的信道可靠度信息和/或对应于实体单元810(2)的信道可靠度信息。此外,在一范例实施例中,第一数据亦可以储存于实体单元810(1)和/或810(2)并且可用于计算实体单元810(0)~810(2)中未储存第一数据的实体单元所对应的信道可靠度信息。在一范例实施例中,在获得对应于第一实体单元的第一信道可靠度信息 (或上述默认信道可靠度信息)之后,此第一信道可靠度信息(或上述默认信道可靠度信息)亦可以被直接对应至特定的实体单元(以下亦称为第三实体单元)。例如,此第三实体单元的使用程度会与第一实体单元的使用程度属于同一个使用程度范围。例如,某一个使用程度范围是抹除计数大于0且小于250,另一个使用程度范围是抹除计数大于250且小于500等。使用程度范围亦可以视实务上的需求来设定。例如,使用程度范围还可以是与位错误率、写入计数、读取计数及数据储存时间等参数有关。图14是根据本发明的一范例实施例所显示的译码方法的流程图。请参照图14,在步骤s1401中,程序化第一数据至第一实体单元。在步骤s1402中,读取第一实体单元以获得第二数据。在步骤s1403中,根据第一数据与第二数据获得对应于第一位值的第一临界电压分布与对应于第二位值得第二临界电压分布,其中第一位值与第二位值不同。在步骤s1404中,根据第一临界电压分布与第二临界电压分布计算对应于第一实体单元的第一信道可靠度信息。在步骤s1405中,根据所述第一信道可靠度信息来译码储存于第一实体单元的第三数据。然而,图14中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图14中各步骤可以实作为多个程序代码或是电路,本发明不加以限制。此外,图14的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。综上所述,在将第一数据储存至第一实体单元并藉由读取第一实体单元来获得第二数据之后,通过分析第一数据与第二数据,对应于第一位值的第一临界电压分布与对应于第二位值的第二临界电压分布会被获得。根据第一临界电压分布与第二临界电压分布,对应于第一实体单元的第一信道可靠度信息会被获得。尔后,此第一信道可靠度信息即可用来译码储存于第一实体单元中的数据,从而提升译码效率。此外,在获得第一信道可靠度信息之后,此第一信道可靠度信息也可以被直接用来设定使用程度与第一实体单元相当和/或与第一实体单元属于同一字符线(或字符线层)的其他实体单元,从而提高信道可靠度信息的更新效率。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中普通技术人员,在不脱离本发明的精神和范围内,当可作些许的 改动与润饰,故本发明的保护范围当视所附权利要求界定范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1