Computer Architectures

Dozenten

Prof. Dr. Uwe Brinkschulte
Dr. Mathias Pacher

Vorlesung

  • Beginn: ab 5. Dezember 2016
  • Montags 10:00 - 13:00 c.t., SR 11, Robert-Mayer-Str. 11-15
  • Mittwochs 10:00 - 13:00 c.t., SR 307, Robert-Mayer-Str. 11-15

Übung

  • Beginn: ab 6. Dezember 2016
  • Dienstags 14:00 - 15:00 c.t., SR 307 Robert-Mayer-Str. 11-15 (14-tägig)
  • Donnerstags 12:00 - 13:00 c.t., SR 307 Robert-Mayer-Str. 11-15 (14-tägig)

Folien

  • Die Vorlesungsfolien sind im Moodle erhältlich.

Zusammenfassung

Die Vorlesung behandelt die architekturellen und implementierungstechnischen Aspekte moderner Mikroprozessoren.
Im ersten Teil der Vorlesung wird kurz in die grundlegenden technologischen und entwurfstechnischen Voraussetzungen eingeführt. Nach dieser Einführung in die Mikroelektronik wird das sog. von-Neumann resp. Harvard Ausführungsmodell behandelt. Es bildet nach wie vor die Grundlage moderner sequentieller Mikroprozessoren. Als Einstieg in die Welt der Mikroprozessoren eignet sich das Register-Transfer-Modell und die Methodik des Register-Transfer-Entwurfs. Von besonderer Bedeutung ist dabei die Instruktionssatzarchitektur (ISA), da sie die Basis für das Programmiermodell ist. Im Fortgang der Vorlesung werden dann nur noch Prinzipien behandelt, die ausschließlich der Durchsatzerhöhung dienen. Hierzu wird aufbauend auf den Grundlagen rein sequentieller skalarer Architekturen in die Instruktionsparallelität (ILP) eingeführt. Die ILP ist die Grundlage operationsparalleler Architekturen und damit die Voraussetzung für die Leistungsfähigkeit moderner Mikroprozessoren. Es wird davon ausgegangen, dass einige wenige grundlegende Techniken zusammen mit den spekulativen Ausführungsprinzipien, den ILP tragen. Die Implementierung dieser Techniken erfolgt entweder statisch zur Compilezeit (VLIW) oder dynamisch zur Laufzeit mittels Hardware (Superskalarität). Heutige Prozessoren schöpfen aus der Vermischung der ILP-Techniken und ihrer Implementierungsvarianten ihre Synergieeffekte, wobei insbesondere auch die virtuellen Prozessoren zu erwähnen sind. Letztere werden am Beispiel des Code morphing eingeführt. Die Behandlung der Datenabhängigkeiten, der Kontroll- und Ressourcenkonflikte sowie der Möglichkeit einer spekulativen Programmausführung wird am Beispiel des Pipelining durchgeführt. Der zweite Teil der Vorlesung beschäftigt sich mit Speicherstrukturen, Bussystemen der E/A-Organisation und Interrupts sowie den grundlegenden Controllerkonzepten. Der dritte Teil der Veranstaltung gibt einen Überblick über parallele Architekturen, insbesondere eine Klassifikation paralleler Prozessoren, ihrer Programmiermodelle und der Verbindungsnetzwerke.