• Keine Ergebnisse gefunden

• Logische Operationen

N/A
N/A
Protected

Academic year: 2022

Aktie "• Logische Operationen"

Copied!
30
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Grundlagen der Rechnerarchitektur

Binäre Logik und Arithmetik

Binäre Logik und Arithmetik

(2)

Übersicht

• Logische Operationen

• Addition Subtraktion und negative Zahlen Addition, Subtraktion und negative Zahlen

• Logische Bausteine

• Darstellung von Algorithmen

• Multiplikation

• Multiplikation

• Division

• Gleitkommazahlen

• Gleitkommaarithmetik

• Gleitkommaarithmetik

(3)

Logische Operationen

(4)

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 --- --- ---

(5)

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

(6)

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 =

(7)

Was bedeutet Shift um i?

Links‐Shift:

Rechts‐Shift:

(8)

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 -->

(9)

Addition, Subtraktion und negative Zahlen

(10)

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)

(11)

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:

(12)

Quiz

Zweierkomplement‐Binärzahl B=...1111011 als Dezimalzahl?

Was ist die Dezimalzahl –7  als Binärzahl B in Zweierkomplement?

(13)

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)

(14)

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

(15)

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

. .

. .

(16)

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:

(17)

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

(18)

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 -->

(19)

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:

(20)

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

(21)

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

...

(22)

Logische Bausteine

(23)

Logische Bausteine

K bi t i h S h lt

Kombinatorische Schaltungen

(24)

Gatter

Funktion      Eingabe     Symbol     Ausgabe Verallgemeinerung auf n Eingänge

AND A AND B

B

A A1

A2 A1 AND A... 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 A... OR An NOT

Inverter

A NOT A

An

Oder‐Gatter mit n Eingängeng g

(25)

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:

(26)

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

(27)

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, 

(28)

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

(29)

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

(30)

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.

Referenzen

ÄHNLICHE DOKUMENTE

Möglichkeiten Dieses Beispiel lässt sich prinzipiell realisieren durch: 1. ) die Simulation einer Urnenziehung, zu der dann eine Stichprobe mit Abbruchbe- dingung definiert wird, 2.

Kombinatorische Abzählprobleme können oft auf einfach Weise durch geeignete Bino- mialkoeffizienten gelöst werden. Teilaufgabe a) ist ein Beispiel. Die in b) behandelte Näherung

Hier wird gezeigt, dass sich eine Kaskade aus kolloidalen Quantenpunkten tatsächlich realisieren lässt und sich damit die Effizienz solcher Nanokristallfestkörper deutlich

Geben sie formale Beweise (Deduktionen) für die drei Aussagen aus Beispiel 3.1.2 aus dem Buch Sørensen, Morten Heine B., Urzyczyn, Paweª: Lectures on the Curry-Howard Isomorphism,

Geben sie formale Beweise (Deduktionen) für die drei Aussagen aus Beispiel 3.1.2 aus dem Buch Sørensen, Morten Heine B., Urzyczyn, Paweª: Lectures on the Curry-Howard Isomorphism,

Gemeinsame Abgaben von Gruppen bis zu 4 Personen sind möglich. 42) aus dem Curry-Howard Isomorphismus Buch nach und zeigen Sie, dass die Aussagen in diesem Beispiel gelten..

Geben sie formale Beweise (Deduktionen) für die drei Aussagen aus Beispiel 3.1.2 aus dem Buch Sørensen, Morten Heine B., Urzyczyn, Paweª: Lectures on the Curry-Howard Isomorphism,

Wenn sich der Kreis nach dem Auftrennen in einen Bogen nicht an diese Tangente trimmen lässt, dann werden einfach diese Bögen gelöscht und über die Funktion „Abrunden“ an