理解计算机最好的方式,是自己造一台。这份笔记从二进制和逻辑门开始,用 Digital 仿真软件逐步设计出一台能运行汇编程序的简单计算机,最后延伸到总线、引导程序和单片机启动流程。
学习路线
1 | 数字电路基础 |
内容概览
第一章:数字电路基础
- 理解二进制、位(bit)、字节(byte)和数据单位;
- 使用 Digital 仿真软件观察数字电路行为;
- 掌握与门、或门、非门以及其他基础逻辑门;
- 理解 SR 锁存器、D 锁存器和边沿触发 D 触发器,认识寄存器在时序电路中的作用。
第二章:计算机组成原理
- 理解冯诺依曼模型计算机的基本结构、CPU、内存和输入/输出系统的职责;
- 认识程序从存储到执行的基本过程;
- 对比不同计算机体系结构的特点。
第三章:设计计算机硬件
本章以逐步扩展的方式设计一台简单计算机,重点关注数据通路、控制信号和指令执行:
- 实现 ALU 和简单计算单元,使用寄存器实现数据存储;
- 添加指令存储和程序计数器(PC),逐步增加
halt、str、ld、jmp、cmp和je等指令; - 设计控制器并维护控制信号查找表,将指令存储和数据存储合并为统一 RAM;
- 增加立即数功能和 B 寄存器,通过测试程序验证指令集与硬件电路。
第四章:设计计算机汇编语言
- 根据自定义指令集编写汇编程序;
- 使用加载、加法、跳转、比较和保存等指令组织程序流程;
- 通过求和等示例测试汇编程序在自制计算机上的执行结果。
第五章至第六章:总线与引导程序
- 理解总线的作用、基本组成和地址映射,以及 CPU 如何访问不同的存储和 I/O 设备;
- 理解计算机上电后的引导流程,设计从初始化、加载到跳转执行的启动过程;
- 了解单片机引导流程与通用计算机启动过程的联系。
第七章:常用数字芯片
与门、或门、非门、74HC245N(缓冲器/总线收发器)、74HC138(译码器)和 DS1302(实时时钟芯片)。
指令设计演进
课件中的自制计算机按照以下顺序逐步扩展:
1 | 基础加法与减法 |
核心概念速查
| 概念 | 作用 |
|---|---|
| Bit / Byte | 最小数据单位 / 通常 8 个 bit |
| Logic gate | 对二进制信号执行逻辑运算 |
| Latch / Flip-flop | 按控制条件 / 时钟边沿保存数据 |
| Register | 保存多个 bit 的时序电路 |
| ALU | 执行算术和逻辑运算 |
| PC | 保存下一条指令地址的程序计数器 |
| RAM | 保存可读写的数据或指令 |
| Control unit | 根据指令生成控制信号 |
| Bus | 连接 CPU、内存和 I/O 的共享传输通道 |
| Instruction set | 计算机能够识别和执行的指令集合 |
学习建议
- 先掌握二进制、逻辑门、真值表和基本时序电路;
- 使用 Digital 仿真软件跟踪每一个输入、输出和控制信号;
- 学习 CPU 设计时,分别记录数据通路、控制通路、时钟状态和指令格式;
- 阅读每条指令时,同时关注操作码、操作数、寄存器变化和内存变化;
- 从简单指令开始编写测试程序,再逐步验证跳转、立即数、寄存器和 I/O 功能。