Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 3 » CISC/RISC   (Übersicht)

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
pruefungen:hauptstudium:ls3:ra-2020-02-07 [07.02.2020 11:50] Thomas Rpruefungen:hauptstudium:ls3:ra-2020-02-07 [07.02.2020 16:04] (aktuell) Thomas R
Zeile 3: Zeile 3:
 **Note:** 1.0 (schwankte zwischen 1.0 und 1.3 - letzten Endes aber doch 1.0 wegen des konsequenten Besuchs der Tafel- und Rechnerübung. Lohnt sich also ;-)) **Note:** 1.0 (schwankte zwischen 1.0 und 1.3 - letzten Endes aber doch 1.0 wegen des konsequenten Besuchs der Tafel- und Rechnerübung. Lohnt sich also ;-))
  
-Generell ist Prof. Fey relativ kulant, wenn man nicht auf dem ersten Anhieb versteht worauf er hinaus will. Er formuliert die Frage dann meistens detaillierter um, womit es bei mir beim zweiten Anlauf eigentlich immer geklappt hat.+Die Prüfungsatmospäre ist recht locker, Papier und Stift wurden gestellt. Generell ist Prof. Fey relativ kulant, wenn man nicht auf dem ersten Anhieb versteht worauf er hinaus will. Er formuliert die Frage dann meistens detaillierter um, womit es bei mir beim zweiten Anlauf eigentlich fast immer geklappt hat
 + 
 +Ich habe mich bemüht hier die Prüfung so gut wie möglich zu rekonstruieren, aber es kann natürlich sein, dass ich 1) die Reihenfolge zum Teil falsch habe, 2) Fragen/Antworten falsch in Erinnerung habe, oder 3) Fragen einfach hier vergessen habe.
  
 ==== CISC/RISC ==== ==== CISC/RISC ====
 **P:** Aus welchen Gründen ist man von CISC nach RISC gewechselt? **P:** Aus welchen Gründen ist man von CISC nach RISC gewechselt?
  
-Erklärt, das CISC (Complex Instruction Set Computer) kompliziertere Addressierungsmodi enthält, die vielleicht anfangs von Vorteil waren als man Assembler händisch geschrieben hatte, aber später eigentlich nur noch Compiler, der Maschinencode erzeugt. Patterson-Studie erwähnt, nach der im schlimmsten Fall nur 30% der Befehle verwendet werden. Daher also RISC (Reduced Instruction Set Computer).+Erklärt, das CISC (Complex Instruction Set Computer) kompliziertere Addressierungsmodi enthält, die vielleicht anfangs von Vorteil waren als man Assembler händisch geschrieben hatte, aber später eigentlich nur noch Compiler, der Maschinencode erzeugt. Patterson-Studie erwähnt, nach der im schlimmsten Fall nur 30% der Befehle vom Compiler verwendet werden. Daher also RISC (Reduced Instruction Set Computer)
 + 
 +**P:** Wodurch zeichnet sich also RISC aus? 
 + 
 +RISC (Reduced Instruction Set Computer) hat gleich lange Befehle und man muss explizit die Werte mittels Load/Store laden. Außerdem besitzen diese ein fest verdrahtetes Leitwerk. 
 + 
 +**P:** Sie hatten eben das fest verdrahtete Leitwerk angesprochen. Ist das etwa bei CISC nicht der Fall? 
 + 
 +Erklärt, dass CISC Mikroprogrammierung verwendet, welches einen Makrobefehl in eine Folge von Mikroinstruktionen umwandelt. Das ist flexibler und ermöglicht Fehlerbehebung, Befehlskompatibilität und Befehlsemulation. Da aber selten verwendet etwas vergeudet. 
 + 
 +**P:** Ist CISC also ausgestorben? 
 + 
 +Nein, moderne Intel x86 Prozessoren sind weiterhin CISC, die komplexen Befehle werden aber zumeist in eine Abfolge von RISC Befehlen umgesetzt. Nach seinen Worten also 'RISC-Kern' und 'CISC-Schale'. Die RISC Befehle lassen sich in der Folge besser pipelinen.
  
 ==== Pipelining ==== ==== Pipelining ====
 **P:** Was hat es denn mit dem Pipelining auf sich? **P:** Was hat es denn mit dem Pipelining auf sich?
  
-Pipeline hingezeichnet, erklärt was BH, BD, OP, BA und RS machen. Erläutert, dass bei CISC alle Stufen fertig bevor nächste Instruktion ausgeführt, bei RISC allerdings sofort nächster Befehl sobald Stufe frei. Daher höherer Durchsatz. Aber Register zwischen den Stufen, also Overhead. Erwähnt das moderne Intel-Chips 20 Stufen.+Pipeline hingezeichnet, erklärt was BH, BD, OP, BA und RS machen. Erläutert, dass bei CISC alle Stufen fertig bevor nächste Instruktion ausgeführt, bei RISC allerdings sofort nächster Befehl sobald Stufe frei. Daher höherer Durchsatz. Aber Register zwischen den Stufen, also Overhead. Erwähnt das moderne Intel-Chips 20 Stufen. [siehe Folie 18, Kap 1]
  
 **P:** Wie berechnet sich der Durchsatz? **P:** Wie berechnet sich der Durchsatz?
Zeile 34: Zeile 48:
  
 Bei k Pipelinestufen ist der asymptotische Speedup k. Bei k Pipelinestufen ist der asymptotische Speedup k.
 +
 +**P:** Was hat es denn prinzipiell mit der Superskalarität auf sich?
 +
 +Mehr schlecht als recht Funktionseinheiten skizziert. Erklärt, dass man daran interessiert ist möglichst alle Recheneinheiten auszulasten, man also alle unabhängig voneinander nutzen will. Nach Zwischenfrage zu in-order/out-of-order erwähnt, dass eben in-order installiert wird aber dann out-of-order ausgeführt und zurückgeschrieben. Dann wollte er noch den Begriff Installation geschärft haben, womit hier die Einbringung zur Ausführung auf der Funktionseinheit (FU) gemeint ist.
  
 **P:** Ist doch schön. Aber wieso klappt das mit dem Pipelining doch nicht ganz so? **P:** Ist doch schön. Aber wieso klappt das mit dem Pipelining doch nicht ganz so?
Zeile 62: Zeile 80:
 **P:** Also, nun zum Scoreboarding. Können Sie grob den Ablauf skizzieren? **P:** Also, nun zum Scoreboarding. Können Sie grob den Ablauf skizzieren?
  
-Einfach die vier Phasen DE1, DE2, BA und RS hingeschrieben. Erklärt, dass DE1 WAW Hazards und Strukturhazards löst; DE2 die RAW Hazards löst; und RS die WAW Hazards löst. [siehe Folie 59, Kap 1]+Einfach die vier Phasen DE1, DE2, BA und RS hingeschrieben. Erklärt, dass DE1 WAW Hazards und Strukturhazards löst; DE2 die RAW Hazards löst; und RS die WAR Hazards löst. [siehe Folie 59, Kap 1]
  
 **P:** [Folie 64, Kap 1 vorgelegt] Würden Sie bitte die einzelnen Schritte des Scoreboard Algorithmus näher erklären. **P:** [Folie 64, Kap 1 vorgelegt] Würden Sie bitte die einzelnen Schritte des Scoreboard Algorithmus näher erklären.
  
-Erklärt, dass warten bis freie FU und keine Instruktion mit gleichem Zielregister bei Issue (WAW). Erklärt, dass warten bis beide Quellregister erzeugt wurden (RAW), falls nötig. Dort ist er dann auf die rechte Spalte eingegangen und wollte wissen, dass die Register nach dem Lesen 'freigegeben' werden. Erklärt, dass+Erklärt, dass warten bis freie FU und keine Instruktion mit gleichem Zielregister bei Issue (WAW). Erklärt, dass warten bis beide Quellregister erzeugt wurden (RAW), falls nötig. Dort ist er dann auf die rechte Spalte eingegangen und wollte wissen, dass die Register nach dem Lesen 'freigegeben' werden. Erklärt, dass bei Write Result gewartet wird bis alle Instruktionen das Zielregister gelesen haben (WAR). Insbesondere wollte er hier die Verbindung zwischen Ri,j=No bei den Operanden und der Abfrage bei Write Result hören. Das Zielregister darf dadurch sofort schreiben sobald gelesen wurde und muss nicht auf die eigentliche Beendigung warten.
  
 ==== Cache ==== ==== Cache ====
Zeile 73: Zeile 91:
 Hingeschrieben, dass ''T = T_h + m * T_m'', erklärt was die einzelnen Bestandteile bedeuten. Hingeschrieben, dass ''T = T_h + m * T_m'', erklärt was die einzelnen Bestandteile bedeuten.
  
-**P:** Wie kann man dann die Zugriffszeit T veringern?+**P:** Wie kann man dann die Zugriffszeit ''T'' veringern?
  
   * ''T_h'': Kleineren Cache mit geringerer Schaltungkomplexität bzw. Pfaden; geht auf Kosten von ''m''.   * ''T_h'': Kleineren Cache mit geringerer Schaltungkomplexität bzw. Pfaden; geht auf Kosten von ''m''.
Zeile 88: Zeile 106:
  
 Kurz die Schleifenzusammenführung angesprochen, dass hier evt. Werte die noch aus der vorherigen Schleife im Cache liegen und wiederverwendet werden. Auf Nachfrage bemerkt, das hier tatsächlich zeitl. Lokalität ausgenutzt. Dann noch kurz Blocking, dass hier z.B. bei der Matrix-Matrix-Multiplikation versucht wird möglichst alle Blöcke im Cache zu behalten. Kurz die Schleifenzusammenführung angesprochen, dass hier evt. Werte die noch aus der vorherigen Schleife im Cache liegen und wiederverwendet werden. Auf Nachfrage bemerkt, das hier tatsächlich zeitl. Lokalität ausgenutzt. Dann noch kurz Blocking, dass hier z.B. bei der Matrix-Matrix-Multiplikation versucht wird möglichst alle Blöcke im Cache zu behalten.
 +
 +==== Multicore ====
 +**P:** Die Zeit ist nahezu um. Können Sie noch das Roofline Modell beschreiben?
 +
 +Erklärt das operationelle Intensität (Anzahl Instruktionen pro Byte), maximale Rechenleisung und maximale Bandbreite von Relevanz. Für die Roofline gilt dann min(max. Rechenleistung, max. Bandbreite * op. Intensität). Den Graphen hingezeichnet und erklärt, dass links memory-bound und rechts compute-bound.
 +
 +**P:** Wir hatten in der Vorlesung zwischen operationeller und arithmetischer Intensität unterschieden. Was war denn der Unterschied?
 +
 +Operationelle Intensität ist die eigentliche Anzahl der Operationen pro Byte, die auch den Transfer DRAM-Cache berücksichtigt. Arithmetische Intensität ist hingegen eher theoretisch, indem einfach die Anzahl der Operationen und die Codegröße betrachtet wird, also quasi 'kostenfreier' Zugriff durch Cache. (Hier hatte ich die beiden in der Prüfung leider verwechselt.)
  
 ==== Eingebettete Prozessoren ==== ==== Eingebettete Prozessoren ====
-**P:** Na, dann ist die Zeit leider schon um. Aber trotzdem noch kurz zu Kapitel 3. Wollen Sie mir kurz die Unterschiede von ASIC, FPGA und GPP skizzieren?+**P:** Trotzdem noch kurz zu Kapitel 3. Wollen Sie mir kurz die Unterschiede von ASIC, FPGA und GPP skizzieren?
  
 Die Hierarchie wie sie in der Vorlesung drankam hingeschrieben. Erwähnt, dass GPP teurer und mit mehr Leistungsverbrauch verbunden durch die hohe Flexibilität. FPGA rekonfigurierbar mit LUT und Routing, größere Stückzahlen und billiger als GPP. ASIC für sehr Energie- oder Performance-sensitive Anwendungen am besten geeignet, (in großen Stückzahlen auch?) sehr günstig. [siehe Folie 2 und 26, Kap 3] Die Hierarchie wie sie in der Vorlesung drankam hingeschrieben. Erwähnt, dass GPP teurer und mit mehr Leistungsverbrauch verbunden durch die hohe Flexibilität. FPGA rekonfigurierbar mit LUT und Routing, größere Stückzahlen und billiger als GPP. ASIC für sehr Energie- oder Performance-sensitive Anwendungen am besten geeignet, (in großen Stückzahlen auch?) sehr günstig. [siehe Folie 2 und 26, Kap 3]