Wat is intern RAM?
Intern willekeurig toegankelijk geheugen (RAM) is computergeheugen dat rechtstreeks in de chip van een microcontroller is ingebouwd, zoals de centrale verwerkingseenheid (CPU) van een computer. Het kan door programmeurs worden gebruikt om de snelheid van programmafuncties te verhogen door het interne RAM-geheugen rechtstreeks aan te spreken, zodat kritieke processen in de wachtrij worden geplaatst en sneller en met een hogere prioriteit door de CPU worden verwerkt. Dit kan processorintensieve applicaties aanzienlijk versnellen, omdat veelgebruikte instructies veel sneller aan de CPU kunnen worden doorgegeven dan ze van een externe ram te halen.
CPU's hebben drie niveaus van cache of interne RAM. De cache van de processor bestaat uit statisch RAM (SRAM), wat niet hetzelfde is als het typische geheugen dat op het moederbord is geïnstalleerd, dynamisch RAM (DRAM) genoemd. Wanneer de CPU gegevens zoekt, controleert deze eerst de cache van niveau 1 (L1), vervolgens niveau 2 (L2) en vervolgens niveau 3 (L3). Pas daarna haalt het gegevens uit het DRAM.
Binnen de processor wordt L1-cache toegewezen aan elke kern op de processor zelf. Dit is het snelste interne RAM, omdat het fungeert als buffer voor instructies die aan elke processorkern worden overhandigd zoals voorgeschreven door het programma dat om verwerking vraagt. In multi-coreprocessors kan dit de verwerking aanzienlijk versnellen als meerdere cores afzonderlijk worden geadresseerd via L1-cacheverzoeken.
De L2-cache zit in het CPU-pakket en wordt dus nog steeds als intern RAM beschouwd. Het wordt niet rechtstreeks op de werkelijke CPU-chip gebouwd, zoals L1-cache is. Elke kern heeft nog steeds zijn eigen L2-cache en kan dus parallel werken, gebruikmakend van de L2-snelheden. L2-cache is echter langzamer dan L1-cache.
L3-cache bevindt zich niet in het CPU-pakket, dus het wordt niet als interne RAM beschouwd, maar functioneert ernaast. Het is de snelste externe RAM die beschikbaar is op een computer. Alle CPU-cores delen de L3-cache.
Het hele proces kan worden gezien als een wachtrij en uitsplitsing van gegevens van externe DRAM, naar interne RAM en uiteindelijk naar de feitelijke verwerkingsinstructies. Bepaalde functies binnen een programma hebben een hogere prioriteit dan andere, en die worden naar de voorkant van de wachtrij verplaatst als onderdeel van de optimalisatie van het individuele programma. De gegevens met de hoogste prioriteit worden rechtstreeks aan L1-cache geadresseerd voor de snelste verwerking en de wachtrijen met de laagste prioriteit door het hele proces. Het belangrijkste verschil is dat de cache wordt verwerkt in een methode waarbij de wachtrij wordt opgehaald. Intern RAM is software-adresseerbaar, dus gegevens kunnen specifiek worden toegewezen aan individuele interne RAM-niveaus.