Diferencia entre revisiones de «Zilog Z80»

De El Museo de los 8 bits
Saltar a: navegación, buscar
(Usos notables)
 
(7 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 
[[Image:Ic-photo-zilog-Z0840008PSC-Z80-CPU.png|thumb|right|280px|Zilog Z80 A.]]
 
[[Image:Ic-photo-zilog-Z0840008PSC-Z80-CPU.png|thumb|right|280px|Zilog Z80 A.]]
 
[[Imagen:Z84C0010FEC LQFP.png|thumb|right|230px|Un Z80 en encapsulado [[LQFP]].]]
 
[[Imagen:Z84C0010FEC LQFP.png|thumb|right|230px|Un Z80 en encapsulado [[LQFP]].]]
[[Image:NEC_D780C.jpg|thumb|255px|[[NEC Corporation|NEC]] [[NEC uPD780C|μPD780C]], clon del Z80 en la placa madre de un [[Sinclair ZX Spectrum]].]]
+
[[Image:NEC_D780C.jpg|thumb|255px|[[NEC µPD780C]], clon del Z80 en la placa madre de un [[Sinclair ZX Spectrum]].]]
 
[[Image:T34BM1.jpg|thumb|right|255px|El [[T34 (microprocessor)|T34BM1]], clon soviético del Z80.]]
 
[[Image:T34BM1.jpg|thumb|right|255px|El [[T34 (microprocessor)|T34BM1]], clon soviético del Z80.]]
 
[[Image:TMPZ84C015AF.png|thumb|right|255px|Toshiba TMPZ84C015 - un Z80 que incluye funciones de periféricos y otros en el mismo chip.]]
 
[[Image:TMPZ84C015AF.png|thumb|right|255px|Toshiba TMPZ84C015 - un Z80 que incluye funciones de periféricos y otros en el mismo chip.]]
Línea 9: Línea 9:
 
El '''Zilog Z80''' ('''Z80''') es un [[microprocesador]] de 8 [[bit]]s cuya [[arquitectura (informática)|arquitectura]] se encuentra a medio camino entre la organización de [[acumulador (informática)|acumulador]] y de registros de propósito general. Si consideramos al Z80 como procesador de arquitectura de registros generales se sitúa dentro del tipo de [[registro-memoria]].  
 
El '''Zilog Z80''' ('''Z80''') es un [[microprocesador]] de 8 [[bit]]s cuya [[arquitectura (informática)|arquitectura]] se encuentra a medio camino entre la organización de [[acumulador (informática)|acumulador]] y de registros de propósito general. Si consideramos al Z80 como procesador de arquitectura de registros generales se sitúa dentro del tipo de [[registro-memoria]].  
  
Fue lanzado al mercado en julio de [[1976]] por la compañía [[Zilog]], y se popularizó en los años 80 a través de ordenadores como el [[Amstrad]] CPC, el [[Sinclair ZX Spectrum]] o los ordenadores de sistema [[MSX]]. Es uno de los procesadores de más éxito del mercado, del cual se han producido infinidad de versiones clónicas, y sigue siendo usado de forma extensiva en la actualidad en multitud de [[dispositivo empotrado|dispositivos empotrados]].
+
Fue lanzado al mercado en julio de [[1976]] por la compañía [[Zilog]], y se popularizó en los años 80 a través de ordenadores como el [[Amstrad]] CPC, el [[Sinclair ZX Spectrum]] o los ordenadores de sistema [[MSX]]. Es uno de los procesadores de más éxito del mercado, del cual se han producido infinidad de versiones clónicas, y sigue siendo usado de forma extensiva en la actualidad en multitud de [[Sistema integrado|dispositivos empotrados]].
  
 
== Historia ==
 
== Historia ==
 
=== Introducción ===
 
=== Introducción ===
El Z80 fue diseñado principalmente por [[Federico Faggin]], que estuvo trabajando en [[Intel]] diseñando el [[Intel 8080]]. Cuando se terminó de producir, en [[1974]], [[Federico Faggin]] dejó Intel, fundó [[Zilog]] y comenzó a trabajar en el diseño de Z80 basándose en la experiencia adquirida creando el Intel 8080 y basándose en la estructura de éste último. Dos años después estaba a la venta el Z80.
+
El Z80 fue diseñado principalmente por [[Federico Faggin]], que estuvo trabajando en [[Intel]] como diseñador jefe del [[Intel 4004]] y del [[Intel 8080]]. Cuando se terminó de producir, en [[1974]], [[Federico Faggin]] dejó Intel, fundó [[Zilog]] y comenzó a trabajar en el diseño de Z80 basándose en la experiencia adquirida creando el Intel 8080 y basándose en la estructura de éste último. Dos años después estaba a la venta el Z80.
  
 
El Z80 estaba diseñado para ser compatible a nivel de código con el [[Intel 8080]], de forma que la mayoría de los programas para el 8080 pudieran funcionar en él, especialmente el [[sistema operativo]] [[CP/M]]
 
El Z80 estaba diseñado para ser compatible a nivel de código con el [[Intel 8080]], de forma que la mayoría de los programas para el 8080 pudieran funcionar en él, especialmente el [[sistema operativo]] [[CP/M]]
Línea 21: Línea 21:
 
* Un [[conjunto de instrucciones]] mejorado, incluyendo los nuevos registros índice IX e IY y las instrucciones necesarias para manejarlos.
 
* Un [[conjunto de instrucciones]] mejorado, incluyendo los nuevos registros índice IX e IY y las instrucciones necesarias para manejarlos.
 
* Dos bancos de registros que podían ser cambiados de forma rápida para acelerar la respuesta a [[interrupción|interrupciones]].
 
* Dos bancos de registros que podían ser cambiados de forma rápida para acelerar la respuesta a [[interrupción|interrupciones]].
* Instrucciones de movimiento, bloqueo de [[E/S]] y búsqueda de [[byte]]s.
+
* Instrucciones de movimiento de bloques, [[E/S]] de bloques y búsqueda de [[byte]]s.
 
* Instrucciones de manipulación de [[bit]]s.
 
* Instrucciones de manipulación de [[bit]]s.
 
* Un contador de direcciones para el refresco de la [[DRAM]] integrado, que en el 8080 tenía que ser proporcionado por el [[chipset|conjunto de circuitos de soporte]].
 
* Un contador de direcciones para el refresco de la [[DRAM]] integrado, que en el 8080 tenía que ser proporcionado por el [[chipset|conjunto de circuitos de soporte]].
* Alimentación a 5 [[voltio]]s.
+
* Alimentación única de 5 [[voltio]]s.
* Necesidad de menos [[chipset|circuitos auxiliares]] para la generación del reloj y el enlace con la memoria y la [[E/S]].
+
* Necesidad de menos [[chipset|circuitos auxiliares]], tanto para la generación de la señal de reloj como para el enlace con la memoria y la [[E/S]].
 
* Más [[barato]] que el Intel 8080.
 
* Más [[barato]] que el Intel 8080.
  
El Z80 eliminó rápidamente al Intel 8080 del mercado y se convirtió en uno de los procesadores de 8 bits más populares. Las primeras versiones funcionaban a 2,5 [[MHz]], pero su velocidad ha aumentado hasta los 20 MHz.
+
El Z80 eliminó rápidamente al Intel 8080 del mercado y se convirtió en uno de los procesadores de 8 bits más populares. Las primeras versiones funcionaban a 2,5 [[MHz]], pero su velocidad ha aumentado hasta los 20 MHz. Así, la versión más utilizada, el Z80A funcionaba a 4 [[MHz]].
  
 
En la actualidad Zilog sigue fabricando versiones del Z80 original y otros modelos compatibles con éste que mejoran las prestaciones.
 
En la actualidad Zilog sigue fabricando versiones del Z80 original y otros modelos compatibles con éste que mejoran las prestaciones.
  
 
=== Usos notables ===
 
=== Usos notables ===
A comienzos de los [[años 1980]] el Z80 o versiones clónicas del mismo fue usado en multitud de ordenadores domésticos, como la gama [[MSX]], el [[Radio Shack]] [[TRS-80]], el [[Sinclair]] [[ZX80]], [[ZX81]] y [[ZX Spectrum]]. También fue usado en el [[Osborne 1]], el [[Kaypro]] y otra gran cantidad de ordenadores empresariales que dominaban el mercado por aquella época y que usaban el [[ sistema operativo]] [[CP/M]].
+
A comienzos de los [[años 1980]] el Z80 o versiones clónicas del mismo fue usado en multitud de ordenadores domésticos, como la gama [[MSX]], el [[Radio Shack]] [[TRS-80]], el [[Sinclair ZX80]], [[Sinclair ZX81]] y [[ZX Spectrum]]. También fue usado en el [[Osborne 1]], el [[Kaypro]] y otra gran cantidad de ordenadores empresariales que dominaban el mercado por aquella época y que usaban el [[ sistema operativo]] [[CP/M]].
  
 
A mediados de los [[años 1980]] el Z80 fue usado en el [[Tatung Einstein]] y la familia de ordenadores domésticos y empresariales [[Amstrad CPC]] y [[Amstrad PCW]]. El Z80 también fue usado en los ordenadores [[Tiki 100]], que se empleaban en los colegios de [[Noruega]] por entonces.
 
A mediados de los [[años 1980]] el Z80 fue usado en el [[Tatung Einstein]] y la familia de ordenadores domésticos y empresariales [[Amstrad CPC]] y [[Amstrad PCW]]. El Z80 también fue usado en los ordenadores [[Tiki 100]], que se empleaban en los colegios de [[Noruega]] por entonces.
Línea 41: Línea 41:
 
Ya en los [[años 1990]] el Z80 ha sido usado en las [[videoconsola]]s [[Sega Master System]] y [[Sega Game Gear]]. Además las videoconsolas [[SNK Neo-Geo]] y la [[Sega Mega Drive]] y muchas máquinas arcade usan un Z80 como el procesador especializado en sonido.
 
Ya en los [[años 1990]] el Z80 ha sido usado en las [[videoconsola]]s [[Sega Master System]] y [[Sega Game Gear]]. Además las videoconsolas [[SNK Neo-Geo]] y la [[Sega Mega Drive]] y muchas máquinas arcade usan un Z80 como el procesador especializado en sonido.
  
Las [[Game Boy]] y [[Game Boy Color]] de [[Nintendo]] utilizan una variante del Z80 fabricada por [[Sharp]].
+
Las [[Game Boy]] y [[Game Boy Color]] de [[Nintendo]] utilizan una variante del Z80 fabricada por [[Sharp Corporation|Sharp]].
  
 
En la actualidad parte de la gama de [[calculadora]]s gráficas programables de [[Texas Instruments]] tales como las [[TI-82]], [[TI-83]], [[TI-85]], [[TI-86]] y sus sucesoras emplean una versión clónica del Z80 fabricada por NEC como procesador principal.
 
En la actualidad parte de la gama de [[calculadora]]s gráficas programables de [[Texas Instruments]] tales como las [[TI-82]], [[TI-83]], [[TI-85]], [[TI-86]] y sus sucesoras emplean una versión clónica del Z80 fabricada por NEC como procesador principal.
Línea 48: Línea 48:
  
 
=== Segundas fuentes y clónicos ===
 
=== Segundas fuentes y clónicos ===
[[Mostek]] y [[SGS]] fueron [[segunda fuente|segundas fuentes]] del Z80. [[Sharp]] y [[NEC]] fabrican clónicos del Z80. [[National Semiconductor]] fabricó un procesador clónico, el [[NSC800]], con tecnología [[CMOS]] pero que no era compatible pin a pin. [[Hitachi]] fabricó una versión con tecnología CMOS mejorada, cuya segunda fuente fue curiosamente la propia Zilog.
+
[[Mostek]] y [[SGS]] fueron [[segunda fuente|segundas fuentes]] del Z80 (Mostek MK3880 y SGS Z8400). [[Sharp Corporation]] y [[NEC]] fabrican clónicos del Z80 ([[Sharp LH-0080]] y [[NEC µPD780C]]). [[National Semiconductor]] fabricó un procesador clónico, el [[NSC800]], con tecnología [[CMOS]] pero que no era compatible pin a pin. [[Hitachi]] fabricó una versión con tecnología CMOS mejorada, cuya segunda fuente fue curiosamente la propia Zilog.
  
En la [[Alemania del Este]] se produjo una versión clónica del Z80 llamada [[U880]], que fue empleada en los sistemas informáticos de [[Robotron]] y de [[VEB Mikroelektronik Mühlhausen]], tales como las series [[KC85]] y en muchos ordenadores de fabricación casera. En [[Rumanía]] se fabricaron múltiples clónicos del Z80, tales como los [[HC85]], [[HC90]], [[HC91]], [[HC2000]] de la [[Felix Computers Factory]] y los [[TimS]] de la [[Universidad Técnica de Timisoara]]. También se crearon varias copias del Z80 en la [[Unión Soviética]], siendo el más conocido el [[T34]]
+
En la [[Alemania del Este]] se produjo una versión clónica del Z80 llamada [[U880]], que fue empleada en los sistemas informáticos de [[Robotron]] y de [[VEB Mikroelektronik Mühlhausen]], tales como las series [[KC85]] y en muchos ordenadores de fabricación casera.
  
Hoy en día existen dos núcleos de procesador llamados T80 y TV80 que son funcionalmente equivalentes al Zilog Z80 y se encuentran disponibles bajo una licencia tipo [[licencia BSD|BSD]]. El código fuente de éstos núcleos está disponible tanto en [[Verilog]] como en [[VHDL]]. Una vez sintetizada ésta última versión puede funcionar hasta 35 [[MHz]] en una [[FPGA]] [[Xilinx]] [[Spartan]] II.
+
En [[Rumanía]] se fabricó una versión clónica del Z80, el [[MMN80]], y que según algunas fuentes fue también fabricada en la ''ex'' Unión Soviética. Este microprocesador fue utilizado en la mayoría de ordenadores fabricados en este país, casi todos clones de los [[Sinclair]] [[Spectrum|ZX-Spectrum]]: [[Ice Felix]] [[HC85]], [[HC90]], [[HC91]], [[HC2000]], [[Datatim]]/[[Universidad Técnica de Timisoara]] [[TIM-S]], [[MicroTIM]] y [[MicroTIM+]] o los [[Intreprinderea Electronica]] [[CIP]], [[CIP-02]], [[CIP-03]], [[CIP-04]].
  
En la actualidad la propia Zilog fabrica una versión mejorada del Z80 llamada [[eZ80]], que funcionando a 50 MHz tiene un rendimiento similar a un Z80 funcionando a 150 MHz y además puede direccionar hasta 16 [[MB]] de [[RAM]] extendiendo el tamaño de los registros, frente a los 64 [[Kb]] del Z80.
+
También se crearon varias copias del Z80 en la [[Unión Soviética]], siendo el más conocido el [[T34]].
 +
 
 +
Hoy en día existen dos núcleos de procesador llamados T80 y TV80 que son funcionalmente equivalentes al Zilog Z80 y se encuentran disponibles bajo una licencia tipo [[licencia BSD|BSD]]. El código fuente de estos núcleos está disponible tanto en [[Verilog]] como en [[VHDL]]. Una vez sintetizada ésta última versión puede funcionar hasta 35 [[MHz]] en una [[FPGA]] [[Xilinx]] [[Spartan]] II.
 +
 
 +
En la actualidad la propia Zilog fabrica una versión mejorada del Z80 llamada [[eZ80]], que funcionando a 50 MHz tiene un rendimiento similar a un Z80 funcionando a 150 MHz y además puede direccionar hasta 16 [[MB]] de [[RAM]] extendiendo el tamaño de los registros, frente a los 64 [[KB]] del Z80.
  
 
== Estructura ==
 
== Estructura ==
A pesar de ser un microprocesador de 8 bits, el Z80 puede manejar instrucciones de 16 bits y puede direccionar hasta 64 [[Kb]] de [[RAM]]. Una de las características más reseñables es que tiene las instrucciones del [[Intel 8080]] como subconjunto, de modo que algunos ordenadores basados en Z80 podían ejecutar programas diseñados para el [[CP/M]] del [[Intel 8080|8080]]. Esto ha hecho que los formatos de instrucción del Z80 sean bastante complejos, ya que tienen que mantener su compatibilidad con el 8080. Sin embargo el Z80 ha consegido mejorar al microprocesador de Intel en velocidad, ha añadido nuevos modos de direccionamiento y contiene un juego de instrucciones más amplio.
+
A pesar de ser un microprocesador de 8 bits, el Z80 puede manejar instrucciones de 16 bits y puede direccionar hasta 64 [[KB]] de [[RAM]]. Una de las características más reseñables es que tiene las instrucciones del [[Intel 8080]] como subconjunto, de modo que algunos ordenadores basados en Z80 podían ejecutar programas diseñados para el [[CP/M]] del [[Intel 8080|8080]]. Esto ha hecho que los formatos de instrucción del Z80 sean bastante complejos, ya que tienen que mantener su compatibilidad con el 8080. Sin embargo el Z80 ha conseguido mejorar al microprocesador de Intel en velocidad, ha añadido nuevos modos de direccionamiento y contiene un juego de instrucciones más amplio.
  
 
=== Registros ===
 
=== Registros ===
La estructura de registros del Z80 esta compuesto por un banco principal, otro alternativo y por último un banco compuesto por registros especiales. La existencia del banco altenativo mejora la velocidad ante la presencia de las [[interrupción|interrupciones]] ya que permite cambiar desde el banco principal al alternativo. Los registros son:
+
La estructura de registros del Z80 esta compuesto por un banco principal, otro alternativo y por último un banco compuesto por registros especiales. La existencia del banco alternativo mejora la velocidad ante la presencia de las [[interrupción|interrupciones]] ya que permite cambiar desde el banco principal al alternativo. Los registros son:
  
 
*A, B, C, D, E, H y L (banco principal)
 
*A, B, C, D, E, H y L (banco principal)
Línea 130: Línea 134:
  
 
=== Patillaje ===
 
=== Patillaje ===
 
+
 +
Patillas del Z80. Las líneas del [[bus de direcciones]] se ven en rojo, las del [[bus de datos]] en azul y las del [[bus de control]] en verde.
 
             +--\/--+
 
             +--\/--+
  <-- A11    1|      |40 A10    -->
+
  <Font Color=red><-- A11</Font>   1|      |40 <Font Color=red>A10    --></Font>
  <-- A12    2|      |39 A9    -->
+
  <Font Color=red><-- A12</Font>   2|      |39 <Font Color=red>A9    --></Font>
  <-- A13    3|      |38 A8    -->
+
  <Font Color=red><-- A13</Font>   3|      |38 <Font Color=red>A8    --></Font>
  <-- A14    4|      |37 A7    -->
+
  <Font Color=red><-- A14</Font>   4|      |37 <Font Color=red>A7    --></Font>
  <-- A15    5|      |36 A6    -->
+
  <Font Color=red><-- A15</Font>   5|      |36 <Font Color=red>A6    --></Font>
  --> CLK    6|      |35 A5    -->
+
  <Font Color=green>--> CLK</Font>   6|      |35 <Font Color=red>A5    --></Font>
  <-> D4    7|      |34 A4    -->
+
  <Font Color=blue><-> D4</Font>     7|      |34 <Font Color=red>A4    --></Font>
  <-> D3    8|      |33 A3    -->
+
  <Font Color=blue><-> D3</Font>     8|      |33 <Font Color=red>A3    --></Font>
  <-> D5    9| Z80  |32 A2    -->
+
  <Font Color=blue><-> D5</Font>     9| Z80  |32 <Font Color=red>A2    --></Font>
  <-> D6    10|      |31 A1    -->
+
  <Font Color=blue><-> D6</Font>   10|      |31 <Font Color=red>A1    --></Font>
  +5V Vcc  11|      |30 A0    -->
+
  +5V Vcc  11|      |30 <Font Color=red>A0    --></Font>
  <-> D2    12|      |29 GND
+
  <Font Color=blue><-> D2</Font>   12|      |29 GND
  <-> D7    13|      |28 !RFSH  -->
+
  <Font Color=blue><-> D7</Font>   13|      |28 <Font Color=green>!RFSH  --></Font>
  <-> D0    14|      |27 !M1    -->
+
  <Font Color=blue><-> D0</Font>   14|      |27 <Font Color=green>!M1    --></Font>
  <-> D1    15|      |26 !RESET <--
+
  <Font Color=blue><-> D1</Font>   15|      |26 <Font Color=green>!RESET <--</Font>
  --> !INT  16|      |25 !BUSRQ <--
+
  <Font Color=green>--> !INT</Font> 16|      |25 <Font Color=green>!BUSRQ <--</Font>
  --> !NMI  17|      |24 !WAIT  <--
+
  <Font Color=green>--> !NMI</Font> 17|      |24 <Font Color=green>!WAIT  <--</Font>
  <-- !HALT 18|      |23 !BUSAK -->
+
  <Font Color=green><-- !HALT</Font> 18|      |23 <Font Color=green>!BUSAK --></Font>
  <-- !MREQ 19|      |22 !WR    -->
+
  <Font Color=green><-- !MREQ</Font> 19|      |22 <Font Color=green>!WR    --></Font>
  <-- !IORQ 20|      |21 !RD    -->
+
  <Font Color=green><-- !IORQ</Font> 20|      |21 <Font Color=green>!RD    --></Font>
 
             +------+
 
             +------+
  
Línea 161: Línea 166:
 
{{Procesadores Zilog}}
 
{{Procesadores Zilog}}
  
== Enlaces a Wikipedia ==
+
[[Categoría:Microprocesadores ZiLOG]]
*{{w|cs|Z80}}
+
*{{w|da|Z80}}
+
*{{w|de|Zilog_Z80}}
+
*{{w|en|Zilog_Z80}}
+
*{{w|es|Zilog_Z80}}
+
*{{w|fi|Zilog_Z80}}
+
*{{w|fr|Zilog_Z80}}
+
*{{w|id|Zilog_Z80}}
+
*{{w|it|Zilog_Z80}}
+
*{{w|ja|Z80}}
+
*{{w|ko|자일로그_Z80}}
+
*{{w|nl|Z80}}
+
*{{w|nn|Zilog_Z80}}
+
*{{w|pl|Zilog_Z80}}
+
*{{w|pt|Z-80A}}
+
*{{w|ru|Zilog_Z80}}
+
*{{w|sk|Zilog_Z80}}
+
*{{w|sv|Zilog_Z80}}
+
*{{w|vec|Zilog_z80}}
+
  
  
[[Categoría:Microprocesadores ZiLOG]]
+
[[ar:معالج زد 80]]
 +
[[ca:Zilog Z80]]
 +
[[cs:Z80]]
 +
[[da:Z80]]
 +
[[de:Zilog Z80]]
 +
[[en:Zilog Z80]]
 +
[[es:Zilog Z80]]
 +
[[fi:Zilog Z80]]
 +
[[fr:Zilog Z80]]
 +
[[hu:Zilog Z80]]
 +
[[id:Zilog Z80]]
 +
[[it:Zilog Z80]]
 +
[[ja:Z80]]
 +
[[ko:자일로그 Z80]]
 +
[[nl:Z80]]
 +
[[nn:Zilog Z80]]
 +
[[no:Zilog Z80]]
 +
[[pl:Zilog Z80]]
 +
[[pt:Zilog Z80]]
 +
[[ro:Z80]]
 +
[[ru:Zilog Z80]]
 +
[[simple:Z80]]
 +
[[sk:Zilog Z80]]
 +
[[sv:Zilog Z80]]
 +
[[vec:Zilog z80]]
 +
[[zh:Zilog Z80]]

Última revisión de 21:12 2 feb 2009

Zilog Z80 A.
Un Z80 en encapsulado LQFP.
NEC µPD780C, clon del Z80 en la placa madre de un Sinclair ZX Spectrum.
El T34BM1, clon soviético del Z80.
Toshiba TMPZ84C015 - un Z80 que incluye funciones de periféricos y otros en el mismo chip.
Hitachi HD64180


El Zilog Z80 (Z80) es un microprocesador de 8 bits cuya arquitectura se encuentra a medio camino entre la organización de acumulador y de registros de propósito general. Si consideramos al Z80 como procesador de arquitectura de registros generales se sitúa dentro del tipo de registro-memoria.

Fue lanzado al mercado en julio de 1976 por la compañía Zilog, y se popularizó en los años 80 a través de ordenadores como el Amstrad CPC, el Sinclair ZX Spectrum o los ordenadores de sistema MSX. Es uno de los procesadores de más éxito del mercado, del cual se han producido infinidad de versiones clónicas, y sigue siendo usado de forma extensiva en la actualidad en multitud de dispositivos empotrados.

Historia

Introducción

El Z80 fue diseñado principalmente por Federico Faggin, que estuvo trabajando en Intel como diseñador jefe del Intel 4004 y del Intel 8080. Cuando se terminó de producir, en 1974, Federico Faggin dejó Intel, fundó Zilog y comenzó a trabajar en el diseño de Z80 basándose en la experiencia adquirida creando el Intel 8080 y basándose en la estructura de éste último. Dos años después estaba a la venta el Z80.

El Z80 estaba diseñado para ser compatible a nivel de código con el Intel 8080, de forma que la mayoría de los programas para el 8080 pudieran funcionar en él, especialmente el sistema operativo CP/M

El Z80 tenía ocho mejoras fundamentales respecto al Intel 8080:

  • Un conjunto de instrucciones mejorado, incluyendo los nuevos registros índice IX e IY y las instrucciones necesarias para manejarlos.
  • Dos bancos de registros que podían ser cambiados de forma rápida para acelerar la respuesta a interrupciones.
  • Instrucciones de movimiento de bloques, E/S de bloques y búsqueda de bytes.
  • Instrucciones de manipulación de bits.
  • Un contador de direcciones para el refresco de la DRAM integrado, que en el 8080 tenía que ser proporcionado por el conjunto de circuitos de soporte.
  • Alimentación única de 5 voltios.
  • Necesidad de menos circuitos auxiliares, tanto para la generación de la señal de reloj como para el enlace con la memoria y la E/S.
  • Más barato que el Intel 8080.

El Z80 eliminó rápidamente al Intel 8080 del mercado y se convirtió en uno de los procesadores de 8 bits más populares. Las primeras versiones funcionaban a 2,5 MHz, pero su velocidad ha aumentado hasta los 20 MHz. Así, la versión más utilizada, el Z80A funcionaba a 4 MHz.

En la actualidad Zilog sigue fabricando versiones del Z80 original y otros modelos compatibles con éste que mejoran las prestaciones.

Usos notables

A comienzos de los años 1980 el Z80 o versiones clónicas del mismo fue usado en multitud de ordenadores domésticos, como la gama MSX, el Radio Shack TRS-80, el Sinclair ZX80, Sinclair ZX81 y ZX Spectrum. También fue usado en el Osborne 1, el Kaypro y otra gran cantidad de ordenadores empresariales que dominaban el mercado por aquella época y que usaban el sistema operativo CP/M.

A mediados de los años 1980 el Z80 fue usado en el Tatung Einstein y la familia de ordenadores domésticos y empresariales Amstrad CPC y Amstrad PCW. El Z80 también fue usado en los ordenadores Tiki 100, que se empleaban en los colegios de Noruega por entonces.

Tal fue la popularidad del Z80 y el CP/M que el Commodore 128 incluía un Z80 junto al MOS Technology 8502 principal para aumentar la compatibilidad, y otros ordenadores basados en el MOS Technology 6502 o 6510 que ya estaban en el mercado, como el BBC Micro, el Apple II y el Commodore 64 podían ser ampliados mediante una tarjeta o cartucho que contenía un procesador Z80.

Ya en los años 1990 el Z80 ha sido usado en las videoconsolas Sega Master System y Sega Game Gear. Además las videoconsolas SNK Neo-Geo y la Sega Mega Drive y muchas máquinas arcade usan un Z80 como el procesador especializado en sonido.

Las Game Boy y Game Boy Color de Nintendo utilizan una variante del Z80 fabricada por Sharp.

En la actualidad parte de la gama de calculadoras gráficas programables de Texas Instruments tales como las TI-82, TI-83, TI-85, TI-86 y sus sucesoras emplean una versión clónica del Z80 fabricada por NEC como procesador principal.

Además el Z80 también es un microprocesador popular para ser usado en sistemas empotrados, campo donde se emplea de manera extensiva.

Segundas fuentes y clónicos

Mostek y SGS fueron segundas fuentes del Z80 (Mostek MK3880 y SGS Z8400). Sharp Corporation y NEC fabrican clónicos del Z80 (Sharp LH-0080 y NEC µPD780C). National Semiconductor fabricó un procesador clónico, el NSC800, con tecnología CMOS pero que no era compatible pin a pin. Hitachi fabricó una versión con tecnología CMOS mejorada, cuya segunda fuente fue curiosamente la propia Zilog.

En la Alemania del Este se produjo una versión clónica del Z80 llamada U880, que fue empleada en los sistemas informáticos de Robotron y de VEB Mikroelektronik Mühlhausen, tales como las series KC85 y en muchos ordenadores de fabricación casera.

En Rumanía se fabricó una versión clónica del Z80, el MMN80, y que según algunas fuentes fue también fabricada en la ex Unión Soviética. Este microprocesador fue utilizado en la mayoría de ordenadores fabricados en este país, casi todos clones de los Sinclair ZX-Spectrum: Ice Felix HC85, HC90, HC91, HC2000, Datatim/Universidad Técnica de Timisoara TIM-S, MicroTIM y MicroTIM+ o los Intreprinderea Electronica CIP, CIP-02, CIP-03, CIP-04.

También se crearon varias copias del Z80 en la Unión Soviética, siendo el más conocido el T34.

Hoy en día existen dos núcleos de procesador llamados T80 y TV80 que son funcionalmente equivalentes al Zilog Z80 y se encuentran disponibles bajo una licencia tipo BSD. El código fuente de estos núcleos está disponible tanto en Verilog como en VHDL. Una vez sintetizada ésta última versión puede funcionar hasta 35 MHz en una FPGA Xilinx Spartan II.

En la actualidad la propia Zilog fabrica una versión mejorada del Z80 llamada eZ80, que funcionando a 50 MHz tiene un rendimiento similar a un Z80 funcionando a 150 MHz y además puede direccionar hasta 16 MB de RAM extendiendo el tamaño de los registros, frente a los 64 KB del Z80.

Estructura

A pesar de ser un microprocesador de 8 bits, el Z80 puede manejar instrucciones de 16 bits y puede direccionar hasta 64 KB de RAM. Una de las características más reseñables es que tiene las instrucciones del Intel 8080 como subconjunto, de modo que algunos ordenadores basados en Z80 podían ejecutar programas diseñados para el CP/M del 8080. Esto ha hecho que los formatos de instrucción del Z80 sean bastante complejos, ya que tienen que mantener su compatibilidad con el 8080. Sin embargo el Z80 ha conseguido mejorar al microprocesador de Intel en velocidad, ha añadido nuevos modos de direccionamiento y contiene un juego de instrucciones más amplio.

Registros

La estructura de registros del Z80 esta compuesto por un banco principal, otro alternativo y por último un banco compuesto por registros especiales. La existencia del banco alternativo mejora la velocidad ante la presencia de las interrupciones ya que permite cambiar desde el banco principal al alternativo. Los registros son:

  • A, B, C, D, E, H y L (banco principal)
  • A', B', C', D', E', H' y L' (banco alternativo)
  • I, R, IX, IY, SP y PC (registros especiales)

Los registros del banco principal son generales y de 8 bits. Se pueden tomar por parejas, siendo entonces IX e IY los registros índices. El registro A sirve de acumulador. El R almacena el bloque de memoria a cuyo refresco se va a proceder. El SP es el puntero de cima de pila. El PC es el contador de programa. El F contiene los flags o también llamados bits de condición.

Registros primarios                  Registros alternativos
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       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'      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Registros índice
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              IX               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              IY               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Puntero de pila y Contador de programa
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              SP               | Puntero de pila
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              PC               | Contador de programa
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Registro de interrupciones y
Registro de refresco de memoria
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       I       |       R       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Acumulador

El acumulador A es el registro más utilizado porque contiene el resultado de las operaciones aritméticas y lógicas realizadas por la ALU.

Par HL

Es el par de registros más versátil, utilizado sobre todo para contener direcciones de memoria.

Pares BC y DE

Se utilizan como pares auxiliares de HL en instrucciones que manipulan bloques como LDI, LDIR, etc...

Registros indexados IX e IY

Se utilizan como registros base para apuntar a una dirección de memoria de donde se va a tomar un dato. Se indica un byte adicional que implica desplazamiento.

Puntero de pila SP

Permite el anidamiento de rutinas. Apunta a una zona de memoria llamada STACK que es una estructura de pila o LIFO.

Registros especiales

  • Flag F: Indica condiciones especiales al realizar operaciones matemáticas o lógicas.
  • Registro de interrupciones I: Se utiliza para ejecutar cualquier subritina como respuesta a una interrupción hardware.
  • Registro de refresco R: El valor del registro R se coloca en el bus de direcciones mientras se activa la señal de refresco proporcionada por la CPU. Esto ocurre mientras la CPU decodifica una instrucción.

Bits de condición (flags) del Z80

  • 0-C: Acarreo.
  • 1-P/V: Paridad/desbordamiento.
  • 6-Z: Cero.
  • 7-S: Signo.
  • 1-N: Resta BCD, para corrección con DAA.
  • 4-H: Medio acarreo, para corrección BCD con DAA.

Patillaje

Patillas del Z80. Las líneas del bus de direcciones se ven en rojo, las del bus de datos en azul y las del bus de control en verde.

            +--\/--+
<-- 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    -->
            +------+

Enlaces externos


Microprocesadores de ZiLOG Clónicos

Serie Z80: Z80 | Z180 | Z280 | Z380 | Z800 | eZ80
Serie Z8000: Z8000 | Z80000 | Z8

Serie Z80: NEC µPD780C | Sharp LH-0080 | T34
ASCII R800 | U880