一种处理器阵列的授时方法及系统与流程

文档序号:21777123发布日期:2020-08-07 19:43阅读:128来源:国知局
一种处理器阵列的授时方法及系统与流程

本发明涉及授时技术领域,尤其涉及一种处理器阵列的授时方法及系统。



背景技术:

随着嵌入式产品的广泛应用,在嵌入式领域的处理器发展也越来越迅速。分布式系统以其易扩展、高可靠、灵活性强等优点成为了应用软件系统的首选架构,随之采用处理器阵列来处理事务的情形越来越常见。处理器阵列彼此间相互独立,无法提供一个统一的全局时钟,由各个进程或模块各自维护它们的本地时钟;由于这些本地时钟的计时速率、运行环境存在不一致性,因此即使所有本地时钟在某一时刻都被校准,一段时间后,这些本地时钟也会出现不一致。为了这些本地时钟再次达到相同的时间值,必须进行授时操作,只有系统时钟同步,处理器间各自处理任务时才不会冲突,保证系统的稳定可靠。尤其在具备高可靠要求的嵌入式领域,系统时钟是嵌入式系统的脉搏,关系到系统的延时,任务处理的超时判断,任务的调度周期等一切与时间有关的事务。如果处理器阵列的系统时钟不同步,会产生周期漂移,导致整个系统无法正常工作。

授时同步技术的实现方法很多,一种是利用信号的发送到被接收(如无线电波)的过程时间差来同步两者时间;一种是提供一个外部统一参考时钟源来实现同步授时,这种方式对外部时钟源的要求很高,硬件成本及资源消耗相对较高。另外针对特殊场景,网络ntp协议(networktimeprotocol,全称为网络时间协议)通过自动判断网络延时来实现局域网内所有设备时间保持统一精准。

针对基于操作系统的处理器阵列授时问题,以及面对精度要求不高的场景,以上方法都会造成芯片资源浪费,增加额外的成本。



技术实现要素:

鉴于上述的分析,本发明实施例旨在提供一种处理器阵列的授时方法及系统,用以解决现有授时方法具有芯片资源浪费,增加额外成本的问题。

一方面,本发明实施例提供了一种处理器阵列的授时方法,包括:从所述处理器阵列中任意选择一个处理器作为主处理器,并且将所述主处理器的系统时钟作为参考时钟;由所述主处理器生成外部中断信号并且每隔预定时间向其他处理器发送外部中断信号;以及通过所述其他处理器接收所述外部中断信号并基于所述外部中断信号修正自身时间。

上述技术方案的有益效果如下:根据本发明实施例的授时方法能够在不额外增加硬件成本的情况下,资源得到最大限度利用,达到同步授时的要求。

基于上述方法的进一步改进,所述处理器阵列包括通过数据总线彼此连接的两个以上的处理器,其中,各个处理器的系统时钟基于操作系统记录时间。

基于上述方法的进一步改进,所述外部中断信号由定时器每隔所述预定时间产生;所述处理器阵列中的每个处理器在所述操作系统固化前,在板级支持包bsp中针对定时器驱动注册与定时器相对应的中断服务程序。

基于上述方法的进一步改进,生成外部中断信号并且每隔预定时间从所述主处理器向其他处理器发送外部中断信号进一步包括:当所述主处理器的定时器的计时达到所述预定时间时,触发外部中断;以及所述主处理器的中断服务程序根据所述外部中断生成所述外部中断信号;以及通过所述数据总线由所述主处理器向所述其他处理器发送所述外部中断信号。

基于上述方法的进一步改进,通过所述其他处理器接收所述外部中断信号并修正时间进一步包括:所述其他处理器通过所述数据总线从所述主处理器接收所述外部中断信号;根据所述外部中断信号判断中断源和中断类型;当所述中断源为所述主处理器并且所述中断类型为时钟同步中断时,所述其他处理器在中断服务程序进行时间修正;以及将所述其他处理器的对应计时器的所有位清零。

基于上述方法的进一步改进,操作系统的时钟节拍的周期为1ms以及将定时器初始化为每隔1ms产生一次中断。

基于上述方法的进一步改进,所述预定时间为在0.5s-2s范围内的所述操作系统的时钟节拍的倍数,其中,所述操作系统将时钟节拍计数修改为(预定时间/时钟节拍的周期)×外部中断次数。

基于上述方法的进一步改进,所述操作系统为嵌入式操作系统并且所述预定时间为1s。

基于上述方法的进一步改进,所述时钟同步中断具有最高优先级。

另一方面,本发明实施例提供了一种处理器阵列的授时系统,包括:选择模块,用于从所述处理器阵列中任意选择一个处理器作为主处理器,并且将所述主处理器的系统时钟作为参考时钟;中断模块,用于由所述主处理器生成外部中断信号并且每隔预定时间向其他处理器发送外部中断信号;以及同步模块,用于通过所述其他处理器接收所述外部中断信号并基于所述外部中断信号修正自身时间。

与现有技术相比,本发明至少可实现如下有益效果之一:

1、从软件层面满足亚微秒级精度,不需要额外增加硬件资源和成本;

2、在预定时间为操作系统的时钟节拍的倍数的情况下,可以通过调节预定时间来满足授时精度需求;

3、将时钟同步中断设置为具有最高优先级,使得其他处理器无需等待,及时修正时间,进一步提高了授时精度;以及

4、能够最大限度利用处理器自身具有的硬件资源,提高能耗比。

本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为根据本发明实施例的处理器阵列的授时方法的流程图;

图2为根据本发明实施例的处理器阵列的授时方法的运行平台;以及

图3为根据本发明实施例的处理器阵列的授时系统的框图。

附图标记:

202-电源;204-主处理器;206、208、210-处理器;212-其他外围设备;302-选择模块;304-中断模块;以及306-同步模块;

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。

本发明的一个具体实施例,公开了一种处理器阵列的授时方法,如图1所示。处理器阵列的授时方法包括:步骤s102,从处理器阵列中任意选择一个处理器作为主处理器,并且将主处理器的系统时钟作为参考时钟;步骤s104,由主处理器生成外部中断信号并且每隔预定时间向其他处理器发送外部中断信号;以及步骤s106,其他处理器接收外部中断信号并基于所述外部中断信号修正自身时间。

与现有技术相比,本实施例提供的授时方法能够在不额外增加硬件成本的情况下,资源得到最大限度利用,达到同步授时的要求。

下文中,将参考图1和图2对根据本发明实施例的处理器阵列的授时方法进行详细描述。

参考图1,处理器阵列的授时方法包括:步骤s102,从处理器阵列中任意选择一个处理器作为主处理器,并且将主处理器的系统时钟作为参考时钟。处理器阵列包括通过数据总线彼此连接的两个以上的处理器,其中,各个处理器的系统时钟基于操作系统记录时间。在图2中,处理器阵列包括主处理器204和其他处理器,例如,处理器206、处理器208、和处理器210。该运行平台由电源202供电。在其他实施例中,处理器阵列包括主处理器和一个或多个其他处理器。图2中处理器阵列的数量仅是为了说明的目的,而不是为了限定本发明。操作系统的时钟节拍的周期为1ms以及将定时器初始化为每隔1ms产生一次中断。

继续参考图1,在选择主处理器之后,进入步骤s104,由主处理器生成外部中断信号并且每隔预定时间向其他处理器发送外部中断信号。具体地,生成外部中断信号并且每隔预定时间从主处理器向其他处理器发送外部中断信号进一步包括:当主处理器的定时器的计时达到预定时间时,触发外部中断;以及主处理器的中断服务程序根据外部中断生成外部中断信号;以及通过数据总线从主处理器向其他处理器发送外部中断信号。外部中断信号由定时器每隔所述预定时间产生;处理器阵列中的每个处理器在操作系统固化前,在板级支持包bsp中针对定时器驱动注册与定时器相对应的中断服务程序。预定时间为操作系统的时钟节拍的倍数,其中,预定时间为在0.5s-2s范围内的操作系统的时钟节拍的倍数。通过调节预定时间,能够满足不同的授时精度需求。

继续参考图1,在发送外部中断信号之后,进入步骤s106,通过其他处理器接收外部中断信号并修正时间。通过其他处理器接收外部中断信号并修正时间进一步包括:其他处理器通过数据总线由主处理器接收外部中断信号;根据外部中断信号判断中断源和中断类型;当中断源为主处理器并且中断类型为时钟同步中断时,其他处理器在对应的中断服务程序进行时间修正;以及将其他处理器的对应计时器的所有位清零。优选地,预定时间为在0.5s-2s范围内的所述操作系统的时钟节拍的倍数,其中,操作系统将时钟节拍计数修改为(预定时间/时钟节拍的周期)×外部中断次数,即,1000×外部中断次数。优选地,操作系统为嵌入式操作系统(例如,海鹰翼辉嵌入式操作系统)并且预定时间为1s。时钟同步中断具有最高优先级。待修正时间的其他处理器无需等待,能够及时修正时间,从而能够进一步提高了授时精度。

下文中,参照图2,以基于海鹰翼辉操作系统的处理器阵列为例对处理器阵列的授时方法进行详细描述。

本实施例公开了基于海鹰翼辉操作系统的处理器阵列亚微秒授时方法,所述授时方法是以海鹰翼辉操作系统为基础,对处理器阵列的各个系统时钟进行同步的一种方式。此方法基于如图2所示的平台运行,处理器阵列主要是由4个arm芯片及其他外围设备212组成,平台由同一电源统一供电,各个处理器间的中断控制器之间是相连的,各个处理器的时钟在微秒级,此实施例的授时精度也在微秒级。海鹰翼辉嵌入式实时操作系统适用于嵌入式系统,具有高安全高可靠性,已在航空航天领域被很好应用。

具体此方法的实施流程包括以下步骤:

步骤s1:选择处理器阵列中的主处理器,将其时钟作为统一参考时钟。

优选的,所述主处理器的系统时钟作为统一参考时钟是在处理器阵列中选择其中一个处理器作为主处理器,其时钟作为统一参考时钟。

处理器阵列中,各个处理器的系统时钟是基于操作系统进行时间记录的,操作系统中设置时钟节拍的周期为1ms,经过定时器初始化后,每经过1ms,会产生一次中断,时间增加1ms,计数器位清零,获取时间时,通过时钟节拍数*1ms,再加上此时计数器的值即为系统时间,系统时间记录可精确到纳秒。

步骤s2:主处理器每隔1s向其他处理器发送外部中断。主处理器的系统时钟作为统一参考时钟,每隔1s向其他处理器发送外部中断。这里的中断由定时器产生,进一步地,在操作系统固化前在bsp(boardsupportpackage,全称为板级支持包)中对定时器驱动中注册一个中断服务程序,实现每隔1s发送一次外部中断的行为。

主处理器每隔1s向其他处理器发送外部中断,这里的外部中断由定时器触发产生,一旦计时到1s,便会触发外部中断;具体的,在操作系统固化前在bsp中对定时器驱动中注册一个中断服务程序,这之前要对定时器进行相应初始化、配置及使能中断控制器。

平台加电运行,操作系统会对中断向量表和一些硬件进行初始化操作,定时器中断触发其他处理器的外部中断,其他处理器再对此中断源判断,执行各自对应的中断服务程序。

步骤s3:其他处理器接收外部中断,修正自身时间。

所述其他处理器接收到外部中断,修正自身时间是指在中断服务程序中,将时钟节拍计数修改为1000*外部中断次数,然后对当前处理器的计数器的所有位进行清零,来保证时间的一致性,即,达到授时同步的目的。

其他处理器得到修改后的时钟节拍计数,即,可得到自身时间。

具体地,所述其他处理器接收到外部中断是指从处理器接收到主处理器发出的定时器中断信号后,会根据中断向量号找到对应的中断服务程序并执行;特别地,此中断需及时被处理,优先级最高。所述各自的操作系统修正自己的时间就是在中断服务程序中具体进行时间修正,将时钟节拍计数修改为1000*外部中断次数,然后对当前处理器的计数器的所有位进行清零,来保证时间的一致性。

上述基于操作系统的处理器阵列授时方法精度可达到亚微秒级,误差小于1微秒。

本发明的一个具体实施例,公开了处理器阵列的授时系统。下文中,将参照图3对处理器阵列的授时系统进行描述。

参考图3,处理器阵列的授时系统包括:选择模块302,用于从处理器阵列中任意选择一个处理器作为主处理器,并且将主处理器的系统时钟作为参考时钟;中断模块304,用于由主处理器生成外部中断信号并且每隔预定时间向其他处理器发送外部中断信号;以及同步模块306,用于通过其他处理器接收外部中断信号并基于所述外部中断信号修正自身时间。

另外,处理器阵列的授时系统还包括多个其他模块。由于处理器阵列的授时系统与处理器阵列的授时方法相对应,所以为了避免赘述,没有对其他模块进行详细描述。

与现有技术相比,本发明至少可实现如下有益效果之一:

1、从软件层面满足亚微秒级精度,不需要额外增加硬件资源和成本;

2、在预定时间为操作系统的时钟节拍的倍数的情况下,可以通过调节预定时间来满足授时精度需求;

3、将时钟同步中断设置为具有最高优先级,使得其他处理器无需等待,及时修正时间,进一步提高了授时精度;以及

4、能够最大限度利用处理器自身具有的硬件资源,提高能耗比。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

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