Tenloy's Blog

指令集、微架构、手机芯片(Soc)及ARM的介绍

Word count: 7.9kReading time: 27 min
2021/04/08 Share

本篇文章偏硬件科普,没有什么实质性的技术知识。

一、指令集

以下摘自维基百科

指令集架构(Instruction Set Architecture,缩写为ISA),又称指令集指令集体系,有的地方也称为CPU架构。包含了一系列的opcode即操作码(机器语言),以及由特定处理器执行的基本命令。

一台计算机要有较好的性能,必须设计功能齐全、通用性强、内含丰富的指令系统。常接触的指令集内容:

  • 寻址方式:立即寻址、直接寻址、基址寻址、变址寻址等等
  • 数据格式:指令操作数类型比如地址、数字、字符、逻辑数等
  • 数据在存储器中的存放类型:比如存储字长64位,机器字长32位,是否对齐存放等。及字节序:大端、小端
  • 指令类型:数据传送、算术逻辑操作、移位操作、转移操作、输入输出等

指令集体系与微架构(一套用于执行指令集的微处理器设计方法)不同。使用不同微架构的电脑可以共享一种指令集。例如,Intel的Pentium和AMD的AMD Athlon,两者几乎采用相同版本的x86指令集体系,但是两者在内部设计上有本质的区别。

从现阶段的主流体系结构讲,指令集可分为:

  • 复杂指令集CISC(Complex Instruction Set Computer)
    • 包含许多应用程序中很少使用的特定指令,由此产生的缺陷是指令长度不固定。比如DEC公司的VAX-11/780有16种寻址方式、9种数据格式、303条指令
  • 精简指令集RISC(Reduced Instruction Set Computer)
    • 通过只执行在程序中经常使用的指令来简化处理器的结构,而特殊操作则以子程序的方式实现,它们的特殊使用通过处理器额外的执行时间来弥补。

1.1 常见的指令集

  • CISC

    • IA-32:英特尔32位架构(Intel Architecture, 32-bit,缩写为IA-32),常被称为i386、或x86
      • 由英特尔公司于1985年推出的指令集架构。它是8086架构的延伸版本,可支持32位运算,首次应用在Intel 80386芯片中。主要用于PC端。
      • Intel早期给于AMD授权,使得AMD公司可以开发兼容x86指令集的CPU,但在微架构的实现上区别很大。
    • x86-64:又称x64、x86_64。
      • 对x86进行扩展,增加64位支持,向后兼容于16位及32位的x86架构。
      • 是于1999年由AMD设计,其后也为Intel所采用,称之为Intel 64(所以有媒体讽刺Intel在迎击AMD的民用64位技术上,使用了AMD的技术)。
      • x与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,是一个intel通用计算机系列的编号,也标识一套通用的计算机指令集合,例如:i386, 586,奔腾(pentium)。
  • CISC

    • arm系列:原英国公司,后被软银约320亿美元收购,主要用于手机、平台等移动设备
    • RISC-V:(“RISC” 表示精简指令集,V表示第五代),最新的开源的,龙头企业SiFive在19年获得D轮6540万美元的融资。本次融资中,高通是其中重要的投资方,另外,三星和英特尔也有相关资金的投入。
    • MIPS: 是出现最早的商业RISC架构芯片之一,随着移动互联网的兴起,MIPS 指令集逐渐衰落,公司也多次辗转被收购。
    • PowerPC: IBM公司

1.2 指令的组成

在传统的架构上,一条指令包含op code,表示运算的方式,以及零个或是更多的操作数,有些像是操作数的数字可能指的是寄存器的编号,还有存储器位置,或是文字数据。

在超长指令字(VLIW)的结构中,包含了许多微指令,借此将复杂的指令分解为简单的指令。

1.3 指令的长度

指令长度的范围可以说是相当广泛,从微控制器的4 bit,到VLIW系统的数百bit。在个人电脑,大型机,超级电脑内的处理器,其内部的指令长度介于8到64 bits。在一个指令集架构内,不同的指令可能会有 不同长度。在一些结构,特别是大部分的精简指令集(RISC),指令是 固定的长度,长度对应到结构内一个字的大小。在其他结构,长度则是byte的整数倍或是一个halfword。

  • 在x86处理器结构(CISC)内,指令长度不同,最长的指令长达15 bytes,等于120 bits
  • 所有 ARM 指令(RISC)的长度都是 32 位。 这些指令按字对齐方式进行存储,因此在 ARM 状态下,指令地址的两个最低有效位始终为零。

1.4 CPU指令集的形式:机器码、汇编指令

一般指令集专利持有者在设计指令集的时候,往往提供指令集对应的机器语言规范。 而为了方便,一般也会提供汇编语言规范(在机器语言的基础上,增加了一些助记符)。
常见的指令集以及汇编语言规范

  • x86指令集(PC端)
  • x86-64指令集(PC端)
    • 根据编译器的不同,有2种汇编语言规范:
    • intel汇编语言规范:Windows派系(Microsoft),比较著名的汇编器有微软的masm和开源的nasm
    • AT&T汇编语言规范:Unix派系(或者说GNU),比如g++编译器等
  • ARM指令集(嵌入式、移动端设备)

汇编语言规范,是给汇编程序开发者看的,也是给编译器(重要的是汇编器)看的,目的只有一个:保证汇编程序能通过汇编器转换成CPU兼容执行、实现逻辑功能的指令(二进制码)序列。如果你能编写自己的汇编器,完全可以定义自己的汇编语言规范

所以,汇编语言和机器语言是一一对应的吗?

在同一汇编规范下,它们是一一对应的。如果考虑到不同的汇编语言规范,它们就不是一一对应的了。在多数场合,笼统地说,汇编语言和机器语言是一一对应的。

1.5 GPU有没有指令集?

图形处理器(Graphics Processing Unit,GPU),又称显示核心、视觉处理器、显示芯片或绘图芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。

图形处理器:

  • 可单独与专用电路板以及附属组件组成显卡
  • 或单独一片芯片直接内嵌入到主板上
  • 或者内置于主板的北桥芯片中
  • 现在也有内置于CPU上组成SoC的

发展

  • 个人电脑领域中
    • 在2007年,90%以上的新型台式机和笔记本电脑拥有嵌入式绘图芯片,但是在性能上往往低于不少独立显卡。
    • 但2009年以后,AMD和英特尔都各自大力发展内置于中央处理器内的高性能集成式图形处理核心
    • 2012年时,它们的性能已经胜于那些低端独立显卡,这使得不少低端的独立显卡逐渐失去市场需求,两大个人电脑图形处理器研发巨头中,AMD以AMD APU产品线取代旗下大部分的低端独立显示核心产品线。
  • 手持设备领域上
    • 随着一些如平板电脑等设备对图形处理能力的需求越来越高,不少厂商像是高通(Qualcomm)、PowerVR、ARM、NVIDIA等,也在这个领域里纷纷“大展拳脚”。

GPU不同于传统的CPU,如Intel i5或i7处理器,其内核数量较少,专为通用计算而设计。相反,GPU是一种特殊类型的处理器,具有数百或数千个内核,经过优化,可并行运行大量计算。虽然GPU在游戏中以3D渲染而闻名,但它们对运行分析、深度学习和机器学习算法尤其有用。GPU允许某些计算比传统CPU上运行相同的计算速度快10倍至100倍。

指令集是针对微处理器而言,而由微处理器的解释可知,根据微处理器的用途划分,常见的有CPU、GPU、APU等,按照概念,GPU应该也有相应的指令集及微架构。从GPU的条目中也可以看到指令集的字眼。

  • 如无特殊说明,说指令集一般是指CPU指令集
  • 至于GPU的指令集,可以参考Intel GPU的ISA

二、微(处理器)架构概述

微架构(Microarchitecture),又称为微体系结构、微处理器体系结构、计算机组织等,是一套用于执行某种指令集的微处理器设计方法,即微架构使得指令集架构(ISA)可以在处理器上被运行

2.1 微架构的概念

从控制单元、运算单元两方面来简单介绍一下:

  • 控制单元。现时,流水线数据路径是微架构中最常被使用的数据路径(就是指令流水技术)。这种作法也被普遍的用于微处理器,微控制器,以及数字信号处理器。
    • 流水线是微架构其中一项主要的工作。流水线的结构允许多个指令在同一时间运行,不同的指令在微架构不同的位置运行。
    • 流水线分有好几个不同的阶段(stage),这些阶段是微架构的基础。这些阶段包含取指令,译码,运行指令,以及将数据写回。
    • 一些结构还包含其他阶段,像是对存储器做访问的动作。
  • 运行单元也是微架构的基本组件。
    • 运行单元包含算术逻辑单元(ALU),浮点运算器(FPU),load/store单元,分支预测,以及SIMD。这些单元在处理器内进行计算。
    • 运行单元的数量,他们的延迟(存储器访问数据的时间)及吞吐量(将数据存到或是读取出存储器的速度)影响微架构的性能。

2.2 指令集与微架构的关系

  • 一套指令集架构可以在不同的微架构上运行。但注意厂商开发兼容某种指令集的微架构,需要指令集专利持有者授权,常见的如:
    • Intel的x86指令集,运行在Intel、AMD公司开发的微结构上
    • ARM指令集,运行在ARM公司、苹果、三星公司开发的微架构上
  • 指令集架构相当于是 微处理器的功能接口,一般公开
  • 微架构是一套用于执行指令集的微处理器设计方法,是指令集的 硬件实现,一般保密
  • 一般是先确认指令集,然后设计微架构(硬件开发类似软件开发,先确定功能,再设计架构)。

对于兼容ARM指令集的芯片来说,指令集与微架构这两个概念尤其容易混淆:

  • ARM公司将自己研发的指令集叫做ARM指令集,同时它还研发具体的微架构如Cortex系列并对外授权。
  • 但是,一款CPU使用了ARM指令集不等于它就使用了ARM研发的微架构
    • Intel、高通、苹果、Nvidia等厂商都自行开发了兼容ARM指令集的微架构
    • 同时还有许多厂商使用ARM开发的微架构来制造CPU

通常,业界认为只有具备独立的微架构研发能力的企业才算具备了CPU研发能力,而是否使用自行研发的指令集无关紧要。微架构的研发也是IT产业技术含量最高的领域之一。

2.3 发展

在PC时代,几大主要的CPU研发厂商都只是自己研制微架构自己用。到了智能设备时代,ARM公司的微架构授权模式兴起。ARM自己开发微架构后将它们上架出售,其他厂商可以拿这些核心组装为芯片来使用或销售。由于这种模式对第三方的技术能力要求很低,加上ARM的微架构在低功耗领域表现优异,这种模式获得了广泛成功。如果你发现某款芯片标明使用了Cortex系列核心,则一定是这种模式的产物。

如前所述,仅仅从ARM购买微架构来组装芯片的厂商是不能被称作CPU研发企业的,这些芯片也不能被称为“xx厂商研发的CPU”。典型如华为的海思920、三星Exynos 5430,只能说是“使用ARM Cortex-A15核心的芯片”

但是如果一款兼容ARM指令集的芯片使用了厂商自主研发的微架构情况就不同了。高通骁龙800、苹果A7就是这样的例子–它们分别使用了高通、苹果自主研发的CPU。

那么,现在各家CPU研发厂商选择指令集的标准又是什么呢?一般来说大家倾向于选择软件生态较好的指令集,即支持某种指令集的软件应用越多,这种指令集也就越有市场优势。新开发的微架构只需要兼容某种指令集,那么就可以很容易运行大量为其开发的软件。早年因为微软的强势与Wintel联盟的推动,x86指令集成了最受欢迎的角色,帮助Intel用彼时性能相对落后的微架构在PC平台挤跑了一众对手。后PC时代由于苹果谷歌的两大操作系统平台的推动,ARM指令集又取得了绝对的市场优势。

但对于新的CPU研发单位来说,他们想获得热门指令集的兼容授权是很困难的事情。

  • 以前x86与ARM的指令集授权是拿钱买不到的,想要得到都需要进行高水平专利交换。拿到x86授权的几家厂商要么是拿的早(AMD、Cyrix、IDT),要么是有高水平技术与Intel交易(Transmeta,以功耗控制技术同Intel交易)。后来Nvidia想要研发自己的CPU,找Intel洽谈多次未果。国内的研发单位当年开始研究时自知不可能拿到x86授权,于是各自去找关系好些的其他授权方解决问题了。关于x86授权的那点事
  • ARM这边也一直对指令集授权卡的很死,之前只有高通、博通和Intel得到,也是通过技术交换的形式。08年苹果也拿到了ARM的许可,后来ARM对指令集授权也放松了。

数年前国产龙芯CPU获得MIPS授权的消息曾引起一阵风波,龙芯相关负责人还曾出来解释。龙芯是兼容MIPS指令集,微架构部由中科院自主研发的CPU系列。过去中科院资金不足所以没有MIPS指令集授权,但是指令集的实现方式是公开的,因而中科院可以在研发时选择兼容该指令集。待资金充足买下授权后,龙芯就可以合法在市面销售。

从这里我们可以知道,厂商研发CPU时并不需要获得指令集授权就可以获得指令集的相关资料与规范,指令集本身的技术含量并不是很高。获得授权主要是为了避免法律问题。然而微架构的设计细节是各家厂商绝对保密的,而且由于其技术复杂,即便获得相应文档也难以山寨。不同厂商的微架构设计水平也有较大差异,典型如Intel与AMD的对比,前者在最近几年明显技高一筹。

三、手机芯片(Soc)

3.1 芯片的说明

现在常说的芯片非CPU,而是Soc。如麒麟、晓龙芯片

微架构研发完成,或者说核心研发完成,接下来就是将其组装为芯片了。芯片概念澄清

  • 过去的芯片仅仅包括CPU部分
  • 如今大量的芯片集成了CPUGPUNPU(神经网络处理器)、ISP(image sensor processor)、基带芯片(Baseband)、音频芯片WiFi芯片电源管理芯片(PMIC)内存闪存等多种不同的功能组件,此时这种芯片就不是传统意义上的“CPU”了。那就成为手机的灵魂所在:单片系统或片上系统 (System on a Chip, SoC)。

所以不用揪着华为使用公版ARM 的CPU和GPU的技术不放,能够把公版CPU/GPU下的SoC设计好也需要很深的技术积累的,全都自研带来的研发成本及最后的研发结果好坏,太难预料。

关于后续的芯片制造,有两种选择

  • 首先是Intel那样的,从头到尾自己大包大揽,指令集、架构、芯片的设计、芯片的生产一律不依靠任何人。这样做是需要极其雄厚、全方位的实力做保障的,得有钱、有人、有技术,特别是在半导体技术日益复杂的今天,能这么做的屈指可数。好处当然也是很明显的,不但能完全自己把握自己的命脉,利润也是极其可观,Intel几乎任何产品都可以享受非常高的利润,想卖多少钱就可以卖多少钱。
  • 另外一种是无工厂模式(Fabless)。这类企业只是自己设计芯片,制造则交由专门生产芯片和半导体的晶圆厂生产,比如台积电、联电、GlobalFoundries、三星电子。这时手机处理器芯片的质素,就是靠晶圆厂的工艺,或称制程 (Wafer Fabrication) 所决定。
    • NVIDIA就是这样,AMD实在耗不过Intel就也变成了这样。
    • 好处很明显,负担很轻,自己只管设计就行了,不用耗费巨资去兴建晶圆厂、开发新工艺。
    • 坏处同样很突出:你设计出来了,能否造出来、即便造出来又是个什么样子你就无法做主了,得看代工伙伴的能耐。这方面的教训当然很多:
      • 台积电40/28nm两代工艺最初都很不成熟,产能也是迟迟上不来,让整个行业为之拖累;
      • GlobalFoundries 32nm工艺没有达到AMD的预期水平,第一代FX/APU处理器的频率和电压就跟设计得差很多,28nm工艺吹了那么久直到现在才刚刚上路,迫使AMD一度放弃了整整一代的低功耗APU,不得不重新设计再去找台积电。

3.2 三星、华为、苹果、高通的Soc现状

以Soc中的CPU、GPU、基带芯片这几个核心器件为例:

  • CPU:
    • 华为、三星、高通都获得了ARM架构级授权,在公版上改动(三星狂烧千亿后放弃自研)
    • 苹果使用的是ARM指令集架构,但微架构是自研。
    • 即:Arm的Cortex系列CPU一家独大,其他的例如MIPS、RISC-V、x86架构都难以与其抗衡。
    • 补充:桌面级CPU市场,Intel和AMD两家的天下
  • GPU:
    • 华为采用的ARM mali系列GPU
    • 苹果采用Imagination Technologies的GPU技术,但在2017年苹果宣布将在两年内弃用Imagination的一切技术,包括专利、知产、保密信息等,实现全面自研
    • 高通自研的Adreno GPU(高通的Adreno GPU源自ATI的imageon,AMD收购ATI后,将移动设备资产出售给了高通)
    • 三星手机中的GPU也是跟ARM合作的产物,19年6月,三星与AMD达成合作协议,三星将可采用AMD最新的RDNA架构GPU自行设计手机GPU核心
    • 来自unity的数据显示,截止至2016年7月,移动GPU市场(包括安卓,iOS,WP设备)市场排名为:Arm(35.9%)、高通(32.4%),苹果(16.0%),Imagination(11.2%),Vivante(1.9%),Broadcom(1.1%)、NVIDIA(0.7%)、Intel(0.4%)。
    • 补充:桌面级的GPU,特别是独立显卡市场,则是被Nvidia和AMD两家垄断。数据显示,Nvidia占据了66.3%的独立显卡市场,AMD的份额则为33.7%。虽然英特尔正准备推出自研的独立显卡,但是想要与Nvidia和AMD竞争却并不容易。
  • 基带芯片
    • 华为、三星、高通自研
    • 此前苹果由于不愿向高通交纳高额专利费,因此弃用高通芯片,转而同Intel合作。但英特尔无法按时为其提供5G基带服务,只能与高通和解。在苹果和高通达成和解协议的几个小时后,英特尔就宣布退出5G基带业务。随后苹果斥资10亿收购了英特尔基带芯片业务,预计苹果自研的手机基带芯片的研发进程将会进一步加速。

总结:随着以智能手机为代表的移动市场竞争的进一步升级,为了提升自身手机产品的竞争力,三星、苹果、华为等头部的智能手机厂商继打造自己的手机SoC之后,纷纷加码投入自研CPU、GPU、NPU及基带芯片等核心器件当中。

尤其是华为,自“中兴事件”、美国制裁华为之后,华为便开始进一步加大了对于自研核心芯片的投入。有传闻称,除了自研的手机SoC/基带/NPU,自研CPU/GPU也在进行中

四、ARM(CPU/GPU IP授权)

与移动端关系密切的ARM指令集。

ARM起初也是卖芯片的,不过业绩平平,在这个情况下,ARM 决定改变他们的产品策略——他们不再生产芯片,转而以授权的方式,将芯片设计方案转让给其他公司,即“Partnership”开放模式。

ARM 所采取的是 IP(Intellectual Property,知识产权)授权 的商业模式,收取一次性技术授权费用和版税提成。对于半导体公司来说,一次性技术授权费用在 100 万 -1000 万美元之间,版税提成比例一般在 1%-2%之间。

4.1 ARM的几种授权方式

具体来说,ARM有三种授权方式: 使用层级授权、内核层级授权和架构层级授权。 这三个层级的权限(及价格)是依次上升的。

4.1.1 使用层级授权

是最基本也是最低的授权等级。这就意味着你只能拿别人提供的定义好的 IP 来嵌入在你的设计中,不能更改人家的 IP ,也不能借助人家的 IP 创造自己的基于该 IP 的封装产品。

拥有使用授权的用户只能购买已经封装好的 ARM处理器核心,而如果想要实现更多功能和特性,则只能通过增加封装之外的DSP核心的形式来实现(当然,也可以通过对芯片的再封装方法来实现)。由于担心对知识产权保护不力,ARM对很多中国背景的企业均采取这一级别的授权 。

4.1.2 内核层级授权

内核层级授权,也就是常说的IP核授权

指可以以一个内核为基础然后在加上自己的外设,不能改变原有设计,但可以根据自己的需要调整产品的频率、功耗等。比如USART GPIO SPI ADC等等,最后形成了自己的MCU ,比如三星、德州仪器 (TI)、博通、飞思卡尔、富士通以及Calxeda等,这些公司并没有权限去对内核进行改造。

IP核,全称知识产权核(英语:intellectual property core),是在集成电路的可重用设计方法学中,指某一方提供的、形式为逻辑单元、芯片设计的可重用模组。IP核通常已经通过了设计验证,设计人员以IP核为基础进行设计,可以缩短设计所需的周期。

IP核可以通过协议由一方提供给另一方,或由一方独自占有。IP核的概念源于产品设计的专利证书和源代码的版权等。设计人员能够以IP核为基础进行专用集成电路或现场可编程逻辑门阵列的逻辑设计,以减少设计周期。

IP核分为软核、硬核和固核:

  • 软核:通常是与工艺无关、具有寄存器传输级 硬件描述语言描述的设计代码,可以进行后续设计;不包含任何物理实现信息(软核特点是对用户来讲可移植性强、设计周期短、成本低。缺点是物理实现性能不定不全面,产权保护不佳)。
  • 固核:则通常介于软核、硬核之间,它已经通过功能验证、时序分析等过程,设计人员可以以 逻辑门级网表的形式获取。
  • 硬核:是软核通过逻辑综合、布局、布线之后的一系列表征文件,具有特定的工艺形式、物理实现方式;

4.1.3 架构/指令集层级授权

是 ARM会授权合作厂商使用自己的架构,且可以对ARM架构进行大幅度改造,甚至可以对ARM指令集进行扩展或缩减,方便其根据自己的需要来设计处理器。例如高通的Krait架构和苹果的Swift架构,就是在取得ARM的授权后根据自己的需求设计完成的。拥有架构级授权的高通和苹果所制造的ARM处理器也总是拥有更低的功耗和更高的性能

注意,某一版本的架构层级授权,通常是永久性的。

比如,假如ARM为了遵循美国禁令,中断了与华为的相关业务,短期内华为不受受到影响,因为华为有ARMv8架构的永久授权,而目前主流处理器的CPU核心基本上基于ARMv8指令集。华为可以直接根据ARMv8的指令集进行大幅度的改造,甚至扩展ARM指令集,实现某些特殊的功能。

华为完全可以自己与ARMv8指令集自行设计处理器而不受授权限制,并且具有完整的知识产权,不受美国禁令的影响。高通骁龙处理器、苹果A系列处理器都是基于ARM指令集授权进行的自主设计。

做个很形象的比喻:

  • 假设我写了一篇文章,我只授权了你转发,不能更改,不能添油加醋,便是使用层级授权;
  • 我授权你可以在文章中引用我的文章,便是内核级授权;
  • 我授权你可以拿去修改、重组我的文章,形成一篇新的论文,便是架构层级授权。

4.1.4 间接授权

需要说明的是,上述三种级别的授权均不允许被授权者再次出售ARM架构授权。而对于半导体工厂而言,ARM通常会对其进行特殊授权。这使得台积电、三星半导体等拥有半导体代工业务的企业不仅能够直接向用户出货拥有ARM内核的芯片,更在一定情况下拥有重置ARM内核的实力和权力。

这也就让很多根本无法取得ARM授权的企业能够间接的使用或拥有ARM核心;当然,这种方法所带来的成本通常也比要直接从ARM手中买授权的价格高出数倍。简单的说,芯片代工厂在某种程度上扮演了ARM授权代理商的角色,其存在可以满足某些用户小批量生产以及早期论证和试验的需要。

4.1.5 其他

如果划分得更细一点,ARM的授权模式还包括了:

  • 学术授权,是免费面向高校和科研机构的;
  • Design Start,是为了方便半导体企业低成本、低风险、快速了解ARM IP的一种授权模式;
    这两种模式下设计出来的芯片不能销售,只能用于内部研究。
  • 多用途授权和终身多用途授权,以时间为授权效力划分,相对来说比较适合大型企业。
  • 单用途授权:以用途划分授权效力范围,这种授权模式之下,需要交一笔前期授权费,此后按照每颗芯片收取约 2%的版税。这种授权相对来说比较适合创业公司,或者目标明确的特定设计项目。

4.2 ARM的规模

正是ARM的这种授权模式,极大地降低了自身的研发成本和研发风险。它以风险共担、利益共享的模式,形成了一个以ARM为核心的生态圈,使得低成本创新成为可能。目前ARM在全球拥有大约1000个授权合作、超过300家合作伙伴,但是敢于购买架构授权的,也只有15家。高通Krait、苹果Swift、Marvell都是典型的用户。正是靠着如此众多授权伙伴的支持,ARM处理器才获得了25亿颗的季度出货量,历史总量已经达到500亿颗,可以绕地球12周。

2011年,ARM的客户报告79亿ARM处理器(一般来说,只要是使用ARM指令集架构的处理器,我们都会称之为 ARM 处理器)出货量,占有95%的智能手机、90%的硬盘驱动器、40%的数字电视和机上盒、15%的微控制器、和20%的移动电脑。

简言之:ARM 已经垄断了移动芯片市场。

有人觉得,ARM的成功得益于自身的开放,但实际上它仅仅是在商业模式上开放,在技术上的保守程度超乎大家的想象。ARM架构授权支持芯片厂商修改芯片,但同时必须遵守ARM设置的许多条件。

到现在,获得ARM32授权的公司一只手都能数的过来,ARM64授权虽然多一些,但授权费却异常昂贵。一家基于RISC-V架构的法国创业公司Greenwave表示,如果选择ARM架构,要花掉1500万美元的授权费。而且授权到期后,一切都是未知的,是否继续授权和授权费用都要重新谈判。

为什么像苹果高通这些有能力设计自主架构的公司不能自己设计指令集而非要买ARM的然后再在上面设计架构?
可能是做不出比arm性能更好的指令集了呗,或者性价比太低

五、参考链接

课外读物

Author:Tenloy

原文链接:https://tenloy.github.io/2021/04/08/ISA-Microarch-Soc.html

发表日期:2021.04.08 , 5:00 AM

更新日期:2024.04.07 , 8:02 PM

版权声明:本文采用Crative Commons 4.0 许可协议进行许可

CATALOG
  1. 一、指令集
    1. 1.1 常见的指令集
    2. 1.2 指令的组成
    3. 1.3 指令的长度
    4. 1.4 CPU指令集的形式:机器码、汇编指令
    5. 1.5 GPU有没有指令集?
  2. 二、微(处理器)架构概述
    1. 2.1 微架构的概念
    2. 2.2 指令集与微架构的关系
    3. 2.3 发展
  3. 三、手机芯片(Soc)
    1. 3.1 芯片的说明
    2. 3.2 三星、华为、苹果、高通的Soc现状
  4. 四、ARM(CPU/GPU IP授权)
    1. 4.1 ARM的几种授权方式
      1. 4.1.1 使用层级授权
      2. 4.1.2 内核层级授权
      3. 4.1.3 架构/指令集层级授权
      4. 4.1.4 间接授权
      5. 4.1.5 其他
    2. 4.2 ARM的规模
  5. 五、参考链接