Vahemälu töö ja printsiibid

From ICO wiki
Revision as of 21:39, 3 October 2013 by Ktampold (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Autor: Kertu Tampõld, AK31

Sissejuhatus

Artiklis Vahemälu sai selgeks mida kujutavad endast vahemälu, CPU ning salvestusseadmed. Järgnevalt üritan illustratsioonide abil kirjeldada kuidas vahemälu täpselt töötab.

Kihid (Layers)

Tavalisel arvutil on üks kuni kolm vahemälu kihti (L1-L3). Erinevad kihid on kasutusel, kiirendamaks andmete leidmist ning optimeerimaks nende säilitamist vahemälus.

1. tase (Level-1) kujutab endast väikeseid mälusüsteemikesi mis on protsessori sisse ehitatud.

2. tase (Level-2) koosneb väikestest mälupankadest emaplaadil.

Mõndadel mikroprotsessoritel on kaks vahemälu taset ehitatud otse enda kiibile, sellisel juhul muutub emaplaadil olev vahemälu (asub mikroprotsessori ning põhimälu vahel) 3. kihiks (Layer-3).

Töö ise

Kui kasutaja tekitab vajaduse andmete järele (soovib faili avada, hakkab programmi avama jne), kontrollitakse esimesega ega antud andmed juba kasutusel ei ole. Sel juhul saab soovitud andmed kohe kätte. Järgmisena küsitakse 1.taseme vahemälust, andmete olemasolu korral saab need kohe välja anda. Kui ka 1. kihis vajalikke andmeid ei leidunud, küsitakse neid 2. kihist. Kui ka 2. kihis andmeid ei olnud, liigub päring edasi põhilise mäluseadme juurde. Sealt leitud tulemused saadetakse 2. kihi vahemällu ning sealt edasi kuni päringu tegijani välja.

Vahemälu printsiibid

Efektiivse mälu sihiks on efektiivne ajakasutus. Mida kiirem on protsessori töö andmetele ligi pääsemisel, seda parem. Vahemälud töötavad programmi käitumise lokaalsuse baasil, ning seda väljendavad 3 printsiipi:

1. Ruumiline lokaalsus (Spatial Locality) – kui pöördumine on tehtud kindlasse kohta mälus, on suur tõenäosus et järgnevad pöördumised
tehakse samasse või ligilähedasse kohta programmi eluea kestel.
2. Ajaline lokaalsus (Temporal Locality – täiendab ruumilist lokaalsust. 
Saanud jada viiteid kohta n, on taaskord suur tõenäosus et antud viidetele järgnevad viited sobivad omakorda jadasse sisse.
Jada elementidele viidatakse kindalsti taas programmi eluea kestel.
3. Järjestuvus (Sequentiality) – kui viide on tehtud kindlasse kohta s, on tõenäoline et järgnevad mitu viidet viitavad kohta s+1. 

Järjestuvus on ruumilise lokaalsuse piiratud tüüp ning võidakse pidada selle alamhulgaks

Üks vahemälu põhimõtteid seisneb selles, et protsessor pääseks mälule ligi võimalikult kiiresti, samal ajal võimaldades säilitada ja hoiustada võimalikult suurt andmehulka ning tehes seda kõike minimaalsete kuludega. Seda võib kokku võtta kolme küsimusega:

Kui palju?
Kui kiire?
Kui kallis?

Kahjuks on kolme elemendi omavaheline suhe selline, et kõike korraga ei saa. Kui tõuseb kiirus, tõuseb ka hind; kui tõuseb mahutavus, hind langeb kuid samal ajal langeb ka kiirus.




Lingid

http://news.softpedia.com/news/How-Cache-Memory-Works-83803.shtml

Pildi allikas: https://github.com/orientechnologies/orientdb/wiki/Caching

http://www.ecs.umass.edu/ece/koren/architecture/Cache/tutorial.html

http://computer.howstuffworks.com/cache4.htm