Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » gra » Aufgabe 1: Umformung

Aufgabe 1: Umformung

1)

  int n = length
  int n1 = n-1;
  int i = 0
  
Lin1: goto Lcond2
Lin2: 
  int nextadr = i+1;
  int tmp1 = A[i]
  int tmp2 = A[nextadr]
  if(tmp1 <= temp2) goto skip
    A[i] = tmp2
    A[nextadr] = tmp1
    
skip:
    i++;
    n1 = n - 1;
    
LCond2: if(i < n1) goto Lin2
  n--;

Lcon1: if(n>1 ) goto Lin1
    

Aufgabe 2: Mikroprogrammierung

1)

Control Address Register:

Enthält die Address, die von der Sequencing Logic ermittelt wurde. Das Register liefert die 	Adresseingänge für die Control Memory.

Decoder 1:

Dekodiert die Addresse vom Instructions-Register

ALU-Flags:

Signal der Alu die benötigt wird um die nächste Zieladresse zu bestimmen in der Sequencing Logic

2)

Form von Mikroprgrammierung? Hier wird horizontale Mikroprogrammierung verwendet. Woran kann man das sehen? Aus dem Control Buffer Register laufen die “Control Signals within CPU” ohne vorher durch einen Decoder dekudiert zu werden.

3)

Pseudocode:

int a = #num
int b = eingabe
int c = 0

c = a-b
while (c >= 0){
  a=c
  c= a-b
}

4)

was dann als micocode:

D <- eingabe
B <- D
C<-A-B
goto Lcon
Loop:
  A<-C
  C<-A-B
Lcon: c>=0 Goto Loop:

Aufgabe 3: Paging

1)

Daten: P,WE 0x3 Speicher: P,WE,CD 0xB Code: P,X 0x5 BS-Code: P,X 0x5

2)

Nur Lösung: Daten: 1 VGA: 1 Code: 1 OS: 64

Gesamt: 68 Seiten

3)

Nur Lösung: Daten: 16 VGA: zählt nicht zu nutzdaten Code: 1 OS: 65536

Gesamt: 65553 Seiten

4)

Tabelle TLB

5)

Es müssen die Pages des neuen Prozesses geladen werden da jeder prozess seine eigenen tabels hat TLB muss geleer werden

Aufgabe 4: Assembler

1)

Stack / Register / Speicher

Vorteil Stack: Rekursion möglich

Nachteil Stack: Langsam

Vorteil Register: Schnell

Nachteil Register: Anzahl stark begrenzt / Keine Rekursion möglich

Vorteil Speicher: Anzahl nur durch Kapazität des Speichers begrenzt

Nachteil Speicher: Langsam / Keine Rekursion möglich

2)

Push:

sub $4, %esp
mov value, (%esp)

Pop:

mov (%esp), address
add $4, %esp

3)

Stack malen:

Aufgabe 5: Parallelverarbeitung

1)

Unter Pipelineing versteht man die Abarbeitung von unabhängigen Microinstruktionen nach einer Art “Fließband”.( Es werden mehere Befehle gleichzeitig abgearbeitet)

2)

Max Speed-Up wäre somit 5

Allerdings wird dieser Speed-Up nicht erreicht, da ein Programm aus Sprüngen ( Steuer-Hazard / Steuerfluss-Konfikte) und Variablen Abhängigkeiten besteht ( Daten-Hazard)

3)

Pipeline Tabelle Malen:

Aufgabe 6: Cache

1)

räumliche Lokalität:

Räumliche Lokalität bedeutet, dass bei einem Zugriff auf eine best. Hauptspeicheraddresse der nächste folgende Zugriff auf eine benachtbarte Hauptaddresse erfolgt (z.B. bei einem Array)

zeitliche Lokalität:

Zeitliche Lokalität bedeutet, dass nach einem Zugriff auf eine Hauptspeicheraddresse mit großer Wahrscheinlichkeit bald wieder dort zugegriffen wird. (z.B. for-Schleife)

2)

geg.: Cache-Nutzdatengröße = 256 KiB = 2^10 * 2^8 = 2^18

Blockgröße = 64 Bytes = 2⁶ Bytes

8-Fach = 2^3

Rechnung

2^18(nutzdaten) / 2^6(blockgröse) = 2^12 Blöcke

2^12(blöcke) / 2^3(assoz) = 2^9 Mengen

3)

2^4 Mengen

Man bräuchte mehr nun Adressvergleicher um die Einträge im Cache zu addressieren.

Außerdem würde die Größe vom Index steigen → Tag wird kleiner

Aufgabe 7: Arbeitsspeicher

TODO

Zum Forum

Wenn ihr fragen oder Fehler findet Hier gehts zum Forum