第1章 计算机系统构成 1
1.1 计算机组件与特征参数 1
1.2 软件 5
1.2.1 BIOS 5
1.2.2 操作系统 6
1.2.3 应用软件栈 7
1.2.4 设备驱动程序 8
1.3 计算机系统层次 8
1.4 计算机系统性能评测 8
1.4.1 性能度量参数与均值 9
1.4.2 评测程序 10
1.5 量化设计原则 16
1.5.1 加速经常性事件的原则 16
1.5.2 Amdahl定律 17
1.5.3 CPU性能公式 18
1.5.4 访问局部性 19
1.6 计算机分类 19
习题1 21
第2章 数据类型与数据表示 39
2.1 数制和编码 39
2.1.1 数制和数的机器表示 39
2.1.2 字符编码 40
2.2 整型数表示 45
2.2.1 Intel体系结构整型数据表示 45
2.2.2 补码 46
2.3 实型数表示 47
2.3.1 Intel体系结构浮点数据表示 47
2.3.2 移码 48
2.4 指针型变量表示 50
2.4.1 存储器编址 50
2.4.2 寄存器 52
2.5 结构型变量表示 53
2.5.1 存储对齐 54
2.5.2 字节排序 55
2.6 合成式SIMD数据类型 57
2.6.1 64位SIMD合成式数据类型 57
2.6.2 128位SIMD合成式数据类型 58
习题2 60
第3章 程序翻译和链接 77
3.1 程序预处理 77
3.1.1 预处理制导类型 77
3.1.2 头文件的作用 80
3.1.3 条件包含的应用 83
3.2 程序翻译 84
3.2.1 编译 84
3.2.2 解释 88
3.2.3 双重翻译 89
3.3 链接 90
3.3.1 库的基本概念 91
3.3.2 静态链接 93
3.3.3 动态链接 97
3.4 集成开发环境的配置 101
3.4.1 关于头文件指向的配置 102
3.4.2 关于库指向的配置 103
3.4.3 关于平台选择的配置 104
习题3 106
第4章 程序的并行执行 116
4.1 程序存储映像 116
4.1.1 代码段 117
4.1.2 数据段 121
4.1.3 栈 124
4.1.4 堆 125
4.2 指令并行执行 126
4.2.1 指令流水线 126
4.2.2 流水线性能 128
4.2.3 流水化并行的瓶颈 129
4.3 线程级并行执行 130
4.3.1 多核处理器 130
4.3.2 多核处理器对多线程同时执行的支持 131
4.3.3 Intel HT技术 132
4.4 并行程序设计 135
4.4.1 加速for循环的并行构造 135
4.4.2 基于共享存储的并行编程模型 136
4.4.3 fork-join并行执行模型 139
习题4 141
第5章 存储层次与访问优化 155
5.1 存储资源的层次结构 155
5.1.1 存储层次的平均访问时间 156
5.1.2 存储体系的构建基础 156
5.1.3 多级cache 157
5.2 内存空间 158
5.2.1 内存与程序空间 158
5.2.2 虚拟地址到内存地址的映射 159
5.3 交换空间 160
5.3.1 Linux对交换空间的管理 162
5.3.2 Windows对交换空间的管理 163
5.4 内存维护管理 164
5.4.1 内存碎片 164
5.4.2 内存泄露 165
5.4.3 垃圾回收 167
5.5 高级语言程序数据组织与访问的优化 168
5.5.1 数据结构的声明 168
5.5.2 针对访问性能的循环变换 170
习题5 172
参考文献 196