Systementwurf mit Mikroprozessoren - Einführung

Werbung
1
Systementwurf mit Mikroprozessoren WS 09/10
R. Hoffmann
Lernziele
 Verstehen Lernen wie Mikroprozessoren und ihre Schnittstellen
funktionieren.
 Lernen, wie man Systeme mit Mikroprozessoren entwirft.
 Warum
 Mikroprozessoren "Everywhere", (Embedded Systems, Ambient Computing)
 Informatiker sollten wissen, wie Mikroprozessorsysteme funktionieren
 Technische Informatiker müssen in der Lage sein, Systeme mit Mikroprozessoren zu
entwerfen
 Literatur: Flik: Mikroprozessortechnik und Rechnerstrukturen, Springer 2005
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
Anwendungen von Mikroprozessoren
SLR McLaren
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
2
Systementwurf mit Mikroprozessoren SS 08
R. Hoffmann
1.
2.
5.
6.
Einführung [1.]
7.
1.1. Informationsdarstellung
Ein-/Ausgabeorganisation und
Rechnerkommunikation [8.]
1.2. Rechnerstruktur (CISC)
7.1.
Prozessorgesteuerte Ein-/Ausgabe
1.3. Assemblerprogrammierung (CISC)
7.2.
Allgemeine Übertragungsmerkmale
Der Mikroprozessor [3.]
7.3.
Parallele Schnittstellen
2.1. CISC-Programmiermodell
7.6.
Serielle Schnittstellen
Busse und Systemstrukturen
7.5.
Asynchron serielle Datenübertragung
5.1.
Systemaufbau und Systemstrukturen [4.]
7.6.
Synchron serielle Datenübertragung
5.2.
Adressierung der Systemkomponenten [5.]
5.3.
Datentransportsteuerung [6.]
5.4.
Busarbitration [10.]
5.5.
Interruptsystem und Systemsteuersignale [7.]
5.6.
Der PCI-Local-Bus und PCI-X [10.]
8.
Speicheraufbau und Speicherzugriff [2.]
6.2.
Caches [12.]
8.1.
DMA-Controller und Ein-/Ausgabecomputer [9.]
8.2.
Periphere Punkt-zu-Punkt-Verbindungen
und Peripheriebusse [11.]
8.3.
Speicherorganisation
6.1.
Ein-/Ausgabesteuereinheiten und
Peripheriegeräte
9.
Hintergrundspeicher
Mikrocontroller [13.]
Kapitelnummern, Inhalt und Bilder entnommen aus Flik: Mikroprozessortechnik, 6. und 7. Aufl. Springer
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
3
Systementwurf mit Mikroprozessoren SS 08
Reihenfolge
Teil 1 : Einführung
1.1. Informationsdarstellung
1.2. Rechnerstruktur (CISC)
1.3. Assemblerprogrammierung (CISC)
Teil 2 : Speicher
6.1. Speicheraufbau und Speicherzugriff
Teil 6 : Busse, Busarbitration
5.1. Systemaufbau und Systemstrukturen
5.4. Busarbitration
Teil 7 : DMA, Floppy
8.1.
8.3.
DMA-Controller
Hintergrundspeicher
Teil 3 : Prozessor
2.1. CISC-Programmiermodell
Teil 4 : Buszyklen
5.2. Adressierung der Systemkomponenten
5.3. Datentransportsteuerung
5.5. Interruptsystem und Systemsteuersignale
Teil 5 : Ein-/Ausgabe
7.1.
7.2.
7.3.
7.4.
7.5.
7.6.
Prozessorgesteuerte Ein-/Ausgabe
Allgemeine Übertragungsmerkmale
Parallele Schnittstellen
Serielle Schnittstellen
Asynchron serielle Ein-/Ausgabe
Synchron serielle Ein-/Ausgabe
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Teil 8 : PCI-Bus
5.6.
Der PCI-Local-Bus
Teil 9 : Peripheriebusse
8.2.
Peripheriebusse
Teil 10 : Caches
6.2.
Caches
Teil 11 : Microcontroller
Microcontroller
Systementwurf mit Mikroprozessoren WS 2009/2010
4
Inhalt Teil 1: Einführung

Informationsdarstellung




Komponenten Mikroprozessorsystem





Bus
Mikroprozessor
Hauptspeicher
EA-Einheiten
Mikroprozessor




Zeichen
Ganze Zahlen (Signed, Unsigned)
BCD, Gleitkommazahl
3/2/1-Adressbefehle
Struktur eines 16-Bit-Mikroprozessors
Befehlszyklus

Ein-/Ausgabeeinheit



Protokollwandlung
Anpassung Geschwindigkeiten
Zwischenspeicherung
 Assemblerprogrammierung




symbolische Darstellung
Maschinencode
Assemblierung, Direktiven
Programmlisting
 Texteingabe und –ausgabe

Übertragung der darstellbaren Zeichen
und der Steuercodes
Speicher

RAM, ROM, CAM
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
5
1. Einführung
1.1 Informationsdarstellung
Informationseinheiten
Byte, Wort, Doppelwort, ...
Zeichen (character)
ASCII, EBCDIC, IBM-PC, 16-Bit-Unicode
Hexadezimal- und Oktalcode
4-Bit-Dualzahl ==> Hexadezimalziffer (0..F)
3-Bit-Dualzahl ==> Oktalziffer (0..7)
Ganze Zahlen
Vorzeichenlose Dualzahlen (unsigned) = positive Dualzahl
0 .. (2n -1)  0 .. (2n -1)
Vorzeichenbehaftet (signed) = Zweikomplementzahl
-2n-1 .. (2n-1-1)  0 .. (2n -1)
nicht symmetrisch zu 0, Fehlerquelle!
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
6
ASCII-Code
7
0
1
2
3
4
5
6
7
0
NUL
DLE
SP
0
@
P
`
p
1
SOH
DC1
!
1
A
Q
a
q
American
Standard
Code
for
Information Interchange,
Standard No. X3.4-1968 of the
American National Standards Institute.
2
STX
DC2
“
2
B
R
b
r
Leseweise: z. B. 39h =9
3
ETX
DC3
#
3
C
S
c
s
4
EOT
DC4
$
4
D
T
d
t
5
ENQ
NAK
%
5
E
U
e
u
6
ACK
SYN
&
6
F
V
f
v
7
BEL
ETB
‘
7
G
W
g
w
8
BS
CAN
(
8
H
X
h
x
9
HT
EM
)
9
I
Y
i
y
A
LF
SUB
*
:
J
Z
j
z
B
VT
ESC
+
;
K
[
k
{
C
FF
FS
,
<
L
\
l
|
D
CR
GS
–
=
M
]
m
}
E
SO
RS
.
>
N
^
n
~
F
SI
US
/
?
O
_
o
DEL
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Der bei Mikroprozessoren verbreitete Standard ist
der ASCII-Code (American Standard Code for
Information Interchange). Bei diesem Code wird
jedes Zeichen durch eine Folge von 7 Bits
festgelegt (dies erlaubt 128 verschiedene
Zeichencodierungen). Zur Speicherung der Zeichen
ist bei dieser 7-Bit-Darstellung sofort ersichtlich,
dass man ein Zeichen in jeweils einem Byte ablegt.
Allerdings ist die Frage, wie man das freie achte Bit
verwendet. Das wird nicht durch die Codetabelle
festgelegt, sondern durch die verwendeten
Programme. Manchmal wird dieses Bit ganz einfach
0 gesetzt, manchmal wird es ignoriert und
gelegentlich wird es auch dazu benutzt, weitere
128 Nicht-ASCII-Zeichen darzustellen, was
allerdings herstellerabhängig ist.
Systementwurf mit Mikroprozessoren WS 2009/2010
Zweikomplementzahlen
Signed integer, vorzeichenbehaftete Dualzahl
0000
1111
0000
0010
15
0
Addition
Subtraktion
1101
0011
13
0100
1100
6
10
1010
1001
0101
1000
+4
1011
-6
0110
0111
positiver
Zahlen
0101
+6
-7
-8
1000
+7
0111
0110 positiver
Zahlen
Zweikomplementzahlen
2K
Wert
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
1010
1001
positive Dualzahlen
0100
+5
-5
7
0011
+3
-4
5
11
Addition
+2
-3
4
12
1011
0
+1
1101
3
8
-1
-2
2
9
0010
1110
1
14
1100
0001
0001
1111
Subtraktion
1110
8
X= signed(x) = x + (x <0) 2n
x = X – Xn-1 2n = X – Sign 2n
Systementwurf mit Mikroprozessoren WS 2009/2010
Addition im Zweikomplement
C
a1)
a2)
b1)
b2)
c1)
c2)
+2
+2
+4
+7
+7
+14
-1
-1
-2
-8
-8
-16
+2
-1
+1
+1
-7
-6
0.0
0.0
0 0.1
0.1
0.1
0.1 1
1.1
1.1
1.1 1
1.0
1.0
1.0 0
0.0
1.1
1 0.0
0.0
1.0
0 1.0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
OV
0
0
0
1
1
0
1
1
1
0
0
0
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Overflow:
Ergebnis nur richtig, wenn C als zusätzliche
Stelle (Vorzeichenstelle) berücksichtigt wird!
Carry-Out=C:
In den Fällen b1 und c1 muss das
entstehende Carry ignoriert werden
Subtraktion:
Zweiten Operanden bitweise negieren und
das Carry-In auf 1 setzen.
Systementwurf mit Mikroprozessoren WS 2009/2010
9
Addition im Zweikomplement
Overflow
10
Berechnung des Overflow:
1.
OV=CarryOut exor CarryBefore
2.
siehe Bild und HDL-Algorithmus
3.
die Zahlen werden um eine zusätzliche
Vorzeichenstelle (Schutzstelle) erweitert. Vor
der Addition hat jeder Operand zwei identische
Vorzeichen. Falls die Summe zwei ungleiche
Vorzeichen besitzt, ist ein Überlauf
aufgetreten.
Carry-In
Carry-Out
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
BCD-Zahl, Gleitkommazahl
Binärcodierte Dezimalzahlen (BCD)
4-Bit-Dualzahl ==> Dezimalziffer (0..9), Pseudotetraden (=ungenutzte Zustände)
Gleitkommazahl (floating point number) (Bild 1-3)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
11
Gleitkommazahl
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
12
1.2 Rechnerstruktur (CISC), Einführung in die
Hardwarestruktur
Übersicht über die Hardwarekomponenten (Bild 1-5)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
13
Übersicht über die Hardwarekomponenten
Bus
Verbindungswege: Adressen, Daten, Steuersignale
Mikroprozessor
Interpretation der Maschinenbefehle: Holen, Decodieren, Ausführen
Steuerung des Hauptspeichers und der EA-Einheiten
Steuerwerk und Operationswerk (ALU, Register)
Hauptspeicher
Lineare Anordnung von Speicherzellen
Zugriff über Adressen
EA-Einheiten
Schnittstellen-Anpassung: unterschiedliche Datenformate und Arbeitgeschwindigkeiten
Zwischenspeicherung von Daten
Slave oder Masterbetrieb (DMA, EA-Prozessor)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
14
Speichersymbolik
15
Bild 1.6
a)
b)
Register mit unidirektionalen Schreib-/Leseleitungen
"
bidirektionalen
"
c) Speicher mit wahlfreiem Zugriff (RAM)
d) 2-Port RAM
e) Festwertspeicher (ROM)
f) Assoziativspeicher (CAM)
D: Datenleitungen, A: Adressleitungen
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
1.2.2 Busorientierte Systemstruktur
Die Systemkomponenten (Mikroprozessor, Speicher, EA-Einheiten, ...) werden
meist durch einen zentralen Systembus miteinander verbunden. Dadurch ist
das System leicht erweiterbar, aber auch in der Übertragungsbandbreite
begrenzt. Der Systembus besteht aus
 Datenbus, zum Transport der Daten (Befehle, Operanden),
 Adressbus, zur Anwahl der Speicherzellen, Register, Systemkomponenten,
 Steuerbus, zur Steuerung des Informationsaustausches, allgemein zur
Kontrolle.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
16
1.2.3 Mikroprozessor
Der Mikroprozessor holt die Maschinenbefehle aus dem Hauptspeicher (Programmund Datenspeicher eines Von-Neumann-Rechners) und interpretiert sie.
Informationsanteile bei einer zweistelligen Operation (Bild 1-8):
1.
2.
3.
4.
Operationscode
Adresse des ersten Operanden
Adresse des zweiten Operanden
Adresse des Resultats
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
17
Mikroprozessor
Einsparung von Adressbits
 Verwendung von Registeradressen anstelle von Speicheradressen
 Reduzierung der Anzahl der Register
 Zieladresse = Quelladresse (überdeckte Adressierung)
 Implizit im Operationscode enthalten
 Speicheradressen stehen in Adressregistern (Register indirekt)
 Konzeptionell andere Arten: Stackmaschine oder Objektorientierte Maschine
(Objektklasse, Objektnummer, Methodennummer)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
18
Mikroprozessor
Einadressbefehle (Bild 1-9)
Speicherzelle(s)  Akkumulator
Operator(Akkumulator [, Speicherzelle(s)])  Akkumulator
Akkumulator  Speicherzelle(d)
(s = source, d = destination)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
19
Mikroprozessor
20
Zweiadressbefehle
Prozessor besitzt internen Registersatz
Benutzung der internen Registeradressen oder der externen Speicheradressen
Quelle/Ziel kann Speicherzelle oder Register sein, Möglichkeiten
Speicherzelle(s)  Register(d)
Register(s)  Speicherzelle(d)
Operator(Register(s) [, Register(sd)])  Register(sd)
oder direkte Operationen auf Speicherzellen
_
R/S =Register- oder Speicheroperand
(wenn R/S1=0)
(wenn R/S2=0)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
Struktur eines 16-Bit-Mikroprozessors
SR = Statusregister
CC = Condition Code
DR = Datenregister
DB = Datenbus
AR = Adressregister
Bild 1-11. Struktur eines 16-Bit-Mikroprozessors (die Ziffern beziehen sich auf nächste Folie).
µPC Mikrobefehlszähler, µIR Mikrobefehlsregister, PC (Maschinen-)Befehlszähler, IR (Maschinen-)
Befehlsregister
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
21
Befehlszyklus
1. Holen des Befehls aus dem Hauptspeicher in das Befehlsregister
2. Decodieren
3. Holen des ersten Operanden aus dem Registerspeicher oder dem
Hauptspeicher und Zwischenspeichern im Rechenwerk. Gegebenenfalls vorher
Durchführung von Adressberechnungen.
4. Gegebenenfalls Holen des zweiten Operanden
5. Durchführung der Operation im Rechenwerk
6. Speichern des Ergebnisses im Registerspeicher oder im Hauptspeicher
Parallel dazu Berechnung der nächsten Befehlsadresse,
entweder
Erhöhung des Befehlszählers um 1 (genauer um die Länge des Befehls),
oder falls Sprungbefehl
Berechnung der Sprungadresse und Laden in den Befehlszähler
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
22
Befehlszyklus, Beispiel: ADD SPADR,R5
1.
2.
3.
4.
5.
Hauptspeicher(PC)  IR,
PC+1
Decodierung
Hauptspeicher(PC)  AR,
PC+1
Hauptspeicher(AR)  DR2,
Register(R5)
DR2+DR1
 Register(R5), Statusinformation
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
 PC
 PC
 DR1
 SR
Systementwurf mit Mikroprozessoren WS 2009/2010
23
1.2.4 Speicher
Zweck: Speicherung von Programmen, Variablen, Funktionen, Konstanten
 Schreib-/Lesespeicher (RAM: Random Access Memory)

Lesezugriff
1. Bausteinanwahl, Lesesignal, Adresse anlegen
2. Nach der Lesezugriffszeit steht das Datum = Speicherzelle(Adresse) bereit

Schreibzugriff
1. Bausteinanwahl, Adresse und Daten anlegen, Schreibsignal-Start
2. Nach der Schreibzugriffzeit erfolgt die Datenübernahme in den Speicher durch
das Schreibsignal-Ende
Zykluszeit: erforderliche Zeit zwischen 2 Zugriffen
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
24
 Festwertspeicher (ROM: Read Only Memory)
Nur lesender Zugriff. Information bleibt beim Stromausfall erhalten.
 Maskenprogrammierte PROM
 erasable programmable EPROM
 electrically alterable EAROM
 electrically erasable EEPROM
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
25
Speicherbausteine RAM, ROM
RAM
CS: Chip Select
CE: Chip Enable
(Aktivierung des Speicherbausteins)
OE: Output Enable
(hochohmig/durchgeschaltet)
WE: Write Enable
(Lesen/Schreiben)
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
26
ROM
 Content Addressable Memory CAM
(Name = CAM-Adresse) und Inhalt sind variabel.
Variable = (Name, Inhalt)
Außer der variablen CAM-Adresse
kann eine Zelle auch eine normale,
ortsfest zugeordnete Binäradresse
besitzen.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
27
Content Addressable Memory (Assoziativspeicher)
Merkmale

Großer Namensraum: Der Namensraum
ist normalerweise deutlich größer als der
Binäradressraum (Anzahl der
verfügbaren Speicherzellen), dadurch
Einsparung von Hardware-Aufwand für
Problemstellungen mit Namensraum >>
Binäradressraum

Assoziativer Vergleich: Alle
eingespeicherten Namen werden parallel
verglichen. 0, 1 oder mehr Treffer (hits)
sind prinzipiell möglich.

Cache: Bei eingeschränkten
Assoziativspeichern (z.B. Cache) sind nur
0, 1 Treffer sinnvoll.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur

Datenbewegungen können durch
Änderung des Namens emuliert werden.

Auslesen: Bei mehr als einem Treffer
erfolgt entweder sequentielles Auslesen
oder z. B. die Oder-Verknüpfung der
Inhalte (vergl. PLA)

Schreiben: Beim Speichern einer neuen
Variablen muss gegebenenfalls eine
vorhandene ''älteste'' Variable gelöscht
werden.
Systementwurf mit Mikroprozessoren WS 2009/2010
28
1.2.5 Ein-/Ausgabeeinheit
Aufgaben
Protokollwandlung zwischen der
internen und der externen
Schnittstelle
Anpassung der verschiedenen
Arbeitsgeschwindigkeiten
Zwischenspeicherung und
Konvertierung von Daten und
Kontrollinformation
Typische Bausteine zur Unterstützung
der EA
EA-Register
Paralleler EA-Baustein, stellt eine 8- oder
16-Bit Schnittstelle für die Peripherie zur
Verfügung
Serieller EA-Baustein, stellt eine serielle
1-Bit Schnittstelle mit Serien/Parallelund Parallel/Serienwandlung zur
Verfügung
Beispiele: Floppydisk-Controller, HarddiskController, CD-ROM-Controller
Direct Memory Access Controller
(DMAC), kontrolliert den Blocktransfer
von Daten zwischen Speicher und
peripheren Einheiten, MasterSlavebetrieb möglich
EA-Prozessor
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
29
Systementwurf mit Mikroprozessoren WS 2009/2010
Ein-/Ausgabeeinheit
Komponenten der Implementierung
Datensignalleitungen
Kontrollsignalleitungen, z. B.
Handshake- und Interruptsignale
Feste oder programmierbare Logik zur
Interpretation der Kommandos
Interne Register, Verarbeitungseinheiten
sowie ggf. Daten- und
Programmspeicher
Kommandoregister, zur Einstellung einer
bestimmten Betriebsart und zur
Aufnahme des auszuführenden
Kommandos
Statusregister, liefert Information über
den Kontroll/Datenzustand des Bausteins
an den Prozessor zurück
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
30
1.3 Einführung in die Assemblerprogrammierung
Programmdarstellung
Programmieraufgabe (Beispiel: Impulsgeber).
An die Peripherie (EA-Register) soll in bestimmten
Zeitabständen eine 1 (Impuls) ausgegeben werden. Die
Periodendauer t (Zeitkonstante) steht am Anfang im EARegister. Das EAREG ist unter der Adresse
1000 0000 0000 0000 (8000 Hex) ansprechbar.
input
output
output
output
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
31
Symbolische Programmdarstellung
Befehle zur Lösung
MOVE Q,Z
Z := Q
SUB
Q,Z
Z := Z - Q
CMP
A1,A2
CC := Vergleichsrelationen(A1, A2)
BNE
S
if CCNotEqualBit = true then goto S
JMP
S
goto S
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
32
Impulsgeberprogramm in symbolischer Darstellung
M1
M2
MOVE
MOVE
MOVE
EAREG, ZEITK
NULL, EAREG
NULL, R0
Takte
/Befehl
6
6
4
MOVE
ZEITK, R2
4
SUB
CMP
BNE
EINS, R2
R0, R2
M2
5
4
3
MOVE
MOVE
JMP
EINS, EAREG
NULL, EAREG
M1
6
6
3
ZEITK
NULL
0
EINS
1
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
33
Innere Schleife benötigt 12
Takte. Für einen kompletten
Zyklus werden t=12 * ZEITK
+ 19 Taktzeiten benötigt.
Für t=5 ms und Takt=25
MHz (Taktzeit=40 ns) muss
die Zeitkonstante wie folgt
eingestellt werden: ZEITK
=10415
In der Praxis:
Verwendung eines Timers,
der periodisch einen
Interrupt auslöst.
Systementwurf mit Mikroprozessoren WS 2009/2010
Maschinencode-Darstellung (Binärcode, Objektcode)
Assembler ordnet den Symbolen Adressen oder Werte zu
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
34
MaschinencodeDarstellung.
35
Source-Code
MOVE
MOVE
MOVE
EAREG, ZEITK
NULL, EAREG
NULL, R0
M1
MOVE
ZEITK, R2
M2
SUB
CMP
BNE
EINS, R2
R0, R2
M2
MOVE
MOVE
JMP
EINS, EAREG
NULL, EAREG
M1
ZEITK
NULL
0
EINS
1
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
Programmübersetzung (Assemblierung)
36
Source Code: Assemblersprache, Format einer Programmzeile
Name
Adresse
Label
Operation
EARG
EQU
32768
; Festlegung der EA-Adresse, symbolische Konstante
MOVE
EARG, ZEITK
; ZEITK:=EARG Zeitkonstante einlesen
MOVE
ZEITK, R2
; Zeitschleife Initialisieren
JMP
M1
ZEITK
DS
1
; 1 Speicherplatz reservieren, nicht initialisieren
EINS
DC
1
; 1 Speicherplatz res. und mit 1 init. ; Konstante
M1:
Name
Adresse
Konstante
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Kommentar
Systementwurf mit Mikroprozessoren WS 2009/2010
Direktiven
(Assembleranweisungen)


37
Hinzufügen weiterer Informationen zur Steuerung der Übersetzung, des Ladevorgangs und
der Ausführung
Festlegung von Segmentanfangsadressen, Reservierung von Speicherplatz für Variablen und
Konstanten, Vorbelegung von Konstanten.
Origin: Festlegung der Anfangsadresse des Programm- oder Datensegments
[SymbolischeAdresse]
ORG NumerischeAdresse
Ende des zu assemblierenden Programms
END
Define Storage: Reservierung von Variablen/Speicherplatz
[SymbolischeAdresse]
DS AnzahlSpeicherzellen
Define Constant: Reservierung und Vorbelegung einer Konstanten
[SymbolischeAdresse]
DC Wert
Equate: Symbolische Definition (entspricht define in C)
Name
EQU Wert
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
Assembler, Lader, Binder
Assembler
(Phase 1) Generierung einer Symboltabelle
mit den numerischen Adressen und
Konstanten. Durch ORG wird der
Zuordnungszähler gesetzt.
(Phase 2) Erzeugung des Maschinencodes
mit Hilfe der Symboltabelle, Erzeugung
eines Listings
Cross-Assembler
Übersetzer, der auf einer anderen Plattform
als der Zielmaschine läuft.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Lader
Absolut-Lader lädt an die ORG-Adresse.
Verschiebender Lader (relocating loader)
verschiebt die durch den Assembler
mittels ORG erzeugten Adressen um eine
vorgebbare Ladedistanz.
Durch EQU definierte absolute Adressen
bleiben unverändert.
Binder (linking loader)
Löst die Querbezüge von getrennt
übersetzten Modulen auf.
Systementwurf mit Mikroprozessoren WS 2009/2010
38
Programmlisting
des Impulsgeberprogramms
39
R0
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
1.3.3 Texteingabe und Textausgabe
 Von der Tastatur werden mit
jedem Tastendruck bzw.
Tastenkombination ein oder
mehrere Codes erzeugt, die von
einem Programm ausgewertet
werden.
 Bei der Textausgabe an einen
Drucker werden Steuerzeichen wie
CR, LF, FF sowie die eigentlichen
Zeichencodes übertragen.
R. Hoffmann, TU Darmstadt, FG Rechnerarchitektur
Systementwurf mit Mikroprozessoren WS 2009/2010
40
Herunterladen