Välimuistin tarkoitus on nopeuttaa muistihakuja. Kun prosessori hakee muistista dataa/seuraavaksi suoritettavaa käskyä, kestää satoja kellojaksoja ennenkuin tarvittava tieto saadaan prosessorille. Tätä kutsutaan muistilatenssiksi.
Eli siis tosimaailman esimerkkinä muisti olkoon niinkuin posti, eli kun tilaan jotain tavaraa vaikka saksasta suomeen niin kestää viikkokin ennekuin se on kotona.
Välimuisti on paitsi nopeampaa, niin myös vähäviiveisempää koska se on lähempänä prosessoria (itseasissa sen sisällä). Eli välimuistiin (L1) tallennetaan kerralla isommissa erissä tietoa, jota prosessori saattaa tarvita tulevaisuudessa.
Eli jälleen tosimaailman esimerkkinä meillä on siis tehdas saksassa (keskusmuisti) ja maahantuoja suomessa (L1-välimuisti). Eli tehtaalta tavaran saapuminen kestää viikon/pari (rahtina) laskettuna tilauspäivästä. Oletetaan, että maahantuoja tilaa tehtaalta itselleen varastoon eriä tavaraa, joita se olettaa jälleenmyyjän ottavan myyntiin. Nyt kun jälleenmyyjä (prosessori/core) tilaa tavaraa maahantuojalta, kestää päivän/pari saada tavara, mikäli sitä on maahantuojan varastossa tai viikon/pari jos sitä pitää tilata saksasta asti.
Niin kauan kuin tavaraa löytyy suoraan maahantuojalta, asiakkaat (ohjelmat) ovat tyytyväisiä, koska kestää vain päivän saada haluamansa tavara. Mutta kun joudutaan tilaamaan puuttuvaa tavaraa saksasta asti, niin odotusaikana asiakkaat vain lusmuavat eivätkä tee mitään muuta kuin odottavat tavaraa (työt seisovat). Samalla kun saksasta tilataan tavaraa, maahantuoja tilaa paitsi tarkalleen sen mitä asiakkaat tarvitsevat myös extra tavaraa jota asiakkaat/jälleenmyyjä saattavat tarvita myöhemmin. Eli jatkossa kun jälleenmyyjä tilaa tavaraa maahantuojalta, sitä löytyy suoraan varastosta eikä joka kerta tarvitse tilata saksasta.
Eli lyhyesti L1-välimuisti lyhentää datan/ohjelmakäskyjen toimittamiseen kuluvaa viivettä.
L2-välimuisti taas (Athlon64-arkkitehtuurissa) on maahantuojan kakkosvarasto. Eli se on jokin varastorakennus, joka sijaitsee fyysisesti hyvin lähellä (muutaman kilometrin päässä) maahantuojan varsinaista varastoa. Jos jokin tavara ei ole mennyt kaupaksi, maahantuoja siirtää sen ensin kakkosvarastoon.
Näin varsinaisessa varastossa (L1) pidetään käsillä tavaraa, jota jälleenmyyjä todennäköisimmin tarvitsee seuraavaksi. Kakkosvarastossa (L2) pidetään tavaraa, jota aiemmin oletettiin jälleenmyyjän tarvitsevan mutta se jäikin myymättä. Kun kakkosvarasto tulee täyteen, vanhimmat siellä olevan tavaran myydään halvalla venäjälle, jotta sinne saadaa varastoitua uudempia jälleenmyyjän palauttamia tavaroita. Jos joku asiakas kuitenkin haluaa tavaraa, jota ei löydy maahantuojan varastosta (L1), mutta löytyy kakkosvarastosta (L2) voidaan se toimittaa jälleenmyyjälle/asikkaalle lähes samassa ajassa kuin suoraan päävarastosta. Eli se voidaan toimittaa paljon nopeammin, kuin jos se jouduttaisiin tilaamaan tehtaalta.
Eli L2-välimuisti on siis välivarasto, jossa varastoidaan 'hylättyä' dataa. Sen merkitys on siis huomattavasti pienempi kuin L2-välimuistin, mutta se kuitenkin vähentää vielä osaltaan suuria viiveitä, mitä keskusmuistista hakuun liittyy. Eli L1-välimuisti minimoi noin 99% muistiviiveistä ja L2-välimuisti jäljelle jääneeesä 1%:sta mahdollisimman suuren osan. Tämän osan koko riippuu L2-välimuistin määrästä. Mitä enemmän sitä parempi.
Tulipa hieman pitkä stoori, mutta pitäisi saada aloittelijankin jotain kuvaa välimuistin tarkoituksesta. Ei ollut tarkoitus sepustaa noin paljoa, mutta kun kerran aloitin niin kirjoitin sitten loppuun. Ehkä hieman ontuva vertaus, koska jos jälleenmyyjiä on vain yksi kappale. Eli:
Tehdas ==========> Maahantuoja V1 ==> Jälleenmyyjä (vain yksi) <==> Maahantuoja V2 ---> Venäjä
Vielä lyhyemmin L2-välimuistilla on merkitystä nopeuden kannalta (enemmän parempi), mutta sen merkitys riippuu sovelluksesta. Nopeusetu suuremmille L2-kakuille lasketaan kymmenissä prosenteissa.
Viestiä on muokattu lähettämisen jälkeen. Viimeisin muokkaus 19. elokuuta 2005 @ 10:13
|