系统 I 前置复习(Prerequisite Review)
课程目录 · 后续:体系结构与 CPU 设计
根据系统 I 的期末复习手稿,按系统 II 所需的前置知识整理。保留编码速查、常量构造、嵌套调用和数据通路分析方法;缩写展开为中文解释与英文术语。
| 主题 | 内容 |
|---|---|
| 指令、编码与汇编翻译 | 六种格式、opcode / funct、立即数、访存、分支跳转、伪指令 |
| 常量构造、函数调用与栈 | 高低位进位补偿、64 位常量、寄存器保存、栈帧、嵌套调用 |
| 数据通路修改与性能分析 | RTL 语义、MUX 与控制信号、CPU 时间、CPI、Amdahl 定律 |
| 布尔代数与浮点表示 | 吸收律、共识定理、变量展开、IEEE 754 编码与特殊值 |
默认采用 RV64I、32 位非压缩指令、小端字节序(little-endian)和标准整数调用约定;涉及 RV32 的规则会单独注明。寄存器宽度为 64 位,不代表 C 的 int、每次访存或每条指令也都是 64 位。
手稿中的速记按以下边界理解:
- 普通 I/S 型立即数是 signed 12 位;
sltiu的立即数也先符号扩展。 - “unsigned 版本同 opcode、不同 funct3”适用于这里列举的比较、分支和 load 指令,不能推广到所有指令。
slli/srli/srai的立即数字段包含移位量和操作编码,不能把整个字段解释成普通 signed 12 位数。li是汇编器伪指令,不保证固定展开为两条;保存返回地址的需求取决于后续调用是否覆盖仍需使用的 ra。
各章与后续理论笔记相互链接,详细推导可按需继续阅读。