Cortex-R8 Overview

The Cortex-R8 processor has the highest performance in its class of real-time processors, delivering twice the performance of the Cortex-R7 processor.
  • Cortex-R8 Technical Reference Manual

    For system designers and software engineers, the Cortex-R8 manual provides information on implementing and programming Cortex-R8 based devices.

    Technical Reference Manual
  • 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.

    Programmer's Guide
  • 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.

    Software Tools for Cortex-R
Cortex-R8 Block Diagram

Highlights

Architecture ARMv7-R
Instruction Set ARM and Thumb-2. Supports DSP instructions and optional Floating-Point Unit with single-precision or double precision.
Microarchitecture 11-stage pipeline with instruction pre-fetch, branch prediction, superscalar and out of order execution, register renaming, parallel execution paths for load-store, MAC, shift-ALU, divide and floating-point. Also features a hardware divider and is binary compatible with the ARM9ARM11Cortex-R4Cortex-R5 and Cortex-R7 embedded processors.
Cache controllers Harvard memory architecture with optional integrated Instruction and Data cache controllers. Cache sizes configurable from 4 to 64KB. Cache lines are write-through.

Tightly-Coupled Memories Optional Tightly-Coupled Memory interfaces are 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). Instruction and/or data TCMs. Each TCM can be up to 1MB.
Interrupt Interface Standard interrupt, IRQ, non-maskable fast interrupt, FIQ, inputs are provided together with a fully integrated Generic Interrupt Controller (GIC) supporting complex priority-based interrupt handling. The processor includes low-latency interrupt technology that allows long multi-cycle instructions to be interrupted and restarted. Deferral of lengthy memory accesses occurs in certain circumstances.
Memory Protection Unit (MPU) Optional MPU configures attributes for up to twenty-four 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 IEEE754. There is support for two FPU options: either a single precision-only or both single and double precision. The FPU performance is optimized for both single and double precision calculations. 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 two-bit error detection for cache and/or TCM memories and all bus interfaces using Error Correcting Code (ECC). Single-bit soft errors are automatically corrected by the processor. In addition, full and flexible support for managing hard errors.
Master AMBA 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 TCMs for high speed streaming of data in and out of the processor.
Low Latency Peripheral Port (LLPP) A shared dedicated 32-bit AMBA AXI port to integrate latency-sensitive peripherals more tightly with the processor.
Fast Path Port (FPP)
An optional per core dedicated 32-bit AMBA AXI port to integrate latency-sensitive peripherals tightly with a specific core within the processor.
Accelerator Coherency Port (ACP) A 64-bit AMBA AXI slave port to enable coherency between the processor(s) and external intelligent peripherals such as DMA controllers, companion DSPs, Ethernet or Flexray interfaces.
Low latency memory port A 64-bit AMBA AXI master port designed to connect to local memory. This local memory provides many of the benefits of TCM and in addition can be slower and lower power and also easily shared between the one, two, three or four Cortex-R8 processor cores.
Up to quad-core Coherent multi-processor configurations with the cores running independently, each executing its own program with its own bus interfaces (Asymetric Multiprocessor Mode) or with a single operating system managing the cores (Symertric Multiprocessor Mode).
Dual Core Lock Step (DCLS) Redundant Cortex-R8 cores in lock-step for fault tolerant/fault detecting dependable systems.
Debug Debug Access Port is provided. Its functionality can be extended using CoreSight SoC-400.
Trace Cortex-R8 includes a CoreSight Embedded Trace Module that can be configured per core or shared between the cores in the cluster.

Key Features

Fast

The highest performing processor in its class

Reliable

Advanced data integrity features

Scalable

Performance on demand from 1 to 4 coherent cores

Real Time

Low interrupt latency with immediate event response

Characteristics

Processor area, frequency and power consumption are highly dependent on process, libraries and optimizations. The table below estimates a typical single processor implementation of the Cortex-R8 processor on mainstream low-power process technology (28nm HPM) with high-density, standard-performance cell libraries and 32 KB instruction cache and 32 KB data cache.

Cortex-R8 Single Processor 28 nm HPM
Maximum clock frequency Above 1.5 Ghz
Performance 2.50 / 2.90 / 3.77 DMIPS/MHz *
4.35 CoreMark/MHz**
Total area (Including Core+RAM+Routing) From 0.33 mm2
Efficiency From 46 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 complilation. All are with the original (K&R) v2.1 of Dhrystone.

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