向量信令码信道的流水线式前向纠错

文档序号:1581182 发布日期:2020-01-31 浏览:18次 >En<

阅读说明:本技术 向量信令码信道的流水线式前向纠错 (Pipelined forward error correction for vector signaling code channels ) 是由 阿明·肖克罗拉 达里奥·卡内利 于 2018-04-16 设计创作,主要内容包括:对依次接收的向量信令码字进行解码,以获得依序的各组数据比特,其中,每一向量信令码字的码元均经多条线路并行接收;根据依序的每组数据比特并按照校验矩阵,对多个纠错症状值进行渐进更新;在最后一个向量信令码字解码后,对所述多个纠错症状值进行最终渐进更新,并通过根据所述多个纠错症状值所确定的符号位置索引值从所述依序的各组数据比特中选择一组数据比特并根据所述多个纠错症状值当中的第一纠错症状值所确定的比特纠错掩码修改所选一组数据比特的方式,对所述依序的各组数据比特中的数据比特进行相应修改。(Decoding vector signaling code words received in sequence to obtain each group of sequential data bits, wherein each vector signaling code word code element is received in parallel through a plurality of lines, gradually updating a plurality of error correction symptom values according to each group of sequential data bits and a check matrix, finally gradually updating the plurality of error correction symptom values after the last vector signaling code words are decoded, and correspondingly modifying the data bits in each group of sequential data bits in a mode of selecting groups of data bits from each group of sequential data bits according to symbol position index values determined by the plurality of error correction symptom values and modifying groups of data bits selected according to bit error correction masks determined by the th error correction symptom value in the plurality of error correction symptom values.)

向量信令码信道的流水线式前向纠错

技术领域

本发明实施方式总体涉及通信系统电路,尤其涉及芯片间通信所用高速多线接口的通信减错。

背景技术

在现代数字系统中,数字信息以高效可靠的方式进行处理。在这一背景下,数字信息理解为含于离散值(即非连续值)内的信息。数字信息不但可由比特和比特集合表示,而且还可由有限集合内的数字表示。

为了提高总带宽,大多数芯片间或装置间通信系统采用多条线路进行通信。这些线路中的每一条或每一对均可称为信道或链路,而且多个信道组成电子部件之间的通信总线。在物理电路层级上,芯片间通信系统内的总线通常由芯片与主板之间的封装电导体、印刷电路板(PCB)上的封装电导体、或PCB间线缆和连接器内的封装电导体构成。此外,高频应用中,还可采用微带或带状PCB迹线。

常用总线线路信号传输方法包括单端信令法和差分信令法。在要求高速通信的应用中,这些方法还可以在功耗和引脚利用率方面(尤其高速通信中的这些方面)进一步优化。最近提出的向量信令法可在芯片间通信系统的功耗、引脚利用率及噪声稳健性方面实现更加优化的权衡取舍。此类向量信令系统在发射端将数字信息转换为向量码字形式的另一种表示空间,该向量码字依据传输信道的特性和通信系统的设计约束条件权衡选择,以在功耗、引脚利用率及速度之间实现更优的取舍。这一过程在本申请中称为“编码”。编码后的码字作为一组信号从发射机传输至一个或多个接收机。在接收端,所接收的与码字对应的信号被反转为最初的数字信息表示空间。这一过程在本申请中称为“解码”。

发明内容

在现有比特串行通信系统中,先将发送处理过程或来源处理过程所提供的数据码字串行化(在一种例示实施方式中,由数字移位寄存器进行串行化)为有序比特流,然后在接收端,由相应装置对按顺序检测到的比特进行反串行化,从而能够为接收处理过程或目标处理过程提供与发送方所提供的数据码字相当的完整数据码字。向量信令码通信系统的操作与此类似,但在此类操作中,串行化处理往往用于将数据码字分解为多组符号(例如,在CNRZ-5系统中,分解为5个比特码元),而相应的反串行化处理用于通过将接收的各组符号组合(如仍以上述CNRZ-5系统为例,则对5个比特进行组合)而恢复出数据码字。

已有的前向纠错(FEC)方法在发送数据流中引入冗余量,以作为同时用于检测错误和促进纠错的校验码的一部分。对于通信链路的固有纠错前BER较低(如1×10-9~1×10-10)且目标BER处于1×10-15~1×10-20数量级的情形,本文所述的一种新方案可在发送值串行化的过程中进行计算,并在接收后的反串行化过程中进行验证,从而在无误码情形中,几乎或完全不向传输路径中引入额外延迟。

在一些实施方式中,一种方法包括:以向量信令码接收机对依次接收的预设数目个向量信令码字进行解码,以获得依序的各组数据比特,其中,每一向量信令码字的码元均经多条线路并行接收;以FEC校验电路根据依序的每组数据比特并按照校验矩阵,对多个纠错症状值进行渐进更新;以及在所述预设数目个接收向量信令码字当中的最后一个向量信令码字解码后,对所述多个纠错症状值进行最终渐进更新,并通过根据所述多个纠错症状值所确定的符号位置索引值从所述依序的各组数据比特中选择一组数据比特并根据所述多个纠错症状值当中的第一纠错症状值所确定的比特纠错掩码修改所选一组数据比特的方式,对所述依序的各组数据比特中的数据比特进行相应修改。

附图说明

图1为将数据S经共同构成通信介质120的一组线路125从发射机110发送至接收机130以供其输出接收数据R的现有技术通信系统框图。

图2所示为采用多个处理阶段的数据路径内设置前向纠错功能的一种发射机实施方式。

图3所示为采用多个处理阶段的数据路径内设置前向纠错功能的一种接收机实施方式。

图4A至图4C为根据一些实施方式的CRC码字计算框图。

图5A和图5B为根据一些实施方式的纠错电路元器件框图。

图6为根据一些实施方式的错误数据码字位置识别框图。

图7为根据一些实施方式的方法流程图。

图8为根据一些实施方式的纠错症状值迭代更新方法流程图。

具体实施方式

如《Cronie I》、《Cronie II》及《Shokrollahi II》中所述,向量信令码可例如在系统内的两个集成电路装置之间形成极高带宽的数据通信链路。如图1实施方式所示,由多条线路125构成的数据通信信道120中承载有向量信令码的符号,这些符号通过共同作用而对向量信令码的码字进行传输。取决于所使用的具体向量信令码,含通信链路的信道数可在两条至八条或八条以上范围内变动,而且还可通过另外的通信信道传输一个或多个时钟信号,或者作为向量信令码的子信道分量传输此类时钟信号。在图1示例中,通信链路120示为由八条线路125组成,这八条线路用于在发射机110和接收机130之间共同传输五个数据值100以及一个时钟105。此类通信链路的进一步描述见《Shokrollahi II》。

各个符号,例如在任何单个通信信道中传输的符号可使用多种不同信号水平,通常为三种或三种以上信号水平。当信道速率超出10Gbps时,还可能因需要深度流水线式或并行化信号处理而使得接收操作进一步复杂化。本申请中描述的实施方式还可用于《Shokrollahi II》向量处理方法未涵盖的现有排列组合排序法。更一般而言,此类实施方式可用于任何需要通过在多条信道或多个信道元素之间进行协调而产生合乎逻辑的总结果的通信或存储方法。

鉴于多个符号的传输基本上为并行这一特性,向量信令码一般被视为以多组符号的形式传输数据,例如,在《Shokrollahi II》中所述的CNRZ-5码(也称透翅(Glasswing)码)中,以五个比特的渐进量渐进传输。相应地,在下文中,该传输方式可描述为K×n比特渐进传输,其中n为代码符号组大小或有效载荷大小。然而,该文献还进一步指出,传输各个比特的编码子信道在数学意义上互不相同,而且在某些实施方式中,可使用相互独立的传输信道。

串行化和反串行化

在现有比特串行通信系统中,先将发送处理过程或来源处理过程所提供的数据码字串行化(在一种例示实施方式中,由数字移位寄存器进行串行化)为有序比特流。在接收端,由相应装置对按顺序检测到的比特进行反串行化,从而能够为接收处理过程或目标处理过程提供与发送方所提供的数据码字相当的完整数据码字。向量信令码通信系统的操作与此类似,但在此类操作中,串行化处理往往用于将数据码字分解为多组符号(例如,在CNRZ-5系统中,分解为5个比特码元),而相应的反串行化处理用于通过将接收的各组符号组合(如仍以上述CNRZ-5系统为例,则对5个比特进行组合)而恢复出数据码字。

明显的,串行化和反串行化在传输信道中引入了延迟,而且由于只有在接收到最后一个传输码元并将接收码字完全重新组合后才能获得整个码字,因此延迟量取决于给定数据码字串行化所形成的传输码元数。

在一些高速通信系统中,串行化和反串行化还可进一步包括多个处理阶段,这些处理阶段基本上并行进行,以为每个阶段提供额外的处理时间,以及/或者通过允许处理操作使用更低的时钟速率而降低功耗。在一种代表性实施方式中,发送处理过程或来源处理过程所提供的数据码字分解为前后相继的码字,而且各码字分配至按顺序依次选择且用于实施必要的编码、格式化等操作的处理阶段。当每一处理阶段完成其操作后,处理结果发送至输出驱动器,以供其在通信介质中传输。因此,当采用四个处理阶段时,每一阶段将大约有四个传输单位时间间隔用以执行必要的操作。接收机也可采用类似的多阶段处理方式,也就是说,前后相继接收的码字由按顺序依次分配的处理阶段检测,并重新组合为输出码字。

在本申请中,涉及多个处理阶段的实施方式用作描述性示例,以实现对特征和特性的最广泛且最完全的阐述。其他实施方式也可采用更多或更少的处理阶段(包括单个阶段),并且可在这些基本上为并行的处理阶段中纳入更大或更小的发送和/或接收处理工作量,但本发明不限于此。

链路纠错

虽然通信系统设计以数据的无差错传输为重,但仍然不可避免地存在噪声及其他信号干扰因素。传输路径的出错概率由比特误码率(BER)表示,该值为接收到的比特误码数与总发送比特数之比。

本领域中的已知比特误码检测方法包括循环校验码、奇偶校验以及冗余传输。在已知纠错方法中,最值得一提的是TCP/IP协议套件中的闭环重传法。在该方法中,当接收机检测到错误时,先通过反向信道请求发射机重传,然后将改正后的数据显式***其输出码流中。此外,本申请中使用的本领域术语“循环冗余校验(CRC)”是指任何能够通过将数据流扩大而实现错误识别和错误校正的一组计算所得比特。

前向纠错

在无法使用反向信道或不允许重发导致的往返等待延迟时,可使用已有的前向纠错(FEC)方法。该方法在发送数据流中引入冗余量,以作为同时用于检测错误和促进纠错的校验码的一部分。传输数据流中引入的冗余量越大(例如,所使用的FEC序列越长),所获得的FEC比特纠错能力越高,但同时协议开销也越大,即有效数据传输速率越低。

如《Bhoja等人》中所述,目前已提出若干种针对高速通信链路的FEC技术,包括针对802.3bj的KR4码和KP4码,以及BCH码(例如,长度为2864,维度为2570)。其他此类技术例如包括《Shokrollahi I》中所述里德-所罗门(Reed-Solomon)码以及《Cronie II》中所述汉明(Hamming)码、阿达马(Hadamard)码、里德-穆勒(Reed-Muller)码、戈莱(Golay)码和低密度奇偶校验(LDPC)码。由于此类纠错方法的处理对象为纠错前BER相对较高(1×10-5~1×10-3数量级)的通信链路,而且纠错后误码率处于1×10-15数量级,因此有赖于相对较长的校验序列和针对大量数据的计算。此外,此类方法导致的纠错延迟处于数十纳秒数量级(如按照《Bhoja等人》所述为100ns),而且相应的计算功耗较大。

当通信链路的固有纠错前BER较低(如1×10-9~1×10-10)且目标BER处于1×10-15~1×10-20数量级时,如《Shokrollahi II》中所述Glasswing码或CNRZ-5码等采用向量信令码的封装内芯片间链路,可选择可大幅降低延迟的其他方法。

对于每次在m条线路上发送n个比特的向量信令码,由于通信链路内的误码有可能引发所有n个比特发生误码,因此优选采用工作于有限域GF(2n)内的FEC。

流水线式纠错处理

一种链路优化的前向纠错实施方式通过以传输级向量信令码进行数据码字的依次传输而实现感知纠错延迟的最小化。在此类实施方式中,以向量信令码在m条线路上传输由n个比特组成的n比特组。因此,N个前后相继的比特组可传输由K×n个数据比特和R×n个用于纠错的CRC比特组成的N×n个比特。在发送端,所述K×n个数据比特由数据源一般以多次传输的形式经宽的并行接口提供。在接收端,由类似的接口将所接收的K×n个数据比特传递给数据接收方。

在一种非限制性的具体示例中,考虑如下情形:CNRZ-5码;n=5且m=6;典型消息长度N=32。这一情形可诠释为相当于同时发送5个比特流,每一比特流含32个前后相继发送的比特。作用于五比特码字的GF(2n)前向纠错码能够对一个比特误码进行纠错。假设输入BER为p,而且所有比特流的单位间隔间误码均为随机且独立的误码(但每一单位间隔内组成码字的5个比特之间的误码并不相互独立),则解码后的输出BER最多为:

其中,q=1-(1-p)5且N=32。8×10-10的输入BER p足以实现1×10-15的输出BER。该代码的速率保持率为15/16=93.75%,速率损失率为6.25%。在此类实施方式中,在26.66G的波特率下,接口可经6条线路发送5×26.66×0.9375=125Gbps的数据。

FEC传输

在发送端,本实施方式执行如下操作:

每一单位间隔(UI)内的5个待发送比特视为有限域GF(32)的元素。例如,假若以n0,n1,n2,n3,n4表示所述5个比特,其中,n0为n的最低有效位,n4为最高有效位,则n对应于如下元素:

n0+n1*x+n2*x2+n3*x3+n4*x4 mod f(x) (式2)

而且f(x)为多项式x5+x3+1。

其中,GF(32)元素使用2行30列的校验矩阵。在一种实施方式中,该矩阵的j列元素为1和aj,其中,GF(32)的元素aj为整数j的二进制展开,也就是说,aj表示为二进制向量[j0j1 j2 j3 j4],其中,j0+2×j1+4×j2+8×j3+16×j4=j。虽然其他实施方式也可使用不同的校验矩阵,但是通过使用将整数j的二进制展开用作第二行元素的校验矩阵,可实现误码定位向量的高效计算。其中,所述误码定位向量用于找出含有错误的接收符号。具体而言,如此可免于使用伯利坎普-梅西(Berlekamp-Massey)算法(包括相应的钱式搜索(ChienSearch))。此外,通过以该校验矩阵的全“1”行直接计算比特纠错掩码,可免于根据福尼(Forney)公式确定误码幅度。通过上述校验矩阵计算r0和r1的式3如下:

Figure BDA0002313310270000081

式3中,通过将含两行常数(一行全为“1”,另一行为a0~a29)的上述校验矩阵与含30个数据符号m0~m29的向量模乘,生成所述CRC码字r0和r1。

当将输入的30个五比特数据码字(其比特基本同时在5条CNRZ-5子信道中传输)记为m0,m1,……,m29,则所述两个5比特CRC码字r0和r1为r0=m0⊕m1⊕……⊕m29,r1=a0·m0⊕a1·m1⊕……⊕a29·m29,其中,a·b表示a和b在有限域GF(32)中的乘积,⊕表示比特的异或运算。因此,r1可通过在第j个单位间隔内对r1的前一存储值与aj·mj这一模乘结果进行逐比特异或运算而渐进更新r1的前一存储值的方式生成,而且r1的最终值在最后一次渐进更新时生成。

消息数据m0,m1,……,m29对应于时间点0,1,……,29的五比特码字。因此,CRC码字r0,r1可随着数据逐渐变得可用而以渐进方式计算。该计算的对应伪代码为:

Figure BDA0002313310270000091

图4A包括根据一些实施方式的r0值计算方式示意图。如图所示,通过对r0的前一存储值402与数据码字mj相应位置处的对应比特进行异或运算403的方式,对r0给定值进行更新。举例而言,r0[0]可与mj[0]进行异或运算,r0[1]可与mj[1]进行异或运算,依此类推。因此,对于0≤i≤4的索引值i,r0[i]=m0[i]⊕m1[i]⊕……⊕m29[i]。此类实施方式可例如随各个比特mj[i]逐渐变得可用而以递归方式进行。在此类实施方式中,每一数据比特mj[i]可例如通过移位寄存器提供。或者,当所有数据码字均可用时,该计算也可例如通过图4B所示逻辑异或树型结构进行。

如上所述,r1的计算包括:将GF(32)矩阵的aj元素与对应数据码字mj缩模相乘;并对所得结果进行异或运算。在一些实施方式中,图4B所示异或树型结构404可由FEC编码器形成。此类异或树型结构可通过已知逻辑组合方式形成,例如由附录A中用于计算r0和r1的逻辑组合方式形成。此类实施方式可在以异或树型结构进行计算前,获得所有的数据比特(在上述各例中为150个)。图4B所示为r1[0]计算的一种具体示例。在此类实施方式中,输入值405可以为根据用于按照附录A更新r1[0]的比特选出的预设值。

图4C为根据一些实施方式用于渐进更新作为CRC码字r1一部分的给定比特r1[0]的另一逻辑电路示意图。在图4C示意图中,r1值可按照与给定符号的一组数据比特与所述校验矩阵的符号索引值的模乘式对应的CRC计算式进行渐进更新。在此类实施方式中,可随符号m0~m29的每组数据比特中的比特逐渐变得可用而实施更新,从而缩小延迟。如图所示,图4C包括用于保持r1[0]当前值的存储单元407。当前值r1[0]与CRC计算式确定的K×n个数据比特的序列进行异或运算410,其中,FEC数据比特当中的第i个比特表示为inp[i]。索引标注序列inp[i]表示当前正在处理的输入数据,其中,在以上共有K=30组n=5个数据比特的实施方式中,inp[0…4]为数据码字m0的5个比特,inp[5…9]为数据码字m1的5个比特,……,inp[145…149]为符号m29的5个比特。

其中,无需针对K×n个数据比特当中的每一比特更新r1[0]的当前值,而是由对应使能信号EN根据一组预设比特(见附录A)选择性地更新r1[0]当前值。如图所示,在一些实施方式中(未图示),移位寄存器415可从发射机的数据缓冲器210中获得所述K×n个数据比特,并将这些数据比特串行输入至异或运算单元410中。

在用于计算r1'的接收机实施方式中,如图4C所示,移位寄存器415可与各处理阶段330相连。或者,每一阶段可具有相应的移位寄存器,而所有这些移位寄存器可多路复用(未图示)。在一些实施方式中,移位寄存器415可并行加载。在此类实施方式中,移位寄存器415可包括多个D触发器,这些触发器可并行加载,并向异或运算单元410进行串行移位输出。方框417表示根据一些实施方式的移位寄存器415的一个存储单元。如图所示,存储单元417与所述四个处理阶段330当中每一阶段的MIC0输出端连接p0[0]~p3[0]。此外,待加载存储单元417的阶段由阶段选择信号phase_sel选择。在一些实施方式中,可由用于接收各阶段的多路复用器向上述方框表示的元件提供选定阶段,而且所述选择信号可采取用于选择待加载寄存器的阶段的两比特时钟计数器。虽然以上只描述了用于接收每一处理阶段的MIC0输出的存储单元417,但是移位寄存器415的每一其他存储单元可以以类似方式接收所述多个处理阶段的对应MIC输出。举例而言,存储单元419可接收每一处理阶段的MIC1输出。

图4C进一步包括计数电路,该电路用于生成包括部分使能信号4,5,7在内的部分使能信号,这些部分使能信号可通过组合而形成比特r1[0]的对应全局使能信号EN。如图所示,所述计数电路包括计数器420和多个与逻辑门422a,422b,422c。在一些实施方式中,该计数器用于从i=0计数至i=K×n-1,其中,i为与上述K×n个数据比特中的相应数据比特inp[i]关联的索引值。计数器420的当前输出值i可表示为一组比特(图4C中示为X,Y,Z)。与逻辑门422a~422c用于接收比特X,Y,Z,而且每一与门422a~422c均具有以相应方式组合的反相输入端和非反相输入端,以使得对于每一计数值i,所述部分使能信号当中仅与给定计数值对应的一个信号为逻辑“1”,其余均为逻辑“0”。在一些实施方式中,通过对与上述一组预设已知比特的各比特索引值i相应的部分使能信号进行或运算425,形成CRC码字r1中每一比特的相应全局使能信号EN。在图4C说明性示例中,r1[0]仅以inp[4]和inp[7]这两个比特进行更新。因此,全局使能信号EN通过对部分使能信号4和7进行或运算的方式形成,而且当计数值i=4和7时,分别以比特inp[4]和inp[7]更新r1[0]。虽然计数器420图示为仅具有三个用于形成二进制计数值i的比特X,Y,Z,但是该图示方式仅出于说明目的,而且应该注意的是,计数器420可包括任何数目的比特。举例而言,在上文和附录A中给出的示例中,所述计数器可形成具有8个比特的计数值i,即从i=0计数至i=149(在i=149时复位),以对CRC码字r1中的比特进行更新。

图4A至图4C所示实施方式仅为可通过硬接线而对CRC码字r0和r1中的每一比特进行计算的逻辑电路的若干示例。该计算可由各种其他逻辑电路设计执行。例如,在其他实施方式中,可通过运行软件应用程序的处理器计算上述变量。

在完成输入数据处理后,CRC码字r0和r1可作为最后的两个码字发送,此两发送码字在本申请中记为m30和m31。在另一实施方式中,发射机可首先根据可用的缓冲发送数据计算r0和r1,然后以所述第一和第二向量信令码字发送r0的五个比特以及r1的五个比特。在本实施方式中,解码器随后可通过所述两个校验值便利地进行解码电路(用于计算症状值的FEC校验电路)的初始化。

由于元素a0,a1,……,a29事先已知,而m0,m1,……,m29为可变量,因此GF(32)内的每一乘法运算均可通过对5个比特实施的一系列异或运算完成。如本领域技术人员所知,这一做法称为“有限域GF(32)的正则表示法”。在该表示法中,a0,a1,……,a29中的每一元素均表示为一个5×5的比特矩阵,相应地,a[j]·m[j]这一乘法运算即对应于该矩阵与m[j]的表示向量之间的乘法运算。

作为上述一系列运算的一种实施方式,附录A中给出了一种具体的GF(32)正则形式,但本发明不限于此。许多其他表示也可用于获得类似的结果。

优选地,发射端的计算与上述串行化步骤同时进行,也就是说,各组数据变得逐渐可用,并以渐进方式变得可供传输。这一“流水线式”FEC计算方式避免了前向纠错技术中常常遇到的额外延迟问题。在发送处理中采用多个基本上并行的处理阶段的实施方式中,每一处理阶段均可完成r0,r1计算的各个部分。在一些实施方式中,至少一个所述处理阶段包括用于促进上述计算的至少一部分的异或逻辑。

图2所示为采用《Shokrollahi II》中所述CNRZ-5码的一种发射机实施方式。其中,由数据缓冲器210接收发送数据。一般情况下,该数据的提供源优选例如但不限于以16、32或64比特的码字形式传输数据。在接收到以上述形式传输的输入码字后,数据缓冲器210输出与各组数据比特相对应的符号m0,m1,……,m29(在本例中,每一符号对应于由五个数据比特组成的一个五数据比特组)。其中,前后相继的符号以循环顺序分配215至所有处理阶段220中的phase0,phase1,phase2,phase3等处理阶段。每一处理阶段220均对一个五数据比特组同时进行CNRZ-5编码222和以上所述的FEC计算221。在时钟发生器250的控制下,多路复用器230选择各个处理阶段产生的结果,以向线路驱动器240提供待经由线路W0~W7组成的通信信道发送的输出符号235。如《Shokrollahi II》中所述,时钟发生器250还生成发送时钟255,而且在图2示例中,该发送时钟作为发送输出的一部分由线路驱动器240经线路W6和W7发送。

在利用从数据缓冲器210获得的数据对前30个输出码字进行处理的过程中,所述多个FEC计算实例221可通过访问一组公用的寄存器或存储单元而更新CRC码字r0,r1。随后,某一处理阶段内的FEC处理单元将r0作为待由向量信号编码器222编码的第31个输出码字输出,而下一个被选处理阶段中的FEC处理单元将r1作为待由编码器222编码的第32个输出码字输出。

接收与纠错

在接收端,一种相应实施方式实施一组类似的CRC计算。其中,32个五比特码字依次接收——第一个五比特码字m0的到达时间为0,第32个五比特码字m31的到达时间为(UI×31),其中,UI为符号传输单位时间间隔。在此类实施方式中,生成本地CRC码字r0'和r1',通过将本地CRC码字r0'和r1'与接收的CRC码字r0和r1相比较的方式,生成最终纠错症状值r0"和r1"。或者,可首先通过从发射机接收CRC码字r0和r1而将FEC校验电路332初始化,然后根据依次接收的各组数据比特对由所接收的CRC码字r0和r1初始化的多个纠错症状值进行渐进更新。

在接收纠错的第一步骤中,执行附录A中的运算,这些运算优选与所述前30个数据码字的反串行化步骤同步进行,以渐进计算本地CRC码字r0'和r1'的值。与发射端情形类似,每一步的渐进计算均仅针对所接收的五比特码字值执行,从而实现各值的渐进计算。此外,与发射端情形类似,在一种实施方式中,多个接收处理阶段当中的至少一个处理阶段包括用于执行至少一部分上述计算的异或逻辑。在一些实施方式中,可使用与图4A至图4C所示类似的电路计算r0'和r1'值。在一些实施方式中,可随数据码字m0~m29的比特变得逐渐可用而计算本地CRC码字r0'和r1',而在其他实施方式中,也可待完成所有数据码字的接收后一次性计算r0'和r1'。

在通过处理前30组接收数据比特而对多个纠错症状值渐进更新(优选在反串行化步骤中)后,对r0'和所接收的CRC码字m30(r0)进行异或运算,并对r1'和所接收的CRC码字m31(r1)进行异或运算,以分别生成纠错症状值r0"和r1"。出于说明目的,r0"和r1"既可称为纠错症状值(最终渐进更新后时),也可称为症状码字。其中,r0"和r1"含有前向纠错码的所谓“症状”。如果r0"或r1"为零,则说明所发送的各组数据比特m0,……,m29没有错误,无需进一步处理。其中,虽然这些码字中仍然可能存在纠错症状值的渐进更新中未诊断出的误码,但是此类误码漏诊的发生率处于以上纠错后BER范围内。至少一种实施方式采用多个接收处理阶段,每个接收处理阶段均包括用于执行附录A中运算或其逻辑等效物的至少一部分且用于执行上述FEC症状诊断异或运算的逻辑。

在一些实施方式中,接收机FEC电路的多个纠错症状值可通过从发射机接收前两个单位间隔内的CRC码字r0和r1而初始化,从而能够通过以依次获得的各组数据比特进行渐进更新而实现r0"和r1"的直接计算。在一些实施方式中,所述FEC校验电路可在如图4C所示的电路中执行逐比特迭代计算。然而,其他实施方式也可采用基于逻辑表达式(如附录A所列逻辑表达式)的预设组合逻辑电路,以利用所述一组解码后数据比特中的一个或多个数据比特更新所述纠错症状值。此类电路可类似于图4B所示组合逻辑电路。然而,由于该情况下,只有在获得所有数据比特时才能一次性地供接收机使用,因此所述组合逻辑电路可通过硬编码而利用根据当前接收符号内的一组当前接收数据比特的索引号选择的比特,更新所述纠错症状值。举例而言,可先以符号m0中的一个比特(附录A中的inp[1])更新纠错症状值r1[1],然后再以符号m1中的三个比特(inp[5],inp[6],inp[7])更新纠错症状值r1[1]。其中,既可硬编码用于根据附录A实施上述渐进更新的控制逻辑,也可编码用于根据上述伪代码中的r1计算算法实施二进制模运算的控制逻辑。

如果纠错症状值r0"和r1"均不为零,则需要对接收数据比特进行纠错——将r0"用作五比特纠错掩码,并根据r1"/r0"这一向量确定含误码符号的符号位置索引值,其中,所述除法为有限域GF(32)中的除法。计算误码索引值r1"/r0"的纠错操作以及对码字mt施加纠错掩码的异或操作可在反串行化步骤之后实施。其中,符号位置索引值t=pos-1,其中,pos为r1"/r0"的整数形式。在一种作为非限制性示例的实施方式中,在计算出pos=r1"/r0"之后,由桶式移位器通过将比特纠错掩码r0"施加至被选的一组数据比特mt的值上而执行逐比特异或运算功能。

更具体而言,可通过如下伪代码描述以上解码操作:

Figure BDA0002313310270000151

如上所述,所述符号位置索引值(在下式4中表示为b)通过以r0"除r1"的方式获得:

Figure BDA0002313310270000152

图5A为根据一些实施方式与FEC校验电路510相连的纠错电路560的一种实施方式框图。在一些实施方式中,纠错电路560可对应于图3中的“纠错”360。如图所示,FEC校验电路510依次获得所述30个解码后五比特数据码字的150个数据比特以及所接收的CRC码字r0和r1的10个比特。随后,FEC校验电路510对多个纠错症状值进行渐进更新。在一些实施方式中,FEC校验电路首先将其内的各纠错症状值初始化为静态值(全为零),然后根据所接收的数据比特生成本地CRC码字r0',r1',并且在最终渐进更新中,通过执行r0⊕r0'和r1⊕r1'这两个异或运算而分别生成纠错症状值r0"和r1"。或者,如上所述,也可先在最初的单位间隔内从发射机接收CRC码字r0和r1,然后以所接收的CRC码字对纠错症状值进行初始化。随后,FEC校验电路510可对所述纠错症状值进行渐进更新,并在最终渐进更新时直接获得纠错症状值r0"和r1",无需实施前一实施方式中的额外异或运算步骤。在一些实施方式中,FEC校验电路510可以与图4A至图4C所示CRC码字生成器类似的方式工作,并具有生成纠错症状值r0"和r1"的额外功能。随后,纠错电路560可根据最终的纠错症状值判断是否存在误码。如上所述,如果r0"或r1"为零,则该纠错电路无需实施纠错操作。如果纠错掩码r0"为“00000”,则对所选符号的异或运算不变;而如果r1"为“00000”,则表示所接收的CRC码字r0或r1中存在误码,因此纠错电路可忽略这一情形,并不对数据比特进行纠错。如果纠错症状值r0"和r1"均不为零,则通过实施上述r1"/r0"而识别出用于找出含误码符号位置的五比特符号位置索引值x[0]~x[4],从而确定含有误码的该符号的一组数据比特的位置。在图5A中,通过找出r0"倒数的比特形式而计算

Figure BDA0002313310270000171

从而获得r1"/r0"。在一些实施方式中,可利用查找表完成上述转换520。完成该转换后,可采用缩模技术将r1"与

Figure BDA0002313310270000172

相乘525,以找出错误数据码字的符号位置索引值x[0]~x[4]。如上所述,符号位置索引值x[0]~x[4]的十进制形式在下文中可表示为pos,而且在上例中,1≤pos≤30。

上述符号位置索引值的各个比特x[0]~x[4],比特纠错掩码r0"以及依次接收到的各组数据比特可提供给一组寄存器565,以供其通过修改所选的一组数据比特而实现纠错。图5B所示为根据一些实施方式的一组寄存器565。如图所示,寄存器565包括:第一寄存器530,该寄存器内含与接收数据相对应的按顺序前后相继的各组数据比特;第二寄存器535,该寄存器内含用于对所接收的数据当中处于由符号位置索引值比特x[0]~x[4]决定的位置上的一组数据比特进行纠错的比特纠错掩码r0",以防止使所接收的数据当中的其他比特发生变化。其中,可对所述第一和第二寄存器进行逐元异或操作,以在第三寄存器540内生成一组纠错后数据,该组纠错后数据随后可由系统输出。在图5B示例中,与符号m14对应的一组数据比特被所述符号位置索引值确定为需要纠错的一组数据比特,相应地,对与符号m14对应的该组比特与纠错症状值r0"的对应比特纠错掩码进行异或运算。

如上所述,首先,可通过查找表找出r0"的倒数。附录C中给出用于实现这一功能的一种例示查找表。在获得r0"的倒数后,可将该倒数与r1"相乘,以获得上述x[0]~x[4]的值。在一些实施方式中,该乘法可由以下基于逻辑电路的运算实施,其中,inv_r0"表示通过附录C查找表获得的r0"的倒数(或乘法逆元),“&”符号表示逻辑与,⊕表示逻辑异或:

Figure BDA0002313310270000181

上述计算和相应的查找表仅为所述纠错电路的其中一种可能的实施方式,还可使用多种其他逻辑函数同等地实现相同功能。在所述纠错电路的一些实施方式中,以上运算可使用物理逻辑电路实现,而在其他实施方式中,也可由运行于处理器中的软件实现上述运算。

在所述纠错电路获得错误数据码字的位置pos-1以及比特纠错掩码r0"后,该纠错电路可例如通过寄存器,将所述纠错掩码与接收数据530的正确符号对齐,并实施异或运算。图5B所示为符号m14的纠错。如图所示,比特纠错掩码r0"可载入纠错寄存器535中由与符号m14对应的符号位置索引值决定的位置上。在至少一种实施方式中,与错误数据码字对应的一组所选数据比特的起始比特可以为每一接收数据码字的长度“n”与符号位置索引值(pos-1)的乘积。最后,可通过对含接收数据的150个比特的数据寄存器530与含比特纠错掩码r0"且其余部分均为逻辑零值的纠错寄存器535进行异或运算,以获得一组纠错后数据比特540,该组纠错后数据比特随后可由系统输出。

图6所示为用于执行纠错电路560的除法方框515处操作的逻辑电路的一种具体示例。如图所示,根据一些实施方式,该逻辑电路用于计算错误数据码字的符号位置索引值pos的x[k]部分。如图6所示,该逻辑电路包括存有当前值(在该例中示为x[0])的存储单元605。其中,可通过对x[0]当前值与纠错症状值r0"和r1"的选定比特组合进行异或运算610的方式进行x[0]值的更新。在一些实施方式中,该过程由连接于与门网络620的多路复用器615硬编码,而且由选择信号(例如为单纯的计数值)对纠错症状值r0"和r1"的比特组合进行渐进式选择。在至少一种实施方式中,由所述选择信号选择且通过提供给异或门610而进行x[0]更新的逻辑组合序列可根据附录B中的渐进处理过程预先确定。此外,对于索引值x[k]的其他比特,也可采用类似逻辑电路实现相应的预设更新序列。图6逻辑电路仅为x[k]给定比特生成方式的一例,除此之外,上述目的也可籍由其他电路形式实现。或者,附录B的处理过程也可由运行软件算法的处理器实现。

由于纠错处理的一部分发生于反串行化之外,因此需要通过尽可能地缩短此类操作导致的总延迟时间而最大程度地降低对感知延迟的影响。此类设计优化可通过本领域已知的设计自动化工具实现。然而,此类工具优选还应具有合适的元素形式搜索起点,以最大程度地减小计算逻辑深度。此方面的一种合适的实施方式见附录B,在该实施方式中,当不实施进一步优化时,逻辑深度最大可达7。以上所述实施方式可用于校正多线路总线内线路因能量冲击而发生的误码。例如,当多线路总线内的一条或多条线路遭受电磁能量冲击时,则解码后数据码字中的一个或多个比特便有可能发生误码。此类误码可被输出端的比特纠错掩码识别。其中,该比特纠错掩码用于对选定错误数据码字内由所谓纠错症状值识别出的一个或多个比特误码进行纠错。

图3所示为典型的CNRZ-5向量信令码接收机实施方式,该实施方式以多输入比较器320检测五个数据结果MIC0~MIC4以及一个接收时钟CK。线路信号W0~W5在由连续时间线性均衡器(CTLE)310均衡后,提供给《Shokrollahi II》中所述的一组MIC 320,以产生检测数据值MIC0~MIC4。除此之外,CTLE 310(未图示)还可对线路W6和W7进行均衡处理。如图3所示,所述一组MIC 320包括五个比较器电路,其中,每一MIC对应于仅对线路W0~W5上的线路信号进行线性组合操作的线性放大器电路,而且各线路信号对应于向量信令码的向量信令码字符号。如《Shokrollahi II》中所述,每一MIC可实施由多个相互正交的子信道当中的相应子信道定义的相应线性组合操作,而各个子信道可由接收机矩阵定义。在图3中,线路W6和W7为专门用于承载差分时钟信号的线路,而且接收时钟CK由运行于线路W6和W7上的差分比较器340生成。其他实施方式也可不通过专用的W6和W7承载差分时钟信号,而是以上述相互正交的子信道当中的一个专用子信道发送时钟(例如,作为输出信号MIC4)。或者,也可利用跃迁信息从所检测到的数据输出MIC0~MIC4中提取时钟信号(即,数据推断式时钟恢复法)。

检测出的数据值MIC0~MIC4提供给四个处理阶段330,其中每一处理阶段均对接收数据实施一个单位时间间隔的处理。所接收的时钟信号提供给时钟恢复单元390,以供其生成四个依序的时钟相位ph000,ph090,ph180,ph270。这些时钟相位共同作用,以对各个处理阶段330的操作进行协调。在每一处理阶段内,均在该阶段的时钟所确定的时间点上,对比较器输出MIC0~MIC4进行采样331,以生成依序的五比特码字组m0~m29以及接收CRC码字(r0和r1),然后将其提供给缓冲器370。图3接收机还包括FEC校验电路332,该电路用于根据依序的各组数据比特,对多个纠错症状值进行渐进更新。在一些实施方式中,所述多个纠错症状值初始化为逻辑零值,而且FEC校验电路根据所接收的依序的各组数据比特生成一组n比特本地CRC码字r0',r1',并在最后一个向量信令码字解码后,通过将本地CRC码字r0',r1'与接收CRC码字r0,r1相比较而形成n比特纠错症状值(r0"和r1")。根据该纠错症状值r0"和r1",可确定是否存在误码。在其他实施方式中,发射机可首先通过发送CRC码字r0和r1而将所述多个纠错症状值初始化,然后可发送所述多组数据比特。在此类实施方式中,所述多个纠错症状值r0"和r1"随最后一个向量信令码字的解码而变成最终值,因此可省略上述最终比较步骤。与发射机的情形一致,接收机的缓冲器370在从各处理阶段330接收五比特接收数据值后,将其组合成数据码字(即图中的“接收数据输出”)。该接收机进一步包括纠错电路360,该电路用于按照附录B纠错算法所述方式,修改缓冲器370内的接收比特误码。在一些实施方式中,当存在误码时,纠错电路360通过对与由所述多个纠错症状值决定的符号位置索引值关联的一组选定数据比特内的一个或多个误码进行纠错而生成一组纠错后数据比特,其中,以由第一纠错症状值r0"决定的比特纠错掩码对所述一个或多个误码进行纠错。

图7为根据一些实施方式的方法700的流程图。如图所示,方法700包括:在步骤702中,接收具有m个符号的码字序列;以及在步骤704中,相应形成多组n比较器输出,其中,n为大于或等于3的整数。在步骤706中,对各比较器输出进行采样,并检测706出多个n比特码字,其中,该多个n比特码字包括数据码字和循环冗余校验(CRC)码字。在步骤708中,根据所接收的数据码字,生成一组n比特本地CRC码字。在步骤710中,根据(1)根据所接收的多个n比特数据码字确定的一组本地CRC计算值以及(2)所接收的CRC码字,形成n比特症状码字(如上述纠错症状值),其中,这些症状码字表示是否存在误码。当存在误码时,该方法以与其中的一个所述症状码字对应的比特纠错掩码,对索引值由所述n比特症状码字的组合确定的错误数据码字内的一个或多个误码进行纠错712。

在一些实施方式中,生成所述本地CRC码字包括对所述数据码字的比特实施逻辑异或运算。在一些实施方式中,实施所述逻辑异或运算包括通过对每一数据码字的位置索引值i内的比特进行异或运算而生成第一本地CRC码字的位置索引值i内的比特,其中,0≤i≤n-1。在一些实施方式中,生成至少一个本地CRC码字包括:将每一数据码字与该数据码字的对应索引值缩模相乘;以及对每一缩模乘法所得数据码字,以递归方式进行逻辑异或运算。

在一些实施方式中,所述一组本地CRC码字随每一数据码字的逐渐接收而以递归方式更新。或者,所述各本地CRC码字可在所有数据码字接收后生成。

在一些实施方式中,当每一症状码字均不为零时,则存在误码。

在一些实施方式中,确定所述错误数据码字的索引值包括:形成表示所述症状码字当中一者的比特纠错掩码的二进制倒数;以及将其与另一症状码字缩模相乘。在一些实施方式中,所述二进制倒数可利用查找表获得。在一些实施方式中,所述纠错包括在所述错误数据码字与比特纠错掩码之间进行异或运算。

图8为根据一些实施方式的方法800的流程图。如图所示,方法800包括,由向量信令码接收机对依次接收的预设数目个向量信令码字进行解码802,以获得依序的各组数据比特,其中,每一向量信令码字的码元均经多条线路并行接收。随后,由FEC校验电路根据依序的每组数据比特并按照校验矩阵,对多个纠错症状值进行渐进更新804。在将所述预设数目个接收向量信令码字当中的最后一个向量信令码字解码且对所述多个纠错症状值进行最终渐进更新后,通过根据由所述多个纠错症状值确定的符号位置索引值从所述依序的各组数据比特中选择806一组数据比特并根据由所述多个纠错症状值当中的第一纠错症状值确定的比特纠错掩码修改808所选一组数据比特的方式,对所述依序的各组数据比特中的数据比特进行修改。

在一些实施方式中,对所述多个纠错症状值进行渐进更新包括:根据给定的一组数据比特,对前次存储的纠错症状值进行逻辑异或运算。在一些实施方式中,通过以所述给定的一组数据比特对所述前次存储的纠错症状值实施逐比特异或运算的方式,进行所述逻辑异或运算。此类操作适用于对与r0"对应的纠错症状值进行渐进更新的情形。或者,通过在所述前次存储的纠错症状值和与接收数据码字mj的所述给定的一组数据比特与符号索引整数值j的二进制展开的模乘结果对应的CRC计算结果所确定的比特之间进行逻辑异或运算的方式,进行所述逻辑异或运算。此类异或运算适用于对与r1"对应的纠错症状值进行渐进更新的情形。举例而言,所述CRC计算可包括将五比特数据码字m13与整数j=“13”的五比特二进制展开模乘。该CRC计算的结果随后可与前次存储的5比特纠错症状值r1进行异或运算。

在一些实施方式中,所述多个纠错症状值初始化为逻辑零值,而且对所述多个纠错症状值进行最终渐进更新包括:将该多个纠错症状值与多个接收CRC码字相比较。或者,在对所述多个纠错症状值进行渐进更新之前,根据多个接收CRC码字,将所述多个纠错症状值初始化。

在一些实施方式中,所述符号位置索引值通过如下方式确定:形成第一纠错症状值的二进制倒数;以及将其与所述多个纠错症状值当中的第二纠错症状值缩模相乘。在一些实施方式中,所述二进制倒数通过查找表(如附录C查找表)形成。

在一些实施方式中,所述第一纠错症状值通过如下方式更新:对所述依序的各组数据比特中具有共同比特位置的比特进行逻辑异或运算。

在一些实施方式中,所选的一组数据比特通过如下方式修改:将所选的一组数据比特与所述比特纠错掩码进行逐比特异或运算,以生成一组纠错后数据比特。在一些实施方式中,所述依序的各组数据比特存于第一寄存器内,所述比特纠错掩码存于第二寄存器内,所述一组纠错后数据比特存于第三寄存器内。在此类实施方式中,所述符号位置索引值可确定所述比特纠错掩码在所述第二寄存器内的存储位置。

对于本领域技术人员而言容易理解的是,数据在发射机和接收机内的缓冲和重新格式化可通过各种本领域已知方法实现,包括随机存取存储器存储法、数据锁存器组内存储法或者FIFO缓冲单元存储法。数据码字与传输单元大小的比特组之间的转换可通过作为独立单元或与上述存储单元集成在一起的数字多路复用器、移位寄存器、桶式移位器或双端口存储结构得到促进。如上所述,虽然以上各例以CNRZ-5传输为例对数据路径宽度进行了描述,但是该例仅出于说明目的,并不构成限制,还可同等地使用其他数据路径宽度和传输介质。类似地,虽然以上以发射机和接收机均采用一组四个处理阶段为例进行了说明,但是本发明不限于此。在其他实施方式中,还可不受限制地采用更多或包括一个在内的更少的处理实例。

附录A:r0,r1的渐进计算

r0和r1计算的一种实施方式可通过执行以下运算序列的方式实行。其中,所述运算序列的组织方式使得传输数据流的前后相继元素能够按照发送顺序和分组方式进行处理,而且这些运算导致的处理延迟时间为流水线式或者与发送重叠。

在以下说明性标注方式中,r0[i]表示r0的比特i,与此类似,r1[i]表示r1的比特i。索引标注序列inp[]表示当前处理的输入数据,其中,inp[0…4]为m0的比特,inp[5…9]为m1的比特,……,inp[145…149]为m29的比特。⊕表示布尔异或运算符。

Figure BDA0002313310270000251

Figure BDA0002313310270000271

Figure BDA0002313310270000281

Figure BDA0002313310270000291

Figure BDA0002313310270000301

Figure BDA0002313310270000311

Figure BDA0002313310270000321

Figure BDA0002313310270000331

附录B-纠错

对于以五比特形式给出的有限域GF(32)内的非零元素r0"[0],……,r0"[4]以及另一非零元素r1"[0],……,r1"[4],以下过程用于计算x=r1"/r0"这一GF(32)内元素的比特形式,即比特x[0],……,x[4]。在以下标注法中,⊕表示布尔异或运算符,&表示布尔与运算符。

Figure BDA0002313310270000341

Figure BDA0002313310270000351

Figure BDA0002313310270000361

Figure BDA0002313310270000371

Figure BDA0002313310270000381

Figure BDA0002313310270000391

Figure BDA0002313310270000401

附录C:倒数查找表

r0” 1/r0”
00000 00000
00001 00001
00010 10010
00011 11100
00100 01001
00101 10111
00110 01110
00111 01100
01000 10110
01001 00100
01010 11001
01011 10000
01100 00111
01101 01111
01110 00110
01111 01101
10000 01011
10001 11000
10010 00010
10011 11101
10100 11110
10101 11010
10110 01000
10111 00101
11000 10001
11001 01010
11010 10101
11011 11111
11100 00011
11101 10011
11110 10100
11111 11011

45页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:语音信号处理装置、语音信号处理方法和语音信号处理程序

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!