Intel odhalil detaily architektury Goldmont+. Jde o „tock“, jádro je výrazně vylepšené

6

V roce 2006 s přelomovými čipy Conroe začal Intel období své historie, kdy velmi agresivně inovoval architekturu procesorů, nová jádra přicházela co dva roky. Ale kvůli opoždění 10nm procesu se tento vývoj poněkud zasekl. Intel si však nedostatek architektonické inovace nečekaně vynahradil jinde – v úsporné linii procesorů Atom. Zdá se totiž, že architektura Goldmont+ v nyní vydaných čipech Gemini Lake je nakonec přesně takovým „tockem“, jaký chybí procesorům Core.

Intel nyní vydal v optimalizačním manuálu podrobnější informace k architektuře Goldmont+ a potvrzuje v nich, že se skutečně jedná o výrazně inovované jádro, byť by označení evokovalo jen drobnou evoluci jádra Goldmont z loňského roku, které už samo bylo výrazným vylepšením proti předchozímu Silvermontu a Airmontu. Překvapivě dobrý výkon v některých uniklých benchmarcích nebyl tedy žádná náhoda, Goldmont+ skutečně má na to, aby přinesl vysoký nárůst IPC (neboli výkonu na 1 MHz).

Vypadá skoro jako „velké jádro“

Jádro Goldmont+ je totiž opět „širší“. Zatímco Silvermont (coby první z out-of-order Atomů) byl stavěn na zpracování dvou instrukcí za takt, původní Goldmont byl rozšířen na tři instrukce. Goldmont+ jde ještě dál a z části už jde o architekturu tzv. „4-issue“, tedy zpracovávající čtyři instrukce za takt. Fáze fetch (načítání instrukcí kódu) a decode sice stále chroustají jen tři instrukce za takt, ovšem dále v procesu zpracování již Goldmont+ zvládne víc – finální fáze retire zpracovává čtyři instrukce za takt a čtyři operace zvládají také výpočetní jednotky.

Schéma CPU jádra Goldmont+
Schéma CPU jádra Goldmont+

Goldmont+ obsahuje tři ALU pipeline, což měl již Goldmont+ (pro srovnání, velká jádra jako Zen nebo Skylake dnes mají čtyři). Tyto pipeline či lépe řečeno „porty“ nejsou zcela symetrické, některé složitější operace umí zpracovat jen některé porty. Například FPU má pipeline jen dvě, takže instrukce SIMD a x87 provádí jen první dva porty. Intel ale přidal další port/pipeline, na němž se nachází jednotka označená JEU. Ta slouží speciálně pro rychlé zpracování větvení v kódu, což uvolňuje ALU/FPU pipeline pro normální instrukce. Mimochodem, stran větvení by měl být vylepšen také jeho prediktor.

Rozpis schopností, kteér mají jednotlivé ALU/FPU porty. Jednotka JEU je vyhrazená pro větvení
Rozpis schopností, které mají jednotlivé ALU/FPU porty. Jednotka JEU je vyhrazená pro větvení. IEC znamená provádění v celočíselné části jádra (ALU), FPC v FPU, MEC je jednotka load/store

Zvýšení IPC by dále mělo být uskutečněno pomocí zvětšení out-of-order bufferů, tedy front, ve kterých procesor může provádět operace mimo pořadí. Obecně platí, že čím jsou tyto buffery větší, tím efektivněji může procesor běžící kód přeorganizovat a tím lépe může práci paralelně rozdělit výpočetním jednotkám. Goldmont+ by měl mít větší frontu reorder buffer a reservation station. Kromě toho má také větší buffery pro operace čtení a zápisu do paměti (které tím také může lépe zoptimalizovat). Také byla snížena latence store-to-load forwardingu, tedy techniky, kdy procesor může přeskočit čtení dat, která předtím na stejné místo zapsal a ještě je má v mezipaměti.

Již z dřívějška víme, že Goldmont+ používá 4MB L2 cache (sdílenou mezi čtyřmi jádry), zatímco Goldmont a předchozí atomová jádra měla poloviční kapacitu. Intel zvětšil také tzv. pre-decode cache druhé úrovně, která má 64KB místo 16KB. Zdá se, že minimálně u části instrukcí by mohlo jádro mít o stupeň hlubší pipeline, jelikož cena za špatně předpovězené větvení je nyní 13 cyklů typicky a v některých případech 12 cyklů, zatímco u Goldmontu byl postih vždy 12 cyklů.

Přehled inovací v jádře Goldmont+ v optimalizačním manuálu Intelu
Přehled inovací v jádře Goldmont+ v optimalizačním manuálu Intelu

Rychlá dělička, výkonnější AES

Atomy Goldmont+ mají ještě jedno zlepšení ve výpočetních jednotkách, které potěší ty, kdo šifrují a používají tyto SoC třeba v malém domácím serveru nebo NAS. Intel totiž posílil výkon v instrukcích AES-NI. A to jak celkovou propustnost, tak latenci těchto instrukcí. Jádro díky tomu bude moci šifrovat/dešifrovat větší objem dat za sekundu. Vylepšený je také výkon instrukcí dělení v FPU. Dělička je typu radix-1024, což znamená, že proti předchozí implementaci v jednom kroku vypočítá více bitů z výsledku, ovšem za cenu větších vyhledávacích tabulek. Zdá se, že tyto početní operace Goldmont+ provádí až třikrát rychleji než předchozí Atomy. Dělení s dvojitou přesností například má latenci 14 cyklů a jádro zvládá provést jedno každých 10 cyklů. Goldmont pro srovnání potřebuje na jedno takové dělení 34 cyklů.

Latence a propustnost (počet cyklů na jednu operaci) děličky v Goldmontu+ (Zdroj: David Schor)
Latence a propustnost (počet cyklů na jednu operaci) děličky v Goldmontu+ (Zdroj: David Schor)

Čipy Gemini Lake s jádry Goldmont+ jsou již oficiálně vydány, ale zatím se nedá koupit žádné zařízení, v kterém by se nacházely, a Intel ani žádné neposkytl pro recenze. Momentálně je proto těžké posoudit, o kolik procent se zvýší výkon jader Goldmont+ při stejné frekvenci. Máme zatím jen různá uniklá skóre z testů typu Geekbench, které mohou být ošidné. Zdá se ale, že se výkon nadzvedl o nezanedbatelná dvouciferná procenta a pravděpodobně by měl přímo konkurovat nejvýkonnějším jádrům ARM Cortex. S těmi je ale srovnání vždy dost ošidné kvůli nemožnosti změřit výkon v identickém kódu.

Zaryté mlčení o malých jádrech

Je zvláštní, jak málo Intel architekturu Goldmont+ prezentuje, přestože se jedná o docela zásadně vylepšenou architekturu. V tiskové zprávě ke Gemini Lake dokonce ani není jméno nové architektury nikde zmíněno. Svádí to k úvahám, zda Intel publicitu nepotlačuje proto, aby moc nevynikal fakt, že nemá novou architekturu ve své hlavní linii výkonných jader. Podle původního předpokládaného harmonogramu tick-tock by totiž nová architektura nahrazující Skylake měla touto dobou pomalu být na trhu, ale místo toho si na ni (10nm čipy Ice Lake) asi počkáme ještě zhruba rok či déle.

BGA procesor z linie Intel Atom (generace Braswell)
BGA procesor z linie Intel Atom (generace Braswell)

Nebo možná jde o to, že firma nyní na jádrech Atom nezakládá žádné mobilní čipy, ale jen lowendové Celerony a Pentia pro desktopy a notebooky. A ty nekonkurují rivalským procesorům ARM, ale hlavně Intelovým výkonnějším a dražším procesorům s velkými jádry (Kaby Lake, Coffee Lake). Tudíž je Intel možná nechce moc vychvalovat, jelikož mu případná popularita lowendových platforem „kanibalizuje“ výnosnější výrobky. Zatímco kdyby bojovaly proti čipům ARM jako před pár lety Bay Trail, asi by se jejich architekturou rád pochlubil.

Intel odhalil detaily architektury Goldmont+. Jde o „tock“, jádro je výrazně vylepšené

Ohodnoťte tento článek!
5 (100%) 1 hlas/ů

6 KOMENTÁŘE

  1. Decode width je tam 20B, teda o 4B viac ako Skylake?

    To znamená že ak sú v kóde dve 64b inštrukcie a jedna 32b tak Atom ich zhltne naraz zatiaľčo Skylake bude tretiu inštrukciu dekódovať nasledujúci takt?

  2. Inak treba si uvedomiť ešte jednu dôležitú vec, že sa stále bavíme o 14nm litografii pri 6W TDP pre N series mobilný „notebookový“ segment a max 10W TDP pre J series desktop „Mini-ITX“ segment
    • 22nm Silvermont
    • 14nm Airmont
    • 14nm Goldmont
    • 14nm Goldmont Plus

    Otázka znie či sa niektoré vylepšenia neimplementujú aj do nadchádzajúcej microarchitektúry tzv. veľkých jadier. Nechcem robiť paralelu medzi Pentiom M (Banias, Dothan) a Pentiom 4 (Netburst) => Enhanced Pentium M (Yonah) aka Coro Solo/Duo prípadne Jaguar a Bulldozer => ZEN, ale naozaj jendotka (decoder) JEU sa zdala byť fktívnjšia ako pridanie ďalšej štvrtej ALU pipeline (atď.: https://www.cnews.cz/wp-content/uploads/2017/12/Intel-Atom-Goldmont-plus-architektura.png)

    PS. pekne spracované

  3. IPC není výkon na 1 MHz, ale počet zpracovaných instrukcí za takt. Navíc je třeba rozlišovat teoretické IPC (v tomto případě 3) a průměrné (ale aplikace), které je až na výjimky značně nižší.

    Tato metrika se nedá přeložit na „výkon“ – dost záleží, co za program běží a z jakých instrukcí se skládá. Výkon se dá měřit pouze v konkrétních úlohách.

    Pak je ještě třeba dát pozor na míchání instukcí a uOps..

    „finální fáze retire zpracovává čtyři instrukce za takt a čtyři operace zvládají také výpočetní jednotky.“

    Toto jednoduše není pravda. Decode konvertuje x86 (a rozšíření) instrukce na uOps (microOps), což jsou sice také „instrukce“, ale pro interní RISC jádro a z jedné x86 instrukce typicky vzniká více uOps.

    Například z jedné instrukce ADD reg, mem vzniknou tři uOps – LOAD, ADD a STORE. S nimi se pak dále pracuje (jsou popřehazovány aby bylo jen jedno načtení a jedno uložení, atd.) a jsou vykonány ALU. Proto také nevadí, že Decode fáze zvládá „jen“ 3 instrukce a je tedy zdánlivý bottleneck.

    • No kolokviálně se to IPC používá jako ten výkon v aplikacích (tj. naměřený, ne teoretický, tak jsem to mínil tady.
      Jinak IIRC je pořád u hodně instrukcí 1 x86 = 1 uop, to load/store je tam jenom pokud jsou operandy z paměti. Když kód pracuje s registrem tak je to jenom to sčítání. To načtení/uložení do paměti (respektive cache) by ale si mělo jít do load/store pipeline, které jsou zvlášť, ale v tomhle případě na sdílených portech.