Anujan Balasingam IDA14 NAND flashminnen

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

HF0010. Introduktionskurs i datateknik 1,5 hp

Ibas forensics Mobila enheter

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

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

Cacheminne Intel Core i7

Hantering av hazards i pipelines

Cacheminne i en AMD Opteron Processor

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline

Hyper-Threading i Intelprocessorer

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

Emil Kristiansson Kurs: EDT621 Delmoment: Rapport. En introduktion till Smart cache

Hantering av hazards i multi-pipelines

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

Introduktion till programmering

Mer datorarkitektur. En titt I datorn Minnen

Aktivitetsschemaläggning för flerkärninga processorer

F5: Högnivåprogrammering

Minnen. Informationsteknologi sommarkurs 5p, Agenda. Slideset 4

F5: Högnivåprogrammering

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

Att använda DVD-RAM-skivor

Städa hemområdet (och andra filsystem)

Läsminne Read Only Memory ROM

Datorarkitekturer med operativsystem ERIK LARSSON

En virtuos bland POS-systemen

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

Parallellism i NVIDIAs Fermi GPU

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Öka prestanda i Shared-Cache multi-core processorer

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

SIMD i Intel s P5- baserade Pentium MMX

Programmering = modellering

Grundläggande programmeringsteknik Datorsystem

Jämförelse av skrivtekniker till cacheminne

Personsökare RX-300 Bruksanvisning

Digital- och datorteknik

Digital IC konstruktion

Processor pipelining genom historien (Intel i9-intel i7)

Föreläsning 2. Operativsystem och programmering

Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren

Mälardalens högskola

4 grundregler. Minneshantering. Problemet. Windows minkrav

Multithreading in Intel Pentium 4 - Hyperthreading

PC-modeller Trollhättans Stad

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Inledande programmering med C# (1DV402) Introduktion till programmering

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Digital IC konstruktion

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Blue Ocean Strategy. Blue Oceans vs Red Oceans. Skapelse av Blue Oceans. Artikelförfattare: W. Chan Kim & Renée Mauborgne

BDM12 Användarbeskrivning. Introduktion

HUR MAN LYCKAS MED BYOD

Cacheminne i en Intel Core 2 Duo-processor

Digitalteknik och Datorarkitektur 5hp

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

Exempeltentamen Datorteknik, EIT070,

Pipelining i Intel Pentium II

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

MESI-protokollets funktion i multiprocessorer

Formatera flashminne

För att använda detta system behöver du en dator med internetåtkomst samt din G&D iphone.

Spekulativ exekvering i CPU pipelining

Parallellism i CDC 7600, pipelinens ursprung

Datorarkitekturer med operativsystem ERIK LARSSON

Digitalteknik och Datorarkitektur

Datorsystemteknik DAV A14 Föreläsning 1

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

Färgjustering Färgexempel Avfragmentera flash Originalvärden Formatera hårddisk Formatera flashminne Hexspårning

Information Coding / Computer Graphics, ISY, LiTH. Minnesaccess. Vitalt för prestanda! Minnestyper. Coalescing

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ?

När storleken har betydelse

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Grundläggande datavetenskap, 4p

1642 uppfann Blaise Pascal världens första mekaniska räknemaskin. Den kunde både addera och subtrahera. Den kan ses som en föregångare till datorn.

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

Öppna filer och filsystem i PintOS Hemuppgift TDDI81, 21/

Bakgrund. Inför projektet. Mätningar av existerande läge

Institutionen för Datavetenskap Department of Computer Science

Hannes Larsson - IDA 2, LTH Campus Helsingborg. NEC V R 4300i. Interlock-handling EDT621

Modernt arbete kräver moderna verktyg

32 Bitar Blir 64 Sammanfattning

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Instruktioner för uppdatering av enheter med ISP

Filöverföring i Windowsmiljö

5 Skapa ett vinnande koncept. 5.1 Skapa alternativa koncept med högre kundvärde

Testmeny. Skriva ut. Pappershantering. Service. Felsökning. Administration. Index

Minneshantering. Skriva ut Skrivarminne. Använda färg. Pappershantering. Underhåll. Felsökning. Administration. Index

Advanced Mobile Device Management

Datorarkitekturer med Operativsystem

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

repetitionskoder blockkoder Felrättande koder

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

Informationssäkerhet och medicintekniska produkter eller Information security with respect to safety considerations

EFFEKTIVARE KOMMUNIKATION FÖR FRAMTIDENS INTERNET

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Transkript:

Anujan Balasingam IDA14 NAND flashminnen Hur kan prestandan och kapaciteten förbättras? Kursansvarig: Erik Larsson Datorarkitektur med operativsystem 7,5 hp 04-12-2015

Innehållsförteckning 1. Inledning... 4 1.1 Bakgrund... 4 1.2 NAND flashminnet... 4 1.3 Två olika typer av NAND flashminnen... 4 1.4 Teoretiskt utgångspunkt... 5 2. FlexFS... 5 2.1 Kombination av SLC och MLC... 5 2.2 Tekniska motgångar... 6 2.3 Lösningar... 6 2.4 Resultat av FlexFS... 7 3. Sammanfattning/slutsats... 7 Källförteckning... 8

1. Inledning 1.1 Bakgrund Marknadens efterfrågan på NAND flashminnen börjar bli allt större och större. Detta beror på dess attraktiva egenskaper, bland annat erbjuder dessa hög prestanda och är lågt batteridrivande. För tillfället har utbudet svårt att möta marknadens efterfrågan. Det finns flashminnen på marknaden som erbjuder höga lagringsutrymmen och hög prestanda vilket har varit ett växande krav hos konsumenter dock kan dessa enheter kännas förhållandevis dyra men allt eftersom tekniken utvecklas blir de billigare. 1 1.2 NAND flashminnet De flesta NAND flashminnen består av flera block, typiskt brukar varje block innehålla ungefär 4 till 128 sidor där varje sida kan ha en storlek mellan 512 B och 8 KB. NAND flashminnen brukar ha en kort livslängd, detta beror på att man endast kan skriva in data till ett block genom att först radera informationen som redan finns i blocket. Problemet med detta är att det finns en begränsning (oftast är det 5000 till 100 000 cyckler) på hur många gånger man kan radera data i ett block. Likt andra lagringsenheter lagrar NAND flashminnen bitar av data i celler, dessa celler kan ha två eller flera tillstånd. Om minnesceller i flashminnet har två tillstånd så betyder det att det går att lagra en bit i en cell, detta är av typen single-level cell. Om minnescellerna har fler tillstånd än två så betyder det att är möjligt att lagra två eller flera bitar i en cell, detta är av typen multi-level cell. Denna skillnad gör att man kan lagra flera bitar av data i ett minne som är av typen multi-level cell jämfört med föregående. 1.3 Två olika typer av NAND flashminnen Prestanda och lagringsutrymme, som nu framöver kommer att refereras som kapacitet i denna artikel, har en stor korrelation när det gäller NAND flashminnen. Det finns två typer av NAND flashminnen, single-level cell (SLC) och multi-level cell (MLC). Det som skiljer de åt är prestanda, kapacitet och livslängd. SLC flashminnen har högre prestanda och längre livslängd. MLC flashminnen har större kapacitet och är billigare än SLC när det är i fråga om kostnad per bit. Att MLC har högre kapacitet jämfört med SLC beror på att man kan lagra två eller flera bitar av information i varje cell gentemot en SLC där det 1 http://ieeexplore.ieee.org.ludwig.lub.lu.se/stamp/stamp.jsp?tp=&arnumber=5256144&isnumber=5584916 4

bara går att lagra en bit i en cell. I och med att kravet på högre kapacitet för lagringsenheter ökar börjar man allt mer fokusera på att utveckla MLC flashminnen, dessa är även mer lämpliga som lagringsenheter inom mobiltelefoner och bärbara datorer tack vare dess höga kapacitet. Det finns dock ett problem med MLC flashminnen, vilket är dess bristande prestanda som inte mäter upp sig med konsumenternas krav. En intressant teknik som möjligtvis skulle kunna lösa problematiken med att skapa ett flashminne med både hög prestanda och hög kapacitet är FlexFS. Denna teknik som introducerades av Sungjin Lee och Jihong Kim går ut på att programmera enskilda celler så att de antingen får SLC- eller MLC karaktäristiska drag. Tanken är att optimera minnet i både prestanda och kapacitet, genom att kombinera de två teknikerna i ett och samma minne. På så sätt kunna uppnå prestanda som är lika kraftfull som i ett SLC flashminne och samtidigt kunna bevara kapaciteten som finns i ett MLC flashminne. 1.4 Teoretiskt utgångspunkt I studien används två vetenskapliga rapporter som utgångspunkt. Den första artikeln som ges ett stort fokus i syfte att beskriva tekniken FlexFS är skriven av Sungjin Lee och Jihong Kim 2 Den andra artikeln, skriven av Soojun Im och Dongkun Shin, är den första studien som introducerade hur tekniken kan kombineras på ett effektivt sätt med hjälp av att programmera i MLC flashminnen. 3 2. FlexFS 2.1 Kombination av SLC och MLC I syfte för att förbättra den bristande prestandan i MLC flashminnen introducerades det två förslag där både SLC- och MLC flashminnens arkitekturer implementerades. Den ena var att konstruera en storskalig flashminnes enhet sig med både SLC och MLC chip. Den andra för förbättring av tekniken var att implementera både SLC och MLC i ett i NAND flashminne av typ MLC. I denna kombination går det både att programmera in SLC- och MLC block i varje enskild cell. 2 Den sistnämnda förslaget är vad FlexFS metoden bygger på. När både SLC och MLC programmeras i ett enda NAND flashminne måste hänsyn tas till att man effektivt fördelar prestandan och kapaciteten. I det fall för många celler kodas 2 http://ieeexplore.ieee.org.ludwig.lub.lu.se/stamp/stamp.jsp?tp=&arnumber=6520839&isnumber=6891494 5

som SLC kommer kapaciteten i minnet att avsevärt minska. På samma sätt skulle prestandan minskas om majoriteten av blocken var av MLC. Detta är en av de tekniska motgångar som behöver tas hänsyn till. 2.2 Tekniska motgångar Utöver den tidigare nämnda problematiken finns ytterliga två huvudsakliga problemområden. Att ta hänsyn till förhållandet mellan SLC och MLC celler i minnet är viktigt för prestandan och kapaciteten. En till avgörande faktor är att data måste flyttas regelbundet från single-level celler block till multi-level celler block. Detta är i anledning av att MSB sidan i ett block kommer lämnas tom när man använder SLC programmering, därmed förlorar man utrymme i onödan. Denna regelbundna dataöverföring mellan cellerna påverkar flashminnets totala livslängd eftersom att det endast kan skriva över ett block ett begränsat antal gånger. I FlexFS tas hänsyn till att det inte offras allt för mycket i livslängd för prestandan och kapaciteten. Det tredje och sista problemområdet är att se till att flashminnet ser homogent ut för användaren. 2.3 Lösningar För att försöka uppnå en prestanda lik SLC-baserade flashminnen skrivs så mycket data som möjligt in till SLC blocken i minnet. I detta fall skrivs alldeles för mycket in till SLC blocken kommer mycket utrymme att förloras i och med att man inte använder MSB delarna av blocken. För att det inte ska kunna hända använder man sig av en metod som kallas free-space reclamation. I denna metod flyttas data över från SLC block till MLC block. Metoden anropas när flashminnet inte är upptaget, idle läge, (i genomsnitt brukar enheten vara i detta tillstånd 83 98 % av tiden), då förloras inte prestanda när användaren vill att komma åt minnet. Detta betyder att all data som ska skrivas in kan göras med SLC programmering. Även om denna metod verkar effektiv har den några brister som måste hantera med försiktighet. Om dataöverföringen sker alldeles för ofta kan det ske att onödiga förflyttningar. Dessa förflyttningar innebär att man förkortar flashminnets livslängd i onödan vilket däremot inte tycks vara något problem hos FlexFS eftersom denna teknik tar hänsyn till denna problematik. Metoden realiseras genom att använda sig av två nya tekniker, dynamic free-space managment (DFM) och dynamic lifetime management (DLM). Den föregående tekniken anpassar alltid att det finns tillräckligt mycket utrymme utan att använda mer än det som 6

behövs, på detta sätt kommer inte free space reclamation att i onödan. DLM används för att kontrollera hur mycket flashminnets livslängd består och utifrån det så kan en rimlig livslängd bestämmas. 2.3.1 De två nya teknikerna Till en början ses det till att det alltid finns tillräckligt mycket utrymme men inte mer än det som behövs, ifall det råkar bli så att det lediga utrymmet som erhålls tar slut så anropas metoden free space reclamation. När detta sker kommer prestandan att påverkas negativt. I syfte att undvika detta scenario helt så samlas så mycket ledigt utrymme som möjligt under idle läget. Denna metod kallas early free space reclamation. Problemet med livslängden kvarstår eftersom den regelbundet överför data så kommer onödiga överföringar också att ske. För att lösa detta har man satt en gräns på hur mycket ledigt utrymme som får finnas i minnet, ifall det är under gränsen så anropas early free space mangement annars kvarstår den vanliga metoden, det vill säga free space reclamation. Trots att delayed free space reclamation är en effektiv lösning då den förbättrar prestandan, ser till att det alltid finns lagringsutrymme och tar även hänsyn till enhetens livslängd så räcker det inte enbart med den. En rimlig och god livslängd för NAND flashminnet kan inte garanteras enbart med denna teknik. Här kommer DLM tekniken in. Med hjälp av Dynamic lifetime management bestäms ett godtyckligt byte mellan prestanda och livslängd. 2.4 Resultat av FlexFS Resultatet från laborationen av FlexFS visar att den uppnådde en prestanda väldigt nära en SLC baserat minne och bevarar kapaciteten som i ett MLC baserat minne, samtidigt ges en godtycklig livslängd i flera av mobila enheter bland annat mobiler och laptops. 2 3. Sammanfattning/slutsats Avslutningsvis kan det påpekas att det finns tydliga fördelar med att ha SLC och MLC regioner i ett flashminne. Denna teknik visar potential att vara en bra lösning till förbättra prestandan och kapaciteten i NAND flashminnen i framtiden. 7

Källförteckning - Sungjin Lee; Jihong Kim, "Improving Performance and Capacity of Flash Storage Devices by Exploiting Heterogeneity of MLC Flash Memory," in Computers, IEEE Transactions on, vol.63, no.10, pp.2445-2458, Oct. 2014 - Shu Li; Tong Zhang, "Improving Multi-Level NAND Flash Memory Storage Reliability Using Concatenated BCH-TCM Coding," in Very Large Scale Integration (VLSI) Systems, IEEE Transactions on, vol.18, no.10, pp.1412-1420, Oct. 2010 8