Remove ads
Group of 32-bit RISC processor cores From Wikipedia, the free encyclopedia
The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by ARM Limited. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices.[1] Though they are most often the main component of microcontroller chips, sometimes they are embedded inside other types of chips too. The Cortex-M family consists of Cortex-M0,[2] Cortex-M0+,[3] Cortex-M1,[4] Cortex-M3,[5] Cortex-M4,[6] Cortex-M7,[7] Cortex-M23,[8] Cortex-M33,[9] Cortex-M35P,[10] Cortex-M52,[11] Cortex-M55,[12] Cortex-M85.[13] A floating-point unit (FPU) option is available for Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 cores, and when included in the silicon these cores are sometimes known as "Cortex-MxF", where 'x' is the core variant.
32-bit | |
---|---|
Year | Core |
2004 | Cortex-M3 |
2007 | Cortex-M1 |
2009 | Cortex-M0 |
2010 | Cortex-M4 |
2012 | Cortex-M0+ |
2014 | Cortex-M7 |
2016 | Cortex-M23 |
2016 | Cortex-M33 |
2018 | Cortex-M35P |
2020 | Cortex-M55 |
2022 | Cortex-M85 |
2023 | Cortex-M52 |
The ARM Cortex-M family are ARM microprocessor cores that are designed for use in microcontrollers, ASICs, ASSPs, FPGAs, and SoCs. Cortex-M cores are commonly used as dedicated microcontroller chips, but also are "hidden" inside of SoC chips as power management controllers, I/O controllers, system controllers, touch screen controllers, smart battery controllers, and sensor controllers.
The main difference from Cortex-A cores is that Cortex-M cores have no memory management unit (MMU) for virtual memory, considered essential for "full-fledged" operating systems. Cortex-M programs instead run bare metal or on one of the many real-time operating systems which support a Cortex-M.
Though 8-bit microcontrollers were very popular in the past, Cortex-M has slowly been chipping away at the 8-bit market as the prices of low-end Cortex-M chips have moved downward. Cortex-M have become a popular replacements for 8-bit chips in applications that benefit from 32-bit math operations, and replacing older legacy ARM cores such as ARM7 and ARM9.
ARM Limited neither manufactures nor sells CPU devices based on its own designs, but rather licenses the processor architecture to interested parties. Arm offers a variety of licensing terms, varying in cost and deliverables. To all licensees, Arm provides an integratable hardware description of the ARM core, as well as complete software development toolset and the right to sell manufactured silicon containing the ARM CPU.
Integrated Device Manufacturers (IDM) receive the ARM Processor IP as synthesizable RTL (written in Verilog). In this form, they have the ability to perform architectural level optimizations and extensions. This allows the manufacturer to achieve custom design goals, such as higher clock speed, very low power consumption, instruction set extensions (including floating point), optimizations for size, debug support, etc. To determine which components have been included in a particular ARM CPU chip, consult the manufacturer datasheet and related documentation.
Some of the silicon options for the Cortex-M cores are:
ARM Core | Cortex M0[17] | Cortex M0+[18] | Cortex M1[19] | Cortex M3[20] | Cortex M4[21] | Cortex M7[22] | Cortex M23[23] | Cortex M33[24] | Cortex M35P[10] | Cortex M52[25] | Cortex M55[26] | Cortex M85[27] |
---|---|---|---|---|---|---|---|---|---|---|---|---|
SysTick 24-bit Timer | Optional (0,1) | Optional (0, 1) | Optional (0,1) | Yes (1) | Yes (1) | Yes (1) | Optional (0, 1, 2) | Yes (1, 2) | Yes (1, 2) | Yes (1, 2) | Yes (1, 2) | Yes (1, 2) |
Single-cycle I/O port | No | Optional | No | No | No | No | Optional | No | No | No | No | No |
Bit-Band memory | No[28] | No[28] | No* | Optional | Optional | Optional | No | No | No | No | No | No |
Memory Protection Unit (MPU) | No | Optional (0, 8) | No | Optional (0,8) | Optional (0, 8) | Optional (0, 8, 16) | Optional (0, 4, 8, 12, 16) | Optional (0, 4, 8, 12, 16) | Optional (up to 16)* | Optional (0, 4, 8, 12, 16) | Optional (0, 4, 8, 12, 16) | Optional (0, 4, 8, 12, 16) |
Security Attribution Unit (SAU) and Stack Limits | No | No | No | No | No | No | Optional (0, 4, 8) | Optional (0, 4, 8) | Optional (up to 8)* | Optional (0, 4, 8) | Optional (0, 4, 8) | Optional (0, 4, 8) |
Instruction Cache | No[29] | No[29] | No[29] | No[29] | No[29] | Optional (up to 64 KB) | No | No | Optional (up to 16 KB) | Optional (up to 64 KB) | Optional (up to 64 KB) | Optional (up to 64 KB) |
Data Cache | No[29] | No[29] | No[29] | No[29] | No[29] | Optional (up to 64 KB) | No | No | No | Optional (up to 64 KB) | Optional (up to 64 KB) | Optional (up to 64 KB) |
Instruction TCM (ITCM) Memory | No | No | Optional (up to 1 MB) | No | No | Optional (up to 16 MB) | No | No | No | Optional (up to 16 MB) | Optional (up to 16 MB) | Optional (up to 16 MB) |
Data TCM (DTCM) Memory | No | No | Optional (up to 1 MB) | No | No | Optional (up to 16 MB) | No | No | No | Optional (up to 16 MB) | Optional (up to 16 MB) | Optional (up to 16 MB) |
ECC for TCM and Cache | No | No | No | No | No | No | No | No | Optional | Optional | Optional | Optional |
Vector Table Offset Register (VTOR) | No | Optional (0,1) | Optional (0,1) | Optional (0,1) | Optional (0,1) | Optional (0,1) | Optional (0,1,2) | Yes (1,2) | Yes (1,2) | Yes (1,2) | Yes (1,2) | Yes (1,2) |
Additional silicon options:[14][15]
The Cortex-M0 / M0+ / M1 implement the ARMv6-M architecture,[14] the Cortex-M3 implements the ARMv7-M architecture,[15] the Cortex-M4 / Cortex-M7 implements the ARMv7E-M architecture,[15] the Cortex-M23 / M33 / M35P implement the ARMv8-M architecture,[30] and the Cortex-M52 / M55 / M85 implements the ARMv8.1-M architecture.[30] The architectures are binary instruction upward compatible from ARMv6-M to ARMv7-M to ARMv7E-M. Binary instructions available for the Cortex-M0 / Cortex-M0+ / Cortex-M1 can execute without modification on the Cortex-M3 / Cortex-M4 / Cortex-M7. Binary instructions available for the Cortex-M3 can execute without modification on the Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35P.[14][15] Only Thumb-1 and Thumb-2 instruction sets are supported in Cortex-M architectures; the legacy 32-bit ARM instruction set isn't supported.
All Cortex-M cores implement a common subset of instructions that consists of most Thumb-1, some Thumb-2, including a 32-bit result multiply. The Cortex-M0 / Cortex-M0+ / Cortex-M1 / Cortex-M23 were designed to create the smallest silicon die, thus having the fewest instructions of the Cortex-M family.
The Cortex-M0 / M0+ / M1 include Thumb-1 instructions, except new instructions (CBZ, CBNZ, IT) which were added in ARMv7-M architecture. The Cortex-M0 / M0+ / M1 include a minor subset of Thumb-2 instructions (BL, DMB, DSB, ISB, MRS, MSR).[14] The Cortex-M3 / M4 / M7 / M33 / M35P have all base Thumb-1 and Thumb-2 instructions. The Cortex-M3 adds three Thumb-1 instructions, all Thumb-2 instructions, hardware integer divide, and saturation arithmetic instructions. The Cortex-M4 adds DSP instructions and an optional single-precision floating-point unit (VFPv4-SP). The Cortex-M7 adds an optional double-precision FPU (VFPv5).[22][15] The Cortex-M23 / M33 / M35P / M52 / M55 / M85 add TrustZone instructions.
Arm Core | Cortex M0[17] | Cortex M0+[18] | Cortex M1[19] | Cortex M3[20] | Cortex M4[21] | Cortex M7[22] | Cortex M23[23] | Cortex M33[24] | Cortex M35P | Cortex M52[25] | Cortex M55[26] | Cortex M85[27] |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ARM architecture | ARMv6-M [14] | ARMv6-M [14] | ARMv6-M [14] | ARMv7-M [15] | ARMv7E-M [15] | ARMv7E-M [15] | ARMv8-M Baseline[30] | ARMv8-M Mainline[30] | ARMv8-M Mainline[30] | Armv8.1-M Mainline[30] | Armv8.1-M Mainline[30] | Armv8.1-M Mainline[30] |
Computer architecture | Von Neumann | Von Neumann | Von Neumann | Harvard | Harvard | Harvard | Von Neumann | Harvard | Harvard | Harvard | Harvard | Harvard |
Instruction pipeline | 3 stages | 2 stages | 3 stages | 3 stages | 3 stages | 6 stages | 2 stages | 3 stages | 3 stages | 4 stages | 4-5 stages | 7 stages |
Interrupt latency (zero wait state memory) | 16 cycles | 15 cycles | 23 for NMI, 26 for IRQ | 12 cycles | 12 cycles | 12 cycles, 14 worst case | 15 cycles, 24 secure to NS IRQ | 12 cycles, 21 secure to NS IRQ | TBD | TBD | TBD | TBD |
Thumb-1 instructions | Most | Most | Most | Entire | Entire | Entire | Most | Entire | Entire | Entire | Entire | Entire |
Thumb-2 instructions | Some | Some | Some | Entire | Entire | Entire | Some | Entire | Entire | Entire | Entire | Entire |
Multiply instructions 32×32 = 32-bit result | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Multiply instructions 32×32 = 64-bit result | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
Divide instructions 32/32 = 32-bit quotient | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Saturated math instructions | No | No | No | Some | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
DSP instructions | No | No | No | No | Yes | Yes | No | Optional | Optional | Yes | Yes | Yes |
Half-Precision (HP) floating-point instructions | No | No | No | No | No | No | No | No | No | Optional | Optional | Optional |
Single-Precision (SP) floating-point instructions | No | No | No | No | Optional | Optional | No | Optional | Optional | Optional | Optional | Optional |
Double-Precision (DP) floating-point instructions | No | No | No | No | No | Optional | No | No | No | Optional | Optional | Optional |
Helium vector instructions | No | No | No | No | No | No | No | No | No | Optional | Optional | Optional |
TrustZone security instructions | No | No | No | No | No | No | Optional | Optional | Optional | Optional | Optional | Yes |
Co-processor instructions | No | No | No | No | No | No | No | Optional | Optional | Optional | Optional | Optional |
ARM Custom Instructions (ACI) | No | No | No | No | No | No | No | Optional | No | Optional | Optional | Optional |
Pointer Authentication and Branch Target Identification (PACBTI) instructions | No | No | No | No | No | No | No | No | No | Optional | No | Optional |
Group | Instr bits | Instructions | Cortex M0, M0+, M1 | Cortex M3 | Cortex M4 | Cortex M7 | Cortex M23 | Cortex M33 | Cortex M35P | Cortex M52 | Cortex M55 | Cortex M85 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Thumb-1 | 16 | ADC, ADD, ADR, AND, ASR, B, BIC, BKPT, BLX, BX, CMN, CMP, CPS, EOR, LDM, LDR, LDRB, LDRH, LDRSB, LDRSH, LSL, LSR, MOV, MUL, MVN, NOP, ORR, POP, PUSH, REV, REV16, REVSH, ROR, RSB, SBC, SEV, STM, STR, STRB, STRH, SUB, SVC, SXTB, SXTH, TST, UXTB, UXTH, WFE, WFI, YIELD | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Thumb-1 | 16 | CBNZ, CBZ | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Thumb-1 | 16 | IT | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
Thumb-2 | 32 | BL, DMB, DSB, ISB, MRS, MSR | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Thumb-2 | 32 | SDIV, UDIV, MOVT, MOVW, B.W, LDREX, LDREXB, LDREXH, STREX, STREXB, STREXH | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Thumb-2 | 32 | ADC, ADD, ADR, AND, ASR, B, BFC, BFI, BIC, CDP, CLREX, CLZ, CMN, CMP, DBG, EOR, LDC, LDM, LDR, LDRB, LDRBT, LDRD, LDRH, LDRHT, LDRSB, LDRSBT, LDRSH, LDRSHT, LDRT, LSL, LSR, MCR, MCRR, MLA, MLS, MRC, MRRC, MUL, MVN, NOP, ORN, ORR, PLD, PLDW, PLI, POP, PUSH, RBIT, REV, REV16, REVSH, ROR, RRX, RSB, SBC, SBFX, SEV, SMLAL, SMULL, SSAT, STC, STM, STR, STRB, STRBT, STRD, STRH, STRHT, STRT, SUB, SXTB, SXTH, TBB, TBH, TEQ, TST, UBFX, UMLAL, UMULL, USAT, UXTB, UXTH, WFE, WFI, YIELD | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
DSP | 32 | PKH, QADD, QADD16, QADD8, QASX, QDADD, QDSUB, QSAX, QSUB, QSUB16, QSUB8, SADD16, SADD8, SASX, SEL, SHADD16, SHADD8, SHASX, SHSAX, SHSUB16, SHSUB8, SMLABB, SMLABT, SMLATB, SMLATT, SMLAD, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLALD, SMLAWB, SMLAWT, SMLSD, SMLSLD, SMMLA, SMMLS, SMMUL, SMUAD, SMULBB, SMULBT, SMULTT, SMULTB, SMULWT, SMULWB, SMUSD, SSAT16, SSAX, SSUB16, SSUB8, SXTAB, SXTAB16, SXTAH, SXTB16, UADD16, UADD8, UASX, UHADD16, UHADD8, UHASX, UHSAX, UHSUB16, UHSUB8, UMAAL, UQADD16, UQADD8, UQASX, UQSAX, UQSUB16, UQSUB8, USAD8, USADA8, USAT16, USAX, USUB16, USUB8, UXTAB, UXTAB16, UXTAH, UXTB16 | No | No | Yes | Yes | No | Optional | Optional | Yes | Yes | Yes |
SP Float | 32 | VABS, VADD, VCMP, VCMPE, VCVT, VCVTR, VDIV, VLDM, VLDR, VMLA, VMLS, VMOV, VMRS, VMSR, VMUL, VNEG, VNMLA, VNMLS, VNMUL, VPOP, VPUSH, VSQRT, VSTM, VSTR, VSUB | No | No | Optional | Optional | No | Optional | Optional | Optional | Optional | Optional |
DP Float | 32 | VCVTA, VCVTM, VCVTN, VCVTP, VMAXNM, VMINNM, VRINTA, VRINTM, VRINTN, VRINTP, VRINTR, VRINTX, VRINTZ, VSEL | No | No | No | Optional | No | No | No | Optional | Optional | Optional |
Acquire/Release | 32 | LDA, LDAB, LDAH, LDAEX, LDAEXB, LDAEXH, STL, STLB, STLH, STLEX, STLEXB, STLEXH | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes |
TrustZone | 16 | BLXNS, BXNS | No | No | No | No | Optional | Optional | Optional | Optional | Optional | Yes |
32 | SG, TT, TTT, TTA, TTAT | |||||||||||
Co-processor | 16 | CDP, CDP2, MCR, MCR2, MCRR, MCRR2, MRC, MRC2, MRRC, MRRC2 | No | No | No | No | No | Optional | Optional | Optional | Optional | Optional |
ACI | 32 | CX1, CX1A, CX2, CX2A, CX3, CX3A, CX1D, CX1DA, CX2D, CX2DA, CX3D, CX3DA, VCX1, VCX1A, VCX2, VCX2A, VCX3, VCX3A | No | No | No | No | No | Optional | No | Optional | Optional | Optional |
PACBTI | 32 | AUT, AUTG, BTI, BXAUT, PAC, PACBTI, PACG | No | No | No | No | No | No | No | Optional | No | Optional |
The ARM architecture for ARM Cortex-M series removed some features from older legacy cores:[14][15]
The capabilities of the 32-bit ARM instruction set is duplicated in many ways by the Thumb-1 and Thumb-2 instruction sets, but some ARM features don't have a similar feature:
The 16-bit Thumb-1 instruction set has evolved over time since it was first released in the legacy ARM7T cores with the ARMv4T architecture. New Thumb-1 instructions were added as each legacy ARMv5 / ARMv6 / ARMv6T2 architectures were released. Some 16-bit Thumb-1 instructions were removed from the Cortex-M cores:
Architecture and classification | |
---|---|
Instruction set | ARMv6-M (Thumb-1 (most), Thumb-2 (some)) |
The Cortex-M0 core is optimized for small silicon die size and use in the lowest price chips.[2]
Key features of the Cortex-M0 core are:[17]
Silicon options:
The following microcontrollers are based on the Cortex-M0 core:
The following chips have a Cortex-M0 as a secondary core:
Architecture and classification | |
---|---|
Microarchitecture | ARMv6-M |
Instruction set | Thumb-1 (most), Thumb-2 (some) |
The Cortex-M0+ is an optimized superset of the Cortex-M0. The Cortex-M0+ has complete instruction set compatibility with the Cortex-M0 thus allowing the use of the same compiler and debug tools. The Cortex-M0+ pipeline was reduced from 3 to 2 stages, which lowers the power usage and increases performance (higher average IPC due to branches taking one fewer cycle). In addition to debug features in the existing Cortex-M0, a silicon option can be added to the Cortex-M0+ called the Micro Trace Buffer (MTB) which provides a simple instruction trace buffer. The Cortex-M0+ also received Cortex-M3 and Cortex-M4 features, which can be added as silicon options, such as the memory protection unit (MPU) and the vector table relocation.[18]
Key features of the Cortex-M0+ core are:[18]
Silicon options:
The following microcontrollers are based on the Cortex-M0+ core:
The following chips have a Cortex-M0+ as a secondary core:
The smallest ARM microcontrollers are of the Cortex-M0+ type (as of 2014, smallest at 1.6 mm by 2 mm in a chip-scale package is Kinetis KL03).[32]
On 21 June 2018, the "world's smallest computer'", or computer device was announced – based on the ARM Cortex-M0+ (and including RAM and wireless transmitters and receivers based on photovoltaics) – by University of Michigan researchers at the 2018 Symposia on VLSI Technology and Circuits with the paper "A 0.04mm3 16nW Wireless and Batteryless Sensor System with Integrated Cortex-M0+ Processor and Optical Communication for Cellular Temperature Measurement." The device is one-tenth the size of IBM's previously claimed world-record-sized computer from months back in March 2018, which is smaller than a grain of salt.
Architecture and classification | |
---|---|
Microarchitecture | ARMv6-M |
Instruction set | Thumb-1 (most), Thumb-2 (some) |
The Cortex-M1 is an optimized core especially designed to be loaded into FPGA chips.[4]
Key features of the Cortex-M1 core are:[19]
Silicon options:
The following vendors support the Cortex-M1 as soft-cores on their FPGA chips:
Architecture and classification | |
---|---|
Microarchitecture | ARMv7-M |
Instruction set | Thumb-1, Thumb-2, Saturated (some), Divide |
Key features of the Cortex-M3 core are:[20][35]
Silicon options:
The following microcontrollers are based on the Cortex-M3 core:
The following chips have a Cortex-M3 as a secondary core:
The following FPGAs include a Cortex-M3 core:
The following vendors support the Cortex-M3 as soft-cores on their FPGA chips:
Architecture and classification | |
---|---|
Microarchitecture | ARMv7E-M |
Instruction set | Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (SP) |
Conceptually the Cortex-M4 is a Cortex-M3 plus DSP instructions, and optional floating-point unit (FPU). A core with an FPU is known as Cortex-M4F.
Key features of the Cortex-M4 core are:[21]
Silicon options:
The following microcontrollers are based on the Cortex-M4 core:
The following microcontrollers are based on the Cortex-M4F (M4 + FPU) core:
The following chips have either a Cortex-M4 or M4F as a secondary core:
Architecture and classification | |
---|---|
Microarchitecture | ARMv7E-M |
Instruction set | Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (SP & DP) |
The Cortex-M7 is a high-performance core with almost double the power efficiency of the older Cortex-M4.[7] It features a 6-stage superscalar pipeline with branch prediction and an optional floating-point unit capable of single-precision and optionally double-precision operations.[7][38] The instruction and data buses have been enlarged to 64-bit wide over the previous 32-bit buses. If a core contains an FPU, it is known as a Cortex-M7F, otherwise it is a Cortex-M7.
Key features of the Cortex-M7 core are:[22]
Silicon options:
The following microcontrollers are based on the Cortex-M7 core:
Architecture and classification | |
---|---|
Microarchitecture | ARMv8-M Baseline |
Instruction set | Thumb-1 (most), Thumb-2 (some), Divide, TrustZone |
The Cortex-M23 core was announced in October 2016[39] and based on the ARMv8-M architecture that was previously announced in November 2015.[40] Conceptually the Cortex-M23 is similar to a Cortex-M0+ plus integer divide instructions and TrustZone security features, and also has a 2-stage instruction pipeline.[8]
Key features of the Cortex-M23 core are:[23][39]
Silicon options:
The following microcontrollers are based on the Cortex-M23 core:
Architecture and classification | |
---|---|
Microarchitecture | ARMv8-M Mainline |
Instruction set | Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (SP), TrustZone, Co-processor |
The Cortex-M33 core was announced in October 2016[39] and based on the ARMv8-M architecture that was previously announced in November 2015.[40] Conceptually the Cortex-M33 is similar to a cross of Cortex-M4 and Cortex-M23, and also has a 3-stage instruction pipeline.[9]
Key features of the Cortex-M33 core are:[24][39]
Silicon options:
The following microcontrollers are based on the Cortex-M33 core:
The following chips have a Cortex-M33 or M33F as a secondary core:
Architecture and classification | |
---|---|
Microarchitecture | ARMv8-M Mainline |
Instruction set | Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (SP), TrustZone, Co-processor |
The Cortex-M35P core was announced in May 2018 and based on the Armv8-M architecture. It is conceptually a Cortex-M33 core with a new instruction cache, plus new tamper-resistant hardware concepts borrowed from the ARM SecurCore family, and configurable parity and ECC features.[10]
Currently, information about the Cortex-M35P is limited, because its Technical Reference Manual and Generic User Guide haven't been released yet.
The following microcontrollers are based on the Cortex-M35P core:
Architecture and classification | |
---|---|
Microarchitecture | ARMv8.1-M Mainline Helium |
Instruction set | Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (VFPv5), TrustZone, Coprocessor, MVE |
The Cortex-M52 core was announced in November 2023 and based on the Armv8.1-M architecture. Conceptually, it can be seen as a cross between the Cortex-M33 and the Cortex-M55. Key differences are that its Helium co-processor is single beat (the M55 is dual beat), and it has a 32-bit main bus similar to the M33 to ease transition of applications. It has a 4 stage instruction pipeline.[11]
Key features of the Cortex-M52 core include:
Silicon options:
The following microcontrollers are based on the Cortex M52 core
Architecture and classification | |
---|---|
Microarchitecture | ARMv8.1-M Mainline Helium |
Instruction set | Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (VFPv5), TrustZone, Coprocessor, MVE |
The Cortex-M55 core was announced in February 2020 and based on the Armv8.1-M architecture. It has a 4 or 5 stage instruction pipeline.[12]
Key features of the Cortex-M55 core include:
Silicon options:
Architecture and classification | |
---|---|
Microarchitecture | ARMv8.1-M Mainline Helium |
Instruction set | Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (VFPv5), TrustZone, Coprocessor, MVE |
The Cortex-M85 core was announced in April 2022 and based on the Armv8.1-M architecture. It has a 7-stage instruction pipeline.[13]
Silicon options:
The documentation for ARM chips is extensive. In the past, 8-bit microcontroller documentation would typically fit in a single document, but as microcontrollers have evolved, so has everything required to support them. A documentation package for ARM chips typically consists of a collection of documents from the IC manufacturer as well as the CPU core vendor (ARM Limited).
A typical top-down documentation tree is:
IC manufacturers have additional documents, such as: evaluation board user manuals, application notes, getting started guides, software library documents, errata, and more. See External links section for links to official Arm documents.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.