一种应用于粗粒度可重构阵列的自动映射方法.pdf

上传人:a**** 文档编号:1566332 上传时间:2018-06-25 格式:PDF 页数:9 大小:1,010.24KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310027776.8

申请日:

2013.01.21

公开号:

CN103116493A

公开日:

2013.05.22

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/44申请日:20130121|||公开

IPC分类号:

G06F9/44

主分类号:

G06F9/44

申请人:

东南大学

发明人:

齐志; 马璐; 刘波; 葛伟; 曹鹏; 杨军

地址:

210096 江苏省南京市四牌楼2号

优先权:

专利代理机构:

南京苏高专利商标事务所(普通合伙) 32204

代理人:

夏雪

PDF下载: PDF下载
内容摘要

本发明公开了一种应用于粗粒度可重构阵列的自动映射方法,包括以下步骤:将用高级语言编写的应用算法,划分为由主控处理器执行的软件部分和由可重构阵列加速的硬件部分;对在阵列上加速的硬件部分,使用编译器进行编译,得到描述此部分代码的数据流图;选择数据流图中待映射的操作节点并映射到阵列上,对剩余的操作节点反复进行上述选择,直到数据流图中的所有操作节点都被映射,得到可在阵列上运行的配置文件;将得到的配置文件与由主控处理器执行的软件部分整合,得到整合后的新的应用算法;将新的应用算法用主控处理器的编译器进行编译,生成能在硬件上运行的机器代码。本发明实现对可重构阵列硬件资源的高效分配和调度,以减少映射时间。

权利要求书

权利要求书一种应用于粗粒度可重构阵列的自动映射方法,其特征在于包括以下步骤:
1a)将用高级语言编写的应用算法,划分为由主控处理器执行的软件部分和由可重构阵列加速的硬件部分;
1b)对在可重构阵列上加速的硬件部分,使用编译器进行编译,得到描述此部分代码的数据流图;
1c)选择数据流图中待映射的操作节点:将数据流图中的全部未映射的操作节点按照优先级由高到低排列,选择优先级最高的操作节点作为待映射的操作节点;
1d)将所选择的待映射的操作节点映射到可重构阵列上,对剩余的操作节点反复进行步骤1c)所述的排列和选择,直到数据流图中的所有操作节点都被映射,得到可在可重构阵列上运行的配置文件;
1e)将得到的配置文件与步骤1a)所述的由主控处理器执行的软件部分整合,得到整合后的新的应用算法;
1f)将所述新的应用算法用主控处理器的编译器进行编译,生成能在硬件上运行的机器代码。
根据权利要求1所述的一种应用于粗粒度可重构阵列的自动映射方法,其特征在于,将所选择的待映射的操作节点映射到可重构阵列上的步骤如下:
2a)建立功能单元的优先级列表:计算可重构阵列中功能单元的计算开销,并依据计算开销的大小建立优先级列表,计算开销越大则优先级越低,计算开销越小则优先级越高;
2b)确定分配功能单元:对优先级列表中的功能单元逐一检测,选择第一个未被占用的优先级最高的功能单元;
2c)确定输入输出数据的路由:当步骤2b)中完成对该操作节点分配功能单元后,为该操作节点的输入输出数据选择路由路径;
2d)回溯分析:如果在步骤2b)中没有找到可映射的功能单元,并且回溯次数没有超过设定的阈值,则释放若干已映射操作节点,回到步骤1c);
2e)切割数据流图:当回溯次数超过设定的阈值,仍没有找到可映射的功能单元时,切割数据流图,将剩下的未映射的操作节点组成新的数据流图,回到步骤1c);重复上述过程,直至所有操作节点均被映射。
根据权利要求1所述的一种应用于粗粒度可重构阵列的自动映射方法,其特征在于,所述的操作节点的优先级与其在数据流图中的高度成正比。
根据权利要求3所述的一种应用于粗粒度可重构阵列的自动映射方法,其特征在于,对在数据流图中的高度相同的所述操作节点,其优先级与其子节点的个数成正比。
根据权利要求2所述的映射方法,其特征在于,所述的功能单元的优先级与其路由资源的个数成正比。
根据权利要求1所述的一种应用于粗粒度可重构阵列的自动映射方法,其特征在于,所述编译器为开源编译器IMPACT。

说明书

一种应用于粗粒度可重构阵列的自动映射方法.pdf_第1页
第1页 / 共9页
一种应用于粗粒度可重构阵列的自动映射方法.pdf_第2页
第2页 / 共9页
一种应用于粗粒度可重构阵列的自动映射方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种应用于粗粒度可重构阵列的自动映射方法.pdf》由会员分享,可在线阅读,更多相关《一种应用于粗粒度可重构阵列的自动映射方法.pdf(9页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103116493 A(43)申请公布日 2013.05.22CN103116493A*CN103116493A*(21)申请号 201310027776.8(22)申请日 2013.01.21G06F 9/44(2006.01)(71)申请人东南大学地址 210096 江苏省南京市四牌楼2号(72)发明人齐志 马璐 刘波 葛伟 曹鹏杨军(74)专利代理机构南京苏高专利商标事务所(普通合伙) 32204代理人夏雪(54) 发明名称一种应用于粗粒度可重构阵列的自动映射方法(57) 摘要本发明公开了一种应用于粗粒度可重构阵列的自动映射方法,包括以下步骤:将用高级语言编写的。

2、应用算法,划分为由主控处理器执行的软件部分和由可重构阵列加速的硬件部分;对在阵列上加速的硬件部分,使用编译器进行编译,得到描述此部分代码的数据流图;选择数据流图中待映射的操作节点并映射到阵列上,对剩余的操作节点反复进行上述选择,直到数据流图中的所有操作节点都被映射,得到可在阵列上运行的配置文件;将得到的配置文件与由主控处理器执行的软件部分整合,得到整合后的新的应用算法;将新的应用算法用主控处理器的编译器进行编译,生成能在硬件上运行的机器代码。本发明实现对可重构阵列硬件资源的高效分配和调度,以减少映射时间。(51)Int.Cl.权利要求书1页 说明书5页 附图2页(19)中华人民共和国国家知识产。

3、权局(12)发明专利申请权利要求书1页 说明书5页 附图2页(10)申请公布号 CN 103116493 ACN 103116493 A1/1页21.一种应用于粗粒度可重构阵列的自动映射方法,其特征在于包括以下步骤:1a)将用高级语言编写的应用算法,划分为由主控处理器执行的软件部分和由可重构阵列加速的硬件部分;1b)对在可重构阵列上加速的硬件部分,使用编译器进行编译,得到描述此部分代码的数据流图;1c)选择数据流图中待映射的操作节点:将数据流图中的全部未映射的操作节点按照优先级由高到低排列,选择优先级最高的操作节点作为待映射的操作节点;1d)将所选择的待映射的操作节点映射到可重构阵列上,对剩余。

4、的操作节点反复进行步骤1c)所述的排列和选择,直到数据流图中的所有操作节点都被映射,得到可在可重构阵列上运行的配置文件;1e)将得到的配置文件与步骤1a)所述的由主控处理器执行的软件部分整合,得到整合后的新的应用算法;1f)将所述新的应用算法用主控处理器的编译器进行编译,生成能在硬件上运行的机器代码。2.根据权利要求1所述的一种应用于粗粒度可重构阵列的自动映射方法,其特征在于,将所选择的待映射的操作节点映射到可重构阵列上的步骤如下:2a)建立功能单元的优先级列表:计算可重构阵列中功能单元的计算开销,并依据计算开销的大小建立优先级列表,计算开销越大则优先级越低,计算开销越小则优先级越高;2b)确。

5、定分配功能单元:对优先级列表中的功能单元逐一检测,选择第一个未被占用的优先级最高的功能单元;2c)确定输入输出数据的路由:当步骤2b)中完成对该操作节点分配功能单元后,为该操作节点的输入输出数据选择路由路径;2d)回溯分析:如果在步骤2b)中没有找到可映射的功能单元,并且回溯次数没有超过设定的阈值,则释放若干已映射操作节点,回到步骤1c);2e)切割数据流图:当回溯次数超过设定的阈值,仍没有找到可映射的功能单元时,切割数据流图,将剩下的未映射的操作节点组成新的数据流图,回到步骤1c);重复上述过程,直至所有操作节点均被映射。3.根据权利要求1所述的一种应用于粗粒度可重构阵列的自动映射方法,其特。

6、征在于,所述的操作节点的优先级与其在数据流图中的高度成正比。4.根据权利要求3所述的一种应用于粗粒度可重构阵列的自动映射方法,其特征在于,对在数据流图中的高度相同的所述操作节点,其优先级与其子节点的个数成正比。5.根据权利要求2所述的映射方法,其特征在于,所述的功能单元的优先级与其路由资源的个数成正比。6.根据权利要求1所述的一种应用于粗粒度可重构阵列的自动映射方法,其特征在于,所述编译器为开源编译器IMPACT。权 利 要 求 书CN 103116493 A1/5页3一种应用于粗粒度可重构阵列的自动映射方法技术领域0001 本发明属于嵌入式信息技术领域,具体是一种应用于粗粒度可重构阵列的自动。

7、映射方法。背景技术0002 在大众已经习惯的计算模式中,处理器和专用集成电路(ASIC)一直是两大主流。伴随着应用领域特别是嵌入式环境对系统的性能、能耗、上市时间等指标需求的不断提高,传统的计算模式暴露出了种种弊端。处理器方式能够灵活地实现各种应用,但却在性能上有缺陷;而硬件逻辑实现性能虽然高,但灵活性却很差。为了在计算性能和实现灵活性上做一个很好的权衡,可重构计算技术应运而生。可重构计算技术集中了处理器和专用集成电路的优势,能够提供高效灵活的计算能力,同时也是探索一条解决纳米级芯片高昂设计和投片成本的新路。在嵌入式领域中的一些主流的计算密集型应用都非常适合利用可重构计算技术去实现。0003 。

8、一个典型的粗粒度可重构系统由一个或多个处理器和可重构功能单元阵列组成。对于一个用高级语言编写的应用算法,处理器执行串行或非关键代码,而能够有效地映射到硬件的代码均在可重构阵列上运行。映射到可重构阵列上的部分代码可以有效地利用硬件的并行性,并以流水线的方式执行。用可重构处理器实现应用算法,有以下几个主要过程:(1)软硬件划分,把占据大量执行时间的关键循环体映射到可重构阵列上;(2)生成循环程序的中间表示,以此描述循环体所包含的相关计算操作、它们之间的数据和控制依赖关系,以及各操作所需的执行时间等信息;(3)映射中间表示,将描述关键循环的中间表示映射到可重构阵列上,并生成可在可重构硬件上执行的配置。

9、文件。其中,描述关键循环体的中间表示的映射方法,很大程度地决定了可重构系统硬件上的优势能否得到充分地利用。映射可以采用手工映射或者自动工具来完成,但手工映射有如下缺点:一方面,手工映射方式需要花费大量人力和时间,而且需要映射人员对所采用的可重构系统的硬件结构有深入的了解;另一方面,随着阵列规模的扩大,应用算法复杂度的增加,手工映射的难度以及出错的概率也会显著增大。发明内容0004 发明目的:针对上述现有技术存在的问题和不足,本发明的目的是提供一种应用于粗粒度可重构阵列的自动映射方法,实现对可重构阵列硬件资源的高效分配和调度,以减少映射时间,同时提高映射质量。0005 技术方案:为实现上述发明目。

10、的,本发明采用的技术方案为一种应用于粗粒度可重构阵列的自动映射方法,包括以下步骤:0006 1a)将用高级语言编写的应用算法,划分为由主控处理器执行的软件部分和由可重构阵列加速的硬件部分;0007 1b)对在可重构阵列上加速的硬件部分,使用编译器进行编译,得到描述此部分代说 明 书CN 103116493 A2/5页4码的数据流图;0008 1c)选择数据流图中待映射的操作节点:将数据流图中的全部未映射的操作节点按照优先级由高到低排列,选择优先级最高的操作节点作为待映射的操作节点;0009 1d)将所选择的待映射的操作节点映射到可重构阵列上,对剩余的操作节点反复进行步骤1c)所述的排列和选择,。

11、直到数据流图中的所有操作节点都被映射,得到可在可重构阵列上运行的配置文件;0010 1e)将得到的配置文件与步骤1a)所述的由主控处理器执行的软件部分整合,得到整合后的新的应用算法;0011 1f)将所述新的应用算法用主控处理器的编译器进行编译,生成能在硬件上运行的机器代码。0012 进一步的,将所选择的待映射的操作节点映射到可重构阵列上的步骤如下:0013 2a)建立功能单元的优先级列表:计算可重构阵列中功能单元的计算开销,并依据计算开销的大小建立优先级列表,计算开销越大则优先级越低,计算开销越小则优先级越高;0014 2b)确定分配功能单元:对优先级列表中的功能单元逐一检测,选择第一个未被。

12、占用的优先级最高的功能单元;0015 2c)确定输入输出数据的路由:当步骤2b)中完成对该操作节点分配功能单元后,为该操作节点的输入输出数据选择路由路径;0016 2d)回溯分析:如果在步骤2b)中没有找到可映射的功能单元,并且回溯次数没有超过设定的阈值,则释放若干已映射操作节点,回到步骤1c);0017 2e)切割数据流图:当回溯次数超过设定的阈值,仍没有找到可映射的功能单元时,切割数据流图,将剩下的未映射的操作节点组成新的数据流图,回到步骤1c);重复上述过程,直至所有操作节点均被映射。0018 进一步的,所述编译器为开源编译器IMPACT。0019 作为对各个操作节点进行排列并选择的优先。

13、级的标准,先依据各个操作节点在数据流图中的高度,高度越高则优先级越高;对高度相同的操作节点,再考虑各个操作节点的子节点的个数,子节点愈多则优先级愈高。0020 作为对各个功能单元进行排列并搜索的优先级的标准,功能单元的优先级与其路由资源的个数成正比,路由资源的个数愈多则优先级愈高。0021 有益效果:本发明提出的应用于粗粒度可重构阵列的自动映射方法,采用考虑操作节点以及可重构阵列(简称“阵列”)中功能单元计算开销的映射算法来进行可重构阵列内计算和存储资源的分配和调度,分析了应用算法程序的数据流图中操作节点的依赖关系,充分地利用可重构阵列的硬件资源,提高了阵列内功能单元的占用率,并节省了手工映射。

14、造成的时间浪费,实现可重构阵列内计算和存储资源利用率的优化。附图说明0022 图1为本发明实施例提供的粗粒度可重构系统的结构框图;0023 图2为本发明的工作流程图;0024 图3为本发明实施例提供的代表循环体的数据流图;说 明 书CN 103116493 A3/5页50025 图4为本发明实施例提供的可重构阵列的一种拓扑结构图。0026 图中有:主控处理器1、可重构阵列2、IMPACT编译器3、预处理器4、资源分配模块5、子图分割模块6。具体实施方式0027 下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人。

15、员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。0028 图1为粗粒度可重构系统的结构框图。该粗粒度可重构系统包括主控处理器1、可重构阵列2。0029 本发明的工作流程如下,参见图2:0030 第一步,将用高级语言编写的应用算法,划分为由主控处理器1执行的软件部分和由可重构阵列2加速的硬件部分。0031 第二步,对在阵列上加速的硬件部分,使用开源编译器IMPACT3,进行一系列分析、优化、转换,得到描述此部分代码的数据流图。0032 第三步,选择数据流图中待映射的操作节点:将数据流图中的全部未映射的操作节点按照优先级高低排列,选择优先级最高的节点;映射所选择的待映射操作节点。

16、,对剩余操作节点反复进行排列和选择,直到数据流图中的所有操作都被映射,得到可在可重构阵列上运行的配置文件。0033 第四步,将得到的配置跟由主处理器执行的软件部分整合,得到整合后的新的应用算法程序。0034 第五步,将新算法程序用主控处理器的编译器进行编译,生成能在硬件上运行的机器代码。0035 本发明所述的将所选择的待映射操作节点映射到阵列上的步骤如下:a)建立功能单元的优先级列表:计算可重构阵列中功能单元的计算开销,并依据计算开销的大小建立优先级列表;b)确定分配功能单元:对优先级列表中的功能单元逐一检测,选择第一个未被占用的优先级最高的功能单元;c)确定输入输出数据的路由:当步骤b)中完。

17、成对该操作节点分配功能单元后,为该操作节点的输入输出数据选择路由路径;d)回溯分析:如果在步骤b)中没有找到可映射的功能单元,并且回溯次数没有超过设定的阈值,则释放若干已映射操作节点,回到步骤c);e)切割数据流图:当回溯次数超过设定的阈值,仍没有找到可以映射的功能单元时,切割数据流图,将剩下的未映射的操作节点组成新的数据流图,回到步骤c)。重复上述过程,直至所有操作节点均被映射。0036 作为本发明的一个实施例,对各个操作节点进行排列并选择的优先级的标准,与其在数据流图中的高度以及其子节点的个数成正比,高度愈高、子节点个数越多,优先级愈高。参见图3,以图3中的数据流图来说明本发明的操作节点的。

18、优先级的计算方法,具体过程如下:0037 首先,根据操作节点在数据流图中的树高,高度越高优先级越高。由于OP(操作节点)0的高度为3,OP1、OP2的高度为2,OP3、OP4的高度为1,OP5、OP6的高度为0,因此,得到操作节点的优先级列表为OP0,OP1,OP2,OP3,OP4,OP5,OP6;说 明 书CN 103116493 A4/5页60038 其次,对同高度的节点,子节点越多优先级越高。OP0没有同高度操作节点;对于OP1和OP2,OP1有2个子节点,而OP2只有1个子节点,因此OP1的优先级高于PO2;对OP3和OP4,OP3没有子节点,而OP4有2个子节点,因此OP4的优先级高。

19、于OP3;OP5和OP6均没有子节点。0039 最终,操作节点的优先级列表为OP0,OP1,OP2,OP4,OP3,OP5,OP6。0040 作为本发明的另一个实施例,对各个功能单元进行排列并搜索的优先级的标准,与其路由资源的个数成正比,路由资源越多,优先级愈高。参见图4,以图4中的可重构阵列的拓扑结构来说明本发明的功能单元的优先级的计算方法,图中功能单元编号015,具体分析过程如下:在图示的结构中,中间的功能单元比四周的功能单元具有更多的互连线,从路由的角度出发,这意味着如果一个操作节点被映射到有较多互连线的功能单元,则它的子节点找到映射位置的可能性更大,因此我们赋予这样的功能单元更高的优先。

20、级。由上所述,可以得到图4中阵列功能单元的优先级次序为:5,6,9,10,1,2,4,7,8,11,13,14,0,3,12,15。0041 下面分别介绍本发明的应用于粗粒度可重构阵列的自动映射方法涉及的四个关键模块。0042 一、前端开源编译器IMPACT3:0043 利用开源编译器IMPACT3对输入源程序进行词法、语法和语义的分析,并进行相关优化和转换,生成三地址代码的中间表示文件,这个中间表示文件包含了源程序的所有信息,用于后续步骤。0044 二、预处理器4:0045 对于有效的执行代码的生成和各种优化来说,程序的控制流图和数据流图的信息是必需的。包括控制流图和数据流图中的流相关,反相。

21、关,输入相关及迭代间的流相关的分析,各操作节点在图中的属性。0046 三、资源分配模块5:0047 把表示应用算法核心代码的数据流图映射到可重构阵列上,相当于把数据流图中的各个操作节点分配到阵列的功能单元上。操作节点分配的结果和阵列中各功能单元的连接关系把计算资源连接起来,相当于把数据流图中的边在可重构阵列硬件上描述出来。本发明采用的映射方法是一种同时布局布线的方法,即在布局的同时进行布线,只有布线成功了,才能说明布局也成功,才能终止布局。这种同时布局布线的方法可能比单独地布局布线能找到更好的解决问题的方案,所以同时布局布线是一种很好的选择。在映射过程中使用回溯算法,当某一个操作节点无法映射时。

22、,选择重新映射已经成功映射过的一些操作,让它们映射到不同的位置。回溯的次数需要限制在一定的阈值内,否则算法会搜索所有的可能性,带来很大的复杂度和过度的编译时间。回溯可以增加找到解的可能性,以一定的计算时间换取更高的并行度。0048 四、数据流图分割模块6:0049 本发明提出的数据流图分割算法可以分为三个步骤。首先,选中映射失败的操作节点。其次,检查此操作节点的父节点所映射的功能单元,是否存在连接到其他未被占用功能单元的路由通路,如果存在,即找到一个可行的切割,否则对其上一级的操作节点重复相同的过程,直至找到可行的切割。最后,分别添加相应的输出和输入端口至已映射的部分和说 明 书CN 103116493 A5/5页7被切割下的部分。一个新的数据流图便生成了。重复这个过程直至所有的操作节点都被成功映射。说 明 书CN 103116493 A1/2页8图1图2图3说 明 书 附 图CN 103116493 A2/2页9图4说 明 书 附 图CN 103116493 A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1