[发明专利]一种SPARC平台减少中断响应抖动的方法有效

专利信息
申请号: 201410060974.9 申请日: 2014-02-21
公开(公告)号: CN103984537B 公开(公告)日: 2017-04-19
发明(设计)人: 卓保特;周启平;吕紫旭;赵英辉 申请(专利权)人: 北京神舟航天软件技术有限公司
主分类号: G06F9/44 分类号: G06F9/44
代理公司: 北京世誉鑫诚专利代理事务所(普通合伙)11368 代理人: 孙国栋
地址: 100094*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 sparc 平台 减少 中断 响应 抖动 技术
【说明书】:

技术领域

发明属于嵌入式实时操作系统领域,具体地说,涉及一种SPARC平台减少中断响应抖动的方法。

背景技术

SPARC是一种开源的RISC处理器架构技术,在国内广泛的应用在航天领域。同时,随着航天任务的复杂化,嵌入式实时操作系统在航天领域的应用也越来越广泛。在嵌入式实时操作系统运行过程中,有两条最重要且执行最频繁的内核路径:任务切换路径和中断处理路径。在这两条路径上有大量对全局变量及全局数据结构进行读写的操作,为保证全局数据的一致性,现有的嵌入式实时操作系统通常采用关中断的方法确保多个任务对共享资源的互斥访问。

现有技术存在的主要问题:

1、采用关中断方法保护的临界区,通常是由C语言实现的对全局变量及全局数据结构进行读写的操作,这些代码长短不一(如使用GCC 3.4.4不做优化,对代码进行编译,对全局变量进行写的临界区有10条汇编指令,队列插入操作的临界区有31条汇编指令,队列删除操作的临界区有25条汇编指令),导致不同临界区执行时间不同。另外临界区的代码强烈依赖编译器,不同编译器或同一编译器的不同配置,都有可能导致临界区代码执行时间的变化(如使用GCC3.4.4–O2级优化对代码进行编译,对全局变量进行写的临界区有6条汇编指令,队列插入操作的临界区有15条汇编指令,队列删除操作的临界区有17条汇编指令)。如下图所示,临界区代码的长度不同,对中断响应的延迟也就不同,这会造成中断响应的延迟在不同的区间抖动,最终导致由中断触发的周期任务调度的抖动,这对实时性要求高的应用(如运动控制)的稳定性、可靠性都会造成负面影响。

2、另外如果关中断的时间过长,会造成系统对外部事件反应迟钝,对多数实时系统而言,这会影响系统的中断响应时间,使得系统的实时性得不到保证;另外频繁的关中断可能变更整个系统的时序,带来的副作用包括丢失外部事件和时钟漂移。

发明内容

本发明要解决的技术问题是克服上述缺陷,提供一种保证对全局变量以及全局队列、全局堆栈等数据结构的读写访问的一致性,而且所有临界区都由7条SPARC平台的汇编指令组成,关中断的时间短且固定,能减少中断响应的抖动,并提高平均中断响应时间,减少外部中断的丢失的SPARC平台减少中断响应抖动的方法。

为解决上述问题,本发明所采用的技术方案是:

一种SPARC平台减少中断响应抖动的方法,步骤如下:1)、建立SPARC平台原子交换函数;2)、实现内核路径上写全局变量访问操作的中断响应抖动减少技术;3)、全局队列访问操作的中断响应抖动减少技术;4)、全局堆栈访问操作的中断响应抖动减少技术。

作为一种改进,所述建立SPARC平台原子交换函数的算法如下:

使用SPARC汇编指令实现了原子交换函数,该函数共由7条指令组成,其原型如下:

int atomic_swap(int oldval,int*p_var,int newval)

返回值为int型,变量oldval存储某一全局变量修改前的值,指针p_var指向该全局变量,而变量newval存储将赋给该全局变量的值,返回0值表示用新值对全局变量原先的值进行了替换,返回非0值,表示未用新值对全局变量原先的值进行替换;所述原子交换函数的算法如下:

1)、快速关中断;

2)、将oldval和p_var指向的地址处的值相减,将结果填入存放返回值的寄存器,如果为0,则继续执行第3步,如果不为0,则跳转到第4步;

3)、将newval的值赋给p_var指向的地址;

4)、打开中断,函数返回。

作为一种改进,所述实现内核路径上写全局变量访问操作的中断响应抖动减少技术的函数原型如下:

void write_global(int*pglb,int new)

其中变量pglb指向要进行写操作的全局变量的地址,变量new指向将要写入全局变量的值;所述实现内核路径上写全局变量访问操作的中断响应抖动减少技术算法如下:

1)、取出指针pglb指向的全局变量的值,赋给临时变量temp;

2)、调用原子交换函数,格式为atomic_swap(temp,pglb,new);

3)、如果原子交换函数返回值不为0,则调转到第1步;如果返回值为0,则函数退出。

作为一种改进,所述全局队列访问操作的中断响应抖动减少技术首先是插入节点操作,其函数原型如下:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神舟航天软件技术有限公司,未经北京神舟航天软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410060974.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top