CN114779883B - 系统时钟同步方法、装置、系统及存储介质 - Google Patents

系统时钟同步方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN114779883B
CN114779883B CN202210535939.2A CN202210535939A CN114779883B CN 114779883 B CN114779883 B CN 114779883B CN 202210535939 A CN202210535939 A CN 202210535939A CN 114779883 B CN114779883 B CN 114779883B
Authority
CN
China
Prior art keywords
system clock
clock
cpld
time
updated
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
CN202210535939.2A
Other languages
English (en)
Other versions
CN114779883A (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.)
Xian Yep Telecommunication Technology Co Ltd
Original Assignee
Xian Yep Telecommunication 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 Xian Yep Telecommunication Technology Co Ltd filed Critical Xian Yep Telecommunication Technology Co Ltd
Priority to CN202210535939.2A priority Critical patent/CN114779883B/zh
Publication of CN114779883A publication Critical patent/CN114779883A/zh
Application granted granted Critical
Publication of CN114779883B publication Critical patent/CN114779883B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本申请实施例提供一种系统时钟同步方法、装置、系统及存储介质,该方法应用于可编程逻辑器件CPLD,包括:接收中央处理器CPU发送的初始系统时钟,其中初始系统时钟是服务器系统启动时,CPU运行基本输出输入系统BIOS以访问实时时钟RTC得到的;根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟;接收基板管理控制器BMC发送的时钟访问请求;根据时钟访问请求将当前系统时钟返回至BMC,以使BMC根据当前系统时钟进行系统时钟同步。使得BMC可以在任何情况下(如BMC发生重启时)通过访问时钟代理得到系统时钟,得到当前系统时钟。

Description

系统时钟同步方法、装置、系统及存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种系统时钟同步方法、装置、系统及存储介质。
背景技术
服务器系统中都设有一个时钟源部件RTC(Real_Time Clock,实时时钟),服务器系统的CPU(Central Processing Unit,中央处理器)通过访问RTC获取系统时钟并进行同步。目前,除运行在CPU上的操作系统需要同步系统时钟外,BMC(Baseboard ManagementController,基板管理控制器)作为服务器系统的管理终端,在向使用者提供基于Web和命令行的操作界面时,会记录大量的SEL(System Event Log,系统事件日志),这些SEL需要记录不同系统事件发生的具体时间,因此BMC需要获取系统时钟以作为时间基准。
目前,现有技术中,BMC同步系统时钟的过程为:在服务器系统启动后,主板启动BIOS(Basic Input Output System,基本输入输出系统),CPU通过运行BIOS访问RTC得到系统时钟,CPU主动发送给BMC。BIOS引导完操作系统启动后,即将控制权限交给操作系统。
然而,发明人发现现有技术至少存在以下技术问题:若操作系统运行过程中BMC发生某些未知错误而发生重启,此时BIOS已无控制权限,不再主动向BMC发送系统时钟,那么重启后的BMC将无法同步系统时钟。
发明内容
本申请实施例提供一种系统时钟同步方法、装置、系统及存储介质,以克服现有技术中BMC发生重启后,导致BMC无法同步系统时钟的问题。
第一方面,本申请实施例提供一种系统时钟同步方法,应用于CPLD(ComplexProgramming Logic Device,复杂可编程逻辑器件),包括:
接收CPU发送的初始系统时钟,其中初始系统时钟是服务器系统启动时,CPU运行BIOS以访问RTC得到的;
根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟;
接收BMC发送的时钟访问请求;
根据时钟访问请求将当前系统时钟返回至BMC,以使BMC根据当前系统时钟进行系统时钟同步。
第二方面,本申请实施例提供一种系统时钟同步方法,应用于中央处理器CPU,包括:
在服务器系统启动时,运行BIOS以访问RTC得到初始系统时钟;
发送初始系统时钟至CPLD,以使CPLD根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟;其中当前系统时钟用于指示BMC向CPLD发送时钟访问请求,以使CPLD根据时钟访问请求返回的当前系统时钟至BMC。
第三方面,本申请实施例提供一种系统时钟同步方法,应用于BMC,包括:
向CPLD发送时钟访问请求;
接收CPLD返回的当前系统时钟;其中,当前系统时钟是CPLD根据初始系统时钟进行时间的自刷新得到的;初始系统时钟是服务器系统启动时,CPU运行BIOS以访问RTC得到的;
根据当前系统时钟进行时钟的同步。
第四方面,本申请实施例提供一种系统时钟同步装置,包括用于执行如上第一方面、第二方面或第三方面的系统时钟同步方法的模块。
第五方面,本申请实施例提供一种服务器系统,包括:至少一个处理器和存储器;
存储器存储计算机执行指令;
至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上第一方面、第二方面或第三方面的系统时钟同步方法。
第六方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上第一方面、第二方面或第三方面的系统时钟同步方法。
本申请实施例提供的系统时钟同步方法、装置、系统及存储介质,通过CPLD能够在服务器启动时,接收CPU发送的初始系统时钟,然后根据初始系统时钟在自身内部进行自刷新,以实时得到当前系统时钟,这样CPLD能够实时响应BMC的时钟访问请求,使得BMC可以在任何情况下(如BMC发生重启时)通过访问CPLD得到系统时钟,得到当前系统时钟。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一种现有技术提供的服务器系统架构示意图;
图2为另一种现有技术提供的服务器系统架构示意图;
图3为本申请实施例提供的服务器系统架构示意图;
图4为本申请一个实施例提供的系统时钟同步方法的流程示意图;
图5为本申请另一个实施例提供的系统时钟同步方法的流程示意图;
图6为本申请另一个实施例提供的系统时钟同步方法的流程示意图;
图7为本申请另一个实施例提供的系统时钟同步方法的流程示意图;
图8为本申请另一个实施例提供的系统时钟同步方法的流程示意图;
图9为本申请另一个实施例提供的系统时钟同步方法的流程示意图;
图10为本申请另一个实施例提供的系统时钟同步方法的流程示意图;
图11为本申请一个实施例提供的系统时钟同步方法的交互流程示意图;
图12为本申请一个实施例提供的系统时钟同步装置的结构示意图;
图13为本申请另一个实施例提供的系统时钟同步装置的结构示意图;
图14为本申请另一个实施例提供的系统时钟同步装置的结构示意图;
图15为本申请实施例提供的服务器系统的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,图1为一种现有技术提供的服务器系统架构示意图。如图1所示,该服务器系统架构包括:实时时钟RTC101、中央处理器CPU102和基板管理控制器BMC103。
在服务器系统中,CPU通过访问时钟源部件RTC实现系统时钟的读取。然而,除了运行在CPU上的操作系统,BMC也需要一个时钟基准。BMC在向使用者提供方基于Web和命令行的操作界面的同时,也会记录很多系统事件日志。这些日志需要记录系统事件发生的具体时间。由于系统设计上,RTC的访问接口并未连接给BMC,并且通常情况下服务器系统并不会为BMC单独设计一个时钟源,因此BMC需要在启动过程中获取系统时钟来同步自身时钟。在系统的启动的过程中,由BIOS主动向BMC发送当前系统时钟。由于BIOS在引导完操作系统启动后即交出了系统的控制权,因此,若此时BMC发生某些未知错误而发生重启,那么重启后的BMC将无法获取系统时钟。
参考图2,图2为另一种现有技术提供的服务器系统架构示意图。Intel的系统在其芯片中集成了ME(Management Engine,管理引擎),该管理引擎支持BMC通过IPMI(Intelligent Platform Management Interface,智能平台管理接口)获取系统RTC的系统时钟。然而,采用x86架构的AMD和采用Arm架构的Ampere,在芯片设计上并未提供Intel ME类似功能,若BMC在BIOS引导OS完成后发生意外重启,将依然无法获取系统时钟。
为了解决现有技术中的问题,本申请实施例提出以下技术方案:通过设置一个控制器件获取RTC的系统时钟,实现一个时钟代理,BMC的系统时钟由被动接收改为主动从作为代理的控制器件中获取。
参考图3,图3为本申请实施例提供的服务器系统架构示意图。该服务器系统包括:实时时钟RTC101、中央处理器CPU102、基板管理控制器BMC103和复杂可编程逻辑器件CPLD104。
BIOS初始化相关单元后,RTC部件开始工作,获得系统初始系统时钟,CPU访问RTC,RTC将系统初始系统时钟发送给CPU,CPU得到初始系统时钟,随即CPU将初始系统时钟传输给CPLD,CPLD内部自刷新后,得到当前系统时钟,当BMC访问CPLD时,CPLD将当前系统时钟发送给BMC,BMC得到当前系统时钟。
参考图4,图4为本申请一个实施例提供的系统时钟同步方法的流程示意图,本实施例的执行主体可以为任何形式的控制器件,也可以是图3所示的CPLD,本实施例此处不做特别限制。如图4所示,该系统时钟同步方法包括:
S401:接收CPU发送的初始系统时钟,其中初始系统时钟是服务器系统启动时,CPU运行BIOS以访问RTC得到的。
具体地,接收CPU发送的初始系统时钟,包括:通过LPC(Low Pin Count,少引脚数)、I2C(Inter-integrated circuit,集成电路总线)或1-wire总线及时钟数据接收接口接收CPU发送的初始系统时钟;其中初始系统时钟是服务器系统启动时,BIOS芯片启动BIOS完成初始化后,CPU运行BIOS通过启动时钟初始化程序访问RTC得到的。
其中,时钟初始化程序指的是设置在BIOS芯片上的用于获取RTC的系统时钟的相关代码。
在本实施例中,BIOS芯片启动BIOS完成初始化,可以包括:BIOS在系统上电开机后,优先初始化相关功能单元,包括RTC,CPU与CPLD之间的数据传输通道等。
S402:根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。
具体地,将初始系统时钟输入至模拟时钟晶振,以对初始系统时钟进行自动更新计时,以得到实时更新的当前系统时钟。
其中,时钟模拟器件模拟时钟晶振用于按照预设间隔时间自动对初始系统时钟进行自动更新计时。
示例性地,时钟模拟器件模拟时钟晶振按照每隔1秒将初始系统时钟加1秒;或者,时钟模拟器件模拟时钟晶振按照每隔5秒将初始系统时钟加5秒。
S403:接收BMC发送的时钟访问请求。
具体地,CPLD通过I2C和时钟访问接口接收BMC发送的时钟访问请求。
其中,I2C可用于连接于总线上的器件之间传送信息。
S404:根据时钟访问请求将当前系统时钟返回至BMC,以使BMC根据当前系统时钟进行系统时钟同步。
其中,当BMC需要访问系统时钟时,向CPLD发送时钟访问请求。
示例性的,当BMC需要记录系统事件日志时,发送系统时钟访问请求,这些系统日志记录了不同系统事件发生的具体时间。
综上,本实施例提供的系统时钟同步方法,CPLD能够在服务器启动时,接收CPU发送的初始系统时钟,然后根据初始系统时钟在自身内部进行自刷新,以实时得到当前系统时钟,这样CPLD能够实时响应BMC的时钟访问请求,使得BMC可以在任何情况下(如BMC发生重启时)通过访问CPLD得到系统时钟,得到当前系统时钟。
参考图5,图5为本申请另一个实施例提供的系统时钟同步方法的流程示意图。本实施例在图4实施例的基础上,该系统时钟同步方法包括:
S501:接收CPU发送的初始系统时钟,其中初始系统时钟是服务器系统启动时,CPU运行BIOS以访问RTC得到的。
S502:根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。
在本实施例中,步骤S501-S502的实现过程与步骤S401-S402类似,具体实现过程请参照S401-S402的具体描述,这里不再赘述。
S503:接收CPU发送的修改后的系统时钟,其中修改后的系统时钟是CPU响应于用户对系统时钟进行更新操作得到的。
具体地,通过CPLD为CPU提供的时钟数据接收接口接收CPU发送的修改后的系统时钟。
在本实施例中,用户对系统时钟进行更新操作,可以是BIOS芯片启动BIOS完成初始化后,进入到用户可操作的环境,用户在可操作的环境中可以自主修改系统时钟。
其中,用户可操作的环境可以包括:BIOS Setup,Uefi Shell和OS(OperatingSystem,操作系统)等。
S504:根据修改后的系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。
S505:接收BMC发送的时钟访问请求。
S506:根据时钟访问请求将当前系统时钟返回至BMC,以使BMC根据当前系统时钟进行系统时钟同步。
在本实施例中,步骤S504-S506的实现过程与步骤S402-S404类似,具体实现过程请参照S402-S404的具体描述,这里不再赘述。
综上,本实施例提供的系统时钟同步方法,在用户对系统时钟进行更新操作后,CPLD接收到CPU发送的修改后的系统时钟,使得BMC能够及时得到修改后的系统时钟,提升BMC系统时钟同步的准确性。
参考图6,图6为本申请另一个实施例提供的系统时钟同步方法的流程示意图。本实施例在图4实施例的基础上,该系统时钟同步方法包括:
S601:接收CPU发送的初始系统时钟,其中初始系统时钟是服务器系统启动时,CPU运行BIOS以访问RTC得到的。
S602:根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。
在本实施例中,步骤S501-S502的实现过程与步骤S401-S402类似,具体实现过程请参照S401-S402的具体描述,这里不再赘述。
S603:接收CPU每隔预设时间间隔发送的更新后的系统时钟。
具体地,通过CPLD为CPU提供的时钟数据接收接口接收CPU发送的更新后的系统时钟。
S604:根据更新后的系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。
S605:接收BMC发送的时钟访问请求。
S606:根据时钟访问请求将当前系统时钟返回至BMC,以使BMC根据当前系统时钟进行系统时钟同步。
在本实施例中,步骤S604-S606的实现过程与步骤S402-S404类似,具体实现过程请参照S402-S404的具体描述,这里不再赘述。
综上,本实施例提供的系统时钟同步方法,在CPLD长时间未接收到CPU发送的更新后的系统时钟时,接收CPU每隔预设时间间隔发送的更新后的系统时钟,提升BMC系统时钟同步的准确性。
参考图7,图7为本申请另一个实施例提供的系统时钟同步方法的流程示意图,本实施例的执行主体可以为任何形式的处理器,也可以是图3所示的CPU,本实施例此处不做特别限制。如图7所示,该方法包括:
S701:在服务器系统启动时,运行BIOS以访问RTC得到初始系统时钟。
具体地,运行BIOS通过启动时钟初始化程序以访问RTC得到初始系统时钟。其中,时钟初始化程序是在服务器系统启动后,BIOS芯片完成BIOS初始化后得到的。
S702:发送初始系统时钟至CPLD,以使CPLD根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟;其中,初始系统时钟是服务器系统启动时,BIOS芯片启动BIOS完成初始化后,CPU运行BIOS通过启动时钟初始化程序访问RTC得到的;其中当前系统时钟用于指示BMC向CPLD发送时钟访问请求,以使CPLD根据时钟访问请求返回的当前系统时钟至BMC。
在本实施例中,可以通过时钟数据接收接口将初始系统时钟发送给CPLD。
综上,本实施例提供的系统时钟同步方法,在服务器启动时,CPU发送的初始系统时钟到CPLD,以使CPLD根据初始系统时钟在自身内部进行自刷新,以实时得到当前系统时钟,这样CPLD能够实时响应BMC的时钟访问请求,使得BMC可以在任何情况下(如BMC发生重启时)通过访问CPLD得到系统时钟,得到当前系统时钟。
参考图8,图8为本申请另一个实施例提供的系统时钟同步方法的流程示意图。本实施例在图7实施例的基础上,该系统时钟同步方法包括:
S801:在服务器系统启动时,运行BIOS以访问RTC得到初始系统时钟。
S802:发送初始系统时钟至CPLD,以使CPLD根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。其中当前系统时钟用于指示BMC向CPLD发送时钟访问请求,以使CPLD根据时钟访问请求返回的当前系统时钟至BMC。
在本实施例中,步骤S801-S802的实现过程与步骤S701-S702类似,具体实现过程请参照S701-S702的具体描述,这里不再赘述。
S803:向CPLD发送修改后的系统时钟,以述CPLD根据修改后的系统时间进行自刷新,以使得到实时更新的当前系统时钟,其中修改后的系统时钟是CPU响应于用户对系统时钟进行更新操作得到的。
在本实施例中,可以根据系统所处不同阶段,执行向CPLD发送修改后的系统时钟代码。
具体地,若服务器系统处于自检阶段(POST阶段),则执行运行时服务进程中的时间设置函数以及时间设置函数中注册的第一时间同步子函数,以向CPLD发送修改后的系统时钟。
其中,自检阶段,此阶段可包括BIOS setup和Uefi Shell阶段。在自检阶段,服务器系统处于BIOS管理状态。
在本实施例中,第一时间同步子函数是在时间设置函数中加入一个向CPLD同步时钟数据的子函数,其中,时间设置函数是在BIOS管理下运行服务中的设置系统时间的函数。
具体地,若服务器系统处于运行阶段,则执行由BIOS提供的时间设置方法及时间设置方法中预先设置的第一时间同步子方法,以向CPLD发送修改后的系统时钟。
其中,运行阶段处于OS管理状态。
在本实施例中,时间设置方法是在中加入一个向CPLD同步时钟数据的子方法,其中时间设置方法是由BIOS预定义的在OS管理下对系统时钟设置的方法。
综上,本实施例提供的系统时钟同步方法,在用户对系统时钟进行更新操作后,CPU向CPLD发送修改后的系统时钟,使得BMC能够及时得到修改后的系统时钟,提升BMC系统时钟同步的准确性。
参考图9,图9为本申请另一个实施例提供的系统时钟同步方法的流程示意图。本实施例在图7实施例的基础上,该系统时钟同步方法包括:
S901:在服务器系统启动时,运行BIOS以访问实时时钟RTC得到初始系统时钟。
S902:发送初始系统时钟至CPLD,以使CPLD根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。其中当前系统时钟用于指示BMC向CPLD发送时钟访问请求,以使CPLD根据时钟访问请求返回的当前系统时钟至BMC。
在本实施例中,步骤S901-S902的实现过程与步骤S701-S702类似,具体实现过程请参照S701-S702的具体描述,这里不再赘述。
S903:向CPLD每隔预设时间间隔发送的更新后的当前系统时钟,以使CPLD根据更新后的系统时间进行自刷新,以使得到实时更新的当前系统时钟。
在本实施例中,可以根据系统所处不同阶段,执行向CPLD发送更新后的系统时钟代码。
具体地,若服务器系统处于自检阶段,则调用启动服务进程中的创建对象函数和定时函数组合,启动向启动服务中注册的第二时间同步子函数,以每隔预设时间间隔向CPLD发送更新后的当前系统时钟。
其中,第二时间同步子函数是向周期性执行的子函数注册的向CPLD同步时钟数据的子函数。其中周期性执行的子函数是系统服务中的创建事件对象函数和定时函数组合注册的。
具体地,若服务器系统处于运行阶段,则运行操作系统调用时间获取方法,同时运行向时间获取方法中加入的第二时间同步子方法,以每隔预设时间间隔向CPLD发送更新后的当前系统时钟。
其中,第二时间同步子方法是在时间获取方法中加入一个向CPLD同步时钟数据的子方法。时间获取方法是OS管理下用来获取系统时钟的方法。
综上,本实施例提供的系统时钟同步方法,在CPLD长时间未接收到CPU发送的更新后的系统时钟时,CPU每隔预设时间间隔向CPLD发送更新后的系统时钟,提升BMC系统时钟同步的准确性。
在本申请的一个实施例中,在本申请的上述实施例的基础上,行操作系统调用时间获取方法,同时运行向时间获取方法中加入的第二时间同步子方法,以每隔预设时间间隔向CPLD发送更新后的当前系统时钟,具体包括:
S9031:运行操作系统调用一次时间获取方法,使计数函数中数值增加1。
S9032:当计数函数中数值增加到预设数值时,运行一次向时间获取方法中加入的第二时间同步子方法,向CPLD发送一次更新后的当前系统时钟。
在本实施例中,计数函数数值初始值为0,操作系统每调用一次时间获取方法,计数函数数值增加1,当计数函数数值增加到预设数值时调用一次第二时钟数据同步子方法。
综上,本实施例提供的系统时钟同步方法,通过增加一个计数函数作为时钟同步子模块的执行条件,能够避免过于频繁的时间校准增加OS负载。
参考图10,图10为本申请另一个实施例提供的系统时钟同步方法的流程示意图,本实施例的执行主体可以为任何形式的服务处理机,也可以是图3所示的BMC,本实施例此处不做特别限制。如图10所示,该方法包括:
S1001:向CPLD发送时钟访问求。
具体地,通过CPLD提供的访问接口向CPLD发送时钟访问请求。
其中,时钟访问请求是当BMC需要访问系统时钟时,向CPLD发送的。
在本实施例中,当BMC需要记录系统事件日志(这些系统日志记录不同系统事件发生的具体时间)时,发送系统时钟访问请求。
S1002:接收CPLD返回的当前系统时钟;其中,当前系统时钟是CPLD根据系统时钟进行时间的自刷新得到的;初始系统时钟是服务器系统启动时,CPU运行BIOS以访问RTC得到的。
其中,CPLD返回给BMC的当前系统时钟包括CPU传输给CPLD的各种时钟数据自刷新后的数据。
在本实施例中,CPU传输各种时钟数据包括:启动BIOS后得到的初始系统时钟;响应用户修改程序后得到的更改后系统时钟数据;以及CPU每隔预设时间间隔发送的更新后的系统时钟。
S1003:根据当前系统时钟进行时钟的同步。
具体地,BMC接收到由CPLD发送的当前系统时钟后,根据需求进行时钟的同步。
示例性地,BMC将接收到的当前系统时钟用于记录系统事件日志。
综上,本实施例提供的系统时钟同步方法,BMC在任何情况下(如BMC发生重启时)可以接收CPLD发送的当前系统时钟,并进行系统时钟的同步。
参考图11,图11为本申请一个实施例提供的系统时钟同步方法的交互流程示意图,该系统时钟同步方法包括:
S1101:系统初始化完成后,CPU获取RTC的时钟数据,并向CPLD发送系统时钟数据。
S1102:CPLD接收CPU发送的系统时钟数据并根据系统时钟数据进行自刷新。
S1103:BMC向CPLD发送时钟访问请求。
S1104:CPLD向BMC发送当前系统时钟数据。
S1105:BMC根据CPLD发送的当前系统时钟进行系统时钟的同步。
综上,本实施例提供的系统时钟同步方法,BMC可以在任何情况下(如BMC发生重启时)通过访问时钟代理CPLD得到系统时钟,得到当前系统时钟。
参考图12,图12为本申请一个实施例提供的系统时钟同步装置的结构示意图。如图12所示,该系统时钟同步装置1200,应用于CPLD,包括:第一时钟接收模块1201,第一时钟刷新模块1202,请求接收模块1203和第一时钟同步模块1204。
其中,第一时钟接收模块1201,用于接收CPU发送的初始系统时钟,其中初始系统时钟是服务器系统启动时,CPU运行BIOS以访问RTC得到的。
第一时钟刷新模块1202,用于根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。
请求接收模块1203,用于接收BMC发送的时钟访问请求。
第一时钟同步模块1204,用于根据时钟访问请求将当前系统时钟返回至BMC,以使BMC根据当前系统时钟进行系统时钟同步。
在本申请的一个或多个实施例中,运行模块1201,具体用于:
通过时钟数据接收接口接收CPU发送的初始系统时钟;其中初始系统时钟是服务器系统启动时,BIOS芯片启动BIOS完成初始化后,CPU运行BIOS通过启动时钟初始化程序访问RTC得到的。
在本申请的一个或多个实施例中,运行模块1202,具体用于:
将初始系统时钟输入至模拟时钟晶振,以对初始系统时钟进行自动更新计时,以得到实时更新的当前系统时钟。
在本申请的一个或多个实施例中,继续参考图12,装置还包括:
第二时钟接收模块1205,用于接收CPU发送的修改后的系统时钟,其中修改后的系统时钟是CPU响应于用户对系统时钟进行更新操作得到的。
第二时钟刷新模块1206,用于根据修改后的系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。
在本申请的一个或多个实施例中,继续参考图12,装置还包括:
第三时钟接收模块1207,用于接收CPU每隔预设时间间隔发送的更新后的系统时钟。
第三时钟刷新模块1208,用于根据更新后的系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
参考图13,图13为本申请另一个实施例提供的系统时钟同步装置的结构示意图。如图13所示,该系统时钟同步装置1300,应用于CPU,包括:运行模块1301和时钟发送模块1302。
其中,运行模块1301,用于在服务器系统启动时,运行BIOS以访问RTC得到初始系统时钟。
时钟发送模块1302,用于发送初始系统时钟至CPLD,以使CPLD根据初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟;其中当前系统时钟用于指示BMC向CPLD发送时钟访问请求,以使CPLD根据时钟访问请求返回的当前系统时钟至BMC。
在本申请的一个或多个实施例中,运行模块1301,具体用于:
运行BIOS通过启动时钟初始化程序以访问RTC得到初始系统时钟;其中时钟初始化程序是在服务器系统启动后,BIOS芯片完成BIOS初始化后得到的。
在本申请的一个或多个实施例中,继续参考图13,装置还包括:
第一时钟更新模块1303,用于向CPLD发送修改后的系统时钟,以使CPLD根据修改后的系统时钟进行自刷新,以使得到实时更新的当前系统时钟,其中修改后的系统时钟是CPU响应于用户对系统时钟进行更新操作得到的。
在本申请的一个或多个实施例中,第一时钟更新模块1303,具体用于:
若服务器系统处于自检阶段,则执行运行时服务进程中的时间设置函数以及时间设置函数中注册的的第一时间同步子函数,以向CPLD发送修改后的系统时钟。
在本申请的一个或多个实施例中,第一时钟更新模块1303,具体用于:
若服务器系统处于运行阶段,则执行由BIOS提供的时间设置方法及时间设置方法中预先设置的的第一时间同步子方法,以向CPLD发送修改后的当前系统时钟。
在本申请的一个或多个实施例中,继续参考图13,装置还包括:
第二时钟更新模块1304,用于向CPLD每隔预设时间间隔发送的更新后的当前系统时钟,以使CPLD根据更新后的系统时间进行自刷新,以使得到实时更新的当前系统时钟。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
参考图14,图14为本申请另一个实施例提供的系统时钟同步装置的结构示意图。如图14所示,该系统时钟同步装置1400,应用于BMC,包括:请求发送模块1401,第四时钟接收模块1402和第二时钟同步模块1403。
其中,请求发送模块1401,用于向CPLD发送时钟访问请求。
第四时钟接收模块1402,用于接收CPLD返回的当前系统时钟;其中,当前系统时钟是CPLD根据初始系统时钟进行时间的自刷新得到的;初始系统时钟是服务器系统启动时,CPU运行BIOS以访问RTC得到的。
第二时钟同步模块1403,用于根据当前系统时钟进行时钟的同步。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
参考图15,图15为本申请实施例提供的服务器系统的硬件结构示意图。如图15所示,本实施例的服务器系统1500包括:处理器1501以及存储器1502。
其中处理器1501,用于执行存储器存储的计算机执行指令,以实现上述实施例中CPLD、CPU或BMC所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
存储器1502,用于存储计算机执行指令。
可选地,存储器1502既可以是独立的,也可以跟处理器1501集成在一起。
当存储器1502独立设置时,该服务器系统还包括总线1503,用于连接存储器1502和处理器1501。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上的系统时钟同步方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,实现如上的系统时钟同步方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是CPU,还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (18)

1.一种系统时钟同步方法,其特征在于,应用于可编程逻辑器件CPLD,包括:
接收中央处理器CPU发送的初始系统时钟,其中所述初始系统时钟是服务器系统启动时,所述CPU运行基本输出输入系统BIOS以访问实时时钟RTC得到的;
根据所述初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟;
接收基板管理控制器BMC发送的时钟访问请求;
根据所述时钟访问请求将所述当前系统时钟返回至所述BMC,以使所述BMC根据所述当前系统时钟进行系统时钟同步。
2.根据权利要求1所述的方法,其特征在于,所述接收所述CPU发送的所述初始系统时钟,包括:
通过时钟数据接收接口接收所述CPU发送的所述初始系统时钟;其中所述初始系统时钟是服务器系统启动时,BIOS芯片启动所述BIOS完成初始化后,所述CPU运行所述BIOS通过启动时钟初始化程序访问所述RTC得到的。
3.根据权利要求1所述的方法,其特征在于,所述根据所述初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟,包括:
将所述初始系统时钟输入至模拟时钟晶振,以对所述初始系统时钟进行自动更新计时,以得到实时更新的当前系统时钟。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟之后,还包括:
接收所述CPU发送的修改后的系统时钟,其中所述修改后的系统时钟是所述CPU响应于用户对系统时钟进行更新操作得到的;
根据所述修改后的系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟之后,还包括:
接收所述CPU每隔预设时间间隔发送的更新后的系统时钟;
根据所述更新后的系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟。
6.一种系统时钟同步方法,其特征在于,应用于中央处理器CPU,包括:
在服务器系统启动时,运行基本输出输入系统BIOS以访问实时时钟RTC得到初始系统时钟;
发送所述初始系统时钟至可编程逻辑器件CPLD,以使所述CPLD根据所述初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟;其中所述当前系统时钟用于指示基板管理控制器BMC向所述CPLD发送时钟访问请求,以使所述CPLD根据所述时钟访问请求返回的所述当前系统时钟至所述BMC。
7.根据权利要求6所述的方法,其特征在于,所述运行所述BIOS以访问所述RTC得到所述初始系统时钟,包括:
运行所述BIOS通过启动时钟初始化程序以访问所述RTC得到所述初始系统时钟;其中所述时钟初始化程序是在服务器系统启动后,所述BIOS芯片完成BIOS初始化后得到的。
8.根据权利要求6或7所述的方法,其特征在于,所述发送所述初始系统时钟至所述CPLD,以使所述CPLD根据所述初始系统时钟进行时间的自刷新以得到实时更新的当前系统时钟之后,还包括:
向所述CPLD发送修改后的系统时钟,以使所述CPLD根据所述修改后的系统时间进行自刷新,以使得到实时更新的当前系统时钟,其中所述修改后的系统时钟是所述CPU响应于用户对系统时钟进行更新操作得到的。
9.根据权利要求8所述的方法,其特征在于,所述向所述CPLD发送所述修改后的系统时钟,包括:
若所述服务器系统处于自检阶段,则执行运行时服务进程中的时间设置函数以及所述时间设置函数中注册的第一时间同步子函数,以向所述CPLD发送所述修改后的系统时钟。
10.根据权利要求8所述的方法,其特征在于,所述向所述CPLD发送所述修改后的系统时钟,包括:
若所述服务器系统处于运行阶段,则执行由所述BIOS提供的时间设置方法及所述时间设置方法中预先设置的第一时间同步子方法,以向所述CPLD发送所述修改后的当前系统时钟。
11.根据权利要求6或7所述的方法,其特征在于,所述发送所述初始系统时钟至所述CPLD,以使所述CPLD根据所述初始系统时钟进行时间的自刷新,以得到实时更新的当前系统时钟之后,还包括:
向所述CPLD每隔预设时间间隔发送的更新后的当前系统时钟,以使所述CPLD根据所述更新后的系统时间进行自刷新,以使得到实时更新的当前系统时钟。
12.根据权利要求11所述的方法,其特征在于,所述每隔预设时间间隔向所述CPLD发送所述更新后的当前系统时钟,包括:
若所述服务器系统处于自检阶段,则调用启动服务进程中的创建对象函数和定时函数组合,启动向启动服务中注册的第二时间同步子函数,以每隔预设时间间隔向所述CPLD发送所述更新后的当前系统时钟。
13.根据权利要求11所述的方法,其特征在于,所述每隔预设时间间隔向所述CPLD发送所述更新后的当前系统时钟,包括:
若所述服务器系统处于运行阶段,则运行操作系统调用时间获取方法,同时运行向所述时间获取方法中加入的第二时间同步子方法,以每隔预设时间间隔向所述CPLD发送所述更新后的当前系统时钟。
14.根据权利要求13所述的方法,其特征在于,所述运行操作系统调用时间获取方法,同时运行向所述时间获取方法中加入的第二时间同步子方法,以每隔预设时间间隔向所述CPLD发送所述更新后的当前系统时钟,包括:
运行操作系统调用一次时间获取方法,使计数函数中数值增加1;
当所述计数函数中数值增加到预设数值时,运行一次向所述时间获取方法中加入的第二时间同步子方法,向所述CPLD发送一次所述更新后的当前系统时钟。
15.一种系统时钟同步方法,其特征在于,应用于基板管理控制器BMC,包括:
向可编程逻辑器件CPLD发送时钟访问请求;
接收所述CPLD返回的当前系统时钟;其中,当前系统时钟是所述CPLD根据初始系统时钟进行时间的自刷新得到的;所述初始系统时钟是服务器系统启动时,中央处理器CPU运行基本输出输入系统BIOS以访问实时时钟RTC得到的;
根据当前系统时钟进行时钟的同步。
16.一种系统时钟同步装置,其特征在于,包括用于执行如权利要求1至15中的任一项所述系统时钟同步方法的模块。
17.一种服务器系统,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至5任一项,或6至14任一项,或15所述的系统时钟同步方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至5任一项,或6至14任一项,或15所述的系统时钟同步方法。
CN202210535939.2A 2022-05-17 2022-05-17 系统时钟同步方法、装置、系统及存储介质 Active CN114779883B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210535939.2A CN114779883B (zh) 2022-05-17 2022-05-17 系统时钟同步方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210535939.2A CN114779883B (zh) 2022-05-17 2022-05-17 系统时钟同步方法、装置、系统及存储介质

Publications (2)

Publication Number Publication Date
CN114779883A CN114779883A (zh) 2022-07-22
CN114779883B true CN114779883B (zh) 2024-03-19

Family

ID=82436675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210535939.2A Active CN114779883B (zh) 2022-05-17 2022-05-17 系统时钟同步方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN114779883B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101482762A (zh) * 2009-02-11 2009-07-15 华为技术有限公司 一种调节cpu时钟频率的方法及系统
KR20100064467A (ko) * 2008-12-05 2010-06-15 삼성전자주식회사 듀얼 프로세서 디바이스에서 복합 프로그래머블 로직 디바이스 코드 다운로드 장치 및 방법
CN105334907A (zh) * 2015-09-28 2016-02-17 成都成电光信科技股份有限公司 时钟同步方法和数据处理系统
CN109510682A (zh) * 2018-12-26 2019-03-22 郑州云海信息技术有限公司 一种池化服务器系统bmc时钟同步方法、装置、终端及存储介质
EP3518074A1 (en) * 2018-01-30 2019-07-31 Quanta Computer Inc. Computer system for preserving data in memory modules and computer-implemented method using the same
CN110362152A (zh) * 2019-06-28 2019-10-22 苏州浪潮智能科技有限公司 一种系统硬件时间和bmc硬件时间的同步系统和方法
CN111767174A (zh) * 2020-06-30 2020-10-13 西安易朴通讯技术有限公司 一种bios刷新控制方法及服务器、存储介质
CN113552921A (zh) * 2021-06-02 2021-10-26 浙江网新智能技术有限公司 一种软硬件互锁的系统时间同步方法及系统及电子设备
CN114167829A (zh) * 2021-12-03 2022-03-11 浙江中控技术股份有限公司 一种时钟同步测试方法以及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE412932T1 (de) * 2004-09-03 2008-11-15 Derek Ward Verbesserungen an numerischen steuerungen und verwandten elektronischen geräten
US10068068B2 (en) * 2016-12-30 2018-09-04 Intel Corporation Trusted timer service

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100064467A (ko) * 2008-12-05 2010-06-15 삼성전자주식회사 듀얼 프로세서 디바이스에서 복합 프로그래머블 로직 디바이스 코드 다운로드 장치 및 방법
CN101482762A (zh) * 2009-02-11 2009-07-15 华为技术有限公司 一种调节cpu时钟频率的方法及系统
CN105334907A (zh) * 2015-09-28 2016-02-17 成都成电光信科技股份有限公司 时钟同步方法和数据处理系统
EP3518074A1 (en) * 2018-01-30 2019-07-31 Quanta Computer Inc. Computer system for preserving data in memory modules and computer-implemented method using the same
CN109510682A (zh) * 2018-12-26 2019-03-22 郑州云海信息技术有限公司 一种池化服务器系统bmc时钟同步方法、装置、终端及存储介质
CN110362152A (zh) * 2019-06-28 2019-10-22 苏州浪潮智能科技有限公司 一种系统硬件时间和bmc硬件时间的同步系统和方法
CN111767174A (zh) * 2020-06-30 2020-10-13 西安易朴通讯技术有限公司 一种bios刷新控制方法及服务器、存储介质
CN113552921A (zh) * 2021-06-02 2021-10-26 浙江网新智能技术有限公司 一种软硬件互锁的系统时间同步方法及系统及电子设备
CN114167829A (zh) * 2021-12-03 2022-03-11 浙江中控技术股份有限公司 一种时钟同步测试方法以及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于FPGA的精确时钟同步方法;黄文君;遇彬;;浙江大学学报(工学版);20071015(10);91-94+136 *
基于GPS实现电力系统高精度同步时钟;蒋陆萍;曾祥君;李泽文;彭安安;;电网技术;20110205(02);207-212 *
翟东力,王晓蕾,罗坚.《基于CPLD的信号相关器设计》.数据采集与处理.2004,235-238. *

Also Published As

Publication number Publication date
CN114779883A (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
US11360696B2 (en) System startup method and apparatus, electronic device, and storage medium
US5448716A (en) Apparatus and method for booting a multiple processor system having a global/local memory architecture
CN114580344B (zh) 测试激励生成方法、验证方法、验证系统及相关设备
US10496676B2 (en) Synchronization cache seeding
JPH06508705A (ja) マルチプロセッサ分散型初期化および自己テストシステム
CN108182036B (zh) 一种多芯片系统存储实现装置及方法
CN114020340B (zh) 一种服务器系统及其数据处理方法
CN107533441A (zh) 创建操作系统卷
CN115934447A (zh) 显示信息获取方法、装置、电子设备和存储介质
EP0348240A2 (en) Microprocessor equipped with parity control unit on same chip
EP4167080A1 (en) Memory initialisation apparatus and method, and computer system
CN114779883B (zh) 系统时钟同步方法、装置、系统及存储介质
US10955872B2 (en) System and method to retain baseboard management controller real-time clock time during BMC reboot
CN116701285A (zh) 远程访问控制装置、方法、设备及计算机可读介质
JP6070115B2 (ja) 情報処理装置、bmcおよびbiosアップデート方法
CN115905099A (zh) 同构双计算系统的处理器和同构双计算系统的操作方法
CN117111682A (zh) 一种在中标麒麟系统下使用时统板实现时间同步的方法
TWI832188B (zh) 電腦系統以及在電腦系統中執行的方法
US12019466B2 (en) Virtual precision time protocol clock devices for virtual nodes
CN111897577B (zh) 一种cpu的主从辨别方法及其装置、计算机终端设备
CN114443150B (zh) 交换机出厂信息同步方法、系统、终端及存储介质
US20230341889A1 (en) Virtual precision time protocol clock devices for virtual nodes
US11163591B2 (en) Power management method and device, electronic apparatus, and computer program product
US10613850B1 (en) Performant and secure storage and retrieval of firmware variables
US20220317927A1 (en) Adaptive memory consistency in disaggregated datacenters

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