《在根据高级综合的蚁群优化电路设计中使用熵的方法和装置.pdf》由会员分享,可在线阅读,更多相关《在根据高级综合的蚁群优化电路设计中使用熵的方法和装置.pdf(38页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103140853 A(43)申请公布日 2013.06.05CN103140853A*CN103140853A*(21)申请号 201180047603.1(22)申请日 2011.08.3112/894,902 2010.09.30 US12/894,756 2010.09.30 US12/894,842 2010.09.30 USG06F 17/50(2006.01)(71)申请人新思公司地址美国加利福尼亚州(72)发明人 M伊斯皮尔 L厄克泰姆(74)专利代理机构北京润平知识产权代理有限公司 11283代理人肖冰滨 陈潇潇(54) 发明名称在根据高级综合的蚁群。
2、优化电路设计中使用熵的方法和装置(57) 摘要描述了一种在根据高级综合的蚁群优化电路设计中使用熵的方法和装置。在一个示例中,选择将由电路执行的操作。用于执行操作的多个硬件部件用具有边沿和节点的数据流图来表示。用于执行操作的多个解决方案被模拟为被表示为数据流图上的路径的硬件部件组合。对于每个解决方案,包括在数据流图上被遍历的边沿和节点的数量以及补充子整数成本的成本被确定,并且具有最低成本的解决方案被选为用于电路的硬件部件组合。(30)优先权数据(85)PCT申请进入国家阶段日2013.04.01(86)PCT申请的申请数据PCT/US2011/050081 2011.08.31(87)PCT申请。
3、的公布数据WO2012/050678 EN 2012.04.19(51)Int.Cl.权利要求书7页 说明书23页 附图7页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书7页 说明书23页 附图7页(10)申请公布号 CN 103140853 ACN 103140853 A1/7页21.一种方法,该方法包括:选择将由电路执行的操作;通过具有边沿和节点的数据流图来表示用于执行所述操作的多个硬件部件;对用于执行所述操作的多个解决方案进行模拟,每个解决方案对应于被表示为所述数据流图上的路径的硬件部件组合;确定所述多个解决方案中的每个解决方案的成本,该成本包括在所述数据流图上被遍历。
4、的边沿和节点的数量以及补充子整数成本;以及从所述多个解决方案中选择解决方案,所选择的解决方案具有最低被确定的成本。2.根据权利要求1所述的方法,其中,所述补充子整数成本是虚拟成本。3.根据权利要求1所述的方法,其中,所述补充成本是用于完成各个解决方案的多个步骤的熵的归一化值。4.根据权利要求1所述的方法,其中,所述补充子整数成本基于操作的柱状图的熵的值。5.根据权利要求1所述的方法,其中,确定成本包括创建每个被模拟的解决方案的多个步骤的柱状图阵列。6.根据权利要求5所述的方法,其中,步骤的数量包括针对每个解决方案而言在所述数据流图上被遍历的边沿的数量。7.根据权利要求6所述的方法,该方法还包括。
5、基于各个解决方案的柱状图值和操作数量来确定每个被模拟的解决方案的几率,以及其中所述补充子整数成本是所述几率的函数。8.根据权利要求1所述的方法,其中,模拟多个解决方案包括对于每个解决方案而言通过所述数据流图来模拟每个步骤,每个步骤包括遍历位于所述数据流图的两个节点之间的边沿。9.根据权利要求8所述的方法,该方法还包括将信息素轨迹与每个被遍历的边沿相关联。10.根据权利要求1所述的方法,其中,模拟多个解决方案包括探试性地搜索局部解决方案。11.根据权利要求1所述的方法,其中,模拟多个解决方案包括执行蚁群优化,以及其中确定成本进一步包括应用成本以递增所述数据流图中的边沿的信息素值。12.一种用于在。
6、其上存储指令的非临时性计算机可读介质,当所述指令被处理器执行时促使该处理器执行:选择将由电路执行的操作;通过具有边沿和节点的数据流图来表示用于执行所述操作的多个硬件部件;对用于执行所述操作的多个解决方案进行模拟,每个解决方案对应于被表示为所述数据流图上的路径的硬件部件组合;确定所述多个解决方案中的每个解决方案的成本,该成本包括在所述数据流图上被遍历的边沿和节点的数量以及补充子整数成本;以及从所述多个解决方案中选择解决方案,所选择的解决方案具有最低被确定的成本。13.根据权利要求12所述的计算机可读介质,其中,确定成本包括创建每个被模拟的权 利 要 求 书CN 103140853 A2/7页3解。
7、决方案的多个步骤的柱状图阵列。14.根据权利要求13所述的计算机可读介质,其中,步骤的数量包括针对每个解决方案而言在所述数据流图上被遍历的边沿的数量。15.根据权利要求14所述的计算机可读介质,该计算机可读介质还包括基于柱状图值和各个解决方案的操作数量来确定每个被模拟的解决方案的几率,以及其中所述补充子整数成本是所述几率的函数。16.根据权利要求12所述的计算机可读介质,其中,模拟多个解决方案包括对于每个解决方案而言通过所述数据流图来模拟每个步骤,每个步骤包括遍历位于所述数据流图的两个节点之间的边沿。17.根据权利要求16所述的计算机可读介质,该计算机可读介质还包括将信息素轨迹与每个被遍历的边。
8、沿相关联。18.一种数字处理系统,该数字处理系统包括:选择将由电路执行的操作的装置;通过具有边沿和节点的数据流图来表示用于执行所述操作的多个硬件部件的装置;对用于执行所述操作的多个解决方案进行模拟的装置,每个解决方案对应于被表示为所述数据流图上的路径的硬件部件组合;确定所述多个解决方案中的每个解决方案的成本的装置,该成本包括在所述数据流图上被遍历的边沿和节点的数量以及补充子整数成本;以及从所述多个解决方案中选择解决方案的装置,所选择的解决方案具有最低的成本。19.根据权利要求18所述的系统,其中,所述补充子整数成本是用于完成各个解决方案的多个步骤的熵的归一化值。20.根据权利要求18所述的系统。
9、,其中,所述补充子整数成本基于操作的柱状图的熵的值。21.一种装置,该装置包括:存储器,该存储器用于存储表示用于执行至少一个操作的多个硬件部件的数据流图,所述数据流图具有边沿和节点;解决方案模拟器,该解决方案模拟器被耦合到所述存储器,以接收所述数据流图并将用于执行所述操作的多个解决方案模拟为被表示为所述数据流图上的路径的硬件部件组合;成本评估器,该成本评估器被耦合到所述解决方案模拟器,以接收所述解决方案并确定每个解决方案的成本,该成本包括在所述数据流图上被遍历的边沿和节点的数量以及补充子整数成本;以及解决方案选择器,该解决方案选择器被耦合到所述成本评估器,以接收被评估的成本并选择具有最低成本的。
10、解决方案作为电路的硬件部件组合。22.根据权利要求21所述的装置,该装置还包括操作与变量绑定器,用于在向所述解决方案模拟器提供所述数据流图之前将变量绑定到所述操作上。23.根据权利要求21所述的装置,其中,所述补充成本基于操作的柱状图的熵的值。24.一种用于调度电路的方法,该方法包括:选择将由电路执行的操作;权 利 要 求 书CN 103140853 A3/7页4用具有边沿和节点的数据流图来表示用于执行所述操作的多个硬件部件;对用于执行所述操作的多个解决方案进行模拟,每个解决方案对应于被表示为所述数据流图上的路径的硬件部件和调度组合;确定每个解决方案的成本,该成本包括在所述数据流图上被遍历的边。
11、沿和节点的数量以及与所述数据流图上的路径中不同硬件部件的数量有关的互连成本;将信息素轨迹与每个路径相关联,该信息素轨迹包括各个解决方案的成本;以及选择具有最高值信息素轨迹的解决方案作为电路的硬件部件与调度组合。25.根据权利要求24所述的方法,其中,针对解决方案的所述数据流图上的路径中多个不同硬件部件中的硬件部件具有不同的类型,以及其中所述互连成本与所述路径中不同类型的硬件部件的数量有关。26.根据权利要求25所述的方法,该方法还包括为每个解决方案的步骤确定候选折叠边沿,每个候选折叠边沿具有与目标硬件类型相配对的源硬件类型,所述硬件类型标识所述硬件连接的类型。27.根据权利要求24所述的方法,。
12、其中,针对解决方案的所述数据流图上的路径中多个不同硬件部件中的硬件部件具有不同的类型,以及其中所述互连成本由所述解决方案所使用的不同类型的硬件部件的数量与在所述数据流图中所表示的不同类型的所有硬件部件的总数量的比率进行加权。28.根据权利要求27所述的方法,其中,所述互连成本通过由表示硬件资源的再用的折叠权重作为因素计入的用来执行被模拟的解决方案的寄存器的数量进行加权。29.根据权利要求28所述的方法,其中,用于执行被模拟的解决方案的时步的数量被添加到所述折叠权重中。30.一种用于在其上存储指令的非临时性计算机可读介质,当所述指令被处理器执行时促使该处理器执行:选择将由电路执行的操作;用具有边。
13、沿和节点的数据流图来表示用于执行所述操作的多个硬件部件;对用于执行所述操作的多个解决方案进行模拟,每个解决方案对应于被表示为所述数据流图上的路径的硬件部件和调度组合;确定每个解决方案的成本,该成本包括在所述数据流图上被遍历的边沿和节点的数量以及与所述数据流图上的路径中不同硬件部件的数量有关的互连成本;将信息素轨迹与每个路径相关联,该信息素轨迹包括各个解决方案的成本;以及选择具有最高值信息素轨迹的解决方案作为电路的硬件部件与调度组合。31.根据权利要求30所述的机器可读介质,其中,针对解决方案的所述数据流图上的路径中多个不同硬件部件中的硬件部件具有不同的类型,以及其中所述互连成本与所述路径中不同。
14、类型的硬件部件的数量有关。32.根据权利要求30所述的机器可读介质,其中,针对解决方案的所述数据流图上的路径中多个不同硬件部件中的硬件部件具有不同的类型,以及其中所述互连成本由所述解决方案所使用的不同类型的硬件部件的数量与在所述数据流图中所表示的不同类型的所有硬件部件的总数量的比率进行加权。33.根据权利要求32所述的机器可读介质,其中,所述互连成本通过由表示硬件资源权 利 要 求 书CN 103140853 A4/7页5的再用的折叠权重作为因素计入的用来执行被模拟的解决方案的寄存器的数量进行加权。34.一种数字处理系统,该数字处理系统包括:选择将由电路执行的操作的装置;用具有边沿和节点的数据。
15、流图来表示用于执行所述操作的多个硬件部件的装置;将用于执行所述操作的多个解决方案模拟为被表示为所述数据流图上的路径的硬件部件和调度组合的装置;确定每个解决方案的成本的装置,该成本包括在所述数据流图上被遍历的边沿和节点的数量以及与所述路径中不同硬件部件的数量有关的互连成本;将信息素轨迹与每个路径相关联的装置,该信息素轨迹包括各个调度解决方案的成本;以及选择具有最高值信息素轨迹的解决方案作为电路的硬件部件与调度组合的装置。35.根据权利要求34所述的系统,其中,所述互连成本通过下述之一进行加权:由所述解决方案所使用的不同类型的硬件单元的数量与在所述数据流图中表示的不同类型的硬件单元的总数量之间的比。
16、率,由表示硬件资源的再用的折叠权重当做因素计入的用于执行被模拟的解决方案的寄存器的数量,以及用于执行被模拟的解决方案的时步的数量被添加到所述折叠权重中。36.一种用于调度电路的方法,该方法包括:选择将由电路执行的操作;用具有边沿和节点的数据流图来表示用于执行所述操作的多个硬件部件;将用于执行所述操作的多个解决方案模拟为被表示为所述数据流图上的路径的硬件部件和调度组合;确定每个解决方案的成本,该成本包括在数据流图上被遍历的边沿和节点的数量以及补充子整数成本;将信息素轨迹与每个路径相关联,该信息素轨迹包括各个调度解决方案的成本;对与之前被模拟的解决方案相邻近的其他解决方案进行模拟,所述相邻近的解决。
17、方案基于由与由解决方案所使用的所述硬件单元相邻近的硬件部件所执行的操作的数量通过使用邻居选择函数来选择;以及选择具有最低成本的解决方案作为用于电路的硬件部件组合。37.根据权利要求36所述的方法,其中,所述邻居选择函数对在所述数据流图上的不同边沿处开始的可替换调度中执行的多个操作进行比较。38.根据权利要求36所述的方法,其中,所述邻居选择函数是与各个解决方案的初始边沿相邻近的每个边沿的折叠操作的密度的函数。39.根据权利要求36所述的方法,其中,所述邻居选择函数包括:使用操作的数量和针对每个边沿的折叠量来确定针对所述数据流图的每个边沿的索引。40.根据权利要求39所述的方法,其中,选择邻近解。
18、决方案包括选择具有更高索引的解决方案。41.一种用于调度电路的方法,该方法包括:选择将由电路执行的操作;用具有边沿和节点的数据流图来表示用于执行所述操作的多个硬件部件;权 利 要 求 书CN 103140853 A5/7页6确定用于沿着所述数据流图的边沿来模拟解决方案的引导函数;通过使用所述引导函数选择和模拟用于执行所述操作的多个解决方案,所述解决方案被模拟为被表示为所述数据流图上的路径的硬件部件和调度组合;确定每个解决方案的成本,该成本包括在数据流图上被遍历的边沿和节点的数量;以及选择具有最高值信息素轨迹的解决方案作为电路的硬件部件与调度组合。42.根据权利要求41所述的方法,其中,所述引导。
19、函数与所述数据流图的边沿上的硬件再用量有关。43.根据权利要求41所述的方法,该方法还包括将信息素轨迹与每条路径相关联,该信息素轨迹包括各个调度解决方案的成本,以及其中所述引导函数与所述信息素轨迹进行组合以选择并模拟用于执行所述操作的另外的解决方案,该解决方案被模拟为硬件与调度组合。44.根据权利要求41所述的方法,其中,所述引导函数与针对所述解决方案的所述硬件部件的再用相关。45.根据权利要求41所述的方法,其中,确定所述引导函数包括下述之一:通过使用时步的柱状图来确定解决方案的最大和最小可行调度值,以及将所确定的最大和最小可行调度值进行比较。46.一种方法,该方法包括:选择将由电路执行的操。
20、作,所述操作包括不同类型的多个局部操作;识别将由所述多个局部操作所使用的变量;基于所述变量由所述多个局部操作使用的时间顺序对所述变量进行排序;基于所述变量的排序对所述多个局部操作进行排序;用具有边沿和节点的数据流图来表示用于执行所述操作的多个硬件部件,所述边沿和节点基于所述多个局部操作的排序进行连接;对用于执行所述操作的多个解决方案进行模拟,每个解决方案对应于被表示为所述数据流图上的路径的硬件部件组合;确定每个解决方案的成本,每个成本包括对于对应于各个解决方案的路径而言在所述数据流图上被遍历的边沿和节点的数量;以及选择具有最低成本的解决方案作为用于电路的硬件部件组合。47.根据权利要求46所述。
21、的方法,其中,对所述局部操作进行排序还包括将产生变量的局部操作排在消费所述变量的局部操作之后。48.根据权利要求47所述的方法,其中,表示包括在所述数据流图中在产生所述变量的局部操作与消费所述变量的局部操作之间创建边沿。49.根据权利要求46所述的方法,其中,表示包括将每个类型的局部操作与一类能够执行所述局部操作的硬件部件相关联,并用对应于所关联类型的硬件部件的节点来锚定局部操作。50.根据权利要求46所述的方法,其中,识别包括为每个变量创建局部操作。51.一种用于在其上存储指令的非临时性计算机可读介质,当所述指令被处理器执行时促使该处理器执行:权 利 要 求 书CN 103140853 A6。
22、/7页7选择将由电路执行的操作,所述操作包括不同类型的多个局部操作;识别将由所述多个局部操作所使用的变量;基于所述变量由所述多个局部操作使用的时间顺序对所述变量进行排序;基于所述变量的排序对所述多个局部操作进行排序;用具有边沿和节点的数据流图来表示用于执行所述操作的多个硬件部件,所述边沿和节点基于所述多个局部操作的排序进行连接;将用于执行所述操作的多个解决方案模拟为被表示为所述数据流图上的路径的硬件部件组合;确定每个解决方案的成本,每个成本包括对于对应于各个解决方案的路径而言在数据流图上被遍历的边沿和节点的数量;以及选择具有最低成本的解决方案作为用于电路的硬件部件组合。52.根据权利要求51所。
23、述的计算机可读介质,其中,对所述局部操作进行排序还包括将产生变量的局部操作排在消费所述变量的局部操作之后。53.根据权利要求52所述的计算机可读介质,其中,表示包括在所述数据流图中在产生所述变量的局部操作与消费所述变量的局部操作之间创建边沿。54.根据权利要求51所述的计算机可读介质,其中,表示包括将每个类型的局部操作与一类能够执行所述局部操作的硬件部件相关联,并用对应于所关联类型的硬件部件的节点来锚定局部操作。55.根据权利要求51所述的计算机可读介质,其中,识别包括为每个变量创建局部操作。56.一种数字处理系统,该数字处理系统包括:选择将由电路执行的操作的装置,所述操作包括不同类型的多个局。
24、部操作;识别将由所述多个局部操作所使用的变量的装置;基于所述变量由所述多个局部操作使用的时间顺序对所述变量进行排序的装置;基于所述变量的排序对所述多个局部操作进行排序的装置;用具有边沿和节点的数据流图来表示用于执行所述操作的多个硬件部件的装置,所述边沿和节点基于所述多个局部操作的排序进行连接;对用于执行所述操作的多个解决方案进行模拟的装置,每个解决方案对应于被表示为所述数据流图上的路径的硬件部件组合;确定每个解决方案的成本的装置,该成本包括对于对应于各个解决方案的路径而言在数据流图上被遍历的边沿和节点的数量;以及选择具有最低成本的解决方案作为用于电路的硬件部件组合的装置。57.根据权利要求56。
25、所述的系统,其中,用于对所述多个局部操作进行排序的装置还包括用于将产生变量的局部操作排在消费所述变量的局部操作之后的装置。58.根据权利要求57所述的系统,其中,用于表示的装置包括用于在所述数据流图中在产生所述变量的局部操作与消费所述变量的局部操作之间创建边沿的装置。59.根据权利要求56所述的系统,其中,用于表示包括用于将每个类型的局部操作与一类能够执行所述局部操作的硬件部件相关联,并用对应于所关联类型的硬件部件的节点来锚定局部操作的装置。权 利 要 求 书CN 103140853 A7/7页860.根据权利要求56所述的系统,其中,用于识别的装置包括用于为每个变量创建局部操作的装置。权 利。
26、 要 求 书CN 103140853 A1/23页9在根据高级综合的蚁群优化电路设计中使用熵的方法和装置技术领域0001 所公开的实施方式涉及电路设计,尤其涉及为电路设计选择用于操作的时间约束调度的解决方案。背景技术0002 对于数字电路(例如,超大规模集成(VLSI)技术的规模)的设计而言,设计者通常采用计算机辅助技术。已经开发了描述数字电路的标准语言(诸如硬件描述语言(HDL)来帮助设计和模拟复杂的数字电路。若干硬件描述语言(例如,VHDL(非常高速集成电路HDL)和Verilog HDL)已经演进为工业标准。VHDL和Verilog HDL是通用硬件描述语言,其允许通过使用抽象数据类型来。
27、定义门级、寄存器传输级(RTL)或者行为级的硬件模型。随着器件技术的持续发展,已经开发了各种产品设计工具来使HDL适用于与更新的器件和设计风格一起使用。0003 在用HDL码设计集成电路时,HDL源码描述了电路元件,而且综合过程根据该源码来产生RTL网表。该RTL网表典型地是独立于工艺的网表,因为其独立于特定销售商的集成电路(诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)的工艺/架构。RTL网表对应于电路元件的示意性表示(与行为表示相反)。然后,执行映射操作以从独立于工艺的RTL网表转换成工艺专用网表,该工艺专用网表能够用于创建销售商的工艺/架构中的电路。现场可编程门阵列(FPGA。
28、)销售商使用不同的工艺和架构在他们的集成电路中实现逻辑电路。这产生了最终的网表,该最终的网表专用于特定销售商的工艺和架构。0004 高级综合(HLS)是将HLD(高级描述)的行为描述转换成寄存器传输级(RTL)描述的过程。HLS典型地用一组设计目标和约束来完成。因此,虽然可能存在着许多不同的方式来实现HLD的行为,但是HLS寻求在最小化特别定义的成本的同时来完成该行为。所定义的成本是典型的事情,诸如循环时间、元件数、硅面积、功率、互连、引脚数等。这些约束典型地受到形态因数、封装约束、互操作性和类似因素的驱动。HLS能够被描述为编译用高级语言(HLL)所写的规范、向规范中的操作分配硬件资源并且之。
29、后生成RTL描述。0005 为了生成RTL描述,HLS对操作进行调度、向特定功能硬件单元分配操作、向存储元件分配任意变量、以及向将功能单元连接到存储寄存器和输入/输出接口的通信总线分配任意数据传输。在包括数字信号处理器(DSP)在内的许多设备中,RTL描述提供了系统的输入和输出以及将被执行的算法。这些被描述为帧。基于帧的算法通过使用帧数据来描述。输入数据在帧中被接收,而且输出数据在帧中被产生。0006 基于帧的算法典型地在HLS中被如下综合:首先,器件从输入流中收集帧数据;之后,器件对帧数据进行处理;以及最后,器件将输出帧作为输出流进行发送。该帧综合包括操作的调度以及将操作绑定到硬件上以获得优。
30、化的器件设计。该方法的吞吐量(throughput)低。0007 蚁群优化(ACO)是近来的一种优化方法,其已经被应用到许多不同的问题上。在说 明 书CN 103140853 A2/23页10ACO中,每个蚂蚁都构建候选解决方案,并根据与其所构建的每个解决方案相关联的成本来留下信息素。ACO允许找到若干个不同的解决方案。之后,可以将这些解决方案进行相互比较,以找到最佳解决方案。然而,ACO的明显局限在于,ACO不能被直接应用到现有解决方案方法中。发明内容0008 描述了一种在根据高级综合的蚁群优化电路设计中使用熵的方法和装置。在一个示例中,选择将由电路执行的操作。用于执行操作的多个硬件部件用具。
31、有边沿和节点的数据流图来表示。用于执行操作的多个解决方案被模拟为被表示为数据流图上的路径的硬件部件组合。确定每个解决方案的成本,该成本包括在数据流图上被遍历的边沿和节点的数量以及补充子整数(sub-integer)成本。具有最低成本的解决方案被选为用于电路的硬件部件组合。附图说明0009 通过示例的方式示出所公开的实施方式,并且所公开的实施方式不受附图中的图形的限制,其中,类似的标号指代类似的元件。0010 图1是用于基于高级描述来执行电路设计的高级综合的过程流程图的示例。0011 图2是电路设计的数据流图的示例性表示。0012 图3是图2的数据流图的可替换示例性表示。0013 图4是针对使用。
32、输入和输出数据帧来进行电路设计的流水线操作的一个实施方式的过程流程图。0014 图5示出了用于实施图4的过程的系统的一个实施方式。0015 图6是用于使用蚁群优化来解决电路设计的过程流程图的示例。0016 图7示出了用于实施图6的过程的系统的一个实施方式。0017 图8是用于确定在图6的过程中使用的电路设计的补充成本的过程流程图的示例。0018 图9是用于估计在图6的过程中使用的互连成本的过程流程图的示例。0019 图10是用于确定在图6的过程中使用的用于选择解决方案的引导函数(guiding function)的过程流程图的示例。0020 图11是用于确定在图6的过程中使用的用于在局部搜索中选择邻居的函数的过程流程图的示例。0021 图12是被配置成用于与所公开的实施方式一起使用的数据处理系统的框图示例。具体实施方式0022 所公开的实施方式中的至少一个实施方式寻求使用蚁群优化(ACO)方法来改善集成电路的设计。在一个实施方式中,附加成本被增加到候选解决方案的成本中,以改善附加候选解决方案的选择。0023 高级综合(HLS)是用于将复杂集成电路系统的行为描述转换成能够被用于构建该说 明 书CN 103140853 A10。