过去20年,PC的商业模式就是:Intel不停地推出更快的CPU,微软把软件写得更慢,强迫大家升级。现在,因为“内存墙”问题,“Intel rubbish at making chips”。这个生意模式已经不行了。过去5年,苹果飞速发展,特别是采用ARM芯片的IPhone和IPAD。ARM有机会成为下一个Intel。不过苹果和其他人,显然会压制ARM。苹果最近连续收购多家小CPU设计公司,就是例子。Oracle的老板也不甘寂寞,SUN已经到手,但是他还在收购CPU公司。
可以肯定,任何有助于突破“内存墙”的技术,都有巨大价值。以AMD的前CTO,Fred Weber为例。2005年,Weber提出了“Instruction Set Consolidation”的概念。意思是说,因为内存墙,CPU核心的区别已经没有意义了,任何CPU核心,效果都是一样的。 Weber为AMD指出的道路是:X86无处不在。Intel现在就是走的这条路。但是,Weber当时被AMD开除了。离开AMD后,Weber成立了一家公司metaRAM,专门做新的内存。最近的消息是,这家公司关门了。在没有新发现和新突破的情况下,“内存墙”哪有那么容易突破。
我的发现是一个偶然,当然也是我辛苦努力的结果。我当时无聊地亲自重复所有的实验。过去30年来,所有的人都相信“时间局域性原理Principle of Temporal Locality”。这个原理和LRU替换算法,是每一本教科书必讲的。比如计算机体系结构的圣经教科书,斯坦福大学的著名教授,MIPS的发明者,Hennessy和Patterson的《量化研究方法》第4版的38页,对“时间局域性原理”的描述是:The recently accessed items are likely to be accessed in the near future。但是,我肉眼观察和统计的结果,恰恰与之相反。我发现的,内存访问的分布呈现严重的“长尾”形态。几乎所有的程序,最少超过50%的数据是只使用一次的。而且,在网络和多媒体应用中,只使用一次的比例,超过90%。我详细查阅资料,包括我,有三个人发现了这个规律。但是,只有我认真地坚持下来,据此发现,重新设计CPU缓存。