超图与三维集成电路设计自动化中的极值优化
卡塔日娜·格热希亚克‐科佩茨´ ⇑,皮奥特尔·奥拉穆斯,马采伊·奥戈扎莱克
波兰克拉科夫雅盖隆大学信息技术系
摘要
电路设计任务提出了极为艰巨的智力挑战。解必须满足一系列特定要求并符合多种约束条件。高效搜索巨大且不连续的空间需要新的非确定性和启发式算法。本研究的目标是最小化子电路之间互连的总线长。本文提出了一种知识密集型的3D IC布局超图表示方法,并结合了精细的邻域优化启发式算法。文中报告了极值优化(EO)算法在MCNC基准电路集上的实现结果。
© 2017 爱思唯尔有限公司 版权所有
引言
满足给定要求并符合各种约束条件的组件空间排列是基本的工程设计任务之一。其中,它适用于集成电路(IC)设计中的布局规划、建筑模型生成或建筑重建。这不仅对于城市规划、危机管理或替代能源分析等科学研究和日常实际问题至关重要,而且对于娱乐或虚拟现实建模也具有重要意义。生成一个人工的复杂且高度发达的三维环境可能需要一个专家团队数年的工作。因此,对复杂空间的高效搜索需要新的非确定性和启发式解。特别是建筑设计 [28] 和集成电路布局规划 [29] 是三维(3D)空间构型自动生成作为首要任务的领域。
基于硅的最先进集成技术正迅速接近其物理极限。器件(晶体管)的尺寸缩小已接近原子间距。当我们谈论14纳米甚至10纳米技术时,必须牢记硅晶体中原子之间的距离仅为3.12纳米!我们还能继续推进多远?
此外,对于这些极小的器件,所谓的短沟道效应起着主导作用,导致器件故障。
另一个非常严重的问题是互连——如何有效地连接芯片上的数十亿个器件?在平面技术中,芯片约80%的面积被互连线所占用。
长互连对电路操作效率有多方面的不利影响。在处理器芯片中,信号延迟与操作延迟之比达到10倍甚至更高。沿互连线路的功耗本身已成为一个问题。在平面结构中,大多数互连通过在硅上依次叠加的金属层构成,并由氧化层相互隔离。为了追求更高的效率、减小材料(硅)占用面积、降低功耗以及减少时间延迟,研究人员提出了将功能模块或子电路置于三维结构中的构想。这可以显著缩短连接长度和信号延迟。当模块布局合理时,短垂直互连可替代长平面内导线。然而,这一优势伴随着诸多技术问题和高昂成本。可以肯定的是,三维集成将成为越来越多新商业应用所采用的技术。这也意味着必须开发专门针对三维几何结构的新型布局布线方法。
电子设计中的一个关键阶段是布局规划,即在给定的面积/体积内对组件、子电路和功能模块进行定位。布局图的设计必须符合给定的一系列要求,并满足预设的限制条件。在寻找合适的布局规划解的过程中,需要评估一些架构决策,并估算芯片面积以及由布线引起的延迟和拥塞。
尽管该任务在二维(2D)空间中已得到有效解决,但第三维度难以直接适用于现有的算法方法。在三维(3D)情况下,该任务的计算复杂度和解空间要大得多,大于二维情况下的[24],并且需要使用随机方法来获得全局近似最优解。在[14]中,提出了一种用于三维集成电路布局设计的新方法。该方法具有通用性,将优化方法与特定设计任务的语义层以及负责展示搜索空间探索流程的表示层分离开来。设计知识以谓词的形式提供,并输入到生成与优化过程中。设计者定义一个简单的形状语法。在智能推导控制器监督下的形状语法生成可行候选设计方案。通过利用涌现现象,可大幅减少总体搜索时间。一些可识别的涌现结构(例如间隙(空区域))并未在设计中显式表示,但会从中产生,这些结构可以被定位并融入生成过程中。所获得结果的总线长可通过使用知识密集型三维集成电路布局超图表示[15]以及精细的邻域优化启发式算法[16]进一步优化。本文汇集并发展了我们先前发表于[14,15,17]的研究成果。当前研究的目标是最小化子电路之间互连的总线长。文中报告了将极值优化(EO算法)应用于北卡罗来纳微电子中心(MCNC)基准电路集的结果[26]。
论文的组织结构如下。第2节介绍了最流行的布局表示方法,即序列对、有界切片线网格、O树、B⁄‐树、角块列表和传递闭包图。同时还引入了提出的分层布局超图表示方法。第3节描述了详细的超图拓扑划分方法及其极值优化实现。在下一节(第4节)中,报告了所提出的方法应用于MCNC基准电路集的实验结果。论文的最后一节包含结论。
2. 布局图表示
集成电路物理设计的目标是制定出集成电路的几何和功能正确的表示。根据来自工艺库信息的元件电气和物理特性以及来自网表的连接拓扑,目标是确定组件及其连接在集成电路布局中的空间排列。网表是设计中所有信号网络及其所连接组件的集合,换句话说,就是所有网络和连接引脚的列表。
组件的整个几何排列称为布局图 [21]。
存在不同的、有时相互冲突的布局规划优化目标,例如包围盒最小化、总线长最小化、信号延迟优化或热点问题减少。由于任务是将所有组件在不违反设计规则的前提下打包到芯片中,因此这属于一种装箱问题,必须满足许多功能和生产要求。此类打包的最小包围盒称为芯片 [29],需要将各个组件紧密地排列在一起。类似的情况也出现在线长减少中,缩短连接会提高封装密度。长连接可能会增加信号传播延迟和制造成本。另一方面,当某个区域的打包过于密集时,可能会出现热点问题。热管理要求将发热最严重的组件放置在芯片外围,有时还需进一步分散,但这可能会增加芯片规模、线长和制造成本。
有许多用于二维集成电路布局设计的商业电子设计自动化(EDA)工具。布局规划可分为两类:切分式布局规划和非切分式布局规划。切分式布局规划是通过递归地对布局图进行水平或垂直切割而得到的[29]。这种情况下,解空间受到限制,从而导致更简单的数据结构表示和更快的运行时间。然而,非切分结构更为通用,适用于大多数实际设计示例。因此,已提出多种非切分式布局表示方法,包括序列对(SP)[27],、有界切分线网格(BSG)[30],、O树[18],、B⁄‐树[5],、角块列表(CBL)[20],以及传递闭包图(TCG)[25]。
序列对(SP)
[27] 是一对有序的元件名称排列 (C+, C−)。这两个排列共同通过四种方式之一表示每一对组件 x 和 y 之间的几何关系:x 在 y 的右侧、x 在 y 的下方、x 在 y 的上方、x 在 y 的左侧。具体而言,如果 x 在 C+ 和 C− 中均出现在 y 之前,则 x 位于 y 的左侧;如果 x 在 C+ 中出现在 y 之前,而在 C− 中出现在 y 之后,则 x 位于 y 的上方;如果 x 在 C+ 中出现在 y 之后,而在 C− 中出现在 y 之前,则 x 位于 y 的下方;否则,若 x 在 C+ 和 C− 中均出现在 y 之后,则 x 位于 y 的右侧。序列对对布局施加的约束是唯一的。两个有向约束图构成了序列对与布局规划之间的中间表示。尽管现代序列对算法并不直接计算约束图,但它们对于更好地理解概念非常有用。垂直约束图捕捉组件之间的下方‐上方关系,而水平约束图则描述组件之间的左侧‐右侧关系。图1 展示了一个示例布局图及其对应的序列对和约束图。
有界切分线网格(BSG)
[30]是一种非常直接的组件布局表示方法,能够处理各种约束,如边界、预放置、邻接或对齐[6]。然而,BSG并未引起太多关注,因为其评估耗时远高于SP、O树或CBL。规模为n × n的BSG是在平面上定义的一种拓扑结构,通过将n个组件分配到BSG房间中来实现。在这种BSG中,存在n! × 2^n种可能的布局组合,并且包含大量冗余。组件被分配到BSG房间中。每个BSG房间由一对半偏移水平线和一对称为BSG段的半偏移垂直段所界定。自然地定义了右侧、左侧、上方和下方等关系。与SP表示法类似,引入两个约束图分别表示下方‐上方和左‐右关系:即BSG垂直约束图和BSG水平约束图。图2展示了示例布局图及其对应的有界切片线网格和约束图。
O树
[18]是一种用于表示非切片布图几何关系的简单方法,结合所有组件的尺寸即可描述一个精确的布局图。O树精确对应一种放置方案,并可在O(n)时间内转换为布局图。O树是一种有根有向有序树,包含一个特别指定的节点称为根节点。有序树的子树具有特定顺序,这对树的编码至关重要。为了对具有n个节点的有根有序树进行编码,使用一个2(n − 1)位的字符串T来标识树的分支结构,以及节点标签的一个排列p(T, p)。遍历树时按照深度优先搜索(DFS)顺序进行:首次访问某条边时(从根节点向下到叶节点),在T中写入0;当重新访问该边并向上报至根节点时,则记录1。与此同时,在排列p中,记录了标签序列。图3 展示了一个示例布局图及其对应的水平O树(T, p)。
B⁄‐树
[5],表示基于二叉树表示,可用于左侧和底部紧凑型布局。当一个布局中没有组件可以在其他组件固定的情况下向左(或向下)移动时,则该布局为左侧(或底部)紧凑型布局。对于给定的布局,可在 线性时间 内通过一种 深度优先搜索(DFS)过程 构造出唯一的(水平) B⁄‐树。此类树的 根节点 对应于布局中 左下角 的 组件。节点的 左子节点 表示位于其 右侧 最近邻的 组件。节点的 右子节点 表示在其 上方 具有相同 水平 坐标的 最低可见组件。图4 展示了一个 布局图 及其水平 B⁄‐树 表示。
角块列表(CBL)
另一种布局图拓扑表示方法是角块列表(CBL),它独立于组件规模 [20]来定义布局图。角块(组件)是指放置在右上角位置的块,其方向由包含左侧(0;垂直)和底边段(1;水平)组件的T型连接确定。角块列表是一个三元组(S, L, T),该三元组由递归块删除过程中的记录构造而成,其中S是块(组件)名称的序列,L是方向列表,T是T型连接信息列表。如果块的方向为垂直,则通过将其底边段移动到平面布局顶部边界并拖动其余部分来完成删除操作相连的T型连接。如果模块方向为水平,则其左边段被移动到平面布局右侧边界,并且相连的T型连接随该线段一起被拉动。图5展示了一个示例布局图及其角块列表表示生成过程。
传递闭包图(TCG)
最后,我们得到了传递闭包图(TCG)表示法(参见图6)。顾名思义,它使用图来表示组件之间的几何关系。严格来说,会构建两个传递闭包图:一个水平的和一个垂直的[25]。该表示法仅表示非重叠布局,这意味着TCG中的每一个布局都是可行的,从而使其相比其他表示法具有显著优势。这样的假设确保了任意两个组件之间要么是水平关系,要么是垂直关系,要么是对角关系。当满足以下两个条件时,两个组件构成水平(垂直)关系:(1)其中一个位于另一个的左侧(底部);(2)它们在y(x)轴上的投影存在重叠。对角关系默认被视为水平关系,但如果在所考虑组件的最近两个角定义的矩形范围内,模块之间存在一条垂直关系链,则该对角关系被视为垂直关系。这种表示法不仅表达了每一对组件之间的几何关系,而且保证了最优评估的布局对应于一个最优解。
由于当前三维集成电路技术的限制,例如层间高度固定或器件层数预先定义,因此考虑了两类三维布局表示方法:
真三维和准三维。通常,真三维表示法是通过引入第三维度对现有二维表示法的扩展,例如序列三元组[35],、三维TCG[2]或三维切分树[7]。然而,由于z轴会产生过多冗余,目前仍在使用准三维表示法(也称为 2.5维),即对不同的器件层采用二维表示的数组,例如BSG[9]或 TCG[8]。
值得强调的是,所有给出的集成电路布局图表示方法仅针对组件的几何特征,而不反映任何独立计算的连线关系。
2.1. 超图
图是用于表示各种关系结构的抽象数据结构。它们被证明是建模计算机科学、语言学、化学和物理学以及近期社交网络分析中问题的宝贵方法。由于其普遍性,图在现实世界系统中的应用不可低估。
图通常定义为一个元组 G =(V,E),其中 V 是一个有限的非空顶点(节点)集合,E 是一个有限的边(弧)集合 [19]。边由两个顶点组成,这两个顶点可以是无序的,也可以是有序的。可以为顶点和边关联描述其属性和特征的关系。然而,经典图的边仅限于二元关系,这可能不足以表示现实生活中的问题。
超图通过引入超边来连接任意数量的顶点,从而消除了这一限制[3]。它们已成功应用于解决来自建筑设计、线性代数、数据挖掘或信息检索等多个领域的实际问题。在集成电路布局设计中也得到了应用,[22],特别是在总线长最小化方面。电子电路的连通性由网表描述,该网表可轻松映射为超图(图7)。然而,先前描述的超图表示方法和划分算法仅使用单一维度将网表划分为层级,类似于二维情况。这些方法将超图的顶点分配到k个互不相交的非空划分中,以最小化划分间被切割的超边的权重之和,并平衡各划分中的顶点总权重。因此,k路划分往往难以找到近似最优解。
2.2. 层次化布局超图
随着工艺的不断进步,需要放置的模块数量也越来越多。为应对可扩展性问题,应采用层次化方法。采用在[13]中定义的层次化布局超图 (HHG)来表示架构设计中的平面布局。在[13],之后,引入了两步层次化布局超图(HHG)。首先定义布局超图(HG),然后添加实现层次关系的子嵌套函数。
布局超图由一个有限的顶点集、一个有限的超边集以及可能的标注函数组成。超边有两个不相交的子集:第一个子集(EC)包含描述矩形电路组件的超边,以矩形形式表示;第二个子集(ER)由表示连线关系的超边组成,以椭圆轮廓表示。顶点(V)对应用于连接组件的引脚点,标记为黑点。节点序列通过附着函数分配给超边。根据关系顺序,顶点可被识别为源节点序列(attS)和/或目标节点序列(attT)中的符号。不同的标注映射 lbV、lbEC 和 lbER 分别用于为顶点、组件和连线关系分配属性。
更正式地,布局超图是一个系统 HG =(V, E, att, lb),其定义基于非空且不相交的标签字母表 RV、RC 和 RR,其中:
1. V 是一个顶点的有限集合,
2. E = EC ∪ ER 是一个超边的有限集合,其中 EC 的超边表示对象组件,ER 的超边表示关系,且 EC ∩ ER = £,
3. att = (attS, attT),其中 attS:E → V⁎ 和 attT:E → V⁎ 是标注函数,分别为超边分配源节点和目标节点的有限序列,使得对于 ∀e ∈ EC,attS(e) = attT(e),v⁎ = v₁v₂…vₙ 是一个节点序列,其中 vᵢ ∈ V,
4. lb = (lbV, lbEC, lbER),其中 lbV:V → RV,lbEC:EC → RC,lbER:ER → RR 是标注函数。
在图7中引入的示例简单电路及其对应的布局超图如图8所示。表示电路元件的超边由相应的元件名称(i2, i3, i4, U1, U3, U4,…,U10, o1, o2)标记。反映连线关系的超边由wire标记。共有12条连线超边,其中四条连接三个组件,其余为二元连接。
在[14]中,为了实现层次关系,引入了一个子嵌套函数ch: EC → P(A)。它定义了父子关系,并在组件上施加了一种树状结构。A = V ∪ E 被称为超图原子集合,并满足以下条件:
1. 一个原子不能同时嵌套在两个不同的超边中:∀a ∈ A ∀e₁,e₂ ∈ EC a ∈ ch(e₁) ∧ a ∈ ch(e₂) ⇒ e₁ = e₂,
2. 超边不能是自己的子节点:∀e ∈ EC e ∉ ch⁺ (e),其中 ch⁺ (e) 表示给定超边 e 的所有后代,
3. 源节点和目标节点与其超边嵌套在一起:∀e₁ ∈ E: ∃e₂ ∈ EC e₁ ∈ ch(e₂), ∀v₁ ∈ attS(e) v₁ ∈ ch(e₂) ∧ ∀v₂ ∈ attT(e) v₂ ∈ ch(e₂)。
当需要表示不同层次的细节时,层次关系是必要的。这可能是由于组件数量众多,也可能是由于设计任务本身的性质。让我们考虑 图8 中所示超图的二分划分。目标是最小化线长,同时平衡每一层中的组件数量。其中一个合理的解如 图9 所示。只要考虑网络割函数,将超图折叠为表示两层的两个超边以及连接它们之间被切割的三条线超边就非常方便。然而,为了验证划分平衡,展开超图是必不可少的。
在[27]非切分式布局表示的P‐可允许解空间已被定义。一个有效的搜索解空间至少需要满足以下最小要求:(1) 解空间是有限的,(2) 每个解都是可行的,(3) 每个结果的评估和布局实现可在多项式时间内完成,(4) 最优评估的表示对应于最优布局。所提出的层次化布局超图( HHG)表示法与序列对、BSG 和 TCG 一样属于 P‐可允许,而 O树、 B⁄‐树 和 CBL 则不是。HHG 是自包含的,不需要任何额外的约束表示(如 SP、BSG、O树 或 CBL)。此外,HHG 不仅保留了组件的边界信息及其相对空间关系,还能够记录精确的引脚位置(端子)位置。它似乎是用于精确线长计算的理想表示。值得考虑进一步扩展该表示以编码布线结构。
3. 三维布局超图划分
(超图)图的k路划分是将顶点分配到k个不相交的非空集合中。通常,它最小化跨越多个划分的超边权重之和,并尝试平衡各划分中的顶点总权重。这类约束k路划分问题对于超图和图来说都是NP完全的[23]。
目前最受欢迎且广泛使用的先进(超)图划分器采用 Fiduccia‐Mattheyses算法[10],该算法不仅计算高效(一种线性时间启发式方法),而且易于针对不同的目标函数进行调整。该方法框架可分为三个步骤:粗化、初始划分和解粗化。在粗化阶段的时间
在该阶段,(超图)图被连续收缩,直到其足够小,以便在初始划分阶段进行划分。整体划分质量高度依赖于所选择的粗化策略。更小的图所表现出的结构属性越相似,最终获得的整体划分质量就越好。无论采用多种不同粗化方案中的哪一种,此阶段的主要目标都是降低超边基数,更确切地说,是最大化基数为一的超边数量,并最小化其他超边的基数。那些基数等于一的超边在下一步粗化中不会被切割,因此可以忽略。所以在该阶段,要么成对,要么成组地收缩不相交的超边。在解粗化阶段,收缩操作被逆向还原。初始划分被投影到更精细和扩展的图上,并应用局部搜索算法以提升划分质量。
然而,最先进的方法框架完全忽略了三维空间中的第三维度。网表在层间的三维划分过程在二维和三维空间中是相同的。因此,它们往往无法获得可接受的准最优解。
3.1. 拓扑划分
与网表超图的k路划分不同,已提出对布局超图进行三维拓扑划分 [16]。以下事实对所提出的方法产生了重大影响[1]:
•
规模
– 组件数量可能达到数百万,网络数量通常为组件数量的0.8× 到1.5×之间,
•
稀疏性
– 每个组件的平均连接数和平均网络大小在3到5之间
•
粒度
– 非常大的网络(数百或数千个组件)非常罕见。
该方法的主要目标是最优地将三维互连的邻域进行分组,而不是生成图的最小且平衡的切割。考虑到芯片的网格状结构,选择了冯·诺依曼邻域定义(图10),其中范围r的邻域定义为:
$$ N_v(x_0,y_0,z_0) = {(x,y,z): |x - x_0| + |y - y_0| + |z - z_0| \leq r} $$
并在三维网格上围绕给定单元格勾勒出一个菱形细胞集合。在二维中计算范围r内的邻居数(n²_r)是直接的 [34]:
$$ n^2_r = 2r(r + 1) $$
并且可以在三维(n³_r)中建立相关公式:
$$ n^3_r = n^2_r + 2(n^2_{r-1} + 1) + (n^2_{r-2} + 1) + \dots + (n^2_0 + 1) $$
通过公式(3)应用于范围从1到3的邻域的计算,确定了以下邻居数量:分别为6、24和62。这意味着,在理想排列中,每个组件在距离为1时最多可有6个邻居,在距离为2时有18个(24–6),在距离为3时有38个(62–24),依此类推。
在IC网格中,为了测量两个单元格之间的距离,使用了出租车度量(曼哈顿距离)。它通过计算所考虑单元格的笛卡尔坐标的绝对差值来实现:
$$ D((x_1,y_1,z_1),(x_2,y_2,z_2)) = |x_1 - x_2| + |y_1 - y_2| + |z_1 - z_2| $$
采用了构建块假设,即最优全局解(总线长)是各个最优局部邻域之和。考虑图9中的示例,每对相连组件之间的距离不超过2(例如 U10‐U7、U8‐U6或U4‐i3)。该超图的划分在各层之间完全平衡(每层包含7个组件)。然而,在布线资源和延迟方面,任何非直接相邻的垂直连接可能代价过高,[32],因此更倾向于在层间切割超边,使得范围为一或二的邻域内所有组件被包含在内,而不是最小化网络割函数[14]。
考虑到布局超图结构中定义了两种不同类型的超边,可以采用两种不同的过程来生成初始解。一方面,首先考虑芯片组件超边及其度(连接数量)。在这种情况下,所有组件根据连接数量按降序排序。在每一步中,将尚未放置在布局中的、具有最高连接数量的组件随机定位到一个芯片中。然后,根据冯·诺依曼邻域,将其所有邻居(相连的组件)定位到最近可能的邻近位置。另一方面,首先考虑芯片布线超边及其度(一个网络中的组件数量)。在此方法中,较大的网络优先于其他网络被放置到芯片中。这样的初始解可进一步通过任何优化技术进行优化。
3.2. 极值优化实现
受自组织临界(SOC)模型和协同进化启发,极值优化(EO)是一种用于解决困难优化问题的通用协同进化方法[4]。与操纵整个可能解种群的其他进化计算方法不同,EO通过逐步消除其不可接受的特征(xi),来演化单个解 $ S = {x_1, x_2, …, x_m} $。每个特征都被赋予一个适应度值,所有这些适应度值的和即为整个解S的适应度。逐步地,通过生成一个随机解S′来替换最低评分的特征,其中(xi)被替代。为了防止某些实现中可能出现的死胡同,引入了一个s控制参数(即 s-extremal optimization)。不再选择最差特征,而是采用一种排名选择[4]。所有特征按其适应度值升序排序,新的解 S′通过从概率分布中抽取两个特征并交换它们而生成。
$$ P(k) \propto k^{-s}, \quad 1 \leq k \leq m $$
该方法的基本原理是负向组件选择。解S的质量会在一段时间内提高,然后突然下降。这种所谓的雪崩现象会将搜索过程转移到搜索空间的不同区域,从而有可能逃离局部最优。这种嵌入式多样性机制类似于多起点搜索,并使EO算法成为一种鲁棒爬山技术。在优化过程的任何阶段,都可能出现较大的爬山波动;而在自组织临界状态下,几乎所有特征都远优于随机解,并能长期保持良好值,除非其邻居被低采纳 [4]。
为了实现拓扑划分启发式,应用了s‐EO算法。任务是将集成电路组件分布在三维空间中,以最小化总线长。搜索空间由一个预定义最大体积X × Y × Z的网格立方体构成。网格中的每个单元格 $(x,y,z) \in X \times Y \times Z$ 要么被一个组件占据,要么为空。每个组件表示解的一个特征。组件的最优局部放置是包含其所有邻居的最小范围邻域。因此,组件适应度值按如下方式评估[17]:
$$ fitness_c = \frac{optimal_fitness_c}{\sum_{c’} D(c(x,y,z), c’(x,y,z))} $$
其中 c′ 是连接到 c 的一个组件,c(x,y,z)表示组件 c 当前占据的单元格,D 是由公式 (4)计算出的曼哈顿距离。该定义确保了 $ fitness_c \in (0, 1] $,因此解 S 的最优适应度等于组件数量。
s‐EO算法按以下方式执行 [17]:
创建初始解S并设置Sbest=S
直到 !停止条件 重复:
(1) 对每个c评估fitness_c
(2) 根据适应度值对所有组件进行排序
(3) 根据给定的 s 从 P(k)分布 中抽取 k₁, k₂
(4) 抛硬币并用k₂替换组件k₁或将 k₁ 放入网格中的某个空闲单元格
(5) 在更改之前将 k₂ 放入 k₁
(6) 相应地创建 S′ 并在适当情况下更新 Sbest
(7) S = S′
返回 Sbest
4. 实验结果
MCNC模块封装实例是布局规划和布局问题中最常用的基准电路集 [26]。该基准包含以YAL文件格式提供的五个模块封装实例。与我们研究相关的关键实例细节见于表1。对于三个最小的MCNC实例,即 apte、xerox和hp,其二维情况下的最优线长已被计算出来[11]。作者还指出,目前计算两个最大实例(33和49个组件)的线长最优布局远超出可能的范围。最优线长结果以及文献[11]中针对ami33和ami49报告的结果列于表2。
极值优化过程在[17]中已成功评估。此次不仅检验了该方法本身,还考察了不同的初始解生成方法及其对最终结果的影响。YAL文件被解析为分层布局超图,并针对不同s‐极值优化实验中的s ∈ {1.8, 1.9,…, 3.0} 进行了系列实验。当s取值为2.7时,每个封装实例进行100万次运行的结果列于表3。各列表示:实例文件名(YAL数据文件)、芯片网格尺寸(网格大小)、适应度函数的最优值(最优适应度)以及获得的适应度值(所有运行的平均值),其中初始解考虑了组件超边及其度数(结果适应度/组件)或芯片布线超边及其度数(结果适应度/布线),平均最优解(平均最优值)由平均邻居数量的规模定义(见表1),最优邻域排列结果(最佳结果)。
平均最优解通过公式(3)的计算得到。对于ami49,其平均邻居数是18,一个组件到其邻居的平均距离是6个距离为1的邻居和12个距离为2的邻居之和,即30。因此,平均最优解是组件数量(49)乘以组件间的平均距离(30),得到1470。
如数值数据所示(表3:结果适应度组件 vs 结果适应度导线),初始组件布局对最终结果基本没有影响,这在精确定义的极值优化任务中是预料之中的。将解的质量随算法迭代(时间)的变化绘制成图时,ami49电路(图11)表现出最高的动态多样性。它比其他实例更稀疏,因此更适合所提出的方法。结果既以最优适应度函数值的形式给出,也以邻近距离的总和形式给出。第二个值(表3中的最佳结果)描述了以细胞间网格连接数表示的可能的总线长。这种方案远远超出了当前的技术能力。然而,今天不可能的事情明天可能会成为可能,而此数值范围与表2中给出的实际可行解相比,即使考虑单位换算,也是令人鼓舞的。
每个MCNC实例的生成的布局示例在图12 和13中展示。芯片网格尺寸不小于组件数量,因此存在一些空单元。单元尺寸已根据组件尺寸进行调整。
表1 MCNC基准实例的特征。
| YAL数据文件 | 模块 | Nets | 邻居数量 Min | Max | Avg |
|---|---|---|---|---|---|
| apte.yal | 9 | 97 | 8 | 8 | 8 |
| xerox.yal | 10 | 203 | 9 | 9 | 9 |
| hp.yal | 11 | 83 | 5 | 10 | 7 |
| ami33.yal | 33 | 123 | 32 | 32 | 32 |
| ami49.yal | 49 | 408 | 2 | 35 | 18 |
表2 Funke等人提出的原始晶粒尺寸下apte、施乐、和hp的最优线长[12]。ami33和 ami49的线长在[11]之后。数值数据以μm给出。
| YAL数据文件 | 原始尺寸 | 线长 *最优 |
|---|---|---|
| apte.yal | 10,500 × 10,500 | 513,061* |
| xerox.yal | 5831 × 6412 | 370,993* |
| hp.yal | 4928 × 4200 | 153,328* |
| ami33.yal | 2058 × 1463 | 58,627 |
| ami49.yal | 7672 × 7840 | 640,509 |
表3 MCNC基准测试的s‐EO算法结果。结果以网格单位给出。
| YAL数据文件 | 网格大小 | 最优适应度 | 结果适应度 组件 | 结果适应度 Wire | 平均最优值 | 最佳结果 |
|---|---|---|---|---|---|---|
| apte.yal | 2×2×3 | 9 | 58,307 | 59,865 | 10×9=90 | 136 |
| xerox.yal | 2×2×3 | 10 | 68,295 | 68,295 | 12×10=120 | 178 |
| hp.yal | 2×2×3 | 11 | 77,867 | 78,075 | 6×11=66 | 140 |
| ami33.yal | 3×3×4 | 33 | 22,8793 | 228,885 | 66×33=2178 | 3184 |
| ami49.yal | 4×4×4 | 49 | 273,801 | 270,710 | 30×49=1470 | 2698 |
5. 结论
本文提出了一种用于三维集成电路设计中总线长最小化的新方法。该方法结合了能够完美反映芯片组件之间关系的布局超图表示以及原始的最优邻域启发式方法。与采用超图的最小且平衡的切割不同,本文应用并实现了互连的3D邻域的最优分组,并使用s‐极值优化算法进行求解。所提出的方法已通过MCNC基准电路集成功验证。
所描述的层次化布局超图(HHG)表示不仅P‐可允许,而且非常灵活。它能够处理具有各种空间关系的不同布局设计问题。它对解空间维度没有任何限制,因此在忽略当前IC技术限制的情况下,可以编码真正的3D解。
1876

被折叠的 条评论
为什么被折叠?



