关于
1. 引言
2. 现代商用硬件
2.1. RAM 的种类
2.1.1. 静态 RAM
2.1.2. 动态 RAM
2.1.3. DRAM 存取
2.1.4. 结论
2.2. DRAM 存取技术细节
2.2.1. 读取协议
2.2.2. 预充电与有效化
2.2.3. 再充电
2.2.4. memory类型
2.2.5. 结论
2.3. 其它主memory使用者
3. CPU cache
3.1. 概观 CPU cache
3.2. 高阶cache操作
3.3. CPU cache实作细节
3.3.1. 关联度
3.3.2. cache影响的量测
3.3.3. 写入行为
3.3.4. 多处理器支援
3.3.5. 其它细节
3.4. 指令cache
3.4.1. 自我修改的程序码
3.5. cache错失的因素
3.5.1. cache与memory频宽
3.5.2. 关键字组的载入
3.5.3. cache的配置
3.5.4. FSB 的影响
4. 虚拟memory
4.1. 最简单的地址转译
4.2. 多层级分页表
4.3. 最佳化分页表存取
4.3.1. 使用 TLB 的预警
4.3.2. 影响 TLB 效能
4.4. 虚拟化的影响
5. NUMA 支援
5.1. NUMA 硬件
5.2.操作系统对 NUMA 的支援
5.3. 被发布的资讯
5.4. 远端存取成本
6. 程序开发者能做些什么?
6.1. 绕过cache
6.2. cache存取
6.2.1. 最佳化一阶资料cache存取
6.2.2. 最佳化一阶指令cache存取
6.2.3. 最佳化二阶与更高阶cache存取
6.2.4. 最佳化 TLB 使用
6.3. 预取
6.3.1. 硬件预取
6.3.2. 软件预取
6.3.3. 特殊的预取类型:猜测
6.3.4. 辅助执行绪
6.3.5. 直接cache存取
6.4. 多执行绪最佳化
6.4.1. 并行最佳化
6.4.2. 最小操作的最佳化
6.4.3. 频宽考量
6.5. NUMA 程序设计
6.5.1. memory策略
6.5.2. 指定策略
6.5.3. 置换与策略
6.5.4. VMA 策略
6.5.5. 查询节点资讯
6.5.6. CPU 与节点集合
6.5.7. 明确的 NUMA 最佳化
6.5.8. 利用所有频宽
A. 范例与基准测试程序
A.1 矩阵乘法
参考书目
本書使用 GitBook 釋出
3.5. cache错失的因素
3.5. cache错失的因素
我们已经看过,在memory存取没有命中cache时的成本一飞冲天。有时候这是无可避免的,而了解实际的成本、以及能做些什么来减轻问题是很重要的。
results matching "
"
No results matching "
"