Android开发者需要了解的芯片知识
Posted xiangzhihong8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开发者需要了解的芯片知识相关的知识,希望对你有一定的参考价值。
作为 android 开发者,在平时的开发中,免不了要处理 arm、armv7a、armv8a、x86 等架构适配,那什么是芯片架构,armv7a中的a指什么。今天,抱着以下问题,让我们撩开手机开发中芯片的一些理论知识。
一、CPU
接触过计算机的朋友们都知道CPU的含义,就是中央处理器,是负责计算机主要运算任务的组件。一般我们把CPU比喻为人的大脑。而了解略深的用户会听说CPU有x86、ARM等分类,前者主要用于PC等大型设备,而后者主要用于手机平板等小型设备。
那么这里的x86、ARM指的是什么呢?x86、ARM指的是芯片的设计架构,除此之外,还有一种MIPS也比较出名。
二、指令集
CPU执行计算任务时都需要遵从一定的规范,程序在被执行前都需要先翻译为CPU可以理解的语言。这种规范或语言就是指令集(ISA,Instruction Set Architecture)。程序被按照某种指令集的规范翻译为CPU可识别的底层代码的过程叫做编译(compile)。x86、ARM v8、MIPS都是指令集的代号。指令集可以被扩展,如x86增加64位支持就有了x86-64。厂商开发兼容某种指令集的CPU需要指令集专利持有者授权,典型例子如Intel授权AMD,使后者可以开发兼容x86指令集的CPU。
和人来的语言类似,语言可以有很多个,但是主流的却只有那么几个。下面,我们介绍一下ARM、x86、MIPS、PowerPC、RISC-V等主流的几个指令集。
2.1 ARM
ARM是高级精简指令集的简称(Advanced RISC Machine),它是一个32位的精简指令集架构。由于节能的特点,ARM处理器非常适用于行动通讯领域,符合其主要设计目标为低耗电的特性。
ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的派生产品,重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列。
ARM处理器的特点是:
- 体积小、低功耗、低成本、高性能——ARM被广泛应用在嵌入式系统中的最重要的原因
- 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件
- 大量使用寄存器,指令执行速度更快
- 大多数数据操作都在寄存器中完成
- 寻址方式灵活简单,执行效率高
- 指令长度固定
- Load_store结构:在RISC中,所有的计算都要求在寄存器中完成。而寄存器和内存的通信则- - 由单独的指令来完成,而在CSIC中,CPU是可以直接对内存进行操作的。
- 流水线处理方式
目前,ARM 公司本身并不靠自有的设计来制造或出售 CPU ,而是将处理器架构授权给有兴趣的厂家,比如TI (德州仪器)、Samsung(三星)、Freescale(飞思卡尔)、Marvell(马维尔)、Nvidia(英伟达)。ARM 提供了多样的授权条款,包括售价与散播性等项目。对于授权方来说,ARM 提供了 ARM 内核的整合硬件叙述,包含完整的软件开发工具(编译器、debugger、SDK),以及针对内含 ARM CPU 硅芯片的销售权。对于无晶圆厂的授权方来说,其希望能将 ARM 内核整合到他们自行研发的芯片设计中,通常就仅针对取得一份生产就绪的智财核心技术(IP Core)认证。对这些客户来说,ARM 会释出所选的 ARM 核心的闸极电路图,连同抽象模拟模型和测试程式,以协助设计整合和验证。需求更多的客户,包括整合元件制造商(IDM)和晶圆厂家,就选择可合成的RTL(暂存器转移层级,如 Verilog)形式来取得处理器的智财权(IP)。
借着可整合的 RTL,客户就有能力能进行架构上的最佳化与加强。这个方式能让设计者完成额外的设计目标(如高震荡频率、低能量耗损、指令集延伸等)而不会受限于无法更动的电路图。虽然 ARM 并不授予授权方再次出售 ARM 架构本身,但授权方可以任意地出售制品(如芯片元件、评估板、完整系统等)。商用晶圆厂是特殊例子,因为他们不仅授予能出售包含 ARM 内核的硅晶成品,对其它客户来讲,他们通常也保留重制 ARM 内核的权利。
2.2 x86/Atom
x86或80x86是英代尔Intel首先开发制造的一种微处理器体系结构的泛称。x86架构是重要地可变指令长度的CISC(复杂指令集电脑,Complex Instruction Set Computer)。
Intel Atom(中文:凌动,开发代号:Silverthorne)是Intel的一个超低电压处理器系列。处理器采用45纳米工艺制造,集成4700万个晶体管。L2缓存为512KB,支持SSE3指令集,和VT虚拟化技术(部份型号)。
Atom处理器系列有6个型号,全部都是属于Z500系列。它们分别是Z500、Z510、Z520、Z530、Z540和Z550。最低端的Z500内核频率是800MHz,FSB则是400MHz。而最高速的Z550,内核频率则有2.0GHz,FSB则是533MHz。从Z520开始,所有的处理器都支持超线程技术,但只增加了不到10%的耗电。双内核版本为N系列,依然采用945GC芯片组。双内核版本仍会支持超线程技术,所以系统会显示出有4个逻辑处理器。这个版本的两个内核并非采用本地设计,只是简单的将两个单内核封装起来。
2.3 MIPS
MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。
MIPS技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。和英特尔采用的复杂指令系统计算结构(CISC)相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。MIPS自己只进行CPU的设计,之后把设计方案授权给客户,使得客户能够制造出高性能的CPU。
2.4 RISC-V
RISC-V是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。V表示为第五代RISC.与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。RISC-V被认为是继x86、ARM之后的第三大CPU架构。
RISC-V包括三大优势:
- 模块化:RISC-V将不同的部分以模块化的方式组织在一起,这种模块化是x86与ARM架构所不具备的。
- 指令数目少:受益于短小精悍的架构以及模块化的特性,RISC-V架构的指令数目非常的简洁。
- RISC-V全面开源,且具有全套开源免费的编译器、开发工具和软件开发环境,大大降低指令集修改的门槛。
RISC-V作为新兴架构,以其精简的体量,未来的IoT(物联网)领域中能取得绝对的优势。IoT的“碎片化”需求,IoT芯片设计速度要快、成本要低、能量身定制。同时嵌入式市场具备少量多样的特点,在各细分应用场景并未形成真正壁垒,架构的选择五花八门。以上原因成就了RISC-V绝佳的突破口。RISC-V的开源能降低成本,也能让用户自由修改,可定制化,RISC-V生态与敏捷设计同源。
目前,国内外已有多家芯片企业投入大量资金研发RISC-V在IoT领域的应用。2015年,RISC-V基金会正式成立,吸引了包括英伟达、NXP、三星、Microsemi在内等企业的加入。迄今为止,该基金会已吸引了全球28个国家327多家会员加入。目前,阿里、亚马逊等都有相关芯片研制出,甚至就连苹果A4/A5、AMD速龙/Zen架构之父JimKeller也创业投身RISC-V。
三、架构
我们经常说的单核、双核、四核,以及主频等概念,说的都是CPU的一些属性。我们知道,CPU的基本组成单元即为核心(core)。多个核心可以同时执行多件计算任务,前提是这些任务没有先后顺序。
核心的实现方式被称为微架构(microarchitecture)。微架构的设计影响核心可以达到的最高频率、核心在一定频率下能执行的运算量、一定工艺水平下核心的能耗水平等等。此外,不同微架构执行各类程序的偏向也不同。例如,90年代末期Intel的P6微架构就在浮点类程序上表现优异,但在整数类应用中不如同频下的对手。
常见的代号如Haswell、Cortex-A15等都是微架构的称号。注意微架构与指令集是两个概念:指令集是CPU选择的语言,而微架构是具体的实现。i7-4770的核心是Haswell微架构,这种微架构兼容x86指令集。
对于兼容ARM指令集的芯片来说这两个概念尤其容易混淆:ARM公司将自己研发的指令集叫做ARM指令集,同时它还研发具体的微架构如Cortex系列并对外授权。但是,一款CPU使用了ARM指令集不等于它就使用了ARM研发的微架构。Intel、高通、苹果、Nvidia等厂商都自行开发了兼容ARM指令集的微架构,同时还有许多厂商使用ARM开发的微架构来制造CPU。通常,业界认为只有具备独立的微架构研发能力的企业才算具备了CPU研发能力,而是否使用自行研发的指令集无关紧要。微架构的研发也是IT产业技术含量最高的领域之一。
3.1 ARM架构
ARM CPU家族主要包括如下系列,其中需要记住的有三个,分别是Cortex-A系列、Cortex-R系列和Cortex-M系列。
-
Cortex-A系列:主要是面向应用的处理器。Cortex-A系列含有整数运算的指令集架构和浮点数运算的指令集架构,并且支持单指令多数据流高性能计算指令,Cortex-A系列是ARM家族中最丰富的指令集。Cortex-A系列在手机端开发领域被广泛使用。ARMv7-A是指令集为32位的Cortex-A架构,ARMv8-A是对ARMv7-A的扩充,现在使用ARM架构的手机大多使用的是64位的ARMv8-A架构,如Cortex-A57、Cortex-A53以及新发布的Cortex-A76架构。同时,ARM公司也在不断地扩展ARMv8-A指令架构,先后发布了ARMv8.1、ARMv8.2、ARMv8.4和ARMv8.5。Android手机场景多应用了Cortex-A系列,我们Android开发里面的armv7a的a就是代表了Cortex的a系列。
-
Cortex-R系列:是ARM家族中体积最小的处理器。Cortex-R系列处理器主要用于对实时性要求较高的硬件平台,比如硬盘、各类控制器等。Cortex-R系列处理器支持ARM、Thumb和Thumb-2指令集。
-
Cortex-M系列:主要是针对超低功耗和核心最小面积进行设计的,所以目前Cortex-M系列的实时操作系统RTOS仅支持32位Thumb的指令集。ARM Cortex-M系列使用Thumb-2指令集,这样可以减少一定的指令代码量,从而减少内存需求,进而就可以更加高效地利用缓存。并且,Thumb-2指令集兼容16位的Thumb指令。
-
早期处理器SecurCore系列:它们是提供安全解决方案的架构。SecurCore架构是一个针对安全的解决方案,早期处理器SecurCore被用在少量单片机中。
3.2 主流CPU供应商及应用手机
在手机端我们重点关注高通、苹果、联发科、华为、三星几家公司设计的芯片,因为它们设计的ARM芯片架构已经可以覆盖主流机型。
高通
高通主要的骁龙系列,目前8XX系列属于高端的骁龙系列,6XX系列定位于中端市场。不过高中端市场也会有交叉,并不是绝对的。骁龙芯片被大量流行手机搭载,包括vivo、OPPO、小米等品牌手机。
骁龙 888基于三星5nm 工艺制成 , CPU 采用 1 x 2.84GHz (ARM最新 Cortex X1 核心)+3 x 2.4GHz (Cortex A78)+4 x 1.8GHz (Cortex A55),GPU 为 Adreno 660,采用 X60 5G modem 基带,支持 WiFi 6E、Bluetooth 5.2。下面是骁龙888的架构图。
市面上我们看到的小米11 Pro,魅族18 Pro/魅族18等就是用了骁龙888, 而魅族17 Pro使用的是骁龙865。
联发科(MTK)
中国的芯片研发公司,以中低端芯片为主。联发科的芯片设计业务已经深度布局家庭娱乐、手机平板和IoT、便携式电子产品等多个领域。我们熟知的索尼,TCL、海尔等电视都有使用联发科芯片;同时它的芯片方案被亚马逊、Google、阿里等国内外一线品牌采用,这三家在智能音箱业务上占据了全球销量前三的位置,市场占有率高达70%以上,天猫精灵搭载的就是联发科的芯片。
三星
旗下业务众多,芯片只是其中一项,手机也是其重要业务之一,从零部件如芯片、屏幕、存储、电池等,到手机整机都可以制作。Exynos8895是三星发布的一款偏高端的芯片,它的中端芯片有Exynos7870等。三星芯片在中国移动互联网市场的占比较少。国内市场三星手机大部分并不是使用的三星芯片,而是高通。
苹果
苹果手机中的芯片也都是ARM架构的,目前苹果公司已经有了很强的芯片设计能力。苹果A系列的CPU频率并不是很高。苹果的芯片是自产自销的,芯片架构会直接应用在自家的苹果手机上,所以更加注重性能的提升,而对芯片成本的考量相对少一些,使用了大的芯片面积来换取高性能和低功耗,这一点和大部分同行业公司有显著差别。在苹果A10处理器上,流水线技术使用了六发射,可以同时对六条流水线进行处理,同时A10片上缓存达到了2MB。通过A10可以看到,苹果公司的芯片架构成本比其他公司的更高,综合性能也非常好。从Geekbench跑分也可以看到苹果芯片的性能优势,A10的性能比ARM 73标准架构的性能高75%以上。
今年苹果新推出的M1 Pro与M1 Max,M1Pro款芯片内存带宽最高可以达到200 GB每秒,支持32 GB内存。材料是五纳米工艺具有337根晶体管,具有10个核心的中央处理器,处理速度与上一个芯片相比的话,速度更是提高了70%左右。
华为海思
1991年,华为成立了自己的ASIC设计中心,专门负责设计「专用集成电路」(Application-specific integrated circuit,ASIC)。当时的华为,创立仅仅四年,员工只有几十人,资金非常紧张,一度濒临倒闭的边缘。奠定基业的C&C08数字程控交换机,还是三年后的事情。
随后的1993年,ASIC设计中心成功研发出华为第一块数字ASIC。并在1996年、2000年、2003年,研发成功十万门级、百万门级、千万门级ASIC。总的来说,每一步都算是沉稳有力。时间到了2004年10月,这时的华为,实力已今非昔比,销售额达到462亿人民币,员工人数也达到数万人。有了一定底气的华为,在ASIC设计中心的基础上,成立了深圳市海思半导体有限公司,也就是我们现在经常说的——【华为海思】。
华为手机端的麒麟芯片是不对外销售的,所以截至2019年5月,市面上可体验到华为芯片性能的设备只有华为手机。华为的芯片设计能力的提升速度可谓有目共睹。从麒麟970开始,华为将高性能的专用神经网络芯片NPU带进了SoC。
四、芯片
4.1 什么是芯片
说到芯片,别人经常会问我们一个问题:麒麟芯片是国产吗?。
要回答这个问题,我们必须先搞清楚芯片半导体生产过程。半导体芯片生产主要分为 IC(Integrated Circuit 集成电路) 设计、 IC 制造、 IC 封测三大环节以及设计、晶圆制造、EDA工具、芯片原材料、封装、测试、设备七大板块,如下图。
- IC 设计主要根据芯片的设计目的进行逻辑设计和规则制定,并根据设计图制作掩模以供后续光刻步骤使用。
- IC 制造实现芯片电路图从掩模上转移至硅片上,并实现预定的芯片功能,包括光刻、刻蚀、离子注入、薄膜沉积、化学机械研磨等步骤。
- IC 封测完成对芯片的封装和性能、功能测试,是产品交付前的最后工序。
芯片制作是一个复杂过程,如果单从真个链路上讲,麒麟只是其中的一环,芯片自然谈不上纯国产,如果从某一个环节的来讲,自己设计是有自己东西的。
麒麟主要是基于ARM的RISC架构进行SOC的开发,所谓SOC就如联想设计电脑,就是把一些功能芯片整合在一起,包括CPU、GPU、闪存、基带等等。而要将这些核芯整合在一起,本身就需要非常强大的设计能力。
如上图所示的华为麒麟960来说,黄色部分是华为不能设计的核芯。对于麒麟985华为已经能自研GPU了。在SOC大构架下,这种设计能力,很多公司能在短时间内得以提升,真正考验芯片设计能力的是核芯层次的微架构设计。在芯片设计方面,华为和龙芯算是国内的佼佼者。
4.2 芯片的制作
1, 芯片设计
芯片行业的设计领域,指的是规格制定、架构设计到tape-out的所有流程。芯片在晶圆厂生产之前的所有流程都属于设计领域。
-
仅从事芯片设计,没有其他生产、封装、测试业务的公司称之为fabless或者design house(国内的华为海思、紫光展锐、中兴微电子、比特大陆、寒武纪、汇顶科技、全志,美国的高通、博通等)。
-
既有芯片业务,又有芯片晶圆制造业务的公司,称为IDM(Integrated Device Manufacture),国内的士兰微,美国的英特尔,韩国的三星、海力士,意大利的意法半导体等。
2,晶圆制造
在芯片行业,把仅从事晶圆制造的企业称之为Foundry(专门负责生产、制造芯片的厂家)。把单晶硅圆柱切片,就得到了圆形的硅片,因此就叫“晶圆”。
晶圆加工的大概流程如下:
- 首先在晶圆上涂一层感光材料,这材料见光就融化,这里就用到了我们常听到的光刻机,它可以用非常精细的光线,在感光材料上刻出图案,让底下的晶圆裸露出来。
- 然后,用等离子体这类东西冲刷,裸露的晶圆就会被刻出很多沟槽,这套设备就叫刻蚀机。
- 再用离子注入机在沟槽里掺入磷元素,加热退火处理,就得到了一堆N型半导体;用离子注入机撒上硼,就有了P型半导体。
上图晶圆上的小方块就是芯片,一块晶圆可以做多个芯片。芯片放大了看就是成堆成堆的电路。
3. EDA工具
EDA是Electronic design automation(电子设计自动化)的英文简称。EDA工具是指利用计算机辅助设计软件,来完成超大规模集成电路芯片的功能设计、综合、验证、物理设计等流程的设计方式。在芯片行业,把提供EDA工具的企业称之为EDA设计服务供应商。
目前EDA工具厂商的三巨头——cadence、synopsys、mentor公司垄断了绝大多数市场份额,其他EDA厂商很多都是在三巨头的阴影之下,夹缝之中求生存。
4. 芯片原材料
芯片生产需要大量的原材料,比如硅晶圆、光刻胶光刻胶等,其中需求量最大的当属硅晶圆,硅晶圆在芯片制造材料中占比最高,达到37%。而硅晶圆的主要原材料是硅,硅的主要评判指标是纯度,如果硅原子之间有一堆杂质,那电子就很难在满轨道和空轨道之间跑顺畅。而纯度越高制造难度越大。用于太阳能发电的高纯硅要求99.9999%,这玩意儿全世界超过一半是中国产的,早被玩成了白菜价。芯片用的电子级高纯硅要求99.999999999%(别数了,11个9),几乎全赖进口,直到2018年江苏的鑫华公司才实现量产。
5. 封装
芯片封装,简单点来讲就是把Foundry生产出来的集成电路裸片放到一块起承载作用的基板上,再把管脚引出来,然后固定包装成为一个整体。
6. 测试
测试的话包括CP测试、FT测试等等,包括了芯片的功能测试、可靠性测试、老化测试等等。芯片行业技术难度最低的就是封装和测试,这部分国内和国外已经没有太大差距。
7. 设备
芯片行业的设备主要有晶圆制造过程中需要使用的光刻机、蚀刻机,测试过程中需要使用的ATE测试基台。阿斯麦是全球唯一的高端光刻机生产商,每台售价至少1亿美金,而且产量还不高,无论是台积电、三星,还是英特尔,谁先买到阿斯麦的光刻机,谁就能率先具备7nm工艺。
中国的刻蚀机比光刻机要好很多,16nm刻蚀机已经量产运行,7-10nm刻蚀机也在路上了,所以美国在刻蚀机上没有做太多限制。离子注入机又比较差了,70%的市场份额是美国应用材料公司的,2017年8月终于有了第一台国产商用机,水平不做评价。
涂感光材料得用“涂胶显影机”,日本东京电子公司拿走了90%的市场份额。即便是光刻胶这些辅助材料,也几乎被日本信越、美国陶氏等垄断。
以上是关于Android开发者需要了解的芯片知识的主要内容,如果未能解决你的问题,请参考以下文章
芯片-模组-开发板-软件开发包SDK(Software Development Kit)的关系(软件开发人员必须了解的硬件知识!@)