Gedächtnisprotokoll RS08-2: Unterschied zwischen den Versionen

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen
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 1111 10
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