Memoria cu acces aleatoriu intern (RAM) este memoria computerului care este construită direct în cipul unui microcontroler, cum ar fi unitatea centrală de procesare (CPU) a unui computer. Poate fi folosit de programatori pentru a crește viteza funcțiilor programului, abordând direct RAM-ul intern, asigurându-se că procesele critice sunt puse în coadă și procesate mai rapid și cu prioritate mai mare de către CPU. Acest lucru poate accelera foarte mult aplicațiile care necesită mult procesor, deoarece instrucțiunile utilizate frecvent pot fi transmise procesorului mult mai rapid decât extragerea lor din ram extern.
CPU-urile au trei niveluri de cache sau RAM internă. Cache-ul procesorului este format din RAM statică (SRAM), care nu este aceeași cu memoria tipică instalată pe placa de bază, numită RAM dinamică (DRAM). Când CPU caută date, verifică mai întâi memoria cache de Nivel 1 (L1), apoi Nivelul 2 (L2), apoi Nivelul 3 (L3). Abia după aceea va extrage date din DRAM.
În cadrul procesorului, memoria cache L1 este atribuită fiecărui nucleu de pe procesorul însuși. Aceasta este cea mai rapidă memorie RAM internă, deoarece acționează ca buffer pentru instrucțiunile transmise fiecărui nucleu de procesor, așa cum este dictat de programul care solicită procesarea. În procesoarele cu mai multe nuclee, acest lucru poate accelera substanțial procesarea dacă mai multe nuclee sunt adresate individual prin solicitările de cache L1.
Cache-ul L2 se află în pachetul CPU și, prin urmare, este încă considerat RAM intern. Nu este construit direct pe cipul CPU propriu-zis, așa cum este memoria cache L1. Fiecare nucleu are în continuare propriul cache L2 dedicat acestuia și astfel poate funcționa în paralel, profitând de vitezele L2. Totuși, cache-ul L2 este mai lent decât cache-ul L1.
Cache-ul L3 nu se află în pachetul CPU, deci nu este considerat RAM intern, ci funcționează alături de acesta. Este cea mai rapidă memorie RAM externă disponibilă într-un computer. Toate nucleele CPU partajează memoria cache L3.
Întregul proces poate fi privit ca o așteptare și defalcare a datelor de la DRAM extern, la RAM intern și, în final, la instrucțiunile de procesare efective. Anumite funcții din cadrul oricărui program sunt stabilite la o prioritate mai mare decât altele, iar acestea sunt mutate în primul rând ca parte a optimizării programului individual. Datele cu cea mai mare prioritate sunt adresate direct cache-ului L1 pentru procesarea cea mai rapidă și cozile cu cea mai mică prioritate pe parcursul întregului proces. Principala diferență este în cazul în care memoria cache este procesată într-o metodă de „tragere din coada de așteptare”, RAM internă este adresabilă prin software, astfel încât datele pot fi atribuite în mod specific nivelurilor RAM interne individuale.