Hoe werkt CPU-cache?

Laatste update: 25 september 2020
Auteur: Isaac
cache, CPU

La cachegeheugen Het zat niet altijd in de CPU. Sterker nog, oudere processoren hadden er geen. Later kwamen er modules die vergelijkbaar waren met de huidige RAM-modules, waarmee je optioneel een cache kon toevoegen om de prestaties van je CPU te verbeteren, vergelijkbaar met hoe wiskundige coprocessoren, of FPU's, werden toegevoegd.

In huidige microprocessoren is het cachegeheugen geïntegreerd in de chip zelf, nu een bijna onlosmakelijk onderdeel ervan, en met verschillende niveaus om er meer voordeel uit te halen. In deze tutorial leer je meer over dit type geheugen en het belang ervan.

Wat is de cache?

Voordat ik ga uitleggen wat cachegeheugen is, wil ik het heel kort samenvatten. hoe een cpu werkt, zodat u de prestaties ervan beter kunt begrijpen. Simpel gezegd is de CPU niets meer dan een "rekenmachine" die een reeks bewerkingen met bits aan data verwerkt.

Het is de software, het programma, dat aangeeft welke berekeningen de CPU moet uitvoeren. Het programma bestaat uit een reeks gegevens en instructies. Al deze gegevens en instructies worden opgeslagen in de tweede geheugen (harde schijf) worden naar het hoofdgeheugen (primair geheugen) gestuurd. Van daaruit worden ze door de CPU vastgelegd en in het interne geheugen opgeslagen. De instructie geeft aan wat de CPU met de gegevens moet doen. Het kan bijvoorbeeld een optelinstructie zijn. Zo wordt de software uitgevoerd...

Kort gezegd gebruikten vroege computers één laag traag geheugen (een soort ROM of magnetische opslag) om deze instructies en gegevens op te halen. Maar naarmate CPU's evolueerden en sneller werden, ontstonden er grote knelpunten door de traagheid van dit geheugen. Daarom werd er een snel buffergeheugen tussen de CPU en het secundaire geheugen geïntroduceerd: RAM (SDRAM).

  Als uw Samsung-tablet niet oplaadt, geven wij u de sleutels om het probleem op te lossen.

Desondanks bleef de CPU zich sneller ontwikkelen dan het RAM-geheugen zelf, wat een nieuwe bottleneck creëerde. Daarom werd er een ander, veel sneller geheugen ontwikkeld, dichter bij de processor en tussen het RAM-geheugen en de CPU: de cache (SRAM).

Secundair geheugen is goedkoop, dus je kunt grote capaciteiten tegen een goede prijs krijgen. RAM is sneller, maar ook duurder dan secundair geheugen. Daarom is de capaciteit van primair geheugen minder groot. Als we verder naar beneden gaan, komen we cachegeheugen tegen, dat nog duurder is en daardoor een zeer lage capaciteit heeft. Dan zijn er nog de registers, ook extreem duur en beperkt...

Met dit cachegeheugen kunnen de CPU-cores veel sneller worden gevoed, zodat de latenties en bandbreedte Het RAM-geheugen werkt samen met de CPU, zodat het de prestaties minder beïnvloedt. Het is een manier om die gegevens en instructies veel lokaaler en sneller aan te bieden... Met andere woorden, zodat ze meer "bij de hand" zijn.

Tegenwoordig heeft de verbetering van het secundaire geheugen een grote sprong voorwaarts betekend. Ik doel op de nieuwe SSD of solid-state harde schijvenZe zijn echter nog steeds langzamer dan RAM, dus deze andere niveaus zijn nog steeds noodzakelijk.

Cacheniveaus in een moderne processor

Intel Pentium III (Tualatin) dieshot waarbij ik de geünificeerde L2-cache in het groen heb gemarkeerd en de L1-cache voor gegevens en instructies in het paars.

In een moderne processor is er niet slechts één cacheniveau, maar is het verdeeld in meerdere niveaus. Meestal zijn er 2 tot 4. niveaus of niveaus (L):

  • LLC (Laatste niveau cache): Dit is het laatste niveau van het cachegeheugen, dat wil zeggen het niveau dat het dichtst bij RAM ligt, het niveau met het hoogste nummer binnen de processor. Het kan L4, L3 of L2 zijn, afhankelijk van het niveau. In huidige Intel- en AMD-processors is dit bijvoorbeeld L3. Dit geheugen kan meerdere megabytes groot zijn en is unified, wat betekent dat het zowel gegevens als instructies opslaat. Over het algemeen wordt dit type geheugen gedeeld door alle cores, als er meerdere zijn. Als er bijvoorbeeld L3 en L2 zijn, kan L2 toegewezen zijn aan slechts één core of gedeeld worden door twee cores, en zou L3 ze allemaal voeden.
  • L1-cache: Deze cache is sneller dan de vorige en bevindt zich nog dichter bij de besturingseenheid, zodat deze sneller informatie kan ophalen en naar de uitvoeringseenheden kan sturen. In tegenstelling tot de hogere niveaus heeft de L1 een lagere capaciteit, wat normaal is, want hoe lager de niveaus, hoe lager de capaciteit. Maar het meest opvallende verschil is dat deze cache in veel processors niet geünificeerd is zoals de andere niveaus. In dit geval is deze gesplitst in L1I en L1D, dat wil zeggen alleen voor instructies en alleen voor gegevens.
  Hoe weet je of een game compatibel is met je pc?

Waarom is het belangrijk?

CPU-cores

Nou, op dit punt zul je al een indruk hebben van de reden waarom het de prestatieEen praktisch voorbeeld zal je dit goed helpen begrijpen. Stel je voor dat jij (de CPU) de tools (instructies en data) moet gaan halen die je nodig hebt om een ​​taak (een programma) uit te voeren.

Het is niet hetzelfde om te hebben de tools in de winkel (secundair geheugen), dan in de garage (RAM), of direct bij de hand (cache). Als je naar de winkel of de garage moet, duurt het veel langer dan wanneer je ze direct bij de hand hebt. Dit is niet altijd het geval. Wanneer je voor het eerst een instructie of gegevens nodig hebt, moet je naar de kamer of de garage om ze te halen. Maar als je ze eenmaal hebt gepakt en direct bij de hand hebt, zul je de volgende keer veel efficiënter zijn.

De CPU, via een zoek- en bugsysteem Het zoekt altijd eerst naar instructies en gegevens in L1. Als er een storing is, zoekt het in L2, en als die daar ook niet is, gaat het naar L3 (als die er is). En als er ook een storing is, heeft het geen andere keuze dan in het RAM-geheugen te zoeken, wat meer klokcycli vereist. Maar als het lukt, zal de toegang veel sneller zijn. Houd er rekening mee dat het minder cycli kost om toegang te krijgen tot L1 dan tot L2, en dat L3 op zijn beurt minder cycli nodig heeft om toegang te krijgen dan LXNUMX, enzovoort.

Dat is het doel van de cache: de vertraging van de geheugentoegang verminderen. Ik blijf erbij, ik ben... veel samenvatten Hoe het werkt. Maar in principe zorgt het ervoor dat je apps en games veel sneller werken.

  Hoe u uw telefoon via USB op uw tv aansluit om inhoud te delen zonder wifi te gebruiken