KLAUSUR ”Informatik 1” für Elektrotechniker & Mechatroniker Prof. Dr.-Ing. Christian Hochberger Aufgabe Punkte 1 9 2 6 3 15 15.02.2011 Dauer: 120 min. 4 10 5 14 6 12 7 10 8 5 9 19 Σ 100 Aufgabe 1 - Zahlendarstellung a) Gegeben ist der dezimale Wert 4216, 4375. Bestimmen Sie dazu das binäre Gleitkommawort nach dem Standard IEEE 754 (6 Pkt.) b) Gegeben ist ein binäres 32-Bit Maschinenwort: 1111 1111 1111 1111 0001 1100 0000 0000 Interpretieren Sie dieses als Ganzzahl im B-Komplement. Geben Sie den dezimalen Wert an. (3 Pkt.) Aufgabe 2 - Rechnen mit Binärzahlen Gegeben sind die folgenden dezimalen Zahlen: a = 29, b = −23, c = 18 Konvertieren Sie diese in 8-Bit Binärzahlen (einschließlich Vorzeichen, negative Zahlen im B-Komplement). Berechnen Sie schriftlich binär und geben Sie die Ergebnisse binär und dezimal an: a − b, a + c, c − b Aufgabe 3 - DLX-Programmierung Gegeben ist ein Zahlenfeld wie beschrieben mit Werten der Länge 32-Bit. Durchsuchen Sie dieses Feld und geben Sie die Anzahl aller nicht durch 2 teilbaren Zahlen an. start: end: .text 0x40000 LHI R5, 0x200 ... TRAP 0 .data feld1_lang: .word anzahl_ungerade: .word feld1: .word .word 0x2001000 xxxx ; Länge des Feldes in Worten xxxx ; Ergebnis xxxx ; 1. Wert des Feldes xxxx Aufgabe 4 - Boolesche Funktionen und Gatter Ergänzen Sie die folgende Tabelle in den freien Feldern mit den in der Vorlesung verwendeten Symbolen, den binären Werten für den Ausgang und die Funktionsnamen. Eingang Operator A B 0 0 0 1 1 0 1 1 Symbol in Gleichungen Schaltzeichen S 0 1 1 0 1 0 0 1 6= Ü 0 0 0 1 ∧ =1 Aufgabe 5 - Adressierungsarten 5.1) Tragen Sie die Adressierungsart für alle Operanden in die Tabelle ein und bestimmen Sie die Speicheradresse, auf die die Load- und Store-Anweisungen zugreifen, wenn sich die sieben Befehle auf das untenstehende Datenfeld beziehen. Befehl 1 2 3 4 5 6 7 ADDI LHI ORI LW ADDI LB LB wert1: wert2: anzahl Feld1: data1 data2 Operand 1 Operand 2 Operand 3 für L/S-Befehle Hauptsp.-Adr. R5, R0, 0x500 R6, wert1>>16 R6, R6, wert1&0xffff R7, 4(R6) R8, R6, 12 R9, 0(R8) R10, 0x1000(R0) .data .word .word .byte .byte .byte ... .data .byte .byte 0x100400 0x600 0x400 8 ; 8 Byte 12,7,5,3 17,0,0,27 0x1000 0xf 0x10 5.2) Ermitteln Sie die Werte in den Registern R5 bis R10 nach Ausführung der sieben Befehle in der Tabelle (hexadezimal oder binär). R5 R6 R7 R8 R9 R10 Aufgabe 6 - Steuerwerk Ergänzen Sie in folgendem Steuerwerk die Spalten Z 0 und Y so, dass dadurch die Funktion des Zustandsgraphen erfüllt wird. Z0 ¡ Adresse 0 1 2 P - A3 3 4 - A 5 2 6 7 - A 8 1 9 10 - A 11 0 12 13 14 @ 15 @ Y (L, S) ¡ ¶³ - Z0 HH P µ´ H HH j¶³ P © Z1 © µ´ © © ¶³ ¼ © Z2 H µ´ J HHPH J j¶³ H P J © Z3 © µ´ J © P © ^¶³ J ¼ © P Z4 H J HH J µ´ J ? P H^ j¶³ H P © Z5 © µ´ ? ©© ¶³ ¼ © Z6 µ´ > ? ? L S L=1 L=1 S=1 S=1 Aufgabe 7 - Rechenwerk 7.1) Welche Funktion hat die unten abgebildete Schaltung? 7.2) Was macht die Box mit dem ”?” ? 7.3) Warum sind die Ausgänge des Operanden B negiert? 7.4) Warum werden in der Box mit dem ”?” 6 Bit verarbeitet, wenn Operand B nur 4 Bit hat? Nennen Sie je ein Zahlenbeispiel, bei der das höchste Bit im Resultat oder im Register für den Operanden A benötigt wird. 1 1 s s s Operand B s 0 4 3 2 1 0 ¾ ? Resultat s r 1 write enable ¾ 4 3 2 1 0 Operand A Aufgabe 8 - Flip Flop Ergänzen Sie folgende Schaltung zu einem asynchronen binären Rückwärtszähler. b D > Q Q D > Q Q D > Q Q Aufgabe 9 - DLX Pipelining Geben Sie für folgende DLX-Codesequenz das Diagramm der Basispipeline an, für eine Implementierung mit getrenntem Daten- und Befehlsspeicher, ohne Bypässe, mit Splitten der ID- und WB-Phase (Phasensplitting) und mit Zuweisung des PC bei Verzweigebefehlen in der EX-Phase. Füllen Sie die Tabelle vollständig aus. (15 Pkt.) (1) (2) (3) (4) (5) (6) ADDI ADD LHI ORI LW ADD Loop ADDI f d BNEZ f d e m w R5, R6, R7, R7, R8, R5, R0, 0x100 R0, R4 0x200 R7, 0x700 0(R7) R5, R8 (7) (8) (9) (10) (11) (12) ADDI SUBI BNEZ SW ADD ADD R7, R7, 4 R6, R6, 1 R6, Loop 0x400(R7), R8 R7, R0, R0 R6, R0, R3 Hier eintragen, wenn BNEZ ausgeführt wird. Hier eintragen ab BNEZ, wenn nicht verzweigt wird. Versuchen Sie durch Umsortierung der Befehle Pipelineverluste durch eventuelle Datenhazards zu vermeiden. Geben Sie die neue Befehlsfolge an. (4 Pkt.)