嵌入式CPU架构汇总,在产品选型时,第一就要考虑的是就是CPU。本篇文章汇总当前流行的arm芯片。
ARM 历史
arm 芯片历史 [tr]架构处理器家族 [/tr]
ARM架构 (Advanced RISC Machine)
64/32位架构
64/32位架构 [tr]推出年份[td] 2011年[tr]最新架构版本[td] ARMv8-A、ARMv8.1-A、ARMv8.2-A[tr]字节序[td] 可配置大小端序(默认小端序)[tr]指令编码长度[td] AArch64/A64、AArch32/A32:32位
T32(Thumb-2):16或32位
兼容ARMv7用户空间[1][tr]扩展指令集[td] Thumb-2、NEON、Jazelle、VFPv4-D16、VFPv4[tr]通用寄存器[td] 31个64位整数寄存器[1][tr]浮点寄存器[td] 32个128位寄存器[1],用于32位和64位标量浮点数或SIMD浮点数或整数;或密码数值
32位架构(Cortex)
32位架构(Cortex) [tr]最新架构版本[td] ARMv8-R、ARMv8-M、ARMv7-A、ARMv7-R、ARMv7E-M、ARMv7-M、ARMv6-M[tr]字节序[td] 可配置大小端序(默认小端序)
但Cortex-M不能在指令运行时调整[tr]指令编码长度[td] 32位
Thumb-2:16或32位[tr]扩展指令集[td] Thumb-2、NEON、Jazelle、DSP、Saturated、FPv4-SP、FPv5[tr]通用寄存器[td] 15个32位整数寄存器
R15是程序计数器(在较老的架构设计中为26位定址)
R14作为链接寄存器(link register)[tr]浮点寄存器[td] 最多32个64位寄存器[2],SIMD/标准浮点数(可选项)
32位架构(旧有架构)
32位架构(旧有架构) [tr]最新架构版本[td] ARMv6、ARMv5、ARMv4T、ARMv3、ARMv2[tr]字节序[td] ARMv3开始为可配置大小端序(默认小端序)[tr]指令编码长度[td] 32位
Thumb:16或32位[tr]扩展指令集[td] Thumb、Jazelle[tr]通用寄存器[td] 15个32位整数寄存器
R15是程序计数器(在较老的架构设计中为26位定址)
R14作为链接寄存器(link register)
ARM CPU 模式
ARM架构指定了以下的CPU模式。在任何时刻,CPU只可处于某一种模式,但可由于外部事件(中断)或编程方式进行模式切换。
用户模式
仅非特权模式。
系统模式
仅无需例外进入的特权模式。仅以执行明确写入CPSR的模式位的指令进入。
Supervisor (svc) 模式
在CPU被重置或者SWI指令被执行时进入的特权模式。
Abort 模式
预读取中断或数据中断异常发生时进入的特权模式。
未定义模式
未定义指令异常发生时进入的特权模式。
干预模式
处理器接受一条IRQ干预时进入的特权模式。
快速干预模式
处理器接受一条IRQ干预时进入的特权模式。
Hyp 模式
armv-7a为cortex-A15处理器提供硬件虚拟化引进的管理模式。
ARM 寄存器
寄存器 R0-R7 对于所有CPU模式都是相同的,它们不会被分块。
对于所有的特权CPU模式,除了系统CPU模式之外,R13和R14都是分块的。也就是说,每个因为一个异常(exception)而可以进入模式,有其自己的R13和R14。这些寄存器通常分别包含堆栈指针和函数调用的返回地址。
寄存器,对于所有CPU模式 [tr]usrsyssvcabtundirqfiq [/tr]
R0 |
|
|
|
|
| R1 |
|
|
|
|
| R2 |
|
|
|
|
| R3 |
|
|
|
|
| R4 |
|
|
|
|
| R5 |
|
|
|
|
| R6 |
|
|
|
|
| R7 |
|
|
|
|
| R8 | R8_fiq |
|
|
|
| R9 | R9_fiq |
|
|
|
| R10 | R10_fiq |
|
|
|
| R11 | R11_fiq |
|
|
|
| R12 | R12_fiq |
|
|
|
| R13 | R13_svc | R13_abt | R13_und | R13_irq | R13_fiq | R14 | R14_svc | R14_abt | R14_und | R14_irq | R14_fiq | R15 |
|
|
|
|
| CPSR |
|
|
|
|
|
| SPSR_svc | SPSR_abt | SPSR_und | SPSR_irq | SPSR_fiq | 同名的名称:
R13 也被指为 SP(Stack Pointer)
R14 也被指为 LR(Link Register)
R15 也被指为 PC(Program Counter)
ARM A系列
ARM A [tr] Application ARM-based chips
[/tr][tr]Application
processors
(32-bit)[td]
[tr]Cortex-A5[td]
[tr]Cortex-A7[td]
- Allwinner A2x, A3x, A83T, H3, H8
- NXP i.MX7
- Broadcom VideoCore BCM2836, BCM23550
- NXP Semiconductors QorIQ LS10xx
- Leadcore LC1813, LC1860/C, LC1913, LC1960
- Marvell Armada PXA1920, 1500 mini plus
- MediaTek MT65xx
- Qualcomm Snapdragon 200, 400
[tr]Cortex-A8[td]
[tr]Cortex-A9[td]
- Actions ATM702x, ATM703x
- Altera Cyclone V, Arria V/10
- Amlogic AML8726, MX, M6x, M801, M802/S802, S812, T86x
- Apple A5, A5X
- Broadcom VideoCore BCM21xxx, BCM28xxx
- Freescale i.MX6
- HiSilicon K3V2, 910's
- InfoTM iMAPx912
- Leadcore LC1810, LC1811
- Marvell Armada 1500 mini
- MediaTek MT65xx
- Nvidia Tegra, 2, 3, 4i
- Nufront NuSmart 2816M, NS115, NS115M
- Renesas EMMA EV2, R-Car H1, RZ/A
- Rockchip RK292x, RK30xx, RK31xx
- Samsung Exynos 4 421x, 441x
- ST-Ericsson NovaThor
- Telechips TCC8803
- Texas Instruments OMAP 4
- Texas Instruments Sitara AM4xxx
- VIA WonderMedia WM88x0, 89x0
- Xilinx Zynq-7000
- ZiiLABS ZMS-20, ZMS-40
[tr]Cortex-A15[td]
[tr]Cortex-A17[td]
[tr]ARMv7-A
compatible[td]
- Apple A6, A6X, S1, S1P, S2, S3
- Broadcom Brahma-B15
- Marvell P4J
- Qualcomm Snapdragon S1, S2, S3, S4 Plus, S4 Pro, 600, 800 (Scorpion, Krait)
[tr]Others[td]
[tr]Application
processors
(64-bit)[td]
[tr]Cortex-A35[td]
[tr]Cortex-A53[td]
- Actions GT7, S900, V700
- Allwinner A64, H5, H64, R18
- Altera Stratix 10
- Amlogic S9 Family, T96x
- Broadcom BCM2837
- EZchip TILE-Mx100
- HiSilicon Kirin 620, 65x, 93x
- Marvell Armada PXA1928, Mobile PXA1908/PXA1936
- MediaTek MT673x, MT675x, MT6795, MT873x, MT8752, MT8163
- NXP ARM S32
- Qualcomm Snapdragon 41x, 42x, 43x, 61x, 62x
- Rockchip RK3328, RK3368
- Samsung Exynos 7 75xx, 78xx
- Spreadtrum SC9860/GV, SC9836
- Xilinx ZynqMP
- NXP Semiconductors QorIQ LS1088
- NXP i.MX8M
[tr]Cortex-A57[td]
[tr]Cortex-A72[td]
[tr]Cortex-A73[td]
[tr]Cortex-A75[td]
[tr]Cortex-A76[td]
[tr]ARMv8-A
compatible[td]
- Apple A7, A8, A8X, A9, A9X, A10, A10X, A11, A12
- Applied Micro X-Gene
- Cavium ThunderX, ThunderX2
- Nvidia Tegra K1 (Project Denver)
- Samsung Mongoose
- Qualcomm Kryo, Falkor
ARM M 系列
ARM M [tr]
[/tr]
|
[tr]Cortex-M0[td]
- Cypress PSoC 4000, 4100, 4100M, 4200, 4200DS, 4200L, 4200M
- Infineon XMC1000
- Nordic nRF51
- NXP LPC1100, LPC1200
- nuvoTon NuMicro
- Sonix SN32F700
- STMicroelectronics STM32 F0
- Toshiba TX00
- Vorago VA108x0
[tr]Cortex-M0+[td]
- Cypress PSoC 4000S, 4100S, 4100S+, 4100PS, 4700S, FM0+
- Holtek HT32F52000
- Microchip (Atmel) SAM C2, D0, D1, D2, DA, L2, R2, R3
- NXP LPC800, LPC11E60, LPC11U60
- NXP (Freescale) Kinetis E, EA, L, M, V1, W0
- Renesas Synergy S1
- Silicon Labs (Energy Micro) EFM32 Zero, Happy
- STMicroelectronics STM32 L0
[tr]Cortex-M1[td]
- Altera FPGAs Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
- Microsemi (Actel) FPGAs Fusion, IGLOO/e, ProASIC3L, ProASIC3/E
- Xilinx FPGAs Spartan-3, Virtex-2-3-4
[tr]Cortex-M3[td]
- Actel SmartFusion, SmartFusion 2
- Analog Devices ADuCM300
- Cypress PSoC 5000, 5000LP, FM3
- Fujitsu FM3
- Holtek HT32F
- Microchip (Atmel) SAM 3A, 3N, 3S, 3U, 3X
- NXP LPC1300, LPC1700, LPC1800
- ON Semiconductor Q32M210
- Silicon Labs Precision32
- Silicon Labs (Energy Micro) EFM32 Tiny, Gecko, Leopard, Giant
- STMicroelectronics STM32 F1, F2, L1
- Texas Instruments F28, LM3, TMS470, OMAP 4
- Toshiba TX03
[tr]Cortex-M4[td]
- Microchip (Atmel) SAM 4L, 4N, 4S
- NXP (Freescale) Kinetis K, W2
[tr]Cortex-M4F[td]
- Cypress 6200, FM4
- Infineon XMC4000
- Microchip (Atmel) SAM 4C, 4E, D5, E5, G5
- Microchip CEC1302
- Nordic nRF52
- NXP LPC4000, LPC4300
- NXP (Freescale) Kinetis K, V3, V4
- Renesas Synergy S3, S5, S7
- Silicon Labs (Energy Micro) EFM32 Wonder
- STMicroelectronics STM32 F3, F4, L4, L4+, WB
- Texas Instruments LM4F/TM4C, MSP432
- Toshiba TX04
[tr]Cortex-M7F[td]
- Microchip (Atmel) SAM E7, S7, V7
- NXP (Freescale) Kinetis KV5x
- STMicroelectronics STM32 F7, H7
[tr]Cortex-M23[td]
- Microchip (Atmel) SAM L10, L11
|
|
|
2021-10-22 10:52:58
评论
举报
|
|
|