ARM架构和ARM核区别和联系

一、架构和核
到目前为止,随着ARM公司64位处理器如Cortex A15的出现,ARM家族的架构或指令集已经发展到V8版本,下面简要列出了
ARMV1到ARMV8的发展以及处理器的典型代表。图中Architecture就是ARM架构,而Cores就是ARM核。平时我们所说的ARM7, ARM9主要是指ARM核。
从下图中可知,随着ARMv6的引入,ARM核的叫法开始发生了变化,不在是以数字递增的方式命名。实际上也是分成了三大领域:
(1)Cortex-M系列:M-Profile,即”Microcontroller” -Profile,侧重微控制器单片机方面的场合。
(2)Cortex-R系列:R-Profile,即”Real-Time”-Profile,侧重于实时系统的场合。
(3)Cortex-A系列: A-Profile,即“Application”-Profile,侧重于应用功能的场合。

另外一个需要注意的是,ARM9和ARM9E是采用了不同的架构,故ARM9系列如ARM920T、ARM922T、 ARM940T采用的是跟ARM7TDMI一样的指令集,即ARMv4指令集。
而ARM9E系列如ARM926EJ-S、ARM946E-S、ARM966E-S则是采用了ARMv5指令集。更详细的关于ARM处理器介绍可参考维基:http://en.wikipedia.org/wiki/ARMv7#32-bit_architecture
这里写图片描述
二、核介绍
ARM7微处理器系列
低功耗的32位RISC处理器,冯·诺依曼结构。极低的功耗,适合便携式产品。
具有嵌入式ICE-RT逻辑,调试开发方便。
3级流水线结构。能够提供0.9MIPS的三级流水线结构
代码密度高,兼容16位的Thumb指令集。
对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。
指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。
主频最高可达130MIPS。
主要应用领域:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。

ARM7TDMI微处理器
4种类型:
ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。
ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。
注:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。

ARM9微处理器系列
ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。
5级整数流水线,
哈佛体系结构。
支持32位ARM指令集和16位Thumb指令集。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
支持数据Cache和指令Cache,具有更高的指令和数据处理能力。
主要应用:无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数码照相机和数码摄像机。
3种类型:ARM920T、ARM922T和ARM940T。

ARM9E微处理器系列
单一处理器内核提供微控制器、DSP、Java应用系统的解决方案。
支持DSP指令集。
5级整数流水线,指令执行效率更高。
支持32位ARM指令集和16位Thumb指令集。
支持VFP9浮点处理协处理器。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
MPU支持实时操作系统。
支持数据Cache和指令Cache,
主频最高可达300MIPS。
主要应用:下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。
3种类型:ARM926EJ-S、ARM946E-S和ARM966E-S。

ARM10E微处理器系列
与同等的ARM9比较,在同样的时钟频率下,性能提高了近50%,功耗极低。
支持DSP指令集。
6级整数流水线,指令执行效率更高。
支持32位ARM指令集和16位Thumb指令集。
支持VFP10浮点处理协处理器。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
支持数据Cache和指令Cache。
主频最高可达400MIPS。
内嵌并行读/写操作部件。
主要应用:下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。
3种类型:ARM1020E、ARM1022E和ARM1026EJ-S。
SecurCore微处理器系列
专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案。
灵活的保护单元,以确保操作系统和应用数据的安全。
采用软内核技术,防止外部对其进行扫描探测。
可集成用户自己的安全特性和其他协处理器。
主要应用:对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。
4种类型:SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210。

Xscale处理器
基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。
支持16位的Thumb指令和DSP指令集。
已使用在数字移动电话、个人数字助理和网络产品等场合。
Xscale处理器是Intel目前主要推广的一款ARM微处理器

ARM11:
指令集ARMv6,8级流水线,1.25DMIPS/MHz

Cortex-A8:
指令集ARMv7-A,13级整数流水线,超标量双发射,2.0DMIPS/MHz,标配Neon,不支持多核
Scorpion:指令集ARMv7-A,高通获得指令集授权后在A8的基础上设计的。13级整数流水线,超标量双发射,部分乱序执行,2.1DMIPS/MHz,标配Neon,支持多核

Cortex-A9:
指令集ARMv7-A,8级整数流水线,超标量双发射,乱序执行,2.5DMIPS/MHz,可选配Neon/VFPv3,支持多核

Cortex-A5:
指令集ARMv7-A,8级整数流水线,1.57DMIPS/MHz,可选配Neon/VFPv3,支持多核

Cortex-A15:
指令集ARMv7-A,超标量,乱序执行,可选配Neon/VFPv4,支持多核
这里写图片描述

附: gcc-linaro-6.2.1-2016.11-x86_64_arm-eabi.tar.xz工具连编译m3和m4时的选项:

arduino_du based on cortex-m3
arm-eabi-gcc -Wp,-MD,src/.main.o.d -nostdinc -isystem /opt/gcc-linaro-6.2.1-2016.11-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.2.1/include -isystem /opt/gcc-linaro-6.2.1-2016.11-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.2.1/include-fixed -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/kernel/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/arch/arm/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/arch/arm/soc/atmel_sam3 -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/boards/arm/arduino_due -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/outdir/arduino_due/include/generated -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/outdir/arduino_due/misc/generated/sysgen -include /DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/outdir/arduino_due/include/generated/autoconf.h -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/ext/hal/cmsis/Include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/lib/libc/minimal/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/src -Isrc -DKERNEL -D__ZEPHYR__=1 -c -g -std=c99 -fno-asynchronous-unwind-tables -Wall -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -Wno-format-zero-length -Wno-main -ffreestanding -Os -fno-stack-protector -ffunction-sections -fdata-sections -mabi=aapcs -mthumb -mcpu=cortex-m3 -mthumb -march=armv7-m -Wno-unused-but-set-variable -fno-reorder-functions -fno-defer-pop -Wno-pointer-sign -fno-strict-overflow -Werror=implicit-int -D”KBUILD_STR(s)=#s” -D”KBUILD_BASENAME=KBUILD_STR(main)” -D”KBUILD_MODNAME=KBUILD_STR(main)” -c -o src/main.o /DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/src/main.c.

编译nucleo stm32f422re平台:
arm-eabi-gcc -Wp,-MD,src/.main.o.d -nostdinc -isystem /opt/gcc-linaro-6.2.1-2016.11-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.2.1/include -isystem /opt/gcc-linaro-6.2.1-2016.11-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.2.1/include-fixed -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/kernel/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/arch/arm/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/arch/arm/soc/st_stm32/stm32f4 -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/boards/arm/nucleo_f411re -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/outdir/nucleo_f411re/include/generated -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/outdir/nucleo_f411re/misc/generated/sysgen -include /DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/outdir/nucleo_f411re/include/generated/autoconf.h -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/ext/hal/cmsis/Include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/ext/hal/st/stm32cube/stm32f4xx/soc/ -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/ext/hal/st/stm32cube/stm32f4xx/drivers/include/ -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/ext/hal/st/stm32cube/stm32f4xx/drivers/include/Legacy/ -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/lib/libc/minimal/include -I/DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/src -Isrc -DKERNEL -D__ZEPHYR__=1 -c -g -std=c99 -fno-asynchronous-unwind-tables -Wall -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -Wno-format-zero-length -Wno-main -ffreestanding -DSTM32F411xE -DUSE_HAL_DRIVER -Os -fno-stack-protector -ffunction-sections -fdata-sections -mabi=aapcs -mthumb -mcpu=cortex-m4 -mthumb -march=armv7e-m -Wno-unused-but-set-variable -fno-reorder-functions -fno-defer-pop -Wno-pointer-sign -fno-strict-overflow -Werror=implicit-int -D”KBUILD_STR(s)=#s” -D”KBUILD_BASENAME=KBUILD_STR(main)” -D”KBUILD_MODNAME=KBUILD_STR(main)” -c -o src/main.o /DISK0/WorkSpace/iot/network-zephyr/zephyr/samples/hello_world/src/main.c

从zephyr方案的sdk来看,符合上表预期.

猜你喜欢

转载自blog.csdn.net/tugouxp/article/details/56011174