Grundlagen der Rechnerarchitektur

Allgemeines

Das Internet ist heute in aller Munde. Wenn man heute über Computertechnik spricht, fallen den meisten schillernde und bunte Internet-Start-up-Unternehmen ein, die Software für Kommunikation, soziale Interaktion und Unterhaltung anbieten. Dabei ist uns oftmals nicht bewusst, was diese digitale Revolution im Grunde alles ermöglicht: Die Integration einer millionenfachen Anzahl von Bauteilen auf einem einzigen, nur wenige Quadratzentimeter großen Siliziumchip sowie die geschickte Anordnung dieser Transistoren zu vollständigen Rechenmaschinen. Grundlage aller heutigen elektronischen Rechner, vom einfachen digitalen Mobiltelefon über das Smartphone oder den Desktop-PC bis hin zu Supercomputern für die Berechnung der Wettervorhersage, ist die Automatisierung mühsamer und langweiliger Rechenschritte. Ausgehend vom Rechnen führt diese Vorlesung in die Rechnerarchitektur ein. Der Schwerpunkt liegt dabei auf den technischen Fundamenten.Die Themen sind hierbei unter Anderem:

  1. Historische Entwicklung von Rechenmaschinen
  2. Arithmetik: Zahlen und Rechnen
  3. Mathematische Grundlagen digitaler Schaltungen
  4. Digitale Schaltungen
  5. Elemente der Rechnerarchitektur
  6. Rechnerarchitektur
  7. Maschinennahe Programmierung

Lernziele

Die Studierenden kennen die formalen Grundlagen digitaler Schaltungen. Sie können die Schaltalgebra aus der boolschen Algebra ableiten. Mit Hilfe der Schaltalgebra können sie beliebige Schaltfunktionen entwerfen und minimieren. Sie können grundlegende kombinatorische und sequentielle Schaltungen benennen und deren technische Grundlagen erläutern. Sie sind in der Lage aus den grundlegenden kombinatorische und sequentielle Schaltungen Rechenwerk und Steuerwerk einfacher Maschinen zu beschreiben und entwerfen. Sie kennen die unterschiedlichen Arten der Mikroprogrammierung und können einfache Befehlsätze entwerfen. Sie kennen die unterschiedlichen Verfahren zur Operandenadressierung und 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. Sie können die Interrupt-Behandlung eines Prozessors beschreiben und

die Bussysteme moderner Mikroprozessoren analysieren. Die Studierenden erläutern den Begriff Speicherhierarchie und können die Funktion von Caches und Speicherverwaltungseinheiten (MMU) 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 Pipelining und dynamischer Programmausführung. Sie können das Pipelining eines RISC-Prozessors beschreiben und bezüglich systematischer Schwierigkeiten analysieren. Sie kennen Lösungsmöglichkeiten zur Vermeidung von Pipelinekonflikten 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. Nach erfolgreichem Besuch der Veranstaltung sind die Studierenden in der Lage, die Wechselwirkungen zwischen einem physischen Rechensystem und der darauf ausgeführten Software beurteilen zu können. Insbesondere sollen sie die Konsequenzen der Ausführung von Software in den hardwarenahen Schichten von der Assemblersprache bis zu Gattern erkennen können. Sie sollen so in die Lage versetzt werden, Auswirkungen der Hardware auf die Leistung der Software abzuschätzen und geeignete Lösungen zur Verbesserung von Leistungsengpässen vorzuschlagen.

Leistungsnachweise und Notenbildung

Die Vergabe der Leistungspunkte erfolgt aufgrund des Bestehens der schriftlichen Modulprüfung und der erfolgreichen Teilnahme am Praktikum „Grundlagen der Rechnerarchitektur“. Die Modulprüfung zählt als Orientierungsprüfung Technische Informatik I nach § 5 der fachspezifischen Prüfungsordnung Informatik, Medieninformatik und Softwareengineering. Die Modulnote ergibt sich aus der Modulprüfung. Die genauen Modalitäten werden zu Beginn der Veranstaltung bekannt gegeben.

Prüfung

Die Klausur behandelt Inhalte von Vorlesung, Übungen, Tutorien und Labor „Grundlagen der Rechnerarchitektur“.
Wichtig: Eine inhaltlich identische Klausur wird zu den gleichen Terminen für die ehemalige Veranstaltung „Technische Informatik 2“ angeboten

Literatur

  1. Rechnerarchitektur : von der digitalen Logik zum Parallelrechner (Andrew S. Tanenbaum; Todd Austin)
  2. Digital design and computer architecture (David Money Harris, Sarah L. Harris)
  3. Entwurf von digitalen Schaltungen und Systemen mit HDLs und FPGAs : Einführung mit VHDL und SystemC (Frank Kesel; Ruben Bartholomä)
  4. Halbleiter-Schaltungstechnik (Ulrich Tietze; Christoph Schenk; Eberhard Gamm)
  5. Rechnerorganisation und Rechnerentwurf : die Hardware/Software-Schnittstelle (David A. Patterson; John L. Hennessy. Wiss. Bearb. der dt. Ausg.: Walter Hower)
  6. Systemintegration : vom Transistor zur großintegrierten Schaltung (Kurt Hoffmann)
  7. Technische Informatik : eine einführende Darstellung (Bernd Becker; Paul Molitor)
  8. Computerarchitektur : Strukturen, Konzepte, Grundlagen (Andrew S. Tanenbaum)
  9. Mikroprozessortechnik und Rechnerstrukturen (Thomas Flik)
  10. Principles of digital design (Daniel D. Gajski)
  11. Rechneraufbau und Rechnerstrukturen (Walter Oberschelp und Gottfried Vossen)
  12. Boolean reasoning : the logic of Boolean equations (Frank Markham Brown)
  13. The principles of computer hardware

Die Bücher finden sich ebenfalls im entsprechenden Semesterapparat.