Detaily CPU jádra Intel Alder Lake/Golden Cove odhalené (analýza)

Architektura Golden Cove: historicky nejvýkonnější frontend u x86

Procesory Intel Alder Lake budou asi největší hardwarová událost letoška. Jsou ještě přes dva měsíce daleko, ale už jsme dostali snad nejvíc očekávané info: Intel odhalil architekturu jader těchto CPU. Ta slibuje velké navýšení výkonu – půjde o jeden z největších architektonických skoků v x86 procesorech. Například poprvé přináší šest paralelních dekodérů a další posílení IPC, čímž Intel jde podobou cestou jako účinná jádra Applu.

Už delší dobu je známé, že Alder Lake přechází na koncepci „big.LITTLE“, kombinující výkonnější a slabší (ale úspornější) jádra. Intel zveřejnil jak informace o tzv. „velkém jádru“, tak o „malém“, které mu bude asistovat pro vyšší mnohojádrový výkon (případně jako více energeticky efektivní jádro pro provoz méně náročných úloh na pozadí a podobně).

Nejdřív se ale budeme zabývat tím velkým. Intel mu nyní oficiálně říká „Performance Core“ neboli P-Core (jeho dřívější kódové označení je Golden Cove) a jeho rolí je dosáhnout co nejvyššího jednovláknového výkonu, což je parametr určující výkon mnoha běžných aplikací a potenciálně responzivnost systému.

Golden Cove by mohlo konečně uspokojit ty, kterým se zdálo, že Intel už dlouho nepřinesl něco opravdu nového a jednotlivá jádra od Sandy Bridge z roku 2011 jsou pořád podobná. Golden Cove přináší architekturu, která sice z jejich DNA vychází (tak to dnes ale chodí u všech architektur), ale jeho základní bloky byly předělány a v podstatných parametrech je výsledkem mnohem větší a silnější jádro. Výrazně rozšiřuje a prohlubuje out-of-order engine směrem k vyššímu IPC a skok ve výkonu by měl být velmi velký. Podle Intelu má dokonce jít o největší upgrade mikroarchitektury jádra za poslední dekádu, což by Golden Cove (a procesory Alder Lake) stavělo na úroveň předělu, jakým byla právě ta architektura Sandy Bridge.

Golden Cove funkčně navazuje na předchozí 10nm „velké“ jádro Sunny Cove/Willow Cove, funkčně je podobné včetně toho, že podporuje HT, tedy současné zpracování dvou vláken na jednom jádru. To dovoluje v mnohovláknovém kódu zlepšit výkon díky tomu, že se lépe využijí výpočetní prostředky jádra. Jádro by také mělo dosahovat podobné nebo vyšší frekvence, jaké jme viděli v čipech Rocekt Lake nebo Tiger Lake, používá se pro něj totiž dokonalejší výrobní proces Intel 7 (dříve označovaný jako 10nm Enhanced SuperFin).

Tip: Intel ukázal plán výrobních procesů: 7nm, 4nm, 3nm, 20A a 18A technologie – s pomocí přečíslování

Celkově Golden Cove přidává a zvětšuje většinu věcí v jádru a zjednodušeně by se architektura dala přirovnat ke koncepci, kterou sleduje Apple, včetně zvýšení počtu ALU v jádru. Ovšem ALU samotné jsou ve fungování procesoru až spíš na konci procesu, popis architektury začneme místo toho v tzv. Frontendu, kde pouť instrukcí/výpočtů začíná.

Jádro bořící mýty o fundamentálních limitech architektury x86?

Právě Frontend je možná místo nejzásadnější nebo možná nejsymboličtější změny. Golden Cove zvětšuje „šířku“ jádra, znamenající, kolik instrukcí se může paralelně zpracovat za jeden cyklus, hned zde na začátku. Od architektury Conroe/Core 2 měla jádra Intelu pořád čtyři dekodéry, a tedy dokázala zpracovávat až čtyři instrukce za takt. Sandy Bridge k tomu před víc jak deseti lety přidalo μOP cache pro již dekódované instrukce, která umožňuje dekodéry obejít, pokud jádro nalezne potřebné instrukce již v této cache (jednak to zvyšuje výkon, druhý účel je snížení spotřeby), ale jinak čtyři dekodéry zůstaly – až doteď.

U Golden Cove Intel rozšířil počet dekodérů na šest, takže jádro je odteď „6-wide“ a bude schopné dekódovat až šest instrukcí za cyklus. Širší dekódování už má jen Apple, u kterého je jádro Firestorm v čipech M1 a A14 už 8-wide, naproti tomu Zen 3 od AMD je pořád 4-wide. Schopnost Golden Cove dekódovat šest instrukcí bude asi mít některá omezení, kdy tzv. komplexní instrukce budou mít tuto propustost sníženou, protože je budou zpracovávat jen některé z dekodérů („complex decoder“), zatímco většina („simple decoder“) by mohla zpracovávat jen obyčejnější instrukce. Komplexní instrukce jsou typicky ty, které produkují více než jeden μOP v dalším zpracování.

Cenou za rozšíření dekodérů je zřejmě prodloužení pipeline o jeden přidaný stupeň, který asi pomohl toto rozšíření realizovat (protože se dekódování rozložilo do více pipelinovaných kroků). Toto je vidět na údaji, že postih za chybně odhadnuté větvení se zvýšil – ze 16 na 17 cyklů.

Architektura x86 víc než čtyři dekodéry neumožňuje…

Toto je zajímavé i proto, že v kontextu ARM procesorů Apple s velmi širokým jádrem (ale nízkými frekvencemi) se v poslední době hojně vynořovaly názory, že podobná architektura je možná jen s ARMem a u procesorů x86 nikoliv kvůli tomu, že jejich instrukce mají variabilní délku a některé další komplexnosti. Zvlášť vyhraněné názory to podávaly rovnou tak, že víc jak čtyři dekodéry u x86 jsou takřka nemožné.

Toto téma asi je tak populární i proto, že jádra x86 se od ARM liší právě ve frontendu do fáze dekódování, po ní už se rozdíly stírají. „Limitace x86“ ve fázi dekódování proto byla brána jako argument pro to, že architektura x86 nemá budoucnost a je třeba přejít na ARM. Vypadá to ovšem, že Intel teď svým použitím šesti dekodérů/6-wide v architektuře Golden Cove tuto argumentaci zkomplikuje. I když si zatím musíme počkat, než uvidíme výsledek a zda zde přece jenom ty komplikace x86 nejsou nějak relevantní, například zda 6-wide nevede k neúměrné spotřebě.

Spolu s posílením dekódování Intel rozšířil i předcházející fázi zpracování, tzv. Fetch, která čte kód (tj. proud instrukcí) z instrukční L1 cache procesoru a předává ho do dekodérů. I zde měl Intel dlouhou dobu další významné omezení, ještě od Pentia Pro četl Fetch maximálně 16 bajtů za cyklus, ne víc. Některé instrukce x86 přitom mohou být hodně dlouhé (třeba až 8 bajtů), takže toto mohla být někdy limitace i pro 4-wide jádro (který ovšem stejně jako dekódování obchází μOP cache). V Golden Cove je Fetch poprvé dvojnásobný a dodává 32 bajtů kódu za cyklus.

Je třeba říct, že podle profilování typicky výkon jádra (respektive IPC) v aplikacích typicky vůbec nedosahuje ty čtyři instrukce za cyklus. Často jsou obvyklé programy blíž v průměru jedné instrukci za cyklus než čtyřem nebo zde šesti. Je to kvůli větvení, čekání na data z paměti nebo proto, že závislosti jedné instrukce na druhou znemožňují vykonat větší počet instrukcí najednou. Jen čtyři dekodéry v předchozích CPU proto nemusely být takový drastický omezovač výkonu, jak by se mohlo zdát. Ale rozšíření této části umožní zvýšit výkon v těch případech/momentech v kódu, kde potenciál pro větší instrukční paralelismus je. Pro navýšení IPC nad určitou úroveň se k tomuto rozšíření asi jednou přikročit musí – Intel zřejmě rozhodl, že je vhodná chvíle teď.

Schéma CPU jádra Golden Cove ve verzi pro PC procesory Alder Lake (Zdroj: Intel)

μOP cache,instrukční L1 cache

Instrukční L1 cache nechal Intel stejně velkou jako mají starší jádra (nebo AMD Zen 2/3), má jen 32 KB – oproti 192KB kapacitě v jádru Apple Firestorm. Byl ale zlepšen L1 TLB (Translation Look-Aside Buffer) pro instrukce, jenž má 256 místo dřívějších 128 položek a 32 místo 16 položek pro velké (2MB/4MB) stránky paměti. Také je vylepšený prefetch do L1 instrukční cache.

Ruku v ruce s posílením dekodérů ale je posílená i μOP cache pro již dekódované instrukce. Stále totiž platí, že architektura jádra počítá s tím, že většinu času nebudou instrukce k vykonávání proudit přes dekodéry, ty mají podle Intelu typicky být 80 % času neaktivní (vypnuté) pro úsporu energie díky tomu, že se potřebné instrukce (již dekódované na μOPy) najdou místo toho v μOP cache. Předchozí jádra Intelu (nebo Zen/Zen 2 od AMD) uměla z μOP cache dodávat až šest instrukcí za cyklus, což Golden Cove rozšiřuje na 8 μOPů za cyklus (stejný počet dodává μOP cache AMD Zenu 3).

Zároveň byla také zvětšena kapacita, takže se zvyšuje šance (hit-rate), že procesor zde instrukce najde a nebude muset zapnout dekodéry a do cache se vejdou i výrazně delší smyčky kódu. Zatímco Skylake mělo kapacitu 1500 instrukcí a Sunny Cove/Willov Cove/Cypres Cove to zvýšilo na 2250, jádro Golden Cove posiluje kapacitu rovnou na 4000 (v tomto parametru bylo AMD trošku napřed, tuto kapacitu měl již Zen 2, u Zenu 3 je nezměněná).

Fronta μOP Queue vycházejících z μOP Cache byla také mírně prohloubena, má 72 místo 70 položek pro každé ze dvou vláken, které může architektura zpracovávat (Golden Cove podporuje HT neboli SMT a jedno jádro zpracovává dvě vlákna najednou). Nová by ale měla být schopnost tyto separátní fronty pro každé vlákno spojit do jedné o 144 místech, pokud procesor zpracovává jen jedno vlákno místo dvou.

Po frontě μOP Queue následuje fáze Allocation a Rename, v níž se alokují pro operace jejich pracovní registry, případně se pro eliminaci konfliktů architektonické registry přejmenovávají (substituují za jiný z fyzického souboru registrů). Také tato fáze zpracování umožňuje zpracovat šest operací (μOPů) za cyklus, zatímco předchozí architektury Intelu uměly maximálně pět. Zde je vidět, jak byly pro vyšší IPC v tomto jádru upraveny prakticky všechny fáze zpracování.

Výkon by mělo dále zlepšit posílení schopností procesoru v této fázi řešit konflikty eliminovat více instrukcí, které dále už nemusí jít do výpočetních jednotek a jsou vyřešeny již zde. V této fázi CPU provádí eliminaci MOVů (v Alder Lake by snad opět měla fungovat, zatímco v Ice/Tiger/Rocket Lake měla erratum a musela být vypnutá) a dalších instrukcí, která nevyžadují použití výpočetní jednotky. Další případ eliminovaných instrukcí jsou například operace jako XOR registru se sebou samým k jeho vynulování (protože tato operace není závislá na předchozí hodnotě registru), jejíž eliminaci už procesory umí delší dobu. Jak se přesně v tomto směru zlepšily schopnosti jádra Golden Cove, Intel ovšem neříká.

Procesor Alder Lake s osmi jádry Golden Cove a osmi úspornými jádry Gracemont, schématická ilustrace (Zdroj: Intel)

Výrazně vylepšená predikce větvení

Ještě než se podíváme na další část jádra, kde dochází k out-of-order optimalizování pořadí instrukcí a poté jejich vykonávání, je potřeba zmínit prediktor větvení, který je ve frontendu a v procesu zpracování instrukcí přichází na řadu velmi brzy.

Tato část procesoru je architektonickými týmy laděna kontinuálně, takže by měla doznávat zlepšení v každé nové generaci CPU, pokud v ní není beze změn „refreshované“ jádro z generace předchozí. V Golden Cove má však být predikce hodně vylepšená. Přesnost (úspěšnost) prediktorů je sama o sobě lepší, současně mají také ale k dispozici o hodně víc paměti, což by mělo dále predikci vylepšit, protože prediktor má k dispozici víc dat/informací. L2 Branch Target Buffer (BTB) má nově kapacitu 12 000 položek proti 5000 u předchozí generace architektury (Zen 3 by měl mít 6500).

Článek pokračuje v další kapitole.

  •  
  •  
  •  
Flattr this!

Trpí degradací čipů Raptor Lake i mobilní procesory Intel?

V poslední době jsme několikrát psali o problémech s nestabilitou projevující se nejčastěji padáním her, kterou jsou stižené procesory Intel Core 13. a 14. generace a která je možná spojená i s fyzickým degradováním jejich čipů. Vynořuje se k tomu hodně údajných informací, ale často není jasné, jak podložené jsou a zda opravdu souvisejí. V posledních dnech přišla zpráva, že mimo desktopových chybou trpí dokonce i procesory pro notebooky. Celý článok „Trpí degradací čipů Raptor Lake i mobilní procesory Intel?“ »

  •  
  •  
  •  

Potvrzeno: Procesory Raptor Lake degradují, Intel chystá opravu

Krátce poté, co se Intel oficiálně vyjádřil k zprávám, že vadami či nestabilitou procesorů Raptor Lake jsou postižené i procesory v noteboocích (což podle firmy není pravda), konečně přichází také s novými informacemi k hlavnímu problému. Totiž k široce hlášeným problémům procesorů Core 13. a 14. generace pro desktop, které jsou nestabilní ve hrách a co hůř, vykazují symptomy postupného selhávání (degradace). To je zřejmě skutečností. Celý článok „Potvrzeno: Procesory Raptor Lake degradují, Intel chystá opravu“ »

  •  
  •  
  •  

Potvrzeno: Intel vydá nové procesory na LGA 1700, bez big.LITTLE

Včera jsme psali, že Intel bude v oblasti desktopových procesorů mít příští dva roky stále jen Arrow Lake s 8 velkými a 16 efektivními jádry, protože zrušil desktopovou verzi následující 1,8nm generace Panther Lake i refresh Arrow Lake, který měl alespoň výrazně přidat na počtu jader. Ovšem zdá se, že realita je složitější. Intel totiž paralelně bude udržovat při životě socket LGA 1700 a vydá pro něj úplně nové procesory. Celý článok „Potvrzeno: Intel vydá nové procesory na LGA 1700, bez big.LITTLE“ »

  •  
  •  
  •  

One comment Pridať komentár

  1. Oprava chyby v článku: bylo špatně napsané srovnání s počtem AGU a load/store operací za cyklus u Zenu 3 (ten má jen 3 AGU a může tedy udělat jen maximálně tři operace za cyklus: tři čtení, nebo dva zápisy a jedno čtení, nebo dvě čtení a jeden zápis, kdežto Golden Cove má 5 AGU umí 3 čtení a zároveň 2 zápisy).

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *