Universität Koblenz-Landau. Montag, 20. Juni Teilklausur zur Vorlesung Grundlagen der Rechnerarchitektur. Sommersemester 2011

Größe: px
Ab Seite anzeigen:

Download "Universität Koblenz-Landau. Montag, 20. Juni Teilklausur zur Vorlesung Grundlagen der Rechnerarchitektur. Sommersemester 2011"

Transkript

1 Universität Koblenz-Landau Montag, 20. Juni Teilklausur zur Vorlesung Grundlagen der Rechnerarchitektur Sommersemester 2011 Prof. Dr. Ch. Steigner Name Vorname Mat.-Nr. Studiengang Musterlösung Punkte : Bonus (+ 6) Kontrollieren Sie bitte Ihre Klausur auf Vollständigkeit (16 Seiten). Für die Bearbeitung sind keinerlei Unterlagen sowie keinerlei elektronische Hilfsmittel (z.b. Taschenrechner) erlaubt. Verwenden Sie nur dokumentenechte Schreibmittel (kein Bleistift).

2 Grundlagen der Rechnerarchitektur Sommersemester Aufgabe 1 (6 Punkte) Mit einem Rechner mit doppelter Genauigkeit (double precision floating point) wurden die folgenden Berechnungen durchgeführt: 1) ( ) = 0 ( ) + 1 = 1 2) = ( ) = ) = ( ) = Erläutern Sie kurz diese Ergebnisse: zu 1) Anwendung des Assoziativgesetzes: kann bei Gleitkommazahlen aufgrund der Ungenauigkeit durch die beschränkte Anzahl an Stellen zu falschen Werten führen. zu 2) Awendung des istributivgesetz: Aufgrund der Ungenauigkeit bei Gleitkommazahlen durch die beschränkte Anzahl an Stellen kommt es hier zu unterschiedlichen Ergebnissen. zu 3) Anwendung des Distributivgesetz: Im Gegensatz zu (2) genügt hier die verfügbare Anzahl an Stellen ( ) der Gleitkommazahl für eine ausreichende Genauigkeit. Das Ergebnis ist jeweils korrekt. Aufgabe 2 (3 Punkte) Was wird mit dem ''Machine-Epsilon (ɛ m )'' bezeichnet (1.0 + ɛ m 1.0)? Ist ein Maß für den Rundungsfehler bei der Rechnung mit Gleitkommazahlen. Gleitkommazahlen sind nicht beliebig genau darstellbar. ɛ m wird als Maschinengenauigkeit bezeichnet. Das Maschinenepsilon gibt den maximalen, relativen Abstand zwischen 2 Gleitkommazahlen an.

3 Grundlagen der Rechnerarchitektur Sommersemester Aufgabe 3 (3 Punkte) Was wird durch die folgende XOR-Befehlsfolge erreicht? Erläutern Sie jede Zeile! xor $s0, $s0, $s1 # $s0 wird XOR mit $s1 verknüpft. In $s0 wird # das Ergebnis der Verknüpfung gespeichert. # xor $s1, $s0, $s1 # $s0 wird nun erneut mit $s1 XOR-verknüpft. In # $s1 liegt nun der Wert, der zuvor in $s0 # gespeichert war. xor $s0, $s0, $s1 # $s0 wird mit $s1 XOR-verknüpft. In $s0 liegt nun # der Wert, der zuvor in $s1 gespeichert war. # Die Befehlsfolge tauscht den Inhalt der Register $s0 und $s1 auf Bit-ebene aus (SWAP $s0 $s1). Aufgabe 4 (8 Punkte) a) Welcher Wert wird durch die folgende IEEE 754 Floating-Point Zahl angegeben? S ign Exponent Mantissa-Fraction x x b) Welcher Wert wird durch die folgende IEEE 754 Floating-Point Zahl angegeben? S ign Exponent Mantissa-Fraction x x

4 Grundlagen der Rechnerarchitektur Sommersemester c) Addieren Sie die Werte aus a) und b) und geben Sie das Ergebnis in der Konvention für IEEE 754 Floating-Point Zahlen an. Gehen Sie schrittweise vor (Angleichen der Exponenten, Addieren der Mantissen, Normalisieren?, Ergebnis) 1) Umwandeln der Zahlen nach IEEE 754: s.o ) Angleichen der Exponenten: x x x x 2 2 3) Addition = ,25 : x = ,6875 : x 2 2 4) Hier muss nichts isiert werden Mantisse x 2 2 Mantisse ,9375 : x 2 2 5) Ergebnis: x 2 2 = x , S ign Exponent Mantissa-Fraction Aufgabe 5 (6 Punkte) a) Konvertieren sie den Dezimalwert in die Binary-Fraction Darstellung indem Sie das Schema aus der Vorlesung nutzen. Start x x x

5 Grundlagen der Rechnerarchitektur Sommersemester b) Konvertieren Sie die ermittelte Binary-Fraction Darstellung in eine IEEE 754 Floating-Point Zahl mit einfacher Genauigkeit (Single Precision). Geben Sie das Vorzeichen (S), den Exponenten (E) und die Mantisse (M) an x2 0 = x 2-2 = x S ign Exponent Mantissa-Fraction Aufgabe 6 (7 Punkte) Konvertieren Sie die Werte der Multiplikation 2.25 x 10 in eine IEEE 754 Floating-Point Zahl, bestehend aus 3-bit Exponent und 3-bit Mantisse. Für den Fall, dass die Genauigkeit auf Grund der 3-Bit Mantisse für das Ergebnis nicht erhalten werden kann, geben Sie bitte den Betrag der Abweichung an. Gehen Sie schrittweise vor und benennen Sie jeden Schritt. (Hinweis: Das Adjustment für den 3-bit Exponenten beträgt: = 3 10 ) 1) Umwandeln der Werte in 3-bit IEEE = x x x = x x x S ign 2) Addieren der Exponenten: Exponent Mantisse =

6 Grundlagen der Rechnerarchitektur Sommersemester Fortsetzung Aufgabe 6 3) Multiplikation der Mantissen ) Normalisieren hier muss nichts isiert werden: x 2 4 Exponent: = x2 7-3 = x2 4 5) Runden: bit Mantisse / 2 5 1/32 fällt weg 6) Vorzeichen: 0 da beide Operanden 0 7) Ergebnis: 3-bit Mantisse + 3-bit Exponent S ign Exponent Mantisse x2 7-3 = x2 4 = x Das Ergebnis weicht aufgrund der Rundung auf 3 Bit um den Wert 1/ ( x2 4 = 0, x x2 0 ) = 0,5 (x2 0 ) vom richtigen Wert ab. Der Korrekte Wert ohne Rundung wäre

7 Grundlagen der Rechnerarchitektur Sommersemester Aufgabe 7 (4 Punkte) Gegeben ist das folgende MIPS-Programm zum Schreiben in einen Ringpuffer. Vervollständigen Sie das MIPS-Programm an den leer belassenen Programm-Zeilen, indem Sie die Operationen im gegebenen Flowchart zur Grundlage nehmen. Line: 1:.text 2:.globl main 3: main: li $t0, 0 # elements 4: li $t1, 0 # start 5: li $t2, 0 # end 6: li $t3, 1 # one 7: li $t4, 8 # maxb elements 8: request: jal pread # read first integer 9: move $s0, $v0 # save it in $s0 10: beq $s0, $0, dec1 # create the queue v0=0? 1: beq $s0, $t3, dec2 # dequeue? 12: jal wronginput # check for wrong input value 13: j request # 14: dec2: jal dequeue # dequeue 15: j request 16: dec1: jal init # create the queue 17: j request 18: jal main 19: li $v0, 10 # exit program 20: syscall 21: init: slt $s1, $t0, $t4 # is the queue full? 22: beq $s1, $0, full # $t4 = maxqueue (elem<maxb) 23: addi $sp, $sp,-4 # save the return address 24: sw $ra, 4($sp) # 25: jal input # enter value in a subroutine 26: lw $ra, 4($sp) # restore the return address 27: addi $sp, $sp, 4 # 28: move $s0, $v0 # input value in $s0 29: addi $t0, $t0, 1 # element = element : add $t6, $t2, $t2 # convert the end pointer 31: add $t6, $t6, $t6 # into word format

8 Grundlagen der Rechnerarchitektur Sommersemester : sw $s0, base($t6) # Queue(base+end)=s0 33: addi $t2, $t2, 1 # end = end + 1 div $v0, $t2, $t4 # $v0 $a0 : $a1 mfhi $t2 # $t1 $hi xx: j $ra # return to caller Aufgabe 8 (5 Punkte) Markieren Sie die richtigen Aussagen zu Aufrufkonventionen für Callee-/Caller-Saved Register durch entsprechendes ankreuzen! Sind alle Register callee-save, dann sichert das aufgerufene Unterprogramm den Inhalt aller Register bevor es diese überschreibt. Sind alle Register caller-save, dann sichert das aufgerufene Unterprogramm den Inhalt aller Register bevor es diese überschreibt. Alle Register werden automatisch vom Coprozessor gesichert, bevor ein Unterprogramm aufgerufen wird. Es treten immer Seiteneffekte (Side-effects) auf, wenn die Aufrufkonventionen für Caller-/Callee-Saved Register nicht eingehalten werden. Bei den Aufrufkonventionen für Callee-/Caller-Saved Register wird eine typische Eigenschaft des von-neumann Rechners behandelt. Die Aufrufkonventionen für Caller-/Callee-Saved Register legen fest: wie Parameter an ein Unterprogramm übergeben werden. wie Rückgabewerte des Unterprogramms behandelt werden. wie Adressen des Stack-Speichers nach Aufruf eines Unterprogramm behandelt werden. welche Register nach Aufruf eines Unterprogramms ihren Wert behalten. welche Register nach Aufruf eines Unterprogramms für die Sicherung der Daten aus dem Datensegment (.data) verwendet werden. welche Register nach Aufruf eines Unterprogramms für die Sicherung der Daten aus dem Stack-Speicher verwendet werden. nach wie vielen Durchläufen ein Unterprogramm den spezielleren Aufrufkonventionen der rekursiven Unterprogramme unterliegt.

9 Grundlagen der Rechnerarchitektur Sommersemester Aufgabe 9 (6 Punkte) Ergänzen Sie die unten angegebene Interrupt-Routine um einige Befehle zur Ausgabe des Exception Codes der Teil des Cause Registers ist. Da der Exception Code nur 5 bit umfasst, soll in der Ausgabe nur ein Wert innerhalb des Bereichs von 0 bis 31 auftreten. 3 1 $ 13 Cause Register Exception Typ and pending interrupts Branch belay Pengdin interrupt Exception code 1: interrupt: 2: li $v0 4 # print message 1 3: la $a0 mes1 4: syscall 5: li $v0 1 # print EPC register of the 6: mfc0 $a0 $14 # instruction that was executing 7: syscall # when the exception occurred 8: li $v0 4 9: la $a0 mes2 # print linefeed 10: syscall 11: li $v0 4 # print message 4 12: la $a0 mes4 13: syscall # print 14: li $v0 1 # print Exception Code zu ergänzen mfc0 $a0, $13 # Get the Cause Register andi $a0, $a0, 0x7c # Mask out the ExcCode-bits srl $a0, $a0, 2 syscall xx: li $v0 4 xx: la $a0 mes2 xx: syscall xx: addi $t4 $t4 1 xx: la $a0 mes3 xx: syscall xx: li $v0 1 xx: move $a0 $t4 # shift right zu ergänzen # print linefeed # increase interrupt c # print t4 register

10 Grundlagen der Rechnerarchitektur Sommersemester xx: syscall xx: li $v0 4 xx: la $a0 mes2 xx: syscall xx: li $v0 4 xx: la $a0 INTR xx: syscall # print linefeed # exception occurred # syscall 4 (print_str) # print INTR message on console xx: j restore # finished interrupt-code xx: xx:.kdata xx: mes1:.asciiz " The program was interrupted at address:\n" xx: mes2:.asciiz " \n" xx: mes3:.asciiz " The interrupt number is:" xx: mes4:.asciiz " The Exception Code is:" Aufgabe 10 (10 Punkte) Die Eulersche Zahl e ( e= 2, ) kann als Reihe der Form 1 e = k =0 k! = 1 0! 1 1! 1 2! 1 3! 1 4!... e = = dargestellt werden, wobei gilt 0! = 1. Das folgende MIPS-Programm soll die Eulersche Zahl über die obige Reihe bis zur angegebenen Iteration berechnen. Die Eingabe der maximalen Iteration und die Ausgabe der Zahl e sind bereits implementiert. Vervollständigen Sie das MIPS-Programm mit Floating-Point Zahlen der einfachen Genauigkeit (Single Precision). 1:.text 2:.globl main # Calculation of Euler e 3: main: 4: la $a0,prompt3 # print string 5: li $v0,4 # service 4 6: syscall 7: li.s $f0, 1.0 # $f0 = constant 1.0 8: li.s $f2, 1.0 # $f2 = constant 1.0 9: li.s $f4, 1.0 # $f4 = constant : li.s $f10,2.0 # $f10 = constant : li.s $f6, 0.0 # $f6 = constant : li $t1, 0 13: li $t2, 1

11 Grundlagen der Rechnerarchitektur Sommersemester : jal preada # read iteration maximum 15: add $t1,$t1,$v0 # save iteration max in $t1 zu ergänzen ret: add.s $f2, $f2, $f4 # f2 = f2 + 1 mul.s $f0, $f0, $f2 div.s $f6, $f4, $f0 add.s $f10, $f10, $f6 # f0 = f0 * f2 # f6 = 1 : f0 # f10= f10 + f6 addi $t2, $t2, 1 bne $t2, $t1 ret mov.s $f12, $f10 # check against iteration max # print zu ergänzen xx: jal pwrite # print xx: jal main xx: preada: xx: la $a0,prompta # print string xx: li $v0,4 # service 4 xx: syscall xx: li $v0,5 # read int into $v0 xx: syscall # service 5 xx: jr $ra # return xx: pwrite: li $v0,4 #print string service xx: la $a0,prompt2 #address of prompt xx: syscall xx: li $v0,3 # print double service xx: syscall xx: la $a0,prompt3 # print string xx: li $v0,4 # service 4 xx: syscall xx: jr $ra # return xx:.data xx: prompta:.asciiz " Enter Number of Iterations: " xx: prompt3:.asciiz "\n" xx: prompt2:.asciiz " The Euler-Approximation is: "

12 Grundlagen der Rechnerarchitektur Sommersemester Aufgabe 11 (8 Punkte) Das Produkt zweier natürlicher Zahlen a 1 a 2 lässt sich rekursiv wie folgt berechnen: a 1 0 = 0 a 1 a 2 = a 1 (a 2 1) + a 1 Programmieren Sie ein MIPS-Unterprogramm, dass die Multiplikation a 1 a 2 auf diese Weise rekursiv berechnet. Die Parameter a 1 und a 2 sind in den Registern $a1 und $a2 abgelegt und das Ergebnis wird im Register $v0 geliefert. Einige Programmzeilen und Marken sind bereits vorgegeben. Ergänzen Sie die weiteren Befehle. # # calculate: rekmul(a 1,0)=0; rekmul(a 1,a 2 ) = rekmul(a 1,a 2-1) + a 1 # : rekmul: : addi $sp, -4 : sw $ra, 4($sp) : beq $a1, $0, null # if a 1 =0 then goto null addi $a1, $a1, -1 # calculate a 1-1 jal rekmul # v0=rekmul(a 2,a 1-1) : add $v0, $v0, $a2 # v0=rekmul(a 2,a 1-1) + a 2 j return # jump to return mark null: move $v0, $0 # rekmul(a 2,0)=0 return: lw $ra, 4($sp) addi $sp, 4 # load $ra-address from stack # $sp top of stack : jr $ra # return

13 Grundlagen der Rechnerarchitektur Sommersemester Aufgabe 12 (BONUS) (6 Punkte) Wandeln Sie die Werte der Addition (- 5) in IEEE-754 Floating-Point Zahlen um und berechnen Sie das Ergebnis. Gehen Sie dabei schrittweise vor und benennen Sie jeden Schritt. 1) Umwandeln der Zahlen nach IEEE 754: s.o S ign Exponent Mantisse 2) Angleichen der Exponenten: x x x x x x 2 2 3) Umwandeln in 2er Komplement (-) 5.0: (1) x2 2 (0 ) (0) ) Addition (-) x2 2 (-) 1,25 : x2 2 0,6875 : (-) 0,5625 : er Komplement umwandeln: = ) Normalisieren x x 2 1 Mantisse Mantisse x x ) Ergebnis: S ign Exponent Mantissa-Fraction

14 Grundlagen der Rechnerarchitektur Sommersemester Instruction Operands Type Description add d,s,t d <-- s+t ; with overflow trap addu d,s,t d <-- s+t ; without overflow trap MIPS Instruction Set addi addiu d,s,const d,s,const d <-- s+const ; with overflow trap const is 16-bit two's comp d <-- s+const ; without overflow trap const is 16-bit two's comp and d,s,t d <-- bitwise AND of s with t andi d,s,const d <-- bitwise AND of s with const b beq beqz bge bgez bgt ble blez blt bltz bne bnez div div divu divu j target s,t,addr s,addr s,t,addr s,addr s,t,addr s,t,addr s,addr s,t,addr s,addr s,t,addr s,addr s,t d,s,t s,t d,s,t target pseudo after a delay of one machine cycle, PC <-- address of target branch if s == t pseudo branch if the two's comp. integer in register s is == 0 pseudo branch if s >= t branch if the two's comp. integer in register s is >= 0 pseudo pseudo branch if s > t branch if s <= t branch if the two's comp. integer in register s is <= 0 pseudo branch if s < t Branch if the two's comp. integer in register s is < 0 branch if s!= t pseudo branch if s!= 0 pseudo pseudo lo <-- s div t ; hi <-- s mod t - two's comp. Operands, lo stores the result of the integer division (i.e., the quotient), while hi stores the remainder. The operation is undefined if the divisor is 0 d <-- s div t two's comp. operands lo <-- s div t ; hi <-- s mod t unsigned operands d <-- s div t unsigned operands after a delay of one machine cycle, PC <-- address of target jal a $ra <-- IP+4, IP <-- a jr d Jump to instruction whose address is in register (d). la d,addr pseudo d <-- addr Load address into destination register (d). lb lbu lh lhu li lui lw d,off(b) d,off(b) d,off(b) d,off(b) d, imm d,const d,off(b) d, b(s) pseudo d <-- Sign-extended byte from memory address b+off off is 16-bit two's complement d <-- Zero-extended byte from memory address b+off off is 16-bit two's complement t <-- Sign-extended halfword from memory address b+off off is 16-bit two's complement t <-- Zero-extended halfword from memory address b+off off is 16-bit two's complement d <-- imm Load immediate value into register (d). upper two bytes of $t <-- two byte const lower two bytes of $t <-- 0x0000 d <-- Word from memory address b+off d <-- Word from merory address b+s

15 Grundlagen der Rechnerarchitektur Sommersemester mfc0 $ri, $X Spezialfall # Get coprocessor0's register $X and store it into $ri mfhi d d <-- hi ; Move From Hi mflo d d <-- lo ; Move From Lo move d,s pseudo d <-- s mtc0 $ri, $X # Store $ri to coprocessor0's register $X mul d,s,t pseudo d <-- s*t (without overflow) mulo d,s,t pseudo d <-- s*t (with overflow) mult s,t hi / lo < -- s * t ; two's comp operands multu s,t hi / lo < -- s * t ; unsigned operands MIPS Instruction Set nop no operation nor d,s,t d <-- bitwise NOR of s with t nor d,s,$0 Spezialfall d <-- bitwise NOT of s or d,s,t d <-- bitwise OR of s with t or d,s,$0 Spezialfall d <-- s ori d,s,const d <-- s OR zero-extended const ori d,$0,const Spezialfall d <-- zero-extended const sb sh d,off(b) d,off(b) byte at off+b <-- low-order byte from register $d. off is 16-bit two's complement two bytes at off+b <-- two low-order bytes from register $d. off is 16-bit two's complement sll d,s,shft d <-- logical left shift of s by shft positions where 0 <= shft < 32 slt slti sltiu sltu d,s,t d,s,imm d,s,imm d,s,t if s < t d <-- 1 else d <-- 0 two's comp. operands if s < imm d <-- 1 else d <-- 0 two's comp. operands if s < imm d <-- 1 else d <-- 0 unsigned operands if s < t d <-- 1 else d <-- 0 unsigned operands sra d,s,shft d <-- arithmetic right shift of s by shft positions where 0 <= shft < 32 srl d,s,shft d <-- logical right shift of s by shft positions where 0 <= shft < 32 sub d,s,t d <-- s - t; with overflow trap subu d,s,t d <-- s - t; no overflow trap sw syscall t,off(b) Word at memory address (b+off) <-- t b is a register. off is 16-bit twos complement. Call Operating System Functions with Parameters: Service Call Code Arguments Result print integer $v0: 1 $a0:integer print float $v0: 2 $f12:float print double $v0: 3 $f12:double print string $v0: 4 $a0:string addr read integer $v0: 5 $v0:integer read float $v0: 6 $f0:float read double $v0: 7 $f0:double read string $v0: 8 $a0:buffer addr, $a1:length sbrk (mem alloc) $v0: 9 $a0:n Bytes $v0:addr exit $v0:10 xor d,s,t d <-- bitwise exclusive or of s with t xori d,s,const d <-- bitwise exclusive or of s with const

16 MIPS Floating Point Instructions Grundlagen der Rechnerarchitektur Sommersemester Instruction Operands Type Precision Description abs.d fd, fs Normal double fd <-- absolute value of fs abs.s fd, fs Normal single fd <-- absolute value of fs add.d fd, fs, ft Normal double fd <-- fs + ft add.s fd, fs, ft Normal single fd <-- fs + ft bc1t target Normal IF (fp-condition-flag == TRUE) THEN GOTO target bc1f target Normal IF (fp-condition-flag == FALSE) THEN GOTO target c.eq.d fs, ft Normal double IF (fs == ft) THEN fp-condition-flag = true ELSE fp-condition-flag = false (use bc1t or bc1f to read the fp-condition-flag) c.eq.s fs, ft Normal single IF (fs == ft) THEN fp-condition-flag = true ELSE fp-condition-flag = false (use bc1t or bc1f to read the fp-condition-flag) c.le.d fs, ft Normal double IF (fs <= ft) THEN fp-condition-flag = true ELSE fp-condition-flag = false c.le.s fs, ft Normal single IF (fs <= ft) THEN fp-condition-flag = true ELSE fp-condition-flag = false c.lt.d fs, ft Normal double IF (fs < ft) THEN fp-condition-flag = true ELSE fp-condition-flag = false c.lt.s fs, ft Normal single IF (fs < ft) THEN fp-condition-flag = true ELSE fp-condition-flag = false cvt.d.s fd, fs Normal double fd <-- Convert single in fs to double cvt.d.w fd, fs Normal double fd <-- Convert integer in fs to double cvt.s.d fd, fs Normal single fd <-- Convert double in fs to single cvt.s.w fd, fs Normal single fd <-- Convert integer in fs to single cvt.w.d fd, fs Normal integer fd <-- Convert double in fs to integer cvt.w.s fd, fs Normal integer fd <-- Convert single in fs to integer div.d fd, fs, ft Normal double fd <-- fs / ft div.s fd, fs, ft Normal single fd <-- fs / ft l.d fd, addr pseudo double load double at addr into register fd l.s fd, addr pseudo single load single at addr into register fd li.d fd, float pseudo double load immediate double value into register fd li.s fd, float pseudo single load immediate single value into register fd mov.d fd, fs Normal double fd <-- fs mov.s fd, fs Normal single fd <-- fs mul.d fd, fs, ft Normal double fd <-- fs * ft mul.s fd, fs, ft Normal single fd <-- fs * ft mfc1 d, fs Normal Move coprocessor1 register fs to CPU register d mtc1 s, fd Normal Move CPU register s to coprocessor1 register fd neg.d fd, fs Normal double fd <-- fs * -1 neg.s fd, fs Normal single fd <-- fs * -1 s.d fd, addr pseudo double store double in register fd at addr s.s fd, addr pseudo single store single in register fd at addr sub.d fd, fs, ft Normal double fd <-- fs - ft sub.s fd, fs, ft Normal single fd <-- fs - ft Floating Point System Calls Service Call Code Arguments Results print float $v0 = 2 $f12 = float (single) print double $v0 = 3 $f12 = double read float $v0 = 6 $f0: float (single) read double $v0 = 7 $f0: double Exception Handling Das Status-Register : Das Cause-Register :

1. Teilklausur zur Vorlesung Grundlagen der Rechnerarchitektur

1. Teilklausur zur Vorlesung Grundlagen der Rechnerarchitektur Universität Koblenz-Landau Montag, 6. Mai 2. Teilklausur zur Vorlesung Grundlagen der Rechnerarchitektur Sommersemester 2 Prof. Dr. Ch. Steigner Name Vorname Mat.-Nr. Studiengang Musterlösung Punkte :

Mehr

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33 Weitere Arithmetik Grundlagen der Rechnerarchitektur Assembler 33 Die speziellen Register lo und hi Erinnerung: ganzzahliges Produkt von zwei n Bit Zahlen benötigt bis zu 2n Bits Eine MIPS Instruktion

Mehr

Beispiel: A[300] = h + A[300]

Beispiel: A[300] = h + A[300] Beispiel: A[300] = h + A[300] $t1 sei Basisadresse von A und h in $s2 gespeichert. Assembler Code? Maschinen Code (der Einfachheit halber mit Dezimalzahlen)? op rs rt rd adr/shamt funct Instruktion Format

Mehr

21. Februar Name:. Vorname. Matr.-Nr:. Studiengang

21. Februar Name:. Vorname. Matr.-Nr:. Studiengang Klausur 21. Februar 2011 Name:. Vorname Matr.-Nr:. Studiengang Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Zur Klausur zugelassen sind ausschließlich Schreibutensilien,

Mehr

Musterlösung zur Klausur

Musterlösung zur Klausur Koblenz am 25. Februar 25 Uhr c.t., Hörsaal MD 28 Studiengang Informatik/Computervisualistik Musterlösung zur Klausur TECHNISCHE INFORMATIK B Prof. Dr. Ch. Steigner Name: Vorname: Matrikel-Nr.: Vergessen

Mehr

Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21

Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21 Darstellung von Instruktionen Grundlagen der Rechnerarchitektur Assembler 21 Übersetzung aus Assembler in Maschinensprache Assembler Instruktion add $t0, $s1, $s2 0 17 18 8 0 32 6 Bit Opcode Maschinen

Mehr

Notwendigkeit für andere Instruktionsformate

Notwendigkeit für andere Instruktionsformate Notwendigkeit für andere Instruktionsformate add $t0, $s1, $s2 op rs rt rd shamt funct 6 Bit 5 Bit 5 Bit 5 Bit 5 Bit 6 Bit R Typ? lw $t0, 32($s3) I Typ Opcode 6 Bit Source 5 Bit Dest 5 Bit Konstante oder

Mehr

Klausur Mikroprozessortechnik 29. März 2010

Klausur Mikroprozessortechnik 29. März 2010 Klausur Mikroprozessortechnik 29. März 2010 Name:... Vorname:... Matr.-Nr:... Studiengang:... Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Zur Klausur zugelassen

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 5 am 25.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere

Mehr

28. März Name:. Vorname. Matr.-Nr:. Studiengang

28. März Name:. Vorname. Matr.-Nr:. Studiengang Klausur 28. März 2011 Name:. Vorname Matr.-Nr:. Studiengang Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Zur Klausur zugelassen sind ausschließlich Schreibutensilien,

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Musterlösung zu Übung 3 Datum : 25.-26. Oktober 2018 Aufgabe 1: Wurzelverfahren nach Heron Das

Mehr

Lösungsvorschlag zur 3. Übung

Lösungsvorschlag zur 3. Übung Prof Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik Wintersemester 09/10 1 Präsenzübungen 11 Schnelltest Lösungsvorschlag zur Übung a) Welche der folgenden Aussagen entsprechen

Mehr

Klausur zur Vorlesung Grundlagen der Rechnerarchitektur SS 2013

Klausur zur Vorlesung Grundlagen der Rechnerarchitektur SS 2013 Name: Matrikelnummer: Studiengang: INF CV IM Lehramt BSc MSc BEd MEd Diplom Klausur zur Vorlesung Grundlagen der Rechnerarchitektur SS 2013 Donnerstag, den 18. Juli 2013, Prof. Dr. Hannes Frey Die Bearbeitungszeit

Mehr

Zusammenfassung: Grundlagen der Informatik Zahlensysteme, b-adische Darstellung, Umrechnung Beispiel: Umrechnung von ( ) 10 ins Dualsystem

Zusammenfassung: Grundlagen der Informatik Zahlensysteme, b-adische Darstellung, Umrechnung Beispiel: Umrechnung von ( ) 10 ins Dualsystem Zusammenfassung: Grundlagen der Informatik - Seite von 6 Zusammenfassung: Grundlagen der Informatik Zahlensysteme, b-adische Darstellung, Umrechnung Beispiel: Umrechnung von (69.59375) 0 ins Dualsystem

Mehr

Assembler am Beispiel der MIPS Architektur

Assembler am Beispiel der MIPS Architektur Assembler am Beispiel der MIPS Architektur Frühere Einsatzgebiete MIPS Silicon Graphics Unix Workstations (z. B. SGI Indigo2) Silicon Graphics Unix Server (z. B. SGI Origin2000) DEC Workstations (z.b.

Mehr

Unterstützung von Jump Tables

Unterstützung von Jump Tables Unterstützung von Jump Tables Assembler Code: Label_ 1: Label_2: Label_n: Maschinen Code: 0x05342120: 1011010110 0x05443004: 0001011101 0x06756900: 0000111000 Jump Table Nr Label Adresse 0 Label_1 0x05342120

Mehr

Mikroprozessortechnik. 03. April 2012

Mikroprozessortechnik. 03. April 2012 Klausur 03. April 2012 Name:. Vorname Matr.-Nr:. Studiengang Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Die Klausur besteht aus 6 doppelseitig bedruckten Blättern.

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM. Die MARS Umgebung

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM. Die MARS Umgebung Die MARS Umgebung MARS ist ein Simulationswerkzeug für MIPS Prozessoren Es enthält einen Assembler und eine Laufzeitumgebung Da das Wirtsystem (z.b. Windows) auf einem anderen Prozessor basiert, werden

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 6 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

24. Februar Name:. Vorname. Matr.-Nr:. Studiengang

24. Februar Name:. Vorname. Matr.-Nr:. Studiengang Klausur 24. Februar 2012 Name:. Vorname Matr.-Nr:. Studiengang Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Die Klausur besteht aus 6 doppelseitig bedruckten

Mehr

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78 32 Bit Konstanten und Adressierung Grundlagen der Rechnerarchitektur Assembler 78 Immediate kann nur 16 Bit lang sein Erinnerung: Laden einer Konstante in ein Register addi $t0, $zero, 200 Als Maschinen

Mehr

Heute nur MIPS-Praxis (4 Aufgaben)

Heute nur MIPS-Praxis (4 Aufgaben) Themen heute Heute nur MIPS-Praxis (4 Aufgaben) Hinweis: Diese Aufgaben findet ihr auf den Übungsblättern zu den Tutorien (bei Aufgabe 4 wurde eine Teilaufgabe und im Tutorium #6 bereits geklärte Wissensfragen

Mehr

5.BMaschinensprache und Assembler

5.BMaschinensprache und Assembler Die Maschinenprogrammebene eines Rechners Jörg Roth 268 5.BMaschinensprache und Assembler Die vom Prozessor ausführbaren Befehle liegen im Binärformat vor. Nur solche Befehle sind direkt ausführbar. So

Mehr

Technische Informatik I Übung 3: Assembler

Technische Informatik I Übung 3: Assembler Technische Informatik I Übung 3: Assembler Roman Trüb Computer Engineering Group, ETH Zürich 1 Lernziele Übung 3 Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Assembler Codeanalyse Aufgabe 2

Mehr

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04. Kontrollstrukturen Informatik II SS 2004 Teil 4: Assembler Programmierung Sprünge (bedingte und unbedingte) If-then-else, Case Loop (n Durchläufe) While (Abbruchbedingung) Institut für Informatik Prof.

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100

Mehr

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse

Mehr

Grundlagen der Rechnerarchitektur. MIPS Assembler

Grundlagen der Rechnerarchitektur. MIPS Assembler Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32

Mehr

Rechnerarchitektur. Marián Vajteršic und Helmut A. Mayer

Rechnerarchitektur. Marián Vajteršic und Helmut A. Mayer Rechnerarchitektur Marián Vajteršic und Helmut A. Mayer Fachbereich Computerwissenschaften Universität Salzburg marian@cosy.sbg.ac.at und helmut@cosy.sbg.ac.at Tel.: 8044-6344 und 8044-6315 3. Mai 2017

Mehr

Unterprogramme. Unterprogramme

Unterprogramme. Unterprogramme Unterprogramme Unterprogramme wichtiges Hilfsmittel für mehrfach benötigte Programmabschnitte spielen in höheren Programmiersprachen eine wesentliche Rolle in Assembler sind bestimmte Konventionen nötig

Mehr

Synchronisation. Grundlagen der Rechnerarchitektur Assembler 91

Synchronisation. Grundlagen der Rechnerarchitektur Assembler 91 Synchronisation Grundlagen der Rechnerarchitektur Assembler 91 Data Race Prozessor 1: berechne x = x + 2 lw $t0, 0($s0) # lade x nach $t0 addi $t0, $t0, 2 # $t0 = $t0 + 2 sw $t0, 0($s0) # speichere $t0

Mehr

Lösungsvorschlag 10. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 10. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag. Übung Technische Grundlagen der Informatik II Sommersemester 29 Aufgabe.: MIPS-Kontrollsignale Für die 5 Befehlstypen a) R-Format

Mehr

Besprechung des 4. Übungsblattes Was ist MIPS? SPIM-Simulator MIPS-Befehlsformate MIPS-Befehle Assemblerdirektiven Syscalls in MIPS

Besprechung des 4. Übungsblattes Was ist MIPS? SPIM-Simulator MIPS-Befehlsformate MIPS-Befehle Assemblerdirektiven Syscalls in MIPS Organisatorisches Es gibt kein Übungsblatt zur heutigen Abgabe, da sich durch ausfallende Vorlesungstermine entsprechende Verschiebungen ergeben haben Das jetzige Übungsblatt ist abzugeben bis zum nächsten

Mehr

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts Kapitel 6: Arithmetik in JavaCard Problem: Keine Integers in JavaCard ToDo: Rechnen mit Bytes und Shorts Java SmartCards, Kap. 6 (1/20) Hex-Notation 1 Byte = 8 Bit, b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 0101

Mehr

Übungsblatt 10 (Block C 2) (16 Punkte)

Übungsblatt 10 (Block C 2) (16 Punkte) georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de marco.duerr [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2018 Übungsblatt 10 (Block C 2) (16 Punkte)

Mehr

Grundlagen der Rechnerarchitektur. MIPS Assembler

Grundlagen der Rechnerarchitektur. MIPS Assembler Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Die Maschinenprogrammebene eines Rechners Jörg Roth 294

Die Maschinenprogrammebene eines Rechners Jörg Roth 294 Die Maschinenprogrammebene eines Rechners Jörg Roth 294 5.E Die SPIM-Umgebung SPIM ist ein Simulationswerkzeug für MIPS-Prozessoren Es enthält einen Assembler und eine Laufzeitumgebung Da das Wirtsystem

Mehr

Computersysteme. Serie 11

Computersysteme. Serie 11 Christian-Albrechts-Universität zu Kiel Institut für Informatik Lehrstuhl für Technische Informatik Prof.Dr. Manfred Schimmler Dr.-Ing. Christoph Starke M.Sc. Vasco Grossmann Dipl.-Inf. Johannes Brünger

Mehr

2. Teilklausur Informatik II

2. Teilklausur Informatik II 1. Aufgabe (4 + 6 Punkte) Beweise: n (a) i = (b) i=0 n i 2 = i=0 n (n + 1) 2 n (n + 1) (2n + 1) 6 2. Aufgabe (10 Punkte) Seien a, b {0, 1} n. Wir definieren: a < lex b i {0,..., n 1} : a[n 1 : i + 1] =

Mehr

Grundlagen der Rechnerarchitektur. MIPS Assembler

Grundlagen der Rechnerarchitektur. MIPS Assembler Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32

Mehr

N Bit Darstellung von Gleitkommazahlen

N Bit Darstellung von Gleitkommazahlen N Bit Darstellung von Gleitkommazahlen Normalisierte, wissenschaftliche Darstellung zur Basis 2. Beispiel: Allgemein: Sign and Magnitude Darstellung für beispielsweise 32 Bits: (s=0 für + und s=1 für )

Mehr

Übungsblatt 10 (Block C 2) (16 Punkte)

Übungsblatt 10 (Block C 2) (16 Punkte) georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Musterlösung zu Übung 6 Datum : 15.-16. November 2018 Aufgabe 1: Bit-Test Zum Überprüfen des Status

Mehr

"Organisation und Technologie von Rechensystemen 4"

Organisation und Technologie von Rechensystemen 4 Klausur OTRS-4, 29.09.2004 Seite 1 (12) INSTITUT FÜR INFORMATIK Lehrstuhl für Rechnerarchitektur (Informatik 3) Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen 29.09.2004 Klausur zu "Organisation

Mehr

Wertebereiche, Overflow und Underflow

Wertebereiche, Overflow und Underflow Wertebereiche, Overflow und Underflow s exponent fraction 1 Bit 8 Bits 23 Bits Kleinste darstellbare nicht negative Zahl annähernd 2,0 * 10 38 Größte darstellbare Zahl annähernd 2,0 * 10 38 Was, wenn die

Mehr

######################### Zeichenkette auswerten ###################################

######################### Zeichenkette auswerten ################################### Informatik 3 Übung 06 Georg Kuschk 6.3) MIPS #Aufgabe 6.3) #Georg Kuschk #ACHTUNG : Da laut Forum davon ausgegangen werden soll, dass der Eingabewert, # falls er denn kleiner gleich 10 Stellen besitzt,

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Arithmetic Logic Unit ALU Professor Dr. Johannes Horst Wolkerstorfer Cerjak, 9.2.25 RNO VO4_alu Übersicht Motivation ALU Addition Subtraktion De Morgan Shift Multiplikation Gleitkommazahlen Professor Dr.

Mehr

Direktiven. Direktiven vereinfachen das Datenlayout eines Programms im Speicher einfacher festlegen zu können.

Direktiven. Direktiven vereinfachen das Datenlayout eines Programms im Speicher einfacher festlegen zu können. Direktiven Direktiven vereinfachen das Datenlayout eines Programms im Speicher einfacher festlegen zu können. Damitder Assembler ein Programm, wie auf der rechten Seite gezeigt, erzeugt, schreiben wir:.text

Mehr

Technische Informatik 1 Übung 2 Assembler (Computerübung) Matthias Meyer

Technische Informatik 1 Übung 2 Assembler (Computerübung) Matthias Meyer Technische Informatik 1 Übung 2 Assembler (Computerübung) Matthias Meyer Ziele der Übung Aufgabe 1 Ein lauffähiges Assembler-Programm Umgang mit dem Debugger Aufgabe 2 (Zusatzaufgabe) Lesen und Analysieren

Mehr

Vorlesung Rechnerarchitektur

Vorlesung Rechnerarchitektur Vorlesung Rechnerarchitektur Sommersemester 2017 Carsten Hahn 8. Juni 2017 Agenda Grundlagen: Wiederholung Kontroll-Strukturen Stack-Speicher Unterprogramme I Unterprogramme II Call-by-Value (CBV) vs.

Mehr

Der Zahlenformatstandard IEEE 754

Der Zahlenformatstandard IEEE 754 Der Zahlenformatstandard IEEE 754 Single Precision Double Precision Insgesamt 32 Bits s exponent fraction 1 Bit 8 Bits 23 Bits Insgesamt 64 Bits s exponent fraction 1 Bit 11 Bits 52 Bits Bit Aufteilungen

Mehr

Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme

Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester 2016 Lorenz Schauer Mobile & Verteilte Systeme 12. Juli 2016 Agenda heute Grundlagen: Unterprogramme I Call-by-Value (CBV) vs. Call-by-Reference

Mehr

IEEE 754 Encoding. Wie stellt man im IEEE 754 Format eigentlich die 0 dar!? Double Precision (Bias=1023)

IEEE 754 Encoding. Wie stellt man im IEEE 754 Format eigentlich die 0 dar!? Double Precision (Bias=1023) IEEE 754 Encoding Wie stellt man im IEEE 754 Format eigentlich die 0 dar!? ( 1) S * (1 + Fraction) * 2 (Exponent Bias) Single Precision (Bias=127) Double Precision (Bias=1023) Dargestelltes Objekt Exponent

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Der MIPS-Prozessor MIPS R2000, von iamretro.gr Kurze Geschichte der MIPS-Architektur

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Weitere Exceptions während des Handlings?

Weitere Exceptions während des Handlings? Weitere Exceptions während des Handlings? # Es gelte $s2 = 0x7fffffff 0x40000014 : add $s1,$s2,$s2 # Overflow! 0x40000018 :...... # Ein fauler Exception-Handler 0x80000180 : addi $s2,$zero,0# Problem gelöst

Mehr

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement

Mehr

Assembler (NASM) Crashkurs von Sönke Schmidt

Assembler (NASM) Crashkurs von Sönke Schmidt Sönke Schmidt (NASM) Crashkurs von Sönke Schmidt Berlin, 4.11.2015 Meine Webseite: http://www.soenke-berlin.de NASM Was ist das? nach Wikipedia: Ein ist ein Programmierwerkzeug, das ein in maschinennaher

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

Einführung Programmierpraktikum C Michael Zwick

Einführung Programmierpraktikum C Michael Zwick Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 8. Vorlesung Inhalt Gleitkomma-Darstellung Normalisierte Darstellung Denormalisierte Darstellung Rechnerarchitekturen Von Neumann-Architektur Harvard-Architektur Rechenwerk (ALU)

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Lösungsvorschläge für Übung 2 Datum: 12. 13. 10. 2017 1 Aufgaben Diese Übung soll Ihnen einen

Mehr

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124 Gleitkommaarithmetik Erhöhen der Genauigkeit Grundlagen der Rechnerarchitektur Logik und Arithmetik 124 Guard Bit, Round Bit und Sticky Bit Bei der Darstellung der Addition und Multiplikation haben wir

Mehr

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Technischen Informatik. 4. Übung Grundlagen der Technischen Informatik 4. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit 4. Übungsblatt Themen Aufgabe 1: Aufgabe 2: Aufgabe 3: Aufgabe 4: IEEE Format Zahlenumwandlung

Mehr

Übungen zur Vorlesung Grundlagen der Rechnerarchitektur

Übungen zur Vorlesung Grundlagen der Rechnerarchitektur Übungen zur Vorlesung Grundlagen der Rechnerarchitektur im Sommersemester 2 Frank Bohdanowicz Besprechung des 2. Übungsblattes - Termine 2. Teilklausur: Montag, 2.6.2, 8 Uhr, in D28 + E - Anmeldung über

Mehr

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Technischen Informatik. 4. Übung Grundlagen der Technischen Informatik 4. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit 4. Übungsblatt Themen Aufgabe 1: Aufgabe 2: Aufgabe 3: Aufgabe 4: IEEE Format Zahlenumwandlung

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Repräsentierung Rationaler Zahlen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 19. Juni 2015 Rationale Zahlen Wie können wir Rationale

Mehr

Zusammenfassung der Assemblerbefehle des 8051

Zusammenfassung der Assemblerbefehle des 8051 Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach

Mehr

Use of the LPM (Load Program Memory)

Use of the LPM (Load Program Memory) Use of the LPM (Load Program Memory) Use of the LPM (Load Program Memory) Instruction with the AVR Assembler Load Constants from Program Memory Use of Lookup Tables The LPM instruction is included in the

Mehr

Sprungbefehle und Kontroll-Strukturen

Sprungbefehle und Kontroll-Strukturen Sprungbefehle und Kontroll-Strukturen Statusregister und Flags Sprungbefehle Kontrollstrukturen Das Status-Register 1 Register-Satz des ATmega128 Universal-Register (8Bit) R0..R15 16 Bit Program counter

Mehr

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16 C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,

Mehr

Technische Informatik 1 Übung 5: Eingabe/Ausgabe (Computerübung) Georgia Giannopoulou, ETZ G & 18.

Technische Informatik 1 Übung 5: Eingabe/Ausgabe (Computerübung) Georgia Giannopoulou, ETZ G & 18. Technische Informatik 1 Übung 5: Eingabe/Ausgabe (Computerübung) Georgia Giannopoulou, ETZ G77 ggeorgia@tik.ee.ethz.ch 17. & 18. November 2016 Inhalt Implementierung von Device-I/O mittels Polling und

Mehr

5.GTypische Anwendungsfälle

5.GTypische Anwendungsfälle Die Maschinenprogrammebene eines Rechners Jörg Roth 337 5.GTypische Anwendungsfälle Wir betrachten im Folgenden typische Fälle aus dem Bereich imperativer Programmiersprachen und beschreiben, wie diese

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Informatik für Mathematiker und Physiker Woche 7. David Sommer

Informatik für Mathematiker und Physiker Woche 7. David Sommer Informatik für Mathematiker und Physiker Woche 7 David Sommer David Sommer 30. Oktober 2018 1 Heute: 1. Repetition Floats 2. References 3. Vectors 4. Characters David Sommer 30. Oktober 2018 2 Übungen

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

Neues vom STRIP Forth-Prozessor

Neues vom STRIP Forth-Prozessor Neues vom STRIP Forth-Prozessor Tagung der Forth-Gesellschaft März 2014 Bad Vöslau/Österreich Willi Stricker -Prozessor Inhalt 1. STRIP-Befehlssatz Bisher: minimaler Befehlssatz neu: erweiterter Befehlssatz

Mehr

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr Praktikum zur Vorlesung Prozessorarchitektur SS 2017 Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch 21.06.2017, 14:00 Uhr 1.1. Einführung Programmsteuerbefehle

Mehr

Einführung in die Systemprogrammierung 01

Einführung in die Systemprogrammierung 01 Einführung in die Systemprogrammierung 01 Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 24. April 2013 Administrativa Ab nächster Woche bitte Laptops in Übungen mitbringen OLAT-Paßwort

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Wit Weitere Arithmetik tik Branches und Jumps Prozeduren

Mehr

2.1.2 Gleitkommazahlen

2.1.2 Gleitkommazahlen .1. Gleitkommazahlen Überblick: Gleitkommazahlen Gleitkommadarstellung Arithmetische Operationen auf Gleitkommazahlen mit fester Anzahl von Mantissen- und Exponentenbits Insbesondere Rundungsproblematik:

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen

Mehr

... Adressierung und Befehlsfolgen (1) Speicherbelegung. Hauptspeicheradressen. Inhalt von Speicherbelegungen: Operanden - Zahlen - Zeichen Befehle

... Adressierung und Befehlsfolgen (1) Speicherbelegung. Hauptspeicheradressen. Inhalt von Speicherbelegungen: Operanden - Zahlen - Zeichen Befehle Adressierung und Befehlsfolgen (1) Speicherbelegung Hauptspeicheradressen Inhalt von Speicherbelegungen: Operanden - Zahlen - Zeichen Befehle Address 0 1 i k 2-1 n bits...... word 0 word 1 b n-1 b 1 b

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Übungsstunde: Informatik 1 D-MAVT

Übungsstunde: Informatik 1 D-MAVT Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 21.03.2018 1 Ablauf Quiz und Recap Floating Point

Mehr

RISC-Prozessoren (1)

RISC-Prozessoren (1) RISC-Prozessoren (1) 1) 8 Befehlsklassen und ihre mittlere Ausführungshäufigkeit (Fairclough): Zuweisung bzw. Datenbewegung 45,28% Programmablauf 28,73% Arithmetik 10,75% Vergleich 5,92% Logik 3,91% Shift

Mehr

Computersysteme. Fragestunde

Computersysteme. Fragestunde Computersysteme Fragestunde 1 Dr.-Ing. Christoph Starke Institut für Informatik Christian Albrechts Universität zu Kiel Tel.: 8805337 E-Mail: chst@informatik.uni-kiel.de 2 Kurze Besprechung von Serie 12,

Mehr

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer Aufgabe 8.1 Ausnahmen (Exceptions) a. Erklären Sie den Begriff Exception. b. Welche Arten von Exceptions kennen Sie? Wie werden sie ausgelöst und welche Auswirkungen auf den ablaufenden Code ergeben sich

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

1. Aufgabe: Pipelining (18 Punkte)

1. Aufgabe: Pipelining (18 Punkte) 1. Aufgabe: Pipelining (18 Punkte) Gegeben ist folgender Quelltextauszug: 1 add $sp, $sp, $4 2 slt $s0, $sp, $a0 3 lb $t1, 0($sp) 4 sub $t3, $t1, $a1 5 lw $t2 4($a2) 6 add $t4, $a0, $t2 Der Code soll auf

Mehr

DLX Befehlsübersicht

DLX Befehlsübersicht DLX sübersicht 1 Instruktionen für den Daten-Transfer Daten können mit folgenden en zwischen Registern und dem Speicher oder zwischen Integer- und Fließkomma-Registern ausgetauscht werden. Der einzige

Mehr

Das Verfahren in Hardware

Das Verfahren in Hardware Das Verfahren in Hardware Links Shift 8 Bit Multiplikand Demonstration mit 1001 * 0110 = 110110 2.Links Shift 8 Bit ALU Rechts Shift 4 Bit Multiplikator 3.Rechts Shift 8 Bit Produkt 1. Produkt = Produkt

Mehr