高级检索结果页
欢迎来到工程科技数字图书馆
登录 | 注册
 
您当前的位置:图书 > 计算机组成与设计:硬件/软件接口 MIPS版(原书第6版)

计算机组成与设计:硬件/软件接口 MIPS版(原书第6版)

本书由2017年图灵奖的两位得主撰写,是计算机体系结构领域的经典教材,每年被超过40000名学生使用。新版的主要更新是在每章中添加了关于DSA的内容,并更新了所有实例,使全书更加与时俱进,满足学生和读者的新需求。

译者序
前言
作者简介
第1章 计算机抽象及相关技术
 1.1 引言
  1.1.1 计算应用的分类及其特性
  1.1.2 欢迎来到后PC时代
  1.1.3 你能从本书学到什么
 1.2 计算机体系结构的7个伟大思想
  1.2.1 使用抽象简化设计
  1.2.2 加速大概率事件
  1.2.3 通过并行提高性能
  1.2.4 通过流水线提高性能
  1.2.5 通过预测提高性能
  1.2.6 存储层次
  1.2.7 通过冗余提高可靠性
 1.3 程序表象之下
 1.4 机箱之内的硬件
  1.4.1 显示器
  1.4.2 触摸屏
  1.4.3 打开机箱
  1.4.4 数据安全
  1.4.5 与其他计算机通信
 1.5 处理器和存储器制造技术
 1.6 性能
  1.6.1 性能的定义
  1.6.2 性能的度量
  1.6.3 CPU性能及其因素
  1.6.4 指令的性能
  1.6.5 经典的CPU性能公式
 1.7 功耗墙
 1.8 沧海巨变:从单处理器向多处理器转变
 1.9 实例:Intel Core i7基准
  1.9.1 SPEC CPU基准测试程序
  1.9.2 SPEC功耗基准测试程序
 1.10 加速:使用Python语言编写矩阵乘法程序
 1.11 谬误与陷阱
 1.12 本章小结
 1.13 历史观点和拓展阅读
 1.14 自学
 1.15 练习题
第2章 指令:计算机的语言
 2.1 引言
 2.2 计算机硬件的操作
 2.3 计算机硬件的操作数
  2.3.1 存储器操作数
  2.3.2 常数或立即数操作数
 2.4 有符号数和无符号数
 2.5 计算机中指令的表示
 2.6 逻辑操作
 2.7 决策指令
  2.7.1 循环
  2.7.2 case/switch语句
 2.8 计算机硬件对过程的支持
  2.8.1 使用更多寄存器
  2.8.2 嵌套过程
  2.8.3 在栈中为新数据分配空间
  2.8.4 在堆中为新数据分配空间
 2.9 人机交互
 2.10 MIPS中32位立即数和地址的寻址
  2.10.1 32位立即数
  2.10.2 分支和跳转中的寻址
  2.10.3 MIPS寻址模式总结
  2.10.4 机器语言解码
 2.11 并行与指令:同步
 2.12 翻译并执行程序
  2.12.1 编译器
  2.12.2 汇编器
  2.12.3 链接器
  2.12.4 加载器
  2.12.5 动态链接库
  2.12.6 启动一个Java程序
 2.13 综合实例:C排序程序
  2.13.1 swap过程
  2.13.2 sort过程
 2.14 数组与指针
  2.14.1 用数组实现clear
  2.14.2 用指针实现clear
  2.14.3 比较两个版本的clear
 2.15 高级内容:编译C语言和解释Java语言
 2.16 实例:ARMv7(32位)指令集
  2.16.1 寻址模式
  2.16.2 比较和条件分支
  2.16.3 ARM的特色
 2.17 实例:ARMv8(64位)指令集
 2.18 实例:RISC-V指令集
 2.19 实例:x86指令集
  2.19.1 Intel x86的演进
  2.19.2 x86寄存器和数据寻址模式
  2.19.3 x86整数操作
  2.19.4 x86指令编码
  2.19.5 x86总结
 2.20 加速:使用C语言编写矩阵乘法程序
 2.21 谬误与陷阱
 2.22 本章小结
 2.23 历史观点和拓展阅读
 2.24 自学
 2.25 练习题
第3章 计算机的算术运算
 3.1 引言
 3.2 加法和减法
 3.3 乘法
  3.3.1 顺序的乘法算法和硬件
  3.3.2 有符号乘法
  3.3.3 更快速的乘法
  3.3.4 MIPS中的乘法
  3.3.5 小结
 3.4 除法
  3.4.1 除法算法和硬件
  3.4.2 有符号除法
  3.4.3 更快速的除法
  3.4.4 MIPS中的除法
  3.4.5 小结
 3.5 浮点运算
  3.5.1 浮点表示
  3.5.2 浮点加法
  3.5.3 浮点乘法
  3.5.4 MIPS中的浮点指令
  3.5.5 算术精确性
  3.5.6 小结
 3.6 并行性和计算机算术:子字并行
 3.7 实例:x86中的流处理SIMD扩展和高级向量扩展
 3.8 加速:子字并行和矩阵乘法
 3.9 谬误与陷阱
 3.10 本章小结
 3.11 历史观点和拓展阅读
 3.12 自学
 3.13 练习题
第4章 处理器
 4.1 引言
  4.1.1 一个基本的MIPS实现
  4.1.2 实现方式概述
 4.2 逻辑设计的一般方法
 4.3 建立数据通路
 4.4 一个简单的实现机制
  4.4.1 ALU控制
  4.4.2 主控制单元的设计
  4.4.3 为什么不使用单周期实现方式
 4.5 多周期实现
 4.6 流水线概述
  4.6.1 面向流水线的指令集设计
  4.6.2 流水线冒险
  4.6.3 小结
 4.7 流水线数据通路与控制
  4.7.1 图形化表示的流水线
  4.7.2 流水线控制
 4.8 数据冒险:旁路与阻塞
 4.9 控制冒险
  4.9.1 假定分支不发生
  4.9.2 缩短分支的延迟
  4.9.3 动态分支预测
  4.9.4 小结
 4.10 异常
  4.10.1 MIPS体系结构中的异常处理
  4.10.2 流水线实现中的异常
 4.11 指令级并行
  4.11.1 推测的概念
  4.11.2 静态多发射处理器
  4.11.3 动态多发射处理器
  4.11.4 能耗效率与高级流水线
 4.12 实例:Intel Core i7 6700和ARM Cortex-A53
  4.12.1 ARM Cortex-A53
  4.12.2 A53流水线的性能
  4.12.3 Intel Core i7 6700
  4.12.4 Intel Core i7的性能
 4.13 加速:指令级并行和矩阵乘法
 4.14 高级主题:数字设计概述——使用硬件设计语言进行流水线建模以及更多流水线示例
 4.15 谬误与陷阱
 4.16 本章小结
 4.17 历史观点和拓展阅读
 4.18 自学
 4.19 练习题
第5章 大容量和高速度:开发存储器层次结构
 5.1 引言
 5.2 存储器技术
  5.2.1 SRAM技术
  5.2.2 DRAM技术
  5.2.3 闪存
  5.2.4 磁盘存储器
 5.3 cache的基本原理
  5.3.1 cache访问
  5.3.2 cache缺失处理
  5.3.3 写操作处理
  5.3.4 cache实例:Intrinsity FastMATH处理器
  5.3.5 小结
 5.4 cache性能的评估和改进
  5.4.1 通过更灵活地放置块来减少cache缺失
  5.4.2 在cache中查找块
  5.4.3 替换块的选择
  5.4.4 使用多级cache结构减少缺失代价
  5.4.5 通过分块进行软件优化
  5.4.6 小结
 5.5 可信存储器层次
  5.5.1 失效的定义
  5.5.2 纠正一位错、检测两位错的汉明编码(SEC/DED)
 5.6 虚拟机
  5.6.1 虚拟机监视器的必备条件
  5.6.2 指令集体系结构(缺乏)对虚拟机的支持
  5.6.3 保护和指令集体系结构
 5.7 虚拟存储器
  5.7.1 页的存放和查找
  5.7.2 缺页故障
  5.7.3 关于写
  5.7.4 加快地址转换:TLB
  5.7.5 集成虚拟存储器、TLB和cache
  5.7.6 虚拟存储器中的保护
  5.7.7 处理TLB缺失和缺页
  5.7.8 小结
 5.8 存储器层次结构的一般框架
  5.8.1 问题1:块放在何处
  5.8.2 问题2:如何找到块
  5.8.3 问题3:cache缺失时替换哪一块
  5.8.4 问题4:写操作如何处理
  5.8.5 3C:一种理解存储器层次结构行为的直观模型
 5.9 使用有限状态机来控制简单的cache
  5.9.1 一个简单的cache
  5.9.2 有限状态机
  5.9.3 一个简单cache控制器的有限状态机
 5.10 并行与存储器层次结构:cache一致性
  5.10.1 实现一致性的基本方案
  5.10.2 监听协议
 5.11 并行与存储器层次结构:廉价冗余磁盘阵列
 5.12 高级内容:实现cache控制器
 5.13 实例:ARM Cortex-A53和Intel Core i7的存储器层次结构
 5.14 加速:cache分块和矩阵乘法
 5.15 谬误与陷阱
 5.16 本章小结
 5.17 历史观点和拓展阅读
 5.18 自学
 5.19 练习题
第6章 从客户端到云的并行处理器
 6.1 引言
 6.2 创建并行处理程序的难点
 6.3 SISD、MIMD、SIMD、SPMD和向量机
  6.3.1 x86中的SIMD:多媒体扩展
  6.3.2 向量机
  6.3.3 向量与标量
  6.3.4 向量与多媒体扩展
 6.4 硬件多线程
 6.5 多核和其他共享内存多处理器
 6.6 图形处理单元
  6.6.1 NVIDIA GPU体系结构简介
  6.6.2 NVIDIA GPU存储结构
  6.6.3 GPU展望
 6.7 领域专用体系结构
 6.8 集群、仓储级计算机和其他消息传递多处理器
 6.9 多处理器网络拓扑简介
 6.10 与外界通信:集群网络
 6.11 多处理器基准测试程序和性能模型
  6.11.1 性能模型
  6.11.2 Roofline模型
  6.11.3 两代Opteron的比较
 6.12 实例:Google TPUv3超级计算机和NVIDIA Volta GPU的评测
  6.12.1 DNN的训练和推理
  6.12.2 DSA超级计算机网络
  6.12.3 DSA超级计算机节点
  6.12.4 DSA算术运算
  6.12.5 TPUv3与Volta GPU的比较
  6.12.6 性能
 6.13 加速:多处理器和矩阵乘法
 6.14 谬误与陷阱
 6.15 本章小结
 6.16 历史观点和拓展阅读
 6.17 自学
 6.18 练习题
附录A 汇编器、链接器和SPIM仿真器
附录B 逻辑设计基础
索引
网络内容

机工科技数字图书馆