|
|
|
| 原价:
¥29.00(以下报价瞬息万变,建议您点击全部站点比对) | | |通过以下方式购买,或许更便宜: |
|
|
| |
|
|
|
|
我要购书网的承诺:本网上购书中心所出售的"计算机系统结构精髓 [Essentials of Computer Architecture]"图书保证正版,您在本购书中心享有收到图书七天内无条件退货!收到商品15日之内换货的待遇!
|
| |
退货规定:从本网上书店所购买的图书如有质量问题(字迹模糊/缺页/倒装/开线/开胶/折页/封皮破损/缺少随书赠品),可在收到商品7日之内可退货 |
| |
换货规定:从本购书中心所购买"计算机系统结构精髓 [Essentials of Computer Architecture]"图书如有质量问题(字迹模糊/缺页/倒装/开线/开胶/折页/封皮破损/缺少随书赠品),可在收到商品15日之内换货
|
|
| |
本书是美国普渡大学资深教授Douglas E. Comer从计算机系统结构对编程影响的角度为计算机科学、技术、应用类学生精心编写的计算机系统结构教材。最大特点是重概念,轻细节,从程序员的观点阐明计算机系统结构对程序设计、优化和调试的影响。 本书分为5部分。第1部分介绍数字逻辑、门和数据表示基础,重点放在数据表示这一章。第2、第3和第4部分涵盖计算机系统结构的3个主要领域:处理器、存储器和输入输出系统,在这3部分,每一章都给学生介绍了足够的背景知识,帮助他们了解计算机各主要部件的工作原理以及对程序设计的影响。第5部分则介绍了一些高级话题,如并行性、流水线技术和性能评估等。附录中给出了11个实验,让学生通过动手操作来切实学懂和掌握这门课程。 本书的主要读者对象是高等院校计算机科学、技术、应用专业的学生,也可供程序开发人员学习参考。
|
| |
目 录 第1章 引言和纵览 1 1.1 系统结构的重要性 1 1.2 学习要旨 1 1.3 本书的组织 1 1.4 省略的内容 2 1.5 术语:系统结构和设计 2 1.6 小结 2 第1部分 数字逻辑与数据表示基础 第2章 数字逻辑基础 4 2.1 引言 4 2.2 有关电的术语:电压和电流 4 2.3 晶体管 4 2.4 逻辑门 5 2.5 逻辑门的符号表示 7 2.6 用晶体管构建门 7 2.7 门和门互连的例子 8 2.8 多门集成电路 10 2.9 不只需要组合电路 10 2.10 能保持状态的电路 11 2.11 状态转换图 11 2.12 二进制计数器 12 2.13 时钟和顺序 12 2.14 反馈的重要概念 15 2.15 启动的一个动作序列 16 2.16 软件重复与硬件副本的比较 16 2.17 门和芯片的极小化 17 2.18 利用空闲的门 17 2.19 供电和散热 18 2.20 定时 18 2.21 物理尺寸和处理工艺 19 2.22 电路板和多层印刷 20 2.23 抽象的层次 20 2.24 小结 21 第3章 数据和程序的表示 22 3.1 引言 22 3.2 数字逻辑和抽象 22 3.3 位和字节 22 3.4 字节大小和可能表示的值 23 3.5 二进制运算 23 3.6 十六进制表示法 24 3.7 十六进制常数和二进制常数表示法 25 3.8 字符集 26 3.9 Unicode 27 3.10 无符号整数、上溢和下溢 27 3.11 位和字节的编号 28 3.12 带符号整数 29 3.13 一个补码表示的数的例子 29 3.14 符号扩展 30 3.15 浮点 31 3.16 特殊值 32 3.17 IEEE浮点值的范围 32 3.18 数据聚集 33 3.19 程序的表示 33 3.20 小结 33 习题 34 第2部分 处 理 器 第4章 各种处理器和计算引擎 36 4.1 引言 36 4.2 冯?诺依曼体系结构 36 4.3 处理器的定义 37 4.4 处理器的类别 37 4.5 分层结构和计算引擎 38 4.6 常规处理器的结构 39 4.7 算术逻辑部件(ALU)的定义 40 4.8 处理器的类别及作用 40 4.9 处理器工艺技术 41 4.10 存储程序 42 4.11 读取-执行周期 42 4.12 时钟速率和指令速率 43 4.13 控制:启动和停止 43 4.14 启动读取-执行周期 44 4.15 小结 44 习题 45 第5章 处理器类型和指令系统 46 5.1 引言 46 5.2 数学功能、方便性和代价 46 5.3 指令系统及表示 47 5.4 操作码、操作数和结果 47 5.5 典型的指令格式 47 5.6 可变长度指令和固定长度指令 48 5.7 通用寄存器 48 5.8 浮点寄存器和寄存器标识 49 5.9 利用寄存器编程 49 5.10 寄存器组 50 5.11 复杂指令系统和简化指令系统 51 5.12 RISC设计和执行流水线 51 5.13 流水线和指令阻塞 53 5.14 流水线阻塞的另外一些原因 54 5.15 对程序员的影响 54 5.16 编程、阻塞及空操作 55 5.17 提前传递 55 5.18 操作的类型 55 5.19 程序计数器、读取-执行及转移 56 5.20 子程序调用、变量及寄存器窗口 57 5.21 指令系统的一个例子 58 5.22 最低限度指令系统 60 5.23 正交性原则 60 5.24 条件码和条件转移 61 5.25 小结 61 习题 62 第6章 操作数寻址和指令表示 63 6.1 引言 63 6.2 零地址、一地址、二地址及三地址设计 63 6.3 零操作数指令 64 6.4 单操作数指令 64 6.5 双操作数指令 64 6.6 三操作数指令 65 6.7 操作数源和立即值 65 6.8 冯?诺依曼瓶颈 66 6.9 显式和隐式操作数编码 66 6.9.1 隐式操作数编码 67 6.9.2 显式操作数编码 67 6.10 组合多个值的操作数 68 6.11 操作数选择的权衡 68 6.12 存储器中的数值和间接引用 69 6.13 操作数寻址方式 70 6.14 小结 70 习题 71 第7章 CPU:微代码、保护及处理器模式 72 7.1 引言 72 7.2 中央处理器 72 7.3 CPU的复杂性 72 7.4 执行模式 73 7.5 向后兼容 73 7.6 改变模式 74 7.7 特权和保护 75 7.8 多级保护 75 7.9 微代码指令 76 7.10 微代码的变体 77 7.11 微代码的优点 77 7.12 让程序员看到微代码 78 7.13 纵向微代码 78 7.14 横向微代码 79 7.15 例示横向微代码 80 7.16 一个横向微代码的例子 81 7.17 要求多个周期的操作 82 7.18 横向微代码和并行执行 82 7.19 高性能执行 83 7.20 并行性和执行次序 84 7.21 指令的乱序执行 84 7.22 条件转移和转移预测 84 7.23 对程序员的影响 85 7.24 小结 85 习题 86 第8章 汇编语言和程序设计范例 87 8.1 引言 87 8.2 高级程序设计语言的特征 87 8.3 低级程序设计语言的特征 88 8.4 汇编语言 88 8.5 汇编语言语法和操作码 89 8.5.1 语句格式 89 8.5.2 操作码命名 89 8.5.3 注释约定 90 8.6 操作数的次序 90 8.7 寄存器命名 91 8.8 操作数类型 92 8.9 汇编语言程序设计范式和风格 92 8.10 用于条件执行的汇编代码 93 8.11 用于可选条件执行的汇编代码 93 8.12 用于限定循环的汇编代码 94 8.13 用于未限定循环的汇编代码 94 8.14 用于过程调用的汇编代码 95 8.15 用于参数化过程调用的汇编代码 95 8.16 对程序员的影响 96 8.17 用于函数调用的汇编代码 96 8.18 汇编语言和高级语言之间的交互作用 97 8.19 用于变量和存储的汇编代码 97 8.20 二次扫描汇编程序 98 8.21 汇编语言宏指令 99 8.22 小结 101 第3部分 存 储 器 第9章 存储器和存储 104 9.1 引言 104 9.2 定义 104 9.3 存储器的两个关键方面 104 9.4 存储器工艺的特性 105 9.4.1 存储器的易失性 105 9.4.2 存储器访问范式 105 9.4.3 数值的持久性 105 9.4.4 主存储器和辅助存储器 106 9.5 重要的存储器分级概念 106 9.6 指令和数据的储存 106 9.7 读写范式 107 9.8 小结 107 第10章 物理存储器和物理寻址 108 10.1 引言 108 10.2 计算机存储器的特性 108 10.3 静态和动态RAM的工艺技术 108 10.4 存储器工艺技术的度量 110 10.5 密度 110 10.6 读性能和写性能的分离 110 10.7 等待时间和存储器控制器 110 10.8 同步存储器技术 111 10.9 多倍数据速率存储器技术 112 10.10 存储器工艺技术的例子 112 10.11 存储器组织结构 112 10.12 存储器存取和存储器总线 113 10.13 存储器的传输容量 113 10.14 物理地址和字 113 10.15 物理存储器操作 114 10.16 字长和其他数据类型 114 10.17 一个极端情况:字节寻址 114 10.18 以字传输的字节寻址 115 10.19 利用2的幂 116 10.20 字节对齐和程序设计 116 10.21 存储器容量和地址空间 117 10.22 用字寻址程序设计 117 10.23 存储器容量的量度 118 10.24 指针和数据结构 118 10.25 存储器转储 119 10.26 间接性和间接操作数 120 10.27 存储体和交叉存取 120 10.28 按内容存取存储器 121 10.29 三元CAM 122 10.30 小结 122 习题 123 第11章 虚拟存储器技术和虚拟寻址 124 11.1 引言 124 11.2 定义 124 11.3 一个虚拟的例子:字节寻址 124 11.4 虚拟存储器术语 124 11.5 对多个物理存储器系统的接口 125 11.6 地址转换或地址映射 126 11.7 避免算术运算 127 11.8 不连续地址空间 127 11.9 其他的存储器组织 128 11.10 采用虚拟存储器的动机 129 11.11 多虚拟空间和多道程序设计 129 11.12 多级的虚拟化 130 11.13 动态地创建虚拟空间 130 11.14 起点-界限寄存器 131 11.15 改变虚拟空间 132 11.16 虚存、起点-界限和保护 132 11.17 分段 132 11.18 请求式分页 133 11.19 用于请求式分页的硬件和软件 133 11.20 页面替换 134 11.21 分页的术语和数据结构 134 11.22 分页系统中的地址转换 135 11.23 利用2的幂 136 11.24 存在位、使用位和修改位 137 11.25 页表的存储 137 11.26 分页效率和快速转换旁视缓冲器 138 11.27 对程序员的影响 138 11.28 小结 139 习题 140 第12章 高速缓存和高速缓存技术 141 12.1 引言 141 12.2 定义 141 12.3 高速缓存的特性 142 12.4 高速缓存技术的重要性 142 12.5 高速缓存技术的例子 143 12.6 高速缓存术语 143 12.7 高速缓存性能的最好情况和最坏情况 144 12.8 对一个典型序列的高速缓存性能 145 12.9 高速缓存的替换策略 145 12.10 LRU替代策略 146 12.11 多级高速缓存结构 146 12.12 预装高速缓存 147 12.13 存储器使用高速缓存 147 12.14 TLB作为高速缓存 148 12.15 请求式分页作为一种高速缓存形式 148 12.16 物理存储器高速缓存 148 12.17 直写和写回 149 12.18 高速缓存的相关性 149 12.19 L1,L2和L3高速缓存 150 12.20 L1,L2和L3高速缓存的大小 151 12.21 指令高速缓存和数据高速缓存 151 12.22 虚拟存储器高速缓存技术和高速缓存排空 152 12.23 存储器高速缓存技术的实现 153 12.24 直接映射存储器高速缓存 153 12.25 为提高效率而采用2的幂 154 12.26 组相联存储器高速缓存 155 12.27 对程序员的影响 156 12.28 小结 156 习题 157 第4部分 输入和输出 第13章 输入输出概念和术语 160 13.1 引言 160 13.2 输入和输出设备 160 13.3 外部设备的控制 160 13.4 数据传送 161 13.5 串行和并行数据传送 162 13.6 自同步数据 162 13.7 全双工交互和半双工交互 163 13.8 接口的等待时间和吞吐量 163 13.9 多路传输的基本思想 163 13.10 每个外部接口连接多个设备 164 13.11 处理器的I/O视图 165 13.12 小结 165 第14章 总线和总线体系结构 166 14.1 引言 166 14.2 总线的定义 166 14.3 处理器、I/O设备与总线 166 14.4 专有总线和标准化总线 167 14.5 共享总线和存取协议 167 14.6 多个总线 167 14.7 并行、无源机制 167 14.8 物理连接 168 14.9 总线接口 168 14.10 地址线、控制线和数据线 169 14.11 读取-存储范式 170 14.12 总线上的读取-存储 170 14.13 总线的宽度 171 14.14 多路传输 171 14.15 总线宽度和数据项的大小 172 14.16 总线地址空间 172 14.17 潜在的错误 173 14.18 地址配置和插座 174 14.19 多个总线还是一个总线 175 14.20 设备所用的读取-存储 175 14.21 一个使用读取-存储的设备控制例子 175 14.22 接口的操作 176 14.23 不对称指派 176 14.24 统一的存储器和设备寻址 177 14.25 地址空间里的空洞 178 14.26 地址映射 178 14.27 对总线的程序接口 179 14.28 两个总线间的桥接 180 14.29 主总线和辅助总线 180 14.30 对程序员的影响 181 14.31 切换组构网 182 14.32 小结 183 习题 183 第15章 程序控制I/O和中断驱动I/O 184 15.1 引言 184 15.2 I/O范式 184 15.3 程序控制I/O 184 15.4 同步 185 15.5 轮询 185 15.6 用于轮询的代码 185 15.7 控制和状态寄存器 187 15.8 处理器使用和轮询 187 15.9 第一代、第二代和第三代计算机 188 15.10 中断驱动I/O 188 15.11 硬件中断机制 189 15.12 中断和读取-执行周期 189 15.13 中断的处理 189 15.14 中断向量 190 15.15 初始化和中断的允许及禁止 191 15.16 防止中断代码被中断 191 15.17 多级中断 191 15.18 中断向量和优先权的指派 192 15.19 动态总线连接和可插入的设备 193 15.20 中断的优点 193 15.21 灵巧的设备和改进的I/O性能 193 15.22 直接存储器存取(DMA) 194 15.23 缓冲链接 195 15.24 分散读和集中写操作 195 15.25 操作链接 196 15.26 小结 196 习题 197 第16章 程序员眼中的设备、I/O和缓冲 198 16.1 引言 198 16.2 设备驱动器的定义 198 16.3 设备无关性、密封和隐藏 198 16.4 设备驱动器的概念性部件 199 16.5 两种类型的设备 200 16.6 一个设备驱动器的操作流程的例子 200 16.7 队列的输出操作 201 16.8 强制中断 202 16.9 队列的输入操作 203 16.10 支持双向传送的设备 203 16.11 异步还是同步编程范式 204 16.12 异步性、灵巧设备和互斥 204 16.13 应用程序所见的I/O 205 16.14 运行时I/O程序库 205 16.15 程序库和操作系统的两分法 206 16.16 操作系统支持的I/O操作 207 16.17 I/O操作的代价 207 16.18 降低系统调用开销 208 16.19 缓冲的重要概念 208 16.20 缓冲的实现 209 16.21 排空缓冲器 210 16.22 输入的缓冲 211 16.23 缓冲的效能 211 16.24 操作系统中的缓冲 212 16.25 与高速缓存的关系 212 16.26 一个例子:Unix标准I/O库 212 16.27 小结 212 习题 213 第5部分 高 级 课 题 第17章 并行性 216 17.1 引言 216 17.2 并行和流水线体系结构 216 17.3 并行性的特征 216 17.4 微观并行性与宏观并行性 217 17.5 微观并行性的例子 217 17.6 宏观并行性的例子 218 17.7 对称并行性与非对称并行性 218 17.8 细粒并行性与粗粒并行性 219 17.9 显式的与隐式的并行性 219 17.10 并行体系结构 219 17.11 并行体系结构的类型(弗林分类法) 219 17.12 单指令单数据流(SISD) 220 17.13 单指令多数据流(SIMD) 220 17.14 多指令多数据流(MIMD) 222 17.15 通信、协调和争用 224 17.16 多处理器的性能 225 17.17 对程序员的影响 226 17.17.1 锁和互斥 226 17.17.2 显式和隐式并行计算机的编程 228 17.17.3 对称多处理器和非对称多处理器的编程 228 17.18 冗余并行体系结构 228 17.19 分布计算机和群集计算机 229 17.20 小结 229 习题 230 第18章 流水线技术 231 18.1 引言 231 18.2 流水线技术的概念 231 18.3 软件流水线技术 233 18.4 软件流水线的性能和开销 233 18.5 硬件流水线技术 234 18.6 硬件流水线技术怎样提高性能 234 18.7 流水线的使用时机 236 18.8 处理的概念性分割 237 18.9 流水线体系结构 237 18.10 流水线的建立时间、阻塞时间和排空时间 238 18.11 超级流水线体系结构的定义 238 18.12 小结 239 习题 239 第19章 性能评估 240 19.1 引言 240 19.2 能力和性能的测量 240 19.3 计算能力的测量 241 19.4 使用专门的指令计数 242 19.5 指令混合比 242 19.6 标准化的基准测试程序 243 19.7 I/O和存储器瓶颈 243 19.8 软、硬件之间的分界 244 19.9 选择要优化的项目 244 19.10 艾姆德尔法则和并行系统 245 19.11 小结 245 习题 245 第20章 体系结构的层次和例子 246 20.1 引言 246 20.2 体系结构的层次 246 20.3 系统级体系结构:个人计算机 247 20.4 总线互连和桥接 247 20.5 控制器芯片和物理体系结构 248 20.6 虚拟总线 249 20.7 连接速度 250 20.8 桥接功能和虚拟总线 251 20.9 电路板级体系结构 251 20.10 芯片级体系结构 252 20.11 芯片上功能部件的结构 253 20.12 小结 254 20.13 计算机系统结构之外的分级 254 附录A 计算机系统结构课程实验 255 A.1 引言 255 A.2 实验所用的数字硬件 255 A.3 免焊实验电路板 255 A.4 免焊实验电路板的使用 256 A.5 测试 256 A.6 电源和接地连接 257 A.7 实验练习题 258 实验1 入门和账号配置 259 实验2 数字逻辑:实验电路板的使用 260 实验3 数字逻辑:用门电路构建一个加法器 262 实验4 数字逻辑:时钟和多路分配 264 实验5 表示法:测试大端法与小端法 266 实验6 表示法:一个用C编写的十六进制转储程序 268 实验7 处理器:学习RISC汇编语言 270 实验8 处理器:能被C程序调用的函数 272 实验9 存储器:数组的行主序存储和列主序存储 273 实验10 输入输出:一个缓冲I/O库 275 实验11 用汇编语言编写的十六进制转储程序 277 参考书目 278 8.21 汇编语言宏指令
|
|
|