Rechnerarchitektur für Wirtschaftsinformatik...

128
Rechnerarchitektur für Wirtschaftsinformatik Zusammenfassung Hochschule Fulda – FB AI Wintersemester 2017/18 http://ra.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI

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