Está en la página 1de 47

1

UNIDAD 3
ARQUITECTURA DEL Z80
Microprocesadores
Otoño 2011
Contenido
2

Arquitectura interna del Z-80

Interface

Ciclos de máquina y temporización del bus de


comunicación.

Conjunto de Instrucciones
Arquitectura del Z80
3

 El microprocesador Z80 fue fabricado por ZILOG en


1976, fue diseñado para ser compatible con INTEL
8080

 El Z80 es un microprocesador de 8 bits de propósito


general con 16 líneas de dirección.

 Empaquetado en un dual-in-line package (DIP)

 Las rangos de frecuencia de la familia Z80 van de


2.5MHz a 8MHz
Modelo de Hardware Z80
4

 Las señales de interfaz del microprocesador se


clasifican en 6 grupos
Bus de dirección

Bus de datos

Señales de control
Interfaz
Solicitud Externa
Reconocimiento de Solicitud y
señales especiales
Señales de potencia y
frecuencia
Modelo de Hardware del Z80
5

 Bus de dirección
 Tiene 16 líneas unidireccionales
 Es capaz de direccionar 216 = 64K

 Es usado para enviar las direcciones de memoria o de


los dispositivos de I/O
 Bus de datos
 Consiste en 8 líneas bidireccionales
 Usado para transferencia de datos desde el MPU
hacia la memoria o dispositivos I/O
Señales de Control y Estado
6

Señales de Estado Señales de Control

 Machine Cycle One (M1)  Read (RD)


 Indica cuando un opcode ha
sido adquirido  Indica que el microprocesador
esta listo para leer datos de
 Memory Request (MREQ)
memoria o de un dispositivo
 Indica cuando el bus tiene una
dirección de memoria valida de I/O
 I/O Request (IORQ)  Write (WR)
 Indica cuando la parte baja  Indica que el microprocesador
del bus (A7 – A0) tiene una esta listo para escribir datos
dirección valida asociada a
un dispositivo de I/O en la memoria o en un
dispositivo de I/O
Solicitud Externa
7

 Reset
 Cuando esta señal se activa, el Program Counter (PC),
Interrupt register (I) y el memory refresh register (R) son
puesto a cero
 El bus de dirección y datos se encuentra en el estado
de alta impedancia durante el reset.
 Todas las señales de control se inactivan
 La señal de RESET se activa externamente por medio
de un switch
 Se debe activar por al menos 3 ciclos de reloj para
que el proceso de reset sea finalizado
Solicitud Externa
8

 Interrupt Request
 Esta señal de interrupción es generada por un dispositivo de
I/O
 Cuando el microprocesador acepta esta solicitud, activa la
señal IORQ para indicar que la solicitud ha sido reconocida
 Esta interrupción es enmascarable, esto significa que puede
ser desactivada por software
 Nonmaskarable Interrupt
 Esta interrupción no puede ser desactivada por software
 Se utiliza para implementar señales de procedimientos de
emergencia
Solicitud Externa
9

 Bus Request
 Un dispositivo de I/O puede hacer solicitud del bus de
datos, dirección y control activando esta señal
 El dispositivo externo puede usar el bus y cuando ha
terminado su operación regresa el control al
microprocesador
 Wait
 Esta señal es usada por la memoria y los dispositivos de
I/O para extender las operaciones del Z80
 Esta señal es usada cuando la memoria o los dispositivos de
I/O son mas lentos que el Z80
 El Z80 introduce ciclos de espera hasta que la dirección en
el bus de direcciones es valida
Reconocimiento de Solicitud y Señales
10
Especiales
 Solamente las señales de Bus Request e Interrupt
requieren reconocimiento.
 La Interrupción es reconocida por medio de las
señales IORQ y Machine cycle one (M1)
 Bus request es reconocido por Bus Acknowledge
(BUSAK)
 BUSAK indica que el bus de datos, direcciones, y las
señales de control han entrado en un estado de
alta impedancia. Por lo tanto pueden ser usadas
por el dispositivo solicitante.
Señales especiales
11

 HALT, indica que el MPU ha ejecutado una


instrucción para detener su operación.

 Refresh, indica que el bus de direcciones A7-A0


tiene una dirección de memoria actualizada.
 Estaseñal se usa en conjunción con Memory Request
para refrescar el contenido de una localidad de
memoria
 EL Z80 usa un reloj de una sola fase y su
alimentación es de 5V
Estructura Interna del Z80
12

 Registros de propósito general


 Acumulador
 Banderas
 Conjunto de Registros Alternativos
 Registros Apuntadores a Memoria
 Registros Índice
 Apuntador a la Pila (Stack)
 Contador del Programa
 Registros de Propósito Especifico
Datapath Simplificado
13
Registros
14

 Registros de Propósito General


 El Z80 tiene 6 registros de propósito general llamados
B,C, D, E, H, L
 Estos registros son de 8 bits y son usados para
almacenar datos durante la ejecución del programa
 Puede se combinados en pares para realizar
operaciones de 16 bits o almacenar direcciones de
memoria, BC, DE, HL
 Estos registros se usan para cargar o copiar datos de
la memoria.
Acumulador
15

 El acumulador es un registro de 8 bits que es parte


de la ALU y se identifica como el registro A

 Este registro se utiliza para almacenar datos y


para realizar operaciones matemáticas y lógicas.

 El resultado de las operaciones realizadas en la


ALU es almacenado en el acumulador
Banderas
16

 ALU incluye 6 flip-flops que se modifican de


acuerdo a las condiciones después de que las
operaciones de la ALU han sido ejecutadas.
 Estos flip-flops se conocen como banderas
 Carry (C)
 Half – Carry (H) D7 D0

 Suma o Resta (N) S Z H P/V N C


 Signo (S)

 Cero (Z)

 Paridad, Overflow (P/V)


Conjunto de Registros Alternativos
17

 El Z80 incluye un conjunto de registros alternativos


referenciados como B’, C’ ,D’, E’, H’, L’ y el
acumulador A’ y el registro de banderas F’

 Estos registros no están disponibles para el


programador

 Sin embargo las instrucciones de intercambio


utilizan estos registros para el intercambio de datos
Apuntadores de Memoria
18

 El Z80 incluye 4 registros de 16 bits y estos registros


son usados para almacenar las direcciones de
memoria y son llamados apuntadores a memoria.

 Para leer o escribir datos (o instrucciones), el MPU


debe identificar la localidad de memoria por medio
de su dirección.

 Estos apuntadores se utilizan para la lectura y


escritura de datos a memoria
Registro Índice
19

 El Z80 tiene dos registros de 16 bits llamados


registros índice

 Los registros índice identifican direcciones de


memoria para la transferencia de datos

 Los registros son referenciados como IX, IY


Apuntador al Stack
20

 El apuntador al stak es un registro de 16 bits que


apunta a una sección de memoria llamada stack

 El stack es una área de memoria localizada en la


RAM, el principio del stack es definido por la
dirección de memoria almacenada en el apuntador.

 El stack se utiliza para pasar parámetros a las


subrutinas así como datos temporales de las
subroutinas
Contador de Programa
21

 El contador del programa es un registro de 16 bit.

 El microprocesador utiliza este registro para


secuenciar la ejecución de instrucciones

 La función del PC es apunta a la dirección de


memoria donde el próximo byte será adquirido

 El microprocesador adquiere un byte de memoria e


incrementa el PC (PC = PC + 1) para que apunte a
la siguiente instrucción.
Registros de Propósito Especifico
22

 El Z80 incluye dos registros de propósito especifico


que normalmente están ausentes en otros
microprocesadores

 Estos registro son


 Vector de Interrupción
 Registro de Refresco de Memoria
Conjunto de Registros
23

Acumulador A Banderas F Acumulador A’ Banderas F’


B C B’ C’
D E D’ E’
H L H’ L’
Registro Índice (IX)
Registro Índice (IY) D7 D0
Apuntador al Stack (SP)
Contador de Programa (PC)
S Z H P/V N C
Vector de Interrupción (I) Refresco de Memoria (R)
Datapath del Z80
24
Ciclos de Maquina
25

 El microprocesador Z80 esta diseñado para


ejecutar 158 instrucciones diferentes
 Cada instrucción tiene dos partes
 Operational Code (OpCode)
 Es la identificación de la instrucción
 Operandos
 Esel dato sobre el cual se va a realizar el comando
 Puede ser un byte o el contenido de un registro

 Una instrucción puede contener uno o mas bytes


Ciclos de Maquina
26

 Para entender las operaciones que realiza el MPU


debemos definir tres conceptos básicos
 Ciclos de Instrucción
 Es el tiempo requerido para la ejecución de una instrucción
 En el Z80, los ciclos de instrucción van de 1 a 6 ciclos de
máquina
 Ciclos de Maquina
 Esel tiempo requerido para realizar una operación de
acceso a memoria, acceso a un dispositivo de I/O o solicitud
externa
 Los ciclos de maquina van de 1 a 6 estados-T
Ciclos de Maquina
27

 Estados-T
 Ciclo de reloj
Total M-
Instruction M1 M2 M3 M4 M5 M6
cycles
1 INC BC opcode

2 ADD A,n opcode n

3 ADD HL,DE opcode internal internal

4 SET b,(HL) prefix opcode R(HL), set W(HL)


LD
5 prefix opcode d n,add W(IX+d)
(IX+d),n
6 INC (IY+d) prefix opcode d add R(IY+d),inc W(IY+d)
Las funciones de comunicación
28

 Las funciones de comunicación del MPU se clasifican


en tres categorías básicas
 Leer y escribir memoria
 Leer y escribir en dispositivos de I/O

 Reconocimiento de Solicitud Externa

 Cada instrucción consiste de uno o mas ciclos de


maquina
Ciclos de Maquina y Señales de
29
Control
Ciclos de Maquina M1 MREQ IORQ RD WR

Opcode Fetch 0 0 1 0 1
Memory Read 1 0 1 0 1
Memory Write 1 0 1 1 0
I/O Read 1 1 0 0 1
I/O Write 1 1 0 1 0
Interrupt Ack 0 1 0 1 1
Nonmaskarable Interrupt 0 0 1 0 1
Bus Ack 1 Z Z Z Z
Adquisición de Instrucción
30

1. El Z80 introduce el contenido del PC en el bus de


direcciones
a. Incrementa el PC a la siguiente instrucción
b. El PC siempre apunta a la siguiente instrucción a ser
ejecutada

2. La dirección es decodificada por el decodificador


externo y el registro es identificado
Adquisición de Instrucción
31

3. El Z80 envía las señales de control MREQ y RD para


habilitar el buffer de salida

4. El contenido del registro de memoria son puesto en


el bus de datos y traídos al decodificador de
instrucciones.

5. El Z80 decodifica el opcode y ejecuta la instrucción,


Ejemplo
32

 La instrucción LD B,A se encuentra almacenada en la


dirección 2002H
 La instrucción es adquirida de memoria
 El código operacional es 47H
 La instrucción copia el contenido del acumulador en
el registro B

Dirección Código de Maquina Instrucción Tarea


2002H 01000111 47H LD B,A Copiar A en B
Adquisición de Instrucción
33
Dirección Código de Maquina Instrucción Tarea
2002H 01000111 47H LD B,A Copiar A en B

Bus de datos

Bus de datos Interno

B C
Decodificador D E 47 H 2002H
ALU de Instrucción
H L
IX
IY
SP 2002H
Controlador
PC Bus de Dirección

MREQ
47H
RD
Adquisición de Instrucción
34

T1 T2 T3 T4
 El MPU debe obtener
la instrucción de clk
memoria para poder A15-A0 2002H
ejecutarla M1
 Ejemplo: MREQ
Dirección Código de Maquina RD
2002H 01000111 47H D7 – D0 47H

Instrucción Tarea WAIT


LD B,A Copiar A en B
RFSH
Lectura de Memoria: Ejemplo
35

 La instrucción LD A,9FH se usa para introducir el


número 9FH en el acumulador
 Esta instrucción esta compuesta por dos bytes
Dirección Código de Maquina Instrucción Tarea
2000H 00111110  3EH LD A, 9FH Copiar 9FH al acumulador
2001H 100111101  9FH

 El MPU debe leer el opcode y decodificarlos para


darse cuenta que debe leer un segundo byte de
memoria para completar la ejecución de esta
instrucción
Lectura de Memoria
36

 El primer ciclo de maquina se usa para leer la


instrucción de memoria
 Una vez que la instrucción ha sido decodificada, el
MPU se da cuenta de que requiere hacer otra
lectura de memoria
 Después de que la adquisición de instrucción ha
sido realizada y el PC se ha incrementado, la señal
M1 debe estar inactiva para diferenciar el segundo
ciclo de adquisición
Lectura de Memoria
37

 Las señales MREQ y RD se activan para indicar que


se requiere una lectura de memoria

 Las señales MREQ, RD y la dirección se usan para


identificar el registro a ser leído y para habilitar el
chip de memoria
Lectura de Memoria
38

T1 T2 T3 T4 T1 T2 T3
Frecuencia del Reloj
clk
f = 4MHz
A15-A0 2000H Refresh Address 2001H
Periodo
(1/f) = 0.25 µs
M1
Tiempo de Ejecución
MREQ
Fetch
RD
(4T)× 0.25µs = 1.0µs
Lectura
WR High
(3T)× 0.25µs = 0.75µs
D7 – D0 3EH 9FH Instrucción
(7T) )× 0.25µs = 1.75µs
Escritura de Memoria: Ejemplo
39

 La instrucción LD (HL),A copia el contenido del


acumulador a la locación de memoria indicada por
la dirección en el registro HL
Dirección Código de Maquina Instrucción Tarea
Copia el contenido de A en la
memoria . La dirección donde
2003H 01110111  77H LD (HL), A
se almacena el dato se
encuentra en HL

 Esta instrucción se compone de dos ciclos de


maquina, Opcode Fetch y Escritura de Memoria
Escritura de Memoria
40

T1 T2 T3 T4 T1 T2 T3

clk

A15-A0 2003H Refresh Address 2350H

M1

MREQ

RD

WR

D7 – D0 77H 9FH
Reconociendo Ciclos de Maquina
41

 El numero de ciclos de maquina y ciclos de reloj


necesarios para ejecutar una instrucción están
dados por el fabricante

 Sin embargo, existen se pueden calcular una


aproximado a los ciclos de maquina siguiendo las
siguientes reglas
 Elprimer ciclo de maquina de una instrucción siempre
es opcode fetch
Reconociendo Ciclos de Maquina
42

 El procesador no puede ejecutar una instrucción hasta que


todos los bytes han sido leídos
 Ejemplo, la instrucción jump tiene 3 bytes. Entonces la instrucción requiere
3 ciclos de maquina, Opcode fetch, lectura de memoria, lectura de
memoria

 Si el numero de ciclos de maquina es mayor que el numero de


bytes, los ciclos extras son identificados por la función de una
instrucción.
 Por ejemplo LD (HL),A es una instrucción de un byte pero requiere un
ciclo de maquina extra para escribir en memoria
Revision de Conceptos Importantes
43

Señales Acciones
La primera operación en un ciclo de instrucción siempre es
M1
opcode fetch y es indicado por esta señal
Opcode fetch y lectura de memoria usan las señales MREQ y RD.
M1, MREQ, Estas operaciones se diferencian por medio de la señal M1
RD Opcode fetch lee instrucciones
Lectura de Memoria lee datos o direcciones
MREQ, RD Lectura de Memoria
MREQ, WR Escritura de Memoria
El microprocesador no puede escribir y leer al mismo tiempo
La lectura y escritura de memoria requiere de 3 ciclos de reloj.
Sin embargo puede tomar hasta 4 ciclos en algunas instrucciones
Generando Señales de Control
44

Señales Señales Tarea


MREQ RD Leer de una localidad de memoria
IOREQ RD Leer de un dispositivo de entrada
MREQ WR Escribir a una localidad de Memoria
IOREQ WR Escribir a un dispositivo de salida

RD MREQ
MEMRD
MREQ
WR MEMWR
RD MEMRD
RD IORD Decoder
WR MEMWR
IOREQ
IOWR
WR
Resumen
45

 Cuando el Z80 es encendido, el microprocesador


realiza el proceso de reset.

 La primera operación que el MPU realiza es


Opcode Fetch

 El MPU es una maquina secuencial, por lo tanto ira


de una instrucción a la otra, a menos que se le
indique lo contrario
Resumen
46

 El Opcode indica cuantos bytes deben ser leídos


para completar la instrucción

 La señal M1 tiene dos propósitos


 Distingueel ciclo de adquisición del opcode de otra
operación
 Se usa para indicar que una interrupción ha sido
reconocida
Resumen
47

 Estas guías nos permiten reconocer los ciclos de


maquina
 El número de ciclos de maquina en una instrucción indican
cuantas veces el microprocesador debe leer la memoria.
 El primer ciclo de maquina de cualquier instrucción es
opcode fetch
 El MPU debe leer todos los bytes que constituyen la
instrucción antes de poder ejecutarla
 Si la instrucción requiere mas ciclos de maquina además de
los requeridos para leer la instrucción, entonces esos ciclos
están asociados a la ejecución de la instrucción

También podría gustarte