漫画 | CPU战争40年,真正的王者终于现身!
上个世纪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在指令集架构层面上的差异已经被弥合。


漫画 | CPU战争40年,真正的王者终于现身!的更多相关文章
- [No000038]操作系统Operating Systems -CPU
管理CPU ,先要使用CPU… CPU 的工作原理 CPU上电以后发生了什么? 自动的取指 — 执行 CPU 怎么工作? CPU怎么管理? 管理CPU 的最直观方法 设好PC 初值就完事! 看看这样做 ...
- 如何限制虚拟主机可使用的CPU资源
使用IIS 6.0运营虚拟主机的朋友们都会碰到这样一个问题,当某个网站占用大量CPU资源时,会把整个服务器都拖慢了,影响服务器上其他网站的访问速度,客户们的投诉也让系统管理员倍感头疼.我们知道,从II ...
- TRUNCATE引起CPU异常上涨
13:05 2015/9/11 午睡醒来收到几封CPU使用率预警邮件.登录对应服务器,打开资源监视器,看到sqlservr.exe进程的CPU达到40%(平常服务器CPU消耗在10%以内).查看CPU ...
- SQL 数据库高CPU占用语句排查
前述 最近一个项目CPU占用非常高,在IIS内设置CPU限制后系统频繁掉线,通过任务管理器发现SQLSever数据库占用CPU达到40%--70%,对于数据库本人也就处在增删查改几个操作水平层面,这次 ...
- Linux查看CPU和内存的配置信息
CPU配置信息:frank@ubuntu:~/test/python$ cat /proc/cpuinfo processor : #系统中逻辑处理核的编号 vendor_id : GenuineIn ...
- Intel CPU Microarchitecture
http://en.wikipedia.org/wiki/Intel_Tick_Tock Atom Roadmap[16] Fabrication process Microarchitectur ...
- CPU 执行程序的秘密,藏在了这 15 张图里
前言 代码写了那么多,你知道 a = 1 + 2 这条代码是怎么被 CPU 执行的吗? 软件用了那么多,你知道软件的 32 位和 64 位之间的区别吗?再来 32 位的操作系统可以运行在 64 位的电 ...
- SQL SERVER数据库服务器CPU不能全部利用原因分析
背景 客户凌晨把HIS数据库迁移到配置更高的新服务器,上午业务高峰时应用非常缓慢,严重影响到业务运行. 1.现象 通过SQL专家云实时可视化界面看到大量的绿点,绿点表示会话在等待某项资源,绿点越大 ...
- 《自己动手写CPU》写书评获赠书活动结果
<自己动手写CPU>写书评获赠图书的读者有: 京东:8***2.16号哨兵.magicyu.kk6803.jddickyd.杰出的胡兵 亚马逊:徐贺.马先童.jaychen.farmfar ...
随机推荐
- Ubuntu 18.04 使用docker 部署gitlab并且使用自定义端口号
搭建原因 两个月前我搭建了公司的docker(无法自定义端口,),当初只想着把托管在GitHub的项目代码放在公司的服务器上面,后来忙着修改人脸服务器代码,忘记了,这个月由于领导提的需求比较多,还是托 ...
- MP(MyBatis-Plus)实现乐观锁更新功能
实现步骤 step1:添加乐观锁拦截器 MP的其他拦截器功能可以参考官网 @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { ...
- .NET 云原生架构师训练营(模块二 基础巩固 RabbitMQ HelloWorld)--学习笔记
2.6.3 RabbitMQ -- HelloWorld 发送端 接收端 rabbitmq container 发送信息 https://www.rabbitmq.com/tutorials/tuto ...
- Redis Cluster 集群节点维护 (三)
Redis Cluster 集群节点维护: 集群运行很久之后,难免由于硬件故障,网络规划,业务增长,等原因对已有集群进行相应的调整,比如增加redis nodes 节点,减少节点,节点迁移,更换服务器 ...
- 内存性能测试 Memtester+mbw
Memtester简单介绍 Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, 可 ...
- Nginx(六):配置解析之location解析
nginx成为非常流行的代理服务软件,最根本的原因也许是在于其强悍性能.但还有一些必要的条件,比如功能的完整,配置的易用,能够解决各种各样的实际需求问题,这些是一个好的软件的必备特性. 那么,今天我们 ...
- 【Oracle】整库导出后怎么恢复到指定用户的指定表
在导出的时候,整库导出 这里使用的是dba权限 $exp "'/ as sysdba'" file=full20180227.dmp log=exp_full20180227.lo ...
- sentinel-实战
sentinel-实战笔记 什么是Sentinel Sentinel是阿里开源的项目,提供了流量控制.熔断降级.系统负载保护等多个维度来保障服务之间的稳定性. Sentinel主要特性: 获取Sent ...
- Dubbo的设计理念原来就藏在这三张图中
Dubbo在众多的微服务框架中脱颖而出,占据RPC服务框架的半壁江山,非常具有普适性,熟练掌握 Dubbo的应用技巧后深刻理解其内部实现原理,让大家能更好的掌控工作,助力职场,特别能让大家在面试中脱颖 ...
- APM调用链产品对比
APM调用链产品对比 随着企业经营规模的扩大,以及对内快速诊断效率和对外SLA(服务品质协议,service-level agreement)的追求,对于业务系统的掌控度的要求越来越高,主要体现在: ...