Klausur
Klausur
Klausur
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
NAME<br />
MATRIKELNUMMER<br />
Prüfungsart: SL oder PL<br />
<strong>Klausur</strong><br />
Theoretische Informatik + Rechnerarchitektur WS04<br />
Summe TI+RA Note<br />
Dozent: DöbenHenisch<br />
31.Januar 2005, 10:00 – 12:00h, Raum BCN 224<br />
Minimale Punktezahl, um TI+RA zu bestehen: TI 12.5 Pkt + RA 12.5 Pk<br />
1. Regularien<br />
i. Teilnehmer an der <strong>Klausur</strong> müssen sich durch Lichtbildausweis identifizieren.<br />
ii. Es dürfen nur leere Blätter, Schreibgeräte und Taschenrechner benutzt werden. Alle in<br />
Gebrauch befindlichen Blätter müssen mit Name und Matr.Nummer gekennzeichnet sein.<br />
Arbeitsblätter ohne Kennzeichnung gelten als Täuschungsversuch. Blätter ohne<br />
Kennzeichen werden bei der Auswertung nicht berücksichtigt.<br />
iii. Die <strong>Klausur</strong>zeit beträgt 120 Min. Man darf seinen Platz erst verlassen, wenn der<br />
Prüfungsleiter die <strong>Klausur</strong>arbeit in Empfang genommen hat.<br />
iv. Es gilt folgende Punktetabelle:<br />
1. >69<br />
2. 5569<br />
3. 4054<br />
4. 2539<br />
5.
5. (Pkt. 2) Was unterscheidet einen nichtdeterministischen endlichen Automaten (NFA) von einem<br />
deterministischen endlichen Automaten (DFA)? Welche Beziehung besteht zwischen (i) einem<br />
NFA und einer regulären Sprache und (ii) zwischen einem DFA und einer regulären Sprache?<br />
6. (Pkt. 2) Wie unterscheidet sich eine Chomsky Normalform und eine schwache Chomsky<br />
Normalform von der allgemeinen Definition einer CFG?<br />
7. (Pkt. 2) Wenn man mit Hilfe einer formalen Grammatik G und einem geeigneten Automaten A<br />
eine Zeichenkette analysiert: Was bedeutet in diesem Kontext ein TopDownParsing bzw. ein<br />
BottomUpParsing?<br />
TIAufg.1 (Max.Pkt: 7):<br />
Gegeben sei folgende Menge von konkreten Ausdrücken (Ketten von terminalen Zeichen, Token):<br />
1. ( AB & B )<br />
2. ( AA & ( B | C ))<br />
3. ( ( ~A & ~B ) | D )<br />
Konstruieren sie eine formale kontextfreie Grammatik, mit der man mindestens diese drei<br />
Ausdrücke ableiten kann. Schreiben Sie die Regeln ihrer Grammatik im EBNFFormat.<br />
Konstruieren Sie auf der Basis ihrer Grammatik einen Syntaxbaum.<br />
TIAufg.2 (Max.Pkt: 7):<br />
Gegeben sei die folgende Produktionsregel einer kontextfreien Grammatik im EBNFFormat.<br />
1. unsigned integer = digit | unsigned integer, digit ;<br />
2. integer = unsigned integer | "+", unsigned integer | "", unsigned integer ;<br />
3. decimal fraction = ".", unsigned integer ;<br />
4. exponent part = "10", integer ;<br />
5. decimal number = unsigned integer | decimal fraction | unsigned integer, decimal fraction;<br />
6. unsigned number = decimal number | exponent part | decimal number, exponent part ;<br />
7. digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;<br />
Konstruieren Sie dazu die vollständige kontextfreie Grammatik. Zeigen Sie durch Konstruktion<br />
einer Ableitung ob der folgende konkrete Ausdruck ableitbar oder nicht ableitbar ist:<br />
? "1"".""2"10""+""5" ?<br />
TIAufg.3 (Max.Pkt: 9):<br />
Es wurde ein kleiner Softwareagent programmiert, den man in einer 2DWelt mittels<br />
Tasteneingaben steuern kann. Vier Befehlsworte sind vorgesehen: "n" für "north", "s" für "south",<br />
"e" für "east" sowie "w" für "west". Ende der Eingabe wird durch "§" angezeigt. Konstruieren sie<br />
einen deterministischen endlichen Automaten A, der diese Eingaben erkennen kann. Im Falle von<br />
"§" soll der Automat in einen Endzustand übergehen. Konstruieren Sie diesen Automaten A (i) in<br />
Form eines Zustandsgraphen und (ii) schreiben sie eine formale Definition hin.<br />
DöbenHenisch – <strong>Klausur</strong> TI+RA WS04 2//8
TIAufg.4 (Max.Pkt:7):<br />
Folgender endlicher Automat A sei gegeben:<br />
A = < P> mit<br />
Q = {S, X, Y, Z, G, H, M, V, W,1}<br />
q 0 = S<br />
E = {1}<br />
T = {a, b, e, g, k, l, n, u, z, §} (Unterstrich markiert terminales Zeichen)<br />
P = { /* Basisfälle */<br />
}<br />
i. <br />
ii. <br />
iii.<br />
iv. <br />
v. <br />
vi. <br />
vii.<br />
viii.<br />
ix. <br />
x. <br />
xi. <br />
xii.<br />
xiii.<br />
}<br />
/* Reduktionsfall */<br />
i. P(q,a) = q'<br />
ii. P(q,ax) = P(P(q,a),x) (mit a in T, x in T*, q,q' in Q)<br />
Konstruieren Sie einen Zustandsgraphen zu diesem Automaten. Zeigen Sie durch eine Ableitung,<br />
ob die folgende Eingabe von dem Automaten A akzeptiert wird oder nicht akzeptiert wird:<br />
? abzug§ ?<br />
RA Fragen 17 (Max: 11 Pkt):<br />
1. (1,5 Pkt) Welche Aspekte im Bereich der ModellCPU mic1 entsprechen dem SchreibLese<br />
Kopf einer Universellen Turingmaschine?<br />
DöbenHenisch – <strong>Klausur</strong> TI+RA WS04 3//8
2. (1,5 Pkt) Welcher Aspekt der ModellCPU mic1 entspricht dem Programm einer Universellen<br />
Turingmaschine?<br />
3. (1 Pkt) Welche Eigenschaft des abstrakten Konzeptes einer universellen Turingmaschine lässt<br />
sich nicht auf einen konkreten Mikroprozessor mit Speicher übertragen?<br />
4. (1 Pkt) Warum kann ein zweiter Datenbus der A Bus im Bereich der ModellCPU mic1 eine<br />
Verbesserung der Leistung erbringen?<br />
5. (2 Pkt) Warum kann die Einführung zusätzlicher Datenlatches in den Bussen A, B und C im<br />
Bereich der ModellCPU mic1 zu einer Leistungssteigerung führen?<br />
6. (2 Pkt) Wenn Sie die historische Entwicklung der Intel CPUFamilie betrachten: welches sind<br />
die wichtigsten Eigenschaften, die sich im Laufe von ca. 30 Jahren verändert haben und in<br />
welchem Sinne können Sie zu einer Leistungssteigerung beitragen?<br />
7. (2 Pkt) Welche speziellen Eigenschaften werden durch die MultimediaRegister MMX und<br />
XMM eingeführt? Warum kann dadurch die Leistung gesteigert werden.<br />
RAAufg.1 (Max. 7 Pkt)<br />
Gegeben ist ein System mit vier Eingängen {a,b,c,d} und einem Ausgang y. Der Zusammenhang<br />
zwischen den Eingängen ad und dem Ausgang y wird durch folgende Tabelle beschrieben:<br />
a b c d y<br />
0 0 0 0 0<br />
0 0 0 1 0<br />
0 0 1 0 0<br />
0 0 1 1 0<br />
0 1 0 0 1<br />
0 1 0 1 1<br />
0 1 1 0 1<br />
0 1 1 1 1<br />
1 0 0 0 0<br />
1 0 0 1 0<br />
1 0 1 0 0<br />
1 0 1 1 0<br />
1 1 0 0 1<br />
1 1 0 1 1<br />
1 1 1 0 0<br />
1 1 1 1 0<br />
Zeigen Sie durch Umformung dieser Tabelle mittels Nomalformen oder Karnaugh Maps, ob der<br />
Ausdruck (~a & b) | ( b & ~c ) eine korrekte Wiedergabe für die Funktion y =(a,b,c,d) ist bzw., falls<br />
DöbenHenisch – <strong>Klausur</strong> TI+RA WS04 4//8
dies nicht der Fall ist, begründen Sie durch ihre Umformung, warum dies nicht der Fall ist (als Hilfe<br />
können die logischen Umformungsgleichungen aus dem Anhang benutzt werden).<br />
RAAufg.2 (Max. 12 Pkt)<br />
Geben sind folgende zwei Funktionen:<br />
y = (~a & b & ~c) | (a & ~b & ~c) | (~a & ~b & c) | (a & b & c)<br />
z = ( a & c) | (b & c)<br />
Die Variablen sollen die folgende Bedeutung haben:<br />
Variable Bedeutung<br />
a,b Dateneingänge {0,1}<br />
c CarryIn {0,1}<br />
y Summe aus binärer Addition {0,1}<br />
z CarryOut aus binärer Addition {0,1}<br />
Konstruieren Sie eine binäre Schaltung (= Zeichnung), die diese Schaltung umsetzt. Wählen Sie<br />
für das Layout ihrer Schaltung das PLDFormat ( Eingänge > UndGatter > OderGatter).<br />
Erweitern sie die Schaltung so, dass damit zwei 2BitZahlen addiert werden können (z.B. "01"<br />
+ "11"). Erläutern Sie, welche Rolle möglicherweise der Systemtakt für eine korrekte Addition<br />
spielen kann.<br />
RAAufg.3 (Max. 12 Pkt)<br />
In der Vorlesung sind unterschiedliche Optimierungsstrategien am Beispiel der ModellCPU mic1<br />
behandelt worden. Im Übergang von mic2 zu mic3 wurde Parallelverareitung mit Hilfe von<br />
unabhängigen Datenbussen und Latches eingeführt (siehe Schaubild im Anhang). Im folgenden<br />
werden ihnen drei Befehlsabschnitte aus dem Mikroprogramm von mic2 gegeben und sie sollen<br />
zeigen, wie man dieses Microprogramm unter Voraussetzung der Struktur von mic3 (siehe<br />
Anhang) so umschreiben kann, dass man durch Parallelisierung eine zeitliche Optimierung<br />
erreicht. Konstruieren Sie eine Tabelle, die diese neuen Abarbeitungsmöglichkeiten zeigt.<br />
DöbenHenisch – <strong>Klausur</strong> TI+RA WS04 5//8
Vorgabe: Ausschnitt Mikroprogramm mic2<br />
Mikrobefehl<br />
mic2<br />
if_icmpeq1<br />
if_icmpeq2<br />
if_icmpeq3<br />
if_icmpeq4<br />
if_icmpeq5<br />
if_icmpeq6<br />
Interne Abarbeitung Kommentar<br />
MAR = SP = SP – 1; rd<br />
MAR = SP = SP – 1<br />
H = MDR; rd<br />
OPC = TOS<br />
TOS = MDR<br />
Z = H – OPC; if (Z) goto T;<br />
else goto F<br />
Lies nächstes oberes Stapelwort ein<br />
Setze MAR für das Einlesen der neuen<br />
Stapeloberseite<br />
Kopiere zweite Stapelwort nach H<br />
Speichere TOS vorübrgehend in OPC<br />
Lege neue Stapeloberseite in TOS ab<br />
T H = PC – 1; goto goto2 Kopiere PC nach H<br />
F<br />
F2<br />
H = MBR2<br />
goto (MBR1)<br />
Falls die beiden obersten wort gleich sind,<br />
goto T, andernfalls goto F<br />
Markiere zu verwerfende Bytes in MBR2<br />
Nächste Instruktion<br />
Aufgabe: Konstruieren Sie eine Abarbeitungsfolge für mic3 nach folgendem Schema:<br />
Takt if_icmpeq<br />
1<br />
if_icmpeq<br />
2<br />
1 B = SP ...<br />
2 C = SP1 ...<br />
3 MAR = SP ...<br />
4 rd ...<br />
5 ... ...<br />
...<br />
k<br />
if_icmpeq<br />
3<br />
if_icmpeq<br />
4<br />
ANHANG<br />
if_icmpeq<br />
5<br />
Def.: g ist eine formale Grammatik [FG(g)] gdw g = < P> mit<br />
1. V := Menge der Variablen (oder nichtterminalen Elemente)<br />
2. T := Menge der terminalen Elemente<br />
3. S := Das Startsymbol; es gilt {S} C V<br />
if_icmpeq<br />
6<br />
T F F2<br />
4. P := Die Menge der Ersetzungs bzw. Produktionsregeln. Es gilt allgemein P C (V ∪ T) + x<br />
(V ∪ T)*. Dies bedeutet, auf der linken Seite einer Erzeugungsregel muss mindestens ein<br />
Zeichen stehen, die rechte Seite kann leer sein.<br />
DöbenHenisch – <strong>Klausur</strong> TI+RA WS04 6//8
Def.: g ist eine formale Grammatik vom Typ 2 [FG(g,2)](Kontextfreie Grammatik, 'Contextfree<br />
Grammar' [CFG]) gdw<br />
FG(g) & (A:u,w)( (u,w) ∈ P => u ∈ V & w ∈ (V ∪ T)* )<br />
Def.: y ist mit der formalen Grammatik g direkt ableitbar aus x<br />
[geschrieben: DABL(y,x,g) oder x => g y oder x | g y ] gdw<br />
(E:a,b,k,k')( (a,b) ∈ P & x = kak' & y = kbk' & a ∈ (V ∪ T )<br />
g g g + & k,k',b ∈ (V ∪ T )<br />
g g * )<br />
Def.: y ist in g ableitbar aus x [ geschrieben: ABL(y,x,g) oder x * => y oder x |g<br />
*<br />
y ] gdw<br />
g<br />
(E:f)( SEQ(f) & (f:Nat > (V ∪ T )* & A:i,j)( i,j ∈ dm(f) & j =i+1 => DABL(f<br />
g g j ,f i ,g) & x = f 0 & y =f len(f)<br />
1 ))<br />
'SEQ(f)' heisst, dass f eine Folge ist und x ist das erste Element der Folge und y ist das letzte<br />
Element der Folge. Da der Index einer Folge mit 0 beginnt, hat das letzte Element einer Folge f<br />
den Index len(f)1 = |dom(f)|1.<br />
Logische Umformungsgleichungen<br />
GESETZ ANDForm ORFORM<br />
Identitätsgesetz 1A = A 0 + A = A<br />
Nullgesetz 0A = 0 1 + A = 1<br />
Idempotenzgesetz AA = A A + A = A<br />
Inversionsgesetz A & ~A = 0 A + ~A = 1<br />
Kommutativgesetz AB = BA A + B = B + A<br />
Assoziativgesetz (AB)C = A(BC) (A + B) + C = A +<br />
(B + C)<br />
Distributivgesetz A + BC = (A + B)(A<br />
+ C)<br />
A(B + C) = AB +<br />
AC<br />
Absorptionsgesetz A(A + B) = A A + AB = A<br />
De Morgansche Gleichungen ~(AB) = ~A + ~B ~A + ~B = ~(AB)<br />
De Morgansche Gleichungen ~A & ~B = ~(A +<br />
B)<br />
~(A + B) = ~A &<br />
~B<br />
DöbenHenisch – <strong>Klausur</strong> TI+RA WS04 7//8
HardwareArchitektur von Mic3<br />
(In jedem Datenbus A,B,C ist jeweils noch ein Latch implementiert; nicht im Bild)<br />
DöbenHenisch – <strong>Klausur</strong> TI+RA WS04 8//8