一种外设部件内部互联PCIe设备及其检测方法

文档序号:9921930阅读:687来源:国知局
一种外设部件内部互联PCIe设备及其检测方法
【技术领域】
[0001]本发明涉及移动通信领域,尤其涉及一种外设部件内部互联PCIe设备及其检测方法。
【背景技术】
[0002]随着外设部件内部互联(PeripheralComponent Interconnect Express,PCIe)协议在存储、计算等领域的广泛使用,其对系统的可靠性要求也越来越高;为了提升系统的可靠性,PCIe协议定义了一系列错误检测与处理机制来改善1设备异常对主机的影响,但PCIe协议仍然存在对有些错误的严重性程度认识不足,且CPU也在对某些错误的处理方面不完善的情况。
[0003]当前,1设备出现异常时,可能会导致PCIe设备的根节点(RootPoint,RP)或PCIe桥PCIe Switch的下游端口(Downstream Port,DP)出现异常,其中,PCIe Switch含有多个下游端口 DP。当其检测到本端口或其连接的10设备有异常时,根据PCIe的高级错误报告AER机制发送的错误消息,如中断消息,错误处理软件接收到中断后设置相应的DP或RP的链路控制寄存器,将其下端的链路断开,隔离异常的10设备,其中结束节点(End point,EP)是PCIe系统中的10设备。
[0004]但是,当挂接在PCIeSwitch中一个DP上的EP出现某些异常情况时,由于整体PCIe的拓扑结构较为复杂,软件很难快速查找到异常EP相应的DP端口,无法及时将相应DP端口断链;通常情况下为保证系统不死机,驱动软件会直接将RP下的所有链路全部断开,对业务的影响较大;同时,此方案需要对驱动软件进行修改,添加对异常的检测与判断以及断链的控制,兼容性较差。

【发明内容】

[0005]本发明提供了一种PCIe设备及其检测方法,用于解决现有技术中EP异常造成的CPU挂死。
[0006]一方面,本发明提供了一种PCIe设备,如网卡,SSB等数据传输设备。PCIe设备包括PCIe端口,该PCIe端口包括:PCI e核单元、异常检测单元和硬件断链单元。其中,PCIe核单元用于接收CPU或PCIe桥的上游端口 UP下发的传输层报文TLP,并将TLP报文下发至结束端点EP。异常检测单元对PCIe端口向EP下发报文的过程进行检测,检测该报文下发过程中是否有报文重传异常或流控信用值更新异常,若存在异常,则输出硬件断链使能信号。根据硬件断链使能信号,硬件断链单元断开该PCIe端口与EP的链接,以便隔离异常的EP,提升系统可靠性。
[0007]在一个可能的设计中,硬件断链单元具体可以用于根据异常检测单元输出的硬件断链使能信号,通过将PCIe核单元中链路状态寄存器的禁用链路Link Disable状态置位,如Link Disable状态位接收高电平有效,则置I,从而控制PCIe核中的LTSSM状态机设置为禁用Disable状态,断开PCIe端口与EP的链接,从而隔离异常EP。
[0008]在一个可能的设计中,当PCIe设备包括CPU时,PCIe设备的PCIe端口位于CPU的根节点RP中。PCIe端口中的PCIe核单元接收CPU下发的TLP报文,并将TLP报文发送至EP。
[0009]在一个可能的设计中,当PCIe设备包括CI3U和PCIe桥,PCIe设备的PCIe端口位于PCIe桥的DP中。PCIe端口中的PCIe核单元接收UP下发的TLP报文,并将TLP报文发送至EP。
[0010]在一个可能的设计中,当PCIe端口向EP下发报文的过程是PCIe端口和EP之间的报文重传过程时,异常检测单元可以是重传缓冲器检测单元。重传缓冲器检测单元对PCIe端口中PCIE核的报文重传过程进行检测,若报文重传过程出现异常,则输出硬件断链使能信号;若无异常,则无输出。
[0011]在一个可能的设计中,重传缓冲器检测单元可以同时包括超时检测单元和次数检测单元,也可以单独包括超时检测单元或次数检测单元。当重传缓冲器检测单元包括超时检测单元时,超时检测单元对PCIe端口中PCIe核单元的报文重传过程进行超时检测。当PCIe端口中的PCIe核单元存有TLP报文,但未输出TLP报文释放信号时,超时检测单元检测到未输出TLP报文释放信号的重传报文持续时间(也可以说是报文重传时间)达到阈值时,重传缓冲器检测单元向硬件断链单元输出硬件断链使能信号,控制硬件断链单元断开PCIe端口与异常EP的连接,减小了异常EP对系统整体业务的影响。
[0012]在一个可能的设计中,重传缓冲器检测单元可以同时包括超时检测单元和次数检测单元,也可以单独包括超时检测单元或次数检测单元。当重传缓冲器检测单元包括次数检测单元时,次数检测单元对PCIe端口中PCIe核单元的报文重传过程进行次数检测。当PCIe端口中的PCIe核单元存有TLP报文,但未输出TLP报文释放信号时,次数检测单元检测到未输出TLP报文释放信号的重传报文持续次数(也可以说是报文重传次数)达到阈值时,重传缓冲器检测单元向硬件断链单元输出硬件断链使能信号,控制硬件断链单元断开PCIe端口与异常EP的连接,减小了异常EP对系统整体业务的影响。
[0013]在一个可能的设计中,重传缓冲器检测单元可以同时包括超时检测单元和次数检测单元,也可以单独包括超时检测单元或次数检测单元。当重传缓冲器检测单元同时包括超时检测单元和次数检测单元时,超时检测单元和次数检测单元共同对PCIe端口中PCIe核单元的报文重传过程进行次数检测。当PCIe端口中的PCIe核单元存有TLP报文,但未输出TLP报文释放信号时,超时检测单元和次数检测单元分别检测未输出TLP报文释放信号的重传报文持续时间和重传报文持续次数,重传报文持续时间和重传报文持续次数中的任一一项达到预设阈值(时间阈值或次数阈值),重传缓冲器检测单元都会向硬件断链单元输出硬件断链使能信号,实现PCIe端口与异常EP的断链,减小了异常EP对系统整体业务的影响。
[0014]在一个可能的设计中,重传缓冲器检测单元不仅可以包括超时检测单元和/或次数检测单元,还可以包括识别单元。该识别单元用于识别重传过程中会导致CPU挂死的重传持续时间和/或重传次数的值,从而来设定超时检测单元和/或次数检测单元的时间阈值和/或次数阈值,断开PCIe端口与异常EP的连接,从而提升了系统的可靠性。
[0015]在一个可能的设计中,PCIe端口向EP下发报文的过程是PCIe端口和EP之间的流控信用值更新过程时,异常检测单元可以是无信用值检测单元。无信用值检测单元对PCIe端口中PCIe核单元的多类事务的无信用值持续时间报文重传过程进行检测,若多类事务的无信用值持续时间超过阈值,则输出硬件断链使能信号,控制硬件断链单元断开PCIe端口与异常EP的连接,减小了异常EP对系统整体业务的影响。
[0016]在一个可能的设计中,无信用值检测单元包括多个计时器检测单元,通过多个计时器检测单元分别对PCIe核单元中多类事务的无信用值持续时间进行检测。当PCIe端口中的PCIe核单元存有TLP报文时,无信用值检测单元检测到多个无信用值检测单元中的一个或多个计时器检测单元达到时间阈值,此时无信用值检测单元向硬件断链单元输出所述硬件断链使能信号。
[0017]在一个可能的设计中,无信用值检测单元中的多个计时器检测单元具体可以用于检测PCIe核单元中多类事务的流控信用值更新过程,此处的多类事务可以包括:报告请求头PH、报告请求数据PD、非报告请求头NPH、非报告请求数据NPD、完成报文头CPLH和完成报文数据CPLD。若PCIe核单元存有所述TLP报文,且多个计时器检测单元中的一个或多个计时器检测单元达到时间阈值,则无信用值检测单元向硬件断链单元输出所述硬件断链使能信号。
[0018]另一方面,本发明实施例提供了一种PCIe设备的检测方法,PCIe设备包括PCIe端口,PCI e设备可以是网卡,SSB等数据传输设备。该检测方法由PCI e端口执行,包括:接收CPU或PCIe桥的上游端口 UP下发的传输层报文TLP,并将TLP报文下发至结束端点EP;通过对向EP下发报文的过程进行检测,检测该报文下发过程中是否有报文重传异常或流控信用值更新异常,若存在异常,则输出硬件断链使能信号。根据硬件断链使能信号,硬件断链单元断开该PCIe端口与EP的链接,以便隔离异常的EP,提升系统可靠性。
[0019]在一个可能的设计中,根据异常检测单元输出的硬件断链使能信号,通过将PCIe核单元中链路状态寄存器的Link Disable状态置位,如Link Disable状态位接收高电平有效,则置I,从而控制PCIe核单元中的LTSSM状态机设置为Disable状态,断开PCIe端口与EP的链接,从而隔离异常EP。
[0020]在一个可能的设计中,对于检测向EP下发报文的过程,可以对报文重传过程进行超时检测和/或次数检测。当仅对报文重传过程进行超时检测时,对于PCIe端口中存有TLP报文,但未输出TLP报文释放信号的情况下,检测到重传报文持续时间(也可以说是报文重传时间)达到阈值时,输出硬件断链使能信号,实现PCIe端口与异常EP的断链,减小了异常EP对系统整体业务的影响。
[0021]在一个可能的设计中,对于检测向EP下发报文的过程,可以对报文重传过程进行超时检测和/或次数检测。当仅对报文重传过程进
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1