Download presentation
Presentation is loading. Please wait.
Published byKristina Kurzmann Modified over 9 years ago
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?
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.