Przestrzeń adresowa

Transkrypt

Przestrzeń adresowa
Architektura Systemów
Komputerowych
Jednostka
ALU
Przestrzeń adresowa
Tryby adresowania
1
Jednostka
arytmetyczno- logiczna ALU
ALU – ang: Arythmetic Logic Unit
Bity znaczników (flag)
Fl
Argument A
A
Y
ALU
Argument B
Wynik
operacji
B
Fs
Ci
Bit
przeniesienia
z poprzedniej
pozycji
Funkcja
sterująca
2
Jednostka
arytmetyczno- logiczna ALU
Cechy jednostki ALU:
•Wykonuje operacje arytmetyczne i logiczne określone funkcją
sterującą
•Wykonuje operacje na jednym lub dwóch argumentach
•Jest układem kombinacyjnym – nie posiada pamięci
•Zazwyczaj liczba bitów wyniku jest równa liczbie bitów
argumentów (liczba bitów ALU ma znaczenie dla klasyfikacji
całego komputera, np. „system trzydziestodwubitowy”)
3
Jednostka
arytmetyczno- logiczna ALU
Przykład ośmiobitowej jednostki
ALU z uwidocznionymi
poszczególnymi bitami argumentów
oraz innych sygnałów
4
Jednostka ALU - operacje
Przykład operacji
dodawania liczb
ośmiobitowych
w kodzie NBC
(bez znaku)
A: 00000010 (02h)
+
B: 00000011 (03h)
=
Y: 00000101 (05h)
5
Jednostka ALU
przekroczenie zakresu liczb
Przekroczenie zakresu
liczb dostępnego dla
ALU
Przykład: A=255, B=2
Wynik A+B=257 nie
mieści się w zakresie
liczb 8-bitowych
A: 11111111 (FFh)
+
B: 00000010 (02h)
=
Y: 00000001 (01h), C=1
6
Jednostka ALU
operacje wielokrotnej precyzji
Rozwiązanie problemu
przekroczenia
dostępnego zakresu
liczb – zastosowanie
arytmetyki wielokrotnej
precyzji:
A: 0000000011111111
+
B:0000000000000010
=
Y:0000000100000001
Y(lo)=A(lo)+B(lo)
Y(hi)=A(hi)+B(hi)+Ci
7
Jednostka ALU
operacje wielokrotnej precyzji
Programowa implementacja arytmetyki podwójnej precyzji:
Przykład liczba pierwsza jest zapisana z komórkach
pamięci o adresach 0 i 1, druga: 2, 3, wynik trafia pod
adresy: 4,5
LD Acc, M(0)
ADD Acc, M(2)
ST M(4), Acc
LD Acc, M(1)
ADC Acc, M(3)
ST M(5), Acc
8
Przechowywanie znaczników
Wartość znaczników w rejestrze stanu jest ustalana w wyniku
ostatniej operacji arytmetycznej lub logicznej.
Rejestr stanu
C
Z
V
N
Fl
ALU
9
Znaczenie znaczników
Znaczenie znaczników:
C – przekroczenie zakresu liczb bez znaku (NBC)
Z – zerowy wynik operacji
V – przekroczenie zakresu liczb ze znakiem (U2)
N – wynik ujemny
Rejestr stanu
C
Z
V
N
10
Przestrzeń adresowa
Zbiór wszystkich możliwych adresów komórek
pamięci lub rejestrów układów wejścia wyjścia
W niektórych mikroprocesorach przyjęto koncepcję
ujednolicenia przestrzeni adresowej pamięci i I/O poprzez
traktowanie rejestrów urządzeń I/O jako komórek pamięci.
11
Przestrzeń adresowa
Rozróżnia się przestrzenie adresowe:
Pamięci - zbiór wszystkich możliwych adresów komórek pamięci.
W niektórych mikroprocesorach wyróżnia się oddzielną przestrzeń
adresową pamięci programu i danych (mikrokontrolery, procesory
DSP)
Wejścia-wyjścia – zbiór wszystkich możliwych adresów rejestrów
urządzeń I/O
12
Przestrzeń adresowa
- rozwiązanie układowe
Magistrala danych
Mikroprocesor
Magistrala adresowa
MEMsel
IOsel
RD
WR
Magistrala
sterująca
Pamięć
Układy
wejścia – wyjścia
13
Przestrzeń adresowa
liniowa
Przestrzeń liniowa nie zakłada
podziału pamięci na obszary.
Adres komórki pamięci jest
specyfikowany za pomocą jednej
liczby.
0x0000
0x0001
0xFFFF
Przykład liniowej przestrzeni
adresowej o wielkości 64kilosłów
14
Przestrzeń adresowa
- stronicowanie pamięci
0x0000
Podział przestrzeni pamięci
na rozłączne obszary o wielkości
będącej naturalną potęgą liczby 2
Strona 0
0x00FF
0x0100
Strona 1
0x01FF
0x0200
…
Przykład podziału na strony
o wielkości 256 słów
15
Przestrzeń adresowa
- stronicowanie pamięci
Rozwiązanie pozwala zmniejszyć dwukrotnie liczbę wyprowadzeń
magistrali adresowej mikroprocesora
Pamięć
Rej.
Mikroprocesor
ADDR HI
Strony
ADDR LO
Magistrala adresowa
16
Przestrzeń adresowa
- bankowanie
Mechanizm pozwalający stosować pamięci o łącznej pojemności
przekraczającej możliwości adresowania mikroprocesora.
Mikroprocesor ma dostęp tylko do jednego banku.
Przełączanie banków jest realizowane przez zaprogramowanie
dodatkowego rejestru przechowującego numer banku.
17
Przestrzeń adresowa
- segmentacja
Podział przestrzeni pamięci
na częściowo pokrywające
się obszary.
0000:0000
0001:0000
0000:0110=
=0001:0100
Adres komórki pamięci
należącej do kilku
segmentów można
wyspecyfikować na kilka
sposobów.
Segment 0
Segment 1
Segment 2
0000:FFFF
0001:FFFF
Przykład podziału pamięci na
segmenty o wielkości 65536 słów
Mechanizm ułatwia podział
pamięci na obszar
programu, danych i stosu.
18
Przestrzeń adresowa
- segmentacja
W adresowaniu bierze udział tzw. rejestr segmentowy,
przechowujący numer aktualnego segmentu. W adresowaniu
programu, danych i stosu mogą brać udział inne rejestry
segmentowe.
Rej.
Segm.
Magistrala adresowa
+
MAR
Adres fizyczny
Rej.
Adr.
Adres efektywny
19
Przestrzeń adresowa
- segmentacja
Zalety:
Bezpieczeństwo programu
Relokowalność programu
Efektywne wykorzystanie pamięci
20
Tryby adresowania
Tryby lub sposoby
adresowania
to sposoby interpretacji
pola adresowego
rejestru instrukcji.
Większość omówionych
trybów będzie dotyczyła
adresowania drugiego
argumentu operacji
dwuargumentowych
z udziałem ALU.
Rejestr instrukcji IR
Pole
operacyjne
Jednostka
sterująca
Pole
adresowe
MAR
Magistrala adresowa
21
Tryby adresowania
Adresowanie implikowane
Argument operacji
znajduje się w rejestrze
mikroprocesora.
Acc
Acc + R
ALU
Acc
R
22
Tryby adresowania
Adresowanie natychmiastowe
Argument operacji
znajduje się w polu
adresowym rejestru
instrukcji (jest stałą).
Acc
Acc + stała
Rejestr instrukcji IR
PO
ALU
Acc
PA
stała
23
Tryby adresowania
Adresowanie bezpośrednie
W polu adresowym rejestru
instrukcji znajduje się adres
argumentu.
MBR
Acc
Acc + M(adr)
IR
PO
PA
adres
ALU
Acc
MAR
24
Tryby adresowania
Adresowanie pośrednie
Pole adresowe przechowuje kod rejestru rejestru instrukcji
znajduje się adres argumentu.
IR
MBR
PO
PA
kod
Rejestry
funkcji
specjalnych
SFR
X
Acc
ALU
Acc + M(X)
Acc
MAR
25
Tryby adresowania
Adresowanie pośrednie indeksowe
W adresowaniu biorą udział dwa rejestry określane mianem
bazowego i indeksowego.
Acc
Acc + M( B, I )
MBR
SFR
B
+
ALU
I
Acc
MAR
26
Tryby adresowania
Adresowanie pośrednie indeksowe z postinkrementacją
lub postdekrementacją
Zawartość rejestru indeksowego jest zwiększana lub
zmniejszana o jeden po zaadresowaniu argumentu.
Postinkrementacja:
Acc
Acc + M( B, I++ )
Postdekrementacja:
Acc
Acc + M( B, I-- )
W niektórych mikroprocesorach jest także możliwa modyfikacja
zawartości rejestru indeksowego przed jego użyciem, mówimy
wówczas o preinkrementacji lub predkrementacji.
27
Tryby adresowania
Adresowanie względne
Jest stosowane w skokach – służy do przeniesienia sterowania
o pewną liczbę pozycji względem aktualnie wykonywanej
instrukcji.
IR
PO
PA
przemieszczenie
+
PC
Rejestry
funkcji
specjalnych
SFR
28

Podobne dokumenty