Mis on mäluhierarhia?

Mälu hierarhia on arvutis leiduvate mälu- ja salvestusseadmete hierarhia. Sageli kolmnurgana visualiseerituna tähistab kolmnurga alumine osa suuremaid, odavamaid ja aeglasemaid salvestusseadmeid, kolmnurga ülaosa aga väiksemaid, kallimaid ja kiiremaid salvestusseadmeid. Seda kasutatakse sageli arvutusteoorias ja -disainis, nii et programmeerijad teavad, kuidas arvuti ehitamisel erinevaid mälusüsteeme hallata. Teades, kuidas seda hierarhiat manipuleerida, saavad programmeerijad ehitada kiiremaid arvuteid.

Mälu hierarhia kolmnurk on visualiseerimistehnika, mis aitab tarbijatel ja programmeerijatel mõista, kuidas mälu töötab. Allosas on odavad suure mälumahuga salvestusseadmed, nagu kõvaketas või magnetlint. Kõrgemal on keskmise mahu ja kiirusega muutmälu (RAM). Ülaosas on vahemälu ja protsessorid, mis mõlemad on väga kiired, kuid väikese võimsusega. Kolmnurk on korraldatud peamiselt reageerimisaja järgi, kuid on ka korrelatsiooni selliste tegurite vahel nagu suurus, mälumaht ja hind.

Arvuti ehitamisel peab programmeerija meeles pidama mäluhierarhia kolmnurka. Kuigi kolmnurga osadega saab manipuleerida, on osade liigutamine rangelt reeglite vastane. Näiteks võib programmeerija muuta kõvaketta rolli RAM-i rolliks. Kui see juhtub, on arvuti kohese teabe (nt failide ja veebisaitide) laadimisel väga aeglane ning suudab pikaajaliseks salvestamiseks hoida vähe andmeid, muutes arvuti peaaegu kasutuks. Kolmnurga osade vahetamine ei ole õige viis arvuti potentsiaali maksimeerimiseks.

Kolmnurgaga õigel viisil manipuleerimine on see, kuidas programmeerijad suurendavad arvuti tõhusust. Näiteks kui salvestusüksused on tehtud väga lihtsaks, väiksema suuruse ja keerukusega, töötab mäluhierarhia paremini. Samuti, kui programmeerijad suudavad seda muuta nii, et teavet saab töödelda hierarhia kõrgemates osades, kasutades näiteks RAM-i asemel protsessorit, liigub arvuti kiiremini. See ei liiguta sektsioone ümber, vaid ainult optimeerib neid.

Kuigi mäluhierarhia visualiseerimine on väga lihtne ja mäluga saab manipuleerida erinevatesse osadesse, on raske täpselt teada, kus mälu salvestatakse või kasutatakse. Programmeerijad peavad seda tegurit hindama, sest üldiselt töötleb mälu korraga mitu erinevat seadet või mälu võib liikuda ühest jaotisest teise. Hästi tehtud programmid suudavad tavaliselt ette näha, kus mälu salvestatakse või töödeldakse, kuid on juhuslik tegur, mida programmeerijad ei saa alati arvesse võtta, mistõttu on mäluhierarhia palju sujuvam, kui kolmnurga visualiseerimine paistab.