13.07.2015 Aufrufe

Folien des 3. Kapitels (Informationsverarbeitung). - Professur für ...

Folien des 3. Kapitels (Informationsverarbeitung). - Professur für ...

Folien des 3. Kapitels (Informationsverarbeitung). - Professur für ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Informatik <strong>für</strong> ET/MTINF1­ET/MT<strong>Informationsverarbeitung</strong>● Boolesche Algebra● Einfache Schaltungen● RechenwerkeProf. Dr.­Ing. Christian Hochberger<strong>Professur</strong> MikrorechnerInstitut <strong>für</strong> Technische InformatikFakultät InformatikTU Dresden


Ausgangslage● Darstellung von Information in Rechnern durchBinärzahlen● Bisher:Verknüpfung der Zahlen nach bekannten Schemata(schriftliche Addition, Multiplikation, Division)● Gesucht:Technische Realisierung dieser SchemataMöglicher 1. Schritt: FormalisierungChr. Hochberger, Inf1­ET/MT 2


Aussagen● Aussagen haben einen Wahrheitswert„10 ist eine gerade Zahl“ (wahr)„9 ist eine Primzahl“ (falsch)Aber: „Freds Schwester“ ist keine Aussage● Bezeichnungen <strong>für</strong> Wahrheitswerte Wahr, w, true, 1 Falsch, f, false, 0● Aussagen können durch Platzhalter symbolisiertwerden (Variablen)● Aussagen können miteinander verknüpft werden➔ AussagenlogikChr. Hochberger, Inf1­ET/MT 3


Aussagenlogik● Rechenregeln <strong>für</strong> Aussagen● Einstelliger OperatorNegation●●●Umkehrung <strong>des</strong> WahrheitswertesSymbol: ¬ oder Querstrich über der AussageBeispiel: ¬A, B● Zweistellige OperatorenUnd, Oder, Äquivalenz, Antivalenz, ImplikationChr. Hochberger, Inf1­ET/MT 4


Aussagenlogik (2)● Verknüpfungen:Und­Verknüpfung●Gesamtaussage ist wahr, wenn beide Teilaussagenwahr sind● Symbol: ∧ Beispiel: A ∧ BOder­Verknüpfung●Gesamtaussage ist dann wahr, wenn min. eine derbeiden Teilaussagen wahr ist● Symbol: ∨ Beispiel: A ∨ BChr. Hochberger, Inf1­ET/MT 5


Aussagenlogik (3)● Verknüpfungen:Äquivalenz­Verknüpfung●Gesamtaussage ist dann wahr, wenn beide Aussagenden gleichen Wahrheitswert haben● Symbol: ≡ ⇔ Beispiel: A ≡ BAntivalenz●Gesamtaussage ist wahr, wenn genau eineTeilaussage wahr ist● Symbol: ≠ Beispiel: A ≠ BChr. Hochberger, Inf1­ET/MT 6


Aussagenlogik (4)● Verknüpfungen:Implikation●●Gesamtaussage ist nur dann falsch, wenn ersteTeilaussage wahr und zweite Teilaussage falsch istEntspricht in etwa der umgangssprachlichenWenn­dann Formulierung(ist aber exakter, z.B. wenn die erste Teilaussagefalsch ist)● Symbol: ⇒ Beispiel: A ⇒ BChr. Hochberger, Inf1­ET/MT 7


Aussagenlogik (5)● KommutativitätA ∧ B ≡ B ∧ AUnd, Oder, Äquivalenz und Antivalenz sind kommutativImplikation ist nicht kommutativ● Assoziativität (A ∧ B) ∧ C ≡ A ∧ (B ∧ C) Und, Oder, Äquivalenz und Antivalenz sind assoziativ Implikation ist nicht assoziativ Wichtig bei der Verknüpfung mehrerer AussagenChr. Hochberger, Inf1­ET/MT 8


Aussagenlogik (6)● TautologieAussage, die immer wahr istBeispiele:● A ∨ ¬A● (A ⇒ B) ∨ (B ⇒ A)● KontradiktionAussage, die immer falsch ist Beispiel: A ∧ ¬AChr. Hochberger, Inf1­ET/MT 9


Wahrheitstafeln● Tabellarische Darstellung der FunktionAlle möglichen EingangskombinationenResultierende FunktionswerteOperatorA B Und Oder Äquivalenz Antivalenz0 0 0 0 1 00 1 0 1 0 11 0 0 1 0 11 1 1 1 1 0Chr. Hochberger, Inf1­ET/MT 10


Boolesche Algebra● Spezielle Algebra (Komplementärer, distributiverVerband)● Zahlenmenge (Körper) mit Addition undMultiplikationZahlenmenge z.B. WahrheitswerteAddition ≡ Oder­VerknüpfungMultiplikation ≡ Und­Verknüpfung● Distributivgesetz(A + B)*C = A*C + B*C(A ∨ B)∧C ≡ A∧C ∨ B∧CChr. Hochberger, Inf1­ET/MT 11


Boolesche Algebra (2)● Neutrales Element der AdditionWert, der bei Oder­Verknüpfung nichts ändertA ∨ 0 ≡ A● Neutrales Element der MultiplikationWert, der bei Und­Verknüpfung nichts ändertA ∧ 1 ≡ A● Weitere Gesetze:Idempotenz (A ∨ B)∧A ≡ ADe Morgansche RegelnChr. Hochberger, Inf1­ET/MT 12


De Morgansche Regeln● Zwei Varianten: (¬ A ∧ ¬ B) ≡ ¬ (A ∨ B) (¬ A ∨ ¬ B) ≡ ¬ (A ∧ B)● Und und Oder lassen sich ineinander verwandeln A ∨ B ≡ ¬ (¬ A) ∨ ¬ (¬ B) ≡ ¬ (¬ A ∧ ¬ B)In ähnlicher Weise <strong>für</strong> die Und­Verknüpfung● Wird zur algebraischen Vereinfachung vonAusdrücken gebrauchtChr. Hochberger, Inf1­ET/MT 13


Eindeutigkeit● Verschiedene algebraische Darstellungen dergleichen Funktion möglich: Y= B∧A ∨ ¬A Y= B ∨ ¬A∧¬B● Beide Darstellungen sindnicht minimal: Y=B ∨ ¬A● Verfahren zur OptimierungKarnaugh­VeitchQine­McCluskeyA B Y0 0 10 1 11 0 01 1 1Chr. Hochberger, Inf1­ET/MT 14


Schalteräquivalenz● Verknüpfungen können durchspannungsgesteuerte Schalter dargestellt werden● Wahr entspricht einer hohen SpannungUnd­Verknüpfungdurch ReihenschaltungA+AOder­Verknüpfung durchParallelschaltung+ +BBYYChr. Hochberger, Inf1­ET/MT 15


Schalteräquivalenz (2)● Realisierung der NegationBei geöffnetem Schalter muss eine Spannung anliegenSchließen <strong>des</strong> Schalters muss Spannung auf 0 senken+AYChr. Hochberger, Inf1­ET/MT 16


Schalteräquivalenz (3)● Variante mit Widerstand nicht günstigStatt<strong>des</strong>sen: Schalter, der schließt, wenn keineSpannung anliegt (an Stelle <strong>des</strong> Widerstands)● In der Realität:Feldeffekt­Transistoren als Schalter­Ersatz(funktionieren spannungsgesteuert)Zwei Varianten verfügbar●●NMOS­Transistor leitet bei hohem PotentialPMOS­Transistor leitet bei niedrigem PotentialChr. Hochberger, Inf1­ET/MT 17


Gatter: DIN/IEC­Symbole● Negation wird durch schwarzen Punkt dargestelltA1BB=¬A (Negation, Inverter)AB&YY=A ∧ B (Und, And)AB≥1YY=A ∨ B (Oder, Or)AB=1YY=A ≠ B (Antivalenz, Exor)Chr. Hochberger, Inf1­ET/MT 18


DIN/IEC­Symbole (2)● Zusätzliche Varianten der Gatter:AB&YY=¬(A ∧ B) (NAND)AB≥1YY=¬(A ∨ B) (NOR)Chr. Hochberger, Inf1­ET/MT 19


DIN/IEC­Symbole (3)● Negationssymbol darf auch am Eingang stehen1● Darstellungsmöglichkeiten der ImplikationAB&YAB≥1YChr. Hochberger, Inf1­ET/MT 20


Gatter: US­SymboleChr. Hochberger, Inf1­ET/MT 21


Exor­Realisierung● Exor nicht als Basisfunktion vorhanden● Realisierung mit Hilfe von Und und Oder● WertetabelleA B Exor0 0 00 1 11 0 11 1 0¬A ∧ BA ∧¬B● Y = ¬A∧B ∨ A∧¬B● Andere Realisierungen möglich (de Morgan)Chr. Hochberger, Inf1­ET/MT 22


Generische Tabellen● Realisierung beliebiger Tabellen durch Grundgattermöglich● Zeile mit Ausgabewert 1:Und­Gatter mit passender Eingangsbeschaltung● Oder­Verknüpfung aller Und­Gatter● Funktioniert <strong>für</strong> alle TabellenChr. Hochberger, Inf1­ET/MT 23


Generische Tabellen (2)A B C Y0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 01 1 1 1¬ABCA¬BCABC&&&≥1YChr. Hochberger, Inf1­ET/MT 24


Addition● Summe zweier Binärstellen A und BS = (A+B) mod 2 = A∧¬ B ∨ ¬ A∧BS = A ≠ B (Exor)● Übertrag der Summe zweier Binärstellen (Carry)C = (A+B)/2 = A ∧ BA B Summe Übertrag0 0 0 00 1 1 01 0 1 01 1 0 1Chr. Hochberger, Inf1­ET/MT 25


Halbaddierer● Struktur zur Addition zweier Bits(eingehender Übertrag wird nicht berücksichtigt)AB=1 SABHASC&C● Was passiert aber an der nächsten Stelle?(Zwei Eingänge und Übertrag von der vorherigenStelle)Chr. Hochberger, Inf1­ET/MT 26


Volladdierer● WertetabelleA B C Summe Übertrag0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1● Realisierung z.B. durch Kaskadierung von 2 HAChr. Hochberger, Inf1­ET/MT 27


ABC inHAVolladdierer (2)S 1C 1HAChr. Hochberger, Inf1­ET/MT 28SC 2≥1SC outA B C S1 C1 C2 Summe Übertrag0 0 0 0 0 0 0 00 0 1 1 0 0 1 00 1 0 1 0 0 1 00 1 1 0 1 0 0 11 0 0 0 0 0 1 01 0 1 1 0 1 0 11 1 0 1 0 1 0 11 1 1 0 1 0 1 1


4 Bit­Addierer (2)● Jeder VA braucht eine Zeit zum Berechnen derErgebnisse● Frage: Wann steht das Endergebnis fest?S 0und C 0stehen nach festS 1kann erst berechnet werden, wenn C 0vorhanden istS 1steht nach 2* festS 2steht nach 3* festS nsteht nach (n+1)* fest● Verfahren heißt Ripple­Carry Addition(Carry Signal „rieselt“ durch die Schaltung)Chr. Hochberger, Inf1­ET/MT 30


4 Bit­Subtrahierer●●Wird zurückgeführt auf 2er­Komplement­AdditionB wird negiert und durch C in=1 wird 2er­KomplementgebildetB 3B 2B 1B 01 1 1 1A 3 A 2A 1A 0A B C inA B C inA B C inVA VA VA VAC outS C outS C outS C outSS 4S 3S 2S 1S 0A B C inChr. Hochberger, Inf1­ET/MT 311


Multiplexer● Weitere Grundschaltung● Auswahl eines Eingangs in Abhängigkeit von einemSteuereingang● Formulierung als Boolesche FunktionASBY=A∧(S≡0) ∨ B∧(S≡1)&&≥1Chr. Hochberger, Inf1­ET/MT 32YABSSymbolY


Wiederholung● Boolesche AlgebraRechenregeln, Operationen● GatterschaltungenTechnische Realisierung, Symbole● Arithmetische GrundschaltungenHalb­ und Volladdierer, Ripple­Carry­Addierer● GedächtnisRückkopplungenChr. Hochberger, Inf1­ET/MT 33


Rückkopplungen● Was passiert, wenn Ausgang einer Schaltung aufEingang zurückwirkt?● Annahme: A und Y am Anfang 0≥1 YASolange A auf 0 bleibt, keine Änderung an YA wird 1, dann wird Y auch 1 und bleibt soSchaltung hat „Gedächtnis“Chr. Hochberger, Inf1­ET/MT 34


RS­FlipFlop● Schaltung zum Speichern von Information● Eingänge zum Setzen (Set) und Löschen (Reset)01S1 0 ¬Q≥10 1Annahme: S=1, R=0Annahme: S=0, R=0Annahme: S=0, R=1R1001≥110QChr. Hochberger, Inf1­ET/MT 35


RS­FlipFlop – Wahrheitstafel● Q(t): aktueller Zustand● Q(t+1) : FolgezustandR S Q(t+1) ¬Q(t+1) Verhalten0 0 Q(t) ¬Q(t) Speichern1 0 0 1 Rücksetzen0 1 1 0 Setzen1 1 ? ? ?● Beide Eingänge 0 ⇒ Zustand wird gespeichert● Was passiert bei R=1 und S=1?Chr. Hochberger, Inf1­ET/MT 36


Verbotener ZustandS10≥10¬QR01≥10Q● Beide Ausgänge werden 0!●Prinzipiell nicht erlaubt, da ¬Q immer die Negation vonQ sein sollZustand hält solange, bis R oder S wieder 0 werdenChr. Hochberger, Inf1­ET/MT 37


RS­FlipFlop mit NAND¬S0011&10Q1 01&¬ R0 ¬Q01● S=0 und R=0 verbotener Zustand● S und R sind negiert, Q und ¬Q vertauschtChr. Hochberger, Inf1­ET/MT 38


Und­Gatter als TorD&O● Und­Gatter kann wie ein Tor interpretiert werdenEin DateneingangEin Steuereingang● Steuereingang=1Dateneingang wird auf Ausgang durchgelassen● Steuereingang=0EDateineingang wird nicht durchgelassenChr. Hochberger, Inf1­ET/MT 39


RS­Latch mit EnableS&≥1¬QE● E=0:● E=1:R&R und S Eingänge wirken nichtÄnderungen an R und S werden transparentweitergegebenChr. Hochberger, Inf1­ET/MT 40≥1Q


RS­Latch – ZeitdiagrammESRQ¬QChr. Hochberger, Inf1­ET/MT 41


D­LatchD&≥1¬QE&≥1Q● S und R werden aus D berechnet S=D, R= ¬D● Enable steuert die DatenübernahmeChr. Hochberger, Inf1­ET/MT 42


D­Latch – ZeitdiagrammEDQ● Änderungen von D werden transparentdurchgereicht, wenn E=1 ist● Letzter Wert von D vor E=0 wird gespeichert● Einfache 1­Bit SpeicherzelleChr. Hochberger, Inf1­ET/MT 43


Kette von D­LatchesDDEQQ1DEQQ2E● Datum wird bei E=1 bis zum Ausgang Q2durchgereicht● Kette könnte „beliebig“ lang sein● Problem:Wie kann Information von einem Latch an das nächsteweitergegeben werden?Chr. Hochberger, Inf1­ET/MT 44


FlankensteuerungDT● Nur eines der Latches ist transparent● Aber:DET=0: Q1 folgt DT=1: Q2 folgt Q1QQ1 Bei T=1 kann sich Q1 nicht mehr ändern! Wert von Q1 wird beim Wechsel von T=0 auf T=1gespeichert⇒ FlankensteuerungDEQQ2Chr. Hochberger, Inf1­ET/MT 45


Flankensteuerung –ZeitdiagrammTDQ1Q2● Ausgangsänderungen nur, wenn T von 0 auf 1wechselt: Positiv flankengesteurtes FlipFlop● Bei Übergang von T=1 auf T=0:Änderung von Q1 erst, nachdem Q2 schon gesperrt!(Durch Verzögerung der Negation)Chr. Hochberger, Inf1­ET/MT 46


Namen und SymboleDIN/IEC­Symbol● D­Latch● D­FFPegel gesteuertTransparentSteuerung durch EnableFlanken gesteuertNicht transparentSteuerung durch Clock (Takt)DEDCQ¬QQ¬QChr. Hochberger, Inf1­ET/MT 47


Andere FF­Typen● JK­FlipFlopWie RS­FF aber Q wechselt bei J=1 und K=1 einfachden Wert● T­FlipFlopToggle­FlipFlop, hat nur Takt­Eingang● Master­Slave FlipFlopZwei hintereinander geschaltete FFMaster (Eingang) übernimmt bei positiver FlankeSlave (Ausgang) übernimmt bei negativer FlankeChr. Hochberger, Inf1­ET/MT 48


Register● Gruppierung von D­FFD0DQQ0● Gemeinsames Taktsignal● Separater Ein­ und Ausgang<strong>für</strong> je<strong>des</strong> FF● Alle FF übernehmengleichzeitig dieEingangssignale● Z.B. zur Speicherung vonVariablen,Zwischenergebnissen, etc.D1D2D3CDDDQQQQ1Q2Q3Chr. Hochberger, Inf1­ET/MT 49


SchieberegisterDDQQ0 Q1 Q2D Q D QDQQ3C● Alle D­FF übernehmen bei steigender Flanke● Änderungen geschehen gleichzeitigQ0=D, Q1=Q0, Q2=Q1, Q3=Q2● Information wird um eine Bitposition nach rechtsgeschobenChr. Hochberger, Inf1­ET/MT 50


Schieberegister (2)Wert am Eingang vor dem TaktTakt D Q0 Q1 Q2 Q30 1 0 101 0 0 1 012 1 0 0 103 0 1 0 004 0 0 1 005 0 0 0 1Belegung vor dem StartChr. Hochberger, Inf1­ET/MT 51


Schieberegister (3)● RingschieberegisterZyklische Struktur, Eingang mit Ausgang verbundenNach n­Takten enthält Register wieder Ausgangswert(Wie kommt der Startwert hinein?)DQQ3 Q2 Q1D Q D QDQQ0CChr. Hochberger, Inf1­ET/MT 52


Schieberegister (4)D3 D2 D1 D0Q3 0 Q2 0 Q1 0 Q0D Q D Q D Q D Q111CS/¬L● Ladbares SchieberegisterMultiplexer wählt zwischen Schieben und LadenS/¬L● 0: Laden, 1: SchiebenChr. Hochberger, Inf1­ET/MT 53


Arithmetisches und logischesSchieben● Rechtsschieben kann als Division durch 2 betrachtetwerden● Beispiel: 8Bit, 2er­Komplement Darstellung 19 10=00010011 2 19 10/2 10= 9 10, 00010011 2/2 10= 00001001 2 Alle Bits wurden um eine Position nach rechts geschoben Oberste Stelle wurde mit 0 aufgefüllt● Frage:Was passiert, wenn negative 2er­Komplement­Zahlennach rechts geschoben werden?Chr. Hochberger, Inf1­ET/MT 54


Arithmetisches und logischesSchieben (2)● Beispiel: ­22 10= NEG(00010110 2)+1 = 11101001 2+1 = 11101010 2 ­22 10/ 2 10= ­11 10 11101010 2/ 2 10Durch rechts schieben wird daraus: 01110101 2= 117 10● Auffüllen der obersten Stelle Durch Vorzeichenbit : Arithmetisches Schieben Durch 0 : Logisches SchiebenChr. Hochberger, Inf1­ET/MT 55


Arithmetisches und logischesSchieben (3)● Beispiel (korrekt): ­22 10= 11101010 2/ 2 10= 11110101 2= ­(NEG(11110101 2)+1) = ­(00001010 2+1) =­00001011 2= ­11 10● Beispielschaltung (4 Bit):Q3 Q2 Q1 Q0D Q D Q D Q D QChr. Hochberger, Inf1­ET/MT 56


Serieller Addierer● Grundidee:Berechnung der Summe stellenweise, nacheinander(nicht wie bei Ripple­Carry­Addierer parallel <strong>für</strong> alleStellen)● Beginn bei der Stelle mit dem geringstenStellenwert (LSB=Least Significant Bit, Bit 0)● Berechnung der Summe der beiden LSBsSummenbit ist LSB <strong>des</strong> ErgebnissesÜbertrag muss „gemerkt“ werdenChr. Hochberger, Inf1­ET/MT 57


Serieller Addierer (2)● Gespeicherter Übertrag wird mit der nächstenStelle verrechnet (Bit 1 der Summanden)● Ergebnis ist Bit 1 der Summe● Weiter mit Bit 2, Bit 3, ... bis Stelle mit höchstemStellenwert erreicht ist (MSB=Most Significant Bit)● Speicherung der Operanden und <strong>des</strong> Ergebnissesin Schieberegistern● Speicherung <strong>des</strong> Übertrags in einem D­FFChr. Hochberger, Inf1­ET/MT 58


Serieller Addierer – StrukturD Q D Q D Q D QA3 A2 A1 A0D Q D Q D Q D QB3 B2 B1 B0ABC inSVAC outClkDCQD Q D Q D Q D QS3 S2 S1 S0Chr. Hochberger, Inf1­ET/MT 59


Serieller Addierer – Beispiel● Beispiel: A=(1011), B=(0110)D Q D Q D Q D Q1 0 1 1D Q D Q D Q D Q0 1 1 0ABC inSVAC out10ClkD0QD Q D Q D Q D Q0 0 0 0Chr. Hochberger, Inf1­ET/MT 60


Serieller Addierer – Beispiel (2)Nach dem 1. TaktD Q D Q D Q D Q0 1 0 1D Q D Q D Q D Q0 0 1 1ABC inSVAC out01ClkD0QD Q D Q D Q D Q1 0 0 0Chr. Hochberger, Inf1­ET/MT 61


Serieller Addierer – Beispiel (3)Nach dem 2. TaktD Q D Q D Q D Q0 0 1 0D Q D Q D Q D Q0 0 0 1ABC inSVAC out01ClkD1QD Q D Q D Q D Q0 1 0 0Chr. Hochberger, Inf1­ET/MT 62


Serieller Addierer – Beispiel (4)Nach dem <strong>3.</strong> TaktD Q D Q D Q D Q0 0 0 1D Q D Q D Q D Q0 0 0 0ABC inSVAC out01ClkD1QD Q D Q D Q D Q0 0 1 0Chr. Hochberger, Inf1­ET/MT 63


Serieller Addierer – Beispiel (5)Nach dem 4. TaktD Q D Q D Q D Q0 0 0 0D Q D Q D Q D Q0 0 0 0ABC inSVAC outClkMSB der SummeD1QUntere 4 Bit der SummeD Q D Q D Q D Q0 0 0 1Chr. Hochberger, Inf1­ET/MT 64


Beschleunigung der Addition● Hauptproblem <strong>des</strong> Ripple­Carry­Addierers:Überträge werden von Stelle zu Stelle weitergeleitetAber: Vorausberechnung der Beträge möglich● Für jede Stelle kann der Übertrag nach folgendemPrinzip berechnet werden:Ein Übertrag wird auf jeden Fall erzeugt (generate),wenn A i=1 und B i=1Ein Übertrag aus der vorigen Stelle wird weitergeleitet(propagate), wenn A i=1 oder B i=1Chr. Hochberger, Inf1­ET/MT 65


Beschleunigung der Addition (2)● G i=A i∧ B i, P i=A i∨ B i● C i=G i∨ P i∧C i­1● Gleichungen <strong>für</strong> C i, <strong>für</strong> i=0..2 C 0= G 0∨ P 0∧0 = G 0 C 1= G 1∨ P 1∧C 0 C 2= G 2∨ P 2∧C 1● C ikann in die Berechnung von C i+1eingesetztwerdenChr. Hochberger, Inf1­ET/MT 66


Beschleunigung der Addition (3)● C 0= G 0= A 0B 0● C 1= G 1+ P 1C 0= A 1B 1+ (A 1+B 1)A 0B 0= A 1B 1+ A 1A 0B 0+ B 1A 0B 0● C 2= G 2+ P 2C 1= A 2B 2+ (A 2+B 2)(A 1B 1+ A 1A 0B 0+ B 1A 0B 0)= A 2B 2+A 2A 1B 1+ A 2A 1A 0B 0+ A 2B 1A 0B 0+ B 2A 1B 1+B 2A 1A 0B 0+ B 2B 1A 0B 0Chr. Hochberger, Inf1­ET/MT 67


Beschleunigung der Addition (4)● Berechnung der Summenbits:● Berechnung von S iaus A i, B i, C i­1● S i=1, wenn drei 1 vorliegen oder wenn genau eine1 vorliegt⇒ Exor­Verknüpfung der Eingänge: S 0= A 0exor B 0 S 1= A 1exor B 1exor C 0 S 2= A 2exor B 2exor C 1Chr. Hochberger, Inf1­ET/MT 68


Carry­Look­Ahead Addierer⊕ ⊕B 2B 1B 0A 2A 1A 0B 1B 0A 1A 0⊕A 0B 0=1B 2A 2B 1B 0A 1A 0C 2C 1C 0=1=1=1=1S 3S 2S 1S 0Chr. Hochberger, Inf1­ET/MT 69


Speedup <strong>des</strong> Carry­Look­AheadAddierers● Anzahl der Gatter­Laufzeiten pro VAABC in&HA=1&HA=1≥1SC outChr. Hochberger, Inf1­ET/MT 70


Speedup <strong>des</strong> Carry­Look­AheadAddierers (2)● Ripple­Carry Addierer:Pro VA müssen 3 Gatter durchlaufen werden3 VA werden nacheinander geschaltet9 Gatter­Laufzeiten bis zum gültigen Ergebnis● Carry­Look­Ahead Addierer:Jede Carry­Logik hat 2 GatterstufenSummenbildung hat 2 GatterstufenMaximal 3 Gatterlaufzeiten (da Carry in die 2. Stufe derSumme einfließt)Chr. Hochberger, Inf1­ET/MT 71


Aufwand <strong>des</strong> Carry­Look­AheadAddierers● Ripple­Carry Addierer:Jeder VA besteht aus 5 GatternAddierer <strong>für</strong> 3 Bit benötigt 15 Gatter● Carry­Look­Ahead Addierer:Summenbildung benötigt 5 GatterC 0Berechnung benötigt 1 GatterC 1Berechnung benötigt 4 GatterC 2Berechnung benötigt 8 GatterGesamtaufwand: 18 GatterChr. Hochberger, Inf1­ET/MT 72


Aufwand <strong>des</strong> Carry­Look­AheadAddierers (2)● Erheblich höherer Aufwand bei mehr Bit­Stellen C3 Berechnung : 16 Gatter C4 Berechnung : 32 Gatter ... C7 Berechnung : 256 Gatter● Ripple­Carry­Addierer <strong>für</strong> 8 Bit:8*5 Gatter = 40 Gatter● Carry­Look­Ahead Addierer <strong>für</strong> 8 Bit256+128+64+32+16+8+4+1+ 7*2 +1= 524 GatterChr. Hochberger, Inf1­ET/MT 73


Gegenüberstellung● Eigenschaften der betrachteten Addierer beiRealisierung einer n­Bit AdditionCarry­Look­AheadSerieller Addierer Ripple­Carry Addierer AddiererArbeitsweise Synchron Asynchron AsynchronBerechnungsdauerSehr Lang Mittel Sehr kurz(n Takte) (3*n Gatterlaufzeiten) (3 Gatterlaufzeiten)Hardware­ Sehr gering Mittel Sehr hochAufwand (5 Gatter = 1 VA) (5*n Gatter) (proportional zu 2^n)Chr. Hochberger, Inf1­ET/MT 74


Multiplizierer – Beispiel 1● B 0* A 0= B 0∧A 0Multiplikation zweier Bits ⇒ Und­Verknüpfung● (B 1,B 0) * A 0= (B 1∧A 0, B 0∧A 0)Multiplikation einer mehrstelligen Zahl mit einem Bit⇒ Und­Verknüpfung der Stellen mit dem Bit● (B 1,B 0) * (A 1,A 0)= (B 1,B 0) * A 0+ (B 1,B 0)*A 1*2= (B 1∧A 0, B 0∧A 0) + (B 1∧A 1, B 0∧A 1,0)Chr. Hochberger, Inf1­ET/MT 75


Multiplizierer – Beispiel 2● Multiplikation zweier mehrstelliger ZahlenBerechnung der Teilprodukte (B n­1,...B 0)*A i, mit 0≤i


Vereinfachte Symbole● Und­Verknüpfung von B mit A iB 3B 2B 1B 0A i● Volladdierer­KetteSummandenVAVAVAVAÜbertrag zur nächsten StelleChr. Hochberger, Inf1­ET/MT 77


Parallel MultipliziererA 0P 5P 4P 3P 2P 1P 0B 3B 2B 1B 0P 7P 6B 3B 2B 1B 0A 1VA VA VA HAB 3B 2B 1B 0A 2VA VA VA HAB 3B 2B 1B 0A 3VA VA VA HAChr. Hochberger, Inf1­ET/MT 78


Parallel Multiplizierer (2)● Beispiel 1011 * 01011 0 1 11 0 1 11 0 1 10VA0VA0VA0HA1 0 0 0 1 1 1 0 1 11VA0VA1VA1HA1 0 0 1 1 1 1 0 1 1 10VA0VA0VA0HA101000110111Chr. Hochberger, Inf1­ET/MT 79


Parallel Multiplizierer (3)Alternative Struktur:● Beginn bei Teilproduktmit MSB von A● Ungünstiger, daunregelmäßige StrukturB 3B 2B 1B 0A 3B 3B 2B 1B 0HA VA VA HAA 2B 3B 2B 1B 0A 1HAHAVAVAHAB 3B 2B 1B 0A 0HAHAHAVAVAHAChr. Hochberger, Inf1­ET/MT 80


Parallel Multiplizierer (4)● Anzahl der VA/HA bei n Bit:n­1 Addierer­Ketten(keine Kette <strong>für</strong> Bit 0 <strong>des</strong> Multiplikators!)Jede Kette besteht aus einem HA am Anfangund (n­1) VA(n 2 ­2n+1)VA + (n­1)HA+ n 2 Und­Gatter (als Bit­Multiplizierer)● Laufzeit:Und­Gatter + HA + (n­1)*VA + 2*(n­2)*VAChr. Hochberger, Inf1­ET/MT 81


Serieller Multiplizierer● Idee:Berechnung und Summation der TeilproduktenacheinanderJeweils ein Produkt von B und A iberechnenZum bisherigen Zwischenergebnis aufaddierenFür alle i wiederholen● A und Zwischenergebnis werden inSchieberegistern gespeichert● Teilprodukt mit A 0wird zuerst berechnetChr. Hochberger, Inf1­ET/MT 82


Serieller Multiplizierer (2)BA+SChr. Hochberger, Inf1­ET/MT 83


Serieller Multiplizierer – Beispiel● Beispiel:1011*0101B1 0 1 1 0 1 0 1A1 0 0 0 1 0 1 0+Teilprodukt B*A 0aufsummieren0 1 0 1 10 0 0 0 0 0 0 0SChr. Hochberger, Inf1­ET/MT 84


Serieller Multiplizierer – Beispiel● Beispiel:1011*0101B1 0 1 1 0 1 0 1A+A und S um eineStelle nach rechtsschieben0 1 0 1 1 0 0 0SChr. Hochberger, Inf1­ET/MT 85


Serieller Multiplizierer – Beispiel● Beispiel:1011*0101B1 0 1 1 0 0 1 0A0 0 0 1 0 0 0 1+Teilprodukt B*A 1aufsummieren0 0 1 0 10 0 1 0 1 1 0 0SChr. Hochberger, Inf1­ET/MT 86


Serieller Multiplizierer – Beispiel● Beispiel:1011*0101B1 0 1 1 0 0 1 0A+A und S um eineStelle nach rechtsschieben0 0 1 0 1 1 0 0SChr. Hochberger, Inf1­ET/MT 87


Serieller Multiplizierer – Beispiel● Beispiel:1011*0101B1 0 1 1 0 0 0 1A1 0 0 0 1 1 1 0+Teilprodukt B*A 2aufsummieren0 1 1 0 10 0 0 1 0 1 1 0SChr. Hochberger, Inf1­ET/MT 88


Serieller Multiplizierer – Beispiel● Beispiel:1011*0101B1 0 1 1 0 0 0 1A+A und S um eineStelle nach rechtsschieben0 1 1 0 1 1 1 0SChr. Hochberger, Inf1­ET/MT 89


Serieller Multiplizierer – Beispiel● Beispiel:1011*0101B1 0 1 1 0 0 0 0A0 0 0 1 0 1 0 0+Teilprodukt B*A 3aufsummieren0 0 1 1 00 0 1 1 0 1 1 1SChr. Hochberger, Inf1­ET/MT 90


Serieller Multiplizierer –● Anzahl der TakteEigenschaftenn Teilprodukte in Summenregister übernehmenn­1 mal A und S nach rechts schieben● Hardware­Aufwandn Und­GatterAddierer je nach ImplementierungRipple­Carry Addierer: (n­1) VA, 1 HACarry­Look­Ahead Addierer● Geschwindigkeit <strong>des</strong> Addierers bestimmt minimaleTaktperiodeChr. Hochberger, Inf1­ET/MT 91


Block Multiplizierer● Realisierungen zwischen Parallel­ und SeriellemMultiplizierer möglich● Idee: Aufteilung der Produktbildung in Blöcke A=(A H+ A L), B=(B H+ B L)A*B=A H*B H+ A H*B L+ A L*B H+ A L*B LBesonders interessant, wenn A Hund A LdisjunkteBitgruppen darstellen (bzw. B Hund B L) z.B.: A H=A 7,A 6,A 5,A 4und A L=A 3,A 2,A 1,A 0Chr. Hochberger, Inf1­ET/MT 92


Block Multiplizierer (2)●Berechnung von A L*B L:● Teilprodukt muss nicht verschoben werden, da beideFaktoren bei Bit 0 beginnenB HB LA HA LChr. Hochberger, Inf1­ET/MT 93


Block Multiplizierer (3)●Berechnung von A H*B L:● Teilprodukt muss um n Stellen verschoben werden, daA Hum n Stellen verschoben istB HB LA HA LChr. Hochberger, Inf1­ET/MT 94


Block Multiplizierer (4)●Berechnung von A L*B H:● Teilprodukt muss um n Stellen verschoben werden, daB Hum n Stellen verschoben istB HB LA HA LChr. Hochberger, Inf1­ET/MT 95


Block Multiplizierer (5)●Berechnung von A H*B H:● Teilprodukt muss um 2n Stellen verschoben werden, daA Hund B Hum n Stellen verschoben sindB HB LA HA LChr. Hochberger, Inf1­ET/MT 96


Block Multiplizierer (3)● Beispiel: 20 10*52 10= 00010100 2*00110100 2=1040 10● A H=0001 2, A L=0100 2, B H=0011 2, B L=0100 2P15..12 P11..8 P7..4 P<strong>3.</strong>.0AL*BL 0001 0000AH*BL 0000 0100AL*BH 0000 1100AH*BH 0000 00110000 0100 0001 0000Chr. Hochberger, Inf1­ET/MT 97


Block Multiplizierer (4)A HA LB HB L+*1. AL*BL berechnen, aufsummieren2. A und P schieben<strong>3.</strong> AH*BL berechnen, aufsummieren4. A und B schieben5. AL*BH berechnen aufsummieren6. A und P schieben7. AH*BH berechnen,aufsummierenP 15..12P 11..8P 7..4P <strong>3.</strong>.0Chr. Hochberger, Inf1­ET/MT 98


Block Multiplizierer ­ BeispielA HA LB HB L0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0*0000 0000 0001 0000+0001 00000 0 0 0 0 0 0 0P 15..12P 11..8P 7..4P <strong>3.</strong>.0Chr. Hochberger, Inf1­ET/MT 99


Block Multiplizierer – Beispiel (2)A HA LB HB L0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0*+0 0 0 1 0 0 0 0P 15..12P 11..8P 7..4P <strong>3.</strong>.0Chr. Hochberger, Inf1­ET/MT 100


Block Multiplizierer – Beispiel (3)A HA LB HB L0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0*0000 0001 0000 01000000+01010 0 0 0 0 0 0 10 0 0 0P 15..12P 11..8P 7..4P <strong>3.</strong>.0Chr. Hochberger, Inf1­ET/MT 101


Block Multiplizierer – Beispiel (4)A HA LB HB L0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0*+0 0 0 0 0 1 0 1 0 0 0 0P 15..12P 11..8P 7..4P <strong>3.</strong>.0Chr. Hochberger, Inf1­ET/MT 102


Block Multiplizierer – Beispiel (5)A HA LB HB L0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1*0000 0101 0000 11000001+00010 0 0 0 0 1 0 10 0 0 0P 15..12P 11..8P 7..4P <strong>3.</strong>.0Chr. Hochberger, Inf1­ET/MT 103


Block Multiplizierer – Beispiel (6)A HA LB HB L0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1*+0 0 0 1 0 0 0 1 0 0 0 0P 15..12P 11..8P 7..4P <strong>3.</strong>.0Chr. Hochberger, Inf1­ET/MT 104


Block Multiplizierer – Beispiel (7)A HA LB HB L0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1*0000 0001 0000 00110000+01000 0 0 0 0 0 0 10 0 0 1 0 0 0 0P 15..12P 11..8P 7..4P <strong>3.</strong>.0Chr. Hochberger, Inf1­ET/MT 105


Block Multiplizierer – Beispiel (8)A HA LB HB L0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1*+0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0P 15..12P 11..8P 7..4P <strong>3.</strong>.0Chr. Hochberger, Inf1­ET/MT 106


Block Multiplizierer ­Dimensionierung● Berechnungsdauer:n­Blöcke pro Operand ⇒ n 2 Kombinationen zu berechnen● Aufwand:Parallelmultiplizierer benötigt bei i Bit ca. i 2 ­VA● Skalierung:2 mal soviele Blöcke, ½ mal soviele Bit● 4 mal soviel Takte● ¼ der VA½ mal soviele Blöcke, 2 mal soviele Bit● ¼ der Takte● 4 mal soviel VAChr. Hochberger, Inf1­ET/MT 107


Multiplizierer –Gegenüberstellung● Eigenschaften der betrachteten Multiplizierer bei n Bit(Blockmultiplizierer mit i Blöcken)SeriellerMultiplizierer Block Multiplizierer Paralleler MultipliziererArbeitsweise Synchron Synchron AsynchronBerechnungsdauerSehr Lang Skalierbar Sehr kurz(n Takte) I^2 Takteca. 3n VA LaufzeitenSehr gering Skalierbar Sehr hochHardware­1 Addierer <strong>für</strong> 1 Parallelmultiplizierer 1 ParallelmultipliziererAufwandn Bit <strong>für</strong> n/i Bit<strong>für</strong> n BitChr. Hochberger, Inf1­ET/MT 108


Multiplikation – Weitere Aspekte● Was nicht betrachtet wurde:Multiplikation von 2er­Komplement ZahlenMultiplikation von BCD­ZahlenBei<strong>des</strong> nicht direkt mit den betrachteten Multiplizierernmöglich● Spezielle Realisierungen:Multiplikation mit Konstanten● Multiplizierer meistens zusammen mit anderenarithmetischen Funktionen realisiertChr. Hochberger, Inf1­ET/MT 109


Division● A: 2n­stellige Zahl, B: n­stellige Zahl (beide positiv)● Berechnung von A/B:1.B von A stellengerecht subtrahieren(also beim MSB von A beginnen)2.Berechnung der Subtraktion liefert n+1 Stellen (2er­Komplement)<strong>3.</strong>Ergebnis negativ (Vorzeichen­Bit 1):A unverändert übernehmen, 0 ins Ergebnis übernehmen4.Ergebnis positiv (Vorzeichen­Bit 0):Betroffene Stellen von A ändern, 1 ins Ergebnis übernehmen5.A um eine Stelle nach links schieben6.Bei 1. fortfahren, bis alle Stellen behandelt sindChr. Hochberger, Inf1­ET/MT 110


Division● A Hwird nur getaktet, wenn Vorzeichen positiv● Rest verbleibt in A Hnach 4 TaktenBQ1­A HA LChr. Hochberger, Inf1­ET/MT 111


Division – Beispiel● A=65 10=0100 0001 2, B=7 10=0111 2● Q=9 10=1001 2, R=A H=2 10=0010 2B0 1 1 1Q0014­7=­3­=11101 201 10 0 0 0 0 01 10A HA LChr. Hochberger, Inf1­ET/MT 112


Division – Beispiel (2)● 2. Stelle berechnenB0 1 1 1Q10 0118­7=1­=00001 21 0 0 01 10 0 01 10 0A HA LChr. Hochberger, Inf1­ET/MT 113


Division – Beispiel (3)● <strong>3.</strong> Stelle berechnenB0 1 1 1Q00 01 1012­7=­5­=11011 20 01 10 0 01 10 0 0A HA LChr. Hochberger, Inf1­ET/MT 114


Division – Beispiel (4)● 4. Stelle berechnenB0 1 1 1Q00 01 10 0 14­7=­3­=11101 201 10 0 01 10 0 0 0A HA LChr. Hochberger, Inf1­ET/MT 115


Division – Beispiel (5)● 5. Stelle berechnen (!?!)B0 1 1 1Q101 10 0 0119­7=2­=00010 210 0 01 10 0 0 0 0A HA LChr. Hochberger, Inf1­ET/MT 116


Division – 2. Beispiel● A=129 10=1000 0001 2, B=13 10=1101 2● Q=9 10=1001 2, R=A H=12 10=1100 2B1 1 0 1Q0018­13=­5­=11011 2110 0 0 0 0 0 01 10Höchstwertige Stelle verschwindetA HA LChr. Hochberger, Inf1­ET/MT 117


Division – Modifikationen● Es wurden 5 Ergebnis­Bits berechnet● 1. Bit kann aber auch 1 sein!⇒ Ergebnis­Überlauf:Tritt auf, wenn A H≥ B(Beispiel: A=240 (A H=15), B=15 ⇒ Q=16 !)Berechnung <strong>des</strong> Ergebnis­Überlaufs als erster OperationÜberlauf­Bit als MSB <strong>des</strong> Ergebnisses● Erweiterung von A Hum eine StelleA Hkann so immer größer als B werdenZusatz­Bit kann am Ende nicht 1 sein!Chr. Hochberger, Inf1­ET/MT 118


Division – Korrigierte Schaltung● A Hwird nur getaktet, wenn Vorzeichen positiv● Rest verbleibt in A Hnach 4 TaktenBOVQ1­A HA LChr. Hochberger, Inf1­ET/MT 119


Division ­ Varianten● Subtraktion von B durch 2er­Komplement­AdditionZusätzliche Stelle in B <strong>für</strong> Komplement­Darstellungvorsehen(kann wegfallen, da immer 1)Zusätzliche Stelle in A <strong>für</strong> Vorzeichen nicht erforderlich(da immer positiv)● Variante ohne „Rückstellen <strong>des</strong> Restes möglich“● Voll parallele Version der Division möglich(eigener Subtrahierer <strong>für</strong> jeden Zeitschritt)Chr. Hochberger, Inf1­ET/MT 120


Steuerung von Rechenwerken● Serielle Addition, Block Multiplikation und Divisionmüssen gesteuert werden● Unterschiedliche Abläufe:Fest vorgegeben: Serielle Addition, Block MultiplikationVon den Daten abhängig: Division● Spezifikation der Abläufe als endliche Automaten:Menge von ZuständenÜbergänge zw. den ZuständenEin­ und AusgangssignalenChr. Hochberger, Inf1­ET/MT 121


Beispiel: Fahrstuhlsteuerung●Fahrstuhl zw. 2 Etagen2.EtageEnd2●●Knöpfe <strong>für</strong> EtagenwahlEndschalterFahrstuhlEnd1, wenn Fahrstuhlnach unten fährtE1E2End2, wenn Fahrstuhlnach oben fährt1. EtageEnd1●●Eingänge: E1, E2, End1,End2Ausgänge: Rauf, RunterSchalterChr. Hochberger, Inf1­ET/MT 122


Automat: Zustandsdiagramm¬End2¬E2E2FahrehochEnd2Zustände1.Etage2.Etage¬E1End1¬End1FahrerunterE1ZustandsübergängeBedingungImmer nur ein Zustand kann aktiv sein!Chr. Hochberger, Inf1­ET/MT 123


Automaten­Implementierung● Naheliegende Realisierung <strong>des</strong> Automaten:Jeder Zustand entspricht einem FFAlle FF arbeiten mit dem gleichen Takt Genau ein FF ist 1, alle anderen 0(One­Hot oder 1­aus­N Kodierung)1 „wandert“ zw. den FFsWechsel nur wenn entsprechende Bedingung erfüllt ist(Und­Gatter als Tor­Schaltung)● Andere Realisierungen möglichChr. Hochberger, Inf1­ET/MT 124


Realisierung mit Flipflops(One­Hot Kodierung)E2¬End2&&≥1DFHQEnd2&¬E1&≥1DQD Q1.Etage&≥1&¬E2End1QFRD≥1&&2.EtageE1¬End1Chr. Hochberger, Inf1­ET/MT 125


Ablauf (1)E2¬End20&&≥1DFHQEnd2¬E1&&≥1DQ1DQ11. Etage&≥11 &1¬E21End1QFRD≥1&&2.EtageE1¬End1E1 = 0E2 = 0End1 = 1End2 = 0Chr. Hochberger, Inf1­ET/MT 126


Ablauf (2)1 E2¬End21&&1 1≥1DFHQEnd2¬E1&&≥1DQDQ11.Etage&≥10 0&0End1¬E21QFRD≥1&&2.EtageE1¬End1E1 = 0E2 = 1End1 = 1End2 = 0Chr. Hochberger, Inf1­ET/MT 127


Ablauf (3)E2¬End2&&≥1D1FHQEnd2¬E1&&≥1DQD Q1.Etage&≥1&End1¬E2QFRD≥1&&2.EtageE1¬End1E1 = 0E2 = 0End1 = 0End2 = 0Chr. Hochberger, Inf1­ET/MT 128


Ablauf (4)E2¬End2&&≥1D1FH1 End2Q¬E1&&≥1DQD Q1.Etage&≥1&End1¬E2QFRD≥1&&2.EtageE1¬End1E1 = 0E2 = 0End1 = 0End2 = 1Chr. Hochberger, Inf1­ET/MT 129


Ablauf (5)D Q1.Etage≥1E2¬End2&&&&≥1DFHQEnd2¬E1DQ12.EtageE1¬End1&Q D ≥1End1&¬E2FRE1 = 0E2 = 0End1 = 0End2 = 1&&≥1Chr. Hochberger, Inf1­ET/MT 130


Ablauf (6)E2¬End2D Q1.Etage&≥1&End2&&D Q≥1¬E1 ≥1FH&&D 1 Q2.Etage&E11Q D ≥1¬End1End1&¬E2FRE1 = 1E2 = 0End1 = 0End2 = 1Chr. Hochberger, Inf1­ET/MT 131


Ablauf (7)E2¬End2D Q1.Etage&≥1&&&≥1DFHQEnd2¬E12.EtageE1&Q D ≥1¬End1End11&¬E2FRE1 = 0E2 = 0End1 = 0End2 = 0&&≥1DQChr. Hochberger, Inf1­ET/MT 132


Ablauf (8)E2¬End2&&≥1DFHQEnd2&¬E1&≥1DQD Q2.Etage1. Etage&E1Q1D ≥1¬End1& End11&≥1& ¬E2 FRE1 = 0E2 = 0End1 = 1End2 = 0Chr. Hochberger, Inf1­ET/MT 133


Ablauf (9)DE2¬End2Q11.Etage&≥1&&&≥1DFHQEnd2¬E12.Etage&E1Q D ≥1¬End1End1&¬E2FRE1 = 0E2 = 0End1 = 1End2 = 0&&≥1DQChr. Hochberger, Inf1­ET/MT 134


STW­Realisierung mit binärerKodierungSteuereingängeFolgezustandZustandskodierung:Eingänge AusgängeZ1 Z0Z1 Z0 E1 E2 End1 End2 Z1' Z0'1.Etage 0 00 0 X 0 X X 0 0Fahre hoch 0 10 0 X 1 X X 0 12.Etage 1 00 1 X X X 0 0 1Fahre runter 1 10 1 X X X 1 1 01 0 0 X X X 1 01 0 1 X X X 1 1Aktueller Zustand1 1 X X 0 X 1 11 1 X X 1 X 0 0X ⇒ Eingangswert ist egalChr. Hochberger, Inf1­ET/MT 135


ZustandsübergangsfunktionenZ0 und Z1 bilden zusammen den aktuellen ZustandZ0' und Z1' bilden zusammen den FolgezustandZ0'=¬Z1¬Z0 E2 ∨ ¬Z1 Z0 ¬End2 ∨ Z1 ¬Z0 E1 ∨ Z1 Z0 ¬End1Z1'=¬Z1 Z0 End2 ∨ Z1 ¬Z0 ¬E1 ∨ Z1 ¬Z0 E1 ∨ Z1 Z0 ¬End1Durch Zusammenfassen der beiden mittleren Produkte:Z1' = ¬Z1 Z0 End2 ∨ Z1 ¬Z0 ∨ Z1 Z0 ¬End1Chr. Hochberger, Inf1­ET/MT 136


Binär kodiertes STW:Realisierung mit GatternE2&¬End2E1&&≥1DZ0Q¬Q¬End1&End2&≥1DZ1Q¬Q&Chr. Hochberger, Inf1­ET/MT 137


Realisierung mit Gattern ­Probleme● Implementierung ist aufwändigErmitteln der ZustandsübergangsgleichungenMinimierung der resultierenden Schaltung erforderlich● Struktur der Schaltung korrespondiert nicht mitAutomatVerifikation nicht einfach möglichKleine Änderungen am Automaten können großeÄnderungen an der Schaltung bewirken● Lösung: Strukturiertere Implementierung <strong>des</strong>Automaten (Mikroprogramm­STW)Chr. Hochberger, Inf1­ET/MT 138


Speicher● Bisher:Speicherung von Bits in FlipFlopsSpeicherung von Worten in Registern● Gefordert:Schaltung zur Speicherung großer Mengen vonInformationenSelektiver Zugriff auf Teile der gespeicherten Information● Lösungsansatz:Speicherung in D­LatchesAuswahl durch Spezifikation eines Teilbereichs <strong>des</strong>Speichers(Adresse)Chr. Hochberger, Inf1­ET/MT 139


Speicher ­ Schaltung● Beispiel: 2 * 2 Bit Speicher1 Adress­Leitung2 Daten­Eingänge2 Daten­AusgängeI 1I 0Write&DEQDEQ&DEQDEQA 0O 1O 0Chr. Hochberger, Inf1­ET/MT 140


Speicher ­ Funktionsweise● Auslesen <strong>des</strong> Speichers:Anlegen der gewünschten AdresseNach Verzögerungszeit <strong>des</strong> Multiplexers liegt Datum vor● Übertragbar auf mehrere Adressleitungenn Adressleitungen ⇒ 2 n ­zu­1 MultiplexerManchmal auch 2 n Speicherplätze genannt● Übertragbar auf beliebige WortbreitenTypische Wortbreiten: 4, 8, 16, 32, 64 BitInnerhalb eines Chips meistens nur bis zu 16 BitWortbreiteChr. Hochberger, Inf1­ET/MT 141


Speicher – Funktionsweise (2)● Schreiben in den SpeicherAnlegen der gewünschten Adresse und <strong>des</strong> zuschreibenden DatumsAktivieren der SchreibleitungLatches übernehmen DatenDeaktivieren der Schreibleitung(Speicher ändert sich nicht mehr)● Übertragbar auf mehrere AdressleitungenSchreibimpuls muss jeweils <strong>für</strong> ein Wort generiert werdenUnd­Verknüpfung muss eine eindeutige Kombination derAdressbits selektierenChr. Hochberger, Inf1­ET/MT 142


Reale Speicher● Speicherung in D­Latch zu aufwändig● In realen Speichern wird jeweils ein Bit gespeichert: In einem Kondensator● Dynamic Random Access Memory (DRAM)● Verliert seine Ladung, muss daher regelmäßigaufgefrischt werden In einer 6­Transistor­Zelle● Static Random Access Memory (SRAM)● Hält die Information beliebig lang Spezielle Varianten <strong>für</strong> Festwertspeicher (ROM, EPROM, ...)Chr. Hochberger, Inf1­ET/MT 143


Reale Speicher (2)●●Selektion der Ausgabewerte durch Multiplexer zuaufwändigReale Selektion eines SpeicherelementesAnordnung der Speicherelemente in einer MatrixZweistufige AdressierungZunächst Aktivierung einer Zeile der MatrixDann Selektion eines Elementes der ZeileMatrix meist QuadratischBeide Auswahlschaltungen verarbeiten dieHälfte der Adressbitsn­Bitn­BitZeilenauswahlSpaltenauswahlChr. Hochberger, Inf1­ET/MT 144


MikroprogrammierteSteuerwerke● Strukturierte Implementierung von Automaten● Realisierung der Zustandsübergangsfunktion durcheinen SpeicherAdresse wird gebildet aus● Zustand (n Bit)● Eingangssignale X (i Bit)Ausgang liefert● Folgezustand (n Bit)● Ausgangssignale Y (j Bit)● Größe <strong>des</strong> Speichers: 2 (n+i) *(n+j) BitChr. Hochberger, Inf1­ET/MT 145


MP­Steuerwerke (2)Grundstruktur von MP­Steuerwerken(andere Varianten sind möglich)XiSpeicherTaktjnYChr. Hochberger, Inf1­ET/MT 146


MP­Steuerwerke – Beispiel● Steuerung <strong>des</strong> Divisions­Schaltwerks● Steuersignale <strong>des</strong> Dividierers:Übernehmen <strong>des</strong> Subtraktionsergebnisses (DL ­ Laden)Schieben <strong>des</strong> Quotienten (ES – Ergebnis schieben)Schieben <strong>des</strong> Dividenden (DS – Dividend schieben)Müssen durch das Steuerwerk erzeugt werden● Bedingungen beim Ablauf der SteuerungVorzeichen der Subtraktion (P – Positiv)● Formulierung der Steuerung als Automat(aus Darstellungsgründen nur <strong>für</strong> zwei Stellen)Chr. Hochberger, Inf1­ET/MT 147


MP­Steuerwerke – Beispiel (2)● 7 Zustände3 Bit zur Kodierung derZustände● 1 EingangssignalInsgesamt 1+3 Adressleitungen(2 4 = 16 Speicherplätze)DL,ES● 3 AusgangssignaleDL,ESZ0P ¬PZ1 Z2PZ3¬PZ4 Z5ESDSESWortbreite <strong>des</strong> Speichers 6 BitZ6DSChr. Hochberger, Inf1­ET/MT 148


MP­Steuerwerke – Beispiel (3)PA 3A 2A 1A 0Adresse Z' Y (DL,DS,ES)0 010 0011 011 0102 011 0103 101 0014 110 0105 110 0106 000 0007 ­­­ ­­8 001 1019 011 01010 011 01011 100 10112 110 01013 110 01014 000 00015 ­­­ ­­DL,ESDL,ESZ0Z1 Z2Z4P ¬PPZ3Z6¬PZ5ESDSESDSDL DSChr. Hochberger, Inf1­ET/MT 149ES


Allgemeine Rechenwerke● Bisher:Separate Rechenwerke <strong>für</strong> jede Operation● In Realität:Gemeinsame Realisierung aller Operationen in einerSchaltungAuswahl der durchzuführenden Operation durchzusätzlichen Eingang (Operationscode)Meistens Kombination logischer und arithmetischerOperationenWird als ALU bezeichnet (Arithmetic and Logic Unit)Chr. Hochberger, Inf1­ET/MT 150


Allgemeine Rechenwerke (2)Symbol:ABOPCALUStatusR● Status: Eigenschaften <strong>des</strong> ErgebnissesR=0 (Z­Flag)R


Allgemeine Rechenwerke (3)● Typische Operationen einer ALUArithmetische Operationen●●A, B, 0, A+1, A+B, A­BSeltener: A*B, A/BLogische Operationen●●A OR B, A AND B, A EXOR B, A NOR B, A NAND B2*A (Linksshift), A/2 (Rechtsshift), zyklischesSchiebenChr. Hochberger, Inf1­ET/MT 152

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!