搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
计算机组成与设计(硬件\软件接口RISC-V版原书第2版)/计算机科学丛书
0.00     定价 ¥ 169.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购25本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787111727972
  • 作      者:
    作者:(美)戴维·A.帕特森//约翰·L.亨尼斯|责编:曲熠|译者:易江芳//刘先华
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2023-07-01
收藏
编辑推荐
本书由图灵奖得主Patterson和Hennessy联袂撰写,是计算机体系结构新黄金时代必读之作。根据读者的需求,这一版将RV64切换为RV32,减少10条指令,降低学习难度;新增关于领域定制体系结构(DSA)的讨论,使用Google的TPUv1作为示例,还新增了TPUv3 DSA超级计算机与NVIDIA Volta GPU集群的比较;每一章都增加了“性能提升”一节,分别采用数据级并行、指令级并行、线程级并行等方法,仅增加21行代码便使矩阵乘法程序加速近50 000倍,直观呈现出硬件对提高能效的重要性。
展开
内容介绍
现代计算机技术需要各个计算领域的专业人员对计算机软件和硬件都有所了解。软硬件在不同层次上的相互影响,恰好也提供了一个理解计算基础的框架。不管你的关注点是硬件还是软件,专业是计算机科学还是电气工程,计算机组成和设计的核心思想都是相同的。因此,本书的重点是展示硬件和软件之间的关系,并重点关注现代计算机的基本概念。 本书从MIPS版的第1版起就提出了以上观点,最近从单处理器向多核微处理器的转变再一次印证了这个颇有远见的观点。然而,程序员无视我们的忠告,不想改造程序,只想依赖计算机体系结构设计者、编译器设计者或者芯片设计者来让自己的程序运行得更快、更高效——这样的时代已经一去不复返了。为了运行得更快,需要把程序改造成并行的。让程序员尽可能不知道他们正在使用的底层硬件的并行属性是许多研究者的目标,但这需要花费很长时间才能实现。我们的观点是,至少在接下来的十年里,如果想让程序在并行计算机上运行得更为高效,大多数程序员还是需要了解硬件/软件接口的。 本书的读者包括:不了解汇编语言或者逻辑设计,但需要了解计算机基本组成的人;具有汇编语言或者逻辑设计背景,但想学习如何设计计算机或者想搞清楚系统的工作原理的人。
展开
目录
目 录
Computer Organization and Design: The Hardware/Software Interface, RISC-V Edition, Second Edition
赞誉
译者序
前言
作者简介
第1章 计算机抽象及相关技术 1
1.1 引言 1
1.1.1 传统的计算应用分类及其特点 2
1.1.2 欢迎来到后PC时代 3
1.1.3 你能从本书中学到什么 4
1.2 计算机体系结构中的7个伟大思想 6
1.2.1 使用抽象简化设计 6
1.2.2 加速经常性事件 6
1.2.3 通过并行提高性能 7
1.2.4 通过流水线提高性能 7
1.2.5 通过预测提高性能 7
1.2.6 存储层次 7
1.2.7 通过冗余提高可靠性 7
1.3 程序表象之下 8
1.4 箱盖后的硬件 10
1.4.1 显示器 11
1.4.2 触摸屏 12
1.4.3 打开机箱 13
1.4.4 数据安全 15
1.4.5 与其他计算机通信 16
1.5 处理器和存储制造技术 17
1.6 性能 20
1.6.1 性能的定义 20
1.6.2 性能的度量 22
1.6.3 CPU性能及其度量因素 23
1.6.4 指令性能 24
1.6.5 经典的CPU性能公式 25
1.7 功耗墙 28
1.8 沧海巨变:从单处理器向多处理器
转变 30
1.9 实例:评测Intel Core i7 32
1.9.1 SPEC CPU基准评测程序 32
1.9.2 SPEC功耗基准评测程序 34
1.10 性能提升:使用Python语言编写
矩阵乘法程序 34
1.11 谬误与陷阱 35
1.12 本章小结 37
1.13 历史视角和拓展阅读 39
1.14?自学 39
1.15 练习 41
第2章 指令:计算机的语言 46
2.1 引言 46
2.2 计算机硬件的操作 48
2.3 计算机硬件的操作数 50
2.3.1 存储器操作数 51
2.3.2 常数或立即数操作数 53
2.4 有符号数与无符号数 54
2.5 计算机中的指令表示 59
2.6 逻辑操作 65
2.7 用于决策的指令 67
2.7.1 循环 68
2.7.2 边界检查的简便方法 70
2.7.3 case/switch语句 70
2.8 计算机硬件对过程的支持 71
2.8.1 使用更多的寄存器 72
2.8.2 嵌套过程 74
2.8.3 在栈中为新数据分配空间 75
2.8.4 在堆中为新数据分配空间 76
2.9 人机交互 78
2.10 对大立即数的RISC-V编址和
寻址 82
2.10.1 大立即数 82
2.10.2 分支中的寻址 83
2.10.3 RISC-V寻址模式总结 85
2.10.4 机器语言译码 86
2.11 并行性与指令:同步 88
2.12 翻译并启动程序 90
2.12.1 编译器 90
2.12.2 汇编器 90
2.12.3 链接器 92
2.12.4 加载器 94
2.12.5 动态链接库 94
2.12.6 启动Java程序 96
2.13 以C排序程序为例的汇总整理 97
2.13.1 swap过程 97
2.13.2 sort过程 98
2.14 数组与指针 102
2.14.1 用数组实现clear 103
2.14.2 用指针实现clear 104
2.14.3 比较两个版本的clear 105
2.15 高级专题:编译C语言和解释
Java语言 105
2.16 实例:MIPS指令 105
2.17 实例:ARMv7(32位)指令 106
2.17.1?寻址模式 107
2.17.2?比较和条件分支指令 108
2.17.3?ARM的独特之处 108
2.18 实例:ARMv8(64位)指令 109
2.19 实例:x86指令 109
2.19.1 Intel x86的演变 110
2.19.2 x86寄存器和寻址模式 111
2.19.3 x86整数操作 113
2.19.4 x86指令编码 115
2.19.5 x86总结 116
2.20 实例:RISC-V指令系统的剩余
部分 116
2.21 性能提升:使用C语言编写矩阵
乘法程序 117
2.22 谬误与陷阱 118
2.23 本章小结 120
2.24 历史视角和扩展阅读 122
2.25?自学 122
2.26 练习 124
第3章 计算机的算术运算 130
3.1 引言 130
3.2 加法和减法 130
3.3 乘法 133
3.3.1 串行版的乘法算法及其硬件
实现 133
3.3.2 带符号乘法 136
3.3.3 快速乘法 136
3.3.4 RISC-V中的乘法 136
3.3.5 总结 137
3.4 除法 137
3.4.1 除法算法及其硬件实现 137
3.4.2 有符号除法 140
3.4.3 快速除法 140
3.4.4 RISC-V中的除法 141
3.4.5 总结 141
3.5 浮点运算 142
3.5.1 浮点表示 143
3.5.2 例外和中断 144
3.5.3 IEEE 754浮点数标准 144
3.5.4 浮点加法 147
3.5.5 浮点乘法 150
3.5.6 RISC-V中的浮点指令 153
3.5.7 精确算术 157
3.5.8 总结 159
3.6 并行性与计算机算术:子字并行 160
3.7 实例:x86中的SIMD扩展和高级
向量扩展 160
3.8 性能提升:子字并行和矩阵乘法 162
3.9 谬误与陷阱 163
3.10 本章小结 1
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证