Quanti Bus di Dati Ha una CPU? Analisi Architetturale
Le CPU Moderne Usano Molti Bus Specializzati — Non un Singolo "Bus di Dati"
Il concetto di un singolo "bus di dati" è superato. I processori contemporanei (x86-64, ARMv8/9, RISC-V) impiegano una gerarchia di interconnessioni—ciascuna ottimizzata per banda, latenza e funzione.
Interconnessioni Primarie On-Package / On-Die
| Bus / Interconnessione | Funzione | Larghezza / Banda (Tipica) | Esempi |
|---|---|---|---|
| Bus Memoria (DDR) | CPU ↔ DRAM (RAM di sistema) | 64-bit (+8 ECC) per canale; DDR5-5600 = 44,8 GB/s/canale | Dual-channel (128-bit), Quad-channel (256-bit), 8-ch (Server) |
| Infinity Fabric / UPI / Mesh | Core ↔ Core, Core ↔ Cache, Core ↔ I/O Die (AMD); Core ↔ Mesh (Intel Xeon) | 256–512-bit per link; 200–400 GB/s aggregate | Link CCX AMD Zen 3/4/5; Mesh/UPI Intel Xeon Scalable |
| Ring Bus / Ring Interconnect | Core ↔ LLC (Last Level Cache) ↔ System Agent (Client Intel) | 256–512-bit; ~200 GB/s | Intel Core (Skylake–Raptor Lake) |
| PCIe Lanes (Root Complex) | CPU ↔ GPU, NVMe, NIC, Chipset | x16 (128 GB/s PCIe 5.0), x4 (32 GB/s) | Consumer: 20–24 lane; HEDT/Server: 64–128 lane |
| DMI / Link Chipset x86 | CPU ↔ PCH (Chipset) → SATA, USB, LAN, PCIe extra | x4 o x8 PCIe 3.0/4.0 (4–16 GB/s) | Intel DMI 4.0 x8; AMD Promontory 21 (PCIe 4.0 x4) |
| Display / Media Engine | iGPU / Media Engine ↔ Display Controller (eDP/DP/HDMI) | Varia (interno) | Intel Xe, AMD RDNA2/3 iGPU |
Bus di Microarchitettura Interna al Core (Per Core)
- Load/Store Unit → L1D Cache: 2× 128-bit o 256-bit (porte load + store).
- L1I Cache → Fetch/Decode: 32–64 byte/ciclo.
- L2 Cache ↔ L1: 64–128 byte/ciclo (backside bus).
- Percorsi dati AVX-512 / SVE / AMX: Vettori interni 512-bit / 2048-bit.
Visione di Sistema (Semplificata)
[CPU Package] ├─ Core 0 ──┐ ├─ Core 1 ──┤ ├─ Core N ──┼── [Mesh / Ring / Infinity Fabric] ── L3 Cache / System Agent / I/O Die ├─ iGPU ────┤ └─ I/O Die ─┘ │ ├─ Canali DDR5 (Bus Memoria) ├─ Lane PCIe (GPU, SSD, NIC) └─ DMI / Link Chipset
Perché "Quanti?" è la Domanda Sbagliata
Contare i bus è meno significativo che comprendere topologia, larghezza e protocollo. Una CPU moderna ha:
- Decine di link fisici indipendenti (ogni lane PCIe = 2 coppie differenziali TX+RX).
- Multiple domini di clock (core, uncore, memoria, PCIe).
- Interconnessioni a switching di pacchetti (non bus paralleli condivisi).
In sintesi: Una CPU non ha "un bus di dati". Ha una network-on-chip (NoC) che connette link seriali ad alta velocità specializzati a memoria, I/O e altri core.