Zen 2 AMD Ryzen 7 3700X und Ryzen 9 3900X im Test

Artikel-Index:

Technische Details: Kerne, Caches, FPU, Integer

Bereits von der letz짯ten AMD-Archi짯tek짯tur namens Bull짯do짯zer hin zu Zen konn짯te AMD eine mitt짯le짯re Leis짯tungs짯stei짯ge짯rung pro Takt (IPC) von 52 Pro짯zent errei짯chen, nach짯dem 40 Pro짯zent die urspr체ng짯li짯che Design-Vor짯ga짯be waren. Das ist ein enor짯mer Sprung! Manch짯mal mag man sich fra짯gen, ob nicht irgend짯wann ein짯mal ein Limit erreicht ist, nach짯dem das nun schon seit Jahr짯zehn짯ten so geht. Aber anschei짯nend sind wir noch nicht so weit, denn f체r Zen 2 stellt AMD aber짯mals eine IPC-Stei짯ge짯rung von ca. 15 Pro짯zent in Aus짯sicht. Wir zei짯gen auf die짯sen Sei짯ten, woher die짯se kom짯men soll.

Pr채sentation zu Ryzen 3000

L0-Cache
Mit der Ein짯f체h짯rung von Zen brach짯te AMD ein Design-Ele짯ment zur Anwen짯dung, das bis짯he짯ri짯ge AMD-Archi짯tek짯tu짯ren noch nicht genutzt hat짯ten, bei Intel aber seit dem Pen짯ti짯um 4 (Trace-Cache), sp채짯tes짯tens seit San짯dy Bridge in der heu짯ti짯gen Form zum Ein짯satz kam: ein Micro-Op-Cache. Die짯ser Cache, manch짯mal auch L0-Cache genannt, h채lt fer짯tig deko짯dier짯te Befeh짯le vor, die von den Rechen짯ein짯hei짯ten sofort aus짯ge짯f체hrt wer짯den k철n짯nen, ohne zuvor noch ein짯mal aus den x86-Befeh짯len deko짯diert wer짯den zu m체s짯sen. Das ent짯las짯tet den Deko짯der und spart Strom. Anschei짯nend hat sich das Kon짯zept bew채hrt, denn AMD hat den Cache gegen짯체ber Zen 1 gleich mal auf 4K Instruk짯tio짯nen verdoppelt.

L3-Cache
Ver짯dop짯pelt hat AMD auch die Gr철짯횩e des L3-Cache. Das ist eine oft prak짯ti짯zier짯te Vor짯ge짯hens짯wei짯se, wenn sich durch Ver짯klei짯ne짯rung der Fer짯ti짯gungs짯struk짯tu짯ren hier 12 nm auf 7 nm Spiel짯r채u짯me erge짯ben, die ein짯ge짯spar짯te Die-Fl채짯che m철g짯lichst g체ns짯tig in mehr Leis짯tung zu reinves짯tie짯ren. Da bie짯ten sich die Caches nat체r짯lich an, da an die짯ser Stel짯le zum einen kaum Ent짯wick짯lungs짯auf짯wand anf채llt und zum ande짯ren Cache ohne wei짯te짯res Zutun der Soft짯ware-Ent짯wick짯ler zu mehr Leis짯tung f체hrt. Die Mehr짯leis짯tung gibt셲 hier auto짯ma짯tisch, auch f체r 채lte짯re Soft짯ware, die nicht mehr z.B. an neu ein짯ge짯f체hr짯te SIMD-Befeh짯le ange짯passt wird. Da AMD die Core-Com짯plex-Bau짯wei짯se bei짯be짯hal짯ten hat (CCX), ste짯hen je 4 Ker짯nen nun nicht mehr 8 MiB, son짯dern 16 MiB L3-Cache zur Ver짯f체짯gung. Je Die kommt AMD damit nun auf 32 MiB L3-Cache.

Pr채sentation zu Ryzen 3000

L1-Cache
Auch tie짯fer im Kern, an den L1-Caches, hat AMD geschraubt. W채h짯rend Zen 1 noch einen L1-Ins짯truc짯tion-Cache von 64 KiB auf짯wies, muss Zen 2 nun mit 32 KiB aus짯kom짯men. Nat체r짯lich ver짯klei짯nert man einen Cache nor짯ma짯ler짯wei짯se nicht ohne Hin짯ter짯ge짯dan짯ken. Klei짯ne짯re Caches k철n짯nen eine k체r짯ze짯re Latenz auf짯wei짯sen, wenn sie ent짯spre짯chend kon짯zi짯piert sind. Zudem hat AMD als Gegen짯ma횩짯nah짯me die Asso짯zia짯ti짯vi짯t채t von 4몏ay auf 8몏ay ver짯dop짯pelt, was den Cache fle짯xi짯bler und effi짯zi짯en짯ter nutz짯bar macht. Zudem d체rf짯te bei der Desi짯gn짯체ber짯le짯gung auch der ver짯gr철짯횩er짯te Micro-Op-Cache eine Rol짯le gespielt haben. W채h짯rend der L1-Ins짯truc짯tion-Cache x86-Befeh짯le vor dem Deko짯der puf짯fert, h채lt der Micro-Op-Cache die bereits deko짯dier짯ten RISC-채hn짯li짯chen Befeh짯le vor. Das ver짯rin짯gert den Druck auf den Deko짯der und damit auch auf den L1-I-Cache, wes짯we짯gen AMD hier Fl채짯che spa짯ren konn짯te ohne gro횩 Leis짯tung einzub체횩en.

Pr채sentation zu Ryzen 3000

Pr채sentation zu Ryzen 3000

Wie bei jeder Archi짯tek짯tur짯체ber짯ar짯bei짯tung darf auch bei Zen 2 der Pas짯sus 쐇mpro짯ved branch pre짯dic짯tion nicht feh짯len. Die Sprung짯vor짯her짯sa짯ge zu ver짯bes짯sern muss auch Ziel einer moder짯nen Out-of-Order-Archi짯tek짯tur mit hohen Takt짯fre짯quen짯zen und damit rela짯tiv lan짯gen Pipe짯lines sein, denn der짯ar짯ti짯ge Pro짯zes짯so짯ren spe짯ku짯lie짯ren, wohin die Rei짯se im Fort짯lauf des Codes gehen k철nn짯te und war짯ten nicht ab, bis die Ent짯schei짯dung 쏶prung ja oder nein im Code wirk짯lich fest짯steht. Statt짯des짯sen arbei짯ten sie Pro짯gramm짯zwei짯ge schon auf Ver짯dacht ab und ver짯las짯sen sich dabei auf die Sprung짯vor짯her짯sa짯ge. Lag sie rich짯tig, hat der Pro짯zes짯sor schon jede Men짯ge Arbeit vor짯ab auf Ver짯dacht erle짯digt und damit Rechen짯zeit ein짯ge짯spart, wo ein In-Order-Pro짯zes짯sor erst jetzt anfan짯gen w체r짯de zu rech짯nen. Teu짯er wird es jedoch wenn die Sprung짯vor짯her짯sa짯ge falsch lag. Dann m체s짯sen alle vor짯ab erle짯dig짯ten Sachen r체ck짯g채n짯gig gemacht, Ergeb짯nis짯se ver짯wor짯fen und die Pipe짯line geleert wer짯den. Ein sol짯cher Pipe짯line-Flush dau짯ert etli짯che Tak짯te und der gesam짯te Ablauf kommt ins Sto짯cken, sodass eine Sprung짯vor짯her짯sa짯ge mit m철g짯lichst hoher Tref짯fer짯quo짯te unab짯ding짯bar ist. Wie hoch sie bei Zen 2 liegt, ver짯r채t AMD lei짯der nicht 체blich sind mitt짯ler짯wei짯le jedoch weit 체ber 90 Pro짯zent nur, dass die Wahr짯schein짯lich짯keit, dane짯ben zu lie짯gen, um 30 Pro짯zent redu짯ziert wor짯den ist. Nach eige짯nen Anga짯ben setzt AMD bei Zen 2 einen TAGE Branch Pre짯dic짯tor ein.

Mit der Sprung짯vor짯her짯sa짯ge ein짯her gehen die Ver짯bes짯se짯run짯gen des Branch Tar짯get Buf짯fer (BTB). Auch hier hat AMD gefeilt und den L1BTB auf 512 Ein짯tr채짯ge ver짯dop짯pelt und den L2BTB von 4K auf 7K vergr철횩ert.

Pr채sentation zu Ryzen 3000

Ein mas짯si짯ver Umbau wur짯de an der Flie횩짯kom짯ma-Ein짯heit (FPU) vor짯ge짯nom짯men: AMD hat die Brei짯te der FPU glatt ver짯dop짯pelt. 256 Bit k철n짯nen nun auf einen Rutsch ver짯ar짯bei짯tet wer짯den, wohin짯ge짯gen bis ein짯schlie횩짯lich Zen 1 der짯art brei짯te Zah짯len auf zwei 128-Bit-Berech짯nun짯gen auf짯ge짯teilt wer짯den muss짯ten. Die letz짯te Ver짯gr철짯횩e짯rung der FPU-Brei짯te ist schon eine Wei짯le her. Beim Wech짯sel von K8 auf K10 im Jahr 2007 wur짯de hier zuletzt Hand ange짯legt, als es von 64 Bit auf 128 Bit ging. So ein grund짯le짯gen짯der Design짯schritt will gut 체ber짯legt sein, denn er kos짯tet Fl채짯che und nat체r짯lich gibt es die h철he짯re Leis짯tung auch in Sachen Strom짯ver짯brauch nicht umsonst. Zudem nut짯zen nur AVX/A짯VX2-Befeh짯le der짯art brei짯te Daten짯ty짯pen, sodass folg짯lich auch nur sol짯che Berech짯nun짯gen davon pro짯fi짯tie짯ren. Anschei짯nend hat AMD ent짯schie짯den, dass nun die Zeit reif daf체r ist und mitt짯ler짯wei짯le gen체짯gend Anwen짯dun짯gen AVX nut짯zen, damit sich eine auf짯w채n짯di짯ge짯re FPU lohnt. Wir wer짯den das nat체r짯lich sp채짯ter bei den Bench짯marks im Auge behalten.

Pr채sentation zu Ryzen 3000

Neben der FPU hat auch die Inte짯ger-Ein짯heit eini짯ges an Fein짯schliff erfah짯ren. Diver짯se ver짯gr철짯횩er짯te Puf짯fer sowie ver짯l채n짯ger짯te War짯te짯schlan짯gen sind obli짯ga짯to짯risch bei Shrinks. Aber dabei blieb es nicht. AMD hat Zen 2 eine zus채tz짯li짯che Address Gene짯ra짯ti짯on Unit (AGU) spen짯diert, sodass nun ins짯ge짯samt 7 (statt 6) Befeh짯le gleich짯zei짯tig aus짯ge짯f체hrt wer짯den k철n짯nen, sofern der Befehls짯mix genau zur Anzahl der Ein짯hei짯ten passt. Zudem soll AMDs Imple짯men짯tie짯rung von Simul짯ta짯neous Mul짯ti짯th짯re짯a짯ding (SMT) ver짯bes짯sert wor짯den sein und zu weni짯ger Locks f체h짯ren, was den Gesamt짯durch짯satz ver짯bes짯sern soll.

Pr채sentation zu Ryzen 3000

Pr채sentation zu Ryzen 3000

Bez체g짯lich Load/Store hat AMD offen짯bar eini짯ge Fla짯schen짯h채l짯se im Kern gewei짯tet. Nicht nur die Latenz beim Zugriff auf den L2 DTLB soll ver짯k체rzt wor짯den sein, auch die Band짯brei짯te wur짯de an meh짯re짯ren Stel짯len erh철ht, beim L1 glatt ver짯dop짯pelt, sodass die brei짯te짯ren Rechen짯wer짯ke auch schnell genug mit Daten ver짯sorgt wer짯den k철n짯nen und nicht leer짯lau짯fen. Dank der h철he짯ren Trans짯fer짯ra짯te k철n짯nen auch die Pre짯fet짯cher etwas gr철횩짯z체짯gi짯ger agie짯ren ohne dabei die 쐍or짯ma짯len Trans짯fers zu bremsen.

Vom Cache-Auf짯bau her bleibt alles beim alten. Der L2-Cache ist uni짯fied, tr채gt also Daten und Instruk짯tio짯nen und steht jedem Kern 쐏ri짯vat in 512 KiB Gr철짯횩e zur Ver짯f체짯gung. Der L3-Cache nun in dop짯pel짯ter Gr철짯횩e vor짯han짯den ist wei짯ter짯hin ein Vic짯tim-Cache des L2. Das hei횩t, im L3-Cache lan짯det das, was vor짯her aus den L2-Caches her짯aus짯ge짯fal짯len ist, in der Hoff짯nung, dass es im wei짯te짯ren Pro짯gramm짯ver짯lauf noch짯mal ben철짯tigt wird. Durch die짯se Design-Phi짯lo짯so짯phie lie짯gen Daten anders als bei Intel nie짯mals gleich짯zei짯tig in L2- und L3-Cache.

Pr채sentation zu Ryzen 3000