Z80

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Zilog-processoren
Zilog Z80-processor
Zilog Z80-processor
ZiLOG

Z80-reeks: Z80 · Z180 · Z280 · Z380 · Z800 · eZ80
Z8000-reeks: Z8000 · Z80000
Microcontroller: Z8

Compatibels
Z80-reeks: ASCII R800 · Hitachi HD64180 ·
Microelectronica MMN80 · NEC µPD780C ·
Sharp LH-0080 · T34 · U880

De Z80 is een 8 bit processor, die werd ontworpen door het bedrijf Zilog. Hij werd uitgebracht in 1976 en is in essentie een processor die compatibel is met de 8080 van Intel, maar met meer instructies, registers en adresseringsmethoden. Zoals veel chips uit de vorige eeuw werd de Z80 ook in licentie gemaakt, onder meer door SGS en Mostek.

De Z80A-processor werd toegepast in de Tandy TRS80 hobbycomputer, de Sinclair ZX Spectrum homecomputer, de MSX-homecomputers, de Amstrad CPC, de Philips P2000 en de professionelere Exidy Sorcerer en veel CP/M-computers. Maar ook bijvoorbeeld in de dam en schaakcomputers (Checker Challenger en Chess Challenger) van Fidelity.

Vergelijking met 8080[bewerken]

Enkele uitbreidingen ten opzichte van de 8080 zijn:

  • Een dubbele registerset waartussen kan worden omgeschakeld. Dit schakelen kost 4 kloktikken, waardoor een interrupt sneller kan worden afgehandeld (mits het geen geneste interrupt is).
  • Twee indexregisters.
  • Bit set/reset-instructies.
  • Drie interruptmodi. De 8080 voert, bij het optreden van een interrupt, een instructie uit die op de databus wordt gezet. De Z80 kan ook een byte van de databus lezen en naar het daarmee aangegeven adres springen. Een derde mogelijkheid is een sprong naar een vast adres (38h), wat vooral voor een embedded toepassing voordelig is omdat hardware eenvoudiger uitgevoerd kan worden.
  • Ingebouwd register voor het verversen van dynamisch geheugen.

Door dit alles is de Z80 sneller dan de 8080 bij dezelfde klokfrequentie, mits de software gebruik maakt van de extra mogelijkheden.

Z80-familie[bewerken]

De kloksnelheid van de oorspronkelijke Z80-processor werd gestaag opgevoerd. De Z80-processor is in de onderstaande varianten verschenen:

  • Z80, kloksnelheid 2,5 MHz
  • Z80A, kloksnelheid 4 MHz
  • Z80B, kloksnelheid 6 MHz
  • Z80H, kloksnelheid 8 MHz.

Later werd een CMOS-ontwerp geleverd dat tot 20 MHz snelheid bood. In 2008 levert Zilog Z80-compatibele processoren met kloksnelheden van 1 tot 50 MHz, waarbij de eZ80-processoren tot vier keer minder kloktikken nodig hebben per uitgevoerde instructie dan de oorspronkelijke Z80.

Aansluitingen[bewerken]

Pinout
  • M1: Actief als de eerste byte van een instructie wordt opgehaald (begint de instructie met CB, ED, FD of DD, dan is M1 ook actief bij het ophalen van de tweede byte van de instructie). Tenslotte wordt M1 gebruikt bij de interruptrespons. M1 wordt gebruikt voor:
    • Hardware voor single-stepping.
    • Interruptrespons. De processor activeert dan lijn M1 en IORQ en de interruptcontroller zet dan (meestal) een wijzer naar de uit te voeren interruptroutine op de bus.
    • Terugkeer van interrupt. De interruptcontroller weet dat een interrupt is afgehandeld door de instructie RETI van de bus af te luisteren. Hierbij moet M1 actief zijn.
  • MREQ: Geheugen adresseren
  • IORQ: Invoer/uitvoer adresseren
  • WR: Schrijven
  • RD: Lezen
  • RFSH: Tijdens het decoderen van een opcode wordt er een adres uitgezonden om dynamisch geheugen te verversen. Daarbij is RFSH actief.
  • HALT: Is actief en blijft actief als de instructie HALT is uitgevoerd. De processor staat dan stil en kan met een interrupt of reset weer in werking worden gezet. Het verversen van dynamisch geheugen gaat gewoon door.
  • INT: Gewone interrupt, niveaugevoelig.
  • NMI: Niet maskeerbare interrupt, flankgevoelig.
  • RESET: Volledige reset, de processor start bij adres 0000.
  • WAIT: Een extern apparaat vraagt de processor even te wachten, desnoods midden in een instructie. Dit gebeurt normaliter als een apparaat niet onmiddellijk kan reageren op het lezen of schijven van geheugen of I/O. Deze toestand mag niet te lang duren omdat het verversen van het geheugen dan achterwege blijft.
  • BUSRQ: Een extern apparaat vraagt de besturing van de bus. De processor voltooit de lopende instructie en zet de adres- en datalijnen in tri-state zolang BUSRQ actief is.
  • BUSAK: De processor bevestigt dat de adres- en datalijnen in tri-state staan, zodat een extern apparaat de bus mag gebruiken. Deze toestand mag niet te lang duren omdat het verversen van het geheugen nu achterwege blijft, tenzij het externe apparaat voor het verversen zorgt.
  • CLK: klokingang.

Alle besturingslijnen zijn laag actief.

M1 MREQ IORQ WR RD RFSH
opcode lezen actief actief actief
geheugen lezen actief actief
geheugen schrijven actief actief
invoer actief actief
uitvoer actief actief
geheugen verversen actief actief
interruptrespons actief actief

Zie ook[bewerken]

Externe links[bewerken]