• Keine Ergebnisse gefunden

• Logische Operationen

N/A
N/A
Protected

Academic year: 2022

Aktie "• Logische Operationen"

Copied!
114
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) ---

= (C)

(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

. .

. .

. .

0 1 1 1 1 1 0 1 = 125 1 1 1 1 1 1 0 1 = 253 0 1 1 1 1 1 1 0 = 126 1 1 1 1 1 1 1 0 = 254 0 1 1 1 1 1 1 1 = 127 1 1 1 1 1 1 1 1 = 255

(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

…0000000000000000000000000000000000000000000000000110 = 6 1111111111111111111111111111111111111111111111111101 = 3

…1111111111111111111111111111111111111111111111111101 = -3

(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

...

1111 1111 1111 1111 1111 1111 1111 1110 = größter positiver Wert ‐1 1111 1111 1111 1111 1111 1111 1111 1111 = größter positiver Wertg p

(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

1 1 1 1

Ziel ist aber nicht irgend einen Ausdruck zu finden,  sondern einen möglichst kleinen (also eine 

möglichst kleine kombinatorische Schaltung).

möglichst kleine kombinatorische Schaltung). 

Mehr dazu in der Vorlesung Digitaltechnik.

(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

1 1 0 1 0

1 1 1 1 0

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

(31)

Logische Bausteine

S ti ll S h lt

Sequentielle Schaltungen

(32)

Sequentielle Schaltungen

n Eingänge m Ausgänge n Eingänge m Ausgänge

n Eingänge m Ausgänge

Zustand

n Eingänge m Ausgänge

…… Zustand ……

Ausgänge hängen nur von den  Eingängen ab Wie schon

Ausgänge hängen von den  Eingängen und dem aktuellen Eingängen ab. Wie schon 

gezeigt, ist dies durch eine  Wahrheitstabelle beschreibbar.

Eingängen und dem aktuellen  Zustand des Bausteins ab. Wie  kann man dieses Verhalten  beschreiben?

Kombinatorische Schaltungen Sequentielle Schaltungen

beschreiben?

Kombinatorische Schaltungen Sequentielle Schaltungen

(33)

Zustandsautomat

Ei B i i l

Eingabe 00 / Ausgabe 11 Eingabe 10 / Ausgabe 01 Eingabe 01 / Ausgabe 00

Ein Beispiel:

Eingabe 10 / Ausgabe 01 Eingabe 11 / Ausgabe 10

Zustand 00

Zustand 01

gabe 2‐BitZustand 01

Eingabe 11 / Ausgabe 00

‐Bit Eing t Ausgag / g

2‐ be

Zustand 10

(34)

Speichern von Zuständen

R S l Q Q

Speichern eines Bits am Beispiel R‐S‐Latch (S=Set, R=Reset)

R S altes Q neues Q

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

Beobachtung: das Speichern von Zustand  erfordert Rückkopplungen (d.h. Ausgang  ist wieder Eingang) in der Schaltung.

(35)

Speichern von Zuständen

Erweiterung eines R‐S‐Latch zu einem D‐Latch (D=Data, C=Clock)

C D l Q Q

C D altes Q neues Q

0 0 0

R

0 0 1

0 1 0

0 1 1

1 0 0

S

1 0 1

1 1 0

R S altes Q neues Q

0 0 0 0

1 1 1

Weitere Details zu Latches und Flip‐Flops“

0 0 1 1

0 1 0 1

0 1 1 1 Weitere Details zu Latches und „Flip Flops

0 1 1 1

(36)

Beispiel

Wir wollen das Ergebnis einer kombinatorischen Schaltung in einem Wir wollen das Ergebnis einer kombinatorischen Schaltung in einem  D‐Latch speichern. Q soll wohldefiniert entweder den Inhalt vor 

oder nach der „Berechnung“ speichern.

Kombinatorische Schaltung

oder nach der „Berechnung  speichern. 

Q Ergebnis

ist ein Bit

n Bit D‐Latch

Q C (Clock)

ist ein Bit

Eingang 

D (Daten) NOT(Q)

Zeit

P bl W li t d E b i Bit t bil D ? Problem: Wann liegt das Ergebnis‐Bit stabil an D an? 

(37)

Lösung: Taktung

Wir wollen das Ergebnis einer kombinatorischen Schaltung in einem Wir wollen das Ergebnis einer kombinatorischen Schaltung in einem  D‐Latch speichern. Q soll wohldefiniert entweder den Inhalt vor 

oder nach der „Berechnung“ speichern.

Kombinatorische Schaltung

oder nach der „Berechnung  speichern. 

Q Ergebnis

ist ein Bit

n Bit D‐Latch

Q C (Clock)

ist ein Bit

Eingang 

D (Daten) NOT(Q)

Letztes Zeit Clock‐Signal

Nächstes Clock‐Signal

Clock Signal g

Takt‐Zyklus

(38)

Logische Bausteine

Bl k h ltdi

Blockschaltdiagramme

(39)

Bausteine als Black‐Box

Wir haben jetzt einige Basisbausteine kennen gelernt.

In dieser Vorlesung sind wir mit Blockschaltbildern in der Regel eine  Abstraktionsebene höher.

Die betrachteten Bausteine sind „Kästen“ mit Eingangsleitungen und 

Ausgangsleitungen. Die Leitungen können entweder Daten (Datenleitungen) oder  Steuersignale (Steuerleitungen) transportieren

Steuersignale (Steuerleitungen) transportieren.

Wie die Bausteine der Blockschaltbilder intern mit Grundbausteinen aufgebaut sind  und wie die Taktung der einzelnen Bausteine genau abläuft betrachten wir in dieser 

V l i ht it M h d k i d V l Di it lt h ik l

Vorlesung nicht weiter. Mehr dazu kann man in der Vorlesung Digitaltechnik lernen.

Eingangsleitungen

B k I Bl k h ltbild

Baustein Bemerkung: In Blockschaltbildern 

wird das für sequentielle Bausteine  erforderliche Clock‐Signal häufig der 

Übersicht halber weg gelassen Ausgangsleitungen

Übersicht halber weg gelassen.

Beispiel eines abstrakten Bausteins

(40)

Verschaltung von Bausteinen

Bus (lassen häufig die

Verbinden von Bauelementen Datenflussrichtung

Eingabe Ausgabe i

n Bits Einzelne Leitung

Markierung n‐Bits weg) eines

logischen Bausteins eines

logischen Bausteins g

K d V bi d B i i l

Kreuzungen und Verbindungen Beispiel

Verbindungen

Baustein A

Baustein C Leitungen kreuzen

sich, sind aber nicht verbunden

g außerhalb der

Leitungsendpunkte

sind durch einen Baustein B Punkt gekennzeichnet.

(41)

Arithmetische, logische Einheit (ALU)

ALU Operation (k) Angabe in Klammern  ist die Anzahl Bits

Beispiel‐Funktionen

A (n)

ist die Anzahl Bits.

AND OR Zero (1)

( ) OR

NOT ALU Result (n)

Overflow (1)

Addition Subtraktion B (n)

Subtraktion Vergleich

Ggf. ist die ALU auf  eine Operation  festgelegt. Dann

CarryOut (1)

festgelegt. Dann  Entfällt der Eingang  und ALU wird mit 

dem Namen der  Kombinatorisch?

Sequentiell?

Operation ersetzt. Sequentiell?

(42)

Register und Shift‐Register

Eingang (n)

Reset (1) Speichert n Bits

Shift (1) Load (1)

( )

Ausgang (n)

Kombinatorisch?

Sequentiell?

Sequentiell?

(43)

Control

Eingänge sind

Control

Ausgänge sind Steuerleitungen  in andere Bausteine Eingänge sind 

Datenleitungen aus  anderen Bausteinen

Control

Ein Baustein der das Zusammenarbeiten von anderen Bausteinen koordiniert Ein Baustein der das Zusammenarbeiten von anderen Bausteinen koordiniert.

In Abhängigkeit der Eingänge werden die passenden Steuerleitungen geschaltet.

Kombinatorisch?

Sequentiell?

Sequentiell?

(44)

Control Beispiel

4 Bit Register R1

Store R1 4 Bit Register R2 Store R2

Control wird als kombinatorische  Schaltung realisiert.

Hierzu die Wahrheitstabelle:

4‐Bit‐Register R1 4‐Bit‐Register R2

R2 Bit R2

Bit 0

Zero Store R1

Store R2

Eingabe Ausgabe

t 0

Zero

SUB 0 0

0 1

Control

1 0

1 1

Control soll folgenden Algorithmus implementieren:

Anhand der Wahrheitstabelle  wird dann die Schaltung gebaut.

g g p

wenn R2 gerade und R1-R2=0, dann R1 = 0

wenn R2 ungerade und R1-R2!=0, dann

Rückgekoppelte Register haben  immer einen wohldefinierten  Zustand, da Register nur zum R2 = R1-R2

sonst

Zustand, da Register nur zum  Clock‐Signal aktualisiert werden.

(45)

Darstellung von Algorithmen

(46)

Pseudo‐Code‐Darstellungen

Elementaranweisungen

Variablenzuweisungen, z.B.:

x = 42

Arithmetik, z.B.:

y = 10

x = (42 + y) * 20

Das Symbol „=“ beinhaltet implizit eine zeitliche Abfolge, damit ist  z.B. sinnvoll:

1 x = x + 1

Abkürzende Schreibweise für voriges Konstrukt: x++

Allgemein: als Elementaranweisung betrachten wir jede 

Anweisung, die auf der betrachteten Abstraktionsebene nicht  weiter sinnvoll in eine Folge von einfacheren Anweisungen

weiter sinnvoll in eine Folge von einfacheren Anweisungen  unterteilbar ist.

(47)

Felder

Felder für den Zugriff auf den Speicher, z.B.: A[]

Zugriff auf ite Speicherstelle: A[i]

B i i l Beispiel:

0x0f00 : 14 A[0]

0x0f00 : 14 A[0]

0x0f01 : 15 A[1]

0x0f02 : 42 A[2]

0x0f03 : 43 A[3]

...

...

0x0f0f : 255 A[15]

(48)

Sequenz von Elementaranweisungen

Jedes Programm beginnt an einer Stelle und terminiert 

(hoffentlich) irgendwann. Start

( ) g

Im Flussdiagramm ist Beginn und Ende des Programms  mit den ovalen Symbolen dargestellt

Setze i auf i+1

mit den ovalen Symbolen dargestellt.

Im Beispiel also „Start“ und „Ende“.

Setze j auf 2*i usw.

Das einfachste Programm arbeitet einfach eine  Sequenz von elementaren Anweisungen ab.

Im Flussdiagramm wird so eine Sequenz durch ein  Rechteck dargestellt.

Die Abarbeitungsrichtung des Programms wird durch 

die Pfeile gekennzeichnet.g Ende

(49)

If‐then‐else

if‐then‐else am Beispiel:

if(i<10) then

<Code-Block 1> i<10?Ist  nein else

<Code-Block 2>

i<10?

ja

Code‐Block 1 Code‐Block 2

(50)

Switch‐Statement

Switch‐Statement am 

Beispiel: ja

Beispiel:

switch(i)

i=1? ja Code‐Block 1

case 1: nein

<Code-Block 1>

2

nein

case 2: ja

<Code-Block 2>

Code‐Block 2

i=2? ja

... nein

defaut:

<Code-Block n>

nein

...

Code‐Block n

(51)

For‐Schleife

For‐Schleife am Beispiel:

for(i=0; i<10; i++) { Start for(i 0; i<10; i++) {

<das innere der Schleife>

} Setze i auf 0

Bedeutet:

• Initialisiere i mit 0 i<10?Ist 

nein

• Führe das innere der Schleife aus

• Erhöhe i um eins

Wi d h l i h i 10

ja

• Wiederhole wenn immer noch i<10

Innere der Schleife

Ende Erhöhe i um 1

(52)

While‐Schleife

While‐Schleife an Beispiel: Start i=0

while(i<10) {

Setze i auf 0

<das innere

der Schleife>

i

Ist  i<10?

nein

i++

}

Bedeutet:

ja

Bedeutet:

• Initialisiere i mit 0

• Führe das innere der Schleife aus

Innere der Schleife

• Erhöhe i um eins

• Wiederhole wenn immer noch i<10 Erhöhe i um 1 Ende

(53)

Beispiel

Gegeben seien die ganzzahligen Variablen n und m.

Bestimme größtes k welches nk < m erfüllt:

(54)

Multiplikation

(55)

Multiplikation nach der Schulmethode

Gegeben seien die Binärzahlen A und B. Was ist a * b? Beispiel:

Multiplikand A: 1 1 0 1 0 Multiplikator B: * 1 1 0 1 ---

Produkt:

(56)

Maximale Länge des Ergebnisses

Beobachtung: Multiplikand der Länge n Bits und Multiplikator der  Länge m Bits ergibt Produkt einer Länge mit maximal n+m Bits.

(57)

Das Verfahren als Algorithmus

Beispiel 1001*0101:

1 0 0 1

Start Teste erstes 

0

1 1 0 0 1

* 0 1 0 1 ---

Multiplikator

‐Bit Addiere Multiplikand 

0 1

1 0 0 1 + 0 0 0 0

Shifte Multiplikand ein p

zum Produkt

--- 1 0 0 1 + 1 0 0 1

Shifte Multiplikand ein  Bit nach Links

Shifte Multiplikator 

+ 1 0 0 1

--- 1 0 1 1 0 1

p

ein Bit nach Rechts 5ter 

i 0 0

+ 0 0 0 0

---

Durch‐

lauf?

ja

nein

Beispiel für 

0 1 0 1 1 0 1

p ja

4‐Bit‐Zahlen

(58)

Das Verfahren in Hardware

Links‐Shift D t ti it

8‐Bit Multiplikand

Links Shift Demonstration mit

1001 * 0110 = 110110

2.Links‐Shift

R ht Shift

4‐Bit Multiplikator

Rechts‐Shift

8‐Bit ALU

3.Rechts‐Shift

8‐Bit Produkt Control

1. Produkt = Produkt + Multiplikand, wenn Bit 0 des Multiplikators = 1

Control Test

4 A hl D h 4. Anzahl Durch‐

läufe = 5Ende

(59)

Beschleunigung des Verfahrens

Beobachtung: Jeder Teilschritt verbrauche einen Taktzyklus. Wie  viele Taktzyklen c dauert die Multiplikation von zwei n‐Bit‐Zahlen?

Start Start

Teste 0

1

Verbesserung: Parallele Operationen.

Initiales Produktregister:

Shif Li k Addiere

000...000|Multiplikator

Shifte Links Shifte Rechts

Fertig? nein

M ltiplikation mit n Z klen fertig ja Multiplikation mit n Zyklen fertig.

(60)

Vorzeichenbehaftete Multiplikation

• Möglichkeit 1:

‐ Betrachte Multiplikand x und Multiplikator y.

‐ Sei x‘ = x wenn x nicht‐negativ bzw. x‘ = ‐x sonst.

‐ Sei y‘ = y wenn y nicht‐negativ bzw. y‘ = ‐y sonst.

Berechne z‘ = x‘ * y‘

‐ Berechne z  = x    y .

‐ Ergebnis z = z‘ wenn x und y nicht‐negativ oder x und y negativ, ansonsten ist z = ‐z‘.

• Möglichkeit 2:g

Tausche im Verfahren der vorigen Folie das Produkt‐

register mit einem vor‐

zeichenbehafteten Rechts‐

Shift Register aus Shift‐Register aus.

(61)

Weitere Beschleunigungen

Beobachtung:

1 0 1 1 (Y)

* 1 1 1 0 (X) Eine ALU für jede Summation

x0·y0 x0·y3y2y1

x1·y x2·y

x3·y

* 1 1 1 0 (X) ---

0 0 0 0

4‐Bit‐ALU 0 0 0 0

+ 1 0 1 1 --- 4 Bit ALU

c s3 s2 s1 s0

= 1 0 1 1 + 1 0 1 1 4‐Bit‐ALU

c s3 s2 s1 s0

---

= 1 0 0 0 0 + 1 0 1 1 + 1 0 1 1

---

=1 0 0 1 1 0 1 0 (Z) 4‐Bit‐ALU

c s3 s2 s1 s0

z z z z z z z z

(62)

Weitere Beschleunigungen

P ll l O i i d ALU i i Bi ä b

Parallele Organisation der ALUs in einen Binärbaum (keine weiteren Details hier)

Jede ALU‐Operation verbrauche einen Taktzyklus Wie viele Jede ALU‐Operation verbrauche einen Taktzyklus. Wie viele  Taktzyklen dauert die Multiplikation von 32‐Bit‐Zahlen?

(63)

Division

(64)

Division nach der Schulmethode

Gegeben seien die Binärzahlen A und B. Was ist a : b? Beispiel:

Dividend Divisor Quotient Dividend Divisor Quotient 1 0 0 1 0 1 0 : 1 0 0 0 =

Rest:

(65)

Das Verfahren als Algorithmus

Start l

Beispiel 1001 : 10:

Dvdt :Dvsr= Qtnt 001001 : 10 = 00100 Start

Subtrahiere  Divisor vom Rest

-000000 100000 ---

01001 Teste 

Rest

<0

≥0 01001

-00000 10000 ---

1001 Rest

Shifte Quotient nach  Links und setze 

Restauriere den alten  Rest. Shifte Quotient 

nach Links und setze 1001

-1000 1000 ----

001 Shift Di i i Bit

dessen LSB=1. nach Links und setze  dessen LSB=0.

001

-000 100 ---

Shifte Divisor ein Bit  nach Rechts

6t 01

-00 10 --

6ter  Durch‐

lauf?

j

nein

Beispiel für 

1 Rest p ja

4‐Bit‐Zahlen

(66)

Das Verfahren in Hardware

Rechts‐Shift D t ti it

8‐Bit Divisor

Rechts Shift Demonstration mit

1001 : 0010 = 100 Rest 1

3. Rechts‐Shift

Links‐Shift

4‐Bit Quotient 8‐Bit ALU 2. Links‐Shift; LSB=Rest wurde verändert

4. Anzahl Durch‐

8‐Bit Rest Control

1. Rest=Rest‐Divisor, wenn Divisor < Rest

läufe = 6Ende

Control Test

(67)

Beschleunigung des Verfahrens

l

• Analog zur  Multiplikation

– Einsparung vonEinsparung von  Rest  |Quotient

Taktzyklen durch 

parallele Operationen R d i t i b i d

|

– Reduziert wie bei der  Multiplikation die 

ALU‐Größe und  A hl R i

Anzahl Register

• Kann man analog zur

Skizze (ohne Details)

• Kann man analog zur  Multiplikation durch  viele parallel  p

arbeitende ALUs die  Geschwindigkeit 

weiter steigern?

weiter steigern?

(68)

Vorzeichenbehaftete Division

• Umgang mit dem Quotienten (analog wie für Multiplikation):

‐ Betrachte Divisor x und Dividend y (also: Quotient z von y:x).

S i ‘ i ht ti b ‘ t

‐ Sei x‘ = x wenn x nicht‐negativ bzw. x‘ = ‐x sonst.

‐ Sei y‘ = y wenn y nicht‐negativ bzw. y‘ = ‐y sonst.

‐ Berechne Quotient z‘ von y‘ : x‘Berechne Quotient z  von y  : x .

‐ Ergebnis z = z‘ wenn x und y nicht‐negativ oder x und y negativ, ansonsten ist z = ‐z‘.

• Und was ist das Vorzeichen des Rests? Beispiel:

Dividend : Divisor QuotientQ Rest Quotient * Divisor + Rest = DividendQ

7 : 2 3 1 3 * 2 + 1 = 7

-7 : 2 -3 -1 -3 * 2 – 1 = -7

7 : -2 -3 1 -3 * -2 + 1 = 7

-7 : -2 3 -1 3 * -2 – 1 = -7

•Also: Vorzeichen des Rests ist Vorzeichen des Dividend. 

(69)

Gleitkommazahlen

(70)

Reelle Gleitkommazahlen

Kleine Zahl Große Zahl Beispielp

Wissenschaftliche D t ll

Darstellung

(eine Ziffer rechts des Kommas)

des Kommas) Normalisierte Darstellungarstellung

(keine führende Null)

(71)

Binäre Gleitkommazahlen

Was ist der Dezimalwert der binären Gleitkommazahl 101,1001?

Was bedeutet 11,011 · 22?

Also: mit 2i multiplizieren verschiebt das Komma um i Stellen nach rechts Also: mit 2i multiplizieren verschiebt das Komma um i Stellen nach rechts.

(72)

Binäre Gleitkommazahlen

Was ist die wissenschaftliche, normalisierte Darstellung der binären  Gleitkommazahl zur dezimalen Gleitkommazahl 0,625?

(73)

Betrachte die recht harmlose Dezimalzahl 0 8

Nebenbemerkung

Betrachte die recht harmlose Dezimalzahl 0,8.

Für die folgende unendliche Reihe rechnet man leicht nach:

Für die folgende unendliche Reihe rechnet man leicht nach:

(2‐1 + 2‐2) + (2‐5 + 2‐6) + (2‐9 + 2‐10) + (2‐13 + 2‐14) + ... = 4/5 = 0.8 Folglich ist die Binärdarstellung von 0.8 unendlich lang, nämlich:

0 , 1100 1100 1100 1100 1100 1100 1100 ...

Annahme wir speichern nur die ersten 32 Bits. Rechnet man in den  Dezimalwert x zurück, dann ergibt sich:e a e t u üc , da e g bt s c

x = (2‐1 + 2‐2) + (2‐5 + 2‐6) + (2‐9 + 2‐10) + ... + (2‐29 + 2‐30)

= 858.993.459 / 1.073.741.824 = 0,79999999981373548508 ≠ 0,8 Oha, 0,8 ist scheinbar doch nicht so harmlos. Es gibt folglich Zahlen  mit endlicher dezimaler Gleitkommadarstellung die binär nicht mit mit endlicher dezimaler Gleitkommadarstellung, die binär nicht mit 

(74)

N‐Bit Darstellung von Gleitkommazahlen

Normalisierte, wissenschaftliche Darstellung zur Basis 2. Beispiel:

Allgemein:

Allgemein:

Sign‐and‐Magnitude‐Darstellung für beispielsweise 32 Bits:

s exponent fraction

1 Bit 8 Bits 23 Bits

(s=0 für „+“ und s=1 für „‐“)

Tradeoff:

Viele Fraction‐Bits: hohe Genauigkeit der Fraction

1 Bit 8 Bits 23 Bits

g

Viele Exponent‐Bits: großer darstellbarer Zahlenbereich

(75)

Beispiel

s exponent fraction

Was ist der Dezimalwert x des folgenden Bit‐Strings?

1 Bit 8 Bits 23 Bits

Was ist der Dezimalwert x des folgenden Bit Strings?

100000101101100000000000000000000

(76)

Wertebereiche, Overflow und Underflow

s exponent fraction

1 Bit 8 Bits 23 Bits

Kleinste darstellbare nicht‐negative Zahl annähernd 2,0 · 10‐38 Größte darstellbare Zahl annähernd 2,0 · 1038

Was, wenn die darzustellende Zahl außerhalb dieses Bereichs ist?

Overflow: Zahl zu groß

(Exponent ist zu groß um im Exponent‐Feld darstellbar zu sein) (Exponent ist zu groß um im Exponent Feld darstellbar zu sein)

Underflow: Zahl zu klein

(Negativer Exponent ist zu groß um im Exponent‐Feld darstellbar zu  sein)

(77)

Double‐ und Single‐Precision

Beispiel:

f i

Insgesamt 32 Bits Single‐

s exponent fraction

1 Bit 8 Bits 23 Bits

Insgesamt 64 Bits Single‐

Precision

s exponent fraction

1 Bit 11 Bits 52 Bits

Insgesamt 64 Bits Double‐

Precision

Double‐Precision hat höhere Genauigkeit der Fraction und mit 

öß E t h i öß d t llb

größerem Exponent auch einen größeren darstellbaren  Zahlenbereich.

Double‐Precision in diesem Beispiel:

Kleinste darstellbare nicht‐negative Zahl annähernd 2,0 · 10‐308 Größte darstellbare Zahl annähernd 2,0 · 10308

(78)

Der Zahlenformatstandard IEEE 754

Insgesamt 32 Bits

s exponent fraction

1 Bit 8 Bits 23 Bits

Insgesamt 32 Bits Single‐

Precision

I t 64 Bit

s exponent fraction

1 Bit 11 Bits 52 Bits

Insgesamt 64 Bits Double‐

Precision

Bit‐Aufteilungen in dieser Form sind in IEEE 754 spezifiziert.

Betrachte die wissenschaftliche, normalisierte Darstellung:

[+ oder ‐] 1,xxxxxxxx · 2yyyy

Beobachtung: die 1“ vor dem Komma ist redundant Beobachtung: die „1  vor dem Komma ist redundant.

Somit: Bei IEEE 754 wird die „1“ implizit angenommen und in „ p g

„fraction“ nicht codiert. „fraction“ speichert nur Nachkommastellen.

(79)

Beispiel

s exponent fraction

1 Bit 8 Bits 23 Bits

Es sei die „1“ vor dem Komma implizit angenommen. „Fraction“ 

1 Bit 8 Bits 23 Bits

speichere damit nur die Nachkommastellen. Was ist der  Dezimalwert x des folgenden Bit‐Strings?

1000001010110000000000000000000

(80)

Weitere Eigenschaften von IEEE 754

Unterscheidung von „Fraction“ und „1+Fraction“ in der Darstellung ( 1)S (1 + Fraction) 2Exponent

(‐1)S · (1 + Fraction) · 2Exponent

1+Fraction wird als Significant (deutsch: Mantisse) bezeichnet.

1+Fraction wird als Significant (deutsch: Mantisse) bezeichnet.

(81)

Motivation für eine geeignete Exponent‐Darstellung

Annahme: Exponent wäre mit Zweierkomplement dargestellt. Wie  macht man einen Größer‐Kleiner‐Vergleich der folgenden beiden  Zahlen?

Zahlen?

Zahl 1: 000000111101000100000000000000000 Zahl 2: 011010111010010000010000000000000 Zahl 2: 011010111010010000010000000000000

1. Vergleiche erst mal die Vorzeichenbits. Bei unterschiedlichen  V i h bit i t d V l i h b d t

Vorzeichenbits ist der Vergleich beendet.

2. Vergleiche die Exponenten. Ist einer größer als der andere, ist  der Vergleich beendet (Signed‐Vergleich)

der Vergleich beendet. (Signed Vergleich)

3. Vergleiche die Fractions. (Unsigned‐Vergleich) Kann man Schritt 2 und 3 in einem durchführen? 

Kleinster Exponent müsste 00000000 und größter Exponent müsste 11111111  sein dann könnte man Exponent und Fraction für einen Vergleich einfach

sein, dann könnte man Exponent und Fraction für einen Vergleich einfach 

(82)

Darstellung des Exponenten in Biased‐Notation

E i Bi d N i (hi i 8 Bi d Bi 127)

Erinnerung: Biased‐Notation (hier mit 8‐Bit und Bias 127):

0000 0000 = -127 (0-Bias = -127) 0000 0001 = -126 (1-Bias = -126)

...

0111 1110 = -1 (126-Bias = -1)( ) 0111 1111 = 0 (127-Bias = 0) 1000 0000 = 1 (128-Bias = 1)

...

1111 1110 = 127 (254-Bias = 127) 1111 1111 = 128 (255-Bias = 128)

Zusammengefasst: Der Wert x einer Zahl in IEEE 754 Darstellung ist

(83)

IEEE 754 Encoding

Wie stellt man im IEEE 754 Format eigentlich die „0“ dar!?

(‐1)

S

· (1 + Fraction) · 2

(Exponent—Bias)

Single‐Precision  (Bias=127)

Double‐Precision 

(Bias=1023) Dargestelltes Objekt

Exponent Fraction Exponent Fraction

0 0 0 0 0

0 Nicht‐Null 0 Nicht‐Null (+/‐ Denormalised Number) 1 bis 254 Beliebig 1 bis 2046 Beliebig +/‐ Gleitkommazahl 1 bis 254 Beliebig 1 bis 2046 Beliebig +/ Gleitkommazahl

255 0 2047 0 +/‐ Unendlich

255 Ni ht N ll 2047 Ni ht N ll N N (N t N b ) 255 Nicht‐Null 2047 Nicht‐Null NaN (Not a Number)

(84)

Quiz

Betrachte IEEE 754 Single‐Precision, also Bias = 127. Was ist der  Dezimalwert der folgenden Binärzahl?

010000000110000000000000000000000

(‐1)

S

· (1 + Fraction) · 2

(Exponent—Bias)

( ) ( )

(85)

Quiiiiz

Bestimme S, Fraction und Exponent der IEEE 754 Single‐Precision  Repräsentation (also Bias = 127) der Dezimalzahl ‐0.75.

( 1)

S

(1 + Fraction) 2

(Exponent—Bias)

(‐1)

S

· (1 + Fraction) · 2

(Exponent Bias)

(86)

Gleitkommaarithmetik

(87)

Gleitkommaarithmetik

Additi bi ä Bit Gl itk hl

Addition von binären n‐Bit Gleitkommazahlen

(88)

Vorüberlegung

Addition mit gleichem Exponent (Nachkomma mit 4 Bits kodiert):

Addition mit unterschiedlichen Exponenten (Nachkomma 4 Bits):

(89)

Vorüberlegung

Ergebnis muss unter Umständen wieder normalisiert werden:

Bei Einschränkung auf n Bit (z.B. Nachkomma auf 4 Bit einge‐

schränkt) kann dies anschließendes Auf‐ bzw. Abrunden erfordern.

Beispiel: Runden nach der „Schulmethode“

(90)

Vorüberlegung

Das Runden kann ggf. neues Normalisieren erforderlich machen:

Normalisierungen können Overflows und Underflows hervorrufen.

Beispiel: IEEE 754 Single‐Precision erlaubt Exponenten von ‐126 bis  127. Somit ist zum Beispiel:

(91)

Additionsalgorithmus

2 Beispiele: 4 Bit für die Mantisse 

und 8 Bit für den Exponenten. Start

(1) Vergleiche Exponenten  der beiden Zahlen Shifte die Beispiel 1 Beispiel 2

1,000 · 2‐1 1 110 2 2

1,001 · 210

1 101 211 der beiden Zahlen. Shifte die  kleinere Zahl nach rechts, so 

dass der Exponent mit dem 

1,110 · 2‐2 + 1,101 · 211 (1)

Exponent der größeren Zahl  übereinstimmt. (Mantissen‐

Ali t) Alignment) (2)

(2) Addiere die Mantissen.

(92)

Additionsalgorithmus

2 Beispiele: 4 Bit für die Mantisse 

und 8 Bit für den Exponenten. (3) Normalisiere die Summe,(3) Normalisiere die Summe,  entweder durch Rechts‐Shift

und hoch setzen oder durch  Beispiel 1 Beispiel 2

(2) 0,001 · 2‐1 10,001 · 211

Links‐Shift und runter setzen  des Exponenten.

(2) 0,001  2 10,001  2 (3)

Im Beispiel 8‐Bit für den Exponenten.

Overflow oder 

Underflow? ja

E ti “

nein „Exception“

(93)

Additionsalgorithmus

zurück

nach (3) 2 Beispiele: 4 Bit für die Mantisse 

und 8 Bit für den Exponenten.

( )

(4) Runde die Mantisse auf  die verfügbare Anzahl Bits.

Beispiel 1 Beispiel 2

(3) 1 000 2‐4 1 0001 212 (3) 1,000 · 2 1,0001 · 2 (4)

Immer noch 

li i ? i

normalisiert?

j

nein

Fertig ja Fertig

(94)

Noch eine Bemerkung

h d f l d b l

Betrachte die folgende binäre Floats mit 8‐Bit Mantisse: 

x = −1 100 000 · 2100 y = 1 100 000 · 2100 z = 1 000 0000

x =  1,100 000 · 2 ,     y = 1,100 000 · 2 , z = 1,000 0000 Was ist x + (y + z)?(y )

Was ist (x + y) + z?

S it i t + ( + ) ( + ) + d h di Gl itk dditi i t Somit ist x + (y + z) ≠ (x + y) + z, d.h. die Gleitkommaaddition ist  nicht assoziativ!

Quiz: Was ist die Konsequenz, wenn man x1 + x2 + ... + x parallel Quiz: Was ist die Konsequenz, wenn man x1 + x2 + ... + xn parallel  berechnen möchte?

(95)

Gleitkommaarithmetik

M lti lik ti bi ä Bit Gl itk hl Multiplikation von binären n‐Bit Gleitkommazahlen

(96)

Vorüberlegung

Multiplikation von zwei beliebigen binären Floats in normalisierter  Darstellung. Was ist der Exponent des Ergebnisses?

Multiplikation der Mantissen Wo kommt das Komma hin?

Multiplikation der Mantissen. Wo kommt das Komma hin?

Was ist das Vorzeichen v von x · y?

(97)

Algorithmus

Beispiel: 4 Bit für die Mantisse und  8 Bit für den Exponenten.

Start

1 2 Start

1,101 · 2‐1 · ‐1,100 · 2‐2 (1)

(1) Addiere die Exponenten. 

(S bt hi Bi i F ll (Subtrahiere Bias im Falle 

von Biased‐Notation )

(98)

Algorithmus

Beispiel: 4 Bit für die Mantisse und  8 Bit für den Exponenten.

(1) Der Exponent ist ‐3 Die Mantissen sind:

1 101 und 1 100

(2) Multipliziere die 1,101 und 1,100

(2)

(2) Multipliziere die  Mantissen.

(99)

Algorithmus

Beispiel: 4 Bit für die Mantisse 

und 8 Bit für den Exponenten. (3) Normalisiere das Produkt(3) Normalisiere das Produkt  Falls notwendig. 

Normalisierung erfolgt durch  (2) 10,011100 · 2‐3

(3) Rechts‐Shift und erhöhen 

des Exponenten.

(3)

Im Beispiel 8‐Bit für den Exponenten.

Overflow oder 

Underflow? ja

E ti “

nein „Exception“

(100)

Algorithmus

zurücknach (3)

Beispiel: 4 Bit für die Mantisse  und 8 Bit für den Exponenten.

1 2

(4) Runde die Mantisse auf  die verfügbare Anzahl Bits (Eingabe: 1,101 · 2‐1 · ‐1,100 · 2‐2) die verfügbare Anzahl Bits.

(3) 1,0011100 · 2‐2

Immer noch 

normalisiert? nein (3) 1,0011100  2

(4)

ja

(5) Setze Vorzeichen auf +“

(5)

(5) Setze Vorzeichen auf „+  

wenn die Vorzeichen der  Eingaben gleich waren. Sonst g g

setze Vorzeichen auf „‐“.

Fertig

(101)

Gleitkommaarithmetik

E höh d G i k it Erhöhen der Genauigkeit

(102)

Guard‐Bit, Round‐Bit und Sticky‐Bit

Bei der Darstellung der Addition und Multiplikation haben wir  vereinfacht die beim Mantissen‐Alignment rechst heraus 

geschobenen Bits einfach abgeschnitten Zum Beispiel:

geschobenen Bits einfach abgeschnitten. Zum Beispiel:

Mantissen‐Alignment um 5 Stellen

10111001000111011010110 Mantisse

In Wirklichkeit (z.B. IEEE 754 Spezifikation) wird zur Steigerung der  Genauigkeit etwas geschickter vorgegangen. Obiges Beispiel:

Mantisse Mantisse

Rechenoperationen finden auf dieser erweiterten Mantisse statt.

(103)

Quiz

Wir betrachten 8‐Bit Mantissen. Es seien die folgenden beiden  binären Zahlen zu addieren.

1 , 100 0110 · 2

6

+       1 , 011 1010 · 2

2

Wie sehen Mantisse, Guard‐Bit, Round‐Bit und Sticky‐Bit nach dem  Mantissen‐Alignment aus?

6 2

1 , 100 0110 · 2

6

1 , 011 1010 · 2

2

8‐Bit‐Mantisse 8‐Bit‐Mantisse

(104)

IEEE 754 Rounding‐Modes

+ / −

S E b i B i i l 21 7 B i i l 21 7

Mantisse M G R S

Synonym Ergebnis Beispiel 21,7 Beispiel ‐21,7 Round

toward

Ceil Kleinster  Wert nicht 

+∞ kleiner als M 

Round

t d

Floor Größter Wert  i ht öß toward

−∞

nicht größer  als M

Round Truncate Genau M toward

0

R d W t d

Round to

nearest

Wert, der am  nächsten zu  M liegt

Referenzen

ÄHNLICHE DOKUMENTE

The standard references for quadratic form theory over fields are Ll4,24J. When we speak about quadratic forms we always assume them to be regular, and we often call

In a recent work, González-Val (2010) generalises this analysis for all of the twentieth century, extracting long-term conclusions: Gibrat’s Law holds (weakly; growth is

These results are applied to defect groups of p-blocks of finite groups with given Loewy length.. Doing so, we improve results in a recent paper by Koshitani, Külshammer

Kleinster Exponent müsste 00000000 und größter Exponent müsste 11111111  sein dann könnte man Exponent und Fraction für einen Vergleich

The message representative can be broken down into r = a||z||b||h where a is fixed data, de- termined by the padding structure and a prefix of the ASN.1 encoded data, z is

Learning with errors in the exponent comes in two versions: The search version asks to find the secret vector s while in the decisional variant one is supposed to distinguish

As the proof of Corollary 6 (which showed Hölder calmness for systems of polynomi- als) is in the end based on Proposition 2 (Hörmander’s error bound), an analysis of the proof of

Diese besagt: „Jede Zahl kann als Produkt von einer Zahl, die genau eine Stelle (ungleich Null) vor dem Komma hat, und einer Potenz von zehn, geschrieben werden.“.. Nun sparen wir