CPU

The ARM® Cortex®-M4 processor with floating-point unit (FPU) has a 32-bit instruction set (Thumb®-2 technology) that implements a superset of 16 and 32-bit instructions to maximize code density and performance.

This processor implements several features that enable energy-efficient arithmetic and high-performance signal processing including:

  • Digital signal processing (DSP) instructions
  • Single-cycle multiply and accumulate (MAC) instructions
  • Hardware divide
  • 8 and 16-bit single instruction multiple data (SIMD) instructions
  • Single-precision floating-point unit (FPU)

The ARM Cortex Microcontroller Software Interface Standard (CMSIS) hardware abstraction layer for the ARM Cortex processor series is implemented and available for the M4 CPU.

Real-time execution is highly deterministic in thread mode, to and from sleep modes, and when handling events at configurable priority levels via the Nested Vectored Interrupt Controller (NVIC).

Executing code from flash will have a wait state penalty on the nRF52 Series. An instruction cache can be enabled to minimize flash wait states when fetching instructions. For more information on cache, see Cache. The section Electrical specification shows CPU performance parameters including wait states in different modes, CPU current and efficiency, and processing power and efficiency based on the CoreMark® benchmark.

Floating point interrupt

The floating point unit (FPU) may generate exceptions when used due to e.g. overflow or underflow. These exceptions will trigger the FPU interrupt (see Instantiation). To clear the IRQ line when an exception has occurred, the relevant exception bit within the FPSCR register needs to be cleared. For more information about the FPSCR or other FPU registers, see Cortex-M4 Devices Generic User Guide.

Electrical specification

CPU performance

The CPU clock speed is 64 MHz. Current and efficiency data is taken when in System ON and the CPU is executing the CoreMark™ benchmark. It includes power regulator and clock base currents. All other blocks are IDLE.

SymbolDescriptionMin.Typ.Max.Units
WFLASH

CPU wait states, running from flash, cache disabled

02 
WFLASHCACHE

CPU wait states, running from flash, cache enabled

03 
WRAM

CPU wait states, running from RAM

0 
IDDFLASHCACHE

CPU current, running from flash, cache enabled, LDO

7.4mA
IDDFLASHCACHEDCDC

CPU current, running from flash, cache enabled, DCDC 3V

3.7mA
IDDFLASH

CPU current, running from flash, cache disabled, LDO

8.0mA
IDDFLASHDCDC

CPU current, running from flash, cache disabled, DCDC 3V

3.9mA
IDDRAM

CPU current, running from RAM, LDO

6.7mA
IDDRAMDCDC

CPU current, running from RAM, DCDC 3V

3.3mA
IDDFLASH/MHz

CPU efficiency, running from flash, cache enabled, LDO

125µA/MHz
IDDFLASHDCDC/MHz

CPU efficiency, running from flash, cache enabled, DCDC 3V

58µA/MHz
CMFLASH

CoreMark1, running from flash, cache enabled

215CoreMark
CMFLASH/MHz

CoreMark per MHz, running from flash, cache enabled

3.36CoreMark/MHz
CMFLASH/mA

CoreMark per mA, running from flash, cache enabled, DCDC 3V

58CoreMark/mA

CPU and support module configuration

The ARM® Cortex®-M4 processor has a number of CPU options and support modules implemented on the device.

Option / ModuleDescriptionImplemented
Core options
NVICNested Vector Interrupt Controller37 vectors
PRIORITIESPriority bits3
WICWakeup Interrupt ControllerNO
EndiannessMemory system endiannessLittle endian
Bit BandingBit banded memoryNO
DWTData Watchpoint and TraceYES
SysTickSystem tick timerYES
Modules
MPUMemory protection unitYES
FPUFloating point unitYES
DAPDebug Access PortYES
ETMEmbedded Trace MacrocellYES
ITMInstrumentation Trace MacrocellYES
TPIUTrace Port Interface UnitYES
ETBEmbedded Trace BufferNO
FPBFlash Patch and Breakpoint UnitYES
HTMAHB Trace MacrocellNO
1 Using IAR v6.50.1.4452 with flags --endian=little --cpu=Cortex-M4 -e --fpu=VFPv4_sp –Ohs --no_size_constraints