ARM SYSTEM IP · PRESENTATION 03

DynamIQ Shared Unit

DSU · DSU-110 · DSU-120 · 1+3+4 · shared L3 · per-core DVFS
big.LITTLE → DSU · Shared L3 slices · SCU · ACP · CHI egress · DSU-120AE
02

Why DynamIQ Replaced big.LITTLE

  • big.LITTLE (2011-17) locked you into two fixed clusters with CCI-400 coherence in between. Every cluster had its own L2. Thread migration was expensive.
  • Phones wanted 3-4 performance tiers: X-core, mid-A-core, LITTLE. Two clusters can't express that.
  • DynamIQ (2017), introduced with Cortex-A75 + A55, is a single-cluster multi-core unit that supports up to 8 heterogeneous cores.
  • Integrated Snoop Control Unit (SCU) + optional L3 cache + per-core async bridges — no external CCI needed.
  • Enables the modern 1 + 3 + 4 layout (1 X + 3 A + 4 LITTLE) inside a single cluster.

The key insight

Mobile workloads are heterogeneous — one foreground thread, several background threads, a few idle cores. Having one L3 that serves them all scales cleaner than having two isolated L2s with CCI snoops between them.

DSU is not CMN

DSU is a cluster fabric — lives inside a single cluster. CMN is a system mesh — connects multiple clusters, IO, memory. A Neoverse server has no DSU; phones/laptops have DSU (+ sometimes CMN too).

03

DSU Generations

GenerationYearMax coresMax L3Shipping in
DSU (v0)201784 MBKirin 970 (A75+A55), Snapdragon 845
DSU refresh (v1)201988 MBKirin 990, Snapdragon 855/865
DSU-1102021816 MBArmv9 flagships — Snapdragon 8 Gen 1/2, Dimensity 9200, Exynos 2200/2400
DSU-12020231432 MBCortex-X4 / A720 / A520 era — Dimensity 9300, Snapdragon 8 Gen 3, Exynos 2500
DSU-120AE20241432 MBAutomotive ASIL-B/D — Mercedes MBUX / Nvidia Drive Thor variants

DSU-120 is the current (2024) flagship for phones/laptops. It supports slice counts up to 14 cores — enough for flagship phone SoCs' 1+3+4 or 2+6+0 layouts, or Qualcomm's Snapdragon X Elite 12-core laptop SoC.

04

DSU-120 Architecture

DSU-120 cluster (1+3+4) X925 big 3 × A725 mid 4 × A520 LITTLE SCU + Snoop filter + Coherency XBAR L3 slice 0 L3 slice 1 L3 slice 2 slice 3 CHI egress → CMN mesh / NIC-700 SoC fabric → DRAM, GPU, NPU, Display
  • Up to 14 heterogeneous cores (X / A-mid / A-LITTLE) share the same L2 snoop + L3 cluster.
  • The SCU tracks which cores hold which lines — targeted snoops, not broadcast.
  • L3 is sliced, typically 4 slices × 4-8 MB = 16-32 MB total.
  • CHI egress to the SoC — NIC-700 or CMN mesh in larger systems.
  • Per-core async interfaces let each core run at its own clock + voltage.
05

L3 Cache — Structure & Policy

  • L3 is distributed across 4-8 slices. Slice count is design-time configurable.
  • Each slice is independent — own tag RAM, own arbiter. Misses go to the SCU for lookup.
  • Address → slice mapping is a hash (usually XOR of address bits). Spreads load evenly across slices at cache-line granularity.
  • L3 is typically mostly-inclusive of L2 — lines in L2 have an entry in L3 for coherence tracking, but clean unmodified data is not duplicated.
  • Per-slice power domain — idle slice can be gated off (DSU-110+). DSU-120 allows up to 75% of L3 to be gated in low-power idle.

L3 latency on DSU

Typical: L2 hit ~9 cycles; L3 hit ~25-40 cycles (depending on slice location); DRAM ~150 cycles. The 4× L2→L3 gap is absorbed by per-core L2 growing to 2-3 MB on X925.

Replacement

DSU-120 uses a pseudo-LRU with re-reference interval prediction (RRIP) — good for mixed workloads (bursty benchmark + sustained background). Arm has cited 10-15% hit-rate improvement vs LRU on typical phone traces.

06

Snoop Filter + SCU

  • The Snoop Filter tracks which cores have copies of which cache lines in their L1 / L2. Sized roughly for ~1.5× the sum of L2s.
  • When a core misses in its own L2, the SCU consults the filter:
    • If another core holds the line Unique, request is satisfied by cache-to-cache transfer (no L3 or DRAM).
    • If held Shared, the requester gets a fresh copy from L3.
  • Makes Dekker-lock style patterns efficient — two cores on the same cluster can ping-pong a cache line at L2 speed.
  • Also where LSE atomics land — single-cluster atomics run locally in the SCU with no mesh traversal.
// Producer/consumer across DSU cores

// Core 0 (X-core, producer)
str  x1, [data_ptr]         // write data
stlr w2, [flag]             // release-store

// Core 1 (A-mid, consumer)
1:  ldar w3, [flag]         // acquire-load
    cbz  w3, 1b
ldr  x4, [data_ptr]         // safe read

// Coherence flow inside DSU:
//   Core 0 owns line Unique in its L2
//   STLR broadcasts invalidate → SCU filter
//   Core 1 LDAR misses → SCU says Core 0 has it
//   → cache-to-cache transfer (~20 cycles)
//   No L3 or DRAM needed
07

Per-core DVFS

  • Each core has its own asynchronous clock bridge and potentially its own voltage rail.
  • Enables extreme asymmetry at runtime:
    • 1 X-core at 3.6 GHz — 1 V
    • 2 mid cores at 1.5 GHz — 0.7 V
    • 4 LITTLE cores at 300 MHz — 0.5 V
  • Transitions are ~20-50 µs; Android's EAS scheduler picks appropriate core + freq per task.
  • The DSU's shared L3 keeps running at a cluster clock (typically halfway between the fastest and slowest cores).
  • Per-core clock gating (ungated during WFI) completes the power toolkit.

Power numbers (Dimensity 9300)

Per-core active power (roughly): X4 @ 3.25 GHz → ~3 W; A720 @ 2.0 GHz → ~0.8 W; A520 @ 1.0 GHz → ~0.2 W. Idle: < 10 mW. These ratios justify the 1+3+4 scheduling pattern for sustained battery life.

Linux side

CPUFreq governor + EAS model each core in /sys/devices/system/cpu/cpuN/. Android's scheduler chooses the lowest-energy core capable of meeting current demand.

08

CHI Egress to the System

  • The DSU speaks AMBA 5 CHI on its egress port. Modern phone SoC glue:
    • DSU ↔ NIC-700 (AMBA 5 CHI fabric for phones)
    • Or DSU ↔ CMN mesh (in laptop / automotive SoCs)
  • Beyond the DSU, the SoC adds:
    • Memory controller (LPDDR5X, DDR5)
    • GPU (Mali / Immortalis)
    • NPU (Ethos, Apple ANE, etc.)
    • Display / video / ISP / DMA
  • CHI gives the DSU uniform coherence semantics — any GPU access can be Stage-2 translated + GP-checked + SLC-cached.
  • The ACP (Accelerator Coherency Port) on DSU allows one accelerator to share the cluster's coherence domain — historic legacy, newer designs use CHI / CXS instead.

System vs cluster coherence

The DSU's snoop filter is cluster-local. Once a line leaves the DSU via CHI, system-level coherence (CMN HN-F directory on servers, NIC + SoC-SCU on phones) takes over. Two-level hierarchy.

NIC-700 + NIC-500

On phones, the DSU typically connects to a Network Interconnect (NIC-700 for coherent, NIC-500 for non-coherent I/O). Much simpler than a full CMN mesh — fits a 1-die phone SoC.

09

DSU-120AE — Automotive

  • Designed for ASIL-B / ASIL-D automotive safety targets.
  • Adds:
    • Dual-core lockstep mode (DCLS) — two cores run identical instructions, hardware compares
    • Parity / ECC on internal busses
    • Safety-island monitoring of DSU state
    • Isolation groups within the cluster for freedom-from-interference
  • Targets: automotive ADAS (L2+ driver assist) and infotainment SoCs running Android Auto / Linux alongside a safety microcontroller.
  • Partners: NVIDIA Drive Thor variants, Mercedes MB.OS, Qualcomm Snapdragon Ride, Renesas R-Car Gen5.

Lockstep basics

Two identical cores run the same code; output is compared cycle-by-cycle. Any divergence triggers a fault. Catches transient faults (cosmic rays flipping flip-flops, metal migration). ISO 26262 requires this for the highest integrity levels.

Cost

Lockstep halves effective core count. So DSU-120AE with 14 cores in full lockstep delivers 7 cores of compute. Automotive accepts this for safety assurance; phones never would.

10

DSU PMU & Debug

  • DSU has its own PMU — independent from the per-core PMUs.
  • Events include:
    • L3 reads / writes / hits / misses
    • Snoop filter lookups + invalidations
    • Cache-to-cache transfers
    • Coherent evictions
    • CHI egress bandwidth
  • Visible via Linux perf stat -e arm_dsu_0/... on DSU-110/120.
  • Essential for debugging whether the L3 hit rate or the inter-core coherence is the bottleneck in a multi-threaded workload.

Typical workflow

Run a multi-threaded benchmark. Check per-core PMU for IPC. If IPC looks low, query DSU PMU for L3 miss rate + snoop-filter traffic. High cross-core snoop = cache line ping-pong; high miss = working set exceeds L3.

CoreSight hooks

DSU exposes CoreSight event triggers + debug-bus taps. Allows deep inspection under a JTAG-class debugger. Covered in deck 04.

11

DSU vs CMN — When to Use Which

FeatureDSU-120CMN-700 / S3
Scale1 cluster, up to 14 cores1 mesh, up to 256+ cores
TopologyStar/cross-bar inside cluster2-D mesh of tiles
Max last-level32 MB L3512+ MB SLC
Typical usePhone, laptop, single-die automotiveServer, HPC, multi-chiplet SoC
Egress protocolCHI out to SoCCHI between tiles + external links (UCIe)
MPAMCluster-scope (basic)System-scope (full v1/v2)
CompanionNIC-700 / simple SoC fabricSMMU-700, GIC-700, CXL, PCIe Gen 6

A laptop SoC might have a DSU (the CPU cluster) plus a CMN mesh (the I/O + GPU fabric). DSU-inside-CMN is common in automotive + premium laptops where you have 1-2 CPU clusters.

12

DSU Configuration — What Silicon Teams Actually Tune

  • L3 slice count (1-4, later 1-8) — trades die area for miss latency
  • L3 slice size (512 KB / 1 MB / 2 MB / 4 MB per slice)
  • Snoop filter size (typically ~1.5× sum of L2)
  • Max supported core count — 4, 8, 12, 14
  • Core mix — any mix of X / A-mid / A-LITTLE, each with its own L1/L2
  • Number of CHI egress ports — 1 for phones, 2-4 for laptops
  • ACP option — whether to include a non-CHI accelerator-coherency port
  • Clock / voltage domains — 1 or more per core, 1 for cluster L3

Phone example (Dimensity 9300)

DSU-120 with 8 cores in 1+3+4, 4 L3 slices × 3 MB = 12 MB L3, 1 CHI egress. 8 independent clock domains. Power-gating supports fully off LITTLE group for display-off idle.

Laptop example (Snapdragon X Elite)

12-core custom Oryon — not DSU, uses Qualcomm's own fabric. But the X Elite Plus and future refresh rumoured to include DSU-120 alongside custom cores for a heterogeneous mix.

13

Related Decks

Key idea to remember

DSU is the cluster fabric. It sits between cores (inside the cluster) and the SoC fabric (outside). Each CPU core is < 5 mm²; the DSU is 15-50 mm² depending on L3 size. In a phone, DSU + cores usually dominate area.

14

Lessons

  • "Why did DynamIQ replace big.LITTLE?" → big.LITTLE had two fixed clusters with CCI-400 between them. DSU is one cluster with up to 14 heterogeneous cores, shared L3, and per-core DVFS — much more flexible.
  • "What's inside a DSU?" → SCU + snoop filter + shared L3 (sliced) + coherence crossbar + per-core async bridges + CHI egress.
  • "DSU vs CMN?" → DSU is a cluster fabric (up to 14 cores, 32 MB L3). CMN is a system mesh (128+ cores, 512 MB SLC). A laptop SoC may have both; a phone SoC just has a DSU.
  • "Why split L3 into slices?" → parallel access (each slice has own tag RAM + arbiter), spreads bandwidth across slices, enables per-slice power gating at idle.
  • "What is the ACP?" → Accelerator Coherency Port — a historic non-CHI port for a single attached accelerator to share the cluster's coherence domain. Largely superseded by CHI + CXS in modern designs.
  • "Why DSU-120AE?" → automotive (ASIL-B/D) adds dual-core lockstep, parity on internal busses, safety-island monitors. Halves effective core count.
15

References

Arm Ltd. — DynamIQ Shared Unit Technical Reference Manual (DSU, DSU-110, DSU-120, DSU-120AE)
Arm Community Blog — DSU-110 / DSU-120 announcement posts (2021, 2023)
Arm Ltd. — Arm DynamIQ overview white paper (2017) — motivation + architecture
AnandTech — Andrei Frumusanu's deep-dive on DSU-110 + Dimensity 9200 scheduling (2022)
Chipsandcheese.com — measured DSU-110 L3 latency + cache-line transfer benchmarks
Linux kernel — drivers/perf/arm_dsu_pmu.c
Android EAS documentation — scheduling model for heterogeneous cores
Arm Automotive — DSU-120AE safety package overview (2024)

Presentation built with Reveal.js 4.6 · Saira Semi Condensed + Archivo + Share Tech Mono
Educational use.