嵌入式多核中央处理器的轻量级操作系统的驱动程序框架技术方案

技术编号:19691298 阅读:22 留言:0更新日期:2018-12-08 11:02
本申请公开了嵌入式多核中央处理器的轻量级操作系统的驱动程序框架。利用所公开的嵌入式多核中央处理器的轻量级操作系统的驱动程序框架进行任务处理方法包括:注册第一类用于接收消息的处理函数,第一类用于接收消息的处理函数用于接收第一消息以发起对第一任务的处理;响应于接收第一消息,注册第一类用于发送消息的处理函数指示发送第二消息以继续对所述第一任务的处理;以及注册第二类用于接收消息的处理函数,第二类用于接收消息的处理函数用于接收第三消息以结束对所述第一任务的处理。

【技术实现步骤摘要】
嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
本申请涉及嵌入式多核中央处理器的轻量级操作系统的驱动程序框架,尤其涉及对嵌入式多核中央处理器上处理的任务的调度。
技术介绍
嵌入式多核CPU(中央处理器,CentralProcessingUnit)的各个核处理各自的任务。CPU的各个核之间有对通信、协同的大量需求。任务之间有顺序性,一项任务的开始依赖于在前的一个或多个任务的处理完成。CPU的各个核处理多种事件,依据事件知晓在前任务的处理进度。例如,事件包括队列中出现待处理的条目、指定长度时间的流逝、中断、处理任务过程中产生的自定义事件等。图1是现有技术的嵌入式多核CPU系统的框图。CPU0与CPU1为同构或异构的CPU核,通过总线相耦合。每个CPU具有本地存储器,CPU可低延迟地访问自己的本地存储器。CPU还通过总线耦合到外部存储器,例如DDR(DualDataRate,双倍速率)存储器。外部存储器提供大的存储容量,但访问延迟较高。因此,CPU访问外部存储器时,通常通过队列来缓存高延迟的命令。命令的形式可以是具有指定数据格式的消息。队列的条目是消息。CPU从入站队列接收消息,而通过出站队列发送消息。CPU可拥有多种数量的队列。示例性地,参看图1,CPU0包括入站(Inbound)队列0、入站(Inbound)队列1、出站(Outbound)队列0与出站(Outbound)队列1。为访问外部存储器,CPU0向出站队列0添加消息。消息被总线转发给外部存储器。外部存储器输出存储器访问结果,通过总线转发给入站队列0。CPU之间通过队列交换消息。例如,CPU0向出战队列1添加消息。消息被总线转发给CPU1的入站队列0。CPU1从入站队列0获取CPU0发送的消息。
技术实现思路
以访问外部存储器为例,CPU向出站队列添加消息需检查队列状态,并在出站队列未满时进行操作,而从CPU向出站队列添加访问外部存储器的消息,到CPU从入站队列接收外部存储器的访问结果之间,有较长的时间。在等待入站队列变为非空,或者等待访问外部存储器的结果这段时间,CPU需要调度处理其他任务来提升CPU利用率。当CPU同时处理多个相同或不同任务、使用多个队列和/或响应不同种类的事件时,对CPU上运行的多个任务的有效调度变得复杂。CPU可以轮询队列状态,在出站队列非满时向出站队列添加消息,或者在入站队列非空时,从入站队列取出消息并进行处理。但轮询队列状态造成对CPU处理能力的浪费。CPU可以响应由队列状态产生的中断,识别事件类型并进行处理。但是当队列事件频繁发生时,大量中断处理带来的开销严重增加了CPU负担。在桌面CPU、服务器CPU中,通过运行操作系统,由操作系统调度在CPU上运行的多个进程和/或线程,用户无须过多干预进程/线程之间的切换,而由操作系统选择恰当的进程/线程进行调度,以充分利用CPU计算能力。然而,在嵌入式多核CPU中,可使用的存储器、CPU处理能力等资源都受限,难以负担进程/线程管理引入的开销。以及一些嵌入式系统对性能,特别是任务处理延迟有严格要求,操作系统对此场景也难以适用。根据本申请的第一方面,提供了本申请第一方面的第一任务调度方法,其中,任务调度方法包括:通过应用程序编程接口注册第一事件以及执行第一事件所需的第一条件;根据硬件资源状态更新第一条件;在第一条件满足后,调度第一事件的处理函数。根据本申请第一方面的第一任务调度方法,提供了本申请第一方面的第二任务调度方法,其中,向应用程序编程接口注册第一事件的处理函数。根据本申请第一方面的第一或第二任务调度方法,提供了本申请第一方面的第三任务调度方法,其中,在第一事件的处理函数中通过应用程序编程接口注册第二事件以及执行第二事件所需的第二条件。根据本申请第一方面的第一~第三任务调度方法之一,提供了本申请第一方面的第四任务调度方法,其中,第一事件是IO命令处理的一个阶段。根据本申请第一方面的第四任务调度方法,提供了本申请第一方面的第五任务调度方法,其中,为IO命令提供上下文资源,所述任务调度方法还包括:通过应用程序编程接口注册第一事件时,指定第一事件使用的上下文资源。根据本申请第一方面的第一~第五任务调度方法之一,提供了本申请第一方面的第六任务调度方法,其中,所述任务调度方法还包括:响应于调用了第一事件的处理函数,取消对第一事件的注册。根据本申请第一方面的第一~第五任务调度方法之一,提供了本申请第一方面的第七任务调度方法,其中,所述任务调度方法还包括:响应于调用了第一事件的处理函数,更新第一条件。根据本申请第一方面的第七任务调度方法,提供了本申请第一方面的第八任务调度方法,其中,所述任务调度方法还包括:响应于调用了第一事件的处理函数,根据硬件资源状态更新第一条件。根据本申请第一方面的第一~第八任务调度方法之一,提供了本申请第一方面的第九任务调度方法,其中,所述第一条件包括要使用的硬件资源是否可用。根据本申请第一方面的第一~第九任务调度方法之一,提供了本申请第一方面的第十任务调度方法,其中,处理函数表用于记录处理函数以及调用处理函数所需的条件;所述任务调度方法还包括:从处理函数表中选取其条件已满足的处理函数并调用处理函数。根据本申请第一方面的第十任务调度方法,提供了本申请第一方面的第十一任务调度方法,其中,所述注册第一事件以及执行第一事件所需的第一条件,包括,在处理函数表中,相关联地记录第一条件以及第一事件的处理函数。根据本申请第一方面的第一~第十一任务调度方法之一,提供了本申请第一方面的第十二任务调度方法,其中,任务调度方法还包括:记录第一事件的处理函数所需使用的上下文资源。根据本申请第一方面的第十~第十二任务调度方法之一,提供了本申请第一方面的第十三任务调度方法,其中,任务调度方法还包括:响应于取消对第一事件的注册,在处理函数表中相关联地删除第一条件以及第一事件的处理函数。根据本申请第一方面的第十一任务调度方法,提供了本申请第一方面的第十四任务调度方法,其中,任务调度方法还包括:根据硬件资源状态,更新处理函数表中同硬件资源对应的第一条件。根据本申请第一方面的第十四任务调度方法,提供了本申请第一方面的第十五任务调度方法,其中,通过访问指示硬件资源状态的寄存器或处理中断,获取硬件资源状态。根据本申请第一方面的第十~第十五任务调度方法之一,提供了本申请第一方面的第十六任务调度方法,其中,任务调度方法还包括:从处理函数表中选取其条件已满足的第一处理函数,在第一处理函数所需使用的上下文资源可用时,调用所述第一处理函数,并向所述第一处理函数提供其所需使用的上下文资源。根据本申请第一方面的第十~第十六任务调度方法之一,提供了本申请第一方面的第十七任务调度方法,其中,任务调度方法还包括:根据优先级选取其条件已满足的处理函数。根据本申请第一方面的第一~第十七任务调度方法之一,提供了本申请第一方面的第十八任务调度方法,其中,硬件资源为队列、存储器控制器和/或时钟。根据本申请第一方面的第十八任务调度方法,提供了本申请第一方面的第十九任务调度方法,其中,硬件资源为软件模拟的硬件资源。根据本申请第一方面的第十八或十九任务调度方法,提供了本申请第一方面的第二十任务调度方法,其中,同类的硬件资源有多本文档来自技高网
...

【技术保护点】
1.一种任务处理方法,其特征在于,包括:注册第一类用于接收消息的处理函数,第一类用于接收消息的处理函数用于接收第一消息以发起对第一任务的处理;响应于接收第一消息,注册第一类用于发送消息的处理函数指示发送第二消息以继续对所述第一任务的处理;以及注册第二类用于接收消息的处理函数,第二类用于接收消息的处理函数用于接收第三消息以结束对所述第一任务的处理。

【技术特征摘要】
1.一种任务处理方法,其特征在于,包括:注册第一类用于接收消息的处理函数,第一类用于接收消息的处理函数用于接收第一消息以发起对第一任务的处理;响应于接收第一消息,注册第一类用于发送消息的处理函数指示发送第二消息以继续对所述第一任务的处理;以及注册第二类用于接收消息的处理函数,第二类用于接收消息的处理函数用于接收第三消息以结束对所述第一任务的处理。2.根据权利要求1所述的任务处理方法,其特征在于,其中,第一消息为指示IO命令的消息,第一类用于接收消息的处理函数接收指示IO命令的消息,作为IO命令处理过程的开始。3.根据权利要求1或2所述的任务处理方法,其特征在于,在第二消息中指示第三类用于接收消息的处理函数。4.根据权利要求3所述的任务处理方法,其特征在于,在第二消息中添加第三类用于接收消息的处理函数的指针。5.根据权利要求3或4所述的任务处理方法,其特征在于,还包括:第二类用于接收消息的处理函数基于第三消息的指示,调用第三类用于接收消息的处理函数。6.一种任务处理方法,其特征在于,包括:注册第一类用于接收消息的处理函数,第一类用于接收消息的处理函数用于接收第一消息以发起对第一任务的处理;响应于接收第一消息,注册第一类用于发送消息的处理函数指示发送第二消息以继续对所述第一任务的处理;注册第二类用...

【专利技术属性】
技术研发人员:路向峰王树柯
申请(专利权)人:北京忆恒创源科技有限公司
类型:发明
国别省市:北京,11

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

1