156 16 62MB
German Pages 433 Year 2007
Hoffmann Grundlagen der Technischen Informatik
I;
Bleiben Sie einfach auf dem Laufenden: www.hanser.de:/newsletter Sofort anmelden und Monat fur Monat die neuesten Infos und Updates erhalten,
A"dih· O":l "'" '?fV'lO fVl·fYl fVl _ 11 "",?IV'lO fYl fYl fVl
In·7...-IU"7rl"O?OR1.-f1'lRQ,rlQ1h1~"," 7"",1n>l_
•• ?IV'lO"", llJI 1A·OQ '?fV'lO fVl·fVl fVl _ 11 fl'>?IV'lO fVl fVl fVl In·7...-IU,)7rlQ?QR1.-ft'lRQnQ1h10r '?fV'lO fVl·fYl fYl _ 11 n.1 ...o?'fVl'
Inhaltsverzeichnis
I Elnfiihnmg 1.1 Was ist technische Informalik?
11 11
1.2 1.3
13 30
Vom Abakus zum Sup;:rcomputer .
Wohin geht die Reise? . . . .
2 ZahlendarsteIlung und Codes 2.1 Zahlensysteme
'"
2.2
RcchllCrintcmc Zahlcnfomlatc
23
2.2.2 Darstellung rationaler Zahlen Zahlcncodcs . 2.3.1 Tetraden-Codes .
42 42 48 55 55
2.3.2
59
2.2.1
24
25
3.1
3.2
3.3
3.4
n":l
Darstellung natürlicher Zahlen
Fchlcrcrkcnncndc Codes .
ZCichcncodcs.... 2.4. I ASCII-Code
61 61
2.4.2
63 64 68
ISO 8859 .
2.4.3 Unicode Obungsaufgabcn. Boolt'sclll' AI~O('brn
3
A"dih·
33 . .
73
Axiomatisicrung nach Huntington 3.1.1 Mcngcnalgcbra 3.1.2 Schallalgebra , . Boolcschc AusdrUcke und Aussagen
3.2.1
Abgeleitete (}pcratoren
3.2.2 3.2.3 3.2.4
ErfUlibarkcil und Äquivalenz Strukturelle Induktion DuaIiUllsprinzip ...
Rechnen in boolcschcll Algcbren 3.3.1 Abgclcitctc Umformullgsregein 3.3.2 Vereinfachung boolcschcr Ausdrückc 3.3.3 Vollstllndigc Opcratorensystcmc . NomlalfomlClarstcllungcll ... 3.4.1 Konjunktivc und disjunktivc Nomlalform .
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
74 75 77 79 81 84 86
89 93 93
95 101 103 103
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'nn'
Inhal tsve fleich nis
8
3.4.2 3.4.3
3.5
Reed-Muller-Normalfonn Binare Entscheidungsdiagramme
Übungsaufgaben .
106 108 117
4 Schaltllelze
123
4.1 4.2
124 129
Grundlagen der Digitaltechnik Schaltungssynthese 4.2.1 Zweistufige Schaltungssynlhese . 4.2.2 BDD-basierte Schallungssynlhese . 4.2.3 FDD-basierte Schaltungssynthese
4.3
Fomlelsynthese
4.4 4.5
4.3.1 Funktionale Forrnelsynlhese . 4.3.2 Relationale Formelsynthese 4.3.3 Definitorische Fonnelsynthese Komplexil:ttsanalyse . Zeilverhallen digitaler Schaltungen 4.5.1 Signal ausbreitung und -verLögerung 4.5.2 Slörimpulse Übungsaufgaben .
4.6
5 5.1 5.2
5.3 5.4
Minimierung Minimierungsziele . Karnaugh-Yeilch-Diagramme 5.2.1 Mi nimierung partiell definierter Funktionen 5.2.2 Konstruktion Hazard-freier Schaltungen 5.2.3 Minimierung mehrsteiliger Funktionen Quine-McCluskey-Verfahren Übungsaufgaben .
6 Standardschaltnelze 6.1 Motivation 6.2 Multiplexer und Demultiplexer 6.3 Komparatoren 6.4 Prafix-Logik AddieJ-er 6.5 6.5.1 Halb- und Volladdierer . Carry-ripple-Addierer. 6.5.2 6.5.3 Carry-look-ahead-Addierer Pr:tfix-Addierer. 6.5.4 6.5.5 Carry-save-Addierer . 6.6 Inkrementierer .
130 131
132 134 134 136
137
140 142 142 144 149 153 154 158
162 166 168 170 175
181 182 182 189 191 194 194 196 197 200
202 205
Inhaltsverleichnis
6.7
6.8
6.9 6.10 6.11 6.12
9
Subtrahierer . MUltiplizierer . 6.8.1 Matrixmultiplizierer . 6.8.2 Carry-save-Multiplizierer Barrcl-Shirter......... Arithmetisch-logische Einheit. Programmierbare Logikbausteine . Obungsaufgabcn .
7 Sdtaltwerke 7.1 Digitale S~ichcrelclT'lCntc . 7.1.1 Asynchrone S~icherelcmente . 7.1.2 Takt1.ustandSgcstcllCrte S~icherelcmente . 7.1.3 Taktflankengesteucrte S~icherelcmente 7.1.4 Bevorrechtigte Eingänge. 7.2 Vom l-lipflop zum Schaltwerk . 7.2.1 Endliche Automaten . 7.2.2 Schaltwerksynthcsc 7.3 Obungsaufgabcn .. 8 StandardS('haltwerke 8.1 Register...... 8.1.1 Auffangregister 8.1.2 Schicbcregister. 8.1.3 Universalregister . 8.1.4 Akkumulatoren. 8.2 Zähler 8.2. I Synchrone BinärLähler . 8.2.2 Asynchrone BinärLähler . 8.2.3 Mischzähler 8.2.4 Instrukt;onszählcr 8.3 Hauptspeicher . 8.3.1 SRAM-Speichcr . 8.3.2 DRAM-Speictx::r ... 8.3.3 Fehlererkennung und ·korrektur . 8.4 Obungsllufgabcn. 9
9.1
A"dih·
n":l
Register-Transfer-Entwurf Entwurf komplexer Systeme. 9. I. 1 ~rdtionswerksYllthcsc . 9.1.2 Stcucrwcrksynthcsc.
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
206 207 208 211 214 216
218 221
2,. 230 231 235
238 245 246 247
250 254 259
260 260 262 264 265 268 269 273 274 276 278 278 280 287 290
295 296 298
300
In·7.....n.l?7 '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7....n.l?7 t'\II 111 no '>1 -t-fl?'nn'
12
1 EinfUhrung
INFORMATIK
Deduktion
Hardware-Entwurf
Schnittstellen
Assistenzsysterne
Cornpulerperipherie
KomplexitJitstheorie
Software-Engineering
Signal verarbeitung
Rechner:architekturen
Berechenbarkeit
Betriebssysteme
Bi(}-Infonnatik
Mikroprozessoren
Fonnale Sprachen
Schaltwerke
Endliche AulQmalen
Compilerbau Programmierung
Algorithmen
Schaltnetze
Dalenstrukturen
Logikgaller
Multimedia Simulation
Ko.nstliche Inlelligenz Cornputergrafi k
11111 Technische lnfonnallk •
Ausffihrlich behandelt
Praktische Informatik
0
Angewandte Informatik
Einffihrend behandelt
Abbildung 1.1: Die vier Säulen der Infonnatik
komplexer Digitalschaltungen. HierLU gehören ei nfache Schaltnetze ge-
nauso wie komplexe. mit Speicherelementen angereicherte Schaltwerke. Durch das wechselseitige Zusammenspiel von Millionen von Schalletemenlen sind wir heute in der Lage. Systeme mit einer KomplexiUll zu konstruieren. die noch vor nicht allzu langer Zeit als unmöglich erachtet wunle. Nichtsdestotrotz l:isst sich selbst das komplexeste System stets auf die gleichen Grundprinzipien zurtlckfUhren. Die folgenden Kapitel werden diese in ein helleres Licht rucken und praxisnah in die technische Funktionsweise moderner Computersysteme einfUhren. Die technische Infon11atik ist eng mit der theoretischen Informatik verzahnt. Viele der dort entwickelten Konzepte aus den Bereichen der Codierungstheorie, Logik und der endlichen Automaten dienen uns als das mathematische Fundament zur Beschreibung von Computer-Hardware. In entsprechender Weise werden wir uns auch in diesem Buch mit etlichen Teilaspekten dieser Disziplin beschaftigen. Doch bevor wir vollends in die Welt der Bits und Bytes eintauchen. wollen wir einen kurlen Streifzug durch die junge. aber bewegte Geschichte der Computertechnik wagen und uns mit der Frage beschaftigen. wohin die Reise in den nachsten Jahren fUhren wird.
1.2 Vom Abakus zum Supcrcomputer
13
1.2 Vom Abakus zum Supercompuler Die ersten mechanischen Rechenhilfen Wir bcginren unseren Streifzug durch die Geschichte imelften Jahrhunden vor Christus. Etwa zu dieser Zeit wird in China mit dem SUQn pan die erste ITlL'Chanische Rechcnhilfe entwickelt - der so genannlc Abakus. Obwohl das auf den ersten Blick primitiv anmutend~ Rechenbreu nicht viel mit der heutigen Computenechnik verbindet. stellt der Abakus einen tcdculcndcn Schrill in Richtung des maschinellen Rechncns dar und ist mit seiner redundanten Ziffemdarstellung ein willkomlncncr Einstieg in die Thematik dcr1.ahlensystcme. Abbildung 1.2 zeigt das Bild eines chinesischen Abakus. wie er llOCh heute auf vielen femosUichcn WarenmärKten die uns vertraute elektronische Kasse erscl1.l. Aufgebaut ist der Suan pan aus einer Reihe von Staben. auf denen jev.eils 7 bev.egliche Kugeln in zwei unterschiedlichen Scgmemen aufgefMclt sind. Das obere Segment - der Himmelenthält jeweils 2 und das lUltere Scgment- die Erde - die restlichen ftlnf Kugeln. Zur Zahlenclarstellung verwendet dlr Abakus das uns gel:1ufige arabische System. JL'(k:r Stab repl1tscntiert eine einzelne Ziffer. deren Wert sich aus cb Stellung und den Wertigkeiten der einzelnen Kugeln bestimmt. Zur Berechnung des ZilTemwerts gehen ausschließlich diejenigen Kugeln ein. die nach innen. d.h. in Richtung der mittleren Querstrebe. geschoben wurden. Jede Kugel aus dem oberen Segment erhöht den ZilTernwcrt dabei um 5 und jede Kugel aus dem unteren Segment um I. Abbildung 1.3 dernonslrien die Darstellung der Zahl 10. Wie das Beispiel zeigt. ist die zahlendarslellung im Gegensal1. zum klassischen Dezimalsystem nicht eindeutig. Der Grund hierfUr liegt in der Anzahl und der Wertigkeil der Kugeln bcgrUndel. mit denen sich nicht nur die klassischen Dezimalziffern 0 bis 9. sondern auch die Werte 10 bis 15 darstellen lassen. Der Aufbau des Abakus hat sich im Laufe (b Zeit und durch den Einfluss verschiedener Kulturkreise in unterschiedliche Richtungen weiterentwickelt. So besitzt der japanische Sorooon im Gegensatz ZUIll chinesischen Silan pan nur noch fünf stall sieben Kugeln und eilr russische SlSc!101y kennt z.B. Uberhaupt keine Aufteilullg in Himmel und Erde mehr.
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
6 0 9 2 t
,\ hhildung 1.2: Der Slw,. pu" (chiirsiscber Abakus)
• • •
10= 1·10
10= 2·5
10=1·5+5·1
A hhildun~ 1.3: Die Zahl 10 kann mit Hilfe des Abakus auf drei verschiedene Weisen dargestellt werden.
In·7.....n.l?7 t'\A 111 no '>1 ...o?'flO'
14
1 EinfUhrung
Die Schickard'sche Rechenuhr Mit dem Abakus lassen sich Zahlen darstellen und mit etwa '?fV'lO
m·m·m
In·7.....n.l?7l." "IOI"ICl ..... NI 111 no '>1 ...o?'flO'
18
1 EinfUhrung
• • • • Loch-
streifentö~
• Wie das 810ckschallbild in Abbildung 1.9 demonstriert. sind der Speicher und der Prozessor - bestehend aus Steuer- und Rechenwerk - klar voneinander getrennt. Diese Zweiteilung findet sich auch heute noch in den allermeisten Computerarchitekturen wieder.
Dezimaltl,tatuT
I-
Steuerwerk
•• ••
Numerische Anzeige
I
• Intern verwendet die Z3 das Gleitkommaformat zur Darstellung rationaler Zah len. Über die numerische Tastatur ei ngegebene Operanden wurden automatisch in das interne Gleitkommaformat ubersetzt und die Rechenergebnisse fUr die Anzeige ebenfalls vollautomatisch in das Dezimalsystem zuruckkonvertiert. Damit war die Erfindung von Zuse auch hier anderen Maschinen weit voraus. die mit dem Festkommaformat eine wesentlich primitivere Art der Darstellung einsetzten. In Kapitel 2 werden wir uns intensiv mit den Unterschieden des Gleit- und Festkommafonnats beschaftigen.
Rechenwerk (ALU)
Speicher (64 Worte)
Exponentenregister
Mantissenregister
Abbildung 1.9: Blockschaltbild der Z3
I
IFetch Exec Store Er.;tcr
Fetch Ex"" Store
Tili Zweiter
T."
I ",,
Feim Excc Store
,
,,,
.
:
Dritter Takt
I
• Das Prinzip der Mikroprogrammierung. das auch heute die Grundlage vieler moderner Mikroprozessoren bildet. findet sich bereits in der Z3 verwirklicht. Im Zentrum des Steuerwerks befindet sich hierzu der so genannte Mikrosequenzer. mit dessen Hilfe sich komplexe Rechenoperationen in mehrere elementare Berechnungsschrilte zerlegen und nacheinander ausfUhren ließen. Im Zusammenhang mit der CISC- und RISC-Architektur werden wir in Kapitel 11 auf dieses Prinzip der Ablaufsteuerung zurUckkommen.
I
:
Abbildung 1.10: Die Pipeline-Architektur derZ3
!'~!S~a!!!!n.!!!!!'~!!!!!!!!a~i!~!i~"!~,!!"@imfl Em- und Ausgabe
Lu
Eingabe
01110000
Ld
Ausgabe
01111000
Speichertranster
Lore"
l1Adresse
Schreiben
lOAdresse
• Zur Geschwindigkeitssteigerung fUhrt die Z3 den Befehlsstrom überlappend aus. d.h. wahrend des ZurUckschreibens des Ergebniswerts ist der Rechner in der Lage. bereits die nachste Instruktion einzulesen. Wie in Abbildung 1.10 gezeigt. folgte die Z3 damit einer dreistufigen Pipeline-Architektur. die mit einem einstufigen VersalZ ausgefUhrt wurde. In Kapitel 11 werden wir uns auch mit diesem Architekturprinzip genauer beschaftigen. • Auch das verwendete Rechenwerk musste zu seiner Zeit keinen Vergleich scheuen. So setzte die Z3 zur Beschleunigung der Addition die Carry-Iook-alread-Teclmikein. die auch heute noch die Grundlage vieler Addierwerke bildet. In Kapitel 6 werden wir dieses Additionsprinzip im Detail kennen lemen.
Anthmetlk
Lm Li
Dividieren
01001000 01010000
Lw
Wurzelziehen
01011000
LOt
Addieren
01100000
Lo,
Subtrahieren
01101000
Multiplizieren
Tabelle 1.1: Der Befehlssatz der Z3
Programmiert wurde die Z3 mit Hilfe eines 8-spurigen Lochstreifens. Jede Zeile codiert einen einzigen Befehl. zusammen mit den dazugehörigen Operanden. Wie die BefehlsUbersicht in Tabelle 1.1 zeigt. lassen sich die insgesamt neun Befehle in die Kategorien Ein- und Ausgabe. Speiclrertransfer und Arithmetik unterteilen. Mit Hilfe der Befehle Lu bzw. Ld wird eine Dezimalzahl uberdie numerische Tastatur eingelesen bzw. auf der numerischen Anzeige aus-
1.2 Vom Abakus zum Supcrcomputer
19
gegeben. Beide Befehle stoppen die AusfUhrung der Maschine. bis der Benutzer manuell die Fortsetzung veranlasst. Die Kommunikation mit dem Hauptspeicher wird über die Befehle Pr bzw. Ps gesteuert. Die anzusprechende Speichcradressc wird hierolu in den 8-Bit-0pc0dc der Befehle hincincodiert. Mit den 5 zur Verfügung stehenden Adressbits lassen sich insgesamt 25 _ 64 Speichcrworte adressieren. Die restlichen Befehle dienen zur Durchffihnmg der vier arithmetischen Grundrechenarten sowie der Berechnung der Quadratwur.lel. Betrachten wir den Befehlssatz der Z3 genauer. so fällt auf. dass mit den vorhandenen Befehlen wcdcreinc Verzweigung noch eine Schleife programmiert werden kann. Der Programmierung sind hierdurch enge Grenzen gesetzt und die Z3 stel1t damit keinen Unil'ersalrechner im eigcntlichen Sinne dar. Konrad zuse(1910- 199.5)
Die Harvard Mark I Fast zeilgleich mit dem Bau der Z3 wurde an den IBM LaboralOries in Ncw York unlcr der Rcgie von Howard H. Aiken der grö8le jemals feniggestellic clcktromcchanische Rechner gebaut - der AlI10matic Sequence ControlJed Ca/cutatar (ASCC) 115]. In einer feierlichen 7.J!renlOnie wurde die gigantische Maschine am 7. August 1944 an die Harvard Unin~rsity übergeben und offiziell in Betrieb genommen. Die Komplexität '?fV'lO
m·m·m
Abbildung 1-11: Bronze.statue in Bad Hersfeld zum Gedenken an KonnId ZUse
Spur Obis7
Spur 8bistS
Spur t6bis23
mnmmnnmTl1m
•• •••••••• •• •• •• •••••••• • •• ••••••• •• •• •••• • • •• •• ••••••• •• •• •••••• • •• • •• •• •••• • •• •• •• •• •••• •
lillfilllillfilllillfill Quclladresse
Zicl-
Opcodc
adrt'55e
A bhildutl~ 1.12: Aufbau des Lochslreifens
zur Steuerung der Hnrvard Malk I
In·7.....n.l?7 t'\A 111 no '>1 ...o?'nn'
20
Dass wir heute im Soflware- und Hardware-Bereich Fehler gemeinhin als Bugs bezeichJrn, wird in vielen Quellen in Zusammenhang mit der Harvard Mark I gebracht. Geruchlen zufolge geriel ein: Motte in eines der zahlreichen eektriseilen Relais des Rechners und brachte auf diese Weise die gesamte Maschin: zum Erliegen. Die Molle wurde entfernt und der Begriff Debugging war geboren
1 EinfUhrung
die Rechnerarchitektur noch nicht vor. Damit ließen sich Endlosschleifen nur aufphysikalischem Wege durch das ZusammenfUgen des Lochstreifens zu einem endlosen Band realisieren. Das bereits in der Harvard Mark I umgesetzte Konzept. Code und Daten in getrennten Speichem vorLUhalten. hat im Bereich modemer Computerarchitekturen in den letzten Jahren eine wahre Renaissance erlebt So arbeiten z.B. modeme digitale Signalprozessoren fast ausschließlich nach diesem Prinzip. da sich im Vergleich zur klassischen VonNeumann-Architektur deutlich höhere Übertragungsraten zwischen der Zentraleinheit und dem Speicher erreichen lassen. In Anlehnung an ihre historischen WurLeIn sprechen wir in diesem Zusammenhang heute immer noch von der Harvard-Arclritektur. Die Harvard Mark I wurde erst 1959 außer Betrieb gestellt und anschließend zerlegt. Einige Komponenten sind heute noch im Cabot Science Scenter der Harvard University zu sehen. der Rest befindet sich im Besitz der IBM Laboratories in New York und des Smithsonian-Instituts in Washington. D.C
In der Tal gehört die Geschichte zu den klassisdrn Mytllen des Compulerzeirnllers. Die besagte Motte gab es wirklich, allerdings stammle sie nicht aus der Haryard Mark I. sondern von ihrem Nachfolger, der Harvard Mark 11. Der Begriff des Debuggings wurde jedoch bereits viel fru-
her geprägt, wie z.B. der folgende Ausschnitt aus einem Brief von Thomas EdiSOll vom 18. November 1878 an Theodore Puskas verrtlt:
.,11 has been jusl so in /1/1 my il1vemiollS. The first Slep is an intuition - and comes wirh a bursf, fhen difficulties arise. This fhing gives OUI and fhen flWl- 'Bugs' - as such linie faults and difficu/lies are ca/led - show fhemse!ves and months of anxious walching, slUdy and labor are requisire before commercial saccess - or fai/ure- is cerwinly reached" [44]
Nichts '?fV'lO
m·m·m
1-"",-
GillCT
spirale
Kalhode
1.14: Die Trioden·Röhre als ScbaltelemenL Der durch die Heizspirale verursachte Stromftuss VOll der Kathode zur Anode kann durch das Anlegen einer Span· nung an das Melallgitter blockiert oder ver· SUlrkI werden -ein einfaches ScbalteJemenl enlstehL AbbildUlIl:
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'nn'
22
1 EinfUhrung
automatisierte Berechnung der Trajektorien-Tabellen möglich wenlen sollte. war aus zweierlei Hinsicht revolutionar. • Im Gegensatz zur Z3 oder der Harvard Mark I war es möglich. Verzweigungen und Schleifen zu programmieren. Damit unterscheidet sich das formale Berechnungsrnodell der ENIAC deutlich von ihren Vorgangern und ist insbesondere mit dem heutiger Computer vergleichbar. auch wenn die Programmierung des Kolosses im Vergleich zur heutigen Technik kaum unterschiedlicher sein könnte.
Abbildung 1.15: Teilansicht der ENIAC (U. S. -Anree-Foto)
Abbildung 1.16: Das Main Contral Panel der ENIAC (U.S.-Annee-Folo)
• In der ENIAC wurde auf die Verwendung elektromechanischer Relais verlichtet und die Schaltlogik staUdessen mit Hilfe von Vakuumröhren implementiert. Zwar ist die ENlAC nicht der erste Röhrenrechner der Welt. aber der erste Großrechner. der die Vakuumröhre in Form der Triode konsequent als Schaltelement verwendete. Im Vergleich zum Relais zeichnet sich die Röhre durch eine um den Faktor 1000 bis 2CXXl gesteigerte Schallgeschwindigkeit aus. so dass die ENIAC mit einer rur damalige Verllaltnisse beeindruckenden Taktfrequenz von 100 Kilohertz betrieben werden konnte. Eine einzige MUltiplikation berechnete die ENIAC in nur knapp 3 Millisekunden. Auf der negativen Seite brachte die ENIAC konstruktionsbedingt auch gravierende Nachteile mit sich. Ein wesentliches Element der Röhrentriode ist wie in Abbildung 1.14 skizziert. die Heizspirale. Wird sie zum GlUhen gebracht. so beginnt die Kathode Elektronen zu emittieren. die von der Anode angezogen und aufgefangen werden. Konstruktionsbedingt sind Vakuumröhren damit auBerst stromhungrige Bauelemente. Die Leistungsaufnahme der ca 18.000 in der ENlAC verbauten Vakuumröhren summierte sich auf sagenhafte 174.000 Watt. Des Weiteren besitzen Vakuumröhren im Vergleich zu Relais eine sehr begrenzte Lebensdauer und das langwierige Auffinden und Austauschen defekter Röhren gehörte zur taglichen Arbeit eines ENIAC-Ingenieurs. Der wohl gravierendste Nachteil betrifft jedoch die Handhabung der Maschine. die nicht auf eine flexible Programmierung ausgelegt war. Der Datenpfad wurde mit Hilfe von Steckverbindungen fest verdrahtet und ein Programm rur die ENIAC war damit nichts anderes als ein Verbindungsplan. der die benötigten Steckverbindungen beschrieb. Hierdurch war ein flexibler Wechsel zwischen verschiedenen Programmen von vorneherein ausgeschlossen.
Abbildung 1.17: Programmiert wurde die ENIAC durch "Kabeistecken" (U.5.Annee-Foto)
Die Limitierungen der ENIAC inspirierten den in Budapest geborenen und spater in die USA immigrierten Wissenschaftler lohn von Neumann
lI"clo,h,,- n'l n t'\A 111 no '>1 ...o?'nn'
24
1 EinfUhrung
Shockley. Bardeen und Bratlain gilt heute als der erste technisch verJo. . . . "'" ~
....... ,-
wertbare und voll funktionsPdhige Transistor - die Idee desselben war jedoch schon weit frtlher bekannt. So wurde das Prinzip des Transistors bereits 1928 von Julius Edgar Lilienfeld zum Patent angemeldet (Abbildung 1.19).
Der erste Computer auf Transistor-Basis wurde an der Manchester Universily Anfang der Fünfziger Jahre gebaut. Dem 1953 fertiggesteillen Prototyp folgte eine deutlich erweiterte Variante, die zwei Jahre sp:Uer ,
f
:{i7ge.
~-'---'
_I
----
, tT-----------J _.-
1"'--: I
Abbildung 1.19: Julius Lilienfeld patentiert als Erster die Idee '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.f?7 t'\A 111 no '>1 ...o?'flO'
26
1 EinfUhrung
Dolle und VIerte
Erste GeneratIOn
Zweite GeneratIon
1940-1954
1955-1964
ab 1965 Integrierter Schaltkreis
Relais
Vakuumröhre
Transistor
Schaltzeit: 10-[ s
Schaltzeit: 10-4 S
Schaitzeit: 10- 6 S
GeneratlOß
Schallzeit:
< 10-9 S
Taoclle 1.3: Die Entwicklung '?fV'lO
m·m m _ 11
fl'> '?fV'lO
4.77 MHz
29.000 TramislOrell 8-BiI-Dalenbus
lB.\.l-Modell 5150
Die Innovationskraft. die der enle Mikroprozessor mit sich brachte. wuI't± Anfang der 7Ckr-Jahrc durchaus skeptisch betrachtet und selbst Intel maß dem 4004 zum Zeitpunkt seines Erscheinens bei weitem nicht die Bedeutung zu. die er rtIckblickerxl verdient. Trotzdem setzte skh das Prinzip des Mikroprozessors durch und entwickelte sich schließlich zur treibenden Kraft der gesanllen Computcrbrancbe.
A"dih·
Der [nteI8088
m·m·m
,\ hhildung 1.22: Das Modell 5150 der Rrma IBM begründet das Zeitalier der Pes.
5000 Operalionmls 18.000 ROhren 170.000 Wau
ENiAC
1946
PowcrMlIC 2006
> 1.000.000.000 Opcralionenls > 100.000.000 Transisloren < 200 Wall Ahbildun~
1.23: Computer der heutigen Ubenreffen die RechenleislUng ehemaliger Großcomputer um ein Vielfaches. Ge~ralion
In·7.....n.l?7 t'\A 111 no '>1 ...o?'flO'
30
1 EinfUhrung
EIß
Verglichen mit dem 4004 hat sich die Architektur modemer Prozessoren zwar an unzähligen Stellen weiterentwickelt. jedoch nie grundlegend
verändert. In puncto Leistung haben beide trotzdem nicht mehr viel gemein. In ei nem lypischen Arbeitsplatzrechner, wie er in Abbildung 1.23 dargestellt ist. operieren heule mehrere parallel arbeitende Kerne im Gi-
gahertzbereich. die jeder rur sich die Leistung früherer Großrechner um ei n Vielfaches Ubertreffen. Auch die Anzahl der Transistoren spricht eine deutliche Sprache. Kommt der 4004-Prozessor noch mit 2250 Transistoren aus. so liegt die Anzahl bei modernen Prozessoren bereits heute jenseits der Hundert-Mi Ilionen-Grenze. Als Beispiel fUr die Topologie einer modernen Mehrkernarchitektur ist in Abbildung 1.24 das Blockschallbild des Cell-Prozessors der Firma IBM dargestellt. der nicht zuletzt durch den Einsatz in der Playstation III einen hohen Bekanntheitsgrad erlangen konnte. Der größte Teil der uber 230 Millionen Transistoren verteilt sich auf 8 separate Synergistic Processing Units. die mit ihren SlMD-Vektorei nheiten rur die effiziente AusfUhrung arithmetischer Operationen optimiert sind. Angesteuert werden die SPUs Ubereinen Prozessorkern aufPowerPC-Basis. der sich direkt neben dem L2-Cache befindet und die Kontrolle uberden gesamten Chip besitz!.
"'," ",
1.3 Wohin geht die Reise?
0
256 KByte 'RAM
V-ALU (128 Bit) 256 KByte 'RAM
,I
J"
256 KByte 'RAM
V-ALU (128 Bit) 256 KByte 'RAM
V-ALU (128 Bit)
V-ALU (128 Bit)
256 KByte 'RAM
256 KByte 'RAM
V-ALU (128 Bit)
V-ALU (128 Bit)
"PE: Power Processor Elemenl SPU: Synergistic Processing Uni! V-ALU: Vektor-ALU
Abbildung 1.24: Architektur des CellProzessors von IBM
Blicken wir auf die bewegte Geschichte der Computertechnik zurtlck. so drängt sich unweigerlich die Frage auf. welchen Weg die Entwicklung in Zukunft einschlagen wird. Wie vorsichtig wir mit voreiligen Sch lussfolgerungen sein mUssen. lehrt uns abermals die Vergangenheit. So hmte in den Pioniertagen der Computertechnik niemand auch nur zu träumen gewagt. dass sich die Infon11ationstechnologie zu dem entwickelt. was sie heute ist. Der folgende. von Howard Aiken im Jahre 1947 formulierte Satz bringt mit wenigen Worten den Zeitgeist der Pioniertage auf den Punkt: "Only six electronic digital computers will be required to satisfy the computing needs oftlle emire United States". In die gleiche Kerbe schlägt das folgende Zitat. das ebenfalls um diese Zeit herum datiert wird: "J think there is a world marketfor maybejive computers". Zugeschrieben wird dieses Zitat keinem anderen als Thomas Watson Sr.. dem Grunder der Firma IBM. Ob es wirklich Watson war. der die legendären Worte formulierte. ist jedoch heftig umstritten und konnte bis heute nie zweifelsfrei belegt werden. Doch welchen Nutzen können wir aus den Prognosen der Vergangenheit ziehen. die nicht unzutreffender hällen sein
1.3 Wohin gehl die Reise?
31
Anzahl Tmnsistorcn
10' 1 - - - - - - - - - - - - - - - - - - - - - - - - - -
I--
10'
§ -~-----~~e__--§I - - - - - - -..
10'1-
-
--'O..L_
10'
~
°
~
° ~-~~ .
~ ~
°
10' ~~ -;; _li: ---'~'----___(o~----~=c_---8~
°
~
~oo
g
0 ~...; 4 I __~;L__....,"""------------O __ 10 t
~~-
8 -8 -~-8 -"'---------.1.0;...---:,; :';" es '" '0: 00 g 0: Or)'-' 0 § 8""!N
_
0
~
_ _ '" _~.~
o_
t.;::~
E!
-~§ §.~--g--.~-·f~
0
() 10' I---'-.L-=
:;; " ~ --E:.
10' L
~ ~ ~ ~ ~ ~ ~ ~ ~
*
E:.
8_
~
--'-'==':O"'==== Prozcssorgcncrntion (Intel)
~ ~ ~ ~ ~ § § N
N
g g N
N
Abbildung 1.25: Die Entwicklung der Hardware-Kornplexitat am Beispiel der Inlel-Prozessoren, Werd:n die einzelnen Messpunkle zu einer Linie verblJ.od:n. so entsleht eille fast perfekte Gerade. Durch die Iogarithmiscll:l Skala auf der )'-Achse lasst sich hieraus ein exponentielles Wachstum der Hardware-Komplexit3.t ableiten.
k(jnnen? Am Ende ist es die ...:.rkenntnis. dass wir von langfristigeil Vorhersagen zur Entwicklung der Computertechnik absehen sollten. Die rasante Entwicklung der letzten lahrlehnte barg vielerlei überraschungen und wir dUnen davon ausgehen. dass weitere folgen. Gleichwohl lassen sich in den vielen Unstetigkeiten der Vergangenheit auch konstante Entwicklungen erkennen. mit deren Hilfe wir zumindest kurl- und millelfristige Trends mit einer gewissen Wahrscheinlichkeit prognostizieren können. Eine dieser Entwicklungen betrifft die Zunahme der Hardware-Komplexität. gemessen an der Anzahl der Transistoren. die ein eini'.cJner Silizium-Chip integriert. Betrachten wir die Entwicklung über die Jahre hinweg. so zeigt sich ein bceirKlruckelx:l stabiles Bild. Abbildung 1.25 demonstriert den Sachverhalt am Beispiel der Intel-Mikroprozessoren und belegt. dass die Hardware-KomplexiUlt seil dem Bau des erstell Mikroprozessors exponentiell zunimmt - ein
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?7 t'\II 111 no '>1 -t-fl?'nn'
32
1 EinfUhrung
Trend. der sich bis heute mit ungebrochener Geschwindigkeit fortsetzt. Leiten wir aus den Absolutwerten die Wachstumsgeschwindigkeit ab. so eJi1alten wir das folgende Ergebnis:
~ Satz 1.1 (Gesetz von Moore) [970
10' 10'
[0 1
[02
[03
Die Anzah I der aufeinem Chip integrierten Transistoren venloppelt sich alle 18 Monate (Moore's lmv).
[04
10'
Anzahl Transistoren
Die Gesetzm:tßigkeit tragt den Namen zu Ehren von Gordon Moore. derein exponentielles Wachstum der Chip- Komplexit:tt bereits im Jahre 1965 vorausgesagt hatte - wenn auch, wie in Abbildung 1.26 gezeigt. mit etwas abgeschwachter Geschwindigkeit.
"The comp/exil)' Jor minimum component costs has increased al a rale 0/ roughly a fuclor 0/1Im per yeur ... Cerwinly GI'er the shon term lhis rafe cun be e.xpeeted fO con· linue. if not fO increase. Over fhe longer ferm. fhe rafe 0/ increase is a bit more uno cerwin. although Ihere is no reason fO believe ;1 will not remain neurly constant Jor al least JO years. ThaI me/ins by J975, the number 0/ componems per imegraud cir· euit Jor minimum COSI will be 65.000. J believe Ihm such a large dreI/i! C1111 be built on a single wafer." [65]
Die Bedeutung. die das Moore'sche Gesetz fUr die Entwicklung der Computertechnik besitzt. ist selbst in Expertenkreisen bis heute umstritten. FUr einige spiegelt sich in der Gesetzm:tßigkeit schlicht der kontinuierliche Fortschritt eines ganzen Technologiesektors wider. Andere sehen im Gesetz von Moore eine treibende Kraft, die großen Teilen der Hardware-Industrie die Schlaggeschwindigkeil regelrecht aufzwingt. Ganz von der Hand zu weisen ist eine solch aktive Rolle nicht. Nahezu die gesamte Computerindustrie vertraute frtlher wie heute auf die GUltigkeit dieser Wachstumsprognose und richtete ihre mittel- und langfristige Planung darauf aus. Einige Experten sehen in Moore's law deshalb keinen empirischen Zufall. sondem eine Gesetzmaßigkeit. die im Sinne einer sich selbst erfUllenden Prophezeiung aus eigener Kraft wahr wunle.
Abbildung 1.26: Im Jahre 1965 prognostizierte Gordon Moore die exp:menlielle Zunahnr der Chip-Komplexitill. In leicht abgewandelter Fonn ist das Moore'sehe Gesetz bis trute gUllig.
Wann der Tag kommen winl. an dem Moore's lmv seine GUltigkeit verliert, ist umstritten. Dass der Tag kommen wird, gill als sicher - schon aus rein fundamentalen Überlegungen sind exponentielle Wachstumsraten nicht uber beliebig lange Zeitraume durchzuhalten. In der Tat wunle durch die gesamte Computergeschichte hindurch immer wieder postuliert, das Ende des Machbaren sei erreicht und jedes Mal waren es findige TUfller und Ingenieure. die samtliehe Kritiker Lugen straften. Damit ist es an der Zeit. hinter die Kulissen zu blicken und die Methoden und Techniken genauerzu beleuchten. die eine technische Entwicklung dieses Ausmaßes Uberhaupt erst möglich machten.
2 ZahlendarsteIlung und Codes
In diesem Kapitel werden Sie ... • mit &:m Additions- und lErn Stellenwertsystem die zwei grundlcgcn(kn Prinzipien vcr-
schicdcn:rZahlensySleme kenllen }ernen, • sehen. wie sich mit Hilfe der Vorzeicbenbitdarstcllung. ~m Eiocrkompkmcnt und dem Zwcicrtompkmcnt sowohl positive als auch tlCgative Zahlen innerhalb eines Computers
repräsentieren lassen. • mit der Fcstkomma.- und derGleitlmmmadarslcllung die zwei gangigen Zahlcnfonnate zur Darstellung rationaler Zahlen \'erstehen. • eine übersicht über die wichtigsten binärcodicncn ZahlcnsyslclllC gewinnen.
• die gängigen Fonllale zur Ccxlierung \'on Zeichen und Texten erlernen.
A"dih·
n":l
fl'> '?fV'lO
m·m fVl
_ 11 n.l. ,. "IOI"I(l " " t'\II 111 no
Q?QR1MflRQrlQ1 h1~..n 7ntN>l. " "IOI"ICl"", NI 111 no '>1 -t-fl?'ßO'
36
2 ZahlendarsteIlung und Codes
gesehen lasst sich die Basis 10 jedoch durch jede beliebige Zahl bEN ersetzen. J Mit anderen Worten: Jede Zahl z lasst sich in der Form
Btrntrsystem (b = 2)
+
o o
1
o o
o
z
"-, [a,.b
i
(2.3)
;=0
o 1
+
1
o
o
o o o
ao· bO +al ·b l +a2' b2 + ... + a M_[ ·bM-
1
(2.4)
beschreiben, die Ublicherweise als die b-adisclre Darstellung von z bezeichnet wird. Fordern wir wsatzlich fUr alle Ziffern die Beziehung
üktalsystem (b = 8)
+
o
1
1
o
2 5 +
7
4
2 2 4
3 4 7
o o o o 5 5
HexadeZimalsystem (b = 16):
5 +
7
c +
A 7
2 2 4
3 4
3 2 6
C 4
7
o
o 5 5
o D D
Tabelle 2.1: In b-adischen Zahlensystemen
kOnrrn wir wie gewohnt rechnen. Wir mUssen lediglich darauf achten, den Übertrag entsprechend der zu Grunde liegenden Ba-
sis korrekt zu bestimnrn.
o -::::ai < b,
(2.5)
so ist die Darstellung darüber hinaus eindeutig. In anderen Worten: Zwei Zahlen sind genau dann gleich, wenn ihre Ziffemfolgen ubereinstimmen - eine Eigenschaft die wir aus dem Wissen tiber unser Dezimalsystem heraus oft als selbstverstandlieh erachten. die sich bei genauerer Betrachtung jedoch keineswegs als trivial herausstellt. Neben dem rur uns vertrauten Dezimalsystem sind rur die technische Informatik die folgenden drei Zahlensysteme von besonderer Bedeutung. • Binarsystem Im Binarsystem werden alle Zahlen zur Basis 2 dargestellt. Da sich der Ziffernbereich auf die beiden Elemente 0 und 1 beschrankt. wird das Binarsystem auch als Dualsystem bezeichnet. Intern arbeiten moderne Computerarchitekturen nahezu ausnahmslos mit nur zwei verschiedenen Zustanden. so dass das Binarsystem mit Abstand das wichtigste Zah lensystem im Bereich der technischen Informatik darstellt. • Oktalsystem Dem Oktalsystem liegt die Basis 8 zu Grunde. so dass zur Darstellungeiner Zahl ausschließlich die Ziffem 0 bis 7 verwendet werden. Der große Vorteil des Oktalsystems wird deutlich. wenn wir uns der Konvertierung von BinarLahlen in dieses System zuwenden. Da mit b = 8 eine Zweierpotenz als Basis verwendet wird (8 = 23). entspricht eine einzige Oktalziffer exakt drei Bits in der Binardarstellung:
110111000010= 110 111 000 010 =6702 ~~~~
6
7
0
2
---=--,-----,-----,---,---,-cJFUr b = I degradien das Stetlensystem zum klassischen Additionssystem.
(2.6)
2.1 Zahlensystcme
37
Die heutc gängigen Bithreilell von 8. 16. 32. 64 und 128 Bit lassen sich jedoch nicht ohne Rest in Dreierpakete zerlegen. so dass das Oktalsystcm mehr und mehr an Bedeutung verliert. • Hexadezimalsystem Im Hexadezimalsystem werden alle Zahlen zur Basis 16 dargestellt. Da wir 16 verschiedene Ziffernsymbole benötigen. reicht der Ziffemvorral 0 bis 9 nicht mehr aus und wild deshalb um die Buchslaben Abis F ergänzt. Da dem Hexadezimalsystem mil b = 16 auch eine Zweiel"JXl'lenz als Basis zu Grunde liegl (16 = 2 4). lassen sich Binanahlen und Hexadczimall.ahlen ebenfalls auf auBerst einfache Wcisc ineinander überfUhren. Jcde Hexadezimalziffer repräscnüen exakt 4 Bits in der Binäldarstcl1ung: 110111000010 ... 110111000010 = DC2 ~
(2.7)
oe,
Wie die Beispiele in Tabelle 2.1 demonstrieren. kOllren wir in baelischen Zahlensystemen wie gewohnt rechnen. Alle Rechenregeln. die wir rur das Dezimalsystcm ''erinnerlicht haben. gelten auch in jedem anderen b-adischen zahlensystem. Wir müssen lediglich darauf achten. den Übertr.-Ig entsprechend der zu Grunde liegenden Basis korrekt zu bestimmen. Ixr übertrag entsteht stets bei der Addition von I auf die höchsnl'erti8~ Ziffer (9 im IXzimalsystem. I im Binärsystem. 7 im Oktalsystem. F im Hexadczimalsystem). Zur Angabe der Basis eincr Ziffern folge hat sich die Suffix-Notation durchgcsctzt, d.h. die Basis des zu Grunde liegenden Zahlensystems wird eier Ziffemfolgc als Ergänzung angehängt. 1100,
(Binärsystcm)
(2.8)
14,
(Oktalsystcm)
(2.9)
C"
(Hcxadczi malsystcm)
(2.10)
1st die Zahlenbasis aus dem Kontcxt hcrdus crsichllieh. wird auf deren Angabe in der Regel verliehtcl. FUr die Darstellung von Hexadczimalzahlen hat sil.:h außerdem eine Prlifix.Sehreibweise etabliert. Anstatl die Basis als Suffix anzuhängen. wird der ZifTemfolge I±r Präfix Ur vorangestellt. Rationale zahlen können mit der b-adischcll zahlendarsteIlung ebenfalls notiert wcrden. Hierw müsscn wir lediglich den ZifTembereich
A"dih· n":l I'l'> '?fV'lO m·m m
Historisch bedingt ist die Notation von Okl.lllzahlen in vielen Programmierspra. chen eher unglücklich gewahll Als Bei· spiel betrachten wir die Programmierspra. che C. die Anfang der Siebzigerjahre von [)ennis Ritchie und Brian Kemighan an ren AT&T Bell Labs entwickelt wurre (41.49.551. Auf Grund ihrer Maschi~nna.he ist C heute imnrr noch die am h:!.uligslen eingesetzte Progranuniersprache in den Bereichen SystemprograllUltierung und ...Embedded SysJems". In C fUlu\>n Oktalz.ahien immer wieder zu Wlliebsamen Fehiem. die insbesonc:rre Programmiernnfltnger oft HK ertrbtiehe Ritsel sIelien 1cllMen. Hierzu belrachJen wir das folge~ C.Programm: o .tr\llCt I int vorwahl; o char '"city; J o
oo o
phon. book lJ _
0 0
g
0721 . WKar1.ruh.- . 0 OB9, "München- J; 0
In der abgebilreten C·Struktur werren verschiedene Telefonvorwahlen reliniert und mit den zugehOrigen Ortsnamen ass0ziiert. C interpretiert nUlTI:rische Ziffernfolgen. die mit eirer 0 eingeleitet werren. allerdings nicht wie hier gewünscht im Dezimalsystem. sondern als OktatzahL Die Ziffemfolgen werden vom Compiler dadurch völlig falsch umgel'e(;h~l Auch dass die MUnchner Vorwaht mit ren Zifrem 8 und 9 zwei ungUltige Oktatziffern enthält, stön nicht jeden Compiler. Die Zirfernfolge wird in diesem Fallen wie folgt ausgewenet:
z= 8.8 1 +9·8° =64+9= 13 Die unglllck1iche Notation fUr Oktatzahten betrifft nicht nur die Programmiersprache C und deren direkte Abkömm· linge C++, Objtcti>·t-C und CII. Auch in moderneren Progrnmmicrsprachen. wie z.B. l(/I·(l. werden Oktalzahlen mit einer vorangestellten 0 eingeieilel
_ 11 I'l'> '?fV'lO m·m·m In·7.....n.l?70'i"Q?QR1Mf\RQrlQ1 h1~..n 7 ......tN>L " "IOI"ICl1'l'> f\II 111 no "1 ...o?'flll'
38
2 Zablendarstellung und Codes
--Yoclo (y)
10- 24
Zepto (z)
10- 21
Atlo (a)
10- 18
Femlo (f)
10- 15
Piko (p)
10- 12
Nano (n)
10-9
Mikro (j.l)
lO-b
Milli (m)
10-3
Zenti (c)
10-2
Dezi (d)
1Q-1
10"
2' Deka (da)
10'
Heclo (h)
10'
Kilo (k. K)
2'"
10'
Mega (M)
2'"
10'
Giga (G)
2'"
10'
Tera (T)
2'"
10
Peta (P)
2'"
10 15
Exa (E)
2'"
10 18
Zetla (Z)
2'"
10"
Yotla (Y)
2""
10"
12
Tabelle 2.2: Bezeichnung der verschieQ?QR1MflRQrlQ1 h1~..n 7 ......tN>L " "IOI"ICl fl'> t'\II 111 no '>1 ...o?'nn'
42
•
2 ZahlendarsteIlung und Codes
I Byte (8 Bit):
2.2
Rechnerinterne Zahlenformate
_0000000
•
Wertebereich: [0;2 8 -I] = [0;255]
2.2.1
2 Byte (16 Bit):
Nachdem wir uns ausgiebig mit der Thematik der Zahlensysteme ausei nandergesetzt haben. wollen wir uns jetzt mit der rechnerinternen Darstellung von Zahlen beschaftigen. Nahezu alle der heute eingesetzten Computerarchitekturen unterscheiden intern genau zwei Logikzustände und stellen Zahlen daher durchweg im Binarsystem dar. Jede positive ganze Zahl kann damit ohne Umwege eins zu eins im Speicher repr'dsentiert werden. indem jede Ziffer (0 oder I) rechneri ntern durch genau ein Bit im Speicher codiert wird.
_ _0 0 0 0 0 0 Wertebereich: [0;2 16 - I] = [0;65.535]
•
4 Byte (32 Bit):
_ _ _ _0 0 0 0 Wertebereich: [0;2 32 _1] = [0;4.294.967.295]
•
--------
8 Byte (64 Bit):
Wertebereich:
[0; 264 - I] = [0; '"" 1,84. 10 19]
Abbildung 2.5: Darstellung vorzeicllenloser ganzer zahlen mit verschiedenen Bitbreiten
Darstellung natürlicher Zahlen
Nahezu alle gangigen Computerarchitekturen fassen je 8 Bit zu einem Byte zusammen. Die Anzahl der Bytes. die zur Reprasentation ei nereinzeinen Zahl intern verwendet werden. definiert den darstellbaren Zahlenbereich und entspricht in der Regel einer ZweieJ1Xltenz 2 M• FUr die heute gangigen Bitbreiten sind die uberdeckten Wertebereiche in Abbildung 2.5 zusammengefasst. Die Speicherordnung einer Computerarchitektur legt fest in welcher Reihenfolge die einzelnen Bytes im Arbeitssreicher abgelegt werden. In Abhangigkeit der Speicherreihenfolge lassen sich die Architekturen modemer Mikroprozessoren in zwei Klassen einteilen und werden dementsprechend als Little-Endian oder als Big-Endian-Architektur bezeichnet. Die beiden Speicherauszuge in Abbildung 2.6 demonstrieren die unterschiedliche Anordnung der Bytes an hand einer vorleichenlosen. positiven Dualzahlmit einer Aullösung von 32 Bit:
Littte-Endian-Architektur
--,
Das Byte mit der niedrigsten Wertigkeit wird zuerst gespeichert
111111111111111111111111111 7 0 15 8 23 16
31
24
Big-Endian-Architektur
I
Das Byte mit der höchsten Wertigkeit wird zuerst gespeichert
Abbildung 2.6: Die Lillle-Endian und die Big-Endian-An:hilektur im Vergleich.
31
24
11 I I I I 11 I I I I I I 11 I I [III]IIITIJI]I 23 16 15 8 7 0
---,
2.2 Rechnerinteme zahlen formate
43
Lil1lt!-Endian-A rcllirekturen speichern die 4 Bytes der Dualzahl in mifsuigt!nder Reihenfolge ab. d.h. das Byte mit der niedrigsten Wenigkeit (Bit 0 bis Bit 7) wird zuerst und das Byte mit der höchsten Wenigkeit
zulet7.1 im Speicher abgelcgt. Dieses Format wurde bereits mit dem ersten Mikroprozessor. dem Intel 4(X)4. cingclUhn. Der Prozessor arbeitete damals intern mit einer Bitbrcite "on 4. so dass zur Addition zweier längerer Datenwöncr Illchrere solcher Vicrerpakete sukzessi"e addien werden mussten. Da bei er,. Addition mit dem niedrigstwenigen Bitpaket begonnen wird. wurden die Datenwöner im Sreicher in aufsteigender Reihenfolge abgelegt und die Idee der Lillle-Endian-Technik war geboren. Obwohl die Bitbreiten heutiger Prozessoren ein Vielfaches betragen. halt Inlel bis heute an ocr Lilllc-Endian-Architektur fest. Im GcgcnsalJ. hienu speichern Big.Endian-Archiukruren die einzelnen Bytes in umgekehncr Reihenfolge. d.h.. das höchstwertigc Byte wird ~rst im Speicher abgelegt. Die Big-Endian-Architektur erscheint als die natürlichere. da das entstehende Speichcrbild der WlS \ t'\A 111 no '>1 ...o?'flll'
44
2 Zahlclldarstcllung und Codes
_ _ __
8 ...........•.......................................
,, ...................... ............ , ................ • ............. 7
.
. .
_------_ _--
,, ••••••_ ••••••••••..•..•Si!'::--ö':: --S--::.·ö·-,:: 3
..._
~§:§§:::g==
o
·, -o-s-o'9••9..'?'?. ., ...ä ~ 88-5:::::::··_·················· _c:o-.
••••••
• Symmetrie Ein Zahlcnfonnat heißt symmetrisch. wenn mit derZahl z stets auch die Zahl -z dargestellt werden kann. Die Symmetriceigenschaft ist erstrebenswen. da in diesem Fall die Negalionsopcration innerhalb der Menge der darstellbaren Zahlen abgeschlossen ist. Unsynllnetrische Zahlensysteme bergen die Gefahr unvorhergesehener Wenüberlaufe. [kr simple Wechsel des Vor/.cichcns einer Zahl kann in diesem Fall zu völlig falschen Ergebnissen lUhren.
~
• ·S ~
.
Vorzeichenbitdarstellung
·7
"'>bildung 2.7: Die Vonek:henbitdarslelhUlg. hier cl'monstrierl am zahknstrahl Der abgedeckte Wertebereich ist syrnIlEtrisch. allerdings besilZl die Null zwei Darstelhmgen. Bei '?fV'lO
m·m·m
Die einfachste Möglichkeit. negative Zahlcn zu repräsentieren. ist die explizite Darslcllung des Vorl.cichcns durch ein festgclegtes Bit. Die meisten Vorl.cichcnbilC!arstellungcn reprtl.sentieren positive Zahlen mit einer 0 und negativc Zahlen mil ciner I an der höchstwcnigcn BitsteIle. Diese An ~r Fcstlegung kommt nicht von ungcl1l.hr. da nur so die Bitmuster der positivcn Zahlen mit den Bitmustem der \'or.lcicbcnloscn Darstcllung übereinstimmen. Abbildung 2.7 demonstricn die Vor.lcichcnbildarstcllung am Beispicl der vierstelligcn Dualzahlen. Die Vorl..Cichenbildarstcllung bietct mehrere Voncile. So ist 1..8. das hNenieren eincr Zahl sehr cinfach möglich. HierolU müssen wir lediglich das Vor.lCichcnbit kippen - alle anderen Bits bleiben U1Ner3nden. Da wir auf diese Weise rur jt'(\c Zahl +z auch den negienen Wen -z repräsentieren können. ist die Zahlendarstc[[ung symmetrisch. Wie in Abbildung 2.7 deutlich zu sehcn ist. ist die VorLeichenbitdarstellung allerdings nicht eineindcutig. da die Null verschiedene Repräsentationen besitzt. Unabhängig von dcr Bilhreilc gelten die folgenden Beziehungen:
+0 -0
000 .. 000
(2.31 )
100 .. 000
12.32)
Leider funktioniert auch die Binärarilhmetik nicht mehr wie gewohnt. dh.. wir dUrfen das Vorl.cichenbit bei der DurchfUhrung arithmetischer Operationen nicht wie die anderen Bits behandeln. Tun wir dies trotzdlm. erhalten wir falsche Ergebnisse. wie das Beispiel in Tabelle 2.3 auf eindringliche Weise demonstriert.
In·7.....n.l?7 t'\A 111 no '>1 ...o'J'nn'
2.2 Rechnerinteme Zahlen formate
45
8
Einen anderen Weg. negative Zahlen zu repräsentieren. verfolgt das Einerkomplell'lenl. Stall cin einzelnes festgelegtes Bit zur Repräsentation des Vorl.cichens zu vcrwenden. wird cine Zahl z negiert indem ihr Bitmuster. wie in Abbildung 2.8 dargcstelll. vollSUlndig invertiert wird. Wie schon im Falle der VOf/.cichcnbitdarstellung ist der abgedeckte Zahlenbercich symmctrisch und die Bilmuster der positiven Zahlen sind identisch mit den Mustcm dervofzcichenlosen Darstellung. Ungelöst bleibt jedoch das Problem der Doppe Idarstellung der Null:
+0 -0
(2.33)
111. .. 111
(2.34)
Damit tcilt das Eincrkomplcment einen wesentlichen Nachteil mit der Vorl.eichcnbildarstcllung. Dadie Null immer noch aufzwci \'Crschicdcnc Wciscn abgcbildct wcnlcn kann. ist die EincindcUligkcit dcrZahlendarstcllung nicht gcgeben. Der groBe Vortcil (ler Eincrkomplemcntdarstcllung kommt crst zum Tragen. wcnn wir uns (len arithmetischen Eigcnschaften zuwcnden. Anders als bei \·orl.cichcnbchafteten Zahlen können wir Einerkomplemcntzahlcn auf recht cinfache Weise addieren Die Addition erfolgt in drei Schrillcn: I. AusfUhren dcr geW0?0R1MflRQrlQ1 h1~..n 7"""trL ,. "IOI"ICl " " t'\A 111 no '>1 ...o?'nn'
46
2 Zablendarstellung und Codes
8
.
um I zu geringes Ergebnis. Zum Ausgleich des numerischen Fehlers muss die Oberrragsaddilionsregel angewendet werden, die besagt, dass entstehende Übertrage sIels auf das Endergebnis aufaddiert
,,, ,,, , o g_o_o_o_ .,.,. , l~i~..~..~.~.~.:::::::::::::::::.::=:::~ ~ ~ ~ ~ ~ ~ ~ :::::::::::::::::.-=::: ., .,., .,
werden mus.sen
·8
Abbildung 2.9: Im EiJrrkomplemenl besitzt die Null zwei verschieden: Darstellungen Starten wir bei eitrr n:gativen Zahl, so bewegen wir uns mit der Addition von I auf dem zahienstrahi einen Schritt nach rechts. Wegen der DoppeldarsteIlung
der Null erhalten wir beim Übergang vom Irgativen in den JX)Sitiven Zahlenraumein
8
0_0_0_0_
.
,,, ,,, ';':'·8···5··ö· ';.' , ......-= 8 '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·nn·nn
, +
6
+
+
0101
(')
tOIO I I 11
(-6) ( 1)
0101 1101
(') (-3)
71 0010
(2)
TlIlk'llc 2.5: Im Zweierkomplement kOnren wir voneichenbehaftete Zahlen nach ckn t1blichen Regeln ckr Bilillrnrithmetik addieren. Srezielle Regeln wr Behandlung cks übenrags. wie sie im Einerkomplement noch nötig waren. entfallen hier vollstän· dig. Ein entstehender Übertrag wird wie das zweite Beispiel zeigt. ersatzlos geslri· ohm
In·7.....n.l?7 t'\A 111 no '>1 ...o?'nn'
48
2 ZahlendarsteIlung und Codes
Die größte und die kleinste darstellbare Festkommazahl i:tsst sich aus der Definition des Zßhlenfomlats direkt ableiten. Hierzu betrachten wir zunächst die Bit-
muster der gesuchten zahlen Zmax und
i_I 2'
Mit einem kleinen Trick können wir die obige Dezimaldarstellung von 0) oder links (E < 0). In Anlehnung an die englische Bezeichllullgfiooting point number wenlen Gleitkommazahlcn im Deutschen auch als Fließkol1UllOlPhlen bc7-cichnel.
A"dih·
~•
Was war nun die Ursactle tur li:n vielleicht bekanntesten Fehler der ITGeschichte? ~r P\lntium-FOIV-Bug geht schlicht auf exakt tunf falsche Tabettenelnlrtlge der Koctnzientenmatrix zuruck [23.70). Anstelle dcs Werts 2 enthalten diese zellen In fehlerhaften PcnliumProzessoren den Wert O. Dass der Fehter nur bei wenigen Zahlenkombinationen auftritt. liegt an der ungleichen Wahrscheinlichkeitsveneilung. mit der die zellen ausgelesen werden Mit dem Erscheinen der Nachfolgemodelle Pcnlium Pro und Pentium MMX gehOne der FOlYBug der Vergangenhcil an.
In·7.....n.l?7 t'\JI 111 no '>1
...o?'f\(\'
50
2 ZahlendarsteIlung und Codes
Exponent
C-E+k -"" Char:tktcristik
o Abbildung 2.12: In den gängigen Gleitkommafonnaten wird der Exponent in Fonn der Charakteristik gespeichert. Der Wertebereich der Charakteristik entspricht dem ins Positive verschobelrn Wertebereich des Exponenten und wird durch die Addition einer Konstanten k zum Expolrntell berechn:t. Der Wert von k entspricht dem Betrag des kleinsten darstellbaren Exponenten
tebereich. Wahrend die Mantisse dieAujlösungsgenauigkeit des Zahlenformats festlegt. beeinl1usst der Exponent vor allem die /ntervallgrenzen und bestimmt damit maßgeblich die kleinste und die größte darstellbare Zahl. Das Bezeichnungsschema sXeY hat sich als Kurlform fUr die Beschreibung eines Gleitkommaformats etabliert. das neben einem separaten Bit zur Darstellung des Vorleichens X Bits fUrdie Mantisse und Y Bits fUr den Exponenten aufwendet. Als Beispiel betrachten wir das Format slOe5:
t 5 t4
Exponent 7 .......•.•.•..........•.•.•............•.•.• -=... 6 .-= •••••• 5 _ . 4
_._._
_._._
3
_._._
_._._
~_._._
_._
.
10
_
00000, 110 I . 2-'
(2.40)
T'
OOO,(X)] 101· 2°
(2.41 ) (2.42)
00,((X)] 101· 2'
(2.43)
O,CXXX)] 101· 2'
(2.44)
0000,01101·
.
,, '8 ';';'ö':':"8" ';';'ö·;:··· ····· . 8 §8 80 55 5-······················ .° , ., ................ .. .'-.::.::. .. . ~
M
Um uns mit dem Format naher vertraut zu machen. wollen wir versuchen. die Zahl z = 101,001 2 in diesem Format darLUsteilen. Hierlu bringen wir z zun:lchst in die Form von Gleichung (2.37). Wie die folgenden Beispie le zeigen. ist die Darstellung allerdings keineswegs ei ndeutig: 0,001101
8
o
10 9
V, c ...t ... _ 5
s;(~O~8~O~
Charakteristik
Folgerichtig handelt es sich bei der Gleitkommadarstellung nicht um ein eineindeutiges Zahlenformat. Die Beispiele zeigen auch. dass wir den Wertebereich des Exponenten im Allgemeinen nicht auf den positiven Zahlenbereich beschranken dUrfen. Insbesondere dann. wenn die Darstellung sehr kleiner Zahlen möglich sein soll. kommen wir um die Speicherung negativer Exponenten nicht herum.
Abbildung 2.13: Darstellung der Charakteristik am zahlenstrahl. Die Charakteristik C ist auf der x-Achse und der ExpoJrnt E auf der }"-Achse angetragen Das Beispiel zeigt die Reprtlsentation eines 4-BitExpoJrnten mit dem Wertebereich [-7; 8]. Die Charakteristik berechnet sich durch die Addition der Konstanten k = 7.
In Abschnitt 2.2.2 haben wir mit der Vorleichenbitdarstellung. dem Einerkomplement und dem Zweierkomplement bereits drei Möglichkeiten kennen gelemt. wie wir einen vorleichenbehafleten ganzzahligen Exponenten speichern können. Tats:lchlich wird in den gangigen Gleitkommaformaten keine dieserdrei Möglichkeiten eingesetzt und der Exponent stattdessen in Form der so genannten Charakteristik gespeichert. Die Charakteristik C verfolgt die Idee. den Wertebereich des Exponenten. wie in den Abbildungen 2.12 und 2.13 gezeigt. durch die Addition
···················~···i!S800~~;::;:: ~
'-. '- '.':" "'": ·3 .......•.•.•. ~ .....•.•.•............•.•.•....... ·4
·S ·6
.
_
. .
_
·7 _ ·8
.
2.2 Rechnerintcme zahlen formate
51
einer Konstantcn k in den positiven Wertebereich zu verschieben. Hierdurch können wir das Bitmuster der Charakteristik als vorLeichcnlosc Dualzahl behandeln und den Exponenten jederLeit durch die Subtraktion der Konstanten k zUrtlckcrhaltcn. Obwohl nicht zwingend erforderlich. vcrwenden die meisten in der PraxiseingcsclZlcn Glcitkommafonnatc einen nahezu symmetrisc~n ZahIcnbereich rurden Exponentcn. Im Falle unseres Beispielfonnals sllkj können wir mit den fünf Bits des Exponenten 32 \-erschiedene Wene darstellen. Wahlen wir das Intervall [-15: 16] als Wertebereich. so berechnel sich die Charaklerislik als C = E + 15. Wie in Abbildung 2.14 ski7.ziert. sind wir mit Hilfe dieser Vorarbeit in crr Lage. die verschiedenen Gleitkommadarstellungen (2.40) bis (2.44) ohne Umwege inentsprechc~ Bitmustcrzu Ubertragen. Die Mehrdeutigkeit des zahlcnfonnals wurde uns in der Praxis allerdings vor nicht zu untersch:1l1.Cndc Probleme stellen. Da zwei Zahlen trotz wlterschioolicber Bitmusler trotzdem gleich scin können. ist die Implementierung crs Gleichhcitstests sehr aufwendig. Des Weiteren wird die Anzahl der darstellbaren Zahlen durch die Mehrfachbclegung \'on Bitmustem klei~r als nölig. In der Praxis werden Gleitkommazahlen deshalb fast immer normalisiert gespeichert. d.h.. dic Position des Kommas wird mit Hilfe einer entsprechenden Normafisienmgsregel eindeutig festgelegt. Typischerweisc kommt eine der folgenden beiden Nonnalisierungsregehl zum Einsatz:
•
0Cl000, 1101 .
v, C M 0
•
tlOI~
1 1 0 1 000000
00::0,01101· 2- 1
C
At 0
= = =
OIIOI~
0
OO).OOtIOI·
At
= = =
o1
1 1 1
C
0
0 15-1=14
" ," ," V,
•
0 15-2=13
" ," V,
•
= = =
,-,
tJ 0 15-0= 15 OOIIOIOOOOz 0" 1 0 1 0 0 0 0
00,0001101. 2 1
V, C M
• Nachkolllmanormalisicrung
= = =
0 15+ 1= 16 000 1101 OOO:!
Die erste N(IChkommastelle enthält die höchste Ziffer ungleich O. 0
• Vorkommanomlalisierung Die erste Vorkommasrelle enthalt die höchste Ziffer ungleich O.
•
1 0 0 0 0
0,00001101·
V, 1m Falle der Vorkommanormalisierung ist das erste Bit der Mantisse eine Vorkommasrelle. so dQ?QR1Mf\RQrlQ1 h1~..n 7 ..... tN>l. ,. "IOI"ICl fl'> t'\II 111 no '>1 ...o?'nn'
52
•
2 Zablendarstellung und Codes
Nachkommanormalisiert, ungepackl: 0,001101
o
C M
15-2=13
001101
•
1 101 000 000
0,1101.2- 2
V,
o
C M
(1) 1012
001101
15-2=13
10100 0 0 0 0 0
Vorkommanonllalisiert, ungepackl: 0,001101
•
1101 2
Nachkommanormalisiert, gepackt: 0,001101
•
0,1101.2- 2
V,
1,101.2- l
V,
o
C M
15-3=12
Durch die normalisierte Speicherung von Gleitkommazahlen erreichen wir nicht nur die Einei ndeutigkeil der Zah lendarslellung, sondem erhal-
ten zusHtzlicb die Möglichkeit. die Genauigkeit der dargestellten Zahl zu erhöhen. Da das erste Bit der Mantisse durch die Normalisierung stets I ist können wir auf dessen Speicherung verLichten und haben damit Platz für ein zusatzliches Bit. Wird das erste Bit auf diese Art ei ngespart. so sprechen wir von ei ner geJXlckten oder impliziten Darstellung. Werden stattdessen. wie bisher. alle Bits der Mantisse gespeichert. so sprechen wir von einer lmgepackten oder expliziten Darstellung. Damit ergeben sich insgesamt die vier in Abbildung 2.15 zusammengefassten Möglichkeiten. eine Gleitkommazahl normalisiert abzuspeichern. Die gepackte Darstellung bietet uns zwar die willkommene Möglichkeit. die Auflösungsgenauigkeit des Zahlenformats zu erhöhen. bringt auf der anderen Seite aber auch Nachteile mit sich. Durch die implizite Eins an der ersten Vor- oder Nachkommastelle haben wir in dem entstandenen Zahlenfonnat keine Möglichkeit mehr. die Null darwstellen. und damit ein Format geschaffen. das in dieser Form für die Praxis nahezu nutzlos ware. Um trotzdem eine Reprasentation der Null zu ermöglichen. definieren die meisten gepackten Zahlenfon11ate reservierte Bitmuster. die eine Sonderbedeutung besitzen und damit nicht im Sinne der allgemeinen Berechnungsformeln (2.39) bzw. (2.47) interpretiert werden. Mit den IEEE-754-Gleitkommaformaten werden wir im nachsten Abschnitt zwei dieser Zahlenformate genauer unter die Lupe nehmen.
1101 2
001 100 1 101 0 0 0 0 0 0
Die IEEE·754-Gleitkommaformate
Vorkommanonnalisiert, gepackt:
Die IEEE-754-Norm wurde 1985 vom Institute 0/ Electrical and E/ectronics Engineers (IEEE) zum Zweck der Standardisierung ins Leben gerufen und definiert mit dem Single-precision- und dem Doub/eprecision-Format zwei der wichtigsten Formate zur Darstellung von Gleitkommazahlen. Nahezu alle der gangigen Mikroprozessoren unterstutzen heute die IEEE-754-Norm und auch die Sprache Java stellt Gleitkommazahlen durchgangig in diesen Formaten dar.
0,001101
1,101.2- l
V,
o
C M
(1) 1012
15-3=12
001 100 101 000 0 0 0 0
Abbildung 215: Durch die Kombination der bei1 ...o?'nn'
54
•
2 Zablendarstellung und Codes
Denormalisierte Darstellung:
eine Division durch null erfolgt oder zwei Zahlen addiert wenlen,
o o
31 23 00000000000110 Y= Charakteristik C
deren Summe außerhalb des gUltigen Wertebereichs liegt. Nicht definierte oder unbekannte Werte (NaN, "Nota Number") werden dargestellt. indem neben den Charakteristik- Bits mindestens ein Bit der Mantisse ebenfalls gleich 1 ist. Alle algebraisch undefinierten Ope-
rationen wie z.B. 0/0, muster als Ergebnis.
Mantisse M
(_1)V~.O,M.2-126
Z ;::
oder Q. '?fV'lO
m·m fVl
_ 11 fl'> '?fV'lO
m·m·m
"
21 z2 lJ"e Zitr....
I
2'
,
~
Recllle ZiffC1"
I
AbbildUlll: 2.20: In einigen AnwendungsflIlien sind binltr codierte DeZimalsysteme gegenllbcr dem klassischen Birillrsystem im Vorteil. Win1 der darwstellende Wert in der gezeigten 7-Segment-Anzeige wie gewöhnlich im Binärformat gespeichert. so ist eire komplexe Dccodierungslogik notwen· dig. Wird der Wert stal1dessen ziffemweise abgelegt. vereinfacht sich die Decodierung auf ein Minimum.
In·7.....n.l?7 NI 111 no '>1 ...o7nn'
56
2 ZahlendarsteIlung und Codes
Sllbitz-Code
DeZimal
(Excess-3)
Aiken-Code
Gray-Code
Erweiterter Gray-Code
0
0000
0011
0000
0000
0000
1
0001
0100
0001
2
0010
0101
0010
000' 0011
000' 0011
3
0011
0110
0011
0010
4
0111
0'00
5
0'00 0101
00'0 0110
1000
1011
0111
0111
6
0110
1001
1100
0101
0101
7
0111
1010
1101
0100
0100
8
1011
1110
1100
1100
9
'000 1001
1100
1111
1101
1101
10
00010000
01000011
0001 0000
0001 0000
1111
11
00010001
01000100
0001 0001
0001 0001
1110
12
00010010
01000101
0001 0010
0001 0011
1010
13
00010011
01000110
0001 0011
0001 0010
1011
14
00010100
01000111
0001 0100
0001 0110
15
00010101
01001000
00011011
00010111
'00' '000
0110
Tabelle 2.6: Tetraden-Codes in der Übersicht BeispIel 1
+ + Im1
0100 1001
(4) (9)
1101
I I
0110 0011
(6) (13)
1001 1001 0010 0\10 1000
(9) (9) (12) (6) (18)
BeIspIel 2
breite Tetrade dargestellt. Da wir im Falle von Dezimalzahlen zur Codierung der Ziffem 0 bis 9 nur zehn der sechzehn möglichen Bitmuster benötigen. existieren in jedem Tetraden-Code jewei ls sechs PseudoTetraden, die nicht benutzt werden. Tabelle 2.6 gibt eine Übersicht uber die am h:tufigsten verwendeten Codes.
Der BCD-Code
+ (0)]
+ (0)]
Tabelle 2.7: Numerische Überläufe lassen bei der Addition zweier BCD-Zßhlen
falsclr Ergebnisse entstellen und müssen durch die Addition der Korrektur-Thtrmr 0110 ausgeglichen werden Hierdurch wird der ungUltige 2.ahlenbereich der Pseudo· Tetraden Ubersprungen
Der BCD-Code ist der am h:lufigsten eingesetzte Tetraden-Code und ist uns bereits weiter oben im Zusammenhang mit der 7-Segment-Anzeige begegnet. Der Code weist den einzelnen Bits innerhalb einer Tetrade die Wertigkeiten 8, 4, 2 und I zu und winl aus diesem Grund auch als 8421-Code bezeichnet. Den Wertigkeiten entsprechend können wir jede Tetrade wie eine gewöhnliche Bin:lrLahl interpretieren, so dass sich jede Dezimalzahl auf einfache und naturliehe Weise in das BCD-Format Ubersetzen lasst. Das Codewort einer Ziffer z winl konstruiert indem wir zun:tchst die Binardarstellung von zerLeugen und durch das Voranstellen von Nullen auf vier Bit erg:lnzen.
2.3
Zahlenc{)(~s
57
Anders als in den klassischen Zahlensystemen ist die Durchfl"ihrung arithmetischer Operationen in Tetraden-Codes dewlich erschwert. Tabelle 2.7 demonstriert die Addition von BCD-Zahlen ahand zweier Beispiele. Im ersten Beispiel ergibt die Summe der beiden einstelligen Dczimall.ahlen 4 und 9 das Bitmuster 1101 und damit ein ungÜltiges Bitmuster. Im zweiten Beispiel entsteht durch die Addition von 9 und 9 ebenfalls ein um den Wcrt 6 zu kleines Ergebnis. Schuld daran sind die Pseudo-Tetraden. die durch die unterschiedlichen Zahlenbereicte des Binar- und des Ixzimalsystems entstehen. Wie die Beispieladditionen zeigen. können wir den Rechenfehler allerdings recht einfach ausgleichen. indem wir luslll1.lich die Korrektur-Tetrade 0110 addieren. sobald die Summe lweier BCD-Ziffern entweder eine Pseudo-Tetrade ergibt (Beispiel I) odereincn Obcnrag generiert (Beispiel 2).
Der Stibitz-Code Die BitmUSler des 5libil '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
+
0101 1001 1110 0011 1011
+ +
0001 0011 0100
(2)
(6) (1)
(8)
1001 1100 0101 0011 1000
(6) (9) (1)
(5)
Abbildung l.lJ: Je nachdem. ob bei der Addition z.....eier StibilZ-Ziffem eine oder z..... ei Ergebnis-Tetraden enls'e~1L muss die Korrektur·Tetrade 0011 entweder subtmbien oder addien werden.
+ 0001 0001
+ +
(6) (6) (7)
1100 1100 1000 0110 0010
0010 0100 0110 0110 1100
( 12)
(2) (4) (?) (6)
Abbildunj: 2.22: Bei der Addition im Aiken·Code wetden Pseudo-Tetraden durch die Subtraktion bzw. Addition der Korrektur·Tetraden 0110 komgien. je nachdem. ob mit der Pseudl)-"Tetrade ein zuS1llZlicher Übenrag enlStanden ist oder nicbt
In·7.....n.t?7 '?fV"lO
m·m fVl
_ 11 fl'> '?fV"lO
m·m·m
Traversieren wir den Baum von t'\II 111 no '>1 ...o?'lln'
62
2 Zahlendarstellung und Codes
-----------_ .. _ .... --NUL
SaH
STX
ETX
EOT
ENQ
ACK
BEL
BS
NT
LF
VT
FF
CR
so
SI
aLE
OCI
0C2
OC3
OC,
NAK
SVN
ETB
CAN
EM
SUB
ESC
ES
os
RS
US
#
$
%
&
(
)
•
+
0
I
2
3
4
5
6
7
8
9
>
,
@
A
B
C
D
E
F
0
H
I
J
K
L
M
N
0
Q
R
5
U
x
y
z
[
\
c
v r
W
b
T d
g
h
k
I
m
0
[
I
"
p
p
,
q
NUL SOH STX ETX EOT
ENQ
ACK BEL BS HT LF
,
,
, ,
,
w
,
y
Null value
VT
Vertical Tabulation
Start of Heading Start of Text End ofText
FF
Form Feed Carriage Return
End ofTransmission Enquiry Acknowledge Bell Backspace Horizontal Tabulation
Line Feed
CR SO S[ OLE OC NAK SYN ETB CAN
I
1 -t-fl?'llO'
70
Aufgabe 2.8
"""
Webeode
2740
2 ZahlendarsteIlung und Codes
Gegeben sei das folgende Formal fUrdie Darstellung von Gleitkommazahlen:
31 30 Vz
o
2423 Mantisse M
Charakteristik C
.. 1.. - 7 - ••- - - - - - - - - : 2 4 - - - - - - - - -
Das Vorlcichenbit Vz bestimmt. ob es sich bei der dargestellten Zahl um eine positive (Vz = 0) oder eine negative (Vz = I) Zahl handelt. Der Exponent wird in Foml einer Charakteristik gespeichert. die sich durch Addition der Konstanten 64 aus dem Exponenten berechnet. Sind alle Bits der Mantisse gleich O. so wird die Zahl Null dargestellt. Ist mindestens ein Bit der Mantisse gleich L so berechnet sich die dargestellte Zahl wie folgt: (2.48) a) Welche Art der Normalisierung wird hier verwendet?
b) Welches ist die größte positive. die kleinste positive. die größte negative und die klei nste negative Zahl. die in obigem Format dargestellt werden kann? Geben Sie neben den Zahlen im Dezimalsystem auch die entsprechenden Bitmuster der Gleitkommadarstellung an. c) Was andert sich. wenn ein Bit der Mantisse zu Gunsten eines Bits rur die Charakteristik aufgegeben wird? d) Was andert sich. wenn die Charakteristik durch die Addition der Konstanten 128 anstelle der Konstanten 64 berechnet wird? e) Was andert sich. wenn die Charakteristik direkt als Exponent verwendet wird?
Aufgabe 2.9
Die folgende Tabelle enth:tll die ersten zehn Bitmuster des Glixon-Codes:
Webeode
"""
0,
0000
t
2501
4,
0110 1100
5,
8,
"
000' 0111 1000
" 6,
0011
3,
0010
0101
"
0'00
Wie Sie vielleicht bereits bemerkt haben. weist der Glixon-Code eine große Ähnlichkeit mit dem Gray-Code auf. In welchen Anwendungsfallen ist er besser geeignet. in welchen schlechter?
2.5 Obungsaufgabcn
71
~milc Bauclot entwickelte 1870 einen 5-Bit-Zeichencodc. der nicht nur zu einer deutlichen Vereinfachung der TelcgrdrlC führte. sondern auch als der Vorläufer moderner Zeichcncoclcs gilt. Der Baudot-Codc ist ein so genannter Umschalrcode und besteht aus insgesamt zwei Tabellen - der Buchsrabenrabelfe und der Zahfemabelle:
00'00
A
00110
000'. 00011
Buchslawmal:lelle 01011 F 11001
R
1
ZM1Jentabetle 01011 9
00110
2
01010
3
01110
41
4
01100
51
10111
00'00
•
11001
7
'000'
(
10101
)
E
01010
G
'000'
E 1
01110 01100
H
10101
S T
J
10111
V
000'. 00011
00111
0
11100
W
00111
5
11100
U V
1111 0
K L
10011
00101
10010
X
00101
11
11110
91
10010
11010 11011
M
10110 10100
Z
0000' 01001
31 6
11010 11 011
71
10110 10100
11111
P
01101
7
11111
11101
Q
01111
8
11101
0000' 01001 01101 01111
B C 0
N
10011
21
Aufgabe 2.10 ,,-~
ib
Webcode 2219
I +
,
=
WelcllC der bciden Tabellen zur Dccodierung des aktuell gelesenen Bilmusters \'Crwendct wird. entsetcidel das \'orangegangcne Lccr.leichen. FUrdieses Zeichen sind im BaudOl-CocIc zwei Bitmuster reserviert. die als ScitenclTekt das Hin- und HerschaUen zwischen den bciden Dccodierungslabcllen bewirken. Als weiteres Steuer.leichen kennt der BaudOI-CQ?QR1MflRQrlQ1 h1~..n 7"""tn>l. " "IOI"ICl fl'> t'\A 111 no '>1 -t-fl?'fln'
72
Aufgabe 2.11
""'''
Webeode
2835
2 ZahlendarsteIlung und Codes
Der Ettended Binary Coded Decimals Interchange Code. kurl EBCDIC, wurde Anfang der Sechzigerjahre von der Firma IBM entwickelt und zusammen mit dem Systeml360 der Öffentlichkeit vorgestellt. Bis heule wird EBCDIC auf diversen Großrechnern des Herstellers IBM eingesetzt. Der folgende Tabellenausschnitt zeigt die Anordnung der darstellbaren ASCII-Zeichen in der Zeichensatztabelle EBCDIC-500. Welche Vorteile könnte EBCDIC gegenuber dem ASCII-Code bieten? In welchen Anwendungsfallen ist der ASCII-Code Uberlegen?
. . . . . . . . . . . . . . . . .IDIIDIIiII. .ImID1Ii1 ..
[
B&
]$*)
..
I
..
• .. ...
< % #
(
+ >?
'"
abcdefgh k mnopqr s uvwxyz
lIiII BIABCDEFGHI
IiI'JKLMNOPQR
B' Do Aufgabe 2.12
"'''''
STUVWXYZ
23456789
In diesem Kapitel haben Sie mit dem UTF-8-Format eine weit verbreitete Codierung von Unicode-Zeichen kennen gelernt.
Webeode
2418
a) Wie sieht das Unicode- bzw. das UlF-8-Bitmuster der Zeichen .,a" und ,,€,' aus? b) Decodieren Sie die im UTF-8-Fon11at vorliegende Bin:trsequenz llOOCXXll 10100001. Was nUll Ihnen auf? Wie kann das Problem behoben werden? c) Die ersten 216 Zeichen des Unicodes sind identisch mit dem Zeichensatz Latin-l der ISO 8859-1. Entspricht damit jeder ISO-8859-1-codierte Text automatisch auch dem UTF-8-Standard? d) Gegeben sei ein beliebiger Text im Uni code. Der Text wird wn:tchst in eine Zeichenkelte der Programmiersprache Java UberselZt und anschließend in das UTF-8-Format konvertiert. Kann die UTF-8-Codierung zu einer Vergrößerung des Datenvolumens fUhren? Wenn nein. warum nicht? Wenn ja. um wie viel?
3 Boolesche Algebra
In diesem Kapitel werden Sie ... • mit d:r boolcschen Algebra das mathematische Gcrust des Schallungscntwurfs erwerben. • d)c SchaltaJgebra als eine splzielle b001escllc Algebra verstehen, • die wkhligstcn Logikoperatoren und Umfonnungsregcln kennen Jemen. • die Hthigkcil erwerben. boolesche Ausdrücke algebraisch zu vereinfachen. • die Nonnalfomxlarstcllungen booieschcr Funl::lioncn erlernen.
i'VV= (1", I"~
,0
(:CVy) ,,,\, rl
(lAY))-
((.IVv)V(iAi'II· I!l. "', (iAm ((.tVyVX)A (.IVV'll\,,1 ,I
(((:cV.l)Vy)lI(xV(vVv))i
•
ill/'-)
CA"AY)-
iiliy)/Il
y»=
((1 v ,)A{.IV I JJ ,1\ ((.1" .1') V (.lA v))
(1 i\ 1)/\ ({xV)') , (.t Ay))_ 1/\ ((xV y) V (X IIY»-
{(:? 1\)') V (x Ar» A ((xV y)V ('\' AYll
=
Ix Ar) v (e:? Ar) !I (xV y» = (X Ar) v ((:\' AvA:c) V (xA yA y)) _ ('? Ar) v
«r:\, /I:cl A y) V (x A (y Ay))) =
(r AY) \/ (OA:t') V (x!\ 0)) =
-"-..,:(~r,,,rT v (0\1 0) !:: Ci \')"0
= L U;;-) Ci'Ay)
A"dih- n":l fl'> '?fV'lO (Vl-(V\ fVl _ 11 n. '?fV'lO
m·m·m
x+y=y+x (x+y)+z =x+ (Y+z) (x-I+y)-I+(x-I +)'-1)-1 =x Diese spezielle Art der Axiomalisierung wurde insbesondere im Zusammenhang mit den Axiomen von Robbins bekannt. die sich geringrugig unterscheiden und die Robbifls-Algebru definieren:
x+y=y+x (x +y)+ z= x+ (Y+z) ((.t + y)-I + (x + )'-1 )-1 )-1 =
,"
(12)
Edward ~rnlilye Huntington wurde am 26. April 1874 in Clinton. New yort. geboren und starb am 25. November 1952 in Cambridge. Massochusens. Sein akademisches Vermllchtnis umfasst zahlreiche Arbeilen zur axiomalischen Beschreibung verschiedener mathematischer Strukruren aus den Bereichen der Gruppen- und zahlentheorie sowie der Geometrie. Bekannt wurde Huntinglon jedoch vor allem durch seine Axiomalisierong der book:schen A 1gebra. die er erstmals 1904 \'erOffentlichIe. 29 Jahre spater konnte Huntington zeigen, dass die \'Ollstandige Beschreibung einer booleschen Algebl1l sogar mit nur drei Axiomen mögUch isl dte ausschlteP.lieh eine Aussage über den binaren Operator + und den unllren Operator ~I maeb::n [40.41):
X
SC~ll wurde die These postuliert. dass jede Robbins-Algcbra eine boolesche Algebra ist unc1 umgekehrt. Ein Beweis dieser Robbilu'schen Vermllfllfl8 blieb die Wissenschart jedoch 60 lahre lang schuldig. 1996 konnte die Vennutung schließlich auf spektakUläre Weise beSllitigt werden. Es war kein Mensch. sondern ein Computer. der das Problem mit Hilfe automatischer Beweiser selbstsllindig löste [20. 58. 59). Der Beweis der Robbins'schen Vernmlung gehört seitdem zu den Sternstunden der oomputergeslUtzlen Mathematik.
In·7.....n.l?71
...o?'f\(\'
76
....
f- 0)
..
3 Boolesche Algebra
V
2'
Potenzmenge (T
•
n
Schnittmenge
A
Konjunktion
+
U
Vereinigungsmenge
V
Disjunktion
,
T
Trtlgenrenge
,
-,"
TI
Leere Menge
Komplenrntännenge
{O, I}
Wahrheilswerte
Wahr (Tme)
0
Falsch (False) Negation
Taoclle 3.1: Die algebraische Struktur der booleschen Algebra am Beispiel der Mengen- und der Schaltalgebra
der leeren Menge 0 bzw. der Tragermenge T - beide sind aufGmnd der obigen Definition Elemente von V. Zu guter Letzt definieren wir das inverse Element A- l einer Menge A E V als die Komplementarmenge T\A. Abbildung 3.2 veranschaulicht die verschiedenen Mengenoperalionen auf grafische Weise mit Hilfe so genannter Venn-Diagramme.
(Ann)
(AUB)
Irl--,B T
~
Irl--,B T
~
TIA
T
D
Abbildung 3.2: Venn-Diagramme der drei elenrntaren Mengenoperationen
Dass es sich bei dem Tripel (2 T , n, u) tatsachlich um eine boolesche Algebra handelt. können wir anhand der GUltigkeit der vier Huntington'schen Axiome leicht Uberprtlfen. Die GUltigkeit des Kommutativgesetzes liegt auf der Hand. es macht schließlich keinen Unterschied. ob wir z.B. bei der Vereinigung zweier Mengen A und B erst die Elemente von A hinzunehmen und dann die Elemente von B oder umgekehrt. Die Argumentation rur die Schnittoperation erfolgt analog. Auch die Gesetze der neutralen Elemente sind in der Mengenalgebra unmittelbar einsichtig. Vereinigen wir eine beliebige Menge A mit ihrem neutralen Element 0. so erhalten wir als Ergebnis wieder die Ausgangsmenge A und damit das gleiche Ergebnis. das der Schnitt der Menge A mit der Tr'dgermenge T liefert. Um die Gesetze der inversen Elemente zu Uberprtlfen. mUssen wir gemaß Definition 3.1 zeigen. dass die Vereinigung einer Menge A mit ihrem inversen Element. d.h. mit der Menge T\A. das neutrale Element T der Schnittoperation produziert und der Schnitt einer Menge A mit ihrem inversen Element T\A das neutrale Element 0 der Vereinigungsoperation hervorbringt. In der Mengenalgebra liegt auch diese Gesetzmaßigkeit auf der Hand. Einzig im Fall des Distributivgesetzes mUssen wir genauer hinsehen. um uns von dessen GUltigkeit zu Uberleugen. Hierlu sind in Abbildung 3.3 die Venn-Diagramme der linken und rechten Seiten der beiden Distributivgesetze eingezeichnet. Das grafisch ermittelte Ergebnis zeigt. dass beide Ergebnismengen jeweils gleich sind.
3.1 AxioTn3tisicrung nach Huntington
A
(BuC)
77
An(BuC)
A
(BnC)
AU(BnC)
~n~=~ ~u~_~
.
"
~u~-~ ~n~=~ (A nB)
(AnC)
(.AnB)U(.AnC)
(A UB)
(A U C)
(AUB)n(AUC)
Abbildung 3.3: VeranschauUchWlg der beiden Distributivgesetze in der Sprache der Mengenalgebra
3.1.2
Schaltalgebra
Als wcitcres Bcispiel circrbooleschen Algcbra betrachtcn wir die Sch(j/wlgebra. dic in der tcchnischen Infonnatik ci~ dominalllc Rolle spiclt. Mit ihrer Hilfc wcrden wir in der Lagc sein. die funktionalen Aspektc nahczu aller Digitalschaltungen mathematisch zu beschreiben. Wie in der rechtcn Hälftc von Tabelle 3.1 gczeigt. besteht die Gmndmengc V hier nur noch aus den beiden Wahrheitswerten I (Wahr) und 0 (Falsch) und die ~rationcn. und + werden durch den Konjllnktiollsoperator A und den Disjllllktioll.soperator Versetzt. Die Konjunktion A wird auch als UND-VerknUpfung bc.....cichnet. da der Ausdruck x Ay genau dann gleich I ist. wenn x gleich I und y gleich I ist. Im Gegensatz hierllI evaluiert der entsprechende disjunktiv verknuprte Ausdmck xVy bereits dann zu I. wenn x gleich I oder y gleich I ist. Folgerichtig wird die Disjunktion v auch als ODER-VerknUpfung bezeichnet. Das inverse Elemerll wird in der Schaltalgebra durch die logische Negation ...., berechnel. die den enlsprechenden Wahrheitswert invertiert. Mil anderen WorteIl: Jeder der Wahrheitswerte I und 0 ist das inverse Element des anderen. Mit den boolcschcll Opcmlorell ....,. A und V haben wir bereits drei konkrete Beispiclc boo/escher Funktionen kennen gelernt. Spater wenJcn wir sehcn. wic sich mit Hilfe dieser Elementan'erknüpfimgen beliebige Funktioncn realisicren lassen. Doch zunächst definieren wir den BegrilT der booJcschcn Funktion wie folgt:
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
Da im Bereich der lechnischen Infonnalik die boolesche Algebra nahezu ausschließlich in Fonn der SChallalgebra Verwendung findet. werden die Begriffe Boolesehe Algebra und SchullUlgebru in der Pm:ds nicht scharf voneinander getrennt und mitunter auch synonym verwendet. Den babylonischen Sprachverwirrungen zum Trotz sollten Sie sicll stets des Unterscllieds bewusst sein: Die SchaHatgebm ist eine spezielle boolesche Atgebra. aber nicht jede boolesclle Algebra ist eine Schaltalgebra. Eine llllnliclie Begriffsvermischung betrifft (ten Begriff der boo/eSClle11 Flink/ioll, (ter nahezu ausnahmslos mit dem spezielleren Begriff der Schultflillktion gleichgesetzt wird Eine boolesche Funktion beschreibt damit stets eine Funktion Uber(tem Wertebereich {O,l) und nicht wie vielleicht erwartet eine Funktion in einer beliebigen b001eschen Algebra. Der glngigen Praxis folgend. wer(ten wir den Begriff der Sc1U1lrjlurJujon und den Begriff der boaleschen Flurkrjon daher ebenfalls synonym verwenden.
In·7.....n.l?7 NI 111 no '>1 ...o?'flO'
78
•
3 Boolesche Algebra
.....
Konjunktion:
o 1
z =X Ay
0
0
0
0
1
0
0
0
2 3
~ Definition 3.2 (Baalesehe Funktion) Jede Funktion der Form mit xJ,x2, ... ,xn,yE{O,I} heißt boolesclle Funktion oder Schaltfunktion der Stelligkeit n. Xl, .. ",x n werden als freie Variablen und y als abhängige Variable
bezeichnet. •
.....
Disjunktion: z = x V y
o 1
0
0
0
1
tatsachlich um eine boolesche Algebra handelt. können wir auf direk-
0
lern Weg tibeT Wahrlreitstabellen beweisen. Wahrheitstabellen ermögli-
2
0
3 •
Negation:
...
z=
o 1
Entsprechend Definition 3.2 können wir den Negationsoperator ---, als einstellige. den Konjunktions- und Disjunktionsoperator als zweistellige boa/esche Funktion interpretieren. Dass es sich bei der Schaltalgebra
--.x
0
1
0
Tabelle 3.2: Definition der elementaren Grundoperationen /\, V und --,
chen uns, beliebige boolesche Funktionen aufstrukturierte Art und Weise zu beschreiben. Zur Darstellung einer n-stelligen Funktion werden in der Wahrheitstabelle alle möglichen Kombinationen der Eingangsvariablen (Xn , ,Xl) zusammen mit dem entsprechenden Funktionswert y = f(x n, ,Xl) zeilenweise aufgelistet. Dabei werden die einzelnen Belegungen der Eingangsvariablen so angeordnet. dass sie - interpretiert als Binarlahl- in aufsteigender Reihenfolge erscheinen. Als Beispiele enthalt Tabelle 3.2 die Wahrheitstabellen der booleschen Grundoperatoren A. V und -'. Wahrheitstabellen werden in der Literatur auch als Wahrlreitstafeln oder Funktions(wert)tabellen bezeichnet. Alle diese Begriffe bezeichnen die gleiche tabellarische Beschreibungsweise ei ner booleschen Funktion. In Tabelle 3.3 sind alle vier Huntington'schen Axiome in der Notation der Schaltalgebra dargestellt. Wie die Wahrheitstafeln zeigen. ist jedes der vier Axiome erfüllt und damit der Beweis erbracht. dass wir mit der Schallalgebra ebenfalls eine booleschen Algebra vor uns haben. Neben der Mengenalgebra und der Schaltalgebra existieren weitere boolesche Algebren. die in der Vergangenheit ausführlich untersucht wunlen [34. 62-64]. Abschließend wollen wir uns mit der Frage beschafligen. warum die reellen Zahlen mit der uns bekannten Addition und MUltiplikation keine boolesche Algebra bilden können. Das Kommutativgesetz und das Assoziativgesetz sind erfüllt und es existieren für beide Operationen neutrale Elemente. Ein Blick auf das Distributivgesetz zeigt jedoch schnell. dass die reellen Zahlen keine boolesche Algebra bilden. Zwar dUrfen wir die Summe zweier Zahlen mit einem Faktor auslllultiplizieren. die Rechnung winl jedoch falsch. sobald wir beide Operatoren vertauschen.
3.2 Boolesche Ausdrucke und Aussagen
0
, , ,
--0 0 0 0
4
6
0 0
0
1 1
0 0
'""-
:
'?fV"lO
m·m·m
In·7.....n.l?71 ...0.,.,.....,'
80
•
3 Boolesche Algebra
WahrtritstafeldarSlellung
_ _ IIlII_
• Darstellung durch Graphstrukturen Graphbasierte Darstellungen sind vergleichsweise neu und eignen sich vor allem als Datenstrukturen fUr die computerinterne Repr'd-
0
0
0
0
0
senlation boolescher Funktionen. Die bekanntesten Graphstrukturen
I
0
0
1
1
sind die Binären Entsclleidungsdiagramme, deren gangigste Varian-
2
0
1
0
1
ten wir in Abschnitt 3.4.3 im Detail kennen lernen werden.
3
0
1
1
0
4
0
0
1
5
0
6
1
0
Eine andere Möglichkeit der Reprasenlation stellen boolesche Aus-
0
0
drucke (Formeln) dar, die wir ebenfalls schon kennen gelernt haben. Beispielsweise ist der Ausdruck x Ay ein OOolescher Ausdruck. der die logische Konjunktion (UND-Funktion) beschreibt. Damit ist ein boolescher Ausdruck zun:tchst nichts anderes als eine Zeichenfolge. die neben den booleschen Konstanten 0 und I sowohl die Variablen Xi als auch die booleschen Operatoren -'. A und Venth:tlt.
7
•
• Darstellung durch boolesche Ausdrucke
Graphbasierte Darstellung
In diesem Abschnitt werden wir uns mit den booleschen AusdrUcken im Detail auseinandersetzen. Zun:tchst stellen wir den Begriff auf eine formale Basis. indem wir die Menge der booleschen Ausdrtlcke durch die folgenden Rekursionsbeziehungen eindeutig definieren:
~ Definition 3.3 (Boolesche Ausdrucke) •
Fonneldarstellung
Sei V = (x[, ... ,xM ) eine Menge boolescher Variablen. Die Menge aller boolescllen Ausdrücke defi nieren wir wie folgt:
(--,x3!\ -U2 A Xl)
• O. L Xi sind boolesche Ausdrtlcke.
V
(--,x3 i\x2 i\ --"xl)
• Mit
~
ist auch
V
(Xl i\ -u2 i\~)
V
(X31\X2 i\XJ)
• Mit
~
und tp sind auch
y
-,~
ein boolescher Ausdruck. ~
A tp und
~
V tp boolesche Ausdrucke.
• Mit ~ ist auch (~) ein boolescher Ausdruck. Abbildung 3.4: Wahrlritstafel, Biilllres Enlsclridungsdiagramm und Formeldarstellung der dreistelligen Parilä.lsfunktion
Eine elegante Möglichkeit. rekursive Definitionen zu visualisieren. steilen Syntaxdiagramme dar. Das Syntaxdiagramm. das den Aufbau boolescher AusdrUcke beschreibt. ist in Abbildung 3.5 dargestellt. Durch den rekursiven Charakter boolescher Formeln bildet jeder Ausdruck. wie in Abbildung 3.6 gezeigt. eine ßaumstruktur. Jedes Blatt entspricht einem der nicht zusammengesetzten TeilausdrUcke - hierunter fallen die booleschen Konstanten 0 und I sowie die Variablen Xi - und jeder innere Knoten einem OOoleschen Operator (-'. A oder V).
3.2 Boolesche Ausdrucke und Aussagen
In naheliegender Weise können wir jeden boolcschcn Ausdruck als boolesche Funktion interpretieren. indem wir die Variablen durch konkrete Wahrhcitswerte ersetzen und den boolcschcn Ausdruck. entsprechend den weiter oben eingeführten Wahrhcitstafeln der ~ratoren ...,. 1\ und V. bottom-up auswerten. Ist ein booleschcr Ausdruck vollständig geklammert. ist die Auswertungsreihcnfolge offensichtlich. Fehlen Klammerpaare. so greifen die folgenden Vorrangregeln. die in der DINNorm 66000 eindeutig fcstgelegt sind:
81
·~~~~I············_--------~ fn-----( 0 )--.----Ti
'-__.( x, }-----'
• ...., wird stets zucrst ausgewertet. Beispiele:
•
1\
.:c 1\)'
«")A)')
xV....,)'
(xvh»
urx:l V werden linksassoziativ ausgewertet.
Beispiele:
xl\yl\t. xVYVt. xl\yVt. xVyl\t.
«xAy)A,) «XVy) v,) «xAy) v,) «XVy) A,)
n":l
fl'> '?fV'lO
y = ((Ol\x)v (1I\x»
Abgeleitete Operatoren
Wie wir splller sehen werden. sind die drei Elell1entaropcratoren 1\. V und..., ausreichend. um (lJle erdcnkbaren booleschen Funktionen darzustellen - sie bilden zusammen ein \'ollsWndiges Opermorens)'slem. Trotzdem lassen sich viele boolesche Funktionen unter Hinzunahme weiterer. so genannter abgeleiteter Operatoren wesentlich eleganter und
A"dih·
_
Abbilduttg 1.5: Syntaxdiagrnmm boolesc~r Ausdrucke
So sehr boolescre Ausdrucke und boolcschc Funktionen auch miteinander ver/..ahnt sind - bcide Begriffe sind nicht dasselbe und wir wollen uns an dieser Stelle den Unterschied nochmals explizit bewusst machen. So entspricht zwar jeder booleschc Ausdruck genau einer boolcschcn Funktion. die Umkehrung dieser Aussage gilt jedoch keineswegs: Jede boolesche Funktion kann durch mehrere. ja sogar ur~ndlich viclc boolesche Ausdrtlcke dargestelll werden. So repräsentieren beispielsweise die Ausdrtlcke """1.X• ...,(x I\x) . ...,(x I\x I\x) etc. allesamt die logiscl~ Negalionsfunklion.
3.2.1
t ••••••••••••••••••••••
m·m m _ 11
fl'> '?fV'lO
m·m·m
y = X 1\ «...,{OV t.» I\y) A bhildull~ 16: Baumdarslellung booJesc~r Ausdrucke
In·7.....n.l?7 t'\A 111 no '>1 -t-f\?'nn'
82
3 Boolesche Algebra
Tabelle 3.4: Seite: WahrheitslabelIen der abgeleiteten boolesclrn Operatoren Unten: Schreib- und Sprechweise, Klamnrrung und Prioritill der elementaren und
abgeleiteten 0f.erntoren. Die DIN-Nonn 66000 definiert Irben den Symbolen der verschiedenen Logikverknupfungen auch deren Klammemngsregeln sowie die BindungsprioritJlt. Die Negation --, besitzt die höchste, die Operatoren 1\, V, 71 und V haben die illlchsthöhere und die Operatoren --+, +-> sowie ..... die niedrigste PrioriUlI. Enlspredrnd der DIN 66CXX) besitzen die Operatoren 1\ und V die gleiche PrioriUlt, so dass der Ausdruck x V y 1\ Z als (x V y) 1\ Z interpretiert wird. Ein: Ausnahme bildet die verkUrzte Notation x y, die stets sUlrker bindet als die Disjunktion Der Ausdruck x V yz wird folgerichtig als x V (y /\ Z) interpretiert. Analog zu den Elementaroperntoren gilt auch für die abgeleiteten Operatoren, dass AusdrUcke mit drei oder nrhr gleichlautenden Operatoren stets linksassoziativ geklamnrrt werden. Neben den Symbolen der DlN 660000 haben sich für bestimmte Verknüpfungen weitere Symbole etabliert, deren wichtigste Vertreter in der Spalte ,,Alternative Notation" in die Tabelle aufgenomnrn sind.
DlN 66CXX)
v
..... ..... ..... z=x--+ y
0
1
0
0
0
2
z=x+-+y
1
0
1
1
0
0
0
z=x7iy
0
1
0
1
0
0
0
0
0
1
1
1
0
1
3
0 Implikation
Äquivalenz (NOXOR)
..... ..... ..... z=x+- Y
0
1
Sheffer-Funktion (NANO) z=xVy
z=x""'y
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
2
0
0
1
3
0 Inverse Implikation
Alternative NotatIon
0
Anlivalenz (XOR)
Gesprochen
Peirce-Funktion (NOR)
Klammemng
....
Verwendung
VeNendung
~
-
I. Dem klassischen Induktionsschema entsprechend. dUrfen wir annehmen. dass die Behauptung fUr alle AusdrUcke mil einer LUnge kleiner oder gleich 1/ - I und damit fUr alle Thilausdrllcke bereits bewiesen ist. Das Zusammenspiel von Induktionsanfang und Induktionsschritt ist in Abbildung 3.9 grafisch zusammengefasst.
Abhildulll,: 3.9: Das Prinzip der slrukturellen Induktion: lucrst wird im Induktionsanrang die Bellauplung expliZit rur alle AusdrUcke der Länge 1bewiesen legen wir die BlIumdarstellung zu Grunde. ist die Aussage damit rur alle Blatter erf1tlll. Jede Anwendung des allgemein bewiesenen Induk[ionssclliusses garantiert die GlIlligkcit der Aussage f1tr die naChSlhöhcre Ebene, bis die Wurlel erreicht ist.
definierte Strukturen zu führen. Das Beweisprinzip ist eng verwandt mit der aus der Schulmathem3tik bekannten I'ollstiindigen Induktion. Gcnau wie im Fall der vOllstllndigen Induktion beweisen wir in strukturellen Induktionsbeweisen die Behauptung fUr einen oder mehrere Basisfä.11e und zeigen anschließend im Induktionsschritl. dass sich die GUlligkeit der Behauptung auf das nächstkomplexere Objekt Ubertragen lässt. Die Basisfä.lle umfassen dabei alle nicht zusammengesetzten Elen.ente - in unserem Fall also die elementaren Wahrheilswerte 0 und I. sowie die booleschen Ausdrucke. dic ausschließlich aus einer einzigen Variablen bestehen. Da sich die Wahrheitswerte 0 und I auf die Ausdrucke x Ai hzw. x Vi zuruckfUhren lassen. reicht es fUr die tTlCisten Aussagen aus. im Irxluktionsanfang den Ausdruck f = x als einzigen Basisfall zu betrachten.
Wir wollen da~ Prinzip der strukturellen Induktion demonstrieren. indem wir den folgenden Satz beweisen. der eine wichtige Aussage Ubcr den Implikationsopcrator macht:
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?7 fI.1 111 no '>1 ...o?'fln'
88
3 Boolesche Algebra
Die rollständige Induktion ist neben dem direkten Deduktionsbeweis und dem indirekten Widerspruchsbeweis die drille grundlegende Beweistechnik der Mathematik. Anwenden Htssl sich die vollständige Induktion im Prinzip auf alle Aussagen. die von einem aufzahlbaren ParameIer n abhangen. wobei die Aussagefiir alle n bewiesen werden soll. In vielen Fallen ist n eine ganze Zahl. wie in dem folgenden Beispiel der Gauß'schen SummenformeL Wir wollen beweisen. dassfiir alle nE N die folgende Gleichung gill:
(3.1 ) Ein Beweis per vollständiger Induktion besteht aus drei Teilen:
• Induktionsanfang Wir beweisen die Behauptung zunachst rur ein oder einige .,klei ne" n. Im Fall der Gauß'schen Summenformel zeigen wir die Behauptung fUr n = 1. das kleinste Element. fUr das die Behauptung gelten soll:
ti=ti=I=~= i=J
i=J
2
1(1+1) =n(n+l)
2
(3.2)
2
• Induklionsannahme Wir nehmen jetzt an. dass n ein beliebiger Wert aus der Menge N ist und wir alle Aussagen fUr Werte kleiner oder gleich n bereits bewiesen haben. FUr unser Beispiel bedeutet das. dass die Formel (3. I) fUr alle Summen mit n oder weniger Elementen gUllig ist. • Induktionsschritt Unter der Induktionsannahme fUhren wir jetzt den Beweis. dass die zu beweisende Aussage fUr n+ I ebenfalls gUllig ist. Im Fall der Gauß"schen Summenformel extrahieren wir zunHchst den letzten Summanden aus der Summenf0n11el und erllallen so eine Summe mit n Gliedern plus einen Zusatzterm. Auf die neu entstandene Summenf0n11 können wir jetzt die Induktionsvoraussetzung anwenden und erhalten nahezu auf einen Schlag die Aussage fUr n + I:
Der Induktionsanfang. die Induktionsvoraussetzung und der Induktionsschritt stellen zusammen sicher. dass die Aussagefiir alle n GUltigkeit besitzt. Im Fall der Gauß"schen Summenfonnel ist die Aussage fUr n = I durch den Induktionsanfang sichergestellt. Die GUltigkeit fUr n = 2 folgt durch Anwendung des Induktionsschritts auf den Fall n = 1. die GUltigkeil tur n = 3 durch Anwendung des Induktionsschritts auf den Fall n = 2 und so fort. Induktionsbeweise kommen in der Praxis in verschiedenen Varianten vor. so z.B. in der Form der strukturellen Induktion. die Eigenschaften von Formeln induktiv uber die FormellHnge beweist. Exkurs 3.1: Das Beweisprinzip der vollständigen Induktion
3.2 Boolesche Ausdrucke und Aussagen
89
~ Satz 3.1
Vorskht bei Induktionsbeweisen! Die vollsUlndige Induktion verfolgl ein einfa· ches Gnmdprinzip. ihre Anwendung soll· te jedoch stets mit Bedacht geschehen. wie das folgende Beispiel zeigL
Sei 9 ein beliebiger booleschcr Ausdruck. in dem neben den Variablen Xl, ... ,X" ausschließlich der Implikationsoperator vorkommt. Dann ist 9 stelS erOUlbar,
Wl"1I1I sich Uni« n Büu1I l"in Eisbär befindl"l, dunn sind ulll" Bilu/1 Eisbärm. M
Beweis
H
Wir beweisen die Behauplwlg mit Hilfe der strukturellen Induktion. indem wir zeigen. dass 9 stets zu I evaluiert. wenn wir alle Variablen X], ... ,x.. auf I setzcn. Induktionsanfang (lA): 9 sei ein nicht zusammengesetzter boolescher Tenn. Da keine Konstantcn in der FomlCldarsteliung vorkomnlCn dUrfen. hat 9 d)c Fomlx;. Dann gilt offensichtlich 9(1) = 1.
DIese Behauptung Illssl sich augenscheinlich mit Hilfe der vollsUlndigen Induktion beweisen. Im Induktionsarnang beo.\'eisen wir die Aussage tur /1 = 1. Besieht eine Gruppe aus einem einzigen Baren und ist darin ein Eisbar enlhalten. so sind otfenskhtJich alle Baren dieser Gruppe Eisba-
ren Induklionsvoraussctzung (IV): 9 sei ein zusammengesetzter booicscher Ausdruck. in dem neben den VariablenXI, ... ,X.. ausschließlich der 101plikalionsopcrator vorkommt. Wir nehmen an. die Behauptung sei tur alle UmencmlC von 9 bereits bewiesen. Induktionsschriu (15): Da die Implikation der einzige Operator ist. der in 9 mrkomnlCn darf. hatt; die Form 91 --" 92. Dann ist
,,(I, ... ,')-"", ... ,I)-MI, ... ,')~ I - I
Als InduktioßS\'oraussetzung nehIren wir jetzl an, die Aussage sei rur eine Gruppe VOll 11 Bilten richtig und zeigen im Induktionsschrill. cbss die Aussage dann auch rur Gruppen von 11 + I Bären gilt. Zunachsl wissen wir. dass sich in der Gruppe von n + I Bären (mindestens) ein Eisbar befindet. Wir stelten nun alte Baren dernrt in einer Reihe auf. dass der Eisbar ganz vorne steht:
,r---------------------------'
~ I
i~.
1.. _. _._.
und die Behauptung fUrden zusanmlCngesetzten Ausdruck 9 bewiesen.
o
3.2.4
Dualität.prinzip
In diesem Abschnill werden wir das Beweisprinzip der struklurellen Induktion einselzen. um das Dualiliitsprinzip zu beweisen - eines der wichtigsten Grundprinzipien aller booleschen Algebren. Der Grundstein hierw wird durch das Negationstheorem gelegt, das einen elemenlaren Zusammenhang zwischen zusammengesetzten Aussagen und deren Vemeinung herstel1t. Das 111eorem erlaubt es uns. die Negation eines komplexen booleschen Ausdrucks direkt zu berechnen. indem wir alle vorkommenden Konstanten und Variablen negieren und die Operatoren 1\ und V gegeneinander austauschen.
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
._._ •••• __ ••
i
!
.JelZl betrachten wir die Gruppe der ers1en /1 Baren. Da unsere Aussage rur /1 per Indukllonsannahme richtig ist urxJ ein Eisb:tr In dieser Gruppe ist, so mUssen alle anderen Bären dieser Gruppe ebenfalls Elsb:t.ren sein und wir erhalten das folgende Zwlschener~bnis:
~fä-~-~-.1
1._•• _•••• _._._----------------_.
JelZl können wir die induktionsvomussetwng auch auf die letzten /1 Baren anwenden, da sich unler diesen auf jeden Fall auch mincleslens ein Eisbär refindet
~jä--ä-~-~ '-_.-
_._.- _... _... _--- ----------
Voil4: Alte Bliren sind Eisbaren!
In·7.....n.l?7 t'\A 111 no '>1 ...o7nn'
90
3 Boolesche Algebra
~ Satz 3.2 (Negalionslheorem) Sei f(O, l,x[, . .. ,XM, A, V, -,) ein boolescher Ausdruck, indem neben den Konstanten I und 0 und den Variablen Xl, ... ,xn die boolesehen Operatoren A. V und ---, vorkommen. Dann gilt:
/(0, I ,XJ, ... ,xn,A, v, -,)
=
f( I,O,XJ, ... ,Xn, v, A,-,)
Beweis
Induklionsanfang (JA): Sei ~ ein nicht zusammengesetzter Ausdruck. Wir betrachten alle Ausdrucke f der Länge 1: •
Fa1l1:~=O
•
Fa1l2:~=1
•
Fa1l3:~=xi ~(O,
l,xl, .. ,XM, A, V, -,)
=
(x;)
=
(1';)
= ~(1,0,XT,
... ,Y,;", V,A,-,)
Induklionsvoraussetzung (IV): Wir nehmen an, die Behauptung sei fUr
alle UnleJ1erme von f bereits bewiesen. Induktionsschritt (1S): Wir unterscheiden drei Falle:
•
Fa1l1:9=~ ~(O, I ,Xl,
•
=
~J(O,I,XI,
=
~J(I,0,XT,
=
~(l,O,XT,
,xn,A, V, -,)
,xn,A,V,---,) ,Y,;",V,A,---,)
(IV)
,Y,;",V,A,-,)
Fa1l2:~=~JA~2
=
~J(O,l,xl,
,xn,A,V,-,)A~(O,l,x],
,xn,A,V,-,)
(M)
=
~J
,xn,A, v, -,) v ~(O, 1,X],
,Xn , A, v, -,)
(IV)
=
~J (l,O,XT,
=
~(l,O,XT,
(0,1 ,Xl,
,Xn , V,A,
-,) V ~(1 ,O,XT,
,Y,;",V,A,-,)
,X n ,
v, A,-,)
3.2 Boolesche Ausdrucke und Aussagen
= = = =
;(O,I,XI, ... ,x",A,V,"') ;1 (0, I ,Xl> ... ,x",A, v,...,) V tP2(0, I ,XI, ;1 (0, I ,X"", ,x",A, V, -,) A 92(0, I ,Xl, ;1 (I, O,l'j, ,X;;, V,A, -,) A ih.( 1, O,:fi", ;(I,O,l'j', ,X;;,V,A,..,)
91
,X", A, V, ..,) ,X", A, v,"') ,X;;, V, A,..,)
(M) OV)
o 1m Beweis des Ncgalionsthcorcms haben wir mit der Rechenregel (M) bereits im Vorgriff die klassische Oe Morgansche Regel angewendet. die wir an dicser Stelle ohne Beweis als gegeben hinnehmen wollen. In Abschnitt 3.3.1 werden wir 1.cigen. wie sich diese Recbenregel direkt aus den Humington'schcn Axiomen ableiten lässt. Die Tragwcitc des NcglUionstbeorems ist größer. als Sic im Momcnt \'ielleicht \'cmlUtcn. Sic wird erst richtig dlullich. wem wir das Theorem aufboolcsche Gleichungcn der Form 9 = yt anwenden. Wir crhaltcn dann aufcinen Schlag das Dllulitiitsprinzip - eine Symmctrilrigcnschaft, die in jeder boolcschcn Algebra erfUllI ist und tief in dic inneren Zusammcnhänge dieser mathematischen Struktur blicken lässt.
):-c Satz 3.3 (DualiUUsprinzip der booleschen Algebra) 4' (0, I,Xl, ... ,x",A, V, -,) =
lp'(0, I,x h .. . ,x", A, v,-,)
ein Geselz der boolcschen Algebra. in der neben Variablen und den Konslanlen 0 und I ausschließlich die Elemenlarverknupfungen -'. A und V \'orkommen. Dann ist auch die duale Gleichung
ein Gesetz der booleschcn Algebra.
Beweis Mit ~(O, I ,X!, ... ,x",A, V, -,) = lp'(O, 1,Xl, ... ,X", A, v, --.) ist auch
'?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?71 -t-fl?'fll1'
92
3 Boolesche Algebra
Dem DualiUltsprinzip wfolge können wir aus der GUltigkeil einer Gleichung in jeder booleschen Algebra damit siels die GUltigkeit der dlülJen Gleichung - also jener Gleichung, die durch Vertauschen der Wahr-
v
~
V
~ .~ V ~ \l4J'titH!t)
V
~ \llJfM)
)(
v Vii) Induktionsanfang. Für,...! ist die Aussage wahr.
Schlu» ,on 1 auf2 D,e Argum~"'lallOn Im Inuukllon'>ehnll "I
fal,ch D,e Be"e"ketle Ist unleTbrochen
Die Argumen13.tion ist korrekt. Aus der Induktionsvoraussetzung folgt die Behau tun .
Abbildung 3.10: EiJr Analyse des Induktionsbeweises zeigt, dass die Beweiskette an einer einzigen Stelle unterbrochen ist.
heitswerte und der Operatoren A und V entsteht - ableilen. Auf Grund dieser Symmetriebeziehung werden A und V auch als duale Operatoren
bezeichnet. Eine erste Anwendungdes DualiUltsprinzips werden wir im Zusammenhang mit den in Abschnitt 3.3.1 eingeführten Rechenregeln erschließen. Wie bereits im Fall der Huntington'schen Axiome. die jeweils in zwei zueinander dualen Varianten formuliert si nd. existiert auch zu jeder abgeleiteten Rechenregel eine duale Variante. FUr den Beweis der Rechenregeln wird es dann jedoch völlig ausreichend sein. nur eine der Varianten zu zeigen. Die jeweils duale Rechenregel fällt uns auf Grund des DualiUllsprinzips sozusagen umsonst in die Hande. Eine Ausnahme bilden die Regeln von De Morgan. von denen wir streng genommen beide Varianten beweisen mUssen. um einen klassischen Ringschluss zu vermeiden. Der Grund hierfür ist. dass wir die Regeln von De Morgan bereits hier für den Beweis des Dualitatsprinzips benötigt haben und sie daher nicht spater aus dem DualiUllspri nzip selbst schließen dUrfen. Abschließend kommen wir noch einmal auf den auf Seite 89 vorgeführten Induktionsbeweis zurUck. Naturlieh sind nicht alle Baren Eisbaren. machen wir uns also auf die Suche nach dem Fehler. Der Induktionsanfang ist trivialerweise richtig - wenn eine Gruppe von Baren aus einem einzigen B:tr besteht und wirwissen. dass es in dieser Gruppe einen Eisb:tren gibt. so sind alle Baren dieser Gruppe Eisbaren. Der Fehler muss also im Induktionsschluss verborgen sein. Die Argumentation. mit der wir die GUltigkeit der Aussage für n + 1 aus der GUltigkeit für den Fall n gefolgert haben. ist zwar im Kern richtig, allerdings gill sie nur für n ~ 2 und damit nicht für den Schluss von n = 1 auf n = 2. Besteht eine Gruppe nur aus zwei Baren. so können wir diese. wie alle anderen Gruppen endlicher Größe auch. naturlieh so umsortieren. dass ein Eisbar vorne steht. Auch die Anwendung der Induktionsvoraussetzung ist für den Fall n = 1 richtig. wenngleich er keine weiteren Informationen bringt - wir wissen schließlich bereits. dass an der ersten Stelle ein Eisbar steht. Im Folgenden haben wir argumentiert. dass sich unter den hinteren n Baren mindestens ein Eisb:tr befindet. wenn wir wissen. dass alle der vorderen n B:tren Eisbaren sind. Nur so waren wir in der Lage. die Induktionsvoraussetzung auch auf die hi nteren Eisb:tren auszuweiten. Dieser Schluss ist jedoch nur dann gUltig. wenn die Menge der vorderen n B:tren und die Menge der hinteren n B:tren keine leere Schnittmenge besitzen. Das ist für alle Gruppen mit mindestens drei Baren auch der Fall. rur eine Zweiergruppe dagegen nicht. Genau an dieser Stelle ist die Beweiskette unterbrochen (siehe Abbildung 3.1 0).
A"d",h,,- n1 n '?fV"lO
m·m·m
(ABI) (AB2)
xV(xAy) =X
xA(xVy) =X
In·7.....n.l?7 f\II 111 no '>1 -t-fl?'fln'
94
3 Boolesche Algebra
=
xAl
(N)
= x
Assoziativgesetze
Herleitung von (A I):
(Al) xV(yVz)=(xVy)Vz (A2) xA(yAz)=(xAy)Az
xV(yVz) = (xV(yVz»A 1 = = = = = = = = = = =
(xV(yVz»A(xvr) [(xv (yV ,)) Axl v [(xv (yV z» Axl [xl v [(xv (yv z)) Axl [x v (x A,)I V[(xV (yV z» Axl [(x A(xVy)) V(x Az)1 V[(xV (yv z)) A~ [x A«xVy) Vz)1 V[(xV (yV z» AXI [«xVy) Vz) Axl V[(xV (yV z» AXI [«xVy) V,) Axl V[FA (xV (yV '))1 [«xVy) Vz) Axl V[(x Ax) V(r A(yV z»1 [«xVy) V,) Axl V[ov (x A(yV '))1 [«xVy) Vz) Axl V[FA (yv z)1
= [(~v~v,)A~v[rAy)vrA~1 = [«xVy) Vz) Axl V[(ov (x Ay)) V(x A,)I = [«xVy) V,) Axl V[«x Ax) V(x Ay)) V(x A,)I = [«xVy) Vz) Axl V[(x A(xVy)) V(x A,)I
(N)
(I) (0) (AB) (AB) (AB) (0) (K) (K) (0)
(I) (N) (0) (N)
(I) (0) (0)
= [(~v~v,)A~v~A(~v~v~1
(K)
= [(~V~Vz)A~V[(~V~V,)A~
(0)
= ((xVy)Vz)A[xVx] = ((xVy)Vz}A 1
(I) (N)
= (xVy)Vz
Doppelnegation (ON)
X=X
,
Herleitung:
= xAI = xA(xVx)
(N) (I) (0)
= (i Ax) V (i' Ai")
(I)
= (i'Ax)VO
(I)
= (i' Ax) V (x Ai")
(K)
3.3 Rechnen in booleschen Algebren
95
= (j Ax) V(.1' Ax)
(0)
= (jV.1')Ax
(K)
= (:XVY)Ax
(I)
=
lAx
(N)
= x
Oie Regeln von Oe Morgan
Herleitung \'on (M I):
xV;.y~=~
(N)
= (xVy)V«xAy)A(XAy))
(0)
= «xVy)V(:i'AY»A«XVy)V(iAy))
(0)
= (xVy)VO
(I)
= «xVyVx)A (xVyVY»A «xVy) V(XAY») = «(xV,) Vy)A (xv (yvy))) A «xVy)v (x AY))
(K+A) (I)
= «I Vy)A(xV I))A«XVy)V(xAy))
(E)
= (I A I)A«xVy)V('AY))
(N)
=
IA«xVy)V(XAy))
(MI) xV)'=xAy (M2) xA)'=xVy "The cO/ltrar)' 0/ all aggregau is the compolllld 0/ the cootraries 0/ the aggregtlll!S: the cOlllrary 0/ a compoulld is the aggregau o/the cO/ltrories o/the components. ..
Augustus Oe Morgan 167.68]
(I)
= «(:i'Ay)V(xAy))A«XVy)V(xAy))
(0)
= (:i'Ay)V«iAYlA(XVy))
(0)
= (xAy)V(iAyAx)V(iAyAy»
(K)
= ('Ay)V«('Ax)Ay)V('A(yAy)))
(0)
= ('Ay)V«OAy)V('AO))
(N)
= ('AY)V(OVO)
(N)
= (xAy)VO
(N)
= (x Ay)
(DN)
= (i Ay)
3.3.2
Vereinfachung boolescher Ausdrücke
Mit Hilfe der HuntingtOifschcn Axiome und den abgeleiteten Rechenregeln können wir komplexe boolcsche Ausdrücke effektiv vercinfa-
A"dih·
n":l
fl'> '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7 NI 111 no '>1 ...o?'lln'
96
3 Boolesche Algebra
ehen. FUr die allenneisten Ausdrucke bietet sich das folgende Vorgehen an:
I. Auflösen aller abgeleiteten Operatoren Da alle bisher hergeleiteten Rechenregeln ausschließlich Aussagen uber die Elementaroperatoren machen, fUhren wir zun:tchst alle abgeleiteten Operatoren auf die Verknupfungen -', A und V zurtlck.
AuguSluS
Oe Morgan (1806 - 1871) Augustus Oe Morgan gilt neben Genrge
2. Anwendung der zur VerfUgung stehenden Rechenregeln Sind alle abgeleiteten Operatoren aufgelöst vereinfachen wir den entstandenen booleschen Ausdruck Schritt fUr Schritt durch die Anwendung eines der Huntington'schen Axiome oder einer der abgeleiteten Rechenregeln.
Boole als einer der bedeutendsten Milbegrtlmrr der mathematischen Logik. Geboren wurde der Mathematiker am 27. Juni 1806 im indischen Bundesstaat Madras als Sohn eines britischen Offiziers und kehrte im Alter von 7 Monaten mit seiIrr
Familie nach England lurnek. Nach seinem Studium am Trinity College in Cambridge wurde Oe Morgan 1828 als Professor an das neu gegrundete Vniversity College in London berufen. Seitr Arbeiten im Bereich der Mathematik sind bedeutend. So war es Oe Morgan, der 1838 den Begriff der I'O/lsuindigen Induktion als Beweisprinzip prtlgle und gleichzeitig auf ein solides mathematisches Fundament stellte [66]. Weitere
Arbeiten verfasste er in den Bereidrn der Trigonometrie und lieferte beispielsweise ein: geometrische Deutung der zuvor schwer handhabbaren kompexen Zahlen. De Morgen starb am 18. MID"z 1871 in London. Trotz seines großen wissenschaftlichen VernKlchtnisses wird sein Nanr vor allem mit den beiden Komplemenrnrbeziehungen assoziiert, die als die Regeln von Oe Morgan heute fest mit seinem Nanrn verbunden sind Umso erstaunlictrr ist es, dass er mitnichten der Erste war, der sie entdeckte. Wie die AusfUhrungen von William of Ockham in der Summa TOlills Logicae natrlegen, waren bereits in der Mille des vierzehnten Jahrhunderts die Gesetzmäßigkeiten bekannt, die hinter den De Morgan'schen Regeln stecken.
Rechnung 3.1 (x ...... y)V(x t'\II 111 no '>1 -t-fl?'nn'
98
3 Boolesche Algebra
Kommutativgesetze
(XK1) (XK2)
XY=YX
x ..... y=y_x
Herleitung von (XK 1): x~y
= (xAy)V(xAy)
(K)
= (yAx) V(yAx) = y '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7 f\II 111 no '>1 -t-fl?'nn'
3 Boolesche Algebra
100
Distributivgesetze
Herleitung von (XO\):
(XDl)
(xAz)~(yAz)~(x~y)Az
(XD2)
(xVz) '?fV'lO
m·m·m
C.S.S. Peirce(1839-1914) Ahbildung 3.11: Charles Sanders Santiago Peirce bewies als Ersler die fuislenzeireletrentiger Operatorensysteme. Er konnte bereits 1880 zeigen. dass sich samtlict.: Operatoren der boolcschen Algebra mit Hitre der NAND- bzw. NOR.Operalion ausdrtlcken lassen Seine Erkenntnisse hatte Peirce zu Lebzeiten jedoch nie systematisch. publlzlert [37J. Insbesondere die NANOFunktion wird heute daher scHener mit Peirce, sondern vor allem mit dem Briten HenI)' MllUrlce Shcfrcr verbunden. der die VollslJlmligkeitscigenschllft tUr diesen Operalor t913 als Erstet in slrukturierter Rmn publizierte [76J. Aus dieser ZeH slmnnll auch die SChreibweise xlY rur die NANOVerknoprung von x und y. Das Symbol ..I" wird als Shrfff!r-Strolul bezeichnet und fimlel auch heule noch vereinzelt Verwendung.
In·7.....n.l?7 t'\A 111 no '>1 ...o?'nn'
102
3 Boolesche Algebra
ReduktIon von /\, v, --, auf NANO
'?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?7 t'\II 111 no '>1 ...0.,.,.....,'
106
3 Boolesche Algebra
Elnstell1ge FunktIOnen
Bo B, z\'\elstel1Jge FunktIOnen
Bo B, B, B, Drelstel1Jge FunktIOnen
Bo B, B, B, B, B, B, B,
'?fV'lO
m·m m _ 11
ll'> '?fV'lO
m·m·m
In·7.....n.l?7 NI 111 no '>1 -t-fl?'llll'
3 Boolesche Algebra
108
zusammenfassen, deren Koeffizient auf 1 gesetzt wurde, FUr unsere Beispielfunktion erhalten wir damit die folgende Darstellung: (3.5)
Die mehrslellige Anlivalenzfunklion
besitzt eine ruf die Praxis wichtige Eigenschaft Die spezielle Semantik der XORVerknupfung stellt sicher, dass die Funktion genau dann zu 1 evaluiert, wenn ein:
ungerade Anzahl der Variablen Xl, .. ,Xn gleich 1 ist Auf Grund dieser Eigenschaft wird die Funktion auch als Pllritütsfunk· lion bezeichnet. In der Praxis setzt man die Funktion im Bereich der DatenUbertragung ein. um das Pllriu'ilsbit einer Uberlragen:n Nachricht zu berechnen. Sind Xl, .. ,Xn die zu Ubertragenden Datenbils, so wird die Nachricht Xl, .. ,Xn,X]"" ... _Xn
gesen(rL Das angehängte Paritälsbil stellt sicher, dass die Anzahl der Einsen in der gesendeten Nachricht sIels gerade ist leder Bilkipper fUhrt zu eilrr ungeraden Anzahl Einsen, so dass der Übertragungsfehler auf Empftlngerseile erkannt wer·
den kann. Obwohl der Nachricht nur ein einziges Bit hinzugefügt wird, ist der so entstandeJr Pllritiitscode vergleichsweise mächtig - alle Übertragungsfehler, die durch eine ungerade Anzahl an Bitkipperu entstehen, werden zuverlässig erkannt. Kippt jedoch eine gerade Anzahl Bits, so stößt der Paritätsc~ an seiJr Grenzen
Aus dem Konstruktionsschema können wir zwei wichtige Eigenschaften der Reed-Muller-Form ableiten. Zum einen funktioniert das Verfahren unabh:tngig von den Funktionswerten der dargestellten Funktion, d.h., wir können rur jede beliebige Wahrlleitstabelle eine Formel in Reed-Muller-Form konstruieren. Zum anderen halten wir nie wirklich eine Wahlmöglichkeil, welchen Koeffizienten wir mit welchem Wert belegen. In der i-ten Iteration des Verfahrens fiel die Entscheidung, ob der Basisterm Bi in der Formeldarstellung vorkommen muss, stets eindeutig aus. In anderen Worten: Das Verfahren ist deterministisch und jede Funktion besitzt somit eine ei ndeutige Darstellung in Reed-Mul1erForm. Genau wie im Fall der konjunktiven und disjunktiven Normalform handelt es sich bei der Reed-Muller-Fonn damit ebenfalls um eine NOn1lalformdarstellung,
3.4.3
Binäre Entscheidungsdiagramme
Bin:tre Entscheidungsdiagramme (eng!. Binary Decision Diagrams, kurl BDDs) sind eine grafische Repr'dsentation boolescher Funktionen und gehen zurück auf die vergleichsweise jungen Arbeiten von Lee, Akers und Bryant [1,12,51]. Wie im Falle derWahrlleitstafeldarstellung wird ei ne Funktion f beschrieben, indem jede konkrete Variablenbelegung (Xl, ... ,xn) mit dem entsprechenden Funktionswert f(xl, ... ,xn) assoziiert wird, Stall jedoch samtliche Belegungen zusammen mit dem Funktionswert tabellarisch aufzulisten, greifen Binare Entscheidungsdiagramme auf eine Graph-Struktur zurtlck, in der jeder Pfad von der Wurlel zu den BI:tttern auf eindeutige Weise eine bestimmte Variablenbelegung repr'dsentiert. Der zugehörige Funktionswert wird als Blattmarkierung in den Baum eingetragen. Als Beispiel betrachten wir das in Abbildung 3.12 dargestellte Bin:tre Entscheidungsdiagramm der dreisteIligen PariUltsfunktion. FUr jede konkrete Variablenbelegung können wir den Funktionswert durch die Traversierung des Graphen von der Wurlel zu den Blaltern bestimmen. In jedem Knoten wird die linke Kante weiterverfolgl, wenn die entsprechende Knotenvariable Xi mit 0 belegt ist. Ist Xi gleich 1, wird die Traversierung mit der rechten Kante fortgesetzt. Den Funktionswert können wir an der Markierung des erreichten Blalts ablesen.
A"d",h,,- n1 n t'\A 111 no '>1 ...o?'fln'
112
3 Boolesche Algebra
~ Satz 3.4 (Entwicklungssatz von Shannon)
f
~
Sei f eine beliebige n-slellige boolesche Funktion. Dann gilt:
66
(Xi 1\ fx;=J)
V
(Xi A Ix;={))
1x;=1 und Ix;=o bezeichnen den positiven und den negativen Kolaktor von I und sind wie folgt definiert: Ix;=J Ix;=o
y
I(XI, I(XI,
,Xi_I,
I ,Xi+J,
,Xi_I,O,Xi+J,
,Xn) ,Xn)
(x[A ((X2 i\ ({XJ 1\ 1) V
(X1I\O)))V
(1'2i\{{X!I\O) V (:>l. ,. "IOI"ICl fl'> t'\A 111 no '>1 ...o7nn'
114
3 Boolesche Algebra
Diesem Rekursionsschema folgend können wir das ROBDD J"015 kon-
't1' . . . .~ :'t1 . "
,
o
1
-CJ" ' , ", ,
struieren. indem wir an den Wurlelknolen von;} und lB beginnen und den Operator :: 0
"0
Alternative BDD-Darstellungen
1
--------------- -'"~---------------
o
"
i.c~ErXj] iQJ.'.[I] -CJ"/-,
Neben den klassischen Bin:tren Entscheidungsdiagrammen. wie wir sie bisher kennen gelernt haben. existieren zahlreiche Varianten. die fUr bestimmte Formelklassen eine kompaktere Darstellung bieten und damit für spezielle AnwendungsPJlle besser geeignet sind. Eine dieser Varianten sind die geordneten funktionalen Entsclreidungsdiagramme (Ordered Functional Decision Diagrams. kurl OFDDs). denen eine modifizierte Knotensemantik zu Grunde liegt. Wahrend sich ROBDDs direkt an dem Entwicklungssatz von Shannon orientieren. basieren OFDDs. wie in Abbildung 3.18 gezeigt. auf der positiren bzw. negatiren DarioEntwicklung:
~ Definition 3.12 (Davio-Entwicklung) Sei f eine beliebige n-stellige boolesche Funktion. Dann gilt: (3.6)
't1
-CJ"
,
o
1
Abbildung 3.17: Rekursive Konstruktion des ROBDDs von (x[l\x2) VXl
(3.7)
Gleichung (3.6) wird die positire und Gleichung (3.7) die negatire Dario-Entwicklung genannt. Der Ausdruck
dj
(3.8)
- : = fXi=O"'" fXi=1 dXi
bezeichnet die boolesche Differenz von f bezuglich
Xj.
3.4 NonllalfomlduJ'Slellungen
115
Abbildung 3.19 zeigt das vollsI3ndig entwickclle (positive) OFDD rur die dreisteIlige P'drillUsfunktion. Im Gegensatz zu ROBDDs. in denen jeder Pfad \'on der Wurlcl zu den Blättern jeweils eine bestimmtc Variablenbclegung und damit einen einzelnen Minternl repräsentiert. haben Pfade in der OFDD-Darstellung eine andere Bedeutung. Rollen wir die Rekursionsbeziehung (3.6) vOllsl3ndig auf. so entspricht jeder Pfad dem boolesetcn Ausdruck. der in Abbildung 3.19 als zusälZliche Blattmarkierung eingetragen ist. l:kr DaviQ.-Entwicklung entsprechend. setzt sich die boolesche Funktion aus der XOR-VerknUpfung all dieser Tenne zusarmncn. deren Blau mit I markiert ist. Damit versteckt sich hinter der Struktur eines OFDDs nichts anti)res als die graphbasiene Darstellung einer booleschcn Funktion in Rccd-Muner-Foml. die wir in Abschnitt 3.4.2 kennen gelernt haren. Jeder Pfad entspricht einem der Basistcrmc Bi und die Blaltmark)crung bestimmt. ob der Basisterm Bi in der Rccd-MuJler-Darstcllung vorkommt oder nicht.
•
Positive Davio-Entwick!ung
f
~
66 •
Negati\'e Davio-Entwick!ung
f
Bei der Reduktion von OFDDs mUsscn wir ebenfalls Vorsicht waltcn lassen. insbesondere können wir die Vereinfachungsregeln rur ROBDDs nicht ohne wciteres übertragen. Sind beispielsweise bcitle Nachfolgcr cines mit XI markierten Kootcns identisch. bedeutct dies in der ROBDD-Darstcllung. dass fX;:l = b/=ofJ gilt und auf Grund des ExpansionssalZcs \'on Shannon die folgende Vcreinfachung möglich ist: Abbildung 3.t8: Das Konstruklionssche-
I
=
(3.9)
(xjA/"'I""I)v(XiAbr-o) (XjAX;) V1x,""1
(3.10)
Ix,: 1
(3." )
ma VOll OFDDs basiert auf der positiven bzw. der negativen Davio-Entwicktung ci~r booleschen FunktiOll.
Aus diesem Grunde ist cs legitim. Knoten mit gleichen Nachfolgern in ROBD[)s zu löschen und ocren Vorgängerknoten direkt mit den entsprechendcn Nachfolgcknotcn zu verbinden. [m Gegensatz zu ROBD[)s ist das Löschen von Knoten mit gleichen Nachfolgern in dcr OFDD-Darstcllung nicht mehr erlaubt. da wir hier effektiv die reprllsenticrtc boolesche Funktion verändem wurden. Stalldessen durfcn wir Knotcn löschen. deren rechter Nachfolger auf ein Blall zeigt. (hiS mit 0 markiert ist. Diese Regel gilt sowohl rur positiv als auch negativ entwickelte OFDDs und folgt sofort aus den Gleichungcn (3.6) bzw. (3.7) und der nllchslehendcn Vereinfachung:
f
A"dih·
n":l
fl'> '?fV'lO
I
/~
_
I I
/~
_0
(XI
A0)
(3.12) (3.13)
/~
m·m m _ 11
(3.14)
fl'> '?fV'lO
m·m·m
A bhildutl~ 119: Vollstllndig expandienes OFDD der dreisteIligen Paritlltsfunktion
In·7.....n.l?7 NI 111 no '>1 ...o?'fln'
116
3 Boolesche Algebra
,/,-x_,,,,,
Daruber hinaus dUffen. wie im Falle von ROBDDs. identische Teilbaume miteinander verschmolzen werden. Als Beispiel zeigt Abbildung 3.20 die schrittweise Reduktion des OFDOs der dreisleiligen Paritatsfunktion.
o
, , , o Abbildung 3.20: Schrittweise Konstruktion ~s reduzierten funktionalen Entsclridungsdiagrnmms
Neben BDDs und FDDs wurden in den letzten Jahren zahlreiche weitere Varianten postuliert. darunter MTBDDs. ZBDDs. FBODs oder OKBDDs [13j. Multi-terminal BDDs (MTBDDs. [16. 28J) sind auch unter dem Namen Arithmetic BDDs (ADDs. [5]) bekannt und veraligemeinem das BOD-Paradigma dahingehend. dass nicht nur die Wahrheitswerte 0 und L sOlidem Elemente einer beliebigen Menge und damit auch z.B. komplette Bitvektoren als Blaltmarkierung vorkommen dUrfen. Zero-suppressed BDDs (ZBDDs. [61]) sind eine spezielle Variante. die fUr dUnn besetzte Funktionen. d.h. Funktionen mit einer kleinen Eins- bzw. Nullmenge. eine sehr kompakte Darstellung bietet. Die starre Variablenordnung. die uns bei den klassischen BDDs die Nonnalformeigenschaft garantiert wurde in anderen Varianten aufgeweicht und fUhrt auf direktem Wege zu den so genannten Free BDDs (FBDDs [3]). Schließlich kombinieren Ordered Krollecker FlIllctiollal Decision Diagrams (OKFDDs. [22]) verschiedene Dekomposilionsvarianten. wie z.B. die Shannon- oder die Davio-Entwicklung. in einem einzigen Diagramm. Obwohl jede BDD-Variante tur sich Vorteile fUr gewisse Formelklassen bietet und damit fUr spezielle Anwendungen besonders geeignet ist darf an dieser Stelle nicht vergessen werden. dass wirselbst fUr die ausgefeilteste BDD-Variante eine Formelklasse konstruieren können. die ei ne exponentielle Darstellung besitzt. In anderen Worten: Es gibt keine Normalformdarstellung fUr boolesche Funktionen. die fUr jede boolesche Formel eine nicht exponentielle Darstellung bietet. Dass es keine solche Darstellung geben kann. ist ein Ergebnis der Komplexitatstheorie. die uns hier eine fundamentale Grenze aufzeigt. Dieser Grenze können wir durch ausgetUftelle Formeldarstellung zwar naher kommen. wir werden jedoch nie im Stande sein. sie zu Uberwinden.
3.5 Obungsaufgabcn
3.5
117
Übungsaufgaben
Leiten Sie allS den Gesetzen der boolcschen Algebra die folgenden \'ier weiteren AbsorptionsgesclZC her:
(a)
(XAy)V(XAY)=X
(b)
(xVY)f\y-xAy
(c)
(xAY)Vy-xVy
'?fV"lO m·m m
_ 11 fl'> '?fV"lO m·m·m In·7.....n.l?70'i"Q?QR1MflRQrlQ1 h1~..n 7"""trl. " "IOI"ICl fl'> t'\A 111 no "1 -t-fl?'nn'
118
Aufgabe 3.4
""'''
Webeode
3 Boolesche Algebra
Ihre Aufgabe ist es. die Steuerung einer Ampelanlage zu entwerfen. Die gesamte Anlage besteht aus zwei Signalgruppen. deren Lichter unabhängig voneinander tiber die Sleuersignale rl. YJ. EI bzw. '2.)'2. g2 an- und ausgeschaltet werden können:
3639 --------------~-------------,
,---
._--------~-------------,
':~O~ • .1
Signalgruppe I
-----------------------_
..
, ""'
Signalgruppe 2
.
Die ei nzelnen Lichter werden entsprechend einem Dualzahler geschaltet. der damit die Funktion eines Taktgebers ubemimmt. Der Zahlersland wird durch die Variablen X3, ... ,xo repr'.lsentiert. Zum Zeitpunkt 0 sieht die Signalgruppe 1 auf Rot und die Signalgruppe 2 auf GrUn. Die Rot- und GrUnphase dauert jeweils 6 Takte. Rot und Gelb leuchten zusammen einen Zeittakt. Gelb alleine ebenfalls einen einzigen Takt. Stellen Sie zun:lchst die Wahrheitstabelle fUr die Ampelsteuerung auf und konstruieren Sie anschließend die disjunktive Nomlalform der sechs Ausgangssignale rJ. Yl. gJ bzw. r2. }'2. g,.
Aufgabe 3.5
"'''''
Vereinfachen Sie die folgenden booleschen Ausdrtlcke so weit wie möglich durch die Anwendung der algebraischen Umfonnungsregeln.
Webeode
3229
Aufgabe 3.6
(a) (b)
(Xl ..... X2) ---+ (XJ ...... X2) ((Xl AX2) +-+ (XTV X2)) ----I Xl
(3.19) (3.20)
Die erweiterten Oe Morgan'schen Regeln lauten wie folgt:
"'''''
Webeode
3837
(a) (b)
(XIAx2A
Axn)=Xj"VX2V
VXn
(3.21 )
(XIVX2V
Vxn)=Xj"Ax2A
Axn
(3.22)
Beweisen Sie die Regeln mit Hilfe der strukturellen Induktion.
3.5 Obungsaufgaben
119
FUr dic folgcncJc 7-Scgment-Anl.cigc soll eine Anslcuerungslogik konstruicrt wercJcn:
.
Aufgabe 3.7
",
Webcode 3829 :1'.-0 __
'." Über die vicr Eingangssignalc .t4, ... ,.tl nimmt die Schaltung eine beliebige BCD-Ziffer entgegen. Jedes l.cuchtsegment wird über eines der sieben Ausgangssignale so, ... ,56 angesprochen und leuchtet genau dann. wenn der Wert der Stcucrieitung gleich I ist. Modellieren Sie die Ansteucrungslogik. indem Sie zunächst die abgebildete WahrhcilStabellc vervollständigen. Stellen Sie anschließend tUr jedes der Ausgangssigna1c Si eine boolcscre Formel aur und vereinrachen Sie diese algebraisch so weit wie möglich.
........ _...........
• • • • • , •• •• 2 3
4
6 7
8 9
I. 11 12 13
14
"
• • • • • • • • • • • • 1
1 1
1
I
1
I I
1
I
1
1
• • • • • • • • • • • I
I
1
I
I
I I I
I
I
I
Wclchc Wcne haben Sie rur die ßitkombinatiollcn gCWählt. dic kcincr RCD-Ziffcr entsprechcn? War Ihre Wahl rur diese Bitkombinatiollcll cindcutig?
A"dih·
n":l
fl'>
'?fV)Q
m·m m _ 11
fl'>
'?fV)Q
m·(V)·(V)
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'nn'
120
Aufgabe 3.8
3 Boolesche Algebra
Zeigen oder widerlegen Sie die folgende Beziehung zwischen den Operatoren '?fV'lO
m·m m _ 11
ll'> '?fV'lO
m·m·m
vollst~ndigcn
"'...
Induktion:
Aufgabe 3.13 (3.41 )
Webeode
3889
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'llll'
122
3 Boolesche Algebra
4 Schaltnetze
In diesem Kapitel werden Sie ... • den Zusammenhang zwischen der Schaltalgcbra und eb HalhkilCncchnik verstehen. • d)j: elementaren Logikgatter kennen lernen.
• sehen. wie sich boolcsche
Funktio~n
in Hardware implementieren lassen.
• die Unterschiede zwisclEn booleschen Formeln und Schaltkreisen erkennen. • Einblicke in das physikalisctE Schaltverhalten digitaler Schaltkreise erhalten. • ein Verständnis rur die Phänomene endlicher Schallgeschwindigkeit entwickeln. • den Unterschied zwischen Logik- und Funklions-Hazards verstehen
A"dih·
n":l
fl'> '?fV'lO
m·m fVl
_ 11 n.L ,. "IOI"I(l " " t'\II 111 no
'?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7 t'\A 111 no '>1 ...o?'nn'
126
4 Schaltnelze
Spannung
"I ,y L ,. "IOI"ICl1'l'> NI 111 no "1 ...o?'flO'
130
4 Schaltnelze
'~ " I
>1
Y
XI~y
',-U
--+
bole heule fast vollstandig verdrangt. Da sich die Symbole in manch allem Dokument trotzdem wiederfinden, sind die vor 1984 verwendeten Darstellungen wsatzlich in die Tabelle mit aufgenommen worden.
Abbildung 4.6: Darstellung der Negation durch ein separates Negationsglied (links) ooer durch die implizite invertienmg der Eingangsieitung des nachfolgenden Logikgatters (rechts). Heide Schaltungen implementieren die gleiche boolesche Funktion, in diesem Fall die logisclr Implikation y = Xl
Sprachraum relevante Notation wurde 1984 im Teil 12 der Deutschen Industrienorrn 4091Xl definiert und hat die vorher gebrauchlichen Sym-
x2·
Unabhangig von der konkreten Auspr'Jgung der Schaltsymbole wenlen in allen drei Notationen die Signalleitungen meist links in das Galter hinein- und rechts aus dem Galter herausgefUhrt. In vereinzelten Fällen wenlen Gatter jedoch auch gedreht oder gespiegelt wiedergegeben. Inverter können als eigenständiges Logikgatter auftauchen oder, wie in Abbildung 4.6 dargestellt durch einen Negationskreis am Eingang des nachfolgenden Gatters symbolisiert werden. Welche Notation Sie auch verwenden, Sie sollten sich stets an dieser Stelle bewusst sein, dass die Gatterdarstellung einfunktionales Modell der Schaltung ist und das gezeichnete Strukturbild nicht mit der physikalischen Umsetzung der Schaltung aufTransistorebene verwechselt werden darf. Die verschiedenen Logikgatter können wir zu komplexen Sclraltnetzen kombinieren. Da wir bisher nur rei n kombinatorische Logikgatter kennen gelernt haben - keines der Elemente kann sein Ausgangssignal bei Wegfall der Eingangssignale speichem -, sprechen wir auch von kombinatorischen Schaltungen. Mitunter werden Schaltnetze auch als Gatternetzliste oder kUfl als Netzliste bezeichnet.
y
In den folgenden Unterabschnitten werden wir uns damit beschaftigen, wie sich beliebige boolesche Funktionen in Form eines Schalt netzes implementieren lassen. Insbesondere die in Abschnitt 3.4 eingefUhrten Nonnalformdarstellungen ebnen uns hierLU den Weg auf systematische Weise,
4.2.1
y
Abbildung 4.7: Zweistufige Implenrntierung der dreistelligen ParitJl:lsfunktion
Zweistufige Schaltungssynthese
In Abschnitt 3.4. I haben wir mit der disjunktiven und der konjunktiven Nommlform zwei wichtige Normalformdarstellungen kennen gelemt die uns ermöglichen, jede boolesche Funktion unter ausschließlicher Verwendung der Operatoren -', A und V aufzubauen. Mit Hilfe der 1..0gikgatter in Abbildung4,5 können wir diese Normalformen direkt in ein Sclraltnetz umsetzen. Als Beispiel ist in Abbildung 4.7 die HanlwareImplementierung der in Abbildung 3.11 hergeleiteten disjunktiven und konjunktiven Normalform der dreistelligen Paritatsfunktion dargestellt Die entstehenden Schaltnetze sind allesamt zweistufig, da ei n Signal von den Eing:tngen zu den Ausgangen stets zwei Logikgatterdurchlauft. Im
4.2 Schallungssynlhcse
131
Allgemeincn bezeichnct dic Stufigkeit eines Schallnetzes die maximale Anzahl an Logikgaucm. die ein Signal von den Eingaragen zu den Ausgaragen durchlaufcn muss. In aller Regel weITEn Inverter nicht mitgeZählt. da sich ein Signal auf Tl1lnsistorcbene entweder direkt innerhalb einer Logikzclle invcrtieren Illsst oder - je nach eingesetzter Basistechnologie - ohnehin in beiden Polaritälen zur Verlligung steht. Die Stuligkeit einer Schaltung wird oft als Näherungsmaß für die Schaltgeschwindigkeit einer Hardwarc~lmplen~nlierung herangezogen. Dami! lierert die direkte Umsetzung der disjunktiven bzw. konjunktiven Normalfonn eine vergleichsweise schnelie Schaltung. Der Preis. ~n wir rur die hohe Geschwindigkeit zahlen mUSsen. wird deutlich. wenn wir uns der SchaitungsgTÖBe zuwenden. also der Anzahl der Gatter. die wir zur Realisierung ~r booleschen Funktion benötigen. Genau wie die Anzahl der Min- bzw. Mutemle in derdisjunktivcn bzw. konjunktiven onnalfoml exponentiell zunimmt. wächst auch die Anzahl der Ganer in der entsprechenden Hardware-Implementierung. Ocr Zusammenhang zwischen Geschwindigkeit und SchaltungsgröBe. den die zweislUfigc Schaltungssynthcsc in diesem Beispiel olTenbart. iSI kein Einzelfall. Slaudesscn wird hier einer der fundamemalslen Zusammenhänge sichlbar. der die gesamte Enlwurfsmcthodik digilaler Schallungen prägt.
Geschwindigkeit und GröBe einer HardwareSchaltung sind zueinander duale Größen. Schnelle Schaltungen benötigen in der Regel viel Räche während kompakte Schaltungen selten zu den schnellsten [mplememicrungen gehören.
""
F1Hchenbedarf einer SchallUng schUlgt sich unmittelbar in den ProduktionskOSIen nieder und ist damit fUr die Praxis ein zentraler Parameier. Hel"lilellungsbedingt sleigen die Koslen jedoch keineswegs linear mll der Chipgroße an. Zwei Phltnomene sind hierfnr maßgeblich verantwortlich. Zum einen wertrn Siliziumchips heule produklionsbedingt ausschließlich auf ~n Scheiben. '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
durch partielle Defekte weiter verringert, die ebenfalls produktionsbcdingt entstehen. In der Praxis liegt die typische DefekuHchte bei I bis 2 Defekten pro cm 2. Die Wahrscheinlichkeit. dass die FHlche eirrs einzelnen Chip durch einen Defekt unbmuchbar wird. steigt statistisch nicht lirrllr, sonclem in der vierten Potenz mit c1erChipgröße. Dadurch sinkt die typische Ausbeute auf oft weniger als 50 %. Bei komplexen Chips kann die Ausbeute s0gar unter 10 % betragen.
In·7.....n.l?7 f\II 111 no '>1 ...o?'nn'
132
4 Schaltnelze
'?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
,, ,, ,, ,, ,, ,, ,, --, ,, ,, ,, ,, ,, ,, ,, ,------
AbbildUlIl: 4.9: Direkte Umsetzung eines Funktionalen Enlscheidungsdiagramms in eiJX! Hardware-Schaltung
In·7.....n.l?7 t'\A 111 no '>1 -t-O?'nn'
134
4 Schaltnelze
Y,
" "
~
Formelsynthese
Y,
In den vorherigen Unlerahschnilten haben wir uns damit befasst. eine boolesche Funktion ohne große Umwege in ein Schaltnetz zu ubersetzen. In diesem Abschnitt wollen wir den umgekehrten Weg beschreiten und uns mit den Möglichkeiten beschaftigen, ein vorgegebenes Schaltnetz in eine boolesche Funktion zu uberfUhren. Auch hier bieten sich uns mehrere Wege. die wir in den folgenden Abschnitten zusammen mit ihren jeweiligen Vor- und Nachteilen kennen lernen werden.
~
'.
4.3
-.JJ-
" "
!1(XI,X2, .. ,xn )
'm
!m(XI,X2, .. ,XII)
h(XI,X2, .. ,xn )
4.3.1
Abbildung 4.10: Das Prinzip der funktionalen Schaltungsdarslellung. Jedes Ausgangssigna! wird durch eiJr separate boolesehe Funktion beschrieben.
Funktionale Formelsynthese
FUr die folgenden Betrachtungen sei ein beliebiges Schaltnetz mit den Eingangssignalen Xl, ... ,Xn und den Ausgangssignalen Yh ... ,Ym gegeben. Enefunktiona/e Darstellung des Schaltnetzes erhalten wir. indem wir fUr jedes AusgangssignaL wie in Abbildung 4.10 gezeigt. eine boolesche Funktion aufstellen. die die Werte der Eingangssignale Xl, ... ,Xn auf den Wert des entsprechenden Ausgangssignals Yi abbildet.
Bei der Übersetzung eines Schaltnetzes in eine boolesche Funktion machen uns vor allem Rekonvergenzen Probleme. Eine Rekonvergenz entsteht durch die Verlweigung einer Signalleitung am Ausgang eines Gatters und die s~tere ZusammenfUhrung an den Eingängen eines weiteren Gatters.
" "
.1
.1
Y
" " Abbildung 4.11: Eine Rekoflvergenz entsteht, indem sich eine Signalleitung verzweigt und die unterschiedlichen Signalwe-
ge in einem nachfolgenden Gatter wieder zusamrrengefUhrt werden
Abbildung 4.11 zeigt ein Beispiel eines rekonvergenten Schall netzes. Die Ausgangsleitung spaltet sich am Ausgang des XOR-Gatters auf und dient beiden UND-Gattern gleichermaßen als EingangssignaL Die Rekonvergenz entsteht durch die erneute ZusammenfUhrung der beiden Signalwege an den Eingangen des finalen ODER-Gatters. Rekonvergente Schaltungen können wir nicht eins zu eins in einen booleschen Ausdruck uberfUhren. Der Grund hierfUr liegt in der Baumstruktur boolescher AusdrUcke, die sich direkt aus dem rekursiven Konstruktionsschema ergibt. Graphentheoretisch betrachtet erleugt jede Schaltnetzrekonvergenz eine Maschenstruktur. die sich folgerichtig nicht mehr direkt auf einen booleschen Ausdruck abbilden lasst. Die einfachste Möglichkeit. die Rekonvergenzproblematik in den Griff zu bekommen. besteht im vollständigen Ausrollen des Strukturgraphen. Dazu traversieren wir zun:tchst das Schaltnetz von seiner Ausgangsleitung zurtlck zu den Eingangen und lösen s:tmlliche Leitungsverlweigungen mit Hilfe einer Kopie des entsprechenden Schaltungszweigs
4.3 Formclsynthcsc
',----[l.n
r---------- , :"': 2 ::1::
,,
,,
.•
135
.,
:"'l : ----------'·---L-l
,
y
. :/'
y-
;-------' "
i.
~
Ausrollen mdtrfach benutan" Trilschalnmgm
("'1
1\
("'2 ......1» v
(Cx:2 '1- "'1) 1\ "'4)
/1''~ NI 111 no '>1 ...o?'nn'
138
4 Schaltnelze
I I
I
11 .... (X2 ·'·X l )
"
& ~
'"~ -1
"
" "
'&'
"
~
[
ll .... (t l
I
0:
der Logikgalter und lasst sich selbst rur riesige Schaltnetze problemlos erleugen.
Der Ausgang eines Schaltnet:tßs mit n Eingangen
"t
y .... (t2 Vl l )
M»)
(Xl
(IJ
(1] I\X4» (l2 VI
,»
und m Ausgangen generiert rur die Eingangsbelegung (Xl, ... ,.In) genau dann die Ausgangsbelegung (Yl, ,Ym). wenn es Werte fUr die Zwischenvariablen t[, ,tt gibt. so dass (x[, ... ,xn,t[, ... ,tt.YI, ... ,Ym) eine konsistente Belegung ist.
)
"x4 )
(12
(y
konjunktiven Term enlh:tll. steigt deren Größe nur linear mit der Anzahl
Zwischen dem Blackbox-Verl1allen eines Schaltnetzes und dem Konsistenzbegriff besteht eine direkte Beziehung:
"
(X2 ..... Xl»
(li
I
12 .... (Xl Al l )
I
A A A
Abbildung 4.15: Erzeugung der Konsislenzfunktion I( für unser Beispielschaltnetz. Die Konsistenzfunktion evaluiert ge-
nau dann zu I, wenn die Werte aller Eingangs-, Ausgangs- und Zwischenvaria-
blen dem Schaltverhallen der Logikgatter entsprechen
Die Forderung nach der Etistenz einer erfUlIenden 8elegung - wie in diesem Fall fUr die Zwischenvariablen ti verlangt - IHsst sich mit Hilfe der boo/eschen Quantoren ::J und V auf elegante Weise ausdrticken und in die Konsistenzfonnel integrieren. Formal definieren wir die boolesehen Quantoren wie folgt:
O? Definition 4.2 (Boolesche Quanloren) Sei f eine beliebige n-stellige boolesche Funktion. Die Funktion
Cl';f
{O, l}"-' ~ {O, I}
evaluiert fUr die Belegung (x], .. . ,Xi_l ,Xi+[, .. . ,xn ) genau dann zu 1, wenn ein Wert fUr Xi existiert, so dass f(XI,'" ,Xi, .. . ,Xn) zu 1 evaluiert. Die Funktion
Vx;f
{O, l}"-'
~
{O, I}
evaluiert fUr die Belegung (x], .. . ,Xi_l ,Xi+[, .. . ,xn ) genau dann zu L wenn f(XI,'" ,Xi, .. . ,xn)fiir alle Werte von Xi zu 1 evaluiert.
Anders als z.B. in der PrHdikatenlogik, in der die Quantoren ::J und V maßgeblich die AusdrucksHihigkeit der Logik beeinflussen. lassen sich die booleschen Quantoren der Schaltalgebra auf die elementaren Logikverknupfungen reduzieren. In diesem Sinne stellen die booleschen Quantoren, genau wie die abgeleiteten Operatoren aus Abschnitt 3.2. L eine rein syntaktische Erweiterung der Logik dar (syntactic sugar). Es
4.3 Formelsynthesc
139
gilt: 3Xj:
"IXj:
! !
1x,=fJ Ix,-I " Ixo-G
!$j=l V
(4.9) (4.10)
Die Reduktion der Quantoren auf die Elementarverknllpfungen istlllöglich. da der Wertebereich Ixlolcschcr Variablen auf die Elemente 0 und I beschrankt und damit endlich ist. Auf einem endlichen Wertebereich lassen sich die in Gleichung (4.9) und (4. 10) \'erankerten Begriffe ..0::;5r;en" bzw. ./iir olle" durch das konjunkth-e bzw. disjunktive Aufzahlen aller Bclegungsmoglichkeiten ausdrUcken.
•
Mit Hilfe des OOokscbcn Exislcnzquantors lässt sich das Blackbox-
Verhallen der Gkichungjet7l auf ekgante Weise beschreiben: Der Ausgang eines Schaltretzcs milli Eingängen und m Ausgangen generiert tur die Eingangsbckgung (x ..... ,x,,) geoau dann die Ausgangsbckgung (n,··· .J.). wenn die Funklion
I' {O, I}"" - {O, I}
Funktional. nicht definitorisch:
)'=
•
(X] A(X2 -X)) «X2 -Xl) Ax..)
ReJational. nichl definitorisch:
,.-
(4.11)
v
.l = «_tIA (.t2 -(3))
V
«.t2 .... _t))A.t..))
mil
x=
3r] ... 31.1:: IC(Xt, ••• ,XIl,'..... ,'.I:,yI, ... ,y.... )
•
Relalional. definitorisch:
(4.12)
zu I evaluiert.
31] ... 31.: (.tl -X3))
(I]
Erinnern Sie sich noch an die relationale Fonnelsynthcse aus Abschnitl 4.3.2? Die soeben konstruierte Funktion ist nichts anderes als die charakteristische Funktion des zu Grund~ liegenden Schaltrkltzes. Durch die Verwendung der defi nitorischen Form ist es uns jedoch gelungen. eine relationale Darstellung des Schallnetzes zu generieren. deren Große nur linear mit der Anzahl der Logikgauer steigt. Im Gegensatz zur vergleichsweise naiven Formcisynthese in Abschnill 4.3.1 sind wir hiermit in der Lage. auch schI' große Schaltungen in eine FormeIdarstellung zu UbcrrUhren - unabhllngig von der Anzahl der vorhandenen Rekonvergcnzen.
X=
(12 (I.l
(y •
(XIAII)) (llIIX4)) (12 V I]))
A
A A
Funktional. refinilorisch:
31 1 ... 31. :
(T] Y=
(12 (tJ
(X2 -X3)) (t] Md) (tl AX4))
A
A A
(I2 Vt 3)
Konstruieren wir die definitorische Form wie hier dargestellt. so erhalten wir eine relationale ])urslellullg des Schallnetzes. Bei Schallnet7-cn mit einem einzigen Ausgang können wir jedoch auch hier die relationale Fonn in die funktionale Form entsprechend Gleichung (4.6) umwandeln. Insgesamt ergeben sich damit vier Kombinationsmöglichkeiten. die in Abbildung 4.16 abschließend gegenübergestellt sind.
A"dih- n":l fl'> '?fV"lO
(Vl-(Vl (Vl _
AbbildUlll: 4.1fi: Die vier Möglichkeiten der FormeJsyn]hese im Vergleich
11 fl'> '?fV"lO (Vl-(Vl-(Vl In-7.....n.t?7 '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
16
15 "j 0 "..1
T"
.
t···············T····..·{)
"jO 3rtOl"1 t..·.. ··········t····O··· " · · · · · · · · · · · ·....0····· •.. • • ·····{)()()(X)ooo ·..· · ·..·.. ········O..l···········
14
12 • II ·
Variante 2 O(n) O(logn)
Der Ausdmck O(g(n)) beschreibt eine Menge ron Funktionen. so dass die mathematisch korrekte Schreibweise f(n) E O(g(n)) ausdruckt. dass die Funktion f in die durch g definierle Komplexitll1sklassc falil. Trotzdem hat sich in der Praxis die Notation
A"dih·
Vorskht bei der Interpretation der O· Notation! Die KompleJL:itatsanalyse macht eire Aussage rur den Fall n - "". in der PraJL:is haben wir es jedoch mit Schaltun· gen endlicher GI1lße zu lun. Sind die in ~r PraJL:is verwendeten Schallungsgro8en zum Beispiel kleirer als die Konstatlle N aus Definition 4.3. so lässl das asymptoti.sche Verhallen der Schaltung Uberhaupt keine ROckschlDsse auf die vorliegende Schaltung zu. Des Weileren dorfen wir den konstan1en Faktor c. Uber dessen konbe1en Wert in Definition 4.3 eremalls keine Angaben gemacht werden. rur lckire Schaltungen nicht \'emachJ~i gen. Hier kann die Konstan1e dafUr sorgen.. dass beispielsweise eine Schaltung der LautzeitkompJexität O(n) fUr gewisse Schaitungsgr08en .schneller ist als eine Schaltung der KompJexiUlI O(logn). Dieses Phänomen können wir auch rur die !>eiden oben konstruierten PariUlISschaltungen beobachten. Wie die folgen~ Abbiklungzeigt. istdie zweite VarianIe erst ab eirer SChaltungsgl1lße von n > 13 .schreller als die erste Variante.
O 2 ) 4 S 6 7 891011121l141S16
Eine Folgerung können wir aus der KompluiUllSklasse trotzdem ableiten: Jede Schallung der LaufzeHkompluitJH O(logl1) wird irgelldwann schneller sein als eine Schaltung der KompleJL:itat O(n). Ab welchem 'I dies gilt. können wir aus der Komplexitlltsklasse alleine jedoch nicht herleiten.
In·7.....n.l?7 f\II 111 no '>1 ...o?'nn'
142
4 Schaltnelze
4.5
U,
--------------r--
100%
0%
I~t:
,,
,
,,
,
UO:,
:,
"" " " " " " " "
''" '' '' '' ''
- _~_ '::~:::::::::~::~: ,
10% 0%
"
, , +-:-tDtF
,, ,, ,, ,,
-
--------~_ --'-'
Zeitverhalten digitaler Schaltungen
Die boolesche Algebra stellt uns das mathematische Grundgertls\ zur VerfUgung, um den funktionalen Zusammenhang zwischen den Signalwerten der Eingangsleilungen und den Signalwerten der Ausgangsleitungen zu beschreiben. Neben diesen rein funktionalen Aspekten rnUssen wir auf Schaltnetzebene zus:ltzlich physikalische Effekte berucksichtigen. wie sie beispielsweise durch die endliche Ausbreitungsgeschwindigkeit der digitalen Signale hervorgerufen werden. Ändern wir den Signalwert einer Eingangsleitung. so :tndem sich die Signalwerte der Ausgänge leicht zeitversetzt. Obwohl die Zeitunterschiede. gemessen in absoluten Maßst~ben. :tuBerst gering sind - ein elektrisches Signal bewegt sich in einer typischen Halbleiterschaltung mit ca. 0.6fadler Lichtgeschwindigkeit -. darf die Zeitproblematik auf keinen Fall unterschHtzt werden. Insbesondere können durch das ungunstige Zusammenspiel verschiedener Signalwege ungewollte SignalwechseL so genannte Störimpulse (HazarJs). entstehen. die drastische Auswirkungen auf die Funktionsflthigkeit einer Hardware-Schaltung haben können.
tStR
Abbildung 4.18: Das physikalisclr Zeit-
4.5.1
Signalausbreitung und -verzögerung
verhalten ei/rr Logikzelle, hier demonst-
riert am Beispiel eires Logikinverters. In Abhängigkeit von den elektrischen Eigenschaften der Logikzelle wird die Signalflanke verbreitert oder verkUrzl (Zeitintervalle lF und IR). Zusätzlich zur Verformung
der Signalll.anke wird das Impulsfenster auf Grund der Schaltverzogerung zeitlich verschoben (Zeitinlervalle ID und IS).
In diesem Abschnitt beschaftigen wir uns zunachst mit der Wirkung einzelner Logikzellen auf die charakteristischen Eigenschaften eines elektrischen Signals. HierLU zeigt Abbildung 4.18 das physikalische Zeitverl1allen einer einfachen Inverter-Zelle. Legen wir arn Eingang x ein Rechtecksignal an. entsteht am Ausgang des Inverters eine Art Wannenkurve. Der produzierte Signalverlauf wird durch zwei wichtige Parameter beeinflusst: • Verlögerungscharakteristik Erfahrt der Spannungspegel am Ei ngang x des Inverters einen negativen bzw. positiven FlankenwechseL so bleibt das Ausgangssignal y fUreinen gewissen Zeitraum tD
Verlögerungszeit (Je/ay time) bzw.
ts
Speicherleit (stomge time)
konstant. Jedes Logikgauer verursacht hierdurch eine zeitliche Verschiebung des elektrischen Signalpegels. In der Praxis gi It es außerdem zu berucksichtigen. dass der Signalpegel am Eingang kein per-
4.5 Zcitvcrl1311cn digitalcr Schaltungen
143
__J.1k
fcktcs Rcchtccksignal bildet. Je nach Bcschaffcnheit der SignalllankCIl wird dic Vcrl.ögcrongs- und SpcictrrLCit hierdurch zusatzlich vcrlangcrt.
_
'~y U t
u i
• Wochselchardktcristik
i
o
U,
Die Beschaffcnheit der Signalnankc wird durch ein Logikgallcr ebenfalls gcringfilgig verändert. In Abhängigkeit der elektrischen Eigcnscharten der Logik7.c11e wird die Ranke entweder verbreitert oder verkurl.1. Die Breile der Signa111anke wird. wie in Abbildung 4.18 gezeigt durch die bcidcn Zeitspanllen
100%
•••••• - - - - - - - , - -
"'-H:----+---
tF
Fa1l7.cit (Jall time) und
tR
Ansticgszeit (rise time)
· · ..•.. --------;-· · ··· ·
uo : \00%
beschricben. Die vcrschiedenen Logikgatter eines Schaltnetzes können somit cinen degeneroti,'en odcreincn aufbereitenden ElTekt auf das elektrische Signal ausUben. je nachdem ob sich die Fall- bzw. Anstiegszeiten verlangern oder \'CrkUrLen.
.~
0%
In vielen Fällen wird das Zeit\'Crhalten cillCs Logikgallcrs. wic in Abbildung 4.19 gczeigt. auf einfachere Weise durch die Angabe von nur zwei Zeitintcrvallcn tHL und tLH beschrieben Ausgchend vom Zeitpunkt der Änderung (les Eingangssignals beschreiben die Intervalle tHL bzw. tLH die verstrichene Zeit. bis das Ausgangssignal 50 % des neuen Pegels erreicht - jeweils SI..'parat für die fallende bzw. steigende Ranke. Aus den heiden ZeitintclVdllcn wird die Verzögerungs--.eit des Logikgallcrs durch das arithmetischc Mittel tlt berechnet
...
_~---
+-i;:=:.-'----i:~~;-'w
Abbildung 4.19: Beschreibung '?fV"lO
m·m fVl
_ 11 n. '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
,
:.. 4) I ~44
i ) 11-+,....:~ AhhildUlIl: 4.22: tn unserem Beispiel nehnX!lI wir an, dass die Schaltzeit .6.2 grOßer ist als die Summe der Schaltzeiten .6.j und .6.3. Wechselt das Signal X3 jetzt von I auf O. so ist die zeil, in der sowohl )"1 als auch)'2 auf o liegen. lange genug. um )" fUr kwze zeit ebenfalls auf 0 abfallen zu lassen. KUlZum: Ein StOlimpuls entsteht.
In·7.....n.l?7 t'\A 111 no '>1 ...o?'nn'
146
4 Schaltnelze
zeilverlÖgert an, so dass der Galterausgang unter gewissen Umstanden kurlfristig einen falschen Wert erleugt.
y
Abbildung 4.23: Logik-Hazards kOmrn durch das HinzufUgen weiterer Gatter beseitigt werden
Die Entstehung eines Logik-Hazards wollen wir nun an einem konkreten Beispiel nachvollziehen und betrachten hierlu das Schaltnetz in Ah-
bi Idung 4.21. Mit L\(x,y) bezeichnen wir die Verlögerungszeil zwischen den Signalen x und y, d.h. die Zeitspanne, bis sich nach einer Änderung des Signals x auch das Signal y andert. FUr unser Beispiel definieren wir die drei Verlögerungszeiten 81 bis L4 wie folgt: 81
8(X3,yJ)
82
8(X3,)'2)
83
8(YI,Y)
84
8()'2,Y)
FUr die weiteren Betrachtungen nehmen wir an. dass die Verlögerungszeit 82 auf Grund der physikalischen Schaltungstopologie größer ausnUlt als die Summe der VerlÖgerungszeiten 81 plus 83. Weiter nehmen wir an. dass die Signale Xl. X2. X3 auf I liegen und das Signal X4 entsprechend aufO. Wechselt nun das Signal X3 von I auf 0 und bleibt der Wert aller anderen Eingangssignale unverandert. so entsteht der in Abbi ldung 4.22 dargestellte Signalverlauf. Durch das Abfallen des Signals X3 nUll nach der Zeitspanne 81 zunachst das Signal Yl aufO. Jetzt sind sowohl YI als auch)'2 gleich O. sodass der Ausgangydes ODER-Gatters nach der Zeitspanne 83 ebenfalls auf 0 abfallt und einen statischen Störimpuls auslöst. Erst jetzt ist die Zeit 82 verstrichen. so dass das Signal )'2 wieder ansteigt und nach weiteren 84 Zeiteinheiten auch das Ausgangssignal seinen stabilen Wert I einnimmt.
Yl
y
i
i
i i
i !
i !
ii !!
I I
I I
I I
I I
I I
I I
I I
I I
1 0 I
0
Abbildung 4.24: Wie der Signalverlauf zeigt, bleibt der Ausgang des JrU eingefügten Gatters Y3 konstant auf I, so dass auch die Änderungen von)'] und Y2 am Ausgang y keine AUSWirkung !rehr haben
Logik-Hazards können durch das Einfügen zus:ttzlicher Logikgatter vermieden werden. Diese Korrekturgatter mUssen die Signalverl:tufe so beeinflussen. dass Logik- Hazards nicht mehr auftreten können. ohne eine funktionale Auswirkung auf die realisierte boolesche Funktion auszuuben. Die auf diese Weise gegen Logik-Hazards geschutzte Schaltung sowie der zugehörige Signalverlauf sind in den Abbildungen 4.23 und 4.24 dargestellt. An dieser Stelle drängt sich unmittelbar die Frage auf. wie wir Anzahl und Beschaffenheit der Korrekturgatter berechnen können. Die Antwort auf diese Frage wollen wir für den Moment zurUckstellen. da uns eine entsprechende Berechnungsvorschrift in Abschnitt 5.2.2 als Nebenprodukt der Schaltungsminimierung nach Kamaugh und Veitch in die Hande Fallen wird.
4.5 Zeitverl1311en digit t'\A 111 no '>1 -t-fl?'nn'
150
4 Schaltnelze
Aufgabe 4.3
Setzen Sie jedes der beiden Schallnetze in einen booleschen Ausdruck um und stellen Sie
""'''
die zugehörige Wahrheitstafel auf.
Webeode
4285
Y
Aufgabe 4.4
"""
Gegeben sei das folgende Schall netz. Nehmen Sie an. dass die Verlögerungszeit aller Galter 2 ns betr'.lgt. und vernachl~ssigen Sie die LeilungsverLögerung.
Webeode
, , , , , ,
4Sn XI -"2
x l x4
x l ,x2
" " 11,13
& Y,
.1 &
Y,
Y,
& Y,
Y, Y
0 0
---,
,, ,, ,,I ,,
0
I
0
,, ,,
0
I
I
,
I
I iT1-F' , , : , :,
I
0 0
statischer l-Hazard
Wie Sie aus dem Signaldiagramm erkennen können. produziert das Schaltnetz rur den angegebenen Signalwechsel einen Logik-Hazard. Analysieren Sie die Schaltung und finden Sie heraus. ob Logik-Hazards auch noch durch andere Signalwechsel verursacht werden können.
4.6 Obungsaufgaben
151
Gegeben sei das folgende Schaltnetz. ErLCugen Sie eine Fomleldarslellung in
Aufgabe 4.5 ,,-~
(a)
funklionaler. nichl definilorischer Darslellung.
(b)
relalionaler. nicht definitorischer Darstellung.
(c)
funktionaler, definilorischer Darstellung und
(J)
rclationaler. definilorischer Darslellung.
ib
Webcode 4128
_ 2:1 1~ ~__ • -=+;::f'&l'~'-r>''l
...
Gegeben seien die boolcschcn AusdrUcke
Aufgabe 4.6
",
(4.16)
Webeode 4395
Die Variable XII kommt sowohl in 9 als auch in lt' vor. Beweisen oder widerlegen Sie die folgenden Rechenregeln fUr die booleschen Quantorcn ::I und V:
(a) 3x, (~A~) - (3x,~) A (3x, ~) (6) 3x,(~V~)-(3x,~)v(3x,~) (,) Vx,(~A~)-(Vx,~)A(Vx,~) (d) Vx,(~V~)-(Vx,~)V(Vx,~)
(4.17) (4.18) (4.19) (4.20)
Eine zemmle Eigenschaft der definitorischen FormeldarsteJ1ung ist der lineare Zusammenhang zwischen der FQmlellllnge und der Anzahl der Gatter eines Schallnelzes. Bleibt diese Eigenschaft erhalten. wenn wir die booleschen Quantoren ::I und V. wie in den Gleichungen (4.9) ufKl (4. 10) gezeigt. mit Hilfe der elementaren jxlratoren ausdrucken?
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'nn'
152
Aufgabe 4.7
""" Webeode 4009
4 Schaltnelze
Gegeben seien die Funktionen fund g und es gelte f(n) = O(g(n)). Welcher der folgenden Graphen beschreibt die Beziehung zwischen fund g? Welche Beziehungen drucken die anderen Graphen aus?
, )
Aufgabe 4.8
"""
Webeode
f(nJ...
2)
c· g(n)
KomplexiUltsanalyse: a) Ordnen Sie die folgenden Funktionen..
den folgenden Komplexil:ttsklassen zu..
4583 4·n 2 + 12·n
a)
0(' )
I""
b) d) e)
O(log2 n)
3·n+2·nlog2 n 2
3.n +2.nlog2 n
b) Beweisen Sie die folgende Komplexil:ttsbeziehung:
" ; [[j i=Jj=J
O(n ·log2n) O(n 2 )
5 Minimierung
In diesem Kapitel werden Sie ... • d)c typischen Mininüerung!ilieie des Schallungscmwurfs kennen lernen. • cin Grundverständnis rur Kostenfunktionen entwickeln. • das Konstruktionsprinzip von Kamaugh-Ycitch-Diagrammcn verstehen. • erlernen. wie sich boolesclE Funktionen mit Hilfe \'00 Kamaugh-Vcitch-Diagrnmmcn gra-
fisch minimieren lassen. • mit dem Quinc.McCluskey-Verfahren einen alternati"en Weg zur SchaltlUlgsminimicrung beschreiten.
A"dih·
n":l
fl'> '?fV'lO
m·m fVl
_ 11 n.l. ,. "IOI"I(l " " t'\II 111 no
'?fV"lO
m·m m _ 11
I'l'> '?fV"lO
m·m·m
In·7.....n.l?7 '?fV'lO m·m·m In·7.....n.l?70'i"0?0R1MflRQrlQ1 h1~..n 7"""trl. " 'IOI"ICl " " t'\A 111 no "1 ...o?'nn'
160
5 Minimierung
, I, /
:(7)-'
Abbildung 5.3: Das Konslmktionssclr-
, I ~ -Das KV-Diagramm
ma von Karnaugh-Veitch-Diagrammen.
Jedes Feld des KV-Diagramms reprttsentiert eindeutig eine bestimmte Belegung der Eingangsvariablen, die sich anband der Randmarkiemng rekonstruieren IlIssl. Die Variable Xi wird genau dann mit 1 belegt, wenn sich das entsprechende Feld im Bereich der Randmarkierung Xi befindet Jedes Feld eires KV-Diagrnmms
entspricht damit genau einer Zeile in der Wahrheilslafel und kann durch Übertragung der Funktionswerte ausgefüllt wer-
den Die optional angegebenen Zahlen inrerhalb der Felder entsprechen den Zeilennummem in der WahrheitslafeldarstelJung.
ih?
eine Funktion mit n Variablen wird aus einem Diagramm mit n-l Variablen durQ?QR1MflRQrlQ1 h1~..n 7"""trl. ,. "IOI"ICl fl'> t'\A 111 no '>1 ...o?'flO'
162
5 Minimierung
x,f /\X3"-u41
IX]/\-J 3"-U41
1
" ,, , 0
0
,
V
0
0
0
, : Ix,
l. " "IOI"ICl fl'> NI 111 no '>1 ...0.,.,.",'
164
5 Minimierung
an den Eingangen generiert werden. In anderen Fallen beschrankt die Spezifikation einer Hardware-Schaltung die auftretenden Eingabekombinationen aufbestimmte Bilrnusler. So könnte beispielsweise die Spezifikation unserer Beispielfunktion aus
y
Abbildung 5.4 regeln, dass die Schaltung ausseh lieBlich fUr die Klassifi-
& Abbildung 5.9: Hardware-Umsetzung der minimierten disjunktiven Form unserer Beispielfunktion
0 1
----0
0
0
0
0
0
0
0
1
1
0
2
0
0
1
0
3 4
0 0
0
1
1
1
1
0
0
0
5
0
1
0
1
1
6
0
1
1
0
0
7
0
1
1
1
1
8
0
0
0
0
9 10
0
0
1
0
0
1
0
11
0
1
1
0 0
0
12 13 14
1
kation von BCD-ZifTern verwendet werden darf. Da die gUltigen Eingabekombinationen damit nur noch die Zahlen im Bereich von 0 bis 9 umfassen. muss die konstruierte Schaltung nur noch rur die Bitmuster 0000 (0) bis 1001 (9) eine definierte Ausgabe erleugen. FUr alle anderen Bitmuster. die so genannten Don 't-Care-Belegungen, können wir die Ausgabe stattdessen nach Belieben auf 0 oder 1 setzen. Obwoh I der gewahlte Wahrheitswert der Don 't-Care-Kombinationen rur das korrekte Funktionieren keine Rolle spielt. ist eine vorleitige Festlegung auf einen speziellen Wert nicht ratsam - wir wUrden uns auf einen Schlag eines erheblichen Minimierungspotenzials entledigen. Aus diesem Grund markieren wir die Funktionswerte aller Don't-Care-Belegungen zun:tchst mit einem Bindestrich (.,-"). wie in Tabelle 5.5 dargestellt. Genau wie oben tragen wir jetzt die Funktionswerte in das durch wechselweise Spiegelungerleugte KV-Diagramm ein und fassen benachbarte Felder zu immer größeren Blöcken zusammen. FUr alle Felder. die mit ..-" markiert sind, haben wir die freie Wahl, ob wir sie mit einem Block uberdecken oder unbertlcksichtigt lassen. Damit wird das Optimierungspotenzial deutlich. das durch die unvollstandige Definition einer booleschen Funktion entsteht. Eine Don't-Care-Kombination nehmen wir genau dann zur Einsmenge hinzu. wenn wir dadurch größere Blöcke und damit eine kUrlere Formeldarstellung erhalten. Abbildung 5.9 zeigt. dass wir rur unsere Beispielfunktion eine minimale Übenleckung erhalten. wenn wir keine der Don't-Care-Belegungen in die 8lockbildung einbeziehen. Damit evaluiert die Schaltfunktion rur alle Belegungen der Don't-Care-Menge zu O. Wie im abgebildeten KV-Diagramm zu erkennen ist. können wir die Einsmenge dann mit einem einzigen Primblock uberdecken und erhalten die folgende reduzierte Schaltungsdarstellung:
0
15
Tabelle 5.S: Beschränken wir die Menge der Eingabekombinalion:n auf die Men-
ge der gültigen BCD-Ziffern, so erhalten wir durch die entstehenden Don'l-CareBelegungen zusillzliclr Freiheitsgrade für die Minimierung.
Y
=
Xl AX4
(5.2)
Das Beispiel zeigt. dass durch die geschickte Ausnutzung der Don'tCare-Belegungen die Größe der Hanlware-Implementierung deutlich reduziert wenlen kann. Die modifizierte Schaltung besteht. wie die Abbildungen 5.10 und 5.11 zeigen. nur noch aus einem einzigen UNDGalter mit zwei Eingangen und benötigt damit weniger als ein Viertel
5.2 Karnaugh-YeiICh-Diagramllle
165
des PlalZbcdllrfs der Originalschaltung. Wir hallen die Strategie filr die Minimierung partiell definierter Funktionen wie folgt fest:
o
0
Don't-Carc-Bclegungcn werden zunil.chst in das KYDiagramm ubcmommen. Die Funktionswerte werden während der Blockbildung so gewahll. dass maximal große Primhlöckc entstehen.
Abbildung 5.10: KV-Diagranun unserer modifizkl1en Beisp;elfunktion
Inverse Blockbildung [)je Minimierung einer Schaltfunktion mit Hilfe von KV-DiagramlTlCn produziert eine minimierte Schallungsdarstellung in disjunktiver Form. [)je Auswahl der kleinsten Menge von Primblöcken zur Oberdcckung aller Einsfclder stellt sicher. dass es keine andere disjunkti\'C Form gibt, mit der die gleiche Schaltfunktion kUrlcr dargcstellt wcrden kann. In anderen Worten: Das Verfahren \'on Kamaugh und Veitch licfcrt uns cine disjllnktil't! Minimalform, Mit einem kleinen Trick kOnnen wir mit Hilfc des glcichen Verfahrens neben einer disjunktivcn Minimalfoml auch cine konjfjfJ1aiv~ Minimaiform aus delll KV-Diagramlll ablcitcn. Dazu konstruieren wir das KV-Diagl1llllm wie gewohnt. überdeckcn im Zuge der Blockbildung jedoch nicht dic Einslllcnge. sondern die Nullmcnge der zu minimierenden Funktion.
Zur vollständigen Obcrdeckung der Nullmcnge unserer PrimzahlflUlktion sirKt drei Blöcke notwendig. wie das entsprechende KV-Diagl1lmm in Abbildung 5.12 zeigt. Haben wir eine vollständige Überdeckung gefunden, k '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
AbbildutJg 5.11: Hardware~tmpJemen Ikrung unserer Beispklfunktion unter gescbicklCr Ausnulzung der Ooo'l..careBelegungen
~,
x,
x'I
0
1
1 0
0
1
1 0
0
1 0
0
0
0
1 0
x,
>--,l\
l"""i"",,")flX4 11-"1AXJ AX4 1 Ahhildun~ 5.12: Erster Schrill zur Erzeugung einer konjunktiven Minimalfonn: Oberdeckung der Nullmenge
In·7.....n.l?7 t'\A 111 no '>1 ...o?'nn'
166
5 Minimierung
(ON)
y
y
= y = "(,~,'-)~V7(,~,~A~'~;~A~,~,')7V~(7,-,A7"::,-,A7"::",)
(M)
= (x])A(X2Ax3Ax4)A(X2Ax3Ax4)
(M)
= (xJ)A(X2VX3VX4)V(X2VX3VX4) Es gilt an dieser Stelle unbedingt zu beachten, das sich die Polaritat aller Variablen durch die Anwendung der Regel von Oe Morgan umkehrt. Da sich jedoch weder die Anzahl der Primimplikanten lindert noch Variablen hinzukommen oder entfallen. können wir die konjunktive Nor-
mal form auch direkt aus dem Diagramm ablesen. Bei der Bestimmung der Primimplikanten mUssen wir im Vergleich mit dem Originalverfahren daher die Variablen einfach in umgekehrter Polarit:tt aufnehmen und mit Hilfe der ODER- anstelle der UND-Verknupfung verbinden. Anschließend werden alle Primimplikanten auf oberster Ebene mit Hilfe der UND-Verknupfung zu einer konjunktiven Minimalform verbunden.
5.2.2
3,,-,x4
"
>------
'?fV'lO
m·m fVl
_ 11 fl'> '?fV'lO
m·m·m
In·7.....n.l?7Q?QR1MflRQrlQ1 h1~..n 7 ......tN>l. " "IOI"ICl"", t'\II 111 no '>1 ...0.,.,.....,'
170
0
._._. 0
0
0
0
1 2
0 0
0 0
0
1
1
1
0
0
3
0
0
1
1
1
0
1
0
0
0
5
0
1
0
1
1
6
0
1
1
0
0
7
0
1
1
1
1
8
0
0
0
0
9
0
0
1
0
10 11
0 0
1
0
0
1
1
1
12
0
0
0
13
0
1
1
0
0
15
0
._.-..r=:L
1
0
0
0
3
0
0
1
5
0
1
0
7
0
11 13
1
1
0
1
5.3
Quine-McCluskey-Verfahren
0
4
14
5 Minimierung
0
Tabelle 5.6: Als Vorbereitung zur Konstruktion der ersten Quine'schen Tabelle werden alle Variablenbelegungen der Einsmenge aus der Wahrheilstafel extrahiert.
Die in den vorangegangenen Abschnitten vorgestellten KV-Diagramme haben wir als effiziente Hilfsmittel zur Minimierung boolescher Funktionen kennen gelernt. Obwohl die Anwendung des Verfahrens auf Funktionen mit runf oder sechs Variablen. wie oben gezeigt. immer noch möglich ist. wird die Minimierung durch die kompliziertere Blockbildung erheblich erschwert. Betrachten wir noch größere Funktionen mit sieben oder mehr Variablen, so stößt die grafische Minimierung vollends an ihre Grenzen. Genau hier setzen die tabellarischen Minimierungsverfahren an, mit deren Hilfe auch vielstellige Funktionen minimiert werden können. Das Quine-McCluskey-Verfahren (QMCV) ist der bekannteste Vertreter dieser Kategorie und geht auf die bereits Mitte der Funfzigerjahre veröffentlichten Arbeiten der beiden Amerikaner Willard Van Orman Quine und Edward 1. McCluskey zuruck [57.72]. Die Minimierung nach Quine und McCluskey lauft in drei Schritten ab:
• Konstruktion der ersten Quine'schen Tabelle • Konstruktion der Primimplikantentafel • Konstruktion einer minimalen Überdeckung
Konstruktion der ersten Quine'schen Tabelle Ähnlich der Minimierung mit Hilfe von KY-Diagrammen werden im Verfahren von Quine und McCluskey benachbarte Variablenbelegungen zu immer größeren Blöcken zusammengefasst. Die Blöcke werden dabei jedoch nicht grafisch markiert. sondern in Form von Tabelleneinträgen untereinander aufgelistet. Die erste Quine'sche Tabelle wird konstruiert. indem wir zunächst alle Implikanten nullter Ordnung bestimmen. Ein Implikant Imlller Ordnung reprdsentiert exakt eine Variablenbelegung der Ei nsmenge und entspricht damit genau einer einzigen Zeile der Wahrheitstafel. Folgerichtig können wir die Implikanten. wie in Tabelle 5.6 gezeigt. ohne weiteres Zutun aus der Wahrheitstafel der zu minimierenden Funktion ablesen. Ausgehend von den Implikanten nullter Ordnung konstruieren wir, wie in Tabelle 5.7 dargestellt. sukzessive die Implikanten der Ordnung eins.
5.3 Quine-Ml:.'CJuskey-Verfahrell
171
zwei usw., indem wir alle Variablcnbclegungen. die sich in genau einer Variablen unterscheiden. zusammenfassen und in die Tabelle aufnehmen. Zur einfacheren Orientierung tragen wir in die erste Spalte jeweils die Indizcs der zusammengefassten Zeilen ein und markieren die zusammengefassten Variablenbelegungen zusätzlich mit einem Haken. Damit das Quinc-McCluskey-Verfahren eine optimale Lösung produziert, müssen wir darauf achten_ alle möglichen Implikanten zu berech!"Cn. Das Ix."deutet in der Konsequenz. dass wir zur Konstruktion der Implikanten der Ordnung n + I alle Paare von Implikanten der Ordnung n untersuchen müssen. Des Weiteren gibt es zu beachten. dass Implikanten der Ordnung zwei O '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7 t'\A 111 no '>1 ...o?'fln'
172
5 Minimierung
Tabelle 5.11: In der zweilen Quine"schen Tabelle werden alle berechnelen Primimplikanlen zeilenweise angeon:lnel Die Kreuze markieren alle von einem Primimplikanlen abgedeckten Elemenle der Eins-
menge.
Die Minimierung boolescber Funktionen flIlIl in die Klasse der NP·hanen Prob/i!~. Dies bedeutet fUr die Praxis. Wss die laufZeit eines Algorithmus. der das Minirnierungsproblem a.akr losl. exponentiell mit der Anzahl der Variablen der zu minimierenden Schaltfunklion wlichSl. Genau wie die Methode von Kamaugh und Veiteh gehört auch die Vorgehensweise von Quine und McCluskey zu den
e:cukun Verfahren. so dass die Kom· plexiUlt des Minimierungsproblems die praklisctr Anwendbarkeit der Algorith. men stark limitiert. In der Praxis wird das QJine-McOuskey.Verfahren deshalb nicht in seiner Rcinform einge5elzl Stattdessen wird der Algorithmus mit zahlreichen Heuristikcn kombiniert. die das exponentielle Anwachsen von Speicherplatz und Rechenzcil verhindern. Die Ex-
aktheit des Verfahrens wird aus KomplexitlilSgrunden bewusst aufgegeben, mit der Konsequenz. dass nicht mehr in jedem Fall die optimale Lösung gefunden wil'(L Zu den bekanntesten heuristischen Verfahren zur Schaltungsminimienmg gehört das an der ue Berkeley entwickelte ESPRESSO-System [60]. das sowohl im akademischen als auch im industriellen Umfeld gleichennaßen VeJ"\lo'endung fin-
"'..
A"dih·
n":l
fl'> '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
',7 3.11
---0
0
',7 5.13
0
1.3.5.7
0
0
, , , , I
, ,
7
• " " • • • • • • • • • • •
• Zunächst bestimmen wir diejenigen Primimplikanlen. die eiße VariaMenbe}cgung (lI/eine Ubcrdcckcn. da wir diese zur Fun1..1ionsdarstellung auf jeden Fall benotigert In der Primimplikantentafel sind diese ßc}cgWlgen mit ~m puren Auge zuerkennen - wirmUSSCn lediglich nach Spalten sucren. die mit einem einzigen Kreuz marli.icn sind. In unserem Beispiel deckcn die Primimplikantcn (-,0, 1, 1). (-1,0, I). (0, -, -, I) je"..cils eine bestimmte Variablcnbe}cgung al}cioe ab und .....crden daher vorab ausgewählt. • Ist die Einsmcnge durch die im crstcn Schritt ausgewählten Primimplikanten noch nicht \'ollständig überdeckt. so lUgen wir so lange weitere hinzu. bis eine vollständige Oberdcckung erreicht wird. In unserem Beispiel decken die im crstcn Schritt ausgewählten Primimplikanten zusammen bereits allc Elemcnte der Einsmenge ab. so dass wir keine weiteren Implikantcn benötigen. Anschließend werden die ausgewählten Primimplikanten in ihre FormeidarsteIlung übersetzt und auf (ler obersten Ebene disjunktiv verknupfi. So erhalten wir auf einen Schlag eine disjunktive Minimalform. Angewendet auf unsere Beispielfunktion erhalten wir exakt die gleiche Ulsung wie im Fall der Minimierung mit Hilfe von KV-Diagrammen:
Im direkten Vergleich mit der grafischen Minimierung nach Kamaugh und Veitch besticht das Verfahren von Quine und McCluskey vor allem durch seine gute Automatisierbarkeit und findet sich in abgewandelter Form in vielen Algorithmen der computergestUtzten Schaltungssynthesc wieder. Bedingt durch seine mechanische Natur kann das Verfahren auf boolesche AusdrUcke mit einer beliebigen Anzahl Variablen angewendet werden. Im Gegensatz zu KV-Diagrammell ist damit auch die Minimierung von Funktionen mit sieben und mehr Variablen möglich.
In·7.....n.l?7 t'\II 111 no '>1 ...0.,.,.....,'
5.3 Quine-McCluskey-Verfahrcn
173
........ ........ Implikanten nullter Ordnung:
Implikanten erster Ordnung:
0
0
3
0
0
5 7
0
0
1
0
1
1
10
1
0
1
0
" "
1
0
1
1 0
13
1
0 0
14
1
1
0
15
1
I
1
0
1 1
1
'" '" '" '" '" '" '" '" '" '"
1.3 1.5
0
3.7
0
0
0 0
3.11 5.7
0
0
1
5.13
1
0
7.15 10.11
1
1
0
1
10.14
1
11.15
1
12.13
0
0
14.15
1.3.5.7
0
3.7.11.15 12.13.14.15 5.7,13,15 10,11,14,15
I
3
5
1.3.5.7
t/
3.7.11.15
t/ t/
12.13.14.15 5,7,13.15
t/
10,11.14,15
0
'" '" '" '" '"
13.15
........
t/
'" '" '" '"
0
12.14
........ Implikanten zweiter Ordnung:
7
• • • • • • • •
10
12
13
14
" • • • • • • • • •• • • "
Tahellc 5.9: Boolesche Minimierung von Ooo't·Care-Funktiooen mit '?fV'lO
m·m·m
In·7.....n.l?7 ll.1 111 no '>1 ...o?'fln'
174
5 Minimierung
nahme aller Don't-Care-Belegungen innerhalb der ersten Quine'schen Tabelle erheblich mehr Kombinationsmöglichkeiten entstehen. Je mehr wsammenfassbare Implikanlen vorhanden sind, desto höher wird die Wahrscheinlichkeit auch größere Implikanlen bilden zu können. In der Konsequenz fUhrt die Hinzunahme der Don'l-Care-Kombinationen damit zu einer Vergrößerung der berechneten Primimplikanlen.
Ist die erste Quine'sche Tabelle vollstandig konstruiert, Ubertragen wir alle berechneten Primimplikanlen in die zweite Quine'sche Tabelle und
bestimmen wie gewohnt eine minimale Überdeckung der Einsmenge. An dieser Stelle gilt es unbedingt zu beachten, dass die Variablenbelegungen der Don'l-Care-Menge nicht Uberdeckl werden müssen. Zur besseren Unterscheidung sind die entsprechenden 8elegungen in Tabelle 5.9 grau unterlegt. Ein Blick auf die zweite Quine'sche Tabelle zeigt. dass die Elemente der Einsmenge bereits durch einen einzigen Primimplikanten abgedeckt werden. und wirerl1alten mit
y=x]A14
(5.6)
die gleiche Minimalform. die wir bereits weiter oben mit der Hilfe von KY-Diagrammen ermittelt haben.
5.4 Obungsaufgaben
5.4
175
Übungsaufgaben
Ein KV-Diagrallllll rur n-stelligc Funktionen wird durch (I)_ _-fachcs wechselseiti-
Aufgabe 5.1 'Lb
ges (2)'
und (3),
spiegeln konstruiert. Ein KV-
Diagramm rur n-stellige Funktionen enthält genau (4)_ _ Felder. Zwei Blöcke lassen sich genau dann zu einem größeren Block zusammenfassen. falls sie (5)'--und (6)'---
Webcode 5865
_
sind. Ein Block. der nicht mehr vergrößert werden kann. heißt . Jeder Block wird durch einen booicschcn Ausdruck beschrieben.
(7)
den so genannten (8)'
. Zur Erzeugung einer (9)'
Mi-
nimalform wird die Einsmenge mit Primblöcken überdeckt. Durch die Obc~ckungder Nullmenge lassl sich in analogerWeisc eine (IO),
Minimalfonn entwickeln.
Variablcnbclcgungen. die an den Eingängen einer Schaltung nicht anliegen kOnncn oderdürfen. werden als (II)'
-Belcgung bezeichnet und im KV-Diagramm mit
(12)_ _ markiert. Die entsprechenden Felder werden in der Blockbildungsphasc genau
dann überdeckt, wenn hierdurch (13)'---
Blöcke entslehen.
In KV-Diagramlilen ab (14)_ _ Variablen stehen benachbarte Variablenbclegungcn nicht
mehr in jedem Fall unter- oder nebeneinander. Mit Hilfe dreidimensionaler Diagrdmme kOnnen Funktionen mit maximal (15)_ _ Variablen minimiert werden. Störimpulsc. die dann entstehen. wenn sich genau eine Eingangsvariable ändert. werden
als (16)'
_
bezeichnet.
Eine
mit
Hilfe von
KV-
Diagrammen minimierte Funktion ist gegen solche Störimpulsc abgesichert. wenn es keine Primblöcke gibt. Selbst in abgesicherten Schallun-
(17)'
gen können Störimpulse entstehen. die als (18)
bezeichnet wer-
den.
A"dih· 1I":l lI'> '?fV'lO
m·m m _ 11
lI'> '?fV'lO
m·m·m
In·7.....n.l?7 t'\A 111 no '>1 ...o?'llO'
176
Aufgabe 5.2
""''' Webeode
5 Minimierung
. _.. _._..
Erleugen Sie rur die bei den unten abgebildeten Funktionen)'1 und)'2 ein KV-Diagramm und berechnen Sie eine disjunktive Minimalfon11.
5235 0
0
0
0
1
0
0
0
0
0
1
1 2
0 0
0
1
1
1
1
0 0
1
0
0 0
0
1
1 2
1
0
1
3
0
1
1
1
3
0
0
1
1
1
4
0
0
1
4
0
1
0
0
0
5
0
1
0
5
0
1
0
1
0
0
0
6
0
1
1
0
0
7
0
0
6 7
1
1
1
8
0
0
0
1
9
0
0
1
1
10 11
0 0
1
0
1
1
0 0
12
0
0
0
13
0
14 15
1
0
0
0 0
Aufgabe 5.3
Sind die folgenden beiden Schaltnetze äquivalent? Stellen Sie zur Beantwortung der Frage
"'''''
ruf heide
Webeode
Schaltungen ein KV-Diagramm auf und tragen Sie die Funktionswerte sowie die durch die UND-Glieder reprdsentierten Blöcke ein. Was stellen Sie fest?
5421
y
y
5.4 Obungsaufgaben
177
Minimieren Sie die booleschcn Funktionen. die durchdic folgenden KV-Diagl'3mme gegeben sind:
...
Aufgabe 5.4
"
Webcode
"I
, , , , , ,
0
0
" >-----< 0
0
0
0
0 0
" >-----
-----< 0
, , , , , ,
, , , , , ,
0
, , , , , ,
0
0
0
0
,
3
, , , , , ,
,,,
0 0 0 0 0 0 0
I "
0
,
Beachten Sie. dass in KV-Diagrnmmen mit runf oder mehr Variablen benachbarte Variablcnbclcgungcn nichl mehr in jedem Fall nebeneinander angcordnel sind und BlOCke dadurch aus verschiedenen Fragmenten zusammengesetzt sein können.
Betrachten Sie das folgende Schaltnetz sowie das zugehörige KV-Diagramlll. Ist die Schaltung gegen Logik-Hazards abgesichert? Falls ja. warnm? Falls nein. sichcm Sie das Schaltnelz gegen Logik-Hazards ab.
, ....
Aufgabe 5.5 Webeode
5954
x,
>--------
1 ...o?'llll'
178
Aufgabe 5.6
"""
Webeode
5392
5 Minimierung
Bei dem abgebildeten Schalt netz handelt es sich um dasjenige. das Sie im Übungsteil des letzten Kapitels bereits auf Hazards untersucht haben. Tragen Sie die implementierte Funktion in das abgebildete KY-Diagramm ein und sichern Sie das Schalt netz gegen Logik-Hazards ab.
.1
Überprufen Sie anhand Ihrer Lösung, ob Sie bei Ihrer Analyse im lelzten Kapitel alle Hazanls gefunden haben.
Aufgabe 5.7
"""
Webeode
5112
Aufgabe 5.8
"""
Webeode
In Kapitel 3 haben Sie die Reed-Muller-Normalforrn kennen gelemt. die eine boolesche Funktion durch die XOR-Verknupfung mehrerer Basisterme darstellt. die ausschließlich nicht negierte, konjunktiv verknuprte Variablen enthalten dUffen. Können Sie sich eine Blockbildungsvorschrift vorstellen, mit deren Hilfe sich die Reed-Muller-Normalfonn aus einem KY-Diagramm extrahieren lasst?
Geben Sie alle viersteiligen Funktionen an. fUr die die disjunktive Minimalform gleich der disjunktiven Normalform und gleichzeitig die konjunktive Minimalfonn gleich der konjunktiven Normalform ist.
5343 Tipp: Überlegen Sie sich hierLu zun:tchsl. wie das KV-Diagramm dieser Funktionen aussehen mUsste.
5.4 Obungsaufgabcn
179
........ ........
Minimieren Sie die folgenden Funktionen mit Hilfe des Quirc-McCluskcy-Verfahrcns:
0 I
2
3
•,
0 0 0 0 0 0 0 0
0 0 0 0
0 0
0
,
, , , 0
0 0
0
12 13
, , , , 0, 0 0 0 , 0 0 , 0 , 0, 0 0 0 , 0
14
0
6 7
8 9 10 11
I
I
, , , 0 , 0 , , , ,
0 0 0 0
m·m m _ 11
I
2
3
•, 6 7
8 9 10
11
12 13
"
fl'> '?fV'lO
m·m·m
0 0 0 0 0 0 0 0
0 0 0 0
0 0
0 0 0 0
, , ,
0
, 0 , ,
, 0 , 0 , , ,
I
"
"
A"dih· ll":l fl'> '?fV'lO
0
0
I
0
0 0
0
0 0
0
, 0 , ,
...
Aufgabe 5.9
"
Webcode
5169
0 0 0
0
0 0
0
In·7.....n.l?7 t'\A 111 no '>1 ...o?'llll'
180
5 Minimierung
6 Standardschaltnetze
In diesem Kapitel werden Sie ... • sehen, wie sich mit Hilfe von Multiplexem lUld DcmuHiplcxcm der Kontrollnuss einer Hardware-Schaltung steuern lasst. • einen Einblick in die \'Crschiedenen Architekturen von Addicr- und Multiplizierwerken erhalten. • erlernen. wie sich mit dem Komparator Zahlcnwc",~ vergleichen lassen. • mit dem Bam:I-Shiftcrcine schnelle SchicbcregislcrimplcmcOIicrung kennen lernen. • die Struktur und den Aufbau einer arithmetisch-logischen Einheit verstehen. • in der programmicrbarcn Logik ein allcmali\'cs Prinzip des Schaltungscnlwurfs erkennen.
A"dih·
n":l
fl'> '?fV'lO
m·m fVl
_ 11 n.l. ,. "IOI"I(l " " t'\II 111 no
'?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
y
L - Multiplizierer "~~ " Abbildung 6.2: Ein einfaclrs Rechenwert.. In Abhllngigkeit der Steuerkitung ~ werden die Operanden XI und X2 entv..eder addie-rt (SO = 0) oder multipliZiert (~= I).
• Abbildung 6.3: SChienenanalogon. Das Verhallen eines Multiplexers ist dem einer SChienenweiche \'erglcichbar. tn Abh:tngigkeit des Stetlsignals wirt! genau einer der Eingänge mit dem Ausgang verbunden.
2:1
MUX
y
" Abbildung 6.4: Mi! Hilfe von Multiplexem wer{len DatenstrOme kanalisiert. In Abhängigkeit {ler Steuerleilung wird entweder das obere Eingangssignal (so = 0) oder das uno tere Eingangssignal (so = I) auf den Aus· gang durchgeschaltel
In·7.....n.l?7 t'\A 111 no '>1 ...0.,.,......'
184
6 Standardschaltnelze
" ',-
" ',-
2:1 MUX
I-y
',-
',-
" ',-
4:1 MUX
'i-
"'i-
I-y
'.',-
8:1
MO" -y
"
-- --- -------)1 )0
).
0
1
" "
0
0
0
1
1
0
1
1
52 )1 So
" " " "
0
0
0
0
0
1
0
1
0
0
1
1
" " " "
1
0
0
1
0
1
1
1
0
1
1
1
" "
'"
"
Abbildung 6.5: Multiplexer-Bausteine verschiedener Größen
gang y durch. Alle anderen Eingange wenlen durch den Multiplexer
faktisch vom Rest der Schaltung abgetrennt. so dass die dort anliegenden Signalwerte tuT den Ausgangswert keine Rolle spielen. Da mit m
"
Steuerleitungen 2m verschiedene Möglichkeiten unterschieden wenlen können. entspricht die Anzahl der Eingange eines Multiplexers in aller Regel einer Zweierpolenz. Abbildung 6.5 fasst die Wahrlleitstabellen
"
und Schaltsymbole von Multiplexem verschier±ner Größe zusammen.
" " "
.1 y
'. " "
Abbildung 6.6: Realisierung eines l-aus-8Mulliplexers mit Hilfe 1 ...o?'nn'
186 ~
"
TI ~
"0
~
,\J
i=
~
·C
TI ~
g"
i5
6 Standardschaltnelze
---0
0
0
0
0
O
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
--0
0
1
0
_1lII 0
1
1
0
0
0
1
1
_l1li 0
1
1
1
~
------
,
------
-5 ~
g"
.~
N
,,-~ 00
'm
YIO-~w J; '" J;
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
MUX ~
~
x2
0
'""=sUX
,
"
0-
f."
;h iMUXr-
-----
·C
y
TI ~
g"
"0 :>
~,-
,
T x2
L-
',- J ,MUX
MUX-y
T
xl
),
L-
Abbildung 6.8: Schrittweise Transfonnation einer beliebigen booleschen Funktion in ein Multiplexer-Schaltnetz
nureruenkJiche boolesche Funktion zu implementieren. Als Ausgangs-
punkt verwenden wir die Wahrlleitstafeldarstellung einer booleschen Funktion f(x J 1 ••• ,xn) und setzen diese schrittweise in ei ne Multiplexerbasierte Schaltung um. Hierw unterteilen wir die Tabelle jewei Is i n eine obere und eine untere Halfte. so dass die Variablenbelegungen der obe-
ren Halfte durch die Bedingung X n = 0 und die Belegungen der unteren Haine durch die Bedingung Xn = 1 charakterisiert si nd. Folgerichtig
können wir die boolesche Funktion erleugen. indem wir die Steuerleitung eines l-aus-2-Mulliplexers mit der Variablen X n beschallen und an dem oberen bzw. unteren Eingang des Multiplexers die boolesche Funktion der oberen bzw. unteren H:tlfte der Wahrheitstafel erleugen. Durch die wiederllOlte Zerlegung entsteht ein Schaltnetz für J. das ausschließlich aus l-aus-2-Mulliplexem besteht
6.2 MUltiplexer und Dcmultiplexer
187
-Y,Y, _
x
-Y,
_
1:2 OEAiUX
x
-Y, -Y, _)'(
1:4
DEMUX
.. -. _.. _._T
TT "
"
"
o
x
0
o
o
x
010xOO
0
o 1
x
0 0
000 0 0
x 0
0 x
Abbildung 6.10: Genau
wie im Falle des MUltipJexers ist das Verhalten eiDeS DemultipJexers mit dem einer Weiche \'ergleichbar. Beide Bausteine unterscheiden sich lediglich in der F1ussdchtung der ein- und ausgehenden Signale.
Abbildung 6.9: DemultipJexer-Bausteine "erschiedener GrOBen
Demultiplexer
Bewirken MUltiplexer die kontrollierte ZusammenlUhrung \'on Datenpfaden. so bewerkstelligen Demultiplexer deren Aufspallung. EllIsprechcnd verlUgt ein I-zu-n-Dcmultiplexer (I:n DEMUX) über eine einzige EingangsleilUngen x. die Steucrleitungen so bis Sm lUld n Ausgangsleitungen YI, ... ,Y". In Abhängigkeit der Wertebelegung schallet der ~mulliplexer das Eingangssignal x auf genau eine der Ausgangsleitungen YI bis y" durch und belegt alle anderen Ausgange mit O. Abbildung 6.9 7.eigt die Wahrhcitstabcilen und Schaltsymbole eines l-zu-2und eines l-zu-4-Dernultiplcxers. Da mit n Steuerlcitungen 2/1 verschiedene Möglichkeiten unterschieden werden können. entspricht die Anzahl der Ausgünge eines typisct-=n Dernultiplexers in aller Regel einer Zweierpotenz.
Y, Y,
Y, Y, Y, Y.
Das Schienenanalogon, das wir zur Veranschaulichung des MultiplexerVerhaltens herangezogen haben. können wir in direkter Weise auf die Multiplexer-Schallung übertragen. indern wir schlicht die Richtung drehen. Wie in Abbildung 6.10 gezeigt. wird der ankommende Schienenstrang in Abhll.ngigkeit des Ste][signals mit genau einem der heiden ausgehenden Schienenstränge verbunden. Wie im Falle von Multiplexemllisst sich eine zweistufigc Implementierung eines J)cmu1tiplexers direkt aus dessen Wahrheitstahelle ableiten. Jedes der AusgangssignaJc)'1 kann durch ein einzelilCs UND-Gatter er-
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
Y, Y.
A hhildun~ 6.11: Realisierung eines 8: 1Demultiplexers mit Hilfe der elementaren
Logikgaucr
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'nn'
188
6 Standardschaltnelze
,
zeugt werden, das neben dem Eingang x die Signale der Steuerleitungen
"" "'. "'. "'.
I:R
EMUX
So, ... , Sm entgegennimmt. Die entsprechende Schaltung ist in Abbil-
dung 6.11 dargestellt. Gehen wir auch hier davon aus, dass die Größe ei nes UND-Gatters mit der Anzahl der Eingangsleilungen steigt. so erhallen wir die folgende KomplexiUltsabschatzung:
':l 'I So
Die zweistufige Implementierung eines l-zu-n-Demulliplexers besitzt die folgende Komplexitat:
-lJ-
"" "'.
4:1
EMUX
,
,"
2:1 DEMUX
"'. "'.
4:1
"
EMUX
,"
-lJ2:1 OOMUX 2:1
EMUX
"
,
2:1 OOMUX
'. '.
2:1 OOMUX
2:1
"
EMUX 2:1
EMUX
"
'.
2:1
EMUX
'.
" " " '. " " "
'.
Abbildung 6.12: l-zu-2-Demultiplexer reichen aus, um alle anderen Demultiplexer zu impknrntieren. Die dargestellte Reduktion zeigt, wie ein l-zu-8-Demulliplexer auf ein SchaltJrtz reduziert werden kann, das aus-
SchaltungslIefe
Flllchenbedarf
O(logn)
O(n)
Genau wie im Falle des Multiplexers lasst sich auch hier der Fmchenbedarf reduzieren. indem wir den l-zu-n-Demultiplexer rekursiv in immer kleinere Komponenten aufspalten. Abbildung 6.12 demonstriert das Konstruktionsschema anhand eines l-zu-8-Demultiplexers. der bereits nach zwei Reduktionsschritten vollständig auf insgesamt 7 elementare l-zu-2- Demultiplexer reduziert werden kann. Insgesamt können wir auf diese Weise eine Demultiplexer-Implementierung erleugen. deren Fläche nur noch linear und deren Laufzeit logarithmisch mit der Anzahl der Schaltungsausgänge zunimmt:
Die rekursive Implementierung eines l-zu-n-Demultiplexers besitzt die folgende Komplexität: SchaltungslIefe
Flllchenbedarf
O(logn)
O(n)
Demultiplexer werden auch als Decoder bezeichnet. Der Begriff geht auf deren Eigenschaft zurtlck. die 2m an den Steuerleitungen auftretenden Bitkombinationen zu separieren und auf die 2m Ausgangsleitungen ZU verteilen. Damit entspricht jeder Ausgang eines Demultiplexers genau einem Minterm und wir können jede n-stellige boolesche Funktion mit Hilfe eines Multiplexers mit n Steuerleitungen und einem zus:ttzlichen ODER-Gatter realisieren. Hierw mUssen wir lediglich den Eingang des Demultiplexers mit 1 beschalten und diejenigen Ausgange des Multiplexers disjunktiv verknupfen. die einem Minterm der disjunktiven Nonnalform entsprechen.
schließlich l-zu-2-Demultiplexem enthalt.
A"d",h,,- 01 n
'?fV)Q
m·m·m
Y.....-
...
I
Abbildung 6.14: Implementierung des 1Bit·Komparators
'.
-----------_ .... _-----,
F.
Y,
+>-J-I
Abbildun~
6.15: Der zusätzliche Enllble· Eingang wirkt wie eine Sperre. In Abhan· gigkeit des Wens von E iSI der Komparator akliviel1 (E = I) oder gespen1 (E = 0).
In·7.....n.l?7 NI 111 no '>1 ...o?'flO'
190
6 Standardschaltnelze
="" "'0
,
COMP
gangs. Ist der Wert von E gleich I, so verh:tll sich der Komparator unverändert. Setzen wir E dagegen aurO, ist die Komponente deaktiviert.
1 Bit
d.h.. die Ausgangsleilungen liegen konstant auf dem Wert 0 - unabhangig von den Werten der Eingangssignale. Wie in Abbildung 6.15 gezeigt. können wir den erweiterten KomparatorbauSlein implementieren.
J Bit
COMP
'----i
indem wir die Ausgänge durch weitere UND-Galter fUhren, die zus:ttzlieh mit dem Enable-Signal E beschaltet sind. Im Falle E = 1 wenlen die UND-Galter fUr das zweite angelegte Signal durchl:tssig, Ist E = 0, blockieren die UND-Gatter alle Signale und erleugen eine 0 an den Ausgangen.
I Bit
COMP
'----t
I Bit
COMP
I =1 (x~y)
.1 =0
.1
I
=2
(x>y) (x y) und Z2 (x < y) wenlen durch die beiden ODERGalter 'Im unteren Ende der Schaltung nach außen ge fUhrt. Der Enab/eEingang E des ersten I-Bit-Komparators ist stets mit 1 beschallet so dass der Baustein immer aktiv ist. Im Gegensatz hierlu winl das Signal ZJ, das genau dann gleich 1 ist wenn xo und Jo gleich sind, mit dem Enable-Signal des nachsten Komparators verbunden. Dies hat zur Konsequenz, dass die nachfolgenden Komparatoren deaktiviert wenlen, sobald feststeht welche der beiden Zahlen x und y größer bzw, kleiner ist. Nur wenn durchweg alle Bits von x und y den gleichen Wert besitzen, winl die 1 des Enable-Signals des obersten Komparators bis ganz nach unten durchgereicht. Damit erhalten wir zugleich die folgende KomplexiUltsabschatzung fUr den n-Bit-Komparator:
J Bit
"" "'0
COMP
Die serielle Implementierungeines n-Bit-Komparators besitzt die folgende Komplexilat:
1 Bit
SchaltungslIefe
COMP
Flllchenbedarf O(n)
'----t
I Bit
COMP
I =1
(x-y)
.1 =0
.1
I
=2
(x>y) (x t'\II 111 no '>1 ...o?'nn'
194
6 Standardschaltnetze
Fall 2
Fall I
o +
o
o
0 0
+
o
Fall 1
I I
Fall 4 I
0
+
o
+
o
I
Tabelle 6.1: Bei der Addition zweier Binärziffern mus.sen wir vier Fälle unterscheiden.
6.5
Addierer
Die DurchfUhrung arithmetischer Operationen gehört zu den Kernaufgaben eines jedes Computersystems. In diesem Abschnitt werden wir die verschiedenen Möglichkeiten kennen lernen. wie sich die Addition in Fonn eines Schaltnetzes implementieren lasst. HierLu werden wir mit dem Halb- und dem Volladdierer zun:lchst die arithmetischen Basiskomponenten einfUhren und anschließend zeigen. wie sich diese zu komplexen Addierwerken kombinieren lassen. Auch hier werden wir unser besonderes Augenmerk wieder auf die Laufzeit und den Flachenverbrauch der betreffenden Schaltungen richten.
6.5.1
'f~l,rn'
.... _-
y~CC~y o o
0
0
0
1
1
0
1
0
o
o Abbildung 6.22: Schaltsymbol und Wahrheilstafel eines Halbaddierers
Halb- und Volladdierer
Der Halbaddierer ist die einfachste arithmetische Basiskomponente und bildet die Addition zweier Bin:trliffern x und y nach. Da beide Summanden nur die Werte 0 und 1 annehmen können. mUssen wir lediglich die vier in Tabelle 6.1 dargestellten Rtlle unterscheiden. Wie die Rechenbeispiele zeigen. setzt sich das Ergebnis der Addition aus dem Summenbit z und dem Übertragsbit c (Curry-Bit) zusammen. so dass der Halbaddierer neben den beiden Eingangsleitungen x und y uber insgesamt zwei Ausgangsleitungen verfUgt. Das Schaltsymbol des Halbaddierers ist zusammen mit seiner Wahrheitstafel in Abbildung 6.22 dargestellt. Die Wahrlleitstabelle ergibt sich ohne Umwege aus den binaren Additionsregeln. Wie aus der Tabelle hervorgeht. ist das Summenbit genau dann gleich 1. wenn einer der beiden Summanden gleich 1. der andere dagegen gleich oist. Dagegen wird das Übertragsbit nur dann gesetzt. wenn beide Summanden gleich 1 sind. Damit erhalten wirfUrdie booleschen Funktionen von z und c das folgende Ergebnis:
z
(6.7) (6.8)
Aus den beiden Gleichungen ergibt sich ohne Umwege die in Abbildung 6.23 skizzierte Implementierung. die aus lediglich zwei Logikgattem besteht. Abbildung 6.23: lmplenrntierung '?fV'lO
m·m·m
,,-----"-1 ,
'---
•
'.,
1
Rekurstonsschema: Ci+l
•
n,L-l ,
= (XI I\)'j) V (Ci 1\ (Xi .... }'i»
AbkUrzcnde Schreibweise: gi :=Xi I\)'i Pi := .{i - )'i
•
Dann gilt: Cj+l =giV(CjI\Pi)
6.28: Rekursioosschema zur Berechnung der Übenrage
Abhildutl~
In·7.....n.l?71 ...o?'nn'
198
6 Standardschaltnetze
Y,
Yo
Abbildung 6.30: Strukturbiid des vollsUlndig zusanmrngesetzten n-Bit-Carry-look-ahead-Addierers
lasst sich die Rekursionsgleichung wie folgt ausrollen: Cl
goVcoPo
C2
glVclPI
(6.9)
gIV(gOVcüpo)PJ glVgOPIVCOPoPI C3
(6.10)
g2Vc2P2
g2 V (gJ V goPI V cüPopt) P2 g2VgIP2VgOPIP2VCOPOPlP2
C4
(6.11)
g3V(C3P3)
g3 V (g2 V EI P2 V goPI P2 V COPoPI P2) P3 g3 V E2P3 V EI P2 P3 V gop] P2 P3 V cOPOPI P2 P3 (6.12)
Setzen wir die Formeln 6.9 bis 6.12 direkt in eine Hanlware-Schallung um. so erhalten wir das in Abbildung 6.30 dargestellle Schall netz. Das Strukturbild offenbart bereits mit wenigen Blicken die zentralen Eigen-
schaften des Carry-look-ahead-Addierers. Zum einen ist die Tiefe der
6.5 Addierer
199
Schaltung konstant. c1.h.. unabhangig von der Bitbreite durchmuft ein Signal von den Eingangen zu den Ausgängen stels eine konstame Anzahl an Logikgallem. Zum anderen scheint die Anzahl der Logikgaller rur die Berechnung des i-ten übertragsbits kontinuierlich zuzunehmen. Wie die nebenstehende Analyse zeigt. steigt der Rächenbedarf in der Tat kubisch mit der Bitbreite an. so dass wir das Komplexit:lIsverhalten insgesamt wie folgt fcsthaUcn können:
Der Cany-look-ahcad-Addierer besitzt die folgende Komplcximt
Entsprechend dem Strokturbild des Canylook-ahead-Addierers in Abbildung 6.30 durchläuft ein Signal voo den Eingangen zu den Ausgängen vier Gatlerstufen. Um den Aächenbedarf d:r Schallung abzusch:tlZen. bestimmen wirzunllchst die Anzahl der verbauten Logikgaller. Bezeich~n wir mil G/(II) die Anzahl der LogikgalIer in der ;-Ien Stufe. so gilt: GI (11)
=
4-n
02(11)
=
• I>
"'(n)
= =
i_I Sctla,llungsuefe
Flad~nbedarf
Oll)
Oln'l
Mit dem Carry-rippJc- und dem Cany.look-ahead-Acklierer haben wir jclZl zwei ImpJcmentierungsvarianten \'or uns. deren KomplcxiUll.scigenschaften sich diametral unterscheiden. Während wir mit der Carryripple-Architekwr in der Lage sind. ein nächenokonomisches. aber vergleichsweise langsames Addierwerk zu implementieren. können wir mit Hilfe der Carry-look-ahead-Struktur einen schnellen. aber mlchenintensiven Addierer realisieren.
So \ocrschicdcn die beiden Konzepte sind. so einfach lassen sie sich gltlcklicherweisc mitcinan(b kombinieren. Ausgehend \'on dem Carryripple-Addierer vcrkUrten wir dcn Signalweg des Übertragsbits. indern die einzelnen Volladdierer c1urch gröBerer parallel arbeitende Carrylook-ahcad-Blöcke ersetzt werden. Abbi Idung 6.31 zeigt einen auf diese Weise konstruierten 4-Bit-Addicrer. aufgebaut mit Hilfe von zwei in Reihe geschalteter 2-Bit-Carry-look-ahead-Addierem. Die optimale Größe der Carry-look-ahead-Blöcke hangt dabei unmittelbar von den geforderten Schaltungscigenschaften ab und lasst sich beispielsweise durch einen iterativen Prozess ermitteln. Den Ausgangspunkt bildet ein reiner Carry-ripple-Addierer. In jedem Schritt wird der aktuelle Flltchenbcdllrf der Schaltung emlillelt und die Volladdierer durch immer größere Carry-look-ahead-Acklierer ersetzt. Der Prozess bricht erst ab. wenn die spezifiZierte Laufzeit erreicht odlr das vorgegebene Flll.chenlimit Uberschrinell ist. In der Praxis werdln OptimierungeIl dieser Art softwarcgeslUtzt durchgcfUhrt und in einem vollautomatischen oder semiautomatischen Pro7.cSS berechnet.
G~(II)
Für die KompleJtitlltsabschlltzWlg im 0Kalkül ist nut der Anteil C2(1I) relevant. Mit Hilfe der GauB'schen Summenformel, die wir auf Seile 88 im Zusanunenhang mit dem Beweisprinzip der vollslllndigen Indulaion kennen gelernt haben. gilt
"'(n)
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
=
02(11) iSI ein erster Anhattspunkt flIr den Filichenbedarf des Cany.look-alradAddierers. FUr eillC prtlZise Absch:ttzung müssen wir in BeIracht ziehen. dass die Größe der UND-Galler mit zwrhmender Bllbreire ebenralls steigt Bezeichnen wir mll E2(1I) die Summe der Eingange aller Galter der millIeren UND·Sture. so können wir aus (lern Strukturbild die fotgende Beziehung ableiren:
Auf eine doppelte Summe dieser Bauart sind wir bereits im ObungSleil auf seile 152 gestoßen und wiremallen auf einen Schlag das folgende Ergebnis: E2(f1)
A"dih·
n n
=
0(n 3 )
In·7.....n.l?7 t'\II 111 no '>1 ...o?'nn'
200
6 Standardschaltnetze
Abbildung 6.31: Serielle Zusamnrnschaltung nrhrerer Carry-look-ahead-Addierer
6.5.4
Präfix-Addierer
In diesem Abschnitt werden wir zeigen. wie dem kubisch ansteigenden Fl:tchenbedarf des Carry-look-ahead-Addierers begegnet weruen kann. ohne den Vorteil der parallelen Übertragsberechnung aufzugeben. Unsere Überlegungen werden uns direkt zur Architektur des parallelen
Prafix-Addierers fUhren. Die konstantstufige Übertragslogik des Carrylook-ahead-Addierers wird hierbei durch ei ne aquivalente Schaltung lo-
garithmischer Tiefe ersetzt deren Galteranzahl gerade ei nmallinear mit der Bithreite zunimmt. Den Ansatzpunkt liefert uns ein erneuter Blick auf das Strukturbild in Abbildung 6.30. Dem Aufbau des Addierers entsprechend werden die
einzelnen Übertragsbits mit separaten Schaltnetzen berechnet. die völlig unabhangig voneinander arbeiten. Sehen wir von r±r gemeinsamen Nutzung der vorberechneten Signale Pi und g; ab. so findet keinerlei Wiederverwendung ei nzelner Teile der Berechnungslogik statt. Genau hier setzt der parallele Pr:tfix-Addierer an. dessen prinzipieller Aufbau in Abbildung 6.32 skizziert ist. Der parallele Prafix-Addierer ersetzt die separat implementierten Schaltnetze konstanter Tiefe durch
6.5 Addierer
201
:i
:i
:i
VA
VA
VA
..,
('.:
~
"
:i
. '. VA
,'.,
Ahhildung 6.32: Schema des parallelen Prtlfix-Acktierers.lm Unterschied zum OlJTy-look-ahead-Addierer werden die ÜbertragsbilS rur die einzelnen VoUaddierer nicht in separaten zweiSlufigen Schallnetzen, sondern mit Hilfe eines einzi~n kombinierten Schaltnetzes berechnet. Mit Hilfe eioerentsprechcnden Basiszelle kann das Schaltoetz in der Form derparaJleien PTlllix-Schaltung entworfen werden. die wir am Anfangdieses Kapitels kennen Wleml haben. Hierdurch erreicht der Addierer logarithmische Laufzeit bei nur linearem F1achenbedaJf.
cin einziges Schallnet1.. das auf der in Abschnitt 6.4 eingefUhncn RekursionsSlruklUr basiert und damit eine logarithmische liefe aufweist. Um die Berechnung der überträge mit Hilfe des neuen Schaltnetzcs zu verslehen. werfen wir wiederum einen Blick auf die Gleichungen. die uns schon ~i der Konstruktion des Cany-look-ahcad-Addierers als Grundlage zur Berechnung der Obcrtragsbits dienten: SOVCoPo
(6.13)
SIVSOPIVCOPOPI
(6.14)
S2 V SI P2 V80PI P2 VCOPoPI P2
(6.15)
83 V 82 P3 V 81 P2P3 V 80Pl P2P3 VCOPoPI P2 P3 (6.16)
Vergleichen wir die Struktur der Gleichungen (6.15) bis (6.16) mit den Gleichungen (6.4) bis (6.6) aus Abschnitt 6.4. so sind wir schon so gut wie am Ziel. Wir können die Obertragsbits Cl bis C4 parallel berechnen. indem wir zunUehst die parallele Pr'dfix-Schaltung wie in Abbildung 6.21 aufbauen und anschließend die AusgUnge. wie in Abbildung 6.33 gezeigt. zusammenschalten. A ur diese Weise haben wireinen Addierer mit lineurem FHlchenbcdarf konstruiert. dessen Schaltungstiere nur logutithmisch zunimmt.
&
A"dih·
n":l
fl'> '?fV"lO
Fl~crenbedarf
O(log.ll)
O(n)
m·m m _ 11
fl'> '?fV"lO
m·m·m
&
., .1
Der pamllele Pr'Jfix-Addiercr besitzt die folgende KomplcxiUIt; Schallung.SI1Cfe
&
Abhildun~
6.33: Implementierung eines parnllelen Prllfix-Addierers
In·7.....n.l?7 f\II 111 no '>1 -t-fl?'nn'
202
•
6 Standardschaltnelze
Beispiel 1
+ + 0 0
•
6.5.5 0 0 0 0 0
0 0 0 0 0
0 0 0 0 I
I I I I
0
Carry-save-Addierer
Obwohl sich die bisher vorgestellten Addierwerke in ihrer Laufzeit- und FlachenkomplexiUll erheblich unterscheiden, dienen sie doch stets dem
I ,I
(~
c)
gleichen Zweck: der Addition zweier Binarlahlen. MUssen dagegen drei oder mehr Operanden addiert werden, so sind die bisherigen AddiereT auf Grund ihrer auf zwei Operanden optimierten Struktur nur bedingt geeignet. Genau an dieser Stelle setzt der Carry.save-Addierer an, der ei ne gleichemlaßen effiziente und platzsparende Addition von drei oder
Beispiel 2
mehreren 8in:trLahlen emlöglicht. + + 0 I
0 I I 0 I
I I I I
0
I
0 0 I I
I I
0 0 0
(
,j
(~
c)
Abbildung 6.34: Schreiben wir die Sumnrn- und Übertrngsbils bei der Addition dreier Binarzahlen getrennt auf, so erhalten wir ohJr Umwege die Darstellung des Ergebnisses im Carry-save-Formal.
Die Grundidee der Carry-save-Addition besteht in der Verwendung eines speziellen Zwischen formats. das im Vergleich zur Binardarstellung eine einfache und schnelle Implementierung der Addition erlaubt. Zun:tchst werden alle Additionen in diesem Zwischenformat ausgeführt und das Ergebnis erst im letzten Schritt in das 8in:trsystem zurUckkonvertiert. Die RUckkonversion geschieht mit Hilfe eines traditionellen Addierers. so dass wir ei n Carry-save-Addierwerk als eine Erweiterung ei nes konventionellen Addierers auf die Verarbeitung von n Operanden interpretieren können.
~ Definition 6.2 (Carry-save-Formal) Z,s und c seien drei Zahlen im Bin:trfonnat. Jedes Tüpel (s,c) mit z=s+c
ist eine Carry-sare-Darstellung von z.
Auf den ersten Blick wirkt die Carry-save-Darstellung reichlich umstandlich und kaum hilfreich - sch lieBlich interpretieren wir eitle 8in:trzahl in diesem Fonnat schlicht mit Hilfe zweier weiterer BinarLahlen. Auf den zweiten Blick zeigt sich der Vorteil dieses Ansatzes. Addieren wir drei BinarLahlen. so lasst sich deren Summe ganz einfach im Carry-save-Format ermitteln. indem wir das Turel (s,c). wie in Abbildung 6.34 gezeigt. mit Hilfe der getrennt notierten Summen- und Übertragsbits erLeugen. Setzen wir das Additionsschema in ein Schaltnetz um. so entsteht die in Abbildung 6.35 dargestellte Implementierung einer Carry-saveAdditionszelle. Die Schaltung nimmt als Eingabe drei BinarLahlen entgegen und berechnet daraus die Summe in Carry-save-Darstellung. HierLu werden für jede BitsteIle die drei Eingabebits mit Hilfe eines Volladdierers separat addiert und das Summen- und Übertragsbit ohne
6.5 Addicrcr
203
o...
trc".1
'ii M 0
Q?QR1MflRQrlQ1 h1~..n 7...-.tN>l. ,. "IOI"ICl fl'> t'\II 111 no '>1 ...o?'nn'
204
6 Standardschaltnetze
4:2 Reduktionszelle YJ Y2
42
4:2
Y1
Y,
4:2
Zo (Zo+Z)
=
Zl
Y3+ Y2+ Y l+ Yol
32:2 Reduktionszelle
z
(Z = XlI +... +X1+XO>
Abbildung 6.37: Carry-save-Schaltnetz zur parallelen Addition von 32 Binarzahlen
aus insgesamt 15 baumartig angeordneten 4:2-Reduktionszellen aufgebaut ist. Jede 4:2-Reduktionszelle entsteht ihrerseits aus der Zusammenschallung von jeweils zwei der weiter oben eingefUhrten 3:2Reduktionszellen.
Durch die baumartige Struktur des Carry-save-Addierers steigt die Tiefe der Schaltung nur logarithmisch mit der Anzahl der zu addierenden Bin:trLahlen an. Implementieren wir den letzten Additionsschritt mit Hilfe
eines zweistufigen Carry-look-ahead-Addierers. so entsteht ein Schaltnetz. das die Addition von n BinarLahlen alles in allem in logarithmischer Zeit berechnet. In der Praxis winl der Carry-save-Addierer unter anderem für die schnelle Multiplikation zweier BinarLahlen eingesetzt. HierLu wird die MUltiplikation zweier n Bit breiter Zahlen auf die n-fache Addition zurückgeführt und die Summe mit Hilfe eines Carry-save-Addierers berechnet. In Abschnitt 6.8.2 kommen wir im Detail auf dieses Multiplikationsprinzip zurück.
6.6 Inkrementierer
6.6
205
Inkrementierer
Der n-Bit-Inkrell'lcnticrer verlUgt über n Eingangs- und n + I AusgangsIeitungcn und crhoht den an den Eingängen angelegten Wert um I. Die InkrelllCllIierung gchOrt zu den am häufigsten ausgelUhrten arithmetischen Operationen innerhalb eines Mikroprozessors. Beispielsweise wird der Adresszählcr sukzessive um eins erhöht. sobald die CPU zusammenhängende Datenblöcke aus dem Hauptspeicher liest oder dorthin übenragt. Auch in den klassischen Kontrollslrukturen gewöhnlicher Programmiersprachen spielt die InkrelTlelltierung eire groBe Rolle. So wird in der Mutig verwcndeten For.Next-&hleife die Schleifenvariable in jeder Iteration um eins crhöht Impletnentierungsscitig handelt es sich bei dem Inkrementierer um einen SJrzialfall des Addiercrs. Belegen wir die Übenragsleitung c mit I und die Eingangslcitungcn )"11_1 bis )"0 des zweiten Operanden konslanl mil 0 und vcreinfachen das resulticrende SchaltnelZ. so crhaltcn wir auf direktc Wcise cine optimierte Hardware-Implcmcnlicrung des Inkremcmicrers. Wcnden wir das Schema beispielswcise auf ~n Carry-look-ahcad-Addicrer aus Abbildung 6.30 an. entsteht das in Abbildung 6.39 dargestcllte Schaltnetz.
Abbildung 6.38: SChema zur Konstruktion eines Inkrementierers. AusgeheDd von einem beliebigen Addierer lasst sich ein Inkrementierer ableilell, irxrm die Signale des zweilen Operanden auf kOfL'itant 0 lind der Übertragseingang des erslen VollOOdierers cO auf konstant I gesetzt werden. Anschließend wird das SCbaltnetz entsprechend den Regeln cl'r booleschen Algebra oplimiert
Ixr n-Bit-Inkrcmcnticrer ist cin Spezial fall des n-BitAddierers. Die Komplexität der Implementierung entspricht der Komplexität des zu Grunde liegenden Addicrwerks.
&
'.
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
AbbildUlIl: 6.39: Das dargestellte Scha!tnetz implementiert einen 4Bit-!nkrell'lenlierer mit Hilfe eines Schaltnetzes konstanter TIefe. Die Schaltung ist durcb die An....-endung cb allgerr.einen Konslruklionsschemas auf den Carry-look-ahead+Addierer aus Abbildung 6.30 entstanrel1.
In·7.....n.l?7 t'\A 111 no '>1 ...0.,.,......'
206
6 Standardschaltnetze
6.7
Subtrahierer
In Abschnitt 2.2.1 haben wir mit dem Zweierkomplement die gangigste Form zur Darstellung vorleichenbehafleter Dualzahlen kennen gelemt. Da sich. anders als z.B. im Einerkomplement Zahlen im Zweierkomplement auf naturliehe Weise addieren lassen. können wir die Differenz x- y direkt auf die Addition und die Negation zurtlckfUhren:
x-y
=
x+(-y)
(6.17)
Somit l:isst sich jedes Addierwerk. wie in Abbildung 6.40 am Beispiel des Carry-look-ahead-Addierers dargestellt. durch das HinzufUgen einer Negationsstufe zu einem kombinierten Additions- und Subtraktionswerk erweitern. Wie im Falle des Inkrementierers können wir auch hier ein beliebiges Addierwerk ei nsetzen. Da wir den gewah Hen Il-BitAddierer nur um 11 XOR-Gatter erweitern und die Schaltungstiefe unabh:ingig von 11 um 1 erhöhen. erbt das kombinierte Additions- und Subtraktionswerk die Komplexitat des zu Grunde liegenden Addierers.
Jeder Addierer l:isst sich durch eine zus:itzliche Negationsstufe zueinem kombinierten Additions- und Subtraktionswerk erweitern. Die Komplexitat wird durch das zu Grunde gelegte Addierwerk bestimmt.
Abbildung 6.40: Aufbau eines kombinierten Il-Bil-Addilions- und Subtrnktionswerks auf der Basis eiJrs Carry-lookalrad-Addierers. Die Steuerleilung s bestimmt, ob die Summ: x + y oder die Differenz x - y berechnet wird. Ist s gleich 0, so verh:llt sich die Schaltung exakt wie der Carry-look-ahead-Addierer. Ist s gleich I, wird durch die XOR-Gatter zun:lchst das EiJrrkomplement und durch die zus:ltzliclr Einspeisung von s in den ersten Volladdierer das Zweierkomplement von y erzeugt
VA
VA
VA
A"d",h,,- n1 n '?fV'lO
m·(V)·(V)
1011 ",,00110111
Encodcr
Abbildull~
6.42: Die vorzeichenbeh '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7 NI 111 no '>1 -t-fl?'fln'
210
6 Standardschaltnelze
o
i oT
1. ;'1"0
VA
;'1"0
VA
VA
1
0
,JO
VA 1
oT 0
1.
oT 1
,J,
o
L i-"- L i-"- L i-"- L
0 0
VA
1
,JO
i oT 1
L -"- L -"- L -"- L
0 0
o
1
VA
VA
0
0
VA
1
0 0
1
1
L -"- L i-"- L r!- L
I o
VA
VA
VA
I
I
I
o
VA I
o
Abbildung 6.45: Multiplikation von 5(01012) und 11 (10112) mit Hilfe des Matrixmulliplizierers
Zur Enniltlung der KomplexiUll des Matrixmultiplizierers nehmen wir
vereinfachend an, dass heide Operanden die gleiche Bitbreite n besitzen. Aus dem Stmkturbild können wir ersehen. dass die Schaltung aus
n Stufen mit jeweils n UND-Gattern sowie n - I Stufen mit jeweils n Volladdierem besteht. Folgerichtig w~chst der Fl:lchenbedarf quadratisch mit der Bitbreite der Operanden. Die Laufzeit des Matrixmultiplizierers wird durch den langsten Signalpfad von den Eingangen zu den Ausgangen bestimmt. Wie schon im Falle des Carry-ripple-Addierers machen uns hier die Übertragsbits zu schaffen. die durch das komplette
Schallnetz hi ndurchgereicht werden. Auf dem langsten Pfad durchlauft ein Signal n + (n - I) Volladdierer. so dass die Laufzeit linear mit der Bitbreite der Operanden zunimmt.
Der parallele Matrixmultiplizierer besitzt die folgende Komplexilat: SchaltungslIefe O(n)
Flllchenbedarf
6.8 MUltiplizierer
211
o
o
o ................
0
0
'.
'..
0
..,
;
~~,
'.,
.....·2 ,
;
;
T_
,
;
s,'
",
y
"
"'8.1
;
"
"
0 y ;
;
~
T "'l-
T-
y
0
~
.....
,
0
0 y
I-
-
•
~BI"I "I "IB~I"I ;;; =I ..
~
:2
'-'
'-'-'
I'"
4:2
1,"
4:2
H
,,:2·
-
L
c'"'~ "~ RcduktiOllSlt'n,
I
~ ... I
Abbildung 6.46: Das attgemcire Konslruklionsschema des n-Bil-Carry-save-Mulliplizierers
6.8.2
Carry-save-Multiplizierer
Der Matrixmullipliziercr besticht vor allem durch seine regulare und :tußcrst einfach zu verdr-dhtende Struktur. ist jedoch auf Grund seiner linearen Laufzeit nur bedingt t1tr die Multiplikation großer Bin:trLahlen geeignet. Komplexe. auf Geschwindigkeit optimierte Prozessoren seti'-cn daher nur selten Matrixlllultipliziererein. Stattdessen wird die Multiplikation in ei ner Fonn implementiert. die das Produkt zweier Zahlen in nur logarithmisct-cr Zeit berechnet und damit auch flir große Bitbreiten :tußerst effizient arbeitet. Den SchlUsse I hierLu bildet die in Abschnitl 6.5.5 vorgestellte Carrysa\'e-Technik. Wie in Abbildung 6.46 gezeigt. erfolgt die Produktbcrechnung in drei Stufen. Zunachst werden. genau wie im Fall des Ma-
A"dih·
n":l
fl'> '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7 f\II 111 no '>1 -t-fl?'nn'
212
6 Standardschaltnelze
" "
"
L
VA
VA
~
" " L VA
L VA
-----l
-----l
1
"
T
L
VA
'0
'0
'0
L
T
L
"
"
,-----J " .i..
"
"
"
VA
L
L
VA
VA
,J,J,J ,J I
L I
I
I
I =0
Abbildung 6.47: Der vollstJlndig aUfgebaute 4-Bit-Carry-save-Multiplizierer
trixlI1Ultiplizierers. die Partialprodukte mit Hilfe mehrerer UND-Galter berechnet. Anschließend werr±n die Tei lergebnisse in einer Carry-saveReduktionszelle auf zwei BinarLahlen verdichtet und im letzten Schritt durch einen gewöhnlichen Addierer summiert.
In den Abbildungen 6.47 und 6.48 ist das Strukturbild eines vollstandig aufgebauten 4-Bit-Carry-save-Multiplizierers dargestellt. FUr die Verdichtung der 4 Operanden auf 2 sind zwei einzelne 3:2Reduktionszellen ausreichend. die jede tur sich durch eine separate Volladdiererketle implementiert werden.
Um die FHtchen- und LaufzeitkomplexiUll des Carry-save-Addierers zu bestimmen. betrachten wir die KomplexiUll zun:lchst tur jede Verarbeitungsstufe separat. Zur Berechnung der n Partialprodukte benötigen wir n2 UND-Gatter. die allesamt parallel durchlaufen werden. Damit steigt der Fl:lchenbedarf quadratisch mit der Bitbreite der Operanden an. w:lIJrend die Laufzeit fUr alle Bitbreiten konstant bleibt. Die Komplexitm der
6.8 Multiplizicrer
213
,
, 0
,
1
1
, I I
1
0
o 0 0
0 1 0
00 1
1 0
L
L
L
L
VA
VA
VA
VA
, ----=r ~ .-----l ~ , ,, ,, ,10 , ,
0
I
0 0
L
L
L
L
VA
VA
VA
VA
, ,,=T, ~,=J, ~,=T,I,,---J ,
L ,
,
,,
Abbildunf: 6.48: Multiplikation von 5(01012) und 11 (10112) mit Hilfe des Carry-sa\"e-Multiplizierers
n:2-Rcduktionszellc haben wir bereits in Abschnitt 6.5.5 im IRtail kennen gelernt - sie verrugt Ubcr eine 1-111chen- und Laufzeitkomplexität von O(n 2) respektive O{logn). Legen wir zur Berechnung der abschließenden Addition einen pamliclcn Pr'Jfix·Addierer zu Grunde. so trägt dieser linear bzw. logarithmisch zum Anstieg des 1-111chen- bzw. Lauf7-citbcdarfs der Cicsamtschaltung bei. Insgesamt steigt die Komplexitllt des parallelen Carry-save-Multiplizierers hierdurch zwar quadratisch in der Filiche. dafllr ubcr nur logarithmisch inder Laufzeit.
Der parallele Carry-save-Multiplizierer besitzt die folgcndc Kornp1cxiUll:
A"dih·
n":l
fl'> '?fV"lO
Slhallung.st1Cfe
FHlcrenbedarf
O{lO!tIl)
O(n-I
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7 NI 111 no '>1 -t-fl?'flO'
214
6 Standardschaltnelze
'?fV'lO m·m·m In·7.....n.l?70'i"Q?QR1MflRQrlQ1 h1~..n 7"""tn>l. ,. "IOI"ICl fl'> t'\A 111 no "1 ...0.,.,.....,'
218
6 Standardschaltnelze
UND-Malrix
r----------------------------
ODER-Malrix
Abbildung 6.53: Mit Hilfe von Progmm· mable Logic Arrays (PLAs) kOmrn beliebige boolesche Funktionen realisiert wer·
den In der Konjunklions-Malrix lassen sich durch das Setzen von Verbindungspunkten beliebige Mintenneerzeugen, die anschließend in der Disjunktions-Matrix zu lweistufigen booleschen FunktioJrn kombiniert werden können. Auf diese Weise lässt sich jede boolesche Funktion,
die in disjunktiver Normalfonn vorliegt, eins zu eins mit einem PLA realisieren
6.11
•
Permanente Verbindungen:
++ ++ pennanent getrennt
•
permanent verbunden
Individualisierte Verbindungen:
.och
manuell
getrennt
verbunden
Abbildung 6.54: üb ein Knotenpunkt in der Konjunktions- bzw. DisjunktionsMatrix verbunden oder getrennt ist, wird durch eines der vier hier dargestellten Symbole verdeutlicht.
Programmierbare Logikbausteine
Alle der bisher betrachteten Standanlkomp:lIlenten verfUgten uber eine fest definierte FunktionaliUlt. d.h.. es war nicht möglich. die Schaltungen fUr einen speziellen Anwendungszweck anzupassen oder zu spezialisieren. Im Gegensatz hierLU gestatten die so genannten PLOs (Programmable Logic Devices). das genaue Schaltverhalten vor der ersten Benutzung zu konfigurieren. In einigen PLDs ist der Prozess reversibeL so dass die Bausteine mehrfach umprogrammiert werden können. Einige Schaltungen aus dem FPGA-Bereich lassen sogar eine Umprogrammierung wahrend des laufenden Betriebs zu (reconfigurable computing). Andere PLOs können dagegen nur einmal angepasst wenlen. so dass wir fUr diese Schaltungen meist von einer Individualisierung anstelle einer Programmierung sprechen. Oft werden solche PLDs bereits bei der Herstellung individualisiert und fertig konfiguriert an den Kunden ausgeliefert. Als Beispiel eines PLOs betrachten wir die Schaltung in Abbildung 6.53. Das dargestellte Schallnetz verfUgt uber die Eingangsleitungen XI bis Xn und die Ausgangsleitungen YJ bis Ym. Auf Grund der matrixartigen Implementierung wird das Element auch als Program!1UIble Logic Array (PLA) bezeichnet. Wie die Abbildung zeigt. besteht ein PLA aus zwei separaten Matrizen - der Konjunktions- und der Oisjunktions-Matrix. Mit Hilfe der Konjunktions-Matrix können wir durch das Setzen von Verbindungen an den Knotenpunkten in jeder Zeile der Matrix ei nen UND-verknupften Term erleugen (siehe Abbildung 6.54) - jede der Eingangsvariablen XI bis X n steht uns hier-
6.11 Progmmmierbarc Logikbausteine
219
rur sowohl positiv (nicht negiert) als auch negativ (negiert) zur VerfUgung. In analoger Weise können wir mit Hilfe der DisjWlktions-Matrix einen oder mehrere der erl..Cugten konjunktiven Terme mit der ODEROperation zusammenfassen. Auf diese Weise enlsteht in je1 ...o?'fln'
220
6 Standardschaltnetze
, ,
&
:~
,: ,
& &
,f4,. ,, ,
-- --- ------ -- ------ --Abbildung 6.57: ROM-BausteiJr (Rem}· Only Memory) besitzen eine vorprogrammierte Konjunktions-Matrix und eine in-
& &
JL...L
Cd Cd Cd
dividuaiisierbare Disjunktions- Matrix.
-- ------ ------ ------ -.1
.1
.1
.1
"
" "
'0
lungen xJ, ... ,xn - der Adresse - wird der vorprogrammierte Speicherinhall auf die Ausgangsleitungen YJ, ... ,Ym gelegt. Abbildung 6.57
zeigt einen ROM-Baustein mit 3 Eingangsleilungen. der an jeder seiner 2 3
_ .... 1100 0100
12
001 010
0101
5
Oll
11
101
1O1l 0100 1O1l
110
1101
13
111
0010
2
000
100
4
=
8 Adressen ei n 4-Bit-Datenwort speichert.
Innerllalbeines ROM-Bausteins ist die Konjunktions-Matrix so vorprogrammiert. dass jede Zeile eineindeutig einem bestimmten Bitmuster entspricht. Legen wir nachei nander die Adressen 00 ... 0 bis II ... I an. so werden die internen UND-Glieder der Reihe nach von oben nach unten aktiviert. Hierdurch lasst sich der ROM-Speicher auf einfache Weise programmieren. indem das Bitmuster des Datenworts in Adresse i inder i-ten Zeile der Disjunktions-Matrix eingetragen wird. Tabelle 6.5 fasst die gespeicherten Datenwörter unseres Beispiel-ROMs tabellarisch zusammen. Im Unterschied zu konventionellen Speicherbausteinen ist die Programmierung eines ROMs irreversibeL so dass die Daten nach der Individualisierung ausschließlich ausgelesen. jedoch nicht mehr veraneIert werden können. Auf Grund des matrixartigen Aufbaus von PLAs. PALs und ROMs können wir die Komplexit:ttseigenschaflen programmierbarer Logikbausteine abschließend wie folgt festhalten:
4
11
Ein programmierbarer Logikbaustein mit z Zeilen und s Spalten besitzt die folgende KomplexiUlt: SchaltungslIefe
Tabelle 6.5: Inhalt des in Abbildung 6.57 dargestellten ROMs
Flllchenbedarf O(z
sJ
6.12 Obungsllufgabcn
6.12
221
Übungsaufgaben
Stellen Sie das Schllltnetz eines
Aufgabe 6.1 'Lb
Webcode
a) l-aus-2-Multiplcxers(2:1 MUX)
6592
b) l-zu-2-Demultiplexcrs (1:2 DEMUX) mit Hilfe von UND-, ODER- und NICHT-Gauern auf.
Entwerfen Sie ein Schallnct1., das Uber die Eingange X3,XZ,XI,XO wxl den Ausgang)' verfUgt. Am Ausgang)' soll genau dann eine I anliegen. wenn die Quersumme der viersielligen Dualzahl X)X2XIXO gleich 2 ist
Aufgabe 6.2 " ibhl
Webcode 6103
a) Stellen Sic dic Wahrhcitstabelle auf. b) Realisieren Sie die Funktion mit Hilfe eines einzigen Multiplexers. Gehen Sie davon
aus. dass Ihnen dic Eingangssignale auch im-ertiert zur VerfUgung Slehen. und beschalten Sie dic Datcn- und Steucreingängc entsprechend. c) Realisieren Sie die gleiche Funktion unter ausschließlicher VelWendung von I-aus2-Multiplcxcrn. Auch hier stchen Ihncn die Eingangssignale sowohl positiv als auch negativ zur Verfügung.
, ....
Gegeben sei das folgel'IIX Multiplexer-Schallnet1.:
"
Aufgabe 6.3 Webeode
6944
c."..= 1-
~
8:1 MUX
Y
1-
-,-, "'4 "'3 "'2
Minimieren Sie die dargestellte Funktion und geben Sie eine Implementierung an, die mit einem einzigen l-aus-4-Multiplcxer auskommt.
A"dih· ll":l fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'flO'
222
Aufgabe 6.4
6 Standardschaltnelze
.._......_....
Vervollstandigen Sie die Wahrheitstabelle der folgenden Multiplexer-Schaltung:
""'''
Webeode 6319
-
".-
= -
-
1:16 DEl.lUX
-
::
Y
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0 0
-
0
1
0
0
1
1
I I
a) Welche boolesche Funktion wird hier realisiert?
b) Lasst sich jede boolesche Funktion mit Hilfe von Demultiplexern realisieren?
Aufgabe 6.5
Vervollstandigen Sie die Wahrheitstabelle der abgebildeten Demultiplexer-Schaltung:
""'''
Webeode
6370 1:8 EMUX
Y, Y, Y, Y4 Ys
Y,
................. 000
o 0 1 010 o
Y, Y,
1
1
o o
0 1
o
Was berechnet die Schaltung?
6.12 Obungsllufgabcn
223
Realisieren Sie die Funktiony mit Hilfe des abgebildeten programmierbaren Logikbausteins. Beachten Sie. dass der hier dargestellte Baustein die Variablen in den Spalten mit Hilfe eines NOR-Gallers anstelle eines ODER-Gallers zusammenfasst. Überlegen Sie sich deshalb zunächst. welcllC Auswirkungen dies auf die zu setzenden Verknüpfungen haI.
0
, 1
3
, 4
6 7
.._.0 0 0 0 0 0 0 0
8
0 0 0 0
0 0 0 0
9 10 11
12 13
0 0
0
1
1
1
0
0
1
1
0 0
0 1
1
1
0
1
1
0 0
0 0
0
1
1
0
1
0
1
1
0 0
0
1
1
0
14
0
15
1
......
Aufgabe 6.6 Webcode 6209
1
---------------- ......,
-- ----- ----- -----
1
-, I
Analysieren Sie das folgende Schaltnetz. das ausschließlich aus NAND-Gattem aufgebaut ist. Um welche Standardschallung handelt es sich hier?
, ....
Aufgabe 6.7 Webeode
6134
" ------------.J'-r&1
Io-------y,
y,
A"dih·
n":l
fl'> '?fV'lO
m·m m ..
11 fl'> '?fV'lO
m·m·m
In·7.....n.l?7 '?fV"lO
L
L
L
L
VA
VA
I
VA
VA
VA
VA
I
I
I
I
I
m·m m _ 11
'.
fl'> '?fV"lO
m·m·m
'.
In·7.....n.l?7L ,. "IOI"ICl " " t'\A 111 no '>1 -t-fl?'llO'
228
6 Standardschaltnetze
A"d",h,,- 01 n '?fV'lO
m·m·m
•
WllhrlleilSlabelle
___ RB 0
2 3
, 4
6 7
•
0 0 0 0
0 0 1 1
0 0
---0
0
1
1
,
0 0 0
0
0
1
0
0 0 0
0
Inkonsistente ZUStlnde
Zustand in Zeile 2 geht unmittelbar in den Zustand in Zeile 3 über. Zustand in Zeile 5 gehl unmiltelbar in den Zustand in Zeile 4 über. Zustand in Zeile 7 gehl unmiltelbar in den Zustand in Zeile 6 über. Ahbildung 7.5: Mit Hure des neu erreugten SChaltnetzes können wir 5 stabile und 3 instabile Zustllnde ableiten. Ein Zustand ist genau dann instabil. wenn die Wene der in der Orlginalschaltung verburxlenen Signale q und q' verschieden sind
°
In·7.....n.l?71 ...o?'nn'
7 Schaltwerke
234
Abbildung 7.7: Der Zustandsubergangsgraph der t1Ickgekoppelteß NORSchaltung. Der Wert von q' definiert den
Zustand und die Kantenmarkiernng rs gibt an, welcher Folgezustand angenomIren wird, wenn die betreffenden Werte
an den Eingängen anliegen. Während die Kombination rs = 00 den aktuellen Zustand bewahrt, zwingt die Kombination rs = 10 bzw. rs = 01 die Schaltung in den Zustand 0 bzw. I.
01 / 0
()() / 1 10 / 1
~~o
q'
~ V ):"/0 10 01
10 / 1
gilt es dabei stets zu berucksichtigen. dass die drei instabilen Zustande unmittelbar nach deren Einnahme in einen stabilen Zustand Ubergehen.
, ,
I, , ,
, p
1,,,
, ,,:-, ~
Abbildung 7.6: In der Praxis schallen die NOR-Gatter nicht sofort, sondern leicht zeitverselzl - hier modelliert durch zwei Verzögemngsglieder mit den Vetzögemngszeiten TI und h Fallen die Signale r und s zeitgleich von I auf 0 ab, so gerat die Schaltung ins Schwingen Genau aus diesem Grund muss die Kombination rs = 11 an den Eingangen vennieden werden.
Betrachten wir den ZustandsUbergangsgraphen etwas genauer. so können wirexakt die Funktionalitat des asynchronen RS-Latches erkennen. In beiden Zuständen bewirkt die Kombination rs = 10 einen Übergang in den Zustand q' = 0 und die Kombination rs = 01 einen Übergang in den Zustand cl = 1. Das Anlegen der Kombination rs = 00 hat zur Folge. dass kein Übergang erfolgt. d.h.. der aktuelle Zustand wird gespeichert. Entsprechend der Konstruktion unserer Schaltung wird der binare Wert des aktuellen Zustands an der oberen Ausgangsleitung ausgegeben. so dass der Wert der Leitung q exakt der Wahrheitstabelle des asynchronen RS-Latches entspricht. Wie das Zustandsdiagramm reigt. ist der Wert der zweiten Ausgangsleitung p genau dann gleich O. wenn der Folgezustand gleich L und genau dann gleich L wenn der Folgezustand gleich 0 ist. Damit liegt an der unteren Ausgangsleitung p stets der invertierte Wert der oberen Ausgangsleitung an - genauso wie es in der Wahrlleitstabelle des asynchronen RS-Latches gefonlert ist.
Die rekursive Zusammenschallung zweier NORGatter implementiert ein asynchrones RS-Latch.
Die Kombination rs = 11 winl fUr die Implementierung der RSFunktionalitat nicht verwendet und sollte in der Praxis unter allen Umstanden vermieden werden. Die Begrundung hierfUr liefert Abbildung 7.6. Liegt an beiden Eingangssignalen r und seine 1 an. so gerat die Schaltung ins Schwingen. wenn beide Eingange gleichzeitig auf 0 abfallen. Der Grund hierfUr liegt in der Signalverlögerung. die sowohl
7.1 Digitale Spcichercleillente
235
durch die bciden NOR-GaHer als auch durch die Verbindungsleitungen zwischen den Gallem verursacht wird, In Abbildung 7.6 ist die 7.citliche Vertögerung durch zwei künstlich eingelUgte Vertögerungsglieder modelliert, die das Signal um Tl bzw, 1'2 zeitlich verschieben. Wie das abgeleitete Zeitdiagramm zeigt. beginnen beide Ausgangsleitungen mit einer Periodendaucr von Tl + 1'2 zu schwingen. Im ZUSlandsUbergangsgraphen in Abbildung 7.7 taucht die Eingabekombination rs = I1 aus diesem Grund erst gar nicht auf.
Die Kombination rs = 11 ist an den Eingangen eines NOR-impkmcnlienen RS--Latclles zu vemlciden. Auf Grund der galter- und leitungsbedingten Laufzcitverlögerung kann das Latch in einen Schwingungszustand geraten,
7.1.2
d. negati,'c Taktphasc
Abbildung 7.8: Das Thktsignat wechsett periodisch zwischen Ol'n Signalwerten 0 und I und dienl zur Synchronisierung der ZCitpunkle. an denen die Zustanlr der Speicherelemente einer Schallung potenzi-
ell wechseln konnen.
•
Scbaltsymbol
'US
Taktzustandsgesteuerte SpeichereJemente
Das asynchrone RS--Latch besitzt die Eigenschaft, dass eine ZustandsänderWlg zujcdcr beliebigen Zeit erfolgen kann. Konkret bedeutet dies nichts anderes. als dass der Ausgang q im selben Moment den Wert I annimmt. in 1 ...o?'nn'
236
7 Schaltwerke
Synchrones RS-latch
'~"q Cl lR
c/k
&
,
q
durch den zus:ltzlichen Takleingang clk von seiner asynchronen Vari-
Abbildung 7.10: Erweiterung des asynchron:n RS-Lalch zu eiJrm synchroJrn Speieberelement Zustandswechsel kOmrn
jetzt nur noch während der positiven Thktphase erfolgen.
•
Schallsymbol
dFl-q clk-U
q
•
Schaltverhaiten
_ _ 1aIII o o
q
Speichern
0
Übernehnrn Übernehnrn
•
Abbildung 7.9 zeigt das Schaltsymbol und die Wahrheitstabelle des
synchronen RS-Lalches. Äußerlich unterscheidet sich das Element nur ante. Wie die Wahrheitstabelle verdeutlicht. reagiert das synchrone RSLaIch wahrend der JXlsitiven Taktplrase (clk = I) genau wie das asynchrone RS-Latch. Wahrend der negativen Taktphase bewahrt das Element jedoch seinen Zustand - unabhangig von der Belegung der Eingangsvariablen. Damit sind die möglichen Zustandswechsel zwar noch nicht auf ganz bestimmte Zeitpunkte. aber zumindest auf bestimmte Zeitintervalle festgelegt. Das synchrone RS-Latch gehört auf Grund dieser Eigenschaft in die Gruppe der taktzustandsgesteuerten Speicherelemente. Das ebenfalls in Abbildung 7.9 dargestellte Zeitdiagramm venleutlicht das Schallverhallen nochmals auf grafische Weise. Ein vergleichender Bliek auf das Zeitdiagramm des asynchronen RS-Latches zeigt. dass die Kurve des synchronen Latches fUr alle Zeitpunkte mit clk = 1 mit der Kurve des asynchronen Latches ubereinstimmt. Wahrend der gesamten negativen Taktphase sind die Ausgange des synchronen Elements dagegen eingefroren und etwaige Zustandswechsel finden erst statt. wenn das Taktsignal wieder den Wert 1 erreicht. Wie Abbildung 7.10 zeigt. können wir ein synchrones RS-Latch sehr einfach aus einem asynchronen RS-Latch aufbauen. Dazu fUhren wir die beiden Schaltungseing:tnge rund s zunachst durch zwei separate UND-Gatter. die als zweites Ei ngangssignal den Takt clk entgegennehmen. Ist clk = 1. so sind die UND-Gatter transparent und die konstruierte Schaltung verllalt sich exakt wie ihr asynchrones GegenslUck. Ist clk = O. so werden die Ausgange beider UND-Gatter auf 0 gezwungen. so dass das RS-Element uber die gesamte negative Taktphase hinweg den aktuellen Zustand speichert.
Zeildiagramm
Synchrones D-latch c/k d
q
Abbildung 7.11: Schaltsymbol und Schaltverhalten des synchronen D-Latches
Neben dem synchronen RS-Latch wird in der Praxis vor allem das DLateh (De/ay-Latcll) eingesetzt. Hierbei handelt es sich ebenfalls um ein taktzustandsgesteuertes Speicherelement. das im Gegensatz zum RSLatch neben dem Takteingang clk nur einen einzigen Dateneingang d besitzt. Abbildung 7.11 fasst das Schaltsymbol und Schaltverhalten des D-Latches zusammen. Wie die Wahrheitstabelle und das Zeitdiagramm demonstrieren. ist die Funktionalitat des D-Elements wahrlich begrenzt.
7.1 Digitalc Spcichcrelcmcntc
237
Wahrend dcr positivcn Taktphasc wird das anlicgcndc Signal d übernommcn und direkt auf den Ausgang q durchgeschaltcl. Wahrend dcr ~gativcn Taktphase \'crhalt sich das D-Latch gcnau wie das RS-Latch - cs \'crflarn in seincm aktuellen Zustand und reagiert auf keinc VerIDlrerung der Eingangssignale. Abbildung 7.12 zeigt. wie sich das synchrone D-Latch mit Hilfe eines synchronen RS-Latchcs aufbauen lässt. Wir müssen hierzu lediglich das Eingangssignal s mit d und das Eingangssignal r mit dem negierten Signald verbinden. Hierdurch liegt im Fall d = I die Kombination rs= 01 und im Fall d _ 0 die Kombination rs = 10 an. so dass die Ausgangsleitung während der gesamten posith'Cn Taktphase stets den Wert von d annimmt. Obwohl die Funktionalitltt des D-Latches im direkten Vergleich mit dem RS-Lalch kläglich erscheint - schließlich kann das Element am;schließlich den Eingabewert replizieren oder den aktuellen Zustand s~ic~m -. sind I}-Elelllente vollkommen am;reicbend. um alle anderen digitalen Spcichcrclcmente zu implementieren. Insbesondere kOnnen wir auch das RS-Latchcs mit Hilfe eines D-Latches konstruieren. Da die Konstruktion in diesem Fall weniger offensichtlich ist. wercrn wir die Beschaltung der Eingange systematisch herleiten. Unser Ziel besteht in der Konstruktion eines Schallnetzes. mit dessen Hilfe wir ein D-Latch so ansteuern können. dass die Gesamtschalmng nach außen wie ein RS-Latch wirkt. Im ersten Schrill bestimmen wir die Eingangs- und Ausgangsvariablen Wlscrer Schaltung. Da wir ein RS-Elcmcnt mit Hilfe eircs [>-Elements aufbauen wollen. stehen uns zunächst die Signale rund s als Eingangsvariablen zur Verfügung. Die dritte Eingangsvariable ist der aktuelle Zustand des D-Latches. den wir auch hier wieder mit q1 bezeichnen und am Ausgang des D-Latches abgreifen kOnnen. Die Ausgabcvariable ist der Eingang d des D-Latches sclbst. Abbildung 7. I3 ".eigt die resultierende Wahrheitstabelle. die den zu berechr~nden Wert für d in Abhängigkeit der Variablen r. sund q beschreibt.
, I. /
-c-;;):-, Y{! •
Beschreibt eine Wahrheitstabelle die Beziehung zwischen dem aktuellen Zustand und dem Folgezustand eines Schaltwerks. so wird diese auch als Obergangstabelle bezeichnet.
dUS, Cl lA
clk
lj
Abbildung 7.12: Implementierung eines D-LaICheS mit Hilfe eines RS·EJewents
0 1
2 3
----, 0, 0, , 0 , , , , , , 0 0 , 00 00 0
0 0 0 0
0 0
, 4
6
0
0
7
000
, d-sv(-.rf\q)
Abbildun~
7.13: Implementierung eines RS-Lalches mit Hilfe eines D·EIern~nts
Das D-Elemelll besitzt die Eigenschaft. während der positiven Taktphase den Wen des Dateneingangs d einfach zu übernehmen. FOlgerichtig
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·(V)·(V)
In·7.....n.l?7 f\II 111 no '>1 -t-fl?'flO'
7 Schaltwerke
240
Cl
I
,
0
0
, ,
0
I
I
I
I
J J J J
,
"
I
,
I
,
! rT"l ! ,---, ! rT"l ! clk ----:........l : I--i--l I----:--l: I----:- clk I
I
I
S
I
I
"
I
I'I" I I
,
I
I
,
:
I
I
I
I
I
I
I
,
I
, ,
0
I
I
I
,
0
0
I
I
I
I
I
S
r
'?fV'lO
0
, ,, , , " " ", "~
t-+-1it-+---+-1it-+-1 :~:I-
, , , ,
0
' , , ' " ' ", " --'..fT1...UL.. "':" , , , " , :,' ",
!
L--l....J: L.-.l.....
Das Zcitdiagramm in Abbildung 7.17 demonstriert. wie sich ein Signalwechsel der Eingangsvariablcn innerhalb eines Master-Slave-F1ipnops auswirkt In dem abgebildeten Beispiclliegen die Eingänge sund r zun:ichst auf O. bis der Eingang s innerhalb der positiven Taktphasc auf I wechselt. Ifd das Master-Latches negativ taktgesteuert ist. wirkt sich rur Signalwechscl erst zu Beginn der nächsten negativen Taktphase auf run Ausgang q' des Master-Latch aus. Zu diesem Zeitpunkt hat das Slave-Laich jcdoch bereits blockiert. so dass sich die Signaländerung von q' noch nicht auf den Ausgang q auswirkt. Erst zur nachsten positiven Ttlkljlllllke entriegell das Slave·Latch und bewirkt die Änderung des Ausgangssignals q. Die Schallung in Abbildung 7.17 implementiert folglich ein posith' jlallkengestellertes Flipflop. wie es in Abbildung 7.16 (links) zu sehen ist. Durch die Änderung der Taktpolarilat des Master- und des Slave-lL ,. "IOI"ICl fl'> NI 111 no '>1 -t-fl?'fln'
7 Schaltwerke
242
'8-' clk-o
'::E:l-' clk--o
q
'nT I ,,
clk
q
Cl
--- --- --cf
0/111
1 1
0I11j
1 -t-fl?'flO'
244
7 Schaltwerke
D-Elenrnt
RS-Elemenl
Asynchron
'u: dU' 'u' dU' 'u' r
lR
q
Synchron, JX)Siliv taktzustandsgesteuert
clk
Cl lR
_
Synchron, negativ taktzustandsgesteuert
clk
Synchron,
taktflankengesteuert
Synchron, negativ taklflankengesteuert
Synchron, lweiflankengesteuert
T-Elenrnt
r
r
c/k
Cl
q
clk
Cl
ii
JK-Element
q
Cl lR
ii
'tl' dB' 'B' j=ß:}' jtl dB' 'tl 'B 'tl' dB' 'B' jB' Cl
clk
r
lR
clk r
lR
Cl
lR
clk
cik
Cl
Cl
-
Cl
clk
r
q
clk
q
Cl
q
q
,
c/k
clk
clk
Cl
Cl
q
_
Cl
'i
clk k
Cl
lK
q
Cl
cik
k
lK
clk k
lK
q
Cl
q
Taoclle 7.1: Sequenzielle Schallelemenle in der Übersicht
Wie in Abbildung 7.25 gezeigt. können wir ein RS-Flipflop zu einem JK-Flipflop erweitern. indern wir die Bitkombi nation 11 durch das Vorschalten zweier UND-Gatter abfangen. Hierdurch wird die Bitkombinalion in Abhangigkeit des aktuellen Zustands in eine rur das RS-Flipllop vertragliche Kombination umgesetzt.
Tabelle 7.1 fasst die Schaltsymbole aller der in diesem Kapitel vorgestellten sequenziellen Schaltelemente in einer Übersichtsmatrix zusammen. Die Spalte. in der sich ein Schallelement befindet. gibt Auskunft tiber dessen 7}'p (SR. D. T und JK). wahrend die verschiedenen Varianten (asynchron. zustandsgesteuert. taktgesteuert etc.) zeilenweise unterschieden werden.
A"d",h,,- n1 n '?fV'lO
(V\.(V\.(V\
Synchroner Reset-Eingang
_-------15 Cl
-tq
~_~~ ~q
Asynchrorer Reset-Eingang
,,
_------------
:~
• •
Abbildung 7.26: Erweiterung eines synchronen RS-Latehes um einen asynchronen bzw. synchronen Reset-Eingang
, _------------.. . ,+----:::=["1 i
'.
',-
, -+t-----jc
'4===:[~ i , ••••••••••••••
,
J
,i q
AbhildUlIl: 7.27: Erweiterung eines synchrorl.!n RS-L.1tches um eirl.!n ClockEnable-Eingang
In·7.....n.l?7 t'\II 111 no '>1 ...o?'nn'
7 Schaltwerke
248
Tal ist die Darstellung mit Hilfe von ZuslandsUbergangsgraphen die
EIngabealphabet
gängige Beschreibungsmethode tur endliche Automaten und wir werden in den folgenden Betrachtungen immer wieder auf die Graphendarstellung zuruckgreifen.
L={OO,OI,IO,l1} Ausgabealphabet
Tabelle 7.2 zeigt. wie wir den endlichen Automaten des asynchronen RS-Speicherelements in der Termi nologie aus Definition 7.1 formal beschreiben können. An dieser Stelle ist es wichtig zu verstehen. wie der abstrakt gehaltene Begriff des Eingabealphabets aus Defi nition 7.1 mit den physikalisch existierenden Eingangs- und AusgangSleitungen ei ner Hardware-Schaltung zusammenhangt.
n={O,I} Zust.1ndsmenge
S={O,1} Ubergangsfunktlon
ö(O,"1
ö(I,"1
~{
0 0 I
falls falls falls
~{
0 I I
falls falls falls
rs= 10 r5=00 rs=OI
rs = 10 r5=01
rs=oo
Werfen Sie hierw erneut einen Blick auf die Eingabe- und Ausgabeleitungen des asynchronen RS-Latches. Das Speicherelement verfUgt uber die beiden Eingange rund s sowie die einzige relevante Ausgangsleitung q. Wie die Definitionen der Mengen 1: respektive n zeigen. bestehen die Mengen jeweils aus Bitvektoren. deren Lange die Anzahl der Eingangs- bzw. der Ausgangsleitungen widerspiegelt. Bezogen auf ein beliebiges Schaltwerk ist ein einzelnes Eingabe- bzw. Ausgabezeichen laut Defi nition damit nichts anderes als die Menge der Belegungen aller Eingangs- bzw. Ausgangssignale.
AusgabefunktIOn A(s;,rs) = {
~
falls falls
Si =
0 Si = I
Zwischen einem Schaltwerk mit nEingangsleitungen und mAusgangsleitungen und dem zugehörigen endlichen Automaten besteht derfolgende Zusammenhang:
n ~ {O, l}m Tabelle 7.2: Fonnale Beschreibung des endliclrn Automaten aus Abbildung 7.7
Vielleicht ist Ihnen aufgefallen. dass in Tabelle 7.2 die Definition des Stamustands So fehlt. In der Tat hatten wir uns dort noch keinerlei Gedanken uber den Initialzustand der Speicherelemente gemacht. Kommt keine andere Angabe vor. so nehmen wir fUr die folgenden Betrachtungen stets an. dass sich alle Speicherelemente initial im Zustand 0 befinden. In der Praxis muss dieser Initialzustand z.B. durch die Verbindung aller Speicherelemente mit einer gemeinsamen Reset-Leitung explizit hergestellt wenlen. Betrachten wir die Ausgabefunktion A des Automaten genauer. so können wir feststellen. dass wir zu deren Berechnung ausschließlich den aktuellen Zustand benötigen und die produzierte Ausgabe damit unabhangig von der aktuell anliegenden Eingabe ist. Automaten mit dieser Eigenschaft sind von so großer Bedeutung. dass sie in der Informatik einen eigenen Namen erllalten haben.
7.2 Vom Flipflop zum Schaltwerk
249
0/1,1/0
s,
I /0
I / I
0/1
0/0
"
0/0,1/1
Abbildung 7.28: ~r dargeSlell1e AUIOmat modellien ein Schallwerk mit genau einer Engangsleilungx und genau einer Ausgangsieilung y. Im lniliatzustand SO statlend. nimml das Schattwerk einen kontinuierlichen Eingabestrom von Binarziffern entgegen. von denen p'eils drei Bit als eine zusammengebOlige Binarzahl interpretiert werden. Das Scbaltwerk t1bersetzt den einselesenen Binara:xIe intern in den Gray-eode Wld gibt die resultierenden Bitmusler am Ausgang y aus.
~ Definition 7.2 (MeaJy- und Moore-Automat) Gegeben sei ein beliebiger endlicher Automat (I:.n,S,S).. so). Geht in die Berechnung des Ausgabezeichcns sowohl der aktuelle Zustand als auch das aktuelle Eingabezeichcn ein. gilt also
Jrj
=
A(Sj, '?fV'lO
m·m·m
In·7.....n.l?7 f\II 111 no '>1 -t-fl?'flO'
7 Schaltwerke
250
•
Moore-Automat
7.2.2 Ausgabe_ fimktion
~ "
, i I I I J ,f Speicher_ ,,c. _:I_,!,,~~~e ___ J -Z~~;:'-~----j
'I
"
•
Nachdem wir mit den endlichen Automaten den passenden Beschrei-
-')'+.I
~
bungsfonnalismus zur ModelIierung von Schaltwerken zur VerfUgung
haben, wollen wir uns der Umsetzung des Modells in eine reale Hardware-Schaltung zuwenden. Ausgehend von der Zuslandsmenge S
Übergangs_ fimktion
Schaltwerksynthese
4-
Mealy-Automat:
Ausgabe_ fimktion
'-H",L-jH
bestimmen wir zun:lchsl eine bin:tre Cooierung der einzelnen Zustande. d.h.. wir ordnen jedem Zustand Si E Seinen Bitvektor der Lange k zu. der den Zustand eindeutig charakterisiert. Da wir mit Bitvektoren der Lange k genau 2k Zustande unterscheiden können. gilt im Umkehrschluss k = ilog 2 lSll. d.h.. die Anzahl der fUr die Codierung benötigten Bits steigt logarithmisch mit der Anzahl der Zustände des Automaten. Die Zuordnung der Bitvektoren zu den einzelnen Zuständen kann willkUrlich erfolgen. in der Praxis hat die konkrete Wahl der Codierung jedoch einen erheblichen Einfluss auf die resultierende HardwareSchaltung. Genau wie die geschickte Wahl der Zustandscodierung zu einer sehr kompakten Schaltung fUhren kann. lasst eine ungeschickte Wahl in vielen Rtllen eine unnötig komplexe Schaltung entstehen. Das Auffi nden ei ner geeigneten Zustandscodierung ist daher ei ne bedeutende Aufgabe im computergestutzten SchallungsentwurC die in der Praxis mit Hilfe spezieller Software-Werkzeuge durchgefUhrt wird.
rann Hängt die generierte Ausgabe nur
Die Automatenzustande werden auf die reale Hardware-Schaltung abgebildet indem wir fUr jedes Bit der Zustandscodierung ein separates Flipflop erleugen. An dieser Stelle mUssen wir uns entscheiden. ob wir die Hardware-Schaltung mit Hilfe von RS-. 0-. T- oder JK-Elementen implementieren wollen. Auch hier können wir im Prinzip eine beliebige Variante verwenden. da sich jedes dieser Speicherelemente mit Hilfe der anderen ausdrucken lasst. Genau wie im Falle der Zustandscodierung kann eine geschickte bzw. ungeschickte Wahl zu einer deutlich kompakteren bzw. unnötig großen Schaltung fUhren.
von dem aktuell eingenomnrlrn Zustand ab, so sprechen wir von einem MooreAutomaten. Gehen die aktuell anliegenden Eingabesignale ebenfalls in die Berechnung der Schaltwerkausgabe ein, so sprechen wir von einem Mealy-AulOmmen.
Sind alle Zust:tnde binar codiert und haben wir uns auf den Typ der Speicherelemente geeinigt so sind wir im nachsten Schritt in der Lage. die Übergangstabelle des endlichen Automaten aufzustellen. Aus dieser werden anschließend zwei konventionelle Schallnetze mit den uns bekannten Mitteln abgeleitet.
Abbildung 7.29: Die Huffman-Normal-
• Das Obergangsschaltnetz berechnet aus dem aktuellen Zustand und der aktuellen Eingabe fUr jedes Speicherelement die Steuersignale. mit denen wir die Speicherelemente beschallen mUssen. um sie im nächsten Takt in den korrekten Folgezustand zu uberfUhren. Im Falle
7.2 Vom Flipflop zum Schaltwerk
251
0/1,1/0
I /0
101 I / I
0/1
Abbildung 7..30: Der zuslandscodiene Automat des seriellen Binllr.Gray-Core Wandlers. Von den 8 mOglichen Bilmu· slem .....erden nur die Kombinationen 000. 001. 100, 101 und 110 zur Codierung der ronr ZUSlllnde \·erwendel. AUe an-
100 0/0
deren Bitkombinationen haben keine Be· deutung. Die hk'rdurt'h entstellende Redundanz wenk'n Wir splter in FomI von
[)on't-Ql.re-Kombinaliooen zur Minimie0/0,1/1
rung der ZUStandsUbergaDgs. und Ausga-
belogik \'eI'\l'eM.'n.
von D-Flipnops iSI die ßcschaUung besonders einfach - das zu erzeugende Bilmuster an den Flipnop.-Eingängen entsprichl dann exakt dem Bilmusler des Folgczustands. • Das AlIsgtJbeschtJfrnet1 ...o?'f\O'
7 Schaltwerke
252
--------_.1
1
- - - -
1
1
0
1
0
1
1
0
0
0
0
0
- - - -
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0 0
0 0
1
0
0
1
1
0 0
1
1
0 0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0 0
1
1
0 0
0
1
0
0 0
1
0
1
1
0
0
1
1
1
0
1
1
Tabelle 7.3: Übergangstabelle des seriellen Binar-Grny-Code-Wandlers
direkte Verbindung zwischen den Eingangssignalen und den Eingangen des Ausgabeschaltnetzes mehr existiert.
0
1
1
0
1
1
- - - -
0
0
1
0
x 0
1
1
0
1
0
- - - -
0
1
1
0
Abbildung 7.31: Die Kamaugh-YeitchDiagrnmnr der drei ÜbergangsfunktioJrll 12, I] und 10 sowie der Ausgangsfunktion y
Um die Schaltungssynlhese praktisch zu demonstrieren, greifen wir das Beispiel des seriellen Binar-Gray-Code-Wandlers aus Abbildung 7.28 wieder auf. FUr die Codierung der fUnf Zustande des dort abgebildeten endlichen A ulomalen sind
ilog 2 5l
=
3 binare Speicherelemente erfor-
derlich, so dass jeder Zustand durch einen dreielementigen Bitvektor Q2QlQO repr'dsentiert wird. Die binaren Variablen Q2, qj, qo bezeichnen den aktuellen Zustand der drei verwendeten Speicherelemente. Wie oben erwahnl. kann die Auswahl der genutzten Bitmuster sowie die Zuordnung zu den verschiedenen Zustanden im Prinzip beliebig erfolgen. FUr die weiteren Betrachtungen w:ihlen wir die in Abbildung 7.30 dargestellte Zustandscodierung. Der Typ der verwendeten Speicherelemente kann ebenfalls frei gewahll werden. In diesem Beispiel wenlen wir zeigen. wie sich das Schaltwerk mit Hilfe von T-Flipflops realisieren l:isst. Nachdem die Zustandscodierung feststeht. sind wir in der Lage. die Übergangstabelle des endlichen Automaten aufzustellen. Das Ergebnis ist in Tabelle 7.3 zusammengefasst und besteht aus drei separaten Variablenblöcken. Der erste Variablenblock enthalt die Eingangsvariablen. die sich aus den aktuellen Zustanden cl2 • cll und clo der Speicherelemente
7.2 Vom Flipflop zum Schaltwcrk
253
sowic dcr aktucllcn Eingabe x zusammcnsetzcll. Der zwcitc Variablcnblock beschreibt mit den Variablcn ~+I. 41+ 1 und tlO+ 1 den Folgezustand. Der lewe Block enthltlt ocben der Ausgangsvariablen ydie Variablen '0.'1 und '2. Die drei Variablen beschreiben. wie wirdie Eingänge der drei T-Flipflops beschaUen mUSscn. damit das Schaltwerk vom Zustand (t/2,t/.,t/O) in den Zustand (t/2,t/.,t/O) wechselt. Wie weiter oben theoretisch dargelegt. mUSsen wir aus der Übergangstabelle zum einen das ObcrgangsschaltnelZ mit den Ausgltngen (2. (1.'0 und zum anderen das Ausgabc:schaltoclZ mit dem einzigen Ausgang)' ableiten. Bezogen auf die Obcrgangslabclle bedeutel dies. dass wir !Ur die Variablen 'z. 'I. '0 tmd)' eine booleschc Funklion mit den freien Variablen t641.tfo und x ableilen mUSsen. Um die Funktiol~n gleich in eine minimicnc Fonn zu bringen. sind in Abbildung 7.31 die Kamaugh-Veilch-Tafeln aller vier Funktionen darge$tcl1l. Hieraus erhalten wir auf einen Schlag die folgende Formcldarstel1ung: '2
"
'. y
q'o V'iql vq. rh qj V'iQOQ2
(7.1)
tl042 Vtlo~v t!J x Vq'OQ2x
(7.3)
(xAq'.) V (xAq'.) x-Qo
(7.4)
(7.2)
n":l
fl'> '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
-1
~
• -tr I>c,
, . '2
.....
n
..... tjl&
II-
&
~
&
..... ..... I-
n ~lJ I>c,
.,
"
~,c,
(7.5)
Dass es sich in unserem Beispiel tatsächlich um einen MealyAutomaten han(lelt. spiegelt sieh auch an der Fonnel fUr)' wider. da die Eingabcvariable x in der minimierten Formeldarstellung \'erbleibt. Lägeein Moore-Automat zu Grunde. so wäre die Ausgabe y ausschließlich vom aktuellen Zusland des Schaltwerks abhängig und die Variable x wurde in der minimierten Formc1darslellung verschwinden. Schallen wir die Komponenten entsprechend dem allgemeinen Schcma in Abbildung 7.29 zusammen. so erhalten wir als Ergebnis die in Abbildung 7.32 dargcstclltc Hardware-Implcmentierung.
A"dih·
~
x
Abbildung 7.32: Die linale Implementierung des seriellen Bin!lr.Grny-CodeWandlers
In·7.....n.l?7 NI 111 no '>1 -t-fl?'flll'
254
7 Schaltwerke
7.3
Aufgabe 7.1
"""
Webeode
7432
Übungsaufgaben
a) Analysieren Sie das folgende Schaltnetz. indem Sie die Schaltung an der markierten Stelle auftrennen und damit einen neuen Eingang q' erleugen. Stellen Sie anschließend die Wahrheitstabelle auf und markieren Sie stabile und instabile Zustande. Leiten Sie aus der Tabelle einen endlichen Automaten ab. indern Sie q' als Zustandscodierung verwenden. Was implementiert die Schaltung und welche Bedeutung kommt den Variablen XJ und X2 zu?
b) Welches bekannte Element entsteht. wenn wir die Schaltung. wie unten gezeigt. um zwei weitere NANO-Gatter erweitern? Stellen Sie hierLU erneut die Wahrheitstabelle auf. Welche Bedeutung besitzt das zusatzliche Ei ngangssignal X3?
c) Was implementiert die folgende Schaltung? Verwenden Sie zur Analyse die Ergebnisse aus den vorherigen Teilaufgaben. Welches Implementierungsprinzip verfolgt die Schaltung?
" _J,-,
"
--"---------~
7.3 Obungsaufgaben
255
Gegcben sei dic folgende Auswahl digitalcr Spcichcrelclllcntc:
cA-G 'u 'tl ifl;J u ,~
s
r
Ord~n
lA
-
Cl
lA
-
clk k
Cl
lK
I
,,-~
;
d:Ej-.
S
cf! r
Aufgabe 7.2
cJk
q -
ib
Webcode 7047
Sie jedes dieser Elcmcntccinclll der BläUerdes folgenden DicilOlomic-Baums zu:
Speicbcrelemmt
einflankm-
Z\Oo"elflanken-
~_~..E~=~'~"=-~~=~~~::::':"positiv flankengesceuert
negativ flankengesleuert
, ....
Gegcben sei das folgcrlOC Schaltwcrk:
Aufgabe 7.3 Webeode
7923
Leitcn Sie aus dem Strukturbild die zugehörige Wahrheitstabelle ab. Markieren Sie die stabilcn Zuslllnde. die ZusUtnde. die instabil sind. aber in einen stabilcn Zustand Ubergchen, sowie dic ZustJlnde. die permanent instabil bleiben und die Schaltung damit in cinen Schwingungszustand verscl7.cn.
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'fln'
7 Schaltwerke
256
Aufgabe 7.4
""'''
Webeode 7611
Gegeben seien die Werteverlaufe der Eingangssignale c1k und d bzw. c/k,s und r. Benennen Sie die abgebildeten Speicherelemenle und vervollstandigen Sie den Signalverlauf der jeweiligen Ausgangssignale:
cl' d I
I
"
,
I
I
I
I
I
clk~
, cl'
d
cl'
Aufgabe 7.5
"'''''
Webeode
I'::- :: :: 'I:I fT:I
,
m
--j cl' \>e, , d
m \>e, --i
~(I e, --;
,
"
,
'R
,
"
,
'R
"
I
I
I
I
I
11 11 11 11
I I I I
I I I I
I I I I
I I I I
I I
c/k Cl
Welcher der folgenden Automaten beschreibt ein 0- und welcher ein T-Flipflop? Konstruieren Sie fUr jedes Flipflop eine Schaltung, die das Speicherelement jeweils mit Hilfe des anderen aufbaut.
7940 1 / 1
0/0
q'~O
q'
=
1
0/ 1
1 / 0
1 / 1
1/ 1
0/0
o/
0
J'I"d",h,,- 01 n1
--.---.-I-' '>1
~ &
I-c --.--
c- --.---.-=!
,1
~ ~ ~ "
cl'
n
>Cl
~
'>1
--.---.-I-' '>1
n
>Cl
n
>Cl
~ &
r-~
>C'
~ ,;0, ~
>C,
-----,
,1
2:1 MUX
I-c --.--
c- --.---.-=!
"
n
n
n
>C'
cl'
J'I"d",h,,- 01 ne, " 'R
" Abbildung 8.2: Strukturbild eiJrs 4-Bil-Auffangregisters
-
"
'&
" I>e,
" '& >e, 'R
'R
~
"
"
8.1 Register
261
übertragen. falls das Enabfe-Signal e zu diesem Zeitpunkt gleich I ist. Wird t! auf 0 gesetzt, so wird das Register in einen permanenten SpcicherJ.usland \'ersetzt und bewahrt seinen Registerinhall - unabhängig \'on den Signalwerten der Datenlcitungen. Eine lllögliche hnplcll'lenticrung des 4~Bit~AulTangregisters auf Basis von RS-F1ipnops ist in Abbildung 8.2 dargestellt. Ist das Enable~Signal t! gleich I. so wird in Abhangigkeit des Datensignals d; am Eingang des i-ten Hipnops die Kombinalion 01 oder I 0 erJ.eugt und damil die ÜbemllhnlCdcs DatenbilSd/ bewirkt. 1m Falle t!= Oerzeugen die UNDGalter an bcidcn Eingangslcilungen aller Hipnops den Signalwert O. so dass der aktuelle Zustand unabhangig vom Wert der Datenleitungen gespeichert wird. Wie das Strukturbild deutlich zeigt. verursacht der optionale EnableEingang einen erheblichen Mehraufwand - jedes Hipnop muss mit zwei zusätZlichen UN()'Gattem maskiert werden. In der Tat sdrint das Problem auf den ersten Blick deutlich einfacher lösbar zu sein. indem wir nicht langer die einzelnen Datensignale. sondern schlicht das Taktsignal maskieren. Abbildung 8.3 zeigt die resultierende Schaltung. Im Fall t!= Owird das Taktsignal von den einzelnen Speicherelementen effektiv abgekoppelt. so dass kein Zustandswechsel mehr erfolgen kann. Dass eine solche Schaltungskonstruktion jedoch erhebliche Risiken birgt. macht das Zeitdiagramm in Abbildung 8.3 deutlich. Wechselt nämlich das Enabte-Signal seinen Wert während der positiven Taktphase von clk. soentsleht auf der Taktleitung ein Impuls mit einer im Vergleich zum ursprünglichen Taktsignal abweichenden Phasenlänge. Die korrekte Funklionsweisc dcr angeschlossenen Speicherelemente kann so nicht lnchr garantiert wCf(len und die Wahrscheinlichkeit fUreillundefiniertes Schaltverhaltcn nimmt mit ablrhmender Impulsl:J.nge drastisch zu. Trotzdem können wir dllS Problem auf elegante Weise lösen. indem wir durch den Einbau zusUtzlicher Logik sidmstel1en. dass ein Wechsel des Ellabte-Signals e bis zum Beginn der nUchsten negativen Taktphasc verlÖgert wird. Hierl.u wird. wie in Abbildung 8.4 gezeigt. das EnableSignal vor der VerknUpfung mit dem Taktsignal ganz einfach durch ein zus!llzlich eingebautes D-Latch gefiltert. Das Latch ist negativ angesteuer\. so dass sich ein etwaiger Signalwechsel von e nur während der unkritischen negativen Tllktphasc auswirken kann. Während der gesamten positiven Taktphase speichert das Latch hingegen seinen Zustand und blockt damit jede Ver'Jnd:rung von e bis zum Beginn der nächsten negativen Taklphasc ab.
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
•
Strukturbild
•
Schaltvemallen
SlliriDlpuk
Abbildung 8.3: Erzeugen des ElWhlt!Signals durch die Maskierung der Thklleilung
•
Siruklurbild
•
10
C,
d,J-===~:['J •
Schallverhalren ,Ik
• dir'
" &4: Vemleidung von StOrimpulsen durch ein zusätzliches. negativ angesteuertes D-Lalch
Ahhildun~
In·7.....n.l?7 NI 111 no '>1 ...o?'nn'
262 •
8 Standardschaltwerke
Schallsymbol
8.1.2 SRG4
dk de
Neben dem Auffangregister spielt auch das Schieberegisler in der Pra-
'N CO/.....
xis eine bedeutende Rolle. Stall ein DalenwoJ1 parallel zu Ubernehmen.
wird ein Schieberegisler seriell geladen. HierLU wird der Regislerinhall in jedem Takt um ein Bit nach links oder rechts geschoben und die frei
f-
werdende Stelle mit dem am Eingang anliegenden Wert uberschrieben.
f-
•
--
Folgerichtig besitzt ein Schieberegister genau einen einzigen Dateneingang d - unabhangig von der Bitbreite n. Ausgangsseitig verfUgt das Schieberegister. genau wie das Auffangregister. tiber n Ausgangsleitungen qo, ... ,qn-J. an denen der Registerinhall parallel ausgelesen werden kann. Abbildung 8.5 fasst das Schaltsymbol und Schallverllallen eines 4-Bit-Schieberegisters zusammen. Die Bezeichnung Cl/ --+ am Takteingang deutet darauf hi n. dass es sich hier um ein rechtssclliebendes Register handelt.
Schaltverhaiten FunktIOn
Speichern
0/111
Schieberegister
o
Speichern
1
Rechts schieben
Abbildung 8.5: Schallsymbol und Schaltverhalten des unidireklionalen Schieberegisters
Wie Abbildung 8.6 demonstriert. kann ein Schieberegister auf besonders einfache Weise mit Hilfe von D-Flipflops implementiert wenlen. Die Schiebeeigenschafl wird erreicht indem der jewei lige Ausgang eines Speicherelements direkt mit dem Eingang des nachfolgenden Elements verbunden wird. Das Flipflop ganz links reprHsentiert die in jedem Takt frei werdende Bitstelle, so dass wir dessen Eingang direkt mit der Datenleitung d verbinden können. Die folgenden Beispiele demonstrieren drei Anwendungen dieses Registertyps aus ganz unterschiedlichen Bereichen: • Mit Hilfe von Schieberegistern können serielle Datenströme aufeinfache Weise parallelisiert werden. HierLu wird das Schieberegister nacheinander mit allen Bits eines Datenworts gefUllt und anschließend an den RegisterausgHngen qo, ... ,qn-J abgegriffen.
d
Lm -
dk
~
m
e,
m
>e,
-
m
pe,
-
i&l ~
q.
Abbildung 8.6: Strukturbiid des unidirektionaien 4-Bit-Schieberegislers
q,
>e,
m
~
>e,
8.1 Register
263
• Viele arithmetisch-logische Einheiten (ALUs) enthalten Schieberegister. Interpretieren wir den Registerinhalt als ~'or4!ichenlose Dual7.al1l und runen frei werdende BitsteIlen stets mit 0 auf. so entspricht das Unksschiebcn der Multiplikation mit 2 und ein Rechtsschieben der Di\'ision durch 2. Die Multiplikation und Division mit einer Zweicrpotenz lässt sich damit in vielen Fällen auf einfache Schiebeoperationen abbilden und in Arithmetikeinheiten hierdurch besonders effizient berechnen. • FUhren wir. wie in Abbildung 8.7 gezeigt. die Ausgangsleitung des letzten Registerbits auf ck:n Dalcneingang zuruck. so wird das auf der cinen Seite herausgeschobene Bit auf der anderen Seite wicder cingcrugt. Auf diese Wcise cntstehl cin so genannlCs Umlullfrq:;sur (R;/lgtiih/~r). das die gespeicherten Rcgisterbits rotiert. In einem Umlaufregister der Breite" stcllt sich nach n Takten stets wicder der A w;gangszw;tand ein. vorgcstcllte Registcr emlöglicht die Weitergabe ck:r einzelnen Bits in eine einzige Richtung. so dass wir in diescm Zusammenhang von ei~m IInid;r~laion(l/~nSchicbcregister sprechen. Abbildung 8.8 zeigt das Symbol einer bidirektionalen Variante. die über ei~ zusätzliche Steuerleitung s verrugt. mit deren Hilfe die Schieberichtung gedreht werden kann. Gilt s = O. so werden die Registerbits in jedem Takt nach rechts geschoben. Gilt s - I. so erfolgt eine Verschiebung der Bits nach links. Der scrielle Datencingang ist in der dargcstellten Registervariante ebenfalls zweifach ausgelegt. Im Falle des Linksschiebens wird das rechts frei werdende Bit mit dem Wert d r überschrieben. im Falle des Rechtsschiebens wird das links frei werdende Bit durch den Wert d j ersetzt.
•
•
SChaJtsymbol
--
SChaltvertlatten
l)I1/t
funkllon Speichern
o
Speichern
I
Rechts rol:iereß
[ßs
Das Strukturbi Id einer möglicl-en Implemenlierung des bidirektionalen Registers ist in Abbildung 8.9 dargeslellt. Die Eingänge der Speicherclerncnte sind mit l-aus-2-Mulliplexern beschalle!. die in Abhängigkeit der Steuerleilung d das enlsprechende Eingabebil auswählen. Auf diese Weise entsteht eine flexible Regislerarchileklur. die sich durch die Vcrwendung größerer Mulliplexer beliebig erweitern lässt. Auf die Implemenlierung des EI/llble-Signals wurde im Strukturbild des bidireklionalen Schiebcregislers verl.ichtet. die Schaltung lässt sich jedoch auf einfache Weise um ein solches Signal erweilem. Neben der immer vorhandenen Möglichkeit. das Taklsignal. wie oben gezeigt. mit Hilfe eines UND-Gallers und eines negativ angesteuerten D-Latches zu maskieren. können wir die Flexibilität der MuHiplexer-Konstruktion ausnutzen. indem wir die Etwble-Lcitung den Steucrsigllalen der Multiplexer hinzurugen und den Flipflop-Ausgang auf die entsprechenden MUltiplexerEingänge zurtlckruhren.
A"dih· n":l fl'> '?fV'lO m·m m
Abbildung 8_7: Durch die Wiedereinspeisung des herausgeschobenen Bits wird ein Schieberegisler zum Ringzllhler •
SChaltsymbol
, "k d,
•
--
Schallverhalren
CVllJ
I 1
funktIon Speichern
0
Rechts schieben
1
Links schieben
Ahhildun~
H$: Schaltsymbol und Schaltvertlalten des bidirektionalen Schieberegis"ß
_ 11 fl'> '?fV'lO m·m·m In·7.....n.l?70'i"Q?QR1MflRQrlQ1 h1~..n 7"""tn>l. ,. "IOI"ICl fl'> t'\A 111 no "1 ...o?'flO'
264
8 Standardschaltwerke
d,_
-
-
IL
2:1
L..-
T
,
2:1 _MUX
m
p,e,
MUX
d,
-
T
c2:1
m
I>e,
L..-
MUX
T
2:1
m
p,e,
L..- MUX
T
m
>e,
cl' q,
q.
q,
q,
Abbildung 8.9: Strukturbiid des bidirektionaien 4-Bil-Schieberegisters
8.1.3
•
Strnkturbild
'. "
SRG4
-
"}" , T
-
?Cll....
f-
f-
---
•
Schaltverhaiten
011/1
1 1 1
0 0
Universalregister
Das Universalregisler integriert die Eigenschaften des Auffang- und des Schieberegislers in einen einzigen Baustein. Dadurch verfUgt das Universal register gleich tibeT zwei Möglichkeiten. ein Datenwort zu laden. Zum einen können. wie im Falle des AufTangregislers. UbeT die n Datenleitungen do, ... ,dn_ 1 alle Registerbits parallel eingelesen wenlen. Zum anderen besitzt das Universal register. genau wie das Schieberegister. ein oder zwei serielle Dateneing:tnge. uber die in jedem Takt ein einzelnes Bit von links oder rechts in das Register geschoben wenlen kann. Ausgabeseitig besitzt der Baustein n Daten leitungen qo, . .. , qn-I. die das parallel Auslesen des Registerinhalls erlauben. Die auszufUhrende Operation winl durch eine Reihe von Steuerleitungen So, ... ,Sm bestimmt. die als zusiltzliche Eingange zur VerfUgung stehen. Als Beispiel eines solchen Bausteins ist in Abbildung 8.10 das Schaltsymbol und Schaltverhalten eines 4-Bit-Universalregisters dargestellt Über die bei den Steuerleitungen So und SI winl einer der vier möglichen Betriebsmodi ausgew:thll. die in tabellarischer Form ebenfalls in Abbildung 8.10 aufgelistet sind.
FunktlO11
0 ,
Rechts schieben
0
Links schieben
Laden
Speichern
Abbildung 8.10: Schaltsymbol und Schaltverhalten des Vniversalregisters
Abbildung 8.11 zeigt eine mögliche Implementierung des 4-BitUniversalregisters. Die Steuerleitungen So und SI werden direkt mit den Steuereingangen der Multiplexer-Bausteine beschallet und die Multiplexer-Eingange entsprechend der auszufUhrenden Operation mit einem der Flipflop-Ausg:tnge oder einem der parallelen oder seriellen Dateneing:tnge verbunden. Die Schallung ist damit eine direkte Erweiterung der Multiplexer-basierten Architektur des bidirektionalen Schieberegisters.
8.1 Rcgistcr
265
d,
-
d,
-
..
~
-
4:1 L- WX
. -
10 C>C1
=MUX ~
~
10 C>C1
~
-=
10 C>C1
-
4:1
WX
--,
10 C>C1
"
,Ik
'?fV"lO
m·m·m
In·7.....n.l?7 NI 111 no '>1 -t-fl?'nn'
266
8 Standardschaltwerke
~--------------------------.
+----1,"
-
MUX
,+-12:1
-
r-
~i'----
'0
" " "
MUX
r-
l-f-t--I,,,
V/
MUX
dO d,
'0
,,
,-'d2 /,/
'N >0
d)
_______________________ J','-
I
" " " ~
L =0
=1
=2=)
-
c -c
Abbildung 8.12: Ein einfacher 4-Bit-Akkumulator auf Basis eines Auffangregisters und eines Addierers
Struktur des Akkumulators - ei n wichtiges Kernelement eines jeden Mikroprozessors. In der Tat sind in modernen Prozessoren nahezu alle inlenlell Register als Akkumulator nutzbar. auch wenn sie heute nur noch seilen explizit als solche bezeichnet werden. Abbildung 8.12 zeigt das
Strukturbild eines 4-Bit-A kkumulalors. der ein einfaches AufTangregisler mit einem Addier-lSubtrahierwerk kombiniert.
---
Funktion
000 o 0 1
Speichern
o o
1
0
Speichern
1
1
Speichern
o o
0
Addieren
1
Subtrahieren
o
Laden
Speichern
u.doo Tabelle 8.1: Funktionsweise des Akkumulators
Eingangsseitig verfUgt der abgebildete Akkumulator neben dem Taktsignal clk uber die Datenleitungen do, ... ,d3 und die Steuerleitungen So und SJ. Das Steuersignal So wird direkt in das Addier-/Subtrahierwerk weitergeleitet und entscheidet. ob der Registerinhalt mit dem an den Datenleitungen angelegten Wert erhöht (so = 0) oder erniedrigt wird (so = I). Das Steuersignal SJ ist mit dem intem verbauten parallelen Multiplexer-Baustein verbunden und definiert den Signalweg innerhalb des Akkumulators. Im Fall SI = 0 wird der obere Signalpfad und damit das Ergebnis der aktuell durchgefUhrten Addition bzw. Subtraktion auf die Dateneing:tnge des Registers geschaltet. In anderen Worten: Das extern angelegte Datenwort wird akkumuliert. Ist SJ = L so wird der untere Signalpfad durchgeschaltet und der Registerinhalt unabhangig von den aktuell gespeicherten Werten mit dem Datenwort do, ... ,d3 geladen. Ausgangsseitig verfUgt der Akkumulator uber die Ausgangsleitungen QO, ... ,Q3 und c. die das im Addier-/Subtrahierwerk berechnete Ergebnis nach außen fUhren. Tabelle 8.1 fasst die Funktionsweise des Akkumulators zusammen.
8.1 Register
267
.
~------------------------~.
'. 2:1
MUX
4---1 2 :1 MUX
:tt:::=J r. t:==!MUX 201
----_
.....
'.
r\bbildun~ 8.13: Erweilerung der Akkumulator·Fun1":lionalit:l1 durch die VerwendWlg eines Unh-ersalregisters
_ . _ . Illtjl$luh Das Siruklurbild des Akkumulators enthält einen verallgemeinerten Multiplexer-Baustein. der in Abhängigkeit des Steuersignals nicht mehr nureineinzelnes Bit. sondern ein ganzes Datenworl von den Eingängen zu den Ausgängen durchschaltet. Die Implementierung eines solchen Bausteins kann auf einfacl~ Weise auf die uns bekannten MultiplexerBausteine zurUckgefUhrl werden und ist ebenfalls in Abbildung 8.12 dargeslellt. Der erwcilCrle Mulliplexer.Bauslein iSl in Form eines eingeschnitlenen. sich zu den Ausgängen verjUngenden Trapezes abgebildet. Diese Darstellung wird insbesondere in Blockschaltbildern geme verwendet. da sich der D1 -t-fl?'flO'
268
8 Standardschaltwerke
8.2
Zlihler
Zähler
Binlirzlihler
Synchron
Eine weitere wichtige Klasse sequenzieller Standanlkomponenten stellen die Zälrlerbausteine dar. mit deren Hilfe sich zeitlich aufeinander folgende Ereignisse registrieren oder auch erleugen lassen. In der Praxis kommen Zahlerbausteine in den verschiedensten Formen vor und unterscheiden sich insbesondere in den folgenden Eigenschaften:
•
Schritllange Die Schriltlange bezeichnet den Wert. um den der Z:thlersland bei
Rückwlirts
Anliegen ei nes Impulses erhöht wird. Die meisten verbauten Zählerbausteine sind Binärzälrler. die den Zahlerstand entweder unverändert lassen oder um eins erhöhen. Im Gegensatz hierLU sind Offsetzähler in der Lage. den Zählerstand injedem Takt um einen variablen Wert zu verändern.
Bidirektional
• Implementierung Asynchron
Zahlerbausteine können auf unterschiedliche Art und Weise aufgebaut werden und wir unterscheiden insbesondere asynchrone und synchrone Implementierungen. In den folgenden Abschnitten werden wir beide Varianten diskutieren und bezuglich ihrem Laufzeitverllallen und Flächenbedarf mitei nander vergleichen. • Zahlrichtung
Rückwlirts
Bidirektional
Offsctzll.hler
Abbildung 8.14: Dichotomie der am h:lufigsten in der Praxis eingesetzten ZähleroousteiJr. Die in diesem Abschnitt im Delail behandelten Varianten sind farblich her-
vorgehoben.
Unidirektionale Ziihler variieren den Zahlerstand ausschließlich in eine Richtung und können weiter in Von~'ärts- und Rückll'ärtszähler unterteilt wenlen. Bidirektionale Zäh/er sind in der Lage. sowohl vorwärts- als auch rllckw:trtszuzählen. und verfUgen meist Ubereine separate Eingangsleitung. deren Signalwert die Zählrichtung spezifiziert. • Zahlenfonnat Jeder Zahlerbaustein muss den aktuellen Zählstand intern in einem besti mmten Format repräsentieren. Im Prinzip kann hierLU jeder der in Kapitel 2 vorgestellten Zahlencodes eingesetzt wenlen. Die Wahl des Zahlenformats hat in vielen Fällen einen deutlichen Einfluss auf die Komplexitat der Umgebungslogik und beei nflusst mitunter auch ganz andere Parameter wie die Leistungsaufnahme der Schaltung.
Abbildung 8.14 fasst die verschiedenen Zählervarianten in Form eines Dichotomie-Baums zusammen. In den folgenden Abschnitten wenlen
A"d",h,,- n1 n '?fV'lO
m·(V\·m
In·7.....n.l?71 -t-fl?'nn'
270
8 Standardschaltwerke
0000
0 1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
2
0
0
1
0
0
0
1
1
3
0
0
1
1
0
1
0
0
4
0
1
0
0
0
1
0
1
0
5
0
1
0
1
0
1
1
6
0
1
1
0
0
1
1
1
7
0
1
1
1
1
0
0
0
0 0
0 0
0
1
1
1
1
0 0
0
9
1
0
10
0
1
0
1
0
1
1
11
0
1
1
1
1
0
0
12
0
0
1
1
0
1
13
0
0
8
1111
...........
14 15
1
1
1
1
0
1
1
1
1
0
0
0
0
Abbildung 8.16: Entwurf des 4-Bil-Binärzllhlers als synchrones Schaltnetz
Als Beispiel zeigt Abbildung 8.15 die Schaltsymbole und das Zeitver-
hallen zweier synchroner 4- Bil- Bi narLahler. Interpretieren wir den Ausgang qo resrektive q3 als das Bil mit der niedrigsten bzw. der höchsten Wertigkeit. so werden an den Ausgangen laktsynchron die Werte 0,1,2,. ausgegeben. Der obere Zahler implementiert einen naturliehen numerischen Überlauf und iteriert nacheinander durch alle der 2 4
möglichen Bitmusler. Danach nimmt ererneul seinen Initialzustand ein und die Zahlung beginnt von Neuem. Im Gegensatz hierLU wechselt der
untere Zahler mit Hilfe eines vorLeitig ausgelösten Reset bereits nach 10 Takten wieder in den initialen Zustand 0000 zurück. Unsere weiteren Betrachtungen beschr:tnken wir auf 2m_Zahler. d.h. Zahler mit naturlichem Überlauf. Werfen wir einen zweiten Blick auf deren Zeitdiagramm. so können wir zwei wichtige Eigenschaften ablesen: • Die Signalverl:lufe von Qo, ... ,Q3 entsprechen einer idealen Rechteckkurve. die sich nur in der Frequenz von dem Taktsignal c1k unterscheidet. Auf Grund dieser Eigenschaft werden Zahler dieser Bauart auch als FrequenZleiler bezeichnet.
8.2 Zahler
271
• Da sich die Signalverläufe von clk und qo, ... ,q3 nur in der Frequenz unterscheiden. kOnnen wir das Taktsignal als zUsaizliches Bit des z:thlcrstancls interpretieren oh~ die Zähleigenschaft der Schaltung zu ,·el11nl. ,. "IOI"ICl fl'> NI 111 no '>1 -t-fl?'llO'
274
8 Standardschaltwerke
durchweg entgegengesetztes Bild ab. Wahrend der FHtchenbedarf des synchronen Zahlers quadratisch mit der Bithreite n zunimmt. wachst der F1Hchenbedarf des asynchronen Zahlers nur linear - außer den n TFlipflops wird kein ei nziges weiteres Gatter benötigt. Auf der negativen Seile verschlechtert sich die Laufzeit der asynchronen Schaltung mit
zunehmender Bitbreite. da das Taktsignal von links nach rechts durch alle T-Flipflops hindurchgereichl wird und die Speicherelemente hier-
durch nicht mehr gleichzeitig. sondern zeitversetzt schalten. Damit können wir die Komplexitm des asynchronen Binarlählers wie folgt zusammenfassen:
Der asynchrone n-Bit-Bin:trl:thler besitzt die folgende Komplexität:
crR"J Cl
cl'
I Übertrngslogik
,, ,, ,, ,
I
if""Ocr"RO::"' :ce!
'.. ~~i~~~ ~
~,
q",xn 2 q"'x.....
Abbildung 8.20: Ein Mischzahler entsteht durch die asynchrone Zusammenschaltung synchroJrr Zilhler
O(n)
Durch die diametral entgegengesetzten Eigenschaften des synchronen und des asynchronen Zählers sind wir in der Lage. rur verschiedenste Hardware-Anforderungen einen passenden Baustein zu konstruieren. Wird ein schneller Zähler benötigt. so bietet sich die synchrone Implementierung an. Stehen die Hardware-Kosten im Vordergrund. so l:tsst sich mit der asynchronen Beschallung eine sehr kompakte Implementierung erstellen. Trotzdem stellen der synchrone und der asynchrone zahler rur viele in der Praxis auftretende Falle keine optimale Ulsung dar. Insbesondere rur Zahler großer Bitbreite ist die synchrone Variante viel zu komplex und die asynchrone Variante schlicht zu langsam.
11 Übertrngslogik
Flllchenbedarf
O(n)
I
~~nJ
,,I
SchaltungslIefe
Abhilfe schaffen so genannte Mischzälrler. die durch die Kombination beider Architekturkonzepte einen Mittelweg zwischen Laufzeit und Flachenbedarf beschreiten. Wie Abbildung 8.20 schematisch aufzeigt. wird der Zählerbaustein aus zwei oder mehreren kleineren Synchronzählern aufgebaut. die mittels einer zwischengeschalteten Übertragslogik asynchron gekoppelt sind. Der erste Synchronzahler ist direkt mit der Leitung clk verbunden. so dass sich dessen Zahlerstand in jedem Takt erhöht. Der nachfolgende Synchronzahler reprasentiert die jewei Is n:tchsthöherwertigen Bits und muss genau dann erllöht werden. wenn der li nke Synchronz:thler ei nen Übertrag verursacht.
8.2 Zahler
275
r
Synchroner 2-Bit-ZlhJer
Synchroner 2-Bit-Zlhlcr
._~
--------------_._---------------~
'0
e,
"""""'" Iogik
"
"0"l
---------------------------_
,, ,, ,, , '
Abbildung 8.21: Der Mischlllhier entsteht durch die asynchroIE Vmellung mehrerer synchroner zahler
, l. /
-if'
-. : ..-
Werden mehrere synchrone Zahler asynchron zusalllOlengcschaltet. so entsteht das Strukturbild eines Mischzahlers.
Abbildung 8.21 (~ll'lonstricn dic Umsetzung des 4- Bit- Binllrzählers auf Basis zweier asynchron zusammcngeschalteter 2-Bit-SynchronZllhler. Die Übertmgslogik rt'duzicn sich aufeineinziges NOR-Gatter mit zwei Eingangen. die mit (~n Ausgängen des vorangehenden Zahlers beschaltet sind und das Taklsignal des nachfolgenden Zählers ansteuern. Gcllau dann. wenn der Zählersland des linken Zählers im Zuge eines numerischen Überlaufs von I1 auf 00 wechsel!. er/..eugl das NOR-Gatter an dessen Ausgang eine JXlSilive Flanke und bedingl das Hochzahlen des nachfolgenden ZlIhlers. Der FUichenbedarf und das Ulufzeilverhallen des Mischzllhlers können wir maßgeblich beeinllusscll. indel11 wir die Bilbreite der verbauten Synchronzllhler und damit auch deren Anzahl verändern. Verkleinern wir die Bilbrcile. so sinkt der Flächenbcdarf der Gcsamtschallung. allerdings verringen sich auch die SchaHgeschwindigkeit durch die ErtlÖhung der asynchron zusammengeschalteten KOll1JXlnenten. Vergrößern wir die Bitbrcite der Synchronzähler. so verringert sich die Lauf7..cil. jedoch steigt der Flachenbcdarf der Gcsamtschaltung durch die immer komplexer werdenden Synchronzllhler an. Insgesamt ermöglicht uns die
A"dih·
n":l
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?7 t'\II 111 no '>1 -t-fl7nn'
276
8 Standardschaltwerke
,---I'---
r-
'N
>CI
'0
-
,L~
" " "
c::::j
---L---
'0
" " "
I
o o o
'rr=~
'0
e
L =0
=1 =2 =)
-
clk
Abbildung 8.22: Beispielimplemenliemng eines 4-Bit-Instruktionszählers
flexible Architektur des Mischzahlers. die Parameter Laufzeit und F/äcllenbedaifnahezu beliebig gegeneinander zu verschieben. Allerdings gibt es auch hier wieder zu beachten. dass die Verbesserung eines der Parameter sIels zu einer Verschlechterung des anderen fUhrt.
Die Laufzeit- und FI:lchenkomplexilat eines Mischzahlers stellt einen Kompromiss zwischen dem schnellen. aber ß:lchenintensiven synchronen Zahler und dem langsamen. aber ß:lchenökonomischen asynchronen Zahler dar.
8.2.4
Instruktionszähler
In diesem Abschnitt betrachten wir mit dem als lnstruktions- oder Programmzälrler bezeichneten Schaltwerk eine weitere SchlUsselkomponente eines jeden Mikroprozessors. Der Instruktjonsz:thler dient der Adressierung des Hauptspeichers und enthalt zu jedem Zeitpunkt die Adresse der Speicherlelle. die den nachsten auszuführenden Befehl oder den nachsten zu ladenden Operanden beinhaltet. FUr den Einsatz
8.2 Zahler
277
in heute typischen Prozessorarchitekturen erwachsen die folgenden Anforderungen an einen Instruktionszähler:
-
Indirekler Sprung (SI = O. so = 0)
_ Schritl7.ählung In fast allen Rcchncrarchitekturen sind Befehle und Daten sequenziell im Hauptspeicher abgelegt. Die konsekutive Adressierung des Sreichers wird crreicht. indem der Instruktionszahler in jedem Takt schrittweise crhöht wird. Die Schritl7..ählung ist damit die am häufigsten vcrwcndete ßctriebsart des Instruktionszahlers.
_ Direkter Sprung (SI =
_ Relative SprUnge
O. so = I)
Ane modemen Prol.cssoren bcsit1.en Sprungbefehle. die es erlauben. den Programnlllthlcr um einen festen Wert zu erhöhen oder zu erniedrigen. Fingescl1.t werden solche Befehle zur Programmierung von Schleifen oder zum überspringen ein oder mehrerer Folgebcfehle. Im Gegensatz zu den bisher \'orgestellten zahlern. die aw;schließlich in Einzelschrilten operieren. handelt es sich im Falle des Instruklionszählers damil um einen echten Offsetzähler. _ Absolwe Sprunge Absolwe Sprungbefehlc codieren die Zieladresse direkt und damil unabhangig vom aktuellen Wcrt dls Programmzählers. Um solche Befehle verarbeiten zu können. benötigt '?fV'lO
m·m·nn
_
NlIchsle Adresse (SI = I. so = 0)
_
Resct (sr = J. SO = 1)
8.23: Darennuss InnertJalb des Instruklionszllhlers In Abhängigkeit der SteuersignaJe
Abbildull~
In·7.....n.l?7 NI 111 no '>1 ...o?'nn'
278
•
8 Standardschaltwerke
Allgemeines Schema in... 1
"'" "'"", "'", "'"-, '"'"
•
8.3 in2
in l
ino
•
o;fl lliiil:
RAM
0111... 1
OU1 0111 0111 2 1 0
Lesender Zugriff (Beispiel)
o o
000001001100
1
0001 0 0 1 0 1 0 1 0
o
1111101iI1iIIiIDDIiIDIiI 111111
1iI1i11i11i11i11i11i11i1
0001 101000000000
•
Schreibender Zugriff (Beispiel) 0010101000011010
o
---"l..lJ-'-Ll..lJLl..Ll..lJLl..L-',
o o
000001001100
1
1111101iI1iI1iIIIDIiIDIiI
o
0001
1iI1i1111i1111i1111i1
001100000000
Hauptspeicher
In diesem Abschnitt wenden wir uns einer weiteren Kemkomponente eines jeden Computers zu: dem Hauptspeicher. Wie der Name unmissverst:tndlich andeutet. dient ein Speicherbaustein einem einzigen Zweck - der persistenten Speicherung mehrerer Datenwörter. Zum Zugriff auf die Daten besitzt ein Speicherbaustein eine Rei he von Adressleitungen ao, . .. ,am_J. uber die jedes abgelegte Datenwort direkt angesprochen werden kann. Fast alle in der Praxis eingesetzten Speicher besitzen eine Adressierungsgranularität von 8 Bit. d.h.. unabh:ingig von der Registerbreite der zu Grunde liegenden Computerarchitektur verbirgt sich hinter jeder Speicheradresse stets ein einzelnes Byte. Wird die Adresse einer bestimmten Speicherlelle an den Datenleitungen angelegt. so bestimmt der Wert des read-Signals. ob der Inhalt gelesen oder beschrieben werden soll. Wird der Speicherbaustein im Lesemodus betrieben. so wird der Inhalt der Speicherlelle an den Datenleitungen outo, ... ,outn_1 angelegt. Obwohl die Daten intern fast immer byteweise organisiert sind. verfUgen modeme Speicherbausteine uber mehr als 8 Dateneingange. Auf diese Weise können nicht nur einzelne Bytes. sondern vollstandige Datenwörter auf einen Schlag gelesen oder geschrieben werden. Wird der Speicherbaustein im Schreibmodus betrieben. so wird zun:tchst der Wert der Dateneingange ino, . .. ,inn_l ubernommen und anschließend in die spezifizierten Speicherlellen geschrieben. In der einfachsten AusfUhrung besitzt ein Speicherbaustein damit die in Abbildung 8.24 dargestellte Fonn. Da der Hauptspeicher sowohl Lese- als auch Schreibzugriff erlaubt. wird er als RAM bezeichnet (Random Access Memory). In der Praxis kommen RAM-Speicher in einer Vielzahl verschiedener Varianten vor. die sich insbesondere im Hinblick auf ihre Implementierung deutlich unterscheiden. In den folgenden Abschnitten werden wir mit dem statischen Speicher (SRAM) und dem dynamischen Speicher (DRAM) die zwei grundlegenden Architekturprinzipien modemer Speicherkomponenten im Detail kennen lemen.
0000000000000000
8.3.1 Abbildung 8.24: Schema und Funkiionsweise eines primitiven SpeicherbaUSleins
SRAM-Speicher
In einem SRAM-Speicher (Static Random Access Memory) wird jedes Bit. wie in Abbildung 8.25 am Beispiel eines 4 x 4-Bit-Speichers gezeigt. mit Hilfe eines separaten asynchronen RS-Latch gespeichert.
A"d",h,,- n1 nl. ,.
"IOI"ICl"" NI
111 no '>1 -t-fl?'flO'
280
•
8 Standardschaltwerke
Schematischer Aufbau
dem Signal wert der Datenleitung inp uberschrieben. Tabelle 8.3 fasst die Ansteuerung der Speicherlelle zusammen.
word/ine
,,,---
In der Gesamtschaltung sind die einzelnen SpeicherL.ellen so in einer
,
-
::
~
:
s
:
"'::I:""
, ~
: -=-, -----------------------, •
,,,--,, ,, ,, : > ,, :, ~ ,, : + ,, , - ,, ----------------------_. Entladen
+ 1.5 V
r--:,
---ltf-ll ~ "'::I:""
:'
: -=-, -----------------------,
•
genau eine Zeile aktiviert. In Abhangigkeil des read-Signals. das alle Speicherlellen simultan versorgt wird die Zeile entweder neu beschrieben (read = 0) oder der aktuelle Inhalt der Speicherelemente auf den Datenleitungen out] bis oldo ausgegeben (read = I).
Laden
+ 1.5 V
•
Matrix angeordnet. dass jede Zeile einem einzelnen DalenwoJ1 entspricht. Als Adressdecoder kommt ein l-zu-4-Demultiplexer zum Einsatz, der in Abhangigkeit der beiden Adressleilungen udr] und adro
Speichern
,,,--,, ,, ,, ,, ,, l
ov
:
_
Abbildung 8.26: Aufbau und Funktionsweise einer DRAM-Zelle
Durch den Einsatz von Latch-Elementen halten die einzelnen Speicherzeilen ihren Zustand ubereinen beliebig langen Zeitraum aufrecht. Dieser Eigenschaft verdankt der Latch-basierte Speicher seinen eigentlichen Namen: er wird als statischer Speicher (Static RAM) bezeichnet. Mit Hilfe der SRAM-Technologie lassen sich besonders schnell schaltende Speicherelemente herstellen. die vor allem zum Aufbau schneller Cache-Speicher verwendet werden. Mit 4 bis 6 Transistoren pro Speicherbit benötigen SRAM-Zellen jedoch vergleichsweise viel Flache. so dass z.B. der uppige Hauptspeicher typischer Computersysteme nicht vollständig mit statischen RAM-Bausteinen realisiert werden kann. Stalldessen kommen dynamisclle Speicherelemente (DRAMs) zum Einsatz. die wir im n:tchsten Abschnitt einer genaueren Betrachtung unterliehen werden.
8.3.2
DRAM-Speicher
In einem DRAM-Speicher wird ein einzelnes Bit nicht mehr HInger mit Hilfe eines konventionellen Latch- oder Flipflop-Elements gespeichert. sondem durch eine kleine Ladung repräsentiert. die transistorgesteuert auf einen Kondensator aufgebracht wird. Wie in Abbildung 8.26 gezeigt reduziert sich die Komplexitat zur Speicherung eines Bits damit auf ei nen einzigen Transistor. der direkt mit den beiden Steuerleitungen word fine und data fine verbunden ist. Durch das Anlegen einer Spannung an die word line wird der Transistor durchHlssig und der angeschlossene Kondensator dadurch mit der data fine verbunden. In Abhangigkeit der an die data line angelegten Spannung wird entweder eine minimale Ladung auf den Kondensator aufgebracht oder von diesem entfemt. Ist die word fine deaktiviert. so sperrt der Transistor und die gespeicherte Ladung kann nicht mehr ungehindert abfließen. Auf Grund des begrenzten Innenwiderstand des Transistors wird der Stromfluss jedoch nicht ganzlich gestoppt und baut sich
8.3 Hauptspeichcr
281
in Fonn eines Lcckstroms langsam über den Transistor ah Damit eine DRAM-Zellc ihren Zustand über 11Ingere Zeil aufrechterhalten kann. muss deren Inhalt dahcr zyklisch ausgelesen und !"Cu beschrieben werde".
•
x I-Olips (8 StUck):
Im Bezug auf die maximal erreiehbare Schreib-- und Lesegeschwindigkeit ist die DRAM-ll-chnik der schnellen SRAM-Technik unterlegen. Auf Grund des wesentlich einfacheren Aufbaus einer einzelnen SpeicherLelle lassen sich jedoch deutlich mehr Speicherbits auf gleichem Raum integrieren und hierdurch besonders kostenökonomisch produzieren. Die DRAM-Technik eignet sich deshalb insbesondere zum Aufbau groBer Speic~r. In typischen Compulersystemcn ist der Hauptspeicher in Foml standardisierter Speichcrricgel realisiert. die sich auf der obersten Ebene in SIMMs und DlMMs unIerteilen lassen. Sind die auf ~r Vorder- und RUckseite gegenüberliegenden Kontakte elektrisch miteinander verbunden. so sprechen wir von einem Single Inline Memor)" Module (SIMM). Befindet sich auf '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·(V)·(V)
SIMM-Modul (30 Pins. 8 Bil)
X4-C1lipS (2 StUck):
,-------, , , '•••••••
1 ...o?'nn'
282
8 Standardschaltwerke
~~::_--------------------------------------------_:::~. __ .---r----------------------------------
,,
""'" adrn •1
~
" ~
~
j,
Speichermatrix
"~ ~
.·
'--r---,-,---,---,--',---------------- ----------- ,,-----+-- -.
C '?fV'lO
m·m·m
RAS/CA
s- VeTlo~run~ 'Ren
zeitspanne zwischen dem Anlegen der zeilenadresse (A1ctiVierung des RASSignals) und dem Anlegen der Spallenadresse (Aktivierung des CAS-Signals). C AS-ZUgnlfS1.eIIICA~
Verstrichene zeit zwischen der Aklivierung des CAS-Signals und dem Anliegen der Dalen. RAS-Zugnffslelllf«~
Verslrichere zeil zwischen der Aktivierung des RAS-Signals und a:m Anliegen der Daten. Die RAS-Zugriffszeit iSI die Summe aus der RASICASVerlögerung und der CU-Zugriffszeit. Erholi'.cit, die nach einem erfolgten SpclchcrLUgriff verstreichen muss, bis ein neuer Zugriff möglich ist. Minimal verstreichende Zeit zwischen zwei Speichenugriffen. Die Zykluszeil ist die Summe aus RAS-Zugriffszeit und Erhol1:eit.
Tabelle HA: Zugriffs- Ußd ZykluszeilCn eines DRAM-ZUgriffs
In·7.....n.l?7 NI 111 no '>1 ...o?'nn'
284
•
8 Standardschaltwerke
Normal-mode I
I
RAS'
:
I
I
le Speicherseite zurtlckgeschrieben und damit implizit ein vollsl:tndiger I
,
,
I
I
,
I
,
,
r---:H:
: r--r'--'--'I"TI ; '--'--' ;
CAS----;----1
: H:: I
I
I
I
,
I
,
~
I
,
,
I
Adresse~
Dme"
•
:
>:$:< : :x$:C=
Page-mode
R,,---j I
I
I
,
,
I
I
r-
,
CAS-----t""""i t -L i J t -L i J ~ ; L J ;, , I I , , I I ,
I
I
,
,
I
I
,
Adresse~ ,
,
,
,
,
I
I
,
Daten~ ~
•
Refresh-ZykJus durchgeführt. Beim Zugriff auf einen DRAM-Speicher sind die im Zeitdiagramm eingetragenen und in Tabelle 8.4 naher be-
schriebenen Zugriffs- und ZykJuszeiten unbedingt zu beachten. In der Vergangenheit wurden zahlreiche Optimierungen eingefUhrt um
die ZykJuszeit tCycle ei nes Sreicherchips zu verringern. Eine dieser Optimierungen basiert auf der Beobachtung. dass sich zwei aufeinander folgende RAM-Zugriffe in den meisten Fallen auf Speicherlellen der gleichen Sreicherseite und in vielen Fallen auf direkt hintereinanderliegende Adressen beziehen. Zur Beschleunigung erlauben die meisten DRAM-Speicher den Zugriff im Page-mode. In diesem Fall bleibt das RAS-Signal uber mehrere SreicherLUgriffe hinweg aktiviert und die Zeilenadresse damit stets die gleiche. Durch das periodische Aktivieren und Deaktivieren des CAS-Signals wird anschließend nur noch die Spalten adresse Ubertragen. Ab dem zweiten Speicherlugriff verringert sich die Zugriffszeit auf eine Speicherstelle damit von tRAS auf tCAS. allerdings mUssen alle adressierten Speicherstellen die gleiche Zeilenadresse besitzen und sich somit auf der gleichen Sreicherseite befinden.
Eine weitere Optimierung stellt der Nibble-mode dar. mit dessen Hilfe direkt hintereinanderliegende Sreicherlellen effizient ausgelesen bzw. beschrieben werden können. Hierw wird sowohl die Zeilen- als auch , " , , , , , , , "" ,, ,, ,, ,, ,, ,, Ir R...'s---,I die Spalten adresse genau einmal Ubertragen und der Spaltenadressan, , """'" teil mit Hilfe eines auf dem Sreicherchip integrierten Zahlers bei jedem CAS~ Zugriff automatisch um eins erhöht. Abbildung 8.30 stellt die verschie, , """'" Adresse =x::!D '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·nn
.
,
,
"'" "'"
'---
~ &
.I
Speiche1'Tl'l3lrix
i
~
h1l
D~(Spall"'adres ..)
Abhildutl~
H_32: Auflcilung des ChipSpeichers auf verschiedene Bllnke
In·7.....n.l?7 '?fV'lO
m·m·m
Chip-Array
- - --,,
,,
Adress
t'--"'l
Rcfresh-
Lg_rn_cr_'_';'--J=L~L:Og~i~k_~~=:::'J -.-
, _-----------,
lU5: Auf Grund der [luflretemlen LeckstrOme müssen alle Speicherseiten eines DRAM-Speichers in regelnläBigen Abstllnden ausgelesen und neu beschrieben werden.
Abbildun~
In·7.....n.l?7 t'\A 111 no '>1 ...o?'nn'
288
8 Standardschaltwerke
Des Weiteren reagieren Speicherlellen eines DRAM-Chips vergleichsweise anPdllig auf äußere StöreinflUssc. Neben physikalischen Defekten und unkompensierten Spannungsschwankungen kann insbesondere auch das Einwirken nalUrlicher radioaktiver Strahlung das Kippen ei-
nes Speicherbits verursachen. Der Grund hierfUr liegt in der sehr geringen Gesamtzahl von insgesamt500.cOJ Elektronen. die sich im Durchschnitt auf der Kondensatorplatte einer Speicherlelle befinden. Zerfallt ei n Atom z.B. auf Grund naturlicher RadioaktiviUll. so entstehen beim Zerfall Alpha-Teilchen. die hinreichend tief in die SiliziumoberfHlche eindringen und den Inhalt einer Speicherlelle verändern können. Wir sprechen in diesem Fall von einem Soft-Error. Ein Teil der Problematik ist herstellungsbedingt verursacht. da in der Chip-Produktion zah lreiche Materialien mit erhöhter naturlicher Radioaktivitm zum Einsatz kommen. Viele dieser Materialien enthalten diverse Blei-Isotope. die sich auf Grund ihrer vergleichsweise hohen naturlichen RadioaktiviUlt und der teilweise sehr langen Halbwertszeit negativ auswirken können. Durch den Einsatz von Materialien mit verringerter naturlicher Radioaktivilm konnte die Halbleitertechnik in den letzten Jahren deutliche Fortschritte verleichnen. das grundlegende Problem spontaner Bitfehler ist heute jedoch immer noch vorhanden - wenn auch in deutlich abgeschw~chter Form.
•'E
ParitlitsgenernlOT
-, :, DDDDDDDD. "i~
- -- - - - - -- - -
-i--t-I-{--t-i--t-I-{--J ParitJitspnlfer
00000000
Fehler
Abbildung 8.36: Absicherung der gespeicherten Dalenwörter durch zuslllzliclr Paritälsbits
Um das Risiko eines Soft-Errors abzuschwächen. werden in Systemen mit sehr hohen Zuverl:lssigkeitsanforderungen Speichermodule eingesetzt. die mit fehlererkennenden bzw. fehlerkorrigierenden Codes arbeiten. Die einfachste Variante fehlererkennender Speichermodule sichert die gespeicherten Daten mit einem zusätzlichen Paritätsbit ab. Im Zuge ei ner Schreiboperation wird jedes Datenwort um ei n oder mehrere Prufbits ergänzt und zusammen mit den Datenbits im SpeicherabgelegL Bei jeder Leseoperation werden die Datenbits gegen die PariUltsbits abgeglichen und ein erkannter Bitfehler durch das Setzen eines speziellen Fehlersignals angezeigt. In typischen Systemen wird durch ein Fehlersignal ein Intenupt ausgelöst und damit eine spezielle Routine des Betriebssystems aktiviert. Abbildung 8.37 zeigt die Pin-Belegung eines PSI2-SIMMs mit Parit:ttsUberprtlfung. Im Gegensatz zu dem in Abbildung 8.31 beschriebenen Speicherriegel enthalt der SIMM einen zusmzlichen Speicherchip. der rur jedes Byte der 32 Bit breiten Datenwörter ein separates Paritätsbit speichert. Die hierfUr zusätzlich benötigten vier Datenleitungen si nd auf den Pins 35 bis 38 (Signale DQ33 bis DQ36) nach außen geruhrt. Sind die Daten durch Paritätsbits abgesichert. so kann ein einzelnes gekipptes Bit zwar sicher erkannt. jedoch nicht korrigiert werden - die
8.3 Hauptspeicher
289
~~
~
~,
,
,,,
2
DQO
, 00" "" " 00' ,• 00" " •7 00" "" , "'" " '" • 00" " 'rr " " " •• " " " DQ7
" " " "" "
" " "" '" " "'" "" " " """ DQO " TI
-
ßm
"'"""" """ ,,, ""so c"'" " .. CM2 " 'rr ., cm ",.. " .. "" " os " " "'" "'" " oe ""
.. ;12
.....
- - .. DQS
"..
00" DQO DQ25
00"
""" 00"
CAS'
.
DQ27
00"
.
""" 'rr
DQ"
.
"
"" .." " '"" "
.. 77
00" 00'" 00" 00" 00" pm pm pm PO"~
,,,
Abbildung 8.37: Pin-8ek'gung eines 72~Bit PSI2-SIMM-Moduls mit ParitatsUberpr1lfung
Parity-Bits liefern nicht genug Infonnationcn. um die fehlerhafte Bitstelle zu lokalisieren. Abhilfe schafft die Verwendung von fehlerk.orrigierenden Codes. mit deren Hilfe ein \'erftllschtcs Bit nicht nur erkannt. sondern auch dessen Position bestimmt werdln kann. Der bekannteste Venreter dieser Kategorie ist der Hamming-Code 135. 36). Der Hamming-Codc eines 32 Bit breiten Datenwons wird durch
das HinzufUgcn \'on 6 zuslUzlichcn Prülbits erLeugt. Die Wene der Prüfbits werden durch die gczielte XOR~Verknüpfung der Datenbits so bestimmt. dass der resultierende Code eine Hamming-Distanz von 3 erreicht. Dies bedeutct. dass mindestens drei Bits kippen müssen. um aus einem gültigen C()(k.'Wort ein anderes gültiges Codewort zu erLeugcn. Insgesamt lassen sich hierdurch alle Einfachfehler korrigieren und alle Zweifachfchlcr zumindest noch erkennen. Fehlerkorrigicrcodc Spcichcrmodulc \'CrfUgen oft über eine erweitertc Refrcsh-Logik. Nach dcm Auslesen einer Speicherseite werden die Datenwörter mit Hilfe der Prutbits auf etwaig vorhandene Bitfehler getestet und gegebenenfalls die Position der verfälschten Bits bestimmt Anschließend werden die gekippten Bits korrigiert und die bereinigte Speicherseite wieder zuruckgeschrieben. Hierdurch wird der ohnehin notwendige Speicher-Refrcsh zu einern Korrcktur-Refresh erweitert. der die Haupts~icherit1legritIH permanent aufrechterhält. Abbildung 8.38 fasst die als Scrubbing be".cichnete Technik nochmals grafisch zusammen.
Chtp-Arny
Rcfresh-
gcnerator
Logik
D Dalel1biü •
KorrcklUrbilS
Ahhildun~ 8.38: Mit Hilfe der ScrubbingTechnik werden gekippte Bits mit jedem Refresb-ZykJus wieder konigien.
A"dih·
n":l
fl'> '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7CI
.J&J-L '------' n
I>CI
q,
q,
>CI
q,
q,
a) Stcllen Sie die Obcrgangstalx=llc auf und vergewissern Sie sich. dass die Schaltung latsll.chlich einen Zähler implementiert. b) Welche Laufzeit- und f-lächcnkomplcxit:l:t besitzt die
Schaltung~
c) [st es möglich. die Laufzcitkomplcxitäl des Zählers zu verbessern. ohne die RächcnkomplexitlU zu \'Crschlechtcrn~
, ....
Gegeben sci das folgend:: Schaltwerk:
Aufgabe 8.4 Webeode 8239
-
IJ >CI IK
'"
L q,
IJ I>CI IK
..-1
&J-L \-
q,
IJ I>CI IK
q,
a) Analysieren Sie die Hardware-Schaltung. indem Sie zunacIJst die Obcrgllngstllbclle crlcugen und ansch lieBend in einen endlichen Automaten Ubcrsclzen. b) Em'citem Sie die Schaltung um eine Resct-Leitung rSI. mit dcr sich der Zustand aller Flipflops auf 0 zurucksclzen lässt.
A"dih·
n":l
fl'> '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'nn'
292
Aufgabe 8.5
8 Standardschaltwerke
Gegeben sei das folgende Schaltwerk:
"""
Webeode
B4n -
&
n
>e,
n
I ~ >1l-f >e, &
h
-
cl' q,
q.
a) Stellen Sie die Übergangslabeile auf und konstruieren Sie daraus anschließend einen endlichen Automaten.
b) Welche Funktion implementiert die Schaltung? Welche Aufgabe besitzt das Eingangssignal a?
Aufgabe 8.6
Gegeben sei das folgende Schaltwerk:
"""
Webeode
8912
"'" !?Cli.. .
SRG4
~
?-Cli.....
~
-
L VA
~ I>e, w
cl'
a) Simulieren Sie das Verhalten der Schaltung fUr die nachsten vier Takte. Nehmen Sie dabei an. dass das linke bzw. rechte Schieberegister mit dem Wert 0110 bzw. 1011 hefUlIl ist. b) Welche Funktion implementiert die Schaltung? Welche Bedeutung hat der Wert des D-Flipflops am Ende der Berechnung?
293
8.4 Obungsaufgaben
Konstruieren Sie einen seriellen 4-Bit-Addicrer. der in jedem Takt ein einzelnes Bit addiert.
Aufgabe 8.7 ,,-~
a) Wie kann der serielle Addierer auf möglichst einfache Weise zu einem kombinierten Additions- und Subtraktionswerk erweitert werden? Die auszulUhrende Operation soll über eine zuslUzlictc Eingangslcitung sub gesteuen werden.
ib
Webcode
8982
b) Wie viele zusätzliche Galler bcnöligtlhre Lösung und wo werucn diese platziert?
Auf dem in Ihrem Pe verbaulen Spcichcrricgel enldecken Sie das folgende Typcnschild:
( 1GB 1Rx4 PC2-32OOR-333-11
....
Aufgabe 8.8
,
Webcode
J
8223
a) Handeil es sich um einen SlMM- oder um einen DlMM-Bauslein? b) Wird das Modul ein- oder zweinankcngcslcuert beirieben? c) Wie groß ist die ZugrilTsl.cit tRAS? d) Mit wie vielen SpcichclThips ist das Modul aufgebaut?
Die Wahrscheinlichkeil p, dass der Zustand einer DRAM-Spcicherl.Clle durch den Einfall eines Alpha-Teilchens gekippt wird, sei in elwa
, ....
Aufgabe 8.9 Webeode
(8.5)
8007
In welchen Zeilr'.-Iull1en mUssen Sie durchschnittlich mil einem fehlerhaflen Bit rechnen, wenn das bclmchtele Spcicherrnodul eine Kapazität von a) 16 MByte,
b) 256 MByte bzw. c) 2 GByte bcsilZl~
A"dih·
n":l
fl'> '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'fln'
294
Aufgabe 8.10
"""
Webeode 8128
8 Standardschaltwerke
Im Folgenden seien DRAM-Bausteine der Organisation 16 x 4 MBit gegeben. Die ZykJuszeil betrage 50 ns. a) Wie viele Speicherseilen besitzt ein einzelner DRAM-Chip? b) Nehmen Sie an. dass eine Speicherlelle alle 50 ms einen Refresh benötigt. um ihren Zustand zu wahren. Wie viele Refresh-Zyklen muss der Speicherehip in einem einzigen
50-ms-~nsler
durchfUhren? Wie lange ist der Speicherehip prozentual mit dem
Refresh von Speicherlellen besch:tftigl? c) Mit den gegebenen DRAM-Chips soll der Hauptspeicher fUreine 32-Bil-CPU realisiert werden. die tibeT 32 Datenleitungen do, ... ,d3J und 24 Adressleilungen ao, ... ,a25 verfUgt. Wie groß kann der Hauptspeicher maximal geWählt wenlen? d) Wie viele DRAM-Bausleine werden zum Aufbau des in c) beschriebenen Speichers benötigt? Wie mUssen die Adressleitungen auf die einzelnen Speicherchips aufgeteilt werden?
9 Register-Transfer-Entwurf
In diesem Kapitel werden Sie ... • mit der Register.Transfer-Ebene eine abstraklC Entwurfscbcl'c kcnllCn kmco. • d)j: Aufgabcnteilung zwischen Steuer- und Opcrationswcrk vCrslchcn. • erlernen. fcst verdrahtete Steuerwerke zu entwickeln.
• in der Mikroprogrnmmierung einen alternativen Implcmcmicrungswcg erkennen.
A"dih·
n":l
fl'> '?fV'lO
m·m fVl
_ 11 n.L ,. "IOI"I(l " " t'\II 111 no
(-Tmn,fer-Ebene
Galterebene
TransislOrebene
•
Software:
Objektorienlierung
}
1 ...o?'nn'
298
9 Regisler-Transfer-Entwurf
Externe Steuerleitungen
implementierung laufen die drei beschriebenen Phasen nahezu gleichzeitig ab. da es sich bei den Funktionseinheiten um rein kombinatorische Elemente handelt. Wie das 810ckschallbild in Abbildung 9.2 bereits erkennen IHsst. kann
Statusvana eIl Steuerworl
l. " "IOI"ICI fl'> f\II 111 no "1 ...o?'nn'
314
•
Direkte Kommunikation
10 Mikroprozessortechnik
Zun:lchsl wird der Orerand x aus dem Speicher- in diesem Fall aus der
Speicherslelle 14 - eingelesen und danach mit der Zahl 0 verglichen.
Fallt der Test positiv aus, werden die nachfolgenden Befehle Ubersprungen. Andernfalls wird der Operand y aus dem Speicher eingelesen. um ei ns erhöht und wieder inden Speicher zuruckgeschrieben.
Wie das kleine Beispiel zeigt kommt der Kommunikation mit dem Speicher eine zentrale Bedeutung zu. Insbesondere mUssen. wie in Abbildung 10.2 gezeigt. die folgenden Informationen ausgetauscht werden: •
Indirekte Kommunikation
• Adressinfomlation: In unserem Beispiel mUsscn die Adressen (14) und (15) an den Speicher gesendet werden. Die Kommunikation ist unidirektionaL d.h.. sie findet nur in eine Richtung statt. • Dateninformation: In unserem Beispiel werden die Operanden x und y vom Speicher in die CPU und der neue Wert der Variablen y von der CPU in den Speicher Ubertragen. Die Datenkommunikation findet also bidirektional statt.
Abbildung 10.3: Direkte und indirekte Kommunikalionsstrntegie im Vergleich
• Kontrollinfonnation: In unserem Beispiel sind die ersten bei den Zugriffe auf den Speicher lesender Art und der dritte Zugriff schreibender Art. Um den Betriebsmodus richtig zu steuern. kommuniziert die CPU uber zahlreiche Steuersignale mit ihrer Außenwelt. Neben dem Speicher existieren weitere Komponenten. mit denen die CPU einen regen Informalionsaustausch pflegt. HiefLU zahlen etwaig vorhandene ROM-Speicher genauso wie diverse Eingabe/Ausgabebausteine (Input/Output. kUfl //0). So werden unter anderem die Schnittstellen. die ein Rechnersystem mit der Außenwelt verbinden. uber spezielle I10-Baustei ne gesteuert und von der CPU auf die gleiche Weise angesprochen. MUssen Daten zwischen mehr als zwei Komponenten ausgetauscht werden. so lassen sich zwei prinzipielle Kommunikationsstrukturen unterscheiden. die in der Praxis auch in gemischter Fonn auftreten: • Direkte Kommunikation In diesem Fall existieren. wie der obere Teil von Abbildung 10.3 zeigt. separate Kommunikationswege zwischen allen Komponenten. Diese Art der Anbindung bietet sich immer dann an. wenn ein hoher Datendurchsatz im Vordergrund steht. Auf der negativen Seite steigt die Anzahl der Kommunikationswege quadratisch mit der Anzah I der verbundenen Komponenten an. so dass die entstehenden
In I Elemente eines Mikrorechners
315
.fiI} : : .:. . C1'U
.:
_
Peripherie
:.
\.;:::::.
...
•
Abbildung 10.:1: Typischer Aulbau eilrS prozessorgesteuenen Mikrorechners
•
L
Hardwarc-Ko~en in der praklischcn Umsetzung schnell zu einem limitierenden Faktor werden.
• Indirekte Kommunikation Anders als bei der direkten Kommunikation sind die Transponwege zwischen den einzelnen Komponenten nicht separat ausgelegt. An die Stelle direkter Verbindungen tritt ein zentraler Transportweg. der alle Komponenten miteinander verbindet und von diesen zur Kommunikation gemeinsam genutzt wird. Es entsteht eine BI/sTopologie. die im unteren Teil von Abbildung 10.3 skizziert ist. Jeder Bus entspricht im Grunde genommen einem verteilten Multiplexer. auf den die angeschlossenen Kompol~nten - die so genannten BllsKnotetl - lesend oder schreibend zugreifen kÖlll~n. Der große Vorteil der Bus-Topologie besteht in der flexiblen Erweilerbarkeil. schließlich kann der Bus im Prinzip um eine beliebige Anzahl zusätzlicher Knoten ergänzt werden. Da jedoch immer nur maximal ein Bus-Knoten auf den Bus schreiben kann. Ohl'Ml die transportierten Daten zu zerstören. wird der Bus schnell zum Flaschenhals der rechnerintemen Kommunikation. Die klassische Von-Neumann-Architektur sieht rur die rcchr'Mlrintemen Transponwege eine Bus-Topologie vor und folgt damit dem Paradigma der indirekten Kommunikation. Abbildung 10.4 fasst die entstehende Kommunikationsslruktur innerhalb eines Von-Neumann-Rechners in Form eines Blockschaltbilds zusammen. Wie aus der Darstellung hervorgeht. existiert mit dem Daten-.
A"dih·
n":l
fl'> '?fV"lO
m·m m _ 11
fl'> '?fV"lO
m·m·m
In·7....n.l?7'ing idea lhal simplified 11 number of engineering 1If1(/ progmmming problems Ihm exisled lhen, Allhough Ihe condilions Ihm produced ilS IIrchitecrure have changed radically, ,,'e nel'erlheless still idemify Ihe notion of "compuler" Wilh Ihis lhirly ye/lr old concepl. /n ilS simplesl form, /l \'On Neumllnn compuler h/ls lhree P/lrls: /l central processing unit (or CPU), a SfOre, /lnd /l conneeting ruhe Ihm clln IransmillIsingle word beiween lhe CPU /lnd Ihe slore (lind send IIn lIddress fO Ihe slOre). / propose lo C1111 Ihis mbe Ihe von Neumllnn bonleneck. The fIIsk of 11 program is fO dUlnge Ihe store in /l major way; when one considers Ihm Ihis lask must be accomplished emireIy by pumping single woros back andforlh Ihrough Ihe von Neumllnn bOllleneck, lhe reasonfor ilS name becomes delir. " J, Backus, 1978
10.1.2
Aufbau der CPU
Das Blockschallbild in Abbildung 10.5 skizziert den internen Aufbau ei nes Mikroprozessors. Auf der obersten Ebene 1:tsst sich ei ne typische CPU in Registersatz, Steuen~'erk und Reclrenwerk unterteilen: • Das Steuerwerk ist gewissermaßen die Kommandobrtlcke der CPU und übernimmt die Aufgabe, den Kontroll- und Datenfluss zu überwachen und den korrekten Datentransport zwischen den Registern, dem Rechenwerk und der Außenwelt sicherLUstellen. Wird ein Maschinenwort in die CPU geladen, wird es zun:lchst vom Steuerwerk mit Hi Ife des Jnstruktionsdecoders analysiert und anschließend in eine Reihe von Steuersignalen übersetzt, die den weiteren Ablauf der Befehlsabarbeitung beeinflussen. Vergleichen wir die Steuerwerke verschiedener Prozessoren, so unterscheidet sich deren Implementierung mitunter erheblich. In der Prax:is kommen sowohl Prozessoren mit mikroprogrammierten Steuerwerken als auch Prozessoren mit fest verdrahteten Steuerwerken zum Einsatz. • Die eigentliche Verarbeitung der Daten geschieht in Rechenwerken, die sich je nach Prozessortyp in ihrer Komplexit:ll erlleblich unterscheiden. Angefangen bei kleinen Prozessoren, die neben einem einfachen Akkumulatorregister keine weiteren arithmetischen
In I Elemente eines Mikrorcchners
317
"!tImh'"
I
IIM;:-·I
~\ ..
Rcgis&etsalZ
S~,
I nsuuklions~ »bio,
~
~ ~ ~
s.~
-
~
N
register taek-Repler Stack poinlet)
~ ~
~
···-
Red.enwerk
Uni,'ersa]register I Uni,'ersa]register 2 l)ni,.ersa]register 3
G
I~L
~ Abbildun~
Uni...ersaJregister
---
=I
CPU
•
\:::.:::.\"
._Hil®isl:er
111
---
11 l'%h:"
111
10.5: Die innere Struktur eines typischen Mikropmr.essors
Funktionscinheiten besitzen und damit ausschließlich die Addition zwcier Binärtahlcn nativ berechnen könncn. reicht die Spannweitc bis hin zu komplexen Signalprozessoren. die uber umfangreiche arithmetisch-logische Einheitcn mit mchreren parallel ausgelegten Operationscinheiten verlUgen. • Die Register einer CPU lassen sich grob in Universal- und Hilfsregister einteilen. Universalrcgister dienen zum Zwischenspeichern von [}dtenworten und können mit beliebigen Werten befUlll werrkl!1. Aus theoretischer Sicht ist ei n einziges Universalregister völlig ausreichend - insbesondere Ulsst sich jedes Assembler-Programm. da~ mehrere Universalregister verwendet. durch ein funktional :lquivalentes Progrdl11lll ersetzen, das mit einem einzigen Universalrcgister auskommt. In diesem Fall mUssen die in den Zllsmzlichen Universalregistern vorgehaltenen Zwischenergebnisse in den Speicher ausgelagert werden, was einen drastisch erhöhten Datentransport zwischen Speicher und Mikroprozessor zur Folge hat. Mit zunehmender Komplexität der entwickelten Mikroprozessoren hat sich auch die Anzahl der Uni"ersalregister im Laufe der Zeit sukzessiv erhöh\. Sie liegt bei heutigen Prozessoren typischerweise im zweistelligen Bereich.
A"dih· ll":l fl'>
'?fV)Q
m·(V\ m _ 11
fl'>
'?fV)Q
m·(V\·m
In·7.....n.l?7 NI 111 no '>1 -t-fl?'llll'
318
10 Mikroprozessortechnik
start:
11 11 11 11
LDA f l
,-, ,-,
ADD ADD ADD f l
,
A A ~ 0 A =-1 A ~ 0 ~
-CL
•
LDA
'1
o
0
o
Statusregister
ADD '-1
ZercrBit
•
ADD '-1
ZercrBit
•
ADD f l
ZercrBit
Abbildung 10.6: Mit Hilfe des Slatusregislers lassen sich Infomrntiolrn über die zuletzt ausgefüh.rte arithmetische Operation
auslesen
ne besondere Bedeutung. In nahezu allen Mikroprozessorarchilekturen lassen sich die folgenden Hilfsregisler in der ein oder anderen Form wiederfi nden: • Der lnstrllktionszähler (pe-Register) enlh.:tll die Speicheradresse des n~chsten auszufUhrenden Befehls. Zum Laden des n:lchsten Befehls wird der Regislerinhalt zur Adressierung des Hauptspeichers verwendet und anschließend um eins erhöht. Insbesondere wird an
dieser Stelle klar. wie Sprungbefehle innerhalb der CPU ausgeführt werden. Ei n Sprung an eine feste Speicheradresse ist durch das einfache Überschreiben des PC-Registers realisierbar.
ZercrBit
•
Im Gegensatz zu den Universal registern besitzen die Hilfsregisler ei-
• Das Statusregister (SR) wird vom Rechenwerk beschrieben und enth:tlt zahlreiche Statusbits. die Aufschluss uber das Ergebnis der zuletzt durchgeführten arithmetischen Operation geben. So signalisiert z.B. das Carry-Bit C. ob im Rechenwerk bei der Ausführung der letzten Operation ein numerischer Überlauf verursacht wurde. Das Zero-Bit Z ist genau dann gleich L wenn das berechnete Ergebnis gleich 0 ist. und das Negatire-F/ag N ist genau dann gleich L wenn als Ergebnis eine negative Zahl berechnet wurde. In den gängigen Prozessorarchitekturen wird das Statusregister insbesondere zur Realisierung bedingter Sprunge eingesetzt. Dal. " "IOI"ICl n.Q?QR1MflRQrlQ1 h1~..n 7...-.tN>l. " "IOI"ICl " " f\II 111 no '>1 ...o?'nn'
324
10 Mikroprozessortechnik
0
I
I
'!: IlnsbU~ti r-
'- ['--
,
d _ ~
j
j
cl' ,;
Steuerwerk
f--
,
__ ml
0
AkkurnulalOT
-1,,
_____ J
-----------------------------
A
________ J
1, ,
_.
~c/k,
--
~clk, \1."e
--
~/k --------------"1z le _, C, n
c
e, /d, sub -----------------.
------------------------------------
----------- --clk, SO' sI
I
Daten-
Befehls-
RAM
RAM
;, t
t
,, , ________ 1
IN I St1tusregister I:::
lnstruktionszlihler ________.1 a:2 I (Progrnm Counler)
I
0
~
-----------m2 ._-------------------------------------------------] _
Dalenleitungen
_
Steuersignale
f) Dalenbus (Schreibrichlung)
_
Stalussignale
8
ODalenbus (leserichtung) Adressbus
Abbildung 10.11: Schematischer Aufbau unseres MooellrechJrrs
Neben dem Akkumulator ist der Hauptspeicher abgebildet. der entsprechend unserem Instruktionsformat zweigeteilt ist. Wahrend die linken vier Bits den Befeh lsoperanden repräsentieren, codieren die rechten vier Bits den auszufUhrenden Befehl. Der RAM-Speicher ist asynchron ausgelegt so dass zu jedem Zeitpunkt der Inhalt der tiber den Adressbus ausgewählten Speicherlelle auf dem Datenbus anliegt. Um die Implementierung des Datenbusses in unserem Modellprozessor so einfach wie möglich zu hallen, ist er nicht bidirektional konzipiert. Staltdessen werden beide Transportrichtungen durch zwei separate Busse implementiert, die jeder fUr sich unidirektional arbeiten. In jedem Takt fUhrt die Modell-CPU genau einen Maschinenbefehl aus. Zu Beginn eines TaktzykJus muss der Adressbus so beschallet sein, dass die nächste auszufUhrende Maschineninstruktion auf dem Datenbus liegt. Mit der positiven Taktflanke liest die CPU das Maschinenwort ein, indem die oberen vier Bits in das Datenregister DR und die unteren vier Bits in das Instruktionsregister IR ubernommen werden.
10.2 Ein cinfllchcr MO(~llprozcssor
325
DllS lnstruktionsrcgistcr ist direkt mit dem InsrruklionsdecoJer vcrbunden. dcr das llnkommcndc Bitmustcr analysien und aufschlUSseI!. Dic Ausgange dcs Instruktionsdccodcrs wcrden in das Stcucrwcrk geruhn und don in entsprechende Stcucrsignllie rurdie BefehlsausfUhrung ubersetzt. Zur Ausruhrung des decoclicnen Befehls muss die CPU die folgenden Steuerungsaufgabcn erledigen:
• Ansteucrung des Akkumulators In Abhängigkeit des aUSlufilhrenden Befehls müssen die Steucrleitungen des Akkumulators so gesetzt werden. dass der Registerinhalt erhalten. Ubcrschrieben ockr akkumuliert wird. Der Betriebsmoclus des Akkumulators win! vom Steuerwerk über die heiden Signalleitungen e und c eingestellt. Olx:r die dritle Signalleitung sub legt das Slcucrwerk fcst. ob das Additionswerk die Summe oder dic Differenz der angelegten Operanden berechnet.
Im direkten Vergleich mit unserem ein· fach strokluriencn ModeJlprozessor. der jeden Befehl in genau zwei AusfUhrungs. phasen abalbeitet. sind die Sieuerwer· ke realer Prozessoren deutlich komple. xer ausgelegt. Insbesondere Prozessoren mit mllchtigen Befehlssätzen erfordern die zerlegung eines Befehls in eine ganze Reihe sequenziell zu durchlaufender Phasen. ZU diesem Zweck enthalten Steuerwerte oft eifl'n so genannten Mehrpha$elllaJ.:lgeber ($equellcu). der das Thktsignal clk als Eingabe entgegennimmt und auf 11 Ausgangsleilungen dk], ... ,c1k,. \'eneilt: clk
JiJi.Ji..Ji.... l"""":""'~~~~~l"""":""'~~
clkl....J :
L.....l......L. : L.l....l...-
clk.,: :."'" ,• : : : : :
• Anslcucrung des Instruktionszählers Ncben der Anstcucrung des Rechcnwerks muss das Sieucrwcrk in jedem Takt den Inhalt des Instruktionszahlers in Abhangigkcit des auszuruhrendcn Befehls \'Crändcm. Das jeweilige Verhalten des Zahlers bestimmt das Steucrwerk Ubcr die beiden Signal leitungen Cl und C2. Eine rein st'C(ucnzielle BefehlsausfUhrung wird erreicht. indem der Zähler sukzcssive um eins erhöht wird. Direkte und indirekte Sprtlnge lassen sich ebenfalls einfach abbilden und entsprechen dem Laden bzw. dem Akkumulieren des Instruktionszahlers. Das Beschreiben des Registcrs erfolgt in unserem ModellrechflCr synchron zur negativen Taktllankc und damit 7..eitgleich mit dem Beginn der Ausfuhrungsphasc. Auf diese Weise ist sichergestellt. dass der nächste auszuruhrcndc Befehl zu Beginn des nächsten Taktzyklus bereilS auf dem Datenbus liegt.
clkl
, ~ .... rn·····, r • • • •
:
: • : • :
•.•••• r-t-1 •••• clk~ j j j j j j I : I j j j j
Der Mehrphasentaktgeber kann durch die Zusammenschaltung eines BinarzahJel5 und eines Demultiplexcl5 auf einfache Weise implementiert werden:
• Durchschallcn dcr korrcktcn Tmnsportwege Der Dalcnlluss inncrhalb der CPU wird Uber zwei Mulliplexer gcsleuert. Dcr crslc Mulliplcxer ist dem Daleneingang des Akkumullltors vorgcschallcl. [SI das Sleuersignal In] gleich O. so werden die Dllieneingängc des Akkumulators direkt mit dem Datenbus verbunden. Wird das Slcucrsignal In] slaltdessen auf 0 gesetzt. so beziehl der Akkumulator die Daten direkt aus dem Datenregister. Der zwcite MUltiplexer steuert die Bcschaltung des Adressbusscs. Ist das Steuersignal 1t12 gleich O. so wird der Inhalt des Datenregisters auf den Adressbus gclegt. Wird In! auf I gcsetzt. so wird dlr Speicher Ubcr den Insllllktionszahier Pe adressien.
A., '?fV'lO
m·m·m
In·7.....n.l?7 t'\II 111 no '>1 ...o?'nn'
328
10 Mikroprozessortechnik
// // // // // // // // // //
Beispielprogramm ,ur Berechnung de< Multiplikation
0,
init: LDA fO begin: STA (15) LDA (13) BRZ t6 // end: SUB f l STA (13) LDA (15) ADD (14) JMP 1 // begin: end: END
"
2,
3, 4, 5, 6, 7, S, 9,
Eingabe: (13) Multiplikator (14 ) Multiplikand
Als letzten Befehl enthalt das abgebi Idete Programm den Makro- Befehl END. Hintereinem Makro verbirgt sich kein Befehl im eigentlichen Sinne. Stattdessen handelt es sich um eine rein syntaktische AbkufLUng.
d.h... jedes Makro sieht stellvertretend lUTein oder mehrere Maschinenbefehle und dient lediglich zur Schreiberleichlerung. In unserem Bei-
spielprogramm ist das Makro
~
: END
Ausgabe: (13) (15) ~
Abbildung
10.13:
•
(14)
Ein Maschinenpro-
gramm zur Ausfüh.rung der Multiplikation in der Sprache unserer Modell-epU
'15 : JMP
definiert. Der Sinn und Zweck dieses Befehls ist es. die CPU am Ende eines Programms in eine Endlosschleife zu versetzen und damit die sequenzielle AusfUhrung der CPU effektiv zu stoppen. Tabelle 10.2 demonstriert. wie das Beispielprogramm Schritt fUr Schritt in unserer Modell-CPU abgearbeitet wird. FUr jede Phase der BefehlsausfUhrung enthalt die Tabelle die aktuelle Belegung der internen Prozessor-Register. des Daten- und Adressbusses sowie die Inhalte der relevanten Speicherlellen. In dem abgebildeten Beispiel sind die Speicherlellen 13 und 14 initial mit den Werten 2 und 3 befUllt. Nach 2 Schleifeniterationen steht der Ergebniswert 2 x 3 = 6 in Speicherlelle 15 und das Programm terminiert. Mit unserem erworbenen Wissen uber die interne BefehlsausfUhrung unseres Modellprozessors sind wir in der Lage. uns der Detailimplementierung der verbleibenden Komp:menten zuzuwenden. Abbildung 10.14 stellt die Hardware-Umsetzung des Instruktionsdecoders dar. Das zweistufig ausgelegte Schalt netz enthalt vier Eingangsleitungen d 3 , ... ,do. die direkt mit dem Datenbus der Modell-CPU verbunden sind. Das Bit-Muster der anliegenden Maschineninstruktion wird mit Hilfe der kombinatorischen Logik analysiert und im Sinne einer OlleHot-Codierung eine der Ausgangsleitungen aktiviert. Wie das Strukturbild zeigt. verfUgt der Decoder fUr die Befehle LDA. ADD und SUB jeweils nur uber eine Ausgangsleitung. Um die beiden zur VerfUgung stehenden Adressierungsarten dieser Befehle zu unterscheiden. wird im Falle der indirekten Adressierung die zusatz lieh vorhandene Ausgangsleitung ind auf 1 gesetzt. Als Nachstes wenden wir uns der Konstruktion des Statusregisters zu. Wie die Implementierung in Abbildung 10.15 zeigt. halt das Register fUr jedes Statusbit ein D-Flipflop vor. dessen Wert sich aus dem aktuellen Inhalt des Akkumulatorregisters berechnet. Das Statusregister wird
A"d",h,,- n1 nCl
x," x, x, /'
L Y, Y, Y, Y,
..
__ ,,- d
J
----_:"-
0
".
I
;,
"
"I", I-I--
Abbildung 10.1 ,: Das AldcumulalOm.'gister unseres M~llrechnel5
belle 8.1 sowie Abbildung 8.23 entnehmen Der Hauptspeicher wird in Foml eines SRAM-Speichel5 implemenlien. Um zu venncidcn. dass im !-alle des Beschreibens auf Grund unterschiedlicher Signallaufzcilen die falsche SpeicherLeIle adressien wird. \'elWendcn wir einen Speicher. der im Lcscmodus (we = 0) asynchron. im Schreibmoclus (we _ I) dagegen synchron arbeitet. Eine Speicher7.elle wird genau dann beschrieben. wenn das Write-Enable-Signal we während der negativen Taktnanke gleich I ist. [m asynchronen Lcsebctrieb bleibt der Wen des Taktsignals dagegen ohne Bedeutung. Auf den in Kapitel 8 geleisteten Vomrbeiten aufbauend können wir fUr jeden Befehl die Beschaltung der Steuerleitungen fUr Akkumulator. Rechenwerk. RAM sowie die bciden Multiplexer ableiten. Das Ergebnis ist in Tabelle 10.3 zusammengefasst und wir erhalten tur die Ausgangssignllle des SteuclWerks die folgenden booleschen Gleichungen: •
Akkumulator
,
A"dih·
n":l
Ida V add V sub
(10.1 )
Id
Id(l
(10.2)
sub
sub
(10.3)
fl'> '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?7 t'\A 111 no '>1 -t-fl?'nn'
332
10 Mikroprozessortechnik
Statusvanabien
Akkumulator
'ama'
Ladephase (Fetch) c!k = 0
o
.". -,.'0. .. -R-!J-
Mu_
0 0
M'M
·IJ~· -Mt-
o
o
Ausftlhnmgsphase (Decode + Execute + Wnte) c!k = I
.~[l.
-10-1111-
MultIplexer
0
0
I
0
0
I
I
0
0
0
I
0
I
-,ind
0
I
0
0
-,ind
I
0
0
-,ind
0 0
0
I
I
0
0 0
0
0
0
0
0
I
0
0
I
0
I
0
0
0
0
0
0
0
I
0
0
0
0
0
0
0 0 0
Taoclle 10.3: Beschallung von Akkumulator, Instrnktionszilhler, RAM und Multiplexer durch das Steuerwerk
•
Instruktionszahler (Pe)
" '0
•
(brz Az) V (brc Ac) V (brn An) V jmp
(10.4)
jmp
(10.5)
"a
(10.6)
RAM lI'e
•
Multiplexer (10.7) (10.8)
Die Beschaltung derTakteingange der verschiedenen Komp:menten ergibt sich direkt aus der Aufteilung eines TaktzykJus in zwei separate
AusfUhrungsphasen. Auf den Speicher wird im Schreib modus wahrend der negativen Taktflanke zugegriffen. Deshalb wird das Taktsignal c1k vom Sleuerwerk invertiert an den Hauptspeicher weitergereichL Das
10.2 Ein einflIcher
MO(~llprozessor
333
Uktgeber , ,,
.,",'\:J
~li:b;·b:e·i;;·i·:;'·;;'·b·1~~-id,;-;;;';i;,;jl .~
.. .. ..... .-
--- --
, I'l : , '?fV'lO
m·m m _ 11
fl'> '?fV'lO
m·m·m
In·7.....n.l?7 '?fV'lO
m·m m _ 11
ll'> '?fV'lO
m·m·m
In·7.....n.l?71 -t-fl?'llll'
342
11 Rechnerstrukturen
Befehl
ben zwei Offsel-Werten - den so genannten Displacements -einen skalierbaren Index mit einbezieht. Zun:lcbsl wird der Instruktionsoperand
Adresse
Offsct 1
Adresse
um den ersten Offsei sowie den skalierten Index-Wert erhöht. Das Ergebnis wird als Speicheradresse interpretiert und der Inhalt derentspre-
Index
OfTsct 2
ehenden Speicherstelle eingelesen. Erst die anschließende Addition des
zweiten Offsets auf den eingelesenen Wert ergibt schließlich die Speicheradresse des Operanden.
1,2,4,8
Abbildung 11.4: Beispiel einer komplexen elSe-Adressierung. Abgebildet ist die speiclrrindirekte Adressierung mit lweifachem Displacemefll, wie sie die MC680xOProzessorenfamilie von Motorola zur VerfUgung stellt.
Im Laufe ihrer Entwicklung haben sich die Befehlssatze moderner CISC-Prozessoren immer weiter spezialisiert. Typische Beispiele dieser Kategorie sind die Befehle zur schnellen Stnng-Manipulation. wie sie von allen x86-kompatiblen Prozessoren bereitgestellt werden. Mit Hilfe dieser Befehle ist es unter anderem möglich. fUr einige Routinen der C-Bibliothek kompakte Implementierungen zu erleugen. So l:isst sich die Arbeitsweise der Funktion void* memcpy (void* dst, void* src, size t n); auf Assembler-Ebene wie folgt abbilden: eLD
MOV ESI, MOV EOI, MOV ECX, REP
~
I" t g
~
~
500;"
•
• E
~
, •" " I ~ • .2
:§
.~ g
~
.~
•
25%
10%
9%
5%
1%
Abbildung 11.5: Verteilung der Auftrittswahrscheinlichkeit verschiedener CISCBefehlsgruppen
MOVSB
[srcl [dstl [" l
// clear direction flag // init ESI for MOVSB // init EDI for MOVSB // init EeX for REP // trigger hardware loop
Zun:lchst wird mit Hilfe des cLo-Befehls das Directioll F/ag DL gelöscht. Dies hat zur Folge. dass die s~tere AusfUhrung eines StnngBefehls - in unserem Fall die Byte-granulare Version MOVESB - eine implizite Erhöhung der Register ESI und EDI bewirkt. Anschließend wird der Kopiervorgang vorbereitet indem die Register ESI und EOI mit der Start- und Zieladresse der zu kopierenden Daten beschrieben werden - beide Register lassen sich später durch den MOVESB-Befehl auslesen. Der eigentliche Kopiervorgang wird mit Hilfe einer Hardware-Schleife durchgefUhrt. Hierw wird die Anzahl der auszufUhrenden Operationen in das Ecx-Register geschrieben und die Schleife mit dem REP-Befehl gestartet. REP wiederllOlt die ihm nachfolgende Anweisung so lange. bis der Inhalt des Registers ECX gleich null ist. Am Ende jeder Iteration wird der Inhalt von ECX automatisch um eins verringert. Der große Vorteil der Hardware-Schleife liegt in ihrer hohen Effizienz. da das manue lle Testen der Schleifenabbruchbedingung sowie das AusfUhren des sich anschließenden bedi ngten Sprungs von der Hardware durchgefUhrt wird und nicht manuell ausprogrammiert werden muss.
11.2 InstruktionS '?fV'lO
m·m·m
In·7.....n.l?7 NI 111 no '>1 ...o7nn'
344
11 Rechnerstrukturen
Schon alleine auf Grund ihrer größeren Chip-Fläche fallen elSe-Prozessoren im direkten Vergleich mit ihren RISCKonkurrenten durch einen tendenziell größeren Stromverbrauch auf. Spielte die Slromaufnahme noch vor ein paar Jahren ein: eher unlergeordJrte Rolle, so gehört deren Begrenzung heule insbesondere im Bereich mobiler Systenr zu den dringlichsten AUfgaben Die Industrie begegnet dem Problem mit immer ausgefeilteren Techniken. So verfUgen modeme Prozessoren über die Möglichkeit, die Taktfrequenz während des Betriebs dynamisch an die Prozessorlast anzupassen. Wie sich die Absenkung auf die Leistungsaufnahnr auswirkt, demonstriert die folgende Grafik am Beispiel der Enhanced-SpeedStepTechnologie des Penlium M.
24 600
800
I
1,6
14
Gfu
H~~ ~z-