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

一种多处理器核的时钟tick处理维护方法与流程

2023-02-04 16:19:14 来源:中国专利 TAG:


1.本发明涉及计算机系统软件专业技术领域,具体为一种多处理器核的时钟tick处理维护方法。


背景技术:

2.随着硬件多处理器核的不断发展,很多嵌入式系统也采用了多核操作系统技术以提高软件效率和硬件使用率。其中,时钟tick是操作系统进行任务调度和时间维护的基础,为任务的调用运行提供计时能力。
3.在单核操作系统中,整个系统维护一个时钟tick,而在多核操作系统中,多个处理器核对同一个硬件时钟中断的响应和处理将决定整个系统的时间是否准确,从而影响调度和时间管理的准确性。
4.一般情况下多核处理器的时钟处理方法有两类:一类是在主核或某一指定处理器核上维护系统的tick时钟,另一类是每个处理器核上都维护各自处理器核的tick时钟。如果采用第一类中单一核维护系统时钟,当该处理器核关闭中断后,则会发生tick丢失现象;如果采用第二类中每个处理器核上都维护各自处理器核tick时钟,那么随着系统运行和各处理器核关闭中断,会造成每个处理器核上的tick时钟不一致的情况,而此时需要不停地进行时钟tick一致性校对,增加了多核操作系统的复杂度,提高多核操作系统的维护成本。


技术实现要素:

5.本发明的目的在于解决现有多核操作系统中时钟tick处理过程中存在的tick丢失现象、各处理器核维护复杂及成本高的问题,设计了一种多处理器核的时钟tick处理维护方法,该方法能够使整个多核操作系统的时钟tick较指定核维护更加准确、可以避免时钟tick丢失,同时使得每个处理器核的维护更加简便可行。
6.实现发明目的的技术方案如下:一种多处理器核的时钟tick处理维护方法,包括以下步骤:
7.s1、操作系统初始化时,将时钟中断处理程序挂接在操作系统统一的时钟中断上,多处理器核的每一个处理器核接收到时钟中断时均会执行该时钟中断处理程序;
8.s2、定义一个全局变量,保存上一次处理时钟tick中断的上一次timebase时间戳;
9.s3、时钟tick被触发时,向每个处理器核发送时钟中断信号;
10.s4、各处理器核进入时钟中断处理程序时获取当前timebase时间戳;
11.s5、各处理器核根据上一次timebase时间戳和该处理器核的当前timebase时间戳,判断本次时钟tick中断是否已被其他处理器核响应;
12.若已被响应过,则该处理器核退出时钟中断处理程序;
13.若未被响应过,则用当前timebase时间戳替换上一次timebase时间戳对全局变量更新,并进行本次时钟tick中断的处理和维护操作;
14.s6、本次时钟tick中断处理完成后,该处理器核退出时钟中断处理程序。
15.在一个实施例中,操作系统为运行在多处理器核上的嵌入式操作系统,且操作系统基于时钟tick进行任务调度和时间维护。
16.在一个实施例中,硬件的时钟tick中断被触发时,通过总线向与时钟中断连接的所有处理器核发送时钟中断信号。
17.在一个实施例中,步骤s5中,基于当前timebase时间戳和上一次timebase时间戳,判断本次时钟tick中断是否已被其他处理器核响应过的方法为:比较当前timebase时间戳和上一次timebase时间戳,若两者为同一个时钟tick内的timebase时间戳,则本次时钟tick中断已被其他处理器核响应过;否则本次时钟tick中断为第一次被响应。
18.在一个实施例中,步骤s5中,本次时钟tick中断的处理和维护操作包括全局时间tick维护、时间看门狗的检查与触发。
19.在一个实施例中,操作系统采用时钟tick数维护系统时间,每出现一次时钟tick中断,则时钟tick数在上次时钟tick数的基础上增加1。
20.在一个实施例中,步骤s1中,操作系统初始化时,步骤s2中的全局变量初始化为0。
21.在上述实施例的一个改进实施例中,上述步骤s1中,时钟中断处理程序挂接在系统统一的时钟中断上,且未关闭时钟中断的处理器核执行步骤s3~s6,关闭时钟中断的处理器核不执行步骤s3~s6。
22.与现有技术相比,本发明的有益效果是:本发明设计的多处理器核的时钟tick处理维护方法不固定由某一核来处理操作系统的时钟tick中断,而是由先进入中断处理程序的处理器核来执行整个操作系统的单次的时钟tick中断的响应,并进行处理和维护,其执行高效、节省了大量的系统开销、提高多处理器核的执行效率,且可以避免由某一个固定的处理器核进行时钟维护,而造成的在该处理器核关闭中断过程中发生的时钟tick丢失问题;而且多处理器核中若每个处理器核分别维护自己的时钟tick,那么整个操作系统需要设计和运行一个时钟tick校对模块,来不停维护一个统一的系统时钟,校对模块不仅增加了操作系统设计难度,还造成了额外的处理器核的执行时间。
附图说明
23.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明为了更清楚地说明本发明实施例或现有技术中的技术方案,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1为具体实施方式中操作系统与多处理器核的连接示意图;
25.图2为具体实施方式中多处理器核的时钟tick处理维护方法的流程图。
具体实施方式
26.下面结合具体实施例来进一步描述本发明,本发明的优点和特点将会随着描述而更为清楚。但这些实施例仅是范例性的,并不对本发明的范围构成任何限制。本领域技术人员应该理解的是,在不偏离本发明的精神和范围下可以对本发明技术方案的细节和形式进行修改或替换,但这些修改和替换均落入本发明的保护范围内。
27.在本实施例的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明创造的限制。
28.此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。
29.本具体实施方式公开了一种多处理器核的时钟tick处理维护方法,操作系统为运行在多处理器核上的嵌入式操作系统,且操作系统采用时钟tick进行任务调度和时间维护,多处理器核对操作系统出现的时钟tick中断进行响应、处理、维护。
30.在本具体实施方式中,操作系统根据时钟tick数维护系统时间,每出现一次时钟tick中断,则时钟tick数在上次时钟tick数的基础上增加1。
31.参见图2所示,多处理器核的时钟tick处理维护方法包括以下步骤:
32.s1、操作系统初始化时,将时钟中断处理程序挂接在操作系统统一的时钟中断上,多处理器核的每一个处理器核接收到时钟中断时均会执行该时钟中断处理程序。
33.本步骤中,操作系统运行时,有可能存在并不是所有的处理器核的时钟中断均打开,也可能有部分处理器核的时钟中断处于关闭状态的情况,此时未关闭时钟中断的处理器核执行步骤s3~s6,关闭时钟中断的处理器核不执行步骤s3~s6。
34.同时,为了避免只有一个处理器核处理时钟tick中断,且当其失效或异常中断时造成的时钟tick丢失的问题,本步骤中未关闭时钟中断的处理器核的数量至少为2个。
35.例如,参见图1所示,多处理器核包括4个处理器核,每一个处理器核的时钟中断均与操作系统内i/o中断控制器中的时钟中断处理程序连接,且每个处理器核的时钟中断均未关闭。
36.s2、定义一个全局变量,保存上一次处理时钟tick中断处理的上一次timebase时间戳。
37.本步骤中,timebase时间戳用来判断是否重复维护时钟计数。
38.操作系统初始化时,全局变量的初始化为0,随着时钟tick中断发生次数的增加,全局变量的值不断增加。
39.s3、时钟tick被触发时,向每个处理器核发送时钟中断信号。
40.本步骤中,硬件的时钟tick中断被触发时(也即出现了时钟tick中断)时,其通过总线向与时钟中断连接的所有处理器核发送时钟中断信号。
41.s4、各处理器核进入时钟中断处理程序时获取当前timebase时间戳。
42.s5、各处理器核根据上一次timebase时间戳和该处理器核的当前timebase时间戳,判断本次时钟tick中断是否已被其他处理器核响应;若已被响应过,则该处理器核退出时钟中断处理程序。若未被响应过,则用当前timebase时间戳替换上一次timebase时间戳对全局变量更新,并进行本次时钟tick中断的处理和维护操作。
43.本步骤中,依据当前timebase时间戳和上一次timebase时间戳,判断本次时钟tick中断是否被其他处理器核响应过的方法为:
44.比较当前timebase时间戳和上一次timebase时间戳,若两者为同一个时钟tick内的timebase时间戳,则本次时钟tick中断已被其他处理器核响应过;否则本次时钟tick中断为第一次被响应。
45.本次时钟tick中断的处理和维护操作包括全局时间tick维护、时间看门狗的检查与触发,还包括其他与时间相关的处理。
46.s6、本次时钟tick中断处理完成后,该处理器核退出时钟中断处理程序.
47.当下一次出现时钟tick中断时,重复上述步骤s2~s6。
48.本发明设计的多处理器核的时钟tick处理维护方法不固定由某一核来处理操作系统的时钟tick中断,而是由先进入中断处理程序的处理器核来执行整个操作系统的单次的时钟tick中断的响应,并进行处理和维护,其执行高效、节省了大量的系统开销、提高多处理器核的执行效率,且可以避免由某一个固定的处理器核进行时钟维护,而造成的在该处理器核关闭中断过程中发生的时钟tick丢失问题;而且多处理器核中若每个处理器核分别维护自己的时钟tick,那么整个操作系统需要设计和运行一个时钟tick校对模块,来不停维护一个统一的系统时钟,校对模块不仅增加了操作系统设计难度,还造成了额外的处理器核的执行时间。
49.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
50.此外,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献