architektura komputerów

Transkrypt

architektura komputerów
ARCHITEKTURA KOMPUTERÓW
Reprezentacja danych
w komputerach
dr inż. Wiesław Pamuła
[email protected]
ARCHITEKTURA KOMPUTERÓW
Literatura
2.
3.
4.
5.
6.
J.Biernat: Architektura komputerów, Oficyna Wydawnicza Politechniki
Wrocławskiej, Wrocław2002.
Null L., Lobor J.:Struktura organizacyjna i architektura systemów
komputerowych, Helion Gliwice 2004.
Stallings W.: Organizacja i architektura systemu komputerowego WNT
Warszawa 2000.
A.Skorupski: Podstawy budowy i działania komputerów, WKŁ Warszawa
2000.
D.A.Patterson, L.Hennessy: Computer architecture. San Mateo CA USA,
Morgan Kaufman Publishers 1998.
ARCHITEKTURA KOMPUTERÓW
JEDNOSTKI INFORMACJI
Dla opisu działania powszechnie produkowanych układów komputera przyjęto
dwu symbolowy alfabet „0”, „1”.
•
•
bit elementarna jednostka informacji
bajt wektor 8 bitów (łańcuch)
– nibble lub tetrada 4 bity
•
słowo rozmiar dostosowany do podstawowej jednostki przetwarzanej przez
procesor
– słowo maszynowe od 16 do 64 bitów
• słowo podwójne (long word lub double word) 2 słowa stanowiące przetwarzaną
jednostkę
• słowo poczwórne (quad word)
ARCHITEKTURA KOMPUTERÓW
RODZAJE DANYCH
Można wyróżnić 3 grupy danych przetwarzanych przez komputer:
•
•
•
rozkazy
zawierają kody operacji i identyfikatory argumentów dla
operacji
dane systemowe
informacja dla zapewnienia poprawnego
gospodarowania zasobami komputera
dane użytkowe
informacje wykorzystywane w programach
realizowanych przez komputer
ARCHITEKTURA KOMPUTERÓW
ROZKAZY
Projektant architektury komputera definiuje strukturę i rozmiar rozkazów.
Rozmiar stanowi wielokrotność słowa maszynowego procesora.
•
struktura rozkazu
zbiór pól zawierających identyfikatory działań, które
ma wykonać procesor
– klasa operacji
– rodzaj operacji
– identyfikatory
•
przestrzeń kodowa liczba różnych rozkazów, które można zakodować
przez bity słowa rozkazu
– 2n liczba różnych rozkazów
(rodzaje zadań, sposoby adresowania)
– ortogonalność listy rozkazów
– kody złożone wykorzystujące więcej niż jedno słowo maszynowe
ARCHITEKTURA KOMPUTERÓW
ROZKAZY
przykłady:
6 bitów
dodawanie
8 bitów
skok
2 bity
rejestrowe
4 bity
rejestr 1
8 bitów
„młodszy adres”
4 bity
rejestr 2
8 bitów
„starszy adres”
ARCHITEKTURA KOMPUTERÓW
DANE SYSTEMOWE
Posiadają strukturę zdefiniowaną na poziomie architektury komputera.
Użyteczne dla wspomagania realizacji wielozadaniowej pracy komputera.
•
•
•
stos
bufor typu LIFO
kolejka
bufor typu FIFO
tablica systemowa blok danych zawierających informacje o stanie
procesora lub procesu wykonywanego przez komputer
Zapis i odczyt zawartości danych systemowych realizowany jest przez
specjalizowane układy komputera.
ARCHITEKTURA KOMPUTERÓW
STOS
Wydzielony obszar pamięci komputera. Ograniczony.
LIFO – last in first out - ostatni wpisany pierwszy odczytany
•
wskaźnik stosu
zawiera adres szczytu stosu
– przepełnienie stosu - próba zapisu na zapełniony stos
– wyczerpanie stosu - próba odczytu pustego stosu
przykłady zastosowania:
zachowanie stanu licznika programu podczas wejścia do obsługi przerwania
zachowanie stanu licznika rozkazów podczas wywołania podprogramu
zapamiętanie zmiennych roboczych użytkownika
ARCHITEKTURA KOMPUTERÓW
STOS
Działanie
przepełnienie
push
wskaźnik stosu
push
wskaźnik stosu
pop
dana1
dana2
dana3
dana1
dana2
dana3
dana1
dana2
dana3
wskaźnik stosu
pop
wyczerpanie
ARCHITEKTURA KOMPUTERÓW
KOLEJKA
Wydzielony obszar pamięci.
FIFO - first in first out - pierwszy wpisany pierwszy odczytany
•
•
wskaźnik początku kolejki określa położenie danej do pobrania z bufora
wskaźnik końca kolejki
określa miejsce gdzie można wpisać następną
daną
nieprawidłowe wyznaczanie wskaźników może prowadzić do zapętlenia kolejki
ARCHITEKTURA KOMPUTERÓW
DANE UŻYTKOWE
Dane użytkowe rozróżniane są przez kontekst wykorzystania. Oprogramowanie
wykorzystuje następujące typy danych:
•
•
•
skalarne
reprezentacja wielkości jednowymiarowych
strukturalne zbiory danych skalarnych
wskaźnikowe argumenty trybów adresowania danych w obszarze pamięci
komputera
Typy danych użytkowych definiowane są na poziomie języka programowania
ARCHITEKTURA KOMPUTERÓW
TYPY SKALARNE
przykłady
• wyliczeniowe opisowe
– znaki alfanumeryczne
– stałe logiczne
– znaczniki
•
liczby stałoprzecinkowe
– porządkowe
– całkowite
– wymierne
•
liczby rzeczywiste
– zmiennoprzecinkowe
– logarytmiczne
ARCHITEKTURA KOMPUTERÓW
TYPY STRUKTURALNE
przykłady
• wektory i tablice
– łańcuchy
– liczby zespolone
•
•
rekordy
zbiory
struktury danych różnych typów
nieuporządkowane zestawy danych
ARCHITEKTURA KOMPUTERÓW
TYPY WSKAŹNIKOWE
przykłady
wskazują miejsce przechowywania danych w pamięci komputera
• adresy zmiennych
• deskryptory
– wskaźniki do adresów danych
– wskaźniki do tablic adresów danych – wielopoziomowe adresowanie posrednie
pamięć danych
tablica adresów danych
adres w tablicy
adres danej
dana
ARCHITEKTURA KOMPUTERÓW
ZAPIS DANYCH
Dane zapisane są w postaci wektorów bitowych. Interpretując wektor jako
liczbę binarną każdą daną można przedstawić w postaci liczby i zapisać w
wybranym systemie liczenia.
Zapis binarny wykorzystuje symbole „0” i „1” kolejne pozycje zapisu są
potęgami liczby 2.
Grupując liczby binarne w tetrady można każdą tetradę przedstawić z użyciem
symboli szesnastkowego systemu liczenia. Kolejne pozycje reprezentacji są
potęgami liczby 16.
symbole szesnastkowe:
„0”,”1”,”2”,”3”,”4”,”5”,”6”,”7”,”8”,”9”,”A”,”B”,”C”,”D”,”E”,”F”.
ARCHITEKTURA KOMPUTERÓW
ASCII
American Standard Code for Information Interchange.
KOD
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
0001
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
0010
SP
!
„
#
$
%
&
‘
(
)
*
+
,
-
.
/
0011
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
0100
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
0101
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
-
0110
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
0111
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
UNICODE ISO/IEC 10646-1:1993
16 bitowe rozszerzenie kodu ASCII uzupełniony o kody alfabetów narodowych
ARCHITEKTURA KOMPUTERÓW
LICZBY STAŁOPRZECINKOWE
Zapis pozycyjny
n
L   ai 2
i
i 0
n – liczba pozycji liczby
(pozycje ułamkowe mają ujemne indeksy)
Liczba może być zapisana na kilku słowach maszynowych wtedy ważny jest
sposób zapisu kolejności słów liczby w pamięci
BIG ENDIAN
- bardziej znacząca część liczby zapisana pod mniejszym
adresem w pamięci „wcześniej”
(MOTOROLA)
LITTLE ENDIAN - części liczby zapisane kolejno od najmłodszej do najstarszej
w pamięci komputera
(INTEL)
ARCHITEKTURA KOMPUTERÓW
LICZBY UJEMNE
Zapisy liczb ujemnych
• znak moduł
• znak U1
• znak U2
reprezentacja liczb ujemnych przez dopełnienie
U1=(2n -1) – L
U2=2n - L
n – liczba pozycji zapisu
U1 negacja modułu liczby L
U2 = U1+1 lub negacja kolejnych cyfr modułu liczby L od lewej do prawej do
najmłodszej jedynki, która pozostaje nie zanegowana
ARCHITEKTURA KOMPUTERÓW
LICZBY ZMIENNOPRZECINKOWE
IEEE 754
(-1)S mantysa 2cecha
s - bit znaku
mantysa - określa precyzję zapisu 1<m<2 znormalizowana
cecha - określa zakres liczb
S cecha (przesunięcie
k)
mantysa znormalizowana ukryta (1) MSB
Format
pojedyńcza
podwójna
bit znaku
1 bit (bit 31)
1 bit (bit 63)
mantysa
23 bits (bit 0 do 22)
52 bits (bit 0 do 51)
cecha
8 bits (bit 23 do 30)
11 bits (bit 52 do 62)
28-1-1 = 127
211-1-1 = 1023
przesunięcie (k)
ARCHITEKTURA KOMPUTERÓW
LICZBY ZMIENNOPRZECINKOWE
IEEE 754
obiekty specjalne
obiekt
cecha
mantysa
liczba znormalizowana
(1 – 254)
różne od 0
zero
00000000
0
nieznormalizowana liczba
00000000
różne od 0
+/- ∞
11111111 (255)
0
NaN (nie liczba)
11111111 (255)
różne od 0
wykorzystywane w sprawdzaniu poprawności wykonania operacji na
liczbach zmiennoprzecinkowych
ARCHITEKTURA KOMPUTERÓW
KODOWANIE INFORMACJI
kody detekcyjne
• z kontrolą parzystości
• Grey’a
• „z jedynkami”
kody korekcyjne
• Hamming’a
• R-S
ARCHITEKTURA KOMPUTERÓW
CRC
Cyclic Redundancy Check
reszta z dzielenia przez wielomian generacyjny – sprawdzany w celu
określenia poprawności przesyłu informacji
ARCHITEKTURA KOMPUTERÓW
OPERACJE NA DANYCH
operacje logiczne
•
•
•
•
iloczyn
suma
suma modulo 2 XOR
przesunięcia logiczne , arytmetyczne, cykliczne
wskaźniki stanu wykonania operacji
• zero
• przeniesienie, przeniesienie połówkowe,
• znak
• przekroczenie zakresu