Está en la página 1de 38

EC2721

Arquitectura del Computador I Universidad Simón Bolívar

Clase 04 – Direccionamiento del


HC9S08QE128
Entrada y salida programada

1 EC2721 27/05/2013
Modos de direccionamiento
 INH Inherente
 IMM (IMM1, IMM2) Inmediato
 DIR Directo
 EXT Extendido
 IX Indexado
 IX1 Indexado, 8 bits de offset
 IX2 Indexado, 16 bits de offset
 IX+ Indexado con post-incremento
 REL relativo
 SP1 SP, 8 bits de offset
 SP2 SP, 16 bits de offset

2 EC2721 27/05/2013
Inherente
 No tienen una etapa de obtención de operandos asociada a la
instrucción
 El operando se encuentra implícito en la instrucción
 La mayoría solo necesitan un byte por instrucción

3 EC2721 27/05/2013
Ejemplo de Instrucciones Inherentes

4 EC2721 27/05/2013
Inmediatas
 Los o el byte del operando se encuentran inmediatamente luego del
opcode de la instrucción
 Pueden tener operandos de 1 o 2 bytes
 El ancho de la instrucción es de 2 o 3 bytes dependiendo del operando

5 EC2721 27/05/2013
Ejemplos de instrucciones inmediatas

6 EC2721 27/05/2013
Directas
 Conocido también como direccionamiento absoluto
 La dirección del operando está contenido en la instrucción (solo
8bits)
 El ancho de la instrucción es de 2 bytes (1 byte para opcode y 1
byte de dirección de operando)
 Solo se puede direccionar desde $0000 hasta $00FF

7 EC2721 27/05/2013
Extendidas
 Similares a las directas, la diferencia radica en que la dirección del
operando es de 16 bits
 El ancho de la instrucción es de 3 bytes
 Se pueden direccionar valores hasta 64k

8 EC2721 27/05/2013
Gráfica del direccionamiento extendido

9 EC2721 27/05/2013
Ejemplo

10 EC2721 27/05/2013
Ejemplo de instrucciones con
direccionamiento extendido

11 EC2721 27/05/2013
Indexadas sin offset
 Son instrucciones de 1 byte (con direcciones variables)
 La dirección no se encuentra en la instrucción
 Se obtiene del registro H:X
 Arquitecturas anteriores solo utilizaban el registro X
 Estaban limitadas a direcciones entre $00 y $FF

12 EC2721 27/05/2013
Indexadas con offset
 El offset es un operando que se encuentra dentro de la
instrucción
 El offset puede ser de 8 bits o de 16 bits
 Offset de 8 bits: Ancho de instrucción es de 2 bytes
 Offset de 16 bytes: Ancho de instrucción es de 3 bytes
 El valor de este operando suma al registro H:X para obtener la
nueva dirección

13 EC2721 27/05/2013
Instrucciones con direccionamiento
indexado

14 EC2721 27/05/2013
Indexadas con post incremento
 Son instrucciones de tipo indexadas
 Al final de la instrucción se incrementa el valor del registro X
 Si el registro X tiene el valor $FF al desbordarse se incrementará el registro H
 El valor del incremento se encuentra en la propia instrucción
 No offset. Instrucciones de 2 bytes
 Offset 8 bits. Instrucciones de 3 bytes

15 EC2721 27/05/2013
Stack Pointer Offset
 Similar al direccionamiento indexado
 En vez de utilizar el registro H:X se utiliza el registro SP como base
 Offset de 8 bits y 16 bits.
 Ancho de instrucción de 3 y 4 bytes respectivamente (diferente al
indexado!!!)

16 EC2721 27/05/2013
Direccionamiento Relativo
 Solo se utiliza en instrucciones de bifurcación para obtener el destino de la misma.
 Se suma un offset son signo de 8 bits a PC para obtener la nueva dirección de
instrucción
 La nueva dirección se obtiene de la siguiente forma
 Dirección Efectiva = PCnext + extensión_signo(Offset)
 PCnext = Pcbranch + 2
 Pcbranch = posición de la bifurcación en la memoria
 Como el offset es de 8 bits con signo el rango efectivo es PCnext-128 hasta
PCnext+127

Bra * == Bra - 2

17 EC2721 27/05/2013
Instrucciones con direccionamiento relativo

18 EC2721 27/05/2013
Instrucciones de memoria a memoria
 Inmediato a directo
 3 bytes de instrucción. Inicializar variables y registros en la pagina directa
 Directo a Directo
 3 bytes de instrucción. Movimiento entre registros de la página directa
 Indexado a Directo con post incremento
 2 bytes de instrucción. Transferir tablas indexadas por HX hacia registros en la
página directa
 Directo a indexado con post incremento
 2 bytes de instrucción. Transferir tablas desde registros hacia el resto de la
memoria.

19 EC2721 27/05/2013
Entrada y Salida Programada

20 EC2721 27/05/2013
El hardware del MC9S08QE128
 Los dispositivos de entrada y salida de un computador
son los que permiten su interacción con el mundo y con
el usuario
 Sin Entrada/Salida (I/O) los sistemas de cómputo serían
inútiles
 El computador/microcontrolador se comunica con el
mundo utilizando interfaces (o puertos)
 Es una especificación bien definida para la comunicación entre
dos dispositivos
 Incluye los estándares del formato de datos tanto mecánico como
electrónico

21 EC2721 27/05/2013
Diagrama de bloques y pinout del
MC9S08QE128 (Ver. Reference Manual)

22 EC2721 27/05/2013
Diagrama de bloques y pinout del
MC9S08QE128 (Ver. Reference Manual)

23 EC2721 27/05/2013
I/O mapeada en memoria
 Las interfaces de I/O pueden ser de sólo salida, solo
entrada o bidireccionales
 Generalmente un puerto de I/O salida incluye una serie
de registros en los que el CPU puede escribir o leer
datos.
 Registros de Datos
 Registros de Control
 Registros de Status
 La cantidad de registros varía según el puerto
 Para que el CPU pueda acceder a estos registros los
mismos deben tener algún tipo de identificador para
direccionarlos

24 EC2721 27/05/2013
Entrada / Salida Mapeada en Memoria
0000
• Comparte el Espacio de direcciones
Memoria RAM de la memoria.
• No hay instrucciones especiales para
0011 acceder a la Entrada / Salida, ni
0100
líneas.
Entrada / Salida
• Una instrucción de E/S podría ser:
0111
mov 0x005 → 0x101 ; Salida
1000
mov 0x102 → 0x005 ; Entrada

• Se minimiza la circuitería extra para


Memoria RAM la señalización de Entrada / Salida.

1111

25 Prof. O. de Castro.
I/O mapeado en memoria
 El espacio de memoria de direcciones de I/O puede ser
parte del espacio de memoria del CPU
 Pero también puede ser separado
 En el caso del HC08 el espacio de memoria de I/O forma
parte del espacio de memoria del CPU
 En Intel el espacio de memoria es separado.

26 EC2721 27/05/2013
Entrada / Salida Aislada
0000 000
• Espacio de direcciones especial.
• Instrucciones especiales.
Entrada / Salida
• Una instrucción de E/S podría ser:
111
OUT 0x005 → 0x005 ; Salida
IN 0x006 → 0x006 ; Entrada

Memoria RAM
• Se deben usar señales especiales de
control (no las de memoria)
activadas por las instrucciones.

• Ejemplo: Procesadores INTEL X86


1111

27 Prof. O. de Castro.
Entrada / Salida mapeada: Implementación Básica.
D0 a D7
74LS244
A0 D0 1Y1 1A1

Buffer de 3 estados
A0
1Y2 1A2

Memoria 16x8
A1 A1 D1
A2 D2 1Y3 1A3
A2
A3 D3 1Y4 1A4
A3
D4 2Y1 2A1
A4
D5 2Y2 2A2
WE
OE D6 2Y3 2A3
CS D7 2Y4 2A4
2G 1G

Puerto (0)
Procesador A Y0 Puerto 74LS374
que direcciona B Y1 (1)
Puerto D0 Q0
32 bytes (25) Y2 (2)
Puerto D1 Q1
G Y3 (3) D2 Q2
D3 Q3
74LS139

Biestable
D4 Q4
D5 Q5
Direccionamiento: 00000 a 11111 D6 Q6
Memoria RAM: 00000 a 01111 (16 bytes) D7 Q7
Entrada/Salida: 10000 a 10011 (4 E/S) OC CLK
Indefinida en circuito: 10100 a 11111

El puerto(0) es entrada y tiene dirección 10000


El puerto(1) es salida y tiene dirección 10001 GN
D
28 Prof. O. de Castro.
Entrada / Salida Aislada: Implementación Básica.
D0 a D7
74LS244
A0 D0 1Y1 1A1

Buffer de 3 estados
A0
1Y2 1A2

Memoria 16x8
A1 A1 D1
A2 D2 1Y3 1A3
A2
A3 D3 1Y4 1A4
A3
D4 2Y1 2A1
D5 2Y2 2A2
WE
OE D6 2Y3 2A3
CS D7 2Y4 2A4
2G 1G

Puerto (0)
A Y0 Puerto 74LS374
IO / M B Y1 (1)
Puerto D0 Q0
Y2 (2)
Puerto D1 Q1
G Y3 (3) D2 Q2
D3 Q3
74LS139

Biestable
Procesador D4 Q4
D5 Q5
que direcciona Direccionamiento: 0000 a 1111 D6 Q6
16 bytes (25) Memoria RAM: 0000 a 1111 (16 bytes) D7 Q7
Entrada/Salida: 0000 a 0011 (4 puertos) OC CLK
Indefinida en circuito: 0100 a 1111

El Puerto(0) es entrada y tiene dirección 0000


El Puerto(1) es salida y tiene dirección 0001 GN
... D
29 Prof. O. de Castro.
Sincronización de I/O
 Durante la ejecución el software debe interactuar con los
dispositivos I/O
 Los tiempos generalmente no coinciden
 Instante en que el programa quiere leer no necesariamente
implica que el dispositivo esté listo
 Ejemplo: Lectura de un teclado
 En general se necesita un mecanismo para coordinar el
acceso al I/O: Sincronización
 Encuesta (le llaman programada)
 Acceso directo a memoria (DMA)
 Interrupciones

30 EC2721 27/05/2013
Pasos en una transacción I/O
 CPU revisa el estatus en el módulo de I/O del dispositivo
 El módulo I/O retorna el estatus
 Si el módulo está listo el CPU solicita transferencia de
datos
 El módulo I/O obtiene los datos del dispositivo
 El módulo I/O transfiere los datos al CPU

31 EC2721 27/05/2013
Entrada / Salida: programación
 Entrada / Salida Programada
 El programa en el procesador se encarga de todas las tareas de E/S.
 El programa explícitamente transfiere los datos, configura los dispositivos, y les pregunta
periódicamente por el estado y datos de los mismos.
 Desventaja dado que el procesador es mucho mas veloz que los dispositivos de E/S, de
modo que la espera por programa representa ineficiciencia.

 Entrada / Salida por interrupción


 El programa sólo configura el dispositivo de E/S y transfiere datos E/S a registros o
Memoria, pero no pregunta por la operación del mismo, pues le será avisado por medio de
una interrupción.
 Los dispositivos de E/S generan interrupciones una vez que tienen datos listos para el
programa ó han culminado una operación ordenada por el programa.

 Entrada / Salida por Acceso Directo Memoria (DMA)


 El programa sólo realiza configuraciones y da órdenes de E/S. No se encarga de la
transferencia de datos E/S  Memoria. De esta transferencia se encargan dispositivos
especiales llamados Controladores de DMA, como el 8237A de Intel.

32 Prof. O. de Castro.
Entrada / Salida: Módulos Programables
 Permiten flexibilizar la programación en el uso de E/S.
 Circuitos menos discretos.
 Un solo integrado puede cumplir multiples funciones programables.
 Se construyen directamente adaptados al conexionado de buses del
computador.

 Ejemplos:
 Interfaz de periféricos 82C55A.
 Controlador de Interrupciones 82C59A.
 Interfaz de teclado/pantalla 8279
 Temporizador programable 8254
 Módulos periféricos del MC68HC908GP32.

33 Prof. O. de Castro.
Entrada/Salida: Dispositivos programables

Conexionado Organización Interna general

34 Prof. O. de Castro.
Entrada/Salida: programación

E/S Programada E/S por interrupción E/S por DMA


35 Prof. O. de Castro.
Entrada/Salida por interrupciones

Ejemplo de uso del 82C55A


para E/S para el uso con un
programa con E/S por
interrupciones.

36 Prof. O. de Castro.
Entrada/Salida por Interrupciones

Memoria Principal Memoria Principal


37 Prof. O. de Castro.
Entrada/Salida usando DMA

38 Prof. O. de Castro.

También podría gustarte