第一章 计算机的基本设计方法 1
1.1 计算机硬件的基本结构 1
1.1.1 运算器结构 1
1.1.2 控制器 2
1.1.3 存储器 10
1.1.4 输入输出设备 11
1.2 计算机系统结构概述 12
1.2.1 总线 12
1.2.2 流水线组织 13
1.2.3 RISC 15
第二章 FD-MCES计算机体系结构实验仪结构 17
2.1 实验仪基本结构 17
2.2 存储器接口 18
2.2.1 内存及总线 18
2.2.2 微程序存储器及使用方法 19
2.3 打印机和键盘使用方法 21
2.3.1 键盘等效框图和使用方法 21
2.3.2 打印机等效框图和使用方法 21
2.3.3 实验计算机与外部设备的连接使用方法 23
2.4 观察信号 23
2.4.1 外部信号 23
2.4.2 扩展信号 24
2.5 时钟和初始化 24
2.5.1 时钟 24
2.5.2 初始化 25
2.6 运行方式 26
2.6.1 单步和扩展单步运行 26
2.6.2 断点和屏蔽寄存器 26
2.6.3 跟踪功能 27
2.6.4 断点运行 27
2.6.5 连续运行 27
第三章 FD-MCES软件使用方法 28
3.1 通用汇编器使用方法 28
3.1.1 汇编指令定义 28
3.1.2 汇编程序 36
3.1.3 汇编软件使用方法 36
3.2 通用调试器使用方法 39
3.2.1 软件界面 39
3.2.2 操作 40
3.2.3 微程序存储器 42
3.2.4 RAM 43
3.2.5 用户配置文件 43
3.2.6 断点和断点屏蔽 45
3.2.7 调试功能和使用方法 45
3.2.8 文本编辑显示功能 47
3.3 可视化调试和演示软件的使用方法 47
3.3.1 8位微程序控制单累加器多寄存器CPU结构 48
3.3.2 FPGA引脚设置 50
3.3.3 PC机软件界面 52
3.3.4 FPGA编程方法 56
第四章 8位微程序控制计算机设计 58
4.1 8位微程序控制计算机基本结构 58
4.2 指令系统和CPU结构 59
4.2.1 CPU的基本功能部件 59
4.2.2 指令系统和汇编代码 59
4.3 设计指令流程 61
4.4 微程序控制实现方法 63
4.4.1 微程序顺序控制方法 63
4.4.2 定义微操作信号 64
4.4.3 定义微指令编码功能 66
4.4.4 编写微程序 67
4.5 各功能部件的VHDL程序设计 70
4.5.1 时钟信号和复位信号 70
4.5.2 功能部件的VHDL程序设计 71
4.6 其他操作实现方法 73
4.6.1 移位操作 74
4.6.2 间接寻址 74
4.6.3 比较指令及注意事项 75
4.6.4 条件转移指令 75
4.6.5 堆栈和转子指令 76
4.6.6 I/O状态查询方法 77
4.6.7 中断及实现方法 77
4.6.8 扩展I/O功能 78
4.6.9 指令流水线 78
4.7 调试 78
4.7.1 数据传送指令 78
4.7.2 运算指令 79
4.7.3 跳转指令 79
4.7.4 I/O操作 79
4.8 8位多累加器计算机设计方法 80
4.9 8位微程序控制计算机实验题 82
第五章 16位微程序控制计算机设计 84
5.1 16位微程序控制计算机基本结构 84
5.2 8位与16位微程序控制计算机的区别 85
5.2.1 指令长度 85
5.2.2 指令的组织和读出 85
5.2.3 数据的读出和写入 86
5.3 指令系统和CPU结构 86
5.3.1 CPU的基本功能部件 86
5.3.2 定义指令系统并确定汇编代码 87
5.4 设计指令流程 89
5.5 微程序控制实现方法 90
5.5.1 微程序顺序控制方法 90
5.5.2 定义微操作信号 91
5.5.3 定义微指令编码功能 93
5.5.4 统计每条指令各操作步骤的微程序 94
5.6 各功能部件的VHDL程序设计 98
5.6.1 时钟信号和复位信号 98
5.6.2 功能部件的VHDL程序设计 99
5.7 其他操作实现方法 102
5.7.1 移位操作 102
5.7.2 间接寻址 103
5.7.3 ALU第二操作数暂存器 103
5.7.4 比较指令及注意事项 103
5.7.5 条件转移指令 103
5.7.6 堆栈和转子指令 104
5.7.7 I/O状态查询方法 105
5.8 调试 105
5.8.1 数据传送指令 105
5.8.2 运算指令 106
5.8.3 跳转指令 106
5.8.4 I/O操作 106
5.9 16位多累加器计算机设计方法 107
5.10 16位微程序控制计算机实验题 108
第六章 16位ARM架构RISC计算机设计 110
6.1 ARM架构简介 110
6.1.1 ARM架构结构框图 110
6.1.2 ARM处理器模式 112
6.1.3 ARM的流水线 115
6.1.4 ARM指令系统 117
6.2 16位ARM架构指令系统和CPU结构 122
6.2.1 CPU结构 122
6.2.2 指令系统 125
6.2.3 指令执行流程 126
6.3 简单RISC实现方法 127
6.3.1 寄存器堆 127
6.3.2 ALU 128
6.3.3 控制器 129
6.3.4 CPU模块 129
6.3.5 观察信号 130
6.4 其他操作实现方法 130
6.4.1 移位操作及其实现 130
6.4.2 各种寻址操作及其实现 131
6.4.3 转子指令 132
6.4.4 堆栈指令 133
6.4.5 I/O和中断 133
6.5 流水线的实现方法 134
6.5.1 指令流水线 134
6.5.2 流水线的相关性及其处理 134
6.6 16位ARM架构RISC计算机实验题 135
第七章 16位DLX16架构RISC计算机设计 137
7.1 DLX16指令系统 137
7.1.1 DLX16的寄存器 137
7.1.2 寻址方式 137
7.1.3 指令格式 137
7.2 简单DLX16基本结构 139
7.2.1 框图 139
7.2.2 存储器接口 141
7.2.3 简单DLX16控制器 142
7.3 流水线及其实现 146
7.3.1 设计方法和框图 146
7.3.2 流水线的结构相关 148
7.3.3 流水线的数据相关及其处理 150
7.3.4 流水线的控制相关 154
7.3.5 DLX16流水线控制器 155
7.4 16位DLX16架构RISC计算机实验题 158
第八章 Cache及其实现 159
8.1 Cache基本结构 159
8.1.1 Cache的结构 159
8.1.2 Cache放置方法 159
8.1.3 替换算法 161
8.1.4 存储器写策略 161
8.1.5 Cache的优化 161
8.2 Cache设计概述 163
8.2.1 实验计算机Cache基本结构 163
8.2.2 Cache的读出和替换 164
8.2.3 Cache的写入 164
8.3 Cache结构和操作 164
8.3.1 Cache的结构框图 165
8.3.2 信号 165
8.3.3 操作过程 166
8.4 Cache编程实现方法 167
8.4.1 Cache存储器 167
8.4.2 Cache控制器和其他电路 167
8.4.3 支持Cache的CPU设计 168
8.5 含Cache的RISC计算机实验题 168
附录一 FD-MCES中U3(XC2S150)引脚表 169
附录二 VHDL及其使用方法 173
附录三 计算机部件实验 191
参考文献 197