第一部分 数字逻辑与有限状态机
第1章 数字逻辑基础
1.1 布尔代数
1.1.1 基本函数
1.1.2 布尔函数的使用
1.2 基本的组合逻辑
1.3 更复杂的组合元件
1.3.1 多路选择器
1.3.2 译码器
1.3.3 编码器
1.3.4 比较器
1.3.5 加法器和减法器
1.3.6 存储器
1.4 组合电路设计
1.4.1 BCD码的7段译码器
1.4.2 数据排序器
1.5 基本时序元件
1.6 更复杂的时序元件
1.6.1 计数器
1.6.2 移位寄存器
1.7 实例:可编程逻辑设备
1.8 总结
1.9 习题
第2章 介绍有限状态机
2.1 状态图和状态表
2.2 Mealy机和Moore机
2.3 设计状态图
2.3.1 模6计数器
2.3.2 串检查器
2.3.3 收费站控制器
2.4 从状态图到实现
2.4.1 状态赋值
2.4.2 Mealy机和Moore机的实现
2.4.3 产生次态
2.4.4 产生系统输出
2.4.5 一种可替代的设计
2.4.6 八状态串检查器
2.5 实例:实际考虑
2.5.1 未使用状态
2.5.2 异步设计
2.5.3 状态机转换
2.6 总结
2.7 习题
第二部分 计算机组成与体系结构
第3章 指令集结构
3.1 程序设计语言的级别
3.1.1 语言种类
3.1.2 编译和汇编程序
3.2 汇编语言指令
3.2.1 指令类型
3.2.2 数据类型
3.2.3 寻址方式
3.2.4 指令格式
3.3 指令集结构设计
3.4 相对简单的指令集结构
3.5 实例:8085微处理器指令集结构
3.5.1 8085微处理器的寄存器组
3.5.2 8085微处理器指令集
3.5.3 一个简单的8085程序
3.5.4 分析8085指令集结构
3.6 总结
3.7 习题
第4章 介绍计算机组成
4.1 基本的计算机组成
4.1.1 系统总线
4.1.2 指令周期
4.2 CPU组成
4.3 存储器子系统组成和接口
4.3.1 存储器的种类
4.3.2 芯片内部组成
4.3.3 存储器子系统配置
4.3.4 多字节数据组成
4.3.5 基本功能的拓展
4.4 I/O子系统组成和接口
4.5 相对简单计算机
4.6 实例:一台基于8085的计算机
4.7 总结
4.8 习题
第5章 寄存器传送语言
5.1 微操作和寄存器传送语言
5.2 用RTL描述数字系统
5.2.1 数字元件
5.2.2 简单系统的描述与实现
5.3 更复杂的数字系统和RTL
5.3.1 模6计数器
5.3.2 收费站控制器
5.4 实例:VHDL-VHSIC硬件描述语言
5.4.1 VHDL语法
5.4.2 高层抽象的VHDL设计
5.4.3 低层抽象的VHDL设计
5.5 总结
5.6 习题
第6章 CPU设计
6.1 CPU的设计规范
6.2 非常简单CPU的设计与实现
6.2.1 非常简单CPU的设计规范
6.2.2 从存储器中取指令
6.2.3 指令译码
6.2.4 指令执行
6.2.5 建立所需的数据通路
6.2.6 非常简单ALU的设计
6.2.7 用硬连线控制设计控制单元
6.2.8 设计验证
6.3 相对简单CPU的设计和实现
6.3.1 相对简单CPU的规范
6.3.2 取指令和指令译码
6.3.3 执行指令
6.3.4 创建数据通路
6.3.5 相对简单ALU的设计
6.3.6 用硬连线控制设计控制单元
6.3.7 设计验证
6.4 简单CPU的缺点
6.4.1 更多的内部寄存器和高速缓存
6.4.2 CPU内部的多总线
6.4.3 指令流水线式处理
6.4.4 更大的指令集
6.4.5 子程序和中断
6.5 实例:8085微处理器的内部结构
6.6 总结
6.7 习题
第7章 微序列控制单元设计
7.1 微序列控制器设计基础
7.1.1 微序列控制器的操作
7.1.2 微指令格式
7.2 非常简单微序列控制器的设计和实现
7.2.1 基本布局
7.2.2 生成正确序列并设计映象逻辑
7.2.3 用水平微代码生成微操作
7.2.4 用垂直微代码生成微操作
7.2.5 从微代码直接产生控制信号
7.3 相对简单微序列控制器的设计和实现
7.3.1 修改状态图
7.3.2 设计顺序硬件和微代码
7.3.3 用水平微代码完成设计
7.4 减少微指令数
7.4.1 微子程序
7.4.2 微代码跳转
7.5 微程序控制和硬连线控制的比较
7.5.1 指令集的复杂度
7.5.2 修改的容易度
7.5.3 时钟速度
7.6 实例:一个(大部分是)微代码的CPU:奔腾微处理器
7.7 总结
7.8 习题
第8章 运算方法2
8.1 无符号表示法
8.1.1 加法和减法
8.1.2 乘法
8.1.3 除法
8.2 带符号表示法
8.2.1 符号幅值表示法
8.2.2 符号补码表示法
8.3 BCD码(binary coded decimal)
8.3.1 BCD码的格式
8.3.2 加法和减法
8.3.3 乘法和除法
8.4 专用运算部件
8.4.1 流水线
8.4.2 查找表
8.4.3 华莱士树
8.5 浮点数
8.5.1 数据格式
8.5.2 数据性质
8.5.3 加法和减法
8.5.4 乘法和除法
8.6 实例:IEEE 754 浮点标准
8.6.1 格式
8.6.2 非规范数
8.7 总结
8.8 习题
第9章 存储器结构
9.1 存储器的层次结构
9.2 cache存储器
9.2.1 相联存储器
9.2.2 相联映象的cache存储器
9.2.3 直接映象的cache存储器
9.2.4 组相联映象的cache存储器
9.2.5 在cache中替换数据
9.2.6 写数据到cache
9.2.7 cache的性能
9.3 虚拟存储器
9.3.1 分页
9.3.2 分段
9.3.3 存储保护
9.4 基本cache和虚拟存储器的扩展
9.4.1 基本cache的扩展
9.4.2 基本虚拟存储器的扩展
9.5 实例:Pentium/Windows个人计算机上的内存管理
9.6 总结
9.7 习题
第10章 输入输出结构
10.1 异步数据传输
10.1.1 源启动的数据传送
10.1.2 目的启动的数据传送
10.1.3 握手
10.2 可编程I/O
10.2.1 新指令
10.2.2 新控制信号
10.2.3 新状态和RTL代码
10.2.4 修改CPU硬件以支持新指令
10.2.5 确保其他指令正常工作
10.3 中断
10.3.1 CPU和I/O设备之间的数据传送
10.3.2 中断类型
10.3.3 中断处理
10.3.4 中断硬件和优先级
10.3.5 CPU内部中断实现
10.4 直接存储器访问
10.4.1 将直接存储器访问(DMA)纳入计算机系统
10.4.2 DMA传输方式
10.4.3 修改CPU使其与DMA共处
10.5 I/O处理器
10.6 串行通信2
10.6.1 串行通信原理2
10.6.2 通用异步收发器(UART)
10.7 实例:串行通信标准
10.7.1 RS-232-C标准
10.7.2 通用串行总线标准
10.8 总结
10.9 习题
第三部分 高级专题
第11章 精简指令集计算
11.1 RISC基本原理
11.1.1 定长指令
11.1.2 只有LOAD和STORE的指令访问存储器
11.1.3 较少的寻址方式
11.1.4 指令流水线
11.1.5 大量的寄存器
11.1.6 硬连线控制单元
11.1.7 延时载入和分支
11.1.8 指令的预测执行
11.1.9 优化编译器
11.1.10 分离指令和数据流
11.2 RISC指令集
11.3 指令流水线和寄存器窗口
11.3.1 指令流水线
11.3.2 寄存器窗口和重命名
11.4 指令流水线冲突
11.4.1 数据冲突
11.4.2 分支冲突
11.5 RISC与CISC的比较
11.6 实例:Itanium微处理器
11.7 小结
11.8 习题
第12章 介绍并行处理
12.1 单处理机系统中的并行机制
12.2 多处理机系统的组织结构
12.2.1 弗林分类法
12.2.2 系统拓扑结构
12.2.3 MIMD系统的体系结构
12.3 多处理机系统中的通信
12.3.1 固定连接
12.3.2 可重构连接
12.3.3 多级互连网络(MIN)的路由
12.4 多处理机系统中的存储器管理
12.4.1 共享存储器
12.4.2 Cache一致性
12.5 多处理机操作系统和软件
12.6 并行算法
12.6.1 并行冒泡排序
12.6.2 并行矩阵乘法
12.7 其他的并行体系结构
12.7.1 数据流计算
12.7.2 脉动阵列
12.7.3 神经网络
12.8 小结
12.9 习题