560 likes | 845 Views
Microcontroller Teil 2. Wiederholung Duales Zahlensystem Schaltungslogik. Wiederholung. Geschichte des Microcontrollers Zuse Z3 Von-Neumann Architektur Intel 4004 Transistortechnik 2 Mrd Transistoren auf einem Chip. Duales Zahlensystem. Dezimalsystem: Zahlensystem zur Basis 10
E N D
VL Microcontroller - Dipl.-Inf. Swen Habenberger Microcontroller Teil 2 • Wiederholung • Duales Zahlensystem • Schaltungslogik
VL Microcontroller - Dipl.-Inf. Swen Habenberger Wiederholung • Geschichte des Microcontrollers • Zuse Z3 • Von-Neumann Architektur • Intel 4004 • Transistortechnik • 2 Mrd Transistoren auf einem Chip
VL Microcontroller - Dipl.-Inf. Swen Habenberger Duales Zahlensystem • Dezimalsystem: Zahlensystem zur Basis 10 • Ziffern 0 - 9 • Binärsystem: Zahlensystem zur Basis 2 • Ziffern 0 und 1 • Oktalsystem: Zahlensystem zur Basis 2^3 = 8 • Ziffern 0 - 7 • Hexadezimalsystem: Zahlensystem zur Basis 2^4 = 16 • Ziffern 0-9 und A-F
VL Microcontroller - Dipl.-Inf. Swen Habenberger Umrechnung Dezimalzahl in Binärzahl • 243= 243 % 2 = 1 • = 243 / 2 = 121 • = 121 % 2 = 1 • = 121 / 2 = 60 • = 60 / 2 = 30 Rest 0 • = 30 / 2 = 15 Rest 0 • = 15 / 2 = 7 Rest 1 • = 7 / 2 = 3 Rest 1 • = 3 / 2 = 1 Rest 1 • = 1 / 2 = 0 Rest 1 => 11110011
VL Microcontroller - Dipl.-Inf. Swen Habenberger Umrechnung Binärzahl in Dezimalzahl • 11110011= 1*2^0 + 1* 2^1 + 0* 2^2 + 0* 2^3 + 1* 2^4 • + 1* 2 ^5 + 1* 2^6 + 1* 2^7 • = 1*1 + 1*2 + 0*4 + 0*8 + 1*16 • + 1*32 + 1*64+1*128 • = 1+2+16+32+64+128 • = 243
VL Microcontroller - Dipl.-Inf. Swen Habenberger Umrechung Dezimalzahl in Hexadezimalzahl • 243 = 243 % 16 = 3 => 3 • = 243 / 16 = 15 • = 15 % 16 = 15 => F • = 15 / 16 = 0 • => 243 = F3
VL Microcontroller - Dipl.-Inf. Swen Habenberger Umrechnung Hexadezimalzahl in Dezimalzahl • F3 = 3*16^0 + F * 16^1 • = 3*1 + 15 * 16 • = 3 + 240 • = 243 • TIPP zum Üben: Der Windowstaschenrechner kann diese 3 Zahlenformate darstellen und in einander überführen
VL Microcontroller - Dipl.-Inf. Swen Habenberger Umwandlung Binärzahl in Hexadezimalzahl und umgekehrt • 11110011 = 11110011 = F3 • F 3 =1111 0011 = 11110011 • Hexadezimalzahlen werden oft mit 0x als Prefix geschrieben: 0xF3 • Umwandlungen in jedes beliebige Zahlensystem, z.B. Oktalsystem funktionieren analog.
VL Microcontroller - Dipl.-Inf. Swen Habenberger 2er Komplement • Bildung einer Negativen Zahl • Positive Darstellung der Zahl • Invertierung aller Bits • Addieren von 1 • Beispiel: -13 für eine 8 Bit Zahl • Berechne 13: 00001101 • Invertiere Bits: 11110010 • Addiere 1: 11110011
VL Microcontroller - Dipl.-Inf. Swen Habenberger Zahlenkreis der 2erKomplementzahlen
VL Microcontroller - Dipl.-Inf. Swen Habenberger Signed vs unsigned • Man unterscheidet zwischen signed und unsigned Zahlen • Signed: Mit Vorzeichen (Negative und Positive Zahlen) • Egal ob 8-, 16- oder 32-Bit Zahlen, das höchstwertige Bit gibt das Vorzeichen an. • Unsigned: Ohne Vorzeichen (Nur positive Zahlen) • Alle Bits tragen zum Ergebnis bei • Achtung: • 11110011 = 243 (unsigned) • 11110011 = - 13 (signed)
VL Microcontroller - Dipl.-Inf. Swen Habenberger Zahlenbereiche Ganze Zahlen (Integer) • Signed: • bei 8 Bit: −128 bis +127 • bei 16 Bit: −32.768 bis +32.767 • bei 32 Bit: −2.147.483.648 bis +2.147.483.647 • bei 64 Bit: −9.223.372.036.854.775.808 bis +9.223.372.036.854.775.807 (9 Trillionen) • Unsigned: • bei 8 Bit: 0 bis 255 • bei 16 Bit: 0 bis + 65.535 • bei 32 Bit: 0 bis +4.294.967.295 • bei 64 Bit: 0 bis + 18.446.744.073.709.551.615
VL Microcontroller - Dipl.-Inf. Swen Habenberger Rechnen mit Binärzahlen (Ganzzahlig) • Addition • Subtraktion • Multiplikation • Division • Mögliche Probleme • Overflow (Addition) • Underflow (Subtraktion) • Multiplikation erfodert doppelte Byte Anzahl • Division geht nicht auf
VL Microcontroller - Dipl.-Inf. Swen Habenberger Addition von 2 8-Bitzahlen • 9 + 5 = 14 • 00001001 (9) + 00000101 (5) = 00001110 (14) 120 + 65 = 185 • 0111 1000 + 0100 0001 = 1011 1001 • Signed oder unsigned? • Unsigned:Korrektes Ergebnis (185) • Signed: Overflow (-71)
VL Microcontroller - Dipl.-Inf. Swen Habenberger Subtraktion • Subtraktion ist die Addition des negativen Zweier Komplements • 9-5 = 4 <=> 9 + (-5) = 4 • 0000 1001 (9) + 1111 1011 (-5) = 0000 0100 (4) -120 – 65 = -185? 1000 1000 + 1011 1111 = 0100 0111 (71) UNDERFLOW!!!
VL Microcontroller - Dipl.-Inf. Swen Habenberger Multiplikation / Division • 2^8*2^8=2^16 • Es werden immer doppelt soviele Bytes gebraucht, wie die Ursprungszahlen hatten. • Muliplikation und Division bedeutet eine Verschiebung der Bits nach links (Multiplikation) und nach rechts (Division) • << 4 bedeutet eine Multiplikation mit 2^4 (LeftShift) • Auffüllen mit 0 von hinten • >> 4 bedeutet Division durch 2^4 (RightShift) • Auffüllen von vorne mit Vorzeichenbit
VL Microcontroller - Dipl.-Inf. Swen Habenberger Multiplikation • 12 * 13 = 156 • 0000 1100 * 0000 1101 = 0000 0000 1001 1100 1100 · 1101 ----------- 1100 + 1100 + 0000 + 1100 ----------- 10011100 (156)
VL Microcontroller - Dipl.-Inf. Swen Habenberger Multiplikation • Verbesserungen der Multiplikation: • Booth-Algorithmus • Bit-Pair-Verfahren weitere Verbesserungen des Booth-Algorithmuses • Verbesserungen beruhen darauf das viele 0 in den positiven Zahlen und viele 1 am Anfang von negativen Zahlen stehen
VL Microcontroller - Dipl.-Inf. Swen Habenberger Division • 168 / 6 = 28 Rest 0 • 172 / 6 = 28 Rest 4
VL Microcontroller - Dipl.-Inf. Swen Habenberger Fliesskomma/Gleitkommazahlen • f = s · m · 2^e • F = Fliesskommazahl, z.B. 0,345 • S = Vorzeichenbit (1 Bit) • M = Mantisse (23 bzw. 52 Bit) • E = Exponent ( 8 bzw. 11 Bit) • Normalisierung notwendig • 2,0 * 10^1 = 0,2* 10^2 = 20* 10^0
VL Microcontroller - Dipl.-Inf. Swen Habenberger Dezimalzahl nach Binärzahl • 11,25 = 01000 001001101000000000000000000 • Exponent muss so gewählt werden, dass die Mantisse eine Zahl zwischen 1 und 2 erhält • Bildung des 2er Logarithmus • Log(11,25) = 3,..... • Damit dieser Exponent nicht negativ wird wird 2^Bitanzahl Exponent-1 hinzuaddiert • (hier also 128-1=127) • Mantisse = (11,25/2^3 - 1) *2^{23} = • (1,40625 - 1) * 2^23 = 3407872 -> 01101000000000000000000
VL Microcontroller - Dipl.-Inf. Swen Habenberger IEEE754 Einfache Genauigkeit • 0 < e < 255 =⇒ x = (−1)v · 1.m · 2e−127 Normale reelle Zahl • e = 0, m = 0 =⇒ x=0 Null • e = 0, m = 0 =⇒ x = (−1)v · 0.m · 21−127 Nichtnormalisierte Zahl • e = 255, m = 0 =⇒ x = (−1)v · ∞ Unendlich • e = 255, m = 0 =⇒ x = NAN Not a Number, keine Zahl • Genauigkeit 15 Stellen • Dies bedeutet nicht 15 Nachkommastellen, sondern • z.B.: 1234567890,12345 das alle weiteren Nachkommastellen „ungenau“ sind
VL Microcontroller - Dipl.-Inf. Swen Habenberger Digitale Schaltungstechnik • NOT (Invertierer) • AND (*) Konjunktion • OR (+) Disjunktion • XOR • NAND • NOR • Konjungierte Normalform • Disjunktierte Normalform
VL Microcontroller - Dipl.-Inf. Swen Habenberger Standardisierung von Schaltungen • Gängige Normen: • International Electrotechnical Commission (IEC) • Norm 60617-12 ist Standard • US ANSI IEEE 91-1984 • Alternativer Standard • DIN 40700 (Deutsche Industrie Norm) • Wurde 1996-1998 durch die DIN-Norm 60617 ersetzt
VL Microcontroller - Dipl.-Inf. Swen Habenberger AND • Schaltsymbole: • IEC • ANSI • DIN • Stellt eine Multiplikation dar • Schreibweise AB bzw • Logisch: A ^ B • Fachbegriff: Konjunktion
VL Microcontroller - Dipl.-Inf. Swen Habenberger OR • Schaltsymbole: • IEC • ANSI • DIN • Stellt eine Addition dar • Schreibweise A+B bzw • Logisch: A V B • Fachbegriff: Disjunktion
VL Microcontroller - Dipl.-Inf. Swen Habenberger XOR • Schaltsymbole: • IEC • ANSI • DIN • Es darf nur genau ein Eingang wahr sein
VL Microcontroller - Dipl.-Inf. Swen Habenberger NAND • Schaltsymbole: • IEC • ANSI • DIN • Häufiger Baustein in der Halbleitertechnik • Sheffer-Operation • Sheffer hat nachgewiesen, dass man alle logischen Operatoren mit NANDs realisieren kann
VL Microcontroller - Dipl.-Inf. Swen Habenberger NOR • Schaltsymbole: • IEC • ANSI • DIN • Häufiger Baustein in der Halbleitertechnik • Peirce-Operation • Peirce hat die Grundlagen für Sheffer gelegt
VL Microcontroller - Dipl.-Inf. Swen Habenberger Wahrheitstafeln • Wahrheitstabellen werden verwendet um Boole'sche Funktionen zu definieren, und / oder sie darzustellen. • Die Anzahl der möglichen Kombinationen steigt exponentiell mit der Anzahl der Eingangsvariablen an => 2 ^Anzahl der Eingangsvariablen • Anwendung auf Funktionen mit nur wenigen (4) Eingangsvariablen beschränkt. • Zur Vereinheitlichung von Wahrheitstabellen stehen auf der linken Seite die Zahlen als Binärcode da
VL Microcontroller - Dipl.-Inf. Swen Habenberger Wahrheitstabellebeispiel
VL Microcontroller - Dipl.-Inf. Swen Habenberger Konjugierte Normalform • Eine Formel der Aussagenlogik ist in konjunktiver Normalform, wenn sie eine Konjunktion von Disjunktionstermen ist. Disjunktionsterme sind dabei Disjunktionen von Literalen. Literale sind nichtnegierte oder negierte Variablen. Eine Formel in KNF hat also die Form • Beispiel:
VL Microcontroller - Dipl.-Inf. Swen Habenberger Disjunktive Normalform • Eine Formel der Aussagenlogik ist in disjunktiver Normalform, wenn sie eine Disjunktion von Konjunktionstermen ist. Ein Konjunktionsterm wird ausschließlich durch die konjunktive Verknüpfung von Literalen gebildet. Literale sind dabei nichtnegierte oder negierte Variablen. Eine Formel in DNF hat also die Form
VL Microcontroller - Dipl.-Inf. Swen Habenberger De Morgansche Regeln • DeMorgan hat die Gesetze für die Umformung von logischen Aussagen formuliert
VL Microcontroller - Dipl.-Inf. Swen Habenberger Halbaddierer
VL Microcontroller - Dipl.-Inf. Swen Habenberger Schaltbild Halbaddierer
VL Microcontroller - Dipl.-Inf. Swen Habenberger Volladdierer
VL Microcontroller - Dipl.-Inf. Swen Habenberger Schaltbild Volladdierer
VL Microcontroller - Dipl.-Inf. Swen Habenberger 4-Bit-Addierer
VL Microcontroller - Dipl.-Inf. Swen Habenberger Probleme: Hazards • Übergang 111 zu 110
VL Microcontroller - Dipl.-Inf. Swen Habenberger Lösung zusätzliche Gatter
VL Microcontroller - Dipl.-Inf. Swen Habenberger Flip-Flops • Flip-flops dienen als Speicher eines Bits • Werden häufig als Registerbausteine eingesetzt • Genauer Aufbau wird bei der Architektur des Prozessors besprochen werden