Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Basisinformationstechnologie I WiSem 2015 / 2016 | 06_Rechnertechnologie II: Von Neumann Architektur und Schaltalgebra
1. Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
Dr. Jan G. Wieners // jan.wieners@uni-koeln.de
Basisinformationstechnologie I
Wintersemester 2015/16
16. November 2015 – Rechnertechnologie II: Schaltalgebra
2. Ü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.)
…previously…
10. Zentrale Recheneinheit
(CPU = Central Processing Unit)
Steuerwerk
Rechenwerk
(ALU)
Interne Datenwege
(Bus-System)
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
Von-Neumann-Architektur
11. Zentrale Recheneinheit
(CPU = Central Processing Unit)
Steuerwerk
Rechenwerk
(ALU)
Interne Datenwege
(Bus-System)
Speicherwerk
Von-Neumann-Architektur
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
12. Zentrale Recheneinheit
(CPU = Central Processing Unit)
Steuerwerk
Rechenwerk
(ALU)
Interne Datenwege
(Bus-System)
Speicherwerk
Ein-
/Ausgabewerk
Von-Neumann-Architektur
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
13. Befehlsverarbeitung Von-Neumann-Zyklus in
fünf Teilschritten:
FETCH
DECODE
FETCH OPERANDS
EXECUTE
UPDATE PROGRAM COUNTER (UPC)
Von-Neumann-Architektur
14. FETCH: Laden des nächsten zu bearbeitenden Befehls in
das Befehlsregister (bildet gemeinsam mit Steuerwerk und
Rechenwerk die CPU).
15. 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.
16. 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
17. 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
18. 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
19. + –
Paradigmawechsel:
Übergang vom starren
Programmablauf zur flexiblen
Programmsteuerung bzw. von
der Rechenmaschine zur
Datenverarbeitungsmaschine
Von-Neumann-Flaschenhals
35. 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)
Strukt. Computerorganisation
Problemorientierte Sprache
Assemblersprache
Betriebssystemmaschine
Befehlssatzarchitektur (ISA)
Mikroarchitektur
Digitale Logik
Ebene 5
Ebene 4
Ebene 3
Ebene 2
Ebene 1
Ebene 0
41. 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.)
42. Vereinfacht: Blackbox mit n Eingängen und einem
Ausgang
Eingänge / Ausgang: Spannungszustände, i.e. 0
Volt für 0 und 5 Volt für 1
(Logik)Gatter
&
A
B
Y
44. 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)
Boolesche Algebra / Schaltalgebra
45. Für zwei Eingänge (A, B): 2²=4 Tabellenzeilen
Bitte beachten: 0 und 1 sind in diesem Kontext Wahrheitswerte (0 ist FALSE, 1 ist TRUE)!
Wahrheitstabelle
A B Y
0 0
0 1
1 0
1 1
46. Für drei Eingänge (A, B, C): 2³=8 Tabellenzeilen
Wahrheitstabelle
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
47. Verschiedene Gattertypen, d.h. Arten,
Eingangssignale miteinander zu verknüpfen:
UND (AND)
ODER (OR)
NICHT (NOT)
NICHT UND (NAND)
...
Gattertypen / Verknüpfungsarten
48. Symbol (nach US ANSI 91-1984)
Funktion Wahrheitstabelle
Y = A ⋀ B
Gattertypen: UND / AND –Gatter Konjunktion
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
49. Symbol (nach IEC 60617-12)
IEC: International Electrotechnical Commission
Funktion Wahrheitstabelle
Y = A ⋀ B
Gattertypen: UND / AND –Gatter Konjunktion
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
57. 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)
Übung 2
58. Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋁ B) ⋀ ¬A
Übung 2: Schritt 1
A B
0 0
0 1
1 0
1 1
59. Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋁ B) ⋀ ¬A
Übung 2: Schritt 2
A B A ⋁ B
0 0 0
0 1 1
1 0 1
1 1 1
60. Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋁ B) ⋀ ¬A
Übung 2: Schritt 3
A B A ⋁ B ¬A
0 0 0 1
0 1 1 1
1 0 1 0
1 1 1 0
61. Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋁ B) ⋀ ¬A
Übung 2: Schritt 4
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
62. Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
Y = (A ⋀ B) ⋀ ¬ (B ⋁ A)
Übung 2
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
63. Bestimmen Sie die vollständigen Wahrheitstabellen für die folgende
Funktionsgleichung:
Y = (A ⋀ B) ⋁ (A ⋀ C)
Übung 2
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
64. Bestimmen Sie die vollständigen Wahrheitstabellen
für die folgende Funktionsgleichung:
C = A ⋀ B
Y = C ⋀ C (Eingänge des Gatters kurzgeschlossen)
Übung 2
A B C = A ⋀ B Y = C ⋀ C
0 0 0 0
0 1 0 0
1 0 0 0
1 1 1 1
65. Bestimmen Sie die Wahrheitstabelle für die
folgende Schaltung:
Übung 3
A B C Y
66. Bestimmen Sie die Wahrheitstabelle für die
folgende Schaltung:
Übung 3
A B C Y
0 0 1 0
0 1 1 0
1 0 1 0
1 1 0 1
Struktur des Rechners ist unabhängig von dem zu lösenden Problem, d.h. keine starre Programmierung des Rechners über hardwareseitige Repräsentation (z.B. Kabelverbindungen bei ENIAC) des Programmes.
Anforderung: Entwurf eines allgemeinen Automaten
Automat, der wahlfreien Zugang (random access) auf alle Speicherplätze erlaubt
Formuliert von Alan M. Turing in „On computable numbers, with an application to the Entscheidungsproblem“ (1937)
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
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
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
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!).
Cache-Hierarchie
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.
Umsetzung z.B. über Transistoren Elektronisches Bauelement zum Schalten (im Nanosekundenbereich) und Verstärken elektrischer Signale (i.e. 0V / 5V)
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