Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Off Topic \ Anden computer snak
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Hvordan fungerer caching?

Af Junior Supporter MaDNielss | 09-11-2004 20:04 | 1196 visninger | 7 svar, hop til seneste
Hey.. Jeg er ved at skrive lidt om caching, men desværre fatter jeg det ikke 100%, så jeg håber på at kunne få en bedre forståelse om det, fra nogle af jer! :) - jeg har læst en del guides på engelsk, men det har jeg ikke fået meget ud af.. Jeg har bl.a. benyttet http://computer.howstuffworks.com[...] - Dette er måden jeg har forstået datastrømmen: Data læses fra HD, calculeres af CPU, lagres i LVL1 cache - som er hurtigst=CPU-hastighed - dernæst LVL2 cache ( halv CPU-hastighed ) - og sidst i RAM ( kun FSB-hastighed = langsommere adgang ) De mest benyttede data bliver gemt i den hurtigste hukommelses-enhed, så de er hurtigere tilgængeligt til næste dataanmodning ( hvis det er den samme anmodning / lokal reference ). Er data'en større end hvad L1-cachen kan rumme, lagres de videre i L2-cache. Er data'en større end hvad L2-cachen kan rumme, lagres de i System RAM. Er data'en større end hvad System RAM kan rumme, lagres de på Virtual RAM på HD'en. - men så har jeg også begrebet søgetid på disse enheder. Hvis der f.eks. skal beregnes 200 MB data, og L1 cachen skal modtage alle disse MB, så vil søgetiden blive meget lang før den når igennem til den hukommelsesenhed den skal lagres i. Hvis f.eks. L1-cachen skal gennemgå 200 MB, og søgetiden er 10 ns. for hver 16 kb. som L1-cachen er på, så vil søgetiden være: 10 ns. x 200x10^6 / 16x10^3. = 125000 ns. - den skal "cykle" 12500 gange!? - og det er kun gennem det første led! Jeg tror jeg mangler nogle begreber her. Lidt spørgsmål. Bliver data'ene guidet direkte til den rette hukommelse ( stor data->stor hukommelse), så der ikke mistes søgetid? Er det kun små filer, som bliver cachet hurtigt? - Hilfe bitte! X'(
--
|NW [email protected] GHZ|+|ASUS P4S533|+|2 x 768 MB PC 2700 RAM|+|Connect3D x800Pro VIVO|
#1
MaDNielss
Junior Supporter
11-11-2004 14:11

Rapporter til Admin
No comment? Ej, har læst lidt på det, og har fundet ud af at instruktionerne i processoren kan guide data'en til den mest hensigtsmæssige hukommelsesenhed.. men jeg kunne stadigvæk godt bruge lidt hjælp.
--
|NW [email protected] GHZ|+|ASUS P4S533|+|2 x 768 MB PC 2700 RAM|+|Connect3D x800Pro VIVO|
#2
Lestat
Guru
11-11-2004 14:27

Rapporter til Admin
Er data'en større end hvad L1-cachen kan rumme, lagres de videre i L2-cache. Er data'en større end hvad L2-cachen kan rumme, lagres de i System RAM. Er data'en større end hvad System RAM kan rumme, lagres de på Virtual RAM på HD'en. Det er en MEGET firkantet måde at anskue virtuel hukommelse og cache. For det første har man både data cache og instruktions cache, og alt efter hvilken type opgaver man laver er den ene eller anden typisk mere statisk end den anden. Desuden lagres data og instruktioner ikke linært i cachen, det er ikke efter "first-in-first-out" princippet. CPU'en forsøger aktivt at minimere cache misses, da de er dyre, især for netburst arkitekturen. Endelig er cache på blandt andet P4'eren inclusive, hvilket vil sige at indholdet i L1 cachen er duplikeret i L2 cachen. Ang. virtuel hukommelse har det ikke så meget med cache systemet i CPU'en at gøre, ikke på den linære måde du beskriver det. Paging sker konstant i systemet, og der pages til mange forskellige steder, blandt andet .dll'er og .exe filer. Naturligvis er filerne nødt til på et eller andet tidspunkt at gå fra harddisk->ram->cpu, men eftersom man kan have statiske instruktioner i cachen, kan man opleve at det er data der bare spooles igennem cachen, og egenligt ikke "caches", selvom de bevæger sig igennem den. Den virtuelle hukommelse i NT systemer som Win2k og XP er meget avanceret og kan ikke udfyldende beskrives kort. Men "Inside Windows 2000" bogen har en god beskrivelse af hvordan det fungerer. :) L.
--
Dual Xeon 3.3GHz | 2GB ram | 15k/10k SCSI disks | 3500A | DVD-305S | 23" TFT
#3
unique
Gæst
11-11-2004 14:35

Rapporter til Admin
#2 hvor er du så klog?
--
Gæstebruger, opret dit eget login og få din egen signatur.
#4
guanomo
Semi Supporter
11-11-2004 14:37

Rapporter til Admin
#3 ja og så kan han finde ud af tegnsætning og det danske sprog.
--
En høj bruger rating har intet med viden at gøre, men om nysgerrighed ;o)
#5
MaDNielss
Junior Supporter
11-11-2004 15:21

Rapporter til Admin
#2 tak, det kan godt være det er lidt firkantet, men hvis man skal starte et sted, så man kan vel godt forklare det sådan? - Så kan jeg evt. gå i dybden med hvordan det rigtigt fungerer - Altså at data-caching og instruktions-caching. Men udover det, så kan jeg godt se at jeg mangler at få lidt begreber på plads, så som "first-in-first-out", som noget af systemet nok fungerer ved - måske bare ikke i caching. Cache misses har jeg også stødt på, men jeg har ikke stødt på nogen egentlig forklaring, men det bør være til at finde. - Nu har jeg også læst i en bog, som ikke ligefrem er skrevet af en professionel, så det kunne være jeg skulle tage lidt afstand fra den bog. Måske er forklaringerne for overfladiske. #3 det var ikke et svar, det var et spørgsmål - og endda et ubegavet et. #4 Ja, han fortjener vel også en dum kommentar, men gør jeg det?
--
|NW [email protected] GHZ|+|ASUS P4S533|+|2 x 768 MB PC 2700 RAM|+|Connect3D x800Pro VIVO|
#6
Lestat
Guru
11-11-2004 15:31

Rapporter til Admin
#4: Ja, jeg er også ret stolt af min tegnsætning i det indlæg. :D #5: Cache misses er egenligt meget ligetil, det er når CPU'en efterspørger data eller instruktioner i en cache og får besked retur at det ikke er fundet. Så må man rykke nedad i hierarkiet, som du har beskrevet det, ved at gå videre til L2 og ram. Mange cache misses kan være dyre, fordi man har en pipeline der står tom, og ved en lang pipeline som P4'eren er det især dyrt, hvilket er én af grundende til man har valgt at lave netburst en streaming arkitektur. Det er også derfor cache giver et proportionelt større ydelsesboost for P4 end for Athlon og Athlon64. (Benchmarks viser at forskellen mellem 512kB og 1MB ofte ikke er så stor, hvor den hos P4 kan være temmelig stor). L.
--
Dual Xeon 3.3GHz | 2GB ram | 15k/10k SCSI disks | 3500A | DVD-305S | 23" TFT
#7
guanomo
Semi Supporter
12-11-2004 14:47

Rapporter til Admin
#5 nej da :oD
--
En høj bruger rating har intet med viden at gøre, men om nysgerrighed ;o)

Opret svar til indlægget: Hvordan fungerer caching?

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning