CN104767658B - 一种在线检测报文传输错误的方法与装置 - Google Patents
一种在线检测报文传输错误的方法与装置 Download PDFInfo
- Publication number
- CN104767658B CN104767658B CN201510182909.8A CN201510182909A CN104767658B CN 104767658 B CN104767658 B CN 104767658B CN 201510182909 A CN201510182909 A CN 201510182909A CN 104767658 B CN104767658 B CN 104767658B
- Authority
- CN
- China
- Prior art keywords
- message
- distal end
- ram
- input
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000005540 biological transmission Effects 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 10
- 238000012795 verification Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 12
- 230000011664 signaling Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 description 5
- 210000003128 head Anatomy 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 210000000720 eyelash Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (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 (5)
1.一种在线检测报文传输错误的方法,其特征在于,基于在线检测报文传输错误的装置,该装置的结构包括:
RAM输入信号模块,即源端报文处理模块,该RAM输入信号模块用于对输入的源端报文信号进行过滤,根据报文不同选择是否存入RAM中;
RAM输出信号模块,即远端报文处理模块,该RAM输出信号模块输出的控制信号数目和RAM输入信号模块输入的控制信号数目一致;
远端报文存储FIFO,用于当RAM输入信号模块有数据输入的时候,先存储远端报文作为缓冲;当RAM输出信号模块输出数据的时候,再从此FIFO中提取远端报文进行比较;
协议对比模块,根据本地源端报文推测出理论上应该得到的远端报文,然后与实际得到的远端报文进行对比,判断实际远端返回的报文是否正确,该协议对比模块内置协议查找表,记录在各种情况下某个本地源端报文所对应出现的远端报文情况;
RAM输入信号模块的输入信号包括输入数据信号Data_in、输入地址控制信号DataIn_addr、输入使能信号DataIn_en、输入时钟信号Clk_in,其中输入数据信号Data_in即为输入的报文;输入使能信号DataIn_en来自于每个数据包的输入使能信号,用来对报文进行选择是否输入存储空间RAM中;输入地址控制信号DataIn_addr,当有效报文输入的时候,地址根据报文中的RTID来确定;
相对应的,RAM输出信号模块的输出信号包括输出数据信号Data_out、输出数据使能信号Dataout_en、输出地址Dataout_addr、输出时钟Clk_out;其中输出数据信号Data_out是和输入数据信号相同位宽,即是一个报文的宽度;输出地址Dataout_addr根据远端报文的RTID确定,相同RTID的远端报文对应着源端报文;
其具体实现过程为:
在FPGA验证平台中,构建一个存储空间RAM;
检测程序启动,RAM接收并处理由处理器发送过来的源端报文;
然后对处理器发出的源端报文和远端返回的报文进行协议比较,确定远端返回的报文种类是否是处理器要求的报文种类,是则删除对应存储空间中的报文,并进行下一报文存储;否则进行错误报错;
所述协议比较通过查找表完成,该查找表记录远端报文和本地源端报文的各种规则协议,即在报文传输协议下,其记录本地源端的每种报文所对应着应该返回的远端报文种类,且协议比较包括以下两种情况:
第一种、当没有处理器发送过来本地源端报文要存储,且有报文从远端返回时;
第二种、当源端报文和远端报文同时到来时。
2.根据权利要求1所述的一种在线检测报文传输错误的方法,其特征在于,所述RAM的地址是唯一的且该地址由报文的RTID数值来确定。
3.根据权利要求1所述的一种在线检测报文传输错误的方法,其特征在于,所述源端报文储存入存储空间RAM之前进行过滤的步骤,即过滤源端报文的纯数据,保留头报文信息,同时过滤掉不需要的bit位上的数据。
4.根据权利要求1所述的一种在线检测报文传输错误的方法,其特征在于,所述第一种情况下的协议比较过程为:
首先根据返回报文的RTID从存储空间中提取相关本地源端报文;
提取的源端报文和远端返回的报文共同进行协议比较;
先根据本地源端报文的种类,在查找表中找到对应着的应该返回报文的种类或者相关数据信息;
再根据找出来的报文种类去比较此时远端返回的报文;
如果返回的远端报文不是所希望的报文,则认为远端返回报文错误,系统出现错误报错;反之则为正常,对应存储空间中的报文可以被删除了,为下一条报文存储做准备。
5.根据权利要求1所述的一种在线检测报文传输错误的方法,其特征在于,所述第二种情况下的协议比较过程为:
首先设计一个优先级,即将源端报文的输入优先级高于远端返回报文的优先级;
在远端报文返回输入的位置设置一个FIFO缓存,当有源端报文输入时,远端返回报文先存入该FIFO缓存中缓存;
当源端报文处理完后,从FIFO缓存中提取返回报文;
根据本地源端报文的种类,在查找表中找到对应着的应该返回报文的种类或者相关数据信息;
再根据找出来的报文种类去比较此时远端返回的报文;
如果返回的远端报文不是所希望的报文,则认为远端返回报文错误,系统出现错误报错;反之则为正常,对应存储空间中的报文可以被删除了,为下一条报文存储做准备。
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 CN104767658A (zh) | 2015-07-08 |
CN104767658B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511992A (zh) * | 2015-12-09 | 2016-04-20 | 浪潮电子信息产业股份有限公司 | 一种用于节点互连芯片验证的全局检测模块方法 |
CN106919748B (zh) * | 2017-02-24 | 2021-01-22 | 苏州浪潮智能科技有限公司 | 提高fpga原型验证效率的装置及方法 |
CN115174426B (zh) * | 2022-07-21 | 2024-04-12 | 北京物芯科技有限责任公司 | 一种输出报文检测方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098289A (zh) * | 2010-12-17 | 2011-06-15 | 天津曙光计算机产业有限公司 | 一种基于fpga的网络安全连接封堵处理方法 |
CN102098291A (zh) * | 2010-12-17 | 2011-06-15 | 天津曙光计算机产业有限公司 | 一种基于fpga的网络安全日志处理方法和装置 |
CN102523139A (zh) * | 2012-01-06 | 2012-06-27 | 深圳市共进电子股份有限公司 | 高速网络协议深度检测装置及检测方法 |
CN104104593A (zh) * | 2014-04-24 | 2014-10-15 | 浪潮电子信息产业股份有限公司 | 一种基于多节点网络报文传输的请求响应管理机制 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7792014B2 (en) * | 2007-09-28 | 2010-09-07 | Integrated Device Technology, Inc. | Method of skipping nullified packets during mass replay from replay buffer |
-
2015
- 2015-04-17 CN CN201510182909.8A patent/CN104767658B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098289A (zh) * | 2010-12-17 | 2011-06-15 | 天津曙光计算机产业有限公司 | 一种基于fpga的网络安全连接封堵处理方法 |
CN102098291A (zh) * | 2010-12-17 | 2011-06-15 | 天津曙光计算机产业有限公司 | 一种基于fpga的网络安全日志处理方法和装置 |
CN102523139A (zh) * | 2012-01-06 | 2012-06-27 | 深圳市共进电子股份有限公司 | 高速网络协议深度检测装置及检测方法 |
CN104104593A (zh) * | 2014-04-24 | 2014-10-15 | 浪潮电子信息产业股份有限公司 | 一种基于多节点网络报文传输的请求响应管理机制 |
Also Published As
Publication number | Publication date |
---|---|
CN104767658A (zh) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459939B (zh) | 一种日志收集方法、装置、终端设备及存储介质 | |
CN104917645B (zh) | 一种在线检测报文传输超时的方法与装置 | |
CN104410692B (zh) | 一种用于重复文件上传的方法和系统 | |
CN109491905A (zh) | 前端测试方法、装置及电子设备 | |
CN107911249B (zh) | 一种网络设备的命令行发送方法、装置和设备 | |
CN104767658B (zh) | 一种在线检测报文传输错误的方法与装置 | |
CN111209151A (zh) | 基于linux的NVME SSD热拔插测试方法、系统、终端及存储介质 | |
US7971110B2 (en) | System and method for testing a serial attached small computer system interface | |
CN109345200A (zh) | 基于大批量报告单的自动审核方法及装置、计算机可读存储介质 | |
CN106603296A (zh) | 日志的处理方法及装置 | |
CN104468399B (zh) | 数据传输方法、装置和服务器 | |
CN108572793A (zh) | 数据写入和数据恢复方法、装置、电子设备及存储介质 | |
CN108733525A (zh) | 一种存储模块自动测试并校验正确性的方法及系统 | |
CN104579548B (zh) | 基于管理数据输入输出多源协议的传输方法及装置 | |
CN115129249A (zh) | Sas链路拓扑识别管理方法、系统、终端及存储介质 | |
CN104765792B (zh) | 一种维度数据存储的方法、装置及系统 | |
CN106373616B (zh) | 一种检测随机存储器故障的方法、装置和网络处理器 | |
CN109918221B (zh) | 一种硬盘报错解析方法、系统、终端及存储介质 | |
CN105813114B (zh) | 一种确定接入共享主机方法及装置 | |
CN102413247B (zh) | 终端死机现场的恢复方法及装置 | |
CN114116337A (zh) | 基于pcie链路配置的硬盘测试方法、系统、终端及存储介质 | |
CN106257257B (zh) | 一种检测光模块星座图的方法、装置及虚拟矢量分析仪 | |
US9791509B2 (en) | Monitoring microprocessor interface information for a preset service using an address based filter | |
CN106649011A (zh) | 一种服务器设备的检测方法和装置 | |
CN106789889B (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 |