Hauptinhalt

Technische Informatik (WS 2023/2024)

Micro-Controller
Foto: iStock

Dozent: Prof. Dr. Thorsten Thormählen
Modulbezeichnung: CS 140
Sprache der Vorlesung: Deutsch

Einleitung und Motivation

Computersysteme haben in unserem heutigen beruflichen und privaten Leben eine ständige Präsenz. Desktop-Rechner, Laptop, Tablet, Mobiltelefon, Waschmaschine, Fernseher, elektrische Zahnbürste, Staubsauger, etc. – es gibt in jedem Haushalt zahlreiche Geräte, die Computertechnik enthalten. Dabei lassen die verschiedenen Anwendungen und Benutzerschnittstellen schnell vergessen, dass alle diese digitalen Computersysteme letztlich auf dem einfachen Prinzip beruhen, dass binäre Zahlen (das sind Zahlen, die mit Nullen und Einsen dargestellt werden) mittels boolescher Algebra miteinander verknüpft werden.

In einem digitalen Computersystem gibt es dazu verschiedene elektrische Schaltkreise, die das Verarbeiten und Speichern der binären Zahlen übernehmen. Diese Schaltkreise bestehen hauptsächlich aus Transistoren, die vereinfacht als eine miniaturisierte Version eines elektrisch gesteuerten Ein-/Aus-Schalters aufgefasst werden können. Komplexe mikroelektronische Schaltkreise können aus mehreren 100 Millionen solcher sehr kleinen Transistoren bestehen.

Dass sie für verschieden Anwendungen einsetzbar sind, verdanken Computersysteme ihrer Programmierbarkeit, d.h. die zugrunde liegende mikroelektronische Schaltung verhält sich nach außen anders, je nachdem, welches benutzerdefinierte Programm ausgeführt wird. Heutzutage werden Computersysteme in der Regel mit Hochsprachen programmiert, die es einem menschlichen Programmierer möglichst einfach machen, die gewünschte Funktionalität zu realisieren. Letztendlich muss diese höhere Programmiersprache jedoch in eine geräteabhängige Maschinensprache übersetzt werden, die aus spezifischen Befehlen und Operanden in binärer Darstellung besteht. Ein binärer Maschinensprachebefehl steuert allerdings teilweise nicht direkt die Recheneinheiten, sondern ruft intern wiederum einen binären Mikrocode auf, der die Schalter der jeweiligen Recheneinheit steuert.

Qualifikationsziele

Das Modul Technische Informatik vermittelt Grundlagenwissen über Rechnerstrukturen und die Funktionsweise von mikroelektronischen Schaltungen. Dies umfasst den Umgang mit den Gesetzen der booleschen Algebra, den Entwurf und die Vereinfachung boolescher Schaltungen, Kenntnisse im Entwurf sequentieller Schaltungen sowie Kenntnisse über Arithmetik-Schaltungen und CMOS-Transistoren. Zudem wird das Verständnis vom Aufbau und Funktion einer zentralen Recheneinheit (CPU), elementare Kompetenzen in Maschinenspracheprogrammierung sowie das Verständnis verschiedener Rechnerarchitekturkonzepte vermittelt. Des Weiteren soll die allgemeine Fähigkeit zum wissenschaftlichen Arbeiten und Lösen von Problemen verbessert werden.

Organisation

Die Veranstaltung besteht aus einer Vorlesung (4 SWS) und einer Übung (2 SWS).
Vorlesung: Di. 12:15 - 13:45 Uhr,  (H | 05) HS +5/0030 (HS A) und Do. 08:30 - 10:00 Uhr, (B | 01) HS +1/0020
Übung: Di. 14:15 - 15:45 Uhr,  (H | 05) HS +5/0030 (HS A)

Gliederung der Vorlesung

  1. Einleitung und Historisches
  2. Darstellung von Zahlen und Zeichen
  3. Boolesche Algebra
  4. Normalformen
  5. Umwandlung und Minimierung
  6. Zeitverhalten und Hazards
  7. Logikschaltungen
  8. Speicher
  9. CPU
  10. Maschinensprache und Assembler
  11. Prozessorarchitekturen

Vorlesungsfolien

Die Vorlesungsfolien werden als HTML5-Webseiten zur Verfügung gestellt. Es wird empfohlen, einen aktuellen Browser zu verwenden (wie z.B. Google Chrome, Mozilla Firefox). In Google Chrome kann die Druckfunktion des Browsers verwendet werden, um eine PDF-Datei der Folien zu erzeugen.

Es gibt zwei Versionen der Folien: intern und extern. Die internen Folien sind umfangreicher und nur für die Studierenden der Philipps-Universität Marburg zugänglich. Der Login wird in der Vorlesung bekannt gegeben.

Teil Kapitel Link Link
1. Einleitung und Historisches 1.1 Einleitung und Organisation extern intern
1.2 Historisches extern intern
2. Darstellung von Zahlen und Zeichen 2.1 Zahlendarstellung extern intern
2.2 Rechnerinterne Zahlenformate extern intern
2.3 Zeichenkodierung extern intern
3. Boolesche Algebra 3.1 Boolesche Algebra extern intern
3.2 Rechnen mit booleschen Ausdrücken extern intern
3.3 Logikgatter extern intern
4. Normalformen 4.1 Normalformen extern intern
5. Umwandlung und Minimierung 5.1 Umwandlung in NAND- und NOR-Schaltungen extern intern
5.2 Minimierung mit KV-Diagrammen extern intern
5.3 Minimierung mit Quine-McCluskey extern intern
6. Zeitverhalten und Hazards 6.1 Zeitverhalten und Hazards extern intern
7. Logikschaltungen 7.1 Reguläre Logikschaltungen extern intern
7.2 Arithmetik Schaltungen extern intern
7.3 Sequentielle Schaltungen extern intern
7.4 Automaten extern intern
8. Speicher 8.1 Speicher extern intern
9. CPU 9.1 Mikrocode-basierter CPU-Simulator extern intern
10. Maschinensprache und Assembler 10.1 x86 Maschinensprache und Assembler extern intern
10.2 Unterprogramme und Adressierung extern intern
10.3 FPU, MMX, SSE, x86-64 extern intern
11. Prozessorarchitekturen 11.1 Prozessorarchitekturen intern

Übungen

Die Aus- und Abgabe der wöchentlichen Übungseinheiten erfolgt über die Lernplattform ILIAS

Interaktive Demonstrationen

Die Vorlesungsfolien enthalten zum Teil interaktive Demonstrationen. Diese sind hier noch einmal separat aufgelistet:

1.2 Japanischer Abakus (Soroban) demo
1.2 Chinesischer Abakus (Suan Pan) demo
1.2 Napiersche Rechenstäbchen (Napier's Bones) demo
2.1 B-adische Zahlendarstellung (Positional Notation) demo
4.1 Normalformen (Normal Forms) demo
5.2 KV-Diagramme (Karnaugh Maps) demo
5.3 Quine-McCluskey-Verfahren (Quine–McCluskey algorithm) demo
6.1 Amilosim (A Minimalistic Logic Simulator) demo
9.1 CPU Simulator demo

OnlineClicker.org

Zur Vertiefung des Stoffs werden in der Vorlesung teilweise kurze anonyme Abstimmungen durchgeführt, an denen die Studenten durch Aufrufen der Webseite OnlineClicker.org teilnehmen können.

OnlineQuestions.org

Fragen können natürlich gerne jederzeit gestellt werden. Zusätzlich wird das Werkzeug OnlineQuestions.org eingesetzt, das erlaubt, Fragen oder Kommentare anonym abzusenden oder Beiträge anderer Teilnehmer durch die eigene Zustimmung zu unterstützen.