当前位置: 首页 > news >正文

繁简之争:为什么手机芯片都是 ARM

RISC 和 CISC 指令集

之前的文章《揭秘 CPU 是如何执行计算机指令的》中说到,如果从软件的角度来讲,CPU 就是一个执行各种计算机指令(Instruction Code)的逻辑机器

计算机指令集是计算机指令的集合,包括各种类型的指令,例如数据传输指令(用于在内存和寄存器之间移动数据)、算术运算指令(如加法、减法、乘法、除法等)、逻辑运算指令(与、或、非等)、控制转移指令(用于改变程序执行的流程,如跳转、分支等)。

CISC(复杂计算机指令集计算机)和 RISC(精简指令集计算机)是两种不同的计算机指令集架构。

CISC 是早期的计算机指令集架构,最早出现在 20 世纪 70 年代早期。为了性能考虑,很多功能都是通过硬件电路来实现的。为了少用内存,指令长度是可变的。

到了 20 世纪 80 年代早期,RISC 开始登上了历史的舞台。当时,加州大学伯克利分校的大卫·帕特森教授发现,实际在 CPU 运行的程序里,80% 的时间都是在使用 20% 的简单指令。于是选择把指令“精简”到 20% 的简单指令。而原先的复杂指令,则通过用简单指令组合起来来实现,让软件来实现硬件的功能。
在这里插入图片描述

RISC 与 CISC 之争

20 世纪 80 年代,计算机体系结构领域关于 RISC 指令集和 CISC 指令集优缺点的争论十分激烈。RISC 的支持者声称在给定硬件数量的情况下,通过结合简约式指令集设计、高级编译技术和流水线化的处理器实现,他们能够得到更强的计算能力。而 CISC 的拥趸反驳说要完成一个给定的任务只需要用较少的 CISC 指令,而且这样的机器能够获得较高的总体性能。

CISC 和 RISC 可以参考下面对比图:

在这里插入图片描述

在 20 世纪 90 年代早期,争论逐渐平息,因为事实已经很清楚了,无论是单纯的 RISC 还是单纯的 CISC 都不如结合两者思想精华的设计。RISC 机器发展进化的过程中,引入了更多的指令,而许多这样的指令都需要执行多个周期。今天的 RISC 机器的指令表中有几百条指令,几乎与“精简指今集机器”的名称不相待了。

比较新的 CISC 机器也利用了高性能流水线结构,它们读取 CISC 指令,并动态地翻译成比较简单的、像 RISC 那样的操作的序列。由于动态翻译通常可以在实际指令执行前进行,处理器可以保持很高的执行率。

为什么手机芯片是 ARM

ARM 是“Advanced RISC Machines”的缩写。从名字可以看出来,ARM 的芯片是基于 RISC 架构的。
在这里插入图片描述

不过,ARM 能在移动端战胜 Intel,并不是因为 RISC 架构。21 世纪的今天,CISC 和 RISC 架构的分界已经没有那么明显了。Intel 和 AMD 的 CPU 也都是采用译码成 RISC 风格的微指令来运行。而 ARM 的芯片,一条指令同样需要多个时钟周期,有乱序执行和多发射。ARM 真正能够战胜 Intel,我觉得主要是因为下面这两点原因。

第一点是功耗优先的设计。一个 4 核的 Intel i7 的 CPU,设计的时候功率就是 130W。而一块 ARM A8 的单个核心的 CPU,设计功率只有 2W。两者之间差出了 100 倍。在移动设备上,功耗是一个远比性能更重要的指标。ARM 的 CPU,主频更低,晶体管更少,高速缓存更小,乱序执行的能力更弱。所有这些,都是为了功耗所做的妥协。

第二点则是低价。ARM 公司并没有垄断 CPU 的生产和制造,只是进行 CPU 设计,然后把对应的知识产权授权出去,让其他的厂商来生产 ARM 架构的 CPU。它甚至还允许这些厂商可以基于 ARM 的架构和指令集,设计属于自己的 CPU。像苹果、三星、华为,它们都是拿到了基于 ARM 体系架构设计和制造 CPU 的授权。ARM 自己只是收取对应的专利授权费用。多个厂商之间的竞争,使得 ARM 的芯片在市场上价格很便宜。

“遥遥领先”算什么

之前在小红书发布笔记的时候,有朋友留言问“遥遥领先”(麒麟芯片)算什么?

我没找到官方公布的相关说明,但是我觉得遥遥领先麒麟芯片也肯定是基于精简指令集的,也必然是大核+小核协同工作的,因为这样可以平衡性能和功耗。欢迎懂行的指导~

在这里插入图片描述

未来是属于 RISC-V 的

不过,ARM 并不是开源的。所以,在 ARM 架构逐渐垄断移动端芯片市场的时候,“开源硬件”也慢慢发展起来了。一方面,MIPS 在 2019 年宣布开源;另一方面,RISC-V 项目也越来越受到大家的关注。而 RISC 概念的发明人,图灵奖的得主大卫·帕特森教授从伯克利退休之后,成了 RISC-V 国际开源实验室的负责人,开始推动 RISC-V 这个“CPU 届的 Linux”的开发。可以想见,未来的开源 CPU,也多半会像 Linux 一样,逐渐成为一个业界的主流选择。
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Material-UI】Autocomplete 组件的局限性(Limitations)详解
  • [最短路SPFA]--启动!!!!!
  • 微信小程序开发优惠券制作源码
  • 分享一个基于人脸识别的小区物业管理系统Spring Boot(源码、调试、LW、开题、PPT)
  • Cocos Creator2D游戏开发(10)-飞机大战(8)-计分和结束
  • Oracle的RAC集群安装和配置 NFS 共享存储(NAS共享存储)
  • pytest之fixture
  • 过期知识:thinkphp5 使用migrate给现有的数据表新增表字段
  • 爬虫数据模拟真实设备请求头User-Agent生成(fake_useragent:一个超强的Python库)
  • 【第四章】测试理论与方法 - 黑盒测试
  • 最全面的Python重点知识汇总,建议收藏!
  • 销量激增难解奇瑞焦虑:新能源短板与加班文化引争议
  • 【PyTorch】安装pytorch方法总结
  • 【C++】C++应用案例-通讯录管理系统
  • 守护数据堡垒:SQL Server数据库自定义备份审计实现指南
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 2017-08-04 前端日报
  • Docker入门(二) - Dockerfile
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • mac修复ab及siege安装
  • Mac转Windows的拯救指南
  • PAT A1120
  • Redis学习笔记 - pipline(流水线、管道)
  • 初识MongoDB分片
  • 大主子表关联的性能优化方法
  • 排序算法学习笔记
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 一个SAP顾问在美国的这些年
  • 自制字幕遮挡器
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​secrets --- 生成管理密码的安全随机数​
  • (1)(1.13) SiK无线电高级配置(五)
  • (LLM) 很笨
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (论文阅读40-45)图像描述1
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)RocketMQ初步认识
  • (转)memcache、redis缓存
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • ***利用Ms05002溢出找“肉鸡
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .Net Core 中间件与过滤器
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net 无限分类
  • .Net 中Partitioner static与dynamic的性能对比
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [012-1].第12节:Mysql的配置文件的使用
  • [ActionScript][AS3]小小笔记
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [BZOJ 3282] Tree 【LCT】