本发明专利技术公开了一种多核平台下基于硬件计时器与任务队列的调度方法。是通过采用在硬件手段,添加多个硬件任务队列与计时器,通过计时器到时触发任务分发的方法,将任务切换的控制从通用CPU中分离出来,从而解决多核环境下的任务调度问题。本发明专利技术减轻通用CPU核的负担:调度过程将不再需要通用CPU核的帮助,令通用CPU可以专注与常规任务的运行;加快调度速度,提高系统并行性:利用硬件的计算速度以及并行能力,保证系统的性能极大的提高;任务切换预处理,加快任务切换速度,减小任务切换开销:通用CPU核的运行状态是透明的,系统知道大部分情况下任务切换发生的时间,从而可以预先为调度做准备。
【技术实现步骤摘要】
本专利技术涉及多核平台下任务调度模式设计领域,尤其是涉及一种多核平台下基于硬件计时器与任务队列的调度方法。
技术介绍
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时,下一个任务所需的内容可以被提前放入cach本文档来自技高网...
【技术保护点】
一种多核平台下基于硬件计时器与任务队列的调度方法,其特征在于: 1)多条硬件任务队列: 每条硬件任务队列对应一个通用CPU核,任务队列记录了任务号以及下一轮调度时任务的可运行时间片长度,队列采用FIFO策略;队首的任务将被最先发 射到对应于该硬件任务队列的CPU核上,每个硬件任务队列包含了一个计时器; 2)初始任务分配: 根据任务优先级Task↓[Priority],上一轮运行该任务的CPU核号No↓[last-cpu]以及每个CPU的忙碌程度No↓[t ask]*Task↓[time]进行任务调度,调度的原则是:根据优先级,按照优先级高低的顺序调度任务。某一个任务的调度方法为,分别计算各个CPU核调度值,该值是由CPU核的忙碌程度减去该任务上一次是否在该CPU核上运行的权值得到,权值的计算方法是:如果该任务上一次运行在该CPU核,则权值为1,否则权值为零,计算结束,选择调度值最小的CPU核,将任务放入对应该CPU核的硬件任务队列中; 3)由计时器触发的任务发射: 当任务从硬件任务队列发射到对应CPU核的同时,该硬 件队列设置其计时器的值,该值为任务该轮执行的时间片长度。任务开始运行时,启动计时器,当计时器到时,代表该任务的本轮运行时间已经结束,计时器触发CPU核进行任务切换,位于硬件任务队列列首的任务将被发射到CPU核上运行,新任务以中断的形式发射; 4)当前运行任务发生阻塞,计时器即刻清零,任务切换发生: 当前运行任务由于需要某些资源或计算结构,需要挂起等待,则发射消息给硬件任务队列,其对应的计时器即刻清零,任务切换发生; 5)任务切换前的预处理过程: 当计时 器剩余时钟周期小于等于5时,下一个任务所需的内容被提前放入cache,以为任务切换做准备,达到加快任务切换速度,减小任务切换开销的目的。...
【技术特征摘要】
1.一种多核平台下基于硬件计时器与任务队列的调度方法,其特征在于:1)多条硬件任务队列:每条硬件任务队列对应一个通用CPU核,任务队列记录了任务号以及下一轮调度时任务的可运行时间片长度,队列采用FIFO策略;队首的任务将被最先发射到对应于该硬件任务队列的CPU核上,每个硬件任务队列包含了一个计时器;2)初始任务分配:根据任务优先级TaskPriority,上一轮运行该任务的CPU核号Nolast-cpu以及每个CPU的忙碌程度Notask*Tasktime进行任务调度,调度的原则是:根据优先级,按照优先级高低的顺序调度任务。某一个任务的调度方法为,分别计算各个CPU核调度值,该值是由CPU核的忙碌程度减去该任务上一次是否在该CPU核上运行的权值得到,权值的计算方法是:如果该任务上一次运行在该CPU核,则权值为1,否则权值为零,计...
【专利技术属性】
技术研发人员:陈天洲,王罡,冯德贵,陈度,吴斌斌,刘敬伟,
申请(专利权)人:浙江大学,
类型:发明
国别省市:86[中国|杭州]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。