Qt |
Qt+1 |
D |
Qt |
Qt+1 |
T |
Qt |
Qt+1 |
R |
S |
Qt |
Qt+1 |
J |
K |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- |
0 |
0 |
0 |
0 |
- |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
- |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
- |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
- |
1 |
1 |
- |
0 |
REJESTRY 8 BITOWE
Akumulator i szesc rej roboczych (B,C,D,E,H,L) wykorzystywane przede wszystkim jako pamiec podreczna do przechowywania danych(czesciowych wynikow obliczen, stalych itp.); Rejestr znacznikow F do którego sa wpisywane informacje o wyniku operacji wykonanych przez ALU. W rej tym jest 6 znacznikow (C-przeniesienie, N-odejmowanie, P/V-parzystosc, H- przeniesienie pomocnicze, Z-zero, S-znak)
REJESTRY 16 BITOWE
Licznik rozkazow PC - zawierajacy adres komorki pamieci, z ktorej bedzie pobrany kod rozkazu do wykonania; Wskaznik stosu SP - zawierajacy adres wierzcholka stosu umieszczonego w pamieci. Przy kazdym zapisie info na stos i jej zdjeciu ze stosu wskaznik jest odpowiednio modyfikowany; Rejestry indeksowe IX i IY zawierajace tzw adres bazowy dla adresowania indeksowego
U2: Negacja i +1 na najmniej
znaczacej pozycji
BIAS: +1 na najbardziej znaczacej pozycji
|
U1 |
U2 |
0000 |
0 |
0 |
0001 |
1 |
1 |
0010 |
2 |
2 |
0011 |
3 |
3 |
0100 |
4 |
4 |
0101 |
5 |
5 |
0110 |
6 |
6 |
0111 |
7 |
7 |
1000 |
-7 |
-8 |
1001 |
-6 |
-7 |
1010 |
-5 |
-6 |
1011 |
-4 |
-5 |
1100 |
-3 |
-4 |
1101 |
-2 |
-3 |
1110 |
-1 |
-2 |
1111 |
0 |
-1 |
Zmiennoprzecinkowe: ujemna -
przes. w lewo, dodatnia - prawo
Tyle razy ile wierszy (pamiec ma matryce w miare mozliwosci kwadratowa). Czas: ilosc wierszy * czas cyklu
- Asynchroniczny - mniej cykli
- synchroniczny - wiecej cykli
- rejestrowa
- podreczna
- operacyjna
- dyskowa
- zewnetrzna
- rejestrowe - argumenty sa umieszczone we wskazanych w kodzie operacji rejestrach wewnetrznych
- posrednie rejestrowe - argument jest umieszczony w pamieci, a adres argumentu jest zapisany w 16-bitowym rejestrze procesora, tzw. wskazniku danych (HL)
- natychmiastowe - argument jest umieszczony w pamieci, w drugim lub drugim i trzecim bajcie kodu rozkazu. Argument taki jest nazywany argumentem bezposrednim
- bezposrednie - argument jest umieszczony w pamieci, a adres argumentu jest umieszczony w drugim i trzecim bajcie kodu rozkazu
- indeksowe - argument jest umieszczony w pamieci, a adres argumentu jest suma zawartosci rejestru indeksowego IX lub IY i 8-bitowego przesuniecia (liczby w kodzie NKB) umieszczonego w trzecim bajcie kodu rozkazu. Liczba ta okresla przesuniecie polozenia argumentu wzgledem adresu zapisanego w rejestrze indeksowym.
- posrednie indeksowe
- posrednie
- wzgledne
Dwie fazy:
- Pobranie - podczas której nastepuje odczytanie z pamieci kodu rozkazu, którego adres jest zawarty w liczniku rozkazów.
- Wykonanie - podczas której nastepuje wykonanie operacji wskazanych przez rozkaz. W fazie wykonania moze nastapic odczytanie z pamieci lub wejscia argumentu operacji, moze tez nastapic zapisanie do pamieci lub rejestru wyjsciowego wyników operacji. Adres pamieci lub wejscia-wyjscia jest ustalany zgodnie z trybem adresowania danego rozkazu.
W trakcie jednego cyklu rozkazowego musi nastapic co najmniej jedno przeslanie danych miedzy mikroprocesorem a pamiecia (czyli dostep do pamieci). Realizacja jednego dostepu do pamieci lub wejscia-wyjscia nazywana jest cyklem maszynowym. Cykl rozkazowy moze zawierac jeden cykl maszynowy, jednak na ogól zawiera ich kilka - do 6.
Wersja oficjalna:
pobranie kodu operacyjnego (fetch)
odczyt z pamieci (memory read)
zapis do pamieci (memory write)
odczyt z urzadzenia wejsciowego (IO read)
zapis do urzadzenia wyjsciowego (IO write)
cykl przyjecia przerwania (interrupt)
cykl zatrzymania (HALT)
Kazdy cykl maszynowy wiaze sie z pojedynczym odwolaniem sie procesora do pamieci lub portu wejscia/wyjscia w celu odczytu lub zapisu i z wykonaniem wewnatrz procesora odpowiedniego przeslania miedzy rejestrem a szyna danych lub miedzy rejestrami. Kazdy cykl maszynowy jest wiec równiez zlozony i sklada sie z kilku cykli zegarowych (taktów) - od 3 do 6, typowo 6. Struktura cyklu maszynowego nie jest jednorodna; wystepuje czesciowe nakladanie: proces rozpoczety w jednym cyklu maszynowym moze zakonczyc sie w nastepnym, jednoczesnie z procesorem, który nalezy do drugiego cyklu. Dzieki temu czesciowemu paralelizmowi osiaga sie kilkunastoprocentowa oszczednosc czasu.
- podstawowy cykl pobrania i dekodowania rozkazu - nazwany cyklem M1 - trwa 4 lub 5 cyklów zegarowych
- cykl odczytu lub zapisu pamieci (trwa typowo 3 takty, ale moze byc wydluzony przez sygnal WAIT)
- cykl odczytu lub zapisu portu wejscia/wyjscia
- cykl przyjecia sygnalu BUSRQ
- cykl przyjecia sygnalu przerwania maskowalnego (czyli takiego, które mozna programowo zablokowac)
- cykl przyjecia przerwania niemaskowalnego
- cykl pracy jalowej po wykonaniu rozkazu HALT
- cykl kasowania (zerowania) i inicjacji pracy procesora
Przerwaniem nazywany wymuszone odpowiednim sygnalem sterujacym wstrzymanie automatycznego generowania kolejnych adresów rozkazu do wykonania i wywolanie specjalnego programu obslugi. Przerwania znajduja zastosowanie we wspólpracy procesora z asynchronicznie dzialajacymi urzadzeniami zewnetrznymi. Przyjecie przerwania powoduje automatyczne zapamietanie na stosie zawartosci licznika rozkazów, co umozliwia poprawny powrót do programu wykonywanego przed przerwaniem. Nie jest natomiast zapamietywana zawartosci innych rejestrów - podprogram obslugi przerwania musi zadbac o to sam.
W czasie transmisji równoleglej z potwierdzeniem uzywa sie 3 bity sterujace: OBF (gotowosc danych), ACK (przesylanie danych), INTR (bufor wejsciowy jest pusty)
- na koncu procedury obslugi przerwan powinien byc wykonany rozkaz RET
- pamiec w czasie asynchronicznej transmisji szeregowej nako dane moze przeslac maks. 12 bitów
- rozkaz przeslania bajtu pamieci do rejestru w trybie adresowania posredniego trwa 3 cykle maszynowe.
- czas rozkazu w trybie adresowanym - 1, natychmiastowym - 2, posrednim - 2 cykle