AMD Ryzen 7 1800X Review ‚Äď Teil 1

Artikel-Index:

AMD Ryzen ‚Äď Die Architektur im Detail: Integer-Einheit

Wie auf den vor¬≠her¬≠ge¬≠hen¬≠den Foli¬≠en zu sehen, fin¬≠den maxi¬≠mal sechs ¬ĶOps pro Takt aus dem Dis¬≠patcher ihren Weg in die Inte¬≠ger-Ein¬≠heit. Dort wer¬≠den sie im Sche¬≠du¬≠ler anschlie¬≠√üend auf sechs Pipe¬≠lines ver¬≠teilt. Vier davon sind ALUs zur Berech¬≠nung von Pro¬≠gramm¬≠code, die zwei AGUs berech¬≠nen Spei¬≠cher¬≠adres¬≠sen zum Laden oder Abspei¬≠chern der Rechen¬≠er¬≠geb¬≠nis¬≠se. Damit ist die Archi¬≠tek¬≠tur vier¬≠fach super¬≠ska¬≠lar, dop¬≠pelt so breit wie ein INT-Clus¬≠ter der Bull¬≠do¬≠zer-Archi¬≠tek¬≠tur und sogar noch etwas brei¬≠ter als der K8/K10, der 3 Paa¬≠re bestehend aus je einer ALU und AGU auf¬≠wies. Rein rech¬≠ne¬≠risch hat¬≠ten die K‚ÄĎGenerationen gegen¬≠√ľber Zen also eine AGU mehr zur Ver¬≠f√ľ¬≠gung. Dage¬≠gen sag¬≠te ein K8-Ent¬≠wick¬≠ler damals, dass die¬≠se nur aus Copy-/Pas¬≠te-Design¬≠gr√ľn¬≠den mit¬≠ge¬≠nom¬≠men wur¬≠de und so gut wie kei¬≠nen Effekt hat. Man hat¬≠te sich damals f√ľr ALU+AGU-Paare mit einer vor¬≠ge¬≠schal¬≠te¬≠ten gemein¬≠sa¬≠men War¬≠te¬≠schlan¬≠ge mit 8 Ein¬≠tr√§¬≠gen ent¬≠schie¬≠den und somit war die 3. AGU zwangs¬≠l√§u¬≠fig mit von der Par¬≠tie. 4+2 Inte¬≠ger Pipes d√ľrf¬≠ten trotz¬≠dem ‚Äď solan¬≠ge auf das Cache¬≠sys¬≠tem und die Stack-Engi¬≠ne Ver¬≠lass ist ‚Äď f√ľr eine sehr gute Leis¬≠tung sor¬≠gen, sei es mit oder ohne SMT.

Zen hat also kei¬≠ne ALU/A¬≠GU-P√§r¬≠chen, fol¬≠ge¬≠rich¬≠tig gibt es auch kei¬≠ne gemein¬≠sa¬≠men War¬≠te¬≠schlan¬≠gen mehr. Jede ALU oder AGU hat eine eige¬≠ne, die jeweils 14 Ein¬≠tr√§¬≠ge auf¬≠weist, zusam¬≠men sind dies also 6 x 14 = 84 Ein¬≠tr√§¬≠ge. Dies ist ‚Äď wie bereits in der Ein¬≠lei¬≠tung geschrie¬≠ben ‚Äď etwas opti¬≠mis¬≠tisch gerech¬≠net. Schlie√ü¬≠lich kann man nicht frei √ľber f√ľnf Autos ver¬≠f√ľ¬≠gen, wenn man selbst nur zwei besitzt und die rest¬≠li¬≠chen drei den Nach¬≠barn geh√∂¬≠ren. Die¬≠ser Sach¬≠ver¬≠halt ist des¬≠halb gegen¬≠√ľber Bull¬≠do¬≠zer als ein klei¬≠ner R√ľck¬≠schritt zu wer¬≠ten, da die 40 Ein¬≠tr√§¬≠ge Bull¬≠do¬≠zers im Ide¬≠al¬≠fall auch nur einer ein¬≠zel¬≠nen Pipe¬≠line zur Ver¬≠f√ľ¬≠gung gestellt wer¬≠den konn¬≠ten. Damit wird das Design simp¬≠ler, l√§sst sich ener¬≠gie¬≠spa¬≠ren¬≠der betrei¬≠ben und erm√∂g¬≠licht auch einen etwas h√∂he¬≠ren Takt, der wei¬≠ter gestei¬≠gert wer¬≠den kann, sofern man die ein¬≠ge¬≠spar¬≠te Ener¬≠gie reinves¬≠tiert. Gegen¬≠√ľber den alten K8- und K10.5‚ÄĎDesigns, die 8 bzw. 12 Ein¬≠tr√§¬≠ge pro ALU-/AGU-Paar hat¬≠ten, ist es in jedem Fall ein Fortschritt.

Die vier ALUs k√∂n¬≠nen alle die all¬≠ge¬≠mein √ľbli¬≠chen x86-INT-Berech¬≠nun¬≠gen aus¬≠f√ľh¬≠ren. Sel¬≠te¬≠ne¬≠re Befeh¬≠le wie Inte¬≠ger-Mul¬≠ti¬≠pli¬≠ka¬≠ti¬≠on oder Divi¬≠si¬≠on sind nur an je einer m√∂g¬≠lich, was aus¬≠rei¬≠chend ist, da die¬≠se Instruk¬≠tio¬≠nen eher die Aus¬≠nah¬≠men als die Regel in Stan¬≠dard-Pro¬≠gramm¬≠codes dar¬≠stel¬≠len. Branch-Befeh¬≠le sind dage¬≠gen an zwei ALUs m√∂g¬≠lich. Die¬≠se tre¬≠ten h√§u¬≠fi¬≠ger als Inte¬≠ger-Mul¬≠ti¬≠pli¬≠ka¬≠ti¬≠on oder ‚ÄĎDivi¬≠si¬≠on auf. Ins¬≠be¬≠son¬≠de¬≠re wenn wie bei SMT zwei Threads das Rechen¬≠werk bev√∂l¬≠kern, ist eine 2. Branch-Ein¬≠heit des¬≠halb n√ľtz¬≠lich. Intel r√ľs¬≠te¬≠te die¬≠se z.B. eben¬≠falls ab der Has¬≠well-Gene¬≠ra¬≠ti¬≠on nach. Bekannt war dies bereits seit den Com¬≠pi¬≠ler-Leaks im Okto¬≠ber (sie¬≠he letz¬≠te Zei¬≠le in den blau ein¬≠ge¬≠f√§rb¬≠ten INT-Bl√∂cken).

Abschlie¬≠√üend muss man noch den Umfang der INT-Regis¬≠ter erw√§h¬≠nen. Zen ver¬≠f√ľgt √ľber ins¬≠ge¬≠samt 168 Regis¬≠ter und liegt damit genau auf Has¬≠well-Niveau. Bull¬≠do¬≠zer hat¬≠te 160, San¬≠dy Bridge 144 und Sky¬≠la¬≠ke 180. Wich¬≠tig f√ľr die Rechen¬≠leis¬≠tung ist die Gr√∂¬≠√üe der soge¬≠nann¬≠ten Reti¬≠re-War¬≠te¬≠schlan¬≠ge, die¬≠se umfasst 192 Ein¬≠tr√§¬≠ge, die im SMT-Betrieb fest auf¬≠ge¬≠teilt wer¬≠den. Es ste¬≠hen im SMT-Betrieb also jedem Thread 96 Ein¬≠tr√§¬≠ge zur Verf√ľgung.

Wei¬≠ter geht es mit der Beschrei¬≠bung der FPU.