Architektura Intel Tremont odhalena: o 30 % lepší IPC, Atomy s výkonem velkých jáder

27. 10. 2019

Sdílet

Tremont je zaměřený na vysoký jednovláknový výkon, síla architektura se má blížit velkým jádrům jako Skylake, proti předchůdci je IPC lepší o 30 %.

Nejzásadnější události v procesorech byly v letošním roku (aspoň těch s instrukční sadou x86/x64) příchody 7nm architektury AMD Zen 2 a 10nm Ice Lake neboli jader Sunny Cove u Intelu. Ovšem ten teď představil ještě jednu novou procesorovou architekturu. A to jádro Tremont, které vychází z linie úsporných (a také v levných čipech používaných) Atomů. O Tremontu jsme do této chvíli skoro nic nevěděli, ale Intel nyní publikoval podrobný popis architektury těchto jader, také určených pro 10nm proces. A tyto detaily jsou velmi zajímavé. Tremont zdá se bude přinášet opravdu masivní nárůst IPC. Tím bude soutěžit s leckterým velkým jádrem a v budoucnu by mohl dát vzniknout hodně zajímavým procesorům.  

Tremont: Atom, který se výkonem blíží velkému jádru

Tremont bude nadále menší (levnější) a úspornější jádro, nikoliv náhrada za velká jádra Sunny Cove, Willow Cove, Golden Cove a následující. Ale cílem Intelu bylo výrazně jeho výkon přiblížit k velkým jádrům, aby mezi nimi a „Atomy“ nebyla taková mezera, ba dokonce aby Tremonty byly například pásmu 5–10W TDP už byly konkurenceschopné nízko taktovaným procesorům Core (tj. těch s velkými jádry).

Prezentace CPU architektury Intel Tremont 12 Tremont má být na nízkých taktech a úrovních spotřeby na jádro efektivnější než velká jádra Sunny Cove

Tremont má proto ambici výrazně zlepšit jednovláknový výkon malých jader. Toto byl podle Intelu vůbec hlavní cíl při vývoji. Lepší výkon bude dosažen změnami prakticky ve všech částech jádra oproti předchozí architektuře Goldmont+ (které jsme se podrobněji věnovali v tomto článku). Nepůjde tak o žádnou malou evoluční změnu, ale o výrazně inovovanou architekturu, dalo by se asi říct, že už se dá trošku srovnávat s rozsahem změn v Sunny Cove (Ice Lake) nebo třeba Zenu 2.

Prediktory větvení a prefetch na úrovni velkých jader

Důležité změny jsou již (nebo možná zejména) ve frontendu, tedy části jádra, která se stará o krmení samotných výpočetních jednotek a zajišťování, aby měly stále práci a včas k dispozici jádra. Intel integroval výrazně posílený prediktor větvení, který by měl být blízký svými schopnostmi tomu, co je ve velkých procesorech s jádry Sunny Cove (Ice Lake), protože z nich je návrh z velké části převzatý. Není ale úplně identický, kvůli spotřebě a ploše se v určitých věcech liší.

Prediktor pracuje s dlouhou historií a má dvě úrovně. Základní predikce L1 nestojí žádný postih ve výkonu, dokonalejší predikce L2 je dostupná se zpožděním dvou cyklů, ale postih za její použití je nižší, než v předchozích generacích Atomů. Funguje to tak, že CPU nejprve pracuje s okamžitě dostupnou predikcí L1 a když po dvou cyklech dostane od L2 lepší predikci, buď se přepne na druhou větev, pokud se L2 liší od predikce L1, nebo je predikce L1 potvrzena a pokračuje se bez přerušení.

Fetch dodává z L1 instrukční cache 32 bajtů kódu za cyklus a pracuje stylem out-of-order, může současně zpracovávat až osm požadavků, kdy potřebná část kódu není v L1 nalezena („outstanding miss“) a musí se pro ní jít do RAM nebo L2. Také prefetch (spekulativní přednačítání dat z paměti RAM, aby je mělo CPU včas k dispozici v cache) byl výrazně vylepšen, Intel opět uvádí, že je použitá technologie z velké části převzatá z velkého jádra Sunny Cove.

Šest dekodérů ve dvou klastrech

Možná úplně nejústřednější novinka je pak ve fázi dekódování instrukcí. Goldmont a Goldmont+ měly tři dekodéry, tedy schopné dekódování až tří x86 instrukcí za takt. Tremont má dekodérů rovnou šest, ale je to s nimi komplikované. Ve skutečnosti jsou jich dva klastry každý se třemi dekodéry. Tato část je vlastně zdvojená, každý klastr má vlastní rozhraní do L1 instrukční cache a svoji vlastní frontu. Slovo klastr asi hned vyvolá vzpomínky na AMD Bulldozer, ale zde nejde o to, že by jedno jádro (či modul?) poskytovalo dvě výpočetní vlákna, je stále jednovláknové.

Smysl tohoto uspořádání je efektivnější zpracovávání kódu při větvení. Každý z dekódovacích klastrů umí zpracovávat separátní sekvenci instrukcí, tedy například když se po predikci větvení opět narazí na další větvení (například subrutinu ve smyčce), dostane dekódování za tímto větvením na starosti druhý dekodér. Není jasné, zda je používáno i něco jako spekulativní multithreading, kdy začnou oba klastry dopředu dekódovat jednu z možných variant výsledku jednoho větvení (do chvíle, kdy je podmínka vyhodnocena a CPU definitivně zjistí, kterou větev má počítat). Když se procesor s více instrukčními sekvencemi kvůli větvení nepotýká, protože kód běží bez větví, je jeden z klastrů deaktivován a CPU jede jen na tři dekodéry – což by mu ale asi typicky mělo stačit.

Intel uvádí, že u jednotlivých produktů může být (při výrobě) toto spekulativní zpracování větvení deaktivováno, takže by takové procesory měly napevno jen jeden klastr s třemi dekodéry. Dokonce prý podle některých zdrojů má být možné změnou mikrokódu na úrovni mikrokódu spřáhnout oba klastry pro zpracování jednoho vlákna/posloupnosti instrukcí, takže by se jádro chovalo jako by mělo klasicky šest dekódérů. Ovšem tato konfigurace se asi nebude v praxi používat, asi by nebyla ani vyvážená vzhledem k ostatním částem pipeline, které by se staly bottleneckem. Pokud by to ale někdo chtěl u nějakého modelu vyrobeného na zakázku, možnost tu prý je (není-li to nějaký omyl).

Fáze Dispatch/Allocation po dekódovaní je schopná poslat k dalšímu zpracování čtyři instrukce za takt. Rovněž fáze retire na konci celého provádění zpracovává maximálně čtyři instrukce za takt. Zde je jinak jeden velký rozdíl proti velkým jádrům. Tremont nepoužívá uOP cache (či „L0“) pro již dekódované instrukce. Toto je zřejmě kvůli velké ploše na čipu, kterou uOP cache potřebuje. Místo toho byla právě zdvojená dekódovací fáze.

Schema jadra Intel Tremont Schéma jádra Intel Tremont

Změněné L1 a L2 cache

Standardní paměti cache však také prošly změnami. Instrukční L1 cache zůstala 32KB s 8cestnou asociativitou, ale datová L1 je zvětšená na 32 KB s osmicestnou asociativitou (u předchozích Atomů byla použitá 24KB s šesticestnou). Latence je 3 cykly, beze změn. Pro srovnání: Sunny Cove má latenci 5 cyklů, Zen/Zen 2 čtyři, Tremont má asi lepší latenci za cenu nižších dosažitelných frekvencí proti těmto větším jádrům. Rozdíl ovšem nastal v L2 cache. Zatímco Goldmont měl latenci L2 cache 17 cyklů a Goldmont+ 19 cyklů, Tremont se vrací na 17 cyklů. A změněná je kapacita. Předchozí architektura Goldmont+ měla 4MB L2 sdílenou čtyřmi jádry, která tvořila základní modul, u Tremontu mohou mít různé procesory této architektury různé kapacity. Základní modul může být jedno až čtyřjádrový, ale může mít 1,5 až 4,5 MB L2 cache, s 12 až 18cestnou asociativitou podle kapacity.

Architektura připouští i L3 cache, kterou může sdílet více modulů – například v serverové variantě – ale levné Atomy by asi mohly opět být bez L3. Jak L2, tak L3 podporují vymáhání QoS pravidel, aby například jedno jádro nemohlo vyhladovět intenzivními přístupy ostatní – toto bude podstatné pro použití jádra Tremont v procesorech pro síťovou a komunikační infrastrukturu, kam s nimi Intel počítá, mimo mobilní a PC oblast. L3 jinak může být inkluzivní i neinkluzivní.

Kromě klasických cache budou také vylepšené TLB buffery. L2 TLB má kapacitu 1024 stránek (4KB) nebo 32 stránek 2MB a 8 stránek 1GB. V Goldmontu+ měl L2 TLB kapacitu jen 512 položek.

Výpočetní jednotky

Samotné výpočetní jednotky mají podobné uspořádání jako ve velkých jádrech, jsou rozloženy mezi 10 portů. Jádro má tři ALU jako Goldmont+, dvě AGU (se schopností zpracovat dvě 16B čtení či dva 16B zápisy či jeden zápis a jedno čtení), jednu jednotku pro skoky.

Dvě ALU jsou jednodušší, třetí umí i násobení a dělení. Výpočetní jednotky ALU a JMP v celočíselné části mají své vlastní paralelní fronty reservation station (celkem čtyři), pátá je pro pro FPU a obě AGU mají dohromady jednu další (šestou).

FPU: stále bez AVX

Jednotka FPU/SIMD používá dvě výpočetní pipeline – jedna je pro floating-point sčítání, jedna pro floating-point a celočíselné násobení (a je v ní také dělička). Obě tyto pipeline obsahují 128bitovou jednotku pro akceleraci šifrování AES a 128bitovou SIMD jednotku. Třetí port/pipeline jednotky FPU je pak použitý jen pro ukládání dat. FPU část podporuje pouze 128bitové SIMD vektory (a registry), tedy instrukce SSEx, a některá další rozšíření. Atomy tedy stále nebudou podporovat operace AVX/AVX2 s jejich 256bitovými vektory, natož pak AVX-512. Jsou ale podporované nové instrukce, například GFNI (Galois Field New Instructions) a akcelerace SHA256.

Hlubší out-of-order buffery pro vyšší IPC. Skoro jako u Skylake

Podobně jako bylo jádro „rozšířeno“ (více dekodérů), budou také prohloubené out-of-order fronty, což dovoluje efektivněji využít dostupné jednotky při out-of-order vykonávání a tím zvyšuje dosažené IPC za cenu vyšší komplexity. Tremont má reorder buffer o hloubce 208 položek. To sice není takové zvětšení jako u Sunny Cove (to má 352 položek), ale je to skoro na úrovni jádra Skylake (224 položek) a víc než u Haswellu (182 položek). Kolik měl Goldmont+, bohužel nevíme, ale asi to bylo o dost méně.

Poprvé Speed Shift

Všechna jádra v modulu běží vždy na stejné frekvenci, ale uspávat je (do C-stavů) je možné separátně. Mimochodem, Tremont také bude podporovat technologii Speed Shift z architektury Skylake, jako první Atomové jádro. To znamená responzivnější, rychleji reagující turbo, jelikož je ovládané přímo procesorem, ne operačním systémem.

Pro 10nm mobilní zařízení, levné čipy i servery a infrastrukturu

Jádro Tremont je navržené pro 10nm proces a bude využité jednak v Atomech Elkhart Lake (respektive asi Celeronech/Pentiích), což budou čipy nejspíše se čtyřmi těmito jádry. Tyto čipy jsou asi ještě daleko, protože nyní místo nich Intel uvádí 14nm refresh Gemini Lake. Ovšem současně bude obsaženo také v hybridním „big.LITTLE“ Intelu Lakefield, který bude v dvoudisplejovém zařízení Microsoft Surface Neo. Tam bude plnit úlohu malého jádra pro úsporný provoz a zároveň pro maximální vícevláknový výkon, zatímco ho bude doplňovat jediné jádro Sunny Cove (z Ice Lake) pro vysoký jednovláknový výkon. Mimo spotřebitelskou oblast pak Tremont půjde do procesoru Snow Ridge pro komunikační infrastrukturu.

Nicméně konkrétní parametry pro tyto procesory zatím Intel neprobíral (leccos k Lakefieldu už je známé, ale k Elkhart Lake ne). Co však sdělil, bylo něco k opravám bezpečnostních chyb. Ty mají být na stejné úrovni jako ve 14nm procesorech Cascade Lake – kromě Meltdownu bude zalátaná například i chyba L1TF (Foreshadow), podpora pro ochrany proti Spectre v2 bude přímo v hardwaru z výroby. Pro větší bezpečnost má být podporováno i šifrování RAM (Intel Total Memory Encryption), což ovšem asi ve spotřebitelských produktech může být vypnuto.

Vzorek či pouzdro procesoru Lakefield, prosinec 2018 (Zdroj: AnandTech)

Galerie: Prezentace big.LITTLE x86 procesoru Intel Lakefield na Hot Chips

Výsledek: IPC vyšší v průměru o 30 %

Intel uvádí, že Tremont by měl proti poslednímu 14nm Atomu (architektuře Goldmont+) zlepšit jednovláknový výkon v průměru o 30 %, pokud se porovnává v benchmarku SPEC 2006 a 2017. Přičemž pro jednotlivé složky testu se nárůst pohybuje od nějakých 12 % po (výjimečně) skoro 80 %, oněch +30% je tedy průměr. Toto srovnání výkonu je údajně na stejném taktu, takže oněch +30% je čistě zlepšení IPC (výkonu na jednotku frekvence). Není to tak, že část tohoto zlepšení je dosažená tím, že Tremont dosáhne vyšších frekvencí. 30% zlepšení IPC by bylo skutečně pozoruhodné, byť se samozřejmě startuje z relativně nižšího základu.

bitcoin_skoleni

Prezentace CPU architektury Intel Tremont 11 Rozptyl nárůstu IPC v jednotlivých podtestech SPEC 2006 a 2017. Průměrný nárůst IPC je okolo 30 %, extrémy ještě vyšší

Podle odhadů by se Tremont mohl asi dotahovat na Sandy Bridge a možná někde i na Haswell, zhruba někde v tomto pásmu by možná mohlo IPC jádra skončit (rychlejší než Sandy Bridge by možná být mohlo, výkonnější než Haswell ale už asi ne). Ovšem to platí při stejné frekvenci. Tremont ale třeba kvůli cache s nízkou latencí a asi i dalším volbám při designu zaměřeným na nízkou spotřebu, bude asi dosahovat o dost nižších frekvencí, nejvyšší dosažitelné by mohly být třeba jen někde u 3,5 GHz, zatímco onen Haswell nebo Sandy Bridge šly o dost výš (nemluvě o architektuře Skylake). Analýza výkonu této architektury tedy asi bude hodně zajímavá, až se na trhu objeví.

Zdroje: Intel, WikiChip, AnandTech

Galerie: CPU architektura Intel Tremont (prezentace)