ROBIN WS 05/06

Hausaufgaben Blatt 4 (Assembler, Speicher) (20 Punkte)

Abgabe am 18.1.2006

  1. Gegeben Sei untenstehendes Assembler-Programm. M, N und RESULT seien symbolische Speicheradressen (Marken, Label). An fder Speicherstelle N stehe der Wert n. Ab der Speicherstelle M stehen die Werte x1 bis xn in aufeinanderfolgenden Speicherstellen. Befehle: mv Laden, add Addieren, sub Subtrahieren, mult Multiplizieren, div Dividieren, sqrt Wurzelziehen, jnz Sprung wenn nicht Null; den Zieloperanden leiten Sie bitte aus den gegebenen Befehlen ab! () bedeute Register indirekte, @ deute speicherdirekte Adressierung an.
    a) Welche Funktion implementiert dieses Programm, was steht nach Abarbeitung in der Speicherstelle RESULT?

    b) Wieviel Byte nimmt das Programm im Speicher ein? Jeder Befehl sei 1 Wort lang, Direktoperanden und Adressen benötigen nochmals 1 Wort (Wortgröße: 2 Byte)

    c) Wieviele Speicherzugriffe sind zur Ausführung des Programmes nötig? Jedes Wort wird mit einem Zugriff gelesen oder geschrieben.

  2. 		mv r0,0
    mv r1,M
    mv r2,@N
    mv r3,0

    L: mv r0,(r1)
    mult r0,r0
    add r3,r0
    add r1,1
    sub r2,1
    jnz L
    sqrt r3
    mv @RESULT,r3


    (5 Punkte)


  3. Eine Verarbeitungspipeline bestehe aus 4 Stufen: Befehl lesen (RI), Decodieren (DC), Operanden holen (RO) und Ausführen (EX).
    1. Wie lange dauert die Verarbeitung von 50 Befehlen, wenn jede Stufe 4 Takte benötigt?
    2. Wie lange dauert die Verarbeitung von 50 Befehlen, wenn jede Stufe die folgende angegebene Zeit benötigt: RI - 3 Takte, DC - 2 Takte, RO - 3 Takte, EX - 2 Takte
    3. Wieviel schneller ist die Verarbeitung nach a) gegenüber einer Verarbeitung ohne Pipeline?

    (5 Punkte)

     

  4. Ein Speichersystem bestehe aus Cache, Hauptspeicher und Festplatte. Der Cache habe eine Trefferquote von 92% und eine Zugriffszeit von 2 ns, der Hauptspeicher eine Trefferquote von 95% und eine Zugriffszeit von 10 ns und die Festplatte habe eine Zugriffszeit von 10 ms.
    Wie lange dauert ein Speicherzugriff im Durchschnitt?
  5. (5 Punkte)

     

  6. Ein Speichersystem habe einen 4-Seiten-Cache. Wieviele Fehlzugriffe (misses) erzeugt folgende Zugriffssequenz auf die Speicherseiten, wenn der Cache vorher leer ist,
    1 - 2 - 4 - 4 - 8 - 4 - 2 - 3 - 8 - 3 - 1 - 9 - 4 - 2 - 8 - 3 - 2 - 2 - 8 - 4 - 3 - 3 - 7 - 6
    1. bei einer einfach assoziativen (mod 4) Ersetzung ?
    2. bei einer vollassoziativen Ersetzung mit FIFO ?
    3. bei einer vollassoziativen Ersetzung mit LRU?
    4. bei einer vollassoziativen Ersetzung mit einem perfekten Orakel ?

    (5 Punkte)