Prüfer: | Prof. Dr. Keller |
Dauer: | ca. 20-25 min |
Wie kann man boolsche Funktionen ausdrücken?
(Durch boolsche Algebra, Schaltnetz-Zeichnungen und KV-Diagramme. Prof.
Keller fügte später noch die Funktionstabelle hinzu)
Kann man jede boolsche Funktion als Schaltnetz zeichnen?
(Ja)
Kann man jedes Schaltnetz durch eine boolsche Funktion ausdrücken?
(Ja, und das war nicht 100% richtig: Prof. Keller zeichnete folgendes Schaltnetz hin:
Ich habe den dazugehörigen Term ((X1X2)X0) v ((X1X2)X3)) richtig aufgeschrieben, aber Prof. Keller meinte, dass nun ein Gatter mehr vorhanden sei. Das zeigt, dass man nicht jedes Schaltnetz durch eine boolsche Funktion ausdrücken kann!
Wieviele boolsche Funktionen gibt es?
2^2^n
Warum?
m=2^n Variablenbelegungen, die 2^m boolsche Funktionen erzeugen können.
Was ist der Nachteil von KV-Diagrammen?
Sie werden für viele Variablen schnell unübersichtlich.
Welche Schaltwerke gibt es?
Mealy, Moore, vorrauslaufender Moore.
Was ist die Besonderheit?
Ein Speicherelement.
Wie kann dieses Speicherelement aufgebaut werden?
Aus Flipflops.
Welches ist das einfachste?
SR-Flopflop (musste gezeichnet werden)
Was passiert für verschiedene Belegungen von S,R?
0,0 = Keine Änderung, 0,1 = RESET (Zustand 0 tritt ein), 1,0 = SET (Zustand 1 tritt ein), S=R=1 undefiniert
(meinte ich)
Wieso undefiniert?
Von den Logikschaltungen her müßte doch der Zustand 0 eintreten! Konnte ich nicht so genau beantworten. Es hat etwas mit dem Lauf der Signale zu tun, sobald man S=R=1 entfernt. Ich habe noch erwähnt, dass dieses Problem auf jeden Fall mit dem JK-Flipflop nicht mehr auftritt.
Jetzt haben wir alles "Kleine" zusammen und sehen uns die
Sache mal "von oben" an. Woraus besteht ein Mikroprozessor?
Steuerwerk, Operationswerk, Adreßwerk, Registersatz, Systembusschnittstelle (jeweils
kurz erwähnt, was die einzelne Komponente tut)
Der Prozessor greift ja über den Systembus auf den RAM zu. Wenn die CPU 2Ghz schnell ist und der Arbeitsspeicher eine Zugriffszeit von 100ns hat, weviele Taktzyklen braucht dann ein Speicherzugriff?
Ein Zyklus = 0,5 * 10^-9 Sek. (Wg. 2 Ghz!). 100ns = 200 * (0,5 * 10^-9), also wartet der Prozessor 200
Taktzyklen.
Da langweilt sich die CPU ja. Wie kann man Abhilfe schaffen?
Durch einen Cache, das ist ein schneller, als SRAM realisierter Zwischenspeicher, der zwischen CPU und RAM geschaltet wird.
Aber der Cache kann doch nicht hellsehen? Wie kommen denn Treffer zustande?
Durch die Lokalitätseigenschaft von Programmen (erklärt), und durch das Lesen
eines ganzen Datenblocks (Cache Line)
C oder Pascal?
(Pascal).
Sehen sie sich das folgende Programm an:
program xyz; var sum, i: integer; (32 bit) var field: array [1..1000] of Integer; Begin for i := 1 to 1000 do sum := sum + field[i]; End.
Die Cachegröße ist 32 Byte, wie hoch ist die Trefferrate?
32 bit = 4 Byte, d.h. 8 Integer passen in den Cache. Es wird
hintereinander gelesen, d.h. das 1. Datum ist ein MISS, die restlichen 7
sind Treffer. 1000 ist durch 8 teilbar, also wiederholt sich das für jeden
8er Block von Daten. D.h. die Cache-Trefferrare ist 7/8.
RAM Zugriffszeit ist 200 Takte, Cache Zugriffszeit ist 2 Takte. Wie ist die
mittlere Zugriffszeit?
Hier: 1 * 200 + 7 * 2 = 214 Takte für 8 Daten. 214
/ 8 Daten = 26,75 Takte mittlere Zugriffszeit (musste nicht mehr
ausgerechnet werden)
Eindruck: Prof. Keller begrüßte mich sehr freundlich und diskutierte erst einige Minuten mit mir über den Bachelor Studiengang und meinen Studienfortschritt. Immer, wenn ich etwas hektisch wurde (z.B. bei der SR-Flipflop S=R=1 Problematik) hat er das Tempo aus der Prüfung genommen und erst einmal viel selbst erzählt. Als Prüfer auf jeden Fall zu empfehlen! Die Benotung ist sehr wohlwollend und läßt auch kleine Schwächen durchgehen.