Dipl.-Inf. Swen Habenberger 28.01.2009 Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009
Aufbau Microcontroller Digital logische Ebene Mikroarchitekturebene Instruktions Set Architekture (ISA) Assemblerebene 28.1.2009 Microcontroller
Struktur 28.1.2009 Microcontroller
Digitale logische Ebene NAND- und NOR-Gates bilden die kleinsten Einheiten in der Digitaltechnik Multiplexer bilden aus mehreren Dateneingangs- und Steuersignalen ein Datenausgangssignal Dekodierer: Bildet aus z.B. 3 Eingangssignalen bis zu 8 Ausgangssignale 28.1.2009 Microcontroller
Digitale logsiche Ebene Komperatoren vergleichen Eingangssignale miteinander Programmierbare Logische Einheiten (PGA) können je nach Anwendung individuell angepasst werden 28.1.2009 Microcontroller
Mikroarchitekturebene Die Mikroarchitekturebene hat die Aufgabe die ISA-Schicht zu implementieren Ziel: Schnelle Ausführung der Befehle des ISA Muss nicht immer vorhanden sein Bei RISC nicht zwangsläufig erforderlich Bei CISC erforderlich 28.1.2009 Microcontroller
ISA Wird häufig mit der Assemblerebene gleich gesetzt ISA ist die Schnittstelle zwischen Hard- und Software Maschinenbefehle werden direkt interpretiert Es wird festgelegt, welche Maschinenbefehle (Maschinencode) in der Hardware direkt ansprechbar sind 28.1.2009 Microcontroller
Assemblerebene Aufbauend auf der ISA wird eine Programmiersprache entwickelt mit der sich ein Microcontroller programmieren lässt Diese Programmiersprache erzeugt mit Hilfe eines Compilers aus Assemblercode den Maschinencode 28.1.2009 Microcontroller
Fragen? 28.1.2009 Microcontroller
Speicheraufbau Einteilung in Register ROM RAM Realisierung mit Latches und Flip-Flop Schaltungen (Einfache 1bit-Speicher) 28.1.2009 Microcontroller
Flip-Flops 28.1.2009 Microcontroller
RS-Flip-Flop Taktgesteuert 28.1.2009 Microcontroller
Register Sind als Flip-Flop-Schaltungen realisiert Sitzen direkt an der CPU Können direkt beschrieben werden ohne Einsatz eines Buses Unterscheidung in Sichtbare: Stehen dem Programmierer zur Verfügung Unsichtbare: Nur interne Verwendung der CPU 28.1.2009 Microcontroller
Register Allgemeine Register Spezielle Register Dienen zur Speicherung von Zwischenergebnissen Spezielle Register Programmpointer, Stackpointer, IO-Register, Statusregister Meist nur lesbar 28.1.2009 Microcontroller
RAM Eine Unterteilung des RAM kann zunächst in erfolgen Statischer RAM (SRAM) Dynamischer RAM (DRAM) erfolgen 28.1.2009 Microcontroller
SRAM Statischer RAM wird durch FLIP-FLOPs realisiert. Flip-Flops speichern den Wert solange Strom fließt. Schnelle Zugriffszeiten im Nanosekundenbereich 28.1.2009 Microcontroller
Dynamisches Ram Jede Zelle (Bit) wird durch einen Transistor und Kondensator angesprochen Kriechströme entladen Kondensator Regelmässiges Refresh (alle paar Millisekunden) erforderlich Komplexere Ansteuerung als bei statischem RAM erforderlich Langsamerer Zugriff (mehrere Nanosekunden) Größerer Speicherumfang wie bei SRAM 28.1.2009 Microcontroller
Ram als Bitmatrix 28.1.2009 Microcontroller
Gleicher Speicher / Unterschiedliche Anordnung 28.1.2009 Microcontroller
4 Mbit Speicherchip 28.1.2009 Microcontroller
Signale beim DRAM Chip Select (CS): Wählt den entsprechenden Speicherchip aus Write Enable (WE): Ermöglicht das Schreiben eines Bits Output Enable (OE): Ermöglicht das Lesen eines Bits 28.1.2009 Microcontroller
Auslesen eines Bits Zunächst liegt die Reihen-Adresse an und Row Adress Strobe (RAS) ist gesetzt Dann wird die Spalten-Adresse gesetzt und das Column Adress Strobe (CAS) ist gesetzt RAS und CAS Signal wird zurückgesetzt Dies bedeutet man braucht zwei Taktzyklen zum auslesen eines Bits 28.1.2009 Microcontroller
Unterteilung DRAM Fast Page Mode - DRAM EDO-RAM SDRAM DDRAM 28.1.2009 Microcontroller
Fast Page Mode - DRAM Es ist sehr wahrscheinlich ist, dass das nächste Bit auch gelesen / gesetzt wird. Daher bleibt das RAS-Signal gesetzt Diese Zeile nennt man Page Das CAS-Signal wird jedesmal deaktiviert und wieder gesetzt Zugriffszeit: ca. 40ns 28.1.2009 Microcontroller
EDO-RAM Weiterentwicklung von EDO-RAM Der Ausgangswert bleibt erhalten und wird erst bei einem neuen CAS zurückgesetzt Zugriffszeit 25 ns 28.1.2009 Microcontroller
SDRAM Im Gegensatz zu EDO und FPM ist SDRAM synchron, d.h. Adress- und Datenleitungen sind durch einen gemeinsamen Taktgeber gesteuert Zugriffszeiten: 7-10 ns 28.1.2009 Microcontroller
DDR-SDRAM Double-Data-Rate Synchronous Dynamic Random Access Memory: Es wird nicht nur bei einem steigenden Signal gelesen/geschrieben sondern auch bei einem fallenden Signal 28.1.2009 Microcontroller
Fragen? 28.1.2009 Microcontroller
SDRAM am Microcontroller 28.1.2009 Microcontroller
Mehrere Speicherbänke 28.1.2009 Microcontroller
Schematischer Aufbau der Bänke 28.1.2009 Microcontroller
Adressierung von Speicher 28.1.2009 Microcontroller
Eigenschaften SDRAM-Controller Pro Bank kann eine unterschiedliche Reihe aktiv sein D.h. Daten und Programmcode sollten auf verschiedenen Bänken sein Burst-Mode wird in der Regel unterstützt, D.h. es wird ständig automatisch das nächste Bit gesendet 28.1.2009 Microcontroller
Fragen? 28.1.2009 Microcontroller
Virtueller Speicher 32 Bit-Microcontroller haben in der Regel auch eine Memory-Management-Einheit (MMU) Die MMU ermöglicht den Einsatz von virtuellem Speicher Es ist möglich mehr Speicher zu nutzen als physikalisch vorhanden ist Z.B. bei 32 Bit sind 4 GByte adressierbar Mehrere Prozesse können gleichzeitig laufen durch einen unterschiedlichen Adressbereich (Multitasking) 28.1.2009 Microcontroller
Umsetzung von Virtuellem Speicher 28.1.2009 Microcontroller
MemoryMapping 28.1.2009 Microcontroller
Memory Management Unit Die Memory Managment Unit besteht aus einem X-Bit Eingaberegister und einem Y-Bit Ausgaberegister und regelt das Abbilden von virtuellen Speicheradressen in den pyhsikalischen Adressraum Unterscheidung nach Funktion in Segmente Page 28.1.2009 Microcontroller
Paging Der logische Adressraum ist in gleichgroße Seiten eingeteilt. Phsikalische Adresse 0 entspricht hier Logisch 4096 28.1.2009 Microcontroller
Page Miss / Fault Bei Zugriff auf Speicherstelle 8192 würde ein Page Miss ausgelöst werden Inhalt des Arbeitsspeichers wird auf „Platte“ geschrieben Daten von 8192 bis 12887 werden auf „Platte“ gesucht und geladen 8192 ist jetzt Adresse 0 Programm wird fortgesetzt 28.1.2009 Microcontroller
Translocation Lookaside Buffer Der TLB kann mehrere zuletzt benutzte Seiten im Speicher halten um Zugriffszeiten zu erniderigen Ersetzungstrategien: FIFO: First in First Out LRU: Least Recently Used 28.1.2009 Microcontroller
Segmentierung 28.1.2009 Microcontroller
Segmentierung Bei der Segmentierung werden mehrere Adressräume gebildet. Diese Adressräume können unterschiedlich groß sein Möglicherweise muss auf einzelne Segmente wieder Paging angewendet werden Ersetzungsstrategie: Best Fit First Fit 28.1.2009 Microcontroller
Beispiel Ersetzung von Segmenten 28.1.2009 Microcontroller
Fragen? 28.1.2009 Microcontroller
Pipelines Durch Einsatz von Pipelines wird Öl transportiert Aber diese Pipeline hat nichts mit Computern zu tun Unsere Pipeline befördert schnell Daten 28.1.2009 Microcontroller
Pipeline Wenn die Daten von einander unabhängig sind, ist eine Pipeline hervorragend. Bei Datenabhängigkeit muss der Programmierer (Oder Compiler) aufpassen, dass die Daten sinnvoll in die Pipeline gelangen 28.1.2009 Microcontroller
Pipeline vs. Keine Pipeline 28.1.2009 Microcontroller
Pipelinestruktur (5-Stufen) 28.1.2009 Microcontroller
Parallele Pipeline 28.1.2009 Microcontroller
Doppelte Ausführungseinheit 28.1.2009 Microcontroller
7-Stufige Pipelines 28.1.2009 Microcontroller
Sprungvorhersage / Branch Prediction Oft werden Anweisungen in einer Schleife ausgeführt Die Anweisung bleibt die gleiche, nur die Daten ändern sich Erst bei der Abbruchbedingung wird die nächste Anweisung geladen Sprungvorhersage ist wichtig 28.1.2009 Microcontroller
2-Bit Prediction 28.1.2009 Microcontroller
Fragen? 28.1.2009 Microcontroller