一种热插拔方法、主机控制器、主机及PCIe桥设备的制造方法

文档序号:9921984阅读:883来源:国知局
一种热插拔方法、主机控制器、主机及PCIe桥设备的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种热插拔方法、主机控制器、主机及PCIe桥设备。
【背景技术】
[0002]所谓热插拔即带电拔插,允许用户在不关闭系统,在不切断电源的情况下能够取出或更换主机下挂的PCIe(Peripheral Component Interface Express,总线和接口标准)设备,而不影响主机服务器系统的运行,从而提高系统对灾难的及时恢复能力、扩展性和灵活性等。目前,热插拔功能对于维持PCIe系统的“高可用性”非常关键。
[0003]现有热插拔技术主要是:检测到用户触发了热插拔后,控制指示灯闪烁,之后通过PCIe总线通知PCIe设备的驱动停止数据传输,并关闭PCIe设备与插槽间的Link(连接)以及该插槽(slot),这样PCIe设备与插槽间的物理连接为高阻状态,指示灯熄灭,用户移除设备,热拔完成。
[0004]由于基于PCIe总线的数据传输受距离的限制,PCIe设备的使用只能在有限的短距离内使用,现有热插拔技术也是在此场景下的热插拔。随着PCIe设备使用的需求,目前已有远距离使用PCIe设备的场景,如:PCIe桥级联PCIe设备、PCIe数据承载在其他传输协议上传输,PCIe设备被拉远,与主机服务器的物理距离超过PCIe协议规定的PCIe信号传输距离限值等。
[0005]现有热插拔只针对短距离的PCIe设备的热插拔,还没有在远距离使用PCIe设备时进行热插拔的设备或功能。

【发明内容】

[0006]本发明提供一种热插拔方法、主机控制器、主机及PCIe桥设备,能够在远距离使用PCIe设备的场景下进行热插拔。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]第一方面,公开了一种热插拔方法,包括:
[0009]首先,在远距离使用PCIe设备的场景下,可以在主机侧增设主机控制器,同时在用户设备(PCIe设备)侧增设用户设备控制器,主机控制器与用户设备控制器通过网络通信。
[0010]具体实现中,首先主机控制器生成第一通知报文,所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔。其中,所述主机与所述主机控制器连接,所述第一 PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
[0011]其次,所述主机控制器将所述第一通知报文发送给所述主机,以便所述主机根据所述第一通知报文执行与所述第一 PCIe设备相应的热插拔操作;
[0012]最后,所述主机控制器接收所述主机发送的第二通知报文,向所述用户设备控制器发送所述第二通知报文,以便所述用户设备控制器指示用户插拔所述第一PCIe设备;所述第二通知报文用于指示所述第一 PCIe设备相应的热插拔操作已完成。
[0013]主机和PCIe设备可以通过PCIe桥级联进行通信,此时与主机相连的PCIe桥需要具备PCIe设备的信息并能够在PCIe设备被拔或插入时通知主机进行相应的拔插操作;“
[0014]主机和PCIe设备可以通过非PCIe链路(如网络)进行相连,则此时与主机控制器和用户设备控制器需具备组通知报文及解析通知报文的功能
[0015]远距离使用PCIe设备,如:主机与PCIe设备不在同一物理地点,由于主机侧的主机控制器可以与PCIe设备侧的用户设备控制器通过网络进行通信,主机可以通过主机控制器与用户设备控制器与PCIe设备对PCIe设备进行热插拔控制,实现远程PCIe设备的热插拔。
[0016]结合第一方面,在第一方面的第一种可能的实现方式中,若需对所述第一PCIe设备进行热插,则所述主机控制器生成第一通知报文具体包括:
[0017]所述主机控制器接收所述用户设备控制器发送的所述第三通知报文;所述第三通知报文是所述用户设备控制器检测到热插拔被触发后由所述用户设备控制器生成的,所述第三通知报文携带所述热插拔中断信息。具体实现中,可以是用户按下用户设备控制器上的热插拔按钮后,用户设备控制器生成所述第三通知报文。或者,用户通过用户设备控制器上的带外控制模块发起热插拔请求,所述用户设备控制器根据所述热插拔请求,生成所述第三通知报文。
[0018]进而,所述主机控制器根据所述第三通知报文生成所述第一通知报文。
[0019]或,所述主机控制器检测到热插拔被触发,则生成所述第一通知报文。可以是,用户通过主机控制器的带外控制模块发起热插拔请求,则生成所述第一通知报文。
[°02°]结合第一方面的,在第一方面的第一种可能的实现方式若需对所述第一PCIe设备进行热拔,则所述主机控制器获取第一通知报文还包括:
[0021]所述主机控制器检测到与所述用户设备控制器间的网络中断,则生成所述第一通知报文。
[0022]对于这种网络突然中断的情况,为了防止网络突然中断导致主机的请求得不到响应而引起的主机挂死,因而也需要对PCIe设备进行相应的热插拔操作。
[0023]第二方面,公开了一种热插拔方法,应用于远程PCIe系统,所述远程总线和接口标准PCIe系统包括主机、主机控制器、PCIe设备以及用户设备控制器,包括:
[0024]所述主机接收所述主机控制器发送的第一通知报文;所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一PCIe设备要将进行热插拔,所述主机与所述主机控制器连接,所述第一 PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
[0025]所述主机根据所述第一通知报文执行与所述第一PCIe设备相应的热插拔操作;
[0026]所述主机生成第二通知报文,并向所述主机控制器发送所述第二通知报文,所述第二通知报文用于指示所述第一 PCIe设备相应的热插拔操作已完成。
[0027]现有技术中,远距离使用PCIe设备,如:主机与PCIe设备不在同一物理地点,由于主机侧的主机控制器可以与PCIe设备侧的用户设备控制器通过网络进行通信,主机可以通过主机控制器与用户设备控制器与PCIe设备对PCIe设备进行热插拔控制,实现远程PCIe设备的热插拔。
[0028]结合第二方面,在第二方面的第一种可能的实现方式中,所述主机根据所述第二通知报文执行与所述第一 PCIe设备相应的热插拔操作具体包括:
[0029]所述主机获取所述第一PCIe设备的标识信息以及所述第一 PCIe设备对应的插槽信息;
[0030]所述主机确定所述插槽信息对应的第一插槽;
[0031]所述主机关闭所述第一插槽与所述第一PCIe设备间的连接,并将所述第一插槽下电。
[0032]这里,是对第一PCIe设备进行热拔的过程。
[0033]结合第二方面,在第二方面的第二种可能的实现方式中,所述主机根据所述第二通知报文执行与所述第一 PCIe设备相应的热插拔操作具体包括:
[0034]所述主机获取第一插槽的插槽信息;所述第一插槽为所述第一PCIe设备对应的插槽;
[0035]所述主机建立所述第二插槽与所述第一PCIe设备间的连接,并给所述第一插槽上电。
[0036]这里,是对第一PCIe设备进行热插的过程。
[0037]第三方面,公开了一种热插拔方法,包括:
[0038]主机监测第一链路是否异常;所述第一链路为所述主机与PCIe桥设备间的链路,所述PCIe桥设备下挂至少一个PCIe设备;
[0039]若所述主机监测到所述第一链路出现异常,则执行与所述至少一个PCIe设备相应的热插拔操作。
[0040]PCIe设备通过PCIe桥与主机级联属于远距离使用PCIe设备的场景,现有的热插拔技术,并不能实现此场景中PCIe设备的热插拔。本发明监测PCIe桥与PCIe设备间的链路状态,当链路异常时,对PCIe桥下挂的每一个PCIe设备进行相应的热插拔操作,可防止主机与PCIe桥之间的链路异常而导致的主机读写PCIe设备的请求得不到响应而导致主机挂死。
[0041]结合第三方面,在第三方面的第一种可能的实现方式,所述执行与所述至少一个PCIe设备相应的热插拔操作具体包括:
[0042]所述主机获取所述至少一个PCIe设备中每一个PCIe设备的标识信息以及所述每一个PCIe设备对应的插槽信息;
[0043]所述主机关闭所述每一个PCIe设备与对应的插槽与间的连接,并将所述每一个PCIe设备对应的插槽下电。同时,主机卸载PCIe设备驱动,释放资源。
[0044]当然,这种场景仅仅需要对PCIe设备进行热拔相应的操作。
[0045]第四方面,公开了一种热插拔方法,包括:
[0046]第一PCIe桥设备监测第二链路是否异常;所述第二链路为所述第一 PCIe桥设备与第二 PCIe桥设备间的链路,所述第一 PCIe桥设备与主机连接,所述第二 PCIe桥设备下挂N个PCIe设备;所述N为大于等于I的整数;
[0047]所述第一PCIe桥设备监测到所述第二链路出现异常,则生成N个第四通知报文,所述N个第四通知报文用于指示所述主机执行与所述N个PCIe设备相应的热插拔操作。
[0048]第一 PCIe桥设备针对N个PCIe设备生成N个通知报文,指示主机对所述N个PCIe设备逐一进行热插拔。可以防止第一 PCIe桥设备与第二 PCIe桥设备间的链路突然异常而导致主机读写所述N个PCIe设备请求得不到响应出现的主机挂死。
[0049]结合第四方面,在第四方面的第一种可能的实现方式中,所述生成N个第四通知报文具体包括:
[0050]所述第一PCIe桥设备根据预存储的PCIe拓扑结构,确定所述N个PCIe设备的N个标识信息,以及所述N个PCIe设备对应的N个插槽的信息;
[0051 ]根据所述N个标识信息以及所述N个插槽的信息生成N个热插拔中断信息;
[0052]根据所述N个热插拔中断信息中的每一个生成一个所述第四通知报文,得到N个所述第四通知报文。
[0053]第五方面,公开了一种主机控制器,应用于远程总线和接口标准PCIe系统,所述远程PCIe系统包括主机、所述主机控制器、PCIe设备以及用户设备控制器,包括:
[0054]生成单元,用于生成第一通知报文,所述第一通知报文携带热插拔中断信息,所述热插拔中断信息指示第一 PCIe设备要将进行热插拔;所述主机与所述主机控制器连接,所述第一 PCIe设备与所述用户设备控制器连接,所述主机控制器与所述用户设备控制器通过网络通信;
[0055]发送单元,用于将所述第一通知报文发送给所述主机,以便所述主机根据所述第一通知报文执行与所述第一 PCIe设备相应的热插拔操作;
[0056]接收单元,用于接收所述主机发送的第二通知报文;
[0057]所述发送单元还用于,向所述用户设备控制器发送所述第二通知报文,以便所述用户设备控制器指示用户插拔所述第一 PCIe设备;所述第二通知报文用于指示所述第一PCIe设备相应的热插拔操作已完成。
[0058]结合第五方面,在第五方面的第一种可能的实现方式中,
[0059]所述生成单元具体用于,若需对所述第一PCIe设备进行热插,则接收所述用户设备控制器发送的所述第三通知报文,根据所述第三通知报文生成所述第一通知报文;所述第三通知报文是所述用户设备控制器检测到热插拔被触发后由所述用户设备控制器生成的,所述第三通知报文携带所述热插拔中断信息;
[0060]或,检测到热插拔被触发,则生成所述第一通知报文。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1