分布式智能平台管理总线ipmb连接方法及atca机框的制作方法
【技术领域】
[0001]本发明涉及计算机领域,特别是涉及一种分布式智能平台管理总线(IntelligentPlatform Management BUS,简称为 IPMB)连接方法及 ATCA 机框。
【背景技术】
[0002]先进的电信计算平台(AdvancedTelecom Computing Architecture,简称为ATCA)标准始于在电信、航天、工业控制、医疗器械、智能交通、军事装备等领域应用广泛的新一代主流工业计算技术——CompactPCI标准。是为下一代融合通信及数据网络应用提供的一个高性价比的、基于模块化结构的、兼容的、并可扩展的硬件构架。
[0003]智能平台管理接口(Intelligent Platform Management Interface,简称为IPMI)原本是一种因特网(Intel)架构的企业系统的周边设备所采用的一种工业标准。如图1所示,在ATCA机框中,IPMI包含了一个以基板管理控制器(BMC)为主的控制器和分布在不同系统模组的智能平台管理控制器(IPMC)完成对ACTA系统中的单板的管理。IPMC分布在系统的单板上,用于管理、监视和控制单板上的电源电压、温度传感器和风扇的转速等。
[0004]基板管理控制器(BMC)通过智能平台管理总线(IPMB)连接各单板,提供基板管理控制器对其它单板的IPMC管理通信通道。IPMB通信总线采用I2C信号线(包括一条数据线SDA、一条时钟线SCL),ATCA规范制定要求单板有2个IPMB总线接口,分别称作IPMB-A和IPMB-B,两条总线合一称之为ΙΡΜΒ-0。目前IPMB连接方式主要是以双总线或者双星型配置方式实现,以保证系统的稳定性。
[0005]在IPMB双总线连接方式中,主备BMC分别提供2个IPMB总线接口 IPMB-A和IPMB-B,外围单板上的IPMC节点同时提供两路I2C接口分别挂载到两路IPMB总线上。实际工作时,主用BMC作为I2C总线的主设备,管理外围单板节点上的IPMC和备用BMC上的IPMC。当主用BMC出现故障时,备用BMC成为I2C总线的主设备,替代故障BMC完成系统管理功能。
[0006]对于IPMB双总线连接方式具有以下缺点:任意IPMC或BMC节点的I2C信号出现硬件信号异常(SCL或SDA常低),会把整条I2C总线箝位(无法进行正常数据收发),导致所有的IPMC节点均无法通过I2C总线信号进行通信;另外,I2C故障单板位置也无法进行定位。
[0007]在IPMB双星型连接方式中,BMC与IPMC之间是点对点的通信。星型连接能够避免总线型连接中的缺点。如图2所示,目前的星型连接方式中,主要是控制I2C开关进行I2C通道的切换,BMC的处理器与I2C开关之间是通过一条I2C总线连接。
[0008]现有技术中公开了一种对星型IPMB总线结构的改进,主备BMC的处理器分别提供一条IPMB总线经过I2C开关形成独立的IPMB总线对IPMC节点进行管理。这种集中式的数据管理方式不能够对设备环境进行及时的掌控,特别当管理的槽位增加,数据量激增时,机框信息的反馈延迟更加严重。同时,当正在通信的IPMC节点硬件故障时,仍然会钳住I2C总线,导致BMC失去对总线的控制。
【发明内容】
[0009]鉴于现有技术中IPMB通信带宽窄和单个IPMC节点故障导致机框管理功能瘫痪问题,提出了本发明以便提供一种克服上述问题的分布式智能平台管理总线IPMB连接方法及ATCA机框。
[0010]本发明提供一种分布式智能平台管理总线IPMB连接方法,用于高级电信计算体系结构ATCA机框,其中,具有多个槽位的ATCA框架中设置有插在槽位中的ATCA单板,每个ATCA单板包括两个主控板和至少一个节点板,每个节点板上均设置有智能平台管理控制器IPMC,基板管理控制器BMC分别集成在两个主控板上,具体包括:在每个主控板上设置智能平台管理接口 IPMI,每个主控板上的BMC通过IPMI与各节点板的IPMC、以及另一主控板上的IPMI进行点到点的星型连接;BMC通过IPMI与外围板的IPMC节点进行数据交换,其中,BMC与IPMI通过本地总线进行数据交换,IPMI通过独立分布的基于I2C的多路IPMB总线与外围板的各个IPMC节点进行数据交换,IPMI提供的基于I2C的多路IPMB总线的总数与外围板的数量相对应。
[0011]优选地,两个主控板上BMC分别为主用BMC和备用BMC,主用BMC和备用BMC之间设置有一条IPMB总线,在其中一个作为主用BM时,另一个作为IPMC节点使用,在当前主用BMC故障时,备用BMC切换为主用BMC。
[0012]优选地,BMC通过IPMI与外围板的IPMC节点进行数据交换具体包括:BMC通过本地总线向IPMI进行读数据和写数据的逻辑操作;其中,BMC主动向IPMC写数据时,IPMI处于主机模式;IPMC主动向BMC写数据时,IPMI处于从机模式,IPMI的默认工作模式为从机接收模式,在从机接收模式下接收完一个包后即退出从机接收模式,等待BMC确定其工作模式;IPMI进行本地总线接口与I2C接口之间数据的转换、以及I2C接口与IPMC之间的数据传输。
[0013]优选地,BMC通过本地总线向IPMI进行读数据和写数据的逻辑操作具体包括:BMC通过本地总线向IPMI写数据包括如下处理:向IPMI中的写数据缓存寄存器写入数据,在BMC写完一个IPMB通信协议数据包后,主动关闭写数据缓存寄存器的写使能,并将发送任务交给IPMI,IPMI将IPMB通信协议数据包发送完毕后,将写数据缓存寄存器的写使能打开,BMC软件继续写入数据进行发送;BMC通过本地总线向IPMI读数据包括如下处理:BMC接收到本地总线通道上报的接收中断后,读取IPMI中的长度寄存器,获取将要取出的数据包的长度,再从IPMI中的数据寄存器中将数据包内容按字节读出,直到长度寄存器和数据寄存器被读空。
[0014]优选地,上述方法进一步包括:IPMI统计BMC与IPMC之间交互的数据包的状态并进行上报。
[0015]本发明还提供了一种高级电信计算体系结构ATCA机框,包括:具有多个槽位的ATCA框架中设置有插在槽位中的ATCA单板,每个ATCA单板包括两个主控板和至少一个节点板,每个节点板上均设置有智能平台管理控制器IPMC,基板管理控制器BMC分别集成在两个主控板上,每个主控板上设置有智能平台管理接口 IPMI,每个主控板上的BMC通过IPMI与各节点板的IPMC、以及另一主控板上的IPMI进行点到点的星型连接,BMC通过IPMI与外围板的IPMC节点进行数据交换,其中,BMC与IPMI通过本地总线进行数据交换,IPMI通过独立分布的基于I2C的多路IPMB总线与外围板的各个IPMC节点进行数据交换,IPMI提供的基于I2C的多路IPMB总线的总数与外围板的数量相对应。
[0016]优选地,两个主控板上BMC分别为主用BMC和备用BMC,主用BMC和备用BMC之间设置有一条IPMB总线,在其中一个作为主用BM时,另一个作为IPMC节点使用,在当前主用BMC故障时,备用BMC切换为主用BMC。
[0017]优选地,BMC具体用于:通过本地总线向IPMI进行读数据和写数据的逻辑操作;IPMI具体用于:进行本地总线接口与I2C接口之间数据的转换、以及I2C接口与IPMC之间的数据传输,其中,BMC主动向IPMC写数据时,IPMI处于主机模式;IPMC主动向BMC写数据时,IPMI处于从机模式,IPMI的默认工作模式为从机接收模式,IPMI在从机接收模式下接收完一个包后即退出从机接收模式,等待BMC确定其工作模式。
[0018]优选地,BMC具体用于:向IPMI中的写数据缓存寄存器写入数据,在BMC写完一个IPMB通信协议数据包后,主动关闭写数据缓存寄存器的写使能,并将发送任务交给IPMI,在接收到本地总线通道上报的接收中断后,读取IPMI中的长度寄存器,获取将要取出的数据包的长度,再从IPMI中的数据寄存器中将数据包内容按字节读出,直到长度寄存器和数据寄存器被读空;IPMI具体用于:将IPMB通信协议数据包发送完毕后,将写数据缓存寄存器的写使能打开,BMC软件继续写入数据进行发送。
[0019]优选地,IPMI进一步用于:统计BMC与IPMC之间交互的数据包的状态并进行上报。
[0020]本发明有益效果如下:
[0021]借助于本发明实施例所述的分布式的IPMB连接方法,解决了现有技术中IPMB通信带宽窄和单个IPMC节点故障导致机框管理功能瘫痪问题,在本发明实施例的技术方案中,各IPMB总线之间是独立的,其中任意IPMB总线故障后不会导致整框管理系统故障,提高系统的可靠性;机框管理控制器可以并行处理各条IPMB总线,提高系统数据响应和处理速度。
[0022]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0023]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并
不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0024]图1是现有技术中ATCA机框IPMB双总线连接架构实现示意图;
[0025]图2是现有技术中改进的ATCA机框的IPMB双星型连接架构实现示意图;
[0026]图3是本发明实施例的分布式智能平台管理总线IPMB连接方法的流程图;
[0027]图4是本发明实施例的ATCA机框的中分布式IPMB连接架构示意图;
[0028]图5是本发明实施例的IPMI提供24路IPMB接口示意图;
[0029]图6是本发明实时的IPMI接口中的一路状态转换的示意图。
【具体实施方式】
[0030]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0031]为了解决现有技术中IPMB通信带宽窄和单个IPMC节点故障导致机框管理功能瘫痪问题,本发明提供了一种分布式智能平台管理总线IPMB连接方法及ATCA机框,具体地:本发明实施例实现了一种分布式的IPMB总线连接方法,在基板管理控制器(BMC)节点集成一种智能平台管理接口(IPMI)设备,配合BMC软件,提供分布式的IPMB总线通道管理ATCA机架。其中,BMC节点与IPMI设备之间通过并行总线通道实现数据交换;IPMI提供独立的IPMB总线通道与外围板的IPMC节点实现数据交换,这样可以在BMC节点并行处理外围分布的IPMC节点的数据,实现更快的系统响应。进一步,各通道独立通信的设计,能够避免某个节点故障影响整个机框的管理。
[0032]本发明实施例还提供了一种高级电信计算体系结构ATCA机框,包括具有多个槽位的ATCA框架及插在槽位中的ATCA单板,所述ATCA单板包括两个主控单板和至少一个节点板,ATCA单板上均具有智能平台管理控制器IPMC,其中,基板管理控制器BMC分别集成在两个主控板上,对于每个主控板上的BMC通过IPMI接口与各节点板的IPMC、另一主控板上的IPMI为点到点的星型连接,主控板上的IPMI提供独立的I2C信号完成IPMB管理总线的分布式连接。
[0033]在本发明实施例中,包括主备基板管理控制器(BMC),用于系统总体管理控制;包括智能平台管理控制器(IPMC),用于管理控制系统节点的温度,电压等实时监控信息;包括智能平台管理总线(IPMB),用于提供BMC与IPMC之间通信的协议规范。主备BMC都与外围IPMC节点按照星型拓扑结构连接,同时主备BMC之间存在一条IPMB链路,其中一个作为主BMC时,另一个作为IPMC节点使用。当前主用BMC故障时,备用BMC切换为主用BMC,完成系统管理控制功能。
[0034]本发明还提供了一种BMC与IPMC之间的连接方式。通过一种智能平台管理接口(IPMI)将BMC与IPMC之间的通道分布化,提供独立的IPMB通道管理外围板上的IPMC节点。IPMI与BMC之间通过并行总线传输数据。
[0035]以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
[0036]方法实施例
[0037]根据本发明的实施例,提供了一种分布式智能平台管理总线IPMB连接方法,用于高级电信计算体系结构ATCA机框,其中,具有多个槽位的ATCA框架中设置有插在槽位中的ATCA单板,每个ATCA单板包括两个主控板和至少一个节点板,每个节点板上均设置有智能平台管理控制器IPMC,基板管理控制器BMC分别集成在两个主控板上,优选地,在本发明实施例中,两个主控板上BMC分别为主用BMC和备用BMC,主用BMC和备用BMC之间设置有一条IPMB总线,在其中一个作为主用BM时,另一个作为IPMC节点使用,在当前主用BMC故障时,备用BMC切换为主用BMC。
[0038]图3是本发明实施例的分布式智能平台管理总线IPMB连接方法的流程图,如图3所示,根据本发明实施例的分布式智能平台管理总线IPMB连接方法包括如下处理:
[0039]步骤301,在每个主控板上设置智能平台管理接口 IPMI,每个主控板上的BMC通过IPMI与各节点板的IPMC、以及另一主控板上的IPMI进行点到点的星型连接;
[0040]步骤302,BMC通过IPMI与外围板的IPMC节点进行数据交换,其中,BMC与IPMI通过本地总线进行数据交换,IPMI通过独立分布的基于I2C的多路IPMB总线与外围板的各个IPMC节点进行数据交换,IPMI提供的基于I2C的多路IPMB总线的总数与外围板的数量相对应。
[0041]在步骤302中,BMC通过IPMI与外围板的IPMC节点进行数据交换具体包括:
[0042]步骤1、BMC通过本地总线向IPMI进行读数据和写数据的逻辑操作;其中,BMC主动向IPMC写数据时,IPMI处于主机模式;IPMC主动向BMC写数据时,IPMI处于从机模式,IPMI的默认工作模式为从机接收模式,在从机接收模式下接收完一个包后即退出从机接收模式,等待BMC确定其工作模式;
[0043]其中,BMC通过本地总线向IPMI进行读数据和写数据的逻辑操作具体包括:
[0044]BMC通过本地总线向IPMI写数据包括如下处理:向IPMI中的写数据缓存寄存器写入数据,在BMC写完一个IPMB通信协议数据包后,主动关闭写数据缓存寄存器的写使能,并将发送任务交给IPMI,IPMI将IPMB通信协议数据包发送完毕后,将写数据缓存寄存器的写使能打开,BMC软件继续写入数据进行发送;
[0045]BMC通过本地总线向IPMI读数据包括如下处理:BMC接收到本地总线通道上报的接收中断后,读取IPMI中的长度寄存器,获取将要取出的数据包的长度,再从IPMI中的数据寄存器中将数据包内容按字节读出,直到长度寄存器和数据寄存器被读空。
[0046]步骤2、IPMI进行本地总线接口与I2C接口之间数据的转换、以及12C接口与IPMC之间的数据传输。
[0047]优选地,在本发明实施例中,IPMI还可以统计BMC与IPMC之间交互的数据包的状态并进行上报。
[0048]以下结合附图,对本发明实施例的上述技术方案进行详细说明。
[0049]图4是本发明实施例的ATCA机框的中分布式IPMB连接架构示意图,如图4所示,包括:主备基板管理控制器(BMC)、智能平台管理接口(IPMI)、以及智能平台管理控制器(IPMC)0
[0050]BMC实现用户数据与IPMB协议包之间的转换,完成机架对外围节点监控信息的管理控制。IPMI模块要实现LOCAL BUS接口(图5中的I总线)与I2C接口之间数据的转化、I2C接口与12C设备之间的数据传输(图5中的2总线)。
[0051]IPMI连接BMC节点和IPMC节点。BMC与IPMC之间的通讯包括:BMC主动向IPMC写数据和IPMC主动向BMC写数据。BMC主动向IPMC写数据时,IPMI处于主机模式;IPMC主动向BMC写数据时,IPMI作为从机模式。为了确保尽量及时的接收IPMC节点上报的数据,IPMI的默认工作模式应该是从机接收模式,当然,为了防止长时间处于该模式下,在一定条件下,需要退出该进程,等待BMC的仲裁,现在采用的方式是在从机接收模式下接收完一个包后即退出从机接收模式。
[0052]BMC通过Local Bus与IPMI内部缓存进行读、写数据的逻辑操作,通过IPMI设备中的Local Bus模块实现与IPMI内部信息的交互,包括参数的配置,状态信息的获取和与I2C总线的通信。
[0053]BMC向发送缓存发送数据的操作实现(Master Write)过程:BMC软件通过向通道内的写数据缓存寄存器写数据来完成,写完一个IPMB通信协议数据包后,主动关闭写缓存写使能寄存器,将发送任务交给IPMI设备,BMC软件就完成了向IPMI设备写入一个完整的包的操作。IPMI设备将数据包发送完毕后,会将数据缓存寄存器的写使能打开,BMC软件可以继续写入数据进行发送。
[0054]BMC从接收缓存读出数据的操作实现(Slave Receive)过程:BMC软件发现通道上报接收中断,并确定类型是接收中断,BMC读取长度寄存器,得到将要取出数据包的长度,再从数据寄存器中将数据包内容按字节读出,直到长度寄存器和数据寄存器被读空,长度寄存器和数据寄存器读空操作后,如果一个寄存器为空,一个寄存器不为空,都将被视为异常,上报异常中断。
[0055]优选地,在本发明实施例中,IPMI接口需要实现的功能包括:实现独立分布的多路I2C功能,采用LVTTL电平,时钟频率10KHz ;实现发起主发送器模式(Master Write)功能;实现发起主接收模式(Master Read)功能;实现响应主设备发起的START,实现从接受器模式(Slave Receive)功能;实现和Host CPU之间的Local Bus接口;实现Local Bus和多路I2C接口的转换;实现必要的统计功能,提供给软件监控收发包状态。
[0056]主用BMC与各节点板的IPMC,通过IPMI
接口提供的I2C信号(一条SDA数据线,一条SCL时钟线)连接。IPMI提供的I2C信号通道总数与外围节点板的数量对应,另外增加一路连接到备用BMC的IPMI接口。各条通道之间的I2C信号是相互独立的,BMC同时可以与任意外围节点板进行点对点通信。备用主控的I2C拓扑结构与主用主控相同。
[0057]主用BMC与备用BMC之间通过IPMI提供的I2C通道协商主备用状态。主备的状态不是固定的。系统上电时,两个BMC竞争主备状态,获得主用的BMC管理系统功能,另一块BMC作为被管理的节点处于系统中。如果当前主用BMC出现故障时,则协商为备用状态,处于被管理节点;当前备用BMC成为主用状态,完成系统管理功能。
[0058]通过IPMI接口的形式实现的分布式的IPMB总线,各总线之间完全独立,BMC软件可以同步处理外围IPMC节点上报的数据。同时接口扩展方便,只需要修改IPMI的逻辑,就可以灵活的支持不同数量的IPMC节点。
[0059]图5是本发明实施例的IPMI提供24路IPMB接口示意图,如图5所示,IPMI接口提供的24路IPMB总线,每一路独立控制一个IPMC节点。可以实现对业务板23个槽位的监控,同时提供一路给主控板节点。
[0060]IPMI提供的每一路IPMB总线具有相同的状态机调度。图6是本发明实时的IPMI接口中的一路状态转换的示意图,如图6所示,BMC使能IPMI调度机后,IPMI的调度机从空闲状态进入到从机接收状态,从机接收状态的优先级较高,如果发现作为主机的IPMC有数据发送时,状态机进入到从机接收处理流程,用户接收完一个包或缓存将满的时候,将进入从机接收等待模式,此时若有数据发送,将自动跳转到主机发送流程;也就是说,调度机默认运行在从收状态,BMC软件只需要将发送数据写入发送缓存,发送时机由IPMI的调度机处理。
[0061]在主机发送模式状态中,IPMI处于I2C协议的主机模式,IPMC处于I2C协议的从机模式。在数据传输的过程中,BMC通过Local Bus接口将数据缓存在主传输缓冲区(Master Transmit buffer,简称为MTB)中。当I2C传输链路握手建立后,IPMI将数据传输到IPMC,BMC可以通过IPMI提供的I2CSTAT监控传输过程。
[0062]在从机接收模式状态中,IPMC有数据要上报给IPMI时,IPMC处于I2C协议的主机模式,IPMI处于I2C协议的从机模式。IPMI接收来自IPMC发送的数据,收完一个包后将接收到的长度写入缓存中,并通知BMC读出。IPMI中的设计允许每个通道的数据缓存中同时存在多个包。
[0063]数据缓存为空的时候,长度缓存必须为空;长度缓存为空的时候,数据缓存也必须为空,否则视为错误,通知用户。
[0064]IPMI状态机的默认工作状态是从机接收模式,因此IPMC有数据要上报时,优先响应。如果IPMC总有数据上报的时候,状态机将总工作在从机接收模式中,从机接收模式的优先级最高。如果BMC发送数据到IPMI后,状态机会等待时机转换到主机发送模式。
[0065]综上所述,采用本发明实施例所述的分布式的IPMB连接方法,与现有技术相比,各IPMB总线之间是独立的,其中任意IPMB总线故障后不会导致整框管理系统故障,提高系统的可靠性;机框管理控制器可以并行处理各条IPMB总线,提高系统数据响应和处理速度。
[0066]装置实施例
[0067]根据本发明的实施例,提供了一种高级电信计算体系结构ATCA机框,如图4所示,根据本发明实施例的高级电信计算体系结构ATCA机框包括:具有多个槽位的ATCA框架中设置有插在槽位中的ATCA单板,每个ATCA单板包括两个主控板和至少一个节点板,每个节点板上均设置有智能平台管理控制器IPMC,基板管理控制器BMC分别集成在两个主控板上,每个主控板上设置有智能平台管理接口 IPMI,每个主控板上的BMC通过IPMI与各节点板的IPMC、以及另一主控板上的IPMI进行点到点的星型连接,BMC通过IPMI与外围板的IPMC节点进行数据交换,其中,BMC与IPMI通过本地总线进行数据交换,IPMI通过独立分布的基于I2C的多路IPMB总线与外围板的各个IPMC节点进行数据交换,IPMI提供的基于I2C的多路IPMB总线的总数与外围板的数量相对应。
[0068]优选地,两个主控板上BMC分别为主用BMC和备用BMC,主用BMC和备用BMC之间设置有一条IPMB总线,在其中一个作为主用BM时,另一个作为IPMC节点使用,在当前主用BMC故障时,备用BMC切换为主用BMC。
[0069]BMC具体用于:通过本地总线向IPMI进行读数据和写数据的逻辑操作;
[0070]IPMI具体用于:进行本地总线接口与I2C接口之间数据的转换、以及I2C接口与IPMC之间的数据传输,其中,BMC主动向IPMC写数据时,IPMI处于主机模式;IPMC主动向BMC写数据时,IPMI处于从机模式,IPMI的默认工作模式为从机接收模式,IPMI在从机接收模式下接收完一个包后即退出从机接收模式,等待BMC确定其工作模式。
[0071]其中,BMC具体用于:向IPMI中的写数据缓存寄存器写入数据,在BMC写完一个IPMB通信协议数据包后,主动关闭写数据缓存寄存器的写使能,并将发送任务交给IPMI,在接收到本地总线通道上报的接收中断后,读取IPMI中的长度寄存器,获取将要取出的数据包的长度,再从IPMI中的数据寄存器中将数据包内容按字节读出,直到长度寄存器和数据寄存器被读空;
[0072]IPMI具体用于:将IPMB通信协议数据包发送完毕后,将写数据缓存寄存器的写使能打开,BMC软件继续写入数据进行发送。
[0073]IPMI进一步用于:统计BMC与IPMC之间交互的数据包的状态并进行上报。
[0074]以下结合附图,对本发明实施例的上述技术方案进行详细说明。
[0075]如图4所示,包括:主备基板管理控制器(BMC)、智能平台管理接口(IPMI)、以及智能平台管理控制器(IPMC)。
[0076]BMC实现用户数据与IPMB协议包之间的转换,完成机架对外围节点监控信息的管理控制。IPMI模块要实现LOCAL BUS接口(图5中的I总线)与I2C接口之间数据的转化、I2C接口与12C设备之间的数据传输(图5中的2总线)。
[0077]IPMI连接BMC节点和IPMC节点。BMC与IPMC之间的通讯包括:BMC主动向IPMC写数据和IPMC主动向BMC写数据。BMC主动向IPMC写数据时,IPMI处于主机模式;IPMC主动向BMC写数据时,IPMI作为从机模式。为了确保尽量及时的接收IPMC节点上报的数据,IPMI的默认工作模式应该是从机接收模式,当然,为了防止长时间处于该模式下,在一定条件下,需要退出该进程,等待BMC的仲裁,现在采用的方式是在从机接收模式下接收完一个包后即退出从机接收模式。
[0078]BMC通过Local Bus与IPMI内部缓存进行读、写数据的逻辑操作,通过IPMI设备中的Local Bus模块实现与IPMI内部信息的交互,包括参数的配置,状态信息的获取和与I2C总线的通信。
[0079]BMC向发送缓存发送数据的操作实现(Master Write)过程:BMC软件通过向通道内的写数据缓存寄存器写数据来完成,写完一个IPMB通信协议数据包后,主动关闭写缓存写使能寄存器,将发送任务交给IPMI设备,BMC软件就完成了向IPMI设备写入一个完整的包的操作。IPMI设备将数据包发送完毕后,会将数据缓存寄存器的写使能打开,BMC软件可以继续写入数据进行发送。
[0080]BMC从接收缓存读出数据的操作实现(Slave Receive)过程:BMC软件发现通道上报接收中断,并确定类型是接收中断,BMC读取长度寄存器,得到将要取出数据包的长度,再从数据寄存器中将数据包内容按字节读出,直到长度寄存器和数据寄存器被读空,长度寄存器和数据寄存器读空操作后,如果一个寄存器为空,一个寄存器不为空,都将被视为异常,上报异常中断。
[0081]优选地,在本发明实施例中,IPMI接口需要实现的功能包括:实现独立分布的多路I2C功能,采用LVTTL电平,时钟频率10KHz ;实现发起主发送器模式(Master Write)功能;实现发起主接收模式(Master Read)功能;实现响应主设备发起的START,实现从接受器模式(Slave Receive)功能;实现和Host CPU之间的Local Bus接口;实现Local Bus和多路I2C接口的转换;实现必要的统计功能,提供给软件监控收发包状态。
[0082]主用BMC与各节点板的IPMC,通过IPMI接口提供的I2C信号(一条SDA数据线,一条SCL时钟线)连接。IPMI提供的I2C信号通道总数与外围节点板的数量对应,另外增加一路连接到备用BMC的IPMI接口。各条通道之间的I2C信号是相互独立的,BMC同时可以与任意外围节点板进行点对点通信。备用主控的I2C拓扑结构与主用主控相同。
[0083]主用BMC与备用BMC之间通过IPMI提供的I2C通道协商主备用状态。主备的状态不是固定的。系统上电时,两个BMC竞争主备状态,获得主用的BMC管理系统功能,另一块BMC作为被管理的节点处于系统中。如果当前主用BMC出现故
障时,则协商为备用状态,处于被管理节点;当前备用BMC成为主用状态,完成系统管理功能。
[0084]通过IPMI接口的形式实现的分布式的IPMB总线,各总线之间完全独立,BMC软件可以同步处理外围IPMC节点上报的数据。同时接口扩展方便,只需要修改IPMI的逻辑,就可以灵活的支持不同数量的IPMC节点。
[0085]图5是本发明实施例的IPMI提供24路IPMB接口示意图,如图5所示,IPMI接口提供的24路IPMB总线,每一路独立控制一个IPMC节点。可以实现对业务板23个槽位的监控,同时提供一路给主控板节点。
[0086]IPMI提供的每一路IPMB总线具有相同的状态机调度。图6是本发明实时的IPMI接口中的一路状态转换的示意图,如图6所示,BMC使能IPMI调度机后,IPMI的调度机从空闲状态进入到从机接收状态,从机接收状态的优先级较高,如果发现作为主机的IPMC有数据发送时,状态机进入到从机接收处理流程,用户接收完一个包或缓存将满的时候,将进入从机接收等待模式,此时若有数据发送,将自动跳转到主机发送流程;也就是说,调度机默认运行在从收状态,BMC软件只需要将发送数据写入发送缓存,发送时机由IPMI的调度机处理。
[0087]在主机发送模式状态中,IPMI处于I2C协议的主机模式,IPMC处于I2C协议的从机模式。在数据传输的过程中,BMC通过Local Bus接口将数据缓存在主传输缓冲区(Master Transmit buffer,简称为MTB)中。当I2C传输链路握手建立后,IPMI将数据传输到IPMC,BMC可以通过IPMI提供的I2CSTAT监控传输过程。
[0088]在从机接收模式状态中,IPMC有数据要上报给IPMI时,IPMC处于I2C协议的主机模式,IPMI处于I2C协议的从机模式。IPMI接收来自IPMC发送的数据,收完一个包后将接收到的长度写入缓存中,并通知BMC读出。IPMI中的设计允许每个通道的数据缓存中同时存在多个包。
[0089]数据缓存为空的时候,长度缓存必须为空;长度缓存为空的时候,数据缓存也必须为空,否则视为错误,通知用户。
[0090]IPMI状态机的默认工作状态是从机接收模式,因此IPMC有数据要上报时,优先响应。如果IPMC总有数据上报的时候,状态机将总工作在从机接收模式中,从机接收模式的优先级最高。如果BMC发送数据到IPMI后,状态机会等待时机转换到主机发送模式。
[0091]综上所述,采用本发明实施例所述的分布式的IPMB连接方法,与现有技术相比,各IPMB总线之间是独立的,其中任意IPMB总线故障后不会导致整框管理系统故障,提高系统的可靠性;机框管理控制器可以并行处理各条IPMB总线,提高系统数据响应和处理速度。
[0092]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1.一种分布式智能平台管理总线IPMB连接方法,用于高级电信计算体系结构ATCA机框,其中,具有多个槽位的ATCA框架中设置有插在槽位中的ATCA单板,每个ATCA单板包括两个主控板和至少一个节点板,每个节点板上均设置有智能平台管理控制器IPMC,基板管理控制器BMC分别集成在两个主控板上,其特征在于,所述方法具体包括: 在每个主控板上设置智能平台管理接口 IPMI,每个主控板上的BMC通过IPMI与各节点板的IPMC、以及另一主控板上的IPMI进行点到点的星型连接; 所述BMC通过所述IPMI与外围板的IPMC节点进行数据交换,其中,所述BMC与所述IPMI通过本地总线进行数据交换,所述IPMI通过独立分布的基于I2C的多路IPMB总线与外围板的各个IPMC节点进行数据交换,所述IPMI提供的基于I2C的多路IPMB总线的总数与外围板的数量相对应。2.如权利要求1所述的方法,其特征在于,所述两个主控板上BMC分别为主用BMC和备用BMC,所述主用BMC和备用BMC之间设置有一条IPMB总线,在其中一个作为主用BM时,另一个作为IPMC节点使用,在当前主用BMC故障时,备用BMC切换为主用BMC。3.如权利要求1所述的方法,其特征在于,所述BMC通过所述IPMI与外围板的IPMC节点进行数据交换具体包括: BMC通过本地总线向IPMI进行读数据和写数据的逻辑操作;其中,BMC主动向IPMC写数据时,IPMI处于主机模式;IPMC主动向BMC写数据时,IPMI处于从机模式,IPMI的默认工作模式为从机接收模式,在从机接收模式下接收完一个包后即退出从机接收模式,等待BMC确定其工作模式; IPMI进行本地总线接口与I2C接口之间数据的转换、以及12C接口与IPMC之间的数据传输。4.如权利要求3所述的方法,其特征在于,BMC通过本地总线向IPMI进行读数据和写数据的逻辑操作具体包括: BMC通过本地总线向IPMI写数据包括如下处理:向IPMI中的写数据缓存寄存器写入数据,在BMC写完一个IPMB通信协议数据包后,主动关闭写数据缓存寄存器的写使能,并将发送任务交给IPMI,IPMI将IPMB通信协议数据包发送完毕后,将写数据缓存寄存器的写使能打开,BMC软件继续写入数据进行发送; BMC通过本地总线向IPMI读数据包括如下处理:BMC接收到本地总线通道上报的接收中断后,读取IPMI中的长度寄存器,获取将要取出的数据包的长度,再从IPMI中的数据寄存器中将数据包内容按字节读出,直到长度寄存器和数据寄存器被读空。5.如权利要求1所述的方法,其特征在于,所述方法进一步包括:所述IPMI统计所述BMC与所述IPMC之间交互的数据包的状态并进行上报。6.一种高级电信计算体系结构ATCA机框,其特征在于,包括: 具有多个槽位的ATCA框架中设置有插在槽位中的ATCA单板,每个ATCA单板包括两个主控板和至少一个节点板,每个节点板上均设置有智能平台管理控制器IPMC,基板管理控制器BMC分别集成在两个主控板上,每个主控板上设置有智能平台管理接口 IPMI,每个主控板上的BMC通过IPMI与各节点板的IPMC、以及另一主控板上的IPMI进行点到点的星型连接,BMC通过所述IPMI与外围板的IPMC节点进行数据交换,其中,所述BMC与所述IPMI通过本地总线进行数据交换,所述IPMI通过独立分布的基于I2C的多路IPMB总线与外围板的各个IPMC节点进行数据交换,所述IPMI提供的基于I2C的多路IPMB总线的总数与外围板的数量相对应。7.如权利要求6所述的ATCA机框,其特征在于,所述两个主控板上BMC分别为主用BMC和备用BMC,所述主用BMC和备用BMC之间设置有一条IPMB总线,在其中一个作为主用BM时,另一个作为IPMC节点使用,在当前主用BMC故障时,备用BMC切换为主用BMC。8.如权利要求6所述的ATCA机框,其特征在于, BMC具体用于:通过本地总线向IPMI进行读数据和写数据的逻辑操作; IPMI具体用于:进行本地总线接口与I2C接口之间数据的转换、以及I2C接口与IPMC之间的数据传输,其中,BMC主动向IPMC写数据时,IPMI处于主机模式;IPMC主动向BMC写数据时,IPMI处于从机模式,IPMI的默认工作模式为从机接收模式,IPMI在从机接收模式下接收完一个包后即退出从机接收模式,等待BMC确定其工作模式。9.如权利要求8所述的ATCA机框,其特征在于, BMC具体用于:向IPMI中的写数据缓存寄存器写入数据,在BMC写完一个IPMB通信协议数据包后,主动关闭写数据缓存寄存器的写使能,并将发送任务交给IPMI,在接收到本地总线通道上报的接收中断后,读取IPMI中的长度寄存器,获取将要取出的数据包的长度,再从IPMI中的数据寄存器中将数据包内容按字节读出,直到长度寄存器和数据寄存器被读空; IPMI具体用于:将IPMB通信协议数据包发送完毕后,将写数据缓存寄存器的写使能打开,BMC软件继续写入数据进行发送。10.如权利要求6所述的ATCA机框,其特征在于,所述IPMI进一步用于:统计所述BMC与所述IPMC之间交互的数据包的状态并进行上报。
【专利摘要】本发明公开了一种分布式智能平台管理总线IPMB连接方法及ATCA机框。具有多个槽位的ATCA框架中设置有插在槽位中的ATCA单板,每个ATCA单板包括两个主控板和至少一个节点板,每个节点板上均设置有智能平台管理控制器IPMC,基板管理控制器BMC分别集成在两个主控板上,在每个主控板上设置智能平台管理接口IPMI,每个主控板上的BMC通过IPMI与各节点板的IPMC、以及另一主控板上的IPMI进行点到点的星型连接;BMC通过IPMI与外围板的IPMC节点进行数据交换,其中,BMC与IPMI通过本地总线进行数据交换,IPMI通过独立分布的基于I2C的多路IPMB总线与外围板的各个IPMC节点进行数据交换,IPMI提供的基于I2C的多路IPMB总线的总数与外围板的数量相对应。
【IPC分类】G06F13/40
【公开号】CN104899170
【申请号】CN201410083288
【发明人】刘斌涛
【申请人】中兴通讯股份有限公司
【公开日】2015年9月9日
【申请日】2014年3月7日
【公告号】WO2015131516A1