一种嵌入式操作系统的任务上下文寄存器保护方法技术方案

技术编号:28469947 阅读:17 留言:0更新日期:2021-05-15 21:37
本发明专利技术提出一种嵌入式操作系统的任务上下文寄存器保护方法,按照任务类型进行任务分类,明确不同类型的任务使用到的寄存器种类,通过在创建任务时增设任务类型选项,以确定该任务使用到的寄存器,在任务上下文切换时,仅对其使用到的寄存器进行保存或恢复。本发明专利技术对任务进行分类,用户可根据应用场景创建不同类型的任务,并在任务中自主对使用到的寄存器进行保存和恢复,操作更加自主灵活;通过区分任务类型,不同类型的任务在任务上下文保存和恢复时仅保存和恢复其使用到的寄存器,大大节省了上下文保存和恢复的时间,提高了系统的实时性。性。性。

【技术实现步骤摘要】
一种嵌入式操作系统的任务上下文寄存器保护方法


[0001]本专利技术涉及嵌入式操作系统的任务切换
,尤其是一种嵌入式操作系统的任务上下文寄存器保护方法。

技术介绍

[0002]在嵌入式领域,嵌入式操作系统正得到越来越广泛的应用。通过嵌入式操作系统,可以更合理、更有效地利用CPU资源,简化应用软件设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。
[0003]任务切换机制是多任务实时操作系统的核心。任务上下文(即任务的运行环境)一般指寄存器的内容。任务上下文的切换是任务调度的核心内容,包括保存当前任务的运行环境,恢复将要执行任务的运行环境等。任务上下文切换使得操作系统的多任务成为可能,但同时也为操作系统带来不可避免的额外开销,主要包括处理器中寄存器的保存与恢复、入口地址的重载、处理器流水线的刷新等。任务上下文切换的开销直接影响着操作系统的实时性,因此,任务上下文切换更需要考虑性能问题。
[0004]目前,主流的嵌入式操作系统有linux、FreeRTOS、uC/OS和Vxworks,这些操作系统都没有区分任务类型。对于所有的任务类型,在任务上下文切换时都需要保存所有的寄存器,但不是所有的任务类型都需要用到所有的寄存器;另一方面,对于寄存器较多的高性能信号处理器,诸如HXDSP104X系列数字信号处理器,这种做法将使得保存和恢复任务上下文的时间较长,严重影响系统的实时性。
[0005]HXDSP104X系列数字信号处理器是国产自主研发的多核DSP处理器,目前已经应用于雷达、电子对抗等领域。该数字信号处理器的每个处理器核支持的指令微操作达到1300多条,内核采用16发射、单指令流、多数据流架构;每个处理器核的执行部件包含在四个执行宏中,每个执行宏内部包含2个64字的本地通用寄存器组、8个乘法器、8个算数逻辑单元、四个移位器和1个超算器;每个处理器核都有自己的内核控制器、内核状态寄存器、通用寄存器、地址寄存器、中断控制器、DMA控制寄存器和DMA状态寄存器等,在任务上下文切换过程中需要保存和恢复的寄存器有1000多个。若在其任务上下文切换时,对所有寄存器进行保存和恢复,将占用大量的处理器时间。

技术实现思路

[0006]针对嵌入式操作系统任务切换机制中存在的不足之处,本专利技术提出一种嵌入式操作系统的任务上下文寄存器保护方法。
[0007]一种嵌入式操作系统的任务上下文寄存器保护方法,按照任务类型进行任务分类,明确不同类型的任务使用到的寄存器种类,通过在创建任务时增设任务类型选项,以确定该任务使用到的寄存器,在任务上下文切换时,仅对其使用到的寄存器进行保存或恢复。
[0008]进一步的,不同类型的任务在进行任务上下文切换时,通过不同的上下文切换函数实现相应种类寄存器的保存或恢复。
[0009]进一步的,任务类型至少包括混合型任务、控制类任务、计算密集型任务,针对混合型任务,任务上下文切换时,保存当前任务在当前状态下的所有寄存器,并恢复下一执行任务的上下文中保存的所有寄存器;针对控制类任务,任务上下文切换时,仅保存当前任务使用到的寄存器,对其他寄存器不进行保存和恢复;针对计算密集型任务,任务上下文切换时,不进行任何寄存器的保存和恢复,用户根据需要自行在用户程序中实现需要使用到的寄存器的保存和恢复。
[0010]本专利技术对任务进行分类,用户可根据应用场景创建不同类型的任务,并在任务中自主对使用到的寄存器进行保存和恢复,操作更加自主灵活;通过区分任务类型,不同类型的任务在任务上下文保存和恢复时仅保存和恢复其使用到的寄存器,大大节省了上下文保存和恢复的时间,提高了系统的实时性。
附图说明
[0011]图1为任务上下文切换流程示意图。
具体实施方式
[0012]下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本专利技术限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本专利技术的原理和实际应用,并且使本领域的普通技术人员能够理解本专利技术从而设计适于特定用途的带有各种修改的各种实施例。
[0013]实施例1
[0014]一种嵌入式操作系统的任务上下文寄存器保护方法,按照任务类型进行任务分类,明确不同类型的任务使用到的寄存器种类,通过在创建任务时增设任务类型选项,以确定该任务使用到的寄存器,在任务上下文切换时,仅对其使用到的寄存器进行保存或恢复,即对当前执行任务使用到的寄存器进行保存,对下一执行任务使用到的寄存器进行恢复。
[0015]不同类型的任务在进行任务上下文切换时,通过不同的上下文切换函数实现相应种类寄存器的保存或恢复。任务类型至少包括混合型任务、控制类任务、计算密集型任务。
[0016]针对混合型任务,任务上下文切换时,保存当前任务在当前状态下的所有寄存器,并恢复下一执行任务的上下文中保存的所有寄存器。
[0017]针对控制类任务,任务上下文切换时,仅保存当前任务使用到的寄存器,对其他寄存器不进行保存和恢复。
[0018]针对计算密集型任务,任务上下文切换时,不进行任何寄存器的保存和恢复,用户根据需要自行在用户程序中实现需要使用到的寄存器的保存和恢复。
[0019]下面以HXDSP104X系列数字信号处理器为例,对以上三种不同类型任务的寄存器保护方案进行阐述。
[0020]1、针对混合型任务,任务创建时设置任务类型为混合型,任务上下文切换时,需要保存当前任务当前状态下的所有寄存器,包括通用寄存器(X|Y|Z|T)R0~(X|Y|Z|T)R39、地址发生寄存器U0~U7、V0~V7、W0~W7、乘累加寄存器(X|Y|Z|T)MACC0~(X|Y|Z|T)MACC3、累加寄存器(X|Y|Z|T)ACC0~(X|Y|Z|T)ACC7、ALU比较标志寄存器(X|Y|Z|T)ACF0~(X|Y|Z
|T)ACF7、ALU块浮点标志寄存器(X|Y|Z|T)ABFPR、零开销循环寄存器LC0、LC1等,并恢复下一执行任务的上下文中保存的所有寄存器。
[0021]2、针对控制类任务,不包含大量的复杂计算,任务创建时设置任务类型为控制类,任务上下文切换时,仅保存当前任务使用到的寄存器,即通用寄存器XR0~XR63、YR39、地址发生寄存器U0~U15、乘累加寄存器XMACC0~XMACC7、累加寄存器XACC0~XACC7、ALU控制寄存器XALUCR、乘法器控制寄存器XMULCR、移位器控制寄存器XSHFCR、超算器控制寄存器XSPUCR,分支地址寄存器BA、子程序指针寄存器SR、子程序返回地址寄存器SER,对其他寄存器不再进行保存和恢复。
[0022]3、针对计算密集型任务,需要进行大量计算,主要消耗处理器资源,因此代码运行效率至关重要。任务创建时设置任务类型为计算密集型,任务上下文切换时,不进行任何寄存器的保存和恢复,用户可以根据需要自行在用户程序中对需要使用到的寄存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式操作系统的任务上下文寄存器保护方法,其特征在于,按照任务类型进行任务分类,明确不同类型的任务使用到的寄存器种类,通过在创建任务时增设任务类型选项,以确定该任务使用到的寄存器,在任务上下文切换时,仅对其使用到的寄存器进行保存或恢复。2.根据权利要求1所述的嵌入式操作系统的任务上下文寄存器保护方法,其特征在于,不同类型的任务在进行任务上下文切换时,通过不同的上下文切换函数实现相应种类寄存器的保存或恢复。3.根据权利要求1或2所述的嵌入式操作系统的任务上下文寄存器保护方法,其特征在...

【专利技术属性】
技术研发人员:邹文静耿锐陈金忠高振标余浩
申请(专利权)人:安徽芯纪元科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1