HurPedia

Hur Datorminne fungerar

Hur Datorminne Fungerar

När man tänker efter är det otroligt hur många olika typer av elektroniskt minne man möter i det dagliga livet. Många av dem har blivit en integrerad del av vårt ordförråd:

  1. Bagge
  2. ROM
  3. Cache
  4. Dynamiskt RAM
  5. Statiskt RAM
  6. Flashminne
  7. Memory Sticks
  8. Virtuellt minne
  9. Videominne
  10. BIOS

Du vet redan att datorn framför dig har minne. Vad du kanske inte vet är att de flesta elektroniska föremål du använder varje dag också har någon form av minne. Här är bara några exempel på de många objekt som använder minne:

  • Mobiltelefoner
  • handdatorer
  • Spel konsoler
  • Bilradioapparater
  • videobandspelare
  • TV-apparater

I den här artikeln kommer du att lära dig varför det finns så många olika typer av minne och vad alla termer betyder. På nästa sida, låt oss börja med grunderna: Vad exakt gör datorminne?

Relaterade inlägg: // Vad är en PC?

Grunderna i datorns minne

Datorminne

Även om minne tekniskt sett är någon form av elektronisk lagring, används det oftast för att identifiera snabba, tillfälliga lagringsformer. Om din dators CPU var tvungen att ständigt komma åt hårddisken för att hämta alla data som den behöver, skulle den fungera mycket långsamt. När informationen hålls i minnet kan processorn komma åt den mycket snabbare. De flesta typer av minne är avsedda att lagra data tillfälligt.

CPU:n kommer åt minnet enligt en distinkt hierarki. Oavsett om det kommer från permanent lagring (hårddisken) eller ingång (tangentbordet), går de flesta data i RAM (Random Access Memory) först. CPU:n lagrar sedan bitar av data som den kommer att behöva komma åt, ofta i en cache, och upprätthåller vissa speciella instruktioner i registret. Vi pratar om cache och register senare.

Alla komponenter i din dator, såsom CPU, hårddisken och operativsystemet, arbetar tillsammans som ett team, och minnet är en av de viktigaste delarna av detta team. Från det ögonblick du slår på din dator tills du stänger av den använder din CPU ständigt minne. Låt oss ta en titt på ett typiskt scenario:

  • Du sätter på datorn.
  • Datorn laddar data från skrivskyddat minne (ROM) och utför ett självtest vid start (POST) för att säkerställa att alla huvudkomponenter fungerar korrekt. Som en del av detta test kontrollerar minneskontrollern alla minnesadresser med en snabb läs-/skrivoperation för att säkerställa att det inte finns några fel i minneschipsen. Läs/skriv betyder att data skrivs till en bit och sedan läses från den biten.
  • Datorn laddar det grundläggande input/output-systemet (BIOS) från ROM. BIOS ger den mest grundläggande informationen om lagringsenheter, startsekvens, säkerhet, Plug and Play (automatisk enhetsigenkänning) och några andra objekt.
  • Datorn laddar operativsystemet (OS) från hårddisken till systemets RAM. I allmänhet behålls de kritiska delarna av operativsystemet i RAM så länge som datorn är på. Detta gör att CPU:n har omedelbar tillgång till operativsystemet, vilket förbättrar prestanda och funktionalitet hos det övergripande systemet.
  • När du öppnar ett program laddas det in i RAM-minnet. För att spara på RAM-användningen laddar många applikationer endast de väsentliga delarna av programmet initialt och laddar sedan andra delar efter behov.
  • När ett program har laddats laddas alla filer som öppnas för användning i det programmet in i RAM.
  • När du sparar en fil och stänger programmet skrivs filen till den angivna lagringsenheten och sedan rensas den och programmet från RAM.

I listan ovan, varje gång något laddas eller öppnas, placeras det i RAM. Det betyder helt enkelt att den har placerats i datorns temporära lagringsområde så att processorn lättare kan komma åt den informationen. CPU:n begär data den behöver från RAM, bearbetar den och skriver ny data tillbaka till RAM i en kontinuerlig cykel. I de flesta datorer sker denna blandning av data mellan CPU och RAM miljontals gånger varje sekund. När en applikation stängs rensas den och eventuella medföljande filer vanligtvis från RAM-minnet för att göra plats för ny data. Om de ändrade filerna inte sparas på en permanent lagringsenhet innan de rensas, går de förlorade.

En vanlig fråga om stationära datorer som dyker upp hela tiden är ”Varför behöver en dator så många minnessystem?”

Typer av datorminne

En vanlig dator har:

  • Nivå 1 och nivå 2 cacher
  • Normalt system-RAM
  • Virtuellt minne
  • En hårddisk

Varför så många? Svaret på denna fråga kan lära dig mycket om minne!

Snabba, kraftfulla processorer behöver snabb och enkel tillgång till stora mängder data för att maximera sin prestanda. Om processorn inte kan komma åt data den behöver stannar den bokstavligen och väntar på den. Moderna processorer som körs med hastigheter på cirka 1 gigahertz kan konsumera enorma mängder data – potentiellt miljarder byte per sekund. Problemet som datordesigners möter är att minne som kan hålla jämna steg med en 1-gigahertz CPU är extremt dyrt – mycket dyrare än någon har råd med i stora mängder.

Datordesigners har löst kostnadsproblemet genom att ”tiera” minne — använda dyrt minne i små kvantiteter och sedan säkerhetskopiera det med större mängder billigare minne.

Den billigaste formen av läs/skrivminne i stor användning idag är hårddisken. Hårddiskar ger stora mängder billig, permanent lagring. Du kan köpa hårddiskutrymme för ören per megabyte, men det kan ta lite tid (närmar sig en sekund) att läsa en megabyte från en hårddisk. Eftersom lagringsutrymme på en hårddisk är så billigt och gott, utgör det det sista steget i en processors minneshierarki, kallat virtuellt minne.

Nästa nivå i hierarkin är RAM. Vi diskuterar RAM i detalj i How RAM Works, men flera punkter om RAM är viktiga här.

Bitstorleken på en CPU talar om hur många byte information den kan komma åt från RAM samtidigt. Till exempel kan en 16-bitars CPU bearbeta 2 byte åt gången (1 byte = 8 bitar, så 16 bitar = 2 byte), och en 64-bitars CPU kan bearbeta 8 byte åt gången.

Megahertz (MHz) är ett mått på en CPU:s bearbetningshastighet, eller klockcykel, i miljoner per sekund. Så, en 32-bitars 800 MHz Pentium III kan potentiellt bearbeta 4 byte samtidigt, 800 miljoner gånger per sekund (möjligen mer baserat på pipelining)! Målet med minnessystemet är att uppfylla dessa krav.

Enbart en dators system-RAM är inte tillräckligt snabbt för att matcha processorns hastighet. Det är därför du behöver en cache (diskuteras senare). Men ju snabbare RAM är, desto bättre. De flesta chips arbetar idag med en cykelhastighet på 50 till 70 nanosekunder. Läs/skrivhastigheten är vanligtvis en funktion av typen av RAM som används, såsom DRAM, SDRAM, RAMBUS. Vi kommer att prata om dessa olika typer av minne senare.

System RAM

Systemets RAM-hastighet styrs av bussens bredd och busshastighet. Bussbredd avser antalet bitar som kan skickas till CPU samtidigt, och busshastighet avser antalet gånger en grupp bitar kan skickas varje sekund. En busscykel inträffar varje gång data färdas från minnet till CPU:n. Till exempel är en 100 MHz 32-bitars buss teoretiskt kapabel att skicka 4 byte (32 bitar dividerat med 8 = 4 byte) data till CPU:n 100 miljoner gånger per sekund, medan en 66-MHz 16-bitars buss kan skicka 2 byte data 66 miljoner gånger per sekund. Om du räknar ut, kommer du att upptäcka att om du helt enkelt ändrar bussbredden från 16 bitar till 32 bitar och hastigheten från 66 MHz till 100 MHz i vårt exempel kan du få tre gånger så mycket data (400 miljoner byte mot 132 miljoner byte) att passera till processorn varje sekund.

I verkligheten fungerar RAM vanligtvis inte med optimal hastighet. Latensen förändrar ekvationen radikalt. Latens hänvisar till antalet klockcykler som behövs för att läsa lite information. Till exempel kan RAM-minne klassificerat till 100 MHz sända en bit på 0,00000001 sekunder, men det kan ta 0,00000005 sekunder att starta läsprocessen för den första biten. För att kompensera för latens använder processorer en speciell teknik som kallas burst mode.

Burst-läge beror på förväntan att data som begärs av CPU kommer att lagras i sekventiella minnesceller. Minneskontrollern förutser att allt som CPU:n arbetar med kommer att fortsätta att komma från samma serie minnesadresser, så den läser flera på varandra följande databitar tillsammans. Detta betyder att endast den första biten är föremål för den fulla effekten av latens; att läsa på varandra följande bitar tar betydligt mindre tid. Minnets nominella burstläge uttrycks normalt som fyra siffror separerade med bindestreck.

Den första siffran talar om hur många klockcykler som behövs för att påbörja en läsoperation; de andra, tredje och fjärde siffrorna talar om hur många cykler som behövs för att läsa varje på varandra följande bit i raden, även känd som ordlinjen. Till exempel: 5-1-1-1 säger att det tar fem cykler att läsa den första biten och en cykel för varje bit efter det. Uppenbarligen, ju lägre dessa siffror är, desto bättre prestanda har minnet.

Burst-läge används ofta i samband med pipelining, ett annat sätt att minimera effekterna av latens. Pipelining organiserar datahämtning i en sorts löpande process. Minnesstyrenheten läser samtidigt ett eller flera ord från minnet, skickar det eller de aktuella orden till CPU:n och skriver ett eller flera ord till minnesceller. Används tillsammans kan burst-läge och pipelining dramatiskt minska fördröjningen som orsakas av latens.

Så varför skulle du inte köpa det snabbaste, bredaste minnet du kan få? Hastigheten och bredden på minnets buss bör matcha systemets buss. Du kan använda minne som är utformat för att fungera vid 100 MHz i ett 66-MHz-system, men det kommer att köras med bussens 66-MHz-hastighet så det finns ingen fördel, och 32-bitars minne passar inte på en 16-bitars buss.

Även med en bred och snabb buss tar det fortfarande längre tid för data att komma från minneskortet till processorn än vad det tar för processorn att faktiskt bearbeta datan. Det är där cacher kommer in.

Cache och register

Cachar är utformade för att lindra denna flaskhals genom att göra den data som används oftast av CPU:n omedelbart tillgänglig. Detta uppnås genom att bygga en liten mängd minne, känd som primär eller nivå 1-cache, direkt in i CPU:n. Nivå 1 cache är mycket liten, normalt mellan 2 kilobyte (KB) och 64 KB.

Sekundär- eller nivå 2-cachen finns vanligtvis på ett minneskort nära CPU:n. Nivå 2-cachen har en direkt anslutning till CPU:n. En dedikerad integrerad krets på moderkortet, L2-kontrollern, reglerar användningen av nivå 2-cachen av processorn. Beroende på CPU varierar storleken på nivå 2-cachen från 256 KB till 2 megabyte (MB). I de flesta system nås data som behövs av CPU:n från cachen ungefär 95 procent av tiden, vilket avsevärt minskar den overhead som behövs när CPU:n måste vänta på data från huvudminnet.

Vissa billiga system slipper nivå 2-cachen helt och hållet. Många högpresterande processorer har nu nivå 2-cachen inbyggd i själva processorkretsen. Därför är storleken på nivå 2-cachen och om den finns ombord (på processorn) en avgörande faktor för prestandan hos en processor. För mer information om cachelagring, se Hur cachelagring fungerar.

En speciell typ av RAM, static random access memory (SRAM), används främst för cache. SRAM använder flera transistorer, vanligtvis fyra till sex, för varje minnescell. Den har en extern gate array känd som en bistabil multivibrator som växlar, eller flip-flops, mellan två tillstånd. Detta innebär att det inte behöver uppdateras kontinuerligt som DRAM. Varje cell kommer att behålla sin data så länge den har ström. Utan behovet av konstant uppfriskning kan SRAM fungera extremt snabbt. Men komplexiteten hos varje cell gör det oöverkomligt dyrt att använda som standard-RAM.

SRAM i cachen kan vara asynkront eller synkront. Synchronous SRAM är designad för att exakt matcha processorns hastighet, medan asynkron inte är det. Den lilla timingen gör skillnad i prestanda. Att matcha CPU:ns klockhastighet är bra, så leta alltid efter synkroniserat SRAM. (För mer information om de olika typerna av RAM, se Hur RAM fungerar.)

Det sista steget i minnet är registren. Dessa är minnesceller inbyggda direkt i CPU:n som innehåller specifik data som behövs av CPU:n, särskilt den aritmetiska och logiska enheten (ALU). En integrerad del av själva CPU:n, de styrs direkt av kompilatorn som skickar information för CPU:n att bearbeta. Se Hur mikroprocessorer fungerar för detaljer om register.

Rulla till toppen

Utforska

Snabba Länkar