图书介绍

安腾体系结构 理解64位处理器和EPIC原理PDF|Epub|txt|kindle电子书版本网盘下载

安腾体系结构 理解64位处理器和EPIC原理
  • James S.Evans,Gregory L.Trimper著;蒋敬旗等译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302096082
  • 出版时间:2005
  • 标注页数:416页
  • 文件大小:21MB
  • 文件页数:437页
  • 主题词:微处理器-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

安腾体系结构 理解64位处理器和EPIC原理PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

目录1

第1章 体系结构和实现方法1

1.1 类比:钢琴的体系结构1

1.2 计算机语言的类型2

1.3 为什么要学习汇编语言3

1.4 二进制倍数的词头4

1.5 指令集体系结构4

1.6 计算机体系结构的生命周期5

1.6.1 32位Intel?体系结构及其先前结构5

1.6.2 AlphaTM体系结构及其先前结构6

1.6.3 安腾体系结构及其先前结构7

1.6.4 体系结构和实现方法的命名8

1.7 SQUARES:第一个编程实例9

1.7.1 C、FORTRAN和COBOL语言描述9

1.7.2 安腾体系结构的汇编语言描述11

1.8 记数系统的回顾13

1.8.1 位置系数和权值13

1.8.2 二进制和十六进制表示14

1.8.3 带符号整数15

本章总结16

参考文献16

练习题18

第2章 计算机结构和数据表示20

2.1 计算机结构20

2.1.2 存储器21

2.1.1 中央处理器21

2.1.3 输入输出系统23

2.2 指令的执行24

2.3 指令集体系结构的类别25

2.4 向64位体系结构过渡26

2.5 安腾体系结构的信息单位和数据类型28

2.5.1 整数29

2.5.2 浮点数29

2.5.3 字母数字字符32

本章总结35

参考文献35

练习题36

3.1 编程环境38

第3章 汇编程序和调试程序38

3.2 程序开发步骤39

3.3 比较源文件的不同41

3.4 汇编语句的类型42

3.4.1 语句格式42

3.4.2 符号地址43

3.4.3 汇编语言操作符的种类43

3.5 符号汇编程序的功能44

3.5.1 常量44

3.5.2 符号或标识符45

3.5.3 存储器分配45

3.5.4 单元计数器47

3.5.5 表达式48

3.5.7 清单文件的组成部分49

3.5.6 控制语句49

3.6 汇编过程51

3.7 连接过程52

3.8 调试程序55

3.8.1 调试程序的功能55

3.8.2 使用gdb(Linux?和HP-UX?)运行SQUARES56

3.8.3 使用adb(HP-UX)运行SQUARES57

3.8.4 调试命令举例58

3.9 编写程序的约定61

本章总结62

参考文献62

练习题63

第4章 安腾指令格式和寻址方式65

4.1.1 指令包66

4.1 安腾指令格式概述66

4.1.2 指令位字段格式67

4.1.3 安腾指令类型67

4.2 整数算术指令69

4.2.1 加法和减法69

4.2.2 算术溢出70

4.2.3 左移相加指令71

4.2.4 算术操作的特殊情况71

4.2.5 16位带符号整数的乘法72

4.2.6 全宽度的乘法和除法73

4.3 安腾指令的位编码73

4.4 HEXNUM:使用算术指令76

4.5.1 安腾高速缓存结构78

4.5 数据存取指令78

4.5.2 整型存储指令80

4.5.3 整型装入指令80

4.5.4 长立即数传送指令81

4.5.5 存取简单的记录结构82

4.5.6 存取专用CPU寄存器83

4.6 其他ALU指令84

4.6.1 符号扩展指令84

4.6.2 零扩展指令85

4.6.3 宽度小于64位的指令85

4.7 DOTPROD:使用数据存取指令85

4.8.3 寄存器间接寻址88

4.8.2 寄存器直接寻址88

4.8.1 立即寻址88

4.8 安腾寻址方式88

4.8.4 自动增量寻址89

4.8.5 安腾寻址方式小结89

4.8.6 前面程序中的寻址细节89

4.9 其他体系结构中的寻址94

4.9.1 基于寄存器间接寻址的方式94

4.9.2 基于偏移寻址的方式94

4.9.3 体系结构寻址方式的比较95

本章总结96

参考文献96

练习题96

5.1 控制流的硬件基础99

第5章 比较、转移和判断99

5.1.1 条件码100

5.1.2 状态管理方法100

5.1.3 谓词寄存器101

5.2 整数比较指令102

5.2.1 带符号比较和等式102

5.2.2 无符号比较103

5.3 程序转移104

5.3.1 普通转移指令104

5.3.2 转移的时间考虑105

5.3.3 if...then...else结构106

5.3.4 循环结构108

5.3.6 局部性和程序性能109

5.3.5 转移的寻址范围109

5.4 DOTLOOP:使用计数循环110

5.5 暂停、指令组和性能111

5.5.1 DOTLOOP中的暂停和分组111

5.5.2 数据相关性的简化规则113

5.5.3 安腾汇编程序处理暂停的方法115

5.5.4 循环的局部标号115

5.5.5 循环、转移和整体性能115

5.6 DOTCLOOP:使用循环计数寄存器115

5.7 其他结构化程序设计成分117

5.7.1 无条件比较指令118

5.7.2 嵌套的if...then...else结构118

5.7.3 多路转移119

5.7.4 简单的分情况结构120

5.8 MAXIMUM:使用条件指令122

本章总结123

参考文献124

练习题124

第6章 逻辑操作、移位操作和字节操作126

6.1 逻辑函数126

6.1.1 两个变量的布尔函数126

6.1.2 逻辑指令128

6.1.3 逻辑函数的应用128

6.1.4 一位测试指令129

6.1.5 并行(逻辑)条件130

6.1.6 加法的逻辑基础131

6.2 HEXNUM2:使用逻辑掩码132

6.3 位操作和字段操作134

6.3.1 移位指令134

6.3.2 移位操作的应用135

6.3.3 右移对指令135

6.3.4 提取指令和存放指令135

6.4 SCANTEXT:处理字节137

6.5 整数乘法和除法138

6.5.1 乘法的Booth算法138

6.5.2 无符号乘法141

6.5.3 使用已知倒数的除法141

6.6 DECNUM:将整数转换成十进制格式143

6.7 使用C语言进行ASCII输入和输出145

6.7.2 IO_C:一个简单的测试程序146

6.7.1 GETPUT:封装C函数146

6.7.3 其他概念148

6.8 BACKWARD:使用字节操作148

本章总结150

参考文献151

练习题152

第7章 子例程、过程和函数155

7.1 存储器栈155

7.1.1 CISC体系结构的栈寻址155

7.1.2 装入/存储体系结构的栈寻址156

7.1.3 安腾体系结构的栈寻址156

7.1.4 用户定义的栈158

7.2 DECNUM2:使用栈操作159

7.3 寄存器栈161

7.3.1 SPARC?寄存器窗162

7.3.2 安腾寄存器栈163

7.3.3 alloc指令163

7.3.4 寄存器栈引擎(RSE)164

7.3.5 存储体寄存器164

7.4 程序分段165

7.4.1 源级模块性165

7.4.2 传统子例程166

7.4.3 协同例程166

7.4.4 过程和函数167

7.4.5 共享库函数167

7.5 调用约定167

7.5.2 调用和返回转移指令168

7.5.1 寄存器竞争和使用约定168

7.5.3 变元传送:位置171

7.5.4 变元传送:方法172

7.5.5 开始部分和结束部分172

7.5.6 .regstk命令176

7.6 DECNUM3和BOOTH:建立一个函数176

7.6.1 定义接口176

7.6.2 BOOTH:可调用的函数177

7.6.3 DECNUM3:测试程序178

7.6.4 位置独立的代码180

7.7 整数商和余数181

7.7.1 高级语言使用的例程181

7.8 RANDOM:一个可调用的函数182

7.7.2 Intel公司的开放源例程182

7.8.1 选择一个算法183

7.8.2 RANDOM:函数的开发183

7.8.3 高级语言调用程序186

本章总结187

参考文献188

练习题189

第8章 浮点操作191

8.1 整数指令和浮点指令之间的并行性191

8.2 浮点值的表示192

8.2.1 IEEE特殊值192

8.2.2 安腾浮点寄存器中的值193

8.3.1 浮点存储指令194

8.3 复制浮点数据194

8.3.2 浮点装入指令195

8.3.3 浮点装入对指令196

8.3.4 用于寄存器-寄存器复制的浮点伪指令197

8.3.5 浮点合并指令198

8.4 浮点算术指令198

8.4.1 加法、减法和乘法198

8.4.2 熔丝型乘-加和乘-减指令199

8.4.3 规范化为另一个特例200

8.4.4 最大值和最小值操作200

8.4.5 舍入、异常和浮点控制200

8.5 HORNER:计算一个多项式201

8.6 基于浮点值的判断203

8.6.1 浮点比较指令204

8.6.2 浮点类指令204

8.7 浮点执行部件中的整数操作205

8.7.1 数据转换指令206

8.7.2 整数乘法指令208

8.7.3 乘法策略209

8.7.4 浮点逻辑指令209

8.8 倒数和平方根的近似209

8.8.1 浮点倒数的近似210

8.8.2 倒数平方根的近似211

8.8.3 浮点除法211

8.9 APPROXPI:使用浮点指令212

8.8.4 Intel公司的开放源例程212

本章总结216

参考文献216

练习题217

第9章 文本的输入和输出219

9.1 文件系统220

9.1.1 Unix?I/O软件220

9.1.2 Linux?I/O软件221

9.2 键盘和显示器I/O221

9.2.1 未格式化的I/O行221

9.2.2 格式化的I/O222

9.3 SCANTERM:使用C的标准I/O223

9.4 SORTSTR:排序串226

9.5.1 目录级的访问230

9.5 文本文件I/O230

9.5.2 未格式化的I/O行231

9.5.3 格式化的I/O232

9.6 SCANFILE:文件的输入输出232

9.7 SORTINT:对文件中的整数进行排序236

9.8 二进制文件240

本章总结241

参考文献241

练习题241

第10章 性能考虑244

10.1 处理器级的并行性244

10.1.1 简化的指令流水线244

10.1.2 超标量流水线245

10.1.3 安腾2处理器流水线246

10.1.4 流水线冒险247

10.2 指令级并行性249

10.2.1 RISC方法249

10.2.2 VLIW思想250

10.2.3 EPIC:体系结构发展的一个方向250

10.3 安腾处理器中的显式并行性250

10.3.1 指令模板251

10.3.2 数据相关和猜测254

10.3.3 控制相关和猜测257

10.3.4 组合的控制和数据猜测258

10.4 软件流水线循环258

10.4.2 软件流水线259

10.4.1 传统的循环展开259

10.4.3 循环式寄存器260

10.4.4 循环阶段260

10.4.5 软件流水线的转移指令261

10.5 按模调度一个循环262

10.5.1 DOTCTOP:独立实现的调度262

10.5.2 DOTCTOP2:安腾2处理器的调度266

10.5.3 进一步的考虑267

10.6 程序优化因素269

10.6.1 指令宽度269

10.6.2 寻址方式270

10.6.3 指令能力270

10.6.4 程序长度270

10.6.7 指令重新排序271

10.6.6 直接插入式函数的使用271

10.6.5 将数据预取到高速缓存中271

10.6.8 递归及相关因素272

10.7 斐波纳契数272

10.7.1 FIB1:使用递归的函数273

10.7.2 FIB2:无递归的函数275

10.7.3 FIB3:使用寄存器栈的函数275

10.7.4 TESTFIB:显示递归的开销276

本章总结278

参考文献278

练习题279

第11章 查看编译程序的输出281

11.1 类RISC系统的编译程序281

11.1.1 开放源码编译程序的优化级别282

11.1.2 Intel编译程序的优化级别283

11.1.3 HP UX编译程序的优化级别284

11.1.4 附加的优化可能性284

11.2 编译一个简单程序285

11.2.1 比较gcc和ecc(Linux)的输出286

11.2.2 比较gcc和g77(Linux)的输出289

11.2.3 比较cc_bundled和f90(HP-UX)的输出292

11.3 优化一个简单程序295

11.3.1 比较g77(Linux)的-O1级别和-O2级别的输出296

11.3.2 编译程序信息298

11.3.3 f90(HP-UX)的循环的长度和优化299

11.4 直接插入式优化304

11.6 调试经过优化的程序306

11.5 剖面制导的优化或其他优化306

11.7 重访斐波纳契数的递归307

本章总结309

参考文献310

练习题311

第12章 并行操作313

12.1 计算系统的分类313

12.2 整数并行操作315

12.3 整数乘法的应用316

12.3.1 源操作数32×32位得到32位无符号乘积316

12.3.2 源操作数32×32位得到64位无符号数317

12.5 浮点并行操作319

12.4 机遇和挑战319

12.6 支持并行处理的信号量320

12.6.1 先前的体系结构321

12.6.2 安腾体系结构321

本章总结324

参考文献324

练习题325

第13章 实现方法的变异326

13.1 为什么改变实现方法327

13.1.1 需求和机遇327

13.1.2 摩尔定律的含义327

13.1.3 期望体系结构具有较长的生命周期328

13.2 如何改变实现方法328

13.3.1 与安腾2处理器的对比329

13.3 最初的安腾处理器329

13.3.2 高速缓存的层次结构330

13.3.3 执行部件和发射端口331

13.3.4 流水线331

13.3.5 等待因子332

13.3.6 转移预测332

13.3.7 其他区别和特征334

13.4 软件的主要作用334

13.4.1 新的体系结构335

13.4.2 新的实现方法335

13.4.3 新的指令或者更多的寄存器336

13.6 确定扩展和实现方案337

13.5 IA-32指令集模式337

本章总结338

参考文献338

练习题340

附录A 命令行环境341

参考文献344

练习题344

附录B 推荐的系统资源345

B.1 系统硬件345

B.1.1 安腾工作站或服务器345

B.1.2 IA-32 Linux系统上的Ski模拟器345

B.1.3 Linux虚拟机上的Ski模拟器346

B.1.4 其他模拟器346

B.2.1 Linux347

B.2.2 HP-UX347

B.2 系统软件347

B.2.3 Ski模拟器348

B.2.4 64位Windows?350

B.2.5 FreeBSD350

B.2.6 OpenVMS?351

B.3 桌面客户访问软件351

B.3.1 Linux个人计算机351

B.3.2 Macintosh个人计算机351

B.3.3 Windows个人计算机352

参考文献353

附录C 安腾指令集354

表C-1 按功能排列的安腾指令354

表C-2 按汇编程序操作码排列的安腾指令360

参考文献366

附录D 安腾寄存器及其用途367

D.1 指令指示字367

D.2 通用寄存器和NaT位367

D 3 谓词寄存器369

D.4 转移寄存器369

D.5 浮点寄存器370

D.6 应用寄存器370

D.7 状态管理寄存器372

D.8 系统信息寄存器373

D.9 系统控制寄存器373

参考文献374

E.1 显式停止的干扰375

附录E 条件汇编和宏(GCC汇编程序)375

E.2 重复块376

E.2.1 简单重复块376

E.2.2 使用.irp命令的不定重复块377

E.2.3 使用.irpc命令的不定重复块378

E.3 条件汇编379

E.4 宏的处理380

E.4.1 宏的定义381

E.4.2 宏的调用381

E 4.3 定位参数的处理383

E.4.4 默认值和关键词参数的处理383

E.4.5 串参数的处理384

E.5 宏标号的使用384

E.6 递归宏385

E.7 目标文件段386

E.8 MONEY:用于说明段的宏387

本章总结389

参考文献390

练习题390

附录F 直接插入式汇编392

F.1 HP-UX的C编译程序392

F.2 用于Linux的GCC编译程序394

F.3 Intel的Linux编译程序395

参考文献395

参考文献汇总396

部分练习题答案及提示403

术语表410

热门推荐