Mikroprocesor Z80
description
Transcript of Mikroprocesor Z80
Mikroprocesor Z80
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Z80 1/16
Geneza
Z801977, 2,5MHz
Z80001979
Z81978
Z80 -cechy 2/16
Cechy użytkowe (zalety w porównaniu z 8080) :• 8-bitowa magistrala danych;• 16-bitowa magistrala adresów;• 8-bitowa ALU;• bogata gama rozkazów:
• przesyłania bajtów i słów 2-bajtowych• przesyłania i przeszukiwania bloków informacji• operacje arytmetyczno-logiczne na bajtach i słowach 2-bajtowych (rozszerzony zestaw operacji i argumentów)• operacje bitowe (BIT, SET, RES)• 16-bitowe skoki i wywołania procedur, bezwarunkowe i warunkowe• skoki relatywne (1B w U2)• operacje we/wy proste• operacje we/wy z wyliczaną adresacją portów i blokowe• rozkazy sterujące
Z80 - cechy 3/16
• 5 trybów adresowania argumentów (w tym tryb dwuskładnikowy);
• 2 wejścia przerwań zewnętrznych: maskowalne /INT i niemaskowalne /NMI;• 3 tryby obsługi przerwań, w tym tryb wektorowy;• możliwość programowego przełączania między trybami obsługi przerwań;• 6+6 rejestrów roboczych 8-bitowych, ogólnego przeznaczenia, które można łączyć w pary, podzielonych na 2 alternatywne zestawy;• 2 16-bitowe rejestry indeksowe;• 16-bitowe PC i SP;• zdwojone akumulator A i rejestr flag F;• wbudowany mechanizm odświeżania pamięci dynamicznych;• rejestry odświeżania R i wektora przerwań I;• jednofazowy sygnał taktujący 2,5MHz (Z80A - 4MHz, Z80B - 6MHz, Z80H - 8MHz, itd.);• zasilanie tylko 5V;• sygnały zewnętrzne zgodne ze standardem TTL;• niepotrzebne specjalne układy taktowania i sterownika magistrali.
Z80 - struktura wewnętrzna 4/16
A0-A15
EX AF,AF’
wewnętrzna szyna danych D0-D7
US
tmp at
B C
D E
H L
B’ C’ D’ E’ H’ L’
IX
IY
SP
PC +
MPX
+1
wewnętrzna szyna sterowań
EXX
wewnętrzna szyna adresów
DR
RR A F
A’ F’ I R
ALU
D0-D7 - we/wy, 3-stanowe, 8-bitowa magistrala danych;A0-A15 - wy, 3-stanowe, 16-bitowa magistrala adresów;/M1 - wy, sygnalizuje specjalne cykle maszynowe;/MREQ - wy, 3-stanowe, sygnalizuje dostęp do pamięci;/IORQ - wy, 3-stanowe, sygnalizuje dostęp do we/wy;/RD,/WR - wy, 3-stanowe, stroby odczytu i zapisu;/RFSH - wy, sygnalizuje adres odświeżania DRAM;/WAIT - we, sygnalizowania P brak gotowości układów pamięci lub portów do przesyłania informacji;/NMI - we, wejście przerwania niemaskowalnego;/INT - we, wejście przerwania maskowalnego;/BUSREQ - we, wejście sygnału od DMA;/BUSACK - wy, potwierdzenie zwolnienia magistrali/HALT - wy, sygnalizuje wykonywanie rozkazu HALT/RESET - we, wejście sygnału zerowania P;CLK - we, sygnał taktujący pracę P;5V,GND - linie zasilające
Z80 - opis wyprowadzeń 5/16
A10A9A8A7A6A5A4A3A2A1A0GNDRFSHM1RESETBUSREQWAITBUSACKWRRD
A11A12A13A14A15
CLKD4D3D5D6
+5VD2D7D0D1
INTNMI
HALTMREQIORQ
BUSACK:=1BRFF:=0
Z80 - cykl pracy 6/16
RR:=M(PC)PC:=PC+1praca DR
cały kod rozkazu ?
BUSRQ=0?
BRFF:=1tryb DMA
BUSACK:=0
BUSRQ=1?
N
T
N
T
N
wykonanie rozkazu
zakończenie rozkazu
pobieranie kodu rozkazu
BUSACK:=1BRFF:=0
INTFF:=1
NMIFF:=1
Z80 - cykl pracy 7/16
N
koniec rozkazu ?
wykonanie rozkazu
N
T
koniec cyklu masz.?N
T
koniec rozkazu ?N
T
NMI=0?T
INT=0?
T
N
IFF1=1?
T
Ntryb DMABUSACK:=0
BUSRQ=1?N
T
NMIFF=1?
N
T
IFF2:=IFF1IFF1:=0PCstosPC:=66h
NMIFF:=0
IFF1:=0PCstos
PC:=adresproc.obs.
przerwania INTFF:=0
INTFF=1?
N
T
BUSRQ=0?T
N
pobieranierozkazu
pobranie argumentu
zapamiętanie wyniku
zdekodowanierozkazu
Z80 - cykle maszynowe 8/16
cykl pobrania pierwszego bajtu kodu rozkazu
M1
CLK T1 T2 Tw T3 T4 T1
A0..A15 PC adres odśwież. (A0..A6)
MREQ
RD
WAIT
M1
RFSH
D0..D7 kod
Z80 - cykle maszynowe 9/16
cykl odczytu/zapisu bajtu pamięci
CLK T1 T2 Tw T3 T1
A0..A15 ADRES
MREQ
WAIT
RD
D0..D7 DANEwe
WR
D0..D7 DANEwy
ODCZYT
ZAPIS
Z80 - cykle maszynowe 10/16
cykl odczytu/zapisu portu zewnętrznego
CLK T1 T2 Tw* Tw T3 T1
A0..A15 ADRES PORTU (A0..A7)
IORQ
WAIT
RD
D0..D7 DANEwe
WR
D0..D7 DANEwy
ODCZYT
ZAPIS
Z80 - cykle maszynowe 11/16
cykl zwolnienia magistrali (tryb DMA)
cykl maszynowy tryb DMA
CLK TL Tx Tx Tx T1
BUSREQ
BUSACK
A0..A15
D0..D7
RD WR MREQ IORQ
RFSH
HALT
M1=high
Z80 - tryby adresowania 12/16
1 . A d r e s o w a n i e r e j e s t r o w e ( i m p l i k o w a n e )l d a , b k o d : 7 8 h
0 1 1 1 1 0 0 0
d s
d , s : B C D E H L M A
k o d : 0 1 2 3 4 5 6 7
2 . A d r e s o w a n i e n a t y c h m i a s t o w e
l d a , 2 5 k o d : A
l d h l , 8 1 2 0 h k o d :
H L
3 E
1 9
2 1
2 0
8 1
Z80 - tryby adresowania 13/16
3 . A d r e s o w a n i e b e z p oś r e d n i e
l d a , ( 8 1 2 0 h ) k o d : P A O A 8 1 2 0 h :
3 A
2 0
8 1X X
4 . A d r e s o w a n i e r e j e s t r o w e p oś r e d n i el d h l , 8 1 2 0 h P A Ol d a , ( h l ) k o d : A H L 8 1 2 0 h :
3 EX X
8 1 2 0
Z80 - tryby adresowania 14/16
5 . A d resow a nie b a zow e (in d e ksow e w litera tu r ze o Z 80)
ld ix,8100h ld iy,8180h
ld a ,(ix+ 20h) ld a ,(iy-60h)
IX /IY P A O A 8120h: +
X X
D D210081
D D7E20
FD218081FD7EA 0
Z80 - stos 15/16
Cechy:• stos programowy typu LIFO;• dowolna alokacja w przestrzeni adresowej 64kB PAO (musi być w RAM);• dowolny rozmiar (wielkość) - ilość informacji na stosie jest ograniczona
tylko wielkością dostępnego RAM;• jednostką operacji na stosie jest słowo dwubajtowe
(starszy bajt jest umieszczony w komórce RAM o wyższym adresie,
a młodszy - w komórce o niższym adresie);• przy zapisie stos „narasta” w kierunku malejących adresów;• 16-bitowy SP wskazuje zawsze na ostatnio zapisany bajt na stosie;• dostęp do stosu realizowany jest:
- automatycznie przy wejściu w wywoływaną procedurę
lub procedurę obsługi przerwania;
- programowo, rozkazami PUSH, POP, EX (SP).
Z80 - stos, reset procesora 16/16
zapis na stos:PUSH BC
03h
B:
13h 24h
C:
H:
XX XX
L:
SP:
1111h1111h:1110h:110Fh:
XXXXXX
PAO
1110h 13h110Fh
24hodczyt ze stosu:POP HL
1110h1111h
24h13h
Ilustracja działania stosu:
Reset Z80Wywoływany jest przez niski sygnał na wejściu /RESET trwający przez
minimum 3 okresy przebiegu taktującego CLK. Reset powoduje:• ustawienie linii zewnętrznych w stan wysokiej impedancji lub wysoki; • PC:=0;• SP:=0;• zablokowanie przerwań maskowalnych INT;• ustawienie podstawowego trybu obsługi przerwań maskowalnych.