OAK W4 Arytmetyka

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Organizacja i Architektura

Komputerów

1

Arytmetyka komputerów

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Alfabet: 0, 1



Dane w komputerach s

ą

reprezentowane wył

ą

cznie przy

u

ż

yciu alfabetu dwójkowego (binarnego)

2

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Bity, bajty, słowa



Bity s

ą

grupowane w wi

ę

ksze zespoły o długo

ś

ci

b

ę

d

ą

cej pot

ę

g

ą

liczby 2:

tetrada

: 4 bity (

nibble

)

bajt

: 8 bitów

3

bajt

: 8 bitów

słowo

: 16, 32, 64 lub 128 bitów

podwójne słowo

(

doubleword

)

półsłowo

(

halfword

)



Długo

ść

słowa zale

ż

y od

organizacji

komputera

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kody liczbowe

2

2
3

3
4

4
5

5
6

6
7

7

10100111100

10100111100
1211122

1211122
110330

110330
20330

20330
10112

10112
3623

3623

z

a

(

ra

d

ix

)

z

a

(

ra

d

ix

)

dwójkowy (binarny)

dwójkowy (binarny)

Podstawy używane w

systemach cyfrowych

4

7

7
8

8
9

9

10

10
11

11
12

12
13

13
14

14
15

15
16

16

3623

3623
2474

2474
1748

1748
1340

1340
1009

1009
938

938
7C1

7C1
6BA

6BA
5E5

5E5
53C

53C

bb

aa

z

a

(

ra

d

ix

)

z

a

(

ra

d

ix

)

o

ok

ktal

talny

ny

dziesi

dziesię

ętny

tny

szesnastkowy, heksadecymalny,

szesnastkowy, heksadecymalny,
‘hex’

‘hex’

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kod szesnastkowy HEX



Powszechnie
u

ż

ywany przez

programistów
programuj

ą

cych w

j

ę

zyku asemblera

Cyfra HEX

kod binarny

0

0000

1

0001

2

0010

3

0011

4

0100

5



Skraca długo

ść

notacji liczby



Łatwa konwersja na
kod NKB i odwrotnie



Ka

ż

da tetrada

reprezentuje cyfr

ę

szesnastkow

ą

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

A

1010

B

1011

C

1100

D

1101

E

1110

F

1111

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Konwersja HEX – radix 10

6

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Konwersja binarna – HEX

7

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kod BCD



BCD (

binary coded decimal

)

ka

ż

da cyfra dziesi

ę

tna jest

reprezentowana jako 4 bity

kod opracowany dla
wczesnych kalkulatorów

cyfra
dziesi

ę

tna BCD

0 0000
1 0001
2

0010

3

0011

4

0100

8

wczesnych kalkulatorów

przykład: 359

10

=

= 0011 0101 1001

bcd

kod łatwy do zrozumienia
przez człowieka, niewygodny
dla komputerów

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

Kody od 1010 do 1111
nie s

ą

u

ż

ywane

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Porz

ą

dek bajtów w pami

ę

ci



Problem

Pami

ęć

jest zwykle adresowana bajtami

Jak zapisa

ć

w pami

ę

ci słowo 32-bitowe ?

8 bit

8 bitów

ów

9

0x13579BDF

0x13579BDF

s

s

łł

owo 32

owo 32--

bitowe

bitowe

w kodzie HEX

w kodzie HEX

a

d

a

d

re

s

y

re

s

y

1248

1248

1249

1249

1250

1250

1251

1251

...

...

...

...

??

8 bit

8 bitów

ów

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kolejno

ść

bajtów w pami

ę

ci



Rozwi

ą

zanie

podziel słowo na bajty

zapisz kolejne bajty w kolejnych komórkach

8 bitów

10

0x13579BCF

0x13579BCF

każda cyfra

HEX

reprezentuje

tertadę, zatem

dwie cyfry

tworzą bajt

a

d

a

d

re

s

y

re

s

y

1248

1249

1250

1251

...

...

...

...

1 bajt tutaj

następny
bajt tutaj

kolejny bajt

tutaj

ostatni bajt

tutaj

8 bitów

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kolejno

ść

bajtów

cd.



W jakiej kolejno

ś

ci zapisywa

ć

bajty?

Zaczynaj

ą

c od najbardziej znacz

ą

cego (“

big

end

)?

...

...

0x13

0x13

11

a

d

re

s

y

1248

1249

1250

1251

...

...

0x13579BDF

0x13579BDF

0x13

0x13

0x57

0x57

0x9B

0x9B

0xDF

0xDF

kierunek

kierunek

analizy

analizy

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kolejno

ść

bajtów

cd.



W jakiej kolejno

ś

ci zapisywa

ć

bajty?

Zaczynaj

ą

c od najmniej znacz

ą

cego (“

little

end

)?

...

...

0xDF

0xDF

12

aa

d

re

s

y

d

re

s

y

1248

1249

1250

1251

...

...

0x13579BDF

0x13579BDF

0x13

0x13

0x57

0x57

0x9B

0x9B

0xDF

0xDF

kierunek

kierunek

analizy

analizy

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kolejno

ść

bajtów

cd.



Stosuje si

ę

dwa sposoby zapisu słów w pami

ę

ci



Big Endian

most significant byte

in

lowest address

store least significant byte in highest address

13

store least significant byte in highest address



Little Endian

store

least significant byte

in

lowest address

store most significant byte in highest address

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kolejno

ść

bajtów

cd.



Wybór wersji kolejno

ś

ci zapisu bajtów zale

ż

y od

konstruktorów procesora

Big Endian



Motorola 680x0 (Amiga/Atari ST/Mac)



IBM/Motorola PowerPC (Macintosh)

14



IBM/Motorola PowerPC (Macintosh)



MIPS (SGI Indy/Nintendo 64)



Motorola 6800

Little Endian



Intel 80x86/Pentium (IBM PC)



Rockwell 6502 (Commodore 64)



MIPS (Sony Playstation/Digital DECstation)

Niektóre procesory (np. MIPS) mo

ż

na konfigurowa

ć

zarówno w

trybie Big Endian jak i Little Endian

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

ALU



Jednostka arytmetyczno-logiczna (

ALU – arithmetic-logic unit

)

wykonuje operacje arytmetyczne na liczbach w kodzie dwójkowym



ALU jest centralnym blokiem komputera; wszystkie inne bloki
funkcjonalne słu

żą

do wła

ś

ciwej obsługi ALU



Proste ALU wykonuje operacje na liczbach całkowitych (

integer

)

15



Proste ALU wykonuje operacje na liczbach całkowitych (

integer

)



Bardziej zło

ż

one ALU mo

ż

e wykonywa

ć

operacje

zmiennoprzecinkowe FP na liczbach rzeczywistych



Najcz

ęś

ciej ALU_INT i ALU_FP (

FPU – Floating Point Unit

) s

ą

wykonane jako dwa osobne bloki cyfrowe

FPU mo

ż

e by

ć

wykonane jako osobny układ scalony (koprocesor)

FPU mo

ż

e by

ć

wbudowane do procesora

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

ALU – wej

ś

cia i wyj

ś

cia

16

• CU – układ sterowania (Control Unit)

• Registers – rejestry wbudowane do CPU

• Flags – wska

ź

niki, znaczniki stanu, flagi, warunki: zespół wska

ź

ników

bitowych okre

ś

laj

ą

cych specyficzne wła

ś

ciwo

ś

ci wyniku operacji

(zero, znak, przeniesienie itp.)

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

ALU – symbol logiczny



Kod operacji pochodzi z
układu sterowania (CU)



Liczba bitów wyniku jest
taka sama jak liczba bitów
argumentów (operandów)
– w tym przykładzie

operacja

a

17

– w tym przykładzie
wynosi 32



ALU nie tylko generuje bity
wska

ź

ników, ale tak

ż

e

uwzgl

ę

dnia poprzedni stan

wska

ź

ników

32

32

32

wynik
operacji

a

b

ALU

wska

ź

niki

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Wieloznaczno

ść

informacji



Co oznacza poni

ż

szy zapis?

10010111

• Liczb

ę

całkowit

ą

bez znaku: 151

18

• Liczb

ę

całkowit

ą

bez znaku: 151

• Liczb

ę

całkowit

ą

w kodzie znak-moduł: - 23

• Liczb

ę

całkowit

ą

w kodzie uzupełnie

ń

do dwóch: - 105

• Znak w rozszerzonym kodzie ASCII (IBM Latin 2):

Ś

• Kod operacji procesora x86:

XCHG AX,DI

To zale

ż

y od kontekstu

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Liczby całkowite bez znaku



u

ż

ywane s

ą

tylko cyfry 0 i 1

{ }

=

=

1

0

1

2

1

2

1

,

0

.

.

.

n

i

i

i

n

n

a

A

a

a

a

a

a

A

19

=

=

0

2

i

i

a

A



kod ten bywa nazywany NKB

(naturalny kod binarny)



zakres reprezentacji liczb dla
słowa n-bitowego wynosi:

<0, 2

n – 1

>

dla n = 8: <0, 255>

dla n = 16: <0, 65 535>

Przykłady:

00000000 = 0

00000001 = 1

00101001 = 41

10000000 = 128

11111111 = 255

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kod znak-moduł (ZM)



Najbardziej znacz

ą

cy bit

oznacza znak

0 oznacza liczb

ę

dodatni

ą

1 oznacza liczb

ę

ujemn

ą



Przykład

+18 = 00010010


=

=

=

=

2

2

0

1

1

2

0

2

n

i

n

i

n

i

i

a

gdy

a

a

gdy

a

A

20

+18 = 00010010

18 = 10010010



Problemy

Układy arytmetyczne musz

ą

osobno rozpatrywa

ć

bit znaku

i moduł
Wyst

ę

puj

ą

dwie reprezentacje

zera:

+0 = 00000000

0 = 10000000


=

=

0

1

1

2

i

n

i

i

a

gdy

a

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kod uzupełnie

ń

do 2 (U2)



Najbardziej znacz

ą

cy bit

oznacza znak liczby

0 – liczba dodatnia

1 – liczba ujemna



Tylko jedna reprezentacja

Przykłady:

+3 = 00000011

+2 = 00000010

21



Tylko jedna reprezentacja
zera:

+0 = 00000000



Ogólna posta

ć

U2:

=

+

=

2

0

1

1

2

2

n

i

i

i

n

n

a

a

A

+2 = 00000010

+1 = 00000001

+0 = 00000000

-1 = 11111111

-2 = 11111110

-3 = 11111101

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Konwersja NKB – U2

liczba

binarna

ujemna

22

liczba

U2

dodatnia

uzupełnienie

0 1
1 0

+1

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Zalety kodu U2



Jedna reprezentacja zera



Układy arytmetyczne (ALU) maj

ą

prostsz

ą

budow

ę

(wyka

ż

emy to pó

ź

niej)



Negacja (zmiana znaku liczby) jest bardzo prosta:

23



Negacja (zmiana znaku liczby) jest bardzo prosta:

3 = 00000011

uzupełnienie do 1(negacja boolowska)

11111100

dodanie 1

11111101

3 = 11111101

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Kod U2 – ilustracja geometryczna

24

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Wada kodu U2



Zakres reprezentowanych liczb jest niesymetryczny

najmniejsza liczba:

2

n

1

(minint)

najwi

ę

ksza liczba: 2

n

1

1 (maxint)



dla n=8

25



dla n=8

najmniejsza liczba:

128

najwi

ę

ksza liczba: +127



dla n=16

najmniejsza liczba:

32 768

najwi

ę

ksza liczba: +32 767

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Negacja w U2 – przypadki specjalne

0 =

00000000

negacja bitowa

11111111

dodaj 1 do LSB

+1

wynik

1 00000000

przepełnienie jest ignorowane

26

przepełnienie jest ignorowane
wi

ę

c

−0 = 0

√√√√

− 128 =

10000000

negacja bitowa

01111111

dodaj 1 do LSB

+1

wynik

10000000

Wi

ę

c −(− 128) = − 128

X

Wniosek:

nale

ż

y sprawdza

ć

bit znaku

po negacji
(powinien si

ę

zmieni

ć

)

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Konwersja długo

ś

ci słowa w U2



Liczby dodatnie uzupełnia si

ę

wiod

ą

cymi zerami

+18 =

00010010

+18 = 00000000 00010010

27



Liczby ujemne uzupełnia si

ę

wiod

ą

cymi jedynkami

18 =

10010010

18 = 11111111 10010010



Ogólnie bior

ą

c, powiela si

ę

bit MSB (bit znaku)

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Dodawanie i odejmowanie w U2



Obydwie operacje wykonuje si

ę

u

ż

ywaj

ą

c zwykłego

dodawania liczb dwójkowych



Nale

ż

y sprawdza

ć

bit znaku, aby wykry

ć

nadmiar

(overflow)

28



Odejmowanie wykonuje si

ę

przez negowanie odjemnej i

dodawanie:

a −b = a + (− b)



Do realizacji dodawania i odejmowania potrzebny jest
zatem tylko

układ negacji bitowej i sumator

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Układ dodawania i odejmowania U2

29

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Mno

ż

enie



Mno

ż

enie liczb dwójkowych jest znacznie

bardziej zło

ż

one od dodawania i odejmowania



Podstawowy algorytm jest taki sam jak przy
pi

ś

miennym mno

ż

eniu liczb:

30

pi

ś

miennym mno

ż

eniu liczb:

okre

ś

la si

ę

iloczyny cz

ą

stkowe dla ka

ż

dej cyfry

mno

ż

nika

kolejne iloczyny cz

ą

stkowe nale

ż

y umieszcza

ć

z

przesuni

ę

ciem o jedn

ą

pozycj

ę

(kolumn

ę

) w lewo

nale

ż

y doda

ć

do siebie iloczyny cz

ą

stkowe

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Przykład mno

ż

enia

(liczby bez znaku)

1011

mno

ż

na (11 w kodzie dziesi

ę

tnym)

x 1101

mno

ż

nik (13 w kodzie dziesi

ę

tnym)

1011

iloczyny cz

ą

stkowe

0000

Uwaga: je

ś

li bit mno

ż

nika jest równy 1,

1011

iloczyn cz

ą

stkowy jest równy mno

ż

nej,

31

1011

iloczyn cz

ą

stkowy jest równy mno

ż

nej,

1011

w przeciwnym przypadku jest równy 0

10001111

wynik mno

ż

enia (143 w kodzie dziesi

ę

tnym)

Uwaga #1:

wynik ma podwójn

ą

długo

ść

; potrzebujemy słowa

o podwójnej precyzji

Uwaga #2:

powy

ż

szy algorytm funkcjonuje tylko dla liczb bez

znaku; je

ś

li przyj

ąć

kod U2 mno

ż

na = − 5,

mno

ż

nik = − 3, natomiast iloraz wynosiłby − 113,

co oczywi

ś

cie jest nieprawd

ą

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Układ mno

ż

enia liczb bez znaku

32

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Przykład mno

ż

enia liczb bez znaku

33

wynik mno

ż

enia

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Mno

ż

enie liczb bez znaku

cd.

34

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Mno

ż

enie liczb ze znakiem



Prosty algorytm podany wcze

ś

niej nie działa



Rozwi

ą

zanie 1

zamieni

ć

czynniki ujemne na dodatnie

pomno

ż

y

ć

liczby korzystaj

ą

c z podanego wcze

ś

niej

35

pomno

ż

y

ć

liczby korzystaj

ą

c z podanego wcze

ś

niej

algorytmu

je

ś

li znaki czynników (przed wykonaniem negacji)

były ró

ż

ne, zanegowa

ć

iloczyn



Rozwi

ą

zanie 2

algorytm Booth’sa

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Algorytm Booth’sa

Q-1

dodatkowy bit

(przerzutnik) pami

ę

taj

ą

cy

najmniej znacz

ą

cy bit

rejestru Q opuszczaj

ą

cy ten

rejestr przy przesuni

ę

ciu w

prawo

36

prawo

Przesuni

ę

cie arytmetyczne w

prawo

– przesuni

ę

cie z

powieleniem bitu znaku

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Przykład działania metody Booth’sa

37

iloczyn: 3 x 7 = 21 testowane bity: 10 A:=A

-

M

01 A:=A+M

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Algorytm Booth’sa

(znak dowolny)

38

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Dzielenie



Dzielenie liczb dwójkowych jest znacznie bardziej skomplikowane
od mno

ż

enia



Liczby ujemne sprawiaj

ą

spore kłopoty (Stallings, s. 341

-

342)



Podstawowy algorytm podobny do dzielenia liczb na papierze:
kolejne operacje przesuwania, dodawania lub odejmowania



Przykład: dzielenie liczb bez znaku:

Iloraz

39

001111

1011

00001101

10010011

1011

001110

1011

1011

100

Iloraz
(Quotient)

Dzielna
(Dividend)

Reszta
(Remainder)

Reszty
cz

ą

stkowe

(Partial
Remainders
)

Dzielnik
(Divisor)

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Liczby rzeczywiste



Liczby z cz

ęś

ci

ą

ułamkow

ą



Mo

ż

na je zapisa

ć

korzystaj

ą

c z kodu NKB i dodatkowo

znaków ‘

-

’ oraz ‘.’

1001.1010 = 2

4

+ 2

0

+2

-1

+ 2

-3

=9.625

40

1001.1010 = 2 + 2 +2 + 2 =9.625



Problem: gdzie znajduje si

ę

kropka dziesi

ę

tna?



W stałym miejscu?

rozwi

ą

zanie niedobre z punktu widzenia metod numerycznych



Na zmiennej pozycji?

jak poda

ć

informacj

ę

o miejscu poło

ż

enia kropki?

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Liczby zmiennoprzecinkowe (FP)

b

it

zn

a

k

u

przesuni

ę

ty

wykładnik
(exponent
)

mantysa (significand or mantissa)

41



Warto

ść

liczby: +/

-

1. mantysa x 2

wykładnik



Podstawa 2 jest ustalona i nie musi by

ć

przechowywana



Poło

ż

eniu punktu dziesi

ę

tnego jest ustalone: na lewo od

najbardziej znacz

ą

cego bitu mantysy

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

FP – mantysa



Mantysa jest zapisana w kodzie U2



Wykładnik jest zapisany z przesuni

ę

ciem (excess or

biased notation)

42

np. przesuni

ę

cie równe 127 oznacza:

8-bitowe pole wykładnika

zakres liczb 0-255

od przesuni

ę

tego wykładnika nale

ż

y odj

ąć

127 aby otrzyma

ć

prawdziw

ą

warto

ść

zakres warto

ś

ci wykładnika -127 to +128

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

FP – normalizacja



Liczby FP s

ą

zwykle normalizowane, tzn. wykładnik jest

tak dobierany, aby najbardziej znacz

ą

cy bit (MSB)

mantysy był równy 1



Poniewa

ż

bit ten jest zawsze równy 1, nie musi by

ć

przechowywany. Dlatego 23-bitowe pole mantysy w

43

przechowywany. Dlatego 23-bitowe pole mantysy w
rzeczywisto

ś

ci odpowiada mantysie 24-bitowej, z cyfr

ą

1

na najbardziej znacz

ą

cej pozycji (mantysa mie

ś

ci si

ę

zatem w przedziale od 1 do 2



Uwaga:

w notacji naukowej FP (Scientific notation) liczby

s

ą

normalizowane inaczej, tak aby mantysa miała jedn

ą

znacz

ą

c

ą

cyfr

ę

przed kropk

ą

dziesi

ę

tn

ą

,

np. 3.123 x 10

3

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

FP – przykład

44

pozycje mantysy

uzupełniane s

ą

zerami

1,1010001 x 210100 = 0 10010011 10100010000000000000000

- 1,1010001 x 210100 = 1 10010011 10100010000000000000000

1,1010001 x 2-10100 = 0 01101011 10100010000000000000000

- 1,1010001 x 2-10100 = 1 01101011 10100010000000000000000

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Zakres reprezentacji liczb FP



Dla formatu 32-bitowego

8-bitowy wykładnik
+/

-

2

256

1.5 x 10

77

45



Dokładno

ść

efekt nierównomiernego pokrycia osi liczb
rzeczywistych (zmienna warto

ść

LSB mantysy)

23-bitowa mantysa: 2

-23

1.2 x 10

-

7

około 6 pozycji dziesi

ę

tnych

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Zakresy liczb FP i U2

(format 32-bitowy)

46

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Standard IEEE 754



Dwa warianty: 32- i 64-bitowy format liczb



8- lub 11-bitowy wykładnik (bias = 127 lub 1023)



IEEE 754 dopuszcza ponadto tzw. formaty rozszerzone (extended
formats
) dla oblicze

ń

po

ś

rednich w systemach cyfrowych

47

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

ANSI/IEEE Standard Floating-Point Format (IEEE 754)

Short (32-bit) format

8 bits,
bias = 127,

126 to 127

23 bits for fractional part
(plus hidden 1 in integer part)

Short exponent range is –127 to 128

but the two extreme values

are reserved for special operands

(similarly for the long format)

Revision (IEEE 754R) is being considered by a committee

48

The two ANSI/IEEE standard floating-point formats.

Long (64-bit) format

Sign Exponent

Significand

11 bits,
bias = 1023,

1022 to 1023

52 bits for fractional part
(plus hidden 1 in integer part)

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Standard IEEE 754



W rzeczywisto

ś

ci standard IEEE 754 jest

bardziej skomplikowany:

dodatkowe dwa bity: guard i round
cztery warianty zaokr

ą

glania

49

cztery warianty zaokr

ą

glania

liczba dodatnia podzielona przez 0 daje
niesko

ń

czono

ść

niesko

ń

czono

ść

dzielona przez niesko

ń

czono

ść

daje

NaN (not a number)

niektóre procesory nie s

ą

w pełni zgodne z IEEE

754, skutki s

ą

na ogół niedobre (Pentium bug)

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Some features of ANSI/IEEE standard floating-point formats

Feature

Single/Short

Double/Long

Word width in bits

32

64

Significand in bits

23 + 1 hidden

52 + 1 hidden

Significand range

[1, 2 – 2

–23

]

[1, 2 – 2

–52

]

Exponent bits

8

11

Exponent bias

127

1023

Zero (

±

0)

e + bias = 0, f = 0

e + bias = 0, f = 0

50

Denormal

e + bias = 0, f

0

represents

±

0.f

×

2

–126

e + bias = 0, f

0

represents

±

0.f

×

2

–1022

Infinity (

±

)

e + bias = 255, f = 0

e + bias = 2047, f = 0

Not-a-number (NaN)

e + bias = 255, f

0

e + bias = 2047, f

0

Ordinary number

e + bias

[1, 254]

e

[–126, 127]

represents 1.f

×

2

e

e + bias

[1, 2046]

e

[–1022, 1023]

represents 1.f

×

2

e

min

2

–126

1.2

×

10

–38

2

–1022

2.2

×

10

–308

max

2

128

3.4

×

10

38

2

1024

1.8

×

10

308

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Arytmetyka FP +/

-



W arytmetyce FP dodawanie i odejmowanie s

ą

bardziej zło

ż

onymi operacjami ni

ż

mno

ż

enie i

dzielenie (powodem jest konieczno

ść

tzw.

wyrównywania składników)

51



Etapy dodawania i odejmowania

Sprawdzenie zer

Wyrównanie mantys (i korekcja wykładników)

Dodawanie lub odj

ę

cie mantys

Normalizowanie wyniku

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Arytmetyka FP x /

÷



Etapy mno

ż

enia i dzielenia

sprawdzenie zer

dodawanie/odejmowanie wykładników

mno

ż

enie/dzielenie mantys (uwaga na znak)

52

mno

ż

enie/dzielenie mantys (uwaga na znak)

normalizacja

zaokr

ą

glanie

Uwaga:

wszystkie wyniki oblicze

ń

po

ś

rednich

powinny by

ć

wykonywane w podwójnej precyzji

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

53

Mno

ż

enie FP

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

54

Dzielenie FP

background image

Wy

ż

sza Szkoła Informatyki Stosowanej i Zarz

ą

dzania

Podsumowanie



Zapis słów w pami

ę

ci (Endian)



Reprezentacje liczb: NKB, ZM, U2, BCD, HEX



Ogólna charakterystyka ALU



Operacje na liczbach całkowitych bez znaku

55



Operacje na liczbach całkowitych bez znaku



Operacje na liczbach całkowitych ze znakiem



Mno

ż

enie – algorytm Booth’sa



Liczby zmiennoprzecinkowe FP



Formaty liczb FP, IEEE 754



Operacje na liczbach FP


Wyszukiwarka

Podobne podstrony:
OAK W4 Arytmetyka
W4 Proces wytwórczy oprogramowania
W4 2010
Statystyka SUM w4
w4 3
W4 2
W4 1
w4 skrócony
w4 orbitale molekularne hybrydyzacja
in w4
w4 Zazębienie ewolwentowe
TM w4

więcej podobnych podstron