55
Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Embed Size (px)

Citation preview

Page 1: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller

Dipl.-Inf. Swen Habenberger

28.01.2009

Page 2: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 228.1.2009

Aufbau Microcontroller

Digital logische Ebene Mikroarchitekturebene Instruktions Set Architekture (ISA) Assemblerebene

Page 3: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 328.1.2009

Struktur

Page 4: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 5: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 528.1.2009

Digitale logsiche Ebene

Komperatoren vergleichen Eingangssignale miteinander

Programmierbare Logische Einheiten (PGA) können je nach Anwendung individuell angepasst werden

Page 6: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 7: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 8: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 9: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 928.1.2009

Fragen?

Page 10: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 1028.1.2009

Speicheraufbau

Einteilung inRegisterROMRAM

Realisierung mit Latches und Flip-Flop Schaltungen (Einfache 1bit-Speicher)

Page 11: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 1128.1.2009

Flip-Flops

Page 12: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 1228.1.2009

RS-Flip-Flop Taktgesteuert

Page 13: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 14: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 1428.1.2009

Register

Allgemeine RegisterDienen zur Speicherung von

Zwischenergebnissen Spezielle Register

Programmpointer, Stackpointer, IO-Register, Statusregister

Meist nur lesbar

Page 15: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 1528.1.2009

RAM

Eine Unterteilung des RAM kann zunächst in Statischer RAM (SRAM)Dynamischer RAM (DRAM)

erfolgen

Page 16: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 17: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 18: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 1828.1.2009

Ram als Bitmatrix

Page 19: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 1928.1.2009

Gleicher Speicher / Unterschiedliche Anordnung

Page 20: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 2028.1.2009

4 Mbit Speicherchip

Page 21: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 22: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 23: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 2328.1.2009

Unterteilung DRAM

Fast Page Mode - DRAM EDO-RAM SDRAM DDRAM

Page 24: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 25: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 26: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 27: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 28: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 2828.1.2009

Fragen?

Page 29: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 2928.1.2009

SDRAM am Microcontroller

Page 30: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 3028.1.2009

Mehrere Speicherbänke

Page 31: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 3128.1.2009

Schematischer Aufbau der Bänke

Page 32: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 3228.1.2009

Adressierung von Speicher

Page 33: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 34: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 3428.1.2009

Fragen?

Page 35: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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)

Page 36: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 3628.1.2009

Umsetzung von Virtuellem Speicher

Page 37: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 3728.1.2009

MemoryMapping

Page 38: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 39: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 3928.1.2009

Paging

Der logische Adressraum ist in gleichgroße Seiten eingeteilt.

Phsikalische Adresse 0 entspricht hier Logisch 4096

Page 40: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 41: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 42: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 4228.1.2009

Segmentierung

Page 43: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 44: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 4428.1.2009

Beispiel Ersetzung von Segmenten

Page 45: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 4528.1.2009

Fragen?

Page 46: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 47: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 48: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 4828.1.2009

Pipeline vs. Keine Pipeline

Page 49: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 4928.1.2009

Pipelinestruktur (5-Stufen)

Page 50: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 5028.1.2009

Parallele Pipeline

Page 51: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 5128.1.2009

Doppelte Ausführungseinheit

Page 52: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 5228.1.2009

7-Stufige Pipelines

Page 53: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

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

Page 54: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 5428.1.2009

2-Bit Prediction

Page 55: Microcontroller Dipl.-Inf. Swen Habenberger 28.01.2009

Microcontroller 5528.1.2009

Fragen?