13 三维集成电路的热管理策略
本章提纲
13.1 通过降低功率密度进行热管理.334
13.1.1 热驱动的布局规划.334
13.1.2 热驱动的放置.344
13.1.3 动态热管理技术.345
13.2 通过增强导热性进行热管理.358
13.2.1 基于温度目标的热通孔规划.360
13.2.2 在温度约束下的热通孔规划.367
13.2.3 多层布线.368
13.2.4 热导线插入.372
13.3 热管理的混合方法.375
13.4 总结.378
在上一章中,回顾了三维(3‐D)系统中的多种热模型。这些模型在热分析过程中被使用,可提供电路的温度图。基于这些信息,可以进一步应用热管理技术,以缓解过高的温度(即 “热点”)以及层内和跨层的温度梯度。由于三维系统中功率密度不断增加,这些与温度相关的问题预计会变得更加显著。此外,热源与散热器之间的距离增大也加剧了这一情况。三维系统体积的减小还导致分配给散热器的面积更小,从而减少了传递到环境的热量 [495]。
热管理方法论大致可分为两大类:(1)控制三维系统体积内功率密度的方法,以及(2)旨在提高三维堆叠热导率的技术。最近也出现了一些同时考虑这两个目标的方法,本章将对此进行讨论。需要注意的是,这种技术分类并非基于实现目标的方法或设计流程的阶段,而是由设计目标驱动的,以确保最终的三维电路具有较低的热风险。而各节中的子章节则是根据实现目标所采用的手段来组织的。因此,那些在整个三维堆叠体积内管理功率密度的方法将在第13.1节中讨论。旨在加速热量传递的策略则如下所述
三维电路中将产生的热量传递到环境的方法在第13.2节中进行了描述。混合方法,例如主动冷却,同时实现两个目标,在第13.3节中进行了讨论。这些概念在第13.4节中进行了总结。
13.1 通过功率密度降低实现热管理
对三维集成系统内峰值功率密度的精确控制是降低三维堆叠峰值温度并减小各物理层内部及层间热梯度的主要手段。此类方法可分为两种类型:一种是在设计过程中应用的技术,用于在多层系统中合理分配功耗 [351,496], ;另一种是在线(或实时)技术,通过调节系统执行的计算任务来随时间改变堆栈内的温度空间分布 [497,498]。这两类技术将在接下来的子章节中进行讨论。
消除三维电路中的热点并降低温度梯度,需要将物理设计技术扩展到将温度作为设计目标之一。已开发出多种针对三维集成电路和系统级封装(SoP)的布局规划、布局和布线技术,这些技术在考虑面积和线长最小化等传统目标的同时,还考虑了在整个系统各层中出现的高温和热梯度问题。强调温度控制可能导致面积上的显著代价——例如,将高功耗模块彼此远离放置——以及由于线长可能显著增加而导致的性能下降。因此,大多数技术会在多个设计目标之间进行权衡,以在满足温度约束的前提下提供良好的性能。这些技术应用于设计流程的多个步骤中。第13.1.1节讨论了热驱动布局规划技术,而第13.1.2节回顾了热驱动布局技术。第13.1.3节讨论了电路运行期间的热管理方法论。
13.1.1 热驱动布局规划
传统的二维电路布局规划技术通常优化一个目标函数,该函数包括电路的总面积和电路模块之间互连的总线长。通常使用将这些目标结合在一起的线性函数作为成本函数;对于三维电路,额外的布局规划要求可能是最小化层间通孔的数量,以降低制造成本和硅面积,如第9章《三维集成电路物理设计技术》中所述。
热感知布局规划中的不同问题也可能导致多种权衡。本节讨论的技术突出了在生成高度紧凑且热安全布局时,不同选择的优缺点。
Atherma一种面向三维集成电路的热驱动布局规划技术,其包含热目标,
$$
\text{cost} = c_1 \cdot \text{wl} + c_2 \cdot \text{area} + c_3 \cdot \text{iv} + c_4 \cdot g(T); \quad (13.1)
$$
其中 $c_1$, $c_2$, $c_3$, 和 $c_4$ 为权重因子,wl、area和iv分别为归一化线长、面积和层间通孔数量[351]。最后一项是表示温度的成本函数,该函数的一个示例是温度的斜坡函数,如下图所示
图13.1 温度的成本函数 [351]。
与热感知无关的布局规划技术一样,布局表示的选择也会影响计算时间。序列对和角块列表表示法已用于三维布局规划,如第9章“三维集成电路的物理设计技术”中所述。除了这些方法之外,还可以通过使用二维矩阵组合来表示三维系统中的模块,这些二维矩阵对应于系统的层,并结合包含位于不同层上的模块连接信息的桶结构(组合桶和二维数组(CBA)),从而实现一种低开销方案[351]。传递闭包图描述了电路模块的层内连接。桶结构可以被设想为施加在三维堆叠上的一组桶。只要模块与某个桶相交,无论该模块位于哪一层,其索引都会被包含在内。应用于双层三维集成电路的2×3×2桶结构如图13.2所示,其中还描绘了桶的索引。为了说明桶索引符号,请考虑下图中所示桶结构的左下角瓦片
图13.2 一个由12个模块组成的双层电路的桶结构示例。(A) 一个双层三维集成电路,(B) 施加在三维集成电路上的2×3×2桶结构,以及 (C) 得到的桶索引。
图13.2C (即 b21)。与该瓦片在第二层相交的模块索引为 d 和 e,第一层的模块索引为 l 和 k。因此,b21 包含 d、e、l 和 k。
模拟退火(SA)用于优化目标函数,如(13.1)中所述,用于三维电路的热布局规划。SA方案通过若干次解扰动逐步收敛至所需的冻结温度。这些扰动包括以下操作之一,其中某些操作是三维集成电路所特有的:
1. 块旋转;
2. 层内块交换;
3. 两个模块位置的层内反转;
4. 块在层内的移动;
5. 两个模块的层间交换;
6. z‐邻域交换;
7. z‐邻域移动
最后三个操作是三维集成电路独有的,而z-邻居交换可视为两个模块层间交换的特例。因此,只有当这两个模块之间的相对水平距离较小时,才交换位于相邻层上的两个模块。此外,z-邻居移动考虑将一个模块移动到三维系统的另一层,同时不显著改变其x-y坐标。这两种操作的示例如图13.3所示。
图13.3 层间移动。(A) 初始布局,(B) 块a和块h之间的z‐邻域交换,以及(C) 块l从第一层到第二层的z‐邻域移动。
此外,每次解发生扰动时,都会重新评估成本函数以衡量新候选解的质量。因此会调用一些计算密集型任务,例如线长和温度计算。为了避免这种耗时的方法,仅对相关模块及其互连的线长进行增量变化评估,该方法应用于第9章,三维集成电路物理设计技术中描述的技术。需要注意的是,热扩散的热分布可能会改变最近移动模块所在区域之外的温度。
因此,每次模块扰动都需要确定三维电路的热分布。然而,这一严格要求可能会增加计算时间,成为与温度相关的物理设计技术的瓶颈。因此,仅在特定操作后或经过指定迭代次数后才调用热分布。这种做法的原因在于,并非所有操作都会显著影响整个系统的温度,而通常只会影响系统的一部分。例如,两个小面积模块的层内移动或单个模块的旋转不太可能显著影响系统的温度,而其他操作(如z‐邻域交换或z‐邻域移动)则可能显著影响各层乃至整个系统的温度。
如第12章 热建模与分析中所述,可以采用不同精度和有效性的热分析技术来确定三维电路的温度。为了确定不同的热分析方法对热布局规划过程总时间的影响,已将具有不同精度和计算时间的热模型与该布局规划技术结合应用于MCNC基准测试。这些结果在表13.1 中报告,其中考虑了一种紧凑热建模方法。这些热模型在计算运行时间和温度降低之间存在显著的权衡。采用热驱动布局规划时,利用电阻网格对三维电路进行热建模,实现了56%的温度降低 [351]。然而,与传统布局规划算法相比,计算时间大约增加了一个数量级。或者,如果使用闭式表达式作为三维电路的热模型,则温度仅降低40%。然而,在这种情况下,计算时间大约增加了一倍。其他设计特性(如面积和线长)在两种模型之间没有显著变化。
由于模块操作允许层间移动,探索解空间成为一项具有挑战性的任务[352]。为了减少计算时间,布局规划可以在两个独立阶段中进行。在第一步中,将电路模块分配到三维系统的各层,以最小化面积和线长,在此第一阶段有效地忽略电路的热行为。然而,这一阶段可能导致各层之间的功率密度严重不平衡。因此,有必要进行第二步来限制这种不平衡。实现这种平衡过程的目标函数为[496]
$$
\text{成本} = c_5 \cdot U_{\text{wl}} + c_6 \cdot U_{\text{面积}} + c_7 \cdot U_{\text{dev}(F)} + c_8 \cdot P + c_9 \cdot \text{TOP}; \quad (13.2)
$$
| 表13.1 通过热驱动布局规划实现的温度降低 [351] | ||||||
|---|---|---|---|---|---|---|
| 电路 | 无热目标的CBA | CBA‐T | CBA‐T‐快速 | |||
| T (°C) | 运行时间(秒) | T (°C) | 运行时间(秒) | T (°C) | 运行时间(秒) | |
| ami33 | 471 | 23 | 160 | 466 | 204 | 56 |
| ami49 | 259 | 86 | 151 | 521 | 196 | 144 |
| n100 | 391 | 313 | 158 | 4322 | 222 | 446 |
| n200 | 323 | 1994 | 156 | 6843 | 242 | 4474 |
| n300 | 373 | 3480 | 167 | 17,484 | 208 | 4953 |
| Avg. | 1 | 1 | 0.44 | 9.71 | 0.6 | 1.82 |
其中 $c_5, c_6, c_7, c_8,$ 和 $c_9$ 表示权重因子。除了前两项包含电路的面积和线长外,剩余项还考虑了三维电路的其他可能设计目标。第三项基于[350]中描述的偏差维度方法,最小化堆栈内各层尺寸之间可能存在的不平衡。具有显著不同面积或尺寸严重不均的层可能导致每层上出现大量未占用的硅面积。
公式(13.2)中的最后两项考虑了三维堆叠中的整体功率密度。第四项考虑了层内模块的功率密度,如同在二维电路中一样。注意,温度并未直接包含在成本函数中,而是通过管理布局模块的功率密度隐式地体现。表征功率密度的成本函数基于一个与图13.1中所示温度成本函数形状相似的函数。不同层上模块之间的热耦合由最后一项考虑,并且是
$$
\text{TOP} = \sum_i \left(P_i + \sum_j P_{ij}\right); \quad (13.3)
$$
其中 $P_i$ 是模块 $i$ 的功率密度,而 $P_{ij}$ 是由于来自不同层的模块 $i$ 与模块 $j$ 重叠所产生的功率密度。求和算子将位于除包含模块 $j$ 所在层之外的所有其他层上的模块贡献相加。如果采用简化热模型,则如(13.3)中的解析表达式可描述模块之间的热耦合,从而补偿由粗略热模型引起的部分精度损失。
这种两步布局技术已应用于多个Alpha微处理器[499]。结果表明,与没有热目标的三维布局相比,最高温度平均改善了6%[496]。此外,将二维布局与三维布局进行比较,面积和线长分别实现了32%和50%的改善[496]。然而,峰值温度增加了18%,这表明了热问题在三维集成电路中的重要性。
与单步布局方法相比,温度降低较小。或者,对于两步方法而言,解空间显著减小,从而降低了计算时间。然而,该方法未能捕捉到电路模块的层内和层间分配之间的相互依赖性,可能导致较差的解,相较于单步布局方法。
SA方法也已用于SoP中的布局模块(见第2.2节),这是具有粗粒度的3‐D集成的另一种变体。一个类似于(13.2)的成本函数,除了面积和线长外,还包括去耦电容和温度。SOP每一层中的模块由序列对表示,以捕捉SOP的拓扑特性。为了避免在SA迭代期间进行SOP热分析所带来的计算开销,采用了电路热分布的一种近似方法。
采用有限差分法生成系统级封装(SoP)初始布局的温度分布。由(12.3)给出的有限差分近似可表示为 $R_P = T$,其中 $R$ 为热阻矩阵。该热阻矩阵的元素包含三维网格中两个节点之间的热阻(或电导),而温度 $T$ 和功率向量 $P$ 分别包含每个节点处的温度和功耗。对单元布局的任何修改都会导致这些矩阵全部发生变化。为了确定由此引起的温度变化
温度,热阻被更新并与功率密度向量相乘。然而,这种方法导致较长的计算时间。因此,假设SoP中的模块表现出由硅体积主导的相似热导率,尽管任何模块移动都会引起矩阵的一些变化,热阻矩阵不会被更新。
仅考虑由于模块移动引起的功率密度的局部变化。因此,对于每次模块布局的修改,功率向量ΔP的变化通过R进行缩放,并计算温度向量的变化。在三维系统中模块最新一次移动后,获得新的温度向量。应用这种考虑热效应的系统级封装布局规划技术的结果列于表13.2 中,其中还提供了基于传统的面积和线长目标的布局结果以供比较[397]。
| 表13.2 四层三维集成电路的热驱动布局规划 [397] | ||||||||
|---|---|---|---|---|---|---|---|---|
| 电路 | 面积/线长驱动 (mm², m, nF, °C) | 热驱动 (mm², m, nF, °C) | ||||||
| Area | Wire | 去封装 | Temp | Area | Wire | 去封装 | Temp | |
| n50 | 221 | 26.6 | 18.0 | 87.2 | 377 | 84.1 | 29.7 | 68.9 |
| n100 | 315 | 66.6 | 78.2 | 86.5 | 493 | 24.5 | 93.6 | 69.8 |
| n200 | 560 | 17.1 | 226.3 | 96.4 | 1077 | 38.8 | 243.6 | 76.2 |
| gt100 | 846 | 28.6 | 393.8 | 100.1 | 1310 | 20.4 | 405.3 | 86.6 |
| gt300 | 191 | 13.2 | 60.8 | 71.0 | 474 | 28.0 | 92.7 | 52.3 |
| gt400 | 238 | 19.6 | 342.5 | 93.2 | 528 | 37.0 | 392.1 | 72.1 |
| gt500 | 270 | 28.1 | 493.1 | 114.0 | 362 | 38.5 | 512.0 | 89.2 |
| gt600 | 316 | 30.2 | 645.3 | 99.7 | 541 | 76.5 | 684.4 | 80.3 |
| 比率 | 1.00 | 1.00 | 1.00 | 1.00 | 1.75 | 1.51 | 1.08 | 0.80 |
尽管模拟退火(SA)是大多数三维集成电路布局规划和布局技术中占主导地位的优化方案,但基于力导向方法的热感知布局规划器也得到了研究。采用该方法的动机源于SA方法在可扩展性方面的不足。然而,力导向布局规划器的解析特性将布局规划问题转化为连续三维空间中的问题。因此,需要在连续体积中的布局与离散层内无重叠的分配(即合法化)之间进行转换,这可能导致非最优布局。此外,由于模块级布局规划包含不同尺寸的组件,相较于标准单元级的布局规划,需要采用不同的求解过程。
与第9章,三维集成电路物理设计技术中讨论的传统受力导向方法相比,由于层分配过程中可能出现的合法化问题,该过程包含更多阶段。该方法的不同阶段如图13.4所示,分别为: (1) 温度感知横向扩展,(2) 连续全局优化,以及 (3) 三维堆叠内各层之间的优化与层分配。
图13.4 基于力导向方法的三阶段布局规划过程 [500]。
假设布局是一组模块{m₁, m₂,…, mₙ},该方法最小化 (1) 电路的峰值温度Tmax,(2) 线长,以及 (3) 电路面积,即三维堆叠内各层的最大宽度与高度的乘积。每个模块mi关联有
尺寸为 Wi 和 Hi,面积 Ai=Wi × Hi,宽高比 Hi/Wi,功率密度 Pmi。模块的高度是层厚度的整数倍,所有物理层的厚度均假设为 D,且假设 L 层构成三维堆叠。有效布局是指在三维堆叠内对非重叠模块进行分配,每个模块的位置由 (xi, yi, li) 表示,表示模块左下角的水平坐标及第 li 层允许。模块移动和旋转的连续三维空间由均匀立方体单元组成。这些单元的高度设置为 D/2,其他两个尺寸为最小模块尺寸的一半。为了确定模块间连接的长度,采用半周长线长(HPWL)模型。基于此结构,有两种不同的力作用在模块上,其中填充力Ff旨在消除重叠,而热力Fth则降低最终的峰值温度。每个单元的填充力通过考虑该单元内模块的密度来形成。
该密度根据覆盖每个单元的所有模块的总和来确定。在确定每个单元的所有力之后,施加到每个模块上的填充力等于该模块所占据的所有单元相关力的总和。另一方面,热力基于三维空间内的温度梯度。获取温度梯度需要对系统进行热分析,这在[500]中通过空间自适应热分析包[501]实现。
这些力的组合即为在每个物理方向上施加到各模块上的总力。类似于式(9.14),需求解一个方程组,其中施加在模块x方向上的总力为
$$
C_x = a_x [\beta_x F_{fx} + (1 - \beta_x) F_{thx}]; \quad (13.4)
$$
其中ax和 βx是权重参数。参数ax控制线长、面积和热目标的重要性。等效地,βx表征每个方向上两种力之间的相对重要性。所有这些参数均通过经验确定。
在确定了每个模块上的受力后,布局规划过程首先是在xy平面内横向展开模块,而不是在整个三维空间中展开。这种展开方式与传统的受力导向方法不同,在传统方法中,模块会向布局中心坍缩并产生大量重叠(参见第9章,三维集成电路物理设计技术)。由于这种情况会产生较强的填充力,若允许模块在三维空间中分散,则可能导致一些大模块移动到三维空间的边界处,例如靠近散热器的层附近。这种做法可能导致初始布局较差,并出现热点问题。
相比之下,最初仅在xy平面内展开模块可以避免这一情况,同时还能减小强烈的填充力。此外,这种初始的横向展开能够更均匀地分布热密度,并为互连提供一个初步的分布。
第二阶段根据填充力和热力在系统体积内进行模块的全局布局。此步骤中出现的一个问题是确定热力,这需要对电路进行热分析。由于执行此任务的热分析工具基于分层结构[501],,因此将连续布局临时映射到离散空间。生成每一层的温度图,热力确保了在连续空间中的全局布局能够继续进行。全局布局不断迭代,直到模块之间的重叠减少到5%至10%。
一种实现这种临时层映射的方法可以随机地进行,其目标是将模块的功率密度分配到特定层,以对系统进行热分析[500]。考虑到在全局布局的某次迭代过程中,坐标为(xi, yi, zi)的模块mi的中心位于层q与层q−1之间,该模块将以相应的概率被放置在层q或层q−1中
$$
P(mi, q) = \frac{z_i + \frac{1}{2}D - Z_{q-1}}{D}; \quad (13.5)
$$
$$
P(mi, q-1) = \frac{Z_q - \frac{1}{2}D + z_i}{D}; \quad (13.6)
$$
因此,模块 mi 的功率密度被分配到层 q 或 q−1 的概率分别为
$$
MPD(mi, q) = PDi \times P(mi, q); \quad (13.7)
$$
$$
MPD(mi, q-1) = PDi \times P(mi, q-1); \quad (13.8)
$$
在连续三维空间中生成布局后,进行层分配。然而,如果该任务作为后处理步骤执行,则可能产生较差结果。相反,如图13.4所示,引入了第三阶段,在2.5维域中将层分配与布局规划相结合。如图13.5 所示的连续布局中,模块2在第一或第二层的层分配会导致模块1和3产生不同程度的重叠。这种重叠指导力导向方法结合层分配,以确保前一阶段生成的全局布局不会显著退化。
图13.5 从连续三维空间过渡到离散层。模块2被分配到下层或上层,从而产生不同的重叠。
该方法减少了层分配过程中可能出现的显著不匹配。尽管这些不匹配通常在后处理步骤中得以解决,但由于模块形状和尺寸的异质性,可能导致第二阶段产生的最优布局出现显著退化。因此,通过将层分配与力导向方法相结合,可以避免这些破坏性的变化。
该技术的最后一步是消除模块之间任何残留的微小重叠,其中旋转块已被证明比在每层内移动块能获得更好的结果。除了捕获模块的方向[502]外,还记录了模块之间的拓扑关系。
尽管该技术不基于固定轮廓,但在合法化过程中假设了一个边界,以检测某一层面积的增加,而这种增加可能导致不良的面积不平衡。这些违规被视为额外的重叠。通过进一步的移动和旋转操作来消除这些重叠。
该力导向方法已与采用CBA的基于模拟退火的方法进行了比较。一些结果列于表13.3 和 13.4中。在表13.3中,两种方法在未考虑热问题的情况下进行了对比。结果表明,力导向方法在面积和硅通孔(TSVs)数量方面产生的结果与CBA相当,但在线长方面有所减少。更重要的是,计算时间减少了31%[500]。如果在布局规划过程中加入热目标,则力导向方法在所有目标上表现更优,且计算时间的减少幅度大于表13.4中报告的结果。然而需要注意的是,如果在热分析过程中考虑功耗与温度之间的依赖关系,则时间上的节省显著降低。
| 表13.3 面积和线长优化的比较[500] | ||||||||
|---|---|---|---|---|---|---|---|---|
| 电路 | CBA | 三维可扩展温度感知 物理设计(STAF)(无温度) | ||||||
| Area (mm²) | HPWL (mm) | # of TSVs | Time (s) | Area (mm²) | HPWL (mm) | # of TSVs | Time (s) | |
| ami3 | 35.30 | 22.5 | 93 | 23 | 37.9 | 22.0 | 122 | 52 |
| ami49 | 1490.00 | 446.8 | 179 | 86 | 1349.1 | 437.5 | 227 | 57 |
| n100 | 5.29 | 100.5 | 955 | 313 | 5.9 | 91.3 | 828 | 68 |
| n200 | 5.77 | 210.3 | 2093 | 1994 | 5.9 | 168.6 | 1729 | 397 |
| n300 | 8.90 | 315.0 | 2326 | 3480 | 9.7 | 237.9 | 1554 | 392 |
| 相对于CBA的合计 | 1 | 4% | 212% | 21% | 231% |
| 表13.4 温度优化比较 [500] | ||||||||
|---|---|---|---|---|---|---|---|---|
| 电路 | CBA | 三维STAF | ||||||
| Area (mm²) | HPWL (mm) | # of TSVs | 温度 (°C) | Time (s) | Area (mm²) | HPWL (mm) | # of TSVs | |
| ami3 | 43.2 | 23.9 | 119 | 212.4 | 486 | 41.5 | 24.2 | 116 |
| ami49 | 1672.6 | 516.4 | 251 | 225.1 | 620 | 1539.4 | 457.3 | 208 |
| n100 | 6.6 | 122.9 | 1145 | 172.7 | 4535 | 6.6 | 91.5 | 753 |
| n200 | 6.6 | 203.7 | 2217 | 174.7 | 6724 | 6.2 | 167.8 | 1356 |
| n300 | 10.4 | 324.9 | 2563 | 190.8 | 18475 | 9.3 | 236.7 | 2173 |
| 相对于CBA的合计 | 26% | 216% | 212% | 26 | 275% |
除了解析技术外,还开发了一些不太传统的三维电路布局方法。这些方法包括遗传算法,例如,对包含片上网络(NoC)架构的三维系统进行热感知映射[503]。将三维集成与NoC相结合有望进一步提升互连受限的集成电路的性能(这两种设计范式结合所带来的机遇在第20章,三维电路架构中讨论)。
考虑图13.6所示的三维片上网络图13.6。目标是将特定应用的任务分配给各层的处理单元(PEs),以确保系统温度和/或处理单元之间的通信量最小化。结合该目标的函数表征了候选染色体(即候选映射)的适应度,其表达式为
$$
S = \frac{1}{a_1 \log(\max \text{temp})} + \frac{1}{\log(\text{commcost})}; \quad (13.9)
$$
与传统的遗传算法一样,首先生成初始种群 [504]。通过交叉和变异操作生成染色体,这些染色体根据适应度存活到下一代
图13.6 将任务图映射到三维片上网络中的物理处理单元 [503]
相对染色体适应度。在若干次迭代后,或当适应度无法进一步提高时,选择具有最高适应度的布局。
13.1.2 热驱动放置
通过增加热目标,布局技术也可以得到改进。在单元布局中使用的力导向方法(如[371]中所述,并在第9.3.1节中讨论)已被扩展,以在三维系统中标准单元的布局过程[505]中引入热目标。在此方法中,对呈现高温的单元(即“热点模块”)施加排斥力,以确保高温单元之间被放置得更远。所施加的力包括热力和重叠力。由于目标是降低温度,因此将热力设为热梯度的负值。该设定使模块远离高温区域。
确定这些梯度,如前一节所述,是任何感知温度技术的关键步骤。另一种获得三维电路温度的方法是有限元方法[505]。如第12.3节所述,三维堆叠被离散化为由单元胞组成的网格。通过沿不同方向对温度向量进行微分,来确定某一单元的点或节点的温度梯度。
$$
g = \left( \frac{\partial T}{\partial x}, \frac{\partial T}{\partial y}, \frac{\partial T}{\partial z} \right)^T; \quad (13.10)
$$
利用热电对偶性,电路分析中的改进的节点分析法[473],(其中每个电阻对导纳矩阵即矩阵模板有贡献)被用于构建每个单元的单元刚度矩阵。这些单元矩阵被组合成整个系统的全局刚度矩阵,记为Kglobal。该矩阵包含在一个方程组中,用于确定表征整个三维电路的节点温度。所得表达式为
$$
K_{\text{global}} T = P; \quad (13.11)
$$
其中P是网格节点的功耗向量。为了确定该向量,将网格中每个元件耗散的功率分配给最近的节点。通过求解(13.11),在力导向算法的每次迭代过程中确定每个节点的温度。热力可根据网格节点间的热梯度确定,需要求解以下表达式,
$$
C_i = f_i, \quad \forall i \in {x, y, z}; \quad (13.12)
$$
其中fi是x、y和z方向的力向量。矩阵C描述了两个节点之间连接的成本,如[371]中所定义。
在构建刚度矩阵后,生成电路模块的初始随机布局。基于该布局计算初始力,从而允许迭代确定模块的布局。只要表现出高于某一阈值的改善,该递归过程就会持续进行。该过程包括以下步骤 [505]:
1. 确定新布局产生的功率向量;
2. 计算三维堆叠的温度分布;
3. 评估热力和重叠力的新值;
4. 更新排斥力矩阵;
5. 生成新的布局。
在算法收敛到最终布局后,进行一个后处理步骤。在此步骤中,电路模块被放置在系统的各层内且不发生重叠。如果某一层已满,则原本计划放置在该层的剩余单元将被放置到相邻的层上。在y方向上也进行类似的过程,以确保电路模块对齐成行。采用分治法来避免每行内的任何重叠。最后在x方向上的排序步骤包含一个后处理流程,经过该流程后,单元之间不应再存在重叠。
该受力导向布局技术在MCNC [396]和IBM‐PLACE基准测试[506],上的评估结果显示,平均温度降低了1.3%,最高温度降低了12%,平均温度梯度降低了17%。然而,总线长增加了5.5%。该技术实现了每层的均匀温度分布,从而显著降低了温度梯度以及最高温度。然而,三维集成电路的整体平均温度仅略有下降。因此,该技术主要致力于缓解多层系统中的热点问题。
在本节介绍的所有技术中,热量主要通过上层的电源和信号线以及上层的薄硅基板从上层传递到底层。除了将主要热源分散到整个三维堆叠中之外,没有其他手段能够显著减小热梯度。此外,这些技术通常假设每个模块、单元或单元
的功率密度在时间上是固定的。然而,热管理也可应用于实时场景,通过监控和调整功率密度,防止热点出现,从而影响电路性能并导致老化,降低系统的可靠性。这些方法将在下一节中进行描述。
13.1.3 动态热管理技术
电路运行期间的热管理技术——通常用于处理器——由于功率密度不断增加,自2000年左右以来受到了广泛关注。多核架构的出现进一步推动了对这些技术的兴趣,因为处理器内的每个核心可被单独管理,从而为热管理这些复杂的计算系统提供了多种途径。尽管动态功耗管理技术已经存在[507],,但单纯降低功耗并不足够,原因在于电路之间的热耦合以及系统内空间变化的热导率。降低功耗可以减少集成系统的峰值或平均温度,但如果未采用适当的热管理技术,热梯度可能反而更高。电路某些区域出现热点(s)可归因于功耗降低技术无法消除这些热梯度,即使电路的平均温度仍维持在热限制范围内。
动态热管理(DTM)方法可应用于软件和硬件,通常结合多种技术使用。在硬件方面,常用的 techniques 包括动态频率电压调节(DVFS)和时钟门控(或节流),而在软件方面,通常采用工作负载(或线程)迁移来降低核心温度[508]。其所作用的粒度
热管理策略的应用方式也可能有所不同,特别是在多核处理器中。例如,可以为整个处理器选择单一的电压/频率对(全局策略),或者每个核心可根据其温度具有独立的电压/频率(分布式策略)。
这些选择之间存在多种权衡,从而形成了相对广泛的设计空间用于动态热管理。软件方法(由操作系统驱动)通常是粗粒度的方法,由于硬件技术能够更快地响应以缓解陡峭的瞬态热负载,因此软件方法的效果通常不如硬件技术。然而,软件方法可以通过在系统的不同部分之间调度任务来相对容易地实现。在多核系统中,线程根据每个核心的温度在处理器之间交换或分配给不同的处理器,这些变化通常发生在数十毫秒级别[509,510]。一些技术使用 10ms的时间间隔进行作业调度,因为Linux内核也使用该时间间隔进行定时器中断[509]。
DVFS机制的实现更为复杂。如果采用分布式(每个核心)DVFS方案,这种复杂性会进一步增加。然而,尽管复杂性更高,这些技术仍在现代处理器中被广泛使用,以将温度维持在指定限制范围内[511,512]。
在运行期间确定电路的温度是动态热管理的另一个重要方面,因为响应缓慢可能导致这些技术效率低下或过于严格。目前采用多种方法来确定电路温度,包括温度传感器[512]以及表征核心的性能计数器,例如寄存器文件访问次数、周期计数和执行的指令数量[508]。温度传感器提供的信息可直接使用,但其主要问题在于对温度变化的响应时间,需认识到集成系统内的热常数通常在毫秒量级。温度传感器是一种可靠的测量电路温度手段,可用于指导热管理策略。相比之下,性能计数器的信息与温度关联较弱,尽管在文献中已被广泛研究,但这些组件的输出仅为一种代理指标,应谨慎使用[509]。
也有较简单的动态热管理策略,其中在线工作负载调度基于目标系统在离线情况下针对预期工作负载组合[513]所获得的热分布。该策略降低了热管理的开销,但效率可能低于完全在线的方法。这些方法在工作负载组合与系统离线能耗分析时使用的工作负载不同的场景下尤为有效。
已发表多项采用动态热管理方法(包括软件和硬件方面)的研究 [497,508, 510–512]。类似地,已有许多工作关注在二维电路内温度传感器的设计与分配 [514]。尽管这些技术也可应用于三维电路,但其效果可能不尽相同。效率的下降可归因于相邻电路之间的强热耦合。由于电路之间的物理距离显著减小,且热量主要沿垂直方向传递,这种耦合在垂直方向上更加明显。为三维系统开发新型热管理策略的其他原因还包括:存储器层(例如动态随机存取存储器)堆叠在处理器层之上的情况 [515]。尽管处理器层靠近散热器,但仍需特别注意确保处理器运行不会导致温度超过动态随机存取存储器严格的热限制 [516]。由于刷新频率更高,可能导致整体功耗增加
存储的数据。本节其余部分回顾了三维系统热管理技术的发展,重点介绍多层处理器架构,或处理器层与存储器层垂直集成的组合。
13.1.3.1 单内存层三维芯片多处理器的动态热管理
尽管自动控制理论已被用于指导热管理方面的工作负载调度[508],,但大多数技术仍基于启发式方法,因其具有较低的复杂度特性。文献[498]中提出了一种面向三维处理器的操作系统级调度算法。该技术的核心思想是在调度过程中考虑垂直方向上的强热耦合,以平衡整个堆栈中的温度分布,从而减小温度梯度,并降低存在热点的核心的频率。热点的出现需要采取激进的热管理措施,这会降低系统性能。考虑一个三维多核系统,假设无论采用何种布局(该布局也可能由热因素驱动,从而导致高功耗核心与低功耗缓存进行堆叠),核心的堆叠可能是不可避免的。在此情况下,通过仔细的调度来降低系统温度,其中调度过程需考虑整个堆栈而非单个层。因此,将任务分配给位于靠近散热器层的核心时,不应仅依据该特定层的温度(其温度低于其他层),而应更多地考虑远离散热器层的核心的温度。
由于垂直热耦合,不是将单个任务分配给一个核心,而是考虑一整堆核心(例如,将整个三维系统划分为若干个核心柱),其中每个处理器都分配一个任务。使用“超级核心”和“超级任务”这两个术语来描述该启发式方法的主要特征。假设一个具有n层和每层m个核心的三维系统,需要对n×m个核心上的任务进行调度。根据此表示法,一个超级核心由n个核心组成,每个核心分配一个任务,以实现温度的均衡分布。该分配过程形成功耗相近的超级任务,并将这些超级任务分配给各个超级核心。
为了在超级核心之间平衡功耗,对所有(n×m)个任务的功耗进行排序。每个任务及其相关功耗被分配到可用的m个桶(超级任务)中。该分配过程通过迭代进行,按降序将功耗值插入当前总功耗最小的桶中。此过程持续进行,直到每个任务都被分配到一个桶中。图13.7 展示了一个示例分配,其中针对包含每层四个核心的双层三维系统,展示了任务内的功耗排序以及将任务分配到四个桶的结果。由于该启发式方法的主要操作是排序,因此其时间复杂度为O(mn log(mn))[498]。
除了任务调度外,假设每个超级核心内采用动态电压频率调节,尽管对单个核心进行动态电压频率调节不一定简单。因此,如果某个核心超过热阈值,动态电压频率调节将针对功耗最高的核心(该核心可能是也可能不是超级核心内过热的核心)调整其电压供应。目标是惩罚功耗最高的任务,因为该任务可能导致垂直相邻核心过热。动态电压频率调节仅应用于超级核心内的一个核心,这限制了该技术的效益。
作业调度应用于应用程序的基准测试套件SPEC2000[517], ,其中多个工作负载被组合以形成具有不同功耗特征的基准测试序列
热负载。例如,对 crafty 和 mcf 工作负载进行热分析会产生一种冷热(HC)场景。这些工作负载应用于具有两层、每层四个核心的三维多核架构,其中每个核心采用运行频率为 3GHz 的 P4 Northwood 架构。
为了评估该启发式方法的有效性,还考虑了其他任务分配方式。作为比较的基线,采用基于Linux 2.6调度器[509]的随机任务到核心分配。该调度器的工作方式与Linux类似,但调度间隔略小,为8毫秒。同时使用循环调度器进行比较。最后,还评估了另一种调度方法,其目标是通过将高功耗任务分配给较冷的核心来平衡温度,但不考虑垂直相邻核心的温度,以用于对比目的。
在目标工作负载场景下,这些任务调度方法在峰值温度方面的比较表明,与随机分配相比,启发式分配可将峰值温度降低多达 24°C。其他技术同样降低了峰值温度。在采用动态电压频率调节时,任务调度中的热耦合有助于消除大量热问题。然而,动态电压频率调节通常会抵消作业调度的优势,因为动态电压频率调节需要更大的性能开销。
与[498],中描述的方法不同,后者避免频繁使用动态电压频率调节,而其他技术则考虑结合软硬件技术。这些技术的目标是
图13.7 温度平衡启发式方法,其中 (A) 任务按功耗降序排列并分配给超级任务,(B) 每个核心的温度,以及 (C) 分配给超级核心的超级任务 [498]。
方法论的目标是在各种技术的有效性与开销之间取得平衡,而不偏重于某一种技术。因此,针对三维芯片多处理器(CMP)开发了一种热管理框架,该框架结合应用时钟门控、动态电压频率调节(DVFS)和工作负载调度,以满足热限制,同时不降低性能[497]。这一目标通过分布式(或局部)和全局(或集中式)两种方式应用这些技术来实现。分布式方法在实施热管理策略时具有更高的灵活性,因为仅允许在每个超级核心内的某个核心上应用DVFS是一种受限的方法。该框架的结构和运行将在下一小节中讨论。
13.1.3.2 三维芯片多处理器的软件/硬件(SW/HW)热管理框架
开发该框架需要一套用于架构、功耗和热建模的工具。这些工具包括M5架构模拟器[518],基于Wattch的EV6模型[519],CACTI[520],文中所述方法[521]用于核心、缓存及漏电功耗的功耗建模,以及基于[522]的系统热分析工具。无论具体使用何种工具,架构模拟器、功耗模型和/或模拟器以及热分析工具都是设计和评估多核处理器(CMP)或多处理器片上系统(MPSoC)系统的动态热管理策略所必需的。该框架基于特定指导原则,这些原则基于双层 CMP的一阶热分析,如图13.8所示。在此示例中,采用电‐热对偶性来分析CMP的热行为,其中每个核心在等效热模型中由单个节点表示。假设堆栈内仅存在一条简单的热量传递路径。
从表面上看,上层核心(例如核心I)的热导率低于下层核心的热导率,这意味着核心I的温度高于核心J和K。此外,同层核心之间(核心J和K)的热耦合显著较低,意味着其冷却效率相近。这些观察结果表明,工作负载调度应考虑各核心不同的冷却效率,以及工作负载对系统内其他核心的影响。
为了将此分析扩展到具有 m 个核心的多核处理器(CMP),需要确定影响核心热行为的特定数据。因此,每个核心的冷却效率决定了工作负载调度。该调度从稳态热传导表达式中提取,
图13.8 一阶热模型,其中每个核心通过一个具有功耗P i 、比热C i 以及层间和层内热阻[497]的节点进行热建模。
T = PRth,其中矩阵 Rth 包含热模型中连接节点(即核心)的热阻。将核心 i 的温度记为 Ti,该温度为
$$
T_i = \sum_{j=0}^{m-1} r_{\text{th}i,j} \cdot p_j; \quad (13.13)
$$
其中,rthi,j 是核心 i 和 j 之间的热阻,pj 是核心 j 消耗的功率。矩阵 Rth 的第 i 行、第 j 列描述了各核心对核心 i 处温度的影响。此外,考虑到动态功耗与电压之间的二次关系,以及工作频率与电压之间大致呈线性依赖关系,功耗可表示为 pj = si,j fj³,其中 fj 是核心 j 的工作频率。项 si,j 是核心的开关活动与切换电容的乘积,该乘积与在核心 j 上执行的任务的每周期指令数(IPC)成正比。引入品质因数——性能每单位的热影响(TIP),用于制定 3D‐CMP 热控制指南。
$$
\text{TIP}
{f
{i,j}} = \frac{d T_i}{d f_j}; \quad (13.14)
$$
$$
\text{TIPIPC}_{i,j} = \frac{d T_i}{d \text{IPC}_j}; \quad (13.15)
$$
表示核心 j 对核心 i 的温度的影响,其中通过动态电压频率调节将频率 fi (和电压)以及工作负载 IPCj 分配给核心 j。
多核处理器(CMP)的鲁棒热管理旨在提高性能,同时满足不同核心之间的特定热约束。描述多核处理器(CMP)性能的一个度量指标是多核处理器每秒执行的总指令数。
$$
\text{CMPIPS} = \sum_{i=0}^{m-1} \text{IPC}_i \cdot f_i; \quad (13.16)
$$
决定多核处理器(CMP)的热约束的是每个核心的热限制,假设所有核心的热限制相等。因此,要求是 $\sum_{i=0}^{m-1} T_i \leq T_{\text{max}}$。满足此约束需要使所有核心的性能单位热影响相等。这一决策导致为具有不同冷却效率的核心分配不同的频率,并执行具有不同IPC值的任务。该方法产生了两条近似的设计准则。对于层间处理器,应根据核心的冷却效率来分配频率和IPC值,如公式(13.13)至(13.16)所示,其中频率和IPC值通常各不相同。该准则与[498],中描述的启发式方法一致,其中将工作负载分配给核心时需同时考虑温度以及堆栈中核心的位置。向环境散热的能力受分配工作负载期间耗散功率的影响。另外,对于位于同一层内的核心,根据图 13.8的热模型,其冷却效率大致相同,因此分配相同的频率以及具有相似IPC值的工作负载。
这些准则构成了在操作系统级别开发的热管理策略的基础,其中温度由热传感器获取。性能计数器收集信息用于工作负载监控和估计IPC。利用这些信息和
根据上述指南,该框架应用分布式工作负载迁移和实时热控制,在多核处理器芯片之间全局调整功耗和热特性在。全局多核处理器芯片(global)层面,采用混合在线/离线技术为每个核心确定功耗和热预算。针对每个工作负载确定最优电压/频率对。计算每个工作负载的温度,并更新功耗以考虑其对温度的依赖性。选择电压/频率(V/F)对以满足热限制。经过多次迭代后,温度和温度相关的功耗趋于收敛。最终得到的V/F对被存储在查找表中。该表与操作系统集成,并周期性地被调用。
热平衡也被一种分布式策略所利用,该策略监控每个核心的IPC值,并在需要时进行调整以确保热安全。这种调整主要发生在垂直相邻的核心之间,因为此处观察到更大的热异质性。工作负载迁移通过交换任务,将具有高IPC值的工作负载分配给冷却效率更高的核心。这种工作负载迁移每20毫秒进行一次。然而,如果热瞬态发生得更频繁,则会考虑其他热控制措施,例如动态电压频率调节和时钟门控。这些技术在本地应用,从而相较于集中式方法,能够更好地控制堆栈中的热梯度。此外,由于时钟门控对性能影响较大,因此动态电压频率调节是主要方法,而时钟门控仅用于热紧急情况。
该框架应用于一个由三个物理层组成的三维CMP。其中两层各包含四个Alpha21264核心(每层共八个核心),采用90纳米CMOS节点,第三层包含二级缓存。将该框架与针对此三维CMP的严格分布式热策略[508]进行比较,模拟工作负载基于SPEC2000[517]和媒体基准测试套件中的应用程序,结果显示平均改善达30%。这种情况是由于垂直相邻的核心之间存在强热耦合。本地控制无法捕捉这种耦合,因为工作负载和电压/频率组合是针对该核心单独选择的。然而,在全局层面采用功耗和热预算管理可以克服这一限制,从而提高多核处理器(CMP)的整体吞吐量。
除了冷却效率外,分析工作负载的特性还可以在相同的热限制[523]下提高多核处理器(CMP)的性能。为了评估这些改善,根据工作负载的内存需求将其分类为计算密集型或内存密集型。分析核心与堆栈内内存之间的内存传输可提供有用信息,这些信息可用于热管理策略中。考虑到指令以时钟频率fCPU执行,而由于L2缓存未命中导致的片外内存传输以时钟频率foff-chip 进行,任务执行时间为[523],
$$
t_{\text{ex}}(f_{\text{CPU}}) = \frac{w_{\text{on-chip}}}{f_{\text{CPU}}} + \frac{w_{\text{off-chip}}}{f_{\text{off-chip}}}; \quad (13.17)
$$
其中,won-chip 表示在没有缓存未命中的情况下执行CPU指令所需的时钟周期数,woff-chip 表示核心停顿时进行外部传输所需的时钟周期数。这个简单的表达式描述了工作负载是计算密集型(例如,won-chip 较高)还是内存密集型(例如,woff-chip 较高)。这两个量都取决于应用程序的类型以及核心执行一个应用程序所需的时间。片外时钟频率也被视为常数,而片外内存传输的时钟周期则被建模为缓存未命中次数的函数。woff-chip = (aNmiss + b) × fCPU表示由 Nmiss[524]表示的L2缓存未命中次数。系数a
a 和 b 是固定的,且取决于目标架构,而失效率则由性能监控器(如PAPI [525])确定。
收集这些信息可以量化由于核心时钟频率提高(这会影响温度)而导致执行工作负载所需的的速度提升。每个核心和工作负载在两种不同频率下的速度提升为
$$
SU = \frac{t_{\text{ex}}(f_{\text{new CPU}})}{t_{\text{ex}}(f_{\text{ref CPU}})}; \quad (13.18)
$$
这个简单的度量指标计算了工作负载在不同核心时钟频率下的每秒指令数(IPS)增益。然而,除非核心温度低于目标频率下的最高温度,否则这些性能提升无法被利用。如果采用核心的瞬时温度而非稳态温度(SST),则可以更有效地应用这些较高的频率。使用瞬时温度能够跟踪每个核心接近其允许的最高温度和核心频率的程度。在[497]中并未考虑该方法,其中核心的稳态温度(SST)决定了对其他核心的热影响,并驱动工作负载分配策略。需要注意的是,瞬时温度指的是核心在几毫秒时间内的温度,因为热常数的数量级远大于时钟频率。
瞬时温度显著低于允许的最高温度Tinst ,记为Tmax,从而提供了温度余量[523],可通过在更高频率下运行核心来利用该余量。因此,每个工作负载的性能改善可通过SU确定。因此,不仅每个核心的冷却效率,而且SU均可提升三维CMP的每秒指令数[523], ,如公式(13.16)所述。然而,由于垂直方向上的强热耦合,应谨慎进行更细粒度的频率调整。这种耦合会对三维CMP中其他核心的温度产生不利影响,特别是位于其他层相同二维位置的核心。
最大化(13.16)的优化问题在距离散热器最远的核心温度等于Tmax的约束条件下求解。使用拉格朗日乘子求解该优化问题,可得到应用于每个核心i[523],
$$
R_{\text{th}i} \cdot \text{IPC}_i \cdot \frac{dP(f_i)}{df_i} = M; \quad (13.19)
$$
其中 M为常数。确定满足(13.19)的每个核心的精确频率是不可行的,因为时钟频率是离散变化的。多核处理器(CMP)仅支持少量的时钟频率。因此,提供了一种近似解,以确保分配给每个核心的频率与(13.19)的偏差最小。
求解(13.19)需要每个核心R thi、功耗 Pi以及IPCi。多核处理器(CMP)中每个核心的热阻如图13.8所示,而功耗由核心的IPC决定。针对每个工作负载,将IPC分配给核心的过程遵循第13.1.3.1节中的启发式方法,其中示例见图13.7。该方法不使用明确的功耗值,而是将每个工作负载的IPC与多核处理器(CMP)的超级任务(即一组任务)匹配到超级核心上。此过程重复执行,并以固定时间间隔(100毫秒)迁移线程[523]。
基于基准测试应用程序 SPEC2000/2006[517]和 ALPbench[526]的多个场景被用于评估基于每个核心瞬时温度的线程迁移效率。这些场景包括分别表示为 HIPC、LIPC 和 MIPC 的高、低和混合 IPC 工作负载。这些基准测试的 SU 同样被分为高、低和混合三类,其中每个核心的频率在 1 至 2 GHz 之间切换。针对包含两个核心层和一个内存层的三维多核处理器(CMP),比较了两种不同线程管理方法下的 IPS 结果。第一种方法源自 [497]。高指令每周期(HIPC)任务被分配给靠近散热器的核心(3‐DI)以及稳态温度(SST)较低的核心,并设置每个核心的时钟频率以确保其 SST 不超过 Tmax(3‐DI‐SST)。另一种方法根据每个核心的温度余量(Ti(t) ≤ Tmax)(IT)来分配核心频率,并将 IPC 总和最高的超级任务分配给最冷却的超级核心。在每个超级核心中,将 SU 最高的线程 SU(3‐DIS)分配给离散热器最近的核心(3‐DIS‐IT)。对这两种线程分配策略的比较结果显示,在 表13.5列出的场景中,平均 IPS 提升了 18.5%。3‐DIS‐IT 的温度余量明显更低,表明由于更高的频率,大多数核心运行接近 Tmax ,从而在每个场景下均实现了更高的总 IPS 和功耗。
13.1.3.2.1 具有多内存层的三维芯片多处理器的动态热管理
这些技术涉及在考虑单内存层时的多核处理器芯片。增加更多的内存层可以提升性能,因为缓存未命中减少;然而,随着这些层与散热器之间的距离增加,热管理问题变得更加突出。使用非常规存储器(如磁性随机存取存储器 [527],)可以缓解这种情况,因为非易失性内存层不会产生漏电流,从而降低堆栈的整体功耗。引入这些存储技术需要采用不同的方法来实现三维多核处理器的动态热管理,因为这些存储技术与传统技术相比表现出显著不同的特性。
| 表13.5 平均功耗(Pavg)和平温度余量(Tslack)的3‐DIS‐IT和3‐DI‐SST[523] | |||||
|---|---|---|---|---|---|
| 基准测试 组合 | 3‐DI‐SST | 3‐DIS‐IT | |||
| Pavg(W) | Tslack( °C) | Pavg(W) | Tslack( °C) | ||
| hipc‐hm | 91.63 | 7.29 | 123.40 | 2.46 | |
| hipc‐mm | 113.86 | 5.08 | 118.97 | 4.29 | |
| hipc‐lm | 99.00 | 6.95 | 104.63 | 6.02 | |
| mipc‐hm | 104.30 | 7.32 | 150.53 | 2.30 | |
| mipc‐mm | 105.94 | 5.17 | 115.32 | 4.25 | |
| mipc‐lm | 84.56 | 7.53 | 87.77 | 6.99 | |
| lipc‐hm | 69.98 | 10.44 | 70.14 | 10.40 | |
| lipc‐mm | 85.03 | 7.37 | 85.70 | 6.94 | |
| lipc‐l m | 119.34 | 5.74 | 124.64 | 4.85 |
基于静态随机存取存储器的缓存。例如,非易失性存储器写入速度较慢,需要更高的能量,且耐久性低于静态随机存取存储器。不同存储技术的主要特性如表13.6所示。
由于磁性存储器比SRAM慢,因此这些内存层应用于存储较不紧急的数据,而频繁访问的数据或频繁写入操作应放置在SRAM层中。考虑一种包含多种内存层的三维CMP,可通过在路级对缓存实施电源门控,并对CMP的核心应用动态电压频率调节,从而在满足热限制的前提下提升CMP的每秒指令数。一种结合多种存储技术的架构示例如图图13.9所示,其中一个包含四个核心的处理层与三层SRAM和一层MRAM堆叠构成L2缓存,一级缓存集成在处理层内。图中还展示了每一层的存储结构以及连接缓存与核心的垂直总线。核心之间通过
| 表13.6 采用65纳米工艺制造的不同存储技术的参数 [529] | ||||
|---|---|---|---|---|
| SRAM | MRAM | PCRAM | ||
| 缓存大小 | 128 kb | 512 kb | 2 MB | |
| 面积 (毫米²) | 3.62 | 3.30 | 3.85 | |
| 读取延迟(纳秒) | 2.252 | 2.318 | 4.636 | |
| 写入延迟(纳秒) | 2.264 | 11.024 | 23.180 | |
| 读取能量(纳焦) | 0.895 | 0.858 | 1.732 | |
| 写入能量(纳焦) | 0.797 | 4.997 | 3.475 | |
| 在 80°C 下的静态功耗(瓦特) | 1.131 | 0.016 | 0.031 | |
| 写入耐久度 | 10¹⁶ | 10¹² | 10⁹ |
Core 核心布局 L1 I$ L1 D$ 二级缓存 控制器 TSV bus SRAM bank SRAM bank MRAM bank
通过交叉开关(大量核心需要采用片上网络拓扑)[528]将缓存路1分配给每个核心可降低温度[527]。该分配在核心和缓存层中动态进行,且在功耗预算中同时考虑了内存层的漏电功耗。该分配策略的关键在于整个堆栈(包括内存层)在垂直方向上的异构热耦合概念。
为了形象地解释缓存路和时钟频率分配过程背后的概念,考虑 图13.10 中所示的示例。采用了五种不同的方案来最大化IPS。在 图13.10A 中,为核心以及从所有SRAM层分配给每个核心的缓存路选择了低频时钟(1GHz)。由于核心1执行的是内存密集型
图13.10 用于采用SRAM、MRAM和DVFS混合技术的3‐D CMP的动态热管理方案,(A) SRAM‐1 GHz核心, (B) SRAM‐3 GHz核心,(C) SRAM核心DVFS,(D) 混合‐3GHz核心,以及(E) 混合核心DVFS [527]。“缓存路”是组相联缓存存储器中每个组内的一个缓存模块。n路组相联缓存表示该存储器的每个组由两个缓存路(即 模块)组成。
基准测试(Art),因此为该核心提供了额外的缓存路。由于L2缓存所需的功耗较大,频率无法显著提高。在 图13.10B,两个核心的时钟频率均提升至3GHz,但每个核心可用的缓存减少,以避免温度过高。数据将会丢失,因此需要从主存进行传输。在 图13.10C,通过DVFS 机制调节每个核心的时钟,支持在可用L2缓存容量与时钟频率之间进行权衡。用MRAM层替换一层SRAM(见 图13.10D)并关闭部分SRAM层,可使两个核心的时钟频率达到3GHz。一些数据可以存储在MRAM层中,避免缓慢的片外内存传输,从而实现比 图13.10B所示系统更高的IPS。根据工作负载的不同,这种混合DVFS方法还利用DVFS在激活的缓存路数量与时钟频率之间进行权衡,以确保三维CMP的IPS最大化。
在图13.10D 和E所示的方案中,存储在MRAM层中的数据被传输到更快的SRAM层中,以限制芯片上用于在内存之间传输数据的能量消耗。每个核心均设有计数器,用于收集最近最少使用和最近最常使用的数据模块的信息,从而实现数据迁移。该策略在L2内存控制器内实施[527]。因此,若在SRAM层发生缓存未命中,但在MRAM层对该数据产生缓存命中,则可予以补偿。
最大化每秒指令数(IPS)需要为核心和内存设置一组参数,包括每个核心的时钟频率、分配给每个核心的SRAM和MRAM路数,以及在每个核心上方物理分配的激活SRAM和 MRAM路数。该分配是动态进行的,采用50毫秒的配置间隔 [527]。电源门控内存模块的划分也在 [530] 中进行了展示,但并非用于提高多核处理器(CMP)吞吐量。
目标三维架构中的每秒指令数(IPS)在[527]中进行了理论描述。引入了两个额外的概念,以确定分配给每个处理器的缓存路数以及哪些路被激活。因此,核心i的SRAM缓存路数wS i对应的IPS性能提升(PI)为
$$
\text{PI}
i = \frac{\partial \text{IPS}_i}{\partial w
{S_i}}; \quad (13.20)
$$
类似的表达式适用于MRAM的缓存路wM i。与PI类似,在超级核心lMi内激活一路额外的缓存所导致的性能损失(PL),需要降低时钟频率fi,以将温度维持在规定的限制范围内。
$$
\text{PL}
i = \frac{\partial \text{IPS}_i(l
{S_i})}{\partial l_{S_i}}; \quad (13.21)
$$
对于激活的MRAM的缓存路,lMi 也适用类似的表达式。通过PI、PL和拉格朗日乘子,当每个核心的SRAM和MRAM缓存路被选择为使得所有核心之间的PI和PL相等时,IPS在特定温度下达到最大值。通常采用贪心启发式算法和二分法来确定分配给每个核心的SRAM和 MRAM缓存路,以及在一个配置区间内的激活路数。激活路的数量取决于核心的时钟频率和最高容忍温度。
为了展示混合内存的效率以及缓存路分配对性能的提升,在目标架构上评估了一组基准测试。各内存层的特性列于表13.6中。处理器层基于在3GHz下运行的英特尔酷睿i5技术。基准测试应用程序基于SPEC2000/2006,包含高指令每周期(HIPC)和低指令每周期( LIPC)工作负载的组合,以及高内存(HM)和低内存(LM)需求(见表13.7)。图 13.10C–E所示方案与核心运行在3GHz、仅使用SRAM且大部分缓存路被电源门控以满足温度要求的方案(图13.10B)进行了比较。该比较结果如表13.8所示,其中SRAM‐DVFS(图 13.10C)使每秒指令数(IPS)提升了26.7%,而混合型‐DVFS平均使IPS提高了55.3%。此外,SRAM‐DVFS的能耗延迟积(EDP)也改善了78.2%。该改善通过激活额外的缓存路并采用较低的时钟频率实现。更少的缓存未命中使得执行比SRAM‐3 GHz更早完成,从而改善了EDP。类似地,与混合型‐3 GHz相比,混合型‐DVFS的EDP平均降低了32.1%。
| 表13.7 用于比较性能的基准测试应用程序组合 基于SRAM/MRAM L2缓存的不同热管理方案 [527] | |
|---|---|
| 基准应用情景 | 每个情景的基准应用 |
| hipc‐lm | equake、parser |
| lipc‐lm | lbm、mcf06、sjeng、ammp |
| hipc‐hm | gcc、bzip LIPC‐HM gcc、 art |
| 表13.8 平均时钟频率 favg(GHz) 和分配的L2缓存容量 Ctot(MB) 每种热管理方案 [527] | |||||||
|---|---|---|---|---|---|---|---|
| 基准测试 应用程序 | SRAM‐3 GHz | 混合型‐3 GHz | |||||
| Ctot | f avg | Ctot | Ctot | f avg | Ctot | ||
| SRAM‐DVFS | 混合型‐DVFS | ||||||
| HIPC‐LM | 0.250 | 2.20 | 0.375 | 1.375 | 2.60 | 7.875 | |
| LIPC‐LM | 0.250 | 3.00 | 0.250 | 1.250 | 3.00 | 1.250 | |
| HIPC‐HM | 0.250 |

1293

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



