Unitatea FP

Putem trece acum la FPU, adică unitatea de execuție pentru numere reale(FP). În familia Zen, FPU-ul are un model arhitectural de coprocesor, având propria unitate de redenumire a regiștrilor, un programator out-of-order, un registru fizic de fișiere (PRF) și 4 canale de execuție. RCU-ul este folosit in comun cu motorul de execuție de tip Integer. FPU-ul se ocupă de executarea instrucțiunilor x87, MMX, SSE and AVX.

Spre deosebire de Zen+, Zen 2 dispune de lățime de bandă dublă, având 256biti, de care beneficiază simultan PRF-ul, unitățile de execuție, canalele de date și memoria cache L1.

FPU-ul a fost restructurat în Zen 2, PRF-ul și ALU-urile fiind separate în două blocuri de execuție diferite. Datorită acestei reorganizări, instrucțiunile AVX-256 se executa de două ori mai repede. PFR-ul executa instrucțiunile de tip x87, MMX, SSE și AVX, aflate în partea inferioară a unui registru YMM. ALU-urile vor executa instrucțiunile AVX-256, aflate în partea superioară a unui registru YMM. Astfel, se pot executa pana la 4 instrucțiuni AVX-256 per ciclu. Totuși, latența executiei operațiilor de ridicat la putere(FMA) în FP rămâne de 5 cicluri.

Unitatea de redenumire a regiștrilor poate procesa până la patru MOPs per ciclu, fiind capabilă să salveze registri arhitecturali ai instrucțiunilor și registri temporari necesari instrucțiunilor microcodate în PRF. Datorită lățimii de bandă crescută, Zen 2 folosește un singur registru de 256 biti și memorează în tabelul de registre alocate (RAT) dacă partea superioară a YMM-ului conține valori nenule, astfel determinând că este o instrucțiune de tip x87 sau MMX. În cazul instrucțiunilor SSE și AVX este necesară combinarea regiștrilor pentru a evita amestecarea acestora in partea superioară a unui registru YMM. Acest proces necesita 100 de cicluri pentru a se executa.

Coada de operații fără programare este folosită pentru a prelua din sarcina supusa asupra programatorului FP. Programatorul FP poate transmite până la patru operații per ciclu către canalele de execuție. Aceste operații necesita mai mult timp pentru a fi executate.

Canalele de tip FP, precum și cele Integer, sunt asimetrice, fiecare putând executa un set independent de operații. ALU-urile sunt grupate pe domenii, astfel fiind utilizat mai puțin spațiu pe die. Aceasta modificare faciliteaza ridicarea procesoarelor la frecvențe mai ridicate. Canalele 0 și 1 pot executa instrucțiuni FMA care utilizeaza 3 operanzi, cel de-al treilea operand fiind imprumutat un port al PRF-ului pe canalul 3 (în această situație canalul respectiv este indisponibil pentru un ciclu); cu exceptia situatiei in care al treilea operand nu este întors recursiv ca rezultat al unei alte operații. Toate canalele pot executa operații logice. Doar canalul 2 poate executa µOPs de salvare de date.

 

Pages ( 6 of 12 ): « Previous1 ... 45 6 78 ... 12Next »

Leave a Reply

Lasă un răspuns

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.