顶部
收藏

计算机硬件系统设计原理


作者:
刘子良等
定价:
53.00元
ISBN:
978-7-04-044227-4
版面字数:
820.000千字
开本:
16开
全书页数:
563页
装帧形式:
平装
重点项目:
暂无
出版时间:
2016-02-01
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
计算机组织与体系结构

本书根据教育部提出的“基础学科拔尖学生培养试验计划(珠峰计划)”和“卓越工程师培养计划”编写而成。它将以往的“微型计算机技术及应用”“计算机组成原理”“计算机系统结构”“并行处理”和“精简指令集计算机(RISC)”等课程,从计算机系统硬件设计的角度出发,沿着单机指令串行执行→重叠→流水线、线性流水线→非线性流水线、指令的有序执行→乱序执行、单机→多核→多机系统、冯·诺依曼体系→非冯·诺依曼体系的脉络,有机地结合在一起,科学地、系统地、定量地揭示当代计算机的本质特征,运用到当前计算机系统设计问题中去。

全书共10章,包括计算机设计史简介、数学语言与计算机部件间的映像关系、运算方法采用与运算器设计、指令集结构设计、存储器系统设计、控制器设计、流水线控制技术、输入/输出系统设计、多处理机、其他设计思想简介。

本书可作为高等学校计算机科学与技术专业本科生的教材,也可作为教师的教学参考书。

  • 前辅文
  • 第1章 计算机设计史简介
    • 1.1 自动计算发展史
    • 1.2 从ENIAC到冯•诺依曼体系
      • 1.2.1 ENIAC
      • 1.2.2 冯•诺依曼体系
    • 1.3 系列机与兼容机技术
    • 1.4 层次技术
    • 1.5 多层计算机
      • 1.5.1 现代多层计算机每层的研究对象及层次间的关系
      • 1.5.2 多层计算机的演化
    • 1.6 虚拟机技术
    • 1.7 从单机到多机系统
    • 习题1
  • 第2章 数学语言与计算机部件间的映像关系
    • 2.1 一个实际数引入计算机所面临的问题
      • 2.1.1 机器中如何表示符号
      • 2.1.2 数码处理方案
      • 2.1.3 小数点的处理:定点与浮点
      • 2.1.4 一个实际数在机器中的数值化表示
    • 2.2 有符号整数在机器内的表示
      • 2.2.1 为什么会想到采用2的补码表示
      • 2.2.2 用数学抽象方法探索其中奥妙
      • 2.2.3 计算机中曾采用过1的补码表示
      • 2.2.4 原码表示的评说
    • 2.3 无符号整数在机器内的表示
    • 2.4 有/无符号整数在机器内的存放
    • 2.5 实数在机器内的表示
      • 2.5.1 实数、浮点数表示两者之间存在的差异
      • 2.5.2 IEEE 754标准与以往浮点运算之区别
    • 2.6 变量在机器内的表示
    • 2.7 字符串数据在机器内的表示
      • 2.7.1 Big-endian和Little-endian分配
      • 2.7.2 具有定长结点的连接表表示法
      • 2.7.3 块链结构
    • 2.8 布尔值数据在机器内的表示
    • 2.9 向量数据在机器内的表示
    • 2.10 算术表达式在机器内的表示与软、硬件接口
      • 2.10.1 算术表达式的机内表示
      • 2.10.2 软、硬件接口
    • 习题2
  • 第3章 运算方法采用与运算器设计
    • 3.1 加减运算及实现线路
      • 3.1.1 补码加减法算法
      • 3.1.2 补码加减运算器设计
    • 3.2 数值运算中的溢出处理问题
      • 3.2.1 带符号数溢出处理
      • 3.2.2 无符号整数溢出处理方案
      • 3.2.3 高级语言对溢出的处理
    • 3.3 加法器逻辑结构的改进
      • 3.3.1 影响速度的原因
      • 3.3.2 计算机中常用的策略
    • 3.4 二进制数的快速简捷算法
    • 3.5 乘法器的设计
      • 3.5.1 乘法器的硬件实现
      • 3.5.2 带符号数乘法
      • 3.5.3 Booth算法的核心技术
    • 3.6 快速乘法器设计
      • 3.6.1 查表法
      • 3.6.2 华莱士树
    • 3.7 除法器的设计
      • 3.7.1 除法器的硬件实现
      • 3.7.2 带符号数除法
    • 3.8 SRT算法
      • 3.8.1 基数-2 SRT除法
      • 3.8.2 基数-4 SRT除法
    • 3.9 浮点运算及实现线路
      • 3.9.1 浮点乘法与除法
      • 3.9.2 浮点加法与减法
      • 3.9.3 浮点加法算术单元结构
    • 3.10 构造算术逻辑单元
      • 3.10.1 经典的ALU——SN74181
      • 3.10.2 MIPS中构造32位ALU
    • 习题3
  • 第4章 指令集结构设计
    • 4.1 什么是一个好的指令集结构
    • 4.2 指令集设计中涉及的一般性问题
      • 4.2.1 CPU的存储类型
      • 4.2.2 寄存器组织
      • 4.2.3 存储模式
    • 4.3 指令集的词义学问题
      • 4.3.1 指令集特征
      • 4.3.2 指令中的地址结构
      • 4.3.3 扩展操作码技术
      • 4.3.4 等长编码
      • 4.3.5 操作数给出方式、操作数总数和内存操作数个数
      • 4.3.6 操作类型的采集及设置过程中的考虑
    • 4.4 指令集的语法学问题
      • 4.4.1 冯•诺依曼指令格式的局限性
      • 4.4.2 寻址方式设置的一些观点
      • 4.4.3 寻址方式与汇编语言程序设计
      • 4.4.4 如何进行复杂的分支程序设计
      • 4.4.5 循环程序设计中的软硬件接口
    • 4.5 RISC与CISC之争
    • 4.6 指令功能的增强与改进
    • 习题4
  • 第5章 存储器系统设计
    • 5.1 主存层次设计
      • 5.1.1 存储器的基本电路与存储器芯片的内部组织结构
      • 5.1.2 工作时序
      • 5.1.3 用ROM芯片和RAM芯片构成主存储器
      • 5.1.4 大容量存储器结构
      • 5.1.5 存储器控制与DRAM刷新开销
      • 5.1.6 纠错
      • 5.1.7 减少主存延迟的技术
      • 5.1.8 提高主存带宽的技术
      • 5.1.9 相联存储器
    • 5.2 Cache层次设计
      • 5.2.1 主存的一个块在Cache中的存放
      • 5.2.2 如何找到在Cache中的一个块
      • 5.2.3 没有命中时哪个块应被替换
      • 5.2.4 信息的一致性
      • 5.2.5 Cache工作过程与性能分析
      • 5.2.6 Cache性能优化方案一:降低Cache的缺失率
      • 5.2.7 Cache性能优化方案二:降低Cache失效开销
      • 5.2.8 Cache性能优化方案三:减少命中时间
      • 5.2.9 Cache实现
    • 5.3 虚拟存储器层次设计
      • 5.3.1 磁盘与磁盘系统的演化
      • 5.3.2 虚拟存储器层次需解决的问题
      • 5.3.3 磁盘中的一个块在主存中的存放
      • 5.3.4 如何找到主存中的一个块
      • 5.3.5 提高响应时间和响应速度的方法与技术
      • 5.3.6 缺页
      • 5.3.7 如何保证主存和磁盘信息的一致性
      • 5.3.8 MMU技术
      • 5.3.9 虚拟存储器与Cache实/虚模式下的交互
    • 习题5
  • 第6章 控制器设计
    • 6.1 时序计数器法
    • 6.2 模型机硬连线控制器的设计与实现
      • 6.2.1 指令系统设计
      • 6.2.2 CPU设计
      • 6.2.3 信息传送路径
      • 6.2.4 拟定时序系统
      • 6.2.5 指令流程与操作时间表
      • 6.2.6 微操作组合与化简
    • 6.3 微程序设计
      • 6.3.1 微程序时序
      • 6.3.2 微指令格式设计
      • 6.3.3 模型机的微指令格式设计及微程序控制器组成框图
      • 6.3.4 微程序流程图
      • 6.3.5 微程序编制
      • 6.3.6 微程序在CM中的存放与转移示意
      • 6.3.7 微代码编制
    • 习题6
  • 第7章 流水线控制技术
    • 7.1 从一次重叠、先行控制到流水线
      • 7.1.1 一次重叠
      • 7.1.2 先行控制
      • 7.1.3 流水线
    • 7.2 流水线性能分析
      • 7.2.1 吞吐率
      • 7.2.2 加速比
      • 7.2.3 效率
      • 7.2.4 流水线性能分析举例
    • 7.3 流水线指令集结构
      • 7.3.1 DLX指令的处理步骤
      • 7.3.2 以流水方式执行的指令集结构
      • 7.3.3 DLX中的操作描述
    • 7.4 DLX流水线的数据通路
      • 7.4.1 非流水下的DLX数据通路
      • 7.4.2 非流水下的DLX数据通路与以往80X86数据通路的比较
      • 7.4.3 流水下的DLX数据通路
    • 7.5 线性流水线中的“相关”问题及消除方法
      • 7.5.1 结构冒险及消除方法
      • 7.5.2 数据相关及存在的冒险
      • 7.5.3 解决RAW冒险的方法
      • 7.5.4 RAW冒险下的编译器调度
      • 7.5.5 控制冒险及减少分支开销的方法
    • 7.6 非线性流水线的调度
    • 7.7 动态流水线
      • 7.7.1 有序与乱序
      • 7.7.2 采用记分板机制的动态调度法
      • 7.7.3 Tomasulo动态调度法
    • 7.8 超流水线与超标量流水线
      • 7.8.1 超流水线
      • 7.8.2 超标量流水线
    • 习题7
  • 第8章 输入/输出(I/O)系统设计
    • 8.1 I/O系统设计中的一些问题
    • 8.2 连接I/O设备到CPU/存储器
      • 8.2.1 总线
      • 8.2.2 总线技术的一般问题
    • 8.3 可编程I/O
      • 8.3.1 查询方式的由来
      • 8.3.2 I/O命令和I/O指令
      • 8.3.3 查询传送应用举例
      • 8.3.4 I/O系统开销
    • 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.5.5 中断驱动I/O的开销
    • 8.6 直接存储器访问(DMA)
      • 8.6.1 DMA传输方式
      • 8.6.2 DMA传送过程
      • 8.6.3 DMA控制器实例
      • 8.6.4 采用DMA进行I/O的开销
    • 8.7 I/O通道
      • 8.7.1 通道类型
      • 8.7.2 通道结构计算机中的I/O指令和通道程序字
      • 8.7.3 I/O通道工作过程
      • 8.7.4 通道流量分析
    • 8.8 I/O系统设计规范
    • 8.9 I/O处理性能
      • 8.9.1 响应时间与吞吐率
      • 8.9.2 Little定律
      • 8.9.3 Markovian模型
    • 8.10 I/O与操作系统接口
      • 8.10.1 操作系统在处理I/O中所扮演的角色
      • 8.10.2 为了避免灰色数据I/O与主存、Cache的连接
      • 8.10.3 存储系统虚/实地址模式下的DMA操作
      • 8.10.4 在操作系统中使用的中断
    • 习题8
  • 第9章 多处理机
    • 9.1 引言
    • 9.2 SIMD计算机
      • 9.2.1 阵列处理机
      • 9.2.2 向量处理机
    • 9.3 MIMD计算机
      • 9.3.1 多处理机系统拓扑结构
      • 9.3.2 路由
    • 9.4 基于UMA的多处理机体系结构
      • 9.4.1 基于UMA总线的SMP体系结构
      • 9.4.2 可重构连接的UMA多处理机系统
      • 9.4.3 多端口存储器
    • 9.5 基于NUMA的多处理机体系结构
      • 9.5.1 基于目录的NUMA多处理机系统
      • 9.5.2 COMA多处理器系统
    • 9.6 多处理机系统中的存储管理
      • 9.6.1 共享存储器
      • 9.6.2 共享变量访问
      • 9.6.3 Cache一致性
      • 9.6.4 MESI协议
    • 9.7 多处理机编程
      • 9.7.1 程序的并行性
      • 9.7.2 并行程序设计特点
      • 9.7.3 并行程序设计中程序的划分和调度
    • 9.8 多处理机操作系统和软件
    • 9.9 多核处理器与编程
      • 9.9.1 多核处理器
      • 9.9.2 多核编程
    • 习题9
  • 第10章 其他设计思想简介
    • 10.1 数据流计算
    • 10.2 归约机
    • 10.3 脉动阵列
    • 10.4 神经网络
    • 10.5 计算机设计性能和定量准则
      • 10.5.1 CPU性能分析
      • 10.5.2 CPU性能分析举例
      • 10.5.3 加速比的概念和Amdahl定律
      • 10.5.4 测量CPU性能的各个分量
    • 习题10
  • 主要参考文献

相关图书