跳转至

综合自测

这组题不是术语背诵,而是检查能否跨层推理。建议先口述思路,再画出状态和数据流,最后计算数值。

概念解释

  1. 为什么补码把减法统一成加法?它付出的代价是什么?
  2. ISA 与微体系结构有何区别?为什么同一 ISA 可以有许多代处理器?
  3. 组合电路和时序电路的分界是什么?寄存器为何能把长逻辑路径切开?
  4. cache 为什么依据局部性有效?若访问完全随机,它还剩下什么价值?
  5. 中断与 DMA 分别减少了 CPU 的哪类负担?二者为何经常配合?
  6. 虚拟存储为什么既是操作系统概念,也是硬件机制?

手算题

1. 补码

用 8 位补码表示 \(-37\),再与 \(50\) 相加。写出逐步取反加一和最终结果,并判断是否溢出。

2. Cache

某直接映射 cache 有 16 组,每块 16 B,物理地址为 32 位。求块内偏移、组索引和 tag 的位数。地址 0x12345678 映射到哪一组?

3. 流水线

对下面序列画五级流水时空图。假设有 EX/MEM 与 MEM/WB 转发,但 load-use 仍需停顿一拍:

lw  x5, 0(x10)
add x6, x5, x7
sub x8, x6, x9

4. Amdahl

程序中 70% 的执行时间可被加速 5 倍。总加速比是多少?如果把可加速部分提升到无限快,上限又是多少?

综合追踪题

假设一条 lw x5, 8(x10) 首次访问某虚拟页且对应数据不在 L1,但页已在主存。请依次说明:取指、译码、地址计算、TLB miss、页表遍历、cache miss、主存返回、寄存器写回中,每一步读取和更新了哪些状态。哪些步骤可重叠,哪些必须等待?

设计题

你要为低功耗传感器设计处理器。工作负载分支少、代码小、实时性要求高,但峰值算力要求不高。请在以下设计中作选择并给理由:

  • 单周期、短流水还是深流水;
  • 大而多路的 cache,还是小而可预测的 scratchpad;
  • 复杂乱序执行,还是简单顺序执行;
  • 是否加入 SIMD。

答案没有唯一配置,评分重点是能否把性能、功耗、面积、可预测性和软件复杂度放进同一张权衡表。

自评标准

  • 能复述:知道名词和公式。
  • 能计算:可完成地址拆分、CPI、AMAT 和 Amdahl 手算。
  • 能追踪:能沿指令路径指出每个状态元件和等待点。
  • 能设计:能说明优化收益、适用条件、代价及新的瓶颈。

达到后三层,才意味着知识从“章节记忆”变成了可迁移的机器模型。