状态机
1. 计算机作为状态机
- 时序逻辑部件:存储器、计数器、寄存器等
-
组合逻辑部件:加法器等
-
每个时钟周期,计算机根据当前时序逻辑部件的状态在组合逻辑部件作用下计算并转移到下一时钟周期的新状态
2. 程序作为状态机
2.1 指令与状态转移关系
- 指令是计算机进行状态转移的输入激励
- 一条指令执行 = 一次确定的状态转移
- 加法指令:改变寄存器的值
- 跳转指令:修改PC的值
2.2 程序运行的本质
- 程序加载到内存 = 在大状态机中指定初始状态
- 程序运行 = 从初始状态开始的一系列状态转移
- 程序本身 = 大状态机的一个子集
3. 程序的双重视角
3.1 静态视角(代码形式)
- 特点:代码/指令序列的文本形式描述精简,通过分支/循环/函数实现复杂功能
3.2 动态视角(状态机形式)
- 特点:以状态转移刻画程序运行效果
- N个状态的计算机可形成确定性状态转移图
- 给定当前状态,下一状态是唯一确定的
- 程序执行路径 = 状态转移图中的一条路径