发明名称 一种应用于粗粒度可重构阵列的配置方法
摘要 本发明的应用于粗粒度可重构阵列的配置方法,针对一定规模的粗粒度可重构阵列,包括以数据链路为基本描述对象的配置定义方案及相应的配置生成和配置映射方案。该配置定义方案中,一个程序对应多条配置,一条配置对应一条数据链路,每条数据链路由多个存在数据依赖关系的可重构单元组成。与传统的以RC为基本描述对象的方案相比,它可以隐藏这些RC间的互连信息、提供更大的配置信息压缩空间,因而有利于减少配置总量和配置切换的时间。此外,一条描述数据链路的配置由一条路由及功能配置和一条或多条数据配置组成,多条数据配置共用一条路由及功能配置信息,一条配置的切换包括一次路由及功能配置的切换后一次或多次数据配置的切换。
申请公布号 CN102508816A 申请公布日期 2012.06.20
申请号 CN201110360639.7 申请日期 2011.11.15
申请人 东南大学 发明人 陈人;齐志;曹鹏;时龙兴;陆生礼
分类号 G06F15/78(2006.01)I;G06F9/45(2006.01)I 主分类号 G06F15/78(2006.01)I
代理机构 南京苏高专利商标事务所(普通合伙) 32204 代理人 柏尚春
主权项 一种应用于粗粒度可重构阵列的配置方法,其特征在于,该方法在以数据链路为基本描述对象的配置定义基础上,首先对粗粒度可重构阵列上执行的程序所对应的每条配置进行配置生成,所述的程序是采用C源代码进行描述的应用对象,然后根据所述程序的C源代码的执行顺序对所有配置对应的数据链路进行配置映射;所述的配置定义为:编译器读取程序的C源代码后经过编译生成多条配置,一条配置对应一条数据链路,该数据链路的定义为:每一条数据链路由多个存在数据依赖关系的节点组成,每个节点对应一个可重构单元RC,且每一条数据链路都能够一次性映射于粗粒度可重构阵列CGRA之上;所述的数据依赖关系是指数据链路中除第一个节点以外的每一个节点的输入都依赖于前一个节点的输出,第一个节点的输入来自于全局存储资源;所述的能够一次性映射于粗粒度可重构阵列CGRA之上是指数据链路中所包括的节点的个数不多于粗粒度可重构阵列CGRA实际所拥有的可重构单元RC的数量;并且,一条配置由一条路由及功能配置和一条或多条数据配置组成,多条数据配置共用一条路由及功能配置,即配置的切换过程中只切换新的数据配置,而保留原来己加载的路由及功能配置的内容不变;所述的配置生成包括以下步骤:步骤1,将所述程序的C源代码输入编译器前端,生成数据流图DFG;步骤2,将数据流图DFG输入编译器后端,编译器后端基于硬件资源的约束,将输入的每一张数据流图DFG切割为多张数据流图DFG子图,这些数据流图DFG子图都能够一次性映射到粗粒度可重构阵列CGRA之上;所述的基于硬件资源的约束包括可重构单元RC的个数,局部存储资源的大小,全局存储资源的大小;步骤3,编译器后端按照配置定义中所述的数据链路定义,将每一张数据流图DFG子图切分为多条数据链路;步骤4,编译器后端将每一条数据链路分割为两部分,即一部分对应一条路由及功能配置,另一部分对应一条数据配置,路由及功能配置和数据配置的内容如配置定义中所述;编译器后端根据路由及功能配置和数据配置的内容,按照所述对应关系对数据链路分割而成的两部分分别进行配置编码,从而生成配置的二进制码;所述的配置映射要求在粗粒度可重构阵列CGRA上采用一块片上存储器来存放数据配置,即数据配置存储器,一块片上存储器来存放路由及功能配置,即路由及功能配置存储器;配置映射具体包括以下步骤:1)当可重构处理单元RPU开始启动时,由配置总线接口初始化路由及功能配置存储器和数据配置存储器;2)粗粒度可重构阵列CGRA从路由及功能配置存储器中读出一条新的路由及功能配置并将该配置加载到多个可重构单元RC上;3)粗粒度可重构阵列CGRA从数据配置存储器中读出一条新的数据配置并将该配置加载到上一步骤中刚加载了路由及功能配置的可重构单元RC上;4)粗粒度可重构阵列CGRA基于加载的配置进行计算,当计算开始后即进入步骤5);5)当粗粒度可重构阵列CGRA检测到在所有己加载配置的可重构单元RC中,有一条数据链路的最后一个节点所对应的可重构单元RC完成计算时,则判断有一个配置完成计算,并进入下一步,同时粗粒度可重构阵列CGRA记录当前检测到的己完成计算的配置的地址信息;否则粗粒度可重构阵列CGRA等待一个系统时钟周期结束后,进入步骤7); 6)如果己完成计算的配置中,己加载过的数据配置的个数小于该配置的数据配置个数,则粗粒度可重构阵列CGRA判断需要切换新的一条数据配置,并回到步骤3),否则进入到步骤7);7)如果己完成加载的配置的个数小于粗粒度可重构阵列上执行的程序所对应的配置的个数,则粗粒度可重构阵列CGRA判断需要切换新的一条路由及功能配置,并进入步骤8),否则进入到步骤9);8)如果尚未加载新配置且己完成上一条己加载配置的运算的可重构单元RC的个数大于或等于下一条将要加载的配置所对应的可重构单元RC的个数,则粗粒度可重构阵列CGRA判定可以切换新的一条路由及功能配置,并回到步骤2),否则回到步骤5);9)配置映射结束,粗粒度可重构阵列CGRA输出计算结果。
地址 214135 江苏省无锡市新区太湖科技园区菱湖大道99号