e D TI II S Distributed embedded Systems Sommersemester 2008 Prof. Dr. Mesut Güneş 6. Exercise Out 26.05.08 Discussion 6.06.08 Contact by questions Christian Grümme, Sven Ketelsen, Georgy Sklyarenko, Marie Hoffmann {gruemme/ketelsen/sklyar/mhoffman}@mi.fu-berlin.de Problem 1: IEEE-Gleitkommazahlen (2+2+4+4=12) a) Welchen Bereich der positiven Zahlen kann man mit normalisierten Gleitkommazahlen im IEEE-754-Format mit 64 Bit darstellen? b) Wenn Zahlen vorkommen, deren Betrag kleiner ist als die kleinste positive normalisierte Gleitkommazahl, die aber dennoch nicht Null sind, so spricht man von einem Underflow. In diesem Fall rechnet die IEEE-Arithmetik so lange wie möglich mit nicht normalisierten Zahlen weiter. Nicht normalisierte Zahlen sind gekennzeichnet durch den Exponenten -126 bzw. -1022 und eine Mantisse ungleich Null. Welchen Bereich der positiven Zahlen kann man so zusätzlich darstellen, wenn man Gleitkommazahlen im IEEE-754-Format mit 64 Bit betrachtet? c) Seien z1 = 6.25 und z2 = 2.0625 + 2−21 + 2−22 im Dezimalsystem gegeben. Transformieren Sie diese Zahlen ins IEEE-754-Format mit 32 Bit (inkl. Normalisierung) und berechnen Sie dann die Summe z1 + z2 . d) Schätzen Sie den relativen Fehler bei der Darstellung einer Zahl x ∈ R durch eine Gleitkommazahl im IEEE-754-Format mit 32 Bit ab. Unterscheiden Sie dabei zwischen dem Bereich zwischen der kleinsten und der größten darstellbaren Zahl und dem Bereich außerhalb. Problem 2: Gleitkomma-Arithmetik (4+4=8) Bei den folgenden Rechenaufgaben soll nicht gerundet werden; überflüssige Stellen sollen einfach ignoriert (abgeschnitten) werden. Führen Sie die folgenden Rechnungen im Binärformat aus, und geben Sie das Ergebnis wieder im IEEE-Format für 32-Bit-Gleitkommazahlen an. a) Addition von 00111110010000000000000000000000 und 00111110101000000000000000000000. b) Multiplikationvon 00111110110000000000000000000000 und 10111111001000000000000000000000. Problem 3: Carry-lookahead-Addierer (2+2+2=6) a) Lösen Sie die rekursive Berechnung von ü4 dem Skript entsprechend in Und- und OderVerknüpfungen von gi und pi mit i 6 4 auf. b) Berechnen Sie gi und pi mit i 6 4 für a4..1 = 0101 und b4..1 = 1101. c) Berechnen Sie die ersten vier Ziffern si mit i 6 4 der Summe von a und b aus b) entsprechend der Carry-lookahead-Addierer-Methode. 1 e D S Distributed embedded Systems TI II Sommersemester 2008 Prof. Dr. Mesut Güneş Problem 4: MMIX – Unterprogramme (5+5=10) Informieren Sie sich über die Erstellung von Unterprogrammen in MMIX. a) Implementieren Sie ein Unterprogramm für die Berechnung der Fakultätsfunktion n! = 1 · 2 · . . . · n und geben Sie ein Hauptprogramm an, vom dem das Unterprogramm aufgerufen wird. b) Die rekursive Berechnung des Binomialkoeffizienten n k kann mittels folgender Funktion durchgeführt werden: function binom (n,k : integer) : integer; begin if (k=0 OR k=n) then binom := 1 else if k=1 then binom := n else binom := binom(n-1,k) + binom(n-1,k-1) end; Schreiben Sie ein vollständiges MMIX Assemblerprogramm, welches mittels eines rekursiven Unterprogramms den Binomialkoeffizient n berechnet. k 2