计算机设备、读取时间的方法和写入时间的方法与流程

文档序号:12863237阅读:443来源:国知局
计算机设备、读取时间的方法和写入时间的方法与流程

本发明实施例涉及计算机领域,尤其涉及计算机设备、读取时间的方法和写入时间的方法。



背景技术:

实时时钟(real-timeclock,rtc)是指可以输出时间的电子设备,该电子设备可以是集成电路,也可以是时钟芯片。

计算机设备部署有rtc,该rtc为计算机设备提供精确的实时时间;计算机设备将rtc输出的实时时间作为时间基准来执行任务。

如果该计算机设备是高级精简指令集机器(advancedriscmachine,arm)服务器,该arm服务器访问rtc的架构参见图1。在arm处理器访问rtc时,arm处理器请求复杂可编程式逻辑器件(complexprogrammablelogicdevice,cpld)将开关101连通,这样arm处理器可以通过开关101连通的i2c总线访问rtc,例如从rtc读取实时时间。在基板管理控制器(baseboardmanagementcontroller,bmc)访问rtc时,bmc请求cpld将开关102连通,这样bmc可以通过开关102连通的i2c总线访问rtc。但是,在图1所示的架构中,rtc不能同时被arm处理器和bmc访问,需要通过cpld控制开关(101,102)来决定是arm处理器或者bmc访问rtc。



技术实现要素:

有鉴于此,本申请提供了一种计算机设备、读取时间的方法和写入时间的方法,以便通过可编程式逻辑器件(programmablelogicdevice,pld)提供访问实时时钟(real-timeclock,rtc)的实时时间。

第一方面,本申请提供一种计算机设备,该计算机设备包括rtc和pld。

该pld与该rtc连接。该pld从该rtc获取实时时间,存储该实时时间。这样,计算机设备中需要使用该实时时间的组件可以从该pld获取该实时时间。

第一方面的一个可能设计,该pld具有第一存储单元。该pld将从rtc获取的实时时间存储在该第一存储单元中。

计算机设备中需要使用该实时时间的组件可以访问该pld的第一存储单元,从该第一存储单元获取该实时时间。

第一方面的一个可能设计,该计算机设备还包括至少一个组件。该至少一个组件中的每个组件与该pld连接。

该至少一个组件中的每个组件可以获取该pld存储的该实时时间。该至少一个组件中的所有组件相对独立地从该pld获取实时时间,因此,该至少一个组件中的任一组件可以在任意时间从该pld获取该实时时间。

如果多个组件分别从该pld获取该实时时间,由于该多个组件中的每个组件是独立地从该pld获取该实时时间,该多个组件从该pld获取该实时时间互不干扰,因此,该多个组件可以同时从该pld获取该实时时间。

第一方面的一个可能设计,该至少一个组件与该pld通过总线连接。这样,该至少一个组件可以基于该总线的总线协议从该pld获取该实时时间。

第一方面的一个可能设计,该至少一个组件与该pld通过局部总线(localbus)连接。这样,该至少一个组件可以基于该局部总线的总线协议从该pld获取该实时时间。

第一方面的一个可能设计,rtc与pld通过总线连接。这样,该pld可以基于该总线的总线协议从该rtc获取该实时时间。

第一方面的一个可能设计,该pld与该rtc通过连接内部集成电路i2c总线连接。这样,该pld可以基于该i2c总线的总线协议从该rtc获取该实时时间。

第一方面的一个可能设计,该至少一个组件包括处理器或者基板管理控制器bmc。

相对于传统技术(例如图1所示的架构),处理器从pld读取该实时时间不会受其它组件读取该实时时间的干扰,处理器在任意需要使用该实时时间时均可以从pld读取该实时时间,从而有效保证处理器基于该实时时间执行动作。

类似地,相对于传统技术(例如图1所示的架构),bmc从pld读取该实时时间不会受其它组件读取该实时时间的干扰,bmc在任意需要使用该实时时间时均可以从pld读取该实时时间,从而有效保证bmc基于该实时时间管理计算机设备。

第二方面,本申请提供一种读取时间的方法,应用于第一方面或第一方面的任意可能设计提供的计算机设备。

在该方法中,由于该pld与该rtc连接,该pld直接从rtc获取实时时间并存储该实时时间。后续计算机设备中需要使用该实时时间的组件可以从该pld的第一存储单元获取该实时时间,而不是直接从该rtc读取实时时间。

第二方面的一种可能设计,在该方法中,至少一个组件中的每个组件可以在任意时间从该pld获取实时时间,在获取实时时间的过程中该pld分别向该至少一个组件中的每个组件输出该实时时间。这样,至少一个组件可以并行从该pld获取实时时间,甚至可以同时从该pld获取该实时时间。

第三方面,本申请提供一种更新时间的方法,应用于第一方面或第一方面的任意可能设计提供的计算机设备。

在该更新时间的方法中,pld从至少一个组件获取另一个时间;该pld向该rtc写入该另一个时间,该rtc在该另一个时间的基础上实时更新该实时时间。

这样,如果需要使用该另一个时间调整实时时间,可以通过pld向rtc写入该另一个时间。后续,rtc从该另一个时间开始实时更新实时时间。

第四方面,本申请提供一种plc。该plc包括执行第二方面或第二方面的任意可能设计提供的读取时间的方法的功能模块,和/或该plc包括执行第三方面或第三方面的任意可能设计提供的更新时间的方法的功能模块。本申请对该plc中的功能模块的划分不做限定,可以按照方法的流程步骤对应划分功能模块,也可以按照具体实现需要划分功能模块。

第五方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有指令。当计算机设备中的pld执行该指令时,该pld执行上述第二方面或者第二方面的各种可能设计提供的读取时间的方法,或者该pld执行上述第三方面或者第三方面的各种可能设计提供的更新时间的方法。

第六方面,提供一种计算机程序产品,该计算机程序产品包括指令,该指令存储在计算机可读存储介质中。当计算机设备中的pld执行该指令时,该pld执行上述第二方面或者第二方面的各种可能设计提供的读取时间的方法,或者该pld执行上述第三方面或者第三方面的各种可能设计提供的更新时间的方法。

附图说明

图1为arm服务器的一种系统架构示意图;

图2为本发明实施例提供的计算机设备的一种系统架构示意图;

图3为本发明实施例提供的读取时间的一种流程示意图;

图4为本发明实施例提供的读取时间的一种流程示意图;

图5为本发明实施例提供的更新时间的一种流程示意图;

图6为本发明实施例提供的pld的一种逻辑结构示意图;

图7为本发明实施例提供的pld的一种逻辑结构示意图;

图8为本发明实施例提供的计算机设备的一种系统架构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例提供的技术方案进行描述。

本发明实施例提供一种计算机设备;该计算机设备可以是服务器,例如高级精简指令集机器(advancedriscmachine,arm)服务器;该计算机设备也可以是其他具有计算能力的设备。

参见图2,该计算机设备包括实时时钟(real-timeclock,rtc)和可编程式逻辑器件(programmablelogicdevice,pld)。

参见图2,该rtc与该pld连接。这样,该pld可以从该rtc获取实时时间。

可选地,rtc与pld通过总线连接,例如该总线可以是内部集成电路(inter-integratedcircuit,i2c)总线,当然,该总线也可以是其它能够实现在该rtc与该pld之间传输数据的总线。

该pld具有至少一个存储单元。该至少一个存储单元包括第一存储单元,该pld将实时时间存储在该第一存储单元中。可选地,该实时时间在该第一存储单元中按照以下存储格式存储,该存储格式为年、月、日、星期、时、分、秒。

可选地,该第一存储单元可以是寄存器,也可以是其它具有存储能力的介质。例如,该第一存储单元包括7个寄存器,该7个寄存器存储该实时时间包含的年、月、日、星期、时、分、秒。

在本发明实施例中,该pld与该rtc连接,该pld从该rtc获取实时时间并存储该实时时间。这样,计算机设备中需要使用该实时时间的组件可以从该pld的第一存储单元获取该实时时间。

在传统技术中,计算机设备部署有复杂可编程式逻辑器件(complexprogrammablelogicdevice,cpld),该cpld可以使能计算机设备中的各组件以触发组件启动或停止工作。可选地,在本发明实施例中,图2所示的该pld替换传统技术提供的计算机设备的cpld,并替代该cpld在计算机设备中所起的作用(例如使能计算机设备中的各组件以触发组件启动或停止工作);这样可以避免在计算机设备中需要同时部署具有传统功能的该cpld和本发明实施例提供的该pld所带来的器件浪费。可选地,在本发明实施例中,采用传统技术提供的计算机设备的cpld实现图2所示的该pld,包括替代该pld实现图2所示的架构,还包括替代该pld实现该pld在该图2所示的架构下具有的在本发明实施例中的功能;这样可以避免在计算机设备中需要同时部署具有传统功能的该cpld和本发明实施例提供的该pld所带来的器件浪费。

参见图2,该计算机设备包括n个组件,n为大于或等于1的正整数。

n个组件分别与该pld连接。图2示意了三个组件(组件1、组件2、组件n),组件1与该pld的端口out1连接,组件2与该pld的端口out2连接,组件n与该pld的端口outn连接。可选地,n个组件分别通过总线与该pld连接,该总线可以是局部总线(localbus),该总线可以是其它能够实现在该组件与该pld之间传输数据的总线。

在n个组件分别与该pld连接的情况下,n个组件可以分别从该pld获取该实时时间。

举例说明,组件1为计算机设备中的处理器,该处理器可以通过端口out1访问该pld的第一存储单元,并读取该第一存储单元存储的该实时时间。组件2为计算机设备中的基板管理控制器(baseboardmanagementcontroller,bmc),该bmc可以通过端口out2访问该pld的第一存储单元,并读取该第一存储单元存储的该实时时间。

在本发明实施例中,如果多个组件分别从该pld获取该实时时间,由于该多个组件中的每个组件是独立地从该pld获取该实时时间,该多个组件从该pld获取该实时时间互不干扰,因此,该多个组件可以同时从该pld获取该实时时间,当然,该多个组件中的每个组件可以在任意时间从该pld获取该实时时间。

另外,相对于传统技术(如图1提供的架构),本发明实施例(如图2提供的架构)省去了开关,节省了成本,并且省去了cpld控制开关的动作,提高多个组件获取该实时时间的效率。

本发明实施例对组件从该pld获取该实时时间的具体实现方式不做限定,下面提供举例提供两种实现方式。

第一种实现方式,组件1和组件2对应为计算机设备中的处理器和bmc,该处理器和该bmc可以分别读取pld的第一存储单元来实现对该实时时间的获取。

第二种实现方式,组件n向该pld请求该实时时间,该pld从第一存储单元获取该实时时间并将获取的该实时时间向该组件n发送。

可选地,n个组件包括计算机设备中的处理器或者bmc。

处理器可以读取pld的第一存储单元中存储的该实时时间,基于该实时时间执行动作,例如基于该实时时间分配任务和调度任务,例如基于该实时时间与其它组件进行数据交互。相对于传统技术,处理器从pld读取该实时时间不会受其它组件读取该实时时间的干扰,处理器在任意需要使用该实时时间时均可以从pld读取该实时时间,从而有效保证处理器基于该实时时间执行动作。

bmc可以读取pld的第一存储单元中存储的该实时时间,基于该实时时间管理计算机设备。相对于传统技术,bmc从pld读取该实时时间不会受其它组件读取该实时时间的干扰,bmc在任意需要使用该实时时间时均可以从pld读取该实时时间,从而有效保证bmc基于该实时时间管理计算机设备。

下面提供一种读取时间的方法。图3示意了该读取时间的方法的流程,该方法包括步骤s301和步骤s302。

步骤s301,pld从该rtc获取实时时间。

具体地,该pld与该rtc连接,该pld通过该连接从该rtc获取该实时时间。

本发明实施例对pld从rtc获取实时时间的具体获取方式不做限定,下面具体提供两种实现方式。

第一种实现方式,该rtc生成实时时间,并将该实时时间向该pld输出。

第二种实现方式,该rtc具有第二存储单元(例如寄存器),该第二存储单元用于存储实时时间,本发明实施例实现该第二存储单元的实现方式与本发明实施例实现第一存储单元的实现方式可以是类似的实现方式,在此不再赘述。该rtc实时更新该rtc的第二存储单元中存储的实时时间,例如按照时间步长(比如1秒)实时增加该第二存储单元中存储的实时时间;该pld实时或者定期从该rtc的第二存储单元中读取实时时间。

步骤s302,pld存储该实时时间。

具体地,pld具有第一存储单元,pld将从rtc获取的实时时间在该第一存储单元中存储。

在本发明实施例中,该pld与该rtc连接,通过执行读取时间的方法中的步骤s301和步骤s302,该pld可以获取并存储该rtc的实时时间,后续计算机设备中需要使用该实时时间的组件可以从该pld的第一存储单元获取该实时时间,而不是直接从该rtc读取实时时间。

可选地,参见图4,该读取时间的方法还可以包括步骤s303。

步骤s303,组件从该pld获取实时时间。

本发明实施例对组件从该pld获取实时时间的具体获取方式不做限定,下面具体提供两种实现方式。

第一种实现方式,组件直接访问该pld的第一存储单元,从该第一存储单元中读取实时时间,在读取过程中,该pld将该第一存储单元存储的实时时间向该组件输出。

第二种实现方式,组件向该pld请求最新的实时时间,该pld将该第一存储单元存储的实时时间向该组件输出。

在本发明实施例中,组件与该pld连接,组件可以在任意时间从该pld获取实时时间。如果计算机设备包括多个组件,该多个组件是分别与该pld连接的,该多个组件都可以在任意时间从该pld获取实时时间,该多个组件中的每个组件是独立地从该pld获取该实时时间,该多个组件从该pld获取该实时时间互不干扰;因此,该多个组件不但可以在任意时间从该pld获取该实时时间,还可以同时分别从该pld获取该实时时间。

可选地,该pld的第一存储单元包括n个存储模块,每个存储模块可以是寄存器,也可以是其它具有存储能力的介质。

n个存储模块中的存储模块与n个组件中的组件一一对应。每个组件可以访问对应的存储模块。

在本可选实施方式中,该pld从rtc获取实时时间,并将每次获取的实时时间同步更新至n个存储模块中的每个存储模块。n个组件中的每个组件访问n个存储模块中对应的存储模块,并从对应的存储模块获取实时时间。这样,n个组件可以独立从该pld获取该实时时间,该多个组件从该pld获取该实时时间互不干扰。

下面提供一种更新时间的方法。图5示意该更新时间的方法的流程,该方法包括步骤s501、步骤s502和步骤s503。

步骤s501,组件向pld写入另一个时间。

pld具有的至少一个存储单元包括第三存储单元。本发明实施例实现该第三存储单元的实现方式与本发明实施例实现第一存储单元的实现方式可以是类似的实现方式,在此不再赘述。

组件可以访问该pld的该第三存储单元,向该第三存储单元写入该另一个时间;这样pld从该组件获取到该另一个时间。

可选地,在该更新时间的方法中,组件具体为计算机设备中的处理器。这样,计算机设备中,仅处理器能通过该另一个时间更新实时时间,避免计算机设备中除处理器以外的其它组件非法更改实时时间。

举例说明,处理器运行的操作系统(operatingsystem,os)或者基本输入/输出系统bios(basicinput/outputsystem,bios)可以访问pld的第三存储单元,并在该第三存储单元写入该另一个时间。

可选地,在该更新时间的方法中,如果计算机设备中的多个组件分别向该第三存储单元写入该另一个时间,则在每个时刻,只有获得授权(例如处理器对组件授权)的一个组件可以向该第三存储单元写入该另一个时间,即该多个组件不能同时向该第三存储单元写入该另一个时间,这样可以保证该另一个时间在每个时间均是唯一的。

可选地,该第三存储单元与该第一存储单元为同一个存储单元。相对于需要在pld中配置两个存储单元(该第三存储单元和该第一存储单元),配置一个存储单元可以节省存储资源;另外,使用组件写入的该另一个时间实时更新该第一存储单元中的实时时间,能够提高处理器使用该第一存储单元中的该另一个时间来执行动作的实时性。

可选地,该第三存储单元与该第一存储单元为不同存储单元。在使用第三单元存储的该另一个时间更新rtc的过程中处理器可以使用第一存储单元的实时时间继续执行动作,保证执行动作的不间断。

可选地,该pld向组件请求该另一个时间,该组件将该另一个时间向该pld发送;这样pld从该组件获取到该另一个时间。

可选地,该pld的第三存储单元包括n个存储模块,每个存储模块可以是寄存器,也可以是其它具有存储能力的介质。

第三存储单元的n个存储模块中的存储模块与n个组件中的组件一一对应。每个组件可以访问对应的存储模块。

在本可选实施方式中,n个组件中的每个组件可以向n个存储模块中对应的存储模块写入该另一个时间。后续,pld可以将该存储模块中的该另一个时间向rtc写入。

步骤s502,该pld向rtc写入该另一个时间。

rtc具有第二存储单元。pld可以访问该rtc的该第二存储单元,向该第二存储单元写入该另一个时间。

步骤s503,该rtc基于该另一个时间更新该实时时间。

具体地,该rtc在该另一个时间的基础上继续更新该第二存储单元中存储的实时时间。

举例说明,该第二存储单元中存储的未更新的实时时间为“2017年、6月、22日、星期四、15点、20分、20秒”,该另一个时间为“2017年、6月、23日、星期五、15点、20分、20秒”,pld将该另一个时间写入该第二存储单元后,该第二存储单元中存储的实时时间为“2017年、6月、23日、星期五、15点、20分、20秒”;后续,rtc实时更新该第二存储单元中存储的实时时间,比如每过一秒便更新一次该第二存储单元中存储的实时时间,在过了1秒时该第二存储单元中存储的实时时间更新为“2017年、6月、23日、星期五、15点、20分、21秒”,在过了1分钟时该第二存储单元中存储的实时时间更新为“2017年、6月、23日、星期五、15点、21分、20秒”。

在本发明实施例中,rtc使用该另一个时间更新该第二存储单元中的实时时间,使得rtc及时向pld输出根据该另一个时间调整后的实时时间,及时更新pld中的第一存储单元存储的实时时间,保证处理器使用该第一存储单元存储的更新的实时时间来执行动作。

本发明实施例提供一种plc。该plc包括执行上述方法实施例提供的读取时间的方法的功能模块,和/或该plc包括执行上述方法实施例提供的更新时间的方法的功能模块。本申请对该plc中的功能模块的划分不做限定,可以按照方法的流程步骤对应划分功能模块,也可以按照具体实现需要划分功能模块。

举例提供与读取时间的方法对应的功能模块,参见图6,该pld包括:

获取单元601,用于从该rtc获取实时时间;

存储执行单元602,用于存储该实时时间。

可选地,该pld还包括:输出单元603,用于向该至少一个组件输出该实时时间。

举例提供与更新时间的方法对应的功能模块,参见图7,该pld包括:

获取单元701,用于从该至少一个组件获取另一个时间;

写入执行单元702,用于向该rtc写入该另一个时间,该另一个时间用于该rtc更新该实时时间。

本发明实施例一种计算机可读存储介质,计算机可读存储介质中存储有指令。当计算机设备中的pld执行该指令时,该pld执行上述方法实施例提供的读取时间的方法中由该pld执行的步骤,或者该pld执行上述方法实施例提供的更新时间的方法中由该pld执行的步骤。

本发明实施例一种计算机可读存储介质,计算机可读存储介质中存储有指令。当计算机设备中的组件执行该指令时,该组建执行上述方法实施例提供的读取时间的方法中由该组件执行的步骤,或者该组建执行上述方法实施例提供的更新时间的方法中由该组件执行的步骤。

本发明实施例一种计算机程序产品,该计算机程序产品包括指令,该指令存储在计算机可读存储介质中。当计算机设备中的pld执行该指令时,该pld执行上述方法实施例提供的读取时间的方法中由该pld执行的步骤,或者该pld执行上述方法实施例提供的更新时间的方法中由该pld执行的步骤。

本发明实施例一种计算机程序产品,该计算机程序产品包括指令,该指令存储在计算机可读存储介质中。该组建执行上述方法实施例提供的读取时间的方法中由该组件执行的步骤,或者该组建执行上述方法实施例提供的更新时间的方法中由该组件执行的步骤。

可选地,计算机设备中的组件(例如bmc)替代图2所示架构中的pld,包括替代该pld实现图2所示的架构,还包括替代该pld实现该pld在该图2所示的架构下具有的在本发明实施例中的功能,例如替换pld从该rtc获取实时时间和存储该实时时间。

图8举例示意了bmc替代图2所示的pld的架构。上述描述的pld在本发明实施例所起的作用,类似适用于图8所示的bmc。另外,上述描述的pld在读取时间的方法所起的作用,以及上述描述的pld在更新时间的方法所起的作用,类似适用于图8所示的bmc。

应当理解,上述“第一存储单元”中的“第一”,上述“第二存储单元”中的“第二”,上述“第三存储单元”中的“第三”都仅用于相互区分。即,“第一存储单元”、“第二存储单元”和“第三存储单元”并不代表特指的存储单元,也不代表它们之间存在顺序关系。在不脱离本发明实施例保护范围的情况下,可以对“第一存储单元”、“第二存储单元”和“第三存储单元”互换名称,或者将“第一存储单元”改称为“第四存储单元”和将“第二存储单元”改称为“第五存储单元”。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1