| Hardver | Procesori | AMD FX procesori
Procesori

AMD FX procesori

 

Keš arhitektura

 

Latencija L1 keša je povećana sa 3 na 4 ciklusa, dok latencija L2 keša iznosi čak 20 ciklusa. L2 keš je sada deljen na nivou modula između dva integer bloka – jezgra i njegov kapacitet je povećan četiri puta u odnosu na K10. Keš polisa za L1-D je sada write-through, što znači da se za svako izbacivanje keš linije iz L1D vrši istovremeni upis izmene i u L2 keš. Zbog ovoga postoji jednostavan paritet u L2, pa u slučaju promašaja u L2 nema bespotrebnog kopiranja podataka iz L1 u L2. L2 je zbog toga uglavnom inkluzivan i sadrži kopiju podataka iz L1D keša zarad bolje keš koherencije između jezgara u modulu, snoop saobraćaj između jezgara je nepoželjan. Ukoliko drugo jezgro „želi“ da pročita podatak iz L1 keša prvog jezgra, potrebno je da izvrši signalizaciju, zatim prvo jezgro šalje željeni podatak u L1 keš drugog jezgra. Ovo je izbegnuto tako što se sada nalaze odgovarajući podaci na tačno utvrđenoj lokaciji u L2 kešu, tako da nema potrebe za međusobnom signalizacijom između jezgara. Ipak, ovo je „tradeoff“, jer je zbog WT polise upis u L1 keš prilično spor, ali s druge strane podaci iz L1D keš memorija oba jezgra se uvek nalaze u L2 i raspoloživi su za oba jezgra. Koliko je ovo „skupo“ po pitanju pada performansi ostaje kao pitanje za diskusiju. Očigledno je da je R&D tim u AMD-u odlučio da žrtvuje nekoliko procenata performansi zarad bolje skalabilnosti u multithread okruženju. Kako bi minimizovali penal zbog WT polise, u AMD-u su odlučili da upis u L2 vrše preko posebno projektovanog WCC – Write Coalescing Cache-a. U WCC se prikupljaju upisi iz oba L1-Data keša, iz oba threada. Kada se ovaj keš napuni, vrši se upis od dve 128-bitne transakcije u ciklusu u L2. WCC je deo L2 keša. Asocijativnost i veličina nije poznata.

L1-Data keš iznosi samo 16KB, što je 4 puta manje nego na K10. Međutim, asocijativnost ovog keša je povećana sa dvostruke na četvorostruku. U principu, procenat pogotka (hit rate) ovog keša bi trebalo da je minorno manji nego kod K10 arhitekture. Ipak, 16K L1-D keša verovatno donosi dodatni procenat penala u performansama. Data keš u svakom BD jezgru podržava dvostruku 128-bitni load. Load/Store jedinice su sada potpuno out-of-order, što znači da je moguć nezavistan upis i čitanje podataka iz L1-Data keša. Kako jezgro poseduje samo 2 AGU jedinice za rad sa adresnim kalkulacijama, moguće je izvršiti najviše dve memorijske operacije i to 2 „Load-a“ ili 1 „Load“ i 1 „Store“ ili samo 1 „Store“.

 

Zambezi_16_TZambezi_18_T

 

U odnosu na prethodnika koji je posedovao load-store queue u dva nivoa, gde su se različite operacije obavljale na dva nivoa, BD poseduje donekle konceptualno jednostavniju mikroarhitekturu sa odvojenim 40-entry load queue-om i 24-entry store queue-om (queue – struktura podataka koja znači RED – FIFO – first in first out). U globalu BD poseduje više memorijskih operacija „u letu“ od K10. Ako ga uporedimo sa K8 i K10, ovaj prvi je imao potpuno „in-order“ memorijsku organizaciju, dok K10 poseduje ne-spekulativnu „out of order“ memorijsku organizaciju. (ne podržava spekulativni upis pre drugog upisa) Konkretno Intelova Core arhitektura poseduje znatno sofisticiraniji mehanizam za memorijski „re-ordering“, koji je baziran na spekulativnom predviđanju zavisnosti podataka (memory disambiguation).

TLB keš (TLB – Translate Look Aside Buffer – memorija za keširanje memorijskih stranica) je organizovan u dva nivoa. Prvi nivo iznosi 32 pozicije, potpuno je asocijativan. Ukoliko se tražena stranica ne nalazi ukeširana na L1 DTLB, traži se u drugom nivou koji iznosi čak 1024 lokacije i ima osmostruku asocijativnost. TLB baferi u BD jezgru mogu da keširaju bilo koju kombinaciju od 4KB do 1GB memorijskih stranica. L2 DTLB može da sadrži 512 4 kilobajtnih stranica, odnosno 128 2 megabajtnih i 16 1 gigabajtnih. Ovo znači da ukoliko sistem sa FX Zambezi procesorom „nahranite“ sa 16 GB memorije, neće biti nikakvih nuspojava poput usporenja rada sa memorijom. Međutim u praksi ova nova keš arhitektura se nije pokazala baš kao idealno rešenje. Na dijagramima, plavom bojom su prikazane zone niske latencije. Veća zona, znači bolji prefetch i niže latencije.

 

cache10h_Tcache15h_TcacheSandy_T
Cache 10hCache 15hCache SB
cache10h_graph_Tcache15h_graph_TcacheSandy_graph_T

 

L2 keš je deljen na nivou modula između dva jezgra. Latencija ovog keša je prilično visoka i iznosi 20 ciklusa. Razlog za ovako visoko vreme pristupa je najverovatnije optimizacija za visoke frekvencije. U poređenju sa Sandy Bridge jezgrom, BD ima praktično dvostruko višu latenciju i za 33% višu latenciju od K10. Takođe i vreme pristupa memoriji je znatno veće. U zonama od 16MB i više, FX procesoru sa 1.86GT DDR3 memorijom potrebno je oko 175 procesorskih ciklusa da bi pristupio memoriji. Nasuprot tome, Sandy Bridge-u treba oko 145 ciklusa, dok Phenomu II treba oko 165 ciklusa sa DDR3 1600 CL6 memorijom. Razlog ovoliko većoj latenciji u pristupu memoriji je i brzina L3 keša. Naime, kod Sandy Bridge-a L3 keš „leži“ na superbrzoj ring-bus magistrali, koja radi na frekvenciji procesora. Kod K10 i Bulldozer jezgara, L3 keš i northbridge rade na 2000, odnosno 2200 MHz. L3 je kod BD jezgara znatno unapređen u odnosu na K10 po pitanju bandwidth-a, ali latencija L3 keša je povećana.

Drugostepeni keš u Bulldozer modulu je optimizovan za veću memorijsku konkurentnost, što znači da je omogućen veći broj paralelnih memorijskih transakcija u odnosu na prethodnu mikroarhitekturu. Ovo je pozitivno unapređenje koje može da se vidi u pojedinim situacijama. FX procesori briljiraju u data kompresiji, naročito u WinRAR-u. Poneka igra ima solidan benefit od ovoga, što se može videti u testovima.

 

Ivan Vujić

Software, storage, network etc editor @ AXE
Database migration @ RC ETF

Dodaj komentar

Kliknite ovde da biste poslali komentar