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

Dies ist eine alte Version des Dokuments!


Prüfung: Rechnerarchitektur (7.5 ECTS)
Prüfer: Prof. Dr.-Ing. Dietmar Fey, Beisitzer Sebastian Rachuj
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.

CISC/RISC

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

Pipelining

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 modern Intel-Chips 20 Stufen.

P: Sehr gut. Wieso also erhöhen wir nicht einfach auf 1000 Stufen?

P: Wie berechnet sich der Durchsatz?

Hier erst erklärt, dass man mit Pipelining insgesamt k + (n-1) Schritte braucht (bei n Instruktionen mit k Stufen). Er wollte eigentlich auf das tau = max(tau) + d hinaus, siehe unten.

P: Aber das ist nicht der Durchsatz. Wie berechnet man den generell den Durchsatz?

Anazhl an Instruktionen pro Zeit.

P: Okay, und wie schaut es mit der Ausführungszeit pro Stufe bei der Pipeline aus?

Ah, die orientiert sich natürlich an der langsamsten Stufe, also tau = max(tau) + d. Daher sollten die Stufen alle in etwa gleich lang sein. Auf Nachfrage dann erwähnt, dass das bei CISC eben nicht der Fall.

P: Ist doch schön. Aber wieso klappt das mit dem Pipelining doch nicht ganz so?

Ewähnt, dass drei Arten von Hazards. Strukturhazards entstehen bei gemeinsamer Nutzung von Resourcen. Bsp: Gemeinsamer Daten- und Instruktionscache bei Single-Port Speicher wenn BH und OP-Phase; oder bei Funktionseinheiten in superskalaren Architekturen.

Cache

P: Gut, machen wir mal weiter mit dem Cache. Wir hatten da doch ein theoretisches Modell für den Zugriff kennengelernt.

Hingeschrieben, dass T = T_h + m * T_m, erklärt was die einzelnen Bestandteile bedeuten.

P: Wie kann man dann die Zugriffszeit T veringern?

  • T_h:
  • m:
  • T_m:

Hier ging es ein paar mal hin und her. Besser kommt es vermutlich an, wenn man gleich gut vorbereitet ist und das parat hat.

P: Wir hatten doch diese Cache-Effekte? Können Sie die mal nennen?

Angefangen mit Struct of Arrays vs Arrays of Structs als Bsp. auf Papier, erklärt das man hier ausnützt das im Array of Structs die beiden Werte direkt nebeneinander im Cache stehen. Auf Nachfrage bemerkt, dass räuml. Lokalität ausgenutzt. Danach Schleifenvertauschen hingeschrieben, angesprochen, dass, wenn ungeschickt, man mit großem Stride durch Array wandert. Wieder auf Nachfrage bemerkt, dass räuml. Lokalität ausgenutzt. (Hier hatte ich mich erst verhaspelt und zeitl. Lokalität genannt.)

P: Gut, wir haben jetzt nur noch zwei Minuten. Können Sie mal nur noch ganz grob die anderen beiden Cache-Effekte erklären?

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.

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: Was genau ist denn hier der Overhead des GPP im Vergleich zu ASIC?