异构多核可重构混合系统中的中间件系统及任务执行方法转让专利

申请号 : CN201110301739.2

文献号 : CN102508712B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周学海李曦王超陈香兰冯晓静陈鹏张军能王爱立

申请人 : 中国科学技术大学苏州研究院

摘要 :

本发明公开了一种异构多核可重构混合系统中的中间件系统,其特征在于所述中间件系统包括向用户提供应用程序的运行环境和编程接口的应用程序管理层、负责进行任务的划分、映射和运行时调度的任务划分与调度层、集成了多种IP核的驱动与输入和输出接口的驱动与输入/输出层以及通讯接口层;所述应用程序管理层提供应用层需要的应用程序接口与运行时库;所述任务划分与调度层通过任务划分模块、映射模块与调度模块对任务请求进行划分调度处理;所述驱动与输入/输出层集成硬件驱动利用FPGA平台的硬件资源;所述通讯接口层负责进行可重构硬件平台之间的数据传输。该系统通过在运行时对任务进行相关性的监测和自动并行化来提高平台的吞吐率和系统的性能。该系统能够为异构可重构混合系统提供任务划分调度等中间件支持,从而提高任务的执行效率。

权利要求 :

1.一种异构多核可重构混合系统中的中间件系统,其特征在于所述中间件系统包括向用户提供应用程序的运行环境和编程接口的应用程序管理层、负责进行任务的划分、映射和运行时调度的任务划分与调度层、集成了多种IP核的驱动与输入和输出接口的驱动与输入/输出层以及通讯接口层;所述应用程序管理层提供应用层需要的应用程序接口与运行时库;所述任务划分与调度层通过任务划分模块、映射模块与调度模块对任务请求进行划分调度处理;所述驱动与输入/输出层集成硬件驱动利用FPGA平台的硬件资源;所述通讯接口层负责进行可重构硬件平台之间的数据传输;所述通讯接口层包括硬件接口、软件接口以及可重构接口;硬件接口用于微处理器和硬件IP核之间的通信,并通过中断控制器检测互连的中断请求;软件接口用于两个微处理器之间传输信息;可重构接口用于IP核的比特流的重新配置;所述应用程序管理层集成运行时分析模块以监测和剖析应用程序。

2.一种权利要求1所述的异构多核可重构混合系统中的中间件系统的任务执行方法,其特征在于所述方法包括以下阶段:

(1)变量分配阶段:针对每个需要执行的任务,获取其输入和输出参数变量,并将其保存到内部存储缓冲中;每个任务的操作数分配一个表项;如果该表中没有目前的变量,则变量将被隐式重命名一个内部变量;

(2)任务划分阶段:针对每个任务,确定运行的目标计算单元;根据如下规则进行划分任务:如果存在闲置的硬件IP核,将任务发送到硬件,否则,任务将被发送到通用处理器;

(3)任务执行阶段:将任务通过互联核通信机制将任务发送到混合系统中的计算单元中;

(4)任务同步阶段:当任务执行完毕之后,进行同步,并将结果返回用户。

3.根据权利要求2的方法,其特征在于所述方法任务执行阶段时通过中断返回任务执行的结果,采用先到先得先服务的策略处理中断请求。

4.根据权利要求2的方法,其特征在于所述方法任务同步阶段采用栅同步机制,每个表都包含许多计算单元条目,该表跟踪任务总数以及已经完成的任务数;如果两者相等,则标志所有的任务均运行结束,则可以进行同步;在任务同步时,主要针对任务间的数据相关进行检查,并确保所有的任务都按顺序返回。

说明书 :

异构多核可重构混合系统中的中间件系统及任务执行方法

技术领域

[0001] 本发明属于片上多核计算平台的中间件技术领域,具体涉及一种异构多核可重构混合系统中的中间件系统及任务执行方法。

背景技术

[0002] 动态可重构又被称为运行时可重构(Run Time Reconfiguration),是指在运行时进行重构,即程序执行时为可重构硬件注入或换出不同的配置信息,实时地改变硬件的结构,以适应不同的硬件算法,从而具有更高的芯片利用率和系统运行效率。
[0003] 在上世纪90年代末,先后出现了几种用于特定领域,基于定制可重构硬件的动态可重构系统。PipeRench是CMU提出的一种流水化粗粒度可重构系统,其研发始于1997年,并于2002年流片成功。将一个任务分成若干流水阶段,能使可重构硬件运行超过其存储规模的虚拟任务。其缺点是应用范围固定,且每个流水级只能是当前状态和上一个流水级的函数。Morphosys采用粗粒度结构,深度可编程,其上下文达32个,缺点是配置不够灵活,只能应用于图像处理的某些任务。类似的项目还有Paddi,Cameron,Chess Array,Rapid等,它们都在扩展性,通用性方面遇到一定的困难。
[0004] 目前,动态可重构系统中除了可重构芯片外,往往还包含一个或者若干个通用处理器,它用于处理资源管理、重构等任务。通常称这种系统为异构多核可重构混合系统。在这种系统中,如何对硬件进行抽象,并对用户提供访问接口和编程模型是目前需要解决的难题。
[0005] 一般说来操作系统位于硬件的上层,提供了一定的抽象,可以简化应用程序的开发,在操作系统环境下,应用不再是孤立的个体。操作系统提供与应用相独立的各种服务(如:FIFO缓冲区、定时器、信号量、驱动程序等)供用户调用,而用户提交的任务在一个更高的层次上实现应用相关的特定功能。可重构硬件(尤其是部分可重构FPGA)可以看作与ISP平等的异构计算资源,通过为其设计操作系统,能够加快混成系统的开发进度,缩短上市时间,降低开发成本,增强系统可移植性和灵活性,降低设计复杂度和维护难度,更能有效支持动态可重构混成系统中的多任务、多用户环境,提高可重构芯片的利用率和配置速度,从而达到充分发挥计算能力的目的。自从动态可重构系统出现以来,尤其是随着混成系统的广泛应用,国内外已经有许多学者在这个领域进行了探索性的研究。
[0006] 由于可重构混成操作系统的概念近几年才被提出,目前还存在较多的问题需要进一步探索和研究。本发明因此而来。

发明内容

[0007] 为了克服背景技术中存在的不足,本发明的一个目的在于提供一种异构多核可重构混合系统中的中间件及任务执行模型,其包括一个应用程序管理层,一个任务划分与调度层,驱动与输入/输出层,以及通讯接口层所构成。本发明提出的异构多核可重构混合系统中的中间件,能够为异构可重构混合系统提供任务划分调度等中间件支持,从而提高任务的执行效率。
[0008] 为了解决现有技术中的这些问题,本发明提供的技术方案是:
[0009] 一种异构多核可重构混合系统中的中间件系统,其特征在于所述中间件系统包括向用户提供应用程序的运行环境和编程接口的应用程序管理层、负责进行任务的划分、映射和运行时调度的任务划分与调度层、集成了多种IP核的驱动与输入和输出接口的驱动与输入/输出层以及通讯接口层;所述应用程序管理层提供应用层需要的应用程序接口与运行时库;所述任务划分与调度层通过任务划分模块、映射模块与调度模块对任务请求进行划分调度处理;所述驱动与输入/输出层集成硬件驱动利用FPGA平台的硬件资源;所述通讯接口层负责进行可重构硬件平台之间的数据传输。
[0010] 优选的,所述通讯接口层包括硬件接口、软件接口以及可重构接口;硬件接口用于微处理器和硬件IP核之间的通信,并通过中断控制器检测互连的中断请求;软件接口用于两个微处理器之间传输信息;可重构接口用于IP核的比特流的重新配置。
[0011] 优选的,所述应用程序管理层集成运行时分析模块以监测和剖析应用程序。
[0012] 本发明还提供了一种异构多核可重构混合系统中的中间件系统的任务执行方法,其特征在于所述方法包括以下阶段:
[0013] (1)变量分配阶段:针对每个需要执行的任务,获取其输入和输出参数变量,并将其保存到内部存储缓冲中;
[0014] (2)任务划分阶段:针对每个任务,确定运行的目标计算单元;
[0015] (3)任务执行阶段:将任务通过互联核通信机制将任务发送到混合系统中的计算单元中;
[0016] (4)任务同步阶段当任务执行完毕之后,进行同步,并将结果返回用户。
[0017] 优选的,所述方法变量分配阶段时每个任务的操作数分配一个表项;如果该表中没有目前的变量,则变量将被隐式重命名一个内部变量。
[0018] 优选的,所述方法任务划分阶段时是通过如下方法进行划分任务的:如果存在闲置的硬件IP核,将任务发送到硬件,否则,任务将被发送到通用处理器。
[0019] 优选的,所述方法任务执行阶段时通过中断返回任务执行的结果,采用先到先得先服务的策略处理中断请求。
[0020] 优选的,所述方法任务同步和提交阶段采用栅同步机制,每个表都包含许多计算单元条目,该表跟踪任务总数以及已经完成的任务数;如果两者相等,则标志所有的任务均运行结束,则可以进行同步;在任务同步时,主要针对任务间的数据相关进行检查,并确保所有的任务都按顺序返回。
[0021] 应用程序管理层向用户提供应用程序的运行环境和编程接口,其构成方式主要包括应用程序接口与运行时库。所述任务划分与调度层主要负责进行任务的划分、映射和运行时调度,因此包括任务划分模块、映射模块与调度模块。所述驱动与输入/输出层中集成了多种IP核的驱动与输入和输出接口。所述通讯接口层包括硬件接口、软件接口以及可重构接口。
[0022] 本发明的异构多核可重构混合系统中任务执行模型,包含四个阶段:变量分配阶段、任务划分阶段、任务执行阶段以及任务同步阶段构成。所述变量分配阶段,针对每个需要执行的任务,获取其输入和输出参数变量,并将其保存到内部存储缓冲中,作为后续工作的基础。所述任务划分阶段,针对每个任务,确定运行的目标计算单元。所述任务执行阶段,将任务通过互联核通信机制将任务发送到混合系统中的计算单元中。所述任务同步阶段,当任务执行完毕之后,进行同步,并将结果返回用户。
[0023] 本发明涉及一种异构多核可重构混合系统,具体涉及一种异构多核可重构混合系统中的中间件及任务执行模型。本发明提出的异构多核可重构混合系统中的中间件及任务执行模型,能够为异构可重构混合系统提供任务划分调度等中间件支持,从而提高任务的执行效率。
[0024] 与现有技术相比,本发明具有以下显著的优点:
[0025] 1、本发明提出的异构多核可重构混合系统,提供了异构多核可重构硬件的抽象,从而对可重构多核系统提供了中间件支持。
[0026] 2、本发明提出的任务执行模型,能够为任务提供运行环境与划分和调度的操作系统级支持,从而实现的任务的自动划分与动态调度。
[0027] 综上所述,本发明提供了一种异构多核可重构混合系统中的中间件及任务执行模型,其包括一个应用程序管理层,一个任务划分与调度层,驱动与输入/输出层,以及通讯接口层所构成。所述应用程序管理层包括应用程序接口与运行时库,所述任务划分与调度层包括任务划分模块、映射模块与调度模块,所述驱动与输入/输出层中集成了多种IP核的驱动与输入和输出接口,所述通讯接口层包括硬件接口、软件接口以及可重构接口。本发明所涉及的任务执行模型包含四个阶段:变量分配阶段、任务划分阶段、任务执行阶段以及任务同步阶段构成。本发明提出的异构多核可重构混合系统中的中间件及任务执行模型,能够为异构可重构混合系统提供任务划分调度等中间件支持,从而提高任务的执行效率。

附图说明

[0028] 下面结合附图及实施例对本发明作进一步描述:
[0029] 图1是本发明的异构多核可重构混合系统中的中间件层次化框图;
[0030] 图2是本发明所涉及的任务执行模型包含四个阶段的流程图;

具体实施方式

[0031] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。
[0032] 实施例
[0033] 如图1所示,为异构多核可重构混合系统中的中间件层次化框图,本发明涉及一种异构多核可重构混合系统中的中间件及任务执行模型,其包括一个应用程序管理层,一个任务划分与调度层,驱动与输入/输出层,以及通讯接口层所构成。所述应用程序管理层包括应用程序接口与运行时库,所述任务划分与调度层包括任务划分模块、映射模块与调度模块,所述驱动与输入/输出层中集成了多种IP核的驱动与输入和输出接口,所述通讯接口层包括硬件接口、软件接口以及可重构接口。
[0034] (1)应用程序管理层
[0035] 为了提供一个任务的执行环境,主要包括用户运行时库。这些用户库以及与其它内核库是通过应用编程接口(API)提供。API显示一个高层次的抽象视图,内部实现被定义的API,用户界面将保持一个持久化单元,即使重新配置硬件,该API页保持不变。
[0036] 此外,应用程序管理层中集成运行时分析模块,以支持应用程序的监测和剖析技术。应用程序管理层支持传统的应用程序的监测和剖析方法,包括热点分析,未初始化的内存检查,动态的信息流跟踪,数组边界检查,和软错误检查操作。这些运行时的监测方法,能够提高系统的安全性和可靠性,以及可编程行。另外,通过分析获得的热点,可以获得程序运行的高频率部分即热点代码,可用于指导IP配置。
[0037] (2)任务划分和调度层
[0038] 任务划分和调度方法,在任务被发送到IP核之前,决定了任务在哪个功能单元上运行。本发明的中间件和操作系统相比,提供了对自重构的支持(如Xlinx DPR或SR),这使得系统拥有在运行时动态重新配置的优势。静态的核心模块和重新配置模块是单独实现的,其中只有重构模块是在运行时重新配置,以减少比特流下载的时间开销。在任务划分和调度层,重新配置核心库集成。在IP核重新配置之后,任务需要进行重新划分和调度。因此,任务与IP核的映射会被实时更新。
[0039] 对于每个IP核,具体任务的执行时间,加速比,面积和功耗等被用户进行任务划分,以实现系统的负载均衡和更高的吞吐量。
[0040] 由于FPGA是一个面积受限的平台,不同IP核都在争夺有限的硬件资源。任务调度的主要目的在于提高平台吞吐量,以及FPGA的使用效率。
[0041] (3)驱动程序和I/O层
[0042] 为了利用集成在FPGA平台的硬件资源,本层主要负责集成外设和存储器系统的驱动程序。常用的驱动程序主要包括:互连驱动程序是用来允许微处理器和IP内核的应用程序之间传输数据和控制消息通过总线或片上网络进行。文件系统驱动程序用来访问本地文件。静态比特流和局部配置比特流在文件系统中存储。当任务执行完毕后,结果将返回一个中断信号,从而中断控制器是主要负责多个任务返回数据的传输。UART串口和定时器主要负责用户调试。每个微处理器的本地存储器存储系统介绍。重构控制器负责IP核的动态重构和运行时配置。
[0043] (4)通信接口层
[0044] 通信接口层负责进行可重构硬件平台之间的数据传输。平台提供了3种基本数据类型:统一的软件接口(USI),统一的硬件接口(UHI),和统一的重新配置接口(URI):USI主要用于两个微处理器之间传输信息。USI中包含了系列库函数。UHI主要用户微处理器和硬件IP核之间的通信,并通过中断控制器检测互连的中断请求。URI仅用于IP部分的比特流的重新配置。
[0045] 图2是本发明所涉及的任务执行模型包含四个阶段的流程图。一个具体的运行时IP核的重构流程示例如下:
[0046] (1)变量的分配阶段
[0047] 任务表示为do_T_adder(*in,*out),*in表示输入数组的起始地址,而*out表示输出数组。为了自动检测数据相关,任务执行模型需要收集每个发出的任务的所有操作数。但是,我们只能保持有限的操作数,而不是无限的用户定义的变量(在大多数编程模型,用户可以使用他们想要的任何操作数)。因此,每个任务的操作数需要一个表项分配。如果该表中没有目前的变量,则变量将被隐式重命名一个内部变量。
[0048] (2)任务划分阶段
[0049] 任务被发送到计算单元之前,任务执行模型必须决定任务运行上的计算单元。在本发明中我们采取如下策略:如果存在闲置的硬件IP核,将任务发送到硬件,否则,任务将被发送到通用处理器。
[0050] (3)任务执行阶段
[0051] 计算单元在收到所有操作数之后会自动开始执行。并通过中断返回结果。一个中断控制器检测结果的中断请求并更新任务变量。在任务执行模型中,因为从不同的任务的结果可能会在同一时间返回,故采用先到先得先服务的策略是用来处理中断。
[0052] (4)任务同步和提交
[0053] 一旦调度服务体检测到所有的计算已完成单元执行,则进入同步阶段。任务执行模型利用一个栅同步机制。每个表都包含许多计算单元条目。该表跟踪任务总数以及已经完成的任务数。如果两者相等,则标志所有的任务均运行结束,则可以进行同步。在任务同步时,主要针对任务间的数据相关进行检查,并确保所有的任务都按顺序返回。
[0054] 上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。