Eingabe Verarbeitung Ausgabe
Von - Neumann - Rechner
Eingabe- einheit
Ausgabe- einheit
Zentral-
einheit
( CPU )
Von-Neumann-Rechner mit Busstruktur
Bus
interner Speicher
Eingabe
Ausgabe Steuerwerk
Rechenwerk Um-
welt ex- ter- ner Spei-
cher
Bus
Bus
Programm- eingabe
Speicher- zähler
A d r e s s b e a r b e i t u n g Adress-
register Befehls- register Hilfs-
register
Programmspeicher Datenspeicher
Die Befehle werden aus dem Programmspeicher geladen ( Fetch-Zyklus ) und anschließend dekodiert. Erst im nächsten Arbeitsgang können dann die
Befehle ausgeführt werden. Hierzu muss das Blockbild verfeinert werden.
Arbeitsweise eines Prozessors : Holen
Bus
Bus
Programm- eingabe
Speicher- zähler
A d r e s s b e a r b e i t u n g Adress-
register Befehls- register Hilfs-
register Akku-
mulator Rechen-
werk Aus-
gabe
gabeEin-
Programmspeicher Datenspeicher
Nach dem Holen und Dekodieren können Assemblerbefehle wie EIN, AUS, LD adr, STO adr, ADD adr, SUB adr, …( Mikroprogrammierung ) ausgeführt und die Ergebnisse gespeichert werden ( Execute-Zyklus ). Die Befehlsbearbeitung besteht demnach aus den Phasen Holen, Dekodieren, Ausführen, Speichern.
Arbeitsweise eines Prozessors : Ausführen
Bus
Bus
Programm- eingabe
Speicher- zähler
A d r e s s b e a r b e i t u n g Adress-
register Befehls- register Hilfs-
register Akku-
mulator Rechen-
werk Aus-
gabe
Ein-
Programmspeicher Datenspeicher gabe
01
02
03
04
05
06
07 08
09
10
11 13 12
14 15
16
Mikroprogrammierung : Torsteuerung 1
Es muß beschrieben werden, in welcher Reihenfolge Tore an den Registern geöffnet werden, um Informationen auf den Bus oder in die Register zu lassen.
Geschlossene Tore lassen keine Informationen durch; daher muß nach jedem Öffnen wieder ein Schließen erfolgen. Tore sind UND-Gatter mit RS-Flipflop.
Bus
Bus
Programm- eingabe
Speicher- zähler
A d r e s s b e a r b e i t u n g Adress-
register Befehls- register Hilfs-
register Akku-
mulator Rechen-
werk Aus-
gabe
Ein-
Programmspeicher Datenspeicher gabe
01
02
03
04
05
06
07 08
09
10
11 13 12
14 15
16
Mikroprogrammierung : Befehl holen
Der nächste Befehl soll ins Befehlsregister übertragen werden, anschließend muß der Speicherzähler um 1 erhöht werden.
Tor 15 auf, Tor 01 auf, Tor 11 auf, Tor 11 zu, Tor 01 zu, Tor 15 zu.{ Befehl geladen } Tor 16 auf, Tor 16 zu. { Der Speicherzähler um 1 erhöht }
siehe auch die Befehle
EIN LD adr ADD adr
Bus
Bus
Programm- eingabe
Speicher- zähler
A d r e s s b e a r b e i t u n g Adress-
register Befehls- register Hilfs-
register Akku-
mulator Rechen-
werk Aus-
gabe
Ein-
Programmspeicher Datenspeicher gabe
01
02
03
04
05
06
07 08
09
10
11 13 12
14 15
16
Mikroprogrammierung : EIN
"EIN" holen wie oben, dann zur Übernahme der Eingabe in den Akkumulator :
"EIN" ausführen : Tor 07 auf, Tor 06 auf, Tor 06 zu, Tor 07 zu.
siehe auch die Befehle LD adr ADD adr holen
Bus
Bus
Programm- eingabe
Speicher- zähler
A d r e s s b e a r b e i t u n g Adress-
register Befehls- register Hilfs-
register Akku-
mulator Rechen-
werk Aus-
gabe
gabeEin-
Programmspeicher Datenspeicher
01
02
03
04
05
06
07 08
09
10
11 13 12
14 15
16
Mikroprogrammierung : LD adr
Befehl holen wie oben, dann zweiteilige Adresse holen :
Tor 15 auf, Tor 1 auf, Tor 12 auf, Tor 12 zu, Tor 1 zu, Tor 15 zu, Tor 16 auf, Tor 16 zu;
Tor 15 auf, Tor 1 auf, Tor 12 auf, Tor 12 zu, Tor 1 zu, Tor 15 zu, Tor 16 auf, Tor 16 zu;
Nun Daten von Speicher adr in den Akku laden:
Tor 13 auf, Tor 3 auf, Tor 6 auf, Tor 6 zu, Tor 3 zu, Tor 13 zu.
siehe auch die Befehle
EIN ADD adr
Bus
Bus
Programm- eingabe
Speicher- zähler
A d r e s s b e a r b e i t u n g Adress-
register Befehls- register Hilfs-
register Akku-
mulator Rechen-
werk Aus-
gabe
gabeEin-
Programmspeicher Datenspeicher
01
02
03
04
05
06
07 08
09
10
11 13 12
14 15
16
Mikroprogrammierung : ADD adr
Befehl holen wie oben, zweiteilige Adresse holen wie oben:
Der 1. Summand steht im Akku, der 2. Summand im Datenspeicher. Von dort wird er über das Hilfsregister zum Rechenwerk geleitet und zum Wert des Akku addiert; die Summe steht wieder im Akku:
Tor 13 auf, Tor 3 auf, Tor 10 auf, Tor 9 auf, Tor 9 zu, Tor 10 zu, Tor 3 zu, Tor 13 zu.
siehe auch die Befehle
EIN LD adr
Mikroprogrammierung : Torsteuerung 2
Es muss beschrieben werden, in welcher Reihenfolge Tore an den Registern geöffnet werden, um Informationen auf den Bus oder in die Register zu lassen.
Geschlossene Tore lassen keine Informationen durch; daher muss nach jedem Öffnen wieder ein Schließen erfolgen. Tore sind UND-Gatter mit RS-Flipflop.
nn
&
R S Q
Q
Bus
Impuls zum Öffnen Impuls zum
Schließen
beliebiges Tor als BLACK BOX
beliebiges Tor als UND-Gatter
mit FlipFlop Daten
Daten
Torsteuerung 1
≈ 1950 ≈ 2000 ≈ 2010 V
o n
N e u m a n n
R e c h n e r
Analog arbeitende
Rechner
Neuronal vernetzte Systeme
Organisch arbeitende Systeme Vektor-
rechner
Parallel- rechner
Multiprozessor- systeme Coprozessoren
Integer-Arithmetik Real-Arithmetik
D irect M emory A ccess
i/O-Prozessoren
Eingabe Ausgabe
CPU
RISC, CISC
RAM BUS
16 bit, 32 bit, 64 bit, …
Cache Pipelining
Vergrößerung und Beschleunigung einzelner von-Neumann-Komponenten
Zusätze innerhalb der von Neumann-Architektur
Neue Architekturen
Neue Konzepte
Zeitliche Entwicklung, seit John von Neumann Programme als Information speicherte
Leistung skalarer Einprozessorsysteme
ƒ : Taktfrequenz des µProzessors in MHz Np : Anzahl der voneinander unabhängigen Datenprozessoren im µProzessor Aµ : Mittlere Anzahl von Mikroinstruktionen pro Maschinenbefehl
Am : Anzahl der Taktzyklen für einen Speicherzugriff
MIPS = Mega Instructions Per Second GIPS = Giga Instructions Per Second CISC = Complex Instruction Set Computer
RISC = Reduced Instruction Set Computer
ƒ ≈ 250 MHz Np = 1
Aµ ≈ 6 Am ≈ 4
Leistungssteigerung
Leistung = [ MIPS ] ƒ·N
pA
µ+A
metwa 1998
Leistung = 25 MIPS 250·1
6 +4
Leistungssteigerung skalarer Einprozessorsysteme
ƒ ≈ 1-10 GHz eine höhere Frequenz wird kaum erreicht werden, weil
• die Leiterbahnen im µChip endliche Längen haben
• die verschiedenen Leiterbahnenlängen Signalverzögerungen erfordern.
• der induktive Widerstand von Biegungen ( = halbe Spulenwindung ) proportional mit der Frequenz wächst. ( RL = 2πƒ· L )
Np ≈ 5 etwa Intel Pentium Pro oder Motorola MPC750 Microprozessor
• 2 Integer-Prozessoren,
• 2 Gleitkomma-Prozessoren
• 1 I / O - Prozessor
Aµ ≈ 1 etwa durch Verwendung von
• RISC-Prozessoren und
• Pipelineverfahren sowohl bei der - Befehlsausführung als auch bei - längeren arithmetischen Operationen
Am ≈ 1 etwa durch Verwendung von Cache-Speichern auf dem ProzessorChip
Leistung = 10 000 · 5 1 + 1 = 25 000 MIPS = 25 GIPS
etwa 2000
Pipelineverarbeitung
Die Ausführung einer Instruktion wird in mehrere Teilschritte zerlegt,
um gleichzeitig verschiedene Teilschritte mehrerer Instruktionen zu bearbeiten:
• bei aufwendigen arithmetischen Operationen • bei der Befehlsverarbeitung ( Beispiel unten )
Zur Veranschaulichung werde jeder Befehl in 4 gleich langen Phasen ausgeführt;
jede Phase besteht bei n-bit-Registern aus n Takten:
Holen, Decodieren, Ausführen, Speichern
H D A S H D A S H D A S
1. Befehl 2. Befehl 3. Befehl
01 02 03 04 05 06 07 08 09 10 11 12
1. Befehl 2. Befehl 3. Befehl 4. Befehl 5. Befehl 6. Befehl 7. Befehl 8. Befehl 9. Befehl
01 02 03 04 05 06 07 08 09 10 11 12
H D A S
H D A S H D A S H D A S H D A S H D A S H D A S H D A S H D A S Im Pipelineverfahren werden die
Phasen zeitlich versetzt gestartet, so daß zu jeder Zeit jeweils vier Phasen verarbeitet werden.
In 12 Phasen werden nun
9 Befehle abgearbeitet, was dem 3-fachen (max 4 -fachen) der Verar- beitungsgeschwindigkeit entspricht.
Beim SuperPipelineverfahren werden Halbphasen verarbeitet und damit fast eine weitere Verdoppelung der Verarbeitungsgeschwindigkeit erreicht.
Beispielsweise benötigen 3 Befehle 12 Phasen:
Cachespeicher
Zur Erhöhung der Verarbeitungsgeschwindigkeit werden zeitweise oft benötigte Daten und Programmteile in einem kleinen, schnellen Speicher innerhalb der CPU abgelegt.
Prozessor Cachespeicher Hauptspeicher
Cachespeicher mit einer Princeton- Architektur Instruktionen
und Daten
Die Zugriffszeit auf diesen Cachespeicher entspricht etwa der Zugriffszeit auf Register;
damit kann Zeit gewonnen und der interne Bus entlastet werden.
Neben den Daten „data“ aus dem Hauptspeicher müssen im Cache auch die Herkunftsadressen der Daten als SetNr und Tag gespeichert werden:
allgemein:
SetNr = Speicheradresse MOD Anzahl Cachesets Tag = Speicheradresse DIV Anzahl Cachesets
Beispiel:
SetNr = 13 MOD 4 = 1 Tag = 13 DIV 4 = 3 Daten Tag
Set 0 Set 1 Set 2 Set 3
Zweiweg-assoziativer
Cachespeicher mit 4 Cachesets
data 3
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 …
…
Hauptspeicher …
data
Branch Next IP
Microcode Instruction Sequencer Simple
Instruction Decoder
Register Alias Table Instruction Decoder
Instruction Cache (L1) Instruction Fetch Unit
Bus Interface Unit
Reorder Buffer (Instruction Pool)
Internal Data-Results Buses Integer
Unit Integer
Unit Floating-
(FPU) Point Unit
Memory Interface Unit
Memory Reorder Buffer
Data Cache Unit (L1) L2 Cache
System Bus (External)
Retirement Unit
Retirement Register File (Intel Arch.
Registers) Cache Bus
Target Buffer Unit
To Branch Target Buffer
From Integer
Unit
Floating- (FPU) Point Unit Simple Instruction
Decoder
Complex Instruction Decoder
Reservation Station
Intel PentiumPro®
Additional Features
• Time Base Counter/Decrementer
• Clock Multiplier
• JTAG/COP Interface
• Thermal/Power Management
• Performance Monitor
+
+
Fetcher Branch Processing
BTIC 64 Entry
+ x ∏
FPSCR
CR FPSCR
L2CR CTR
LR BHT
Data MMU
Instruction MMU
Not in the MPC740 EA
PA
+ x ∏ Instruction Unit
Unit
Instruction Queue (6 Word)
2 Instructions
Reservation Station Reservation Station Reservation Station
Integer Unit 1 I
Integer Unit 2 System Register Unit
Dispatch Unit 64-Bit (2 Instructions)
SRs
ITLB (Shadow)
IBAT
Array 32-Kbyte
I Cache Tags
128-Bit (4 Instructions)
Reservation Station
32-Bit
Floating-Point Unit Rename Buffers
(6) FPR File
32-Bit 64-Bit 64-Bit
Reservation Station (2 Entry)
Load/Store Unit
(EA Calculation) Store Queue GPR File
Rename Buffers (6)
32-Bit
SRs (Original)
DTLB DBAT Array
64-Bit Completion Unit
Reorder Buffer (6 Entry)
Tags 32-Kbyte D Cache
60x Bus Interface Unit Instruction Fetch Queue L1 Castout Queue
Data Load Queue L2 Controller
L2 Tags L2 Bus Interface
Unit L2 Castout Queue
32-Bit Address Bus 32-/64-Bit Data Bus
17-Bit L2 Address Bus 64-Bit L2 Data Bus
Motorola PowerPC750®
Beispiele von Cache- und Pipelining
Leistungssteigerung
Multiprozessorsysteme
Multiprozessorsysteme
Systeme mit verteiltem Speicher sind charakterisiert durch:
• skalierbar, 1000 Prozessoren und mehr
• Programmierung in neuen Sprachen; diese Sprachen werden zur Zeit entwickelt und beinhalten:
- Aufteilung in einzelne Prozesse, Parallelisierung
- Kommunikation zwischen den Prozessen
- Koordinierung der Prozesse
Systeme mit gemeinsamem Speicher sind charakterisiert durch:
• globaler Adressraum
• Programmierung mit konventionellen Sprachen
• nicht skalierbar, maximal 30 Prozessoren
Verbindungsnetz
Prozessor
Speicher Speicher Speicher
Prozessor Prozessor
r b
Verbindungsnetz
r b
Verbindungsnetz
K n o t e n Speicher Prozessor
K n o t e n Speicher Prozessor
K n o t e n Speicher Prozessor
Empfänger 4711
Sender
Verbindungsnetze : Arbeitsweise, Topologie Verbindungsart:
Leitungsvermittlung Paketvermittlung Zellvermittlung
• etwa Telefonnetz
• zeitabhängig
• Sprachübertragung
Bei der Leitungsvermittlung wird für die Dauer der Übertragung eine Datenleitung über viele Knoten reserviert und blockiert damit die gesamte Leitung. Die Daten oder Gespräche werden mit den Pausen in einem einzigen Block gesendet.
Verbindungsart:
Leitungsvermittlung Paketvermittlung Zellvermittlung
• etwa ISDN, Datex P,…
• zeitunabhängig
• Datenübertragung
Bei der Paketvermittlung wird die Datenmenge in Pakete nicht konstanter Länge zerlegt. Beim Senden wird jedes Paket nummeriert und mit der Empfängeradresse versehen.
Jedes Paket sucht sich seinen eigenen Weg. Dadurch wird das Netz gleichmäßig ausgelastet;
die Nachricht erreicht schneller das Ziel. Der Empfängerknoten setzt alle Pakete
in der richtigen Reihenfolge zusammen und übermittelt die Nachricht zum Empfänger.
Diese Zeile stellt eine verschlüsselte Botschaft dar.
4711.1 4711.2 4711.3 4711.eof
Empfänger 4711
Sender
4
3 2,4
2,3
2 1
1
3 3
3 4 ISDN = Integrated Services
Digital Network
Verbindungsnetze : Arbeitsweise, Topologie Verbindungsart:
Leitungsvermittlung Paketvermittlung Zellvermittlung
• etwa ATM, 1000 mal schneller als ISDN
• zeitunabhängig
• Übertragung
von Sprache und Daten.
Bei der Zellvermittlung werden die Datenpakete auf Zellen aufgeteilt, die genau 48 Bytes an Daten und 5 Bytes für den Header zur Zielangabe aufnehmen. Beim Senden wird jede Zelle nummeriert und mit der Adresse des nächsten Routers versehen. Die Router ver- walten den gesamten Prozess. Die Nachricht erreicht so schnell das Ziel, daß Bilder in Echtzeit übertragen werden. ATM ist zugleich Vermittlungs- und Übertragungstechnik.
Empfänger 4711
Sender
4
3 2,4
2,3
2 1
1
3 3
3 4 AT M = Asynchron Transfer Modus
ISDN= Integrated Services Digital Network
Header ( 5 Bytes ) Datenteil (48 Bytes )
Verbindungsnetze : Verbindungsart, Topologie
Arbeitsweise:
• synchron
einfach zu realisieren. Sender und Empfänger übertragen zu festen, zentral getakteten Zeitpunkten. Dies geht wegen der verschiedenen Weglängen nur für kleine Netze : LAN ( = Local Area Network )
• asynchron
nicht so einfach zu realisieren. Jeder Sender und jeder Empfänger stellen zu jedem beliebigen Zeitpunkt ihre Übertragungsanforderungen (Baudrate) an das Netz.
Dieses Verfahren ist auch für große Netze geeignet : WAN ( = Wide Area Network )
Wegsteuerung:
• zentral
Der Wegaufbau im Netz erfolgt unabhängig von der zu übertragenden Information.
• dezentral
Die Wegangabe muss im Kopf der zu übertragenden Nachricht stehen.
Verbindungsnetze : Verbindungsart, Arbeitsweise Topologie:
allgemein, speziell
Bus Ring Stern Baum Gitter
Vollständige
Vernetzung 3 D - Würfel 4 D - Hyperwürfel
( flächenhaft )
Verbindungsnetze : Verbindungsart, Arbeitsweise Topologie:
allgemein , speziell Sterntopologie mit SubNetzen
1. lokales Subnetz
2. lokales Subnetz als Kaskade lokales
Hauptnetz mit Hub
Provider Router lokaler
Router