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

一种BMC与CPU时分复用RTC的方法、系统与流程

2022-02-22 08:27:22 来源:中国专利 TAG:

一种bmc与cpu时分复用rtc的方法、系统
技术领域
1.本技术涉及服务器通信技术领域,特别是涉及一种bmc与cpu时分复用rtc的方法、系统、计算机设备和存储介质。


背景技术:

2.bmc英文全称为baseboard management controller,即服务器基板控制器。bmc可以实现服务器的相关控制、信息监督等功能,是直观呈现服务器信息的平台。bios英文全称为basic input ouput system,即基本输入输出系统。bios是运行在cpu内的底层软件,主要功能是为运行在cpu内的操作系统提供最底层的、最直接的硬件设置和控制,并向操作系统提供系统参数。rtc英文全称为real-time clock,即实时时钟。rtc是一个集成电路元件,工作时其内部时间的增加能够准确反应现实世界的时间推移,就像时钟一样,也称为时钟芯片。bmc或bios通过读取rtc内部的年月日、时分秒等数据,可以得到准确的当前时间,即实时时间。
3.现有的服务器一般使用x86架构的cpu作为主要计算单元,随着技术的进步,arm架构的cpu逐渐成熟,计算能力已经与x86架构的cpu相当,已经有多个厂商开始尝试基于arm架构cpu设计制造服务器产品。
4.在使用x86 cpu的服务器中,典型的时间管理方法是bmc通过cpu的me模块获取实时时间,cpu通过bios可以读写实时时间。
5.arm架构的cpu不具备me模块,也没有向bmc提供时间的其他接口或功能,所以要实现arm cpu服务器的时间管理,必须采用新的方法。
6.此外,现有的技术有bmc和cpu分别各使用一个rtc的方案,在每次机器上电时,bmc会从cpu的rtc同步时间到自己bmc的rtc,以实现时间同步。但是bmc没有给cpu信号,以表明自己正在使用cpu的rtc,所以当cpu开机之后,bmc就不能再访问cpu的rtc,以免对cpu访问rtc造成干扰。所以,在cpu开机状态下,bmc是无法从cpu的rtc同步时间的。


技术实现要素:

7.基于此,有必要针对上述技术问题,提供一种能够实现arm cpu服务器的时间管理的bmc与cpu时分复用rtc的方法、装置、计算机设备和存储介质。
8.一方面,提供一种bmc与cpu时分复用rtc的方法,所述bmc和所述cpu均通过通信总线连接到所述rtc的同一个通信总线接口,所述方法包括:
9.所述bmc通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
10.所述cpu内的bios通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
11.所述bmc以及所述cpu内的bios间通过lock信号协调双方访问所述rtc的时机。
12.在其中一个实施例中,当所述bmc不访问所述rtc时,所述bmc将所述lock信号置为无效,所述bios在检测到所述lock信号为无效时,所述bios随时访问所述rtc。
13.在其中一个实施例中,当所述bmc需要访问所述rtc时,所述bmc先将所述lock信号
置为有效,以访问所述rtc获取时间数据。
14.在其中一个实施例中,bmc将所述lock信号置为有效,并等待预设时间后访问所述rtc获取时间数据。
15.在其中一个实施例中,bmc访问所述rtc获取时间数据后将所述lock信号置为无效。
16.在其中一个实施例中,在所述bmc将所述lock信号置为有效,所述bios在检测到所述lock信号为有效后,若所述bios正在访问所述rtc,则在预设时间内结束对所述rtc的访问,让出通信总线。
17.在其中一个实施例中,bmc访问所述rtc获取时间数据后将所述lock信号置为无效,所述bios在检测到所述lock信号为无效后,随时访问所述rtc。
18.另一方面,提供了一种bmc与cpu时分复用rtc的系统,所述系统包括bmc、cpu、rtc,其中所述cpu内设有bios,所述bmc和所述cpu均通过通信总线连接到所述rtc的同一个通信总线接口,所述bmc和所述cpu内的bios均通过通信总线访问rtc,以读取所述rtc内存储的时间数据,所述bmc的一个gpio与所述cpu的一个gpio相连,以向cpu传递lock信号,并通过所述lock信号协调双方访问rtc的时机。
19.再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
20.bmc通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
21.cpu内的bios通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
22.bmc以及所述cpu内的bios间通过lock信号协调双方访问所述rtc的时机,其中,bmc和所述cpu均通过通信总线连接到所述rtc的同一个通信总线接口。
23.又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
24.bmc通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
25.cpu内的bios通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
26.bmc以及所述cpu内的bios间通过lock信号协调双方访问所述rtc的时机,其中,bmc和所述cpu均通过通信总线连接到所述rtc的同一个通信总线接口。
27.通过上述bmc与cpu时分复用rtc方法、系统、计算机设备和存储介质,为使用arm架构cpu的服务器提供了一种进行时间管理的实现方法,同时使用x86架构cpu的服务器也可以采用这种方法。采用本发明的bmc不再依赖于me获取时间,解决了arm cpu不具备me的问题,提高了的适配不同cpu的灵活性,提高了bmc系统的兼容性。
附图说明
28.图1为一个实施例中bmc与cpu时分复用rtc的系统结构框图;
29.图2为一个实施例中bmc与cpu时分复用rtc方法的流程示意图;
30.图3为一个实施例中计算机设备的内部结构图。
具体实施方式
31.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
32.本技术主要解决采用arm cpu的服务器的时间管理问题。bmc与cpu共用同一个rtc,设计一种分时复用的方式以避免bmc与cpu可能同时访问rtc时的冲突,从而实现了一种新的时间管理方法,尤其可以在系统开机正常使用的过程中实现cpu和bmc对rtc的时分复用。
33.在一个实施例中,如图1所示,提供了一种bmc与cpu时分复用rtc的系统,系统包括bmc、cpu、rtc,其中所述cpu内设有bios,所述bmc和所述cpu均通过通信总线连接到所述rtc的同一个通信总线接口,所述bmc和所述cpu内的bios均通过通信总线访问rtc,以读取所述rtc内存储的时间数据,所述bmc的一个gpio与所述cpu的一个gpio相连,以向cpu传递lock信号。
34.具体的,由于bmc和bios通过同一个通信总线连接rtc,有一定的可能性是,bmc和bios会同时访问rtc,这样总线上的数据就产生冲突,bmc和bios都无法获取正确的时间数据,甚至可能引起各自系统的异常。为了解决这一问题,就需要设计一种机制,使得bmc和bios不会同时访问rtc,这就是lock信号的作用,bmc与cpu间通过所述lock信号协调双方访问rtc的时机。
35.关于bmc与cpu时分复用rtc的系统的具体限定可以参见下文中对于bmc与cpu时分复用rtc的方法的限定,在此不再赘述。上述xxx装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
36.在一个实施例中,如图2所示,提供了一种bmc与cpu时分复用rtc的方法,以该方法应用于图1中的bmc与cpu时分复用rtc的系统为例进行说明,包括以下步骤:
37.所述bmc通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
38.所述cpu内的bios通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
39.所述bmc以及所述cpu内的bios间通过lock信号协调双方访问所述rtc的时机。
40.具体的,bmc和所述cpu均通过通信总线连接到所述rtc的同一个通信总线接口,所述bmc和所述cpu内的bios均通过通信总线访问rtc,以读取所述rtc内存储的时间数据,所述bmc的一个gpio与所述cpu的一个gpio相连,以向cpu传递lock信号。
41.上述bmc与cpu时分复用rtc的方法,可以通过lock信号协调双方访问所述rtc的时机,以实现bmc与cpu对rtc的时分复用。
42.在一个实施例中,当所述bmc不访问所述rtc时,所述bmc将所述lock信号置为无效,所述bios在检测到所述lock信号为无效时,所述bios随时访问所述rtc。
43.具体的,在bmc不需要访问rtc获取时间数据时,可以将lock信号设置为无效,以指示bmc自身当前无需使用通信总线,此时bios可以随时访问rtc获取时间数据,而bios可以通过检测lock信号是否为无效来判定自身是否可以使用通信总线访问rtc。
44.在一个实施例中,当所述bmc需要访问所述rtc时,所述bmc先将所述lock信号置为有效,以访问所述rtc获取时间数据。
45.具体的,在bmc需要访问rtc获取时间数据时,可以将lock信号设置为有效,以指示
bmc自身当前需要使用通信总线,此时bios则不能访问rtc获取时间数据,而bios可以通过检测lock信号是否为有效来判定自身是否可以使用通信总线访问rtc。
46.在一个实施例中,bmc将所述lock信号置为有效,并等待预设时间后访问所述rtc获取时间数据。
47.具体的,为防止bmc将lock信号置为有效时,此时bios正在访问rtc,虽然bios在检测到lock信号为有效后,会出让通信总线,但为了访问访问冲突,bmc在将lock信号置为有效后,并非立即使用通信总线访问rtc,而是等待一段时间后再使用总线通信,例如1秒钟,这样可以有效避免访问冲突。
48.在一个实施例中,bmc访问所述rtc获取时间数据后将所述lock信号置为无效。
49.具体的,在bmc完成访问rtc后,则将lock信号恢复为无效,以指示bmc自身当前无需使用通信总线,此时bios可以随时访问rtc获取时间数据。
50.因此,当bmc不访问rtc时,bmc将lock信号置为无效,此时bios可以随时访问rtc。当bmc需要访问rtc时,先将lock信号置为有效,等待1秒钟之后,访问rtc获取时间数据,然后将lock信号置为无效。在lock信号置为有效的期间内,bios均不访问rtc,这样就实现了对rtc的分时复用,避免了bmc和bios同时访问rtc时总线数据的冲突。
51.在一个实施例中,在所述bmc将所述lock信号置为有效,所述bios在检测到所述lock信号为有效后,若所述bios正在访问所述rtc,则在预设时间内结束对所述rtc的访问,让出通信总线。
52.具体的,如果在bmc将lock信号置为有效的时刻,bios正在访问rtc,则bios在检测到lock信号为有效之后,表明bmc需要访问rtc,此时bios必须在预定的时间内结束对rtc的访问,例如1秒钟内,以让出通信总线,使得bmc可以使用通信总线访问rtc。
53.在一个实施例中,bmc访问所述rtc获取时间数据后将所述lock信号置为无效,所述bios在检测到所述lock信号为无效后,随时访问所述rtc。
54.采用本发明的bmc不再依赖于me获取时间,解决了arm cpu不具备me的问题,提高了的适配不同cpu的灵活性,提高了bmc系统的兼容性。
55.本技术上述方案主要为使用arm架构cpu的服务器提供了一种进行时间管理的实现方法,同时使用x86架构cpu、使用risc-v架构cpu等所有的服务器也都可以采用这种方法。
56.应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
57.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算
机设备的数据库用于存储业务数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种bmc与cpu时分复用rtc方法。
58.本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
59.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
60.所述bmc通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
61.所述cpu内的bios通过通信总线访问所述rtc,获取所述rtc存储的时间数据;
62.所述bmc以及所述cpu内的bios间通过lock信号协调双方访问所述rtc的时机。
63.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
64.当所述bmc不访问所述rtc时,所述bmc将所述lock信号置为无效,所述bios在检测到所述lock信号为无效时,所述bios随时访问所述rtc。
65.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
66.当所述bmc需要访问所述rtc时,所述bmc先将所述lock信号置为有效,以访问所述rtc获取时间数据。
67.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
68.所述bmc将所述lock信号置为有效,并等待预设时间后访问所述rtc获取时间数据。
69.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
70.bmc访问所述rtc获取时间数据后将所述lock信号置为无效。
71.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
72.在所述bmc将所述lock信号置为有效,所述bios在检测到所述lock信号为有效后,若所述bios正在访问所述rtc,则在预设时间内结束对所述rtc的访问,让出通信总线。
73.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
74.bmc访问所述rtc获取时间数据后将所述lock信号置为无效,所述bios在检测到所述lock信号为无效后,随时访问所述rtc。
75.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
76.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛
盾,都应当认为是本说明书记载的范围。
77.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献