本申请要求于2018年3月16日提交的申请号为62/643,948的美国临时申请的权益,其全部内容通过引用并入本文。
本公开的实施例涉及一种能够利用自适应阈值执行解码方案的存储器系统及其部件以及这种存储器系统的操作方法。
背景技术:
计算机环境范例已经转变成可以被随时随地使用的普适计算系统。因此,诸如移动电话、数码相机以及笔记本计算机的便携式电子装置的使用已经迅速增加。通常,这些便携式电子装置使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
由于采用存储器装置的数据存储装置不具有移动部件,因此它们提供优良的稳定性、耐用性、高信息访问速度以及低功耗。具有这些优点的数据存储装置的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡和固态硬盘(ssd)。
ssd可以包括闪速存储器部件和控制器,该控制器包括将闪速存储器部件桥接到ssd输入/输出(i/o)接口的电子器件。ssd控制器可以包括运行诸如固件的功能部件的嵌入式处理器。ssd功能部件通常是装置特定的,并且在大多数情况下,ssd功能部件可以被更新。
两种主要类型的闪速存储器以nand和nor逻辑门命名。各个闪速存储器单元表现出与其相应门的内部特性类似的内部特性。nand型闪速存储器可以以块(或页面)来写入和读取,其中块(或页面)通常远小于整个存储器空间。nor型闪速存储器允许将单个机器字(字节)写入至擦除位置或独立地读取单个机器字(字节)。nand型闪速存储器主要在存储卡、usb闪存驱动器、固态硬盘(ssd)和类似产品中操作,以用于数据的一般存储和传输。
例如,nand型闪速存储器可以应用各种错误校正码中的任何一种来校正数据中的错误。一种这样的错误校正码是低密度奇偶校验码(ldpc),该低密度奇偶校验码是用于恢复数据中的相对大量错误的高级错误码。
作为ldpc码的演变,引入了广义ldpc(gldcp)码。gldpc码由许多短长度的交织码字(interleavedcodewords)组成。这些被称为分量码字的短码字通常是可以使用它们的校验子而被解码的汉明码字或博斯-查德胡里-霍昆格姆(bose-chaudhuri-hocquenghem,bch)码字。文献中已知的复杂解码算法提供了针对gldpc码的显著错误校正能力。然而,由于大多数nand读数具有很少的错误需要被校正,因此需要针对这些gldpc码的低复杂度解码器。
在该背景下,提出了本发明的实施例。
技术实现要素:
本发明的方面包括存储器控制器和解码器。在一方面,存储器控制器包括被配置为执行包括多个位的码字的解码的解码器。在解码迭代中,针对属于码字的至少一个分量码字的、这些位中的选择位,解码器被配置为执行以下操作:基于选择位的度来偏置选择位的通道信息;基于关于是否翻转选择位的初始判决和偏置的通道信息来计算该初始判决的可靠性指示符;将可靠性指示符与自适应阈值进行比较,其中基于选择位的度和来自初始判决的不满意校验(usc)信息来确定自适应阈值;判决是否翻转选择位;并且基于比较操作来更新初始判决以及选择位所属的每个分量码字的校验子。
解码器优选地是位翻转(bf)解码器。
本发明的其它方面包括可以由存储器控制器及其部件、诸如解码器、特别是bf解码器执行的解码方法。在这一点上,本发明的另一方面涉及一种解码包括多个位的码字的方法。
针对属于码字的至少一个分量码字的、这些位中的选择位,这种方法包括以下操作或步骤:基于选择位的度来偏置选择位的通道信息;基于关于是否翻转选择位的初始判决和偏置的通道信息来计算该初始判决的可靠性指示符;将可靠性指示符与自适应阈值进行比较,其中基于选择位的度和来自初始判决的不满意校验(usc)信息来确定自适应阈值;判决是否翻转选择位;并且基于比较操作来更新初始判决以及选择位所属的每个分量码字的校验子。
根据以下描述,本发明的其它方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是根据本发明的实施例的存储器系统的示意图。
图5示出根据本发明的实施例的利用位翻转(bf)解码器解码gldpc码的示例性虚拟程序代码(pseudocode)。
图6是示出根据本发明的实施例的利用自适应阈值进行解码的进程中的步骤的流程图。
具体实施方式
下面参照附图更详细地描述各个实施例。然而,本发明可以不同的形式实施,因此不应该被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开彻底且完整,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”,“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这样的短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中指示相同的部分。
本发明可以包括下列的多种方式来实施,比如:进程;设备;系统;物品的组成;在计算机可读存储介质上实施的计算机程序产品;和/或处理器,诸如适合于执行存储在与处理器联接的存储器上和/或由与处理器联接的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任何其它形式可以被称为技术方案。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适合于执行任务的、诸如处理器或存储器的部件可以被实施为临时配置为在给定时间执行该任务的通用部件或者被制造为执行该任务的特定部件。如本文所使用的,术语“处理器”等是指适合于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
以下与示出本发明的方面的附图一起提供本发明的实施例的详细描述。结合这些实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定。本发明包括在权利要求范围内的许多替换、修改和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是用于示例的目的;本发明可以在没有这些具体细节中的一些或全部的情况下根据权利要求书来实践。为清楚起见,没有详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地使本发明模糊。
图1是示意性地示出根据本发明的实施例的存储器系统的框图。
参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200,半导体存储器装置200可以表示一个以上这样的装置。半导体存储器装置200可以是闪速存储器装置,尤其是nand型闪速存储器装置。
存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出(i/o)线接收命令cmd、地址addr和数据data。半导体存储器装置200可以通过电力线接收电力pwr,并且通过控制线接收控制信号ctrl。控制信号ctrl可以包括命令锁存使能(cle)信号、地址锁存使能(ale)信号、芯片使能(ce)信号、写入使能(we)信号、读取使能(re)信号等。
存储器控制器100和半导体存储器装置200可以集成在诸如固态硬盘(ssd)的单个半导体装置中。ssd可以包括用于在其中存储数据的存储装置。当存储器系统10用于ssd时,联接至存储器系统10的主机(未示出)的操作速度可以得到显著提高。
存储器控制器100和半导体存储器装置200可以集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以集成为配置:个人计算机存储卡国际协会(pcmcia)的pc卡、标准闪存(cf)卡、智能媒体(sm)卡、记忆棒、多媒体卡(mmc)、减小尺寸的多媒体卡(rs-mmc)、微型版本的mmc(微型mmc)、安全数字(sd)卡、迷你安全数字(迷你sd)卡、微型安全数字(微型sd)卡、高容量安全数字(sdhc)卡和/或通用闪存(ufs)。
在另一个实施例中,存储器系统10可以被设置为诸如下列的电子装置中的各个部件中的一个:计算机、超移动pc(umpc)、工作站、上网本计算机、个人数字助理(pda)、便携式计算机、网络平板pc、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(pmp)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(dmb)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、射频识别(rfid)装置、以及家庭网络的各种电子装置之一、计算机网络的各种电子装置之一、远程信息处理网络的电子装置之一或计算系统的各种部件之一。
图2是示出根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可以描绘图1中所示的存储器系统10。
参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置的请求而操作,并且特别地,存储待由主机装置访问的数据。
主机装置可以利用各种电子装置中的任何一种来实施。在一些实施例中,主机装置可以包括诸如下列的电子装置:台式计算机、工作站、三维(3d)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机装置可以包括诸如移动电话、智能电话、电子书、mp3播放器、便携式多媒体播放器(pmp)和/或便携式游戏机的便携式电子装置。
半导体存储器装置200可以存储待由主机装置访问的数据。
半导体存储器装置200可以利用诸如动态随机存取存储器(dram)和/或静态随机存取存储器(sram)的易失性存储器装置或者诸如只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁阻式ram(mram)和/或电阻式ram(rram)的非易失性存储器装置来实施。
存储器控制器100可以控制数据在半导体存储器装置200中的存储。例如,存储器控制器100可以响应于来自主机装置的请求来控制半导体存储器装置200。存储器控制器100可以将从半导体存储器装置200读取的数据提供给主机装置,并且可以将从主机装置提供的数据存储至半导体存储器装置200中。
存储器控制器100可以包括通过总线160联接的储存器110、可以被实施为诸如中央处理单元(cpu)的处理器的控制部件120、错误校正码(ecc)部件130、主机接口(i/f)140和存储器接口(i/f)150。
储存器110可以用作存储器系统10和存储器控制器100的工作存储器,并且存储用于驱动存储器系统10和存储器控制器100的数据。当存储器控制器100控制半导体存储器装置200的操作时,储存器110可以存储由存储器控制器100和半导体存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
储存器110可以利用诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)的易失性存储器来实施。如上所述,储存器110可以将由主机装置使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,储存器110可以包括编程存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制部件120可以控制存储器系统10的一般操作,并且响应于来自主机装置的写入请求或读取请求,控制部件120可以控制半导体存储器装置200的写入操作或读取操作。控制部件120可以驱动被称为闪存转换层(ftl)的固件以控制存储器系统10的一般操作。例如,ftl可以执行诸如逻辑到物理(l2p)映射、损耗均衡、垃圾收集和/或坏块处置的操作。l2p映射被称为逻辑块寻址(lba)。
在读取操作期间,ecc部件130可以检测并校正从半导体存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ecc部件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ecc部件130可以基于诸如下列的编码调制来执行错误校正操作:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bch)码、turbo码、turbo乘积码(tpc)、里德-所罗门(reed-solomon,rs)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)、分组编码调制(bcm)或与本发明特别相关的广义ldpc(gldpc)码。ecc部件130可以包括用于根据本发明的实施例的合适错误校正操作的任何和所有电路、系统或装置,例如编码器和解码器。
本发明特别适用于使用位翻转(bf)解码器来解码gldpc码。为此,在本发明的实施例中,ecc部件130包括解码器135,例如bf解码器。如下面更详细说明的,包括bf解码器135的ecc部件130被配置为使用自适应阈值来解码gldpc码。
主机接口140可以通过诸如下列的各种接口协议中的一个或多个与主机装置通信:通用串行总线(usb)、多媒体卡(mmc)、高速外围组件互连(pci-e)、小型计算机系统接口(scsi)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、增强型小型磁盘接口(esdi)和电子集成驱动器(ide)。
存储器接口150可以提供存储器控制器100和存储器装置200之间的接口连接,以允许控制器100响应于来自主机装置的请求来控制半导体存储器装置200。存储器接口150可以在控制部件或cpu120的控制下生成用于半导体存储器装置200的控制信号并且处理数据。当半导体存储器装置200是诸如nand闪速存储器的闪速存储器时,存储器接口150可以在cpu120的控制下生成用于存储器的控制信号并且处理数据。
半导体存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以是页面缓冲器阵列形式的页面缓冲器(阵列)250、列解码器260和输入/输出电路270。存储器单元阵列210可以包括可存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器250、列解码器260和输入/输出电路270可以形成用于存储器单元阵列210的外围电路。外围电路可以执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可以控制外围电路。
电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成诸如擦除电压和通过电压的各种电平的操作电压。
行解码器240可以与电压生成电路230和多个存储块211电子通信。行解码器240可以响应于由控制电路220生成的行地址radd来选择多个存储块211之中的至少一个存储块,并且将从电压生成电路230供应的操作电压传输至被选择的存储块。
页面缓冲器250可以通过位线bl(如图3所示)与存储器单元阵列210电子通信。,页面缓冲器250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线bl预充电,在编程操作和读取操作中将数据传输至被选择的存储块并且从被选择的存储块接收数据,或者临时存储传输的数据。
列解码器260可以将数据传输至页面缓冲器250以及从页面缓冲器250接收数据,并且还可以与输入/输出电路270交换数据。
输入/输出电路270可以将从从外部装置(例如,存储器控制器100)接收的命令和地址传输至控制电路220,将来自外部装置的数据传输至列解码器260,或者通过输入/输出电路270将来自列解码器260的数据输出至外部装置。
控制电路220可以响应于命令和地址来控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中所示的存储器单元阵列210的存储块211中的任何一个。
参照图3,示例性存储块211可以包括联接至行解码器240的多个字线wl0至wln-1、漏极选择线dsl和源极选择线ssl。这些线可以被并行布置并且多个字线在dsl和ssl之间。
示例性存储块211可以进一步包括分别联接至位线bl0至blm-1的多个单元串221。每列的单元串可以包括一个或多个漏极选择晶体管dst和一个或多个源极选择晶体管sst。在所示实施例中,每个单元串具有一个dst和一个sst。在单元串中,多个存储器单元或存储器单元晶体管mc0至mcn-1可以串联联接在选择晶体管dst和sst之间。存储器单元的每个可以形成为存储多位的数据信息的多层单元(mlc)。
每个单元串中的sst的源极可以联接至公共源极线csl,并且每个dst的漏极可以联接至相应位线。单元串中的sst的栅极可以联接至ssl,并且单元串中的dst的栅极可以联接至dsl。横跨单元串的存储器单元的栅极可以联接至各自的字线。也就是说,存储器单元mc0的栅极联接至相应字线wl0,存储器单元mc1的栅极联接至相应字线wl1,等等。联接至特定字线的一组存储器单元可被称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
如前所述,页面缓冲器250可以是包括联接至位线bl0至blm-1的多个页面缓冲器251的页面缓冲器阵列的形式。页面缓冲器251可以响应于页面缓冲器控制信号而操作。例如,在读取操作或验证操作期间,页面缓冲器251可以临时存储通过位线bl0至blm-1接收的数据或者感测位线的电压或电流。
在一些实施例中,存储块211可以包括nand型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括nor型闪速存储器单元。存储器单元阵列210可以被实施为组合两种或更多种类型的存储器单元的混合闪速存储器,或者控制器被嵌入在存储器芯片内部的1-nand闪速存储器。
参照图4,示意性地示出了存储器系统40的一般示例。存储器系统40可以包括易失性存储器400(例如,dram)、非易失性存储器(nvm)402(例如,nand)、诸如本文所述的控制部件或控制逻辑404、诸如本文所述的错误校正码(ecc)模块406以及总线408,存储器系统40的这些部件通过总线408进行通信。易失性存储器400可以包括用于映射位的物理到逻辑地址的逻辑位地址(lba)表410。nvm402可以包括多个存储块以及用于主机写入的开放块430和用于垃圾收集(gc)的开放块440。针对某些功能目的,多个存储块可以被分组在一起作为超级块。
ecc模块406可以包括解码器406a,例如位翻转(bf)解码器。包括解码器406a的ecc模块406可用于执行本发明的方面。根据本公开,本领域技术人员将理解可以与存储器系统一起使用以实现本发明的附加/替代部件。
bf解码器已经被提出用于基于校验子解码的gldpc码。这种解码器可以较少的片上系统(soc)区域为gldpc码提供高吞吐量。然而,在这种布置中,对gldpc码字中的每个位应用了相同的阈值。因此,这表示阈值不会根据每次迭代时出现的错误数量而改变。但是,对于gldpc构造,针对每个位的保护并不固定,因此对所有位翻转应用相同的阈值是不明智的。
本发明的实施例旨在解决该问题。为此,本发明的实施例提供了一种解码方案,该解码方案针对每个位使用基于位的度和不满意校验(usc)信息的自适应阈值和可靠性指示符。这种方案提高了解码器的校正能力。
更特别地,在本发明的实施例中,bf解码器,例如bf解码器135或406a保持单个位指示gldpc码字中的每个位的翻转判决,并且通过将分量码字的校验子解码与自适应阈值进行比较来迭代地更新该判决。每个位的自适应阈值基于位的度和usc信息而变化。此外,可靠性计算功能中的通道失配信息也基于位的度而被偏置。
在描述本发明的实施例时,使用以下符号。
m表示gldpc码字中的分量码字的数量。
n是gldpc码字中的码位的数量。
m[k]表示第k个码位所属的分量码字集合。
lj表示第j个校验子解码表,即,给定第j个分量码字的校验子
s表示第j个校验子编码表,即给定码位k,分量码字的相应校验子是s[k]。
lmax为最大迭代次数。
[t]表示针对任何自然数t的集合{1,2,...,t}。
dk为第k个码位的度。
α(dk)表示第k个码位的通道失配信息的偏置项。
基于从半导体存储器装置200,例如nand闪速存储器接收的gldpc码字,将所有分量码字的校验子初始化。执行解码直到达到最大迭代次数,最大迭代次数可以基于系统配置和/或操作考虑来设置。在每次解码迭代中,独立地进行每个码位翻转判决。
基于给定的码位的当前判决、例如硬判决是否与来自通道的判决匹配以及分量码字的解码是否导致该码位发生错误,来计算可靠性指示符。将码位的度用于预测可靠性。特别地,通道失配信息基于位的度而被偏置。在实施例中,使用偏置系数α(dk)来偏置通道失配信息。偏置改善了可靠性指示符的估计。
将可靠性指示符与自适应阈值进行比较。如果确定可靠性指示符低于自适应阈值,则翻转判决位并且更新相应分量码字的校验子。每个位的翻转判决取决于位的度(dk)和usc信息。当错误的数量减少时,自适应阈值基于usc信息而被改变。可以基于dk和usc信息来构造关于输入值为位的度和usc信息的函数,例如θ(dk,usc)的启发表以提高校正能力。
继续解码迭代直到所有分量码字被解码,即,它们各自的校验子为零,或者直到完成最大迭代次数。在后一种情况下,声明解码失败。
以图5中所示的虚拟程序代码50示出根据实施例的解码方案。解码可以由分别在ecc部件130或ecc模块406内的bf解码器135或406a来执行,并且可以与存储器控制器100的其它部件一起操作。bf解码器135/406a可以利用合适的硬件、软件、固件或其组合来实施。
参照图5,结合其它附图,用于解码gldpc码的bf解码器135/406a通过将通道失配信息进行偏置来计算可靠性,并且使用基于dk和usc信息的自适应阈值来提高bf解码器135/406a的校正能力。
初始化判决位。相应校验节点的校验子被初始化为0,并且随后基于初始判决被更新。在一次或多次迭代直到最大迭代次数中,usc信息被更新,第k个码位的可靠性基于当前初始判决、例如硬判决和当前通道信息、例如通通道失配信息来计算。将可靠性与阈值进行比较,并且基于比较结果来更新该判决和校验子。继续解码迭代,直到所有分量码字的校验子被确定为0。
图6是描述根据本发明实施例的用于解码gldpc码的进程中的步骤的流程图。流程图60中所示的步骤是示例性的。本领域技术人员将理解的是,可以在不脱离本文公开的发明构思的情况下执行附加和/或替代步骤,或者可以改变步骤的顺序以实现本发明的各方面。
在步骤601中,初始化判决位。在步骤602中,初始化分量码字的校验子。在步骤603中,执行硬解码以生成关于是否翻转选择位的初始判决、usc信息和通道信息。选择位属于在步骤602中被初始化的分量码字中的每个。
在步骤604中,选择位的度被用于确定应用于通道信息的偏置系数。然后,在步骤605中,将偏置的通道信息与初始位翻转判决一起使用,以计算该初始判决的可靠性指示符。在步骤606中,将可靠性指示符与自适应阈值进行比较,其中基于选择位的度和usc信息来确定自适应阈值。在步骤607中,进行关于是否翻转选择位的判决。
在步骤608中,基于比较操作来更新初始判决和分量码字的每个的校验子。继续解码迭代直到所有分量码字的校验子为零,这表明这些码字已经被成功解码,或者直到达到最大迭代次数,此时则声明解码失败。
如前所述,本发明的实施例提供了一种利用自适应阈值并且使用偏置通道失配信息来对gldpc码进行位翻转解码的技术。这些技术有利地在存储器系统性能方面提供了显著增益。
虽然为了清楚和理解的目的,已经在一些细节上描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的的是,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的而非限制性的。