Rechnerstrukturen Dario Linsky Wintersemester 2010 / 2011
Zeit und Ort Mittwochs, 16 bis 18 Uhr Hörsaal V, Mehrzweckgebäude Lahnberge Zwischenklausur am 15.12.2010 Abschlussklausur am 16.02.2011 Zulassungskriterien zur Klausur Mindestens 50 % der erreichbaren Zettelpunkte Regelmäßige und aktive Mitarbeit im Tutorium
Zettelabgabe Jeweils spätestens eine Woche nach Ausgabe Schriftlich oder per E-Mail an linsky@informatik Maximal zwei unbearbeitete Zettel Ablauf des Tutoriums Vertiefung und Ergänzung der Vorlesung Zwischenfragen jederzeit erwünscht Mitarbeit erforderlich
Teil 1: Einleitung Überblick Schnittstelle zwischen Informatik und Elektrotechnik Information als berechenbare Größe Computerinterne Darstellung von Informationen Logik und Boolesche Algebra
Grundlagen der Physik Größen und Einheiten Größe besteht aus Wert und Einheit Sieben Basiseinheiten: Zeit, Strom, Länge, Lichtstärke, Masse, Temperatur und Stoffmenge Durch Kombination weitere Einheiten möglich Größenordnungen durch Präfixe oder Potenzen Signale Wert (Amplitude) als zeitabhängige Funktion s(t) In der Natur immer kontinuierlich Umwandlung in diskrete (digitale) Signale
Digitalisierung von Signalen Verfahren Zeitlich diskrete Abtastung (Sampling) Einteilung in diskrete Wertintervalle (Quantisierung) Schritte unabhängig voneinander ausführbar Anschließende Überlagerung von Sampling und Quantisierung Codierung Wird später behandelt
Digitalisierung von Signalen s(t) s(t) (a) zeit- und wertkontinuierlich s(t) t (b) zeitdiskret, wertkontinuierlich s(t) t (c) zeitkontinuierlich, wertdiskret t (d) zeit- und wertdiskret t
Vom Signal zur Information Informationsgehalt Signale sind Träger von Information Informationsparameter I = log B p(a) 1 (1) Abhängig von Ereignissen Binäre, atomare Informationseinheit (bit,»binary digit«) b {0, 1} Tupel von Bits (Worte) Wiele Bits sind nötig, um ein Ereignis darzustellen?
Vom Signal zur Information Physische Darstellung Spannung als Informationsträger Fest definierte Potentiale (Pegel): High und Low Logische Darstellung U H,max U H,min U L,max U L,min High Nicht definiert Low Zuordnung von Pegeln zu Wahrheitswerten Positive Logik: 1 High, 0 Low Negative Logik: 0 High, 1 Low
Wie zählen wir eigentlich? Darstellung ganzer Zahlen Zahlen als Worte von Symbolen (Ziffern) z n 1,..., z 1, z 0 Alphabete von Symbolen L B = {0,..., B 1} Jede Ziffer z i L B gibt die Wertigkeit ihrer Stelle an Stellenwertsystem mit Basis B = L Zahlen darstellbar als Polynom z = n 1 i=0 z i B i (2) Transformierbar in Zahlensysteme mit anderer Basis
Wie zählen wir eigentlich? Übertrag Bei Überschreiten des Wertebereichs für eine Ziffer Zurücksetzen der Ziffer auf 0 Erhöhen der nächsten Ziffer um 1 Weitere wichtige Zahlensysteme Binärsystem: Basis B = 2 Oktalsystem: Basis B = 8 Hexadezimalsystem: Basis B = 16, L = {0,..., 9, A, B,..., F} Die Darstellung unterscheidet sich, Wert bleibt gleich
Transformation zwischen Zahlensystemen Algorithmischer Ansatz 1. Dividiere z 0 durch die Basis des Zielsystems 2. Notiere ganzzahliges Zwischenergebnis z und Divisionsrest r 3. Falls z 0: Wiederhole mit z 0 = z 5 2 = 2 Rest: 1 2 2 = 1 Rest: 0 1 2 = 0 Rest: 1 Ende Binär: 1 0 1
Transformation zwischen Zahlensystemen Abkürzendes Verfahren Möglich bei Transformation von Basis B nach Basis B n Zusammenfassen von n Stellen im Zahlensystem mit Basis B Rechts beginnen, links bei Bedarf mit 0 auffüllen Beispiel Wir transformieren die Binärzahl 1 1101 0010 1100 1001 in das Hexadezimalsystem:...1 1101 0010 1100 1001 1 13=D 2 12=C 9
Logische Operationen Algebraisches Rechnen mit Binärwerten Verknüpfen von binären Werten b {0, 1} Berechnungen sind abgeschlossen, d.h. Ergebnisse sind wieder im Binäralphabet Notation über Wahrheitstabellen Definition eines vollständigen Satzes an Operationen x y f (x, y) 0 0 0 0 1 1 1 0 0 1 1 0
Logische Operationen Elementare Operationen Negation (»nicht«): f (x) = x = x Konjunktion (»und«): f (x, y) = x y = xy Disjunktion (»oder«): f (x, y) = x y = x + y Abgeleitete Operationen Negiertes Oder (»nor«): f (x, y) = x y = x + y Negiertes Und (»nand«): f (x, y) = x y = xy Antivalenz (»xor«): f (x, y) = (x y) ( x y) Äquivalenz (»xnor«): f (x, y) = (x y) ( x y)
Allgemeine Rechenregeln Regel Definition Kommutativität (x y) = (y x), (x y) = (y x) Assoziativität (x y) z = x (y z), (x y) z = x (y z) Distributivität x (y z) = (x y) (x z), x (y z) = (x y) (x z) Idempotenz x x = x, x x = x Absorption x (y z) = x, x (y z) = x Neutralität x 1 = x, x 0 = x Extremalgesetz x 0 = 0, x 1 = 1 Involution ( x) = x Dualität 0 = 1, 1 = 0 Komplement x ( x) = 0, x ( x) = 1
Allgemeine Rechenregeln Vollständige Logiken Die Menge der Operationen {,, } definiert eine vollständige Logik auf dem Binäralphabet Alternativ definiert die Menge {, } ebenfalls eine vollständige Logik De Morgans Theoreme Beide Logiken sind äquivalent und können mit Hilfe der Theoreme von De Morgan ineinander überführt werden x y = x y x y = x y (3) (4)
Allgemeines zur Codierung Allgemeines zur Codierung Bijektive Abbildungen Darstellung durch Berechnungsvorschrift oder Zuordnungstabelle Minimale Wortlänge (oft nicht erreichbar) Redundanz sinnvoll ausnutzen Binär codierte Dezimalzahlen Einfachster Code Binärzahlen durch Transformation des Zahlensystems
Codierung quantisierter Signale Binäre Codierung Abgetastete Werte werden binär codiert Überlauf vermeiden Höhere Frequenz erforderlich Serielle oder parallele Übertragung s(t) t
Hamming-Distanz Hamming-Distanz Maß für Unterschiedlichkeit von Wörtern Anzahl der unterschiedlichen Symbole in zwei Wörtern Berechnung durch bitweise Antivalenz und Abzählen der Einsen (x, y) = x i y i 1, i = 0,..., n (5) Hamming-Gewicht Hamming-Distanz eines Wortes zum Nullwort
Hamming-Distanz 011 111 010 110 001 101 000 100
Gray-Code Gray-Code Code mit einer Hamming-Distanz von (x n, x n+1 ) = 1 Zirkulärer Code Vorteilhaft beim Entwurf von Zählern Algorithmisch aus Binärcodes berechenbar n x n x n+1 0 000 001 1 001 011 2 011 010 3 010 110 4 110 111 5 111 101 6 101 100 7 100 000
Gray-Code Zeichencodierung Klassisch über ASCII-Code (7 Bit) Lateinische Buchstaben, Zahlen, Sonderzeichen Großbuchstaben ab 65 (entspricht»a«) Kleinbuchstaben ab 92 (entspricht»a«) Ziffern ab 48 (entspricht»0«) Niedrige Stellen (unter 32) mit Steuerzeichen belegt Heutige Alternativen: ISO-8915, Unicode,...
Positive und negative Zahlen Problem Computer kennt nur 1 und 0 Keine Vorzeichen vordefiniert Zweierkomplement Algorithmischer Lösungsansatz Entspricht Vorzeichenwechsel der binär codierten Zahlen Links stehen nur noch Einsen 1. Invertiere jedes einzelne Bit (Einerkomplement) 2. Addiere 1 (Zweierkomplement)
Positive und negative Zahlen Beispiel Binär codierte Zahl 2 = 010 1. Invertieren zum Einerkomplement: 101 101-3 100-4 011 3 2. Inkrementieren zum Zweierkomplement: 110 110-2 2 010 Entspricht Vorzeichenumkehr (in beide Richtungen) Zirkulärer Wertebereich -1 111 0 000 1 001 Auf Bereichsfehler achten!
Reelle Zahlen Problem Bisher nur ganze Zahlen möglich Darstellung von reellen Zahlen Erweiterung der Polynomdarstellung z = z i B i i= (6) Ideale Darstellung ohne Rundungsfehler Praktisch nicht realisierbar wegen endlichem Speicher Stattdessen werden Fließkommazahlen verwendet
Reelle Zahlen Fließkommazahlen Idee: Bei sehr großen Zahlen sind kleine Werte vernachlässigbar Aufteilung in Mantisse und Exponent Vorzeichenbit (1 für negative, 0 für positive Zahlen) Normierte Codierung nach IEEE-754 Standard Nachteil: Rundungsfehler nicht ausgeschlossen 1 1000 0110 1011 1011 1000 0000 0000 000 Sign Exponent Mantisse 1 Bit 8 Bit 23 Bit
Reelle Zahlen Exponent Verschiebung (Bias) um 127 Größenordnung n = e 127 der codierten Zahl Mantisse Legt die Nachkommastellen der codierten Zahl fest Verschoben um n Bits Imaginäre Eins vorm Komma