Bit wisem 2015-wieners-sitzung-10_Programmiersprachen
BIT I WiSe 2014 | Basisinformationstechnologie I - 05: Rechnertechnologie II
1. Basisinformationstechnologie I
Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
Jan G. Wieners // jan.wieners@uni-koeln.de
Wintersemester 2014/15
19. November 2014 – Rechnertechnologie II: Schaltalgebra
2. Themenüberblick „Rechnertechnologie I“
Überblick: Rechner-/Computerentwicklung
Moore
Leibniz
Babbage
Turing
Exkurs: Turingtest
Weizenbaum
von Neumann
Exkurs: Spieltheorie
Die von Neumann Rechnerarchitektur
Konzept: Universalrechner
Cache als Hardwareelement
Caching als Grundmechanismus
Zeitgemäße Rechnerhardware
Motherboard, etc.
4. Zentrale Recheneinheit
Von-Neumann-Architektur
(CPU = Central Processing Unit)
Steuerwerk
Rechenwerk
(ALU)
Interne Datenwege
(Bus-System)
Speicherwerk
Ein-
/Ausgabewerk
Steuerwerk
Rechenwerk
Interne Datenwege
Arbeitsspeicher /
Speicherwerk
Ein-/Ausgabewerk
Funktionsweise &
Eigenschaften
Zahlen werden im Rechner binär
dargestellt
Universalrechner
Programme und Daten werden in
einem gemeinsamen Speicher
abgelegt
Befehle geben nur die
Speicheradresse an, wo die
Daten abgelegt sind, nicht die
Daten selbst
6. Von-Neumann-Architektur
Befehlsverarbeitung Von-Neumann-Zyklus in fünf Teilschritten:
FETCH
DECODE
FETCH OPERANDS
EXECUTE
UPDATE PROGRAM COUNTER (UPC)
FETCH: Laden des nächsten zu bearbeitenden Befehls in das
Befehlsregister (bildet gemeinsam mit Steuerwerk und Rechenwerk die
CPU).
DECODE: Befehl wird durch Steuerwerk in Schaltinstruktionen für das
Rechenwerk übersetzt.
FETCH OPERANDS: Operanden holen, die durch den Befehl verändert
werden sollen.
EXECUTE: Rechenwerk führt die Operation aus.
UPC: Erhöhung des Befehlszählers, damit der Rechner weiß, an welcher
Stelle des Programms er sich gerade befindet. Geschieht parallel zu
DECODE und FETCH OPERANDS.
8. Von-Neumann-Architektur
Vorteile
Bedeutende Idee: Zunächst Laden des Programmes und der
Daten in ein und denselben Speicher, danach Ausführung.
Vor von Neumanns Ansatz war das Programm hardwareseitig
verschaltet / repräsentiert oder wurde über Lochstreifenkarten
schrittweise eingelesen und sofort (sequentiell) verarbeitet.
Nun möglich:
Sprünge auf vorhergehende und spätere Programmsequenzen
Modifikation des Programmcodes während des Programmablaufes
Paradigmawechsel: Übergang vom starren
Programmablauf zur flexiblen Programmsteuerung bzw.
von der Rechenmaschine zur
Datenverarbeitungsmaschine
9. Von-Neumann-Architektur
Nachteile
Da Daten und Befehle im Speicher gehalten werden,
wird die Verbindung und Datenübertragung zwischen
CPU und Speicher über den Systembus zum Von-
Neumann-Flaschenhals:
Jeglicher Datenverkehr von und zur CPU wird über den
internen Bus abgewickelt, dessen Transfergeschwindigkeit
langsamer ist, als die Verarbeitungsgeschwindigkeit der
CPU.
Dieses Problem versucht man in modernen PC's durch die
Verwendung von schnellem Cache-Speicher
abzuschwächen, der meist in die CPU integriert ist.
14. CPU-Cache
Grundidee des Caches: Häufig gebrauchte
Speicherworte / Daten sollten im Cache stehen, um das
Problem des von-Neumann-Flaschenhalses zu mindern.
Funktionsprinzip des Cache:
Die CPU fordert ein gesuchtes Datum oder eine gesuchte
Instruktion im Cache an.
Bei einem Cache-Hit befindet sich das Datum/Instruktion im
Cache.
Bei einem Cache-Miss (die gewünschte Information befindet
sich nicht im Cache) wird ein bestimmter Bereich, der das
gesuchte Datum bzw. die gesuchte Instruktion enthält, aus
dem Hauptspeicher in den Cache geladen (in der Hoffnung,
dass folgende Zugriffe sich auf diesen aktualisierten Bereich
beziehen!).
25. Strukt. Computerorganisation
Ebene 3: Betriebssystemmaschine
Grundlegende Trennung zw.
Ebenen 0-3 und 4-5:
„Die untersten drei Ebenen sind
kein Tummelplatz für den
Durchschnittsprogrammierer,
sondern dienen hauptsächlich
dazu, die Interpreter und
Übersetzer auszuführen, die
zur Unterstützung der höheren
Ebenen benötigt werden.“
(Tanenbaum, 2006: S. 23)
Problemorientierte Sprache
Assemblersprache
Betriebssystemmaschine
Befehlssatzarchitektur (ISA)
Mikroarchitektur
Digitale Logik
Ebene 5
Ebene 4
Ebene 3
Ebene 2
Ebene 1
Ebene 0
29. (Logik)Gatter
Umsetzung z.B. über Transistoren
Elektronisches Bauelement zum Schalten (im
Nanosekundenbereich) und Verstärken elektrischer Signale
(i.e. 0V / 5V)
30.
31. Integrationsgrad: absolute Anzahl von Transistoren
in einem Integrierten Schaltkreis
Größenordnungen:
SSI – Small Scale Integration: 1 bis 10 Gatter
MSI – Medium Scale Integration: 10 bis 100 Gatter
LSI – Large Scale Integration: 100 bis 100.000 G.
VLSI – Very Large Scale Integration: > 100.000 G.
(vgl.: Tanenbaum: Computerarchitektur. Strukturen – Konzepte – Grundlagen. 2006, 5.Auflage. S. 167.)
32. (Logik)Gatter
Vereinfacht: Blackbox mit n Eingängen und einem
Ausgang
&
A
B
Y
Eingänge / Ausgang: Spannungszustände, i.e. 0
Volt für 0 und 5 Volt für 1
34. Boolesche Algebra / Schaltalgebra
Beschreibung von Schaltungen, die sich
durch Kombination von Gattern aufbauen
lassen über Boolesche Algebra:
George Boole (1815-1864)
Variablen und Funktionen können nur die
Werte 0 (wahr, TRUE) und 1 (falsch,
FALSE) annehmen bzw. zurückgeben.
Z.B. Datentyp bool in C++
Vollständige Beschreibung der Booleschen
Fkt. über Tabelle mit 2n Zeilen, wobei n
gleich Anzahl der Eingangsvariablen / -
werte Wahrheitstabelle
Schaltalgebra kennt zwei Konstanten: 0
(Schalter geschlossen / Leitung
unterbrochen) und 1(Schalter offen /
Leitung durchgeschaltet)
35. Wahrheitstabelle
Für zwei Eingänge (A, B): 2²=4 Tabellenzeilen
A B Y
0 0
0 1
1 0
1 1
Bitte beachten: 0 und 1 sind in diesem Kontext Wahrheitswerte (0 ist FALSE, 1 ist TRUE)!
36. Wahrheitstabelle
Für drei Eingänge (A, B, C): 2³=8 Tabellenzeilen
A B C Y
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
37. Gattertypen / Verknüpfungsarten
Verschiedene Gattertypen, d.h. Arten,
Eingangssignale miteinander zu verknüpfen:
UND (AND)
ODER (OR)
NICHT (NOT)
NICHT UND (NAND)
...
38. Gattertypen: UND / AND –Gatter Konjunktion
Symbol (nach US ANSI 91-1984)
Funktion Wahrheitstabelle
Y = A ⋀ B
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
39. Gattertypen: UND / AND –Gatter Konjunktion
Symbol (nach IEC 60617-12)
IEC: International Electrotechnical Commission
Funktion Wahrheitstabelle
Y = A ⋀ B
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
40. Gattertypen: ODER / OR –Gatter Disjunktion
Symbol
Funktion Wahrheitstabelle
Y = A ⋁ B
A B Y
0 0 0
0 1 1
1 0 1
1 1 1
41. Gattertypen: NICHT / NOT –Gatter Negation
Symbol
Funktion Wahrheitstabelle
Y = ¬A
oder
Y = A
A Y
0 1
1 0
42. Übung 1
Bestimmen Sie die Wahrheitstabelle für das
folgende Gatter:
A B A ⋀ B Y=A ⋀ B
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0
43. Gattertypen: NICHT UND / NAND Gatter
Symbol
Funktion Wahrheitstabelle
Y = A ⋀ B
oder
Y = ¬(A ⋀ B)
A B Y
0 0 1
0 1 1
1 0 1
1 1 0
44. Gattertypen: NICHT ODER / NOR Gatter
Symbol
Funktion Wahrheitstabelle
Y = A ⋁ B
oder
Y = ¬(A ⋁ B)
A B Y
0 0 1
0 1 0
1 0 0
1 1 0
46. Übung 2
Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgenden Funktionsgleichungen:
Y = (A ⋁ B) ⋀ ¬A
Y = (A ⋀ B) ⋀ ¬ (B ⋁ A)
Y = (A ⋀ B) ⋁ (A ⋀ C)
C = A ⋀ B
Y = C ⋀ C (Eingänge des Gatters kurzgeschlossen)
47. Übung 2: Schritt 1
Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋁ B) ⋀ ¬A
A B
0 0
0 1
1 0
1 1
48. Übung 2: Schritt 2
Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋁ B) ⋀ ¬A
A B A ⋁ B
0 0 0
0 1 1
1 0 1
1 1 1
49. Übung 2: Schritt 3
Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋁ B) ⋀ ¬A
A B A ⋁ B ¬A
0 0 0 1
0 1 1 1
1 0 1 0
1 1 1 0
50. Übung 2: Schritt 4
Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋁ B) ⋀ ¬A
A B A ⋁ B ¬A Y
0 0 0 1 0
0 1 1 1 1
1 0 1 0 0
1 1 1 0 0
51. Übung 2
Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋀ B) ⋀ ¬ (B ⋁ A)
A B A ⋀ B B ⋁ A ¬ (B ⋁ A) Y = (A ⋀ B)
⋀ ¬ (B ⋁ A)
0 0 0 0 1 0
0 1 0 1 0 0
1 0 0 1 0 0
1 1 1 1 0 0
52. Übung 2
Bestimmen Sie die vollständigen Wahrheitstabellen für die folgende
Funktionsgleichung:
Y = (A ⋀ B) ⋁ (A ⋀ C)
A B C A ⋀ B A ⋀ C Y = (A ⋀ B)
⋁ (A ⋀ C)
0 0 0 0 0 0
0 0 1 0 0 0
0 1 0 0 0 0
0 1 1 0 0 0
1 0 0 0 0 0
1 0 1 0 1 1
1 1 0 1 0 1
1 1 1 1 1 1
53. Übung 2
Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
C = A ⋀ B
Y = C ⋀ C (Eingänge des Gatters kurzgeschlossen)
A B C = A ⋀ B Y = C ⋀ C
0 0 0 0
0 1 0 0
1 0 0 0
1 1 1 1
54. Übung 3
Bestimmen Sie die Wahrheitstabelle für die
folgende Schaltung:
A B C Y
55. Übung 3
Bestimmen Sie die Wahrheitstabelle für die
folgende Schaltung:
A B C Y
0 0 1 0
0 1 1 0
1 0 1 0
1 1 0 1
FETCH: Laden des nächsten zu bearbeitenden Befehls in das Befehlsregister (bildet gemeinsam mit Steuerwerk und Rechenwerk die CPU).
DECODE: Befehl wird durch Steuerwerk in Schaltinstruktionen für das Rechenwerk übersetzt.
FETCH OPERANDS: Operanden holen, die durch den Befehl verändert werden sollen.
EXECUTE: Rechenwerk führt die Operation aus.
UPC: Erhöhung des Befehlszählers, damit der Rechner weiß, an welcher Stelle des Programms er sich gerade befindet. Geschieht parallel zu DECODE und FETCH OPERANDS.
Central Processing Unit
Verarbeitung von Daten, die sich in Form von Bitfolgen / Bytes im RAM (Random Access Memory) befinden
CPU-Bestandteile:
Register: Hilfsspeicherzellen, mit ALU verknüpft
Breite: z.B. 32 oder 64 Bit
ALU: Erwartet Daten / Argumente in Registern, legt Ergebnisse in Registern ab
Schneller (aus Kostengründen kleiner) Pufferspeicher, in dem Kopien des RAM (in Auszügen) vorgehalten werden, die möglicherweise als nächstes von der CPU benötigt werden.
Intention / Ziele:
Verringerung der Zugriffszeit bzw. Verringerung der Anzahl der Zugriffe auf den zu cachenden Speicher Von-Neumann Flaschenhals
Vorteil:
Durch Umgehung des Von-Neumann Flaschenhalses: Steigerung der Ausführungs- und Verarbeitungsgeschwindigkeit von Programmen
Nachteil:
Schwer vorhersehbar, welche Teile des Hauptspeichers von der CPU im nächsten Schritt benötigt werden Cache-Misses
Teuer
Cache-Speicher ist sehr schnell,aber auch sehr teuer, darumVerwendung mehrerer Cachesin einer Cache-Hierarchie:
Durchnummerierung vom Cachemit der niedrigsten Zugriffszeit (L1) biszum langsamsten Cache (Ln), z.B. L1Cache, L2 Cache, etc.
Arbeitsweise:
Zunächst wird der schnellste Cachedurchsucht; enthält der L1 Cache diebenötigten Daten nicht, wird dernächste (zumeist langsamere undgrößere) Cache durchsucht.
Cache Speicher ist keine Idee, die allein der CPU vorbehalten ist allgemeines Prinzip
Beispiele im Alltag:
Buffering: Video-Dateien aus dem Web (z.B. bei youtube) werden gepuffert und anschließend wiedergegeben, um die – im Vergleich zur Festplatte - niedrige Übertragungsrate des Internets auszugleichen Stichw. „Von-Neumann-Flaschenhals“
Cache kann überall da sinnvoll eingesetzt werden, wo Speichermedien unterschiedlicher Geschwindigkeit miteinander kommunizieren.
Auch wenn sich in den kommenden Jahren die aktuelle Technik völlig verändert, wird es immer Speicher geben, der schneller ist als anderer.
Faktum I: Die Zugriffszeit vergrößert sich, je weiter wir nach unten gehen.
Faktum II: Die Speicherkapazität vergrößert sich, je weiter wir nach unten gehen.
Faktum III: Die Anzahl der „Bits pro Dollar“ vergrößert sich, je weiter wir nach unten gehen, i.e.: Die Preise für die Speichermedien sinken, je weiter wir uns nach unten bewegen.
Bipolartechnik
TTL (Transistor-Transistor-Logic)
ECL (Emitter-Coupled Logic)
MOS (Metal Oxide Semiconductor)
Als Technologie für Computerschaltkreise: MOS:
Contra: MOS schaltet langsamer als TTL und ECL
PRO: MOS-Gatter erfordern weniger Strom und nehmen weniger Platz auf dem Chip ein
Beschreibung von Schaltungen, die sich durch Kombination von Gattern aufbauen lassen über Boolesche Algebra:
George Boole (1815-1864)
Variablen und Funktionen können nur die Werte 0 (wahr, TRUE) und 1 (falsch, FALSE) annehmen bzw. zurückgeben.
Z.B. Datentyp bool in C++
Vollständige Beschreibung der Booleschen Fkt. über Tabelle mit 2n Zeilen, wobei n gleich Anzahl der Eingangsvariablen / -werte Wahrheitstabelle
Schaltalgebra kennt zwei Konstanten: 0 (Schalter geschlossen / Leitung unterbrochen) und 1(Schalter offen / Leitung durchgeschaltet)
NAND Gatter:
Grund-baustein, da sich mit NAND alle logischen Verknüpfungen und komplexen Schaltungen wie Addierer und Flipflop bauen lassen