CN116795752B - 接口通信方法、装置以及服务器 - Google Patents

接口通信方法、装置以及服务器 Download PDF

Info

Publication number
CN116795752B
CN116795752B CN202311090170.9A CN202311090170A CN116795752B CN 116795752 B CN116795752 B CN 116795752B CN 202311090170 A CN202311090170 A CN 202311090170A CN 116795752 B CN116795752 B CN 116795752B
Authority
CN
China
Prior art keywords
interface
duration
timer
signal
partition
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
CN202311090170.9A
Other languages
English (en)
Other versions
CN116795752A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202311090170.9A priority Critical patent/CN116795752B/zh
Publication of CN116795752A publication Critical patent/CN116795752A/zh
Application granted granted Critical
Publication of CN116795752B publication Critical patent/CN116795752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3852Converter between protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本申请实施例提供了一种接口通信方法、装置以及服务器,其中,主机系统包括多个硬件分区,硬件分区运行的第一操作系统包括第一接口,BMC包括多个内核分区,部分的内核分区包括第二接口,第一接口与第二接口的接口类型不同,该方法包括:生成控制第一操作系统的控制指令;根据预定接口协议,通过第二接口将控制指令转换为第一接口的接口信号,其中,预定接口协议为第一接口的接口协议;通过第二接口将接口信号发送至第一接口。本申请解决了相关技术中主机系统硬件分区场景下BMC芯片设计复杂的问题。

Description

接口通信方法、装置以及服务器
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种接口通信方法、装置、计算机可读存储介质、电子设备和服务器。
背景技术
近年来随着半导体行业和集成电路技术的快速发展,处理器已经成为云计算、人工智能、大数据等领域的重要计算单元。为了实现硬件计算资源共享,提升多核处理器的利用率,常规做法是引入虚拟化技术,即基于处理器硬件平台虚拟出多个虚拟机,每个虚拟机运行一个独立的操作系统。然而,基于虚拟机的操作系统由于增加了虚拟机管理等开销一般无法满足业务的实时性要求。因此,通常会直接采用独占物理机的形式运行操作系统,这种“裸金属”式的处理器使用方式能显著降低业务处理时延。在服务器行业领域,通用主机系统CPU(Central Processing Unit,中央处理器)等计算资源硬件分区的技术应运而生,一台服务器被分区成两个甚至更多个物理主机系统,单独承载业务提供服务,这给服务器管理单元BMC(Baseboard Management Controller,基板管理控制器)的系统设计带来了难度和挑战,特别是BMC的PECI(Platform Environment Control Interface,平台环境控制接口)链路设计方面所面临的问题尤为突出。为了保障服务器长期稳定高效运行,服务器系统必须具备功能强大的故障监控管理功能。由于传统服务器通常只配置一个BMC管理单元,即只存在一路PECI控制器接口,这样在服务器硬件分区系统场景下,将面临各硬件分区系统无法独立使用PECI接口的问题,进而影响同一服务器平台不同分区系统故障管理功能的独立性。
现有的解决方案是对BMC的CPU架构进行升级,即重新设计面向主机系统多硬件分区系统的PECI接口模块。然而,这种解决方案会带来两方面的挑战:一是BMC CPU架构升级需要对BMC内部做硬件分区设计,设计复杂度明显增加,必然会带来芯片成本的大幅上升;二是BMC CPU架构升级芯片设计、流片、制造、调试等环节,会占用大量的时间周期,对于主机系统硬件分区技术的应用推广会产生严重影响,不利于新技术的快速推广应用。
发明内容
本申请实施例提供了一种接口通信方法、装置、计算机可读存储介质、电子设备和服务器,以至少解决相关技术中主机系统硬件分区场景下BMC芯片设计复杂的问题。
根据本申请的一个实施例,提供了一种接口通信方法,服务器主机系统包括硬件分区,基板管理控制器包括内核分区,所述内核分区用于管理所述硬件分区,所述方法包括:生成控制所述硬件分区的控制指令;将所述控制指令转换为符合预定接口协议的接口信号,其中,所述预定接口协议为所述硬件分区的第一接口的接口协议;通过第二接口将所述接口信号发送至所述第一接口,所述第一接口与所述第二接口的接口类型不同。
在一个示例性实施例中,将所述控制指令转换为符合预定接口协议的接口信号,包括:根据所述预定接口协议,确定所述控制指令对应的多个逻辑位信息;根据多个所述逻辑位信息、第一定时器和第二定时器,生成所述接口信号。
在一个示例性实施例中,根据多个所述逻辑位信息、第一定时器和第二定时器,生成所述接口信号,包括:根据多个所述逻辑位信息,确定所述第一定时器和所述第二定时器的计时时长;根据所述计时时长,通过所述第二接口生成所述接口信号。
在一个示例性实施例中,根据多个所述逻辑位信息,确定所述第一定时器和所述第二定时器的计时时长,包括:获取每个所述逻辑位信息对应的第一时长以及第二时长,所述第一时长表征所述逻辑位信息处于高电平的时长,所述第二时长表征所述逻辑位信息的总持续时长,不同的所述逻辑位信息对应的所述第一时长不同;确定所述第一定时器的计时时长为所述第一时长,以及确定所述第二定时器的计时时长为所述第二时长。
在一个示例性实施例中,根据所述计时时长,通过所述第二接口生成所述接口信号,包括:根据所述第一定时器的所述第一时长以及所述第二定时器的第二时长,按照多个所述逻辑位信息的排序,通过所述第二接口依次生成每个所述逻辑位信息对应的子接口信号,得到所述接口信号。
在一个示例性实施例中,根据所述第一定时器的所述第一时长以及所述第二定时器的第二时长,按照多个所述逻辑位信息的排序,通过所述第二接口依次生成每个所述逻辑位信息对应的子接口信号,得到所述接口信号,包括:控制步骤,控制所述第一定时器和所述第二定时器开始计时,并在所述第一定时器的计时时长达到所述第一时长前,通过所述第二接口输出第一信号;输出步骤,在所述第一定时器的计时时长达到所述第一时长后且所述第二定时器的计时时长达到所述第二时长前,通过所述第二接口输出第二信号,得到由所述第一信号和所述第二信号构成的所述子接口信号;计数步骤,在所述第二定时器的计时时长达到所述第二时长的情况下,执行一次定时计数;确定步骤,确定定时计数值是否小于所述逻辑位信息的总数,在所述定时计数值小于所述逻辑位信息的总数的情况下,按照所述排序,依次执行所述控制步骤、所述输出步骤以及所述计数步骤,直到所述定时计数值不小于所述逻辑位信息的总数,得到包括多个所述子接口信号的所述接口信号。
在一个示例性实施例中,所述方法还包括:在所述控制步骤之前,将所述第二接口的输出初始化为低电平状态。
在一个示例性实施例中,所述控制步骤包括:控制所述第一定时器和所述第二定时器开始计时;将所述第二接口的输出设置为高电平状态,并通过所述第二接口输出所述高电平状态的所述第一信号;在所述第一定时器的计时时长达到所述第一时长的情况下,停止所述第一信号的输出,并将所述第二接口的输出设置为低电平。
在一个示例性实施例中,在所述第一定时器的计时时长达到所述第一时长的情况下,停止所述第一信号的输出,包括:在所述第一定时器的计时时长达到所述第一时长的情况下,触发第一中断,以停止所述第一信号的输出。
在一个示例性实施例中,所述输出步骤包括:在所述第一定时器的计时时长达到所述第一时长的情况下,将所述第二接口的输出设置为低电平状态,并通过所述第二接口输出低电平状态的所述第二信号;在所述第二定时器的计时时长达到所述第二时长的情况下,停止所述第二信号的输出,并将所述第二接口的输出设置为高电平,得到所述子接口信号。
在一个示例性实施例中,在所述第二定时器的计时时长达到所述第二时长的情况下,停止所述第二信号的输出,包括:在所述第二定时器的计时时长达到所述第二时长的情况下,触发第二中断,以停止所述第二信号的输出。
在一个示例性实施例中,所述控制指令包括以下至少之一:第一指令,用于确定所述硬件分区是否存在;第二指令,用于获取所述硬件分区的传感器温度;第三指令,用于获取所述硬件分区的寄存器数据。
在一个示例性实施例中,所述控制指令的数据结构包括地址速率字段、目标地址字段、消息速率字段、写长度字段和读长度字段,其中,所述地址速率字段表征地址数据的传输速率,所述目标地址字段表征所述硬件分区的地址数据,所述消息速率字段表征消息数据的传输速率。
在一个示例性实施例中,在通过第二接口将所述接口信号发送至所述第一接口之后,所述方法还包括:接收所述硬件分区响应于所述控制指令生成的响应指令,所述响应指令包括控制指令以及帧校验字段。
在一个示例性实施例中,所述第一接口包括PECI接口,所述第二接口包括GPIO(General-Purpose Input/Output,通用型输入输出)接口。
在一个示例性实施例中,所述硬件分区有多个,所述内核分区有多个,多个所述内核分区中的一个包括第三接口,其他的所述内核分区分别包括所述第二接口,各所述硬件分区分别包括所述第一接口,所述第三接口与所述第一接口的接口类型相同,所述方法还包括:通过所述第三接口将所述控制指令发送至对应的所述第一接口。
根据本申请的另一个实施例,提供了一种接口通信装置,服务器主机系统包括硬件分区,基板管理控制器包括内核分区,所述内核分区用于管理所述硬件分区,所述装置包括:生成单元,用于生成控制所述硬件分区的控制指令;转换单元,用于将所述控制指令转换为符合预定接口协议的接口信号,其中,所述预定接口协议为所述硬件分区的第一接口的接口协议;第一发送单元,用于通过第二接口将所述接口信号发送至所述第一接口,所述第一接口与所述第二接口的接口类型不同。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一种方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一种方法实施例中的步骤。
根据本申请的另一个实施例,还提供了一种服务器,包括:主机系统,包括多个硬件分区,所述硬件分区包括第一接口;BMC,包括多个内核分区,所述内核分区与所述硬件分区一一对应,至少部分的所述内核分区包括第二接口,所述第一接口与所述第二接口的接口类型不同,其中,所述内核分区用于生成控制所述硬件分区的控制指令;将所述控制指令转换为符合预定接口协议的接口信号,其中,所述预定接口协议为所述硬件分区的第一接口的接口协议;通过第二接口将所述接口信号发送至所述第一接口。
在一个示例性实施例中,所述内核分区还用于根据所述预定接口协议,确定所述控制指令对应的多个逻辑位信息;根据多个所述逻辑位信息、第一定时器和第二定时器,生成所述接口信号。
在一个示例性实施例中,所述内核分区还用于根据多个所述逻辑位信息,确定所述第一定时器和所述第二定时器的计时时长;根据所述计时时长,通过所述第二接口生成所述接口信号。
在一个示例性实施例中,所述内核分区还用于获取每个所述逻辑位信息对应的第一时长以及第二时长,所述第一时长表征所述逻辑位信息处于高电平的时长,所述第二时长表征所述逻辑位信息的总持续时长,不同的所述逻辑位信息对应的所述第一时长不同;确定所述第一定时器的计时时长为所述第一时长,以及确定所述第二定时器的计时时长为所述第二时长。
在一个示例性实施例中,所述内核分区还用于根据所述第一定时器的所述第一时长以及所述第二定时器的第二时长,按照多个所述逻辑位信息的排序,通过所述第二接口依次生成每个所述逻辑位信息对应的子接口信号,得到所述接口信号。
在一个示例性实施例中,多个所述内核分区中的一个包括第三接口,所述第三接口与所述第一接口的接口类型相同,除包括所述第三接口外的所有的所述内核分区均包括所述第二接口,包括所述第三接口的所述内核分区用于通过所述第三接口将所述控制指令发送至对应的所述第一接口。
通过本申请,无需预先在BMC芯片上实现PECI控制器的硬件逻辑设计,只需内核分区通过第二接口来模拟第一接口的接口协议,即可在BMC芯片上生成接口信号,从而实现了使用软件方式模拟生成硬件接口信号的技术效果,进而达到了无需芯片本身具备相关硬件接口信号的硬件逻辑设计的目的,不仅能够降低BMC芯片的设计难度,降低BMC芯片的设计成本和设计周期,还能实现BMC的一个内核分区独立管理主机系统中一个硬件分区的效果,实现了BMC与主机系统之间的通信链路的扩展,从而可以达到一个BMC芯片对主机系统的多个硬件分区进行独立控制的目的。
附图说明
图1是根据本申请实施例的计算机终端的示意图;
图2是根据本申请实施例的接口通信方法的流程图;
图3是根据本申请实施例的逻辑位对应的波形示意图;
图4是根据本申请实施例的响应指令的消息传输格式示意图;
图5是根据本申请实施例的接口信息的生成流程图;
图6是根据本申请实施例的接口通信装置的结构框图;
图7是根据本申请实施例的服务器的结构示意图。
其中,上述附图包括以下附图标记:
02、处理器;04、存储器;06、传输设备;08、输入输出设备;100、主机系统;101、硬件分区;102、第一接口;200、BMC;201、内核分区;202、第二接口;203、第三接口。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本申请实施例的一种接口通信方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器02(处理器02可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器04,其中,上述移动终端还可以包括用于通信功能的传输设备06以及输入输出设备08。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器04可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的接口通信方法对应的计算机程序,处理器02通过运行存储在存储器04内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器04可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器04可进一步包括相对于处理器02远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备06用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备06包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备06可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种接口通信方法,服务器主机系统包括硬件分区,基板管理控制器(简称为BMC)包括内核分区,上述内核分区用于管理上述硬件分区,该方法应用于上述内核分区,图2是根据本申请实施例的接口通信方法的流程图,如图2所示,该流程包括如下步骤:
步骤S102,生成控制上述硬件分区的控制指令;
具体地,上述控制指令包括以下至少之一:用于确定上述硬件分区是否存在的第一指令;用于获取上述硬件分区的传感器温度的第二指令;用于获取上述硬件分区的寄存器数据的第三指令。
步骤S104,将上述控制指令转换为符合预定接口协议的接口信号,其中,上述预定接口协议为上述硬件分区的第一接口的接口协议;
具体地,上述接口信号可以为PECI信号,也可以为其他协议类型的接口信号。
步骤S106,通过第二接口将上述接口信号发送至上述第一接口,上述第一接口与上述第二接口的接口类型不同。
具体地,上述第一接口可以包括PECI接口,上述第二接口可以包括GPIO接口。比如,上述第一接口为PECI接口,上述第二接口为GPIO接口。
通过上述步骤,在服务器主机系统的硬件分区的场景下,通过BMC的内核分区首先生成控制硬件分区的控制指令;然后对该控制指令进行转换,得到符合硬件分区的第一接口的接口协议的接口信号,最后经第二接口将得到的接口信号发送至第一接口,实现对主机系统的一个硬件分区的控制。相比现有技术中主机系统的硬件分区场景下需要BMC芯片本身具备PECI控制器的硬件逻辑设计,从而导致了BMC芯片设计复杂的问题,本申请无需预先在BMC芯片上实现PECI控制器的硬件逻辑设计,只需内核分区通过第二接口来模拟第一接口的接口协议,即可在BMC芯片上生成接口信号,从而实现了使用软件方式模拟生成硬件接口信号的技术效果,进而达到了无需芯片本身具备相关硬件接口信号的硬件逻辑设计的目的,不仅能够降低BMC芯片的设计难度,降低BMC芯片的设计成本和设计周期,还能实现BMC的一个内核分区独立管理主机系统中一个硬件分区的效果,实现了BMC与主机系统之间的通信链路的扩展,从而可以达到一个BMC芯片对主机系统的多个硬件分区进行独立控制的目的。
其中,上述步骤的执行主体可以为终端、处理器等,但不限于此。
在一个示例性实施例中,将上述控制指令转换为符合预定接口协议的接口信号,包括:根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息;根据多个上述逻辑位信息、第一定时器和第二定时器,生成上述接口信号。本实施例中,根据预定接口协议生成控制指令对应的接口信号,进一步地实现了使用软件方式模拟生成第一接口的接口信号的技术效果。
为了根据多个逻辑位信息、第一定时器和第二定时器生成上述控制指令对应的接口信号,根据本申请的一些可选实施例,根据多个上述逻辑位信息、第一定时器和第二定时器,生成上述接口信号,包括:根据多个上述逻辑位信息,确定上述第一定时器和上述第二定时器的计时时长;根据上述计时时长,通过上述第二接口生成上述接口信号。
具体地,上述的第一定时器和第二定时器可以为上述内核分区中的一个计时程序,也可以为上述内核分区上的一个寄存器,其中,上述第一定时器和上述第二定时器至少可以提供计时功能。
在另一个示例性实施例中,根据多个上述逻辑位信息,确定上述第一定时器和上述第二定时器的计时时长,包括:获取每个上述逻辑位信息对应的第一时长以及第二时长,上述第一时长表征上述逻辑位信息处于高电平的时长,上述第二时长表征上述逻辑位信息的总持续时长,不同的上述逻辑位信息对应的上述第一时长不同;确定上述第一定时器的计时时长为上述第一时长,以及确定上述第二定时器的计时时长为上述第二时长。本实施例中,通过设置第一定时器的计时时长为第一时长,第二定时器的计时时长为第二时长,方便后续根据第一定时器和第二定时器的计时时长生成不同的逻辑位对应的逻辑位信息,得到接口信号,进一步地达到了在无需对BMC芯片进行接口信号的硬件逻辑设计的基础上,利用软件系统生成接口信号的目的,从而进一步地降低了BM芯片的设计难度。
其中,上述第一时长小于上述第二时长。
可选地,上述控制指令由至少一个字段构成,上述字段通过多个逻辑位进行表示,每个逻辑位可以为0或者1,将每个逻辑位转换为对应的上述逻辑位信息,即得到该控制指令对应的上述接口信号。上述逻辑位信息具体可以通过高电平信号和低电平信号的结合使用来表示,例如,对于逻辑位0,可使用第一预设时长的高电平信号和第二预设时长的低电平信号来组合表示,对于逻辑位1,可使用第三预设时长的高电平信号和第四预设时长的低电平信号来组合表示,其中,第一预设时长和第三预设时长不同,第二预设时长和第四预设时长也不同。
通常来说,在一种接口协议下,多个逻辑位信息中的每个逻辑位信息对应的运行时长都是相同的,即每个上述逻辑位信息对应的上述第二时长都是相同的。因此,上述第一预设时长与上述第二预设时长之和等于上述第三预设时长与上述第四预设时长之和。
在实际的应用过程中,多个逻辑位信息之间存在先后顺序,为了进一步地保证较为准确地得到上述控制指令对应的接口信号,本申请的再一种具体的实施例中,根据上述计时时长,通过上述第二接口生成上述接口信号,包括:根据上述第一定时器的上述第一时长以及上述第二定时器的第二时长,按照多个上述逻辑位信息的排序,通过上述第二接口依次生成每个上述逻辑位信息对应的子接口信号,得到上述接口信号。
具体地,上述子接口信号实际是一段由高电平信号和低电平信号组成的波形信号,多个波形信号构成上述接口信号。
可选地,如图3所示,在上述逻辑位为0时,对应第一定时器的第一时长为t0,在上述逻辑位为1时,对应上述第一定时器的第一时长为t1, t0小于t1,上述第二时长为tBIT,一般情况下,t0为tBIT的0.6~0.8倍,即t0=0.2~0.4tBIT,t1为tBIT的0.6~0.8倍,即t1=0.6~0.8tBIT。
在一个示例性实施例中,根据上述第一定时器的上述第一时长以及上述第二定时器的第二时长,按照多个上述逻辑位信息的排序,通过上述第二接口依次生成每个上述逻辑位信息对应的子接口信号,得到上述接口信号,包括:
控制步骤,控制上述第一定时器和上述第二定时器开始计时,并在上述第一定时器的计时时长达到上述第一时长前,通过上述第二接口输出第一信号;
具体地,上述第一定时器和上述第二定时器的内部分别含有一个递减计数器,将第一定时器的起始值设置为上述第一时长,将第二定时器的起始值设置为上述第二时长,当第一定时器和第二定时器开始计时的情况下,其中的递减计数器从起始值开始递减至0,并在达到0时触发第一定时器以及第二定时器中断,并将第一定时器的起始值重置为上述第一时长,以及将第二定时器的起始值重置为上述第二时长,之后重新进行递减计数。其中,中断可以理解为是一种标识,因此,中断也可以称为中断标识。
可选地,上述第一信号为高电平信号。本申请中,为了实现将逻辑位0或1转换为对应的子接口信号,在第一定时器的计时时长达到第一时长前,通过第二接口生成高电平的第一信号。
输出步骤,在上述第一定时器的计时时长达到上述第一时长后且上述第二定时器的计时时长达到上述第二时长前,通过上述第二接口输出第二信号,得到由上述第一信号和上述第二信号构成的上述子接口信号;
可选地,上述第二信号为低电平信号。本申请中,为了区分表示逻辑位0以及1,在第一定时器的计时时长达到第一时长之后,通过第二接口生成低电平的第二信号,直到第二定时器的计时时长达到第二时长,得到不同波形的子接口信号,其中,逻辑位为0以及1对应的波形信号具有不同的占空比。
计数步骤,在上述第二定时器的计时时长达到上述第二时长的情况下,执行一次定时计数;
具体地,执行一次定时计数可以是在原来的定时计数值的基础上加一。
确定步骤,确定定时计数值是否小于上述逻辑位信息的总数,在上述定时计数值小于上述逻辑位信息的总数的情况下,按照上述排序,依次执行上述控制步骤、上述输出步骤以及上述计数步骤,直到上述定时计数值不小于上述逻辑位信息的总数,得到包括多个上述子接口信号的上述接口信号。
上述实施例中,按逻辑位的顺序配置第一定时器和第二定时器并控制两者启动,根据第一定时器和第二定时器的计时时长输出对应时长的第一信号以及第二信号,实现对逻辑位对应的波形信号持续时长的控制,进一步地实现了以软件的方式依次模拟出多个子接口信号,得到接口信号的效果。
上述方法还包括:在上述控制步骤之前,将上述定时计数值初始化为0。
在实际应用过程中,在根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息之前,上述方法还包括:将由多个逻辑位构成的控制指令存储至一个数组变量中,该数组变量的数据流长度大于或者等于上述逻辑位的数量,各上述逻辑位按照排序顺序存储在上述数组变量中;设置逻辑位的索引变量,上述索引变量用于从上述数组变量中索引对应位置的逻辑位。这样后续在根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息的过程中,可以按照逻辑位的排序依次从该数组变量中读取逻辑位,并确定其对应的逻辑位信息。
那么,根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息,包括:索引步骤,根据上述索引变量从上述数组变量中索引得到待转换的逻辑位;第二确定步骤,根据上述预定接口协议,确定待转换的逻辑位对应的逻辑位信息。
在设置逻辑位的索引变量之后,在根据上述索引变量从上述数组变量中索引得到待转换的逻辑位之前,上述方法还包括:将上述索引变量初始化为0。
上述实施例中,获取每个上述逻辑位信息对应的第一时长以及第二时长的步骤作为获取步骤,确定上述第一定时器的计时时长为上述第一时长,以及确定上述第二定时器的计时时长为上述第二时长的步骤作为第四确定步骤,根据上述第一定时器的上述第一时长以及上述第二定时器的第二时长,按照多个上述逻辑位信息的排序,通过上述第二接口依次生成每个上述逻辑位信息对应的子接口信号的步骤作为生成步骤,上述方法还可以包括:累加步骤,在上述第二定时器的计时时长达到上述第二时长的情况下,对上述索引变量进行加一操作,得到更新后的索引变量;上述方法还包括:第三确定步骤,确定更新后的上述索引变量是否小于上述逻辑位信息的总数,在更新后的上述索引变量小于上述逻辑位信息的总数的情况下,依次执行上述索引步骤、上述第二确定步骤、上述获取步骤、上述第四确定步骤以及上述生成步骤,直到上述索引变量不小于上述逻辑位的数量。也就是说,通过索引变量从数组变量中依次读取上述逻辑位,并获取读取的逻辑位对应的第一时长和第二时长,得到第一定时器和第二定时器的计时时长,最后控制第一定时器和第二定时器按照计时时长开始计时,并通过第二接口依次生成该逻辑位信息对应的子接口信号,进一步地实现了按照顺序生成接口子新号,从而进一步地保证了得到较为准确的接口信号。
其中,上述的逻辑位的排序指的是构成上述控制指令的逻辑位的顺序,如控制指令对应逻辑位按照先后顺序分别为逻辑位1、逻辑位2、逻辑位3、……、逻辑位n,对应的索引变量分别为索引变量0、索引变量1、索引变量2、……、索引变量n-1,则通过上述循环过程依次生成逻辑位1、逻辑位2、逻辑位3、……、逻辑位n对应的子接口信号,即得到子接口信号1、子接口信号2、子接口信号3、……、子接口信号n,得到接口信号。
具体地,在得到多个子接口信号之后,上述方法还包括:按照多个上述子接口信号的生成顺序,将多个子接口信号进行拼接,得到上述接口信号。
在一个示例性实施例中,上述方法还包括:在上述控制步骤之前,将上述第二接口的输出初始化为低电平状态。由于根据预定接口协议的传输协议规范,默认电平状态为低电平,故本实施例先将第二接口的输出初始为低电平,在启动第一定时器和第二定时器时,再通过第二接口将输出置高,来输出高电平的第一信号。
为了进一步地通过软件实现对第一接口的接口信号的模拟,进一步地避免对BMC芯片的架构进行升级或者硬件投入,再一种可选的实施方式中,上述控制步骤包括:控制上述第一定时器和上述第二定时器开始计时;将上述第二接口的输出设置为高电平状态,并通过上述第二接口输出上述高电平状态的上述第一信号;在上述第一定时器的计时时长达到上述第一时长的情况下,停止上述第一信号的输出,并将上述第二接口的输出设置为低电平。
可选地,在上述第一定时器的计时时长达到上述第一时长的情况下,停止上述第一信号的输出,包括:在上述第一定时器的计时时长达到上述第一时长的情况下,触发第一中断,以停止上述第一信号的输出。通过触发第一中断,关闭第一定时器,来实现对子接口信号中高电平持续时长的控制,进一步地实现对不同逻辑位的转换。
具体地,上述第一中断可以携带有当前已转换的逻辑位的位置信息,上述内核分区通过该位置信息可以知道当前将要进行信号转换的逻辑位的位置。当然,上述内核分区也可以通过统计第一中断的触发次数和上述逻辑位的排序来确定当前将要进行信号转换的逻辑位的位置。这样在转换过程中出现故障时,故障恢复后对于已经完成信号转换处理的逻辑位则无需重复进行信号转换,从而提高了信号转换效率,避免了内核分区计算资源的浪费,可以更加高效地实现对待转换的逻辑位的转换操作。
为了进一步地通过软件实现对第一接口的接口信号的模拟,进一步地避免对BMC芯片的架构进行升级或者硬件投入,根据本申请的又一个示例性实施例,上述输出步骤包括:在上述第一定时器的计时时长达到上述第一时长的情况下,将上述第二接口的输出设置为低电平状态,并通过上述第二接口输出低电平状态的上述第二信号;在上述第二定时器的计时时长达到上述第二时长的情况下,停止上述第二信号的输出,并将上述第二接口的输出设置为高电平,得到上述子接口信号。
具体地,在上述第二定时器的计时时长达到上述第二时长的情况下,停止上述第二信号的输出,包括:在上述第二定时器的计时时长达到上述第二时长的情况下,触发第二中断,以停止上述第二信号的输出。通过触发第二中断,关闭第二定时器,来实现对子接口信号的持续时长的控制,进一步地保证了可以较为准确地得到持续时长一致的各个子接口信号。
具体地,每触发一次上述第二中断,执行一次定时计数,该定时计数代表转换完成的逻辑位的数量。
进一步地,上述第二中断可以携带有当前已转换的逻辑位的位置信息,上述内核分区通过该位置信息可以知道当前将要进行信号转换的逻辑位的位置。当然,上述内核分区也可以通过统计第二中断的触发次数和上述逻辑位的排序来确定当前将要进行信号转换的逻辑位的位置。上述内核分区还可以通过定时计数和上述逻辑位的排序来确定当前将要进行信号转换的逻辑位的位置。这样在转换过程中出现故障时,故障恢复后对于已经完成信号转换处理的逻辑位则无需重复进行信号转换,从而提高了信号转换效率,避免了内核分区计算资源的浪费,可以更加高效地实现对待转换的逻辑位的转换操作。
在具体应用时,本领域技术人员可以灵活设置上述控制指令的结构形式,一种可选方案中,上述控制指令的数据结构包括地址速率字段、目标地址字段、消息速率字段、写长度字段和读长度字段,其中,上述地址速率字段表征地址数据的传输速率,上述目标地址字段表征上述硬件分区的地址数据,上述消息速率字段表征消息数据的传输速率。上述写长度字段表征上述内核分区的写操作信息,上述读长度字段表征上述内核分区的读操作信息。
举例来说,在上述控制指令为用于确定上述硬件分区是否存在的第一指令时,第一指令具体的消息传输格式如图4所示,其中,地址速率字段为2个逻辑位0,消息速率字段为1个逻辑位0。目标地址字段、写长度字段和读长度字段均为8个逻辑位,目标地址字段由硬件分区的硬件设计决定,一般为0x30(0x表示十六进制数),写长度字段和读长度字段均为0x00,上述的这些字段均由内核分区发起写操作完成。
进一步地,在通过第二接口将上述接口信号发送至上述第一接口之后,上述方法还包括:接收上述硬件分区响应于上述控制指令生成的响应指令,上述响应指令包括控制指令以及帧校验字段(Frame Check Sequence,简称为FCS)。上述硬件分区响应于该控制指令生成的响应指令除了包括控制指令的信息外,还包括位于控制指令的尾部的帧校验字段,转换为第二接口可识别的信息,得到如图4所示的字段格式。
在一个示例性实施例中,上述第一接口包括PECI接口,上述第二接口包括GPIO接口。也就是说,本申请的内核分区通过GPIO接口模拟PECI信号,并将PECI信号通过GPIO接口发送至硬件分区的PECI接口,实现了BMC与主机系统之间的PECI链路的扩充,从而进一步地实现在不对BMC芯片进行硬件逻辑设计的情况下,通过BMC的内核分区独立管理服务器主机系统的硬件分区的效果,进一步地达到一个BMC芯片对主机系统多个硬件分区进行独立监控的能力。
更为具体地,上述第一接口为PECI接口,上述第二接口为GPIO接口。其中,PECI接口是BMC与主机系统的处理器间进行信息交互的接口,PECI接口作为服务器中的重要接口,主要负责获取服务器的CPU温度、功耗以及如CPU、UPI(Ultra Path Interconnect,超路径互联)链路、内存控制器、PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)链路等的关键单元模块的故障状态信息,为服务器系统的健康状态监控、故障分析与定位提供有力保障。而BMC具有的GPIO接口比较多,这样在实施本申请的技术方案时无需引入额外的硬件开销。
为了进一步地实现对BMC芯片与主机系统之间的通信链路的扩充,进一步地实现一个BMC芯片监控主机系统的多个硬件分区的效果,根据本申请的一些其他实施例,上述硬件分区有多个,上述内核分区有多个,多个上述内核分区中的一个包括第三接口,其他的上述内核分区分别包括上述第二接口,各上述硬件分区分别包括上述第一接口,上述第三接口与上述第一接口的接口类型相同,上述方法还包括:通过上述第三接口将上述控制指令发送至对应的上述第一接口。本实施例中,一个上述内核分区通过第三接口与一个硬件分区的第一接口连接,其他的内核分区通过第二接口与其他的硬件分区的第一接口一一对应连接,也就是说,BMC的内核分区通过第三接口与第一接口形成的物理链路,或者通过第二接口与第一接口形成的物理链路,对硬件分区进行一一对应地监控,进一步地实现了一个BMC管理单元对多个硬件分区进行独立管理,从而进一步地保证了统一服务器平台不同分区系统故障管理功能的独立性。
具体地,上述第三接口也为PECI接口。在现有技术中,一个BMC芯片只存在一个PECI接口,即只能通过该PECI接口与主机系统建立一条PECI链路,通过本申请的上述方案,除了保留该条PECI链路外,通过BMC芯片的多个GPIO接口模拟PECI协议,从而通过GPIO接口与主机系统其他的硬件分区的PECI接口建立一一对应的PECI链路,实现了PECI链路的扩充,使得BMC的内核分区可以一一对应地对硬件分区进行监控。
在实际的应用过程中,上述硬件分区上部署有第一操作系统,上述内核分区上部署有第二操作系统,上述第一操作系统包括但不限于Linux系统、RTOS(Real TimeOperating System,实时操作系统)系统或者其他自开发的软件系统等。上述第二操作系统包括但不限于Linux系统、RTOS系统或者其他自开发的软件系统等。
另外,本申请中,BMC按照内核划分为多个内核分区,一个内核分区部署一个上述第二操作系统。上述内核分区与上述硬件分区一一对应,即一个内核分区对应对一个硬件分区进行健康状态监控、远程开关机、温度(电压)采集以及故障分析与定位等操作。
为了使得本领域技术人员更加清楚地了解本申请中接口信号的生成过程,以下结合附图5,以上述第一接口为PECI接口、上述第二接口为GPIO接口、上述控制指令为用于确定上述硬件分区是否存在的上述第一指令为例进行说明。
其中,根据PECI相关协议,PECI接口分为Host(主机系统)设备与Client(客机)设备,每次通信均由Host设备发起,Host设备通过不同的PECI命令获取相应的信息,本申请中,BMC的一个内核分区作为Host设备,主机系统中与该内核分区对应的硬件分区作为Client设备。
该内核分区的内核分区需要发送的第一指令的消息传输格式如图4所示,其对应的数据流为00 00100000 0 00000000 00000000,共27个逻辑位,即数据流的长度为27。PECI协议中对逻辑位0和1的波形定义如图3所示,图3中,tBIT表示1个比特(逻辑位=0或1)的周期,逻辑位0与逻辑位1通过高电平在整个tBIT时间内的占空比进行区分,即:逻辑位0的高电平时间为0.2~0.4tBIT,这里用t0表示;逻辑位1的高电平时间为0.6~0.8tBIT,这里用t1表示。本申请进行软件设计时,通过第一定时器T0对t0(或t1)进行计时,通过第二定时器T1对tBIT进行计时,接口信号的具体生成过程如下:
步骤S1:初始化第一定时器T0与第二定时器T1,初始化GPIO控制器,配置第二接口GPIO输出为低电平状态;
步骤S2:缓存第一指令的数据流至char型数组变量中,计算数据流的逻辑位的数量并存至变量len中,得到len=27;
步骤S3:初始化逻辑位的索引变量index,设置为0;
步骤S4:判断index是否小于len,如果是则执行步骤S5,否则结束整个流程;
步骤S5:判断index对应的逻辑位Data[index]是否等于0,如果是则配置第一定时器T0的计时时间为t0,否则配置第一定时器T0的计时时间为t1;
步骤S6:配置第二定时器T1的计时时间为tBIT;
步骤S7:T0中断触发时,设置第二接口GPIO输出为低电平,并关闭第一定时器T0;
步骤S8:T1中断触发时,设置第二接口GPIO输出为高电平,并关闭第二定时器T1;
步骤S9:更新index=index+1,并返回步骤S4。
上述实施例,基于双定时器的GPIO模拟方法,可实现各硬件分区系统下的GPIO接口到PECI型PECI独立链路的扩充与构建,实现了单一BMC管理单元对主机系统多硬件分区系统的独立监控能力。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例上述的方法。
在本实施例中还提供了一种接口通信装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请实施例的接口通信装置的结构框图,服务器主机系统包括硬件分区,BMC包括内核分区,上述内核分区用于管理上述硬件分区,该装置应用于上述内核分区,如图6所示,该装置包括:
生成单元10,用于生成控制上述硬件分区的控制指令;
具体地,上述控制指令包括以下至少之一:用于确定上述硬件分区是否存在的第一指令;用于获取上述硬件分区的传感器温度的第二指令;用于获取上述硬件分区的寄存器数据的第三指令。
转换单元20,用于将上述控制指令转换为符合预定接口协议的接口信号,其中,上述预定接口协议为上述硬件分区的第一接口的接口协议;
具体地,上述接口信号可以为PECI信号,也可以为其他协议类型的接口信号。
第一发送单元30,用于通过第二接口将上述接口信号发送至上述第一接口,上述第一接口与上述第二接口的接口类型不同。
具体地,上述第一接口可以包括PECI接口,上述第二接口可以包括GPIO接口。比如,上述第一接口为PECI接口,上述第二接口为GPIO接口。
通过上述方案,在服务器主机系统的硬件分区的场景下,通过上述生成单元BMC的内核分区首先生成控制硬件分区的控制指令;通过转换单元对该控制指令进行转换,得到符合硬件分区的第一接口的接口协议的接口信号,通过第一发送单元经第二接口将得到的接口信号发送至第一接口,实现对主机系统的一个硬件分区的控制。相比现有技术中主机系统的硬件分区场景下需要BMC芯片本身具备PECI控制器的硬件逻辑设计,从而导致了BMC芯片设计复杂的问题,本申请无需预先在BMC芯片上实现PECI控制器的硬件逻辑设计,只需内核分区通过第二接口来模拟第一接口的接口协议,即可在BMC芯片上生成接口信号,从而实现了使用软件方式模拟生成硬件接口信号的技术效果,进而达到了无需芯片本身具备相关硬件接口信号的硬件逻辑设计的目的,不仅能够降低BMC芯片的设计难度,降低BMC芯片的设计成本和设计周期,还能实现BMC的一个内核分区独立管理主机系统中一个硬件分区的效果,实现了BMC与主机系统之间的通信链路的扩展,从而可以达到一个BMC芯片对主机系统的多个硬件分区进行独立控制的目的。
在一个示例性实施例中,上述转换单元包括:确定模块,用于根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息;生成模块,用于根据多个上述逻辑位信息、第一定时器和第二定时器,生成上述接口信号。本实施例中,根据预定接口协议生成控制指令对应的接口信号,进一步地实现了使用软件方式模拟生成第一接口的接口信号的技术效果。
为了根据多个逻辑位信息、第一定时器和第二定时器生成上述控制指令对应的接口信号,根据本申请的一些可选实施例,上述生成模块包括:第一确定子模块,用于根据多个上述逻辑位信息,确定上述第一定时器和上述第二定时器的计时时长;生成子模块,用于根据上述计时时长,通过上述第二接口生成上述接口信号。
具体地,上述的第一定时器和第二定时器可以为上述内核分区中的一个计时程序,也可以为上述内核分区上的一个寄存器,其中,上述第一定时器和上述第二定时器至少可以提供计时功能。
在另一个示例性实施例中,上述第一确定子模块还用于获取每个上述逻辑位信息对应的第一时长以及第二时长,上述第一时长表征上述逻辑位信息处于高电平的时长,上述第二时长表征上述逻辑位信息的总持续时长,不同的上述逻辑位信息对应的上述第一时长不同;上述第一确定子模块还用于确定上述第一定时器的计时时长为上述第一时长,以及确定上述第二定时器的计时时长为上述第二时长。本实施例中,通过设置第一定时器的计时时长为第一时长,第二定时器的计时时长为第二时长,方便后续根据第一定时器和第二定时器的计时时长生成不同的逻辑位对应的逻辑位信息,得到接口信号,进一步地达到了在无需对BMC芯片进行接口信号的硬件逻辑设计的基础上,利用软件系统生成接口信号的目的,从而进一步地降低了BM芯片的设计难度。
其中,上述第一时长小于上述第二时长。
可选地,上述控制指令由至少一个字段构成,上述字段通过多个逻辑位进行表示,每个逻辑位可以为0或者1,将每个逻辑位转换为对应的上述逻辑位信息,即得到该控制指令对应的上述接口信号。上述逻辑位信息具体可以通过高电平信号和低电平信号的结合使用来表示,例如,对于逻辑位0,可使用第一预设时长的高电平信号和第二预设时长的低电平信号来组合表示,对于逻辑位1,可使用第三预设时长的高电平信号和第四预设时长的低电平信号来组合表示,其中,第一预设时长和第三预设时长不同,第二预设时长和第四预设时长也不同。
通常来说,在一种接口协议下,多个逻辑位信息中的每个逻辑位信息对应的运行时长都是相同的,即每个上述逻辑位信息对应的上述第二时长都是相同的。因此,上述第一预设时长与上述第二预设时长之和等于上述第三预设时长与上述第四预设时长之和。
在实际的应用过程中,多个逻辑位信息之间存在先后顺序,为了进一步地保证较为准确地得到上述控制指令对应的接口信号,本申请的再一种具体的实施例中,上述生成子模块还用于根据上述第一定时器的上述第一时长以及上述第二定时器的第二时长,按照多个上述逻辑位信息的排序,通过上述第二接口依次生成每个上述逻辑位信息对应的子接口信号,得到上述接口信号。
具体地,上述子接口信号实际是一段由高电平信号和低电平信号组成的波形信号,多个波形信号构成上述接口信号。
可选地,如图3所示,在上述逻辑位为0时,对应第一定时器的第一时长为t0,在上述逻辑位为1时,对应上述第一定时器的第一时长为t1,t0小于t1,上述第二时长为tBIT,一般情况下,t0为tBIT的0.6~0.8倍,即t0=0.2~0.4tBIT,t1为tBIT的0.6~0.8倍,即t1=0.6~0.8tBIT。
在一个示例性实施例中,上述生成子模块还用于执行:
控制步骤,控制上述第一定时器和上述第二定时器开始计时,并在上述第一定时器的计时时长达到上述第一时长前,通过上述第二接口输出第一信号;
具体地,上述第一定时器和上述第二定时器的内部分别含有一个递减计数器,将第一定时器的起始值设置为上述第一时长,将第二定时器的起始值设置为上述第二时长,当第一定时器和第二定时器开始计时的情况下,其中的递减计数器从起始值开始递减至0,并在达到0时触发第一定时器以及第二定时器中断,并将第一定时器的起始值重置为上述第一时长,以及将第二定时器的起始值重置为上述第二时长,之后重新进行递减计数。其中,中断可以理解为是一种标识,因此,中断也可以称为中断标识。
可选地,上述第一信号为高电平信号。本申请中,为了实现将逻辑位0或1转换为对应的子接口信号,在第一定时器的计时时长达到第一时长前,通过第二接口生成高电平的第一信号。
输出步骤,在上述第一定时器的计时时长达到上述第一时长后且上述第二定时器的计时时长达到上述第二时长前,通过上述第二接口输出第二信号,得到由上述第一信号和上述第二信号构成的上述子接口信号;
可选地,上述第二信号为低电平信号。本申请中,为了区分表示逻辑位0以及1,在第一定时器的计时时长达到第一时长之后,通过第二接口生成低电平的第二信号,直到第二定时器的计时时长达到第二时长,得到不同波形的子接口信号,其中,逻辑位为0以及1对应的波形信号具有不同的占空比。
计数步骤,在上述第二定时器的计时时长达到上述第二时长的情况下,执行一次定时计数;
具体地,执行一次定时计数可以是在原来的定时计数值的基础上加一。
确定步骤,确定定时计数值是否小于上述逻辑位信息的总数,在上述定时计数值小于上述逻辑位信息的总数的情况下,按照上述排序,依次执行上述控制步骤、上述输出步骤以及上述计数步骤,直到上述定时计数值不小于上述逻辑位信息的总数,得到包括多个上述子接口信号的上述接口信号。
上述实施例中,按逻辑位的顺序配置第一定时器和第二定时器并控制两者启动,根据第一定时器和第二定时器的计时时长输出对应时长的第一信号以及第二信号,实现对逻辑位对应的波形信号持续时长的控制,进一步地实现了以软件的方式依次模拟出多个子接口信号,得到接口信号的效果。
上述装置还包括:第一初始化单元,用于在上述控制步骤之前,将上述定时计数值初始化为0。
在实际应用过程中,上述装置还包括:存储单元,用于在根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息之前,将由多个逻辑位构成的控制指令存储至一个数组变量中,该数组变量的数据流长度大于或者等于上述逻辑位的数量,各上述逻辑位按照排序顺序存储在上述数组变量中;设置单元,用于设置逻辑位的索引变量,上述索引变量用于从上述数组变量中索引对应位置的逻辑位。这样后续在根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息的过程中,可以按照逻辑位的排序依次从该数组变量中读取逻辑位,并确定其对应的逻辑位信息。
那么,上述确定模块包括:索引子模块,用于索引步骤,根据上述索引变量从上述数组变量中索引得到待转换的逻辑位;第二确定子模块,用于第二确定步骤,根据上述预定接口协议,确定待转换的逻辑位对应的逻辑位信息。
上述装置还包括:第二初始化单元,用于在设置逻辑位的索引变量之后,在根据上述索引变量从上述数组变量中索引得到待转换的逻辑位之前,将上述索引变量初始化为0。
上述实施例中,获取每个上述逻辑位信息对应的第一时长以及第二时长的步骤作为获取步骤,确定上述第一定时器的计时时长为上述第一时长,以及确定上述第二定时器的计时时长为上述第二时长的步骤作为第四确定步骤,根据上述第一定时器的上述第一时长以及上述第二定时器的第二时长,按照多个上述逻辑位信息的排序,通过上述第二接口依次生成每个上述逻辑位信息对应的子接口信号的步骤作为生成步骤,上述装置还可以包括:累加单元,用于累加步骤,在上述第二定时器的计时时长达到上述第二时长的情况下,对上述索引变量进行加一操作,得到更新后的索引变量;上述装置还包括:确定单元,用于第三确定步骤,确定更新后的上述索引变量是否小于上述逻辑位信息的总数,在更新后的上述索引变量小于上述逻辑位信息的总数的情况下,依次执行上述索引步骤、上述第二确定步骤、上述获取步骤、上述第四确定步骤以及上述生成步骤,直到上述索引变量不小于上述逻辑位的数量。也就是说,通过索引变量从数组变量中依次读取上述逻辑位,并获取读取的逻辑位对应的第一时长和第二时长,得到第一定时器和第二定时器的计时时长,最后控制第一定时器和第二定时器按照计时时长开始计时,并通过第二接口依次生成该逻辑位信息对应的子接口信号,进一步地实现了按照顺序生成接口子新号,从而进一步地保证了得到较为准确的接口信号。
其中,上述的逻辑位的排序指的是构成上述控制指令的逻辑位的顺序,如控制指令对应逻辑位按照先后顺序分别为逻辑位1、逻辑位2、逻辑位3、……、逻辑位n,对应的索引变量分别为索引变量0、索引变量1、索引变量2、……、索引变量n-1,则通过上述循环过程依次生成逻辑位1、逻辑位2、逻辑位3、……、逻辑位n对应的子接口信号,即得到子接口信号1、子接口信号2、子接口信号3、……、子接口信号n,得到接口信号。
具体地,上述装置还包括:拼接单元,用于在得到多个子接口信号之后,按照多个上述子接口信号的生成顺序,将多个子接口信号进行拼接,得到上述接口信号。
在一个示例性实施例中,上述装置还包括:第三初始化单元,用于在上述控制步骤之前,将上述第二接口的输出初始化为低电平状态。由于根据预定接口协议的传输协议规范,默认电平状态为低电平,故本实施例先将第二接口的输出初始为低电平,在启动第一定时器和第二定时器时,再通过第二接口将输出置高,来输出高电平的第一信号。
为了进一步地通过软件实现对第一接口的接口信号的模拟,进一步地避免对BMC芯片的架构进行升级或者硬件投入,再一种可选的实施方式中,上述生成子模块还用于控制上述第一定时器和上述第二定时器开始计时;上述生成子模块还用于将上述第二接口的输出设置为高电平状态,并通过上述第二接口输出上述高电平状态的上述第一信号;上述生成子模块还用于在上述第一定时器的计时时长达到上述第一时长的情况下,停止上述第一信号的输出,并将上述第二接口的输出设置为低电平。
可选地,上述生成子模块还用于在上述第一定时器的计时时长达到上述第一时长的情况下,触发第一中断,以停止上述第一信号的输出。通过触发第一中断,关闭第一定时器,来实现对子接口信号中高电平持续时长的控制,进一步地实现对不同逻辑位的转换。
具体地,上述第一中断可以携带有当前已转换的逻辑位的位置信息,上述内核分区通过该位置信息可以知道当前将要进行信号转换的逻辑位的位置。当然,上述内核分区也可以通过统计第一中断的触发次数和上述逻辑位的排序来确定当前将要进行信号转换的逻辑位的位置。这样在转换过程中出现故障时,故障恢复后对于已经完成信号转换处理的逻辑位则无需重复进行信号转换,从而提高了信号转换效率,避免了内核分区计算资源的浪费,可以更加高效地实现对待转换的逻辑位的转换操作。
为了进一步地通过软件实现对第一接口的接口信号的模拟,进一步地避免对BMC芯片的架构进行升级或者硬件投入,根据本申请的又一个示例性实施例,上述生成子模块还用于在上述第一定时器的计时时长达到上述第一时长的情况下,将上述第二接口的输出设置为低电平状态,并通过上述第二接口输出低电平状态的上述第二信号;上述生成子模块还用于在上述第二定时器的计时时长达到上述第二时长的情况下,停止上述第二信号的输出,并将上述第二接口的输出设置为高电平,得到上述子接口信号。
具体地,上述生成子模块还用于在上述第二定时器的计时时长达到上述第二时长的情况下,触发第二中断,以停止上述第二信号的输出。通过触发第二中断,关闭第二定时器,来实现对子接口信号的持续时长的控制,进一步地保证了可以较为准确地得到持续时长一致的各个子接口信号。
具体地,每触发一次上述第二中断,执行一次定时计数,该定时计数代表转换完成的逻辑位的数量。
进一步地,上述第二中断可以携带有当前已转换的逻辑位的位置信息,上述内核分区通过该位置信息可以知道当前将要进行信号转换的逻辑位的位置。当然,上述内核分区也可以通过统计第二中断的触发次数和上述逻辑位的排序来确定当前将要进行信号转换的逻辑位的位置。上述内核分区还可以通过定时计数和上述逻辑位的排序来确定当前将要进行信号转换的逻辑位的位置。这样在转换过程中出现故障时,故障恢复后对于已经完成信号转换处理的逻辑位则无需重复进行信号转换,从而提高了信号转换效率,避免了内核分区计算资源的浪费,可以更加高效地实现对待转换的逻辑位的转换操作。
在具体应用时,本领域技术人员可以灵活设置上述控制指令的结构形式,一种可选方案中,上述控制指令的数据结构包括地址速率字段、目标地址字段、消息速率字段、写长度字段和读长度字段,其中,上述地址速率字段表征地址数据的传输速率,上述目标地址字段表征上述硬件分区的地址数据,上述消息速率字段表征消息数据的传输速率。上述写长度字段表征上述内核分区的写操作信息,上述读长度字段表征上述内核分区的读操作信息。
举例来说,在上述控制指令为用于确定上述硬件分区是否存在的第一指令时,第一指令具体的消息传输格式如图4所示,其中,地址速率字段为2个逻辑位0,消息速率字段为1个逻辑位0。目标地址字段、写长度字段和读长度字段均为8个逻辑位,目标地址字段由硬件分区的硬件设计决定,一般为0x30(0x表示十六进制数),写长度字段和读长度字段均为0x00,上述的这些字段均由内核分区发起写操作完成。
进一步地,上述装置还包括:接收单元,用于在通过第二接口将上述接口信号发送至上述第一接口之后,接收上述硬件分区响应于上述控制指令生成的响应指令,上述响应指令包括控制指令以及帧校验字段。上述硬件分区响应于该控制指令生成的响应指令除了包括控制指令的信息外,还包括位于控制指令的尾部的帧校验字段,转换为第二接口可识别的信息,得到如图4所示的字段格式。
在一个示例性实施例中,上述第一接口包括PECI接口,上述第二接口包括GPIO接口。也就是说,本申请的内核分区通过GPIO接口模拟PECI信号,并将PECI信号通过GPIO接口发送至硬件分区的PECI接口,实现了BMC与主机系统之间的PECI链路的扩充,从而进一步地实现在不对BMC芯片进行硬件逻辑设计的情况下,通过BMC的内核分区独立管理服务器主机系统的硬件分区的效果,进一步地达到一个BMC芯片对主机系统多个硬件分区进行独立监控的能力。
更为具体地,上述第一接口为PECI接口,上述第二接口为GPIO接口。其中,PECI接口是BMC与主机系统的处理器间进行信息交互的接口,PECI接口作为服务器中的重要接口,主要负责获取服务器的CPU温度、功耗以及如CPU、UPI链路、内存控制器、PCIe链路等的关键单元模块的故障状态信息,为服务器系统的健康状态监控、故障分析与定位提供有力保障。而BMC具有的GPIO接口比较多,这样在实施本申请的技术方案时无需引入额外的硬件开销。
为了进一步地实现对BMC芯片与主机系统之间的通信链路的扩充,进一步地实现一个BMC芯片监控主机系统的多个硬件分区的效果,根据本申请的一些其他实施例,上述硬件分区有多个,上述内核分区有多个,多个上述内核分区中的一个包括第三接口,其他的上述内核分区分别包括上述第二接口,各上述硬件分区分别包括上述第一接口,上述第三接口与上述第一接口的接口类型相同,上述装置还包括:第二发送单元,用于通过上述第三接口将上述控制指令发送至对应的上述第一接口。本实施例中,一个上述内核分区通过第三接口与一个硬件分区的第一接口连接,其他的内核分区通过第二接口与其他的硬件分区的第一接口一一对应连接,也就是说,BMC的内核分区通过第三接口与第一接口形成的物理链路,或者通过第二接口与第一接口形成的物理链路,对硬件分区进行一一对应地监控,进一步地实现了一个BMC管理单元对多个硬件分区进行独立管理,从而进一步地保证了统一服务器平台不同分区系统故障管理功能的独立性。
具体地,上述第三接口也为PECI接口。在现有技术中,一个BMC芯片只存在一个PECI接口,即只能通过该PECI接口与主机系统建立一条PECI链路,通过本申请的上述方案,除了保留该条PECI链路外,通过BMC芯片的多个GPIO接口模拟PECI协议,从而通过GPIO接口与主机系统其他的硬件分区的PECI接口建立一一对应的PECI链路,实现了PECI链路的扩充,使得BMC的内核分区可以一一对应地对硬件分区进行监控。
在实际的应用过程中,上述硬件分区上部署有第一操作系统,上述内核分区上部署有第二操作系统,上述第一操作系统包括但不限于Linux系统、RTOS系统或者其他自开发的软件系统等。上述第二操作系统包括但不限于Linux系统、RTOS系统或者其他自开发的软件系统等。
另外,本申请中,BMC按照内核划分为多个内核分区,一个内核分区部署一个上述第二操作系统。上述内核分区与上述硬件分区一一对应,即一个内核分区对应对一个硬件分区进行健康状态监控、远程开关机、温度(电压)采集以及故障分析与定位等操作。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一种方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一种方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本申请的实施例还提供了一种如图7所示的服务器,包括:主机系统100,包括多个硬件分区101,上述硬件分区包括第一接口102;BMC200,包括多个内核分区201,上述内核分区201与上述硬件分区101一一对应,至少部分的上述内核分区包括第二接口202,上述第一接口102与上述第二接口202的接口类型不同,其中,上述内核分区201用于生成控制上述硬件分区101的控制指令;将上述控制指令转换为符合预定接口协议的接口信号,其中,上述预定接口协议为上述硬件分区101的第一接口102的接口协议;通过第二接口202将上述接口信号发送至上述第一接口102。
上述的服务器中,主机系统被划分为多个独立的硬件分区,BMC被划分为多个独立的内核分区,内核分区与硬件分区一一对应,内核分区通过第二接口与对应的硬件分区的第一接口连接,内核分区通过第二接口来模拟第一接口的接口协议,实现对该硬件分区的监控。这样,本申请无需预先在BMC芯片上实现PECI控制器的硬件逻辑设计,只需内核分区通过第二接口来模拟第一接口的接口协议,即可在BMC芯片上生成接口信号,从而实现了使用软件方式模拟生成硬件接口信号的技术效果,进而达到了无需芯片本身具备相关硬件接口信号的硬件逻辑设计的目的,不仅能够降低BMC芯片的设计难度,降低BMC芯片的设计成本和设计周期,还能实现BMC的一个内核分区独立管理主机系统中一个硬件分区的效果,实现了BMC与主机系统之间的通信链路的扩展,从而可以达到一个BMC芯片对主机系统的多个硬件分区进行独立控制的目的。
另外,本申请中,主机系统根据CPU单元的个数划分为多个硬件分区,一个硬件分区包括一个CPU单元,并对应部署一个第一操作系统,BMC根据核心的个数划分为多个内核分区,一个内核分区部署一个第二操作系统。上述内核分区与上述硬件分区一一对应,即一个内核分区对应对一个硬件分区进行健康状态监控、远程开关机、温度(电压)采集以及故障分析与定位等操作。
在一个示例性实施例中,上述内核分区还用于:根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息;根据多个上述逻辑位信息、第一定时器和第二定时器,生成上述接口信号。本实施例中,根据预定接口协议生成控制指令对应的接口信号,进一步地实现了使用软件方式模拟生成第一接口的接口信号的技术效果。
为了根据多个逻辑位信息、第一定时器和第二定时器生成上述控制指令对应的接口信号,根据本申请的一些可选实施例,上述内核分区还用于:根据多个上述逻辑位信息,确定上述第一定时器和上述第二定时器的计时时长;根据上述计时时长,通过上述第二接口生成上述接口信号。
具体地,上述的第一定时器和第二定时器可以为上述内核分区中的一个计时程序,也可以为上述内核分区上的一个寄存器,其中,上述第一定时器和上述第二定时器至少可以提供计时功能。
在另一个示例性实施例中,上述内核分区还用于:获取每个上述逻辑位信息对应的第一时长以及第二时长,上述第一时长表征上述逻辑位信息处于高电平的时长,上述第二时长表征上述逻辑位信息的总持续时长,不同的上述逻辑位信息对应的上述第一时长不同;确定上述第一定时器的计时时长为上述第一时长,以及确定上述第二定时器的计时时长为上述第二时长。本实施例中,通过设置第一定时器的计时时长为第一时长,第二定时器的计时时长为第二时长,方便后续根据第一定时器和第二定时器的计时时长生成不同的逻辑位对应的逻辑位信息,得到接口信号,进一步地达到了在无需对BMC芯片进行接口信号的硬件逻辑设计的基础上,利用软件系统生成接口信号的目的,从而进一步地降低了BM芯片的设计难度。
其中,上述第一时长小于上述第二时长。
可选地,上述控制指令由至少一个字段构成,上述字段通过多个逻辑位进行表示,每个逻辑位可以为0或者1,将每个逻辑位转换为对应的上述逻辑位信息,即得到该控制指令对应的上述接口信号。上述逻辑位信息具体可以通过高电平信号和低电平信号的结合使用来表示,例如,对于逻辑位0,可使用第一预设时长的高电平信号和第二预设时长的低电平信号来组合表示,对于逻辑位1,可使用第三预设时长的高电平信号和第四预设时长的低电平信号来组合表示,其中,第一预设时长和第三预设时长不同,第二预设时长和第四预设时长也不同。
通常来说,在一种接口协议下,多个逻辑位信息中的每个逻辑位信息对应的运行时长都是相同的,即每个上述逻辑位信息对应的上述第二时长都是相同的。因此,上述第一预设时长与上述第二预设时长之和等于上述第三预设时长与上述第四预设时长之和。
在实际的应用过程中,多个逻辑位信息之间存在先后顺序,为了进一步地保证较为准确地得到上述控制指令对应的接口信号,本申请的再一种具体的实施例中,上述内核分区还用于:根据上述第一定时器的上述第一时长以及上述第二定时器的第二时长,按照多个上述逻辑位信息的排序,通过上述第二接口依次生成每个上述逻辑位信息对应的子接口信号,得到上述接口信号。
具体地,上述子接口信号实际是一段由高电平信号和低电平信号组成的波形信号,多个波形信号构成上述接口信号。
可选地,如图3所示,在上述逻辑位为0时,对应第一定时器的第一时长为t0,在上述逻辑位为1时,对应上述第一定时器的第一时长为t1, t0小于t1,上述第二时长为tBIT,一般情况下,t0为tBIT的0.6~0.8倍,即t0=0.2~0.4tBIT,t1为tBIT的0.6~0.8倍,即t1=0.6~0.8tBIT。
在一个示例性实施例中,上述内核分区还用于:
控制步骤,控制上述第一定时器和上述第二定时器开始计时,并在上述第一定时器的计时时长达到上述第一时长前,通过上述第二接口输出第一信号;
具体地,上述第一定时器和上述第二定时器的内部分别含有一个递减计数器,将第一定时器的起始值设置为上述第一时长,将第二定时器的起始值设置为上述第二时长,当第一定时器和第二定时器开始计时的情况下,其中的递减计数器从起始值开始递减至0,并在达到0时触发第一定时器以及第二定时器中断,并将第一定时器的起始值重置为上述第一时长,以及将第二定时器的起始值重置为上述第二时长,之后重新进行递减计数。其中,中断可以理解为是一种标识,因此,中断也可以称为中断标识。
可选地,上述第一信号为高电平信号。本申请中,为了实现将逻辑位0或1转换为对应的子接口信号,在第一定时器的计时时长达到第一时长前,通过第二接口生成高电平的第一信号。
输出步骤,在上述第一定时器的计时时长达到上述第一时长后且上述第二定时器的计时时长达到上述第二时长前,通过上述第二接口输出第二信号,得到由上述第一信号和上述第二信号构成的上述子接口信号;
可选地,上述第二信号为低电平信号。本申请中,为了区分表示逻辑位0以及1,在第一定时器的计时时长达到第一时长之后,通过第二接口生成低电平的第二信号,直到第二定时器的计时时长达到第二时长,得到不同波形的子接口信号,其中,逻辑位为0以及1对应的波形信号具有不同的占空比。
计数步骤,在上述第二定时器的计时时长达到上述第二时长的情况下,执行一次定时计数;
具体地,执行一次定时计数可以是在原来的定时计数值的基础上加一。
确定步骤,确定定时计数值是否小于上述逻辑位信息的总数,在上述定时计数值小于上述逻辑位信息的总数的情况下,按照上述排序,依次执行上述控制步骤、上述输出步骤以及上述计数步骤,直到上述定时计数值不小于上述逻辑位信息的总数,得到包括多个上述子接口信号的上述接口信号。
上述实施例中,按逻辑位的顺序配置第一定时器和第二定时器并控制两者启动,根据第一定时器和第二定时器的计时时长输出对应时长的第一信号以及第二信号,实现对逻辑位对应的波形信号持续时长的控制,进一步地实现了以软件的方式依次模拟出多个子接口信号,得到接口信号的效果。
上述内核分区还用于:在上述控制步骤之前,将上述定时计数值初始化为0。
在实际应用过程中,上述内核分区还用于:在根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息之前,将由多个逻辑位构成的控制指令存储至一个数组变量中,该数组变量的数据流长度大于或者等于上述逻辑位的数量,各上述逻辑位按照排序顺序存储在上述数组变量中;设置逻辑位的索引变量,上述索引变量用于从上述数组变量中索引对应位置的逻辑位。这样后续在根据上述预定接口协议,确定上述控制指令对应的多个逻辑位信息的过程中,可以按照逻辑位的排序依次从该数组变量中读取逻辑位,并确定其对应的逻辑位信息。
那么,上述内核分区还用于:索引步骤,根据上述索引变量从上述数组变量中索引得到待转换的逻辑位;第二确定步骤,根据上述预定接口协议,确定待转换的逻辑位对应的逻辑位信息。
上述内核分区还用于:在设置逻辑位的索引变量之后,在根据上述索引变量从上述数组变量中索引得到待转换的逻辑位之前,将上述索引变量初始化为0。
上述实施例中,获取每个上述逻辑位信息对应的第一时长以及第二时长的步骤作为获取步骤,确定上述第一定时器的计时时长为上述第一时长,以及确定上述第二定时器的计时时长为上述第二时长的步骤作为第四确定步骤,根据上述第一定时器的上述第一时长以及上述第二定时器的第二时长,按照多个上述逻辑位信息的排序,通过上述第二接口依次生成每个上述逻辑位信息对应的子接口信号的步骤作为生成步骤,上述内核分区还用于:累加步骤,在上述第二定时器的计时时长达到上述第二时长的情况下,对上述索引变量进行加一操作,得到更新后的索引变量;上述内核分区还用于:第三确定步骤,确定更新后的上述索引变量是否小于上述逻辑位信息的总数,在更新后的上述索引变量小于上述逻辑位信息的总数的情况下,依次执行上述索引步骤、上述第二确定步骤、上述获取步骤、上述第四确定步骤以及上述生成步骤,直到上述索引变量不小于上述逻辑位的数量。也就是说,通过索引变量从数组变量中依次读取上述逻辑位,并获取读取的逻辑位对应的第一时长和第二时长,得到第一定时器和第二定时器的计时时长,最后控制第一定时器和第二定时器按照计时时长开始计时,并通过第二接口依次生成该逻辑位信息对应的子接口信号,进一步地实现了按照顺序生成接口子新号,从而进一步地保证了得到较为准确的接口信号。
其中,上述的逻辑位的排序指的是构成上述控制指令的逻辑位的顺序,如控制指令对应逻辑位按照先后顺序分别为逻辑位1、逻辑位2、逻辑位3、……、逻辑位n,对应的索引变量分别为索引变量0、索引变量1、索引变量2、……、索引变量n-1,则通过上述循环过程依次生成逻辑位1、逻辑位2、逻辑位3、……、逻辑位n对应的子接口信号,即得到子接口信号1、子接口信号2、子接口信号3、……、子接口信号n,得到接口信号。
具体地,在得到多个子接口信号之后,上述内核分区还用于:按照多个上述子接口信号的生成顺序,将多个子接口信号进行拼接,得到上述接口信号。
在一个示例性实施例中,上述内核分区还用于:在上述控制步骤之前,将上述第二接口的输出初始化为低电平状态。由于根据预定接口协议的传输协议规范,默认电平状态为低电平,故本实施例先将第二接口的输出初始为低电平,在启动第一定时器和第二定时器时,再通过第二接口将输出置高,来输出高电平的第一信号。
为了进一步地通过软件实现对第一接口的接口信号的模拟,进一步地避免对BMC芯片的架构进行升级或者硬件投入,再一种可选的实施方式中,上述内核分区还用于:控制上述第一定时器和上述第二定时器开始计时;将上述第二接口的输出设置为高电平状态,并通过上述第二接口输出上述高电平状态的上述第一信号;在上述第一定时器的计时时长达到上述第一时长的情况下,停止上述第一信号的输出,并将上述第二接口的输出设置为低电平。
可选地,上述内核分区还用于:在上述第一定时器的计时时长达到上述第一时长的情况下,触发第一中断,以停止上述第一信号的输出。通过触发第一中断,关闭第一定时器,来实现对子接口信号中高电平持续时长的控制,进一步地实现对不同逻辑位的转换。
具体地,上述第一中断可以携带有当前已转换的逻辑位的位置信息,上述内核分区通过该位置信息可以知道当前将要进行信号转换的逻辑位的位置。当然,上述内核分区也可以通过统计第一中断的触发次数和上述逻辑位的排序来确定当前将要进行信号转换的逻辑位的位置。这样在转换过程中出现故障时,故障恢复后对于已经完成信号转换处理的逻辑位则无需重复进行信号转换,从而提高了信号转换效率,避免了内核分区计算资源的浪费,可以更加高效地实现对待转换的逻辑位的转换操作。
为了进一步地通过软件实现对第一接口的接口信号的模拟,进一步地避免对BMC芯片的架构进行升级或者硬件投入,根据本申请的又一个示例性实施例,上述内核分区还用于:在上述第一定时器的计时时长达到上述第一时长的情况下,将上述第二接口的输出设置为低电平状态,并通过上述第二接口输出低电平状态的上述第二信号;在上述第二定时器的计时时长达到上述第二时长的情况下,停止上述第二信号的输出,并将上述第二接口的输出设置为高电平,得到上述子接口信号。
具体地,上述内核分区还用于:在上述第二定时器的计时时长达到上述第二时长的情况下,触发第二中断,以停止上述第二信号的输出。通过触发第二中断,关闭第二定时器,来实现对子接口信号的持续时长的控制,进一步地保证了可以较为准确地得到持续时长一致的各个子接口信号。
具体地,每触发一次上述第二中断,执行一次定时计数,该定时计数代表转换完成的逻辑位的数量。
进一步地,上述第二中断可以携带有当前已转换的逻辑位的位置信息,上述内核分区通过该位置信息可以知道当前将要进行信号转换的逻辑位的位置。当然,上述内核分区也可以通过统计第二中断的触发次数和上述逻辑位的排序来确定当前将要进行信号转换的逻辑位的位置。上述内核分区还可以通过定时计数和上述逻辑位的排序来确定当前将要进行信号转换的逻辑位的位置。这样在转换过程中出现故障时,故障恢复后对于已经完成信号转换处理的逻辑位则无需重复进行信号转换,从而提高了信号转换效率,避免了内核分区计算资源的浪费,可以更加高效地实现对待转换的逻辑位的转换操作。
在具体应用时,本领域技术人员可以灵活设置上述控制指令的结构形式,一种可选方案中,上述控制指令的数据结构包括地址速率字段、目标地址字段、消息速率字段、写长度字段和读长度字段,其中,上述地址速率字段表征地址数据的传输速率,上述目标地址字段表征上述硬件分区的地址数据,上述消息速率字段表征消息数据的传输速率。上述写长度字段表征上述内核分区的写操作信息,上述读长度字段表征上述内核分区的读操作信息。
举例来说,在上述控制指令为用于确定上述硬件分区是否存在的第一指令时,第一指令具体的消息传输格式如图4所示,其中,地址速率字段为2个逻辑位0,消息速率字段为1个逻辑位0。目标地址字段、写长度字段和读长度字段均为8个逻辑位,目标地址字段由硬件分区的硬件设计决定,一般为0x30(0x表示十六进制数),写长度字段和读长度字段均为0x00,上述的这些字段均由内核分区发起写操作完成。
进一步地,上述内核分区还用于:在通过第二接口将上述接口信号发送至上述第一接口之后,接收上述硬件分区响应于上述控制指令生成的响应指令,上述响应指令包括控制指令以及帧校验字段。上述硬件分区响应于该控制指令生成的响应指令除了包括控制指令的信息外,还包括位于控制指令的尾部的帧校验字段,转换为第二接口可识别的信息,得到如图4所示的字段格式。
在一个示例性实施例中,上述第一接口包括PECI接口,上述第二接口包括GPIO接口。也就是说,本申请的内核分区通过GPIO接口模拟PECI信号,并将PECI信号通过GPIO接口发送至硬件分区的PECI接口,实现了BMC与主机系统之间的PECI链路的扩充,从而进一步地实现在不对BMC芯片进行硬件逻辑设计的情况下,通过BMC的内核分区独立管理服务器主机系统的硬件分区的效果,进一步地达到一个BMC芯片对主机系统多个硬件分区进行独立监控的能力。
更为具体地,上述第一接口为PECI接口,上述第二接口为GPIO接口。其中,PECI接口是BMC与主机系统的处理器间进行信息交互的接口,PECI接口作为服务器中的重要接口,主要负责获取服务器的CPU温度、功耗以及如CPU、UPI链路、内存控制器、PCIe链路等的关键单元模块的故障状态信息,为服务器系统的健康状态监控、故障分析与定位提供有力保障。而BMC具有的GPIO接口比较多,这样在实施本申请的技术方案时无需引入额外的硬件开销。
为了进一步地实现对BMC芯片与主机系统之间的通信链路的扩充,进一步地实现一个BMC芯片监控主机系统的多个硬件分区的效果,根据本申请的一些其他实施例,如图7所示,多个上述内核分区201中的一个包括第三接口203,其他的上述内核分区201分别包括上述第二接口202,各上述硬件分区101分别包括上述第一接口102,上述第三接口203与上述第一接口102的接口类型相同,上述内核分区还用于:通过上述第三接口将上述控制指令发送至对应的上述第一接口。本实施例中,一个上述内核分区通过第三接口与一个硬件分区的第一接口连接,其他的内核分区通过第二接口与其他的硬件分区的第一接口一一对应连接,也就是说,BMC的内核分区通过第三接口与第一接口形成的物理链路,或者通过第二接口与第一接口形成的物理链路,对硬件分区进行一一对应地监控,进一步地实现了一个BMC管理单元对多个硬件分区进行独立管理,从而进一步地保证了统一服务器平台不同分区系统故障管理功能的独立性。
具体地,上述第三接口也为PECI接口。在现有技术中,一个BMC芯片只存在一个PECI接口,即只能通过该PECI接口与主机系统建立一条PECI链路,通过本申请的上述方案,除了保留该条PECI链路外,通过BMC芯片的多个GPIO接口模拟PECI协议,从而通过GPIO接口与主机系统其他的硬件分区的PECI接口建立一一对应的PECI链路,实现了PECI链路的扩充,使得BMC的内核分区可以一一对应地对硬件分区进行监控。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (23)

1.一种接口通信方法,其特征在于,服务器主机系统包括硬件分区,基板管理控制器包括内核分区,所述内核分区用于管理所述硬件分区,所述方法包括:
生成控制所述硬件分区的控制指令;
将所述控制指令转换为符合预定接口协议的接口信号,其中,所述预定接口协议为所述硬件分区的第一接口的接口协议;
通过第二接口将所述接口信号发送至所述第一接口,所述第一接口与所述第二接口的接口类型不同,
将所述控制指令转换为符合预定接口协议的接口信号,包括:
根据所述预定接口协议,确定所述控制指令对应的多个逻辑位信息;
根据多个所述逻辑位信息、第一定时器和第二定时器,生成所述接口信号。
2.根据权利要求1所述的方法,其特征在于,根据多个所述逻辑位信息、第一定时器和第二定时器,生成所述接口信号,包括:
根据多个所述逻辑位信息,确定所述第一定时器和所述第二定时器的计时时长;
根据所述计时时长,通过所述第二接口生成所述接口信号。
3.根据权利要求2所述的方法,其特征在于,根据多个所述逻辑位信息,确定所述第一定时器和所述第二定时器的计时时长,包括:
获取每个所述逻辑位信息对应的第一时长以及第二时长,所述第一时长表征所述逻辑位信息处于高电平的时长,所述第二时长表征所述逻辑位信息的总持续时长,不同的所述逻辑位信息对应的所述第一时长不同;
确定所述第一定时器的计时时长为所述第一时长,以及确定所述第二定时器的计时时长为所述第二时长。
4.根据权利要求3所述的方法,其特征在于,根据所述计时时长,通过所述第二接口生成所述接口信号,包括:
根据所述第一定时器的所述第一时长以及所述第二定时器的第二时长,按照多个所述逻辑位信息的排序,通过所述第二接口依次生成每个所述逻辑位信息对应的子接口信号,得到所述接口信号。
5.根据权利要求4所述的方法,其特征在于,根据所述第一定时器的所述第一时长以及所述第二定时器的第二时长,按照多个所述逻辑位信息的排序,通过所述第二接口依次生成每个所述逻辑位信息对应的子接口信号,得到所述接口信号,包括:
控制步骤,控制所述第一定时器和所述第二定时器开始计时,并在所述第一定时器的计时时长达到所述第一时长前,通过所述第二接口输出第一信号;
输出步骤,在所述第一定时器的计时时长达到所述第一时长后且所述第二定时器的计时时长达到所述第二时长前,通过所述第二接口输出第二信号,得到由所述第一信号和所述第二信号构成的所述子接口信号;
计数步骤,在所述第二定时器的计时时长达到所述第二时长的情况下,执行一次定时计数;
确定步骤,确定定时计数值是否小于所述逻辑位信息的总数,在所述定时计数值小于所述逻辑位信息的总数的情况下,按照所述排序,依次执行所述控制步骤、所述输出步骤以及所述计数步骤,直到所述定时计数值不小于所述逻辑位信息的总数,得到包括多个所述子接口信号的所述接口信号。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述控制步骤之前,将所述第二接口的输出初始化为低电平状态。
7.根据权利要求5所述的方法,其特征在于,所述控制步骤包括:
控制所述第一定时器和所述第二定时器开始计时;
将所述第二接口的输出设置为高电平状态,并通过所述第二接口输出所述高电平状态的所述第一信号;
在所述第一定时器的计时时长达到所述第一时长的情况下,停止所述第一信号的输出,并将所述第二接口的输出设置为低电平。
8.根据权利要求7所述的方法,其特征在于,在所述第一定时器的计时时长达到所述第一时长的情况下,停止所述第一信号的输出,包括:
在所述第一定时器的计时时长达到所述第一时长的情况下,触发第一中断,以停止所述第一信号的输出。
9.根据权利要求5所述的方法,其特征在于,所述输出步骤包括:
在所述第一定时器的计时时长达到所述第一时长的情况下,将所述第二接口的输出设置为低电平状态,并通过所述第二接口输出低电平状态的所述第二信号;
在所述第二定时器的计时时长达到所述第二时长的情况下,停止所述第二信号的输出,并将所述第二接口的输出设置为高电平,得到所述子接口信号。
10.根据权利要求7所述的方法,其特征在于,在所述第二定时器的计时时长达到所述第二时长的情况下,停止所述第二信号的输出,包括:
在所述第二定时器的计时时长达到所述第二时长的情况下,触发第二中断,以停止所述第二信号的输出。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述控制指令包括以下至少之一:
第一指令,用于确定所述硬件分区是否存在;
第二指令,用于获取所述硬件分区的传感器温度;
第三指令,用于获取所述硬件分区的寄存器数据。
12.根据权利要求1至10中任一项所述的方法,其特征在于,所述控制指令的数据结构包括地址速率字段、目标地址字段、消息速率字段、写长度字段和读长度字段,其中,所述地址速率字段表征地址数据的传输速率,所述目标地址字段表征所述硬件分区的地址数据,所述消息速率字段表征消息数据的传输速率。
13.根据权利要求1至10中任一项所述的方法,其特征在于,在通过第二接口将所述接口信号发送至所述第一接口之后,所述方法还包括:
接收所述硬件分区响应于所述控制指令生成的响应指令,所述响应指令包括控制指令以及帧校验字段。
14.根据权利要求1至10中任一项所述的方法,其特征在于,所述第一接口包括PECI接口,所述第二接口包括GPIO接口。
15.根据权利要求1至10中任一项所述的方法,其特征在于,所述硬件分区有多个,所述内核分区有多个,多个所述内核分区中的一个包括第三接口,其他的所述内核分区分别包括所述第二接口,各所述硬件分区分别包括所述第一接口,所述第三接口与所述第一接口的接口类型相同,所述方法还包括:
通过所述第三接口将所述控制指令发送至对应的所述第一接口。
16.一种接口通信装置,其特征在于,服务器主机系统包括硬件分区,基板管理控制器包括内核分区,所述内核分区用于管理所述硬件分区,所述装置包括:
生成单元,用于生成控制所述硬件分区的控制指令;
转换单元,用于将所述控制指令转换为符合预定接口协议的接口信号,其中,所述预定接口协议为所述硬件分区的第一接口的接口协议;
第一发送单元,用于通过第二接口将所述接口信号发送至所述第一接口,所述第一接口与所述第二接口的接口类型不同,
所述转换单元包括:
确定模块,用于根据所述预定接口协议,确定所述控制指令对应的多个逻辑位信息;
生成模块,用于根据多个所述逻辑位信息、第一定时器和第二定时器,生成所述接口信号。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至15中任一项所述的方法的步骤。
18.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至15中任一项所述的方法的步骤。
19.一种服务器,其特征在于,包括:
主机系统,包括多个硬件分区,所述硬件分区包括第一接口;
BMC,包括多个内核分区,所述内核分区与所述硬件分区一一对应,至少部分的所述内核分区包括第二接口,所述第一接口与所述第二接口的接口类型不同,
其中,所述内核分区用于生成控制所述硬件分区的控制指令;将所述控制指令转换为符合预定接口协议的接口信号,其中,所述预定接口协议为所述硬件分区的第一接口的接口协议;通过第二接口将所述接口信号发送至所述第一接口,
所述内核分区还用于根据所述预定接口协议,确定所述控制指令对应的多个逻辑位信息;根据多个所述逻辑位信息、第一定时器和第二定时器,生成所述接口信号。
20.根据权利要求19所述的服务器,其特征在于,所述内核分区还用于根据多个所述逻辑位信息,确定所述第一定时器和所述第二定时器的计时时长;根据所述计时时长,通过所述第二接口生成所述接口信号。
21.根据权利要求20所述的服务器,其特征在于,所述内核分区还用于获取每个所述逻辑位信息对应的第一时长以及第二时长,所述第一时长表征所述逻辑位信息处于高电平的时长,所述第二时长表征所述逻辑位信息的总持续时长,不同的所述逻辑位信息对应的所述第一时长不同;确定所述第一定时器的计时时长为所述第一时长,以及确定所述第二定时器的计时时长为所述第二时长。
22.根据权利要求21所述的服务器,其特征在于,所述内核分区还用于根据所述第一定时器的所述第一时长以及所述第二定时器的第二时长,按照多个所述逻辑位信息的排序,通过所述第二接口依次生成每个所述逻辑位信息对应的子接口信号,得到所述接口信号。
23.根据权利要求19所述的服务器,其特征在于,多个所述内核分区中的一个包括第三接口,所述第三接口与所述第一接口的接口类型相同,除包括所述第三接口外的所有的所述内核分区均包括所述第二接口,包括所述第三接口的所述内核分区用于通过所述第三接口将所述控制指令发送至对应的所述第一接口。
CN202311090170.9A 2023-08-28 2023-08-28 接口通信方法、装置以及服务器 Active CN116795752B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311090170.9A CN116795752B (zh) 2023-08-28 2023-08-28 接口通信方法、装置以及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311090170.9A CN116795752B (zh) 2023-08-28 2023-08-28 接口通信方法、装置以及服务器

Publications (2)

Publication Number Publication Date
CN116795752A CN116795752A (zh) 2023-09-22
CN116795752B true CN116795752B (zh) 2024-01-19

Family

ID=88040120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311090170.9A Active CN116795752B (zh) 2023-08-28 2023-08-28 接口通信方法、装置以及服务器

Country Status (1)

Country Link
CN (1) CN116795752B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117056275B (zh) * 2023-10-10 2024-02-09 苏州元脑智能科技有限公司 基于硬件分区系统的通信控制方法、装置及服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448620A (zh) * 2020-03-27 2021-09-28 英特尔公司 用于对代码进行分区操作的指令的装置、方法和系统
CN114721992A (zh) * 2022-04-29 2022-07-08 苏州浪潮智能科技有限公司 一种服务器及其服务器管理系统
CN116627520A (zh) * 2023-07-26 2023-08-22 苏州浪潮智能科技有限公司 基板管理控制器的系统运行方法以及基板管理控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448620A (zh) * 2020-03-27 2021-09-28 英特尔公司 用于对代码进行分区操作的指令的装置、方法和系统
CN114721992A (zh) * 2022-04-29 2022-07-08 苏州浪潮智能科技有限公司 一种服务器及其服务器管理系统
CN116627520A (zh) * 2023-07-26 2023-08-22 苏州浪潮智能科技有限公司 基板管理控制器的系统运行方法以及基板管理控制器

Also Published As

Publication number Publication date
CN116795752A (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
CN109766302B (zh) 设备管理的方法和装置
CN112463614B (zh) 一种基于硬件板卡接入的软件虚拟化测试环境构建方法
CN116795752B (zh) 接口通信方法、装置以及服务器
CN102664902B (zh) Powerlink通讯协议主从站内核的硬件实现方法
CN109240966A (zh) 一种基于cpld的加速卡、数据采集方法及装置
CN110837488B (zh) 报文传输方法和装置
CN116541227B (zh) 故障诊断方法、装置、存储介质、电子装置及bmc芯片
CN117032812B (zh) 服务器的管理方法、设备、装置、存储介质和电子设备
CN117278890A (zh) 光模块访问方法、装置、系统、电子设备及可读存储介质
CN116166434A (zh) 处理器分配方法及系统、装置、存储介质、电子设备
CN109714369B (zh) 分布式充电桩通信系统的通信方法、充电桩及联网装置
CN111830390A (zh) 一种测试方法及相关产品
CN114430366A (zh) 信息采集应用下发方法、相关装置及计算机程序产品
CN116795605B (zh) 一种外围器件互联扩展设备异常自动恢复系统以及方法
CN112162879A (zh) 一种实时多核dsp软件的日志系统
CN115237849B (zh) 可动态重构和异构的计算模块及计算装置
CN113342456A (zh) 一种连接方法、装置、设备和存储介质
CN113609052A (zh) 基于fpga和微处理器的芯片模拟系统及实现方法
CN111831539B (zh) 一种测试方法及相关产品
CN117785493B (zh) 嵌入式系统的硬件资源访问方法、装置及服务器
CN108628683B (zh) 数据传输方法和装置
CN115509153B (zh) 一种窄带物联网NB-IoT通信模组的二次开发方法及装置
WO2020025680A1 (en) Data processing module, data processing system and data processing method
CN117376229B (zh) 基于嵌入式设备的ftp文件系统软件交叉调试方法及系统
CN117849596B (zh) 面向向量精简的分布式自动测试向量生成方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant