Što je Translation Lookaside Buffer?

CPU-i su nevjerojatno složene zvijeri. Postoji ogroman broj međusobno povezanih dijelova koji svi moraju raditi u savršenom skladu kako bi postigli razine performansi koje vidimo. Izvedba memorije ključni je čimbenik u izvedbi modernih CPU-a, posebno kao ograničavajući čimbenik.

Zašto je brzina pamćenja toliko važna?

CPU-i su nevjerojatno brzi, a najnovije generacije rade na 5,7 GHz kada su dovoljno ohlađeni. To im omogućuje da izvrše 5,7 milijardi operacija svake sekunde. Mnoge od ovih operacija izvode radnje na nekoj vrsti podataka koje je potrebno pohraniti u memoriju.

Glavna memorija sustava, poznata kao RAM, također je vrlo brza. Nažalost, vrlo je brz u usporedbi s bilo čim osim CPU-om. Apsolutna latencija na modernom high-end RAM-u je reda veličine 60 nanosekundi. Nažalost, to znači otprilike 342 CPU ciklusa. Kako bi se ubrzao pristup memoriji, koristi se CPU predmemorija koja dinamički sprema podatke u predmemoriju. Ova predmemorija se nalazi na samoj CPU matrici i koristi SRAM ćelije umjesto DRAM ćelija što ga čini puno bržim. Nažalost, predmemorija CPU-a također je puno manja od RAM-a sustava, općenito ne iznosi čak ni 100 MB. Ipak, usprkos svojoj maloj veličini, slojeviti sustav CPU predmemorije znatno povećava performanse sustava.

Dolazi virtualna memorija da sve zabrlja

Moderna računala koriste sustav koji se zove virtualna memorija. Umjesto dodjele adresa fizičke memorije procesima, koriste se adrese virtualne memorije. Svaki proces ima svoj adresni prostor virtualne memorije. Ovo ima dvije prednosti. Prvo, omogućuje jednostavno odvajanje između memorije koja pripada jednom procesu i memorije koja pripada drugom. To pomaže u sprječavanju napada u kojima zlonamjerni softver čita podatke iz memorije drugog softvera, potencijalno pristupajući osjetljivim informacijama. Također skriva strukturu fizičke memorije od procesa. To omogućuje CPU-u da premjesti rijetko korištene bitove memorije u straničnu datoteku na pohrani, bez nužnog demontaže iz virtualnog RAM-a. To omogućuje računalu da nježno upravlja scenarijima u kojima je potrebno više RAM-a nego što je fizički prisutno. Bez virtualne memorije,

Nažalost, ako koristite adrese virtualne memorije, računalo mora zapravo prevesti te adrese virtualne memorije u adrese fizičke memorije da bi pročitalo podatke. Ovo zahtijeva tablicu za pohranjivanje svih prijevoda adresa virtualne memorije u adrese fizičke memorije. Veličina ovoga izravno ovisi o količini RAM-a koji se koristi. Općenito je prilično malen, barem u usporedbi s kapacitetom RAM-a sustava. Nažalost, ako pohranjujete prijevod između virtualnih adresa i fizičkih adresa u RAM-u, trebate uputiti dva zahtjeva RAM-u za svaki zahtjev RAM-u. Jedan za pronalaženje fizičke adrese koju treba zatražiti, a zatim drugi za stvarni pristup toj lokaciji.

Unesite međuspremnik za gledanje prijevoda

Rješenje ovog problema je pohranjivanje prijevodne tablice negdje na brže mjesto. CPU cache bi dobro odgovarao računu, barem iz perspektive brzine. Međutim, problem je u tome što je CPU predmemorija malena i već jako iskorištena. Ne samo da tablica ne stane u predmemoriju, već bi to poremetilo njezinu upotrebu koja već definira performanse.

Naravno, ako princip predmemorije već radi za pristup memoriji, zašto ga ne ponoviti za tablicu prijevoda? A to je upravo ono što je Translation Lookaside Buffer ili TLB. To je predmemorija velike brzine za nedavne prijevode adresa. Nije dovoljno velik da pohrani cijeli stol, ali njegova mala veličina znači da može reagirati vrlo brzo, unutar jednog takta.

Svaki zahtjev za memorijom ide preko TLB-a. Ako postoji pogodak TLB-a, on može dati adresu fizičke memorije za stvarni zahtjev, obično dodajući jedan ciklus latencije. Ako postoji TLB promašaj, traženje se mora izvršiti iz glavne memorije. Postoji mali gubitak performansi za promašaj TLB-a od oko 5 ciklusa, gubitak koji je više nego zasjenjen latencijom pristupa memoriji. Nakon što se prijevod adrese dohvati iz RAM-a sustava, gura se u TLB i zahtjev se zatim ponavlja s trenutnim TLB pogotkom.

Napomena: Postoje različite sheme za TLB deložaciju. Neki mogu koristiti prvi ušao, prvi izašao ili FIFO shemu. Drugi mogu koristiti shemu najrjeđe korištenih ili LFU.

U rijetkim slučajevima kada nema unosa u tablici prijevoda adresa, dolazi do greške na stranici jer traženi podaci nisu u RAM-u. OS tada mora riješiti grešku i prenijeti podatke iz pohrane u RAM prije nego što se zahtjev može nastaviti.

Zaključak

Translation Lookaside Buffer, ili TLB, je predmemorija CPU-a velike brzine posvećena predmemoriji nedavnih prijevoda adresa iz datoteke stranice u RAM-u sustava. Ovo je neophodno jer bi sustavi virtualne memorije, implementirani u svim modernim računalima, zahtijevali dva zahtjeva prema RAM-u za svaki zahtjev prema RAM-u. Jedan za prevođenje adrese virtualne memorije u adresu fizičke memorije, a drugi za stvarni pristup fizičkoj adresi. Predmemoriranjem nedavnih prijevoda kašnjenje memorije može se znatno smanjiti za TLB pogotke.

Mora se paziti da su prijevodi u predmemoriji relevantni za trenutno aktivan proces. Budući da svaki proces ima drugačiji virtualni adresni prostor, ne može se ponovno koristiti. Ne striktno ograničavajući to je bio uzrok ranjivosti Meltdown.


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