CN104486208B - 面向板级多通道并行总线的报文边界定位方法及装置 - Google Patents
面向板级多通道并行总线的报文边界定位方法及装置 Download PDFInfo
- Publication number
- CN104486208B CN104486208B CN201410755259.7A CN201410755259A CN104486208B CN 104486208 B CN104486208 B CN 104486208B CN 201410755259 A CN201410755259 A CN 201410755259A CN 104486208 B CN104486208 B CN 104486208B
- Authority
- CN
- China
- Prior art keywords
- message
- microplate
- data
- head
- heading
- 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
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种面向板级多通道并行总线的报文边界定位方法及装置,方法将报文封装为头微片和多个数据微片,以报文作为总线物理层传输的基本单位,将头微片和多个数据微片依次输出,且使用差分信号对附加报文头标识信号;接收方收到报文微片数据后,通过报文头标识信号和报文微片数据识别头微片,如果识别头微片成功则进行计数,根据计数设置报文的结束边界完成接收报文的边界定位;装置包括与方法对应的报文数据发送单元和报文数据接收单元。本发明能够总体上减少额外的控制信息负载,提高总线带宽的利用率,降低芯片物理设计和布线难度,提高总线带宽,另一方面能够提高报文边界定位的可靠性,确保定位后的报文具有正确的报文格式。
Description
技术领域
本发明涉及板级多通道并行总线体系结构设计技术领域,具体涉及一种面向板级多通道并行总线的报文边界定位方法及装置。
背景技术
随着高性能服务器和超大规模计算机的发展,系统设计者对板级高速传输总线的要求越来越高,如何使芯片间的数据传输延迟更小、带宽更高是需要解决的重要问题。传统并行总线技术采用单端(single-end)信号线传输数据,一根时钟信号线与若干根并行的数据信号线同时从发送方传输信号到接收方,接收方使用时钟信号控制读数据信号进行采样,当传输频率提高到一定程度后,由于数据信号线之间存在延迟偏斜,导致数据采样窗口越来也越小,因此,传输频率和时钟信号能够控制的数据信号线的位数均受到限制,从而限制了并行总线带宽的提高。串行数据传输方式采用差分信号串行传输数据,传输线少,抗干扰能力强,因此可以使用更高的频率进行数据传输,通过提高传输频率提高了数据传输带宽,缺点是时钟编解码过程需要额外的延迟开销。并行总线技术目前仍然被广泛使用,特别是结合上下沿采样的双倍数据率(Double Data Rate,DDR)技术和多通道技术之后,并行总线的传输带宽得到了成倍的提高。所谓双倍数据率技术,即在不提高发送时钟频率的情况下,接收方能够在时钟的上升沿和下降沿都进行数据采样,使得数据带宽提高一倍。所谓多通道技术,是指将多组并行总线或者差分串行总线再次并行使用,每一组作为一个通道(lane),包含一个独立的时钟信号和一组并行数据线,多个通道以并行方式传输数据,以实现更高的带宽。举例来说,假设基本的并行总线包括一个800MHz的发送时钟信号和8个并行数据信号,则可以实现0.8GBps(0.8G字节每秒)的带宽;若采用双倍数据率技术后,能够实现1.6GBps的带宽;若在此基础上将该组并行总线作为一个通道,让四个通道并行传输,则能够实现1.6×4=6.4GBps的带宽,比最开始的并行总线的带宽提高了8倍。
尽管多通道并行总线能够通过采用双倍数据率技术和多通道技术提高带宽,但是其缺点是传输时钟频率受到数据采样窗口缩小的限制不能无限提高,以及多通道传输不可避免地增加了单端信号线的个数,导致芯片的输出PAD数目和板级连线的数目成倍增加,给芯片的封装设计和板级布线造成很大困难。为了解决该问题,目前主要的技术路线有:(1)以更高数据率方式采样数据,例如目前还未成为主流的四倍数据率(Quad Data Rate,QDR)采样技术,接收方采用四倍的频率采样数据,带宽可以提高四倍,但是采样窗口大小缩小为原来的四倍,物理实现非常困难,因此目前基于QDR技术相关产品非常少,比较典型的有基于QDR技术的DIMM存储器使用QDR技术传输数据,IBM Power7芯片与片外存储控制器之间采用基于QDR的芯片间传输总线,但是通用市场上QDR仍未成为主流;(2)采用串行和并行技术相结合的方法,采用差分信号串行传输数据,但是采用独立的源同步时钟线传输时钟,减少纯串行总线中时钟编解码过程引发的额外的延迟开销,典型的有AMD公司的超传输(HyperTransport)总线采用该方法。(3)体系结构级报文格式优化,在传输带宽满足要求的前提下,通过将长位宽的报文分成多个短位宽的微片(Flit),传输总线上传输的数据以微片为基本单位,减少传输总线的位数,该方法的主要问题是:一个报文需要多个时钟周期才能通过总线,必须对报文边界进行正确定位才能确保接收方拼装出正确的报文。对于报文边界的定位,传统的方法是每个微片增加特殊的帧标识信息,用于定位微片的边界,另外在每个微片中还需要增加报文头(head)和报文尾(tail)信息,通过这些信息定位报文的边界。传统方法需要为每个微片增加额外的物理帧(frame)标识,报文头(head)标识和报文尾(tail)标识,造成额外的控制信息负载,降低了总线带宽的利用率,特别是对于多通道并行总线来说,额外增加的信息需要额外的数据线进行传输,增加了芯片PAD引腿和板级互连线数目,提高了芯片物理设计和板级布局布线的难度,降低了数据采样窗口的大小,限制了传输频率的提升,最终影响总线带宽的提高。
发明内容
本发明要解决的技术问题是:针对现有技术的上述问题,提供一种能够总体上减少额外的控制信息负载,提高总线带宽的利用率,减少芯片PAD引腿和板级互连线数目,降低芯片物理设计和板级布局布线的难度,提高数据采样窗口的大小,减少传输频率提升的限制,最终提高总线带宽,报文边界判断和定位准备可靠,降低微片和报文边界定位对多通道并行总线带宽提升的负面影响的面向板级多通道并行总线的报文边界定位方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向板级多通道并行总线的报文边界定位方法,其实施步骤如下:
1)以报文作为总线物理层传输的基本单位,将构成报文的头微片和多个数据微片依次输出,所述头微片中的报文长度域记载有一个完整报文的数据微片数量,同时额外使用两根信号线组成的差分信号对来对输出的头微片或者数据微片附加上报文头标识信号;
2)将各通道接收到的数据组成报文微片数据,根据接收到的报文头标识信号、报文微片数据来识别头微片,如果识别头微片成功设置报文的起始边界并启动预设的报文微片计数器,将此后每一拍接收的报文微片数据作为数据微片进行计数,如果收到数据微片的数量达到所述头微片中报文长度域记载报文的数据微片数量,则设置报文的结束边界,从而完成接收报文的边界定位。
优选地,所述步骤2)的详细步骤如下:
2.1)清除预设的报文头定位成功标志位和报文尾定位成功标志位;
2.2)对接收到各通道的报文数据进行延迟偏斜纠正得到报文微片数据,所述报文微片数据包括数据域、物理帧标识域和CRC校验域;
2.3)根据报文头标识信号、报文微片数据中的物理帧标识域和CRC校验域三者共同识别当前的报文微片数据是否为头微片;
2.4)判断头微片识别结果,如果识别头微片成功则判定收到的报文微片数据为头微片,置位报文头定位成功标志位,判断头微片中报文长度域的值,当头微片的报文长度域的值大于1时,保存头微片中报文长度域的值,同时启动预设的报文微片计数器并初始化为0,从下一拍跳转执行步骤2.5);当头微片的报文长度域的值等于1时,判定报文为仅包含一个头微片的报文,置位报文尾定位成功标志位,然后退出;如果识别头微片不成功,则判定未收到正确报文头微片,跳转执行步骤2.2)从下一拍继续接收数据微片;
2.5)继续对接收报文微片数据,使用报文微片计数器对收到的数据微片进行计数,每收到一个数据微片,将报文微片计数器加1;判断报文微片计数器对数据微片的计数值是否等于保存的报文长度域的值减1,如果相等,则判定已经收到当前报文的头微片所有数据微片并跳转执行步骤2.6);否则如果少于保存的报文长度域的值减1,跳转执行步骤2.2)从下一拍继续接收数据微片;
2.6)置位报文尾定位成功标志位,通过报文头定位成功标志位、报文尾定位成功标志位确定所接收报文的报文边界,从而完成接收报文的边界定位。
优选地,所述步骤2.3)的详细步骤如下:
2.3.1)读取所述两根信号线组成的差分信号对合成的报文头标识信号,如果报文头标识信号为逻辑1,则输出有效信号;否则如果报文头标识信号为逻辑0,则输出无效信号;
2.3.2)读取报文微片数据中的物理帧标识域,判断物理帧标识域的值是否等于预先设置的值,如果等于预先设置的值,则输出有效信号;否则如果不等于预先设置的值,则输出无效信号;
2.3.3)将报文微片数据中除CRC校验域以外的数据进行CRC编码,将CRC编码结果与CRC校验域的值进行比较,若相等则判定CRC校验正确并输出有效信号,若不相等则判定CRC校验错误并输出无效信号;
2.3.4)将步骤2.3.1)、步骤2.3.2)、步骤2.3.3)三者的输出信号进行与运算,如果与运算的结果为有效信号,则识别头微片成功,判定当前的报文微片数据为头微片;如果与运算的结果为无效信号,则识别头微片失败,判定当前的报文微片数据为数据微片或者无效微片。
本发明还提供一种面向板级多通道并行总线的报文边界定位装置,包括:
报文数据发送单元,用于以报文作为总线物理层传输的基本单位,将构成报文的头微片和多个数据微片依次输出,所述头微片中的报文长度域记载有一个完整报文的数据微片数量,同时额外使用两根信号线组成的差分信号对来对输出的头微片或者数据微片附加上报文头标识信号;
报文数据接收单元,用于将各通道接收到的数据组成报文微片数据,根据接收到的报文头标识信号、报文微片数据来识别头微片,如果识别头微片成功设置报文的起始边界并启动预设的报文微片计数器,将此后每一拍接收的报文微片数据作为数据微片进行计数,如果收到数据微片的数量达到所述头微片中报文长度域记载报文的数据微片数量,则设置报文的结束边界,从而完成接收报文的边界定位。
优选地,所述报文数据接收单元包括:
标志位清除单元,用于清除预设的报文头定位成功标志位和报文尾定位成功标志位;
接收数据对齐逻辑,用于对接收到各通道的报文数据进行延迟偏斜纠正得到报文微片数据,所述报文微片数据包括数据域、物理帧标识域和CRC校验域;
头微片识别定位模块,用于根据报文头标识信号、报文微片数据中的物理帧标识域和CRC校验域三者共同识别当前的报文微片数据是否为头微片;
报文头定界逻辑,用于判断头微片识别结果,如果识别头微片成功则判定收到的报文微片数据为头微片,置位报文头定位成功标志位,判断头微片中报文长度域的值,当头微片的报文长度域的值大于1时,保存头微片中报文长度域的值,同时启动预设的报文微片计数器并初始化为0,从下一拍跳转执行报文长度计数器逻辑;当头微片的报文长度域的值等于1时,判定报文为仅包含一个头微片的报文,置位报文尾定位成功标志位,然后退出;如果识别头微片不成功,则判定未收到正确报文头微片,跳转执行接收数据对齐逻辑从下一拍继续接收数据微片;
报文长度计数器逻辑,用于使用报文微片计数器对收到的数据微片进行计数,每收到一个数据微片,将报文微片计数器加1;同时判断报文微片计数器对数据微片的计数值是否等于保存的报文长度域的值减1,如果等于保存的报文长度域的值减1,则判定已经收到当前报文的头微片所有数据微片并跳转执行报文尾定界逻辑;否则如果少于保存的报文长度域的值减1,跳转执行接收数据对齐逻辑从下一拍继续接收数据微片;
报文尾定界逻辑,用于置位报文尾定位成功标志位,通过报文头定位成功标志位、报文尾定位成功标志位确定所接收报文的报文边界,并在下一拍清除报文头定位成功标志位和报文尾定位成功标志位。
优选地,所述头微片识别定位模块包括:
报文头标识判断逻辑,用于读取所述两根信号线组成的差分信号对合成的报文头标识信号,如果报文头标识信号为逻辑1,则输出有效信号;否则如果报文头标识信号为逻辑0,则输出无效信号;
物理帧标识判断逻辑,用于读取报文微片数据中的物理帧标识域,判断物理帧标识域的值是否等于预先设置的值,如果等于预先设置的值,则输出有效信号;否则如果不等于预先设置的值,则输出无效信号;
CRC校验结果判断逻辑,用于将报文微片数据中除CRC校验域以外的数据进行CRC编码,将CRC编码结果与CRC校验域的值进行比较,若相等则判定CRC校验正确并输出有效信号,若不相等则判定CRC校验错误并输出无效信号;
与运算逻辑,用于将报文头标识判断逻辑、物理帧标识判断逻辑、CRC校验结果判断逻辑三者的输出信号进行与运算,如果与运算的结果为有效信号,则识别头微片成功,判定当前的报文微片数据为头微片;如果与运算的结果为无效信号,则识别头微片失败,判定当前的报文微片数据为数据微片或者无效微片。
本发明面向板级多通道并行总线的报文边界定位方法具有下述优点:
1、本发明在发送报文时以报文作为总线物理层传输的基本单位,将头微片和多个数据微片依次输出,由于以报文而非微片作为总线物理层传输的基本单位,不需要为每个微片增加特殊的物理帧标识信息,只需要以报文为单位在头微片中增加物理帧标识信息,减少了每个报文中物理帧标识所占的位数,提高了报文的有效数据载荷;同时本发明使用两根信号线组成的差分信号作为对输出的头微片或者数据微片附加的报文头标识信号,用于报文边界定位,虽然使用差分信号传输报文头标识,相对传统的仅使用一根单端信号的传输方式额外增加了一根信号线,但是通过利用报文长度信息进行报文尾定位,可以取消传统定位方法中为每个微片都增加的报文头域和报文尾域,实际上并没有额外增加用于报文边界定位的控制信号的信号线数目。因此,本发明能够总体上减少额外的控制信息负载,提高总线带宽的利用率,特别是对于多通道并行总线来说,能够减少芯片PAD引腿和板级互连线数目,降低芯片物理设计和板级布局布线的难度,提高数据采样窗口的大小,减少传输频率提升的限制,最终提高总线带宽。
2、本发明使用两根信号线组成的差分信号作为对输出的头微片或者数据微片附加的报文头标识信号,同时通过在总线物理层同时进行对报文头标识的有效判断、对报文头物理帧标识的有效判断和对报文头中数据的CRC校验,对报文的头微片进行正确性判断和定位。差分信号具有比单端信号更高的抗干扰能力,而且通过对三个条件的有效性同时进行判断来识别头微片能够进一步提高对报文头正确性判断和报文边界定位的可靠性。
3、针对传统的方法可能使得接收方链路层收到报文头微片、数据微片或者尾微片(报文的最后一个微片)缺失的报文,还需要额外的报文补全逻辑才能够保证最终获得正确格式的报文,本发明在接收报文时,将各通道接收到的数据组成报文微片数据,根据接收到的报文头标识信号、报文微片数据的物理帧标识域和CRC校验域来识别头微片,如果识别头微片成功设置报文的起始边界并启动报文微片计数器,将此后每一拍接收的报文微片数据作为数据微片进行计数,如果收到数据微片的数量达到头微片的报文长度域记载报文的数据微片数量,则设置报文的结束边界,从而完成接收报文的边界定位,对报文的尾微片的判断基于对报文的头微片的正确判断,使用经过校验的头微片的长度域信息进行报文的尾微片的定位,不仅能够提高报文尾的定位可靠性,也能够确保定位后的报文均符合报文的正确格式,不会出现数据微片和尾微片丢失的情况。
本发明面向板级多通道并行总线的报文边界定位装置为本发明面向板级多通道并行总线的报文边界定位方法完全对应的装置,因此也具有与本发明面向板级多通道并行总线的报文边界定位方法相同的优点,故在此不再赘述。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例方法中发送设备和接收设备之间的信号连接示意图。
图3为本发明实施例方法中报文的格式示意图。
图4为本发明实施例方法步骤2)接收报文并进行边界定位的流程示意图。
图5为本发明实施例装置的框架结构示意图。
图6为本发明实施例装置中报文数据接收单元中边界定位涉及的主要判断流程示意图。
具体实施方式
如图1所示,本实施例面向板级多通道并行总线的报文边界定位方法的实施步骤如下:
1)以报文作为总线物理层传输的基本单位,将构成报文的头微片和多个数据微片依次输出,所述头微片中的报文长度域记载有一个完整报文的数据微片数量,同时额外使用两根信号线组成的差分信号对来对输出的头微片或者数据微片附加上报文头标识信号;
2)将各通道接收到的数据组成报文微片数据,根据接收到的报文头标识信号、报文微片数据来识别头微片,如果识别头微片成功设置报文的起始边界并启动预设的报文微片计数器,将此后每一拍接收的报文微片数据作为数据微片进行计数,如果收到数据微片的数量达到所述头微片中报文长度域记载报文的数据微片数量,则设置报文的结束边界,从而完成接收报文的边界定位。
本实施例方法基于并行总线报文传输方式,将报文封装为头微片和多个数据微片,以报文作为总线物理层传输的基本单位,将头微片和多个数据微片依次输出,且使用差分信号对来为微片附加报文头标识信号。其中,头微片包括物理帧标识域、报文长度域、报文控制信息域和CRC校验域,头微片的报文长度域记载报文中所有微片的数量(包含头微片和数据微片),头微片和数据微片的宽度均为多通道并行总线所有通道总的数据位宽;以报文作为总线物理层传输的基本单位,将头微片和多个数据微片依次输出,其中报文头标识信号用于报文边界定位。
如图2所示,应用本实施例面向板级多通道并行总线的报文边界定位方法的发送设备与接收设备之间包括一组差分信号对和多组并行总线通道(通道0~通道N-1,其中通道i的通道编号i∈[0,N-1],N为多通道并行总线的通道数)。本实施例中,差分信号对包含报文头n极和报文头p极两根信号线,用于传输对输出的头微片或者数据微片附加上的报文头标识信号,每个通道包含从发送设备到接收设备的一位的发送时钟和多位的数据总线,假设多通道并行总线的总位宽为W(不包括时钟信号),则每组并行总线通道中的数据总线的位宽为W/N(不包括时钟信号)。
如图3所示,本实施例中将待发送的报文封装为头微片和多个数据微片(数据微片1~数据微片M-1),其中头微片包括物理帧标识域、报文长度域、报文控制信息域和CRC校验域(CRC_HEAD),头微片的报文长度域记载报文中所有微片的数量(包含头微片和数据微片),其中数据微片包括报文数据域和CRC校验域,头微片和数据微片的宽度均为多通道并行总线所有通道总的数据位宽W。数据微片1~数据微片M-1分别携带有报文数据1~报文数据M-1,每一个数据微片还带有一个CRC校验域(CRC_j),用于对每一个数据微片进行CRC校验,报文头和报文数据1~报文数据M-1即构成报文的完整内容。本实施例中M表示数据微片的个数,当报文包含的数据微片个数大于1(即M大于1)时,一个完整的报文包含头尾片、数据微片j(其中j∈[1,M-1],M为报文包含的微片总数),尾微片是最后一个数据微片,即数据微片M-1;当M等于1时,报文中不包含数据微片,仅包含一个头微片,尾微片和头尾片重合。当报文包含的微片个数大于1,尾微片的格式就是数据微片M-1的格式;当报文包含的微片个数等于1时,尾微片的格式就是头微片的格式。报文头标识为接收方通过解析报文头差分信号后合成的报文头标识位,当该位为逻辑1时指示当前收到的微片为报文的头微片,为逻辑0时指示收到报文的数据微片或者无效微片。物理帧标识域用于保存发送方在发送报文的头微片时填充到头微片中的特殊的报文物理帧标识信息,本实施例中物理帧标识域为8位,填充8'hAA作为物理帧标识,接收方每个时钟周期都对接收到的微片的物理帧标识域进行检测,若该域的值等于8'hAA,则认为收到有效的物理帧标识,否则认为未收到有效物理帧标识。报文长度域用于保存发送方在发送报文的头微片时填充到头微片中的报文长度数据信息,接收方在完成对报文的头微片的定位后,继续通过报文该长度信息对报文的尾微片进行定位,若报文长度的值大于1,则保存报文长度域的值,并启动报文微片计数器,从下一个时钟周期开始,每个时钟周期计数器加1,直到计数器的值等于保存的报文长度值减1,则认为整个报文的所有微片接收完毕,当前收到的微片为报文的最后一个微片,即尾微片,对报文的尾微片的定位完成;接收方收到报文头微片后,若报文长度的值等于1,则说明当前报文仅包含一个微片,该微片既是头微片,也是尾微片,对报文尾微片和头尾片的定位同时完成。头微片中的CRC校验域(CRC_HEAD)用于保存对头微片中除了CRC_HEAD域以外的所有报文头微片的数据进行CRC编码后获得的CRC校验信息,接收方接收到微片后,对除了CRC_HEAD域以外的所有报文头微片的数据进行CRC编码,编码结果同当前微片中的CRC_HEAD域的值进行比较,若相等则认为CRC校验正确,接收到的头微片数据有效,若不相等则认为CRC校验错误,接收到的头微片数据有数据错。每一个数据微片的CRC校验信息CRC_j用于保存对数据微片中除了CRC_j域以外的所有数据微片中报文数据j进行CRC编码后获得的CRC校验信息,其中j∈[1,M-1],M为报文包含的微片总数,接收方接收到微片后,对除了CRC_j域以外的所有报文数据微片的报文数据j进行CRC编码,编码结果同当前微片中的CRC_j域的值进行比较,若相等则认为CRC校验正确,接收到的数据微片数据有效,若不相等则认为CRC校验错误,接收到的数据微片数据有数据错。
如图4所示,步骤2)的详细步骤如下:
2.1)清除预设的报文头定位成功标志位和报文尾定位成功标志位;
2.2)对接收到各通道的报文数据进行延迟偏斜纠正得到报文微片数据,所述报文微片数据包括数据域、物理帧标识域和CRC校验域;
2.3)根据报文头标识信号、报文微片数据中的物理帧标识域和CRC校验域三者共同识别当前的报文微片数据是否为头微片;
2.4)判断头微片识别结果,如果识别头微片成功则判定收到的报文微片数据为头微片,置位报文头定位成功标志位,判断头微片中报文长度域的值,当头微片的报文长度域的值大于1时,保存头微片中报文长度域的值,同时启动预设的报文微片计数器并初始化为0,从下一拍跳转执行步骤2.5);当头微片的报文长度域的值等于1时,判定报文为仅包含一个头微片的报文,置位报文尾定位成功标志位,然后退出;如果识别头微片不成功,则判定未收到正确报文头微片,跳转执行步骤2.2)从下一拍继续接收数据微片;
2.5)继续对接收报文微片数据,使用报文微片计数器对收到的数据微片进行计数,每收到一个数据微片,将报文微片计数器加1;判断报文微片计数器对数据微片的计数值是否等于保存的报文长度域的值减1,如果相等,则判定已经收到当前报文的头微片所有数据微片并跳转执行步骤2.6);否则如果少于保存的报文长度域的值减1,从下一拍重新执行步骤2.5);
2.6)置位报文尾定位成功标志位,通过报文头定位成功标志位、报文尾定位成功标志位确定所接收报文的报文边界,跳转执行步骤2.2)从下一拍继续接收数据微片。
本实施例中,步骤2.3)的详细步骤如下:
2.3.1)读取所述两根信号线组成的差分信号对合成的报文头标识信号,如果报文头标识信号为逻辑1,则输出有效信号;否则如果报文头标识信号为逻辑0,则输出无效信号;
2.3.2)读取报文微片数据中的物理帧标识域,判断物理帧标识域的值是否等于预先设置的值,如果等于预先设置的值,则输出有效信号;否则如果不等于预先设置的值,则输出无效信号;
2.3.3)将报文微片数据中除CRC校验域以外的数据进行CRC编码,将CRC编码结果与CRC校验域的值进行比较,若相等则判定CRC校验正确并输出有效信号,若不相等则判定CRC校验错误并输出无效信号;
2.3.4)将步骤2.3.1)、步骤2.3.2)、步骤2.3.3)三者的输出信号进行与运算,如果与运算的结果为有效信号,则识别头微片成功,判定当前的报文微片数据为头微片;如果与运算的结果为无效信号,则识别头微片失败,判定当前的报文微片数据为数据微片或者无效微片。如图5所示,本实施例面向板级多通道并行总线的报文边界定位装置包括:
报文数据发送单元1,用于以报文作为总线物理层传输的基本单位,将构成报文的头微片和多个数据微片依次输出,所述头微片中的报文长度域记载有一个完整报文的数据微片数量,同时额外使用两根信号线组成的差分信号对来对输出的头微片或者数据微片附加上报文头标识信号;
报文数据接收单元2,用于将各通道接收到的数据组成报文微片数据,根据接收到的报文头标识信号、报文微片数据来识别头微片,如果识别头微片成功设置报文的起始边界并启动预设的报文微片计数器,将此后每一拍接收的报文微片数据作为数据微片进行计数,如果收到数据微片的数量达到所述头微片中报文长度域记载报文的数据微片数量,则设置报文的结束边界,从而完成接收报文的边界定位。
如图5所示,本实施例报文数据接收单元2包括:
标志位清除单元21,用于清除预设的报文头定位成功标志位和报文尾定位成功标志位;
接收数据对齐逻辑22,用于对接收到各通道的报文数据进行延迟偏斜纠正得到报文微片数据;
头微片识别定位模块23,用于根据报文头标识信号、报文微片数据的物理帧标识域和CRC校验域三者共同识别当前的报文微片数据是否为头微片;
报文头定界逻辑24,用于判断头微片识别结果,如果识别头微片成功则判定收到的报文微片数据为头微片,置位报文头定位成功标志位,判断头微片中报文长度域的值,当头微片的报文长度域的值大于1时,保存头微片中报文长度域的值,同时启动预设的报文微片计数器并初始化为0,从下一拍跳转执行报文长度计数器逻辑25;当头微片的报文长度域的值等于1时,判定报文为仅包含一个头微片的报文,置位报文尾定位成功标志位,然后退出;如果识别头微片不成功,则判定未收到正确报文头微片,跳转执行接收数据对齐逻辑22从下一拍继续接收数据微片;
报文长度计数器逻辑25,用于使用报文微片计数器对收到的数据微片进行计数,每收到一个数据微片,将报文微片计数器加1;同时判断报文微片计数器对数据微片的计数值是否等于保存的报文长度域的值减1,如果等于保存的报文长度域的值减1,则判定已经收到当前报文的头微片所有数据微片并跳转执行报文尾定界逻辑26;否则如果少于保存的报文长度域的值减1,跳转执行接收数据对齐逻辑22从下一拍继续接收数据微片;
报文尾定界逻辑26,用于置位报文尾定位成功标志位,通过报文头定位成功标志位、报文尾定位成功标志位确定所接收报文的报文边界,并在下一拍清除报文头定位成功标志位和报文尾定位成功标志位
如图5所示,本实施例头微片识别定位模块23包括:
报文头标识判断逻辑231,用于读取所述两根信号线组成的差分信号对合成的报文头标识信号,如果报文头标识信号为逻辑1,则输出有效信号;否则如果报文头标识信号为逻辑0,则输出无效信号;
物理帧标识判断逻辑232,用于读取报文微片数据的物理帧标识域,判断物理帧标识域的值是否等于预先设置的值,如果等于预先设置的值,则输出有效信号;否则如果不等于预先设置的值,则输出无效信号;
CRC校验结果判断逻辑233,用于将报文微片数据中除CRC校验域以外的数据进行CRC编码,将CRC编码结果与CRC校验域的值进行比较,若相等则判定CRC校验正确并输出有效信号,若不相等则判定CRC校验错误并输出无效信号;
与运算逻辑234,用于将报文头标识判断逻辑231、物理帧标识判断逻辑232、CRC校验结果判断逻辑233三者的输出信号进行与运算,如果与运算的结果为有效信号,则识别头微片成功,判定当前的报文微片数据为头微片;如果与运算的结果为无效信号,则识别头微片失败,判定当前的报文微片数据为数据微片或者无效微片。
参见图5,本实施例的报文数据接收单元2包括标志位清除单元21、接收数据对齐逻辑22、头微片识别定位模块23、报文头定界逻辑24、报文长度计数器逻辑25和报文尾定界逻辑26,其中头微片识别定位模块23包括报文头标识判断逻辑231、物理帧标识判断逻辑232、CRC校验结果判断逻辑233。标志位清除单元21用于在接收报文前清除报文头定位成功标志位和报文尾定位成功标志位;报文头定位成功标志位用于保存对报文的头微片的定位结果,若定位成功,则置1,若定位不成功,则置0,每当一个报文的报文头和报文尾都定位完成,下一拍进行新的报文的边界定位时,要清空报文头定位成功标志位;报文尾定位成功标志位用于保存对报文的尾微片的定位结果,若定位成功,则置1,若定位不成功,则置0,每当一个报文的报文头和报文尾都定位完成,下一拍进行新的报文的边界定位时,要清空报文尾定位成功标志位。接收数据对齐逻辑22接收来自报文头n极、报文头p极的报文头差分信号对,各通道(通道0~通道N-1)的发送时钟信号(发送时钟0~发送时钟N-1)和数据总线信号(数据总线0~数据总线N-1),输出经过通道延迟偏斜纠正后的报文头标识信号和报文微片数据。报文头标识判断逻辑231、物理帧标识判断逻辑232、CRC校验结果判断逻辑233和报文长度计数器逻辑25与接收数据对齐逻辑22相连,分别接收来自接收数据对齐逻辑22的报文头标识、物理帧标识、CRC_HEAD信息和报文长度。与运算逻辑234的三个输入端分别连接报文头标识判断逻辑231、物理帧标识判断逻辑232、CRC校验结果判断逻辑233的输出信号,输出端连接报文头定界逻辑24。报文尾定界逻辑26的输入分别于报文头定界逻辑24和报文长度计数器逻辑25的输出相连。报文头定位成功标志位受报文头定界逻辑24和标志位清除单元21控制,报文尾定位成功标志位受报文尾定界逻辑26和标志位清除单元21控制。接收数据对齐逻辑22接收来自报文头n极、报文头p极的报文头差分信号对,各通道的发送时钟信号和数据总线信号,输出经过通道延迟偏斜纠正后的报文头标识信号和报文微片数据。报文头标识判断逻辑231接收来自接收数据对齐逻辑22的报文头标识信号,当该信号为逻辑1时认为当前收到的微片为报文的头微片,输出判断有效信号;为逻辑0时认为收到报文的数据微片或者无效微片,输出判断无效信号。物理帧标识判断逻辑232接收来自接收数据对齐逻辑22的物理帧标识信号,每个时钟周期都对接收到物理帧标识信号的值进行检测,若该域的值等于预先设置的值(例如设置有效标识为8'hAA),则认为收到有效的物理帧标识,输出有效信号;否则认为未收到有效物理帧标识,输出无效信号。CRC校验结果判断逻辑233接收来自接收数据对齐逻辑22的CRC_HEAD信号,对除了CRC_HEAD域以外的所有报文头微片的数据进行CRC编码,编码结果同CRC_HEAD的值进行比较,若相等则认为CRC校验正确,输出有效信号;若不相等则认为CRC校验错误,输出无效信号。与运算逻辑234接收分别来自报文头标识判断逻辑231、物理帧标识判断逻辑232和CRC校验结果判断逻辑233的输出有效信号进行逻辑与(&)操作,输出逻辑与操作的结果,若三个输入均为有效,则输出有效信号;若三个输入有任何一个无效,则输出无效信号。报文长度计数器逻辑25接收来自接收数据对齐逻辑22的报文长度信号,若报文长度信号的值大于1,则启动报文微片计数器,从下一个时钟周期开始,每个时钟周期计数器加1,直到计数器的值等于报文长度域中的报文长度值减1,输出有效信号,然后在下一个时钟周期计数器复位到初始值0;若计数器的值小于报文长度值减1,则输出无效信号。若报文长度信号的值等于1,不需要启动报文微片计数器,直接输出有效信号。报文头定界逻辑24接收来自与运算逻辑234的输出信号,若与运算逻辑234的输出为逻辑1,则报文定界逻辑认为成功识别到一个正确的报文头,置位报文头定位成功标志位,输出头微片识别成功信号;若与运算逻辑234的输出信号为逻辑0,则报文定界逻辑认为没有识别到一个正确的报文头,输出头微片识别失败信号,继续进行下一个报文头的定界。报文尾定界逻辑26接收来自报文长度计数器逻辑25的输出信号,同时接收来自报文头定界逻辑24的报文头是否识别成功的信号,若接收到报文头识别成功的信号,则开始判断报文长度计数器逻辑的输出信号是否有效,若有效,则认为当前收到的微片为报文的最后一个微片,即尾微片,对报文的尾微片的定位完成,置位报文尾定位成功标志位,输出尾微片识别成功信号;若接收到的报文长度计数器逻辑的输出信号为无效,则下一拍继续等待其为有效,报文尾定界逻辑26在当前拍输出尾微片识别失败信号。
如图6所示,本实施例中报文数据接收单元2通过报文头定位成功标志位、报文尾定位成功标志位确定所接收报文的报文边界,涉及定位成功标志位(报文头定位成功标志位、报文尾定位成功标志位)的关键判断步骤为:S1)标志位清除单元21清报文头、报文尾定位成功标志位,用于启动新的对报文边界的定位;S2)对报文头标识判断逻辑231的输出进行检查,若输出为无效,则跳转执行步骤S8);S3)对物理帧标识判断逻辑232的输出进行检查,若输出为无效,则跳转执行步骤S8);S4)对CRC校验结果判断逻辑233的输出进行检查,若输出为无效,则跳转执行步骤S8);S5)报文头定界逻辑24置位报文头定位成功标志位;S6)报文长度计数器逻辑25对报文长度计数器逻辑的输出进行检查,若输出为无效,则跳转执行步骤S8);S7)报文尾定界逻辑26置位报文尾定位成功标志位;S8)等待到下一个时钟周期;S9)判断报文头定位成功标志位是否有效,若无效,则跳转执行步骤S1);S10)判断报文尾定位成功标志位是否有效,若无效,则跳转执行步骤S6),若有效,则跳转执行步骤S1)。综上,本实施例以报文而非微片作为总线物理层传输的基本单位,减少以微片为单位时物理帧标识所需要的数据线的数目,通过用差分信号线实现的报文头标识,取消报文尾标识,在不增加报文控制信息占用的数据线数目的情况下,通过在总线物理层同时进行对报文头标识的有效判断、对报文头物理帧标识的有效判断和对报文头数据的CRC校验,结合报文头微片中的报文长度域信息,在进一步提高可靠性的情况下实现对报文边界的定位。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种面向板级多通道并行总线的报文边界定位方法,其特征在于实施步骤如下:
1)以报文作为总线物理层传输的基本单位,将构成报文的头微片和多个数据微片依次输出,所述头微片中的报文长度域记载有一个完整报文的数据微片数量,同时额外使用两根信号线组成的差分信号对来对输出的头微片或者数据微片附加上报文头标识信号;
2)将各通道接收到的数据组成报文微片数据,根据接收到的报文头标识信号、报文微片数据来识别头微片,如果识别头微片成功设置报文的起始边界并启动预设的报文微片计数器,将此后每一拍接收的报文微片数据作为数据微片进行计数,如果收到数据微片的数量达到所述头微片中报文长度域记载报文的数据微片数量,则设置报文的结束边界,从而完成接收报文的边界定位;
所述步骤2)的详细步骤如下:
2.1)清除预设的报文头定位成功标志位和报文尾定位成功标志位;
2.2)对接收到各通道的报文数据进行延迟偏斜纠正得到报文微片数据,所述报文微片数据包括数据域、物理帧标识域和CRC校验域;
2.3)根据报文头标识信号、报文微片数据中的物理帧标识域和CRC校验域三者共同识别当前的报文微片数据是否为头微片;
2.4)判断头微片识别结果,如果识别头微片成功则判定收到的报文微片数据为头微片,置位报文头定位成功标志位,判断头微片中报文长度域的值,当头微片的报文长度域的值大于1时,保存头微片中报文长度域的值,同时启动预设的报文微片计数器并初始化为0,从下一拍跳转执行步骤2.5);当头微片的报文长度域的值等于1时,判定报文为仅包含一个头微片的报文,置位报文尾定位成功标志位,然后退出;如果识别头微片不成功,则判定未收到正确报文头微片,跳转执行步骤2.2)从下一拍继续接收数据微片;
2.5)继续对接收报文微片数据,使用报文微片计数器对收到的数据微片进行计数,每收到一个数据微片,将报文微片计数器加1;判断报文微片计数器对数据微片的计数值是否等于保存的报文长度域的值减1,如果相等,则判定已经收到当前报文的头微片所有数据微片并跳转执行步骤2.6);否则如果少于保存的报文长度域的值减1,跳转执行步骤2.2)从下一拍继续接收数据微片;
2.6)置位报文尾定位成功标志位,通过报文头定位成功标志位、报文尾定位成功标志位确定所接收报文的报文边界,从而完成接收报文的边界定位。
2.根据权利要求1所述的面向板级多通道并行总线的报文边界定位方法,其特征在于,所述步骤2.3)的详细步骤如下:
2.3.1)读取所述两根信号线组成的差分信号对合成的报文头标识信号,如果报文头标识信号为逻辑1,则输出有效信号;否则如果报文头标识信号为逻辑0,则输出无效信号;
2.3.2)读取报文微片数据中的物理帧标识域,判断物理帧标识域的值是否等于预先设置的值,如果等于预先设置的值,则输出有效信号;否则如果不等于预先设置的值,则输出无效信号;
2.3.3)将报文微片数据中除CRC校验域以外的数据进行CRC编码,将CRC编码结果与CRC校验域的值进行比较,若相等则判定CRC校验正确并输出有效信号,若不相等则判定CRC校验错误并输出无效信号;
2.3.4)将步骤2.3.1)、步骤2.3.2)、步骤2.3.3)三者的输出信号进行与运算,如果与运算的结果为有效信号,则识别头微片成功,判定当前的报文微片数据为头微片;如果与运算的结果为无效信号,则识别头微片失败,判定当前的报文微片数据为数据微片或者无效微片。
3.一种面向板级多通道并行总线的报文边界定位装置,其特征在于包括:
报文数据发送单元(1),用于以报文作为总线物理层传输的基本单位,将构成报文的头微片和多个数据微片依次输出,所述头微片中的报文长度域记载有一个完整报文的数据微片数量,同时额外使用两根信号线组成的差分信号对来对输出的头微片或者数据微片附加上报文头标识信号;
报文数据接收单元(2),用于将各通道接收到的数据组成报文微片数据,根据接收到的报文头标识信号、报文微片数据来识别头微片,如果识别头微片成功设置报文的起始边界并启动预设的报文微片计数器,将此后每一拍接收的报文微片数据作为数据微片进行计数,如果收到数据微片的数量达到所述头微片中报文长度域记载报文的数据微片数量,则设置报文的结束边界,从而完成接收报文的边界定位;
所述报文数据接收单元(2)包括:
标志位清除单元(21),用于清除预设的报文头定位成功标志位和报文尾定位成功标志位;
接收数据对齐逻辑(22),用于对接收到各通道的报文数据进行延迟偏斜纠正得到报文微片数据,所述报文微片数据包括数据域、物理帧标识域和CRC校验域;
头微片识别定位模块(23),用于根据报文头标识信号、报文微片数据中的物理帧标识域和CRC校验域三者共同识别当前的报文微片数据是否为头微片;
报文头定界逻辑(24),用于判断头微片识别结果,如果识别头微片成功则判定收到的报文微片数据为头微片,置位报文头定位成功标志位,判断头微片中报文长度域的值,当头微片的报文长度域的值大于1时,保存头微片中报文长度域的值,同时启动预设的报文微片计数器并初始化为0,从下一拍跳转执行报文长度计数器逻辑(25);当头微片的报文长度域的值等于1时,判定报文为仅包含一个头微片的报文,置位报文尾定位成功标志位,然后退出;如果识别头微片不成功,则判定未收到正确报文头微片,跳转执行接收数据对齐逻辑(22)从下一拍继续接收数据微片;
报文长度计数器逻辑(25),用于使用报文微片计数器对收到的数据微片进行计数,每收到一个数据微片,将报文微片计数器加1;同时判断报文微片计数器对数据微片的计数值是否等于保存的报文长度域的值减1,如果等于保存的报文长度域的值减1,则判定已经收到当前报文的头微片所有数据微片并跳转执行报文尾定界逻辑(26);否则如果少于保存的报文长度域的值减1,跳转执行接收数据对齐逻辑(22)从下一拍继续接收数据微片;
报文尾定界逻辑(26),用于置位报文尾定位成功标志位,通过报文头定位成功标志位、报文尾定位成功标志位确定所接收报文的报文边界,并在下一拍清除报文头定位成功标志位和报文尾定位成功标志位。
4.根据权利要求3所述的面向板级多通道并行总线的报文边界定位装置,其特征在于,所述头微片识别定位模块(23)包括:
报文头标识判断逻辑(231),用于读取所述两根信号线组成的差分信号对合成的报文头标识信号,如果报文头标识信号为逻辑1,则输出有效信号;否则如果报文头标识信号为逻辑0,则输出无效信号;
物理帧标识判断逻辑(232),用于读取报文微片数据中的物理帧标识域,判断物理帧标识域的值是否等于预先设置的值,如果等于预先设置的值,则输出有效信号;否则如果不等于预先设置的值,则输出无效信号;
CRC校验结果判断逻辑(233),用于将报文微片数据中除CRC校验域以外的数据进行CRC编码,将CRC编码结果与CRC校验域的值进行比较,若相等则判定CRC校验正确并输出有效信号,若不相等则判定CRC校验错误并输出无效信号;
与运算逻辑(234),用于将报文头标识判断逻辑(231)、物理帧标识判断逻辑(232)、CRC校验结果判断逻辑(233)三者的输出信号进行与运算,如果与运算的结果为有效信号,则识别头微片成功,判定当前的报文微片数据为头微片;如果与运算的结果为无效信号,则识别头微片失败,判定当前的报文微片数据为数据微片或者无效微片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410755259.7A CN104486208B (zh) | 2014-12-11 | 2014-12-11 | 面向板级多通道并行总线的报文边界定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410755259.7A CN104486208B (zh) | 2014-12-11 | 2014-12-11 | 面向板级多通道并行总线的报文边界定位方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104486208A CN104486208A (zh) | 2015-04-01 |
CN104486208B true CN104486208B (zh) | 2017-08-04 |
Family
ID=52760714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410755259.7A Active CN104486208B (zh) | 2014-12-11 | 2014-12-11 | 面向板级多通道并行总线的报文边界定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104486208B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112543167B (zh) * | 2019-09-20 | 2023-07-14 | 天翼电子商务有限公司 | 通信加密方法、系统、介质及装置 |
CN114884624B (zh) * | 2022-07-08 | 2022-12-09 | 广州思德医疗科技有限公司 | 数据处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067804A (zh) * | 2007-05-29 | 2007-11-07 | 山东大学 | 一种高速可配置扩展spi总线及其工作方法 |
CN101989954A (zh) * | 2010-11-16 | 2011-03-23 | 中兴通讯股份有限公司 | 报文分片方法和网络转发设备 |
EP2348691A1 (en) * | 2008-10-31 | 2011-07-27 | Huawei Technologies Co., Ltd. | Service transmission method and device used for service transmission |
CN102866980A (zh) * | 2012-07-31 | 2013-01-09 | 中国人民解放军国防科学技术大学 | 用于多核微处理器片上互连网络的网络通信胞元 |
CN103914427A (zh) * | 2014-04-14 | 2014-07-09 | 中国人民解放军国防科学技术大学 | 基于三根物理互连线的集成电路片上通讯方法及装置 |
-
2014
- 2014-12-11 CN CN201410755259.7A patent/CN104486208B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067804A (zh) * | 2007-05-29 | 2007-11-07 | 山东大学 | 一种高速可配置扩展spi总线及其工作方法 |
EP2348691A1 (en) * | 2008-10-31 | 2011-07-27 | Huawei Technologies Co., Ltd. | Service transmission method and device used for service transmission |
CN101989954A (zh) * | 2010-11-16 | 2011-03-23 | 中兴通讯股份有限公司 | 报文分片方法和网络转发设备 |
CN102866980A (zh) * | 2012-07-31 | 2013-01-09 | 中国人民解放军国防科学技术大学 | 用于多核微处理器片上互连网络的网络通信胞元 |
CN103914427A (zh) * | 2014-04-14 | 2014-07-09 | 中国人民解放军国防科学技术大学 | 基于三根物理互连线的集成电路片上通讯方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104486208A (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170200482A1 (en) | Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communication | |
CN104954096B (zh) | 一种一主多从的高速同步串行通信数据传输方法 | |
EP2036095B1 (en) | Memory device with speculative commands to memory core | |
US7243173B2 (en) | Low protocol, high speed serial transfer for intra-board or inter-board data communication | |
US20070239900A1 (en) | Universal serial bus (USB) extension | |
CN105243044B (zh) | 基于串口的管理系统及管理方法 | |
RU2016120702A (ru) | Звено связи многокристальной интегральной схемы | |
KR20090077015A (ko) | 듀얼-모드 메모리 상호접속을 포함하는 메모리 제어기 | |
US20060209735A1 (en) | Auto realignment of multiple serial byte-lanes | |
CN103678209B (zh) | 基于串行外围设备接口总线的数据传输方法和系统 | |
CN101286358A (zh) | 具有错误检测/校正处理的系统和设备以及输出数据的方法 | |
CN105208034A (zh) | 一种spi总线与can总线协议转换电路及方法 | |
US7770095B2 (en) | Request processing between failure windows | |
CN104486208B (zh) | 面向板级多通道并行总线的报文边界定位方法及装置 | |
US20070005852A1 (en) | Graphical verification tool for packet-based interconnect bus | |
CN114610669B (zh) | 多路串口通信中实现时钟同步校准的方法及系统 | |
CN102567587A (zh) | Fpga互联装置及方法 | |
CN104536924A (zh) | 面向板级高速传输总线的多通道延迟斜偏纠正方法及装置 | |
CN106789295A (zh) | 一种SpaceWire总线通讯系统及其监视设备 | |
CN108170616B (zh) | 利用锁存器实现跨时钟域信号传输的系统 | |
US8792348B1 (en) | Serial link interface power control method and apparatus with selective idle data discard | |
CN103885844B (zh) | 基于角色变换的双口ram数据高速安全交互方法及装置 | |
CN103413003B (zh) | 一种序列传输、接收装置及方法 | |
CN107608927A (zh) | 一种支持全功能的lpc总线主机端口的设计方法 | |
CN104883286B (zh) | 一种基于fpga的blvds总线数据传送装置 |
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 |