Mis on sisemine RAM?

Sisemine muutmälu (RAM) on arvutimälu, mis on ehitatud otse mikrokontrolleri kiibile, näiteks arvuti keskseadmesse (CPU). Programmeerijad saavad seda kasutada programmi funktsioonide kiiruse suurendamiseks, suunates otse sisemise RAM-i, tagades kriitiliste protsesside kiirema ja kõrgema prioriteediga järjekorda asetamise ja töötlemise CPU poolt. See võib protsessorimahukaid rakendusi märkimisväärselt kiirendada, kuna sageli kasutatavaid juhiseid saab protsessorile edastada palju kiiremini, kui neid väliselt mälupulgalt ammutada.

Protsessoritel on kolm vahemälu ehk sisemise RAM-i taset. Protsessori vahemälu koosneb staatilisest RAM-ist (SRAM), mis ei ole sama, mis tavaline emaplaadile installitud mälu, mida nimetatakse dünaamiliseks RAM-iks (DRAM). Kui protsessor otsib andmeid, kontrollib see esmalt 1. taseme (L1) vahemälu, seejärel 2. taset (L2) ja seejärel 3. taset (L3). Alles pärast seda tõmbab see andmeid DRAM-ist.

Protsessori sees on L1 vahemälu määratud igale protsessori enda tuumale. See on kiireim sisemine RAM, kuna see toimib igale protsessorituumale edastatavate juhiste puhvrina, nagu töötlemist taotlev programm dikteerib. Mitmetuumaliste protsessorite puhul võib see töötlemist oluliselt kiirendada, kui L1 vahemälu päringute kaudu adresseeritakse mitut tuuma eraldi.

L2 vahemälu on CPU paketis ja seega peetakse seda endiselt sisemiseks RAM-iks. See ei ole ehitatud otse tegelikule CPU kiibile, kuna L1 vahemälu on. Igal tuumal on endiselt oma L2 vahemälu ja seega saab see töötada paralleelselt, kasutades ära L2 kiirust. L2 vahemälu on aga aeglasem kui L1 vahemälu.

L3 vahemälu ei ole CPU paketis, seega ei peeta seda sisemiseks RAM-iks, vaid see toimib selle kõrval. See on kiireim arvutis saadaolev väline RAM. Kõik CPU tuumad jagavad L3 vahemälu.
Kogu protsessi saab vaadelda kui andmete järjekorda seadmist ja jaotamist välisest DRAM-ist sisemisse RAM-i ja lõpuks tegelikesse töötlemisjuhistesse. Teatud funktsioonid mis tahes programmis seatakse kõrgema prioriteediga kui teised ja need teisaldatakse üksiku programmi optimeerimise osana järjekorra ette. Kõrgeima prioriteediga andmed adresseeritakse otse L1 vahemällu kiireimaks töötlemiseks ja madalaima prioriteediga järjekordadesse kogu protsessi vältel. Peamine erinevus seisneb selles, et vahemälu töödeldakse “ootejärjekorrast tõmbamise” meetodil, sisemine RAM on tarkvaraga adresseeritav, nii et andmeid saab määrata konkreetselt üksikutele sisemälu tasemetele.