第1章 绪论 1
1.1 研究背景 1
1.1.1 传统缓存技术所面临的问题 1
1.1.2 新型非易失性存储技术带来的机遇 3
1.1.3 新型非易失性存储技术面临的挑战及解决方案 7
1.2 目标和内容 9
1.2.1 基于分区技术的缓存功耗优化方法 11
1.2.2 基于反馈学习的非易失性缓存功耗优化方法 11
1.2.3 基于磨损均衡技术的非易失性缓存功耗优化方法 12
1.2.4 基于数据分配技术的混合缓存功耗优化方法 12
1.2.5 基于周期性学习的多级非易失性缓存功耗优化 13
1.2.6 基于编译技术的PCM功耗优化 13
1.3 组织结构 14
1.4 本章小结 15
参考文献 15
第2章 缓存技术的研究现状 19
2.1 传统缓存技术的研究现状 19
2.1.1 减少缓存动态功耗的方法 20
2.1.2 减少缓存静态功耗的方法 21
2.2 新型缓存技术的研究现状 22
2.2.1 缓存优化方法分类与总结 22
2.2.2 基于STT-RAM的缓存优化方法 25
2.2.3 基于PCM的缓存优化方法 40
2.2.4 基于RRAM的缓存优化方法 41
2.2.5 基于DWM的缓存优化方法 42
2.3 本章小结 44
参考文献 44
第3章 基于分区技术的缓存功耗优化 55
3.1 研究动机 56
3.1.1 缓存分区技术潜在的优势 56
3.1.2 消除死写块潜在的好处 57
3.2 复用局部性感知的缓存分区方法 58
3.2.1 整体框架 58
3.2.2 缓存分区大小的选择 59
3.2.3 复用局部性缓存块保留算法 62
3.2.4 复用局部性指导数据分配 65
3.3 实验评估方法 67
3.3.1 实验设置 67
3.3.2 实验测试集的选取 68
3.3.3 实验评价标准 69
3.4 实验结果与分析 69
3.4.1 单线程工作负载 69
3.4.2 多道程序工作负载 71
3.4.3 多线程工作负载 72
3.4.4 讨论与分析 73
3.4.5 硬件开销分析 76
3.5 本章小结 76
参考文献 77
第4章 基于反馈学习的非易失性缓存功耗优化 80
4.1 研究动机 81
4.1.1 例子分析 82
4.1.2 消除死写块的潜在好处 83
4.2 基于反馈学习的死写终止方法 83
4.2.1 整体框架 83
4.2.2 缓存块访问行为学习 84
4.2.3 缓存块分类 86
4.2.4 死写终止 88
4.2.5 信息反馈 88
4.3 实验评估方法 89
4.3.1 实验设置 89
4.3.2 实验测试集的选取 90
4.4 实验结果与讨论 90
4.4.1 功耗评估 91
4.4.2 性能评估 92
4.4.3 预测准确性评估 93
4.4.4 开销分析 93
4.4.5 B的敏感性分析 94
4.4.6 α、β和εi的选取分析 95
4.4.7 适应性分析 96
4.5 本章小结 96
参考文献 96
第5章 基于磨损均衡技术的非易失性缓存功耗优化 100
5.1 研究动机 102
5.2 磨损均衡技术指导缓存数据分配 104
5.2.1 SEAL方法的设计 105
5.2.2 评价指标定义 107
5.2.3 缓存组间数据迁移策略 109
5.2.4 缓存组内数据迁移策略 111
5.3 实验评估 113
5.3.1 实验环境 113
5.3.2 实验结果 115
5.3.3 讨论与分析 119
5.4 本章小结 122
参考文献 123
第6章 基于数据分配技术的混合缓存功耗优化 127
6.1 研究动机 128
6.2 数据分配方法 129
6.2.1 问题定义 130
6.2.2 SBOP方法架构 131
6.2.3 SBOP方法的能耗优化 132
6.3 实验评估 135
6.3.1 实验设置 135
6.3.2 预测准确性评估 136
6.3.3 动态功耗评估 137
6.3.4 运行时间评估 138
6.3.5 开销分析 139
6.4 本章小结 140
参考文献 140
第7章 基于周期性学习的多级非易失性缓存功耗优化 144
7.1 MLC STT-RAM概述 145
7.2 研究动机 147
7.3 周期性学习的自适应缓存块数据分配方法 149
7.3.1 问题定义 149
7.3.2 缓存访问行为的离线分析 151
7.3.3 PL-ABP 152
7.4 实验评估 155
7.4.1 实验设置 155
7.4.2 实验结果 156
7.4.3 讨论与分析 158
7.5 本章小结 160
参考文献 161
第8章 基于编译技术的PCM功耗优化 164
8.1 易失性PCM的模型 166
8.1.1 MLC PCM及其写操作 166
8.1.2 MLC PCM写延迟和数据保留时间的权衡 167
8.1.3 易失性PCM的模型 168
8.2 研究动机 169
8.3 编译指导的双重写方法 173
8.3.1 构造控制流图 173
8.3.2 存储器地址分析 176
8.3.3 定义可达性分析 176
8.3.4 WCLT分析 177
8.3.5 代码注入 181
8.4 实验评估方法 181
8.5 实验结果与分析 185
8.5.1 性能提升评价 185
8.5.2 写功耗减少评价 186
8.5.3 耐久性评估 187
8.5.4 开销和有效性讨论 188
8.5.5 进一步讨论 190
8.6 本章小结 191
参考文献 191
第9章 总结与展望 196
9.1 总结 196
9.2 展望 198