Gedächtnisprotokoll RS08-2: Unterschied zwischen den Versionen
K (Bot: Kosmetische Änderungen) |
|||
(11 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Aufgabe 1 == | == Aufgabe 1 == | ||
(40 Punkte) | |||
Ampelschaltung | |||
a. Zeichnen Sie ein Zustandsgraphen | |||
b.1 Ausfüllen Werttabelle, KV-Diagramm | |||
b.2 DNF mit Hilfe der Angegeben KV-Digaramme | |||
c. optimierte DNF | |||
d. | |||
e. Wie ist der Zustand, wenn die Ampel eingeschaltet wird. Was passiert in den nicht definierten Zuständen. | |||
f. Womit kann man diese Probleme verhindern. | |||
== Aufgabe 2 == | == Aufgabe 2 == | ||
Zeile 48: | Zeile 64: | ||
restore | restore | ||
== Aufgabe 10 == | == Aufgabe 10 (Extraaufgabe) == | ||
(20 Punkte ) | |||
Bei folgendem Programm gab es Übertragungsprobleme und zwei Befehle konnten nicht mehr entziffert werden. Rekonstruieren Sie diese. | |||
.global psum | |||
.section ".rodata" | |||
.null: .word 0, 0 | |||
.section ".text" | |||
! double psum( int n, double x[], double y[] ) | |||
! %i0 -> n | |||
! %i1 -> x[] | |||
! %i2 -> y[] | |||
psum: | |||
save %sp, -120, %sp | |||
sethi %hi(.null), %o0 | |||
ldd [%o0 + %lo( .null )], %f4 | |||
st %f4, [%fp-16] | |||
st %f4, [%fp-12] | |||
mov %g0, %i5 | |||
cmp %g0, %i0 | |||
bge .ende | |||
nop | |||
.schleife: | |||
ld [%fp-16], %f8 | |||
ld [%fp-12], %f9 | |||
mov %i5, %o0 | |||
sll %o0, 3, %o1 | |||
add %i1, %o1, %g1 | |||
ld [%g1], %f4 | |||
! fehlender Befehl | |||
! | |||
add %i2, %o1, %g1 | |||
ld [%g1], %f6 | |||
ld [%g1+4], %f7 | |||
fmuld %f4, %f6, %f4 | |||
faddd %f8, %f4, %f4 | |||
st %f4, [%fp-16] | |||
st %f5, [%fp-12] | |||
add %i5, 1, %i5 | |||
! fehlender Befehl | |||
! | |||
bl .schleife | |||
nop | |||
.ende: | |||
ldd [%fp-16], %f4 | |||
std %f4, [%fp-8] | |||
fmovs %f4, %f0 | |||
fmovs %f5, %f1 | |||
jmp %i7+8 | |||
restore | |||
== Aufgabe 11 == | == Aufgabe 11 == | ||
Haupspeichergröße = 2^18 | |||
Cachemengen = 32 mit je 4 Cacheblöcken (direct mapped) | |||
Cacheblockgröße = 16 Byte | |||
In welchen Cachemengen werden die Werte folgender Adressen abgelegt: | |||
a) 01 0110 1010 0100 1010 | |||
b) 10 1010 1010 0101 1101 | |||
c) 11 0101 0100 1110 1001 | |||
d) 00 1001 1110 1011 1010 | |||
Geben Sie an wie viele Bit der Adresse auf was verfallen: | |||
Tag: | |||
Index: | |||
Bytenummer: | |||
== Augabe 12 == | == Augabe 12 == | ||
Zeile 58: | Zeile 159: | ||
platte 1: 0110 1100 00 01 0111 01 | platte 1: 0110 1100 00 01 0111 01 | ||
platte 3: 1110 1010 0011 | platte 3: 1110 1010 0011 1111 10 | ||
platte 4: 0100 1110 0101 00 01 11 | platte 4: 0100 1110 0101 00 01 11 | ||
[[Kategorie:Gedaechtnisprotokoll|RS]] | |||
[[Kategorie:Gedaechtnisprotokoll]] |
Aktuelle Version vom 8. Juni 2012, 17:07 Uhr
Aufgabe 1[Bearbeiten]
(40 Punkte)
Ampelschaltung
a. Zeichnen Sie ein Zustandsgraphen
b.1 Ausfüllen Werttabelle, KV-Diagramm b.2 DNF mit Hilfe der Angegeben KV-Digaramme
c. optimierte DNF
d.
e. Wie ist der Zustand, wenn die Ampel eingeschaltet wird. Was passiert in den nicht definierten Zuständen.
f. Womit kann man diese Probleme verhindern.
Aufgabe 2[Bearbeiten]
Aufgabe 3[Bearbeiten]
Aufgabe 4[Bearbeiten]
Aufgabe 5[Bearbeiten]
Aufgabe 6[Bearbeiten]
Aufgabe 7[Bearbeiten]
Aufgabe 8[Bearbeiten]
Aufgabe 9[Bearbeiten]
( 15 Punkte )
Was macht dieses Programm:
funktion: save %sp, -120, %sp mov %i0, %o0 ! %o0 = x smul %o0, %o0, %o3 smul %o0, %o3, %o2 sll %o2, 2, %o0 sll %o2, 3, %o1 add %o0, %o1, %o2 sll %o3, 1, %o0 sll %o3, 4, %o1 add %o0, %o1, %o3 add %o3, %o2, %o3 add %o3, 60, %o0 sra %o0, 31, %g1 wr %g0, %g1, %y nop nop nop sdiv %o0, 18, %i0 jmp %i7+8 restore
Aufgabe 10 (Extraaufgabe)[Bearbeiten]
(20 Punkte )
Bei folgendem Programm gab es Übertragungsprobleme und zwei Befehle konnten nicht mehr entziffert werden. Rekonstruieren Sie diese.
.global psum .section ".rodata" .null: .word 0, 0 .section ".text" ! double psum( int n, double x[], double y[] ) ! %i0 -> n ! %i1 -> x[] ! %i2 -> y[] psum: save %sp, -120, %sp sethi %hi(.null), %o0 ldd [%o0 + %lo( .null )], %f4 st %f4, [%fp-16] st %f4, [%fp-12] mov %g0, %i5 cmp %g0, %i0 bge .ende nop .schleife: ld [%fp-16], %f8 ld [%fp-12], %f9 mov %i5, %o0 sll %o0, 3, %o1 add %i1, %o1, %g1 ld [%g1], %f4 ! fehlender Befehl ! add %i2, %o1, %g1 ld [%g1], %f6 ld [%g1+4], %f7 fmuld %f4, %f6, %f4 faddd %f8, %f4, %f4 st %f4, [%fp-16] st %f5, [%fp-12] add %i5, 1, %i5 ! fehlender Befehl ! bl .schleife nop .ende: ldd [%fp-16], %f4 std %f4, [%fp-8] fmovs %f4, %f0 fmovs %f5, %f1 jmp %i7+8 restore
Aufgabe 11[Bearbeiten]
Haupspeichergröße = 2^18
Cachemengen = 32 mit je 4 Cacheblöcken (direct mapped)
Cacheblockgröße = 16 Byte
In welchen Cachemengen werden die Werte folgender Adressen abgelegt:
a) 01 0110 1010 0100 1010
b) 10 1010 1010 0101 1101
c) 11 0101 0100 1110 1001
d) 00 1001 1110 1011 1010
Geben Sie an wie viele Bit der Adresse auf was verfallen:
Tag:
Index:
Bytenummer:
Augabe 12[Bearbeiten]
(6 Punkte) Wir betrachten ein RAID-5 System mit 4 Platten. Die platte 2 sei vollständig ausgefallen. Rekonstruieren Sie den Inhalt der Platte 2!
platte 1: 0110 1100 00 01 0111 01
platte 3: 1110 1010 0011 1111 10
platte 4: 0100 1110 0101 00 01 11