CN103731317B - 一种pcie地址映射检测的方法及装置 - Google Patents
一种pcie地址映射检测的方法及装置 Download PDFInfo
- Publication number
- CN103731317B CN103731317B CN201310671716.XA CN201310671716A CN103731317B CN 103731317 B CN103731317 B CN 103731317B CN 201310671716 A CN201310671716 A CN 201310671716A CN 103731317 B CN103731317 B CN 103731317B
- Authority
- CN
- China
- Prior art keywords
- address
- pcie
- ptmp
- target device
- current
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供了一种PCIE地址映射检测的方法及装置,该方法包括:源设备向目标设备的当前PCIE地址中写入PTMP请求报文;如果在预设时间内监测到自身的当前PCIE地址中存有目标设备写入的PTMP回应报文,则确定PTMP回应报文中携带的回应测试数据是否与PTMP请求报文中携带的测试数据相同;在确定为相同时,确定目标设备和源设备的当前PCIE地址映射正确;后续执行一系列确定流程来确定二者的其他PCIE地址映射是否正确。本发明实施例可利用PTMP请求报文和回应报文在源设备和目标设备之间交互,实现同时检测两个PCIE总线设备的所有PCIE地址,检测时间较短且检测的准确率较高。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种PCIE地址映射检测的方法及装置。
背景技术
快速外部设备互连(Peripheral Component Interconnect Express,PCIE)具有数据传输速率高的优势,目前,此数据传输速率最高的16X 2.0版本可达到10GB/s,能够满足现在和将来一定时间内低速设备和高速设备的需求。
如图1所示,上述的PCIE体系架构,通常包括根组件(Root Complex,RC)101、交换设备(Switch)102和多个终端设备(End Point,EP)103。其中,RC101主要完成资源分配、设备配置(例如配置设备的总线编号/设备编号/功能编号)以及为自身和EP分配PCIE地址;RC101的下游端口可挂接Switch102扩展更多的PCIE端口,当然也可以直接挂接EP;Switch102的下游端口可以挂接多个EP103,Switch102主要起到扩展PCIE体系架构的作用。
在上述PCIE体系架构中,RC进行PCI总线枚举(Bus Enumeration)时,从PCIE总线域中为自身和每个EP分配PCIE地址,以使得EP启动时,本地存储器域的内存地址可以映射到PCIE地址。
为了保证PCIE体系架构中设备之间的正常通信,通常需要对EP或RC的PCIE地址映射进行检测,如果PCIE地址映射错误的话,无法进行后续通信。目前,通常采用下述两种方式实现PCIE地址映射检测:
第一种方式:源设备通过PCIE存储写事务,向目标设备的指定PCIE地址中写入预设测试数据,由目标设备将此指定PCIE地址中写入的测试数据打印出来,然后,与预设数据进行比对,以确定目标设备的指定PCIE地址映射是否正确,如果采用这种方式检测源设备的PCIE地址的话,反向操作即可。
第二种方式:目标端设备先向本地的指定PCIE地址中写入预设测试数据,然后源设备通过PCIE存储读事务读取此指定PCIE地址中写入的测试数据,然后,与预设数据进行比对,以确定目标设备的指定PCIE地址映射是否正确,如果采用这种方式检测源设备的PCIE地址的话,反向操作即可。
不管采用上述哪种方式检测PCIE地址,只能实现单向检测,即检测源设备侧的PCIE地址,或者是目标设备侧的PCIE地址,这就导致在需要同时检测源设备和目标设备时检测时间较长。
发明内容
本发明实施例提供了一种PCIE地址映射检测的方法及装置,用以解决现有检测PCIE地址映射的检测时间较长的问题。
基于上述问题,本发明实施例提供的一种PCIE地址映射检测的方法,包括:
源设备向所述目标设备的当前PCIE地址中写入点到多点(Point To Multipoint,PTMP)请求报文,所述目标设备的当前PCIE地址为所述源设备根据本地保存的目标设备的PCIE基地址和当前PCIE地址偏移确定出的,所述PTMP请求报文中携带有源设备的当前PCIE地址偏移和测试数据;
如果在预设时间内监测到自身的当前PCIE地址中存有所述目标设备写入的PTMP回应报文,则确定所述PTMP回应报文中携带的回应测试数据是否与所述PTMP请求报文中携带的测试数据相同,所述源设备的当前PCIE地址为所述目标设备在监测到自身的当前PCIE地址中存有PTMP请求报文后,根据本地保存的源设备的PCIE基地址和所述PTMP请求报文中携带的源设备的当前PCIE地址偏移确定出的,所述PTMP回应报文中携带有目标设备的下一个PCIE地址偏移和回应测试数据;
在确定为相同时,确定所述目标设备和所述源设备的当前PCIE地址映射正确,并将所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移和自身的下一个PCIE地址偏移,分别与预设的PCIE地址偏移进行比较,根据比较结果确定所述目标设备和自身的下一个PCIE地址,将其分别作为所述目标设备和自身的当前PCIE地址,返回向所述目标设备的当前PCIE地址中写入所述PTMP请求报文的步骤,直到确定出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移,和自身的下一个PCIE地址偏移均为所述预设PCIE地址偏移时结束检测。
本发明实施例提供的一种PCIE地址映射的检测装置,包括:
写入模块,用于向所述目标设备的当前PCIE地址中写入PTMP请求报文,所述目标设备的当前PCIE地址为所述装置根据本地保存的目标设备的PCIE基地址和当前PCIE地址偏移确定出的,所述PTMP请求报文中携带有所述装置的当前PCIE地址偏移和测试数据;
监测模块,用于在预设时间内监测所述装置的当前PCIE地址中是否存有所述目标设备写入的PTMP回应报文,所述装置的当前PCIE地址为所述目标设备在监测到自身的当前PCIE地址中存有PTMP请求报文后,根据本地保存的所述装置的PCIE基地址和所述PTMP请求报文中携带的所述装置的当前PCIE地址偏移确定出的,所述PTMP回应报文中携带有目标设备的下一个PCIE地址偏移和回应测试数据;
确定模块,在所述监测模块监测到所述装置的当前PCIE地址中存有所述目标设备写入的PTMP回应报文时,确定所述PTMP回应报文中携带的回应测试数据是否与所述PTMP请求报文中携带的测试数据相同,并在确定为相同时,确定所述目标设备和所述装置的当前PCIE地址映射正确,将所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移和所述装置的下一个PCIE地址偏移,分别与预设的PCIE地址偏移进行比较,根据比较结果确定所述目标设备和所述装置的下一个PCIE地址,将其分别作为所述目标设备和所述装置的当前PCIE地址,返回向所述目标设备的当前PCIE地址中写入所述PTMP请求报文的步骤,直到确定出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移,和所述装置的下一个PCIE地址偏移均为所述预设PCIE地址偏移时结束检测。
本发明实施例的有益效果包括:
本发明实施例提供的一种PCIE地址映射检测的方法及装置,利用PTMP请求报文和回应报文在在源设备和目标设备之间交互,由源设备比对本地的PCIE地址中的回应测试数据与之前写到目标设备的测试数据是否相同,来确定源设备和目标设备的待检测PCIE映射是否正确,从而实现源设备和目标设备的双向检测,大大减短了检测时间。
附图说明
图1为现有PCIE体系架构的示意图;
图2为本发明实施例提供的PCIE地址映射检测的方法流程图;
图3为本发明实施例提供的PTMP请求报文的结构示意图;
图4A-图4D为本发明实施例提供的源设备和目标设备的检测交互示意图;
图5为本发明实施例提供的PCIE地址映射检测的装置结构图。
具体实施方式
现有的PCIE地址映射检测方式,只能单向检测,检测时间较长。基于此问题,本发明提供一种PCIE地址映射检测的方法及装置,利用PTMP请求报文和回应报文在源设备和目标设备之间交互,由源设备比对本地的PCIE地址中的回应测试数据与之前写到目标设备的测试数据是否相同,来确定源设备和目标设备的待检测PCIE映射是否正确,从而实现源设备和目标设备的双向检测,大大减短了检测时间。
在本发明中,下述提及的检测方式可适用于PCIE体系架构中的RC与EP之间,也可适用于EP与EP之间,为了便于后续描述检测流程,将执行检测操作的设备称之为“源设备”,将被检测的设备称之为“目标设备”,这样一来,对于上述PCIE体系架构来说,EP或RC可以作为源设备,也可以作为目标设备,例如在EP为源设备的情况下,其他EP中的任何一个均可作为目标设备,RC也可作为目标设备;在RC作为源设备的情况下,各个EP中的任何一个可作为目标设备。
进一步地,不管是源设备,还是目标设备,它们本地均事先建立有一个存储有各自的设备标识与各自的PCIE基地址(即PCIE起始地址)的对应关系的数据库,以便于它们根据设备标识查找各自对应的PCIE基地址。例如,设备标识可以为总线编号/设备编号/功能编号(Bus/Device/Function number,BDF)。
换言之,对于源设备和目标设备来说,彼此是知道自己的PCIE地址的,即知道自己的PCIE基地址以及每个PCIE地址对应的PCIE地址偏移,但是彼此仅能根据上述数据库知晓对端的PCIE基地址,后续可在彼此的PCIE基地址进行写操作,如果彼此想要在各自的其他PCIE地址进行写操作时,需双方事先约定各自的其他PCIE地址偏移,这样,源设备和目标设备均可根据对方的PCIE基地址,和各自约定的其他PCIE地址偏移确定出其他PCIE地址,然后进行写操作等。
下面结合说明书附图,对本发明实施例提供的一种PCIE地址映射检测的方法及装置的具体实施方式进行说明。
本发明实施例提供的一种PCIE地址映射检测的方法,如图2所示,具体包括以下步骤:
S201:源设备向目标设备的当前PCIE地址中写入PTMP请求报文;
在这里,上述目标设备的当前PCIE地址,实际上是源设备根据本地保存的目标设备的PCIE基地址和当前PCIE地址偏移确定出的,且PTMP请求报文中携带有源设备的当前PCIE地址偏移和测试数据;
也就是说,目标设备的当前PCIE地址可以是目标设备的PCIE基地址,此时,源设备侧保存的目标设备的当前PCIE地址偏移为0;也可以是目标设备的除PCIE基地址之外的其他PCIE地址,此时,源设备侧除了保存有目标设备的PCIE基地址,还保存有此其他PCIE地址偏移;另外,对于源设备的当前PCIE地址偏移,可由源设备根据自身的各个PCIE地址对应的PCIE地址偏移指定;
S202:在预设时间内监测自身的当前PCIE地址中是否存有目标设备写入的PTMP回应报文;若是,执行步骤S203;否则,执行步骤S204;
在这里,上述源设备的当前PCIE地址,实际上是目标设备在监测到自身的当前PCIE地址中存有PTMP请求报文后,根据本地保存的源设备的PCIE基地址和PTMP请求报文中携带的源设备的当前PCIE地址偏移确定出的,且向源设备的当前PCIE地址中写入的PTMP回应报文中携带有目标设备的下一个PCIE地址偏移和回应测试数据;
S203:确定PTMP回应报文中携带的回应测试数据是否与PTMP请求报文中携带的测试数据相同;若是,执行步骤S205;否则,执行步骤S206;
S204:确定目标设备的当前PCIE地址映射错误。
S205:确定目标设备和源设备的当前PCIE地址映射正确,并将PTMP回应报文中携带的目标设备的下一个PCIE地址偏移和自身的下一个PCIE地址偏移,分别与预设的PCIE地址偏移进行比较,根据比较结果确定目标设备和自身的下一个PCIE地址,将其分别作为目标设备和自身的当前PCIE地址,返回向目标设备的当前PCIE地址中写入PTMP请求报文的步骤,直到确定出PTMP回应报文中携带的目标设备的下一个PCIE地址偏移,和自身的下一个PCIE地址偏移均为预设PCIE地址偏移时结束检测;
S206:确定源设备的当前PCIE地址映射错误。
在现有技术中,由于源设备或目标设备侧的指定PCIE地址是开放的,这就容易导致检测时写入的测试数据可能被其他设备写入的数据覆盖掉,进而导致检测结果不够准确。
为了解决此问题,在本发明实施例中,通过控制源设备和目标设备的运行状态,使其在双方检测期间不被干扰,以提高检测准确率,即,源设备可在将自身设置为繁忙状态,并在确定出目标设备处于空闲状态后,执行上述步骤S201,这样,在源设备与目标设备交互过程中,就不会受到PCIE体系架构中其他某些设备对本地执行写操作的影响,进而提高了检测准确率。
进一步地,源设备可通过向本地的PCIE基地址中写入设定数据之外的数据的方式,确定自身处于繁忙状态;另外,源设备通过读取目标设备的PCIE基地址中的相关数据来确定目标设备的状态,具体为:在读取出目标设备的PCIE基地址中的数据为设定数据时,确定目标设备处于空闲状态。
需要说明的是,上述设定数据可事先指定,用于代表设备处于空闲状态,例如将设定数据设定为全0,代表设备处于空闲状态,当然,对于目标设备的PCIE基地址中的数据而言,不同的数据代表着目标设备处于不同的运行状态,例如数据为全0时,意味着目标设备处于空闲状态;数据为全F时,意味着目标设备的PCIE基地址错误;数据为非全0且非全F时,意味着目标设备处于繁忙状态等。
在上述步骤S201中,PTMP请求报文是本发明实施例用于传递测试请求、PCIE地址偏移、测试数据等信息的协议报文,如图3所示,为此PTMP报文的结构示意图,具体可包括有源设备标识(Src BDF)、目标设备标识(Dst BDF)、PCIE地址偏移和测试数据等。
需要说明的是,为了保证检测目标设备的PCIE地址映射的准确性,上述测试数据在两者交互过程中是一直保持不变的。
在上述步骤S201中,源设备在向目标设备的当前PCIE地址中写入PTMP请求报文之后,对于目标设备这一侧而言,它会监测此当前PCIE地址中是否有源设备写入的PTMP报文,在监测到存有PTMP报文的情况下,通常会确认一下PTMP报文是否为PTMP请求报文,在确认为是时,才执行后续的写入流程,并在执行完后续写入流程之后,清空此当前PCIE地址中的数据,以保证检测的准确性。例如,源设备的PCIE基地址为0x01000000,源设备的当前PCIE地址偏移为0x00300000,在这种情况下,将PTMP回应报文写入根据0x01000000和0x00300000确定出的PCIE地址中。
需要说明的是,在上述步骤S202中,上述预设时间可根据检测的实际情况而取值,例如,预设时间为5秒,当然还可以是其他数值。
优选地,在上述步骤S205中,上述预设PCIE地址偏移,是用来表征源设备和目标设备双方最后一个PCIE地址偏移的下一个PCIE地址偏移,也就是说,不管是源设备,还是目标设备,如果它在相应PTMP报文中携带的下一个PCIE地址偏移为预设的PCIE地址偏移,这就意味着已没有需要测试的PCIE地址了。在这里,预设PCIE地址偏移例如可设定为0XFFFF_FFFF,当然,也可以采用其他方式标识,在此不再一一列举。
进一步地,在上述步骤S205中,源设备具体可通过下述几种方式确定出目标设备和自身的下一个PCIE地址:
第一种方式:在比较出PTMP回应报文中携带的目标设备的下一个PCIE地址偏移不为预设PCIE地址偏移,且自身的下一个PCIE地址偏移为预设PCIE地址偏移时,根据目标设备的PCIE基地址和PTMP回应报文中携带的目标设备的下一个PCIE地址偏移确定出目标设备的下一个PCIE地址;以及根据自身的PCIE基地址和当前PCIE地址偏移确定出自身的下一个PCIE地址;
第二种方式:在比较出PTMP回应报文中携带的目标设备的下一个PCIE地址偏移为预设PCIE地址偏移,且自身的下一个PCIE地址偏移不为预设PCIE地址偏移时,根据目标设备的PCIE基地址和当前PCIE地址偏移确定出目标设备的下一个PCIE地址;以及根据自身的PCIE基地址和下一个PCIE地址偏移确定出自身的下一个PCIE地址;
第三种方式:在比较出PTMP回应报文中携带的目标设备的下一个PCIE地址偏移不为预设PCIE地址偏移,且自身的下一个PCIE地址偏移不为预设PCIE地址偏移时,根据目标设备的PCIE基地址和PTMP回应报文中携带的目标设备的下一个PCIE地址偏移确定出目标设备的下一个PCIE地址;以及根据自身的PCIE基地址和下一个PCIE地址偏移确定出自身的下一个PCIE地址。
具体地,在本发明实施例中,对于源设备和目标设备来说,并不知晓对方设置有多少个PCIE地址,那么,双方的PCIE地址可能存在下述几种情况:
第一种情况:源设备和目标设备的PCIE地址数量相同,在这种情况下,可能有下述两种情形:
第一种情形:双方仅包括各自当前的PCIE地址,在这种情况下,源设备和目标设备的下一个PCIE地址偏移均为预设PCIE地址偏移,即双方已检测完毕,结束检测;
第二种情形,双方包括数量相同的PCIE地址,在这种情况下,如果源设备和目标设备的下一个PCIE地址偏移均不为预设PCIE地址偏移,那么,采用上述第三种方式来确定目标设备和自身的下一个PCIE地址,直到将双方的PCIE地址检测完毕结束。例如,设备A(源设备)包括A1、A2和A3这3个PCIE地址;设备B(目标设备)包括B1、B2和B3这3个PCIE地址,那么,设备A与设备B的检测交互可如图4A所示。
第二种情况:源设备的PCIE地址数量多于目标设备的PCIE地址数量,在这种情况下,在源设备和目标设备的下一个PCIE地址偏移均不为预设PCIE地址偏移时,采用上述第三种方式来确定目标设备和自身的下一个PCIE地址;在目标设备的下一个PCIE地址偏移为预设PCIE地址偏移时,采用上述第二种方式来确定目标设备和自身的下一个PCIE地址,直到检测完源设备的PCIE地址结束。例如,设备A(源设备)包括A1、A2、A3、A4和A5这5个PCIE地址;设备B(目标设备)包括B1、B2和B3这3个PCIE地址,那么,设备A与设备B的检测交互可如图4B所示。
第三种情况:源设备的PCIE地址数量少于目标设备的PCIE地址数量,在这种情况下,在源设备和目标设备的下一个PCIE地址偏移均不为预设PCIE地址偏移时,采用上述第三种方式来确定目标设备和自身的下一个PCIE地址;在自身的下一个PCIE地址偏移为预设PCIE地址偏移时,采用上述第一种方式来确定目标设备和自身的下一个PCIE地址,直到检测完目标设备的PCIE地址结束。例如,设备A(源设备)包括A1、A2和A3这3个PCIE地址;设备B(目标设备)包括B1、B2、B3、B4和B5这5个PCIE地址,那么,设备A与设备B的检测交互可如图4C所示。
当然,本发明实施例并不仅限于上述几种方式来确定目标设备和自身的下一个PCIE地址,还可以采用其他确定方式实现,例如,在源设备的PCIE地址数量少于目标设备的PCIE地址数量的情况下,假设比较出源设备的下一个PCIE地址偏移为预设PCIE地址偏移,这时,源设备可以从之前写入目标设备侧的PTMP报文中的下一个PCIE地址偏移中选择一个,然后根据自身的基地址和选择在出的PCIE地址偏移确定源设备的下一个PCIE地址,在此不再一一列举。
优选地,在本发明实施例中,为了进一步提高PCIE地址映射检测的准确率,源设备在监测到自身的当前PCIE地址中未存有目标设备写入的PTMP回应报文时,并不立即执行上述步骤S204,可先执行下述流程:重新向目标设备的当前PCIE地址中写入PTMP请求报文,并在重新写入的PTMP请求报文的次数达到第一设定次数时仍未监测到PTMP回应报文时,再执行上述步骤S204。
优选地,在本发明实施例中,为了进一步提高PCIE地址映射检测的准确率,源设备在确定出PTMP回应报文中携带的回应测试数据与PTMP请求报文中携带的测试数据不相同的情况下,可以不立即执行上述步骤S206,先执行下述流程:重新向目标设备的当前PCIE地址写入PTMP请求报文,然后在重新写入的PTMP请求报文的次数达到设定次数,且确定出PTMP回应报文中携带的回应测试数据,与PTMP请求报文中的测试数据仍不相同时,再执行上述步骤S206。
需要说明的是,在上述两种优选执行流程中,上述第一设定次数和第二设定次数均可以根据检测的实际情况来确定,二者可设定为相同数值,也可设定为不同数值,例如,二者均可设定为3。
优选地,在本发明实施例中,为了进一步提高PCIE地址映射检测的准确率,源设备在确定出PTMP回应报文中携带的回应测试数据是否与PTMP请求报文中携带的测试数据相同之后,清空源设备的当前PCIE地址中的数据,或者在监测到此当前PCIE地址中存有新写入的PTMP报文时,覆盖上一次写入的PTMP报文。
下面仍以设备A(源设备)和设备B(目标设备)为例,对上述检测方法进行简要说明:
如图4D所示,假设设备A的当前PCIE地址为A1,对应的PCIE地址偏移为X1,下一个PCIE地址为A2,对应的PCIE地址偏移为X2;设备B的当前PCIE地址为B1,下一个PCIE地址为B2,对应的PCIE地址偏移为Y2;设备B的当前PCIE地址为B1;设备A知晓设备B的当前PCIE地址B1的PCIE地址;另外,假设设备A已向自身的PCIE基地址(图4D未示)写入全0之外的数据,使其当前处于非空闲状态,并已读取设备B的PCIE基地址中的数据为全0,确定出设备B处于空闲状态。
那么,在这种情况下,设备A需执行上述步骤S201,向设备B的B1写入PTMP请求报文,此PTMP请求报文中携带有X1和测试数据,这样,设备B在监测到B1存有此PTMP请求报文后,根据从本地数据库中获取的设备A的PCIE基地址和X1确定出设备A的当前PCIE地址,即A1,然后,设备B会向A1写入PTMP响应报文,此PTMP响应报文中携带有Y2(下一个PCIE地址偏移)和回应测试数据。
对于设备A而言,当它监测到A1中存有设备B写入的PTMP响应报文后,首先确认PTMP响应报文中的回应测试数据是否与之前写到B1的测试数据相同,假设确认为相同,那么,设备A根据从本地数据库中获取的设备B的PCIE基地址和Y2确定出设备B的下一个PCIE地址,即B2,并确认出Y2不是0XFFFF_FFFF(预设的偏移地址),这时,向B2再次写入携带有X2和上述测试数据的PTMP请求报文,设备B在监测到B2存有PTMP请求报文时,知道此地址为本地的最后一个PCIE地址,在这种情况下,它向设备A的A2(具体确定过程同上)写入携带有0XFFFF_FFFF和回应测试数据的PTMP响应报文,这样一来,设备A在监测到A2中的相关数据时,假设仍确认为相同,这时,A2是自身的最后一个PCIE地址,即自身的下一个PCIE地址偏移为0XFFFF_FFFF,设备B的下一个PCIE地址偏移也0XFFFF_FFFF,得出检测完毕,退出检测流程。
基于同一发明构思,本发明实施例还提供了一种PCIE地址映射检测的装置,由于该装置所解决问题的原理与前述PCIE地址映射检测的方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的一种PCIE地址映射的检测装置,如图5所示,具体可以包括:
写入模块501,用于向目标设备的当前PCIE地址中写入PTMP请求报文;
在这里,上述目标设备的当前PCIE地址为装置根据本地保存的目标设备的基地址和当前PCIE地址偏移确定出的,且PTMP请求报文中携带有装置的当前PCIE地址偏移和测试数据;
监测模块502,用于在预设时间内监测装置的当前PCIE地址中是否存有目标设备写入的PTMP回应报文;
在这里,上述装置的当前PCIE地址为目标设备在监测到装置的当前PCIE地址中存有PTMP请求报文后,根据本地保存的装置的PCIE基地址和PTMP请求报文中携带的装置的当前PCIE地址偏移确定出的,且向装置的当前PCIE地址中写入的PTMP回应报文中携带有目标设备的下一个PCIE地址偏移和回应测试数据;
确定模块503,在监测模块502监测到装置的当前PCIE地址中存有目标设备写入的PTMP回应报文时,确定PTMP回应报文中携带的回应测试数据是否与PTMP请求报文中携带的测试数据相同,并在确定为相同时,确定目标设备和装置的当前PCIE地址映射正确,将PTMP回应报文中携带的目标设备的下一个PCIE地址偏移和装置的下一个PCIE地址偏移,分别与预设的PCIE地址偏移进行比较,根据比较结果确定目标设备和装置的下一个PCIE地址,将其分别作为目标设备和装置的当前PCIE地址,返回向目标设备的当前PCIE地址中写入PTMP请求报文的步骤,直到确定出PTMP回应报文中携带的目标设备的下一个PCIE地址偏移,和装置的下一个PCIE地址偏移均为预设PCIE地址偏移时结束检测。
优选地,上述装置,还可包括:
设置模块504,用于在装置为源设备时,将装置设置为繁忙状态;
上述确定模块503,用于在设置模块504将装置设置为繁忙状态后,确定目标设备是否处于空闲状态;
上述写入模块501,具体用于在确定模块503确定出目标设备处于空闲状态时,向目标设备的当前PCIE地址中写入PTMP请求报文。
优选地,上述设置模块504,具体用于向装置的基地址中写入设定数据之外的数据后,确定装置处于繁忙状态;
上述确定模块503,具体用于在读取出目标设备的基地址中的数据为设定数据时,确定目标设备处于空闲状态。
优选地,上述确定模块503,具体用于在比较出PTMP回应报文中携带的目标设备的下一个PCIE地址偏移不为预设PCIE地址偏移,且装置的下一个PCIE地址偏移为预设PCIE地址偏移时,根据目标设备的PCIE基地址和PTMP回应报文中携带的目标设备的下一个PCIE地址偏移确定出目标设备的下一个PCIE地址;以及根据装置的PCIE基地址和当前PCIE地址偏移确定出装置的下一个PCIE地址;在比较出PTMP回应报文中携带的目标设备的下一个PCIE地址偏移为预设PCIE地址偏移,且装置的下一个PCIE地址偏移不为预设PCIE地址偏移时,根据目标设备的PCIE基地址和当前PCIE地址偏移确定出目标设备的下一个PCIE地址;以及根据装置的PCIE基地址和下一个PCIE地址偏移确定出装置的下一个PCIE地址;以及在比较出PTMP回应报文中携带的目标设备的下一个PCIE地址偏移不为预设PCIE地址偏移,且装置的下一个PCIE地址偏移不为预设PCIE地址偏移时,根据目标设备的PCIE基地址和PTMP回应报文中携带的目标设备的下一个PCIE地址偏移确定出目标设备的下一个PCIE地址;以及根据装置的PCIE基地址和下一个PCIE地址偏移确定出装置的下一个PCIE地址。
优选地,上述写入模块501,还用于在监测模块502在预设时间内未监测到装置的当前PCIE地址中存有目标设备写入的PTMP回应报文时,重新向目标设备的当前PCIE地址中写入PTMP请求报文;
上述确定模块503,还用于在写入模块501重新写入的PTMP请求报文的次数达到第一设定次数,且监测模块502仍未监测到PTMP回应报文时,确定目标设备的当前PCIE地址映射错误,并结束检测。
优选地,上述写入模块501,还用于在确定模块503确定出PTMP回应报文中携带的回应测试数据,与PTMP请求报文中的测试数据不相同时,重新向目标设备的当前PCIE地址写入PTMP请求报文;
上述确定模块503,还用于在写入模块501重新写入的PTMP请求报文的次数达到第二设定次数,且确定出PTMP回应报文中携带的回应测试数据,与PTMP请求报文中的测试数据仍不相同时,确定装置的当前PCIE地址映射错误,并结束检测。
优选地,上述装置,还包括:
清空覆盖模块505,用于在确定模块503确定PTMP回应报文中携带的回应测试数据是否与PTMP请求报文中携带的测试数据相同之后,清空装置的当前PCIE地址中的数据,或者在监测模块502监测到此当前PCIE地址中存有新写入的PTMP报文时,覆盖上一次写入的PTMP报文。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种快速外部设备互连PCIE地址映射检测的方法,其特征在于,包括:
源设备向目标设备的当前PCIE地址中写入点到多点PTMP请求报文,所述目标设备的当前PCIE地址为所述源设备根据本地保存的目标设备的PCIE基地址和当前PCIE地址偏移确定出的,所述PTMP请求报文中携带有源设备的当前PCIE地址偏移和测试数据;
如果在预设时间内监测到自身的当前PCIE地址中存有所述目标设备写入的PTMP回应报文,则确定所述PTMP回应报文中携带的回应测试数据是否与所述PTMP请求报文中携带的测试数据相同,所述源设备的当前PCIE地址为所述目标设备在监测到自身的当前PCIE地址中存有所述PTMP请求报文后,根据本地保存的源设备的PCIE基地址和所述PTMP请求报文中携带的源设备的当前PCIE地址偏移确定出的,所述PTMP回应报文中携带有目标设备的下一个PCIE地址偏移和回应测试数据;
在确定为相同时,确定所述目标设备和所述源设备的当前PCIE地址映射正确,并将所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移和自身的下一个PCIE地址偏移,分别与预设的PCIE地址偏移进行比较,根据比较结果确定所述目标设备和自身的下一个PCIE地址,将其分别作为所述目标设备和自身的当前PCIE地址,返回向所述目标设备的当前PCIE地址中写入所述PTMP请求报文的步骤,直到确定出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移,和自身的下一个PCIE地址偏移均为所述预设PCIE地址偏移时结束检测。
2.如权利要求1所述的方法,其特征在于,所述源设备在向所述目标设备的当前PCIE地址中写入PTMP请求报文之前,还包括:
将自身设置为繁忙状态,并确定所述目标设备是否处于空闲状态;
若是,向所述目标设备的当前PCIE地址中写入所述PTMP请求报文。
3.如权利要求1或2所述的方法,其特征在于,所述源设备通过下述方式确定出所述目标设备和自身的下一个PCIE地址:
如果所述源设备比较出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移不为预设PCIE地址偏移,且自身的下一个PCIE地址偏移为所述预设PCIE地址偏移,则根据所述目标设备的PCIE基地址和所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移确定出所述目标设备的下一个PCIE地址;以及根据自身的PCIE基地址和当前PCIE地址偏移确定出自身的下一个PCIE地址;
如果所述源设备比较出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移为预设PCIE地址偏移,且自身的下一个PCIE地址偏移不为所述预设PCIE地址偏移,则根据所述目标设备的PCIE基地址和当前PCIE地址偏移确定出所述目标设备的下一个PCIE地址;以及根据自身的PCIE基地址和下一个PCIE地址偏移确定出自身的下一个PCIE地址;
如果所述源设备比较出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移不为预设PCIE地址偏移,且自身的下一个PCIE地址偏移不为所述预设PCIE地址偏移,则根据所述目标设备的PCIE基地址和所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移确定出所述目标设备的下一个PCIE地址;以及根据自身的PCIE基地址和下一个PCIE地址偏移确定出自身的下一个PCIE地址。
4.如权利要求1或2所述的方法,其特征在于,还包括:
如果源设备在所述预设时间内未监测到自身的当前PCIE地址中存有所述目标设备写入的PTMP回应报文,则重新向所述目标设备的当前PCIE地址中写入所述PTMP请求报文;
如果源设备重新写入的PTMP请求报文的次数达到第一设定次数时仍未监测到所述PTMP回应报文,确定目标设备的当前PCIE地址映射错误,并结束检测。
5.如权利要求4所述的方法,其特征在于,还包括:
如果源设备在确定出所述PTMP回应报文中携带的回应测试数据,与所述PTMP请求报文中的测试数据不相同,则重新向所述目标设备的当前PCIE地址写入所述PTMP请求报文;
如果源设备重新写入的PTMP请求报文的次数达到第二设定次数,且确定出所述PTMP回应报文中携带的回应测试数据,与所述PTMP请求报文中的测试数据仍不相同,则确定源设备的当前PCIE地址映射错误,并结束检测。
6.一种快速外部设备互连PCIE地址映射检测的装置,其特征在于,包括:
写入模块,用于向目标设备的当前PCIE地址中写入点到多点PTMP请求报文,所述目标设备的当前PCIE地址为所述装置根据本地保存的目标设备的PCIE基地址和当前PCIE地址偏移确定出的,所述PTMP请求报文中携带有所述装置的当前PCIE地址偏移和测试数据;
监测模块,用于在预设时间内监测所述装置的当前PCIE地址中是否存有所述目标设备写入的PTMP回应报文,所述装置的当前PCIE地址为所述目标设备在监测到所述装置的当前PCIE地址中存有PTMP请求报文后,根据本地保存的所述装置的PCIE基地址和所述PTMP请求报文中携带的所述装置的当前PCIE地址偏移确定出的,所述PTMP回应报文中携带有目标设备的下一个PCIE地址偏移和回应测试数据;
确定模块,在所述监测模块监测到所述装置的当前PCIE地址中存有所述目标设备写入的PTMP回应报文时,确定所述PTMP回应报文中携带的回应测试数据是否与所述PTMP请求报文中携带的测试数据相同,并在确定为相同时,确定所述目标设备和所述装置的当前PCIE地址映射正确,将所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移和所述装置的下一个PCIE地址偏移,分别与预设的PCIE地址偏移进行比较,根据比较结果确定所述目标设备和所述装置的下一个PCIE地址,将其分别作为所述目标设备和所述装置的当前PCIE地址,返回向所述目标设备的当前PCIE地址中写入所述PTMP请求报文的步骤,直到确定出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移,和所述装置的下一个PCIE地址偏移均为所述预设PCIE地址偏移时结束检测。
7.如权利要求6所述的装置,其特征在于,所述装置,还包括:
设置模块,用于在所述装置为源设备时,将所述装置设置为繁忙状态;
确定模块,还用于在所述设置模块将所述装置设置为繁忙状态后,确定目标设备是否处于空闲状态;
所述写入模块,具体用于在所述确定模块确定出所述目标设备处于空闲状态时,向所述目标设备的当前PCIE地址中写入所述PTMP请求报文。
8.如权利要求6或7所述的装置,其特征在于,所述确定模块,具体用于在比较出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移不为预设PCIE地址偏移,且所述装置的下一个PCIE地址偏移为所述预设PCIE地址偏移时,根据所述目标设备的PCIE基地址和所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移确定出所述目标设备的下一个PCIE地址;以及根据所述装置的PCIE基地址和当前PCIE地址偏移确定出所述装置的下一个PCIE地址;在比较出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移为预设PCIE地址偏移,且所述装置的下一个PCIE地址偏移不为所述预设PCIE地址偏移时,根据所述目标设备的PCIE基地址和当前PCIE地址偏移确定出所述目标设备的下一个PCIE地址;以及根据所述装置的PCIE基地址和下一个PCIE地址偏移确定出所述装置的下一个PCIE地址;以及在比较出所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移不为预设PCIE地址偏移,且所述装置的下一个PCIE地址偏移不为所述预设PCIE地址偏移时,根据所述目标设备的PCIE基地址和所述PTMP回应报文中携带的目标设备的下一个PCIE地址偏移确定出所述目标设备的下一个PCIE地址;以及根据所述装置的PCIE基地址和下一个PCIE地址偏移确定出所述装置的下一个PCIE地址。
9.如权利要求6或7所述的装置,其特征在于,所述写入模块,还用于在所述监测模块在所述预设时间内未监测到所述装置的当前PCIE地址中存有所述目标设备写入的PTMP回应报文时,重新向所述目标设备的当前PCIE地址中写入所述PTMP请求报文;
所述确定模块,还用于在所述写入模块重新写入的PTMP请求报文的次数达到第一设定次数,且所述监测模块仍未监测到所述PTMP回应报文时,确定目标设备的当前PCIE地址映射错误,并结束检测。
10.如权利要求9所述的装置,其特征在于,所述写入模块,还用于在所述确定模块确定出所述PTMP回应报文中携带的回应测试数据,与所述PTMP请求报文中的测试数据不相同时,重新向所述目标设备的当前PCIE地址写入所述PTMP请求报文;
所述确定模块,还用于在所述写入模块重新写入的PTMP请求报文的次数达到第二设定次数,且确定出所述PTMP回应报文中携带的回应测试数据,与所述PTMP请求报文中的测试数据仍不相同时,确定所述装置的当前PCIE地址映射错误,并结束检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310671716.XA CN103731317B (zh) | 2013-12-10 | 2013-12-10 | 一种pcie地址映射检测的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310671716.XA CN103731317B (zh) | 2013-12-10 | 2013-12-10 | 一种pcie地址映射检测的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103731317A CN103731317A (zh) | 2014-04-16 |
CN103731317B true CN103731317B (zh) | 2017-02-08 |
Family
ID=50455252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310671716.XA Active CN103731317B (zh) | 2013-12-10 | 2013-12-10 | 一种pcie地址映射检测的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103731317B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877915B2 (en) * | 2016-03-04 | 2020-12-29 | Intel Corporation | Flattening portal bridge |
CN108712521A (zh) * | 2018-05-31 | 2018-10-26 | 郑州云海信息技术有限公司 | 设备节点信息的配置***、方法、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339810A (zh) * | 2007-07-06 | 2009-01-07 | 群康科技(深圳)有限公司 | 移位寄存器和采用该移位寄存器的液晶显示装置 |
CN102662808A (zh) * | 2012-03-21 | 2012-09-12 | 北京星网锐捷网络技术有限公司 | 一种pcie硬件故障检测的实现方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8144582B2 (en) * | 2008-12-30 | 2012-03-27 | International Business Machines Corporation | Differentiating blade destination and traffic types in a multi-root PCIe environment |
-
2013
- 2013-12-10 CN CN201310671716.XA patent/CN103731317B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339810A (zh) * | 2007-07-06 | 2009-01-07 | 群康科技(深圳)有限公司 | 移位寄存器和采用该移位寄存器的液晶显示装置 |
CN102662808A (zh) * | 2012-03-21 | 2012-09-12 | 北京星网锐捷网络技术有限公司 | 一种pcie硬件故障检测的实现方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103731317A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558282B (zh) | 一种pcie链路检测方法、***及电子设备和存储介质 | |
CN101894060B (zh) | 故障检测方法及模块化设备 | |
US8935576B2 (en) | Automated cabling process for a complex environment | |
US20090083585A1 (en) | Method of pressure testing for peripheral component interconnect (pci) bus stage | |
CN105319455A (zh) | 一种自动测试***及方法 | |
US8566416B2 (en) | Method and system for accessing storage device | |
CN101873234A (zh) | 网卡性能测试***及方法 | |
CN103077147B (zh) | 一种基于链表的全功能1553b总线ip核 | |
CN104572385B (zh) | 存储器故障检测***及方法 | |
CN102446129A (zh) | 主板串口测试***及方法 | |
CN108763089A (zh) | 一种测试方法、装置及*** | |
CN103164309A (zh) | Sol功能测试方法及*** | |
CN103714036A (zh) | 支持批量读取校验的i2c多路复用器及控制方法 | |
CN104536867A (zh) | 实现多片现场可编程门阵列调试的***及方法 | |
CN105786736A (zh) | 一种多芯片级联的方法、芯片和装置 | |
CN103731317B (zh) | 一种pcie地址映射检测的方法及装置 | |
CN105740122A (zh) | 一种手机内存泄漏的监测方法及监测*** | |
CN102053898A (zh) | 针对主机pcie插槽上总线接口的测试方法及其读写测试方法 | |
US20100011146A1 (en) | Conveying Information With a PCI Express Tag Field | |
CN103412838B (zh) | 一种扩展***、通信方法、地址配置方法、设备及装置 | |
CN104360973A (zh) | 一种通信***、通信方法及相关通信设备 | |
US20120054391A1 (en) | Apparatus and method for testing smnp cards | |
CN107677954A (zh) | 一种汽车仪表数字量并行检测方法及*** | |
CN103759951B (zh) | 可同时测量多台农机车的制动性能测试仪的测试方法 | |
US20100191895A1 (en) | System, test apparatus and relay apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee after: RUIJIE NETWORKS Co.,Ltd. Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee before: Beijing Star-Net Ruijie Networks Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |