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.
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).
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
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.
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
Feature
DSU-120
CMN-700 / S3
Scale
1 cluster, up to 14 cores
1 mesh, up to 256+ cores
Topology
Star/cross-bar inside cluster
2-D mesh of tiles
Max last-level
32 MB L3
512+ MB SLC
Typical use
Phone, laptop, single-die automotive
Server, HPC, multi-chiplet SoC
Egress protocol
CHI out to SoC
CHI between tiles + external links (UCIe)
MPAM
Cluster-scope (basic)
System-scope (full v1/v2)
Companion
NIC-700 / simple SoC fabric
SMMU-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
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.
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.
"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.
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.