CS152 · Homework 2 导读
HW2: Memory Hierarchy
这份导读帮你理解 HW2 在考什么、需要哪些前置知识。它不包含完整解答——答案需要你自己动手推导,官方解答会在截止日期后发布。
发布:2023-02-07(随第 7 课)
截止:2023-02-21
前置:第 6、7 课
这份作业在考什么?
一句话总结:用一份类似 CACTI 的电路延迟建模手册,亲手计算直接映射缓存和组相联缓存的关键路径延迟,从而确定它们各自需要几个时钟周期才能完成一次访问——把第 6、7 课"相联度如何影响命中时间"这条抽象权衡,变成具体的门延迟数字。
Problem 1:缓存电路延迟建模
配套的 handout 给出了译码器、存储阵列、比较器、多路选择器等各个电路模块的延迟公式(形如 delay = k₁·log₂(行数) + k₂·⌈log₂(每行位数)⌉ + k₃),以及一个 2.5GHz(400ps/周期)的目标时钟频率。
- 1.A:为一个 256KB 直接映射缓存(32 字节行)算出标签译码器、标签存储阵列、比较器、数据路径等每个模块各自的延迟,找出关键路径,换算成需要多少个时钟周期
- 1.B:同样容量、但改成 4 路组相联的缓存,重新计算——注意地址拆分方式(索引位数、标签位数)会因为相联度提高而改变,标签存储阵列每行现在要存 4 路的标签+状态位,比较器数量也变成 4 个并行工作
- 1.C:给定一个 8 行、32 字节/行的直接映射缓存和一段 13 次访问的地址序列,逐一算出每次访问的标签/索引/偏移,判定命中还是缺失
解题的关键提醒:1.A 和 1.B 的关键路径不一定是同一条电路路径——直接映射缓存的关键路径通常经过标签比较那一侧,而更高相联度的设计里,多路选择器和比较器数量的增加可能会让另一条路径变成瓶颈。一定要分别算出"标签检查侧"和"数据读出侧"两条候选路径,取较长的那条,而不是想当然地假设某一侧总是更长。这正是第 7 课"提高相联度可能增加命中时间"这条权衡在电路层面的具体体现。
Problem 3:基线缓存 vs. "微标签(microtagged)"缓存对比
题目直接给出两种缓存设计各个电路模块的延迟数值(不需要你自己套用第 1 题的公式推导),要求你:
- 找出基线缓存和"微标签"缓存各自真正的关键路径(同样要在多条候选路径里找最长的那条)
- 用给定的、简化过的整数周期时间(不是从 1.A/1.B 推导出的周期时间,是题目单独给出的一组"更干净"的数字),计算 AMAT 在两种设计下的差异
- 给定一系列缓存参数改动,计算 AMAT 的净变化量
这道题直接呼应第 7 课的 AMAT 公式:AMAT = Hit Time + Miss Rate × Miss Penalty。解题时应该把"周期时间变化"和"缺失率/缺失代价变化"分开核算,再代入公式一次性得出总的 AMAT 变化——不要把两种效应混在一起直觉估算。
知识检查
问题 1:为什么在计算 1.A(直接映射)和 1.B(4 路组相联)的关键路径延迟时,不能直接假设关键路径一定经过同一侧电路?
问题 2:Problem 3 要求对比基线缓存与"微标签"缓存的 AMAT,解题时应遵循的公式是什么?
提交与评分说明
- 鼓励讨论,但每位同学必须独立提交自己的解答
- 提交平台为 Gradescope;除填图/填表题外,答案须用方框圈出
- 评分主要依据完成度,但习题集是期中/期末考试的核心背景材料
- 官方解答在截止日期次日发布
参考资料与延伸阅读
- 本作业原始 PDF:
sp23/hw02.pdf、sp23/hw02-handout.pdf(UC Berkeley CS152, Spring 2023)
- 课程依赖内容:第 6 课(缓存结构、放置策略)、第 7 课(AMAT、3C 模型)
📝 Homework 2