Wat is een processorregister?
De snelste toegang tot opslaggeheugen op een computerverwerkingseenheid (CPU) is een processorregister. Computerarchitecturen ontwerpen processor-registergeheugencapaciteit in een CPU-cache, zodat waarden die regelmatig door computerprocessen worden benaderd, daar kunnen worden opgeslagen. Processen hebben toegang tot en kunnen snel worden uitgevoerd op basis van die opgeslagen waarden. Aangezien de processorregisters worden opgeslagen op de CPU, worden ze beschouwd als de top van de opslaggeheugenhiërarchie en wordt de toewijzing meestal bepaald door variabelen. Nadat de gegevens zijn verwerkt, worden deze hersteld in de cache, RAM (Random Access Memory) of opslag op de harde schijf.
Computerprocessors hebben registers van verschillende typen, volgens instructies of tests die daarop werken of op hun specifieke inhoud. Gegevens-, adres- en algemene registers bevatten wiskundige waarden en adressen voor geheugenopslag. Er zijn voorwaardelijke registers met waarheidswaarden voor logische bedieningsinstructies, constante registers met alleen-lezen waarden zoals pi en nul, en registers voor speciale doeleinden die een programmateller bijhouden, een statusregister en stapelaanwijzers voor stapelgeheugengebruik. Besturingsregisters bevatten instructies van een instructieset die is ingebouwd in de CPU-architectuur; en er zijn er meerdere die uit RAM halen en circuits van de CPU die toegang hebben tot geheugenbuffers, geheugengegevens, geheugentypebereiken en adressen. Variabelen die niet aan een processorregister zijn toegewezen, worden in RAM opgeslagen en in en uit geladen voor lees- en schrijfbewerkingen, deze worden echter langzamer verwerkt.
Omdat ze het snelheidsverschil kennen tussen verwerking in registers en RAM, ontwerpen ontwikkelaars van compilercomputerprogramma's meestal hun programma's om zoveel mogelijk in de processorregisteropslag te werken voor snelle werking van functies. Voor just-in-time compilerprogramma's volgt een registertoewijzingstechniek die bekend staat als lineaire scantoewijzing registerbewerkingen en maakt de rekenkracht van het register snel weer vrij in het programma. Registerallocatietechnieken proberen zoveel mogelijk variabelen van het programma toegewezen te krijgen aan registers en in een operatiestroom die het kleinste aantal registers maximaliseert voor snel compileren.
Omdat veel processorregisters bedoeld zijn voor tijdelijke opslag van variabelen en instructiesets, kunnen alle bewerkingen voor programmagebruik worden opgeslagen voor manipulatie door de CPU. Tijdens bedrijf zal een CPU eerst naar de CPU-cache van registers kijken voor een kopie van alle gegevens die moeten worden verwerkt in lees-, schrijf- of verplaatsingsbewerkingen, voordat hij naar RAM en secundaire opslag op harde schijven kijkt. Vanaf 2011 hebben de meeste CPU's drie afzonderlijke caches. Instructiecaches houden zich bezig met uitvoeringsophalingen door instructie, een op vertaling lijkende buffer versnelt adresvertalingen voor virtuele naar fysieke adressen, en een gegevenscache bevat een multilevel hiërarchieopslag van gegevens die moeten worden gemanipuleerd door een instructieset voor een processorregister.