Grundlagen der Computertechnik Aufbau von Computersystemen und Grundlagen des Rechnens Walter Haas PROLOG WS22 Automation Systems Group E83- Institute of Computer Aided Automation Vienna University of Technology email: tgi@auto.tuwien.ac.at
Grundfragen Auf der Suche nach dem Grundbaustein der Information 2
Was ist Information? Information ist Information Information ist weder Materie noch Energie Informationsmenge Erkenntnisinteresse des Empfängers Überraschungswert einer Nachricht Beseitigen oder Verkleinern von Ungewissheit Claude E. Shannon (96-2) A Mathematical Theory of Communication Klassische Informationstheorie Shannon (948), Untersuchungen zum Informationstransport über einen Nachrichtenkanal Informationsgehalt eines Zeichens Wahrscheinlichkeit für das Auftreten des Zeichens in einer Nachricht Folge unabhängiger Zeichen Informationssumme der Einzelzeichen => Informationsgehalt der Nachricht 3
Wie kann man Information messen? Entscheidung zwischen zwei Alternativen Einfachste Grundsituation im Informationsaustausch Per Definition Grundeinheit der Information Bit ( Binary Digit ) Bit entspricht dem Informationsgehalt einer Entscheidung zwischen 2 Alternativen ( Ja-Nein-Entscheidung ). Jede Information ist als Folge von binären Entscheidungen darstellbar Jedes zusätzliche Bit Information verdoppelt John W. Tukey (95-2) die Anzahl der Alternativen. Synonyme Zuordnungen: -, Ja - Nein, Ein - Aus, Wahr - Falsch, High - Low, 4
Technik der Informationsdarstellung Notwendig: Eindeutig unterscheidbare Zustände Mit 2 Zuständen einfach realisierbar! Relais Transistor Elektronen- Röhre Schalter Lochstreifen Lochkarte Strich-Code Ringkernspeicher 5
Schaltalgebra Logik als Basis der Computerkonstruktion 6
Boolesche Algebra Algebra der Logik (847) Grundlage, um Logik formal auszudrücken Operationen mit Aussagevariablen Aussagevariablen, Platzhalter für log. Aussagen Variable mit wahr oder falsch belegt. Zweierschritt => Bit Information George Boole (85-865) Weiterentwicklung durch Shannon (938) => Schaltalgebra Mathematische Behandlung komplexer elektrischer Systeme Schaltungen aus Relais und Schaltkontakten Struktur dargestellt durch mathematische Gleichungen 7
Logische Grundfunktionen Ein einfaches Modell für Aussagevariablen: Ventil / Schalter A in der linken Stellung Aussage A ist wahr Wasser / Strom fließt A= Logische Funktionen können durch Verknüpfen mehrerer Aussagevariablen gebildet werden! Ventil / Schalter A in der rechten Stellung Aussage A ist falsch Wasser / Strom gesperrt. A= 8
Möglichkeit : Serienschaltung Gesamtaussage ist WAHR (), wenn A UND B WAHR () sind! A B Wahrheitstabelle A B A B 9
Möglichkeit 2: Parallelschaltung Gesamtaussage ist WAHR (), wenn A ODER B WAHR () ist oder beide WAHR () sind! A B Wahrheitstabelle A B A B
Möglichkeit 3: Negation Aussage NICHT A ist WAHR () wenn A FALSCH () ist! A Wahrheitstabelle A A
Beispiel: Gasthaus Zum Scharfen Eck 2 4 Kriterien müssen erfüllt sein, damit ein Gast willkommen ist: Der Gast ist nicht betrunken Der Gast ist hungrig oder durstig Der Gast zahlt bar A B C D A B C D B C Wahrheitstafel A A (B C) D
Rechenregeln der Booleschen Algebra Assoziativgesetz (A B) C = A (B C) (A B) C = A (B C) Kommutativgesetz A B = B A A B = B A Distributivgesetz A (B C) = (A B) (A C) A (B C) = (A B) (A C) Weitere Umformungsregeln A = A = A A = A A = A A = A A A = A A A = A A = 3
A B C D F(A,B,C,D) Berechnen der Schaltung aus der Wahrheitstafel 4. Schritt: Auslesen der en ( A B C D) ( A B C D) ( A B C D) 2. Schritt: Distributivgesetz A [(B C) (B C) ( B C)] D 3. Schritt: Assoziativ- und Distributivgesetz A {[B (C C)] ( B C)] D 4. Schritt: A A = A {[B ] ( B C)} D 5. Schritt: A = A A [B ( B C)] D 6. Schritt: Distributivgesetz + Vereinfachen A [(B B) (B C)] D 7. Schritt: A A = und A = A A (B C) D
Bauelemente Relais Zuse Z3 (94) ca. 2 Relais Harvard Mark II (947) 5
Bauelemente Relais Zuse Z3 (94) ca. 2 Relais Harvard Mark II (947) Elektronenröhre Colossus (943), ca. 25 Röhren ENIAC (946) ca. 7 Röhren, 7 Dioden, 5 Relais 6
Bauelemente Relais Zuse Z3 (94) ca. 2 Relais Harvard Mark II (947) Elektronenröhre Colossus (943), ca. 25 Röhren ENIAC (946) ca. 7 Röhren, 7 Dioden, 5 Relais Transistor TRADIC (955) ca. 7 Transistoren, Dioden Mailüfterl (958), ca. 3 Transistoren, 5 Dioden nicht leitend leitend 7
Bauelemente Relais Zuse Z3 (94) ca. 2 Relais Harvard Mark II (947) Elektronenröhre Colossus (943), ca. 25 Röhren ENIAC (946) ca. 7 Röhren, 7 Dioden, 5 Relais Transistor TRADIC (955) ca. 7 Transistoren, Dioden Mailüfterl (958), ca. 3 Transistoren, 5 Dioden Integrierte Schaltungen (ab 96) IBM/36 Serie (ab 964) Mikroprozessoren Intel 44 (97) ca. 23 Transistoren Texas Instruments TMS (974) 8
Schaltsymbole () Logikgatter Logische Grundfunktionen als Bauteile Beispiel: UND-Funktion Eingänge oder & Ausgang der Gesamtschaltung: (nicht leitend) (leitend) 9
Schaltsymbole (2) Grundfunktionen Negation (NOT-Gate) A A Konjunktion (AND-Gate) A B & A B Disjunktion (OR-Gate) A B A B Exklusives ODER (XOR): A B A B A = B A B = (A B) ( A B) A B 2
Schaltsymbole (3) Zutrittsfunktion Zum Scharfen Eck als Gatterschaltung realisiert A B C D & 2
Wurzeln des Rechnens Zahlensysteme und Rechenschaltungen 22
Dezimalsystem Positionssystem (Stellenwertsystem) Wertigkeit einer Ziffer abhängig von der Position innerhalb der Zahl Wertigkeiten sind Vielfache der Basis Zeichenvorrat (Ziffernzeichen),,, 9 Sonderstellung der Ziffer...gilt allein nichts, außer wenn sie anderen Ziffern nachgesetzt wird, so erhöht sie deren Wert Adam Ries (492-559) Beispiel: 7 8 9 5. 3 tausend hundert zehn eins zehntel hundertstel = 7 x ( 3 ) + 8 x ( 2 ) + 9 x ( ) + 5 x ( ) + 3 x / ( - ) + x / ( -2 ) 23
Alternative Zahlensysteme () Die ganzen Zahlen hat der liebe Gott geschaffen, alles andere ist Menschenwerk. Art und Weise des Zählens Zahlendarstellung => Künstlich geschaffenes System In unabhängigen Kulturen unabhängig entwickelt Leopold Kronecker (823-89) Zählen im Dezimalsystem Historisch gewachsen Wahl der Basis ist willkürlich Zahl ist nur eine Abstraktion für eine Anzahl von Dingen Rechnen = Zusammenrechen 24
Alternative Zahlensysteme (2) Allgemeines Positionssystem mit Basis b > Ziffernzeichen a i :... (b-) (... a 3 a 2 a a a -...) b =... + a 3 b 3 + a 2 b 2 + a b + a b + a - b - +... Binärsystem (Basis b = 2) 2 Ziffernzeichen: und Beispiel: (.) 2 = x 2 3 + x 2 2 + x 2 + x 2 + x 2 - Hexadezimalsystem (Basis b = 6) 6 Ziffernzeichen:... 9, A... F Gottfried Wilhelm Leibniz (646-76) Beispiel: (A9.E) 6 = x 6 + 9 x 6 + 4 x 6-25
Rechnen im Binärsystem Rechenvorschriften analog zum Dezimalsystem Stellenweise, rechts beginnen, bei Bedarf Übertrag auf nächste Stelle Addition + = + = + = + = Übertrag Übertrag Subtraktion - = - = - =, Übertrag - = - Übertrag 26
Konstruktion eines Addierers für Binärzahlen Logische Schaltung zum Addieren einer Stelle zweier Binärzahlen Eingänge a i und b i für die Summanden Ausgang für die Summe s i Ausgang für den Übertrag c i b i a i + s i c i Übertragen der Rechenregeln in eine Wahrheitstabelle + = + = + = + = Übertrag a i b i s i c i 27
Konstruktion eines Addierers für Binärzahlen (2) Auslesen der en aus der Wahrheitstabelle s i = (a i b i ) ( a i b i ) = a i b i c i = a i b i a i b i s i c i Fertige Addier-Schaltung a i s i c i b i 28
Addition mehrstelliger Binärzahlen Problem: Was passiert mit Übertrag c i-? a i b i a i b i c i- HA c i s i c i- b i a i HA s c HA s i c i VA c i s i Halbaddierer Volladdierer Beispiel: 4 Bit Addierer 29
Zahlendarstellungen Grundlagen der Computerarithmetik 3
Die Welt der Zahlen Negative Zahlen? -, -2,, Die Welt besteht nicht nur aus positiven ganzen Reelle Zahlen? Zahlen!!! Rationale Zahlen? Wie lassen sich solche Zahlen in einem Computer mit und darstellen?,, 3
Negative Zahlen Wie lassen sich positive und negative Zahlen unterscheiden? + positiv Vorzeichen: - negativ +7-7 Darstellung in und Vorzeichen Betrag Idee: Reservieren Bit mit fester Position für Vorzeichen! => positiv (+) => negativ (-) () 2 = (7) = (-7) Feste Wortlänge (!) 32
Darstellung mit Vorzeichen und Betrag 33 Zahlenkreis 2 3 4 5 6 7 8 9 2 3 4 5 Negative Zahlen Negative Zahlen Positive Zahlen Positive Zahlen - - -2-3 -4-5 -6-7
Einerkomplement Positive Zahlen Betrag als Dualzahl Negative Zahlen Invertieren der Bits des Betrags => => - -2-3 - 2 3 4 Beispiel: = (5) -4-5 -6-7 7 6 5 = (-5) 34
Zweierkomplement Positive Zahlen Betrag als Dualzahl Negative Zahlen Einerkomplement + -2-2 -3 3 Beispiel: -4 4 = (5) -5 5 Einerkomplement + = (-5) -6-7 -8 7 6 35
Rechnen im Zweierkomplement Vorteil der Zweierkomplementdarstellung: Algebraische Vorzeichenregeln ergeben sich auf natürliche Weise! Keine separate Subtraktion notwendig. Beispiel: (7) (4) (4 Bit Darstellung).Schritt: Zweierkomplement (4) = () 2 Einerkomplement + = (-4) 2.Schritt: Addition + Übertrag Führende durch begrenzte Wortbreite verloren 36
Rationale und Reelle Zahlen Numerische Berechnungen Oft sind Berechnungen mit gebrochenen Zahlen notwendig Erforderlich => Darstellung reeller Zahlen in Computern Naheliegende Idee: Festpunkt-Zahlensystem Feste Unterteilung der Stellen Vorkommastellen Nachkommastellen Vorzeichen ( positiv, negativ) Gesamtlänge Bit VZ Vorkommateil (g) Nachkommateil (n) Binärpunkt oder Dezimalpunkt 37
Vorteile-/Nachteile der Festpunktdarstellung Vorteile Für den Menschen leicht verständlich Addition/Subtraktion einfach Multiplikation/Division mit Skalierungsfaktor möglich Nachteile Intervall zwischen größter und kleinster darstellbarer Zahl klein Position des Binärpunktes fix Keine flexible Aufteilung zwischen Vorkomma-/Nachkommateil Wünschenswert: Große Zahlen mit wenigen Nachkommastellen Kleine Zahlen mit vielen Nachkommastellen Lösung: Gleitpunkt-Darstellung 38
Gleitpunktdarstellung () Grundidee Jede Zahl erhält einen individuellen Skalierungsfaktor Wahl des Skalierungsfaktors: b k (abhängig von Basis b) b k entspricht Verschieben des Binär-/Dezimalpunktes um k Stellen Anpassung der Genauigkeit an Größenordnung der Zahl Große Zahlen, weniger Nachkommastellen Kleine Zahlen, mehr Nachkommastellen Beispiele (dezimal): 23 23 23.23 39
Gleitpunktdarstellung (2) Mehrdeutigkeit der Darstellung Mit verschiedenen Skalierungsfaktoren mehrere Darstellungen für die selbe Zahl Beispiel (dezimal): 23 2.3.23 23 Lösung: Normalisierte Form der Darstellung Eingeschränkte Wahl der Skalierung Position des Binärpunktes so, dass erste Ziffer immer ungleich! Beispiele (dezimal):.23.23 23.23 4
Codierung einer Binären Gleitpunktzahl Reserviere in einer Folge von Binärziffern Felder fester Länge für Vorzeichenbit ( positiv, negativ) Exponent ohne Basis ( Stellen) Mantisse = Ziffern der Zahl Stellen) VZ Exponent Mantisse msb lsb Indizierung Bitnummer Bit 4
Rechnen mit Gleitpunktzahlen Beispiel: Addition.23 23 2. 2 Addition Schritt : Angleichen der Exponenten Rechtsschieben der Zahl mit dem kleineren Exponenten.23.2 Addition Schritt 2: Addieren der Mantissen.23.2.25 Addition Schritt 3: Normalisieren des Ergebnisses Wenn Vorkommateil oder mehrstellig (>9) ist! Im Beispiel ist das Ergebnis bereits normalisiert. 42
Genauigkeit von Fließpunktzahlen () Endliche Stellenanzahl der Computerzahlen Endlicher Vorrat an Fließpunktzahlen Die Zahlengerade weist Lücken auf Nur wenige Reelle Zahlen sind genau darstellbar! -7-6 -5-4 -3-2 - 2 3 4 5 6 7 Beschränkte Menge von Fließpunktzahlen Selbst einfache (Dezimal-)Zahlen lassen sich binär nicht genau angeben! Ergebnis einer Rechenoperation fällt nicht immer genau auf eine darstellbare Fließpunktzahl. Zahlen und Rechenergebnisse müssen gerundet werden Runden = Abbildung auf Menge der darstellbaren Fließpunktzahlen Konsequenz: Rechnungen sind mit Ungenauigkeiten behaftet! 43
Genauigkeit von Fließpunktzahlen (2) Beispiel: Umwandeln von (.) ins Binärsystem. x 2 =.2.2 x 2 =.4.4 x 2 =.8.8 x 2 =.6.6 x 2 =.2.2 x 2 =.4 Ergebnis ist eine periodische Binärzahl:. Wie groß ist der Rundungsfehler? Angenommen: Nur 5 Nachkommastellen darstellbar, restliche Stellen werden abgeschnitten Rückrechnung:. 2 2.625.325.9375 Absoluter Rundungsfehler:..9375.625 44
Auswirkung von Rundungsfehlern Algebraische Gesetze teilweise nicht mehr gültig Assoziativgesetz:.23.53.456(Kaufm. Runden auf 3 Stellen).23.53.2453.25.25.456.76.7.53.456.473.47.23.47.7.7 Fehler pflanzen sich fort Instabilitäten bei numerischen Berechnungen Mangelnde Zuverlässigkeit von Ergebnissen Extremfall: Auslöschungseffekt Beispiel: 3.34 4.22 2.28 (Kaufm. Runden auf 3 Stellen) 3.34.556.2 4.22 2.28.264. Ergebnis mit Rundungsfehler:.2.. Exaktes Ergebnis:.292 45
Zusammenfassung Information Minimaler Informationsgehalt => Entscheidung zwischen 2 Alternativen Klassische Informationstheorie von Shannon Bit als kleinste Informationseinheit Schaltalgebra Logik als Grundlage der Computerkonstruktion (Boolesche Algebra) Grundfunktionen: UND, ODER und Negation Ermöglicht Systematische Berechnung von Schaltfunktionen Zahlensysteme Unterscheidung Zahl und Zahlendarstellung Positionssystem als verallgemeinerte Darstellung Binäre Zahlendarstellung im Computer Darstellung negativer Zahlen durch Zweierkomplement Darstellung Reeller Zahlen durch Gleitpunktdarstellung 46
Quellenangaben Charles Petzold CODE, The Hidden Language of Computer Hardware and Software Microsoft Press 2 H. R. Wieland Computergeschichte(n) nicht nur für Geeks. Von Antikythera zur Cloud Galileo Computing, 2 Friedrich L. Bauer Historische Notizen zur Informatik Springer Verlag, 29 Walter R. Fuchs Knaurs Buch der Denkmaschinen Droemer Knaur, 968 David Goldberg What Every Computer Scientist Should Know About Floating Point Arithmetic ACM Computing Surveys, Vol. 23, No., March 99 WIKIPEDIA www.wikipedia.org Computer History Museum www.computerhistory.org The Antique Chip Collectors Page www.antiquetech.com The MacTutor History of Mathematics Archive www.history.mcs.st-andrews.ac.uk ORACLE ThinkQuest Computer History http://library.thinkquest.org/8268/history/ 47