• Keine Ergebnisse gefunden

R2 Bit 0

N/A
N/A
Protected

Academic year: 2022

Aktie "R2 Bit 0"

Copied!
28
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Control Beispiel

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 69 4‐Bit‐Register R1

Store R1 4‐Bit‐Register R2

R2 Bit 0

Control

Zero

Store R2

SUB

Control soll folgenden Algorithmus implementieren:

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

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

sonst

R1 = R1-R2

R2 Bit 0

Zero Store R1

Store R2

0 0

0 1

1 0

1 1

Control wird als kombinatorische  Schaltung realisiert.

Hierzu die Wahrheitstabelle:

Anhand der Wahrheitstabelle  wird dann die Schaltung gebaut.

Rückgekoppelte Register haben  immer einen wohldefinierten  Zustand, da Register nur zum  Clock‐Signal aktualisiert werden.

Eingabe Ausgabe

(2)

Darstellung von Algorithmen

Grundlagen der Rechnerarchitektur ‐Einführung 70

(3)

Pseudo‐Code‐Darstellungen

Grundlagen der Rechnerarchitektur ‐Assembler 71

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:

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  unterteilbar ist.

(4)

Felder

Grundlagen der Rechnerarchitektur ‐Assembler 72

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

Zugriff auf ite Speicherstelle: A[i]

Beispiel:

0x0f00 : 14 A[0]

0x0f01 : 15 A[1]

0x0f02 : 42 A[2]

0x0f03 : 43 A[3]

...

...

0x0f0f : 255 A[15]

(5)

Sequenz von Elementaranweisungen

Grundlagen der Rechnerarchitektur ‐Assembler 73

Setze i auf i+1 Setze j auf 2*i

usw.

Jedes Programm beginnt an einer Stelle und terminiert  (hoffentlich) irgendwann.

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

Im Beispiel also „Start“ und „Ende“.

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.

Start

Ende

(6)

If‐then‐else

Grundlagen der Rechnerarchitektur ‐Einführung 74

if‐then‐else am Beispiel:

if(i<10) then

<Code-Block 1>

else

<Code-Block 2>

Ist  i<10?

Code‐Block 1 Code‐Block 2 ja

nein

(7)

Switch‐Statement

Grundlagen der Rechnerarchitektur ‐Einführung 75

Switch‐Statement am  Beispiel:

switch(i) case 1:

<Code-Block 1>

case 2:

<Code-Block 2>

...

defaut:

<Code-Block n>

i=1?

Code‐Block 2 Code‐Block 1 ja

Code‐Block n i=2?

nein

ja

nein

...

(8)

For‐Schleife

Grundlagen der Rechnerarchitektur ‐Assembler 76

For‐Schleife am Beispiel:

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

<das innere der Schleife>

}

Bedeutet:

• Initialisiere i mit 0

• Führe das innere der Schleife aus

• Erhöhe i um eins

• Wiederhole wenn immer noch i<10

Ist  i<10?

Ende Start

Innere der Schleife Setze i auf 0

Erhöhe i um 1 ja

nein

(9)

While‐Schleife

Grundlagen der Rechnerarchitektur ‐Assembler 77

While‐Schleife an Beispiel:

i=0

while(i<10) {

<das innere

der Schleife>

i++

}

Bedeutet:

• Initialisiere i mit 0

• Führe das innere der Schleife aus

• Erhöhe i um eins

• Wiederhole wenn immer noch i<10

Ist  i<10?

Ende Start

Innere der Schleife Setze i auf 0

Erhöhe i um 1 ja

nein

(10)

Gegeben seien die ganzzahligen Variablen n und m.

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

Beispiel

Grundlagen der Rechnerarchitektur ‐Assembler 78

(11)

Multiplikation

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 79

(12)

Multiplikation nach der Schulmethode

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 80

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:

(13)

Maximale Länge des Ergebnisses

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 81

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

(14)

Das Verfahren als Algorithmus

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 82

Beispiel 1001*0101:

1 0 0 1

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

1 0 0 1 + 1 0 0 1

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

--- 0 1 0 1 1 0 1

Start Teste erstes  Multiplikator

‐Bit

Shifte Multiplikand ein  Bit nach Links

Shifte Multiplikator  ein Bit nach Rechts Addiere Multiplikand 

zum Produkt

5ter  Durch‐

lauf?

Ende

0 1

ja

nein Beispiel für 

4‐Bit‐Zahlen

(15)

Das Verfahren in Hardware

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 83

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

2.Links‐Shift

3.Rechts‐Shift

4. Anzahl Durch‐

läufe = 5Ende

(16)

Vorzeichenbehaftete Multiplikation

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 84

• Möglichkeit 2:

Tausche im Verfahren der vorigen Folie das Produkt‐

register mit einem vor‐

zeichenbehafteten Rechts‐

Shift‐Register aus.

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

‐ 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

(17)

Weitere Beschleunigungen

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 85

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 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 Beispiel für 4‐Bit‐Zahlen

(18)

Weitere Beschleunigungen

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 86 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)

(19)

Division

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 87

(20)

Division nach der Schulmethode

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 88

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:

(21)

Das Verfahren als Algorithmus

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 89

Beispiel 1001 : 10:

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

--- 01001 -00000 --- 1001 -1000 ---- 001 -000 --- 01 -00 --

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

(22)

Das Verfahren in Hardware

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 90

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

(23)

Vorzeichenbehaftete Division

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 91

• 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

(24)

Gleitkommazahlen

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 92

(25)

Reelle Gleitkommazahlen

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 93

Kleine Zahl Große Zahl Beispiel

Wissenschaftliche Darstellung

(eine Ziffer rechts des Kommas)

Normalisierte Darstellung

(keine führende Null)

(26)

Binäre Gleitkommazahlen

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 94

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.

(27)

Binäre Gleitkommazahlen

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 95

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

(28)

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 96

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

Referenzen

ÄHNLICHE DOKUMENTE

Register in dem der  Programm‐Counter  steht. Hier steht die  Adresse der nächsten  abzuarbeitenden  Instruktion..

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

Grundlagen der Rechnerarchitektur ‐ Einführung 25 Bildquellen: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth

Mikroarchitektur (Register‐Transfer Ebene) Instruktionssatz‐Architektur.

[r]

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and

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

Bildquelle: Symbole kopiert aus David A. Patterson und John L. Hennessy, „Computer Organization and