片上多核异构系统的调度系统与调度执行方法

文档序号:6434731阅读:176来源:国知局
专利名称:片上多核异构系统的调度系统与调度执行方法
技术领域
本发明属于片上多核计算平台的调度技术领域,具体涉及一种片上多核计算平台的任务调度系统及进行任务乱序执行方法。
背景技术
片上多核处理器已经成为多核处理器的研究发展方向。随着半导体技术的发展, 片上能够集成的资源越来越多,片上多核系统,尤其是异构多核系统,可以发挥不同计算单元的优势,加速不同嵌入式应用的性能。采用异构体系结构的计算系统可同时利用多种计算模式,能够充分发挥不同计算模式在不同应用领域所具有的优势。因此,将各种可行的计算模式集成在一片芯片中,将成为当前的异构计算系统(特别是嵌入式计算系统)的发展趋势。异构计算系统中存在着大量异构的计算逻辑单元,例如通用处理器、ASIP和可重构逻辑单元等等,以不同的计算模式实现的计算任务在执行特征上具有很大的差异。因此, 如何将应用有效地划分为相应计算模式下运行的计算任务是异构计算系统设计中需要首先解决的问题。在异构计算系统中,主要存在着两种任务类型运行在处理器(包括通用处理器和ASIP)上的软件任务和运行在可重构逻辑单元上的硬件任务。当前,计算系统的软硬件划分方法可以被分为三类(1)由设计者显式地指定需要采用硬件方式执行的计算任务,这要求设计者具有相当程度的硬件电路设计知识,以便准确地获知哪些计算任务能够以硬件执行的方式获得较高的加速比;(2)通过软件剖析,将程序中耗时最多的一个或几个计算任务采用硬件方式执行,这忽略了软件任务与硬件任务在执行特征上的差异,未必能够获得优化的任务划分方案;(3)对于每个能够以硬件方式执行的计算任务,根据它的硬件执行时间(包括各种额外的时间开销,例如配置时间)与它的软件执行时间之间的比较结果,判定该任务究竟以何种方式运行,但是这种方法没有考虑任务执行的前驱/后继任务对其执行造成的影响,可能会发生资源空等的情况。综上所述,存在于异构计算系统中的硬件任务增加了计算任务划分的复杂度,如何合理地对软/硬件任务进行划分是亟待解决的难题。在任务级并行问题中,不同任务之间有可能采用相同的变量而导致数据相关的产生,从而限制了任务并行。任务并行化中,常见的相关有写后读(RAW),写后写(WAW)和读后写(WAR)三种不同类型的相关,其中WAW和WAR为伪数据相关,可以通过调度算法或者编程模型来解决。目前较为成熟的解决方案大多采用并行编程来解决,例如OpenMP,MPI, Intel' s TBB,CUDA,OpenCL和Cilk等。然而这些编程模型大多依赖程序员对任务进行手动划分,从而在。从任务调度本身的策略来看,如果将每个任务抽象成一条“宏指令”来处理,则单核中解决指令集并行算法都可以扩展到多核的任务级来提高任务级并行性。由于片上多核系统上提供了充分的计算资源,为任务的高效运行提供了保证,因此,在此基础上提高任务集在多核平台上的乱序执行粒度是提高系统任务级并行性和吞吐率的一个有效手段。
总的来说,目前的并行编程模型中的任务并行调度方法中的任务划分和调度方法均需要程序员进行手动干预和配置,从而限制了平台能够获得的性能优化效果。本发明因此而来。

发明内容
为了克服背景技术中存在的不足,本发明的一个目的在于提供一个片上多核计算平台上的任务调度系统和利用所述任务调度系统所使用的任务乱序执行方法,通过在运行时对任务进行相关性的监测和自动并行化来提高平台的吞吐率和系统的性能。为了解决现有技术中的这些问题,本发明提供的技术方案是一种片上多核异构系统的调度系统,包括提供需要执行的任务的适用多个异构软硬件的用户服务模块、在片上多核计算平台执行多个任务的计算服务模块,其特征在于所述用户服务模块与计算服务模块间设置核心调度模块,所述核心调度模块接受用户服务模块的任务请求,通过记录判断不同任务之间的数据依赖关系,将任务请求并行地调度到不同的计算服务模块上执行;所述计算服务模块以IP核的形式封装,并通过可重构控制器实现IP核的动态加载;所述计算服务模块与片上多核异构系统的多个计算处理器片上互联, 接受核心调度模块的指令执行不同类型的计算任务。优选的,所述片上多核计算平台的任务调度系统,其特征在于所述核心调度模块包括接受用户服务模块的若干个任务请求形成任务队列的任务队列、用来提供在指令发射到计算服务模块时对可能存在相关的数据进行相关判断和数据索引的变量状态表、用来标记平台中各个计算单元运行状态的功能部件状态表,以及用来保存变量值的变量表。优选的,所述片上多核计算平台的任务调度系统,其特征在于所述变量状态表包括多个变量编号及各个变量目前被占用的功能部件编号。优选的,所述片上多核计算平台的任务调度系统,其特征在于所述功能部件状态表包括若干个标记目前状态表中所执行的任务请求名称Name、当前任务请求的繁忙状态 Busy、源操作数Fj和Fk、源操作数的标记位Qj和Qk,准备状态标记位Rj和Rk,以及目的操作数Fi的表项。优选的,所述片上多核计算平台的任务调度系统,其特征在于所述变量表中存储了系统中所有变量的实际值。本发明的另一目的在于提供一种片上多核系统的任务乱序执行方法,其特征在于所述方法包括以下步骤(1)用户服务模块提供新的服务请求,核心调度模块接收到请求后根据任务队列的状态判断是否将新的服务请求加入任务队列;当任务队列未满时加入任务队列;(2)核心调度模块查询功能状态表,判断是否存在与任务对应的功能部件,并且判断新的服务请求采用的目标变量是否存在于变量表中;当变量表中没有任务将目标变量作为输出变量时,且变量表非满时,将变量加入变量状态表,并更新功能部件状态表;(3)查询所述变量对应表中源操作数的空闲状态;若有源操作数仍处于忙的状态,则等待所有的源操作数均处于就绪状态;否则将实际值赋给源操作数Fj和Fk,并更新准备状态标记位Rj和Rk ;(4)当任务请求中的源数据都准备完毕之后,重新针对计算部件进行一次软硬件任务划分。此步骤中分别针对任务可能运行的功能部件的运行时间进行预估,从而获得一个运行时间最短的选择,将其对应的功能部件状态表进行更新。(5)访问请求被发送到特定的计算服务模块;计算完毕之后,判断当前任务与所有之前的任务之间是否存在读后写相关,如果是进行等待,直到相关消除则将变量值更新到变量表中,并将变量状态表中的Busy状态修改为no。优选的,所述方法步骤(2)中更新功能部件状态表时,包括Name更新为目标功能部件、Busy更新为yes、并更新源操作数Fj和Fk、源操作数的标记位Qj和Qk,源操作数准备状态Rj和Rk,以及目的操作数Fi的表项。优选的,所述方法步骤(5)中当计算服务模块计算完毕后,检查功能部件状态表中任务的源操作数是否与当前执行任务的目的操作数相同,从而来判断是否存在读后写相关。相对于现有技术中的方案,本发明的优点是1、本发明接收用户的任务请求之后,可以直接检测该任务与目前平台中执行的任务的数据相关性,如存在写后读与写后写相关,则能够自动进行任务的等待,而对于无相关及读后写相关的任务则可以进行发射执行,除此之外,将不能即时执行的任务请求进行缓冲,当数据和计算单元都准备完毕时实现任务的自动发射。因此,本发明消除了不同任务之间的WAR伪相关,并能够自动检测WAW和RAW两种相关。2、本发明包含任务自动划分和调度模块。由于平台中集成了不同类型的计算资源,模块中记录了各种计算资源的属性和运行时状态。在任务运行时,该模块及其调度方法可以针对任务的属性和计算资源的实时状态来进行任务的划分和调度。综上所述,本发明得到一种片上多核异构系统的调度系统与任务乱序执行方法, 所述系统包括提供需要执行的任务的多个异构的软硬件用户服务模块、在片上多核计算平台执行多个任务的计算服务模块,其特征在于所述用户服务模块与计算服务模块间设置核心调度服务模块,所述核心调度服务模块接受用户服务模块的任务请求为输入,通过记录判断不同任务之间的数据依赖关系,将任务请求并行地调度到不同的计算服务模块上执行.所述软硬件用户服务模块与核心调度模块之间通过片上互联相连,分别用来执行不同类型的计算任务。所述硬件计算服务模块以IP核的形式封装,并通过可重构控制器实现IP 核的动态加载。该系统通过在运行时对任务进行相关性的监测和自动并行化来提高平台的吞吐率和系统的性能。


下面结合附图及实施例对本发明作进一步描述图1为本发明实施例片上多核计算平台的系统架构图;图2是本发明实施例片上多核计算平台的任务调度系统的系统架构图。
具体实施例方式以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例如图1所示,该片上多核计算平台的任务调度系统,包括提供需要执行的任务的用户服务模块、在片上多核计算平台执行多个任务的计算服务模块,所述用户服务模块与计算服务模块间设置核心调度模块,所述核心调度模块接受用户服务模块的任务请求为输入,通过记录判断不同任务之间的数据依赖关系,将任务请求并行地调度到不同的计算服务模块上执行。图2显示了片上多核计算平台的任务调度系统的系统架构图,模块中包括一个任务队列,一个变量状态表,一组保留站以及再请求缓冲表组成,具体的模块如下1)任务队列任务队列用来对用户发送的任务请求进行存储。由于不同的任务之间存在数据依赖关系,因此任务在发射到不同的处理器上执行之前在任务队列上存储。2)变量状态表变量状态表所实现的功能为在指令发射时,对可能存在相关的数据进行相关判断和数据索引。表1变量状态表
^变量编号12^^ 3132功能部件-表1为变量状态表,主要用来记录在程序运行过程中的各个变量对应关系。由于在多核系统中,可以将每一条服务请求抽象成一条指令来对待,所有的请求的相关性都是通过变量的使用依赖来判断的。由于本模块向用户提供编程时使用的变量,因此表格的大小取决于存储空间和效率的限制。变量的数目太多会导致系统的查找开销会比较大,若太少则无法充分扩展系统的性能。因此本发明以32为典型值,提供了 32个变量供用户使用。在表中,功能部件域中保存的信息为使用当前变量的目标任务,用于标记该变量依赖的目标任务。3)功能部件状态表表2功能部件状态表
NameFunction Unit StatusBusyFiFjFkQiQkRiRk上表为本发明所述的功能部件状态表。在功能部件状态表中,保存的信息有如下Name 标记目前功能部件状态表中所执行的功能名称;Busy 当前功能模块的繁忙状态;Fi 目的操作数;Fj Fk 两个源操作数;Qj Qk 两个源操作数的标记位若执行完毕,则对源操作数赋值,否则将对应的标记位标记为源操作指令的再请求缓冲表项的入口 ; Rj Rk:源操作数是否准备好的标记。4)变量表表3变量表
权利要求
1.一种片上多核异构系统的调度系统,包括提供需要执行的任务的适用多个异构软硬件的用户服务模块、在片上多核计算平台执行多个任务的计算服务模块,其特征在于所述用户服务模块与计算服务模块间设置核心调度模块,所述核心调度模块接受用户服务模块的任务请求,通过记录判断不同任务之间的数据依赖关系,将任务请求并行地调度到不同的计算服务模块上执行;所述计算服务模块以IP核的形式封装,并通过可重构控制器实现IP核的动态加载;所述计算服务模块与片上多核异构系统的多个计算处理器片上互联, 接受核心调度模块的指令执行不同类型的计算任务。
2.根据权利要求1所述的片上多核计算平台的任务调度系统,其特征在于所述核心调度模块包括接受用户服务模块的若干个任务请求形成任务队列的任务队列、用来提供在指令发射到计算服务模块时对可能存在相关的数据进行相关判断和数据索引的变量状态表、用来标记平台中各个计算单元运行状态的功能部件状态表,以及用来保存变量值的变量表。
3.根据权利要求2所述的片上多核计算平台的任务调度系统,其特征在于所述变量状态表包括多个变量编号及各个变量目前被占用的功能部件编号。
4.根据权利要求2所述的片上多核计算平台的任务调度系统,其特征在于所述功能部件状态表包括若干个标记目前状态表中所执行的任务请求名称Name、当前任务请求的繁忙状态Busy、源操作数Fj和Fk、源操作数的来源Qj和Qk,标记位Rj和Rk,以及目的操作数Fi的表项。
5.根据权利要求2所述的片上多核计算平台的任务调度系统,其特征在于所述变量表中存储了系统中所有变量的实际值。
6.一种片上多核计算平台的任务调度执行方法,其特征在于所述方法中任务乱序执行,所述方法包括以下步骤(1)用户服务模块提供新的服务请求,核心调度模块接收到请求后根据任务队列的状态判断是否将新的服务请求加入任务队列;当任务队列未满时加入任务队列;(2)核心调度模块查询功能状态表,判断是否存在与任务对应的功能部件,并且判断新的服务请求采用的目标变量是否存在于变量表中;当变量表中没有任务将目标变量作为输出变量时,且变量表非满时,将变量加入变量状态表,并更新功能部件状态表;(3)查询所述变量对应表中源操作数的空闲状态;若有源操作数仍处于忙的状态,则等待所有的源操作数均处于就绪状态;否则将实际值赋给源操作数Fj和Fk,并更新标记位Rj 和Rk ;(4)当任务请求中的源数据都准备完毕之后,重新针对计算部件进行一次软硬件任务划分;核心调度模块针对任务可能运行的功能部件的运行时间进行预估,从而获得一个运行时间最短的选择,将其对应的功能部件状态表进行更新;(5)访问请求被发送到特定的计算服务模块;计算完毕之后,判断当前任务与所有之前的任务之间是否存在读后写相关,如果是进行等待,直到相关消除则将变量值更新到变量表中,并将变量状态表中的Busy状态修改为no。
7.根据权利要求6所述的方法,其特征在于所述方法步骤(2)中更新功能部件状态表时,包括Name更新为目标功能部件、Busy更新为yes、并更新源操作数Fj和Fk、源操作数的标记位Qj和Qk,准备状态标记位Rj和Rk,以及目的操作数Fi的表项。
8.根据权利要求6所述的方法,其特征在于所述方法步骤(5)中当计算服务模块计算完毕后,检查功能部件状态表中任务的源操作数是否与当前执行任务的目的操作数相同, 判断是否存在读后写相关。
全文摘要
本发明公开了一种片上多核异构系统的调度系统与调度执行方法,所述系统包括提供需要执行的任务的适用多个异构软硬件的用户服务模块、在片上多核计算平台执行多个任务的计算服务模块,其特征在于所述用户服务模块与计算服务模块间设置核心调度模块,所述核心调度模块接受用户服务模块的任务请求,通过记录判断不同任务之间的数据依赖关系,将任务请求并行地调度到不同的计算服务模块上执行;所述计算服务模块以IP核的形式封装,并通过可重构控制器实现IP核的动态加载;所述计算服务模块与片上多核异构系统的多个计算处理器片上互联,接受核心调度模块的指令执行不同类型的计算任务。该系统通过在运行时对任务进行相关性的监测和自动并行化来提高平台的吞吐率和系统的性能。
文档编号G06F9/50GK102360309SQ201110299619
公开日2012年2月22日 申请日期2011年9月29日 优先权日2011年9月29日
发明者冯晓静, 周学海, 张军能, 李曦, 王爱立, 王超, 陈香兰, 陈鹏 申请人:中国科学技术大学苏州研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1