PROCESOR
PROCESOR
8086
8086
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i
Mikrokomputery
dr inż. Stanisław Witkowski
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
HISTORIA
Procesor 8086 został zaprezentowany przez firmę INTEL
już w 1976 r. Był pierwszym procesorem 16-bitowym o
wielkiej na ówczesne czasy przestrzeni adresowej 1MB. W
dziesięć lat później, kiedy rynek został opanowany przez 8-
bitowe systemy PC, INTEL zaprojektował procesor 8088
będący odpowiednikiem 8086, ale mogący współpracować
z magistralami 8-bitowymi. Ten hybrydowy procesor
umożliwiał pracę oprogramowania wykorzystującego
rejestry 16-bitowe, mogące mieć dostęp do pamięci do
1MB i to za cenę systemu 8-bitowego. Procesor 8088 stał
się sercem systemów PC i PC XT. Częstotliwość zegara
wynosiła pierwszych modelach 4.77MHz późniejszych
4.77/8MHz, a w ostatnich modelach 10MHz.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Architektura procesora 8086
Ze struktury mikroprocesora 8086 daje się
wyodrębnić dwa pracujące w dużej mierze
niezależne układy:
• wykonawczy EU
• sterowania magistralą B/U
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
REJ ESTR
ZNACZNIKÓW
REJ ESTR
BUFOROWY
ALU
AH
BH
CH
DH
AL
BL
CL
DL
SP
BP
DI
SI
CS
DS
SS
ES
ID
SUMATOR
ADRES 20 BIT
16 BIT
MAGISTRALA
ADRESOWA
8 BIT
UKŁAD
STEROWANIA
REJESTRY
WEWNĘTRZNE
REJ EST R
INSTRUKCJ I
UKŁAD
STEROWANIA
DANE 16 BIT
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Mikroprocesor 8086 można ustawić do pracy w
jednej z dwóch konfiguracji:
1.
minimalnej
– przewidziana dla systemów
jednoprocesorowych, w której sygnały sterujące
magistralą zewnętrzną generuje układ B/U
2.
maksymalnej
– dla systemów
wieloprocesorowych w tym przypadku sygnały
sterowania systemem generuje wykorzystując
sygnały procesora zewnętrzny sterownik
magistrali (8288)
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Układ wykonawczy
Głównym
zadaniem
jest
dekodowanie
oraz
wykonywanie kolejnych rozkazów wprowadzanych przez
układ sterownia magistralą do tzw. kolejki rozkazów.
Wykonywanie rozkazów odbywa się przy udziale jednostki
arytmetyczno-logicznej (ALU), związanego z nią rejestru
znaczników arytmetycznych ogólnego przeznaczenia oraz
niedostępnych programowo rejestrów roboczych tzw.
chwilowych. Układ wykonawczy komunikuje się z
otoczeniem zewnętrznym za pośrednictwem układu
sterowania magistralą.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Układ sterowania magistralą
Układ ten realizuje wszystkie operacje dotyczące
zewnętrznej magistrali procesora takie, jak:
• komunikacja z pamięcią operacyjną
• wymiana danych z urządzeniami zewnętrznymi
Układ sterowania magistralą zawiera sumator oraz rejestry
służące do obliczania 20-bitowego adresu fizycznego. Dane
przesyłane są po 16-bitowej magistrali danych. Magistrala
adresowa jest 20-bitowa co pozwala na bezpośrednie
adresowanie za jej pośrednictwem pamięci operacyjnej
o pojemności do 1MB.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Jednostka
arytmetyczno-logiczna
(ALU
)
Jest podstawowym elementem układu wykonawczego
mikroprocesora. W typowych konstrukcjach realizuje ona
podstawowe operacje arytmetyczne takie, jak: dodawanie i
odejmowanie słów danych, ponadto realizuje także
operacje logicznej sumy iloczynu i sumy modulo 2. Często
realizuje ona większość funkcji procesora np. zliczanie. Jest
to o tyle korzystne, że ALU zawiera układy realizujące te
funkcje.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Rejestr
Są to grupy przerzutników służące do przechowywania
informacji. Często pewne rejestry procesora są związane z
określonymi operacjami. Wykonanie niektórych rozkazów jest
związane z określonymi rejestrami. Rejestry są na ogół szybsze
niż układy pamięci programu lub danych. W porównaniu z liczbą
komórek pamięci operacyjnej, ich ilość jest niewielka i w części
adresowej rozkazu niewielka liczba bitów jest potrzebna do
wskazania rejestrów. Główne użycie rejestrów polega na
przechowywaniu adresów lub danych przed lub w trakcie ich
przetwarzania. Różne mikroprocesory zawierają różną liczbę
rejestrów. Rejestry mogą być używane:
• do modyfikacji adresów
• do zapamiętywanie adresów powrotu spod programów
• jako liczniki rozkazów
• jako akumulatory pomocnicze
• jako małe pamięci notatnikowe
Sposób ich użycia istotnie zależy od architektury mikroprocesora.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Dostępne programowo rejestry procesora 8086
Rejestry te są wykorzystywane jako rejestry uniwersalne do
przechowywania
danych
i
wykonywania
różnych
operacji
arytmetycznych bądź logicznych, ale jednocześnie pełnią pewne
funkcje specjalne odpowiadające ich nazwą.
Rejestry podstawowe:
• AX – akumulator
• BX – rejestr bazowy
• CX – rejestr zliczający
• DX – rejestr danych
Wszystkie te rejestry można traktować jako parę rejestrów 8-
bitowych z niezależnym dostępem do części mniej lub bardziej
znaczących. Poszczególne rejestry przyjmują wówczas nazwę: AL, AH,
BL, BH, CL, Ch, DL, DH. Taka organizacja rejestrów pozwala na
wykonywanie w prosty sposób zarówno operacji 8-bitowych, jak i
16-bitowych. Dla wielu rozkazów szczególną funkcję pełni akumulator.
Rozkazy wykorzystujące rejestr AX (w przeciwieństwie do rozkazów
wykorzystujących pozostałe rejestry) mają zwarty kod, a czas ich
wykonania jest najkrótszy.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Rejestry wskaźnikowe i indeksowe
Procesor 8086 posiada 2 rejestry wskaźnikowe i 2 indeksowe.
Wszystkie są rejestrami 16-bitowymi. Mogą być wykorzystane jako
argumenty większości rozkazów arytmetycznych i
logicznych.
SP
– wskaźnik stosu – rejestr wskaźnikowy stosowany do
adresowania danych w obrębie wydzielonego obszaru pamięci
zwanego
segmentem
stosu.
Jest
modyfikowany
przy
standardowych operacjach prowadzonych z użyciem stosu.
BP
– wskaźnik bazy – podobnie jak rejestr bazowy BX może być
źródłem jednego ze składników adresu efektywnego. Bywa też
często wykorzystywany podczas operacji niestandardowych np.
przy pobieraniu parametrów przekazywanych przez stos.
DI
– rejestr indeksowy przeznaczenia
SI
– rejestr indeksowy źródła
Oba rejestry indeksowe mogą wchodzić w skład sumy dającej w
wyniku adres efektywny z tym, że po wykonaniu rozkazu
wykorzystującego
indeksowanie
adresacji
podlegają
automodyfikacji (zwiększenia lub zmniejszenia o 1 lub 2).
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Rejestry specjalnego przeznaczenia
1. Rejestry segmentowe
Wykorzystywane są do adresowania pamięci operacyjnej.
Pamięć o maksymalnej wielkości 1MB jest dzielona na
logiczne segmenty nie większe niż 64 kB. Adresy wewnątrz
segmentu są co najmniej 2 bitowe i mogą być generowane
przez 16-bitowe rejestry SI, BP, DI, SP. Rejestry
segmentowe zawierają adresy początkowe segmentów.
• CS
– rejestr segmentowy programu wskazujący z
którego aktualnie pobierane są kolejne rozkazy do
wykonania
• DS
– rejestr segmentowy stosu wskazujący segment
w którym są zapamiętywane zmienne używane
w programie
• SS
– rejestr segmentowy stosu wskazujący segment
pamięci, który zdefiniowany jest jako stos
• ES
– rejestr segmentowy dodatkowy wskazujący
dodatkowy segment danych
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
2. Licznik rozkazów
Rejestr IP – łącznie z rejestrem segmentowym CS
adresuje kolejne rozkazy przeznaczone do
wykonania. IP wskazuje adres względem
początku segmentu programu tzw. offset. Jako
rejestr 16-bitowy może przyjąć maksymalną
wartość 216-1. W tej sytuacji dodanie 1 zeruje
cały rejestr, który wskazuje wtedy początek
segmentu programu. mówimy wtedy o tzw. cyklu
zamkniętym.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
3.Znaczniki
Każdy znacznik jest bitem w rejestrze znaczników, który
wskazuje czy określony stan wystąpił. Znaczniki mogą być
wykorzystywane zarówno przez procesor jak i programistę
na dwa sposoby:
• ustawienie znacznika w stan 1 logicznej lub jego
wyzerowanie celem zapamiętania określonego stanu
zaistniałego po wykonaniu rozkazu
• testowanie znacznika celem umożliwienia podjęcia
decyzji o sposobie dalszego przetwarzania danych.
Znaczniki przechowywane są w rejestrze znaczników
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
x – bit niewykorzystywany
Mikroprocesor
8086
ma
9
znaczników
przypisanych poszczególnym bitom w rejestrze
flag w sposób jak na rysunku.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Znaczniki
stanu
informujące
o
pewnych
cechach
otrzymanego wyniku po wykonaniu operacji arytmetycznej
lub logicznej. w zależności od stanu pojedynczych
znaczników lub ich logicznej kombinacji można za pomocą
właściwych
rozkazów
skoków
zmienić
przebieg
realizowanego programu.
• CF
– wskaźnik przeniesienia
• PF
– wskaźnik parzystości
• AC
– przeniesienie pomocnicze
• ZF
– wskaźnik 0
• SF
– wskaźnik znaku
• VF
– wskaźnik przepełnienia (nadmiaru)
Wskaźniki
kontrolne
są
ustawione
lub
zerowane
programowo celem wymuszenia odpowiedniego sposobu
pracy procesora.
• TF
– praca krokowa
• IF
– zezwolenie na przerwanie
• DF
– znacznik kierunku – oznacza inkrementację lub
dekrementację rejestru indeksowego
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Wyznaczanie adresu fizycznego pamięci z wyk. rejestru segmentowego
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Ogólne reguły ustawiania i zerowania poszczególnych
znaczników
zilustruje
prostym
przykładem
celem
uproszczenia zapisu przykład będzie dotyczył działania na
bajtach. Wszystkie uwagi dotyczące bitu znaku (najbardziej
znaczącego bitu) odnoszą się do bitu o wadze 27 dla działań
wykonywanych na bajtach oraz bitu o wadze 215 dla
działań
na słowach 16-bitowych.
Przykład
1101110
+
0010100
1|0010010
CF = 1
PF = 1
AC = 1
ZF = 0
SF = 0
VF = 1
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
•CF
– znacznik przeniesienia przyjmuje wartość 1 wówczas, gdy
na skutek wykonywanego działania nastąpiło przeniesienie z bitu
najbardziej znaczącego na zewnątrz lub też nastąpiła pożyczka
z zewnątrz do bitu najbardziej znaczącego np. przy odejmowaniu.
w przeciwnym wypadku znacznik jest zerowany.
•PF
– przyjmuje wartość 1 wówczas, gdy w wyniku wykonanego
działania liczba bitów w najmniej znaczącym bajcie wyników jest
parzysta. Znacznik jest zerowany, gdy liczba jest nieparzysta.
•AC
– przyjmuje wartość 1 wówczas, gdy nastąpiło przeniesienie
z bitu 3 na 4 lub pożyczka z 4 na 3. W przeciwnym wypadku jest
0. Wskaźnik AC jest wykorzystywany przy działaniach na liczbach
w kodzie BCD.
•ZF
– przyjmuje wartość 1 wówczas, gdy wynik działania jest = 0
•SF
- przyjmuje wartość 1 wówczas, gdy najbardziej znaczący bit
w otrzymanym wyniku jest = 1. Stan znacznika SF jest zatem
zgodny z bitem znaku.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
•VF
- przyjmuje wartość 1 wówczas, gdy przy wykonaniu
określonego działania wystąpiło przeniesienie na bit znaku (lub
też z tego bitu została pobrana pożyczka), ale nie wystąpiło
przeniesieni (pożyczka) z bitu znaku. Stan znacznika VF jest
istotny podczas działań na liczbach ze znakiem.
•TF
– ustawiony w stan 1 powoduje wprowadzenie procesora
w tryb pracy umożliwiający po każdym wykonanym rozkazie
wygenerowanie przerwania i przejście do specjalnych procedur
obsługi np. programów uruchomionych. Wyzerowanie wskaźnika
powoduje powrót do normalnej pracy.
•IF
– ustawiony w stan 1 powoduje odblokowanie systemu
przerwań procesora. Zewnętrzne przerwania maskowane mogą
przerwać
realizację
aktualnie
wykonywanego
programu.
Wyzerowanie znacznika powoduje, ze przerwania są ignorowane.
•DF
– ustawiony w stan 1 powoduje, że przetwarzanie łańcuchów
słów odbywa się po rosnących adresach (inkrementacja).
Zawartość rejestru indeksowego jest zwiększana, jeżeli ustawimy
0 po adresach malejących.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Cykl pracy procesora 8086
Wykonanie kolejnych rozkazów związane jest z sekwencją
pewnych stałych kroków zwanych fazami cyklu. W
zależności od rodzaju rozkazu mogą wystąpić maksymalnie
4 fazy cyklu:
• pobrania
– rozkaz zostaje pobrany z pamięci
operacyjnej do procesora
• odczyt
– jeżeli rozkaz wymaga argumentu z pamięci
operacyjnej to zostaje obliczany jego adres, a
następnie jest odczytywany i wprowadzany do
procesora
• wykonanie
– operacja zdefiniowana rozkazem jest
wykonywana
• zapis
– jeżeli wynik operacji ma być umieszczony
w pamięci operacyjnej to zostaje obliczony adres
i wykonany zapis pamięci.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Ponieważ układ wykonawczy oraz układ sterowania magistralą
mogą pracować niezależnie, jest możliwe równoczesne
wykonywanie dwóch faz należących do cykli kolejnych rozkazów.
Zwiększa to szybkość pracy całego systemu. Gdy w kolejce
rozkazu są wolne co najmniej 2 bity, a układ wykonawczy nie
żąda od układu sterującego magistralą dostępu do magistrali, to
układ sterowania magistralą wykonuje samodzielnie cykle
pobrania uzupełniając kolejnymi bajtami kolejkę rozkazów.
Operacja ta nazywana jest pobraniem wstępnym i może
przebiegać równocześnie z fazą wykonania realizowaną
jednocześnie. Jeżeli układ wykonawczy zażąda dostępu do
magistrali w czasie, gdy układ sterowania magistralą obsługuje
fazę pobrania, to najpierw zostaje zakończona faza pobrania,
a dopiero potem uwzględnione zostanie żądanie układu
wykonawczego. W przypadku zdekodowania przez układ
wykonawczy rozkazu skoku, rozkazy z kolejki zostaną usunięte.
Na ich miejsce pobrane zostaną nowe spod adresu będącego
argumentem zdekodowanego rozkazu. W przypadku tego
procesora tylko co najwyżej jeden argument rozkazu może być
odczytywany z pamięci operacyjnej.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Hierarchia pamięci
1. rejestr wewnętrzny procesora
2. pamięci podręczne Cachel
3. pamięć operacyjna
4. pamięci dyskowe
5. pamięci optyczne CD, DVD
6. pamięci taśmowe
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Piramida pamięci w systemie komputera jest ściśle zależna
od typów pamięci wg ich szybkości, pojemności oraz cen.
Począwszy od najszybszych, ale zarazem najmniejszych
i najkosztowniejszych, a na powolnych, dużych i tanich
kończąc. Pierwszą szczytową warstwę stanowi pamięć
rejestrowa, która to jest pamięcią najszybszą, jednocześnie
najmniejszą. Liczba rejestrów ogranicza się od kilku do
kilkunastu. Najniższe warstwy w piramidzie stanowią
pamięci taśmowe, często w postaci robotów kasetowych,
które mają praktycznie nieograniczoną pojemność
.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
Rejestry procesora.
Wszelkie obliczenia przez komputer dokonywane są
w pamięci procesora. Ponieważ często obliczenia te są
skomplikowane, pamięć procesora podzieloną na rejestry
przyporządkowujące każdemu z nich inne zadania:
1. licznik rozkazów,
który zawiera adres następnego
rozkazu do wykonania w cyklu rozkazy
2. wskaźnik stosu
– przechowuje adres grzbietu stosu
uaktualniany automatycznie przez rozkazy wywołania
i powrotu spod programu
3. wskaźnik danych
– zawiera adres argumentu operacji
przechowywanego w pamięci operacyjnej komputera
4. akumulator
– przechowuje jeden z argumentów
wykonywanego rozkazu i mogą być również miejscem
zapamiętania
wyniku
operacji
logicznych
lub
arytmetycznych.
Technika Cyfrowa i Mikrokomputery
Technika Cyfrowa i Mikrokomputery
DZIĘKUJĘ ZA
UWAGĘ !!!