Presentation is loading. Please wait.

Presentation is loading. Please wait.

Flash - Speicher Vortrag zur Seminararbeit von Niklas Kobelev.

Similar presentations


Presentation on theme: "Flash - Speicher Vortrag zur Seminararbeit von Niklas Kobelev."— Presentation transcript:

1 Flash - Speicher Vortrag zur Seminararbeit von Niklas Kobelev

2 Themenübersicht 1.Flash – Allgemein 2.Flash – Geschichte 3.Flash – Funktionsbeschreibung 4.Eingebettete Systeme - Allgemein 5.Flash in eingebetteten Systemen

3 Definition Flash – Speicher = Speicherbaustein, der Daten auch ohne ständige Stromversorgung beibehalten kann. Flash - Allgemein

4 Flash - Eigenschaften Mobilität Herstellungspreis mechanische Robustheit (mittlerweile) großes Volumen Zugriffsgeschwindigkeit niedriger Energieverbrauch Flash - Allgemein

5 Flash - Einsatzgebiete Speicherkarten USB - Sticks mobile Geräte SSD - Platten viele andere Mikroprozessor Anwendungen Flash - Allgemein

6 Flash – Speicher – Arten NAND- und NOR-Flash : verschiedene Architekturen verschiedene Speicherdichte und Zugriffsgeschwindigkeit Flash - Allgemein

7 SSD Laufwerke Ursprünge greifen in 1950er Erste Flash-basierte SSD‘s erst in 1995 Auf breitem Markt seit 2006 Flash - Allgemein

8 HDD / SSD Vergleich FestplatteSolid State DriveEine SSD ist … Geschwindigkeit Lesen:bis zu 150 MB/sbis zu 510 MB/sbis zu 3,4x schneller Geschwindigkeit Schreiben:bis zu 150 MB/sbis zu 480 MB/sbis zu 3,2x schneller Zugriffszeit Lesen:ab 3,5 ms0,2 msbis zu 17,5x schneller Zugriffszeit Schreiben:ab 3,5 ms0,4 msbis zu 8,8x schneller Defektanfällige Mechanik:janeinwesentlich robuster Stoßfestigkeit im Betrieb:60g1.500g25x stoßfester im Betrieb Stoßfestigkeit bei Lagerung:350g1.500g4,5x stoßfester bei Lagerung Verbrauch in Leerlauf:4 Watt und höher0,05 bis 1,3 Watt um den Faktor 3,1 bis 80x sparsamer Verbrauch bei Zugriff:6 Watt und höher0,5 bis 3 Watt um den Faktor 2 bis 12x sparsamer Lautloser Betrieb:neinjaabsolut geräuschlos Gewicht:ca. 100 Grammab 50 Grammbis zu 50% leichter Lagertemperatur:-40 bis 70 °C-55 bis 95 °C unempfindlicher auf Extremtemperaturen Lesevorgänge:beliebig oft bei den Lesevorgängen nicht limitiert Schreibvorgänge:beliebig oft 0,01 bis 5 Mio je Zelle bei den Schreibvorgängen limitiert Max. Speicherkapazität:bis 2,0TBbis 1,5TBderzeit noch kleiner Preis pro Gigabyte:ab 0,06 Euroab 0,6 Euroderzeit noch teurer Quelle : http://www.ssd-test.de/warum-ssd-die-vorteile-und-nachteile.html

9 HDD / SSD Vergleich Flash - Allgemein Quelle : http://shop.plextoramericas.com/blog/2012/03/win-ssd-vs-hdd-battle/

10 Themenübersicht 1.Flash – Allgemein 2.Flash – Geschichte 3.Flash – Funktionsbeschreibung 4.Eingebettete Systeme - Allgemein 5.Flash in eingebetteten Systemen

11 Flash Erfindung Dr. Fujio Masuoka ca. 1980 (bei Toshiba) Flash - Geschichte

12 Flash Entwicklung durch Entwicklung der Digitalkameras getrieben erste Compact Flash in 1994 Flash - Geschichte

13 Markteinführung der Flash-Speicher Produkte Flash - Geschichte

14 Themenübersicht 1.Flash – Allgemein 2.Flash – Geschichte 3.Flash – Funktionsbeschreibung 4.Eingebettete Systeme - Allgemein 5.Flash in eingebetteten Systemen

15 Flash-Zelle Aufbau Flash - Funktionsbeschreibung

16 auf „1“ setzen (erase) „Channel Hot Electron Injection“ Methode Flash - Funktionsbeschreibung

17 auf „1“ setzen (erase) „Channel Hot Electron Injection“ Methode nur Blockweise möglich Flash - Funktionsbeschreibung

18 Flash-Speicher Inhalt vor dem erase Flash - Funktionsbeschreibung

19 Flash-Speicher Inhalt nach dem erase Flash - Funktionsbeschreibung

20 Flash – Funktionsbeschreibung auf „0“ setzen „Fowler-Nordheim-Tunneln“ Methode Flash - Funktionsbeschreibung

21 Lesen Flash - Funktionsbeschreibung

22 Lebensdauer einer Flash - Zelle 10.000 – 1.000.000 Schreib- oder Löschzugriffen isolierenden Oxidschicht wird beschädigt das Lesen hat keinen negativen Effekt auf die Zellen Flash - Funktionsbeschreibung

23 Multi – Bit – Zellen (MLC) Es kann mehr als ein Bit gespeichert werden Lese- und Schreibgeschwindigkeit sind kleiner Bitfehlerrate ist höher Flash - Funktionsbeschreibung

24 Themenübersicht 1.Flash – Allgemein 2.Flash – Geschichte 3.Flash – Funktionsbeschreibung 4.Eingebettete Systeme - Allgemein 5.Flash in eingebetteten Systemen

25 Definition eingebettetes System = ein spezialisiertes, Rechner-basiertes System, das in einen technischen Kontext eingebunden (eingebettet) ist. eingebettete Systeme - Allgemein

26 Charakterisierung geringer Stromverbrauch kleine Dimensionen und Gewicht geringe Wärmeentwicklung stabile und robuste Konstruktion und Komponente eingebettete Systeme - Allgemein

27 Hardware in eingebetteten Systemen an spezielle Aufgabe angepasst oft ohne Tastatur oder Bildschirm ROM oder Flash-Speicher statt Festplatten eingebettete Systeme - Allgemein

28 Firmware in eingebetteten Systemen Steuerung des Systems selbst Interaktion des Systems mit der Außenwelt Bootloader Betriebssystem eingebettete Systeme - Allgemein

29 Development Kit eingebettete Systeme - Allgemein Bestehen aus: Hardware Plattform Software - Entwicklungsumgebung Dokumentation ggbfs. Debugging – Interface ggbfs. Beispielapplikationen

30 Giant Gecko Development Kit 320x240, farbigen, resistiver Touchscreen 16 MB NOR – Flash USB – Port zum Programmieren und Debuggen Audio I/O MicroSD Slot 16 LED‘s 5 Buttons und ein Joystick Demo Applikationen eingebettete Systeme - Allgemein

31 Themenübersicht 1.Flash – Allgemein 2.Flash – Geschichte 3.Flash – Funktionsbeschreibung 4.Eingebettete Systeme - Allgemein 5.Flash in eingebetteten Systemen

32 Memory System Control (MSC) Flash – Speicher lesen und schreiben Lese-, und Schreib- Konfigurationen verändern Flash in eingebetteten Systemen

33 Register Steuerung des gesamtes Systems über eindeutige Adressen erreichbar Flash in eingebetteten Systemen

34 Datenblatt lesen Flash in eingebetteten Systemen

35 Struktur aufbauen

36 Flash in eingebetteten Systemen Struktur aufbauen

37 Flash in eingebetteten Systemen Struktur aufbauen

38 < Flash in eingebetteten Systemen Struktur aufbauen

39 Flash in eingebetteten Systemen struct efm32gg_msc_s * p_efm32gg_msc = (volatile struct efm32gg_msc_s *)0x400C0000;

40 struct efm32gg_msc_s * p_efm32gg_msc = (volatile struct efm32gg_msc_s *)0x400C0000; p_efm32gg_msc->msc_status. bit.invaddr

41 Flash in eingebetteten Systemen Treiberfunktionen schreiben

42 Both page erase and write operations require that the address is written into the MSC_ADDRB register. // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; Flash in eingebetteten Systemen

43 Load the address by writing 1 to the LADDRIM bit in the MSC_WRITECMD register. The LADDRIM bit only has to be written once when loading the first address. After each word is written the internal address register ADDR will be incremented automatically by 4. // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; Flash in eingebetteten Systemen

44 The INVADDR bit of the MSC_STATUS register is set if the loaded address is outside the flash.. // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; Flash in eingebetteten Systemen

45 ..and the LOCKED bit of the MSC_STATUS register is set if the page addressed is locked. // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; Flash in eingebetteten Systemen

46 ..the software must write the first word to the MSC_WDATA register.. // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; // load word p_efm32gg_msc->msc_wdata.bit.wdata = 0xAABBCCDD; Flash in eingebetteten Systemen

47 ..and then set the WRITETRIG bit of the MSC_WRITECMD register. // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; // load word p_efm32gg_msc->msc_wdata.bit.wdata = 0xAABBCCDD; // set write trigger p_efm32gg_msc->msc_writecmd.bit.writetrig = 1; Flash in eingebetteten Systemen

48 When a word is written to the MSC_WDATA register, the WDATAREADY bit of the MSC_STATUS register is cleared. When this status bit is set, software or DMA may write the next word. // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; // load word p_efm32gg_msc->msc_wdata.bit.wdata = 0xAABBCCDD; // set write trigger p_efm32gg_msc->msc_writecmd.bit.writetrig = 1; // wait for busy bit while (p_efm32gg_msc->msc_status.bit.busy == 1){}; Flash in eingebetteten Systemen

49 Treiberfunktionen schreiben // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; // load word p_efm32gg_msc->msc_wdata.bit.wdata = 0xAABBCCDD; // set write trigger p_efm32gg_msc->msc_writecmd.bit.writetrig = 1; // wait for busy bit while (p_efm32gg_msc->msc_status.bit.busy == 1){}; Flash in eingebetteten Systemen

50 // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; // load word p_efm32gg_msc->msc_wdata.bit.wdata = 0xAABBCCDD; // set write trigger p_efm32gg_msc->msc_writecmd.bit.writetrig = 1; // wait for busy bit while (p_efm32gg_msc->msc_status.bit.busy == 1){}; Flash in eingebetteten Systemen

51 aus dem Flash lesen // get word U32 static tmp_word = *(U32*)0x000f0000; Flash in eingebetteten Systemen

52 eine Page aus dem Flash löschen Flash in eingebetteten Systemen // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; // wait for busy bit while (p_efm32gg_msc->msc_status.bit.busy == 1){};

53 For erase operations, the address may be any within the page to be erased. Flash in eingebetteten Systemen // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; // wait for busy bit while (p_efm32gg_msc->msc_status.bit.busy == 1){};

54 The page is erased by the ERASEPAGE command of the MSC_WRITECMD register.. // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; // set erasepage bit p_efm32gg_msc->msc_writecmd.bit.erasepage = 1; // wait for busy bit while (p_efm32gg_msc->msc_status.bit.busy == 1){}; Flash in eingebetteten Systemen

55 // set address p_efm32gg_msc->msc_addrb.bit.addrb = (U32)0x000F0000; // load address p_efm32gg_msc->msc_writecmd.bit.laddrim = 1; // check invalid address status if (p_efm32gg_msc->msc_status.bit.invaddr == 1) return 2; // check locked page status if (p_efm32gg_msc->msc_status.bit.locked == 1) return 3; // set erasepage bit p_efm32gg_msc->msc_writecmd.bit.erasepage = 1; // wait for busy bit while (p_efm32gg_msc->msc_status.bit.busy == 1){}; Flash in eingebetteten Systemen

56 eine Page aus dem Flash löschen // set erase page bit p_efm32gg_msc->msc_writecmd.bit.erasepage = 1; // wait for busy bit while (p_efm32gg_msc->msc_status.bit.busy == 1){}; Flash in eingebetteten Systemen

57 Fazit größte Schwierigkeit bei der Treiberimplementierung : Arbeiten mit dem Datenblatt des Entwicklungsboards persönliche wichtigste Erfahrung: elegante Datenstrukturen

58 Quellen 1.Flash-Speicher, Wikipedia (de) 2.Floating-Gate-Transistor, Wikipedia (de) 3.Digitalkamera, Wikipedia (de) 4.Solid-State-Drive, Wikipedia (de) 5.http://www.idialo.de (SSD – Speicher, Stand 13.11.2012)http://www.idialo.de 6.http://www.pcwelt.de/produkte/SSD-versus-Festplatte-Tempo-Vergleich-398580.htmlhttp://www.pcwelt.de/produkte/SSD-versus-Festplatte-Tempo-Vergleich-398580.html 7.http://www.ssd-test.de/warum-ssd-die-vorteile-und-nachteile.htmlhttp://www.ssd-test.de/warum-ssd-die-vorteile-und-nachteile.html 8.http://shop.plextoramericas.com/blog/2012/03/win-ssd-vs-hdd-battle/http://shop.plextoramericas.com/blog/2012/03/win-ssd-vs-hdd-battle/ 9.http://www.flash-speicher.at/aufbau/allgemeine-funktionsweise.htmlhttp://www.flash-speicher.at/aufbau/allgemeine-funktionsweise.html 10.http://dammlab.com/osnovi-pk/companenty_pc/principy-raboty-flesh-pamyati.htmlhttp://dammlab.com/osnovi-pk/companenty_pc/principy-raboty-flesh-pamyati.html 11.Hot-carrier injection, Wikipedia (en) 12.Flash Memory – kompakt und schnell speichern - Pro-Physik.de (pdf) 13.USB – Stick: Merkmale und Eigenschaften, Präsentationsfolien, RWTH – Aachen. 14.Feldemission, Wikipedia (de) 15.MLC-Speicherzelle, Wikipedia (de) 16.Eingebettetes System, Wikipedia (de) 17.Bootloader, Wikipedia (de) 18.http://www.cdn.energymicro.com/dl/devices/pdf/d0001_efm32g_reference_manual.pdfhttp://www.cdn.energymicro.com/dl/devices/pdf/d0001_efm32g_reference_manual.pdf 19.Ausschnitte aus dem Datenblatt des EFM32GG-DK3750

59 Fragen?


Download ppt "Flash - Speicher Vortrag zur Seminararbeit von Niklas Kobelev."

Similar presentations


Ads by Google