存储器系统的编码器和解码器及其方法与流程

文档序号:19119922发布日期:2019-11-13 01:33阅读:365来源:国知局
存储器系统的编码器和解码器及其方法与流程

本申请要求于2018年5月3日提交的申请号为62/666,354和62/666,400的美国临时申请的优先权,其全部内容通过引用并入本文。

本公开的实施例涉及用于存储器系统的编码和解码方案。



背景技术:

计算机环境范例已经转变成可以被随时随地使用的普适计算系统。因此,诸如移动电话、数码相机以及笔记本计算机的便携式电子装置的使用已经迅速增加。通常,这些便携式电子装置使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。

由于使用存储器装置的存储器系统不具有移动部件,因此它们提供优良的稳定性、耐用性、高信息访问速度以及低功耗。具有这些优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有诸如通用闪存(usf)的各种接口的存储卡、和固态驱动器(ssd)。存储器系统可以使用各种类型的编码器和解码器。



技术实现要素:

本发明的方面包括用于减少具有特定值的位的出现的编码器和解码器的存储器系统。

在一方面,一种存储器系统包括:存储器装置,包括存储编码序列的多层单元;以及包括编码器的控制器。编码器使用多个随机序列来加扰(scramble)与从多个逻辑页面之中选择的逻辑页面对应的数据位以生成多个加扰序列;在多个加扰序列之中选择加扰序列作为编码序列;并且向存储器装置提供编码序列以将编码序列存储在多层单元中。在多个加扰序列之中,选择的加扰序列具有最少数量的逻辑高值。

在另一方面,一种存储器系统包括:存储器装置,包括存储编码序列的多层单元;以及包括解码器的控制器。解码器从存储器装置接收编码序列和指示信息;基于指示信息来从多个随机序列之中选择随机序列;并且使用选择的随机序列来解扰(descramble)编码序列以生成解扰序列作为与从多个逻辑页面之中选择的逻辑页面对应的数据位。指示信息指示与多个加扰序列之中、具有最少数量的逻辑高值的加扰序列相对应的随机序列,多个加扰序列通过使用多个随机序列加扰数据位而生成。

在又一方面,一种存储器系统包括:存储器装置,包括存储编码序列的多层单元;以及包括解码器的控制器。解码器从存储器装置接收编码序列;使用低密度奇偶校验(ldpc)码来解码编码序列以生成ldpc解码序列;使用多个随机序列来解扰ldpc解码序列以生成多个解扰序列;并且基于多个解扰序列的循环冗余校验(crc)校验子来在多个解扰序列之中选择待恢复的解扰序列,以生成包括与从多个逻辑页面之中选择的逻辑页面对应的数据位的恢复序列。选择的解扰序列对应于多个加扰序列之中、具有最少数量的逻辑高值的加扰序列,多个加扰序列通过使用多个随机序列加扰数据位而生成。

本发明的附加方面将从下述描述变得显而易见。

附图说明

图1是示出根据本发明的实施例的数据处理系统的框图。

图2是示出根据本发明的实施例的存储器系统的框图。

图3是示出根据本发明的实施例的存储器装置的存储块的电路图。

图4a和图4b是示出存储器装置的单元的状态分布的示图。

图5是示出存储器装置中的不同页面的位错误率的示图。

图6是示出根据本发明的实施例的存储器系统的示图。

图7是示出根据本发明的实施例的编码器的示图。

图8是图示根据本发明的实施例的编码部件的示图。

图9是示出根据本发明的实施例的选择器的示图。

图10是示出根据本发明的实施例的存储器控制器和存储器装置的示图。

图11是示出根据本发明的实施例的加扰序列中的0的数量的累积分布函数的曲线图。

图12是示出根据本发明的实施例的加扰序列中的0的平均频率的曲线图。

图13是示出根据本发明的实施例的原始位错误率与加扰序列的1→0错误与0→1错误的比率的曲线图。

图14是示出根据本发明的实施例的与不同的原始位错误率对应的错误校正码的解码失败率的曲线图。

图15是示出根据本发明的实施例的编码器的操作的流程图。

图16是图示根据本发明的实施例的解码器的示图。

图17是图示根据本发明的实施例的解码部件的示图。

图18是示出根据本发明的实施例的解码器的操作的流程图。

图19是图示根据本发明的实施例的编码器的示图。

图20是示出根据本发明的实施例的选择器的示图。

图21是示出根据本发明的实施例的存储器控制器和存储器装置的示图。

图22是示出根据本发明的实施例的编码器的操作的流程图。

图23是图示根据本发明的实施例的解码器的示图。

图24是图示根据本发明的实施例的解码部件的示图。

图25是示出根据本发明的实施例的选择器的示图。

图26是示出根据本发明的实施例的存储器控制器和存储器装置的示图。

图27是示出根据本发明的实施例的解码器的操作的流程图。

具体实施方式

下面参照附图更详细地描述各个实施例。然而,本发明可以不同的形式实现并且因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例以使本公开彻底且完整,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。

本发明可以包括下列的多种方式来实施:作为进程;设备;系统;在计算机可读存储介质上实现的计算机程序产品;和/或处理器,诸如适于运行存储在与处理器联接的存储器上和/或由与处理器联接的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任何其它形式可以被称为技术方案。通常,可以在本发明的范围内改变所公开进程的步骤的顺序。除非另有说明,否则被描述为适于执行任务的、诸如处理器或存储器的部件可以被实施为临时配置为在给定时间执行该任务的通用部件或者被制造为执行该任务的特定部件。如本文所使用的,术语“处理器”等是指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。

以下与示出本发明的方面的附图一起提供本发明的实施例的详细描述。结合这些实施例来描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定。本发明涵盖在权利要求范围内的许多替换方案、修改方案和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是用于示例的目的;本发明可以在没有这些具体细节中的一些或全部的情况下根据权利要求书来实践。为清楚起见,没有详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。

图1是示出根据本发明的实施例的数据处理系统2的框图。

参照图1,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以从主机装置5接收请求并且响应于接收的请求而操作。例如,存储器系统10可以存储待由主机装置5访问的数据。

主机装置5可以利用各种类型的电子装置中的任意一种来实施。在各个实施例中,主机装置5可以包括诸如台式计算机、工作站、三维(3d)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器以及数字视频播放器的电子装置。在各个实施例中,主机装置5可以包括诸如移动电话、智能电话、电子书、mp3播放器、便携式多媒体播放器(pmp)和/或便携式游戏机的便携式电子装置。

存储器系统10可以利用诸如固态驱动器(ssd)和存储卡的各种类型的存储装置中的任意一种来实施。在各个实施例中,存储器系统10可以被设置为诸如下列的电子装置中的各种部件中的一种:计算机、超移动个人计算机(pc)(umpc)、工作站、上网本计算机、个人数字助理(pda)、便携式计算机、网络平板pc、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(pmp)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(dmb)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境下接收并且发送信息的装置、射频识别(rfid)装置以及家庭网络的各种电子装置中的一个、计算机网络的各种电子装置中的一个、远程信息处理网络的电子装置中的一个、或计算系统的各种部件中的一个。

存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器控制器100可以控制半导体存储器装置200的全部操作。

半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线来接收命令cmd、地址addr和数据data。半导体存储器装置200可以通过电源线接收电力pwr,并且通过控制线接收控制信号ctrl。控制信号ctrl可以包括命令锁存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及根据存储器系统10的设计和配置的其它操作信号。

存储器控制器100和半导体存储器装置200可以集成在诸如固态驱动器(ssd)的单个半导体装置中。ssd可以包括用于在其中存储数据的存储装置。当半导体存储器系统10用于ssd中时,联接至存储器系统10的主机装置(例如图1的主机装置5)的操作速度可以显著提高。

存储器控制器100和半导体存储器装置200可以集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以如此集成以配置:个人计算机存储卡国际协会(pcmcia)的个人计算机(pc)卡、紧凑型闪存(cf)卡、智能媒体(sm)卡、记忆棒、多媒体卡(mmc)、尺寸减小的多媒体卡(rs-mmc)、微型尺寸版的mmc(微型mmc)、安全数字(sd)卡、迷你安全数字(迷你sd)卡、微型安全数字(微型sd)卡、高容量安全数字(sdhc)和/或通用闪存(ufs)。

图2是示出根据本发明的实施例的存储器系统的框图。例如,图2的存储器系统可以描绘图1中所示的存储器系统10。

参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置(例如,图1的主机装置5)的请求而操作,并且特别地,存储待由主机装置访问的数据。在本公开中,半导体存储器装置也可以称为存储器装置,并且存储器控制器也可以称为控制器。

存储器装置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的一般操作,并且响应于来自主机装置的写入请求或读取请求来控制存储器装置200的写入操作或读取操作。控制部件120可以驱动被称为闪存转换层(ftl)的固件以控制存储器系统10的一般操作。例如,ftl可以执行诸如逻辑到物理(l2p)映射、损耗均衡、垃圾收集和/或坏块处理的操作。l2p映射被称为逻辑块寻址(lba)。

在读取操作期间,ecc部件130可以检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ecc部件130可以不校正错误位,而是替代地可以输出指示校正错误位失败的错误校正失败信号。

在各个实施例中,ecc部件130可以基于诸如下列的编码调制来执行错误校正操作:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bose-chaudhuri-hocquenghem,bch)码、turbo码、turbo乘积码(tpc)、里德-所罗门(reed-solomon,rs)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)或分组编码调制(bcm)。然而,错误校正不限于这些技术。这样,ecc部件130可以包括适于错误校正操作的任何和所有电路、系统或装置。

主机接口140可以通过诸如下列的各种接口协议中的一种或多种与主机装置通信:通用串行总线(usb)、多媒体卡(mmc)、高速外围部件互连(pci-e或pcie)、小型计算机系统接口(scsi)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、增强型小型磁盘接口(esdi)和电子集成驱动器(ide)。

存储器接口150可以提供控制器100和存储器装置200之间的接口连接,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可以在控制部件120的控制下生成用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如nand闪速存储器的闪速存储器时,存储器接口150可以在控制部件120的控制下生成用于存储器的控制信号并且处理数据。

存储器装置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生成的行地址而在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230供应的操作电压传输至选择的存储块。

页面缓冲器阵列250可以通过位线bl(如图3所示)而与存储器单元阵列210联接。在编程操作和读取操作中,页面缓冲器阵列250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线bl预充电,将数据传输至选择的存储块和从选择的存储块接收数据,或者临时存储传输的数据。

列解码器260可以将数据传输至页面缓冲器阵列250并且从页面缓冲器阵列250接收数据,或者可以将数据传输至输入/输出电路270并且从输入/输出电路270接收数据。

输入/输出电路270可以将从外部装置(例如,图1的存储器控制器100)接收的命令和地址传输至控制电路220,通过输入/输出电路270将来自外部装置的数据传输至列解码器260,或者将来自列解码器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之间。存储器单元中的每一个可以形成为多层单元。例如,存储器单元中的每一个可以形成为存储1位数据的单层单元(slc)。存储器单元中的每一个可以形成为存储2位数据的多层单元(mlc)。存储器单元中的每一个可以形成为存储3位数据的三层单元(tlc)。存储器单元中的每一个可以形成为存储4位数据的四层单元(qlc)。

每个单元串中的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闪速存储器。

在一些实施例中,存储块211可以包括nand型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括nor型闪速存储器单元。存储器单元阵列210可以被实施为组合两种或更多种类型的存储器单元的混合闪速存储器,或者控制器被嵌入在存储器芯片内部的1-nand闪速存储器。

诸如闪速存储器的存储器装置可以通过使用编程操作将单元调制成不同的状态或电压电平来在每单元中存储多个位。

图4a和图4b是示出不同类型的存储器装置的单元的编程状态或电压(pv)电平的分布的示图。

参照图4a,存储块的每个存储器单元可以利用多层单元,例如存储1位数据的单层单元(slc)、存储2位数据的多层单元(mlc)、存储3位数据的三层单元(tlc)或者存储4位数据的四层单元(qlc)来实施。

slc可以包括2种状态p0和p1。p0可以指示擦除状态,并且p1可以指示编程状态。由于slc可以设置为2种不同状态中的一种,因此每个slc可以根据设定编码方法而编程或存储1位。mlc可以包括4种状态p0、p1、p2和p3。在这些状态之中,p0可以指示擦除状态,并且p1至p3可以指示编程状态。由于mlc可以设置为4种不同状态中的一种,因此每个mlc可以根据设定编码方法而编程或存储2位。tlc可以包括8种状态p0至p7。在这些状态之中,p0可以指示擦除状态,并且p1至p7可以指示编程状态。由于tlc可以设置为8种不同状态中的一种,因此每个tlc可以根据设定编码方法而编程或存储3位。qlc可以包括16种状态p0到p15。在这些状态之中,p0可以指示擦除状态,并且p1至p15可以指示编程状态。由于qlc可以设置为16种不同状态中的一种,因此每个qlc可以根据设定编码方法而编程或存储4位。

参照图4b,对于tlc闪速存储器装置,单元中的每一个可以具有8种状态和用于识别该8种状态的7个pv电平r1至r7。每种状态对应唯一的3位元组(tuple)。单元的第一、第二和第三位分别被一起分组到最低有效位(lsb)页面、中间有效位(csb)页面和最高有效位(msb)页面。

图5是示出存储器装置,例如三层单元(tlc)nand闪速存储器装置中的不同页面的位错误率的示图。nand闪速存储器装置的位错误率通常可能取决于存储在存储器装置的单元中的位序列。

参照图5,tlcnand闪速存储器装置的页面可能具有不同的位错误率(或位错误概率)。关于页面中的每一个,位错误概率可以根据所存储的位的值而不同。对于lsb页面、csb页面和msb页面,比率r=p1→0/p0→1分别约为3、1和100。p1→0可以表示当具有逻辑高值的位(即,位-1)存储在相应页面中时的位错误率,而p0→1可以表示当具有逻辑低值的位(即,位-0)存储在相应页面中时的位错误率。这样,相较于存储位-0时,当存储位-1时msb页面可能具有明显更高的位错误率。这可能是由于第一状态或pv电平(即“111”)相较于其它pv电平的较高方差所引起的。其它页面可能具有大于1的比率r。例如,lsb页面具有大约为3的比率r。这可能是由于对读取操作使用次优阈值所引起的。换言之,对于一些页面(例如,msb页面),不同的pv电平具有不同的噪声方差,这导致1→0错误的概率远大于0→1错误的概率。当位-1被错误地读取为位0时发生1→0错误,并且当位0被错误地读取为位1时发生0→1错误。换言之,比率r表示概率的比率:存储的逻辑高值“1”被错误地读作逻辑低值“0”的概率(第一概率)与存储的逻辑低值“0”被错误地读作逻辑高值“1”的概率(第二概率)的比率。因此,各个实施例提供了使诸如tlcnand闪速存储器装置的存储器装置中的位错误率降低的方案。

图6是示出根据本发明的实施例的存储器系统的示图。

参照图6,存储器系统可以包括控制器100和存储器装置200。存储器装置200可以包括具有诸如单层单元(slc)、多层单元(mlc)、三层单元(tlc)或四层单元(qlc)的存储器单元的nand型闪速存储器装置。在各个实施例中,存储器装置200可以包括具有qlc存储器单元(即,qlc)的nand型闪速存储器装置。

控制器100可以从主机接收命令,并且向存储器装置200提供所接收的命令。例如,控制器100接收写入命令和与写入命令对应的写入数据,并且控制存储器装置200对写入数据执行编程操作。再如,控制器100接收读取命令,并且控制存储器装置200对与读取命令对应的数据执行读取操作。控制器100将对应于读取命令的读取数据传输至主机。

控制器100可以包括编码器600a和解码器600b。在编程操作期间,编码器600a可以基于设定编码方案来对写入数据执行编码操作。在读取操作期间,解码器600b可以基于与编码方案对应的设定解码方案来对读取数据执行解码操作。下面将参照图7至图27描述编码和解码方案。控制器100和存储器装置200可以执行图1和图2中描述的操作。在实施例中,编码器600a和解码器600b可以在图2中所示的控制器100的ecc部件130中实现。如下所述,也可以采用其它合适的布置。通常,编码器600a和解码器600b可以通过硬件、软件、固件或其任何合适的组合来实施。

在各个实施例中,编码器600a可以在编程操作之前,使用多个加扰(即,导向加扰)来执行编码操作,以便减少特定值的位(即,具有逻辑高值“1”的位或位-1)的出现。也就是说,编码器600a可以用作导向加扰编码器。解码器600b可以使用多个解扰来对应于编码器600a的编码操作执行解码操作。

图7至图18示出由图6的编码器600a和解码器600b执行的编码和解码方案。根据实施例,可以利用多个随机序列来加扰页面的数据位,并且可以对加扰序列中的位-1的数量进行计数。可以在加扰序列之中选择具有最少数量的位-1的加扰序列作为编码序列。选择的加扰序列(编码序列)可以与用于选择的加扰序列的指示信息一起存储在存储器装置的单元中。对于读取操作,通过利用多个随机序列之中的相应随机序列解扰编码序列来从编码序列中恢复数据位。使用指示信息来重建相应随机序列。当比率r=p1→0/p0→1(即,1→0错误与0→1错误的比率)大于阈值时,应用图7至图18的编码和解码方案以降低编码序列中的位1的频率或数量。可选地,当比率r=p1→0/p0→1小于阈值时,应用类似的方案来增加编码序列中的位-1的频率或数量。在后一种情况下,可以修改图7至图18的编码和解码方案以在多个随机序列之中选择具有最高数量的位-1的随机序列。

图7是示出根据本发明的实施例的编码器的示图。例如,图7的编码器可以描绘图6中所示的编码器600a。

参照图7,编码器600a可以包括多个编码部件710_1至710_n,以及选择器720。多个编码部件710_1至710_n可以包括第一编码部件710_1、第二编码部件710_2和第n编码部件710_n。

多个编码部件710_1至710_n可以使用多个随机序列来加扰与选择页面对应的数据位以生成多个加扰序列。选择页面可以对应于从多个逻辑页面之中选择的逻辑页面。对于具有三层单元(tlc)的存储器装置,可以从多个逻辑页面(例如,msb、csb和lsb逻辑页面)之中选择msb逻辑页面。

在各个实施例中,多个编码部件710_1至710_n可以包括多个随机发生器和多个加扰器。多个编码部件710_1至710_n中的每一个可以包括随机发生器和加扰器。多个随机发生器可以生成多个随机序列。多个加扰器可以使用多个随机序列来加扰数据位以生成多个加扰序列。多个加扰器中的每一个可以使用多个随机序列之中的相应随机序列来加扰数据位。

在各个实施例中,多个编码部件710_1至710_n中的每一个可以进一步包括用于对值进行计数并且输出计数值的计数器。计数器可以对相应加扰序列中的逻辑高值的数量进行计数,并且输出相应计数值。

选择器720可以在多个加扰序列之中选择加扰序列作为编码序列。选择的加扰序列可以由另外的编码器(例如,低密度奇偶校验(ldpc)编码器)来编码。在各个实施例中,选择器720可以选择具有最少数量的逻辑高值“1”(或位-1)的加扰序列。选择器720可以向存储器装置(例如,图5的存储器装置200)提供编码序列,以将编码序列存储在存储器装置的三层单元中。此外,选择器720可以向存储器装置提供指示信息。指示信息可以识别从其生成选择的加扰序列的随机序列。

图8是示出根据本发明的实施例的编码部件710_1的示图。例如,图8的编码部件可以描绘图7中所示的编码部件710_1至710_n中的一个。

参照图8,编码部件710_1至710_n中的代表性编码部件710_1可以包括随机发生器712、加扰器714和计数器716。随机发生器712可以生成随机序列。在各个实施例中,随机发生器712可以生成伪随机序列。加扰器714可以使用随机序列来加扰数据位以生成加扰序列。在各个实施例中,加扰器714可以通过利用随机序列对数据位执行xor运算来加扰数据位。计数器716可以对加扰序列中的逻辑高值的数量进行计数,以生成计数值以输出。

图9是示出根据本发明的实施例的选择器的示图。例如,图9的选择器可以描绘图7中所示的选择器720。

参照图9,选择器720可以包括第一选择部件722和第二选择部件724。

第一选择部件722可以从编码部件710_1至710_n的计数器716接收多个(例如,n个)计数值。第一选择部件722可以选择多个计数值之中的最小计数值。第一选择部件722可以输出指示多个随机序列之中、与最小计数值对应的随机序列的指示信息。指示信息可以被传输至图6的存储器装置200和第二选择部件724。

第二选择部件724可以从图7和图8中的编码部件710_1至710_n的加扰器714接收多个(例如,n个)加扰序列。第二选择部件724可以基于指示信息从多个加扰序列之中选择具有最少数量的位-1的加扰序列(最小值加扰序列)。作为编码序列的选择的加扰序列可以由诸如ldpc编码器的编码器来编码,并且然后被传输至存储器装置200。

图10是示出根据本发明的实施例的存储器控制器100和存储器装置200的示图。例如,图10的存储器控制器100可以包括如图7至图9所示的部件,并且存储器装置200可以利用具有诸如三层单元(tlc)的多层单元的闪速存储器装置200'来实施。

参照图10,存储器控制器100可以包括多个编码部件和选择器720。多个编码部件710_1中的每一个可以包括随机发生器712、加扰器714和计数器716。选择器720可以包括如图9所示的第一选择部件722和第二选择部件724。第一选择部件722可以利用用于在多个输入计数值之中选择最小值的最小值选择器722'来实施。第二选择部件724可以利用用于在多个加扰序列之中选择序列的多路复用器(mux)724'来实施。

加扰器714可以利用随机序列来加扰特定页面(例如,msb页面)的数据位(或对特定页面(例如,msb页面)的数据位执行xor运算)以生成加扰序列。因此,多个编码部件的多个加扰器714可以生成多个加扰序列。可以由多个编码部件的随机发生器712使用不同(但确定的)种子来生成加扰器714所使用的随机序列。计数器716可以对相应加扰序列中的位-1的数量进行计数。最小值选择器722'可以在多个计数值之中选择最小计数值(即,与具有最少数量的位-1的加扰序列对应的计数值)。此外,最小值选择器722'可以生成指示信息。指示信息可以是用于识别从其生成具有最少数量的位-1的加扰序列的随机序列的信息(例如,索引或种子)。指示信息可以被传输至多路复用器724'。多路复用器724'可以基于指示信息,在多个加扰序列之中选择具有最小计数值的序列(即,具有最少数量的位-1的序列)。这样,特定加扰序列的指示信息识别从其生成特定加扰序列的随机序列。相应加扰序列和指示信息可以被提供并存储在闪速存储器装置200'的特定页面中。

在各个实施例中,可以同时对多个序列执行随机序列生成以及加扰(或xor)和计数操作,以减少图6中的编码器600a的编码处理的延迟。换言之,多个编码部件可以并联联接,并且并行地执行相应操作。

在各个实施例中,使用上面的导向加扰方案对msb页面的数据位进行编码。可选地,如果观察到比率r的值大于某个阈值(例如,1或3),则可以对lsb页面和csb页面执行相同方案。

图11是示出根据本发明的实施例的加扰序列中的0的数量的累积分布函数(cdf)的曲线图。图12是示出根据本发明的实施例的加扰序列中的0的平均频率的曲线图。

参照图11和图12,当对各个随机序列执行导向加扰时,示出了在导向加扰之后,cdf和加扰序列(例如,1kb序列)中的0的期望频率。随机序列的数量可以是可变的。随着序列数量增加(例如,2→4→8→16→32→64→128),位-1的频率或数量减少。换言之,位-0的频率或数量随着序列的数量增加而增加,但增益正在减小。在图12中,x轴以对数标度表示。

图13是示出根据本发明的实施例的原始位错误率与加扰序列的1→0错误的概率(即,p1→0)与0→1错误的概率(即,p0→1)的比率的曲线图。图14是示出根据本发明的实施例的与不同的原始位错误率对应的错误校正码的解码失败率的曲线图。

参照图13,示出了在导向加扰之后,针对从1至64的比率r的原始位错误率,并且用于导向加扰的随机序列的数量从2至128变化。可以观察到,有效位错误率随着随机序列的数量增加或随着比率r增大而减小。在最好的情况下,原始位错误率从0.01减少至0.009725,即降低约10倍。降低的位错误率意味着以这个倍数降低了解码失败率,如图14所示。

图15是示出根据本发明的实施例的编码器的编码操作1500的流程图。例如,图15的操作可以由包括图6至图10的编码器600a的存储器控制器100执行。存储器控制器100可以控制包括诸如三层单元(tlc)的存储器单元的存储器装置200,以对存储器单元执行编程操作。

参照图15,编码操作1500可以包括操作1510、1520和1530。操作1510可以包括使用多个随机序列来加扰与从多个逻辑页面之中选择的逻辑页面对应的数据位,以生成多个加扰序列。

在各个实施例中,操作1510可以包括由多个随机发生器生成多个随机序列。操作1510可以进一步包括使用多个随机序列来加扰数据位以生成多个加扰序列。可以由多个加扰器来执行加扰。在各个实施例中,多个加扰器中的每一个可以通过利用相应随机序列对数据位执行xor运算来加扰数据位,以生成相应加扰序列。

在各个实施例中,多个逻辑页面可以包括最高有效位(msb)页面、中间有效位(csb)页面和最低有效位(lsb)页面。在实施例中,选择的逻辑页面可以包括msb页面。可选地,选择的逻辑页面可以包括第一概率与第二概率的比率大于阈值的逻辑页面,第一概率指示存储在存储器装置中的逻辑高值被错误地读取为逻辑低值的概率,并且第二概率指示存储在存储器装置中的逻辑低值被错误地读取为逻辑高值的概率。

操作1520可以包括在多个加扰序列之中选择加扰序列作为编码序列。加扰序列可以被另外编码并且作为编码序列输出。

在各个实施例中,选择的加扰序列可以对应于多个加扰序列之中的、具有最少数量的逻辑高值的加扰序列(最小值加扰序列)。

在各个实施例中,可以由用于执行选择操作的选择器来执行操作1520。

在各个实施例中,操作1520可以包括对多个加扰序列中的逻辑高值的数量进行计数并且输出计数值。可以由多个计数器执行计数。

在各个实施例中,操作1520可以包括由第一选择部件接收多个计数值、选择最小计数值并且将选择的计数值传输至第二选择部件。此外,操作1520可以包括由第二选择部件接收多个加扰序列,并且在多个加扰序列之中对应于选择的计数值选择最小值加扰序列。可以另外地对选择的加扰序列进行编码。

操作1530可以包括向存储器装置200提供编码序列以将编码序列存储在三层单元中。

在各个实施例中,操作1530可以包括由第一选择部件将指示信息输出至存储器装置。指示信息可以指示多个随机序列之中的、对应于最小计数值的随机序列。此外,操作1530可以包括由第二选择部件将作为编码序列的最小值加扰序列输出至存储器装置。

图16是示出根据本发明的实施例的解码器的示图。例如,图16的解码器可以描绘图6中所示的解码器600b。

参照图16,解码器600b可以从存储器装置(例如,图6的存储器装置200)接收编码序列并且恢复编码序列中的数据位。在各个实施例中,存储器装置可以包括存储编码序列的多层单元,诸如三层单元(tlc)。数据位可以对应于从与多层单元对应的多个逻辑页面之中选择的逻辑页面的位。

解码器600b可以包括多个解码部件1610_1至1610_n。多个解码部件1610_1至1610_n可以包括第一解码部件1610_1、第二解码部件1610_2和第n解码部件1610_n。

多个解码部件1610_1至1610_n中的每一个可以从存储器装置200接收编码序列和指示信息。多个解码部件1610_1至1610_n中的每一个能够生成随机序列。在各个实施例中,使用指示信息,可以确定待生成的、与多个加扰序列之中的具有最少数量的逻辑高值的加扰序列对应的随机序列。

可以基于指示信息来选择多个解码部件1610_1至1610_n中的一个。例如,可以选择第一解码部件1610_1。然后,选择的解码部件1610_1可以生成由指示信息识别的随机序列。选择的解码部件1610_1可以使用它刚刚生成的随机序列来解扰编码序列以生成解扰序列。生成的解扰序列可以包括与先前从多个逻辑页面之中选择的逻辑页面对应的数据位。如前所述,在具有三层单元(tlc)的存储器装置中,可以在多个逻辑页面(例如,msb页面、csb页面和lsb页面)之中已选择逻辑页面(例如,msb页面)作为逻辑页面。

图17是图示根据本发明的实施例的解码器的解码部件的示图。例如,图17的解码部件可以描绘图16中所示的解码器600b的解码部件1610_1至1610_n之中的第一解码部件1610_1。其余解码部件1610_2至1610_n中的每一个可以与第一解码部件1610_1相同。

参照图17,解码器600b可以包括如图16所示的多个解码部件1610_1至1610_n,并且可以进一步包括选择器1620。多个解码部件1610_1至1610_n可以从存储器装置200接收编码序列。

选择器1620可以从图6的存储器装置200接收指示信息。

选择器1620可以基于指示信息来选择或启用多个解码部件1610_1至1610_n中的一个。例如,可以选择或启用多个解码部件1610_1至1610_n之中的第一解码部件1610_1。

第一解码部件1610_1可以包括随机发生器1612和解扰器1614。随机发生器1612可以生成诸如伪随机序列的随机序列。解扰器1614可以使用随机序列来解扰编码序列以生成解扰序列。在各个实施例中,解扰器1614可以通过利用随机序列对编码序列执行xor运算来解扰编码序列。解扰序列可以包括与从多个逻辑页面之中选择的特定逻辑页面对应的数据位。可以由诸如低密度奇偶校验(ldpc)解码器的解码器来另外地解码解扰序列。

图18是示出根据本发明的实施例的解码器的解码操作1800的流程图。例如,可以由包括图6、图16和图17的解码器600b的存储器控制器100执行图18的操作。存储器控制器100可以控制包括诸如三层单元(tlc)的存储器单元的存储器装置200,以对存储器单元执行读取操作。

参照图18,解码操作1800可以包括操作1810、1820和1830。操作1810可以包括从存储器装置200接收编码序列和指示信息。操作1820可以包括基于指示信息,在多个随机序列之中选择随机序列。

在各个实施例中,指示信息可以指示与多个加扰序列之中、具有最少数量的逻辑高值的加扰序列对应的随机序列。通过使用多个随机序列加扰数据位来生成多个加扰序列。

操作1830可以包括使用选择的随机序列来解扰编码序列以生成解扰序列。解扰序列可以包括与从多个逻辑页面中选择的逻辑页面对应的数据位。

在各个实施例中,操作1830可以包括基于指示信息,使用相应随机序列来解扰编码序列。可以由从多个随机发生器中选择的随机发生器生成相应随机序列。

在各个实施例中,操作1830可以包括通过利用选择的随机序列对编码序列执行xor运算来解扰编码序列。

在各个实施例中,多个逻辑页面可以包括最高有效位(msb)页面、中间有效位(csb)页面和最低有效位(lsb)页面。在各个实施例中,选择的逻辑页面可以包括msb页面。可选地,选择的逻辑页面可以包括第一概率与第二概率的比率大于阈值的逻辑页面,第一概率指示存储在存储器装置中的逻辑高值被错误地读取为逻辑低值的概率,并且第二概率指示存储在存储器装置中的逻辑低值被错误地读取为逻辑高值的概率。

如上面结合图7至图18所述,编码和解码方案需要存储指示信息(或额外位),以指示在编码器600a处所使用的加扰序列(或随机序列)。因此,这些方案可能增长诸如低密度奇偶校验(ldpc)码的错误校正码的速率(rate)。此外,当导向加扰仅用于特定页面(例如,msb页面)时,msb页面需要具有与lsb页面和csb页面不同的速率的ldpc码。这表示需要较高的硬件成本以实施用于多个码速率的解码器。因此,期望允许使用不需要存储额外位的导向加扰。

图19至图27示出将由图6的编码器600a和解码器600b执行的编码和解码方案。根据实施例,导向加扰编码器可以联接在循环冗余校验(crc)编码器和低密度奇偶校验(ldpc)编码器之间。选择的加扰序列的指示信息可以不被存储在存储器装置的相应页面中。为了恢复数据位,可以借助crc奇偶校验位来恢复指示信息。在解码器中,可以并行测试所有候选随机序列。可以选择与具有全0的crc校验子对应的随机序列来恢复数据位。

图19是示出根据本发明的实施例的编码器的示图。例如,图19的编码器可以描绘图6中所示的编码器600a。

参照图19,类似于图7中的编码器600a,编码器600a可以包括多个编码部件1910_1至1910_n和选择器1920。多个编码部件1910_1至1910_n可以包括第一编码部件1910_1,第二编码部件1910_2和第n编码部件1910_n。此外,编码器600a可以包括循环冗余校验(crc)编码部件1905和低密度奇偶校验(ldpc)编码部件1930。

crc编码部件1905可使用循环冗余校验(crc)码来编码数据位。crc编码部件1905可以将编码数据位输出到多个编码部件1910_1至1910_n。

多个编码部件1910_1至1910_n可以从crc编码部件1905接收编码数据位,并且加扰编码数据位以生成多个加扰序列。编码数据位可以对应于从多个逻辑页面之中选择的特定逻辑页面。对于具有三层单元(tlc)的存储器装置,可以在多个逻辑页面(例如,图4b的msb页面、csb页面和lsb页面)之中选择msb页面。

在各个实施例中,多个编码部件1910_1至1910_n可以包括多个随机发生器和多个加扰器。类似于图8中的编码部件710,多个编码部件1910_1至1910_n中的每一个可以包括随机发生器和加扰器。多个随机发生器可以生成多个随机序列。多个加扰器可以使用多个随机序列来加扰数据位以生成多个加扰序列。多个加扰器中的每一个可以使用相应随机序列来加扰编码数据位。

在各个实施例中,多个编码部件1910_1至1910_n可以进一步包括用于输出多个计数值的多个计数器。换言之,类似于图8中的编码部件710,多个编码部件1910_1至1910_n中的每一个可以包括相应计数器。多个计数器中的每一个可以对相应加扰序列中的逻辑高值的数量进行计数,并且输出相应计数值。

选择器1920可以选择多个加扰序列中的一个作为编码序列。在各个实施例中,选择器1920可以选择多个加扰序列之中的最小值加扰序列,即具有最少数量的逻辑高值“1”(或位-1)的加扰序列作为编码序列。

ldpc编码部件1930可以从选择器1920接收编码序列。ldpc编码部件1930可以使用低密度奇偶校验(ldpc)码来编码编码序列。ldpc编码部件1930可以向存储器装置(例如,图5的存储器装置200)提供ldpc编码序列,以将ldpc编码序列存储在存储器装置的三层单元中。

图20是示出根据本发明的实施例的选择器1920的示图。例如,图20的选择器可以描绘图19中所示的选择器1920。

参照图20,选择器1920可以包括第一选择部件1922和第二选择部件1924。

第一选择部件1922可以从图19中的编码部件1910_1至1910_n的计数器接收多个(例如,n个)计数值。第一选择部件1922可以选择多个计数值之中的最小计数值。此外,第一选择部件1922可以生成指示信息。指示信息可以是用于识别从其生成具有最少数量的位-1的加扰序列的随机序列的信息(例如,索引或种子)。第一选择部件1922可以将指示信息输出至第二选择部件1924。

第二选择部件1924可以从图19中的编码部件1910_1至1910_n中的加扰器接收多个(例如,n个)加扰序列,并且基于指示信息从中选择最小值加扰序列。第二选择部件1924可以将最小值加扰序列作为编码序列输出至存储器装置200。最小值加扰序列可以是具有最少数量的逻辑高值的序列。

图21是示出根据本发明的实施例的存储器控制器100和存储器装置200的示图。例如,图21的存储器控制器100可以包括如图19至图20所示的部件,并且存储器装置200可以利用具有诸如三层单元(tlc)的多层单元的闪速存储器装置200'来实施。

参照图21,存储器控制器100可以包括循环冗余校验(crc)编码器1905、多个编码部件、选择器1920和低密度奇偶校验(ldpc)编码器1930。多个编码部件1910_1中的每一个可以包括随机发生器1912、加扰器1914和计数器1916。选择器1920可以包括如图20所示的第一选择部件1922和第二选择部件1924。第一选择部件1922可以利用用于在多个输入值之中选择最小值,即最低值的最小值选择器1922'来实施。第二选择部件1924可以利用用于选择多个输入序列中的一个的多路复用器(mux)1924'来实施。

crc编码部件1905可使用循环冗余校验(crc)码来编码数据位。crc编码部件1905可以将编码数据位输出至多个编码部件1910_1至1910_n。

加扰器1914可以利用多个随机序列来加扰特定页面(例如,msb页面)的数据位(或对特定页面(例如,msb页面)的数据位执行xor运算),以生成多个加扰序列。可以由随机发生器1912使用不同(但确定的)种子来生成随机序列。计数器1916可以对多个加扰序列中的每一个中的位-1的数量进行计数。最小值选择器1922'可以选择最小计数值(即,位-1的最小计数)作为指示信息。多路复用器1924'可以基于指示信息来选择与最小或最低计数值对应的序列。指示信息(例如,索引或种子)可用于确定与选择的加扰序列对应的随机序列。

ldpc编码部件1930可以从选择器1920接收编码序列。ldpc编码部件1930可以使用低密度奇偶校验(ldpc)码来编码编码序列。ldpc编码部件1930可以将ldpc编码序列提供至闪速存储器装置200',以将ldpc编码序列存储在存储器装置的三层单元中。

由于ldpc码的最小距离通常没有像博斯-查德胡里-霍昆格姆(bch)码或里德-所罗门(rs)码的其它码那样大,因此ldpc码与crc码级联使用。这使得检测到ldpc解码器引起误校正的情况,即收敛到与传输的码字不同的码字的情况。根据图21的编码方案,crc码也用于另一目的,即用于在使用导向加扰时从一组候选序列中确定相应序列。

在图21中,可以由crc编码部件1905利用crc奇偶校验位来填充(pad)数据位以生成编码数据位(即,crc码字)。接着,由多个编码部件1910_1至1910_n和选择器1920,通过利用候选随机序列来加扰crc码字(例如,对crc码字执行xor运算)并且选择具有最少数量的位-1的加扰序列来执行导向加扰。通常,选择的加扰序列的指示信息(或索引)将被填充到加扰的crc码字。然而,根据编码方案,指示信息没有被提供并存储至存储器装置200。最后,ldpc编码部件1930用于确定ldpc奇偶校验位,并且将ldpc码字存储在闪速存储器装置200'的单元中。

对于一些页面(例如,csb页面和lsb页面),可以不使用导向加扰。在两种情况下,对ldpc编码部件1930的输入具有相同的长度,因此可以使用相同的ldpc码。

图22是示出根据本发明的实施例的编码器的操作2200的流程图。例如,图22的操作可以由包括图6和图19至图21的编码器600a的存储器控制器100执行。存储器控制器100可以控制包括诸如三层单元(tlc)的存储器单元的存储器装置200对存储器单元执行编程操作。

参照图22,编码操作2200可以包括操作2210、2220、2230、2240和2250。操作2210可以包括使用循环冗余校验(crc)码来编码数据位,并且将编码数据位输出到多个编码部件中的每一个。

操作2220可以包括使用多个随机序列来加扰与从多个逻辑页面之中选择的逻辑页面相对应的编码数据位,以生成多个加扰序列。

在各个实施例中,操作2220可以包括由多个随机发生器生成多个随机序列,并且由多个加扰器使用多个随机序列来加扰编码数据位以生成多个加扰序列。在各个实施例中,多个加扰器中的每一个可以通过利用相应随机序列对数据位执行xor运算来加扰编码数据位。

在各个实施例中,多个逻辑页面可以包括最高有效位(msb)页面、中间有效位(csb)页面和最低有效位(lsb)页面。在实施例中,选择的逻辑页面可以包括msb页面。可选地,选择的逻辑页面可以包括存储在存储器装置中的逻辑高值被错误地读取为逻辑低值的概率(第一概率)与存储在存储器装置中的逻辑低值被错误地读取为逻辑高值的概率(第二概率)的比率大于阈值的逻辑页面。

操作2230可以包括在多个加扰序列之中选择加扰序列作为编码序列。

在各个实施例中,在多个加扰序列之中,选择的加扰序列可以具有最少数量的逻辑高值。

在各个实施例中,操作2230可以包括在多个加扰序列之中选择最小值加扰序列作为编码序列。可以由选择器来执行该选择。

在各个实施例中,在多个加扰序列之中,最小值加扰序列可以具有最少数量的逻辑高值。

在各个实施例中,操作2230可以包括计数并输出多个计数值。多个计数器中的每一个可以对相应加扰序列中的逻辑高值的数量进行计数,并且输出相应计数值。可以由多个计数器来执行计数和输出。

在各个实施例中,操作2230可以包括接收多个计数值并且在多个计数值之中选择最小计数值。此外,操作2230可以包括接收多个加扰序列,并且基于指示信息选择多个加扰序列之中的最小值加扰序列。可以由第一选择部件来执行最小计数值的选择,并且可以由第二选择部件来执行最小值加扰序列的选择。

操作2240可以包括接收编码序列、使用低密度奇偶校验(ldpc)码来编码编码序列并且输出ldpc编码序列。

操作2250可以包括向存储器装置200提供ldpc编码序列以将编码序列存储在三层单元中。

图23是示出根据本发明的实施例的解码器的示图。例如,图23的解码器可以描绘图6中所示的解码器600b。

参照图23,解码器600b可以包括低密度奇偶校验(ldpc)解码部件2305、多个(例如,n个)解码部件2310_1至2310_n、选择器2320和循环冗余校验(crc)解码部件2330。多个解码部件2310_1至2310_n可以包括第一解码部件2310_1、第二解码部件2310_2和第n解码部件2310_n。

ldpc解码部件2305可以从存储器装置接收编码序列,并且使用低密度奇偶校验(ldpc)码来解码编码序列以生成ldpc解码序列。

多个解码部件2310_1至2310_n可以使用多个随机序列来解扰ldpc解码序列,以生成多个解扰序列。

在各个实施例中,多个解码部件2310_1至2310_n可以包括多个随机发生器和多个解扰器。多个解码部件2310_1至2310_n中的每一个可以包括随机发生器和解扰器。多个随机发生器可以生成多个随机序列。多个解扰器可以使用多个随机序列来解扰ldpc解码序列以生成多个解扰序列。多个解扰器中的每一个可以使用多个随机序列之中的相应随机序列来解扰ldpc解码序列。

在各个实施例中,多个解码部件2310_1至2310_n可以进一步包括适于计算多个解扰序列的crc校验子的多个计算器。换言之,多个编码部件2310_1至2310_n中的每一个可以包括多个计算器之中的相应计算器。多个计算器中的每一个可以计算crc校验子之中的相应crc校验子,以输出相应crc校验子值。

选择器2320可以在多个解扰序列之中选择待恢复的解扰序列。在各个实施例中,选择器2320可以基于多个解扰序列的循环冗余校验(crc)校验子,来在多个解扰序列之中选择待恢复的解扰序列。可以恢复选择的解扰序列。恢复序列可以包括与从多个逻辑页面之中选择的逻辑页面对应的数据位和crc奇偶校验位。

在各个实施例中,选择的解扰序列对应于在多个加扰序列之中、具有最少数量的逻辑高值“1”(或位-1)的加扰序列,该多个加扰序列通过使用多个随机序列加扰数据位而生成。

crc解码部件2330可以从选择器2320接收恢复序列,使用crc码来执行解码操作以生成数据位。

图24是示出根据本发明的实施例的解码部件2310_1的示图。例如,图24的解码部件可以描绘图23中所示的解码部件2310_1至2310_n中的一个。

参照图24,解码部件2310_1可以包括随机发生器2312、解扰器2314和crc校验子计算器2316。随机发生器2312可以生成随机序列。在各个实施例中,随机发生器2312可以生成伪随机序列。解扰器2314可以使用随机序列来解扰ldpc解码序列以生成解扰序列。在各个实施例中,解扰器2314可以通过利用随机序列对ldpc解码序列执行xor运算来解扰ldpc解码序列。crc校验子计算器2316可以计算解扰序列的crc校验子以输出crc校验子值。

图25是示出根据本发明的实施例的选择器的示图。例如,图25的选择器可以描绘图23中所示的选择器2320。

参照图25,选择器2320可以包括第一选择部件2322和第二选择部件2324。

第一选择部件2322可以从图23和图24中的解码部件2310_1至2310_n的计算器2316接收多个(例如,n个)crc校验子值。第一选择部件2322可以在多个crc校验子值之中选择具有值0的crc校验子。第一选择部件2322可以输出指示多个随机序列之中、与具有值0的crc校验子值对应的随机序列的指示信息。第一选择部件2322可以将指示信息输出至第二选择部件2324。

第二选择部件2324可以从图23和图24中的解码部件2310_1至2310_n的解扰器2314接收多个(例如,n个)解扰序列。第二选择部件2324可以基于指示信息来在多个解扰序列之中选择待恢复的解扰序列。第二选择部件2324可以输出包括数据位的恢复序列。

图26是示出根据本发明的实施例的存储器控制器和存储器装置的示图。例如,图26的存储器控制器100可以包括图23至图25所示的部件,并且存储器装置200可以包括具有诸如三层单元(tlc)的多层单元的闪速存储器装置。

参照图26,存储器控制器100可以包括低密度奇偶校验(ldpc)解码部件2305、多个解码部件和选择器2320。多个解码部件2310_1中的每一个可以包括随机发生器2312、解扰器2314和crc校验子计算器2316。选择器2320可以包括如图25所示的第一选择部件2322和第二选择部件2324。第一选择部件2322可以利用用于在多个crc校验子之中选择具有值0的crc校验子的选择器2322'来实施。第二选择部件2324可以利用用于在多个输入序列之中选择特定序列的多路复用器(mux)2324'来实施。

存储器控制器100的部件可以读取存储在闪速存储器装置200'中的编码序列并且恢复数据位。为了恢复数据位,从闪速存储器装置200'的单元读回作为噪声码字的编码序列。ldpc解码部件2305确定编码序列的错误位置并且恢复ldpc序列(或码字)。由于通过编码器600a的导向加扰降低了编码序列中的位-1的数量,因此ldpc码字中的平均错误数量将较低,解码器600b将较快地收敛并具有较低的失败率。在解码完成之后,利用所有候选序列(或随机序列)并行地对ldpc码字进行解扰(或xor运算),并且针对所有候选序列计算crc校验子。crc校验子将仅对于正确序列为全0,并且将对于所有其它候选序列为非0。当crc码是线性码并且选择一组候选序列使得对它们中的任何两个的xor不是crc码字时,这将是真的。这可以通过使用离线搜索选择用于导向加扰的一组候选序列来保证。

图27是示出根据本发明的实施例的解码器的解码操作2700的流程图。例如,可以由包括图6和图23至图26的解码器600b的存储器控制器100执行图27的操作。存储器控制器100可以控制包括诸如三层单元(tlc)的存储器单元的存储器装置200以对存储器单元执行读取操作。

参照图27,解码操作2700可以包括操作2710、2720和2730。操作2710可以包括从存储器装置200接收编码序列,并且使用低密度奇偶校验(ldpc)码来解码编码序列以生成ldpc解码序列。

操作2720可以包括使用多个随机序列来解扰ldpc解码序列以生成多个解扰序列。在各个实施例中,可以由多个解扰器执行该解扰操作。

在各个实施例中,操作2720可以包括通过利用多个随机序列之中的相应随机序列对ldpc解码序列执行xor运算来解扰ldpc解码序列。

操作2730可以包括基于多个解扰序列的循环冗余校验(crc)校验子来在多个解扰序列之中选择待恢复的解扰序列。恢复序列包括与从多个逻辑页面之中选择的逻辑页面对应的数据位。

在各个实施例中,选择的解扰序列可以对应于多个加扰序列之中、具有最小数量的逻辑高值的加扰序列,其中该多个加扰序列通过使用多个随机序列加扰数据位而生成。

在各个实施例中,可以由第一选择部件和第二选择部件执行操作2730。第一选择部件可以执行接收crc校验子、在crc校验子之中选择crc校验子,选择的crc校验子具有值0,并且输出指示选择的crc校验子的指示信息的操作。第二选择部件可以执行接收多个解扰序列、基于指示信息在多个解扰序列之中选择待恢复的解扰序列、恢复选择的解扰序列并且输出恢复序列的操作。

在各个实施例中,多个逻辑页面可以包括最高有效位(msb)页面、中间有效位(csb)页面和最低有效位(lsb)页面。在各个实施例中,选择的逻辑页面可以包括msb页面。可选地,选择的逻辑页面可以包括存储的逻辑高值被错误地读取为逻辑低值的概率(第一概率)与存储的逻辑低值被错误地读取为逻辑高值的概率(第二概率)的比率大于阈值的逻辑页面。

如上所述,根据实施例的包括编码器和解码器的存储器系统可以在编程操作之前,使用多个加扰(即,导向加扰)来执行编码操作,从而减少特定位值(即,逻辑高值“1”或位-1)的出现。

虽然出于清楚和理解的目的已经以一些细节示出并描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的是,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的而非限制性的。本发明旨在涵盖落入权利要求范围内的所有修改和替换。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1