1. 时序逻辑基础与核心概念
在计算机体系结构中,时序逻辑是构建现代计算设备的关键基础。与组合逻辑不同,时序逻辑引入了"时间"这一维度,使得电路能够记住过去的状态——这正是计算机实现存储、程序计数等核心功能的基础。
1.1 记忆与时钟机制
记忆的本质在于时间依赖性。想象一下你此刻正在阅读这段文字——你能理解它的前提,是你的大脑记住了前面段落的内容。类似的,计算机中的记忆芯片也需要这种"记住过去"的能力。
时钟信号就是这个记忆过程的节拍器。在硬件层面,时钟表现为连续的高低电平交替(0和1),就像心跳一样规律:
code复制时钟周期示意图:
上升沿 上升沿 上升沿
| | |
+-------+-------+-------
| | |
|_______|_______|_______
每个相邻上升沿之间的时间间隔称为时钟周期(Clock Cycle),这是计算机中最基本的时间单位。所有时序操作都严格遵循时钟的节奏进行同步。
关键理解:时钟信号就像乐队的指挥,确保所有硬件部件按照统一的节奏工作,避免操作混乱。
1.2 D触发器的核心作用
D触发器(Data Flip-Flop,DFF)是时序逻辑最基本的构建模块。它的行为可以简化为:
code复制out(t) = in(t-1)
也就是说,当前时钟周期的输出,等于上一个时钟周期的输入。这种"延迟一拍"的特性,使得信息能够在时间维度上被保留。
在Nand2Tetris课程中,DFF被作为原始组件直接使用(无需用NAND门构建)。这种设计决策的考量在于:
- 教学重点在于计算机系统的层次化构建
- 实际硬件中DFF确实有专门的物理实现
- 避免底层细节分散对系统架构的注意力
1.3 寄存器的实现技巧
寄存器(Register)是DFF的功能扩展,实现了更实用的存储行为:
code复制out(t) = load(t-1) ? in(t-1) : out(t-1)
通过添加一个Mux(多路选择器),我们实现了条件存储:
- 当load信号为1时,寄存器存储新值
- 当load信号为0时,寄存器保持原值
这种设计模式在硬件设计中非常典型:用组合逻辑(Mux)扩展时序元件(DFF)的功能。
