Rechnerarchitektur

Kursinformation

Lernziele

Die Studierenden kennen unterschiedliche Arten der Operandenadressierung. Sie sind in der Lage verschiedene Befehlssatzarchitekturen bezüglich der Befehlssatzformate und -zyklen zu unterscheiden. Sie kennen die unterschiedlichen Arten der Mikroprogrammierung und können einfache Befehlssätze entwerfen. Sie sind in der Lage die unterschiedlichsten Adressierungsarten anzuwenden. An Hand der Struktur der Maschine und dem Befehlssatz können sie CISC- von RISC-Maschinen unterscheiden. Die Studierenden erläutern den Begriff Speicherhierarchie und können die Funktion von Caches und Speicherverwaltungseinheiten beschreiben. Sie unterscheiden zwischen physischen und virtuellen Adressen und können unterschiedliche Speichertechnologien in die  Speicherhierarchie einordnen. Sie sind in der Lage die Funktion eines modernen RISC-Prozessors (MIPS) zu beschreiben, zu analysieren und zu bewerten und dieses Wissen auf die Analyse anderer Prozessoren zu transferieren. Sie kennen die Unterschiede von Fließbandverarbeitung und dynamischer Programmausführung. Sie können die Fließbandverarbeitung eines RISC-Prozessors beschreiben und bezüglich systematischer Schwierigkeiten analysieren. Sie kennen Lösungsmöglichkeiten zur Vermeidung von Konflikten und können die Sprungvorhersage in modernen Prozessoren beschreiben und analysieren. Sie können einfache Algorithmen in Assemblersprache formulieren und einen Prozessor maschinennah programmieren. Sie verstehen wie höhere Programmiersprachen auf die Assemblersprache abgebildet werden und können die Unterschiede zwischen Maschinen- und Assemblersprache erläutern. Sie kennen verschiedene Konzepte zur Parallelisierung der Befehlsausführung und superskalare Architekturen analysieren, bewerten und aufbauen. In Übungen wenden die Studierenden die in der Vorlesungen vermittelten Inhalte auf konkrete Bespiele an und führen Berechnungen und Algorithmen manuell durch. Im Labor lernen die Studierenden Rechnerarchitekturen in Assembler zu programmieren, in VHDL zu beschreiben und zu implementieren.

Inhalte

  • 0/1/2/3-Adressmaschine
  • Befehlssatz, -zyklus und -formate
  • Instruktionssatzarchitekturen
  • Adressierungsarten (CISC, RISC)
  • Mikroarchitektur am Beispiel der MIPS
  • Assemblerprogrammierung
  • Fließbandverarbeitung und Ausnahmebehandlung
  • Speicherarchitekturen
  • Superskalare Architekturen
  • VLIW und MIMD
  • Mehr- und Vielkernarchitekturen
  • Digitale Signalprozessoren
  • Grafikprozessoren

Literatur

  • David Money Harris and Sarah L. Harris. Digital Design and Computer Architecture, Morgan Kaufmann; 2. Auflage, 2013
  • John L. Hennessy, David A. Patterson. Computer Architecture: A Quantitative Approach, Morgan Kaufmann; 6. Auflage, 2017.
  • John Paul Shen. Modern Processor Design: Fundamentals of Superscalar Processors. Waveland Pr Inc; 1. Auflage, Reprint 2013.
  • Jr. Charles H. Roth, Lizy K. John. Digital Systems Design Using VHDL. CL ENGINEERING. 3. Auflage, 2016
  • Jürgen Reichardt, Bernd Schwarz. VHDL-Synthese: Entwurf digitaler Schaltungen und Systeme. De Gruyter Oldenbourg; 7. Auflage, 2015.

Vorkenntinsse

Grundlagen der Technischen Informatik oder Grundlagen der Rechnerarchitektur oder Digitale Schaltungen (IST)

Leistungsnachweise und Prüfung

Die Modulprüfung besteht aus einer benoteten Klausur. Die Teilnahme an der Prüfung setzt eine unbenotete Vorleistung voraus.