Teil Rechnerarchitekturen Repetitorium Corinna Schmitt [email protected]

Vorlesungsinhalt Rechnerarchitekturen q  q  q  q  q 

q  q 

q 

M01: Architektur, ALU, Flip-Flop M02: Einführung in die Sprache C M03: 2er-Komplement, CPU, Bus M04: Speicherchips, Hierarchie, Byte-Ordnung, Cache, ISA M05: AVR-CPU und –Assembler, Memory Map, Stack, Prozeduraufruf, Calling Convention M06: Peripheriebausteine, I/O, Interrupts, Timer M07: Multiprogrammierung und –Tasking, Flynn-Klassifikation, ILP, VLIW M08: UMA/NUMA, software-morphing CPUs, Cell-CPU

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 2

M01 q 

Aus was besteht die von-NeumannArchitektur? Was besagt sie? –  Rechenwerk, Steuerwerk, I/O, Verbindungen Bottleneck à –  Programm und Daten im Speicher –  Schritt für Schritt Bearbeitung von Befehlen –  Bedingte Sprünge und Verzweigungen

q 

Was ist der Unterschied zwischen von-Neumann-Architektur und Harvard-Architektur? –  Harvard-Architektur hat die Instruktionen in einem separaten Speicherund Adressraum

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 3

M01 q 

Handelt es sich um ein Schaltnetz oder Schaltwerk? Warum? –  Schaltnetz, da kein Speicherelement vorhanden

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 4

M01 q 

Warum braucht man „Schaltungen mit Gedächtnis“? –  Um aber Aufgaben zu lösen, die nicht nur von einer Momentaufnahme abhängig sind –  Schaltung, die Eingangswerte zu einem bestimmten Zeitpunkt mit vor diesem Zeitpunkt entstandenen Werten verknüpft. –  Asynchron-Schaltwerk ist die Grundform dieser Schaltungen.

q 

Was zeichnet ein asynchones Schaltwerk aus? –  Mindestens ein Ausgang wird auf die Eingänge rückgekoppelt à Verhalten ist damit nicht nur von den Eingangsgrößen xi abhängig, sondern vom Zustand zm an den Ausgängen. à Informationen können gespeichert werden.

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 5

M03 q 

Was ist das 2er-Komplement von -410? -410 è

Betrag im Dualsystem: 001002 Bitweise komplementieren

§ 

Einerkomplement: -410 = 110112 Addition von 1

§ 

Zweierkomplement: -410 = 111002

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 6

M03 q 

Wie kann die ALU die Integersubtraktion implementieren obwohl sie nur Addierlogik hat? –  Um eine Zahl (Subtrahend) von einer anderen (Minuend) abzuziehen, addiere man das 2er-Komplement des Subtrahenden zum Minuend.

q 

Wann kann es zu einem Überlauf (Overflow) kommen? –  Wenn die Resultate nicht mehr in die Maske der n Bits passen (siehe Zahlenkreis)

q 

Was ist der Unterschied bei RAM und ROM? –  RAM enthält Programme, die gerade ausgeführt werden, und verwendete Daten. –  ROM enthält meist ein Programm (BIOS bei IBM-PCs), das beim Einschalten die wichtigsten Hardwarekomponenten überprüft und dann das Booten des Betriebssystems von einem Speichermedium veranlaßt.

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 7

M03 q 

Was ist ein Microprozessor? –  Chip, der Pins benutzt als „Bus“ zur Peripherie (RAM, ROM, Serial ports, I/O) –  Erweiterbar

q 

Was ist im Gegensatz dazu ein Microcontroller? –  „system on a chip“ –  Beinhaltet Prozessor, RAM und I/Os alle auf einem Chip –  Controllingbus ist intern –  Nicht erweiterbar –  Meist für spezielle Aufgaben genutzt

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 8

M03 q 

Wie sieht der ganze Instruktionszyklus einer CPU aus? 1.  2.  3.  4.  5. 

q 

Hole nächste Instruktion (mittels PC) Hole die Operanden (in Abhängigkeit der Instruktion) Führe die Operation durch Speichere das Resultat Berichtige PC (falls nicht schon Teil der Operation)

Wofür benötigen wir Busse? Warum gibt es so viele verschiedene? –  Kommunikation zwischen den Bestandteilen des Mainboards –  Schnittstellen zur Außenwelt –  Unterschiedliche Geschwindigkeit, Zugriffs-Verfahren, elektrische Eigenschaften

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 9

M04 q 

Warum ist die Byte-Ordnung wichtig? –  Richtige Interpretierung der Daten –  Zugriff auf die Daten –  Austausch von Daten

q 

Wie ist die Ordnung bei Big bzw. Little Endian? –  Big Endian: •  Höchstwertiges Bytes an der niedrigsten Adresse (Stunde:Minute:Sekunde)

–  Little Endian: •  Niederwertiges Byte an der niedrigsten Adresse (Tag.Monat.Jahr)

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 10

M04 q 

Was ist ein Cache-Speicher? –  Kleiner, schneller Pufferspeicher, der einem langsamen & größeren Speicher vorgeschaltet ist.

q 

Warum verwendet man Caches? –  Ein „Puffer“ für Daten –  Ermöglicht Lesen im voraus –  Verzögertes Schreiben

q 

Wo sind die Unterschiede bei CISC und RISC?

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 11

M05 q 

Was versteht man unter Maschinencode? –  Dies sind die binären Signalkombinationen, mit denen die einzelnen Bauteile eines Computers kommunizieren

q 

Was macht ein Assembler? –  Jeder Mikroprozessor hat seinen eigenen Code und einen dazu passenden Assembler, mit dem die numerische, eher kryptische Schreibweise des Maschinencodes in die vereinfachte Schreibweise umgesetzt wird.

q 

Was hat die Hardware von Mikrocontrollern mit Assembler zu tun? –  Das Konzept bei Assembler ist, die Ressourcen (CPU, ALU, Speicher, etc) des Prozessors unmittelbar zugänglich zu machen.

q 

Welches sind die Eigenschaften der AVR-CPU? –  8-Bit CPU, 32 Register –  uniforme Länge der Instruktionen –  5 Speicherzugriffsmodi

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 12

M05 q 

Was kann man mit einem Stack machen? –  Informationen speichern (bestimmten Reihenfolge) –  pop/push

q 

Was ist ein Stackpointer und welche Aufgaben hat er? –  Liegt im Datensegment (SRAM) –  Spezialregister, 16-bit weit –  Zeigt nächste freie Stelle im Stack an

q 

Wie funktioniert ein Stack/ Stackmaschine? –  Dynamische Verwaltung –  Temporäres Freimachen von Registern

q 

Was ist wichtig zu beachten bei Prozedur-Aufrufen? –  Parameter Übergabe / Calling Convention

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 13

M05 q 

Was macht folgender Assembleraufruf?

–  Max{ }-Berechnung –  In C: void max( ) {if (r1 < r2) r3 = r1; else r3 = r2;} © 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 14

M06 q 

Welche Zugriffverfahren gibt es bei den Peripheriebausteinen? –  Polling von Daten / Interrupt Requests

q 

Welche Systembus-Zustellungsverfahren gibt es? – 

q 

Zentrales Verfahren / Dezentrale Verfahren

Was ist der Unterschied zwischen DMA und PIO? –  Bei DMA initialisiert CPU den Transfer nur: •  Daten gehen direkt vom Speicher zur Peripherie, DMA generiert Adressen

–  DMA wickelt Transfer ab, CPU arbeitet parallel weiter.

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 15

M06 q 

Was passiert bei einem Interrupt? –  –  –  –  – 

q 

Unterbrechung der CPU (Interrupt) via Spezial-Kontrollleitung CPU speichert aktuellen Zustand Forcierter Sprung an vordefinierte Adresse CPU arbeitet die Unterbrechung-Subroutine dort ab (interrupt handler) CPU-Zustand wieder herstellen und am alten Ort weitermachen

Wofür braucht man den Interrupt-Vektor? –  Definiert die Sprungadresse, damit CPU bei einem Interrupt die entsprechende Subroutine findet.

q 

Was kann man mit einem Timer machen? –  Programme/Interrupts zu einem bestimmten Zeitpunkt starten lassen –  ACHTUNG: groß genug wählen, um Überlauf zu verhindern

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 16

M07 q 

Was versteht man unter Multi-Programmierung? –  mehrere Programme im Hauptspeicher –  jedes Programm hat seinen eigenen Zustand •  Program Counter (PC)

–  CPU bzw. OS wählt, welches Programm (kurz) bearbeitet wird

→ pseudoparallele statt sequentielle CPU-Nutzung q 

Was passiert bei einem Context-Switch in einer CPU? –  Zustand des alten Prozesses speichern •  im Hauptspeicher •  oder auf Harddisk

–  Zustand des neuen Prozesses laden •  Wiederherstellen der Registerinhalte •  Wiederherstellen des (virtuellen) Hauptspeichers, memory map und dann starten © 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 17

M07 q 

Was macht die Flynn-Klassifikation? –  Sie ordnet Systeme in Kategorien •  Code: Strom von Befehlen •  Data: Strom von Dateneinheiten

q 

Was versteht man unter Pipelining? Welche Phasen gibt es? –  Parallele Abarbeitung von Instruktionen unter CPU-Teilung –  IF – Instruction Fetch Speicherzugriff (Befehle und Daten) –  ID – Instruction Decoding Einzelaufgaben ableiten (Registerbewegungen, ALU-Modus etc) –  MEM – Memory Access (optional) –  EX – Execution / Durchführung –  WB – Write Back / Resultate zurückschreiben

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 18

M07 q 

Was ist das besondere beim VLIW? –  Explizites “Scheduling” – fest vorgegeben im Befehlswort

q 

Wo findet man VLIW-Architekturen heute? –  in den CPUs von Transmeta, im Crusoe und im Efficeon –  Explicit Parallel Instruction Computer (EPIC)

q 

Wie funktioniert eine Vektor-CPU? –  Sie führt eine Berechnung gleichzeitig auf vielen Daten (in einem Vektor bzw. Array) aus. –  Vektor-Berechnung mittels Skalarprodukt (Spalte/Zeile) um Zielzelle zu berechnen

q 

Was ist Hyper-Threading? –  Spezielle Implementierung von hardwareseitigem Multithreading in Intel-Prozessoren. –  Durch mehrere vollständige Registersätze und ein komplexes Steuerwerk werden intern parallel arbeitende Pipeline-Stufen mehreren parallelen Befehls- und Datenströmen zugeteilt.

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 19

M07 / M08 q 

Was zeichnet eine Multi-Core-CPU aus? –  Mehrere CPU-Kerne auf einem Chip –  Bus-Interface der Flaschenhals –  Scheduling nötig um alle Cores optimal zu belasten

q 

Was besagt Moore‘s Gesetz? –  Anzahl Transistoren auf einem Chip verdoppelt sich alle zwei Jahre, d.h. exponentielles Wachstum! –  Die Performance verdoppelt sich alle 18 Monate

q 

Was ist der Unterschied von UMA und NUMA? –  Interne Organisation, Speicherzugriff

q 

Was versteht man unter Software-Morphing CPUs? Was sind die Ziele? –  CPUs die es ermöglichen Programme und Architekturen zu emulieren. –  Ziele •  Einen einfachen, sauberen und schnellen Chip; x86-Kompatibilität durch Software; low-power

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 20

© 2015 – Corinna Schmitt

Teil Rechnerarchitekturen - 21