11 多端互连的时序优化
章节大纲
11.1 面向层间互连树的时序驱动通孔放置 .282
11.2 多端互连通孔放置启发式方法 .284
11.2.1 互连树 .285
11.2.2 单关键汇点互连树 .286
11.3 互连树通孔放置算法 .287
11.3.1 互连树通孔放置算法(ITVPA) .287
11.3.2 单关键汇点互连树通孔放置算法 .288
11.4 通孔放置结果讨论 .288
11.5 总结 .292
前一章展示了三维电路中两端层间互连性能的显著提升。文中描述并应用了一种精确确定最小化延迟的通孔位置的技术,该技术被应用于多个互连系统。然而,在集成电路中,多终端互连占据了互连的很大一部分。在三维电路中提升这些网络的性能是一项具有挑战性的任务,因为这些互连的汇点可能位于不同的物理平面上。除了降低延迟之外,时序优化技术不应显著影响布线路由树。本章提出了一种针对层间树的通孔放置技术。下一节将描述在层间树中放置通孔以降低树延迟的任务。该问题的启发式解法在第11.2节中进行了描述。基于此启发式方法的算法在第11.3节中给出。这些算法在多个层间树上的应用在第11.4节中进行了讨论。最后,第11.5节提供了总结。
本章中,术语“层”和“平面”可互换使用。
层间互连树。(A) 典型的层间互连树,以及(B) 层间通孔可放置的区间和方向。
11.1 面向层间互连树的时序驱动通孔放置
本节研究了在层间树中放置通孔以降低这些树延迟的问题。图11.1A展示了简单的层间互连树(为简便起见,也称为互连树),相关术语列于表11.1中。该树的汇点位于三维堆叠中的不同物理层上。图中还显示了未直接连接到层间通孔且不包含任何层间通孔的子树(即层内树)。每个物理层上的互连线段用不同粗细的实线表示。可应用不同的目标函数来优化互连结构的性能。本章将互连树各支路分布式Elmore延迟的加权和作为目标函数,
$$
Tw = \sum_{spq} w_{spq} T_{spq}; \quad (11.1)
$$
其中 $w_{spq}$ 和 $T_{spq}$ 分别为汇点 $sp_q$ 的权重和分布式Elmore延迟。权重根据汇点的关键性分配给各个汇点。对于连接多个互连段的通孔,或等效地,度大于二的通孔,存在若干个候选方向 $d_i$,沿这些方向可以减少延迟。沿这些方向放置通孔受到长度 $l_{di}$ 的限制,如图11.1B所示,其中 $l_{di}$ 项通常不相等。此外,通孔可以跨越多个物理层。例如,考虑连接汇点 $s_{23}$ 和 $s_{33}$ 的通孔。该通孔穿过两个物理层,且在每一层中放置该通孔的允许区间可能不同。
定义了层间通孔的三种不同类型的移动。类型‐1 移动如图11.2A所示。此类移动需要插入一个层内通孔(以保持连通性),如图11.2A中的点所示。在接下来的分析中,假设这些额外的层内通孔对树的延迟影响可以忽略不计。假设层内通孔的阻抗特性明显低于层间通孔的阻抗特性[436],特别是当上层采用体CMOS技术时。或者,可以通过适当地缩短层间通孔允许区间的长度来包含这种影响。
| 表11.1 双端网络和互连树的符号 |
|---|
| 符号 |
| $R_S$ |
| $C_L$ |
| $r_j(c_j)$ |
| $r_{vj}(c_{vj})$ |
| $R_j(C_j)$ |
| $R_{vj}(C_{vj})$ |
| $R_{uj}$ |
| $R_{uij}$ |
| $d_i$ |
| $C_{dvj}$ |
| $P_{spq}$ |
| $P_{spq vj}$ |
| $U_{kj}$ |
不同的层间通孔移动。(A) 类型1移动(允许),(B) 类型2移动(允许),以及 (C) 类型3移动(禁止)。
A type‐2 移动如图11.2B 所示。type‐2 移动 与 type‐1 移动 的不同之处在于,插入了一个长度为 $\Delta l$ 的额外互连段。尽管这种移动类型需要额外的互连段,但仍可能导致树的延迟减少。在图11.2B 中所示的长度为 $\Delta l$ 的线段位于相同的 y 坐标上,但在不同的物理层上,为了更清晰起见,在图中显示于不同的坐标位置。
另一种移动类型如图11.2C所示,其中插入了额外的层间通孔,被称为type‐3 移动。由于层间通孔具有较高的阻抗特性,这种移动类型不被允许,原因有两个:额外的层间通孔带来的延迟减少不足以抵消其自身引入的延迟;此外,额外的层间通孔还会增加垂直互连密度,这是不希望的。同时,这些通孔通常会阻塞层级内的金属层,导致剩余网络的允许区间长度受到不利影响,从而加剧布线拥塞。
与双端网络类似,每个源到汇路径的总长度对互连树有一定的约束。
$$
L_{spq} = l_{11} + l_{v11} + \dots + l_j + l_{vj} + \dots + l_{vn21} + l_n; \quad (11.2)
$$
其中 $l_j$ 和 $l_{vj}$ 分别表示从树的根到汇点 $j$ 和通孔 $v_j$ 的路径中水平线段的长度,该路径描述了从树的根到汇点 $sp_q$。构成该汇点路径的线段数量记为 $n$。(11.2) 中的约束被调整以考虑树的某些分支进行类型‐2 移动可能导致的线长增加。此外,树中每个线段的长度以及通孔放置也受到以下限制:
$$
l_{jmin} \leq l_j + l_{di, j-1} \leq l_{jmin} + l_{di, j}; \quad \forall i \in {w, e, s, n}, \quad \forall j \in [2, n-1] \quad \text{and} \quad l_{di,0} = l_{di,n} = 0; \quad (11.3)
$$
$$
0 \leq x_j \leq l_{di, j}; \quad \forall i \in {w, e, s, n}. \quad (11.4)
$$
因此,可以在多层互连树中放置通孔的约束优化问题可以描述为
(P1) 最小化 $T_w$,约束条件为(11.2)至(11.4),$\forall$ 输出端 $sp_q$,以及通孔 $v_j$。
与双端网络的推理类似,(P1) 通常包含一个不定二次型 $l^TAl$,其中 $A$ 是为互连树调整后的公式(7.20)中描述的矩阵。可以通过某些变换将 (P1) 转换为凸优化问题 [430];然而,目标函数不再具有二次型。或者,下节将介绍精确的启发式方法,用于确定最小化层间互连树延迟的通孔位置。
11.2 多端互连通孔放置启发式方法
本节介绍了在三维电路的互连树中放置层间通孔的近最优启发式方法。首先,在第11.2.1节中描述了一种用于最小化层间树汇点加权延迟的启发式方法。接着在第11.2.2节中讨论了优化层间树关键路径延迟的第二种启发式方法。
11.2.1 互连树
在本节中,描述了在三维电路的互连树中放置层间通孔以最小化树的各分支加权埃尔莫尔延迟之和的方法。由于如第11.1节所述,层间通孔存在多种可能的移动方式,因此在多终端网络中确定通孔位置的表达式有所不同。为了确定那些连接度大于二的通孔应采取何种移动类型才能使树的延迟减小,需满足以下条件。
条件1 :如果 $r_j > r_{j+1}$,则只有对 $v_j$ 进行类型1移动才能减少树的延迟。
证明 :该命题在附录D中进行了分析证明。该条件也可以直观地解释。一次类型‐2 移动会使第$\Delta l$段$j$的长度增加。$l_{j+1}$的减少量被在第$\Delta l$层新增的一段长度为$j+1$ 的线段所抵消(见图 11.2B)。因此,树的总电容增加。如果条件1 满足,则一次类型‐2 移动也会增加树的总电阻,因此,通过此次通孔移动,树的延迟只会增加。
条件2 :对于候选方向 $d_i$,如果 $r_j、r_{j+1}$ 和
$$
\sum_{spq \in P_{spq v_j d_i}} w_{sp} \frac{r_j + r_{j+1}}{C_{dvj di}} \leq \sum_{spq \in P_{spq v_j d_i}} w_{sp} \frac{r_{j+1} - r_j}{C_{dvj di}}; \quad (11.5)
$$
满足条件后,类型2移动可以减少树的延迟。
证明 :这一条件也可以直观地说明。位于$v_j$上游的所有互连段的电容均增加了$c_j \Delta l$,从而增加了每个下游汇点$v_j$.的延迟。因此,只有降低电阻才能减少树的延迟。另一方面,在候选方向$d_i$上位于通孔$v_j$下游的汇点,其上游电阻减少了$(r_j - r_{j+1})\Delta l$,而其他方向上位于通孔$v_j$下游的汇点,其上游电阻则增加了$(r_j + r_{j+1})\Delta l$。对于类型2移动,由汇点权重和下游电容决定的这两个分量的加权和必须为负,才能导致树的延迟减小。
条件2 针对度大于二的树中的每个通孔进行评估。如果 (11.5)在多个方向上均满足,则选择使右端项(RHS)值最大的方向作为该通孔的最优方向。最后需要注意的是,(11.5)条件1和条件2均为必要条件而非充分条件。根据2表11.1中列出的符号,连接层Table 11.1,j和 j+1上的两个线段且满足j和j1条件1的通孔的临界点为条件1 是
$$
x^{type-1} = \frac{\sum_{v_i \in U_{1j}} \sum_{s_m \in P_{s_m U_{ij}}} w_{s_m} R_{uij} + \sum_{s_p \in P_{s_p v_j}} w_{s_p} R_{uj}}{c_{j+1} - c_j - 2 l_{vj} r_j c_{vj} - 2 r_{vj} c_{j+1} l_{dw} + C_{dvj}} \cdot \frac{1}{\sum_{s_p \in P_{s_p v_j}} w_{s_p} (r_j c_j + r_{j+1} c_{j+1} - 2r_j c_{j+1})}; \quad (11.6)
$$
对于沿候选方向$d_i$的类型‐2移动,连接层j和j+1上两个线段的通孔的临界点为
$$
x^{type-2} = \frac{\sum_{s_p \in P_{s_p v_j d_i}} w_{s_p} r_{j+1} C_{dvj di} + c_{j+1} l_{di} - \sum_{v_i \in U_{1j}} \sum_{s_m \in P_{s_m U_{ij}}} w_{s_m} R_{uij} c_k}{\sum_{s_p \in P_{s_p v_j}} w_{s_p} (r_j c_j + r_{j+1} c_{j+1}) - \sum_{s_p \in P_{s_p v_j}} w_{s_p} (r_j c_{j+1} l_{di} + C_{dj} + r_{j+1} C_{dvj di} + R_{uj} c_k)}; \quad (11.7)
$$
11.2.2 单关键汇连接树
存在这样一种情况:只需优化树中某一个分支的延迟。尽管上一节介绍的启发式方法可用于此类树,但本文描述了一种计算上更简单且精确的针对单关键网络树的优化过程。将该树的关键汇点记为$s_c$,该汇点的权重$w_{sc}$为1,而其余汇点的分配权重均为零。因此,用于最小化延迟的表达式被显著简化。此外,与上一节讨论的优化问题相比,该方法有所不同。具体而言,属于关键分支(即路径上通孔)的层间通孔将根据双端网络的启发式方法进行放置。对于这些通孔,无需测试条件1 和 2,因为任何类型‐2 的移动仅发生在包含关键汇点的方向上。
至于那些不属于关键路径的通孔(即非路径通孔),则应以最小化互连树的电容为目标来放置这些通孔。图11.3展示了一个说明此术语的简单互连树。这种情况出现的原因是,树中的非关键汇点仅作为电容负载影响关键汇点的延迟。
简单整数互连树,展示了关键路径($w_3 = 1$)以及路径上和路径外层间通孔。
非路径通孔的位置很容易确定,因为互连段的阻抗特性是已知的。注意,在这种情况下,非路径通孔的放置始终是最优的。任何最优性的损失都源于路径上通孔的位置。作为近最优使用双端网络启发式方法来放置路径上通孔,其最优性损失可忽略不计。在下一节中,这些启发式方法将用于开发在三维集成电路中的多终端网络内放置通孔的高效算法。
11.3 互连树通孔放置算法
本节介绍了一种在层间互连中高效放置通孔的近最优算法。基于第11.2.1节中所述的启发式方法,第11.3.1节介绍了一种针对层间互连树的高效算法。第11.3.2节讨论了第二种算法,该算法通过放置层间通孔来最小化具有单个关键分支的互连树的延迟。
11.3.1 互连树通孔放置算法(ITVPA)
本节介绍了多终端网络的通孔放置优化算法。该算法的输入是一个层间互连树,其中提供了线段的最小长度、汇点权重以及允许区间的长度。算法的伪代码如图11.4所示。由于层间互连树中可能存在不同类型的移动,因此在步骤一到五中首先确定通孔放置的候选方向。
move_type
例程从叶节点向根节点操作,为树中每个度大于二的通孔确定移动的类型和方向。条件1和2对每个通孔及其方向进行测试。对于位于树最底层(靠近汇点)的通孔,可确定其下游电容;而对于更接近根节点的上一层级中的通孔,无法精确确定其下游电容,因此需根据$C_{dvj}$的极值来评估(11.5)。如果仅在其中一个极值下满足(11.5),则可以沿非最优方向放置通孔,从而导致最优性损失。然而,如后续章节所述,这类情况通常不会出现。在第六步中,
optimize_tree_delay
例程在树内放置通孔以最小化(11.1)。此例程是对用于双端网络的算法稍作修改而成。
互连树通孔放置算法(ITVPA)的伪代码。
互连树通孔放置算法:(lmin ,Δx,ldi,wsi)
1. 对每个物理层 i, i = n → 1
2. 对第 i 层上的每个层间通孔 j
3. 如果通孔_度 > 2
4. 移动_类型(j)
else
5. 转到步骤 2
6. 优化_树_延迟()
7. 退出
11 多端互连的时序优化
11.3.2 单关键汇点互连树通孔放置算法
尽管第11.2.2节中介绍的启发式方法可用于改善具有单条关键路径的树的延迟,但本节描述了一种更简单的针对单关键网络树的优化过程。单关键汇流孔放置算法(SCSVPA)的输入是层间互连树的描述,其中提供了线段的最小长度、汇点权重以及允许区间的长度。该算法的伪代码如图11.5所示。在步骤一至三中,每个非路径通孔被放置在相应允许区间内使电容最小的位置。树中包含关键汇点的方向由
direction_move
例程设定为路径上通孔可放置的方向。在第五步中,使用
optimize_tree_delay
例程来确定路径上通孔的位置。如前所述,此类树的最优性损失源于在双端网络中放置通孔所采用的启发式方法。正如第10章《双端互连的时序优化》所述,该启发式方法产生的结果与优化求解器相近。相比通用求解器,SCSVPA自然表现出显著更低的计算时间。
近最优单关键汇互连树通孔放置算法(SCSVPA)的伪代码。
单关键汇流孔放置算法: (lmin,Δx,ldi,wspq)
1. 每个路径外的通孔 j
2. 将通孔 j 设置在最小电容位置
3. foreach 路径上的通孔 i
4. 方向移动(i)_
5. 优化_树_延迟()
6. exit
11.4 通孔放置结果讨论
这些算法应用于多个示例层间互连树,以评估其效率和准确性。分析了不同层数和汇点数量的树。本节还讨论了这些算法的局限性。使用商用阻抗提取工具提取了多个互连结构中水平段和通孔的阻抗特性[423]。假设采用有效电阻率为2.2 μΩ‐cm的铜互连。根据提取出的阻抗,对于90纳米CMOS工艺节点,水平段的电阻和电容范围分别从25到 125 Ω/mm以及100至 300飞法拉/毫米[252,432]。通孔的横截面为 1 μm × 1 μm,与周围水平金属层间距为 1 μm,假设采用绝缘体上硅(SOI)工艺,如[307]所述。每个互连结构中各水平段的总长度和最小长度均为随机生成。为简化起见,所有通孔连接两个相邻物理层的线段。通过最优放置通孔所能实现的延迟节省列于表11.2 中的不同通孔放置场景下。
| 表11.2 不同层间互连树的优化结果 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| 汇点数和物理层数 n | 平均分支长度 (µm) | 平均 最大分支长度 (µm) | ldi(µm) | 延迟改进 (%) | 实例 | ||||
| 编汇点号的数量 | n | xi⋆=ldi/2 | xi⋆= 0 | ||||||
| Avg | Max | Avg | Max | ||||||
| 3 | 4 | 153 | 186 | 50 | 2.72 | 9.33 | 3.79 | 11.25 | 10,000 |
| 3 | 4 | 307 | 376 | 100 | 4.23 | 15.17 | 6.03 | 17.94 | 10,000 |
| 4 | 4 | 208 | 273 | 50 | 1.11 | 3.53 | 2.49 | 5.63 | 5000 |
| 4 | 4 | 828 | 1100 | 200 | 3.12 | 10.29 | 6.42 | 13.50 | 5000 |
| 4 | 4 | 1243 | 1650 | 300 | 4.07 | 14.15 | 7.76 | 19.38 | 5000 |
| 4 | 8 | 431 | 569 | 100 | 3.90 | 13.24 | 7.71 | 19.68 | 10,238 |
| 5 | 4 | 264 | 362 | 50 | 1.25 | 3.83 | 2.40 | 5.89 | 5000 |
| 5 | 4 | 1054 | 1452 | 200 | 3.62 | 11.55 | 6.56 | 12.04 | 5000 |
| 5 | 4 | 791 | 1089 | 300 | 3.90 | 11.61 | 6.95 | 19.34 | 5000 |
| 5 | 8 | 454 | 660 | 50 | 0.90 | 2.69 | 2.27 | 4.98 | 5000 |
| 5 | 8 | 521 | 738 | 100 | 1.78 | 5.55 | 4.33 | 8.40 | 5000 |
| 5 | 8 | 779 | 1111 | 150 | 2.38 | 7.44 | 5.67 | 11.90 | 5000 |
| 5 | 8 | 1038 | 1481 | 200 | 2.91 | 8.71 | 6.74 | 12.58 | 5000 |
| 6 | 8 | 306 | 455 | 50 | 1.11 | 3.17 | 2.36 | 4.89 | 5000 |
| 6 | 8 | 615 | 913 | 100 | 2.00 | 5.44 | 4.09 | 9.85 | 5000 |
| 6 | 8 | 922 | 1373 | 150 | 2.72 | 7.01 | 5.43 | 11.72 | 5000 |
| 6 | 8 | 921 | 1371 | 200 | 3.32 | 10.02 | 6.61 | 14.21 | 5000 |
| 6 | 16 | 555 | 845 | 50 | 0.86 | 2.74 | 2.52 | 4.95 | 4970 |
| 6 | 16 | 637 | 934 | 100 | 1.68 | 4.82 | 4.84 | 9.26 | 5059 |
| 6 | 16 | 953 | 1404 | 150 | 2.28 | 6.10 | 6.32 | 12.96 | 5021 |
在表11.2中,报告了具有不同汇点数量和层数的互连树的优化结果。ITVPA的精度和效率与TTVPA(在第10章,双端互连的时序优化中讨论)相似,因为在正确确定移动类型和方向后,ITVPA的优化过程与TTVPA相同。如第11.3.1节所述,可能会选择非最优方向来放置通孔。然而,仅当相连分支略微不对称(即具有相似的阻抗特性和关键性)时,才可以选择非最优的通孔放置方向。在这种略微不对称的分支情况下,这些分支的下游电容和权重值接近,使得这些汇点的加权延迟相似。对于这些略微不对称的分支,(11.7)得出 $x^{type-2} = 0$ 适用于 type‐2 移动,这意味着如果选择了非最优方向,树的延迟不会受到影响。或者,type‐2 移动通常发生在高度不对称的树中,其中某一分支的延迟主导了整个树的延迟。如(11.5)所述,层间通孔的移动类型取决于分支的权重以及互连线段的阻抗特性。考虑图11.6所示的对称树。分支的关键性和阻抗差异通过分配权重的值体现出来。
包含两个层间通孔的对称树。每层的互连参数为 $r_1 = 10.98\ \Omega/\text{mm}$、$r_2 = 11.97\ \Omega/\text{mm}$、$r_3 = 96.31\ \Omega/\text{mm}$、$c_1 = 147.89\ \text{fF/mm}$、$c_2 = 202\ \text{fF/mm}$ 和 $c_3 = 388.51\ \text{fF/mm}$,允许区间为 $l_{di,v2} = 75\ \mu m$。
| 表 11.3 通孔 V2 的最佳通孔位置、移动方向和移动类型 图11.6,由ITVPA确定的不同W1和W2取值 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| w1 | w2 | x⋆ v2(µm) | Move | 方向,di | w1 | w2 | x⋆ v2(µm) | Move | 方向,di |
|
0.50
0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 |
0.05
0.45 0.40 0.35 0.30 0.25 0.20 0.15 0.10 0.05 |
Δxv2
Δxv2 Δxv2 Δxv2 Δxv2 Δxv2 Δxv2 Δxv2 Δxv2 Δxv2 |
类型‐1
类型‐1 类型‐2 类型‐2 类型‐2 类型‐2 类型‐2 类型‐2 类型‐2 类型‐2 |
d0
d0 d1 d1 d1 d1 d1 d1 d1 d1 |
0.45
0.40 0.35 0.30 0.25 0.20 0.15 0.10 0.05 0.03 |
0.55
0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 0.97 |
Δxv2
Δxv2 Δxv2 Δxv2 Δxv2 Δxv2 Δxv2 Δxv2 Δxv2 68.70 |
类型‐2
类型‐1 类型‐2 类型‐2 类型‐2 类型‐2 类型‐2 类型‐2 类型‐2 类型‐2 |
d1
d0 d2 d2 d2 d2 d2 d2 d2 d2 |
在表11.3中,针对不同权重列出了通孔v2的最优位置。从这些取值可以看出,仅当分支s2主导树的延迟时,才会发生通孔v2的type‐2移动。当树中各分支的分配权重取值相近时,不会发生type‐2移动,因为根据ITVPA判定,该移动会增加树的互连延迟(即 $x_j^\star = \Delta x_j$)。因此,对于type‐2移动,如果源自某个通孔的汇点权重相似,则该算法不允许对该通孔进行重新定位。
互连树的延迟改善列于表11.2的第6到第9列中。结果与通孔初始放置在允许区间中心(即 $x_i = l_{di}/2$)的情况以及通孔放置在允许区间的下边界(即 $x_i = 0$)的情况进行了比较。延迟改善取决于允许区间的长度。然而,与双端网络相比,这种依赖性较弱。此外,对于相同的允许长度区间,其延迟改善低于点对点网络。这种延迟改善的降低由两个原因造成。
对于互连树中大多数度大于二的层间通孔,在确定每个通孔的移动类型后,这些通孔允许移动的实际区间长度为 $l_{di}/2$,而不是 $l_{di}$(见图11.2)。此外,在ITVPA中,任何对路由树的修改被严格限制在对路由树影响最小的允许区间内。该约束要求为类型2移动增加一个额外的互连段。如果放宽此约束,则无需增加额外的互连段,且互连段的长度可以进一步缩短,从而显著提高速度。保持固定路径限制了算法的效率;然而,只要这些工具为通孔放置提供允许区间,这些算法仍适用于三维集成电路的放置和布线工具。此外,互连布线还可以考虑其他重要的设计目标,例如热效应或布线拥塞。用于多终端网络中通孔放置的这些算法可作为后续后处理步骤应用,而不会显著影响现有工具生成的初始布局。
| 表11.4 单关键汇连接树的优化结果 不同数量的汇点和物理层n | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| 数汇点字的数量 | n | 平均分支长度 (µm) | 平均 最大分支长度 (µm) | ldi (µm) | 延迟改进 (%) | 实例 | |||
| xi⋆=ldi/2 | xi⋆= 0 | ||||||||
| Avg | Max | Avg | Max | ||||||
| 4 | 4 | 341 | 453 | 50 | 2.72 | 8.95 | 3.70 | 14.63 | 5000 |
| 4 | 4 | 1021 | 1363 | 150 | 1.61 | 5.52 | 2.18 | 11.01 | 5000 |
| 4 | 4 | 1368 | 1821 | 200 | 1.36 | 5.49 | 1.92 | 8.59 | 5000 |
| 5 | 4 | 433 | 595 | 50 | 3.09 | 9.37 | 4.55 | 19.44 | 5000 |
| 5 | 4 | 1299 | 1790 | 150 | 1.80 | 5.55 | 2.85 | 13.42 | 5000 |
| 5 | 4 | 1734 | 2391 | 200 | 1.51 | 5.66 | 2.44 | 11.35 | 5000 |
| 5 | 8 | 427 | 612 | 50 | 2.53 | 8.10 | 4.09 | 16.20 | 5000 |
| 5 | 8 | 853 | 1227 | 100 | 1.94 | 7.22 | 2.98 | 12.63 | 5000 |
| 5 | 8 | 1282 | 1845 | 150 | 1.57 | 6.55 | 2.46 | 14.04 | 5000 |
| 5 | 8 | 1711 | 2461 | 200 | 1.33 | 4.81 | 2.25 | 10.44 | 5000 |
| 6 | 8 | 505 | 753 | 50 | 2.88 | 8.90 | 4.39 | 17.8 | 5000 |
| 6 | 8 | 1009 | 1512 | 100 | 2.14 | 6.10 | 3.45 | 15.20 | 5000 |
| 6 | 8 | 1511 | 2265 | 150 | 1.71 | 5.46 | 2.83 | 12.16 | 5000 |
| 6 | 16 | 523 | 779 | 50 | 2.52 | 8.29 | 4.54 | 13.25 | 4963 |
| 6 | 16 | 1045 | 1564 | 100 | 1.91 | 6.69 | 3.10 | 10.53 | 4977 |
| 6 | 16 | 1563 | 2351 | 150 | 1.55 | 5.36 | 2.96 | 12.37 | 4976 |
在表11.4中,列出了单关键分支互连树的放置结果。与通孔初始放置在允许区间的中心(即 $x_i = l_{di}/2$)以及通孔放置在允许区间的下边界(即 $x_i = 0$)的情况相比,这些树的延迟改善情况列于表11.4的第6到第9列。该改进程度低于表11.2中所列的互连树,因为对于非路径通孔,仅可能发生type‐1移动。实际上,对非路径通孔进行type‐2移动只会增加非路径电容,进而增加关键叶节点的延迟。因此,能够被重新定位以减少单关键汇树延迟的通孔数量较少。或者,对于非路径通孔,将通孔放置在允许区间的中心通常可实现最优放置,从而产生较小的延迟改善。
通常,允许区间越大,延迟改善越显著。因此,需要能够为三维电路生成足够大允许区间的高效布局工具。这些区间可以是为层间互连布线预留的可用空间(即空白区域)。对于互连树而言,其延迟改善小于双端网络。这种延迟改善的减少是由于必须将通孔放置在允许区间内,以最小化对局部布线拥塞的影响。如果允许在整个区域内(例如网络的边界框)放置通孔,则可实现更大的延迟降低。然而,分配一个区域用于通孔放置会增加三维电路中的拥塞,因为相同数量的通孔将竞争更稀疏的布线资源。
尽管这些算法的计算时间已显著降低,但如果同时处理多个网络,则可进一步提高速度。虽然这些算法无需重大修改即可支持多网络优化,但一次处理单个网络的方法可能会产生更优的结果,因为最关键的网络会被优先布线。可以使用网络排序算法[26] 来优先处理这些互连,从而显著减少这些网络的延迟。此外,由于层间互连的数量相比层内互连较少[291],因此逐个网络处理这些互连不会显著增加总计算时间。
热问题在三维集成电路中非常重要,如第13章《三维集成电路的热管理策略》所述,其中利用额外的虚拟通孔来控制三维系统中上层的平均和峰值温度。此外,热感知单元布局可改善热分布和散热特性。这两种技术与通孔放置问题相互解耦,而通孔放置是设计流程中较后的步骤。因此,热问题与通孔放置方法没有很强的关联性。
在第13章“三维集成电路的热管理策略”所讨论的技术中,热通孔被放置在模块之间的可用空间内,其密度可以是均匀或非均匀的。或者,该可用空间中的一些热通孔可被替换为连接不同层电路上的信号通孔。在这些区域内,先放置信号通孔再放置热通孔,可以获得较大的允许区间,从而提高该通孔放置技术的有效性。在这种情况下,通孔放置可显著改善物理层的热分布,某些通孔的允许区间可以减小或移除。然而,这种做法是以性能为代价来换取热管理的优化。
11.5 总结
本章介绍了用于层间互连树时序驱动布局的算法。这些算法的主要特点是:
- 存在多种针对层间通孔的移动方式,这些移动需要插入层内通孔或层间通孔。为保持较低的层间通孔密度,排除了需要额外层间通孔的移动。
- 树的汇点处延迟的加权和是被最小化的目标函数。
- 提出了一种两步启发式方法。首先确定每个通孔移动的方向,然后在第二步中通过通孔的放置来最小化延迟。
- 提供了另一种在树内放置层间通孔以最小化关键路径延迟的启发式方法。
- 这两种启发式方法的复杂度均与层间通孔数量呈线性关系。
- 延迟改善程度取决于每个通孔放置的允许区间大小。
34

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



