Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 3 » Rechnerarchitektur

Rechnerarchitektur

  • „Rechnerarchitektur“ WS 2012/2013 (7,5 ECTS, gleiche Prüfung wie fuer 5,0 ECTS) ~ 30 min

Prüfer: Prof. Dr.-Ing. Dietmar Fey
Beisitz: (Name nicht gemerkt)

Papier + Stift bereitgestellt

Prüfer P, Student S.

CISC

P: Wir haben RISC/CISC kennen gelernt. Beschreiben Sie wie CISC funktioniert.

S:

  • Complex Instruction Set Computing
  • Mikroprogrammierung mit Grafik erklärt (siehe Folien):
    • Instruction Register
    • Control Addreess Register
    • Control Memory
    • Control Buffer Register
    • Sequencing Logik
    • Decoder
    • ALU Flags
  • Makroinstruktion durch Mikroinstruktionen ausgeführt, Sprünge möglich, etc.

P: Was sind denn Vorteile der Mikroprogrammierung?

S:

  • programmierbar, erlaubt es Fehler auszubessern
  • Kompatibilität zu älteren Instruktionssätzen
  • Unterstützung von anderen Instruktionssätzen

P: Warum ging man von CISC weg?

S:

  • komplexe Adressierungsarten die keiner mehr Nutzen konnte (VAX)
  • schlechtere Parallelisierbarkeit (Pipelining)
  • Alternative: RISC

RISC

P: Wie funktioniert RISC?

S:

  • Reduced Instruction Set Computing
  • Pipelining
  • festverdrahtet
  • viele Register
  • Load/Store Architektur: alle Operanden in Registern
  • spezielle Load/Store Befehle

P: Was ist ein Problem bei der Instruktionskodierung?

S:

  • länger als vergleichbare CISC-Instruktionen
  • Redundanz da jede Instruktion gleich lang
  • Probleme für Instruktions-Caches

Pipelining

P: Wie funktioniert Pipelining?

S:

  • Aufteilung der Ausführung einer Instruktion in Phasen:
    • Befehl holen
    • Befehl dekodieren
    • Operanden holen
    • Befehl ausführen
    • Ergebnis zurückschreiben
  • Skizze von Pipelining gemalt
  • maximaler Speedup erklärt (Formel)
  • nicht erreichbar weil Register zwischen Phasen notwendig sind

P: (Zwischenfrage) Sind diese Register wirklich notwendig?

S: Nein, wenn man es korrekt timen würde dann, bräuchte man das nicht, aber das ist schwer zu realisieren (Unterschiedliche Dauer der Instruktionen).

Hazards

P: Was für Hazards gibt es?

S:

  • Strukturhazard: nicht genug Einheiten verfügbar
  • Steuerungshazard: Sprünge
  • Datenhazard
  • Steuerungshazard erklärt, falsche Instruktionen in der Pipeline; Flush notwendig
  • Lösung: warten bis Sprungentscheidung (ja/nein) und Sprungziel bekannt

P: Wie kann man das besser lösen?

S: erstmal Branch-Loop-Buffer erwähnt:

  • zwischen Instruktions-Register und Cache
  • beschleunigt Zugriffe auf Instruktionen
  • z. B. in Schleifen nützlich

(Wollte gleich zu den dynamischen, sollte aber erstmal statische erklären.)

statische Sprungvorhersage:

  • branch-taken
  • branch-not-taken
  • by-opcode (>75%)
  • erklärt

P: Welche Sprünge sind wie betroffen?

S:

  • unbedingte Sprünge: schon in Dekodierphase erkennbar
  • bedingte Sprünge: erst nach der Operandenholphase
  • indirekte Sprünge: ebenfalls

(Da war ich mir nicht ganz sicher worauf er hinaus wollte.)

P: Zweite Möglichkeit?

S: dynamische Sprungvorhersage:

  • Branch Prediction Buffer: Funktionsweise erklärt
    • 1 bit vs. 2 bit Sprungvorhersage - welche Vorteile bei welchen Schleifen?
    • wie viele Fehler macht man mit 1 bit und mit 2 bit in einer geschachtelten Schleife (da war ich mir nicht so sicher)
  • Branch Target Buffer (Branch History Table) als Verbesserung die auch noch das Ziel speichert

P: Was gibt es noch als Möglichkeit?

S: Delay Slots, Funktionsweise an Hand von Beispiel erklärt.

  A                           A
  B    == durch Compiler ==>  JMP
  JMP                         B

Hat selbe Funktionsweise.

P: Was muss für B gelten?

S: JMP darf nicht von B abhängen.

Caches

P: Was für Organisationsformen gibt es bei Caches?

S:

  • direktabbildend
  • vollassoziativ
  • setassoziativ

jeweils Funktionsweise kurz erklärt

P: Was für Konsistenzprobleme gibt es?

S: Probleme bei mehreren CPUs, Cache-Kohärenz-Protokolle ..

P: (Unterbrechung) Was für Ersetzungsstrategien gibt es?

S:

  • Write-Through, Write-Back erklärt (bei Hit)
  • Write-Around, Write-Allocate (bei Miss)
  • Ersetzungsstrategien:
    • LRU
    • LFU
    • FIFO
    • Random
    • jeweils Funktionsweise erklärt

P: Was ist die beste Ersetzungsstrategie?

S: LRU, aber Random ist auch ganz gut.

P: Wann ist Random gut?

S: Wusste ich nicht. [Antwort: in größeren Caches]

GPU

P: Wie sieht der Aufbau einer Graphikkarte aus?

  • GPU hingemalt (siehe Folien)
    • globaler Speicher
    • Multiprozessoren aus Streamingprozessoren mit Shared-Memory

P: Wo ist der lokale Speicher?

S: Ich dachte Teil des Shared-Memory, war aber falsch. [Antwort: Im globalen Speicher. Deswegen nicht so gut nutzbar, da langsam.]

P: Wie ist die Speicherhierarchie?

  • Register
  • Shared-Memory/Level 1 Cache
  • Level 2 Cache
  • Globaler Speicher

P: Wie ist das mit den Caches?

S: Wusste ich nicht. [Antwort: als Teil vom Shared Memory, dieser dadurch kleiner.]

Flynn

P: Wie sieht denn die Klassifizierung nach Fynn aus?

S:

  • SISD: von Neumann-Rechner
  • SIMD: Vektorrechner/Feldrechner/Graphikkarte
  • MISD: gibt's nicht
  • MIMD: Multikernsystem

P: Wo würde ein Multiprozessorsystem reingehören?

S: MIMD

Eingebettete Systeme

P: Wir haben eingebettete Systeme besprochen, wie sieht denn da die Übersicht aus?

S: Siehe Folie „Kosten-/Leistungsvergleich verschiedener Implementierungsarten von Prozessoren“.

  CISC/RISC <-> Mikrokontroller/DSP/ASIP <-> FPGA <-> ASIC
  • Geschwindigkeit/Stückzahlen nimmt von links nach rechts zu
  • Energieverbrauch/Flexibilität nimmt von links nach rechts ab

P: Was ist denn ein ASIP?

S: Wusste ich nicht. [Antwort: DSP ist ein Beispiel für ASIP]

P: Wie sieht denn der Unterschied zwischen FPGA und ASIC bei einer Aufgabe aus?

S:

  • ASIC: datenflussorientiert mit den nötigen Gattern, z.B. Addierer und Multiplizierer
  • FPGA: programmierbare Blöcke die passend programmierbar verdrahtet werden, um die gewünschte Funktionalität zu erfüllen

Fazit

Atmosphäre sehr angenehm, Fragen kamen nur von Prof. Fey. Note: sehr gut