CN101414270A - 硬件辅助的辅核任务动态优先级调度的实现方法 - Google Patents
硬件辅助的辅核任务动态优先级调度的实现方法 Download PDFInfo
- Publication number
- CN101414270A CN101414270A CNA200810162902XA CN200810162902A CN101414270A CN 101414270 A CN101414270 A CN 101414270A CN A200810162902X A CNA200810162902X A CN A200810162902XA CN 200810162902 A CN200810162902 A CN 200810162902A CN 101414270 A CN101414270 A CN 101414270A
- Authority
- CN
- China
- Prior art keywords
- task
- nuclear
- auxilliary
- priority
- hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种硬件辅助的辅核任务动态优先级调度的实现方法。是通过为基于主核加辅核体系的操作系统调度提供体系结构上的支持,辅助操作系统调度器对辅核任务的调度,硬件调度器维护三个就绪任务的硬件队列,根据任务优先级将到达任务插入到相应的就绪任务队列中,并通过周期性的优先级提升来避免辅核任务饿死的情况发生。这一方法通过体系结构支持有效的降低了软件系统对嵌入式异构多核体系的支持难度,并减轻主核调度和管理辅核任务的负担,明显提高了辅助核任务的吞吐量。特别是在辅核种类多、数量大、调度算法复杂的情况下,更具有明显的效果。
Description
技术领域
本发明涉及计算机体系结构设计领域,涉及操作系统设计领域,尤其涉及一种硬件辅助的辅核任务动态优先级调度的实现方法。
背景技术
随着半导体以及相应的集成电路制造工艺的迅猛发展,集成在芯片上的晶体管的密度不断的提高,使得越来越多的元件都可以集成到一块单一的芯片上。在单个芯片上把各种不同用途的功能模块整合在一起,不但可以提升模块间的通信速度,提升系统性能,而且还可以减少芯片的面积,从而也降低芯片的能耗。
为了满足各种各样的应用需求,各种针对特定应用而设计的异构多核系统变得越来越流行。在这种体系中,除了针对特定应用优化设计的处理核外,还有一个负责操作系统运行的通用处理核。在这种异构多核的体系架构中,通常把运行操作系统的通用的处理核称为主处理核或者主核。而把针对特定应用设计的处理核称为辅助处理核或者辅核,如DSP,还有针对JPEG,MPEG2,MPEG-4以及HDTV应用设计的处理核都属于这一类。这些辅助处理核往往只能运行针对特定应用设计的专用指令集,所以运行在辅助核上的辅助核任务需要主核的管理和控制。
在支持异构多核体系的软件系统中,操作系统运行在主核上,而辅助核则通过各种各样的方式抽象成软件接口。例如以驱动程序,系统调用,或者虚拟文件系统等方式抽象出软件接口供应用程序直接使用。在驱动程序支持辅助核的方式中,从操作系统的角度来看,辅助核是一个拥有强大计算能力的设备,应用程序发挥辅助核强大计算能力的方式就是使用辅助核驱动程序。采用系统调用方式支持辅助核的方式中,支持辅助核的软件接口被包装成操作系统内核中的一组系统调用。而虚拟文件系统则是把辅助核的使用包装成一个虚拟文件系统,通过对文件系统的操作来实现对辅助核的操作。
但是,无论采用驱动程序还是虚拟文件系统的方式支持异构多核体系,都是把辅助核硬件抽象成相应的软件接口,在应用程序中通过使用这些软件接口对辅助核硬件进行直接的操作。这种方式用于测试辅助核的功能完整性以及应用在单任务的系统中是很合适的,实现方式和使用方式都很简单,但是,当有多个应用程序使用辅助核硬件的时候,由于这种软件直接操作硬件的方式,使得应用程序很难发现某个辅助处理核是否已经被其他程序所使用,就会发生辅助核资源使用的冲突。
因此,在支持主核和辅核这种体系的操作系统中,如何灵活而有效的调度管理应用程序任务在辅助核运行成了一个很大的问题。而且随着辅核种类和数量的增加,如果仍然由主核上运行的调度器来对众多的辅核种类和辅核任务进行调度,调度器可能成为系统性能的瓶颈。
发明内容
为了向基于主核和辅核体系的操作系统提供更好的支持,为了提供更加灵活有效的辅核管理性能,为了提高辅核任务调度的吞吐量,提高辅核执行的效率,本发明的目的在于提供一种硬件辅助的辅核任务动态优先级调度的实现方法。
本发明解决技术问题所采用的技术方案是:
一种硬件辅助的辅核任务动态优先级调度的实现方法:
1)辅核任务的三个阶段:
辅核是为特定应用领域的计算设计的,支持不同于主核的指令集;从操作系统的角度来看,辅核不能进行资源管理,不能运行任何操作系统内核态的代码,不具备完全独立运行进程的能力;因此辅核任务对执行可以分为三个阶段:
①辅核任务预处理阶段:这一阶段由主核负责,创建辅核上运行的辅核任务上下文,包括辅核任务指令以及待处理数据;主核上派生辅核任务的进程也就是该辅核任务的控制进程;
②辅核任务运行阶段:在该阶段,辅核从主存载入在第一阶段初始化好的辅核任务上下文并启动辅核任务的执行;当任务执行完毕后,将执行结果数据写回内存空间;
③辅核任务结果处理阶段:这个阶段运行在主核上,主要处理第二阶段在辅核上运行的结果,将辅核任务结果整理写回到目标地址;
2)硬件调度模块辅助的辅核任务调度过程:
辅核任务的调度过程如下:
①主核上运行的操作系统调用硬件调度器接口,将主核上进程派生的辅核任务传送给硬件调度器;
②辅核硬件调度器的调度单元,将就绪任务根据优先级组织为三个先进先出硬件队列,然后依次从队列中选取任务,并分配到空闲状态的辅核上执行;
③当辅核任务执行完毕,硬件调度单元产生中断通知主核上的控制进程进行后期的数据处理;
所述的将就绪任务根据优先级组织为三个先进先出硬件队列,具体组织方式如下:
①硬件调度器根据优先级高低维护了3个就绪任务队列,分别为:高优先级任务队列、普通优先级任务队列和低优先级任务队列;
②辅核任务根据优先级分别被分配到对应的3个任务队列中;在各任务队列之内不再区分优先级高低,按照先到先服务的方法调度任务;
③硬件调度器每间隔一段时间把对任务队列中的任务第一个任务的优先级进行提升,也就是说把普通优先级任务队列中的第一个任务提升为高优先级任务,把低优先级任务队列中的第一个任务提升为普通优先级任务。
本发明具有的有益效果是:
首先,设计了硬件调度器辅助辅核任务的调度,由硬件调度器对辅核进行调度管理,减轻主核调度和管理辅核任务的负担,消除了未来可能的性能瓶颈;其次,在调度器上提供了基于动态优先级的调度策略,避免了低优先级任务饿死的可能;再次,通过硬件调度器对操作系统调度的辅助,有效的降低了软件系统对嵌入式异构多核体系的支持难度;最后,通过设计和使用硬件调度器,明显提高了辅助核任务的吞吐量。
附图说明
附图是本发明的流程图。
具体实施方式
本发明通过将辅核任务的执行分为上述的三个阶段,在任务的每个阶段,由硬件调度器辅助主核上运行的操作系统调度器对辅核任务进行对应的管理和调度。下面将就本发明的实现作详细介绍。
1、一种硬件辅助的辅核任务动态优先级调度的实现方法,其特征在于:
1)辅核任务的三个阶段:
①辅核任务预处理阶段
辅核任务预处理阶段由主核负责,主核上运行的需要辅核加速的进程在这个阶段将会创建一个辅核上运行的辅核任务来进行应用程序的加速,主要创建的是辅核任务的上下文,即包括辅核任务指令序列以及待处理的数据。主核上派生出辅核任务的进程也就是该辅核任务的控制进程,该线程在创建辅核任务之后将会挂起等待辅核任务的返回结果。
②辅核任务运行阶段
辅核任务运行阶段主要由硬件调度器和辅核共同进行,在这个阶段,由硬件调度器调度执行的辅核任务被分配到空闲的辅核上,并从系统主存载入在辅核任务预处理阶段所创建好的辅核任务上下文并启动辅核任务的执行。当任务执行完毕后,将执行结果数据写回内存空间。
③辅核任务结果处理阶段
在辅核任务结果处理阶段,由运行在主核的相应辅核任务的控制进程进行,主要对辅核任务运行阶段在辅核上运行的结果进行处理,具体处理过程视将实际应用程序的要求而定,例如将辅核任务预处理阶段集中准备由辅核进行处理的数据的返回结果重新分派回原存储空间等。
2)硬件调度模块辅助的辅核任务调度过程:
辅核任务的调度过程如下:
①在辅核任务预处理阶段,当主核上的控制进程完成辅核任务的创建之后,将调用操作系统系统调用接口,通过硬件调度器所提供的接口将新创建的辅核任务传送给硬件调度器。如果硬件调度器的就绪任务队列已满,则该任务挂起,等待下次硬件调度器产生任务完成中断信号之后再重新尝试发送。
②辅核硬件调度器的调度单元根据收到的辅核任务的优先级将符合任务任务组织为三个先进先出的就绪任务队列。同时硬件调度器将轮询辅核的状态,一旦有辅核空闲,调度器将从三个队列中选择辅核任务,并分配到空闲状态的辅核上执行。具体任务队列组织方法和辅核任务选择方法如3)所述。
③当辅核任务执行完毕,硬件调度单元产生中断信号,通知主核上的辅核任务控制进程进行后期的数据处理。
所述的将就绪任务根据优先级组织为三个先进先出硬件队列,多个辅核任务的执行顺序即辅核任务的调度策略通过对硬件调度器中的就绪任务队列进行不同的组织方式来设定,三个先进先出硬件队列的具体组织方式如下::
①硬件调度器根据优先级高低维护了3个就绪任务队列,分别为:高优先级任务队列、普通优先级任务队列和低优先级任务队列。每个任务队列为一个20个入口的先进先出队列,各队列是否已满的状态寄存器被映射到系统主存,主核上的进程可以通过操作系统调用读取各任务队列是否已满的状态。
②辅核任务根据优先级分别被分配到对应的3个任务队列中;辅核任务的优先级为0到70的一个数值,硬件调度器将0~20优先级的辅核任务插入到高优先级任务队列,将21~50优先级的辅核任务插入到普通优先级任务队列,51~70优先级的辅核任务插入到低优先级任务队列。在各任务队列之内不再区分优先级高低,按照先到先服务的方法调度任务。
当硬件调度器轮询辅核发现空闲的辅核之后,硬件调度器的调度模块从队列中选取任务进行执行:首先从高优先级任务队列按照先到先服务原则选择先到的辅核任务进行执行,当高优先级任务执行完毕后再选取普通优先级任务队列中的辅核任务,最后选取低优先级任务队列中的辅核任务。
③为了防止低优先任务饿死的情况发生,每完成20个辅核任务,硬件调度器将对任务队列中的第一个任务的优先级进行优先级提升,也就是把普通优先级任务队列中的第一个任务提升为高优先级任务,把低优先级任务队列中的第一个任务提升为普通优先级任务。
Claims (2)
1、一种硬件辅助的辅核任务动态优先级调度的实现方法,其特征在于:
1)辅核任务的三个阶段:
辅核是为特定应用领域的计算设计的,支持不同于主核的指令集;从操作系统的角度来看,辅核不能进行资源管理,不能运行任何操作系统内核态的代码,不具备完全独立运行进程的能力;因此辅核任务对执行可以分为三个阶段:
①辅核任务预处理阶段:这一阶段由主核负责,创建辅核上运行的辅核任务上下文,包括辅核任务指令以及待处理数据;主核上派生辅核任务的进程也就是该辅核任务的控制进程;
②辅核任务运行阶段:在该阶段,辅核从主存载入在第一阶段初始化好的辅核任务上下文并启动辅核任务的执行;当任务执行完毕后,将执行结果数据写回内存空间;
③辅核任务结果处理阶段:这个阶段运行在主核上,主要处理第二阶段在辅核上运行的结果,将辅核任务结果整理写回到目标地址;
2)硬件调度模块辅助的辅核任务调度过程:
辅核任务的调度过程如下:
①主核上运行的操作系统调用硬件调度器接口,将主核上进程派生的辅核任务传送给硬件调度器;
②辅核硬件调度器的调度单元,将就绪任务根据优先级组织为三个先进先出硬件队列,然后依次从队列中选取任务,并分配到空闲状态的辅核上执行;
③当辅核任务执行完毕,硬件调度单元产生中断通知主核上的控制进程进行后期的数据处理;
2、根据权利要求1所述的一种硬件辅助的辅核任务动态优先级调度的实现方法,其特征在于:所述的将就绪任务根据优先级组织为三个先进先出硬件队列,具体组织方式如下:
①硬件调度器根据优先级高低维护了3个就绪任务队列,分别为:高优先级任务队列、普通优先级任务队列和低优先级任务队列;
②辅核任务根据优先级分别被分配到对应的3个任务队列中;在各任务队列之内不再区分优先级高低,按照先到先服务的方法调度任务;
③硬件调度器每间隔一段时间把对任务队列中的任务第一个任务的优先级进行提升,也就是说把普通优先级任务队列中的第一个任务提升为高优先级任务,把低优先级任务队列中的第一个任务提升为普通优先级任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810162902XA CN101414270A (zh) | 2008-12-04 | 2008-12-04 | 硬件辅助的辅核任务动态优先级调度的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810162902XA CN101414270A (zh) | 2008-12-04 | 2008-12-04 | 硬件辅助的辅核任务动态优先级调度的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101414270A true CN101414270A (zh) | 2009-04-22 |
Family
ID=40594808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200810162902XA Pending CN101414270A (zh) | 2008-12-04 | 2008-12-04 | 硬件辅助的辅核任务动态优先级调度的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101414270A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944049A (zh) * | 2010-09-16 | 2011-01-12 | 四川大学 | 一种基于放置代价的可重构系统软/硬件任务统一调度算法 |
CN102750132A (zh) * | 2012-06-13 | 2012-10-24 | 深圳中微电科技有限公司 | 多线程虚拟流水线处理器的线程控制和调用方法及其处理器 |
CN104156663A (zh) * | 2014-07-31 | 2014-11-19 | 上海华为技术有限公司 | 一种硬件虚拟端口及处理器系统 |
CN104980314A (zh) * | 2015-06-10 | 2015-10-14 | 上海市地震应急救援保障中心 | 一种地震行业集群设备主动式监控系统及轮询机制 |
CN105808328A (zh) * | 2014-12-31 | 2016-07-27 | 杭州华为数字技术有限公司 | 任务调度的方法、装置和系统 |
CN103729480B (zh) * | 2014-01-29 | 2017-02-01 | 重庆邮电大学 | 一种多核实时操作系统多个就绪任务快速查找及调度方法 |
CN106484502A (zh) * | 2015-08-27 | 2017-03-08 | 中兴通讯股份有限公司 | 一种调度任务的方法、装置及系统 |
CN108040066A (zh) * | 2017-12-25 | 2018-05-15 | 武汉蓝星软件技术有限公司 | 一种基于网络的数据交互安全加密系统 |
CN108762896A (zh) * | 2018-03-26 | 2018-11-06 | 福建星瑞格软件有限公司 | 一种基于Hadoop集群任务调度方法及计算机设备 |
CN109189429A (zh) * | 2018-09-11 | 2019-01-11 | 武汉正维电子技术有限公司 | 双核处理器amp模式下cpu0更新cpu1程序的方法 |
WO2019072200A1 (zh) * | 2017-10-13 | 2019-04-18 | 华为技术有限公司 | 资源管理的方法及终端设备 |
CN114168352A (zh) * | 2021-12-30 | 2022-03-11 | 科东(广州)软件科技有限公司 | 任务的多核调度方法、装置、电子设备及存储介质 |
-
2008
- 2008-12-04 CN CNA200810162902XA patent/CN101414270A/zh active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944049B (zh) * | 2010-09-16 | 2014-04-02 | 四川大学 | 一种基于放置代价的可重构系统软/硬件任务统一调度方法 |
CN101944049A (zh) * | 2010-09-16 | 2011-01-12 | 四川大学 | 一种基于放置代价的可重构系统软/硬件任务统一调度算法 |
CN102750132A (zh) * | 2012-06-13 | 2012-10-24 | 深圳中微电科技有限公司 | 多线程虚拟流水线处理器的线程控制和调用方法及其处理器 |
CN102750132B (zh) * | 2012-06-13 | 2015-02-11 | 深圳中微电科技有限公司 | 多线程虚拟流水线处理器的线程控制和调用方法及其处理器 |
CN103729480B (zh) * | 2014-01-29 | 2017-02-01 | 重庆邮电大学 | 一种多核实时操作系统多个就绪任务快速查找及调度方法 |
CN104156663A (zh) * | 2014-07-31 | 2014-11-19 | 上海华为技术有限公司 | 一种硬件虚拟端口及处理器系统 |
CN104156663B (zh) * | 2014-07-31 | 2018-01-02 | 上海华为技术有限公司 | 一种硬件虚拟端口及处理器系统 |
CN105808328B (zh) * | 2014-12-31 | 2019-05-17 | 杭州华为数字技术有限公司 | 任务调度的方法、装置和系统 |
CN105808328A (zh) * | 2014-12-31 | 2016-07-27 | 杭州华为数字技术有限公司 | 任务调度的方法、装置和系统 |
CN104980314B (zh) * | 2015-06-10 | 2017-11-17 | 上海市地震应急救援保障中心 | 一种基于动态优先级队列的集群节点监控轮询机制 |
CN104980314A (zh) * | 2015-06-10 | 2015-10-14 | 上海市地震应急救援保障中心 | 一种地震行业集群设备主动式监控系统及轮询机制 |
CN106484502A (zh) * | 2015-08-27 | 2017-03-08 | 中兴通讯股份有限公司 | 一种调度任务的方法、装置及系统 |
CN106484502B (zh) * | 2015-08-27 | 2020-10-09 | 南京中兴软件有限责任公司 | 一种调度任务的方法、装置及系统 |
WO2019072200A1 (zh) * | 2017-10-13 | 2019-04-18 | 华为技术有限公司 | 资源管理的方法及终端设备 |
CN110879750A (zh) * | 2017-10-13 | 2020-03-13 | 华为技术有限公司 | 资源管理的方法及终端设备 |
US11693693B2 (en) | 2017-10-13 | 2023-07-04 | Huawei Technologies Co., Ltd. | Resource management based on ranking of importance of applications |
CN108040066A (zh) * | 2017-12-25 | 2018-05-15 | 武汉蓝星软件技术有限公司 | 一种基于网络的数据交互安全加密系统 |
CN108762896A (zh) * | 2018-03-26 | 2018-11-06 | 福建星瑞格软件有限公司 | 一种基于Hadoop集群任务调度方法及计算机设备 |
CN109189429A (zh) * | 2018-09-11 | 2019-01-11 | 武汉正维电子技术有限公司 | 双核处理器amp模式下cpu0更新cpu1程序的方法 |
CN114168352A (zh) * | 2021-12-30 | 2022-03-11 | 科东(广州)软件科技有限公司 | 任务的多核调度方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101414270A (zh) | 硬件辅助的辅核任务动态优先级调度的实现方法 | |
JP6381734B2 (ja) | グラフィックス計算プロセススケジューリング | |
US20210073169A1 (en) | On-chip heterogeneous ai processor | |
US11782870B2 (en) | Configurable heterogeneous AI processor with distributed task queues allowing parallel task execution | |
CN103999051B (zh) | 用于着色器核心中着色器资源分配的策略 | |
JP6018021B2 (ja) | マルチコアアーキテクチャにおけるリソース管理 | |
US9858115B2 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium | |
JP6228459B2 (ja) | システムコール要求の通信の最適化 | |
JP6373586B2 (ja) | 異種処理デバイスの動的ワークパーティション | |
CN101604264B (zh) | 超级计算机的任务调度方法及系统 | |
JP2013546097A (ja) | グラフィックス処理計算リソースのアクセシビリティ | |
KR101786767B1 (ko) | 유저 모드로부터 그래픽 처리 디스패치 | |
WO2006059543A1 (ja) | スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム | |
CN101963922B (zh) | 任务处理方法和装置 | |
CN102375761A (zh) | 业务管理方法和装置、以及设备 | |
CN104094235A (zh) | 多线程计算 | |
CN104102548A (zh) | 任务资源调度处理方法和系统 | |
CN100468342C (zh) | 基于硬件资源的多核多中央处理器的执行绪分配方法 | |
JP5805783B2 (ja) | コンピュータシステムインタラプト処理 | |
JP2014503898A (ja) | 処理装置の同期動作のための方法およびシステム | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
US20240184624A1 (en) | Method and system for sequencing artificial intelligence (ai) jobs for execution at ai accelerators | |
CN115098430B (zh) | 一种基于amp架构的核间通信优先级调度方法 | |
US11915041B1 (en) | Method and system for sequencing artificial intelligence (AI) jobs for execution at AI accelerators | |
CN117112169A (zh) | 一种面向异构多核系统的资源管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090422 |