用于TURBO乘积码的误校正避免的制作方法

文档序号:11834742阅读:269来源:国知局
用于TURBO乘积码的误校正避免的制作方法与工艺

本申请要求于2015年5月15日提交的临时申请号为62/162,511的美国临时申请的权益,其全部内容在此通过引用并入本文。

技术领域

本公开的示例性实施例涉及一种存储器系统及其操作方法。



背景技术:

计算机环境范例已经转变至可随时随地使用的普适计算系统。由于该事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用一直快速增加。这些便携式电子装置通常使用具有存储器装置即数据存储装置的存储器系统。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。

由于使用存储器装置的数据存储装置没有移动部件,所以它们提供良好的稳定性、耐用性、高的信息存取速度以及低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。



技术实现要素:

本发明的一方面包括系统。系统可包括:存储器装置,其适于存储数据;编码器,其适于将数据编码成设置在多行和多列的阵列中的代码字;以及解码器,其适于接收所编码的代码字、解码所编码的代码字以及检测解码中的误校正。

本发明的进一步的方面包括存储器装置。该装置可包括:编码器,其被配置成将数据编码成设置在多行和多列的阵列中的代码字;以及解码器,其被配置成接收所编码的代码字、解码所编码的代码字以及检测解码中的误校正。

本发明的附加方面包括方法。该方法可包括:利用编码器将数据编码成设置在多行和多列的阵列中的代码字;利用解码器接收所编码的代码字;利用解码器解码所接收的代码字;以及利用解码器检测解码中的误校正。

附图说明

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

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

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

图4是根据本发明的方面的用于编码和解码的系统的简图。

图5是根据本发明的方面的用于编码和解码的方法的步骤的流程图。

图6、图7、图8、图9、图10、图11、图12、图13、图14和图15是根据本发明的方面的位的示例阵列的简图。

具体实施方式

下面将参照附图更详细地描述各种实施例。然而,本发明可以不同的形式呈现且不应被解释为限于在本文中提出的实施例。而是,这些实施例被提供使得本公开将是彻底且完整的并将本发明的范围充分传达给本领域技术人员。在整个公开中,相似的参考编号指的是本发明的各种附图和实施例中的相似部件。

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

下面连同示出本发明的原理的附图一起提供本发明的一个或多个实施例的详细说明。结合这些实施例描述本发明,但本发明不限于任意实施例。本发明的范围仅由权利要求限制且本发明包含许多可选方案、变型和等同方案。为了能够彻底理解本发明,在下面的描述中阐述许多具体细节。这些细节被提供以用于示例的目的,且在没有一些或全部这些具体细节的情况下,本发明可根据权利要求来实施。为了清楚的目的,没有详细描述在与本发明相关的技术领域中已知的技术材料使得本发明没有被不必要地模糊。

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

参照图1,存储器系统10可包括存储器控制器100和半导体存储器装置200。

存储器控制器100可控制半导体存储器装置200的全部操作。

半导体存储器装置200可在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可通过输入/输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可通过电源线接收电源PWR以及通过控制线接收控制信号CTRL。控制信号可包括命令锁存启用(CLE)信号、地址锁存启用(ALE)信号、芯片启用(CE)信号、写入启用(WE)信号、读取启用(RE)信号等。

存储器控制器100和半导体存储器装置200可被集成在单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可被集成在诸如固态驱动器(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、控制单元120、错误纠正码(ECC)单元130、主机接口140和存储器接口150。

存储单元110可用作存储器系统10和控制器100的工作存储器并存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储单元110可存储被控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的数据。

存储单元110可利用易失性存储器来实施。存储单元110可利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。如上所述,存储单元110可将主机装置使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,存储单元110可包括编程存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。

控制单元120可响应于来自主机装置的写入请求或读取请求而控制存储器系统10的一般操作和用于存储器装置200的写入操作或读取操作。控制单元120可驱动被称为闪存转换层(FTL)的固件以控制存储器系统10的一般操作。例如,FTL可执行诸如逻辑-物理(L2P)映射、损耗均衡、碎片收集和坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。

ECC单元130可检测并纠正在读取操作期间从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可纠正错误位的阈值数量时,ECC单元130可不纠正错误位,而是可输出表示纠正错误位失败的错误纠正失败信号。

在一些实施例中,ECC单元130可基于诸如低密度奇偶检查(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、Turbo(turbo)码、Turbo乘积码(TPC)、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等的编码调制来执行错误纠正操作。ECC单元130可包括用于错误纠正操作的所有电路、系统或装置。

主机接口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的控制器信号并处理数据。

存储器装置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供应的操作电压传输至在多个存储块211中选择的存储块。

页面缓冲器250通过位线BL(未示出)连接至存储器单元阵列210。页面缓冲器250可响应于由控制电路220生成的页面缓冲器控制信号利用正电压对位线BL预充电、在编程操作中将数据传输至选择的存储块/在读取操作中从选择的存储块接收数据或临时存储传输的数据。

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

输入/输出电路270可通过输入/输出电路270将从外部装置(例如,存储器控制器100)传输的命令和地址传输至控制电路220、将数据从外部装置传输至列解码器260或将数据从列解码器260输出至外部装置。

控制电路220可响应于命令和地址控制外围电路。

图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中示出的存储器单元阵列210的存储块211。

参照图3,存储块211可包括分别联接至位线BL0至BLm-1的多个单元字符串221。每列的单元字符串可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管可串行地联接在选择晶体管DST和SST。存储单元MC0至MCn-1中的每个可由每个单元中都存储多位数据信息的多层单元(MLC)形成。单元字符串221可分别电联接至对应的位线BL0至BLm-1。

在一些实施例中,存储块211可包括NAND型闪速存储单元。然而,存储块211不限于NAND闪速存储器,而是可包括NOR型闪速存储器、结合两个或多个类型的存储单元的混合闪速存储器和控制器被嵌入在存储芯片内部的1-NAND闪速存储器。

对于NAND闪速存储器,期望具有SoC解决方案,其中SoC解决方案具有小的硅面积,导致成本降低。提议的代码可被设计为4KB代码长度且性能可被优化为使片上系统(SoC)的硬件复杂性最小化。Turbo乘积码(TPC)结构是以下示例:数据被设置在矩形块(例如,阵列)中且对每行中的位生成行校验,之后结合数个列生成列校验。位可交叉存取使得矩形块的列被顺序地读取以生成列代码字。然而,用于这种交叉存取的硬件实施是复杂的且需要更多硬件区域。采用其中第一列代码字通过以下列顺序读取位来构建的硬件友好交叉存取:从第一行读取N位,从第二行读取N位等等,直到从最后一行读取N位(N为被结合以形成每列代码字的列的数量)。该交叉存取在硬件上更容易实施。然而,该交叉存取引入误校正问题。

因此,本发明的方面涉及解决代码字的解码中的误校正问题。本文公开了解决该误校正问题的数个示例。尽管本文公开的示例利用BCH代码,但本发明不限于此,且本领域技术人员将理解为了实现本发明可利用其它合适的代码。

在图4中,示出用于编码和解码的示例系统40。系统40包括存储器402和DRAM 400。存储器402可包括多个块(例如,数据)、用于主机写入的开放块430和用于垃圾收集的开放块440。DRAM 400可包括控制器404、编码器410和解码器420,DRAM 400与存储器402通信。编码器410可被配置为将数据编码成代码字并执行如下所述的其它各种功能。解码器420可被配置成解码来自编码器410的数据、检测误校正问题以及执行如下所述的其它功能。尽管被示为独立的单元,但编码器410和解码器420可形成单一单元、可与控制器404一起集成和/或具有如本领域技术人员已知的其它设置。

图5是用于编码和解码的步骤的流程图50。尽管示出步骤500-508,但这些步骤表示用于误校正检测的示例。步骤可以任意顺序执行,且不是所有步骤都被需要以实现本发明。例如,步骤502可以被采用,步骤504和步骤506可被省略等。

图6-图15是根据本发明的方面的代码字的阵列的示例。

在步骤500中,位编码成代码字。位可通过编码器(例如,编码器410)来编码。在图6中,示出TPC的并行级联结构(矩形阵列60)。在该示例中,为简单起见,结合的列的数量(N)被取为3个。列代码字通过读取如图7的阵列70中所示的列向矩形块的位来构建。作为示例,第一列代码字数据被给定为(b0,b9,b18,b1,b10,b19,b2,b11,b20)。该交叉存取需要更多硬件,因为数据根据存储器中的行被存储且每个位需要通过单独的读取操作来读取。

如上所述,存在可利用较低复杂性实施的硬件友好交叉存取。该交叉存取的示例在图8的阵列80中示出,其中用于第一列代码字的信息位被给定为(b0,b1,b2,b9,b10,b11,b18,b19,b20)。通常,对于该硬件友好结构,可并行地从存储器读取N位使得N位属于相同的行编码字和相同的列编码字(例如,在本文中N位被称为属于行-列交叉)。此外,行-列交叉中的任何错误校正可对行解码和列解码容易地实施。该交叉存取具有较低的硬件需求但如下所述引入低权重代码字。

考虑行-列交叉属于矩形阵列60、70、80的对角线。对应这些交叉中的位,它们所属的行和列内的位置是相同的。例如,在图8中可见,当使用硬件友好交叉存取时,位b0、b1和b2是第一行代码字以及第一列代码字的开始三位。因此,低权重代码字可通过仅选择属于非零的一个对角块的几位来形成。这些低权重代码字的引入引起误校正问题。

在图9中,示出示例阵列90,其中第一行和第一列同时误校正相同的代码字(通过b0 900、b1 902、r0 904以及c0 906示出)。位900和902表示信道引入的错误。位904和906表示解码器形成的变化使得第一行和第一列都误校正了相同的代码字,如图10中所示。假设校正能力等于1。图10示出在第一行和第一列代码字如何误校正相同地代码字的示例中的阵列1000。第一行和第一列代码字由于图9中的两个信道错误而误校正相同的代码字(通过位1002和位1004表示)。行和列代码字上的误校正在校验位(通过位1006和位1008表示)中引入错误。解码器宣告数据被成功解码。该问题在原始交叉存取方案中不会发生,其中,在原始交叉存取方案中位b1属于行和列代码字内的不同位置且存在解码器解码失败而不是误校正的较高的可能性。

因此,误校正问题需要被解决且可根据本文公开的下列方法、系统和装置来实现。

在步骤502中,沿代码字的阵列的对角线的位可被减少。参照图11,如果矩形阵列1100的对角线上的位通过补零在这些位置来减少,则引起误校正的低权重代码字被消除且误校正问题被容易的解决。减少可以通过编码器(在编码之前或之后)和/或通过解码器来执行。应该注意的是,该误校正将发生在具有距离行和列校验相同距离的对角块上。在图12中,示出用于行代码字的数量大于列代码字的数量的情况的阵列1200中的对角块上的减少。在图13中,示出用于列代码字的数量大于行代码字的数量的情况的阵列1300中的对角块上的减少。

解码器中可能需要一些额外的硬件逻辑以处理减少的位置。而且,尽管对角-减少方案消除仅具有一个非零行-列交叉块的低权重代码字,但存在具有在矩形阵列中的非对角位置处的非零交叉的其它低权重代码字(具有相对较高权重)。最后,如果用户数据位的数量保持相同,则减少导致行和列代码字的数量或每个组成代码字中的信息位的数量的增加,这导致TPC的瀑布式性能的降低。

在步骤504中,XOR校验可被计算且确定与XOR校验的匹配。参照图14的阵列1400,用于用户数据位的N-位XOR校验可在编码进程(例如,通过编码器)期间被计算并存储(例如,储存在阵列1400的一部分中,如x1、x2、x3所示)且数据位的有效性可通过验证解码的数据的XOR校验与储存的XOR-校验匹配(例如,通过解码器)来确认。因此,编码器可基于代码字生成XOR校验,解码器可基于代码字生成XOR校验。XOR-校验位可通过将矩形阵列中除一个以外的所有行-列交叉中的N个位置的每个按位XOR来计算。以图6的示例阵列60为例,3位XOR可如下计算:

x1=b0+b3+b6+b9+…+b21

x2=b1+b4+b7+b10+…+b22

x3=b2+b5+b8+b11+…+b23

该N位XOR校验可被储存在最后的行-列交叉中(例如,x1、x2和x3位于阵列1400中,而b24、b25和b26位于阵列60中)。

XOR-校验可在编码和解码进程期间被计算且需要一些额外的硬件。代码率通过该步骤稍微降低。该率损失可通过计算N位XOR校验的P位CRC并存储CRC的P(其中P<N)个校验位而不是XOR校验来降低。最后,该步骤能够检测误校正出现但不能校正它们。在检测后,可以使用标准校正进程来校正低权重的其余错误模式。

因此,保证步骤504的进程以利用一个非零行-列交叉消除所有误校正,而不管该交叉是在矩形阵列的对角位置上还是在非对角位置上。该方法还可以非常高几率地利用不止一个非零行-列交叉来检测其它误校正。

在步骤506中,在列-行交叉处的位可被置换。参照图15的阵列1500,每个行-列交叉中的N位在编码为列代码字之前根据N个元素上的固定置换被置换。如该置换的结果,位于对角交叉中的位转到行和列代码字的不同位置。因此,由形成相同BCH代码字的行和列引起的TPC的低权重代码字被消除。

当使用BCH或其它循环码时,必须小心选择N位的置换以保证置换不对应于行-列交叉上的一些左移或右移操作。满足该条件且容易在硬件中实施的置换的示例是反转元素的顺序(例如,元素(1,2,…,N-1,N)被置换成(N,N-1,…,2,1))的“反转”置换。图15示出用于图6中的示例的行和列代码字,其中每个行-列交叉中的位在编码成列代码字之前根据反转置换被置换(例如,位(b0,b1,b2)的顺序在编码成第一列代码字期间被反转成(b2,b1,b0))。

在步骤508中,如上参照步骤502、504和506所述,数据可被解码且误校正可被检测(例如,通过解码器)。三个步骤502、504和506是有效的,意味着这些步骤的结合可用于将误校正的可能性降低至期望的机制。

尽管为了清楚说明的目的已经相当详细地描述了前述实施例,但本发明不限于提供的细节。存在许多实施本发明的可选方法。公开的实施例是说明性的且不是限制性的。

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