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 00101signedmagnitude code 510 10101signedmagnitude code 2510 011001signedmagnitude code 2510 111001signedmagnitude 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