顶部
收藏

计算机组成与实现


作者:
高小鹏 万寒 编著
定价:
61.00元
ISBN:
978-7-04-061897-6
版面字数:
500.000千字
开本:
16开
全书页数:
暂无
装帧形式:
平装
重点项目:
暂无
出版时间:
2024-09-03
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
计算机组织与体系结构

本书是计算机领域本科教育教学改革试点工作(“101计划”)系列教材之一,以开发一个具有数十条指令规模且能够通过严格测试的功能型CPU为挑战性学习成果,培养学生掌握基于模型的CPU开发方法,进而具备分析、设计和开发计算机硬件系统的基本能力,为后续专业学习与职业发展奠定坚实基础。

本书根据设计一台计算机的教学要求,将传统意义上的汇编语言和计算机组成两门课程的相关知识进行重构,包括计算机概述、数据表示与运算方法、计算机指令、单周期CPU、多周期CPU、流水线CPU、存储层次、输入输出和集成MIPS微系统等内容。同时,创新性地介绍“CPU形式建模综合方法”,并以“系统设计详解”的形式讲解系统设计中的思考重点与权衡精要。为了满足读者对在线开放学习的需求,本书配套建设了重难点知识点视频、相关工具操作视频、教学课件、难度递进的实验体系和自动评测系统。上述所有教学资源均部署在希冀平台(具体操作参见附录B.5),便于读者在线实践。

本书既可作为高校本科计算机类专业计算机组成课程教材,也可供相关技术人员参考。

  • 前辅文
  • 第1章 计算机概述
    • 1.1 计算机的应用及其分类
    • 1.2 计算机的基本硬件构成
      • 1.2.1 输入输出设备
      • 1.2.2 主存储器
      • 1.2.3 中央处理器
    • 1.3 计算机的层次结构
    • 1.4 本章小结
    • 思考题
  • 第2章 数据表示与运算方法
    • 2.1 常见进制及其转换
      • 2.1.1 十进制
      • 2.1.2 二进制
      • 2.1.3 十六进制
    • 2.2 字节、字等常用术语
    • 2.3 二进制加法
    • 2.4 整数的二进制表示方法
      • 2.4.1 原码
      • 2.4.2 补码
    • 2.5 浮点数的二进制表示方法
    • 2.6 补码的常见基本运算
      • 2.6.1 负数的二进制补码表示
      • 2.6.2 减法
      • 2.6.3 符号扩展
      • 2.6.4 比较
      • 2.6.5 乘法
      • 2.6.6 除法
    • 2.7 本章小结
    • 思考题
  • 第3章 计算机指令
    • 3.1 MIPS指令集概述
    • 3.2 CPU执行程序的基本原理
      • 3.2.1 程序的全流程
      • 3.2.2 主存储器
      • 3.2.3 CPU
      • 3.2.4 指令与指令集
      • 3.2.5 示例程序执行过程解读
      • 3.2.6 CPU执行程序的核心要点
    • 3.3 计算器:一个综合案例
    • 3.4 指令格式及其操作数
      • 3.4.1 指令基本格式
      • 3.4.2 第1类操作数:寄存器
      • 3.4.3 第2类操作数:立即数
      • 3.4.4 第3类操作数:主存单元
    • 3.5 指令集与汇编程序
      • 3.5.1 汇编程序的基本结构
      • 3.5.2 主存变量声明
      • 3.5.3 读存储器
      • 3.5.4 写存储器
      • 3.5.5 寄存器加载立即数高位
      • 3.5.6 算术运算
      • 3.5.7 逻辑运算
      • 3.5.8 分支指令与if-else、switch及循环结构
      • 3.5.9 伪指令
      • 3.5.10 移位指令
      • 3.5.11 函数
      • 3.5.12 空操作指令
    • 3.6 指令编码
      • 3.6.1 R型指令
      • 3.6.2 I型指令
      • 3.6.3 J型指令
    • 3.7 汇编与反汇编实战
      • 3.7.1 汇编
      • 3.7.2 反汇编
    • 3.8 实验指引
      • 3.8.1 MARS的获取与安装
      • 3.8.2 实验内容
    • 3.9 本章小结
    • 思考题
  • 第4章 单周期CPU
    • 4.1 单周期CPU设计模型
      • 4.1.1 MIPS-C0指令集
      • 4.1.2 单周期CPU的基本结构
      • 4.1.3 完整的数据通路模型
      • 4.1.4 完整的单周期CPU模型
    • 4.2 数据通路基础部件建模
      • 4.2.1 程序计数器
      • 4.2.2 次地址计算单元
      • 4.2.3 指令存储器
      • 4.2.4 寄存器堆
      • 4.2.5 数据存储器
      • 4.2.6 算术逻辑单元
    • 4.3 构建单周期CPU的数据通路
      • 4.3.1 从addu指令开始
      • 4.3.2 支持subu指令
      • 4.3.3 支持ori指令
      • 4.3.4 支持lw指令
      • 4.3.5 支持sw指令
      • 4.3.6 支持beq指令
      • 4.3.7 支持jal指令
      • 4.3.8 支持jr指令
    • 4.4 构建单周期CPU的控制器
      • 4.4.1 addu指令的执行过程及其控制信号取值
      • 4.4.2 ori指令的执行过程及其控制信号取值
      • 4.4.3 lw指令的执行过程及其控制信号取值
      • 4.4.4 beq指令的执行过程及其控制信号取值
      • 4.4.5 生成控制信号表达式
    • 4.5 集成数据通路与控制器
    • 4.6 单周期CPU性能分析
      • 4.6.1 数字电路时钟频率计算方法
      • 4.6.2 add执行延迟分析
      • 4.6.3 单周期CPU执行延迟分析
    • 4.7 实验指引
      • 4.7.1 基于Logisim的数字系统设计开发
      • 4.7.2 基于ISE的数字系统设计开发
      • 4.7.3 面向单周期CPU的功能测试
    • 4.8 本章小结
    • 思考题
  • 第5章 多周期CPU
    • 5.1 破解关键路径的一般方法
    • 5.2 改造单周期数据通路为多周期数据通路
    • 5.3 指令执行过程与控制信号取值分析
      • 5.3.1 分段的电路模型及时序模型
      • 5.3.2 多周期数据通路的控制信号
      • 5.3.3 lw指令的执行过程及其控制信号取值
      • 5.3.4 add和sub指令的执行过程及其控制信号取值
      • 5.3.5 ori指令的执行过程及其控制信号取值
      • 5.3.6 beq指令的执行过程及其控制信号取值
      • 5.3.7 lui指令的执行过程及其控制信号取值
      • 5.3.8 jal指令的执行过程及其控制信号取值
      • 5.3.9 分析方法小结
    • 5.4 构建多周期控制器
      • 5.4.1 构造控制信号的真值表
      • 5.4.2 构造控制信号的表达式
      • 5.4.3 构造状态机
      • 5.4.4 构造时钟周期变量
    • 5.5 多周期CPU性能分析
    • 5.6 本章小结
    • 思考题
  • 第6章 流水线CPU
    • 6.1 简单的流水线电路
    • 6.2 流水线概述
    • 6.3 流水线数据通路
    • 6.4 流水线控制
    • 6.5 流水线冒险
      • 6.5.1 结构冒险
      • 6.5.2 数据冒险
      • 6.5.3 控制冒险
      • 6.5.4 冒险的成因与对策
    • 6.6 性能分析
    • 6.7 3种CPU模型对比
    • 6.8 实验指引
    • 6.9 本章小结
    • 思考题
  • 第7章 存储层次
    • 7.1 概述
      • 7.1.1 存储器与CPU的性能差
      • 7.1.2 通过一个简单C程序理解存储墙
      • 7.1.3 存储层次的动机
      • 7.1.4 存储层次的常用概念
      • 7.1.5 典型的存储层次
    • 7.2 cache
      • 7.2.1 直接映射cache
      • 7.2.2 组相联cache
      • 7.2.3 全相联cache
      • 7.2.4 cache的读写细节
      • 7.2.5 cache块替换策略
      • 7.2.6 多级cache及性能计算
      • 7.2.7 实现直接映射cache
    • 7.3 虚拟存储
      • 7.3.1 CPU地址与存储器地址
      • 7.3.2 基本原理
      • 7.3.3 地址转换
      • 7.3.4 页表
      • 7.3.5 页表缓冲区
      • 7.3.6 集成TLB与cache
      • 7.3.7 存储保护与共享
      • 7.3.8 页面替换
    • 7.4 硬盘
    • 7.5 本章小结
    • 思考题
  • 第8章 输入输出
    • 8.1 典型的输入输出系统
    • 8.2 总线基础
    • 8.3 I/O接口基本功能与结构
    • 8.4 程序访问设备
      • 8.4.1 寄存器表示
      • 8.4.2 寄存器的地址
      • 8.4.3 硬件支持访问
      • 8.4.4 设备判断当前地址
      • 8.4.5 软硬件集成
    • 8.5 PCI总线概述
      • 8.5.1 主设备与从设备
      • 8.5.2 总线信号概述
      • 8.5.3 总线传输时序分析
    • 8.6 PCI总线实现P&P的原理
      • 8.6.1 自动配置技术方案
      • 8.6.2 配置空间
      • 8.6.3 PCI设备译码方案
    • 8.7 中断
      • 8.7.1 为什么需要中断
      • 8.7.2 中断处理的硬件机制
      • 8.7.3 中断服务程序框架
      • 8.7.4 防止中断重入
    • 8.8 3 种数据传输方式
    • 8.9 异常
    • 8.10 本章小结
    • 思考题
  • 第9章 集成MIPS微系统
    • 9.1 概述
      • 9.1.1 动机
      • 9.1.2 目标
      • 9.1.3 实验环境
    • 9.2 MIPS体系结构
      • 9.2.1 地址空间分配
      • 9.2.2 控制状态寄存器
      • 9.2.3 特权指令
    • 9.3 定时概述
      • 9.3.1 定时模式介绍
      • 9.3.2 寄存器定义
    • 9.4 串行通信概述
      • 9.4.1 波特率
      • 9.4.2 字符帧格式
      • 9.4.3 波特率与时钟
      • 9.4.4 数据发送与接收
      • 9.4.5 UART控制器
      • 9.4.6 RS-232接口标准
      • 9.4.7 微系统与HOST通信
      • 9.4.8 MiniUART基本特性
    • 9.5 完善CPU设计
      • 9.5.1 CP0设计
      • 9.5.2 添加CP0
      • 9.5.3 支持设备
    • 9.6 通过系统桥连接设备
      • 9.6.1 连接方式概述
      • 9.6.2 系统桥设计
    • 9.7 定时器设计
      • 9.7.1 接口信号分析
      • 9.7.2 计数功能设计
    • 9.8 MiniUART设计
      • 9.8.1 接口信号分析
      • 9.8.2 内部逻辑功能分析
      • 9.8.3 发送移位寄存器与接收移位寄存器
      • 9.8.4 发送控制器
      • 9.8.5 接收控制器
      • 9.8.6 线路状态寄存器设计
      • 9.8.7 中断控制单元设计
      • 9.8.8 总线接口单元设计
    • 9.9 软件开发
      • 9.9.1 软件设计概述
      • 9.9.2 消除中断服务程序代码规模的限制
      • 9.9.3 代码生成的要点
    • 9.10 软硬件协同分析
    • 9.11 本章小结
    • 思考题
  • 附录A MIPS-C指令集
  • 附录B 开发工具及实验环境
  • 参考文献

相关图书