CN102054108A - 集成电路下层硬件映射方法、时空图压缩方法及装置 - Google Patents
集成电路下层硬件映射方法、时空图压缩方法及装置 Download PDFInfo
- Publication number
- CN102054108A CN102054108A CN 201010620046 CN201010620046A CN102054108A CN 102054108 A CN102054108 A CN 102054108A CN 201010620046 CN201010620046 CN 201010620046 CN 201010620046 A CN201010620046 A CN 201010620046A CN 102054108 A CN102054108 A CN 102054108A
- Authority
- CN
- China
- Prior art keywords
- operator
- compression
- spacetime diagram
- integrated circuit
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种集成电路下层硬件映射的方法及装置,所述方法包括:程序分析步骤,读取分析程序,匹配出被映射的执行对象和参数对象;数据控制流图生成步骤,将执行对象和参数对象映射成数据控制流图中的相应节点;算子时空图生成步骤,从算子单元库中取出对应的算子单元将数据控制流图展开成算子时空图;时序约束步骤,根据总时序约束对算子时空图的每个层级进行时序约束;时空图压缩步骤,根据时间标注对时空图进行空间上的聚类压缩。本发明还公开了一种时空图的压缩方法及装置,所述方法包括:通过引入控制算子的方式将运算属性相同和/或存储属性相同听算子在空间上进行合并压缩。通过上述方法和装置,提高了集成电路的设计速度。
Description
技术领域
本发明涉及集成电路设计领域,尤其是一种集成电路下层硬件映射方法、时空图压缩方法及装置。
背景技术
如图1所示,现有技术中,集成电路的设计通常包括两部分:第一部分是从基于C语言或MATLAB语言的算法描述到RTL级的描述;第二部分是从RTL级描述到标准单元ASIC结构或门阵列实现(或其它S-ASIC结构)或FPGA结构的实现过程。
现有技术中,已有多款比较成熟的工具支持上述第二部分的实现,实现过程基本满足高效、快捷等要求;而上述第一部分的实现主要仍是由技术人员根据自身对C语言或MATLAB语言的理解,人为地将其转换为RTL级的描述。也就是说,第一部分的实现受到技术人员自身的经验和知识水平的影响,对于不同的技术人员来说,实现的时间存在较大的差异。
在集成电路领域,集成电路的设计速度滞后于集成电路制造工艺的发展速度。尤其是集成电路的制造工艺进入纳米级以后,集成电路的设计速度已远远落后于集成电路制造工艺的发展速度。因此,在集成电路设计领域中,提高设计速度是当前最为迫切的问题之一。从现有技术的现状来看,图1中第二部分的实现方式已有许多较成熟的工具支持,实现速度相对较快;而第一部分的实现方式则主要由设计人员人为地实现。因此,提高设计速度的关键点落在了第一部分的实现上,也就是从C语言或MATLAB语言等的算法描述到RTL级的描述上,可以将这称之为集成电路下层硬件的映射方法,业界也将其称为高层次综合或结构极综合。
对于第一部分的实现方式,国外的一些公司已经展开了相应的研究并推了一些实现工具,比如Mentor的CatapultC、AutoESL的AutoPilot、Forte DesignSystem的Cynthesizer、UC San Diego的SPARK等。
发明内容
本发明要解决的主要技术问题是,提供一种集成电路下层硬件映射方法和装置,能够提高集成电路的设计速度。
本发明还提供了一种时空图压缩方法及装置,能减少集成电路的面积。
为解决上述技术问题,本发明提供一种集成电路下层硬件映射方法,包括:
程序分析步骤,用于读取用于描述集成电路算法的计算机语言程序,根据该计算机语言的规则从所述计算机语言程序中匹配出被映射的执行对象和参数对象;
数据控制流图生成步骤,用于将匹配出的执行对象和参数对象映射成描述集成电路算法的数据控制流图中的相应节点;
算子时空图生成步骤,用于根据数据控制流图中的各节点所进行的功能处理从预先建立的算子单元库中取出对应功能的至少一个算子单元,将数据控制流图转换成由算子单元组成的算子时空图;
时序约束步骤,用于根据用户规格要求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;
时空图压缩步骤,用于根据时间标注对时空图进行空间上的聚类压缩,并使之总体算法执行时间最接近于总时序约束;
下层硬件映射步骤,根据聚类压缩后的时空图生成集成电路下层硬件逻辑描述。
一种集成电路下层硬件映射装置,包括:
程序分析模块,用于读取用于描述集成电路算法的计算机语言程序,根据该计算机语言的规则从所述计算机语言程序中匹配出被映射的执行对象和参数对象;
数据控制流图生成模块,用于将匹配出的执行对象和参数对象映射成重新描述集成电路算法的数据控制流图中的相应节点;
算子时空图生成模块,用于根据数据控制流图中的各节点所进行的功能处理从预先建立的算子单元库中取出对应功能的至少一个算子单元,将数据控制流图转换成由算子单元组成的算子时空图;
时序约束模块,用于根据用户规格需求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;
时空图压缩模块,用于根据时间标注对时空图进行空间上的聚类压缩,并使之总体算法执行时间最接近于总时序约束;
下层硬件映射模块,根据聚类压缩后的时空图生成集成电路下层硬件电路。
一种时空图压缩方法,用于根据时间标注对算子时空图进行空间上的聚类压缩,包括:
聚类步骤,用于在算子时空图中查找出属性相同的运算类算子和/或存储属性相同的存储类算子;
压缩步骤,用于根据时间标注对运算属性相同的运算类算子在空间上进行合并压缩和/或将存储属性相同的存储类算子在空间上进行合并压缩;
算子复用步骤,用于引入控制类算子,对压缩后的运算类算子和/或存储类运算算子生成相应配置指令,实现运算类算子和/或存储类算子的复用。
上述方法,还包括:
优化步骤,用于选择经所述时空图聚类压缩步骤压缩后的时空图中,总体算法执行时间最接近于完成集成电路算法所需要的总时序约束的时空图作为聚类压缩的优化结果。
上述方法,还包括:
固化定制步骤,用于将经所述优化步骤优化后得到的时空图中的可重构的算子的功能固定为满足算法要求的最小功能。
上述方法中,所述固化定制步骤中,通过调用算子单元库将所述优化步骤生成的时空图中的可重构算子替换为满足算法要求的最小功能的算子,或者,通过配置指令的方式将可重构算子的功能固定为满足算法要求的最小功能。
一种时空图压缩装置,用于根据时间标注对算子时空图进行空间上的聚类压缩,包括:
聚类单元,用于在算子时空图中查找出属性相同的运算类算子和/或存储属性相同的存储类算子;
压缩单元,用于根据时间标注对时空图中运算属性相同的运算类算子在空间上进行合并压缩和/或将存储属性相同的存储类算子在空间上进行合并压缩;
算子复用单元,用于引入控制类算子,对压缩后的运算类算子和/或存储类运算算子生成相应配置指令,实现对压缩后的运算类算子和/或存储类算子的复用。
上述装置,还包括:
优化单元,用于选择经所述时空图聚类压缩装置压缩后的时空图中,总体算法执行时间最接近于完成集成电路算法所需要的总时序约束的时空图作为聚类压缩的优化结果。
上述装置,还包括:
固化定制单元,用于使经所述优化装置优化后得到的时空图中的可重构的算子的功能固定为满足算法要求的最小功能。
本发明的有益效果是:通过对原C程序或MATLAB程序的分析,匹配出映射的执行对象和参数对象;并将匹配出的执行对象和参数对象重新映射成为数据控制流图,该数据控制流图可以表示集成电路的算法;然后将数据控制流图中相应的功能模块用算子来替代,生成算子时空图;生成的算子时空图经过聚类压缩,使压缩后的时空图的总体执行时间最接近于总时序约束;将压缩后的时空图生成集成电路的下层硬件电路。从而创造了一种从计算机语言到集成电路下层硬件电路的映射工具,标准化地实现了集成电路从C或MATLAB等语言生成下层硬件的过程,实现起来方便快捷。
本发明还通过对标注了时序的时空图中的运算属性相同的运算类算子和/或存储属性相同的存储类算子在空间上进行聚类压缩,压缩的同时,通过引入控制算子对压缩后的算子进行复用,从而达到实现与压缩前的算子相同的功能。从而缩小了时空图的面积,进而减小集成电路的面积。
附图说明
图1为现有技术中的集成电路设计方法流程图;
图2为ADDS算子结构示意图;
图3为ADDS算子功能图;
图4为存储类算子的通用结构示意图;
图5为路径类算子的通用结构示意图;
图6为控制类算子的通用结构示意图;
图7为本发明的下层硬件映射流程图;
图8为X264_me_search函数聚类压缩前的时空图;
图9为pixel_sad_16×16函数聚类压缩前的时空图;
图10为图8所示结构标注时序后的结构示意图;
图11为图9所示结构标注时序后的结构示意图;
图12为图11(pixel_sad_16×16函数)聚类压缩后的时空图;
图13所示为固化定制的一种实施方式原理图;
图14为X264_me_search聚类压缩前后的比较图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
回顾集成电路设计方法学的发展历程,可以看到:当集成电路制造工艺进入1um的时代,出现了以门阵列为基本单元的设计方法;当集成电路制造工艺进入0.5um的时代,出现了以标准单元为基本单元的设计方法;当集成电路制造工艺进入0.18um的时代,出现了以IP核为基本单元的设计方法。由此可以看出:一方面集成电路的设计方法学随着集成电路制造工艺的发展而发展,另一方面集成电路设计方法学中使用的基本单元(门、标准单元、IP核)的粒度不断增大。同时,每次新的基本单元的出现,都标志着集成电路设计方法革命性的进步。因此,可以合理预见的是,随着近十年来集成电路制造工艺的飞速进步,尤其是集成电路制造工艺进入纳米级后,更大粒度的基本单元将出现并同时开启集成电路设计的新局面,以适应集成电路制造工艺的飞速发展。而本发明中使用的算子则是一种粒度大于标准单元的用于集成电路基本组成部件的单元,基于算子的集成电路设计方法将加速集成电路的设计速度,以适应集成电路制造工艺的进步。
本发明中,常用的算子有五类,分别是运算类算子、存储类算子、路径类算子、控制类算子和时钟类算子。
1、运算类算子。
运算算子(AU)是用于实现逻辑运算或算术或逻辑与算术混合运算的基本单元。它包括算术逻辑运算单元和运算配置寄存器,运算配置寄存器用于接收和存储运算配置指令,不同的运算配置指令对应不同的算述逻辑操作,也就是说,通过运算配置指令可以使同一个运算算子实现多种不同的功能。下面,以ADDS算子为例对运算算子进行说明。
图2为ADDS算子的结构示意图,它包括用于实现加减操作的ADD单元和用于实现移位操作的<</>>单元,通过设置控制位X的参数值,可以使ADDS算子实现多种不同的功能,比如,图3的表格示出了一种实施方式中不同控制位X值与不同操作的对应关系。像ADDS这种通过控制位X实现多种不同功能的算子称为可重构算子,可重构算子由于丰富的应用功能可以用在不同的场景中,减少了算子单元库中储存的算子数。并且可重构算子在其执行过程中还可以通过改变控制位的方式实现动态的重构。
2、存储类算子。
如图4所示为存储类算子(MU)的基本结构示意图(图中CU表示控制算子)。存储算子包括存储配置寄存器(MU configuration register)和存储单元,存储单元包括地址产生单元、数据存储器、数据产生单元和数据输出控制单元。存储配置寄存器可以通过数据输出控制单元配置存储算子(MU)的存储体(各种存储介质:寄存器、RAM等MEM)的写入和/或读出方式,还可以配置存储器对应的地址产生单元的工作方式。根据地址产生单元生成的地址直接将输入数据存储到预定位置,并将需要的数据从存放位置输出。
3、路径类算子。
如图5所示,为路径类算子(LU)的通用结构示意图。路径类算子LU包括路由配置寄存器(LU configuration register)和组成路由选择单元的交换开关和数据寄存器(REG),其中,路由配置寄存器受到控制算子CU的控制,在控制算子CU的控制作用下控制交换开关按照期望的方式实现不同运算算子AU之间的链接。数据寄存器用于暂存运算类算子LU和存储类算子MU的输入输出数据。
4、控制类算子。
如图6所示,为控制类算子(CU)的通用结构示意图。控制类算子的作用主要是将配置信息传送到相应的配置寄存器,配置运算算子AU、存储算子MU和路径算子LU实现预定的功能。控制算子CU的形式包括计数器、状态机和微指令三种。其中微指令结构包含译码器、程序计数器、指令存储器和流水线控制模块等。控制算子CU通过执行简单的配置指令向各功能单元发送配置信息,由于控制类算子CU支持的指令很少,因此指令寄存器容量小,译码器非常简单。
5、时钟类算子。
时钟算子用于运算类算子、存储类算子、路径类算子和控制类算子的时钟控制信号,时钟信号包括控制时钟起停和控制时钟频率的信号,时钟信号可以按照期望的方式配置。
以上五类算子是实现以下实施方式的基础,可以理解的是,上述根据功能将用于集成电路设计中的算子分为五大类并非唯一的划分方式,还可以根据实际情况有针对性进行更宽范围或更细范围的划分。
实施例1:
在本发明的一种实施例中,提供了一种从计算机语言到集成电路下层硬件电路的映射系统,如图7所示为该系统的集成电路下层硬件映射方法,包括以下步骤:
步骤S1,对高级语言程序进行分析,即读取用于描述集成电路目标算法的计算机语言程序,根据该计算机语言的规则从所述计算机语言程序中匹配出被映射的执行对象和参数对象。对于专用集成电路,首先根据该集成电路的功能设计集成电路的目标算法,然后编写描述集成电路算法的计算机语言程序,计算机语言通常采用C语言或MATLAB语言等。将编写的计算机语言程序输入到本发明的映射系统中,系统根据编写程序所用计算机语言的规则从所述计算机语言程序中匹配出被映射的执行对象和参数对象。
所述执行对象包括运算指令和/或控制指令,所述参数对象包括输入数据、输出数据和中间数据中的至少一种。本实施例中的运算指令包括加、减、乘和移位等运算。
例如对用高级语言描述的某个函数的程序进行分析时,包括以下步骤:
分析函数的调用关系,区分出上层函数和下层函数;
分析函数中的输入、输出变量/常量,以及中间变量/常量。
步骤S2,生成算法数据控制流图,即将匹配出的执行对象和参数对象映射成描述集成电路算法的数据控制流图中的相应节点。例如:将所述运算指令映射为处理框图,将所述控制指令映射为用于标识状态、状态转移条件及状态控制信号的控制流,将所述输入数据、输出数据和中间数据映射为数据流上的存储节点。每个函数具有自己的数据控制流图。
步骤S3,算子时空图生成步骤,用于根据数据控制流图中的各节点所进行的功能处理从预先建立的算子单元库中取出对应功能的至少一个算子单元,将数据控制流图展开成由算子单元组成的算子时空图。
将数据控制流图转换成算子时空图时将上层函数和下层函数的数据控制流图分别转换成各自的算子时空图。先将数据控制流图根据其数据流相关性展开,然后将展开后节点转换成可完成节点功能的算子单元。用一个或多个算子单元的组合取代数据控制流图中的各节点,一个或多个算子单元的组合(算子块)可完成与各节点功能相同的功能。展开成算子时空图后扩大了集成电路的设计面积,但这种情况下时序最快。
将数据控制流图展开的方式包括但不限于以下几种方式:
如果数据控制流图中的数据流为顺序相关数据流结构,则将所述顺序相关数据流采用流水线的方式展开。
如果数据控制流图中的数据流中存在反馈时,当数据流是一个循环时,对于有数据相关性的数据流不能转化为流水结构,如果数据流的数据之间存在数据相关性,并且存在数据相关性的各数据流内部不存在数据相关性时,则将所述内部数据不存在数据相关性的各数据流采用局部流水线的方式展开。
如果数据控制流图中的数据流之间不存在数据相关性,则将所述并行数据流采用并行方式展开,并转换成由算子单元组成的算子时空图。
步骤S4,时序标注和时序约束步骤,用于根据用户规格要求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,另一方面,从算子单元库中可以提取算子时序信息,对算子时空图做时序标注,形成时序约束的对象。从而根据数据流特性可以将时序约束具体到算子时空图的每个层级,实现对算子时空图的每个层级进行时序约束。
如果所述数据流结构为并行数据流,则将总时序约束平分给到对应的时空图中的每个算子层级,并将每个算子层级的时序约束平分到该算子层级中的每一个算子单元。将数据控制流中串行各节点所对应的各算子层级总的算子的基本时序单位作为总体时序约束,按照各算子层级中最长运算路径所映射的运算算子的时序占各个算子层级中最长运算路径所映射的算子单元对应的时序总和的比例来分配各算子层级的时序。
步骤S5,时空图压缩步骤,用于根据时间标注对时空图进行空间上(即硬件资源上或面积上)的聚类压缩,并使之总体算法执行时间最接近于总时序约束。
在一种实施例中,对时空图进行压缩包括以下步骤:在算子时空图中查找出属性相同的运算类算子和/或存储属性相同的存储类算子;然后根据时间标注对运算属性相同的运算类算子在空间上进行合并压缩和/或将存储属性相同的存储类算子在空间上进行合并压缩;然后引入控制类算子,对压缩后的运算类算子和/或存储类运算算子生成相应配置指令,实现运算类算子和/或存储类算子的复用。
聚类压缩步骤和生成可重构算子功能块的步骤,都会产生不只一种结果。不同的函数调用同一子函数,由于约束时间不同,所产生的聚类结果也不同。因此需要根据时间、面积、功耗等参数进行优化,按性能(执行时间)排出顺序,恰好满足时间约束的聚类结果表示其硬件实现代价最小,因此选择总体算法执行时间最接近于完成集成电路算法所需要的总时序约束的时空图作为聚类压缩的优化结果。
步骤S6,下层硬件映射步骤,根据聚类压缩后的时空图生成集成电路下层硬件逻辑描述。
本实施例还公开了一种集成电路下层硬件映射装置,包括:
程序分析模块,用于读取用于描述集成电路算法的计算机语言程序,根据该计算机语言的规则从所述计算机语言程序中匹配出被映射的执行对象和参数对象;
数据控制流图生成模块,用于将匹配出的执行对象和参数对象映射成重新描述集成电路算法的数据控制流图;
算子时空图生成模块,用于根据数据控制流图中的各功能模块所进行的处理从预先建立的算子单元库中取出对应功能的至少一个算子单元,将数据控制流图中的各功能模块采用并行方式展开成由算子单元组成的算子时空图;
时序约束模块,用于根据用户规格需求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;
时空图压缩模块,用于根据时间标注对时空图时进行空间上的聚类压缩,并使之总体算法执行时间最接近于总时序约束;
下层硬件映射模块,根据聚类压缩后的时空图生成集成电路下层硬件电路。
实施例2:
H.264是国际电联(ITU-T)和国际标准化组织(ISO)共同组建的联合视频组(JVT)共同制定的数字视频编码标准。本实施例中以H.264标准的C语言描述的X264_me_search函数为例,对实施例1中的时空图压缩步骤进行更为详细的说明。
如图8所示为X264_me_search的C语言原函数经过实施例1中提到的程序分析步骤和数据控制流图生成步骤后,再经过算子结构图生成步骤重新生成的算子时空图。由于X264_me_search函数的原程序中调用了pixel_sad_16×16函数,所以在图8中,并没有明确示出如pixel_sad_16×16函数此类所调用函数的具体算子时空图,pixels ad_16×16函数的算子时空图见图9所示。
对图8和图9所示的结构时行时序标注后的结构如图10和图11所示。
由于图10中所示结构调用了pixel_sad_16×16函数的算子结构,所以先对图11所示结构进行压缩,压缩后的结果如图12所示;然后再根据对图11所示的时空图进行压缩的方法对图10所示结构进行压缩,从而得到压缩后的X264_me_search函数的时空图。
在对图10和图11所示结构进行时空图压缩时,主要遵循以下原则:
1、对算子时空图中运算属性相同的运算类算子进行聚类压缩。比如,时空图中可以将两个并行的加法操作算子压缩成一个加法操作算子,同时通过引入控制算子的方式实现压缩后的加法算子的复用,完成与压缩前的两个加法算子相同的功能。由此可见,对算子时空图进行压缩后,算子的数目可以大幅度的减少,从而节约了集成电路的面积,相应地,压缩后的算子通过控制算子实现复用,增加了集成电路总算法的执行时间。可以理解的是,对运算类算子的聚类压缩必然引起存储类算子、控制类算子、路径类算子和时钟类算子也相应地发生变化,所以可以根据实际情况对上述算子也作相应的聚类压缩以进一步节约集成电路面积,尤其是其中的存储类算子。
2、在引入控制算子的同时,生成相应的配置指令,所述配置指令用于控制生成的算子按照预定的方式工作,从而实现与压缩前算子的相同功能。
3、对于同一个算子时空图可能的聚类压缩结果有多种。因此,在压缩过程中,选择压缩后时空图总算法执行时间最接近约束时间的时空图作为最终的压缩结果。选择总算法执行时间最接近约束时间的时空图作为压缩结果,可以在保证满足时序条件的情况下,最大地节约集成电路的面积。约束时间是根据用户提出的性能指标而计算出的集成电路最大执行时间。比如,对于视频编码器中的帧间预测部分,如果工艺条件为130nm,要满足720p@60fps标准,则其帧间预测部分的时序约束为600cycle。其计算过程如下:如果选用工艺为130nm工艺,利用算子工艺库可生成电路主频为200MHz,即得到的时序约束为3.33Mcycle/帧。在宏块级数据处理中,由于每一个宏块处理顺序为串行处理,因此时序约束条件按照串行分配,即每帧由80×45=3600个宏块组成,要求每个宏块的处理能力为1280×720×60/256=216000MB/s,每个宏块处理所需算子单位时序数为200MHz/216000MB/s=926cycle/MB。由于视频编码器分为帧间预测、帧内预测、变换和量化、熵编码、区块滤波等子算法部分,这几部分处理数据为流水操作(一种并行形式),因此对于以上各个子算法的时序约束也为926cycle/MB。根据串行数据约束,根据x264_me_search函数最长运算所映射的运算算子时序与其帧间预测外部的运算算子时序为比例分配926cycle/MB得到600cycle/MB。
通过上述原则后,可以在空间上对时空图进行压缩,从而减小了集成电路的面积。
下面以pixel_sad_16×16函数为例,进一步对聚类压缩进行说明,如图11所示为标注了时序的pixel_sad_16×16函数的算子时空图,该函数的时序为5个周期。从该图的左边输入部分可以看出,该图的输入部分包括256个(pix1,pix2)组,各(pix1,pix2)之间为并行关系。图12为图11聚类压缩后的时空图,从该图可以看出,将原本的256个并行的(pix1,pix2)压缩为一组(pix1,pix2),通过引入控制算子对上述一组(pix1,pix2)进行复用,达到与压缩前相同的功能。从图示中,可以看出通过压缩使实现输入部分的集成电路面积大大缩小。虽然输入部分通过聚类压缩缩小了面积,但是,这会增加整个pixel_sad_16×16函数的执行时间,所以对于除输入部分的其它部分的聚类压缩可综合考虑时序和面积方面的因素,进行合理的压缩,使执行算法的总时间最接近于时序约束时间,从而获得面积和执行效率的最佳。对pixel_sad_16×16函数时行聚类压缩后,可以依照相同的方法和原则对X264_me_search函数的其它调用函数和X264_me_search函数本身进行聚类压缩。上述对时空图聚类压缩后,可以减小集成电路的面积和功耗。并且,聚类压缩后生成的算子具有一定的规整性。
上述对时空图进行聚类压缩后,还可以对其中的某些算子进行优化,一种优化的方式是对某些算子通过固化定制的方式进行优化。比如,图13中左边为一种压缩后的运算类算子,由于聚类压缩后其中的logic单元并没有使用,所以可以将该算子的logic单元去除后得到图12中右边所示的算子结构,进一步地缩小了算子的面积。又比如,对于图2所示的ADDS算子,由于通过改变控制位X的值,可以使该算子实现不同的功能,而在某一具体的集成电路应用中,实际上只用到了该算子的相加移位操作,则可以将该算子的控制位X的值固定为000,从而在满足功能要求的前提下节约了集成电路的功耗。通过固化定制的方法能够使电路中仅出现实现相同功能操作的最小硬件,然后对这些最小硬件进行全定制设计,使其没有其它的扩展功能。这样,既可以保证算法的正确执行,又可以优化集成电路的面积和功耗。
对X264_me_search函数聚类压缩前后的时空图进行分析后,可以得到图14所示的表格。从该表格中可以看出,经过聚类压缩后,所用到的算子数由1724减少到139个,虽然相应地时序从292个周期增加到的500个周期,但500个周期依旧小于X264_me_search的约束周期600。由此可见,经过聚类压缩后,在保证总算法的执行时间满足时序约束的条件下,大幅度地降低所用到的算子个数,从而节约了集成电路的面积和功耗。
本实施例还公开了一种时空图压缩装置,包括:
时空图聚类压缩装置,用于根据时间标注对时空图中运算属性相同的运算类算子和/或存储属性相同的存储类算子进行压缩,同时引入控制算子实现对压缩后的运算类算子和/或存储类算子的复用。
还包括:
优化装置,用于选择经所述时空图聚类压缩装置压缩后的时空图中,总体算法执行时间最接近于总时序约束的时空图作为聚类压缩的优化结果。
还包括:
固化定制装置,用于使经所述优化装置优化后得到的时空图中的可重构的算子的功能固定为满足算法要求的最小功能。
本实施例中所述的方法和装置不仅可以应用到实施例1中的聚类压缩步骤中,还可以应用到诸如标注了时序的基于算子的时空图中,对标注了时序的时空图进行聚类压缩和聚类压缩后的固化定制,从而节约集成电路面积和功耗。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种集成电路下层硬件映射方法,其特征在于,包括:
程序分析步骤,用于读取用于描述集成电路算法的计算机语言程序,根据该计算机语言的规则从所述计算机语言程序中匹配出被映射的执行对象和参数对象;
数据控制流图生成步骤,用于将匹配出的执行对象和参数对象映射成描述集成电路算法的数据控制流图中的相应节点;
算子时空图生成步骤,用于根据数据控制流图中的各节点所进行的功能处理从预先建立的算子单元库中取出对应功能的至少一个算子单元,将数据控制流图转换成由算子单元组成的算子时空图;
时序约束步骤,用于根据用户规格要求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;
时空图压缩步骤,用于根据时间标注对时空图进行空间上的聚类压缩,并使之总体算法执行时间最接近于总时序约束;
下层硬件映射步骤,根据聚类压缩后的时空图生成集成电路下层硬件逻辑描述。
2.一种集成电路下层硬件映射装置,其特征在于,包括:
程序分析模块,用于读取用于描述集成电路算法的计算机语言程序,根据该计算机语言的规则从所述计算机语言程序中匹配出被映射的执行对象和参数对象;
数据控制流图生成模块,用于将匹配出的执行对象和参数对象映射成重新描述集成电路算法的数据控制流图中的相应节点;
算子时空图生成模块,用于根据数据控制流图中的各节点所进行的功能处理从预先建立的算子单元库中取出对应功能的至少一个算子单元,将数据控制流图转换成由算子单元组成的算子时空图;
时序约束模块,用于根据用户规格需求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;
时空图压缩模块,用于根据时间标注对时空图进行空间上的聚类压缩,并使之总体算法执行时间最接近于总时序约束;
下层硬件映射模块,根据聚类压缩后的时空图生成集成电路下层硬件电路。
3.一种时空图压缩方法,用于根据时间标注对算子时空图进行空间上的聚类压缩,其特征在于包括:
聚类步骤,用于在算子时空图中查找出属性相同的运算类算子和/或存储属性相同的存储类算子;
压缩步骤,用于根据时间标注对运算属性相同的运算类算子在空间上进行合并压缩和/或将存储属性相同的存储类算子在空间上进行合并压缩;
算子复用步骤,用于引入控制类算子,对压缩后的运算类算子和/或存储类运算算子生成相应配置指令,实现运算类算子和/或存储类算子的复用。
4.如权利要求3所述的时空图压缩方法,其特征在于,还包括:
优化步骤,用于选择经所述时空图聚类压缩步骤压缩后的时空图中,总体算法执行时间最接近于完成集成电路算法所需要的总时序约束的时空图作为聚类压缩的优化结果。
5.如权利要求4所述的时空图压缩方法,其特征在于,还包括:
固化定制步骤,用于使经所述优化步骤优化后得到的时空图中的可重构的算子的功能固定为满足算法要求的最小功能。
6.如权利要求5所述的时空图压缩方法,其特征在于,所述固化定制步骤中,通过调用算子单元库将所述优化步骤生成的时空图中的可重构算子替换为满足算法要求的最小功能的算子,或者,通过配置指令的方式将可重构算子的功能固定为满足算法要求的最小功能。
7.一种时空图压缩装置,用于根据时间标注对算子时空图进行空间上的聚类压缩,其特征在于,包括:
聚类单元,用于在算子时空图中查找出属性相同的运算类算子和/或存储属性相同的存储类算子;
压缩单元,用于根据时间标注对时空图中运算属性相同的运算类算子在空间上进行合并压缩和/或将存储属性相同的存储类算子在空间上进行合并压缩;
算子复用单元,用于引入控制类算子,对压缩后的运算类算子和/或存储类运算算子生成相应配置指令,实现对压缩后的运算类算子和/或存储类算子的复用。
8.如权利要求7所述的时空图压缩装置,其特征在于,包括:
优化单元,用于选择经所述时空图聚类压缩装置压缩后的时空图中,总体算法执行时间最接近于完成集成电路算法所需要的总时序约束的时空图作为聚类压缩的优化结果。
9.如权利要求8所述的时空图压缩装置,其特征在于,包括:
固化定制单元,用于使经所述优化装置优化后得到的时空图中的可重构的算子的功能固定为满足算法要求的最小功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106200465A CN102054108B (zh) | 2010-12-31 | 2010-12-31 | 集成电路下层硬件映射方法、时空图压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106200465A CN102054108B (zh) | 2010-12-31 | 2010-12-31 | 集成电路下层硬件映射方法、时空图压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102054108A true CN102054108A (zh) | 2011-05-11 |
CN102054108B CN102054108B (zh) | 2012-08-08 |
Family
ID=43958421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106200465A Expired - Fee Related CN102054108B (zh) | 2010-12-31 | 2010-12-31 | 集成电路下层硬件映射方法、时空图压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102054108B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043886A (zh) * | 2010-12-31 | 2011-05-04 | 北京大学深圳研究生院 | 集成电路下层硬件映射方法、数据控制流时序约束方法及装置 |
CN102054109A (zh) * | 2010-12-31 | 2011-05-11 | 北京大学深圳研究生院 | 集成电路下层硬件映射方法、数据控制流生成方法及装置 |
CN102054107A (zh) * | 2010-12-31 | 2011-05-11 | 北京大学深圳研究生院 | 集成电路下层硬件映射方法、时空图生成方法及装置 |
CN103177145A (zh) * | 2011-12-20 | 2013-06-26 | 国际商业机器公司 | 一种用于集成电路的多个时序模式合并的方法和系统 |
CN108170957A (zh) * | 2017-12-28 | 2018-06-15 | 佛山中科芯蔚科技有限公司 | 数据控制流图的生成方法、系统及集成电路设计方法 |
CN112270412A (zh) * | 2020-10-15 | 2021-01-26 | 北京百度网讯科技有限公司 | 网络算子处理方法、装置、电子设备及存储介质 |
CN113360747A (zh) * | 2020-03-04 | 2021-09-07 | 阿里巴巴集团控股有限公司 | 基于神经网络模型的数据处理方法及装置 |
WO2024077758A1 (zh) * | 2022-10-09 | 2024-04-18 | 中山大学 | 基于差分约束系统的高层次综合工具优化方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7530047B2 (en) * | 2003-09-19 | 2009-05-05 | Cadence Design Systems, Inc. | Optimized mapping of an integrated circuit design to multiple cell libraries during a single synthesis pass |
CN101727434A (zh) * | 2008-10-20 | 2010-06-09 | 北京大学深圳研究生院 | 一种特定应用算法专用集成电路结构 |
CN101901161A (zh) * | 2010-07-21 | 2010-12-01 | 四川大学 | 一种面向能耗相关软/硬件划分的层次化控制数据流图建模方法 |
-
2010
- 2010-12-31 CN CN2010106200465A patent/CN102054108B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7530047B2 (en) * | 2003-09-19 | 2009-05-05 | Cadence Design Systems, Inc. | Optimized mapping of an integrated circuit design to multiple cell libraries during a single synthesis pass |
CN101727434A (zh) * | 2008-10-20 | 2010-06-09 | 北京大学深圳研究生院 | 一种特定应用算法专用集成电路结构 |
CN101901161A (zh) * | 2010-07-21 | 2010-12-01 | 四川大学 | 一种面向能耗相关软/硬件划分的层次化控制数据流图建模方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054109B (zh) * | 2010-12-31 | 2014-03-19 | 北京大学深圳研究生院 | 集成电路下层硬件映射方法、数据控制流生成方法及装置 |
CN102043886A (zh) * | 2010-12-31 | 2011-05-04 | 北京大学深圳研究生院 | 集成电路下层硬件映射方法、数据控制流时序约束方法及装置 |
CN102054107A (zh) * | 2010-12-31 | 2011-05-11 | 北京大学深圳研究生院 | 集成电路下层硬件映射方法、时空图生成方法及装置 |
CN102043886B (zh) * | 2010-12-31 | 2012-10-24 | 北京大学深圳研究生院 | 集成电路下层硬件映射方法、数据控制流时序约束方法及装置 |
CN102054107B (zh) * | 2010-12-31 | 2013-11-06 | 北京大学深圳研究生院 | 集成电路下层硬件映射方法、时空图生成方法及装置 |
CN102054109A (zh) * | 2010-12-31 | 2011-05-11 | 北京大学深圳研究生院 | 集成电路下层硬件映射方法、数据控制流生成方法及装置 |
CN103177145A (zh) * | 2011-12-20 | 2013-06-26 | 国际商业机器公司 | 一种用于集成电路的多个时序模式合并的方法和系统 |
CN103177145B (zh) * | 2011-12-20 | 2016-03-30 | 国际商业机器公司 | 一种用于集成电路的多个时序模式合并的方法和系统 |
CN108170957A (zh) * | 2017-12-28 | 2018-06-15 | 佛山中科芯蔚科技有限公司 | 数据控制流图的生成方法、系统及集成电路设计方法 |
CN108170957B (zh) * | 2017-12-28 | 2022-01-04 | 佛山中科芯蔚科技有限公司 | 数据控制流图的生成方法、系统及集成电路设计方法 |
CN113360747A (zh) * | 2020-03-04 | 2021-09-07 | 阿里巴巴集团控股有限公司 | 基于神经网络模型的数据处理方法及装置 |
CN113360747B (zh) * | 2020-03-04 | 2024-01-12 | 阿里巴巴集团控股有限公司 | 基于神经网络模型的数据处理方法及装置 |
CN112270412A (zh) * | 2020-10-15 | 2021-01-26 | 北京百度网讯科技有限公司 | 网络算子处理方法、装置、电子设备及存储介质 |
CN112270412B (zh) * | 2020-10-15 | 2023-10-27 | 北京百度网讯科技有限公司 | 网络算子处理方法、装置、电子设备及存储介质 |
WO2024077758A1 (zh) * | 2022-10-09 | 2024-04-18 | 中山大学 | 基于差分约束系统的高层次综合工具优化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102054108B (zh) | 2012-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102054108B (zh) | 集成电路下层硬件映射方法、时空图压缩方法及装置 | |
CN102043886B (zh) | 集成电路下层硬件映射方法、数据控制流时序约束方法及装置 | |
Vidal et al. | A co-design approach for embedded system modeling and code generation with UML and MARTE | |
JP2019139747A (ja) | 演算装置、演算実行設備及び演算実行方法 | |
CN102055981A (zh) | 用于视频编码器的去块滤波器及其实现方法 | |
CN102054109B (zh) | 集成电路下层硬件映射方法、数据控制流生成方法及装置 | |
CN112860320A (zh) | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 | |
Catthoor et al. | Application-specific architectural methodologies for high-throughput digital signal and image processing | |
Casale-Brunet et al. | Turnus: a unified dataflow design space exploration framework for heterogeneous parallel systems | |
CN101901161A (zh) | 一种面向能耗相关软/硬件划分的层次化控制数据流图建模方法 | |
CN102306141A (zh) | 一种描述动态可重构阵列配置信息的方法 | |
CN102054107B (zh) | 集成电路下层硬件映射方法、时空图生成方法及装置 | |
CN113158599B (zh) | 基于量子信息学的芯片和芯片化eda装置 | |
CN110968404B (zh) | 一种设备数据处理方法及装置 | |
Sau et al. | Automated design flow for coarse-grained reconfigurable platforms: An RVC-CAL multi-standard decoder use-case | |
CN109213105A (zh) | 一种可重构装置、实现可重构的方法及分布式控制系统 | |
CN102572415B (zh) | 在可重构处理器上映射和实现的运动补偿算法的方法 | |
CN102055980B (zh) | 用于视频编码器的帧内预测电路及其实现方法 | |
CN102075762B (zh) | 用于视频编码器的帧间预测电路及其实现方法 | |
Hu et al. | Theory and verification of operator design methodology | |
CN103136162B (zh) | Asic片内云架构及基于该架构的设计方法 | |
CN102075763A (zh) | 用于视频编码器的帧内子块预测电路及其实现方法 | |
Dasu et al. | Reconfigurable media processing | |
Doan et al. | Multi-asip based parallel and scalable implementation of motion estimation kernel for high definition videos | |
Casale-Brunet et al. | TURNUS: An open-source design space exploration framework for dynamic stream programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120808 Termination date: 20211231 |
|
CF01 | Termination of patent right due to non-payment of annual fee |