Mikroprocesor Z80

17
Mikroprocesor Z80 przykładowy 8-bitowy mikroprocesor uniwersalny CISC

description

Mikroprocesor Z80. przykładowy 8-bitowy mikroprocesor uniwersalny CISC. Z80 1/16. Geneza. Z80 1977, 2,5MHz. Z8 1978. Z8000 1979. - PowerPoint PPT Presentation

Transcript of Mikroprocesor Z80

Page 1: Mikroprocesor Z80

Mikroprocesor Z80

przykładowy 8-bitowy mikroprocesor uniwersalny CISC

Page 2: Mikroprocesor Z80

Z80 1/16

Geneza

Z801977, 2,5MHz

Z80001979

Z81978

Page 3: Mikroprocesor Z80

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

Page 4: Mikroprocesor Z80

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.

Page 5: Mikroprocesor Z80

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

Page 6: Mikroprocesor Z80

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

Page 7: Mikroprocesor Z80

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

Page 8: Mikroprocesor Z80

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

Page 9: Mikroprocesor Z80

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

Page 10: Mikroprocesor Z80

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

Page 11: Mikroprocesor Z80

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

Page 12: Mikroprocesor Z80

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

Page 13: Mikroprocesor Z80

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

Page 14: Mikroprocesor Z80

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

Page 15: Mikroprocesor Z80

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

Page 16: Mikroprocesor Z80

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).

Page 17: Mikroprocesor Z80

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.