Microprocesadores Microprocesadores El microprocesador Z80 Carlos Canto Q. Microprocesadores Microprocesadores Arquitectura del microprocesador Z80 Carlos Canto Q. Microprocesadores Microprocesadores ARQUITECTURA FUNDAMENTAL DEL MICROPROCESADOR Z80 REGISTROS DE PROPÓSITO GENERAL A B D H C E L D0-D7 BUS DE DATOS REGISTROS DE PROPÓSITO ESPECIAL INDICE IX INDICE IY PUNTERO DE PILA I PC A0-A15 R BUS DE DIRECCIONES CLK RESET WR UNIDAD LÓGICA ARITMÉTICA RD MREQ IORQ RFSH HALT CONTROL DEL SISTEMA BANDERAS CONTROL DE INTERRUPCIONES IFF1 IFF2 WAIT M1 BAK BRQ INT NMI Carlos Canto Q. Microprocesadores Microprocesadores ARQUITECTURA FUNDAMENTAL DEL MICROPROCESADOR Z80 Carlos Canto Q. Microprocesadores Microprocesadores ARQUITECTURA FUNDAMENTAL DEL MICROPROCESADOR Z80 Carlos Canto Q. Microprocesadores Microprocesadores ARQUITECTURA FUNDAMENTAL DEL MICROPROCESADOR Z80 Carlos Canto Q. Microprocesadores Microprocesadores ARQUITECTURA FUNDAMENTAL DEL MICROPROCESADOR Z80 Carlos Canto Q. Microprocesadores Microprocesadores ARQUITECTURA FUNDAMENTAL DEL MICROPROCESADOR Z80 Carlos Canto Q. Microprocesadores Microprocesadores Modelo de programación del z80 El Z80 cuenta con un total de 22 registros internos clasificados como: 9 De propósito General todos de 8 bits Un grupo de ellos constituyen los registros principales y se nominan: A,B,C,D,E,H,L, Flags otro grupo igual forman los registros alternos y se nominan como: A’,B’,C’,D’,E’,H’,L’,Flags’ Solamente uno de los dos grupos se puede activar a la vez se pueden agrupar en pares para contener datos de 16 bits o direcciones de memoria, los pares son: BC,DE,HL, y AF Carlos Canto Q. Microprocesadores Microprocesadores Registros de propósito especial I ( 8 bits ) R (7 bits) INDICE IX (16 bits) INDICE IY (16 bits) APUNTADOR DE PILA SP CONTADOR DE PROGRAMA PC 9 El PC es un registro de 16 bits que contiene 9 9 la dirección de la instrucción que va ser traída de la memoria. Siempre apunta al inicio de la siguiente instrucción. El PC se incrementa automáticamente en 1,2,3 ó 4 dependiendo del tamaño de la instrucción. Carlos Canto Q. Microprocesadores Microprocesadores Registros de propósito especial I ( 8 bits ) R (7 bits) INDICE IX (16 bits) INDICE IY (16 bits) APUNTADOR DE PILA SP CONTADOR DE PROGRAMA PC 9 Es un registro de 16 bits que contiene la dirección del último dato introducido al STACK o pila 9 se incrementa automáticamente al sacar (POP) un dato del stack 9 Se decrementa automáticamente al introducir (PUSH) un dato al stack . Carlos Canto Q. Microprocesadores Microprocesadores Registros de propósito especial I ( 8 bits ) R (7 bits) INDICE IX (16 bits) INDICE IY (16 bits) APUNTADOR DE PILA SP CONTADOR DE PROGRAMA PC 9 Registros de 16 bits que permiten el acceso a memoria 9 mediante el modo de direccionamiento indexado. Facilitan la manipulación de datos en tablas conteniendo la dirección base o de referencia a la que se le agregará el desplazamiento de la ubicación del dato para formar la dirección de memoria. Carlos Canto Q. Microprocesadores Microprocesadores Registros de propósito especial I ( 8 bits ) R (7 bits) INDICE IX (16 bits) INDICE IY (16 bits) APUNTADOR DE PILA SP CONTADOR DE PROGRAMA PC El registro I contiene el vector de interrupciones de 8 bits Este vector sumado al proporcionado por el periférico que requiere la interrupción forma la dirección efectiva del acceso a memoria. Carlos Canto Q. Microprocesadores Microprocesadores Registros de propósito especial I ( 8 bits ) R (7 bits) INDICE IX (16 bits) INDICE IY (16 bits) APUNTADOR DE PILA SP CONTADOR DE PROGRAMA PC 9 El registro R (REFRESCO) es de 7 bits 9 Se usa para refresco de la memoria RAM dinámica. Carlos Canto Q. Microprocesadores Microprocesadores El registro de banderas o Flags • Está formado por un grupo de flip flops que se agrupan como un registro para manipularlos juntos. • Cada bit o bandera indica una condición del resultado de alguna operación lógica o aritmética. • En algunos microprocesadores se conoce como registro de “STATUS DE PROGRAMA” o PSW. Carlos Canto Q. Microprocesadores Microprocesadores S Z X H X P/V N C Acarreo 9 La bandera de acarreo (Carry) se pone en uno para indicar que existe un acarreo en el bit más significativo del acumulador al hacer una operación de suma ó resta Carlos Canto Q. Microprocesadores Microprocesadores S Z X H X P/V N C Resta 9 ESTA BANDERA SE EMPLEA CON LAS OPERACIONES EN BCD DE SUMA Y RESTA . 9 ES UNO ANTE UNA RESTA (“BORROW”) Y CERO ANTE SUMA. Carlos Canto Q. Microprocesadores Microprocesadores S Z X H X P/V N C Paridad/Desbordamiento 9 Después de una operación lógica, indica con un “1 “ paridad par y con un “0” la paridad impar. 9 Después de una operación aritmética, indica con un “1” un desbordamiento u “overflow” . 9 Con 8 bits se puede representar cantidades entre 128 (80H) a +127(7FH) Carlos Canto Q. Microprocesadores Microprocesadores S Z X H X P/V N C Acarreo intermedio BCD 9 Para operaciones en BCD , indica con un uno que se ha producido acarreo en los bits 4 Carlos Canto Q. Microprocesadores Microprocesadores S Z X H X P/V N C Bandera Cero 9Se hace uno cuando el resultado de una operación es cero 9 o bien cuando el contenido del registro Acumulador es cero Carlos Canto Q. Microprocesadores Microprocesadores S Z X H X P/V N C Bandera signo 9 Se hace ·1· cuando el resultado de una operación es negativo 9 y cero si el resultado es positivo. 9 se puede pensar que es una copia del bit más significativo del resultado Carlos Canto Q. Microprocesadores Microprocesadores Ejemplo de la ejecución de una instrucción LD D,C ; DÅC TRANSFERIR EL VALOR DEL REGISTRO C AL REGISTRO D 1) Búsqueda de una Instruccón (FETCH) el PC es enviado a la memoria Carlos Canto Q. Microprocesadores Microprocesadores 2) El PC es incrementado Carlos Canto Q. Microprocesadores Microprocesadores 3) La instrucción llega de la memoria a IR (Instrucción Register) Carlos Canto Q. Microprocesadores Microprocesadores 4)El contenido de C es depositado en el TEMP (registro Temporal) Carlos Canto Q. Microprocesadores Microprocesadores 5) El contenido de TEMP se deposita en D Carlos Canto Q. Microprocesadores Microprocesadores Al final de la transferencia el contenido de C es copiado en D El contenido de D se pierde pero ahora tenemos dos copias del contenido de C Carlos Canto Q. Microprocesadores Microprocesadores Otro ejemplo: ADD A,B ; AÅA+B Existe una doble transferencia simultánea Carlos Canto Q. Microprocesadores Microprocesadores Fin de la ejecución de la instrucción Carlos Canto Q. Microprocesadores Microprocesadores El microprocesador Z80 está integrado en una pastilla de 40 pines. Estos terminales pueden agruparse funcionalmente como muestra la figura: Carlos Canto Q. Microprocesadores Microprocesadores Carlos Canto Q. Microprocesadores Microprocesadores Bus de direcciones El bus de direcciones está formado por 16 líneas que van desde la línea A0 hasta la línea A15. Estas líneas poseen la habilidad de “tri state”, de modo que cuando el bus de direcciones está inactivo, se encuentran en un estado de alta impedancia. Cuando el procesador maneja dispositivos de I/O, las 8 líneas menos significativas de este bus contienen la dirección del dispositivo, la cual puede tener un valor entre 0 y 255 (d). Por otro lado, las líneas menos significativas de este bus contienen, durante un lapso en ejecución da cada instrucción, el valor presente en el registro de Refresh de memoria R. Carlos Canto Q. Microprocesadores Microprocesadores Bus de datos Está formado por 8 líneas que van desde la línea D0 a la línea D7. Este bus es bidireccional permitiendo la transferencia de información desde la CPU hacía la memoria o dispositivos de I/O y viceversa. Es también un bus con”tristate”. Carlos Canto Q. Microprocesadores Microprocesadores Terminales para control de Memoria y puertos de E/S Carlos Canto Q. Microprocesadores Microprocesadores CICLO DE MAQUINA UNO (M1), Salida activa en nivel bajo, indica que en este ciclo de máquina uno el microprocesador va a obtener el código operacional de una instrucción, en las instrucciones que tienen un código operacional de 2 bytes esta señal se opera al obtener cada uno de los bytes del código operacional, al igual que para indicar el reconocimiento de un ciclo de interrupción cuando ocurre (IORQ)'. REQUERIMIENTO DE MEMORIA (MREQ)', Pin 19 Salida activa en nivel bajo, esta señal indica una petición que interrelaciona a la memoria con la CPU, obtiene una dirección valida de las líneas de direccionamiento, esta terminal tiene capacidad del tercer estado. Carlos Canto Q. Microprocesadores Microprocesadores REQUERIMIfNTO DE E/S (IORQ), Pin 20 Es salida triestado activa en nivel bajo, esta señal indica que la mitad baja del bus de direcciones mantiene una dirección válida de E/S, para efectuar una operación de lectura o escritura de E/S, se genera esta señal cuando el ciclo de maquina 1 (M1) reconoce una interrupción, indica que el vector de respuesta de la interrupción se coloca en el bus de datos, las operaciones de reconocimiento de interrupción ocurren durante el ciclo de maquina 1, mientras que las operaciones de E/S nunca se producen durante este ciclo Carlos Canto Q. Microprocesadores Microprocesadores LECTURA (RD), Pin 21 Salida triestado activa en nivel bajo, indica que la CPU desea leer datos desde la memoria de un dispositivo externo de E/S, el dispositivo E/S se direcciona a la memoria o al periférico, se usa esta terminal para dirigir los datos al bus de datos de la CPU. ESCRITURA (WR)', pin 22 Salida triestado activa en nivel bajo, indica que el bus de datos de la CPU va a obtener datos válidos para ser almacenados en la memoria o en algún dispositivo de E/S. Carlos Canto Q. Microprocesadores Microprocesadores REFRESCO DE LA MEMORIA DINÁMICA (RFSH)', Pin 28 Salida activa en nivel bajo, indica que los siete bits inferiores de las líneas de direccionamiento contienen una dirección válida de refresco de memoria, se utiliza para el mantenimiento de datos en memorias dinámicas, con esta se efectúa una lectura de refrescamiento para todas las memorias dinámicas. Carlos Canto Q. Microprocesadores Microprocesadores Terminales para control del Microprocesador Carlos Canto Q. Microprocesadores Microprocesadores PARO (HALT), Pin 18 Salida que activa en nivel bajo, indica que la CPU realiza una instrucción por software de paro (HALT), y que espera una interrupción (NMI)' o (INT)' antes de que continue la operación, mientras permanezca en este estado la CPU ejecuta operaciones NOP, para mantener activo el refresco de las memorias dinámicas, al aplicarse un reset se continua con la operación. ESPERA (WAIT), Pin 24 Es una entrada activa en nivel bajo, le indica al microprocesador que la memoria direccionada o los dispositivos periféricos de E/S no son tan rápidos como para realizar una transferencia de datos a la velocidad de la CPU, o no están listos para una transferencia de información, la CPU continua con el estado de espera durante todo el tiempo que esta terminal es activa, esto les permite a los otros dispositivos sincronizarse con la CPU. Carlos Canto Q. Microprocesadores Microprocesadores REQUISICIÓN DE INTERRUPCIÓN MASCARABLE (INT), Pin 16 Entrada activa en nivel bajo, esta terminal se acciona con dispositivos E/S externos, una requisición (INT)' se atiende al final de la instrucción que se ejecuta, si el enable interno del Flip Flop de interrupción IFF1 controlado por software se encuentra habilitado, y si la requisición de bus no esta activa, al aceptar la CPU una interrupción envía una señal de reconocimiento, la petición de E/S se realiza durante el ciclo de máquina 1, al principio del siguiente ciclo de instrucción, esta petición solo es valida bajo control del programa interno, reconociendo la CPU tres modos diferentes de interrupción. Carlos Canto Q. Microprocesadores Microprocesadores INTERRUPCIÓN NO MASCARABLE (NMI)', Pin 17 Entrada que se activa con un flanco de bajada mediante un impulso que identifica una interrupción obligada, posiciona al contador de programa (PC) en la dirección 0066h desde donde continua el proceso, esta tiene una prioridad más alta que la interrupción (INT)' y siempre se reconoce al final de la instrucción que se ejecuta, independientemente del estado del IFF1, el contador de programa PC se almacena automáticamente en el stack pointer externo de forma que el usuario regrese al programa en el mismo punto del que fué interrumpido. Carlos Canto Q. Microprocesadores Microprocesadores REINICIALIZACIÓN (RESET), Pin 26 Entrada que se activa con un flanco de bajada mediante un impulso, obliga a la CPU a reiniciar su actividad, coloca al contador de programa (PC) en la localidad de inicio de memoria 0000h, desde donde empieza el proceso, durante este tiempo el bus de direcciones y el bus de datos adquieren el estado de alta impedancia y todas las terminales de control de salida adquieren el estado inactivo. Carlos Canto Q. Microprocesadores Microprocesadores Terminales para control de Buses Carlos Canto Q. Microprocesadores Microprocesadores REQUERIMIENTO DE LAS TERMINALES DE LA CPU (BUSRQ), Pin 25 Esta entrada es activa en nivel bajo, le indica a la CPU que coloque todas sus líneas en estado de alta impedancia, (tan pronto el ciclo de maquina 1 actual termine), a petición del periférico externo que desea tomar el control del sistema, regresa el control a la CPU cuando esta señal (BUSRQ)' pasa al nivel alto, se utiliza para pedir que el bus de direcciones, el bus de datos y las terminales de salida triestado del bus de control vayan a un estado de alta impedancia de tal forma que otros dispositivos controlen esos buses. Carlos Canto Q. Microprocesadores Microprocesadores ENTREGA DE LAS TERMINALES DE LA CPU (BUSAK)', Pin 23 Salida activa en nivel bajo, es una indicación para el periférico que efectúa una petición (BUSRQ)' de que su petición ha sido concedida por parte del microprocesador, sirve para indicar al dispositivo que solicita este reconocimiento, que el bus de direcciones, el bus de datos y el bus de las terminales de control triestado han sido puestos en su estado de alta impedancia y que el dispositivo externo puede ahora controlar estas terminales. Carlos Canto Q. Microprocesadores Microprocesadores El reloj y la Alimentación de poder Carlos Canto Q. Microprocesadores Microprocesadores RELOJ (CK), Pin 6 Entrada configurada por un tren de impulsos útiles, es la diferencia que permite la secuencia de tiempos de operación, se implanta físicamente con un oscilador de onda cuadrada cuya frecuencia depende del tipo de características de la CPU Z80, requiere oscilación de una fase con niveles TTL, una forma de satisfacer todos los requerimientos de voltaje es por medio de una resistencia de activación "pull up" de 330 ohms conectada entre +Vcc y la terminal de salida de un oscilador implantado con circuitos TTL que generen oscilaciones. El Z80 requiere solamente una señal de reloj. La frecuencia de esta señal Ø para el Z80 es desde 2.5 Mhz , 4 MHhz y hasta 8 Mhz. Carlos Canto Q. Microprocesadores Microprocesadores ALIMENTACIÓN POSITIVA DE +5 V (Vcc) Pin 11 . Esta es una entrada de alimentación de tensión de +5 volts con un 5 % de tolerancia. El Z80 consume una corriente máxima de 200 mA. TIERRA (GND), Pin 29 Terminal de alimentación negativa, requiere un potencial de 0.0 volts que sirven de referencia para la interconexión de los dispositivos. Carlos Canto Q.