发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种设备功耗动态调整方法及***,可动态调整设备功耗,实现节能减排。
为达到以上目的,本发明采取的技术方案是:一种设备功耗动态调整方法,其用于单盘功耗的动态调整,所述单盘为业务盘或交换盘,所述业务盘和交换盘之间有serdes通道连接,包括以下步骤:
在本端单盘与对端单盘之间建立状态监控通道,本端单盘通过状态监控通道获取对端单盘的状态信息;
获取本端单盘的SerDes通道连接关系,根据对端单盘的状态信息和SerDes通道连接关系,控制本端单盘的SerDes通道的供电使能。
在上述方案的基础上,所述状态监控通道为本端单盘与对端单盘之间,采用3.3VLVTTL电平的两根物理连线。
在上述方案的基础上,对端单盘为业务盘时,所述对端单盘的状态信息包括单盘在位状态、单盘初始化状态和面板端口使用数量;
对端单盘为交换盘时,所述对端单盘的状态信息包括单盘在位状态、单盘初始化状态。
在上述方案的基础上,在本端单盘与对端单盘之间建立状态监控通道,本端单盘通过状态监控通道获取对端单盘的状态信息,具体包括以下步骤:
在本端单盘与对端单盘之间加入状态监控通道;
通过状态监控通道在本端单盘与对端单盘之间建立连接;
若建立连接成功,本端单盘通过状态监控通道获取对端单盘的状态信息并保存在本端单盘中;
若建立连接不成功,获取本端单盘的SerDes通道的自协商信息,根据SerDes通道的自协商信息得出对端单盘不在位状态,将对端单盘的不在位状态存储在本端单盘中,并重复尝试建立连接直至建立连接成功。
在上述方案的基础上,获取本端单盘的SerDes通道连接关系,根据对端单盘的状态信息和SerDes通道连接关系,控制本端单盘的SerDes通道的供电使能,具体包括以下步骤:
根据对端单盘的状态信息,查找本端单盘的映射表项,所述映射表项用于记录本端单盘的SerDes通道连接关系,得出需调整的SerDes通道信息;
根据需调整的SerDes通道信息,下发打开或者关闭对应SerDes通道的供电使能的配置,控制交换芯片打开或者关闭对应的SerDes通道的供电使能。
本发明还提供一种设备功耗动态调整***,所述***包括交换盘、业务盘和设于交换盘与业务盘之间的状态监控通道;
交换盘和业务盘均包括FPGA逻辑模块、CPU处理模块和交换芯片,其中:
FPGA逻辑模块,其用于:通过状态监控通道在本端单盘与对端单盘之间建立连接,通过状态监控通道获取对端单盘的状态信息存储在本端单盘中,发送中断信息至CPU处理模块;
CPU处理模块,其用于:接收FPGA逻辑模块发送的中断信息,获取本端单盘中存储的SerDes通道连接关系及对端单盘的状态信息;根据对端单盘的状态信息和SerDes通道连接关系,下发控制本端单盘的SerDes通道的供电使能的配置至交换芯片;
交换芯片,其用于:根据CPU处理模块下发的控制本端单盘的SerDes通道的供电使能的配置,打开或者关闭对应的SerDes通道。
在上述方案的基础上,所述状态监控通道为本端单盘与对端单盘之间,采用3.3VLVTTL电平的两根物理连线。
在上述方案的基础上,对端单盘为业务盘时,所述对端单盘的状态信息包括单盘在位状态、单盘初始化状态和面板端口使用数量;
对端单盘为交换盘时,所述对端单盘的状态信息包括单盘在位状态、单盘初始化状态。
在上述方案的基础上,所述FPGA逻辑模块包括FPGA状态监控单元、FPGA寄存器单元和FPGA中断处理单元:
FPGA状态监控单元,其用于:通过状态监控通道在本端单盘与对端单盘之间建立连接;若建立连接成功,通过状态监控通道获取对端单盘的状态信息并保存在FPGA寄存器单元中;若建立连接不成功,获取本端单盘FPGA寄存器单元中的SerDes通道的自协商信息,根据SerDes通道的自协商信息得出对端单盘不在位状态,将对端单盘的不在位状态存储在FPGA寄存器单元中,并重复尝试建立连接直至建立连接成功;
FPGA寄存器单元,其用于:存储对端单盘的状态信息、SerDes高速总线的自协商信息和对端单盘不在位状态;
FPGA中断处理单元,其用于:发送中断信息至本端单盘的CPU处理模块。
在上述方案的基础上,所述CPU处理模块包括:
CPU中断处理单元,其用于:接收FPGA逻辑模块发送的中断信息,启动本端单盘的CPU Local Bus总线;通过CPU Local Bus总线访问本端单盘的FPGA寄存器单元,获取对端单盘的状态信息;
交换芯片配置单元,其用于:根据对端单盘的状态信息,查找本端单盘CPU寄存器单元存储的映射表项,得出需调整的SerDes通道信息;根据需调整的SerDes通道信息,下发打开或者关闭对应SerDes通道的供电使能的配置信息至交换芯片;
CPU寄存器单元,其用于:存储本端单盘的映射表项,所述映射表项用于记录本端单盘的SerDes通道连接关系。
与现有技术相比,本发明的优点在于:
本发明在交换盘和业务盘之间加入状态监控通道,实时监控单盘在位、单盘初始化状态、插拔卡、面板端口使用数量等对端单盘的状态信息,通过交换芯片实时控制相应高速SerDes通道的使能供电,实现动态调整,达到降低设备功耗的目的,保证了设备工作在合理的温度范围,延长设备使用寿命。通过状态监控通道,有效节省CPU和带内网管通道资源。该方案也适用于其他机框式设备,通过减少业务盘和交换盘之间信号数量,降低***设计复杂性。
具体实施方式
以下结合附图对本发明的实施例作进一步详细说明。
本发明实施例提供一种设备功耗动态调整方法,其用于单盘功耗的动态调整,所述单盘为业务盘或交换盘,所述业务盘和交换盘之间有serdes通道连接,包括以下步骤:
在本端单盘与对端单盘之间建立状态监控通道,本端单盘通过状态监控通道获取对端单盘的状态信息;
获取本端单盘的SerDes通道连接关系,根据对端单盘的状态信息和SerDes通道连接关系,控制本端单盘的SerDes通道的供电使能。
本发明实施例在交换盘和业务盘之间加入状态监控通道,实时监控单盘在位、单盘初始化状态、插拔卡、面板端口使用数量等对端单盘的状态信息,通过交换芯片实时控制相应高速SerDes通道的使能供电,实现动态调整,达到降低设备功耗的目的,保证了设备工作在合理的温度范围,延长设备使用寿命。通过状态监控通道,有效节省CPU和带内网管通道资源。该方案也适用于其他机框式设备,通过减少业务盘和交换盘之间信号数量,降低***设计复杂性。
优选的,所述状态监控通道为本端单盘与对端单盘之间,采用3.3V LVTTL电平的两根物理连线。
优选的,对端单盘为业务盘时,所述对端单盘的状态信息包括单盘在位状态、单盘初始化状态和面板端口使用数量;
对端单盘为交换盘时,所述对端单盘的状态信息包括单盘在位状态、单盘初始化状态。
优选的,在本端单盘与对端单盘之间建立状态监控通道,本端单盘通过状态监控通道获取对端单盘的状态信息,具体包括以下步骤:
在本端单盘与对端单盘之间加入状态监控通道;
通过状态监控通道在本端单盘与对端单盘之间建立连接;
若建立连接成功,本端单盘通过状态监控通道获取对端单盘的状态信息并保存在本端单盘中;
若建立连接不成功,获取本端单盘的SerDes通道的自协商信息,根据SerDes通道的自协商信息得出对端单盘不在位状态,将对端单盘的不在位状态存储在本端单盘中,并重复尝试建立连接直至建立连接成功。
优选的,获取本端单盘的SerDes通道连接关系,根据对端单盘的状态信息和SerDes通道连接关系,控制本端单盘的SerDes通道的供电使能,具体包括以下步骤:
根据对端单盘的状态信息,查找本端单盘的映射表项,所述映射表项用于记录本端单盘的SerDes通道连接关系,得出需调整的SerDes通道信息;
根据需调整的SerDes通道信息,下发打开或者关闭对应SerDes通道的供电使能的配置,控制交换芯片打开或者关闭对应的SerDes通道的供电使能。
本发明实施例还提供一种设备功耗动态调整***,所述***包括交换盘、业务盘和设于交换盘与业务盘之间的状态监控通道;
交换盘和业务盘均包括FPGA逻辑模块、CPU处理模块和交换芯片,其中:
FPGA逻辑模块,其用于:通过状态监控通道在本端单盘与对端单盘之间建立连接,通过状态监控通道获取对端单盘的状态信息存储在本端单盘中,发送中断信息至CPU处理模块;
CPU处理模块,其用于:接收FPGA逻辑模块发送的中断信息,获取本端单盘中存储的SerDes通道连接关系及对端单盘的状态信息;根据对端单盘的状态信息和SerDes通道连接关系,下发控制本端单盘的SerDes通道的供电使能的配置至交换芯片;
交换芯片,其用于:根据CPU处理模块下发的控制本端单盘的SerDes通道的供电使能的配置,打开或者关闭对应的SerDes通道。
优选的,所述状态监控通道为本端单盘与对端单盘之间,采用3.3V LVTTL电平的两根物理连线。
优选的,对端单盘为业务盘时,所述对端单盘的状态信息包括单盘在位状态、单盘初始化状态和面板端口使用数量;
对端单盘为交换盘时,所述对端单盘的状态信息包括单盘在位状态、单盘初始化状态。
优选的,所述FPGA逻辑模块包括FPGA状态监控单元、FPGA寄存器单元和FPGA中断处理单元:
FPGA状态监控单元,其用于:通过状态监控通道在本端单盘与对端单盘之间建立连接;若建立连接成功,通过状态监控通道获取对端单盘的状态信息并保存在FPGA寄存器单元中;若建立连接不成功,获取本端单盘FPGA寄存器单元中的SerDes通道的自协商信息,根据SerDes通道的自协商信息得出对端单盘不在位状态,将对端单盘的不在位状态存储在FPGA寄存器单元中,并重复尝试建立连接直至建立连接成功;
FPGA寄存器单元,其用于:存储对端单盘的状态信息、SerDes高速总线的自协商信息和对端单盘不在位状态;
FPGA中断处理单元,其用于:发送中断信息至本端单盘的CPU处理模块。
优选的,所述CPU处理模块包括:
CPU中断处理单元,其用于:接收FPGA逻辑模块发送的中断信息,启动本端单盘的CPU Local Bus总线;通过CPU Local Bus总线访问本端单盘的FPGA寄存器单元,获取对端单盘的状态信息;
交换芯片配置单元,其用于:根据对端单盘的状态信息,查找本端单盘CPU寄存器单元存储的映射表项,得出需调整的SerDes通道信息;根据需调整的SerDes通道信息,下发打开或者关闭对应SerDes通道的供电使能的配置信息至交换芯片;
CPU寄存器单元,其用于:存储本端单盘的映射表项,所述映射表项用于记录本端单盘的SerDes通道连接关系。
如图2所示,本发明实施例的设备功耗动态调整******主要包括:业务盘100、交换盘200、高速交换总线(SerDes通道)300、自定义的1-wire总线(即状态监控通道)400组成。其中业务盘100包含了CPU处理模块1001、FPGA逻辑模块1002、交换芯片1003;交换盘200包含了CPU处理模块2001、FPGA逻辑模块2002、交换芯片2003。
FPGA逻辑模块包含了FPGA中断处理单元、FPGA状态监控单元、FPGA Local Bus接口、FPGA寄存器单元;CPU处理模块包含了CPU中断处理单元、CPU Local Bus接口、CPU寄存器单元和交换芯片配置单元。
FPGA寄存器模块主要用来存储单盘的状态信息、SerDes高速总线自协商信息。CPU寄存器模块主要用于存储Switch映射表项。
如图3所示,本发明实施例的具体的实施过程:
步骤301,本端单盘上电,***软件初始化,此时可以配置步骤307中的映射表项,FPGA加载内部程序。本端单盘为业务盘和交换盘中的其中一个,对端单盘为业务盘和交换盘中的另外一个。
步骤302,本端单盘上的FPGA状态监控单元对1-Wire总线进行初始化,也就是控制以使得本端单盘与对端单盘建立连接,本端单盘上的FPGA为主器件,对端单盘上的FPGA为从器件。
步骤303,若1-wire总线初始化成功,本端单盘上的FPGA状态监控单元获取对端单盘的状态信息,并将这些状态信息保存在本端单盘的FPGA寄存器模块。
若对端单盘为交换盘,则状态信息包括初始化状态和插、拔卡状态信息;若对端单盘为业务盘,则状态信息包括初始化状态、业务盘端口使用数量(就是图中1G/10G/40G/100G等业务端口)、插、拔卡状态信息。
如果1-wire总线初始化不成功,本端单盘的FPGA状态监控单元会不停的重复1-wire总线初始化的动作直到检测到对端单盘上线,同时本端FPGA状态监控单元会综合本盘上SerDes高速总线的自协商信息,判断对端单盘不在位,并将对端单盘的不在位这一状态信息存储在本端单盘的FPGA寄存器模块中。
SerDes高速总线的自协商信息是CPU单元中的交换芯片配置单元从交换芯片内部寄存器中实时获取,并将这些信息通过Local Bus总线接口存储在FPGA寄存器模块中的。
步骤304,本端单盘的FPGA中断处理单元启动中断处理程序,以中断的方式告知本端单盘的CPU中断处理单元,就是发送一个中断信息至本端单盘的CPU中断处理单元,告知状态信息有变化,需要访问读取即可。
步骤305,本端单盘的CPU中断处理单元获取中断信息,并启动本端单盘的CPULocal Bus总线。
步骤306,通过本端单盘的CPU Local Bus总线访问本端单盘的FPGA寄存器模块,获取对端单盘的状态信息。
步骤307,本端单盘的CPU的交换芯片配置单元根据对端单盘的状态信息,查找本端单盘CPU寄存器模块内部存储的映射表项。
映射表项包含了SerDes高速总线具体的连接关系。
对于交换盘,映射表项主要包含交换盘上的SerDes高速总线连接到哪一个业务盘的具体信息;
对于业务盘,映射表项主要包括:1、业务盘上SerDes高速总线连接到哪一个具体交换盘的具体信息。2、业务盘上Serdes高速总线连接到哪一个具体物理端口的具体信息。业务盘上通常包含了对外的物理端口,如1G/10G/40G/100G等业务端口。
映射表项存储这些连接信息,和单盘(交换盘、业务盘)在机架设备所处的槽位、单盘类型有关。这些信息是在单盘上电,***软件初始化的过程中写入到CPU寄存器模块的。
步骤308,本端单盘CPU的交换芯片配置单元启动配置通道,通常为PCIe通道,配置本端单盘的交换芯片。
步骤309,交换芯片根据具体配置信息,打开或者关闭相应高速SerDes通道的供电使能,达到动态调整***功耗的目的。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、服务器或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、服务器和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。