CN104767658A - 一种在线检测报文传输错误的方法与装置 - Google Patents

一种在线检测报文传输错误的方法与装置 Download PDF

Info

Publication number
CN104767658A
CN104767658A CN201510182909.8A CN201510182909A CN104767658A CN 104767658 A CN104767658 A CN 104767658A CN 201510182909 A CN201510182909 A CN 201510182909A CN 104767658 A CN104767658 A CN 104767658A
Authority
CN
China
Prior art keywords
message
far
input
ram
data
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
Application number
CN201510182909.8A
Other languages
English (en)
Other versions
CN104767658B (zh
Inventor
刘凯
童元满
李仁刚
刘金广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510182909.8A priority Critical patent/CN104767658B/zh
Publication of CN104767658A publication Critical patent/CN104767658A/zh
Application granted granted Critical
Publication of CN104767658B publication Critical patent/CN104767658B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种在线检测报文传输错误的方法与装置,方法的实现过程为:在FPGA验证平台中,构建一个存储空间RAM;检测程序启动,RAM接收并处理由处理器发送过来的源端报文;然后对处理器发出的源端报文和远端返回报文的进行协议比较,确定远端返回的报文种类是否在处理器要求的报文种类,是则删除对应存储空间中的报文,并进行下一报文存储;否则进行错误报错。装置的结构包括RAM输入信号模块,RAM输出信号模块、远端报文存储FIFO、协议对比模块。该一种在线检测报文传输错误的方法与装置与现有技术相比,最大程度节约了FPGA内部有限的资源,提高了效率,更好使用了FPGA相关软件进行代码项目调试,实用性强,易于推广。

Description

一种在线检测报文传输错误的方法与装置
技术领域
本发明涉及计算机芯片技术领域,具体地说是一种实用性强、在线检测报文传输错误的方法与装置。
背景技术
随着国家对信息安全的越来越重视,打破国外厂商在小型机服务器上的垄断迫在眉睫。而小型机服务器的研发在于需要网络控制类芯片控制多路处理器系统,这个系统使得多个处理器之间能够进行高速有效、可靠安全地进行报文交换处理。对应这个系统的前期验证调试过程肯定是要在FPGA平台上进行的。为了在FPGA平台上很好地验证,使用一些调试手段是必需的。在FPGA平台验证调试过程中,处理器短时间内发送大量报文。这些本地源端发送的报文都需要有相关对应的远端报文正确返回。一旦有报文没有正确回复,就会导致处理器异常。但是在大量报文中无法人工快速确定哪个报文出现了问题,导致调试工作进展缓慢。
针对这种问题,本专利提出一种在线检测报文传输错误的方法与装置,通过加入错误检测机制,有效解决工作效率低的问题。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、在线检测报文传输错误的方法与装置。
一种在线检测报文传输错误的方法,其具体实现过程为:
在FPGA验证平台中,构建一个存储空间RAM;
检测程序启动,RAM接收并处理由处理器发送过来的源端报文;
然后对处理器发出的源端报文和远端返回报文的进行协议比较,确定远端返回的报文种类是否在处理器要求的报文种类,是则删除对应存储空间中的报文,并进行下一报文存储;否则进行错误报错。
所述RAM的地址是唯一的且该地址由报文的RTID数值来确定。
所述源端报文储存入存储空间RAM之前进行过滤的步骤,即过滤源端报文的纯数据,保留头报文信息,同时过滤掉不需要的bit位上的数据。
所述协议比较通过查找表完成,该查找表记录远端报文和本地源端报文直接的各种规则协议,即在报文传输协议下,其记录本地源端的每种报文所对应着应该返回的远端报文种类。
所述协议比较包括以下两种情况:
一、当没有处理器发送过来本地源端报文要存储,且有报文从远端返回时;
二、当源端报文和远端报文同时到来时。
所述第一种情况下的协议比较过程为:
首先根据返回报文的RTID从存储空间中提取相关本地源端报文;
提取的源端报文和远端返回的报文共同进行协议比较;
先根据本地源端报文的种类,在查找表中找到对应着的应该返回报文的种类或者相关数据信息;
再根据找出来的报文种类去比较此时远端返回的报文;
如果返回的远端报文不是所希望的报文,则认为远端返回报文错误,系统出现错误报错;反之则为正常,对应存储空间中的报文可以被删除了,为下一条报文存储做准备。
所述第二种情况下的协议比较过程为:
首先设计一个优先级,即将源端报文的输入优先级高于远端返回报文的优先级;
在远端报文返回输入的位置设置一个FIFO缓存,当有源端报文输入时,远端返回报文先存入该FIFO缓存中缓存;
当源端报文处理完后,从FIFO缓存中提取返回报文;
根据本地源端报文的种类,在查找表中找到对应着的应该返回报文的种类或者相关数据信息;
再根据找出来的报文种类去比较此时远端返回的报文;
如果返回的远端报文不是所希望的报文,则认为远端返回报文错误,系统出现错误报错;反之则为正常,对应存储空间中的报文可以被删除了,为下一条报文存储做准备。
一种在线检测报文传输错误的装置,其结构包括:
RAM输入信号模块,即源端报文处理模块,该输入信号包括数据输入端口Data_in、输入地址DataIn_addr、输入使能信号DataIn_en、输入时钟信号Clk_in,其中输入数据信号Data_in即为输入的报文;使能信号DataIn_en来自于每个数据包的输入使能信号,用来对报文进行选择是否输入存储空间RAM中;输入地址控制信号DataIn_addr,当有效报文输入的时候,地址根据报文中的RTID来确定;该RAM输入信号模块用于对上述源端报文信号进行过滤,根据报文不同选择是否存入该RAM中;
RAM输出信号模块,即远端报文处理模块,该输出信号模块输出的控制信号数目和输入信号模块输入的控制信号数目一致,且该输出信号包括输出数据信号Data_out、输出数据使能信号Dataout_en、输出地址Dataout_addr、输出时钟Clk_out;其中输出数据信号Data_out是和输入数据信号相同位宽,即是一个报文的宽度;输出地址Dataout_addr根据远端报文的RTID确定,相同RTID的远端报文对应着源端报文;
远端报文存储FIFO,用于当RAM有数据输入的时候,先存储远端报文作为缓冲;当RAM可以输出数据的时候,再从此FIFO中提取远端报文进行比较;
协议对比模块,根据本地源端报文推测出理论上应该得到的远端报文,然后与实际得到的远端报文进行对比,判断实际远端返回的报文是否正确,该协议对比模块内置协议查找表,记录在各种情况下某个本地源端报文所对应出现的远端报文情况。
本发明的一种在线检测报文传输错误的方法与装置,具有以下优点:
本发明提出的一种在线检测报文传输错误的方法与装置,采用了在FPGA内部实时存储检测对比的方式,实现了程序自动检测返回报文错误并记录的功能,具有很高的可操作性和实用价值;解决了在FPGA平台跟踪查找处理器因为某个报文收发错误的时候,由于FPGA资源有限的原因无法确定并抓取某个具体报文的困难;构建一个可控地址的存储空间和一个报文传输协议的查找表,有选择地存储了本地处理器发送报文,并根据查找表对比远端返回报文,来确定具体某个出错的报文;最大程度节约了FPGA内部有限的资源,提高了效率,更好使用了FPGA相关软件进行代码项目调试,实用性强,易于推广。
附图说明
附图1为本发明的装置结构框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
现提供一种在线检测报文传输错误的方法与装置,其作用针对在FPGA平台验证调试过程中,无法跟踪系统是由于处理器哪个报文出现问题导致宕机的情况。处理器在短时间内发送大量报文,并且收到远端回复相关报文,如果其中某个回复报文不是本地源端所希望的报文,即没有按照规定的协议回复报文,就会导致处理器宕机。而此时短时间内来回传输有大量的报文,无法确定是哪个本地源端报文对应的回复报文出了问题。本专利对处理器发出的源报文和远端返回报文在FPGA内部实时监控进行记录比较,能具体确定哪个报文出了问题,并且记录下来出问题对应的本地源端报文,方便在线查看调试。
一种在线检测报文传输错误的方法,其具体实现过程为:
在FPGA验证平台中,构建一个存储空间RAM;
检测程序启动,RAM接收并处理由处理器发送过来的源端报文;
然后对处理器发出的源端报文和远端返回报文的进行协议比较,确定远端返回的报文种类是否在处理器要求的报文种类,是则删除对应存储空间中的报文,并进行下一报文存储;否则进行错误报错。
检测程序启动后,接收并处理由处理器发送过来的QPI报文。在QPI报文协议中规定,在没有对应报文返回的时候每个QPI报文中RTID数值是不同的,并且每个处理器发出的RTID总数目是一定的,所以可以利用RTID这种唯一性有限性作为存储地址Addr将该报文存入存储空间,本专利就采用的这种办法。因为要处理的报文比较多,本专利根据不同的报文类型构建了不同的存储空间。
当一个本地源报文送到时候,根据报文的类型将报文存入相关的存储空间RAM中。在存储之前可以先对本地源报文进行一下过滤。这是因为有些报文只是数据报文,其中所带的信息为纯数据信息,这种报文是肯定有头报文的一起发送的。而我们需要的是头报文信息,这种纯数据报文可以不用存储,只需要用相关的头报文进行检测。在实际应用中,即使是头报文也会有些bit位上的数据是不需要的,可以忽略不用作存储,这样可以保证FPGA有限资源的利用率。
当有远端报文返回的时候,就要根据RTID的信息从存储空间中提取相关的源端报文,用来对远端报文进行比较。当然,对于存储空间来说,在需要提取报文的时候同时有可能又有新的报文输入,而存储空间RAM是不能同时读写的,这时候考虑到本地源端报文的优先级是高于远端报文的优先级。所以在远端报文返回输入处加入一个小FIFO作为缓存。当没有本地源端报文输入且有远端报文返回的时候,就可以根据返回报文的RTID从存储空间中提取相关本地源端报文。提取的报文和远端返回的报文共同进入协议对比模块。
在协议对比模块中有个协议查找表。这个查找表记录了报文传输协议下,本地源端的每种报文所对应着应该返回的远端报文种类。先根据本地源端报文的种类,在查找表中找到对应着的应该返回报文的种类或者相关数据信息。在根据找出来的报文种类去比较此时远端返回的报文。如果返回的远端报文不是所希望的报文,则可以认为远端返回报文错误,系统出现error报错。反之则为正常,对应存储空间中的报文可以被删除了,为下一条报文存储做准备。
如附图1所示,该实施例的主体为一个单口输入输出RAM。在实际使用的时候用寄存器reg来构建该RAM,这样可以达到快速地读写。
一种在线检测报文传输错误的装置,其结构包括:
RAM输入信号模块,也是源端报文处理模块。对于一个RAM来说,要有数据输入端口Data_in、输入地址DataIn_addr、输入使能信号DataIn_en、输入时钟信号Clk_in等。输入数据信号Data_in就是输入的报文。为了对不同的报文进行检测,在RAM的输入模块中可以对报文有个简单地过滤作用,根据报文类型的不同可以选择是否存入该RAM中。使能信号DataIn_en来自于每个数据包的输入使能信号,也可以用来对报文进行选择,是否输入存储空间RAM中。输入地址控制信号DataIn_addr,当有效报文输入的时候,地址根据报文中的RTID来确定。
RAM输出模块,也就是远端报文处理模块。对于一个RAM来说,输出的控制信号数目和输入的控制信号数目基本一致。包括输出数据信号Data_out,输出数据使能信号Dataout_en,输出地址Dataout_addr,输出时钟Clk_out等。输出数据信号Data_out是和输入数据信号相同位宽,即是一个报文的宽度。其次是Clk_out信号,该信号为输出时钟,因为只是对报文的检测,可以考虑使用远端报文时钟就可以。当然如果用高频时钟可以加快报文的检测。输出地址Dataout_addr是根据远端报文的RTID。因为前文所述,源端报文和远端报文的检测需要根据RTID来确定,相同RTID的远端报文对应着源端报文。
远端报文存储FIFO。因为RAM存储空间不能同时进行读写操作,所以在RAM有数据输入的时候,暂时不能输出报文。此时这个FIFO就先存储远端报文作为缓冲一下。当RAM可以输出数据的时候,再从此FIFO中提取远端报文进行比较。
协议对比模块。这是整个检测系统的核心和功能模块。是用来根据本地源端报文推测出理论上应该得到的远端报文,然后与实际得到的远端报文进行对比,判断实际远端返回的报文是否正确。这个模块的核心就是一个协议查找表,记录着在各种情况下某个本地源端报文所对应出现的远端报文情况。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种在线检测报文传输错误的方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

Claims (9)

1.一种在线检测报文传输错误的方法,其特征在于,其具体实现过程为:
在FPGA验证平台中,构建一个存储空间RAM;
检测程序启动,RAM接收并处理由处理器发送过来的源端报文;
然后对处理器发出的源端报文和远端返回报文的进行协议比较,确定远端返回的报文种类是否在处理器要求的报文种类,是则删除对应存储空间中的报文,并进行下一报文存储;否则进行错误报错。
2.根据权利要求1所述的一种在线检测报文传输错误的方法,其特征在于,所述RAM的地址是唯一的且该地址由报文的RTID数值来确定。
3.根据权利要求1所述的一种在线检测报文传输错误的方法,其特征在于,所述源端报文储存入存储空间RAM之前进行过滤的步骤,即过滤源端报文的纯数据,保留头报文信息,同时过滤掉不需要的bit位上的数据。
4.根据权利要求1所述的一种在线检测报文传输错误的方法,其特征在于,所述协议比较通过查找表完成,该查找表记录远端报文和本地源端报文直接的各种规则协议,即在报文传输协议下,其记录本地源端的每种报文所对应着应该返回的远端报文种类。
5.根据权利要求4所述的一种在线检测报文传输错误的方法,其特征在于,所述协议比较包括以下两种情况:
一、当没有处理器发送过来本地源端报文要存储,且有报文从远端返回时;
二、当源端报文和远端报文同时到来时。
6.根据权利要求5所述的一种在线检测报文传输错误的方法,其特征在于,所述第一种情况下的协议比较过程为:
首先根据返回报文的RTID从存储空间中提取相关本地源端报文;
提取的源端报文和远端返回的报文共同进行协议比较;
先根据本地源端报文的种类,在查找表中找到对应着的应该返回报文的种类或者相关数据信息;
再根据找出来的报文种类去比较此时远端返回的报文;
如果返回的远端报文不是所希望的报文,则认为远端返回报文错误,系统出现错误报错;反之则为正常,对应存储空间中的报文可以被删除了,为下一条报文存储做准备。
7.根据权利要求5所述的一种在线检测报文传输错误的方法,其特征在于,所述第二种情况下的协议比较过程为:
首先设计一个优先级,即将源端报文的输入优先级高于远端返回报文的优先级;
在远端报文返回输入的位置设置一个FIFO缓存,当有源端报文输入时,远端返回报文先存入该FIFO缓存中缓存;
当源端报文处理完后,从FIFO缓存中提取返回报文;
根据本地源端报文的种类,在查找表中找到对应着的应该返回报文的种类或者相关数据信息;
再根据找出来的报文种类去比较此时远端返回的报文;
如果返回的远端报文不是所希望的报文,则认为远端返回报文错误,系统出现错误报错;反之则为正常,对应存储空间中的报文可以被删除了,为下一条报文存储做准备。
8.一种在线检测报文传输错误的装置,其特征在于,其结构包括:
RAM输入信号模块,即源端报文处理模块,该RAM输入信号模块用于对输入的源端报文信号进行过滤,根据报文不同选择是否存入该RAM中;
RAM输出信号模块,即远端报文处理模块,该输出信号模块输出的控制信号数目和输入信号模块输入的控制信号数目一致;
远端报文存储FIFO,用于当RAM有数据输入的时候,先存储远端报文作为缓冲;当RAM可以输出数据的时候,再从此FIFO中提取远端报文进行比较;
协议对比模块,根据本地源端报文推测出理论上应该得到的远端报文,然后与实际得到的远端报文进行对比,判断实际远端返回的报文是否正确,该协议对比模块内置协议查找表,记录在各种情况下某个本地源端报文所对应出现的远端报文情况。
9.根据权利要求8所述的一种在线检测报文传输错误的装置,其特征在于,
所述输入信号包括数据输入端口Data_in、输入地址DataIn_addr、输入使能信号DataIn_en、输入时钟信号Clk_in,其中输入数据信号Data_in即为输入的报文;使能信号DataIn_en来自于每个数据包的输入使能信号,用来对报文进行选择是否输入存储空间RAM中;输入地址控制信号DataIn_addr,当有效报文输入的时候,地址根据报文中的RTID来确定;
相对应的,所述输出信号包括输出数据信号Data_out、输出数据使能信号Dataout_en、输出地址Dataout_addr、输出时钟Clk_out;其中输出数据信号Data_out是和输入数据信号相同位宽,即是一个报文的宽度;输出地址Dataout_addr根据远端报文的RTID确定,相同RTID的远端报文对应着源端报文。
CN201510182909.8A 2015-04-17 2015-04-17 一种在线检测报文传输错误的方法与装置 Active CN104767658B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510182909.8A CN104767658B (zh) 2015-04-17 2015-04-17 一种在线检测报文传输错误的方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510182909.8A CN104767658B (zh) 2015-04-17 2015-04-17 一种在线检测报文传输错误的方法与装置

Publications (2)

Publication Number Publication Date
CN104767658A true CN104767658A (zh) 2015-07-08
CN104767658B CN104767658B (zh) 2018-05-29

Family

ID=53649285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510182909.8A Active CN104767658B (zh) 2015-04-17 2015-04-17 一种在线检测报文传输错误的方法与装置

Country Status (1)

Country Link
CN (1) CN104767658B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511992A (zh) * 2015-12-09 2016-04-20 浪潮电子信息产业股份有限公司 一种用于节点互连芯片验证的全局检测模块方法
CN106919748A (zh) * 2017-02-24 2017-07-04 郑州云海信息技术有限公司 提高fpga原型验证效率的装置及方法
CN115174426A (zh) * 2022-07-21 2022-10-11 北京物芯科技有限责任公司 一种输出报文检测方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090086735A1 (en) * 2007-09-28 2009-04-02 Siukwin Tsang Method of Skipping Nullified Packets During Mass Replay from Replay Buffer
CN102098291A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种基于fpga的网络安全日志处理方法和装置
CN102098289A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种基于fpga的网络安全连接封堵处理方法
CN102523139A (zh) * 2012-01-06 2012-06-27 深圳市共进电子股份有限公司 高速网络协议深度检测装置及检测方法
CN104104593A (zh) * 2014-04-24 2014-10-15 浪潮电子信息产业股份有限公司 一种基于多节点网络报文传输的请求响应管理机制

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090086735A1 (en) * 2007-09-28 2009-04-02 Siukwin Tsang Method of Skipping Nullified Packets During Mass Replay from Replay Buffer
CN102098291A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种基于fpga的网络安全日志处理方法和装置
CN102098289A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种基于fpga的网络安全连接封堵处理方法
CN102523139A (zh) * 2012-01-06 2012-06-27 深圳市共进电子股份有限公司 高速网络协议深度检测装置及检测方法
CN104104593A (zh) * 2014-04-24 2014-10-15 浪潮电子信息产业股份有限公司 一种基于多节点网络报文传输的请求响应管理机制

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511992A (zh) * 2015-12-09 2016-04-20 浪潮电子信息产业股份有限公司 一种用于节点互连芯片验证的全局检测模块方法
CN106919748A (zh) * 2017-02-24 2017-07-04 郑州云海信息技术有限公司 提高fpga原型验证效率的装置及方法
CN106919748B (zh) * 2017-02-24 2021-01-22 苏州浪潮智能科技有限公司 提高fpga原型验证效率的装置及方法
CN115174426A (zh) * 2022-07-21 2022-10-11 北京物芯科技有限责任公司 一种输出报文检测方法、装置、电子设备及存储介质
CN115174426B (zh) * 2022-07-21 2024-04-12 北京物芯科技有限责任公司 一种输出报文检测方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN104767658B (zh) 2018-05-29

Similar Documents

Publication Publication Date Title
CN104917645A (zh) 一种在线检测报文传输超时的方法与装置
US20160320451A1 (en) Simulation verification method for fpga function modules and system thereof
CN110008129B (zh) 一种存储定时快照的可靠性测试方法、装置及设备
CN104516921B (zh) 自动回复方法及装置
US7971110B2 (en) System and method for testing a serial attached small computer system interface
CN102135925B (zh) 用于检测错误检查和纠正内存的方法和装置
CN109299530B (zh) 一种仿真测试案例生成方法、系统、存储介质和终端
CN108573007A (zh) 检测数据一致性的方法、装置、电子设备及存储介质
CN100531063C (zh) 一种日志消息的过滤系统及方法
US8561025B1 (en) Flow and module level detecting and debugging with inclusion of generated log statements
CN106373616B (zh) 一种检测随机存储器故障的方法、装置和网络处理器
CN104767658A (zh) 一种在线检测报文传输错误的方法与装置
CN104461925A (zh) 一种存储设备地址对齐的自动纠正方法和装置
CN108170571B (zh) 一种芯片追踪调试装置及方法
CN106790195A (zh) 一种sql注入检测方法及装置
CN104765792B (zh) 一种维度数据存储的方法、装置及系统
CN109918221B (zh) 一种硬盘报错解析方法、系统、终端及存储介质
CN104954133B (zh) 证书写入校验方法及装置
CN102254569B (zh) 四倍数据速率qdr控制器及其实现方法
CN102855297B (zh) 一种控制数据传输的方法和连接器
US8943255B2 (en) Methods and structure for accounting for connection resets between peripheral component interconnect express bridges and host devices
CN104461796A (zh) 用于嵌入式8051cpu的jtag调试模块及调试方法
CN104519516B (zh) 对存储器进行测试的方法及装置
CN103984614A (zh) 一种监控方法及监控装置、电子设备
CN103870368A (zh) Sas扩展卡测试系统及方法

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