[转]突破“内存墙”,CPU可以性能更好,能耗更低
文章链接:
1. CPU缓存性能的重要性
2. 缓存和内存墙的介绍
3. LRU缓存算法的错误和UcomPower的发现
4. 评述高速CPU设计的两种常见思路
5. UcomPower的CPU设计新思路
6. 应用新缓存技术的CPU的市场机会
缩写(不想一篇篇看就看这个):
目前的内存主要采用DRAM. DRAM传输速度不断增加,但访问延迟较大的问题始终无法解决。
DRAM延迟使得CPU需要花时间等待内存访问完成。这就是“内存墙”。“内存墙”带来一系列问题,包括限制CPU性能、增加CPU发热量等。
UcomPower提出CPU计算时间只占程序总耗时的不到20%. 剩下的80%多很大一部分由"内存墙"引起。因此无论是提高CPU频率还是增加核心数目对提高性能没有太大帮助。
SRAM存储密度太低,成本太高,因此DRAM内存暂时不可替代。通过改进内存技术消除“内存墙”目前不可能。
缓存是目前能够抵抗“内存墙”唯一有效的手段。
缓存的基础理论是时间局域性原理(Principle of Temporal Locality). 通俗地讲就是:最近被访问到的项目,在较近的未来较有可能被再次访问到。
LRU是一个体现了时间局域性原理的缓存替换算法,一直以来,几乎所有的CPU缓存都是采用的LRU及其变种。
实验/分析后,UcomPower发现时间局域性原理的描述并不准确:内存访问痕迹分布是极其不均衡的,程序的内存地址的使用计数呈现出强烈的“长尾”形态。大部分地址只用一次,这些地址完全没有缓存的价值。
而LRU认为每一个地址在将来都是有用的,因此会把大量的只用一次的内存地址保存很久,而CPU缓存中有价值的地址会被排挤出去。
UcomPower发明了一个LRU缓存替换算法的改进,称之为WLRU。WLRU能够很快地排除只用一次的内存地址,从而保护了CPU缓存中有价值的内存地址。
UcomPower认为自己的这项技术有助于制造出具有革命性意义的CPU,进而打败Intel, nVidia等传统芯片巨头。
我的几点看法:
1. 文章商业味比较重。LRU算法不能说有错误,只能说解决方案不够优。
2. 没有提供有力的实验数据说明WLRU的有效性(WLRU就是他们的命根子,掖着不放可以理解)。
3. 只凭借WLRU,国产CPU就可以打败Intel吗?工艺/其他众多技术细节怎么解决?靠ARM/MIPS授权+代工的模式?(做软件,这一块我了解不多)