CN113297022B - 高速串行计算机扩展总线测试方法及装置 - Google Patents

高速串行计算机扩展总线测试方法及装置 Download PDF

Info

Publication number
CN113297022B
CN113297022B CN202110645406.5A CN202110645406A CN113297022B CN 113297022 B CN113297022 B CN 113297022B CN 202110645406 A CN202110645406 A CN 202110645406A CN 113297022 B CN113297022 B CN 113297022B
Authority
CN
China
Prior art keywords
type
slave device
packets
sending
type 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
Application number
CN202110645406.5A
Other languages
English (en)
Other versions
CN113297022A (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202110645406.5A priority Critical patent/CN113297022B/zh
Publication of CN113297022A publication Critical patent/CN113297022A/zh
Application granted granted Critical
Publication of CN113297022B publication Critical patent/CN113297022B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)

Abstract

本发明提供一种高速串行计算机扩展总线测试方法,应用于高速串行计算机扩展总线PCIE总线的控制器,包括:向从设备发送通知消息,以使所述从设备关闭针对第一类型数据包的应答功能;向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;向所述从设备发送多个第二类型数据包;等待第一预定时间后,验证所述第二类型数据包的优先级。本发明能够准确营造出对链路的占用状态,对数据包优先级的变化规则进行验证。

Description

高速串行计算机扩展总线测试方法及装置
技术领域
本发明涉及处理器技术领域,尤其涉及一种高速串行计算机扩展总线测试方法及装置。
背景技术
高速串行计算机扩展总线PCIE总线时一种广泛应用的计算机总线,具有点对点、高带宽以及可靠性传输等特点。PCIE总线通常被认为是具有三层结构的,即物理层、数据链路层和事务层。在PCIE总线的数据传输过程中,通常对不同层的数据采用不同类型的数据包进行传输。例如,数据链路层的数据传输采用数据链路层数据包DLLP,而事务层的数据传输采用事务层数据包TLP。不同的数据包具有不同的优先级,例如,DLLP的优先级通常情况下是低于TLP的。当较高优先级的数据包持续占用链路时,为了避免较低优先级的数据包发生阻塞的情况需要对较低优先级的数据包进行提高,以实现正常的发送。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:尽管协议中规定了当较高优先级的数据包持续占用链路时,为了避免较低优先级的数据包发生阻塞的情况,需要对较低优先级的数据包进行提高,以实现正常的发送;但是,在测试过程中,难以营造出该规则的适用场景,不能对该规则进行验证。
发明内容
本发明提供的高速串行计算机扩展总线测试方法及装置,能够准确营造出对链路的占用状态,对数据包优先级的变化规则进行验证。
第一方面,本发明提供一种高速串行计算机扩展总线测试方法,应用于高速串行计算机扩展总线PCIE总线的控制器,包括:
向从设备发送通知消息,以使所述从设备关闭针对第一类型数据包的应答功能;
向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;
向所述从设备发送多个第二类型数据包;
等待第一预定时间后,验证所述第二类型数据包的优先级。
可选地,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存包括:
接收所述从设备发送的用于确定应答功能已关闭的通知消息,并响应所述通知消息向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存。
可选地,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存包括:
等待第二预定时间后,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存。
可选地,向所述从设备发送多个第二类型数据包包括:
接收所述从设备发送的第一请求,响应所述第一请求产生多个第二类型数据包,并将所述多个第二类型数据包向所述从设备发送。
可选地,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存之后还包括:
向所述从设备发送用于确定重传缓存全部被占用的通知消息,以使所述从设备响应所述通知消息发出所述第一请求。
可选地,向所述从设备发送多个第一类型数据包,还用于使所述从设备等待第三预定时间后发出第一请求。
第二方面,本发明提供一种高速串行计算机扩展总线测试装置,应用于高速串行计算机扩展总线PCIE总线的控制器,包括:
通知模块,用于向从设备发送通知消息,以使所述从设备关闭针对第一类型数据包的应答功能;
占用模块,用于向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;
发送模块,用于向所述从设备发送多个第二类型数据包;
验证模块,用于等待第一预定时间后,验证所述第二类型数据包的优先级。
可选地,所述占用模块具体用于接收所述从设备发送的用于确定应答功能已关闭的通知消息,并响应所述通知消息向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;或者,
等待第二预定时间后,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存。
可选地,所述发送模块具体用于接收所述从设备发送的第一请求,响应所述第一请求产生多个第二类型数据包,并将所述多个第二类型数据包向所述从设备发送。
可选地,占用模块还用于向所述从设备发送用于确定重传缓存全部被占用的通知消息,以使所述从设备响应所述通知消息发出所述第一请求;或者,
所述占用模块还用于使所述从设备等待第三预定时间后发出第一请求。
在本发明提供的技术方案中,通过将从设备的对第一类型数据包的应答功能进行关闭,从而,从设备不会对第一类型数据包进行应答,当第一类型数据包不被应答时,PCIE控制器发送的第一类型数据包会进入重传缓存中,当多个第一类型数据包将重传缓存全部占用时,重传缓存中的多个第一类型数据包会持续的进行重发,从而对链路进行占用。此时,由于第二类型数据包优先级较低,在链路被占用时难以发送,直到第二类型数据包被阻塞的时间超过规定的时间,此时,如果第二类型数据包被发送出去,则表明第二类型数据包的优先级被提高,控制器能够正确执行优先级变化规则,如果第二类型数据包未能发送出去,则表明第二类型数据包的优先级未被提高,控制未能正确执行优先级变化规则。
附图说明
图1为本发明一实施例高速串行计算机扩展总线测试方法的流程图;
图2为本发明另一实施例高速串行计算机扩展总线测试方法具体交互图;
图3为本发明另一实施例高速串行计算机扩展总线测试方法具体交互图;
图4为本发明另一实施例高速串行计算机扩展总线测试装置的结构示意图;
图5为本发明另一实施例高速串行计算机扩展总线测试装置应用环境图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种高速串行计算机扩展总线测试方法,应用于高速串行计算机扩展总线PCIE总线的控制器,如图1所示,包括:
步骤101,向从设备发送通知消息,以使所述从设备关闭针对第一类型数据包的应答功能;在一些实施例中,应答功能的关闭是后续第一类型数据包持续占用链路的基础,即当从设备的应答功能关闭后,才能够使得控制器发送第一类型数据包后难以收到对应的应答,从而将第一类型数据包缓存至重发缓存中。
步骤102,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;在一些实施例中,PCIE控制器在从设备关闭应答功能后持续发送第一类型数据包,同时监测重传缓存的占用状态,当重传缓存被全部占用时,停止第一类型数据包的发送。此时,由于重传缓存中具有多个需要重传的第一类型数据包,因此,会持续进行第一类型数据包的重传发送,会形成对链路的持续占用。
步骤103,向所述从设备发送多个第二类型数据包;在一些实施例中,第二类型数据包的发送优先级通常低于第一类型数据包,由于步骤102中对链路形成了持续占用的环境,此时发送第二类型数据包,难以使第二类型数据包发送出去。
步骤104,等待第一预定时间后,验证所述第二类型数据包的优先级。在一些实施例中,第二类型数据包发送后,会有延时计时器进行计时,当达到规定的计时时间时,如果第二类型数据包仍被阻塞,会对第二类型数据包的优先级进行提升,提升后的第二类型数据包优先级会高于第一类型数据包的优先级,从而,能够成功发送出去。在本步骤中,当达到规定的计时时间时,如果第二类型数据包被成功发送,则确认优先级的调整规则被成功执行,如果第二类型数据包未能成功发送,则确认优先级的调整规则未被成功执行。
在本发明实施例提供的技术方案中,通过将从设备的对第一类型数据包的应答功能进行关闭,从而,从设备不会对第一类型数据包进行应答,当第一类型数据包不被应答时,PCIE控制器发送的第一类型数据包会进入重传缓存中,当多个第一类型数据包将重传缓存全部占用时,重传缓存中的多个第一类型数据包会持续的进行重发,从而对链路进行占用。此时,由于第二类型数据包优先级较低,在链路被占用时难以发送,直到第二类型数据包被阻塞的时间超过规定的时间,此时,如果第二类型数据包被发送出去,则表明第二类型数据包的优先级被提高,控制器能够正确执行优先级变化规则,如果第二类型数据包未能发送出去,则表明第二类型数据包的优先级未被提高,控制未能正确执行优先级变化规则。
作为一种可选的实施方式,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存包括:
接收所述从设备发送的用于确定应答功能已关闭的通知消息,并响应所述通知消息向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存。
在一些实施例中,PCIE控制器对于第一类型数据包的发送需要在应答功能已经关闭的前提下进行,才能够使得第一类型数据包对重传缓存进行占用。因此,本实施方式中,采用使从设备发送通知消息的方式触发第一类型数据包的发送,确保第一类型数据包的发送时在应答功能关闭后进行的。
作为一种可选的实施方式,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存包括:
等待第二预定时间后,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存。
在一些实施例中,应答功能的关闭操作需要一定的时间进行执行,为了确保第一类型数据包的发送是在应答功能被关闭之后开始的,本实施方式采用PCIE控制器进行等待的方式,在等待了一定的时间之后,通常被认为应答功能已经被关闭。因此,在等待一定时间之后再进行发送即可使得第一类型数据包的发送是在应答功能被关闭之后开始的。
作为一种可选的实施方式,向所述从设备发送多个第二类型数据包包括:
接收所述从设备发送的第一请求,响应所述第一请求产生多个第二类型数据包,并将所述多个第二类型数据包向所述从设备发送。
在一些实施例中,第二类型数据包的产生通常依赖于从设备对于PCIE控制器的请求,因此,在本实施方式中,采用从设备对PCIE控制器发出的第一请求来触发第二类型数据包的产生。例如,应答类型的数据链路层数据包AckDLLP就依赖于从设备发送的内存请求来产生。
作为一种可选的实施方式,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存之后还包括:
向所述从设备发送用于确定重传缓存全部被占用的通知消息,以使所述从设备响应所述通知消息发出所述第一请求。
在一些实施例中,由于在PCIE控制器的重传缓存被全部占用时,才能够使得链路被重传的第一类型数据包持续占用。因此,需要确保PCIE控制器的重传缓存被完全占用后从设备再进行第一请求的发出。因此,在本实施方式中,PCIE控制器的重传缓存被全部占用后,PCIE控制器向从设备发出通知,使从设备发出第一请求。
作为一种可选的实施方式,向所述从设备发送多个第一类型数据包,还用于使所述从设备等待第三预定时间后发出第一请求。
在一些实施例中,第一类型数据包对重传缓存的全部占用需要一定的时间才能达到,因此,在本实施方式中,从设备在等待第三预定时间之后再发送第一请求。在该预定时间内,PCIE控制器能够产生足够多的第一类型数据包对重传缓存进行占用,因此,在第三预定时间之后,即可认为重传缓存已经被全部占用。
附图2中示例性的展示了一种PCIE控制器与PCIE从设备的交互过程,具体如下:
步骤201,PCIE控制器设置重传次数计数器,关闭重传此时寄存器的翻转rollover功能,避免链路在多次重传后发生重训练;
步骤202,PCIE控制器设置重传时间计时器,将重传时间间隔设为最小值,使重传的第一类型数据包持续传输的时间占比增大,例如,增大持续第一类型数据包TLP传输的时间占比。
步骤203,PCIE控制器设置中断处理方式,避免严重错误信息Fatal ErrorMessage产生的中断导致的死机。
步骤204,PCIE控制器发送通知消息,以使所述从设备关闭针对第一类型数据包的应答功能;例如,采用控制程序设置Vendor-Specific DLLP发送寄存器,使PCIE控制器发送通知消息供应商自定义数据链路层数据包Vendor-Specific DLLP,触发PCEI从设备可编程PCIE设备End Point,关闭针对第一类型数据包确定应答/非确定应答数据链路层数据包ACK/NAK DLLP的自动回复功能。
步骤205,PCIE从设备接收到通知消息后,关闭针对第一类型数据包的应答功能,例如,PCIE从设备End Point接收到PCIE控制器发送的通知消息供应商自定义数据链路层数据包Vendor-Specific DLLP后,设置关闭自动回复针对第一类型数据包确定应答/非确定应答数据链路层数据包ACK/NAK DLLP功能。待该设置生效后,PCIE从设备发送通知消息给PCIE控制器,例如,End Point发送通知消息Vendor-Specific DLLP,通知PCIE控制器。
步骤206,PCIE控制器通过对通知消息对应的接收寄存器进行读取来确定是否收到通知消息,例如,PCIE控制器不断读对应的接收寄存器Vendor-Specific DLLP接收寄存器,检测是否收到通知消息Vendor-Specific DLLP,直到收到通知消息Vendor-SpecificDLLP为止。
步骤207,PCIE控制器向所述从设备发送多个第一类型数据包,例如,PCIE控制器可以发送多个长度为1的第一类型数据包内存写请求WMr TLP。因为End Point端不会回复ACK,所以全部内存写请求WMr TLP在等待ACK超时后,均会进入到重传Buffer中进行重传。PCIE控制器RC不断发送内存写请求WMr TLP直至存满重传Buffer。
步骤208,PCIE控制器发送通知消息给PCIE从设备,例如,采用控制程序设置PCIE控制器的Vendor-Specific DLLP发送寄存器,使PCIE控制器发送通知消息Vendor-Specific DLLP。
步骤209,PCIE从设备在收到步骤208的消息后,向PCIE控制器发送第一请求,使PCIE控制器产生多个第二类型数据包。例如,End Point收到Vendor-Specific DLLP之后,开始向PCIE控制器连续发送多个第一请求内存请求WMr TLP,让PCIE控制器产生多个第二类型数据包AckDLLP。此时PCIE控制器的发送链路上有持续传输的第一类型数据包TLP数据流,PCIE控制器产生的第二类型数据包AckDLLP必须提高优先级才能发出。因此,在等待第一预定时间后,即等待协议中规定的第二类型数据包AckDLLP延时计时器的计时时间之后,如果第二类型数据包AckDLLP成功发送,即表明第二类型数据包AckDLLP的优先级被提高,对应的优先级调整规则被成功执行,如果第二类型数据包AckDLLP未能成功发送,则表明第二类型数据包AckDLLP的优先级未被提高,对应的优先级调整规则未被成功执行。
步骤210,在上述验证结束后,为确保PCIE链路在后续能够正确的工作,需要将PCIE从设备的设置进行恢复,例如,在可编程End Point里恢复设置,自动回复ACK/NAKDLLP。在PCIE控制器收到可编程End Point回复的AckDLLP后,RC重传Buffer中的数据请求会被清空,后续可以正常传输数据。
为了准确的对PCIE协议中的优先级调整规则进行分析,可以利用协议分析仪抓取上述步骤201-209中的数据包的轨迹Trace。
尽管上述的步骤205和208中采用通知消息的方式触发后续的步骤,本领域技术人员应当能够理解,上述步骤205和208中的任意一个步骤中发出通知的方式都可以被省略,当步骤205和208中的发出通知的方式被省略时,步骤206和步骤209中可以采用等待一段时间后执行对应操作的方式进行执行。
附图3中示例性的展示了一种PCIE控制器与PCIE从设备的交互过程,具体如下:
步骤301,PCIE控制器配置重传次数计数器,关闭重传次数计数器的翻转rollover功能,避免由于多次重传导致链路重训练。
步骤302,PCIE控制器配置重传时间计时器,将重传时间间隔设为最小值,从而增大重传的第一类型数据包的持续传输时间占比,例如可以增大持续第一类型数据包TLP传输的时间占比。
步骤303,PCIE控制器设置中断处理方式,避免严重错误信息Fatal ErrorMessage产生的中断导致的死机。
步骤304,PCIE控制器发送通知消息,以使所述从设备关闭针对第一类型数据包的应答功能;例如,采用控制程序设置Vendor-Specific DLLP发送寄存器,使PCIE控制器发送通知消息供应商自定义数据链路层数据包Vendor-Specific DLLP,触发PCIE从设备可编程PCIE设备End Point关闭针对第一类型数据包确定应答/非确定应答数据链路层数据包ACK/NAK DLLP的自动回复功能。
步骤305,PCIE从设备接收到通知消息后,关闭针对第一类型数据包的应答功能,例如,PCIE从设备End Point接收到PCIE控制器发送的通知消息供应商自定义数据链路层数据包Vendor-Specific DLLP后,设置关闭自动回复针对第一类型数据包确定应答/非确定应答数据链路层数据包ACK/NAK DLLP功能。
步骤306,PCIE控制器等待第二预定时间,例如,PCIE控制器等待100ms,保证EndPoint的设置已经生效。
步骤307,PCIE控制器向所述从设备发送多个第一类型数据包,例如,PCIE控制器可以发送多个长度为1的第一类型数据包内存写请求WMr TLP。因为End Point端不会回复ACK,所以全部内存写请求在等待ACK超时后,均会进入到重传Buffer中进行重传。PCIE控制器RC不断发送内存写请求直至存满重传Buffer。
步骤308,PCIE从设备等待第三预定时间,例如,PCIE从设备等待1s,保证PCIE控制器重传Buffer已被写满。
步骤309,PCIE从设备向PCIE控制器发送第一请求,使PCIE控制器产生多个第二类型数据包。例如,End Point在等待时间结束后,开始向PCIE控制器连续发送多个第一请求内存请求WMr TLP,让PCIE控制器产生多个第二类型数据包AckDLLP。此时PCIE控制器的发送链路上有持续传输的第一类型数据包TLP数据流,PCIE控制器产生的第二类型数据包AckDLLP必须提高优先级才能发出。因此,在等待第一预定时间后,即等待协议中规定的第二类型数据包AckDLLP延时计时器的计时时间之后,如果第二类型数据包AckDLLP成功发送,即表明第二类型数据包AckDLLP的优先级被提高,对应的优先级调整规则被成功执行,如果第二类型数据包AckDLLP未能成功发送,则表明第二类型数据包AckDLLP的优先级未被提高,对应的优先级调整规则未被成功执行。
步骤310,在上述验证结束后,为确保PCIE链路在后续能够正确的工作,需要将PCIE从设备的设置进行回复,例如,在可编程End Point里恢复设置,自动回复ACK/NAKDLLP。在PCIE控制器收到可编程End Point回复的AckDLLP后,RC重传Buffer中的数据请求会被清空,后续可以正常传输数据。
为了准确的对PCIE协议中的优先级调整规则进行分析,可以利用协议分析仪抓取上述步骤301-309中的数据包的轨迹Trace。
在图2和图3中所示的示例性实施方式中,利用PCIe协议分析仪抓取整个过程的Trace,可以发现因为暂停了对第一类型数据包的应答,同时PCIE控制器不断地下发新的数据请求,因此使得重传缓存Buffer数据不断累积并重新发送。由于PCIE控制器不断发送TLP,使得AckDLLP的发生阻塞,从而导致多个AckDLLP的合并。但是,本领域技术人员应当能够理解,AckDLLP阻塞并不是一直持续的。一旦AckDLLP延时计时器超时,会提高AckDLLP优先级,变为紧急类型Urgent。按照设计,紧急类型确认答复数据链路层数据包UrgentAckDLLP会先于重传Buffer中的事务层数据包TLP发出,这样就验证了AckDLLP,重传BufferTLP和Urgent AckDLLP的优先级。另外,根据Trace中数据的时间记录,可以验证AckDLLP延时计时器的设置是否符合要求。TLP长度设置为1,可以在AckDLLP优先级提高的时候更容易从阻塞TLP中发送,使得AckDLLP延时计时器的验证更加精确。
本发明实施例还提供一种高速串行计算机扩展总线测试装置,应用于高速串行计算机扩展总线PCIE总线的控制器,如图4所示,包括:
通知模块,用于向从设备发送通知消息,以使所述从设备关闭针对第一类型数据包的应答功能;在一些实施例中,应答功能的关闭是后续第一类型数据包持续占用链路的基础,即当从设备的应答功能关闭后,才能够使得控制器发送第一类型数据包后难以收到对应的应答,从而将第一类型数据包缓存至重发缓存中。
占用模块,用于向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;在一些实施例中,PCIE控制器在从设备关闭应答功能后持续发送第一类型数据包,同时监测重传缓存的占用状态,当重传缓存被全部占用时,停止第一类型数据包的发送。此时,由于重传缓存中具有多个需要重传的第一类型数据包,因此,会持续进行第一类型数据包的重传发送,会形成对链路的持续占用。
发送模块,用于向所述从设备发送多个第二类型数据包;在一些实施例中,第二类型数据包的发送优先级通常低于第一类型数据包,由于步骤102中对链路形成了持续占用的环境,此时发送第二类型数据包,难以使第二类型数据包发送出去。
验证模块,用于等待第一预定时间后,验证所述第二类型数据包的优先级。在一些实施例中,第二类型数据包发送后,会有延时计时器进行计时,当达到规定的计时时间时,如果第二数据包仍被阻塞,会对第二类型数据包的优先级进行提升,提升后的第二类型数据包优先级会高于第一类型数据包的优先级,从而,能够成功发送出去。在本步骤中,当达到规定的计时时间时,如果第二数据包被成功发送,则确认优先级的调整规则被成功执行,如果第二数据包未能成功发送,则确认优先级的调整规则未被成功执行。
在本发明实施例提供的技术方案中,通过将从设备的对第一类型数据包的应答功能进行关闭,从而,从设备不会对第一类型数据包进行应答,当第一类型数据包不被应答时,PCIE控制器发送的第一类型数据包会进入重传缓存中,当多个第一类型数据包将重传缓存全部占用时,重传缓存中的多个第一类型数据包会持续的进行重发,从而对链路进行占用。此时,由于第二类型数据包优先级较低,在链路被占用时难以发送,直到第二类型数据包被阻塞的时间超过规定的时间,此时,如果第二类型数据包被发送出去,则表明第二类型数据包的优先级被提高,控制器能够正确执行优先级变化规则,如果第二类型数据包未能发送出去,则表明第二类型数据包的优先级未被提高,控制器未能正确执行优先级变化规则。
作为一种可选的实施方式,所述占用模块具体用于接收所述从设备发送的用于确定应答功能已关闭的通知消息,并响应所述通知消息向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;在一些实施例中,PCIE控制器对于第一类型数据包的发送需要在应答功能已经关闭的前提下进行,才能够使得第一类型数据包对重传缓存进行占用。因此,本实施方式中,采用使从设备发送通知消息的方式触发第一类型数据包的发送,确保第一类型数据包的发送时在应答功能关闭后进行的。或者,
等待第二预定时间后,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存。在一些实施例中,应答功能的关闭操作需要一定的时间进行执行,为了确保第一类型数据包的发送是在应答功能被关闭之后开始的,本实施方式采用PCIE控制器进行等待的方式,在等待了一定的时间之后,通常被认为应答功能已经被关闭。因此,在等待一定时间之后再进行发送即可使得第一类型数据包的发送是在应答功能被关闭之后开始的。
作为一种可选的实施方式,所述发送模块具体用于接收所述从设备发送的第一请求,响应所述第一请求产生多个第二类型数据包,并将所述多个第二类型数据包向所述从设备发送。在一些实施例中,第二类型数据包的产生通常依赖于从设备对于PCIE控制器的请求,因此,在本实施方式中,采用从设备对PCIE控制器发出的第一请求来触发第二类型数据包的产生。例如,应答类型的数据链路层数据包AckDLLP就依赖于从设备发送的内存请求来产生。
作为一种可选的实施方式,占用模块还用于向所述从设备发送用于确定重传缓存全部被占用的通知消息,以使所述从设备响应所述通知消息发出所述第一请求;在一些实施例中,由于在PCIE控制器的重传缓存被全部占用时,才能够使得链路被重传的第一类型数据包持续占用。因此,需要确保PCIE控制器的重传缓存被完全占用后再进行第一请求的发出。因此,在本实施方式中,PCIE控制器的重传缓存被全部占用后,PCIE控制器向从设备发出通知,使从设备发出第一请求。或者,
所述占用模块还用于使所述从设备等待第三预定时间后发出第一请求。在一些实施例中,第一类型数据包对重传缓存的全部占用需要一定的时间才能达到,因此,在本实施方式中,从设备在等待第三预定时间之后再发送第一请求。在该预定时间内,PCIE控制器能够产生足够多的第一类型数据包对重传缓存进行占用,因此,在第三预定时间之后,即可认为重传缓存已经被全部占用。
如图5所示,提供了上述方法和装置的应用环境,例如,对于PCIE控制的操作可由操作系统中安装的PCIE控制器控制程序,即RC控制程序来控制实现,而对于PCIE从设备,例如可编程EndPoint的控制可由PC机上安装的PCIE从设备控制程序,即EP控制程序来控制实现。
本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种高速串行计算机扩展总线测试方法,其特征在于,应用于高速串行计算机扩展总线PCIE总线的控制器,包括:
向从设备发送通知消息,以使所述从设备关闭针对第一类型数据包的应答功能;
向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;
向所述从设备发送多个第二类型数据包;其中,所述第二类型数据包的优先级低于所述第一类型数据包的优先级;
等待第一预定时间后,依据所述第二类型数据包是否被成功发送,验证所述第二类型数据包的优先级。
2.根据权利要求1所述的方法,其特征在于,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存包括:
接收所述从设备发送的用于确定应答功能已关闭的通知消息,并响应所述通知消息向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存。
3.根据权利要求1所述的方法,其特征在于,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存包括:
等待第二预定时间后,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存。
4.根据权利要求1所述的方法,其特征在于,向所述从设备发送多个第二类型数据包包括:
接收所述从设备发送的第一请求,响应所述第一请求产生多个第二类型数据包,并将所述多个第二类型数据包向所述从设备发送。
5.根据权利要求4所述的方法,其特征在于,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存之后还包括:
向所述从设备发送用于确定重传缓存全部被占用的通知消息,以使所述从设备响应所述通知消息发出所述第一请求。
6.根据权利要求4所述的方法,其特征在于,向所述从设备发送多个第一类型数据包,还用于使所述从设备等待第三预定时间后发出第一请求。
7.一种高速串行计算机扩展总线测试装置,其特征在于,应用于高速串行计算机扩展总线PCIE总线的控制器,包括:
通知模块,用于向从设备发送通知消息,以使所述从设备关闭针对第一类型数据包的应答功能;
占用模块,用于向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;
发送模块,用于向所述从设备发送多个第二类型数据包;其中,所述第二类型数据包的优先级低于所述第一类型数据包的优先级;
验证模块,用于等待第一预定时间后,依据所述第二类型数据包是否被成功发送,验证所述第二类型数据包的优先级。
8.根据权利要求7所述的装置,其特征在于,所述占用模块具体用于接收所述从设备发送的用于确定应答功能已关闭的通知消息,并响应所述通知消息向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存;或者,
等待第二预定时间后,向所述从设备发送多个第一类型数据包,以使所述第一类型数据包占用所述控制器的全部重传缓存。
9.根据权利要求7所述的装置,其特征在于,所述发送模块具体用于接收所述从设备发送的第一请求,响应所述第一请求产生多个第二类型数据包,并将所述多个第二类型数据包向所述从设备发送。
10.根据权利要求9所述的装置,其特征在于,占用模块还用于向所述从设备发送用于确定重传缓存全部被占用的通知消息,以使所述从设备响应所述通知消息发出所述第一请求;或者,
所述占用模块还用于使所述从设备等待第三预定时间后发出第一请求。
CN202110645406.5A 2021-06-09 2021-06-09 高速串行计算机扩展总线测试方法及装置 Active CN113297022B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110645406.5A CN113297022B (zh) 2021-06-09 2021-06-09 高速串行计算机扩展总线测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110645406.5A CN113297022B (zh) 2021-06-09 2021-06-09 高速串行计算机扩展总线测试方法及装置

Publications (2)

Publication Number Publication Date
CN113297022A CN113297022A (zh) 2021-08-24
CN113297022B true CN113297022B (zh) 2023-03-24

Family

ID=77327779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110645406.5A Active CN113297022B (zh) 2021-06-09 2021-06-09 高速串行计算机扩展总线测试方法及装置

Country Status (1)

Country Link
CN (1) CN113297022B (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706924B2 (en) * 2008-08-14 2014-04-22 Via Technologies, Inc. PCI-express data link transmitter employing a plurality of dynamically selectable data transmission priority rules
CN103532807B (zh) * 2013-10-12 2017-10-03 丁贤根 一种用于pcie数据服务质量管理的方法
CN106027349B (zh) * 2016-04-29 2019-01-18 重庆爱思网安信息技术有限公司 一种pci-e总线接口传输卡及基于该传输卡的数据传输方法
CN107122326B (zh) * 2017-04-28 2019-12-13 深圳市紫光同创电子有限公司 外部组件连接接口的验证装置
CN111131091B (zh) * 2019-12-25 2021-05-11 中山大学 一种面向片上网络的片间互连方法和系统
CN112631883B (zh) * 2020-12-15 2023-10-13 成都海光集成电路设计有限公司 一种PCIe数据传输压力制造方法、系统及电子设备

Also Published As

Publication number Publication date
CN113297022A (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
JP3671057B2 (ja) ネットワークアダプターにおけるパケットの自動再送信のための方法及び装置
US20110035180A1 (en) Diagnostic apparatus and system adapted to diagnose occurrence of communication error
EP0094180A2 (en) Dual-count, round-robin distributed arbitration technique for serial buses
JPS6079844A (ja) ホツトキヤリア発生場所監視方法
CN112559407B (zh) Stp链路层状态机优化方法
CN105700967A (zh) 一种外设部件内部互联PCIe设备及其检测方法
JP2006191338A (ja) バス内のデバイスの故障診断を行うゲートウエイ装置
EP2904765B1 (en) Method and apparatus using high-efficiency atomic operations
JP5035176B2 (ja) 伝送システム、伝送装置および伝送方法
JP3829679B2 (ja) 通信制御装置
CN114221903B (zh) 一种数据传输方法及装置
CN113297022B (zh) 高速串行计算机扩展总线测试方法及装置
US20210392187A1 (en) Data transmission and network interface controller
US12013806B2 (en) I3C pending read with retransmission
CN212343793U (zh) Rs485环状网路的备援处理系统
JPH11252124A (ja) 通信システム、通信装置及びその制御方法
JP3049042B1 (ja) バス制御装置及びバス制御方法
JPH05233538A (ja) シリアルデータ転送装置
JP4941212B2 (ja) 電子デバイス、データ処理装置、及びバス制御方法
JPS63246055A (ja) パケツト送受信装置
CN113157510A (zh) 高速串行计算机扩展总线事务排序规则测试方法及装置
JP2003143150A (ja) 伝送装置
WO2012093475A1 (ja) 情報転送装置および情報転送装置の情報転送方法
US7596724B2 (en) Quiescence for retry messages on bidirectional communications interface
JP4666369B2 (ja) Usbデバイス

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant