Egy RTL, minden chipre
A legtöbb processzor-architektúra egy konkrét gyártási node-ra és chipméretre van tervezve. Ha változik a node, újratervezik a chipet. A CFPU másképp működik: egyetlen paraméterezhető RTL, amelyből a chipméret és a gyártási technológia határozza meg a core számot.
A core szám a chiphez igazodik, nem fordítva.
Ez azért lehetséges, mert a CFPU 4-szintű hierarchikus architektúrája paraméterezhető: a cluster méret fix (4×4 = 16 core, fizikai optimum), de a cluster-ek, tile-ok és régiók száma állítható. Ugyanaz a Verilog kód, más paraméterekkel.
module cfpu_chip #(
parameter CORES_PER_CLUSTER = 16, // fix: 4×4 mesh
parameter CLUSTERS_PER_TILE = 12, // node-függő: 4-12
parameter TILES_PER_REGION = 12, // node-függő: 4-12
parameter REGIONS = 24, // chipméret-függő: 4-24
parameter SRAM_KB_PER_CORE = 1024 // node-függő: 16-1024
);
// 7nm, 800 mm²: 16 × 8 × 8 × 8 = 8 192 core, 256 KB/core
// 5nm, 800 mm²: 16 × 8 × 8 × 10 = 10 240 core, 256 KB/core
Miért skálázódik?
A kulcs: a SRAM dominálja a core területét (55-75%), nem a logika. Az SRAM rosszabbul skálázódik, mint a logika — ezért a tényleges core-sűrűség növekedés lassabb, mint a logika-sűrűség sugarlná. De kompenzálásként: minden node-lépésnél az SRAM-ot is növeljük.
| Node | Logika sűrűség | SRAM cella | Skálázási faktor |
|---|---|---|---|
| 130nm (Sky130) | ~2.5 MTr/mm² | ~1.0 μm² | 1× |
| 28nm | ~20 MTr/mm² | ~0.12 μm² | ~8× |
| 7nm | ~91 MTr/mm² | ~0.027 μm² | ~37× |
| 5nm | ~171 MTr/mm² | ~0.021 μm² | ~48× |
Core méret csomópontonként
A) Növekvő SRAM — gazdagabb aktor, kevesebb core
Ha a technológia fejlődésével az SRAM-ot is növeljük, minden core több aktort, nagyobb working set-et, gazdagabb programokat futtathat:
| Node | Core logika | SRAM/core | SRAM terület | Core összesen |
|---|---|---|---|---|
| 130nm | 0.80 mm² | 16 KB | 0.13 mm² | ~1.06 mm² |
| 28nm | 0.10 mm² | 64 KB | 0.06 mm² | ~0.18 mm² |
| 7nm | 0.022 mm² | 256 KB | 0.057 mm² | ~0.083 mm² |
| 5nm | 0.012 mm² | 512 KB | 0.088 mm² | ~0.103 mm² |
B) Fix 256 KB SRAM — maximális core szám
Ha az SRAM-ot 256 KB-on tartjuk minden node-on, a felszabaduló terület több core-t jelent — nagyobb párhuzamosság, több egyidejű aktor:
| Node | Core logika | SRAM/core | SRAM terület | Core összesen |
|---|---|---|---|---|
| 130nm | 0.80 mm² | 256 KB | 2.10 mm² | ~2.93 mm² |
| 28nm | 0.10 mm² | 256 KB | 0.25 mm² | ~0.37 mm² |
| 7nm | 0.022 mm² | 256 KB | 0.057 mm² | ~0.083 mm² |
| 5nm | 0.012 mm² | 256 KB | 0.044 mm² | ~0.059 mm² |
A két stratégia között a workload dönt: ha maximális párhuzamosság kell (SNN, sok kis aktor), a fix 256 KB és több core a jobb választás. Ha gazdagabb aktorok kellenek (ML inference, nagy objektumgráfok), a növekvő SRAM éri meg. A paraméterezhető RTL mindkettőt támogatja — a SRAM_KB_PER_CORE paraméter a gyártáskor állítható.
Hány core fér a chipre?
Kihasználható terület = chipméret × 0.78 (levonva: I/O pad, Seal Core, crossbar-ok, routing csatornák, perifériák).
A) Növekvő SRAM (16 KB → 512 KB)
| Node | SRAM/core | Core méret | 100 mm² | 400 mm² | 800 mm² | 1 400 mm² |
|---|---|---|---|---|---|---|
| 130nm | 16 KB | 1.06 mm² | 74 | 294 | 588 | 1 030 |
| 28nm | 64 KB | 0.18 mm² | 433 | 1 733 | 3 467 | 6 067 |
| 7nm | 256 KB | 0.083 mm² | 940 | 3 759 | 7 518 | 13 157 |
| 5nm | 512 KB | 0.103 mm² | 757 | 3 029 | 6 058 | 10 602 |
B) Fix 256 KB SRAM — maximális párhuzamosság
| Node | SRAM/core | Core méret | 100 mm² | 400 mm² | 800 mm² | 1 400 mm² |
|---|---|---|---|---|---|---|
| 130nm | 256 KB | 2.93 mm² | 27 | 107 | 213 | 373 |
| 28nm | 256 KB | 0.37 mm² | 211 | 843 | 1 686 | 2 951 |
| 7nm | 256 KB | 0.083 mm² | 940 | 3 759 | 7 518 | 13 157 |
| 5nm | 256 KB | 0.059 mm² | 1 322 | 5 288 | 10 576 | 18 508 |
Core szám (800 mm² die, fix 256 KB):
A hierarchia alkalmazkodik
A 4-szintű architektúra nem merev — a szintek száma a core számból következik:
| Core szám | Szintek | Konfiguráció |
|---|---|---|
| < 256 | 2 (mesh + 1 crossbar) | IoT, Secure Element |
| 256 – 2 000 | 3 (mesh + 2 crossbar) | Edge, mikrokontroller |
| 2 000 – 20 000 | 4 (mesh + 3 crossbar) | Számítási cél |
| 20 000+ | 4-5 | Wafer-scale |
Négy core típus + MAC Slice
A CFPU nem egyféle core-t gyárt — négy programozható core típus létezik, az ML inference-t pedig nem programozható MAC Slice-ok végzik:
| Core | ISA | FPU | GC + Obj. | SRAM | Szerep |
|---|---|---|---|---|---|
| Nano | CIL-T0 (48 opkód) | Nincs | Nincs | 4-64 KB | Spike, szenzor, egyszerű aktor |
| Actor | Teljes CIL | Nincs | Van | 64-256 KB | Aktor-natív: objektumok, GC, kivételek |
| Rich | Teljes CIL + FPU | Van | Van | 128-512 KB | FP-igényes, tudományos, teljes .NET |
| Seal | AuthCode, hash | Crypto HW | — | ~32 KB | Kód hitelesítés — 1+ / chip |
| MAC Slice | FSM (nincs CIL) | — | — | 4-256 KB | ML inference — 8×8 INT8 MAC, nem programozható |
Core szám összehasonlítás (5nm, 800 mm²)
| Core + SRAM | Node méret | Core szám |
|---|---|---|
| Nano + 4 KB | 0,017 mm² | ~47 000 |
| Actor + 64 KB | 0,032 mm² | ~25 000 |
| Rich + 256 KB | 0,071 mm² | ~11 300 |
A node méretek tartalmazzák az ajánlott L0 router területet és az L1–L3 infrastruktúra per-core részét (~0,007 mm²). A CFPU-ML chip MAC Slice-okat használ (nem programozható core-okat), chiplet architektúrában — lásd CFPU-ML-Max.
CFPU termékcsalád
| Variáns | Seal | Core-ok | Célpiac |
|---|---|---|---|
| CFPU-N | 1 Seal | Nano only | IoT, masszív SNN |
| CFPU-A | 1 Seal | Actor only | Actor cluster, stream |
| CFPU-R | 1 Seal | Rich only | ML inference, FP |
| CFPU-ML | 1 Seal | MAC Slice + Actor | ML/SNN inference (chiplet) |
| CFPU-H | 1 Seal | Actor + Nano | Heterogén supervisor+worker |
| CFPU-X | 1 Seal | Vegyes (bármely kombináció) | Alkalmazás-specifikus |
Ugyanaz az RTL, a CORE_TYPE paraméter határozza meg a gyártott core típust. Heterogén chipen egy chipen belül is több típus lehet.
* Aritmetikai projekciók +25% design marginnal. Chiplet: 85 mm² tine die (5nm), 2×9 elrendezés (18 tine + IOD, SoIC+CoWoS). RTL szimuláció vagy szilícium mérés még nem áll rendelkezésre.
Node-specifikus konfigurációk
130nm (Sky130) — az első szilícium
L0: 16 core, 4×4 mesh, 16 KB SRAM/core L1: 6 cluster, 6×6 crossbar L2: 6 tile, 6×6 crossbar + Seal Core 16 × 6 × 6 = 576 Rich Core Össz SRAM: 9 MB
Ez a „kis CFPU” — az első valódi szilícium, ahol a teljes hierarchia és a Seal Core már jelen van, csak kisebb skálán. Az RTL ugyanaz, mint a későbbi chipeken.
28nm — kereskedelmi célú
L0: 16 core, 4×4 mesh, 64 KB SRAM/core L1: 6 cluster, 6×6 crossbar L2: 6 tile, 6×6 crossbar L3: 6 régió, 6×6 crossbar + Seal Core 16 × 6 × 6 × 6 = 3 456 Rich Core Össz SRAM: 216 MB
7nm — nagy teljesítmény
L0: 16 core, 4×4 mesh, 256 KB SRAM/core L1: 8 cluster, 8×8 crossbar L2: 8 tile, 8×8 crossbar L3: 8 régió, 8×8 crossbar + Seal Core 16 × 8 × 8 × 8 = 8 192 Rich Core Össz SRAM: 2 GB
5nm — cél konfiguráció (800 mm², 256 KB SRAM)
L0: 16 core, 4×4 mesh, 256 KB SRAM/core L1: 8 cluster, 8×8 crossbar L2: 8 tile, 8×8 crossbar L3: 10 régió, 10×10 crossbar + Seal Core 16 × 8 × 8 × 10 = 10 240 Rich Core Össz SRAM: 2.5 GB (1 400 mm²-es die-on: 18 régió, 18 432 core, 4.5/9.2 GB SRAM)
A latencia állandó marad
A worst-case latencia ~85–171 ciklus tartományban mozog a node-tól, a hierarchia mélységétől és a payload mérettől függően. 5nm-en a cross-régió worst-case ~171 ciklus (~342 ns @ 500 MHz, 128B payload); tipikus kis üzenetek (~48B) ~93 ciklus (~186 ns) alatt érkeznek. A kontextus: ez versenyképes a szoftveres aktor üzenetküldéssel (Erlang/BEAM: ~0,5–2 µs).
| Node | Core szám (800 mm²) | SRAM/core | Szintek | L0 cluster méret | Worst-case latencia (128B) | Tipikus (48B) |
|---|---|---|---|---|---|---|
| 130nm | 576 | 16 KB | 2 | ~5.3 mm | ~85 cyc | ~38 cyc |
| 28nm | 3 456 | 64 KB | 3 | ~2.7 mm | ~120 cyc | ~68 cyc |
| 7nm | 8 192 | 256 KB | 4 | ~1.4 mm | ~171 cyc | ~93 cyc |
| 5nm | 10 240 | 256 KB | 4 | ~1.1 mm | ~171 cyc | ~93 cyc |
A Seal Core mindig a középen
Függetlenül a node-tól és a core számtól, a Seal Core mindig a chip geometriai közepén van — az L3 crossbar-ral egybeépítve. Ez kommunikációs topológiai döntés: a csillag középpontja minimalizálja a maximális vezetékhosszt bármelyik régióhoz, és minden cross-régió forgalom természetesen áthalad rajta — biztonsági ellenőrzés extra routing nélkül.
Minden chipváltozatban, 576 core-tól 18 432-ig, ugyanaz a hálózati architektúra: a Seal Core design-ból lát minden cross-régió forgalmat.
Nyílt forráskód
Az egész tervezési folyamat, a skálázási modell és a paraméterezhető RTL publikusan elérhető.
A CFPU nem egy chip — hanem egy chipcsalád. Egy RTL, amely a technológiával együtt növekszik, a 130nm-es első szilíciumtól az 5nm-es 18 000+ magos célkonfigurációig.