历史上的今天
返回首页

历史上的今天

今天是:2024年12月03日(星期二)

正在发生

2019年12月03日 | 关于ARM的内核架构

2019-12-03 来源:eefocus

很多时候我们都会对M0,M0+,M3,M4,M7,arm7,arm9,CORTEX-A系列,或者说AVR,51,PIC等,一头雾水,只知道是架构,不知道具体是什么,有哪些不同?今天查了些资料,来解解惑,不是很详细,但对此有个大体了解。咱先来当下最火的ARM吧

1.ARM

ARM即以英国ARM(Advanced RISC Machines)公司的内核芯片作为CPU,同时附加其他外围功能的嵌入式开发板,用以评估内核芯片的功能和研发各科技类企业的产品.


ARM 微处理器目前包括下面几个系列,以及其它厂商基于 ARM 体系结构的处理器,除了具有ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和应用领域。 


- ARM9 系列 
- ARM9E 系列 
- ARM10E 系列 
- ARM11系列 
- Cortex 系列 
- SecurCore 系列 
- OptimoDE Data Engines 
- Intel的Xscale 
- Intel的StrongARM ARM11系列

2. Cortex 系列

32位RISCCPU开发领域中不断取得突破,其设计的微处理器结构已经从v3发展到现在的v7。Cortex系列处理器是基于ARMv7架构的分为Cortex-M、Cortex-R和Cortex-A三类。由于应用领域的不同,基于v7架构的Cortex处理器系列所采用的技术也不相同。基于v7A的称为“Cortex-A系列。


高性能的Cortex-A15、可伸缩的Cortex-A9、经过市场验证的Cortex-A8处理器以及高效的Cortex-A7和Cortex-A5处理器均共享同一体系结构,因此具有完整的应用兼容性,支持传统的ARM、Thumb指令集和新增的高性能紧凑型Thumb-2指令集。


1Cortex-M系列


2Cortex-R系列


Cortex-R系列分为Cortex-R4、Cortex-R5、Cortex-R7;


3Cortex-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开发板等等。


4半导体


由于ARM公司只对外提供ARM内核,各大厂商在授权付费使用ARM内核的基础上研发生产各自的芯片,形成了嵌入式ARM CPU的大家庭,提供这些内核芯片的厂商有Atmel、TI、飞思卡尔、NXP、ST、和三星等。


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也是正常的。)

从MCU内核到MCU实际应用是一个完整的产业链,这个产业链分为五个部分:

其实都是这样,前三个部分有芯片厂家和架构内核公司负责开芯片,后两个部分由研发公司根据芯片设计,开发。

就拿ST为例,ARM公司为最开始的部分,ST(意法半导体)为芯片设计与制造公司,以ARM内核为载体,通过进一步的设计开发,为ARM配备外围的支持,为将计算控制能力应用到电子产品中提供芯片服务

 

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、睡眠模式和节能措施、存储系统大小端模式、系统滴答时钟等,半导体厂商可以根据应用需要选择合理的配置。

 

系统总线基于AHB_Lite高级高性能总线协议。外设总线基于APB高级外设总线协议,通过一个转换桥连接到AHB上,这只是Cortex-M0内核的大概模式.

特点

1)能耗效率

CortexM0的运行效率很高(0.9DMIPS/MHz),能在较少的周期里完成一项任务。这意味着CortexM0可以在大部分的时间里处于休眠状态,消耗很少的能量,具有良好的能耗效率。同样较小的逻辑门数也降低了待机电流。而高效的中断控制器(NVIC)需要很小的中断开销。

2)代码密度

Cortex-M0基于Thumb-2的指令集,比用8位或者16位架构实现的代码还要少,因此用户可以选择具有较小Flash空间的芯片。可以降低系统功耗。[1]算法——通用DSP运算中最耗费资源的工作,Cortex - M4也能提供了一个1.4倍的性能得改善 。另一个例子,MP3解码在Cortex-M3需要20-25Mhz,而在Cortex-M4只需要10-12MHz。

2.  32位乘法累加(MAC) 

32位乘法累加(MAC)包括新的指令集和针对Cortex - M4硬件执行单元的优化它是能够在单周期内完成一个 32 × 32 + 64 - > 64 的操作 或 两个16 × 16 的操作。如下表列出了这个单元的计算能力。

 

 

3 .SIMD 

(Single Instruction Multiple Data,单指令多数据流)能够复制多个操作数,并把它们打包在大型寄存器的一组指令集,例:3DNow!、SSE。以同步方式,在同一时间内执行同一条指令。

推荐阅读

史海拾趣

ELECTRONIC ASSEMBLY公司的发展小趣事

在电子组装行业,品质是企业的生命线。一家名为“品质电子组装”的公司,从创立之初就坚持以品质为核心竞争力。公司引进了国际先进的生产设备和管理体系,建立了严格的质量控制体系,确保每一件产品都符合高标准、严要求。正是凭借着对品质的坚守和追求,品质电子组装赢得了客户的广泛赞誉和信赖,逐渐在行业中树立了良好的口碑。

Cramer公司的发展小趣事

随着可穿戴设备的兴起,Cramer公司迅速捕捉到了市场机遇。他们推出了一款智能手表,该手表不仅具备基本的时间显示功能,还集成了健康监测、运动追踪等多项实用功能。为了提升产品的竞争力,Cramer公司与多家科技公司合作,共同研发新技术。这款智能手表在市场上获得了广泛认可,进一步提升了Cramer公司的品牌知名度和市场份额。

DMEL Inc公司的发展小趣事

随着全球环保意识的提高,DMEL Inc积极响应绿色环保的号召。公司加大了对环保技术的研发和应用力度,推出了一系列绿色、环保的产品。同时,DMEL Inc还注重生产过程中的节能减排工作,采用了先进的生产工艺和环保材料。这些措施的实施不仅提升了公司的环保形象也为企业带来了可持续发展的动力。

BTCPower公司的发展小趣事

BTCPower公司自成立以来,一直致力于研发高效能、低能耗的电源管理芯片。经过数年的努力,公司成功开发出了一款具有革命性的芯片,能够在保证性能的同时,显著降低电子设备的能耗。这一技术突破迅速吸引了市场的关注,BTCPower的产品开始被广泛应用于智能手机、平板电脑等消费电子产品中,公司因此获得了巨大的商业成功。

ERNI公司的发展小趣事

近年来,ERNI不断加大研发投入,致力于推出更多创新产品和技术。他们不仅继续深耕连接器领域,还拓展了背板、子系统及整套电机架系统等业务。同时,ERNI还积极为客户提供高性能、自行设计的工具制造、现代器件装配和测试设备等高附加值的服务。这些举措使ERNI在电子行业中的竞争力不断增强,也为公司的未来发展奠定了坚实基础。

以上是关于电子行业里ERNI公司发展起来的相关故事概述。通过这些故事,我们可以看到ERNI如何凭借持续的创新、精湛的技术和全球化的战略在电子行业中取得了辉煌成就。

达晶微(CREATEK)公司的发展小趣事

达晶微(CREATEK)公司成立于XXXX年,由一群具有丰富半导体行业经验的专家创立。公司初期主要专注于IGBT、MOSFET、FRD、TVS、SBD等功率半导体芯片与器件的研发。凭借其对技术的深刻理解和市场需求的敏锐洞察,达晶微迅速在市场中崭露头角。

问答坊 | AI 解惑

送给单片机爱好者的礼物

送给单片机爱好者的礼物——相信大家一定用过很多LED数码管字段编码的小软件,由于单片机的IO口可以任意编程调换,在设计电路板时为了方便,调换了端口引脚顺序时,只需要在LED表编码做适当修改,就可以保证显示的字符正确!本文介绍的LED数码管在 ...…

查看全部问答>

无线收发题目素材

本帖最后由 paulhyde 于 2014-9-15 04:23 编辑 无线环境监测,估计题目。。。905程序。  …

查看全部问答>

一个软件工程师成长的六个阶段

第一阶段      此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。      第二阶段      此阶段能精通基于某种平台的接口(例如我们现在常用 ...…

查看全部问答>

volatile的作用

volatile的作用一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下 ...…

查看全部问答>

wince开机内存占用问题?

如上图,红色指示区域是wince进入桌面后程序内存的使用量。有9M多呢 这样子正常吗?启动应用都没运行呢! 哪位兄台解答一下啊? …

查看全部问答>

PXA270串口中断注册的问题~

PXA270有三个UART,全部连接MAX3073作为串口使用,奇怪的是已经用struct resource建立资源列表, 但Linux运行后使用cat /proc/interrupts显示只有第一个Full Function UART的中断,其他两个没有。 这是怎么回事呢?         ...…

查看全部问答>

wince开始菜单的源码的位置?

rt wince开始菜单的源码的位置在哪…

查看全部问答>

用SCSI_PASS_THROUGH 参数deviceiocontrol返回错误

用deviceiocontrol向设备发SCSI_PASS_THROUGH 命令,函数返回0,正常为非零,但设备已经收到命令,我要返回的结果,弄了好长时间,不明白,哪位有过类似经验,指点下,谢谢!…

查看全部问答>

对于STR711的芯片bootloader该如何修改?

实验室有一块EK-STR711的开发板(arm7tdmi),现在想做嵌入式系统,下载了u-boot-1.1.6,发现不知道该如何修改。网络上很多资料都是三星的芯片。可是我的芯片在u-boot中找不到相应的,不知道该如何下手。希望高手指点一下,万分感谢!…

查看全部问答>