Stanje zen: AMD razkriva nove arhitekturne podrobnosti o svojem najnovejšem jedru procesorja

AMD-Zen-Feature

AMD je na spletnem mestu Hot Chips predstavil veliko informacij o svojem prihodnjem jedru in arhitekturi procesorja Zen. O novem čipu se že več kot leto dni veliko špekulira, vendar so se stvari v zadnjih nekaj tednih segrele, ušla merila uspešnosti na površje in AMD je izvedel svoje javni test.



Današnji informacijski smeti so najbolj podrobni podatki, ki jih je AMD do danes delil - pravzaprav gre za bistveno več informacij, kot sem pričakoval, da jih bo družba delila, dokler Zen dejansko ne bo lansiran. Začnimo.



Zen-ovi cilji oblikovanja

Zen je najbolje razumeti kot odgovor na težave, ki napadel Buldožer . AMD-jev prvotni cilj s to arhitekturo naj bi inteligentno delili vire med jedri CPU, hkrati pa dosegali višje frekvence in večjo učinkovitost izvajanja kot prejšnje AMD-jevo jedro CPU, K10. Neuspeh buldožerja ni pustil levega AMD-a v grdem položaju: bi moral poskusiti popraviti svoje staro jedro ali se vrniti na risalno ploščo in zgraditi nekaj povsem novega?



Viri, s katerimi smo se pogovarjali pri AMD, kažejo, da je bila težava pri popravilu Buldožerja dovolj velika, da se je AMD odločil za izdelavo novega jedra iz nič, v nobeni prtljagi Buldožerja. To ne pomeni, da v Zen-u ni DNK buldožerja - AMD je dejansko izjavil, da je bilo strokovno znanje, pridobljeno z izboljšanjem energetske učinkovitosti parnega valja in bagra, dobro uporabljeno za njegovo najnovejšo arhitekturo. Namesto tega recite, kakšni elementi oblikovanja AMD naredi izposoditi iz prejšnjih arhitektur, bodo komponente čipa, ki so dejansko dobro delovale, ne pa problematične, ki so prevladovale nad njegovo zmogljivostjo.

Arhitekturni predpomnilnik

Veliko tega, kar je šlo narobe z Bulldozerjem, je bilo povezano z njegovim podsistemom predpomnilnika in splošno arhitekturo, zato je to dober kraj za začetek potapljanja v Zen.



CPU-Kompleks



Tam, kjer je Bulldozer uporabil koncept CPU modula (opredeljen kot par jeder, ki delijo vire), Zen uporablja komplekse. En CPU kompleks (CCX) vsebuje štiri jedra, 2 MB predpomnilnika L2 (512 KB na jedro) in 8 MB predpomnilnika L3. To pomeni, da AMD-jev vrhunski potrošniški Zen vsebuje osem jeder in 16 MB predpomnilnika L3, razdeljenih na koščke 2x8 MB. AMD je izjavil, da lahko CCX na osemjedrnem čipu komunicirata med seboj prek vgrajene tkanine, čeprav je verjetno, da bo to storil.

Zenov predpomnilnik L3 deluje kot predpomnilnik žrtev za L1 in L2, kar pomeni, da se podatki, izseljeni iz teh predpomnilnikov, shranijo v L3. Je tudi 16-smerna asociacija, kar je pomembna sprememba v primerjavi s 64-smerno asociacijo L3 Bulldozerja. Predpomnilnik z višjo nastavljeno asociativnostjo ima večjo verjetnost, da vsebuje informacije, ki jih išče CPU, vendar traja dlje časa - in eno od vprašanj, ki je pohabalo Buldožer, je bila njegova zakasnitev predpomnilnika na skoraj vsaki stopnji.



O taktnih hitrostih ne vemo niti v predpomnilniku L3 niti v vgrajenem krmilniku pomnilnika. Zgodovinsko gledano so AMD-jevi CPU-ji in APU-ji, ki izhajajo iz Buldožerja, uporabljali uro med 1,8 in 2,2 GHz za predpomnilnik L3 in IMC.

ZenCache



AMD je izjavil, da je pasovna širina L1 in L2 skoraj dvakrat večja kot bager, medtem ko je pasovna širina L3 menda petkrat večja. Te spremembe bi morale ohranjati jedro in podpirati višjo zmogljivost. Predpomnilnik L1 je namenjen povratnemu zapisovanju namesto zapisovanju - to je pomembna sprememba, ki bi morala izboljšati zmogljivost in zmanjšati spor v predpomnilniku (Bulldozerjev predpomnilnik za pisanje je pomenil, da je zmogljivost L1 v nekaterih primerih lahko omejena s hitrostjo zapisovanja v predpomnilnik L2).



Jedro procesorja

Predpomnilnikov smo se že lotili, zato si oglejmo samo jedro CPU.

Zenuarch

Tu je zenov jedrski diagram na visoki ravni. Obstaja več pomembnih razlik v primerjavi s starejšim jedrom AMD Bulldozer, vključno z dodajanjem predpomnilnika, mikro-op čakalno vrsto in večjim številom celih cevovodov na jedro.

Zen-čakalna vrsta

Tu je razširjen pogled na to, kako se jedro napaja. To je bilo še eno glavno težavno področje Buldožerja - skupna logika Buldožerja in Piledriverja je pomenila, da je dispečerska enota lahko poslala delo samo enemu ali drugemu jedru vsak cikel ure. Steamroller je pozneje to težavo odpravil s podvojitvijo odpremnih enot, vendar je to povzročilo le skromno izboljšanje zmogljivosti.

AMD je vzel stran iz Intelove knjige in z Zen implementiral optični predpomnilnik, tudi če ne vemo veliko o posebnostih funkcije. To omogoča, da CPU predpomni dekodirane operacije, ki jih bo morda moral večkrat poslati, namesto da bi zahteval večkratno dekodiranje in pošiljanje istih navodil. Vsako Zen jedro lahko dešifrira štiri ukaze na cikel ure, mikro-op čakalna vrsta pa lahko pošlje šest ukazov na cikel. AMD očitno predvideva, da bo njegov predpomnilnik zmanjšal pritisk na enote za dekodiranje in pripomogel k ohranjanju jedra, hkrati pa zmanjšal porabo energije. Steamroller je imel makro-op čakalno vrsto, ki je lahko vsebovala do 40 makro-operacij, vendar je bila njegova uporabnost omejena na majhne zanke.

Zen-Fetch

Tako kot družina Buldožer tudi Zen lahko teoretično naenkrat pridobi 32 bajtov podatkov, čeprav analitik CPU Agner Fog je ugotovil, da je bila družina jeder Buldožer praktično omejena na 21 bajtov podatkov, ko sta bili obe jedri v uporabi, ali na 16 bajtov, če je bilo uporabljeno eno jedro. Teoretiziral je, da je bila ta omejitev morda razlog, da je podvojitev odpremnih enot Parnega valjarja dala razmeroma omejene rezultate. Reševanje tega v Zen-u bi lahko bilo del tega, zakaj je AMD bistveno izboljšal svoj IPC.

Zen-Integer

Celobrojna jedra so bila ponovno uravnotežena z družino Buldožer. Pred Bulldozerjem je AMD-jev K10 združil tri ALU-je s tremi AGU-ji (enote za generiranje naslovov). Buldožer je to zmanjšal na dva ALU in dva AGU na jedro. To je v kombinaciji z omejeno dispečersko zmožnostjo v jedrih BD / PD veljalo za glavno ozko grlo, dokler Steamroller ni dodal dodatnih dispečerskih zmogljivosti in znižal kazen, ki jo je Kaveri izkoristil pri skaliranju več jeder. (Piledriver in Bulldozer sta dosegla približno 1,8-kratno skaliranje, ki bi ga pričakovali od 'pravega' dvojedrnega, medtem ko je Steamroller dosegel približno 1,9-krat.) Štirje ALU-ji in dva AGU-ja bi lahko povečali splošno zmogljivost v primerjavi z ozkim dizajnom Bulldozerja, vendar smo Moral bom videti, kako čip deluje v primerjalnih preizkusih.

FloatingPoint-Zen

AMD-jeva enota s plavajočo vejico bo še vedno uporabljala 128-bitne registre za AVX in AVX2, vendar se je zakasnitev nekaterih operacij FP zmanjšala in zdaj obstajajo štiri cevi namesto treh za napajanje FPU. CPU v enem ciklu ne more izvršiti 256-bitnih navodil AVX. Ali bo to v resnični kodi škodilo, je odprto vprašanje, vendar AVX / AVX2 splošne učinkovitosti aplikacij ni povečal tako kot nekoč SSE2.

Vse skupaj:

Če želite en sam diapozitiv na visoki ravni, ki zajema tisto, kar je AMD razkril o Zen-u do danes, je to:

Cilji oblikovanja

Obstaja še nekaj področij čipa, ki se jih nisem dotaknil, na primer SMT, ker želim raziskati, kako se AMD-jeva izvedba SMT razlikuje od Intelove, vendar nisem imel časa, da bi to temo temeljito preučil. AMD ni navedel, da bo Zen uporabljal funkcije, kot je Carrizov AVFS , vendar glede na to, da so ta pristop že razširili oba Polaris in njihove APU linije je varno, da bodo.

Kljub temu je tukaj veliko, kar nakazuje, da je Zen volja zagotavljajo bistveno boljše zmogljivosti kot katero koli jedro Buldožerja kdaj koli prej. Hudič bo, kot vedno, v podrobnostih. Koliko zmogljivosti AMD pridobi s SMT? Katere hitrosti lahko doseže? Kako bo stalo jedro glede na trenutne Intelove izdelke? Ali bo prinesel 'dovolj' izboljšanja zmogljivosti in kako se bodo njegove lastnosti čipov primerjale s tistim, kar Intel predstavlja na trgu?

To so pomembna vprašanja, ki bodo navsezadnje določila, ali lahko Zen znova spodbudi konkurenco na trgu CPU. Če govorim strogo zase, sem glede Zena previdno optimističen. Buldožer je bil za nazaj skoraj popolnoma slabo pozicioniran za realnost CPU in livarske dejavnosti od leta 2011 do 2016. Bil je CPU, zasnovan za visoke frekvence v času, ko je frekvenca CPU najprej padla v osnovne meje skaliranja. AMD je izboljšal zmogljivost jedra in učinkovitost porabe energije, vendar ni mogel odpraviti težav, ki so ga najprej lomile. Ni smešno pomisliti, da bi podjetje lahko zavrtelo čip s 40% izboljšanim IPC glede na to, od kod so začeli.

Zenu ni treba ujemati Intelove ure za uro ali jedra za jedro, da bi bil velik napredek glede na to, kje je AMD danes. Ponuditi mora izboljšano učinkovitost, energetsko učinkovitost in veliko bolj konkurenčno zmogljivost po ustrezni ceni. Glede na to, kar je AMD do danes razkril, mislim, da imajo resnično priložnost, da ga izpeljejo. In čeprav smo o Buldožerju pred petimi leti mislili skoraj enako, Zen ni poskuša ustvariti novo vrsto CPU v skupni rabi. To bi moralo nekaj šteti v končni analizi.

Zen naj bi v prvem četrtletju leta 2017 nastopil v širokem obsegu. Trenutni pametni denar je nastopil na CES-u in ga lansiral, čeprav je to le ugibanje na podlagi prejšnjih urnikov in proizvodnih ciklov.