CN105205021A - 断开PCIe设备与主机之间的链接的方法和装置 - Google Patents

断开PCIe设备与主机之间的链接的方法和装置 Download PDF

Info

Publication number
CN105205021A
CN105205021A CN201510580109.1A CN201510580109A CN105205021A CN 105205021 A CN105205021 A CN 105205021A CN 201510580109 A CN201510580109 A CN 201510580109A CN 105205021 A CN105205021 A CN 105205021A
Authority
CN
China
Prior art keywords
tlp
type
error
equipment
main frame
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.)
Granted
Application number
CN201510580109.1A
Other languages
English (en)
Other versions
CN105205021B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510580109.1A priority Critical patent/CN105205021B/zh
Publication of CN105205021A publication Critical patent/CN105205021A/zh
Priority to EP16843471.0A priority patent/EP3296885B1/en
Priority to PCT/CN2016/083801 priority patent/WO2017041533A1/zh
Priority to ES16843471T priority patent/ES2748228T3/es
Priority to US15/819,440 priority patent/US10565043B2/en
Application granted granted Critical
Publication of CN105205021B publication Critical patent/CN105205021B/zh
Priority to US16/740,717 priority patent/US11620175B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • 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
    • 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/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Retry When Errors Occur (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种断开PCIe设备与主机之间的链接的方法和装置,属于计算机技术领域。方法包括:所述PCIe设备包括结束节点EP设备,所述EP设备获取所述PCIe设备与所述主机之间传输传输层报文TLP包错误的错误类型;如果所述错误类型是PCIe协议中规定的可修复的错误类型,所述EP设备统计出现所述错误类型的持续时长;如果所述持续时长达到预设时长,所述EP设备断开与所述主机之间的链接。装置包括:获取模块,统计模块和断开模块。本发明可以减少对主机业务的影响。

Description

断开PCIe设备与主机之间的链接的方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种断开PCIe设备与主机之间的链接的方法和装置。
背景技术
随着PCIe(PeripheralComponentInterfaceExpress,总线和接口标准)协议的普及,一个主机可以连接多个IO(inputoutput,输入输出)设备,多个IO设备中的每个IO设备包括一个PCIe设备,则主机连接多个PCIe设备,通过多个PCIe设备与除该主机之外的其他设备进行数据交互,以完成主机的业务。
由于PCIe设备在工作过程中可能会出现异常,当某个PCIe设备出现异常时,由于主机不确定是哪个PCIe设备出现异常,为了防止主机的CPU(CentralProcessingUnit,中央处理器)挂死,主机会断开与主机连接的所有PCIe设备。
现有技术至少存在以下问题:
主机断开主机连接的所有PCIe设备,从而造成主机无法与其他设备进行数据交互,影响主机的业务。
发明内容
为了解决现有技术的问题,本发明提供了一种断开PCIe设备与主机之间的链接的方法和装置。技术方案如下:
第一方面,本发明提供了一种断开总线和接口标准PCIe设备与主机之间的链接的方法,所述PCIe设备包括结束节点EP设备,所述方法包括:
所述EP设备获取所述PCIe设备与所述主机之间传输传输层报文TLP包错误的错误类型;
如果所述错误类型是PCIe协议中规定的可修复的错误类型,所述EP设备统计出现所述错误类型的持续时长;
如果所述持续时长达到预设时长,所述EP设备断开与所述主机之间的链接。
结合第一方面,在第一方面的第一种可能的实现方式中,所述EP设备获取所述PCIe设备与所述主机之间传输TLP包错误的错误类型,包括:
所述EP设备接收所述主机发送的TLP包,并确定所述TLP包是否有损坏;
如果所述TLP包有损坏,所述EP设备确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为非应答NAK错误类型。
结合第一方面,在第一方面的第二种可能的实现方式中,所述EP设备获取所述PCIe设备与所述主机之间传输TLP包错误的错误类型,包括:
所述EP设备接收所述主机发送的TLP包,并确定所述TLP包是否是预设的TLP包;
如果所述TLP包不是所述预设的TLP包,所述EP设备确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为传输错误类型。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述EP设备确定所述TLP包是否是预设的TLP包,包括:
所述EP设备获取所述TLP包的第一序列号,并根据离当前时间最近的上一个TLP包的第二序列号,预测所述TLP包的第三序列号;
如果所述第一序列号和所述第三序列号不相等,所述EP设备确定所述TLP包不是预设的TLP包。
结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述传输错误类型包括重传错误类型和漏传错误类型,所述方法还包括:
如果所述TLP包比所述预设的TLP包新,所述EP设备确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为漏传错误类型;
如果所述TLP包比所述预设的TLP包旧,所述EP设备确定所述PCIe设备与所述主机传输所述TLP包错误的错误类型为重传错误类型。
结合第一方面,在第一方面的第五种可能的实现方式中,所述EP设备获取所述PCIe设备与所述主机之间传输TLP包错误的错误类型,包括:
所述EP设备获取所述主机待发送的TLP包所需的第一信用值以及所述EP设备当前剩余的第二信用值;
如果所述第一信用值大于所述第二信用值,所述EP设备确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为信用值不足错误类型。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述EP设备获取所述主机待发送的TLP包所需的第一信用值,包括:
所述EP设备获取所述主机待发送的TLP包的包头类型、包数据类型和包数据长度;
所述EP设备根据所述包头类型、所述包数据类型和所述包数据长度,确定所述TLP包所需的第一信用值。
结合第一方面,在第一方面的第七种可能的实现方式中,所述EP设备获取所述PCIe设备与所述主机之间传输TLP包错误的错误类型,包括:
所述EP设备检测所述PCIe设备是否发生异常;
如果所述EP设备检测出所述PCIe设备发生异常,所述EP设备确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为自身异常错误类型。
结合第一方面,在第一方面的第八种可能的实现方式中,,所述EP设备断开与所述主机之间的链接,包括:
所述EP设备通过门控时钟将所述PCIe设备的系统时钟设置为不可用状态,所述不可用状态用于指示所述PCIe设备拒绝处理所述主机发送的处理请求。
结合第一方面,在第一方面的第九种可能的实现方式中,所述方法还包括:
如果所述错误类型是所述PCIe协议中规定的不可修复的错误类型,所述EP设备断开与所述主机之间的链接。
第二方面,本发明提供了一种断开总线和接口标准PCIe设备与主机之间的链接的装置,所述PCIe设备包括结束节点EP设备,所述装置包括:
获取模块,用于获取所述PCIe设备与所述主机之间传输传输层报文TLP包错误的错误类型;
统计模块,用于如果所述错误类型是PCIe协议中规定的可修复的错误类型,统计出现所述错误类型的持续时长;
断开模块,用于如果所述持续时长达到预设时长,断开与所述主机之间的链接。
结合第二方面,在第二方面的第一种可能的实现方式中,所述获取模块,包括:
第一接收单元,用于接收所述主机发送的TLP包;
第一确定单元,用于确定所述TLP包是否有损坏;
第二确定单元,用于如果所述TLP包有损坏,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为非应答NAK错误类型。
结合第二方面,在第二方面的第二种可能的实现方式中,所述获取模块,包括:
第二接收单元,用于接收所述主机发送的TLP包;
第三确定单元,用于确定所述TLP包是否是预设的TLP包;
第四确定单元,用于如果所述TLP包不是所述预设的TLP包,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为传输错误类型。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第三确定单元,用于获取所述TLP包的第一序列号,并根据离当前时间最近的上一个TLP包的第二序列号,预测所述TLP包的第三序列号,如果所述第一序列号和所述第三序列号不相等,确定所述TLP包不是预设的TLP包。
结合第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述传输错误类型包括重传错误类型和漏传错误类型,所述获取模块,还包括:
第五确定单元,用于如果所述TLP包比所述预设的TLP包新,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为漏传错误类型;
第六确定单元,用于如果所述TLP包比所述预设的TLP包旧,确定所述PCIe设备与所述主机传输所述TLP包错误的错误类型为重传错误类型。
结合第二方面,在第二方面的第五种可能的实现方式中,所述获取模块,包括:
获取单元,用于获取所述主机待发送的TLP包所需的第一信用值以及所述EP设备当前剩余的第二信用值;
第七确定单元,用于如果所述第一信用值大于所述第二信用值,确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为信用值不足错误类型。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述获取单元,用于获取所述主机待发送的TLP包的包头类型、包数据类型和包数据长度,根据所述包头类型、所述包数据类型和所述包数据长度,确定所述TLP包所需的第一信用值。
结合第二方面,在第二方面的第七种可能的实现方式中,所述获取模块,包括:
检测单元,用于检测所述PCIe设备是否发生异常;
第八确定单元,用于如果所述检测单元检测出所述PCIe设备发生异常,确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为自身异常错误类型。
结合第二方面,在第二方面的第八种可能的实现方式中,所述断开模块,用于通过门控时钟将所述PCIe设备的系统时钟设置为不可用状态,所述不可用状态用于指示所述PCIe设备拒绝处理所述主机发送的处理请求。
结合第二方面,在第二方面的第九种可能的实现方式中,所述断开模块,还用于如果所述错误类型是所述PCIe协议中规定的不可修复的错误类型,断开与所述主机之间的链接。
第三方面,本发明提供了一种总线和接口标准PCIe设备,所述PCIe设备包括结束节点EP设备,所述EP设备包括:存储器和处理器,所述存储器用于存储所述处理器得到的数据;
所述处理器,用于获取所述PCIe设备与所述主机之间传输传输层报文TLP包错误的错误类型;
所述处理器,还用于如果所述错误类型是PCIe协议中规定的可修复的错误类型,统计出现所述错误类型的持续时长;
所述处理器,还用于如果所述持续时长达到预设时长,断开与所述主机之间的链接。
结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器,还用于接收所述主机发送的TLP包,并确定所述TLP包是否有损坏;
所述处理器,还用于如果所述TLP包有损坏,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为非应答NAK错误类型。
结合第三方面,在第三方面的第二种可能的实现方式中,所述处理器,还用于接收所述主机发送的TLP包,并确定所述TLP包是否是预设的TLP包;
所述处理器,还用于如果所述TLP包不是所述预设的TLP包,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为传输错误类型。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器,还用于获取所述TLP包的第一序列号,并根据离当前时间最近的上一个TLP包的第二序列号,预测所述TLP包的第三序列号,如果所述第一序列号和所述第三序列号不相等,确定所述TLP包不是预设的TLP包。
结合第三方面的第二种可能的实现方式,在第三方面的第四种可能的实现方式中,所述传输错误类型包括重传错误类型和漏传错误类型,
所述处理器,还用于如果所述TLP包比所述预设的TLP包新,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为漏传错误类型;
所述处理器,还用于如果所述TLP包比所述预设的TLP包旧,确定所述PCIe设备与所述主机传输所述TLP包错误的错误类型为重传错误类型。
结合第三方面,在第三方面的第五种可能的实现方式中,所述处理器,还用于获取所述主机待发送的TLP包所需的第一信用值以及所述EP设备当前剩余的第二信用值;
所述处理器,还用于如果所述第一信用值大于所述第二信用值,确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为信用值不足错误类型。
结合第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述处理器,还用于获取所述主机待发送的TLP包的包头类型、包数据类型和包数据长度,根据所述包头类型、所述包数据类型和所述包数据长度,确定所述TLP包所需的第一信用值。
结合第三方面,在第三方面的第七种可能的实现方式中,所述处理器,还用于检测所述PCIe设备是否发生异常;
所述处理器,还用于如果检测出所述PCIe设备发生异常,确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为自身异常错误类型。
结合第三方面,在第三方面的第八种可能的实现方式中,所述处理器,还用于通过门控时钟将所述PCIe设备的系统时钟设置为不可用状态,所述不可用状态用于指示所述PCIe设备拒绝处理所述主机发送的处理请求。
结合第三方面,在第三方面的第九种可能的实现方式中,所述处理器,还用于如果所述错误类型是所述PCIe协议中规定的不可修复的错误类型,断开与所述主机之间的链接。
在本发明实施例中,EP设备获取PCIe设备与主机之间传输传输层报文TLP包错误的错误类型;如果该错误类型是PCIe协议中规定的可修复的错误类型,EP设备统计出现该错误类型的持续时长;如果持续时长达到预设时长,EP设备断开与主机之间的链接。从而实现由EP设备通过检测传输TLP包错误的错误类型,确定PCIe设备与主机之间的链接是否发生异常,当检测到该链接出现异常时,断开该链接,从而不需要断开主机与所有PCIe设备的链接,可以减少对主机业务的影响。
附图说明
图1-1是本发明实施例提供的一种断开PCIe设备与主机之间的链接的应用场景图;
图1-2是本发明实施例提供的一种断开PCIe设备与主机之间的链接的方法流程图;
图2-1是本发明实施例提供的一种断开PCIe设备与主机之间的链接的方法流程图;
图2-2是本发明实施例提供的一种检测NAK异常类型的硬件图;
图2-3是本发明实施例提供的一种检测传输错误类型的硬件图;
图2-4是本发明实施例提供的一种检测信用值不足错误类型的硬件图;
图3-1是本发明实施例提供的一种断开PCIe设备与主机之间的链接的装置结构示意图;
图3-2是本发明实施例提供的一种获取模块的结构示意图;
图3-3是本发明实施例提供的另一种获取模块的结构示意图;
图3-4是本发明实施例提供的另一种获取模块的结构示意图;
图3-5是本发明实施例提供的另一种获取模块的结构示意图;
图3-6是本发明实施例提供的另一种获取模块的结构示意图;
图4是本发明实施例提供的一种PCIe设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种断开PCIe设备与主机之间的链接的方法的应用场景,参见图1-1,当主机只连接一个IO设备时,主机通过RP端口直接连接IO设备;当主机连接多个IO设备时,主机通过PCIeSW(Switch,开关)与多个IO设备相连。
其中,IO设备包括PCIe设备,PCIe设备包括EP(Endpoint,结束节点)设备,PCIeSW包括一个UP(UpstreamPort,上游端口)和多个DP(DownstreamPort,下游端口),PCIeSW通过UP与主机的CPU相连,通过DP与IO设备的PCIe设备的EP设备相连。
其中,EP设备包括PL(PhysicalLayer,物理层)、DL(DataLink,数据链路)和TL(TransactionLayer,传输层),TL用于与用户进行交互,DL用于与主机进行数据交互,PL用于与PCIe设备进行交互。当DL或者DL检测出异常时,都可以断开PCIe设备与主机之间的链接。
发明实施例提供了一种断开PCIe设备与主机之间的链接的方法,PCIe设备包括EP设备,该方法的执行主体可以为EP设备,参见图1-2,其中,该方法包括:
步骤101:EP设备获取PCIe设备与主机之间传输TLP(transactionlayerpacket,传输层报文)包错误的错误类型;
步骤102:如果该错误类型是PCIe协议中规定的可修复的错误类型,EP设备统计出现该错误类型的持续时长;
步骤103:如果持续时长达到预设时长,EP设备断开与主机之间的链接。
在本发明实施例中,EP设备获取PCIe设备与主机之间传输传输层报文TLP包错误的错误类型;如果该错误类型是PCIe协议中规定的可修复的错误类型,EP设备统计出现该错误类型的持续时长;如果持续时长达到预设时长,EP设备断开与主机之间的链接。从而实现由EP设备通过检测传输TLP包错误的错误类型,确定PCIe设备与主机之间的链接是否发生异常,当检测到该链接出现异常时,断开该链接,从而不需要断开主机与所有PCIe设备的链接,可以减少对主机业务的影响。
发明实施例提供了一种断开PCIe设备与主机之间的链接的方法,PCIe设备包括EP设备,该方法的执行主体可以为EP设备,参见图2-1,其中,该方法包括:
步骤201:EP设备获取PCIe设备与主机之间传输TLP包错误的错误类型;
主机与PCIe设备进行业务交互时,主机向PCIe设备包括的EP设备发送资源请求,该资源请求携带TLP包的包头类型、包数据类型和包数据长度;EP设备接收主机发送的资源请求,根据该资源请求计算该TLP包所需的信用值,向主机发送其所需要的信用值;主机接收EP设备发送的信用值,并通过该信用值向EP设备发送该TLP包。
在本步骤中,可能会由于PCIe设备与主机之间的链接异常、信用值不足或者EP设备自身异常导致PCIe设备与主机之间传输TLP包错误,因此,本步骤可以通过以下第一种方式、第二种方式、第三种方式和第四种方式实现,对于第一种实现方式,本步骤可以为:
EP设备接收主机发送的TLP包,并确定该TLP包是否损坏,如果TLP包有损坏,EP设备确定PCIe设备与主机之间传输TLP包错误的错误类型为NAK(NegativeAcknowledgment,,非确认)错误类型。
如果该TLP包在传输过程中被损坏,则该TLP包携带损坏标识;因此,EP设备确定该TLP包是否携带损坏标识,如果该TLP包携带损坏标识,则确定该TLP包有损坏;如果该TLP包不携带损坏标识,则确定该TLP包没有损坏。
进一步地,如果EP设备确定该TLP包没有损坏时,EP设备向主机发送ACK(Acknowledgement,确认);主机接收EP设备发送的ACK,并根据该ACK确定EP设备正确接收该TLP包,此时,主机向EP设备发送下一个TLP包。
进一步地,如果EP设备确定该TLP包有损坏,EP设备向主机发送NAK;主机接收到EP设备发送的NAK,并根据该NAK确定EP设备没有正确接收该TLP包,此时,主机重新向EP设备发送该TLP包,直到接收到EP设备返回ACK。
对于第二种实现方式,本步骤可以通过以下步骤(1)和(2)实现,包括:
(1):EP设备接收主机发送的TLP包,并确定该TLP包是否是预设的TLP包;
为了确定主机是否重复向EP设备发送TLP包或者漏掉向EP设备发送TLP包,主机向EP设备发送TLP包中携带该TLP包的序列号,并且相邻两个TLP包的序列号相差1。因此,EP设备根据离当前时间最近的上一个TLP包的序列号可以确定预设的TLP包,预设的TLP包就是主机当前应该发送给EP设备的TLP包。
本步骤可以通过以下步骤(1-1)至(1-2)实现,包括:
(1-1):EP设备获取该TLP包的第一序列号,并根据离当前时间最近的上一个TLP包的第二序列号,预测该TLP包的第三序列号;
EP设备获取该TLP包中携带的序列号,为了便于区分,将该TLP包携带的序列号称为第一序列号,将第一序列号存储在序列号列表中,以便于后续获取第一序列号。
其中,序列号列表中存储EP设备已经接收到的TLP包的序列号,则EP设备从序列号列表中获取离当前时间最近的上一个TLP包的序列号,为了便于区分,将该上一个TLP包的序列号称为第二序列号,EP设备将第二序列号加一得到预测该TLP包的序列号,为了便于区分,将预测该TLP包的序列号称为第三序列号。
(1-2):如果第一序列号和第三序列号不相等,EP设备确定该TLP包不是预设的TLP包。
EP设备确定第一序列号和第三序列号是否相等;如果第一序列号和第三序列号相等,EP设备确定该TLP包是预设的TLP包;如果第一序列号和第三序列号不相等,EP设备确定该TLP包不是预设的TLP包。
进一步地,如果该TLP包是预设的TLP包,执行步骤201。如果该TLP包不是预设的TLP包,执行以下步骤(2)。
(2):如果TLP包不是预设的TLP包,EP设备确定PCIe设备与主机之间传输TLP包错误的错误类型为传输错误类型。
进一步地,EP设备还可以根据第一序列号和第三序列号,确定该TLP包比预设的TLP包新,还是该TLP包比预设的TLP包旧;由于主机生成序列号时,是通过12位的无符号数,当计数到4095之后,会翻转到0继续计数,因此TLP包的序列号的大小与该TLP包的新旧并不相同,例如,该TLP包的序列号为4095,预设的TLP包的序列号为0,虽然4095大于0,但是该TLP包比预设的TLP包旧,因此,EP设备根据第一序列号和第三序列号,确定该TLP包比预设的TLP包新,还是该TLP包比预设的TLP包旧可以通过以下过程实现,包括:
EP设备获取主机生成序列号的位数,计算第一序列号和第三序列号的序列号之差,根据该位数计算第一数值,并计算该序列号之差和第一数值的余数,如果该余数大于第二数值,则确定该TLP包比预设的TLP包旧;如果该余数小于第二数值,则确定该TLP包比预设的TLP包新。第一数值等于2的该位数次方,第一数值除以2得到第二数值。
例如,该位数为12,则第一数值为4096,第二数值为2047,第一序列号为A_Seq,第二序列号为B_Seq;则如果(A_Seq-B_Seq)%4096>=2048,则该TLP包比预设的TLP包新;如果(A_Seq-B_Seq)%4096<2048,则该TLP包比预设的TLP包旧。
进一步地,如果该TLP包比预设的TLP包新,则EP设备确定主机漏掉某个或某几个TLP包;如果该TLP包比预设的TLP包旧,则EP设备确定主机重复向EP设备发送TLP包,因此,传输错误类型包括重传错误类型和漏传错误类型;如果该TLP包比预设的TLP包新,EP设备确定PCIe设备与主机之间传输TLP包错误的错误类型为漏传错误类型;如果该TLP包比预设的TLP包旧,EP设备确定PCIe设备与主机之间传输TLP包错误的错误类型为重传错误类型。
对于第三种实现方式,本步骤可以通过以下步骤(A)和(B)实现,包括:
(A):EP设备获取主机待发送的TLP包所需的第一信用值以及EP设备当前剩余的第二信用值;
主机与PCIe设备进行业务交互时,主机向PCIe设备包括的EP设备发送资源请求,该资源请求携带TLP包的包头类型、包数据类型和包数据长度;EP设备接收主机发送的资源请求,根据该包头类型、包数据类型和包数据长度,计算该TLP包所需的信用值,为了便于区分,将该TLP包所需的信用值称为第一信用值。
其中,EP设备中存储有包头类型和信用值的对应关系,以及存储有包数据类型、包数据长度和信用值的对应关系。则EP设备根据该包头类型、包数据类型和包数据长度,计算该TLP包所需的第一信用值的步骤可以为:
EP设备根据该包头类型,从包头类型和信用值的对应关系中获取该TLP包的包头所需的第三信用值;根据该包数据类型和包数据长度,从包数据类型、包数据长度和信用值的对应关系中获取该TLP包的包数据所需的第四信用值,计算第三信用值和第四信用值的和,得到该TLP包所需的第一信用值。
其中,包头类型可以为PH(PostedHead,报告请求头)或NPH(Non-PostedHead,非报告请求头),并且,对于PH和NPH,每个TLP包的包头只消耗一个信用值。包数据类型包括PD(PostedData,报告请求数据)和NPD(Non-PostedData,非报告请求数据),并且,对于NPD,每个TLP包的包数据只消耗一个信用值,而对于PD,则EP设备根据包数据长度,确定包数据所需要的信用值数量。由于主机只能发起普通的读写操作,因此,在本发明实施例中也可以设置每个TLP包的PD类型的包数据消耗一个信用值。
其中,EP设备获取当前剩余的第二信用值的步骤可以为:
EP设备设置一个寄存器,记录EP设备已经消耗的信用值,并根据EP设备的总信用值和已经消耗的信用值,计算当前剩余的信用值,为了便于区分,将当前剩余的信用值称为第二信用值。
(B):如果第一信用值大于第二信用值,EP设备确定PCIe设备与主机之间传输TLP包错误的错误类型为信用值不足错误类型。
进一步地,如果第一信用值不大于第二信用值,EP设备向主机发送第一信用值;主机接收EP设备发送的第一信用值,并通过该第一信用值向PCIe设备发送该TLP包。
对于第四种实现方式,本步骤可以为:
EP设备检测PCIe设备是否发生异常,如果EP设备检测出PCIe设备发生异常,EP设备确定PCIe设备与主机之间传输TLP包错误的错误类型为自身异常错误类型。
步骤202:EP设备确定该错误类型是否是PCIe协议中规定的可修复的错误类型,如果该错误类型是可修复的错误类型,执行步骤203;如果该错误类型是不可修复的错误类型,执行步骤205;
其中,EP设备中存储有PCIe协议中规定的可修复的错误类型库,可修复的错误类型库包括非应答NAK错误类型、漏传错误类型、重传错误类型、信用值不足错误类型和自身异常错误类型。
EP设备确定该错误类型是否存在该可修复的错误类型库中;如果该错误类型存在该可修复的错误类型库中,EP设备确定该错误类型是可修复的错误类型;如果该错误类型不存在该可修复的错误类型库中,EP设备确定该错误类型是不可修复的错误类型。
步骤203:如果该错误类型是可修复的错误类型,EP设备统计出现该错误类型的持续时长;
如果该错误类型是可修复的错误类型,PCIe协议中规定该错误类型能够被修复,不需要断开与主机之间的链接,但是如果EP设备一直没能成功修改该错误类型的错误,则该错误类型照样会导致主机的CPU挂死,因此,在本发明实施例中,统计出现该错误类型的持续时间,根据该持续时间确定要不要断开与主机之间的链接。
当出现该错误类型时,EP设备启动计数器开始计时,当该错误类型的错误被修复时,EP设备统计出现该错误类型的持续时长,并将该计数器清零。
例如,当该错误类型为NAK超时错误类型时,EP设备将NAK_SCHEDULED位的状态设置为有效状态,并采用计数器记录该NAK_SCHEDULED位的状态为有效状态的时间。当该NAK超时错误类型的错误被修复时,EP设备将该NAK_SCHEDULED位的状态设置为无效状态,停止计时,获取该计数器记录的持续时长,并将计数器清零。
再如,当该错误类型为传输错误类型时,EP设备启动计数器开始计时,当该传输错误类型的错误被修复时,EP设备停止计时,获取该计数器记录的持续时长,并将该计数器清零。
再如,当该错误类型为信用值不足错误类型时,EP设备启动计数器开始计时,当该信用值不足错误类型的错误被修复时,EP设备停止计时,获取该计数器记录的持续时长,并将该计数器清零。
步骤204:EP设备确定持续时长是否达到预设时长,如果持续时长达到预设达到预设时长,执行步骤205,如果持续时长没有达到预设时长,执行步骤201;
预设时长可以根据错误类型进行设置并更改,也即在本发明实施例中存储错误类型和预设时长的对应关系,EP设备根据该错误类型,从错误类型和预设时长的对应关系中获取该错误类型对应的预设时长。从而实现了不同的错误类型对应不同的预设时长,有效防止主机的CPU挂死。
例如,错误类型和预设时长的对应关系如下表1所示:
表1
错误类型 预设时长
NAK错误类型 10s
重传错误类型 20s
漏传错误类型 15s
信用值不足错误类型 8s
自身异常错误类型 5s
…… ……
例如,当该错误类型为NAK超时错误类型时,EP设备确定由于PCIe设备与主机之间的下行链路异常造成的,EP设备以NAK_SCHEDULED(非应答状态位)为复位信号,当NAK_SCHEDULED有效时,EP设备启动计数器开始计时,当NAK_SCHEDULED无效时,EP设备停止计数器,计数器立即清零并保持;当计数器获取的持续时长达到预设时长时,EP设备确定需要断开与主机之间的链接,此时就输出硬件断链使能信号,执行步骤205,EP设备中的硬件电路如图2-2所示。
再如,当该错误类型为漏传错误类型时,EP设备确定由于PCIe设备与主机之间的下行链路异常导致TPL包丢失造成的,此时EP设备向主机发送NAK,如果一直处于丢包状态,则确定下行链路已经极端不可靠,因此,为了防止主机的CPU挂死,当出现漏传错误类型的持续时长达到预设时长时,EP设备需要断开与主机之间的链接。当该错误类型为重传错误类型时,EP设备确定主机对该TLP包进行了重发,当该出现重发错误类型的持续时长达到预设时长时,EP设备需要断开与主机之间的链接,此时就输出硬件断链使能信号,执行步骤205。EP设备中的硬件电路如图2-3所示。
再如,当该错误类型为信用值不足错误类型时,主机无法向EP设备发送TLP包,如果CPU仍然下发大量读写操作时,主机的缓冲区会满,反压CPU侧,最终导致CPU指令超时,导致CPU挂死,因此当出现信用值不足错误类型的持续时长达到预设时长时,EP设备需要断开与主机之间的链接,此时就输出硬件断链使能信号,执行步骤205。EP设备中的硬件电路如图2-4所示。
步骤205:EP设备断开与主机之间的链接。
当确定需要断开与主机之间的链接时,EP设备设置硬件断链使能信号link_down=1,当EP设备检测到硬件断链使能信号link_down=1时,通过门控时钟将PCIe设备的系统时钟设置为不可用状态。
PCIe设备检测到系统时钟的状态为不可用状态时,PCIe拒绝处理主机发送的处理请求,从而实现断开与主机之间的链接。
主机无法得到PCIe设备的响应时,将自身的LTSSM(LinkTrainingandStatusStateMachine,链路训练与状态状态机)状态将因为比特锁定与符合锁定的失锁而跳转到Disabled状态位,与EP设备断开链接,主机感觉到此Disabled状态位时,将与EP设备相关缓存内容清除,完成异常EP设备的隔离。
在本发明实施例中,EP设备获取PCIe设备与主机之间传输传输层报文TLP包错误的错误类型;如果该错误类型是PCIe协议中规定的可修复的错误类型,EP设备统计出现该错误类型的持续时长;如果持续时长达到预设时长,EP设备断开与主机之间的链接。从而实现由EP设备通过检测传输TLP包错误的错误类型,确定PCIe设备与主机之间的链接是否发生异常,当检测到该链接出现异常时,断开该链接,从而不需要断开主机与所有PCIe设备的链接,可以减少对主机业务的影响。
本发明实施例提供了一种断开总线和接口标准PCIe设备与主机之间的链接的装置,该PCIe设备包括结束节点EP设备,用于执行以上断开PCIe设备与主机之间的链接,参见图3-1,该装置包括:
获取模块301,用于获取PCIe设备与主机之间传输传输层报文TLP包错误的错误类型;
统计模块302,用于如果错误类型是PCIe协议中规定的可修复的错误类型,统计出现错误类型的持续时长;
断开模块303,用于如果持续时长达到预设时长,断开与主机之间的链接。
进一步地,参见图3-2,获取模块301,包括:
第一接收单元3011,用于接收主机发送的TLP包;
第一确定单元3012,用于确定TLP包是否有损坏;
第二确定单元3013,用于如果TLP包有损坏,确定PCIe设备与主机之间传输TLP包错误的错误类型为非应答NAK错误类型。
进一步地,参见图3-3,获取模块301,包括:
第二接收单元3014,用于接收主机发送的TLP包;
第三确定单元3015,用于确定TLP包是否是预设的TLP包;
第四确定单元3016,用于如果TLP包不是预设的TLP包,确定PCIe设备与主机之间传输TLP包错误的错误类型为传输错误类型。
进一步地,第三确定单元3015,用于获取TLP包的第一序列号,并根据离当前时间最近的上一个TLP包的第二序列号,预测TLP包的第三序列号,如果第一序列号和第三序列号不相等,确定TLP包不是预设的TLP包。
进一步地,传输错误类型包括重传错误类型和漏传错误类型,参见图3-4,获取模块301,还包括:
第五确定单元3017,用于如果TLP包比预设的TLP包新,确定PCIe设备与主机之间传输TLP包错误的错误类型为漏传错误类型;
第六确定单元3018,用于如果TLP包比预设的TLP包旧,确定PCIe设备与主机传输TLP包错误的错误类型为重传错误类型。
进一步地,参见图3-5,获取模块301,包括:
获取单元3019,用于获取主机待发送的TLP包所需的第一信用值以及EP设备当前剩余的第二信用值;
第七确定单元30110,用于如果第一信用值大于第二信用值,确定PCIe设备与主机之间传输TLP包错误的错误类型为信用值不足错误类型。
进一步地,获取单元3019,用于获取主机待发送的TLP包的包头类型、包数据类型和包数据长度,根据包头类型、包数据类型和包数据长度,确定TLP包所需的第一信用值。
进一步地,参见图3-6,获取模块301,包括:
检测单元30111,用于检测PCIe设备是否发生异常;
第八确定单元30112,用于如果检测单元检测出PCIe设备发生异常,确定PCIe设备与主机之间传输TLP包错误的错误类型为自身异常错误类型。
进一步地,断开模块303,用于通过门控时钟将PCIe设备的系统时钟设置为不可用状态,不可用状态用于指示PCIe设备拒绝处理主机发送的处理请求。
进一步地,断开模块303,还用于如果错误类型是PCIe协议中规定的不可修复的错误类型,断开与主机之间的链接。
在本发明实施例中,EP设备获取PCIe设备与主机之间传输传输层报文TLP包错误的错误类型;如果该错误类型是PCIe协议中规定的可修复的错误类型,EP设备统计出现该错误类型的持续时长;如果持续时长达到预设时长,EP设备断开与主机之间的链接。从而实现由EP设备通过检测传输TLP包错误的错误类型,确定PCIe设备与主机之间的链接是否发生异常,当检测到该链接出现异常时,断开该链接,从而不需要断开主机与所有PCIe设备的链接,可以减少对主机业务的影响。
本发明实施例提供了一种总线和接口标准PCIe设备,用于执行以上断开PCIe设备与主机之间的链接,参见图4,PCIe设备包括结束节点EP设备,EP设备包括:存储器401和处理器402,存储器401用于存储处理器402得到的数据;
处理器402,用于获取PCIe设备与主机之间传输传输层报文TLP包错误的错误类型;
处理器402,还用于如果错误类型是PCIe协议中规定的可修复的错误类型,统计出现错误类型的持续时长;
处理器402,还用于如果持续时长达到预设时长,断开与主机之间的链接。
进一步地,处理器402,还用于接收主机发送的TLP包,并确定TLP包是否有损坏;
处理器402,还用于如果TLP包有损坏,确定PCIe设备与主机之间传输TLP包错误的错误类型为非应答NAK错误类型。
进一步地,处理器402,还用于接收主机发送的TLP包,并确定TLP包是否是预设的TLP包;
处理器402,还用于如果TLP包不是预设的TLP包,确定PCIe设备与主机之间传输TLP包错误的错误类型为传输错误类型。
进一步地,
处理器402,还用于获取TLP包的第一序列号,并根据离当前时间最近的上一个TLP包的第二序列号,预测TLP包的第三序列号,如果第一序列号和第三序列号不相等,确定TLP包不是预设的TLP包。
进一步地,传输错误类型包括重传错误类型和漏传错误类型,
处理器402,还用于如果TLP包比预设的TLP包新,确定PCIe设备与主机之间传输TLP包错误的错误类型为漏传错误类型;
处理器402,还用于如果TLP包比预设的TLP包旧,确定PCIe设备与主机传输TLP包错误的错误类型为重传错误类型。
进一步地,
处理器402,还用于获取主机待发送的TLP包所需的第一信用值以及EP设备当前剩余的第二信用值;
处理器402,还用于如果第一信用值大于第二信用值,确定PCIe设备与主机之间传输TLP包错误的错误类型为信用值不足错误类型。
进一步地,
处理器402,还用于获取主机待发送的TLP包的包头类型、包数据类型和包数据长度,根据包头类型、包数据类型和包数据长度,确定TLP包所需的第一信用值。
进一步地,
处理器402,还用于检测PCIe设备是否发生异常;
处理器402,还用于如果检测出PCIe设备发生异常,确定PCIe设备与主机之间传输TLP包错误的错误类型为自身异常错误类型。
进一步地,
处理器402,还用于通过门控时钟将PCIe设备的系统时钟设置为不可用状态,不可用状态用于指示PCIe设备拒绝处理主机发送的处理请求。
进一步地,装置还包括:
处理器402,还用于如果错误类型是PCIe协议中规定的不可修复的错误类型,断开与主机之间的链接。
在本发明实施例中,EP设备获取PCIe设备与主机之间传输传输层报文TLP包错误的错误类型;如果该错误类型是PCIe协议中规定的可修复的错误类型,EP设备统计出现该错误类型的持续时长;如果持续时长达到预设时长,EP设备断开与主机之间的链接。从而实现由EP设备通过检测传输TLP包错误的错误类型,确定PCIe设备与主机之间的链接是否发生异常,当检测到该链接出现异常时,断开该链接,从而不需要断开主机与所有PCIe设备的链接,可以减少对主机业务的影响。
需要说明的是:上述实施例提供的断开PCIe设备与主机之间的链接的装置在断开PCIe设备与主机之间的链接时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的断开PCIe设备与主机之间的链接的装置与断开PCIe设备与主机之间的链接的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (30)

1.一种断开总线和接口标准PCIe设备与主机之间的链接的方法,其特征在于,所述PCIe设备包括结束节点EP设备,所述方法包括:
所述EP设备获取所述PCIe设备与所述主机之间传输传输层报文TLP包错误的错误类型;
如果所述错误类型是PCIe协议中规定的可修复的错误类型,所述EP设备统计出现所述错误类型的持续时长;
如果所述持续时长达到预设时长,所述EP设备断开与所述主机之间的链接。
2.如权利要求1所述的方法,其特征在于,所述EP设备获取所述PCIe设备与所述主机之间传输TLP包错误的错误类型,包括:
所述EP设备接收所述主机发送的TLP包,并确定所述TLP包是否有损坏;
如果所述TLP包有损坏,所述EP设备确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为非应答NAK错误类型。
3.如权利要求1所述的方法,其特征在于,所述EP设备获取所述PCIe设备与所述主机之间传输TLP包错误的错误类型,包括:
所述EP设备接收所述主机发送的TLP包,并确定所述TLP包是否是预设的TLP包;
如果所述TLP包不是所述预设的TLP包,所述EP设备确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为传输错误类型。
4.如权利要求3所述的方法,其特征在于,所述EP设备确定所述TLP包是否是预设的TLP包,包括:
所述EP设备获取所述TLP包的第一序列号,并根据离当前时间最近的上一个TLP包的第二序列号,预测所述TLP包的第三序列号;
如果所述第一序列号和所述第三序列号不相等,所述EP设备确定所述TLP包不是预设的TLP包。
5.如权利要求3所述的方法,其特征在于,所述传输错误类型包括重传错误类型和漏传错误类型,所述方法还包括:
如果所述TLP包比所述预设的TLP包新,所述EP设备确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为漏传错误类型;
如果所述TLP包比所述预设的TLP包旧,所述EP设备确定所述PCIe设备与所述主机传输所述TLP包错误的错误类型为重传错误类型。
6.如权利要求1所述的方法,其特征在于,所述EP设备获取所述PCIe设备与所述主机之间传输TLP包错误的错误类型,包括:
所述EP设备获取所述主机待发送的TLP包所需的第一信用值以及所述EP设备当前剩余的第二信用值;
如果所述第一信用值大于所述第二信用值,所述EP设备确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为信用值不足错误类型。
7.如权利要求6所述的方法,其特征在于,所述EP设备获取所述主机待发送的TLP包所需的第一信用值,包括:
所述EP设备获取所述主机待发送的TLP包的包头类型、包数据类型和包数据长度;
所述EP设备根据所述包头类型、所述包数据类型和所述包数据长度,确定所述TLP包所需的第一信用值。
8.如权利要求1所述的方法,其特征在于,所述EP设备获取所述PCIe设备与所述主机之间传输TLP包错误的错误类型,包括:
所述EP设备检测所述PCIe设备是否发生异常;
如果所述EP设备检测出所述PCIe设备发生异常,所述EP设备确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为自身异常错误类型。
9.如权利要求1所述的方法,其特征在于,所述EP设备断开与所述主机之间的链接,包括:
所述EP设备通过门控时钟将所述PCIe设备的系统时钟设置为不可用状态,所述不可用状态用于指示所述PCIe设备拒绝处理所述主机发送的处理请求。
10.如权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述错误类型是所述PCIe协议中规定的不可修复的错误类型,所述EP设备断开与所述主机之间的链接。
11.一种断开总线和接口标准PCIe设备与主机之间的链接的装置,其特征在于,所述PCIe设备包括结束节点EP设备,所述装置包括:
获取模块,用于获取所述PCIe设备与所述主机之间传输传输层报文TLP包错误的错误类型;
统计模块,用于如果所述错误类型是PCIe协议中规定的可修复的错误类型,统计出现所述错误类型的持续时长;
断开模块,用于如果所述持续时长达到预设时长,断开与所述主机之间的链接。
12.如权利要求11所述的装置,其特征在于,所述获取模块,包括:
第一接收单元,用于接收所述主机发送的TLP包;
第一确定单元,用于确定所述TLP包是否有损坏;
第二确定单元,用于如果所述TLP包有损坏,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为非应答NAK错误类型。
13.如权利要求11所述的装置,其特征在于,所述获取模块,包括:
第二接收单元,用于接收所述主机发送的TLP包;
第三确定单元,用于确定所述TLP包是否是预设的TLP包;
第四确定单元,用于如果所述TLP包不是所述预设的TLP包,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为传输错误类型。
14.如权利要求13所述的装置,其特征在于,
所述第三确定单元,用于获取所述TLP包的第一序列号,并根据离当前时间最近的上一个TLP包的第二序列号,预测所述TLP包的第三序列号,如果所述第一序列号和所述第三序列号不相等,确定所述TLP包不是预设的TLP包。
15.如权利要求13所述的装置,其特征在于,所述传输错误类型包括重传错误类型和漏传错误类型,所述获取模块,还包括:
第五确定单元,用于如果所述TLP包比所述预设的TLP包新,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为漏传错误类型;
第六确定单元,用于如果所述TLP包比所述预设的TLP包旧,确定所述PCIe设备与所述主机传输所述TLP包错误的错误类型为重传错误类型。
16.如权利要求11所述的装置,其特征在于,所述获取模块,包括:
获取单元,用于获取所述主机待发送的TLP包所需的第一信用值以及所述EP设备当前剩余的第二信用值;
第七确定单元,用于如果所述第一信用值大于所述第二信用值,确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为信用值不足错误类型。
17.如权利要求16所述的装置,其特征在于,
所述获取单元,用于获取所述主机待发送的TLP包的包头类型、包数据类型和包数据长度,根据所述包头类型、所述包数据类型和所述包数据长度,确定所述TLP包所需的第一信用值。
18.如权利要求11所述的装置,其特征在于,所述获取模块,包括:
检测单元,用于检测所述PCIe设备是否发生异常;
第八确定单元,用于如果所述检测单元检测出所述PCIe设备发生异常,确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为自身异常错误类型。
19.如权利要求11所述的装置,其特征在于,
所述断开模块,用于通过门控时钟将所述PCIe设备的系统时钟设置为不可用状态,所述不可用状态用于指示所述PCIe设备拒绝处理所述主机发送的处理请求。
20.如权利要求11所述的装置,其特征在于,
所述断开模块,还用于如果所述错误类型是所述PCIe协议中规定的不可修复的错误类型,断开与所述主机之间的链接。
21.一种总线和接口标准PCIe设备,其特征在于,所述PCIe设备包括结束节点EP设备,所述EP设备包括:存储器和处理器,所述存储器用于存储所述处理器得到的数据;
所述处理器,用于获取所述PCIe设备与所述主机之间传输传输层报文TLP包错误的错误类型;
所述处理器,还用于如果所述错误类型是PCIe协议中规定的可修复的错误类型,统计出现所述错误类型的持续时长;
所述处理器,还用于如果所述持续时长达到预设时长,断开与所述主机之间的链接。
22.如权利要求21所述的PCIe设备,其特征在于,
所述处理器,还用于接收所述主机发送的TLP包,并确定所述TLP包是否有损坏;
所述处理器,还用于如果所述TLP包有损坏,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为非应答NAK错误类型。
23.如权利要求21所述的PCIe设备,其特征在于,
所述处理器,还用于接收所述主机发送的TLP包,并确定所述TLP包是否是预设的TLP包;
所述处理器,还用于如果所述TLP包不是所述预设的TLP包,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为传输错误类型。
24.如权利要求23所述的PCIe设备,其特征在于,
所述处理器,还用于获取所述TLP包的第一序列号,并根据离当前时间最近的上一个TLP包的第二序列号,预测所述TLP包的第三序列号,如果所述第一序列号和所述第三序列号不相等,确定所述TLP包不是预设的TLP包。
25.如权利要求23所述的PCIe设备,其特征在于,所述传输错误类型包括重传错误类型和漏传错误类型,
所述处理器,还用于如果所述TLP包比所述预设的TLP包新,确定所述PCIe设备与所述主机之间传输所述TLP包错误的错误类型为漏传错误类型;
所述处理器,还用于如果所述TLP包比所述预设的TLP包旧,确定所述PCIe设备与所述主机传输所述TLP包错误的错误类型为重传错误类型。
26.如权利要求21所述的PCIe设备,其特征在于,
所述处理器,还用于获取所述主机待发送的TLP包所需的第一信用值以及所述EP设备当前剩余的第二信用值;
所述处理器,还用于如果所述第一信用值大于所述第二信用值,确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为信用值不足错误类型。
27.如权利要求26所述的PCIe设备,其特征在于,
所述处理器,还用于获取所述主机待发送的TLP包的包头类型、包数据类型和包数据长度,根据所述包头类型、所述包数据类型和所述包数据长度,确定所述TLP包所需的第一信用值。
28.如权利要求21所述的PCIe设备,其特征在于,
所述处理器,还用于检测所述PCIe设备是否发生异常;
所述处理器,还用于如果检测出所述PCIe设备发生异常,确定所述PCIe设备与所述主机之间传输TLP包错误的错误类型为自身异常错误类型。
29.如权利要求21所述的PCIe设备,其特征在于,
所述处理器,还用于通过门控时钟将所述PCIe设备的系统时钟设置为不可用状态,所述不可用状态用于指示所述PCIe设备拒绝处理所述主机发送的处理请求。
30.如权利要求21所述的PCIe设备,其特征在于,
所述处理器,还用于如果所述错误类型是所述PCIe协议中规定的不可修复的错误类型,断开与所述主机之间的链接。
CN201510580109.1A 2015-09-11 2015-09-11 断开PCIe设备与主机之间的链接的方法和装置 Active CN105205021B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201510580109.1A CN105205021B (zh) 2015-09-11 2015-09-11 断开PCIe设备与主机之间的链接的方法和装置
EP16843471.0A EP3296885B1 (en) 2015-09-11 2016-05-28 Method of disconnecting link between pcie equipment and host and device utilizing same
PCT/CN2016/083801 WO2017041533A1 (zh) 2015-09-11 2016-05-28 断开PCIe设备与主机之间的链接的方法和装置
ES16843471T ES2748228T3 (es) 2015-09-11 2016-05-28 Método de desconexión de enlace entre un equipo PCIe y un concentrador y dispositivo que utiliza este último
US15/819,440 US10565043B2 (en) 2015-09-11 2017-11-21 Method and apparatus for disconnecting link between PCIE device and host
US16/740,717 US11620175B2 (en) 2015-09-11 2020-01-13 Method and apparatus for disconnecting link between PCIe device and host

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510580109.1A CN105205021B (zh) 2015-09-11 2015-09-11 断开PCIe设备与主机之间的链接的方法和装置

Publications (2)

Publication Number Publication Date
CN105205021A true CN105205021A (zh) 2015-12-30
CN105205021B CN105205021B (zh) 2018-02-13

Family

ID=54952714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510580109.1A Active CN105205021B (zh) 2015-09-11 2015-09-11 断开PCIe设备与主机之间的链接的方法和装置

Country Status (5)

Country Link
US (2) US10565043B2 (zh)
EP (1) EP3296885B1 (zh)
CN (1) CN105205021B (zh)
ES (1) ES2748228T3 (zh)
WO (1) WO2017041533A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701051A (zh) * 2016-01-15 2016-06-22 华为技术有限公司 一种热插拔方法、主机控制器、主机及PCIe桥设备
CN105700967A (zh) * 2016-01-08 2016-06-22 华为技术有限公司 一种外设部件内部互联PCIe设备及其检测方法
CN105824622A (zh) * 2016-03-11 2016-08-03 联想(北京)有限公司 数据处理方法及电子设备
CN106201753A (zh) * 2016-06-28 2016-12-07 浪潮(北京)电子信息产业有限公司 一种基于linux中PCIE错误的处理方法及系统
CN106326151A (zh) * 2016-08-19 2017-01-11 浪潮(北京)电子信息产业有限公司 一种PCIe设备的拔除方法及装置
WO2017041533A1 (zh) * 2015-09-11 2017-03-16 华为技术有限公司 断开PCIe设备与主机之间的链接的方法和装置
CN108259212A (zh) * 2017-05-25 2018-07-06 新华三技术有限公司 报文处理方法及装置
CN109560900A (zh) * 2017-09-27 2019-04-02 阿里巴巴集团控股有限公司 数据发送方法和装置
CN110968443A (zh) * 2018-09-28 2020-04-07 阿里巴巴集团控股有限公司 设备异常的检测方法及装置
CN113498600A (zh) * 2020-01-22 2021-10-12 华为技术有限公司 一种基于PCIe的数据传输方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256539B (zh) * 2020-09-18 2022-07-19 苏州浪潮智能科技有限公司 一种pcie链路错误统计方法、装置、终端及存储介质
US11836059B1 (en) 2020-12-14 2023-12-05 Sanblaze Technology, Inc. System and method for testing non-volatile memory express storage devices
CN112463461B (zh) * 2020-12-17 2023-12-22 北京浪潮数据技术有限公司 一种链路联通方法、装置、设备及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645766A (zh) * 2009-09-09 2010-02-10 成都市华为赛门铁克科技有限公司 实现数据包重发的方法、装置及系统
US7836352B2 (en) * 2006-06-30 2010-11-16 Intel Corporation Method and apparatus for improving high availability in a PCI express link through predictive failure analysis
CN102349059A (zh) * 2009-04-17 2012-02-08 株式会社东芝 PCI Express的TLP处理电路及具备该处理电路的中继设备
CN103270497A (zh) * 2010-09-24 2013-08-28 英特尔公司 实时错误恢复的方法和系统
CN103533045A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie数据链路层高性能容错的方法
CN103563336A (zh) * 2011-06-01 2014-02-05 国际商业机器公司 边带错误信令

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4947722B1 (zh) 1968-06-19 1974-12-17
US7869356B2 (en) * 2007-12-18 2011-01-11 Plx Technology, Inc. Dynamic buffer pool in PCIExpress switches
JP4947722B2 (ja) * 2008-03-04 2012-06-06 Necアクセステクニカ株式会社 インタフェース制御回路および情報処理装置
CN102318276B (zh) * 2008-12-15 2014-07-02 惠普开发有限公司 检测计算机系统中的不可靠的链路
JP5454224B2 (ja) * 2010-02-25 2014-03-26 ソニー株式会社 記憶装置および記憶システム
US9086945B2 (en) * 2011-09-01 2015-07-21 Dell Products, Lp System and method to correlate errors to a specific downstream device in a PCIe switching network
US9344219B2 (en) * 2013-06-25 2016-05-17 Intel Corporation Increasing communication safety by preventing false packet acceptance in high-speed links
CN105492989B (zh) * 2013-09-30 2018-11-16 英特尔公司 用于管理对时钟进行的门控的装置、系统、方法和机器可读介质
CN105205021B (zh) 2015-09-11 2018-02-13 华为技术有限公司 断开PCIe设备与主机之间的链接的方法和装置
US20170091013A1 (en) * 2015-09-28 2017-03-30 Netapp, Inc. Pcie error reporting and throttling

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836352B2 (en) * 2006-06-30 2010-11-16 Intel Corporation Method and apparatus for improving high availability in a PCI express link through predictive failure analysis
CN102349059A (zh) * 2009-04-17 2012-02-08 株式会社东芝 PCI Express的TLP处理电路及具备该处理电路的中继设备
CN101645766A (zh) * 2009-09-09 2010-02-10 成都市华为赛门铁克科技有限公司 实现数据包重发的方法、装置及系统
CN103270497A (zh) * 2010-09-24 2013-08-28 英特尔公司 实时错误恢复的方法和系统
CN103563336A (zh) * 2011-06-01 2014-02-05 国际商业机器公司 边带错误信令
CN103533045A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie数据链路层高性能容错的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RAVI BUDRUK等: "《PCI Express系统体系结构标准教材》", 30 November 2005 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017041533A1 (zh) * 2015-09-11 2017-03-16 华为技术有限公司 断开PCIe设备与主机之间的链接的方法和装置
US11620175B2 (en) 2015-09-11 2023-04-04 Huawei Technologies Co., Ltd. Method and apparatus for disconnecting link between PCIe device and host
US10565043B2 (en) 2015-09-11 2020-02-18 Huawei Technologies Co., Ltd. Method and apparatus for disconnecting link between PCIE device and host
CN105700967A (zh) * 2016-01-08 2016-06-22 华为技术有限公司 一种外设部件内部互联PCIe设备及其检测方法
CN105701051A (zh) * 2016-01-15 2016-06-22 华为技术有限公司 一种热插拔方法、主机控制器、主机及PCIe桥设备
US10423560B2 (en) 2016-01-15 2019-09-24 Huawei Technologies Co., Ltd. Hot plug method, host controller, host, and PCIE bridge device
CN105701051B (zh) * 2016-01-15 2019-10-15 华为技术有限公司 一种热插拔方法、主机控制器、主机及PCIe桥设备
CN105824622A (zh) * 2016-03-11 2016-08-03 联想(北京)有限公司 数据处理方法及电子设备
CN105824622B (zh) * 2016-03-11 2020-04-24 联想(北京)有限公司 数据处理方法及电子设备
CN106201753B (zh) * 2016-06-28 2019-12-31 苏州浪潮智能科技有限公司 一种基于linux中PCIE错误的处理方法及系统
CN106201753A (zh) * 2016-06-28 2016-12-07 浪潮(北京)电子信息产业有限公司 一种基于linux中PCIE错误的处理方法及系统
CN106326151A (zh) * 2016-08-19 2017-01-11 浪潮(北京)电子信息产业有限公司 一种PCIe设备的拔除方法及装置
CN108259212B (zh) * 2017-05-25 2019-09-17 新华三技术有限公司 报文处理方法及装置
CN108259212A (zh) * 2017-05-25 2018-07-06 新华三技术有限公司 报文处理方法及装置
CN109560900A (zh) * 2017-09-27 2019-04-02 阿里巴巴集团控股有限公司 数据发送方法和装置
CN110968443A (zh) * 2018-09-28 2020-04-07 阿里巴巴集团控股有限公司 设备异常的检测方法及装置
CN110968443B (zh) * 2018-09-28 2023-04-11 阿里巴巴集团控股有限公司 设备异常的检测方法及装置
CN113498600A (zh) * 2020-01-22 2021-10-12 华为技术有限公司 一种基于PCIe的数据传输方法及装置
CN113498600B (zh) * 2020-01-22 2022-11-25 华为技术有限公司 一种基于PCIe的数据传输方法及装置

Also Published As

Publication number Publication date
US20180095817A1 (en) 2018-04-05
ES2748228T3 (es) 2020-03-16
EP3296885A1 (en) 2018-03-21
EP3296885B1 (en) 2019-08-14
EP3296885A4 (en) 2018-07-25
US10565043B2 (en) 2020-02-18
US20200151045A1 (en) 2020-05-14
CN105205021B (zh) 2018-02-13
US11620175B2 (en) 2023-04-04
WO2017041533A1 (zh) 2017-03-16

Similar Documents

Publication Publication Date Title
CN105205021A (zh) 断开PCIe设备与主机之间的链接的方法和装置
US6483845B1 (en) Packet transmitter-receiver and packet receiver
US6665275B1 (en) Network device including automatic detection of duplex mismatch
CN105700967A (zh) 一种外设部件内部互联PCIe设备及其检测方法
CN104866454A (zh) 面向板级高速总线的写报文前瞻处理方法及装置
CN105357147A (zh) 一种高速高可靠的片上网络适配单元
CN104364764A (zh) 用于总线系统的用户站和用于在总线系统的用户站之间传输消息的方法
US20240106737A1 (en) Application-aware links
CN106502944A (zh) 计算机、pcie设备以及pcie设备的心跳检测方法
CN103685578A (zh) 主从设备的数据传输方法
CN101119245B (zh) 利用oam协议进行链路监控的方法及装置
RU2383067C2 (ru) Способ сохранения пакетов данных с использованием технологии указателя
JP2009116732A (ja) 情報処理装置及び情報処理方法
EP1999908B1 (en) Apparatus for detecting errors in a communication system
CN112249088B (zh) 双显示系统互诊断与数据同步的方法、双显示系统和列车
JP6134720B2 (ja) 接続方法
CN104247338A (zh) 交换机、发送方法、程序以及记录介质
KR20010050475A (ko) 에러 처리 기능을 구비한 데이터 전송 장치 및 데이터전송시의 에러 처리 방법
CN101494569A (zh) 一种报文处理方法和装置
CN111930582A (zh) 系统管理总线检测平台、处理器及系统管理总线检测方法
JPS5919458A (ja) デ−タ伝送システム
CN112131167B (zh) 一种基于lpc协议的i2c转发模块、系统及其使用方法
JP2011188272A (ja) スイッチ装置
CN113544636B (zh) 亚健康节点的管理方法和装置
KR100694350B1 (ko) 이동통신단말기의 ppp 데이터 처리 장치 및 그 처리방법

Legal Events

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