Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 3 » Rechnerarchitektur 7.5 ECTS Prüfung 06.04.2022   (Übersicht)

Rechnerarchitektur 7.5 ECTS Prüfung 06.04.2022

Meta Information

  • Fach: Rechnerarchitektur 7.5, WS21/22
  • Datum: 06.04.2022
  • Typ: mündliche Prüfung
  • Prüfer: Prof. Dr. Ing. Fey
  • Beisitzer: M. Sc. Sebastian Rachuj
  • Note: sehr gut

Ich habe versucht, mich gut auf die Inhalte des PDFs Contents of Exam vorzubereiten. Ich bin aber auch die Vorlesungsfolien und Übungen durchgegangen, um ein bisschen mehr Hintergrundwissen zu sammeln.

Ich war am Anfang aufgeregt, die Atmosphäre war aber sehr angenehm und die Anspannung hat sich dann gelegt.

Wenn ich eine Frage nicht verstanden habe, dann hat Prof. Fey Hilfestellungen gegeben, um mich in die richtige Richtung zu leiten. Die Benotung habe ich als sehr fair wahrgenommen.

Das Protokoll hat sicherlich Lücken und sowohl die Fragen als auch die Antworten waren teilweise bestimmt etwas anders.

Prüfung

CISC - RISC

Es wurde recht viel auf CISC eingegangen, unter anderem auch auf die historischen Hintergründe (warum wurde mit CISC begonnen, warum ist das irgendwann in eine Art Sackgasse gelaufen?). Da habe ich nicht allzu viel gewusst.

* Was macht denn die Mikroprogrammierung bei CISC?

Es gibt Makrobefehle, die den Einsprung in ein Mikroprogramm mit Mikroinstruktionen kennzeichnen. Im Mikroprogrammspeicher stehen die Mikroprogramme.

* Was hat denn Mikroprogrammierung für Folgen?

Es können Fehler ausgebessert werden (durch Neuladen der Mikrobefehle), Rückwärtskompatibilität, Software kann die Übersetzung übernehmen (Grundlage für VMs).

* Wie kam CISC zustande, warum ist das in eine Art Sackgasse gelaufen?

Hier war ich recht blank, Prof. Fey hat aber einiges erklärt und auch Hilfestellungen gegeben. Habe dann gesagt, dass viele Befehle mitgeschleppt werden, die nicht mehr in Verwendung sind. Hier hätte ich sagen sollen, dass die Compilerbauer gar nicht mehr alle Befehle mit eingebaut haben, die konnten also nicht mehr benutzt werden (auch weil nicht mehr in ASM programmiert wurde).

* Was ist der Unterschied bei RISC?

Gleiche Befehlslänge, Operanden nur über Register zugreifbar.

Pipelining

* Was ist denn etwas, das man durch RISC erlangt?

Die Möglichkeit zu Pipelinen.

* Warum geht das bei CISC nicht?

Die Geschwindigkeit der Pipeline (der Takt) wird durch die längste Stufe bestimmt. Durch die unterschiedliche Befehlslänge und die Möglichkeit, Speicher als Operanden zu nutzen, ist das sehr schwierig bei CISC.
Sollte dann eine Pipeline zeichnen.

* In so einer Pipeline treten ja bestimmte Dinge auf …

Hazards

Irgendwann sollte ich anhand der Pipeline noch einen RAW-Hazard zeigen/erklären, darauffolgend kam dann auch kurz Forwarding ins Spiel.

Hazards!

* Was gibt es denn für Arten von Hazards?

Daten-, Struktur-, Steuerungshazards

* Schauen wir uns doch mal Steuerungshazards an. Wie kommen die denn zustande?

Z.B. durch bedingte Sprünge. Also wenn erst nach EX klar ist, wohin gesprungen werden soll. Somit müssen dann Stalls in die Pipeline eingefügt werden.

* Genau, das verschlechtert dann die Effizienz. Wie kann man denn mit solchen Hazards umgehen?

Mit branch prediction. BNT, BT, by opcode erklärt. Kurz branch loop buffer, branch target buffer erklärt. Branch prediction buffer erklärt, gesagt, dass dabei mehrere Bits möglich sind.

* Was hat denn der 2-bit-branch-prediction-buffer für einen Vorteil?

Habe dann den Automaten aufgezeichnet. Wurde nach dem Verhalten in verschachtelten Schleifen gefragt und habe darauf geantwortet.

* Schreiben Sie doch mal die Befehlsfolge für einen WAR-Hazard auf.

Hier hab ich erst nur die beiden letzten Zeilen des dreizeiligen Beispiels hingeschrieben. Bin dann aber durch ein bisschen Hilfe noch auf die richtige Abfolge gekommen.

* Hier hilft ja der Tomasulo. Wie funktioniert denn das (anhand des dreizeiligen Beispiels)?

Der eine Operand wird kopiert, anschließend wird auf den vorher geschriebenen gewartet. Der dritte Befehl kann schon anfangen. Über den common data bus (Sender, Daten werden gesendet) wird darauf aufmerksam gemacht, wenn der Operand verfügbar ist.

Multicore

* Warum werden denn heute Multicore-Prozessoren verwendet? (Sollte dann auch die Formel für die Leistungsaufnahme hinschreiben.)

Früher konnte die Frequenz erhöht und die Spannung reduziert werden. Mittlerweile geht das nicht mehr, weil es eine gewisse Spannung braucht, um den gesamten Prozessor durchströmen zu können. Außerdem brauchen die Transistoren eine gewisse Spannung, um so zu funktionieren wie gewünscht. Deshalb konnte man die Frequenz nicht mehr erhöhen (Hitzeentwicklung) und ist auf Multicore-Prozessoren umgestiegen.

Roofline

* Was ist denn das Roofline-Modell?

Ein einfaches Modell, das anzeigen soll wo der Flaschenhals im System steckt (Speicherbandbreite vs. Floating point performance). Habe dann ein Roofline-Modell hingezeichnet und gesagt was die Intensität ist und dass es operationelle und arithmetische Intensität gibt und wo der Unterschied liegt. Habe gezeigt wo die Speicherbandbreite zu finden ist (die schräge Gerade) und Prof. Fey hat mich dann darauf hingewiesen, dass die Steigung den Betrag der Speicherbandbreite anzeigt.

GPP vs. ASIC vs. FPGA

* Kommen wir noch kurz zu Kapitel 3. Was ist denn der Unterschied zwischen GPP, ASIC und FPGA?

Ein GPP kann alles, aber nicht besonders gut (das hätte ich wohl besser ausdrücken können/sollen, Prof. Fey hat aber gemeint, dass er versteht was ich meine). Ein ASIC ist auf eine Anwendung zugeschnitten. Wenn sich da ein Fehler einschleicht, dann ist der allerdings für die Tonne. Bei einem FPGA kann man Blöcke, die aus LUTs bestehen, konfigurieren und miteinander verknüpfen. Dadurch ergibt sich dann ein Verhalten wie bei einem ASIC.