CN101930419B - 热插拔方法、热插拔控制装置和热插拔卡系统 - Google Patents

热插拔方法、热插拔控制装置和热插拔卡系统 Download PDF

Info

Publication number
CN101930419B
CN101930419B CN2010102736810A CN201010273681A CN101930419B CN 101930419 B CN101930419 B CN 101930419B CN 2010102736810 A CN2010102736810 A CN 2010102736810A CN 201010273681 A CN201010273681 A CN 201010273681A CN 101930419 B CN101930419 B CN 101930419B
Authority
CN
China
Prior art keywords
card
endpoint device
pcie
pcie endpoint
hot plug
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2010102736810A
Other languages
English (en)
Other versions
CN101930419A (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec 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 Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN2010102736810A priority Critical patent/CN101930419B/zh
Publication of CN101930419A publication Critical patent/CN101930419A/zh
Application granted granted Critical
Publication of CN101930419B publication Critical patent/CN101930419B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种热插拔方法、热插拔控制装置和热插拔卡系统。该方法包括:接收热插拔卡发送的卡移除信号,所述热插拔卡包括至少二个PCIE端点设备;根据所述卡移除信号生成与PCIE端点设备对应的卡移除请求;将与PCIE端点设备对应的卡移除请求发送给主控板的PCIE交换器,并由所述PCIE交换器对所述PCIE端点设备进行下电操作;向所述热插拔卡发送电源关闭指令,以关闭所述热插拔卡的电源。本发明实施例的技术方案可以实现对热插拔卡的PCIE端点设备的安全热插拔操作,可以有效提高热插拔卡中PCIE端点设备的数量和密度,即使热插拔卡可以设置多个接口,从而有效提高了热插拔卡的接口数量。

Description

热插拔方法、热插拔控制装置和热插拔卡系统
技术领域
本发明涉及通信技术领域,特别涉及一种热插拔方法、热插拔控制装置和热插拔卡系统。 
背景技术
快速PCI(PCI Express,以下简称:PCIE)总线是连接计算机系统的主控板与外部设备的新一代总线。许多高可用性的计算机系统通常都采用PCIE总线。为保证采用PCIE总线的计算机系统的可靠性,需要一套可快速修复计算机系统中通过PCIE总线与主控板连接的外部设备的方法,而热插拔技术正是可以实现快速修复外部设备的解决方案。 
外部设备通常是通过主机总线适配器(Host Bus Adapter,以下简称:HBA)卡与主控板实现热插拔的,HBA卡的热插拔包括卡移除和卡插入。对于卡移除过程,HBA卡向主控板中的PCIE交换器发送卡移除请求,PCIE交换器对HBA卡中的PCIE端点设备执行下电操作,从而完成卡移除过程;对于卡插入过程,HBA卡向主控板中的PCIE交换器发送卡插入请求,PCIE交换器对HBA卡中的PCIE端点设备执行上电操作,从而完成卡插入过程。 
随着与HBA卡连接的外部设备的处理速度与带宽需求的不断提升,对HBA卡的接口速率和接口数量也提出了更高的要求。当需要将HBA卡从主控板移除或者需要将HBA卡插入主控板时,PCIE交换器接收到卡移除请求或者卡插入请求后,会根据卡移除请求对HBA卡中的PCIE端点设备进行下电操作或者根据卡插入请求对HBA卡中的PCIE端点设备进行上电操作,从而完成了对HBA卡的热插拔操作。 
但是,若PCIE端点设备中设置有多个PCIE端点设备,当需要将HBA 卡移除或者插入主控板时,PCIE交换器接收到卡移除请求或者卡插入请求后,按照现有技术的方法,PCIE交换器仅会根据卡移除请求对HBA卡中的一个PCIE端点设备进行下电操作,或者根据卡插入请求对HBA卡中的一个PCIE端点设备进行上电操作,即完成了对HBA卡的热插拔操作。热插拔过程中,由于PCIE交换器并未对HBA卡中的其它PCIE端点设备进行上下电操作,因此,对HBA卡中的其它PCIE端点设备进行的热插拔操作属于不安全操作,会导致计算机系统的崩溃。因此现有技术中的热插拔方法造成一个HBA卡中仅能设置一个PCIE端点设备,即仅能设置一个接口,从而无法满足提高HBA卡接口数量的要求。 
发明内容
本发明实施例提供一种热插拔方法、热插拔控制装置和热插拔卡系统,从而满足提高HBA卡的接口数量的要求。 
本发明实施例提供了一种热插拔方法,包括: 
接收热插拔卡发送的卡移除信号或卡插入信号,所述热插拔卡包括至少二个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端点设备时,仍然能够对热插拔卡执行安全拔出或插入操作,使得增加热插拔卡的接口数量成为可能,有效提高了HBA卡的接口数量。 
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 
图1为本发明实施例一提供的一种热插拔方法的流程图; 
图2为本发明实施例二提供的一种热插拔方法的流程图; 
图3为本发明实施例三提供的一种热插拔方法的流程图; 
图4为本发明实施例四提供的一种热插拔方法的流程图; 
图5为本发明实施例五提供的一种热插拔方法的流程图; 
图6为本发明实施例六提供的一种热插拔方法的流程图; 
图7为本发明实施例七提供的一种热插拔控制装置的结构示意图; 
图8为本发明实施例八提供的一种热插拔控制装置的结构示意图; 
图9为本发明实施例九提供的一种热插拔卡系统的结构示意图。 
具体实施方式
为了使本发明实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。 
图1为本发明实施例一提供的一种热插拔方法的流程图,如图1所示,该方法包括: 
步骤101、接收热插拔卡发送的卡移除信号,该热插拔卡包括至少二个PCIE端点设备; 
本实施例中,该热插拔卡可以为HBA卡。本实施例中各步骤可以由热插拔控制装置执行。 
步骤102、根据卡移除信号,生成与PCIE端点设备对应的卡移除请求; 
本实施例中,可根据卡移除信号和与PCIE端点设备对应的虚拟插槽的 状态信息,生成与PCIE端点设备对应的卡移除请求,与PCIE端点设备对应的卡移除请求携带与PCIE端点设备对应的虚拟插槽的状态信息。 
本实施例中,热插拔控制装置可根据获知的与热插拔卡对应的插槽的状态信息和热插拔卡中PCIE端点设备的数量,生成与PCIE端点设备对应的虚拟插槽的状态信息。具体地,当热插拔卡每次插入热插拔控制装置或者热插拔卡每次上电,热插拔控制装置会获知与热插拔卡对应的插槽的状态信息。每个热插拔卡对应于一个插槽,而热插拔卡中包括至少二个PCIE端点设备,因此热插拔卡中的PCIE端点设备对应于一个插槽。热插拔控制装置根据热插拔卡中PCIE端点设备的数量为每个PCIE端点设备设置与PCIE端点设备对应的虚拟插槽,并根据热插拔卡对应的插槽的状态信息生成与PCIE端点设备对应的虚拟插槽的状态信息。其中,每个PCIE端点设备对应于一个虚拟插槽,与PCIE端点设备对应的虚拟插槽的状态信息可用于标识该PCIE端点设备。例如,插槽的状态信息可以包括实际槽位信息、在位信号,按钮信号和LED指示信号,而生成的与PCIE端点设备对应的虚拟插槽的状态信息可以包括虚拟槽位信息、在位信号,按钮信号和LED指示信号。其中,虚拟槽位信息不同于实际槽位信息,该虚拟槽位信息为虚拟插槽的槽位信息;而虚拟插槽的状态信息中的在位信号、按钮信号和LED指示信号可以为插槽的状态信息中的在位信号、按钮信号和LED指示信号。进一步地,插槽的状态信息和生成的虚拟插槽的状态信息均还可以包括其它信息,在此不一一列举。 
步骤103、将与PCIE端点设备对应的卡移除请求发送给PCIE交换器,以使PCIE交换器对PCIE端点设备进行下电操作; 
本实施例中,需要将与每个PCIE端点设备对应的卡移除请求发送给PCIE交换器,以使PCIE交换器对每个PCIE端点设备进行下电操作。 
本实施例中,PCIE交换器接收到与PCIE端点设备对应的卡移除请求可携带与该PCIE端点设备对应的虚拟插槽的状态信息。PCIE交换器在接收到与PCIE端点设备对应的卡移除请求后,可根据与PCIE端点设备对应的卡移 除请求中携带的与PCIE端点设备对应的虚拟插槽的状态信息获知发送卡移除请求的为该PCIE端点设备,并对该PCIE端点设备进行下电操作。 
具体地,PCIE端点设备可从热插拔控制装置中获取与PCIE端点设备对应的虚拟插槽的状态信息。根据与PCIE端点设备对应的卡移除请求中携带的与PCIE端点设备对应的虚拟插槽的状态信息获知发送卡移除请求的为该PCIE端点设备具体包括:将获取的与PCIE端点设备对应的虚拟插槽的状态信息与卡移除请求中携带的与PCI E端点设备对应的虚拟插槽的状态信息进行匹配,当匹配成功时识别出发送卡移除请求的为该PCIE端点设备。 
步骤104、向热插拔卡发送电源关闭指令,以关闭该热插拔卡的电源。 
本实施例中,根据接收到的热插拔卡的卡移除信号生成每个PCIE端点设备的卡移除请求,由PCIE交换器根据PCIE端点设备的卡移除请求完成对每个PCIE端点设备的下电操作,并在PCIE交换器完成对每个PCIE端点设备的下电操作之后关闭热插拔卡的电源,此时当将热插拔卡拔出时对该热插拔卡中所有的PCIE端点设备执行的均是安全拔出操作,通过采用本发明实施例中的技术方案,当热插拔卡包括多个PCIE端点设备时,仍然能够对热插拔卡执行安全拔出或插入操作,使得增加热插拔卡的接口数量成为可能,有效提高了HBA卡接口数量的。 
图2为本发明实施例二提供的一种热插拔方法的流程图,如图2所示,该方法包括: 
步骤201、热插拔控制装置接收热插拔卡发送的卡移除信号,该热插拔卡包括第一PCIE端点设备和第二PCIE端点设备; 
本实施例中,以热插拔卡包括二个PCIE端点设备为例进行详细描述,但本发明实施例并不限于热插拔卡包括二个PCIE端点设备。 
步骤202、热插拔控制装置根据卡移除信号,生成与第一PCIE端点设备对应的卡移除请求和与第二PCI E端点设备对应的卡移除请求; 
具体地,本实施例中,热插拔控制装置可根据卡移除信号和与第一PCIE 端点设备对应的虚拟插槽的状态信息,生成与第一PCI E端点设备对应的卡移除请求,该与第一PCIE端点设备对应的卡移除请求中携带与第一PCIE端点设备对应的虚拟插槽的状态信息;以及可根据卡移除信号和与第二PCIE端点设备对应的虚拟插槽的状态信息,生成与第二PCIE端点设备对应的卡移除请求,该与第二PCIE端点设备对应的卡移除请求中携带与第二PCIE端点设备对应的虚拟插槽的状态信息。 
以下步骤,热插拔控制装置依次将与PCIE端点设备对应的卡移除请求发送给PCIE交换器,例如:先将与第一PCIE端点设备对应的卡移除请求发送给PCIE交换器,再将与第二PCIE端点设备对应的卡移除请求发送给PCIE交换器,具体操作如下: 
步骤203、热插拔控制装置将与第一PCIE端点设备对应的卡移除请求发送给PCIE交换器; 
具体地,热插拔控制装置向PCIE交换器的根联合体发送与第一PCIE端点设备对应的卡移除请求。 
步骤204、PCIE交换器根据与第一PCIE端点设备对应的卡移除请求中携带的与第一PCIE端点设备对应的虚拟插槽的状态信息获知发送卡移除请求的为第一PCIE端点设备; 
本实施例中,PCIE交换器可将从热插拔控制装置中获取的与第一PCIE端点设备对应的虚拟插槽的状态信息与卡移除请求中携带的与第一PCIE端点设备对应的虚拟插槽的状态信息进行匹配,当匹配成功时识别出卡移除请求对应第一PCIE端点设备。 
具体地,PCIE交换器可调用热插拔系统驱动程序从热插拔控制装置中读取第一PCIE端点设备的虚拟插槽的状态信息。 
步骤205、PCIE交换器检测与第一PCIE端点设备对应的卡移除请求是否有效,如果是则执行步骤206,如果否则执行步骤213; 
步骤206、PCIE交换器对第一PCIE端点设备进行下电操作; 
步骤206具体包括: 
步骤2061、PCIE交换器停止对第一PCIE端点设备执行新操作; 
其中,执行新操作可以为:发送新的访问请求、继续执行未完成的访问请求或者发送生成的中断等。具体地,PCIE交换器停止对第一PCIE端点设备执行新操作可以通过停止第一PCIE端点设备的驱动程序来实现。 
步骤2062、PCIE交换器断开第一PCIE端点设备的端口与PCIE交换器的端口之间的链路; 
断开第一PCIE端点设备的端口与PCIE交换器的端口之间的链路,会引起链路两端的第一PCIE端点设备的端口和PCIE交换器的端口被禁用。 
其中,PCIE交换器的端口可以为根端口。 
步骤2063、热插拔控制装置接收PCIE交换器发送的第一PCIE端点设备的PCIE参考时钟关闭命令,并将该第一PCIE端点设备的PCIE参考时钟关闭命令发送给第一PCIE端点设备的时钟驱动器; 
步骤2064、第一PCIE端点设备的时钟驱动器关闭PCIE参考时钟; 
步骤2065、热插拔控制装置接收PCIE交换器发送的第一PCIE端点设备的电源关闭命令; 
步骤2066、热插拔控制装置向PCIE交换器返回第一PCIE端点设备的电源关闭响应; 
本实施例中,由于热插拔卡包括二个PCIE端点设备,因此热插拔控制装置在接收到PCIE交换器发送的第一PCIE端点设备的电源关闭命令之后,并不将该第一PCIE端点设备的电源关闭命令发送给热插拔卡,而是直接向PCIE交换器返回第一PCIE端点设备的电源关闭响应,PCIE交换器在接收到第一PCIE端点设备的电源关闭响应后认为该第一PCIE端点设备所在的热插拔卡的电源已关闭。 
步骤207、热插拔控制装置将与第二PCIE端点设备对应的卡移除请求发送给PCIE交换器; 
具体地,热插拔控制装置向PCIE交换器的根联合体发送与第二PCIE端点设备对应的卡移除请求。 
步骤208、PCIE交换器根据与第二PCIE端点设备对应的卡移除请求中携带的与第二PCIE端点设备对应的虚拟插槽的状态信息获知发送卡移除请求的为第二PCIE端点设备; 
本实施例中,PCIE交换器可将从热插拔控制装置中获取的与第二PCIE端点设备对应的虚拟插槽的状态信息与卡移除请求中携带的与第二PCIE端点设备对应的虚拟插槽的状态信息进行匹配,当匹配成功时识别出卡移除请求对应第二PCIE端点设备。 
具体地,PCIE交换器可调用热插拔系统驱动程序从热插拔控制器中读取第二PCIE端点设备的虚拟插槽的状态信息。 
步骤209、PCIE交换器检测与第二PCIE端点设备对应的卡移除请求是否有效,如果是则执行步骤210,如果否则执行步骤213; 
步骤210、PCIE交换器对第二PCIE端点设备进行下电操作; 
步骤210具体包括: 
步骤2101、PCIE交换器停止对第二PCIE端点设备执行新操作; 
其中,执行新操作可以为:发送新的访问请求、继续执行未完成的访问请求或者发送生成的中断等。具体地,PCIE交换器停止对第二PCIE端点设备的访问操作可以通过停止第二PCIE端点设备的驱动程序来实现。 
步骤2102、PCIE交换器断开第二PCIE端点设备的端口与PCIE交换器的端口之间的链路; 
断开第二PCIE端点设备的端口与PCIE交换器的端口之间的链路,会引起链路两端的第二PCIE端点设备的端口和PCIE交换器的端口被禁用。 
其中,PCI E交换器的端口可以为根端口。 
步骤2103、热插拔控制装置接收PCIE交换器发送的第二PCIE端点设备的PCIE参考时钟关闭命令,并将该第二PCIE端点设备的PCIE参考时钟 关闭命令发送给第二PCIE端点设备的时钟驱动器; 
步骤2104、第二PCIE端点设备的时钟驱动器关闭PCIE参考时钟; 
步骤2105、热插拔控制装置接收PCIE交换器发送的第二PCIE端点设备的电源关闭命令; 
步骤2106、热插拔控制装置向PCIE交换器返回第二PCIE端点设备的电源关闭响应; 
本实施例中,热插拔控制装置在接收到PCIE交换器发送的第二PCIE端点设备的电源关闭命令之后,并不将该第二PCIE端点设备的电源关闭命令发送给热插拔卡,而是直接向PCIE交换器返回第二PCIE端点设备的电源关闭响应,PCIE交换器在接收到第二PCIE端点设备的电源关闭响应后认为该第二PCIE端点设备所在的热插拔卡的电源已关闭。 
步骤211、热插拔控制装置向热插拔卡发送电源关闭指令; 
本实施例中,由于热插拔卡仅包括二个PCIE端点设备,因此在PCIE交换器完成对二个PCIE端点设备进行的下电操作之后,热插拔控制装置即可以向热插拔卡发送电源关闭指令,以关闭热插拔卡的电源。 
步骤212、热插拔卡接收到电源关闭指令后关闭电源,流程结束; 
进一步地,本步骤中,热插拔卡在关闭电源之后还会关闭电源指示灯,以提示用户可以安全的移除该热插拔卡。 
步骤213、PCIE交换器拒绝执行卡移除请求。 
本实施例中该方法还可以为:热插拔控制装置同时将与第一PCIE端点设备对应的卡移除请求和与第二PCIE端点设备对应的卡移除请求发送给PCIE交换器;并执行步骤204至步骤206以及步骤208至步骤210;再执行步骤211至步骤212。 
图3为本发明实施例三提供的一种热插拔方法的流程图,如图3所示,该方法包括: 
步骤301至步骤304与实施例二中的步骤201至步骤204相同,此处不 再赘述。 
步骤305、热插拔控制装置接收PCIE交换器发送的电源指示器闪烁指令,并将该电源指示器闪烁指令发送给热插拔卡的电源指示器,电源指示器在接收到该电源指示器闪烁指令后开始闪烁; 
在电源指示器开始闪烁之后的规定时间内,如果热插拔卡向热插拔控制装置发送中断卡移除操作信号,则热插拔控制装置会向PCIE交换设备发送与第一PCIE端点设备对应的中断卡移除请求,从而停止卡移除操作;如果热插拔卡未向热插拔控制装置发送任何中断卡移除操作信号,则继续执行步骤306。 
步骤306、PCIE交换器检测与第一PCIE端点设备对应的卡移除请求是否有效,如果是则执行步骤307,如果否则执行步骤317; 
在PCIE交换设备检测与第一PCIE端点设备对应的卡移除请求是否有效期间,电源指示器会一直呈闪烁状态。 
步骤307、热插拔控制装置接收PCIE交换器发送的电源指示器停止闪烁指令,并将该电源指示器停止闪烁指令发送给热插拔卡的电源指示器,电源指示器在接收到该电源指示器停止闪烁指令后停止闪烁; 
步骤308至步骤310与实施例二中步骤206至步骤208相同,此处不再赘述。 
步骤311、热插拔控制装置接收PCIE交换器发送的电源指示器闪烁指令,并将该电源指示器闪烁指令发送给热插拔卡的电源指示器,电源指示器在接收到该电源指示器闪烁指令后开始闪烁; 
因PCIE交换器已经完成了对第一PCIE端点设备的下电操作,因此在电源指示器开始闪烁之后,不允许热插拔卡向热插拔控制装置发送任何中断卡移除操作信号。 
步骤312、PCIE交换器检测与第二PCIE端点设备对应的卡移除请求是否有效,如果是则执行步骤313,如果否则执行步骤317; 
在PCIE交换设备检测与第二PCIE端点设备对应的卡移除请求是否有效期间,电源指示器会一直呈闪烁状态。 
步骤313、热插拔控制装置接收PCIE交换器发送的电源指示器停止闪烁指令,并将该电源指示器停止闪烁指令发送给热插拔卡的电源指示器,电源指示器在接收到该电源指示器停止闪烁指令后停止闪烁; 
步骤314至步骤316与实施例二中步骤210至步骤212相同,此处不再赘述。 
步骤317、PCIE交换器拒绝执行卡移除请求。 
上述实施例三和实施例四中,根据接收到的热插拔卡的卡移除信号生成每个PCIE端点设备的卡移除请求,由PCIE交换器根据每个PCIE端点设备的卡移除请求依次完成对每个PCIE端点设备的下电操作,并在PCIE交换器完成对每个PCI E端点设备的下电操作之后关闭热插拔卡的电源,此时当将热插拔卡拔出时对该热插拔卡中所有的PCIE端点设备执行的均是安全拔出操作,通过采用本发明实施例中的技术方案,当热插拔卡包括多个PCIE端点设备时,仍然能够对热插拔卡执行安全拔出或插入操作,使得增加热插拔卡的接口数量成为可能,有效提高了HBA卡接口数量的。。 
图4为本发明实施例四提供的一种热插拔方法的流程图,如图4所示,该方法包括: 
步骤401、接收热插拔卡发送的卡插入信号,该热插拔卡包括至少二个PCIE端点设备; 
本实施例中,该热插拔卡可以为HBA卡。本实施例中各步骤可以由热插拔控制装置执行 
步骤402、根据卡插入信号,生成与PCIE端点设备对应的卡插入请求; 
本实施例中,可根据卡插入信号和与PCIE端点设备对应的虚拟插槽的状态信息,生成与PCIE端点设备对应的卡插入请求,与PCIE端点设备对应的卡插入请求携带与PCIE端点设备对应的虚拟插槽的状态信息。 
步骤403、将与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端点设备。 
步骤404、向热插拔卡发送电源开启指令,以开启该热插拔卡的电源。 
本实施例中,根据接收到的热插拔卡的卡插入信号生成每个PCIE端点设备的卡插入请求,由PCIE交换器根据每个PCIE端点设备的卡插入请求完成对每个PCIE端点设备的上电操作,并在PCIE交换器完成对每个PCIE端点设备的上电操作之后开启热插拔卡的电源,此时对该热插拔卡中所有的PCIE端点设备执行的均是安全插入操作,通过采用本发明实施例中的技术方案,当热插拔卡包括多个PCIE端点设备时,仍然能够对热插拔卡执行安全拔出或插入操作,使得增加热插拔卡的接口数量成为可能,有效提高了HBA卡接口数量。 
图5为本发明实施例五提供的一种热插拔方法的流程图,如图5所示,该方法包括: 
步骤501、热插拔控制装置接收热插拔卡发送的卡插入信号,该热插拔卡包括第一PCIE端点设备和第二PCIE端点设备; 
本实施例中,以热插拔卡包括二个PCIE端点设备为例进行详细描述,但本发明实施例并不限于热插拔卡包括二个PCIE端点设备。 
步骤502、热插拔控制装置根据卡插入信号,生成与第一PCIE端点设备对应的卡插入请求和与第二PCIE端点设备对应的卡插入请求; 
具体地,本实施例中,热插拔控制装置可根据卡插入信号和与第一PCIE端点设备对应的虚拟插槽的状态信息,生成与第一PCIE端点设备对应的卡插入请求,该与第一PCIE端点设备对应的卡插入请求中携带与第一PCIE端点设备对应的虚拟插槽的状态信息;以及可根据卡插入信号和与第二PCIE端点设备对应的虚拟插槽的状态信息,生成与第二PCIE端点设备对应的卡插入请求,该与第二PCIE端点设备对应的卡插入请求中携带与第二PCIE端点设备对应的虚拟插槽的状态信息。 
以下步骤,热插拔控制装置依次将与PCIE端点设备对应的卡插入请求发送给PCIE交换器,例如:先将与第一PCIE端点设备对应的卡插入请求发送给PCIE交换器,再将与第二PCIE端点设备对应的卡插入请求发送给PCIE交换器,具体操作如下: 
步骤503、热插拔控制装置将与第一PCI E端点设备对应的卡插入请求发送给PCIE交换器; 
具体地,热插拔控制装置向PCIE交换器的根联合体发送与第一PCIE端点设备对应的卡插入请求。 
步骤504、PCIE交换器根据与第一PCIE端点设备对应的卡插入请求中携带的与第一PCIE端点设备对应的虚拟插槽的状态信息获知发送卡插入请求的为第一PCIE端点设备; 
本实施例中,PCIE交换器可将从热插拔控制装置中获取的与第一PCIE端点设备对应的虚拟插槽的状态信息与卡插入请求中携带的与第一PCIE端 点设备对应的虚拟插槽的状态信息进行匹配,当匹配成功时识别出卡插入请求对应第一PCIE端点设备。 
具体地,PCIE交换器可调用热插拔系统驱动程序从热插拔控制器中读取第一PCIE端点设备的虚拟插槽的状态信息。 
步骤505、PCIE交换器检测与第一PCIE端点设备对应的卡插入请求是否有效,如果是则执行步骤506,如果否则执行步骤513; 
步骤506、PCIE交换器对第一PCIE端点设备进行上电操作; 
步骤506具体包括: 
步骤5061、PCIE交换器向热插拔控制装置发送第一PCIE端点设备的电源开启命令; 
步骤5062、热插拔控制装置向PCIE交换器返回第一PCIE端点设备的电源开启响应; 
本实施例中,由于热插拔卡包括二个PCIE端点设备,因此热插拔控制装置在接收到PCIE交换器发送的第一PCIE端点设备的电源开启命令之后,并不将该第一PCIE端点设备的电源开启命令发送给热插拔卡,而是直接向PCIE交换器返回第一PCIE端点设备的电源开启响应,PCIE交换器在接收到第一PCIE端点设备的电源开启响应后认为该第一PCIE端点设备所在的热插拔卡的电源已开启。 
步骤5063、热插拔控制装置接收PCIE交换器发送的第一PCIE端点设备的PCIE参考时钟开启命令,并将该第一PCIE端点设备的PCIE参考时钟开启命令发送给第一PCIE端点设备的时钟驱动器; 
步骤5064、第一PCIE端点设备的时钟驱动器开启PCIE参考时钟; 
步骤5065、PCIE交换器建立第一PCIE端点设备的端口与PCIE交换器的端口之间的链路; 
建立第一PCIE端点设备的端口与PCIE交换器的端口之间的链路之后,该链路两端的第一PCIE端点设备的端口和PCIE交换器的端口也被开启。 
其中,PCI E交换器的端口可以为根端口。 
步骤5066、PCIE交换器开启对第一PCIE端点设备的操作功能; 
其中,对第一PCIE端点设备的操作功能可以为:发送访问请求或者发送生成的中断等。具体地,PCIE交换器开启对第一PCIE端点设备的操作功能可以通过开启第一PCIE端点设备的驱动程序来实现。 
步骤507、热插拔控制装置将与第二PCIE端点设备对应的卡插入请求发送给PCIE交换器; 
具体地,热插拔控制装置向PCIE交换器的根联合体发送与第二PCIE端点设备对应的卡插入请求。 
步骤508、PCIE交换器根据与第二PCIE端点设备对应的卡插入请求中携带的第二PCIE端点设备对应的虚拟插槽的状态信息获知发送卡插入请求的为第二PCIE端点设备; 
本实施例中,PCIE交换器可将从热插拔控制装置中获取的与第二PCIE端点设备对应的虚拟插槽的状态信息与卡插入请求中携带的与第二PCIE端点设备对应的虚拟插槽的状态信息进行匹配,当匹配成功时识别出卡插入请求对应第二PCIE端点设备。 
具体地,PCIE交换器可调用热插拔系统驱动程序从热插拔控制器中读取第二PCIE端点设备的虚拟插槽的状态信息。 
步骤509、PCIE交换器检测与第二PCIE端点设备对应的卡插入请求是否有效,如果是则执行步骤510,如果否则执行步骤513; 
步骤510、PCIE交换器对第二PCIE端点设备进行下电操作; 
步骤510具体包括: 
步骤5101、PCIE交换器向热插拔控制装置发送第二PCIE端点设备的电源开启命令; 
步骤5102、热插拔控制装置向PCIE交换器返回第二PCIE端点设备的电源开启响应; 
本实施例中,由于热插拔卡包括二个PCIE端点设备,因此热插拔控制装置在接收到PCIE交换器发送的第二PCIE端点设备的电源开启命令之后,并不将该第二PCIE端点设备的电源开启命令发送给热插拔卡,而是直接向PCIE交换器返回第二PCIE端点设备的电源开启响应,PCIE交换器在接收到第二PCIE端点设备的电源开启响应后认为该第二PCIE端点设备所在的热插拔卡的电源已开启。 
步骤5103、热插拔控制装置接收PCIE交换器发送的第二PCIE端点设备的PCIE参考时钟开启命令,并将该第二PCIE端点设备的PCIE参考时钟开启命令发送给第二PCIE端点设备的时钟驱动器; 
步骤5104、第二PCIE端点设备的时钟驱动器开启PCIE参考时钟; 
步骤5105、PCIE交换器建立第二PCIE端点设备的端口与PCIE交换器的端口之间的链路; 
建立第二PCIE端点设备的端口与PCIE交换器的端口之间的链路之后,该链路两端的第二PCIE端点设备的端口和PCIE交换器的端口也被开启。 
其中,PCIE交换器的端口可以为根端口。 
步骤5106、PCIE交换器开启对第二PCIE端点设备的操作功能; 
其中,对第二PCIE端点设备的操作功能可以为:发送访问请求或者发送中断等。具体地,PCIE交换器开启对第二PCIE端点设备的操作功能可以通过开启第二PCIE端点设备的驱动程序来实现。 
步骤511、热插拔控制装置向热插拔卡发送电源开启指令; 
本实施例中,由于热插拔卡仅包括二个PCIE端点设备,因此在PCIE交换器完成对二个PCIE端点设备进行的上电操作之后,热插拔控制装置即可以向热插拔卡发送电源开启指令,以开启热插拔卡的电源。 
步骤512、热插拔卡接收到电源开启指令后开启电源,流程结束; 
进一步地,本步骤中,热插拔卡在开启电源之后还会开启电源指示灯,以提示用户可以安全的移除该热插拔卡。 
步骤513、PCIE交换器拒绝执行卡插入请求。 
本实施例中该方法还可以为:热插拔控制装置同时将与第一PCIE端点设备对应的卡插入请求和与第二PCIE端点设备对应的卡插入请求发送给PCIE交换器;并执行步骤504至步骤506以及步骤508至步骤510;再执行步骤511至步骤512。 
图6为本发明实施例六提供的一种热插拔方法的流程图,如图6所示,该方法包括: 
步骤601至步骤604与实施例二中的步骤501至步骤504相同,此处不再赘述。 
步骤605、热插拔控制装置接收PCIE交换器发送的电源指示器闪烁指令,并将该电源指示器闪烁指令发送给热插拔卡的电源指示器,电源指示器在接收到该电源指示器闪烁指令后开始闪烁; 
在电源指示器开始闪烁之后的规定时间内,如果热插拔卡向热插拔控制装置发送中断卡插入操作信号,则热插拔控制装置会向PCIE交换设备发送与第一PCIE端点设备对应的中断卡插入请求,从而停止卡插入操作;如果热插拔卡未向热插拔控制装置发送任何中断卡插入操作信号,则继续执行步骤606。 
步骤606、PCIE交换器检测与第一PCIE端点设备对应的卡插入请求是否有效,如果是则执行步骤607,如果否则执行步骤617; 
在PCIE交换设备检测与第一PCIE端点设备对应的卡插入请求是否有效期间,电源指示器会一直呈闪烁状态。 
步骤607、热插拔控制装置接收PCIE交换器发送的电源指示器停止闪烁指令,并将该电源指示器停止闪烁指令发送给热插拔卡的电源指示器,电源指示器在接收到该电源指示器停止闪烁指令后停止闪烁; 
步骤608至步骤610与实施例二中步骤506至步骤508相同,此处不再赘述。 
步骤611、热插拔控制装置接收PCIE交换器发送的电源指示器闪烁指令,并将该电源指示器闪烁指令发送给热插拔卡的电源指示器,电源指示器在接收到该电源指示器闪烁指令后开始闪烁; 
因PCI E交换器已经完成了对第一PCIE端点设备的上电操作,因此在电源指示器开始闪烁之后,不允许热插拔卡向热插拔控制装置发送任何中断卡插入操作信号。 
步骤612、PCIE交换器检测与第二PCIE端点设备对应的卡插入请求是否有效,如果是则执行步骤613,如果否则执行步骤617; 
在PCIE交换设备检测与第二PCIE端点设备对应的卡插入请求是否有效期间,电源指示器会一直呈闪烁状态。 
步骤613、热插拔控制装置接收PCIE交换器发送的电源指示器停止闪烁指令,并将该电源指示器停止闪烁指令发送给热插拔卡的电源指示器,电源指示器在接收到该电源指示器停止闪烁指令后停止闪烁; 
步骤614至步骤616与实施例二中步骤510至步骤512相同,此处不再赘述。 
步骤617、PCIE交换器拒绝执行卡插入请求。 
上述实施例五和实施例六中,根据接收到的热插拔卡的卡插入信号生成每个PCIE端点设备的卡插入请求,由PCIE交换器根据每个PCIE端点设备的卡插入请求依次完成对每个PCIE端点设备的上电操作,并在PCIE交换器完成对每个PCIE端点设备的上电操作之后开启热插拔卡的电源,此时对该热插拔卡中所有的PCIE端点设备执行的均是安全插入操作,通过采用本发明实施例中的技术方案,当热插拔卡包括多个PCIE端点设备时,仍然能够对热插拔卡执行安全拔出或插入操作,使得增加热插拔卡的接口数量成为可能,有效提高了HBA卡接口数量。 
图7为本发明实施例七提供的一种热插拔控制装置的结构示意图,如图7所示,该装置包括信号接收模块11、请求生成模块12和请求发送模块13。 
信号接收模块11用于接收热插拔卡发送的卡移除信号,该热插拔卡包括至少二个PCIE端点设备;请求生成模块12用于根据卡移除信号,生成与PCIE端点设备对应的卡移除请求;请求发送模块13用于将与PCIE端点设备对应的卡移除请求发送给PCIE交换器,以使PCIE交换器对PCIE端点设备进行下电操作;以及用于向热插拔卡发送电源关闭指令,以关闭该热插拔卡的电源。或者,信号接收模块11用于接收热插拔卡发送的卡插入信号,该热插拔卡包括至少二个PCIE端点设备;请求生成模块12用于根据卡插入信号,生成与PCIE端点设备对应的卡插入请求;请求发送模块13用于将与PCIE端点设备对应的卡插入请求发送给PCIE交换器,以使PCIE交换器对PCIE端点设备进行上电操作;以及用于向热插拔卡发送电源开启指令,以开启该热插拔卡的电源。 
本实施例中热插拔控制装置,根据接收到的热插拔卡的卡移除信号生成每个PCIE端点设备的卡移除请求,由PCIE交换器根据每个PCIE端点设备的卡移除请求完成对每个PCIE端点设备的下电操作,并在PCIE交换器完成对每个PCI E端点设备的下电操作之后关闭热插拔卡的电源,此时当将热插拔卡拔出时对该热插拔卡中所有的PCIE端点设备执行的均是安全拔出操作,采用本实施例中的方法可以实现对包括多个PCIE端点设备的热插拔卡执行安全拔出操作,或者根据接收到的热插拔卡的卡插入信号生成每个PCIE端点设备的卡插入请求,由PCIE交换器根据每个PCIE端点设备的卡插入请求完成对每个PCIE端点设备的上电操作,并在PCIE交换器完成对PCIE端点设备的上电操作之后开启热插拔卡的电源,此时对该热插拔卡中所有的PCIE端点设备执行的均是安全插入操作,通过采用本发明实施例中的技术方案,当热插拔卡包括多个PCIE端点设备时,仍然能够对热插拔卡执行安全拔出或插入操作,使得增加热插拔卡的接口数量成为可能,有效提高了HBA卡接口数量。 
图8为本发明实施例八提供的一种热插拔控制装置的结构示意图,如图 8所示,本实施例在上述实施例七的基础上,当信号接收模块11接收到卡移除信号时,请求生成模块12可以根据所述卡移除信号和与PCIE端点设备对应的虚拟插槽的状态信息,生成与PCIE端点设备对应的卡移除请求,所述卡移除请求携带与PCIE端点设备对应的虚拟插槽的状态信息;当信号接收模块11接收到卡插入信号时,请求生成模块12可以根据卡插入信号和与PCIE端点设备对应的虚拟插槽的状态信息,生成与PCIE端点设备对应的卡插入请求,所述卡插入请求携带与PCIE端点设备对应的虚拟插槽的状态信息。 
该装置还可以包括:信息获知模块14用于获知PCIE端点设备的插槽的状态信息和热插拔卡中PCIE端点设备的数量;信息生成模块15用于根据信息获知模块14获知的PCIE端点设备的插槽的状态信息和热插拔卡中PCIE端点设备的数量,生成与PCIE端点设备对应的虚拟插槽的状态信息,所述虚拟插槽的状态信息用于标识PCIE端点设备。 
PCIE交换器接收到请求发送模块13发送的与PCIE端点设备对应的卡移除请求后,可与PCIE端点设备对应的卡移除请求中携带的与PCIE端点设备对应的虚拟插槽的状态信息获知发送卡移除请求的为该PCIE端点设备。具体地,PCIE交换器可从信息生成模块15中获取与PCIE端点设备对应的虚拟插槽的状态信息,将获取的与PCIE端点设备对应的虚拟插槽的状态信息与卡移除请求中携带的与PCIE端点设备对应的虚拟插槽的状态信息进行匹配,当匹配成功时识别出卡移除请求对应该PCIE端点设备。并当识别出卡移除请求对应的PCIE端点设备后,对该PCIE端点设备执行下电操作。或者,本实施例中,PCIE交换器接收到请求发送模块13发送的与PCIE端点设备对应的卡插入请求后,可与PCIE端点设备对应的卡插入请求中携带的与PCIE端点设备对应的虚拟插槽的状态信息获知发送卡插入请求的为该PCIE端点设备。具体地,PCIE交换器可从信息生成模块15中获取与PCIE端点设备对应的虚拟插槽的状态信息,将获取的与PCIE端点设备对应的虚 拟插槽的状态信息与卡插入请求中携带的与PCIE端点设备对应的虚拟插槽的状态信息进行匹配,当匹配成功时识别出卡插入请求对应的该PCIE端点设备。并当识别出卡插入请求对应的PCIE端点设备后,对该PCIE端点设备执行上电操作。 
本实施例中的热插拔控制装置可根据获知的PCIE端点设备的插槽的状态信息,为PCIE端点设备设置一个虚拟插槽并生成与PCIE端点设备对应的虚拟插槽的状态信息,生成的与PCIE端点设备对应的卡移除请求或者卡插入请求中可携带与该PCIE端点设备对应的虚拟插槽的状态信息,以使PCIE交换器根据从热插拔控制装置获取到的与PCIE端点设备对应的虚拟插槽的状态信息识别出卡移除请求或者卡插入请求对应该PCIE端点设备,并对该PCIE端点设备进行下电或者上电操作,以实现对包括多个PCIE端点设备的热插拔卡执行安全插入或者安全拔出操作,通过采用本发明实施例中的技术方案,当热插拔卡包括多个PCIE端点设备时,仍然能够对热插拔卡执行安全拔出或插入操作,使得增加热插拔卡的接口数量成为可能,有效提高了HBA卡接口数量。 
图9为本发明实施例九提供的一种热插拔卡系统的结构示意图,如图9所示,该系统包括热插拔控制装置1、PCIE交换器2和热插拔卡3,该热插拔卡3包括至少二个PCIE端点设备。 
其中,热插拔控制装置1,用于当接收到热插拔卡3发送的卡移除信号时,根据卡移除信号生成与PCIE端点设备对应的卡移除请求;将与PCIE端点设备对应的卡移除请求发送给PCIE交换器2,以使PCIE交换器2对PCIE端点设备进行下电操作;向热插拔卡3发送电源关闭指令,以关闭热插拔卡3的电源;或者,当接收到热插拔卡3发送的卡插入信号时,根据卡插入信号,生成与PCIE端点设备对应的卡插入请求;将与PCIE端点设备对应的卡插入请求发送给PCIE交换器2,以使PCIE交换器2对PCIE端点设备进行上电操作;向热插拔卡3发送电源开启指令,以开启热插拔卡3的电源; 
PCIE交换器2,用于当接收到所述热插拔控制装置1发送的与PCIE端点设备对应的卡移除请求时,对PCIE端点设备进行下电操作;或者当接收到所述热插拔控制装置1发送的与PCIE端点设备对应的卡插入请求时,对PCIE端点设备进行上电操作。 
本实施例中热插拔卡,根据卡移除信号生成每个PCIE端点设备的卡移除请求,由PCIE交换器根据每个PCIE端点设备的卡移除请求依次完成对每个PCIE端点设备的下电操作,并在PCIE交换器完成对每个PCIE端点设备的下电操作之后关闭热插拔卡的电源,此时当将热插拔卡拔出时对该热插拔卡中所有的PCI E端点设备执行的均是安全拔出操作,可以实现对包括多个PCIE端点设备的热插拔卡执行安全拔出操作,或者根据卡插入信号生成每个PCIE端点设备的卡插入请求,由PCIE交换器根据每个PCIE端点设备的卡插入请求完成对每个PCIE端点设备的上电操作,并在PCIE交换器完成对PCIE端点设备的上电操作之后开启热插拔卡的电源,此时对该热插拔卡中所有的PCIE端点设备执行的均是安全插入操作,通过采用本发明实施例中的技术方案,当热插拔卡包括多个PCIE端点设备时,仍然能够对热插拔卡执行安全拔出或插入操作,使得增加热插拔卡的接口数量成为可能,有效提高了HBA卡接口数量。 
通过以上的实施方式的描述,本领域的普通技术人员可以清楚地了解到本发明实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备、或者服务器、或者其他网络设备执行本发明各个实施例或者实施例的某些部分所述的方法。 
以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 

Claims (7)

1.一种热插拔方法,其特征在于,包括:
接收热插拔卡发送的卡移除信号或卡插入信号,所述热插拔卡包括至少二个PCIE端点设备;
当接收到热插拔卡发送的卡移除信号时,根据所述卡移除信号和与PCIE端点设备对应的虚拟插槽的状态信息,生成与PCIE端点设备对应的卡移除请求,所述卡移除请求携带与PCIE端点设备对应的虚拟插槽的状态信息,所述虚拟插槽的状态信息用于标识PCIE端点设备,将与PCIE端点设备对应的卡移除请求发送给PCIE交换器,以使所述PCIE交换器对PCIE端点设备进行下电操作;向所述热插拔卡发送电源关闭指令,以关闭所述热插拔卡的电源;或者,
当接收到热插拔卡发送的卡插入信号时,根据所述卡插入信号和与PCIE端点设备对应的虚拟插槽的状态信息,生成与PCIE端点设备对应的卡插入请求,所述卡插入请求携带与PCIE端点设备对应的虚拟插槽的状态信息,将与PCIE端点设备对应的卡插入请求发送给PCIE交换器,以使所述PCIE交换器对PCIE端点设备进行上电操作;向所述热插拔卡发送电源开启指令,以开启所述热插拔卡的电源。
2.根据权利要求1所述的方法,其特征在于,
所述将与PCIE端点设备对应的卡移除请求发送给PCIE交换器,以使所述PCIE交换器对PCIE端点设备进行下电操作,包括:依次将与所述PCIE端点设备对应的卡移除请求发送给所述PCIE交换器以使所述PCIE交换器对所述PCIE端点设备进行下电操作;
所述将与PCIE端点设备对应的卡插入请求发送给PCIE交换器,以使所述PCIE交换器对PCIE端点设备进行上电操作,包括:依次将与所述PCIE端点设备对应的卡插入请求发送给所述PCIE交换器,由所述PCIE交换器对所述PCIE端点设备进行上电操作。 
3.根据权利要求1所述的方法,其特征在于,还包括:根据与热插拔卡对应的插槽的状态信息和热插拔卡中PCIE端点设备的数量,生成所述与PCIE端点设备对应的虚拟插槽的状态信息。
4.一种热插拔方法,其特征在于,包括:
当接收到与PCIE端点设备对应的卡移除请求时,获取与PCIE端点设备对应的虚拟插槽的状态信息,将获取的与PCIE端点设备对应的虚拟插槽的状态信息与卡移除请求中携带的与PCIE端点设备对应的虚拟插槽的状态信息进行匹配,当匹配成功时识别所述卡移除请求对应的PCIE端点设备,并对所述PCIE端点设备进行下电操作;或者
当接收到与PCIE端点设备对应的卡插入请求时,获取与PCIE端点设备对应的虚拟插槽的状态信息,将获取的与PCIE端点设备对应的虚拟插槽的状态信息与卡插入请求中携带的与PCIE端点设备对应的虚拟插槽的状态信息进行匹配,当匹配成功时识别出所述卡插入请求对应的PCIE端点设备,并对所述PCIE端点设备进行上电操作。
5.一种热插拔控制装置,其特征在于,包括:
信号接收模块,用于接收热插拔卡发送的卡移除信号或卡插入信号,所述热插拔卡包括至少二个PCIE端点设备;
请求生成模块,用于当所述信号接收模块接收到热插拔卡发送的卡移除信号时,根据所述卡移除信号和与PCIE端点设备对应的虚拟插槽的状态信息,生成与PCIE端点设备对应的卡移除请求,所述卡移除请求携带与PCIE端点设备对应的虚拟插槽的状态信息,所述虚拟插槽的状态信息用于标识PCIE端点设备;或者,当所述信号接收模块接收到热插拔卡发送的卡插入信号时,根据所述卡插入信号和与PCIE端点设备对应的虚拟插槽的状态信息,生成与PCIE端点设备对应的卡插入请求,所述卡插入请求携带与PCIE端点设备对应的虚拟插槽的状态信息;
请求发送模块,用于当所述信号接收模块接收到热插拔卡发送的卡移除 信号时,将与PCIE端点设备对应的卡移除请求发送给PCIE交换器,以使所述PCIE交换器对PCIE端点设备进行下电操作;或者,当所述信号接收模块接收到热插拔卡发送的卡插入信号时,将与PCIE端点设备对应的卡插入请求发送给PCIE交换器,以使所述PCIE交换器对PCIE端点设备进行上电操作。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
信息获知模块,用于获知PCIE端点设备的插槽的状态信息和热插拔卡中PCIE端点设备的数量;
信息生成模块,用于根据所述信息获知模块获知的PCIE端点设备的插槽的状态信息和热插拔卡中PCIE端点设备的数量,生成与PCIE端点设备对应的虚拟插槽的状态信息。
7.一种热插拔卡系统,其特征在于,所述系统包括热插拔控制装置、PCIE交换器和热插拔卡,所述热插拔卡包括至少二个PCIE端点设备,
其中,所述热插拔控制装置,用于当接收到热插拔卡发送的卡移除信号时,根据所述卡移除信号和与PCIE端点设备对应的虚拟插槽的状态信息,生成与PCIE端点设备对应的卡移除请求,所述卡移除请求携带与PCIE端点设备对应的虚拟插槽的状态信息,所述虚拟插槽的状态信息用于标识PCIE端点设备,将与PCIE端点设备对应的卡移除请求发送给PCIE交换器,以使所述PCIE交换器对PCIE端点设备进行下电操作;向所述热插拔卡发送电源关闭指令,以关闭所述热插拔卡的电源;或者,当接收到热插拔卡发送的卡插入信号时,根据所述卡插入信号和与PCIE端点设备对应的虚拟插槽的状态信息,生成与PCIE端点设备对应的卡插入请求,所述卡插入请求携带与PCIE端点设备对应的虚拟插槽的状态信息,将与PCIE端点设备对应的卡插入请求发送给PCIE交换器,以使所述PCIE交换器对PCIE端点设备进行上电操作;向所述热插拔卡发送电源开启指令,以开启所述热插拔卡的电源;
所述PCIE交换器,用于当接收到所述热插拔控制装置发送的与PCIE端 点设备对应的卡移除请求时,对PCIE端点设备进行下电操作;或者当接收到所述热插拔控制装置发送的与PCIE端点设备对应的卡插入请求时,对PCIE端点设备进行上电操作。 
CN2010102736810A 2010-03-04 2010-09-03 热插拔方法、热插拔控制装置和热插拔卡系统 Active CN101930419B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102736810A CN101930419B (zh) 2010-03-04 2010-09-03 热插拔方法、热插拔控制装置和热插拔卡系统

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201010119845.4 2010-03-04
CN201010119845 2010-03-04
CN2010102736810A CN101930419B (zh) 2010-03-04 2010-09-03 热插拔方法、热插拔控制装置和热插拔卡系统

Publications (2)

Publication Number Publication Date
CN101930419A CN101930419A (zh) 2010-12-29
CN101930419B true CN101930419B (zh) 2012-07-18

Family

ID=43369603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102736810A Active CN101930419B (zh) 2010-03-04 2010-09-03 热插拔方法、热插拔控制装置和热插拔卡系统

Country Status (1)

Country Link
CN (1) CN101930419B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508755B (zh) * 2011-09-26 2014-03-05 迈普通信技术股份有限公司 一种模拟接口卡热插拔的装置和方法
CN104661016A (zh) * 2013-11-20 2015-05-27 扬智科技股份有限公司 侦测方法及其电子装置
CN103746845B (zh) * 2013-12-30 2017-07-28 杭州华为数字技术有限公司 一种节点热插拔方法、装置以及主机
CN105490817B (zh) * 2014-10-10 2020-03-31 中兴通讯股份有限公司 接口板热插拔处理方法及装置
US9934187B2 (en) * 2014-12-17 2018-04-03 Quanta Computer Inc. Hot-pluggable computing system
CN105893293B (zh) 2014-12-18 2019-10-29 伊姆西公司 用于管理外部组件快速互连设备热插拔的系统和方法
CN104914970A (zh) * 2015-05-28 2015-09-16 浪潮电子信息产业股份有限公司 一种pcie插槽的通断电装置及方法、一种主板
CN106326167A (zh) * 2015-06-17 2017-01-11 中兴通讯股份有限公司 一种基于pcie子卡热插拔的方法及装置
CN106201963A (zh) * 2016-07-11 2016-12-07 浪潮(北京)电子信息产业有限公司 一种用于服务器内pci‑e卡热插拔的系统
CN106407148A (zh) * 2016-10-24 2017-02-15 郑州云海信息技术有限公司 一种pcie设备热拔插设计方法
CN107168913B (zh) * 2017-05-27 2020-01-10 苏州浪潮智能科技有限公司 共享设备热拔出方法、装置和多用户管理系统
CN107357754A (zh) * 2017-07-19 2017-11-17 郑州云海信息技术有限公司 一种优化的pcie设备热插拔下电方法
CN108536632A (zh) * 2018-04-13 2018-09-14 郑州云海信息技术有限公司 一种hba卡热插/拔事件的检测装置及方法
CN108519955A (zh) * 2018-04-13 2018-09-11 郑州云海信息技术有限公司 一种热插拔模块和一种PCIe接口的插拔方法和系统
CN110413554B (zh) * 2018-04-28 2021-05-28 杭州海康威视数字技术股份有限公司 热插拔系统及热插拔方法
CN109032681A (zh) * 2018-08-27 2018-12-18 北京比特大陆科技有限公司 一种数字货币挖矿机的控制方法、装置及相关设备
CN109508312B (zh) * 2018-11-14 2021-10-29 郑州云海信息技术有限公司 一种pcie外接卡热添加信息的发送方法及相关装置
CN109669905B (zh) * 2018-12-17 2023-05-12 广东浪潮大数据研究有限公司 一种pcie设备的热移除方法、系统及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831777A (zh) * 2005-03-10 2006-09-13 戴尔产品有限公司 用于管理多个热插拔操作的系统和方法
CN1936875A (zh) * 2005-09-23 2007-03-28 英业达股份有限公司 热插拔控制系统及方法
CN101082894A (zh) * 2006-05-30 2007-12-05 英业达股份有限公司 高速周边组件连接接口设备的热插拔系统及其方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673090B2 (en) * 2001-12-19 2010-03-02 Intel Corporation Hot plug interface control method and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831777A (zh) * 2005-03-10 2006-09-13 戴尔产品有限公司 用于管理多个热插拔操作的系统和方法
CN1936875A (zh) * 2005-09-23 2007-03-28 英业达股份有限公司 热插拔控制系统及方法
CN101082894A (zh) * 2006-05-30 2007-12-05 英业达股份有限公司 高速周边组件连接接口设备的热插拔系统及其方法

Also Published As

Publication number Publication date
CN101930419A (zh) 2010-12-29

Similar Documents

Publication Publication Date Title
CN101930419B (zh) 热插拔方法、热插拔控制装置和热插拔卡系统
CN100492309C (zh) 实现虚拟热插拔的方法及实现虚拟热插拔的主机设备
CN112463689B (zh) 一种ocp卡热插拔装置、方法及计算机可读存储介质
EP3203379B1 (en) Hot swappable device and method
CN102130669A (zh) 一种热插拔模块状态检测方法、系统、装置及网络设备
US6438639B1 (en) Computer system bus network providing concurrent communication and connection transition of peripheral devices
CN103345459B (zh) 基于单板上的多个处理器串口复用的切换方法及切换电路
CN107992443A (zh) 一种利用cpld实现的pcie热插拔系统及方法
EP2860627A1 (en) Active usb device and switching method for operating mode thereof
CN101533375B (zh) 虚拟机系统中的usb设备访问方法、装置及控制系统
CN106446654A (zh) 基于指纹识别的计算机输入输出设备隔离方法
CN105354116A (zh) 一种热插拔检测方法、装置、系统及移动终端
CN103412836B (zh) 热插拔处理方法、装置以及系统
CN107436828A (zh) 一种服务器硬盘自动化热拔插测试装置和方法
CN102420462A (zh) 一种智能变电站过程层智能终端设备
CN112380066A (zh) 一种基于国产平台的服务器维护调试装置及服务器
CN107590045A (zh) 一种在Linux系统下对EIO板卡进行热插拔测试的方法
CN114443067B (zh) 一种cpld文件烧录系统及cpld文件烧录方法
CN116643904A (zh) 一种PCIe链路故障自动修复的系统、方法和一种服务器
CN110308940A (zh) 一种模拟键盘软关机按键实现远程软关机的方法
CN115903618A (zh) 一种车机控制设备
CN110177104B (zh) 一种用于工业控制的串口协议转usb协议的方法及相关设备
EP2562649A2 (en) Method for repairing communication abnormality between data card and host and data card
CN202422137U (zh) 一种计算机及其内置功能子板
CN107066415A (zh) 一种多分区服务器系统的pcie子系统电源控制系统及方法

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
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20220831

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

TR01 Transfer of patent right