Cortex M7 Instruction Set
Total Page:16
File Type:pdf, Size:1020Kb
Cortex m7 instruction set Continue ARM Cortex-M0 and Microcontroller Cortex-M3 of NXP and Silicon Labs (Energy Micro) die from microcontrol STM32F100C4T6B IC.24 MHz ARM Cortex-M3 with 16 KB of flash memory, 4 KB of RAM. Manufactured by STMicroelectronics. ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by Arm Holdings. These cores are optimized for low-cost and energy efficient microcontrollers that have been introduced into tens of billions of consumer devices. The cores consist of Cortex-M0, Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M55. The cores of Cortex-M4/M7/M33/M35P/M55 have a silicon version of FPU, and when incorporated into silicon, these nuclei are sometimes referred to as Cortex-Mx with FPU or Cortex-MxF, where x is the main number. 2004 Cortex-M3 2007 Cortex-M1 2009 Cortex-M0 2010 Cortex-M4 2012 Cortex-M0' 2014 Cortex-M7 2016 Cortex- M7 2016 Cortex-M0-M4 2014 Cortex-M7 2016 Cortex-M4 M2 3 2016 Cortex-M33 2018 Cortex-M35P 2020 Cortex-M See also: ARM Architecture and ARM Cortex-M Cores are ARM Cores, which are designed to be used in microcontrollers, ASICs, ASSPs, FPGAs, and SoCs. Cortex-M cores are commonly used as dedicated microcontrollers, but are also hidden inside SoC chips as power control controllers, i/O controllers, system controllers, touch screen controllers, smart battery controllers, and sensor controllers. While 8-bit microcontrollers have been very popular in the past, Cortex-M has slowly chipped away at the 8-bit market as prices for low-end Cortex-M chips have moved down. Cortex-M has become a popular replacement for 8-bit chips in applications that benefit from 32-bit math operations, and replacing old outdated ARM cores such as ARM7 and ARM9. Arm Holdings does not manufacture or sell processor devices based on its own designs, but rather licenses the processor architecture to interested parties. Arm offers different licensing terms, different in value and results. For all licensees, Arm provides an integrative hardware description of the ARM kernel, as well as a complete set of software development tools and the right to sell manufactured silicon containing the ARM processor. Manufacturers of integrated Silicon Settings (IDM) devices receive an ARM IP processor as a synthesized RTL (written in Verilog). In this form, they are able to optimize and expand the architectural level. This allows the manufacturer to achieve custom design goals such as higher clock speed, very low power consumption, expansion of a set of instructions (including floating point), size optimization, debugging support, etc. to determine which components were to a specific ARM processor chip, contact the data sheet manufacturer and related documentation. Some of the silicon variants for Cortex- M kernels are: timer: 24-bit system timer that extends the functionality of both the processor and the Nested Vectored Interrupt Controller (NVIC) controller. When present, it also provides an additional customizable priority for SysTick to interrupt. Although the SysTick timer is optional, it is very rare to find a Cortex-M microcontroller without it. If the Cortex-M33 microcontroller has a security extension option, it has two SysTicks, one secure and one not-safe. Bit-Band: Cards full word of memory for one bit in the bit-range region. For example, writing a pseudonymous word will set or clean the corresponding bit in a bit. This allows each individual bat in the bit-band region to be directly accessible from a word-aligned address. In particular, individual bits can be installed, cleaned, or disconnected from C/C without following a sequence of instructions for reading and changing. Although the bit range is optional, it is less common to find a Cortex-M3 microcontroller and a Cortex-M4 without it. Some cortex-M0 and Cortex-M0 microcontrollers have a bit range. Memory Protection Group (MPU): Provides support to protect memory regions by enforcing privilege and access rules. It supports up to eight different regions, each of which can be divided into eight other subregies of regions of equal size. Tightly connected memory (TCM): Low-delayed RAM, which is used to store critical procedures, data, stacks. In addition to the cache, it is usually the fastest RAM in the microcontroller. ARM Cortex-M optional components ARM Core CortexM0[2] CortexM0+[3] CortexM1[4] CortexM3[5] CortexM4[6] CortexM7[7] CortexM23[8] CortexM33[12] CortexM35P 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) Single-cycle I/O port No Optional No No No No Optional No No Bit-Band memory No[13] No[13] No* Optional Optional Optional No No No Memory ProtectionUnit (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* Security AttributionUnit (SAU) andStack Limits No No No No No No Optional(0,4,8) Optional(0,4,8) Optional* Instruction TCM No No Optional No No Optional No No No Data TCM No No Optional No No Optional No No No Instruction Cache No[14] No[14] No[14] No[14] No[14] Optional No No Optional Data Cache No[14] No[14] No[14] No[14] No[14] Optional No No No Vector Table OffsetRegister (VTOR) No optional (0.1) Optional (0.1) Optional (0.1) Optional (0.1.2) Yes (1.2) Yes (1.2) Note: Most Cortex-M3 and M4 chips have bit range and MPU. The bit-band option can be added to the M0/M0 with the Cortex-M system design kit. Note: Software Check the presence of the feature before you try to use it. Note: Limited public information is available for Cortex-M35P until a technical reference guide is issued. Guide. Silicon Variants: Data Endion: Little Andean or Large Endian. Unlike outdated ARM cores, Cortex-M is permanently fixed in silicon as one of these variants. Interruptions: 1 to 32 (M0/M0/M1), 1 to 240 (M3/M4/M7/M23), 1 to 480 (M33/M35P). Wake-up break controller: Not to. Shift Register: Not necessary. (not available for M0). Instructions get width: 16-bit only, or mostly 32-bit. User support/privilege: Not to. Reset all registers: Not to. Port I/O of one cycle: Not necessary. (M0z/M23). Debugging Access Port (DAP): No, SWD, JTAG and SWD. (optional for all Cortex-M cores) Stopping Debugging Support: Extras. Number of time points comparators: 0 to 2 (M0/M0/M1), 0 to 4 (M3/M4/M7/M23/M33/M35P). Gap point comparators: 0 to 4 (M0/M0/M1/M23), 0 to 8 (M3/M4/M7/M33/M35P). Instructions Look also: ARM Architecture - Cortex-M0/M0/M1 provides ARMv6-M architecture, while Cortex-M3 implements ARMv7-M architecture, ARMv7E-M architecture, Cortex-M23/M33/M35P architecture implements ARMv8-M architecture, and Cortex-M55 implements ARMv8-M architecture. Architectures are a binary instruction up, compatible with ARMv6-M to ARMv7-M and ARMv7E-M. Binary instructions available for Cortex-M0/Cortex-M0/Cortex-M1 can be performed unchanged on Cortex-M3/Cortex-M4/Cortex-M7. Binary instructions available for Cortex-M3 can be performed unchanged on Cortex-M4/Cortex-M7/Cortex-M33/Cortex-M35P. Cortex-M architectures only support Thumb-1 and Thumb-2 instructions sets; an outdated 32-bit set of ARM instructions is not supported. All Cortex-M cores implement a common subset of instructions, which consists of most thumb-1, some Thumb-2, including a 32-bit result. Cortex-M0/Cortex-M0/Cortex-M1/Cortex-M23 were designed to create the smallest silicon die, thus having several instructions from the Cortex-M family. Cortex-M0/M0/M1 include Thumb-1 instructions, except for new instructions (CBK, CBNS, IT) that have been added to the ARMv7-M architecture. Cortex-M0/M0/M1 include a small subset of Thumb-2 instructions (BL, DMB, DSB, ISB, MRS, MSR). Cortex-M3/M4/M7/M33/M35P have all basic Thumb-1 and Thumb-2 instructions. Cortex- M3 adds three Thumb-1 instructions, all Thumb-2 instructions, hardware integrator and arithmetic saturation instructions. The Cortex-M4 adds DSP instructions and an additional single-precision floating unit (VFPv4-SP). The Cortex-M7 adds an additional two-way FPU (VFPv5). Cortex-M23/M33 add instructions for the trust area. Arm Cortex-M Variations of Instructions Arm Core CortexM0 (CortexM0) CortexM0 (CortexM1) CortexM3 (CortexM3) CortexM4 (CortexM7) CortexM7 (CortexM23) CortexM55) АРХИТЕКТУРА ARMv6-M.9.9 ARMv6-M.9.9 ARMv7-M[10] ARMv7E-M[10] ARMv7E-M[10] ARMv8-MBaseline[15] ARMv8- MMainline[15] ARMv8-MMainline[15] Armv8.1-M Computer architecture Von Neumann Von Neumann Von Neumann Harvard Harvard Harvard Von Neumann Harvard Harvard Harvard Instruction pipeline 3 stages 2 stages 3 stages 3 stages 3 stages 6 stages 2 stages 3 stages 3 stages 4 to 5 stages Thumb-1 instructions Most Most Most Entire Entire Entire Most Entire Entire Entire Thumb-2 instructions Some Some Some Entire Entire Entire Some Entire Entire Entire Multiply instructions32x32 = 32-bit result Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Multiply instructions32x32 = 64-bit result No No No Yes Yes Yes No Yes Yes Yes Divide instructions32/32 = 32-bit quotient No No No Yes Yes Yes Yes Yes Yes Yes Saturated instructions No No No Some Yes Yes No Yes Yes Yes DSP instructions No No No No Yes Yes No Optional Optional Optional Single-Precision (SP)Floating-point instructions No No No No Optional Optional No Optional Optional Optional Double-Precision (DP)Floating-point instructions No No No No No Optional No No No Optional Half-Precisions (HP) No No No No No No No No No Optional TrustZone instructions No No No No No No Optional Optional Optional Optional Co-processor instructions No No No No No No No Optional Optional Optional Helium technology No No No No No No No No No Optional Interrupt latency(if zero-wait state RAM) 16 cycles 15 cycles 23 for NMI26 for IRQ 12 cycles 12 cycles 12 cycles 15 no security ext27 security ext TBD TBD TBD Note: The Cortex-M0 / M0+ / M1 doesn't include these 16-bit Thumb-1 instructions: CBZ, CBNZ, IT.