Vorlesungsscript Rechnerarchitektur

Transcription

Vorlesungsscript Rechnerarchitektur
Vorlesungsscript
Rechnerarchitektur
S. Geisel
Berufsakademie Sachsen
Staatliche Studienakademie Bautzen
Bautzen, den 11.10.2002
Nur für die Vorlesung bestimmt
1 Was ist Rechnerarchitektur?
nach von Neumann:
Ist bestimmt durch das Operationsprinzip für die Hardware und die Struktur ihres Aufbaus aus einzelnen HardwareBetriebsmitteln.
Hardwarestruktur: Hardwareressourcen, Verbindungsstrukturen, Kommunikationsstrukturen
Operationsprinzip : Informationsstruktur (Maschinendatentypen wie Integer, Gleitkomma) und Steuerstrukturen
(Ablaufsteuerung, Ressourcenverwaltung, Datenzugriffssteuerung)
Ablaufsteuerung z.B.
programmcounter-, (ein Zähler zählt hoch und zeigt damit auf die nächste Befehlsadresse)
von Neumann-Architektur
daten-, (Operation wird ausgeführt wenn Operanden, aus anderen Befehlen errechnet, vorliegen)
Datenflussarchitektur
anforderungsgetriebene (Operation wird ausgeführt um Operanden für aktuelle Operation zu bekommen)
Reduktionsarchitektur
nach Blouw:
Maschinensprache≅Prozessorarchitektur≅Befehlssatz des Prozessors≅Prozessordatentypen≅Instruction-SetProcessor≅Instruction-Set-Architectur
2 Grundschaltungen
2.1
Transistor
in der Digitaltechnik: Umschaltung zwischen zwei logischen Zuständen 0 (Low, False) und 1 (High, True) die
physikalisch durch entsprechende Spannungen repräsentiert werden z.B. 0V und +5V
FET (Feldeffekt-Transistor):
Source Gate Drain
Kanal
Silizium
2.2
AND (Konjunktion)
y=a∧b ; andere Schreibweise: y=a•b
a
b
y
Vc
Vc
a
b
y
Symbole nach DIN
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
1
a
0
0
1
1
b
0
1
0
1
2.3
y
0
0
0
1
OR (Disjunktion)
y=a∨b; andere Schreibweise: y=a+b
a
b
y
0
0
0
0
1
1
1
0
1
1
1
1
2.4
&
≥1
NOT (Komplement)
y=a
a
0
1
2.5
y
1
0
NAND
y = a∧b
a
0
0
1
1
2.6
b
0
1
0
1
y
1
1
1
0
&
NOR
y = a∨b
a
0
0
1
1
2.7
b
0
1
0
1
y
1
0
0
0
≥1
XOR (Antivalenz; Exklusiv OR)
y=a⊕b; andere Schreibweise: y=a≠b
a
b
y
0
0
0
0
1
1
1
0
1
1
1
0
=1
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
2
2.8
Halbadder
a
0
0
1
1
b
0
1
0
1
y
0
1
1
0
c
0
0
0
1
a
b
≥1
&
c-Übertrag (carry)
a
&
b
HA
2.9
Volladder
b
0
0
1
1
0
0
1
1
c*
0
1
0
1
0
1
0
1
y
0
1
1
0
1
0
0
1
c
0
0
0
1
0
1
1
1
a
b
c*
&
c*-Übertrag der (i-1)ten-Stelle
a
y
y
c
a
0
0
0
0
1
1
1
1
c
b
&
&
&
&
&
≥1
≥1
c
y
&
c*
VA
y
c
Paralleladdierer für vierstellige Dualzahlen
a0 b0 c-1
a3 b3
a2 b2
a1 b1
VA3
c y3
•
•
VA2
c2
y2
VA1
c1
y1
VA0
c0
y0
der Paralleladdierer kann wegen des Übertrages dennoch nur sequentiell arbeiten! (jeder Volladder muss immer auf
das Ergebnis des vorherigen VA warten)
Vorausberechnung des Gesamtübertrages für Überlaufkontrolle möglich durch spezielle Schaltungen, so das
mehrere VA zu Blöcken zusammengefasst werden können, die jeweils kaskadiert werden und separat addieren
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
3
2.10 Subtraktion
meistens durch Addition des negativen Subtrahenden realisiert durch geeignete Darstellung negativer Zahlen z.B.
Zweierkomplement (ist logisches Komplement[Einerkomplement] plus 1)
3-4=3+(-4) = -1
3=0011
4=0100
Einerkomplement von 4 (0->1, 1->0): 1011
Zweierkomplement von 4 (Einerkomplement +1):
1011
+0001
1100
3=0011
4=0100
0011
+ Einerkomplement 1011
1110
es entsteht richtig -1 (im
Einerkomplement-Zahlensystem)
0011
+ Zweierkomplement 1100
1111
es entsteht richtig -1 (im
Zweierkomplement-Zahlensystem)
Einerkomplement 1100
+ Einerkomplement 1011
(1)0111
es entsteht Übertrag und +7 statt -7
Zweierkomplement 1101
+ Zweierkomplement 1100
(1)1001
Es entsteht Übertrag aber richtig -7
(-3)+(-4) = -7
3=0011
4=0100
folglich muss beim Einerkomplement eine Nachbehandlung des Ergebnisses erfolgen durch addieren des Übertrages.
Beim Zweierkomplement kann der Übertrag ignoriert werden.
Bitmuster (n=4) Vorzeichenbit
Einerkomplement
0000
0
0
0001
1
1
0010
2
2
0011
3
3
0100
4
4
0101
5
5
0110
6
6
0111
7
7
1000
-7
-0
1001
-1
-6
1010
-2
-5
1011
-3
-4
1100
-4
-3
1101
-5
-2
1110
-6
-1
1111
-7
-0
Beachte: beim Vorzeichenbit und Einerkomplement gibt es auch –0
Zweierkomplement
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
Offsetbinär
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
Andere mathematische Operationen werden meist durch die Addition ersetzt. Bsp.:
Ganzzahlige Multiplikation durch
0*0=0
3*4=12
0011*0100
0*1=0
0000
1*0=0
0000
1*1=1
0011
0000
0001100
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
4
Zwischenergebnisse sind immer 0 oder der Multiplikand!
∞
Sinusfunktion durch Taylorreihen sin x =
∑ (−1) k
k =0
x 2 k +1
(2k + 1)!
Exponentialfunktionen durch den Logarithmus und dieser durch Taylorreihen
In modernen Prozessoren werden vorberechnete Werte in Tabellen vorgehalten und spezielle Vereinfachungen
angewendet (z.B. Multiplikation mit 2 durch Verschiebung um ein Bit nach links), um die Performance zu steigern.
2.11 Speicherschaltungen
2.11.1 RS-Flip-Flop
gewünschte Funktion ist die von zwei Tastern, wovon einer ein Licht einschaltet und der andere Taster zum ausschalten
dient.
Mögliche Realisierung:
Vc
b
y
a
a
0
0
1
1
b
0
1
0
1
Y
y-1 bzw. bei Initialisierung 0 oder 1
0
1
0|1|y-1|¬(y-1)
bistabile NAND Kippstufe (Flipflop) für statische Speicher (z.B. Register); sehr schnell
R-RESET
S-SET
t-Zeitindex
Schaltung eines RS-Latch (kein Flipflop der bei Taktsignal flankengesteuert wäre, sondern pegelgesteuerter Latch)
R
&
Q
S
R
&
S
t
0
1
2
3
4
5
6
7
8
R
0
0
0
1
1
1
1
1
1
S
0
0
1
1
1
0
0
1
1
S
R
Q
Q*
Q*
Q
0
1
1
1
1
1
0
0
0
Q*
0
1
0
0
0
1
1
1
1
Zustand
initialisieren
Kippt
Stabil
Stabil
Kippt
Stabil
Stabil
Für Q gilt
ungültige Zustände!
Q=Q*
Setzen
Speichern
Speichern
Ungültig
Löschen
Speichern
Speichern
RS-Latch hat instabile Zustände während des kippens. Daher RS-Flipflop der durch eine zusätzliche Taktleitung R und
S nur bei stabiler Rückkopplung schaltet. Bei RS-Flip-Flop ist S=R=0 (bzw. da bei NAND vorher invertiert S=R=1)
nicht erlaubt. Daher noch andere Flipflops z.B. D-Flipflop um solche Probleme zu umgehen.
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
5
2.11.2 ROM (read only memory)
z.B. als Diodenmatrix aber auch in Transistortechnik
Spaltenleitung
Zeilen(Wort)leitung
offen!
Speicherinhalt wird während des Produktionsprozesses durch die Masken festgelegt. Nur für hohe Stückzahlen.
2.11.3 PROM (programable)
Spaltenleitung
Zeilen(Wort)leitung
offen!
Speicherinhalt kann durch erhöhte Spannung einmalig gebrannt werden (Brenndauer je Bit einige ms!).
2.11.4 EPROM (erasable)
•
•
durch UV-Licht werden gebrannte Stellen wieder "repariert" (5-15 min)
gesamter EPROM wird gelöscht!
2.11.5 EEPROM (electrical)
•
•
•
•
•
durch höhere Spannung (20-40V) kann Speicherinhalt wieder gelöscht werden
höhere Spannungen auch durch Ladungspumpen auf dem EEPROM erreichbar
Einsatz in Telefonen, Chipkarten
Flash-Speicher als spezielle Form des EEPROM der nur blockweise (nicht byteweise) gelöscht/wiederbeschrieben
werden kann (für BIOS, Speicher für digitale Fotokamera, USB-Memory-Stick)
ca. 100.000 mal wiederbeschreibbar
2.11.6 RAM (random access memory)
verliert Speicherinhalt ohne Versorgungsspannung!
2.11.6.1
-
SRAM (statischer)
nicht zerstörend
derzeit schneller als DRAM (<10ns)
für Cache, Register
realisiert durch FlipFlop-Schaltungen
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
6
2.11.6.2
-
DRAM (dynamischer)
Steuerung muss regelmäßig Daten auslesen und erneut einschreiben (refresh) da der Kondensator sich selbst entlädt
(ca. aller 2-4 ms)
beim Lesen (und Schreiben) wird der Speicherinhalt ebenfalls gelöscht!
preiswert, da geringer Schaltungsaufwand
für Hauptspeicher
Zeilenleitung E
C
Spaltenleitung D
Abbildung 1 CMOS DRAM Speicherelement
E (Enable)
Zeilenleitung
0
1
0
0
...
1
1
D (Data)
Spaltenleitung
1
1
1
0
...
0
1
C (Konden- Funktion
sator)
0
1
1
1
...
1
0
Daten liegen an, Zelle aber nicht gewählt
SET
C hält Spannung
READ
Kondensator entlädt über D
2.11.7 MRAM (magnetic)
•
•
•
(Prinzip ähnlich der alten Ferritkernspeicher) 2 magnetische Schichten, deren obere Schicht beim schreiben
umpolarisiert wird
speichert auch ohne Versorgungsspannung
sehr schnell
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
7
Abbildung 2 MRAM Speichermatrix
2.12 Multiplexer/Demultiplexer
z.B. für Befehlsdekodierung, Speicheradressierung (auch Telefonvermittlungstechnik)
Multiplexer: eine von mehreren Eingangsleitung wird auf eine Ausgangsleitung durchgeschaltet
Demultiplexer: eine Eingangsleitung x wird auf eine von mehreren Ausgangsleitung y durchgeschaltet
Schaltleitungen s adressieren die gewünschte Eingangs- bzw. Ausgangsleitung
Tabelle 1 Schaltfunktion Demultiplexer
x
0
0
0
0
1
1
1
1
s1
0
0
1
1
0
0
1
1
S2
0
1
0
1
0
1
0
1
y1
0
0
0
0
1
0
0
0
y2
0
0
0
0
0
1
0
0
y3
0
0
0
0
0
0
1
0
y4
0
0
0
0
0
0
0
1
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
8
x
&
&
s1
&
y1
&
y2
&
y3
&
y4
s2
Abbildung 3 1-auf-4 Demultiplexer
3 Datenübertragung in der Rechnerarchitektur (Bussysteme)
3.1
•
•
•
3.2
•
•
•
•
3.3
•
•
•
•
•
3.4
•
•
•
•
3.5
Probleme:
in der Regel nicht nur eine Datenquelle und Datensenke (HS, µP, Geräte)
es muss physischer Transport der Information zw. Quelle und Senke erfolgen
zeitlicher Ablauf ist vorgegeben
Gemeinsamkeiten:
alle Datenübertragungen haben logische Signalpfade (Daten-, Adress- und Steuersignale)
Implementierung der Signalpfade als physikalisch getrennte Medien
Ausnahmen: z.B. Modem (Datenpfad = Adresspfad), Ethernet-Netzwerk (Datenpfad = Adresspfad = Steuerpfad),
Normalfall: physisch = logisch
drei zeitliche Phasen: Anbahnungsphase (herstellen einer Verbindung zw. Quelle und Senke), Durchführungsphase
(Daten werden übertragen), Abschlussphase (Trennung nach Bestätigung einer erfolgreichen/erfolglosen
Übertragung)
Formen
parallel <-> seriell
unidirektional <-> bidirektional
simplex – halbduplex – (voll)duplex
synchron <-> asynchron
statisch <-> dynamisch (Veränderung der Topologie während der Arbeit möglich)
µP-Bus
intern, extern
extern getrennt für Speicher und Peripherie
parallel, log.=phys., synchron
IO-Register, Adressregister, Steuerlogik
interne Bussysteme
ISA, PCI, AGP...,
3.6
externe Bussysteme
SCSI, USB, RS232, Centronics
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
9
4 Das von Neumann Rechnerkonzept
4.1
Schematischer Aufbau
Eingabe Verarbeitung Ausgabe
E
A
Zentraleinheit
Hauptspeicher
Zusatzspeicher
1. der Rechner enthält zumindest Speicher, Rechenwerk, Steuerwerk und
Ein-, Ausgabegeräte
2. die Zentraleinheit arbeitet taktgesteuert
3. die intern verwendete Signalmenge ist binär kodiert
4. im Rechner werden Worte fester Länge verarbeitet
5. der Speicher besteht aus fortlaufend adressierten Speicherworten fester
Länge
6. der Inhalt des Speicherwortes wird über seine Adresse angesprochen
7. der Rechner verarbeitet extern eingegebene Programme und Daten, die
intern gespeichert werden
8. Programmbefehle und Datenworte werden in einem einheitlichen
Hauptspeicher gehalten
9. der Prozessor verarbeitet Programmbefehle und Datenworte sequentiell
10. die Verarbeitung der Befehle erfolgt fortlaufend in der Reihenfolge
ihrer Speicherung im Hauptspeicher
11. die sequentielle Verarbeitung kann nur durch einen unbedingten oder
bedingten Sprungbefehl verändert werden
12. jede Aufgabe, die als Algorithmus beschreibbar ist, kann auf diesem
Rechner verarbeitet werden
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
10
4.2
Beispielarchitektur
Blockstruktur und grundlegende Datenflüsse des von-Neumann-Computers
PG
EG
EG
...
1
AG
AG
...
1
2
ZE
HS
7
TZ
6
PD
VD
5
7
6
3
4
P
SW
PG
EG
AG
P
ZE
SW
RW
HS
TZ
PD
VD
periphere Geräte
Eingabegerät
Ausgabegerät
Prozessor
Zentraleinheit
Steuerwerk
Rechenwerk
Hauptspeicher
Takt/Zeit
Programmdaten (Befehle)
Verarbeitungsdaten
RW
1
2
3
4
5
6
7
Eingabedaten
Ausgabedaten
Befehle
Operanden (auch Resultate)
Adressen für Befehle und Operanden
Steuer- und Zustandsinformationen
Takt
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
11
4.2.1 Rechenwerk
Struktur: Arithmetisch-Logische-Einheit + Register
Funktionen der ALU:
• Arithmetische Operationen
z.B. Addier-/Subtrahierwerk, Vergleichswerk, Multiplizierwerk, Gleitkommarechenwerk
• Logische Operationen
z.B. Negation, ODER, UND, XOR
• Schiebeoperationen
z.B. links/rechts, Anzahl Schritte, logisch/arithmetisch, zyklisch/nichtzyklisch
• Vergleichsoperationen
z.B. auf 0, auf FFFF
Schaltung Rechenwerk
Datenbus
12
13
14
HR
ER
AC
15
<ER>
<ER>
16
AV
17
Ü0
EG
1
18
19
&
+
20
BB
AC
ER
EG
BB
Akkumulator
AV
Addiervorrichtung
Eingangsregister
HR
Hilfsregister
1-Generator (+1 für Zweierkomplement bei Subtraktion)
Bedingungsbit
4.2.2 Steuerwerk
4.2.2.1 Befehle
elementare Programmstrukturen
1.) Reihenfolge
2.) Verzweigung (IF)
3.) Wiederholung (DO-WHILE)
Struktur maschinenorientierter Befehle
1.) Operationsteil
2.) Operandenteil (z.B. Adressen, Konstanten)
Programmstatus (Flag / Statusregister)
Operation
Adresse
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
12
-
in einem Register oder in spezieller Speicherstelle
gibt Informationen über das Ergebnis der Operation z.B. Bedingungen > = < positiv, Null, negativ; Richtung von
Zeichenkettenoperationen, Verzweigungen; sonstige Infos wie Unterbrechung, Überlauf, Übertrag
4.2.2.2 Operationssteuerung
1.) Funktionsbitsteuerung (Bits des Operationsteils am Befehlsregister werden direkt für Steuersignale verwendet. Nur
so viele Steuersignale möglich wie Bits im Operationsteil!)
2.) Kodierte Steuerung (über einen Decodierer wird Operationsteil in Steuersignale umgesetzt. Aus n Bits
Operationsteil können 2n Steuerfunktionen erzeugt werden.)
–schnell, nicht so flexibel wie Mikroprogrammsteuerung
3.) Mikroprogrammsteuerung (Bits des Operationsteils werden als Adresse auf den Anfang eines Mikroprogramms im
Mikroprogrammspeicher interpretiert. Die Bits der einzelnen Mikrobefehle werden direkt in Steuersignale
umgesetzt.)
– Mikrocode kann eventuell auch geändert werden (Nachbildung alter Architekturen auf modernen Anlagen:
Emulator; dynamische Anpassung während der Laufzeit auf Programm)
Schaltung Steuerwerk
Datenbus
8
BR
OT
10
BZ
BA
AT
Adressbus
7
+1
11
9
11 10 9 8 7
L
START
STOP
T
OE
BB
ZS
BD
Spru
Sprb
OA
...
1 aus n
BR
OT
AT
BZ
BA
BD
ZS
Spru
Sprb
L
START
STOP
T
OE
BB
zum RW bzw.
Operationssteuerungen
Befehlsregister
Operationsteil
Adressteil
Befehlszähler
Befehlsadresse
Befehlsdecoder
Zentrale Steuerschleife
Sprung unbedingt
Sprung bedingt
Lesen (an Speicher)
Start Signal
Stop Signal
Takt
Operationsende
Bedingungsbit
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
13
OA
RW
Operationsart
Rechenwerk
Schaltung Zentrale Steuerschleife
T
Spru Sprb
SR
L
c
S
T
&
1
&
11
1
R
a
b
BB
7
S
+1
d
8
e
9
R
T
&
10
f
g
& SE
1
&
1
&
OE
SR
T
Spru
Sprb
L
BB
OE
SE
a-g
7-11
-
-
STOP START
Schieberegister (bei jedem Takt werden das über a eingetragenen Bit in Richtung g geschoben)
Taktleitung
unbedingter Sprung
bedingter Sprung
Lesen
Bedingungsbit
Operationsende
Sprungende
die 7 mindestens benötigten Takte für einen Steuerschleifendurchlauf
Tore (Gate)
Signal Start, einen Takt lang, startet Steuerung
Signal Operationsende OE kommt von Operationssteuerungen, wenn diese beendet sind
oder
Signal Steuerungsende SE kommt bei Sprungbefehlen von Zentraler Steuerschleife, wenn diese beendet ist
-> wodurch ein neuer Zyklus eingeleitet wird, falls kein Signal Stop anliegt
die RS-Flipflops speichern die Sprungsignale Spru und Sprb in Takt 5 bis sie beim Takt 1 wieder rückgesetzt
werden
Operationssteuerungen sind nicht dargestellt!!
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
14
Tabelle 2 Takte unbedingter Sprung
Takt
geöffnete
Tore
7
8
abgegebene Funktion
Darstellung
Signale
1
L
Befehl "Lesen" an Speicher
2
Befehlsadresse an Speicher
<AR>:=<BA>
3
warten auf Speicher
4
+1
neuen Befehl in Befehlsregister
<BR>:=<DR>
Befehlsadresse erhöhen (nicht notwendig)
5
9
Spru
Operationsart aus Operationsteil des Befehls in
<BD>:=<BR>
Befehlsdecoder dekodieren
-> ist Sprungbefehl
6
11
Adressteil des Befehls in Befehlsadressregister
<BA>:=<BR>
übertragen
7
SE
Sprungende
bedingter Sprung: auswerten des BB-Signals vom Rechenwerk in Takt 6 um Tor 11 zu schalten oder nicht
Tabelle 3 Takte Befehl an Rechenwerk z.B. Addition
Takt
1
2
3
4
geöffnete
Tore
7
8
5
9
6
7
10
abgegebene Funktion
Signale
L
Befehl "Lesen" an Speicher
Befehlsadresse an Speicher
warten auf Speicher
+1
Befehl in Befehlsregister
Befehlsadresse um 1 erhöhen
OA
Operationsart aus Operationsteil des Befehls in
Befehlsdecoder dekodieren
->Signal zu entsprechender Operationssteuerung z.B.
Addition
Leertakt
Adressteil des Befehls auf Adressbus legen z.B. für
Adresse zweiter Operand für Addition
Darstellung
Operationssteuerung Addition
Operand ist in AC bzw. HR geladen
Ergebnis wird wieder an AC bzw. HR ausgegeben
Signal OE bestätigt Ende der Addition
Tabelle 4 Takte Operationssteuerung Addition
Takt
1
2
3
4
5
6
geöffnete
Tore
12
16,17
7 bis X
X+1
19
X+2
14
abgegebene Funktion
Signale
warten auf Steuerschleife (muss Adresse anlegen)
L
Befehl "Lesen" an Speicher
warten auf Speicher
warten auf Speicher
Daten aus Speicher in Extraregister
Daten aus HR und ER in Addiervorrichtung
OE
warten auf AV
Ergebnis in AC aufnehmen
Ergebnis in HR
Ende melden
Darstellung
<ER>:=<DR>
X1:=<HR>
X2:=<ER>
<AC>:=Y
<HR>:=<AC>
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
15
Schaltung Operationssteuerung Addition
OA
T
SR
a
b
L
c
d
e
f
12
16
g
17
...
h
i
19
14
OE
SR
OA
OE
Schieberegister (bei jedem Takt werden das über a eingetragenen Bit in Richtung g geschoben)
Operationsart (in diesem Fall Addition) vom Steuerwerk
Operationsende ans Steuerwerk
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
16
4.2.3 Speicherorganisation
SM
AD
A
0000000000 (=0)
0000000001
0000000010
0000000011 (=A)
0000000100
.
.
.
AT
1 aus
Amax+1
1111111110
1111111111 (=Amax)
LV
2
AR
0000000011
ST
3
123456
DR
HSS
T
1
6
4
5
1
L
S
Datenbus
Adressbus
SW RW
AR
DR
ST
LV
HSS
AD
AT
A
T
SW
RW
L
S
RW
Adressregister
Datenregister
Schreibtreiber
Lesevorrichtung
Hauptspeichersteuerung
Adressdecoder (Demultiplexer)
Adresstreiber
Adressen
Takt
Steuerwerk
Rechenwerk
Lesen
Schreiben
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
17
Hauptspeichersteuerung
SR
T
1
e
3
f
1
2
g
1
5
h
&
4
L
S
T
R
&
S
6
SR
Schieberegister (bei jedem Takt werden die über e eingetragenen Bit in Richtung h geschoben)
e,f,g,h die vier benötigten Takte für einen Speicherzugriff
1-6
Tore (Gate)
Tabelle 5 Hauptspeicher lesen
Takt
1
2
3
4
geöffnete Tore Funktion
1
in Adressregister die Adresse übernehmen
2,3
in Datenregister Inhalt der Adresse übernehmen
Daten werden eventuell zerstört
4,6
gelesene Information entnehmen oder
Informationen einschreiben in Datenregister
2,5
Daten aus Datenregister werden zurück in Speicher
geschrieben
Darstellung
<AR>:=Adr
<DR>:=<<Adr>>
<Adr>:=000...00
IL:=<DR> <DR>:=IS
<Adr>:=
<Adr>:=<DR>
- Zykluszeit tZykl: gesamte Speichervorgangszeit ->4 Takte
- Zugriffszeit tZ: von anlegen der Adresse bis Daten bereitstehen -> 3 Takte
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
18
4.2.4 Das Ein-/Ausgabeinterface eines PCs
4.2.4.1 IO-Adressen
64k (65536) Portadressen für Geräte, Zähler, Zeitgeber die mit dem IN und OUT-Befehl angesprochen werden können.
Die ersten 256 Port können direkt im Befehl angegeben werden, die anderen Adressen müssen im DX Register stehen.
Ziel bzw. Quelle der Daten ist das AX-Register. Auch als Memory-mapped-I/O bzw. programmed-I/O (PIO Modes der
Festplatten) bezeichnet.
4.2.4.2 Interruptsystem
•
•
•
•
Interruptrequest (IRQ) von Gerät (auch Prozessor) fordert Unterbrechung des aktuell ablaufenden Programms
Interrupt-Controller leitet IRQ als Interrupt (INT) an Prozessor
Prozessor setzt Arbeit fort an zugehöriger Interruptadresse aus Interrupttabelle
Interrupttabelle wird von BIOS und BS vorinitialisiert, kann aber auch von Programmen überschrieben werden
Interruptauslöser:
•
Hardwaregesteuerte Interrupts: Signale InterruptRequest, Nicht Maskierbarer Interrupt
•
Programmgesteuerte Interrupts: Befehle INTOverflow, INTn
•
Prozessorinterne Interrupts: DIV0, Einzelschritt ...
Interruptvectortabelle enthält 256 32bit Adressen für die Interruptbehandlungsroutinen. Treten mehrere Interrupts
gleichzeitig auf, wird entsprechend der festgelegten Priorität abgearbeitet und die aktuelle Interruptbehandlung ggf.
unterbrochen.
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
19
Adr.
Hauptspeicher
...
Aktuelles Programm
CPU
Interner
Interrupt
7.
...
Tastaturbehandlungsroutine
Befehl
INTn
6.
Interruptlogik
...
INT
Nr.
255
...
77
76
75
74
73
72
71
70
...
21
...
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
3FC
...
1DC
1D8
1D4
1D0
1CC
1C8
1C4
1C0
...
084
...
3C
38
34
30
2C
28
24
20
1D
18
14
10
C
8
4
0
...
Frei
...
IRQ15:
IRQ14: Festplatte
IRQ13: Coprozessor
IRQ12:
IRQ11:
IRQ10:
IRQ09:
IRQ08: Echtzeituhr
...
DOS
...
IRQ7: Drucker
IRQ6: Diskette
IRQ5: Festplatte
IRQ4: COM1
IRQ3: COM2
IRQ2: zweiter INT-Contr.
IRQ1: Tastatur
IRQ0: Timer (18,2 mal/s)
reserviert
unbekannter Befehl
Hardcopy
CPU: num. Überlauf
CPU: Breakpoint
CPU: NMI (RAM Fehler)
CPU: Einzelschritt
CPU: Division durch 0
3.
NMI
6a.
Interruptcontroller
(2 kaskadierte)
5.
...
2.
Tastaturcontroller
IO-Adressen
060h: Scancode
064h: Status
1.
Abbildung 4 Interruptaufruf am Beispiel Tastatur
4.2.4.3 DMA-Controller
Daten können zwischen Geräten und Speicher sowie zwischen Speicher und Speicher ohne die CPU ausgetauscht
werden. Die Startadressen und die Größe der zu übertragenden Daten müssen programmiert werden.
•
PC: (third-party-DMA) 43 Byte Zwischenspeicher, 2 kaskadierte Controller, je 4 Kanäle, z.B. für LPT im ECPMode, Soundkarten, Festplatten (DMA Modes)
•
Einige Geräte haben eigene DMA Controller (first-party-DMA) z.B. PCI-Geräte im Bus-Mastering-Mode,
Festplatten (UltraDMA Modes)
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
20
Tabelle 6 DMA Kanäle 16 BIT ISA, EISA, & MCA BUS
Kanal
DMA CONTROLLER #1
0
1
2
3
DMA CONTROLLER #2
4
5
6
7
Funktion
Dynamic Memory Refresh
Unassigned oder SDLC
Floppy Disk Controller
Unassigned
First DMA Controller
Unassigned
Unassigned
Unassigned
4.2.5 Spezialprozessoren
Grafikprozessoren
Gleitkommaprozessoren (Floating Point Unit)
MMX und 3DNow!
4.2.6 Maßnahmen zur Steigerung der Performance
Zugriffszeit
Kosten pro Bit
Register
Cache
Hauptspeicher
Festplatten etc. (auch virtueller Speicher)
Bandlaufwerke etc.
Speicherkapazität
Abbildung 5 Speicherpyramide
4.2.6.1 Prefetch
•
•
vorausladen von Befehlen
durch Sprünge wird sequentielle Abfolge unterbrochen ->Prefetch-Queue muss geleert und neu geladen werden!
4.2.6.2 Sprungvorhersage (Branch Prediction)
siehe weiter unten (Pipeline-Architektur)
4.2.6.3 Register
•
•
Spezialregister die besonders effektiv bestimmte Befehle ausführen
Anzahl Register erhöhen um Zwischenergebnisse erneut zu verwenden
4.2.6.4 Cache
•
•
•
•
mehrere Level (1-n)
oft getrennter Instruktion- und Datencache auf Level 1
auf Prozessor-Chip oder extra Speicherbausteine
durch schnellen SRAM und des Zugriffsverfahren schneller als Hauptspeicher
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
21
Beispiel eines direkt abgebildeten Cache (direct mapped) mit 2048 Einträgen und 32 Byte Cachezeilengröße->64kByte
Cache
Eintrag
2047
...
7
6
5
4
3
2
1
0
Valid
(1bit)
Tag
(16bit)
Data
(32 Byte)
...
...
...
1
1
Adressen, die den Eintrag benutzen
65504-65535, 131040-131071, ...
...
D0 10
...
AA
96-127, 65632-65663, 131168-131199, ...
64-95, 65600-65631, 131136-131167, ...
32-63, 65568-65599, 131104-131135, ...
0-31, 65536-65567, 131072-131103, ...
Das Valid-Bit gibt an, ob die Daten der Zeile gültig sind.
Der Cache wird adressiert durch LINE (die Eintragsnummer), TAG (ist es der korrekte Speichereintrag), WORD (das
32bit-Wort in der Zeile) und ggf. BYTE (wenn auf nur ein Byte im Wort zugegriffen werden soll). Dadurch kann sofort
auf die Daten zugegriffen werden, falls kein Cache-Miss auftritt.
16Bit (64KByte Speicherblock)
TAG
TAG
65535
...
1
11Bit (2048 Zeilen)
LINE
LINE
2047
....
2047
...
1
4 GByte
0
0
2047
...
0
Speicherinhalt
A0
...
00
...
...
AA
...
10
D0
...
01
00
FD
...
...
00
..
34
FF
3Bit (8 Worte)
WORD
2Bit (4Byte)
BYTE
Phys. Adresse
4294967295
...
...
65599
...
65569
65568
...
65535
65534
65533
...
...
31
...
1
0
Cache-Miss (Fehlschlag): ganze Zeile (im Beispiel 32Byte) werden aus Hauptspeicher gelesen.
Teilassoziative Cache kann man sich als mehrere parallele Caches vorstellen (oft 2 oder 4-Wege). Dadurch können auch
bei gleicher Position im Speicherblock (TAG) Werte mehrerer Blöcke im Cache gehalten werden. Es wird aber mehr
Zeit benötigt, da mehrere TAG-Vergleiche stattfinden müssen und auch bei Cache-Miss muss durch eine Strategie (z.B.
LRU) festgelegt werden, welche LINE gelöscht wird. Voll-assoziative Cache können beliebige Zeilen parallel ablegen,
werden aber durch die aufwendigen TAG-Vergleiche nicht eingesetzt.
4.2.6.5 RISC
•
•
•
•
geringe Taktzahl pro Befehl (möglichst 1) durch Nutzung von fest verdrahteten Schaltungen statt Mikrocode
geringe Anzahl Befehle
hohe Anzahl Register
Heute: Mischformen z.B. Pentium
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
22
4.2.6.6 Parallelität
Design Kriterien
1.) In welchem Bereich liegen Art, Größe und Anzahl der Verarbeitungselemente (CPU)?
2.) In welchem Bereich liegen Art, Größe und Anzahl der Speichermodule (HS)?
3.) Wie sind die Verarbeitungs- und Speicherelemente zusammengeschlossen (Verbindungsnetz)?
Welche Aufgabe soll gelöst werden:
Tabelle 7 Ebenen der Parallelarbeit in von-Neumann-Sprachen
Programmebene
Benutzerprogramme (Jobs)
Prozesse (Tasks)
Anweisungen (Threads)
Elementaroperationen
Kennzeichnung
mehrere Jobs werden gleichzeitig ausgeführt
mehrere Prozesse laufen konkurrent ab
mehrere Anweisungen eines Programms werden
gleichzeitig ausgeführt
mehrere Operationen eines zusammengesetzten
Ausdrucks werden gleichzeitig ausgeführt
Parallelitätsgrad
niedrig
hoch
niedrig bis hoch
niedrig
mehrere Tasks parallel
eine Task parallel -> Threads, optimierte Anweisungen
Unterstützung durch Programmiersprache, Compiler, Laufzeitsystem, Betriebssystem, Hardware oder spezielle
Programmierung der Anwendung
auf Instruktionsebene: Pipeline-Design, superscalare Architekturen
auf Prozessorebene: Mehrprozessorsysteme (mehrere Prozessoren, gemeinsamer HS)
- teuer, schwer zu bauen
- einfach zu Programmieren (Betriebssystem)
auf Rechnerebene: Mehrrechnersysteme (mehrere Prozessoren mit eigenem HS)
- billig, einfach zu bauen
- komplexe Programmierung (netzwerkweites Betriebssystem, verteilte Verarbeitung z.B. Corba)
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
23
4.3
Kommerzielle Prozessoren
4.3.1 Intel
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
24
Tabelle 8 80x86 Register nach [Messmer]
Register
Bezeichnung
Aufgabe
[E]AX (AH,AL)
Akkumulator
Multiplikation/Division, I/O, schnelle Verschiebung
[E]BX (BH,BL)
Base
Zeiger auf Basisadresse im Datensegment
[E]CX (CH,CL)
Counter
Zählwerte für Wiederholen, Verschieben, Rotieren
[E]DX (DH,DL)
Daten
Multiplikation, Division, I/O
[E]BP
Base-Pointer
Zeiger auf Basisadresse im Stacksegment
[E]SI
Source-Index
Quellzeichenkette und Indexzeiger
[E]DI
Destination-Index
Zielzeichenkette und Indexzeiger
[E]SP
Stack-Pointer
Stackzeiger
CS
Codesegment
Segment der Befehle
DS
Datensegment
Segment der Daten
SS
Stacksegment
Segment des Stack
ES
Extrasegment
frei verwendbares Segment
FS
"
"
GS
"
"
[E]IP
Instruction-Pointer
Offset der Befehle
[E]Flags
Flags
Indikatoren für Prozessorstatus und Operationsergebnisse
[E] ab 80386 als 32bit-Register, FS und GS ab 80386
Flag
C
P
A
Z
S
T
I
D
O
IOP
N
R
V
µP
Bezeichnung
Carry (Übertrag)
Parity
Auxiliary Carry
Zero (Null)
Sign (Vorzeichen)
Trap (Einzelschritt)
Interrupt Enable
Direction (Richtung)
Overflow
I/O-Protection Level
Nested Task
Resume
Virtual 8086
286
286
386
386
Aufgabe
Übertrag bei einer Bereichsüberschreitung
Ergebnis weist gerade Zahl Einsen auf
Übertrag bei Bereichsüberschreitung der unteren 4 Bit (BCD-Zahlen)
Ergebnis ist Null
höchstwertiges Bit (nur bei vorzeichenbehafteter Arith. sinnvoll)
nach jedem Schritt wird Int1 ausgelöst (Debuggen; mit POPF setzen)
Prozessor akzeptiert HW-IRQ (CLI, STI löschen und setzen Bit)
Richtung für Stringoperationen wie MOVS
Ergebnis zu groß
2bit für Angabe der minimalen Schutzebene (von OS verwaltet)
überwacht unterbrochene Tasks
Debug-Tasks deaktivieren
virtueller Mode aktiv (wie mehrere 8086 Realmode)
Realmode-Adressberechnung
Der 8086 teilt seinen Speicher in Segmente auf. Die 20 Adressleitungen können max. 220Byte= 1MByte Speicher
adressieren. Ein Register ist 16bit lang und kann somit nur 216Byte=64kByte adressieren. Daher wird eine Aufteilung
der Adresse auf zwei Register, Segment- und Offsetregister, notwendig. Damit ergebe sich ein Adressraum von
64k*64k=4GByte. Da beim 8086 nur 1MByte möglich war, wurde eine 16Byte Verzahnung für die Segmente
eingeführt.
Bsp:
die Adressangabe 1FB1:02AD bedeutet Segment 1FB1, Offset 02AD
damit ergibt sich die absolute Hauptspeicheradresse
1FB1h * 16 + 02ADh = 8113 * 16 + 685 = 130493
Virtualmode
Protectedmode
8086, 286, 386+387,486, Pentium,Pentium II,Pentium III, Celeron, Pentium 4, XEON, Titanium
4.3.2 Weitere Prozessoren
AMD K6, K6 II + 3DNow!, K6 III, K7 Athlon, Duron, Athlon XP
IBM Power-PC
DEC Alpha
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
25
4.3.3 Hauptspeicher
Tabelle 9 Speichertypen
Typ
Standard (Fast Page Mode) RAM
VRAM (Video RAM; auch Volatile
RAM)
WRAM (Windows RAM)
CMOS-RAM
PRAM (Parameter RAM)
EDO-RAM (Extented Data Out
DRAM)
SDRAM (Synchronous DRAM)
DDR-SDRAM (Double Data Rate
SDRAM)
DRDRAM (Direct RAMBUS
DRAM)
Beschreibung
Single Port; langsam
schnell; gleichzeitige Lese- und Schreibzugriffe (Dual
Port); für Grafikkarten
25% schnellerer VRAM der Daten in Blöcken (Windows)
holt
durch Batterie mit Strom versorgt, daher kein
Datenverlust beim Ausschalten; PRAM ist Begriff von
Apple, CMOS-RAM bei PCs
verbesserter DRAM; 5-20% höhere Bearbeitungsgeschwindigkeit durch nächsten Speicherzugriff, wenn
vorheriger Zugriff noch nicht abgeschlossen ist
arbeitet synchron zum Prozessortakt (Burst-EDOSDRAM Technologie)
doppelte Übertragungsrate von SDRAM (Übertragung
bei steigender und fallender Flanke)
hohe Taktraten; eigenes Bussystem; nutzt steigende und
fallende Flanke
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
26
Tabelle 10 Speichermodultypen
Modultyp
DIP (Dual Inline Package)
Chip
SIP-Modulen (SingleInline-Package)
SIMM (Single Inline
Memory Module)
Beschreibung
die Gehäuse der Chips haben kleine Beinchen, sogenannte Pins, mit denen sie
in den jeweiligen Sockel auf dem Motherboard eingesetzt werden
Module mit einzelnen Pins (Drähten); veraltet
Kontaktleisten mit 30 oder 72 Pins; jede Seite hat die gleichen Kontakte
DIMM (Dual Inline Memory 168 pins, unterstützt 64 bit Speicheradressen
Module)
RIMM (Rambus Inline
Memory Module)
eingetragenes Warenzeichen von RAMBUS, ähnlich DIMM, andere PINBelegung
DRAM-Bausteine werden als Chip oder als Modul eingesetzt. Bei letzteren sind mehrere
Chips zusammengefasst.
Bei der Kennzeichnung der RAM-Bausteine wird hinter dem Bindestrich die Zugriffszeit
angegeben. Ihre Maßeinheit sind Nanosekunden.
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
27
5 Klassifikation
5.1
Nach Flynn
Anzahl (Single, Multi) der Befehle(Instructions) und Daten (Data)
Variante
Beispiel
SISD
Intel 286
SIMD
Vektorrechner, StreamingSimdExtension, MultiMediaeXtension, 3D Now
MISD
sinnlos
MIMD
Parallelrechner
5.2
Umfassendere Klassifikationen
Parallele Rechnerarchitektur
SISD
(von-Neumann)
SIMD
Vektorprozessoren
MISD
?
Arrayprozessoren
Multiprozessoren
UMA
Bus
MIMD
COMA
Switch
Mehrcomputer
NUMA
CC-NUMA
NC-NUMA
MPP
Gitter
COW
Hyperwürfel
Abbildung 6 Taxonomie paralleler Computer [Tanenbaum99]
5.3
Wieso Supercomputer/parallele Systeme?
- viele wissenschaftliche Probleme sind sehr komplex (Mathematik/Physik/Chemie...)
- viele technische Probleme sind zeitaufwendig (Simulationen/Festigkeitsberechnungen...)
- viele kommerzielle Probleme mit großen Datenmengen die z.B. suchen/sortieren/analysieren im Datawarehouse
5.4
•
•
Pipeline-Architektur
ist ein Befehl in einer Stufe der zentralen Steuerschleife/Mikrocode abgearbeitet, kann der nächste Befehl
"nachrücken", so das eine "Pseudo"-Parallelität entsteht, die im optimalen Fall pro Takt einen Befehl fertig
abgearbeitet hat
z.B. Athlon: 10 stufige Integer, 15 stufige Gleitkomma; Pentium III: 10 stufig ;Pentium 4: 20 stufig
Tabelle 11 5-stufige Pipeline
Instr. 1
Instr. 2
Instr. 3
Instr. 4
Instr. 5
IF
ID
EX
MEM
WB
IF
ID
IF
EX
ID
IF
MEM
EX
ID
IF
Instruction Fetch (Befehl aus Hauptspeicher holen)
Instruction Decode (Befehl dekodieren)
Execution (Befehl ausführen)
Memory Load/Store (HS<->Register)
Writeback (Ergebnisse zurückschreiben)
WB
MEM
EX
ID
IF
WB
MEM
EX
ID
WB
MEM
EX
WB
MEM
WB
Zeit
Problem:
• es müssen Zwischenpuffer zwischen den einzelnen Stufen eingeführt werden (vorhergehende Stufe kann nicht
gleichzeitig in ein Register schieben wenn nächste Stufe Register liest)
Lösung:
• die Pipeline kann nicht mit beliebig hoher Stufenzahl implementiert werden
Problem:
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
28
• nicht alle Stufen und Befehle benötigen gleiche Taktzahl zur Ausführung
Lösung:
• durch getrennte Pipelines für verschiedene Befehle (superscalare Arch.)
• optimale Wahl der Pipelineaufteilung
Problem:
• nur theoretische Annahme das Code sequentiell abläuft
unbedingter Sprung
• nächster Befehl im Hauptspeicher, der Sprungbefehl folgt, ist nicht der, der als nächstes ausgeführt werden muss
• das es ein Sprungbefehl ist, ist erst nach Instruction-Decode-Stufe der Pipeline bekannt
bedingter Sprung
• wird gesprungen oder nicht?
Konsequenz: Pipeline muss durch NOP (not operation) vorhergehende Stufen leer laufen lassen
Lösung: Sprungvorhersage
Variante 1:
• allgemeine Annahmen, das bedingte Sprünge rückwärts im Speicher von Schleifen stammen und daher meist
ausgeführt werden; bedingte Sprünge nach vorn im Speicher von Fehlerbehandlungen stammen und daher selten
ausgeführt werden
• der voraussichtlich nächste Befehl an dieser Adresse wird in Pipeline geladen und ausgeführt, war die
Entscheidung falsch muss die Pipeline neu geladen werden
1
2
3
4
5
6
7
8
•
•
Sprungbefehl 3 wird als Schleife
angenommen und daher als
nächstes Befehl 1 in Pipeline
geladen
Sprungbefehl 5 wird als
Fehlerbehandlung angenommen
und daher Befehl 6 in Pipeline
geladen
Variante 2:
• dynamische Sprungvorhersage durch speichern
- der Adresse schon einmal ausgeführter Sprungbefehle und
- ob der Sprung ausgeführt wurde
in einer Branch-History-Table (spezieller Cache)
• wird ein Sprung decodiert, wird in der Branch-History-Table nach ihm gesucht und der nächste Befehl
entsprechend der Kennzeichnung in die Pipeline geladen
• für noch nicht gespeicherte Sprünge gilt Variante 1
Gültig
Sprung/keinSprung
Sprungbefehlsadresse/Tag
Sprungzieladresse
(für berechnete Zieladr. notw.)
1 A300
1 A310
1 AB00
0 A310
Variante 3:
• statische Sprungvorhersage durch Compiler/Programmierer der mit speziellen Sprungbefehlen häufigste
Sprungdurchführung der CPU vorgibt
• auch durch Simulationen ermittelbar
weiter Varianten...
5.5
Superscalare Architektur
•
•
mehrere Ausführungseinheiten arbeiten parallel
z.B. Pentium III: 2 Integer Einheiten, 2 Gleitkomma Einheiten
Athlon: 3 Integer Einheiten, 2 Gleitkomma Einheiten
Problem:
Datenabhängigkeiten:
1. eine Operation nutzt Ergebnisse einer anderen Operation (Regel: ReadAfterWrite)
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
29
2.
eine Operation versucht ein Register zu überschreiben, was eine vorige Operation noch liest (Regel:
WriteAfterRead)
3. eine Operation versucht ein Register zu überschreiben, was eine vorige Operation noch schreibt (Regel:
WriteAfterWrite)
mögliche Lösungen
• eigene Register pro Einheit mit internem umbenennen der Register (Register Renaming) für 2. und 3.
• umordnen der Operationen durch Compiler oder Prozessor (reorder)
5.6
Vectorprozessoren
z.B. Gray T90
für Verarbeitung von Vektoren z.B. for (i=0;i<n;i++) a[i]=b[i]+c[i]
Eingabevektoren
VektorALU
5.7
Arrayprozessoren
z.B. Thinking Machines MP-2
für die Verarbeitung von Feldern (z.B. Matrizenberechnungen, Bildbearbeitung)
5.8
HS
HS
HS
ALU
ALU
ALU
HS
HS
HS
ALU
ALU
ALU
Befehlseinheit
Mehrprozessormaschinen
UMA (Uniform Memory Architecture)
jede CPU bekommt gleiche Zeit für HS Zugriff
Ausprägung: SMP (symmetr. Multiprozessor) gleichartige Prozessoren werden gekoppelt
z.B. SUN Enterprise 10000 (64 CPUs)
NUMA (NonUniform Memory Architecture)
Zugriff auf entfernten Speichern (auch lokaler Speicher einer entfernten CPU) ist langsamer als auf lokalen
Speicher; wird aber dennoch mit LOAD und STORE abgewickelt
ein gemeinsamer Adressraum
COMA (Cache Only Memory Architecture)
lokaler Speicher wird als Cache aufgefasst
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
30
Problem beim Cache: mehrere Caches aber ein gemeinsamer HS
Lösung: MESI-Cache-Konzept definiert vier Zustände jedes Cache-Eintrages
1. Modified : Cachezeile gültig, Speicher ungültig, keine Kopien
2. Exclusiv : Cachezeile in einem Cache, aktuell
3. Shared (Geteilt): Cachezeile in mehreren Caches, aktuell
4. Invalid (Ungültig): Cache hat keine gültigen Daten
(wird bei PC-Multiprozessormaschinen eingesetzt)
5.9
Mehrrechnersysteme
• Nachrichtenaustausch statt LOAD und STORE um Daten auszutauschen
MPP (Massiv Parallele Prozessoren)
viele CPUs über Hochgeschwindigkeits-Verbindungsnetz gekoppelt
z.B. CRAY T3E (2048 CPUs), DEC Alpha 21164, IBM SP/2
COW (Cluster Of Workstations) bzw. NOW (Network Of Workstations)
viele Rechner über Netzwerk gekoppelt
bei Cluster wird ein gemeinsames Festplattenarray genutzt
5.10 Innovative Architekturen
Datenflussgetriebene Architekturen
• komplexe Datentypen von Prozessor unterstützt
• assoziative Speicher -> Daten werden anhand von "Variablennamen" erkannt und nicht durch Adresse im
Hauptspeicher
• Variablen können als nur-lese, einmal-benutzbar und ähnliches definiert werden
Spracharchitekturen (Prozessor ist für die Sprache optimiert bzw. kann die Hochsprachenbefehle direkt verarbeiten)
• Lisp
• Prolog
• FORTRAN
• Java
ungetaktet (jede "Baugruppe" optimale Geschwindigkeit, "Baugruppen" müssen gekoppelt werden)
Licht (schnelle Schaltelemente, teilweise mit Farbstoffen, z.B. für Netzwerke)
Bio-Computer (Nervenzellen, DANN
Quantencomputer (Molekülkette verarbeiten parallele Algorithmen z.B. Kryptografie, Sortier- und
Suchalgorithmen)
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
31
6 Assembler
6.1
Was ist Assembler?
1.) Assemblerprogramm
Tabelle 12 Tools für Assemblerprogrammierung
Programme
Editor
Assembler
Linker
Lader
Debugger/Simulator
Beispiele
WordPad
TASM
TLINK /t
MSDOS
TD
Ausgabe
*.asm
*.obj
*.exe, *.com, *.dll
Prozess/Task
Register/Speicherinhalt/schrittweise Befehle
2.) Assemblersprache
Quelldarstellung von Zielanweisungen der Ebenen:
1. Executive des Betriebssystems (z.B. Interrupts, DLL-Aufrufe)
2. konventionelle Maschinenebene (Maschinenbefehle)
zwei Klassen von Anweisungen:
1. ausführbare Anweisungen (Befehle z.B. JMP, MOV, ADD)
2. Pseudokommandos (z.B. ORG, DB, DW, IF, Marken )
Format einer Assembler-Sprache
[Marke:] Operation [Operanden]n [;Kommentar]
Intel
Motorola
DEC
Zielop./Quellop.1 Quellop.2
Quellop.2 Quellop.1/Zielop.
Quellop.2 Quellop.1/Zielop.
Quellop.2 Quellop.1 Zielop.
A:=A+B (Quellop.1 wird Zielop.)
A+B=B
A+B=B (bei zwei Adressen)
A+B=C (bei drei Adressen)
Abbildung 7 Operandenformate
6.2
Wieso Assembler?
durchschnittlich 5-10 Assembleranweisungen für eine Hochsprachenanweisung notwendig
1% des Programms für 50% der Ausführungszeit verantwortlich
10% des Programms für 90% der Ausführungszeit verantwortlich
Assembler ca. 2-3 mal schneller als Hochsprache
für Prozessautomatisierung / Echtzeitanforderungen
für E/A-Operationen
für Performancesteigerungen / Programmoptimierung
Einbettung in Hochsprachen
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
32
6.3
Assembler für Intel-Prozessoren
Grundstruktur COM-Programm (max. 64kByte) im Hauptspeicher (.MODEL TINY)
SI
Stacksegment
Datensegment
Entspricht der
COM-Datei
z.B. BP
Codesegment
IP
CS=DS=SS
Program Segment Prefix
100h groß
Zugriff auf Register (AX, BX, ... Flags)
Zugriff auf den Speicher (MOV)
Adressraum 8086:
20 Adressleitungen = 220 Bit = 1MByte
16bit Register
Adresse=16*Segment+Offset
Zugriff auf Ports (IN, OUT)
Sprünge (JMP, JNZ, JZ...)
Stackoperationen (PUSH, POP)
DOS-Aufrufe (INT)
Macros
6.4
Übung
doskey /i
tasm datei
tlink /t datei
td datei
debug datei
Befehl
ADD
MOV
DEC
DIV
OUT
INT
JMP
JNZ
Tastaturzeilenpuffer /i Insertmodus
Turbo Assembler (in G:\sprachen\bp\bin) auch dpmi*.*!!
/t für Tiny = .COM-Programm
Turbo Debugger
u unassemble d display h? help
Verwendung
Beispiel
Takte
8086
3
10
3
80-90
10
51
15
16
Takte
Pentium
1
1
1
17
12
16
1
3
Addition
ADD AX,03h
Verschieben
MOV AL,Variable
Dekrementieren
DEC AH
ganzzahlige Division
DIV BL (AL ist implizit!)
an Port ausgeben
OUT 034h,AL
Interrupt auslösen
INT 21h
unbed. Sprung
JMP ShortLabel
bed. Sprung (Jump NON
JNZ ShortLabel
ZERO)
CMP
vergleicht zwei Werte
CMP al, cl
IN
liest Wert von Port
IN AL,034h
die Taktangaben gelten nur bei optimalen Bedingungen d. h. keine Pipelineunterbrechung, Befehl ist dekodiert usw.
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
33
Beispiel: Addition zweier Zahlen
.model TINY
.DATA
A DB 03h
B DB 02h
C DB (?)
.CODE
.STARTUP
start: MOV BL,B
MOV AL,A
ADD AL,BL
MOV C,AL
.EXIT
END Start
;NEAR Aufrufe festlegen für COM-Programme
;Datensegment definieren
;A mit dem Bytewert 3 belegen
;B mit dem Bytewert 2 belegen
;C als undefinierte Variable belegen
; Codesegment-Anfang
; ORG 100h Befehl für PSP
;Register BL mit Daten aus B laden
;Register AL:=AL+BL
P:\ASSEMB~1>tasm test1
P:\ASSEMB~1>tlink /t test1
P:\ASSEMB~1>debug test1.com
-d
1E6A:0100 8A 1E 11 01 A0 10 01 02-C3 A2 12
1E6A:0110 03 02 00 2D E8 32 00 73-12 83 C7
-r
AX=0000 BX=0000 CX=0013 DX=0000 SP=FFFE
DS=1E6A ES=1E6A SS=1E6A CS=1E6A IP=0100
1E6A:0100 8A1E1101
MOV
BL,[0111]
-p
AX=0000 BX=0002 CX=0013 DX=0000 SP=FFFE
DS=1E6A ES=1E6A SS=1E6A CS=1E6A IP=0104
1E6A:0104 A01001
MOV
AL,[0110]
-p
AX=0003 BX=0002 CX=0013 DX=0000 SP=FFFE
DS=1E6A ES=1E6A SS=1E6A CS=1E6A IP=0107
1E6A:0107 02C3
ADD
AL,BL
-p
AX=0005 BX=0002 CX=0013 DX=0000 SP=FFFE
DS=1E6A ES=1E6A SS=1E6A CS=1E6A IP=0109
1E6A:0109 A21201
MOV
[0112],AL
-p
AX=0005 BX=0002 CX=0013 DX=0000 SP=FFFE
DS=1E6A ES=1E6A SS=1E6A CS=1E6A IP=010C
1E6A:010C B44C
MOV
AH,4C
-p
AX=4C05 BX=0002 CX=0013 DX=0000 SP=FFFE
DS=1E6A ES=1E6A SS=1E6A CS=1E6A IP=010E
1E6A:010E CD21
INT
21
-p
Programm normal beendet
-d 0100
1E6A:0100 8A 1E 11 01 A0 10 01 02-C3 A2 12
1E6A:0110 03 02 05 2D E8 32 00 73-12 83 C7
-q
01 B4 4C CD 21
03 FE C8 75 F1
.............L.!
...-.2.s......u.
BP=0000 SI=0000 DI=0000
NV UP EI PL NZ NA PO NC
DS:0111=02
BP=0000 SI=0000 DI=0000
NV UP EI PL NZ NA PO NC
DS:0110=03
BP=0000 SI=0000 DI=0000
NV UP EI PL NZ NA PO NC
BP=0000 SI=0000 DI=0000
NV UP EI PL NZ NA PE NC
DS:0112=00
BP=0000 SI=0000 DI=0000
NV UP EI PL NZ NA PE NC
BP=0000 SI=0000 DI=0000
NV UP EI PL NZ NA PE NC
01 B4 4C CD 21
03 FE C8 75 F1
.............L.!
...-.2.s......u.
6.5 Einbettung in Pascal (und andere Hochsprachen)
integrierter Assembler
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
34
als Unterprogramm:
function GetHashCode(const Buffer; Count: Word): Word; assembler;
asm
LES
DI,Buffer
MOV
CX,Count
XOR
AX,AX
@@1:
ROL
AX,5
XOR
AL,ES:[DI]
INC
DI
LOOP
@@1
end;
als Inlinecode:
{$APPTYPE CONSOLE}
var
A,B,C: Byte;
Begin
A:=3;
B:=2;
Asm
MOV BL,A
MOV AL,B
ADD AL,BL
MOV C,AL
End;
WriteLn(C);
end.
einlinken von Objekt-Dateien
beim Linkvorgang können Objektdateien aus dem Assembler mit den Hochsprachendateien zusammengelinkt
werden
{$L Dateiname}
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
35
7 Leistungsmessung
Verfahren
1. Auswahl von Hardwarekenndaten
(Taktraten, Operationsgeschwindigkeit, Kernprogramme, Mixe)
2. Laufzeitmessung existierender Programme
(synthetische Programme, Benchmarks)
3. Messung des Betriebs bestehender Anlagen
(HW-Monitor, Software-Monitor)
4. modelltheoretische Verfahren
(Simulationen, analytische Modelle)
Leistungskennwerte:
•
MIPS (Million Instructions Per Second): Welche Operation wurden hierfür gewählt?
•
FLOPS (Floatpoint Instructions Per Second): Wieviel bit? Welche Operation?
Benchmarks:
z.B.
• WHETSTONE
• DHRYSTONE
• SPEC
• TPS (Transactions per Second) für Datenbanken z.B. TPC-C-Benchmark
8 Praktikum PC-Technik
Aufbau eines PC
• Motherboard AT,ATX (schwarze Kabel zusammen für Stromanschluss AT; rot markierte Ader bei
Flachbandkabel zu Netzstecker;BIOS/RTC/CMOS/Chipsatz)
• Speichermodule
• Bussysteme
• Prozessorsockel
• Jumper/Brücken/"Mäuseklavier" DIP-Switch um Portadressen/IRQ/DMA festzulegen
• Anschlüsse Speaker/Reset/LEDs...
Betriebssysteminstallation
MSDOS
Netzwerkinstallation
Netzwerkkarte/Treiber
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
36
Übung Assembler
.model TINY
.DATA
A DB 03h
B DB 02h
C DB (?)
.CODE
.STARTUP
start: MOV BL,B
MOV AL,A
ADD AL,BL
MOV C,AL
.EXIT
END Start
; gibt ein Zeichen auf
;
.MODEL TINY
.CODE
ORG 100h
Start: mov ax,0B800h
mov ds,ax
mov si,00100h
mov al,'A'
mov ah,070h
mov [si],Ax
.EXIT
END Start
;NEAR Aufrufe festlegen für COM-Programme
;Datensegment definieren
;A mit dem Bytewert 3 belegen
;B mit dem Bytewert 2 belegen
;C als undefinierte Variable belegen
; Codesegment-Anfang
; ORG 100h Befehl für PSP
;Register BL mit Daten aus B laden
;Register AL:=AL+BL
dem Videospeicher aus (auch unter Win NT möglich!)
;für COM-Programm nur NEAR-Aufrufe(max. 64k) (COre iMage)
;organisiert Codesegment auf Adresse 100h für .COM
;Videospeicheradresse laden
;ds direkt laden nicht erlaubt
;Position im Videospeicher (80 Spalten * 24 Zeilen * 2 Attributbyte )
;Zeichen laden
;schwarz auf weiss
;auf [ds:si] ausgeben
;Code zum beenden wird eingefügt
;definiert 'Start:' als Eintrittspunkt
;Programm gibt eine Zeichenkette durch Aufruf einer DOS-Funktion (INT 21h) aus
;
.MODEL TINY
;für COM-Programm nur NEAR-Aufrufe(max. 64k) (COre iMage)
.DATA
Text db 'Hallo',13,10,7,'$' ;12=$ ist Endekennzeichen in DOS
.CODE
ORG
mov
mov
int
mov
int
END Start
Start:
100h
ah,09h
dx,OFFSET Text
21h
ah,4Ch
21h
;organisiert Codesegment auf Adresse 100h für .COM
;Funktionsaufruf 9 festlegen
;Adresse des Textes laden
;DOS Aufrufen
;INT21 4Ch zum beenden
;definiert 'Start:' als Eintrittspunkt
{Pascal-Programm zur Ausgabe einer Zeichenkette}
program Project2;
{$APPTYPE CONSOLE}
begin
write('Hallo' +#13#10#7);
end.
;pollt den Scancode der Tastatur in einer REPEAT UNTIL Schleife
;gibt den Scancode auf dem Bildschirm aus
;Programm wird nach 16 Durchläufen der FOR Schleife verlassen
;d.h. nach 7 Tastendrücken (drücken und loslassen je ein Scancode)
.model tiny
.code
.startup
start: mov bx, 0000fh ;Zähler auf 16 setzen
xor cx,cx
;CX null setzen
lesen: IN al,060h
;von Port 60h (Tastatur) lesen
mov dl, al
;Scancode für Ausgabe in DL
mov ah,02h
;Code für Ausgabe eines Zeichens
int 21h
;DOS Aufrufen
cmp al,cl
;Compare auf Gleichheit setzt Flags
jz lesen
;Sprung wenn Zeroflag Null ist
mov cl,al
;Scancode in CL "merken"
dec bx
;Zähler verringern
cmp bx,0h
;Compare ob Null setzt Flags
jnz lesen
;Sprung wenn Zeroflag nicht null ist
.exit
end start
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
37
Tastatur auslesen
Beginn
Zähler:=16 Scancode:=0
Scancode einlesen
Scancode anzeigen
ja
Scancode
neu=alt ?
nein
AltScancode:=Scancode
Zähler dekrementieren
nein
Zähler=0
?
ja
Ende
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
38
Übung
Suchen Sie folgende Fragen mit Hilfe des WWW zu beantworten:
Benchmarking:
• Welche weiteren Benchmarkingtests für Datenbanken gibt es
außer TPC-C?
• Wie viel SPEC-„Punkte“ hat ihr Rechner etwa (bzw. ein
entsprechender)?
• Welcher Computer ist derzeit der schnellste? Wie ist dieser
Computer ausgestattet und welche Architektur verwendet er?
• Wo kann der Supercomputer der TU Chemnitz, der
Earthsimulator und der IBM White in die Taxonomie
eingeordnet werden?
Innovative Architekturen:
• Wie funktioniert ein Quantencomputer? Wie viele Qubits sind
derzeit realisiert?
• Welche Varianten von Biocomputern gibt es?
• Welche Prozessoren emuliert die CPU von Transmeta?
• Wie vielfach schneller ist die Umschaltzeit von auf Lichtwellen
basierenden Schaltelementen gegenüber Transistoren?
• Wieviel Millionen Transistoren hat maximal ein heutiger Chip?
• Wieviel Register hat die Java Virtual Machine ?
(www.sun.com)
Einige Links sind im Iexplorer zu finden unter:
(Favoriten|Studienrichtungen|Informatik|Rechnerarchitektur)
Schreiben Sie sich die gefundenen URLs auf.
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
39
Tabelle 13 IO-Adressen eines PC
Addr.
000-00Fh
010-01Fh
020-02Fh
030-03Fh
040-04Fh
050-05Fh
060-06Fh
070-07Fh
080-08Fh
090-09Fh
0A0-0Afh
0B0-0BFh
0C0-0CFh
0D0-0DFh
0E0-0Efh
0F0-0FFh
100-10Fh
110-11Fh
120-12Fh
130-13Fh
140-14Fh
150-15Fh
160-16Fh
170-17Fh
First Quad
(xx0h to xx3h)
Interrupt Contr. #1
System timers
Keyboard & PS/2
Mouse (060h),
Speaker (061h)
RTC/CMOS, NMI
DMA page register 02 (081-083h)
Second Quad
Third Quad
(xx4h to xx7h)
(xx8h to xxBh)
DMA controller, channels 0 to 3
(System use)
(System use)
(System use)
(System use)
(System use)
Keyboard & PS/2
Mouse (064h)
(System use)
DMA page register DMA page register
DMA page
3 (087h)
4-6 (089-08Bh)
register 7 (08Fh)
(System use)
Interrupt Contr. #2
(System use)
(System use)
DMA controller, channels 4-7 (0C0-0DFh)
DMA controller, channels 4-7 (0C0-0DFh)
(System use)
Floating point unit (FPU/NPU/Math coprocessor)
(System use)
(System use)
(System use)
SCSI host adapter (130-15Fh)
“
“
4. IDE controller, master drive
Secondary IDE controller, master
...
1E0-1EFh
1F0-1FFh
200-20Fh
210-21Fh
...
3. IDE controller, master
Primary IDE controller, master
Joystick port
230-23Fh
Non-NE2000
NE2000 network card (240-25Fh)
NE2000 network card (240-25Fh)
Sound card
250-25Fh
260-26Fh
Non-NE2000
(System use)
270-27Fh
280-28Fh
2B0-2BFh
NE2000 network card (260-27Fh)
LPT2 (color)
Plug&Play devices
LPT3 (monochrom)
NE2000 network card (260-27Fh)
Sound card
Non-NE2000
NE2000 network card (280-29Fh)
NE2000 network card (280-29Fh)
290-29Fh
2A0-2Afh
(System use)
Sound card
SCSI host adapter (220-23Fh)
SCSI host adapter (220-23Fh)
Sound card
220-22Fh
240-24Fh
Fourth Quad
(xxCh to xxFh)
Non-NE2000
NE2000 network card (2A0-2BFh)
NE2000 network card (2A0-2BFh)
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
40
2C0-2CFh
2D0-2DFh
2E0-2Efh
2F0-2FFh
300-30Fh
COM4
COM2
Sound card (MIDI)
Non-NE2000
NE2000 network card (300-31Fh)
NE2000 network card (300-31Fh)
310-31Fh
Non-NE2000
320-32Fh
330-33Fh
350-35Fh
360-36Fh
370-37Fh
380-38Fh
390-39Fh
3A0-3AFh
3B0-3BFh
3C0-3CFh
3D0-3DFh
3E0-3EFh
3F0-3FFh
NE2000 network card (320-33Fh)
Hard disk controller PC/XT
Sound card (MIDI)
NE2000 network card (320-33Fh)
SCSI host adapter (330-34Fh)
SCSI host adapter (340-35Fh)
Non-NE2000
NE2000 network card (340-35Fh)
SCSI host adapter (340-35Fh)
NE2000 network card (340-35Fh)
Tape accelerator card
3. IDE (slave)
Non-NE2000
NE2000 network card (360-37Fh)
Secondary IDE
Tape accelerator card
LPT1 (color)
(slave)
LPT2 (monochrom)
NE2000 network card (360-37Fh)
Sound card (FM)
VGA/Monochrome Video
VGA/EGA Video
VGA/CGA Video
Tape accelerator card
LPT1 (monochrom)
COM3
4. IDE (slave)
Floppy disk controller
Tape accelerator card Primary IDE (slave)
COM1
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
41
Literaturverzeichnis
[1]
Bundschuh/Sokolowsky: Rechnerstrukturen und Rechnerarchitekturen
Vieweg, 1988
[2]
Coy: Aufbau und Arbeitsweise von Rechenanlagen
Vieweg, 1988
[3]
Podschun: Das Assembler-Buch
Addison-Wesley, 1999
[4]
Giloi: Rechnerarchitektur
Springer, 1993
[5]
Messmer: PC-Hardwarebuch
Addison-Wesley, 1993
[6]
Tanenbaum/Goodman: Computerarchitektur
Prentice Hall, 1999
[7]
Seifart/Beikirch: Digitale Schaltungen
Verlag Technik Berlin, 1998
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
42
Inhaltsverzeichnis
1
2
Was ist Rechnerarchitektur? ................................................1
Grundschaltungen ...........................................................1
2.1
TRANSISTOR ........................................................................................................................................................1
2.2
AND (KONJUNKTION) .........................................................................................................................................1
2.3
OR (DISJUNKTION) ..............................................................................................................................................2
2.4
NOT (KOMPLEMENT) ..........................................................................................................................................2
2.5
NAND .................................................................................................................................................................2
2.6
NOR ....................................................................................................................................................................2
2.7
XOR (ANTIVALENZ; EXKLUSIV OR)...................................................................................................................2
2.8
HALBADDER ........................................................................................................................................................3
2.9
VOLLADDER.........................................................................................................................................................3
2.10 SUBTRAKTION ......................................................................................................................................................4
2.11 SPEICHERSCHALTUNGEN ......................................................................................................................................5
2.11.1 RS-Flip-Flop ...............................................................................................................................................5
2.11.2 ROM (read only memory) ...........................................................................................................................6
2.11.3 PROM (programable) .................................................................................................................................6
2.11.4 EPROM (erasable)......................................................................................................................................6
2.11.5 EEPROM (electrical) ..................................................................................................................................6
2.11.6 RAM (random access memory) ...................................................................................................................6
2.11.6.1
2.11.6.2
SRAM (statischer)................................................................................................................................................6
DRAM (dynamischer)..........................................................................................................................................7
2.11.7 MRAM (magnetic).......................................................................................................................................7
2.12 MULTIPLEXER/DEMULTIPLEXER ..........................................................................................................................8
3 Datenübertragung in der Rechnerarchitektur (Bussysteme) ....................9
3.1
PROBLEME: ..........................................................................................................................................................9
3.2
GEMEINSAMKEITEN: ............................................................................................................................................9
3.3
FORMEN ...............................................................................................................................................................9
3.4
µP-BUS ................................................................................................................................................................9
3.5
INTERNE BUSSYSTEME .........................................................................................................................................9
3.6
EXTERNE BUSSYSTEME ........................................................................................................................................9
4 Das von Neumann Rechnerkonzept ............................................10
4.1
SCHEMATISCHER AUFBAU .................................................................................................................................10
4.2
BEISPIELARCHITEKTUR ......................................................................................................................................11
4.2.1
Rechenwerk ...............................................................................................................................................12
4.2.2
Steuerwerk.................................................................................................................................................12
4.2.2.1
4.2.2.2
4.2.3
4.2.4
4.2.4.1
4.2.4.2
4.2.4.3
4.2.5
4.2.6
4.2.6.1
4.2.6.2
4.2.6.3
4.2.6.4
4.2.6.5
4.2.6.6
Befehle ...................................................................................................................................................................12
Operationssteuerung ...............................................................................................................................................13
Speicherorganisation ................................................................................................................................17
Das Ein-/Ausgabeinterface eines PCs.......................................................................................................19
IO-Adressen............................................................................................................................................................19
Interruptsystem.......................................................................................................................................................19
DMA-Controller .....................................................................................................................................................20
Spezialprozessoren ....................................................................................................................................21
Maßnahmen zur Steigerung der Performance ..........................................................................................21
Prefetch...................................................................................................................................................................21
Sprungvorhersage (Branch Prediction)...................................................................................................................21
Register...................................................................................................................................................................21
Cache......................................................................................................................................................................21
RISC .......................................................................................................................................................................22
Parallelität...............................................................................................................................................................23
4.3
KOMMERZIELLE PROZESSOREN .........................................................................................................................24
4.3.1
Intel ...........................................................................................................................................................24
4.3.2
Weitere Prozessoren..................................................................................................................................25
4.3.3
Hauptspeicher ...........................................................................................................................................26
5 Klassifikation ............................................................28
5.1
NACH FLYNN .....................................................................................................................................................28
5.2
UMFASSENDERE KLASSIFIKATIONEN .................................................................................................................28
5.3
WIESO SUPERCOMPUTER/PARALLELE SYSTEME?...............................................................................................28
5.4
PIPELINE-ARCHITEKTUR ....................................................................................................................................28
5.5
SUPERSCALARE ARCHITEKTUR ..........................................................................................................................29
5.6
VECTORPROZESSOREN .......................................................................................................................................30
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
43
5.7
ARRAYPROZESSOREN.........................................................................................................................................30
5.8
MEHRPROZESSORMASCHINEN ............................................................................................................................30
5.9
MEHRRECHNERSYSTEME ...................................................................................................................................31
5.10 INNOVATIVE ARCHITEKTUREN ..........................................................................................................................31
6 Assembler .................................................................32
6.1
WAS IST ASSEMBLER? .......................................................................................................................................32
6.2
WIESO ASSEMBLER?..........................................................................................................................................32
6.3
ASSEMBLER FÜR INTEL-PROZESSOREN ..............................................................................................................33
6.4
ÜBUNG ...............................................................................................................................................................33
6.5
EINBETTUNG IN PASCAL (UND ANDERE HOCHSPRACHEN) .................................................................................34
7 Leistungsmessung ..........................................................36
8 Praktikum PC-Technik ......................................................36
Vorlesungsscript Rechnerarchitektur - S. Geisel - Berufsakademie Bautzen
44