Normalizacja liczb z ruchomym przecinkiem

advertisement
Katolicki Uniwersytet Lubelski
Architektura komputerów
Computer Architecture
Prof. zw. dr hab. inż. Anatoliy Melnyk
E–mail: [email protected]
Katolicki Uniwersytet Lubelski
Lecture 3:
Reprezentacja danych w
komputerze
Katolicki Uniwersytet Lubelski
Plan of presentation
n
n



n
n



n
Decimal Numbers
Binary Numbers
Representation of signed numbers
Signed-magnitude method
One’s complement method
Two’s complement method
Data formats
Fixed point format
Floating point format
Short and long data word
Programmable processors classification depending on data presentation
3
Katolicki Uniwersytet Lubelski
Systemy liczbowy














SL — system liczbowy
SL1 — unitarny (jednostkowy) SL
SLR — rzymski SL
SL10 — dziesiętny SL
SL2–10 (SLBCD) — dwójkowo–dziesiętny SL (ang. Binary-Coded
Decimal )
SL2 — dwójkowy SL
SL8 — osemkowy SL
SL16 — szesnastkowy SL
SLzm — liczba w kodzie prostym (znak-module)
SLuzp1 — liczba w kodzie uzupełniającym do 1
SLuzp2 — liczba w kodzie uzupełniającym do 2
SLBIAS — liczba w kodzie z przesunięciem (ang. BIAS)
SLREAL — liczba zmiennoprzecinkowa
4
Katolicki Uniwersytet Lubelski
Systemy pozycyjne
In Positional Number System the position of digit plays important role.
Number in this system has the following view
X = xsxs-1...x1x0,x-1...x-m.
Point divides integral part and fraction of number.
Quantitative equivalent of this equation:
X = ksxs+ks-1xs-1+...+k1x1+k0x0+k-1x-1+...+k-mx-m,
Where k – base of number system;
s+1 – precision of integral part of number;
m - precision of fraction of number;
xi – digit i of number (xi = 0, 1, ..., k-1);
ki – weight of digit i.
5
Katolicki Uniwersytet Lubelski
Decimal Numbers
In decimal system any number can be presented by digits from 0 to 9.
The position of digit plays important role. The rule of data writing in
decimal system has the following view:
D  DN 1 10 N 1  DN 2 10 N 2  ...  D1 101  D0 100  D1' 10 1  D2' 10 2  ...  DM' 10  M
Where:
N – quantity of digits in integral part of number (from left side of
point);
M – quantity of digits in fractional part of number (from right side of
point);
Di – volume of i digit in integral part of number;
D'i – volume of i digit in fractional part of number;
D – volume of number;
Integral or fractional part can be absent in the number (N or M = 0).
6
Katolicki Uniwersytet Lubelski
Binary Numbers
In computers all information is presented by the binary digits. The reason is
that its base element has two states. Lets consider their features.
The rule of data writing in binary system has the following view:
B  BN 1  2 N 1  BN 2  2 N 2  ...  B1  21  B0  2 0  B1'  2 1  B2'  2 2  ...  BM'  2  M
Where:
N – quantity of binary digits in integral part of number (from left side of
point);
M – quantity of binary digits in fractional part of number (from right side of
point);
Bi – volume of i digit in integral part of number;
B'i – volume of i digit in fractional part of number;
B – volume of number.
Integral or fractional part can be absent in the number (N or M = 0).
7
Katolicki Uniwersytet Lubelski
Examples of Binary Numbers
1011010,012  1  2 6  0  2 5  1  2 4  1  2 3  0  2 2  1  21  0  2 0  0  2 1  1  2 2 
 64  16  8  2  0.25  90.2510
101,011012  1  2 2  1  2 0  1  2 2  1  2 3  1  2 5  5.0,4062510
1100110.112  102.7510
8
Katolicki Uniwersytet Lubelski
Hexadecimal numbers
binary
Hexadecimal
binary
Hexadecimal
0000
0
1000
8
0001
1
1001
9
0010
2
1010
A
0011
3
1011
B
0100
4
1100
C
0101
5
1101
D
0110
6
1110
E
0111
7
1111
F
9
Katolicki Uniwersytet Lubelski
Transformation of
numbers from number system with
base k to decimal
Number has the following view
X = xsxs-1...x1x0,x-1...x-m.
Point divides integral part and fraction of number. Quantitative
equivalent of this equation:
X = ksxs+ks-1xs-1+...+k1x1+k0x0+k-1x-1+...+k-mx-m,
Where k – base of number system;
s+1 – precision of integral part of number;
m - precision of fraction of number;
xi – digit i of number (xi = 0, 1, ..., k-1);
ki – weight of digit i.
Example:
1011,10012 = 1·23+ 0·22+1·21+1·20+1·2-1+0·2-2+0·2-3+1·2-4 =
= 8 + 0 + 2 + 1 + 0,5 + 0 + 0 + 0,0625 = 11,5625;
X10 = 11,5625.
10
Katolicki Uniwersytet Lubelski
Transformation of numbers
from decimal to number system
with base k
Example. Decimal 11,5625 to binary
Integer part:
11 : 2 = 5, rest 1 (low-order bit of result),
5 : 2 = 2, rest 1,
2 : 2 = 1, rest 0,
1 : 2 = 0, rest 1 (high-order bit of result).
Result Xi = 1011.
11
Katolicki Uniwersytet Lubelski
Transformation of numbers
from decimal to number system
with base k
Example. Decimal 11,5625 to binary
Fractional part:
Result X2f =0,10010.
Full result
X2= X2i+X2f = 1011 + 0,10010 = 1011,10010.
12
Representation of
signed numbers
Katolicki Uniwersytet Lubelski
There are three methods of signed numbers presentation:
•Signed-magnitude method;
•One’s complement (diminished-radix complement) method;
•Two’s complement (radix complement) method.
13
Katolicki Uniwersytet Lubelski
Signed-magnitude method
(moduł ze znakiem (MZ))
In signed-magnitude method left bit represents the sign of
number and other bits represent the proper number.
Sign of number
0="+"
1="-"
S
Cn
Cn-1
...
C1
C0
Proper number in binary form
Examples:
510  00101signedmagnitude code
510  10101signedmagnitude code
2510  011001signedmagnitude code 2510  111001signedmagnitude code
14
Katolicki Uniwersytet Lubelski
One’s complement method
(uzupełnieniowy do jedynek (U1))
In one’s complement method oldest bit represents the sign of number (“0”
means positive number, “1” means negative number). The bits of positive
number are written in usual view and the bits of negative number are written
in inverse view (instead of “0” the “1” is written and vice versa).
Sign of number
0="+"
1="-"
S
Examples:
Cn
Cn-1
...
C1
C0
Proper number in direct or inverted binary code
depending of sign
510  00101one's complement
510  11010one's complement
2510  011001one's complement
2510  100110one's complement
15
Katolicki Uniwersytet Lubelski
Two’s complement method
(uzupełnieniowy do dwójki (U2))
Two’s complement method is based at one’s complement method. If
number is positive then it is not changed, if negative – after inverting
it is increased on “1”.
Its most used method.
Examples:
510  00101Two’s comple ment
510  11011Two’s complement
2510  011001Two’s complement
2510  100111Two’s complement
1210  01100Two’s complement
1210  10100Two’s complement
16
Katolicki Uniwersytet Lubelski
Data formats
Units of information:
Bit, Byte, Word.
Word sizes: 1 byte, 2 bytes, 4 bytes, 8 bytes.
Two formats are used for data presentation:
Fixed point;
Floating point.
In fixed point format point is at fixed (known) position. For integer number it is
placed after number, for fraction number – before number. In this case data
are presented at the range
 1  number  1
When there is sign or at the range
if there is no sign.
0  number  1
17
Katolicki Uniwersytet Lubelski
Bity, bajty i słowa
Bit b (ang. bit = binary
digit ) jest to najmniejsza
dwojkowa lichba: b
Bit przyjmuje dwa
znaczenia b {0,1}
Bajt B (ang. byte) jest to
8 bitów.
Słowo W (ang. word)
zajmuje dwa bajty
(1W=2B=16b):

18
Katolicki Uniwersytet Lubelski
Bity, bajty i słowa
Dwa słowa tworzą podwójne słowo składające się z 32 bitów
19
Katolicki Uniwersytet Lubelski
Fixed point formats of today’s PC
Formats without sign
Word length
min
max
16 байт = 128 біт
0
3,40282366920938e+38
8 байт = 64 біт
0
18446744073709551615
4 байти = 32 біти
0
4294967295
2 байти = 16 біт
0
65535
1 байт = 8 біт
0
255
Formats with sign (two’s complement code)
Word length
min
Max
16 байт = 128 біт
-1,70141183460469e+38
1,70141183460469e+38
8 байт = 64 біт
-9223372036854775808
9223372036854775807
4 байти = 32 біти
-2147483648
2147483647
2 байти = 16 біт
-32768
32767
1 байт = 8 біт
-128
127
20
Katolicki Uniwersytet Lubelski
Liczby zmiennoprzecinkowe
W ogólnym wypadku liczba w formacie z ruchomym
przecinkiem nadarza pod postacią
A = ± m·q± p,
gdzie m - mantysa liczby, q - podstawa wykładnika, ± p - wykładnik liczby.
Poprzedni wyraz można zapisać jak
A = ± mA·±pA,
gdzie uroniono podstawę wykładnika, ponieważ w komputerach
podstawa wykładnika jest nieodmienna.
W większości wypadków ona dorównuje podstawie systemu obliczania, czyli 2.
21
Katolicki Uniwersytet Lubelski
Liczba z ruchomym przecinkiem
Liczba z ruchomym przecinkiem z nie zmieśczonym wykładnikiem
Sp
P
Sm
M
Liczba z ruchomym przecinkiem z zmieśczonym wykładnikiem
Sm
P
M
22
Katolicki Uniwersytet Lubelski
Normalizacja liczb z ruchomym
przecinkiem
Dla zabezpieczenia jednoznacznego i maksymalnie dokładnego
przedstawienia liczb przyjęto przedstawiać liczbę z ruchomym przecinkiem
w tak zwanym znormalizowanym wyglądzie.
Jeśli wykonuje się nierówność q - 1<= |m|<1, a w razie
dwójkowego systemu obliczania 0.5<= |m|<1 (starszy dwójkowy bit
mantysy dorównuje 1), to uważa się, że liczba jest przedstawiona
w znormalizowanym wyglądzie.
Więc, u dwójkowej znormalizowanej liczby w formacie z ruchomym
przecinkiem w starszym bicie mantysy zawsze stoi 1.
Operacja przywiedzenia liczby do znormalizowanego wyglądu nazywa się
normalizacją.
Normalizacja liczb w komputerze wykonuje się albo automatycznie albo ż
specjalną program.
23
Katolicki Uniwersytet Lubelski
Starszy bit znormalizowanej
mantysy
• Starszy bit znormalizowanej mantysy zazwyczaj nie odzwierciedla się
w formacie liczby czyli jest domniemana.
• Bit słowa, w którym musi była być odzwierciedlona ta jednostka,
wykorzystuje się jak młodszy bit charakterystyki, albo starszy bit mantysy,
co pozwala zwiększyć diapazon przedstawienia liczb w formacie z ruchomym
przecinkiem, albo precyzja obliczeń.
• Więc, mantysa w takim wariancie odzwierciedla się, zaczynając z bitu, co
idzie po starszym.
• Przy całych operacjach z mantysą liczby tę okoliczność należy uwzględniać i
przed początkiem operacji ponawiać starszą bit mantysy.
• Po zakończeniu operacjik ształtowania znormalizowanego wyniku w
odprowadzonej dla niego siatce, starsza jednostka mantysy znów odrzuca
się.
24
Katolicki Uniwersytet Lubelski
Właściwości wykonania operacji nad
liczbami z ruchomym przecinkiem
• zwiększenie mantysy do 2 razy spełnia się zsuwem dwójkowego
znaczenia mantysy na lewo (w stronę starszych bitów);
• zmniejszenie mantysy do 2 razy spełnia się zsuwem
dwójkowego znaczenia mantysy w prawo (w stronę
młodszych bitów);
• wielkość liczby nie zmieni się, jeśli zwiększyć mantyse do 2
razy a zarazem zmniejszyć wykładnik na 1;
• wielkość liczby nie zmieni się, jeśli zmniejszyć mantyse do 2
razy a zarazem zwiększyć wykładnik na 1.
25
Katolicki Uniwersytet Lubelski
Przedstawienie liczb z ruchomym
przecinkiem z podstawą wykładnika
S =4,8,16
•
Tu
wykładnik
P
nadarza
dwójkową
całą
liczbą,
a
mantysa
M
liczbą,
w
której
grupy
po
r
dwójkowych
bitów
przedstawiają
jej
cyfry z podstawą systemu obliczania S.
•
Użycie
dla
liczb
z
ruchomym
przecinkiem
niedwójkowej
podstawy
wykładnika coś zmniejsza precyzję obliczeń (przy zadanej liczbie
bitów
mantysy), lecz pozwala zwiększyć diapazon przedstawienia liczb, i przyśpieszyć wykonanie
niektórych operacji, w szczególności normalizacje, kosztem tego, że zsuw może
przeprowadzać się od razu na kilka dwójkowych bitów (na cztery bitów dla podstawy
wykładnika 16).
•
Oprócz
tego,
zmniejsza
się
wiarygodność
pojawienia
nie
znormalizowanych liczb podczas obliczeń. Przy S=16 liczba X jest uważana
za znormalizowaną, jeśli starsza cheksadecymalna cyfra Xi jest odmienna od 0. Czyli w
znormalizowanej liczbie trzy starsze dwójkowe cyfry mogą dorównywać 0.
•
Jeśli r starszych cheksadecymalnych
cyfr mantysy równe 0, to normalizacja w
tym wypadku polega na zsuwie w lewo mantysy na r cheksadecymalnych
cyfr i
odpowiednim
zmniejszeniu
wykładnika
na
r
jednostek.
Zsuw
na
jedną
cheksadecymalnych
cyfre
wykonuje
się
jak
zsuw
26
Katolicki Uniwersytet Lubelski
Format z ruchomym przecinkiem
komputerów firm CDC i IBM
0
Znak mantysy
(S)
1
11
(E)
Znak mantysy
(S)
48 bitow
0,1
1
7
8
Wykladnik, przesuniety na 63
(E)
7 bitow
59
Mantysa w kodzie U1
(M)
Wykladnik, przesuniety na 1023
11 bitow
0
12
0,0001
31
Mantysa w kodzie MZ
(M)
24 bity
27
Katolicki Uniwersytet Lubelski
Blokowo-ruchomy i ruchomoruchomy przecinek
Istnieje duża klasa zadań, kiedy przetwarzaniu podporządkowują się
masywy liczb, które zmieniają się w wąskim diapazonie
znaczeń. W tym wypadku w celu bardziej efektywnego użycia siatki danych
dla przedstawienia liczb wykorzystują tak zwaną blokowo-ruchomy
przecinek, kiedy dla całego masywu liczb jest tylko jeden wykładnik. W
specjalistycznych komputerach to pozwala istotnie
zmniejszyć wydatkowania urządzenia na budowę aryfmetyczno logicznej
jednostki.
Przy potrzebie jeszcze większego rozszerzenia diapazonu
przedstawienia danych wykorzystuje się tak zwany format z ruchomoruchomym przecinkiem:
Sm
P1
P2
M
Tu znaczenie liczby wyznacza się z wyrazu A = 2 ↑P1 2 ↑ P2.
28
Katolicki Uniwersytet Lubelski
Liczby zmiennoprzecinkowe standard IEEE 754
Dla przedstawienia danych z ruchomym przecinkiem format za standardem IEEE
754 jest wykorzystany. 32-bitowy:
0
Sign of
magnitude (S)
1
8
9
31
Exponent shifted on 127 (E)
Magnitude in direct code
(M)
8 bits
23 bits
1,
Tę cyfrę można podać formułą:
number   1  2 E 127  (1, M )
S
29
Katolicki Uniwersytet Lubelski
Liczby zmiennoprzecinkowe standard IEEE 754
64-bitowy:
0
Znak mantysy
(S)
1
11
63
Mantysa w kodzie MZ
(M)
Wykladnik przesuniety na 1023
(E)
11 bitow
12
1,
52 bity
Tę cyfrę można podać formułą:
number   1  2
S
E 1023
 (1, M )
30
Katolicki Uniwersytet Lubelski
Diapazon liczb, przedstawionych
w
standardzie IEEE - 754 z podwójną
precyzją
ujemny
liczby
przepełnienie
308
-1.0 x10
strata
znachnost
i
-308
-1.0 x10
strata
znachnosti
нуль
dodatni
liczby
-308
1.0 x10
przepełnienie
1.0 x10
308
31
Katolicki Uniwersytet Lubelski
Krótkie i długie słowo danych
Jedna liczba jest wskazana przez jeden adres:
Number
0
k-1
Kilka liczb są wskazany przez jeden adres:
Number1
0
Number2 Number3 Number4
k-1 k
2k-1 2k
3k-1 3k
4k-1
32
Katolicki Uniwersytet Lubelski
Klasyfikacja procesorow
programowanych w zależności od
prezentacji danych








podstawa
rozmiar danych
bez znaku
ze znakiem
stałoprzecinkowa
zmiennoprzecinkowa
krótkie słowo danych
długie słowo danych
33
Download