找回密码
 注册
关于网站域名变更的通知
查看: 95|回复: 0
打印 上一主题 下一主题

ARM的内核架构汇总

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2024-6-17 18:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
很多时候我们都会对M0,M0+,M3,M4,M7,ARM7,arm9,CORTEX-A系列,或者说AVR,51,PIC等,一头雾水,只知道是架构,不知道具体是什么,有哪些不同?今天查了些资料,来解解惑,不是很详细,但对此有个大体了解。咱先来当下最火的ARM吧
1.ARM
ARM即以英国ARM(Advanced RISC Machines)公司的内核芯片作为CPU,同时附加其他外围功能的嵌入式开发板,用以评估内核芯片的功能和研发各科技类企业的产品.

  X! c. X9 g% p' U. W
ARM 微处理器目前包括下面几个系列,以及其它厂商基于 ARM 体系结构的处理器,除了具有ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和应用领域。
" @* a; h3 f% g; S
- ARM9 系列 ' [. C8 r4 P' E/ j# R
- ARM9E 系列 & |+ N0 C( `0 b0 I- z+ b
- ARM10E 系列
+ b! x% ]6 ]& x; j- ARM11系列
* Z; D4 K7 ^% Q2 h8 E6 w- Cortex 系列
% h9 W$ s' ?3 ]+ D0 k! R- SecurCore 系列
8 B* N5 V- ]) S1 e. ^# M- OptimoDE Data Engines
" J8 A9 c* q' x, E5 X- Intel的Xscale ) T- q  b+ r2 P$ E
- Intel的StrongARM ARM11系列
2. Cortex 系列
32位RISCCPU开发领域中不断取得突破,其设计的微处理器结构已经从v3发展到现在的v7。Cortex系列处理器是基于ARMv7架构的分为Cortex-M、Cortex-R和Cortex-A三类。由于应用领域的不同,基于v7架构的Cortex处理器系列所采用的技术也不相同。基于v7A的称为“Cortex-A系列。

( W5 ?; H1 F  o# o- C
高性能的Cortex-A15、可伸缩的Cortex-A9、经过市场验证的Cortex-A8处理器以及高效的Cortex-A7和Cortex-A5处理器均共享同一体系结构,因此具有完整的应用兼容性,支持传统的ARM、Thumb指令集和新增的高性能紧凑型Thumb-2指令集。
& T; J/ c* P1 _8 G( s
1Cortex-M系列
2 m8 k: Q, ]7 z' z* ]% H+ b( F) A* u% M
2Cortex-R系列
# i, n/ z/ U5 K: V" t
Cortex-R系列分为Cortex-R4、Cortex-R5、Cortex-R7;

6 t! o/ s# X1 |
3Cortex-A 系列
. }% W( L. B" g" B3 A
Cortex-A系列分为Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A50等  ,同样也就有了对应内核的Cortex-M0开发板、Cortex-A5开发板、Cortex-A8开发板、Cortex-A9开发板、Cortex-R4开发板等等。
+ H; i! f& A3 F6 e! X) O+ \5 l
4半导体# B0 C% j' {) U* ^$ k) I
由于ARM公司只对外提供ARM内核,各大厂商在授权付费使用ARM内核的基础上研发生产各自的芯片,形成了嵌入式ARM CPU的大家庭,提供这些内核芯片的厂商有Atmel、TI、飞思卡尔、NXP、ST、和三星等。
; V# S, o& O9 O) B
Cortex-M兼容特性
  为了能做到Cortex-M软件重用,ARM公司在设计Cortex-M处理器时为其赋予了处理器向下兼容、软件二进制向上兼容特性。
  首先看什么是二进制兼容,这个特性主要是针对软件而言,这里指的是当某软件(程序)依赖的头文件或库文件分别升级时,软件功能不受影响。要做到二进制兼容,被软件所依赖的头文件或库文件升级时必须是二进制兼容的。
  那么什么又是向上兼容,向上兼容又叫向前兼容,指的是在较低版本处理器上编译的软件可以在较高版本处理器上执行。
  跟向上兼容相对的另一个概念叫向下兼容,向下兼容又叫向后兼容,指的是较高版本处理器可以正确运行在较低版本处理器上编译的软件。
  所以其实既可以用向上兼容,也可以用向下兼容来形容Cortex-M特性,只不过描述的主语不一样,我们可以说Cortex-M程序是向上兼容的,也可以说Cortex-M处理器是向下兼容的。
  具体到Cortex-M处理器时,这个兼容特性表现为:
  • 从处理器角度看:CM0指令集和功能模块是最精简的,CM7指令集和功能模块是最丰富的。不存在低版本处理器上存在的特性是高版本处理器所没有的。
  • 从软件角度来看:CMSIS提供的头文件和功能函数是二进制向上兼容的,比如某CM0软件App使用的是core_cm0.h头文件,而这个App要在CM7上运行时,不需要使用core_cm7.h再重新编译一次(当然使用新头文件编译后的App也是正常的。)

    ) p  z1 \  s4 E& @* {- u0 @
mcu内核到MCU实际应用是一个完整的产业链,这个产业链分为五个部分:
3 n3 I. A: U5 W  L! K' s
其实都是这样,前三个部分有芯片厂家和架构内核公司负责开芯片,后两个部分由研发公司根据芯片设计,开发。
就拿ST为例,ARM公司为最开始的部分,ST(意法半导体)为芯片设计与制造公司,以ARM内核为载体,通过进一步的设计开发,为ARM配备外围的支持,为将计算控制能力应用到电子产品中提供芯片服务
+ ?9 _3 f( p) o$ P, }
Cortex-M0 处理器简介
ARM公司的Cortex-M0应用于各种微控制器(MCU)中,并可让研发工程师以8位的价位创造32位的的效能,并将传统的8位和16位的处理器升级到更高效、更低功耗的32位处理器。
Cortex-M0是Cortex-M家族中的M0系列。最大特点是低功耗的设计。Cortex-M0为32位、3级流水线RISC处理器,其核心仍为冯.诺依曼结构,是指令和数据共享同一总线的架构。作为新一代的处理器,Cortex-M0的设计进行了许多的改革与创新,如系统存储器地址映像(system address map)、改善效率并增强确定性的嵌套向量中断系统(NVIC)与不可屏蔽中断(NMI)、全新的硬件除错单元等等,都带给了使用者全新的体验和更便利、 更有效率的操作。
技术架构
CortexM0其核心架构为ARMv6M,其运算能力可以达到0.9 DMIPS/MHz,而与其他的16位与8位处理器相比,由于CortexM0的运算性能大幅提高,所以在同样任务的执行上CortexM0只需较低的运行速度,而大幅降低了整体的动态功耗。
Cortex—M0属于ARMv6-M架构,包括1颗专为嵌入式应用而设计的ARM核、紧耦合的可嵌套中断微控制器NVIC、可选的唤醒中断控制器WIC,对外提供了基于AMBA结构(高级微控制器总线架构)的AHB-lite总线和基于CoreSight技术的SWD或JTAG调试接口,如图所示。Cortex-M0微控制器的硬件实现包含多个可配置选项:中断数量、WIC、睡眠模式和节能措施、存储系统大小端模式、系统滴答时钟等,半导体厂商可以根据应用需要选择合理的配置。
4 ^6 U' `' a6 ^! x/ x* a9 q( O
系统总线基于AHB_Lite高级高性能总线协议。外设总线基于APB高级外设总线协议,通过一个转换桥连接到AHB上,这只是Cortex-M0内核的大概模式.
特点
1)能耗效率
CortexM0的运行效率很高(0.9DMIPS/MHz),能在较少的周期里完成一项任务。这意味着CortexM0可以在大部分的时间里处于休眠状态,消耗很少的能量,具有良好的能耗效率。同样较小的逻辑门数也降低了待机电流。而高效的中断控制器(NVIC)需要很小的中断开销。
2)代码密度
Cortex-M0基于Thumb-2的指令集,比用8位或者16位架构实现的代码还要少,因此用户可以选择具有较小Flash空间的芯片。可以降低系统功耗。[1]
3) 易于使用
Cortex-M0适用于C语言编程,并且被许多编译器支持。可以用C语言直接编程中断例程,而无需使用汇编语言。同时Cortex-M0还被多种开发工具支持。包括很多开源的嵌入式操作系统同样支持Cortex-M0。
* Q6 t; }7 d+ v9 R: ~3 x0 `
Cortex-M0 处理器简介
1. Cortex-M0 处理器基于冯诺依曼架构(单总线接口),使用32位精简指令集(RISC),该指令集被称为Thumb指令集。与之前相比,新的指令集增加了几条ARMv6架构的指令,并且加入了eThumb-2指令集的部分指令。Thumb-2技术扩展了Thumb的应用,允许所有的操作都可以在同一种CPU状态下执行。Thumb指令集既包括16位指令,也包括32位指令。C编译器生成的指令大部分是16位的,当16位的指令无法实现所需要的操作时,32位指令就会发挥作用。这样以来,在代码密度得到提升的同时,还避免了两套指令集之间进行切换带来的开销
  2. Cortex-M0总共支持56个基本指令,其中某些指令可能会有多种形式。相对于Cortex-M0较小的指令集,其处理器的能力可不一般,因为Thumb是经过高度优化的指令集。从理论来说,由于读写存储是的指令是相互独立的,而且算数或逻辑操作的指令使用寄存器,Cortex-M0处理器可以被归到加载-存储(load-store)结构中。

. l0 v* s$ T' z' x% U" ~6 I
   3. 处理器核心包括:
  • 寄存器组 包含16个32位寄存器,其中有一些特殊寄存器
  • 算术逻辑单元
  • 数据总线
  • 控制逻辑
    $ @5 j4 B* l* M4 q
  流水线根据设计可分为三种状态: 取指、译码、执行。
! }8 ^, Y9 j1 S: }* h
  4. 嵌套向量中断控制器(NVIC)可以处理最多32个中断请求和一个不可屏蔽中断(NMI)输入。
  5. NVIC需要比较这个在执行中断和请求中断的优先级,,然后自动执行高优先级的中断。
  6. 如果要处理一个中断,NVIC会和处理器进行通信,通知处理器执行中断处理程序。
  7. 唤醒中断控制器(WIC)为可选的单元,在低功耗应用中,在关闭了处理器大部分模块后,微控制器会进入待机装填,此时,WIC可以在NVIC和处理器处于休眠的情况下,执行中断屏蔽功能。当WIC检测到一个中断时,会通知电源管理部分给系统商店,让NVIC和处理器内核执行剩余的中断处理。
  8. 关于调试子系统,当调试事件发生时,处理器内核会被置于暂停状态,这是开发人员可以检查当前处理器的状态。硬件调试工具有JTAG和SWD(串行线调试)。
  c& l8 a/ F2 A, ?4 C6 [& C

ARM Cortex-M0 处理器的特性系统特性
  • thumb指令集,具有高效和高代码密度
  • 高性能,最高达到0.9DMIPS/MHz
  • 内置的嵌套向量中断控制器(NVIC),中断配置和异常处理容易
  • 确定的中断响应事件,中断等待事件可以被设定为固定值或最短事件(最小16个时钟周期)
  • 不可屏蔽中断(NMI),对高可靠性系统非常重要
  • 内置的系统节拍定时器(systick)。24位定时器,可被操作系统使用,或者用作通用定时器,架构中已经包含专用的异常类型
  • 请求管理调用,具有SVC异常和PendSV异常(可挂起的管理服务),支持嵌入式os的多种操作
  • 架构定义的休眠模

    : S5 e) ^4 Y- |: T
' T: ?- V6 ^7 ~8 Y  ~
关键字:ARM  内核架构  CPU
' S" C7 b- w# b4 F$ i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-13 01:36 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表