一种节点调度优先级确定方法及装置的制作方法

文档序号:6364710阅读:104来源:国知局
专利名称:一种节点调度优先级确定方法及装置的制作方法
技术领域
本发明涉及嵌入式计算机技术领域,尤其涉及一种节点调度优先级确定方法及装置。
背景技术
目前,依靠提高单核处理器中单颗中央处理器(CPU)内核的运行频率已经不能满足用户对网络设备性能的要求。为了提高网络设备对数据流的处理速度,多核处理器应运而生。多核处理器可以解决单核处理器频率提升的瓶颈问题,通过采用多个CPU内核同时协同工作,可以大量缩短任务执行的时间。为了高效地利用多核处理器,可以把系统任务划分为多个线程(或多个子任务), 每个线程又可以划分为多个阶段执行点,一个阶段执行点就是调度内核的最小执行颗粒, 从而使得每个内核都能充分得到调度。每一个内核同一时间只能执行一个线程中的一个阶段执行点(即一个最小执行颗粒)。时间、阶段执行点、内核,这三个变量是一对一的关系不可重叠。通常把时间和阶段执行点的组合定义为一个最小的执行单元,每个内核可以自由地获取到一个空闲的执行单元并得到调度。具体的,可以用如图1所示的坐标图表示他们之间的关系。对于一个网络设备来说,系统任务应该划分多少个线程,每个线程该划分多少个阶段执行点,如何均衡这些线程的负载,这些是决定整个网络设备性能的关键。目前大部分网络设备只有一个线程,在这个线程上再划分多个阶段执行点,所以不涉及负载均衡的问题。但是随着CPU技术的发展,多核的概念已不再是双核或4核,而是可集成十多个甚至几十个内核。那么单纯地在一个线程里分布多个内核已经不能充分发挥系统性能,必须要在多线程多阶段执行点上分布多个内核,再加以负载均衡。对于每个阶段执行点中可能出现的临界资源争夺问题,在多核处理器中尤其突出。多核处理器中会出现多个内核执行同一个阶段执行点的情况,如果这个阶段执行点出现操作临界资源的情况,那么这些内核就要排队等待获取临界资源。在有临界资源的阶段执行点中通常用自旋锁的方式进行保护,如果某个内核先抢到这个临界资源,其他内核执行到自旋锁的地方就挂起等待,直到临界资源被释放为止,从而出现了临界资源互锁。如果出现多个内核进入到某阶段执行点后都需要轮询等待临界资源,就出现了多核竞争,导致大大降低多核的性能发挥。在多核处理器中数据处理从开始到结束的一连串的动作可以称为流水线,一条流水线可划分为多个处理阶段,每个处理阶段就是内核调度的节点(一个节点就是一个阶段执行点),也是内核并行调度和进入的最小原子操作。有些多核处理器按照节点的任务队列深度来判断节点的调度优先级,当一个内核完成一个节点的处理任务后就需要进入另一个节点获取新的任务进行处理,此时,节点的选择是根据当前等待多核调度的节点的调度优先级,选择调度优先级高的节点进行处理。 如果节点η出现操作临界资源的情况,而此时节点n-1 (节点η之前的一个节点)还在源源不断地将要处理的数据传输给节点n,那么节点η的调度优先级就会不断增加。系统调度算法就会分配更多的内核来处理节点η,这些内核执行到节点η的临界资源时就会进行多核竞争,发生互斥,导致性能下降。

发明内容
本发明实施例提供一种节点调度优先级确定方法及装置,用于减少节点中发生的多核竞争,提高多核处理器的性能。一种节点调度优先级确定方法,应用于根据任务队列深度确定节点调度优先级的多核处理器中,所述方法包括确定出现临界资源互锁的节点η ;在每条在节点η处发生临界资源互锁的流水线上,降低距离节点η最近,且位于节点η之前的节点η-1的调度优先级,其中η为大于1的正整数。一种节点调度优先级确定装置,应用于根据任务队列深度确定节点调度优先级的多核处理器中,所述装置包括确定模块,用于确定出现临界资源互锁的节点η ;调整模块,用于在每条在节点η处发生临界资源互锁的流水线上,降低距离节点η 最近,且位于节点η之前的节点η-1的调度优先级,其中η为大于1的正整数。根据本发明实施例提供的方案,在根据任务队列深度确定节点调度优先级的多核处理器中,在每条流水线上,降低出现临界资源互锁的节点η之前的节点η-1的调度优先级,按照内核根据当前等待多核调度的节点的调度优先级,选择调度优先级高的节点进行处理的原理,降低节点η-1得到调度的可能性,从而避免前向节点不断的向出现瓶颈的后向节点输入待处理的数据任务,避免节点η中的任务队列深度增加,从而避免更多的内核调度到节点η,减少节点η出现多核竞争的可能性,充分发挥多核处理器的性能。


图1为现有技术中时间、阶段执行点和内核的关系示意图;图2为本发明实施例一提供的节点调度优先级确定方法的步骤流程图;图3为本发明实施例一提供的流水线示意图;图4为本发明实施例二提供的节点调度优先级确定装置的结构示意图。
具体实施例方式本发明实施例提供的方案中,在多核数据处理系统中发生临界资源互锁的节点, 前向反馈降低前向节点的多核调度优先级,降低在多核数据处理系统中内核在临界资源操作上的竞争和碰撞,使多核的分配调度具有预见性,提前避免了多个内核争抢某个临界资源的情况发生。下面结合说明书附图和各实施例对本发明方案进行说明。实施例一、本发明实施例一提供一种节点调度优先级确定方法,应用于根据任务队列深度确定节点调度优先级的多核处理器中,该方法的步骤如图2所示,包括
步骤101、节点η获取到内核调度。其中,η为大于1的正整数。步骤102、节点η确定自身是否出现临界资源互锁。在本实施例中,用于确定节点调度优先级的装置,如节点调度优先级确定装置需要确定出现临界资源互锁的节点η,并降低节点η-1的调度优先级。具体的,可以根据接收到的节点的反馈信息确定该节点出现临界资源互锁。因此在本步骤中,节点η在获取到内核调度后,当执行到临界资源的时候,可以确定自身是否出现临界资源互锁。若确定自身出现临界资源互锁,可以计算临界资源执行的时间长度,并执行步骤103,反馈该信息。节点η在获取到内核调度后,若确定自身没有出现临界资源互锁,可以不必反馈信息,即无需触发执行步骤103,节点η-1可以保持按照原有的方法(即根据任务队列深度确定节点调度优先级的方法)确定出的自身的调度优先级。步骤103、节点η反馈临界资源执行的时间长度。具体的,可以将临界资源执行的时间长度反馈给节点调度优先级确定装置(该装置可以集成在前一个节点η-1中,即每个节点中可以集成一个节点调度优先级确定装置, 因此,在本实施例中,可以利用前向反馈法将本节点的瓶颈信息告知前一节点,并降低前一节点的多核调度优先级,从而防止前向节点将大量的数据输入到后向节点上导致任务堆积在出现瓶颈的后向节点上。当然,该装置也可以独立于节点)。节点调度优先级确定装置可以在接收到节点η反馈的信息时,确定节点η出现临界资源互锁。步骤104、降低节点η-1的调度优先级。本步骤包括,在每条在节点η处发生临界资源互锁的流水线上,降低距离节点η最近,且位于节点η之前的节点η-1的调度优先级。在多核处理器中会有多条数据处理流水线,每条流水线上有多个节点,每条流水线上的节点处理过程是相同的。流水线示意图可以如图3所示,节点调度优先级确定装置集成在节点中时,在节点η处发生临界资源互锁时,针对每条在节点η处发生临界资源互锁的流水线,节点η可以向节点η-1中的节点调度优先级确定装置反馈信息,通知节点η-1,在节点η处出现临界资源互锁。此时,节点调度优先级确定装置可以重新确定节点η-1的调度优先级。在本实施例中,可以根据节点η-1的调度优先级与在每条在节点η处发生临界资源互锁的流水线上,节点η的固定执行时长的正比关系,和/或在每条在节点η处发生临界资源互锁的流水线上,节点η的每次锁定时间长度的反比关系,降低节点η-1的调度优先级。具体的,可以根据在节点η处发生临界资源互锁的流水线条数、在每条在节点η处发生临界资源互锁的流水线上,节点η的每次锁定时间长度、在每条在节点η处发生临界资源互锁的流水线上,节点η的固定执行时长、流水线A上节点η-1的固定执行时长以及流水线A 上节点η-1的任务队列深度(可以理解为任务数量),确定流水线A上节点η-1的调度优先级。较优的,可以通过以下公式确定流水线A上节点η-1的调度优先级Hiuiri
权利要求
1.一种节点调度优先级确定方法,应用于根据任务队列深度确定节点调度优先级的多核处理器中,其特征在于,所述方法包括确定出现临界资源互锁的节点η ;在每条在节点η处发生临界资源互锁的流水线上,降低距离节点η最近,且位于节点η 之前的节点η-1的调度优先级,其中η为大于1的正整数。
2.如权利要求1所述的方法,其特征在于,在流水线A上,降低距离节点η最近,且位于节点η之前的节点η-1的调度优先级,具体包括根据节点η-1的调度优先级与在每条在节点η处发生临界资源互锁的流水线上,节点 η的固定执行时长的正比关系,和/或在每条在节点η处发生临界资源互锁的流水线上,节点η的每次锁定时间长度的反比关系,降低节点η-1的调度优先级。
3.如权利要求2所述的方法,其特征在于,在流水线A上,降低距离节点η最近,且位于节点η之前的节点η-1的调度优先级,具体包括根据在节点η处发生临界资源互锁的流水线条数、在每条在节点η处发生临界资源互锁的流水线上,节点η的每次锁定时间长度、在每条在节点η处发生临界资源互锁的流水线上,节点η的固定执行时长、流水线A上节点η-1的固定执行时长以及流水线A上节点η_1 的任务队列深度,确定流水线A上节点η-1的调度优先级。
4.如权利要求3所述的方法,其特征在于,通过以下公式确定流水线A上节点η-1的调度优先级Ilri
5.如权利要求3所述的方法,其特征在于,通过以下公式确定流水线A上节点η-1的调度优先级Ilri
6.一种节点调度优先级确定装置,应用于根据任务队列深度确定节点调度优先级的多核处理器中,其特征在于,所述装置包括确定模块,用于确定出现临界资源互锁的节点η ;调整模块,用于在每条在节点η处发生临界资源互锁的流水线上,降低距离节点η最近,且位于节点η之前的节点η-1的调度优先级,其中η为大于1的正整数。
7.如权利要求6所述的装置,其特征在于,所述调整模块,具体用于根据节点η-1的调度优先级与在每条在节点η处发生临界资源互锁的流水线上,节点η的固定执行时长的正比关系,和/或在每条在节点η处发生临界资源互锁的流水线上,节点η的每次锁定时间长度的反比关系,降低节点η-1的调度优先级。
8.如权利要求7所述的装置,其特征在于,所述调整模块,具体用于根据在节点η处发生临界资源互锁的流水线条数、在每条在节点η处发生临界资源互锁的流水线上,节点η的每次锁定时间长度、在每条在节点η处发生临界资源互锁的流水线上,节点η的固定执行时长、流水线A上节点η-1的固定执行时长以及流水线A上节点η-1的任务队列深度,确定流水线A上节点η-1的调度优先级。
9.如权利要求8所述的装置,其特征在于,所述调整模块,具体用于通过以下公式确定流水线A上节点η-1的调度优先级Hiuiri
10.如权利要求8所述的装置,其特征在于,所述调整模块,具体用于通过以下公式确定流水线A上节点η-1的调度优先级Hiuiri
全文摘要
本发明实施例提供一种节点调度优先级确定方法及装置,包括在根据任务队列深度确定节点调度优先级的多核处理器中,在每条流水线上,降低出现临界资源互锁的节点n之前的节点n-1的调度优先级,按照内核根据当前等待多核调度的节点的调度优先级,选择调度优先级高的节点进行处理的原理,降低节点n-1得到调度的可能性,从而避免前向节点不断的向出现瓶颈的后向节点输入待处理的数据任务,避免节点n中的任务队列深度增加,从而避免更多的内核调度到节点n,减少节点n出现多核竞争的可能性,充分发挥多核处理器的性能。
文档编号G06F9/50GK102567120SQ20121003176
公开日2012年7月11日 申请日期2012年2月13日 优先权日2012年2月13日
发明者石伟 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1