原节目:https://youtu.be/rl0jkP9kOMw?si=wdmL8iD4nOYAFGFf · 时间戳可点击,就地跳转播放器
讲者以纯粹的自底向上视角,极其详尽地演示了如何从最基础的二进制与电学原理出发,逐步搭建出一台完整的 8 位 CPU,并在其上编写运行程序 [05:06]。在深入剖析了逻辑门、半加器与全加器、ALU、触发器锁存器、寄存器及 RAM 等微观硬件组件的构造后,他展示了总线通信规则与由 ROM 查找表构成的“计算机大脑”控制微码 [02:24:31], [07:53:48]。接着,他将这一自制 CPU 的设计思想迁移到真实的 ARM Cortex-M0+ 处理器上,并通过内存映射 I/O(MMIO)机制,用最底层的机器码成功在 Raspberry Pi Pico 开发板上实现了板载 LED 的点亮与常驻运行 [10:47:55], [11:47:42]。
[00:00] - [30:00] 引入二进制表示法,解释电信号的简易阈值划分如何决定了计算机采纳二进制的工程合理性。[30:00] - [01:10:00] 演示十进制与二进制的数学对等转换,梳理二进制加法的基本进位传递逻辑。[01:10:00] - [01:45:00] 介绍“二的补码”表示法,讲解如何通过最高位权重取负将负数运算完美融合到加法器中。[01:45:00] - [02:40:00] 拆解逻辑门功能,从半加器出发逐步搭建全加器,并串联为多位二进制加法电路。[02:40:00] - [03:40:00] 演示 ALU 的加减控制逻辑,说明如何通过 XOR 门对输入取反加一来实现复用加法器。[03:40:00] - [05:00:00] 解构锁存器与触发器的状态回馈环路,解释时钟边沿触发如何锁存数据并构成寄存器。[05:00:00] - [06:40:00] 介绍 RAM 的地址译码机制与总线的数据隔离,探讨 ROM 在固化查找表中的核心作用。[06:40:00] - [07:45:00] 引入程序计数器与操作码,在这台 8 位 CPU 中定义包含 LDA、ADD、JMP 等十条核心指令。[07:45:00] - [09:10:00] 详述控制逻辑的微码设计,使用 ROM 查找表将每条指令映射为 5 个时钟周期下的控制信号。[09:10:00] - [10:30:00] 演示计数与斐波那契数列生成程序的运行过程,验证自制 8 位计算机的图灵完备潜力。[10:30:00] - [11:20:00] 对比 32 位 ARM Cortex-M0+ 架构,阐明现代处理器与自制 8 位计算机在概念上的高度一致。[11:20:00] - [11:54:27] 还原内存映射 I/O (MMIO) 的寻址逻辑,展示在 Pico 上用机器码点亮板载 LED 的全过程与物理工程反思。二进制的使用纯粹出于工程可靠性的现实考量。 区分电信号的“有或无”比区分十个不同的电压等级在物理实现上要简单且稳定得多。 * 事实
补码编码实现了加减法硬件层面的完美复用。 通过将最高位的权重取负,计算机可以在不需要任何额外减法器硬件的前提下,利用全加器完成有符号数运算。 * 事实
触发器的级联消除了时序电路中的不稳定过渡态。 正锁存器与负锁存器的串联让触发器能够确保仅在时钟脉冲的特定边沿稳定锁存数据。 * 事实
总线通信的核心红线是防范电气层面的数据写入冲突。 任意时刻只能有一个硬件组件被允许向总线写入电平,否则会造成直接的物理短路并损坏芯片。 * 事实
控制核心的本质是一张微码固化查找表。 计算机大脑并没有进行主观思考,只是根据操作码与当前时钟步骤持续向控制线路分发映射好的高低电平。 * 事实
处理器与外部交互完全依托于内存映射寻址。 CPU 内部不含专门控制特定外设的指令,所有外设的操作本质上都通过映射路由被统一为了对特定内存地址的数据读写。 * 事实
计算机在物理层面处理电信号时遵循着一个极度简化的约定:只要电压高于某个特定阈值就是 1,低于它就是 0 [05:06]。这个约定看似牺牲了电压的多级精度,在工程实现上极其可靠,因为它能免受杂散噪声的干扰。在这个约定的基础上,我们能把二进制的数字序列唯一地对应到十进制的数值空间里,从而将复杂的逻辑判断完全转化为数字的计算。逻辑门是这一计算过程中的基础积木,它们通过真值表定义了最基本的布尔运算 [01:49:03]。
将 XOR 门算出的和位与 AND 门算出的进位位结合在一起,电路便具备了进行一位二进制加法的能力,这被称为半加器 [02:03:34]。全加器进一步整合了来自低位的进位输入,通过将八个全加器头尾串联,电路能完美执行八位二进制加法 [02:24:31]。减法运算的集成同样没有诉诸复杂的减法器,而是采用了“二的补码”表示法,直接将被减数逐位取反并在最低位输入 1,成功复用了既有的全加器硬件 [02:46:05]。为了锁存住这些运算结果,讲者展示了如何将输出线回接到选择器的输入端,并使用正负锁存器串联成触发器,实现仅在时钟信号跳变的上升沿或下降沿才锁存数据,最终构成了共享时钟线的寄存器 [03:58:09], [04:18:46]。
这些组件之间的连接依赖于一根共享的总线,任何时候只能有一个组件被允许向总线上写入数据,否则在物理上会导致短路 [05:27:04]。程序计数器则充当了指挥官的角色,它自动递增的值指向内存中下一条待执行指令的物理地址 [06:56:46]。解释这些指令并驱动整台机器运转的“控制大脑”是一块固化了微码的 ROM 查找表,它根据当前的操作码、步骤和标志,向整台 CPU 输出不同周期的控制信号 [07:53:48]。即使真实的 ARM Cortex-M0+ 处理器位宽达到了 32 位,其核心的寄存器、ALU 与程序计数器等设计在概念上与这台 8 位计算机没有任何本质区别 [10:47:55]。
这种概念一致性最清晰的体现莫过于内存映射 I/O,处理器并没有“点亮 LED”或者“绘制屏幕”这样的指令,而是将外部设备映射到了特定的内存地址中 [11:05:04]。当程序向这些特殊地址写入数值 1 时,硬件电路会自动切换物理引脚的电平状态 [11:06:03]。从沙子到玻璃屏幕,这一看似微不足道的板载灯光闪烁,背后其实是由几十层精心约定的物理与逻辑层级堆叠而成的庞大工程大厦,它们在极其严苛的时间和空间约定中保持着完美的对齐与稳定 [11:47:42], [11:54:27]。
[01:10:00] - [01:25:00] 补码(two's complement)的代数与几何意义推导。讲者生动展示了如何通过将数轴头部权重取负,使得硬件加法器天然支持减法。[03:40:00] - [04:05:00] 触发器(flip-flop)的工作机制演示。对于没有电子电路基础的学者来说,这是全视频理解时序逻辑和时钟脉冲同步最关键的一课。[07:53:48] - [08:15:00] CPU 控制核心(Control Unit)的设计。讲解微码如何在 ROM 查找表中固化并按步骤调度总线读写,是理解计算机“大脑”运作的绝对核心。[11:20:00] - [11:54:27] ARM 芯片上 MMIO 点灯代码的逐行解读。从初始化 GPIO 复位到向对应物理寄存器写值,完整打通了高级抽象与底层硅片的物理屏障。本页为对节目内容的忠实解读与大白话重述,由 PodLens 生成。
这是以原文为依据的一次解读,不能替代原文。每条要点都标注了出处,欢迎回到原文核对——也欢迎指出任何细微的偏差。