一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

建立通信链路的方法、装置和存储介质与流程

2022-02-22 03:10:28 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种建立通信链路的方法、装置和存储介质。


背景技术:

2.目前基于x86体系的芯片设计以及开发环境都已经趋于成熟,uefi(unified extensible firmware interface,通用可扩展固件接口)的提出更是让传统的bios(basic input output system,基本输入输出系统)逐渐退出了历史舞台。由于uefi强大的扩展性,目前基于uefi bios的芯片生态及市场应用也越来越广阔,围绕x86架构的处理器生态应用包括个人pc,网络交换机及数据中心应用的服务器等,这其中基于服务器的设计和使用尤为复杂,因为数据中心所用的服务器对安全性和稳定性要求远远高于个人电脑,因此基于x86体系衍生出一系列周围组件,这其中bmc(baseboard management controller,基板管理控制器)正是基于服务器运行的安全角度应用而生,bmc主要用于监控服务器运行状态,并且对主板上的风扇以及设备信息等设备进行管理,起着至关重要的作用。为确保系统运行流畅和稳定,cpu与bmc之间的需要建立一条通信链路,这样才能保证cpu端运行的bios和os系统可以与bmc进行信息交互,目前两者之间通信均是通过ipmi(intelligent platform management interface,智能平台管理接口)服务
3.但是,由于bmc系统的运行服务太多,而且前置依赖也比较多,所以,bmc端启动ipmi服务所需要的时间需要很长,这就导致了若cpu的bios启动时间较快,就必定会出现bios需等待bmc的ipmi服务准备完成,二者方可建立链路通道,在bios与bmc需要信息交互的情况下,此种做法无可厚非,但是部分机型bios阶段并无与bmc进行信息交互的需求,比如大部分的网络交换机,由于功能明确,系统结构较为单一,不需要bios与bmc交互信息,仅需要bios与bmc建立通道,并安装相关的服务以供os交互使用即可,在这种情况下,如果还需要原始的bios无休止等待bmc服务的方案,势必造成bios启动时间太长,整机设备的启动速度也会加长,不利于用户体验。
4.目前几乎所有厂商的启动方案,均是采用cpu和bmc先后上电,或者cpu的bios无限等待bmc的方案,这种方案具有通用性强的特点,但是针对部分产品,比如智能网卡,网络交换机等功能单一,针对性强的产品,有时候bios仅需构建链路通路即可,无需进行数据交互,这时仍旧采用原始的方案,必定会造成整机设备启动过慢的问题。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够提升设备的开机速度的建立通信链路的方法、装置和存储介质。
6.一方面,提供一种建立通信链路的方法,所述方法包括:
7.同时启动运行基本输入输出系统bios与基板管理控制器bmc;
8.所述bios获取所述bmc的状态,并判断所述bmc的状态是否为可用状态;
9.当所述bmc的状态为可用状态时,所述bios建立与所述bmc之间的通信链路。
10.在其中一个实施例中,所述方法还包括:
11.在pei阶段,所述bios使用ipmi服务获取所述bmc的状态;
12.若获取成功,则将所述bmc的状态标记为可用状态,建立与所述bmc之间的通信链路;
13.若获取失败,则根据预定的时间间隔重复执行获取操作,若在达到预定的获取次数后仍未成功获取所述bmc的状态,则将所述bmc的状态标记为不可用状态;
14.所述bios将所述bmc的状态存储至hob中。
15.在其中一个实施例中,所述方法还包括:
16.在dxe阶段,所述bios从所述hob中读取所述bmc的状态标志位,检查所述bmc的状态是否可用,若不可用,则创建定时器函数,所述定时器函数定时与所述bmc通信,获取所述bmc的状态。
17.在其中一个实施例中,所述方法还包括:
18.所述bios与所述bmc建立通信链路之后,所述bios向所述bmc发送ipmi命令;
19.所述bios判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息。
20.在其中一个实施例中,所述方法还包括:
21.在显示界面显示所述第一标识信息,所述第一标识信息为预设第一数值。
22.在其中一个实施例中,所述方法还包括:
23.所述bios与所述bmc建立通信链路之后,再次获取所述bios与所述bmc之间的ipmi链路的状态,得到第二状态值;若所述第二状态值为异常,则执行重启命令进行设备重启。
24.另一方面,提供了一种建立通信链路的装置,应用于bios中,所述装置包括:
25.启动模块,用于在启动基板管理控制器bmc的同时,启动运行基本输入输出系统bios;
26.获取模块,用于获取所述bmc的状态,并判断所述bmc的状态是否为可用状态;
27.建立模块,用于当所述bmc的状态为可用状态时,建立与所述bmc之间的通信链路。
28.在其中一个实施例中,所述获取模块还用于:
29.在pei阶段,使用ipmi服务获取所述bmc的状态;
30.若获取成功,则将所述bmc的状态标记为可用状态,所述建立模块建立与所述bmc之间的通信链路;
31.若获取失败,则根据预定的时间间隔重复执行获取操作,若在达到预定的获取次数后仍未成功获取所述bmc的状态,则将所述bmc的状态标记为不可用状态;
32.将所述bmc的状态存储至hob中。
33.在其中一个实施例中,所述获取模块还用于:
34.在dxe阶段,从所述hob中读取所述bmc的状态标志位,检查所述bmc的状态是否可用,若不可用,则创建定时器函数,所述定时器函数定时与所述bmc通信,获取所述bmc的状态。
35.又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
36.同时启动运行基本输入输出系统bios与基板管理控制器bmc;
37.所述bios获取所述bmc的状态,并判断所述bmc的状态是否为可用状态;
38.当所述bmc的状态为可用状态时,所述bios建立与所述bmc之间的通信链路。
39.上述建立通信链路的方法、装置和存储介质,在bmc启动的同时启动运行bios,定时器轮询的方式,让bios定期向bmc获取状态,充分让bios的启动时间,和bmcipmi服务初始化时间重合,尽可能减少由于等待链路构建所造成的时间浪费,有助于提升设备的开机速度。
附图说明
40.图1为一个实施例中建立通信链路的方法流程示意图;
41.图2为一个实施例中建立通信链路的装置的结构框图;
具体实施方式
42.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
43.在一个实施例中,如图1所示,提供一种建立通信链路的方法,所述方法包括:
44.步骤s101:同时启动运行基本输入输出系统bios与基板管理控制器bmc。
45.目前大多数的服务器和网络交换设备中,为了确保bios启动时无需等待太久或者由于retry次数达到上限而跳出循环,一般采用由cpld控制bmc与bios先后启动的方案,即由整机设备插入ac上电后,cpld控制bmc先上电启动,当bmc服务基本初始化完成后,由bmc反馈信号给cpld,此时cpld再给cpu上电,bios开始运行,采用这种先后顺序的方式规避由于等待bmc服务所造成的延时,但本质上来讲,整机设备的启动时间并未减少。
46.基于此,本步骤中,无需等待bmc服务基本初始化完成后再启动bios,而是在启动bmc的同时,也启动bios。整机设备上电后,放弃cpld先后起电的逻辑,要求cpld同时给bios和bmc上电,此时bios和bmc同时启动运行,bmc按照原始步骤持续启动。
47.步骤s102:所述bios获取所述bmc的状态,并判断所述bmc的状态是否为可用状态。
48.本步骤中,bios可以使用ipmi服务,向bmc发送状态查询,来获取bmc的状态,并确定当前bmc的状态是否可用。
49.步骤s103:当所述bmc的状态为可用状态时,所述bios建立与所述bmc之间的通信链路。
50.本步骤中,如果bmc的状态可用,则bios与bmc的握手通信,以建立通道。
51.本实施例通过同时启动bios和bmc,bios在获取到bmc的状态可用的情况下建立与bmc的通信链路,用bios的启动时间来弥补bmc初始化ipmi服务所用的时间,尽可能让二者时间互相重合,互相补充,达到加快开机进程的目的。
52.在其中一个实施例中,所述方法还包括:
53.在pei阶段,所述bios使用ipmi服务获取所述bmc的状态;
54.若获取成功,则将所述bmc的状态标记为可用状态,建立与所述bmc之间的通信链路;
55.若获取失败,则根据预定的时间间隔重复执行获取操作,若在达到预定的获取次数后仍未成功获取所述bmc的状态,则将所述bmc的状态标记为不可用状态;
56.所述bios将所述bmc的状态存储至hob中。
57.具体地,bios的启动流程分为四个阶段,分别为sec,pei,dxe,bds,最后os加载启动,其中,pei(pre-efi initialization)主要功能是为dxe准备执行环境,将需要传递到dxe的信息组成hob(handoff block)列表,最终将控制权转交给dxe。dxe为驱动执行环境,执行大部分系统初始化工作。bds(boot device selection)的主要功能是执行启动策略。
58.bios在pei阶段第一次尝试使用ipmi服务,向bmc发送状态查询,并确定当前bmc的状态,如果获取成功,则bios标记bmc状态为可用状态,后续代码执行时,检查到状态可用标志,则bios将ipmi服务安装,构建通道,并告知os,os可以使用该通路进行与bmc之间的通信;当获取状态不成功时,bios尝试retry 3次,等待时间和次数不能太久,若依旧不成功,则表明bmc服务未准备好,bios不再尝试,标记bmc状态不可用,继续向下执行
59.bios的pei阶段启动时间比较快,且服务较少,因此这个阶段可尝试与bmc握手通信,检查bmc的状态,在状态可用时建立通信链路,节省开机启动时间。
60.在其中一个实施例中,所述方法还包括:
61.在dxe阶段,所述bios从所述hob中读取所述bmc的状态标志位,检查所述bmc的状态是否可用,若不可用,则创建定时器函数,所述定时器函数定时与所述bmc通信,获取所述bmc的状态。
62.具体地,pei阶段未建立通道后,bios将标记bmc的状态不可用,相关服务也未正常安装,此时,为了bios后面能继续尝试该服务,需要将bmc的不可用状态标记加入到hob中,通过hob将数据传递至dxe阶段,dxe阶段可用服务和功能很多,该阶段可以基于cpu的计时器定义timer函数,dxe阶段开启后,首先安装dxecore,dxe service等服务函数,在原有的流程中,在这些基础函数安装完毕后,增减oem的功能,首先从pei传来的hob中找到bmc的状态标志位,检查bmc是否可用,若可用,则表明pei阶段相关服务和通道已经建立完毕,无需添加其他功能,若不可用,此时需要使用createvent函数,创建一个定时器函数,也就是创建一个定时执行的功能函数,用来和bmc进行握手通信。
63.dxe启动时间较长,根据不同的项目,大概启动时间能到1分钟-3分钟不等,正是利用的dxe的启动时间来填补bmc的ipmi服务初始化时间。dxe阶段拥有大概1-3分钟的时间用来供bios的定时器函数向bmc获取状态,并构建通信链路,根据bmc的服务启动时间大致需要1分钟左右,这样设计能使cpu的bios启动和bmc的ipmi服务初始化基本重合,在不额外增加时间的情况下构建二者之间的通信链路,确保启动加快,os可用。
64.在其中一个实施例中,所述方法还包括:
65.所述bios与所述bmc建立通信链路之后,所述bios向所述bmc发送ipmi命令;
66.所述bios判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息。
67.具体地,在本实施例发送ipmi命令之后,判断ipmi命令是否发送成功。如果判定发送成功,则生成第一标识信息,其中,第一标识信息表征ipmi命令已发送成功。
68.可以理解的是,本实施例在判断ipmi命令是否发送成功后,对于发送成功将生成第一标识信息,也即,若未生成第一标识信息,则可判断bios出现故障,进一步对bios代码
进行分析,以定位到故障区域并处理故障。
69.在其中一个实施例中,所述方法还包括:
70.在显示界面显示所述第一标识信息,所述第一标识信息为预设第一数值。
71.具体地,在判定ipmi命令发送成功之后,生成用于指示命令发送成功的第一标识信息,并将所述第一标识信息进行显示。其中,所述第一标识信息可以具体为预设第一数值,例如,利用数值1作为第一标识信息来表征命令发送成功。
72.在其中一个实施例中,所述方法还包括:
73.所述bios与所述bmc建立通信链路之后,再次获取所述bios与所述bmc之间的ipmi链路的状态,得到第二状态值;若所述第二状态值为异常,则执行重启命令进行设备重启。
74.具体地,在bios的bds阶段再次检查bios和bmc之间的ipmi链路是否正常,若此时的状态值为异常,则判定所述bmc异常,根据本地的预设内存地址空间上的目标数据进行自我恢复,引导启动系统。
75.应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
76.在一个实施例中,如图2所示,提供了一种建立通信链路的装置,应用于bios中,所述装置包括:
77.启动模块201,用于在启动基板管理控制器bmc的同时,启动运行基本输入输出系统bios;
78.获取模块202,用于获取所述bmc的状态,并判断所述bmc的状态是否为可用状态;
79.建立模块203,用于当所述bmc的状态为可用状态时,建立与所述bmc之间的通信链路。
80.在其中一个实施例中,所述获取模块202还用于:
81.在pei阶段,使用ipmi服务获取所述bmc的状态;
82.若获取成功,则将所述bmc的状态标记为可用状态,所述建立模块建立与所述bmc之间的通信链路;
83.若获取失败,则根据预定的时间间隔重复执行获取操作,若在达到预定的获取次数后仍未成功获取所述bmc的状态,则将所述bmc的状态标记为不可用状态;
84.将所述bmc的状态存储至hob中。
85.在其中一个实施例中,所述获取模块202还用于:
86.在dxe阶段,从所述hob中读取所述bmc的状态标志位,检查所述bmc的状态是否可用,若不可用,则创建定时器函数,所述定时器函数定时与所述bmc通信,获取所述bmc的状态。
87.在其中一个实施例中,所述建立模块203还用于:
88.所述bios与所述bmc建立通信链路之后,所述bios向所述bmc发送ipmi命令;
89.所述bios判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发
送成功的第一标识信息。
90.在其中一个实施例中,所述建立模块203还用于:
91.在显示界面显示所述第一标识信息,所述第一标识信息为预设第一数值。
92.在其中一个实施例中,所述建立模块203还用于:
93.所述bios与所述bmc建立通信链路之后,再次获取所述bios与所述bmc之间的ipmi链路的状态,得到第二状态值;若所述第二状态值为异常,则执行重启命令进行设备重启。
94.关于建立通信链路的装置的具体限定可以参见上文中对于建立通信链路的方法的限定,在此不再赘述。上述建立通信链路的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
95.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
96.同时启动运行基本输入输出系统bios与基板管理控制器bmc;
97.所述bios获取所述bmc的状态,并判断所述bmc的状态是否为可用状态;
98.当所述bmc的状态为可用状态时,所述bios建立与所述bmc之间的通信链路。
99.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
100.在pei阶段,所述bios使用ipmi服务获取所述bmc的状态;
101.若获取成功,则将所述bmc的状态标记为可用状态,建立与所述bmc之间的通信链路;
102.若获取失败,则根据预定的时间间隔重复执行获取操作,若在达到预定的获取次数后仍未成功获取所述bmc的状态,则将所述bmc的状态标记为不可用状态;
103.所述bios将所述bmc的状态存储至hob中。
104.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
105.在dxe阶段,所述bios从所述hob中读取所述bmc的状态标志位,检查所述bmc的状态是否可用,若不可用,则创建定时器函数,所述定时器函数定时与所述bmc通信,获取所述bmc的状态。
106.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
107.所述bios与所述bmc建立通信链路之后,所述bios向所述bmc发送ipmi命令;
108.所述bios判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息。
109.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
110.在显示界面显示所述第一标识信息,所述第一标识信息为预设第一数值。
111.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
112.所述bios与所述bmc建立通信链路之后,再次获取所述bios与所述bmc之间的ipmi链路的状态,得到第二状态值;若所述第二状态值为异常,则执行重启命令进行设备重启。
113.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
114.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
115.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献