Det er to hovedklasser av cache, lesebufferen og skrivebufferen. En lesebuffer er et verktøy som gir rask tilgang til ellers data som ellers ville vært treg å få tilgang til. En skrivebuffer er et verktøy som gir en illusjon av høye skrivehastigheter, som generelt skjuler den sanne sakte hastigheten til en minneenhet for brukeren.
Strukturen til en cache
Vanligvis lagres en hurtigbuffer ett minnelag lavere enn de faktiske dataene. Imidlertid kan data fra én hurtigbuffer bufres ytterligere ned i neste minnelag. Det er fire minnenivåer, hvor CPU-cachen/registrene er det laveste og raskeste nivået og arkivlagring er det høyeste og tregeste nivået. De laveste til høyeste nivåene er CPU-cache/registre, system-RAM, lagringsstasjoner og arkivlagring.
Hvert trinn nedover minnenivåene gir økt tilgangshastighet, men redusert kapasitet. De fleste hjemmebrukere har bare de laveste tre lagringsnivåene i den virkelige verden. Arkivlagring refererer vanligvis til båndlagring beregnet for langtidslagring og offline lagring. Arkivlagring kan også referere til bruk av optiske eller andre standard lagringsmedier som er fjernet fra enheter og holdes offline. Disse eksemplene er betydelig mer sannsynlig å bli funnet i hjemmet, men er fortsatt ikke så vanlige.
Merk: Til en viss grad kan skylagring betraktes som en variant av arkivlagring. Det er veldig mye online, men ikke nødvendigvis tilgjengelig umiddelbart og er generelt tregt å få tilgang til. Flyttbare medier som USB-minne strekker seg også noe over grensen mellom lagringsstasjon og arkivlagring.
Typer diskbuffer
En diskbuffer refererer til enhver cache på en "disk", det vil si lagringsstasjoner som SSD-er og HDD-er. Det finnes tre typer diskbuffer. Lesebufferen vil innebære å kopiere noen data fra arkivlagring midlertidig for å gjøre tilgang raskere mens det er nødvendig. En skrivebuffer kan ha form av en SLC-cache på en SSD. En I/O-hurtigbuffer vil vanligvis være et flashminne eller DRAM som brukes til å bufre både lese- og skriveoperasjoner. Den definerende egenskapen til alle disse er at cachen er på selve disken.
Les Disk Cache
Lesebufferversjonen av en diskbuffer er sannsynligvis den minst brukte typen diskbuffer. Arkivlagring, etter selve definisjonen, er sjelden nødvendig. Data kan også leses direkte fra arkivmedier. Problemet er hastighet. Tilgangstiden er treg ettersom dataene er offline, noe som krever at en passende lagringsenhet identifiseres og kobles til. Lesehastigheter avhenger av arkivmediet, men vil generelt være nok for de fleste tilfeller. Men er kanskje ikke ideell for høye båndbreddekrav som høyoppløselig videovisning. I disse scenariene kan en lesediskbuffer brukes til å bufre en kopi av videofilen til et lagringsmedium som kan spille den av i sanntid.
Skriv diskbuffer
Moderne SSD-er er lynraske, og tilbyr utrolig raske lese- og skrivehastigheter. Det du kanskje ikke skjønner er at dette ikke er teknisk sant. De fleste SSD-er på markedet er TLC, aka Triple Layer Cells. Dette betyr at hver minnecelle kan lagre tre biter med data. Selv om dette gir tre ganger lagringstettheten til rå SLC (Single Layer Cells) med én bit per celle, er det også mye tregere.
Tips: TLC-flash er fortsatt rask. Det er mange ganger raskere enn toppbåndbredden til SATA 3-bussen som brukes av HDD-er og tidlige SSD-er. QLC flash eller Quad Level Cells er enda tregere, i noen tester fungerer de faktisk tregere enn HDD-er.
SLC-cachen ble oppfunnet for å skjule de langsomme skrivehastighetene for brukeren. SLC-cache behandler ganske enkelt TLC-blitsen som SLC-blits, slik at den kan operere med økte hastigheter. Data som er skrevet til SLC-cachen blir deretter internt kopiert til TLC-formatet så raskt som skrivehastigheten tillater. Denne teknikken fungerer utmerket, og tilbyr økende hastigheter som har nødvendiggjort utviklingen av nye, raskere standarder.
SLC-cacher har imidlertid noen forbehold. Størrelsen på SLC-cachen er 1/3 av den gjenværende ledige plassen på SSD-en. Etter hvert som SSD-en fylles opp, reduseres SLC-cache-størrelsen. Dette er ikke så mye av et problem på store tomme stasjoner, men kan være på en SSD med mindre eller nesten kapasitet. Når SLC-bufferen er fylt, ser brukeren skrivehastigheten synke dramatisk når de blir utsatt for den ekte TLC-skrivehastigheten.
Merk: Teknisk sett, hvis data skal skrives til arkivmedier i fremtiden, kan enhver lagringsdisk betraktes som en skrivebuffer for arkivmediet. Denne betydningen vil imidlertid ikke generelt bli antatt.
I/O-diskbuffer
HDD-er er generelt ganske trege, selv i deres optimale arbeidsbelastning. For å skjule dette for brukeren så mye som mulig, kan en I/O-cache brukes. En I/O-buffer bufrer både lese- og skriveoperasjoner etter behov. Denne cachen består vanligvis av enten Flash-minne eller DRAM i selve stasjonen. Kapasitetene er generelt lave, selv om SSHD- eller Solid State Hybrid Drive-klassen som har Flash-minne tilbyr flere betydelige muligheter, men ikke sammenlignbare med moderne SSD-kapasiteter.
Bufring av lesinger betyr at harddisken ikke trenger å finne og deretter lese dataene. Dette kan gi utmerkede ytelsesfordeler, men bare ved påfølgende leseoperasjoner. Den første lesingen er alltid treg. Caching-skriving betyr at små skriveoperasjoner kan absorberes til hurtigbufferen og deretter skrives til den faktiske harddisken så raskt som den tillater. Dette gir raskere hastigheter, men ser et stort ytelsesfall hvis cachen noen gang er oppbrukt.
En I/O-cache må nøye balansere behovene til både lese- og skrivefunksjoner, spesielt når bare en liten cache er tilgjengelig. Større cacher opphever dette problemet noe, selv om edge-cacher med store datasett fortsatt kan overvelde flash-cachen til de største SSHD-ene.
Merk: SSD-er kan teknisk sett også bruke deres innebygde DRAM som en I/O-cache. Imidlertid brukes dette vanligvis primært eller utelukkende til å lagre den logiske til fysiske adresseoversettelsestabellen som brukes til å finne data på SSD-en.
Konklusjon
En diskbuffer er en hurtigbuffer som finnes direkte på en lagringsstasjon. Det kan ha form av en lese-eller-skrive-cache eller en I/O-cache. Les cacher cacher vanligvis data fra tregere arkivlagring. Skrivebuffere skjuler de langsomme skrivehastighetene til lagringsdisker for brukeren. I/O-cacher skjuler både sakte lese- og lave skrivehastigheter for brukeren.
Cacher er utmerkede brukervennlighetsverktøy, men kan forårsake noen hodepine for brukere når de er tomme. Dette gjelder spesielt for dynamiske skrivecacher som SLC-cachen. Siden ikke-tekniske brukere kanskje ikke forstår hvorfor skrivehastighetene deres er så lave og dermed ikke kan fikse dem ved å ta tak i kapasitetsproblemer.