CN105515727B - 用于改进编码的设备以及相关方法 - Google Patents
用于改进编码的设备以及相关方法 Download PDFInfo
- Publication number
- CN105515727B CN105515727B CN201410838110.5A CN201410838110A CN105515727B CN 105515727 B CN105515727 B CN 105515727B CN 201410838110 A CN201410838110 A CN 201410838110A CN 105515727 B CN105515727 B CN 105515727B
- Authority
- CN
- China
- Prior art keywords
- data
- bits
- bit
- electronic device
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/06—Code representation, e.g. transition, for a given bit cell depending only on the information in that bit cell
- H03M5/12—Biphase level code, e.g. split phase code, Manchester code; Biphase space or mark code, e.g. double frequency code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
- H03M5/145—Conversion to or from block codes or representations thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Dc Digital Transmission (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
设备包括编码器,该编码器适用于通过使用脉冲幅度调制(PAM)来对需要经由通信链路传输的数据位进行编码。编码器包括逻辑电路。逻辑电路适用于对位图案和数据位执行逻辑操作以便减小连续长度并且/或者改善数据位的DC平衡。
Description
相关申请的交叉引用
本申请为2012年10月26日提交的标题为“Apparatus for Improved Encodingand Associated Methods”的美国申请第13/661,313号(代理人号:ALTR99)的部分延续案(CIP),并且其全部内容以引用的方式并入本文。
技术领域
所公开的概念总体涉及电子通信,并且更加具体地,涉及在电子通信中用于改进编码的设备以及相关方法。
背景技术
电子电路系统和系统有时使用高速链路来促进在两个电路或者子系统之间的通信。链路(其可以是串行链路)可以传输具有由发射器添加的编码的信息或者数据,该编码可以指示字边界、区分数据和控制信息,对数据进行置乱(scramble)以分散电磁干扰(EMI),避免长的连续长度(run-length,RL),以及平衡0和1的数目以避免DC失衡(缺乏DC平衡)。编码方案的示例包括8b10b、64/66和64/67,这些都是本领域技术人员众所周知的。这类编码方案可以与多种物理层布置(physical layer arrangement)一起使用,诸如本领域技术人员已知的脉冲幅度调制(例如,PAM-4和PAM-8)方案。
在接收器处,对经由链路传输的数据进行处理,以确定字边界、获取与发射器的锁定,解码等等。一旦发现字锁(word lock),便使用数据变换以确认维持字锁。这些操作的细节是本领域技术人员熟知的。
发明内容
本公开总体涉及在电子通信中的改进编码、具有改进编码的设备以及相关方法。考虑了多种设备和方法。根据一个示例性实施例,设备包括编码器,该编码器适用于使用脉冲幅度调制(PAM)对经由通信链路传输的数据位进行编码。编码器包括逻辑电路。逻辑电路对位图案(pattern of bits)和数据位执行逻辑操作,以便减小连续长度以及/或者改善数据位的DC平衡。
根据另一示例性实施例,设备包括编码器电路,该编码器电路使用PAM对经由通信链路作为数据流传输的数据位进行编码。编码器电路包括位顺序置乱电路,该位顺序置乱电路对数据位的顺序进行置乱以减小连续长度以及/或者改善数据流的DC平衡。
根据另一示例性实施例,设备包括编码器,该编码器对数据位集合进行编码,其中该编码器基于位集合对数据位选择性地进行编码。该位集合初始地用于使用PAM经由链路建立数据通信。
附图说明
附图仅仅图示了示例性实施例,因此不应该将附图视为限制本申请或者权利要求书的范围。已经知晓本公开的益处的本领域技术人员要了解,所公开的概念还适用于其他等效的实施例。在图中,在一个以上的图中使用的相同数字指示符表示相同、相似或者等同的功能、部件或者块。
图1A-图1B图示了根据示例性实施例的数据通信系统的方块图。
图2A-图2D图示了在示例性实施例中使用的PAM数据通信系统中的各种信号和电路。
图3示出了根据示例性实施例的用于编码的电路的方块图。
图4A-图4B图示了使用根据示例性实施例的逻辑操作来减小连续长度的示例。
图5图示了根据示例性实施例的用于对位顺序进行置乱或者对位重排序的电路的方块图。
图6描绘了根据示例性实施例的使用位排序的置乱来减小连续长度的示例。
图7示出了根据示例性实施例的用于选择性地使用经由逻辑操作进行编码的电路。
图8图示了根据示例性实施例的用于选择性地使用经由位排序进行编码的电路。
图9描绘了根据示例性实施例的用于选择性地使用经由逻辑操作或者位排序进行编码的电路。
图10A-图10B图示了根据示例性实施例的用于执行逻辑操作和位排序方案对数据进行编码的电路的方块图。
图11A-图11B图示了根据示例性实施例的用于选择性地执行逻辑操作和/或位排序方案对数据进行编码的电路的方块图。
图12图示了根据示例性实施例的使用位排序的置乱以及逻辑操作来减小连续长度的示例。
图13描绘了根据示例性实施例的用于选择性地改善DC平衡的技术的流程图。
图14示出了根据示例性实施例的用于改善DC平衡和/或连续长度的实施例的方块图。
图15图示了根据示例性实施例的信息位或者分组的配置。
图16描绘了根据另一示例性实施例的信息位或者分组的配置。
图17描绘了根据示例性实施例的用于接近连续长度的电路的方块图。
图18图示了根据示例性实施例的接近连续长度的示例。
图19示出了根据示例性实施例的用于经由链路提供通信的技术的流程图。
具体实施方式
所公开的概念总体涉及通过改善所用的编码方案来改进在电子电路系统或者系统中的通信。更加具体地,如下面将详细描述的,所公开的概念提供了用于多种数据编码方案的设备和方法,这些数据编码方案提供了多个优点,诸如连续长度(RL)相对低、变换密度相对高、变换密度较均匀、开销相对低、和/或维持了DC平衡(或者,近乎或者大体上维持了DC平衡)。在一些实施例中,可以单独地使用数据编码方案。作为替代方案,在一些实施例中,可以将两个或者更多的编码方案组合或者一起使用。本公开的一个方面涉及改善通信,其中在物理层使用PAM,诸如PAM-4、PAM-8、或者一般地PAM-2N,其中N表示大于1的正整数,并且2N表示PAM方案的信号电平的阶(order)或者数目(例如,对于PAM-4,阶为4),如下面将详细描述的。
连续长度是测量在所传输数据中一连串接连的0或者1的测量量。对接收器而言,正确检测更长的连续长度序列通常更具挑战性。更短的连续长度使得能够成功地进行更长距离的通信,例如,20”背平面(backplane),而非10”背平面(其例如为具有更长的连续长度的情况)。更短的连续长度使得,高速链路对于挑战性连接(诸如,背平面)性能更好。连续差异(running disparity,RD)是测量在0与1之间的失衡的测量量。例如,包括450个0和550个1的传输具有+100的连续差异和(100/1000)×100%(或者,10%)的失衡。
与连续差异有关的是DC平衡(或者,DC失衡的相关概念),指因为连续差异而在链路产生的DC电压。总体上,DC平衡指对数据流进行编码从而最小化或者消除传输数据的连续差异。在完美平衡的链路中,即具有零连续差异(在传输的0与1之间完美平衡)的链路中,DC平衡应该是共模电压,是各种状态的平均电压。然而,在失衡的链路中,在链路上产生平均DC偏置电压,即,链路具有DC失衡,与DC平衡相反。由此,如本领域技术人员所理解的,DC平衡和DC失衡是相关的概念。
所公开的编码方案可以用于多种数据通信电路系统和系统。图1A图示了根据示例性实施例的数据通信系统100。
系统100包括数据发射器110,经由链路118耦合至数据接收器120。在一些示例性实施例中,数据发射器110可以存在于与数据接收器120相同的物理包封或者封装中。作为一个示例,数据发射器110和数据接收器120可以存在于机架安装式(rack-mounted)系统或者器具内。作为另一示例,数据发射器110和数据接收器120可以存在于在多芯片模块(MCM)内的单独裸片(或者,相同裸片)上。作为另一示例,数据发射器110和数据接收器120可以存在于在集成电路(IC)内的相同裸片之上或者之内。作为附加示例,数据发射器110和数据接收器120可以存在于包括一个或者多个裸片、封装衬底等的三维(3D)封装或组件之上或者之内。如本领域技术人员所理解的,其他变化和配置也是可以的。
在一些示例性实施例中,数据发射器110可以存在于与数据接收器120不同的物理包封或者封装中。作为示例,数据发射器110可以存在于经由背平面耦合至与容纳或者包括数据接收器120的物理包封或者封装的不同的物理包封或者封装中。作为另一示例,数据发射器110可以存在于经由线缆、光纤或者其他机构耦合至容纳或者包括数据接收器120的物理包封或者封装的不同的物理包封或者封装中。
编码器114接收来自数据源112的数据,并且对该数据进行编码。下文详述的编码提供了上文提及的一些或者所有优点。编码器114向发射器电路116提供被编码的数据(encoded data)。发射器电路116经由链路118将被编码的数据传输至数据接收器120。
数据接收器120经由接收器电路122接收来自链路118的被编码的数据。接收器电路122将被编码的数据提供给解码器124。解码器124对该数据进行解码,并且将解码数据提供给数据目的地126。数据目的地126可以包括最终(或者,作为中间目的地)接收并且/或者使用解码数据的电路系统或者子系统。
链路118可以具有多种形式。总体上,链路118包括一个或者多个耦合机构,诸如接线、线缆、印刷电路板(PCB)迹线、光纤、在IC、MCM、3维(3D)封装和/或组件中的导体或者半导体等,以便于数据、状态和/或控制信号的通信。在示例性实施例中,数据发射器110使用串行通信以向数据接收器120提供被编码的数据。然而,如本领域技术人员将理解的,根据期望,也可以使用其他通信协议或者方案。例如,在一些实施例中,通信可以发生在IC之间、子系统之间、和/或系统之间。根据期望,IC、子系统和系统可以包括电路系统、光学设备或电路系统、或者其组合。
图1B图示了根据示例性实施例的数据通信系统140。在本实施例中,成对的数据收发器142A-142B利用编码方案(encoding scheme)(以及相应的解码方案)来改善性能。换言之,与在图1A中的单向系统100不同,系统140提供了在数据收发器142A-142B之间的双向通信链路。
参考图1B,系统140包括数据收发器142A,其经由链路150耦合至数据收发器142B。在一些示例性实施例中,数据收发器142A可以存在于与数据收发器142B相同的物理包封或者封装中。在一个示例中,数据收发器142A和数据收发器142B可以存在于机架安装式系统或者器具内。作为另一示例,根据期望,数据收发器142A和数据收发器142B可以存在于在MCM、3D封装或者组件等内的单独裸片(或者,相同裸片)上。作为另一示例,数据收发器142A和数据收发器142B可以存在于相同裸片或者IC之上或者之内。
在一些示例性实施例中,数据收发器142A可以存在于与数据收发器142B不同的物理包封或者封装中。作为示例,数据收发器142A可以存在于经由背平面耦合至与容纳或者包括数据收发器142B的物理包封或者封装的不同的物理包封或者封装中。作为另一示例,数据收发器142A可以存在于经由线缆、光纤或者其他机构耦合至容纳或者包括数据收发器142B的物理包封或者封装的不同的物理包封或者封装中。
如指出的,在数据收发器142A-142B之间的通信可以发生在两个方向上:从数据收发器142A至数据收发器142B,或者反之亦然。考虑第一情况,编码器/解码器146A接收来自数据源/目的地148A的数据,并且对该数据进行编码(以便最终传输至数据收发器142B)。注意,可以通过在编码器/解码器146A内的编码电路系统来执行该编码,该编码电路系统可以与编码器114相似(见图1A)。下文详述的编码提供了上文提及的一些或者所有优点。编码器/解码器146A将被编码的数据提供给收发器电路144A。收发器电路144A经由链路150将被编码的数据传输至数据收发器142B。
数据收发器142B经由收发器电路144B接收来自链路150的被编码的数据。收发器电路144B将被编码的数据提供给编码器/解码器146B。编码器/解码器146B对该数据进行解码,并且将解码数据提供给数据源/目的地148B。注意,可以通过在编码器/解码器146B内的解码电路系统来执行该解码,该解码电路系统可以与解码器124(见图1A)相似。数据源/目的地148B可以包括最终(或者,作为中间目的地)接收并且/或者使用解码数据的电路系统或者子系统。
在第二种情况下,信息从数据收发器142B流至数据收发器142A。编码器/解码器146B接收来自数据源/目的地148B的数据,并且对该数据进行编码(以便最终传输至数据收发器142A)。下文详述的编码提供了上文提及的一些或者所有优点。注意,可以通过在编码器/解码器146B内的解码电路系统来执行该编码,该解码电路系统可以与编码器114(见图1A)相似。编码器/解码器146B将被编码的数据提供给收发器电路144B。收发器电路144B经由链路150将被编码的数据传输至数据收发器142A。
数据收发器142A经由收发器电路144A接收来自链路150的被编码的数据。收发器电路144A将被编码的数据提供给编码器/解码器146A。编码器/解码器146A对该数据进行解码,并且将解码数据提供给数据源/目的地148A。注意,可以通过在编码器/解码器146A内的解码电路系统来执行解码,该解码电路系统可以与解码器124(见图1A)相似。数据源/目的地148A可以包括最终(或者,作为中间目的地)接收并且/或者使用解码数据的电路系统或者子系统。
链路150可以具有多种形式。总体上,链路150包括一个或者多个耦合机构,诸如接线、线缆、印刷电路板(PCB)迹线、在IC、MCM、3D封装和/或组件中的导体或者半导体等,以便于数据和状态或控制信号的通信。在示例性实施例中,数据收发器142A使用串行通信将被编码的数据提供给数据收发器142B,或者反之亦然。然而,如本领域技术人员将理解的,根据期望,也可以使用其他通信协议或者方案。
在示例性实施例中,也可以发生其他操作,诸如,寻找字边界、在数据发射器(或者,收发器)与数据接收器(或者,收发器)之间建立锁定或者同步等等。这些操作的细节以及它们各自的实施方式是本领域技术人员已知的。而且,发射器(或者,发射的收发器)和接收器(或者,接收的收发器)可以自动协调一些参数使通信链路得到改善或者更好,例如,非零的连续差异偏移、或者在连续差异与连续长度之间的偏置等。
如指出的,本公开的一方面涉及改善通信,其中PAM,诸如PAM-4、PAM-8、或者一般地PAM-2N,其中N表示大于1的正整数。在PAM的情况下,在接收器/收发器的一些实施方式中,上升或者下降时间可以依赖于在数据中的具体变换。
图2A(未按比例绘制)示出了图示了在PAM-4系统中的信号变换的波形。示例PAM-4系统使用差分信号。由此,“TXN”和“TXP”分别指发射器经由链路发送至接收器的正负信号。PAM-4系统针对每个符号使用两个位。换言之,符号率等于位率(或者,时钟频率或者速率)的一半。
在示出的示例中,PAM系统使用4个电压电平。电压电平构成-1V、-0.5V、+0.5V和+1V。换言之,符号值依赖于信号TXN和TXP的电压电平(-1V、-0.5V、+0.5V和+1V)。在图2A的示例中,VTXN=+1V并且VTXP=-1V表示00;VTXN=+0.5V并且VTXP=-0.5V表示01;以此类推,其中VTXN和VTXP分别表示信号TXN和TXP的电压。
注意,图2A列出了与TXN和TXP信号各自电压之差相对应的位值。由此,随着传输随时间进行,发射器向接收器发送符号00、01、11和10。
如指出的,在一些接收器或者收发器实施方式中,PAM信号的上升和下降时间可以依赖于具体变换。例如,从-0.5V至+1.0V的变换可以在与从+1.0V至+0.5V的变换不同的时间通过零电压点(注意,-0.5V、+0.5V电压仅仅是示例,在关于DC平衡的论述中,也可以考虑其他电压电平)。作为另一示例,将信号变换视为是时间的函数,如图2B中图示的。示出的示例假设有与示出的信号电平相对应的4个状态0、1、2和3。该图示出了信号状态0至3中所有可能的信号变换。每个状态与信号电压电平相对应,中心点或者共模电压在本实施例中标注为“0”。注意,例如,从状态0至状态2的变换在与从状态1至状态3的变换不同的时间点处通过中心点(在本文中为0伏),即使这两个变换引起了相同的信号电压变化。在相位检测器(例如,下面结合图2D所描述的开关式(bang-bang)相位检测器)限于对称信号变换的情况下,一些变换有用(它们是向相位检测器的输入),而一些变换无用,在这一点上连续长度受在有用状态之间的变换的影响。
图2C图示了根据示例性实施例的接收PAM信号并对其进行操作的接收器122的方块图。总体上,接收器122构成通信电路或者系统的物理层(PHY)的一部分。例如,在图2C中的接收器可以构成在图1A中的接收器122或者作为在图1B中的收发器电路144B的一部分的接收器。
接收器122接收来自链路118的信息。通常,接收器122对该信息执行一次或者多次操作。参考图2C,总体上,接收器122包括物理媒介附属(physical media attachment,PMA)12和物理编码子层(PCS)15。
接收器122经由PMA 12接收来自链路118的信息。PMA 12可以例如通过将该信息解串行化(deserialize)(当链路118构成串行通信链路时),来处理接收到的信息。如下文详细描述的,根据期望,PMA 12可以执行多种功能,诸如偏移消除(校正或者倾向于校正半导体制备工艺的波动)、可编程均衡化(equalization)等。PMA 12将处理后的信息提供给PCS15。PCS 15可以按照多种方式来处理该信息,例如,通过对该信息进行解码。虽然在示出的实施例中解码器26A-26N对从PMA 12接收到的信息执行了解码操作,但是在其他实施例中,除了解码之外或者替代解码,也可以执行其他操作。
在示出的实施例中,PMA 12包括信号生成电路18,该信号生成电路18生成信号,用于在接收器122中处理信息并且用于将由此产生的信息提供给解串行化器24。信号生成电路18可以包括锁相环(PLL)电路。根据期望,信号生成电路18还可以包括时钟数据恢复(CDR)电路和/或时钟倍频单元(CMU)。在一些实施例中,PLL电路可以构成CDR电路或者CMU电路的一部分。
如本领域中的技术人员所理解的,均衡化电路21可以向信息提供均衡化。在一些实施例中,均衡化电路21可以是可编程的,例如,经由一个或多个控制信号30A、在控制器30的控制下。根据期望,PMA 12可以执行多种功能,诸如偏移消除(其校正或者倾向于校正半导体制备工艺波动)等。PMA 12将处理后的信息提供给PCS 15。解串行化器24将信息从串行形式转变为并行形式。
PCS 15可以执行多种信息处理任务,诸如解码。在示出的实施例中,解码器26A-26N分别对信息执行解码操作1-N(虽然除了编码之外或者替代编码,在其他实施例中也可以执行其他操作,如本领域中的技术人员所理解的)。更加具体地,解码器26A可以使用一个解码类型对信息进行解码,解码器26B可以使用与解码器26A不同的解码类型对信息进行解码,以此类推到解码器26N。根据期望,可以使用多种解码方案。
将解码操作的结果提供给多路复用器(MUX)28。MUX 28响应于来自控制器30的一个或多个控制信号30C,选择通过使用期望编码方案而解码的信息,并且将解码信息作为接收器122的输出提供。控制器30使用信号30B控制PCS 15的其他操作。根据期望,除了上面所描述的操作之外,PCS 15还可以支持时钟补偿、速率匹配、字对齐、误码监测、相位补偿、和/或其他操作。
如上面所指出的,信号生成电路18可以包括PLL电路。图2D图示了可以在示例性实施例中采用的PLL电路。PLL电路包括相位检测器32、滤波器35、电压控制振荡器38,以及可选地包括除法器(divider)41。
输入或者参考频率fIN驱动相位检测器32的输入,该输入或者参考频率fIN可能关于接收到的数据或者从该数据导出。由除法器41(如果使用了除法器41)分配的VCO 38的输出,驱动相位检测器32的另一输入。由此,相位检测器32的输出提供相位检测器32的两个输入信号的相位差的测量量。
在一些实施例中,相位检测器32可以构成所谓的开关式相位检测器电路系统,虽然也可以使用其他类型的相位检测电路系统。开关式相位检测器通常包括向电容器提供电荷的电荷泵。电容器提供积分函数,并且提供了在频率fIN与fOUT之间的相位差的测量量(如下面所描述的。)
相位检测器32的输出驱动滤波器(例如,低通环路滤波器)35。滤波器35对相位检测器32的输出信号执行滤波操作(例如,低通滤波),并且将由此产生的滤波信号提供给VCO38。更加具体地,滤波器35的输出驱动VCO 38的控制输入。
响应于从滤波器35接收到的控制输入,VCO 38通过使用频率fOUT生成输出信号。VCO 38的输出通过除法器41(若使用了除法器41)驱动相位检测器32的输入,如上面所指出的。由此,PLL电路包括环绕相位检测器32、滤波器35、VCO 38和除法器41(若使用了)构成的反馈回路。
反馈环路的作用是减小频率fIN与fOUT之间的相位差。响应于频率fIN与fOUT,相位检测器32使VCO 38的振荡频率改变从而减小两个频率之间的相位差。当fIN与fOUT之间的相位差达到零(或者,被减小到足够小的值)时,PLL电路在锁定模式下操作。
当PLL电路在锁定模式下操作时,fIN=fOUT/R,其中R表示除法器41(若使用了除法器41)的除以R的操作。换言之,fOUT=fIN×R。如前面的等式所示,fIN变化引起VCO 38的输出频率(即,fOUT)变化。假定fIN涉及至接收器的输入数据或者从至接收器的输入数据得到,那么数据变换引起VCO 38的振荡频率偏差。
如上面所指出的,在PAM系统中,PAM信号的上升和下降时间可能依赖于变换,即可能依赖于引起变换的开始电平和最终电平。例如,参考使用图2A中示出信号电平的PAM系统,从各种开始电平变换到各种最终电平的变换可以在不同的时间通过共模电压(例如,在图2A中为0)。
结果,相位检测器32(见图2D)可以响应于变换的子集来更新PLL电路的状态(例如,使VCO 38的输出频率改变)。根据本公开的一个方面,在PAM系统中测量并且改善连续长度,可以基于使PLL电路的状态更新的一个或多个变换。
更加具体地,可以通过考虑并且使用这些数据变换来改善连续长度,这些数据变换使得相位检测器32(例如,开关式相位检测器)引起VCO 38加速(即,fOUT增加)或者减慢(即fOUT降低)。换言之,可以通过计算哪个数据变换会影响PLL电路(例如,会使VCO38的输出频率变化),来确定或者测量连续长度。可以基于哪个会改善连续长度来考虑对编码的各种选择,如下面将详细描述的。
本公开的另一方面涉及在PAM系统中改善DC平衡。在PAM-4、PAM-8或者一般地PAM-2N物理层的情况下,可以基于在给定或者指定时间段内的信号电平的频率来确定DC平衡。可以将对应于传输一定数目的位的时段的DC平衡,按传输电压的加权平均数(即,考虑了对应于多个符号或者位图案的多个信号电平的发生频率的平均数)来计算。注意,在通常的系统中,传输电压的加权平均数是真实DC平衡的近似值。更加准确的DC平衡计算会将在先位的权重降低et/τ,其中t是自该位以来所经过的时间,τ是电路的时间常数。一般而言,采用通常的系统,关注远远小于τ的t的值便足够了,从而使et/τ的加权相当近似于e0或者1。本领域技术人员认识到,也可以使用其他近似值。作为示例,在10Gbps链路中,t通常会小于100ns,而τ为50μs,从而产生在更简单的(simpler)加权平均数的2%以内的加权。
关于加权平均数的计算,例如考虑分别使用4个信号电平-1V、-0.5V、+0.5V和1V的PAM-4系统(例如见图2A)。假设该系统在电平0.5V下传输两个位并且在电平-1V下传输一个位。将计算加权平均数为(2×0.5)+(1×-1)或者0。由此,该系统会具有DC平衡0。
注意,如上面所描述的用于计算DC平衡的技术可以扩展至任何期望的PAM系统(一般地PAM-2N)。此外注意到,对于PAM-2系统(即,具有两个电压电平的系统),根据上面的计算的DC平衡将与根据常规的计算确定的DC平衡相同。
一般而言,在PAM系统的情况下,DC平衡计算可以开始于任意的或者选择的时间点t=0。在一些实施例中,开始于该时间点,在期望数目的位(例如,67个位)内对链路电压进行检查。对于每一个变换,计算或者更新连续平均数(running average),如上面所描述的。在已经检查了对应于期望数目的位的电压电平之后,得到最终加权平均数。
编码的各种选择可以基于哪个会改善DC平衡,如下面将详细描述的。通过将对应于各自的编码方案的平均数进行比较,可以选择使DC平衡得以改善或者校正(使DC平衡减小,或者,使其接近或者等于0)的编码方案。注意,根据期望,可以以逐字(一个数据字)为基准地执行编码方案的选择。此外,注意,可以为一个以上的数据字执行编码方案的选择以便改善或者校正DC平衡。
用于获得改进的连续长度和/或DC平衡的一个技术包括:在传输数据之前执行一次或者多次逻辑操作。更加具体地,可以在数据与另一信号(例如,时钟信号)之间执行逻辑操作,以改善连续长度和/或DC平衡。图3示出了根据示例性实施例的该技术。
更加具体地,图3中的电路布置示出了编码器114(见图1A)的一部分,虽然本领域技术人员理解,在图1B中示出的实施例中,也可以使用相似的布置来实施解码(例如,通过使用编码器/解码器146A和/或146B)。编码器114包括逻辑电路160,该逻辑电路160在示出的示例中具有两个输入。逻辑电路160的一个输入接收需要传输的数据。逻辑电路160的另一输入接收输入信号162(例如,从控制器(未示出)或者其他源接收到的输入信号),诸如时钟或者编码信号(encoding signal)。响应于这些输入,逻辑电路160对数据和输入信号执行逻辑操作,并且将逻辑操作的结果提供为输出(被编码的数据)。
在示例性实施例中,逻辑电路160可以执行多种逻辑操作。在一些实施例中,逻辑电路160可以对数据执行一个以上的逻辑操作,或者可以对数据逻辑操作的中间结果执行一个以上的逻辑操作。在一些实施例中,逻辑电路160可以例如响应于从一个或者多个源(例如,控制器(未示出))提供的一个或多个控制信号、命令等,按照可编程的或者可配置的方式执行逻辑操作。
在一个示例性实施例中,逻辑电路160对数据和输入信号执行异或(XOR)操作。作为该操作的结果,可能减小被编码的数据的连续长度和/或DC平衡(注意,如下面所描述的,依赖于该操作的结果,协议可以例如以逐字为基准地确定原始数据或者一次或者多次操作的一个或多个结果是否具有更低的连续长度和/或DC平衡,以及基于该确定,选择需要对数据位执行的期望操作(若有的话)。图4A示出了该操作的示例。
具体地,图4A示出了如果不编码即传输的话则具有连续长度14的数据位集合。带下划线的数据位部分示出了一连串14个接连的0,因此连续长度为14。逻辑电路160(在图4A中未示出)在数据与输入信号(例如,时钟信号,如上面所指出的)之间执行XOR操作。在示出的示例中,输入信号包括0和1的交替图案,其可以对应于时钟信号或者其他输入信号的逻辑电平。结果被编码的数据展示了在数据与输入信号之间的逐位XOR操作。
如图4A图示的,被编码的数据具有连续长度7。具体地,被编码的数据包括7个1的图案(即,连续长度为7)。通过使用示例的XOR操作来编码原始数据,在图3中示出的实施例减小了由此产生的数据的连续长度。换言之,该操作转变了对于交替图案恒定的那部分位图案,然而,其余的位具有它们在XOR操作之前具有的相同的概率分布(probabilisticdistribution)。
在PAM4的情况下,在一些实施例中,可以关注或者研究或者考虑变换的子集或者一些变换,例如,在对称电压之间的变换(诸如,从-1V到1V,以及,从-0.5V到0.5V),因为这些变换可以具有最一致的通过中心点或者共模电压(例如,0V线)的时间。将位划分为两两一组,使得编码选择数字0-3,如图2A所示。在示出的示例中,关注的变换(即,会影响相位检测器的变换)是0→2、2→0、1→3和3→1。
通过选择每个其他组并且对其加1模除4,可以得到诸如图4B中示出的变换。与图4A相似,结果是改变了变换密度。注意,考虑到不归零(non-return to zero,NRZ)的特殊情况(如图4A所示的PAM2)的另一种方式是使得每个其他组加1模除2。参考图4B,数字之间的下划线指示了对于CDR电路有用的变换(它们是至开关式相位检测器的输入)。输入数据具有单次变换和为9的最大连续长度。被编码的数据具有8次变换和为4的最大连续长度。
注意,给定的随机数据图案,应用XOR操作(或者,一般而言是其他逻辑操作)具有使最大连续长度变得更长或者更短的机会相等。例如,将图案应用到{0101010101}可能会使短连续长度图案转为长连续长度图案。由此,在一些实施例中,可以在原始数据具有相对长的连续长度(例如,RL>K,其中K表示常数或者变量)的情况下,应用逻辑操作(例如,XOR)。类似的考虑也可以用于选择编码以改善DC平衡上,如前面所描述的。
作为替代方案,在一些实施例中,在应用逻辑操作之前,可以计算原始数据的连续长度和/或DC平衡,并且也可以为将逻辑操作应用到数据产生的结果计算连续长度和/或DC平衡。可以依赖于哪个提供了更好的(更短的)连续长度和/或DC平衡,例如通过使用单个位或者一个或者多个位的集合,在这两个结果之间做出选择。假设其中选择了更短的连续长度的情景,对于原始数据(可以是已经被编码了,也可以是尚未被编码),对于相对大的r值(例如,r>20),从任何给定位置开始的连续长度r的几率约为2-r。但是,在应用了如上面所描述的编码方案之后,从任何给定位置开始的连续长度r的几率减小到2-2r。当r=20时,编码方案使得发生该连续长度的概率降低3个数量级(即,降低1000倍)。当r=40时,编码方案使得发生该连续长度的概率降低6个数量级(即,降低1000000倍)。在具有如上面所定义的相关变换的PAM4的情况下,对于原始数据(可以是已经被编码了,也可以是尚未被编码),对于相对大的r值(例如,r>20),从任何给定位置开始的连续长度r的几率约为4-r。但是,在应用了如上面所描述的编码方案之后,从任何给定位置开始的连续长度r的几率减小到4-2r。
上面所描述的概念可以用于多种情形和实施例。例如,逻辑操作(例如,XOR)可以用于已经具有或者包括一些编码类型的数据。作为另一示例,逻辑操作可以是除XOR之外的操作(例如,异NOR(XNOR)等)或者复合逻辑操作(例如,通过布尔逻辑表达式描述的操作)。作为示例,XOR的一般法则(generalization)可以用于PAM-N,其中向每个其他代码组加(+1模除N),例如,如图4B所示。此外,替代如图4A所示的交替的二进制0和1的示例(时钟图案),多种位图案都可以用于输入信号。例如,可以使用图案001100110011(半周期时钟)、半随机或者伪随机图案、或者任何其他期望图案。图案的长度可以是有效载荷或者数据中数据位的数目。作为又一示例,编码方案可以用于例如在编码器或者编码器/解码器块(见图1B)中的收发器(而非发射器)中。
如本领域技术人员所理解的,在一些协议(例如,Interlaken、第三代PCIe或者SONET)中,通过使用线性反馈移位寄存器(linear feedback shift-register,LFSR)对数据进行置乱。LFSR的特征在于多项式和初始化种子。针对给定字来传输的位的图案是LFSR的当前状态的函数。如果使用了例如并行地操作并且具有不同初始化种子的两个LFSR(例如,LFSR1和LFSR2),那么,根据期望,可以基于各种选择准则(诸如,连续长度、DC漂移、和/或DC平衡、或者其他准则)在LFSR1和LFSR2之间做出选择。
另一个编码技术使用对位排序进行置乱(或者,数据位的重排序),即,改变或者置乱或者重排序数据位的顺序。假定数据位的序列具有相对长的连续长度和/或较大的DC平衡,那么对位的顺序进行置乱分散了恒定位,由此从平均来看,减小了连续长度和/或DC平衡。用于置乱的最佳方案依赖于要避免或者不期望的最大的连续长度和/或DC平衡,并且依赖于有效载荷或者数据的大小。
可以按照多种方式实施位顺序置乱。总体上,然而,在实施时,电路(诸如,位顺序置乱电路)可能接受数据位,然后对顺序进行置乱以产生或者输出被编码的或者被顺序置乱的数据位。在通常的实施方式中,位会可以选择去往两个位置中的一个位置(假设是单位选择),或者有可能是多达2至3个位置。在这种情形下,可以使用多路复用器(MUX)来实施或者实现位顺序置乱。对于实际上可允许任何位顺序置换或者重排序的更加通用的实施方式,可以采用使用开关矩阵的电路(如图5所示)。具体地,编码器114(如果使用了例如图1A中的系统100)或者编码器/解码器146A/146B(如果使用了例如图1B中的系统140)包括位排序块或者电路168。位排序块168包括开关矩阵170。在图5中的开关矩阵170使得任何给定的数据位(例如,位1)能够被输出或者重排序到任何任意的新位置,例如被输出或者重排序到位12。
开关矩阵170包括开关的电路或者网络,该开关被标注为176A1-176NN。开关176A1-176NN耦合至一连串的数据位线172A-172N(例如,行)和174A-174N(例如,列)。开关176A1-176NN中的每一个都可以选择性地(例如,在控制器或者相似电路(未示出)的控制下)将线172A-172N中的相应一个耦合至线174A-174N中的相应一个。
将在图5中表示为D1-DN的原始(输入)数据位耦合至线172A-172N。通过闭合所选择的或者期望的开关,可以将输入位D1-DN耦合至相应的期望或者所选择的输出线(174A-174N)以提供输出的或者被编码的数据位d1-dN。例如,通过闭合开关176B1,将输入数据位D1作为输出数据位d2输出。作为另一示例,通过闭合开关176AN,将输入数据位DN作为输出数据位d1输出,以此类推。
如本领域技术人员所理解的,在图5中的MUX和电路仅表示数据位顺序置乱的示例性实施方式。可以使用其他电路或者方案,这依赖于诸如给定实施方式的规范、可用技术、半导体制备工艺特性、期望的操作速度等因素。示例包括多路复用器、布尔逻辑电路、移位寄存器(例如,线性反馈移位寄存器)、查找表、有限状态机等。
可以使用多种位顺序置乱方案(例如,控制图5的电路中的开关的方式,或者,使用MUX处理位的方式,如上面所描述的)来执行位顺序置乱。作为一个示例,对32位有效载荷进行顺序置乱可以使用:
new-bit-position(x)={old-bit-position(x)×5}mod 32,
其中新new-bit-position和old-bit-position分别表示位x在编码之后和之前的位置。由于数字5和32互质,因此该位顺序置乱提供了数据位的全重排序。数字5和32仅构成了在一些实施例中使用的示例性数字。如本领域技术人员所理解的,在其他示例性实施例中也可以使用其他数字(诸如,其他互质的数字)。
图6示出了根据上面所描述的方案进行数据顺序置乱的示例。具体地,图6示出了如果不进行该编码方案(置乱)即传输的话则具有连续长度14的输入数据位集合。将上面所描述的编码方案应用到数据位。在本示例中,所使用的排序或者位顺序置乱是{1,6,11,16,21,26,31,5,10,15,20,25,30,4,9,14,19,24,29,3,8,13,18,23,28,2,7,12,17,22,27}。结果(被编码的数据)表示根据上面的图案或者顺序重排序的原始数据位。如图6图示的,被编码的数据具有连续长度4。具体地,被编码的数据包括图案“0000”(即,连续长度为4)。通过使用示出的示例重排序来编码原始数据,在图6中示出的实施例减小了由此产生的数据的连续长度。也可以将相似的考虑用于选择编码以改善DC平衡上,如前面所描述的。在PAM-N的情况下,可以是利用被编码在一起的位组(例如,log2(N)位)来进行置乱。在这种情况下,位重排序不会导致DC平衡发生长期的(long-term)变化,虽然可能会影响连续长度。作为替代方案,可以不考虑编码组而对单独的位进行置乱,在这种情况下,可能会影响连续长度和DC平衡两者。作为示例,给定位流0011,DC平衡是(1+-0.5)=0.5。将位重排序为0101产生DC平衡为(0.5+0.5)=1,然而将位重排序为1010则产生DC平衡为(-1+-1)=-2。
在一些实施例中,可以做出是否使用原始数据还是使用通过以上技术被编码的数据的选择。图7示出了根据示例性实施例的用于选择性地使用经由逻辑操作进行编码的电路。具体地,该图图示了选择性地使用逻辑操作的编码器114(或者,编码器/解码器146A/146B)的方块图。将输入数据(可以是被编码的,也可以是未被编码的)提供给逻辑电路160并且还提供给MUX 182的一个输入。逻辑电路160对该数据进行处理以减小连续长度和/或DC平衡,如上面所描述的。
响应于选择信号s(标注为180),MUX 182提供原始输入数据或者在逻辑电路160的输出处的处理后的数据作为其输出信号。通过这种方式,如本领域技术人员所理解的,根据期望,可以依赖于各种因素使用原始数据或者通过逻辑电路160处理过的数据。
图8示出了根据示例性实施例的用于选择性地使用通过位排序进行编码的电路。具体地,该图图示了选择性地使用位排序操作的编码器114(或者编码器/解码器146A/146B)的方块图。将输入数据(可以是被编码了的,也可以是未被编码的)提供给位排序电路168并且还提供给MUX 182的一个输入。位排序电路168对该数据进行处理以减小连续长度和/或DC平衡,如上面所描述的。
响应于选择信号s(标注为180),MUX 182提供原始输入数据或者在位排序电路168的输出处的处理后的数据作为其输出信号。通过这种方式,如本领技术人员所理解的,根据期望,可以依赖于各种因素使用原始数据或者通过位排序电路168处理过的数据。
图9示出了根据示例性实施例的用于选择性地使用经由逻辑操作或者位排序进行编码的电路。该电路可以提供原始数据(可以是被编码了的,也可以是未被编码的)、经由逻辑操作被编码的原始数据、或者经由位重序被编码的原始数据,作为输出。由此,该电路提供了选择性地编码数据的灵活方案。
更加具体地,该图图示了选择性地使用经由逻辑操作或者位排序操作进行编码的编码器114(或者,编码器/解码器146A/146B)的方块图。将输入数据提供给逻辑电路160、位排序电路168和MUX182的一个输入。逻辑电路160对该数据进行处理以减小连续长度和/或DC平衡,如上面所描述的。相似地,位排序电路168对该数据进行处理以减小连续长度和/或DC平衡,如上面所描述的。
响应于选择信号s(标注为180),MUX 182提供原始输入数据、在逻辑电路160的输出处的处理后的数据、或者在位排序电路168的输出处的处理后的数据作为其输出信号。通过这种方式,如本领域技术人员所理解的,根据期望,可以依赖于各种因素使用原始数据、由逻辑电路160处理后的数据、或者由位排序电路168处理过的数据。
在这种场景下,MUX 182实现了选择三个数据集合中的一个集合,这三个数据集合即是:原始数据、在逻辑电路160的输出处的数据、或者在位排序电路168的输出处的数据。这类电路在选择最匹配一个或者多个期望准则(诸如,连续长度大小和/或DC平衡值)的数据方面,提高了灵活性。注意,在这种情形下,MUX选择信号s包括两个位,其允许选择三个MUX输入信号中的一个。
如指出的,可以将两个或者两个以上的编码方案或者技术进行组合。例如,在一些实施例中,可以将逻辑操作与数据位排序或者位顺序置乱进行组合。例如,在一个实施例中,可以将XOR操作(或者另一逻辑操作)与数据位顺序置乱进行组合,并且按组(例如,按2(或者,其他期望数字)的组)对位进行重排序。在XOR操作之后,原始有效载荷或者数据中的连续,将每两个位都具有变换(0到1,或者1到0)。扩展该新的数据变换集合会给最大连续长度设置上限。
图10A示出了使用逻辑操作和位排序方案的编码器114(或者编码器/解码器146A/146B)的方块图。将输入数据提供给逻辑电路160和MUX 182的一个输入。逻辑电路160对该数据进行处理以减小连续长度,如上面所描述的。将在逻辑电路160的输出处的数据提供给位排序电路168。
位排序电路168对该数据进行处理以减小连续长度和/或DC平衡,如上面所描述的。在位排序电路168的输出处的数据驱动多路复用器MUX 182的第二输入。响应于选择信号s(标注为180),MUX 182提供原始输入数据或者在位排序电路168的输出处的处理后的数据作为其输出信号。通过这种方式,如本领域技术人员所理解的,根据期望,可以依赖于各种因素使用原始数据或者通过逻辑电路160处理过的数据。图10B示出了使用逻辑操作和位排序方案的另一编码器114(或者,编码器/解码器146A/146B)的方块图。在图10B中的电路包括逻辑电路160和位排序电路168,逻辑电路160和位排序电路168与在图10A中的电路中的相应块相似地操作。然而,此外,在图10B中的电路包括逻辑电路160A和位排序电路168A。总体上,逻辑电路160A和位排序电路168A其中之一或者两者执行分别与逻辑电路160和位排序电路168所执行的逻辑操作或者位排序操作不同的逻辑操作或者位排序操作。换言之,响应于输入信号162A(可以与输入信号162相同,也可以与输入信号162不同),逻辑电路160A对数据执行逻辑操作。相似地,位排序电路168A可以执行与位排序电路168所执行的位排序操作相同的或者不同的位排序操作。MUX 182实现了选择原始数据、通过逻辑电路160和位排序电路168被编码的数据、或者通过逻辑电路160A和位排序电路168A编码后的数据,作为编码数据。由此,在图10B中的电路实现了依赖于期望的实施方式和最终用途的更加灵活的编码操作。如受益于对所公开概念的说明的本领域技术人员所理解的,根据期望,可以通过对示出的电路进行适当的修改,使用两个以上的逻辑电路和/或两个以上的位排序电路。
在一些实施例中,逻辑电路160的输出可以驱动MUX 182的第三输入。图11A图示了使用该技术的示例性实施例。在这种场景下,MUX实现了选择三个数据集合中的一个集合,这三个数据集合即是:原始数据、在逻辑电路160的输出处的数据、或者在位排序电路168的输出处的数据。这类电路在选择最佳匹配一个或多个期望准则(诸如,连续长度大小和/或DC平衡值)的数据方面提高了灵活性。注意,在这种情形下,MUX选择信号s包括两个位,该信号实现了选择三个MUX输入信号中的一个MUX输入信号。图11B示出了作为在图11A中的电路的变化的另一编码器114(或者,编码器/解码器146A/146B)的方块图。在图11B中的电路包括逻辑电路160、逻辑电路160A、位排序电路168和位排序电路168A,这些电路与在图11A中的电路中的相应块相似地操作。在图11B中的编码器电路使用了两个MUX,标注为182和182A。响应于选择信号s’(标注为180A),MUX 182A实现了选择三个数据集合,这三个数据集合即是:原始数据、在逻辑电路160A的输出处的数据、或者在位排序电路168A的输出处的数据,并且在其输出处提供所选择的输入。MUX 182A的输出驱动位排序电路168和168A的相应输入以及MUX 182的输入。原始数据提供了至MUX 182的附加输入。响应于选择信号s(标注为180),MUX 182实现了选择四个数据集合,这四个数据集合即是:原始数据、在位排序电路168A的输出处的数据、在位排序电路168的输出处的数据、和在MUX 182A的输出处的数据,并且在其输出处提供所选择的输入作为被编码的数据。总体上,逻辑电路160A可以执行与逻辑电路160不同的逻辑操作。换言之,响应于输入信号162A(可以与输入信号162相同,也可以与输入信号162不同),逻辑电路160A对该数据执行逻辑操作。相似地,位排序电路168A可以执行与位排序电路168不同的位排序操作。由此,在图11B中的电路实现了依赖于期望的实施方式和最终用途的更加灵活的编码操作。如受益于对所公开概念的说明的本领域技术人员所理解的,根据期望,可以通过对示出的电路进行适当的修改,使用两个以上的逻辑电路、两个以上的位排序电路、和/或两个以上的MUX。
可以使用多种选项来提供一个或多个选择位s。例如,在一些实施例中,可以与数据分开地提供一个或多个选择位。作为另一示例,在其他实施例中,可以将一个或多个选择位提供在与数据相同的线上,例如作为在先于数据的一个或多个位。
可以使用多种图案或者操作来进行逻辑操作和/或排序操作。最佳图案依赖于最大的目标或者期望的连续长度或者期望DC平衡值,以及有效载荷或者数据大小。可以执行多种逻辑操作(XOR是一个示例),并且可以使用多种位图案(输入信号,如图3至图4所示),具有重复“01”图案(交替的二进制0和1,具有期望长度例如以匹配数据位数)是一个示例。
图12示出了将数据位顺序置乱或者重排序与XOR操作一起组合以减小连续长度的示例。在示出的示例中,原始数据(可以应用了一些编码类型,也可以尚未应用一些编码类型)具有连续长度14。下划线部分示出了14个0的串,导致为14的连续长度。使用重复“01”图案的对数据的XOR操作,产生具有为7的连续长度的被编码的数据。注意,XOR操作导致原始数据的下划线部分变为“散布的”,或者在整个数据上移动或分散。
通过对示出的图案或者顺序进行排序或者位顺序置乱的附加编码,将输出数据中的连续长度进一步减小到3。输出数据的下划线部分示出了对导致先前的更高连续长度的位的进一步的离散、移动或者分散。由此,由XOR操作和排序操作提供的编码使重复位图案的相对长的连续断开或者减小,由此减小了由此产生的或者输出的连续长度。在选择编码方案时,也可以将相似的考虑用于DC平衡值上,如前面所描述的。
在一些实施例中,替代减小连续长度、或者除了减小连续长度之外,也可以考虑其他优点度量或数值。在一些实施例中,可以对除了连续长度和/或DC平衡之外的度量进行优化,其可以通过在存在线路噪声、信号失真或者其他因素的情况下使得接收器(或者,接收的收发器)更容易检测逻辑1和0来减小误码概率。例如,具有连续长度6的位图案{00000010000001}比备选的位图案诸如具有更多变换但是连续长度为8的位图案{010000000010011011}的位图案更加容易发生误码。
作为另一示例,在一些实施例中,可以包括或者使用与在通信设备(例如见图1A至图1B)的一个或多个部分(或者,所有部分)中的功率损耗或者消耗有关的度量。例如,在满足连续长度和/或DC平衡的规范的前提下,可能优选的是选择具有更小总变换的多项式或者图案以便减小动态功率消耗。
作为又一示例,可以将各种系统或者电路条件的存在、以及/或者级别、数目和/或严重程度用作度量。例如,当在一个或多个邻道上存在或者检测到相对高的开关活动性时,可以给定优先级以减小连续长度和/或DC平衡。在这类场景下,减小连续长度和/或DC平衡可以减小串扰的概率。例如,随着检测到更多的开关活动性,可以提高优先级。
另一度量的示例是连续差异,其构成了在数据中的0和1之间的失衡的测量量。例如,包括450个0和550个1的数据分组或者流具有+100的连续差异和(100/1000)×100%(或者,10%)的失衡。利用应用逻辑操作和位排序方案,相对短(即,少于10-15)的连续长度仍然可以相对频繁地发生。替代减小相对短的连续长度和/或DC平衡,可以使用逻辑操作方案来优化或者改善不同的度量,诸如连续差异(注意,位重排序方案不应该改变连续差异)。限制连续差异的目的在于限制与DC平衡的差异——平均电压与共模电压之间的差值。如上面所阐释的,对于通常的系统,PAM2(又名NRZ)的DC平衡质量的良好近似是连续差异失衡。在更高阶PAM(诸如,PAM4)中,DC平衡近似于电压在时间上的加权和。不失一般性地,可以参考最佳化DC平衡并且可以将任何启发性方法包括在其中,启发性方法为诸如在时间上加权的电压,加权的电压考虑了指数衰减的加权电压、连续差异或者其他近似。
在一些实施例中,可以基于准则的集合(诸如,阈值)来执行优化或者改善。例如,在一些实施例中,可以针对连续长度低于目标阈值的现象(例如,超过90%的现象)执行DC平衡优化或者改善。图13示出了根据示例性实施例的用于选择性地改善DC平衡的技术的流程图。
在250处,对DC平衡值的连续估计值进行初始化。同样,得到连续长度阈值(例如,从用户、从存储设备、作为参数等)。可选地,在一些实施例中,还可以得到与DC平衡阈值的差异(例如,从用户、从存储设备,作为参数等)。可以可选地使用与DC平衡阈值的差异,如下面所描述的。
在252处,进行检查,以确定需处理的数据是否可用。如果不可用(例如,已经到达数据传输的末端、还没有开始数据传输等),该技术继续后续任务(若有的话)。然而,如果数据可用,在254处,获取数据。该数据可以是已经进行了一次或多次编码的,也可以是尚未进行编码的。例如,可能已经通过使用一个或多个编码方案减小了连续长度和/或DC平衡,如上面所描述的。
在256处,确定对数据的连续长度和DC平衡的估计值。在258处,确定连续长度是否低于连续长度阈值。如果不低于连续长度阈值,那么,连续长度相对高(相对于使用的阈值或者其他期望目标或者数目)。由此,在262处,可以将一个或多个编码方案应用到数据以减小连续长度,如上面所描述的。
可选地,在一些实施例中,可以确定多个方案中的哪个方案在也改善DC平衡的同时最能减小连续长度。可以基于该确定来选择一个或多个编码方案并且将其应用到数据。
作为另一选项,在一些实施例中,确定该一个或多个编码方案对DC平衡以及连续长度的效果。可以选择在最影响连续长度(例如,连续长度增加最多)的同时实现最佳或者改善的DC平衡(例如,DC失衡降低最少)的编码方案,并且将其应用到数据。
参考在258处的该确定,如果连续长度低于连续长度阈值,那么,可以将连续长度值视为“可容忍的”。例如,考虑其中向数据应用了具有期望位图案的XOR操作的实施例。从XOR操作产生的数据(或者,从使用不同的位图案来执行XOR操作产生的数据)具有与未执行XOR操作的数据不同的DC平衡。在一些情况下,与良好或者可接受的DC平衡的差异可以视为相对高。在260处,可以将一个或多个编码方案应用到数据以改善DC平衡,如上面所描述的。
可选地,在一些实施例中,可以确定多个方案中的哪个方案在改善连续长度的同时最能改善DC平衡。可以基于该确定来选择编码方案并且将其应用到数据。
作为另一选项,在一些实施例中,确定一个或多个编码方案对DC平衡以及连续长度的效果。可以选择在最影响DC平衡(例如,DC失衡增加最少)的同时最少影响连续长度(例如,连续长度增加最多)的编码方案,并且将其应用到数据。
作为替代方案以及可选地,在一些实施例中,可以确定与DC平衡的差异是否低于DC平衡阈值(可选地在250处获得,如上面所描述的)。如果低于DC平衡阈值,那么可以不对数据进行改变。然而,如果不低于DC平衡阈值,那么可以将一个或多个编码方案应用到数据以减小与DC平衡或者DC平衡中的差异,如上面所描述的。无论在哪种情况下,控制转到266。
继260或者262之后,在266处,输出数据,例如,用于传输至目的地。在268处,更新DC平衡估计值。可以基于标记来可选地进行DC平衡估计值的更新,该标记例如用于指示是否已经对数据进行了会影响DC平衡的任何改变。随后,控制回到252以检查数据可用性,如上面所描述的。
在一些实施例中,可以通过保持对DC平衡估计值的跟踪并且选择使相对基线或者阈值的DC平衡差异最小化的图案(例如,原始数据或者应用了XOR操作的数据),来最小化、优化或者总体地改善DC平衡差异。在一些实施例中,在相对长连续长度和/或相对高DC平衡的情况下,可以选择产生更短连续长度和/或更低DC平衡的图案或者编码(例如,用于对数据执行XOR操作的一个或者多个位图案)。在一些实施例中,对于相对短的连续长度和/或相对低DC平衡,可以选择改善或者最能改善0与1之间的平衡的图案。
图14描绘了根据示例性实施例的用于改善DC平衡和连续长度的电路的方块图。示出的实施例包括发射器114(或者,收发器146A或者146B),该发射器114包括逻辑电路160、位排序电路168、MUX 182和控制器270。在示出的示例性实施例中,电路布置是可配置的并且可以提供多种功能。例如,在一些实施例中,电路布置可以提供在图13的流程图中示出的功能性。
参考在图14中示出的实施例,在一些变化中,可以使用逻辑电路160和位排序电路168中的一个或者另一个。配置的选择依赖于期望编码、由此产生的连续长度和/或DC平衡的改善、电路复杂度等,如本领域技术人员所理解的。
输入数据(可以是已经被编码的,也可以是尚未被编码的)提供了MUX 182的一个输入。输入数据还馈送控制器270的输入。控制器270可以基于任何数目的准则做出其决定。例如,控制器270可以确定输入数据的连续长度和/或DC平衡估计值。控制器270还可以考虑或者关注其它因素,包括但不限于:平均变换密度(其会影响功率)、变换密度的均匀程度(其会影响由于电路的不均匀功率需求导致的功率瞬态)、具体的变换相对于附近信道上的变换的位置(其会影响串扰)、或者变换相对于并行字的开始的位置,其可以导致如在收发器中可能会反复发生的系统抖动条件(确定性抖动)。控制器270可以在确定应该将MUX 182的哪个输入信号作为MUX 182的输出信号提供时,至少部分地使用该一个或多个结果。对于本领域技术人员而言,用于确定各种准则的技术和电路,包括连续长度和DC平衡估计值,是众所周知的。
依赖于选择信号180(由控制器270提供),MUX 182可以将输入数据提供为输出数据,即不添加或者执行任何编码。这种情况可能会出现在例如当控制器270确定逻辑电路160和/或位排序电路168所应用的编码方案并不满足一个或者多个准则时。控制器270可以单独地做出确定或者与其他电路系统(未示出)协同地做出确定。准则可以包括但不限于指定的或者期望的连续长度和/或DC平衡估计值。如本领域技术人员所理解的,也可以使用其他准则。
输入数据馈送逻辑电路160的一个输入。控制器270将输入数据162(例如,用于在执行一个或多个逻辑操作时使用的图案)提供给逻辑电路160。逻辑电路160使用输入信号162对输入数据执行如上面所描述的编码操作。在控制器270的控制下,可以由逻辑电路160实施多种图案或者逻辑操作。例如,在一些实施例中,逻辑电路160可以执行在数据与重复的“01”图案(输入信号162)或者其他图案之间XOR操作,如上面所描述的。
逻辑操作的结果(即,逻辑电路160的输出)馈送MUX 182的一个输入。控制器270还使用逻辑电路160的输出来确定其连续长度和/或DC平衡估计值。控制器270可以在确定应该将MUX 182的哪个输入信号提供作为MUX 182的输出信号时,至少部分地使用一个或多个该结果。
位排序电路168接收逻辑电路160的输出。位排序电路168对逻辑电路160的输出执行如上面所描述的编码操作。位排序操作的结果(即,位排序电路168的输出)馈送MUX 182的输入。控制器270还使用位排序电路的输出以确定其连续长度和/或DC平衡估计值。控制器270可以在确定应该将MUX 182的哪个输入信号提供作为MUX 182的输出信号时,至少部分地使用该一个或多个结果。
控制器270提供了MUX 182的选择信号180。根据期望,依赖于逻辑电路160和位排序电路168的配置(和包括(inclusion))、或者基于逻辑电路160和位排序电路168的包括,MUX 182的选择信号180(即,信号180)可以包括一个以上的位。在示出的示例性实施例中,MUX 182实现了选择三个数据集合中的一个集合,这三个数据集合即是:原始数据、在逻辑电路160的输出处的数据、或者在位排序电路168的输出处的数据。该电路在选择最佳匹配一个或多个期望准则(诸如,连续长度大小和/或DC平衡值)的数据方面提供了增加的灵活性。
总体上,控制器270使用确定输入数据的连续长度和/或DC平衡估计值的结果、逻辑电路160的输出、和/或位排序电路168的输出。按照这种方式,控制器270可以通过应用一个或多个编码方案使用多种位图案、排序图案和操作来优化或者改善输入数据的连续长度和/或DC平衡估计值。在示例性实施例中,如本领域技术人员所理解的,可以按照多种方式来实施控制器270。例如,在一些实施例中,控制器270可以包括有限状态机(FSM)。作为另一示例,在一些实施例中,控制器270可以包括定制逻辑、处理器(例如,微处理器或者微控制器)等。
如指出的,如本领域技术人员所理解的,决定是否应用一个或多个编码方案、以及如果要应用一个或多个编码方案那么应用哪一个或多个编码方案、图案等,可以基于一个或多个准则。在一些实施例(诸如,如上面所描述的这些实施例)中,决定是否应用一个或多个编码方案(或者,相同方案的变化),可以基于一个或多个准则(诸如,连续长度、DC平衡等)。例如,可以基于确定的(或者估计的、或者近似的)连续长度、DC平衡等,使用不同的XOR图案或者不同的位排序。
在一些实施例中,决定是否应用一个或多个编码方案(或者相同方案的变化,例如不同的XOR图案或者不同的位排序),可以基于一个或多个成本函数的使用。该技术可以应用至上面所描述的实施例。发射器(或者,收发器)可以应用或者使用测量或者确定使用一个或多个编码方案的可取性或者成本的一个或多个成本函数(例如,每个编码方案有一个成本函数、一个以上的编码方案有一个成本函数,等等)。
通常,通过使用成本函数确定的成本或者值越低,编码方案或者操作越可取。由此,发射器(或者,收发器)可以基于成本函数的值(例如,针对输入信号的给定集合)或者成本函数将产生的结果来选择一个或多个成本函数。按照这种方式,可以开发灵活机制并且将其用于选择满足一个或多个期望准则的编码方案。
如本领域技术人员所理解的,依赖于应用、特定的或者期望的实施方式等,可以使用多种成本函数。如本领域技术人员所理解的,成本函数可以将多种因素考虑进去。这类因素包括硬件复杂度、软件或者固件复杂度、处理开销、延迟、处理速度、应用包括一个或多个成本函数的方案的增益和一个或多个结果、发射器与接收器之间(或者,收发器之间)的通信质量。
基于一个或多个成本函数的一个或多个结果,可以在将数据传输至接收器或者收发器之前将一个或多个编码方案应用到数据。例如,在图14中示出的实施例中,控制器270可以使用一个或多个成本函数来确定使用哪个编码(若有的话)(例如,经由MUX 82)、将何种图案用作输入信号162、(在逻辑电路160中)使用何种逻辑操作、使用何种位排序等。
发射器(或者,传输数据的收发器)可以将一个或多个编码的选择通知给接收器(或者,接收数据的收发器)。发射器(或者,传输数据的收发器)可以包括与传输的被编码的数据一起的一个或多个附加位,该一个或多个附加位用于指示一个或多个编码或者相同方案的变化的选择,例如不同的XOR图案或者不同的位排序等。
注意,不需要通知接收器(或者,接收的收发器)成本函数或者为何发射器(或者,发射的收发器)使用了编码方案。还要注意,根据期望,在双向链路中,通信链路的每一侧都可以使用不同的成本函数以用于其各自的发射器。
可以按照若干方式,将该一个或多个附加位包括在待传输数据中。例如,该一个或多个附加位可以在数据或有效载荷之前。图15示出了根据示例性实施例的这类配置。具体地,位集合300(例如,分组)可以包括构成附加位的一个或者多个位302。位302可以是信头(header)或者一部分信头,例如,数据分组中的信头。该位集合300还可以包括构成数据或者有效载荷304的一些位。一个或多个位302,即在有效载荷304之前的一个或多个附加位,即一个或多个位302在有效载荷304之前被传输。
作为另一示例,该一个或多个附加位可以在数据或有效载荷之后。图16示出了根据示例性实施例的这类配置。位集合300(例如,分组)可以包括构成该一个或多个附加位的一个或者多个位302。该位集合300还可以包括构成数据或者有效载荷304的一些位。一个或多个位302,即接续有效载荷304的或者在有效载荷304之后的一个或多个附加位,即一个或多个位302在有效载荷304之后被传输。换言之,位302可以跟在该位集合300中的数据有效载荷(例如,数据分组)后面。注意,也可以将信头例如用作数据分组的一部分。
参考图15至图16,可以允许多种大小和配置的数据或者有效载荷。为此,数据或者有效载荷位304可以包括与在数据或者有效载荷中的位数相对应的位数。例如,在一些实施例中,数据位304可以包括32个位,与32位(32-bit)有效载荷相对应。在其他实施例中,数据位304可以包括64个位,与64位有效载荷相对应,等等。
注意,在一些实施例中,发射器(或者,收发器)和接收器(或者,收发器)可以例如周期性地重新协调或者改变商定的或者选择的编码的一个或多个类型。如本领域技术人员所理解的,该改变可以周期性地在一个或者多个非预定的时间点发生一次、多次、或者根据其他方案发生。
对数据或者分组结构的上述说明假设串行的通信信道或者媒介。换言之,信息的位沿着一个通信链路行进,例如,经由用于单端链路的两个导体或者耦合机构(一个接地、一个信号)、或者经由用于差分链路的三个导体或者耦合机构(一个接地、差分信号各一个),诸如PAM系统通常使用的。如本领域技术人员所理解的,其他变化也是可能的。
可以使用技术来减小信息处理开销、复杂度和/或成本,以及/或者增加吞吐量,或者在这些属性之间进行权衡。在一些实施例中,是否使用任何一个或多个编码方案或者使用哪一个或多个编码方案/一个或多个图案的决定依赖于连续长度和/或DC平衡的计算。连续长度和/或DC平衡的计算需要提供并且使用一些硬件或者电路系统(或者,经由固件或者软件执行计算,其中性能是可接受的)。这类实施例在更高的复杂度与为了提高编码性能所需的成本之间进行权衡。
在其他实施例中,替代计算连续长度,也可以使用连续长度的近似值。使用近似的连续长度可能更加廉价,并且可以减少门数。作为示例,可以对在数据分组或者有效载荷内的两个或者两个以上的数据位集合执行连续长度的计算。
总体上,可以将N位有效载荷划分为k个集合或者子集,每个集合或者子集有m个位(或者,可变数目的位,根据期望)。然后,可以通过使用该k个集合来计算连续长度。图17示出了根据该方案的用于近似连续长度的电路的方块图。该电路包括逻辑电路350A-350K。根据期望,逻辑电路350A-350K可以存在于编码器(例如,在图1A中的编码器114或者在图1B中的编码器/解码器146A/146B)中,或者处于在电路或者系统中的其他适当位置处。
参考图17,在示出的实施例中,数据分组或者有效载荷340包括N个数据位的集合,这N个数据位被划分为集合1至集合k(标注为345A-345K),每个集合有m个位。(注意,示出的示例未图示其他位,诸如附加位,如上面所描述的。)逻辑电路350A-350K对相应的m个位的集合(标注为345A-345K)进行操作,并且基于该集合计算各自的输出。逻辑电路350A-350K的输出355A-355K基于位集合345A-345K提供相应的输出。
对于m个位的每个组,相应的一个逻辑电路350A-350K确定相应的位组是否全都为逻辑0还是全都为逻辑1。在示例性实施例中,逻辑电路350A-350K可以包括m输入的(m-input)与门和/或m输入的或门。如果在相应位组中的m个位全都具有逻辑1值,那么m输入与门产生逻辑1输出。相反,如果在相应位组中的m个位全都具有逻辑0值,那么,m输入或门产生逻辑0输出。通过使用该技术,可以减小复杂度,并且从而可以减小连续长度计算的成本。换言之,由于每一个连续长度计算电路350A-350K对m个位而非N个位(其中,N>m)进行了操作,所以,该技术减轻了连续长度计算的负担或者计算复杂度。
作为示例,考虑在图18中示出的数据位,该数据位对应于每组4个位(即,m=4)的7组位(即,K=7)、以及逻辑电路350A-350K的相关输出。“X”输出表示在位组中的所有m个位并非都具有相同的逻辑值的情形,而“0”和“1”输出分别表示在位组中的所有m个位都具有逻辑0和逻辑1值的情形。当关注4个位的组,组3-6包括均为逻辑0,因此,存在为4个组的连续长度。组7包括均为逻辑1,但是未包括在内,这是因为其逻辑1的恒定值与逻辑0的组不同。然后,连续长度近似电路360通过使用逻辑电路350A-350K的输出来估计数据位的连续长度。现在针对有效长度减小了4的数据集进行组合式连续长度计算。注意,可以从逻辑电路350A-350K的输出确定在数据位中的连续长度至少为16。假定在第二位组中的最后两个逻辑0值不计算在内,在这种情况下,确定在连续长度16与连续长度18之间没有差异。当在位的两个端部组中都存在为(group_size-1)(即(m-1))的连续长度时,发生了最坏情况下的误码。在该情况下,针对m=1的情形,最大误码将为2×3或者6。例如,如果逻辑0的图案为1000 0000 0001,那么,该情形发生。本领域技术人员理解,所提供的示例仅为说明性的,并且,可以使用其他配置,诸如其他m、k和N值,并且包括如下情形:根据期望,k个数据位集合可以包括可变数目的位,而非都包括相等数目的位等等。
注意,接收器(或者,接收的收发器)基于一个或多个编码位(上面所描述的一个或多个附加位)或者商定的或者协调好的通信机制或者协议来执行解码。由此,接收器(或者,接收的收发器)不需要知道发射器(或者,发射的收发器)所使用的决定准则,诸如使用实际的或者近似的连续长度等,假设总体的通信链路满足特定准则(例如,提供了充足的变换、DC平衡质量等)。
结果,不同的发射器/收发器(例如,如实施在不同IC中的发射器/收发器)可以使用在计算连续长度方面的不同精确度级别来确定使用何种(若有的话)一个或多个编码方案。另外,不同的发射器/收发器可以使用不同的技术或者准则来确定何时使用给定的编码方案、图案等,这可以提供附加的灵活性。
相似地,发射器/收发器可以改变其用于平衡DC平衡比对连续长度的阈值规则,如果没有该改变则会引起接收器的任何改变。发射器/收发器也可以基于何种最大化或者改善了链路的质量(例如,BER测量量),来选择改变这些启发(heuristic)(选择/改变一个或多个编码方案)。可以手动地执行这类调节,也可以基于链路质量的测量量来执行这类调节(例如,对在发射器与接收器之间或者在收发器之间的通信链路的质量以及通信的质量的实时或者周期性反馈)。
正如指出的,在一些实施例中,可以使用一个或者多个位来指示所使用的一个或多个编码方案/一个或多个参数(例如,图案)的存在和/或类型。可以使用这类一个或多个附加位来通知接收器或者接收的收发器由发射器或者发射的收发器所做的决定。也可以使用该一个或多个附加位来执行一个以上的函数。具体地,该一个或多个位可以用于在发射器(或者,发射的收发器)与接收器(或者,接收的收发器)之间初始化或者建立通信或者字锁或者同步。一旦建立了通信或者字锁或者同步,可以将该一个或多个位用于其他目的。这类目的包括选择所使用的一个或多个编码方案、一个或多个图案等,如本文件中详细所描述的。在一些实施例中,这类一个或多个位可以包括在数据或者分组的信头中。
在一些实施例中,该技术可以用于改善常规的通信技术/协议。例如,64/66和64/67编码协议使用对信头进行变换来指示字边界。由此,在64/66协议中,信头位“01”指示数据,而“10”位指示控制信息(“00”和“11”为非法状态)。在64/67协议中,信头位x01指示数据,而x10指示控制信息(“x00”和“x11”为非法状态),其中,x可以是逻辑0或者逻辑1。一旦在通信设备(例如,发射器/接收器或者收发器/收发器)之间建立了自锁,则可以将信头位用于其他目的。
在一些实施例中,最初可以将信头位用于建立或者初始化通信(例如,使用64/66编码),但是,一旦通信已经开始,便可以将信头位用于传输与发射器/收发器所做的决定有关的附加信息,如上面所描述的(例如,所使用的一个或多个编码方案、一个或多个图案等)。由此,在一些实施例中,可以将未使用的或者非法的信头位/信头位状态(例如,“00”和/或“11”)用于双重目的。
注意,接收器(或者,接收的收发器)不需要知道何时在一个或多个信头位的两种使用之间的变换何时开始,而是知道该变换发生在发生自锁之后或者在已经成功初始化通信之后的某个时间。发射器避免使用将在正在建立的自锁之前使用或者要求信头位00或者11的替代编码。根据期望,该自锁的建立可以基于计时器,其中发射器假设接收器将会在预定数目的字之后实现自锁;或者该自锁的建立可经由直接通信进行。在信头位的两种使用之间的变换可能会发生一次以上。例如,假设发射器(或者,发射的收发器)被通知,接收器(或者,接收的收发器)未能接收到足够大的数目的分组、或者接收器(或者,发射的收发器)的自锁丢失。发射器(或者,发射的收发器)可以恢复为使用信头位来建立或者初始化通信。
一旦已经建立了自锁或者初始化了通信,则接收器(或者,接收的收发器)可以向发射器(或者,发射的收发器)指示其正在接收数据。然后,发射器(或者,发射的收发器)可以恢复为使用信头位向接收器(或者,接收的收发器)传输其他信息(例如,所使用的一个或多个编码方案、一个或多个图案等)。
图19示出了根据示例性实施例的使用信头的流程图。如本领域技术人员所理解的,可以按照多种方式并且使用各种通信协议或者编码技术来实施在流程图中示出的各种操作。在405处,尝试使用一个或多个信头位来初始化通信,如上面所描述的。在410处,检查以确定初始化通信的尝试是否成功。如果没有成功,通过回到405来进行另一次尝试。如果已经初始化了通信,那么在415处将信头位用于其他目的,如上面所描述的,例如,用于传输有关所使用的一个或多个编码方案、一个或多个图案等的一个或多个决定。
在420处,进行检查,以确定数据是否已经结束(例如,不存在需要传输的更多数据),或者是否应该终止通信,无论出于何种原因。如果是这样,通信结束。如果并非如此,在425处,检查以确定发射器是否应该恢复为不选择或使用替代编码(例如,如00或者11所指示的编码),如上面所描述的,例如由于丢失自锁或者同步、缺乏所有数据的成功传输等。(注意,在恢复之后,编码会如应用该技术之前一样好)。如果是这样,那么在410处恢复为使用一个或多个信头位。
如本领域技术人员所理解的,可以将所公开的概念有效地应用到各种编码类型。例如,使用所公开的技术以修改并且改善传统的编码技术。所提供的示例仅仅构成了说明性的应用,并且不意在限制将所公开的概念的应用于其他情形或者场景。
考虑了多个实施例,诸如下述附加实施例。第一附加实施例包括一种设备,其包括解码器电路,该解码器电路用于对数据位进行解码以便使用脉冲幅度调制(PAM)经由通信链路发射。解码器电路包括逻辑电路,用于对位图案和数据位执行逻辑操作,以便减少数据位的连续长度和/或改善数据位的DC平衡。
在第二附加实施例中,在根据第一附加实施例的设备中,逻辑操作包括:加法模除,依赖于在通信链路中使用的PAM的阶;或者异或(XOR)操作。
在第三附加实施例中,在根据第一附加实施例的设备中,逻辑操作被选择性地执行。
在第四附加实施例中,在根据第三附加实施例的设备中,基于以下各项中的一项或多项来执行逻辑操作:(a)成本函数、(b)设备的功耗、以及(c)设备的DC平衡估计值。
在第五附加实施例中,在根据第三附加实施例的设备中,基于位的集合的值来执行逻辑操作。
在第六附加实施例中,在根据第五附加实施例的设备中,位的集合包括单个位。
在第七附加实施例中,根据第三附加实施例的设备进一步包括位顺序置乱电路,位顺序置乱电路适用于对数据位的顺序进行置乱或者对数据位重排序。
在第八附加实施例中,在根据第七附加实施例的设备中,对数据位重排序以便减小数据位的连续长度并且/或者改善DC平衡。
在第九附加实施例中,在根据第七附加实施例的设备中,位顺序置乱电路基于数据的连续长度,对数据位重排序,数据的连续长度基于转换类型的子集。
在第十附加实施例中,在根据第七附加实施例的设备中,位顺序置乱电路基于以下各项中的一项或多项对数据位重排序:(a)成本函数、(b)设备的功耗、以及(c)设备的DC平衡估计值。
在第十一附加实施例中,在根据第七附加实施例的设备中,选择性地执行逻辑操作和位重排序操作。
在第十二附加实施例中,在根据第十一附加实施例的设备中,基于位的集合的值,选择性地执行逻辑操作和位重排序操作。
第十三附加实施例包括一种设备,其包括编码器电路,该编码器电路使用脉冲幅度调制(PAM)对数据位进行编码以便作为数据流经由通信链路传输。编码器电路包括:位顺序置乱电路,用于对数据位的顺序进行置乱以便减小数据流的连续长度并且/或者改善数据流的DC平衡。
在第十四附加实施例中,在根据第十三附加实施例的设备中,位顺序置乱电路选择性地对数据位的顺序进行置乱。
在第十五附加实施例中,在根据第十三附加实施例的设备中,位顺序置乱电路基于数据的连续长度,对数据位重排序,数据的连续长度基于转换类型的子集。
在第十六附加实施例中,在根据第十四附加实施例的设备中,位顺序置乱电路基于以下各项中的一项或多项对数据位的顺序进行置乱:(a)成本函数和(b)设备的DC平衡估计值。
在第十七附加实施例中,根据第十三附加实施例的设备进一步包括逻辑电路,该逻辑电路适用于对位的图案和数据位执行逻辑操作。
在第十八附加实施例中,在根据第十七附加实施例的设备中,逻辑操作包括加法模除,加法模除依赖于在通信链路中使用的PAM的阶。
在第十九附加实施例中,在根据第十四附加实施例的设备中,位顺序置乱电路基于数据的连续长度,对数据位重排序,数据的连续长度基于转换类型的子集。
在第二十附加实施例中,在根据第十七附加实施例的设备中,基于以下各项中的一项或多项来执行逻辑操作:(a)成本函数和(b)设备的DC平衡估计值。
在第二十一附加实施例中,在根据第十七附加实施例的设备中,选择性地执行逻辑操作和位重排序操作。
参考附图,本领域技术人员会注意,示出的各种块可能主要描绘了概念功能和信号流。实际的电路实施方式可以包含或者可以不包含针对各种功能块可分别识别的硬件,并且,可以使用或者可以不使用示出的特定电路系统。例如,根据期望,可以将各种块的功能性组合到一个电路块中。此外,根据期望,可以将单个块的功能性在多个电路块中实现。对于电路实施方式的选择依赖于各种因素(诸如,针对给定实施方式的特定设计和性能规范)。除了本文所描述的修改和替代实施例之外,对于本领域技术人员而言,其他修改或替代实施例将是显而易见的。因此,本说明书教导了本领域技术人员实行所公开的概念的方式,并且仅仅应该视为说明性质。
所示出并且描述的形式和实施例都应该作为说明性实施例。本领域中的技术人员可以在不脱离本文件中所公开概念的范围的情况下对部件的形状、大小和布置做出各种改变。例如,本领域技术人员可以用等同元件来替代本文所图示并且公开的元件。而且,受益于本公开的本领域中的技术人员可以在不脱离所公开概念的范围的情况下独立于其他特征的使用来使用所公开概念的特定特征。
Claims (21)
1.一种电子设备,包括:
编码器电路,能够被操作以使用脉冲幅度调制(PAM)对数据位进行编码以便经由通信链路传输,所述编码器电路包括:
连续长度近似电路,能够被操作以用于通过对来自所述数据位的多个位进行分组并且为所述多个位提供连续长度估计值来产生所述数据位的近似连续长度,其中所述多个位具有比所述数据位更少的位;以及
逻辑电路,能够被操作以用于通过基于所述数据位的所述近似连续长度对位的图案和所述数据位执行逻辑操作来产生编码数据位。
2.根据权利要求1所述的电子设备,其中所述逻辑操作包括:加法模除,依赖于在所述通信链路中使用的所述PAM的阶;或者异或(XOR)操作。
3.根据权利要求1所述的电子设备,其中所述逻辑操作被选择性地执行。
4.根据权利要求3所述的电子设备,其中基于以下各项中的一项或多项来执行所述逻辑操作:(a)成本函数、(b)所述电子设备的功耗、以及(c)所述电子设备的DC平衡估计值。
5.根据权利要求3所述的电子设备,其中基于位的集合的值来执行所述逻辑操作。
6.根据权利要求5所述的电子设备,其中所述位的集合包括单个位。
7.根据权利要求3所述的电子设备,进一步包括位顺序置乱电路,所述位顺序置乱电路适用于对所述数据位的所述顺序进行置乱或者对所述数据位重排序。
8.根据权利要求7所述的电子设备,其中对所述数据位重排序以便减小所述数据位的连续长度并且/或者改善DC平衡。
9.根据权利要求7所述的电子设备,其中所述位顺序置乱电路基于所述数据的所述连续长度,对所述数据位重排序,所述数据的所述连续长度基于转换类型的子集。
10.根据权利要求7所述的电子设备,其中所述位顺序置乱电路基于以下各项中的一项或多项对所述数据位重排序:(a)成本函数、(b)所述电子设备的功耗、以及(c)所述电子设备的DC平衡估计值。
11.根据权利要求7所述的电子设备,其中选择性地执行所述逻辑操作和所述位重排序操作。
12.根据权利要求11所述的电子设备,其中基于位的集合的值,选择性地执行所述逻辑操作和所述位重排序操作。
13.一种电子设备,包括:
编码器电路,能够被操作以使用脉冲幅度调制(PAM)对数据位进行编码以便作为数据流经由通信链路传输,所述编码器电路包括:
位顺序置乱电路,能够被操作以基于所述数据位的连续长度通过为所述数据位的每个位分配相应的位位置并且将所述数据位的每个位移动到相应的位位置而产生编码数据,所述编码数据具有DC失衡,该DC失衡小于所述数据位的DC失衡。
14.根据权利要求13所述的电子设备,其中所述位顺序置乱电路选择性地将相应的所述位位置分配给所述数据位的每个位。
15.根据权利要求13所述的电子设备,其中所述位顺序置乱电路基于转换类型的子集,基于所述数据的连续长度将相应的所述位位置分配给所述数据位的每个位。
16.根据权利要求14所述的电子设备,其中所述位顺序置乱电路基于以下中的一项或多项将相应的新位位置分配给所述数据位的每个位:(a)成本函数和(b)所述电子设备的DC平衡估计值。
17.根据权利要求13所述的电子设备,进一步包括逻辑电路,该逻辑电路适用于对位的图案和所述数据位执行逻辑操作。
18.根据权利要求17所述的电子设备,其中所述逻辑操作包括加法模除,所述加法模除依赖于在所述通信链路中使用的所述PAM的阶。
19.根据权利要求17所述的电子设备,其中基于转换类型的子集,基于所述数据的所述连续长度来执行所述逻辑操作。
20.根据权利要求17所述的电子设备,其中基于以下各项中的一项或多项来执行所述逻辑操作:(a)成本函数和(b)所述电子设备的DC平衡估计值。
21.根据权利要求17所述的电子设备,其中选择性地执行所述逻辑操作和所述位分配和移动操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/142,639 | 2013-12-27 | ||
US14/142,639 US9942063B2 (en) | 2012-10-26 | 2013-12-27 | Apparatus for improved encoding and associated methods |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105515727A CN105515727A (zh) | 2016-04-20 |
CN105515727B true CN105515727B (zh) | 2020-01-03 |
Family
ID=52130149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410838110.5A Active CN105515727B (zh) | 2013-12-27 | 2014-12-29 | 用于改进编码的设备以及相关方法 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP2892156A3 (zh) |
CN (1) | CN105515727B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9712168B1 (en) * | 2016-09-14 | 2017-07-18 | Qualcomm Incorporated | Process variation power control in three-dimensional (3D) integrated circuits (ICs) (3DICs) |
CN108880691B (zh) * | 2017-05-11 | 2020-07-31 | 上海诺基亚贝尔股份有限公司 | 用于解调信号的方法、设备及计算机可读介质 |
CN108923884B (zh) * | 2018-06-14 | 2021-02-23 | 中国科学院上海高等研究院 | 一种pcs评估系统、方法、可读存储介质及终端 |
CN112491506B (zh) * | 2020-09-17 | 2022-11-08 | 天津瑞发科半导体技术有限公司 | 一种pam-m容错传输系统与方法 |
US12081376B2 (en) * | 2021-11-05 | 2024-09-03 | Samsung Display Co., Ltd. | DC balanced transition encoding |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0097763A2 (en) * | 1982-06-30 | 1984-01-11 | International Business Machines Corporation | A method and apparatus for producing a DC balanced (0,4) run length limited rate 8B/10B code from an input data stream |
CN1379548A (zh) * | 2001-04-11 | 2002-11-13 | 华邦电子股份有限公司 | 可程序化的运行长度译码器 |
CN1964354A (zh) * | 2005-11-07 | 2007-05-16 | 美国博通公司 | 分块编码器、解码器和编码数据块的方法 |
CN101102390A (zh) * | 2006-07-05 | 2008-01-09 | 富士胶片株式会社 | 数据压缩设备和数据压缩程序存储介质 |
CN102652299A (zh) * | 2009-12-09 | 2012-08-29 | 株式会社东芝 | 半导体设备和存储器系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5805632A (en) * | 1992-11-19 | 1998-09-08 | Cirrus Logic, Inc. | Bit rate doubler for serial data transmission or storage |
KR100525726B1 (ko) * | 2003-05-22 | 2005-11-02 | 전자부품연구원 | 논리단 축소에 의한 고속 8비트/10비트 인코더/디코더 |
US7533324B2 (en) * | 2004-09-22 | 2009-05-12 | Kencast, Inc. | System, method and apparatus for FEC encoding and decoding |
US7061406B1 (en) * | 2005-01-21 | 2006-06-13 | Rambus, Inc. | Low power, DC-balanced serial link transmitter |
US8161347B1 (en) * | 2007-04-12 | 2012-04-17 | Link—A—Media Devices Corporation | Interleaving parity bits into user bits to guarantee run-length constraint |
US7949134B2 (en) * | 2007-08-01 | 2011-05-24 | Force 10 Networks, Inc. | Multiplexed multilane hybrid scrambled transmission coding |
US8595582B2 (en) * | 2009-10-01 | 2013-11-26 | Stmicroelectronics, Inc. | High-rate reverse-order run-length-limited code |
-
2014
- 2014-12-23 EP EP14199921.9A patent/EP2892156A3/en not_active Ceased
- 2014-12-29 CN CN201410838110.5A patent/CN105515727B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0097763A2 (en) * | 1982-06-30 | 1984-01-11 | International Business Machines Corporation | A method and apparatus for producing a DC balanced (0,4) run length limited rate 8B/10B code from an input data stream |
CN1379548A (zh) * | 2001-04-11 | 2002-11-13 | 华邦电子股份有限公司 | 可程序化的运行长度译码器 |
CN1964354A (zh) * | 2005-11-07 | 2007-05-16 | 美国博通公司 | 分块编码器、解码器和编码数据块的方法 |
CN101102390A (zh) * | 2006-07-05 | 2008-01-09 | 富士胶片株式会社 | 数据压缩设备和数据压缩程序存储介质 |
CN102652299A (zh) * | 2009-12-09 | 2012-08-29 | 株式会社东芝 | 半导体设备和存储器系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105515727A (zh) | 2016-04-20 |
EP2892156A2 (en) | 2015-07-08 |
EP2892156A3 (en) | 2015-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9942063B2 (en) | Apparatus for improved encoding and associated methods | |
JP4639194B2 (ja) | 透明マルチモードpamインタフェース | |
CN105515727B (zh) | 用于改进编码的设备以及相关方法 | |
US11283654B2 (en) | Multilevel driver for high speed chip-to-chip communications | |
KR102240544B1 (ko) | 클록 임베디드 벡터 시그널링 코드 | |
US20220329467A1 (en) | Methods and systems for high bandwidth communications interface | |
JP2016136728A (ja) | Pam送信機におけるジッタを測定する方法、送信された信号における歪みを測定する方法、抑制のための歪み測定、pam送信機における偶数−奇数ジッタを測定する方法、クロックランダムジッタおよびクロック確定ジッタを計算する試験装置 | |
WO2014209676A1 (en) | Transition time measurement of pam4 transmitters | |
US9544092B2 (en) | Apparatus for improved communication and associated methods | |
WO2015031845A1 (en) | Methods and systems for energy-efficient communications interface | |
TWI828540B (zh) | 用於位元位準模式重計時器之相位內插器電路系統 | |
US20150333868A1 (en) | Flexible prbs architecture for a transceiver | |
EP2725716B1 (en) | Apparatus for improved encoding and associated methods | |
US7342520B1 (en) | Method and system for multilevel serializer/deserializer | |
US8225017B1 (en) | Method and apparatus for reducing power supply introduced data dependent jitter in high-speed SerDes transmitters | |
Sim | Segmented group-inversion coding for parallel links |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |