更新时间:2023-11-07 16:08:56
封面
版权信息
作者简介
赞誉
译者序
前言
第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 边界检查的简便方法
2.7.3 case/switch语句
2.8 计算机硬件对过程的支持
2.8.1 使用更多的寄存器
2.8.2 嵌套过程
2.8.3 在栈中为新数据分配空间
2.8.4 在堆中为新数据分配空间
2.9 人机交互
2.10 对大立即数的RISC-V编址和寻址
2.10.1 大立即数
2.10.2 分支中的寻址
2.10.3 RISC-V寻址模式总结
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 实例:MIPS指令
2.17 实例:ARMv7(32位)指令
2.17.1 寻址模式
2.17.2 比较和条件分支指令
2.17.3 ARM的独特之处
2.18 实例:ARMv8(64位)指令
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 实例:RISC-V指令系统的剩余部分
2.21 性能提升:使用C语言编写矩阵乘法程序
2.22 谬误与陷阱