SMT
Za razliku od Bulldozer koncepta, Zen ima sve resurse dostupne kako za jedan tred, tako i za dva treda u SMT rezimu. Front end koristi TLB-ove koji su deljeni u zavisnosti od treda odnosno SMT tag-a, Branch Prediction i Register Renameri deljeni u zavisnosti od algoritamskog prioriteta, dok su izvršne jedinice deljene u zavisnosti od raspoloživih resursa. Svojevrstan „tradeoff“ predstavljaju microop queue, retire queue i store queue, zbog kompleksnosti implementacije, koji bi u sledećim generacijama Zen arhitekture trebalo da budu optimizovaniji. To u prevodu znači da ako Store Queue ima 44 polja za upis, od toga 22 polja fiksno je za tred 0, drugih 22 polja je za tred 1, bez obzira da li jezgro aktivno izvršava oba ili samo jedan tred.
Micro-op Queue ima za cilj da razvrsta instrukcije na INT ili FP i ovaj niz sadrži redove sa do 6 mikrooperacija. Jedan element ovog Micro-Op queue-a pripada jednom tredu ekskluzivno, sledeći drugom i tako naizmenično, ovaj deo procesorskog pipeline-a je produžen za jedno stanje. Takođe i Retire Queue je povećan za jedno stanje, opet zbog naizmeničnog upisa izvršenih instrukcija. Ovime je najverovatnije žrtvovano 3-5% performansi zarad SMT-a.
Kolika je efikasnost SMT implementacije na Zen arhitekturi u odnosu na Intelov HyperThreading ostaje da se vidi, a do sada već postoje procesori koji mogu da izvršavaju i do 8 tredova po jezgru, poput Power8 platforme. Od kvaliteta implementacije zavisi koliko će tredovi da blokiraju jedan drugi i da li će utilizacija izvršnih resursa biti na visokom nivou sa dva treda u jednom jezgru.
Dodaj komentar