什么是Cortex、ARMv8、arm架构、ARM指令集、soc

参考:到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】
发布时间: 一口Linux
网址:https://blog.csdn.net/daocaokafei/article/details/109008103

目录

  • 前言
    • 1. ARM公司
    • 2. ARM内核与架构
      • 1) ARM内核
      • 2) ARM指令集架构
      • 3) ARM11之前的处理器和指令集架构
      • 4) ARM11之后处理器和指令集架构
      • 5) 什么是SOC
    • 3. 举例:Exynos 4412 SCP
    • 4. ARM授权
    • 5. 总结

前言

1、ARM既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
2、ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,而是转让设计许可,由合作公司生产各具特色的芯片。
3、ARM处理器的内核是统一的,由ARM公司提供,而片内部件则是多样的,由各大半导体公司设计,这使得ARM设计嵌入式系统的时候,可以基于同样的核心,使用不同的片内外设,从而具有很大的优势。

下面我们针对这些概念,给大家逐一介绍。

1. ARM公司

ARM首先是一个公司,即Advanced RISC Machines的缩写。
但是他本来并不叫这个名字,来看看ARM公司的成长历史。

1978年,一个名叫Hermann Hauser的奥地利籍物理学博士,还有他的朋友,一个名叫Chris Curry的英国工程师成立了一家名字叫“CPU”的公司。这家CPU公司的全称,是Cambridge Processor Unit,字面意思是“剑桥处理器单元”。

CPU公司成立之后,主要从事电子设备设计和制造的业务。他们接到的第一份订单,是制造赌博机的微控制器系统。

这个微控制器系统被开发出来后,称之为Acorn System 1。

Acorn System 1
之所以叫Acorn,就是因为他们想在电话黄页里排在Apple(苹果)公司的前面。

在Acorn System 1之后,他们又陆续开发了System 2、3、4,还有面向消费者的盒式计算机——Acorn Atom。
Acorn Atom

到了1981年,公司迎来了一个难得的机遇——英国广播公司BBC打算在整个英国播放一套提高电脑普及水平的节目,他们希望Acorn能生产一款与之配套的电脑。

但是他们就发现,自己产品的硬件设计并不能满足需求。当时,中央处理器的发展潮流,正在从8位变成16位。Acorn并没有合适的芯片可以用。

于是,他们打算去找当时如日中天的英特尔(Intel),希望对方提供一些80286处理器的设计资料和样品。然而,英特尔无情地拒绝了他们。

备受打击的Acorn公司,一气之下决定自己干,自己造芯片。(多么熟悉的桥段!)

于是Acorn公司的研发人员从美国加州大学伯克利分校找到了一个关于新型处理器的研究——简化指令集,恰好可以满足他们的设计要求。

在此基础上,经过多年的艰苦奋斗,来自剑桥大学的计算机科学家Sophie Wilson和Steve Furber最终完成了微处理器的设计。前者负责指令集开发,后者负责芯片设计。

对于这块芯片,Acorn给它命名为Acorn RISC Machine

这就是**“ARM”**三个字母的由来。
Acorn RISC Machine

在ARM1之后,Acorn陆续推出了好几个系列,例如ARM2,ARM3。

1990年,Acorn为了和苹果合作,专门成立了一家公司,名叫ARM。

ARM公司
注意,这里的ARM是公司名称,不是芯片名称。这个ARM的完全拼写也不一样,是Advanced RISC Machines。

前面的芯片名称:Acorn RISC Machine
现在的公司名称:Advanced RISC Machines

20世纪90年代,ARM 32位RISC(Reduced lnstruction Set Computer)处理器扩展到国际范围,占有了低功耗、低成本和高功能的嵌入式体系运用领域的领先地位。

ARM公司既不出产芯片也不出售芯片,它只出售芯片技能授权。

正式这个政策的制定,让ARM公司摆脱了现金流的困扰,可以全身心都入到芯片研发上。

1998年4月17日,业务飞速发展的ARM控股公司,同时在伦敦证交所和纳斯达克上市。
ARM在纳斯达克上市
2007年,划时代产品-iPhone 问世。
而第一代iPhone,正是使用了ARM设计、三星制造的芯片。

2008年,谷歌推出了Android(安卓)系统,也是基于ARM指令集。
至此,智能手机进入了飞速发展阶段,ARM也因此奠定了在智能手机市场的霸主地位。

2016年7月18日消息,日本软银以234亿英镑(约合310亿美元)的价格收购英国芯片设计公司ARM。

2020年9月14日,英伟达正式宣布将以400亿美元的价格从软银手中收购ARM公司。根据协议,英伟达将向软银公司支付价值215亿美元的英伟达股票,以及120亿美元现金。

目前这桩收购案遭到了包括英特尔、高通、特斯拉等多家硅谷科技巨头的反对,他们认为这笔交易对行业不利,此外中国和欧盟的监管机构也可能会反对该收购案。

静观其变吧!

2. ARM内核与架构

任何一款ARM芯片都由两大部分组成:ARM内核,外设。

1) ARM内核

ARM内核:
包括了寄存器组、指令集、总线、存储器映射规则、中断逻辑和调试组件等。
内核是由ARM公司设计并以销售方式授权给个芯片厂商使用的(ARM公司本身不做芯片)。
比如为高速度设计的Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(就是内核),后者是指令集的架构(也简称架构)

外设部分
包括计时器、A/D转换器、存储器、i2c、UART、SPI、ROM…等等,则完全由各芯片厂商自己设计并与ARM内核衔接配套。不同的芯片厂商就有不同的外设,因此构成了数量和规格庞大的ARM芯片产业。

2) ARM指令集架构

指令集的设计是处理器结构中最重要的一个部分,用ARM的术语称之为ISA(Instruction Set Architecture)。

指令集可以说是cpu设计的灵魂,是打开CPU这个潘多拉魔盒的咒语,要想使用cpu,我们只能通过这些指令来操作cpu。

对于32位的cpu,这些指令就是一个个32位的01的序列,不同的值就代表了不同的机器指令,cpu的硬件能完美的解析并执行这些指令,比如寻址、运算、异常处理等等。

当我们用手机玩着王者荣耀的时候,要知道我们的每发的一招,其实最终都是被翻译成了一系列机器指令。

从1985年ARMv1架构诞生起,到2011年,ARM架构已经发展到了第八代ARMv8。

Cortex-A32/35/53/57/72/73/77/78采用的都是ARMv8架构,这是ARM公司的首款支持64位指令集的处理器架构。
ARM 处理器架构发展

3) ARM11之前的处理器和指令集架构

ARM11芯片之前,每一个芯片对应的架构关系如下:
在这里插入图片描述

4) ARM11之后处理器和指令集架构

ARM11芯片之后,也就是从ARMv7架构开始,ARM的命名方式有所改变。

新的处理器家族,改以Cortex命名,并分为三个系列,分别是Cortex-A,Cortex-R,Cortex-M。

很巧合,又是这三个字母A、R、M

在这里插入图片描述

Cortex-A系列(A:Application)

针对日益增长的消费娱乐和无线产品设计,用于具有高计算要求、运行丰富操作系统及提供交互媒体和图形体验的应用领域,如智能手机、平板电脑、汽车娱乐系统、数字电视,智能本、电子阅读器、家用网络、家用网关和其他各种产品。。

Cortex-R系列 (R:Real-time)

针对需要运行实时操作的系统应用,面向如汽车制动系统、动力传动解决方案、大容量存储控制器等深层嵌入式实时应用。

Cortex-M系列(M:Microcontroller)

该系列面向微控制器领域,主要针对成本和功耗敏感的应用,如智能测量、人机接口设备、汽车和工业控制系统、家用电器、消费性产品和医疗器械等。

Cortex-SC系列(SC:SecurCore)
其实,除了上述三大系列之外,还有一个主打安全的Cortex-SC系列(SC:SecurCore),主要用于政府安全芯片。

ARM的产品天梯

ARM11系列包括了ARM11MPCore处理器、ARM1176处理器、ARM1156处理器、ARM1136处理器,它们是基于ARMv6架构。

ARM Cortex-A5处理器、Cortex-A7处理器、Cortex-A8处理器、Cortex-A9处理器、Cortex-A15处理器隶属于Cortex-A系列,基于ARMv7-A架构。

Cortex-A53、Cortex-A57两款处理器属于Cortex-A50系列,首次采用64位ARMv8架构。

2020年ARM最近发布了一款全新的CPU架构Cortex-A78,是基于ARMv8.2指令集。

5) 什么是SOC

SoC的全称叫做:System-on-a-Chip,中文的的意思就是“把系统都做在一个芯片上”。

SoC上集成了很多手机上最关键的部件,比如CPU、GPU、内存、也就说虽然它在主板上的存在是一个芯片,但是它里边可是由很多部件封装组成的。

比如通常我们所说的高通801,麒麟950.三星的exynos 4412,A6等等都只是系统部件打包封装(SoC)后的总称。然而各家的打包封装的内容则不尽相同,原因也不尽相同。

基于ARM的SOC实例
经典的ARM系统级芯片或所谓的Soc 包含许多组件,其中只有一些直接源自ARM。首先,核心本身通常深度嵌入在设备内部,在设备范畴内通常不直接可见,而调试端口通常是唯一和核心本身相连的外露部分,有一些粘合逻辑,如时钟和复位集成电路。

由于 ARM 核心只有两个中断输入,最常见的外设就是某种中断控制器,在外设内部,各组件通过芯片上互联总线架构相互连接,对于极大多数基于ARM的设备而言,这就是标准的 AMBA 互联。

AMBA 指定了两个总线,称为AXI的高性能系统总线,和称为APB的低功耗外设总线,APB通常用于连接所有外设,AXI则用于存储器和其他发高速设备,大多数设备都有一定数量的芯片上存储以及连接外设存储器设备的接口,但是注意,与设备的外部连接并不是AMBA总线,这仅在设备内部使用,并不外露。

3. 举例:Exynos 4412 SCP

下面我们以 三星的Exynos(猎户座) 4412 SCP为例,来讲解这几个概念。

  1. 三星的Exynos 4412 SCP 是一款基于Cortex-A9的SOC;
  2. 如下图所示,Exynos 4412包含了4个Cortex-A9的处理器(核);
  3. Cortex-A9是基于ARMv7-A架构(指令集)的。

Exynos 4412 SCP Block Diagram
由上图可知,exynos 4412出了包含4个Cortex-A9核,还包括大量的外设控制器:DRAM Controller、SROM Controller、Camera IF、JPEG、GPS/GLONASS、Power Management、USB Host、I2C、UART、SPI等。

和三星相同的其他和arm合作的各大厂商通常会把它的CPU和各类外围IP都放到一起,然后自己拿着图纸去流片,生产出来的也是一个正方形,下面有很多引脚,这个东西不仅包含了CPU,还包含了其他的控制器,这个东西就叫做SOC(system on chip)。

如下图所示,就是三星最终生产的Exynos 4412 ,当然了,光有这个soc还无法运行安卓,还需要借助外围大量的外设才能最终形成一个完整的系统,但是大部分最复杂的硬件部分模块都已经集成到了这个soc中。
Exynos 4412目前各大厂商所做的事情,就是买来ARM的授权,得到ARM处理器的源代码,而后自己搞一些外围IP(或者买或者自己设计),组成一个SOC后,去流片。不同的SOC,架构不同(就是CPU如何和IP联系起来,有的以总线为核心,有的以DDR为核心)。

海思是拥有自主产权的SOC架构。可是,无论任何厂商,再怎么折腾,都没有怎么动过CPU,ARM核心就好好的呆在那里,那就是中央处理器。

4. ARM授权

如何来理解ARM授权呢?

就比如我们制造汽车,ARM公司相当于拥有最先进的的’发动机’设计方案,但是他不’生产发动机’,而是把设计方案授权给各大’汽车厂商’生产,赚来的钱继续研发更先进的‘发动机’。

ARM授权分为ARM架构授权、IP核授权、使用层级授权

一个公司若想使用ARM的内核来做自己的处理器,比如ST、苹果、三星、TI、高通、华为等等,必须向ARM公司购买其架构下的不同层级授权,根据使用需要购买相应的层级授权。

架构的授权方式有三种:架构层级授权、内核层级授权(ip核授权)、使用层级授权。

1.架构层级授权,是指可以对ARM架构进行大幅度改造,甚至可以对ARM指令集进行扩展或缩减,苹果就是一个很好的例子,在使用ARMv7-A架构基础上,扩展出了自己的苹果swift架构;

2.内核层级授权,是指可以以一个内核为基础然后在加上自己的外设,比如USART、GPIO、SPI、ADC等等,最后形成了自己的MCU,这种公司很多,比如三星、TI;

3.使用层级授权,要想使用一款处理器,得到使用层级的授权是最基本的,这就意味着你只能拿别人提供的定义好的ip来嵌入在你的设计中,不能更改人家的ip,也不能借助人家的ip创造自己的基于该ip的封装产品。

因此,如果华为分别拿到架构授权和ip核授权,那么意味着它可以在ARM指令集基础上根据需要创建出自己的内核架构,并可添加各种片内外设比如通信接口、显示器控制接口、GPIO等等,从而生产出自己的“处理器芯片”。

其实就像我写了一篇文章,我告诉甲,你可以拿去修改后使用,便是架构层级授权,我告诉乙,你可以在你的文章中引用我的文章,便是内核级授权,我告诉丙,你只能对我的文章进行转发,不能更改,不能添油加醋,便是使用层级授权。

5. 总结

下面我们总结下这些概念:

  1. ARM公司的名字,叫ARM:Advanced RISC Machines;
  2. ARM前身Acorn公司设计的第一款微处理器,叫ARM:Acorn RISC Machine;
  3. ARM处理器名字:
    以前叫ARM9、ARM11,
    新的命名规则改以Cortex命名,分别是Cortex-A,Cortex-R,Cortex-M;
    这三个字母A、R、M合到一起又是ARM。
  4. ARM指令集,就是ARM架构,比如ARMv8,每个处理器都需要依赖一定的ARM架构来设计;
  5. SOC:各大厂商买来ARM的授权,得到ARM处理器的源代码,而后自己搞一些外围设备的IP(或者买或者自己设计),组成一个SOC,比如三星的Exynos 4412,华为的麒麟990。

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

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

相关文章

Windows下Qt5搭建Android开发环境笔记

Windows很大的特点是配置使用几乎都可以图形化进行,和Linux比起来在很多时候配置环境也要方便很多。所以,搭建Qt for Andorid也是十分简单的。需要以下工具:1.最方便的Qt官方包,现在还处于RC阶段,经过测试也是有些小bu…

大学python怎么过_大学生该不该学Python?太纠结了?

首先,在大学期间的学习任务应该围绕自身的专业课程体系来展开,对于计算机相关专业的同学来说,学习Python还是有一定必要的,作为一门全场景编程语言,Python在大数据、人工智能等领域的应用还是比较广泛的,掌…

python中的列表,添加元素,获取元素,删除元素,列表分片,常用操作符

一. 创建列表,分为创建普通列表,混合列表,和空列表。其中混合列表是指string,int, float等都可以写在同一个列表里,空列表是指列表可以为空 二. 在列表添加成员方法 1. append(&#xff09…

对于嵌入式交叉编译总结

这几天终于搞定了老师项目里我负责的部分,主要是做一个图像采集的手持端,我选用了JZ2440。 从移植内核、制作文件系统、Qt移植总结下来发现在对于代码的交叉编译必须保证编译平台的一致性。对于s3c2440来说是armv4t,所以当我们编译出来程序必…

Linux下svn搭建配置

Linux下svn搭建配置1、安装svn客户端yum install subversionsvnserve --version ;如果成功安装,可以看到输出版本信息2、配置svn mkdir -p /data/svn ;创建svn目录svnadmin create /dat…

rstudio 导出结果_RStudio如何完美导出包含中文的图

这篇文章源于我自己使用R及RStudio数据处理时遇到的问题,R非常强大,但是在中文支持方面还是不是很完美,比如遇到你想导出一个含有中文的图,就会遇到问题。比如有这样一个简单的图:data plot(data,xlimc(1,3),ylimc(2,3…

CSS进阶学习

5种主流浏览器及内核 IE trident Chrome webkit/blink Firefox gecko Opera presto 3%-5% Safari webkit css引入三种方式 行间样式 页面级 外部css文件 同步:顺序进行。一件事做完做另一件事。 异步:同时进行。两件不同的事同时做。 CSS权重&#xff…

linux驱动调试--oops信息

在移植dm9000 时被一个错误困扰了很久,当时手里只有printk调试手段,觉得自己应该升级下了,先学习了根据oops信息来调试。 先构造一个错误,insmod后抛出如下信息 我们着重看这几句 PC is at memcpy0x8c/0x29c c0148080 pc : …

浏览器输入网址后发生了什么?

摘自:这是最全的一篇!!!浏览器输入网址后发什么了什么? 作者:程序员cxuan 发布时间: 2021-04-15 11:59:07 网址:https://blog.csdn.net/qq_36894974/article/details/115720479 到现…

python默认参数只被解释一次_深入讲解Python函数中参数的使用及默认参数的陷阱...

C里函数可以设置缺省参数,Java不可以,只能通过重载的方式来实现,python里也可以设置默认参数,最大的好处就是降低函数难度,函数的定义只有一个,并且python是动态语言,在同一名称空间里不能有想多名称的函数…

fancybox去除不受待见的水平滚动条

用fancybox在嵌套某个页面时,有时莫名其妙的会出现的消除不掉的幽灵般水平滚动条,如何去除: github上的解决方案:https://github.com/fancyapps/fancyBox/issues/24 转载于:https://www.cnblogs.com/kinpauln/p/3145796.html

Word Count作业

Word Count作业 一.个人Gitee地址&#xff1a;https://gitee.com/Changyu-Guo 二.项目简介 该项目主要是模拟Linux上面的wc命令&#xff0c;基本要求如下&#xff1a; 命令格式&#xff1a; wc.exe [para] <filename> [para] <filename> ... -o <filename> 功…

iDempiere = OSGi + ADempiere 一款ERPCRMSCM系统、助力中小企业发展

怀揣着为中小企业量身定做一整套开源软件解决方案的梦想开始了一个网站的搭建。http://osssme.org/ iDempiere OSGi ADempiere 一款ERP&CRM&SCM系统、助力中小企业发展 一句话概括iDempiere是一款基于Compiere/ADempiere的​开源企业级ERP&CRM&SCM系统​&…

字符串 hash 唯一数字_【数字课堂】酒妹带你了解“身份认证技术”

身份认证技术是在计算机网络中确认操作者身份的过程而产生的有效解决方法。计算机网络世界中一切信息包括用户的身份信息都是用一组特定的数据来表示的&#xff0c;计算机只能识别用户的数字身份&#xff0c;所有对用户的授权也是针对用户数字身份的授权。如何保证以数字身份进…

内核启动流程—走马观花

汇编阶段&#xff1a; ensure svc mode and irqs disabled 76确保cpu运行与svc模式&#xff0c;中断关闭 get processor id 78获取cpu id r5procinfo r9cpuid invalid processor (r50)? 79 和__proc_info lists 里比较&#xff0c;不能找到id就 r5 0 bl __vet_atags…

空气中超声衰减

空气中超声衰减是非常厉害的&#xff0c;这导致在空气耦合声换能器的制作或是声传感器的设计是极具挑战的&#xff0c;因此对超声衰减做一个细致的分析是很有必要的。 具体计算根据经验公式如下进行计算 结果如下&#xff1a; Figure 1 超声衰减系数与频率关系图 Figure 2 超声…

嵌入式linux系统和嵌入式android系统的区别和联系

目录区别与联系嵌入式系统在物联网行业中的应用物联网嵌入式系统的特征区别与联系 这个问题很多人问&#xff0c;尤其是初入嵌入式的菜鸟。其实大家都认为android是java&#xff0c;已经不是linux&#xff0c;殊不知android就是靠着linux 才发展起来的&#xff0c;现在来说说有…

java生产者消费者问题代码分析

作者要的是一个生产者生成&#xff0c;接着必须有一个消费者消费&#xff0c;那这不是需要单线程吗&#xff1f;或者使用1个大小的阻塞队列。所以只谈论问题本身&#xff0c;不谈论好不好。 具体代码&#xff1a; Java代码 import java.util.concurrent.locks.Condition; i…

vb冒泡排序法流程图_VB算法-冒泡排序教案

1冒泡排序教学设计班级&#xff1a;高一一班授课教师&#xff1a;袁海军一、教案背景模块&#xff1a;算法与程序设计班级&#xff1a;高一(1)班课时数&#xff1a;1课时所用教材&#xff1a;华师大版《算法与程序设计》教师&#xff1a;袁海军二、教学设计1.教学目标知识与技能…

linux板级初始化

最近拿到了明远智睿 的EK314开发板&#xff0c;以前主要用2440&#xff0c;眼界过于狭隘&#xff0c;借此机会练习下。 http://lornyin.top/?p106 原文地址 首先看看它的板级文件 /arch/arm/mach-mx6/board-myimx6ek314.c 在他的末尾指定了map_io、init_irq、init_machine…