一种面向MPSoC的多线程调度方法

文档序号:6424171阅读:154来源:国知局
专利名称:一种面向MPSoC的多线程调度方法
技术领域
本发明属于嵌入式操作系统的多线程调度技术领域,具体涉及一种面向MPSoC的多线程调度方法。
背景技术
随着半导体技术的不断进步,VLSI (超大规模集成电路,Very Large-ScaleIntegrated)的集成密度在大幅度增加。单一芯片上的集成度不断提高,使得 SoC技术得到了发展和应用。SoC技术是将一个系统的全部功能模块集成到单一的芯片上, 从而实现在单个芯片上集成完备的系统功能。处理器核也简称为核。集成在SoC芯片上的通常是IP (知识产权,Intellectual Property)核。这些可重用的IP核包括嵌入式处理器,存储模块,接口模块和面向应用定制的处理构件。在SoC 上集成的IP核可以分为三类软核(Soft IP),是指使用RTL(寄存器传送级别,Register Transfer Level)或者更高级别进行描述的IP核;硬核(HardIP),是指具有固定的层结构, 并且针对特定过程中的特定应用进行了定制的优化过的IP核;固化核(Firm IP)是指已经做了描述但是提供了参数供设计人员进行应用定制的IP核。SoC不仅集成的晶体管数量多,而且由于集成了不同种类的功能和技术,并且由于软硬件的协同工作,使得SoC具有复杂的体系结构和逻辑接口。SoC的高集成度也使得SoC 的功能极为丰富,提高了对片上面积的有效利用,缩短了片上连线的长度,从而提高了整个系统的性能。由于IP核具有可重用性,在IP核设计完成后,相当数量的IP核被大多数SoC 系统所使用和集成。在设计平台级的嵌入式系统时,这种重用性极大的提高了开发效率。MPSoC是对SoC技术的进一步发展,是指具有多于一个嵌入式指令集处理器的 SoC0 MPSoC结合SoC技术与多核技术的特点。多核技术是指在一个芯片上集成多核处理器核,以提高处理器的处理能力;如果芯片上所集成的多个处理器核相同,核间地位相同, 则称为同构多核处理器;如果芯片上所集成的处理器核不同,有主处理器和协处理器之分, 则称为异构多核处理器。MPSoC片上既有多核处理器核,又集成了不同种类的软硬件,兼具了 SoC和多核的优点。在SoC与MPSoC芯片上,往往会集成存储器,为处理器核提供存储服务,从而提高处理器的效率。MPSoC上计算资源丰富(即拥有多个处理器核),因此,通常会采用多线程并行的方式来利用这些计算资源。同时,尽管这些处理器核(简称为处理核或者核)同在一个处理器芯片上,由于核间连线长短不同,核间的通信代价也不同。一般来说,研究表明,核的物理位置越远,核间连线就越长,通信代价也就越大。目前在现有的多线程调度算法中,尚无解决这种情况的高效率方法。

发明内容
本发明旨在克服现有技术缺陷,目的在于提供一种能降低线程之间的通信代价和提高调度效率的面向MPSoC的多线程调度方法。
为实现上述目的,本发明采用的技术方案为如下步骤第一步、处理器核组划分将MPSoC上的多个处理器核按物理位置关系划分为处理器核组,相邻的处理器核划分到同一个处理器核组当中;采用处理器核组配置表的形式,将划分后的处理器核组提供给嵌入式操作系统;处理器核组配置表的基本内容包括处理器核组个数和每个处理器核组的标识,处理器核组配置表的附加内容为处理器核频率、处理器核数量、处理器核组划分依据、处理器核温度范围中的一种以上。第二步、线程组划分进行线程组划分,将多线程进行分组;分组的方法是将属于同一个进程的线程划分到同一个线程组。第三步、线程组调度采用嵌入式操作系统的调度算法,依据处理器核组配置表对线程组进行调度。第四步、线程调度在同一个处理器核组内,采用分时调度或轮转调度算法对线程进行调度。第五步、线程调度优化1)当处理器上存在空闲的处理器核组时,繁忙的处理器核组的就绪队列中仍然存在多个线程,采用如下的策略进行调度优化将属于同一个进程的线程从繁忙的处理器核组迁移到空闲的处理器核组,迁移的线程数目Mi为Mi = Cs(1)式(1)中Cs是空闲的处理器核组中处理器核的数目。2)如果仍然有处理器核组空闲,并且剩下的就绪队列中,存在同一个进程的线程无法全部调度到一个处理器核组当中的情况时,将多余的线程按照第五步中的1)所述方法进行调度。所述空闲的处理器核组是指处理器核组中的所有处理器核没有正在执行地线程; 空闲的处理器核组个数是对于m个处理器核组,存在η个进程,当η小于m时,存在m-n个空闲的处理器核组;其中,m和η均为自然数,且m大于或等于2。由于采用上述技术方案,本发明通过多核处理器上处理器核组的划分,将物理距离近的处理器核划分到同一处理器核组内,提高了通信的效率,并减少了线路上的通信能耗;而处理器核组间的线程迁移则降低了繁忙的处理器核组的工作负担,利用空闲的处理器核组执行线程,提高了处理器的执行效率。与现有技术相比,具有如下积极效果是(1)高效性。本发明利用分组对多核多线程进行调度,将物理位置上相距近的处理器核划分到同一个处理器核组,同一个处理器核组内部通信距离短,通信效率高;同时,由于将繁忙的处理器核组中的线程迁移到了空闲的处理器核组,提高了处理器核的利用效率和线程的执行效率。(2)低能耗。本发明中将多个处理器核分组,线程间通信以处理器核组内通信为主,而同一处理器核组的线程通信物理距离短,需要消耗在线路上的能耗也低,从而降低了多线程通信的能耗。
因此,本发明根据MPSoC上处理器核间的物理距离不同将处理器核划分为处理器核组,将多线程划分为不同的线程组,将线程组在处理器核组上进行调度,减少了线程之间的通信代价,提高了调度的效率。


图1是本发明的实施过程示意图;图2是本发明的4核处理器的处理器核组划分示意图;图3是本发明的8核处理器的处理器核组划分示意图。
具体实施例方式实施例1一种面向MPSoC的多线程调度方法。其方法如图1所示步骤第一步、处理器核组划分将MPSoC上的多个处理器核按物理位置关系划分为处理器核组,相邻的处理器核划分到同一个处理器核组当中;采用处理器核组配置表的形式,将分后的处理器核组提供给嵌入式操作系统;处理器核组配置表的基本内容包括处理器核组个数和每个处理器核组的标识,处理器核组配置表的附加内容为处理器核频率、处理器核数量、处理器核组划分依据、处理器核温度范围中的一种以上。在MPSoC上集成了多个处理器核。为了充分利用片上的多个处理器核,将MPSoC 上的多个处理器核按物理位置关系进行划分,通过对处理器核的分组,形成不同的处理器核组,以减少访问延迟。对于多核嵌入式系统MPSoC来说,最为重要的片上计算资源就是这些处理器核。因此,在划分时是以处理器核的物理位置为划分的主要依据。MPSoC上有多个处理器核。对于相邻的处理器核,将它们划分到同一个处理器核组。而每个处理器核组内都是由一个以上的处理器核组成,故片上的处理器核就会被划分进不同的处理器核组之内。这样,位于同一个处理器核组内的处理器核被聚集成一个整体, 能够做为更大的调度单元,由操作系统进行调度。处理器核的划分依据是根据处理器核间的物理位置,相邻的处理器核划分到同一个处理器核组当中。例如,对于一个拥有4个处理器核的MPSoC来说,如图2所示,处理器核O和处理器核3在片上的物理距离小,物理位置近,划分为处理器核组O ;而处理器核1和处理器核2在片上的物理距离小,物理位置近,划分为处理器核组1。这样划分的原因,是因为物理位置小,通信代价也小。处理器核的划分是根据实际需要进行划分,每个处理器核组中包含的处理器核的数目相同或不同。例如,将拥有4个处理器核的MPSoC划分为处理器核O为处理器核组0, 处理器核1、处理器核2、处理器核3划分为处理器核组1。采用处理器核组配置表的形式,将划分后的处理器核组提供给嵌入式操作系统。 处理器核组配置表的基本内容包括处理器核组个数和每个处理器核组的标识,处理器核组配置表的附加内容为处理器核频率、处理器核数量、处理器核组划分依据、处理器核温度范围中的一种以上。如图2所示的多核处理器,在经过处理器核组划分后,选择处理器核数量和处理器核频率为处理器核组配置表的附加内容,则处理器核组配置表内容为1)处理器核组0 处理器核1,处理器核32)处理器核组1,处理器核0,处理器核23)处理器核数量44)处理器核频率处理器核0 (500MHz),处理器核1 (500MHz),处理器核 2 (500MHz),处理器核 3 (500MHz)。第二步、线程组划分进行线程组划分,将多线程进行分组;分组的方法是将属于同一个进程的线程划分到同一个线程组。在MPSoC上,为了充分利用多核处理器的处理能力,采用多线程并行的方法。处理器核组划分完毕之后,为了进行更好的调度优化,进行线程组划分,将多线程进行分组。分组的方法是将属于同一个进程的线程划分到同一个线程组。例如,对于线程T1、T2、T3、T4、 Τ5、Τ6和Τ7,其中线程Tl、Τ2和Τ3属于进程Pl ;线程Τ4、Τ5、Τ6和Τ7属于进程Ρ2。线程 Tl、Τ2和Τ3将划分到同一个线程组Gl ;线程Τ4、Τ5、Τ6和Τ7划分到同一个线程组G2。第三步、线程组调度采用嵌入式操作系统的调度算法,依据处理器核组配置表对线程组进行调度。采用嵌入式操作系统的调度算法,依据处理器核组配置表对线程组进行调度。 MPSoC上的处理器核被划分为处理器核组后,对于嵌入式操作系统来说,调度时以处理器核组为单位,依据处理器核组配置表获取处理器核组的信息;同时将单个处理器核组当作一个基本的分配单元,在多个线程组之间进行调度和分配。对于每个处理器核组,嵌入式操作系统都维持一个就绪队列,就绪队列中有就绪线程组,就绪线程组是可执行的一组线程,就绪线程组中的线程属于同一个线程组(即同一个进程)。当某个处理器核组上的线程组运行结束后,操作系统就分配就绪线程组到这个处理器核组上去。第四步、线程调度同一个进程内的线程被调度到同一个就绪队列当中。在对处理器核组进行划分时,一个处理器核组内有多个处理器核。因此,当线程组中的多线程运行时,尽管该进程只能使用某个处理器核组,但由于处理器核组内部的计算资源同样丰富,当这个就绪队列对应的处理器核组可用时,该进程对应的线程被分配到这个处理器核组上运行。在同一个处理器核组内,采用分时调度算法对线程进行调度。第五步、线程调度优化1)为了提高对处理器核资源的利用效率,在处理器上存在空闲的处理器核组的情况下,将单个进程的多个线程同时调度到多个就绪队列当中。当处理器上存在空闲的处理器核组时,繁忙的处理器核组的就绪队列中仍然存在多个线程,采用如下的策略进行调度优化将属于同一个进程的线程从繁忙的处理器核组迁移到空闲的处理器核组,迁移的线程数目Mi为Mi = Cs(1)式⑴中Cs是空闲的处理器核组中处理器核的数目;
空闲的处理器核组是指处理器核组中的所有处理器核没有正在执行地线程;空闲的处理器核组个数是对于m个处理器核组,存在η个进程,当η小于m时,存在m-n个空闲的处理器核组;其中,m和η均为自然数,且m大于或等于2。2)如果仍然有处理器核组空闲,并且剩下的就绪队列中,存在同一个进程的线程无法全部调度到一个处理器核组当中的情况时,将多余的线程按照第五步中的1)所述方法进行调度。通过上述方法,对线程调度进行优化来提高处理器核的利用率。实施例2一种面向MPSoC的多线程调度方法。该方法的步骤是第一步、处理器核组划分,处理器有8个处理器核。其划分方法如图3所示,以物理位置为依据,将处理器核0,处理器核3,处理器核4划分为处理器核组0,处理器核1,处理器核2划分为处理器核组1,处理器核5,处理器核6,处理器核7划分为处理器核组2。第四步、线程调度中,同一个进程内线程被调度到同一个就绪队列当中。在对处理器核组进行划分时,一个处理器核组内有多个处理器核。因此,当线程组中的多线程运行时,尽管该进程只能使用某个处理器核组,但是由于处理器核组内部的计算资源同样丰富, 当这个就绪队列对应的处理器核组可用时,该进程对应的线程被分配到这个处理器核组上运行。在同一个处理器核组内,采用轮转调度算法对线程进行调度。其余同实施例1。本具体实施方式
通过对处理器核组的划分,将物理距离近的处理器核划分到同一处理器核组内,提高了通信的效率,并减少了线路上的通信能耗;而处理器核组间的线程迁移则降低了繁忙的处理器核组的工作负担,利用空闲的处理器核组执行线程,提高了处理器的执行效率。与现有技术相比,具有如下积极效果是(1)高效性。利用分组对多核多线程进行调度,将物理位置上相距近的处理器核划分到同一个处理器核组,同一个处理器核组内部通信距离短,通信效率高;同时,由于将繁忙的处理器核组中的线程迁移到了空闲的处理器核组,提高了处理器核的利用效率和线程的执行效率。(2)低能耗。将多处理器核分组后,线程间通信以处理器核组内通信为主,而同一处理器核组的线程通信物理距离短,需要消耗在线路上的能耗也低,从而降低了多线程通信的能耗。因此,本具体实施方式
根据MPSoC上处理器核间的物理距离不同将处理器核划分为处理器核组,将多线程划分为不同的线程组,将线程组在处理器核组上进行调度,减少了线程之间的通信代价,提高了调度的效率。
权利要求
1.一种面向MPSoC的多线程调度方法,其特征在于该方法的步骤是 第一步、处理器核组划分将MPSoC上的多个处理器核按物理位置关系划分为处理器核组,相邻的处理器核划分到同一个处理器核组当中;采用处理器核组配置表的形式,将划分后的处理器核组提供给嵌入式操作系统;处理器核组配置表的基本内容包括处理器核组个数和每个处理器核组的标识,处理器核组配置表的附加内容为处理器核频率、处理器核数量、处理器核组划分依据、处理器核温度范围中的一种以上; 第二步、线程组划分进行线程组划分,将多个线程进行分组;分组的方法是将属于同一个进程的线程划分到同一个线程组;第三步、线程组调度采用嵌入式操作系统的调度算法,依据处理器核组配置表对线程组进行调度; 第四步、线程调度在同一个处理器核组内,采用分时调度或轮转调度算法对线程进行调度; 第五步、线程调度优化1)当处理器上存在空闲的处理器核组时,繁忙的处理器核组的就绪队列中仍然存在多个线程,采用如下的策略进行调度优化将属于同一个进程的线程从繁忙的处理器核组迁移到空闲的处理器核组,迁移的线程数目吣为Mi = Cs(1)式(1)中Cs是空闲的处理器核组中处理器核的数目;2)如果仍然有处理器核组空闲,在剩下的就绪队列中存在同一个进程的线程无法全部调度到一个处理器核组当中的情况时,将多余的线程按照第五步中的1)所述方法进行调度。
2.根据权利要求1所述的面向MPSoC的多线程调度方法,其特征在于所述空闲的处理器核组是指处理器核组中的所有处理器核没有正在执行地线程;空闲的处理器核组个数是对于m个处理器核组,存在η个进程,当η小于m时,存在m-n个空闲的处理器核组;其中,m和η均为自然数,且m大于或等于2。
全文摘要
本发明涉及一种面向MPSoC的多线程调度方法。其技术方案是先将MPSoC上的多个处理器核按物理位置关系划分为处理器核组,相邻的处理器核划分到同一个处理器核组当中;再将属于同一个进程的线程划分到同一个线程组,然后依据处理器核组配置表对线程组进行调度,在同一个处理器核组内,采用分时调度或轮转调度算法对线程进行调度;最后进行线程调度优化,即将属于同一个进程的线程从繁忙的处理器核组迁移到空闲的处理器核组,迁移的线程数目Mi等于空闲的处理器核组中处理器核的数目Cs。本发明将多线程划分为不同的线程组,将线程组在核组上进行调度,减少了线程之间的通信代价,提高了调度的效率。
文档编号G06F9/38GK102193779SQ20111012526
公开日2011年9月21日 申请日期2011年5月16日 优先权日2011年5月16日
发明者刘小明, 卢建华, 张凯, 张鸿, 胡威, 邵平凡, 郭宏, 陈姚节, 陈建勋 申请人:武汉科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1