Vahemälu töö ja printsiibid: Difference between revisions
No edit summary |
No edit summary |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Autor: Kertu Tampõld, AK31<br /> | |||
Artiklis | =Sissejuhatus= | ||
Artiklis [https://wiki.itcollege.ee/index.php/Vahem%C3%A4lu 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. | 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. | 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]] | |||
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 | Järgmisena küsitakse 1.taseme vahemälust, andmete olemasolu korral saab need kohe välja anda. | ||
[[Image:Cache_pilt2.jpg]] | |||
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 | |||
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. | Ü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 palju? | ||
Kui kiire? | Kui kiire? | ||
Kui kallis? | 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. | 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. | ||
Line 39: | Line 44: | ||
=Lingid= | |||
http://news.softpedia.com/news/How-Cache-Memory-Works-83803.shtml | |||
Pildi allikas: https://github.com/orientechnologies/orientdb/wiki/Caching | Pildi allikas: https://github.com/orientechnologies/orientdb/wiki/Caching | ||
http://www.ecs.umass.edu/ece/koren/architecture/Cache/tutorial.html | http://www.ecs.umass.edu/ece/koren/architecture/Cache/tutorial.html | ||
http://computer.howstuffworks.com/cache4.htm | http://computer.howstuffworks.com/cache4.htm |
Latest revision as of 20:39, 3 October 2013
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