Software ubiquitärer Systeme Übung 2: Speicherarchitekturen in Mikrocontrollern und AOStuBS Christoph Borchert Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/~chb/ http://ess.cs.tu-dortmund.de/de/teaching/ss2011/sus/ 1
Inhalt der heutigen Übung Mikrocontroller Architektur ROM (Flash Speicher) RAM (CMOS Speicher) Grundlagen für AOStuBS 2
Single-Chip Mikrocontroller System on Chip (SoC) CPU Speicher Timer I/O - Ports (Digital I/O) A/D und D/A Wandler UART, SPI, I2C CAN, LIN, FlexRay Funk - RF - Bluetooth / ZigBee - WLAN... Atmel Diopsis 740 3
Harvard Architektur Separater Programm- und Datenspeicher CPU Programm- Instr. Speicher ( ROM ) Datenbus DatenSpeicher (RAM) Vorteile: Instruction fetch + Memory access parallel (Pipelining) Unterschiedliche physikalische Realisierung von RAM und ROM 4
Inhalt der heutigen Übung Mikrocontroller Architektur ROM (Flash Speicher) RAM (CMOS Speicher) Grundlagen für AOStuBS 5
Read-only memory (ROM) Ursprünglich während der Chipfertigung festgelegt Speicherinhalt fest im Chip verdrahtet - Vom Anwender daher nur lesbar Nachteil: Programm muss zur Chipfertigung vorliegen Flexibler: Antifuse One Time Programmable Speicher besteht aus Polysilizium (Isolator) Ströme > 5 ma zerstören diesen Isolator und erzeugen eine permanent leitende Verbindung Vorteil: Anwenderprogrammierbar :-) - Hoffentlich hat die Software keine Bugs zum Programmierzeitpunkt 6
EPROM Erasable Programmable Read-Only Memory Pro Bit ein Transistor mit Floating Gate 7
EPROM - Auslesen Liefert im Ausgangszustand immer eine '1' (leitet) + + + + + + + + - - - - - - 8
EPROM - Programmieren Anlegen einer hohen Spannung (12V, extern) Hot-Electron Injection (hot e-) 12 V 0V + + + + + + + + - 12 V - - - - - - 9
EPROM Auslesen (2) Liefert eine '0' wenn programmiert (nicht-leidend) + + + + + + + + - - - - - - - - 10
EPROM Löschen UV-Licht ionisiert das Gate-Oxid Elektronen können vom Floating Gate abfließen UV - - - 11
(E)PROM Mit und ohne Quarzglas-Fenster 12
EEPROM / Flash Electrically Erasable Programmable Read-Only Memory Auslesen und Programmieren analog zu EPROM 0V - - - - - - - - - 12 V ++++ + + Löschen durch anlegen ein umgekehrten Spannung (12V) Fowler-Nordheim Tunneleffekt ( Leckstrom durch Gate-Oxid) Integrierte Ladungspumpe (1,8 bzw. 3,3V 12V) 13
Flash vs. EPROM Chipfoto (Querschnitt) Quelle [2] 14
Flash Floating-Gate Transistoren sind in Segmenten angeordnet Löschen nur von kompletten Segmenten möglich Kompaktes Layout (weniger Steuerungslogik) 15
Flash Floating-Gate Transistoren sind in Segmenten angeordnet Löschen nur von kompletten Segmenten möglich Kompaktes Layout (weniger Steuerungslogik) Wie groß ist ein Segment beim MSP430? 16
Flash - Data Retention Welche Ursachen limitieren die Data Retention? Welche Konsequenzen ergeben sich für Gespeicherte '1' Bits? Gespeicherte '0' Bits? Welche Faktoren beeinflussen die Data Retention? Welchen Zusammenhang stellt diese Gleichung dar? 17
Flash - Data Retention Welche Ursachen limitieren die Data Retention? Welche Konsequenzen ergeben sich für Gespeicherte '1' Bits? Gespeicherte '0' Bits? Welche Faktoren beeinflussen die Data Retention? Welchen Zusammenhang stellt diese Gleichung dar? Wie ist die Data Retention Duration des MSP430 bei 50 C spezifiziert? 18
Data Retention - Baking Quelle [3] 19
Data Retention - Baking Quelle [3] Lässt sich die Data Retention durch Software verbessern? 20
Flash - Endurance Wodurch wird die Endurance limitiert? Wie ist die Endurance des MSP430 spezifiziert? Wie wird die Endurance durch die Umgebungstemperatur beeinflusst? 21
MSP430 Flash Schreibgeschwindigkeit MSP430 Flash Timing Generator Programmierung eines Bytes dauert 35 Takte Wahlweise 257 khz oder 476 khz 35 / 476 khz = 73,5 μs Das macht für ein Segment: 73,5 μs * 512 = 37,6 ms 22
Inhalt der heutigen Übung Mikrocontroller Architektur ROM (Flash Speicher) RAM (CMOS Speicher) Grundlagen für AOStuBS 23
SRAM (4KiB bei unserem MSP430) 2 CMOS Inverter Volatile (Theoretisch) kein Ruhestrom 1 (0) 1 0 (1) 1 1 (0) +2 Select Transistoren = 6 Transistoren 6facher Platzbedarf gegenüber Flash - Teuer! Lesen/Schreiben in einem CPU Takt 83ns bei 12MHz 24
Zusammenfassung (Speicher) Programm- und Datenspeicher unterscheiden sich bei Mikrocontrollern ROM (Flash) vs. RAM (SRAM) Flash Segment-basiertes Löschen - Langsames Schreiben (37,6ms) - Hoher Energieverbrauch beim Schreiben (12V) Data Retention - Temperaturabhängig Endurance ( Abnutzung ) CMOS SRAM Schnell, energiesparsam (vgl. Flash Schreiben), aber teuer 25
Literatur (Speicher) [1] Peter Forstner: MSP430 Flash Memory Characteristics, Application Report, April 2008 [2] Intel/ICE: Memory 1996 [3] Joe E. Brewer, Manzur Gill: Nonvolatile memory technologies with emphasis on Flash: a comprehensive guide to understanding and using NVM devices, WileyIEEE, 2008 26
Inhalt der heutigen Übung Mikrocontroller Architektur ROM (Flash Speicher) RAM (CMOS Speicher) Grundlagen für AOStuBS 27