Rechercher dans ce blog

Monday, August 23, 2021

Performance Core procesosorů Alder Lake: rozbor architektury - Cnews.cz

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.

Performance Core procesorů Alder Lake architektura Golden Cove 02

Performance Core procesorů Alder Lake, architektura Golden Cove Zdroj: Intel

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ů.

Performance Core procesorů Alder Lake architektura Golden Cove 03

Performance Core procesorů Alder Lake, architektura Golden Cove Zdroj: Intel

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
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
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 na další stránce.

Adblock test (Why?)


Performance Core procesosorů Alder Lake: rozbor architektury - Cnews.cz
Read More

No comments:

Post a Comment

Metro Awakening zve do tunelů moskevského metra ve virtuální realitě - INDIAN - INDIAN

Abychom vám mohli nabídnout co nejlepší zážitek z našich stránek, používáme ty nejmodernější technologie. Bez JAVASCRIPTU tyto stránky nem...