33
Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Embed Size (px)

Citation preview

Page 1: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Anwendung von Microcontollern

Dipl.-Inf Swen Habenberger

19.01.2009

Page 2: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Unterlagen

Die Unterlagen zur Vorlesung kann man unter http://www.habenberger-soft.de herunterladen

Page 3: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Aufbau Vorlesungstag

Erster Teil: Theorie zum AP7 Zweiter Teil: Programmierung in C des

AP7

Page 4: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Erster Teil: Grundlagen AP7

Was bedeutet die Werbeaussage:210 DMIPS Durchsatz bei 150 MHz

150 MHz = Taktfrequenz Prozessor DMIPS = Dhrystone MIPS

MIPS = Millionen Instruktionen pro Sekunde

Page 5: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Benchmark

Standardisierter Leistungsvergleich von ProzessorenMIP - Meaningless Indicator of Performance Werbetechnischer Blödsinn

Meist Vergleich mit einer Referenzmaschine

Die relevante Leistung hängt von der tatsächlichen Anwendung ab

Page 6: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Dhrystone Test

Anfang der 80er Jahre entwickelt Referenzmaschine ist VAX11/780

1 VAXMIP = 0,5 MIPSDhrystone Leistung: 1757 pro Sekunde

Wieviel MIPS sind 210 DMIPS?210 * 0,5 = 105 MIPS210 * 1757 * 0,5 = 184485 Dhrystones

Page 7: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Dhrystone Test

Test wurde zunächst in Fortran und Cobol entwickelt

Später dann nach Ada portiert Heute ist C der Standard Bestandteile:

Einfache Integer Operationen Stringoperationen Logische Entscheidungen Speicherzugriffe

Page 8: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Whetstone Test

Hauptsächlich Gleitkomma-Arithmetik Zusätzlich Zugriffe auf Arrays Einfache Integer-Arithmetik

Zunächst in Algol, später C und Fortran

Page 9: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Linpack

TOP500.org listet die schnellsten bekannten Rechner der Welt

Vergleich anhand von MFLOPsMFLOP: Million Floating Point Operations per

Second

Page 10: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Benchmark

Optimierte Compiler für das jeweilige System verbessern die PerformanceFast jeder Hersteller bietet optimierte

Varianten für seinen Prozessor an Schlechte Programmierung verlangsamt

die PerformanceDa ist Programmiererfahrung und Kenntnisse

des Systems gefragt

Page 11: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Performance

Prozessor besitzt keine Gleitkommaeinheit bzw. numerischen CoProzessorJede Gleitkommaoperation muss von der

CPU ausgeführt werdenMathematische Berechnung mit

Gleitkommazahlen führen zu einem dramatischen Geschwindigkeitseinbruch

Page 12: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

32bit RISC

Was bedeutet die Werbeaussage32-bit load/store RISC architecture

RISC: Reduced Instruction Set Computing 32-Bit: ALU kann 4 Bytes gleichzeitig

verarbeiten

Page 13: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

RISC vs. CISC

Complex Instruction Set Computer Die meisten moderen Desktop CPUs sind CISC

Prozessoren mit RISC-Coprozessoren und Zerlegung von CISC-Befehlen in RISC-Befehle (Pentium)

Reduced Instruction Set Computer Die meisten embedded-Systeme sind RISC-

Prozessoren Problemstellung zum Architekturdesign:

Welche Maschinenbefehle sollen implementiert sein? Wie viele Register stehen zur Verfügung

Page 14: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Überlegungen Maschinencode

Jeder Befehl braucht einen eindeutigen Operationcode (Opcode)Einfache Prozessoren besitzen meist schon

50-60 Befehle (6 Bit)15 Register entsprechen 4 Bits

Zugrunde liegende Architektur1, 2 oder 3 Adressmaschinen

Page 15: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Adressierungsart

1 –AdressmaschineDer Akkumulator wird immer verwendetMov R1 (Lädt Register 1 in den Akku)Add R2 (Addiert Register 2 zum Wert des

Akku)Sto R1 (Speichert das Ergebnis in Register 1)

Page 16: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Adressierungsart

2 –AdressmaschineMov R1, Akku (Lädt Register 1 in den Akku)Add R2, Akku (Addiert Register 2 zum Wert

des Akku)Sto R1, Akku (Speichert das Ergebnis in

Register 1)Add R2, R1 (R1=R1+R2) oder R2 = R1 + R2

Page 17: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Adressierungsart

3 –AdressmaschineAdd R0, R1, R2 R0 = R1 + R2 oder R0 + R1 = R2

Page 18: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

32 Bit

Byte = 8 Bit Upper Halfword = 16 Bit (2 höchtwertigen Bytes) Lower Halfword = 16 Bit (2 niederwertigsten

Bytes) Word = 32 Bit

Unterscheidung Big-Endian und Little-Endian

Page 19: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Operationsmodus

Direkt / Unmittelbar Register Indirekt Indiziert

Die Anzahl der Bits und der Operationsmodus erfordern weitere bits

Page 20: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Befehlssatz

Opcode Operationsmodus Operanden

Page 21: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

CISC

Unterschiedliche OpcodelängeWichtige Befehle haben Länge von 2 ByteUnwichtige Befehle haben Länge 3 Byte

Extrabefehl zum erkennen von Befehl mit 3 Byte notwendig

Dekodierprozess langwierigKeine 3-Register Architekturen

Register sind teuer

Page 22: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Microcode

Hardwareinterpreter zwischen Dekoder und Ausführeinheit

Ein Befehl wird ggf. in kleine Einzelbefehle zerlegtDekrementiere Register und Springe falls

Ergbnis 0 istErfordert 1-10 Takte je nach komplexität des

Befehls

Page 23: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Nutzung von Registern

Manche Befehle ermöglichen die implizite Nutzung von RegisternEinsparung von Bits beim Befehlssatz in dem

bspw. Bei manchen Befehlen mit dem Akku gerechnet wird

Page 24: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

RISC

Nur einfache Befehle Gleichlange Opcode für alle Befehle

Ermöglicht den Einsatz von Pipelines, da Bytes 2-4 immer mit Operanden versehen sind

Mehr Register Kein Hardwareinterpreter erforderlich

Page 25: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Architektur AP7

Vom Ansatz RISC-Architektur Hat aber auch CISC-Befehle

SIMD-BefehleBefehle für CoProzessor

Je mehr Funktionalität auf dem Chip integriert ist, desto eher sind auch Ansätze von CISC zu erkennen

Page 26: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Fragen?

Page 27: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009
Page 28: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Von-Neumann Architektur

Page 29: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Harvard-Architektur

Page 30: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Harvard Architektur

Befehlsspeicher ist physisch vom Datenspeicher getrennt

Vorteil: Daten können parallel zu den Befehlen geschrieben

und gelesen werden Keine Überschreibung des Programmspeichers durch

Daten Nachteil: Ungenutzter Programmspeicher kann

nicht genutzt werden

Page 31: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Vorteile / Nachteile

Befehlswortbreite kann unabhängig von der Datenwortbreite gewählt werden

Unterschiedliche Adressbreiche für Befehle und Daten erfordern spezielle Compiler und Programmieraufwand

Page 32: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

Orthogonaler Instruction Set

Jeder Befehl kann jede Adressierungsart des Prozessors verwenden

Fast orthogonal:Die meisten Befehle können alle

Adressierungsarten benutzen

Page 33: Anwendung von Microcontollern Dipl.-Inf Swen Habenberger 19.01.2009

AP7

Hoher Datendurchsatz dank 1 Zyklus-Zugriff auf SRAM und FLASH