Register-naar-register-instructies zijn sneller dan geheugen-naar-register- of register-naar-geheugen-instructies, voornamelijk vanwege de fundamentele verschillen in toegangssnelheden tussen registers en geheugen:
* Nabijheid van de CPU: Registers bevinden zich *in* de CPU. Ze maken deel uit van de interne architectuur van de CPU en zijn rechtstreeks toegankelijk voor de ALU (Arithmetic Logic Unit) en andere verwerkingseenheden. Dit betekent dat de toegang ongelooflijk snel is en doorgaans slechts één klokcyclus in beslag neemt.
* Geheugenhiërarchie: Geheugen (RAM) bevindt zich buiten de CPU. Toegang tot het geheugen omvat een complexer proces:
* Adresvertaling: De CPU moet het geheugenadres vertalen naar een fysiek adres.
* Cachetoegang: De CPU controleert eerst zijn cache (L1, L2, L3 caches) om te zien of de gegevens al aanwezig zijn. Als dit niet het geval is, is een langzamere toegang tot het hoofdgeheugen vereist.
* Geheugentoegang: Om toegang te krijgen tot het hoofdgeheugen worden signalen via de systeembus naar de RAM-chips verzonden, gewacht tot de gegevens zijn opgehaald en vervolgens teruggestuurd naar de CPU. Dit proces is aanzienlijk langzamer dan toegang tot registers.
* Busconflict: Meerdere apparaten kunnen concurreren om toegang tot de systeembus, waardoor de geheugentoegang verder wordt vertraagd.
Samengevat:Register-naar-register-bewerkingen omzeilen alle complexiteiten en vertragingen die gepaard gaan met toegang tot het hoofdgeheugen. De gegevens zijn al "voorhanden" in de CPU, waardoor een veel snellere uitvoering mogelijk is. Het snelheidsverschil kan ordes van grootte zijn; geheugentoegang kan tientallen of zelfs honderden klokcycli duren, vergeleken met een enkele cyclus voor registerbewerkingen. Dit is een fundamentele beperking van computerarchitectuur. |