viernes, 13 de agosto de 2010

Descripcion del microprocesador Z80

Descripcion del microprocesador Z80.

DESCRIPCION GENERAL
Los registros internos contienen 208 bits de memoria lectura/escritura que son accesibles por el
programador. Estos registros incluyen 2 sets de 6 registros de propósito general, los cuales
Podrían ser usados individualmente como registros de 8 bits o como pares de registros de 16
bits.




Además tiene dos sets de registros acumulador y de bandera. Un grupo de instrucciones de
intercambio que hacen que el registro principal o alternativo sean accesibles al programador. El
set alternativo permite operaciones en modo foreground- background o podría ser reservado
para respuesta muy rápida de interrupciones.

El Z80 además contiene un Stack Pointer, contador de programas, 2 registros índices, un
registro de refresco (contador), y un registro de interrupciones.
La CPU es fácil de incorporar en un sistema, puesto que requiere una simple fuente de energía
de 5 volt.

Registros
Los registros constituyen una especie de pequeña memoria interna al microprocesador. El Z-80 tiene registros de 8 y 16 bits, si bien los de 8 bits se pueden agrupar de 2 en 2 para formar uno de 16 bits. Todas las operaciones que realiza el Z-80 se hacen entre números contenidos en los registros, o bien, entre un registro y una posición de memoria; por eso se dice que el Z-80 es un microprocesador orientado hacia los registros. La posibilidad de agrupar dos registros de 8 bits para formar uno de 16, permite al Z-80 realizar operaciones de 16 bits a pesar de ser un microprocesador de 8 bits.
El Z-80 tiene, en total, 18 registros de 8 bits y 4 registros de 16 bits. Algunos son de uso general y otros tienen asignadas funciones específicas.
Como se ve, los registros cumplen en Código Máquina una función similar a la de las variables en Basic. La configuración de registros del Z-80 se muestra .

Registros del Z-80.

FAMILIA DEL MICROPROCESADOR Z – 80
Zilog tiene diseñado cinco componentes que proporcionan un vasto soporte para el
Microprocesador Z – 80. Estos son:
• PIO (Paralled Input / Output), opera en ambos modos de transferencia: de datos I / O
(con hand shake), y en el modo bit (sin hand shake).
El PIO podría ser configurado como interfaz con dispositivos periféricos paralelos
standard como impresoras y teclados.
• CTC (Counter / Timer Circuit).
• DMA (Controlador de acceso directo a memoria), proporciona una puerta bidireccional
para operaciones de transferencia de datos y tiene la facultad de terminar la trayectoria
de datos como resultado de un acuerdo preestablecido.
• SIO (Serial Input / Output Controller), ofrece dos canales, capaces de operar en una
variedad de modos programables, para ambos es síncrona y asíncrona la comunicación,
incluyendo Bi – Sync y SDLC.
• DART (Dual Asynchonous Receiver / Trasmitter), dispotivo que provee comunicación
serie asíncrona a bajo costo. Tiene dos canales y una interface de control de modem
Completa.


Registros alternativos
El Z-80 tiene dos grupos de 8 registros de 8 bits cada uno, que pueden ser usados de forma alternativa mediante una instrucción de intercambio de contenidos. Cada uno de estos grupos lleva un acumulador, un indicador de estado y 6 registros de uso general.
ACUMULADOR (Acumulador "A"):
El Acumulador recibe los resultados de todas las operaciones aritméticas y lógicas que realiza en microprocesador que es, de hecho, el registro más usado del Z-80. Existen dos acumuladores, uno en cada grupo de registros alternativos (ver FIGURA 2) que se denominan respectivamente A y A'.
REGISTRO DE ESTADO (Flags "F"):
El registro de estado indica la ocurrencia de determinadas condiciones, tales como: paridad, cero, signo, acarreo, desbordamiento, que se producen tras una operación aritmética o lógica y que serán de gran utilidad en los saltos condicionales.
En la figura se puede ver la disposición de los distintos indicadores dentro del registro de estado.

Indicadores de estado en el registro "F".
Existen dos registros de estado, uno en cada grupo de registros alternativos, se denominan respectivamente F y F'.
REGISTROS DE USO GENERAL ("B", "C", "D", "E", "H", "L"):
Cada grupo de registros alternativos tiene 6 registros de uso general que se denominan respectivamente B, C, D, E, H, L y B', C', D', E', H', y L'. Pueden agruparse de dos en dos para formar los registros BC, DE, HL y BC', DE' y HL'. Una instrucción de intercambio de contenidos, permite seleccionar entre parejas de registros de uno u otro grupo.
Su aplicación es de uso general, si bien, algunos tienen funciones específicas asignadas en determinadas instrucciones, por ejemplo "HL" actúa como acumulador en las operaciones aritméticas de 16 bits, "B" actúa como contador en los bucles de iteración (instrucción DJNZ) y finalmente, en las transferencias de bloques, "HL" indica el origen, "DE" el destino y "BC" el número de bytes a transferir.
En el Sistema Operativo del Spectrum, el registro "BC" actúa como un puente de comunicación con el Basic, ya que cada vez que ejecutamos la función USR, lo que obtenemos como resultado es, precisamente, el contenido del registro "BC" en el momento de retornar, lo que nos permitirá pasar datos con facilidad desde Código Máquina a Basic.
Unidad Aritmética-Lógica
Otro componente fundamental del microprocesador es la ALU o Unidad Aritmética-Lógica que es la encargada de realizar todas las operaciones en el interior del microprocesador. Las operaciones que puede realizar son:


El desplazamiento consiste en una rotación, bit a bit, de un registro o una posición de memoria, puede incluir el indicador de acarreo del registro F. El efecto de rotar a la izquierda es el de multiplicar el número por 2, y el de rotarlo a la derecha es el de dividirlo por 2.
La comparación consiste en cotejar el acumulador con otro número y alterar los indicadores del registro F de acuerdo con el resultado de la comparación, permaneciendo inalterado el contenido del acumulador.
Probar un bit consiste en ver si es "uno" o "cero" y anotar el resultado en el indicador de cero del registro F.
Incrementar es sumar "1", decrementar es restar "1".
La suma y la resta pueden ser con o sin acarreo.
El ajuste decimal consiste en transformar el número Hexa contenido en el acumulador y comprendido entre "00" y "FF", en un número decimal codificado en binario (BCD) comprendido entre "00" y "99".
Registro de instrucciones
El registro de instrucciones no es accesible por el programador, se carga durante la lectura de una instrucción, con el contenido de la posición de memoria direccionada por el "PC", y retiene la instrucción hasta que es decodificada por el microprocesador.
Buses
Para comunicarse con la memoria y los periféricos, el Z-80 utiliza una serie de líneas eléctricas denominadas BUSES. Cada una de estas líneas se corresponde con una patilla del chip Z-80. Existen tres buses:
Bus de direcciones de 16 bits formado por 16 líneas eléctricas denominadas A0-A15.
Bus de datos de 8 bits, formado por 8 líneas eléctricas denominadas D0-D7.
Bus de control de 13 bits formado por 13 líneas eléctricas denominadas: M1,MREQ,IORQ,RD,WR,RFSH,HALT,WAIT,INT,NMI,RESET,BUSRQ y BUSAK.
Las tres patillas restantes hasta las 40 del chip son: la entrada de la señal de "reloj" (3,500,000 impulsos por segundo), la entrada de alimentación eléctrica (+5 voltios) y la conexión común a MASA.
Se dice que una entrada o salida está a nivel alto ("1") cuando su tensión con respecto a MASA es de +5V. Y se dice que está a nivel bajo ("0") cuando su tensión con respecto a MASA es de 0V.
Señales eléctricas del Z-80:

Configuración de patillas del Z-80.

Palabra de datos del Z-80
Como hemos visto anteriormente, el Z-80 es un microprocesador de 8 bits, esto quiere decir que cada vez que se accede a la memoria, lee un octeto completo, que puede ser un código de operación o un dato.
Un octeto puede almacenar 256 números distintos (2 elevado a 8) pero el Z-80 tiene más de 256 instrucciones diferentes, por lo que algunos códigos de operación ocupan más de un byte. Por otro lado, en un gran número de instrucciones, el operando se ensambla como uno o varios bytes que siguen al código de operación. En la figura se pueden ver los distintos formatos de instrucción del Z-80.


Formatos de instrucción del Z-80.



Ciclos o tiempos
Para realizar las operaciones secuencialmente, el Z-80 necesita sincronizar todas sus señales internas y externas y disponer, por tanto, de un patrón de tiempo. Es lo que se denomina: Reloj del microprocesador.
El reloj del microprocesador está constituido por un oscilador electrónico controlado por un cristal de cuarzo, que entrega tres millones y medio de impulsos por segundo (3.5 MHz). Estos impulsos se introducen en el Z-80 a través de la patilla 6 denominada "RELOJ", y el microprocesador utiliza un número determinado de estos impulsos para cada operación.
La primera versión del Z-80 no aceptaba señales de reloj superiores a 2.5 MHz.


 
Cronograma de un ciclo típico de instrucción.


Instrucciones del Z-80
El Z-80 puede ejecutar un gran número de instrucciones, podemos ordenarlas en los siguientes grupos:
CARGA E INTERCAMBIO
Permiten desplazar datos entre registros, o entre estos y posiciones de memoria. También se puede intercambiar el contenido de dos registros, o el de dos grupos alternativos.
ARITMETICAS Y LOGICAS
Permiten realizar operaciones aritméticas o lógicas entre el acumulador y un registro o posición de memoria. Los resultados se almacenan en el acumulador, y los indicadores del registro «F» se ponen a «1» o a «0» en función del resultado de la operación.
BUSQUEDA Y TRANSFERENCIA DE BLOQUES
Se trata de las más poderosas instrucciones del Z-80, es posible transferir todo un bloque de memoria con una sola instrucción; también es posible examinar todo un bloque de memoria para buscar un determinado dato de un byte.
ROTACION Y DESPLAZAMIENTO
Permiten la rotación bit a bit del dato almacenado en un registro o una posición de memoria, las rotaciones pueden incluir el indicador de acarreo del registro «F».
MANIPULACION DE BITS
Permiten tratar de forma independiente cada bit de un registro o una posición de memoria, es posible poner un bit a «1», ponerlo a «0» o examinar si es «1» o «0».
SALTO LLAMADA Y RETORNO
Permite alterar la secuencia normar del programa para saltar a otro lugar de la memoria o ejecutar una subrutina. También es posible retornar desde una subrutina al punto donde se la llamó.
ENTRADA Y SALIDA
Permiten leer y escribir datos en los ports de entrada/salida, con lo cual se comunica el ordenador con el mundo exterior.
CONTROL CPU
Se utilizan para controlar el propio funcionamiento del microprocesador, inhibir o habilitar interrupciones, cambiar el modo de interrupción, detener el funcionamiento del microprocesador, etc.

                                  http://www.speccy.org/curso-cm/contenido/cap3.html
        




No hay comentarios:

Publicar un comentario