一种混合处理器架构及其任务调度方法与流程

文档序号:12595713阅读:144来源:国知局
一种混合处理器架构及其任务调度方法与流程

本发明涉及处理器架构技术领域,特别是涉及一种混合处理器架构及其任务调度方法。



背景技术:

可重构计算被视为能够将传统处理器的高度灵活性与ASIC(Application Specific Integrated Circuit)所具有的高处理效率进行结合的有效解决方案。由于可重构体系结构具有较好的适应性,针对不同应用能够通过不同粒度的并行来加快处理速度。在可重构设备中,FPGA(Field-Programmable Gate Array)是最广泛使用的可重构器件。动态可充配置的FPGA是实现硬件级别多任务的重要基础。此类FPGA的处理区域通常划分成不同的子块。这些子块分属于不同的硬件任务。当新的硬件任务达到时,需要为该硬件任务分配一个空闲的子块,同时其他的既存硬件任务不能受到影响。如果一个硬件任务执行完成,那么该任务所占据的子块应当被释放,并作为候选子块以备其他硬件任务的使用。在重分配期间,没有任何的其他硬件任务会受到影响,多个硬件任务可以共享整个处理区域。可见,通过对子块的重新利用,动态重配置能够提高FPGA的利用率。并行任务的数据仅仅受到FPGA容量的限制。然而子块的动态分配和替换操作会带来额外时间损耗。硬件任务的复杂化和重定位的频繁发生,导致了重配置代价的增加。因此,通过对重配置的资源映射进行高效管理以改善重构的性能就变得非常重要。

在线的FPGA分配是减少重配置代价的重要方向。FPGA的高度碎片化会导致相当差的配置结果:在有足够空闲面积的情况下,却由于碎片化问题造成硬件任务不能在片上进行配置。在线的FPGA分配用于确定怎样将硬件任务分配到可重构平台的恰当区域,从而能够更好的利用可重构FPGA。Bazargan等人提出了针对2D PRTR FPGA的bin-packing在线分配方法。该方法以可重配置计算系统的模型建立为基础,通过对经典算法的扩展来进行在线的实际分配;其中最大空闲方块(Maximum Empty Rectangles, MER)的大小是Ω(n2)。Walder等人提出了使用哈希-矩阵数据结构来对空闲区域进行管理,并设计了在线分配算法。该方法是既有方法的一种改进,其改进之处在于可用处理区域的实际分裂时间被推迟,从而能够提高分配的质量。Ahmadinia等人所提出的方法与Bazargan等人提出的方法相似。这两种方法的主要差别在于所管理的处理区域(processing-area):Ahmadinia方法用于管理已占用的区域,而Bazargan方法则用于管理空闲区域。这两种方法具有相同的复杂度,在进行数据结构管理时也非常耗时,所需要的时间复杂度函数是非线性的。

Cui等人提出了用来寻找和构建完成MER集合的算法,能够较为高效的进行处理区域的管理。Lu等人提出了运行时MER的管理算法。Lu等人的算法对MER完整集合的构建基于已配置任务边的动态信息。新的优化方法提出了三种用于改善在线分配算法的技术,分别是仅在合需要时合并(Merging Only if Needed, MON),部分合并(Partial Merging, PM)和直接合并(Direct Combination, DC)。这三种技术分别应用于不同的具体操作环境当中。Handa等人提出了在PRTR FPGA上快速找到空闲空间的方法。该算法的基础是使用阶梯型数据结构以反映基于MER的空闲区域状态。Tabero等人提出了硬件多任务的新方法,使用基于顶点列表集合的空间管理器来实现处理区域管理。顶点列表用来描述PRTR(Partial Run-Time Reconfigurable)平台上未被占用区域的片段。当新任务到达的时候,区域管理器将会搜索顶点列表并使用不同的位置启发式算法来找到合适的位置。这种方法能够以更高的效率来管理处理区域,但是由于任务的插入和删除,导致对顶点列表的管理非常复杂。此外,不是所有顶点列表中的顶点都是可用的任务分配候选区域。事实上只有一部分顶点列表中的顶点能够作为任务分配的候选位置使用。该算法的复杂度是Ο(n2),其中n是FPGA平台上运行时的任务数量。

目前的研究和实现主要关注于如何进行可重构器件本身的管理和优化,但是由于可重构器件对于一般性任务的处理速度并不够高效,因此可重构器件往往需要与通用处理器进行协同,共同完成任务的处理。



技术实现要素:

本发明的目的在于提供一种基于可重构器件的混合处理器架构及其任务调度方法,以高效的处理不同类型的任务。

本发明解决其技术问题采用的技术方案如下:

一种混合处理器架构,包括:

通用处理器和可重构器件,以及调度器、定位器和加载器,所述通用处理器和可重构器件通过总线二连接;其中,

所述通用处理器包括:通用处理器核,用于一般任务的处理和调度器的执行;等待任务队列,用于保存到达系统中的任务;执行任务队列,用于保存调度到通用处理器核处理的任务;总线一,用于连接通用处理器核、等待任务队列、执行任务队列和总线二;

所述可重构器件包括:嵌入式处理器核,用于定位器和加载器的执行;可重构任务队列,用于保存可重构任务;可重构区域,包括可重构的具体硬件单元;总线三,用于连接嵌入式处理器核、可重构任务队列、可重构区域和总线二;

所述调度器用于对系统中到达的任务进行调度,所述定位器用于对可重构器件的空闲空间进行管理,所述加载器用于将可重构任务加载到可重构器件上。

进一步的,所述调度器对系统中到达的任务进行调度具体包括:

调度器从等待任务队列中取出一个任务,如果取出的任务不是可重构任务,则该任务被放入执行任务队列;如果取出的任务是可重构任务,则该任务被放入可重构任务队列。

进一步的,所述定位器对可重构器件的空闲空间进行管理具体包括:

当新的可重构任务到达可重构器件时,定位器对可重构器件的空闲空间进行搜索,找出合适的位置给新任务使用;

如果任务执行完成后释放了所占用的空间,由定位器将释放出的空间加入到空闲空间记录当中,并进行空闲空间记录的更新,为下一次的分配做好准备。

进一步的,所述加载器将可重构任务加载到可重构器件上具体包括:

加载器根据可重构任务的需要,对可重构器件上的逻辑资源进行功能分配,然后再以配置好的资源来完成可重构任务;

当可重构任务执行完成后,加载器释放由可重构任务占用的资源。

本发明还提供了一种所述的混合处理器架构的任务调度方法,包括如下步骤:

S1,唤醒调度器,搜索并识别等待任务队列中的混合任务种类;

S2、分配混合任务,交由通用处理器和可重构器件分别执行;

S3、搜索可重构器件的空闲空间,并将任务执行完成后释放出的空间加入到空闲空间记录当中;

S4、加载新的可重构任务到可重构器件中执行。

进一步的,步骤S1具体包括:

当有新任务到达或者有任务执行结束时,唤醒调度器搜索等待任务队列中的任务并识别搜索到的任务是通用任务还是可重构任务,其中,所述通用任务为适合于通用处理器处理而不适合于可重构器件处理的任务,所述可重构任务为适合于可重构器件处理的任务。

进一步的,步骤S2具体包括:

如果调度器搜索到的任务是通用任务,则将该任务分配到执行任务队列中,如果调度器搜索到的任务是可重构任务,则将该任务分配到可重构任务队列当中,同时调度器通知定位器为可重构任务寻找可用的可重构器件上的空闲空间;

不断重复上述过程,直到等待任务队列当中所有的任务都被分配。

进一步的,步骤S3具体包括:

当新的可重构任务到达可重构器件时,定位器对可重构器件的空闲空间进行搜索,找出合适的位置给新的可重构任务使用;

如果可重构任务执行完成后释放了所占用的空间,由定位器将释放出的空间加入到空闲空间记录当中,并进行空闲空间记录的更新,为下一次的分配做好准备。

进一步的,步骤S4具体包括:

加载器对由定位器提供的可重构器件的空闲空间进行配置,开始可重构任务的执行;执行时,加载器根据可重构任务的计算机需要,对可重构器件上的逻辑资源进行功能分配,然后以配置好的资源完成可重构任务的计算需求;

当可重构任务执行完成后,加载器释放由该可重构任务占用的资源,被释放的资源再由定位器进行管理,提供给后续的任务使用。

本发明与现有技术相比,具有的有益的效果是:将可重构器件与通用处理器通过总线连接起来,可以完成通信功能;进而不同类型的任务可以分别在通用处理器和可重构器件上执行。其主要特点如下:

(1)高效性。对于通用任务,通用处理器可以以较高的效率来进行处理;而对于特定的任务,可重构器件以硬件的方式来实现。由于硬件实现具有比软件实现更高的效率。因此,与传统的通用处理器相比,本发明的方法能够实现通用任务和特定任务的高效处理,具有高效性的特点。

(2)灵活性。特定的任务通常具有特殊的算法或者特殊的数据结构。通用处理器在完成此类任务时,对于特殊算法和数据结构不能高效的处理。而可重构器件则通过可重构区域的部分重构,从硬件角度实现特定任务,从而能够更为灵活的进行特定任务的处理。

附图说明

图1是本发明的混合处理器架构的组成连接示意图。

图2是本发明的混和处理器架构的任务调度方法的流程示意图。

具体实施方式

为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。

一种混合处理器架构及其任务调度方法,其具体实现流程如下。

1)通用处理器与可重构器件混合结构

可重构器件是进行可重构计算研究的基础。可重构器件包含了大量的可配置逻辑单元,并通过内部网络连接在一起。由于可重构器件具备了动态可重构的特征,因此可以用于进行特定应用的加速,同时提供应用加速的灵活性。但是由于可重构器件本身通常不提供专门的通用核,因此不适合于进行一般性任务的调度与计算任务。如果使用可重构器件来实现通用核的功能,则无论从成本上还是性能上都是不合适的。因此对于可重构器件的使用,是将可重构器件与通用处理器放置在一起,构成一个带有可重构部分的处理器,其结构如图1所示。

对硬件的管理由三个软件模块来共同完成,包括了调度器、定位器和加载器,从而完成软硬件任务的分配与加载。

这种结构包括了一个通用处理器、总线二和一个可重构器件。

通用处理器片上包括了:通用处理器核,用于一般任务的处理和调度器的执行;等待任务队列,用于保存到达系统中的任务;执行任务队列,用于保存调度到通用处理器核处理的任务;总线一,用于连接通用处理器核、等待任务队列、执行任务队列和总线二。

总线二用于连接通用处理器核可重构器件。

可重构器件包括了:嵌入式处理器核,用于执行定位器和加载器的执行;可重构任务队列,用于保存可重构任务;可重构区域,用于可重构的具体硬件单元;总线三,用于连接嵌入式处理器核、可重构任务队列、可重构区域和总线二。

2)调度器

调度器对系统中到达的任务进行调度。根据任务是否是可重构任务,调度器进行任务调度。调度器从等待任务队列中取出一个任务,如果取出的这个任务不是可重构任务,这个任务被放入执行任务队列;如果这个任务是可重构任务,这个任务被放入可重构任务队列。

3)定位器

定位器对可重构器件的空闲空间进行管理。可重构器件上的可重构单元所发生的状态变化由定位器进行记录和维护。定位器所维护的空闲空间记录是为新任务分配空间的依据。在需要为新的可重构任务分配空间时,当新的任务到达可重构器件时,定位器对可重构器件的空闲空间进行搜索,找出合适的位置给新任务使用。如果任务执行完成后释放了所占用的空间,由定位器将释放出的空间加入到空闲空间记录当中,并进行空闲空间记录的更新,为下一次的分配做好准备。

4)加载器

加载器将可重构任务加载到可重构器件上。加载器根据可重构任务的需要,对可重构器件上的逻辑资源进行功能分配,然后再以配置好的资源来完成可重构任务。当可重构任务执行完成后,加载器将释放由可重构任务占用的资源。

5)混合处理器架构的任务调度,如图2所示。

a)唤醒调度器

在混合处理器架构所支持的系统中,会出现大量的任务。所有到达的任务都会停留在等待任务队列中,以等待进行进一步的处理。由于到达的任务并不一定都适合于使用可重构器件进行处理,由调度器来决定哪些任务是由通用处理器来完成,而哪些任务将会被调度到可重构器件,通过可重构器件来完成计算任务。每次新任务到达或者有任务执行结束时,系统都会唤醒调度器。适合于通用处理器处理而不适合于可重构器件处理的任务被称为“通用任务”。适合可重构器件处理的任务被称为“可重构任务”。

例如,对于任务T1,T2,T3,T4和T5。其中,T1,T4和T5为通用任务,T2和T3为可重构任务。在到达系统后,这5个任务均进入等待任务队列。这5个任务的到达都会唤醒调度器。

b)分配混合任务

调度器被唤醒后搜索等待任务队列中的任务。如果调度器搜索到的任务是通用任务,则将该任务分配到执行任务队列中。如果调度器搜索到的可执行任务是可重构任务,则将该可执行任务分配到可重构任务队列当中;同时调度器会通知定位器为可重构任务寻找可用的可重构器件上的空闲空间。上述过程不断重复,直到等待任务队列当中所有的任务都被分配。对于分配给通用处理器的任务,按照通用处理器的常用任务调度方法进行调度,然后由通用处理器执行完成。对于分配到可重构器件上的任务,由可重构器件来执行完成。

例如,对于任务T1,T2,T3,T4和T5。其中,T1,T4和T5为通用任务,T2和T3为可重构任务。调度器被唤醒后,依次搜索到任务T1,T2,T3,T4和T5。调度器搜索到的任务T1,T4和T5是通用任务,则任务T1,T4和T5被依次放入执行任务队列。调度器搜索到的任务T2和T3是可重构任务,则任务T2和T3被依次放入可重构任务队列。在任务T2和T3被依次放入可重构任务队列的同时,调度器还分别通知定位器为任务T2和T3搜索和分配合适的可重构器件上的空闲空间。

c)可重构器件空闲空间搜索

当新的可重构任务到达可重构器件时,定位器对可重构器件的空闲空间进行搜索,找出合适的位置给新的可重构任务使用。如果可重构任务执行完成后释放了所占用的空间,由定位器将释放出的空间加入到空闲空间记录当中,并进行空闲空间记录的更新,为下一次的分配做好准备。

例如,对于任务T2和T3,这两个任务都是可重构任务。定位器通过对空闲空间记录的检索,为这两个任务T2和T3分别找到了合适的位置,再由加载器进行具体的可重构任务加载。在任务T2和T3处理完毕后,任务T2和T3所占用的可重构器件上的空间被释放出来,由定位器进行管理。

d)加载可重构任务到可重构器件

加载器将可重构任务加载到由定位器提供的可重构器件空闲空间中。加载器对由定位器提供的可重构器件的空闲空间进行配置,开始可重构任务的执行。加载器根据可重构任务的计算机需要,对可重构器件上的逻辑资源进行功能分配,然后再以配置好的资源来完成可重构任务的计算需求。当可重构任务执行完成后,加载器将释放由该可重构任务占用的资源。所有被释放的资源再由定位器进行管理,用来提供给后续的任务使用。

例如,对于任务T2,在定位器为任务T2搜索并分配了合适的可重构器件空闲空间S2后,由加载器对S2上的资源进行配置,配置完成后再将任务T2加载到S2上,由被加载器配置后的S2区域的资源完成任务T2的计算要求。

以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1