Peter Sobe
1. Technische Grundlagen der Informatik
Digitale Systeme und Architektur von Rechnern
Boolesche Algebra / Aussagenlogik
Zahlensysteme und interne Informationsdarstellung
Digitale Systeme
Digitales System:
Speicherung und Verarbeitung basierend auf wertdiskreten Zuständen
Werte können eine endliche Menge von Zuständen annehmen
Binäre (digitale) Systeme basieren auf zwei Zuständen:
0 und 1 bzw. LOW und HIGH
bei entsprechender Interpretation auch ‚falsch‘ und ‚wahr‘
Zahlendarstellung durch binäre Datenworte, z.B. 00101101
für den dezimalen Wert 45
Peter Sobe
Digitale Systeme
Diskretisierung der Werte:
Bei wertdiskreten Daten werden Werte nur noch in einer endlichen
Stufenanzahl abgebildet werden. Der Wertebereich und die Genauigkeit werden begrenzt. Im Diagramm rechts sind Werte nur noch in Stufen von 10 Einheiten abgebildet.
Digitale Systeme
Diskretisierung der Zeit (Darstellung und Verarbeitung nur noch zu ausgewählten Zeitpunkten):
Bei zeitdiskreten Daten werden Werte nur noch zu ausgewählten Zeitpunkten dargestellt und verarbeitet. Die zeitliche Auflösung wird
eingeschränkt. Im Diagramm rechts sind Werte nur noch zu Zeitpunkten
Peter Sobe
Digitale Systeme
Diskretisierung der Zeit und der Werte:
Für digitale Systeme ist es typisch, dass Werte diskret sind und gleichzeitig eine zeitdiskrete Verarbeitung stattfindet. Auch Daten
(Audio, Bilder, Video, Messreihen u.a.) sind digital und damit wert- und zeitdiskret abgebildet.
Digitale Systeme
Diskretisierung im Zeitbereich:
Zustände gelten in bestimmten kurzen Perioden
(Taktperiode, Taktphase), danach können neue Zustände eingenommen werden. Für eine Verarbeitung werden damit endlich viele Perioden benötigt.
Getaktete Systeme, der Takt läuft i.d.R. sehr schnell,
z.B. in einer Frequenz von 1 GHz mit einer Taktperiode von 1 ns (1 Nano, 1 Milliardstel Sekunde)
Diskretisierung im Wertebereich:
Bit: eine Stelle mit den möglichen Werten 0 und 1
durch Kombination mehrerer Bits zu s.g. Worten können
größere Wertebereiche abgebildet werden, z.B. 8 Bits für
Peter Sobe
Digitale Systeme
Eigenschaften:
Die Zustände 0 und 1 sind gut durch elektrischen Spannungen
abzubilden. Je nach Technologie werden spezielle Pegel für 0 und 1 definiert (auch als Low und High bezeichnet)
In der TTL-Schaltungstechnik gelten bei einer Referenzspannung von 5 V die Pegel:
Eingang Low: U<=0.8 Volt, High U>=2.0 Volt
Ausgang Low: U<=0.4 Volt, High U>=2.4 Volt Beispiel:
3.5 V 4.8 V 0.7 V
GND 0 V
Eingänge Ausgang
Digitale Systeme
Für Grundoperationen der Booleschen Algebra existieren diskrete Schaltungen (in mehreren Varianten) und können wie die
Operationen kombiniert werden.
Beispiel: UND-Operation (Konjunktion) a UND b
elektr. Schaltung Schaltalgebra
&
a UND bb a
a UND b 5V
a
b
Peter Sobe
Digitale Systeme
Beispiel: ODER-Operation (Disjunktion) a ODER b
elektr. Schaltung Schaltalgebra
a ODER b
b a
a ODER b 5V
a
b
GND
≥1
Digitale Systeme
Beispiel: NICHT-Operation (Negation) NICHT(a)
elektr. Schaltung Schaltalgebra
NICHT(a) NICHT(a) a
5V
a
Peter Sobe
Digitale Systeme
Beispiel: NICHT-ODER-Operation (engl. NOR) NICHT (a ODER b)
elektr. Schaltung Schaltalgebra
NICHT(
a ODER b) b
a
a ODER b 5V
a
b
GND
≥1
NICHT ( a ODER b)
Digitale Systeme
Kombination der Schaltelemente für neue Schaltfunktionen Beispiel: EXKLUSIV-ODER-Operation (XOR)
a XOR b = (a UND NICHT(b)) ODER (NICHT(a) UND b)
Schaltalgebra
a XOR b
b a
=1
a
b
&
&
a XOR b
≥1
Peter Sobe
Digitale Systeme
Neben logischen Verknüpfungen müssen die Werte (Bits mit Werten 0 oder 1) gespeichert werden.
Realisierung von Speicherzellen auf logischer Ebene durch Flipflops:
Es existieren verschiedene Realisierungsvarianten solcher Flipflops, insbesondere solche mit Berücksichtigung des Taktsignals (weiterer Eingang für clock).
R
S Q
Q
≥1
≥1 Q
S Q
s.g. RS-Flipflop R
Digitale Systeme
Realisierung von Rechenoperationen durch Grundoperationen, basierend auf einer entsprechenden Kodierung der zu
verknüpfenden Werte
Beispiel: Addition zweier 2-Bit Dualzahlen: s = a+b
VA VA
a1 b1 a0 b0
c0
c_in a1 a0
Zahl a
b1 b0 Zahl b
Zahl s s1 s0
Addierer für mehrere Bit-Stellen Aufbau VA
& =1
& =1
x y c_in
Peter Sobe
Digitale Systeme
Wesentliche Eigenschaften:
Diskrete Werte, Wertdarstellung mittels mehrerer Stellen 0 und 1 und entsprechenden Codes (Dualsystem für ganze, positive Zahlen im
einfachsten Fall)
Speicherung einzelner Bits beispielsweise in Flipflops, Speicherung mehrerer Bits (Datenworte) in Registern
Weiterleitung der Werte über einzelne elektrische Leitungen, Datenworte über s.g. Bus-Verbindungen
Taktung durch zeitgerechtes Eingeben und Auslesen
der Werte, Bezug auf Taktsignal mit regelmäßigen 0- und 1-Phasen
Verarbeitung mehrerer Datenworte durch digitale Schaltungen, z. B. zur Realisierung von Rechenoperationen
Digitale Systeme
Übergang zu programmierbaren digitalen Rechnern
programmgestützte Auswahl der jeweils zutreffenden Datenworte zur Verarbeitung durch Freischalten- und Sperren von Leitungen
programmgestütztes Aktivieren und Deaktivieren von
Speicherorten (Register, Speicheradressen) zum Lesen und Schreiben der Datenworte
programmgestützte Auswahl der zutreffenden digitalen
Teilschaltungen (z.B. zum Hochzählen, Multiplizieren, Addieren)
Programm wird im System gespeichert und einzelne Programmaktionen (Instruktionen, Befehle) automatisch nacheinander ausgewählt
Rechneraufbau: Hardware-Struktur
CPU
Memory RAM
E/A Bridge
Systembus
E/A-Bus
Disk- Controller Netzwerk
Schnittstelle
GPU
…
Rechneraufbau: CPU-Struktur
Memory RAM
Systembus
Lade-/Speicher- Einrichtung Steuerwerk
Rechenwerk Daten-
register Spezial-
register
CPU
Schichtenmodell
Strukturierung des Rechensystems (Hardware und Software) in mehrere aufeinander liegende Schichten.
Höhere Schichten benutzen darunter liegende über Schnittstellen
Nur die Schnittstellen sind nach oben sichtbar, die Implementierung der zugehörigen Schicht bleibt verborgen (’information hiding’).
Schichten können ausgetauscht werden (unter Beibehaltung ihrer Schnittstelle), ohne dass die darüber liegenden Schichten geändert werden müssen.
Beispiel: Verschiedene Sprachschichten
High-level language level (C):
A = B + C;
Assembly language level (MC68020):
MOVE.W B, D1
ADD.W C, D1
MOVE.W D1, A
Schichtenmodell
Beispiel: Verschiedene Sprachschichten Anweisung in einer High-Level
Programmiersprache (hier C):
A = B + C;
Assembler Sprache, tieferes Level (hier Motorola MC68020):
MOVE.W B, D1
ADD.W C, D1
MOVE.W D1, A
Automatische Umwandlung durch Übersetzer
Beispiel 1
Maschinencode (hier MC68020) mit Adressen anstatt Variablen, rechts ist Speicherinhalt in Bits dargestellt
Adr. Befehl Operanden Darstellung innerhalb 32 Bits
1000: MOVE.W (0x2002).W, D1 0011 0010 0011 1000 0010 0000 0000 0010 1004: ADD.W (0x2004).W, D1 1101 0010 0111 1000 0010 0000 0000 0100 1008: MOVE.W D1, (0x2000).W 0011 0001 1100 0001 0010 0000 0000 0000
…
Adr. Datenwort für Variable Wert der Variablen in Binärdarstellung
2000: A 0000 0000 0000 0000 0000 0000 1001 1000
2002: B 0000 0000 0000 0000 0000 0000 1000 0000
2004: C 0000 0000 0000 0000 0000 0000 0001 1000
Beispiel B: 128, C: 24, ergibt A: 152
Beispiel 2
Ein C-Programm und das Assemblerprogramm (nahe
Maschinencode für x86, mit Registern anstatt Variablen, x86-
Instruktionen anstatt der C-Anweisungen)
Schichten
Schnittstellen zwischen den Schichten
Einzelne Schichten können ausgetauscht werden, sofern die Schnittstellen zu den benachbarten Schichten beibehalten werden.
Elektrische Schaltung Digitale Logik
Mikroarchitektur
Befehlssatz und Speicherarchitektur
Betriebssystem
Laufzeitsystem,
Bibliotheken, Dienste ausführbares Programm
Schnittstelle für ausführbare Programme
Architektur und Realisierung
Architektur:
Betrachtung eines Prozessors ausgehend vom äußeren Erscheinungsbild
legt Art und Weise der Programmierung auf Maschinensprachen- Ebene fest
definiert Anzahl, Verwendungsmöglichkeiten und Benennung von Registern (Speicherplätze im Prozessor)
legt Befehle und deren Wirkungsweise fest, Programmiermodell
Architekturklassen: von-Neumann, Harvard-Architektur, CISC, RISC, VLIW
Realisierungsaspekte:
Interne Wirkungsweisen, verborgen vor dem Programmiermodell
Größe und Organisation der Caches
Umsetzung der IA-32 CISC-Befehle in 1 bis 4 Ops (interne RISC-Befehle)durch Decoder.
Ausführung in supersklarer RISC- Architektur
Trace Execution Cache (TEC) für Ops mit eigener Sprungvorhersage,
3 Ops pro Takt wie Pentium III
Verbesserte Sprungvorhersage für x86- Befehle mit größerem BTB
20-stufige I-Pipe, Taktraten bis über 3 GHz
13 Funktionseinheiten, davon max. 6 gleichzeitig aktivierbar
8 KB Datencache (klein, aber schnell);
Hardware-Prefetching mit Quad Pumped Speicherschnittstelle (3,2 GByte/s)
Befehlssätze (MMX, SSE, SSE2)
Optional: Hyperthreading (SMT)
Mikroarchitektur Pentium 4
Realisierungsaspekte (1)
Caches
Kleine, schnelle Pufferspeicher auf CPU-Chip, die oft benutzte Daten aufnehmen
Ziel: Vermeidung ständiger Zugriffe auf
Speicher, z.B. wenn ein Zähler hochgezählt und der neue Wert immer wieder geschrieben wird
Annahme: Lokalitätsprinzip,10/90-Regel, wenn 10% der Daten zu 90% Prozent der Aus-
führungszeit benutzt werden, dann würden diese 10% im Cache eine schnellere
Verarbeitung bewirken
Caches arbeiten transparent zum Programm, d.h. sie müssen durch den Programmierer nicht
CPU
Memory RAM
Cache
Systembus
Realisierungsaspekte (2)
Peter Sobe 27
Befehlsphasenpipelining
Zeitlich versetzte und überlappende Ausführung mehrerer Befehle
1. Befehl 2. Befehl 3. Befehl 4. Befehl
….
Zeit
Realisierungsaspekte (3)
Mehrkern-Prozessoren
CPU 1 CPU 2 CPU 3 CPU 4
Memory RAM
E/A Bridge
Cache Cache Cache Cache
Mehrere CPUs auf einem Chip teilen sich einen gemeinsamen Speicher
Speicherzugriffskonflikte werden durch Caches abgemindert