CN105701051A - 一种热插拔方法、主机控制器、主机及PCIe桥设备 - Google Patents
一种热插拔方法、主机控制器、主机及PCIe桥设备 Download PDFInfo
- Publication number
- CN105701051A CN105701051A CN201610029365.6A CN201610029365A CN105701051A CN 105701051 A CN105701051 A CN 105701051A CN 201610029365 A CN201610029365 A CN 201610029365A CN 105701051 A CN105701051 A CN 105701051A
- Authority
- CN
- China
- Prior art keywords
- pcie
- hot plug
- pcie device
- main frame
- notice message
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
- G06F2213/2424—Interrupt packet, e.g. event
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/40—Bus coupling
- G06F2213/4002—Universal serial bus hub with a single upstream port
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种热插拔方法、主机控制器、主机及PCIe桥设备,涉及计算机技术领域,用于实现远距离使用PCIe设备的热插拔。包括:主机控制器生成第一通知报文,所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔;主机控制器将所述第一通知报文发送给主机,以便主机根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;所述主机控制器接收所述主机发送的第二通知报文,向所述用户设备控制器发送所述第二通知报文,以便所述用户设备控制器指示用户插拔所述第一PCIe设备;所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种热插拔方法、主机控制器、主机及PCIe桥设备。
背景技术
所谓热插拔即带电拔插,允许用户在不关闭系统,在不切断电源的情况下能够取出或更换主机下挂的PCIe(PeripheralComponentInterfaceExpress,总线和接口标准)设备,而不影响主机服务器系统的运行,从而提高系统对灾难的及时恢复能力、扩展性和灵活性等。目前,热插拔功能对于维持PCIe系统的“高可用性”非常关键。
现有热插拔技术主要是:检测到用户触发了热插拔后,控制指示灯闪烁,之后通过PCIe总线通知PCIe设备的驱动停止数据传输,并关闭PCIe设备与插槽间的Link(连接)以及该插槽(slot),这样PCIe设备与插槽间的物理连接为高阻状态,指示灯熄灭,用户移除设备,热拔完成。
由于基于PCIe总线的数据传输受距离的限制,PCIe设备的使用只能在有限的短距离内使用,现有热插拔技术也是在此场景下的热插拔。随着PCIe设备使用的需求,目前已有远距离使用PCIe设备的场景,如:PCIe桥级联PCIe设备、PCIe数据承载在其他传输协议上传输,PCIe设备被拉远,与主机服务器的物理距离超过PCIe协议规定的PCIe信号传输距离限值等。
现有热插拔只针对短距离的PCIe设备的热插拔,还没有在远距离使用PCIe设备时进行热插拔的设备或功能。
发明内容
本发明提供一种热插拔方法、主机控制器、主机及PCIe桥设备,能够在远距离使用PCIe设备的场景下进行热插拔。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,公开了一种热插拔方法,包括:
首先,在远距离使用PCIe设备的场景下,可以在主机侧增设主机控制器,同时在用户设备(PCIe设备)侧增设用户设备控制器,主机控制器与用户设备控制器通过网络通信。
具体实现中,首先主机控制器生成第一通知报文,所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔。其中,所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
其次,所述主机控制器将所述第一通知报文发送给所述主机,以便所述主机根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;
最后,所述主机控制器接收所述主机发送的第二通知报文,向所述用户设备控制器发送所述第二通知报文,以便所述用户设备控制器指示用户插拔所述第一PCIe设备;所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
主机和PCIe设备可以通过PCIe桥级联进行通信,此时与主机相连的PCIe桥需要具备PCIe设备的信息并能够在PCIe设备被拔或插入时通知主机进行相应的拔插操作;“
主机和PCIe设备可以通过非PCIe链路(如网络)进行相连,则此时与主机控制器和用户设备控制器需具备组通知报文及解析通知报文的功能
远距离使用PCIe设备,如:主机与PCIe设备不在同一物理地点,由于主机侧的主机控制器可以与PCIe设备侧的用户设备控制器通过网络进行通信,主机可以通过主机控制器与用户设备控制器与PCIe设备对PCIe设备进行热插拔控制,实现远程PCIe设备的热插拔。
结合第一方面,在第一方面的第一种可能的实现方式中,若需对所述第一PCIe设备进行热插,则所述主机控制器生成第一通知报文具体包括:
所述主机控制器接收所述用户设备控制器发送的所述第三通知报文;所述第三通知报文是所述用户设备控制器检测到热插拔被触发后由所述用户设备控制器生成的,所述第三通知报文携带所述热插拔中断信息。具体实现中,可以是用户按下用户设备控制器上的热插拔按钮后,用户设备控制器生成所述第三通知报文。或者,用户通过用户设备控制器上的带外控制模块发起热插拔请求,所述用户设备控制器根据所述热插拔请求,生成所述第三通知报文。
进而,所述主机控制器根据所述第三通知报文生成所述第一通知报文。
或,所述主机控制器检测到热插拔被触发,则生成所述第一通知报文。可以是,用户通过主机控制器的带外控制模块发起热插拔请求,则生成所述第一通知报文。
结合第一方面的,在第一方面的第一种可能的实现方式若需对所述第一PCIe设备进行热拔,则所述主机控制器获取第一通知报文还包括:
所述主机控制器检测到与所述用户设备控制器间的网络中断,则生成所述第一通知报文。
对于这种网络突然中断的情况,为了防止网络突然中断导致主机的请求得不到响应而引起的主机挂死,因而也需要对PCIe设备进行相应的热插拔操作。
第二方面,公开了一种热插拔方法,应用于远程PCIe系统,所述远程总线和接口标准PCIe系统包括主机、主机控制器、PCIe设备以及用户设备控制器,包括:
所述主机接收所述主机控制器发送的第一通知报文;所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔,所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
所述主机根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;
所述主机生成第二通知报文,并向所述主机控制器发送所述第二通知报文,所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
现有技术中,远距离使用PCIe设备,如:主机与PCIe设备不在同一物理地点,由于主机侧的主机控制器可以与PCIe设备侧的用户设备控制器通过网络进行通信,主机可以通过主机控制器与用户设备控制器与PCIe设备对PCIe设备进行热插拔控制,实现远程PCIe设备的热插拔。
结合第二方面,在第二方面的第一种可能的实现方式中,所述主机根据所述第二通知报文执行与所述第一PCIe设备相应的热插拔操作具体包括:
所述主机获取所述第一PCIe设备的标识信息以及所述第一PCIe设备对应的插槽信息;
所述主机确定所述插槽信息对应的第一插槽;
所述主机关闭所述第一插槽与所述第一PCIe设备间的连接,并将所述第一插槽下电。
这里,是对第一PCIe设备进行热拔的过程。
结合第二方面,在第二方面的第二种可能的实现方式中,所述主机根据所述第二通知报文执行与所述第一PCIe设备相应的热插拔操作具体包括:
所述主机获取第一插槽的插槽信息;所述第一插槽为所述第一PCIe设备对应的插槽;
所述主机建立所述第二插槽与所述第一PCIe设备间的连接,并给所述第一插槽上电。
这里,是对第一PCIe设备进行热插的过程。
第三方面,公开了一种热插拔方法,包括:
主机监测第一链路是否异常;所述第一链路为所述主机与PCIe桥设备间的链路,所述PCIe桥设备下挂至少一个PCIe设备;
若所述主机监测到所述第一链路出现异常,则执行与所述至少一个PCIe设备相应的热插拔操作。
PCIe设备通过PCIe桥与主机级联属于远距离使用PCIe设备的场景,现有的热插拔技术,并不能实现此场景中PCIe设备的热插拔。本发明监测PCIe桥与PCIe设备间的链路状态,当链路异常时,对PCIe桥下挂的每一个PCIe设备进行相应的热插拔操作,可防止主机与PCIe桥之间的链路异常而导致的主机读写PCIe设备的请求得不到响应而导致主机挂死。
结合第三方面,在第三方面的第一种可能的实现方式,所述执行与所述至少一个PCIe设备相应的热插拔操作具体包括:
所述主机获取所述至少一个PCIe设备中每一个PCIe设备的标识信息以及所述每一个PCIe设备对应的插槽信息;
所述主机关闭所述每一个PCIe设备与对应的插槽与间的连接,并将所述每一个PCIe设备对应的插槽下电。同时,主机卸载PCIe设备驱动,释放资源。
当然,这种场景仅仅需要对PCIe设备进行热拔相应的操作。
第四方面,公开了一种热插拔方法,包括:
第一PCIe桥设备监测第二链路是否异常;所述第二链路为所述第一PCIe桥设备与第二PCIe桥设备间的链路,所述第一PCIe桥设备与主机连接,所述第二PCIe桥设备下挂N个PCIe设备;所述N为大于等于1的整数;
所述第一PCIe桥设备监测到所述第二链路出现异常,则生成N个第四通知报文,所述N个第四通知报文用于指示所述主机执行与所述N个PCIe设备相应的热插拔操作。
第一PCIe桥设备针对N个PCIe设备生成N个通知报文,指示主机对所述N个PCIe设备逐一进行热插拔。可以防止第一PCIe桥设备与第二PCIe桥设备间的链路突然异常而导致主机读写所述N个PCIe设备请求得不到响应出现的主机挂死。
结合第四方面,在第四方面的第一种可能的实现方式中,所述生成N个第四通知报文具体包括:
所述第一PCIe桥设备根据预存储的PCIe拓扑结构,确定所述N个PCIe设备的N个标识信息,以及所述N个PCIe设备对应的N个插槽的信息;
根据所述N个标识信息以及所述N个插槽的信息生成N个热插拔中断信息;
根据所述N个热插拔中断信息中的每一个生成一个所述第四通知报文,得到N个所述第四通知报文。
第五方面,公开了一种主机控制器,应用于远程总线和接口标准PCIe系统,所述远程PCIe系统包括主机、所述主机控制器、PCIe设备以及用户设备控制器,包括:
生成单元,用于生成第一通知报文,所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔;所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
发送单元,用于将所述第一通知报文发送给所述主机,以便所述主机根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;
接收单元,用于接收所述主机发送的第二通知报文;
所述发送单元还用于,向所述用户设备控制器发送所述第二通知报文,以便所述用户设备控制器指示用户插拔所述第一PCIe设备;所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
结合第五方面,在第五方面的第一种可能的实现方式中,
所述生成单元具体用于,若需对所述第一PCIe设备进行热插,则接收所述用户设备控制器发送的所述第三通知报文,根据所述第三通知报文生成所述第一通知报文;所述第三通知报文是所述用户设备控制器检测到热插拔被触发后由所述用户设备控制器生成的,所述第三通知报文携带所述热插拔中断信息;
或,检测到热插拔被触发,则生成所述第一通知报文。
结合第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述生成单元还用于,若需对所述第一PCIe设备进行热拔,在检测到与所述用户设备控制器间的网络中断时,生成所述第一通知报文。
第六方面,公开了一种主机,应用于远程PCIe系统,所述远程总线和接口标准PCIe系统包括所述主机、主机控制器、PCIe设备以及用户设备控制器,包括;
接收单元,用于接收所述主机控制器发送的第一通知报文;所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔,所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
热插拔操作单元,用于根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;
生成单元,用于生成第二通知报文,所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成;
发送单元,用于向所述主机控制器发送所述第二通知报文。
结合第六方面,在第六方面的第一种可能的实现方式中,所述热插拔操作单元具体用于,获取所述第一PCIe设备的标识信息以及所述第一PCIe设备对应的插槽信息;确定所述插槽信息对应的第一插槽;关闭所述第一插槽与所述第一PCIe设备间的连接,并将所述第一插槽下电。
结合第六方面,在第六方面的第二种可能的实现方式中,所述热插拔操作单元具体用于,获取第一插槽的插槽信息;所述第一插槽为所述第一PCIe设备对应的插槽;
建立所述第二插槽与所述第一PCIe设备间的连接,并给所述第一插槽上电。
第七方面,公开了一种主机,包括:
监测单元,用于监测第一链路是否异常;所述第一链路为所述主机与PCIe桥设备间的链路,所述PCIe桥设备下挂至少一个PCIe设备;
热插拔操作单元,用于若所述监测单元监测到所述第一链路出现异常,则执行与所述至少一个PCIe设备相应的热插拔操作。
结合第七方面,在第七方面的第一种可能的实现方式中,所述热插拔操作单元具体用于,获取所述至少一个PCIe设备中每一个PCIe设备的标识信息以及所述每一个PCIe设备对应的插槽信息;
关闭所述每一个PCIe设备与对应的插槽与间的连接,并将所述每一个PCIe设备对应的插槽下电。
第八方面,公开了一种第一PCIe桥设备,包括:
监测单元,用于监测第二链路是否异常;所述第二链路为所述第一PCIe桥设备与第二PCIe桥设备间的链路,所述第一PCIe桥设备与主机连接,所述第二PCIe桥设备下挂N个PCIe设备;所述N为大于等于1的整数;
生成单元,用于在所述监测单元监测到所述第二链路出现异常后,生成N个第四通知报文,所述N个第四通知报文用于指示所述主机执行与所述N个PCIe设备相应的热插拔操作。
结合第八方面,在第八方面的第一种可能的实现方式中,所述生成单元具体用于,根据预存储的PCIe拓扑结构,确定所述N个PCIe设备的N个标识信息,以及所述N个PCIe设备对应的N个插槽的信息;
根据所述N个标识信息以及所述N个插槽的信息生成N个热插拔中断信息;
根据所述N个热插拔中断信息中的每一个生成一个所述第四通知报文,得到N个所述第四通知报文。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例1提供的远程PCIe系统的示意图;
图2为本发明实施例1提供的热插拔方法的流程示意图;
图3为本发明实施例1提供的主机、主机控制器及用户设备控制器的结构框图;
图4为本发明实施例1提供的热拔方法的流程示意图;
图5为本发明实施例1提供的热插方法的流程示意图;
图6本发明实施例2提供的远程PCIe系统的示意图;
图7为本发明实施例2提供的热插拔方法的流程示意图;
图8本发明实施例3提供的远程PCIe系统的示意图;
图9为本发明实施例3提供的热插拔方法的流程示意图;
图10为本发明实施例4提供的主机控制器的结构框图;
图11为本发明实施例5提供的主机的结构框图;
图12为本发明实施例6提供的主机的结构框图;
图13为本发明实施例7提供的第一PCIe桥设备的结构框图;
图14为本发明实施例8提供的硬件设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
现有热插拔都为PCIe协议定义的标准的热插拔,这种热插拔只针对短距离的PCIe设备的热插拔,即只能适用于PCIe设备直接与主机连接的场景。在远距离应用PCIe设备的场景,如:PCIe设备与主机不在同一个地点或二者通过PCIe桥连接,标准的PCIe设备的热插拔方式不够灵活。同时,在复杂的PCIe拓扑结构,如PCIe桥级联的使用场景,标准的PCIe设备的热插拔方法已不能满足场景需求,使得PCIe设备的应用受到限制。
本发明的原理在于:在主机与PCIe设备间增设能够进行通信的主机控制器、用户设备控制器,使得主机能够通过主机控制器、用户设备控制器对PCIe设备进行热插拔。或者,对PCIe桥与PCIe设备间的链路进行监测,发现链路异常时,则对下挂的PCIe设备进行热插拔。
实施例1:
本发明实施例提供一种远程PCIe系统。如图1所述远程PCIe系统包括主机10、主机控制器20、用户设备控制器30以及PCIe设备40。所述主机10与所述主机控制器20连接,PCIe设备40与所述用户设备控制器30连接,所述主机控制器20与所述用户设备控制器30通过网络通信。这里的网络也可以是其他传输介质,如FiberChannel等,网络适用的不仅仅是TCP/IP协议,可以是其他传输协议。
本发明实施例提供一种热插拔方法,应用于图1所示的远程PCIe系统。如图2所示,所述方法包括以下步骤:
s101、所述主机控制器生成第一通知报文,所述第一通知报文携带热插拔中断信息。
其中,所述热插拔中断信息携带第一PCIe设备的标识信息以及所述第一PCIe设备对应的插槽信息。该热插拔中断信息指示第一PCIe设备要将进行热插拔。所述第一PCIe设备即图1所示的PCIe设备40。
另外,所述第一通知报文可以是热插拔MSI中断通知TLP报文。
具体实现中,若需对所述第一PCIe设备进行热插,可以通过以下两种方式生成第一通知报文:
第一、所述主机控制器接收所述用户设备控制器发送的所述第三通知报文;所述主机控制器根据所述第三通知报文生成所述第一通知报文。
其中,所述第三通知报文是所述用户设备控制器检测到热插拔被触发后由所述用户设备控制器生成的,所述第三通知报文携带所述热插拔中断信息。
具体地,可以是用户通过用户设备控制器发起热插拔请求,用户设备控制器则生成所述第三通知报文。所述第三通知报文可以是以太通知报文,如:L2报文、或其他网络传输协议(除TCP/IP协议外)适用的报文。
第二、所述主机控制器检测到热插拔被触发,则生成所述第一通知报文。
具体实现中,可以是用户通过主机控制器发起热插拔请求。
若需对所述第一PCIe设备进行热拔,则所述主机控制器除了可以通过以上两种方式获取第一通知报文的方式外,还可以通过以下第三种方式获取。
第三、所述主机控制器检测到与所述用户设备控制器间的网络中断,则生成所述第一通知报文。
s102、主机控制器将所述第一通知报文发送给主机。
s103、主机接收所述主机控制器发送的第一通知报文,根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作。
具体实现中,若需对第一PCIe设备进行热拔,则所述主机根据所述第二通知报文执行与所述第一PCIe设备相应的热插拔操作具体包括:
所述主机获取所述第一PCIe设备的标识信息以及所述第一PCIe设备对应的插槽信息;确定所述插槽信息对应的第一插槽;关闭所述第一插槽与所述第一PCIe设备间的连接,并将所述第一插槽下电。
另外,若需对所述第一PCIe设备进行热插,则所述主机根据所述第二通知报文执行与所述第一PCIe设备相应的热插拔操作具体包括:
所述主机获取第一插槽的插槽信息;所述第一插槽为所述第一PCIe设备对应的插槽;
所述主机建立所述第二插槽与所述第一PCIe设备间的连接,并给所述第一插槽上电。
s104、所述主机生成第二通知报文,并向所述主机控制器发送所述第二通知报文,所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
s105、所述主机控制器接收所述主机发送的第二通知报文,向所述用户设备控制器发送所述第二通知报文。
其中,所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
发送所述第二通知报文,以便所述用户设备控制器指示用户插拔所述第一PCIe设备。具体实现中,用户设备控制器点亮指示灯,指示用户可以将第一PCIe设备拔下,或可以将第一PCIe设备插入插槽。
进一步的,详细说明图1中主机10、主机控制器20、用户设备控制器30以及PCIe设备40包括的功能模块,并结合各个功能模块详细介绍本发明提供的热插拔方法。
如图3所示,主机(HOSTSERVER)10包括:ROOTCOMPLEX(根节点)101、热插拔驱动(HOT-PLUGDRIVER)102、热插拔服务程序(HOT-PLUGSERVICE)103、用户接口(Userinterface)104、操作系统(OS)105以及设备驱动程序(DEVICEDRIVER)106。
主机控制器20为控制单板。包括:上行端口(UPSTREAM)201、单板控制模块(CONTROLLER)202、管理CPU(PROCESSOR)203、发送和接收数据处理模块(TRANSMITANDRECEIVEMODULE)204、网络连接模块(NETWORKCONNECTIONMODULE)205、带外控制模块(OUT-BANDCONTROLLER)206。
用户设备控制器30为控制单板。包括:热插拔按钮301、热插拔指示灯302、IO设备插303、热插拔控制器304、下行端口(DOWNSTREAM)305、用户控制和指示模块308、管理CPU306、发送和接收数据处理模块307、为网络连接模块310以及带外控制模块309。
以下参考图3,对本发明实施例提供的热插拔方法做以详细说明。
首先,提供一种对PCIe设备进行热拔的方法,如图4所示,所述方法包括:
401a、用户设备控制器的热插拔按钮301被触发。
401b、用户通过用户设备控制器30的带外控制模块309发起热插拔请求。
401c、用户通过主机控制器20带外控制模块206发起热插拔请求。
401d、主机控制器20与用户设备控制器30间的网络断开。
具体实现中,进行步骤401a或401b中的任一个。但后续步骤有所不同。
步骤401a后进行步骤4011:用户设备控制器30的热插拔控制器304检测到热插拔请求,用户控制和指示模块308指示指示灯302的状态,同时组以太通知报文通过网络连接模块310发送至网络。
步骤401b后进行步骤4012:管理CPU306接收热插拔请求,通过热插拔控制器304指示指示灯302的状态,同时组以太通知报文通过网络连接模块310发送至网络。
步骤4011、4012后均进行步骤402a:管理CPU203从网络连接模块205接收并解析以太通知报文,并根据其中的热插拔中断信息组热插拔MSI中断通知TLP报文,通过上行端口201发送至主机10。
步骤401c后进行步骤402b:管理CPU203接收热插拔请求,通知单板控制模块202组热插拔中断信息组热插拔MSI中断通知TLP报文,通过上行端口201发送至主机10。
步骤401d后进行步骤402c:单板控制模块202检测网络状态信息并组热插拔MSI中断通知TLP报文,通过上行端口201发送至主机10。
步骤402a或402b或402c之后均进行步骤403。
403、主机的热插拔服务程序103中的热插拔驱动102接收热插拔中断,通过下行端口305获取热插拔相关插槽信息,执行热插拔的相应操作。
404、主机10执行热插拔操作,卸载驱动,并通知单板控制模块202组热插拔完成通知报文通过发送和接收数据处理模块204、网络连接模块205发送至网络。
其中,所述热插拔完成通知报文即本发明所述的第二通知报文。
405、单板控制模块202接收并解析热插拔完成通知报文后用户控制和指示模块308控制指示灯302闪亮,指示用户拔PCIe设备。
另外,还提供一种对PCIe设备进行热插的方法,如图5所示,所述方法包括:
501a、用户设备控制器的热插拔按钮301被触发。
501b、用户通过用户设备控制器30的带外控制模块309发起热插拔请求。
501c、用户通过主机控制器20带外控制模块206发起热插拔请求。
步骤501a后进行步骤502a:热插拔控制器304检测到有热插动作,用户控制和指示模块308指示指示灯302的状态,同时组以太通知报文通过网络连接模块310发送至网络。
步骤501b后进行步骤502b:管理CPU306接收热插拔请求,通过热插拔控制器304指示指示灯302的状态,同时组以太通知报文通过网络连接模块310发送至网络。
步骤501c后进行步骤502c:管理CPU203接收到请求,根据状态信息通知单板控制模块202组热插拔MSI中断通知TLP报文,通过上行端口201发送至主机10。
步骤502a或502b或502c之后均进行步骤503。
503、管理CPU203从网络连接模块205接收并解析以太通知报文,并根据其中的热插拔中断信息组热插拔MSI中断通知TLP报文,通过上行端口201发送至主机10。
504、热插拔服务程序103中的热插拔驱动102接收热插拔中断,通过下行端口305获取热插拔相关插槽信息,执行热插拔的相应操作。
505、单板控制模块202组热插拔完成通知报文通过发送和接收数据处理模块204、网络连接模块205发送至用户设备控制器30。
506、热插拔控制器304接收并解析热插拔完成通知报文,控制IO设备插303上电,同时控制指示灯302的状态,指示用户插PCIe设备。
本发明实施例提供的热插拔方法,在主机侧设置主机控制器与主机连接,在PCIe设备侧设置用户设备控制器,主机控制器与用户设备控制器间通过网络进行通信。当热插拔被触发后,主机通过主机控制器以及用户设备控制器进行报文交互后,执行相应的热插拔操作。并指示用户插拔PCIe设备。实现了远距离使用PCIe设备场景中的PCIe设备的热插拔。
实施例2:
本发明实施例提供一种热插拔方法,应用于图6所示的远程PCIe系统。如图6所述远程PCIe系统包括主机10、PCIe桥设备50以及PCIe设备40。所述主机10与PCIe桥设备50连接,PCIe桥设备50与PCIe设备40连接。主机10通过PCIe桥设备50与PCIe设备40进行通信。其中,主机10的RP(RootPort,根端口)与PCIe桥设备50的上行端口连接,PCIe桥设备50的DP(DownStreamPort,下行端口)与PCIe设备40连接。
如图7所示,本实施例提供的热插拔方法包括以下步骤:
601、主机监测第一链路是否异常;所述第一链路为所述主机与PCIe桥设备间的链路,所述PCIe桥设备下挂至少一个PCIe设备。
所述第一链路可以是图6所述的主机10与PCIe桥设备50间的链路。
主机下挂一级PCIeSwitch(PCIe桥设备),PCIeSwitch下挂多种PCIe设备,若PCIeSwitch与主机(host)之间的PCIe链路出现异常,要保证主机能够正确处理异常而不出现挂死,则可在HOST侧的设备驱动(DeviceDriver)启动一个线程来监控RC(RootComplex,根节点)和上行端口之间的链路状态,一旦驱动检查到该链路状态异常,则启动热插拔服务。另外,PCIe桥设备可以集成主机控制器20、用户设备控制器30的功能,保证HOST主机不宕机,且热插拔流程如图4、图5所示。
602、若所述主机监测到所述第一链路出现异常,则执行与所述至少一个PCIe设备相应的热插拔操作。
需要说明的是,对6这种场景仅仅需要对PCIe设备进行热拔相应的操作。
进一步地,所述执行与所述至少一个PCIe设备相应的热插拔操作具体包括:
所述主机获取所述至少一个PCIe设备中每一个PCIe设备的标识信息以及所述每一个PCIe设备对应的插槽信息。
接着,所述主机关闭所述每一个PCIe设备与对应的插槽与间的连接,并将所述每一个PCIe设备对应的插槽下电。
PCIe设备通过PCIe桥与主机级联属于远距离使用PCIe设备的场景,现有的热插拔技术,并不能实现此场景中PCIe设备的热插拔。本发明监测PCIe桥与PCIe设备间的链路状态,当链路异常时,对PCIe桥下挂的每一个PCIe设备进行相应的热插拔操作,可防止由于PCIe桥与PCIe设备间的链路异常而导致的主机读写PCIe设备的请求得不到响应而导致主机挂死。
实施例3:
本发明实施例提供一种热插拔方法,应用于图8所示的远程PCIe系统。如图8所述远程PCIe系统包括主机10、PCIe桥设备50、PCIe桥设备60以及PCIe设备40。所述主机10与PCIe桥设备50连接,PCIe桥设备50与PCIe桥设备60连接。主机10通过PCIe桥设备50、PCIe桥设备60与PCIe设备40进行通信。其中,主机10的RP(RootPort,根端口)与PCIe桥设备50的上行端口连接,PCIe桥设备50的DP(DownStreamPort,下行端口)与PCIe桥设备60的上行端口连接。
如图9所示,本实施例提供的热插拔方法包括以下步骤:
701、第一PCIe桥设备监测第二链路是否异常;所述第二链路为所述第一PCIe桥设备与第二PCIe桥设备间的链路,所述第一PCIe桥设备与主机连接,所述第二PCIe桥设备下挂N个PCIe设备;所述N为大于等于1的整数。
702、所述第一PCIe桥设备监测到所述第二链路出现异常,则生成N个第四通知报文,所述N个第四通知报文用于指示所述主机执行与所述N个PCIe设备相应的热插拔操作。
703、第一PCIe桥设备针对N个PCIe设备生成N个通知报文,指示主机对所述N个PCIe设备逐一进行热插拔。可以防止第一PCIe桥设备与第二PCIe桥设备间的链路突然异常而导致主机读写所述N个PCIe设备请求得不到响应出现的主机挂死。
主机下挂两级PCIeSwitch(PCIe桥设备50、PCIe桥设备60),第二级PCIeSwitch(PCIe桥设备60)下挂多种PCIe设备,若两级PCIeSwitcht之间的PCIe链路(PCIe桥设备50、PCIe桥设备60间的链路)出现异常,要保证HOST主机能够正确处理异常而不出现挂死,则可在第一级PCIeSwitch(PCIe桥设备50)中记录PCIe拓扑结构,当检测到两级PCIeSwitcht之间的PCIe链路出现异常,则通过第一级PCIeSwitch中的记录的PCIe拓扑结构逐一组中断通知报文通过上行端口发送给主机,主机中的热插拔驱动接收到热插拔中断后执行热插拔服务,逐一将第一级桥下的设备进行热插拔,保证主机不宕机。
进一步地,所述生成N个第四通知报文具体包括:
所述第一PCIe桥设备根据预存储的PCIe拓扑结构,确定所述N个PCIe设备的N个标识信息,以及所述N个PCIe设备对应的N个插槽的信息;
根据所述N个标识信息以及所述N个插槽的信息生成N个热插拔中断信息;根据所述N个热插拔中断信息中的每一个生成一个所述第四通知报文,得到N个所述第四通知报文。
PCIe设备通过PCIe桥与主机级联属于远距离使用PCIe设备的场景,现有的热插拔技术,并不能实现此场景中PCIe设备的热插拔。本发明监测PCIe桥与PCIe设备间的链路状态,当链路异常时,对PCIe桥下挂的每一个PCIe设备进行相应的热插拔操作,可防止由于PCIe桥与PCIe设备间的链路异常而导致的主机读写PCIe设备的请求得不到响应而导致主机挂死。
实施例4:
本发明实施例提供了一种主机控制器80,应用于图1所示的远程PCIe系统。如图10所示,所述主机控制器80包括:生成单元801、发送单元802以及接收单元803。
生成单元801,用于生成第一通知报文,所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔;所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信。
发送单元802,用于将所述第一通知报文发送给所述主机,以便所述主机根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作。
接收单元803,用于接收所述主机发送的第二通知报文。
所述发送单元802还用于,向所述用户设备控制器发送所述第二通知报文,以便所述用户设备控制器指示用户插拔所述第一PCIe设备;所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
所述生成单元801具体用于,若需对所述第一PCIe设备进行热插,则接收所述用户设备控制器发送的所述第三通知报文,根据所述第三通知报文生成所述第一通知报文;所述第三通知报文是所述用户设备控制器检测到热插拔被触发后由所述用户设备控制器生成的,所述第三通知报文携带所述热插拔中断信息。
或,所述生成单元801检测到热插拔被触发,则生成所述第一通知报文。
所述生成单元801还用于,若需对所述第一PCIe设备进行热拔,在检测到与所述用户设备控制器间的网络中断时,生成所述第一通知报文。
需要说明的是,发送单元802可以是主机控制器的发射器,接收单元803可以是主机控制器接收器,所述生成单元801可以集成在主机控制器的一个处理器中实现,此外,也可以以程序代码的形式存储于主机控制器的存储器中,由主机控制器的一个处理器调用主机控制器的存储器中存储的代码,执行以上生成单元801的功能。
本发明实施例提供的主机控制器,与主机连接,在PCIe设备侧设置用户设备控制器,主机控制器与用户设备控制器间通过网络进行通信。当热插拔被触发后,主机通过主机控制器以及用户设备控制器进行报文交互后,执行相应的热插拔操作。并指示用户插拔PCIe设备。实现了远距离使用PCIe设备场景中的PCIe设备的热插拔。
实施例5:
本发明实施例提供一种主机90,应用于图1所示的远程PCIe系统。如图11所示,所述主机90包括:接收单元901、热插拔操作单元902、生成单元903以及发送单元904。
接收单元901,用于接收所述主机控制器发送的第一通知报文;所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔,所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信。
热插拔操作单元902,用于根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作。
生成单元903,用于生成第二通知报文,所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
发送单元904,用于向所述主机控制器发送所述第二通知报文。
所述热插拔操作单元902具体用于,获取所述第一PCIe设备的标识信息以及所述第一PCIe设备对应的插槽信息;确定所述插槽信息对应的第一插槽;关闭所述第一插槽与所述第一PCIe设备间的连接,并将所述第一插槽下电。
所述热插拔操作单元902具体用于,获取第一插槽的插槽信息;所述第一插槽为所述第一PCIe设备对应的插槽;建立所述第二插槽与所述第一PCIe设备间的连接,并给所述第一插槽上电。
需要说明的是,发送单元904可以是主机的发射器,接收单元901可以是主机接收器,所述热插拔操作单元902、生成单元903可以集成在主机的一个处理器中实现,此外,也可以以程序代码的形式存储于主机的存储器中,由主机的一个处理器调用主机的存储器中存储的代码,执行以上热插拔操作单元902、生成单元903的功能。
本发明实施例提供的主机,与主机控制器连接,在PCIe设备侧设置用户设备控制器,主机控制器与用户设备控制器间通过网络进行通信。当热插拔被触发后,主机通过主机控制器以及用户设备控制器进行报文交互后,执行相应的热插拔操作。并指示用户插拔PCIe设备。实现了远距离使用PCIe设备场景中的PCIe设备的热插拔。
实施例6:
本发明实施例了一种主机100,应用于图6所示的远程PCIe系统。如图12所示,所述主机100包括:监测单元1001、热插拔操作单元1002。
监测单元1001,用于监测第一链路是否异常;所述第一链路为所述主机与PCIe桥设备间的链路,所述PCIe桥设备下挂至少一个PCIe设备。
热插拔操作单元1002,用于若所述监测单元监测到所述第一链路出现异常,则执行与所述至少一个PCIe设备相应的热插拔操作。
所述热插拔操作单元1002具体用于,获取所述至少一个PCIe设备中每一个PCIe设备的标识信息以及所述每一个PCIe设备对应的插槽信息;关闭所述每一个PCIe设备与对应的插槽与间的连接,并将所述每一个PCIe设备对应的插槽下电。
需要说明的是,所述监测单元1001、热插拔操作单元1002可以集成在主机的一个处理器中实现,此外,也可以以程序代码的形式存储于主机的存储器中,由主机的一个处理器调用主机的存储器中存储的代码,执行以上监测单元1001、热插拔操作单元1002的功能。
PCIe设备通过PCIe桥与主机级联属于远距离使用PCIe设备的场景,现有的热插拔技术,并不能实现此场景中PCIe设备的热插拔。本发明监测PCIe桥与PCIe设备间的链路状态,当链路异常时,对PCIe桥下挂的每一个PCIe设备进行相应的热插拔操作,可防止由于PCIe桥与PCIe设备间的链路异常而导致的主机读写PCIe设备的请求得不到响应而导致主机挂死。
实施例7:
本发明实施例提供了一种第一PCIe桥设备110,应用于图8所示的远程PCIe系统。如图13所示,所述第一PCIe桥设备110包括:监测单元1101以及生成单元1102。
监测单元1101,用于监测第二链路是否异常;所述第二链路为所述第一PCIe桥设备与第二PCIe桥设备间的链路,所述第一PCIe桥设备与主机连接,所述第二PCIe桥设备下挂N个PCIe设备;所述N为大于等于1的整数。
生成单元1102,用于在所述监测单元监测到所述第二链路出现异常后,生成N个第四通知报文,所述N个第四通知报文用于指示所述主机执行与所述N个PCIe设备相应的热插拔操作。
所述生成单元1101具体用于,根据预存储的PCIe拓扑结构,确定所述N个PCIe设备的N个标识信息,以及所述N个PCIe设备对应的N个插槽的信息;根据所述N个标识信息以及所述N个插槽的信息生成N个热插拔中断信息;根据所述N个热插拔中断信息中的每一个生成一个所述第四通知报文,得到N个所述第四通知报文。
需要说明的是,所述监测单元1101以及生成单元1102可以集成在第一PCIe设备的一个处理器中实现,此外,也可以以程序代码的形式存储于第一PCIe设备的存储器中,由第一PCIe设备的一个处理器调用第一PCIe设备的存储器中存储的代码,执行以上监测单元1101以及生成单元1102的功能。
PCIe设备通过PCIe桥与主机级联属于远距离使用PCIe设备的场景,现有的热插拔技术,并不能实现此场景中PCIe设备的热插拔。本发明监测PCIe桥与PCIe设备间的链路状态,当链路异常时,对PCIe桥下挂的每一个PCIe设备进行相应的热插拔操作,可防止由于PCIe桥与PCIe设备间的链路异常而导致的主机读写PCIe设备的请求得不到响应而导致主机挂死。
实施例8:
本发明实施例提供一种硬件设备120,如图14所示,所述硬件设备120包括:处理器1201、系统总线1202、存储器1203以及接收器1204和发射器1205。
其中,处理器1201可以为中央处理器(英文:centralprocessingunit,缩写:CPU)。
存储器1203,用于存储程序代码,并将该程序代码传输给该处理器1201,处理器1201根据程序代码执行下述指令。存储器1203可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:RAM);存储器1203也可以包括非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-onlymemory,缩写:ROM),快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:HDD)或固态硬盘(英文:solid-statedrive,缩写:SSD)。存储器1203还可以包括上述种类的存储器的组合。处理器1201、存储器1203之间通过系统总线1202连接并完成相互间的通信。
发射器1205可以由光发射器,电发射器,无线发射器或其任意组合实现。例如,光发射器可以是小封装可插拔(英文:smallform-factorpluggabletransceiver,缩写:SFP)发射器(英文:transceiver),增强小封装可插拔(英文:enhancedsmallform-factorpluggable,缩写:SFP+)发射器或10吉比特小封装可插拔(英文:10Gigabitsmallform-factorpluggable,缩写:XFP)发射器。电发射器可以是以太网(英文:Ethernet)网络接口控制器(英文:networkinterfacecontroller,缩写:NIC)。无线发射器可以是无线网络接口控制器(英文:wirelessnetworkinterfacecontroller,缩写:WNIC)。
接收器1204可以由光接收器,电接收器,无线接收器或其任意组合实现。例如,光接收器可以是小封装可插拔接收器,增强小封装可插拔接收器或10吉比特小封装可插拔接收器。电接收器可以是以太网网络接口控制器。无线接收器可以是无线网络接口控制器。
硬件设备120可以是主机控制器80,其中处理器1201执行上述生成单元801的功能,发射器1205是发送单元802,接收器1204是接收单元803。
硬件设备120可以是主机90,其中,接收器1204是接收单元901,发射器1205是发送单元904,处理器1201执行上述热插拔操作单元902、生成单元903的功能。
硬件设备120可以是主机100,处理器1201执行上述监测单元1001、热插拔操作单元1002的功能。此时,硬件设备120可以不包括接收器1204以及发射器1205。
硬件设备120可以是第一PCIe桥设备110,其中,处理器1201执行上述监测单元1101以及生成单元1102的功能。此时,硬件设备120可以不包括接收器1204以及发射器1205。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (20)
1.一种热插拔方法,其特征在于,应用于远程总线和接口标准PCIe系统,所述远程PCIe系统包括主机、主机控制器、PCIe设备以及用户设备控制器,包括:
所述主机控制器生成第一通知报文,所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔;所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
所述主机控制器将所述第一通知报文发送给所述主机,以便所述主机根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;
所述主机控制器接收所述主机发送的第二通知报文,向所述用户设备控制器发送所述第二通知报文,以便所述用户设备控制器指示用户插拔所述第一PCIe设备;所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
2.根据权利要求1所述的方法,其特征在于,若需对所述第一PCIe设备进行热插,则所述主机控制器生成第一通知报文具体包括:
所述主机控制器接收所述用户设备控制器发送的所述第三通知报文;所述第三通知报文是所述用户设备控制器检测到热插拔被触发后由所述用户设备控制器生成的,所述第三通知报文携带所述热插拔中断信息;
所述主机控制器根据所述第三通知报文生成所述第一通知报文;
或,所述主机控制器检测到热插拔被触发,则生成所述第一通知报文。
3.根据权利要求2所述的方法,其特征在于,若需对所述第一PCIe设备进行热拔,则所述主机控制器获取第一通知报文还包括:
所述主机控制器检测到与所述用户设备控制器间的网络中断,则生成所述第一通知报文。
4.一种热插拔方法,其特征在于,应用于远程总线和接口标准PCIe系统,所述远程PCIe系统包括主机、主机控制器、PCIe设备以及用户设备控制器,包括:
所述主机接收所述主机控制器发送的第一通知报文;所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔,所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
所述主机根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;
所述主机生成第二通知报文,并向所述主机控制器发送所述第二通知报文,所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
5.根据权利要求4所述的方法,其特征在于,所述主机根据所述第二通知报文执行与所述第一PCIe设备相应的热插拔操作具体包括:
所述主机获取所述第一PCIe设备的标识信息以及所述第一PCIe设备对应的插槽信息;
所述主机确定所述插槽信息对应的第一插槽;
所述主机关闭所述第一插槽与所述第一PCIe设备间的连接,并将所述第一插槽下电。
6.根据权利要求4所述的方法,其特征在于,所述主机根据所述第二通知报文执行与所述第一PCIe设备相应的热插拔操作具体包括:
所述主机获取第一插槽的插槽信息;所述第一插槽为所述第一PCIe设备对应的插槽;
所述主机建立所述第二插槽与所述第一PCIe设备间的连接,并给所述第一插槽上电。
7.一种热插拔方法,其特征在于,包括:
主机监测第一链路是否异常;所述第一链路为所述主机与PCIe桥设备间的链路,所述PCIe桥设备下挂至少一个PCIe设备;
若所述主机监测到所述第一链路出现异常,则执行与所述至少一个PCIe设备相应的热插拔操作。
8.根据权利要求7所述的方法,其特征在于,所述执行与所述至少一个PCIe设备相应的热插拔操作具体包括:
所述主机获取所述至少一个PCIe设备中每一个PCIe设备的标识信息以及所述每一个PCIe设备对应的插槽信息;
所述主机关闭所述每一个PCIe设备与对应的插槽与间的连接,并将所述每一个PCIe设备对应的插槽下电。
9.一种热插拔方法,其特征在于,包括:
第一PCIe桥设备监测第二链路是否异常;所述第二链路为所述第一PCIe桥设备与第二PCIe桥设备间的链路,所述第一PCIe桥设备与主机连接,所述第二PCIe桥设备下挂N个PCIe设备;所述N为大于等于1的整数;
所述第一PCIe桥设备监测到所述第二链路出现异常,则生成N个第四通知报文,所述N个第四通知报文用于指示所述主机执行与所述N个PCIe设备相应的热插拔操作。
10.根据权利要求9所述的方法,其特征在于,所述生成N个第四通知报文具体包括:
所述第一PCIe桥设备根据预存储的PCIe拓扑结构,确定所述N个PCIe设备的N个标识信息,以及所述N个PCIe设备对应的N个插槽的信息;
根据所述N个标识信息以及所述N个插槽的信息生成N个热插拔中断信息;
根据所述N个热插拔中断信息中的每一个生成一个所述第四通知报文,得到N个所述第四通知报文。
11.一种主机控制器,其特征在于,应用于远程总线和接口标准PCIe系统,所述远程PCIe系统包括主机、所述主机控制器、PCIe设备以及用户设备控制器,包括:
生成单元,用于生成第一通知报文,所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔;所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
发送单元,用于将所述生成单元生成的所述第一通知报文发送给所述主机,以便所述主机根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;
接收单元,用于接收所述主机发送的第二通知报文;
所述发送单元还用于,向所述用户设备控制器发送所述第二通知报文,以便所述用户设备控制器指示用户插拔所述第一PCIe设备;所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
12.根据权利要求11所述的主机控制器,其特征在于,
所述生成单元具体用于,若需对所述第一PCIe设备进行热插,则接收所述用户设备控制器发送的所述第三通知报文,根据所述第三通知报文生成所述第一通知报文;所述第三通知报文是所述用户设备控制器检测到热插拔被触发后由所述用户设备控制器生成的,所述第三通知报文携带所述热插拔中断信息;
或,检测到热插拔被触发,则生成所述第一通知报文。
13.根据权利要求12所述的主机控制器,其特征在于,所述生成单元还用于,若需对所述第一PCIe设备进行热拔,在检测到与所述用户设备控制器间的网络中断时,生成所述第一通知报文。
14.一种主机,其特征在于,应用于远程总线和接口标准PCIe系统,所述远程PCIe系统包括所述主机、主机控制器、PCIe设备以及用户设备控制器,包括:
接收单元,用于接收所述主机控制器发送的第一通知报文;所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔,所述主机与所述主机控制器连接,所述第一PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
热插拔操作单元,用于根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;
生成单元,用于生成第二通知报文,所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成;
发送单元,用于向所述主机控制器发送所述第二通知报文。
15.根据权利要求14所述的主机,其特征在于,所述热插拔操作单元具体用于,获取所述第一PCIe设备的标识信息以及所述第一PCIe设备对应的插槽信息;确定所述插槽信息对应的第一插槽;关闭所述第一插槽与所述第一PCIe设备间的连接,并将所述第一插槽下电。
16.根据权利要求14所述的主机,其特征在于,所述热插拔操作单元具体用于,获取第一插槽的插槽信息;所述第一插槽为所述第一PCIe设备对应的插槽;
建立所述第二插槽与所述第一PCIe设备间的连接,并给所述第一插槽上电。
17.一种主机,其特征在于,包括:
监测单元,用于监测第一链路是否异常;所述第一链路为所述主机与PCIe桥设备间的链路,所述PCIe桥设备下挂至少一个PCIe设备;
热插拔操作单元,用于若所述监测单元监测到所述第一链路出现异常,则执行与所述至少一个PCIe设备相应的热插拔操作。
18.根据权利要求17所述的主机,其特征在于,所述热插拔操作单元具体用于,获取所述至少一个PCIe设备中每一个PCIe设备的标识信息以及所述每一个PCIe设备对应的插槽信息;
关闭所述每一个PCIe设备与对应的插槽与间的连接,并将所述每一个PCIe设备对应的插槽下电。
19.一种第一PCIe桥设备,其特征在于,包括:
监测单元,用于监测第二链路是否异常;所述第二链路为所述第一PCIe桥设备与第二PCIe桥设备间的链路,所述第一PCIe桥设备与主机连接,所述第二PCIe桥设备下挂N个PCIe设备;所述N为大于等于1的整数;
生成单元,用于在所述监测单元监测到所述第二链路出现异常后,生成N个第四通知报文,所述N个第四通知报文用于指示所述主机执行与所述N个PCIe设备相应的热插拔操作。
20.根据权利要求19所述的第一PCIe桥设备,其特征在于,所述生成单元具体用于,根据预存储的PCIe拓扑结构,确定所述N个PCIe设备的N个标识信息,以及所述N个PCIe设备对应的N个插槽的信息;
根据所述N个标识信息以及所述N个插槽的信息生成N个热插拔中断信息;
根据所述N个热插拔中断信息中的每一个生成一个所述第四通知报文,得到N个所述第四通知报文。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610029365.6A CN105701051B (zh) | 2016-01-15 | 2016-01-15 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
PCT/CN2016/098743 WO2017121141A1 (zh) | 2016-01-15 | 2016-09-12 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
EP16884695.4A EP3309688A4 (en) | 2016-01-15 | 2016-09-12 | Hot plug method, host controller, host and pcie bridge device |
US15/859,758 US10423560B2 (en) | 2016-01-15 | 2018-01-02 | Hot plug method, host controller, host, and PCIE bridge device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610029365.6A CN105701051B (zh) | 2016-01-15 | 2016-01-15 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105701051A true CN105701051A (zh) | 2016-06-22 |
CN105701051B CN105701051B (zh) | 2019-10-15 |
Family
ID=56227538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610029365.6A Active CN105701051B (zh) | 2016-01-15 | 2016-01-15 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10423560B2 (zh) |
EP (1) | EP3309688A4 (zh) |
CN (1) | CN105701051B (zh) |
WO (1) | WO2017121141A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330562A (zh) * | 2016-08-30 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种解决交换机在热插拔过程中死机问题的系统及方法 |
CN106951384A (zh) * | 2017-03-09 | 2017-07-14 | 凌华科技(中国)有限公司 | 一种基于PCIe总线的DPDK设备热插拔方法 |
WO2017121141A1 (zh) * | 2016-01-15 | 2017-07-20 | 华为技术有限公司 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
CN107506323A (zh) * | 2017-07-25 | 2017-12-22 | 华为技术有限公司 | 一种热插拔处理方法及装置 |
CN111371582A (zh) * | 2018-12-26 | 2020-07-03 | 大唐移动通信设备有限公司 | 一种pcie链路故障的处理方法及装置 |
CN111881074A (zh) * | 2019-05-02 | 2020-11-03 | 纬创资通股份有限公司 | 电子系统、主机端装置及控制方法 |
CN113190487A (zh) * | 2017-09-15 | 2021-07-30 | 华为技术有限公司 | PCIe设备热拔方法及装置 |
CN114301854A (zh) * | 2021-02-05 | 2022-04-08 | 井芯微电子技术(天津)有限公司 | 一种PCIe交换设备 |
CN116909639A (zh) * | 2023-09-13 | 2023-10-20 | 珠海星云智联科技有限公司 | 一种挂载系统、方法、集群以及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527719B (zh) * | 2020-12-04 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种基于PCIe链路的JBOF连接方法、装置及系统 |
CN114691574B (zh) * | 2021-04-15 | 2023-05-09 | 澜起电子科技(上海)有限公司 | 热插拔控制方法、装置、重定时器、扩展卡及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110072182A1 (en) * | 2008-05-28 | 2011-03-24 | Jun Suzuki | I/o connection system, method and program |
CN102117259A (zh) * | 2009-12-31 | 2011-07-06 | 成都市华为赛门铁克科技有限公司 | 地址空间资源分配处理方法及装置 |
CN102662903A (zh) * | 2012-03-31 | 2012-09-12 | 浪潮电子信息产业股份有限公司 | 一种通过cpld或fpga实现pcie设备热插拔的方法 |
US8843688B2 (en) * | 2012-09-11 | 2014-09-23 | International Business Machines Corporation | Concurrent repair of PCIE switch units in a tightly-coupled, multi-switch, multi-adapter, multi-host distributed system |
CN105205021A (zh) * | 2015-09-11 | 2015-12-30 | 华为技术有限公司 | 断开PCIe设备与主机之间的链接的方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6968464B2 (en) * | 2002-01-10 | 2005-11-22 | National Instruments Corporation | System and method for reconfiguring a system coupled to a host computer through a split bridge |
CN1323362C (zh) * | 2005-09-21 | 2007-06-27 | 杭州华为三康技术有限公司 | 网络设备及其外围器件互连资源的分配方法 |
US7447822B2 (en) * | 2005-12-12 | 2008-11-04 | Inventec Corporation | Hot-plug control system and method |
JP4810349B2 (ja) * | 2006-08-11 | 2011-11-09 | 日本電気株式会社 | I/o装置及び方法 |
US7734859B2 (en) * | 2007-04-20 | 2010-06-08 | Nuon, Inc | Virtualization of a host computer's native I/O system architecture via the internet and LANs |
US8838865B2 (en) * | 2008-10-10 | 2014-09-16 | Nuon, Inc. | Hot plug ad hoc computer resource allocation |
US8443126B2 (en) * | 2010-09-22 | 2013-05-14 | Wilocity, Ltd. | Hot plug process in a distributed interconnect bus |
US9135200B2 (en) * | 2013-06-28 | 2015-09-15 | Futurewei Technologies, Inc. | System and method for extended peripheral component interconnect express fabrics |
CN105701051B (zh) * | 2016-01-15 | 2019-10-15 | 华为技术有限公司 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
-
2016
- 2016-01-15 CN CN201610029365.6A patent/CN105701051B/zh active Active
- 2016-09-12 EP EP16884695.4A patent/EP3309688A4/en not_active Ceased
- 2016-09-12 WO PCT/CN2016/098743 patent/WO2017121141A1/zh active Application Filing
-
2018
- 2018-01-02 US US15/859,758 patent/US10423560B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110072182A1 (en) * | 2008-05-28 | 2011-03-24 | Jun Suzuki | I/o connection system, method and program |
CN102117259A (zh) * | 2009-12-31 | 2011-07-06 | 成都市华为赛门铁克科技有限公司 | 地址空间资源分配处理方法及装置 |
CN102662903A (zh) * | 2012-03-31 | 2012-09-12 | 浪潮电子信息产业股份有限公司 | 一种通过cpld或fpga实现pcie设备热插拔的方法 |
US8843688B2 (en) * | 2012-09-11 | 2014-09-23 | International Business Machines Corporation | Concurrent repair of PCIE switch units in a tightly-coupled, multi-switch, multi-adapter, multi-host distributed system |
CN105205021A (zh) * | 2015-09-11 | 2015-12-30 | 华为技术有限公司 | 断开PCIe设备与主机之间的链接的方法和装置 |
Non-Patent Citations (2)
Title |
---|
PCI-SIG: "《PCI Express Base Specification Revision 4.0 Version 3.0》", 19 February 2014 * |
黄亮: ""PCIe外部连接:交换机、传输距离和存储应用"", 《HTTP://STORAGE.CHINABYTE.COM/0/12309500.HTML》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017121141A1 (zh) * | 2016-01-15 | 2017-07-20 | 华为技术有限公司 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
US10423560B2 (en) | 2016-01-15 | 2019-09-24 | Huawei Technologies Co., Ltd. | Hot plug method, host controller, host, and PCIE bridge device |
CN106330562A (zh) * | 2016-08-30 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种解决交换机在热插拔过程中死机问题的系统及方法 |
CN106951384A (zh) * | 2017-03-09 | 2017-07-14 | 凌华科技(中国)有限公司 | 一种基于PCIe总线的DPDK设备热插拔方法 |
CN107506323A (zh) * | 2017-07-25 | 2017-12-22 | 华为技术有限公司 | 一种热插拔处理方法及装置 |
CN107506323B (zh) * | 2017-07-25 | 2020-03-20 | 华为技术有限公司 | 一种热插拔处理方法及装置 |
CN113190487B (zh) * | 2017-09-15 | 2024-03-15 | 超聚变数字技术有限公司 | PCIe设备热拔方法及装置 |
CN113190487A (zh) * | 2017-09-15 | 2021-07-30 | 华为技术有限公司 | PCIe设备热拔方法及装置 |
CN111371582B (zh) * | 2018-12-26 | 2021-04-16 | 大唐移动通信设备有限公司 | 一种pcie链路故障的处理方法及装置 |
CN111371582A (zh) * | 2018-12-26 | 2020-07-03 | 大唐移动通信设备有限公司 | 一种pcie链路故障的处理方法及装置 |
CN111881074A (zh) * | 2019-05-02 | 2020-11-03 | 纬创资通股份有限公司 | 电子系统、主机端装置及控制方法 |
CN111881074B (zh) * | 2019-05-02 | 2021-11-09 | 纬创资通股份有限公司 | 电子系统、主机端装置及控制方法 |
CN114301854A (zh) * | 2021-02-05 | 2022-04-08 | 井芯微电子技术(天津)有限公司 | 一种PCIe交换设备 |
CN114301854B (zh) * | 2021-02-05 | 2024-02-23 | 井芯微电子技术(天津)有限公司 | 一种PCIe交换设备 |
CN116909639A (zh) * | 2023-09-13 | 2023-10-20 | 珠海星云智联科技有限公司 | 一种挂载系统、方法、集群以及存储介质 |
CN116909639B (zh) * | 2023-09-13 | 2023-12-12 | 珠海星云智联科技有限公司 | 一种挂载系统、方法、集群以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105701051B (zh) | 2019-10-15 |
US10423560B2 (en) | 2019-09-24 |
WO2017121141A1 (zh) | 2017-07-20 |
US20180121383A1 (en) | 2018-05-03 |
EP3309688A4 (en) | 2018-09-05 |
EP3309688A1 (en) | 2018-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105701051A (zh) | 一种热插拔方法、主机控制器、主机及PCIe桥设备 | |
WO2021139828A1 (zh) | Bwp指示和转换方法、基站和用户、电子设备及介质 | |
US9696777B2 (en) | Computer port control | |
CN103401726A (zh) | 网络路径探测方法及装置、系统 | |
CN104579774B (zh) | 主控设备的切换方法和装置 | |
US10275373B2 (en) | Hot swappable device and method | |
CN102984500A (zh) | 一种实现多种视频监控设备兼容的方法、装置和系统 | |
WO2015096548A1 (zh) | 基于优先级的流控pfc方法及发送设备、接收设备 | |
JP6595112B2 (ja) | データ送信方法及び装置並びに端末 | |
CN110069288B (zh) | Usb设备共享方法、装置及系统 | |
CN103858388A (zh) | 环路检测方法及装置 | |
CN103106113A (zh) | 一种中断事件处理方法和处理设备 | |
CN103577362B (zh) | 改善数据传输的方法及其相关计算机系统 | |
CN104581847A (zh) | 一种无线设备的配置方法和装置 | |
CN109565902A (zh) | 一种掉电处理、获取连接关系的方法及设备 | |
US9026713B2 (en) | Expander for loop architectures | |
CN104243020A (zh) | 检测光模块匹配的方法和装置 | |
CN104394012A (zh) | 集群路由器、mpu及其故障的确定方法、感知控制器 | |
WO2019119740A1 (zh) | 家用电器的通信系统、通信方法以及家用电器 | |
CN108055185B (zh) | 家用电器的通信系统、通信方法以及家用电器 | |
US9814046B2 (en) | Method for controlling long range wide area network apparatus | |
CN112214437B (zh) | 一种存储设备及通信方法、装置、计算机可读存储介质 | |
CN105812172B (zh) | 用户终端及其hsic从设备故障处理方法及装置 | |
JP2005045566A (ja) | データ通信システム、局側装置、加入者側装置、冗長構成切替判断方法、動作制御方法及びプログラム | |
CN102739316B (zh) | 一种传输模式的实现方法及装置 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211222 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |