microcontroller dipl.-inf. swen habenberger 28.01.2009
Post on 06-Apr-2015
115 Views
Preview:
TRANSCRIPT
Microcontroller
Dipl.-Inf. Swen Habenberger
28.01.2009
Microcontroller 228.1.2009
Aufbau Microcontroller
Digital logische Ebene Mikroarchitekturebene Instruktions Set Architekture (ISA) Assemblerebene
Microcontroller 328.1.2009
Struktur
Microcontroller 428.1.2009
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
Microcontroller 528.1.2009
Digitale logsiche Ebene
Komperatoren vergleichen Eingangssignale miteinander
Programmierbare Logische Einheiten (PGA) können je nach Anwendung individuell angepasst werden
Microcontroller 628.1.2009
Mikroarchitekturebene
Die Mikroarchitekturebene hat die Aufgabe die ISA-Schicht zu implementieren
Ziel: Schnelle Ausführung der Befehle des ISA
Muss nicht immer vorhanden seinBei RISC nicht zwangsläufig erforderlichBei CISC erforderlich
Microcontroller 728.1.2009
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
Microcontroller 828.1.2009
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
Microcontroller 928.1.2009
Fragen?
Microcontroller 1028.1.2009
Speicheraufbau
Einteilung inRegisterROMRAM
Realisierung mit Latches und Flip-Flop Schaltungen (Einfache 1bit-Speicher)
Microcontroller 1128.1.2009
Flip-Flops
Microcontroller 1228.1.2009
RS-Flip-Flop Taktgesteuert
Microcontroller 1328.1.2009
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
Microcontroller 1428.1.2009
Register
Allgemeine RegisterDienen zur Speicherung von
Zwischenergebnissen Spezielle Register
Programmpointer, Stackpointer, IO-Register, Statusregister
Meist nur lesbar
Microcontroller 1528.1.2009
RAM
Eine Unterteilung des RAM kann zunächst in Statischer RAM (SRAM)Dynamischer RAM (DRAM)
erfolgen
Microcontroller 1628.1.2009
SRAM
Statischer RAM wird durch FLIP-FLOPs realisiert. Flip-Flops speichern den Wert solange Strom
fließt. Schnelle Zugriffszeiten im
Nanosekundenbereich
Microcontroller 1728.1.2009
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
Microcontroller 1828.1.2009
Ram als Bitmatrix
Microcontroller 1928.1.2009
Gleicher Speicher / Unterschiedliche Anordnung
Microcontroller 2028.1.2009
4 Mbit Speicherchip
Microcontroller 2128.1.2009
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
Microcontroller 2228.1.2009
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
Microcontroller 2328.1.2009
Unterteilung DRAM
Fast Page Mode - DRAM EDO-RAM SDRAM DDRAM
Microcontroller 2428.1.2009
Fast Page Mode - DRAM
Es ist sehr wahrscheinlich ist, dass das nächste Bit auch gelesen / gesetzt wird.
Daher bleibt das RAS-Signal gesetztDiese Zeile nennt man Page
Das CAS-Signal wird jedesmal deaktiviert und wieder gesetzt
Zugriffszeit: ca. 40ns
Microcontroller 2528.1.2009
EDO-RAM
Weiterentwicklung von EDO-RAM Der Ausgangswert bleibt erhalten und wird
erst bei einem neuen CAS zurückgesetzt Zugriffszeit 25 ns
Microcontroller 2628.1.2009
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
Microcontroller 2728.1.2009
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
Microcontroller 2828.1.2009
Fragen?
Microcontroller 2928.1.2009
SDRAM am Microcontroller
Microcontroller 3028.1.2009
Mehrere Speicherbänke
Microcontroller 3128.1.2009
Schematischer Aufbau der Bänke
Microcontroller 3228.1.2009
Adressierung von Speicher
Microcontroller 3328.1.2009
Eigenschaften SDRAM-Controller
Pro Bank kann eine unterschiedliche Reihe aktiv seinD.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
Microcontroller 3428.1.2009
Fragen?
Microcontroller 3528.1.2009
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)
Microcontroller 3628.1.2009
Umsetzung von Virtuellem Speicher
Microcontroller 3728.1.2009
MemoryMapping
Microcontroller 3828.1.2009
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 SegmentePage
Microcontroller 3928.1.2009
Paging
Der logische Adressraum ist in gleichgroße Seiten eingeteilt.
Phsikalische Adresse 0 entspricht hier Logisch 4096
Microcontroller 4028.1.2009
Page Miss / Fault
Bei Zugriff auf Speicherstelle 8192 würde ein Page Miss ausgelöst werden Inhalt des Arbeitsspeichers wird auf „Platte“
geschriebenDaten von 8192 bis 12887 werden auf „Platte“
gesucht und geladen8192 ist jetzt Adresse 0Programm wird fortgesetzt
Microcontroller 4128.1.2009
Translocation Lookaside Buffer
Der TLB kann mehrere zuletzt benutzte Seiten im Speicher halten um Zugriffszeiten zu erniderigen
Ersetzungstrategien:FIFO: First in First OutLRU: Least Recently Used
Microcontroller 4228.1.2009
Segmentierung
Microcontroller 4328.1.2009
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
Microcontroller 4428.1.2009
Beispiel Ersetzung von Segmenten
Microcontroller 4528.1.2009
Fragen?
Microcontroller 4628.1.2009
Pipelines
Durch Einsatz von Pipelines wird Öl transportiertAber diese Pipeline hat nichts mit Computern
zu tun
Unsere Pipeline befördert schnell Daten
Microcontroller 4728.1.2009
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
Microcontroller 4828.1.2009
Pipeline vs. Keine Pipeline
Microcontroller 4928.1.2009
Pipelinestruktur (5-Stufen)
Microcontroller 5028.1.2009
Parallele Pipeline
Microcontroller 5128.1.2009
Doppelte Ausführungseinheit
Microcontroller 5228.1.2009
7-Stufige Pipelines
Microcontroller 5328.1.2009
Sprungvorhersage /Branch Prediction Oft werden Anweisungen in einer Schleife
ausgeführtDie Anweisung bleibt die gleiche, nur die
Daten ändern sichErst bei der Abbruchbedingung wird die
nächste Anweisung geladen Sprungvorhersage ist wichtig
Microcontroller 5428.1.2009
2-Bit Prediction
Microcontroller 5528.1.2009
Fragen?
top related