草庐IT

ARM简介及其发展历史

徐晓康的博客 2024-01-28 原文

前言

ARM名声很大,最近在学习STM32,也借机梳理一下关于ARM的各种概念和信息。

本文主要内容:ARM一词的含义,ARM的发展历史,ARM cortex系列处理器简介与ARM在不同市场的应用情况。


一. ARM一词的4种含义

1.1 ARM公司

ARM第一种意思是指ARM公司。

ARM公司成立于1990年,是一家英国半导体设计公司,总部位于剑桥。ARM公司的全称是Advanced RISC Machines Ltd,中文翻译为安谋公司。ARM公司的主要业务是设计和授权处理器核心IP(Intellectual Property,知识产权)。

1.2 ARM指令集架构

ARM的第二种意思是指ARM指令集架构。

ARM,Advanced RISC Machines,直译为先进的精简指令集架构处理器,其中RISC是Reduced Instruction Set Computer的缩写,意为精简指令集处理器架构,ARM是RISC最突出的代表,其它比较有名的RISC指令集还有:MIPS,PowerPC,SPARC,RISC-V。

与RISC相对的是CISC,Complex Instruction Set Computing,复杂指令集处理器架构,闻名世界的X86指令集就是一种CISC指令集。

其实指令集和架构是两种不同的概念。

指令集(Instruction Set)是计算机硬件与软件之间的接口规范,是一种约定的机器语言,定义了计算机可以执行的操作,包括运算、存储、传输等。指令集是计算机硬件设计的基础,也是软件开发的基础。

架构(Architecture)是计算机系统的总体设计,包括计算机硬件的组成、互连方式、指令集、操作系统、编译器等。计算机架构决定了计算机系统的性能、可靠性、扩展性和兼容性等方面。

从功能上来看,指令集定义了计算机可以执行的操作,而架构则决定了计算机如何执行这些操作。指令集规定了一系列指令的编码格式和执行方式,架构则决定了计算机硬件的结构和组成方式,包括中央处理器(CPU)、内存、输入输出设备等。指令集是一种抽象的概念,而架构则更加具体。

另外,指令集和架构还有一些联系。指令集是计算机架构设计的重要组成部分,它会影响到架构的性能、可编程性、复杂度等方面。指令集与架构的协同设计可以提高计算机系统的性能和可靠性,并且可以降低计算机系统的设计成本。此外,指令集和架构也可以相互影响,当计算机架构设计变化时,需要相应地更新指令集;而当新的指令集出现时,也会对计算机架构设计产生影响。

对于ARM的指令集和架构来说,两者是绑定在一起的,所以我们通常不分开说这两者,而统一说成ARM指令集架构。

1.3 ARM内核

ARM的第三种意思是指ARM内核,或者说ARM处理器

内核是相对于完整的芯片来说的,ARM将核心处理器部分设计完成,然后授权给其它芯片设计厂商,其它厂家可根据授权方式进行更改或直接使用,然后发布自己的芯片,这些芯片就是基于ARM内核的。

ARM内核有多种类型,比如,ARM6,ARM7,…,ARM11,cortex-M,cortex-R,cortex-A等。

1.4 ARM芯片

ARM的第四种意思是指ARM芯片。

上面说到了ARM公司的商业模式是授权ARM指令集架构或者ARM内核IP,这些拿到授权的公司基于ARM架构或内核最终设计出的芯片,被称为ARM芯片。

ARM芯片其实就是采用了ARM指令集架构或者ARM内核的芯片

在微控制器领域,ARM芯片已成为市场的主流,市占比大概在70%,以下列出最有名的几个:

  1. STM32系列:STMicroelectronics即意法半导体公司的32位ARM Cortex-M系列微控制器,常用的有STM32F103,STM32F407等。
  2. LPC系列:NXP Semiconductors即恩智浦的32位ARM Cortex-M系列微控制器,常用的有LPC1788,LPC1754等。
  3. SAM系列:Microchip Technology公司的32位ARM Cortex-M系列微控制器。
  4. Kinetis系列:NXP Semiconductors公司的32位ARM Cortex-M系列微控制器。
  5. EFM32系列:Silicon Labs公司的32位ARM Cortex-M系列微控制器。

在手机和电脑处理器领域,ARM芯片也在逐年增加,以下列出最有名的几个:

  1. Qualcomm Snapdragon系列芯片:高通骁龙系列芯片,由美国高通公司发布,广泛应用于智能手机和平板电脑等领域。
  2. Apple A系列芯片:由美国苹果公司发布,广泛应用于iPhone、iPad等产品中。
  3. Samsung Exynos系列芯片:由韩国三星电子公司发布,广泛应用于三星手机等产品中。
  4. MediaTek Helio系列芯片:由台湾联发科技公司发布,广泛应用于智能手机等领域。
  5. HiSilicon Kirin系列芯片:华为麒麟系列芯片,由中国华为公司发布,广泛应用于华为手机等产品中。

二. ARM公司发展史

以下总结了ARM公司及其前身从建立到慢慢发展壮大的历史。

  • 1978年,ARM的前身CPU公司(Cambridge Processing Unit,剑桥处理器单元)在英国剑桥成立,主要业务为电脑制造。
  • 1979年,CPU公司改名为Acorn Computer Ltd,艾康电脑公司,以下简称Acorn。
  • 1981年,Acorn推出了BBC Micro计算机,大获成功,这是欧洲第一台畅销的个人计算机。
  • 1983年,为解决市场上缺乏高性能、低成本芯片的问题,Acorn开始自己设计处理器芯片。
  • 1985年,Acorn的首席工程师Sophie Wilson带领团队研发出采用精简指令集的新处理器,名为Acorn RISC Machine,又称为ARM1,此芯片由Acorn设计,由英国的VLSI Technology公司制造。同一年,Inter推出了80386处理器,性能全面碾压ARM1,这也使得后续ARM处理器的研发开始朝着低成本,低功耗的路线,以避免与Inter的正面碰撞。
  • 1986年,Acorn成立了Advanced RISC Machines Ltd.(ARM)子公司,该公司致力于开发和推广ARM架构处理器。同年,Acorn 推出了ARM2处理器(Acorn设计,VLSI制造),并于次年应用到Acorn推出个人电脑产品Acorn Archimedes中,此PC在英国市场大获成功。
  • 1989年,Acorn推出了ARM3处理器(Acorn设计,VLSI制造)并应用到了Acorn Archimedes计算机的后续产品,如A3000、A3010、A3020和A4000,以及一些嵌入式系统和移动设备中。
  • 1990年,Acorn为了ARM更好地发展同时减少公司的财务压力,Acorn将子公司ARM独立出来,并接受了苹果和VLSI的投资,ARM正式成为一家独立的合资公司。同年,ARM决定改变他们的产品策略——他们不再生产芯片,转而以授权IP的方式,将芯片设计方案卖给其他公司,收取一次性技术授权费和版税提成。这是一种全新的商业模式,极大地降低了ARM自身的研发成本和研发风险。
  • 1991年,ARM授权了ARM2和ARM3内核IP给英国的GEC Plessey半导体公司,用于开发微控制器。
  • 1992年,ARM发布了ARM6内核,它是ARM2和ARM3的改进版。不知为何ARM4和ARM5直接被跳过了,并没有此代号的产品发布。
  • 1993年,ARM将ARM6内核授权给Cirrus Logic和德州仪器(Texas Instruments,TI)。同年,苹果公司推出了一款新型掌上电脑产品——Newton,ARM公司开发的ARM6芯片被用于该产品之中。
  • 1997年,诺基亚6110手机发布,风靡全球,其中就使用了基于ARM7TDMI内核的处理器芯片。
  • 1998年,业务飞速发展的ARM,同时在伦敦证交所和纳斯达克上市。
  • 2004年,ARM发布cortex-M3内核,放弃了之前ARM6,ARM7这种命名方式,后续ARM将内核分类为cortex-A,cortex-R,cortex-M,分别适用于高性能,高可靠性和微控制器场合。
  • 2007年,第一款iPhone发布,搭建的是Samsung生产的S5L8900,此芯片是基于ARM11内核设计的。此后苹果公司不管是买的处理器还是自研处理器,不管是手机还是iPad均使用了ARM指令集架构或者ARM内核,ARM则借此彻底搭上了全球移动应用发展的顺风车。
  • 2008年,谷歌推出了Android操作系统,它是一种基于Linux内核的开源移动操作系统,也是基于ARM指令集架构设计的。ARM进一步巩固了移动市场的领导地位。
  • 2010年,苹果公司向ARM董事会表示有意以85亿美元的价格收购ARM公司,但遭到ARM董事会的拒绝。
  • 2011年,微软宣布Windows 8操作系统将支持ARM架构,这标志着传统的Wintel联盟(Windows + Intel)开始重视ARM架构的发展和应用。
  • 2012年,微软推出了运行Windows RT操作系统的Surface RT平板电脑,它搭载了一款基于ARM架构的NVIDIA Tegra 3处理器,虽然这款电脑并未获得成功,但也预示着ARM架构已经开始在PC市场上崭露头角。
  • 2016年,曾经投资阿里巴巴的孙正义和他的日本软银集团,以243亿英镑(约309亿美元)收购了ARM集团,ARM退市。软银集团表示,收购后将继续支持ARM的独立经营。截至收购时,ARM已经拥有近500家客户和超过80亿颗芯片的出货量。
  • 2020年,NVIDIA宣布出价400亿美元从日本软银集团手中收购ARM,但此项收购遭到监管机构和大型企业(例:高通、微软、Google等)的一致反对。2022,收购案正式宣告失败。

本章参考

  1. Arm (企业) - 维基百科,自由的百科全书 (wikipedia.org)
  2. 艾康电脑 - 维基百科,自由的百科全书 (wikipedia.org)
  3. ARM到底是一家什么样的公司?_Acorn (sohu.com)
  4. ARM架构的崛起,智能手机SoC发展史_Acorn_公司_处理器 (sohu.com)
  5. List of ARM processors - Wikipedia
  6. ChatGPT的回答

三. ARM指令集架构与ARM内核发展史

ARM指令集架构发展史

  • ARMv1:1985年发布,最早的ARM架构。
  • ARMv2:1986年发布,改进了ARMv1,增加了32位地址总线和指令集扩展(增加了一些指令)。
  • ARMv3:1992年发布,支持虚拟内存、增加了指令集扩展,包括支持协处理器(coprocessor)。
  • ARMv4:1994年发布,增加了Java虚拟机指令集扩展(Jazelle)和Thumb指令集,提高了代码密度。
  • ARMv5:1997年发布,增加了支持嵌入式Java的指令集扩展(Jazelle-RCT)、增加了支持浮点运算的指令集扩展(VFP)。
  • ARMv6:2002年发布,增加了Thumb-2指令集,提高了代码密度和执行效率,同时也增加了一些指令集扩展,包括支持Jazelle-DBX。
  • ARMv7:2004年发布,增加了基于TrustZone的安全扩展、NEON指令集扩展,支持向量浮点运算(VFPv3)等。
  • ARMv8:2011年发布,增加了AArch64架构,支持64位处理器,同时保留了AArch32架构,提高了性能和能耗效率。
  • ARMv9:2021年发布,增加了Confidential Compute Architecture(CCA)和Realms技术,提高了安全性和隔离性。

ARM内核的发展史

ARM内核非常多,这里直接使用维基百科中的ARM内核发布时间线汇总表。

关于ARM处理器与内核的对应关系,每个内核的性能特点,以及一些有名的其它公司基于ARM架构设计的芯片,本章参考的维基百科中均有详细的介绍。因篇幅限制,此处仅截图展示。

考虑到,维基百科访问不易,文末会将网页整理为PDF文件进行分享

本章参考

  1. ARM架构 - 维基百科,自由的百科全书 (wikipedia.org)
  2. List of ARM processors - Wikipedia

四. ARM cortex处理器简介

为更好地适应不同市场的差异化需求,2004年以后,ARM公司放弃了之前ARM+数字的命名方式(如ARM7,ARM8等),转而用cortex来命令处理器产品,并分为三大产品线,分别是Cortex-A、Cortex-R和Cortex-M。

近两年推出的cortex-X并不是单独的产品线,它可看做cortex-A的升级版,两者的市场定位是一样的。

Cortex-A系列处理器是针对高端应用而设计的,通常应用于智能手机、平板电脑、数字电视和网络设备等。这些处理器拥有高性能、大规模的内存管理单元以及大量的内部缓存,支持多核处理和虚拟化技术。目前最新的Cortex-A系列处理器是Cortex-X3和Cortex-A715。

Cortex-R系列处理器是针对实时应用而设计的,通常应用于汽车、工业控制和医疗设备等。这些处理器拥有极低的延迟、高精度的计时器和内部存储器保护机制,能够在实时响应和高可靠性方面表现出色。目前最新的Cortex-R系列处理器是Cortex-R82。

Cortex-M系列处理器是针对低功耗、低成本、嵌入式应用而设计的,通常应用于传感器、智能家居、工业控制和医疗设备等。这些处理器拥有低功耗、小尺寸和低成本等优点,同时也支持实时性、安全性和可靠性等特性。目前最新的Cortex-M系列处理器是Cortex-M85和Cortex-M55。


五. ARM在不同市场的应用情况

在过去的几十年时间里,ARM公司慢慢从一个十几人的小公司成长为一个全球闻名的芯片巨头。从最初的ARM1处理器到现在的三大cortex产品系列,ARM公司不断推出性能更强、功耗更低、功能更丰富的处理器产品,在多个不同领域都有着广泛应用:

  1. 嵌入式市场:ARM架构的处理器在嵌入式市场中应用广泛,其中包括智能穿戴设备、物联网、工控设备、汽车电子等领域,根据ARM官方数据,全球90%以上的嵌入式处理器采用ARM架构,市场占有率超过90%。
  2. 移动设备市场:ARM架构的处理器在移动设备市场中占据绝对优势,几乎所有的智能手机和平板电脑都采用了基于ARM架构的处理器。市场占有率超过90%。
  3. 服务器市场:ARM架构的处理器在服务器市场中也有应用,特别是在低功耗服务器领域。目前X86架构处理器在服务器领域仍然占据着绝对的市场份额,但随着ARM处理器的性能不断提升和应用场景的不断扩大,ARM在服务器市场中的份额有望进一步增长。
  4. 智能家居市场:ARM架构的处理器在智能家居市场中应用广泛,包括家庭自动化、安防监控等领域。市场占有率超过50%。

六. 分享

  1. ARM企业(维基百科)——PDF
  2. ARM架构与处理器(List of ARM processors)(维基百科)——PDF

欢迎大家关注我的公众号:徐晓康的博客,回复以下四位数字获取。

8963


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。

有关ARM简介及其发展历史的更多相关文章

  1. HBase Region 简介和建议数量&大小 - 2

    Region是HBase数据管理的基本单位,region有一点像关系型数据的分区。region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region。Region的结构hbaseregion的大小设置默认情况下,每个Table起初只有一个Region,随着数据的不断写入,Region会自动进行拆分。刚拆分时,两个子Region都位于当前的RegionServer,但处于负载均衡的考虑,HMaster有可能会将某个Region转移给其他的RegionServer。RegionSplit时机:当1个region中的某个Store下所有StoreFile

  2. IDEA 2023.1 正式发布,新特性简介 - 2

     昨晚看到IDEA官推宣布IntelliJIDEA2023.1正式发布了。简单看了一下,发现这次的新版本包含了许多改进,进一步优化了用户体验,提高了便捷性。至于是否升级最新版本完全是个人意愿,如果觉得新版本没有让自己感兴趣的改进,完全就不用升级,影响不大。软件的版本迭代非常正常,正确看待即可,不持续改进就会慢慢被淘汰!根据官方介绍:IntelliJIDEA2023.1针对新的用户界面进行了大量重构,这些改进都是基于收到的宝贵反馈而实现的。官方还实施了性能增强措施,使得Maven导入更快,并且在打开项目时IDE功能更早地可用。由于后台提交检查,新版本提供了简化的提交流程。IntelliJIDEA

  3. 【历史上的今天】4 月 26 日:验证码的发明者诞生;切尔诺贝利病毒爆发;诺基亚收购 Withings - 2

    整理|王启隆透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。今天是2023年4月26日,在2017年的今天,中国首艘国产001A型航空母舰在大连完成了下水,从开工到下水,历时3年多时间。回首过去,眺望未来,在科技历史上的每个4月26日里,还发生过哪些影响深远的关键事件呢?1938年4月26日:编程校验领域图灵奖得主ManuelBlum出生曼纽尔·布卢姆(ManuelBlum)出生于1938年4月26日,他是委内瑞拉的计算机科学家、卡内基梅隆大学的教授,因对计算复杂度理论做出的贡献,以及在密码学和编程校验上的应用而获1995年图灵奖。布卢姆出生于委内瑞拉的一个犹太家庭,他曾在麻省理工学

  4. 企业大数据发展面临问题之存算分离技术思考 - 2

    文章目录概述背景为何要存算分离优势**应用场景**存算分离产品技术流派华为JuiceFSHashDataXSKY概述背景Hadoop一出生就是奔存算一体设计,当时设计思想就是存储不动而计算(code也即是代码程序)动,负责调度Yarn会把计算任务尽量发到要处理数据所在的实例上,这也是与传统集中式存储最大的不同。为何当时Hadoop设计存算一体的耦合?要知道2006年服务器带宽只有100Mb/s~1Gb/s,但是HDD也即是磁盘吞吐量有50MB/s,这样带宽远远不够传输数据,网络瓶颈尤为明显,无奈之举只好把计算任务发到数据所在的位置。众观历史常言道天下分久必合合久必分,随着云计算技术的发展,数据

  5. 对于体育新闻中文文本关键字提取有哪些关键字提取算法及其步骤 - 2

    对于体育新闻中文文本的关键字提取,常用的算法包括TF-IDF、TextRank和LDA等。它们的基本步骤如下:1.TF-IDF算法: -将文本进行分词和词性标注处理。-统计每个词在文本中的词频(TF)。-计算每个词在整个语料库中出现的文档频率(DF)和逆文档频率(IDF)。-计算每个词的TF-IDF值,并按照值的大小进行排序,选择排名前几的词作为关键字。2.TextRank算法:-将文本进行分词和词性标注处理。-将分词结果转化成图模型,每个词语为节点,根据词语之间的共现关系建立边。-对图模型进行迭代计算,计算每个节点的PageRank值,表示该节点的重要性。-选择排名前几的节点作为关键字。3.

  6. 光度学中的能量、通量、出度、照度、强度、亮度参数及其联系 - 2

    光度学中的能量、通量、出度、照度、强度、亮度参数及其联系光度学中评价光的强弱有两种方式,一种是将光作为电磁波,考察其辐射的能量;另一种是以人眼视觉体验来评价光的强弱。前者被称为辐射量,后者被称为光学量。辐射量包括辐射能、辐通量、辐出量、辐照度、辐强度、辐亮度参数,与之相对应,光学量包括光能量、光通量、光出量、光照度、光强度、光亮度参数。通过该文章的阅读,读者还能掌握光学中的几个单位:流明,勒克斯,坎德拉,尼特的意义以及他们之间的关系。辐射量1.辐射能光以电磁波形式发射、传输或接收的能量。单位:焦耳。2.辐通量单位时间发射、传输和接收的辐射能。单位:瓦特。3.辐出度单位面积的辐射源辐射出的辐通量

  7. ruby-on-rails - 在处理电子邮件回复时,我怎样才能忽略任何电子邮件客户端细节和历史记录? - 2

    我有一个通过IMAP处理传入电子邮件的Rails应用程序。当前使用一种方法来搜索TMail对象的各个部分以查找给定的content_type:defself.search_parts_for_content_type(parts,content_type='text/html')parts.eachdo|part|ifpart.content_type==content_typereturnpart.bodyelseifpart.multipart?ifbody=self.search_parts_for_content_type(part.parts,content_type)ret

  8. ruby-on-rails - Rails 计数器缓存及其实现 - 2

    我正在尝试掌握Rails计数器缓存功能,但无法完全掌握它。假设我们有3个模型ABCA属于B或C,取决于字段key_type和key_id。key_type表示A属于B还是C,因此如果key_type="B"则记录属于B,否则属于C。在我的模型a.rb中,我定义了以下关联:belongs_to:b,:counter_cache=>true,:foreign_key=>"key_id"belongs_to:c,:counter_cache=>true,:foreign_key=>"key_id"和在b和c模型文件中has_many:as,:conditions=>{:key_type=>"

  9. pytest简介 - 2

    介绍pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:简单灵活,容易上手支持参数化能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等测试用例的skip和xfail处理可以很好的和jenkins集成

  10. ruby-on-rails - 无法使用 ruby​​ xmpp4r 获取以前的群聊历史记录 - 2

    我正在使用ruby​​xmpp4r库通过openfire服务器实现多用户群聊应用程序。我已经成功地在openfire服务器上创建了聊天室。如果用户使用openfire凭据加入聊天室,它不会返回以前的群聊历史,它只返回几条消息,因为我正在使用add_message_callback()方法。下面是openfire群聊历史设置:**ShowEntireChatHistory(向加入房间的用户显示整个聊天记录。)--True我在这里错过了什么?任何人都有示例代码来获取以前的组历史记录? 最佳答案 我运行了一个Wildfire服务器(ope

随机推荐