CN104967504A - 链路数据保护的方法和装置 - Google Patents
链路数据保护的方法和装置 Download PDFInfo
- Publication number
- CN104967504A CN104967504A CN201510398739.7A CN201510398739A CN104967504A CN 104967504 A CN104967504 A CN 104967504A CN 201510398739 A CN201510398739 A CN 201510398739A CN 104967504 A CN104967504 A CN 104967504A
- Authority
- CN
- China
- Prior art keywords
- bag
- master data
- board
- data bag
- checking
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1614—Details of the supervisory signal using bitmaps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供链路数据保护的方法和装置。链路数据保护的方法,包括发送板卡发送附带序号和校验值的主数据包,接收板卡验证收到的主数据包的序号和校验值,根据验证结果进行处理。链路数据保护的装置,包括发送存储单元、发送仲裁单元、校验产生单元、校验确认单元、接收选择单元、接收存储单元及控制单元。本发明在硬件层面实现了链路数据的保护,保障了数据传输的正确性,不会因为链路上的某些异常情况造成数据传输错误,也不需要上层软件参与数据错误处理、重新传送数据等管理,有效减少了上层软件的压力。
Description
技术领域
本发明属于信息技术领域,具体说涉及一种链路数据保护的方法和装置。
背景技术
在信息技术的诸多领域里,数据板卡之间的高速通信越来越常见。例如,在存储技术领域,为云计算服务的存储设备,为了追求卓越的性能往往使用闪存进行数据存储,在负责网络处理的板卡和负责数据存储的板卡之间会存在大量的数据通信。板卡之间的通信常使用高速serdes(英文serializer(串行器)/deserializer(解串器)的合并简称)链路。高速serdes链路传输数据容易存在传输错误、接收方对数据流量不可预知、链路异常等问题,因此保证链路传输的正确性显得非常重要。
通常高速serdes链路只负责传输数据,并不保证数据正确,也不会在板卡之间出现数据拥堵时及时控制链路上的数据流量,更无法在链路出现异常时保证数据不丢失。在存储技术领域,如果出现数据包错误、数据包丢失或硬件设备受到干扰失灵等问题,会对存储请求造成致命影响。为了防止这样的问题出现,确保正确的数据传输,一般在上层软件层面对数据包进行标识、校验,数据流量过大时直接丢弃处理,然后发送请求消息,要求数据板卡重新传输。这样实际上是由上层系统来保证数据的正确性,会增加上层系统的数据处理及数据存储压力,另外还会导致整个数据通路延长,保障的风险加大。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
本发明提供一种链路数据保护的方法,该方法与数据板卡相关。
本发明所述的数据板卡,泛指能够传输数据(即发送或接收数据)的设备或装置。数据板卡为了实现传输数据的功能,相应的也要具备一定的数据处理、数据存储等其他功能。数据板卡之间传输数据时需要建立链路,处于链路上的正在发送或接收过程中的数据可以称为链路数据。数据板卡之间传输数据要遵照一定的通信协议。通信协议往往将数据分割为数据包,以数据包作为发送或接收数据的最小单位。数据板卡一般通过集成电路即硬件的方式实现,如果有必要也可以使用软件来虚拟数据板卡。
本发明涉及到发送板卡和接收板卡,这两个概念是相对于某数据的发送或接收过程而言的,是相对而非是绝对的概念。例如,数据板卡a将数据A发送给数据板卡b,同时从数据板卡c接收数据B,则数据板卡a相对于数据A和数据板卡b而言是发送板卡,相对于数据B和数据板卡c而言是接收板卡。
链路数据保护的方法,包括:发送板卡发送附带序号和校验值的主数据包,接收板卡验证收到的主数据包的序号和校验值,根据验证结果进行处理。
本发明所涉及的数据包,包括主数据包和验证包。数据板卡传输的数据包中,一类数据包是由根据数据板卡的功能设计“真正需要”发送或接收的数据形成的,这类数据包称为主数据包;而另一类数据包只是用来反馈主数据包是否传输成功,这类数据包称为验证包。本发明所述的发送板卡和接收板卡,基于主数据包进行定义,发送主数据包的板卡为发送板卡,接收主数据包的板卡为接收板卡。为了区别某个数据包是主数据包还是验证包,数据板卡为数据包设置了一个标识,本发明涉及的所有数据包都带有标识。
主数据包的序号,指为了验证主数据包是否传输成功而设置的数值。主数据包的序号最常见的生成规则是发送板卡发送的第一个主数据包的序号设为0,之后依次发送的主数据包的序号逐次增加1。
校验值,指对数据包中的数据进行校验计算后产生的数值。目前已经公开了非常多的数据校验算法,如crc16算法。发送板卡发送主数据包时进行一次校验计算得到校验值,将该校验值附带在主数据包中,接收板卡收到主数据包后再进行一次检验计算得到校验值,比较该校验值与主数据包中附带的校验值是否一致就可以得知主数据包中的数据在传输过程中是否发生了错误。
对于验证包,为了保证其数据的正确性,验证包也应附带校验值,校验值的生成方法及验证包的校验方法与主数据包相同。由于验证包是为了反馈主数据包是否传输成功,验证包不需要独立的序号,附带由其反馈信息的主数据包(即对应的主数据包)的序号即可,其对应的主数据包的序号也可以视为验证包的序号。
上述“根据验证结果进行处理”,包括如下几种处理方法:
如果接收板卡收到的主数据包的序号与序号生成规则一致,对主数据包数据计算得到的校验值与主数据包中附带的校验值一致,则接收板卡存储该主数据包并向发送板卡发送显示验证正确的验证包。
这种情况意味着主数据包中的数据正确,链路在数据传输过程中不存在错误,发送板卡向接收板卡发送数据包的过程将持续下去。
如果接收板卡收到的主数据包的序号与序号生成规则一致,对主数据包数据计算得到的校验值与主数据包中附带的校验值不一致,则接收板卡丢弃该主数据包并向发送板卡发送显示验证错误的验证包。
这种情况意味着主数据包在传输过程中不存在异常丢包,但主数据包中的数据产生了错误(这种错误可以称为比特错误,bit error)。发送板卡收到显示验证错误的验证包后,向接收板卡重新发送该主数据包。
如果接收板卡收到的主数据包的序号与序号生成规则不一致,则接收板卡丢弃该主数据包,不向发送板卡发送任何验证包。
这种情况意味着主数据包在传输过程中存在异常丢包。发送板卡未收到验证包达到一定时间后,将所有未收到对应验证包的主数据包重新向接收板卡发送(这称为timeout机制)。
除了上面几种情况外,链路还可能出现非正常断开、重新连接等异常情况,这会导致主数据包和验证包产生其他问题。这时相应的处理方法包括:
如果对验证包数据计算得到的校验值与验证包中附带的校验值不一致,发送板卡视为未收到验证包。数据传输过程中,主数据包可能产生比特错误,验证包同样可能产生比特错误。发送板卡收到验证包后也需要再计算一次校验值,如果对验证包数据计算得到的校验值与验证包中附带的校验值不一致,表明验证包中的数据产生了比特错误,此时发送板卡将该验证包直接丢弃,视为未收到验证包。这样处理,发送板卡可以启动timeout机制,保证主数据包的传输不存在问题。
如果接收板卡在收到某个主数据包并向发送板卡发送显示验证正确的验证包后又收到该主数据包,则丢弃后收到的该主数据包。出现这种情况表明验证包出现了丢包,发送板卡不知道接收板卡已经收到了正确的主数据包,通过timeout机制重新发送。此时接收板卡将后面又收到的该主数据包直接丢弃即可。
链路数据保护的方法,还包括:发送板卡主数据包的存储空间和接收板卡主数据包的存储空间相等。发送板卡在发送主数据包后未收到接收板卡对应的显示验证正确的验证包前,不删除该主数据包。
数据板卡之间发送或接收数据,应当实施必要的数据流量控制,特别是当数据板卡之间采用高速链路时。高速链路往往默认数据只要发出对方就可以接收,不进行数据流量控制会严重影响数据传输的安全性。如前所述,数据板卡也具有数据存储的功能,将发送板卡主数据包的存储空间和接收板卡主数据包的存储空间设计为相等,实现了发送数据和接收数据的对等,不会出现发送板卡发送的主数据包过多,接收板卡无法接收只能丢弃的情况。同时,发送板卡在发送主数据包后未收到接收板卡对应的显示验证正确的验证包前,不删除该主数据包释放其存储空间,这样进一步使得接收板卡未能正确接收主数据包时发送板卡因存储空间的限制无法继续大量发送主数据包,实现了对数据流量的控制,保证了链路的运行效率。
链路数据保护的方法,还包括:数据板卡(发送板卡或接收板卡)对于待发送的主数据包和验证包,优先发送验证包。
由于发送板卡和接收板卡是一个相对的概念,有时可能出现某个数据板卡同时作为发送板卡发送主数据包和接收板卡发送验证包的情况,此时两种数据包的发送就形成了竞争关系,需要仲裁解决发送的优先级。由于验证包关系到其他板卡主数据包的发送,对由所有数据板卡构成的板卡体系数据传输的影响较大,对于同时提交的待发送的主数据包和验证包,应当优先发送验证包。特别注意,该仲裁规则只在所有数据包都为待发送状态时方有效。如果主数据包开始发送后验证包的发送请求才提交,为了保证数据包的完整性和数据传输的稳定性,不允许中断主数据包的发送,只有当主数据包发送完成后才能发送验证包。
链路数据保护的方法,还包括:发送板卡和接收板卡采用同源时钟。当数据板卡之间采用高速链路时,发送板卡和接收板卡使用同源时钟会大大减少链路的时钟偏移(skew),从而提高板卡体系的稳定性。
链路数据保护的方法,由数据板卡(该数据板卡在某些情况下是发送板卡,在某些情况下是接收板卡)的不同功能模块来实现。因此,把包括数据板卡的装置称为链路数据保护的装置。
链路数据保护的装置,包括数据板卡,数据板卡包括发送存储单元、发送仲裁单元、校验产生单元、校验确认单元、接收选择单元、接收存储单元及控制单元。
发送存储单元用于接收并存储数据包,将主数据包发送给发送仲裁单元,还用于根据从控制单元获得的通知删除或重新发送相应的主数据包,还用于根据从控制单元获得的通知重新发送所有未收到对应验证包的主数据包。
发送仲裁单元用于将从发送存储单元接收的主数据包和从控制单元接收的验证包发送给校验产生单元,并对两种数据包的发送顺序进行仲裁,优先发送验证包。
校验产生单元用于对收到的数据包进行校验计算得到校验值,并将校验值和序号、标识附带在的数据包中发送到链路上。
校验确认单元用于从链路接收数据包并解包,将包内的序号、标识分解出来,并对收到的数据包进行校验计算得到校验值,将数据包、序号、标识及计算得到的校验值一并发送给接收选择单元。
接收选择单元用于从校验确认单元接收数据包,根据标识区分收到的数据包是主数据包还是验证包,将主数据包发送给接收存储单元而将验证包发送给控制单元。
接收存储单元用于判断从接收选择单元收到的主数据包的序号是否与序号生成规则一致以及校验确认单元计算得到的校验值与主数据包中附带的校验值是否一致,进行相应的处理。如果主数据包的序号与序号生成规则不一致,则丢弃该主数据包。如果主数据包的序号与序号生成规则一致但计算得到的校验值与主数据包中附带的校验值不一致,则丢弃该主数据包并通知控制单元生成显示验证错误的验证包。如果主数据包的序号与序号生成规则一致且计算得到的校验值与主数据包中附带的校验值一致,则存储该主数据包,发送,并通知控制单元生成显示验证正确的验证包。
控制单元用于根据接收存储单元的通知生成验证包,并将验证包发送给发送仲裁单元。还用于从接收选择单元接收验证包,根据验证包通知发送存储单元删除或重新发送相应的主数据包。还用于未收到验证包达到一定时间后,通知发送存储单元重新发送所有未收到对应验证包的主数据包。
由于“链路数据保护的方法”和“链路数据保护的装置”具有明确的对应关系,为了避免不必要的重复,“链路数据保护的方法”和“链路数据保护的装置”的描述中都进行了一定的省略。通过比较“链路数据保护的方法”和“链路数据保护的装置”的描述,本领域技术人员能够对被省略的内容有清晰、完整的认识。
在“链路数据保护的装置”部分的描述中,“包括”、“用于”等词语应按照开放式表达方式理解。例如,数据板卡,之前已经给出了本发明所述的数据板卡的涵义。数据板卡包括发送存储单元、发送仲裁单元、校验产生单元、校验确认单元、接收选择单元、接收存储单元及控制单元,应理解为数据板卡含有以上功能模块,但不一定只有以上这些模块。数据板卡实现其完整功能,除了本发明说明书中描述的模块,通常还需要其他功能模块,本领域技术人员通过现有技术或公知常识,完全可以实现其他模块,故本发明说明书中不再赘述。
本发明技术方案在硬件层面实现了链路数据的保护,保障了数据传输的正确性。对于板卡而言,只要数据发出,就可以认为能够正确到达。本发明技术方案保证了不会因为链路上的某些异常情况造成数据传输错误,也不需要上层软件参与数据错误处理、重新传送数据等管理,有效减少了上层软件的压力。
附图说明
图1为本发明具体实施方案中TRAY板和SET板链路关系的示意图。图中的FMDT指用于数据传输的功能模块(Functional Module for Data Transmission),包括发送存储单元、发送仲裁单元、校验产生单元、校验确认单元、接收选择单元、接收存储单元及控制单元。
图2为本发明具体实施方案中校验包的一个实例。图中的Pkt_sign表示数据包的标识,Seq num表示数据包的序号,Keep info表示keep信息,Crc result表示crc16算法计算得到的校验值,reserve表示预留位(如果不使用则设置为0)。
图3为本发明具体实施方案中对等存储结构设计的示意图。图中的packet表示主数据包或原始数据包,packet后面的数字0、1、2、……、n表示数据包的序号。
图4为本发明具体实施方案中TRAY板或SET板上用于数据传输的功能模块的示意图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体实施方案。任何对所描述的具体实施方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体实施方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
在存储技术领域实现本发明的具体实施方案。本发明具体实施方案中涉及的数据板卡包括TRAY板和SET板。TRAY板执行FTL(flash translation layer,将闪存模拟成虚拟设备的中间层)功能,与上层软件进行数据交换。SET板与闪存(如Nand-flash等)进行数据交换。TRAY与SET板卡之间数据交换使用高速serdes链路,TRAY和SET板卡上使用标准axi4-stream通信协议。TRAY板和SET板的链路关系如图1所示。TRAY板和SET板都通过集成电路即硬件的方式来构建。
TRAY板和SET板在工作过程中都既作为发送板卡又作为接收板卡使用。TRAY板和SET板之间的数据传输(某一板卡发送数据,另一板卡接收数据的过程)会存在不同的情况。下面以TRAY板将上层软件的存储服务请求(最常见的存储服务请求是数据读写请求,即IO请求)发送给SET板(之后再由SET板发送给闪存)为例,说明数据传输中的不同情况及相应的处理方法。在这个例子中,TRAY板是发送板卡,SET板是接收板卡。
情况一:链路工作正常,主数据包无任何错误。此情况下的工作流程为:
1)TRAY板接收上层软件发送的原始数据包,存储,给该原始数据包设置标识和序号,记录指向该原始数据包在TRAY板上存储位置的指针。
2)根据校验算法计算该原始数据包的校验值。
3)将原始数据包和标识、序号及校验值等信息打包成主数据包,发到serdes链路上。(由于标准axi4-stream通信协议定义的原始数据包没有标识、序号、校验值等信息,因此要把这些信息进行打包。)
4)SET板收到TRAY板发送的数据包后进行解包,将数据包中的标识和序号分解出来,通过标识识别出该数据包为主数据包,计算主数据包的校验值。
5)SET板验证收到的主数据包的序号和校验值。如果链路工作正常,主数据包无任何错误,则主数据包的序号与序号生成规则一致,对主数据包数据计算得到的校验值与主数据包中附带的校验值一致。SET板将验证无误的主数据包存储,生成显示验证正确的验证包(这里称为ack包)发送给TRAY板。
6)TRAY板收到ack包后进行解包,通过标识识别出该数据包为验证包。TRAY板根据ack包获知SET板已经准确无误的收到了主数据包,删除自己存储的该主数据包以释放其占用的存储空间。
情况二:主数据包出现bit error。此情况下的工作流程为:
1)—4)与情况一相同。
5)SET板验证收到的主数据包的序号和校验值。如果主数据包存在比特错误,则主数据包的序号与序号生成规则一致,但对主数据包数据计算得到的校验值与主数据包中附带的校验值不一致。SET板将收到的该主数据包丢弃,生成显示验证错误的验证包(这里称为nak包)发送给TRAY板。
6)TRAY板收到nak包后进行解包,通过标识识别出该数据包为验证包。TRAY板根据nak包获知SET板收到的主数据包发生了bit error,则利用该主数据包的指针(即原始数据包的指针)找到该主数据包并重新发送给SET板。
7)对于TRAY板重新发送的主数据包,SET板再次验证其序号和校验值。如果主数据包的序号与序号生成规则一致,计算得到的校验值与主数据包中附带的校验值一致,则按照情况一中描述的工作流程处理;如果主数据包的序号与序号生成规则一致但计算得到的校验值与主数据包中附带的校验值不一致,则继续重复情况二的5)、6)和7)。
情况三:主数据包出现了异常丢包。此情况下的工作流程为:
1)—4)与情况一相同。
5)SET板验证收到的主数据包的序号和校验值。如果主数据包出现了异常丢包,则主数据包的序号与序号生成规则不一致。此时SET板将收到的该主数据包丢弃,不向TRAY板发送任何验证包。
6)TRAY板未收到SET板的验证包达到一定时间后,启动timeout机制,利用指针找到所有未收到对应验证包的主数据包,重新向SET板卡发送。
注意,情况三中,如果SET板发现主数据包出现了异常丢包,在TRAY板启动timeout机制前,SET板会将TRAY板发送的主数据包一直丢弃。例如,主数据包的序号的生成规则是0、1、2、3、4……逐次递增,SET板在收到序号2的主数据包后本应收到序号3的主数据包,结果却收到了序号4的主数据包,说明序号3的主数据包丢包了,SET板此时会丢弃序号4的主数据包,且不向TRAY板发送任何验证包。如果TRAY板没有启动timeout机制,会继续向SET板发送序号5、序号6等主数据包,由于这些主数据包的序号不是3,SET板会一直丢弃,直到TRAY板启动timeout机制发来序号3的主数据包,SET板根据计算得到的校验值与主数据包中附带的校验值是否一致发送ack或nak包,此时情况三转变为情况一或情况二。
TRAY板未收到SET板的验证包达到多长时间后启动timeout机制,可以根据实际情况进行设定,但该时间应当大于TRAY板收到SET板发送的ack或nak包可能需要的时间(否则TRAY板会进入不断timeout的死循环中)。上述可能需要的时间包括三部分时间,一是TRAY板向SET板发送的主数据包达到SET板的时间,二是SET板收到主数据包后进行处理并生成ack或nak包的时间,三是ack或nak包从SET板发出后达到TRAY板的时间。这三部分时间需要根据板卡自身的性能和链路情况进行估计。对TRAY板和SET板而言,可以把启动timeout机制的时间设定为1秒。
情况四:链路出现了异常断开、重新连接等情况。这可能导致各种异常的发生。如果导致主数据包出现bit error,则按照情况二中描述的工作流程处理;如果导致主数据包异常丢包,则按照情况三中描述的工作流程处理。此外,还可能导致验证包出现bit error或异常丢包。此时的处理方法如下。
ack或nak包产生了bit error:TRAY板收到ack或nak包后对其数据计算得到的校验值与包中附带的校验值不一致,此时TRAY板直接丢弃收到的ack或nak包,视为未收到任何验证包。这样,TRAY板可以通过timeout机制保证SET板收到的主数据包是正确的。
ack或nak包产生了异常丢包:如果SET板收到某个主数据包并向TRAY板发送了ack包后,又收到TRAY板发送的该主数据包(可以通过主数据包的序号判断),则直接丢弃后收到的该主数据包。这表明ack包发生了丢包,TRAY板通过timeout机制重新发送主数据包,后收到的主数据包可以直接忽略。当然,如果nak包产生了异常丢包,TRAY板通过timeout机制重新发送主数据包后,SET板将按照情况二中描述的工作流程处理。
注意,以上所有情况中描述的工作流程都是循环往复、不断进行的,从第一个数据包开始到最后一个数据包终止。数据传输过程中,各种情况有可能交替发生,但只要TRAY板和SET板按照不同情况的工作流程处理,就可以保障各个主数据包的传输准确无误。
以上工作流程中,对主数据包和验证包的数据校验是非常重要的。在本发明具体实施方案中,采用crc16算法进行数据校验。按照axi4-stream协议生成的数据包,附带序号、keep信息(该信息指axi4-stream协议中用来标识有效byte数的keep信息)、标识等旁路信息进行校验。crc16算法的生成多项式设为1+x2+x15+x16,种子值设为16’hFFFF。
具体校验方法,以16’hFFFF为种子,对每拍128bit数据进行逐一计算,之后再对标识、keep信息、序号进行计算,生成16bit校验码(此即之前所述的校验值),与上述旁路信息共同组成校验包,附在按照axi4-stream协议生成的数据包中。校验包的一个实例如图2所示。
数据板卡之间发送或接收数据时,应当实施必要的数据流量控制,特别是当数据板卡之间采用高速serdes链路时。高速serdes链路默认数据只要发出对方就可以接收,不进行数据流量控制会严重影响数据传输的安全性。
本发明具体实施方案采用对等存储结构的设计来进行数据流量控制,对等存储结构设计如图3所示,对等存储结构设计的工作原理如下所述。
TRAY板将序号0的主数据包通过高速serdes链路发送给SET板,在发送后不会立刻删除序号0的主数据包以释放其所占用的空间。序号0的主数据包被SET板准确无误接收后,SET板会发送一个附带序号0的ack包给TRAY板。在收到附带序号0的ack包后,TRAY板才会删除序号0的主数据包,释放其存储空间给其他主数据包。
由于TRAY板和SET板采用对等存储结构的设计,主数据包的存储空间是相等的(也可以将存储不附带标识、序号、校验值等信息的原始数据包的空间设计为相等,技术效果是一样的),并且每一个主数据包都有对应的序号,所以不存在TRAY板发送过多而SET板无法接收的情况。考虑到链路本身有延迟,在序号0的主数据包发往SET板的过程中,TRAY板有剩余的存储空间继续接收其他主数据包,并且不断将主数据包发送到链路上,而同时如果SET板可以正常接收,将不断发送ack包给TRAY板。这样整个链路高效运行,效率和流量控制同时得以保证。
无论何种情况,只要TRAY板没有收到附带序号0的ack包,序号0的主数据包就不会被删除,这样确保了数据的准确性,同时也起到了控制流量的作用。
TRAY板作为发送板卡、SET板作为接收板卡是一个相对的概念。可能出现TRAY板或SET板同时作为发送板卡发送主数据包和接收板卡发送验证包的情况,此时两种数据包的发送就形成了竞争关系,需要仲裁器等模块进行仲裁处理,确定发送的优先级。由于验证包关系到其他板卡主数据包的发送,对由所有数据板卡构成的板卡体系数据传输的影响较大,对于同时提交的待发送的主数据包和验证包,应当优先发送验证包。特别注意,该仲裁规则只在所有数据包都为待发送状态时方有效。如果主数据包开始发送后验证包的发送请求才提交,为了保证数据包的完整性和数据传输的稳定性,不允许中断主数据包的发送,只有当主数据包发送完成后才能发送验证包。
TRAY板和SET板之间采用高速serdes链路时,使用同源时钟会大大减少链路的时钟偏移(skew),从而提高板卡体系的稳定性。本发明具体实施方案采用恢复同源时钟的设计,具体如下:
1)使用本地时钟进行初始化。
2)链路连通之后从serdes中将时钟恢复出来。
3)用PLL(Phase Locked Loop,锁相环)将恢复的时钟锁相。
4)将恢复好的时钟送给链路作为参考时钟。
这样就实现了TRAY板和SET板的时钟同源。
TRAY板和SET板本身都既作为发送板卡又作为接收板卡使用的,因此它们用于数据传输的功能模块是相同的。当然,TRAY板和SET板实现其完整的功能还需要其他模块,这些模块本领域技术人员根据现有技术或公知常识可以构建,本发明具体实施方案中便不再赘述。TRAY板或SET板上用于数据传输的功能模块如图4所示。
TRAY板或SET板上用于数据传输的功能模块,包括发送存储单元、发送仲裁单元、校验产生单元、校验确认单元、接收选择单元、接收存储单元及控制单元。
发送存储单元从上层软件(对TRAY板而言)或闪存(对SET板而言)接收数据包(该数据包是不附带标识、序号、校验值等信息的原始数据包),存储数据包,将数据包(此时附带了生成的序号和标识,可以视为主数据包)发送给发送仲裁单元,还根据从控制单元获得的ack或nak包通知(该通知包括控制单元收到的验证包是ack包还是nak包,ack或nak包中附带的序号是多少)对相应的主数据包执行删除或重新发送操作,还根据从控制单元获得的timeout通知(该通知包括需要重新发送的主数据包的序号)对所有未收到对应验证包的主数据包执行重新发送操作。发送存储单元内设置两个RAM(Random-Access Memory,随机存取存储器),一个为数据RAM用于存储数据包,另一个为指针RAM用于存储指向数据包存放位置的指针。删除数据包,只要删除该数据包存放位置对应的指针即可。
发送仲裁单元将从发送存储单元接收的主数据包和从控制单元接收的验证包(ack或nak包)发送给校验产生单元,并对两种数据包的发送顺序进行仲裁,在每次主数据包发送结束后进行判断,如果有验证包的发送请求则优先响应,即优先发送验证包。
校验产生单元利用crc16算法对收到的主数据包或验证包进行校验计算,得到校验值,并将校验值和序号、标识等信息附带在收到的数据包中,打包后发送到链路上。注意,主数据包的序号和标识发送存储单元在接收到相应的原始数据包后就生成了,验证包的序号和标识控制单元生成验证包的时候也一并生成了,校验确认单元并不生成这两个信息,这两个信息是发送存储单元或控制单元发送数据包的时候一并发送的。
校验确认单元从链路接收数据包,对数据包进行解包,将包内的序号、标识等信息分解出来,并对收到的数据包用crc16算法进行校验计算得到校验值,将数据包、分解出来的序号、标识等信息及计算得到的校验值一并发送给接收选择单元。
接收选择单元从校验确认单元接收数据包,根据标识区分收到的数据包是主数据包还是验证包,将主数据包发送给接收存储单元而将验证包发送给控制单元。
接收存储单元判断从接收选择单元收到的主数据包的序号是否与序号生成规则一致以及校验确认单元计算得到的校验值与主数据包中附带的校验值是否一致,进行相应的处理。如果主数据包的序号与序号生成规则不一致,则丢弃该主数据包。如果主数据包的序号与序号生成规则一致但计算得到的校验值与主数据包中附带的校验值不一致,则丢弃该主数据包并通知控制单元生成nak包(给控制单元的通知包括主数据包的序号和校验值不一致信息)。如果主数据包的序号与序号生成规则一致且计算得到的校验值与主数据包中附带的校验值一致,则存储该主数据包,向上层软件(对TRAY板而言)或闪存(对SET板而言)发送,并通知控制单元生成ack包(给控制单元的通知包括主数据包的序号和校验值一致信息)。
控制单元的功能包括三方面,一是根据接收存储单元的通知生成ack或nak包,将ack或nak包(附带序号和标识)发送给发送仲裁单元;二是从接收选择单元接收ack或nak包,根据ack或nak包通知发送存储单元删除或重新发送相应的主数据包;三是执行timeout机制,未收到ack或nak包达到一定时间后,通知发送存储单元重新发送所有未收到对应验证包的主数据包。
本领域技术人员在本发明具体实施方案的基础上,结合现有技术或公知常识,完全可以在其他数据板卡上实现本发明所有的技术方案。
Claims (9)
1.链路数据保护的方法,其特征在于,所述的方法包括:发送板卡发送附带序号和校验值的主数据包,接收板卡验证收到的主数据包的序号和校验值,根据验证结果进行处理。
2.根据权利要求1所述的方法,其特征在于,所述的根据验证结果进行处理,包括:
如果接收板卡收到的主数据包的序号与序号生成规则一致,对主数据包数据计算得到的校验值与主数据包中附带的校验值一致,则接收板卡存储该主数据包并向发送板卡发送显示验证正确的验证包;
如果接收板卡收到的主数据包的序号与序号生成规则一致,对主数据包数据计算得到的校验值与主数据包中附带的校验值不一致,则接收板卡丢弃该主数据包并向发送板卡发送显示验证错误的验证包,发送板卡收到显示验证错误的验证包后向接收板卡重新发送该主数据包;
如果接收板卡收到的主数据包的序号与序号生成规则不一致,则接收板卡丢弃该主数据包,不向发送板卡发送任何验证包,发送板卡未收到验证包达到一定时间后,将所有未收到对应验证包的主数据包重新向接收板卡发送。
3.根据权利要求2所述的方法,其特征在于,所述的根据验证结果进行处理,还包括:
如果对验证包数据计算得到的校验值与验证包中附带的校验值不一致,则发送板卡视为未收到验证包;
如果接收板卡在收到某个主数据包并向发送板卡发送显示验证正确的验证包后又收到该主数据包,则丢弃后收到的该主数据包。
4.根据权利要求2所述的方法,其特征在于,所述的方法还包括:发送板卡主数据包的存储空间和接收板卡主数据包的存储空间相等;发送板卡在发送主数据包后未收到接收板卡对应的显示验证正确的验证包前,不删除该主数据包。
5.根据权利要求2所述的方法,其特征在于,所述的方法还包括:所述的发送板卡或接收板卡对于待发送的主数据包和验证包,优先发送验证包。
6.根据权利要求1所述的方法,其特征在于,所述的方法还包括:所述的发送板卡和接收板卡采用同源时钟。
7.链路数据保护的装置,包括数据板卡,其特征在于,所述的数据板卡包括发送存储单元、发送仲裁单元、校验产生单元、校验确认单元、接收选择单元、接收存储单元及控制单元;
所述的发送存储单元用于接收并存储数据包,将主数据包发送给发送仲裁单元;
所述的发送仲裁单元用于将从发送存储单元接收的主数据包和从控制单元接收的验证包发送给校验产生单元,并对两种数据包的发送顺序进行仲裁,优先发送验证包;
所述的校验产生单元用于对收到的数据包进行校验计算得到校验值,并将校验值和序号、标识附带在的数据包中发送到链路上;
所述的校验确认单元用于从链路接收数据包并解包,将包内的序号、标识分解出来,并对收到的数据包进行校验计算得到校验值,将数据包、序号、标识及计算得到的校验值一并发送给接收选择单元;
所述的接收选择单元用于从校验确认单元接收数据包,根据标识区分收到的数据包是主数据包还是验证包,将主数据包发送给接收存储单元而将验证包发送给控制单元;
所述的接收存储单元用于判断从接收选择单元收到的主数据包的序号是否与序号生成规则一致以及校验确认单元计算得到的校验值与主数据包中附带的校验值是否一致,进行相应的处理:如果主数据包的序号与序号生成规则不一致,则丢弃该主数据包;如果主数据包的序号与序号生成规则一致但计算得到的校验值与主数据包中附带的校验值不一致,则丢弃该主数据包并通知控制单元生成显示验证错误的验证包;如果主数据包的序号与序号生成规则一致且计算得到的校验值与主数据包中附带的校验值一致,则存储该主数据包,发送,并通知控制单元生成显示验证正确的验证包;
所述的控制单元用于根据接收存储单元的通知生成验证包,并将验证包发送给发送仲裁单元。
8.根据权利要求7所述的装置,其特征在于,所述的控制单元还用于从接收选择单元接收验证包,根据验证包通知发送存储单元删除或重新发送相应的主数据包;所述的发送存储单元还用于根据从控制单元获得的通知删除或重新发送相应的主数据包。
9.根据权利要求7所述的装置,其特征在于,所述的控制单元还用于未收到验证包达到一定时间后,通知发送存储单元重新发送所有未收到对应验证包的主数据包;所述的发送存储单元还用于根据从控制单元获得的通知重新发送所有未收到对应验证包的主数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510398739.7A CN104967504A (zh) | 2015-07-08 | 2015-07-08 | 链路数据保护的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510398739.7A CN104967504A (zh) | 2015-07-08 | 2015-07-08 | 链路数据保护的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104967504A true CN104967504A (zh) | 2015-10-07 |
Family
ID=54221455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510398739.7A Pending CN104967504A (zh) | 2015-07-08 | 2015-07-08 | 链路数据保护的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104967504A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788894A (zh) * | 2016-12-20 | 2017-05-31 | 中核控制系统工程有限公司 | 分段独立传输校验方法 |
CN109884972A (zh) * | 2019-02-26 | 2019-06-14 | 北京龙鼎源科技股份有限公司 | 数据的处理方法及装置、存储介质和电子装置 |
CN113810646A (zh) * | 2021-09-06 | 2021-12-17 | 浙江光珀智能科技有限公司 | 一种SerDes信号抗静电干扰系统及方法 |
CN116501564A (zh) * | 2023-06-27 | 2023-07-28 | 苏州浪潮智能科技有限公司 | 一种芯片验证方法、现场可编程逻辑门阵列芯片以及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275526B1 (en) * | 1997-08-28 | 2001-08-14 | Samsung Electronics Ltd. | Serial data communication between integrated circuits |
CN1852265A (zh) * | 2006-05-30 | 2006-10-25 | 杭州华为三康技术有限公司 | 一种同步帧在ip网络上传输的方法及用于传输的网络设备 |
CN101834700A (zh) * | 2010-05-12 | 2010-09-15 | 北京邮电大学 | 一种基于数据包的单向可靠传输方法及收发装置 |
CN103685487A (zh) * | 2013-12-02 | 2014-03-26 | 宁波三星电气股份有限公司 | 无线通信网络中的子节点升级方法 |
-
2015
- 2015-07-08 CN CN201510398739.7A patent/CN104967504A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275526B1 (en) * | 1997-08-28 | 2001-08-14 | Samsung Electronics Ltd. | Serial data communication between integrated circuits |
CN1852265A (zh) * | 2006-05-30 | 2006-10-25 | 杭州华为三康技术有限公司 | 一种同步帧在ip网络上传输的方法及用于传输的网络设备 |
CN101834700A (zh) * | 2010-05-12 | 2010-09-15 | 北京邮电大学 | 一种基于数据包的单向可靠传输方法及收发装置 |
CN103685487A (zh) * | 2013-12-02 | 2014-03-26 | 宁波三星电气股份有限公司 | 无线通信网络中的子节点升级方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788894A (zh) * | 2016-12-20 | 2017-05-31 | 中核控制系统工程有限公司 | 分段独立传输校验方法 |
CN109884972A (zh) * | 2019-02-26 | 2019-06-14 | 北京龙鼎源科技股份有限公司 | 数据的处理方法及装置、存储介质和电子装置 |
CN113810646A (zh) * | 2021-09-06 | 2021-12-17 | 浙江光珀智能科技有限公司 | 一种SerDes信号抗静电干扰系统及方法 |
CN116501564A (zh) * | 2023-06-27 | 2023-07-28 | 苏州浪潮智能科技有限公司 | 一种芯片验证方法、现场可编程逻辑门阵列芯片以及装置 |
CN116501564B (zh) * | 2023-06-27 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 一种芯片验证方法、现场可编程逻辑门阵列芯片以及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2952054T3 (es) | Método y aparato para realimentar solicitud de repetición automática híbrida de datos de enlace descendente | |
US8255560B2 (en) | System for transmitting and receiving packets | |
CN104243093B (zh) | 用于在将数据从发送器传输到至少一个接收器时识别错误的方法和系统 | |
CN104967504A (zh) | 链路数据保护的方法和装置 | |
CN105373441B (zh) | 用于互连电路的传输控制检查 | |
US8949606B2 (en) | Prevention of masquerade by using identification sequences | |
KR20150004833A (ko) | 버스 시스템용 가입자 국, 그리고 버스 시스템의 가입자 국들 간의 메시지 전송 방법 | |
US9956973B2 (en) | System, method, and apparatus for generating vital messages on an on-board system of a vehicle | |
CN106911428B (zh) | 信息的传输方法和装置 | |
WO2021115452A1 (zh) | 灵活以太网开销复帧接收方法、装置、设备及介质 | |
CN105871512A (zh) | 一种数据传输方法及装置 | |
CN104579605B (zh) | 一种数据传输方法及装置 | |
CN106788878A (zh) | 一种具有单比特纠错功能的并行crc纠错方法 | |
US11677495B2 (en) | Safety communication device, safety communication system, safety communication method, and computer readable medium | |
US11611816B2 (en) | Service data processing method and device | |
US10574392B2 (en) | System. methods and devices for transmitting and/or receiving data using an inter communication link | |
CN103838691B (zh) | 实现高速数据传输的方法及通用接口芯片 | |
JP5857568B2 (ja) | 情報処理システム、受信装置、及び情報処理方法 | |
CN113078980A (zh) | 一种数据传输的方法以及装置 | |
CN113722770B (zh) | 基于分级的数据完整性的端到端的保护方法及系统 | |
CN103346862A (zh) | 一种分级保护的片上网络数据传输装置及方法 | |
ES2929045T3 (es) | Procedimiento de emisión de un mensaje, procedimiento de recepción, dispositivo de emisión, dispositivo de recepción y sistema de comunicación asociados | |
WO2015169049A1 (zh) | 一种微波传输的容错性方法和装置、计算机可读存储介质 | |
Singh et al. | Data Link Layer Designing Issues: Error Control-A Roadmap | |
CN109495384A (zh) | 一种提高网络路由可靠性的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151007 |