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

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 dafuer.

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?

Compilerbauer nutzten viele der Instruktionen nicht! Bei CISC wurden viele Befehle gar nicht verwendet (Teilweise nur noch 30%), also wird aufwändige Steuerlogik nicht ausgenutzt.

P: Wie sieht dann eine RISC-Architektur aus?

Alle Befehle sind gleich lang, Load/Store Architektur, keine komplexe Adressierungsmodi, usw.

Pipelining

P: Was verbessert man durch Pipelining?

Den Durchsatz (wichtig!), der einzelne Befehl hingegen braucht laenger

P: Auf welcher Ebene pipelined man dort?

Auf Ebene der Befehlsverarbeitung (BH, DE, OP, EX, WB)

P: Warum das?

Wegen den Registern zwischen den einzelnen Stufen, technische Gruende

P: Was fuer technische Gruende?

Warten auf laengste Stufe, exaktes zeitgleiches Takten nicht moeglich, Puffer zwischen Stufen

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 erklaert mit Beispiel, bei Daten direkt ein RAW-Beispiel genannt.

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

Forwarding, erklaert warum und wie.

P: Was fuer Datenhazards gibt es noch?

WAR, WAW

P: Koennen Sie ein Beispiel fuer WAR hinmalen?

Klar!

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

Und dann natuerlich erklaeren, wo er auftritt und warum

P: Zur Vermeidung von Datenhazards gibts das Scoreboard. Wie funktioniert das? (Legt Blatt mit Scoreboard-Algorithmus aus Vorlesung hin)

Exakt erklaeren, was in den Stufen passiert, welche Hazards dadurch verhindert werden, sehr detailliert und Schrittweise erklaert 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)

Erklaert, dass R6 kopiert wird, auf R0 gewartet wird und auf dem Datenbus gelauscht, Referenz auf FU Div eingetragen, und dass dritter Befehl ausgefuehrt 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 erklaert, und dass V nicht mehr abnehmen kann. Energietechnisch deswegen nicht mehr lohnenswert, hier nach oben zu gehen.

Dann Regel von Pollak erklaert, dass nicht mehr LohneKurz erklaert, nswert, dann invers erklaert, angewandt, gezeigt, dass dadurch mehr Leistung erreichbar ist.

P: Welche Architektur baut den implizit auf dieser Erkenntnis auf?

GPUs, kleine einfache Kerne, die eigentlich nur ALUs sind, aber massiv parallel.

P: Bild von Intel-Studie (Kap2, Folie 18) vorgelegt und erklaert, warum greift Amdahl nicht?

Zuerst linker Teil erklaert, dann kurz auf TPT eingegangen, dann Formel fuer rechten Teil erklaert und geschlossen, dass fuer parallele Anwendungen, die unabhaengig voneinander sind, der sequentielle Anteil nicht gilt, da diese unabhaengig voneinander laufen koennen. (Ich empfehle, die Videovorlesung hierzu anzusehen, Erklaerung 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.

Gitterfoermige angeordnete Logicbloecke skizziert, Lookup-Table hingemalt, dann konfigurierbare Schaltmatrix angezeichnet, dass diese durch EEPROM und Flash rekonfigurierbar ist.

ASIC ist schaltkreis, hier Bild aehnlich in Vorlesung gemalt, ist nicht konfigurierbar, bei Fehler bloed, FPGA kann neu programmiert werden und Fehler ist behoben, GPP ist sehr flexiblel, hat aber auch viel Overhead, der meist nicht noetig ist (GPP in Armbanduhr waere leicht uebertrieben) Universalprozessor kann alles, ist flexibel, teuer, hat hohen Leistungsverbrauch.

P: Und wie erreicht man die Rekonfigurierbarkeit beim FPGA?

Gitterförmig angeordnete Einheiten, in die man über lookup-tables jede beliebige Logikfunktion programmieren kann. Flip-Flops zum speichern, und auf dem Gitter-Kreuzungspunkten kann man schalten, wie die Daten fließen.

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 uebers Netzwerk mit Header usw.

Sehr gut. Viel Erzaehlen was man weiss, notfalls unterbricht er, wenns zuviel wird. Angenehme Atmosphaere,