L1·
逻辑门
Logic Gate
核心抽象布尔函数
用晶体管搭建出 AND、OR、NOT,从此可以表达任意逻辑。
学习进度:
What
逻辑门是用晶体管搭建的基本逻辑单元。AND 门输出 1 当且仅当所有输入为 1;OR 门输出 1 当至少一个输入为 1;NOT 门反转输入。通过组合这些基本门,可以构建任意布尔函数。集成电路(IC)将数千到数十亿个逻辑门封装在一块芯片上。
Why
单个晶体管只能做开关,无法表达逻辑关系。逻辑门将物理层的通断行为抽象为数学上的布尔运算,使得我们可以用代数方法设计和验证电路。这是从物理世界到数学世界的关键一步。
How
程序员通过布尔表达式(&&、||、!)在高级语言中使用逻辑门的抽象。硬件工程师用 Verilog/VHDL 描述逻辑门网络,综合工具自动映射到晶体管。理解逻辑门有助于理解:为什么位运算(&、|、^、~)如此高效;为什么硬件描述语言长成那个样子。
Bottom-up:由下层如何构建
本层建立在以下层级之上:
Top-down:向上暴露什么接口
布尔运算组合逻辑真值表
Programmer View:程序员视角
我能操作吗?
通过布尔表达式和位运算间接操作。硬件层面通过 HDL(Verilog/VHDL)直接描述。
成本模型
| 指标 | 量级 | 备注 |
|---|---|---|
| 门延迟 | ~10-50 ps | 取决于工艺和门类型 |
| 扇入限制 | 通常 ≤ 4 输入 | 更多输入需要多级门,增加延迟 |
| 面积 | 4-20 个晶体管/门 | NAND 最经济(4T),XOR 最贵(~20T) |
常见陷阱
- !竞争与冒险:当多个输入同时变化时,输出可能出现短暂的错误脉冲(glitch)
- !扇出限制:一个门的输出驱动太多后续门会导致延迟增加和信号退化
GPU 对应表
GPU 不是 CPU 的替代品,而是抽象阶梯的并行分支。每一层抽象在 GPU 上都有对应的实现:
| 层级 | 抽象 | GPU 的对应 |
|---|---|---|
| L0 | 晶体管 | 同样——GPU 由数十亿晶体管构成 |
| L1 | 逻辑门(NAND) | 同样——GPU 的逻辑门规模远超 CPU |
| L2 | ALU | GPU 有海量向量 ALU(CUDA 核心) |
| L3 | 寄存器 / 存储 | GPU 寄存器、共享内存、显存(HBM) |
| L4 | 机器指令 / ISA | CPU ISA + GPU ISA(SASS/GCN) |
| L5 | 计算机体系结构 | CPU 架构 + GPU 架构(SIMT) |
| L6 | 汇编语言 | CPU 汇编 + GPU 汇编(PTX/SASS) |
| L7 | 汇编器 | CPU 汇编器 + GPU 汇编器 |
| L8 | 虚拟机 | JVM/CLR + GPU 运行时(CUDA/OpenCL) |
| L9 | 高级语言 | C/C++/Python + CUDA/OpenCL/SYCL |
| L10 | 编译器 | GCC/LLVM + NVCC/LLVM GPU 后端 |
| L11 | 操作系统 | OS + GPU 驱动 + 命令调度 |
| L12 | 系统库 / 运行时 | libc + cuDNN/cuBLAS/ROCm |
| L13 | 容器 / 编排 | Docker + NVIDIA Container Toolkit + K8s Device Plugin |
| L14 | 云原生应用 | 分布式训练/推理、GPU 池化、MIG/vGPU |
💡 从 L0 到 L3,GPU 和 CPU 共享相同的物理基础;从 L4 开始,两者分道扬镳——CPU 走向复杂的乱序执行和分支预测,GPU 走向 SIMT 和海量并行。到了 L14,两者在云原生层面重新汇合。