当前位置: 首页 > 专利查询>浙江大学专利>正文

硬件辅助的辅核任务动态优先级调度的实现方法技术

技术编号:2915756 阅读:224 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种硬件辅助的辅核任务动态优先级调度的实现方法。是通过为基于主核加辅核体系的操作系统调度提供体系结构上的支持,辅助操作系统调度器对辅核任务的调度,硬件调度器维护三个就绪任务的硬件队列,根据任务优先级将到达任务插入到相应的就绪任务队列中,并通过周期性的优先级提升来避免辅核任务饿死的情况发生。这一方法通过体系结构支持有效的降低了软件系统对嵌入式异构多核体系的支持难度,并减轻主核调度和管理辅核任务的负担,明显提高了辅助核任务的吞吐量。特别是在辅核种类多、数量大、调度算法复杂的情况下,更具有明显的效果。

【技术实现步骤摘要】

本专利技术涉及计算机体系结构设计领域,涉及操作系统设计领域,尤其涉及一种硬件辅助的辅核任务动态优先级调度的实现方法
技术介绍
随着半导体以及相应的集成电路制造工艺的迅猛发展,集成在芯片上的晶体管的密度不断的提高,使得越来越多的元件都可以集成到一块单一的芯片上。在单个芯片上把各种不同用途的功能模块整合在一起,不但可以提升模块间的通信速度,提升系统性能,而且还可以减少芯片的面积,从而也降低芯片的能耗。为了满足各种各样的应用需求,各种针对特定应用而设计的异构多核系统变得越来越流行。在这种体系中,除了针对特定应用优化设计的处理核外,还有一个负责操作系统运行的通用处理核。在这种异构多核的体系架构中,通常把运行操作系统的通用的处理核称为主处理核或者主核。而把针对特定应用设计的处理核称为辅助处理核或者辅核,如DSP,还有针对JPEG,MPEG2,MPEG-4以及HDTV应用设计的处理核都属于这一类。这些辅助处理核往往只能运行针对特定应用设计的专用指令集,所以运行在辅助核上的辅助核任务需要主核的管理和控制。在支持异构多核体系的软件系统中,操作系统运行在主核上,而辅助核则通过各种各样的方式抽象成软件接口。例如以驱动程序,系统调用,或者虚拟文件系统等方式抽象出软件接口供应用程序直接使用。在驱动程序支持辅助核的方式中,从操作系统的角度来看,辅助核是一个拥有强大计算能力的设备,应用程序发挥辅助核强大计算能力的方式就是使用辅助核驱动程序。采用系统调用方式支持辅助核的方式中,支持辅助核的软件接口被包装成操作系统内核中的一组系统调用。而虚拟文件系统则是把辅助核的使用包装成一个虚拟文件系统,通过对文件系统的操作来实现对辅助核的操作。但是,无论采用驱动程序还是虚拟文件系统的方式支持异构多核体系,都是把辅助核硬件抽象成相应的软件接口,在应用程序中通过使用这些软件接口对辅助核硬件进行直接的操作。这种方式用于测试辅助核的功能完整性以及应用在单任务的系统中是很合适的,实现方式和使用方式都很简单,但是,当有-->多个应用程序使用辅助核硬件的时候,由于这种软件直接操作硬件的方式,使得应用程序很难发现某个辅助处理核是否已经被其他程序所使用,就会发生辅助核资源使用的冲突。因此,在支持主核和辅核这种体系的操作系统中,如何灵活而有效的调度管理应用程序任务在辅助核运行成了一个很大的问题。而且随着辅核种类和数量的增加,如果仍然由主核上运行的调度器来对众多的辅核种类和辅核任务进行调度,调度器可能成为系统性能的瓶颈。
技术实现思路
为了向基于主核和辅核体系的操作系统提供更好的支持,为了提供更加灵活有效的辅核管理性能,为了提高辅核任务调度的吞吐量,提高辅核执行的效率,本专利技术的目的在于提供一种硬件辅助的辅核任务动态优先级调度的实现方法。本专利技术解决技术问题所采用的技术方案是:一种硬件辅助的辅核任务动态优先级调度的实现方法:1)辅核任务的三个阶段:辅核是为特定应用领域的计算设计的,支持不同于主核的指令集;从操作系统的角度来看,辅核不能进行资源管理,不能运行任何操作系统内核态的代码,不具备完全独立运行进程的能力;因此辅核任务对执行可以分为三个阶段:①辅核任务预处理阶段:这一阶段由主核负责,创建辅核上运行的辅核任务上下文,包括辅核任务指令以及待处理数据;主核上派生辅核任务的进程也就是该辅核任务的控制进程;②辅核任务运行阶段:在该阶段,辅核从主存载入在第一阶段初始化好的辅核任务上下文并启动辅核任务的执行;当任务执行完毕后,将执行结果数据写回内存空间;③辅核任务结果处理阶段:这个阶段运行在主核上,主要处理第二阶段在辅核上运行的结果,将辅核任务结果整理写回到目标地址;2)硬件调度模块辅助的辅核任务调度过程:辅核任务的调度过程如下:①主核上运行的操作系统调用硬件调度器接口,将主核上进程派生的辅核任务传送给硬件调度器;②辅核硬件调度器的调度单元,将就绪任务根据优先级组织为三个先进先出硬件队列,然后依次从队列中选取任务,并分配到空闲状态的辅核上执行;-->③当辅核任务执行完毕,硬件调度单元产生中断通知主核上的控制进程进行后期的数据处理;所述的将就绪任务根据优先级组织为三个先进先出硬件队列,具体组织方式如下:①硬件调度器根据优先级高低维护了3个就绪任务队列,分别为:高优先级任务队列、普通优先级任务队列和低优先级任务队列;②辅核任务根据优先级分别被分配到对应的3个任务队列中;在各任务队列之内不再区分优先级高低,按照先到先服务的方法调度任务;③硬件调度器每间隔一段时间把对任务队列中的任务第一个任务的优先级进行提升,也就是说把普通优先级任务队列中的第一个任务提升为高优先级任务,把低优先级任务队列中的第一个任务提升为普通优先级任务。本专利技术具有的有益效果是:首先,设计了硬件调度器辅助辅核任务的调度,由硬件调度器对辅核进行调度管理,减轻主核调度和管理辅核任务的负担,消除了未来可能的性能瓶颈;其次,在调度器上提供了基于动态优先级的调度策略,避免了低优先级任务饿死的可能;再次,通过硬件调度器对操作系统调度的辅助,有效的降低了软件系统对嵌入式异构多核体系的支持难度;最后,通过设计和使用硬件调度器,明显提高了辅助核任务的吞吐量。附图说明附图是本专利技术的流程图。具体实施方式本专利技术通过将辅核任务的执行分为上述的三个阶段,在任务的每个阶段,由硬件调度器辅助主核上运行的操作系统调度器对辅核任务进行对应的管理和调度。下面将就本专利技术的实现作详细介绍。1、一种硬件辅助的辅核任务动态优先级调度的实现方法,其特征在于:1)辅核任务的三个阶段:①辅核任务预处理阶段辅核任务预处理阶段由主核负责,主核上运行的需要辅核加速的进程在这个阶段将会创建一个辅核上运行的辅核任务来进行应用程序的加速,主要创建的是辅核任务的上下文,即包括辅核任务指令序列以及待处理的数据。主核上派生出辅核任务的进程也就是该辅核任务的控制进程,该线程在创建辅核任务之后将会挂起等待辅核任务的返回结果。-->②辅核任务运行阶段辅核任务运行阶段主要由硬件调度器和辅核共同进行,在这个阶段,由硬件调度器调度执行的辅核任务被分配到空闲的辅核上,并从系统主存载入在辅核任务预处理阶段所创建好的辅核任务上下文并启动辅核任务的执行。当任务执行完毕后,将执行结果数据写回内存空间。③辅核任务结果处理阶段在辅核任务结果处理阶段,由运行在主核的相应辅核任务的控制进程进行,主要对辅核任务运行阶段在辅核上运行的结果进行处理,具体处理过程视将实际应用程序的要求而定,例如将辅核任务预处理阶段集中准备由辅核进行处理的数据的返回结果重新分派回原存储空间等。2)硬件调度模块辅助的辅核任务调度过程:辅核任务的调度过程如下:①在辅核任务预处理阶段,当主核上的控制进程完成辅核任务的创建之后,将调用操作系统系统调用接口,通过硬件调度器所提供的接口将新创建的辅核任务传送给硬件调度器。如果硬件调度器的就绪任务队列已满,则该任务挂起,等待下次硬件调度器产生任务完成中断信号之后再重新尝试发送。②辅核硬件调度器的调度单元根据收到的辅核任务的优先级将符合任务任务组织为三个先进先出的就绪任务队列。同时硬件调度器将轮询辅核的状态,一旦有辅核空闲,调度器将从三个队列中选择辅核任务,并分配到空闲状态的辅核上执行。具体任务队列本文档来自技高网
...

【技术保护点】
一种硬件辅助的辅核任务动态优先级调度的实现方法,其特征在于: 1)辅核任务的三个阶段: 辅核是为特定应用领域的计算设计的,支持不同于主核的指令集;从操作系统的角度来看,辅核不能进行资源管理,不能运行任何操作系统内核态的代码,不具 备完全独立运行进程的能力;因此辅核任务对执行可以分为三个阶段: ①辅核任务预处理阶段:这一阶段由主核负责,创建辅核上运行的辅核任务上下文,包括辅核任务指令以及待处理数据;主核上派生辅核任务的进程也就是该辅核任务的控制进程; ②辅 核任务运行阶段:在该阶段,辅核从主存载入在第一阶段初始化好的辅核任务上下文并启动辅核任务的执行;当任务执行完毕后,将执行结果数据写回内存空间; ③辅核任务结果处理阶段:这个阶段运行在主核上,主要处理第二阶段在辅核上运行的结果,将辅核任 务结果整理写回到目标地址; 2)硬件调度模块辅助的辅核任务调度过程: 辅核任务的调度过程如下: ①主核上运行的操作系统调用硬件调度器接口,将主核上进程派生的辅核任务传送给硬件调度器; ②辅核硬件调度器的调度单元,将就 绪任务根据优先级组织为三个先进先出硬件队列,然后依次从队列中选取任务,并分配到空闲状态的辅核上执行; ③当辅核任务执行完毕,硬件调度单元产生中断通知主核上的控制进程进行后期的数据处理;。...

【技术特征摘要】
1、一种硬件辅助的辅核任务动态优先级调度的实现方法,其特征在于:1)辅核任务的三个阶段:辅核是为特定应用领域的计算设计的,支持不同于主核的指令集;从操作系统的角度来看,辅核不能进行资源管理,不能运行任何操作系统内核态的代码,不具备完全独立运行进程的能力;因此辅核任务对执行可以分为三个阶段:①辅核任务预处理阶段:这一阶段由主核负责,创建辅核上运行的辅核任务上下文,包括辅核任务指令以及待处理数据;主核上派生辅核任务的进程也就是该辅核任务的控制进程;②辅核任务运行阶段:在该阶段,辅核从主存载入在第一阶段初始化好的辅核任务上下文并启动辅核任务的执行;当任务执行完毕后,将执行结果数据写回内存空间;③辅核任务结果处理阶段:这个阶段运行在主核上,主要处理第二阶段在辅核上运行的结果,将辅核任务结果整理写回到目标地址;2)硬件调度模块辅助的辅核任务调度过程:辅核任务的调度过程如下:①主核上运行的操作系统调用硬件调度器接口,将主核上进...

【专利技术属性】
技术研发人员:陈天洲严力科冯德贵王罡陈度
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

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

1