发明内容
有鉴于此,本发明的目的在于提供一种节点的热插拔方法,用于解决现有节点热插拔方法中,从PCIe交换网络上热插拔节点时,需要复位整个PCIe网络***的缺陷。
本申请的第一方面,提供了一种节点的热插拔方法,包括:
在未获取到节点的***信息时,采用本地时钟;
在获取到所述节点的***信息后,下发上电通知至所述节点,所述上电通知用于通知所述节点上电;
在接收到所述节点上电完成的指令后,获取所述节点传输的第一时钟;
在接收到控制信号后,采用所述第一时钟,并停止使用所述本地时钟,其中,所述第一时钟与所述本地时钟同频;
在获取到所述节点的拔出信息后,通知所述节点下电。
结合第一方面,在第一方面的第一种可能的实现方式中,
所述在接收到控制信号后,采用所述第一时钟,并停止使用所述本地时钟,包括:
在接收到控制信号后,判断所述控制信号是否有上升沿,如果有,则:
根据所述第一选择信号将所述本地时钟切换至所述第一时钟。
结合第一方面的第一种可能实现方式,在第一方面的第二种可能的实现方式中,
所述根据所述第一选择信号将所述本地时钟切换至所述第一时钟,包括:
通过逻辑触发时钟选择寄存器为1,所述时钟选择寄存器输出所述第一选择信号;
根据所述第一选择信号将所述本地时钟切换至所述第一时钟。
结合第一方面的第一种可能实现方式,在第一方面的第三种可能的实现方式中,
还包括:
将所述第一时钟通过多路选择器、低通滤波器以及压控振荡器输出至基于PCIE网络的交换芯片。
结合第一方面,在第一方面的第四种可能的实现方式中,
所述在获取到所述节点的拔出信息后,通知所述节点下电,包括:
所述通知所述节点下电,之前还包括:
在获取到所述节点的拔出信息后,向所述节点下发移除信息,所述移除信息用于通知节点移除运行业务;
接收选择指令,根据所述选择指令输出第二选择信号根据所述第二选择信号,将所述第一时钟切换至所述本地时钟。
结合第一方面,在第一方面的第五种可能的实现方式中,
所述在接收到控制信号后,采用所述第一时钟,并停止使用所述本地时钟,包括:
在接收控制信号后,将所述本地时钟切换至所述第一时钟。
结合第一方面,在第一方面的第六种可能的实现方式中,
所述通知所述节点下电,之前还包括:
在获取到所述节点的拔出信息后,向所述节点下发移除信息,所述移除信息用于通知节点移除运行业务;
接收第二选择信号,根据所述第二信号选择信号将所述第一时钟切换至所述本地时钟。
结合第一方面的第四种可能实现方式或第一方面的第六种可能实现方式,在第一方面的第七种可能的实现方式中,
所述通知所述节点下电包括:
在延迟预设时间后,下发下电命令至所述节点,所述下电命令用于通知所述节点下电。
结合第一方面的第七种可能实现方式,在第一方面的第八种可能的实现方式中,
所述将所述第一时钟切换至所述本地时钟,之后还包括:
将所述本地时钟通过多路选择器、低通滤波器以及压控振荡器输出至基于PCIE网络的交换芯片。
本申请的第二方面,提供了一种节点的热插拔装置,包括:
本地时钟单元,用于在未获取到节点的***信息时,采用本地时钟;
上电通知单元,用于在获取到所述节点的***信息后,下发上电通知至所述节点,所述上电通知用于通知所述节点上电;
第一时钟获取单元,用于在接收到所述节点上电完成的指令后,获取所述节点传输的第一时钟;
时钟切换单元,用于在接收到控制信号后,采用所述第一时钟,并停止使用所述本地时钟,其中,所述第一时钟与所述本地时钟同频;
下电通知单元,用于在获取到所述节点的拔出信息后,通知所述节点下电。
结合第二方面,在第二方面的第一种可能的实现方式中,
所述时钟切换单元包括判断模块、输出模块、无缝切换模块:
所述判断模块,用于在接收到控制信号后,判断所述控制信号是否有上升沿,如果有,则:
所述输出模块,用于输出第一选择信号至所述无缝切换模块;
所述无缝切换模块接收到所述第一选择信号后,根据所述第一选择信号将所述本地时钟切换至所述第一时钟。
结合第二方面的第一种可能实现方式,在第二方面的第二种可能的实现方式中,
所述输出模块,包括:
逻辑触发模块,用于通过逻辑触发时钟选择寄存器为1,所述时钟选择寄存器输出所述第一选择信号至无缝切换模块。
结合第二方面的第一种可能实现方式,在第二方面的第三种可能的实现方式中,
还包括:
第一输出模块,用于将所述第一时钟通过多路选择器、低通滤波器以及压控振荡器输出至基于PCIE网络的交换芯片。
结合第二方面,在第二方面的第四种可能的实现方式中,
还包括:
移除信息下发模块,用于在获取到所述节点的拔出信息后,向所述节点下发移除信息,所述移除信息用于通知节点移除运行业务;
选择指令接收单元,接收选择指令,根据所述选择指令输出第二选择信号至无缝切换模块,所述无缝切换模块接收到所述第二选择信号后,根据所述第二选择信号,将所述第一时钟切换至所述本地时钟。
结合第二方面,在第二方面的第五种可能的实现方式中,
所述时钟切换单元,包括无缝切换模块:
无缝切换模块,用于在无缝切换模块接收控制信号后,将所述本地时钟切换至所述第一时钟。
结合第二方面,在第二方面的第六种可能的实现方式中,
还包括:
移除信息下发模块,用于在获取到所述节点的拔出信息后,向所述节点下发移除信息,所述移除信息用于通知节点移除运行业务;
切换模块,用于接收第二选择信号,根据所述第二信号选择信号将所述第一时钟切换至所述本地时钟。
结合第二方面的第四种可能实现方式或第二方面的第六种可能实现方式,在第二方面的第七种可能的实现方式中,
所述下电通知单元,包括:
下电命令下发模块,用于在延迟预设时间后,下发下电命令至所述节点,所述下电命令用于通知所述节点下电。
结合第二方面的第七种可能实现方式,在第二方面的第八种可能的实现方式中,
还包括:
第三输出单元,用于将所述本地时钟通过多路选择器、低通滤波器以及压控振荡器输出至基于PCIE网络的交换芯片。
本申请的第三方面,提供了一种主机,包括处理器,通信接口,存储器和总线;
其中处理器、通信接口、存储器通过总线完成相互间的通信;
所述通信接口,用于获取信息,所述信息至少包括***信息、上电完成的指令、控制信号、拔出信息;
所述处理器,用于执行程序;
所述存储器,用于存放程序;
其中程序用于:
在未获取到节点的***信息时,采用本地时钟;
在获取到所述节点的***信息后,下发上电通知至所述节点,所述上电通知用于通知所述节点上电;
在接收到所述节点上电完成的指令后,获取所述节点传输的第一时钟;
在接收到控制信号后,采用所述第一时钟,并停止使用所述本地时钟,其中,所述第一时钟与所述本地时钟同频;
在获取到所述节点的拔出信息后,通知所述节点下电。
本发明实施例提供的节点的热插拔方法,在未获取到节点的***信息时,采用本地时钟,在获取到节点的***信息,并获取到节点传输的第一时钟,以及接收到控制信号后,采用第一时钟并停止使用本地时钟,因此,在节点的热插拔过程中不会中断时钟的供给,另外,第一时钟与本地时钟同频,所以不会检测到时钟的切换动作,这样即使节点存在插拔动作,依然可以确保再次***节点时,节点能被枚举和识别,而不会产生端口时钟丢失造成的需要重新复位整个芯片才能识别节点的问题。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供一种节点的热插拔方法,包括:
步骤110:在未获取到节点的***信息时,采用本地时钟。
参见图2,示出了一种时钟架构的结构示意图,该时钟架构包括服务器计算节点板01、网络交换板02、以及管理***板(SP,System Management board)03。
其中,服务器计算节点板01也即Node板,网络交换板02可以是PCIe网络交换板,服务器计算节点板01上至少设置一个节点。
节点***网络交换板02,网络交换板02在未获取到节点的***信息时,采用本地时钟,本地时钟源提供网络交换板02上的本地时钟,需要说明的是,本发明的所有实施例以一个节点的热插拔方法为例进行说明。
步骤120:在获取到节点的***信息后,下发上电通知至节点。
其中,上电通知用于通知节点上电,节点在接收到上电通知后,根据上电通知进行上电。
步骤130:在接收到节点上电完成的指令后,获取节点传输的第一时钟。
上述第一时钟是节点传输至网络交换板02上的时钟,该时钟可以是PCIe时钟,也可以是其他形式的时钟脉冲,在此不做赘述,但是,需要强调的是,第一时钟与本地时钟同频。
步骤140:在接收到控制信号后,采用第一时钟,并停止使用本地时钟。
上述控制信号可以是由节点传输至网络交换板02,也可以是由管理***板03传输至网络交换板02,网络交换板02在接收到控制信号后,采用第一时钟,并停止使用本地时钟。
由于第一时钟与本地时钟同频,因此,在将本地时钟切换至第一时钟后,该时钟架构还可以正常工作。
步骤150:在获取到节点的拔出信息后,通知节点下电。
上述拔出信息可以是由节点传输至网络交换板02,也可以是由管理***板03传输至网络交换板02,网络交换板02在接收到拔出信息后,下发下电指令至节点,该下电指令用于通知节点下电。
本发明实施例提供的节点的热插拔方法,在未获取到节点的***信息时,采用本地时钟,在获取到节点的***信息,并获取到节点传输的第一时钟,以及接收到控制信号后,采用第一时钟并停止使用本地时钟,因此,在节点的热插拔过程中不会中断时钟的供给,另外,第一时钟与本地时钟同频,所以不会检测到时钟的切换动作,这样即使节点存在插拔动作,依然可以确保再次***节点时,节点能被枚举和识别,而不会产生端口时钟丢失造成的需要重新复位整个芯片才能识别节点的问题。
进一步的,还参考图1,本发明实施例详细的介绍图1中节点的热插拔方法、
步骤110:在未获取到节点的***信息时,采用本地时钟。
本发明实施例提供的热插拔方法可以应用于基于PCIe的时钟架构,参见图3,图3示出了PCIe Switch时钟架构的结构示意图,该时钟架构包括服务器计算节点板01、网络交换板02、以及管理***板03。
其中,服务器计算节点板也即Node板Node board,网络交换板可以是PCIe网络交换板,服务器计算节点板01上至少设置一个节点。
网络交换板02可以包括本地时钟源021、FPGA(Field-Programmable GateArray,现场可编程门阵列)022、无缝切换模块023也即Clk buffer、基于PCIe网络的交换芯片也即PCIe Switch024。
FPGA022内部固化有IIC模块,如IIC slave与IIC master,其中,IIC模块用于接收并存储管理***板03管理PCIe网络交换板和管理节点的信息。
Node板是接入PCIe交换网络的计算节点,计算节点的CPU直接出PCIe和交换网络上的PCIe Switch对接。
需要说明的是,本发明实施例提供的无缝切换模块023以及基于PCIe网络的交换芯片PCIe Switch024分别设置在网络交换板02上。
节点***网络交换板02,网络交换板02在未获取到节点的***信息时,采用本地时钟,本地时钟源提供网络交换板上的本地时钟,本地时钟源的输出信号可以为clock_in_0。
步骤120:在获取到节点的***信息后,下发上电通知至节点,上电通知用于通知节点上电。
当节点***到网络交换板02后,网络交换板02下发上电通知至节点,其中,上电通知用于通知节点上电,节点在接收到上电通知后,根据上电通知进行上电。
进一步的,在网络交换板上的FPGA022获取到节点的***信息后,将***信息上传到管理***板03,管理***板03在接收到***信息后,通过IIC(Inter-IntegratedCircuit,集成电路总线)管理通道下发上电通知给FPGA022,再由FPGA022下发给节点,该节点在接收到上电通知后,进行上电并稳定工作。
或者,管理***板03通过IIC管理通道下发上电通知给FPGA022,FPGA022在获取到节点的***信息后,直接由FPGA022下发上电通知至节点,通知节点上电。
更进一步的,在网络交换板上FPGA022内部固化的IIC master获取到节点的***信息后,FPGA内部固化的IIC slave将***信息上传到管理***板03。管理***板03在接收到***信息后,通过IIC(Inter-Integrated Circuit,集成电路总线)管理通道下发上电通知给IIC slave,再由IIC master下发给节点,该节点在接收到上电通知后,进行上电并稳定工作。
或者,管理***板03通过IIC管理通道下发上电通知给IIC slave,IIC master在获取到节点的***信息后,直接由IIC master下发上电通知至节点,通知节点上电。
步骤130:在接收到节点上电完成的指令后,获取节点传输的第一时钟。
其中,上电通知用于通知节点上电,节点在接收到上电通知后,根据上电通知进行上电,节点上电完成后,发送上电完成指令ok_node至FPGA022,进一步的,可以发送上电完成指令ok_node至FPGA的IIC master。
上述第一时钟是节点传输至网络交换板上的时钟,第一时钟的输出信号可以clock_in_1,该时钟可以是PCIe时钟,也可以是其他形式的时钟脉冲,在此不做赘述,但是,需要强调的是,第一时钟与本地时钟同频。
步骤140:在接收到控制信号后,采用第一时钟,并停止使用本地时钟。
上述控制信号可以是由节点传输至网络交换板上的FPGA022,也可以是由管理***板03传输至网络交换板上的FPGA022,FPGA022在接收到控制信号后,下发切换指令至无缝切换模块023,该切换指令用于无缝切换模块023将之前使用的本地时钟切换至第一时钟。由于第一时钟与本地时钟同频,因此,在将本地时钟切换至第一时钟后,该时钟架构还可以正常工作。
在接收到控制信号后,采用第一时钟,并停止使用所述本地时钟,包括:
在接收到节点的控制信号后,判断控制信号是否有上升沿,如果有,则:
根据第一选择信号将本地时钟切换至第一时钟。
进一步的,可以输出第一选择信号至无缝切换模块023,无缝切换模块023在接收到第一选择信号后,将本地时钟切换至第一时钟。
进一步的,无缝切换模块023可以包括相位比较器模块Detect module_0&1、多路选择器模块MUX、以及低通滤波器和压控振荡器模块LF&VCO。FPGA022内部固化有时钟选择寄存器。在输出第一选择信号至无缝切换模块时,可以通过逻辑触发时钟选择寄存器为1,时钟选择寄存器输出第一选择信号至无缝切换模块023。
进一步的,FPGA022在接收到控制信号后,判断控制信号是否有上升沿,如果有,则通过逻辑触发时钟选择寄存器为“1”,之后,时钟选择寄存器通过逻辑触发第一选择信号也即FPGA IO信号Clock_sel为“1”,第一选择信号输出至无缝切换模块023,第一选择信号输出至无缝切换模块023,无缝切换模块023通过相位比较器模块Detect module_0&1选择第一时钟clock-_in_1。需要说明的是,FPGA在接收到控制信号后,判断控制信号是否有上升沿,如果否,则通过逻辑触发时钟选择寄存器为“0”,之后,时钟选择寄存器通过逻辑触发第一选择信号也即FPGA IO信号Clock_sel为“0”,第一选择信号输出至无缝切换模块023,第一选择信号输出至无缝切换模块023,无缝切换模块023通过相位比较器模块Detectmodule_0&1选择本地时钟。
更进一步的,如果控制信号是由节点传输至网络交换板上的FPGA022,该控制信号可以直接是节点上述传输的上电完成的指令ok_node,FPGA022在接收到上电完成指令ok_node后,判断上电完成指令ok_node是否有上升沿,如果有,则通过逻辑触发时钟选择寄存器为“1”,之后,时钟选择寄存器通过逻辑触发第一选择信号也即FPGA IO信号Clock_sel为“1”,第一选择信号输出至无缝切换模块023,第一选择信号输出至无缝切换模块023,无缝切换模块023通过相位比较器模块Detect module_0&1选择第一时钟。
另外,将本地时钟切换至第一时钟之后。还包括:
将第一时钟通过多路选择器、低通滤波器以及压控振荡器输出至基于PCIE网络的交换芯片。
进一步的,第一选择信号输出至无缝切换模块023,无缝切换模块023通过相位比较器模块Detect module_0&1选择clock_in_1。
步骤150:在获取到节点的拔出信息后,通知节点下电。
上述拔出信息可以是由节点传输至网络交换板02上的FPGA022,也可以是由管理***板03传输至网络交换板02上的FPGA022,FPGA022在接收到拔出信息后,下发下电指令至节点,该下电指令用于通知节点下电。
上述步骤在通知节点下电,之前还包括:
在获取到节点的拔出信息后,向节点下发移除信息,移除信息用于通知节点移除运行业务;
接收选择指令,根据选择指令输出第二选择信号根据第二选择信号,将第一时钟切换至本地时钟。
上述的通知节点下电包括:在延迟预设时间后,下发下电命令至节点,下电命令用于通知节点下电。
其中,上述移除信息可以由管理***板03通过PCIe业务管理通道下发至节点,或者,上述移除信息可以由管理***板通过IIC管理通道下发至网络交换板02上的FPGA022,再由FPGA022下发至节点。另外,上述选择指令可以由管理***板03通过IIC管理通道下发至网络交换板02上的FPGA022,FPGA022接收选择指令,根据选择指令输出第二选择信号至无缝切换模块023,无缝切换模块023接收到第二选择信号后,将第一时钟切换至本地时钟。
进一步的,将第一时钟切换至本地时钟之后还包括:
将本地时钟通过多路选择器、低通滤波器以及压控振荡器输出至基于PCIE网络的交换芯片的端口。
进一步的,FPGA022接收选择指令,根据选择指令输出第二选择信号至无缝切换模块023,无缝切换模块023接收到第二选择信号后,将第一时钟切换至本地时钟可以包括:
FPGA022通过逻辑触发时钟选择寄存器为“0”,之后,时钟选择寄存器通过逻辑触发第二选择信号也即FPGA IO信号Clock_sel为“0”,第二选择信号输出至无缝切换模块023,第二选择信号输出至无缝切换模块023,无缝切换模块023通过相位比较器模块Detectmodule_0&1选择本地时钟。
另外,上述在延迟预设时间后,下发下电命令至节点,可以包括:
在延迟预设时间后,管理***板023通过IIC管理通道下发下电命令至FPGA022,之后,再由FPGA022将下电命令下发至节点,或者,FPGA022预先存储有下电命令,在延迟预设时间后,由FPGA022直接将下电命令下发至节点,其中预设时间可以根据实际情况设定,在此不做赘述。
本发明实施例提供的节点的热插拔方法,在未获取到节点的***信息时,采用本地时钟,在获取到节点的***信息,并获取到节点传输的第一时钟,以及接收到控制信号后,采用第一时钟并停止使用本地时钟,因此,在节点的热插拔过程中不会中断时钟的供给,另外,第一时钟与本地时钟同频,所以不会检测到时钟的切换动作,这样即使节点存在插拔动作,依然可以确保再次***节点时,节点能被枚举和识别,而不会产生端口时钟丢失造成的需要重新复位整个芯片才能识别节点的问题。进一步的,还可以保证节点在交换网络下,实现节点的维护。更进一步的,本发明实施例还可以应用在基于PLX PCIe switch交换网络中,提出了在针对某个节点反复热插拔时保证PCIe switch端口时钟不中断的实施供给方案。
另外,还参考图1,本发明实施例介绍图1中节点热插拔方法的另一种实现方式。
步骤110:在未获取到节点的***信息时,采用本地时钟。
本发明实施例提供的热插拔方法可以应用于基于PCIe的时钟架构,参见图4,图4示出了PCIe Switch时钟架构的结构示意图,该时钟架构包括服务器计算节点板01、网络交换板02、以及管理***板03。
其中,服务器计算节点板也即Node板Node board,网络交换板可以是PCIe网络交换板,服务器计算节点板01上至少设置一个节点。
网络交换板02可以包括本地时钟源021、FPGA(Field-Programmable GateArray,即现场可编程门阵列)022、无缝切换模块023也即Clk buffer、基于PCIe网络的交换芯片也即PCIe Switch024。
与上述实施例不同的是,本发明实施例提供的网络交换板02中的无缝切换模块023设置在PCIe Switch024内部,如可以固化在PCIe Switch024内部。在PCIe Switch024内部设置无缝切换模块023可以减少网络交换板时钟设计线路的复杂性和单板布局的风险。
步骤120:在获取到节点的***信息后,下发上电通知至节点,上电通知用于通知节点上电。
该步骤可参见上述实施例中相应部分的描述,在此不做赘述。
步骤130:在接收到节点上电完成的指令后,获取节点传输的第一时钟。
待节点上电完成后,节点传输上电完成的指令ok_node至FPGA022,FPGA022在接收到上电完成指令ok_node后,通过IIC管理通道将上电完成指令上传至管理***板03,告知管理***板03节点上电完成。
网络交换板02在接收到节点上电完成的指令后,获取节点传输的第一时钟,该步骤可参见上述实施例中相应部分的描述,在此不做赘述。
步骤140:在接收到控制信号后,采用第一时钟,并停止使用本地时钟。
需要说明的是,第一时钟与本地时钟同频。
上述控制信号可以是由管理***板03直接传输至PCIe Switch024中的无缝切换模块023。
步骤140在接收到控制信号后,采用第一时钟,并停止使用本地时钟,可以包括:
在无缝切换模块023接收控制信号后,将本地时钟切换至第一时钟。
上述控制信号可以是由管理***板03直接传输至网络交换板上的PCIeSwitch024中的无缝切换模块023,无缝切换模块023在接收到控制信号后,将之前使用的本地时钟切换至第一时钟。由于第一时钟与本地时钟同频,因此,在将本地时钟切换至第一时钟后,该时钟架构还可以正常工作。
与上述实施例不同的是,无缝切换模块023内部设置有时钟选择寄存器,管理***板03可以通过业务上行管理通道设置无缝切换模块023中的时钟选择寄存器为“1”,以使得无缝切换模块023将之前使用的本地时钟切换至第一时钟。
进一步的,无缝切换模块023包括相位比较器模块Detect module_0&1、多路选择器模块MUX、以及低通滤波器和压控振荡器模块LF&VCO。第一时钟通过多路选择器、低通滤波器以及压控振荡器输出。
步骤150:在获取到节点的拔出信息后,通知节点下电。
上述拔出信息可以是由节点传输至网络交换板02上的FPGA022,也可以是由管理***板03传输至网络交换板02上的FPGA022,FPGA022在接收到拔出信息后,下发下电指令至节点,该下电指令用于通知节点下电。
进一步的,将第一时钟切换至本地时钟之后还包括:
将本地时钟通过多路选择器、低通滤波器以及压控振荡器输出至基于PCIE网络的交换芯片的端口。
上述步骤在通知节点下电,之前还包括:
在获取到节点的拔出信息后,向节点下发移除信息,移除信息用于通知节点移除运行业务;
接收第二选择信号,根据第二信号选择信号将第一时钟切换至本地时钟。
上述的通知节点下电包括:在延迟预设时间后,下发下电命令至节点,下电命令用于通知节点下电。
其中,上述移除信息可以由管理***板03通过PCIe业务管理通道下发至节点,或者,上述移除信息可以由管理***板03通过IIC管理通道下发至网络交换板02上的FPGA022,再由网络交换板02上的FPGA022下发至节点。
本发明实施例与上述实施例不同的是,管理***板03可以向PCIe switch中的无缝切换模块下发第二选择信号,无缝切换模块023接收到第二选择信号后,根据第二信号选择信号将第一时钟切换至本地时钟。进一步的,无缝切换模块023内部设置有时钟选择寄存器,管理***板03可以通过业务上行管理通道设置无缝切换模块023中的时钟选择寄存器为“0”,以使得无缝切换模块023将之前使用的本地时钟切换至本地时钟。
另外,上述在延迟预设时间后,下发下电命令至节点,可以包括:
在延迟预设时间后,管理***板03通过IIC管理通道下发下电命令至FPGA022,之后,再由FPGA022将下电命令下发至节点,或者,FPGA022预先存储有下电命令,在延迟预设时间后,由FPGA022直接将下电命令下发至节点,其中预设时间可以根据实际情况设定,在此不做赘述。
本发明实施例提供的节点的热插拔方法,在未获取到节点的***信息时,采用本地时钟,在获取到节点的***信息,并获取到节点传输的第一时钟,以及接收到控制信号后,采用第一时钟并停止使用本地时钟,因此,在节点的热插拔过程中不会中断时钟的供给,另外,第一时钟与本地时钟同频,所以不会检测到时钟的切换动作,这样即使节点存在插拔动作,依然可以确保再次***节点时,节点能被枚举和识别,而不会产生端口时钟丢失造成的需要重新复位整个芯片才能识别节点的问题。进一步的,还可以保证节点在交换网络下,实现节点的维护。更进一步的,本发明实施例还可以应用在基于PLX PCIe switch交换网络中,提出了在针对某个节点反复热插拔时保证PCIe switch端口时钟不中断的实施供给方案。
另外,本发明实施例提供的网络交换板中的无缝切换模块设置在PCIe Switch内部,如可以固化在PCIe Switch内部。在PCIe Switch内部设置无缝切换模块可以减少网络交换板时钟设计线路的复杂性和单板布局的风险。
参见图5,本发明实施例提供一种节点的热插拔装置,包括:
本地时钟单元U100,用于在未获取到节点的***信息时,采用本地时钟;
上电通知单元U200,用于在获取到节点的***信息后,下发上电通知至节点,上电通知用于通知节点上电;
第一时钟获取单元U300,用于在接收到节点上电完成的指令后,获取节点传输的第一时钟;
时钟切换单元U400,用于在接收到控制信号后,采用第一时钟,并停止使用本地时钟,其中,第一时钟与本地时钟同频;
下电通知单元U500,用于在获取到节点的拔出信息后,通知节点下电。
本发明实施例提供的节点的热插拔装置,本地时钟单元在未获取到节点的***信息时,采用本地时钟,在获取到节点的***信息,并获取到节点传输的第一时钟,以及接收到控制信号后,时钟切换单元采用第一时钟并停止使用本地时钟,因此,在节点的热插拔过程中不会中断时钟的供给,另外,第一时钟与本地时钟同频,所以不会检测到时钟的切换动作,这样即使节点存在插拔动作,依然可以确保再次***节点时,节点能被枚举和识别,而不会产生端口时钟丢失造成的需要重新复位整个芯片才能识别节点的问题。
进一步的,上述时钟切换单元包括判断模块、输出模块、无缝切换模块:
判断模块,用于在接收到控制信号后,判断控制信号是否有上升沿,如果有,则:
输出模块,用于输出第一选择信号至无缝切换模块;
无缝切换模块接收到第一选择信号后,根据第一选择信号将本地时钟切换至第一时钟。
进一步的,输出模块包括:
逻辑触发模块,用于通过逻辑触发时钟选择寄存器为1,时钟选择寄存器输出第一选择信号至无缝切换模块。
进一步的,节点热插拔装置还包括:
第一输出模块,用于将第一时钟通过多路选择器、低通滤波器以及压控振荡器输出至基于PCIE网络的交换芯片。
进一步的,节点热插拔装置还包括:
移除信息下发模块,用于在获取到节点的拔出信息后,向节点下发移除信息,移除信息用于通知节点移除运行业务;
选择指令接收单元,接收选择指令,根据选择指令输出第二选择信号至无缝切换模块,无缝切换模块接收到第二选择信号后,根据第二选择信号,将第一时钟切换至本地时钟。
进一步的,时钟切换单元包括无缝切换模块:
无缝切换模块,用于在无缝切换模块接收控制信号后,将本地时钟切换至第一时钟。
进一步的,节点热插拔装置还包括:
移除信息下发模块,用于在获取到节点的拔出信息后,向节点下发移除信息,移除信息用于通知节点移除运行业务;
切换模块,用于接收第二选择信号,根据第二信号选择信号将第一时钟切换至本地时钟。
进一步的,下电通知单元,包括:
下电命令下发模块,用于在延迟预设时间后,下发下电命令至节点,下电命令用于通知节点下电。
进一步的,节点热插拔装置还包括:
第三输出单元,用于将本地时钟通过多路选择器、低通滤波器以及压控振荡器输出至基于PCIE网络的交换芯片。
参见图6,本发明实施例提供了一种主机300的示意图。主机300可能是包含计算能力的主机服务器,或者是个人计算机PC,或者是可携带的便携式计算机或终端等等,本发明具体实施例并不对主机的具体实现做限定。主机300包括:
处理器(processor)310,通信接口(Communications Interface)320,存储器(memory)330,总线340。
处理器310,通信接口320,存储器330通过总线340完成相互间的通信。
通信接口320,用于获取信息,信息至少包括***信息、上电完成的指令、控制信号、拔出信息。
处理器310,用于执行程序332。
具体地,程序332可以包括程序代码,所述程序代码包括计算机操作指令。
处理器310可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器330,用于存放程序332。存储器330可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序332具体可以用于:
在未获取到节点的***信息时,采用本地时钟;
在获取到节点的***信息后,下发上电通知至节点,上电通知用于通知节点上电;
在接收到节点上电完成的指令后,获取节点传输的第一时钟;
在接收到控制信号后,采用第一时钟,并停止使用本地时钟,其中,第一时钟与本地时钟同频;
在获取到节点的拔出信息后,通知节点下电。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
本领域普通技术人员可以理解上述实施例方法中的全部或部分处理是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。