52
2009 Structura şi organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

Structura şi organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

Embed Size (px)

DESCRIPTION

Structura şi organizarea calculatoarelor - curs - Ionescu Augustin-Iulian. Capitolul 1 ARITMETICA CALCULATOARELOR. Reprezentarea numerelor cu semn. Prezentare general ă Fie N un num ă r binar cu semn N= ±b n-1 b n-2 …b 1 b 0 ,b -1 …b -m - PowerPoint PPT Presentation

Citation preview

Page 1: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

2009

Structura şi

organizarea calculatoarelor

- curs -

Ionescu Augustin-Iulian

Page 2: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.22009

Capitolul 1

ARITMETICA CALCULATOARELOR

Page 3: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.32009

Reprezentarea numerelor cu semnPrezentare generală

Fie N un număr binar cu semn

N=±bn-1bn-2…b1b0,b-1…b-m

Deoarece într-un SN cu un număr par de cifre nu putem reprezenta direct numerele negative, se utilizează reprezentarea codificată.

Codificarea semnului

Codificarea valorii.• Cod direct (reprezentare prin mărime şi semn)

• Cod complementar

• Cod invers

negativenumerepentru1

pozitivenumerepentru0sb

Page 4: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.42009

Reprezentarea numerelor cu semnReprezentarea virgulă fixă prin mărime şi semn

Bitul de semn bs nu are pondere deci poate ocupa orice poziţie. Pentru evitarea confuziilor, bs este plasat întotdeauna în poziţia extremă stângă (bitul cel mai semnificativ).

Valoarea numărului se reprezintă, indiferent de semn, prin modulul numărului.

În concluzie, numărul va fi reprezentat sub forma:

N=bsbn-1bn-2…b1b0b-1…b-m

În multe situaţii se consideră un caz particular al reprezentării şi anume numerele sunt fracţionare. În acest caz bitul de semn apare ca prima cifră de la partea întreagă (b0).

N=bsb-1…b-m

Page 5: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.52009

Reprezentarea numerelor cu semnExemple:

Fie numarul N=+0,74 reprezentat in format VF 1+15 prin marime si semn.

Fie numarul N=-0,74 reprezentat in format VF 1+15 prin marime si semn.

0 1 00011101011110

1 1 00011101011110

Page 6: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.62009

Reprezentarea numerelor cu semnComplementul faţă de 2 Fie N un număr binar reprezentat pe n ranguri întregi şi m ranguri fracţionare:

N=bn-12n-1+bn-22

n-2+…+b121+b0+b-12

-1+….b-m2m-1 =

= Se numeşte complement faţă de 2 al numărului N numărul

calculat cu relaţia =2n-N şi reprezentat în acelaşi format ca şi numărul N.

1n

mi

ii 2b

N

Page 7: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.72009

Reprezentarea numerelor cu semnProprietate

Fie numarul real N= . Atunci

1n

mi

ii 2b

Complementul fata de 1 al lui N

Page 8: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.82009

Reprezentarea numerelor cu semnReprezentare virgulă fixă în cod complementar

Page 9: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.92009

Reprezentarea numerelor cu semnObservații!

Page 10: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.102009

Reprezentarea numerelor cu semnExemple

Fie numarul N=+0,74 reprezentat ȋn format VF 1+15 cod complementar.

Fie numarul N=-0,74 reprezentat ȋn format VF 1+15 cod complementar.

0 1 00011101011110

1 0 00010010100001

Page 11: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.112009

Deplasarea numerelor cu semn Deplasarea spre stânga este echivalentă cu înmulţirea cu 2. Cifra din extrema stângă se pierde iar prin dreapta se introduce 0, indiferent de modul de reprezentare a numerelor.

Deplasarea spre dreapta este echivalentă cu împărţirea la 2 (înmulţirea cu 2-1). Cifra din extrema dreaptă se pierde, iar prin stânga se introduce 0 în cazul numerelor reprezentate prin mărime şi semn sau bitul de semn în cazul numerelor reprezentate în cod complementar.

Observație!

Deplasarea numerelor cu semn afectează numai modulul numerelor, nu şi bitul de semn.

Page 12: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.122009

Deplasarea numerelor cu semn Exemple:

Page 13: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.132009

Deplasarea numerelor cu semnExemple

Page 14: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.142009

Adunarea în cod complementar

Page 15: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.152009

Adunarea în cod complementar

Page 16: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.162009

Adunarea în cod complementar

Page 17: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.172009

Adunarea în cod complementar

Page 18: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.182009

Adunarea în cod complementar

Page 19: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.192009

Adunarea în cod complementarConcluzii!

Page 20: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.202009

Adunarea în cod complementarExemple (1)

Page 21: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.212009

Adunarea în cod complementarExemple (2)

Page 22: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.22

Adunarea în cod complementar

2009

X

Z

Y

OVERFLOW

m+1m+1

m+1

B[m..0]

S[m..0]

A[m..0]c0

c-1c-m-1

Page 23: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.232009

Scăderea în cod complementar

Page 24: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.242009

Scăderea în cod complementar

Page 25: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.252009

Scăderea în cod complementar

Page 26: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.262009

Scăderea în cod complementar

Page 27: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.272009

Scăderea în cod complementar

Page 28: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.282009

Scăderea în cod complementarConcluzii!

Page 29: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.292009

Scăderea în cod complementarExemple:

Page 30: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.302009

Scăderea în cod complementarExemple:

Page 31: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.312009

Scăderea în cod complementarExemple:

Page 32: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.322009

Scăderea în cod complementarExemple:

Page 33: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.33

Sumator/scăzător în cod complementar

2009

X

Z

Y

OVERFLOW

m+1

m+1

m+1

B[m..0]

S[m..0]

A[m..0]c0

c-1

Complement fata de 1

Sum/Dif

c-m-1

Page 34: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.34

Adunarea în cod direct

2009

Page 35: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.35

Adunarea ȋn cod direct

2009

Page 36: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.36

Adunarea în cod direct

2009

Page 37: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.37

Adunarea în cod direct

2009

Page 38: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.38

Adunarea în cod direct

2009

Exemple:

Page 39: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.39

Adunarea în cod direct

2009

Exemple:

Page 40: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.40

Înmulţirea prin adunare-deplasare

11001

10101

--------

11001

00000

11001

00000

11001

--------------

1000001101

2009

I0=0

Aduna deinmultitul la acumulator

nuda

Deplasarea spre dreapta a ansamblului acumulator-inmultitor

Ultimul bit al inmultitorului?

STOP

danu

Page 41: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.41

Înmulţirea prin adunare-deplasare

2009

sumator binar

A4 A3 A2 A1 A0 I4 I3 I2 I1 I0

D4 D0D1D2D3

C

SC

Incarcare deinmultitIncarcare inmultitor

Initializare acumulator

INITinmultitor

deinmutit

Incarcare acumulator

STOP

Page 42: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.42

Înmulţirea prin adunare-deplasare

2009

0 1 1 1 1 1

0 0 0 0 0 0 1 0 1 1 10

0

0 1 1 1 1 1 1 0 1 1 11 se aduna X

0 0 0 0 0 0 1 1 0 1 12

1 0 1 1 1 03 se aduna X

0 1 0 1 1 1 0 1 1 0 14

1 1 0 1 1 0 0 1 1 0 15 se aduna X

0 1 1 0 1 1 0 0 1 1 06

0 0 1 1 0 1 1 0 0 1 17

1 0 1 1 0 0 1 0 0 1 18 se aduna X

0 1 0 1 1 0 0 1 0 0 19

1 1 0 1 1

Bit de semn

Page 43: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.43

Metoda lui BoothEste utilizabilă pentru numere reprezentate în cod complementar.

Algoritmul de calcul:

Observatii!Bitul de referinţă pentru bitul cel mai puţin semnificativ este 0;

După ultima comparare nu se mai realizează deplasarea.

2009

y-iy-(i+1) …….

1 1 …….

1 0 …….

0 1 …….

0 0 ……. Deplasare produs partial cu un bit la dreapta

OPERATIA

Se scade deinmultitul si se deplaseaza produsul partial cu un bit la dreapta

Se aduna deinmultitul si se deplaseaza produsul partial cu un bit la dreapta

Deplasare produs partial cu un bit la dreapta

Page 44: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.44

Metoda lui Booth - exempluDeȋnmulțitul X = 1,0011 (-13/16)

Înmulțitorul Y = 0,1010 (+10/16)

0,00000000 inițializare registru combinat

00 deplasare dreapta 0,00000000 P1

10 se scade X 1,0011

0,11010000 P2

deplasare dreapta 0,01101000

01 se aduna X 1,0011

1,10011000 P3

deplasare dreapta 1,11001100

10 se scade X 1,0011

0,10011100 P4

deplasare dreapta 0,01101000

01 se aduna X 1,0011

1,01111110 rezultat (-130/256)2009

Page 45: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.45

Înmulţire rapidă

2009

D4 D3 D2 D1 D0

I0

I1

I2

I3

I4

S SSS S1/2

S SSS S1/2

S SSS S1/2

S SSS S1/2

A9 A6A7A8 A5 A4 A1A2A3 A0

EACC

0

Page 46: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.46

Înmulţire rapidă - exemplu

2009

1 1 1 1 11

1

1

0

1

S SSS S1/2

S SSS S1/2

S SSS S1/2

S SSS S1/2

1 110 0 0 001 1

EACC

11

1

11 10 1111

1111 1

0 0000

1 1111

11

1

1

1

1

01

1

1 1 1 1

1 0 1 10 0

1

0

011

0

011 11

Page 47: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.47

Împărţire prin comparareExistă trei metode de împărţire în binar:

Metoda comparării

Metoda cu refacerea restului parţial

Metoda fără refacerea restului parţial

2009

Page 48: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.48

(ACC)<(B)

(ACC)ß (ACC)-(B)

nuda

Deplasarea spre stanga a ansamblului acumulator-cat

Ultima deplasare ?

STOP

danu

Q0ß 1Q0ß 0

Împărţire prin comparare

2009

1001010 10101110000

1001- 101

-

1000- 101

- 1010111

100- 000

100

Page 49: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.49

Împărţire prin comparare

2009

A4 Q0Q1Q2Q3Q4A0A1A2A3

B4 B0B1B2B3

Scazator binar comparator

deimpartit/catrest

impartitor

Page 50: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.50

Împărţire fără refacerea restului

2009

[A]>0

ß [A]+[Q]

danu

ß [A]+[Q]

Ultima deplasare ?

STOP

danu

1à Q00à Q0

A=[A]-[D]

A=[A]-[D]

ß [A]+[Q]

A=[A]+[D]

Page 51: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.51

Împărţire fără refacerea restului

2009

Dn-1 . . . D0

divizor

An-1 . . . A0 Qn-1 . . . Q0

ALU

Schema de comanda

adunare/scadere

deplasare stanga

rest deimpartit/cat

Page 52: Structura  şi  organizarea calculatoarelor - curs - Ionescu Augustin-Iulian

1.52

Împărţire fără refacerea restului

2009

0 0 1 1

0 0 0 0 1 0 0 0

0 0 0 1 0 0 0

1 1 1 0 0 0 0 0

1 1 0 0 0 0 0

1 1 1 1 0 0 0 0

1 1 1 0 0 0 0

0 0 0 1 0 0 0 1

0 0 1 0 0 0 1

1 ß

A=[A]-[D]<0

2 ß

A=[A]+[D]<0

3 ß

A=[A]+[D]>0

4 ß

1 1 1 1 0 0 1 0A=[A]-[D]<0

0 0 1 0 0 0 1 0A=[A]+[D]