Technische Informatik - Schulportal Bremerhaven

Werbung
Technische Informatik
Ziffern, Zahlen, Zahlensysteme
Bits und Bytes
Elektrische Größen bestehen oftmals aus zwei Zuständen: Strom oder kein Strom, Spannung
oder keine Spannung, elektrisches Feld vorhanden oder nicht vorhanden, an oder aus. Durch
geschicktes Aneinanderreihen solcher Zustände mit Hilfe elektrischer Schaltungen lassen sich
Informationen verarbeiten und speichern.
Was ist ein Bit
Stellvertretend für die beiden Grundzustände benutzt man die beiden Ziffern 1 und 0. Ein Bit
ist die kleinste Speichereinheit in der EDV. In einem Bit kann eine Information gespeichert
werden. Diese Information kann zwei Zustände haben, nämlich AN oder AUS, also 1 oder 0.
Da man jedoch mit dieser Information relativ wenig anfangen kann, hat man Bits zu Bytes
zusammengefasst.
Was ist ein Byte
Eine Gruppe von 8 Bits heißt 1 Byte. Mit 1 Byte kann man 256 verschiedene Zustände darstellen. Warum 256 verschiedene Zustände? Die kleinste Zahl, die mit 8 Bits dargestellt werden kann, ist die dezimale 0, in Dualschreibweise 0000 0000. Die größte darstellbare Zahl ist
die die dezimale 255, in Dualschreibweise 1111 1111.
Aus Bits erzeugte Zahlen können wie im "normalen" Dezimalsystem verwendet werden. Man
kann sie addieren, subtrahieren, multiplizieren und dividieren.
Kilobyte, Megabyte, Gigabyte
Ein Kilobyte sind ca. tausend Byte. Genauer: 210 Byte = 1.024 Byte
Ein Megabyte sind ca. eine Millionen Byte. Genauer: 220 Byte = 1.048.576 Byte
Ein Gigabyte sind ca. eine Milliarde Byte. Genauer: 230 Byte = 1.073.741.824 Byte
Zahlensysteme
Zählen im Dezimalsystem
Wir beginnen bei 0 und zählen dann 1, 2, 3, usw. bis 9. Jetzt gehen uns die Ziffern aus! Um
weiter zählen zu können, nimmt man eine zweite Ziffer zu Hilfe (Zehnerstelle) und beginnt
mit der Einerstelle wieder bei 0. Das ergibt dann 1 und 0 also 10. Weiter geht es mit 11, 12,
13 bis 19. Die Zählerei klappt bis 99, ab jetzt nehmen wir noch eine dritte Ziffer dazu, also
100.
Zählen im Dualsystem
Auch hier beginnen wir mit der 0 und zählen dann bis 1. Da wir nur 2 Ziffern haben, besteht
bereits jetzt die Notwendigkeit, eine zweite Ziffer zu verwenden. Nach 0 und 1 kommen dann
also 10 und 11. Wieder reichen die Stellen nicht! Also noch eine Ziffer dazu: 100, 101, 110,
111, usw.
Hans Wypior
- 1 -
15. Mai 2013
Technische Informatik
Vergleich Dezimal- und Dualsystem
Wie nachfolgend zu erkennen ist, benötigen die dezimalen Ziffern 8 und 9 mindestens 4 Bits
(1 Halbbyte) zur Darstellung im Binärsystem. Alle kleineren Ziffern werden deshalb mit führenden Nullen gespeichert.
Die als Pseudotetraden bezeichneten Kombinationen von 0 und 1 werden für die Darstellung
dezimaler Ziffern nicht mehr benötigt. Würde man diese Halbbytes nicht zur Zahldarstellung
verwenden, so müßte z.B. die dezimale Zahl 12 mit 0001 0010 anstelle von 1100 gespeichert
werden.
Man erkennt die Speicherplatzverschwendung!
Um alle Dezimalziffern speichern zu können, gleichzeitig aber keinen Speicher zu verschwenden, hat man sich bei der Computerentwicklung sehr frühzeitig für die Verwendung
des Hexadezimalsystems als Standard entschieden.
Das Hexadezimalsystem
4 Bits kann man auf 16 verschiedene Arten miteinander kombinieren. Ordnet man jeder
Kombination eine Ziffer zu, so erhält man ein Zahlensystem mit 16 Ziffern, das sogenannte
Sedezimal- oder Hexadezimalsystem.
Dezimal Dual Hexadezimal
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
Tetraden
Pseudotetraden
Das Hexadezimalsystem kann man als abgekürzte Schreibweise der Halbbytes des Dualsystems verstehen So bedeutet die hexadezimale Zahl AFFE nichts anderes als den binären
Speicherinhalt 1010 1111 1111 1110.
Hans Wypior
- 2 -
15. Mai 2013
Technische Informatik
Ziffern und Zahlen
Das Dezimalsystem benutzt bekanntlich zur Darstellung von dezimalen Zahlen die 10 Ziffern
0,1,2,...,9. Dabei hat die Stelle, die eine Ziffer in einer dezimalen Zahl einnimmt eine Bedeutung: Sie ist Vielfache einer Potenz zur Basis 10.
Beispiel für eine Zahl des 10er-Systems:
3
2
1
0
4235 = 4 * 10 + 2 * 10 + 3 * 10 + 5 * 10 .
Was für das Dezimalsystem gilt, gilt für jedes andere Zahlensystem genauso.
So hat das System mit der Basis 2 genau 2 Ziffern, nämlich 0 und 1. Das System zur Basis 3
besitzt die 3 Ziffern 0,1,2. Das Hexadezimalsystem mit der Basis 16 benutzt die 16 Ziffern
0,1,...,E,F (siehe oben), wobei die Buchstaben Symbole für die auf die Ziffer 9 folgenden Ziffern darstellen. Man hätte ebensogut die Symbole "Kreis", "Quadrat", "Rechteck", ... nehmen
können (Irgendein Symbol musste man ja wählen. Die Entscheidung, Buchstaben zu benutzen
war reine Willkür!).
Beispiel für eine Zahl des Dualsystems:
7
6
5
4
3
2
1
0
1101 0110 = 1 * 2 + 1 * 2 + 0 * 2 + 1 * 2 + 0 * 2 + 1 * 2 + 1 * 2 + 0 * 2
Basistausch
Die Umrechnung von binären in dezimale Zahlen
Die Potenzschreibweise kann man jetzt zur Umrechnung vom Dual- ins Dezimalsystem benutzen. Man beachte, dass auf der linken Seite des Gleichheitszeichens Ziffern des Dualsystems, auf der rechten Seite Ziffern des Dezimalsystems stehen. Wenn wir die kleine Rechnung auf der rechten Seite der Gleichung durchführen, bekommen wir den entsprechenden
dezimalen Wert:
1101 01102 = (1*128 + 1*64 + 0*32 + 1*16 + 0*8 + 1*4 + 1*2 + 0*1)10 = 21410
Die duale Zahl 1101 0110 entspricht also der dezimalen Zahl 214.
Die Umrechnung von dezimalen in binäre Zahlen
Bei der Umrechnung der Dezimalzahlen verwenden wir die "Division mit Rest" aus der
Grundschule. Wir teilen die Zahl solange durch 2, bis als Ergebnis 0 herauskommt und merken uns dabei den Rest. Als Beispiel soll die dezimale Zahl 13 dienen.
13 : 2 = 6 Rest 1
6 : 2 = 3 Rest 0
3 : 2 = 1 Rest 1
1 : 2 = 0 Rest 1
Die Reste von unten nach oben aneinander gereiht ergeben dann die Dualzahl 1101.
Hans Wypior
- 3 -
15. Mai 2013
Technische Informatik
Die Addition von Dualzahlen
Die Addition im Zweiersystem funktioniert wie die Addition von Dezimalzahlen:
0111
+ 0100
---1011
Bei der Addition von 2 Ziffern im Dezimalsystem kann ein Übertrag entstehen, wie z.B. bei
5 + 5 = 0 Übertrag 1. Da der Übertrag zur nächst höheren Stelle hinzuaddiert wird, ergibt sich
5 + 5 = 10.
Dasselbe gilt auch im Dualsystem: 1 + 1 = 0 Übertrag 1, also 1 + 1 = 10.
Vorsicht Überlauf!
Die Addition ist im Prinzip problemlos. Es gibt allerdings einen Haken an der Sache: Die Addition funktioniert in technischen Geräten, wie Taschenrechner oder Computer nur innerhalb
eines bestimmten Zahlenbereiches.
Woran liegt das? In der Theorie können wir beliebig große Zahlen darstellen. In der Praxis ist
aber die maximale Größe einer Zahl durch den begrenzt vorhandenen Speicher eingeschränkt. Um die dadurch entstehenden Probleme zu studieren, schränken wir hier den Speicher auf ein Byte ein.
Bei einem Byte ist unsere größte darstellbare Zahl die 1111 1111, also dezimal 255.
Was passiert nun, wenn wir eine 0000 0001, also 1, addieren? Das Verrückte ist: es kommt
0000 0000, also 0 heraus.
Da binär bekanntlich 1+1=0 Übertrag 1 ergibt, erhält man als Ergebnis in Wirklichkeit nicht
0000 0000, sondern 0000 0000 Übertrag 1. Dieser letzte Übertrag kann jedoch nicht mehr
gespeichert werden und wird deshalb einfach ersatzlos gestrichen.
Komplemente
Subtraktion, Komplementbildung
Die Subtraktion wird in einem Computer auf die Addition negativer Zahlen zurückgeführt.
Die Darstellung negativer Zahlen wiederum erfolgt durch die sogenannte Komplementbildung, speziell für Dualzahlen durch Bildung von Einer- und Zweierkomplement. Was es mit
dem Komplement auf sich hat, soll an einem Beispiel mit Hilfe von Dezimalzahlen verdeutlicht werden:
Hans Wypior
- 4 -
15. Mai 2013
Technische Informatik
herkömmliche
Rechnung
3265
- 1546
Komplementrechnung
3265
+ 8453
Neunerkomplement:
Ergänzung jeder Ziffer auf die 9
Kein Übertrag
Zehnerkomplement:
Ergänzung jeder Ziffer auf die 10
ggf. Übertragsbildung
-----11718
+
1
-----11719
- 10000
------
------
1719
1719
Was ist der Sinn der Rechnung mit den Komplementen? Zunächst erkennt man, dass nur die
10000 subtrahiert werden muss. Während der gesamten Rechnung entfällt das "Borgen" von
Ziffern, weil die Ergänzung auf das Neunerkomplement kein Borgen notwendig macht
Aber das eigentlich Interessante ist, dass diese Methode in jedem Zahlensystem funktioniert.
Man muss lediglich folgende Vorgehensweise einhalten:
•
•
•
Von der zu subtrahierenden Zahl wird das Komplement durch Ergänzung auf die
höchste Ziffer des betreffenden Zahlensystems gebildet (Dezimalsystem: Neunerkomplement)
Durch Addition von 1 ergibt sich das Komplement bezogen auf die Basis (Dezimalsystem: Zehnerkomplement)
Subtraktion derjenigen Potenz der Basis, die um eine Stelle größer ist, als die größte
an der Rechnung beteiligten Zahl (im Beispiel: Subtraktion von 10000 = 104, größte
beteiligte Zahl: 3265)
Hans Wypior
- 5 -
15. Mai 2013
Technische Informatik
Negative Zahlen
Subtraktion von Dualzahlen
Wir übertragen unsere Erkenntnisse auf ein Beispiel mit Dualzahlen und gehen systematisch
anhand der obigen Anleitung vor.
Berechnet werden soll
(89 - 59)10 = (0101 1001 - 0011 1011)2 = 3010 = 0001 11102
1. Da die höchste Ziffer im Zweiersystem die 1 ist, müssen wir die zu subtrahierende
Zahl ziffernweise auf 1 ergänzen. Wir erhalten das Einerkomplement
2. Durch Addition von 1 ergibt sich das Zweierkomplement
3. Subtraktion der Potenz 28 liefert das Ergebnis
herkömmliche
Rechnung
Komplementrechnung
0101 1001
0101 1001
- 0011 1011
+ 1100 0100
Einerkomplement:
Ergänzung jeder Ziffer
auf die 1
Schritt 1
Zweierkomplement:
Ergänzung jeder Ziffer
auf die 210 = 102
Schritt 2
--------1 0001 1101
+
1
--------1 0001 1110
Schritt 3
- 1 0000 0000
---------
---------
0001 1110
0001 1110
Ein genialer Schachzug
Die Bildung des Einerkomplementes erfolgt, wie oben aus dem Beispiel zu entnehmen ist,
einfach durch Vertauschen von 1 und 0 der gegebenen Zahl. Die geniale Idee ist nun folgende:
Wenn in einem Computer (bzw. Taschenrechner) eine Zahl mit 1 Byte Breite dargestellt wird,
so wird das Ergebnis unter Schritt 1 schon nicht mehr vollständig gespeichert. Das führende
Bit entfällt wegen der nicht vorgesehenen Speicherbreite. Damit braucht aber die Subtraktion
unter Schritt 3 nicht mehr ausgeführt zu werden!
Fazit: Ein Computer subtrahiert Zahlen, ohne subtrahieren zu müssen. Das Ergebnis kommt
alleine durch Bitinvertierung und Additionen zustande!
Hans Wypior
- 6 -
15. Mai 2013
Technische Informatik
Negative Dualzahlen
Bekanntlich kann man die Subtraktion positiver Zahlen durch die Addition negativer Zahlen
ersetzen. Da bei fester Stellenzahl die Subtraktion einer Dualzahl durch die Addition ihres
Zweierkomplementes ersetzt werden kann, liegt es nahe, das Zweierkomplement als negative
Zahl zu definieren.
Beispiel:
- 5010 = -(0011 0010)2 = (1100 1101 + 1)2 = (1100 1110)2
Positive und negative Zahlen gleichzeitig
Besitzt eine Zahl die Breite von 1 Byte und sind
positive und negative Zahlen zugelassen, so müssen die
256 möglichen Kombinationen von 0 und 1 in zwei
Teile zerlegt werden, nämlich in 128 positive und 128
negative Zahlen.
Man erkennt unschwer, dass positive Zahlen an der
führenden 0, negative Zahlen an der führenden 1 zu
identifizieren sind.
Bereich positiver Zahlen
dezimal
0 .. 127
binär
0000 0000 .. 0111 1111
Bereich negativer Zahlen
-1 .. -128
1111 1111 .. 1000 0000
Mehrere Bytes umfassende Zahlen
Für Zahlen, die größer als ein Byte sind, ändert sich sinngemäß nichts. Der zur Verfügung
stehende Bereich wird bei Zulassen von negativen Zahlen ebenfalls in zwei gleich große Teile
geteilt. Wie schon oben beschrieben, beginnen positive Zahlen mit einer führenden 0, negative mit einer führenden 1.
Dasjenige Byte, das das Vorzeichenbit enthält, heißt Most significant Byte (kurz MSB),
dasjenige, das die Potenz 20 enthält, heißt Least significant Byte (kurz LSB).
Sinnvollerweise rechnet man bei umfangreicherem Speicher im Hexadezimalsystem.
Beispiel:
Für die Darstellung von Zahlen stehen 3 Bytes zur Verfügung. Welche hexadezimale Darstellung hat die dezimale Zahl –7523?
- 752310
Hans Wypior
=
=
=
=
-(1D63)16
-(001D63)16
(FFE29C + 1)16
FFE29D16
7523 in hexadezimale Darstellung bringen
dann auf 3 Bytes ergänzen
15-er Komplement bilden
16-er Komplement liefert das Ergebnis
- 7 -
15. Mai 2013
Technische Informatik
Bauelemente
Nachfolgend werden die Bauelemente Gatter und Flipflop beschrieben. Flipflops sind Speicherbausteine, Gatter verknüpfen binäre Eingangssignale zu einem Ausgangssignal. Die in
der Technik gebräuchlichsten Gatter sind Und- und Oder-Gatter sowie ihre Negate Nand- und
Nor-Gatter. Gatter besitzen mindestens 2 Eingänge. Im Handel kann man Gatter mit bis zu 20
Eingängen erhalten.
Das Und-Gatter
Wahrheitstafel
Merke: Ein Und-Gatter besitzt an seinem Ausgang genau dann den Zustand logisch 1,
wenn alle Und-Gatter-Eingänge logisch 1 sind.
Das Oder-Gatter
Wahrheitstafel
Merke: Ein Oder-Gatter besitzt an seinem Ausgang genau dann den Zustand logisch 0,
wenn alle Oder-Gatter-Eingänge logisch 0 sind.
Das Flipflop
Das Flipflop ist ein Ein-Bit-Speicher. Es kann an seinem Ausgang den logischen Zustand 0
oder 1 annehmen. Der invertierte Ausgang besitzt immer genau den entgegengesetzten Zustand.
Wird der Takteingang mit einem Rechteckimpuls getaktet, so ändert das Flipflop seinen Zustand. Die Zustandsänderung erfolgt je nach Beschaltung der Vorbereitungseingänge. Der
Hans Wypior
- 8 -
15. Mai 2013
Technische Informatik
Begriff "toggeln" besagt, dass das Flipflop nach jedem Takt den Zustand des Ausgangs ändert
(aus 1 wird 0, aus 0 wird 1). Der Takteingang reagiert dabei nicht auf den Signalpegel, sondern auf die Taktflanke. Im vorliegenden Schaltsymbol handelt es sich um die fallende Taktflanke. Man erkennt dies am schwarz ausgefüllten Dreieck des Takteingangs. Ein nicht ausgefülltes Dreieck steht für die steigende Taktflanke.
Dynamische Schaltungen
Das Schieberegister
Ein Schieberegister besteht aus mehreren Flipflops, die derart verschaltet sind, dass mit jedem
Takt der Inhalt der Flipflops um ein Bit nach rechts geschoben wird. Das letzte Bit entfällt.
Sinnvollerweise werden Nullen nachgeschoben (also J=0, K=1).
Wird der Inhalt des Schieberegisters als Binärzahl verstanden, so halbiert sich nach jedem
Takt der Wert der Zahl. Das Schieberegister kann daher auch als "Teiler durch 2" verwendet
werden.
Das Ringschieberegister
Beim Ringschieberegister wird das letzte Bit beim Schiebevorgang in das erste Flipflop geschoben. Besteht ein Ringschieberegister z.B. aus 4 Flipflops, so ist nach vier Takten wieder
der ursprüngliche Inhalt vorhanden.
Wird nur 1 Bit gesetzt, so stellt das Ringschieberegister ein Lauflicht dar.
Hans Wypior
- 9 -
15. Mai 2013
Technische Informatik
Der Dualzähler
Der Dualzähler ändert automatisch die Zustände der Flipflops derart, dass alle Dualzahlen
von 0 bis zur maximalen von der Anzahl der Flipflops abhängigen Zahl in der natürlichen
Reihenfolge angezeigt werden.
Funktionsweise des Zählers:
Die fallenden Taktflanken bewirken eine Zustandsänderung des jeweiligen Flipflops. Wie
man dem unten stehenden Bild entnehmen kann, halbiert sich die Taktanzahl pro Zeiteinheit
mit zunehmender Zweier-Potenz. Der Zähler ist deshalb auch als Frequenzteiler einsetzbar.
Dualzähler von 0 .. 9
Der vorliegende Dualzähler zählt von 0 bis 9 und bildet damit die Dezimalziffern ab. Um zu
erreichen, dass die 9 als letzte Ziffer angezeigt wird, wird der Zustand 1010 (dezimal 10)
zum Erzeugen eines Reset-Signals abgefragt.
Funktionsweise der Resetschaltung:
Ein UND-Gatter liefert bekanntlich genau dann eine 1 am Ausgang, wenn alle Eingänge 1
sind (sonst ist es immer 0!). Da nur bei der Binärzahl 1010 der Reset erfolgen soll, darf der
UND-Gatterausgang auch nur bei dieser Zahl auf 1 wechseln. Die für die Eingänge notwendigen Einsen sind bei den Flipflops 2 1 und 23 am Ausgang, bei den Flipflops 2 0 und 2 2 am
invertierten Ausgang zu finden.
Nun ist aber der Reset-Eingang der Flipflops 0-sensitiv. Deshalb muß das Signal am UNDGatter-Ausgang noch invertiert werden, weshalb gleich der invertierte Ausgang benutzt wird.
Hans Wypior
- 10 -
15. Mai 2013
Technische Informatik
Statische Schaltungen
Das Nandgatter als Resetschaltung beim obigen Dualzähler stellt eine einfache statische
Schaltung dar. Abhängig von den Eingangssignalen wird ein Ausgangssignal generiert. Die
Schaltungsentwicklung soll nun systematisiert werden.
Zur Ermittlung der notwendigen Steuerschaltung legt man eine Tabelle an, die aus allen
Kombinationen von Eingangssignalen und dem gewünschten Ausgangssignal besteht. Das
Ausgangssignal ist damit eine Funktion der Eingangssignale. Man bestimmt also aus der Tabelle zuerst die Schaltfunktion und entwickelt aus dieser die Gatterschaltung.
Beispiel:
Gegeben sind drei Flipflops mit den Bezeichnungen a,b,c.
Die Funktion f erhält man nun, indem alle Konjunkte bestimmt werden, die eine 1 als Ausgangssignal liefern. Im vorliegenden Beispiel kann die Funktion den Wert 1 aus den Konjunk––
–
–
ten a b c oder a b c oder a b c erhalten.
–
–
––
Also ist die Funktion genau dann 1, wenn a b c = 1 oder a b c = 1 oder a b c = 1 gilt. Ansonsten ist sie 0.
Hat man den Schaltterm aus der Tabelle entnommen, kann man die Gatterschaltung zeichnen:
Hans Wypior
- 11 -
15. Mai 2013
Technische Informatik
Normalformen
Ein logischer Ausdruck der Form
heißt disjunktive Normalform ( kurz
DN ), wenn alle Ki paarweise nicht äquivalente Konjunktionsterme sind.
Beispiele für disjunktive Normalformen:
Eine disjunktive Normalform einer Funktion f(a1,a2,...,an) heißt kanonisch ( oder ausgezeichnet ), kurz KDN, wenn jeder der vorhandenen Konjunktionsterme alle n Variablen enthält und
keine zwei Konjunktionsterme äquivalent sind.
Beispiel für eine kanonische disjunktive Normalform einer Funktion f(a,b,c):
Ein aus einer vollständigen Wahrheitstafel entnommener Schaltterm liegt in der kanonischen
disjunktiven Normalform vor.
Die Konjunktionsterme einer KDN heißen n-stellige Minterme.
Da die Belegung der Variablen, die den Wert 1 für einen Minterm liefert, eindeutig ist, charakterisiert sie das entsprechende Konjunkt. Übersetzt man das zugehörige Binärmuster in
einen dezimalen Wert, so kann man auf die aufwendige Schreibweise mit Hilfe der Variablen
und ihrer Negate ganz verzichten. Es muß nur klar sein, von welchen Variablen der Minterm
abhängt.
Beispiel:
In Mintermschreibweise:
Hans Wypior
- 12 -
15. Mai 2013
Technische Informatik
Boole'sche Algebra
Boole' sche Funktionen
Die Verknüpfung von zwei Boole'schen Variablen a und b kann auf 16 verschiedene Arten
erfolgen, die durch die nachfolgend aufgeführten zweistelligen Funktionen f0 bis f15 beschrieben werden.
Für einige der zweistelligen Boole'schen Funktionen werden Operator-Symbole und besondere Namen benutzt, wobei die Operatoren-Schreibweisen unterschiedlich gehandhabt werden.
Gesetze der Boole'schen Algebra
Nachfolgend sind die Gesetze der Boole'schen Algebra mit den zweistelligen Verknüpfungsoperationen UND und ODER sowie der einstelligen Verknüpfung NICHT aufgeführt.
Hans Wypior
- 13 -
15. Mai 2013
Technische Informatik
Schaltungsvereinfachung
Die aus einer Tabelle entnommene Normalform einer Funktion f stellt in aller Regel nicht die
einfachste Schaltung dar. Mit Hilfe der Gesetze der Boole'schen Algebra kann man den gegebenen Term durch Äquivalenzumformungen soweit verändern, dass der Aufwand an logischen Gattern möglichst gering wird.
Ein Beispiel in 3 Varianten:
Man erkennt, dass durch Verdoppelung eines Konjunktes in der 3. Lösung eine weitergehende
Vereinfachung erreicht werden kann, als bei den beiden Lösungen zuvor. Das nachfolgende
Vereinfachungsverfahren macht systematisch von der Termverdoppelung und anschließender
Vereinfachung gebrauch.
Schaltungsvereinfachung nach Quine – McCluskey
Die Funktion
soll so weit wie möglich vereinfacht werden. Dazu teilt man die Konjunkte in Gruppen ein,
wobei die Anzahl der Negate in jeder Gruppe gleich groß ist. Die Elemente in benachbarten
Gruppen unterscheiden sich in genau einem Querstrich.
Hans Wypior
- 14 -
15. Mai 2013
Technische Informatik
Eine übersichtlichere Darstellung erhält man, wenn man die Minterme durch ihre binären Äquivalente in der Tabelle ersetzt. Die Gruppeneinteilung wird dann nach der Anzahl der Nullen in den Konjunkten vorgenommen. Es ergibt sich folgende Darstellung:
Schaltungsvereinfachung mit dem Primimplikantenverfahren
Der nach dem Verfahren von Quine-McCluskey erzeugte Schaltungsterm ist der einfachste,
der mit Hilfe der Gesetze der Boole'schen Algebra erzeugt werden kann. Dass dieser Term
dennoch nicht der einfachste zu sein braucht, zeigt der Vergleich der Wahrheitstafeln von
Der Grund liegt darin, dass immer dann, wenn der Term a c den Wert 1 annimmt, auch
einer der beiden anderen Terme gerade den Wert 1 besitzt. Man nennt diesen Sachverhalt Überdeckung. Die zugehörige mathematische Theorie der Prim- und Kernprimimplikanten soll
hier nicht weiter vertieft werden.
Die folgende Tabelle illustriert das Verfahren.
Die ermittelte Lösung muß nicht eindeutig sein. Man muß nur sicherstellen, dass alle Minterme der Ausgangsfunktion im Ergebnis repräsentiert werden. Im obigen Beispiel gibt es
keine weitere Lösung. Zum Beispiel darf der Term b c in der Lösung nicht fehlen, da sonst
die Minterme m 2 und m 3 im Ergebnis nicht vertreten wären.
Hans Wypior
- 15 -
15. Mai 2013
Technische Informatik
Die Verkehrsampel
Am Beispiel einer einfachen Ampelschaltung soll nun systematisch gezeigt werden, wie man
mit dem besprochenen Know-how von einer Idee zur schaltungstechnischen Umsetzung gelangt. Für eine geeignete Lichtfolge eines Ampelkörpers genügen 8 Zeiteinheiten. Diese werden von einem Dualzähler vorgegeben, der von 0 bis 7 zählt. Die entsprechenden Leuchtzustände der 3 Lampen werden gemäß der nachfolgenden Tabelle definiert.
Aus der Tabelle entnimmt man die Schaltterme für die drei Lampen in kanonischer disjunktiver Normalform.
Es ergibt sich:
Die Termvereinfachung nach Quine - McCluskey liefert
Hans Wypior
- 16 -
15. Mai 2013
Technische Informatik
Das Computermodell
Das Minimalmodell eines Computers besteht aus Rechenwerk, Speicherwerk und Steuerwerk. Das Rechenwerk stellt Rechenoperationen zur Verfügung, das Speicherwerk besteht
aus Schieberegistern und gestattet neben der eigentlichen Aufgabe, Daten binär zu speichern,
Schiebeoperationen. Das Steuerwerk koordiniert den Datenfluss, indem es den Speicher adressiert und die Befehlsdekodierung übernimmt.
Für das Grundverständnis der Funktionsweise eines Computers soll im weiteren Verlauf ein
Rechenwerk entwickelt werden, das es gestattet, Dualzahlen zu addieren und mit Hilfe des
Zweierkomplementes Dualzahlen zu subtrahieren.
Voraussetzung zum Bau des Rechenwerkes sind zwei Schaltungen, die zwei Ziffern der Binärzahlen addieren und die Summe sowie den Übertrag als Ergebnisse bereit stellen können.
Es sind dies der Halbaddierer und der Volladdierer.
Der Halbaddierer
Der Halbaddierer addiert genau zwei Ziffern. Dieses Problem tritt grundsätzlich bei der Addition der beiden niederwertigsten Bits von zwei Binärzahlen auf.
Der Volladdierer
Der Volladdierer kommt bei den höherwertigen Bits zum Einsatz. Hier muss außer den beiden
Ziffern der gegebenen Zahlen auch noch der Übertrag der vorherigen Addition berücksichtigt
werden. Somit addiert der Volladdierer drei Ziffern.
Hans Wypior
- 17 -
15. Mai 2013
Technische Informatik
Das Rechenwerk
Die nachfolgende Schaltung soll vierstellige Dualzahlen addieren und die Summe sowie den
Übertrag zur Verfügung stellen. Sie ist als serielles Rechenwerk ausgeführt.
Die 1. Zahl befindet sich im Register (Arbeitsspeicher), die 2. Zahl ist im Akkumulator untergebracht. Der Akkumulator ist Teil des Prozessors. Er ist ebenfalls ein Speicher, aber anders
als der Arbeitsspeicher wird er zur Aufnahme des Rechenergebnisses benutzt. Zu Beginn der
Rechnung muss der Übertragsspeicher auf 0 gesetzt werden. Dieses ist notwendig, weil als
Addierschaltung ein Volladdierer verwendet wird. Nach viermaligem Takten steht die Summe
im Akkumulator zur Verfügung, während im Register die 1. Zahl erhalten bleibt.
Speicheradressierung
Zur wahlweisen Benutzung eines Registers des Arbeitsspeichers
ist es notwendig, die beteiligten Register am Ausgang mit einer
Tor-Steuerung zu versehen. Außerdem bekommt jeder
Speicher eine eigene Adresse (eine Nummer). Soll nun ein
bestimmter Speicher an der Rechenoperation beteiligt sein, so
wird seine Adresse in das Adress-Register geschrieben. Das hat
zur Folge, dass nun nur noch Daten aus dem ausgewählten
Register über das Tor zum Adder gelangen.
Wie man der Tabelle entnehmen kann, kann die Funktionsweise des Und-Gatters so interpretiert werden, dass ein Eingang des Und-Gatters als Steuerleitung und der andere als DatenleiHans Wypior
- 18 -
15. Mai 2013
Technische Informatik
tung dient. Ist die Steuerleitung logisch 1, so gelangen die Daten zum Ausgang, andernfalls ist
der Ausgang logisch 0. Da die Null neutrales Element hinsichtlich der Oder-Verknüpfung ist,
stört sie den Datenfluss aus anderen Registern nicht.
Adressendekoder
Zur Aufnahme der Adresse von 2 Registern reicht 1 Flipflop. Steht mehr Speicher zur Verfügung, benötigt man ein entsprechend größeres Register, wobei die Adresse genauso wie die
Daten in binärer Darstellung gespeichert werden. Also: Für 2 Speicher benötigt man 1 Flipflop, für 4 Speicher braucht man 2 Flipflops, für 8 Speicher sind 3 Flipflops notwendig, usw.
Allgemein benötigt man für 2n Speicher n Flipflops.
Andererseits besitzt jeder Datenspeicher ein Tor am Ausgang, sodass bei einem Speicher der
Größe 2n auch tatsächlich 2n Steuerleitungen bedient werden müssen. Die Aufgabe, aus n
Eingangsgrößen 2n Ausgangsgrößen zu erzeugen, übernimmt ein Binär-zu-DezimalDekoder.
Innere und äußere Adressdekodierung
Großer Speicher erfordert umfangreiche Speicherverwaltung. Zu jedem Speicherbaustein
führt der Adressbus, der die niederwertigen Teile der Adresse überträgt und die Adressen auf
dem Chip vollständig dekodiert. Die höherwertigen Adressanteile werden dagegen extern
dekodiert und als Chip-Select-Signal (kurz CS-Signal) zum Speicher geführt.
Die nachfolgende Schaltung dekodiert einen 64 KByte großen Speicher. Bei den Dekodern
handelt es sich um BCD-zu-Dezimal-Dekoder (BCD: Binär Coded Decimal, d.h., Eingangsgrößen sind Binärzahlen aus dem Bereich 0000 .. 1001, also dezimal 0 bis 9).
Hans Wypior
- 19 -
15. Mai 2013
Technische Informatik
Jeder der Dekoder besitzt 10 Ausgänge, wovon aber nur 8 (0 .. 7) benutzt werden. Das hat zur
Folge, dass von den Eingangsleitungen nur die niederwertigen 3 Leitungen für die Dekodierung erforderlich sind. Ist die 4. Eingangsleitung logisch 1, so wird eine Ausgangsleitung selektiert, die nicht benutzt wird. Daher kann die 4. Eingangsleitung als Chip-Select-Leitung
angesehen werden.
Dekoder A (Adressleitungen A13 .. A15) erzeugt 8 CS-Signale für die nachfolgenden Dekoder B0 bis B7. Zu jedem dieser Dekoder werden die Adressleitungen A10 .. A12 sowie die
zugehörige CS-Leitung geführt. Diese wiederum erzeugen CS-Signale für die 1KByte großen
Speicherbausteine.
Beispiel:
Der Speicher mit der Adresse BCA3h soll dekodiert werden. Dann gilt:
BCA316 = 1011 1100 1010 00112
Dekoder A : 0 101, also CS = 5
Dekoder B5: 0 111, also CS = 7
Assemblerbefehle
Die Festlegung des Befehlssatzes erfolgt in Abhängigkeit der zu realisierenden Hardware.
Jedem Maschinenbefehl werden ein Binärmuster und ein Mnemonic (Befehlskürzel) zugeordnet. Ein vollständiger Befehl kann aus einem oder mehreren Bytes bestehen. Im ersten
Byte steht der Maschinenbefehl, die weiteren Bytes nehmen Speicheradressen oder direkte
hexadezimale Werte auf.
Z.B. bedeutet bei einem Pentium-Prozessor der Befehl MOV Ziel, Quelle, dass von einer
Quelladresse der Inhalt zu einer Zieladresse bewegt werden soll. Quelle und Ziel können
Speicheradressen oder Prozessorregister sein. Quelle kann auch ein direkter hexadezimaler
Wert sein, der in eine Zieladresse geschrieben werden soll.
Für das Computermodell sollen folgende Befehle realisiert werden:
Binärcode Assemblerbefehl
Bedeutung
Lade den Akkumulator mit dem Wert eines Registers
00
LDA
01
STA
10
ADC
Addiere zum Akkumulator den Wert eines Registers
zuzüglich Carry (Übertrag), Ergebnis im Akku
11
SBC
Subtrahiere vom Akkumulator einen Registerinhalt unter
Berücksichtigung von Carry, Ergebnis im Akku
Hans Wypior
Speichere den Akkumulatorinhalt in ein Register
- 20 -
15. Mai 2013
Technische Informatik
Datenwegsteuerung
Die Daten werden auf verschiedenen Wegen innerhalb des Computers transportiert. Für jeden
Befehl müssen bestimmte Wege frei geschaltet und andere gesperrt werden. Dabei sollen
grundsätzlich die Daten erhalten bleiben, wenn sie nicht gezielt geändert werden sollen. Im
vorliegenden Modell ergeben sich folgende Datenwege, die durch Tore gesteuert werden
müssen:
Datenweg Nr.
Verlauf
Beteiligte Befehle
0
Akkumulatorausgang zum Adder
ADC, STA
1
invertierter Akkumulatorausgang zum Adder SBC
2
Ring des Schieberegisters
ADC, LDA, SBC
3
Akkumulatorausgang zum Registereingang
STA
4
Registerausgang zum Adder
ADC, LDA, SBC
Beim ADC-Befehl muss beachtet werden, dass der Übertragspeicher (Carry-Flag) vor der
Addition auf 0 gesetzt wird, beim SBC-Befehl auf 1 (Übergang vom Einer- zum Zweierkomplement). Der LDA-Befehl funktioniert ebenfalls nur korrekt, wenn der Übertrag 0 ist und der
Datenweg vom Ausgang des Akkumulators gesperrt (logisch 0) ist. In diesem Fall addiert der
Adder zu den Registerdaten 0. Beim STA-Befehl sollen vereinbarungsgemäß die Akkumulatordaten erhalten bleiben. Deshalb muss der Datenweg 0 als Ring funktionieren. Folgerichtig
müssen wieder der Übertrag 0 und der Registerausgang (Datenweg 4) gesperrt sein.
Hans Wypior
- 21 -
15. Mai 2013
Technische Informatik
Befehlsdekodierung
Für die Befehlsdekodierung ist eine Sortierung der Befehle nach Datenwegen erforderlich:
Befehl Datenwege
LDA
2,4
STA
0,3
ADC 0,2,4
SBC
1,2,4
Assemblerprogrammierung
Der im Mikroprozessor bereit gestellte Befehlssatz stellt das Grundgerüst für alle Programme
dar, die auf einem Computer ablaufen. Ein aus Mikroprozessor-Anweisungen geschriebenes
Programm nennt man ein Assemblerprogramm, das zugehörige aus Hexadezimalzahlen bestehende Programm ist das Maschinenprogramm. Der Kern aller höheren Programmiersprachen besteht aus einem Bündel von Funktionen, die in Assembler geschrieben sind.
Beispiel:
Die Aufgabe 2x + y - z soll mit Hilfe des oben entwickelten Computermodells gelöst
werden, wobei x,y,z natürliche Zahlen aus dem Dezimalzahlbereich 0..15 sein dürfen.
Alle Eingaben erfolgen über den Akkumulator.
LDA
STA
CLC
ADC
STA
LDA
CLC
ADC
STA
LDA
STA
LDA
SEC
SBC
#x
Reg 0
Reg 0
Reg 0
#y
Reg
Reg
#z
Reg
Reg
0
0
1
0
Reg 1
Hans Wypior
Zahl x in den Akkumulator schreiben (unmittelbare Adressierung)
x in Register 0 speichern
Übertragspeicher löschen (Befehl Clear Carry im Modell von Hand durchführen)
Ergebnis x+x = 2x im Akku
2x in Register 0 speichern
vor jeder Addition Carry löschen!
2x + y im Akku
2x + y in Register 0 speichern
z in Register 1 speichern
2x + y in Akku
vor der Subtraktion wegen der Zweierkomplement-Arithmetik Carry = 1 setzen
2x + y - z in Akku
- 22 -
15. Mai 2013
Herunterladen