上个世纪70年代,内存又慢又贵, 程序员得想尽一切办法节省内存。
那个时代的编译器也比较差劲
所以,70年代的程序员几乎都写得一手好汇编。
为了帮助程序员写好汇编,这个时候的CPU也有意把指令集做了增强。
80年代初,Intel 的x86 CPU和微软的DOS被IBM选中,成为了IBM PC兼容机的处理器和操作系统。
在摩尔定律的支配下, x86 CPU 变得越来越复杂。
最后,连编译器都受不了了。
IBM研究院的John Cocke发现,处理器提供的大量指令集和寻址方式并不会被编译器生成的代码用到。
既然如此,为什么不设计一个新的指令集,保留这最常用的20%的指令呢?
这样CPU的设计和实现岂不更加简单?
这就是著名的精简指令集(RISC)的思路。
当时,IBM,加州大学伯克利分校的David Patterson,斯坦福大学的John Hennessy是RISC研究的先驱。
RISC可不仅仅把指令做了精简,还有其他一些非常重要的提升。
新理论的诞生从来都不是一帆风顺的,当时CICS的一些设计大师就持不同意见。
David Patterson憋着一口气,带领自己的学生,设计出了一款RISC处理器, 1982年, RISC-I处理器发布了。
看到RISC有如此表现,一大批公司开始采用RISC的思路来设计处理器,RISC如同星火燎原之势,迅速攻占了服务器端市场。
虽然牢牢统治者PC市场,但RISC的发展让Intel 感受到了巨大的压力,Intel决定两条腿走路。
但是PC是x86架构,所有的操作系统和软件都围绕它来构建。
i860连兼容的操作系统和软件都没有,根本就发展不下去。
既然RISC发展不起来,Intel 下定决心,抛弃RISC, 一条道走到黑。
到了1995年,Intel终于找到了办法,那就是把x86的指令集,解码成类似于RISC的微操作(uops),执行的时候采用RISC内核。
Intel利用从PC市场赚取的巨额利润,不断投入,随着体系结构和微电子技术的进步,CICS在结构上的劣势逐渐消失。
在Intel 的进攻下, RISC在服务器CPU市场节节败退,时至今日,被Intel占据了95%的市场。
再加上桌面市场, x86几乎完成了垄断。
RISC就此失败了吗?
在90年代和21世纪初,PC占据了主导地位,但是一颗新星正在蛰伏,等待爆发。
但是很遗憾,Newton技术过于超前,用户体验糟糕,未被市场接受,以失败告终。
但ARM积累了经验,继续改进技术。没过多久,便在诺基亚等功能机上获得了成功。
2007年, ARM终于迎来了自己的黄金时代。
后面的故事大家都比较清楚了, ARM 踏上了移动时代的浪潮,统治了手机市场。
不仅如此,统治了移动市场的ARM,开始反攻服务器和台式机了!
2007年,David Patterson和John Hennessy由于在RISC领域的卓越贡献获得图灵奖
实际上,回顾CPU过去40年的发展,Intel曾经向RISC学习,搞出了RISC内核。
而ARM也引入了代码密度更高的新指令集,向CISC取经。
CISC与RISC在指令集架构层面上的差异已经被弥合。