Wat zijn gegevens in de cache en caching?
De computer voert helaas niet direct opdrachten uitdie van mensen ontvangt. Om dit proces te versnellen, worden een aantal trucs gebruikt, en een eervolle plaats behoort tot caching. Wat is het? Wat zijn gegevens in de cache? Hoe gebeurt dit proces eigenlijk? Wat zijn gegevens in de cache bijvoorbeeld op een Samsung-smartphone en verschillen deze op de een of andere manier van die op een computer? Laten we beginnen om antwoorden op deze vragen te krijgen.
Wat is cache?
Proces van gebruik
Gegevens update
Bij gebruik van bijvoorbeeld een webbrowserEen lokale cache wordt gecontroleerd om een kopie van de pagina te vinden. Gezien de beperkingen van dit type geheugen, wordt in geval van een misser besloten om een deel van de informatie weg te doen om ruimte vrij te maken. Om te bepalen wat wordt vervangen, gebruikt u verschillende algoritmen voor verdringing. Trouwens, als we praten over wat gecachte gegevens op de "Android" zijn, dan zijn ze voor het grootste deel gewend om met afbeeldingen en datatoepassingen te werken.
Schrijf beleid
- Onmiddellijke opname. Elke wijziging wordt synchroon opgenomen in het hoofdgeheugen.
- Vertraagd of omgekeerd schrijven. Gegevens worden periodiek of op verzoek van de klant bijgewerkt. Als u wilt bijhouden of een wijziging is aangebracht, gebruikt u een bord met twee statussen: "vies" of gewijzigd. In het geval van een misser kunnen twee oproepen naar het hoofdgeheugen worden gedaan: de eerste wordt gebruikt om gegevens te schrijven die zijn gewijzigd vanuit de cache, en de tweede is om het benodigde element te lezen.
Het kan zijn dat de informatie intussenbuffer wordt niet relevant. Dit gebeurt wanneer gegevens in het hoofdgeheugen worden gewijzigd zonder aanpassingen aan de cache te maken. Voor de samenhang van alle bewerkingsprocessen worden coherentieprotocollen gebruikt.
Moderne uitdagingen
Synchroniseer gegevens tussen verschillende buffers
De cache is handig wanneer een, en hoe de effectiviteit van deze technologie te behouden, als ze veel zijn? Dit probleem wordt opgelost door buffercoherentie. Er zijn drie opties voor gegevensuitwisseling:
- Inclusive. Cache kan zich gedragen zoals u wilt.
- Exclusive. Ontwikkeld voor elke zaak.
- Niet-exclusief. De standaard is wijdverspreid.
Caching niveaus
- L1 cache. Het snelste cacheniveau is eerst. In feite maakt het deel uit van de processor, omdat het zich op één chip bevindt en tot functionele blokken behoort. Meestal verdeeld in twee typen: cache-instructies en gegevens. De meeste moderne processors zonder dit niveau werken niet. Deze cache werkt op de processorfrequentie, zodat elke cyclus van de klok toegankelijk is.
- L2-cache. Meestal samen met de vorige. Het is een afzonderlijke herinnering. Om de grootte te achterhalen, moet u het volledige volume dat wordt gebruikt voor gegevenscaching delen door het aantal kernen in de processor.
- L3 cache. Traag, maar de grootste afhankelijke cache. Meestal meer dan 24 MB. Gebruikt om gegevens te synchroniseren die afkomstig zijn van verschillende caches van het tweede niveau.
- L4 cache. Gebruik is alleen gerechtvaardigd voor high-performance multi-processor mainframes en servers. Het is geïmplementeerd als een afzonderlijke chip. Als je een vraag stelt over wat data cachen in de Samsung-smartphone is en je bent op zoek naar dit niveau erin, kan ik zeggen dat je 5 jaar lang zeker hebt gehaast.
Cache-associativiteit
Dit is een fundamenteel kenmerk. De associativiteit van gegevens in de cache is noodzakelijk om logische segmentatie weer te geven. Het is op zijn beurt noodzakelijk vanwege het feit dat opeenvolgende opsommingen van alle beschikbare lijnen tientallen cycli kost en alle voordelen vermindert. Daarom wordt een strakke binding van RAM-cellen aan cachedata gebruikt om de zoektijd te verkorten. Als we tussentijdse buffers vergelijken, die hetzelfde volume, maar verschillende associativiteit hebben, dan zal degene met wie het groot is minder snel werken, maar met een significant specifiek rendement.