Cortex-R4

The Arm Cortex-R4 processor is the smallest deeply embedded real-time processor based on the Armv7-R architecture.

Cortex-R4 Block Diagram.

Getting Started

The Cortex-R4 processor delivers high-performance, real-time responsiveness, reliability, and dependability with high error-resistance. It offers excellent energy efficiency and cost effectiveness for ASIC, ASSP, and MCU embedded applications.

Specifications

Architecture Armv7-R
Instruction Set Arm and Thumb-2. Supports DSP instructions optional Floating-Point Unit with single-precision.
Microarchitecture Eight-stage pipeline with instruction pre-fetch, branch prediction and selected dual-issue execution. Parallel execution paths for load-store, MAC, shift-ALU, divide and floating point. Binary compatibility with the Arm9 and Arm11 embedded processors.
Cache controllers Harvard memory architecture with optional integrated Instruction and Data cache controllers. Cache sizes are in-dependably configurable from 4 to 64 kB. Cache lines are either write-back or write-through.
Tightly-Coupled Memories Optional Tightly-Coupled Memory interfaces are used for highly deterministic or low-latency applications that may not respond well to caching ( e.g. instruction code for interrupt service routines and data that requires intense processing). One or two logical TCMs, A and B, can be used for any mix of code and data. TCM size can be up to 8 MB. TCM B has two physical ports, B0 and B1, for interleaving incoming DMA data streams.
Interrupt Interface Standard interrupt, IRQ, and non-maskable fast interrupt, FIQ and inputs are provided together with a VIC interrupt controller vector port. The GIC interrupt controller can also be used if more complex priority-based interrupt handling is required. The processor includes low-latency interrupt technology that allows long multi-cycle instructions to be interrupted and restarted. Lengthy memory accesses are also deferred in certain circumstances. Worst-case interrupt response can be as low as 20-cycles using the FIQ alone.
Memory Protection Unit (MPU) Optional MPU configures attributes for either twelve or sixteen regions, each with resolution down to 32 Bytes. Regions can overlap, and the highest numbered region has highest priority.
Floating-Point Unit (FPU) Optional FPU implements the Arm Vector Floating Point architecture VFPv3 with 16 double-precision registers, compliant with IEEE 754. The FPU performance is optimized for single-precision calculations and has (optional) full support for double precision. Operations include add, subtract, multiply, divide, multiply and accumulate, square root, conversions between fixed and floating-point, and floating-point constant instructions.
ECC Optional single-bit error correction and double-bit error detection for cache and/or TCM memories with ECC bits. Single-bit soft errors automatically corrected by the processor. ECC protection possible on all external interfaces.
Parity Optional support for parity bit error detection in caches and/or TCMs.
Master AXI bus 64-bit AMBA AXI bus master for Level-2 memory and peripheral access.
Slave AXI bus Optional 64-bit AMBA AXI bus slave port allows DMA masters to access the dual-port TCM B interface for high speed streaming of data in and out of the processor.
Dual-core A dual-core processor configuration implements a redundant Cortex-R4 CPU in lock step with offset clocks and comparison logic for fault tolerant/fault detecting dependable systems.

Configuration Synthesizable Verilog RTL with facility to configure options for synthesis.
Debug Debug Access Port is provided. Functionality can be extended with DK-R4.
Trace An interface suitable for connection to CoreSight Embedded Trace Macrocell ETM R4 is present.

Compare all Cortex-R processors

Characteristics

Cortex-R4 Single Processor 28 nm HPM
Maximum clock frequency Above 1.4 GHz
Performance 1.68 / 2.03 / 2.45 DMIPS/MHz*
3.47 CoreMark/MHz**
Total area (Including Core+RAM+Routing) From 0.21 mm2
Efficiency From 62 DMIPS/mW

* The first result abides by all of the 'ground rules' laid out in the Dhrystone documentation, the second permits inlining of functions (not just the permitted C string libraries) while the third additionally permits simultaneous multifile compilation. All are with the original (K&R) v2.1 of Dhrystone.

** CFLAGS ="--endian=little --cpu=Cortex-R4 --fpu=None -Ohs --no_size_constraints"


  • Manual containing technical information.
  • Cortex-R4 Technical Reference Manual

    In-depth technical manual for system designers, verification engineers and programmers who are using or building a Cortex-R4 based SoC.

    Read here
  • A program that is running on a desktop.
  • Cortex-R Series Programmer's Guide

    For software developers working in assembly language or C, this covers everything necessary to program Cortex-R series devices.

    Get the guide
  • a ulink, a board, a desktop.
  • Development Tools for Cortex-R Series

    DS-5 Development Studio and a range of 3rd party and open source tools support Cortex-R series software development.

    Learn more

Comparing Cortex-R Series Processors

Arm Cortex-R4 Arm Cortex-R5 Arm Cortex-R7 Arm Cortex-R8  Arm Cortex-R52
1.67 / 2.01 / 2.45 DMIPS/MHz*
3.47 CoreMark/MHz**
1.67 / 2.01 / 2.45 DMIPS/MHz*
3.47 CoreMark/MHz***
2.50 / 2.90 / 3.77 DMIPS/MHz*
4.35 CoreMark/MHz****
2.50 / 2.90 / 3.77 DMIPS/MHz*
4.62 CoreMark/MHz****
2.04 / 2.6 / 5.07 DMIPS/MHz*
4.2 CoreMarks/MHz
Lockstep configuration Lockstep configuration
Dual-core Asymmetric Multi-Processing (AMP) configuration
Lockstep configuration
Dual-core Asymmetric Multi-Processing (AMP) with QoS configuration
Dual core Symmetric Multi-Processing (SMP) configuration
Lockstep configuration 
Dual, triple or quad-core Asymmetric Multi-Processing (AMP) with QoS configuration
Dual, triple or quad-core Symmetric Multi-Processing (SMP) configuration
Lockstep configuration 
Dual, triple or quad-core Asymmetric Multi-Processing (AMP) with QoS configuration
Dual, triple or quad-core Symmetric Multi-Processing (SMP) configuration

Tightly Coupled Memory (TCM) Tightly Coupled Memory
Low Latency Peripheral Port 
Accelerator Coherency Port
Micro Snoop Control Unit (µSCU)
Tightly Coupled Memory
Low Latency Peripheral Port 
Accelerator Coherency Port
Snoop Control Unit (SCU)
Tightly Coupled Memory
Low Latency Peripheral Port
Accelerator Coherency Port
Snoop Control Unit (SCU)

Tightly Coupled Memory
Low Latency Peripheral Port
Flash Port
8-stage dual issue pipeline with instruction pre-fetch and branch prediction 8-stage dual issue pipeline with instruction pre-fetch and branch prediction 11-stage superscalar pipeline with out-of-order execution and register renaming and advanced dynamic and static branch prediction with instruction loop buffer 11-stage superscalar pipeline with out-of-order execution and register renaming and advanced dynamic and static branch prediction with instruction loop buffer
8-stage dual issue pipeline with instruction pre-fetch and branch prediction
I-Cache and D-Cache I-Cache and D-Cache I-Cache and D-Cache  I-Cache and D-Cache
I-Cache and D-Cache
Hardware divide, SIMD, DSP Hardware divide, SIMD, DSP Hardware divide, SIMD, DSP  Hardware divide, SIMD, DSP
Hardware divide, NEON
IEEE754 Double Precision FPU IEEE754 Double Precision FPU or optimized SP Floating Point Unit IEEE754 Double Precision FPU or optimized SP Floating Point Unit IEEE754 Double Precision FPU or optimized SP Floating Point Unit
IEEE754 Double Precision FPU or optimized SP Floating Point Unit
Memory Protection Unit (MPU) with 8 or 12 memory regions Memory Protection Unit (MPU) with 12 or 16 memory regions Memory Protection Unit (MPU) with 12 or 16 memory regions Memory Protection Unit (MPU) with 12, 16, 20 or 24 memory regions
Stage-1 Memory Protection Unit (MPU) with 0 or 16 memory regions
Stage-2 Memory Protection Unit (MPU) with 0 or 16 memory regions
ECC and Parity protection on L1 memories ECC and Parity protection on L1 memories and AXI bus ports ECC and Parity protection on L1 memories and AXI bus ports.
Error Management with error bank
ECC and Parity protection on L1 memories and AXI bus ports.
Error Management with error bank
ECC and Parity protection on L1 memories and AXI bus ports
Bus interconnect protection 
Vectored Interrupt Controller (VIC) Port or Generic Interrupt Controller (GIC) Vectored Interrupt Controller (VIC) or Generic Interrupt Controller (GIC) Integrated Generic Interrupt Controller (GIC) Integrated Generic Interrupt Controller (GIC)
Integrated Generic Interrupt Controller (GIC), 32-960 interrupts

* The first result abides by all of the 'ground rules' laid out in the Dhrystone documentation, the second permits inlining of functions (not just the permitted C string libraries) while the third additionally permits simultaneous multifile complilation. All are with the original (K&R) v2.1 of Dhrystone.

** CFLAGS ="--cpu cortex-r4 -O3 -Otime --fpu softvfp -Ono_inline -Ono_multifile --fpmode=fast --loop_optimization_level=2"

*** CFLAGS ="--cpu cortex-r5 -O3 -Otime --fpu softvfp -Ono_inline -Ono_multifile --fpmode=fast --loop_optimization_level=2"

**** CFLAGS ="--cpu cortex-r5f -O3 -Otime -Ono_inline -Ono_multifile --fpmode=fast --loop_optimization_level=2"

Cortex-R series processors are all binary compatible, enabling software reuse and a seamless progression from one Cortex-R processor to another as functionality and/or additional processing power is required.

11-stage superscalar pipeline with out-of-order execution and register renaming and advanced dynamic and static branch prediction with instruction loop buffer
Hardware divide, SIMD, DSP

Get Support

 

Arm Support

Arm training courses and on-site system-design advisory services enable licensees to efficiently integrate the Cortex-R4 processor into their design to realize maximum system performance with lowest risk and fastest time-to-market.

Arm training courses  Arm Design Reviews  Open a support case

Community Blogs

Community Forums

Not answered gicv3 aarch32 icc_hsre 0 votes 6 views 0 replies Started 8 hours ago by PJ Nee Answer this
Suggested answer NVIC_EnableIRQ : enables only one interrupt at a time? 0 votes 34 views 3 replies Latest 9 hours ago by Andy Neil Answer this
Suggested answer Is there a built-in ARM assembly instruction for the following problem?
  • MDK-Arm
  • Arm Assembly Language (ASM)
0 votes 24 views 1 replies Latest 9 hours ago by Andy Neil Answer this
Suggested answer Is it possible to get keyboard input into an ARM Assembly program?
  • MDK-Arm
  • Keil Cortex-M Eval Boards
  • Keil
0 votes 20 views 1 replies Latest 9 hours ago by Andy Neil Answer this
Suggested answer ARMv8 memory ordering
  • Cortex-A53
  • Armv8-A
0 votes 1030 views 6 replies Latest 10 hours ago by roffelsen Answer this
Not answered Issue with synthesizing Cortex-M0 memory Verilog code 0 votes 12 views 0 replies Started 11 hours ago by N5 Sensors Answer this
Not answered gicv3 aarch32 icc_hsre Started 8 hours ago by PJ Nee 0 replies 6 views
Suggested answer NVIC_EnableIRQ : enables only one interrupt at a time? Latest 9 hours ago by Andy Neil 3 replies 34 views
Suggested answer Is there a built-in ARM assembly instruction for the following problem? Latest 9 hours ago by Andy Neil 1 replies 24 views
Suggested answer Is it possible to get keyboard input into an ARM Assembly program? Latest 9 hours ago by Andy Neil 1 replies 20 views
Suggested answer ARMv8 memory ordering Latest 10 hours ago by roffelsen 6 replies 1030 views
Not answered Issue with synthesizing Cortex-M0 memory Verilog code Started 11 hours ago by N5 Sensors 0 replies 12 views