计算机系统基础讲义¶
拆分状态
这页保留原来的 /zh/notes/computer-systems-lecture/ 地址,作为计算机系统基础讲义总览和旧链接兼容层。章节正文已经拆分到稳定子路径;如果旧链接带有 #note-sec-... 锚点,可在本页的“旧锚点跳转表”找到对应新位置。
阅读导引¶
这份讲义把数字逻辑、运算部件、时序逻辑、ISA、RISC-V、汇编、ELF、链接和装载放在同一条系统链路里。建议先从总览理解层次,再按章节阅读。
课程目标¶
- 建立从物理信号到运行程序的层次化视角。
- 掌握信息表示、布尔逻辑、组合逻辑、运算部件、时序逻辑和 ISA 的核心接口。
- 能把 RISC-V 指令、调用约定、目标文件、链接和装载串成程序执行过程。
前置知识¶
- 二进制、基础编程和简单代数。
- 对函数调用、内存、寄存器和汇编有基本直觉会更顺。
- 能阅读 Markdown 数学公式与代码块。
总体建议用时¶
建议按 8 个主体章节分 5–8 周学习;如果只做快速复习,可优先读第 1、2、4、6、7 章,再查附录。
总体练习建议¶
- 每章至少整理一张“接口表”:输入、输出、关键约束和常见错误。
- 对硬件章节,优先画真值表、状态图或数据通路草图。
- 对 ISA 与程序运行章节,优先手算指令字段、栈帧和符号重定位过程。
课程来源与引用边界¶
- 整理者:Lumner。
- 内容来源:根据
SYS/目录下现有计算机系统基础课件与note/SYS_计算机系统基础讲义.md整理。 - 图片边界:源讲义引用的图片未随公开仓库发布;页面中用“图像说明”保留上下文,不再把缺图当作空占位。
- 站内用途:作为公开学习笔记和碧影可读取的公共知识来源。
- 引用边界:这不是课程官方教材,也不替代教师课件、课堂说明或考试要求;外部引用时请注明来自本网站整理版。
章节入口¶
- 0. 课程视角:从门电路到系统软件:从物理信号、逻辑门、RTL、ISA 到程序运行的整体抽象链路。(建议 1–2 小时)
- 1. 信息表示:二进制、进制转换、整数、补码、浮点数、字符和数据宽度。(建议 5–7 小时)
- 2. 布尔代数与数字逻辑基础:逻辑变量、基本门、布尔代数、标准形式、Karnaugh Map 和多级优化。(建议 5–6 小时)
- 3. 组合逻辑设计与 Verilog HDL:HDL 设计流、Verilog 基础、组合逻辑设计、常用功能块和时序分析。(建议 6–8 小时)
- 4. 运算部件与 ALU:加减乘除、进位加法器、溢出、移位器、Booth 算法、浮点运算和 ALU。(建议 6–8 小时)
- 5. 时序逻辑设计:锁存器、触发器、时序参数、FSM、寄存器、总线、移位寄存器和计数器。(建议 6–8 小时)
- 6. 指令集体系结构 ISA:ISA 概念、指令组成、寻址方式、编码方式、CISC/RISC 和 ISA 分类。(建议 3–5 小时)
- 7. RISC-V ISA、汇编与程序运行:RISC-V 状态、指令格式、基础整数指令、控制流、调用约定、ELF、链接和装载。(建议 7–10 小时)
- 附录:速查表与后续扩展:常用结论、寄存器速记、更新规则和后续扩展边界。
章节与课件对应表¶
| 章节 | 覆盖内容 | 对应课件 |
|---|---|---|
| 0. 课程视角:从门电路到系统软件 | 从物理信号、逻辑门、RTL、ISA 到程序运行的整体抽象链路。 | SYS/Lec00_Introduction.pptx |
| 1. 信息表示 | 二进制、进制转换、整数、补码、浮点数、字符和数据宽度。 | SYS/Lec01-Information Representation.pptx |
| 2. 布尔代数与数字逻辑基础 | 逻辑变量、基本门、布尔代数、标准形式、Karnaugh Map 和多级优化。 | SYS/Lec02_Boolean Algebra.pptx |
| 3. 组合逻辑设计与 Verilog HDL | HDL 设计流、Verilog 基础、组合逻辑设计、常用功能块和时序分析。 | SYS/Lec03_Combinational Logic.pptx |
| 4. 运算部件与 ALU | 加减乘除、进位加法器、溢出、移位器、Booth 算法、浮点运算和 ALU。 | SYS/Lec04_Arithmetic Unit.pptx |
| 5. 时序逻辑设计 | 锁存器、触发器、时序参数、FSM、寄存器、总线、移位寄存器和计数器。 | SYS/Lec05_Sequential Logic.pptx |
| 6. 指令集体系结构 ISA | ISA 概念、指令组成、寻址方式、编码方式、CISC/RISC 和 ISA 分类。 | SYS/Lec06-1_ISA.pptx |
| 7. RISC-V ISA、汇编与程序运行 | RISC-V 状态、指令格式、基础整数指令、控制流、调用约定、ELF、链接和装载。 | SYS/Lec06-2_RISCV.pptx |
旧锚点跳转表¶
下面的条目用于兼容旧版长页面的 #note-sec-... 锚点。锚点本身保留在本页;点击条目会进入新的章节子页面或附录页。
- 资料来源
- 0. 课程视角:从门电路到系统软件
- 0.1 抽象层次
- 0.2 本课程主线
- 1. 信息表示
- 1.1 信息、信号与二值抽象
- 1.2 外部信息与内部数据
- 1.3 进位计数制
- 1.4 十进制到其他进制
- 1.5 二进制、八进制、十六进制互转
- 1.6 2 的幂与容量单位
- 1.7 定点整数表示
- 1.8 补码求负与符号扩展
- 1.9 浮点数表示
- 1.10 IEEE 754 特殊值
- 1.11 舍入与浮点运算陷阱
- 1.12 BCD、Gray Code 与 Excess-3
- 1.13 字符与非数值数据
- 1.14 数据宽度、字长与大小端
- 2. 布尔代数与数字逻辑基础
- 2.1 为什么使用数字逻辑
- 2.2 逻辑变量与基本逻辑运算
- 2.3 晶体管与逻辑门
- 2.4 布尔代数基本律
- 2.5 对偶性
- 2.6 逻辑函数表示
- 2.7 最小项、最大项与标准形式
- 2.8 化简目标与代价
- 2.9 Karnaugh Map
- 2.10 Bubble Pushing 与多级优化
- 2.11 XOR、奇偶校验与三态逻辑
- 3. 组合逻辑设计与 Verilog HDL
- 3.1 HDL 设计流
- 3.2 Verilog 基础
- 3.3 Verilog 数字与数据类型
- 3.4 运算符与建模方式
- 3.5 组合逻辑电路定义
- 3.6 组合逻辑设计流程
- 3.7 例:三开关控制单灯
- 3.8 常用组合功能块
- 3.9 时序分析、关键路径与毛刺
- 4. 运算部件与 ALU
- 4.1 迭代组合电路
- 4.2 半加器与全加器
- 4.3 多位加法器
- 4.4 减法与溢出
- 4.5 ALU
- 4.6 移位器
- 4.7 乘法
- 4.8 Booth 算法
- 4.9 除法
- 4.10 浮点加法与乘法
- 4.11 数据通路中的 ALU
- 5. 时序逻辑设计
- 5.1 时序逻辑模型
- 5.2 反馈、稳定与存储
- 5.3 SR Latch、D Latch 与 Flip-Flop
- 5.4 触发器时序参数
- 5.5 时序电路分析流程
- 5.6 Moore 与 Mealy
- 5.7 状态等价与化简
- 5.8 时序逻辑设计流程
- 5.9 例:序列检测器 1101
- 5.10 未使用状态与自启动
- 5.11 寄存器与寄存器传输
- 5.12 总线结构
- 5.13 移位寄存器
- 5.14 计数器
- 6. 指令集体系结构 ISA
- 6.1 ISA 是什么
- 6.2 指令的组成
- 6.3 指令格式设计因素
- 6.4 操作数个数
- 6.5 寻址方式
- 6.6 操作类型
- 6.7 编码方式:定长、变长、混合
- 6.8 CISC 与 RISC
- 6.9 ISA 分类
- 7. RISC-V ISA、汇编与程序运行
- 7.1 RISC-V 概览
- 7.2 RISC-V 处理器状态
- 7.3 指令格式
- 7.4 基础整数指令
- 7.5 控制流
- 7.6 RISC-V 调用约定
- 7.7 栈帧与内存布局
- 7.8 特权模式
- 7.9 从 C 源码到运行程序
- 7.10 ELF 目标文件
- 7.11 链接器
- 7.12 静态链接与动态链接
- 7.13 装载器、PIC 与 Lazy Binding
- 7.14 程序真正入口:
_start与crt0 - 8. 快速查表
- 8.1 常用 2 的幂
- 8.2 n 位整数范围
- 8.3 补码常用结论
- 8.4 浮点特殊编码
- 8.5 常用布尔定理
- 8.6 常用 RISC-V 寄存器
- 8.7 RISC-V 指令格式速记
- 9. 后续扩展区
- 9.1 后续新增资料的写入规则
- 9.2 建议预留章节
- 9.3 更新日志