用于近似平衡码的编码器和解码器设计的制作方法

文档序号:10577562阅读:361来源:国知局
用于近似平衡码的编码器和解码器设计的制作方法
【专利摘要】一种对近似符号平衡NSB序列编码的方法可以包括:利用控制器基于位的数量来选择约束条件;利用控制器基于由选中的约束条件限定的排列来确定码书中的多个区段;以及利用控制器来将所述多个区段之中的区段划分成多个分区,直到所述多个分区中的每个包括数量等于或少于预定数量条目的条目为止。
【专利说明】
用于近似平衡码的编码器和解码器设计
[0001] 相关申请的交叉引用
[0002] 本申请要求2015年3月4日提交的题为"用于近似平衡码的编码器和解码器设计 (ENCODER AND DECODER DESIGN FOR NEAR-BALANCED CODES)" 的第62/128288号的美国临 时申请的权益,其全部内容通过引用合并于此。
技术领域
[0003] 本公开的示例性实施例涉及一种信号处理和编码技术。
【背景技术】
[0004] 最常使用磁储存技术来储存数据,但是对当前电子设备的更低的重量和更快的读 取/写入操作的需求使得磁储存技术不够理想。

【发明内容】

[0005] 本发明的方面包括对近似符号平衡(NSB)序列编码的方法。该方法可以包括:利用 控制器基于位的数量来选择约束条件;利用控制器基于由选中的约束条件限定的排列来确 定码书中的多个区段;以及利用控制器来将所述多个区段之中的区段划分成多个分区,直 到所述多个分区中的每个包括数量等于或少于预定数量条目的条目为止。
[0006] 本发明的进一步的方面包括用于对NSB序列编码的系统。该系统可以包括控制器, 该控制器适用于:基于位的数量来选择约束条件;基于由选中的约束条件限定的排列来确 定码书中的多个区段;以及将所述多个区段之中的区段划分成多个分区,直到所述多个分 区中的每个包括数量等于或少于预定数量条目的条目为止。
【附图说明】
[0007] 图IA图示了包括应用了本发明的实施例的存储系统的数据处理系统。
[0008] 图IB是根据本发明的实施例的包括编码器和解码器的存储系统的框图。
[0009] 图2是示出根据本发明的方面的裸片布局的示图。
[0010] 图3是示出根据本发明的方面的对约束条件的选择的图。
[0011]图4A是根据本发明的方面的码书中的一般分区和区段的示图。
[00?2 ]图4B和图4C不出根据本发明的方面的划分。
[0013] 图5A、图5B、图6、图7、图8、图9、图10、图11、图12、图13、图14、图15、图16、图17、图 18、图19、图20、图21、图22、图23、图24、图25和图26是示出根据本发明的方面的编码和划分 码书的过程的示图。
[0014]图27、图28、图29、图30和图31是示出根据本发明的方面的解码过程的示图。
【具体实施方式】
[0015]下面将参照附图来更详细地描述各种实施例。然而,本发明可以以不同的形式来 实施,而不应当被解释为局限于本文中所阐述的实施例。相反地,这些实施例被提供使得本 公开将是彻底且完整的,且这些实施例将把本发明的范围充分地传达给本领域技术人员。 贯穿本公开,相同的附图标记在本发明的各种附图和实施例中始终指代相同的部分。
[0016] 本发明可以以若干方式来实施,包括作为过程;装置;系统;物的组合;在计算机可 读储存介质上实施的计算机程序产品;和/或处理器(诸如被配置为运行耦接至处理器的存 储器上储存的指令和/或由耦接至处理器的存储器提供的指令的处理器)。在本说明书中, 这些实施方式或本发明可以采用的其他任何形式可以被称作技术。一般而言,可以在本发 明的范围之内改变所公开的过程的步骤的次序。除非另外说明,否则被描述为被配置用来 执行任务的组件(诸如处理器或存储器)可以被实施为暂时被配置用来在给定时间处执行 任务的常规组件,或者被制造为执行任务的特定组件。如本文中所用,术语"处理器"指被配 置用来处理数据(诸如计算机程序指令)的一种或更多种器件、电路和/或处理核。
[0017] 在一些实施例中,本发明将被应用至图IA中所示的数据处理系统。
[0018]图IA图示了包括应用了本发明的实施例的存储系统的数据处理系统100。图IA中 所示的数据处理系统100仅用于说明。在不脱离本公开的范围的情况下,可以使用数据处理 系统100的其他架构。虽然图IA图示了数据处理系统100的一个示例,但可以对图IA作出各 种改变。例如,在任何合适布置中,数据处理系统100可以包括任何元件,或者可以不包括任 何元件。
[0019] 参见图1A,数据处理系统100可以包括主机102和存储系统110。
[0020] 例如,主机102可以包括诸如移动电话、MP3播放器和膝上电脑的便携式电子设备 或者诸如台式电脑、游戏机、TV和投影仪的电子设备。
[0021] 存储系统110可以响应于来自主机102的请求而操作,具体地,储存要由主机102访 问的数据。换言之,存储系统110可以用作主机102的主存储系统或辅助存储系统。存储系统 110可以根据要与主机102电耦接的主机接口的协议而用各种类型的储存设备中的任意一 种来实施。存储系统110可以用诸如固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(e丽C)、 缩减尺寸丽C(RS-MMC)和微型丽C、安全数字(SD)卡、迷你 SD和微型SD、通用串行总线(USB) 储存设备、通用闪存(UFS)设备、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等各种类型的 储存设备中的任意一种来实施。
[0022] 用于存储系统110的储存设备可以用易失性存储器件(诸如动态随机存取存储器 (DRAM)和静态随机存取存储器(SRAM))或非易失性存储器件(诸如只读存储器(R0M)、掩膜 ROM (MROM )、可编程ROM (PROM )、可擦除可编程ROM (EPROM )、电可擦除可编程ROM (EEPROM )、铁 电随机存取存储器(FRAM)、相变RAM(PCRAM)、磁阻RAM(MRAM)和电阻式RAM(RRAM))来实施。
[0023] 存储系统110可以包括存储器件150和控制器130,存储器件150储存要由主机102 访问的数据,控制器130控制数据在存储器件150中的储存。
[0024] 控制器130和存储器件150可以被集成至一个半导体器件中。例如,控制器130和存 储器件150可以被集成至一个半导体器件中,且配置固态驱动器(SSD)。当存储系统110被用 作SSD时,与存储系统110电耦接的主机102的操作速度可以大幅增大。
[0025] 控制器130和存储器件150可以被集成至一个半导体器件中,且配置存储卡。控制 器130和存储器件150可以被集成至一个半导体器件中,且配置诸如个人计算机存储卡国际 协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体(SM)卡(SMC )、记忆棒、多媒体卡(MMC )、RS- MMC和微型MMC、安全数字(SD)卡、迷你 SD、微型SD和SDHC以及通用闪存(UFS)设备的存储卡。
[0026] 又例如,存储系统110可以配置计算机、超移动PC (UMPC )、工作站、上网本、个人数 字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、 便携式多媒体播放器(PMP)、便携式游戏机、导航设备、黑匣子、数字相机、数字多媒体广播 (DMB)播放器、三维(3D)电视、智能电视、数字录音机、数字音频播放器、数字图片记录仪、数 字图片播放器、数字录像机、数字视频播放器、配置数据中心的储存器、能够在无线环境下 收发信息的设备、配置家庭网络的各种电子设备中的一种、配置计算机网络的各种电子设 备中的一种、配置远程信息处理网络的各种电子设备中的一种、RFID设备或者配置计算系 统的各种组成元件中的一种。
[0027] 存储系统110的存储器件150可以在电源被中断时保持储存的数据,具体地,在写 入操作期间储存从主机102提供的数据,以及在读取操作期间将储存的数据提供给主机 102。存储器件150可以包括多个存储块152、154和156。存储块152、154和156中的每个可以 包括多个页。每个页可以包括多个存储单元,多个字线(WL)电耦接至该多个存储单元。存储 器件150可以为非易失性存储器件,例如,快闪存储器。快闪存储器可以具有三维(3D)层叠 结构。
[0028] 存储系统110的控制器130可以响应于来自主机102的请求来控制存储器件150。控 制器130可以将从存储器件150读取的数据提供给主机102,以及将从主机102提供的数据储 存至存储器件150中。为了此目的,控制器130可以控制存储器件150的总体操作,诸如读取 操作、写入操作、编程操作和擦除操作。
[0029] 详细地,控制器130可以包括主机接口单元132、处理器134、错误校正码(ECC)单元 138、电源管理单元(PMU) 140、存储器控制器(MC) 142和存储器144。
[0030] 主机接口单元132可以处理从主机102提供的命令和数据,且可以经由各种接口协 议(诸如通用串行总线(USB)、多媒体卡(丽C)、外围组件互连快速(PCI-E )、串行附接SCSI (SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小计算机系统接口(SCSI)、增 强型小盘接口(ESDI)和集成驱动电路(IDE))中的至少一种来与主机102通信。
[0031] ECC单元138可以检测并校正在读取操作期间从存储器件150读取的数据中的错 误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC单元138不会校正错误位, 以及可以输出指示校正错误位失败的错误校正失败信号。
[0032] ECC单元138可以基于诸如低密度奇偶校验(LDPC)码、博斯-乔赫里-霍克文黑姆 (BCH,Bose-Chaudhur i-Hocquenghem)码、祸轮码、祸轮乘积码(TPC)、里德-所罗门(RS)码、 卷积码、递归系统码(RSC)、格码调制(TCM)、分组编码调制(BCM)等的编码调制来执行错误 校正操作。ECC单元138可以包括用于错误校正操作的所有电路、系统或器件。
[0033] PMU 140可以提供并管理用于控制器130的电源,即,用于控制器130中包括的组成 元件的电源。
[0034] MC142可以用作控制器130与存储器件150之间的存储器接口以允许控制器130响 应于来自主机102的请求来控制存储器件1501(: 142可以产生针对存储器件150的控制信 号,并在处理器134的控制下处理数据。当存储器件150是诸如NAND快闪存储器的快闪存储 器时,MC 142可以产生针对NAND快闪存储器150的控制信号,并在处理器134的控制下处理 数据。
[0035] 存储器144可以用作存储系统110和控制器130的工作存储器,以及储存用于驱动 存储系统110和控制器130的数据。控制器130可以响应于来自主机102的请求来控制存储器 件150。例如,控制器130可以将从存储器件150读取的数据提供给主机102,以及将从主机 102提供的数据储存在存储器件150中。当控制器130控制存储器件150的操作时,存储器144 可以储存由控制器130和存储器件150使用的用于诸如读取操作、写入操作、编程操作和擦 除操作的操作的数据。
[0036] 存储器144可以用易失性存储器来实施。存储器144可以用静态随机存取存储器 (SRAM)或动态随机存取存储器(DRAM)来实施。如上所述,存储器144可以储存由主机102和 存储器件150使用的用于读取操作和写入操作的数据。为了储存数据,存储器144可以包括 程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
[0037]处理器134可以控制存储系统110的常规操作,以及响应于来自主机102的写入请 求或读取请求来控制针对存储器件150的写入操作或读取操作。处理器134可以驱动被称作 闪存转换层(FTL)的固件来控制存储系统110的常规操作。处理器134可以用微处理器或中 央处理单元(CPU)来实施。
[0038] 管理单元(未示出)可以包括在处理器134中,且可以执行对存储器件150的坏块管 理。管理单元可以找到存储器件150中包括的坏存储块(其不满足进一步使用的条件),并对 坏存储块执行坏块管理。当存储器件150是快闪存储器(例如,NAND快闪存储器)时,在写入 操作期间(例如,在编程操作期间)可能因 NAND逻辑功能的特性而发生编程失败。在坏块管 理期间,可以将编程失败的存储块或坏存储块中的数据编程至新的存储块中。此外,因编程 失败导致的坏块严重降低了具有3D层叠结构的存储器件150的利用效率和存储系统110的 可靠性,从而需要可靠的坏块管理。
[0039] 图IB示出了根据本发明的方面的系统。该系统包括控制器180(例如,控制器130)、 近似符号平衡(near symbol balance,NSB)编码器182和NSB解码器184 JSB编码器182可以 被配置为对NSB数据编码,而NSB解码器184可以被配置为对NSB数据解码。编码器182和解码 器184可以包括执行下面公开的功能所需要的硬件电路,如本领域技术人员将从本文中的 描述所理解的,诸如比较器、加法器电路和减法电路、乘法电路和除法电路、用于将从码书 (codebook)选择的单元映射至原始单元的电路等。
[0040] 符号平衡序列是如果每个字符在序列中出现相同次数则相对于字符集A而符号平 衡的长度为η的序列。例如,如果n = 12以及A={0,1,2,3},则是[0,2,0,2,0,2,1,3,1,3,1, 3]或[0,0,0,1,1,1,2,2,2,3,3,3]。长度为11的符号平衡序列的数量通过1=11!/((11/^)!)、 来确定,q为字符集中的字符的数量。对于以上示例中的η = 12和q = 4,M=369600。
[0041] 在PCRAM中,可以方便地写入符号平衡序列,使得可以容易地确定读取阈值。对于 来自同一裸片的单元,电阻可能沿同一方向一起漂移。如果写入的序列被平衡,则最低的n/ q样本值将可能对应于来自较低层级的数据,第二最低的n/q样本值将可能对应于第二低层 级等。可以使用此信息来恰当地设置读取阈值。
[0042] 在先前的实施方式中,存在关于平衡序列的各种准则。这些准则中的大部分集中 于如何在特定准则下精确地平衡序列。这些方法全都是渐近容量实现(asymptotically capacity achieving),这意味着随着序列长度增大,精确地平衡序列所需的附加位 (overhead bit)的数量接近理论最小值。此外,所有这些方法都适用于多层级(multi- level)序列(例如,非二元)。
[0043] 为了在给定约束条件下"近似平衡"序列,典型的方法是导向扰频(guided scrambling)。注意精确平衡仅是近似平衡的子集,因为近似平衡方法总可以通过将输出序 列的约束条件选为精确平衡而用来精确地平衡序列。导向扰频是概率统计方法,其意味着 输出序列仅在特定概率下满足给定的约束条件,而从不保证输出序列总是满足给定的约束 条件。
[0044] 本文公开的系统和方法是近似平衡范畴的一部分。其是枚举编码(enumerative coding)的实际实施方式,在枚举编码中,穷尽枚举给定约束条件之内的所有序列,并在所 有可能的输入序列与所有受约束序列之间设计一对一映射方案。本文中公开的发明因以下 的原因而具有优势。
[0045] 与导向扰频相反,本发明是确定性(deterministic)方法,这意味着输出序列被确 保满足给定的约束条件。
[0046] 本文中公开的方法对于任何序列长度都是容量实现的,这意味着在任何给定约束 条件下近似平衡序列所需要的附加位的数量与所需的理论最小值(理论最小值是约束条件 的函数)相同。
[0047] 此方法可以用于任何平衡准则。为了说明,本文用符号平衡来描述本发明,符号平 衡是用于相变存储器应用的准则。然而,该方法同样适用于其他平衡准则。
[0048] 该方法可以用于具有任何长度的多层级序列。由于实现复杂,因此其最适合短的 序列长度和少量的层级。在一些实施例中,针对MLC相变存储器应用和TLC相变存储器应用 实现此方法,其中,层级的数量分别仅为4和8,以及序列长度一般为数十。
[0049] 由于此方法实现针对任何序列长度的容量,因此在用来精确地平衡序列时,其比 任何当前已知方法需要更少的附加位,当前已知方法仅对无限长序列实现容量。换言之,虽 然这种方法仅应用于短序列,但这正是其相对于当前可用方法具有最大优势的情形。
[0050] 关于若干示例来描述本文中公开的系统、过程和方法。这些示例是示例性的而非 排他性的。本领域技术人员将从此处的公开理解,可以使用可选码书、不同数量的层级和区 段、其它裸片或其它数量的裸片、可选约束值等来实践本发明。
[0051] 参见图2和图3,描述了用于近似符号平衡(NSB)的约束条件选择。在字符集A中,如 果在序列中每个字符出现不少于Kmin次且不多于Kmax次,则该序列是具有约束条件[Kmin, Kmax]的NSB序列。
[0052]当不存在足够的符号平衡序列时可能需要NSB序列。例如,如果η= 12且q = 4,则M = 369600(其大约为2~18.5)。因此,Mtotal是4~12或2~24,意味着需要24位来写入18位的信 息,这样比率为0.75。对于PCRAM应用,仅一个或两个附加位是可用的。因此,有必要放松平 衡约束条件以增大"有效"序列的数量。然而,检测算法的执行将受到妨碍,因为不能精确地 设置读取阈值。
[0053] 参见图2,单元具有9个裸片(D1-D9)。单个写入单元是每裸片64位,总计576位。对 于用户数据,位的总数为64位X8,或512位。因此,每裸片位的数量是56.89。对于BCH奇偶校 验(t = 5),位的总数为50位,从而每裸片5.56位。NSB码的附加(overhead)为9位,或每裸片1 位。如图2中所示,裸片D1-D8包括用于用户数据的57位的区段、用于奇偶校验的6位的区段 以及用于附加的1位的区段。裸片D9包括大量本领域中已知的虚设位。BCH奇偶校验可以均 匀分布在所有的裸片中以使任何一个裸片中的退化最小。
[0054]因此NSB码比率为57/58。因此,在包括奇偶校验位之前的码约束条件为[5,11],以 及在包括奇偶校验位之后的最坏情况的约束条件为[5,14]。在图3中,图表300示出位的数 量对针对q = 4且N= 29的示例的约束条件。这里,选择约束条件[5,11 ],因为其点302指示给 出至少2~57个序列的最接近的NSB码约束条件。换言之,每个裸片的位数量取整为57,因此, 57位数可以用作数据。
[0055] 接下来参见图4A,示出了码书结构的常规示例。码书可以具有很多层级(例如,Ll- L16),以及层级的数量可以通过位数量的大小、字符表的大小或本领域技术人员将从本文 中的描述理解的其他因素来确定。每个层级可以具有通过阴影框示出的若干区段。这些区 段还可以包括具有若干区段的分区等。
[0056] 将关于图4B和图4C来描述对码书(或码书的区段)进行划分的方法和过程。可以使 用二项式系数的性质。例如,Chu-Vandermonde恒等式可以表示为(nCk) = 2j=o,...,k(mCj)广 mCk-j),其中m可以为小于η的任何整数。例如,在29位数量的码书中:
[0057] (29C6) = (14Co) (15Ce) + (14Ci) (15C5) + (14C2) (15C4) + (14C3) (15C3) + (14C4) (15C2) + (14C5) (15C1H( 14C6)(15C0)o
[0058] 这样,29个单元可以分裂成两个分区,14个单元的第一分区402和15个单元的第二 分区404。在图4C的图表406中示出了组合和可能性。
[0059] 可以递归地应用Chu-Vandermonde恒等式来分解(nCk),直到展开式中的每项小于 256为止。例如,(14C3)、(14C4)、(14C 5)、(14C6)和(15C3)、( 15C4)、(15C5)、(15C6)大于256。然而, [0060] (15C6) = (7Co) (8Ce)+(7Ci) (8C5) + (7C2) (8C4) + (7C3) (8C3) + (7C4) (8C2) + (7C5) (8Ci) + (7C6) (8C0),以及
[0061 ] (14C6) = (7Co) (7Ce)+(7Ci) (7C5) + (7C2) (7C4) + (7C3) (7C3) + (7C4) (7C2) + (7C5) (7Ci) + (7C6) (7C0)等。
[0062] 可以策略性地选择m,使得可以重新使用展开式中的项。最终的项将是码书。
[0063] 关于用于选中变量集合的特定码书大小来描述下面公开的示例。这在描述本发明 中仅用于说明,且本发明不局限于下面描述的示例的具体细节。
[0064] 接下来参见图5A至图26,公开了 57/58编码器(诸如图IA的编码器180)的设计和功 能。
[0065]在图5A中,示出了具有若干区段(SO-Sll)的码书500。阈值(Τ0···Τ10)确定区段的 间隔。如图5Β中所示,阈值可以基于未使用的码字。在无位宽度优化的情况下,所有的阈值 可以被储存作为57位数(总的储存大小为1340字节)。由于可用码字的数量大于2~57,因此 有可能智能地去除一些码字以降低阈值位宽度。例如,如果Τ5中的30个最低有效位被强制 为〇值,则将去除最多2~30-1个码字。因此,新的阈值Τ'5的位宽度为27,因为仅需要储存27 个最高有效位。应当将Τ6至TlO向下偏移相同的量,以及也需要调节后续层级中的阈值。 [0066] 重新参见图5Α,给出57位数Xo(即,Xo从[0,2 57_1 ]中选择),判断Xo映射至码书的哪 个区段。如果Xo<To,则Xo映射至So。如果TWXKTi^lJXo映射至S1。如果TdXKT2,则X 0映 射至S2……如果T9 < Xo<T1Q,则Xo映射至Siq。如果Tiq < Xo,则Xo映射至Sn。如果Xo映射至Sk, 贝IJ计算X1=Xo-IV1(假定1^ = 0)(注意,码书包含多于257个码字)。
[0067] 在图6中,假定Xo映射至S7,这样Xi = Xq-T6。如所示,码书500的S7也包括多个区段 600。因此,然后判断X1映射至码书的S7之内的哪个区段。每个区段对应于12个排列({(a,a, b,c),(a,b,a,c),(a,b,c,a)……})中的一个。每个区段包含相同数量的码字。因此,为了作 出此判断,Xi-ff IoorU1AV,〇) ,X2 = X1-XhT7,〇,从而Xh是映射至的区段的索引。存在 仅3个排列值:{4,12,24}。这些排列需要被储存,且可以在{5 1{}之中共享。
[0068]接下来参见图7,S7,6包括多个区段:具有(29C6)个条目的区段700、具有( 23C6)个条 目的区段702以及具有(17C7)个条目的区段704。假定X1映射至S 7,6,则X2 = X1-XhT7,〇,其中 Χι-1 = 6,以及假定S7,6对应于排列(0,3,1,2)。那么,用三个区段700、702和704来储存S7,6中 的条目。区段700包含( 29C6)个条目。每个条目长度为29位,且表示从29个单元选择6个单元 以用于层级0的一个路径。区段702包含( 23C6)个条目。每个条目长度为23位,且表示从23个 单元选择6个单元以用于层级3的一个路径。23个单元对应于区段700中的未被选中的单元。 区段704包含( 17C7)个条目。每个条目长度为17位,且表示从17个单元选择7个单元以用于层 级1的一个路径。17个单元对应于区段700和区段702中的未被选中的单元。不需要第四区 段,因为区段700、区段702和区段704中的未被选中的10个单元用于层级2。
[0069]接下来需要为每个区段计算索引。区段700的索引为XA=fl〇〇r(X2/( 23C6)(17C7))。 区段 702 的索引为 Xa-R = X2-Xa(23C6) (17C7),XB = floor(XA-R/(17C7))。区段 704 的索引为 Xc = Xa-r-Xb(17C7)〇
[0070] 可以看出,所有的三个区段700、702和704都仍然太大(例如,(29C 6) =475020)。因 此,可以使用上述的恒等式来进一步对区段进行划分。
[0071] 从图8和图9中可以看出,应用恒等式来分解区段700。然后,判断Xa映射至区段700 的哪部分。如果Xa<Ta,〇,则Xa映射至A〇。如果T A,Q < XaST/u^iJXa映射至A1……如果Ta,4 < Xa <Ta, 5,则Xa映射至A5。如果Ta, 5 ^ Xa,则Xa映射至A6。如果Xa映射至Ak,则计算Xa, I = Xa-Tah (假定 Τα,-1 = 0)。
[0072] 如果Xa映射至A3,则Xa,! = Xa-Ta,2。接下来,用2个码书800和802储存A3中的条目(图 9)。码书800包含( 14C3)个条目,而码书802包含(15C3)个条目。接下来,Xa, 2被计算为floor (Xa, i/ (15C3)),以及Xa, 3被计算为Xa, i-Xa, 2 (15C3)。
[0073]码书800仍然太大,因此其需要被分解,如图10和图11中所示。然后,判断Xa,2映射 至码书800的哪个区段。如果Xa, 2<Ta,3-μ,则Xa, 2映射至A3-O,〇。如果Ta, 3-〇, K Xa, 2<Ta, 3-〇, 1,则 Xa,2映射至A3-ο,ι。如果Τα,3-ο,ι < Xa,2<Ta,3-〇,2,贝丨JXa,2映射至A3-〇,2。如果Ta,3-〇,2 < Xa,2,贝丨JXa,2映 射至厶3-0,3。如果父4,2映射至厶3-0,1〇则计算父4,2,1 =父4,2-14,3-(),1<-1(假定14,3-(),-1 = 0)。
[0074] 如果Xa,2映射至A3-q,2,则Xa,2,i = Xa,2-Ta,3-q,i。从图11中可见,区段中的每个可以包 括两个进一步的码书900和902。用两个码书900和902储存A 3-Q, 2中的条目。码书900包含 (7C2)个条目,每个条目长度为7位,且表示从7个单元选择2个单元的一个路径。码书902包含 ( 7C1)个条目,每个条目长度为7位,且表示从7个单元选择1个单元的一个路径。接下来,计算 XAA2 = Hoor(XAAiA7C1)), Xa,2,S = Xaai-Xaa2(7C1)i3不需要进一步分解码书 900 和码书 902 Ja,2,2是用于从码书900选择的索引,以及Xa,2,3是用于从码书902选择的索引。
[0075] 然后,选中单元被映射回原始单元,如图12中所示。
[0076] 接下来,进一步分解码书802(图13和图14)。判断Xa,3映射至码书802的那个区段。 如果Xa,3<Ta,3-1,〇,贝!JXa,3映射至A3-1,〇。如果Ta,3-i,q < Xa,3<Ta,3-i,i,则Xa,3映射至A3-ι,ι。如果 Ta,3-ι,ι < Xa,3<Ta,3-1,2,则Xa,3映射至A3-1,2。如果Ta,3-i,2 < Xa,3,则Xa,3映射至A3-1,3。如果Xa,3映 射至厶3-1,1<,则计算父六,3,1 =父六,3-1六,3-1,1<-1(假定1六,3-1,-1 = 0)。
[0077] 从图14中可以看出,码书802的区段被分解成码书904和906。如果Xa,3映射至A3-i,2, 则Xa ,3,1 = Xa,3-Ta,3-1,1〇 接下来,用码书904和码书906储存A3-1>2中的条目。码书904包含(7C 2) 个条目,每个条目长度为7位,且表示从7个单元选择2个单元的一个路径。码书906包含(8C 1) 个条目,每个条目长度为8位,且表示从8个单元选择1个单元的一个路径。接下来,计算Xa,3, 2 = Hoor(XAAiA8C1)LXA, 3, S = Xaai-Xaa2(8C1)i3 不需要进一步分解码书 904 和码书 906。 Xa, 3,2是用于从码书904选择的索引。Xa,3,3是用于从码书906选择的索引。
[0078] 选中单元可以被映射回原始单元,如图15中所示。
[0079] 参见图16,区段702被分解。然后,判断Xb映射至区段702的哪个区段。如果Xb<Tb,0, 则Xb映射至Bq。如果Tb,ο < Xb<Tb, !,则乂8映射至B1。……如果TB,4 < Xb<Tb,5,则Xb映射至B5。如 果Tb, K Xb,则Xb映射至B6。如果Xb映射至Bk,则计算Xb, I = Xb-Tb,k-i (假定IV1 = 0)。
[0080] 从图17可以看出,区段702的区段被分解成码书806和码书808。如果Xb映射至B4,则 Xb,I = Xb-Tb,3。接下来,用码书806和码书808储存B4中的条目。码书806包含(15C 4)个条目,码 书808包含(8C2)个条目。然后,计算Xb,Ffloor(XBV( 8C2))JB,S = Xu-Xi2(8C2)t3
[0081] 需要进一步分解码书806。然后,判断Xb,2映射至码书806的哪个区段。如果Xb,2< 丁8,4-0,0,贝!^,2映射至134-0,0。如果丁8,4-0,0<父8,2<^,4-0,1,贝!^,2映射至134-0,1。,"...如果丁8,4-0,2 仝 Xb, 2<Tb,4-0,3,则Xb, 2映射至B4-〇,3。如果Tb,4-0,3 < Xb,2,则Xb, 2映射至B4-〇,4。如果Xb,2映射至 B4-0,k,则计算Xb,2,1 = Xb,2_Tb,4-Q,k-1(假定Tb,4-0,-1 = 0) O
[0082] 如从图18至图19可以看出,码书806的区段还包含码书910和码书912。如果ΧΒ,2映 射至B4-0,2,则Xb,2,I = Xb,2-Tb,4-0,1。然后,用码书910和码书912储存B4-0,2中的条目。码书910 包含(7C 2)个条目,每个条目长度为7位,且表示从7个单元选择2个单元的一个路径。码书912 包含(8C 2)个条目,每个条目长度为8位,且表示从8个单元选择2个单元的一个路径。然后,计 算XB,2,2 = f l〇〇r(XB,2,l/(8C2) ),Xb,2,3 = Xb,2,1-Xb,2,2(8C2)。不需要进一步分解码书910和码书 912 Jb,2,2是用于从码书910选择的索弓丨Jbj,3是用于从码书912选择的索引。
[0083]然后,选中单元被映射回原始单元,如图20中所示。
[0084]不需要进一步分解码书808,因为其是用于从码书选择的索引(图21)。因此,从码 书808选中的单元可以被映射回原始单元,如图22中所示。
[0085] 如图23中所示,需要进一步分解区段704。然后,判断Xc映射至码书704的哪个区 段。如果&<!^〇,则&映射至Co。如果1^,(^乂。<1^1,则&映射至(:1。……如果Tc,dXc<Tc, 6, 则Xc映射至C6。如果Tc,6 ^ Xc^lJXc映射至C7。如果Xe映射至Ck,则计算X^i = Xdk-IHgSlV1 =0) O
[0086] 在图24中,码书704的区段被分解成两个码书920和922。如果Xe映射至C5,则Xe, 1 = Xc-Tc,4。然后,用码书920和码书922储存(:5中的条目。码书920包含(8C 5)个条目。由于(8C5)= (8C3),因此(8C5)的码书可以从( 8C3)的码书推断出来。对于(8C3)码书,每个条目长度为8位, 且表示从8个单元选择3个单元的一个路径。一旦从( 8C3)码书选中条目,就将所有的位进行 翻转以获得(8C5)码书的条目。码书922包含( 9C2)个条目。每个条目长度为9位,且表示从9个 单元选择2个单元的一个路径。接下来,计算Xc,2 = f loor(Xc,i/(9C2)),Xc,3 = X(;,i-X(;,2(9C2)。 不需要进一步分解码书920和码书922。&,2是用于从码书920选择的索引。Xe,3是用于从码书 922选择的索引。
[0087] 如图25中所示,选中单元可以被映射回原始单元。如图26中所示,剩余的单元用于 层级2。
[0088] 在上述示例中,所需要的码书的列表如下: (7Cfl), (7C1), (7C2), (7Cs) _ 个条目) (8C0), (8C1), (hC2), (8C,), (8C4) (163 个条目)
[0089] ((,C0), (9C1), (9C2), (mC3), (9C4) (256 个条目) (14L0), (14C1), (14C2) (106 个条目) (15C0), (15C1)5 (15C2) (121 个条目)
[0090] 码书(nCk)中的每个条目长度为η位,且表示从η个单元选择k个单元的一个路径(例 如,在每个选中单元位置处储存1,而在剩余单元位置处储存0)。码书( 7C4)……(7C7)、 (8C 5)……(8C8)、(9C5)……( 9C9)也是需要的,但可以从以上的码书推断出来(例如,利用 (nC k) = (nCn-k):如果需要码书(nCk),则直接读取该条目;如果需要码书( nCn-k),则读取该条 目然后对所有的位进行翻转)。因此,码书的总数量是20,条目的总数量为710,总的储存大 小为920,以及最大码书为( 9C4) = 126个条目(7位LUT)。
[0091]此外,需要将所有的排列储存在器件上以辅助以上公开的系统和方法。
[0092] 4个排列情况:(a,a,a,b),(a,a,b,a),(a,b,a,a),(b,a,a,a)
[0093] 12个排列情况:(a,a,b,c),(a,b,a,c),(a,b,c,a),(b,a,c,a)......
[0094] 24个排列情况:(a,b,c,d),(a,b,d,c),(a,d,b,c),(a,d,c,b)......
[0095] 此外,需要储存除法运算的分母(例如,不同值的数量是49,以及总的储存大小小 于100字节)。
[0096] 参照图27至图31,公开了 57/58NSB解码器设计的示例。
[0097]首先,解码器被配置为对用于每个层级的单元的数量计数(例如,S7= (6,6,7, 1〇);排列=(〇,3,1,2);计算3〇 = 1'6)。然后,判断57之内的哪个条目对应于(0,3,1,2)(例 如,假定(〇,3,1,2)映射至 S7,6,因此 Xi-1 = 6。计算= Xo = Xt^X1-!Ττ,ο)。
[0098] 基于层级0的单元位置,通过寻找对应码书条目乂^2,2上, 2,3上,3,2和乂^3, 3的索引并 计算下面的内容来加载合适的码书(图27):
[0099] ΧΑ,2,1 = ΧΑ,2,3+ΧΑ,2,2(7&)
[0100] 1a,3,1 = 1a,3,3+1a,3,2(8Ci)
[0101] XA,2 =Xa,2,1+Ta,3-0,1 (因为(7C2)和(7C1)依次属于A 3-0, 2 )
[0102] Χα,ρΧ^+Ταα!,!(因为^⑶和^⑴依次属于厶卜口)
[0103] 1a,i=1a,3+1a,2(15C3)
[0104] Xa=ΧΑ, χ+Τα, 2 (因为(14C3)和(15C3)依次属于 A3)(图 28)
[0105] 通过寻找对应码书条目(Xb,2,2、Xb,2,3和Xb,3)的索引并计算下面的内容而基于层级 3的单元位置来加载合适的码书(图29):
[0106] Xb,2,1 = Xb,2,3+Xb,2,2(8C2)
[0107] Xb,2=Xb,2,1+Tb,4-。,1(因为(7C2)和(8C 2)依次属于 B4-0,2)
[0108] Xb)i=Xb>3+Xb>2(8C 2)
[0109] 父8 =父11+!^3(由于(15〇4)和(8(: 2)依次属于84)(图30)
[0110] 通过寻找对应码书条目(Xe,2和Xe,3)的索引并计算下面的内容而基于层级1的单元 位置来加载合适的码书(图31):
[0111] Xc,i=Xc,3+Xc,2(9C2)
[0112] Xc = XcfTcY 由于(8C5)和(9C2)依次属于 C5)
[0113] 最后,计算下面的内容:
[0114] Xa-r=Xc+Xb (17C7)
[0115] X2 = Xa-r+Xa (23C6) (17C7)
[0116] Χ〇 = Χ〇+Χ2(Χ()在解码步骤起始时被最后更新)
[0117] Xo是最终结果。
[0118] 虽然已经参照本发明的示例性实施例而具体示出并描述了本发明,但本领域技术 人员将理解的是,在不脱离由所附权利要求所限定的本发明的精神和范围的情况下,可以 在形式和细节上作出各种改变。因此,前述的仅作为示例,而非意在进行限制。例如,本文中 所示出和描述的元件的任何数量仅作为示例。本发明仅如所附权利要求及其等同物所限定 的那样限制。
【主权项】
1. 一种对近似符号平衡NSB序列编码的方法,包括: 利用控制器基于位的数量来选择约束条件; 利用控制器基于由选中的约束条件限定的排列来确定码书中的多个区段;以及 利用控制器来将所述多个区段之中的区段划分成多个分区,直到所述多个分区中的每 个包括数量等于或少于预定数量条目的条目为止。2. 如权利要求1所述的方法,其中,执行划分步骤直到所述多个分区中的每个包括256 个条目或更少的条目为止。3. 如权利要求1所述的方法,还包括:设置多个阈值,所述多个阈值限定数映射至所述 多个区段之中的哪个区段。4. 如权利要求1所述的方法,其中,基于Chu-Vandermonde恒等式来对所述多个区段之 中的区段进行划分。5. 如权利要求1所述的方法,其中,在PCRAM器件上实施控制器。6. 如权利要求1所述的方法,其中,约束条件包括基于字符在序列中出现的最小次数的 下约束条件。7. 如权利要求1所述的方法,其中,约束条件包括基于字符在序列中出现的最大次数的 上约束条件。8. -种用于对近似符号平衡NSB序列编码的系统,包括: 控制器,适用于: 基于位的数量来选择约束条件; 基于由选中的约束条件限定的排列来确定码书中的多个区段;以及 将所述多个区段之中的区段划分成多个分区,直到所述多个分区中的每个包括数量等 于或少于预定数量条目的条目为止。9. 如权利要求8所述的系统,其中,所述预定数量条目是256个条目。10. 如权利要求8所述的系统,其中,控制器还适用于设置多个阈值,所述多个阈值限定 数映射至所述多个区段之中的哪个区段。11. 如权利要求8所述的系统,其中,基于Chu-Vandermonde恒等式来对所述多个区段之 中的区段进行划分。12. 如权利要求8所述的系统,其中,在PCRAM器件上实施控制器。13. 如权利要求8所述的系统,其中,约束条件包括基于字符在序列中出现的最小次数 的下约束条件。14. 如权利要求8所述的系统,其中,约束条件包括基于字符在序列中出现的最大次数 的上约束条件。
【文档编号】G11C29/42GK105938728SQ201610125914
【公开日】2016年9月14日
【申请日】2016年3月4日
【发明人】弗雷德里克·K.H.·李, 马库斯·马罗
【申请人】爱思开海力士有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1