CPU jádro Zen 2 detailně: nová architektura AMD přináší hlubší změny, než se čekalo

33
AMD Ryzen 3000 Matisse Am4 procesor 1600

AMD teď na přelomu května a června definitivně odhalilo procesory Ryzen 3000 vyráběné na 7nm procesu a obsahujících nové CPU jádra Zen 2. O této architektuře něco povědělo už loni, ale tehdy neprozradilo všechny změny. Tento měsíc během E3 2019 firma odhalila Zen 2 ve větších podrobnostech a vypadá to, že tato jádra přinášejí o dost větší inovaci, než co se čekalo. V tomto článku se na architektonické změny podíváme podrobně.

Předchozí
Následující

Architektura jádra Zen 2: co je nového ve frontendu

Zen 2 vychází dva roky a čtyři měsíce po první generaci, jejíž architekturu jsme rozebírali zde. AnandTech píše celkem zajímavou věc: podle šéfarchitekta Mike Clarka původně tato architektura neměla dělat velké změny a být spíš jen „die-shrinkem“ první generace bez velkého zvýšení IPC. Ale vzhledem k tomu, že do nástupu 7nm procesu zbývalo hodně času, architektura dostala řadu výkonnostních zlepšení, takže z „ticku“ je to nakonec „tock“ (pokud bychom použili starší termity Intelu).

Přehled zlepšení, která Zen 2 dostal proti první generaci, začneme v tzv. frontendu, čímž se myslí infrastruktura, která předchází samotným výpočetním jednotkám (ALU, FPU) a hraje hodně důležitou roli. Stará se totiž o to, aby se do jednotek při out-of-order zpracování dostalo co nejvíce instrukcí za takt a co nejméně docházelo k prostojům kvůli větvení nebo čekání na data z paměti. Obecně se dá říct, že Zen 2 evolučně navazuje na Zen 1 a přebírá jeho základní charakter coby výchozí bod. Nejedná se tedy o novou architekturu ve smyslu kompletně nově koncipovanou (což je však vzácné a vzhledem k tomu, že Zen 1 je relativně nový, asi k tomu zas tak brzy nedojde).

Lepší predikce větvení: až o 30 %

Pro posílání instrukcí do dalších fází zpracování je důležité odhadovat spekulativně větvení, protože jinak by procesor nemohl dál pokračovat, dokud by o větvení nebylo rozhodnuto, a ztrácel by pokaždé desítky cyklů. Schopnost Zenu 2 odhadnout směr větve správně by měl vylepšit druhý přidaný prediktor typu TAGE. Ten je používaný tehdy, pokud by fetch instrukcí směřoval mimo L1 cache (do L2/RAM), pro fetche z L1 cache se používá perceptronový prediktor jako v Zenu 1. Prediktor TAGE by měl být schopen udržet si v povědomí delší „historii“.

Aktualizováno: Podle detailnějšího rozboru webu WikiChip by rozdělení práce mezi oba prediktory mělo být trochu jiné. Perceptron je velmi rychlý a používá se proto pro předběžnou predikci. Prediktor TAGE je náročnější a pomalejší, takže jeho výsledek je dostupný později než odhad perceptronu, ale má být přesnější. Zen 2 proto údajně dělá to, že nejdřív postupuje podle výsledku perceptronu, a když se se zpožděním několika cyklů dostaví i odhad TAGE, jsou oba porovnány. Pokud souhlasí, jde vše dál bez přerušení. Pokud TAGE nesouhlasí, jsou zahozeny spekulativní výsledky a procesor začne znovu podle odhadu TAGE. Postih za tuto změnu predikce by měl být menší, než postih za klasický chybný odhad, když se na něj přijde až v momentě reálného vyhodnocení podmínky.

AMD také zvětšilo Branch Target Buffery, do L1 BTB se vejde 512 položek místo jen 256 a u L2 BTB je to zhruba 7000 místo předchozích 4000. L0 BTB je nezměněný na 16 položkách, ale Indirect Branch Target Array má 1000 položek. Specializace dvou různých prediktorůvětvění by snad měla vylepšit celkovou úspěšnost. Spolu s s většími BTB je prý u Zenu 2 počet neúspěšných predikcí nižší až o 30 %.

Dvojnásobná uOP cache

Asi největší změnou ve frontendu je velké zvětšení uOP cache, která ukládá již dekódováné instrukce a umožňuje je hned znovu použít. To je zkratka šikovná třeba pro smyčky a šetří energii, zatímco přidává výkon. V Zenu 2 má místo 2000 položek nyní kapacitu 4000 položek (instrukcí), takže pojme delší smyčky a měla by mít větší procento „hitů“. Je zajímavé, že tato evoluce architektury jde stejným směrem, co provedl Intel u svého nového jádra Sunny Cove (procesory Ice Lake). Také tam došlo k velkému zvětšení uOP/L0 cache, ovšem jen na zhruba 2250 položek z 1500 u Skylake. Nový Cortex-A77 od ARMu má položek 1500.

Fetch a dekódování zřejmě posíleny nejsou: procesor fetchuje (načítá z instrukční cache) maximálně 32 bytů kódu a dekodéry jsou čtyři – každý komplexní, tj. zvládne nejen nejběžnější operace (Intel používá kombinaci jednoho komplexního a čtyř zjednodušených dekodérů, které zvládají jen některé instrukce) – mohou tedy poslat dál čtyři instrukce za takt.

Ovšem MicroOP cache může ze svého dodat až osm dekódovaných instrukcí (zfúzované microOPy se zřejmě počítají jako jedna položka). Díky větší hit-rate zvětšené MicroOp cache (která je schopná dodat větší procento celkových instrukcí) je podle AMD celková propustnost dekódování efektivně vyšší. Do další fáze Dispatch ale celkově z obou zdrojů stále může postoupit jen méně instrukcí, maximálně šest za takt, což je stejné jako u Zenu 1.

Podle AMD jinak bylo i fúzování operací vylepšeno, ale není řečeno jak. Stejně tak byl vylepšen i prefetching, což je vedle predikce větvení další oblast, kde pořád probíhají kontinuální vylepšování.

Článek pokračuje na další straně.

Galerie: Architektura jádra AMD Zen 2


Předchozí
Následující

33 KOMENTÁŘE

  1. Tak tenhle článek mi nasadil do hlavy ještě víc brouků, abych letos přesedlal z 6600K na 12C Ryzen. Bohužel tituly od Turn 10 a Playground jsou neskutečně rozežrané na CPU, takže cílím upgrade na 8C+. Ještě počkám na ceny, protože tam se může ukázat, že si AMD bude chtít nechat trochu vyšší marže. A celkem se divím, že ani Alza nemá katalog nacpaný novými produkty s cenovkou “těšíme se”.

    • Ceny byly ohlášené a měly by asi sedět, jestli nevypukne nějaká nákupní panika, což počítám že nenastane, hlavně ne když se bavíme o vlastně jen retailu (IMHO), tj. 5-10% trhu s PC – a kdyby nastala, tak to bude jenom po omezený čas.
      12jádro by při dnešním kurzu dolaru mělo být za 13 600 Kč s DPH…

        • Jo, bude třeba počkat na recenze a zkušenosti majitelů, jak se to snáší s nějakýma levnějšíma deskama B450-X470 a ušetřit na tý desce, když CPU stojí majlant…

          O víkendu jsem se koukal, že snad všechny Gigabyte s čipsetem B350 (včetně věcí s dvěma DIMM slotama) dostaly BIOS s “full” podporou Ryzenů 3000 (až po šestnáctijádra podle seznamu podpor. CPU). Samozřejmě když to člověk bude chtít přetaktovat tak to je jiná věc, ale snad to na rozumné desce do třech tisíc poběží dobře aspoň stock.

            • Já to nemyslel jako doporučení, jen jako že ta podpora na starších deskách vypadá nakonec vcelku dobře (i když je tu pořád ten problém, že musíte shánět kus s novým BIOSem nebo řešit, jak novou updatovat).

              Snad teda recenze a zkušenosti potvrdí, že to na řadě 400 bude fungovat bez nějakejch bugů nebo nestabilit (300ky asi zajímají hlavně lidi, co upgradujou). Ještě jsme nepřeskočili…

      • ~13 tísíc korun + MB (které očividně zdraží) mi způsobuje lehčí skřípění zubů. Ve výsledku dobře naceněné 9700K nebo 9900K v reakci na Zen2 by bylo čistě na gaming asi lepší volba. No asi nezbývá nic jiného než čekat, ale už bych letos chtěl přesedlat.

      • Počkejme si na pád dolaru, USA jsou předlužené a stále více produktově ignorované, mají krizi přede dveřmi. Kolik z toho se týká i Kanady, je otázka, ale rozhodně méně. I já se připojuji k pochvale za vysoce informativní článek.