Što je predmemorija?

Kada se traže podaci iz bilo kojeg izvora, uvijek postoji određeno kašnjenje. Ping prema web poslužiteljima mjeri se u milisekundama, vrijeme pristupa pohrani može imati latencije u mikrosekundama, dok se latencija RAM-a mjeri u ciklusima CPU takta. Naravno, ove vrste brzina bile bi nezamislive prije samo nekoliko desetljeća, ali u sadašnjosti nikada nisu dovoljno velike. Brzina pristupa redovito je neki oblik uskog grla u izvedbi. Jedan od načina na koji se to može riješiti je predmemoriranje.

Spremanje u predmemoriju je proces pohranjivanja privremene kopije resursa na način da mu se može pristupiti brže nego inače. Postoji veliki raspon implementacija u softveru i hardveru. Predmemorije mogu djelovati kao predmemorije za čitanje, predmemorije za pisanje ili oboje.

Čitaj predmemorije

U predmemoriju za čitanje podaci koji su prethodno zatraženi pohranjuju se u predmemoriju radi bržeg pristupa. U nekim scenarijima, predmemorija se čak može preventivno učitati podacima koji omogućuju posluživanje prvog zahtjeva iz predmemorije, a ne samo sljedećih zahtjeva.

Predmemorija za čitanje koja vam je najvjerojatnije poznata je predmemorija preglednika. Ovdje preglednik pohranjuje lokalnu kopiju traženih resursa. To znači da ako i kada se web stranica ponovno učita ili se učita slična stranica koja koristi veći dio istog sadržaja, taj se sadržaj može poslužiti iz predmemorije, a ne s web poslužitelja. Ne samo da to znači da se web-stranica može brže učitavati, već i smanjuje opterećenje web-poslužitelja i smanjuje količinu podataka koje korisnik treba preuzeti, što može biti važno na vezama s ograničenim protokom.

Sam RAM također djeluje kao predmemorija za čitanje podataka na tvrdom disku. U ovom slučaju, podaci za pokrenuti program se preventivno učitavaju u RAM kako bi im CPU mogao brže pristupiti. Podaci iz RAM-a zatim se dalje pohranjuju u predmemoriju CPU-a, iako je postupak za to mnogo složeniji jer se predmemorija CPU-a mjeri u megabajtima, a ne u gigabajtima.

Predmemorije pisanja

Predmemorija pisanja je predmemorija koja može apsorbirati podatke koji se zapisuju na sporiji uređaj. Uobičajeni primjer za to bila bi SLC predmemorija u modernim SSD-ovima. Ova predmemorija ne dopušta brže čitanje podataka, međutim, mnogo je brže pisati u nju nego u TLC ili QLC flash koji čini ostatak SSD-a. SLC predmemorija može apsorbirati brze operacije pisanja, a zatim istovaruje te podatke što je prije moguće na TLC flash koji nudi puno bolju gustoću pohrane, ali je također puno sporiji za pisanje. Korištenje flash memorije na ovaj način optimizira je za velike brzine pisanja i visoku gustoću pohrane.

Hibridne predmemorije

Postoji mnogo načina za rukovanje predmemorijama koji im mogu omogućiti da djeluju i kao predmemorija za čitanje i pisanje. Svaka od ovih metoda drugačije obrađuje operacije pisanja i ima prednosti i nedostatke. Tri opcije su pisanje okolo, pisanje kroz i ponovno pisanje. Predmemorija za pisanje u potpunosti preskače predmemoriju prilikom pisanja, predmemorija za pisanje piše u predmemoriju, ali operaciju smatra dovršenom tek kada je zapisana u pohranu. Predmemorija za povratno pisanje piše u predmemoriju i zatim smatra operaciju dovršenom, oslanjajući se na predmemoriju da je prenese u pohranu ako je potrebno.

Write-around može biti koristan ako očekujete veliku količinu pisanja jer smanjuje odljev predmemorije. To, međutim, znači da će se operacija koja zatim čita bilo koji od tih zapisanih podataka prvi put suočiti s barem jednim promašajem predmemorije. Predmemorije za pisanje odmah spremaju operacije pisanja u predmemoriju, što znači da se rezultat može poslužiti iz predmemorije prvi put kada se zatraži. Međutim, da bi se smatrala dovršenom, operacija pisanja također treba zapisati podatke na disk što dodaje kašnjenje. Predmemorija za povratno upisivanje ima istu prednost kao i predmemorija za upisivanje, dopuštajući da se pisani podaci odmah poslužuju iz predmemorije. Ipak, ne zahtijeva operacije pisanja za pisanje na disk da bi se smatralo dovršenim. To smanjuje latenciju pisanja, ali dolazi s rizikom od gubitka podataka ako je predmemorija nepostojana i ne dovrši zapisivanje podataka natrag u pohranu prije nego što nestane struje.

Kako ukloniti podatke iz predmemorije?

Jedan od ograničavajućih faktora svake predmemorije je kapacitet. Velika predmemorija traži dugo vremena za pretraživanje, negirajući dobar dio prednosti korištenja predmemorije. Memorijske tehnologije koje se koriste za predmemoriranje također su skuplje od memorije iz koje predmemoriraju. Da to nije slučaj, vjerojatno bi taj memorijski sloj promijenio memorijske tehnologije radi poboljšanja performansi. Oba ova faktora znače da su predmemorije obično relativno male, posebno u usporedbi s medijem za pohranu s kojeg predmemoriraju. RAM ima manji kapacitet od pohrane, a CPU cache ima manji kapacitet od RAM-a. SLC predmemorija ima manji kapacitet od TLC memorije.

Sve to znači da je često potrebno ciklički izbaciti podatke iz predmemorije kako bi se oslobodio prostor za nove podatke koje je potrebno predmemorirati. Postoji niz različitih pristupa tome. "Rijeđe korišteno", preferira izbacivanje unosa iz predmemorije koji imaju najmanji broj pristupa. To može biti korisno za predviđanje koji će unosi imati najmanji učinak na buduće promašaje predmemorije, ali bi također računalo da nedavno dodani unosi imaju nizak broj pristupa, što može dovesti do nestanka predmemorije.

"Najrjeđe korišteno" preferira izbacivanje unosa iz predmemorije koji nisu korišteni neko vrijeme. Ovo pretpostavlja da se trenutno ne koriste, ali ne uzima u obzir jesu li se intenzivno koristili prije nekog vremena. "Posljednje korišteno" preferira izbacivanje posljednje korištenih unosa iz predmemorije, pod pretpostavkom da su korišteni i da se neće morati ponovno koristiti. Najbolji pristup općenito je kombinacija sva tri, na temelju statistike korištenja.

Zastarjele informacije i sigurnosni rizici

Glavni rizik od predmemorija je da informacije koje sadrže mogu postati ustajale. Unos u predmemoriju smatra se zastarjelim kada su izvorni podaci ažurirani ostavljajući unos u predmemoriju zastarjelim. Važno je redovito provjeravati podudara li se živa kopija koja se poslužuje s predmemoriranom kopijom.

Konkretno na web stranicama, također je iznimno važno identificirati koji se podaci mogu, a koji ne mogu pohraniti u predmemoriju. Na primjer, savršeno je u redu da se velika nepromjenjiva JavaScript datoteka spremi u predmemoriju. Ovo štedi korisnika da ga ne preuzima svaki put, a može čak biti od koristi drugim korisnicima koji poslužuju istu predmemoriju. Međutim, ne možete predmemorirati podatke specifične za sesiju. Zamislite što bi se dogodilo da ste pregledavali aplikaciju za razmjenu poruka dok ste prijavljeni kao vi, samo da biste otkrili da vam je poslužena predmemorirana verzija poruka drugog korisnika. Srećom, web poslužitelji mogu odrediti koji se resursi mogu, a koji ne mogu pohraniti u predmemoriju, a ti su problemi općenito dobro poznati pa je malo ovakvih problema.

Zaključak

Predmemorija je dio memorije koji može pohraniti neke nedavno korištene podatke na način pohranjivanja kojem je pristup brži nego što bi bio ponovni dovršetak normalnog procesa pristupa podacima. Predmemorija je obično ograničenog kapaciteta što znači da treba izbaciti unose nakon što se napuni. Predmemorije su općenito transparentne za korisnika, što znači da je latencija jedini pokazatelj da je rezultat poslužen putem predmemorije.


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