Professional Documents
Culture Documents
ARM Cortex-A9 MPCore
ARM Cortex-A9 MPCore
ARM Cortex-A9 MPCore
processor
Presented by-
Chris Cai (xiaocai2)
Rehana Tabassum (tabassu2)
Sam Mussmann (mussmnn2)
Background
“The architectural simplicity of ARM processors leads to
very small implementations, and small implementations
mean devices can have very low power consumption.
Implementation size, performance, and very low power
consumption are key attributes of the ARM architecture.”
ARM is RISC
• Uniform register file
• Load/store architecture
• Simple addressing
Background (3)
• The ARM Cortex-A9 processor is the high performance
choice in a family of low power, cost-sensitive devices.
http://en.wikipedia.org/wiki/ARM_Cortex-A9_MPCore#Implementations
http://en.wikipedia.org/wiki/Iphone_4s
Where is it used? (2)
• Examples:
- NVIDIA Tegra 2 (Motorola Xoom, Droid X2)
http://en.wikipedia.org/wiki/ARM_Cortex-A9_MPCore#Implementations
http://en.wikipedia.org/wiki/Motorola_Xoom
Where is it used? (3)
• Examples:
- PlayStation Vita
http://en.wikipedia.org/wiki/ARM_Cortex-A9_MPCore#Implementations
http://en.wikipedia.org/wiki/PlayStation_Vita
What are its specs?
• The Cortex A9 core:
- Gives 2.50 DMIPS/MHz/core (Dhrystone MIPS)
- Generally clocked between 800MHz and 2GHz
- Possible to run > 1GHz and < 250mW
http://arm.com/products/processors/cortex-a/cortex-a9.php?tab=Specifications
http://www.linuxfordevices.com/c/a/News/ARM-spins-multicoreenabled-Cortex-core/
Presentation Overview
• Micro-architecture
• Memory System
• Multi-core
Microarchitecture Overview
• Variable length, out of order, superscalar pipeline
– Two instructions are fetched in one cycle
– Issue up to 4 instructions per cycle into:
• Primary data processing pipeline
• Secondary data processing pipeline
• Load-store pipeline
• Compute engine (FPU/NEON) pipeline
• Speculative execution
– Supporting virtual renaming of physical registers and
removing pipelines stalls due to data dependencies
CortexA9 Microarchitecture
Rename Issue Execute Writeback
Decode
Instruction
Fetch
Memory
www.arm.com/files/pdf/armcortexa-9processors.pdf
Instruction Fetch
• Register Renaming
- Resolving data dependencies and unroll small loops
by hardware
Issue
http://www.arm.com/files/pdf/AT_-_NEON_for_Multimedia_Applications.pdf
Execute (3)
• What is NEON?
– NEON is a wide SIMD data processing architecture
• 32 registers, 64 bit wide or 16 registers, 128 bit wide
– NEON instructions perform “Packed SIMD” processing
• Registers can be considered as “vector” of same data type
• Instructions perform the same operation in all lanes
http://www.arm.com/files/pdf/AT_-_NEON_for_Multimedia_Applications.pdf
Execute (4)
• NEON Media Processing Engine supports vector
computations on:
- half-precision (16bit), single-precision (32bit), double-
precision (64bit) floating-point numbers
- 8, 16, 32 and 64 bit signed and unsigned integers
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0388i/DDI0388I_cortex_a9_r4p1_trm.pdf
Memory (2)
• Data prefetcher
– monitor cache line requests by processor and cache misses to
determine how much data to prefetch
– can prefetch up to 8 independent data streams
– prefetch and allocate data in the L1 data cache, as long as it
keeps hitting in the prefetched cache line
– When stop prefetching?
Memory Hierarchy
Cortex A9 MPcore
Accelerator
Snoop Control Unit (SCU) Coherence Port
L2 Cache
Main Memory
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0407i/DDI0407I_cortex_a9_mpcore_r4p1_trm.pdf
L1 caches
Cortex A9 MPcore
• Non-unified
CPU CPU CPU CPU - 32 bytes line length
- can be disabled independently
D$ I$ D$ I$ D$ I$ D$ I$ • 16, 32 or 64KB
• 4 - way associative
SCU ACP • support for Security Extensions
• I cache: VIPT
AXI RW
64-bit bus
AXI RW
64-bit bus • D cache: PIPT
L2 Cache - reduce number of caches flushes and refills
and save energy
Main Memory
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0407i/DDI0407I_cortex_a9_mpcore_r4p1_trm.pdf
L2 cache
Cortex A9 MPcore
L2 Cache
Main Memory
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0407i/DDI0407I_cortex_a9_mpcore_r4p1_trm.pdf
Snoop Control Unit
Cortex A9 MPcore
AXI RW AXI RW
64-bit bus 64-bit bus
L2 Cache
Main Memory
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0407i/DDI0407I_cortex_a9_mpcore_r4p1_trm.pdf
Snoop Control Unit (1)
• SCU functions :
- maintain data cache coherency
- initiate L2 memory accesses
- arbitrate between processors’ simultaneous request for L2
accesses
- manages accesses from ACP
• does not support instruction cache coherency
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0407i/DDI0407I_cortex_a9_mpcore_r4p1_trm.pdf
Accelerator Coherence Port
http://www.arm.com/files/pdf/ARMCortexA-9Processors.pdf
Multi-Core
http://www.arm.com/files/pdf/ARMCortexA-9Processors.pdf
Cache Coherence – MESI
http://en.wikipedia.org/wiki/MESI_protocol
Cache Coherence – MESI (2)
• Cache-2-Cache transfer
• Cache-2-Cache transfer
• Migratory Lines