FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Lösungsvorschlag zur Einführung 21.10.2016 Darstellung ganzer Zahlen Antworten zu den Fragen im Text Boolsche Algebra ☞ Was heisst eigentlich analog“, diskret“, digital“ und binär“? ” ” ” ” Analog: Kontinuierlich, stetig veränderbar, keine Rastung“. ” Fast alle physikalischen Werte sind analog. Problem ist die Unterscheidbarkeit durch Rauschen, thermische Einflüsse und andere Abweichungen. Diskret: Es gibt einzelne Abstufungen. Digital: Die Eigenschaft, nur diskrete Werte anzunehmen. Binär: Zwei, sich gegenseitig auschließende Zustände (z. B. 0 und 1). Dual: Stellenwertsystem mit 0 und 1 (für die Zahldarstellung). ☞ Welche anderen physikalischen Größen kennen Sie oder können Sie sich zur Repräsentation der Werte 0 und 1 vorstellen? Hier gibt es im Prinzip beliebig viele Möglichkeiten, solche Werte darzustellen, z. B.: Stromstärke: Bei alten Fernschreibern war die sogenannte 20 mA-Stromschleife eine gängige Variante der Datenübertragung, bei der die beiden logischen Werte Stromstärken von +20 mA und −20 mA auf der Übertragungsleitung entsprachen. Lichtintensität: Gerade bei Glasfaserleitungen oder auch bei Infrarotübertragungen werden logische Werte über An/Aus von Lichtquellen definiert. Dabei werden diese allerdings aus Störsicherheitsgründen und zur Rückgewinnung eines Zeichentaktes häufig noch mit verschiedenen Codierungen versehen. Frequenz: Ein typisches Beispiel hierfür sind althergebrachte Modems und Akustikkoppler, bei denen die logischen Werte im einfachsten Fall durch zwei verschieden hohe Töne verwirklicht werden. 1 ☞ Wie sehen die Wahrheitstabellen für die einfachen unären und binären Operatoren NEG (Negation), UND und ODER aus? e e e1 e2 e1 · e2 e1 e2 e1 + e2 0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 Zahlsysteme ☞ Welches Merkmal macht den entscheidenden Unterschied des arabischen zum römischen System der Zahldarstellung aus? Der entscheidende Unterschied ist die Radixschreibweise. Während es für stellenwertbasierte Zahlsysteme einfache Algorithmen für die vier Grundrechenarten gibt, existieren derartige Verfahren für das römische Zahlsystem nicht. ☞ Warum sind gerade diese Systeme in der Informatik gebräuchlich? Die Basis 2 ist das natürliche“ Zahlsystem der Informatik, da die heutigen Rechnern zugrun” deliegende Digitaltechnik auf der Unterscheidung zwischen zwei Zuständen beruht. Oktal- und Hexadezimalsytem sind mnemotechnische Hilfsmittel, die die langen Folgen von Nullen und Einsen des Binärsystems in eine für den Menschen besser lesbare Form bringen, wobei aber zugleich eine sehr einfache Umrechnung vom bzw. ins binäre Format möglich ist. ☞ Was ist zum Fall B = 1 zu sagen? Mit B = 1 lässt sich kein Zahlsystem nach der Radixschreibweise definieren. ☞ Vervollständigen Sie die nachfolgende Tabelle: binär oktal dezimal hexadezimal 11100002 10100002 1010000012 101010112 1608 1208 5018 2538 11210 8010 32110 17110 7016 5016 14116 AB16 2 Darstellung von Zahlen im Rechner ☞ Welcher Zahlenbereich kann mit einem 8 Bit breiten Zahlenformat dargestellt werden? Mit einem 8 Bit breiten Zahlformat können vorzeichenlose Zahlen im Bereich [010 ; 25510 ] ([0000 0000; 1111 1111]) dargestellt werden. Allgemein kann ein n Bit breites Format den Bereich [0; 2n − 1] darstellen. ☞ Führen Sie folgende Operationen nach den bekannten Regeln für das Rechnen ” auf dem Papier“ aus. 3210 ---110 111 11 -----1101 6 + 7 1 ----13 6 x 7 ----42 76543210 -------01111111 00110101 Bitposition 127 - 53 1 -----74 Operand 1 Operand 2 Übertrag Ergebnis -------01001010 Bitposition Operand 1 Operand 2 Übertrag Ergebnis 110 x 111 --------110 110 110 11 Übertrag ----101010 ☞ Welchen logischen Verknüpfungen entsprechen die Elementaroperationen auf den einzelnen Stellen bei der Addition (Summe und Übertrag)? Die Elementaroperationen a <op> b: Addition Übertrag a\b 0 1 Addition Summe a\b 0 1 0 0 1 0 0 0 1 1 0 1 0 1 exklusives oder (XOR) logisches und (AND) 3 Negative Zahlen Einer-Komplement ☞ Wie erkennt man am einfachsten, ob eine Zahl positiv oder negativ ist? Haben alle Zahlen eine eindeutige Darstellung? • Im Einer- wie im Zweierkomplement ist eine negative Zahl an einer 1 in der höchstwertigen Bit-Position erkennbar. • Während im Einerkomplement zwei Darstellungen der Null existieren (die positive“ 0000 00002 ” und die negative” 1111 11112 ), haben im Zweierkomplement alle Zahlen eine eindeutige Dar” stellung. Zweier-Komplement ☞ Berechnen Sie mit 9 Bit Stellenanzahl 256 − 38. Im Zweierkomplement rechnet man immer modulo 2n , wenn n die Breite des Datenformats ist. ” Beispiel: + −3810 25610 110110102 1000000002 21810 −3810 1110110102 110110102 tatsächliches Ergebnis Ergebnis im Register Vorzeichen, Übertrag und Überlauf ☞ Unter welchen Voraussetzungen kann es bei Addition und Subtraktion zum Überlauf kommen? Ein Überlauf tritt auf • bei der Addition – wenn beide Operanden positiv sind und das Ergebnis größer als 2n−1 − 1 ist – wenn beide Operanden negativ sind und das Ergebnis kleiner als −2n−1 ist • bei der Subtraktion – wenn der 1. Operand positiv, der 2. Operand negativ und das Ergebnis größer als 2n−1 − 1 ist – wenn der 1. Operand negativ, der 2. Operand positiv und das Ergebnis kleiner als −2n−1 ist ☞ Wie kann ein Überlauf anhand der Carrybits festgestellt werden? Ein Überlauf liegt immer dann vor, wenn Carry-In (das für die höchstwertige Bitstelle benötigte Übertragsbit) und Carry-Out (das aus der höchsten Stelle entstehende Übertragsbit) verschieden sind. 4 1000 1001 0111 -8 0110 1010 -7 7 -6 6 0101 1011 -5 5 1100 -4 4 0100 -3 3 0011 1101 -2 2 1110 0010 -1 0 1 1111 0001 0000 4 + 7 1 11 -5 + 3210 0100 0111 1 1000 1001 0111 -8 0110 1010 -7 7 -6 6 0101 1011 -5 5 1100 -4 4 0100 -3 3 0011 1101 -2 2 1110 0010 -1 0 1 1111 0001 0000 Overflow: 1 Carry-In Carry-Out + 1011 7 1000 1001 0111 0110 1010 -7 -8 7 6 -6 0101 1011 5 -5 1100 -4 4 0100 -3 3 0011 1101 2 -2 1110 0010 -1 0 1 1111 0001 0000 - 2 7 3210 0010 - 0111 1111 -5 11011 4 3 + 3210 0100 0011 Overflow: 0 Carry-In Carry-Out 0111 1000 1001 0111 0110 1010 -7 -8 7 6 -6 0101 1011 5 -5 1100 -4 4 0100 -3 3 0011 1101 2 -2 1110 0010 -1 0 1 1111 0001 0000 -2 + -8 Overflow: 0 Carry-In Carry-Out -10 6 3210 1110 + 1000 1 10110 Abbildung 1: Die Lösungen zu den Rechenbeispielen (1) 5 Overflow: 1 Carry-In Carry-Out 1000 1001 0111 -8 0110 1010 -7 7 -6 6 0101 1011 -5 5 1100 -4 4 0100 -3 3 0011 1101 -2 2 1110 0010 -1 0 1 1111 0001 0000 -3 - 7 -10 6 - 3210 1101 0111 11 1000 1001 0111 -8 0110 1010 -7 7 -6 6 0101 1011 -5 5 1100 -4 4 0100 -3 3 0011 1101 -2 2 1110 0010 -1 0 1 1111 0001 0000 -8 + 7 Overflow: 1 Carry-In Carry-Out 0110 -1 1000 1001 0111 0110 1010 -7 -8 7 6 -6 0101 1011 5 -5 1100 -4 4 0100 -3 3 0011 1101 2 -2 1110 0010 -1 0 1 1111 0001 0000 -3 + -3 3210 1101 + 1101 11 1 -6 11010 + 3210 1000 0111 Overflow: 0 Carry-In Carry-Out 1111 1000 1001 0111 0110 1010 -7 -8 7 6 -6 0101 1011 5 -5 1100 -4 4 0100 -3 3 0011 1101 2 -2 1110 0010 -1 0 1 1111 0001 0000 -2 - -8 Overflow: 0 Carry-In Carry-Out 6 - 3210 1110 1000 0110 Abbildung 2: Die Lösungen zu den Rechenbeispielen (2) 6 Overflow: 0 Carry-In Carry-Out