Prüfung : Vordiplom Technische Informatik (Kurse 1707 + 1708)

Prüfer:Prof. Dr. Keller
Datum:22.08.2002
Note:1,0


Wie kann man boolsche Funktionen ausdrücken?
Durch boolsche Algebra, Wahrheitstafeln, KV-Diagramme, Schaltnetzzeichnungen

Wieviele boolsche Funktionen gibt es?
Es gibt 2^2^n boolsche Funktionen von n Variablen

Warum?
Weil man aus n Variablen 2^n Eingangszustände bilden kann, und aus 2^n Eingangszuständen 2^2^n Ausgangszustände

Welche besondere Formen boolscher Funktionen kennt man?
Zweistufige Normalformen. Speziell DNF, KNF, KDNF

Woraus besteht eine KDNF?
Aus Mintermen

Wieviele verschiedene Minterme von n Variablen kann es geben?
2^n

Welche Verfahren zur Berechnung kürzester DNF kennt man?
Quine/McClusky

Was erhält man?
Primterme. Kernimplikanten und Nicht-Kernimplikanten

Jetzt will man ja nicht nur Berechnungen durchführen, sondern auch abspeichern.
Was nimmt man da?
Ein Flipflop

Welches ist da das einfachste?
SR-Flipflop.
Mußte gezeichnet und die verschiedenen Belegungen angegeben werden

Welche Automaten kennt man?
Mealy, Moore und vorauslaufender Moore. Moore-Automat musste gezeichnet werden

Wie funktioniert dieser Automat? Wie kann die Funktionsweise noch dargestellt werden?
Als Zustandsgraph

Jetzt haben wir unseren Baukasten zusammen und wollen einen Mikroprozessor bauen. Woraus besteht er denn?
Steuerwerk, Operationswerk, Adresswerk, Registersatz, Systembusschnittstelle

Warum ein Adresswerk? Die Adressberechnung kann doch vom Operationswerk durchgeführt werden?!
So können Operanden und Adressen gleichzeitig berechnet werden => Zeitersparnis

Wie läuft denn so eine Befehlsabarbeitung ab?
Befehl holen – dekodieren - ausführen – Speicherzugriff – Rückschreiben

Das heißt man alle 5 Takte einen Befehl beenden. Wie kann man das verbessern?
Durch Pipelining (kurz erklärt)
Anschließend noch Pipeline-Hemmnisse aufzählen (Kontrollflussabhängigkeit erläutern)

Also haben wir pro Takt einen Befehl. Kann man das noch weiter verbessern?
Durch Superskalarität.

Wieviele Befehle kann man denn da durchschnittlich pro Takt bearbeiten?
Bei 3 Pipelines nur ca. 1,3

Man geht davon aus, dass jede Pipeline-Stufe in einem Takt bearbeitet werden kann, also auch der Speicherzugriff. Wie sieht das in Wirklichkeit aus?
Zugriff auf den Arbeitsspeicher dauert länger.

Wie lange muß den der Prozessor ungefähr warten?
200 Takte (das war geraten und wohl leider etwas zu hoch gegriffen, wie Prof. Keller meinte)

Was kann man da machen?
Cache einbauen (Cache kurz erklärt, inklusive Lokalitätseigenschaft von Programmen)


Prof. Keller ist wirklich wärmstens zu empfehlen. Vor der Prüfung haben wir uns zuerst über mein Studium unterhalten (wie viele Prüfungen ich denn schon gemacht hätte usw.), so dass ich gar nicht mehr so nervös war, als es „ernst“ wurde.
Auch die Benotung war mehr als fair. Ich selbst hätte mir keine 1,0 gegeben. Schließlich kam ich nur mit Hilfestellung darauf, dass es 2^n verschiedene Minterme gibt, hatte mich beim Thema Befehlabarbeitung etwas verheddert und zur Funktionsweise des Moore-Automaten konnte ich eigentlich gar nichts richtiges sagen.
Viel Glück!