Cache memoria

Informatikan, **cache memoria** edo **aurrememoria** memoria nagusiaren datu kopiatu batzuen bilduma da. Memoria nagusia prozesagailua baino askoz motelagoa da, gainera azken honek memoriako datu/aginduak atzitu behar dituenez memoriak sistemaren atzipen denbora moteldu egiten du. Horretarako erabiltzen da *cache* memoria, behar diren datu/aginduak azkar atzitzeko posibilitatea izateko. **Cache memoria** prozesagailutik hurbil dago eta bere atzipen denbora memoria nagusiaren atzipen denbora baino askoz azkarragoa da.

Cachea prozesatzeko unitate zentralaren (CPU) eta ausazko sarbidedun memoriaren (RAM) artean kokatzen den memoria da, datu trukea azkartzeko.

Datu bat lehen aldiz atzitzen denean, cachean kopia bat egiten da; hurrengo atzipenak aipatutako kopia horri egiten zaizkio, datuaren atzipenerako denboraren bataz bestekoa gutxituz. Mikroprozesadoreak memoria nagusiko kokapen batean irakurri edo idatzi behar duenean, lehendabizi datu horien kopia bat cachean dagoen egiaztatzen du. Hala bada, mikroprozesadoreak momentuan bertan idatzi edo irakurtzen du cache memorian, zeina memoria nagusiko irakurketa edo idazketa baino askoz azkarragoa den.

Antzeko moduan, software-cache bati buruz hitz egiten dugunean, leku motelago batetik kalkulatutako edo kopiatutako datuak dauzkan memoria eremuaz hitz egiten ari gara. Ohiko adibide bat web nabigatzaileko cacheari buruz hitz egitea da, diskoko espazio honek Internetetik edo barneko saretik deskargatutako aldi baterako informazioa dauka, zeinak sistemaren jatorriagatik, beti edukiko duen makinako disko fisikoak baino abiadura motelagoa.

## Motibazioa 
Tamainak eta abiadurak berezkoa duten erlazioa dute, izan ere, baliabide handiago batek distantzia fisiko handiagoak dakartza. Bestalde, ordea, SRAM  bezalako kostu handiko teknologia, eta merkeagoak diren eta  katean erraz ekoizten diren DRAM edo disko gogor modukoen arteko konpentsazio bat ere badakar.

Cache batez hornitutako buffer memoria batek onurak dakartza banda-zabalera eta latentziarentzat.

#### Latentzia 
Baliabide handiago batek atzipenerako latentzia esanguratsu batean eragiten du, adibidez, ehundaka erloju-ziklo pasa daitezke 4 GHz-eko gaur egungo prozesadore batek DRAM bateko datuak erabilgarri izaterako. Hau arintzeko, zati handietan irakurri, eta denboraldi batean datuak azkarragoa den edo prozesadoretik gertuago dagoen memoria batean gordetzen dira, ondoren datozen irakurketak azkarragoak izango diren esperantzarekin. Aurreikuspenek edo aldez aurreko lortze esplizituek (*prefetching ingelesez*) ondoren etorriko diren irakurketak nondik etorriko diren ere asma dezakete eta, beraz, eskaerak aurrez egin ditzakete; hau ongi egin ezkero latentzia ia baztergarria izatera murrizten da.

#### Banda-zabalera 
Cache baten erabilerak azpian dagoen baliabidearen errendimendu handiagoa ere ahalbidetzen du (ingelesez *throughput* terminoa erabiltzen da), hainbat transferentzia txiki eskaera handiago eta eraginkorragoetan paketatuz. DRAMen kasuan, hau bus zabalago batetik zerbitzatu ahalko litzateke. Imajina ezazu programa bat 32 biteko helbide espazio batean bytak eskaneatzen, baina, txipetik kanpo 128 biteko datu bus baten kargu; cacherik gabeko byte indibidualen atzipenak banda-zabalera osoaren 1/16 erabiltzea ahalbidetuko luke solik, eta datu mugimenduen 80% helbideak izango lirateke. Horrela, zati handiagoak irakurtzeak behar den banda-zabaleraren frakzioa murrizten du helbidearen informazioa transmititzeko.

## Cache motak 
Cache unitatea abiadura handiko biltegiratze sistema berezi bat da. Memoria nagusiko gordetako area bat izan daiteke, edo abiadura handiko aparteko biltegiratze gailu bat.

Hiru dira sarri konputagailu pertsonaletan erabiltzen diren cache motak: disko-cacheak, pista-cacheak eta web-cacheak.

#### Disko-cacheak 
Disko bati lotutako RAM memoria zati bat da, berriki irakurritako datuak biltegiratzeko eta berriz ere eskatzen diren kasuetarako karga arintzeko asmoarekin. Aplikazioen errendimendua nabarmen hobe dezake, izan ere, RAMeko byte bateko datuak atzitzea disko gogorreko byte bat atzitzea baino mila aldiz azkarragoa izan daiteke.

#### Pista-cacheak 
RAM motako egoera sendoko memoria bat da, zeinaren mota honen erabilera superkonputagailuetara mugatzen den bere kostu handia kontuan hartuta.

#### Web-cacheak 
Web dokumentuak biltegiratzearen arduraduna da kontsumitutako banda-zabalera, zerbitzarien karga eta deskargen atzerapenak murrizteko. 3 cache web mota daude: **Pribatuak**, zeinak erabiltzaile batentzat solik funtzionatzen duten, **Partekatuak**, hainbat erabiltzaileri zerbitzatzen dizkiete orriak eta **Pasarela**, zeinak jatorrizko zerbitzariaren kargu funtzionatzen duten, bezeroek ez bereizteko moduan.

## Kanpo estekak