CN109428771B - 一种高速外围组件互联报文性能检测方法和装置 - Google Patents

一种高速外围组件互联报文性能检测方法和装置 Download PDF

Info

Publication number
CN109428771B
CN109428771B CN201710719675.5A CN201710719675A CN109428771B CN 109428771 B CN109428771 B CN 109428771B CN 201710719675 A CN201710719675 A CN 201710719675A CN 109428771 B CN109428771 B CN 109428771B
Authority
CN
China
Prior art keywords
pcie
packet
message
completion
time point
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
CN201710719675.5A
Other languages
English (en)
Other versions
CN109428771A (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.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips 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 Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN201710719675.5A priority Critical patent/CN109428771B/zh
Publication of CN109428771A publication Critical patent/CN109428771A/zh
Application granted granted Critical
Publication of CN109428771B publication Critical patent/CN109428771B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种高速外围组件互联(PCIe)报文性能检测方法。根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回;根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数。本发明还公开了一种PCIe报文性能检测装置、存储器和信息处理装置。

Description

一种高速外围组件互联报文性能检测方法和装置
技术领域
本发明涉及数字通信技术,尤其涉及一种高速外围组件互联(PCIe,PeripheralComponent Interconnect express)报文性能检测方法和装置。
背景技术
PCIe作为一种高速的串行通信总线,具有很高的数据吞吐率;而且,由于PCIe设备具有较小的物理尺寸,加上支持热拔插等功能,在计算机、汽车电子、医疗器材和航空航天等方向有大量应用案例;为了满足不断发展的市场需求,PCIe协议经过十几年的发展,其性能在不断的演进;PCIe由起初的1.x单数据通路(lane)传输速率2.5Gbps,发展到现在PCIe4.0单lane传输速率16Gbps,其传输速率在成倍增加。
由于PCIe本身广阔的应用前景,很多电子厂商都致力于PCIe知识产权模块(IP)的研发,像Intel、Synopsys、PLAD和Cadence等都有自己的PCIe IP方案,这些方案应用于各类的片上系统(SoC,System on Chip)架构中;
在SoC系统架构中,PCIe作为一个重要的节点,负责将各个主设备(Master)传输的数据进行板间或者片间进行互传,PCIe总线带宽利用率直接影响到整个芯片的性能指标;
SoC系统架构中,涉及到PCIe的事务层数报文(TLP,Transaction Layer Packet)的传输;对PCIe TLP性能进行检测,进而评估PCIe总线带宽的利用率,可以最终实现量化PCIe的性能指标,指导SoC设计;但是,目前尚无对PCIe TLP进行监控和检测的方案。
因此,如何实现对PCIe TLP数据报文性能的检测,进而评估PCIe总线的利用率,是亟待解决的问题。
发明内容
有鉴于此,本发明实施例期望提供一种PCIe报文性能检测方法和装置,能实现对PCIe TLP数据报文性能的检测,进而评估PCIe总线的利用率。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供一种高速外围组件互联PCIe报文性能检测方法,所述方法包括:
根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回;
根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数。
上述方案中,所述根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文传输性能参数,包括:
将第一类型数据报文的发送时间和所述第一类型数据报文对应的完成报文的接收时间点之差,确定为单笔延时;
根据第一预设时间段中所述各第一类型数据报文对应的单笔延时,确定在所述第一预设时间段内的PCIe报文的延时性能参数;
所述PCIe报文的延时性能参数包括:最小单笔延时、和/或最大单笔延时、和/或平均单笔延时。
上述方案中,所述根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文传输性能参数,包括:
将指定时间点未接受到对应完成报文的所述各第一类型数据报文的总数确定为所述指定时间点PCIe报文的未完成量Outstanding。
上述方案中,在确定所述指定时间点PCIe报文的Outstanding之后,所述方法还包括:
根据预设第二预设时间段中各时间点对应的所述PCIe报文的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数;
所述PCIe报文的Outstanding性能参数包括:平均Outstanding、和/或最大Outstanding。
上述方案中,所述方法还包括:
获取第三预设时间段内有效所述各第一类型数据报文、和/或有效各第二类型数据报文的数量、和/或长度,确定所述第三预设时间段内PCIe数据报文传输带宽。
上述方案中,所述第二类型数据报文为PCIe事务层报告事务TLP Post数据报文。
上述方案中,在获取对应所述各第一类型数据报文的各完成报文的接收时间点时,所述方法还包括:
当接收到的完成报文由一个以上的子完成报文组成,且各子完成报文的长度之和,等于所述完成对应的第一类型数据报文中长度指示字段所指示长度时,将最后一个子完成报文的接收时间确定为所述完成报文的接收时间。
上述方案中,所述数据标识包括:第一类型数据报文头中的:标签Tag、和/或请求标识Requester ID、和/或完成标识Completer ID、和/或总线号Bus Number、和/或设备号Device Number、和/或功能号Function Number。
上述方案中,所述第一类型数据报文包括:PCIe TLP非报告事务Non-Post数据报文。
本发明实施例还提供一种PCIe报文性能检测装置,所述装置包括:获取模块和确定模块;其中,
所述获取模块,用于根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回;
所述确定模块,用于根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数。
上述方案中,所述确定模块,具体用于:
将第一类型数据报文的发送时间和所述第一类型数据报文对应的完成报文的接收时间点之差,确定为单笔延时;
根据第一预设时间段中所述各第一类型数据报文对应的单笔延时,确定在所述第一预设时间段内的PCIe报文的延时性能参数;
所述PCIe报文的延时性能参数包括:最小单笔延时、和/或最大单笔延时、和/或平均单笔延时。
上述方案中,所述确定模块,具体用于:
将指定时间点未接受到对应完成报文的所述各第一类型数据报文的总数确定为所述指定时间点PCIe报文的量Outstanding。
上述方案中,所述确定模块,具体用于:
根据预设第二预设时间段中各时间点对应的所述PCIe报文的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数;
所述PCIe报文的Outstanding性能参数包括:平均Outstanding、和/或最大Outstanding。
上述方案中,所述确定模块还用于:
获取第三预设时间段内有效所述各第一类型数据报文、和/或有效各第二类型数据报文的数量、和/或长度,确定所述第三预设时间段内PCIe数据报文传输带宽。
上述方案中,所述第二类型数据报文为PCIe TLP Post数据报文。
上述方案中,所述获取模块还用于:
当接收到的完成报文由一个以上的子完成报文组成,且各子完成报文的长度之和,等于所述完成对应的第一类型数据报文中长度指示字段所指示长度时,将最后一个子完成报文的接收时间确定为所述完成报文的接收时间。
上述方案中,其特征在于,所述数据标识包括:第一类型数据报文头中的:标签Tag、和/或请求标识Requester ID、和/或完成标识Completer ID、和/或总线号BusNumber、和/或设备号Device Number、和/或功能号Function Number。
上述方案中,所述第一类型数据报文包括:PCIe TLP Non-Post数据报文。
本发明实施例还提供一种存储介质,其上存储由可执行程序,所述可执行程序被处理器执行时实现上述信息处理方法的步骤。
本发明实施例还提供一种信息处理装置,包括处理器、存储器及存储在存储器上并能够有所述处理器运行的可执行程序,所述处理器运行所述可执行程序时执行上述信息处理方法的步骤。
本发明实施例所提供的PCIe报文性能检测方法和装置,根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回;根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数。如此,根据第一类型数据报文即PCIe TLP非报告事务(Non-Post)数据报文的处理,实现对了对PCIe TLP数据报文性能的检测,进而根据PCIe报文性能参数可以评估PCIe总线的利用率
附图说明
图1为本发明实施例PCIe报文性能检测方法的流程示意图;
图2为本发明实施例PCIe TLP Non-post数据报文的包头信息示意图;
图3为本发明实施例完成报文的包头信息示意图;
图4为本发明实施例PCIe报文的Outstanding计数示意图;
图5为本发明实施例具体实现方式结构框图;
图6为本发明实施例PCIe报文性能检测装置的组成结构示意图。
具体实施方式
本发明实施例中,根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回;根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数。
下面结合实施例对本发明再作进一步详细的说明。
本发明实施例提供的PCIe报文性能检测方法,如图1所示,所述方法包括:
步骤101:根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回;
通常,PCIe的TLP包括两种类型的事务(Transaction)数据报文:Non-Post数据报文和报告事务(Post)数据报文;如存储器读和配置读写数据报文等采用Non-Post数据报文,存储器写等采用Post数据报文;
这里,所述第一类型数据报文为Non-Post数据报文,所述数据标识包括:第一类型数据报文包头中的:标签(Tag)、和/或请求标识(Requester ID)、和/或完成标识(Completer ID)、和/或总线号(Bus Number)、和/或设备号(Device Number)、和/或功能号(Function Number)等;
具体的,PCIe设备发送的TLP数据报文包头结构中,用Bus Number、DeviceNumber、Function Number以及Tag来表征一个Transaction数据报文的标识(ID)号,TLP总线中用这个Transaction ID来表征不同的Transaction数据报文;
在同一个PCIe设备发送的TLP包中,其Bus Number、Device Number、FunctionNumber是相同的,PCIe设备只需要管理Tag资源,合理分配保证传输正常。对于不同PCIe设备发送的TLP数据报文,可以通过请求标识(Requester ID)、和/或完成标识(CompleterID)结合Tag来表征不同的Transaction数据报文;
因此,针对不同的TLP数据报文,可以通过结合标签Tag、和/或Requester ID、和/或Completer ID、和/或Bus Number、和/或号Device Number、和/或Function Number等来区分;如在在一个端对端场景中,如果只需要检测一个PCIe设备的数据报文情况,可以仅检测Tag来识别该设备发送的数据报文;
对于Non-post的访问,PCIe设备需要接收到对端返回的不带数据完成报文(CPL,Completion without Data)/带数据完成报文(CPLD,Completion with Data),而且CPL/CPLD中对应的Transaction ID需要与源端一致,则表示一个Transaction完成。如果一个源端发送一个Non-post的命令后,如果没有收到目标设备的CPL/CPLD,那么TLP发送端需要保留这个报文的Transaction ID,而且这个Transaction ID不能被重复占用,直到目标设备返回。对于Non-post的传输,每个TLP数据报文的Transaction ID是唯一的,即在同一时刻,不能有相同Transaction ID的两个或以上的TLP数据报文在传输。
如图2和图3所示,图2为PCIe TLP Non-post数据报文的包头信息,其中Tag由PCIe控制器来管理,位宽为8bit;图3为对应的PCIe完成报文的包结构,其中Tag应该和对应的PCIe TLP Non-post数据报文Tag一致;
这里,可以在发送各第一类型数据报文时,记录发送时间点;并根据数据标识区分各第一类型数据报文;在接收到各第一类型数据报文的完成报文时,记录接收时间等,并根据数据标识区分各完成报文;如此,根据数据标识、发送时间点和接收时间点可以确定各第一类型数据报文各自的发送时间点和对应的各完成报文接收时间点。这里,可以在发送各第一类型数据报文或接受到完成报文时采用中断等方式触发计时,获取系统时钟并记录在缓存等存储器中,后续使用时读取。
进一步的,在获取对应所述各第一类型数据报文的各完成报文的接收时间点过程中,一些PCIe设备在发送Non-post数据报文之后,目标设备在发送CPL/CPLD时会拆分成多笔子完成报文发送,而且每个子完成报文的Transaction ID是一样的,在监控时,除了要监控Tag以外,还需要辅助所述发送的Non-post数据报文的中包头信息的Length字段来定位最后一个子完成报文,判断一个Transaction结束。即Length字段指示的是整个完成报文的长度,接收子完成报文时累加各子完成报文的长度,当累加值与Length字段指示长度相同时,确定接收到最后一个子完成报文;可以将最后一个子完成报文的接收时间点确定为完成报文的接收时间点。
步骤102:根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数;
这里,这里,所述PCIe报文的传输性能参数可以PCIe报文在PCIe总线中传输时的性能参数,如延时性能参数、未完成量(Outstanding)性能参数等;可以根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点设置不同的处理规则获取所需的PCIe报文的传输性能参数;
所述处理规则包括:将第一类型数据报文的发送时间和所述第一类型数据报文对应的完成报文的接收时间点进行减法运算,并对第一预设时间段中所述各第一类型数据报文对应的减法运算的差值进行算术平均等运算。这里,可以将所述减法运算的差确定为对应第一类型数据报文的单笔延时;可以将所述算术平均等的运算结果,确定为在所述第一预设时间段内的PCIe报文的延时性能参数,如:PCIe报文的延时性能参数和PCIe报文的Outstanding性能参数等;
具体的,所述PCIe报文的延时性能参数包括:最小单笔延时、和/或最大单笔延时、和/或平均单笔延时;可以首先确定各第一类型数据报文的单笔延时,再用算术平均或算术比较等计算方法,确定第一时间段中各第一类型数据报文的最小单笔延时、和/或最大单笔延时、和/或平均单笔延时;其中,所述第二预设时间段可以根据需要进行性能检测的时间点设置。
进一步的,所述处理规则可以包括:将指定时间点未接受到对应完成报文的所述各第一类型数据报文的总数。这里,可以将所述总数确定为所述指定时间点PCIe报文的Outstanding;
具体的,所述PCIe报文的Outstanding是在同一时间点,PCIe总线已发送Non-post数据报文,但未收到完成报文的总数;所述如图4所示,图中每个Transaction都有Non-post数据报文发送时间点和完成报文接收时间点,图中时间点A,有2个Non-post数据报文没有接收到对应的完成报文,因此,时间点A的PCIe报文的Outstanding为2;同理可以时间点B的PCIe报文的Outstanding为N。
实际应用中,可以设置一个计数器,在发送Non-post数据报文时,将Outstanding计数加1,当检测到完成报文时,则Outstanding减1。
更进一步的,在确定所述指定时间点PCIe报文的Outstanding之后,可以根据预设第二预设时间段中各时间点对应的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数;所述PCIe报文的Outstanding性能参数包括:平均Outstanding、和/或最大Outstanding;
这里,所述第二预设时间段可以根据需要进行性能检测的时间点设置,可以在所述第二预设时间段内,检测多个时间的PCIe报文的Outstanding,将各时间点的PCIe报文的Outstanding汇总后进行算数平均等计算,获取平均Outstanding、和/或最大Outstanding;
由于PCIe TLP Post数据报文的访问不需要目标设备返回CPL/CPLD,因此,Transaction ID字段并没有实际意义,并不需要PCIe设备去管理PCIe TLP Post数据报文的Tag资源,因此,不存在单笔延时和Outstanding等性能指标。
再进一步的,获取第三预设时间段内所述各第一类型数据报文、和/或各第二类型数据报文的数量、和/或长度,确定所述第三预设时间段内PCIe数据报文传输带宽;
这里,所述第二类型数据报文可以是PCIe TLP Post数据报文;所述第三预设时间段可以根据需要进行性能检测的时间点设置;可以指定检查某一时间段的PCIe数据报文传输带宽;可以统计在所述第二预设时间段在PCIe总线上传输的第一类型数据报文、和/或各第二类型数据报文数量、和/或长度;通过将各数据报文的长度累加等方式确定所述第三预设时间段内的PCIe数据报文传输带宽。
实际应用中,可以通过数据报文有效位来确定TLP数据报文的有效性,统计有效的TLP数据报文。可以根据各TLP数据报文的有效位来确定各TLP数据报文的包间隔,以此可以确定一段时间内的平均包间隔等。
这里,所述第一预设时间段、所述第二预设时间段和所述第三预设时间段的时间长短可以是相同时间段,也可以是不同时间段;如可以在同一时间段内检测PCIe报文的:延时性能参数、Outstanding性能参数和传输带宽。
如此,通过监控Non-post TLP包的数据标识,完成了对PCIe设备的TLP总线的带宽和Outstanding以及单笔延时等PCIe报文的传输性能参数;上述性能参数通常可以用来表征PCIe总线的利用率。
下面结合具体示例对本发明产生的积极效果作进一步详细的描述;
本示例中,可以采用VHDL和Verilog HDL等硬件描述语言建立实现本实施例所提供的PCIe报文性能检测方法的电路,可以采用如图4所示的系统框图来实现;如图5所示,所述系统可以包括:包检测电路,计数电路,单笔延时计算电路,Outstanding计算电路,包统计电路和流量计算电路等;
所述包检测电路检测到有效的Non-post数据报文时,根据TLP包头的结构检测Tag信息,然后根据Tag信息分配到不同的计数电路中;这里,判断所述TLP数据报文的有效性,可以通过有效位来判断;
计数电路可以根据Tag号设置多个,如果PCIe控制器分配了16个Tag,则计数电路可以设置16个,例如Tag为2,则进入Tag为2的计数电路;如果此时有多个,那么不同Tag号的包,则进入不同的计数电路;
进入计数电路后,首先Outstanding计数会加1,同时单笔延时开始计计数,当检测到包结束时,则Outstanding减为0,对应的包延时停止计数;
在进行Non-post数据报文Outstanding计数和单笔延时计数的同时,包统计电路会进行包统计;而且当包检测电路到Post数据报文的访问时,可以直接进入包统计电路,不进行Outstanding计数和单笔延时计数;
计数电路统计完成之后,会将单笔延时信息送到单笔延时计算电路,Outstanding检测信息会送到Outstanding计算电路,包统计信息会送到流量计算电路;
单笔延时计算电路会根据输入的当前单笔延时信息统计最小的单笔延时和最大单笔延时,而且计算当前的平均单笔延时。同时Outstanding计算电路会统计各计数电路的Outstanding值,各计数电路的Outstanding值之和表示当前有效的Outstanding值,根据当前Outstanding值,计算平均Outstanding和最大Outstanding;同时,包统计电路会统计所有包的个数;
当关闭统计时,单笔延时计数电路会输出当前的最小单笔延时、最大单笔延时和平均单笔延时。Outstanding计算电路会输出当前的平均Outstanding和最大Outstanding。包统计电路会统计这段测试时间内的所有传输的包个数。流量计算电路可以根据这段时间的包个数结合包长度来推算带宽。
本发明实施例提供的PCIe报文性能检测装置,如图6所示,所述装置包括:获取模块61和确定模块62;其中,
所述获取模块61,用于根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回;
通常,PCIe的TLP包括两种类型的Transaction数据报文:Non-Post数据报文和Post数据报文;如存储器读和配置读写数据报文等采用Non-Post数据报文,存储器写等采用Post数据报文;
这里,所述第一类型数据报文为Non-Post数据报文,所述数据标识包括:第一类型数据报文包头中的:Tag、和/或Requester ID、和/或Completer ID、和/或Bus Number、和/或Device Number、和/或Function Number等;
具体的,PCIe设备发送的TLP数据报文包头结构中,用Bus Number、DeviceNumber、Function Number以及Tag来表征一个Transaction数据报文的ID号,TLP总线中用这个Transaction ID来表征不同的Transaction数据报文;
在同一个PCIe设备发送的TLP包中,其Bus Number、Device Number、FunctionNumber是相同的,PCIe设备只需要管理Tag资源,合理分配保证传输正常。对于不同PCIe设备发送的TLP数据报文,可以通过Requester ID、和/或Completer ID结合Tag来表征不同的Transaction数据报文;
因此,针对不同的TLP数据报文,可以通过结合标签Tag、和/或Requester ID、和/或Completer ID、和/或Bus Number、和/或号Device Number、和/或Function Number等来区分;如在在一个端对端场景中,如果只需要检测一个PCIe设备的数据报文情况,可以仅检测Tag来识别该设备发送的数据报文;
对于Non-post的访问,PCIe设备需要接收到对端返回的CPL/CPLD,而且CPL/CPLD中对应的Transaction ID需要与源端一致,则表示一个Transaction完成。如果一个源端发送一个Non-post的命令后,如果没有收到目标设备的CPL/CPLD,那么TLP发送端需要保留这个报文的Transaction ID,而且这个Transaction ID不能被重复占用,直到目标设备返回。对于Non-post的传输,每个TLP数据报文的Transaction ID是唯一的,即在同一时刻,不能有相同Transaction ID的两个或以上的TLP数据报文在传输。
如图2和图3所示,图2为PCIe TLP Non-post数据报文的包头信息,其中Tag由PCIe控制器来管理,位宽为8bit;图3为对应的PCIe完成报文的包结构,其中Tag应该和对应的PCIe TLP Non-post数据报文Tag一致;
这里,可以在发送各第一类型数据报文时,记录发送时间点;并根据数据标识区分各第一类型数据报文;在接收到各第一类型数据报文的完成报文时,记录接收时间等,并根据数据标识区分各完成报文;如此,根据数据标识、发送时间点和接收时间点可以确定各第一类型数据报文各自的发送时间点和对应的各完成报文接收时间点。这里,可以在发送各第一类型数据报文或接受到完成报文时采用中断等方式触发计时,获取系统时钟并记录在缓存等存储器中,后续使用时读取。
进一步的,在获取对应所述各第一类型数据报文的各完成报文的接收时间点过程中,一些PCIe设备在发送Non-post数据报文之后,目标设备在发送CPL/CPLD时会拆分成多笔子完成报文发送,而且每个子完成报文的Transaction ID是一样的,在监控时,除了要监控Tag以外,还需要辅助所述发送的Non-post数据报文的中包头信息的Length字段来定位最后一个子完成报文,判断一个Transaction结束。即Length字段指示的是整个完成报文的长度,接收子完成报文时累加各子完成报文的长度,当累加值与Length字段指示长度相同时,确定接收到最后一个子完成报文;可以将最后一个子完成报文的接收时间点确定为完成报文的接收时间点。
所述确定模块62,用于根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数。
这里,所述PCIe报文的传输性能参数可以PCIe报文在PCIe总线中传输时的性能参数,如延时性能参数、未完成量(Outstanding)性能参数等;所述处理规则可以根据需要检测的报文性能参数进行设置,可以根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点设置不同的处理规则获取所需的PCIe报文的传输性能参数;
所述处理规则包括:将第一类型数据报文的发送时间和所述第一类型数据报文对应的完成报文的接收时间点进行减法运算,并对第一预设时间段中所述各第一类型数据报文对应的减法运算的差值进行算术平均等运算。这里,可以将所述减法运算的差确定为对应第一类型数据报文的单笔延时;可以将所述算术平均等的运算结果,确定为在所述第一预设时间段内的PCIe报文的延时性能参数,如:PCIe报文的延时性能参数和PCIe报文的Outstanding性能参数等;
具体的,所述PCIe报文的延时性能参数包括:最小单笔延时、和/或最大单笔延时、和/或平均单笔延时;可以首先确定各第一类型数据报文的单笔延时,再用算术平均或算术比较等计算方法,确定第一时间段中各第一类型数据报文的最小单笔延时、和/或最大单笔延时、和/或平均单笔延时;其中,所述第二预设时间段可以根据需要进行性能检测的时间点设置。
进一步的,所述处理规则可以包括:将指定时间点未接受到对应完成报文的所述各第一类型数据报文的总数。这里,可以将所述总数确定为所述指定时间点PCIe报文的Outstanding;
具体的,所述PCIe报文的Outstanding是在同一时间点,PCIe总线已发送Non-post数据报文,但未收到完成报文的总数;所述如图4所示,图中每个Transaction都有Non-post数据报文发送时间点和完成报文接收时间点,图中时间点A,有2个Non-post数据报文没有接收到对应的完成报文,因此,时间点A的PCIe报文的Outstanding为2;同理可以时间点B的PCIe报文的Outstanding为N。
实际应用中,可以设置一个计数器,在发送Non-post数据报文时,将Outstanding计数加1,当检测到完成报文时,则Outstanding减1。
更进一步的,在确定所述指定时间点PCIe报文的Outstanding之后,可以根据预设第二预设时间段中各时间点对应的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数;所述PCIe报文的Outstanding性能参数包括:平均Outstanding、和/或最大Outstanding;
这里,所述第二预设时间段可以根据需要进行性能检测的时间点设置,可以在所述第二预设时间段内,检测多个时间的PCIe报文的Outstanding,将各时间点的PCIe报文的Outstanding汇总后进行算数平均等计算,获取平均Outstanding、和/或最大Outstanding;
由于PCIe TLP Post数据报文的访问不需要目标设备返回CPL/CPLD,因此,Transaction ID字段并没有实际意义,并不需要PCIe设备去管理PCIe TLP Post数据报文的Tag资源,因此,不存在单笔延时和Outstanding等性能指标。
再进一步的,获取第三预设时间段内所述各第一类型数据报文、和/或各第二类型数据报文的数量、和/或长度,确定所述第三预设时间段内PCIe数据报文传输带宽;
这里,所述第二类型数据报文可以是PCIe TLP Post数据报文;所述第三预设时间段可以根据需要进行性能检测的时间点设置;可以指定检查某一时间段的PCIe数据报文传输带宽;可以统计在所述第二预设时间段在PCIe总线上传输的第一类型数据报文、和/或各第二类型数据报文数量、和/或长度;通过将各数据报文的长度累加等方式确定所述第三预设时间段内的PCIe数据报文传输带宽。
实际应用中,可以通过数据报文有效位来确定TLP数据报文的有效性,统计有效的TLP数据报文。可以根据各TLP数据报文的有效位来确定各TLP数据报文的包间隔,以此可以确定一段时间内的平均包间隔等。
这里,所述第一预设时间段、所述第二预设时间段和所述第三预设时间段的时间长短可以是相同时间段,也可以是不同时间段;如可以在同一时间段内检测PCIe报文的:延时性能参数、Outstanding性能参数和传输带宽。
如此,通过监控Non-post TLP包的数据标识,完成了对PCIe设备的TLP总线的带宽和Outstanding以及单笔延时等PCIe报文的传输性能参数;上述性能参数通常可以用来表征PCIe总线的利用率。
在实际应用中,所述获取模块61和确定模块62均可以由SoC系统中的中央处理器(CPU)、微处理器(MCU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)等实现。
本发明实施例提供的存储介质,其上存储由可执行程序,所述可执行程序被处理器执行时实现PCIe报文性能检测方法,如图2所示,所述方法包括:
步骤101:根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回;
通常,PCIe的TLP包括两种类型的Transaction数据报文:Non-Post数据报文和Post数据报文;如存储器读和配置读写数据报文等采用Non-Post数据报文,存储器写等采用Post数据报文;
这里,所述第一类型数据报文为Non-Post数据报文,所述数据标识包括:第一类型数据报文包头中的:Tag、和/或Requester ID、和/或Completer ID、和/或Bus Number、和/或Device Number、和/或Function Number等;
具体的,PCIe设备发送的TLP数据报文包头结构中,用Bus Number、DeviceNumber、Function Number以及Tag来表征一个Transaction数据报文的ID号,TLP总线中用这个Transaction ID来表征不同的Transaction数据报文;
在同一个PCIe设备发送的TLP包中,其Bus Number、Device Number、FunctionNumber是相同的,PCIe设备只需要管理Tag资源,合理分配保证传输正常。对于不同PCIe设备发送的TLP数据报文,可以通过Requester ID、和/或Completer ID结合Tag来表征不同的Transaction数据报文;
因此,针对不同的TLP数据报文,可以通过结合标签Tag、和/或Requester ID、和/或Completer ID、和/或Bus Number、和/或号Device Number、和/或Function Number等来区分;如在在一个端对端场景中,如果只需要检测一个PCIe设备的数据报文情况,可以仅检测Tag来识别该设备发送的数据报文;
对于Non-post的访问,PCIe设备需要接收到对端返回的CPL/CPLD,而且CPL/CPLD中对应的Transaction ID需要与源端一致,则表示一个Transaction完成。如果一个源端发送一个Non-post的命令后,如果没有收到目标设备的CPL/CPLD,那么TLP发送端需要保留这个报文的Transaction ID,而且这个Transaction ID不能被重复占用,直到目标设备返回。对于Non-post的传输,每个TLP数据报文的Transaction ID是唯一的,即在同一时刻,不能有相同Transaction ID的两个或以上的TLP数据报文在传输。
如图2和图3所示,图2为PCIe TLP Non-post数据报文的包头信息,其中Tag由PCIe控制器来管理,位宽为8bit;图3为对应的PCIe完成报文的包结构,其中Tag应该和对应的PCIe TLP Non-post数据报文Tag一致;
这里,可以在发送各第一类型数据报文时,记录发送时间点;并根据数据标识区分各第一类型数据报文;在接收到各第一类型数据报文的完成报文时,记录接收时间等,并根据数据标识区分各完成报文;如此,根据数据标识、发送时间点和接收时间点可以确定各第一类型数据报文各自的发送时间点和对应的各完成报文接收时间点。这里,可以在发送各第一类型数据报文或接受到完成报文时采用中断等方式触发计时,获取系统时钟并记录在缓存等存储器中,后续使用时读取。
进一步的,在获取对应所述各第一类型数据报文的各完成报文的接收时间点过程中,一些PCIe设备在发送Non-post数据报文之后,目标设备在发送CPL/CPLD时会拆分成多笔子完成报文发送,而且每个子完成报文的Transaction ID是一样的,在监控时,除了要监控Tag以外,还需要辅助所述发送的Non-post数据报文的中包头信息的Length字段来定位最后一个子完成报文,判断一个Transaction结束。即Length字段指示的是整个完成报文的长度,接收子完成报文时累加各子完成报文的长度,当累加值与Length字段指示长度相同时,确定接收到最后一个子完成报文;可以将最后一个子完成报文的接收时间点确定为完成报文的接收时间点。
步骤102:根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数;
这里,所述PCIe报文的传输性能参数可以PCIe报文在PCIe总线中传输时的性能参数,如延时性能参数、未完成量(Outstanding)性能参数等;所述处理规则可以根据需要检测的报文性能参数进行设置,可以根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点设置不同的处理规则获取所需的PCIe报文的传输性能参数;
所述处理规则包括:将第一类型数据报文的发送时间和所述第一类型数据报文对应的完成报文的接收时间点进行减法运算,并对第一预设时间段中所述各第一类型数据报文对应的减法运算的差值进行算术平均等运算。这里,可以将所述减法运算的差确定为对应第一类型数据报文的单笔延时;可以将所述算术平均等的运算结果,确定为在所述第一预设时间段内的PCIe报文的延时性能参数,如:PCIe报文的延时性能参数和PCIe报文的Outstanding性能参数等;
具体的,所述PCIe报文的延时性能参数包括:最小单笔延时、和/或最大单笔延时、和/或平均单笔延时;可以首先确定各第一类型数据报文的单笔延时,再用算术平均或算术比较等计算方法,确定第一时间段中各第一类型数据报文的最小单笔延时、和/或最大单笔延时、和/或平均单笔延时;其中,所述第二预设时间段可以根据需要进行性能检测的时间点设置。
进一步的,所述处理规则可以包括:将指定时间点未接受到对应完成报文的所述各第一类型数据报文的总数。这里,可以将所述总数确定为所述指定时间点PCIe报文的Outstanding;
具体的,所述PCIe报文的Outstanding是在同一时间点,PCIe总线已发送Non-post数据报文,但未收到完成报文的总数;所述如图4所示,图中每个Transaction都有Non-post数据报文发送时间点和完成报文接收时间点,图中时间点A,有2个Non-post数据报文没有接收到对应的完成报文,因此,时间点A的PCIe报文的Outstanding为2;同理可以时间点B的PCIe报文的Outstanding为N。
实际应用中,可以设置一个计数器,在发送Non-post数据报文时,将Outstanding计数加1,当检测到完成报文时,则Outstanding减1。
更进一步的,可以根据预设第二预设时间段中各时间点对应的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数;所述PCIe报文的Outstanding性能参数包括:平均Outstanding、和/或最大Outstanding;
这里,所述第二预设时间段可以根据需要进行性能检测的时间点设置,可以在所述第二预设时间段内,检测多个时间的PCIe报文的Outstanding,将各时间点的PCIe报文的Outstanding汇总后进行算数平均等计算,获取平均Outstanding、和/或最大Outstanding;
由于PCIe TLP Post数据报文的访问不需要目标设备返回CPL/CPLD,因此,Transaction ID字段并没有实际意义,并不需要PCIe设备去管理PCIe TLP Post数据报文的Tag资源,因此,不存在单笔延时和Outstanding等性能指标。
再进一步的,在确定所述指定时间点PCIe报文的Outstanding之后,获取第三预设时间段内所述各第一类型数据报文、和/或各第二类型数据报文的数量、和/或长度,确定所述第三预设时间段内PCIe数据报文传输带宽;
这里,所述第二类型数据报文可以是PCIe TLP Post数据报文;所述第三预设时间段可以根据需要进行性能检测的时间点设置;可以指定检查某一时间段的PCIe数据报文传输带宽;可以统计在所述第二预设时间段在PCIe总线上传输的第一类型数据报文、和/或各第二类型数据报文数量、和/或长度;通过将各数据报文的长度累加等方式确定所述第三预设时间段内的PCIe数据报文传输带宽。
实际应用中,可以通过数据报文有效位来确定TLP数据报文的有效性,统计有效的TLP数据报文。可以根据各TLP数据报文的有效位来确定各TLP数据报文的包间隔,以此可以确定一段时间内的平均包间隔等。
这里,所述第一预设时间段、所述第二预设时间段和所述第三预设时间段的时间长短可以是相同时间段,也可以是不同时间段;如可以在同一时间段内检测PCIe报文的:延时性能参数、Outstanding性能参数和传输带宽。
如此,通过监控Non-post TLP包的数据标识,完成了对PCIe设备的TLP总线的带宽和Outstanding以及单笔延时等PCIe报文的传输性能参数;上述性能参数通常可以用来表征PCIe总线的利用率。
本发明实施例提供的信息处理装置,包括处理器、存储器及存储在存储器上并能够有所述处理器运行的可执行程序,所述处理器运行所述可执行程序时执行实现PCIe报文性能检测方法,如图2所示,所述方法包括:
步骤101:根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回;
通常,PCIe的TLP包括两种类型的事务(Transaction)数据报文:Non-Post数据报文和报告事务(Post)数据报文;如存储器读和配置读写数据报文等采用Non-Post数据报文,存储器写等采用Post数据报文;
这里,所述第一类型数据报文为Non-Post数据报文,所述数据标识包括:第一类型数据报文包头中的:标签(Tag)、和/或请求标识(Requester ID)、和/或完成标识(Completer ID)、和/或总线号(Bus Number)、和/或设备号(Device Number)、和/或功能号(Function Number)等;
具体的,PCIe设备发送的TLP数据报文包头结构中,用Bus Number、DeviceNumber、Function Number以及Tag来表征一个Transaction数据报文的标识(ID)号,TLP总线中用这个Transaction ID来表征不同的Transaction数据报文;
在同一个PCIe设备发送的TLP包中,其Bus Number、Device Number、FunctionNumber是相同的,PCIe设备只需要管理Tag资源,合理分配保证传输正常。对于不同PCIe设备发送的TLP数据报文,可以通过请求标识(Requester ID)、和/或完成标识(CompleterID)结合Tag来表征不同的Transaction数据报文;
因此,针对不同的TLP数据报文,可以通过结合标签Tag、和/或Requester ID、和/或Completer ID、和/或Bus Number、和/或号Device Number、和/或Function Number等来区分;如在在一个端对端场景中,如果只需要检测一个PCIe设备的数据报文情况,可以仅检测Tag来识别该设备发送的数据报文;
对于Non-post的访问,PCIe设备需要接收到对端返回的不带数据完成报文(CPL,Completion without Data)/带数据完成报文(CPLD,Completion with Data),而且CPL/CPLD中对应的Transaction ID需要与源端一致,则表示一个Transaction完成。如果一个源端发送一个Non-post的命令后,如果没有收到目标设备的CPL/CPLD,那么TLP发送端需要保留这个报文的Transaction ID,而且这个Transaction ID不能被重复占用,直到目标设备返回。对于Non-post的传输,每个TLP数据报文的Transaction ID是唯一的,即在同一时刻,不能有相同Transaction ID的两个或以上的TLP数据报文在传输。
如图2和图3所示,图2为PCIe TLP Non-post数据报文的包头信息,其中Tag由PCIe控制器来管理,位宽为8bit;图3为对应的PCIe完成报文的包结构,其中Tag应该和对应的PCIe TLP Non-post数据报文Tag一致;
这里,可以在发送各第一类型数据报文时,记录发送时间点;并根据数据标识区分各第一类型数据报文;在接收到各第一类型数据报文的完成报文时,记录接收时间等,并根据数据标识区分各完成报文;如此,根据数据标识、发送时间点和接收时间点可以确定各第一类型数据报文各自的发送时间点和对应的各完成报文接收时间点。这里,可以在发送各第一类型数据报文或接受到完成报文时采用中断等方式触发计时,获取系统时钟并记录在缓存等存储器中,后续使用时读取。
进一步的,在获取对应所述各第一类型数据报文的各完成报文的接收时间点过程中,一些PCIe设备在发送Non-post数据报文之后,目标设备在发送CPL/CPLD时会拆分成多笔子完成报文发送,而且每个子完成报文的Transaction ID是一样的,在监控时,除了要监控Tag以外,还需要辅助所述发送的Non-post数据报文的中包头信息的Length字段来定位最后一个子完成报文,判断一个Transaction结束。即Length字段指示的是整个完成报文的长度,接收子完成报文时累加各子完成报文的长度,当累加值与Length字段指示长度相同时,确定接收到最后一个子完成报文;可以将最后一个子完成报文的接收时间点确定为完成报文的接收时间点。
步骤102:根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数;
这里,所述PCIe报文的传输性能参数可以PCIe报文在PCIe总线中传输时的性能参数,如延时性能参数、未完成量(Outstanding)性能参数等;所述处理规则可以根据需要检测的报文性能参数进行设置,可以根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点设置不同的处理规则获取所需的PCIe报文的传输性能参数;
所述处理规则包括:将第一类型数据报文的发送时间和所述第一类型数据报文对应的完成报文的接收时间点进行减法运算,并对第一预设时间段中所述各第一类型数据报文对应的减法运算的差值进行算术平均等运算。这里,可以将所述减法运算的差确定为对应第一类型数据报文的单笔延时;可以将所述算术平均等的运算结果,确定为在所述第一预设时间段内的PCIe报文的延时性能参数,如:PCIe报文的延时性能参数和PCIe报文的Outstanding性能参数等;
具体的,所述PCIe报文的延时性能参数包括:最小单笔延时、和/或最大单笔延时、和/或平均单笔延时;可以首先确定各第一类型数据报文的单笔延时,再用算术平均或算术比较等计算方法,确定第一时间段中各第一类型数据报文的最小单笔延时、和/或最大单笔延时、和/或平均单笔延时;其中,所述第二预设时间段可以根据需要进行性能检测的时间点设置。
进一步的,所述处理规则可以包括:将指定时间点未接受到对应完成报文的所述各第一类型数据报文的总数。这里,可以将所述总数确定为所述指定时间点PCIe报文的Outstanding;
具体的,所述PCIe报文的Outstanding是在同一时间点,PCIe总线已发送Non-post数据报文,但未收到完成报文的总数;所述如图4所示,图中每个Transaction都有Non-post数据报文发送时间点和完成报文接收时间点,图中时间点A,有2个Non-post数据报文没有接收到对应的完成报文,因此,时间点A的PCIe报文的Outstanding为2;同理可以时间点B的PCIe报文的Outstanding为N。
实际应用中,可以设置一个计数器,在发送Non-post数据报文时,将Outstanding计数加1,当检测到完成报文时,则Outstanding减1。
更进一步的,在确定所述指定时间点PCIe报文的Outstanding之后,可以根据预设第二预设时间段中各时间点对应的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数;所述PCIe报文的Outstanding性能参数包括:平均Outstanding、和/或最大Outstanding;
这里,所述第二预设时间段可以根据需要进行性能检测的时间点设置,可以在所述第二预设时间段内,检测多个时间的PCIe报文的Outstanding,将各时间点的PCIe报文的Outstanding汇总后进行算数平均等计算,获取平均Outstanding、和/或最大Outstanding;
由于PCIe TLP Post数据报文的访问不需要目标设备返回CPL/CPLD,因此,Transaction ID字段并没有实际意义,并不需要PCIe设备去管理PCIe TLP Post数据报文的Tag资源,因此,不存在单笔延时和Outstanding等性能指标。
再进一步的,获取第三预设时间段内所述各第一类型数据报文、和/或各第二类型数据报文的数量、和/或长度,确定所述第三预设时间段内PCIe数据报文传输带宽;
这里,所述第二类型数据报文可以是PCIe TLP Post数据报文;所述第三预设时间段可以根据需要进行性能检测的时间点设置;可以指定检查某一时间段的PCIe数据报文传输带宽;可以统计在所述第二预设时间段在PCIe总线上传输的第一类型数据报文、和/或各第二类型数据报文数量、和/或长度;通过将各数据报文的长度累加等方式确定所述第三预设时间段内的PCIe数据报文传输带宽。
实际应用中,可以通过数据报文有效位来确定TLP数据报文的有效性,统计有效的TLP数据报文。可以根据各TLP数据报文的有效位来确定各TLP数据报文的包间隔,以此可以确定一段时间内的平均包间隔等。
这里,所述第一预设时间段、所述第二预设时间段和所述第三预设时间段的时间长短可以是相同时间段,也可以是不同时间段;如可以在同一时间段内检测PCIe报文的:延时性能参数、Outstanding性能参数和传输带宽。
如此,通过监控Non-post TLP包的数据标识,完成了对PCIe设备的TLP总线的带宽和Outstanding以及单笔延时等PCIe报文的传输性能参数;上述性能参数通常可以用来表征PCIe总线的利用率。
以上所述,仅为本发明的最佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种高速外围组件互联PCIe报文性能检测方法,其特征在于,所述方法包括:
根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回,所述第一类型数据报文为PCIe事务层报文TLP的非报告事务Non-Post数据报文,所述各完成报文包括不带数据完成报文CPL/带数据完成报文CPLD,其中,对于一个Non-Post数据报文,所返回的完成报文中对应的事务标识与源端一致的情况下,表示一个事务完成,若没有接收到目标设备的完成报文,则令该一个Non-Post数据报文的事务标识保留且不被重复占用,直到目标设备返回;
根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数,所述传输性能参数包括延时性能参数和未完成量性能参数中的至少一种;
其中,所述传输性能参数为未完成量性能参数时,所述根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数,包括:
将指定的同一时间点未接受到对应完成报文的所述各第一类型数据报文的总数,确定为所述指定时间点PCIe报文的未完成量Outstanding,并根据预设第二预设时间段中各同一时间点对应的所述PCIe报文的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文传输性能参数,包括:
将第一类型数据报文的发送时间和所述第一类型数据报文对应的完成报文的接收时间点之差,确定为单笔延时;
根据第一预设时间段中所述各第一类型数据报文对应的单笔延时,确定在所述第一预设时间段内的PCIe报文的延时性能参数;
所述PCIe报文的延时性能参数包括:最小单笔延时、和/或最大单笔延时、和/或平均单笔延时。
3.根据权利要求1所述的方法,其特征在于,所述根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文传输性能参数,包括:
将指定时间点未接受到对应完成报文的所述各第一类型数据报文的总数确定为所述指定时间点PCIe报文的未完成量Outstanding。
4.根据权利要求3所述的方法,其特征在于,在确定所述指定时间点PCIe报文的Outstanding之后,所述方法还包括:
根据预设第二预设时间段中各时间点对应的所述PCIe报文的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数;
所述PCIe报文的Outstanding性能参数包括:平均Outstanding、和/或最大Outstanding。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取第三预设时间段内有效所述各第一类型数据报文、和/或有效各第二类型数据报文的数量、和/或长度,确定所述第三预设时间段内PCIe数据报文传输带宽,所述第二类型数据报文为PCIe TLP的报告事务Post数据报文。
6.根据权利要求1所述的方法,其特征在于,在获取对应所述各第一类型数据报文的各完成报文的接收时间点时,所述方法还包括:
当接收到的完成报文由一个以上的子完成报文组成,且各子完成报文的长度之和,等于所述完成对应的第一类型数据报文中长度指示字段所指示长度时,将最后一个子完成报文的接收时间确定为所述完成报文的接收时间。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述数据标识包括:第一类型数据报文头中的:标签Tag、和/或请求标识Requester ID、和/或完成标识Completer ID、和/或总线号Bus Number、和/或设备号Device Number、和/或功能号Function Number。
8.一种PCIe报文性能检测装置,其特征在于,所述装置包括:获取模块和确定模块;其中,
所述获取模块,用于根据各第一类型数据报文分别对应的数据标识,获取PCIe总线中所述各第一类型数据报文的发送时间点,并获取对应所述各第一类型数据报文的各完成报文的接收时间点,所述各完成报文由接收端在收到所述各第一类型数据报文后返回,所述第一类型数据报文为PCIe事务层报文TLP的非报告事务Non-Post数据报文,所述各完成报文包括不带数据完成报文CPL/带数据完成报文CPLD,其中,对于一个Non-Post数据报文,所返回的完成报文中对应的事务标识与源端一致的情况下,表示一个事务完成,若没有接收到目标设备的完成报文,则令该一个Non-Post数据报文的事务标识保留且不被重复占用,直到目标设备返回;
所述确定模块,用于根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数,所述传输性能参数包括延时性能参数和未完成量性能参数中的至少一种;
其中,所述传输性能参数为未完成量性能参数时,所述根据所述各第一类型数据报文的发送时间点和对应的所述各完成报文的接收时间点,确定所述PCIe报文的传输性能参数,包括:
将指定的同一时间点未接受到对应完成报文的所述各第一类型数据报文的总数,确定为所述指定时间点PCIe报文的未完成量Outstanding,并根据预设第二预设时间段中各同一时间点对应的所述PCIe报文的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数。
9.根据权利要求8所述的装置,其特征在于,所述确定模块,具体用于:
将第一类型数据报文的发送时间和所述第一类型数据报文对应的完成报文的接收时间点之差,确定为单笔延时;
根据第一预设时间段中所述各第一类型数据报文对应的单笔延时,确定在所述第一预设时间段内的PCIe报文的延时性能参数;
所述PCIe报文的延时性能参数包括:最小单笔延时、和/或最大单笔延时、和/或平均单笔延时。
10.根据权利要求8所述的装置,其特征在于,所述确定模块,具体用于:
将指定时间点未接受到对应完成报文的所述各第一类型数据报文的总数确定为所述指定时间点PCIe报文的量Outstanding。
11.根据权利要求10所述的装置,其特征在于,所述确定模块,具体用于:
根据预设第二预设时间段中各时间点对应的所述PCIe报文的Outstanding,确定在所述第二预设时间段内PCIe报文的Outstanding性能参数;
所述PCIe报文的Outstanding性能参数包括:平均Outstanding、和/或最大Outstanding。
12.根据权利要求8所述的装置,其特征在于,所述确定模块还用于:
获取第三预设时间段内有效所述各第一类型数据报文、和/或有效各第二类型数据报文的数量、和/或长度,确定所述第三预设时间段内PCIe数据报文传输带宽,所述第二类型数据报文为PCIe TLP的报告事务Post数据报文。
13.根据权利要求8所述的装置,其特征在于,所述获取模块还用于:
当接收到的完成报文由一个以上的子完成报文组成,且各子完成报文的长度之和,等于所述完成对应的第一类型数据报文中长度指示字段所指示长度时,将最后一个子完成报文的接收时间确定为所述完成报文的接收时间。
14.根据权利要求8至13任一项所述的装置,其特征在于,所述数据标识包括:第一类型数据报文头中的:标签Tag、和/或请求标识Requester ID、和/或完成标识Completer ID、和/或总线号Bus Number、和/或设备号Device Number、和/或功能号Function Number。
15.一种存储介质,其上存储由可执行程序,其特征在于,所述可执行程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
16.一种信息处理装置,包括处理器、存储器及存储在存储器上并能够有所述处理器运行的可执行程序,其特征在于,所述处理器运行所述可执行程序时执行如权利要求1至7任一项所述方法的步骤。
CN201710719675.5A 2017-08-21 2017-08-21 一种高速外围组件互联报文性能检测方法和装置 Active CN109428771B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710719675.5A CN109428771B (zh) 2017-08-21 2017-08-21 一种高速外围组件互联报文性能检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710719675.5A CN109428771B (zh) 2017-08-21 2017-08-21 一种高速外围组件互联报文性能检测方法和装置

Publications (2)

Publication Number Publication Date
CN109428771A CN109428771A (zh) 2019-03-05
CN109428771B true CN109428771B (zh) 2021-02-09

Family

ID=65497802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710719675.5A Active CN109428771B (zh) 2017-08-21 2017-08-21 一种高速外围组件互联报文性能检测方法和装置

Country Status (1)

Country Link
CN (1) CN109428771B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073325B (zh) * 2019-06-10 2023-05-12 阿里巴巴集团控股有限公司 数据拥塞控制及带宽预估方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532807A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie数据服务质量管理的技术
CN103701658A (zh) * 2013-11-18 2014-04-02 北京视联动力国际信息技术有限公司 一种视联网的网络状况测试方法和装置
CN104009878A (zh) * 2013-02-21 2014-08-27 中国移动通信集团公司 一种网络传输时延的测量方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104009878A (zh) * 2013-02-21 2014-08-27 中国移动通信集团公司 一种网络传输时延的测量方法及装置
CN103532807A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie数据服务质量管理的技术
CN103701658A (zh) * 2013-11-18 2014-04-02 北京视联动力国际信息技术有限公司 一种视联网的网络状况测试方法和装置

Also Published As

Publication number Publication date
CN109428771A (zh) 2019-03-05

Similar Documents

Publication Publication Date Title
KR100969497B1 (ko) 성능 모니터와 그를 위한 방법
US20100318706A1 (en) Bus arbitration circuit and bus arbitration method
US20020069310A1 (en) Arbitration method and circuit architecture therefore
WO2017084523A1 (zh) 一种片上系统总线行为检测方法、装置和计算机存储介质
CN111163018B (zh) 网络设备及其降低传输时延的方法
CN112631742B (zh) 一种资源访问权限管理装置、方法及系统
WO2019029149A1 (zh) 保单的险种状态信息统计方法、终端设备及存储介质
CN109587072A (zh) 分布式系统全局限速系统及方法
CN109428771B (zh) 一种高速外围组件互联报文性能检测方法和装置
US20120331034A1 (en) Latency Probe
US7657682B2 (en) Bus interconnect with flow control
US8401821B1 (en) Method, apparatus and computer program for latency measurement
CN115576872B (zh) 多级缓存的访问检测方法及装置
KR20170117326A (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
KR102440948B1 (ko) 반도체 장치 및 반도체 장치의 동작 방법
CN110020166A (zh) 一种数据分析方法及相关设备
CN110413461B (zh) 测量加速卡与主机之间传输延时的系统、方法及加速卡
CN113238974A (zh) 一种总线带宽效率统计方法、装置、和设备及介质
CN113760989A (zh) 一种无界流数据处理方法、装置、设备及存储介质
CN113051077A (zh) 一种用户请求的处理方法、装置、终端设备及存储介质
CN112559261A (zh) 一种基于层次状态机的axi总线性能分析方法及装置
CN105591729A (zh) 网络设备和用于网络设备中的时间戳获取方法
CN116010047B (zh) 线程调度方法、硬件电路及电子设备
WO2022042015A1 (zh) 用于系统芯片性能监控的数据处理方法和装置
CN117857402A (zh) 自动波特率检测方法、配置方法、装置及电子设备

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