AMD Ryzen 7 1800X Review ‚Äď Teil 1

Artikel-Index:

AMD Ryzen ‚Äď Die Architektur im Detail: Flie√ükomma-Einheit

Hier hat sich eben¬≠falls viel getan. Einem gemein¬≠sa¬≠men Sche¬≠du¬≠ler, wie er auch von der Bull¬≠do¬≠zer-Rei¬≠he und den Cat-Ker¬≠nen bekannt ist, wur¬≠de ein spe¬≠zi¬≠el¬≠ler Puf¬≠fer vor¬≠ge¬≠schal¬≠tet (‚ÄúNSQ‚ÄĚ f√ľr ‚ÄúNon Sche¬≠du¬≠ling Queue‚ÄĚ), um vom Dis¬≠patcher bereits Flie√ü¬≠kom¬≠ma-Befeh¬≠le zu emp¬≠fan¬≠gen. Das erm√∂g¬≠licht selbst bei man¬≠geln¬≠den frei¬≠en Pl√§t¬≠zen im Flie√ü¬≠kom¬≠ma-Sche¬≠du¬≠ler die Wei¬≠ter¬≠ar¬≠beit des Dis¬≠patchers. So kann die¬≠ser z.B. die Inte¬≠ger-Ein¬≠heit belie¬≠fern. Zus√§tz¬≠lich k√∂n¬≠nen f√ľr Befeh¬≠le in der NSQ bereits Daten aus dem Spei¬≠cher¬≠sys¬≠tem beschafft und bereit¬≠ge¬≠stellt wer¬≠den. So m√ľs¬≠sen die¬≠se Befeh¬≠le im Sche¬≠du¬≠ler nicht auf die Daten warten.

Pro Zyklus wer¬≠den durch den Dis¬≠patcher bis zu 4 ¬ĶOps bereit¬≠ge¬≠stellt. Es ist anzu¬≠neh¬≠men, dass im Fall von Flie√ü¬≠kom¬≠ma-Befeh¬≠len mit Spei¬≠cher¬≠ope¬≠ran¬≠den gleich¬≠zei¬≠tig die ent¬≠spre¬≠chen¬≠den bis zu 2 ¬ĶOps an die AGUs in der Inte¬≠ger-Ein¬≠heit gesen¬≠det wer¬≠den. Wenn Daten aus dem Spei¬≠cher gela¬≠den wer¬≠den, erfolgt dies min¬≠des¬≠tens mit einer Latenz von 7 Tak¬≠ten aus dem L1-Cache. Das sind immer¬≠hin zwei Tak¬≠te weni¬≠ger als in der Bull¬≠do¬≠zer-Linie. Die¬≠se Daten (bis 2x128 Bit) durch¬≠lau¬≠fen noch die Lade-Kon¬≠ver¬≠tie¬≠rungs-Ein¬≠heit (LDCVT).

Die Flie√ü¬≠kom¬≠ma-Ein¬≠heit bie¬≠tet 96 Ein¬≠tr√§¬≠ge im Sche¬≠du¬≠ler, was durch¬≠schnitt¬≠lich 24 Ein¬≠tr√§¬≠gen pro Pipe¬≠line ent¬≠spricht. Aller¬≠dings gibt es durch des¬≠sen Aus¬≠f√ľh¬≠rung als ver¬≠ein¬≠ter Sche¬≠du¬≠ler f√ľr alle Flie√ü¬≠kom¬≠ma-Pipe¬≠lines eine deut¬≠lich h√∂he¬≠re Fle¬≠xi¬≠bi¬≠li¬≠t√§t als bei Inte¬≠ger-Code. Das ist hier auch wich¬≠tig, da die¬≠se Pipe¬≠lines deut¬≠lich spe¬≠zia¬≠li¬≠sier¬≠ter sind. Wei¬≠ter¬≠hin ste¬≠hen der Ein¬≠heit 160 phy¬≠si¬≠sche Regis¬≠ter zur Ver¬≠f√ľ¬≠gung. Neben aktu¬≠el¬≠len x86-SIMD-Erwei¬≠te¬≠run¬≠gen bis AVX2 ist die FPU nat√ľr¬≠lich wei¬≠ter¬≠hin mit x87-Befeh¬≠len kompatibel.

Im Gro¬≠ben gibt es zwei Mul¬≠ti¬≠pli¬≠ka¬≠ti¬≠ons- (FMUL) und zwei Addi¬≠ti¬≠ons-Ein¬≠hei¬≠ten/-Pipe¬≠lines (FADD). Die Fused-Mul¬≠ti¬≠ply-Add-Befeh¬≠le (FMA) wer¬≠den in den FMUL-Pipe¬≠lines aus¬≠ge¬≠f√ľhrt. Da jede Pipe¬≠line zwei Lese¬≠ports in das Flie√ü¬≠kom¬≠ma-Regis¬≠ter¬≠file (FPRF) besitzt, muss f√ľr FMA-Befeh¬≠le ggf. auf einen Port der FADD-Pipe¬≠line zur√ľck¬≠ge¬≠grif¬≠fen wer¬≠den, sofern der Wert nicht als Ergeb¬≠nis eines vor¬≠he¬≠ri¬≠gen Befehls auf kur¬≠zem Wege (Bypass) bereit¬≠ge¬≠stellt wird. Die vie¬≠len ande¬≠ren unter¬≠schied¬≠li¬≠chen Flie√ü¬≠kom¬≠ma-Befeh¬≠le und auch die Inte¬≠ger-SIMD-Befeh¬≠le sind auf die vier Pipe¬≠lines ver¬≠teilt. Hier sei auch wie¬≠der auf die Gra¬≠fik im Okto¬≠ber-Arti¬≠kel ver¬≠wie¬≠sen. Mit die¬≠sen vier Pipe¬≠lines besitzt ein Zen-Kern auch gleich vier x87-f√§hi¬≠ge Rechen¬≠ein¬≠hei¬≠ten, was gera¬≠de f√ľr Anwen¬≠dun¬≠gen mit einem hohem Bedarf an x87-Rechen¬≠leis¬≠tung inter¬≠es¬≠sant sein d√ľrf¬≠te. Neben eini¬≠gen wis¬≠sen¬≠schaft¬≠li¬≠chen Anwen¬≠dun¬≠gen geh√∂rt der B√ľro-Klas¬≠si¬≠ker Excel dazu, wel¬≠cher auch noch f√ľr kom¬≠ple¬≠xe¬≠re Berech¬≠nun¬≠gen in brei¬≠tem Ein¬≠satz ist.

Wie Mike Clark aus¬≠f√ľhr¬≠te, hat jede MUL-Ein¬≠heit eine eigen¬≠st√§n¬≠di¬≠ge FMA-Pipe¬≠line. Die¬≠ser Hin¬≠weis ‚Äď zusam¬≠men mit den GCC-Patch-Infor¬≠ma¬≠tio¬≠nen ‚Äď k√∂nn¬≠te bedeu¬≠ten, dass f√ľr nor¬≠ma¬≠le Mul¬≠ti¬≠pli¬≠ka¬≠tio¬≠nen noch ein¬≠mal eige¬≠ne Mul¬≠ti¬≠pli¬≠zie¬≠rer bereit¬≠ste¬≠hen, und zwar in einer Form, wie sie bei den Cat-Ker¬≠nen ver¬≠wen¬≠det wird. Dort ist eine sehr ener¬≠gie¬≠spa¬≠ren¬≠de Vari¬≠an¬≠te einer Mul¬≠ti¬≠pli¬≠zier-Ein¬≠heit im Ein¬≠satz, die gerin¬≠ge Laten¬≠zen auf¬≠weist, hin¬≠ge¬≠gen bei h√∂he¬≠ren Genau¬≠ig¬≠kei¬≠ten (64-bit Dou¬≠ble Pre¬≠cis¬≠i¬≠on und 80-bit Exten¬≠ded Pre¬≠cis¬≠i¬≠on) ein oder zwei Takt¬≠zy¬≠klen extra ben√∂¬≠tigt. Dank zwei¬≠er FMUL-Ein¬≠hei¬≠ten f√§llt der Latenz¬≠nach¬≠teil jedoch kaum ins Gewicht. Auch wur¬≠de in den Kat¬≠zen-Ker¬≠nen mit Hil¬≠fe die¬≠ser kom¬≠pak¬≠ten Mul¬≠ti¬≠pli¬≠zie¬≠rer-Ein¬≠heit eine effi¬≠zi¬≠en¬≠te FDIV- und FSQRT-Ein¬≠heit imple¬≠men¬≠tiert. Mit den klei¬≠nen Struk¬≠tu¬≠ren des 14LPP-Pro¬≠zes¬≠ses k√∂nn¬≠te man sich so eine Red¬≠un¬≠danz f√ľr mehr Ener¬≠gie¬≠ef¬≠fi¬≠zi¬≠enz sogar leis¬≠ten, da selbst die gesam¬≠te Jagu¬≠ar-FPU im 28nm-Pro¬≠zess nur 0,39 mm¬≤ belegt. Ob dies bei Zen aber so umge¬≠setzt wur¬≠de, muss sich in wei¬≠te¬≠ren Bekannt¬≠ma¬≠chun¬≠gen zur Zen-Mikro¬≠ar¬≠chi¬≠tek¬≠tur zeigen.

Bei FMA-Berech¬≠nun¬≠gen arbei¬≠ten je eine ADD- und MUL-Ein¬≠heit zusam¬≠men, wobei nur der Lese¬≠port der ADD-Ein¬≠heit zum FP-Regis¬≠ter benutzt wird. Soll¬≠ten die Daten in Form eines gera¬≠de fer¬≠tig¬≠ge¬≠stell¬≠ten Berech¬≠nungs¬≠er¬≠geb¬≠nis¬≠ses den Weg √ľber den Bypass zur FMA-Ein¬≠heit fin¬≠den, k√∂nn¬≠ten im g√ľns¬≠tigs¬≠ten Fall im glei¬≠chen Takt neben zwei FMA-Berech¬≠nun¬≠gen auch noch zwei FP-Addi¬≠tio¬≠nen durch¬≠ge¬≠f√ľhrt wer¬≠den. Das ist ein Vor¬≠teil, da in vie¬≠len Pro¬≠gramm¬≠codes mit Flie√ü¬≠kom¬≠ma-Berech¬≠nun¬≠gen der Anteil von Addi¬≠tio¬≠nen (was Sub¬≠trak¬≠tio¬≠nen ein¬≠schlie√üt) deut¬≠lich h√∂her ist als der der Multiplikationen.

Die FMA4-Befeh¬≠le wer¬≠den von Zen nicht mehr unter¬≠st√ľtzt, wie wir bereits berich¬≠te¬≠ten. Damit wird der damit ver¬≠bun¬≠de¬≠ne hohe Auf¬≠wand bez√ľg¬≠lich des FP-Regis¬≠ter¬≠files (vie¬≠le Lese¬≠ports) ver¬≠mie¬≠den. Und dazu gibt es sogar noch ein Argu¬≠ment von sei¬≠ten Intels: Dank Move Eli¬≠mi¬≠na¬≠ti¬≠on wer¬≠den zus√§tz¬≠li¬≠che Befeh¬≠le zur Siche¬≠rung von Regis¬≠tern vor dem √úber¬≠schrei¬≠ben neben¬≠bei und ohne gro¬≠√üe Hard¬≠ware-Belas¬≠tung ausgef√ľhrt.

Der Sta¬≠tus der ver¬≠ar¬≠bei¬≠te¬≠ten ¬ĶOps wird an die Reti¬≠re-Queue zur√ľck¬≠ge¬≠mel¬≠det, was auch hier bis zu 8 ¬ĶOps pro Takt bedeu¬≠tet. Hier¬≠zu z√§h¬≠len auch Befeh¬≠le, die z.B. dank Move Eli¬≠mi¬≠na¬≠ti¬≠on und Zero¬≠ing Idi¬≠oms (effek¬≠ti¬≠ves Null¬≠set¬≠zen von Regis¬≠tern) nicht expli¬≠zit aus¬≠ge¬≠f√ľhrt wer¬≠den m√ľs¬≠sen. F√ľr den Fall eines nicht kor¬≠rekt vor¬≠her¬≠ge¬≠sag¬≠ten Sprun¬≠ges wur¬≠de die Lee¬≠rung der Flie√ü¬≠kom¬≠ma-Pipe¬≠line beschleu¬≠nigt. Gegen¬≠√ľber der Bull¬≠do¬≠zer-Rei¬≠he mit geteil¬≠ter FPU besitzt Zen nun pro Kern effek¬≠tiv die vier¬≠fa¬≠che Anzahl an AES-Ein¬≠hei¬≠ten, was zusam¬≠men mit der SHA1-Unter¬≠st√ľt¬≠zung einen deut¬≠li¬≠chen Schritt zur Unter¬≠st√ľt¬≠zung von Ver¬≠schl√ľs¬≠se¬≠lungs¬≠auf¬≠ga¬≠ben dar¬≠stellt. Das ist ein wich¬≠ti¬≠ger Punkt f√ľr den Datacenter-Einsatz.