Flashminnen. Ett kapitel för kursen Wearable Computers D 10 p



Relevanta dokument
Minnessystem. Minneshierarki. Flyktigt eller icke flyktigt huvudsakliga egenskaper. Minneshierarki

Digital- och datorteknik

Digital- och datorteknik

Hantering av begränsat antal skrivningar på Solid State diskar

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Digital IC konstruktion

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Digital IC konstruktion

Instruktioner för uppdatering av enheter med ISP

Att köpa ny dator SeniorNet Lidingö September-2017

Grindar och transistorer

Anujan Balasingam IDA14 NAND flashminnen

Elektronik. Lars-Erik Cederlöf

Läsminne Read Only Memory ROM

Att köpa ny dator SeniorNet Lidingö Januari-2016

Digital IC konstruktion

Vad är elektricitet?

HF0010. Introduktionskurs i datateknik 1,5 hp

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

DIG IN TO Administration av nätverk- och serverutrustning

Cacheminne i en AMD Opteron Processor

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

DIG IN TO Dator och nätverksteknik

Minnen. Informationsteknologi sommarkurs 5p, Agenda. Slideset 4

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

PNSPO! Minneskort till CJ. 14 mars 2012 OMRON Corporation

Vad är elektricitet?

Laboration 6. A/D- och D/A-omvandling. Lunds universitet / Fakultet / Institution / Enhet / Dokument / Datum

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Elektronik. MOS-transistorn. Översikt. Då och nu. MOS-teknologi. Lite historik nmosfet Arbetsområden pmosfet CMOS-inverterare NOR- och NAND-grindar

Starta och stänga av datorn. Att starta är i allmänhet problemfritt, men man bör vänta med aktiviteter (starta program) tills startfilerna är

Nanoelektronik. FAFA10 Kvantfenomen och nanostrukturer HT Martin Magnusson.

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

TIDNINGEN. Konsten att partitionera SSD-flash EMBEDDED. Kongeniala rapporter om inbyggda system etn.se/expert. Claus Giebert Kontron

ELEKTRICITET.

Rapport (1,5 HP) Lunds Universitet HT15

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

Cecilia Ingard. Boksidan

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Föreläsning 11 Fälteffekttransistor II

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Föreläsning 3.1: Datastrukturer, en översikt

Elektronik 2017 EITA35

Grunderna i stegkodsprogrammering

Vad är ett dokument? Gör så här

Föreläsning 6: Opto-komponenter

Moment 1 - Analog elektronik. Föreläsning 2 Transistorn del 2

Moderkortet Persondatorer Moderkortet Innehåll

krävs för att kunna utföra arbete. Den finns i många former men kan inte förstöras, bara omvandlas från en form till en annan.

Henrik Asp. Allt du behöver veta för att KÖPA DATOR

r 2 Arbetet är alltså endast beroende av start- och slutpunkt. Det följer av att det elektriska fältet är konservativt ( E = 0).

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.

Mer datorarkitektur. En titt I datorn Minnen

Programmering B med Visual C

Cacheminne i en Intel Core 2 Duo-processor

Datorarkitekturer med Operativsystem

Jag försöker hämta in video via Ulead programmet men får bara in bilden och inget ljud.

Digital elektronik och inbyggda system

DIG IN TO Dator och nätverksteknik

Instruktioner för första användningen

Digital IC konstruktion

MESI i Intel Core 2 Duo

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

I/O kort för triggsignaler för LogiComm pistoldrivare

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

nmosfet och analoga kretsar

Lathund Blanketthotell Komma igång

Elektricitet och magnetism

Detta är en liten ordlista med förklaringar på begrepp och aktiviteter relaterade till. elvisualiseringsverktyg

IT-GUIDE Version 1.0 Författare: Juha Söderqvist

Att köpa ny dator SeniorNet Lidingö Februari-2019

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering

Trust PhotoCam LCD 2300 PHOTOCAM LCD Anvisningar för snabb installation. Version 1.0

ESD ElektroStatic Discharge (elektrostatisk urladdning) är oftast en trestegsprocess:

Du kan även lyssna på sidorna i läroboken: Teknik direkt s Lyssna gör du på inläsningstjänst.

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Rättade inlämningsuppgifter hämtas på Kents kontor Föreläsning 4 Må , Kent Palmkvist To ,

r 2 C Arbetet är alltså endast beroende av start- och slutpunkt. Det följer av att det elektriska fältet är konservativt ( E = 0).

BDM12 Användarbeskrivning. Introduktion

Elektriska Kretsar. En fördjupning gjord av Philip Åhagen. Philip Åhagen Mälardalens Högskola Produktutveckling /2010 KPP 039

Mki9100 UPPDATERING. Ladda ned uppdateringsfiler

F9: Minne. Sammansättning av minnesgrupper Ansluta minne till Interface till olika typer av minnen Användningsområden.

Din manual EMTEC HRDDISK PHOTO CUBE

Produktutvecklingsprocessen. (e)lvis

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

Partiell Skuggning i solpaneler

Moment 1 - Analog elektronik. Föreläsning 1 Transistorn del 1

Installationsanvisning av proximityläsare 1103/2. Mod. 1103/2

32 Bitar Blir 64 Sammanfattning

Predator Digital 3D. Predator Digital 3D. Bruksanvisning. Version 1.0

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Personalsupport. Medicinska fakulteten, Lunds universitet. Textredigeraren. Moodle version 2.7.1

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Digital- och datorteknik

1. Starta om din Mac. 2. Kontrollera din Internetuppkoppling

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Transkript:

Flashminnen Ett kapitel för kursen Wearable Computers D 10 p Namn: Datum: 021105 Handledare: Lars Karlsson Björne Lindberg Ulf Brydsten

Flashminnen 3 Vad är flash? 3 CFI Common Flash Interface 3 Olika typer av flashminnen 4 Tillförlitlighet och miljö 6 Hur fungerar flash? 7 MOSFET 8 Tillämpning 9 Hur skiljer sig Flash och EEPROM? 10 Sammanfattning 11 Tankar och reflektioner 12 Källförteckning 13 2

Flashminnen Vad är flash? Vanligtvis används flashminnen som lagringsmedia och inte arbetsminnen. Det finns många elektroniska produkter som utnyttjar flashminnen bl.a. digitala kameror (då i form av CompactFlash, MemorySticks, etc.). Användningsområdena är många och flash blir vanligare i mån av att kostnaden sjunker. I detta kapitel kommer ett byte av flashminne på en bärbar 1 dator beskrivas. Flashen har slagit sig in på detta område. En anledning är att vanliga hårddiskar förbrukar onödigt mycket ström. En annan anledning är att det ofta inte behövs den stora mängd utrymme som hårddiskar har att erbjuda. Tidigare har ett problem varit att flashminnen inte klarar av så många raderingar och skrivningar. För att förhindra att en sektor går sönder före en annan har en teknik använts för att sprida raderingar över de olika blocken. Numera finns minnen klarar uppemot en miljon skrivningar så detta ses inte längre som något större problem. Vad är det då som skiljer ett flashminne från en vanlig hårddisk? Skillnaderna är många och det enda egentliga likheten är att båda är lagringsmedier. En enkel beskrivning av en hårddisk är att den sparar digital information elektromagnetiskt på en roterande skiva. Sedan används läshuvuden för att hämta data. Ett flashminne är inte riktigt lika lätt att beskriva. Det är uppdelat i rader och kolumner som bildar celler. Dessa är i sin tur indelade i block. Minnet använder elektroniska laddningar för att radera och skriva data i cellerna. Detta kommer att beskrivas mer ingående längre ned i texten. Det är också viktigt att hålla reda på att flash inte är samma sak som flash RAM. Det senare fungerar vanligtvis som ett arbetsminne som töms på data när det stängs av. Flashminnena kräver inte ström för att bibehålla sina sparade data (kallas på eng. nonvolatile). Många små apparater som man tror innehåller riktigt flash innehåller egentligen flash RAM, t.ex. bilstereos. Dessa tappar ju som bekant radiostationerna när bilbatteriet kopplas ur (detta gäller förstås inte alla bilradioapparater). CFI Common Flash Interface CFI är en standardisering av drivrutiner för flashminnen och fungerar som ett datablad direkt på flashminnet. I detta datablad finns mängder olika specifikationer, t.ex. voltantal, storlek och liknande. Tanken är att man ska kunna byta ett flashminne till ett annat utan att göra några direkta ändringar i mjukvaran. CFI fungerar som en handskakningsmetod mellan värdsystemets mjukvara och flashenheten. Detta gör det möjligt att bygga mjukvarualgoritmer för hela familjer av flashminnen, inte bara för en specifik modell. Man kan med andra ord enkelt uppgradera värddatorns minne utan att behöva göra några förändringar av mjukvara. För att komma åt CFI:n gör man (på AMD:s enheter) en förfrågan, som kallas CFI-query, på en adress. Man kan därefter be flashminnet utföra en rad operationer, exempelvis radera en sektor. 1 Med bärbar menas inte en dator i LapTop-storlek utan snarare i Palm-storlek. 3

Före CFI var skapat fanns alla specifikationer för ett flash på datorn som hade det installerat. När man då bytte var man givetvis tvungen att uppdatera mjukvaran. Standarden skapades på initiativ av bl.a. Intel, AMD och Fujitsu. Olika typer av flashminnen Flashminnen delas vanligtvis in i två olika kategorier, NAND flash och NOR flash. Den senare är det traditionella flashminnet som man vanligtvis syftar på när man pratar om flashminnen. NAND är en nyare utgåva som är billigare än NOR. För programmeraren är den stora skillnaden mellan de båda att NAND adresseras via en 8-bitars bus medan NOR adresseras direkt. De båda versionerna har en stor likhet de kommer från fabriken med alla celler som 1:or och kan sätta dessa celler till 0 med hjälp av en skrivfunktion. NAND har dessutom en intern buffer som den laddar in data i, byte för byte, och sedan exekverar ett kommando på. NAND flash har som standard mindre block än vad NOR har, men dessa storlekar är väldigt olika beroende på tillverkare. Rent generellt kan man säga att NOR-block varierar mellan 64-128 K-byte och NAND mellan 8-32 K-byte. För att radera ett block skriver man först nollor till alla celler i blocket varefter själva raderingen äger rum. En sådan operation kan ta uppemot 5 sekunder för ett NOR-minne medan NAND gör motsvarande på endast 4 msek. Det finns skillnader på andra områden än prestanda, dessa presenteras nedan. Observera att detta är en väldigt generaliserande lista: 1. NAND är snabbare än NOR på att radera och skriva, dock är NOR snabbare på att läsa. Detta beror på att NAND ansluter till sina celler seriellt medan NOR ansluter parallellt. Den seriella anslutningen är segare men går att göra betydligt mycket större än den parallella. Se figur 1. 2. NOR utnyttjar minnesmappning där NAND kör I/O-mappning. NOR räknas som en XIP-enhet 2. 3. NAND finns i högre densitet, d.v.s. med större lagringsmöjligheter. Dessutom är NAND-flashen mindre än NOR. 32 M-byte NAND är ungefär hälften så stort som 16 M-byte NOR. Sammanfattningsvis brukar man säga att NAND vanligtvis används som lagringsenheter i t.ex. digitalkameror och mp3-spelare. NOR används för lösningar där utrymme inte är av högsta prioritet, utan där möjligheten att exekvera kod är viktigare. 2 XIP står för möjligheterna att köra kod direkt från flashen istället för att först skugga upp det i RAM. 4

I figur 1 har företaget M-Systems försökt visa den arkitektuella skillnaden mellan NAND och NOR. Figur 1: NAND ansluter till celler seriellt medan NOR ansluter parallellt. Det vanligaste flashminnet i dagens olika elektroniska apparater är troligtvis Compact Flash (som utnyttjar NAND-teknologin). Första modellen släpptes 1994 och är numera helt kompatibel med PCMCIA-ATA-standarden. Två typer finns på marknaden, enkelt kallade typ 1 och typ 2. Den enda skillnaden mellan de båda är tjockleken. Typ 1 Compact Flash är 3,3 mm tjockt medan typ 2 är 5 mm tjockt. Typ 1-korten passar i både typ 1- och typ 2-adaptrar dock passar typ 2 bara i sina egna adaptrar. De båda modellerna kan drivas på 3,3-5 V. Detta minne har blivit populärt på grund av dess värddatoroberoende. Detta oberoende innebär att minnet har en bra CFI som på egen hand klarar av bl.a. radering och skrivning. Minnet blir alltså enkelt att byta då man inte behöver uppgradera mjukvaran i den apparat som används. Compact Flash drivs av ett företag som heter CFA (Compact Flash Association). Detta är ett icke-vinstdrivande företag som endast tillhandahåller namnet och standarden Compact Flash. Många stora företag som använder flashminnen i sina produkter har gått med i CFA. Några exempel på företag är; Canon, IBM, SanDisk, Hewlett-Packard och Hitachi. En av de största konkurrenterna till Compact Flash är Smart Media. På senare tid har det dock verkat som att Smart Media är på tillbakagång och tappar marknad gentemot CF. Detta beror på främst två faktorer: 1. Fler och fler företag går med i CFA och får på så sätt bra kompabilitet gentemot många olika produkter på marknaden. 2. Smart Media kräver mer av produkten som använder minnet. Det har inte samma avancerade CFI och behöver därmed bättre mjukvarulösningar i apparaten som använder den. 5

Den andra konkurrenten är Sonys egna Memory Stick. Det är svårt att hitta ingående teknisk information om denna modell. Som det ser ut nu så verkar detta inte bli någon riktig storsäljare då det i praktiken egentligen bara är Sony själva som använder det. Atmel anser sig själv vara ledande på ett område som är relativt nytt på flashmarknaden. Detta är synkront flashminne. Syftet med det är att göra en mer förutsägbar hantering av data samt göra hanteringen snabbare. Hastigheten på flashminnen har inte följt utvecklingen av processorer och arbetsminnen och därför använder sig många programmerare av en skuggningsteknik. Detta innebär att programsekvenser som ska köras skuggas in i arbetsminnet som arbetar betydligt mycket snabbare än flashminnet. Atmel säljer redan nu minnen med cykeltider på 10 ns och lovar att det snart ska släppas minnen på 7 ns. De har dessutom minskat ner blockstorleken till 64 bytes per block. Tillförlitlighet och miljö Flashminnen ska teoretiskt sett hålla data till dess att ett elektriskt fält läggs över cellerna och tömmer hela minnet. Givetvis är inte minnena perfekta utan tappar information som legat inaktivt för länge. I tillämpningen används ett minne som heter Am29LV320DT. Amd säger att denna modell ska hålla data så länge som 20 år i upp till 125 C. Detta kanske inte låter så mycket, men om man jämför det mot t.ex. CDskivor som i vissa fall anses vara fungerande i endast 10 år. Jämförelsen är egentligen inte så bra, då flashminnen vanligtvis inte används i samma syfte som CD-skivor, men det ger ett mått att relatera till. En modell som släpptes under 2001 påstås klara tuffa förhållanden. Enligt en artikel på Electronicstalk ska denna modell som heter IFM-401/441 klara ett temperaturspann från 10-70 C och en luftfuktighet varierande mellan 5% och 95%. Dessutom ska den klara chock och vibrationer motsvarande 1000G och höjder motsvarande 16-17km. Det finns skillnad i tillförlitlighet mellan NAND och NOR. Vanligtvis har NAND en mycket längre livscykel än NOR. Minimala livslängden är 100.000 raderingar för NAND och den maximala är 1.000.000. Tillförlitlighet innebär dock inte bara livstid utan även hur säker datat är. Ett fenomen som uppstår i dagens arkitekturer är bit-flippning. Detta innebär att vid vissa tillfällen byter helt enkelt en cell värde utan någon förklarlig anledning. Skulle detta ske vid ett kritiskt tillfälle, eller kanske i någon viktig fil, så kan följderna vara mer eller mindre katastrofala. Tyvärr så finns idag inget bot mot detta, men man kan åtminstone minska symtomen. Det finns en felkorrigeringsalgoritm som heter EDC/ECC som används. Dessa fel uppstår i båda typer av flashminne, men betydligt mycket oftare i NAND än i NOR. Utöver dessa tillförlitlighetsproblem finns vissa produktionsproblem. Dessa problem resulterar i att några celler på flashminnena är trasiga direkt från fabriken. Enligt tillverkarna går detta att åtgärda men med följden att priserna skulle öka dramatiskt. Dessa felaktiga block finns generellt inte på NOR men är däremot ganska vanliga på NAND-minnen. 6

Hur fungerar flash? För att kunna förstå hur ett flashminne fungerar bör man först veta hur det är uppbyggt. Minnena består av ett rutnät av ledningar. I varje korsning i detta rutnät finns två transistorer. En av transistorerna är kopplad till raden i korsningen och den andra är förstås kopplad till kolumnen. Man brukar kalla raderna för ordlinjen (fritt översatt från eng. word line) och kolumnerna för bitlinje (eng. bit line). De båda transisorerna delar på en kontrollgrind och en flytande grind 3. För enkelhetens skull kallas den transistor som är kopplad till raden för kontrollgrind och den kolumnanslutna för flytande grind. Mellan dessa två transistorer finns ett tunt oxidlager. Det bör också nämnas att den flytande grinden är kopplad till jord via en kondensator. Se figur 2. O r d l i n j e B i t l i n j e Kontrollgrind Oxidlager Flytande grind Source Drain Figur 2: En cell i ett flashminne. Observera att två transistorer delar på kontrollgrind och flytande grind. Som synes är den flytande grindens enda koppling till ordlinjen genom kontrollgrinden. Så länge som det finns en väg för elektronerna att gå härigenom så betraktas cellen som en etta. Cellen i figur 2 skulle betraktas som en etta eftersom det inte finns någonting i vägen förutom oxidlagret. För att ändra en cells värde till en nolla används en metod som heter Fowler-Nordheimtunnling. Man lägger en spänning på den flytande grinden, vanligtvis 10-13 Volt. Laddningen kommer från bitlinjen eftersom detta är det enda som flytande grinden är kopplad till. Den kommer att jorda grinden vilket leder till att elektroner fastnar bakom oxidlagret mellan grindarna och på så sätt ge den en negativ laddning. Vad innebär detta? Jo, laddningen kommer att isolera flytande grinden från kontrollgrinden. Dessutom används en speciell enhet kallad cellsensor för att kontrollera hur stark den 3 Alternativt innehåller varje cell en MOS-transistor som är modifierad med en flytande grind. (Läs mer om MOSFET under rubriken MOSFET.) 7

negativa laddningen är. När strömmen som går genom flytande grinden till kontrollgrinden minskat till hälften av laddningen ses cellen som en 0:a. För att återställa cellen till en 1:a används ett elektriskt fält. Detta skapas genom ledningar som går genom block av flashminnet. När ett fält skapas så kommer givetvis då hela blocket att raderas. Detta har både fördelar och nackdelar och kommer att redas ut längre ner i texten. De transistorer som används heter MOSFET (Meta-Oxide-Semiconductor Field-Effect Transistor). Beskrivning följer nedan: MOSFET Denna transistor är väldigt annorlunda jämfört med de vanliga PNP- och NPNtransistorer. De finns i två olika material, silikon och germanium. Anledningen till att dessa material används är att de är uppbyggda i kuber och varje atom har fyra valenselektroner. Dessa elektroner interagerar inte med andra elektroner vilket gör att de båda ämnena agerar isolatorer. Genom att få de att reagera med andra ämnen kan man dock frigöra valenselektronerna eller tillföra fler och göra de till ledare. Tillföra elektroner gör man genom att blanda t.ex. arsenik eller fosfor med endera av ämnena. Den andra metoden, att frigöra valenselektroner, gör man genom att reagera ämnena med t.ex. gallium eller indium. Det nya materialet som bildas kallas för negativt, eller n-typ. När man frigör elektronerna och lägger en laddning på ämnet bildas positiva hål. Dessa förflyttas motsatt elektronernas riktning. Detta material kallas för positivt, eller p-typ. Strömmen genom en MOS-transistor styrs av ett elektriskt fält snarare än en bas-ström som på NPN-PNP-transistorerna. Transistorn har en otroligt hög inimpedans vilket är positivt för strömförbrukningen. USByte.com har illustrerat en MOS-transistor i figur 3. Figur 3: MOSFET Detta är en n-typ MOS-transistor. När en positiv laddning läggs på Gate så kommer elektroner att attraheras och gå bakom det isolerande oxidlagret som finns mellan gaten och p-typ-silikonet. Detta kommer att bilda en kanal mellan source och drain där en ström går. Genom att variera laddningen på gaten så kan man reglera strömmen som går genom transistorn. 8

Tillämpning Det nämndes tidigare att ett praktisk exempel på ett flashminne skulle tas upp. Detta är gjort på en kurs på Umeå universitet (Wearable computers). Själva tillämpningen är ett byte av flashminne på en Axis Etrax 100LX. På denna dator sitter från fabriken ett 2 M- byte stort flashminne av märket Toshiba fastlött. Det nya minnet var på 4 M-byte av märket AMD. Modellens namn är Am29LV320DT. LV står för Low Voltage och innebär att enheten ska köras på tre volt istället för de vanliga fem. Minnets söktid är på ungefär 120 ns (modellens namn är egentligen Am29LV320DT120) och dess storlek är på 32 Mbit. Det första som måste göras är givetvis att löda det nya flashminnet på Etraxen. Detta är också den enda hårdvaruförändringen som måste göras. Det resterande är några små mjukvaruändringar som egentligen inte är speciellt svåra att förstå rent logiskt. Man måste börja med att lägga till den nya flashens ID i bootladdaren. AMD:s minnen har vanligtvis bootblock, dessa är placerade antingen som topp eller botten. Am29:an har ett Top Boot Block och dess ID är 0x22F6. De olika flash-id som stöds av Etraxen finns angivna som enumeration-koder i en fil som heter flash.c som ligger under ~/tools/e100boot/cbl/ (detta är ung. en drivrutin för flashminnen). enum { ManufacturerAMD = 0x01, AM29F800BB = 0x2258, AM29F800BT = 0x22D6, AM29LV800BB = 0x225B, AM29LV800BT = 0x22DA, AM29LV160BT = 0x22C4, AM29LV320DT = 0x22F6 }; Den sista raden i enumerationsfältet anger tillägget för det nya flashminnet. I Etraxens programvarustruktur finns en struct som heter flash. I denna ska man ange storlekar för de olika delarna av minnet. Sedan tidigare finns en switch-case-sats som innehåller initiering av structen för alla de olika flash som Etraxen har stöd för. För att lägga till initieringen av Am29:an måste man antingen leta reda på den data som behövs i dess datablad, eller bara skriva av det som står nedan: case AM29LV320DT: message = "Flash: 32Mb TB. ; flash->size = 0x00400000; flash->boot_sector = flash->base +flash->size-flash-> sector_size; flash->boot_sector_size[0] = 0x2000; flash->boot_sector_size[1] = 0x2000; flash->boot_sector_size[2] = 0x2000; flash->boot_sector_size[3] = 0x2000; flash->boot_sector_size[4] = 0x2000; 9

flash->boot_sector_size[5] = 0x2000; flash->boot_sector_size[6] = 0x2000; flash->boot_sector_size[7] = 0x2000; break; Här anges alltså storlekar på de olika sektorerna. Dessutom beräknas storleken på bootsektorn. Det kan vara lite bökigt att hitta denna information i datablad. För denna tillämpning fanns tacksamt nog kodexempel med Am29LV320DT. När väl denna information är inlagd ska man göra en hel del kompilering innan allting fungerar som det är tänkt. Givetvis måste linuxkärnan kompileras. När då detta är klart är ett rimligt antagande att det nya minnet ska vara färdigt att använda. Det är det i och för sig också, men det extra utrymmet går ej att nyttja. Man måste därför partionera upp det nya utrymmet. I detta fall måste man även i en fil kallad makeprod ange storleken på det nya flashminnet. Sista raden i denna fil som ligger under sökvägen ~/axis/devboard_lx/tools/mkprod ska ändras från: exec HWID=400 buildsrc packages/productimages/2mb till: exec HWID=400 buildsrc packages/productimages/4mb. Själva partitioneringen utförs i en fil som heter ptablespec (sökväg: ~axis/devboard_lx/). Här anges helt enkelt storleken på partitionerna hexadecimalt. Hur skiljer sig Flash och EEPROM? Det finns många olika namn och typer av flashminne och ibland kan det vara svårt att särskilja vad som är riktigt flash och vad som är varianter av flash och EEPROM eller hybrider av de båda. För att något ska räknas som ett flashminne så ska det vara Solid- State samt non-volatile. Detta innebär att enheten inte ska innehålla några rörliga delar samt att det inte ska kräva ström för att bibehålla information. Den kanske största märkbara skillnaden mellan de båda är sättet som de hanterar raderingar. Ett flashminne raderar hela sektorer, eller block, och är därmed otroligt snabbt. EEPROM:et raderar data byte för byte. Skillnaden i hastighet blir stor 1 byte tar lika lång tid att radera på EEPROM:en som en sektor på 512 byte på flashminnet. Hastigheten kommer dock med ett pris. Det blir av förståeliga skäl svårt och omständligt att sköta filhantering än om man bara vill radera 10 byte data så måste en hel sektor tömmas. Atmel har försökt lösa problemet genom att skapa en ny version av flash som de kallar för parallell flash. I denna modell har storleken på blocken minskats till 64 byte. De anser att detta ska göra minnet idealt för programmering av applikationer som kräver uppdateringar av små mängder data. I figur 4 har Intel försökt beskriva skillnaden mellan flash, EEPROM, DRAM och ROM. 10

Figur 4: Skillnader mellan minnestyperna. Detta är givetvis lite av en reklambild som får det att se ut som att flash har alla positiva delar av de tre stora blocken. Så är inte fallet. Redan nämnt är svårigheterna som uppstår när man endast vill radera små mängder data, andra nackdelar är att flashets söktid vanligtvis är längre än EEPROM:s söktider. Dessutom är DRAM, d.v.s. olika ramminnen betydligt mycket snabbare än flashminnen. Sammanfattning Detta kapitel har relativt ingående diskuterat och förklarat hur flashminnen fungerar. Flashens uppbyggnad och funktionalitet har beskrivits. Ett flashminne är solid-state och non-volatile. Detta innebär att det icke är mekaniskt samt är det ej beroende av ström för att behålla data. Utöver detta har de två huvudgrupperna NAND-flash och NOR-flash tagits upp. Skillnaden mellan dessa två har fastställts. NAND används bäst som rena lagringsenheter medan NOR bättre används som utrymme för kod och kodexekvering. MOS-transistorn som används i flashminnen har beskrivits. MOSFET-transistorn har några få likheter med de vanliga bipolära transistorerna men fungerar egentligen på ett annorlunda sätt. Den utnyttjar elektriska fält för att styra strömmen genom den. En viktig rubrik som tagits upp är Tillförlitlighet och miljö. Där diskuteras hur pass man kan lita på att flashminnen håller viktig data. Miljöfaktorer tas även upp, dock inte speciellt ingående. En modell av flashminne som är byggd för att klara extra tuffa förhållanden nämns. Det kanske viktigaste i kapitlet är tillämpningsdelen. I detta stycke beskrivs en praktisk tillämpning; ett byte av flashminne på en dator. Vilka ändringar som behövs göra och vilka faktorer som bör tänkas på tas upp. Utöver detta förklaras vad ett flashminne är och hur det skiljer sig gentemot andra minnen som t.ex. EEPROM. 11

Tankar och reflektioner Efter att ha skrivit detta kapitel om flashminnen anser jag att flash helt klart är på framåtmarsch. Redan nu kan man se dessa minnen användas i en mängd olika elektriska apparater, t.ex. mp3-spelare, kameror och mobiltelefoner. I och med att utveckling på andra områden framskrider kommer användandet och kravet på flashminnen öka ännu mer. Mobiltelefonernas nya nät 3G kommer att ge möjligheter att streama videosekvenser och säkerligen kommer önskemål att kunna spara dessa sekvenser finnas. Det största problemet jag har haft under skrivandets gång är att hitta vettig information. Det verkar nästan som att intresset för hur flashminnen fungerar inte är så stort. Försäljare, datablad och reklam finns det gott om men däremot en förklaring på hur skrivning och läsning fungerar har jag bara hittat ett par exempel på och dessa är inte speciellt bra. 12

Källförteckning http://developer.axis.com http://klabs.org http://www.amd.com http://www.atmel.com http://www.byte.com http://www.electronicstalk.com http://www.howstuffworks.com http://www.intel.com http://www.m-sys.com http://sources.redhat.com http://www.st.com http://www.tomshardware.com http://www.usbyte.com 13