ARM 详解

news2024/9/23 13:31:06

一、ARM 的发展史

ARM 的发展历史可以追溯到 1978 年,当年克里斯·库里(Chris Currry)所任职的公司遭遇财务危机,发展每况愈下,库里在和创始人深入沟通后,决定离职。当时的库里对微型计算机很感兴趣,随后和他的朋友赫尔曼·豪泽(Hermann Hauser)创立了剑桥处理器(Cambridge Processor Unit)有限公司。1979 年,剑桥处理器公司改名为橡果电脑(Acorn Computer)有限公司,据说改名字是因为希望公司的名字再字母排序中排在苹果公司的前面,公司成立初期主要从事电子设备设计和制造的业务,其第一个大获成功的产品是 1981 年 12 月推为英国广播公司微型计算机。1985年是橡果电脑一个重要的里程碑,他们独立完成了 32 位微处理器的设计,采用精简指令集,3 微米工艺,包含 25000 个晶体管。这个处理器是 ARM 架构的起点,即 ARMv1。

1990 年,由 VLSI 科技公司投资,橡果和苹果各自持有 43% 的股份,成立了 ARM,此后 ARM 就成了 Advanced RISC Machines 的缩写。最初的 ARM 成员只有很少的工程师,办工场所在剑桥的一个谷仓里。

1996年,ARM 和德州仪器、三星、诺基亚等公司建立合作,实现盈利。诺基亚 6110 手机中经典的游戏——贪食蛇,就是基于 ARM 7TDMI 芯片开发的。1998 年,ARM 在纳斯达克上市,挂牌交易,彼时的 ARM 市值已达十亿美元!2004 年,ARM 发布了 Cortex-A,R,M 三个系列的处理器,细心的读者可能发现了,这三个系列的处理器,就是 ARM 的三个字母。2007 年 2 月,ARM 第一款 GPU——Mali-200 正式走向市场,同年,在科技界还有一件大事,那就是 iPhone 诞生了!iPhone 可谓是一部具有划时代意义的电子产品,其中搭载的就是基于 ARM 核心的芯片,随着智能手机时代的来临,ARM 也异军突起,2007 年,基于 ARM 核心设计的芯片出货量已达一百亿颗!

2016 年 ARM 被日本软银收购,2020 年,软银拟以 400 亿美元的价格将 ARM 出售给英伟达,但最终因多家监管机构反对,交易流产,ARM 依然会在半导体界保持中立状态,继续为其他芯片设计公司提供 IP(Intellectual Property)授权。

二、ARM 处理器家族

多年来, ARM 已经研发了相当多的不同的处理器产品。如下图中:ARM 处理器产品分为经典 ARM 处理器系列(下图分割线左侧)和最新的 Cortex 处理器系列(下图分割线右侧)。并且根据应用范围的不同,ARM 处理器可以分类成 3 个系列。

  • Application Processors (应用处理器,下图橙色框部分)– 面向移动计算,智能手机,服务器等市场的的高端处理器。这类处理器运行在很高的时钟频率(超过 1GHz),支持像 Linux,Android,MS Windows 和移动操作系统等完整操作系统需要的内存管理单元(MMU)。如果规划开发的产品需要运行上述其中的一个操作系统,你需要选择 ARM 应用处理器。
  • Real-time Processors (实时处理器,下图灰色框部分)– 面向实时应用的高性能处理器系列,例如硬盘控制器,汽车传动系统和无线通讯的基带控制。多数实时处理器不支持 MMU,不过通常具有 MPU、Cache 和其他针对工业应用设计的存储器功能。实时处理器运行在比较高的时钟频率(例如 200MHz 到 >1GHz ),响应延迟非常低。虽然实时处理器不能运行完整版本的 Linux 和 Windows 操作系统,但是支持大量的实时操作系统(RTOS)。
  • Microcontroller Processors (微控制器处理器,下图绿色框部分)– 微控制器处理器通常设计成面积很小和能效比很高。通常这些处理器的流水线很短,最高时钟频率很低(虽然市场上有此类的处理器可以运行在 200Mhz 之上)。并且,新的 Cortex-M 处理器家族设计的非常容易使用。因此,ARM 微控制器处理器在单片机和深度嵌入式系统市场非常成功和受欢迎。

Embedded_ARM_E.png

ARM三个系列处理器特点

Embedded_ARM_F.png

另外,ARM 也推出了移动 GPU 系列,即 Mali GPU。

三、ARM 授权

ARM 公司是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案(就是我们通常说的授权),由合作伙伴生产出各具特色的芯片。

笼统来说,ARM 的授权分为三个层级:

  • 使用层级授权
  • 内核层级授权架构
  • 指令集层级授权

这三个层级的权限是依次上升的。对芯片设计公司的要求也是从低到高,而发挥的空间也是从低到高:指令集层级授权(也成软核)发挥的空间最大,使用层级授权(也成硬核)发挥的空间最小。(比如代工厂台积电拿着图纸就可以施工,可以不用修改)。

买ARM使用层级授权(硬核)的芯片设计公司,用通俗的话说就是,使用 ARM 公版架构。这种情况下,芯片设计公司对外宣传必须带上 ARM 公司的品牌:CPU 的品牌是 Cortex-AXX(XX 代表两位阿拉伯数字,第一个数字表示架构是第几代,第二个表示架构微调),GPU则是 Mali-GXX(XX含义同上)。

如果用一个比较粗略但是好理解例子来说明这三个层级的权限,大体上我们可以这样理解:

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

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

目前,总共有超过 1000 家公司与 ARM 公司签订了技术使用许可协议,其中包括 apple、Intel、Broadcom、IBM、LG、SONY、NXP 和 TI 这样的大公司。但是敢于购买架构授权的,也只有15家左右,高通、苹果、Broadcom、Marvell、华为、三星都是典型的用户(也都是各自行业的扛把子)。

四、ARM 架构解析

下面以 S3C2440 为例与 51 单片机进行对比分析,详细解析了 ARM 架构。

ARM 公司主要设计 ARM 系列 AISC 处理器内核,它不生产芯片,只提供 IP 核。先以一个例子解释一下架构、核、处理器和芯片:S3C2440,这是一款 SoC 芯片,注意,它不是 CPU,S3C2440 和我们熟知的 51 单片机有点类似,都属于嵌入式,嵌入式的发展到目前经历了三个阶段,分别是 SCM、MCU、SoC。51 属于 SCM 或 MCU,而 S3C2440 就属于 SoC 了,先来看看 51 单片机的内部结构,如下图所示。

Embedded_ARM_A.jpg

其内部结构可以简单的分成两部分:CPU 和外设。再来看 2440 的:

Embedded_ARM_B.jpg

中间的那个 ARM920T 就是它的处理器,处理器和核在我看来在这里是一个概念,只不过一个是硬概念,一个是软概念。这里的 ARM920T 就既是处理器又是核。而三星做的就是除了这个 CPU 外其他的东西。

那架构呢?再来看一张图。

Embedded_ARM_C.png

其中左侧的就是架构,右侧的是处理器,也可以叫核。ARM 首个最成功的 CPU 是 ARM7TDMI,是基于 ARMv4的。ARM 架构包含了下述 RISC 特性:

  • 读取/储存 架构
  • 不支援地址不对齐内存存取(ARMv6 内核现已支持)
  • 正交指令集(任意存取指令可以任意的寻址方式存取数据Orthogonal instruction set)
  • 大量的 16 × 32-bit 寄存器阵列(register file)
  • 固定的 32 bits 操作码(opcode)长度,降低编码数量所产生的耗费,减轻解码和流水线化的负担。
  • 大多均为一个 CPU 周期执行。
  • 不同版本的架构会有所调整。

和三星相同的其他和 ARM 合作的各大厂商通常会把它的 CPU 和各类外围 IP 都放到一起,然后自己拿着图纸去流片,生产出来的也是一个正方形,下面有很多引脚,这个东西不仅包含了 CPU,还包含了其他的控制器,这个东西就叫做 SoC(system on chip)。从英文来看,所谓的四核 SoC 什么的,本意就不是单指 CPU,而是四核系统。

所以目前各大厂商所做的事情,就是买来 ARM 的授权,得到 ARM 处理器的源代码,而后自己搞一些外围 IP(或者买或者自己设计),组成一个 SoC 后,去流片。不同的 SoC,架构不同(就是 CPU 如何和 IP 联系起来,有的以总线为核心,有的以 DDR 为核心),所以,海思是拥有自主产权的 SoC 架构。可是,无论任何厂商,再怎么折腾,都没有怎么动过 CPU,ARM 核心就好好的呆在那里,那就是中央处理器。

五、总结

在后智能手机时代,ARM 迅速发展,并在十多年的时间建立了良好的生态,就连微软这个英特尔的老伙伴,也在2011 年宣布支持 ARM 架构。截止 2022 年,ARM 的合作伙伴已超过 1000 家,95% 的智能手机中都使用基于 ARM 核心的处理器,处理器累计出货超过 2250 亿颗。要知道,如果在 2000 年左右,如果有人说 ARM 架构处理器的性能可以和 x86 媲美,甚至超越 x86,那么无异于天方夜谭。然后科技发展日新月底,ARM 乘着移动互联网这艘大船,逐步发展为指令集架构领域一支新的力量!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/806946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大致了解Redis

为了保证数据的可靠性,Redis 需要在磁盘上读写 AOF 和 RDB,但在高并发场景里,这就会直接带来两个新问题:一个是写 AOF 和RDB 会造成 Redis 性能抖动,另一个是 Redis 集群数据同步和实例恢复时,读 RDB 比较慢…

什么是EPC?

文章目录 一、什么是EPC?二、EPC的优势和特征2.1、EPC的优势2.2、EPC的特征 三、EPC项目管理平台3.1、平台简介3.2、平台优势3.3、平台功能模块 一、什么是EPC? EPC(Engineering Procurement Construction)是指公司受业主委托&am…

MySQL中锁的简介——表级锁-元数据锁、意向锁

1.元数据锁 查看元数据锁 select object_type,object_scheme,object_name,lock_type,lock_duration from perfomance_scheme.metadata_locks;2.意向锁 线程A开启事务后在执行update更新语句时候,会给数据加上行锁,加上行锁以后,会对整张表加…

JMM是如何保证原子性呢?

3.3.1加锁 锁是一种通用技术,比如Java提供的Synchronized关键字就是锁的一种实现,Synchronized是排他锁/独占锁,就是有你没我的意思,只要其他线程到来访问,发现锁还未释放,就要在外面等待,因为S…

【雕爷学编程】Arduino动手做(175)---机智云ESP8266开发板模块6

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

Docker 入门终极指南[详细]

前言 富 Web 时代,应用变得越来越强大,与此同时也越来越复杂。集群部署、隔离环境、灰度发布以及动态扩容缺一不可,而容器化则成为中间的必要桥梁。 本节我们就来探索一下 Docker 的神秘世界,从零到一掌握 Docker 的基本原理与实…

Nginx配置WebSocket反向代理

1、WebSocket协议 ​ WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯,直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容,它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的…

Java8使用CompletableFuture实现多异步任务同步等待结果

一、应用场景 在实际的开发工作中,我们可能会遇到一些比较复杂且耗时的功能,例如一个业务数据表格的导出,假定业务数据表本身都很大,需要组装的数据又比较多,就会造成整个实现过程很耗时甚至可能出现接口请求超时&…

Android 之 MediaPlayer 播放音频与视频

本节引言: 本节带来的是Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频 该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码 和播放音视频。它支持三种不同的…

Carla教程三:参考线平滑理论完全解析(二次规划)

参考线平滑理论 决策规划流程第一步是参考线的生成,然后将障碍物进行投影到以参考线为坐标轴的frenet坐标系。参考线是很关键的一部,解决了导航路径过长,不平滑,不利于坐标转换找匹配点的问题。利用参考线,每一个规划…

LeetCode 2050. Parallel Courses III【记忆化搜索,动态规划,拓扑排序】困难

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

适用于 Windows 10/11 的 10 款最佳免费 PDF 阅读器软件

PDF 文档非常受欢迎,因为它们可以在任何操作系统上打开,并且很容易附加到电子邮件、消息或网站中。PDF 文档还具有不易更改的优点。因此,它被个人和组织广泛用于简历、学习材料、文档以及外围设备和设备手册的数字副本。 PDF 阅读器软件可帮…

【JavaEE初阶】Servlet (三)MessageWall

在我们之前博客中写到的留言墙页面,有很严重的问题:(留言墙博客) 如果刷新页面/关闭页面重开,之前输入的消息就不见了.如果一个机器上输入了数据,第二个机器上是看不到的. 针对以上问题,我们的解决思如如下: 让服务器来存储用户提交的数据,由服务器保存. 当有新的浏览器打开页…

Python 基础(十七):库

❤️ 博客主页:水滴技术 🌸 订阅专栏:Python 入门核心技术 🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬 文章目录 一、Python库的概念二、常用标准库2.1、数字和数学2.2、文件和目录操作2.3、时间和日期2.4、网络通信2.5、并发和多线程2.6、数据压缩和归档2.7、数据序列化…

深度专访盖国强丨《TVP技术指针:共创国产数据库的“中国时刻”》

日前,腾讯云《TVP技术指针》栏目对云和恩墨创始人盖国强进行了深度专访。从专业DBA到创立云和恩墨公司,从 Oracle ACE 国内第一人到国产数据库的践行者,伴随中国数据库成长的二十年,他有哪些思考、判断、行动和远见?在…

苍穹外卖-day05

苍穹外卖-day05 本项目学自黑马程序员的《苍穹外卖》项目,是瑞吉外卖的Plus版本 功能更多,更加丰富。 结合资料,和自己对学习过程中的一些看法和问题解决情况上传课件笔记 视频:https://www.bilibili.com/video/BV1TP411v7v6/?sp…

深入浅出对话系统——可控文本生成

引言 主要是介绍一篇引用800的论文 CTRL: A Conditional Transformer Language Model for Controllable Generation 它的Pytorch源码在 https://huggingface.co/transformers/v3.1.0/_modules/transformers/modeling_ctrl.html 主要思想是通过加入控制代码(control code)来控…

空中出租车运营公司【Flewber Global】申请纳斯达克IPO上市

猛兽财经获悉,总部位于美国纽约的空中出租车运营公司Flewber Global Inc,近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票代码为(FLYF),Flewber Global计划通…

[语义分割] DeepLab v2(膨胀卷积、空洞卷积、多尺度信息融合、MSc、ASPP、空洞空间金字塔池化、Step学习率策略、Poly学习率策略)

DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs 论文地址:DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs源码地址&…

大数据的兴起

目录 1.什么是大数据 2.大数据的具体应用 3.大数据的便利性 4.大数据的危害 1.什么是大数据 大数据是指规模庞大、复杂多样的数据集合,无法用传统的处理方法进行管理、处理和分析的一种数据类型。这些数据集合通常包括结构化数据(如数据库中的表格&am…