CPU-cache is een hardwarecache die door de processor (CPU) van een computer wordt gebruikt om de gemiddelde kosten (tijd of energie) voor toegang tot gegevens uit het werkgeheugen te verlagen. Een cache is een kleiner, sneller en vaak ook duurder type geheugen dat zich dichter bij een processorkern bevindt. Wanneer voor het eerst gegevens worden opgevraagd worden deze uit het relatief trage werkgeheugen opgehaald. Er wordt vervolgens een kopie van deze gegevens in de CPU-cache opgeslagen. De volgende keer dat diezelfde data wordt opgevraagd, kan het tot meerdere ordes van grootte sneller uit de cache gehaald worden. De meeste CPU's hebben een hiërarchie van meerdere cacheniveaus (L1, L2, vaak L3 en soms zelfs L4), met verschillende instructiespecifieke en gegevensspecifieke caches op niveau 1.

Het opvragen van gegevens die (nog) niet in een cache bestaan.
Het opvragen van gegevens die in cacheniveau L2 bestaan, maar niet in L1.
Het opvragen van gegevens die in cacheniveau L1 bestaan.

Er bestaan ook andere soorten caches (die niet meetellen voor de "cachegrootte" van de belangrijkste caches die hierboven zijn genoemd), zoals de translation look-aside buffer (TLB) die deel uitmaakt van de memory management unit (MMU) die de meeste CPU's hebben.

Concept bewerken

Bij het lezen van of schrijven naar een locatie in het hoofdgeheugen controleert de processor of de gegevens van die locatie zich al in de cache bevinden. Als dat het geval is, zal de processor lezen van of schrijven naar de cache, in plaats van het veel langzamere hoofdgeheugen.

Veel moderne desktop-, server- en industriële CPU's hebben minstens drie onafhankelijke caches:

Instructiecache
Wordt gebruikt om het ophalen van uitvoerbare instructies te versnellen.
Gegevenscache
Gebruikt om het ophalen en opslaan van gegevens te versnellen; de datacache is meestal georganiseerd als een hiërarchie van meerdere cacheniveaus zoals L1, L2, L3 en L4. Cacheniveaus met een hoger level-nummer zijn vaak langzamer en goedkoper, en bevinden zich fysiek verder weg van de processorkern. Bovendien zijn L1-caches vaak gebonden aan een individuele kern, terwijl hogere cacheniveaus vaak gedeeld kunnen worden door meerdere of alle kernen van een geïntegreerde processor.
Translation look-aside buffer (TLB)
Wordt gebruikt om de vertaling van een virtueel naar een fysiek adres te versnellen voor zowel instructies als gegevens. Een enkele TLB kan voor beide vertalingen verantwoordelijk zijn, maar er bestaan ook implementaties met afzonderlijke TLB's voor instructies (ITLB) en geheugen (DTLB). De TLB-cache maakt echter deel uit van de geheugenbeheereenheid (MMU) en is niet direct gerelateerd aan de CPU-caches.