Š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.


Leave a Comment

Kako instalirati SSD na stolna i prijenosna računala

Kako instalirati SSD na stolna i prijenosna računala

Kupili ste SSD u nadi da unaprijedite internu pohranu vašeg računala, ali ne znate kako instalirati SSD? Pročitajte ovaj članak odmah!

Kako pronaći IP adresu pisača

Kako pronaći IP adresu pisača

Imate problema s pronalaženjem IP adrese vašeg pisača? Pokazat ćemo vam kako to pronaći.

Što učiniti ako Powerbeats Pro ne može puniti u kutiji

Što učiniti ako Powerbeats Pro ne može puniti u kutiji

Ako vaši Powerbeats Pro ne pune, koristite drugi izvor napajanja i očistite svoje slušalice. Ostavite kutiju otvorenom dok punite slušalice.

Kako povezati prijenosno računalo sa sustavom Windows 11 s projektorom/TV-om

Kako povezati prijenosno računalo sa sustavom Windows 11 s projektorom/TV-om

Pročitajte ovaj članak kako biste naučili jednostavan korak-po-korak postupak za povezivanje prijenosnog računala s projektorom ili TV-om na sustavima Windows 11 i Windows 10.

Osnove 3D ispisa: Obavezna kontrolna lista za održavanje

Osnove 3D ispisa: Obavezna kontrolna lista za održavanje

Održavanje vašeg uređaja u dobrom stanju je nužno. Ovdje su neki korisni savjeti kako održati vaš 3D printer u vrhunskom stanju.

Kako popraviti GeForce Now grešku kod 0xC272008F

Kako popraviti GeForce Now grešku kod 0xC272008F

Upravo se pripremate za noć igranja koja će biti velika – upravo ste preuzeli “Star Wars Outlaws” na GeForce Now streaming servisu. Otkrijte jedini poznati način kako popraviti GeForce Now grešku kod 0xC272008F kako biste ponovno mogli igrati Ubisoft igre.

5 Razloga zašto vaš laptop pregrijava

5 Razloga zašto vaš laptop pregrijava

Saznajte koji su mogući razlozi za pregrijavanje vašeg laptopa, zajedno s savjetima i trikovima kako izbjeći ovaj problem i održati uređaj hladnim.

10 Najboljih NAS uređaja za pohranu za kućnu i profesionalnu upotrebu

10 Najboljih NAS uređaja za pohranu za kućnu i profesionalnu upotrebu

Bilo da tražite NAS za svoj dom ili ured, pogledajte ovu listu najboljih NAS uređaja za pohranu.

Osnove 3D ispisa: Savjeti za održavanje vašeg 3D pisača

Osnove 3D ispisa: Savjeti za održavanje vašeg 3D pisača

Održavanje vaših 3D pisača je vrlo važno kako bi se postigli najbolji rezultati. Evo nekoliko važnih savjeta koje treba imati na umu.

Canon Pixma MG5220: Skenirajte bez tinte

Canon Pixma MG5220: Skenirajte bez tinte

Kako omogućiti skeniranje na Canon Pixma MG5220 kada vam dođe do tinte.