TU Wien:Rechnerstrukturen VO (Polzer)/Prüfung 2016-03-11

Aus VoWi
Zur Navigation springen Zur Suche springen

Gedächtnisprotokoll der Prüfungsfragen vom 11.03.2016:

Theorie:

  • (1. Frage fehlt)
  • Wo liegen die Grenzen der Performance-Steigerung beim Pipelineing?
  • Was steht in der Page Table und wofür wird sie verwendet?
  • Was sind Clocks-Per-Instruction? Wie werden sie berechnet und wovon hängen sie ab?
  • Kann es bei Gleitkomma-Additionen durch vertauschte Reihenfolge unterschiedliche Werte herauskommen? Geben Sie ein Beispiel!
  • Warum gibt es auf MIPS-CPUs neben den beq/bne Instruktionen keinen blt (branch less than) Befehl?
  • Erklären Sie synchrone/asynchrone Datenübertragung bei IO-Systemen.
  • Gegeben ist ein direct-mapped Cache mit Cache line Größe von 2 Wörtern. In welche Teile muss die Adresse geteilt werden und wie werden Sie beim Zugriff auf den Cache verwendet?

Praxis:

  • C-Code nach MIPS-Assembler übersetzen!
    • MIPS-Calling Conventions beachten
    • Load-Delay-Slot und Branch-Delay-Slot beachten
   int sum(int array[], int len)
   {
       int i;
       int sum = 0;
       for(i = 0; i < len; i++){
           sum += array[i];
       }
       return sum;
   }
  • Pipeline-Diagramm eines längeren MIPS-Assemblercodes zeichnen und herausfinden, wie oft die Schleife durchläuft.
Forwarding ist implementiert und Sprungziele werden in der zweiten Pipeline-Stufe berechnet und in der dritten ausgeführt. Was würde sich am Programmablauf ändern, wenn Sprünge in der vierten Pipeline-Stufe ausgeführt werden würden?
(für dieses Beispiel hat man den Branch-Delay-Slot verstehen und berücksichtigen müssen)
  • Ein Programm besteht zu 20% aus Floating point additionen, zu 10% aus floating point Multiplikationen und zu 7% aus Divisionen. Es gibt von der Designabteilung 4 Möglichkeiten, die Performance zu steigern:
   1. Addition um den Faktor 1,5 beschleunigen.
   2. Multiplikation um den Faktor 3 beschleunigen.
   3. Divisionen um den Faktor 5 beschleunigen.
   4. Multiplikationen und Divisionen jeweils um den Faktor 2 beschleunigen.