Vad är internt RAM?

Internal Random Access Memory (RAM) är datorminne som är inbyggt direkt i chippet på en mikrokontroller, till exempel en dators centralenhet (CPU). Den kan användas av programmerare för att öka hastigheten på programfunktioner genom att direkt adressera internt RAM, vilket säkerställer att kritiska processer köas och bearbetas snabbare och med högre prioritet av CPU:n. Detta kan avsevärt påskynda processorintensiva applikationer eftersom ofta använda instruktioner kan skickas till CPU:n mycket snabbare än att dra dem från extern ram.

CPU:er har tre nivåer av cache, eller internt RAM. Processorcache består av statiskt RAM (SRAM), vilket inte är detsamma som det vanliga minnet installerat på moderkortet, kallat dynamiskt RAM (DRAM). När processorn letar efter data kontrollerar den först nivå 1 (L1) cachen, sedan nivå 2 (L2), sedan nivå 3 (L3). Först efter det kommer den att hämta data från DRAM.

Inom processorn tilldelas L1-cache till varje kärna på själva processorn. Detta är det snabbaste interna RAM-minnet, eftersom det fungerar som buffert för instruktioner som lämnas till varje processorkärna enligt vad som bestäms av programmet som begär bearbetning. I flerkärniga processorer kan detta avsevärt påskynda bearbetningen om flera kärnor adresseras individuellt genom L1-cacheförfrågningar.

L2-cachen finns i CPU-paketet och anses därför fortfarande vara internt RAM. Den är inte inbyggd direkt på själva CPU-chippet som L1-cachen är. Varje kärna har fortfarande sin egen L2-cache dedikerad till den och kan därför fungera parallellt och dra nytta av L2-hastigheterna. L2-cache är dock långsammare än L1-cache.

L3-cache finns inte i CPU-paketet, så det anses inte vara internt RAM-minne utan fungerar tillsammans med det. Det är det snabbaste externa RAM-minnet som finns i en dator. Alla CPU-kärnor delar L3-cachen.
Hela processen kan ses som en köning och nedbrytning av data från externt DRAM, till internt RAM och slutligen till själva bearbetningsinstruktionerna. Vissa funktioner inom vilket program som helst etableras med högre prioritet än andra, och de flyttas längst fram i kön som en del av det enskilda programmets optimering. Data med högst prioritet adresseras direkt till L1-cache för snabbast bearbetning och köer med lägst prioritet genom hela processen. Den största skillnaden är där cache bearbetas i en ”pull from the waiting queue”-metod, internt RAM är mjukvaruadresserbart, så data kan specifikt tilldelas individuella interna RAM-nivåer.