Vad gör cacheminnet i en processor?

Permalänk
Medlem

Vad gör cacheminnet i en processor?

Tjena har aldrig riktigt funderat över detta förut och kunde inte hitta nån tråd direkt relaterad till detta heller (sökte inte så länge ) men iallefall va gör cacheminne för skillnad på en processor tex 1mb , 2mb osv osv gör de överhuvudtaget nån skillnad på prestandan för typ spel och diverse ?

Permalänk
Medlem

Cache-minnet i en processor maskerar latencyn mot RAM-minnet.

D.v.s. att göra så att "läs från adress X" tar 4-ish cykler istället för 80-ish, om det man vill läsa redan finns i L1-cachen.

Precis som mycket annat så har man oftast ett fall av "dimishing returns". Ja, mer cache gör skillnad, ibland lite och ibland mycket.

Visa signatur

"Nothing is impossible because impossible itself says I M Possible..."

Permalänk
Medlem

Cacheminnen är ju en hel vetenskap i sig, men kortfattat är det ett litet men mycket snabbt minne som sitter direkt i anslutning till något, i det här fallet processorn.
Processorn i sig är inte direkt "medveten" om cacheminnet, det är mer en spegling av det vanliga internminnet. CPUn gör en förfrågan om data som ligger i minnet. Först kollas då om det ligger i cacheminnet, eftersom det är så mycket snabbare än det vanliga internminnet. Gör det inte det hämtas datan från internminnet. Data som nyligen har använts av processorn ligger oftast kvar i cacheminnet och kan då kommas åt mycket snabbare. Till saken hör att det finns funktioner som gissar sig till vilka minnesadresser som processorn kommer efterfråga härnäst och lägger detta i cacheminnet i förväg för att spara tid.

Hur stor skillnad ett cacheminne gör beror mycket på hur bra dessa funktioner är och hur cacheminnet är organiserat. Det går inte att jämföra Intels cacheminnen rakt av med AMDs eftersom dessa ser olika ut, därför kan man inte direkt avgöra om X MB cacheminne på en Intel är bättre eller sämre än Y MB cacheminne på en AMD.

Minnen blir även snabbt långsammare ju större de blir. Föreläsaren jag hade när jag läste processorarkitektur sa att en tumregel är att hastigheten minskar med kvadraten på storleksökningen, så ett dubbelt så stort cacheminne (inom samma teknik och utvecklingsgrad. Du kan alltså inte jämföra ett några år gammalt cacheminne på 2MB med ett från idag på 4MB eftersom utvecklingen gjort så cacheminnen idag är rent generellt mycket snabbare än för några år sedan) tar alltså i runda tal fyra gånger längre tid på sig att leverera ett minnesblock.

Oj, det här blev längre och luddigare än jag hade tänkt mig, men hoppas det förklarar lite i alla fall.

Visa signatur

"We're paratroopers, lieutenant. We're supposed to be surrounded!" - Lt. Winters, Bastogne 1944

Permalänk
Entusiast

Försöker förklara det med en extremt förenklad bild:

Du befinner dig i ett enormt bibliotek.
Massor av böcker med mängder av information finns i biblioteket.
Biblioteket heter "RAM".

Du har ett bord där du kan lägga böckerna på för att enkelt kunna läsa dem, gärna flera stycken på en gång.
Bordet heter "Cache".

För att kunna bearbeta information om ett visst ämne, behöver du plocka ner några böcker från bilbiotekets hyllor ner på bordet.

Nu är ju tyvärr bordet inte av samma storlek som resten av bilbioteket, så när bordet är fullt måste du rensa upp på bordet, ställa tillbaka böckerna, och hämta ner nya böcker varje gång du behöver komma åt information som inte ligger på bordet för tillfället.

Så länge all information du behöver finns på bordet, kommer också hanteringen av informationen att gå fort.

Om du nu behöver information som inte finns varken på bordet, eller i biblioteket, så måste du hämta böckerna från källaren.
Källaren heter "Hårddisk".

Tyärr tar det flera millisekunder, till och med hela sekunder innan man hämtat upp böckerna från källaren.

Ju större bord, desto färre gånger behöver man rensa upp och hämta nya böcker.

Tyvärr är ju datorer ganska "puckade":
För varje gång en bok behöver hämtas ner, måste hela bordet rensas. En mycket tidsödande process. Så hade man haft ett riktigt stort bord, så hade man inte behövt rensa upp så ofta.

Visa signatur

Bästa programmen till Linux - v2.0
Linux-guide: Val av grafisk miljö. (Att välja distribution).
-
Everyone should have a SGoC in their systems (SGoC: SysGhost on a Chip)

Permalänk
Medlem

+1 Fantastiskt bra beskrivning!

Visa signatur

Intel Core i5 3570K w/ Scythe Shuriken | 8GB Corsair Vengeance LP PC3-12800 CL9 | ASUS Radeon HD7770 DirectCu 1GB V2 | ASUS Maximus V Gene Z77 | OCZ Vertex 4 128GB | Silverstone GD04B USB 3.0 M-ATX | Corsair CX 430W V2

Permalänk

Håller med ovanstående !

Permalänk
Medlem

Håller också med!

Använde faktiskt bibliotek och böcker en gång för att beskriva cache och minne en gång själv. Tog dock inte upp hårddisken (källaren) då.

Tänkte komma med ett nytt försök till en liten liknelse (jämför med min 2,4 GHz Phenom med 2,2 GHz NB och DDR2-800 med latenserna 5-5-5-18-22-2T):

Register - 1 klockcykel (0,4 ns) - sidan som arbetas med för tillfället

L1 cache - 3 klockcykler (1,25 ns) - boken som arbetas med för tillfället

L2 cache - 15 klockcykler (6,25 ns) - böcker i närheten, på skrivbordet

L3 cache - ~45 klockcykler (~18,25 ns) - böcker på ett annat bord i närheten, som delas med de andra arbetarna (processorkärnorna)

DRAM - ~60 ns enligt everest - biblioteket (säg att det tar ~20 sek att hämta en bok i genomsnitt)

NAND-flash SSD - ~0,1 ms (ca 1667 ggr längre tid än DRAM) - ett stort bibliotek som det ~9,3 timmar innan man får en bok

Hårddisk - ~10 ms (ca 100 ggr längre tid än NAND-flash) - ett enormt bibliotek som det tar ~38 dygn innan man får en bok

Hårddisk (inkl spin-up) - ~2 s (ca 200 ggr längre tid än en redan aktiv hårddisk) - det enorma biblioteket tog visst semester en stund och man måste vänta ~21 år!

Visa signatur

AMD Ryzen 5 3600 | 4x8GiB 18-20-16-36-52-2T DDR4-3400 | MSI B450-A Pro Max AGESA 1.2.0.7 | Sapphire RX 480 Nitro+ OC 8GiB | Crucial MX500 500GB | PNY CS900 2TB | Samsung 850 EVO 500GB | Samsung PM961 512GB | Scythe Kamariki 4 450W

Permalänk
Medlem

SysGhost Fint bildligt beskrivet men det överens stämmer inte med Scanian beskrivning...

Du säger nästan att cache minnet är ram minne i själva processorn exempelvis medan Scanian säger att det är ett system processorn använder för att ta fram information som precis används eller används ofta och att gissnings och andra funktioner finns programerade... Själv har jag ingen aning om vilken som är mer korekt men jag gissar att Scanians är den rätta

Så den bearbetar inte data men den har datorn tillgänglig redan OM jag förstått det rätt Tack bägge två, ska dock prova biblioteket till dom som inte har en aning om datorer!

Permalänk
Hedersmedlem
Skrivet av SysGhost:

Försöker förklara det med en extremt förenklad bild:

Du befinner dig i ett enormt bibliotek.
Massor av böcker med mängder av information finns i biblioteket.
Biblioteket heter "RAM".

Du har ett bord där du kan lägga böckerna på för att enkelt kunna läsa dem, gärna flera stycken på en gång.
Bordet heter "Cache".

För att kunna bearbeta information om ett visst ämne, behöver du plocka ner några böcker från bilbiotekets hyllor ner på bordet.

Nu är ju tyvärr bordet inte av samma storlek som resten av bilbioteket, så när bordet är fullt måste du rensa upp på bordet, ställa tillbaka böckerna, och hämta ner nya böcker varje gång du behöver komma åt information som inte ligger på bordet för tillfället.

Så länge all information du behöver finns på bordet, kommer också hanteringen av informationen att gå fort.

Om du nu behöver information som inte finns varken på bordet, eller i biblioteket, så måste du hämta böckerna från källaren.
Källaren heter "Hårddisk".

Tyärr tar det flera millisekunder, till och med hela sekunder innan man hämtat upp böckerna från källaren.

Ju större bord, desto färre gånger behöver man rensa upp och hämta nya böcker.

Tyvärr är ju datorer ganska "puckade":
För varje gång en bok behöver hämtas ner, måste hela bordet rensas. En mycket tidsödande process. Så hade man haft ett riktigt stort bord, så hade man inte behövt rensa upp så ofta.

Du har lite fel i jämförelsen. Hela cacheminnet behöver inte rensas för att man hämtar en bok. Så kallade cache lines är det ju som det läses in till. Så man kan säga att man har ett fast antal platser på bordet man kan lägga en bok på. Behövs en ny bok så ersätter den en specifik bok på bordet (det finns en viss relation mellan minnesadresser och cacheraden). Och har inget skrivits till cacheraden så behöver man inte ställa tillbaka boken, den ersätts bara med kopian från DRAM.

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Hedersmedlem

Och det är skillnad på cache, alltså temporär snabbt minne som indexeras i samma adressrymd som DRAM. Registren som CPU:n har är inte någon är specifika utrymmen som det är vad processorn arbetar direkt mot. Man kan säga att det är ett anteckningsblock man har med sig i biblioteket. Det är aldrig något man ställer i hyllan men det är vad man arbetar med framme vid bordet.

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Medlem

Men SysGhost skrev så : För att kunna bearbeta information om ett visst ämne, behöver du plocka ner några böcker från bilbiotekets hyllor ner på bordet

Det SysGhost menar är :det måste bearbetas via cache minnet. Men om jag förstått det rätt så är cache minnet en facit där man snabbt kan kolla ifall något finns där(information). Men kan man bearbeta saker eller har cache minnet funktioner att bearbeta saker och måste man gå via cache minnet, kan inte processorn arbeta utan den?

Jag är ledsen om det blev krångligt men jag har aldrig gjort citat själv.

Nu när vi är igång.. Om jag får ställa en till fråga? Jag kom in i denna sida för att jag tänkte köpa en extern hårdisk mest för att förvara då mina 3st 300gb, är nästan fulla.

Prestandan är ju inte viktig för mig men jag gillar ha det bästa möjliga för pengarna och dels för att jag gillar att vara informerad.
jag kollade på dom 3 st externa som länker nedan visar och undra är det viktigare att ha cache minne eller rpm i detta fall? Av informationen jag fått från er så tror jag att RPM är mer lönsamt men ville höra vad ni experter tycker

http://www.prisjakt.nu/produkt.php?j=538962,541834,455213

tack för all svar och viktig information!

Permalänk
Entusiast

Jo, ni har rätt. Det är mycket mer bakom kulisserna än vad jag uppger.
Jag skrev i början: "...en extremt förenklad bild...".
Jag ville inte gå in på tekniska detaljer och småsaker, utan ville förklara enkelt hur ett enkelt cacheminne fungerar utan att gå *BlahBlahTekniskaTermerObegripligtBloj*.

Som jag brukar säga: "Ta det med en nypa salt... eller en grävskopa..."

Visa signatur

Bästa programmen till Linux - v2.0
Linux-guide: Val av grafisk miljö. (Att välja distribution).
-
Everyone should have a SGoC in their systems (SGoC: SysGhost on a Chip)

Permalänk
Avstängd
Skrivet av SysGhost:

Jo, ni har rätt. Det är mycket mer bakom kulisserna än vad jag uppger.
Jag skrev i början: "...en extremt förenklad bild...".
Jag ville inte gå in på tekniska detaljer och småsaker, utan ville förklara enkelt hur ett enkelt cacheminne fungerar utan att gå *BlahBlahTekniskaTermerObegripligtBloj*.

Som jag brukar säga: "Ta det med en nypa salt... eller en grävskopa..."

Då går det ju inte att äta...

Tycker förövrigt det var en bra beskrivning.

Visa signatur

R7 3700X | X570 Aorus Master | 32GB | EVGA 1080 Ti FTW3 | Noctua NH-D15S | FD Meshify C Copper
R7 1700 | X370 Gaming-ITX | 16GB | RX Vega 64 LE | Noctua U12S | Node 304
2 x HPE ProLiant Microserver Gen 8 | 1265L V2 | 16GB | 20TB

Permalänk
Hjälpsam
Skrivet av SeF.Typh00n:

Då går det ju inte att äta...

Tycker förövrigt det var en bra beskrivning.

Min liknelse gick att äta.
http://www.sweclockers.com/forum/54-amd/803626-cachminne/

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Avstängd
Skrivet av Ratatosk:

Haha

Visa signatur

R7 3700X | X570 Aorus Master | 32GB | EVGA 1080 Ti FTW3 | Noctua NH-D15S | FD Meshify C Copper
R7 1700 | X370 Gaming-ITX | 16GB | RX Vega 64 LE | Noctua U12S | Node 304
2 x HPE ProLiant Microserver Gen 8 | 1265L V2 | 16GB | 20TB