用于将二进制映射到三进制及其反转的装置和方法与流程

文档序号:11161947阅读:859来源:国知局
用于将二进制映射到三进制及其反转的装置和方法与制造工艺

该申请要求题为“APPARATUS AND METHOD FOR MAPPING BINARY TO TERNARY AND ITS REVERSE(用于将二进制映射到三进制及其反转的装置和方法)”且于2014年9月18日提交的美国专利申请序列号14/490,307的优先权,其通过引用全部合并于此。



背景技术:

闪速存储器可使用在每个存储器单元中存储单个位信息的单级单元来设计,或设计为在每个存储器单元中存储多位信息的多级单元。一般,单级单元比多级单元具有更高的耐久性。然而,多级单元提供比单级单元更高的存储密度。多级单元存储器(例如,闪速存储器)由多级单元组成,其中的每个能够存储多个电荷状态或水平。电荷状态中的每个与存储器元件位模式关联。多级单元存储器可配置成存储多个阈值电压水平(Vt)。

多级单元存储器能够基于电荷状态的数量存储一个以上的位的数据。例如,可以存储四个电荷状态(或四个Vt水平)的多级单元存储器可以存储两位数据,可以存储八个电荷状态(或八个Vt水平)的多级单元存储器可以存储三位数据,并且可以存储十六个电荷状态的多级单元可以存储四位数据。对于n位多级单元存储器中的每个,各种存储器元件位模式可以与不同电荷状态中的每个关联。参考电压可使各种电荷状态分开。例如,第一参考电压可使水平3和水平2分开,并且第二电压参考可使水平2与水平1分开,并且第三参考电压可使水平1与水平0分开。

二进制信息可直接映射到单级单元存储器。然而,多级单元需要存储器映射操作来将二进制信息映射到多级单元中的多个水平(level)。二进制到三进制映射是取二进制数据并将其映射到三进制符号的函数。典型的二进制到三进制映射首先获得二进制串的十进制表示并且然后将该十进制数字映射到它的三进制表示。通过该映射获得的压缩接近理论极限。例如,1千字节的位(即,8192个位)可以映射到5169个三进制符号。获得的压缩是1.5848,其接近理论极限。每个3级存储器单元的理论存储极限是Log2(3)=1.5849个位。

该典型的二进制到三进制映射的一个问题是它经受错误传播。考虑待存储二进制串“000…001111”。该串的十进制表示是15并且三进制表示是“000..00120”。在单元中存储(例如,存储到NAND闪速存储器)为水平信息(level information)的该三进制串被读回。因为在从存储器(例如,NAND闪速存储器)读取时有错误,比如说“0000…00121”被读回(即,最后的水平0读出为水平1)。对于该有噪读出的二进制表示是“000…0010000”。因此,单级的错误在读出错误中转化为5个位。典型的映射具有3.5倍的错误传播,这意指位差错率是水平差错率的3.5倍。

附图说明

将从下文给出的详细描述以及本公开的各种实施例的附图更充分地理解本公开的实施例,然而,它们不应视为使本公开局限于特定实施例,而只是用于解释和理解。

图1图示根据本公开的一些实施例使用查找表(LUT)用于将二进制映射到三进制以及返回的硬件架构。

图2图示根据本公开的一些实施例具有19位二进制输入和12个三进制数位的三进制符号输出(具有2的幂的三进制表示)的LUT。

图3图示根据本公开的一些实施例具有12个三进制数位的三进制符号输入和19位二进制输出(具有3的幂的二进制表示)的LUT。

图4图示根据本公开的一些实施例将数据存储到根据图1的硬件架构的多级(例如,3级)存储器单元的存储器架构。

图5图示根据本公开的一些实施例用于将二进制映射到三进制以及返回的方法的流程图。

图6图示根据一些实施例具有用于将二进制数据映射到三进制数据以及返回的装置的智能设备或计算机系统或SoC(片上系统)。

具体实施例

对于采用多级存储模式(例如,三阈值电压水平模式)使用的闪速存储器(例如,NAND存储器),存在可以将二进制位映射到三个阈值水平的各种方式。例如,有效载荷可以是首先保护的防错码(ECC)并且然后二进制ECC位可以从二进制映射到三进制域。另一个方案是首先进行有效载荷的二进制到三进制映射并且然后使三进制ECC码在三进制数据上操作。在使用三进制ECC方案中有明显优势。二进制ECC方案可需要从存储器读取的水平首先从三进制转换到二进制域。因为在读取的三进制水平中有错误,在三进制符号转换为二进制位时存在两倍的错误传播。

然而,如果使用三进制ECC方案,则三进制ECC首先校正所有错误。对无噪数据操作的三进制到二进制映射提供没有错误的二进制位。典型的二进制到三进制映射实现起来非常复杂。例如,对于简单数据的ECC码字大小是近似4.6千字节位或近似37,665个位。如果这37,665个位被转换成它们对应的三进制表示,门计数是4*37665=150,000个门。对于三进制到二进制映射需要相似数量的门,该三进制到二进制映射在使用典型的二进制到三进制映射的读取期间将三进制数据映射到二进制数据。各种实施例描述最佳二进制到三进制映射并且详述它的硬件实现。

在一些实施例中描述的映射是19-12映射,其取19个二进制位并且使用查找表(LUT)将它们映射到12个三进制符号(或三进制数位)。每个3级存储器单元的理论存储极限是Log2(3)=1.5849个位。在一些实施例中,该转换得到映射到一个三进制符号的1.5833个位,其更接近每单元1.5849个位(bpc)的理论极限。在一些实施例中,该映射的硬件实现使用在100个门范围内的逻辑门,其比用于典型的二进制到三进制映射的硬件的复杂程度要小得多。

尽管参考在3级存储器(例如,3级NAND、3级相变存储器,等)中存储来描述实施例,实施例不限于此。在一些实施例中,对于6级编程,19-12映射可以概括如下。例如,对于6级编程的级别分为两组-第一组L0、L1和L2以及第二组L3、L4和L5,其中‘L’指级别。在一些实施例中,一个位用于决定组(即,第一组或第二组),并且然后19-12映射用于在一组的三个级别内存储1.583bpc。利用这样的实施例实现2.583bpc的存储。在各种实施例中描述的方案可以扩展到任意倍数的两级或三级编程。例如,9级编程、12级编程、18级编程、27级编程等。

在下列描述中,论述许多细节来提供对本公开的实施例的更全面解释。然而,本公开的实施例可在没有这些具体细节的情况下实践,这对于本领域内技术人员将是明显的。在其它示例中,以框图的形式而不详细地示出众所周知的结构和设备,以便避免混淆本公开的实施例。

注意在实施例的对应图中,信号用线表示。一些线可更粗,用于指示更多的组成信号路径,并且/或在一个或多个端处具有箭头,用于指示主要信息流方向。这样的指示不意在为限制性的。相反,这些线结合一个或多个示范性实施例使用以便于更容易地理解电路或逻辑单元。任何表示的信号,如由设计需要或偏好指定的,实际上可包括一个或多个信号,其可在任一方向上行进并且可用任何适合类型的信号方案实现。

在整个说明书和权利要求书中,术语“连接”意指连接的事物之间没有任何中间设备的直接电气连接。术语“耦合”意指连接的事物之间的直接电气连接或通过一个或多个无源或有源中间设备的间接连接。术语“电路”意指设置成彼此合作来提供期望功能的一个或多个无源和/或有源部件。术语“信号”意指至少一个电流信号、电压信号或数据/时钟信号。“一”和“该”的意思包括复数个参考。“在…中”的意思包括“在…中”和“在…上”。

术语“大致”、“接近”、“近似”、“靠近”和“大约”一般指在目标值的+/- 20%内。除非另外规定,用于描述公共对象的序数词“第一”、“第二”、“第三”等的使用仅仅指示提及类似对象的不同示例,并且不意在暗指这样描述的对象必须在时间上、空间上、采用排序或采用任何其它方式处于给定序列中。

图1图示根据本公开的一些实施例使用用于将二进制映射到三进制以及返回的LUT的硬件架构100。在一些实施例中,架构100包括第一逻辑101、第一LUT 102、缓冲器103、第二逻辑104和第二LUT 105。在一些实施例中,第一逻辑101包括访问第一LUT 102来将二进制输入转换为三进制符号输出的组合逻辑和/或有限状态机(FSM)。

在一些实施例中,第一逻辑101包括使三进制输出值初始化为零的逻辑。在一些实施例中,第一逻辑101然后检查19位元组(即,二进制输入)中一的位置。在一些实施例中,在二进制输入中无论何时检测到一的情况下,从第一LUT 102读取它的三进制表示并且将其加到三进制值(其首先被初始化为零)。根据一些实施例参考图2描述第一LUT 102。返回参考图1,在一些实施例中,在三进制域中进行该加法。在一些实施例中,在考虑19位元组中的所有一时,获得12三进制符号值并且将其作为三进制输出而提供。

在一些实施例中,第二逻辑104包括使二进制输出初始化为零的逻辑。在一些实施例中,第二逻辑104然后检查12三进制数位符号(即,缓冲的三进制输出)中一的位置。在一些实施例中,在缓冲的三进制输出中无论何时检测到一的情况下,从第二LUT 105读取它的二进制表示并且将其加到二进制值(其首先被初始化为零)。根据一些实施例,参考图3描述第二LUT 105。返回参考图1,在一些实施例中,在二进制域中进行该加法。在一些实施例中,在考虑12三进制数位符号中的所有一时,获得19位二进制值并且将其作为二进制输出而提供。第二逻辑104的硬件实现可以与第一逻辑101的硬件实现相似。

使用这些映射,一些实施例可以在写操作期间在编码器处高效地将二进制数据转换到三进制域并且在读操作期间在解码器处高效地将三进制数据转换到二进制形式。在一些实施例中,19-12映射提供到1.585bpc理论极限的最高效映射。

图2图示根据本公开的一些实施例具有19位二进制输入和12三进制数位符号输出(具有2的幂的三进制表示)的LUT 200(例如,第一LUT 102)。要指出,图2的具有与任何其他图的元件相同的标号(或名称)的那些元件可以采用与描述的那个相似但不限于这样的任何方式操作或运作。在一些实施例中,LUT 200具有19个条目,其对应于从0到18的所有2的幂的三进制中该2的幂。

在一些实施例中,LUT 200在非易失性存储器中实现。非易失性存储器的示例是相变存储器(PCM)、三维交叉点存储器、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、闪速存储器(例如NAND或NOR)、磁阻随机存取存储器(MRAM)存储器(其包含忆阻器技术)、自旋转移转距(STT)-MRAM等。在其他实施例中,LUT 200在其他类型的存储电路中实现。

图3图示根据本公开的一些实施例具有12三进制数位的三进制符号输入和19位二进制输出(具有3的幂的二进制表示)的LUT 300(例如,第二LUT 105)。要指出,图3的具有与任何其他图的元件相同的标号(或名称)的那些元件可以采用与描述的那个相似但不限于这样的任何方式操作或运作。在一些实施例中,LUT 300具有12条目,其对应于从0到11的三的幂。一些实施例中,LUT 300在非易失性存储器中实现。在其他实施例中,LUT 300在其他类型的存储电路中实现。

图4图示根据本公开的一些实施例在根据图1的硬件架构的多级存储器(例如,3级存储器)中存储数据的存储器架构400。要指出,图4的具有与任何其他图相同的标号(或名称)的那些元件可以采用与描述的那个相似但不限于这样的任何方式操作或运作。

根据一些实施例,存储器架构400可以是固态驱动器(SSD)。在其他实施例中,可以使用其他类型的架构。为了不混淆实施例,示出存储器架构400的简化版本。本领域内技术人员将意识到存在架构400的完整操作所需要的其他逻辑和电路。例如,未示出输入-输出(I/O)缓冲器(例如串行高级技术附件(SATA)接口)和对应的电路。

在一些实施例中,存储器架构400包括3级存储器401(例如,3级NAND闪速存储器、3级相变存储器(PCM)等)和处理器402(例如,存储器控制器)。尽管存储器401示出为单个单元,它可以包括多个非易失性存储器子单元,其中的每个具有3级存储器单元。在一些实施例中,存储器401可以在相同封装件上在处理器402内集成。在一些实施例中,存储器401可以单独在截然不同的晶片上,但在相同封装件上或不同封装件上。

对于一些存储器(例如,L06 NAND),非易失性存储器单元(例如,3级NAND单元)编程为3个级别(即,位映射到3个级别)。一些实施例描述1.5个位/单元编程方案。这包括将三个位编程到两个非易失性存储器单元。两个非易失性存储器单元可以共同代表九个组合。组合之一未被编程,而另外八个组合唯一地映射到3个位。因此每非易失性存储器单元存储1.5个位。每个非易失性存储器单元的理论存储极限实际上是1.5849个位。因此存储1.5个位/单元是低效的。根据本公开的一些实施例,架构100和SSD 400描述大致达到1.5849个位/单元的存储极限的硬件和关联方法。

在一些实施例中,处理器402包括编码器403、解码器404、第一逻辑101(即,二进制到三进制(B2T)转换器)、第一LUT 102、第二逻辑104(即,三进制到二进制(T2B)转换器)和第二LUT 105。在一些实施例中,输入二进制数据(data_in)被B2T转换器101接收,其使用如参考图1描述的第一LUT 102的映射将data_in转换为三进制dataT1。返回参考图4,在一些实施例中,三进制dataT1被编码器403编码,其生成编码数据(即,编码的水平信息)以存储在存储器401中。

在处理器402请求数据时,从存储器401检索编码数据并且被解码器404解码。因为编码数据是三进制数据,解码器404的输出dataT2是三进制数据。在一些实施例中,dataT2被T2B转换器105接收,其使用如参考图1描述的第二LUT 105的映射将dataT2转换为二进制输出data_out。在这里,解码器404的无错水平信息输出data_out被T2B转换器105映射到二进制域。

返回参考图4,在一些实施例中,编码器403是低密度奇偶校验(LDPC)编码器并且解码器404是LDPC解码器。在其他实施例中,可以使用其他类型的编码和对应的解码方案。例如,可以使用Bose、Chaudhuri和Hocquenghem(BCH)编码和对应的解码方案。在一些实施例中,非二进制LDPC码以附加硬件为代价提供比二进制LDPC码更好的性能。根据一些实施例,在三进制码的情况下,附加硬件成本最小。与二进制码相比,一些实施例的残余位差错率(RBER)增益是明显的。例如,由于参考各种实施例描述的紧凑二进制到三进制映射和三进制LDPC码所引起的RBER增益是近似1.53倍,从而允许有2.3e-2的RBER。

图5图示根据本公开的一些实施例用于将二进制映射到三进制以及返回的方法的流程图500。要指出,图5具有与任何其他图的元件相同的标号(或名称)的那些元件可以采用与描述的那个相似的任何方式操作或运作,但不限于此。

尽管按特定顺序示出参考图5的流程图中的框,可以修改动作的顺序。从而,图示的实施例可以按不同顺序执行,并且一些动作/框可以并行执行。根据某些实施例,图5中列出的框和/或操作中的一些是可选的。呈现的框的编号是为了清楚起见并且不意在规定各种框必须出现的操作顺序。另外,各种流程的操作可以以多种组合使用。

在框501,二进制输入被第一逻辑101接收。在框502,二进制输入被第一逻辑101根据第一LUT 102转换为三进制输出,其中第一LUT 102包括19个二进制位到12个三进制的三进制数位的映射,如参考图2示出的。在一些实施例中,第一逻辑101使三进制输出值初始化为零。在一些实施例中,第一逻辑101然后检查19位二进制输入中一的位置。在一些实施例中,在二进制输入中无论何时检测到一的情况下,从第一LUT 102读取它的三进制表示并且将其加到三进制值(其首先被初始化为零)。在一些实施例中,在考虑19位二进制输入中的所有一时,获得12三进制符号值并且将其作为三进制输出而提供以存储在存储器(例如,存储器401)中。

返回参考图5,在框503,从存储器(例如,存储器401)检索三进制输出并且将其提供给第二逻辑104。在框504,第二逻辑104根据第二LUT 105将三进制输出转换为二进制输出,其中第二LUT 105包括12个三进制的三进制数位到19个二进制位的映射,如参考图3描述的。

在一些实施例中,第二逻辑104包括使二进制输出初始化为零的逻辑。在一些实施例中,第二逻辑104然后检查12三进制数位符号(即,从存储器401检索的三进制输出)中一的位置。在一些实施例中,在三进制输出中无论何时检测到一的情况下,从第二LUT 105读取它的二进制表示并且将其加到二进制值(其首先被初始化为零)。在一些实施例中,在二进制域中进行该加法。在一些实施例中,在考虑12三进制数位符号中的所有一时,获得19位二进制值并且将其作为二进制输出而提供。

图6图示根据一些实施例具有用于将二进制映射到三进制以及返回的装置的智能设备或计算机系统或SoC(片上系统)。要指出,图6的具有与任何其他图的元件相同的标号(或名称)的那些元件可以采用与描述的那个相似但不限于这样的任何方式操作或运作。

图6图示其中可以使用平坦表面接口连接器的移动设备的实施例的框图。在一些实施例中,计算设备1600代表移动计算设备,例如计算平板、移动电话或智能电话、支持无线的电子阅读器或其他无线移动设备。将理解大体示出某些部件,并且不是这样的设备的所有部件都在计算设备1600中示出。

在一些实施例中,计算设备1600包括第一处理器1610,其具有根据论述的一些实施例用于将二进制映射到三进制以及返回的装置。计算设备1600的其他块还可以包括用于根据一些实施例将二进制映射到三进制以及返回的装置。本公开的各种实施例还可以包括1670内的网络接口(例如无线接口)使得系统实施例可以并入无线设备,例如蜂窝电话或个人数字助理。

在一个实施例中,处理器1610(和/或处理器1690)可以包括一个或多个物理设备,例如微处理器、应用处理器、微控制器、可编程逻辑设备或其他处理部件。由处理器1610执行的处理操作包括执行应用和/或设备功能所在的操作平台或操作系统的执行。处理操作包括与对于人类用户或对于其他设备的I/O(输入/输出)有关的操作、与电力管理有关的操作和/或与使计算设备1600连接到另一个设备有关的操作。处理操作还可以包括与音频I/O和/或显示I/O有关的操作。

在一个实施例中,计算设备1600包括音频子系统1620,其代表与向计算设备提供音频功能关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动器、编解码器)部件。音频功能可以包括扬声器和/或耳机输出,以及麦克风输入。用于这样的功能的设备可以集成到设备计算设备1600内,或连接到计算设备1600。在一个实施例中,用户通过提供音频命令(其由处理器1610接收并且处理)而与计算设备1600交互。

显示子系统1630代表硬件(例如,显示设备)和软件(例如,驱动器)部件,其提供视觉和/或触觉显示器以供用户与计算设备1600交互。显示子系统1630包括显示界面1632,其包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示界面1632包括与处理器1610分离以执行与显示有关的至少一些处理的逻辑。在一个实施例中,显示子系统1630包括触屏(或触控板)设备,其向用户提供输出和输入两者。

I/O控制器1640代表与用户的交互有关的硬件设备和软件部件。I/O控制器1640可操作以管理作为音频子系统1620和/或显示子系统1630的部分的硬件。另外,I/O控制器1640图示用于连接到计算设备1600的额外设备的连接点,用户可通过额外设备与系统交互。例如,可以附连到计算设备1600的设备可以包括麦克风设备、扬声器或立体音响系统、视频系统或其他显示设备、键盘或小键盘设备,或其他I/O设备以与特定应用(例如读卡器或其他设备)一起使用。

如上文提到的,I/O控制器1640可以与音频子系统1620和/或显示子系统1630交互。例如,通过麦克风或其他音频设备的输入可以对计算设备1600的一个或多个应用或功能提供输入或命令。另外,代替显示输出或除显示输出外,可以提供音频输出。在另一个示例中,如果显示子系统1630包括触屏,显示设备也充当输入设备,其可以至少部分由I/O控制器1640管理。在计算设备1600上还可以存在额外的按钮或开关,用于提供由I/O控制器1640管理的I/O功能。

在一个实施例中,I/O控制器1640管理例如加速计、拍摄装置、光传感器或其他环境传感器等设备,或计算设备1600中可以包括的其他硬件。输入可以是直接用户交互的部分,以及向系统提供环境输入来影响它的操作(例如对于噪声的滤波、对于亮度检测而调整显示器、对拍摄装置应用闪光灯,或其他特征)。

在一个实施例中,计算设备1600包括电力管理1650,其管理电池电力使用、电池的充电和与电力节省操作有关的特征。存储器子系统1660包括用于将信息存储在计算设备1600中的存储器设备。存储器可以包括非易失性(如果中断对存储器设备的电力则状态不改变)和/或易失性(如果中断对存储器设备的电力则状态不确定)存储器设备。存储器子系统1660可以存储应用数据、用户数据、音乐、照片、文档或其他数据,以及与计算设备1600的应用和功能的执行有关的系统数据(无论是长期还是暂时的)。

实施例的元件还作为用于存储计算机可执行指令(例如,实现本文论述的任何其他进程的指令)机器可读介质(例如,存储器1660)而提供。该机器可读介质(例如,存储器1660)可以包括但不限于闪速存储器、光盘、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁或光卡、相变存储器(PCM)或适合于存储电子或计算机可执行指令的其他类型的机器可读介质。例如,本公开的实施例可以作为计算机程序(例如,BIOS)而下载,其可以通过数据信号经由通信链路(例如,调制解调器或网络连接)从远程计算机(例如,服务器)传输到请求计算机(例如,客户端)。

连接性(connectivity)1670包括硬件设备(例如,无线和/或有线连接器和通信硬件)和软件部件(例如,驱动器、协议栈),用于使计算设备1600能够与外部设备通信。计算设备1600可以是独立设备,例如其他计算设备、无线接入点或基站以及例如头戴式耳机、打印机或其他设备等外设。

连接性1670可以包括多个不同类型的连接性。为了推广,计算设备1600图示有蜂窝连接性1672和无线连接性1674。蜂窝连接性1672一般指由无线载波提供的蜂窝网络连接性,例如经由GSM(全球移动通信系统)或变化或衍生、CDMA(码分多址)或变化或衍生、TDM(时分复用)或变化或衍生或其他蜂窝服务标准提供的。无线连接性(或无线接口)1674指不是蜂窝的无线连接性,并且可以包括个人区域网(例如蓝牙、近场等)、局域网(例如Wi-Fi)和/或广域网(例如WiMax)或其他无线通信。

外围连接1680包括硬件接口和连接器,以及软件部件(例如,驱动器、协议栈),用于进行外围连接。将理解计算设备1600既可以是到其他计算设备(“到”1682)的外围设备,又具有连接到它的外围设备(“从”1684)。计算设备1600通常具有“对接”连接器,用于连接到其他计算设备用于例如管理(例如,下载和/或上传、改变或同步)计算设备1600上的内容等目的。另外,对接连接器可以允许计算设备1600连接到某些外设,其允许计算设备1600控制例如到视听或其他系统的内容输出。

除外围对接连接器或其他外围连接硬件外,计算设备1600可以经由公共或基于标准的连接器来进行外围连接1680。常见类型可以包括通用串行总线(USB)连接器(其可以包括许多不同的硬件接口中的任一个)、DisplayPort(其包括MiniDisplayPort(MDP))、高清晰度多媒体接口(HDMI)、Firewire或其他类型。

在说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用意指结合实施例描述的特定特征、结构或特性包括在至少一些实施例中,而不一定是所有实施例。“实施例”、“一个实施例”或“一些实施例”的各种表现不一定都指相同的实施例。如果说明书规定部件、特征、结构或特性“可”、“可能”或“可以”被包括,则该特定部件、特征、结构或特性不是必需被包括。如果说明书或权利要求提及“一”元件,这不意指仅存在描述的元件中的一个。如果说明书或权利要求提及“额外的”元件,这不排除存在超过一个额外的元件。

此外,特定特征、结构、功能或特性可采用任何适合的方式在一个或多个实施例中组合。例如,第一实施例可与第二实施例在这两个实施例关联的特定特征、结构、功能或特性不互相排斥的任何情况下进行组合。

尽管本公开已经结合其特定实施例描述,鉴于前面的描述,这样的实施例的许多备选、修改和变化对于本领域内技术人员将是明显的。例如,其他存储器架构(例如,动态RAM(DRAM))可以使用论述的实施例。本公开的实施例意在包含所有这样的备选、修改和变化,它们落入附上的权利要求的广泛范围内。

另外,为了简化说明和论述,并且为了不混淆本公开,众所周知的到集成电路(IC)芯片和其他部件的电力/接地连接可在或可不在呈现的图内示出。此外,设置可采用框图形式示出以避免混淆本公开,并且还鉴于关于这样的框图设置的实现的细节高度地取决于实现本公开所在的平台(即,这样的细节应该完全在本领域内技术人员的视野内)这一事实。在阐述特定细节(例如,电路)以便描述本公开的示例实施例的情况下,可以在没有这些特定细节或具有这些特定细节的变化形式的情况下实践本公开,这对本领域内技术人员应该是明显的。从而描述被视为说明性而非限制性的。

下列示例关于另外的实施例。示例中的细节可在一个或多个实施例中在任何地方使用。本文描述的装置的所有可选特征也可关于方法或进程实现。

例如,提供装置,其包括:第一LUT,其具有19个二进制位到12个三进制的三进制数位的映射;和第一逻辑,用于接收二进制输入并且根据第一LUT将该二进制输入转换为三进制输出。在一些实施例中,装置包括:第二LUT,其具有12个三进制的三进制数位到19个二进制位的映射;和第二逻辑,用于接收三进制输出并且根据第二LUT将它转换为二进制输出。在一些实施例中,第一LUT包括 19个条目,其对应于从0到18的2的幂的三进制中该2的幂的值。

在一些实施例中,第二LUT 包括12个条目,其对应于对于从0到11的3的幂的二进制中该3的幂的值。在一些实施例中,第一逻辑包括:用于使三进制输出初始化为零的逻辑。在一些实施例中,第一逻辑包括:用于确定二进制输入中一的位置的逻辑。在一些实施例中,二进制输入具有19个二进制位。在一些实施例中,第一逻辑包括用于检测二进制输入中的一的逻辑。在一些实施例中,第一逻辑包括:用于根据来自二进制输入中一的位置的一的对应位置从第一LUT读取三进制表示的逻辑。

在一些实施例中,第一逻辑包括加法器,用于在三进制域中将三进制表示加到初始化的三进制输出来生成三进制输出。在一些实施例中,三进制输出是12三进制符号值。在一些实施例中,第二逻辑包括:用于读取三进制输出以及使二进制输出初始化为零的逻辑。在一些实施例中,第二逻辑包括:用于确定三进制输出的12个三进制的三进制数位中的一的位置的逻辑;用于根据来自三进制输入中一的位置的一的对应位置从第二LUT读取二进制表示的逻辑;和加法器,用于在二进制域中将二进制表示加到初始化的二进制输出来生成二进制输出。

在另一个示例中,提供系统,其包括:非易失性存储器;耦合于该非易失性存储器的处理器,该处理器包括:第一LUT,其具有19个二进制位到12个三进制的三进制数位的映射;第二LUT,其具有12个三进制的三进制数位到19个二进制位的映射;第一逻辑,用于接收二进制输入并且根据第一LUT将二进制输入转换成三进制输出;和编码器,用于接收三进制输出并且对三进制输出编码来生成编码的三进制输出以存储在非易失性存储器中;和无线接口,用于允许处理器与另一个设备通信。

在一些实施例中,系统包括:解码器,用于对编码的三进制输出解码并且生成解码的三进制输出。在一些实施例中,系统包括:第二逻辑,用于接收解码的三进制输出并且根据第二LUT将它转换为二进制输出。在一些实施例中,编码器是三进制LDPC编码器,并且其中解码器是三进制LDPC解码器。在一些实施例中,第一LUT包括19个条目,其对应于从0到18的2的幂的三进制中该2的幂的值,并且其中第二LUT包括12个条目,其对应于从0到11的3的幂的二进制中该3的幂的值。

在另一个示例中,提供方法,其包括:接收二进制输入;以及根据第一LUT将该二进制输入转换为三进制输出,该第一LUT具有19个二进制位到12个三进制的三进制数位的映射。在一些实施例中,方法包括:接收三进制输出;以及根据第二LUT将三进制输出转换为二进制输出,该第二LUT具有12个三进制的三进制数位到19个二进制位的映射。在一些实施例中,第一LUT包括19个条目,其对应于从0到18的2的幂的三进制中该2的幂的值。在一些实施例中,第二LUT包括12个条目,其对应于从0到11的3的幂的二进制中该3的幂的值。在一些实施例中,方法包括使三进制输出初始化为零。在一些实施例中,方法包括确定二进制输入中一的位置。在一些实施例中,二进制输入具有19个二进制位。

在一些实施例中,方法包括检测二进制输入中的一。在一些实施例中,方法包括根据来自二进制输入中一的位置的一的对应位置从第一LUT读取三进制表示。在一些实施例中,方法包括在三进制域中将三进制表示加到初始化的三进制输出来生成三进制输出。在一些实施例中,三进制输出是12三进制符号值。在一些实施例中,方法包括:读取三进制输出;以及使二进制输出初始化为零。

在一些实施例中,方法包括确定三进制输出的12个三进制的三进制数位中一的位置。在一些实施例中,方法包括根据来自三进制输入中一的位置的一的对应位置从第二LUT读取二进制表示。在一些实施例中,方法包括在二进制域中将二进制表示加到初始化的二进制输出来生成二进制输出。

在另一个示例中,提供装置,其包括:用于接收二进制输入的部件;和用于根据第一LUT将二进制输入转换为三进制输出的部件,该第一LUT具有19个二进制位到12个三进制的三进制数位的映射。在一些实施例中,装置包括:用于接收三进制输出的部件;和用于根据第二LUT将三进制输出转换为二进制输出的部件,该第二LUT具有12个三进制的三进制数位到19个二进制位的映射。在一些实施例中,第一LUT包括19个条目,其对应于从0到18的2的幂的三进制中该2的幂的值。在一些实施例中,第二LUT包括12个条目,其对应于从0到11的3的幂的二进制中该3的幂的值。

在一些实施例中,装置包括用于使三进制输出初始化为零的部件。在一些实施例中,装置包括用于确定二进制输入中一的位置的部件。在一些实施例中,二进制输入具有19个二进制位。在一些实施例中,装置包括用于检测二进制输入中的一的部件。在一些实施例中,装置包括用于根据来自二进制输入中一的位置的一的对应位置从第一LUT读取三进制表示的部件。

在一些实施例中,装置包括用于在三进制域中将三进制表示加到初始化的三进制输出来生成三进制输出的部件。在一些实施例中,三进制输出是12三进制符号值。在一些实施例中,装置包括:用于读取三进制输出的部件;和用于使二进制输出初始化为零的部件。在一些实施例中,装置包括用于确定三进制输出的12个三进制的三进制数位中的一个的位置的部件。在一些实施例中,装置包括用于根据来自三进制输入中一的位置的一的对应位置从第二LUT读取二进制表示的部件。在一些实施例中,装置包括用于在二进制域中将二进制表示加到初始化的二进制输出来生成二进制输出的部件。

在另一个示例中,提供系统,其包括:非易失性存储器;耦合于该非易失性存储器的处理器,该处理器包括根据上文描述的装置的装置;和无线接口,用于允许处理器与另一个设备通信。在一些实施例中,非易失性存储器是NAND存储器或PCM中的一个。在一些实施例中,系统包括显示接口,用于允许显示单元显示被处理器处理的内容。

提供摘要,其允许读者弄清本技术公开的本质和要点。提交摘要要理解为摘要将不用于限制权利要求的范围或含义。随附的权利要求由此并入详细描述内,其中每个权利要求立足于它自身作为单独实施例。

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