AK 2


Dane
Architektura systemów
komputerowych
1
Plan wyk adu
Typy danych
Binarne reprezentacje danych
Dane w pami ci komputera
Wektorowe typy danych
2
Dane, na których operuje komputer
Warto ci logiczne (prawda/fa sz)
Znaki pisarskie
Liczby
 ca kowite
nieujemne
ze znakiem
 nieca kowite
sta opozycyjne
zmiennopozycyjne
wi ki i inne sygna y jednowymiarowe
Obrazy rastrowe
Komputer musi by zaprojektowany tak, aby by zdolny do przetwarzania
danych zgodnie z potrzebami u ytkownika. Wspó czesne komputery s
ywane do przetwarzania danych ró nych typów  liczbowych, logicznych,
tekstowych, a tak e obrazów i d wi ków.
3
Binarna reprezentacja danych
Komputer operuje wy cznie na grupach
bitów (cyfr binarnych), tworz cych liczby
binarne
 wspó czesne komputery operuj najcz ciej na
owach binarnych, których d ugo wynosi 8x2n
bitów (np. 8,16, 32, 64)
Dane nieliczbowe (znaki, sygna y) musz
by najpierw zapisane przy u yciu liczb
Wspó czesne komputery dzia aj w systemie binarnym. Wszystkie dane, na
których operuje komputer, s zapisane w postaci ci gów cyfr binarnych 
bitów (BInary Digit), interpretowanych najcz ciej jako liczby binarne.
Wszelkie dane o charakterze nieliczbowym musz by zapisane
(zakodowane) w postaci liczb lub grup liczb.
4
Dane alfanumeryczne
Ka dy znak pisarski jest reprezentowany przez
liczb stanowi jego numer w tablicy kodowej
Najcz ciej u ywane kody:
 ASCII  128 pozycji, w tym ma e i wielkie litery alfabetu
aci skiego
 rozszerzone kody 256-pozycyjne na bazie ASCII
pierwsze 128 pozycji jak w ASCII, nast pne 128 pozycji
zawiera znaki narodowe lub inne symbole
problem ró ne kody dla ró nych cz ci wiata
 kody rodziny EBCDIC (u ywane g ównie przez IBM)
 UNICODE
pierwotnie 216, obecnie do 232 mo liwych pozycji
reprezentacja wszystkich znaków u ywanych na wiecie
Dane alfanumeryczne  tekstowe maj posta znaków pisarskich  liter, cyfr,
znaków przestankowych i innych symboli . W komputerze s one
reprezentowane przez liczby, okre laj ce pozycj danego symbolu w tablicy
kodowej. We wspó czesnych komputerach u ywa si kilku standardów
kodowania znaków pisarskich.
Kod ASCII zosta opracowany w pierwszej po owie XX wieku dla urz dze
dalekopisowych. Zawiera on cyfry, znaki przestankowe, podstawowe symbole
matematyczne oraz ma e i wielkie litery alfabetu aci skiego, mieszcz ce si
na 128 pozycjach kodowych.
Kody rodziny EBCDIC s ywane w systemach firmy IBM. Bazuj one na
binarnym kodowaniu liczb dziesi tnych reprezentuj cych pozycje kodowe
znaków.
Kod UNICODE jest uniwersalnym kodem znakowym, umo liwiaj cym
reprezentacj wszystkich znaków pisarskich zapisu fonetycznego
(g oskowego) u ywanych na ca ym wiecie. Liczba pozycji kodowych jest
praktycznie nieograniczona, obecnie jest zdefiniowanych kilkadziesi t tysi cy
znaków
5
Kod ASCII
Opracowany dla urz dze dalekopisowych, pó niej przyj ty dla
komputerów
128 pozycji, w tym 95 znaków widocznych i 33 niewidoczne
znaki niewidoczne:
 spacja (kod 32)
 odst py i inne kody formatuj ce
 kody steruj ce transmisj i urz dzeniami
znaki widoczne:
 cyfry
 wielkie i ma e litery alfabetu aci skiego
 znaki interpunkcyjne
 podstawowe symbole matematyczne
6
Co programista powinien wiedzie o
ASCII
kody steruj ce zajmuj pozycje od 0 do 31, w tym
 CR  powrót na pocz tek wiersza  13
 LF  przej cie do nast pnego wiersza  10
 inne wa ne: HT, FF, BSP, BEL
spacja  kod 32
cyfry 0..9 - kody od 48 do 57 (0x30..0x39)
litery w kolejno ci alfabetycznej
 wielkie  65..90 (0x41..0x5a)
 Ma e  97..122 (0x61..0x7a)
 odst p pomi dzy ma i wielk liter wynosi 32 (0x20)
pozosta e znaki widoczne zajmuj pozycje pomi dzy 32 i 127
127  kod specjalny (kasowanie znaku)
Symbole ASCII o kodach 0..31 nie s znakami pisarskimi, lecz kodami
formatuj cymi oraz kodami steruj cymi wymian informacji. W ród nich
znajduj si m.in. kody: CR  przej cie na pocz tek wiersza, LF  przej cie do
nast pnego wiersza, FF  rozpocz cie nowej strony, HT  tabulacja pozioma,
BSP  cofni cie o jeden znak, BEL  sygna wi kowy, VT  tabulacja
pionowa i wiele innych
7
Rozszerzone kody na bazie ASCII
256 pozycji kodowych  reprezentacja 8-bitowa
 pierwsze 128 pozycji identycznych z ASCII
 kolejne 128 pozycji reprezentuje znaki wybranej grupy alfabetów
narodowych lub inne, np.
znaki alfabetów s owia skich
znaki alfabetów skandynawskich
cyrylica
alfabet grecki
Wiele tablic kodowych pochodz cych z wielu róde ,
m. in.
 ISO8859  kilkana cie tablic (znaki polskie  ISO8859-2)
 Microsoft  kilkadziesi t tablic, tzw.  strony kodowe"  CP
 asne o lokalnym zasi gu, np. Mazovia, Polgaz
Na bazie kodu ASCII zaprojektowano wiele kodów rozszerzonych,
zawieraj cych 256 pozycji kodowych. W kodach tych pierwsze 128 pozycji jest
identyczne, jak w kodzie ASCII, a nast pne 128 pozycji zawiera znaki
dodatkowe, np. litery akcentowane, rozszerzony zestaw symboli
matematycznych, litery alfabetów narodowych. Istnieje wiele kodów tej
rodziny, u ywanych w ró nych cz ciach wiata. W Polsce najpowszechniej
ywa si kodów ISO8859-2 oraz Microsoft CP1250. Jeszcze kilkana cie lat
temu w naszym kraju u ywano ponad 12 ró nych standardów kodowanie
polskich znaków.
8
Reprezentacja d wi ków i obrazów
wi k:
 chwilowa warto napi cia reprezentuj cego ci nienie
akustyczne próbkowana z cz stotliwo ci zale od
potrzeb (zwykle od 8 do 48 kHz)
 warto ci próbek zapisywane jako liczby
Obraz rastrowy
 zapisany w postaci prostok tnej macierzy punktów (pikseli)
 ka demu pikselowi odpowiada jeden kolor
 kolor reprezentowany w postaci trzech sk adowych 
jasno ci barw podstawowych
 warto ci jasno ci zapisane w postaci liczb
9
Jednostki informacji
bit (Binary digIT)  skrót  b  najmniejsza jednostka informacji,
odpowiada informacji TAK  NIE, 1  0, PRAWDA  FA SZ
bajt (byte)  skrót  B  najmniejsza jednostka informacji adresowana
przez procesor  obecnie 8 bitów
owo (word)  jednostka informacji na której operuje komputer
 1, 2, 4, 8,16 bajtów
owo procesora  jednostka informacji o d ugo ci naturalnej dla
danego procesora
 ugo odpowiada d ugo ci rejestrów  obecnie 32 lub 64 bity
owo pami ci  jednostka informacji mo liwa do przetransmitowania
w jednym cyklu transmisji do lub z pami ci
 obecnie zwykle 64 bity, niekiedy 128
 wi ksza d ugo = szybsza transmisja danych
10
Formaty danych
Komputery operuj na s owach  ci gach bitów o d ugo ciach
wyra onych najcz ciej pot gami liczby 2
 typowe d ugo ci s ów dla komputerów uniwersalnych  8, 16, 32,
64, 128 bitów
 komputery specjalizowane mog ywa innych formatów danych
 np. 24 bity
Niektóre komputery mog ponadto operowa na pojedynczych
bitach i ci gach bitów o dowolnych, niewielkich d ugo ciach 
tzw. polach bitowych
Dane s najcz ciej zapisywane w postaci s ów o d ugo ci
odpowiedniej dla danego typu komputera
11
Zapis danych logicznych
(Boolowskich)
Do zapisu danej logicznej wystarcza jeden bit
 w komputerach obs uguj cych dane bitowe u ywa si zapisu
jednobitowego
W wi kszo ci komputerów dane logiczne s reprezentowane przez
owa o d ugo ci naturalnej dla danego komputera
 tak samo, jak dane ca kowitoliczbowe  np. 32 bity
Reprezentacje zale od rodowiska i j zyka programowania
 warto  fa sz jest zwykle reprezentowana przez s owo o wszystkich
bitach równych 0
  prawda mo e by reprezentowana przez:
liczb ca kowit o warto ci 1 (j zyk C  wynik operacji)
liczb ca kowit o dowolnej warto ci ró nej od zera (j zyk C  argument operacji)
owo o wszystkich bitach równych 1 (np. Visual Basic)
Najprostszy typ danych stanowi dane logiczne. Mog one przyjmowa dwie
warto ci. Bajtowe adresowanie danych u ywane w komputerach oraz fakt, e
wiele komputerów traktuje jako podstawowy format danych s owo 32-bitowe
powoduj , e dane logiczne s zwykle zapisywane w postaci bajtów lub s ów,
pomimo, e do ich zapisu wystarczy by pojedynczy bit.
Nale y zwróci uwag na reprezentacj warto ci PRAWDA w ró nych
zykach programowania. Ró ne wzorce bitowe u ywane w ró nych j zykach
oraz korzystanie z operatorów (np. negacji) bitowych zamiast logicznych mog
by przyczyn dów w programach, w których poszczególne modu y s
pisane w ró nych j zykach.
12
Zapis liczb ca kowitych nieujemnych
n bitów
bn-1 bn-2 bn-3 bn-4 bn-5 bn-6 & . b5 b4 b3 b2 b1 b0
n 1
bi 2i
" Naturalny kod binarny - NKB
NKB
i 0
" Kod BCD
" U ywany dla liczb dziesi tnych sta opozycyjnych
" Cyfry dziesi tne kodowane binarnie  4 bity (tetrada) na cyfr
" Dozwolone warto ci tetrady 0..9, pozosta e niewa ne
" Postaci:
" spakowana  2 cyfry w bajcie
" niespakowana ( ASCII )  jedna cyfra w bajcie
W dalszej cz ci do opisu ró nych reprezentacji danych liczbowych b dziemy
pos ugiwali si za eniem, e dane reprezentowane s przez s owo
komputera, w którym poszczególne bity zosta y ponumerowane od prawej do
lewej strony.
W naturalnym kodzie binarnym numer bitu jest równy wyk adnikowi jego wagi
binarnej.
Zapis BCD polega na oddzielnym zakodowaniu w postaci binarnej (w kodzie
NKB) ka dej cyfry zapisu dziesi tnego, w postaci czterech bitów (tetrady).
Zapis ten by dawniej u ywany do reprezentacji danych w j zyku COBOL.
Obecnie jest on bardzo rzadko stosowany, g ównie w mikrokontrolerach.
13
Zapis liczb ca kowitych ze znakiem
n 2
" U2  kod uzupe nieniowy do dwóch
U2 bn 1*2n 1 bi2i

i 0
n 2
U1 bn 1 *(2n 1 1) bi 2i
" U1  kod uzupe nieniowy do jedno ci

i 0
n 1
n 1
1b * bi 2i
Z M
" znak  modu i 0
n 1
" zapis spolaryzowany (biased)
BIAS bi 2i
B
i 0
" zwykle przyjmuje si : BIAS = 2n-1 - 1
Ekran przedstawia kilka najwa niejszych zapisów liczb ze znakiem.
Zapis U2 jest najcz ciej stosowanym zapisem liczb ca kowitych. Jest on
podobny do NKB, z t ró nic , e najbardziej znacz cy bit ma wag ujemn .
Typ int jest we wspó czesnych komputerach implementowany jako zapis U2.
Zapis U1 by popularny kilkadziesi t lat temu. Zapis ten jest podobny do U2,
ale warto bezwzgl dna najbardziej znacz cego bitu jes tu o jeden mniejsza.
Obecnie wyszed on z u ycia.
Zapis znak-modu wydaje si by najbardziej intuicyjnym  jeden bit jest
interpretowany jako znak liczby, pozosta e bity  jako warto bezwzgl dna w
kodzie NKB. Jest on jednak niewygodny dla jednostek arytmetycznych i
wspó czesne komputery nie obs uguj danych ca kowitoliczbowych w tym
zapisie.
Zapis spolaryzowany umo liwia reprezentacj licz ze znakiem jako licz bez
znaku, z odpowiednim przesuni ciem warto ci 0. Liczby ujemne zapisywane
jako bliskie zeru,a zero  jako warto w po owie zakresu reprezentacji
NKB. Zapis powstaje przez dodanie do zapisywanej warto ci sta ej 
podk adu, a nast pnie zapisanie tak uzyskanej liczby w kodzie NKB. Jako
warto podk adu przyjmuje si zwykle warto le tu poni ej po owy
zakresu w NKB.
14
Istotne w asno ci kodów
Reprezentacja zera
 liczba mo liwych reprezentacji
dwie reprezentacje w kodach U1 i znak  modu
 atwo wykrywania warto ci 0
Symetryczno zakresu (dla liczb ze znakiem)
Reprezentacja znaku liczby
 atwo rozró niania znaku
Zmiana znaku liczby
 U1  negacja bitowa
 U2  negacja i inkrementacja
 znak-modu  negacja bitu znaku
atwo wykonywania operacji arytmetycznych
 dodawanie i odejmowanie w U2 realizuje si tak samo, jak w NKB
inne wykrywanie nadmiaru
Kody ca kowitoliczbowe charakteryzuj si zestawem w asno ci, które
decyduj o wygodzie ich stosowania. Istotne w asno ci to m.in.:
Reprezentacja zera  wp ywa na atwo wykrywania warto ci 0 przy u yciu
prostego uk adu logicznego.
Reprezentacja znaku  wp ywa na atwo rozró nienia liczb ujemnych od
dodatnich.
Operacja, jak nale y wykona w celu zmiany znaku liczby  mo e to by
prosta operacja logiczna, prosta lub z ona operacja arytmetyczna.
atwo wykonywania operacji arytmetycznych  dodawanie i odejmowanie w
U2 jest realizowane tak samo, jak w NKB. Mno enie i dzielenie w U2 jest
niewygodne, za to liczby zapisane w kodzie znak-modu mo na mno i
dzieli niemal tak samo, jak w NKB.
15
asno ci kodów ca kowitoliczbowych
- zestawienie
Zapis Wzorce binarne Warto bajtu Warto owa 16-bitowego Warto owa 32-bitowego
min zero max min max min max min max
NKB 00..0 00..0 11..1 0 255 0 65535 0 4294947295
U2 10..0 00..0 01..1 -128 127 -32768 32767 -2147483648 2147483647
Z-M 11..1 00..0 01..1 -127 127 -32767 32767 -2147483647 2147483647
10..0
U1 10..0 00..0 01..1 -127 127 -32767 32767 -2147483647 2147483647
11..1
BIASED 00..0 01..1 11..1 -127 128 -32767 32768 -2147483647 2147483648
16
Zapis sta opozycyjny
Powstaje przez przesuni cie wag w zapisie ca kowitoliczbowym
 czyli przez pomno enie warto ci zapisu ca kowitoliczbowego przez 2-f
(f  liczba bitów w cz ci u amkowej)
ywany zwykle w U2, niekiedy w NKB
Najcz ciej spotykane formaty:
 jeden lub dwa bity cz ci ca kowitej, pozosta e bity s owa nale do cz ci
amkowej
 po po owie s owa na cz ca kowit i u amkow
Operacje arytmetyczne wykonywane podobnie jak w zapisie
ca kowitoliczbowym
 skalowanie przy mno eniu i dzieleniu
 nie wymaga specjalnych instrukcji procesora ani zasobów sprz towych
Do zapisywania liczb u amkowych i mieszanych mo na u zapisu
sta opozycyjnego. W zapisie tym liczba jest reprezentowany przez s owo
binarne, w którym pewne, z góry okre lone liczby bitów reprezentuj cz
ca kowit i cz amkow liczby. Odpowiada to interpretacji zapisu
ca kowitoliczbowego, pomno onej przez warto ujemn pot liczby
2.
Do zapisu liczb bez znaku u ywa si jako bazowej postaci NKB, a do zapisu
liczb ze znakiem  U2. Komputery zazwyczaj nie obs uguj w szczególny
sposób zapisów sta opozycyjnych. Podstawowe operacje s wykonywane tak
samo, jak na liczbach ca kowitych, odmienna jest jedynie interpretacja zapisu,
za któr jest odpowiedzialny wy cznie programista.
17
Zapis sta opozycyjny  przyk ady
n bitów
bn-1 bn-2 bn-3 bn-4 bn-5 bn-6 & . b5 b4 b3 b2 b1 b0
Wagi w zapisie ca kowitoliczbowym, s owo 32 bitowe
231 230 229 228 227 226 & . 25 24 23 22 21 20
Wagi w zapisie sta opozycyjnym, s owo 32 bitowe, po 16 bitów cz ci ca kowitej i u amkowej
215 214 213 .... 22 21 20 2-1 2-2 2-3 & . 2-14 2-15 2-16
Wagi w zapisie sta opozycyjnym, s owo 32 bitowe, 1 bit cz ci ca kowitej, 31 bitów cz ci u amkowej
20 2-1 2-2 2-3 2-4 2-5 & . 2-26 2-27 2-28 2-29 2-30 2-31
18
Zapis zmiennopozycyjny - podstawy
Dziesi tny zapis zmiennopozycyjny  przyk ady
-1.234*10-5 -0.1234*10-6 -12.34*10-4
Elementy zapisu
 znak liczby
 cz znacz ca
 wyk adnik
Podstawa systemu (10) jest ustalona i jej zapis jest zb dny
Posta znormalizowana  posta , w której cz ca kowita cz ci znacz cej
wyra a si pojedyncz cyfr ró od zera
 w przyk adzie powy ej  posta -1.234*10-5
 inne postaci s zdenormalizowane (nie znormalizowane)
 zera nie da si zapisa w postaci znormalizowanej
Zapis zmiennopozycyjny umo liwia zapisywanie liczb ca kowitych i
amkowych o bardzo du ym zakresie dynamiki warto ci bezwzgl dnych. Do
wprowadzenie zapisu binarnego pos ymy si najpierw obserwacjami
zwi zanymi z dziesi tnym zapisem zmiennopozycyjnym.
Ka da liczba mo e by zapisana na kilka sposobów, ró ni cych si
po eniem przecinka oddzielaj cego cz ca kowit od u amkowej i
warto ci wyk adnika
Zwykle pos ugujemy si jedn z mo liwych postaci jako preferowan . Posta
nazywamy znormalizowan . Posta znormalizowana ma cz ca kowit
cz ci znacz cej wyra on przez pojedyncz cyfr ró od zera.
Aby zapisa (przechowa ) liczb , musimy zapisa jej znak, cz znacz
oraz wyk adnik, który jest liczb ca kowit ze znakiem.
W postaci znormalizowanej nie da si zapisa zera, bo zero nie ma adnej
cyfry znacz cej ró nej od 0.
19
Binarny zapis zmiennopozycyjny 
IEEE754
Je eli jest to mo liwe, liczb zapisuje si w postaci znormalizowanej
 wyj tki: zero i liczby o warto ciach bezwzgl dnych bliskich zeru
 jedyn cyfr binarn ró od zera jest 1
ka da posta znormalizowana ma cz ca kowit równ 1
nie ma potrzeby zapisywania cz ci ca kowitej w postaci znormalizowanej
Elementy zapisu
 znak liczby  pojedynczy bit  (0  liczba nieujemna. 1  liczba
niedodatnia)
 pole wyk adnika
przy zapisie znormalizowanym  wyk adnik w kodzie spolaryzowanym
warto ci specjalne 00..00  posta zdenormalizowana. 11..11   nieliczba
 pole mantysy  zawiera tylko cz amkow
posta znormalizowana  cz ca kowita równa 1
posta zdenormalizowana  cz ca kowita równa 0
W przesz ci w ró nych rodzinach komputerów u ywano ró nych zapisów
zmiennopozycyjnych. Od pocz tku lat 80-tych XX wieku nast pi a w tej
dziedzinie standaryzacja. Obecnie niemal wszystkie komputery pos uguj si
binarnym zapisem zmiennopozycyjnym zgodnym ze standardem IEEE754.
Standard zak ada, e, o ile tylko jest to mo liwe, liczby zapisuje si w postaci
znormalizowanej. Baz systemu jest liczba 2  wyk adnik okre la pot liczby
2.
Poniewa w systemie binarnym jedyn cyfr ró od zera jest jedynka, ka da
liczba w postaci znormalizowanej ma cz ca kowit równ 1  nie ma wi c
potrzeby zapisywania jej  zapisuje si tylko cz amkow .
Wyk adnik jest liczb ca kowit ze znakiem. W IEEE754 wyk adnik jest
zapisywany w kodzie spolaryzowanym, w którym warto podk adu jest
okre lona wzorcem bitowym 01....11, o liczbie bitów równej szeroko ci pola
wyk adnika. Dwie warto ci pola wyk adnika s zarezerwowane i oznaczaj , e
zapis nie reprezentuje postaci znormalizowanej.
Pole wyk adnika o wzorcu 00...00 oznacza zapis zdenormalizowany. Warto
wyk adnika jest w tym przypadku taka sama, jak przy zapisie
znormalizowanym z wzorcem wyk adnika 00...01, a cz ca kowita cz ci
znacz cej ma warto 0 (a nie 1 jak w postaci znormalizowanej).
Pole wyk adnika o wzorcu 11...11 oznacza nie-liczby  niesko czono ci i
warto ci b dne.
20
IEEE754  warto ci
znak pole wyk adnika pole mantysy
s exp m
bit znaku pole wyk adnika wyk adnik pole mantysy cz znacz ca
x 00..00 -bias+1 m 0.m
od 00..01
x exp-bias m 1.m
do 11..10
0 11..11 - 00..00 +
1 11..11 - 00..00 -
x 11..11 - 0x..xx na nie-liczba
x 11..11 1x..xx cicha nie-liczba
Warto pola wyk adnika równa 0 oznacza posta zdenormalizowan . Je eli
pole mantysy ma warto 0  zapis reprezentuje liczb 0. W przeciwnym
przypadku jest to liczba o bardzo ma ej warto ci bezwzgl dnej.
Warto pola wyk adnika z ona z bitów o warto ci 1 oznacza tzw. nie-liczby.
Pole mantysy równe 0 identyfikuje niesko czono . Wzorzec bitowy, w którym
najbardziej znacz cy bit jest równy 0, a w ród pozosta ych jest co najmniej
jedna jedynka jest zapisem g nej nie-liczby, czyli warto ci, która ni e mo e
by argumentem operacji. Najbardziej znacz cy bit mantysy o warto ci 1
identyfikuje cich nie-liczb . Wynikiem operacji na cichej nie-liczbie jest
zawsze cicha nie-liczba.
21
IEEE754  typowe formaty
ugo pól
ugo owa (bity) Oznaczenie symboliczne zastosowanie
wyk adnik mantysa
16 s10e5 5 10 Grafika komputerowa
24 s16e7 7 15 Grafika komputerowa
32 s23e8 8 23 IEEE single, uniwersalny
64 s52e11 11 52 IEEE double, uniwersalny
80 s64e15 15 64 Extended double  jednostka x87
96 s80e15 15 80
128 s112e15 15 112 Obliczenia wysokiej precyzji
Podstawowym formatem jest format double  64-bitowy.
Format 32-bitowy jest u ywany w zastosowaniach, gdzie wymagana precyzja
jest niewielka  ma on tylko 24 bity znacz ce.
Format 80-bitowy by ywany w starszych jednostkach zmiennopozycyjnych
procesorów rodziny x86. Obecnie wychodzi on z u ycia.
Format 128-bitowy jest formatem  przysz ciowym dla liczb o du ej precyzji.
W grafice komputerowej u ywa si niekiedy formatów krótszych, o mniejszej
precyzji  16- i 24-bitowego.
22
Arytmetyka zmiennopozycyjna
Reprezentacja zmiennopozycyjna jest reprezentacj
przybli on
 wyniki dzia arytmetycznych s równie przybli one
Wynik mo e zale od kolejno ci dzia
 dodawanie i odejmowanie wielu argumentów nale y wykonywa w
kolejno ci rosn cej warto ci bezwzgl dnej
 je li |a| jest znacznie mniejsze od |b|, to a + b daje w wyniku b
Nie nale y u ywa relacji równo ci
 zamiast tego nale y u ywa formu takich jak abs(a-b) < s
Precyzja formatu IEEE single (24 bity) jest mniejsza od precyzji
liczb ca kowitych w komputerach 32-bitowych
 mo liwa precyzyjna reprezentacja liczb ca kowitych w IEEE single
jest ograniczona do zakresu warto ci bezwzgl dnych nie
przekraczaj cych 2M
Pos uguj c si liczbami zmiennpozycyjnymi nale y pami ta o ich
specyficznych w asno ciach.
Liczby o sko czonej reprezentacji dziesi tnej mog mie niesko czon
reprezentacj binarn (np. 0.1, 0.3). Reprezentacja zmiennopozycyjna jest
reprezentacj przybli on , a wyniki operacji s w rzeczywisto ci
przybli eniami. Oznacza to, e w praktyce nie mo na stosowa relacji
równo ci w odniesieniu do liczb zmiennopozycyjnych.
Operacja dodawania liczb ró ni cych si znacznie rz dem wielko ci daje w
wyniku liczb równ sk adnikowi o wi kszej warto ci bezwzgl dnej.
23
Organizacja pami ci
W komputerach uniwersalnych jednostk
adresowan jest bajt
Dane wielobajtowe zajmuj odpowiedni
liczb komórek pami ci (i adresów)
owo pami ci ma d ugo nie mniejsz od
owa procesora
 zwykle 64 lub 128 bitów
 dawnej bywa o odwrotne
Podstawowa adresowalna komórka pami ci ma rozmiar jednego bajtu. Dane o
rozmiarach przekraczaj cych jeden bajt s przechowywane w kilku kolejnych
komórkach, pod kilkoma kolejnymi adresami.
Fizyczna organizacja pami ci wspó czesnych komputerów jest nieco
odmienna od organizacji logicznej. Bajty s pogrupowane w s owa pami ci,
których d ugo jest najcz ciej dwukrotnie wi ksza od d ugo ci s ów danych
przetwarzanych przez procesor. Taka konstrukcja pami ci umo liwia
zwi kszenie jej wydajno ci poprzez transmitowanie wi kszej porcji danych
podczas pojedynczego dost pu.
Wspó czesne procesory 64-bitowe wspó pracuj z pami ci o szeroko ci 128
bitów.
Pierwsze mikroprocesory 16- i 32-bitowe, produkowane w latach 70-tych i 80-
tych XX wieku by y cz sto przystosowane do wspó pracy z pami ci o
szeroko ci 8 lub 16 bitów. W tamtym okresie wydajno procesorów by a
porównywalna z wydajno ci pami ci, a pami o mniejszej szeroko ci s owa
by a ta sza w implementacji
24
Konwencje adresowania danych
welobajtowych
Little Endian - najmniej znacz cy bajt pod
najmniejszym adresem
Big Endian - najbardziej znacz cy bajt pod
najmniejszym adresem
Istniej dwa sposoby zapisu danej wielobajtowej w pami ci, zwane
konwencjami adresowania danych. Nazwy konwencji pochodz z powie ci
 Podró e Guliwera , w której odnosi y si one do dwóch spo eczno ci,
ró ni cych si zasadami jedzenia gotowanych jaj.
25
Little Endian i Big Endian
owo 32 bitowe
A (MSB) B C D (LSB)
Zapis Little Endian Zapis Big Endian
Addr+0 D (LSB) Addr+0 A (MSB)
Addr+1 C Addr+1 B
Addr+2 B Addr+2 C
Addr+3 A (MSB) Addr+3 D (LSB)
26
Little Endian
Numeracja bajtów zgodna z wagami bitów
Naturalna dla komputera
Niezbyt naturalna dla cz owieka
Rzutowanie typów zwi zane ze zmian
ugo ci zachowuje warto adresu danej
W konwencji Little-Endian adres bajtu odzwierciedla wag bajtu w liczbie. Jest
to konwencja naturalna dla komputera, chocia dla cz owieka na pierwszy rzut
oka wydaje si dziwna  jeste my przyzwyczajeni do zapisywania liczb
pocz wszy od najbardziej znacz cych cyfr.
Istotn cech tej konwencji jest to, e je eli zapiszemy w pami ci dan
ca kowitoliczbow w d ugim formacie (np. 64 bity), to przy dost pach do jej
mniej znacz cej cz ci o mniejszej d ugo ci (np. jednego, dwóch lub czterech
bajtów) adres danej b dzie w ka dym przypadku ten sam. Jest to wygodne
przy cz stym rzutowaniu typów ca kowitoliczbowych, co ma miejsce w
programach pisanych w j zyku C.
27
Big Endian
Kolejno bajtów naturalna dla cz owieka
Rzutowanie typów zwi zane ze zmian
ugo ci zmienia warto adresu
Mo liwe szybkie porównywanie cuchów
znakowych
Zapis Big-Endian, naturalny dla cz owieka, jest zwykle mniej wygodny dla
komputera. Dost p do danej ca kowitoliczbowej w pami ci wymaga zmiany
warto ci adresu w zale no ci od d ugo ci danej. Je eli liczba 32-bitowa
zostanie zapisana pod adresem A, to jej warto w postaci jednobajtowej ma
adres A+3.
Istotn zalet konwencji Big-Endian jest mo liwo szybkiego porównywania
cuchów tekstowych przy u yciu instrukcji operuj cych na liczbach
ca kowitych o d ugo ci 32 lub 64 bitów. Wektor znaków (bajtów)
interpretowany jako liczba ma w najbardziej znacz cym bajcie pierwszy bajt
cucha. Zamiast wi c prowadzi operacj porównywania cuchów znak po
znaku, mo na j wykona pos uguj c si grupami znaków o d ugo ci s owa
procesora
28
Wyrównanie danych
owo pami ci jest d ugie
 we wspó czesnych komputerach cz sto 2 lub 4 razy d sze
od s owa procesora
Dost p do danej wielobajtowej mieszcz cej si w
jednym s owie pami ci jest szybszy ni w przypadku
gdy dana zajmuje fragmenty dwóch s ów
 dost p do danej na granicy s ów wymaga dwóch przes
Nowe architektury wymuszaj umieszczenie danej
w jednym s owie pami ci
Dane powinny by umieszczone w pami ci w taki sposób, aby dost p do
danej, której rozmiar nie przekracza d ugo ci s owa pami ci nast powa w
pojedynczym cyklu dost pu do pami ci.
W nowszych architekturach komputerów rozmieszczenie danych gwarantuj ce
dost p w jednym cyklu transmisji jest obligatoryjne  próba dost pu do danej
po onej inaczej generuje b d.
29
Wyrównanie naturalne
Ka da dana powinna by po ona pod adresem
podzielnym przez jej d ugo
 daje to gwarancj najszybszego dost pu
Wymuszone w nowszych architekturach
Podnosi wydajno w architekturach w których nie
jest wymuszone
 obecnie wymuszone przez kompilatory nawet je li sprz t
nie narzuca konieczno ci wyrównania
Struktury musz by wyrównane zgodnie
z wyrównaniem najd szego typu danych
Dost p w jednym cyklu przes ania mo na zagwarantowa , umieszczaj c
ka dan skalarn pod adresem podzielnym przez jej d ugo . Dane 32-
bitowe powinny by po one pod adresami podzielnymi przez 4, a 16-bitowe
 pod adresami parzystymi. Takie umieszczenie danych w pami ci nazywa si
wyrównaniem naturalnym.
Nawet je li model programowy procesora nie narzuca takiego wymagania,
wyrównanie naturalne jest zwykle wymuszane przez kompilatory (np. w x86).
Dane strukturalne musz by wyrównane w taki sposób, aby ka de pole
struktury by o wyrównane naturalnie. Oznacza to, e pocz tek struktury
powinien by wyrównany zgodnie z wymaganiami najd szego typu danych
obs ugiwanego przez procesor. Nale y zauwa , e wyrównanie wp ywa na
rozmiar struktury, zwracany przez operator sizeof  rozmiar jest  zaokr glany
w gór  do granicy wyrównania struktur.
30
Dane wektorowe
Wspó czesne procesory mog operowa na d ugich
owach danych
wi ki i obrazy s zapisane przy u yciu liczb
o ma ej precyzji
Algorytmy przetwarzania d wi ków i obrazów
wykonuj takie same operacje na wszystkich
próbkach
Wprowadzenie wektorowego formatu danych  wielu
krótkich danych zapisanych w pojedynczym s owie 
umo liwia lepsze wykorzystanie mo liwo ci
procesora
31
Formaty danych wektorowych  SSE2
SSE2 jest jednostk wektorow procesorów x86
owo danych  128 bitów
Formaty:
 16 danych sta opozycyjnych 8-bitowych
 8 danych sta opozycyjnych 16-bitowych
 4 dane sta opozycyjne 32-bitowe
 2 dane sta o pozycyjne 64-bitowe
 4 dane zmiennopozycyjne 32-bitowe IEEE single
 2 dane zmiennopozycyjne 64-bitowe IEEE double
32


Wyszukiwarka

Podobne podstrony:
AK 9
Zarys historii Pułku AK „Baszta”
AK D Lab 1
ak 2 lab (1)
AK KARTA PRACY 2015 16 T 14 syst 3 trawy turzyc
AK D Lab 2
AK KARTA PRACY 2015 16 T 8 Liść
Fleming, Ward [SS] Mystery on Pluto AK [SF 1950] (v1 0) (html)
Cezary Chlebowski Ostatnia walka Oddziałów wileńsko nowogródzkich AK z NKWD

więcej podobnych podstron