Rechnerstrukturen - hhgym.de

36
Heinrich-Hertz-Gymnasium 2019/20 WPU 10 Rechnerstrukturen P. Kreißig Stand 27. Januar 2020

Transcript of Rechnerstrukturen - hhgym.de

Heinrich-Hertz-Gymnasium 2019/20

WPU 10

Rechnerstrukturen

P. Kreißig

Stand 27. Januar 2020

Info

Informatik 10

Inhaltsverzeichnis

1 Übersicht 2 - 1

2 Entwicklung der Rechentechnik 2 - 1

3 Von-Neumann-Rechnerarchitektur (1945) 3 - 13.1 Konzept des von-Neumann-Rechners . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 13.2 Konsequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 23.3 Beispiel: Speicherzugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 23.4 Blockschaltbild eines von-Neumann-Rechners . . . . . . . . . . . . . . . . . . . . 3 - 33.5 Aufgabe der Funktionseinheiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 4

4 Stellenwertsysteme 4 - 14.1 Rechnen im Stellenwertsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 24.2 Umrechnungen von Dezimal in andere Systeme . . . . . . . . . . . . . . . . . . . 4 - 34.3 Oktal- und Hexadezimalzahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 4

4.3.1 Oktalzahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 44.3.2 Hexadezimalzahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 5

4.4 Nachkommastellen bei Dualzahlen . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 54.5 Programmieraufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 6

5 Boolsche Algebra 5 - 15.1 Huntington-Axiome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 15.2 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 2

6 Schaltfunktionen 6 - 16.1 Ziel einer Schaltfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 16.2 Vom Problem zur Schaltung (KDNF, KKNF) . . . . . . . . . . . . . . . . . . . . 6 - 2

7 KV-Diagramme 7 - 17.1 Eine Eingangsvariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 17.2 Zwei Eingangsvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 17.3 Drei Eingangsvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 27.4 Vier Eingangsvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 2

8 Auswahlschaltungen (MUX und DEMUX) 8 - 18.1 Multiplexer (MUX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 18.2 Demultiplexer (DEMUX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 1

9 Bau einer 2-Bit-Alu 9 - 19.1 Halbadder (HA) und Volladder (VA) . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 2

10 Flip-Flop 10 - 110.1 NOR-Latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 110.2 Zustandsübergangsgraph (ZÜG), Anregungstabelle, Zustandsübergangstabelle (ZÜT)10 - 210.3 D-Latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 210.4 Takt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 310.5 Zählschaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 310.6 Zahlenschloss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 5

0 - 2 2018/19 P. Kreißig

Informatik 10 2. Entwicklung der Rechentechnik

Info1 Übersicht

Rechnerstrukturen

Rechner-aufbau

zum Rech-ner passendeSprachen

elektrische Schal-tungen für logi-sche Probleme

DarstellungverschiedenerZahlenbereichen

2 Entwicklung der Rechentechnik

Antike

1100 v. Chr. China: Suanpan (Abakus)

ca. 400 v. Chr. Griechenland: Rechentafeln

300 v. Chr. Euklid: Algorithmisches Rechnen (ggT, Näherung für π)

ca 100 Abakus (Vereinfachung des Rechnens mit römischen Zahlen)

9. Jhd. Ibn Musa Al-Chwarismi: Regeln der Wiedereinsetzung und Reduktion

Neuzeit

Mittelalter sehr langsame Durchsetzung des Dezimalsystems

1524 Adam Riese: Rechenbuch zur Durchsetzung des Dezimalsystems

17. Jhd. Mechanische Rechenmaschinen mit Zehnerübertrag

Schickhardt 1623: Addition/Subtraktion bis 6 Dezimalstellen

Pascal 1642: Addition mit 6 Dezimalstellen, Subtraktion über Komple-mentmethode

Leibnitz 1674:„Es ist unwürdig, die Zeit von hervorragenden Leuten mit knechtischen

Rechenarbeiten zu verschwenden, weil bei Einsatz einer Maschine auch

der einfältigste die Ergebnisse sicher hinschreiben kann.“→ Weiterentwicklung der Pascaline mit Staffelwalzen; alle 4 Grndrechen-arten;Erfinder des Binärsystems

1822 Charles Babbage:„Eines Abends saß ich in den Räumen der Analytischen Gesellschaft in

Cambridge, den Kopf in einer Art Wachtraum auf dem Tisch gestützt,

und eine Logarithmentafel aufgeschlagen vor mir. Ein anders Mitglied

kam in den Raum, sah mich im Halbschlaf, und rief: ’Babbbag sag, wovon

träumst du?’, worauf ich antwortete: ’Ich denke daran, dass all diese

Tafeln von einer Maschine berechnet werden könnten.’ “→ Difference Engine; u.a. Logarithmen, Potenzen

1837 Babbage:Idee einer Analytical Engine mit Zahlenspeicher, Rechenwerk, Steuerein-heit und Programmspeicher (Maschine hätte richtig gearbeitet, turing-mächtig)

1886 Hermann Hollerith: elektrische Zählmaschine für Lochkarten zur Aus-zählung der 11. Volkszählung der USA (statt 6 nur 1 Jahr)

P. Kreißig 2018/19 2 - 1

Info

2. Entwicklung der Rechentechnik Informatik 10

20. Jahrhundert: Rechnergeneration I

1937 Konrad Zuse (1910-1995):Erste frei programmierbare Rechenmaschine ZUSE Z1 mit binären Zah-len; mit Rechenwerk, Speicherwerk, Programmwerk, Ein- und Ausgabe-werk; Programm auf gelochten Filmstreifen

1941 Konrad Zuse: Programmgesteuerte elektromechanische RechenmaschineZ3 mit Relaistechnik, vier Grundrechenarten und Wurzelziehen, Gleit-kommazahlen, Programm auf 8-Bit-Lochkarten, turingmächtig

1943 Alan Turing (1912-1954) u.a.:COLOSSUS (elektronischer Rechner, Röhrentechnik; Takt 5 kHz; proTakt 100 Boolean-Operationen)

1944 Howard Aiken (Harvard):MARK I (Relais, ohne Binärsystem) - turingmächtig

1945 John von Neumann: bis heute gültiger Standard der Rechnerarchitektur

1946 Eckert/Mauchly:Erste programmgesteuerte elektronische Rechenmaschine ENIAC I(4 Grundrechenoperatioen, Quadratwurzel; Addition 0,2ms; Multiplika-tion 2,8ms; Division bis 24ms; Quadratwurzel bis 300ms; P = 174 kW;m = 27 t)

Rechnergeneration II

ab 1948 W. Shockley, J. Bardeen, W. Brattain u.a.: Transistor → Ent-wicklung von Rechneranlagen auf Transistorbasis

1946-1952 John von Neumann (1903-1957), Burks, Goldstine:IAS (EDVAC) mit Befehlen und Daten binär kodiert im gleichen Speicher(pro Tag bis zu 20 h sicheres Arbeiten)

ca. 1960 IBM 7090 – transistorisierter Großrechner

ca. 1963 CD 6600 (Seymour Cray) Supercomputer

Die elektronische Revolution

1965-1975 Rechnergeneration III

• Integrierte Schaltkreise ab 1959

• IBM System/360 Familie mit intgrierten Schaltkreisen

• DEC PDP-11: 16-Bit Minicomputer

• Entwicklung des Mikroprozessors (Intel 4004, 1971)

seit 1975 Rechnergeneration IV

• Entwicklung hochintegrierter Mikroprozessorschaltungen

• 1978: Intel 8080, 6502 Mikrocomputer

• 1978-1990er: Intel 8086 (16-Bit-Architektur, 1 MB RAM, 5-10Mhz)

• 1981: IBM-PC mit Intel 8088

• 1985: RISC-Prozessoren (Reduced Instruction Set Computer)

• 1982-frühe 1990er: Intel 80286

• 1985-2007: Intel 80386 (32-Bit Architektur, 12-40MHz)

• 1989-2007: Intel 80486 (32-Bit-Integer-RISC-Core, 16-100MHz)

• 1993-1999: Intel Pentium (60-300MHz)

• 2000-2008: Intel Pentium4 (mehr als 4GB RAM addressierbar)

2 - 2 2018/19 P. Kreißig

Informatik 10 2. Entwicklung der Rechentechnik

Info

• 2006-heute: Intel Core 2 - Serie (bis 3,3GHz, 2 Kerne)

• 2008-heute: Intel Core i - Serie (mehrere Kerne)

ab ??? Rechnergeneration V

z.B. Quantencomputer oder biologische Computer

P. Kreißig 2018/19 2 - 3

Informatik 10 3. Von-Neumann-Rechnerarchitektur (1945)

Info3 Von-Neumann-Rechnerarchitektur (1945)

3.1 Konzept des von-Neumann-Rechners

John von Neumann entwarf das Konzept eines Universalrechners mit folgenden Anforderun-gen:

1. Der Rechenautomat wird logisch und räumlich in fünf Funktionseinheiten zerlegt:

a) Rechenwerk (ALU): Hier werden arithmetische (+,−, ·, /) und logische Operationen(und, oder, nicht, . . . ) ausgeführt.

b) Speicherwerk: Hier werden Programme und Daten gespeichert.Basic Input Output System, (ROM) und Arbeitsspeicher

c) Leitwerk: Durch setzen von Steuersignalen, die an die jeweilige Funktionseinheitweitergeleitet werden, steuert das Leitwerk den Programmablauf.

d) Eingabewerk: Programme und Daten werden in den Speicher weitergeleitet.

e) Ausgabewerk: Hier erfolgt die Übermittlung von Ergebnissen nach „außen “.

2. Der Rechenautomat ist in seiner Struktur unabhängig von den zu bearbeitenden Proble-men (Universalrechner).Für jedes Problem gibt es eine spezielle Bearbeitungsvorschrift(Programm), die über das Eingabewerk in den Speicher gelangt.

3. Zur Ablage von Programmen und Daten dient derselbe Speicher.

4. Der Speicher ist in gleich große Einheiten unterteilt. Auf jede Speichereinheit kann mittelsihrer Adresse (Numerierung) direkt zugegriffen werden.

5. Aufeinanderfolgende Befehle eines Programms werden i.d.R. in aufeinanderfolgenden Spei-cherzellen abgelegt. Durch Erhöhung der Befehlsadresse um Eins wird der nächste Befehlangesprochen (sequentielle Befehlsausführung). Eine Ausnahme bilden die Sprungbefehle.

6. Es gibt Sprungbefehle. Hier wird nach der Ausführung eines Befehls mit der Adresse snicht automatisch de mit der Adresse s+1 ausgeführt, sondern ein Befehl mit der Adresset, wobei i.d.R. gilt t 6= s+ 1.

7. Eine spezielle Form der Sprungbefehle sind die bedingten Sprungbefehle: Die Adresse desFolgebefehls ist an eine Bedingung geknüpft:

IF Bedingung_erfüllt

THEN nächste_Befehlsadresse = t 6=s+1

ELSE nächste_Befehlsadresse = s+1

ENDIF

8. Programme und Daten werden binär kodiert.

9. Die Verbindung der einzelnen Werke wird über sogenannte Busse hergestellt.

Heutzutage sind Recheneinheit und Leitwerk in der Zentraleinheit, der CPU (Central ProcessingUnit) räumlich zusammengefasst.

alte Bezeichnung neue Bezeichnung

Ein-/Ausgabewerk Ein-/Ausgabeeinheit bzw. I/O-Einheit

Speicherwerk Arbeitsspeicher; RAM (random access memory)

Leitwerk Steuereinheit; CU (control unit)

Rechenwerk ALU (arithmetic logic unit)

P. Kreißig 2018/19 3 - 1

Info

3. Von-Neumann-Rechnerarchitektur (1945) Informatik 10

3.2 Konsequenzen

Es muss folgende Befehlstypen geben:

• Ein- und Ausgabebefehle:Für die Kommunikation mit der I/O-Einheit (Lesen externer Daten in den Arbeitsspeicher,Schreiben von Daten vom Arbeits- in externe Speicher)

• Transverbefehle:Daten müssen in Speicherzellen abgelegt oder aus Speicherzellen geladen werden.

• arithmetische Befehle:Es gibt Befehle für Rechenoperationen.

• logische Befehle:Ebenso muss es Vergleichsoperationen und logische Operationen geben.

• Sprungbefehle und bedingte Sprungbefehle

Bestimmte Speicherzellen, auf die besonders oft zugegriffen wird, befinden sich in der CPU. Diesenennt man Register.

3.3 Beispiel: Speicherzugriff

CPU

MAR MBR

RAMSteuerbus

Datenbus

Adressbus

1. Im MAR wird die Speicheradresse abgelegt.

2. Über die Steuerleitung „D“ (direction) wird die Richtung des Signalflusses angezeigt.

3. Über die Steuersignalleitung „A“ (address strobe) wird der Transver initiiert.

4. Während der Speicher das Datum (langsam) heraussucht, und auf den Datenbus legt,lauscht die Steuereinheit auf einer weiteren Steuersignalleitung „T“ (data transver acknow-ledge).

5. Liegt das Datum auf dem Datenbus, wird damit das MBR automatisch befüllt.

6. Der Speicher bestätigt den Erfolg automatisch auf der „T“-Leitung, die CU kann fortfahren.

In dieser Art funktionieren andere Befehle ebenfalls.

3 - 2 2018/19 P. Kreißig

Informatik 10 3. Von-Neumann-Rechnerarchitektur (1945)

Info3.4 Blockschaltbild eines von-Neumann-Rechners

CPU

MBR MAR

CU

Decode

ALU

PC

IR

SR

D0Dn

An

A0

HS IO

I O

CAD

Wobei die Abkürzungen folgende Bedeutungen haben:

Abk. Englisch Deutsch

CPU Central Processing Unit Zeintraleinheit

CU Control Unit Steuerwerk

MBR Memory Buffer Register Datenpuffer-Register

MAR Memory Address Register Adresspuffer-Register

PC Programm Counter Befehlszähler

IR Instruction Register Befehlsregister

SR Status Register Statusregister

ALU Arithmetic Logic Unit arithmetisch-logische Einheit

Decode Decoding Unit Dekodierwerk

D0 . . . Dn Data Register Datenregister

A0 . . . An Address Register Adressregister

HS Main Store (Memory) Hauptspeicher

IO Input / Output Unit Ein- und Ausgabewerk

I Input Register Eingaberegister

O Output Register Ausgaberegister

Bus Leitungen

C Control Bus Steuerleitung

A Address Bus Adressleitung

D Data Bus Datenleitungen

P. Kreißig 2018/19 3 - 3

Info

3. Von-Neumann-Rechnerarchitektur (1945) Informatik 10

3.5 Aufgabe der Funktionseinheiten

Der Prozessor ist Kern jeder Rechenanlege. Im Prozessor findet die Abarbeitung der Befehlestatt. Er zerfällt logisch in zwei Teile: das Leitwerk (Steuerwerk) und das Rechenwerk.

Das Leitwerk (CU) steuert die Arbeitsweise des Rechenwerkes und der übrigen Komponentender Rechenanlage auf der Basis der schrittweisen Interpretation von Maschinenbefehlen.

Die Arbeitsweise des Leitwerkes ist durch drei Register charakterisiert:

Der Befehlszähler (PC) enthält die Adresse des nächsten auszuführenden Maschinenbefehls.

Das Befehlsregister (IR) enthält den aktuellen auszuführenden Maschinenbefehl.

Das Statusregister (SR) nimmt die Rückmeldungen (Es werden Flags gesetzt) aus dem Rechen-werk, dem Leitwerk und den übrigen Teilen der Rechenanlage auf, die die Adressfortschaltungim Maschinenprogramm beeinflussen können.

Die Interpretation der auszuführenden Maschinenbefehle im Leitwerk erfolgt durch Dekodierungdes Operationscodes und der übrigen Teile des Befehls.Der Operationscode bestimmt dabei, welche Operationen im laufenden Maschinenbefehlszyklusausgeführt werden sollen.Die übrigen Teile des Maschinenbefehls bestimmen im Allgemeinen die Operanden durch Angabevon Register- oder Speicheradressen.

Das Rechenwerk (calculation oder execution unit) enthält eine oder mehrere universelleoder spezialisierte arithmetische und logische Einheiten (ALU), die die Verknüpfung von Datenermöglichen.

Ferner umfasst das Rechenwerk Speicherzellen zur Aufnahme von Operanden und Ergebnissenin Form von Registern oder Registerfeldern. (D0 . . .Dn, A0 . . .An)

Busse sind spezialisierte oder universelle Datenpfade, über die der Prozessor mit den restlichenTeilwerken interagiert.

So ist der Prozessor mit dem Hauptspeicher (HS) verbunden, aus dem er die zur Verarbeitungbestimmten Befehle und Daten holt.

Für die Kommunikation mit der Umwelt und den Hintergrundspeichern ist der Prozessor überBusse mit den Peripheriegeräten verbunden. (IO)

3 - 4 2018/19 P. Kreißig

Informatik 10 4. Stellenwertsysteme

Info4 Stellenwertsysteme

Das von-Neumann-Konzept lässt die Rechner im Binärsystem arbeiten.

Trotzdem sind auch andere Stellenwertsysteme wie das übliche Dezimalsystem, aber auch dasOktalsystem und das Hexadezimalsystem von Bedeutung.

Demzufolge müssen Zahlen von einem in das andere Stellenwertsystem umgerechnet werden.

Beispiel 4.1 : Dezimalsystem

523610 = 5000 + 200 + 3 + 6

= 5 · 103 + 2 · 102 + 3 · 101 + 6 · 100

Jede Stelle wird mit einer Zehnerpotenz multipliziert, diese Produkte werden addiert. Die Basisdes Systems ist die 10, es gibt die 10 Ziffern 0 . . . 9.

Analog sieht die Darstellung bei anderen Basen aus:

Beispiel 4.2 : Dualsystem

1011112 = 1 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 1 · 21 + 1 · 20

Hieraus ergibt sich sofort die Umrechnung in das Dezimalsystem.

= 32 + 0 + 8 + 4 + 2 + 1 = 4710

Die Basis des Dualsystems ist die 2. Es gibt zwei Ziffern 0 und 1.

Beispiel 4.3 : Oktalsystem

2378 = 2 · 82 + 3 · 81 + 7 · 80

Hieraus ergibt sich wieder die Umrechnung in das Dezimalsystem.

= 2 · 64 + 3 · 8 + 7 · 1 = 128 + 24 + 7 = 15910

Die Basis des Dualsystems ist die 8. Es gibt acht Ziffern 0 . . . 7.

Beispiel 4.4 : Hexadezimalsystem

Die Basis ist nun 16. Man benötigt also 16 Ziffern. Zu den Ziffern 0 . . . 9 kommen noch die ZiffernA . . . F hinzu mit folgenden Bedeutungen:

A = 10 B = 11 C = 12 D = 13 E = 14 und F = 153BD16 = 3 · 162 + 11 · 161 + 13 · 160

Hieraus ergibt sich wieder die Umrechnung in das Dezimalsystem.

= 3 · 256 + 11 · 16 + 13 · 1 = 768 + 176 + 13 = 95710

Allgemein: Zahl=n∑

i=0

ai · bi , wobei ai die entsprechende Ziffer, b die Basis und i die Potenz

darstellt.

P. Kreißig 2018/19 4 - 1

Info

4. Stellenwertsysteme Informatik 10

4.1 Rechnen im Stellenwertsystem

Das schriftliche Rechnen (Addition, Subtrktion, Multiplikation und Division) erfolgt in allenStellenwertsystemen wie im Dezimalsystem. Man muss nur die entsprechenden Überträge beach-ten.

Aufgabe 4.1: Addition

Berechne folgende Summen schriftlich. Überprüfe durch Umrechnung in das Dezimalsystem.

1. 111012 + 110112 + 10112

2. 7238 + 1758

3. 3A16 + 1916

Aufgabe 4.2: Subtraktion

Berechne analog die Differenzen.

1. 110102 − 11102

2. 3728 − 1758

3. A1B16 − 78D16

Aufgabe 4.3: Multiplikation und Division

Löse die folgenden Aufgaben schriftlich im Binärsystem, überprüfe im Dezimalsystem.

1. 10112 · 11012

2. 1000012 : 1102

Lösung 4.1

1. 1 1 1 0 12 29+ 1 1 0 1 12 +27+ 1 0 1 12 +11

1 + 1 0 1 1 1 Ü10 0 0 0 1 12 67

2. 7 2 38 467+ 1 7 58 +1251 1 1 Ü1 1 2 08 592

3. 3 A16 58+ 1 916 +25

1 Ü5 316 83

Lösung 4.2

1. 1 1 0 1 02 26− 1 1 1 02 -14

1 1 Ü1 1 0 02 12

2. 3 7 28 250− 1 7 58 -125

1 1 Ü1 7 58 125

3. A 1 B16 2587− 7 8 D16 -1933

1 1 Ü3 8 E16 654

4 - 2 2018/19 P. Kreißig

Informatik 10 4. Stellenwertsysteme

Info

Lösung 4.3

1. 1 0 1 12 · 1 1 0 12 11 · 13

1 0 1 11 0 1 1

1 0 1 1

1 0 0 0 1 1 1 1 143

2. 1 0 0 0 0 12 : 1 1 02 = 101, 12− 1 1 0 ↓

1 0 0 ↓1 0 0 1− 1 1 0 ↓

1 1 0− 1 1 0

33 : 6 = 5, 5

4.2 Umrechnungen von Dezimal in andere Systeme

Die Umrechnung in das Dezimalsystem ergibt sich wie oben beschrieben.

Vom Dezimal- in ein System mit anderer Basis muss man die Zahl als Vielfache der Potenzender neuen Basis ausdrücken.

Beispiel 4.5 : Umrechnung Dezimal ⇒ Dual (Langfassung)

5310 = 26 · 2 + 1∣∣26 zerlegen

= (13 · 2 + 0) · 2 + 1∣∣Klammer auflösen

= 13 · 22 + 0 · 2 + 1∣∣13 zerlegen

= (6 · 2 + 1) · 22 + 0 · 2 + 1∣∣Klammer auflösen

= 6 · 23 + 1 · 22 + 0 · 2 + 1∣∣6 zerlegen

= (3 · 2 + 0) · 23 + 1 · 22 + 0 · 2 + 1∣∣Klammer auflösen

= 3 · 24 + 0 · 23 + 1 · 22 + 0 · 2 + 1∣∣3 zerlegen

= (1 · 2 + 1) · 24 + 0 · 23 + 1 · 22 + 0 · 2 + 1∣∣Klammer auflösen

= 1 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 1 · 20

Nun haben wir nur noch Zweierpotenzen mit den Faktoren 0 oder 1.

5310 = 1101012

Man erkennt, dass die neuen Ziffern die Reste bei den Divisionen durch 2 sind. Hieraus ergibtsich die Kurzfassung der Rechnung.

Beispiel 4.6 : Umrechnung Dezimal ⇒ Dual (Kurzfassung)

53 : 2 = 26 Rest 1

26 : 2 = 13 Rest 0

13 : 2 = 6 Rest 1

6 : 2 = 3 Rest 0

3 : 2 = 1 Rest 1

1 : 2 = 0 Rest 1

Das Verfahren bricht mit dem Ergebnis 0 ab. Die Reste ergeben von unten nach oben gelesendie Dualzahl 1101012

Analog könnte man auch vom Dezimal- in ein anderes z.B. in das Oktalsystem umrechnen.

P. Kreißig 2018/19 4 - 3

Info

4. Stellenwertsysteme Informatik 10

Aufgabe 4.4: Umrechnung Dezimal ⇒ Oktal

Rechne analog zu Beispiel 4.6 die Dezimalzahl 24510 in eine Oktalzahl um.

Lösung 4.4

245 : 8 = 30 Rest 5

30 : 8 = 3 Rest 6

3 : 8 = 0 Rest 3 Also folgt 24510 = 3658

4.3 Oktal- und Hexadezimalzahlen

Der Computer rechnet zwar grundsätzlich mit Dualzahlen, jedoch ist deren Darstellung bei grö-ßeren Zahlen für uns Menschen sehr unübersichtlich.

Eine Ziffer einer Dualzahl nennt man auch ein Bit.

4.3.1 Oktalzahlen

Da die 7 die größte Zahl aus 3 Bits ist, 710 = 1112, kann man 3 Bits zu einer Ziffer der entspre-chenden Dualzahl zusammenfassen.

So lassen sich Dualzahlen sehr leicht in Oktalzahlen umwandeln und umgekehrt.

Beispiel 4.7 : Dualzahl ⇔ Oktalzahl

110101102 = 011︸︷︷︸

3

010︸︷︷︸

2

110︸︷︷︸

6

= 3268

Als noch Datenwörter von 24 Bit Länge gebräuchlich waren, deren Wertebereich genau dem einerachtstelligen Oktalzahl entsprach, wurden Oktalzahlen zur Eingabe und Ausgabe von Bitmusternverwendet.

Oktalzahlen werden heute noch bei der Darstellung von Dateizugriffsrechten unter Unix verwen-det, wo je drei Bit die Rechte einer Benutzerklasse darstellen (chmod).

Anwendung in der Luftfahrt: Der Transpondercode (Squawk) in jedem Flugzeug arbeitet mitOktalzahlen.

4 - 4 2018/19 P. Kreißig

Informatik 10 4. Stellenwertsysteme

Info4.3.2 Hexadezimalzahlen

Analog kann man 4 Bits zusammenfassen und erhält als größte Zahl die 1510 = F16, der größtenHexadezimalziffer.

Alle 8-Bit-, 16-Bit-, 32-Bit-, 64-Bit-Zahlen usw. lassen sich zu je 4 Bits zusammenfassen und soübersichtlicher darstellen.

Beispiel 4.8 : Dualzahl ⇔ Hexadezimalzahl

110101102 = 1101︸︷︷︸

13

0110︸︷︷︸

6

= D616

4.4 Nachkommastellen bei Dualzahlen

Die konsequente Weiterführung der Potenzen bedeutet für die Nachkommastellen:

Vorkomma Nachkomma

Beispielzahl 1 1 1 , 1 1 1 12

Wert der Stelle als Potenz 22 21 20 2−1 2−2 2−3 2−4

Wert der Stelle als Dezimalzahl 4 2 11

2

1

4

1

8

1

164 2 1 0, 5 0, 25 0, 125 0, 0625

Gesamtwert Dezimal: 4 + 2 + 1 + 0, 5 + 0, 25 + 0, 125 + 0, 0625 = 7, 9375

Die Nachkommastellen sind also Potenzen von 1

2und müssen unabhängig von den Vorkommas-

tellen berechnet werden.

Beispiel 4.9 : Umrechnung Nachkommastellen Dezimal ⇔ Dual

0, 82812510 = (1 + 0, 65625) · 1

2

∣∣Klammer auflösen

= 1 · 1

2+ 0, 65625 · 1

2

∣∣0,65625 zerlegen

= 1 · 1

2+

((1 + 0, 3125) · 1

2

)· 1

2

∣∣Klammer auflösen

= 1 · 1

2+ 1 ·

(1

2

)2+ 0, 3125 ·

(1

2

)2 ∣∣0,3125 zerlegen

= 1 · 1

2+ 1 ·

(1

2

)2+ (0 + 0, 625) · 1

2·(1

2

)2 ∣∣Klammerauflösen

= 1 · 1

2+ 1 ·

(1

2

)2+ 0 ·

(1

2

)3+ 0, 625 ·

(1

2

)3 ∣∣0,625 zerlegen

= 1 · 1

2+ 1 ·

(1

2

)2+ 0 ·

(1

2

)3+ (1 + 0, 25) · 1

2·(1

2

)3 ∣∣Klammer auflösen

= 1 · 1

2+ 1 ·

(1

2

)2+ 0 ·

(1

2

)3+ 1 ·

(1

2

)4+ 0, 25 ·

(1

2

)4 ∣∣0,25 zerlegen

= 1 · 1

2+ 1 ·

(1

2

)2+ 0 ·

(1

2

)3+ 1 ·

(1

2

)4+ (0 + 0, 5) · 1

2·(1

2

)4 ∣∣Klammer auflösen

= 1 · 1

2+ 1 ·

(1

2

)2+ 0 ·

(1

2

)3+ 1 ·

(1

2

)4+ 0 ·

(1

2

)5+ 0, 5 ·

(1

2

)5 ∣∣0,5 zerlegen

= 1 · 1

2+ 1 ·

(1

2

)2+ 0 ·

(1

2

)3+ 1 ·

(1

2

)4+ 0 ·

(1

2

)5+ 1 · 1

2·(1

2

)5

Mit der 1 bricht das Verfahren ab und wir haben die Kommastellen in der richtigenReihenfolge.Im anderen Fall könnte man beliebig weitere Kommastellen berechnen.

0, 82812510 = 0, 1101012

Dieses Verfahren kann man natürlich auc wieder deutlich verkürzt aufschreiben. Man multipliziertimmer mit 2 und notiert, ob das Ergebnis größer 1 ist oder nicht.Dies zeigt das folgende Beispiel.

P. Kreißig 2018/19 4 - 5

Info

4. Stellenwertsysteme Informatik 10

Beispiel 4.10 : Kurzform für die Umrechnung der Nachkommastellen

0, 828125 · 2 = 0, 65625+1

0, 65625 · 2 = 0, 3125 +1

0, 3125 · 2 = 0, 625 +0

0, 625 · 2 = 0, 25 +1

0, 25 · 2 = 0, 5 +0

0, 5 · 2 = 0 +1 also 0, 82812510 = 0, 1101012

Man erkennt, dass scheinbar „einfache“ Zahlen im Dezimalsystem im Binärsystem ganz andereEigenschaften besitzen.

Beispiel 4.11 : Periodische Bruchzahlen im Dualsystem

0, 2 · 2 = 0, 4+0

0, 4 · 2 = 0, 8+0

0, 8 · 2 = 0, 6+1

0, 6 · 2 = 0, 2+1

0, 2 · 2 = 0,4+0 also 0, 210 = 0, 00112

Das Ergebnis 0,4 wiederholt sich, wir haben also eine Periode.

Endliche Dezimalbrüche können im Dualsystem unendliche Brüche sein.Eine Berechnung muss irgendwann abgebrochen werden und es entstehen gerundete Werte.

Es kann zu unvermuteten Rundungsfehlern kommen.

4.5 Programmieraufgaben

Aufgabe 4.5: Zahlumrechnungen mittel Haskell

Überlege dir, wie man Dualzahlen in Haskell darstellen und mit ihnen rechnen kann. Implemen-tiere dann folgende Funktionen:

dual2dec zahl wandelt eine Dezimal- in eine Dualzahl um.

dec2dual zahl wandelt eine Dual- in eine Dezimalzahl um.

okt2dec zahl wandelt eine Dezimal- in eine Oktalzahl um.

dec2okt zahl wandelt eine Oktal- in eine Dezimalzahl um.

Auch Hexadezimalzahlen müssen erst einmal dargestellt werden.

dual2hex zahl wandelt eine Dezimal- in eine Hexadezimalzahl um.

hex2dual zahl wandelt eine Hexadezimal- in eine Dezimalzahl um.

decbr2dualbr zahl wandelt die Nachkommastellen um, als zweiten Parameter

dualbr2decbr zahl könnte man die Stellenanzahl hinzufügen.

Überlege dir weitere praktische Funktionen.

4 - 6 2018/19 P. Kreißig

Informatik 10 5. Boolsche Algebra

Info5 Boolsche Algebra

Mit binären Zahlen kann man rechnen, die zwei Werte ermöglichen aber auch die Interpretationals whr und falsch wie in der Logik. So lassen sich mit 0 (falsch) und 1 (wahr) auch logischeFunktionen umsetzen.

Die theoretische Grundlage hierfür bildet die boolsche Algebra, eine algebraische Struktur, diebereits Mitte des 19. Jahrhunderts von dem britischen Philosophen nd Mathematiker GeorgeBoole entwickelt wurde.

In Form der Schaltalgebra ist sie das Fundament der Technischen Informatik.

5.1 Huntington-Axiome

Die häufigste Begriffsdefinition einer boolschen Algebra stammt vom Amerikaner Edward Ver-milye Huntington (1874-1952), der 1904 zeigen konnt, dass nur 4 Axiome genügen.

Wir benutzen statt einer allgemeinen Bezeichnung der Operatoren gleich die logischen FunktionenKonjunktion „und“ (∧), Alternative „oder“ (∨) und Negation „nicht“ (¬).

Um die Übersichtlichkeit zu erhöhen, vereinfachen wir die Schreibweisen von ∧ und ¬.

Operator bisherige Schreibweise neue Schreibweise

oder x1 ∨ x2 x1 ∨ x2

und x1 ∧ x2 x1 · x2 bzw. x1x2nicht ¬x x

Huntigton-Axiome

duales Gesetz durch Vertauschen

von · und ∨ sowie von 0 und 1

1. Kommutativgesetze ab = ba (K1) a ∨ b = b ∨ a (K2)

2. Distributivgesetze x(y ∨ z) = xy ∨ xz (D1) x ∨ yz = (x ∨ y)(x ∨ z) (D2)

3. Neutrale Elemente x · 1 = x (N1) x ∨ 0 = x (N2)

4. Komplementgesetze(Inverse Elemente)

x · x = 0 (KP1) x ∨ x = 1 (KP2)

Aus diesen Axiomen lassen sich weitere Regeln ableiten:

Assoziativgesetze x ∨ (y ∨ z) = (x ∨ y) ∨ z (A1) x · (y · z) = (x · y) · z (A2)

Idempotenzgesetze x ∨ x = x (ID1) x · x = x (ID2)

Eliminationsgesetze x ∨ 1 = 1 (E1) x · 0 = 0 (E2)

de Morgan Regeln x ∨ y = x · y (M1) x · y = x ∨ y (M2)

Doppelnegation x = x (DN)

Dualitätsgesetz 0 = 1 (DU1) 1 = 0 (DU2)

Absorptionsgesetz x ∨ (x · y) = x (AB1) x · (x ∨ y) = x (AB2)

P. Kreißig 2018/19 5 - 1

Info

5. Boolsche Algebra Informatik 10

5.2 Aufgaben

Aufgabe 5.1: Abgeleitete Regeln

Leite aus den 4 Huntigton-Axiomen1. das Idempotenzgesetz ID1, 2. das Eleminationsgesetz E1,3. das Absorptionsgesetz AB1 her. Bereits abgeleitete Regeln dürfen benutzt werden.

Lösung 5.1

1. Idempotenzgesetz: x ∨ x (N1)

= (x ∨ x) · 1 (KP2)

= (x ∨ x) · (x ∨ x) (D2)

= x ∨ (x · x) (KP1)

= x ∨ 0 (N2)

= x

2. Eleminationsgesetz: x ∨ 1 (N1)

= (x ∨ 1) · 1 (KP2)

= (x ∨ 1) · (x ∨ x) (D2)

= x ∨ (1 · x) (K1)

= x ∨ (x · 1) (N1)

= x ∨ x (KP2)

= x

3. Absorptionsgesetz: x ∨ (x · y) (N1)

= (x · 1) ∨ (x · y) (D1)

= x · (1 ∨ y) (K2)

= x · (y ∨ 1) (E1)

= x · 1 (N1)

= x

Aufgabe 5.2: Vereinfachung boolscher Ausdrücke

Vereinfache mit Hilfe der Huntington-Axiome und -Regeln1. (a · b) ∨ (a · b) 2. a ∨ (a · b) 3. (a ∨ b) · (a ∨ b)

Lösung 5.2

1. (a · b) ∨ (a · b) (D1)

= a · (b ∨ b) (KP1)

= a · 1 (N1)

= 1

2. a ∨ (a · b) (D2)

= (a ∨ a) · (a ∨ b) (KP2)

= 1 · (a ∨ b) (N1)

= a ∨ b

5 - 2 2018/19 P. Kreißig

Informatik 10 5. Boolsche Algebra

Info

3. (a ∨ b) · (a ∨ b) (D2)

= a ∨ (b · b) (KP1)

= a ∨ 0 (N2)

= a

Man kann also pinzipiell jeden booleschen Ausdruck mit Hilfe dieser Regeln umformen odervereinfachen.

P. Kreißig 2018/19 5 - 3

Informatik 10 6. Schaltfunktionen

Info6 Schaltfunktionen

Definition 6.0 : Schaltfunktion

Jede Funktion der Form y = f(x1, x2, . . . , xn) mit xi ∈ {0; 1} heißt Schaltfunktionder Stelligkeit n.

Jede Wertetabelle, deren Eingangsparameter mit 0 oder 1 belegt werden können, stellt eine solcheSchaltfunktion dar, also auch alle bekannten logischen Funktionen wie „Und“ , „Oder“ , . . . .

Für die meisten logischen Funktionen gibt es auch eine elektrische Schaltung zur Umsetzung.

∧ ∨ ∧ ∨ ↔ = → x x

x1 x2 AN

D

OR

NA

ND

NO

R

XO

R

IDx

0 0 0 0 1 1 1 0 1 0 1

0 1 0 1 1 0 0 1 1 0 1

1 0 0 1 1 0 0 1 0 1 0

1 1 1 1 0 0 1 0 1 1 0

Kon

junk

tion

Alter

native

Äqu

ival

enz

Ant

ival

enz

Impl

ikat

ion

Iden

titä

tN

egat

ion

6.1 Ziel einer Schaltfunktion

Ziele einer Schaltfunktion und ggf. ihrer Vereinfachung sind

• zu einem gegebenen logischen Problem eine Schaltung zu finden,

• die minimal ist,

• mit gegebenen Bauelementen realisiert wird,

• schnell ist und

• hazardfrei ist. (keine verschiedenen Laufzeiten zweier Signale zum gemeinsamen Ziel)

P. Kreißig 2018/19 6 - 1

Info

6. Schaltfunktionen Informatik 10

6.2 Vom Problem zur Schaltung (KDNF, KKNF)

Beispiel 6.2 : Demokratieschaltung

In einem Schlafwagon mit drei Betten soll das Licht nur leuchten, wenn sich zwei oder dreiInsassen einig sind.

a) Wertetabelle: Inde

xi

a b c y0 0 0 0 01 0 0 1 02 0 1 0 03 0 1 1 14 1 0 0 05 1 0 1 16 1 1 0 17 1 1 1 1

b) Finde einschlägige Indizes

Ein Index heißt einschlägig, wenn der Fun-tionswert in dessen Zeile 1 ist.

Hier sind dies 3, 5, 6 und 7.

c) Bilde die Minterme

Minterme sind durch „und“ verknüpfteEingangsvariablen der einschlägigen Indi-zes.

M3 = abc = 0 · 1 · 1, M5 = abc = 1 · 0 · 1, M6 = abc = 1 · 1 · 0 und M7 = abc = 1 · 1 · 1.

d) Kanonisch disjunktive Normalform (KDNF)

kanonisch - jede mögliche Eingangansbelegung hat einen Ausgangswertdisjunktiv - die zuletzt auszuführende Operation ist eine Disjunktion (Alternative)

Jede Schaltfunktion (Wertetabelle) lässt sich darstellen als disjunktive Verknüpfungihrer Minterme.

y = M3 ∨M5 ∨M6 ∨M7 = abc ∨ abc ∨ abc ∨ abc

e) Schaltung

Die Schaltung wurde mit dem Programm logisim erstellt.Dieses ist für alle Plattformen im Internet frei verfügbar.

Einen negierten Eingang erkennt man an dem Kreis.

6 - 2 2018/19 P. Kreißig

Informatik 10 6. Schaltfunktionen

Info

Das Beispiel 6.2 lässt sich auch mit der Kanonisch konkunktiven Normalform (KKNF)bearbeiten. Nun ist die zuletzt auszuführende Operation die Konjunktion.

a) Wertetabelle siehe Beispiel 6.2

b) Suche die nichteinschlägigen Indizes , in deren Zeile y = 0 gilt.Hier sind das 0,1,2 und 4.

c) Bilde die Maxterme, die durch „oder“ verknüpften Eingangsvariablen.M0 = a ∨ b ∨ c = 0 ∨ 0 ∨ 0, M1 = a ∨ b ∨ c = 0 ∨ 0 ∨ 1, M2 = a ∨ b ∨ c = 1 ∨ 1 ∨ 0und M4 = a ∨ b ∨ c = 1 ∨ 0 ∨ 0

d) KKNF, das sind die konjunktiv verknüpften Maxterme.y = M0 ·M1 ·M2 ·M4 = (a ∨ b ∨ c) · (a ∨ b ∨ c) · (a ∨ b ∨ c) · (a ∨ b ∨ c)

e) Schaltung

Beide Schaltungen sind aber noch nicht minimal.

Aufgabe 6.1: Minimierung der Demokratieschaltung

Minimiere die KDNF aus Beispiel 6.2 mit Hilfe der Regeln der boolschen Algebra.

Lösung 6.1

y = abc ∨ abc ∨ abc ∨ abc (D1)

= abc ∨ abc ∨ ab(c ∨ c) (KP2)

= abc ∨ abc ∨ ab1 (N1)

= abc ∨ abc ∨ ab (2*ID1)

= abc ∨ abc ∨ ab ∨ abc ∨ abc (K2)

= abc ∨ abc ∨ abc ∨ abc ∨ ab (K1)

= bca ∨ bca ∨ acb ∨ acb ∨ ab (D1)

= bc(a ∨ a) ∨ ac(b ∨ b) ∨ ab (KP2)

= bc1 ∨ ac1 ∨ ab (N1)

= bc ∨ ac ∨ ab

Diese Art der Vereinfachung ist sehr umständlich und aufwendig.

P. Kreißig 2018/19 6 - 3

Informatik 10 7. KV-Diagramme

Info7 KV-Diagramme

• entwickelt 1952/53 von Karnough und Veitch

• dient der Vereinfachung und Reduzierung von KDNF-Termen

• Gesucht ist die kleinste Menge an Blöcken, die die Einsermenge vollständig überdeckt.(siehe Regeln)

7.1 Eine Eingangsvariable a y

Wertetabelle

a y

0 0

1 1

Boolsche Funktion

y = a

KV-Diagramm

a0 1

0 1

a y

0 1

1 0

y = a

a0 1

1 0

a y

0 1

1 1

y = 1

a0 1

1 1

1. Regel: Eine Variable, die im KV-Diagramm in ihrer negierten und ihrer nicht negiertenForm vorliegt, wird durch eine 1 ersetzt (KP2).

7.2 Zwei Eingangsvariablena

y

bWertetabelle

a b y

0 0 0

0 1 1

1 0 1

1 1 1

KDNF und boolsche Vereinfachung

y = ab ∨ ab ∨ ab ID1

= ab ∨ ab ∨ ab ∨ ab K2

= ab ∨ ab ∨ ab ∨ ab D1

= (a ∨ a)b ∨ a(b ∨ b) KP2

= 1 · b ∨ a · 1 N1

= b ∨ a

KV-Diagramm

a

b 0 1

0

1

0 1

1 1

a · 1 = a

1 · b = b

also y = a ∨ b

2.Regel: Einsen im KV-Diagramm dürfen lt. ID1 mehrfach ver-wendet werden.

3.Regel: Die „1“ aus Regel 1 kann wegen N1 weggelassen wer-den.

4.Regel: Die Terme aus verschiedenen Blöcken werden „verodert“

.

Die „0“alleine würde nach KKNF sofort a ∨ b liefern.

P. Kreißig 2018/19 7 - 1

Info

7. KV-Diagramme Informatik 10

7.3 Drei Eingangsvariablena

y

cb

Wertetabelle

a b c y

0 0 0 1

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 1

KDNF und boolsche Vereinfachung

y = abc ∨ abc ∨ abc ∨ abc ∨ abc ∨ abc 3·ID1, KP2, N1

= a ∨ ab D2

= (a ∨ a) · (a ∨ b) KP2

= 1 · (a ∨ b N1

= a ∨ b

KV-Diagramm

abc 00 01 11 10

0

1

1 1 1 0

1 1 1 0

a · 1 · 1 = a

1 · b · 1 = b also y = a ∨ b

5.Regel: Zwischen 2 benachbarten Feldern darf sich wegen Re-gel 1 nur eine Variable ändern. (Gray-Code)

6.Regel: Die gebildeten Blöcke müssen so groß wie möglich sein,damit möglichst viele Variablen rausfallen.Sie müssen rechteckig sein.Sie müssen Zweierpotenzen Einträge enthalten.

Der „Nuller“-Block alleine würde sofort a ∨ b liefern.

7.4 Vier Eingangsvariablen a

ycb

d

Wertetabelle

a b c d y

0 0 0 0 1

0 0 0 1 1

0 0 1 0 1

0 0 1 1 1

0 1 0 0 0

0 1 0 1 0

0 1 1 0 1

0 1 1 1 1

1 0 0 0 1

1 0 0 1 1

1 0 1 0 1

1 0 1 1 1

1 1 0 0 0

1 1 0 1 0

1 1 1 0 1

1 1 1 1 1

KV-Diagramm

yab

cd 00 01 11 10

00

01

11

10

1 1 0 1

0 1 0 1

1 1 0 1

1 0 0 1

Vierer

b d

ab

bc

Zweier

abc

abd (dieser entfällt

acd oder dieser)

also y = b d ∨ ab ∨ bc ∨ abc ∨ acd

7.Regel: Die gebildeten Blöcke können auch über die Ecken oderSeiten gehen.

Das Distributivgesetz liefert noch

y = b(d ∨ a ∨ c) ∨ ab(c ∨ d)

Die Nuller-Blöcke würden ergeben:

y = (a ∨ b) · (b ∨ c ∨ d) · (a ∨ b ∨ c ∨ d)

7 - 2 2018/19 P. Kreißig

Informatik 10 7. KV-Diagramme

Info

Aufgabe 7.1: Gerade BCD-Zahlen

BCD bedeutet Binary Coded Dezimal. Das heißt, jede Dezimalziffer wird durch 4 Bit kodiert.Gesucht ist eine Schaltung, die entscheidet, ob eine BCD-kodierte Zahl gerade ist (y = 1, fallsZahl gerade). Das eigentlich besondere hier ist, wie mit den Eingaben zu verfahren ist, bei denengar keine zugehörige BCD-kodierte Ziffer existiert, z.B. 1100 entspräche ja der 12, die keineDezimalziffer mehr ist. In diesem Fall schreibt man y = d für don’t care für ist egal. Für dieBlockbildung beim KV-Diagramm kann hier je nach Bedarf eine 1 oder 0 angenommen werden,um durch einen größeren Block zu einer stärkeren Vereinfachung zu kommen.

Lösung 7.1

Index a b c d y

0 0 0 0 0 1

1 0 0 0 1 0

2 0 0 1 0 1

3 0 0 1 1 0

4 0 1 0 0 1

5 0 1 0 1 0

6 0 1 1 0 1

7 0 1 1 1 0

8 1 0 0 0 1

9 1 0 0 1 0

10 1 0 1 0 d

11 1 0 1 1 d

12 1 1 0 0 d

13 1 1 0 1 d

14 1 1 1 0 d

15 1 1 1 1 d

yab

cd 00 01 11 10

00

01

11

10

1 1 d 1

0 0 d 0

0 0 d d

1 1 d d

Man erkennt, dass mit Hilfe der don’t care Fälleein Achter-Block gebildet werden kann. a, b undc fallen raus und es bleibt y = d, wie zu erwartenwar.Die Schaltung hierfür ist natürlich trivial.

Aufgabe 7.2: 7-Segment-Anzeige

Eine 7-Segment-Anzeige ist mit Hilfe einer Schaltung so anzusteuern,dass die Ziffern 0 bis 9 dargestellt werden können.Die Ziffern seien wieder BCD-kodiert. Jedes Segment stellt einen eigenenAusgang dar.Die Wertetabelle hat also folgendes Aussehen:

Eingangsbits Ausgänge

Index d c b a A B C D E F G

Die Schaltung ist zu minimieren.

Mit Hilfe der nebenstehenden Schaltung kann man in logisim testen, wie die einzelnen Segmenteangesteuert werden.

P. Kreißig 2018/19 7 - 3

Info

7. KV-Diagramme Informatik 10

Lösung 7.2

Index d c b a A B C D E F G

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

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

2 0 0 1 0 1 1 0 1 1 0 1

3 0 0 1 1 1 1 1 1 0 0 1

4 0 1 0 0 0 1 1 0 0 1 1

5 0 1 0 1 1 0 1 1 0 1 1

6 0 1 1 0 1 0 1 1 1 1 1

7 0 1 1 1 1 1 1 0 0 0 0

8 1 0 0 0 1 1 1 1 1 1 1

9 1 0 0 1 1 1 1 1 0 1 1

10 1 0 1 0 d d d d d d d

11 1 0 1 1 d d d d d d d

12 1 1 0 0 d d d d d d d

13 1 1 0 1 d d d d d d d

14 1 1 1 0 d d d d d d d

15 1 1 1 1 d d d d d d d

G

G

F

F

A

A

B

B

E

E

D

D

C

C

PunktA = a c ∨ ac ∨ b ∨ d

B = c ∨ ab ∨ a b

C = a ∨ b ∨ c

D = a c ∨ bc ∨ d ∨ ab ∨ abc

E = a c ∨ ab

F = d ∨ ac ∨ a b ∨ bc

G = ac ∨ bc ∨ d ∨ bc

Bei der Schaltung können die Konjunktionen mit gleicher Farbe mehrfach genutzt werden.

7 - 4 2018/19 P. Kreißig

Informatik 10 8. Auswahlschaltungen (MUX und DEMUX)

Info8 Auswahlschaltungen (MUX und DEMUX)

8.1 Multiplexer (MUX)

Oft wird eine Schaltung benötigt, die aus mehreren Eingangswerten einen Wert auswählt unddiesen am Ausgang ausgibt. Die Wahl des Eingangswertes muss kodiert übergeben werden. Diesleistet ein Multiplexer kurz MUX.

Der einfachste Multiplexer wählt aus Zwei Werten einen Wert aus. (2:1 MUX)

Aufgabe 8.1: 2:1 MUX

Entwickle eine Schaltung aus Und- und OderGattern, die aus zwei Werten x0 und x1 einen Wertausgibt. Die Kodierung erfolgt über einen weiteren Eingang z. Bei z = 0 wird der Wert von x0am Ausgang angezeigt, bei z = 1 der von x1.

Lösung 8.1

Wertetabelle

x0 x1 z y

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 0

1 1 0 1

1 1 1 1

KV-Diagramm

abc 00 01 11 10

0

1

0 0 1 1

0 1 1 0

y

y=ac ∨ bc

Schaltung

Mit zwei Bits z1, z0 könnte man nun 4 Eingämge kodieren und verteilen.

Aufgabe 8.2: 4:1 MUX

Entwickle nun eine Schaltung für einen 4:1 MUX.

8.2 Demultiplexer (DEMUX)

Soll nun ein Ergebnis auf verschiedene andere Nutzer (Monitor, Speicher, Drucker,) weiter ver-teilt werden, benötigt man einen Demultiplexer.

P. Kreißig 2018/19 8 - 1

Informatik 10 9. Bau einer 2-Bit-Alu

Info9 Bau einer 2-Bit-Alu

Im Kapitel 3 zur von Neumann Rechnerarchitektur wurde schon von der Alithmetisch-LogischenEinheit (ALU) gesprochen.

Diese wollen wir nun simulieren. Es geht nur um das Prinzip, deswegen ist unsere ALU ganzeinfach.

• Sie bekommt zwei 2-Bit-Zahlen a = a1 a0 und b = b1 b0 an die Eingänge.

• Das Ergebnis ist eine 2-Bit-Zahl y = y1 y0 .

• Die ALU kann folgende Operationen:Operation Besonderheiten

Addierer a+ b Übertragsflag

Subtrahierer a− b Vorzeichenflag

Multiplizierer a · b zwei Übertragsflags

Verdoppler 2 · a zwei Übertragsflags

Halbierer a : 2 Flag für 0, 5

Incrementierer a+ 1 Übertragsflag

Decrementierer a− 1 Vorzeichenflag

Und a& b

Oder a ∨ b

Negator ¬a

• Es gibt ein Statusregister, in dem zusätzliche Informationen wie Überträge (Carry), Vor-zeichen (Sign), 0, 5-Existenz (Half) u.a. bitweise abgespeichert werden.

Aufgabe 9.1: Erste Operationen

Öffne in Logisim eine neue Datei ALU.circ.Öffne dann im Pulldown-Menu Projekt mit Schaltung hinzufügen für jede Operation der ALUeine neue Schaltung und nenne sie Sub, Mul, Doppel, . . . . (Den Addierer bauen wir später.) Beiden Schaltungsoptionen sollte die Schaltung benannt werden. Auch die Ein- und Ausgangspinssollte man mit a1, a0 usw. benannt werden.

P. Kreißig 2018/19 9 - 1

Info

9. Bau einer 2-Bit-Alu Informatik 10

9.1 Halbadder (HA) und Volladder (VA)

Der Volladder reicht aus um beliebig lange ganze binäre Zahlen zu addieren. Der Vollständigkeithalber behandeln wir aber auch den Halbadder. Dieser addiert zwei einzelne Bits und gibt dasSummenbit und den Übertrag aus.

Halbadder

Wertetabelle

Übertrag Summe

a b c s

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

KV-Diagramm c

a

b 0 1

0

1

c

0

0

0

1

c = ab

KV-Diagramm s

a

b 0 1

0

1

s

0

1

1

0

s = ab ∨ ab

Volladder

Will man nun die nächsthöheren Stelen addieren, muss der Übertrag der vorigen Stelle mitaddiert werden. Das macht nun der Volladder.

Aufgabe 9.2: Volladder

Entwickle eine Schaltung, die zwei Bits a und b sowie einen Übertrag c0 addiert und dann einSummenbit s und den neuen Übertrag c1 ausgibt.

Baue anschließend einen 4-Bit-Addierer.

Lösung 9.2

Wertetabelle

c0 a b c1 s

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

KV-Diagramme

abc 00 01 11 10

0

1

0 0 1 0

0 1 1 1

c1

c1 = ab ∨ ac0 ∨ bc0

abc 00 01 11 10

0

1

0 1 0 1

1 0 1 0

s

s = abc ∨ abc ∨ abc ∨ abc

9 - 2 2018/19 P. Kreißig

Informatik 10 9. Bau einer 2-Bit-Alu

Info

Aufgabe 9.3: 2-Bit-Addierer

Nun sollte es nicht schwer fallen, die ALU um den 2-Bit-Addierer zu ergänzen.

P. Kreißig 2018/19 9 - 3

Informatik 10 10. Flip-Flop

Info10 Flip-Flop

• Bisher haben wir nur Schaltungen betrachtet, bei denen die Ausgabe von den Eingangszu-ständen abhängt. Solche Schaltungen nennt man Schaltnetze

• Nun soll die Ausgabe auch den bisherigen Ausgangszustand berücksichtigen.Solche Schaltungen nennt man Schaltwerke

• Für solche Schaltwerke benötigt man Speicherbausteine. Diese können 1 Bit, also eine 0oder eine 1 speichern. Eingenlich unterscheidet man nochh Latches und Fliflops, jenach-dem, ob sie während eines gesamten Taktes oder nur bei auf- oder absteigender Taktflankeansteuerbar sind. Wir verwenden die Begriffe zunächst synonym.

Exemplarisch betrachten wir den

10.1 NOR-Latch

Man kann einen Latch auch mit NAND- oder XOR-Gattern bauen.

Die Schaltung geht zurück auf Eccles und Jordan, die die erste Flip-Flop-Schaltung mitRöhren im Jahre 1918 entwickelten. Entscheidend ist, dass die Ausgänge wieder auf die Eingängezurückgekoppelt werden.

≥ 1 bcR

Q

≥ 1 bcS

Q

Um das Schaltverhaltenzu analysieren, spaltenwir eine Rückkopplungauf. Diese können wirdann explitit mit einemWert belegen.

≥ 1 bcR

Q

≥ 1 bcS

QQv

Wir nennen diesen zusätzlichenEingang Qv, da es der Vorzustand des Ausgangs Q ist. Nun kannman zuerst die Eingabe von Qv und S auswerten und erhält Q welches zusammen mit R denWert von Q ergibt.

R S Qv Q Q

0 0 0 0 0 1

1 0 0 1 1 0

2 0 1 0 1 0 instabil

3 0 1 1 1 0

4 1 0 0 0 1

5 1 0 1 0 1 instabil

6 1 1 0 0 0

7 1 1 1 0 0 instabil

Die instabilen Q sind wieder Eingänge des unteren NOR-Gatters, erst dann ergibt sich ein sich nicht mehr verän-dernder Gesamtzustand des Flip-Flops. An dieser redu-zierten Wertetabelle kann man die Funktionen ablesen.

R S Q Q}

Halten (Speichern)0 0 0 0 1

1 0 0 1 0

3 0 1 1 0 Setzen

4 1 0 0 1 Rücksetzen

6 1 1 0 0 Verboten!

Der Zustand 6 verbietet sich aus zweierlei Gründen. Zum Einen solten sich logischerweise Q undQ unterscheiden. Außerdem führt der Übergang in/vom Zustand 6 zu Hazards, die die Schaltungin einen schwingenden undefinierten Zustand bringen.

Wird die Schaltung in dieser Form betrieben, ist der verbotene Zustand zu vermeiden. Dieserreicht man z.B. man durch eine Erweiterung der Schaltung, wie wir später sehen werden.

P. Kreißig 2018/19 10 - 1

Info

10. Flip-Flop Informatik 10

10.2 Zustandsübergangsgraph (ZÜG), Anregungstabelle,Zustandsübergangstabelle (ZÜT)

Aus der reduzierten Wertetabelle lassen sich andere Darstellungsschemen ableiten, die wir auchbei weiteren Schaltungen benötigen werden.

Der Zustandsübergangsgraph zeigt an,mit welchen äußeren Belegungen für R undS man auf die inneren Zustände Q = 0 undQ = 1 kommt.Mögliche Übergänge werden durch Pfeiledargestellt, an denen die entsprechendenEingangskombinationen stehen.

Q = 0 Q = 1

(RS =)01

10

00, 10 00, 01

Die Anregungstabelle zeigt, mit wel-chen Belegungen für R und S man vomZustand Q in einen Folgezustand Q+ ge-langt.Dabei ergeben sich auch don’t care-Belegungen.

Q Q+ R S

0 0 d 0

0 1 0 1

1 0 1 0

1 1 0 d

Die Zustandsübergangstabelle be-schreibt die Beziehung zwischen aktuellemZustand Q und Folgezustand Q+.Für die verbotenen Eingangsbelegungensetzt man den Folgezustand don’t car.

R S Q Q+

}

Speichern0 0 0 0

0 0 1 1}

Setzen0 1 0 1

0 1 1 1}

Rücksetzen1 0 0 0

1 0 1 0}

Verboten1 1 0 d

1 1 1 d

Hieraus erhält man ein KV-Diagramm undeine Schaltfunktion für eine Ersatzschal-tung.

RS

Q

Q+

00 01 11 10

0

1

0 1 d 0

1 1 d 0Q+ = QR ∨ S

Man schreibt als Schaltzeichen für ein RS-Flipflop dann:R

S

Q

Q

10.3 D-Latch

Negiert man beim RS-Latch den R-Eingang, kann der vebotene Zustand nicht mehr auftretenund man benötigt nur noch einen Eingang D (Delay).

R

S

Q

Q

D bc

oder einfach nur

DQ

Q

Legt man an D kurz eine Null an, ist Null gespeichert, legt man kurz eine Eins an, ist Einsgespeichert.

10 - 2 2018/19 P. Kreißig

Informatik 10 10. Flip-Flop

Info

10.4 Takt

Alle Speicherbausteine können auch getaktet werden. Das heißt, nur wenn ein zusätzlicher Taktein-gang auf „1“ steht, dann wird der neue Zustand angenommen.

R

S

Q

Q

&R

&S

TDen Takteingang kenn-zeichnet man als kleinesDreieck.

R

S

Q

Q>Takteingang

DQ

Q

&DT

DQ

Q>Takteingang

10.5 Zählschaltung

Mit jedem Takt soll der Ausgangszustand um eins weiter zählen und nach der 7 von vornebeginnen. Die Ausgabe hängt also nur vom Zustand des Automaten, nicht von (verschiedenen)Eingaben ab. Solche Automaten nennt man auch Moore-Automaten.

Zustandsübergangsgraph (ZÜG)

Der Zustandsübergangsgraph visualisiert das Problem. Der Automat muss sich den aktuellenZustand seiner Speicherbausteine merken und dann abhängig von dem Eingabewert in einenFolgezustand übergehen.

Sn

011

Zustand

Ausgang

S0

000 S1

001

0

S2

010

1

S3

011S4

100

S5

101

S6

110

S7

111Den Takt als Eingabe lässt man hier weg.

Zustandsübergangstabellen (ZÜT)

unkodiert Zur Kodierung sind 3 Flipflops notwendig.

Vorzustand Nachzustand Ausgabe Vorzustand Nachzustand Ausgabe wieNachzustand

abc a+b+c+ y2y1y0

S0 S1 000 000 001 000

S1 S2 001 001 010 001

S2 S3 010 010 011 010

S3 S4 011 011 100 011

S4 S5 100 100 101 100

S5 S6 101 101 110 101

S6 S7 110 111 000 111

S7 S0 111 110 111 110

P. Kreißig 2018/19 10 - 3

Info

10. Flip-Flop Informatik 10

KV-Diagramme

Jedes Flipflop bekommt nun ein eigenes KV-Diagramm. Dabei wird aus der obigen Tabelle füra+ nur das jeweils linke Bit übernommen, für b+ das jeweils mittlere Bit. (beim D-Flipflop)

bca

a+

00 01 11 10

0

1

0 0 1 0

1 1 0 1

a+ = bc ∨ ac ∨ abc

bca

b+

00 01 11 10

0

1

0 1 0 1

0 1 0 1

b+ = bc ∨ bc

bca

c+

00 01 11 10

0

1

1 0 0 1

1 0 0 1

c+ = c

Da die Ausgabe dem Folgezustand entspricht , gilt y2 = a+, y1 = b+ und y0 = c+.

Aus den Schaltfunktionen entwickeln wir die Schaltung.

Schaltung

10 - 4 2018/19 P. Kreißig

Informatik 10 10. Flip-Flop

Info

10.6 Zahlenschloss

Einen Automaten, dessen Folgezustand von seinem Augenblicklichen Zustand und von der Ein-gabe abhängt, nennt man einen Mealy-Automaten.

Ein Beispiel wäre ein Zahlenschloss. Dieses soll nur dann eine „1“ liefern, wenn in einer Folge vonEingabezeichen die Folge 0− 0− 3− 2 auftaucht. In allen anderen Fällen ist die Ausgabe „0“ .

Zustandsübergangsgraph (ZÜG)

S0 S1 S2 S3

0|01, 2, 3|0

0|0

0|0 3|0

1, 2, 3|0

1, 2|0

0|01, 3|0

2|1 S

Eingabe|AusgabeS0 Startzustand

S1 "0" wurde eingegeben.

S2 "0,0" wurde eingegeben.

S2 "0,0,3" wurde eingegeben.

S3 "0,0,3,2" wurde eingegeben.

Uncodierte Zustandsübergangstabelle

Zur Eingabe der Zahlen 0-3 sind zwei Eingabebits x1, x0 notwendig.

S+ nach Eingabe von Ausgabe nach Eingabe von

x1x0 x1x0 x1x0 x1x0 x1x0 x1x0 x1x0 x1x0

S 00 01 11 10 00 01 11 10

S0 S1 S0 S0 S0 0 0 0 0

S1 S2 S0 S0 S0 0 0 0 0

S3 S1 S0 S0 S0 0 0 0 1

S2 S2 S0 S3 S0 0 0 0 0

Codierte Zustandsübergangstabelle

Nun werden die Zustände codiert.Für die 4 inneren Zustände S0 - S3 benötigt man 2 Flipflops a und b (z.B. D-Flipflops).

S+ nach Eingabe von Ausgabe nach Eingabe von

x1x0 x1x0 x1x0 x1x0 x1x0 x1x0 x1x0 x1x0

aSb 00 01 11 10 00 01 11 10

00 01 00 00 00 0 0 0 0

01 10 00 00 00 0 0 0 0

11 01 00 00 00 0 0 0 1

10 10 00 11 00 0 0 0 0

↑↑ ↑↑ ↑↑ ↑↑

a+b+ a+b+ a+b+ a+b+

Folgezustände für ab

P. Kreißig 2018/19 10 - 5

Info

10. Flip-Flop Informatik 10

KV-Diagramme

Jedes Flipflop bekommt nun ein eigenes KV-Diagramm. Dabei wird aus der obigen Tabelle füra+ nur das jeweils linke Bit übernommen, für b+ das jeweils rechte Bit. (beim D-Flipflop)Als KV-Diagramm für die Ausgabe kann gleich der rechte Teil der letzten Tabelle übernommenwerden.

a+ x1x0

ab 00 01 11 10

00

01

11

10

1

1 1

b+ x1x0

ab 00 01 11 10

00

01

11

10

1

1

1

a+ = abx1x0 ∨ abx1x0 ∨ abx1x0 b+ = abx1x0 ∨ abx1x0 ∨ abx1x0

Ausgabe: Ausgabe = abx1x0

Schaltung

Der Reset -Eingang wäre ein zusätzliche Erweiterungsmöglichkeit für einen Speicherbaustein. Hierist er nicht unbedingt nötig.

Das zusätzliche D-Latch oben rechts ist nötig, damit die Ausgabe „1“ erst nach der letztenTakteingabe geschaltet wird.

10 - 6 2018/19 P. Kreißig

Informatik 10 10. Flip-Flop

Info

Aufgabe 10.1: Telefonauswahl

Entwickle eine Schaltung, die nach Eingabe einer „110“ mit dem Leuchten einer Lampe reagiert,auf die Eingabe einer „112“ mit dem Leuchten einer zweiten Lampe.

Die Eingabe soll auf einer Tastatur mit den Ziffern 0 bis 3 erfolgen, also nicht dual.

Solange nicht eine gültige Zahl gewählt wurde, leuchtet eine dritte Lampe.

Lösung 10.1

Weil die Tasten nur einen kurzen Impuls geben, müssen die eingegeben Tastenwerte zwischengespeichert werden mit je einem D-Latch. Statt der Eingaben der Dualzahlen kann man sich beiden Schaltfunktionen für die eigentlichen D-Latches a und b auf die Eingänge für 0, 1, oder 2beschränken.

P. Kreißig 2018/19 10 - 7