• Keine Ergebnisse gefunden

Das Verfahren in Hardware

N/A
N/A
Protected

Academic year: 2022

Aktie "Das Verfahren in Hardware"

Copied!
25
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Das Verfahren in Hardware

8‐Bit Multiplikand

8‐Bit ALU

8‐Bit Produkt Control

Test

4‐Bit Multiplikator

Beispiel für 4‐Bit‐Zahlen Rechts‐Shift

Links‐Shift Demonstration mit

1001 * 0110 = 110110

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

2.Links‐Shift

3.Rechts‐Shift

4. Anzahl Durch‐

läufe = 5Ende

(2)

Vorzeichenbehaftete Multiplikation

• Möglichkeit 2:

Tausche im Verfahren der vorigen Folie das Produkt‐

register mit einem vor‐

zeichenbehafteten Rechts‐

Shift‐Register aus.

‐ 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‘.

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

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(3)

Weitere Beschleunigungen

Beobachtung:

1 0 1 1 (Y)

* 1 1 1 0 (X) ---

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

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

= 1 0 0 0 0 + 1 0 1 1

---

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

c s3 s2 s1 s0

Eine ALU für jede Summation

4‐Bit‐ALU

c s3 s2 s1 s0

4‐Bit‐ALU

c s3 s2 s1 s0

x0*y0 x0*y3y2y1

x1*y x2*y

x3*y

z7z6z5z4z3 z2 z1 z0

(4)

Weitere Beschleunigungen

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

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

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

(5)

Division

(6)

Division nach der Schulmethode

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

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

Rest:

(7)

Das Verfahren als Algorithmus

Beispiel 1001 : 10:

Dvdt :Dvsr= Qtnt 001001 : 10 = 00100 -000000 100000

--- 01001

-00000 10000 ---

1001

-1000 1000 ----

001

-000 100 ---

01

-00 10 --

1 Rest Start

Teste  Rest

Shifte Divisor ein Bit  nach Rechts Shifte Quotient nach 

Links und setze  dessen LSB=1.

6ter  Durch‐

lauf?

Ende

<0

0

ja

nein Subtrahiere 

Divisor vom Rest

Restauriere den alten  Rest. Shifte Quotient 

nach Links und setze  dessen LSB=0.

Beispiel für  4‐Bit‐Zahlen

(8)

Das Verfahren in Hardware

8‐Bit Divisor

8‐Bit ALU

8‐Bit Rest Control

Test

4‐Bit Quotient

Beispiel für 4‐Bit‐Zahlen Links‐Shift

Rechts‐Shift Demonstration mit

1001 : 0010 = 100 Rest 1

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

2. Links‐Shift; LSB=Rest wurde verändert 3. Rechts‐Shift

4. Anzahl Durch‐

läufe = 6Ende

(9)

Vorzeichenbehaftete Division

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

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

‐ 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‘.

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

•Also: Vorzeichen des Rests ist Vorzeichen des Dividend. 

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

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

(10)

Gleitkommazahlen

(11)

Reelle Gleitkommazahlen

Kleine Zahl Große Zahl Beispiel

Wissenschaftliche Darstellung

(eine Ziffer links des Kommas) Normalisierte Darstellung

(keine führende Null)

(12)

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.

Analog: mit 2‐i multiplizieren verschiebt das Komma um i Stellen nach links.

(13)

Binäre Gleitkommazahlen

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

(14)

Betrachte die recht harmlose Dezimalzahl 0,8.

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:

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  endlicher Anzahl Bits darstellbar sind.

Nebenbemerkung

(15)

N‐Bit Darstellung von Gleitkommazahlen

Normalisierte, wissenschaftliche Darstellung zur Basis 2. Beispiel:

Allgemein:

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

Tradeoff:

Viele Fraction‐Bits: hohe Genauigkeit der Fraction

Viele Exponent‐Bits: großer darstellbarer Zahlenbereich

s exponent fraction

1 Bit 8 Bits 23 Bits

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

(16)

Beispiel

Was ist der Dezimalwert x des folgenden Bit‐Strings?

10000010110110000000000000000000

s exponent fraction

1 Bit 8 Bits 23 Bits

(17)

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)

Underflow: Zahl zu klein

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

(18)

Beispiel:

Double‐Precision hat höhere Genauigkeit der Fraction und mit  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

Double‐ und Single‐Precision

s exponent fraction

1 Bit 8 Bits 23 Bits

s exponent fraction

1 Bit 11 Bits 52 Bits

Insgesamt 32 Bits

Insgesamt 64 Bits Single‐

Precision

Double‐

Precision

(19)

Der Zahlenformatstandard IEEE 754

s exponent fraction

1 Bit 8 Bits 23 Bits

Insgesamt 32 Bits Single‐

Precision

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.

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

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

(20)

Beispiel

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

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

1000001010110000000000000000000

s exponent fraction

1 Bit 8 Bits 23 Bits

(21)

Weitere Eigenschaften von IEEE 754

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

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

(22)

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?

Zahl 1: 000000111101000100000000000000000 Zahl 2: 011010111010010000010000000000000

1. Vergleiche erst mal die Vorzeichenbits. Bei unterschiedlichen  Vorzeichenbits ist der Vergleich beendet.

2. Vergleiche die Exponenten. Ist einer größer als der andere, ist  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 

konkatenieren.

(23)

Darstellung des Exponenten in Biased‐Notation

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

(Single‐Precision (8‐Bit‐Exponent) Bias=127, Double‐Precision (11‐Bit‐Exponent) Bias=1023)

(24)

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

255 0 2047 0 +/‐ Unendlich

255 Nicht‐Null 2047 Nicht‐Null NaN (Not a Number)

(25)

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)

Referenzen

ÄHNLICHE DOKUMENTE

Da Beobachtungen von älteren Patienten mit Hirn- läsionen auf häufigere Defizite in dieser Fähigkeit hindeuten sowie für diese Personengruppe keine geeigneten Testverfahren

(eine Ziffer links des Kommas) Normalisierte Darstellung.

(eine Ziffer links des Kommas) Normalisierte Darstellung.

(eine Ziffer links des Kommas) Normalisierte Darstellung?.

Der Trainer spricht dem Kind die folgenden Ziffernfolgen Ziffer für Ziffer vor.. Durchgang: Welche Ziffer ist jeweils am Anfang

Kreuze alle Zahlen an, bei denen die linke Ziffer ungerade und die rechte Ziffer

5 Chirurgen,Neurochirurgen,MKG-Chirurgen fachärztlichem Versorgungsbereich 6 Gynäkologen und Reproduktionsmediziner fachärztlichem Versorgungsbereich 7 HNO-Ärzte sowe Phoniater

In Kapitel 7 wird ein neues Verfahren zur Darstellung der Konkurrenz zwi- schen unterschiedlichen Pflanzenwurzelsystemen vorgestellt. Zusätzlich wird die Lichtkonkurrenz