fakultät für informatik technische universität dortmund Rechnerstrukturen, Teil 1 Vorlesung 4 SWS WS 14/15 Prof. Dr Jian-Jia Chen Dr. Lars Hildebrand Fakultät für Informatik – Technische Universität Dortmund [email protected]http://ls1-www.cs.tu-dortmund.de
124
Embed
Rechnerstrukturen, Teil 1 Vorlesung 4 SWS WS 14/15 · technischeuniversität - 2-dortmund fakultätfür informatik Rechnerstrukturen(Teil1) TU Dortmund Übersicht 1. Organisatorisches
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
fakultät für informatiktechnische universität dortmund
1. Lösungen finden2. beweisen, dass es keine bessere gibt
In RS sehen wir das nicht ganz so streng• Wir wollen zu einem besseren Entwurf kommen• nicht zwingend zum optimalen Entwurf,
• da es häufig konkurrierende Ansätze gibt• die sich zum Teil auch widersprechen
Strukturierter Entwurf
- 5 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.1 Einleitung & Strukturierter Entwurf
Strukturierter Schaltnetz-Entwurf
Schaltnetz-Entwurf bisher• ad hoc• Normalformen
Wunsch• Systematisierung• Strukturierung
Hoffnungen• einfacher zu guten Entwürfen• Schaltnetze verständlicher• Schaltnetze besser verifizierbar
- 6 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.1 Einleitung & Strukturierter Entwurf
Systematisierung Schaltnetz-Entwurf
Grundidee• Wiederverwendung guter Schaltnetze als Komponenten• bereits angewendet:
• bei allen Addierern HA verwendet• HA zur Bestimmung ob Übertrag generiert oder weitergegeben
wird
Zum Einstieg: Kann man VA sinnvoll aus HA bauen?
- 7 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.1 Einleitung & Strukturierter Entwurf
Noch einmal zum Volladdierer
Wir wollen Volladdierer aus Halbaddierern bauen (Wiederverwendung)
���� � � � �
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
VA"���� + x + y"
- 8 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.1 Einleitung & Strukturierter Entwurf
Noch einmal zum Volladdierer
Einsatz eines Halbaddierers• berechnet x + y
���� � � � �
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
VA"���� + x + y"
�� ��
0 0
0 1
0 1
1 0
0 0
0 1
0 1
1 0
HA"x + y"
- 9 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.1 Einleitung & Strukturierter Entwurf
Noch einmal zum Volladdierer
Einsatz eines Halbaddierers• berechnet c und s ohne existierenden Übertrag korrekt• berechnet c und s mit existierendem Übertrag fast immer falsch
���� � � � �
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
VA"���� + x + y"
�� ��
0 0
0 1
0 1
1 0
0 0
0 1
0 1
1 0
HA"x + y"
- 10 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.1 Einleitung & Strukturierter Entwurf
Noch einmal zum Volladdierer
Einsatz eines weiteren Halbaddierers• berechnet ��lt + As
���� � � � �
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
VA"���� + x + y"
�� ��
0 0
0 1
0 1
1 0
0 0
0 1
0 1
1 0
HA"x + y"
�� ��
0 0
0 1
0 1
0 0
0 1
1 0
1 0
0 1
HA"��lt + As"
- 11 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.1 Einleitung & Strukturierter Entwurf
Noch einmal zum Volladdierer
Einsatz eines weiteren Halbaddierers• berechnet c und s ohne existierenden Übertrag fast korrekt• berechnet c und s mit existierendem Übertrag fast korrekt
���� � � � �
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
VA"���� + x + y"
�� ��
0 0
0 1
0 1
1 0
0 0
0 1
0 1
1 0
HA"x + y"
�� ��
0 0
0 1
0 1
0 0
0 1
1 0
1 0
0 1
HA"��lt + As"
- 12 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.1 Einleitung & Strukturierter Entwurf
Noch einmal zum Volladdierer
Übertrag der Gesamtsumme entsteht, wenn mindestens einer der beiden Halbaddierer einen Übertrag erzeugt: �� bzw. ��
���� � � � �
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
VA"���� + x + y"
�� ��
0 0
0 1
0 1
� 0
0 0
0 1
0 1
� 0
HA"x + y"
�� ��
0 0
0 1
0 1
0 0
0 1
� 0
� 0
0 1
HA"��lt + As"
- 13 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.1 Einleitung & Strukturierter Entwurf
Noch einmal zum Volladdierer
Fügen wir die Verknüpfung von �� bzw. �� als Disjunktion (mindestens einer der Übertrage muss erzeugt worden sein) hinzu
Vorteile des strukturierten Entwurfs• einfaches Grundprinzip, dessen Korrektheit leicht zu zeigen ist• auch komplexe Schaltnetze intuitiv korrekt• schnelle Vorgehensweise
Nachteile des strukturierten Entwurfs• entstehende Schaltnetze sind groß• bereits berechnete Werte werden in der Regel nicht
wiederverwendet, das sie vom Konstruktionsprinzip nicht erkannt werden
- 28 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6. Optimierung von Schaltnetzen
6. Optimierung von Schaltnetzen
1. Einleitung & Strukturierter Entwurf
2. Algebraische Vereinfachung
3. KV-Diagramme
4. Algorithmus von Quine/McCluskey
5. Unvollständig definierte Funktionen
6. Hazards
- 29 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.2 Algebraische Vereinfachung
Entwurf kleiner Schaltnetze
Erinnerung Normalformen (DNF, RNF, KNF) direkt in
Schaltnetz umsetzbar
Beobachtung dabei jede Variable höchstens einmal negieren
ab jetzt Wir zählen Negationsgatter nicht mehr.
für große Schaltnetze nicht wesentlich
dann Schaltnetzgröße b≙ Anzahl Minterme/Maxterme + 1
entwickelt von• Maurice Karnaugh (1953)• Edward W. Veitch (1952)
KV-Diagramme • systematischer, anschaulicher und • viel übersichtlicherer Weg, um Funktionen �: 0,1 � → 0,1 und �: 0,1 � → 0,1zu vereinfachen
aber schon für �: 0,1 � → 0,1 unübersichtlich
⇒ darum vor allem im HaPra wichtig.
- 41 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramme• Mittels eines KV-Diagramms lässt sich jede disjunktive Normalform in
einen disjunktiven logischen Ausdruck umwandeln• disjunktiver logischer Ausdruck ist minimal
Vorgehensweise1. Erstellen einer Funktionstabelle2. Ableitung der DNF3. Umwandlung der DNF in ein KV-Diagramm4. Auffinden von Strukturen, die zur minimalen Disjunktionen führen.
Dieser Schritt basiert auf der Resolution
- 42 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Besonderheit• Kanten sind mit Variablen
beschriftet• jede Variable verfügt über eine
Zeile/Spalte für Variable und negierte Variable
• Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur in einerStelle
- 43 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur
in einer Stelle
- 44 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur
in einer Stelle
- 45 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur
in einer Stelle
- 46 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur
in einer Stelle
Hinweis: Nachbarschaften sind zyklisch
- 47 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur
in einer Stelle
Hinweis: Nachbarschaften sind zyklisch
- 48 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur
in einer Stelle
Hinweis: Nachbarschaften sind zyklisch
- 49 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur
in einer Stelle
Hinweis: Nachbarschaften sind zyklisch
- 50 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur
in einer Stelle
Hinweis: Nachbarschaften sind zyklisch
- 51 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
Nachbarschaften, d.h. Variablenbelegungen unterscheiden sich nur
in einer Stelle
Hinweis: Nachbarschaften sind zyklisch
- 52 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
- 53 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
�� �� �� �� � ��,… ,��
0 0 0 0 1
⋮ ⋮
1 0 1 1 1
⋮ ⋮
1 1 1 1 0
- 54 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
Was fällt bei der Variablenbelegung auf? Warum ist das so?
�� �� �� �� � ��,… ,��
0 0 0 0 1
⋮ ⋮
1 0 1 1 1
⋮ ⋮
1 1 1 1 0
- 55 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
�� �� �� �� � ��,… ,��
0 0 0 0 1
⋮ ⋮
1 0 1 1 1
⋮ ⋮
1 1 1 1 0
- 56 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
�� �� �� �� � ��,… ,��
0 0 0 0 1
⋮ ⋮
1 0 1 1 1
⋮ ⋮
1 1 1 1 0
- 57 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
�� �� �� �� � ��,… ,��
0 0 0 0 1
⋮ ⋮
1 0 1 1 1
⋮ ⋮
1 1 1 1 0
1
- 58 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
�� �� �� �� � ��,… ,��
0 0 0 0 1
⋮ ⋮
1 0 1 1 1
⋮ ⋮
1 1 1 1 01
1
- 59 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
�� �� �� �� � ��,… ,��
0 0 0 0 1
⋮ ⋮
1 0 1 1 1
⋮ ⋮
1 1 1 1 0
1
10
- 60 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
�� �� �� �� � ��,… ,��
0 0 0 0 1
⋮ ⋮
1 0 1 1 1
⋮ ⋮
1 1 1 1 0
- 61 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
KV-Diagramm für �: �,� �→ �,�
�: 0,1 � → 0,1 mit Wertevektor 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0(Beispielfunktion wie bereits gesehen)
Nullen weglassen
für mehr Übersichtlichkeit
6.3 KV-Diagramme
�� �� �� �� � ��,… ,��
0 0 0 0 1
⋮ ⋮
1 0 1 1 1
⋮ ⋮
1 1 1 1 0
- 62 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
- 63 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
- 64 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
- 65 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
- 66 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
Bilde für jedes Rechteck passendes Monom.
- 67 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
Bilde für jedes Rechteck passendes Monom.
�� = 1,�� = 0 ⇒ ����
- 68 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
Bilde für jedes Rechteck passendes Monom.
�� = 1,�� = 0 ⇒ ����
�� = 0,�� = 0 ⇒ ����
- 69 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
Bilde für jedes Rechteck passendes Monom.
�� = 1,�� = 0 ⇒ ����
�� = 0,�� = 0 ⇒ ����
�� = 0,�� = 0 ⇒ ����
- 70 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
Bilde für jedes Rechteck passendes Monom.
Decke alle Einsen durch sparsame Rechteckauswahl ab.
�� = 1,�� = 0 ⇒ ����
�� = 0,�� = 0 ⇒ ����
�� = 0,�� = 0 ⇒ ����
- 71 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
KV-Diagramm für Beispielfunktion �: �,� �→ �,�
Suche alle größten Rechtecke mit Zweierpotenzlänge.
Bilde für jedes Rechteck passendes Monom.
Decke alle Einsen durch sparsame Rechteckauswahl ab.
Bilde f als Disjunktion der korrespondierenden Monome.
�� = 1,�� = 0 ⇒ ����
�� = 0,�� = 0 ⇒ ����
�� = 0,�� = 0 ⇒ ����
� ��,��,��,�� = ���� ∨����
- 72 -technische universitätdortmund
fakultät fürinformatik Rechnerstrukturen (Teil 1)
TU Dortmund
6.3 KV-Diagramme
Einordnung KV-Diagramme
Was leisten KV-Diagramme?
Beobachtung Wir lösen mit KV-Diagrammen ein Problem, das wir
noch gar nicht definiert haben.
klar Wir holen das jetzt nach.
vorab Begriffsfestlegungen
• Variable Beispiele ��,��,��,. . .
• Literale Variable und Negationen Beispiele ��,��,��,��,. . .
Aufgabe Bestimme für �: 0,1 � → 0,1 ein Minimalpolynom.
Vorgehen1. Eintragen der Funktion ins KV-Diagramm2. Finden aller maximaler Zweierpotenz-Rechtecke3. Finden eines Primimplikanten für jedes Rechteck4. Finden einer Überdeckung aller Einsen durch eine minimale