Grundlagen der Rechnerarchitektur
Binäre Logik und Arithmetik
Binäre Logik und Arithmetik
Übersicht
• Logische Operationen
• Addition Subtraktion und negative Zahlen Addition, Subtraktion und negative Zahlen
• Logische Bausteine
• Darstellung von Algorithmen
• Multiplikation
• Multiplikation
• Division
• Gleitkommazahlen
• Gleitkommaarithmetik
• Gleitkommaarithmetik
Logische Operationen
AND, OR und XOR
A B AND 0 0
A B OR 0 0
A B XOR 0 0
0 0 0 1
0 0 0 1
0 0 0 1 1 0
1 1
1 0 1 1
1 0 1 1
Notationen: Notationen: Notation:
Beispiele:
1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 AND 0 1 1 1 1 OR 1 1 1 0 1 XOR 1 0 1 0 1 --- --- ---
NOT, NAND und NOR
A NOT 0
A B NAND 0 0
A B NOR 0 0
0 1
0 0 0 1
0 0 0 1
N i 1 0
1 1
1 0 1 1 Notationen:
Beispiele:
1 1 0 0 1 1 1 0 0 1 NOT 1 1 0 0 1 NAND 1 1 1 0 1 NOR 1 0 1 0 1
Logischer Links‐ und Rechts‐Shift
Logischer Links‐Shift „b << x“:
Verschiebe Bits in b nach links, um den angegebenen Wert x.
Di l St ll d it 0 f füllt
Die neuen leeren Stellen werden mit 0 aufgefüllt.
Logischer Rechts‐Shift „b >> x“:
Verschiebe Bits nach rechts, um den angegeben Wert x.
Verschiebe Bits nach rechts, um den angegeben Wert x.
Die neuen leeren Stellen werden mit 0 aufgefüllt.
Links‐ und Rechts‐Shift am Beispiel von 8‐Bit‐Zahlen:
0 1 0 0 1 1 1 1 << 1
0 1 0 0 1 1 1 1 << 1 = 0 0 1 1 1 1 0 0 << 2 = 0 1 0 0 1 1 1 1 >> 1 = 1 1 1 1 0 0 0 0 >> 2 = 1 1 1 1 0 0 0 0 >> 2 =
Was bedeutet Shift um i?
Links‐Shift:
Rechts‐Shift:
Links‐ und Rechts‐Rotation
Links‐Rotation von b um x Stellen:
Verschiebe Bits in b nach links, um den angegebenen Wert x.
Di l St ll d it d h h b f füllt
Die leeren Stellen werden mit den herausgeschobenen aufgefüllt.
Rechts‐Rotation von b um x Stellen:
Verschiebe Bits nach rechts, um den angegeben Wert x.
Verschiebe Bits nach rechts, um den angegeben Wert x.
Die leeren Stellen werden mit den herausgeschobenen aufgefüllt.
Links‐ und Rechts‐Rotation am Beispiel von 8‐Bit‐Zahlen:
Li k R t ti 2 St ll Links‐Rotation um 2 Stellen:
0 1 0 0 1 1 1 1 -->
Rechts‐Rotation um 2 Stellen:
1 1 1 1 0 0 0 1 -->
Addition, Subtraktion und negative Zahlen
Addition und Subtraktion von binären Zahlen
Beispiel C = A + B:
(Carry)
1 1 1 0 1 0 (A)
1 1 1 0 1 0 (A) + 1 0 1 0 1 1 (B) ---
= (C)
Beispiel C = A – B:
1 1 1 0 1 0 (A) - 1 0 1 0 1 1 (B)
(Carry) ---
= (C)
= (C)
Darstellung von negativen binären Zahlen
Beobachtung für eine beliebige Binärzahl B, z.B. B=110010:
B B
+ NOT(B)
---
= B + NOT(B) 1
+ (Carry)
---
Also gilt:
Also gilt:
Quiz
Zweierkomplement‐Binärzahl B=...1111011 als Dezimalzahl?
Was ist die Dezimalzahl –7 als Binärzahl B in Zweierkomplement?
Subtraktion von binären Zahlen nochmal
Beispiel C = A – B:
1 1 1 0 1 0 (A)
- 1 0 1 0 1 1 (B)
- 1 0 1 0 1 1 (B)
Bestimme Zweierkomplement zu B, also –B:p ,
Also ist C:
(Carry) (Carry) 1 1 1 0 1 0 (A)
+ ... 1 1 0 1 0 1 0 1 (-B)
N‐Bit binäre Zahlen (signed)
n‐Bit‐Darstellung ist ein Fenster auf die ersten n Stellen der Binär‐Zahl
…0000000000000000000000000000000000000000000000000110 = 6
…1111111111111111111111111111111111111111111111111101 = -3 Beispiel: 16‐Bit
MSB bestimmt das Vorzeichen. MSB=0 bedeutet nicht‐negativ, MSB=1 bedeutet negativ.
Beispiel vorzeichenbehaftete 8 Bit Binärzahlen:
Beispiel vorzeichenbehaftete 8‐Bit‐Binärzahlen:
0 0 0 0 0 0 0 0 = 0 1 0 0 0 0 0 0 0 = -128 0 0 0 0 0 0 0 1 = 1 1 0 0 0 0 0 0 1 = -127 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 127 0 0 0 0 0 0 1 0 = 2 1 0 0 0 0 0 1 0 = -126
. .
. .
. .
0 1 1 1 1 1 0 1 = 125 1 1 1 1 1 1 0 1 = -3 0 1 1 1 1 1 1 0 = 126 1 1 1 1 1 1 1 0 = -2 0 1 1 1 1 1 1 1 = 127 1 1 1 1 1 1 1 1 = -1
Nicht‐vorzeichenbehaftete Zahlen (unsigned)
n‐Bit‐Darstellung ist ein Fenster auf die ersten n Stellen der Binär‐Zahl
…0000000000000000000000000000000000000000000000000110 = 6
…0000000000000000000000000000000000001111111111111101 = 65533 Beispiel: 16‐Bit
MSB bestimmt das Vorzeichen nicht. Zahl ist immer nicht‐negativ.
Beispiel nicht vorzeichenbehaftete 8 Bit Binärzahlen:
Beispiel nicht‐vorzeichenbehaftete 8‐Bit‐Binärzahlen:
0 0 0 0 0 0 0 0 = 0 1 0 0 0 0 0 0 0 = 128 0 0 0 0 0 0 0 1 = 1 1 0 0 0 0 0 0 1 = 129 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 129 0 0 0 0 0 0 1 0 = 2 1 0 0 0 0 0 1 0 = 130
. .
. .
Signed‐N‐Bit Binär in Dezimal umrechnen
l hl
Beispiel 8‐Bit‐Binärzahl B:
1 1 1 1 1 1 0 1 binär ist dezimal:
1 1 1 1 1 1 0 1 binär ist dezimal:
Beobachtung für folgende 8‐Bit‐Zahl C (g g (Erinnerung: 10000000 binär ist –128g ):) 1 0 0 0 0 1 0 1
Also für signed n‐Bit‐Binärzahl b = bn‐1 bn‐2 ... b0 gilt:
Sign‐Extension
Gegeben 6 und –3 in 16‐Bit‐Darstellung.
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
Wie sieht die 32‐Bit‐Binärdarstellung aus?
6 in 16‐Bit‐Binärdarstellung –3 in 16‐Bit‐Binärdarstellung Wie sieht die 32 Bit Binärdarstellung aus?
6 in 32‐Bit‐Binärdarstellung?
6 in 32‐Bit‐Binärdarstellung?
3 i 32 Bit Bi ä d t ll ? –3 in 32‐Bit‐Binärdarstellung?
Erinnerung: n Bit Darstellung ist ein Fenster auf die ersten n Stellen der Binär Zahl Erinnerung: n‐Bit‐Darstellung ist ein Fenster auf die ersten n Stellen der Binär‐Zahl
Arithmetischer Rechts‐Shift
Arithmetischer Rechts‐Shift von b um x Stellen:
Verschiebe Bits nach rechts, um den angegeben Wert x.
Di l St ll d it d Si Bit f füllt
Die neuen leeren Stellen werden mit dem Sign‐Bit aufgefüllt.
Arithmetischer Rechts‐Shift am Beispiel von 8‐Bit‐Zahlen:
A ith ti h R ht Shift 2 St ll Arithmetischer Rechts‐Shift um 2 Stellen:
0 1 0 0 1 1 1 1 -->
Arithmetischer Rechts‐Shift um 2 Stellen:
1 1 1 1 0 0 0 1 -->
Overflow
Einschränkung auf n‐Bit kann einen Overflow bei Addition erzeugen:
(C )
(Carry) (A)
+ (B)
0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1
+ (B) ---
= (C) 0 1 1 0 0 1 1 1
Addition von negativer und nicht‐negativer Zahl. Overflow möglich?
O fl f d t d i d t ilt
Overflow erfordert, dass mindestens gilt:
Overflow
Subtraktion von zwei negativen Zahlen x und y. Overflow möglich?
Der Fall „zwei nicht‐negativen Zahlen“ ist analog.
Also: Overflow in diesem Fall nicht möglich.
Zusammenfassung: Wann kann ein Overflow eintreten?
Operation Operand A Operand B Ergebnis welches Overflow anzeigt
A+B ≥ 0 ≥ 0 < 0
≥ 0
A+ B < 0 < 0 ≥ 0
A–B ≥ 0 < 0 < 0
A B < 0 ≥ 0 ≥ 0
A–B < 0 ≥ 0 ≥ 0
Randbemerkung
Andere Darstellungsformen für negative Binärzahlen:
• Einerkomplement: Negativer Wert von B ist NOT(B)
• Sign‐and‐Magnitude: MSB ist das Vorzeichen. Rest ist der Wert.
• Biased‐Notation (Beispielsweise mit 0 auf 1000...0000):
0000 0000 0000 0000 0000 0000 0000 0000 = kleinster negativer Wert 0000 0000 0000 0000 0000 0000 0000 0000 = kleinster negativer Wert 0000 0000 0000 0000 0000 0000 0000 0001 = kleinster negativer Wert + 1
...
0111 1111 1111 1111 1111 1111 1111 1111 1 0111 1111 1111 1111 1111 1111 1111 1111 = ‐1 1000 0000 0000 0000 0000 0000 0000 0000 = 0 1000 0000 0000 0000 0000 0000 0000 0001 = 1
...
Logische Bausteine
Logische Bausteine
K bi t i h S h lt
Kombinatorische Schaltungen
Gatter
Funktion Eingabe Symbol Ausgabe Verallgemeinerung auf n Eingänge
AND A AND B
B
A A1
A2 A1 AND A2 ... AND An Und‐Gatter
Und‐Gatter mit n Eingängen An
OR
Oder‐Gatter
Und Gatter mit n Eingängen A
B
A OR B
A1 Oder Gatter
NOT A
A1 A2
A1 OR A2 ... OR An NOT
Inverter
A NOT A
An
Oder‐Gatter mit n Eingängeng g
Kombinatorische Schaltungen
Jede boolesche Funktion (gegeben als logischer Ausdruck) wie z.B.
f( ) ( ( ) )
f(A,B) = NOT( NOT(A) OR B)
Lässt sich als kombinatorische Schaltung realisieren Das Beispiel:
Lässt sich als kombinatorische Schaltung realisieren. Das Beispiel:
Inverter werden häufig abgekürzt dargestellt. Das Beispiel:
Wahrheitstabellen
Jede boolesche Funktion lässt mit einer Wahrheitstabelle darstellen.
l f( ) ( ) l h h b ll
Beispiel: f(A,B,C) = A AND NOT(B OR C) als Wahrheitstabelle
A B C B OR C NOT(B OR C) f(A,B,C)=A AND NOT(B OR C) 0 0 0
0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1
Wahrheitstabellen
Jede Wahrheitstabelle kann man mit einem logischen Ausdruck darstellen. Beispiel:
A B C f(A,B,C)
0 0 0 1
0 0 0 1
0 0 1 1
0 1 0 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1 Ziel ist aber nicht irgend einen Ausdruck zu finden,
Wahrheitstabellen
Bei der Suche nach möglichst kleinen kombinatorischen Schaltungen können auch sogenannte Don‘t ‐Care‐Terme recht hilfreich sein.
A B C f(A,B,C)
0 0 0 1
0 0 0 1
0 0 1 1
0 1 0 0
0 1 0 0
0 1 1 X
Don‘t‐Care Terme: In der kombinatorischen
1 0 0 1
1 0 1 X
Schaltung, die diese Funktion implementiert, ist es egal welche Ausgabe die Schaltung für die Eingaben 011, 101 und 110 produziert.
1 1 0 X
1 1 1 1
Wahrheitstabellen
In einer Wahrheitstabelle kann für die Eingaben auch mehrere Ausgabe‐Bits festgelegt werden. Beispiel:
Eingabe Bit 0
Eingabe Bit 1
Eingabe Bit 2
Ausgabe Bit 0
Ausgabe Bit 1
0 0 0 1 1
0 0 1 1 1
0 0 1 1 1
0 1 0 0 1
0 1 1 0 1
0 1 1 0 1
1 0 0 1 0
1 0 1 1 1
1 0 1 1 1
Beispiel: Addition zweier Bits mit Übertrag
A B s(A,B)=A+B c(A,B)=Carry
Wahrheitstabelle Boolesche Ausdrücke 0 0
0 1 1 0 1 1 1 1
Kombinatorische Schaltung
Ist das eine gute Schaltung?
Wie sieht n‐Bit‐Addition aus?
Mehr dazu in der Vorlesung Mehr dazu in der Vorlesung Digitaltechnik.
Hier nehmen wir logische
B l l Bl kb i
Bauelemente als Blackbox mit Eingängen und Ausgängen an. Die Funktion des Bausteins wird nur textuell beschrieben.