CN103795493A - 用于改进编码的装置及关联方法 - Google Patents
用于改进编码的装置及关联方法 Download PDFInfo
- Publication number
- CN103795493A CN103795493A CN201310516806.1A CN201310516806A CN103795493A CN 103795493 A CN103795493 A CN 103795493A CN 201310516806 A CN201310516806 A CN 201310516806A CN 103795493 A CN103795493 A CN 103795493A
- Authority
- CN
- China
- Prior art keywords
- data
- circuit
- data bit
- devices according
- running length
- 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.)
- Granted
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/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
一种装置,包括:编码器,适配成对数据位编码以用于经由链路的发射。编码器包括逻辑电路。逻辑电路适配成对位图案和数据位执行逻辑操作以便减少数据位的运行长度。
Description
技术领域
公开的概念总体涉及电子通信,并且更具体而言,涉及用于电子通信中改进编码的装置和关联方法。
背景技术
电子电路装置和系统有时使用高速链路以促进两个电路或子系统之间的通信。可以是串行链路的电路可以传输具有由发射器添加的编码的信息或数据,该编码可以指示字边界、区分数据和控制信息、倒频(scramble)数据以散布电磁干扰、避免长的运行长度(run-length)以及平衡0和1的数目以避免DC失衡。编码方法的示例包括8b10b、64/66和64/67,其均为本领域技术人员所熟知。
在接收器处,经由链路传输的数据被处理以确定字边界、获得与发射器的加锁、解码等。一旦发现字锁(word lock),则使用数据变换以确认维持字锁。本领域技术人员熟知这些操作的细节。
发明内容
公开在电子通信中的改进的编码装置以及关联方法。在一个示例实施例中,装置包括编码器电路,该编码器电路包括逻辑电路。编码器电路适配成数据位进行编码以用于经由通信链路的发射。逻辑电路适配成对位图案和数据位执行逻辑操作以便减少数据位的运行长度。在另一示例实施例中,装置包括适配成对数据位进行编码以用于经由通信链路的发射的编码器电路。编码器电路包括位序倒频电路。位序倒频电路适配成将数据位的顺序进行倒频以减少数据位的运行长度。在又一实施例中,装置包括编码器电路以对数据位集合进行编码。编码器适配成基于数据位的集合选择性地对数据进行编码。初始地使用位集合以建立经由链路的数据通信。
附图说明
所附附图仅示出示例性实施例并且因此不应被认为是限制其范围。本领域技术人员在知晓本公开内容的益处之后可以理解所公开的概念将其自身赋予其它等效实施例。在附图中,在多于一个附图中使用的相同的数字标识符指示相同、相似或等同的功能性、部件或块。
图1示出了根据一个示例实施例的数据通信系统的框图。
图2描绘根据另一示例实施例的数据通信系统的框图。
图3显示了根据一个示例实施例的用于编码的电路的框图。
图4描绘了使用根据一个示例实施例的逻辑操作以减少运行长度的示例。
图5示出了根据一个示例实施例的用于倒频位顺序或重排序位的电路的框图。
图6描绘了使用根据一个示例实施例的位排序的倒频以减少运行长度的示例。
图7显示了根据一个示例实施例的用于经由逻辑操作选择性地使用编码的电路。
图8示出了用于选择性地使用通过位排序的编码的根据一个示例实施例的电路。
图9描绘了用于选择性地使用经由逻辑操作或位排序的编码的根据一个示例实施例的电路。
图10A-图10B示出了用于执行逻辑操作和位排序方案以编码数据的根据一个示例实施例的电路的框图。
图11A-图11B示出了用于选择性地执行逻辑操作和/或位排序方案以编码数据的根据一个示例性实施例的框图。
图12示出了根据一个示例实施例的使用位排序以及逻辑操作的倒频以减少运行长度的示例。
图13描绘了根据一个示例实施例的用于选择性改进运行差异(running disparity)的技术的流程图。
图14显示了根据一个示例实施例的用于选择性改进运行差异和/或运行长度的实施例的框图。
图15示出了根据一个示例实施例的信息位或分组的配置。
图16描绘了根据另一示例实施例的信息位或分组的配置。
图17描绘了根据一个示例实施例的用于对运行长度进行近似的电路的框图。
图18示出了根据一个示例实施例的对运行长度进行近似的示例。
图19显示了根据一个示例实施例的用于提供经由链路的通信的技术的流程图。
具体实施方式
所公开的概念总体涉及通过改进所使用的编码方案来改进电子电路装置或系统中的通信。更具体而言,如下文具体描述,所公开的概念提供用于提供优势(诸如相对低的运行长度、相对高的变换密度、相对均匀的变换密度、相对低的开销和/或维持DC平衡(或近似或基本维持DC平衡))的各种数据编码方案的装置和方法。在一些实施例中,可以组合或一起使用两个或更多个编码方案。
运行长度是通信数据中一系列连续的0或1的测量。较长的运行长度序列一般对接收器的适当检测更具有挑战。较短的运行长度运行在较长的距离内的成功通信,例如,在20’’背平面(backplane)而非10’’背平面(这在较长的运行长度的情形中是可能的)内。作为较短的运行长度的结果,高速链路相比于诸如背平面之类的挑战性连接更好地工作。运行差异(RD)是0和1之间的失衡的测量。例如,包括450个0以及550个1的传输具有+100的运行差异,以及(100/1000)×100%或10%的失衡。
可以在各种数据通信电路装置和系统中使用编码方案。图1示出了根据一个示例实施例的数据通信系统100。
系统100包括数据发射器110,经由链路118耦合至数据接收器120。在一些示例性实施例中,数据发射器110可以驻留在与数据接收器120相同的物理包封或封装中。例如,数据发射器110和数据接收器120可以驻留在机架安装的系统或器具内。又例如,数据发射器110和数据接收器120可以驻留在多芯片模块(MCM)内的单独的裸片(或相同裸片)上。又例如,数据发射器110和数据接收器120可以驻留在集成电路(IC)内的相同裸片上或相同裸片内。作为一个附加示例,数据发射器110和数据接收器120可以驻留在包括一个或多个裸片、封装基底等的三维(3D)封装或组件上或三维(3D)封装或组件内。如本领域技术人员所理解的那样,还可以有其它变化和配置。
在一些实施例中,数据发射器110可以驻留在与数据接收器120不同的物理包封或封装中。例如,数据发射器110可以驻留在经由背平面耦合至容纳或包括数据接收器120的物理包封或封装的不同物理包封或封装中。又例如,数据发射器110可以驻留在经由线缆、光纤、或其它机构耦合至包括或包括数据接收器120的例如包封或封装的不同物理包封或封装中。
编码器114从数据源112接收数据并且编码数据。下文具体描述的编码提供上述的一些优势或所有优势。编码器114提供编码数据给发射器电路116。发射器电路116经由链路118将编码数据传输给数据接收器116。
数据接收器120从链路118经由接收器电路122接收编码数据。接收器电路122提供编码数据给解码器124。解码器124解码数据,并且提供解码数据给数据目的地126。数据目的地126可以包括最终(或作为中间目的地)接收和/或使用解码数据的电路装置和/或子系统。
链路118可以具有多种形式。一般而言,链路118包括一个或多个耦合机构,诸如接线、线缆、印刷电路板(PCB)迹线、光纤、IC、MCM、三维(3D)封装和/或组件中的导体或半导体等,以便于数据、状态和/或控制信号的通信。在示例实施例中,数据发射器110使用串行通信以提供编码数据给数据接收器120。然而本领域技术人员可以理解,可以根据期望使用其它通信协议、方案。例如,在一些实施例中,可以在IC之间、在子系统之间和/或在系统之间出现通信。IC、子系统和系统可以根据期望包括电子电路装置、光学设备或电路装置或组合。
图2示出了根据一个示例实施例的数据通信系统140。在该实施例中,成对的数据收发器142A-142B利用编码方案(以及对应的解码方案)以用于改进性能。换言之,不像图1中的单向系统100,系统140提供在数据收发器142A-142B之间的双向通信链路。
参见图2,系统140包括经由链路150耦合至数据收发器142B的数据收发器142A。在一些示例实施例中,数据收发器142A可以驻留在与数据收发器142B相同的物理包封或封装中。例如,数据收发器142A和142B可以驻留在机架安装系统或器具中。又例如,数据收发器142A和142B可以根据期望驻留在MCM、3D封装或组件等的分开的裸片(或相同的裸片)上。又例如,数据收发器142A和142B可以驻留在相同裸片或IC上或相同裸片或IC内。
在一些示例实施例中,数据收发器142A可以驻留在与数据收发器142B不同的物理包封或封装中。例如,数据收发器142A可以驻留在经由背部平面耦合至容纳或包括数据收发器142B的物理包封或封装的不同物理包封或封装中。又例如,数据收发器142A可以驻留在经由线缆、光纤或其它机构耦合至容纳或包括数据收发器142B的物理包封或封装的不同物理包封或封装中。
如上所述,在数据收发器142A-142B之间的通信可以在两个方向上从数据收发器142A去往数据收发器142B或与之相反地出现。考虑第一情形,编码器/解码器146A从数据源/目的地148A接收数据,并且编码数据(以用于去往数据收发器142B的最终传输)。注意,可以通过与编码器114(图1)相似的编码器/解码器146A内的编码电路装置执行编码。下面具体描述的编码提供上述的一些优势或全部优势。编码器/解码器146A提供编码数据给收发器电路144A。收发器电路144A经由链路150将编码数据传输给收发器142B。
数据收发器142B经由链路150从收发器电路144B接收编码数据。收发器电路144B提供编码数据给编码器/解码器146B。编码器/解码器146B解码数据并且提供解码数据给数据源/目的地148B。注意,可以通过可以与解码器124(参见图1)相似的编码器/解码器146B内的解码电路装置执行解码。数据源/目的地148B可以包括最终(或作为中间目的地)接收和/或使用解码数据的电路装置或子系统。
在第二情形中,信息从数据收发器142B流向数据收发器142A。编码器/解码器146B从数据源/目的地148B接收数据,并且编码数据(以用于最终传输至数据收发器142A)。下文具体描述的编码提供上述的一些优势或全部优势。注意,可以通过与编码器114(参见图1)相似的编码器/解码器146B内的编码电路装置执行编码。编码器/解码器146B提供编码数据给收发器电路144B。收发器电路144B经由链路150将编码数据传输给数据收发器142A。
数据收发器142A经由收发器电路144A从链路150接收编码数据。收发器电路144A提供编码数据给编码器/解码器146A。编码器/解码器146A解码数据,并且提供解码数据给数据源/目的地148A。注意,可以通过可以与解码器124(参见图1)相似的编码器/解码器146A内的解码电路装置执行解码。数据数据源/目的地148A可以包括最终(或作为中间目的地)接收和/或使用解码数据的电路装置或子系统。
链路150可以具有多种形式。一般而言,链路150包括一个或多个耦合机构,诸如接线、线缆、印刷电路板(PCB)迹线、光纤、IC、MCM、三维(3D)封装和/或组件中的导体或半导体等,以便于数据、状态和/或控制信号的通信。在示例实施例中,数据收发器142A使用串行通信以提供编码数据给数据收发器142B或与之相反。然而,本领域技术人员可以理解,可以根据期望使用其它通信协议、或方案。
在示例实施例中,其它操作可以发生,诸如寻找字边界、在数据发射器(或收发器)和数据接收器(或收发器)之间建立锁定或同步等。这些操作的细节以及它们相应实现方式为本领域技术人员所熟知。此外,发射器(或发射收发器)和接收器(或接收收发器)可以自动协调一些参数以用于获得改进或更好的通信链路,例如,除0之外的运行差异偏移或在运行差异和运行长度之间的偏置等。
一种用于获得改进的运行长度的技术涉及在传输发射之前执行一个或多个逻辑操作。更具体而言,可以在数据和另一信号(例如时钟信号)之间执行逻辑操作以改进运行长度。图3示出了根据示例实施例的该技术。
更具体而言,虽然图3中的电路布置显示了编码器114(参见图1)的一部分,但是本领域技术人员可以理解类似布置可以用于实施图2中所示的实施例中的编码(例如通过使用编码器/解码器146A和/或146B)。编码器114包括逻辑电路160,逻辑电路160在所示示例中具有两个输入。逻辑电路160的一个输入接收待传输的数据。逻辑电路160的另一输入接收(例如从控制器(未示出)或其它源接收)输入信号162,诸如时钟或编码信号。响应于输入,逻辑电路160对数据和输入信号执行逻辑操作,并且提供结果作为输出(编码数据)。
在示例实施例中,逻辑电路160可以执行各种逻辑操作。在一些实施例中,逻辑电路160可以对数据或对数据的逻辑操作的中间结果执行多于一个的逻辑操作。在一些实施例中,逻辑电路160可以以可编程或可配置的方式执行逻辑操作,响应于例如从一个或多个源(例如控制器(未示出))提供的控制信号、命令等。
在一个示例实施例中,逻辑电路160对数据和输入信号执行异或(XOR)操作。根据该操作的结果,可以减少编码数据的运行长度。注意,如下所述,基于操作的结果,协议可以例如基于逐字来确定原始数据或结果是否具有较低的运行长度,并且基于该确定,选择对数据位执行期望操作(如果存在)。图4示出了该操作的示例。
具体而言,图4显示了数据位的集合,如果该数据位未被编码地传输,则具有14的运行长度。数据位的下划线部分显示了一系列的14个连续的0,因此运行长度为14。逻辑电路160(图4中未示出)执行在数据和输入信号(例如如上所述的时钟信号)之间的异或操作。在所示出的示例中,输入信号包括0和1的交替图案,其可以对应于时钟信号或其它输入信号的逻辑电平。结果(编码数据)表示在数据和输入信号之间的逐位XOR操作。
如图4所示,编码数据的运行长度为7。具体而言,编码数据包括7个1的图案,即,运行长度为7。通过使用示例异或操作以编码原始数据,图3中所示的实施例减少所得数据的运行长度。换言之,操作将位图案的保持恒定的一部分转换为交替图案,而剩余位具有与在异或操作之前相同的概率分布。
注意,在给定随机数据图案的情形下,应用异或操作(或一般而言其它逻辑操作)具有使得最大运行长度更长或更短的相等机率。例如,应用图案给{0101010101}可以将短的运行长度图案变换成长的运行长度图案。因此,在一些实施例中,可以在原始数据具有相对长的运行长度(例如RL>K,其中K代表常数或变量)时应用逻辑操作(例如异或)。
作为备选,在一些实施例中,可以针对在应用逻辑操作之前的原始数据计算运行长度,并且还可以针对向数据应用逻辑操作的结果计算运行长度。可以例如通过使用单个位或一个或多个位的集合基于哪一个提供更好(较短)的运行长度在这两个结果之间进行选择。假设选择较短的运行长度的情形,针对原始数据(其可以被编码或可以未被编码),在相对较大r值(例如r>20)的任一给定位置处开始的r的长度的运行的机率近似为2-r。但是在应用上述编码方案之后,在任一给定位置开始的r的长度的运行的机率缩减为2-2r。对于r=20而言,编码方案提供该运行长度出现的可能性方面的三级幅度减少(即,减少1000倍)。对于r=40而言,编码方案提供在该运行长度出现的可能性方面的六级幅度减少(即,1000000倍减少)。
可以在各种情形和实施例中使用上述概念。例如,可以基于已经具有或包括的一些类型的编码而使用逻辑操作(例如异或)。又例如,逻辑操作可以是异或之外的操作,例如异或非(XNOR)等或者是复杂逻辑操作,例如由布尔逻辑表达式描述的操作。此外,可以对除图4中所示的示例交替的二进制0和1(时钟图案)之外的输入信号使用各种位图案。例如,可以使用图案001100110011(半周期时钟)、半随机或伪随机图案、或任何其它期望图案。图案的长度可以是有效载荷或数据中数据位数目。又例如,可以在收发器中使用编码,而非在除发射器中(例如在编码器或编码器/解码器块中(参见图2))。
本领域技术人员可以理解,在一些协议(例如Interlaken、PCIegen3或SONET)中,使用线性反馈移位寄存器(LFSR)对数据进行倒频。LFSR由多项式和初始化种子(initialization seed)表征。这对给定字传输的位的图案是LFSR当前状态的函数。如果使用两个LFSR(例如LFSR1和LFSR2)(例如与不同的初始化种子一起并且并行地操作),则可以根据期望基于各种选择准则(诸如运行长度、DC-漫游(wander)或其它准则)在LFSR1和LFSR2之间进行选择。
另一编码技术使用位排序(或数据位的重排序)的倒频,即,改变或倒频或重排序数据位的顺序。在具有相对长的运行长度的数据位的顺序的情形下,位的顺序的倒频将分离出恒定的位,因此平均减少运行长度。用于倒频的理想方案取决于待避免或非期望的最大运行长度以及有效载荷或数据大小。
可以以各种方式实施位顺序倒频。一般而言,诸如位顺序倒频电路之类的电路在实施时可以接收数据位,并且然后倒频顺序以产生或输出编码或顺序经倒频的数据位。在一些典型实现方式中,位在假设单个位选择的情形下将具有去往两个定位之一的选择,或者多至2-3个定位。在这类情形下,复用器(MUX)可以用于实施或实现位顺序倒频。对于可以实际上适应任何位顺序置换或排序的更为一般的实现方式而言,可以如图5中所示运用使用开关矩阵的电路。具体而言,编码器114(如果例如使用图1中的系统100)或编码器/解码器146A/146B(如果例如使用图2中的系统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}mod32,
其中新位位置(new-bit-position)和旧位位置(old-bit-position)分别表示位x在编码之后和之前的位置。由于数字5和32是相对主要的(prime),因此该位顺序倒频提供数据位的完全重排序。数字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中所示的示例减少所得数据的运行长度。
在一些实施例中,可以做出是使用原始数据还是使用由上述技术编码的数据的选择。图7示出了根据用于选择性地使用经由逻辑操作编码的示例实施例的电路。具体而言,示出了选择性使用逻辑操作的编码器114的框图(或编码器/解码器146A/146B)。提供输入数据(可以被编码或不被编码)给逻辑电路160以及MUX182的一个输入。如上所述,逻辑电路160处理数据以减少运行长度。
响应于选择信号(标记为180),MUX182提供原始输入数据或在逻辑电路160的输出处的经处理的数据作为其输出信号。以此方式,本领域技术人员可以理解,可以基于各种因素使用原始数据或由逻辑电路160处理的数据。
图8示出了用于选择性使用由位排序编码的根据一个示例实施例的电路。具体而言,示出了编码器114(或编码器/解码器146A/146B)的框图,其选择性地使用位排序操作。向位排序电路168和MUX182的一个输入提供输入数据(可以被编码或不被编码)。如上所述,位排序电路168处理数据以减少运行长度。
响应于选择信号(标记为180),MUX182提供原始输入数据或位排序电路168的输出处的经处理的数据作为其输出信号。以此方式,根据期望,基于如本领域技术人员可以理解的各种因素,可以使用原始数据或由位排序电路168处理的数据。
图9显示用于选择性使用经由逻辑操作或位排序的根据一个示例实施例的电路。该电路可以提供原始数据(可以被编码或不被编码)作为输出,原始数据经由逻辑操作编码或经由位排序编码。因此,电路提供用于选择性编码数据的灵活方案。
更具体而言,示出了选择性使用经由逻辑操作或位排序操作的编码的编码器114(或编码器/解码器146A/146B)的框图。向逻辑电路160和MUX182的一个输入提供输入数据。逻辑电路160如上所述地处理数据以减少运行长度。类似地,位排序电路168如上所述地处理数据以减少运行长度。
响应于选择信号(标记为180),MUX182提供原始数据、在逻辑电路160的输出处的经处理的数据或在位排序电路168的输出处的经处理的数据作为其输出信号。以此方式,可以根据期望基于本领域技术人员可以理解的各种因素使用原始数据、由逻辑电路160处理的数据或由位排序电路168处理的数据。
在此情形下,MUX182实现三个数据集合之一的选择,即,原始数据、逻辑电路160的输出处的数据、位排序电路168的输出处的数据。这类电路提供在选择最匹配一个或多个期望准则(诸如运行长度大小)的数据方面的增加的灵活性。注意,在该情形下,MUX选择信号包括两个位,其允许选择三个MUX输入信号之一。
注意,可以组合两个或更多个编码方案或技术。例如,在一些实施例中,可以将逻辑操作与数据位排序或位顺序倒频进行组合。例如,在一个实施例中,XOR操作(或另一逻辑操作)可以与数据位顺序倒频组合,并且按组对位进行重排序,例如按2(或其它期望数字)的组。原始有效载荷或数据中运行在XOR操作之后将以每两个位进行变换(0变1或1变0)。扩展数据变换的该新集合将对最大运行长度设置上界。
图10A显示了使用逻辑操作和位排序方案的编码器114(或编码器/解码器146A/146B)的框图。向逻辑电路160和MUX182的一个输入提供输入数据。逻辑电路160处理数据以如上所述地减少运行长度。向位排序电路168提供逻辑电路160的输出处的数据。
位排序电路168处理数据以如上所述地减少运行长度。位排序电路168的输出处的数据驱动多路复用器MUX182的第二输入。响应于选择信号(标记为180),MUX182提供原始数据或位排序电路168的输出处的经处理的数据作为其输出信号。以此方式,可以根据期望基于诸如相对运行长度大小之类的因素使用原始数据、或由逻辑电路160和位排序电路168处理的数据。图10B显示了使用逻辑操作和位排序方案的另一编码器114(或编码器/解码器146A/146B)的框图。图10B中的电路包括逻辑电路160和位排序电路168,其以与图10A中电路中的相应块的相似的方式操作。然而,此外,图10B中的电路包括逻辑电路160A和位排序电路168A。一般而言,逻辑电路160A和位排序电路168A中的一个或两个执行与逻辑电路160和位排序电路168分别不同的逻辑操作或位排序操作。换言之,响应于输入信号162A(其可以与输入信号162相同或不同),逻辑电路160A对数据执行逻辑操作。类似地,位排序电路168A可以执行与位排序电路168所执行的相同或不同的位排序操作。MUX182允许选择原始数据、由逻辑电路160和位排序电路168A编码的数据、或者由逻辑电路160A和位排序电路168A编码的数据作为编码数据。因此,在图10B中的电路允许基于期望实现方式和终端使用的更为灵活的编码操作。本领域技术人员在阅读所公开的概念的描述之后可以理解,可以根据期望通过对所示电路做出适当修改来使用多于两个的逻辑电路和/或多于两个的位排序电路。
在一些实施例中,逻辑电路160的输出可以驱动MUX182的第三输入。图11A示出了使用该技术的示例实施例。在此情形下,MUX实现三个数据集合之一的选择,即,原始数据、逻辑电路160的输出处的数据或位排序电路168的输出处的数据。这类电路提供在选择最匹配一个或多个期望准则(诸如运行长度大小)的数据方面的增加的灵活性。注意,在此情形下,MUX选择信号包括允许选择三个MUX输入信号之一的两个位。图11B显示作为图11A中的电路的变化的另一编码器114(或编码器/解码器146A/146B)的框图。图11B中的电路包括逻辑电路160、逻辑电路160A、位排序电路168和位排序电路168A,其与图11A中的电路中的相应块以相似的方式操作。图11B中的编码器电路使用标记为182和182A的两个MUX。响应于选择信号(标记为180A),MUX182A实现三个数据集合(即,原始数据、逻辑电路160的输出处的数据A、或位排序电路168的输出处的数据A)的选择,并且提供所选的输入作为其输出。MUX182A的输出驱动位排序电路168和168A的相应输入和MUX182的输出。原始数据提供附加输入给MUX182。响应于选择信号(标记为180),MUX182实现四个数据集合(即,原始数据、位排序电路168的输出处的数据A、位排序电路168的输出处的数据和在MUX182A的输出处的数据)的选择,并且在其输出处提供所选择的输入作为编码数据。一般而言,逻辑电路160A可以执行与逻辑电路160不同的逻辑操作。换言之,响应于输入信号162A(其可以与输入信号162相同或不同),逻辑电路160A对数据执行逻辑操作。类似地,位排序电路168A执行与位排序电路168A不同的位排序操作。因此,图11B中的电路基于期望实现方式和终端用途允许更为灵活的编码操作。本领域技术人员在阅读所公开的概念之后可以理解,可以根据期望通过对所示电路做出适当修改而使用多于两个的逻辑电路、多于两个的位排序电路和/或多于两个的MUX。
可以使用各种选项提供选择位。例如,在一些实施例中,可以根据数据单独地提供选择位。又例如,在其它一些实施例中,可以在与数据相同的线上提供选择位,例如,在数据之前的位。
各种图案或操作可以用于逻辑操作和/或排序操作。理想的图案取决于最大目标或期望运行长度和有效载荷或数据大小。可以执行各种逻辑操作(XOR是一个示例),并且可以使用各种位图案(输入信号,如图3-4所示),其中重复“01”图案(交替的二进制0和1,而期望长度例如与数据位的数目匹配)作为一个示例。
图12显示了与XOR操作组合或与其一起重排序以减少运行长度的数据位顺序倒频的示例。在所示出的示例中,原始数据(其可以具有或不具有已向其应用的一些类型的编码)的运行长度为14。下划线部分显示了14个0的串,从而将运行长度提升为14。使用重复的“01”图案与数据进行XOR操作产生运行长度为7的编码数据。注意,XOR操作导致原始数据的下划线部分变得“发散”,或在数据内移动或分散。
通过使用利用所示的图案或顺序的排序或位顺序倒频的附加编码在输出数据中进一步减少运行长度至3。输出数据的下划线部分显示了导致之前较高的运行长度的位的又一发散、移动或分散。因此,由XOR操作和排序操作提供的编码使得重复位图案的相对长的运行断开或缩短,从而减少所得的或输出的运行长度。
在一些实施例中,作为减少运行长度的替代或附加,可以考虑其它一些优势的度量或计算。在一些实施例中,可以优化除运行长度之外的度量,其可以通过使得接收器(或接收收发器)在线噪声、信号失真或其它因素存在时检测逻辑1和0更为容易来减少位错的概率。例如,运行长度为6的位图案{00000010000001}可以比备选(诸如具有更多变换但是运行长度为8的位图案{010000000010011011})更易受位错影响。
又例如,在一些实施例中,可以包括或使用在通信装置的一个或多个部分(或所有部分)中的与功率耗散或消耗相关的度量。例如,在满足运行长度规范的前提下,可以优选选择具有较少的总的变换以便减少动态功耗的多项式或图案。
又例如,各种系统的存在和/或水平、数目和/或严重性(severity)或电路状况可以用作度量。例如,可以给定优先级以当在一个或多个相邻道上的相对高的切换活动存在或被检测到时减少运行长度。减少运行长度可以减少在此类情形下的串扰的可能。可以在检测到更多的切换活动时增加优先级。
另一度量的示例是运行差异,其构成了数据中在0和1之间的失衡的测量。例如,包括450个0和550个1的数据分组或数据流(即,450+500的总和,或1000位)具有+100的运行差异,以及(100/1000)×100%或10%的失衡。在应用逻辑操作和位排序方案的情形下,相对短的运行长度(例如少于10-15)仍然可以相对频繁地出现。除了减少相对短的运行长度,逻辑操作方案可以用于优化或改进不同度量,诸如运行差异(注意,位重排序方案不应改变运行差异)。
在一些实施例中,可以基于准则集合(诸如阈值)执行优化或改进。例如,在一些实施例中,可以针对运行长度低于目标阈值相出现的情形执行运行差异优化或改进。图13显示根据示例实施例用于选择性改进运行差异的技术的流程图。
在250处,初始化运行差异值。此外,获得运行长度阈值(例如,从用户,从存储)作为参数等。可选地,在一些实施例中,还可以获得运行差异阈值(例如从用户,从存储)作为参数等。如下所述,可以可选地使用运行差异阈值。
在252处,进行确定待处理的数据是否可用的检查。如果不可用(例如数据传输的末端已到达,数据传输尚未开始等),该技术继续后续任务(如果存在)。然而,如果数据可用,则在254处获得数据。数据可以具有或不具有向其应用的编码。例如,可以通过使用一个或多个编码方案(诸如上述的编码方案)来减少运行长度。
在256处,确定数据的运行长度和运行差异。在258处,确定运行长度是否低于运行长度阈值。如果不低于,则运行长度相对高(相对于所使用的阈值或其它期望目标或数目)。因此,在262处,可以向数据应用诸如上述方案之类的一个或多个编码方案以减少运行长度。
可选地,在一些实施例中确定若干方案中哪个方案将减少运行长度最多并同时改进运行差异。可以基于该确定选择编码方案并且将其应用至数据。
作为另一选项,在一些实施例中,确定编码方案对运行差异以及运行长度的影响。可以选择最少影响运行差异(例如运行差异增加最少)同时最多影响运行长度(例如运行长度增加最多),并将其应用至数据。
参见在258处的确定,如果运行长度低于运行长度阈值,则运行长度值可以视为“可容忍”。例如,考虑具有期望位图案的XOR操作被应用至数据的实施例。XOR操作所得的数据(或根据使用不同位图案以执行XOR操作所得的数据)具有与没有XOR操作的数据不同的运行差异。在一些情形中,运行差异可以视为相对高。在260处,诸如上述方案之类的一个或多个编码方案可以应用至数据以减少运行差异。
可选地,可以在一些实施例中确定若干方案中的哪个方案减少运行差异最多并同时改进运行长度。可以基于该确定选择编码方案并且将其应用给数据。
作为另一选项,在一些实施例中确定编码方案对运行差异和运行长度的影响。可以选择最少影响运行长度(例如运行长度增加最多)同时最多影响运行差异(例如运行差异增加最少),并将其应用至数据。
备选地,以及可选地,可以在一些实施例中确定运行差异是否低于运行差异阈值(如上所述,可选地在250处获得)。如果是如此,可以不对数据做出改变。然而,如果并非如此,则可以向数据应用一个或多个编码方案(诸如上述的编码方案)以减少运行差异。在任一情形下,控制传递至266。
在260或262之后,在266处,输出数据,例如用于传输至目的地。在268处,更新运行差异。可以基于指示是否已对数据做出改变(该改变影响运行差异)的标记来做出运行差异的更新。随后,控制返回至252以检查如上所述的数据可用性。
在一些实施例中,通过保持对运行差异的追踪和选择最小化相对基线或阈值的运行差异变化的图案(例如原始数据或向其应用XOR操作的数据),可以最小化、优化或总体改进运行差异变化。在一些实施例中,在相对长的运行长度的情形中,可以选择产生较短运行长度的图案或编码(例如用于对数据执行XOR操作的一个或多个位图案)。在一些实施例中,对于相对短的运行长度而言,可以选择提高0和1之间的平衡的图案或选择提高平衡最多的图案。
图14描绘了根据一个示例实施例用于改进运行差异、运行长度或这两者的电路的框图。所示的实施例包括发射器114(或收发器146A或146B),其包括逻辑电路160、位排序电路168、MUX182和控制器27。所示的示例实施例中的电路布置可配置并且可以提供各种功能。例如,在一些实施例中,电路布置可提供在图13的流程图中所示的功能性。
参见图14中所示的实施例,在一些变化中,可以使用逻辑电路160和位排序电路168中的一个或另一个。本领域技术人员可以理解,配置的选择基于期望编码、运行长度和/或运行差异中的所得改进、电路复杂性等等。
输入数据(其可以被编码或未被编码)提供MUX182的一个输入。输入数据还馈送控制器270的一个输入。控制器270可以根据任何数目的准则做出其决定。例如,控制器可以确定输入数据的运行长度和/或运行差异。控制器270还可以考虑或关注其它因素,包括但不限于平均变换密度(其将影响功率),变换密度的均匀程度(其将影响因电路的非均匀功率需求导致的功率瞬态)、与邻近信道上变换相关的特定变换的定位(其将影响串扰)或与并行字的开始相关的变换的位置,其将导致可能在收发器中重复时间处出现的系统性抖动状况(确定性抖动)。控制器270可以使用该结果至少部分地确定MUX182的哪个输入信号应该被提供为MUX182的输出信号。用于确定各种准则的技术和电路(包括运行长度和运行差异)为本领域技术人员所熟知。
基于选择信号180(由控制器270提供),MUX182可以提供输入数据作为输出数据,即不添加或不执行任何编码。这种情形可能在例如当控制器270确定逻辑电路160和/或位排序电路168应用编码方案并不满足一个或多个准则时出现。控制器270可以单独做出确定或与其它电路装置(未示出)协同做出确定。准则可以包括但不限于指定或期望运行长度和/或运行差异。本领域技术人员可以理解也可以使用其它准则。
输入数据馈送逻辑电路160的一个输入。控制器270提供输入信号162(例如用于在执行逻辑操作时使用的图案)给逻辑电路160。逻辑电路160使用输入信号162对输入数据执行上述编码操作。在控制器270的控制之下,可以由逻辑电路160实施各种图案或逻辑操作。例如,在一些实施例中,逻辑电路160可以执行在数据和重复的“01”图案(输入信号162)或上述其它图案之间的XOR操作。
逻辑操作的结果(即逻辑电路160的输出)馈送MUX182的一个输入。控制器270还使用逻辑电路160的输出确定其运行长度和/或运行差异。控制器270可以使用结果至少部分地确定MUX182的输入信号中的哪个应该被提供作为MUX182的输出信号。
位排序电路168接收逻辑电路160的输出。位排序电路168对逻辑电路160的输出执行上述编码操作。位排序操作的结果(即位排序电路168的输出)馈送MUX182的输入。控制器270还使用位排序电路的输出以确定其运行长度和/或运行差异。控制器270可以使用结果至少部分地确定MUX182的输入信号中的哪个应该被提供作为MUX182的输出信号。
控制器270提供MUX182的选择信号180。MUX182的选择信号180(即信号180)可以根据期望基于逻辑电路160和位排序电路168的配置(和包括)或基于多个逻辑电路160和位排序电路168的包括而包括多于一个的位。在所示的示例实施例中,MUX182实现三个数据集合之一的选择(即原始数据、逻辑电路160的输出处的数据、或位排序电路168的输出处的数据)。这类电路在选择最匹配一个或多个期望准则(诸如运行长度大小、运行差异等)的方面提供增加的灵活性。
一般而言,控制器270使用确定输入数据的运行长度、运行差异、或这两者、逻辑电路160的输出、和/或位排序电路168的输出的结果。以此方式,控制器270可以使用各种位图案、排序图案并且操作成通过应用一个或多个编码方案优化或改进输入数据的运行长度和/或运行差异。在示例实施例中,如本领域技术人员可以理解,控制器270可以以各种方式实施。例如,在一些实施例中,控制器270可以包括有限状态机(FSM)。又例如,在一些实施例中,控制器270可以包括定制逻辑、处理器(例如微处理器或微控制器)等。
注意,本领域技术人员可以理解,关于是否应用一个或多个编码方案以及在此情形下应用哪种编码方案、图案等的决定可以基于一个或多个准则。在一些实施例中,诸如上述的实施例中,可以基于一个或多个度量(诸如运行长度、运行差异等)确定是否应用一个或多个编码方案(或相同方案的变化)。例如,可以基于所确定的(或估计或近似的)运行长度、运行差异等使用不同的XOR图案或不同的位排序。
在一些实施例中,可以基于一个或多个代价函数的使用决定是否应用一个或多个编码方案(或相同方案的变化,例如不同XOR图案或不同位排序)。该技术可以应用至上述的实施例。发射器(或收发器)可以应用或使用测量或确定使用一个或多个编码方案的必要性或代价的一个或多个代价函数(例如,每个编码方案一个代价函数、多于一个编码方案的一个代价函数等)。
典型地,代价或通过使用代价函数确定的值越低,则编码方案或操作就越为必要。因此,发射器(或收发器)可以基于代价函数的值(例如对于给定的输入信号的集合)或代价函数将产生的结果来选择一个或多个代价函数。以此方式,可以开发和使用灵活的机制以用于选择满足一个或多个期望准则的编码方案。
本领域技术人员可以理解,可以基于应用、特定或期望的实现方式等使用多种代价函数。本领域技术人员可以理解,代价函数可以考虑各种因素。这类因素包括硬件复杂性、软件或固件复杂性、处理开销、延迟、处理速度、应用包括代价函数的方案的收益(如果存在)和结果、发射器和接收器之间(或在收发器之间)的通信质量。
基于代价函数的结果,可以在向接收器或收发器传输之前向数据应用一个或多个编码方案。例如,在图14中示出的实施例中,控制器270可以使用一个或多个代价函数确定:使用哪种编码(如果存在)、将什么图案用作输入信号162、使用什么逻辑操作(在逻辑电路160中)、使用什么位排序等等。
发射器(或发射数据的收发器)可以将选择的编码通知给接收器(或接收数据的收发器)。发射器(或发射数据的收发器)可以包括传输的编码数据的一个或多个附加的位以指示相同方案的编码或变化的选择,例如不同XOR图案或不同位排序等。
注意,无需向接收器(或接收的收发器)通知代价函数或为何发射器(或发射的收发器)使用编码方案。还注意,在双向链路中,通信链路的每一侧可以根据期望使用不同的代价函数以用于其相应的发射器。
可以以多种方式在待发射的数据中包括附加位。例如,附加位可以在数据或有效载荷之前。图15示出了根据示例实施例的配置。具体而言,位300的集合(例如分组)可以包括构成附加位的一个或多个位302。位302可以是报头(header)或报头的一部分,例如数据分组中的报头。位300的集合还可以包括构成数据或有效载荷304的一些位,即,在有效载荷304之前发射的位302。
又例如,附加位可以在数据或有效载荷之后。图16显示了根据示例实施例的这种配置。位300的集合(例如分组)可以包括构成附加位的一个或多个位302。位300的集合还包括构成数据或有效载荷304的一些位。位302(即有效载荷304之后的附加位)在有效载荷304之后被发射。换言之,位302可以追随位300的集合中数据有效载荷,例如数据分组。注意,还可以使用报头作为数据分组的一部分。
参见图15-16,可以适应数据或有效载荷的各种大小和配置。为此,数据或有效载荷位304可以包括对应于数据或有效载荷的位数目的多个位。例如,在一些实施例中,数据位304可以包括对应于32位有效载荷的32个位。在其它一些实施例中,数据位304可以包括对应于64位有效载荷的64个位,等等。
注意,在一些实施例中,发射器(或收发器)和接收器(或收发器)可以例如周期性地重新协调或改变商定或选定类型的编码。本领域技术人员可以理解,可以在出现一次改变、多次改变、在一个或多个未安排时间点改变、周期性改变或根据其它方案改变。
数据或分组结构的上述描述假设串行通信信道或介质。换言之,信息位沿着一个通信链路行进,例如经由单端链路的两个导体或耦合机构(一个接地,一个是信号)或经由差分链路的三个导体或耦合机构(一个接地、另两个分别用于差分信号)。本领域技术人员可以理解,可以有其它变化。
可以使用技术减少信息处理开销、复杂性和/或成本、和/或增加吞吐量,或在这些属性之间做出权衡。在一些实施例中,是否使用任何编码方案或使用哪种编码方案/图案的决定依赖于运行长度的计算。运行长度的计算要求提供和使用一些硬件或电路装置(或经由固件或软件执行计算,其中性能可接受)。这类实施例在更高的复杂性和增加的编码性能的成本之间权衡。
在其它一些实施例中,并不计算运行长度,而是可以使用运行长度的近似。使用近似的运行长度可以更为廉价并且可以缩减门数。例如,运行长度的计算可以对在数据分组或有效载荷内的两个或更多个数据位的集合执行。
一般而言,N位的有效载荷可以划分成k个集合或每个m位的子集(如果期望,则可以为可变数目的位)。然后可以使用k个集合计算运行长度。图17显示了根据该方案用于近似运行长度的框图。电路包括逻辑电路350A-350K。逻辑电路350A-350K可以根据期望驻留在编码器(例如图1中的编码器114或图2中的编码器/解码器146A/146B)中,或在电路或系统中的其它适当定位处。
参见图17,在所示出的实施例中,数据分组或有效载荷340包括N个数据位的集合,其被划分成m位的集合1至集合k(标记为345A-345K)。(注意,所示的示例并不示出其它位,诸如上述附加位)。逻辑电路350A-350K对m位的相应集合(标记为345A-345K)进行操作,并且基于集合计算相应输出。逻辑电路350A-350K的输出355A-355K提供基于位集合345A-345K的相应输出。
对于m位的每个组而言,逻辑电路350A-350K的相应逻辑电路确定位的相应组是否全为逻辑0或全为逻辑1。在示例实施例中,逻辑电路350A-350K可以包括m输入的AND门和/或m输入OR门。如果位的相应组中的所有的m位具有逻辑1的值,则m输入AND门产生逻辑1的输出。相反地,如果位的相应组中的所有的m位具有逻辑0的值,则m输入OR门产生逻辑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的运行长度之间没有差异。当在位的两个端部组中存在(组_大小-1)(即m-1)的运行长度时,最坏情形的误差出现。在此情形下,对于m=1的情形,最大误差将为2×3或6。例如,如果逻辑0的图案是100000000001,则该情形出现。本领域技术人员可以理解,所提供的示例仅为示意,并且可以使用其它配置,诸如其它值m、k和N,并且根据期望包括其中数据位的k个集合可以包括可变数目位而非所有集合包括相等数目位的情形。
注意,接收器(或接收的收发器)基于编码位(上述附加位)或商定或协商通信机制或协议执行解码。因此,接收器(或接收的收发器)无需知晓发射器(或发射的收发器)使用的准则,诸如使用精确或近似的运行长度等,假设总通信链路满足特定准则(例如提供充分变换、运行差异等)。
相应地,不同的发射器/收发器(例如在不同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处复原报头位的使用。
本领域技术人员可以理解,可以将所公开的概念有效地应用至各种类型的编码。例如,使用所公开的技术以修改或改进常规编码技术。所提供的示例仅构成示例应用,并且并不旨在限制所公开的概念对其它情形的应用。
构思了各种装置、处理、系统和技术。在一个实施例中,装置包括适配成编码数据位以对用于经由通信链路传输的数据位进行编码,编码器电路包括适配成对位和数据位的图案执行逻辑操作以减少数据位的运行长度的逻辑电路。耦合至编码器电路的发射器电路可以添加至装置。
逻辑操作可以包括异或(XOR)操作。位的图案可以包括交替的二进制0和1。可以选择性地执行逻辑操作。可以基于数据位的运行长度的近似选择性地执行逻辑操作。可以基于以下项的一个或多个执行逻辑操作:(a)代价函数;(b)装置的功耗;以及(c)装置的运行差异。基于位集合的值执行逻辑操作。可以在包括数据位的分组的报头中包括位集合。位集合可以包括单个位。
除上述内容之外或作为其替代,位顺序倒频可以适配成对数据位的顺序进行倒频或可以添加数据位的重排序。可以重排序数据位以便减少数据位的运行长度。位顺序倒频电路可以选择性地对数据位进行重排序。备选地,位顺序倒频电路可以基于数据的运行长度的近似对数据位进行重排序。备选地,位顺序倒频电路可以基于以下项中的一个或多个重排序数据位:(a)代价函数;(b)装置的功耗;以及(c)装置的运行差异。可以选择性地执行逻辑操作和位重排序操作。可以选择性地基于位集合的值执行逻辑操作和位重排序操作。
根据另一示例实施例,装置可以包括适配成数据位进行编码以用于经由通信链路进行发射,编码器电路包括适配成对数据位的顺序进行倒频以便减少数据位的运行长度。编码器电路可以是编码器/解码器的一部分
位顺序倒频电路可以对数据位的顺序选择性地倒频。位顺序倒频电路可以基于数据位的运行长度的近似对数据位的顺序进行倒频。位顺序倒频电路可以基于以下项的一个或多个对数据位的顺序进行倒频:(a)代价函数;以及(b)装置的运行差异。
此外,逻辑电路适配成对位图案执行逻辑操作并且可以添加数据位。逻辑操作可以包括异或(XOR)操作。可以选择性地执行逻辑操作。可以基于数据的运行长度的近似选择性地执行逻辑操作。逻辑操作可以基于以下一项或多项执行逻辑操作:(a)代价函数;以及(b)装置的运行差异。可以选择性地执行逻辑操作和位顺序倒频操作。
根据另一示例实施例,装置包括编码器以对数据位的集合进行编码,其中编码器被适配成基于位集合选择性地解码数据位,其中初始地使用位集合以建立经由链路的数据通信。可以在报头中包括位集合。位集合可以包括两个位。报头可以包括64/66报头。可以初始地使用位集合以建立字锁。可以使用位集合以在已建立经由链路的通信指挥对数据位进行解码。
可以添加逻辑电路,并且逻辑电路可以适配成在已建立通信之后基于位集合的值对位图案和数据位执行逻辑操作。可以添加位顺序倒频电路,并且位顺序倒频电路可以适配成在已建立通信之后基于位集合的值对数据位的顺序进行倒频。
参见附图,本领域技术人员将注意到,所示出的各种块可以主要描绘概念功能和信号流。实际电路实现方式可以单独包含或不包含用于各种功能块的可识别的硬件,并且可以使用或不使用所示的特定电路装置。例如,可以根据期望将各种块的功能组合进一个电路块。此外,可以根据期望意识到在若干电路块中的单个块中的功能。对于电路实现方式的选择基于各种因素,诸如针对给定实现方式的特定设计和性能规范。除上述实施例之外的其它修改和备选实施例对于本领域技术人员是显然的。因此,本说明书教导本领域技术人员执行所公开的概念的方式,并且出于示意而构建。
所示和所描述的形式和实施例应该被认识是示意性实施例。本领域技术人员可以对部件的形状、大小和布置做出各种修改而不偏离所公开的在该实施例中的概念的范围。例如,本领域技术人员可以替换用于本文示出和描述的元件的等同元件。此外,本领域技术人员在阅读本公开之后可以独立于其它特征的使用而使用所公开的概念的特定特征,而不偏离所公开的概念的范围。
Claims (36)
1.一种装置,包括:
编码器电路,适配成对数据位编码以用于经由通信链路的发射,所述编码器电路包括:
逻辑电路,适配成对位图案和数据位执行逻辑操作以便减少数据位的运行长度。
2.根据权利要求1所述的装置,其中所述逻辑操作包括异或(XOR)操作。
3.根据权利要求2所述的装置,其中所述位图案包括交替的二进制0和1。
4.根据权利要求1所述的装置,其中选择性地执行所述逻辑操作。
5.根据权利要求4所述的装置,其中基于所述数据位的运行长度的近似选择性地执行所述逻辑操作。
6.根据权利要求4所述的装置,其中基于以下项中的一项或多项执行所述逻辑操作:(a)代价函数;(b)所述装置的功耗;以及(c)所述装置的运行差异。
7.根据权利要求4所述的装置,其中基于位集合的值执行所述逻辑操作。
8.根据权利要求7所述的装置,其中在包括所述数据位的分组的报头中包括所述位集合。
9.根据权利要求7所述的装置,其中所述位集合包括单个位。
10.根据权利要求4所述的装置,还包括位顺序倒频电路,适配成对所述数据位的顺序进行倒频或重排序所述数据位。
11.根据权利要求10所述的装置,其中重排序所述数据位以便减少所述数据位的运行长度。
12.根据权利要求10所述的装置,其中所述位顺序倒频电路选择性地重排序所述数据位。
13.根据权利要求10所述的装置,其中所述位顺序倒频电路基于所述数据的运行长度的近似来重排序所述数据位。
14.根据权利要求10所述的装置,其中所述位顺序倒频电路基于以下项中的一项或多项来重排序所述数据位:(a)代价函数;(b)所述装置的功耗;以及(c)所述装置的运行差异。
15.根据权利要求10所述的装置,其中选择性地执行所述逻辑操作和所述位重排序操作。
16.根据权利要求15所述的装置,其中基于位集合的值选择性地执行所述逻辑操作和所述位重排序操作。
17.根据权利要求1所述的装置,还包括耦合到所述编码器电路的发射器电路。
18.一种装置,包括:
编码器电路,适配成对数据位编码以用于经由通信链路的发射,所述编码器电路包括:
位顺序倒频电路,适配成对所述数据位的顺序进行倒频以便减少所述数据位的运行长度。
19.根据权利要求18所述的装置,其中所述位顺序倒频电路对所述数据位的顺序选择性地进行倒频。
20.根据权利要求19所述的装置,其中所述位顺序倒频电路基于所述数据位的运行长度的近似对所述数据位的顺序进行倒频。
21.根据权利要求19所述的装置,其中所述位顺序倒频电路基于以下项中的一项或多项对所述数据位的顺序进行倒频:(a)代价函数;以及(b)所述装置的运行差异。
22.根据权利要求18所述的装置,还包括逻辑电路,适配成对位图案和所述数据位执行逻辑操作。
23.根据权利要求22所述的装置,其中所述逻辑操作包括异或(XOR)操作。
24.根据权利要求22所述的装置,其中选择性地执行所述逻辑操作。
25.根据权利要求24所述的装置,其中基于所述数据的运行长度的近似选择性地执行所述逻辑操作。
26.根据权利要求24所述的装置,其中基于以下项中的一项或多项执行所述逻辑操作:(a)代价函数;以及(b)所述装置的运行差异。
27.根据权利要求22所述的装置,其中选择性地执行所述逻辑操作和所述位顺序倒频操作。
28.根据权利要求18所述的装置,其中所述编码器电路是编码器/解码器的一部分。
29.一种装置,包括:
编码器,用于对数据位的集合进行编码,其中所述编码器适配成基于位集合选择性地对所述数据位进行编码,其中初始地使用所述位集合以建立经由链路的数据通信。
30.根据权利要求29所述的装置,其中在报头中包括所述位集合。
31.根据权利要求30所述的装置,其中所述位集合包括两个位。
32.根据权利要求30所述的装置,其中所述报头包括64/66报头。
33.根据权利要求29所述的装置,其中初始地使用所述位集合以建立字锁。
34.根据权利要求29所述的装置,其中在已建立经由所述链路的通信之后,使用所述位集合以对所述数据位进行编码。
35.根据权利要求34所述的装置,还包括逻辑电路,适配成在已建立通信之后基于所述位集合的值对位图案和所述数据位选择性地行逻辑操作。
36.根据权利要求34所述的装置,还包括位顺序倒频电路,适配成在已建立通信之后基于所述位集合的值对所述数据位的顺序进行倒频。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/661,313 | 2012-10-26 | ||
US13/661,313 US9490836B2 (en) | 2012-10-26 | 2012-10-26 | Apparatus for improved encoding and associated methods |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103795493A true CN103795493A (zh) | 2014-05-14 |
CN103795493B CN103795493B (zh) | 2018-11-13 |
Family
ID=49488479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310516806.1A Active CN103795493B (zh) | 2012-10-26 | 2013-10-28 | 用于改进编码的装置及关联方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9490836B2 (zh) |
EP (1) | EP2725716B1 (zh) |
CN (1) | CN103795493B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110521152A (zh) * | 2018-02-14 | 2019-11-29 | 华为技术有限公司 | 编解码方法、编解码装置及编解码设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3032576B1 (fr) * | 2015-02-05 | 2017-03-10 | St Microelectronics Grenoble 2 | Procede de codage en ligne a bit de polarite utilisant des trames aperiodiques |
JP6680057B2 (ja) * | 2016-04-13 | 2020-04-15 | 富士通株式会社 | 情報記憶装置、重複除去方法、および重複除去プログラム |
US11764805B2 (en) * | 2021-10-06 | 2023-09-19 | Samsung Display Co., Ltd. | System and method for transition encoding with reduced error propagation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4486739A (en) * | 1982-06-30 | 1984-12-04 | International Business Machines Corporation | Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code |
CN1267136A (zh) * | 1999-03-09 | 2000-09-20 | 株式会社东芝 | 逻辑电路及先行进位电路 |
CN1471320A (zh) * | 2002-06-03 | 2004-01-28 | 双向预测(b)图像的时间空间预测和多图像参照移动补偿的移动向量预测 | |
CN101601087A (zh) * | 2006-11-16 | 2009-12-09 | 弗劳恩霍夫应用研究促进协会 | 用于编码和解码的设备 |
US8245096B2 (en) * | 2004-09-22 | 2012-08-14 | Kencast, Inc. | System, method and apparatus for FEC encoding and decoding |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4547890A (en) * | 1982-09-28 | 1985-10-15 | Abraham M. Gindi | Apparatus and method for forming d.c. free codes |
JPH01286626A (ja) * | 1988-01-18 | 1989-11-17 | Hitachi Ltd | データ符号化方式 |
US5022051A (en) | 1988-11-02 | 1991-06-04 | Hewlett-Packard Company | DC-free line code for arbitrary data transmission |
US5805632A (en) | 1992-11-19 | 1998-09-08 | Cirrus Logic, Inc. | Bit rate doubler for serial data transmission or storage |
US5668545A (en) * | 1995-06-26 | 1997-09-16 | Industrial Technology Research Institute | Simplified encoding apparatus and method for pilot tone modulation in automatic-track-following |
US7035292B1 (en) * | 2000-03-17 | 2006-04-25 | Applied Micro Circuits Corporation | Transposable frame synchronization structure |
US6304196B1 (en) * | 2000-10-19 | 2001-10-16 | Integrated Device Technology, Inc. | Disparity and transition density control system and method |
US7301482B1 (en) * | 2003-12-12 | 2007-11-27 | Marvell International Ltd. | Circuits, architectures, systems, methods, algorithms and software for conditional modulation coding |
US20060171234A1 (en) | 2005-01-18 | 2006-08-03 | Liu Skip S | DDR II DRAM data path |
US7061406B1 (en) | 2005-01-21 | 2006-06-13 | Rambus, Inc. | Low power, DC-balanced serial link transmitter |
US7782805B1 (en) | 2005-02-08 | 2010-08-24 | Med Belhadj | High speed packet interface and method |
CN101312349B (zh) * | 2007-05-26 | 2010-08-25 | 华为技术有限公司 | 信息块编码及同步检测的方法和装置 |
US7949134B2 (en) | 2007-08-01 | 2011-05-24 | Force 10 Networks, Inc. | Multiplexed multilane hybrid scrambled transmission coding |
CN103141095B (zh) * | 2010-07-26 | 2017-02-15 | 联合大学公司 | 串行化数据流中的统计字边界检测 |
-
2012
- 2012-10-26 US US13/661,313 patent/US9490836B2/en active Active
-
2013
- 2013-10-25 EP EP13190192.8A patent/EP2725716B1/en active Active
- 2013-10-28 CN CN201310516806.1A patent/CN103795493B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4486739A (en) * | 1982-06-30 | 1984-12-04 | International Business Machines Corporation | Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code |
CN1267136A (zh) * | 1999-03-09 | 2000-09-20 | 株式会社东芝 | 逻辑电路及先行进位电路 |
CN1471320A (zh) * | 2002-06-03 | 2004-01-28 | 双向预测(b)图像的时间空间预测和多图像参照移动补偿的移动向量预测 | |
US8245096B2 (en) * | 2004-09-22 | 2012-08-14 | Kencast, Inc. | System, method and apparatus for FEC encoding and decoding |
CN101601087A (zh) * | 2006-11-16 | 2009-12-09 | 弗劳恩霍夫应用研究促进协会 | 用于编码和解码的设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110521152A (zh) * | 2018-02-14 | 2019-11-29 | 华为技术有限公司 | 编解码方法、编解码装置及编解码设备 |
CN110521152B (zh) * | 2018-02-14 | 2021-05-18 | 华为技术有限公司 | 编解码方法、编解码装置及编解码设备 |
US11121726B2 (en) | 2018-02-14 | 2021-09-14 | Huawei Technologies Co., Ltd. | Encoding and decoding methods, apparatuses, and devices |
Also Published As
Publication number | Publication date |
---|---|
US9490836B2 (en) | 2016-11-08 |
CN103795493B (zh) | 2018-11-13 |
EP2725716B1 (en) | 2021-12-01 |
EP2725716A1 (en) | 2014-04-30 |
US20140119388A1 (en) | 2014-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9071476B2 (en) | Methods and systems for high bandwidth chip-to-chip communications interface | |
US8718184B1 (en) | Finite state encoders and decoders for vector signaling codes | |
CN102681954B (zh) | 使用总线倒置以减少同时信号切换 | |
CN105122758B (zh) | 高带宽芯片间通信接口方法和系统 | |
CN103141066B (zh) | 发送电路、接收电路、发送方法、接收方法、通信系统及其通信方法 | |
Tallini et al. | Transmission time analysis for the parallel asynchronous communication scheme | |
CN104639477A (zh) | 用于高速网络初始化的反向通道通信 | |
CN108463977A (zh) | 带内嵌时钟的正交差分向量信令码 | |
US9942063B2 (en) | Apparatus for improved encoding and associated methods | |
CN108737021B (zh) | Polar码传输方法及装置 | |
CN103795493A (zh) | 用于改进编码的装置及关联方法 | |
CN102497249B (zh) | 编码方法、编码装置、解码方法、解码装置、数据传送装置及数据接收装置 | |
CN102118237B (zh) | 基于mimo系统的uci处理方法和装置及其传输方法 | |
CN109039553B (zh) | 信号检测方法、组件及显示装置 | |
CN105515727A (zh) | 用于改进编码的设备以及相关方法 | |
CN104052698A (zh) | 用于改善的通信的装置以及相关联的方法 | |
CN112398480A (zh) | 电池管理系统领域的多电平编码 | |
EP0425779B1 (en) | Apparatus and method for transmitting commands | |
JP2017513307A (ja) | N階乗またはcci拡張を用いた誤り訂正符号を使用するための方法 | |
Berge et al. | High-speed serial AER on FPGA | |
WO2023279924A1 (zh) | 一种传输方法及装置 | |
CN101174914A (zh) | 误码纠错系统及其发送装置、接收装置和误码纠错方法 | |
CN113949388B (zh) | 用于串行器/解串器系统的编解码器与编解码方法 | |
KR101265596B1 (ko) | 다중코드워드 방식의 mimo 무선통신 시스템에서긍정/부정 응답 신호를 전송하는 방법 및 장치 | |
CN1826779B (zh) | 用于接收机的时钟再训练方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |