Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 3 » CISC/RISC   (Übersicht)

Note: 1.3

Atmosphäre: entspannt

CISC/RISC

P: Wir haben CISC kennengelernt. Was ist die Kernfunktionsweise dahinter?

Mikroprogrammierung, Mikroprogrammierung erklärt, Makrobefehl vs Mikrobefehl, Leitwerk gezeichnet (detailliert wie auf Folien), einzelne Bausteine erklärt und Grund dafür.

P: Was sind denn die Vorteile, die man durch die Mikroprogrammierung hat?

Updates für Bugfixes, Abwärtskompatibilität mit älteren Architekturversionen, Emulation komplett anderer Architekturen

P: Wieso ist man dann zu RISC gegangen?

Bei CISC wurden viele Befehle gar nicht verwendet (Teilweise nur noch 30%, Patterson Studie), also wird aufwändige Steuerlogik nicht ausgenutzt. Bei RISC keine komplizierten Adressierungsmodi (Load/Store Architektur), alle Befehle gleich lang.

P: Wieso hab ich dann noch meine 32-Bit langen Adressen? Wenn ich 3 Operanden mit je 64 Bit Größe habe - wie viel bleiben dann noch für Adressen?

(Die Fragen von Prof. Fey waren etwas wirr und ich war komplett verwirrt an der Stelle, aber hier mal was er hören wollte) Ich brauch 18 Bit zur Adressierung der Operanden, dann bleiben noch 14 Bit für Befehle - man könnte also theoretisch 2^14 Befehle enkodieren. Bei RISC mache ich das aber nicht, ich nehme trotzdem 32 Bit Adressen, da ich ja auch meinen Speicher komplett adressieren möchte und möglichst viele Daten speichern möchte.

Pipelining

P: Malen Sie mal eine Pipeline hin

Die Stufen mit Registern hingemalt und erklärt, dass die Latenz, steigt aber auch der Durchsatz.

P: Und wie viel besser wird man bei einer Pipeline mit k Stufen?

k mal so schnell wie in der sequentiellen Abarbeitung.

P: Warum erreicht man diese k fachen Speedup aber nicht?

Hazards, Struktur, Kontroll, Daten, alle drei erklärt mit Beispiel, bei Daten direkt ein RAW-Beispiel genannt.

P: Was ist das einfachste, was man gegen RAW tun kann?

Forwarding, erklärt warum und wie.

P: Was für Datenhazards gibt es noch?

WAR, WAW

P: Können Sie ein Beispiel für WAR hinmalen?

Klar!

R0 = R1 / R2 (Das / hier ist wichtig, damit die Instruktion solange dauert(
R3 = R0 + R6
R6 = R4 + r%

Und dann natürlich erklären, wo er auftritt und warum

P: Was kann man dann dagegen tun?Zur Vermeidung von Datenhazards gibts das Scoreboard. Wie funktioniert das? (Legt Blatt mit Scoreboard-Algorithmus aus Vorlesung hin)

Scoreboard-Architekturen einführen (P legt Blatt mit Scoreboard-Algorithmus aus Vorlesung hin). Exakt erklären, was in den Stufen passiert, welche Hazards dadurch verhindert werden, sehr detailliert und Schrittweise erklärt warum man es so macht. Keine Nachfragen dazu.

P: Es geht noch besser als Scoreboard.

…ja, mit Tomasulo. Hier vermeidet man WAW und WAR-Hazards durch Registerumbennenung. Reservierungsstationen erklärt, erklärt, wie Befehle eingelastet werden, woher die Operanden kommen (Werte aus Registerfile oder Referenzen auf die entsprechenden Reservierungsstationen → das eigentliche Renaming).

P: Zeigen Sie das doch mal an ihrem Beispiel hier (siehe Code oben)

Erklärt, dass R6 kopiert wird, auf R0 gewartet wird und auf dem Datenbus gelauscht, Referenz auf FU Div eingetragen, und dass dritter Befehl ausgeführt werden kann, da zweite schon Kopie hat.

Multicore

P: Gut, genug von Kapitel 1. Wieso haben wir denn überhaupt Multicore?

Bislang zwei Arten, Leistungssteigerung zu bekommen: Architektur (Sprungvorhersage usw) fast am Anschlag, 95% Technologie, Taktschraube nicht mehr drehbar, Dennerdsche Skalierung anhand P = rho * C * f * V^2 erklärt, und dass V nicht mehr abnehmen kann. Energietechnisch deswegen nicht mehr lohnenswert, hier nach oben zu gehen.

Dann Regel von Pollak erklärt.

P: Da gab es dann diesen Amdahl - was hat der denn gesagt?

Amdahl mit Formel erklärt und extra erwähnt, dass das nur für eine Applikation gilt.

P: Bild von Intel-Studie (Kap2, Folie 18) vorgelegt und man sollte beschreiben.

Zuerst linker Teil erklärt, dann kurz auf TPT eingegangen, dann Formel für rechten Teil erklärt und geschlossen, dass für parallele Anwendungen, die unabhängig voneinander sind, der sequentielle Anteil nicht gilt, da diese unabhängig voneinander laufen können. (Ich empfehle, die Videovorlesung hierzu anzusehen, Erklärung dort ist 'perfekt')

Eingebettete Prozessoren

P: Die 30 Minuten sind eigentlich rum.. Erklären sie doch noch mal in kurzen Worten, wie so ein FPGA aufgebaut ist und was der Unterschied zu GPP und ASIC ist, z.B. wenn es eine Addition durchführen soll.

Kurz für GPP eine ALU mit Registerblock und für ASIC einfach nur ALU mit Akku skizziert und erklärt, dass GPP eben viel Overhead für eine Addition unnötige Teile hat. Dann FPGA skizziert mit Logikblöcken und Schaltmatrizen, erklärt, dass rekonfigurierbar.

P: Es gibt so ein Mikroprozessorparadoxon: Wenn ich z.B. ein ASIC mit einer Addition baue und dasselbe in C für meinen Mikroprozessor baue ist der Mikroprozessor schneller. Warum will ich trotzdem ASICs?

ASICs in großer Stückzahl günstiger und geringerer Leistungsverbrauch machen es lohnenswert.

Parallelrechner

P: Gut, letzte Frage, skizzieren sie kurz den Unterschied Speichergekoppelt vs Nachrichtengekoppelt.

Speichergekoppelt: Gleicher Virtueller Adressraum, gegebenenfalls physikalisch getrennt (SMP vs DSM) Nachrichtengekoppelt: Getrennter Virtueller Adressraum, Physikalisch getrennt, zugriff explizit übers Netzwerk mit Werten in Nachricht kodiert.