简介:《计算机体系结构量化分析(第六版)》课后答案PDF面向学习计算机体系结构、准备课程作业与考试复习的高校学生及硬件方向自学者,重点解决第一章案例与习题缺少对照解析的问题。包内为1个PDF文件,约3.73MB,按教材章节组织答案,覆盖芯片制造成本与良品率计算、芯片面积与成本关系、电压频率变化对能耗和功率的影响、多核部分负载下的功耗估算,以及Amdahl定律与加速比分析等典型题目。读者可据此核对Phoenix与Red Dragon晶圆分配、Phoenix4/2/1良品率比较、单核与四核能耗比例、并行度受限时的性能上界等关键计算,并借助逐步推导理解公式来源与取舍依据。已有3613人学习,适合用作课后自测、考前查漏补缺和课堂案例复盘。
1. 良品率和功耗墙之间,隔着一条量化分析的窄路
翻到《计算机体系结构量化分析》第六版的解答部分,最先撞上来的往往是一串数字:724 颗、0.34、7384.8 美元。很多人把计算机体系结构当成一门讲流水线和总线的课,真到动手算才发现,它更像一本账本——每条结论背后都有面积、良品率、电压、命中率四个可测量的量在互相拉扯。这套解答的价值不在于对答案,而在于它把「为什么这么设计」翻译成了「代入哪些参数能算出这个数」。下面从一颗晶圆怎么切成 724 颗 die 开始,一直走到一次内存访问为什么只能占住 4ns 的通道。
2. 从晶圆到 die:为什么面积缩一半,可卖的颗数涨不到一倍
2.1 圆周率与边角料:die per wafer 里的减法项
晶圆是圆的,die 是方的。用整片晶圆面积除以单颗 die 面积,得到的是「假如晶圆是方的、且能完美铺满」的上界。真实情况有两处损耗绕不过去:圆周上切不出完整的 die;die 与 die 之间的划片道也不能拿来用。工程上用一个近似公式把这两处损耗折算进去:
DPW = π(d/2)² / A − πd / √(2A)第一项是理想铺满的数,第二项是对边缘半成品 die 的扣除。这里的关键在于第二项与 √A 成反比:die 面积越小,边缘损失在总颗数里占的比例越低。代入直径 45、面积 2.0,π×(22.5)² 约 1590,除以 2.0 得 795;边缘项是 141.4 除以 √4 再除以 2,得 70.7;两者相减 724.3,取整 724 颗。换成面积 1.2,1590/1.2 得 1325,边缘项 141.4/1.549 得 91.3,相减 1233.7,取整 1234 颗。
提示:边缘项会随面积变小而变大,因为它正比于周长、反比于 die 边长。小 die 的「半个」更多,这不是笔误,正是几何本身。
2.2 面积比 1.67,颗数却涨了 70%
2.0 除以 1.2 是 1.667,1234 除以 724 是 1.704。两者很接近,容易让人以为「颗数随面积线性反比」,其实是第二项在两头抵消出来的巧合。把面积继续压到 0.25,也就是单核的大小,1509 除以 0.25 得 6360,边缘项 141.4/0.707 得 200,结果 6160 颗。面积比 2.0/0.25 是 8 倍,颗数比 6160/724 是 8.5 倍,小 die 反而多拿了一点红利。
这个红利来自边缘:面积越小,边缘项占比从 70.7/795 的 8.9% 掉到 200/6360 的 3.1%。新手最容易把这一步直接写成「面积减半、数量翻倍」,然后在利润计算里把 30% 的差距算丢。真实晶圆厂排产时,这种「小 die 双重红利」正是他们愿意把成熟工艺的芯片做小的动机之一。
2.3 用一段 Python 复现两种芯片的利润表
把颗数、良品率、售价串起来,利润模型其实只有一行乘法。写出来跑一遍,比盯着答案对数字有用得多:
import math def dies_per_wafer(diameter, die_area): # 第一项:整片面积除以单 die 面积,理想的满铺上限 area_term = math.pi * (diameter / 2) ** 2 / die_area # 第二项:圆周边缘上切不出完整 die 的扣除,与 sqrt(面积) 成反比 edge_term = math.pi * diameter / math.sqrt(2 * die_area) return area_term - edge_term def yield_rate(defect_density, die_area, alpha=14): # 负二项良品率模型:alpha 越大,缺陷越倾向于扎堆 return 1 / (1 + defect_density * die_area) ** alpha for name, area, price in [("Phoenix", 2.0, 30), ("Red Dragon", 1.2, 15)]: dpw = dies_per_wafer(45, area) y = yield_rate(0.04, area) # 利润 = 每片颗数 × 良品率 × 单颗售价 print(f"{name}: DPW={dpw:.0f} yield={y:.3f} profit=${dpw * y * price:.2f}")跑出来的结果:Phoenix 724 颗、良品率 0.340、每片晶圆毛利 7384.80 美元;Red Dragon 1234 颗、良品率 0.519、毛利 9601.71 美元。参数说明里有两点值得盯住。defect_density的单位是「每单位面积的缺陷数」,所以它乘的是面积本身,量纲正好抵消;alpha=14不是随手填的常数,而是缺陷聚集程度在真实产线上的经验拟合值,换工艺节点这个数会变。
单价 $30 的芯片,单片晶圆少赚 2200 美元;单价 $15 的芯片,反而多赚三成。这是第一个反直觉结论:定价不能只看性能规格,还要看硅面积。
2.4 产能受限时,排序依据是单片晶圆毛利
需求是 25000 颗 Phoenix、50000 颗 Red Dragon。按颗数除一下:25000/724 需要 34.5
本文还有配套的精品资源,点击获取