用于在可重构器件中安装电路设计的方法以及系统的利记博彩app

文档序号:6455781阅读:1237来源:国知局
专利名称:用于在可重构器件中安装电路设计的方法以及系统的利记博彩app
技术领域
本发明涉及一种用于在可重构电路的器件中安装期望的电 路i殳计的方法以及系统。
背景技术
在日本专利公开公报2000—200298号中记载有一种自动配 置方法,该自动配置方法的特征在于,将由部件列表和网络列 表构成的电路数据及其配置数据存储到数据库中,将新电路数 据和数据库中的电路数据分别转换为由节点和边缘构成的图, 在转换得到的图之间进行匹配,搜索匹配度较高的电路数据, 按照与搜索到的电路数据成对的配置数据来配置新电路数据。 还记载有在按照与搜索到的电路数据成对的配置数据来配置新 电路时使用模拟退火法、神经网络、均场退火或者遗传算法。 另外,记载有如下内容在按照与搜索到的电路数据成对的配 置数据来配置新电路数据时,使电路数据的部件与新电路数据 的部件相对应,至少使用该对应关系和配置数据来生成对新电 路数据的配置进行评价的成本函数,并使成本函数最小化。还 记载有在进行成本函数的最小化时,至少生成初始配置,通过 移动或转动部件或者部件组来更新配置。
在美国专利公报6099583号中记载有一种为了将逻辑运算 (logic operation)安装到可编程逻辑器件(PLD)中而对PLD进行 编程的方法。记载有如下内容PLD包括多个可配置逻辑块 (CLB),由多个磁芯定义逻辑运算,各磁芯包括多个相互关联 的逻辑部分。该方法还设置包括多个CLB站点的配置数据表。 各CLB站点包括与关联的一个或多个CLB对应的存储单元。记载有如下内容该方法还在配置数据表中对多个磁芯分别仅配置一个被保留的逻辑部分,在配置数据表中形成第一布局排列,从第一布局排列中排除多个磁芯各自的其它未保留的逻辑部分,将第 一磁芯的第 一被保留的逻辑部分分配给第一CLB站点,通过使第 一 磁芯的第 一 被保留的逻辑部分从第一 C L B站,泉移动到第二CLB站点来对第 一布局排列进行退火,在配置数据表中制作第二布局排列。记载有如下内容该方法还将多个磁芯各
自的一个或者多个未保留的逻辑部分配置在配置数据表中,将第一磁芯的第一未保留部分分配到笫三CLB站点中。
在美国专利公报6813754号中记载有一种使用计算机将多个电路要素映射到PLD的多个CLB的方法。在该公报中记载有如下内容将电路设计的多个电路要素分别包装为与一个CLB对应的块,通过将该块分配给PLD的CLB来生成映射,此时,使用才莫拟退火法。并且,记载有如下内容选择与该映射对应的PLD内的关键路径,该关键路径包括PLD的第一CLB的第一节点,该第一CLB包括一个或多个其它节点,不改变其它节点的分配地将第一节点从当前的单元分配到其它单元,由此变更电路性能。第一节点是终端节点,其它单元位于当前单元的附近,是以连接节点为中心的圆,具有与终端节点和连接节点的距离对应的半径。
在包括FPGA(现场可编程门阵列)等PLD的可重构器件中,在决定由多个部件构成的电路的配置时,为了研究能够安装到器件中的所有连接,需要庞大的时间。使用重复算法的自动配置方法能够利用随机因素在短时间内得到最佳配置或者接近最佳配置的解,其中,上述重复算法包括利用了分子加热时干扰引起的状态变化的原理的模拟退火法。在研究器件的配置配线时,改善安装到器件中的电路的性能也很重要。例如,改善定时收敛和/或关键路径很重要。如果为了改善电路性能而需要大幅变更利用自动配置方法选择的配置,自动配置的效果减弱。另 一方面,在对利用随机因素选择的各临时配置选择关键路径并研究其改善时,自动配置所需的时间增加。

发明内容
本发明的一个方式是一种方法,该方法生成用于在可重构器件中安装电路设计的配置数据。器件具有多个处理元件和用于连接这些处理元件的路由矩阵,通过变更多个处理元件的各处理元件的功能和/或变更上述路由矩阵的至少 一部分的连接来进行重构。在器件中,多个处理元件被划分为多个组,包括在各组中的多个处理元件在第一延迟的范围内通过包括在路由矩阵中的第 一 电平的路由矩阵进行连接,包括在不同组中的多个处理元件通过包括在路由矩阵中的第二电平的路由矩阵来以与第一延迟不同的延迟进行连接。
生成配置数据的方法包括如下工序在能够通过计算机访问的数据库中准备硬件信息的工序,该硬件信息包括各组所包括的多个处理元件的定义数据和路由矩阵的定义数据;以及映射工序,通过由计算机执行使成本函数最小化的重复算法来将根据配置数据而安装到上述器件中的电路设计映射到多个处理元件中。成本函数包括使第二电平的路由矩阵的使用为最小的项目(项)。通过第二电平的路由矩阵连接的处理元件之间的信号的延迟大于仅通过第一电平的路由矩阵连接的处理元件之间的信号的延迟(第一延迟)。在该方法中,选择使第二电平的路由矩阵的使用变少的分配(配置)。因而,在将电路设计映射到器件时,通过重复算法来选择处理元件之间的延迟变小的分配,退火法、或者遗传算法。
希望电路设计包括数据流图,该数据流图由多个功能模块和多个功能模块的连接来表示,其中,上述多个功能模块能够将安装到器件中的功能分别安装到多个处理元件中的任一个。
希望映射工序包括如下工序临时分配工序,将多个功能模块分别临时分配绍、一皮划分为多个组的多个处理元件中的任一个;以及改变分配工序,使用重复算法来改变对于多个处理元件的多个功能才莫块的分配。改变分配工序包括如下工序才艮据连接多个处理元件的^各径求出成本函数的值,对上述多个处理元件分别分配多个功能模块。
希望映射工序包括如下工序分析数据流图,将对于多个功能模块的数据输入和/或数据输出的定时保存到存储器中;以及在改变分配工序之后,分析多个处理元件的连接,将用于实现保存在存储器中的定时的延迟分配给多个处理元件中的任一个,其中,上述多个处理元件的连接包括由于通过第二电平的路由矩阵而产生的延迟,对上述多个处理元件分别分配多个功能模块。
利用包括模拟退火法的重复算法来改变对于多个处理元件的多个功能模块的分配的处理期间,选择用于使成本函数最小化的分配(映射、配置),由此选择性能较高的映射,而不需要求出关4建^ 各径或者验证定时。包括在组内的多个处理元件在第一延迟、例如一个周期的范围内通过第一电平的路由矩阵进行连接,因此担保定时,不需要改善关键路径。通过使成本函数最小化来使包括在不同组中的多个处理元件的连接最小化。因此,在改变分配工序之后,通过对包括第二电平的路由矩阵的定时进行验证能够缩短计算映射所需的时间。
构成数据流图的多个功能模块包括多种功能模块。器件也可以是与所有这些多种功能模块对应地包括可进行构建的处理元件的器件。器件的其他例子是多个处理元件与多种功能模块内的被限定了种类的功能模块对应地包括可分别进行构建的多种处理元件的器件。在这种器件中进行映射时,还希望临时分
配工序包括如下工序优先对多种处理元件内、包括在多个处理元件中的数量较少的种类的处理元件分配多个功能模块,此时,将能够分配给某一种(第一种)多个处理元件的多个功能模块随才几地分配》合该种多个处理元件中的^f壬一个。随机地分配包括如下情况产生随机数,按照该随机数将能够分配给第一种多个处理元件的多个功能模块分配给第一种多个处理元件中的任一个。在映射的初始的临时分配的工序中,优先对数量较少的种类的处理元件进行分配,由此能够提高处理元件的利用效率。因此,能够生成用于将所需的处理元件数量较多的电路设计映射到可重构器件中的信息。另外,能够生成用于将多个电路设计同时映射到可重构器件中的信息。
希望临时分配工序还包括如下工序优先于将多个功能模块随机地分配给某一种多个处理元件中的任一个的工序,将包括在多个功能模块中的第 一特定功能模块随机地分配给多个组内的特定组的多个处理元件中的任一个。希望改变分配工序还包括如下工序将第一特定功能模块分配给特定组的多个处理元件中的任一个。
希望临时分配工序还包括如下工序优先于将多个功能模块随才几地分配给特定组的多个处理元件中的任一个的工序,将包括在多个功能模块中的第二特定功能模块分配给多个处理元件的特定处理元件。希望改变分配工序还包括如下工序不改变而是固定第二特定功能模块的分配。
本发明的不同方式之一是一种方法,该方法包括在可重构器件中映射电路设计。电路设计包括数据流图,上述数据流图由多个功能模块和多个功能模块的连接来表示,其中,上述多 个功能模块能够将安装到器件中的功能分别安装到多个处理元
件中的任一个。映射工序包括如下工序临时分配工序,将多 个功能模块分别临时分配给被划分为多个组的多个处理元件中 的任一个;以及改变分配工序,使用使成本函数最小化的重复 算法来改变对于多个处理元件的多个功能模块的分配。成本函 数包括使第二电平的路由矩阵的使用为最小的项目。另外,该 改变分配工序包括如下工序根据多个处理元件的连接求出成 本函数的值,其中,对上述多个处理元件分别分配多个功能模 块。
本发明的进一步不同的方式之一是一种系统,生成用于重 构可重构器件的配置数据。该系统包括用于保存硬件信息的数 据库,其中,上述硬件信息包括各组所包括的多个处理元件的
定义数据和路由矩阵的定义数据。并且,该系统包括映射装置, 该映射装置将根据配置数据而安装到器件中的电路设计映射到 多个处理元件中。该映射装置通过根据硬件信息执行使成本函 数最小化的重复算法来将电路设计映射到多个处理元件中。成 本函数包括使第二电平的路由矩阵的使用为最小的项目(项)。
并且,希望映射装置(进行映射的装置)与上述数据流图对 应地包括临时分配功能单元,其将多个功能模块分别临时分 配结4皮划分为多个组的多个处理元件中的^f壬一个;以及改变分 配功能单元,其使用重复算法来改变对于多个处理元件的多个 功能模块的分配。改变分配功能单元包括如下功能根据多个 处理元件的连接求出成本函数的值,其中,对上述多个处理元 件分别分配多个功能模块。
另外,希望映射装置还具有保存功能单元,其分析数据 流图,将对于多个功能模块的数据输入和/或数据输出的定时保存到存储器中;以及分配功能单元,其分析多个处理元件的连
接,将用于实现保存在存储器中的定时的延迟分配给多个处理 元件中的任一个,其中,上述多个处理元件的连接包括由于通 过第二电平的路由矩阵而产生的延迟,对上述多个处理元件分 别分配多个功能模块。
本发明的进一步不同的方式之一是一种映射装置,该映射 装置将根据用于重构可重构器件的配置数据而安装到可重构器 件中的电路设计映射到可重构器件的多个处理元件中。
本发明的进一步不同的方式之一是一种程序,用于通过计 算机生成用于重构可重构器件的配置数据。该程序包括如下步
骤在能够通过计算机访问的数据库中准备硬件信息,该硬件 信息包括各组所包括的多个处理元件的定义数据和路由矩阵的 定义数据。并且,该程序包括如下步骤通过由计算机执行使 成本函数最小化的重复算法来将根据配置数据而安装到器件中 的电路设计映射到多个处理元件中。成本函数包括使第二电平 的路由矩阵的使用为最小的项目。能够在计算机中可读取的适 当的介质中进行记录来提供该程序或者程序产品。另外,能够 通过因特网等计算机网络来提供程序或者程序产品。


图l的(a)示出可重构器件的一例的概要结构,图l的(b)示出 PE矩阵的概要,图1的(c)和图1的(d)示出动态地重构PE矩阵的情况。
图2示出PE矩阵的排列。
图3示出配置在PE矩阵中的PEs的类型。
图4》文大示出PE矩阵的配置。
图5示出|殳内配线(intra segment配线)。图7示出段间配线(inter segment配线)。
图8示出将电路设计映射到器件中的过程。
图9示出配置配线支持系统的概要结构。
图IO是表示配置配线支持系统的处理的概要的流程图。
图ll是表示映射处理的概要的流程图。
图12示出用于说明映射的硬件(器件)的简单的例子。
图13示出硬件信息的一例。
图14示出DFG的一例。
图15的(a)示出分析了 DFG的功能的例子,图15的(b)示出分 析了 DFG的连接的例子。
图16示出优先级存储区的 一例。
图17的(a) 图17的(e)示出按照图16示出的优先级存储区对 图12示出的器件映射图14示出的DFG的几个例子。 图18示出DFG的不同例。 图19示出优先级存储区的不同例。
图20示出按照图19示出的优先级存l诸区对图3示出的PE矩 阵临时映射图18示出的DFG的例子。
图21示出在SA的过程中得到的映射的 一例。
图22示出在SA的过程中得到的映射的不同例。
图23示出在SA的过程中得到的映射的进一 步的不同例。
具体实施例方式
图l的(a)示出可重构器件的一例。该器件l是本申请的申请 人所开发的、称为DAPDNA的半导体集成电路装置。该器件l 包括被称为D A P的RIS C磁芯模块2和被称为D N A的动态可重构 数据 流力口 速 器 (Dynamic Reconfigurable Data-flow Accelerator)3。器件1除了 DAP 2和DNA 3以外,还包括DNA3的直接输入输出用接口4、 PCI接口5、 SDRAM接口6、 DMA控
制器7 、其它周边器件8以及用于连接它们的高速开关总线9 。 DAP 2包括调试接口2a、 RlSC磁芯2b、命令高速緩冲存储器2c 以及数据高速緩冲存储器2d。 DNA 3包括PE矩阵10和配置存储 器19,其中,上述PE矩阵为二维地配置376个处理元件PE(下面 有时简单称为PE或者PEs)得到的矩阵,上述配置存储器19保存 用于改变包括在该PE矩阵10中的多个处理元件PE(PEs)的功能 和/或连接来重构PE矩阵10的配置数据18。
配置存储器19是多个存储单元的结构。例如,如图l的(b) 所示,在PE矩阵10中,根据保存在前台存储单元中的配置数据 18来构成第一功能(数据流、电路设计)17a。另外,根据分别保 存在不同的后台存储单元中的配置数据来分别构成第二功能 17b和第三功能17c。通过切换存储器19的存储单元,在PE矩阵 10中改变第一功能17a、重构第二功能17b或第三功能17c。例如, 在 一 个周期( 一 个时钟)内动态地进行P E矩阵10的重构。
如图l的(c)所示,在可重构器件(动态可重构器件)l中,能 够分时重构(动态重构)PE矩阵10,使其实现对MPEG译码器等 某个应用程序进行分时而得到的多个功能(子功能)。通过这种 使用,使用器件l能够以较少的硬件资源来执行需要多个硬件资 源的应用程序。
另外,如图l的(d)所示,为了执行再现方式不同的应用程 序,能够重构PE矩阵10使其分别实现多个功能。通过这种使用, 能够使用共用的硬件(器件)l来执行多个应用程序。该器件l不 是以程序电平(命令电平)而是能够以数据流电平(数据通路电 平、硬件电平)来切换多个功能(多功能)并进行安装,因此能够 以与专用石更件匹舌丈的速度进行处理。
图2放大示出PE矩阵10的排列。配置PEs使得作为整体构成16x24的矩阵。此外,如图3所示,几个PE占据两个PE的空间, 从而作为整体在PE矩阵10中实际配置有376个PE,但是在图2 中未进行反映。这些PEs被进一步划分为分别由8x8的PEs构成 的六个组(group)。将这些组称为段S,从PE矩阵10的左上向右 下依次配置有段0(S0)至段5(5S)。包括在各段S0 S5中的PE在一 个周期的迟延的范围内以能够发送接收数据的段内连接(intra segment connection)来进4亍连才妻。另夕卜,^殳S0 S5内相邻的4史通 过后述的延迟元4牛利用4殳间连才妻(inter segment connection)22进 行连接。
图3示出包括在PE矩阵10中的PEs的具体配置例。在图3示 出的PE中,以"EX,,开头的PE被称为EXE元件,包括算术运算、 逻辑运算以及两个输入的比较功能。并且,"EXC,,装载有进行 字节比较的CMPSB命令、"EXF,,装载有FF1 (快速查找1 )命令、 "EXM"装载有乘法运算命令、"EXR"装载有进行按位取反的 BREV命令、"EXS"装载有进行字节交换的BSWAP命令,如这 样在每个类型中都包含固有的运算功能。
以"DL"开头的PE是延迟元件,能够分别设定1 -8个时钟之 间的延迟。"DLE"是段内的数据延迟用元件,"DLV"是纵方向 的段之间的数据发送接收用元件,"DLH"是横方向的段之间的 数据发送接收用元件,"DLX"是纵横方向的段之间的数据发送 接收用元件。
在PE矩阵10中还配置有作为DNA的内部存4渚器的"RAM"、 作为数据输入用的DNA内部緩沖器的"LDB"、作为数据输出用 的DNA内部緩冲器的"STB"、作为生成对于DNA内部緩冲器的 地址的元件的"C16 E ,,、作为生成对于外部存储器空间的地址的 元件的"C32E"、作为从DNA直接1/0输入数据的元件的"LDX"、 作为向DNA直4妻I/0输出数据的元件的"STX"。图4示出作为PE的一例而包括ALU lla、 MUL(16x16) llb、 FF llc等的EXE元件("EXM")的概要结构。能够根据保存在DNA 3的配置存储器19中的配置数据18来构成该EXM,使其执行算 术运算、逻辑运算、两个输入的比较功能,除此之外还执行乘 法运算中的任一个、或者复合了它们的任一个的命令。另外, 该EXM内置有多个FF llc,因此能够控制对于元件PE的数据从 输入至输出为止的延迟时间,在延迟元件(DLE)数量不足的结 构中,还能够设置作为延迟元件的功能。
PE矩阵10包括多个PE和用于连接它们的路由矩阵(配线 组)20。路由矩阵20包括第一电平的配线组(第一电平的路由 矩阵、内连接、段内连接)21,其用于连接各段内(在图4中为S0 和S1的各自)的PE;以及第二电平的配线组(第二电平的路由矩 阵、间连接、段间连接)22,其用于通过延迟元件连接相邻的段 之间(在图4中为S 0和S1之间)。能够根据配置数据1 8控制利用路 由矩阵20的PEs的连接。因而,在PE矩阵10中,通过根据配置 数据18来变更多个PE各自的功能和/或变更路由矩阵20的至少 一部分的连接,能够重构不同的电路(数据通路、数据流)。
图5示出用于连接段内部(图5例示SO)的PEs的第 一 电平的 配线组21的结构的一例。第一电平的路由矩阵21包括用于连接 包括在段0(S0)内的8x8个PEs的128条纵方向的总线23和64条横 方向的总线24。纵方向的总线23被分为16组,分别包括8条总线 的两条V-总线23x和23y成为 一对,按照PEs的纵列(column)配置 在该列的两侧。横方向的总线24被分为8个组,按照PE的4黄方 向的行(line)配置分别包括8条总线的H-总线24。在V-总线23x 和23y上与各PE对应地设置有8-1的总线选择器(多路转接器、 MUX)25,能够对各PE输入数据。
在H-总线24上与H-总线24和V-总线23x以及23y的各交叉对应地设置有8-l(8对l)的总线选择器(多路转接器、MUX)26。 因而,能够将 一 个数据集从 一 个H -总线2 4输出到与该H -总线2 4 交叉的一个V-总线23x或23y中。也能够相反。对包括在H-总线 24中的各总线连接该行的PEs的输出。因而,通过V-总线23x和 23y以及H-总线24,由此能够连接包括在段内的PEs。在由包括 这些V-总线23x和23y以及H-总线24的第 一 电平的总线21能够 连接的范围、即各段0 5(S0 S5)内的PE之间,能够在一个周期 (一个时钟)以内发送接收数据。因而,定时上例如包括在段SO 内的PEs都是等价的。因此,如果在同一段内,则即使为了构 成电路而选择任一个PE来分配功能,也不需要研究定时,定时 上能够使用某一个段内的PEs自由地配置^见定的电路以及进行 配线。
图6示出与上述不同的第 一 电平的路由矩阵21的结构。在该 例子中,使用16-1(16对1)的两个MUX 26a和26b,能够从两个 H-总线24对一个V-总线23x或者23y输入输出数据。因而,能够 从 一 个H-总线24对与该H-总线24交叉的 一 个V-总线23x或者 23y输出最大两个数据集。也能够与其相反。因此,第一电平的 路由矩阵21的连接挠性增加。
图7示出第二电平的路由矩阵22的结构。在图7中,通过第 二电平的路由矩阵22连接相邻的段(在图7中S1和S4)内分别包 括的连接用元件DLH。图7力文大示出的各DLH连接在各个段S1 和S4的内部的第 一 电平的路由矩阵(intra-segment interconnect: 段内连接)21上。因而,能够通过第二电平的路由矩阵 (inter—segment interconnect: l殳间连冲妄)22连才矣包4舌在4殳S1内的 PE和包括在段S4内的PE。连接用的延迟元件DLH作为包括在第 一电平的路由矩阵21中的总线接口而发挥功能。因而,能够在 每个段内独立使用包括在第一电平的路由矩阵21中的总线。另一方面,在需要在段之间输入输出数据时,需要通过包括在连
接用的延迟元件DLH中的多个FF来输入输出数据,从而新增加 与时钟同步的两个周期以上的延迟。
这样,在仅使用第一电平的路由矩阵21来连接PE的情况 下,保证在一个周期(第一延迟)的范围内连接在PEs之间,不需 要验证定时。与此相对,在通过第二电平的路由矩阵22来连接 PE的情况下,增加两个周期以上的延迟。通过第二电平的路由 矩阵2 2来连接的情况下的延迟依赖于延迟元件D L H的设定。例 如,通过控制DLH的延迟量,能够使使用两次第二路由矩阵22 的信号与使用 一次第二路由矩阵22的信号同步。在通过其它连 接用的延迟元件DLV和DLX来连接相邻的段S0 S5时也相同。
因此,分布到段S0 S5之中的多个段的电路、即跨段的电 路在配置配线期间或者结束之后需要定时的调整或者重新研 究。其结果,有可能需要追加延迟元件或者调整延迟元件的延 迟。在PE矩阵10中配置电路以及配线时,优选为最小限度使用 第二电平的路由矩阵22。
图8示出根据提供的电路设计生成配置数据的过程。首先, 在C语言等程序或者数据流图等状态下,通过D N A编译器8 5将 提供的规格(电路设计)81转换为PE网络列表82。 DNA编译器85 分析规格81,生成数据流图作为PE网络列表82,上述数据流图 由多个功能块FB(下面有时简单显示为FB)和这些多个功能模 块FB的连接来表示,其中,上述多个功能模块能够将安装到器 件1中的功能分别安装到PE中的某一个中。在该过程中,DNA 编译器85不仅研究用于规定数据集的顺序的延迟,还包括研究 分配有FB的各PE的延迟时间,研究对各FB的数据输入的定时。 然后,在PE网络列表82中插入包括适当的延迟的FB。
接着,才艮据PE网络列表82,由配置配线支持系统30生成包括配置配线信息的配置数据18。根据所生成的配置数据18来重 构PE矩阵IO,由此能够在包括PE矩阵10的器件1中安装用于实 现电路设计81的功能。
图9示出配置配线支持系统3 0的概要。该系统3 0构成为使用 硬件资源,其中,上述硬件资源包括硬盘设备等适当的保存设 备、存储器、包括CPU的运算处理功能,作为通常的计算机IOO 来提供。配置配线支持系统30是用于生成用于构建上述可重构 器件1的配置数据18的系统。该系统30包括第一数据库31,其 用于保存硬件信息89;第二数据库(DFG保存部)32,其用于保 存数据流图类型的PE网络列表(下面是DFG)82;装置(映射装 置)33,其用于将DFG82映射到器件1中;以及装置34,其用于 根据映射数据83和DFG 82生成包括初始值设定等的配置数据 18。
硬件信息8 9是按照器件的每个种类而生成的芯片定义数据 (chip Definition data)。如果是上述器件l,则在硬件信息89中包 括PE的定义数据(段信息,包括在各段内的PE的种类、数量、 配置等)、以及包括用于连接这些PE的第 一 和第二路由矩阵的配 线的定义数据等。包括映射装置33的系统30通过改变要映射的 器件的硬件信息89能够对各种类型的器件进行映射。另外,如 果是段的范围和/或界限能够根据动作频率等条件而变更的器 件,则使用这些条件不同的硬件信息89能够改变用于通过映射 装置33进行映射的前提条件。
映射装置33将包括在DFG 82中的多个功能模块(FBs)映射 到多个PE中,生成映射数据83。通过使用映射数据83能够将由 DFG 82提供的电路设计安装到器件1中。在本说明书中映射包 括将包括在DFG 82中的FBs分配(进行配置)给包括在器件l中的 PE s的任 一 个和/或生成进行分配而得到的信息。映射装置33包括功能单元38,其从数据库32中读出DFG 82并进行分析;功能单元35,其将包括在DFG 82中的FBs分别 临时分配给被划分为段的PEs中的任一个;功能单元36,其根 据硬件信息89来执行使成本函数(cost function)CF最小化的重 复算法,由此适当地改变对于PE的FB的分配、将DFG 82映射 到PEs;以及功能单元37,其验证定时。映射功能单元36具备 布局表(配置用表)36a,其在计算机100的存储器中虚拟展开PE 矩阵10的PEs的排列;功能36b,其按照模拟退火法(下面是SA) 来变更PEs的分配;功能36c,其计算成本函数(下面是CF);功 能36d,其判断SA的条件;以及功能36e,其更新映射数据83。 ^口后面i羊纟田"i兌明另卩才羊,SA 36b每,欠牙肖?文变(perturb, perturbation) 布局表36a的PEs的分配,反复进行CF的计算。
计算CF的功能36c求出用于连接PEs的路径,根据用于形成 该路径的路由矩阵21和22的使用状况,利用下式(1)计算CF,其 中,上述PEs是布局表36a的PEs,通过SA而被分配了 FBs。
CF=Cl'F(W-intra)+C2F(W-inteO …(l)
F(W-intra)与第 一 电平的路由矩阵21的使用对应,是用于 求出与不跨段的配线有关的成本的函数(项目、项)。F(W-inter) 与第二电平的路由矩阵的使用对应,是用于求出与用于跨段的 配线有关的成本的函数(项目、项)。C1和C2是系数,CF反映出 第二项、即C2'F(W-inter)的值的变动较大。因而,映射功能36 进行映射使得第二电平的路由矩阵22的使用为最小。
模拟退火法(SA)作为用于得到使CF最小化的配置的重复 算法,是公知的算法之一。另外,SA使用于各种组合优化问题 中,特别是在电路设计问题上成功的算法之一。SA是将用于实 现多粒子系的状态的数式化的蒙特卡洛法 一 般化的算法。原来 的麦曲罗保利斯法(Metropolis Monte Cado)用能量E和温度T选择热力学系初始状态,保持温度T恒定,干扰初始设定来计算
机数来制作的新状态。如果变化dE为零以下,则以概率"r,采用 新状态,如果变化dE大于1,则以概率"EXP(-pdE),,采用新状态。 其中,p是玻耳兹曼常数。在求出使CF最小的配置的处理中, 将SA的能量E置换为成本函数CF,将能量的变化dE置换为成本 函数CF的变化dCF。
在高温中从通过麦曲罗保利斯法/蒙特卡洛法仿真进行优 化起开始SA。这意味着以较高比率认可产生随机数引起的状态 变化中与能量增加有关联的状态变化。在足够次数反复进行或 者尝试蒙特卡洛步骤时,降低温度T。然后,降低温度T的同时 继续进行麦曲罗保利斯法/蒙特卡洛法仿真,直到达到结束的温 度T为止反复进^"该工序。SA程序包括一组嵌套后的循环语句。 最夕卜侧的循环设置温度,最内侧的循环执行该温度下的麦曲罗 保利斯法/蒙特卡洛法仿真。降低温度T的方法已知有冷却进度 表。典型的是主要使用两种不同的冷却进度表。其一是线性冷 却进度表(Tnew=Told-dT)。另 一 个是比例冷却进度表 (Tnew=CxTold, C<0)。
临时分配功能单元35具备分析功能35a,其分析硬件信息 89和DFG 82,决定(生成)分配(配置)的优先顺序;优先顺序保 存部(优先级存储区)35b,其保持该结果;初始配置功能35c, 其按照优先顺序,^^艮据随机数将包括在DFG 82中的FBs临时随 机地分配给PEs来得到临时配置(临时分配);以及功能35d,其 根据DFG 82将需要固定配置的FB作为固定单元而设定到规定 位置的PE中。分析功能35a生成优先顺序,将其设为优先级存 储区35b,使得仅能够分配给配置在PE矩阵10中的多种PEs中数 量较少的PE的FB优先。初始配置功能35c基本上无视段S0 S5而将包括在DFG 82 中的FBs随机地分配给矩阵10的PEs。另外,初始配置功能35c 包括将特定的F B随机地配置给特定段的P E s的功能。关于该特 定的FB, SA 36b也同样被分配给特定段的PE。并且,功能35d 将特定的FB分配给失见定位置的PE, SA 36b不改变对于失见定位置 的PE的分配。
验证定时的功能3 7用于使发送到(到达)P E s的各种信号同 步。定时验证功能37包括定时分析功能(同步功能)37a,其分 析发送到PEs的信号的定时;存储器37b,其用于事先保存分析 DFG 82的定时而得到的结果;以及功能37c,其追加延迟元件 (DL)。追加延迟元件的功能37c对通过分析功能37a分析电^各而 得到的结果与保存在存储器37b中的DFG 82的结果进行比较, 其中,上述电路根据通过映射功能36得到的映射数据83构成。 然后,为了使输入到PEs的信号同步而将适当的延迟元件追加 到映射数据83中,使得能够得到与由DFG 82提供的数据流相同 的结果。
在该可重构器件1的PE矩阵10中构成的数据流(数据通路) 是时钟同步(周期同步)型的数据流。因而,根据需要将延迟元 件插入到数据流使发送到P E的信号(数据集)同步,使得在各P E 中进行规定的处理。在本说明书中,将这种情况称为数据同步。 根据PE的延迟时间的差异、是否进行Z转换运算等而需要数据 同步,用于数据同步的延迟量根据具体情况而定。为了减少延 迟元件的消耗量,优选为在使流水线化的电路同步化时使延迟 緩冲器的数量最小。
例如,在"Minimizing the number of delay Buffers in the Synchronization of pipelined System(DAC'91in IEEE Transactions on Computer—Aided Design of Integrated Circuitsand Systems, Vol.13, No.l2, December 1994, pp.l44H449),,中 记载有使用LP(Linear Programming:线性编辑)技术的单形法 (simplex method)。如果输入应用程序(别称电路)能够正确表示 路径的长度和路径延迟两者,则LP是用于解决数据同步的要求 的有系统的办法,能够得到最佳的解。单形算法不保证多项式 时间的性能,但是,通常,它示出远远好于探讨整数线性规划 法的性能。在该器件l中,关于段内的配线,能够无视连接PEs 的路径的延迟。另外,关于跨段的配线,能够以周期单位规定 延迟。因而,该方法适合于该器件l的数据同步的分析。
在该定时分析功能37a中,根据DFG 82生成信号流图 (SFG),生成线性方程式。如果需要则在插入伪节点之后,将该 线性方程式投入到用于使用单形算法来解LP问题的应用程序 中,得到解。应用程序的一例被称为"LPSOLVER"。保存应用 程序的解,并且能够按照解插入延迟元件。
图10示出该配置配线支持系统30中的处理流程。在步骤41 中,将保存了与器件1有关的硬件信息8 9的第 一 数据库31设为构 成系统3 0的计算机10 0能够使用的状态。硬件信息8 9包括各段 S0 S5所包括的多个PEs的数据(定义数据)、以及第一和第二路 由矩阵21和22的数据(定义数据)。在步骤42中,生成映射数据 83,在步骤43中,生成包括映射数据83和/或基于映射数据83 的配置数据18。
图11示出生成映射数据的处理42的更详细的流程。由作为 映射系统33而动作的计算机100执行这些处理。另外,在图ll 中示出的处理能够作为程序或者程序产品而记录到适当的介质 (CD、 DVD等)中来提供。另外,能够通过因特网等计算机网络 提供程序或者程序产品。
首先,在步骤45中,从第二数据库32中读入进行映射的DFG82并进行分析。该DFG 82是根据要生成的配置数据(config.data) 而要安装(安装)到器件l的电路设计。在步骤46中,使用上述的 定时分析功能37a确认数据同步(Synchronization),在步骤47中, 将其结果(定时条件(l)、 timing cond.(l))保存到存储器37b中。
在步骤48中,使用临时分配功能35进行PEs的临时分配(临 时映射、临时配置(Provisional Placement))。 PE矩阵10中的PEs 的配置本身被固定,映射或者以后的配置/配线中的配置意味着 改变分配给这些PEs中的一个或者多个的功能(FBs)。另夕卜,PE 的功能与对其进行分配的功能FB对应,下面,包括多次替换PE 等表示PE能够移动的表现。这些表现意味着进行包括利用配置 数据重构P E的功能的、替换与P E对应的F B的分配或者用于替换 的处理。在该器件l的配置配线支持中,配置不是物理上配置 PE,而是意味着在PE矩阵10中配置或者设定用于实现DFG 82 的多个功能(FBs)。
图12 图17示出映射处理的简单例。下面,参照这些例子 来说明图ll示出的流程图。图12是PE矩阵10的简易例,段为一 个。图13是与包括在图12的PE矩阵10中的PE有关的硬件信息89 的一例。作为硬件信息89,除了PE矩阵10的排列以外还包括所 包括的PE的类型89a、能够安装到各类型的PE的命令89b、每个 类型的数量89c。配置的优先顺序89d可以包括在硬件信息89中, 也可以附加在映射系统33中。
在图14示出DFG 82的一例。由用户提供进行配置配线的 DFG 82,保存在作为DFG保存部的数据库32中。在该DFG 82 中,由与各FB对应的功能的PE(PEl PE7)来表示FBs。分析功能 38乂人所4是供的DFG 82中提取与PE对应的FB并才是取其类型/属 性。并且,提取如下组(固定化的排列组FAG、 Fixed Arranging Group):希望将包括在DFG 82中的多个FBs之中利用特定的PEs的配置映射到PE矩阵IO。
图15的(a)和(b)示出分析DFG 82得到的结果的一例。分析 结果的 一 例是命令种类列表88和连接关系列表87。在这些列表 88和87中利用PEl PE7来与PEs对应地示出FBs。该提取出的命 令种类成为表示能够分配给要进行配置的PE阵列10的哪 一 个 PE的指标。在本例中,如图13所示,进行映射的硬件包括A1、 A2、 A3、 B四种类型的PE,根据类型能够安装到PE的命令包括 不同的命令。
在此,将包括在图14的DFG 82中的PE2-PE3(在能够配置的 PE中与"A2-B"对应)的运算组合设为仅能够在石更件上的"B-A2" 纵向连续的模式下进行映射。这种組与FAG对应,要FAG化的 PE的结构包括在硬件信息89中。在图12示出的PE矩阵10中,该 FAG仅能够分配到三处。因而,在该阶段中,分析DFG82而得 到的FAG成为最优先进行映射的项目。
在步骤48的决定临时映射的工序中制作优先级存储区 (Priority Bucket)35b。在该阶段中的优先级(Priority)意味着将 F B分配到硬件上的P E时的顺序,优先级存储区3 5 b是其列表。 在映射装置33的内部定义优先级,硬件上的与某一个种类对应 的PE的数量少则增加该PE的种类的优先级。在本例的映射装置 33中,搜索硬件信息89,如图13所示那样,按照每个硬件PE的 种类进行计数,从数量较少的开始依次列表。对于该列表从上 起的顺序成为优先级(Priority)的顺序。
并且,在步骤48中,还判断对固定单元(固定单元、Fixed Cell(功能固定化的PE))分配功能的情况。固定单元相当于根据 硬件的体系结构而被限定了进行映射的位置(PE)、或者由用户 对分配特定的FB的PE限定了硬件(PE矩阵)上的位置的单元。
图16示出优先级存储区35d的一例。在该存储区35d中,由用户指定PE7作为固定单元,被分配的PE限定在硬件上的行4 列l(图12的座标(x, y)=(4, l))的位置。可动单元(可动单元、 Movable Cell)的硬件上的可取位置具有多个。因而,相当于在 SA的工序中在能够映射到PE矩阵10的PE的配置内依次随机地 改变分配的FB(与PE对应的功能)。在上述例子中,除了PE7以 外全部相当于可动单元(Movable Cell)。
另外,对于具有多个段的器件,能够固定进行分配的段。 段固定的FB是在SA的工序中在能够映射到PE矩阵10的特定的 段的PE的配置内依次随机地改变分配的FB(与PE对应的功能)。
在图16示出的优先级存储区35d中,按照进行映射的优先顺 序排列可动单元并列表化。在优先顺序的最上级列出的是FAG。 根据成为其结构要素的PE的数量来决定FAG的分配优先顺序 的大小。在本例中,FAG仅是组1一个。因而,将组l作为映射 的最大优先顺序而进行列表,接着对分配给各PE的FB(P1、 4-6) 进行歹'J表。
在步骤48中,首先,将固定单元分配给石更件10的PE。在本 例的情况下,如图17的(a)所示,将PE7配置在矩阵10的图17的 (a)示出的X-Y座标(4, l)上。然后,按照优先级存储区35d的优 先级来依次将可动单元分配给硬件10上的PEs。通过随机地选 择能够安装(可配置的)作为要分配的FB的功能的PE来进行该 分配。随机的配置产生随机数,以相等的概率从能够分配FB的 PE之间决定要分配的PE。此外,对于PE,在之前分配有FB的 情况下,该位置的PE不包括在分配对象中。
当按照图16的优先级存储区35d时,接着,在PE矩阵10中 配置FAG的组1。根据基准单元的位置来决定各FAG的配置(进 行映射的座标)。在本例中,利用左上的单元的座标代表FAG的 基准单元。该组1是PE"B"与PE"A2"配置为纵向一列的FAG。因此,将PE"B"设为基准单元,利用PE"B,,的位置来代表并决定组 的配置。当以基准单元表示能够映射该组l的模式时,是座标(2, 2)、 (2,3)、 (2, 4)这三个。通过随机数以相等的概率从该三个能 够映射的位置(模式)中选择一个模式。设为基准单元被分配给 座标(2, 3)。才艮据该决定,对硬件10的座标(2, 2)的PE分配PE3, 对座标(3, 2)分配PE2。在之后的操作中不对这些位置的PE分配 其它的FB。
接着,通过相同的操作来配置作为其次优先级的FB的PE5。 PE5是仅能够分配到PE"A1"的FB。因而,在硬件10中存在三个 能够分配的PE(PE的位置)。利用 一个随机数从这些PEs中决定 被分配的PE的位置。在图17的(a)中,将PE5分配给座标(1, 4) 的PE。接着,将作为第三位次的FB的PE4分配给适当的PE。最 后,酉己置作为最后位次的FB的PE1和PE6。 FBs中PEl、 PE6以及 PE7分另,J能够配置给PE"A1"、 PE"A2,,以及PE"A3,,中的任一个。 PE7是固定单元,已经被分配给座标(4, 1)的PE"A3"。因而,从 除去了与固定单元 一 起在上述中被分配的PE的PE"A1"、 PE"A2"以及PE"A3,,中随机地选择分配PE1和PE6的PE。在该操 作中,临时决定的映射被临时保存到存储器中。
如果使用PE矩阵10的PEs无法临时分配包括在DFG 82中的 所有FBs,则意p木着用于映射DFG 82的PE矩阵10的^f更件资源不 足。因而,不需要进行SA就得出DFG 82无法映射到器件1的结 论。根据分配的方法,有可能决定DFG 82是否能映射到器件1。 这是因为即使能够分配FB的PE的数量有剩余,如果分配进行特 定命令的FB的PE消耗完,也无法将DFG82映射到器件1。因此, 如上所述那样决定分配的优先级,为分配而预先求出假定为临 界的条件,从而提高在PE矩阵10中准备的硬件资源的使用效 率。优先级的决定方法之一如上所述那样,根据在PE矩阵10中 准备的各类型的PE的数量来决定。在本例中,该优先级与由FB 表示的每个命令类型能够安装到PE矩阵10中的数量对应。在包 括在DFG 82中的FBs的每个类型的数量中的任一个超过能够利 用在PE矩阵10中准备的PEs进行安装的数量的情况下,能够变 更DFG 82使得将该类型的FB变更为其他类型的FBs的组合。另 外,根据情况,能够通过将在PE矩阵10中准备的PE的任一个转 换为不是本来的功能的功能来补偿硬件不足。
在器件l中,算术运算/逻辑运算用的以"EX",表示的PE能 够作为仅实现延迟的DLE而发挥功能。在步骤48中,在临时映 射失败的情况下,在步骤49中确认主要原因是否为DLE不足, 如果是DLE不足则在步骤50中能够将剩余的EX承利用为DLE。 然后,重新进行步骤48。在临时映射失败的主要原因不是DLE 不足的情况下,映射失败(配置失败),进一步分析其主要原因 并进行重新生成DFG 82等的处理。
当得到临时映射时,在步骤51中,检查包括在该映射中的 连接PEs的路径,在步骤52中,按照该路径来计算式(l)的成本 函数CF。图12示出的硬件(PE矩阵)的段为一个,因此仅计算与 第一电平的路由矩阵21的使用有关的成本。能够着眼于图5或者 图6中示出的MUX 25或者26的使用来求出由第一电平的路由矩 阵21的使用而产生的成本。
因此,下面,以CF为CFa来如式(2)那样进行说明。
CFa=F(MUX) …(2)
根据MUX,在占有一条总线的情况下,设F(MUX)的值取4。 MUX表示与配线使用有关的损失。由于配线资源被限定,因此 希望CFa较小。特别在从纵配线23x、 23y向横配线24连接被限 定的情况下、例如能够从纵配线23x、 23y向横配线24连接的总线仅两条的情况下,希望根据MUX的位置和条件将F(MUX)设 定为无限大的值那样非常大的值。
另 一方面,在将从PE输出的同一数据输入到连接在同一纵 配线23x或者23y上的两个PE的情况下,为进行两个PE的输入所 占有的总线为一条。因而,路由矩阵21的使用量减少。在进行 这种映射的情况下,希望F(MUX)减少。例如,F(MUX)的值为 (4x1/2)。
在步骤52中,计算图17的(a)的映射的成本CFot。连接(连接 路径)是PE卜PE2、 PE卜PE4、 PE1-PE5、 PE2-PE3 、 PE4-PE6、 PE5—PE6、 PE3—PE7、 PE6—PE7这/、个,各占有一条配线。因而, CFa是32(4x8)。将该值存储到作为映射装置33而发挥功能的计 算机100的RAM中,进入下一个步骤。
在步骤53中,开始利用SA的优化。通过依次变更上述随机 地分配的临时映射的分配来求出成本函数的最小值,由此进行 SA。 SA的基本流程是公知的,例如,能够参照"Chen, Tao, "Multi-FPGA Partitioning Using Simulated Annealin,, UNIVERSITY OF CINCINNATI, 2003"等。
使CF最小化的重复算法并不限定于SA。能够使用包括均场 退火法或者遗传算法的重复算法。例如,作为最简单的探索方 法,不考虑在温度的冷却率、固定概率下允许成本函数的上升 等,而是一味重复进行随机配置来求出映射使得成本函数最小。 图17的(b) 图17的(e)是用于说明利用这种方法进行映射时的 CFa的变化的图。另外,在除去在固定概率下允许CF的上升这 一点以外,这些处理与SA中的同一温度的处理通用。
图17的(b) 图17的(e)示出在同一条件下从优先级存储区 3 5 d再次对图12的石更件(P E矩阵)10进行映射的例子。这些映射以 与图17的(a)相同的条件、即相同优先级来进行分配。然而,关于各分配,除了固定单元以外为根据随^/L数随机地进行配置, 因此一般得到与上次的映射不同的映射。
图17的(b)的映射的CFa为26。包括PE2的G1与PE4被配置在 同一列内,因jl:匕PEl-PE2以及PE1—PE4能够4吏用同一配线。于 是,CFa成为(2+4x6)。
在此,对上次的映射与本次的映射的成本进行比较,在 CFa(上次)〉CFa(本次)的情况下将CFa的值变更为本次的值,将 本次的映射保存到RAM。另一方面,在CFa(上次;KCFa(本次) 的情况下原样保持CFa原来的值,映射也保持上次映射而不进 行更新。关于图17的(b)的映射,CFa(上次)〉CFa(本次)成立。 因而,更新CFa的^f直,将映射4呆存到RAM,作为CFa(Best Solution:最优解)用于与下一个映射之间的比较。
在SA中,按照冷却进度表在每个温度内反复进行该作业规 定次数,按照SA的条件来更新映射。如图17的(c)、 (d)以及(e) 那样反复进行映射,每次计算成本函数。在图17的(c)时,CFa 的值从26上升到32,因此不改变CFa(Best Solution)。在图17的 (d)时,CFa的值为22,因此更新CFa(Best Solution)。并且,在 图17的(e)时,CFa的值上升到26 ,因此不改变CFa(Best Solution)。反复进行该处理固定次数以^吏成本函数成为尽可能 小的值。
返回图ll,在开始SA的步骤53中,代替再次随机地重新进 行所有的PEs的分配而交换(替换)限定数量(典型的是所选择的 一个PE和与该PE对应的PE)的PE。因此,随才几选才奪PE,接着将 分配给该PE的FB分配给随机选择的PE,如果对该PE分配有FB, 则与该被分配的FB进行替换处理。在具有多个段的器件l中, 通过该替换处理,对于允许段间的移动的可动单元(Movable Cell)来说包括跨段的移动(分配的变化)。在步骤54中,检查路由(连接路径),在步骤55中,计算成 本函数CF(CFnew)。在冲全查路由的阶段(步骤54)中,对跨段的路 径自动分配担当段间连接22的DLV和DLH。
在步骤56中,在新映射满足SA条件的情况下,在步骤58中, 更新CF的值(CFbest被更新为CFnew),在步骤59中,更新成为 配置数据的基础的映射(映射数据)。另一方面,在新映射不满 足SA条件的情况下,在步骤57中选择原来的映射,返回步骤53, 进行PEs的分配的替换。
SA条件之一是如果CF的变化dCF大于O则采用新映射。另 一个SA条件是如果变化dCF在O以下则作为接受概率(AP)而计 算"exp(-dCF/temp)",此时如果AP的值大于产生的随机数则采 用新映射。在采用更促进映射的变化的选择的情况下,除去温 度因素,根据"exp(-dCF)"来计算AP。
直到在步骤60中结束条件成立为止反复进行SA。结束条件 是温度达到规定的值并且在该温度下的映射的重复结束。冷却 进度表的一例是初始温度TO为10000、结束温度Tn为O.l,达到 结束温度Tn的第n个周期(n周期,n是整数)为最后的周期。用下 式给出n周期中的i周期的温度T i 。
Ti=T0(Tn/T0)1/n …(3)
在各周期中反复进行映射的变更的数量逐渐增加。例如,0 周期是IO,每个周期成为1.2倍。
当利用SA的优化结束时,在步骤61中,通过定时分析功能 37a来分析被优化的映射的数据同步。在步骤62中,与保存在存 储器37b中的DFG 82的数据同步进行比较。在步骤63中,插入 数据同步所需的DLE。如果DLE的剩余数量足够、DLE的插入 成功则利用SA的映射的优化结束。在DLE不足的情况下,返回 步骤48,从临时映射的生成起重新进行。这是因为由于是随机工序因此有可能得到不同的结果。如果PE的不足很明确,则也 可以从DFG 82的重新生成起反复进4亍。
图18 图23示出对器件1进行映射的例子。图18表示要进行 映射的DFG 82。该DFG 82包括分配给PEs的Ul至U14的14个 FB。 DFG82中的连接di、 do表示数据的输入、输出。连接ci、 co表示进4立4言号(carry signal)的丰lr入、專命出。并且,连4妄nx、 ny 表示在附图那样的硬件上的相邻的PE之间向连接ny—nx方向 输入输出信号的输出、输入。如上所述,连接ny与连接nx所连 接的PEs在硬件上必须连接成横向的一列。因此,在优先级存 储区中,被选择为FAG的组是以连接ny—nx连接的PEs。
该DFG 82包括成为FAG的组1和组2。各组的基准单元定义 为在硬件上位于最左侧的、不存在对连接nx的输入连接而是存 在对连接ny的输出连接的PE。组1包括U5、 U6以及U7, U5是基 准单元。组2包括U8以及U9, U8是基准单元。
并且,设定分配给各PE的FB(U5 U10)中的命令全部是 CMPSB,能够分配该命令的PE仅是"EXC"。
图19示出与图18的DFG 82对应地生成的优先级存4诸区 35b。在本例中,优先级不仅根据包括在PE矩阵10中的PEs的每 个类型的数量来进行排序,还根据作为FAG的基准单元进行升 级。例如,如果对于EXC的PE的每个类型的优先级为"3",则以 EXC为基准单元的FAG的优先级为"6"。 PE的每个类型的优先级 为在PE矩阵中准备的数量较少的PE优先级较高。对于其它类型 的P E 、在P E矩阵10中准备的数量较多的类型的P E的优先级低于 EXC,如果优先级例如是"2",则以该类型的PE为基准单元的 FAG的优先级为"4"。
^!夸分酉己纟合PEs内LDB、 C16L、 C32L、 STB、 C16S、 C32S的 PE的FB、即U1、 U3、 U4、 Ull、 U13以及U14设为固定单元进行处理。因而,将剩余的FB设为可动单元进行处理。
图20示出临时映射图19的优先级存储区的结果。在式(l) 示出的CF中,关于C1.F(W-intra)将对于一个MUX的消耗的值定 义为4,关于C2.F(W-inter)将对于跨 一 个段的配线的消耗的值定 义为6,对于该映射的CF,项目l的段内成本(Intra segment cost) 是(4x7),项目2的段间成本(Inter segment cost)是(6x7),如下那 样成为70。
CF=(4x7)+(6x7)
如上所述,在采用了段结构的器件l中成为如下结构关于 各跨段的配线,通过配置在段的边界的延迟元件来保障信号的
迟数量较少、延迟元件的消耗也较少。因此,对于段间的配线、
具体地说,在图20的映射中,在同一段内对以LDB开头的 由三个PE构成的EXC的组1使用两条配线。接着,从由三个PE 构成的组1向由两个PE构成的组2的来自组1的#T出为|爻内配线 (两条),到达组2的配线在两个位置上为跨段的配线(两条)。从 组2向一个EXC的来自组2的输出为段内配线(两条),到达一个 EXC的配线在一个位置上为跨段的配线(两条)。并且,从一个 EXC向STB的配线的来自EXC的输出为段内配线(一条),到达 STB的配线在一个位置上为跨段的配线(一条)。
从图21至图23示出的映射是在SA的过程中有可能出现的 映射的几个例子。图21示出的映射的CF增加为112,因此未进 入CF的上升所允许的概率,因而不采用该映射。另一方面,图 22或者图23示出的映射的CF减少,因此在该顺序出现时采用该 映射。
在器件1中,配置在PE矩阵10中的PEs被划分为多个段S0 S5,各段内的PEs通过第一电平的路由矩阵(配线矩阵或者 配线组)进行连接使得信号在一个周期以内到达。因而,关于段 内的配置(分配),不需要考虑段内的配线引起的延迟或者定时 的偏移。另 一方面,段间通过包括延迟元件(DLV、DLH或者DLX) 的第二电平的路由矩阵22进行连接。因此,产生关于段间的配 线的延迟,但是通过延迟元件控制延迟量来在其范围内保证信 号的定时。
在器件l中,在连接段内的PE的第一电平的路由矩阵的范 围内保证信号的定时,因此对于通过随机工序而产生的新映射, 在每次产生新映射时不需要验证信号的定时。另外,在第二电 平的路由矩阵的范围内,虽然延迟增加但是定时被保证在规定 范围内,因此定时的调整处于通过是否追加延迟而能够解决的 范围内。因此,在使映射优化之后,仅研究是否要追加延迟就 可以。因而,即使考虑第二电平的路由,关于新映射也不需要 每次-睑证定时或者验证关4建路径。因此,在反复进行SA的工序 中,为了得到成本函数而需要研究路由,但是不需要验证定时, 从而使用S A的映射的优化所需的时间缩短。
并且,在研究优化后的映射的定时收敛的过程中,当成为 必须重新配置包括在映射中的元件的情况时,利用S A来优化映 射的效果减弱。在上述工序中,如果是数据同步所需,则仅进 行对优化后的映射追加延迟元件的处理,而不需要重新配置元 件。并且,基本上由于跨,敬的路由而产生与DFG之间的定时的 调整,如果通过调整包括在第二电平的路由矩阵中的DLV、DLH 或者DLX的延迟量来完成跨段的信号的延迟量的调整,则不需 要分配新的DLE。
另外,在利用SA优化映射的过程中,使第二电平的路由矩 阵22的使用最小化,因此通过使用第二电平的路由矩阵能够抑制跨段的路由的延迟量的增加。此外,最小化是指选择包括在
CF中的反映第二电平的路由矩阵的使用的项(在上述式(l)中是 第二项)的值变小的映射。包括SA的重复算法是用于优化映射 的探索(heuristic)方法,这不意味着在能够安装到PE矩阵的所有 的映射中必然发现第二电平的路由矩阵的使用为最小的映射。 然而,发现第二电平的路由矩阵的使用为最小或者接近最小的 映射的可能性足够高。
并且,CF还包括抑制第一电平的^各由矩阵21的^吏用的项, 因而,在上述SA的过程中,还抑制第一电平的路由矩阵21的使 用,能够提高包括在PE矩阵中的与路由有关的硬件资源的使用 效率。
如上所述,段化适用于在段的范围内提高配置配线的自由 度。并且,还包括如下优点通过段化能够在每个段内独立地 使用用于发送接收信号的总线(路由矩阵),能够提高配线的使 用效率。在配置有包括ALU等功能的、均等的或者接近均等的 多个PE或者逻辑块(LCB)的可重构器件中也能够导入使PE段化 的结构。另外,即使是具备反复进行纵横配线等均等的结构的 路由矩阵的器件也能够如下这样应用上述的映射方法在导入 高电阻的元件或者利用开关等方法能够使路由矩阵段化的器件 中,通过虚拟定义第一电平的路由矩阵和第二电平的路由矩阵 来应用上述映射方法。另外,上述与映射有关的方法并不限于 利用电气电子的方法传送信号的路由矩阵,也可以是应用包括 光的其它信息传送方式的路由矩阵。另外,PEs的配置并不限 于二维的纵横规则的排列。也可以是在三个方向或者六个方向 等上规则地配置PEs。并且,利用多层化等方法也能够三维地 配置PEs。
权利要求
1. 一种系统,生成用于重构可重构器件的配置数据,上述器件具有多个处理元件和用于连接这些多个处理元件的路由矩阵,通过变更上述多个处理元件的各处理元件的功能和/或变更上述路由矩阵的至少一部分的连接来进行重构,其中,上述多个处理元件被划分为多个组,包括在各组中的多个处理元件在第一延迟的范围内通过包括在上述路由矩阵中的第一电平的路由矩阵进行连接,包括在不同组中的多个处理元件通过包括在上述路由矩阵中的第二电平的路由矩阵来以与上述第一延迟不同的延迟进行连接,该系统具有数据库,其用于保存硬件信息,该硬件信息包括上述各组所包括的上述多个处理元件的定义数据和上述路由矩阵的定义数据;以及映射装置,其将根据上述配置数据而安装到上述器件中的电路设计映射到上述多个处理元件中,上述映射装置通过根据上述硬件信息执行使成本函数最小化的重复算法来将上述电路设计映射到上述多个处理元件中,上述成本函数包括使上述第二电平的路由矩阵的使用为最小的项目。
2. 根据权利要求l所述的系统,其特征在于, 上述电路设计包括数据流图,该数据流图由多个功能模块和上述多个功能模块的连接来表示,其中,上述多个功能模块 能够将安装到上述器件中的功能分别安装到上述多个处理元件 中的任一个,上述映射装置包括临时分配功能单元,其将上述多个功能模块分别临时分配 给被划分为上述多个组的上述多个处理元件中的任一个;以及改变分配功能单元,其使用上述重复算法来改变对于上述 多个处理元件的上述多个功能模块的分配,其中,上述改变分配功能单元包括如下功能根据连接上 述多个处理元件的路径求出上述成本函数的值,其中,对上述 多个处理元件分别分配上述多个功能模块。
3. 根据权利要求2所述的系统,其特征在于, 上述映射装置还包括保存功能单元,其分析上述数据流图,将对于上述多个功 能模块的数据输入和/或数据输出的定时保存到存储器中;以及分配功能单元,其分析上述多个处理元件的连接,将用于 实现保存在上述存储器中的上述定时的延迟分配给上述多个处 理元件中的任一个,其中,上述多个处理元件的连接包括由于 通过上述第二电平的路由矩阵而产生的延迟,对上述多个处理 元件分别分配上述多个功能模块。
4. 根据权利要求2所述的系统,其特征在于, 上述多个功能模块包括多种功能模块,上述多个处理元件与上述多种功能模块内的被限定了种类 的功能模块对应地包括可分别进行构建的多种处理元件,上述临时分配功能单元包括如下功能优先对上述多种处 理元件内、包括在上述多个处理元件中的数量较少的种类的处 理元件分配上述多个功能模块,此时,将能够分配给第一种多 个处理元件的上述多个功能模块随机地分配给上述第 一种多个 处理元件中的任一个。
5. 根据权利要求4所述的系统,其特征在于,上述临时分配功能单元还包括如下功能在将上述多个功 能模块随机地分配给上述第 一种多个处理元件中的任一个之 前,将包括在上述多个功能模块中的第一特定功能模块随机地分配给上述多个组内的特定组的多个处理元件中的任一个,上述改变分配功能单元还包括如下功能将上述第一特定 功能模块分配给上述特定组的上述多个处理元件中的任一个。
6. 根据权利要求5所述的系统,其特征在于, 上述临时分配功能单元还包括如下功能在将上述多个功能模块随机地分配给上述特定组的上述多个处理元件中的任一 个之前,将包括在上述多个功能模块中的第二特定功能模块分 配给上述多个处理元件的特定处理元件,上述改变分配功能单元还包括如下功能不改变上述第二 特定功能模块的分配。
7. —种映射装置,将根据用于重构可重构器件的配置数据 而安装到上述器件中的电路设计映射到上述器件的多个处理元 件中,上述器件具有上述多个处理元件和用于连接这些多个处理 元件的3各由矩阵,通过变更上述多个处理元件的各处理元件的 功能和/或变更上述路由矩阵的至少 一部分的连接来进行重构,上述多个处理元件被划分为多个组,包括在各组中的多个 处理元件在第 一延迟的范围内通过包括在上述路由矩阵中的第 一电平的路由矩阵进行连接,包括在不同组中的多个处理元件 通过包括在上述路由矩阵中的第二电平的路由矩阵来以与上述 第 一延迟不同的延迟进行连接,该映射装置通过根据硬件信息执行使成本函数最小化的重 复算法来将上述电路设计映射到上述多个处理元件中,其中, 上述成本函数包括使上述第二电平的路由矩阵的使用为最小的 项目,上述硬件信息包括上述各组所包括的多个处理元件的定 义数据和上述路由矩阵的定义数据。
8. —种方法,生成用于重构可重构器件的配置数据,上述器件具有多个处理元件和用于连接这些处理元件的路 由矩阵,通过变更上述多个处理元件的各处理元件的功能和/ 或变更上述路由矩阵的至少 一 部分的连接来进行重构,上述多个处理元件被划分为多个组,包括在各组中的多个 处理元件在第 一 延迟的范围内通过包括在上述路由矩阵中的第 一电平的路由矩阵进行连接,包括在不同组中的多个处理元件 通过包括在上述路由矩阵中的第二电平的路由矩阵来以与上述 第一延迟不同的延迟进行连接,该方法具有如下工序在能够通过计算机访问的数据库中准备硬件信息的工序, 其中,上述硬件信息包括上述各组所包括的上述多个处理元件 的定义数据和上述路由矩阵的定义数据;以及通过上述计算机执行使成本函数最小化的重复算法来将根 据上述配置数据而安装到上述器件中的电路设计映射到上述多 个处理元件中的映射工序,其中,上述成本函数包括使上述第二电平的路由矩阵的使 用为最小的项目。
9.根据权利要求8所述的方法,其特征在于,上述电路设计包括数据流图,该数据流图由多个功能模块 和上述多个功能模块的连接来表示,其中,上述多个功能模块 能够将安装到上述器件中的功能分别安装到上述多个处理元件 中的任一个,上述映射工序包括如下工序临时分配工序,将上迷多个功能模块分别临时分配给被划 分为上述多个组的上述多个处理元件中的任一个;以及改变分配工序,使用上述重复算法来改变对于上述多个处 理元件的上述多个功能模块的分配,其中,上述改变分配工序包括如下工序根据连接上述多 个处理元件的路径来求出上述成本函数的值,其中,对上述多 个处理元件分别分配上述多个功能模块。
10. 根据权利要求9所述的方法,其特征在于, 上述映射工序还包括以下工序保存工序,分析上述数据流图,将对于上述多个功能模块 的数据输入和/或数据输出的定时保存到存储器中;以及分配工序,在上述改变分配工序之后,分析上述多个处理 元件的连接,将用于实现保存在上述存储器中的上述定时的延 迟分配给上述多个处理元件中的任一个,其中,上述多个处理 元件的连接包括由于通过上述第二电平的路由矩阵而产生的延 迟,对上述多个处理元件分别分配上述多个功能模块。
11. 根据权利要求9所述的方法,其特征在于, 上述多个功能模块包括多种功能模块,上述多个处理元件与上述多种功能模块内的被限定了种类 的功能模块对应地包括可分別进行构建的多种处理元件,上述临时分配工序还包括以下工序优先对上述多种处理 元件内、包括在上述多个处理元件内的数量较少的种类的处理 元件分配上述多个功能模块,此时,将能够分配给第一种多个 处理元件的上述多个功能才莫块随^U也分配给上述第一种多个处 理元件中的任 一 个。
12. 根据权利要求ll所述的方法,其特征在于,上述临时分配工序还包括如下工序优先于将上述多个功 能模块随机地分配给上述第一种多个处理元件中的任一个的工 序,将包括在上述多个功能模块中的第 一 特定功能模块随机地 分配给上述多个组内的特定组的多个处理元件中的任一个,上述改变分配工序还包括如下工序将上述第一特定功能模块分配给上述特定组的上述多个处理元件中的任一个。
13. 根据权利要求12所述的方法,其特征在于, 上述临时分配工序还包括如下工序优先于将上述多个功能模块随机地分配给上述特定组的上述多个处理元件中的任一 个的工序,将包括在上述多个功能模块中的第二特定功能模块 分配给上述多个处理元件的特定处理元件,上述改变分配工序还包括如下工序不改变上述第二特定 功能模块的分配。
14. 一种方法,是包括在可重构器件中映射电路设计的方法,上述器件具有多个处理元件和用于连4妄这些处理元件的3各 由矩阵,通过变更上述多个处理元件的各处理元件的功能和/ 或变更上述路由矩阵的至少 一部分的连接来进行重构,其中,上述多个处理元件被划分为多个组,包括在各组中 的多个处理元件在第一延迟的范围内通过包括在上述路由矩阵 中的第一电平的路由矩阵进行连接,包括在不同组中的多个处 理元件通过包括在上述路由矩阵中的第二电平的路由矩阵来以 与上述第一延迟不同的延迟进行连接,上述电路设计包括数据流图,该数据流图由多个功能模块 和上述多个功能模块的连接来表示,其中,上述多个功能模块 能够将安装到上述器件中的功能分别安装到上述多个处理元件 中的4壬一个,上述映射包括如下工序临时分配工序,将上述多个功能模块分别临时分配给被划 分为上述多个组的上述多个处理元件中的任一个;以及改变分配工序,使用使成本函数最小化的重复算法来改变 对于上述多个处理元件的上述多个功能模块的分配,其中,上述成本函数包括使上述第二电平的路由矩阵的使用为最小的项目,上述改变分配工序包括如下工序根据上述多个处理元件分别分配上述多个功能模块。
15. —种程序,用于通过计算机生成用于构成可重构器件 的配置数据,上述器件具有多个处理元件和用于连接这些处理元件的路 由矩阵,通过变更上述多个处理元件的各处理元件的功能和/ 或变更上述路由矩阵的至少 一部分的连接来进行重构,上述多个处理元件被划分为多个组,包括在各组中的多个 处理元件在第一延迟的范围内通过包括在上述路由矩阵中的第 一电平的路由矩阵进行连接,包括在不同组中的多个处理元件 通过包括在上述路由矩阵中的第二电平的路由矩阵来以与上述 第一延迟不同的延迟进行连接,该程序包括如下步骤在能够通过上述计算机访问的数据库中准备硬件信息的步 骤,其中,上述硬件信息包括上述各组所包括的上述多个处理 元件的定义数据和上述路由矩阵的定义数据;以及映射步骤,通过由上述计算机执行使成本函数最小化的重 复算法来将根据上述配置数据而安装到上述器件中的电路设计映射到上述多个处理元件中,其中,上述成本函数包括使上述第二电平的路由矩阵的使 用为最小的项目。
16. 根据权利要求15所述的程序,其特征在于, 上述电路设计包括数据流图,该数据流图由多个功能模块和上述多个功能模块的连接来表示,其中,上述多个功能模块 能够将安装到上述器件中的功能分别安装到上述多个处理元件中的任一个,上述映射步骤包括如下步骤将上述多个功能模块分别临时分配给被划分为上述多个组的上述多个处理元件中的4壬一个;以及使用上述重复算法来改变对于上述多个处理元件的上述多 个功能模块的分配,此时,根据连接上述多个处理元件的路径 来求出上述成本函数的值,其中,对上述多个处理元件分别分 配上述多个功能模块。
17. 根据权利要求16所述的程序,其特征在于, 上述映射步骤还包括如下步骤进一步分析上述数据流图,将对于上述多个功能模块的数 据输入和/或数据输出的定时保存到上述计算机的存储器中;以 及分析上述多个处理元件的连接,将用于实现保存在上述存 储器中的上述定时的延迟分配给上述多个处理元件中的任一平的路由矩阵而产生的延迟,对上述多个处理元件分别分配上 述多个功能模块。
18. —种程序,用于通过计算机在可重构器件中映射电路 设计,上述器件具有多个处理元件和用于连接这些处理元件的路 由矩阵,通过变更对上述多个处理元件的各处理元件的功能和/ 或变更上述^各由矩阵的至少 一部分的连4妄来进4亍重构,其中,上述多个处理元件被划分为多个组,包括在各组中 的多个处理元件在第一延迟的范围内通过包括在上述路由矩阵 中的第一电平的路由矩阵进行连接,包括在不同组中的多个处 理元件通过包括在上述路由矩阵中的第二电平的i 各由矩阵来以 与上述第 一延迟不同的延迟进行连接,上述电路设计包括数据流图,该数据流图由多个功能模块 和上述多个功能模块的连接来表示,其中,上述多个功能模块 能够将安装到上述器件中的功能分别安装到上述多个处理元件 中的任一个,该程序包括如下步骤临时分配步骤,将上述多个功能模块分别临时分配给被划 分为上述多个组的上述多个处理元件中的任一个;以及改变分配步骤,使用使成本函数最小化的重复算法来改变 对于上述多个处理元件的上述多个功能模块的分配,其中,上述成本函数包括使上述第二电平的路由矩阵的使 用为最小的项目,上述改变分配步骤包括如下步骤根据上述 多个处理元件的连接求出上述成本函数的值,其中,对上述多 个处理元件分别分配上述多个功能模块。
全文摘要
提供一种生成用于在段化的可重构器件中安装电路设计的配置数据的系统。配置配线支持系统(30)包括数据库(31),其用于保存硬件信息(89),该硬件信息(89)包括各段所包括的PEs的数据和第一电平以及第二电平的路由矩阵的数据;以及映射装置(33),其将电路设计映射到PEs。该映射装置(33)通过根据硬件信息(89)执行使成本函数最小化的重复算法来将电路设计映射到PEs。成本函数包括使连接段间的第二电平的路由矩阵(22)的使用为最小的项目。
文档编号G06F17/50GK101512529SQ200780032438
公开日2009年8月19日 申请日期2007年8月31日 优先权日2006年8月31日
发明者塞迪士·巴奇纳, 木村宽之, 柏拉卡斯·斯里达尔·穆尔蒂, 瓦纳麻麻莱·卡南, 维内·奇丹巴拉·海琪 申请人:Ip菲力股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1