Exam

Page 1

Institut für Informatik
Prof. Dr. Armin Biere
Dr. Mathias Fleury
Freiburg, 26. Februar 2025

Klausur — Technische Informatik

Name: Matrikel-Nr.:
  • Umfang: 16 Seiten
  • Bearbeitungszeit: 90 Minuten
  • Erlaubte Hilfsmittel: Keine

Bitte prüfen Sie, ob Sie alle Aufgabenblätter erhalten haben und tragen Sie auf allen verwendeten Blättern (auch den zusätzlich ausgeteilten) Ihren Namen und Ihre Matrikelnummer ein. Blätter ohne diese Information werden nicht berücksichtigt.

Aufgabe 1 2 3 4 5 6 Summe
möglich 16 16 16 16 16 16 96
erreicht

Das Erreichen von 48 Punkten ist hinreichend zum Bestehen der Klausur.

PRÜFUNGSUNFÄHIGKEIT

Durch den Antritt dieser Prüfung erklären Sie sich für prüfungsfähig. Sollten Sie sich während der Prüfung nicht prüfungsfähig fühlen, können Sie aus gesundheitlichen Gründen auch während der Prüfung von dieser zurücktreten. Bitte informieren Sie in diesem Fall das Aufsichtspersonal, verlassen die Prüfung und gehen unverzüglich zum Arzt. Gemäß den Prüfungsordnungen sind Sie verpflichtet, die für den Rücktritt oder das Versäumnis geltend gemachten Gründe unverzüglich (innerhalb von 3 Tagen) dem Prüfungsamt durch ein Attest mit der Angabe der Symptome schriftlich anzuzeigen und glaubhaft zu machen. Weitere Informationen: https://www.tf.uni-freiburg.de/de/studium-lehre/a-bis-z-studium/ruecktritt-von-pruefungen

TÄUSCHUNG/STÖRUNG

Sofern Sie versuchen, während der Prüfung das Ergebnis ihrer Prüfungsleistung durch Täuschung (Abschreiben von Kommilitonen …) oder Benutzung nicht zugelassener Hilfsmittel (Skript, Mobiltelefon, Spickzettel …) zu beeinflussen, wird die betreffende Prüfungsleistung mit „nicht ausreichend" (5,0) und dem Vermerk Täuschung bewertet. Als Versuch gilt bei schriftlichen Prüfungen und Studienleistungen bereits der Besitz nicht zugelassener Hilfsmittel während und nach der Ausgabe der Prüfungsaufgaben. Sollten Sie den ordnungsgemäßen Ablauf der Prüfung stören, werden Sie vom Prüfer/Aufsichtsführenden von der Fortsetzung der Prüfung ausgeschlossen. Die Prüfung wird mit „nicht ausreichend" (5,0) mit dem Vermerk Störung bewertet.
Weitere Informationen: https://www.tf.uni-freiburg.de/de/studium-lehre/a-bis-z-studium/taeuschung-plagiat-stoerung-bei-einer-pruefung

Page 2

  • Sie können gerne auf Deutsch, Englisch, oder Französisch antworten, und auch die Sprache wechseln, aber nicht innerhalb eines Satzes.
  • Jede der 6 Aufgaben hat die gleiche Anzahl von 16 Punkten. Die nötige Arbeitszeit sollte also entsprechend aufgeteilt werden, d.h. 15 = 90/6 Minuten pro Aufgabe.
  • Falls Sie eine der Extraseiten verwenden wollen, stellen Sie bitte sicher, dass sie angeben
    • auf der Extraseite, welche Übung und welche Frage Sie beantworten und
    • auf der ursprünglichen Übungsseite die Seitennummer der Extraseite.
      Wir spielen keine Schnitzeljagd beim Korrigieren!
  • Diese Seite und die Seiten 3 und 16 sind Extraseiten.
  • Falls Sie noch mehr brauchen, melden Sie sich bei der Aufsichtsperson.

Page 3

Page 4

Aufgabe 1 — KV-Diagramm & Primimplikanten (7 + 2 + 5 + 2 Punkte)

Die Funktion sei durch ihre ON-Menge gegeben:

Sie können die Kurzform 011- für nutzen.

a) Primimplikantenmenge

Bestimmen Sie anhand eines KV-Diagrammes die Primimplikantenmenge von . Füllen Sie dazu zunächst das folgende Diagramm aus:

\ 00 01 11 10
00
01
11
10

Geben Sie nun das reduzierte Polynom aller Primimplikanten:

Hinweis: Es wird nach einem KV-Diagramm verlangt! Wenn Sie statt dessen Quine-McCluskey verwenden gibt es keine Punkte!

b) Fehlende Primimplikanten

Ein Mitstudent hat mit dem quienny Programm drei Primimplikanten gefunden aber zwei vergessen abzuschreiben:

--11

Welche zwei Primimplikanten fehlen?

Page 5

c) Primimplikantentafel

Füllen Sie die Primimplikantentafel aus.

Primimplikant (Monom)
--11

Was sind die wesentlichen Primimplikanten aus dieser Tafel? (Hinweis: 2 Primimplikanten)

Füllen Sie die Primimplikantentafel nach Entfernen der wesentlichen Primimplikanten.

Primimplikant (Monom)

Falls die Tafel leer ist, schreiben Sie einfach "Leer" und begründen Sie kurz. Sonst, was sind die wesentlichen Primimplikanten aus dieser Tafel?

Was ist also das minimale Polynom?

Page 6

Aufgabe 2 — ReTI Machine Code Quiz (16 Punkte)

Vervollständigen Sie anhand der Befehlstabelle auf der nächsten Seite folgendes Programm (eine Zahl für jedes _):

$ ./retiquiz 202502260900
ReTI Machine Code Quiz Version 0.0.3-rc.3
retiquiz 202502260900 16
Enter hexadecimal digits as an answer or
space ' ' to skip a question or 'q' to quit.
For irrelevant '*' in the machine code use '0'.
Asking 16 questions.
INSTRUCTION                    ; PC        CODE
STOREIN1 10                    ; 00000000  900000_a
JUMP>= 1                       ; 00000001  _8000001
JUMP 0                         ; 00000002  f_000000
JUMP 0                         ; 00000003  f_000000
MOVE IN2 ACC                   ; 00000004  b_000000
ADD ACC -9                     ; 00000005  _ffffff7
MOVE PC PC                     ; 00000006  _0000000
LOAD IN1 13                    ; 00000007  410000_d
LOADI IN2 9                    ; 00000008  7200000_
SUBI PC -9                     ; 00000009  08fffff_
JUMP< 20                       ; 0000000a  e00000_4
SUBI IN2 -27                   ; 0000000b  _affffe5
STOREIN2 4                     ; 0000000c  a000000_
OPLUSI PC 0xfffffb             ; 0000000d  1_fffffb
NOP                            ; 0000000e  _0000000
STOREIN2 25                    ; 0000000f  _0000019

Page 7

Load Befehle

Befehl Wirkung
0100 LOAD D i
0101 LOADIN1 D i
0110 LOADIN2 D i
0111 LOADI D i

Für LOADIN1, LOADIN2: , falls .

Store Befehle — MOVE: ,

Befehl Wirkung
1000 STORE i
1001 STOREIN1 i ,
1010 STOREIN2 i
1011 MOVE S D , , falls

Compute Befehle

Befehl Wirkung
000010 SUBI D i
000011 ADDI D i
000100 OPLUSI D i , , falls
000101 ORI D i
000110 ANDI D i
001010 SUB D i
001011 ADD D i
001100 OPLUS D i , , falls
001101 OR D i
001110 AND D i

Jump Befehle

Befehl Wirkung
11000 NOP
11001 JUMP> i
11010 JUMP= i (wie oben mit )
11011 JUMP>= i (wie oben mit )
11100 JUMP< i (wie oben mit )
11101 JUMP!= i (wie oben mit )
11110 JUMP<= i (wie oben mit )
11111 JUMP i

Kodierung der Register: PC 00 / IN1 01 / IN2 10 / ACC 11

Tabelle 1: Befehlstabelle der ReTI

Page 8

Aufgabe 3 — Primimplikanten & PLA ((4 + 3) + 3 + 3 + 3 Punkte)

a) Widerspruchsbeweis

Betrachten Sie folgende Behauptung:

Die Anzahl an Primimplikanten ändert sich nicht, wenn ein Eintrag zu der ON-Menge hinzugefügt wird.

Beweisen Sie durch Widerspruch, dass dies falsch ist, in dem:

  1. Sie per Induktion zeigen, dass unter der Annahme dieser Behauptung, alle ON-Mengen genau so viele Primimplikanten haben wie die leere ON-Menge und auch so viele Primimplikanten wie die ON-Menge mit allen Primimplikanten.
  2. Sie daraus ein Widerspruch ableiten.

b) PLA aus Funktionstabelle

Gegeben sei eine Funktionstabelle für eine Boolesche Funktion. Erklären Sie in ca. 3 Sätzen, wie man daraus ein PLA bestimmt. Wie kann der kleinste PLA ermittelt werden? Bis zu wie vielen Variablen funktioniert solch eine Minimierung?

c) Intel Pentium PLA

Intel nutzte für einen Dividierer ein PLA und hatte dabei aber einige Einträge vergessen. Nach Korrektur (und dem Ersetzen von vielen Pentium Prozessoren) war der PLA kleiner. Warum?

d) PLA Größe und Geschwindigkeit

Ist ein kleinerer PLA schneller oder langsamer? Warum? Was bedeutet ein kleinerer PLA für die Implementierung der ReTI in Hardware?

Page 9

Page 10

Aufgabe 4 — Fredkin-Gatter & reversible Berechnung (2 + 2 + 12 Punkte)

Sie wollen eine Chipfirma gründen und haben dafür eine Idee aus der Quantum-Computing Ecke, nämlich Gatter zu nutzen, die reversibel sind. Reversibel bedeutet, dass keine Information verloren geht. Insbesondere bleibt die Anzahl an Einsen '1' exakt gleich in der Ausgabe wie in der Eingabe.

Sie wollen dafür sogenannte "Fredkin-Gatter" nutzen mit 3 Eingaben, einem Kontrollsignal , zwei Inputs und und drei Ausgaben. Das Kontrollsignal wird einfach durchgeleitet. Wenn das Kontrollsignal an ist, d.h. auf '1' gesetzt, dann werden und vertauscht, sonst identisch weitergegeben, d.h. erste (zweite) Ausgabe ist gleich erstem (zweitem) Eingang.

Logisch sind also Fredkin-Gatter definiert durch die drei Ausgaben ( und und ) wie folgt:

a) Landauer-Prinzip

Ein Motivation für reversible Berechnung ist das Landauer-Prinzip: Beim Löschen eines Bits an Information wird Energie freigesetzt (). Geben Sie eine Beispielfunktion in Form eines PLAs und eine Eingabe an, bei der Information gelöscht wird.

b) Nicht-reversibles Gatter

Eine zweite wichtige Eigenschaft von reversiblen Gattern ist, dass die Anzahl an '1' und '0' im Input und Output gleich bleiben. Geben Sie ein Beispiel eines (nicht-reversiblen) Gatters an, mit der gleichen Anzahl in Inputs und Outputs, zusammen mit einer Eingabe, bei der die Anzahl sich ändert. Woher stammt die Energie in herkömmlichen Gates?

c) Boolesche Funktionen auf Fredkin-Gatter zurückführen

Führen Sie nun die binären Booleschen Funktionen in der untenstehenden Tabelle in geeigneter Weise auf das Fredkin-Gatter, True ('1') oder False ('0') zurück. Im Gegensatz zur ITE-Übung auf Blatt 11 dürfen Sie hier geschachtelte Ausdrücke verwenden, wie .

Geben Sie Informationen und Kommentare an, so dass Ihre Lösung nachvollziehbar wird! Zur Verbesserung der Lesbarkeit dürfen Sie Funktionen benutzen, die Sie zuvor definiert haben. Vergewissern Sie sich aber, keine zyklischen Definitionsketten zu erzeugen!

Boolescher Ausdruck Name Fredkin-Gatter / 0 / 1
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
0 1 0 1
0 1 1 0
0 1 1 1
0 0 1 1

Hinweis: Schauen Sie zuerst was passiert wenn Sie auf '0' oder '1' setzen.

Page 11

Page 12

Aufgabe 5 — Zehnerkomplement & Bit-Operationen (4 + 4 + 8 Punkte)

Die Zehner-Komplement-Darstellung für Zahlen in Basis 10 ohne Nachkommastellen sei analog zur Vorlesung wie folgt definiert (mit ):

a) Induktionsbeweis

Beweisen Sie per Induktion im Detail, dass:

b) Zehnerkomplement-Addition

Beweisen Sie anhand obiger Definition der Zehnerkomplement-Darstellung, dass:

Die Addition von ganzen Zehnerkomplementzahlen kann gemäß folgender Formel auf die Subtraktion zurückgeführt werden:

c) Bit-Operation: Anzahl Einsen

(Diese Frage hat keinen Zusammenhang mit den Fragen a und b.)

Vervollständigen Sie durch Ausfüllen der leeren Felder folgenden Beweis, der zeigen soll, dass bit-weises AND von und (in C wäre das x & (x̃ + 1)) geschrieben als die Anzahl an Einsen in der Zahl [ermittelt].

Sei k := 0.
So lange die Zahl x nicht 0 ist:
  x = an..an-i+1 1 0..0  (wo i die Anzahl an 0 nach der 1 ist)
  ⇐⇒ x - 1 = an..an-i+1 0 1..1
  =⇒ x := x & (x - 1) = an..an-i+1 0 0..0
  k := k + 1
  Jetzt hat x genau eine '1' weniger, während k um genau eins erhöht wird.
End der Schleife.
Insgesamt ist also k genau die Anzahl von Einsern in x am Anfang.

Hinweis: Rechnen Sie zur Probe mit .

Page 13

Page 14

Aufgabe 6 — Mealy-Automat (4 + 4 + 2 + 6 Punkte)

Betrachten Sie den Mealy-Automaten , der durch folgende Zustands- und Ausgangstafel definiert ist:

0 0
1 0
0 1
1 1
0 1
1 1
0 0
1 0
0 1
1 1
0 1
1 1

Dabei ist der aktuelle Zustand und der Folgezustand. Der Startzustand des Mealy-Automaten sei .

Konstruieren Sie ausgehend von diesem Mealy-Automaten ein möglichst kleines Schaltwerk mit dem gleichen sequentiellen Verhalten. Gehen Sie dazu wie folgt vor:

a) Zustandsdiagramm

Zeichnen Sie für den oben definierten Mealy-Automaten das entsprechende Zustandsdiagramm.

b) Äquivalente Zustände

In der Vorlesung haben wir folgende hinreichende Bedingung gesehen für äquivalente Zustände: Wenn zwei Zustände bei der gleichen Eingabe immer die gleiche Ausgabe liefern und denselben Folgezustand annehmen, dann sind die Zustände äquivalent.

Erklären Sie warum es hier keine Zustände gibt, die diese Bedingung erfüllen würden.

c) Minimierung

Minimieren Sie den Automaten auf 3 Zustände. Die Zustände , und können gelöscht werden. Zeichnen Sie dazu das Zustandsdiagramm nach der Minimierung.

d) Zustandskodierung

Wählen Sie nun eine Zustandskodierung für die Zustände im reduzierten Zustandsdiagramm und geben Sie die neue Zustands- und Ausgangstafel an. Verwenden Sie in der Zustands- und Ausgangstafel Ihre Zustandskodierung.

Page 15

Page 16