Vahemälu töö ja printsiibid: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 5: Line 5:
=Kihid (Layers)=
=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.
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.
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.
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).
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öö:
=Töö ise=
[[Image:cache_pilt1.jpg]]
[[Image:cache_pilt1.jpg]]


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.
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 ned kohe välja anda.
Järgmisena küsitakse 1.taseme vahemälust, andmete olemasolu korral saab need kohe välja anda.
 


[[Image:Cache_pilt2.jpg]]
   
   


Line 23: Line 26:
=Vahemälu printsiibid=
=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:
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
  '''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.
  tehakse samasse või ligilähedasse kohta programmi eluea kestel.


  2. Ajaline lokaalsus (Temporal Locality – täiendab ruumilist lokaalsust.  
  '''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.
  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.
  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.  
  '''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
Järjestuvus on ruumilise lokaalsuse piiratud tüüp ning võidakse pidada selle alamhulgaks



Revision as of 21:36, 3 October 2013

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 nig 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