Što je memorijska barijera?

Povijesno CPU-i su bili savršeno sekvencijalni strojevi. Ovo je vrlo logično i lako razumljivo, ali može predstavljati problem s izvedbom. Tijekom godina, bilo je mnogo genijalnih prilagodbi dizajna CPU-a kako bi se izvuklo što više performansi iz silikonskih pločica. Ipak, jedan od zanimljivijih je izvršenje izvan reda. U CPU-ima koji se izvršavaju izvan redoslijeda, instrukcije se ne moraju nužno izvršavati redoslijedom kojim su izdane.

Zastoj u redu

Glavni problem performansi s kojim CPU nailazi u redu zove se zastoj u cjevovodu. To se događa kada instrukcija ovisi o nekoj memoriji, ali ta memorija nije izravno dostupna u registru. U ovom slučaju CPU mora pronaći tu vrijednost u memoriji. Prvo se provjerava CPU predmemorija jer je to najbrži memorijski sloj. Ako vrijednost nije tu, provjerava se RAM memorija sustava. Tijekom tog vremena, CPU mora biti u stanju mirovanja, jer se instrukcije ovisne o memoriji moraju dovršiti redom prije sljedećih instrukcija.

Učinak zastoja u cjevovodu možda i nije tako loš, ali može biti i relativno ozbiljan. Na primjer, L1 predmemorija obično može vratiti rezultat veličine 5 CPU ciklusa. L2 predmemorija može potrajati 20 ciklusa, L3 oko 200 ciklusa, a RAM sustava oko 400 ciklusa. S obzirom da CPU može raditi na oko 5 GHz, što je 5 milijardi ciklusa takta u sekundi, čak ni 400 ciklusa nije tako loše (0,000008%). Ali ako imate mnogo instrukcija koje trebaju referencirati podatke niže u slojevima predmemorije, kumulativni učinak može uzrokovati značajno usporavanje.

Izvršenje izvan reda i preimenovanje registra

Izvršenje izvan redoslijeda je tehnika koja omogućuje planeru da promijeni redoslijed instrukcija u svom redu čekanja. Ovim preuređivanjem može odabrati davanje prioriteta određenim nitima u odnosu na druge. Također može gurnuti upute natrag u red kada imaju ovisnost podataka koja još nije ispunjena. Ovo sprječava zastoje cjevovoda koliko god je to moguće, minimizirajući cikluse mirovanja.

Izvršenje izvan reda zahtijeva značajku koja se zove preimenovanje registra. CPU može pristupiti podacima koji se čuvaju u registrima unutar jednog ciklusa. Registri se koriste za pohranu podataka koji se čitaju i zapisuju. Međutim, bitno je osigurati da računalo u cjelini vidi sve što se događa logičnim redoslijedom, a ne redoslijedom izvan reda, optimiziranim za CPU ciklus. Kako bi se to omogućilo, CPU-i imaju mnogo više logičkih registara nego što zahtijeva CPU arhitektura.

Podaci koji se trebaju ispisati, a imaju „raniju“ uputu koja još nije dovršena, upisuju se u registar posjeda. Ovi podaci se ne prenose u drugi registar kada se nalog sam sredi. Umjesto toga, naziv registra držanja mijenja se u onaj u registru u kojem bi trebao biti. To je donekle slično pripremi deserta prije glavnog jela, ali ga zatim držite u hladnjaku dok ne dođe vrijeme za posluživanje.

Ovi logički registri su potpuno neadresirani. CPU može stvarno adresirati samo logičke registre koji trenutno dijele ime arhitektonskih registara. Uz to, CPU ih je dovoljno svjestan da, ako se druge preuređene upute oslanjaju na podatke u logičkom registru držanja, mogu koristiti njih radije nego "zastarjele" podatke u arhitektonskom registru u to određeno empirijsko vrijeme.

Memorijske barijere

Memorijska barijera – koja se također naziva membar, memorijska ograda ili instrukcija ograde – je instrukcija u računalnom kodu. Programeru omogućuje nametanje ograničenja redoslijeda na memorijske operacije izdane prije i poslije memorijske barijere. Memorijska barijera upućuje CPU planer da osigura da su sve instrukcije obrađene prije bilo koje instrukcije nakon barijere. Ovo se radi kako bi se osiguralo da su važne operacije dovršene ispravnim redoslijedom.

Općenito, na modernim računalima to ne bi trebalo biti potrebno. Izvršavanje izvan redoslijeda i preimenovanje registra dobro su uspostavljena i zrela polja. Unatoč tome, memorijska barijera može biti korisna za starije, manje sofisticirane procesore koji nisu u redu ili se koristi u kritičnim memorijskim operacijama.

Memorijske barijere mogu dovesti do određene štete na performansama. To je zato što oni aktivno sprječavaju CPU planer da optimizira određene dijelove toka instrukcija. To povećava mogućnost zastoja cjevovoda.

Zaključak

Memorijska barijera je instrukcija koja osigurava ograničenje redoslijeda memorijskih operacija. Ovo je važno jer procesori izvršavanja izvan redoslijeda mogu promijeniti redoslijed određenih instrukcija. Iako je preimenovanje registra dobro uspostavljeno kao metoda za osiguravanje integriteta memorije u ovom okruženju, može biti od pomoći ako ga osigurate ručno.

Memorijska barijera prisiljava CPU planer da osigura da su upute dovršene prije bilo koje instrukcije nakon barijere. Ovo sprječava preuređivanje memorijskih operacija. Također sprječava CPU da optimizira tijek instrukcija, što može utjecati na performanse.


Kako klonirati tvrdi disk

Kako klonirati tvrdi disk

U modernom digitalnom dobu, gdje su podaci dragocjena imovina, kloniranje tvrdog diska u sustavu Windows za mnoge može biti ključan proces. Ovaj sveobuhvatni vodič

Kako popraviti upravljački program WUDFRd koji se nije učitao u sustavu Windows 10?

Kako popraviti upravljački program WUDFRd koji se nije učitao u sustavu Windows 10?

Jeste li suočeni s porukom o pogrešci tijekom pokretanja računala koja kaže da se upravljački program WUDFRd nije uspio učitati na vašem računalu?

Kako popraviti šifru pogreške NVIDIA GeForce Experience 0x0003

Kako popraviti šifru pogreške NVIDIA GeForce Experience 0x0003

Imate li NVIDIA GeForce iskustvo s kodom pogreške 0x0003 na radnoj površini? Ako da, pročitajte blog kako biste saznali kako brzo i jednostavno popraviti ovu pogrešku.

Što je SMPS?

Što je SMPS?

Naučite što je SMPS i značenje različitih ocjena učinkovitosti prije nego što odaberete SMPS za svoje računalo.

Zašto se moj Chromebook ne uključuje

Zašto se moj Chromebook ne uključuje

Pronađite odgovore na pitanje Zašto se moj Chromebook ne uključuje? U ovom korisnom vodiču za korisnike Chromebooka.

Kako Googleu prijaviti phishing prijevare

Kako Googleu prijaviti phishing prijevare

Pomoću ovog vodiča saznajte kako Googleu prijaviti prevaranta kako biste ga spriječili da vara druge.

Roomba staje, zapinje i okreće se – popravi

Roomba staje, zapinje i okreće se – popravi

Riješite problem u kojem vaš Roomba robot usisavač stane, zaglavi se i stalno se okreće.

Kako promijeniti grafičke postavke na Steam Decku

Kako promijeniti grafičke postavke na Steam Decku

Steam Deck nudi robusno i svestrano iskustvo igranja na dohvat ruke. Međutim, kako biste optimizirali svoje igranje i osigurali najbolje moguće

Što je sigurnost temeljena na izolaciji?

Što je sigurnost temeljena na izolaciji?

Namjeravali smo se zadubiti u temu koja postaje sve važnija u svijetu kibernetičke sigurnosti: sigurnost temeljena na izolaciji. Ovaj pristup prema

Kako koristiti Auto Clicker za Chromebook

Kako koristiti Auto Clicker za Chromebook

Danas smo namjeravali istražiti alat koji može automatizirati ponavljajuće zadatke klikanja na vašem Chromebooku: Auto Clicker. Ovaj vam alat može uštedjeti vrijeme i