Gå til innhold

Hvordan brukes cache- minnet i en harddisk?


pcp160

Anbefalte innlegg

Hei.

Har lest en del om harddiskers oppbyggning, virkemåte, søketid, NCQ og om forskjellige filsystemer osv osv.

 

Det jeg aldri helt har fått "grep om" er akkurat hvordan diskens cache faktisk virker. Jeg vet det er et hurtigminne, eller en buffer, men hvordan blir dette minnet brukt i praksis

Det jeg i bunn og grunn er ute etter er da forskjellen på en2MB, 8MB og 16MB cache disk, når og hvorfor det er bra med mye.

 

Er det slik at dette minnet lagrer alt som skrives/leses fra disken og fylles full til en hver tid, slik at ting som har blitt behandlet går raskere?

Eller går dette på og samle og effektivisere sending av data til og fra disken eller hvordan fungerer dette egentlig?

 

Sikkert noen her som kan utdype dette litt :)

Lenke til kommentar
Videoannonse
Annonse

Spennende spørsmål :)

 

Jeg er ikke helt sikker, men har hørt at cachen deles opp i flere deler. Det er lenge siden jeg har lest noe om dette så jeg forsøker å komme med det jeg husker:

Cachen deles opp i 3 (?) deler:

 

1. Firmware. Denne tar seg av starting av disken, melde fra om produktnavn til bios, holder styr på hvilke logiske sektorer som er på hvilke fysiske plasser på disken og styrer en del teknikker for lese og skrivebuffring, deriblandt NCQ. De logiske sektorene som oppfattes av OS'et er ikke det samme som de fysiske adresse på sektorene på selve platene. Firmwaren foretar oversettingen mellom disse adresseringene. Firmwaren tar vist opp en ganske liten del av cachen (0,5-2MB)

 

2. Lesebuffer. Denne er vist også ganske stor (opp til ca 90% av cachen) og holder styr på data som er lest fra plata men som av en eller annen grunn må vente litt siden systemet er opptatt. F.eks opptatt med lesing fra en annen enhet på samme IDE-kabel. Firmwaren kan også gjette på hva det neste den får beskjed om lese og legge dette i cachen. Dette kalles pre-catch og bruker lignende teknikker som CPU'ens L1 og L2 cache og prediction. Hvis den er så heldig å treffe på gjettingen så vil data overføres veldig mye raskere enn om den måtte lese fra disken. Siden cachen er liten og den største svakheten med harddisker er aksesstiden så prioriteres pre-caching av små filer.

 

3. Skrivebuffer. Denne er vist ganske liten (0-1MB) og holder på data som er sendt til disken, men som venter på å bli skrevet til plata. (Faktisk skriving er alltid noe tregere enn grensesnittet.) Men skrivebuffer kan gi problemer. F.eks hvis strømmen til disken forsvinner før dataene er skrevet til plata. Dette ga et reellt problem når man slo av første utgave av Windows 98 uten oppdateringer på PC'er med raske prosessorer (1GHz+). Dette ble riktignok rettet opp i en patch der PC'ens shutdown-kommando blir utsatt 2 sekunder for at cachen skal få tid til å tømme seg.

 

Både lesebuffer og skrivebuffer fungerer klart best på små filer siden de hindres mye av harddiskens aksesstid. Et eksempel: En harddisk med som klarer 50MB/s og har en aksesstid på 12ms vil for hvert søk på 12ms gå glipp av 0,012 sekunder med lesing i 50MB/s. Altså gå glipp av å lese 0,6MB med data. Hvis filene er veldig små så sier det seg selv at det går med mye tid til aksesser og lite tid med til reell lesing.

 

Men legg merke til at storagereview sier at det er mye annet som har mer å si for ytelsen enn mengden cache. De sier faktisk at mengden cache på harddisken er den nest mest overvurderte spesifikasjonen på harddisker etter hastigheten på grensesnittet. !

 

Jeg kommer til å følge med på emnet for dette er noe jeg synes er spennede og vil finne ut mer om. :yes:

Endret av Simen1
Lenke til kommentar
Simen 1

Men legg merke til at storagereview sier at det er mye annet som har mer å si for ytelsen enn mengden cache. De sier faktisk at mengden cache på harddisken er den nest mest overvurderte spesifikasjonen på harddisker etter hastigheten på grensesnittet. !

Ja det var jo litt interessant, og utgangspuktet for spørsmålet er jo i grunn det at det dukker opp fler og fler 16MB cache disker, og jeg som sikkert mange andre, lar meg til en viss grad blende uten og egentlig ane hva man skal med det...

 

En ting jeg har lurt litt på i praksis rundt dette her; jeg har tatt tiden på å starte bla Photoshop fra forskjellige innstallasjoner her, fordi dette er en såpass lesetung oppgave at jeg merker god forskjell feks fra raid0 eller ikke, eller Raptor vs 7200rpm.

Men så er det jo slik at hvis jeg har åpnet det en gang etter boot, så tar det flere sekunder kortere tid neste gang jeg åpner, selv om andre oppgaver er utført i mellomtiden. I følge oppgavebehandlig er jo minnet tømt for PS oppgaver, men

skyldes dette hd's cache, eller har det med maskinens minne å gjøre?

Lenke til kommentar
Men legg merke til at storagereview sier at det er mye annet som har mer å si for ytelsen enn mengden cache. De sier faktisk at mengden cache på harddisken er den nest mest overvurderte spesifikasjonen på harddisker etter hastigheten på grensesnittet. !

Ja det var jo litt interessant, og utgangspuktet for spørsmålet er jo i grunn det at det dukker opp fler og fler 16MB cache disker, og jeg som sikkert mange andre, lar meg til en viss grad blende uten og egentlig ane hva man skal med det...

5229767[/snapback]

Godt poeng!

 

Nå regner jeg sterkt med at mengden cache på harddisker følger samme regel som cache på CPUer: Hvis en dobling av cache gir en ytelseøkning Y så vil ennå en dobling alltid føre til en litt mindre ytelseøkning (<Y), ennå en dobling gir ennå mindre ytelseøkning osv. Legg merke til at vanlig cache på en harddisk i 1999 var 512KiB og at kvadruplingen til 2MiB ga litt bedre ytelse. Neste kvadrupling til 8MiB ga litt mindre ytelseøkning. Nå skulle man forventet at ennå en kvadrupling til 32MiB ville gitt ennå mindre ytelseøkning, men harddiskindustrien har tydeligvis valgt å ikke kvadruple men bare å doble denne gangen. Det vil si at ytelseøkningen bør bli ennå mindre. Trolig snakker vi om en prosent ytelse her og der. For ordens skyld: forutsetningen for disse sammenligningene er selvfølgelig at alle andre faktorer er like.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...