Flashminne

hårdvarubaserat lagringsminne använt i mobiltelefoner, digitalkameror, USB-minnen, m.m.

Ett flashminne är ett datorminne som kan läsas och skrivas elektroniskt och som behåller informationen också då de inte har ström, medan information kan raderas bara blockvis. Begränsningen tillåter en enklare och därmed billigare struktur än den i tidigare EEPROM. De kan därför användas som massminnen också i billiga apparater, men begränsningen förhindrar användning av dem som arbetsminne.

Flashminnen används i mobiltelefoner, digitalkameror, USB-minnen och annan vardagselektronik. Det är i denna sorts minnen som exempelvis foton lagras i en kamera eller telefon. I kameror är de ofta utbytbara för att ge den som vill möjlighet att köpa större minnen, för fler bilder, eller snabbare minnen för högresolutionsvideo och seriebildtagning.

Flashminnet är en vidareutveckling av de tidigare minnestyperna EPROM och EEPROM och utvecklades av forskare inom Intel Corporation år 1988. De största tillverkarna av flashminnen är idag Samsung, Intel, AMD-Fujitsu, Toshiba och STMicroelectronics.

Flashminnen kan delas in i två grundtyper: NOR och NAND. Den äldre NOR-typen är relativt lik ett EPROM eller RAM i såväl intern uppbyggnad som externt gränssnitt och kan därför användas på samma sätt vid läsning (dock ej vid skrivning). En mikroprocessor kan använda ett NOR-flash för direkt exekvering av ett lagrat program. NAND-typen är långsammare och kräver speciella kontrollkretsar för att anpassas till en mikroprocessor men är i gengäld betydligt billigare per bit.

NOR-minnet redigera

NOR-minnet kännetecknas av att det går snabbt att läsa data från minnet (10–100 ns), men det tar lång tid att skriva data till minnet (1–10 ms). NOR-minnet läser normalt ett ord i taget.

NAND-minnet redigera

NAND-minnet har utvecklats av Toshiba. Det är långsamt både vid läsning (10–15 µs) och vid skrivning (1–10 ms). Dock läser man en stor mängd data samtidigt till en mellanlagringsbuffert. Därifrån kan det sedan läsas ut snabbt.

Ett NAND-minne är inte tillförlitligt, så data måste normalt felrättas efter utläsning. Fördelen med NAND-flashminnen är att en NAND-minnescell är mindre än en NOR-minnescell och billigare att tillverka. NAND-flashminne används därför enbart för att lagra data. Om man vill lagra program i NAND-flashminne, brukar man kopiera programmet till en snabbare minnesarea innan det anropas.

Dataflash redigera

Ett mellanting mellan NOR-flashminnet och NAND-flashminnet är Atmels Dataflash. Det är ett NOR-flashminne med ett enklare långsammare gränssnitt än det vanliga parallellgränssnittet. Det används ofta för att lagra data i mikrokontrollers, mindre datorer för styr- och reglerfunktioner. På grund av den begränsade hastigheten är inte heller detta minne lämpligt för programlagring utan föregående kopiering till en snabbare minneskrets.

Funktion redigera

En flashminnescell består av en enda transistor vars styrsignal förändras vid programmeringen. En icke-programmerad minnescell har värdet ”1” och en programmerad minnescell har värdet ”0”.

Ett flashminne är indelat i block som normalt är ganska stora. En typisk blockstorlek är 64 kilobyte.

När man vill förändra en bit från en etta till en nolla kan man göra det genom att programmera just den biten. Om man vill göra tvärt emot, det vill säga förändra en nolla till en etta, är det svårare. Man måste då sudda ut hela blocket.

Ju mindre blocket är, desto enklare är det för användaren. Men mindre block kräver mer styrelektronik, varför blocken tenderar att bli stora i NOR-flashen. Typiskt sett är blocken mindre i NAND-flash samt i Dataflash.

Ett problem med användningen av flashminnen är att det inte är möjligt att läsa från flashminnet när man väl har börjat programmera ett block. Därför är en del moderna flashminnen uppdelade i flera plan som är isolerade från varandra. Då är det möjligt att läsa från ett minnesplan under tiden man programmerar ett annat.

När elektronikkonstruktören skall använda ett flashminne så är det två egenskaper som är viktiga:

  • Hur många gånger går det att programmera flashminnet?
  • Hur länge behåller minnet laddningen?

Moderna[när?] minnen går att programmera kanske 100 000 gånger innan fel börjar uppträda. Man[vem?] beräknar att minnet håller 10–20 år i "typisk" användning innan enstaka exemplar börjar få problem.

För att öka minnets lagringsförmåga så har det introducerats flernivåflashminnen. I det ursprungliga flashminnet var styrsignalen till transistorn antingen oprogrammerad (”1”) eller programmerad (”0”). Med flernivåminnescellen programmerar man styrsignalen till nivåer ’’mellan’’ ”hög” och ”låg”. För att sedan vid läsningen avgöra värdet, jämför man nivån med egna fördefinierade gränser. Varje transistor kan då lagra två eller fler bitar.

Användning redigera

Flashminnen förekommer i avancerade systemchip med inbyggda processorer. Den första kretsen av det slaget var Atmels mikrostyrkrets med en processorkärna (8051) från Intel.

I stort sett alla flashbaserade mikrostyrkretsar har en liknande teknologi som heter EEPROM. Den använder två transistorer i stället för en, och minnescellen är därför större. Fördelen med EEPROM är att man inte behöver stora block. I små EEPROM-kretsar kan man programmera och sudda 8 bitar i taget. (Att jämföra med det typiska flashminnets 524 288 bitar).

De flesta flashminneskorten för digitalkameror och mobiltelefoner är i dag baserade på NAND-teknik, medan minneskortens programkod använder NOR-flashteknik.

Gränssnittet på tidiga flashminneskortet av Smartmediatyp var integrerat på minneskretsen. I senare flashminneskort av modellerna Multimediacard (MMC), Secure Digital (SD) samt Memorystick, finns det en mikrostyrkrets som hanterar signalerna i kontakten. Styrkretsen hanterar också felkorrigering och annat i NAND-flashminnet.

Begränsningar redigera

Flashminnen har på grund av sin konstruktion en inbyggd begränsning i antalet skrivcykler. Det går med andra ord inte att skriva ett oändligt antal gånger till denna typ av minnen utan att det förstörs.

Då olika delar av ett flashminnes skrivs om olika ofta, såsom då de används istället för hårddisk, skulle en del block slitas slut medan andra skrivits om bara ett fåtal gånger. Därför har de flesta flashminnen inbyggd logik som fördelar skrivoperationerna mellan olika block, och för att möjliggöra detta finns på dem inte en direkt koppling mellan minnesadresser och block. I vissa flash-kretsar överlåts denna funktion till de externa styrkretsarna.

Nuvarande utveckling redigera

Flashminnet har i dag[när?] i stort sett helt ersatt den tidigare EPROM-tekniken som kunde programmeras elektriskt, men måste suddas via bestrålning av ultraviolett ljus. Framtida möjliga konkurrenter till flashminnen kan vara plastminnen samt ferro-RAM.

Ferro-RAM kan ses som en miniatyrisering av kärnminnet som fanns i datorns ungdom. Fördelen med ferrominnet är att det kan skrivas lika snabbt som det kan läsas. Det har varit under utveckling under ett stort antal år men har hittills inte använts i större sammanhang.

Plastminnet som utvecklas bland annat på Linköpings tekniska högskola har inte kommit så långt än.[när?]

Se även redigera

Externa länkar redigera