CN101414271A - 多核平台下基于硬件计时器与任务队列的调度方法 - Google Patents
多核平台下基于硬件计时器与任务队列的调度方法 Download PDFInfo
- Publication number
- CN101414271A CN101414271A CNA2008101629049A CN200810162904A CN101414271A CN 101414271 A CN101414271 A CN 101414271A CN A2008101629049 A CNA2008101629049 A CN A2008101629049A CN 200810162904 A CN200810162904 A CN 200810162904A CN 101414271 A CN101414271 A CN 101414271A
- Authority
- CN
- China
- Prior art keywords
- task
- hardware
- cpu
- timer
- scheduling
- 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
Abstract
本发明公开了一种多核平台下基于硬件计时器与任务队列的调度方法。是通过采用在硬件手段,添加多个硬件任务队列与计时器,通过计时器到时触发任务分发的方法,将任务切换的控制从通用CPU中分离出来,从而解决多核环境下的任务调度问题。本发明减轻通用CPU核的负担:调度过程将不再需要通用CPU核的帮助,令通用CPU可以专注与常规任务的运行;加快调度速度,提高系统并行性:利用硬件的计算速度以及并行能力,保证系统的性能极大的提高;任务切换预处理,加快任务切换速度,减小任务切换开销:通用CPU核的运行状态是透明的,系统知道大部分情况下任务切换发生的时间,从而可以预先为调度做准备。
Description
技术领域
本发明涉及多核平台下任务调度模式设计领域,尤其是涉及一种多核平台下基于硬件计时器与任务队列的调度方法。
背景技术
20世纪人类的杰出成果之一计算机技术把人类社会带入了信息化时代。随着计算需求的不断增大以及CPU频率瓶颈出现,单芯片多处理器(Multi-Core)技术成为了计算机领域的新的研究热点。同时也产生了一个新的研究领域—多核平台下任务调度方法。
多核平台从原有的单纯提高单处理器频率以提高性能,转变到以增加处理单元的数量,提高平行能力的全新角度。其尚且处于新兴发展阶段,有着巨大发展潜力与市场前景。目前全球已有多款多核处理器,越来越多的厂商已经将处理器发展的重点转移到多核领域,无论是商用大型机,民用桌面平台以及嵌入式领域,多核处理器已经占据了市场很大的份额。
由于多核任务平台下,无论从任务的多样性以及运行状态的丰富性,都比原来单处理器平台下更加复杂,传统的基于单核平台的任务调度方法即使经过修改,应用于多核平台,但其显然已经不能充分发挥出多核平台的优势所在,因此,如何设计一个适用于多核平台的任务调度方法,已经成为研究的热点。
目前市场上,基于多核平台的调度方法中,通常经过OS的帮助,采用各个CPU核主动申请任务,主动发起任务切换等方法,我们称之为CPU核的主动模式。这种模式下,CPU核必须要分出一定的时间来运行调度任务。同时CPU核之间的状态是不可知的,调度任务由操作系统完成。
发明内容
本发明的目的在于提供一种多核平台下基于硬件计时器与任务队列的调度方法。
本发明解决技术问题所采用的技术方案是:
一种多核平台下基于硬件计时器与任务队列的调度方法:
1)多条硬件任务队列:
每条硬件任务队列对应一个通用CPU核,任务队列记录了任务号以及下一轮调度时任务的可运行时间片长度,队列采用FIFO策略;队首的任务将被最先发射到对应于该硬件任务队列的CPU核上,每个硬件任务队列包含了一个计时器;
2)初始任务分配:
根据任务优先级TaskPriority,上一轮运行该任务的CPU核号Nolast-cpu以及每个CPU的忙碌程度Notask*Tasktime进行任务调度,调度的原则是:根据优先级,按照优先级高低的顺序调度任务。某一个任务的调度方法为,分别计算各个CPU核调度值,该值是由CPU核的忙碌程度减去该任务上一次是否在该CPU核上运行的权值得到,权值的计算方法是:如果该任务上一次运行在该CPU核,则权值为1,否则权值为零,计算结束,选择调度值最小的CPU核,将任务放入对应该CPU核的硬件任务队列中;
3)由计时器触发的任务发射:
当任务从硬件任务队列发射到对应CPU核的同时,该硬件队列设置其计时器的值,该值为任务该轮执行的时间片长度。任务开始运行时,启动计时器,当计时器到时,代表该任务的本轮运行时间已经结束,计时器触发CPU核进行任务切换,位于硬件任务队列列首的任务将被发射到CPU核上运行,新任务以中断的形式发射;
4)当前运行任务发生阻塞,计时器即刻清零,任务切换发生:
当前运行任务由于需要某些资源或计算结构,需要挂起等待,则发射消息给硬件任务队列,其对应的计时器即刻清零,任务切换发生;
5)任务切换前的预处理过程:
当计时器剩余时钟周期小于等于5时,下一个任务所需的内容被提前放入cache,以为任务切换做准备,达到加快任务切换速度,减小任务切换开销的目的。
本发明与背景技术相比,本发明具有的有益的效果是:
该设计是一种CPU核运行与被动模式的调度方法,利用外加调度硬件的手段,将任务分配给对应CPU核,从而将调度任务从通用CPU核中分离出来,通用CPU核只需要响应调度硬件发出的任务,进行任务切换。
(1)减轻通用CPU核的负担:调度过程将不再需要通用CPU核的帮助,令通用CPU可以专注与常规任务的运行。
(2)加快调度速度,提高系统并行性:利用硬件的计算速度以及并行能力,保证系统的性能极大的提高。
(3)任务切换预处理,加快任务切换速度,减小任务切换开销:通用CPU核的运行状态是透明的,系统知道大部分情况下任务切换发生的时间,从而可以预先为调度做准备。
附图说明
附图是本发明的流程图。
具体实施方法
方法中涉及到相关的符号解释:
TaskPriority:任务优先级。
Nolast-cpu:任务上次一运行在的CPU核编号。
Tasktime:队列中任务本轮调度可运行时间。
Notask:CPU核当前队列任务数。
G(x):前次运行权值计算函数,如果运行G函数的CPU核与X所标的核号相同,则G函数为1,否则为0。
多核平台下基于硬件计时器与任务队列的调度方法,其运行模式是通过外部硬件帮助调度任务,并且通过中断的形式,将任务发射给对应CPU,如图1所示,所需添加的硬件部分,包括硬件调度模块,其中包含了对应各个CPU核的硬件任务队列以及计时器,如附图所示,其的运行关键步骤如下:
1)多条硬件任务队列:
每条硬件任务队列对应一个通用CPU核,任务队列记录了任务号以及下一轮调度时任务的可运行时间片长度,队列采用FIFO策略;队首的任务将被最先发射到对应于该硬件任务队列的CPU核上。每个硬件任务队列包含了一个计时器;
2)初始任务分配:
根据任务优先级TaskPriority,上一轮运行该任务的CPU核号Nolast-cpu以及每个CPU的忙碌程度Notask*Tasktime进行任务调度,调度的原则是:根据优先级,按照优先级高低的顺序调度任务。某一个任务的调度方法为,分别计算各个CPU核调度值,该值是由CPU核的忙碌程度减去该任务上一次是否在该CPU核上运行的前次运行权值得到,权值的计算方法是:如果该任务上一次运行在该CPU核,则权值为1,否则权值为零,计算结束,选择调度值最小的CPU核,将任务放入对应该CPU核的硬件任务队列中。具体实施时,根据各个任务的优先级TaskPriority,选取最高优先级的任务优先调度,通过计算各个核的调度值=Notask*Tasktime-G(Nolast-cpu),该值的意义是表现各个CPU核当前的忙碌程度,以及考虑当前被调度的任务如果被调度到上一次运行CPU核时的奖励G(Nolast-cpu)。选择CPU核过程完成后,该任务就被放入对应核的硬件任务队列中,等待发射。这一过程,由于是硬件完成,速度相对软件手段更快,同时调度过程可以独立与CPU核运行,提高了系统的并行度。
3)由计时器触发的任务发射:
当任务从硬件任务队列发射到对应CPU核的同时,该硬件队列设置其计时器的值,该值为任务该轮可执行的时间片长度,单位为时钟周期数。任务开始运行时,启动计时器,当计时器到时,代表该任务的本轮运行时间已经结束,计时器触发CPU核进行任务切换,位于硬件任务队列列首的任务将被发射到CPU核上运行,新任务以中断的形式发射。
4)当前运行任务发生阻塞,计时器即刻清零,任务切换发生:
当前运行任务由于需要某些资源或计算结构,需要挂起等待,则发射消息给硬件任务队列,其对应的计时器即刻清零,任务切换发生;当前运行任务由于外部某一条件未达成,例如等待某一系统资源,而需要挂起,则发送消息给对应CPU核的硬件任务队列,相应计时器立刻清零,任务切换即刻发生。
5)任务切换前的预处理过程:
当计时器剩余时钟周期小于等于5时,下一个任务所需的内容可以被提前放入cache,以为任务切换做准备,达到加快任务切换速度,减小任务切换开销的目的。任务预处理过程,提前将接下来要运行的任务所需的内容提前装载入内存与cache中,可以让任务切换的速度加快,同时使系统在进行任务切换的开销减小。通用CPU核在运行过程中,只有当接到计时器发出的任务中断消息,或任务自身要求,才会发生任务切换,而下一个运行的任务,是提前放入硬件队列中的,因此也加快了任务从调度直到任务切换的速度。
Claims (1)
1.一种多核平台下基于硬件计时器与任务队列的调度方法,其特征在于:
1)多条硬件任务队列:
每条硬件任务队列对应一个通用CPU核,任务队列记录了任务号以及下一轮调度时任务的可运行时间片长度,队列采用FIFO策略;队首的任务将被最先发射到对应于该硬件任务队列的CPU核上,每个硬件任务队列包含了一个计时器;
2)初始任务分配:
根据任务优先级TaskPriority,上一轮运行该任务的CPU核号Nolast-cpu以及每个CPU的忙碌程度Notask*Tasktime进行任务调度,调度的原则是:根据优先级,按照优先级高低的顺序调度任务。某一个任务的调度方法为,分别计算各个CPU核调度值,该值是由CPU核的忙碌程度减去该任务上一次是否在该CPU核上运行的权值得到,权值的计算方法是:如果该任务上一次运行在该CPU核,则权值为1,否则权值为零,计算结束,选择调度值最小的CPU核,将任务放入对应该CPU核的硬件任务队列中;
3)由计时器触发的任务发射:
当任务从硬件任务队列发射到对应CPU核的同时,该硬件队列设置其计时器的值,该值为任务该轮执行的时间片长度。任务开始运行时,启动计时器,当计时器到时,代表该任务的本轮运行时间已经结束,计时器触发CPU核进行任务切换,位于硬件任务队列列首的任务将被发射到CPU核上运行,新任务以中断的形式发射;
4)当前运行任务发生阻塞,计时器即刻清零,任务切换发生:
当前运行任务由于需要某些资源或计算结构,需要挂起等待,则发射消息给硬件任务队列,其对应的计时器即刻清零,任务切换发生;
5)任务切换前的预处理过程:
当计时器剩余时钟周期小于等于5时,下一个任务所需的内容被提前放入cache,以为任务切换做准备,达到加快任务切换速度,减小任务切换开销的目的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101629049A CN101414271A (zh) | 2008-12-04 | 2008-12-04 | 多核平台下基于硬件计时器与任务队列的调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101629049A CN101414271A (zh) | 2008-12-04 | 2008-12-04 | 多核平台下基于硬件计时器与任务队列的调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101414271A true CN101414271A (zh) | 2009-04-22 |
Family
ID=40594809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101629049A Pending CN101414271A (zh) | 2008-12-04 | 2008-12-04 | 多核平台下基于硬件计时器与任务队列的调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101414271A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968750A (zh) * | 2010-10-15 | 2011-02-09 | 珠海举天软件科技有限公司 | 计算机系统及其工作方法 |
CN102325255A (zh) * | 2011-09-09 | 2012-01-18 | 深圳市融创天下科技股份有限公司 | 一种多核心cpu视频转码调度方法及系统 |
CN102955555A (zh) * | 2011-08-19 | 2013-03-06 | 苏州简约纳电子有限公司 | 一种多线程处理方法和装置 |
CN103197959A (zh) * | 2013-04-08 | 2013-07-10 | 合肥联宝信息技术有限公司 | 一种多核cpu的切换方法 |
CN101964004B (zh) * | 2009-07-24 | 2013-08-21 | 复旦大学 | 用于集成电路设计的多核并行最小代价流方法及装置 |
CN103500123A (zh) * | 2013-10-12 | 2014-01-08 | 浙江大学 | 异构环境中并行计算调度方法 |
CN104268018A (zh) * | 2014-09-22 | 2015-01-07 | 浪潮(北京)电子信息产业有限公司 | 一种Hadoop集群中的作业调度方法和作业调度器 |
US8954980B2 (en) | 2011-11-11 | 2015-02-10 | Qualcomm Incorporated | Conserving power through work load estimation for a portable computing device using scheduled resource set transitions |
CN104821924A (zh) * | 2014-01-30 | 2015-08-05 | 西门子公司 | 一种网络数据包处理方法、装置和网络处理设备 |
US9104499B2 (en) | 2010-12-21 | 2015-08-11 | Qualcomm Incorporated | System for minimizing resource latency between processor application states in a portable computing device by scheduling resource state set transitions |
US9285856B2 (en) | 2010-12-21 | 2016-03-15 | Qualcomm Incorporated | Method and system for rapid entry into and for rapid exiting from sleep states for processors of a portable computing device |
CN103729480B (zh) * | 2014-01-29 | 2017-02-01 | 重庆邮电大学 | 一种多核实时操作系统多个就绪任务快速查找及调度方法 |
CN106484502A (zh) * | 2015-08-27 | 2017-03-08 | 中兴通讯股份有限公司 | 一种调度任务的方法、装置及系统 |
CN109814985A (zh) * | 2017-11-20 | 2019-05-28 | 杭州华为数字技术有限公司 | 一种任务调度方法及调度器、计算设备、系统 |
CN110941483A (zh) * | 2019-10-23 | 2020-03-31 | 创达特(苏州)科技有限责任公司 | 一种队列处理方法、装置及设备 |
-
2008
- 2008-12-04 CN CNA2008101629049A patent/CN101414271A/zh active Pending
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964004B (zh) * | 2009-07-24 | 2013-08-21 | 复旦大学 | 用于集成电路设计的多核并行最小代价流方法及装置 |
CN101968750B (zh) * | 2010-10-15 | 2012-12-26 | 珠海举天软件科技有限公司 | 计算机系统及其工作方法 |
CN101968750A (zh) * | 2010-10-15 | 2011-02-09 | 珠海举天软件科技有限公司 | 计算机系统及其工作方法 |
US9104499B2 (en) | 2010-12-21 | 2015-08-11 | Qualcomm Incorporated | System for minimizing resource latency between processor application states in a portable computing device by scheduling resource state set transitions |
US9285856B2 (en) | 2010-12-21 | 2016-03-15 | Qualcomm Incorporated | Method and system for rapid entry into and for rapid exiting from sleep states for processors of a portable computing device |
CN102955555A (zh) * | 2011-08-19 | 2013-03-06 | 苏州简约纳电子有限公司 | 一种多线程处理方法和装置 |
CN102325255A (zh) * | 2011-09-09 | 2012-01-18 | 深圳市融创天下科技股份有限公司 | 一种多核心cpu视频转码调度方法及系统 |
US8954980B2 (en) | 2011-11-11 | 2015-02-10 | Qualcomm Incorporated | Conserving power through work load estimation for a portable computing device using scheduled resource set transitions |
US8954983B2 (en) | 2011-11-11 | 2015-02-10 | Qualcomm Incorporated | Conserving power through work load estimation for a portable computing device using scheduled resource set transitions |
CN103197959A (zh) * | 2013-04-08 | 2013-07-10 | 合肥联宝信息技术有限公司 | 一种多核cpu的切换方法 |
CN103197959B (zh) * | 2013-04-08 | 2017-03-08 | 合肥联宝信息技术有限公司 | 一种多核cpu的切换方法 |
CN103500123A (zh) * | 2013-10-12 | 2014-01-08 | 浙江大学 | 异构环境中并行计算调度方法 |
CN103500123B (zh) * | 2013-10-12 | 2016-09-21 | 浙江大学 | 异构环境中并行计算调度方法 |
CN103729480B (zh) * | 2014-01-29 | 2017-02-01 | 重庆邮电大学 | 一种多核实时操作系统多个就绪任务快速查找及调度方法 |
CN104821924A (zh) * | 2014-01-30 | 2015-08-05 | 西门子公司 | 一种网络数据包处理方法、装置和网络处理设备 |
CN104821924B (zh) * | 2014-01-30 | 2018-11-27 | 西门子公司 | 一种网络数据包处理方法、装置和网络处理设备 |
CN104268018A (zh) * | 2014-09-22 | 2015-01-07 | 浪潮(北京)电子信息产业有限公司 | 一种Hadoop集群中的作业调度方法和作业调度器 |
CN104268018B (zh) * | 2014-09-22 | 2017-11-24 | 浪潮(北京)电子信息产业有限公司 | 一种Hadoop集群中的作业调度方法和作业调度器 |
CN106484502A (zh) * | 2015-08-27 | 2017-03-08 | 中兴通讯股份有限公司 | 一种调度任务的方法、装置及系统 |
CN106484502B (zh) * | 2015-08-27 | 2020-10-09 | 南京中兴软件有限责任公司 | 一种调度任务的方法、装置及系统 |
CN109814985A (zh) * | 2017-11-20 | 2019-05-28 | 杭州华为数字技术有限公司 | 一种任务调度方法及调度器、计算设备、系统 |
CN109814985B (zh) * | 2017-11-20 | 2021-07-16 | 华为技术有限公司 | 一种任务调度方法及调度器、计算设备、系统 |
CN110941483A (zh) * | 2019-10-23 | 2020-03-31 | 创达特(苏州)科技有限责任公司 | 一种队列处理方法、装置及设备 |
CN110941483B (zh) * | 2019-10-23 | 2023-02-03 | 创耀(苏州)通信科技股份有限公司 | 一种队列处理方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101414271A (zh) | 多核平台下基于硬件计时器与任务队列的调度方法 | |
CN101894047B (zh) | 一种基于内核虚拟机调度策略的实现方法 | |
Hamann et al. | Waters industrial challenge 2017 | |
Kato et al. | Semi-partitioned scheduling of sporadic task systems on multiprocessors | |
CN103064657B (zh) | 单个处理器上实现多应用并行处理的方法及装置 | |
US20200371835A1 (en) | Method And Apparatus For Scheduling Matrix Operations In Digital Processing Systems | |
US9740498B2 (en) | Opportunistic multi-thread method and processor | |
CN111209094A (zh) | 请求处理方法、装置、电子设备及计算机可读存储介质 | |
CN103617071A (zh) | 一种资源独占及排它的提升虚拟机计算能力的方法及装置 | |
Casini et al. | Optimized partitioning and priority assignment of real-time applications on heterogeneous platforms with hardware acceleration | |
CN103262039A (zh) | 用于处理装置的同步操作的方法和系统 | |
Goswami et al. | Landrush: Rethinking in-situ analysis for gpgpu workflows | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
Lim et al. | ODMDEF: on-device multi-DNN execution framework utilizing adaptive layer-allocation on general purpose cores and accelerators | |
Alhussian et al. | An unfair semi-greedy real-time multiprocessor scheduling algorithm | |
Ma et al. | I/O throttling and coordination for MapReduce | |
Schmaus et al. | System Software for Resource Arbitration on Future Many-Architectures | |
Kato et al. | Scheduling aperiodic tasks using total bandwidth server on multiprocessors | |
CN109840137B (zh) | 一种跨核调度方法和装置 | |
Wada et al. | Fast interrupt handling scheme by using interrupt wake-up mechanism | |
CN116795503A (zh) | 任务调度方法、任务调度装置、图形处理器及电子设备 | |
CN102521045A (zh) | 非实时多任务调度内核实现方法 | |
Pang et al. | Efficient CUDA stream management for multi-DNN real-time inference on embedded GPUs | |
Yu et al. | A novel GPU resources management and scheduling system based on virtual machines | |
US20230367630A1 (en) | Stream multipleprocessor, gpu, and related method |
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 |