Rechnerarchitektur für Wirtschaftsinformatik...
Transcript of Rechnerarchitektur für Wirtschaftsinformatik...
-
Rechnerarchitektur für Wirtschaftsinformatik
Zusammenfassung
Hochschule Fulda – FB AI Wintersemester 2017/18
http://ra.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 2
Was ist wichtig?
2
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 3
Der Alles-Markierer von Pia Valentin (AI - Digitale Medien – Danke an Pia für das Foto) 1. Platz im Fotowettbewerb „Zeig mir wie Du lernst“, HS Fulda 2014
3
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 4
ALLES!!!
Der Alles-Markierer von Pia Valentin (AI - Digitale Medien – Danke an Pia für das Foto) 1. Platz im Fotowettbewerb „Zeig mir wie Du lernst“, HS Fulda 2014
4
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 5
OK, nicht wirklich
ALLES!!!
Der Alles-Markierer von Pia Valentin (AI - Digitale Medien – Danke an Pia für das Foto) 1. Platz im Fotowettbewerb „Zeig mir wie Du lernst“, HS Fulda 2014
5
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 6
Übungen zu Rechnerarchitektur 1
• Inhalte der Übungen • 1. Übung: Elemente der Digitaltechnik 1
– Zahlensysteme und Zahlenkonversionen • 2. Übung: Elemente der Digitaltechnik 2
– Arithmetische Operationen mit Dualzahlen • 3. Übung: Kodierung und Logik 1
– Kodierung, Wahrheitstabellen • 4. Übung: Logik 2 und Historie
– Logische Verknüpfungen, • 5. Übung: Von-Neumann-Rechner und CPU 1
– Von-Neumann-Rechner, Aufbau CPU • 6. Übung: CPU 2, I/O und Speicher
– Mehr CPU, I/O-Formen, Speicher und -organisation
6
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 7
Teil 2 • Elemente der Digitaltechnik
7
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 8
Zahlensysteme 1
• Positionssysteme • Babylonier, Chinesen, Mayas und Inder stellten
Zahlen in einem Positionssystem dar • jede Position gibt der Zahl ein anderes Gewicht • unsere „arabische Ziffern“ kommen aus Indien • arabische Zahlen:
• Beispiel: 32110 = 1 * 100 + 2 * 101 + 3 * 102
8
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 9
Zahlensysteme 2
• Dezimalsystem – Basis B: 10 – hat die Ziffern und Werte 0,1,2,3,4,5,6,7,8,9
• Dualsystem – Basis B: 2 – hat die Ziffern und Werte 0 und 1 – Dualzahl besteht aus einer Folge von Bits
• Octalsystem – Basis B: 8 – Ziffern / Werte: 0,1,2,3,4,5,6,7
• Sedezimalsystem (Hexzahlen) – Basis B: 16 – Werte: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
9
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 10
Dualzahlen 1
• Rechnersysteme verwenden Binärsystem • ideal, da exakt zwei Zustände existieren
• Dualsystem ist auch ein Binärsystem • Ziffernstelle einer binären Zahl Bit • jedes Bit kann zwei Zustände (0, 1) annehmen • Dualzahl Folge von Bits
10
mathematischer / logischer Zustand
mechanischer Schalter
elektrische Spannung
true / logisch 1 an 3,3 Volt
False / logisch 0 aus 0 Volt
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 11
Dualzahlen 2
• 1 Nibble = 4 Bit = Werte 0, 1, …, 14, 15 • darstellbar durch eine einstellige Sedezimalzahl
1210 = 11002 = C16
• 1 Byte = 2 Nibble = 8 Bit • darstellbar durch eine zweistellige Sedezimalzahl
3310 = 0010 00012 = 2116 216 116
• beachten: Bitreihenfolge bei Binärzahlen – MSB: most significant bit höchstwertigstes Bit zuerst – LSB: least significant bit niederwertigstes Bit zuerst
11
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 12
Dualzahlen 3
• Tabelle der Zahlen 0 bis 15
12
Dezimalzahl Sedezimalzahl Dualzahl 0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 13
Dualzahlen 4
• Umrechnung Dezimal → Dual • Verwendung von ganzahliger Division mit Rest … • … und folgendem Vorgehen:
– Schritt 1: x / n = y Rest z – Schritt 2: Mache y zum neuen x
falls x ≠ 0 dann Schritt 1, sonst Schritt 3 – Schritt 3: ermittle Reste von unten nach oben
• Beispiel: 3010 → n2 30 / 2 = 15 Rest 0 → x = y und Schritt 2 (LSB) 15 / 2 = 7 Rest 1 → x = y und Schritt 2 7 / 2 = 3 Rest 1 → x = y und Schritt 2 3 / 2 = 1 Rest 1 → x = y und Schritt 2 1 / 2 = 0 Rest 1 → Schritt 3, da x = 0 (MSB) → von unten nach oben: 11110 2
13
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 14
Rechnen mit Dualzahlen 1
• Addition – wie bei Dezimalzahlen • Summand + Summand = Summe • Regeln für jede Ziffernstelle:
– 0 + 0 = 0 Übertrag 0 – 1 + 0 = 1 Übertrag 0 – 0 + 1 = 1 Übertrag 0 – 1 + 1 = 0 Übertrag 1 – 1 + 1 + 1 = 1 Übertrag 1 – Addition ist kommutativ
• Beispiel: 0101 1001 + 0011 0110 Ü 111 ----------- 1000 1111
14
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 15
Rechnen mit Dualzahlen 2
• Subtraktion – wie bei Dezimalzahlen • Minuend - Subtrahend = Differenz • Regeln für jede Ziffernstelle:
– 0 - 0 = 0 – 1 - 0 = 1 – 1 - 1 = 0 – 0 - 1 = ? mit Borger! – 10 – 1 = 1 – Subtraktion ist nicht kommutativ
• alternativer Weg der Subtraktion: a - b = a + (-b)
• benötigt werden negative Zahlen!
15
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 16
Rechnen mit Dualzahlen 3
• Multiplikation – wie bei Dezimalzahlen • Multiplikand * Multiplikator = Produkt • Regeln für jede Ziffernstelle:
– 0 * 0 = 0 – 1 * 0 = 0 – 0 * 1 = 0 – 1 * 1 = 1 – Multiplikation ist kommutativ
• Beispiel: 01011011 * 101 -------------- 01011011 + 00000000 + 01011011 -------------- 111000111
16
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 17
Rechnen mit Dualzahlen 4
• Besonderheit im dualen System: • Multiplikation mit 2er-Potenz (2,4,8 …) 2n
• Beispiel: 01011011 * 100 -------------- 0101101100 + 000000000 + 00000000 -------------- 0101101100
• verschieben der Bits um n Stellen nach links • untere Bits mit 0 auffüllen • Linksshift • möglicherweise Überlauf!
17
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 18
Rechnen mit Dualzahlen 5
• Division – wie bei Dezimalzahlen • Dividend ÷ Divisor = Quotient • wie im Dezimalsystem: Berechnung durch
fortlaufende Subtraktion • Besonderheit: Division durch 2er Potenz 2n: • Beispiel: 0101 1011 ÷ 100
--------------- 01 0110
• verschieben der Bits um n Stellen nach rechts • obere Bits mit 0 auffüllen • Rechtsshift • Ergebnis wird abgeschnitten! Kein Nachkommaanteil!
18
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 19
Negative Dualzahlen 1
• Verwendung der Komplementdarstellung • eine negative Zahl wird durch das Komplement ihrer
positiven Zahl dargestellt • Verwendung finden das Einerkomplement und
besonders das Zweierkomplement • Einerkomplement:
– bei n Stellen zur Zahlendarstellung ist die größtmögliche Zahl 2n – 1
– Einerkomplement a1 ist größtmögliche Zahl – positive Zahl a – a1 = (2n – 1) – a
– Beispiel: 0010 1100 (+4410) 1101 0011 (-4410)
– Vorteil: einfach durch Inventieren der Bits zu berechnen
19
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 20
Negative Dualzahlen 2
• Zweierkomplement: – bei n Stellen zur Zahlendarstellung ist die größtmögliche
Zahl 2n – 1 (s.o.) – die kleinste gerade nicht mehr darstellbare Zahl ist um
1 größer und somit 2n – Zweierkomplement a2 ist die kleinste gerade nicht mehr im
Zahlenbereich darstellbare Zahl – positive Zahl – a2 = (2n) – a
– Beispiele: 0000 0001 (+110) 1111 1111 (-110) 0010 1100 (+4410) 1101 0100 (-4410)
– einfache Berechnung: Bits invertieren und 1 addieren – Vorteil: Subtraktion durch Addition des Zweierkomplements
20
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 21
Negative Dualzahlen 3
• Subtraktion mit Zweierkomplement: – Regel: a - b = a + (-b) – im Binärsystem: – Subtrahend als Zweierkomplement – dann Minuend und Subtrahend addieren – Beispiel: 0010 1100 (+4410)
- 0000 0001 (110) Zweierkomplement 1111 1111 (-110) dann Addition 0010 1100 (+4410) + 1111 1111 (-110) ----------------- 0010 1011 (430)
– Vorteil: Nur eine Additionsroutine notwendig!
21
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 22
Festkommazahlen 1
• bisher: nur ganze Zahlen betrachtet • oft sind diese nicht passend, da
– Zahlenbereich eingeschränkt – Genauigkeit nicht ausreichend
• einfacher Ansatz: Fixpointzahlen – 1 Bit (z.B. MSB) ist Vorzeichenbit – 1 festgelegte Position ist Dezimalkomma bzw. –punkt – Beispiel:
– für die meisten Problemstellungen nicht ausreichend, da Zahlenbereich zu klein und Genauigkeit zu gering
22
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 23
Gleitkommazahlen 1
• für die meisten Anwendungen werden daher Gleitkommazahlen verwendet – normiert nach IEEE 754 mit unterschiedlichen Größen – float (32 Bit) und double (64 Bit) – erweiterte Formate wie long double (> 80 Bit) u.a.
23
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 24
Teil 3 • Kodierung
24
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 25
Kodierung 1
25
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 26
Zahlendarstellung 1
• Natürliche Zahlen incl. 0 • Binärdarstellung einer natürlichen Zahl mit n Stellen
• größtmögliche Zahl bei n Stellen ist zmax = 2n – 1 • Anzahl möglicher Zahlen ist N = 2n • Beispiel: 32 Bit Adressbus 4.294.967.296 Adressen! • Übung: zmax und N bei Darstellung mit 8-Bit und 16-Bit?
26
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 27
Zahlendarstellung 2
• Ganze Zahlen – Integerzahlen • Menge der natürlichen Zahlen incl. negativer Zahlen • Darstellung von negativen Zahlen (s.o) • 1 Vorzeichenbit (z.B. MSB) und Betrag in den
verbleibenden n-1 Bits – Nachteil: keine eindeutige 0 (warum?) – Nachteil: Vorzeichen und Betrag müssen bei Berechnungen
getrennt behandelt werden
• negative Zahlen als Komplemente darstellen (s.o.): • Einerkomplement: a1 = (2n – 1) – a • Zweierkomplement: a2 = (2n) – a
• Vorteil u.a. Subtraktion kann durch Addition ersetzt werden
27
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 28
Zahlendarstellung 3
• Reelle Zahlen – Integerzahlen • in der Binärdarstellung sind reelle Zahlen aufgrund
der endlichen Bitbreite der Darstellung nur eine Näherung
• dadurch existieren eine Vielzahl von Problemen: – Differenzbildung zweier großer Zahlen – Berechnungen mit dem Ergebnis sehr kleiner Zahlen (~ 0) – Genauigkeit – Auflösung
• bei reellen Zahlen werden unterschieden • Festkommazahlen (Fixpoint) • Gleitkommazahlen (Floatingpoint)
28
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 29
Kodierungen 1
• in der Rechnertechnik sind eine Vielzahl verschie-dener Kodes bekannt, die jeweils für bestimmte Aufgabenbereiche verwendet werden
• Wichtige Kodierungen
• ASCII-Kode • CCITT-Kode • BCD-Kode • Gray-Kode • Hamming-Kode • u.v.a.m.
29
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 30
ASCII-Kodierung 1
• ASCII – American Standard Code for Information Interchange
• wird in der Rechnertechnik sehr häufig zur Kodier-ung von Text/Zeichen/Buchstaben angewendet
• ursprünglich: 7 Bit-Kode – MSB: Paritätsbit – Prüfbit zum Schutz vor Fehlern bei der
Verarbeitung (Übertragung, Speicherung, …) – Bit 0 .. 6: Nutzbits zur Kodierung der Zeichen
• erweiterter ASCII-Kode – ohne Prüfbit – Bit 0 … 7 zur Kodierung der Zeichen – viele länder- und systemspezifische Varianten – untereinander inkompatibel
30
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 31
ASCII-Kodierung 2
• auch die 8-Bit ASCII-Kodierung ist heute nicht mehr angemessen
• notwendig sind Zeichenkodierungen, die mehr Zeichen enthalten und weltweit vereinheitlicht sind
• UNI-Kode 16 Bit – wird bei Windows, Linux, Internet verwendet – UTF-8 - Unicode Transformation Format - 8 (8 Bit) – UTF-16 - Unicode Transformation Format - 16 (16 Bit)
• UCS-Kode 16 und 32 Bit - Universal Character Set – in 16 Bit die weltweit wichtigsten Zeichen kodiert – In erweiterten 16 Bit weitere Zeichen – Standardisierter einheitlicher Zeichensatz
31
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 32
Weitere Kodierungen 1
• es gibt eine Vielzahl weiterer Kodierungen für die jeweils gewünschten Anwendungsfälle
• einige wenige Beispiele: – Fotos – TIF, JPG, PNG, RAW – Grafiken – BMP, GIF, JPG – Audio – WAV, MPG3, WMA – Film – AVI, WMV, MPG, OGG – Textverarbeitung – DOC, DOCX, RTF, ODT, XML – Tabellenkalkulation – XLS, XLSX, ODS, – Präsentation – PPT, PPS, PPTX, ODP, CGM, PDF5 – …
32
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 33
Teil 4 • Logik und Schaltalgebra
33
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 34
Boolesche Algebra 1 • Boolesche Algebra Grundlage bei der Entwicklung
von Digitaltechnik / digitaler Elektronik • benannt nach George Boole, auf dessen Logikkalkül von
Mitte des 19. Jahrhunderts die Boolesche Algebra basiert • die Boolesche Logik kennt nur zwei Zustände:
0 oder 1 wahr oder falsch Schalter ein oder Schalter aus true oder false Spannung 5 Volt oder Spannung 0 Volt
• Boolesche Algebra bildet ein binäres System
34
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 35
Boolesche Algebra 2
35
deutsch englisch Bezeichnung Operatoren C-Operator UND AND Konjunktion &&
ODER OR Disjunktion ||
NICHT NOT Negation !
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 36
AND 1
• AND – Funktion, Symbole, Wahrheitstabelle
• das Ergebnis einer logischen UND-Verknüpfung ist immer dann true, wenn alle Eingänge true sind
36
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 37
OR 1
• OR – Funktion, Symbole, Wahrheitstabelle
• das Ergebnis einer logischen ODER-Verknüpfung ist immer dann true, wenn mindestens ein Eingang true ist
37
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 38
NOT 1
• NOT – Funktion, Symbole, Wahrheitstabelle
• das Ergebnis einer logischen NICHT-Verknüpfung verändert eine Aussage in ihr Gegenteil, aus true wird false und aus false wird true
38
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 39
Logische Grundfunktionen 1
• kurze Zusammenfassung • es gibt drei logische Grundfunktionen
• die Kombination dieser drei Grundfunktionen kann die Vielfalt der Funktionen der Digitaltechnik erzeugen
• einige Kombinationen der Grundfunktionen treten in der Digitaltechnik häufiger auf und werden als eigene Funktionsblöcke mit eigenen Bezeichnungen versehen
• dazu gehören NAND, NOR, XOR und XNOR
39
deutsch englisch Bezeichnung UND AND Konjunktion
ODER OR Disjunktion NICHT NOT Negation
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 40
NAND 1
• NAND – Funktion, Symbole, Wahrheitstabelle
• das Ergebnis einer logischen NAND-Verknüpfung ist immer dann true, wenn kein oder nur ein Eingang true ist, und false, wenn beide Eingänge true sind
40
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 41
NOR 1
• NOR – Funktion, Symbole, Wahrheitstabelle
• das Ergebnis einer logischen NOR-Verknüpfung ist immer dann true, wenn kein Eingang true ist
41
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 42
XOR 1
• XOR – Funktion, Symbole, Wahrheitstabelle
• das Ergebnis einer logischen XOR-Verknüpfung ist immer dann true, wenn nur ein Eingang true ist, oder wenn beide Eingänge nicht gleich sind (Antivalenz)
42
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 43
XNOR 1
• XNOR – Funktion, Symbole, Wahrheitstabelle
• das Ergebnis einer logischen XNOR-Verknüpfung ist immer dann true, wenn alle Eingänge true oder false sind, oder wenn alle Eingänge den gleichen Zustand haben (Äquivalenz)
43
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 44
Funktionen mit mehreren Eingängen 1
• oft sind Funktionen mit mehr als zwei Eingängen nötig, insbesondere für die AND- und OR-Funktionen
• Kombination von Grundfunktionen • Beispiel: logische UND-Verknüpfung von drei Größen
X, Y, Z: A = X ∧ Y ∧ Z = (X ∧ Y) ∧ Z
• ODER-Verknüpfung von vier Eingängen A, B, C, D A v B v C v D = (A v B) v ( C v D) 44
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 45
Zusammengesetzte Funktionen 1
• kurze Zusammenfassung
• neben den drei Grundfunktionen AND, OR und NOT gibt es kombinierte Funktionen, z.B. NAND, NOR, XOR und XNOR
• weitere zusammengesetzte Funktionen sind möglich, haben aber keine praktische Bedeutung
• zu den zusammengesetzten Funktionen gehören auch die Grundfunktionen, mit denen mehr als zwei Größen verknüpft werden, z.B. OR mit vier Eingängen
45
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 46
Schaltalgebra 1
• bei den logischen Verknüpfungen / Funktionen werden zur Darstellung der Zusammenhänge zwischen den Zustän-den der Eingangsgrößen und der Ergebnisgröße Wahr-heitstabellen verwendet
• allgemein gilt:
der Zusammenhang von Eingangsgrößen und Ergebnisgröße ist mittels Funktionsgleichung und/oder Wahrheitstabelle darstellbar
• Beispiel: Funktionsgleichung und Wahrheitstabelle der UND-Verküpfung sind gleichwertig
46
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 47
Schaltalgebra 2
• logische Grundfunktionen wie AND, OR und NOT und zusammengesetzte Funktionen wie NAND, NOR, XOR und XNOR werden ganz selten einzeln verwendet
• durch die Verknüpfung dieser Elemente werden größere digitale Verknüpfungen realisiert
• bei elektronischen Digitalrechnern werden die Verknüpf-ungsfunktionen als elektronische Schaltelemente realisiert
digitale Schaltungen
• allgemein gilt:
jede digitale Schaltung kann mit einer Wahrheitstabelle und/oder einer Funktionsgleichung beschrieben werden
47
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 48
Wahrheitstabellen 1
• Wahrheitstabellen enthalten Kombinationen der Eingangsgrößen und weist von diesen abhängig der Ausgangsgröße ihren Wert zu
• werden alle möglichen Kombinationen der Eingangs-größen beschrieben, dann ist die Wahrheitstabelle eindeutig
• Wahrheitstabellen sind nach festem Schema aufgebaut
• Schaltungen mit zwei und mit drei Eingangsgrößen
48
A B X
0 0
1 0
0 1
1 1
A B C X
0 0 0
1 0 0
0 1 0
1 1 0
0 0 1
1 0 1
0 1 1
1 1 1
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 49
Wahrheitstabellen 2
• ist die Ausgangsgröße einer Schaltung durch n Eingangs- größen bestimmt, dann ist die Anzahl der in der Wahrheits- tabelle zu berücksichtigenden Kombinationen der Eingangs- größen
2n • damit ist die Funktion der
Schaltung vollständig mit der Wahrheitstabelle beschrieben
49
20 21 22 23
A B C D X
0 0 0 0
1 0 0 0
0 1 0 0
1 1 0 0
0 0 1 0
1 0 1 0
0 1 1 0
1 1 1 0
0 0 0 1
1 0 0 1
0 1 0 1
1 1 0 1
0 0 1 1
1 0 1 1
0 1 1 1
1 1 1 1
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 50
Schaltalgebra 1
• Rechenregeln der Schaltalgebra
• A sei eine Variable, 0 und 1 Konstanten • daraus ergeben sich folgende Regeln
A ∧ 0 = 0 A ∨ 0 = A A = A A ∧ 1 = A A ∨ 1 = 1 A ∧ A = A A ∨ A = A A ∧ A = 0 A ∨ A = 1
• es müssen noch weitere Regeln beachtet werden
50
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 51
Schaltalgebra 2
• Kommutativgesetz (Vertauschungsgesetz)
• Kommutativgesetz bei UND A ∧ B = B ∧ A
• Kommutativgesetz bei ODER A ∨ B = B ∨ A
• die Reihenfolge, mit der Variable mit UND und ODER verknüpft werden, ist gleichgültig
51
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 52
Schaltalgebra 3
• Assoziativgesetz (Verbindungsgesetz)
• Assoziativgesetz bei UND A ∧ (B ∧ C) = (A ∧ B) ∧ C
• Assoziativgesetz bei ODER A ∨ (B ∨ C) = (A ∨ B) ∨ C
• die Reihenfolge, mit der Variable mit UND und ODER zugeordnet werden, ist gleichgültig
52
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 53
Schaltalgebra 4
• Distributivgesetz (Verteilungsgesetz)
• Distributivgesetz bei UND (konjunktiv) A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C)
• Distributivgesetz bei ODER (disjunktiv) A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C)
• Distributivgesetz hat große Bedeutung bei Umformung und Vereinfachung von Verknüpfungsgleichungen
53
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 54
Schaltalgebra 5
• Morgansche Gesetze • der englische Mathematiker de Morgan hat die boolesche
Algebra um das 1. und 2. de Morgansche Gesetz erweitert
• 1. de Morgansches Gesetz A ∧ B = A ∨ B
• bei Auflösung der Invertierung wird aus UND ein ODER
• 2. de Morgansches Gesetz A ∨ B = A ∧ B
• bei Auflösung der Invertierung wird aus ODER ein UND 54
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 55
Schaltalgebra 6
• Bindungsregel • Verknüpfung mehrerer Variablen mit UND und ODER
kann zu Mehrdeutigkeiten führen • Beispiel: X = A ∨ B ∧ C • X = (A ∨ B) ∧ C oder X = A ∨ (B ∧ C) ??? • führt zu unterschiedlichen Ergebnissen! • Lösung: den logischen Verknüpfungen werden unter-
schiedliche Prioritäten zugeordnet • UND-Verknüpfung bindet stärker als ODER-Verknüpfung
Y = A ∨ B ∧ C ist damit eindeutig Y = A ∨ (B ∧ C)
• („Punktrechung geht vor Strichrechnung“)
• Setzen von Klammern Reihenfolge der Verknüpfung 55
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 56
Teil 6 • Von-Neumann-Rechner
56
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 57
Merkmale 1 • Bestandteile des Von-Neumann-Rechners sind
– Rechenwerk – Leitwerk – Speicher – Ein-/Ausgabesystem – Verbindungseinrichtungen / Busse
• Rechenwerk und Leitwerk CPU • CPU arbeitet taktgesteuert • Informationen werden binär dargestellt • im Rechenwerk Verarbeitung von Worten fester Länge • Hauptspeicher fortlaufend adressierte Speicherworte • Zugriff auf Inhalt eines Speicherworts über seine Adresse
57
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 58
Merkmale 2 • Rechner verarbeitet Programme, die extern eingegeben
und intern gespeichert werden • Befehle und Daten werden im gemeinsamen Haupt-
speicher gespeichert • CPU verarbeitet Befehle und Daten sequentiell • normale Befehlsverarbeitung geschieht fortlaufend
in der Reihenfolge der gespeicherten Befehle • die sequentielle Abarbeitung der Befehle kann durch
Sprungbefehle oder Verzweigungen verändert werden • jede nach der Theorie der Berechenbarkeit mögliche
Berechnung ist programmier- und ausführbar, soweit es die Wortbreite zulässt
58
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 59
Blockschaltbild 1 • Aufbau eines Von-Neumann-Rechners
59
CPU
Speicher
Ein- / Ausgabe IO
Steuerwerk
Rechenwerk ALU
Addressbus Datenbus
Steuerbus
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 60
Von-Neumann-Zyklus 1 • wie läuft die Ausführung von Programmbefehlen im Von-
Neumann-Rechner ab? • Initial: setze Programmer PC auf Startadresse • Von-Neumann-Zyklus • Fetch – lade Befehl aus dem Speicher ins Befehlsregister
und erhöhe Programcounter PC um einen Schritt • Decode – dekodiere den Befehl → löse Befehl in einzelne
Schaltinstruktionen ins Leitwerk auf • Fetch Operands – lade weitere Operanden aus dem Speicher • Execute – führe logische / arithmetische Operationen im
Rechenwerke aus, bei Sprüngen verändere PC • Write back – schreibe Resultat der Operation zurück in den
Hauptspeicher
60
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 61
Nachteile 1 • manche Aufgaben werden vom Von-Neumann-Rechner
nicht sehr effizient gelöst • Beispiel
r = (a + b) * (c + d)
• Warum?
• Sequentielle Abarbeitung der Befehle
61
a + b c + d (a+b) * (c+d)
t0 t1 t2 t t3
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 62
Nachteile 2 • sind nun a, b, c und d unabhängig voneinander, können
die Berechnungen a + b und c + d parallel erfolgen
• besonders bei Vektorrechnungen wird dies deutlich
c = a + b
62
(a+b) * (c+d)
a + b c + d
a1 + b1 a2 + b2 a3 + b3 t0 t1 t2
t t3
t0 t1 t2 t t3
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 63
Nachteile 3 • weitere Nachteile des Von-Neumann-Rechners:
• im Speicher sind Befehle und Daten anhand des
Bitmusters nicht unterscheidbar • im Speicher sind variable und konstante Daten nicht
unterscheidbar • bei falscher Adressierung können Speicherinhalte
verändert werden, die nicht geändert werden dürfen, z.B. Instruktionen und konstante Daten
• da Daten und Befehle im gleichen Speicher gehalten werden, wird die Verbindung und Datenübertragung zwischen CPU und Speicher über den Systembus zum sog. Von-Neumann-Flaschenhals
63
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 64
Nachteile 4 • entscheidende Nachteile des Von-Neumann-Rechners
– sequentielle Abarbeitung der Programme bzw. der
Programmbefehle – Daten und Programmkode nutzen gemeinsam den
Hauptspeicher (Von-Neumann-Flaschenhals)
• zur Behebung dieser gravierenden Nachteile wurden – Konzepte des Von-Neumann-Rechners verändert – neue Rechnerarchitekturen entwickelt – Parallelarchitekturen – Verteilte Systeme
64
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 65
Pipelining 1 • Befehlsabarbeitung Von-Neumann-Rechner
• Konzept des Pipelining • Instruktionen überlappend / parallel ausführen • sequentielle Abarbeitung
65
FE DE FO EX WB
t Befehle
1
2 3
t0 t1 t2
4
FE DE FO EX WB FE DE FO EX WB
t Befehle
1
2 3
t0 t1 t2
FE DE FO EX WB FE DE FO EX WB
FE DE FO EX WB FE DE FO EX WB
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 66
Parallelarchitektur 1 • Harvardarchitektur als Beispiel für eine einfache
Parallelarchitektur • Trennung von Befehlsspeicher und Datenspeicher
mit je eigenen Bussen
66
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 67
Parallelarchitektur 2 • Memorymap • Von-Neumann-Rechner Harvard-Rechner
67
Programm
Daten
Hauptspeicher 0x0000
0x8FFF
0x2FFF
0xFFFF
Programm Daten
0x3000
0xFFFF 0xFFFF
0x0000 0x0000
0x2FFF
0x5FFF
Programmspeicher Datenspeicher
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 68
Caching 1 • Transfer Hauptspeicher CPU ist langsam
• Single Level Cache (einfache CPUs)
• Three Level Cache (leistungsfähige CPUs)
68
CPU
CPU
CPU
Hauptspeicher
Hauptspeicher
Hauptspeicher
Cache
L1 L2 L3
sehr schnell
langsam
sehr schnell
langsam
mittelschnell schnell langsam
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 69
Speichersegmentierung 1 • Aufteilung des Hauptspeichers in Segmente • Instruktionen, Daten, Konstanten, Stack, Heap, …
• Memory Management Unit (MMU) erforderlich
69
Stack
Konstanten
Daten
Instruktionen
Programm
Hauptspeicher
read
read-execute
read-write
read-write
Rechte
Instruktionen Daten
Konstanten Stack
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 70
Flynnsche Klassifikation 1 • Michael J. Flynn publizierte 1966 ein Schema zur
Klassifikation von Rechnerarchitekturen • dabei wird nach Befehls- und Datenströmen unterteilt • Single Instruction (SI) – Multiple Instruction (MI) • Single Data (SD) – Multiple Data (MD) • damit ergibt sich das folgenden Schema mit den
vier Rechnerklassen SISD, MISD, SIMD und MIMD
70
single instruction
multiple instruction
single data
SISD
MISD multiple
data
SIMD
MIMD
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 71
Flynnsche Klassifikation 2 • SISD – Single Instruction, Single Data
• in diese Klasse fallen traditionelle Einkern-Rechner, so auch der Von-Neumann- und der Harvard-Rechner
71
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 72
Flynnsche Klassifikation 3 • SIMD – Single Instruction, Multiple Data
• Großrechnerarchitektur, Array- oder Vektorrechner • neuere CPUs (x86) und GPUs haben SIMD-Befehle
72
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 73
Flynnsche Klassifikation 4 • MISD – Multiple Instruction, Single Data
• diese Klasse ist umstritten, schwer zuzuordnen • fehlertolerante redundante Systeme
73
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 74
Flynnsche Klassifikation 5 • MIMD – Multiple Instruction, Multiple Data
• Supercomputer, Mehrprozessorrechner • parallele Systeme, verteilte Systeme
74
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 75
Teil 7 • CPU
75
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 76
Aufbau und Busse 1 • Interne und externe Bussysteme
76
CPU
Steuerwerk
Rechenwerk ALU
Addressbus Datenbus Steuerbus
interner Datenbus
interner Steuerbus
Taktgeber Clock
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 77
Aufbau und Bussysteme 2
• alle Abläufe innerhalb einer CPU sind taktgesteuert • der Takt wird von einem externen Taktgeber (Clock)
geliefert
• unterschieden werden interne und externe Bussysteme • die verschiedenen Bussysteme intern oder extern können
unterschiedlich breit sein
• Busysteme können unidirektional oder bidirektional sein – der Adressbus z.B. ist unidirektional – der Steuerbus z.B. ist bidirektional
77
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 78
Register 1 • Register sind Speicherplätze für Operanden in der CPU • in Registern werden Operanden und Zwischenergebnisse
von Berechnungen gespeichert • Register sind extrem schnell zugreifbar • unterschieden werden
– allgemeine Register, z.B. für Berechnungen – spezielle Register, z.B. Befehlszähler/Programcounter
• Register sind dem Rechenwerk oder dem Leitwerk zugeordnet
• Register können unterschiedlich breit sein (z.B. 8 Bit, 16 Bit, 32 Bit, 64 Bit, 80 Bit, 96 Bit, 128 Bit)
• die Gesamtheit aller Register innerhalb der CPU wird als Programmiermodell bezeichnet
78
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 79
Rechenwerk 1 • die ALU (arithmetic logical unit) ist der Hauptbestandteil
des Rechenwerks • Hinzu kommen Register wie der Akkumulator oder das
Flagregister und ggfs. Shifter (für die Multiplikation)
79
Rechenwerk
Register
Akkumulator Flagregister
Shifter
ALU
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 80
ALU 1 • die ALU verknüpft zwei Operanden zu einem Ergebnis
80
ALU
Operand 1 Operand 2
Resultat
Flags
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 81
ALU 2
81
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 82
ALU 3 • die ALU benötigt mindestens zwei Register
• Akkumulator (besondere Bedeutung wird später deutlich)
• Zwischenregister zur Entkopplung der Rechenschleife
82
ALU
Akkumulator Zwischenreg.
Interner Datenbus
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 83
ALU 4 • Realisierung der Rechnerarithmetik • die ALU muss so gebaut sein, dass sie die vier
arithmetischen Grundoperationen durchführen kann • bekannt: die vier Grundoperationen lassen sich auf die
Addition zurückgeführen – Subtraktion Addition des negativen Operanden – Multiplikation mehrfache Addition – Division mehrfache Subtraktion
• in minimalster Ausführung reicht es aus, wenn die ALU zwei Operanden addieren kann
• mittels Software, z.B. Microcode, können die weiteren Grundoperationen programmiert werden
83
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 84
Addition 1 • Volladdierer und Schaltung aus HA- und OR-Glied
84
O1i Ei Volladdierer für eine Ziffernstelle i O2i Üi+1 Üi
Ziffer (Operand 1, i = 1,2)
Ziffer (Operand 2, i = 1,2)
Ziffer (Ergebnis, i = 1,2)
Übertrag (i = 2,3)
Übertrag (i = 1,2)
HA
HA
O1i
O2i
(E)
(Ü)
Üi
(E)
(Ü)
Üi+1 ≥1
Ei
-
ALU
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 85
Addition 2
85
• 8 Bit-Volladdierer für zwei Binärzahlen
• Addierer berücksichtigt möglichen Übertrag beim Eingang und setzt bei Überlauf (Übertrag) in Bit 7 das Carryflag
O1 O2 Ci
VA Co E
O1 O2 Ci
VA Co E
O1 O2 Ci
VA Co E
O1 O2 Ci
VA Co E
O1 O2 Ci
VA Co E
O1 O2 Ci
VA Co E
O1 O2 Ci
VA Co E
O1 O2 Ci
VA Co E
C Ü Carryflag
Übertrag Eingang
Operand1 (8 Bit) Operand2 (8 Bit)
Ergebnis (8 Bit)
Bit 6 Bit 7 Bit 5 Bit 3 Bit 4 Bit 2 Bit 1 Bit 0
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 86
Addition 3 • bekannt: mit derartigem Volladdierer lassen sich alle
vier Grundoperationen ausführen • hat diese Lösung Nachteile? Wenn ja, welche? • viel Rechenzeit für Multiplikation und Division • Gleitkommaoperationen nur mit hohem Aufwand machbar • besser: ALU enthält Bauteile für alle Operationen
ALU
86
+ - * /
Ergebnis
Operand 1 Operand 2
01 Betriebsart
00 – Addition 01 – Subtraktion 10 – Multiplikation 11 – Division
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 87
Co-Prozessoren 1 • für Gleitkommaoperationen wird häufig ein eigener
Prozessor in die CPU integriert oder extern neben die CPU angeordnet
• Gleitzahlprozessor / Floating Point Unit
• weitere Co-Prozessoren: MMU, GPU, …
87
CPU FPU
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 88
Leitwerk 1 • Leit- oder Steuerwerk / Control Unit
das Leitwerk ist für die Ausführung von Befehlen zuständig zum Leitwerk gehören - Befehlszähler (PC) - Stapelzeiger (SP) - Befehlsregister - Ablaufsteuerung
CU
88
Befehlzähler (PC)
Stapelzeiger (SP)
Ablaufsteuerung
Opcode
Befehlsregister
Adressfeld
Holen
Ausführen
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 89
Befehle und Befehlssätze 1 • Rechner erledigen ihre Aufgabe durch Abarbeiten einer
Befehlsfolge, d.h. einem vom Programmierer vorge-gebenen Programm
• die Befehle werden innerhalb der CPU interpretiert und ausgeführt
• alle von einer CPU ausführbaren Befehle werden als Maschinenbefehle bezeichnet, die somit die elementare Form von Befehlen darstellen
• jeder CPU-Typ besitzt einen Befehlssatz, d.h. einen eigenen charakteristischen Satz von Maschinenbefehlen
• der Befehlssatz wird vom CPU-Konstrukteur erstellt • Befehlssätze unterschiedlicher CPUs unterscheiden sich
z.T. erheblich voneinander
89
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 90
Befehle und Befehlssätze 2 • es gibt viele Befehle mit gleicher oder ähnlicher Wirkung,
die zu Gruppen zusammengefasst werden • es gibt insbesondere folgende Befehlsgruppen
– Transferbefehle – Arithmetikbefehle – Logikbefehle – Schiebe- und Rotationsbefehle – Sprungbefehle – Steuerungsbefehle – Sonderbefehle
• Befehle müssen binär kodiert werden, damit sie von der CPU verarbeitet werden können
90
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 91
Maschinenbefehle 1 • Aufbau von Maschinenbefehlen (einfachste Form)
• Opcode Befehl in binärer Darstellung • Adressfeld zu verarbeitender Operand (binär) • falls die Breite eines Maschinenworts für den gesamten
Befehl nicht ausreichend ist, wird der Befehl aus mehreren Maschinenworten zusammengesetzt (CISC)
• der Befehl wird dann nacheinander vom Speicher geladen • damit können Befehle unterschiedlich lang sein • RISC: Befehle haben immer die gleiche Länge
91
Opcode Adressfeld
Breite Maschinenwort
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 92
Maschinenbefehle 2 • mehrere Möglichkeiten zur Darstellung und Kodierung von
Programmen in Maschinensprachen – binäre Darstellung – Funktionsbeschreibung – abkürzende symbolische Schreibweise (Mnemonics)
• die binäre Darstellung von Maschinenbefehlen ist bei der
Programmierung ziemlich umständlich und fehlerträchtig • das gilt sowohl für Binärcodes als auch für Hexcodes
92
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 93
Maschinenbefehle 3 • Mnemonics / Assemblersprache • Maschinencodeprogramme lassen sich besser mit einer
abkürzenden symbolischen Schreibweise beschreiben • die Befehle werden Mnemonics genannt • jede CPU hat ihre eigenen Mnemonics • die Summe aller Mnemonics Assemblersprache • Beispiel: 8085-Assembler: Mnemonics Binärcode
93
Opcode
LDA
MOV
ADI
Addr/Op
spaddr
4711D
A, B
Opcode Addr/Op
00111010
01000111
11000110
00000000 00001010
00011000
1. Befehl
2. Befehl
3. Befehl
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 94
Maschinenbefehle 4 • Befehlsdekodierung • Befehl wird binär im Befehlsregister der CPU gespeichert • Befehlsdecoder erzeugt die internen und externen Steuer-
signale an die beteiligten Einheiten zur Befehlsausführung
• Steuersignale auf dem Steuerbus
• Ablaufsteuerung fest verdrahtet oder als Mikroprogramm (Mikrokode)
94
Befehlsregister
Befehlsdekodierer
Takt- und Ablauf- Steuerung
Takt
interne Steuersignale
externe Steuersignale
Status- und Meldesignale
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 95
Maschinenbefehle 5 • Mikroprogrammsteuerung • jeder Befehl besteht aus einer Folge von Mikrobefehlen,
die nacheinander abgearbeitet werden
• Vorteil: Austausch des Befehlssatzes ohne Veränderung der CPU
• Nachteil: durch die sequentielle Abarbeitung der Mikrobefehle wird Befehlsausführung langsamer
95
Befehlsregister
Befehlsdekodierer
Mikrobefehl Mikroprogrammspeicher
Adresse Mikrobefehl 1
Mikrobefehl 2
Mikrobefehl 3
Mikrobefehl 4
…
Adresse + 0
Adresse + 1
Adresse + 2
Adresse + 3
…
Befehl
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 96
Programmbearbeitung 1 • Arbeitsweise der CPU
• beim Von-Neumann-Rechner sequentielle Abarbeitung
der Programmbefehle • Befehle und Daten befinden sich unter fortlaufenden
Adressen im Hauptspeicher • Programmsteuerung erfolgt durch den Befehlszähler • zum Starten eines Programms wird der Befehlszähler mit
der Anfangsadresse des Programms geladen • unter der Anfangsadresse ist der erste Befehl des
Programms gespeichert • mit jeden weiteren Befehl wird der Befehlszähler mit dem
Takt erhöht
96
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 97
Programmbearbeitung 2 • Start des Von-Neumann-Rechners
• beim Start des Rechnersystems wird der Befehlszähler
mit der Adresse einer Initialisierungsroutine geladen, die sich meist im BIOS (Monitorprogramm) befindet
• das BIOS oder das Monitorprogramm befindet sich in einem nichtflüchtigen Speicher
• damit dieser Vorgang einfach zu realisieren ist, wird als Adresse für das Initialisierungsprogramm häufig die Adresse 0 verwendet
• diese Adresse kann man einfach durch einen Reset des Zählers erzeugen und laden
97
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 98
Programmbearbeitung 3 • Abweichungen von der sequentiellen Bearbeitung
• beim Von-Neumann-Rechner gibt es Befehle oder
Bedingungen, mit denen die sequentielle Abarbeitung der Programmbefehle unterbrochen werden kann
• hierzu gehören • Sprungbefehle
bedingte oder unbedingte Sprünge • Unterprogrammaufrufe
bedingte oder unbedingte Unterprogrammaufrufe sowie die Rückkehrbefehle
• Interrupts interne und externe Interrupts sowie die Rückkehrbefehle
98
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 99
Programmbearbeitung 4
• Sprungbefehle • Sprung unterbricht die laufende sequentielle Abarbeitung und
setzt diese an der Sprungadresse fort • die aktuelle Adresse des Programmzählers wird mit der
Sprungadresse ersetzt 99
Adresse Befehl Befehlszähler
… … …
n - 2 Befehl1 n – 1
n - 1 Befehl 2 n
n jump adresse adresse → n + 1
n + 1 Befehl 4
n + 2 Befehl 5
… … …
adresse Befehl A adresse + 1
adresse + 1 Befehl B adresse + 2
adresse + 2 Befehl C adresse + 3
… … …
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 100
Programmbearbeitung 4 • Unterprogramme (Subroutines, Funktionen) • ein Unterprogramm ist ein in sich abgeschlossenes
Programm bzw. Teilprogramm • eine Folge von im Programm wiederholt auftretenden
Befehlen wird zu einem Unterprogramm zusammengefaßt • Einsparung von Hauptspeicher • bessere Übersichtlichkeit des Programms • Aufruf von Unterprogrammen mit dem call-Befehl • call-Befehl ist ein besonderer Sprungbefehl • wie beim Sprung wird beim call-Befehl die Adresse
angegeben, an der das Unterprogramm startet • Rückkehr aus dem Unterprogramm mit return-Befehl
100
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 101
Programmbearbeitung 5
• Unterprogrammaufruf
• Unterprogramme können verschachtelt werden
101
Adresse Befehl Befehlszähler
… … …
n - 2 Befehl1 n – 1
n - 1 Befehl 2 n
n call adresse adresse → n + 1
n + 1 Befehl 4
n + 2 Befehl 5
… … …
adresse Befehl A adresse + 1
adresse + 1 Befehl B adresse + 2
adresse + 2 return n + 1
… … …
Stack
n + 1
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 102
Programmbearbeitung 6 • Interrupts • besondere interne oder externe Ereignisse können die
Unterbrechung des ablaufenden Programms notwendig machen, um auf diese Ereignisse zu reagieren
• Interruptsignale lösen Interrupts aus • bein Auftreten eines Interruptsignals wird die laufende
Programmabarbeitung unterbrochen und in eine sog. Interruptroutine verzweigt
• danach wird das Programm weiter fortgesetzt • Interruptbehandlung ist wie ein Unterprogrammaufruf • wichtigster Unterschied: Interrupts bzw. Interruptsignale
treten asynchron auf und müssen entsprechend auch asychron in der Interruptroutine bearbeitet werden
102
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 103
Programmbearbeitung 7
• Interruptbehandlung
• Interruptroutine wird zeitlich in den Ablauf des Programms eingeschoben
103
Interrupthandler
Befehl 1
… Befehl i + 1
Befehl i + 2
… return
Programm
… …
Befehl n
Befehle n + 1
Befehl n + 2
… …
Interruptsignal
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 104
Programmbearbeitung 8 • Aktionen bei Erkennen eines Interrupts • gerade in Ausführung befindlicher Befehl wird normal beendet • mit der Annahme der Unterbrechung hat die CPU die Möglichkeit,
eine Unterbrechungssperre zu setzen, die die Annahme weiterer Interrupts verhindert
• der aktuelle Inhalt des Befehlszählers wird auf dem Stack abgelegt • Verzweigung zur Interruptroutine über eine Adresse, die in der
CPU erzeugt wird oder von einem externen Baustein (Interruptcontroller) geliefert wird (Vektormethode)
• Bearbeitung der Interruptroutine, in der die Unterbrechungssperre wahlweise wieder freigegeben werden kann
• jede Interruptroutine wird mit einem Rückkehrbefehl beendet. Über diesen Rückkehrbefehl wird die Fortsetzungsadresse des unterbrochenen Programms von Stack in den Befehlszähler geladen
104
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 105
Programmbearbeitung 9 • Interruptlatenzzeit
• Zeit vom Eintreffen des Interrupts bis zu seiner Bearbeitung
105
Programmablauf
Overhead Interrupthandling
Interruptroutine
laufendes Programm Interruptroutine
Interruptlatenzzeit
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 106
Teil 8 • I/O und Speicher
106
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 107
I/O 1 • Ein-/Ausgabeeinheit ist für den Anschluß externer
Geräte und ihre Steuerung sowie die Kommunikation zwischen Rechner und I/O-Geräten konzipiert
• I/O-Geräte werden auch als Peripherie bezeichnet • zur üblichen PC-Peripherie gehören Bildschirm, Tastatur,
Maus, Drucker, Scanner, CD-/DVD-Laufwerke u.v.a.m. • zur Mikrokontroller-Peripherie gehören insbesondere
Sensoren, Aktoren, AD- und DA-Wandler, Regler usw. • Festplatten, SSDs u.ä. Massenspeicher werden eher nicht
zur den üblichen I/O-Geräten gezählt, sie gehören eher in die Gruppe der Speicher
• über spezielle I/O-Busse sind I/O-Geräte am Rechner angeschlossen, z.B. seriell, parallel, HDMI, USB, u.v.a.m.
107
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 108
I/O 2 • I/O-Geräte werden i.d.R. über spezielle interne oder
externe I/O-Controller angesteuert • der Datentransfer zwischen Rechner und I/O-Gerät erfolgt
i.d.R. gepuffert (FIFO-Puffer)
• Unterscheidung: Memory Mapped I/O Port I/O
108
CPU IO-Gerät
IO-Controller
Datenpuffer
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 109
Memory Mapped I/O 1 • beim Memory Mapped I/O sind die Steuer- und
Datenregister in den Speicherbereich der CPU gemappt
• der Zugriff auf das I/O-Gerät bzw. seine Steuer- und Datenregister ist damit wie ein Zugriff auf im Haupt-speicher gespeicherte „normale“ Variable
109
CPU Speicher
IO
control
data
control
data
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 110
Port I/O 1 • beim Port I/O sind die Steuer- und Datenregister des
I/O-Geräts über Spezialbefehle der CPU zugreifbar
• der Zugriff auf das I/O-Gerät bzw. seine Steuer- und Datenregister erfolgt über spezielle IN- und OUT-Befehle
• Beispiele: Intel 80x86, Zilog Z80
110
CPU Speicher
IO
control
data
in out
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 111
Direct Memory Access 1 • bei Port I/O und Memory Mapped I/O ist beim
Datentransfer immer auch die CPU beteiligt
• Datenfluss: CPU kopiert Daten von/nach I/O-Gerät und kopiert diese dann nach/von Hauptspeicher
• doppelter = langsamer Transfer
111
CPU Speicher
IO
control
data
1. Datentransfer: I/O CPU
2. Datentransfer: CPU Speicher
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 112
Direct Memory Access 2 • für viele I/O-Aufgaben sind aber sehr hohe Transferraten
notwendig, z.B. beim Transfer von Grafikdaten •
• DMA: Daten werden direkt zwischen I/O und Speicher transferiert, dazu notwendig: spezieller DMA-Controller
• direkter = sehr schneller Transfer
112
CPU Speicher
IO
control
data
DMA Datentransfer: I /O Speicher Steuerung
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 113
Speicher 1 • Speicher ist eine sehr wichtige Komponente in der
Rechnertechnik
• es gibt eine Fülle unterschiedlicher technischer Möglich-keiten, Informationen / Daten zu speichern
• Speichertypen werden beschrieben durch – physikalische Realisierung der Speichermedien – Größe des Speichers, Speicherkapazität – Zugriffszeit auf die gespeicherten Daten – Zugriffsverfahren auf die Speicherinhalte – Leistungsaufnahme, Stromverbrauch – Herstellungsaufwand und -kosten, Preis
113
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 114
Speicher 2 • wesentliche Unterscheidung der Speichertypen:
– elektronischer Speicher z.B. RAM, SSD, Flash usw.
– magnetischer Speicher z.B. Festplatte, Diskette, Band, Kernspeicher (heute ein wenig veraltet)
– optischer Speicher DVD, CD
– magnetooptischer Speicher z.B. Minidisk, Laserdisk
– Zukunftsmusik: PCM-RAM, STT-RAM, Racetrack-RAM??? – u.a.m.
• im weiteren Beschränkung auf elektronischen Speicher
114
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 115
Speicher 3 • wesentliche Unterscheidung bei elektronischem Speicher
– Schreib-Lese-Speicher RAM = Random Access Memory besser: flüchtiger Speicher
– Festspeicher ROM = Read Only Memory besser: nicht-flüchtiger Speicher
• heute wird elektronischer Speicher in vielen Bereichen eingesetzt, in denen er andere Speichertechniken ablöst, z.B. Memory-Sticks (USB-Sticks) als transportabler Massenspeicher oder Solid State Disks (SSD) als Ersatz für Magnetfestplatten mit hoher Geschwindigkeit
115
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 116
Speicher 4 • die Speicherkapazität wird in Bit angegeben • oder in Vielfachen von Bit, z.B. kBkit, MBit, GBit
1 kBit = 210 Bit = 1024 Bit 1 MBit = 220 Bit = 1.048.576 Bit 1 GBit = 230 Bit = 1.073.741.824 Bit
• häufig wird die Kapazität auch in Byte angegeben
1 kByte = 210 Byte = 1024 Byte 1 MByte = 220 Byte = 1.048.576 Byte 1 GByte = 230 Byte = 1.073.741.824 Byte
• manche Festplattenhersteller schummeln ein wenig und geben statt 1024 Byte nur 1000 Byte für ein kByte an!
• unterschieden wird auch nach den Zugriffsverfahren – Speicher mit wahlfreiem Zugriff (Random Access) – Speicher mit sequentiellem Zugriff
116
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 117
RAM 1 • RAM – Random Access Memory (wahlfreier Zugriff) • grundsätzliche Unterscheidung:
– statisches RAM - SRAM – dynamisches RAM - DRAM
• beide Arten verwenden technisch unterschiedliche elementare Speicherzellentypen
• SRAM - statisches RAM • die Speicherzellen sind durch bistabile Flip-Flops realisiert
– Flip-Flop ist eine elektronische Schaltung, bei der das Ausgangs-signal zwei unterschiedliche stabile Zustände annehmen kann
– durch externe Steuersignale kann das Ausgangssignal auf den einen oder den anderen stabilen Zustand eingestellt werden
117
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 118
RAM 2 • SRAM – Speicheraufbau als Bit-Matrix
Zelle: bistabiler Flip-Flop bestehend aus 6 Transistoren
• sehr schnell, teuer - Einsatz z.B. für Cachespeicher
118
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 119
RAM 3 • DRAM – Speicheraufbau als Bitmatrix
x Zelle: besteht nur aus einem Transistor und einem Kondensator Refresh notwendig
• einfach, schnell, günstig - Einsatz z.B. für Hauptspeicher
119
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 120
RAM 4 • Vergleich DRAM – SRAM
• DRAM ist gegenüber SRAM langsam
– DRAM nur in CMOS-Technologie herstellbar (langsame Technologie)
– Adressierung erfolgt in zwei Schritten – regelmäßiges Refresh der Speicherzellen notwendig
• trotzdem überwiegt der Vorteil der DRAM-Zellen: – einfacher Aufbau aus Transistor und Kondensator – preisgünstig
120
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 121
ROM 1 • ROM – Read Only Memory
• verschiedene Arten von ROM
– Mask-ROM – Daten werden bei Herstellung über eine Maske auf das ROM geschrieben (veraltet)
– PROM – Programmable ROM – EPROM – Erasable Programmable ROM – EEPROM – Electrical Erasable Programmable ROM – Flash-EPROM – anderer Aufbau gegenüber EPROM:
bestehend aus nur einem Transistor je Bit, nur seitenweise lesbar
– Flashen Programmieren des EPROM • Unterscheidung – wie beim RAM – am Aufbau der
elementaren Speicherzellen
121
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 122
Speicherorganisation 1 • Sonderformen der Speicherorganisation • bisher vorgestellte Speicherbausteine arbeiten nach dem
Prinzip des Zugriffs auf den Inhalt der Speicherzelle durch Angabe seiner Adresse
• daraus lassen sich entsprechende wahlfrei zugreifbare Speichersysteme aufbauen
• Rechnersystemen benötigen aber auch Speichersysteme, die nach anderen Prinzipien zugegriffen werden
• Insbesondere sind dies
– LIFO-Speicher (LIFO = Last In – First Out) – FIFO-Speicher (FIFO = First In – First Out) – Assoziativ-Speicher (Content Addressable Memory)
122
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 123
Speicherorganisation 2 • LIFO-Speicher (Last In – First Out)
• Speicherprinzip des Stack (Stapelspeicher) • Stackpointer (Stapelzeiger) verwaltet die Adressierung • zwei Varianten: • SP wird vor Schreiben inkrementiert, nach Lesen dekrementiert • SP wird nach Schreiben inkrementiert, vor Lesen dekrementiert
123
Adresse Speicherwort …
Adresse Adresse + 1 Adresse + 2 Adresse + 3
… Adresse + n
SP - Stackpointer
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 124
Speicherorganisation 2 • FIFO-Speicher (First In – First Out)
• Speicherprinzip der Queue (Warteschlange) • Schreib- und Lesepointer verwalten die Adressierung: • die Queue ist leer, wenn Schreibpointer = Lesepointer ist • der Schreibpointer wird nach dem Schreiben inkrementiert • der Lesepointer wird nach dem Lesen inkrementiert
124
Adresse Speicherwort …
Adresse Adresse + 1 Adresse + 2 Adresse + 3
… Adresse + n
Lesepointer
Schreibpointer
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 125
Speicherorganisation 3 • Assoziativspeicher (Content Addressable Memory) • beim CAM erfolgt der Zugriff nicht über eine Adresse,
sondern über den Inhalt der Speicherzelle • der Inhalt wird dabei über ein Suchwort vorgegeben
• der Assoziativspeicher kennt drei Betriebsarten
– schreiben – lesen – suchen
• in der Betriebsart suchen wird der Speicherinhalt mit dem Suchwort verglichen und ermittelt, ob und wenn ja, wo das Suchwort im Speicher gespeichert und zugreifbar ist
125
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 126
Speicherfehler 1 • bei der Speicherung von Daten können zwei verschiedene
Fehler auftreten • permanente Fehler (hard errors) • treten reproduzierbar auf • werden durch Defekte in den Speicherbausteinen oder
den Ansteuerschaltungen verursacht • flüchtige Fehler (soft errors) • treten zufällig und daher nicht reproduzierbar auf • hervorgerufen meist durch ionisierende Strahlung
– Speicherkondensatoren werden umgeladen – bistabile Flip-Flops kippen um
• auch starke elektromagnetische Strahlung kann zu flüch-tigen Fehlern führen
126
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 127
Auflösung • Vorlesung Rechnerarchitektur 5.0
https://www.youtube.com/watch?v=NOtLb34Osl0
127
https://www.youtube.com/watch?v=NOtLb34Osl0https://www.youtube.com/watch?v=NOtLb34Osl0
-
Rechnerarchitektur - Peter Klingebiel - HS Fulda - FB AI 128
für die Klausur:
viel Erfolg
und ein bisschen Glück
128
Rechnerarchitektur�für Wirtschaftsinformatik� ��Zusammenfassung Foliennummer 3Foliennummer 4Foliennummer 5Übungen zu Rechnerarchitektur1 Teil 2 Zahlensysteme1 Zahlensysteme2 Dualzahlen1 Dualzahlen2 Dualzahlen3 Dualzahlen4 Rechnen mit Dualzahlen1 Rechnen mit Dualzahlen2 Rechnen mit Dualzahlen3 Rechnen mit Dualzahlen4 Rechnen mit Dualzahlen5 Negative Dualzahlen1 Negative Dualzahlen2 Negative Dualzahlen3 Festkommazahlen1Gleitkommazahlen1Teil 3 Kodierung1 Zahlendarstellung1 Zahlendarstellung2 Zahlendarstellung3 Kodierungen1 ASCII-Kodierung1 ASCII-Kodierung2 Weitere Kodierungen1 Teil 4 Boolesche Algebra1 Boolesche Algebra2 AND1 OR1 NOT1 Logische Grundfunktionen1 NAND1 NOR1 XOR1 XNOR1 Funktionen mit mehreren Eingängen1 Zusammengesetzte Funktionen1 Schaltalgebra1 Schaltalgebra2 Wahrheitstabellen1 Wahrheitstabellen2 Schaltalgebra1 Schaltalgebra2 Schaltalgebra3 Schaltalgebra4 Schaltalgebra5 Schaltalgebra6 Teil 6 Merkmale1 Merkmale2 Blockschaltbild1 Von-Neumann-Zyklus1 Nachteile1 Nachteile2 Nachteile3 Nachteile4 Pipelining1 Parallelarchitektur1 Parallelarchitektur2 Caching1 Speichersegmentierung1 Flynnsche Klassifikation1 Flynnsche Klassifikation2 Flynnsche Klassifikation3 Flynnsche Klassifikation4 Flynnsche Klassifikation5 Teil 7 Aufbau und Busse1 Aufbau und Bussysteme2 Register1 Rechenwerk1 ALU1 ALU2 ALU3 ALU4 Addition 1 Addition2 Addition3 Co-Prozessoren1 Leitwerk1 Befehle und Befehlssätze1 Befehle und Befehlssätze2 Maschinenbefehle1Maschinenbefehle2Maschinenbefehle3Maschinenbefehle4Maschinenbefehle5Programmbearbeitung1Programmbearbeitung2Programmbearbeitung3Programmbearbeitung4Programmbearbeitung4Programmbearbeitung5Programmbearbeitung6Programmbearbeitung7Programmbearbeitung8Programmbearbeitung9Teil 8 I/O1 I/O2 Memory Mapped I/O1 Port I/O1 Direct Memory Access1 Direct Memory Access2 Speicher1 Speicher2 Speicher3 Speicher4 RAM1 RAM2 RAM3 RAM4 ROM1 Speicherorganisation1 Speicherorganisation2 Speicherorganisation2 Speicherorganisation3 Speicherfehler1 Auflösung