MIKROPROZESSOR PROGRAMMIERUNG LV

Werbung
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
MIKROPROZESSOR
PROGRAMMIERUNG
2. VORLESUNG
BIT
LV-Nr. 439.026
SS2007
1
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
LABORÜBUNG
Gruppeneinteilung Mikroprozessor-Programmierung LU
Anmeldung zur Laborübung im TUGOnline erforderlich!
Für Terminwechsel bitte ein Email an
[email protected]
senden.
Eintägige Übung: Vormittag 8:30 bis 12:00 Uhr, Nachmittag 13:30 bis 18:00 Uhr
Ansteuerung eines Schrittmotors:
2
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
PROZESSOR KLASSIFIKATION
MIKROPROZESSOR MIKROCONTROLLER
4/8/16/32/64BIT
4/8/16/32/64BIT
DSP
Digitale
Signalverarbeitung
ASIC / FPGA
-Programmierbare Logik
-Kundenspezifische Integrierte
Schaltung
3 Phasen bei der Mikroprozessorentwicklung
HALBLEITERENTWICKLUNG
u. FORTSCHRITT
TECHNOLOGIE
ARCHITEKTUR
3
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Begriffsdefinitionen:
Der Kern eines Computers ist die zentrale Verarbeitungseinheit (Central Processing
Unit, CPU). Diese besteht im wesentlichen aus den Komponenten Steuerwerk,
Rechenwerk, mehreren Registern und einem Verbindungssystem zur Ankopplung von
Speicher- und Peripheriekomponenten
Unter einem Computerprogramm versteht man eine Folge von Anweisungen oder
Befehlen, die direkt oder indirekt im Computer benutzt werden, um gezielt ein
bestimmtes Resultat herbeizuführen
Unter einem Algorithmus versteht man allgemein eine genau definierte
Handlungsvorschrift zur Lösung eines Problems.
Ein Mikroprozessor (Microprocessor) ist die auf einem Mikrochip realisierte CPU eines
Computersystems
4
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Begriffsdefinitionen:
Die Mikroprozessortechnik (Microprocessor Technology) befasst sich mit der
Architektur, der Entwicklung, der Implementierung, dem Bau, der Programmierung und
dem Einsatz von Mikroprozessoren
Rechner bzw. Computer, bei denen Mikroprozessoren zum Einsatz kommen, werden als
Mikrorechner bzw. Mikrocomputer bezeichnet.
Mikrocontroller (Microcontroller) sind vollständige Mikrocomputersysteme auf einem
Chip. Neben der CPU sind Speicher und Peripheriekomponenten auf dem Chip
integriert.
Digitale Signalprozessoren (DSP… Digital Signal Processor) sind Spezialprozessoren
für die sehr schnelle Verarbeitung von mathematischen Befehlen zur Bearbeitung
komplexer Algorithmen der analogen/digitalen Signalverarbeitung
5
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Begriffsdefinitionen:
Die Abkürzung ASIC steht für:
Kundenspezifische Integrierte Schaltung (Application Specific Integrated Circuit (ASIC))
Ein FPGA (Field Programmable Gate Array) ist ein frei programmierbarer
Logikschaltkreis
Vorteile FPGA gegenüber ASICs:
•geringe Entwicklungskosten
•sehr kurze Implementierungszeiten
•einfach korrigier- und erweiterbar (rekonfigurierbar) → Flexibilität
Nachteile FPGA gegenüber ASICs:
•ab mittleren Stückzahlen höherer Stückpreis
•geringere Taktraten
•geringere Logikdichte (ca. 10facher Flächenbedarf gegenüber ASIC gleicher
Technologie)
•höherer Energiebedarf
Unterschiede zu Prozessoren
FPGAs/ASICs bieten die Möglichkeit Informationen massiv parallel zu verarbeiten.
Dadurch benötigen sie nicht so hohe Taktfrequenzen wie Prozessoren, die
Informationen sequentiell verarbeiten. In einem FPGA können zig Additionen und
Multiplikationen zur gleichen Zeit ausgeführt werden, während selbst moderne
Prozessoren nur einige wenige Operanden parallel verarbeiten können.
6
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Im Vergleich …
Mikroprozessor µP
LEISTUNG
SPEZIALISIERUNG
Mikrocontroller µC
Digitaler- Signal Prozessor
FLEXIBILITÄT
Programmierbare Hardware
FPGA
ASIC
7
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
PRINZIPIELLER AUFBAU EINER CPU (Central Processing Unit):
BESTANDTEILE DER CPU:
Die CPU ist das "Gehirn" des
Rechners. Sie hat die Aufgabe, die
Daten, die im Hauptspeicher
liegen, zu verarbeiten, d.h. sie zu
lesen, mit ihrer Hilfe Berechnungen
durchzuführen
und
die
Berechnungsergebnisse in den
Hauptspeicher zu schreiben
• Recheneinheit (ALU) für die eigentliche Datenverarbeitung
• Steuerwerk (CU) für die Kontrolle des Rechenteils und Aktivitäten
der übrigen Rechnerbestandteile
• Register dienen zur Ablage von Daten
8
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
ARITHMETISCHE-LOGIK EINHEIT:
1. OPERAND
2. OPERAND
ALU
FUNKTIONSAUSWAHL
VOM STEUERWERK
FLAGS
ERGEBNIS
Die arithmetisch-logische Einheit (Arithmetic-Logical Unit –
ALU) übernimmt die eigentliche Datenverarbeitung. Sie kann
meinst nur einfache Elementaroperationen mit maximal zwei
beteiligten Operanden ausführen; komplexere Operationen
sind aus einer Folge einfacher Aktionen zusammenzusetzen
9
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Aufgaben der Arithmetischen-Logik-Einheit:
Arithmetische Operationen (Addition, Subtraktion,
Vergleich)
Logische Verknüpfungen (AND, OR, XOR)
Verschiebungen um eine oder mehrere Bitstellen nach
links bzw. rechts (rotieren)
Anmerkung: Die maximale Größe der ALUOperanden definiert die Einstufung des Prozessors als
4-, 8-, 16-, 32-, 64 Bit- Prozessor
10
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Register: Darunter versteht man CPU-interne Speicherstellen, die im
Gegensatz zum (externen) Speicher besonders schnell ansprechbar ist.
Universalregister (General Purpose Register)
–
Für die direkte Datenablage – Operanden für arithmetische und
logische Operationen, Ergebnisse z.B. Akkumulator
Adresszeigerregister (Pointer bzw. Index Register)
–
Für Zugriffe auf Speicherstellen bzw. periphere Komponenten
und für eine flexible Berechnung von Operandenadressen
Spezialregister (Special Function Register)
–
Befehlszähler (Programm Counter PC oder Instruction Pointer)
Er enthält die Speicheradresse der als nächstes einzulesenden
Befehlsinformation
Flagregister (Flags)
–
Die Flags nehmen binäre Informationen über Sonderfälle bei der
letzten ALUALU-Operation auf und stellen diese zur weiteren
Auswertung bereit.
Stapelzeiger (Stackpointer SP)
–
Er adressiert den Ort, an dem Rückkehrinformationen bei
Prozeduraufrufen bzw. temporären Daten im Speicher abgelegt
wurden.
z.B. Register eines 80386 Prozessors
Control Register
–
Sie dienen der Konfiguration der Arbeitsweise des Prozessors,
z.B. der Einstellung von Testmodi, der Funktion eines
Coprozessors, der Behandlung von Breakpoints oder der
Arbeitsweise einer Speicherverwaltung
11
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
FLAGS sind binäre Informationen, die besondere Ergebniszustände
kennzeichnen. Sie werden im Flagregister für eine nachfolgende
Auswertung bereitgestellt. Außerdem werden sie dem Steuerwerk zur
Behandlung eventueller Sonderfälle, z.B. bei Division durch 0,
übergeben.
Wichtige FLAGS:
Zero- Flag
–
Das Ergebnis der Verarbeitung ist genau 0
Carry- Flag
–
Bei der Verarbeitung ist ein Übertrag aufgetreten,
d.h. das Ergebnis lässt sich nicht mit der
vorhandenen Verarbeitungsbreite darstellen
Overflow- Flag
–
Zahlenbereichsüberschreitung
Parity- Flag
–
gerade/ungerade Parität des Akkumulatorregister
z.B. Flagregister eines 80386 Prozessors
12
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Das Steuerwerk (Control Unit) organisiert und kontrolliert die
gesamte Arbeit der CPU als auch des Rechnersystems als Ganzes
Es stellt ein durch einen externen Takt gesteuertes Schaltwerk dar, welches entsprechend den auszuführenden Befehlen
konkrete Folgen elementarer Transport- und Verarbeitungsaktionen auslöst. Die konkrete Funktion und der Ablauf eines
Befehls sind konstant und reproduzierbar und werden bei der Herstellung des Prozessors fest vorgegeben.
Aufgaben des Steuerwerks:
Steuerung prozessinterner Abläufe, d.h. die Organisation von Datentransporten
innerhalb des Rechenwerkes zwischen Registern, ALU und Datenbus sowie die
Auslösung und Auswertung von Operationen der ALU
Bereitstellung von Adressinformationen für Befehls- und Datentransporte über
das Bussystem
Steuerung externer Abläufe bei der Kommunikation des Prozessors mit dem
Speicher bzw. mit Eingabe-/Ausgabe-Einheiten
Wesentliche Bestandteile des Steuerwerks sind der Programm- Counter PC, der die Adresse des nächsten
auszuführenden Befehls bereitstellt, der Befehlsdecoder, der die Informationen des binären Maschinenbefehls zerlegt und
analysiert, und die Ablaufsteuerung, die eine passende Sequenz von Teilschritten zur Befehlsbearbeitung auslöst.
13
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
FPU (Floating Point Unit)
–
Die Gleitkomma-Einheit ist im Fall der x86-Architektur fast schon ein eigener Prozessor mit
Rechen- und Steuerwerk und eigenen Befehlen. Eine CPU mit FPU kann Operationen auf
Gleitkomma Real-Zahlen wesentlich schneller ausführen als Prozessoren ohne FPU.
Während es zu den frühen Prozessoren der x86-Architektur (8086 bis i486SX) einen
eigenen, nachrüstbaren Coprozessor für Gleitkomma-Operationen gab, ist diese Einheit seit
dem Intel i486DX in die CPU integriert. Auch die x86-Prozessoren anderer Hersteller haben
heute alle eine integrierte FPU.
MMU (Memory Management Unit)
–
Eine Komponente, die die Verwaltung des Hauptspeicherzugriffs übernimmt.
Cache -Controller
–
Die Steuereinheit für den Cache-Zugriff und der eigentliche Cache-Speicher befindet sich im
allgemeinen ebenfalls auf der CPU.
Cache
–
Der Cache ist ein spezieller Puffer-Speicher, der zwischen dem Arbeitsspeicher und dem
Prozessor liegt. Damit der Prozessor nicht jeden Programm-Befehl aus dem langsamen
Arbeitsspeicher holen muss, wird gleich ein ganzer Befehls- oder Datenblock in den Cache
geladen. Die Wahrscheinlichkeit, das die nachfolgenden Programmbefehle im Cache liegen,
ist sehr groß, da die Programm-Befehle nacheinander abgearbeitet werden.
14
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
CODESPEICHER
DATENSPEICHER
EXTERNE I/O ERWEITERUNG
A
D
MIKROPROZESSOR
µP
MASTER
SLAVE 1
SLAVE 2
ADRESSBUS
A0 … An
DATENBUS
D0 … Dn
….SLAVE n
SYSTEMBUS
STEUERBUS
15
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Systembus. Die Teilbusse Datenbus, Adressbus und Steuerbus bilden
gemeinsam den Systembus des Mikrorechners
Der Adressbus stellt Ziel- bzw. Quelladresse des Datentransfers bereit
Über den Datenbus werden die zu übertragenden Daten transferiert
Die Signale des Steuerbus übernehmen die Koordinierung des
Datentransfers im Hinblick auf Richtung und Ablauf des Datentransports.
Der Transport der einzelnen Daten- bzw. Adressinformationen (D0 bis Dn bzw. A0 bis
An) erfolgt aus Gründen einer hohen Übertragungsgeschwindigkeit jeweils parallel und
gleichzeitig
Adresse. Sie besteht aus einer Kombination mehrer binärer Stellen, Adressbits, zur
Angabe und eineindeutigen Auswahl einer konkreten Speicherstelle (wie eine
Postadresse). Mit n Adressbits lassen sich m = 2n verschiedene Bitkombinationen, d.h.
Adressen darstellen
Die Datenbreite einer Speicherstelle wird in Bit angegeben. Sie gibt an, wie viel
binäre Einheiten in genau einer Speicherstelle untergebracht sind.
16
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
ZEITDIAGRAMM FÜR GETAKTETEN SYSTEMBUS
BUSTAKT
SYSTEMBUS
ADRESSE 1
ADRESSE 2
ADRESSBUS
READ
DATEN
DATENBUS
WRITE
DATEN
LESEZYKLUS
DATENBUS
SCHREIBZYKLUS
STEUERBUS
17
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Master-Slave Prinzip. Der gesamte rechnerinterne Ablauf unterliegt einem festen Regime. Die CPU steuert
als Master aktiv alle Abläufe und Datentransporte. Speicher und periphere Komponenten arbeiten als Slave,
d.h. sie sind stets passiv und werden nur auf Aufforderung der CPU hin aktiv.
Typischer Ablauf eines Datentransfers über einen getakteten Systembus:
Der Master legt die Adresse der Speicherzelle bzw. der
Peripheriekomponente auf den Adressbus (Adressierungsphase)
Mithilfe eines Steuersignals definiert der Master die Richtung des
Datentransfers (z.B. /RD = 0 & /WR = 1… Lesen und mit /RD = 1 & /WR = 0
Schreiben)
Die Daten werden bei einer Schreiboperation nun vom Master auf den
Datenbus gelegt und von Speicher bzw. von der Peripheriekomponente
übernommen. Alternativ werden bei einer Leseoperation die vom Speicher
bzw. von der Peripheriekomponente auf den Datenbus gelegten
Informationen vom Master eingelesen (Datentransferphase)
Wartezyklen (Wait- States). Um langsamere Speicher- bzw. Peripheriebausteine an einem schnelleren Systembus
betreiben zu können, ist bei vielen Bussystemen das Einfügen von Wartezyklen in das Bustiming möglich.
Zeitmultiplexe Bussignale. Zur Reduzierung von Anschlusspins und damit von Busleitungen werden häufiger
verschiedene Bussignale über gleiche Leitungen zeitlich nacheinander zur Verfügung gestellt. Die Kennzeichnung
der momentanen Verwendung der Busleitungen erfolgt dabei über zusätzliche Statussignale
18
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Wartetakte: (Wait-States)
Probleme bei unterschiedlicher Geschwindigkeit:
Prozessoren sind technologisch bedingt wesentlich schneller als Speicher (Unterschied bis 1:20); periphere Einheiten sind noch langsamer als Speicher
Synchronisation über Wartetakte:
• die Übertragung wird um eine Anzahl von Takten verlängert - starre Anzahl, z.B. 1 Wartetakt für Zugriffe auf die Peripherie
• programmierbare Anzahl, Einstellung in einem Statusregister entsprechend der Geschwindigkeit der im System verwendeten
Speicherschaltkreise
• Speicher oder Peripherie signalisiert die Bereitschaft über eine spezielle Steuerleitung
19
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
ZEITMULTIPLEXES ADDRESS-/DATENBUS 8-BIT SYSTEM:
ADRESSE HIGH BYTE AD8-AD15
AD HIGH AD8-AD15
ADH
DATEN BYTE D0-D7
µC
DATA
AD LOW AD0-AD7
EPROM
8x64k
ADL
LATCH
CS
R/W
ALE
CS_0
CS_1
ADH
R/W
ALE … ADDRESS LATCH ENABLE
DATA
CS_x … Chip Select
R/W … Read/Write
ADH … Adresse High Byte
ADL … Adresse Low Byte
RAM
8x64k
ADRESSE LOW BYTE AD8-AD15
ADL
CS
R/W
DATEN … Datenbyte
20
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Die Von-Neumann-Architektur zeichnet sich
dadurch aus, dass Code und Daten über die
gleichen Busse übertragen werden (im
Gegensatz zur Harvard-Architektur). Dadurch
gibt es erstmal keine Unterscheidung
zwischen Code- und Datenbereichen und
Code kann auch im Datenbereich ausgeführt
werden.
Das Hauptmerkmal der Harvard-Architektur
ist, dass Programm- und Datenspeicher über
getrennte Busse angesteuert werden. Daraus
ergibt sich der Vorteil, dass auf Daten- und
Programmspeicher gleichzeitig zugegriffen
werden kann. Es bedeutet aber auch, dass im Gegensatz zur Von Neumann-Architektur echter Code im Datenspeicher nicht
ausgeführt werden kann. Dazu muss er erst
in den Codespeicher übertragen werden.
21
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Maschinenbefehl (Instruction Code). Er besteht aus binären Mustern fester oder
variabler Länge, die vom Prozessor als Befehl interpretiert werden und damit die
entsprechenden Operationen auslösen.
Aufbau eines Maschinenbefehls (meist 2 Teile):
•Operationscode (Opcode). Enthält Informationen über
• die auszuführenden Operationen
• die Größe der zu verarbeitenden Operanden und
• die Anzahl und Bedeutung der Informationen im zweiten
Befehlsteil
•Operanden- und Adressfeld. Dies können
• zu verarbeitende Daten
• Informationen zum Auffinden der Daten (Adressinformationen) oder
• Programmfortsetzungsadressen sein.
Anmerkung: Der Aufbau des Maschinencodes ist strikt prozessorabhängig. Sein Aufbau stellt eine Balance
zwischen einem kompakten Befehlsformat, einer einfachen Entschlüsselung und der Menge
darzustellender Informationen dar.
22
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Ablauf der Befehlsabarbeitung:
Der Befehlsbearbeitungszyklus (Instruction Execution Cycle) ist ein
unendlicher, sich ständig wiederholender Zyklus, der aus folgenden Phasen
besteht:
•Berechnen der Befehlsadresse (Prefetch)
•Befehl lesen und decodieren (Instruction Fetch and Decode)
•Laden der Operandenadresse (Access)
•Laden des Operanden (Read)
•Befehl ausführen (Execute)
P
F
D
A
R
X
Befehlsbearbeitungszyklus
23
HINTERBERGER M. 2007
2006
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Vereinfachter Prinzipablauf der Befehlsabarbeitung:
Instruction Fetch and Decode
1. Befehlsinformation einlesen
1.
Einlesen des ersten Teils der Befehlsinformation (1.Teil des
Opcode)
a.) Ausgabe des Inhaltes des Program Counters PC auf dem
Adressbus,
2. Befehl decodieren
b.) Einlesen des Inhaltes der angesprochenen Speicherzelle in
den Befehlsdecoder,
c.) Inkrementieren des PC um eine Adresseinheit.
l
eh tt ?
f
Be ple
m
ko
JA
2. Decodieren der eingelesen Information und Festlegung des weiteren
Ablaufs.
3. Einlesen der restlichen Bestandteile des Befehls (falls nötig):
a.) Ausgabe des PC auf dem Adressbus,
NEIN
b.) Einlesen des Inhaltes der Speicherstelle in den Befehlsdecoder,
c.) Inkrementieren des PC,
3. Lesen ergänzender
Information
4. Befehlsausführung
a) Bereitstellen der Daten
b) Verarbeitung in ALU
c) Ergebnisse ablegen
d.) Wiederhole ab a.) bis Befehl komplett eingelesen ist.
Execute
4.
Ausführen des Befehls:
a.) Bereitstellen der Daten am Eingang der ALU
b.) Ausführen der ALU Operationen
c.) Ablage der Ergebnisses. (z.B. in Register)
24
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Performancesteigerung durch Befehlspipline
P1
Eine Sprunganweisung oder ein Sprungbefehl
dient
in
Programmiersprachen
von
Computerprogrammen dazu, die Ausführung an
anderer Stelle fortzuführen, also Programmteile
zu überspringen.
F1
D1
A1
R1
X1
……
P2
F2
D2
A2
R2
X2
……
P3
F3
D3
A3
R3
X3
P4
F4
D4
A4
R4
X4
P5
F5
D5
A5
R5
X5
……
P6
F6
D6
A6
R6
X6
……
……
……
…vollständig geladene Pipeline
Probleme und Konflikte:
Cycles
•Betriebsmittelkonflikte, wenn eine Stufe der Pipeline Zugriff auf eine Ressource benötigt, die bereits von einer anderen Stufe belegt ist;
•Datenkonflikte, falls ein Befehl Daten lesen/schreiben will, die zuvor von einem anderen Befehl gelesen/geschrieben werden müssen;
•Kontrollflusskonflikte, wenn die Pipeline abwarten muss, ob ein bedingter Sprung ausgeführt wird oder nicht.
25
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Performancesteigerung durch Befehlspipline
Vorteil:
• enorme Steigerung der Verarbeitungsgeschwindigkeit
Nachteil:
• viele Befehle befinden sich gleichzeitig in Bearbeitung (eventuell Datenabhängigkeiten, siehe vorige Folie)
• im Falle eines Pipeline-Flushs müssen alle Befehle in der Pipeline verworfen und anschließen
wieder neu befüllt werden → Verzögerungszeiten entstehen, in denen der Prozessor untätig ist
HINTERBERGER M. 2007
26
INSTITUT FÜR ELEKTRONIK
10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101
01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101
10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
Grundlagen der Mikroprozessortechnik
Bedienung von Eingabe- und Ausgabe-Einheiten:
Prinzipiell kann die Bedienung von Komponenten zur Eingabe bzw. zur Ausgabe von Daten im
Polling-Verfahren oder per Interrupt- Steuerung erfolgen
Polling. Beim Polling Verfahren wird per Programm
ständig kontrolliert, ob Daten von der Eingabeeinheit
eingelesen oder an Ausgabeeinheiten ausgegeben werden
können. Dazu werden entsprechende Statusinformationen
der Eingabe-/Ausgabe-Einheiten ausgewertet
Interrupt-Steuerung.
Eingabe-/AusgabeEinheiten
können eine Bedienanforderung oder ein Ereignis per
Interrupt (Interruptanforderung) an den µP/µC anmelden.
Dieser entscheidet über die Berücksichtigung dieser
Anforderung und den Zeitpunkt des Starts der
zugeordneten Interrupt- Behandlung (Interrupt-ServiceRoutine ISR)
Unter Interrupt (lat. interruptus, Unterbrechung) die kurzfristige Unterbrechung eines laufenden Programms durch eine von der
CPU abzuarbeitenden Befehlssequenz, die Interrupt Service Routine (=ISR, Unterbrechungsroutine). Anschließend wird durch
eine Rücksprunginstruktion der ISR die Ausführung des Programms an der der Unterbrechungsstelle folgenden Instruktion
fortgesetzt
27
HINTERBERGER M. 2007
INSTITUT FÜR ELEKTRONIK
Herunterladen