Integer izvršne jedinice
K10 arhitektura je bila konceptualno organizovana oko skupa od tri putanje. Svaka putanja je imala svoj zasebni instrukcijski scheduler, spojen sa parom integer izvršnih jedinica. Taj par čini ALU i AGU. ALU je aritmetičko logička jedinica, a AGU je jedinica za adresnu aritmetiku. Kod K7, K8 i K10 ovakvih parova ima ukupno tri, koliko ima i putanja. Sa Buldožerom AMD je napustio ovakav koncept i sada se koristi daleko fleksibilniji, zajednički scheduler koji sadrži pozicije za do 40 instrukcija, ali umesto tri ALU/AGU jedinice, 15h poseduje 2 ALU i 2 AGU, koje su povezane nezavisno na zajednički scheduler. Ovo znači da kada instrukcija dođe do scheduler-a, može da se izvrši na prvoj slobdnoj izvršnoj jedinici. Ukoliko je u pitanju ALU instrukcija, ona se izvršava na EX0 ili EX1, bez potrebe za promenom putanje i forwardingom. Isto tako i AGU operacije. Izvršavanje se vrši na bilo kojoj slobodnoj jedinici. Smanjen broj ALU jedinica ne bi trebalo značajno da utiče na performanse, zbog prirode integer koda. Oko 50% operacija su load/store. Buldožer jezgro je u stanju da izvrši jednak broj load/store operacija kao i K10, iako K10 poseduje treću AGU jedinicu, keš je dvoportni. O keš arhitekturi i memorijskom reorderingu smo pisali ranije.
EX0 ALU jedinica je odgovorna za POPCNT (Population Count) i LZCNT (Leading Zero Count) operacije. Ove instrukcije se koriste kod implementacije genetskih algoritama i igraju ulogu u HPC (high performance computing-u).Pored ovoga EX0 može da izvrši većinu ALU operacija uključujući i celobrojno deljenje (IDIV). Ova jedinica sadrži „unpipelined“ celobrojni delilac. EX1 za razliku od EX0 sadrži celobrojni množilac koji je „pipelined“ i upravlja spojenim operacijama grananja (fused branches). AGU jedinice, prema AMD 15h Optimisation Manualu nazvane su AGLU0 i AGLU1, su u stanju da navodno izvrše pored adresnih operacija i prostije logičke operacije, poput bitshift, rotate, XOR, AND i sličnih. U Optimisation Manualu nije dokumentovano ništa osim LEA instrukcije koja može biti izvršena na AGU ukoliko se koriste operacije sa 3 ili 4 operanda. Ako je to tačno, onda AGLU jedinice jedino mogu da posluže kao pomoćna jedinice, ali nikako se ne mogu nazvati jedinicama koje izvršavaju nekakve bulovske logičke operacije.
Dodaj komentar