Zilog Z80

Processador de 8-bits From Wikipedia, the free encyclopedia

Zilog Z80

El Zilog Z80 és un microprocessador de 8 bits dissenyat i venut per Zilog des del juliol de 1976. S'utilitzava àmpliament tant en microordinadors així com per a propòsits militars. El Z80 i els seus derivats i els clons constitueixen una de les famílies de CPU més comunament utilitzades de tot el temps, i, junt amb la família 6502, dominava el mercat de microordinadors de 8 bits fins a finals dels anys 1970 a mitjan anys 1980.[1][2][3]

Dades ràpides Fabricant, Llançament ...
Zilog Z80
Thumb
FabricantZilog
Mostek (en)
Synertek (en)
STMicroelectronics
NEC Corporation
Sharp Corporation
Toshiba
Rohm (en)
GoldStar (en)
Hitachi
National Semiconductor
Llançamentmarç 1976
Final de vida2024
EstatDiscontinuat
Característiques de Connectors
Representació esquemàtica
Thumb
Format per
Registres de la CPU
index register (en)
stack register (en)
Comptador de programa
Zilog Z180 (en) , Zilog Z8000, Zilog Z800 (en) , Zilog Z280 (en) , Zilog Z380 (en) i Zilog eZ80 (en)
Tanca
Thumb
El xip Z80 original
Thumb
Un Z80 en LQFP
Thumb
Zilog Z80 A

Història

Introducció

El Z80 va ser dissenyat principalment per Federico Faggin, que va estar treballant a Intel com a dissenyador cap de l'Intel 4004 i de l'Intel 8080. Quan es va acabar de produir, el 1974, Federico Faggin va deixar Intel, va fundar Zilog i va començar a treballar en el disseny de Z80 basant-se en l'experiència adquirida creant l'Intel 8080 i basant-se en l'estructura d'aquest últim. Dos anys després estava a la venda el Z80.

El Z80 estava dissenyat per ser compatible a nivell de codi amb l'Intel 8080, de manera que la majoria dels programes pel 8080 poguessin funcionar en ell, especialment el sistema operatiu CP/M.

El Z80 tenia vuit millores fonamentals respecte a l'Intel 8080:

  • Un conjunt d'instruccions millorat, incloent els nous registres índex IX i IY i les instruccions necessàries per manejar-los.
  • Dos bancs de registres que podien ser canviats de forma ràpida per accelerar la resposta a interrupcions.
  • Instruccions de moviment de blocs, E/S de blocs i recerca de bytes.
  • Instruccions de manipulació de bits.
  • Un comptador de direccions pel refresc de la DRAM integrat, que en el 8080 havia de ser proporcionat pel conjunt de circuits de suport.
  • Alimentació única de 5 volts.
  • Necessitat de menys circuits auxiliars, tant per a la generació del senyal de rellotge com per a l'enllaç amb la memòria i la E/S.
  • Més barat que l'Intel 8080.
  • Una tipus especial de reset que només reinicia el comptador de programa de manera que el Z80 es pot usar en un sistema de desenvolupament ICE (In-Circuit Emulator).[4]

El Z80 va eliminar ràpidament a l'Intel 8080 del mercat i es va convertir en un dels processadors de 8 bits més populars. Les primeres versions funcionaven a 2,5 MHz, però la seva velocitat ha augmentat fins als 20 MHz. Així, la versió més utilitzada va ser el Z80A funcionant a 3,58 MHz (un quart de la freqüència PAL o NTSC) sent la velocitat de fàbrica de 4 MHz.[5]

En l'actualitat Zilog segueix fabricant versions del Z80 original i altres models compatibles que milloren les prestacions.

Usos notables

Al començament dels anys 1980 el Z80 o versions clòniques del mateix van ser usades en multitud d'ordinadors domèstics, com la gamma MSX, el Radio Shack TRS-80, el Sinclair ZX80, ZX81 i ZX Spectrum. També va ser usat en l'Osborne 1, el Kaypro i una gran quantitat d'ordinadors empresarials que dominaven el mercat per aquella època i que usaven el sistema operatiu CP/M.

A mitjan anys 1980 el Z80 va ser usat en el Tatung Einstein i la família d'ordinadors domèstics i empresarials Amstrad CPC i Amstrad PCW. El Z80 també va ser usat en els ordinadors Tiki 100, que s'empraven en els col·legis de Noruega en aquells dies.

Va ser tan gran la popularitat del Z80 i el CP/M que altres ordinadors basats en el MOS Technology 6502 o 6510 que ja estaven al mercat, com el BBC Micro, l'Apple II i el Commodore 64 podien ser ampliats mitjançant una targeta o cartutx que contenia un processador Z80. També el Commodore 128 incloïa un Z80 secundari al costat del MOS Technology 8502 principal per poder usar CP/M.

Ja en els anys 1990 el Z80 ha estat usat en les videoconsoles Sega Master System i Sega Game Gear. A més les videoconsoles SNK Neo-Geo i la Sega Mega Drive i moltes màquines arcade usen un Z80 com el processador especialitzat en so.

Les Game Boy i Game Boy Color de Nintendo utilitzen una variant del Z80 fabricada per Sharp.

En l'actualitat, part de la gamma de calculadores gràfiques programables de Texas Instruments com les TU-73 (1998), TU-73 Explorer (2003), TU-82 (només el model de 1999), TU-83 Plus (només models de 1999 i 2001),[6] i les seves successores empren una versió clònica del Z80 fabricada per NEC com a processador principal.

A més el Z80 també és un microprocessador popular per ser usat en sistemes incrustats, camp on s'empra de manera extensiva.

Segones fonts i clònics

Mostek i SGS van ser segones fonts del Z80 (Mostek MK3880 i SGS Z8400). Sharp i NEC fabriquen clònics del Z80 (Sharp LH-0080 i NEC µPD780C). National Semiconductor va fabricar un processador clònic, el NSC800, amb tecnologia CMOS però que no era compatible pin a pin. Hitachi va fabricar una versió amb tecnologia CMOS millorada, la segona font de la qual va ser curiosament la pròpia Zilog.

A la República Democràtica Alemanya es va produir una versió clònica del Z80 anomenada U880, que va ser emprada en els sistemes informàtics de Robotron i de VEB Mikroelektronik Mühlhausen, així com les sèries KC85 i en molts ordinadors de fabricació casolana.

A Romania es va fabricar una versió clònica del Z80, el MMN80, i que segons algunes fonts va ser també fabricada a la Unió Soviètica, on es van crear diverses còpies del Z80, sent el més conegut el T34. Aquest microprocessador va ser utilitzat en la majoria d'ordinadors fabricats en aquest país, gairebé tots clons dels Sinclair ZX Spectrum: Ice Felix HC85, HC90, HC91, HC2000, Datatim/Universitat Tècnica de Timisoara TIM-S, MicroTIM i MicroTIM+ o els Intreprinderea Electrónica CIP, CIP-02, CIP-03, CIP-04.

Avui en dia existeixen dos nuclis de processador anomenats T80 i TV80 que són funcionalment equivalents al Zilog Z80 i es troben disponibles sota una llicència de tipus BSD. El codi font d'aquests nuclis està disponible tant a Verilog com a VHDL. Una vegada sintetitzada aquesta última versió pot funcionar fins a 35 MHz en una FPGA Xilinx Spartan II.

En l'actualitat la pròpia Zilog fabrica una versió millorada del Z80 anomenada eZ80, que funcionant a 50 MHz té un rendiment similar a un Z80 funcionant a 150 MHz i a més pot adreçar fins a 16 MB de memòria RAM estenent la grandària dels registres, davant dels 64 KB del Z80.

Existeixen dissenys de maquinari actuals que implementen un Z80 dins d'un xip programables programant part del xip perquè compleixi les funcions del Z80.

  • No tots els clons d'aquest microprocessador tenen connectat el pin NMI, per la qual cosa en intentar usar-lo en alguns models aquest fa cas omís.

Evolucions

Z180

Thumb
Un antic Z180 en un empaquetat PLCC (els més petits QFP i LQFP són més comuns avui en dia).
Thumb
Z8S180.

El Z180 és el successor del Z80. És compatible amb una llarga col·lecció de programari.[7] La família Z180 afegeix majors prestacions i funcions de perifèrics integrats com el generador de rellotge, comptadors/rellotges de 16 bits, controlador d'interrupcions, generadors d'estat d'espera, ports sèrie i un controlador DMA.[8] Usa cicles de lectura i escriptura separats, usant rellotges similars als del Z80 i als processadors Intel.[9] La MMU integrada té la capacitat d'adreçar fins a 1 MB de memòria. És possible configurar el Z180 perquè operi com un Hitachi HD64180.

Més informació Xip, Velocitat (MHz) ...
Xip Velocitat (MHz) Rellotges E/S Ctrl. comunicacions Uns altres
Z80180 6, 8, 102 N/SCPU1 MB MMU, 2xDMAs, 2xUARTs
Z80181 101 16CPU1 MB MMU, 2xDMAs, 2xUARTs
Z80182 16, 33, 200 Rellotge sèrie, 24ESCC, CSIO, UARTS180 Megacell, 2xESCC channels, 16550 MIMIC
Z80195 20, 334 7/24SCC, CSIO, UART
Z8L180 202 Rellotge sèrieCSIO, UART1 MB MMU, 2xDMAs, 2xUARTs, 3.3 V Operation
Z8L182 200 Rellotge sèrieESCC, CSIO, UARTS180 Megacell, 2x canals ESCC, 16550 MIMIC, operació a 3,3V
Z8S180 10, 20, 332 Rellotge sèrieUART, DMA, I2C, SPI1 MB MMU, 2xDMAs, 2xUARTs
Tanca

Z80182

El Z80182 és una versió millorada del Z80 i és part de la família Z180. Se li sobrenomena Controlador de perifèrics intel·ligents de Zilog (ZIP: Zilog Intelligent Peripheral Controller). També és completament estàtic (el rellotge pot ser parat i no es perden dades dels registres) i té una opció de baixa interferència electromagnètica que redueix el slew rate de les sortides.

El Z80182 pot operar a 33 MHz amb un oscil·lador extern operant a 5 volts, o a 20 MHz usant l'oscil·lador intern a 3,3 V.[10]

Hitachi HD64180

Hitachi HD64180
Thumb
Hitachi HD64180
Thumb
Hitachi HD64180 DIP64

El HD64180 és un microprocessador basat en el Z80 desenvolupat per Hitachi que inclou una MMU. L'HD64180 Super Z80 va ser posteriorment llicenciat a Zilog i venut amb el nom Z64180 incloent algunes millores com les presents en el Z180.

Z280

Thumb
El Z280 en un empaquetat PLCC

El Z280 va ser una millora de l'arquitectura Z80 presentada al juliol de 1987. Bàsicament és una versió CMOS lleugerament millorada de l'anterior Z800. Ambdues versions, el Z280 i el Z800, van ser fracassos comercials.[11]

Estructura

Malgrat ser un microprocessador de 8 bits, el Z80 pot manejar instruccions de 16 bits i pot adreçar fins a 64 KiB de RAM. Una de les característiques més ressenyables és que té les instruccions de l'Intel 8080 com a subconjunt, de manera que alguns ordinadors basats en Z80 podien executar programes dissenyats pel CP/M de l'8080. Això ha fet que els formats d'instrucció del Z80 siguin bastant complexos, ja que han de mantenir la seva compatibilitat amb el 8080. No obstant això el Z80 ha aconseguit millorar al microprocessador d'Intel en velocitat, ha afegit noves maneres d'adreçament i conté un joc d'instruccions més ampli.

Registres

Thumb
Estructura interna del Z80.

L'estructura de registres del Z80 està composta per un banc principal, un altre alternatiu i finalment un banc compost per registres especials.[12] L'existència del banc alternatiu millora la velocitat davant la presència de les interrupcions, ja que permet canviar des del banc principal a l'alternatiu. Els registres són:

  • A, B, C, D, E, H i L (banc principal)
  • A', B', C', D', E', H' i L' (banc alternatiu)
  • I, R, IX, IY, SP i PC (registres especials)

Els registres del banc principal són generals i de 8 bits. Es poden prendre per parelles, sent llavors IX i IY els registres índexs. El registre A serveix d'acumulador. El R emmagatzema el bloc de memòria al refresc de la qual es va a procedir. El SP és el punter de cim de pila. El PC és el comptador de programa. El F conté els flags o també anomenats bits de condició.

Registres primaris Registres alternatius
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| A |S Z - A - P N C| F | A' |S Z - A - P N C| F'
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| B | C | | B' | C' |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| D | E | | D' | E' |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| H | L | | H' | L' |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Registres índex
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IX |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IY |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Punter de pila i Comptador de programa
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SP | Punter de pila
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PC | Comptador de programa
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Registre d'interrupcions i
Registre de refresc de memòria
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| I | R |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Acumulador

El registre utilitzat per guardar la dada que s'està usant. És el registre més important, al costat del registre F (amb el qual forma el parell de registres AF). La majoria de les operacions matemàtiques i lògiques de 8 bits es realitzen a través d'aquest registre, d'aquí la seva importància.

Parell HL

És el parell de registres més versàtil, utilitzat sobretot per contenir adreces de memòria. En el registre simple L es col·loca el byte més baix (LOW en anglès) de l'adreça de memòria, i en H, es col·loca el byte més alt (HIGH en anglès) de l'adreça de memòria. Així mateix, és molt utilitzat per les trucades a subrutines BIOS (CALL) per a dades d'entrada/sortida de la subrutina anomenada. Algunes instruccions Assembler són específiques d'aquest parell de registres.

Parells BC i DE

S'utilitzen com a parells auxiliars d'HL en instruccions que manipulen blocs com LDI, LDIR, etc.

Registres indexats IX i IY

Són 2 registres de 16 bits. S'utilitzen com a registres base per apuntar a una adreça de memòria d'on es va a prendre una dada. S'indica un byte addicional que implica desplaçament.

  • Encara que no està documentat oficialment, es poden utilitzar com 2 registres de 8 bits independents, obtenint un total de 4 registres de 8 bits extres.

Punter de pila SP

Permet l'amidament de rutines. Apunta a una zona de memòria anomenada STACK que és una estructura de pila o LIFO.

Registres especials

  • Flag F: Indica condicions especials en realitzar operacions matemàtiques o lògiques.

Serveix com a conjunt de banderes, que ens indiquen la informació sobre les operacions que s'estan realitzant.[13][14] [15] [16]

  • Registre d'interrupcions I: S'utilitza per executar qualsevol subrutina com a resposta a una interrupció maquinari, utilitzant-se com a capdavanter I com la part alta de l'adreça i la dada que existeixi en el bus de dades com la part baixa, això permet manejar 128 interrupcions diferents.
  • Registre de refresc R: El valor del registre R es col·loca en el bus d'adreces mentre s'activa el senyal de refresc proporcionada per la CPU. Això ocorre mentre la CPU descodifica una instrucció, o un prefix d'instrucció.

Bits de condició (flags) del Z80

  • 0-C: Implic.
  • 1-N: Resta BCD, per a correcció amb DAA.
  • 2-P/V: Paritat/desbordament.
  • 4-H: Mitjà implic, per a correcció BCD amb DAA.
  • 6-Z: Zero.
  • 7-S: Signe.

Els bits 3 i 5 no s'utilitzen, però certes instruccions els modifiquen, encara que no estan oficialment documentats.

Pins

Els pins del Z80. Les línies del bus de direccions es veuen en vermell, les del bus de dades en blau i les del bus de control en color verd.

+--\/--+
<-- A11  1| |40 A10 --> 
<-- A12  2| |39 A9 --> 
<-- A13  3| |38 A8 --> 
<-- A14  4| |37 A7 --> 
<-- A15  5| |36 A6 --> 
--> CLK  6| |35 A5 --> 
<-> D4  7| |34 A4 --> 
<-> D3  8| |33 A3 --> 
<-> D5  9| Z80 |32 A2 --> 
<-> D6  10| |31 A1 --> 
+5V Vcc 11| |30 A0 --> 
<-> D2  12| |29 GND
<-> D7  13| |28 !RFSH --> 
<-> D0  14| |27 !M1 --> 
<-> D1  15| |26 !RESET <-- 
--> !INT  16| |25 !BUSRQ <-- 
--> !NMI  17| |24 !WAIT <-- 
<-- !HALT  18| |23 !BUSAK --> 
<-- !MREQ  19| |22 !WR --> 
<-- !IORQ  20| |21 !RD --> 
+------+

Vegeu també

Referències

Bibliografia

Enllaços externs

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.