• No se han encontrado resultados

Símplez+i4: modelo estructural

N/A
N/A
Protected

Academic year: 2021

Share "Símplez+i4: modelo estructural"

Copied!
13
0
0

Texto completo

(1)

Símplez+i4: modelo estructural

UCP

12

bus A

bus C

bus D

UC

MP

X

12

3

AC

UAL

teclado

pantalla

CTEC

CPAN

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 1

Modelo funcional

Formatos de instrucciones:

11

9

8

7

6

5

0

CO

R J I

CD

11

9

8

7

0

1 1 1 ECO

Modos de direccionamiento:

JI modo

DE

00 directo

DE=(CD)

01 indirecto

DE=((CD))

10 indexado

DE=(CD)+(X)

11 indirecto

e indexado

DE=((CD))+(X)

φφ

inmediato

operando=(CD)

(2)

Repertorio de instrucciones

CO

CO

CO

Significado

(bin.) (oct.) (nem.)

000

0

ST

(AC)

MP[DE], o (X)

MP[DE]

001

1

LD

(MP[DE])

AC, o (MP[DE])

X

010

2

ADD

(AC) + (MP[DE])

AC, o

(X) + (MP[DE])

X

011

3

BR

siguiente instrucción en MP[DE]

100

4

BZ

si cero en UAL, sig. instr. en MP[DE]

101

5

LD #

(CD)

AC, o (CD)

X

110

6

SUB #

(AC) – (CD)

AC, o (X) – (CD)

X

11100 70, 71

HALT

detiene la ejecución

11101 72, 73

EI

permite interrupciones

11110 74, 75

DI

inhibe interrupciones

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 3

Direccionamientos directo e indirecto

bit 6 del primer formato: I = 0, directo; I = 1, indirecto

Ejemplos de instrucciones con direccionamiento

directo:

Binario

Octal Simbólico

Efecto

010000100000 2040

ADD .A,/32

(AC) + (32)

AC

010100100000 2440

ADD .X,/32

(X) + (32)

X

100000000101 4005

BZ /5

Si el último resultado en la UAL fue 0,

bifurca a la dirección 5

Ejemplos de direccionamiento

indirecto:

Binario

Octal Simbólico

Efecto

010001100000 2140

ADD .A,[/32℄

(AC) + ((32))

AC

010101100000 2540

ADD .X,[/32℄

(X) + ((32))

X

100001000101 4105

BZ [/5℄

Si el último resultado en la UAL fue 0,

bifurca a la dirección contenida en la

palabra de dirección 5

(3)

Direccionamientos indexado e indirecto–indexado

bit 7 del primer formato: J = 0, no indexado; J = 1, indexado

Ejemplos de direccionamiento

indexado:

Binario

Octal Simbólico

Efecto

010010100000 2240

ADD .A,/32[.X℄

(AC) + (32 + (X))

AC

010110100000 2640

ADD .X,/32[.X℄

(X) + (32 + (X))

X (raro, pero válido)

100010000101 4205

BZ /5[.X℄

Si el último resultado en la UAL fue 0,

bifurca a la dirección 5 + (X)

Ejemplos de direccionamiento

indirecto–indexado:

Binario

Octal Simbólico

Efecto

010011100000 2340

ADD .A,[/32℄[.X℄

(AC) + ((32) + (X))

AC

010111100000 2740

ADD .X,[/32℄[.X℄

(X) + ((32) + (X))

X

(raro, pero válido)

100011000101 4305

BZ [/5℄[.X℄

Si último resultado en la UAL 0,

bifurca a la dirección (5) + (X)

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 5

Direccionamiento inmediato

11

9

8

7

6

5

0

1 0 1

R

ø ø

operando

("literal")

(LD #)

11

9

8

7

6

5

0

1

R

ø ø

operando

("literal")

1 0

(SUB #)

En Símplez+i4, el direccionamiento inmediato sólo es aplicable a las

instrucciones

LD #

y

SUB #

(que sólo admiten este modo)

Ejemplos de direccionamiento

inmediato:

Binario

Octal Simbólico

Efecto

101000111111 5077

LD .A,#63

63

AC

101010111111 5277

LD .A,#63

63

AC

101100111111 5477

LD .X,#63

63

X

101111111111 5777

LD .X,#63

63

X

110000000001 6001

SUB .A,#1

(AC) – 1

AC

(4)

Ejemplo: intercambio («swapping») en la MP

Programa

Zona A

0

100

149

200

249

Zona B

2

1

BR /4

D’100

D’200

X

X

4095

Usamos una palabra (

[1℄

) como puntero al

comienzo de la zona A y otra (

[2℄

) como

puntero al comienzo de la zona B

Usamos el registro de índice para

desplazarnos dentro de ambas zonas

Intercambio de dos palabras:

[5℄ 1301 LD .A,[/1℄[.X℄

[6℄ 0003 ST .A,/3; variable temp

[7℄ 1302 LD .A,[/2℄[.X℄

[8℄ 0301 ST .A,[/1℄[.X℄

[9℄ 1003 LD .A,/3

[10℄ 0302 ST .A,[/2℄[.X℄

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 7

Interrupciones: causas y cambios de contexto

Causas: en Símplez+i4, sólo los dos periféricos

Línea de interrupción

Asíncronas con el programa que se está ejecutando

Para cada periférico, una zona de datos y una RS

Cambios de contexto

(en general):

1. Al pasar a atender a una interrupción:

Salvaguardar el estado de la UCP (registros y punto en

que se ha interrumpido el programa)

Entrar en el nuevo contexto (bifurcar a la RS)

2. Al terminar la RS, volver al contexto del programa

interrumpido:

Restaurar el estado de la UCP

(5)

Interrupciones: zonas, permiso e inhibición

Causa

Interrumpe cuando

Zona de datos Rutina de servicio

Pantalla está preparada para

recibir un carácter

3840–3919

transfiere de zona de

datos al puerto 4093

Teclado se pulsa una tecla

(preparado para enviar

carácter)

3920–3999

transfiere del puerto

4095 a zona de datos

Permiso e inhibición:

Generales: instrucciones

EI

y

DI

Particulares: bit «IT» en los puertos de estado de direcciones

4092 (pantalla) y 4094 (teclado)

11

1

0

IT PR

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 9

Interrupciones: modelo procesal

Cuando aparece una interrupción:

1. La UCP termina la instrucción en curso

2. Inhibe todas las interrupciones

3. Guarda la dirección de retorno en D’63

4. Bifurca a la dirección D’4000

El resto, mediante software: el programa que empieza en 4000:

1.

Salva el estado

((AC) y (X)) y averigua la causa

2.

Realiza el servicio

(transferencia entre el puerto de datos y la

zona de datos)

(6)

Interrupciones: organización de la MP

zona de datos de la pantalla

zona de datos del teclado

0

63

3919

3920

3999

4000

4095

puertos de e/s (no MP)

4092

dirección de retorno

consulta y rutinas de

servicio de interrupciones

programa

3840

Direcciones arbitrarias

(Las únicas fijadas en el hardware

son D’63, D’4000 y D’4092 a D’4095)

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 11

Ejemplo de uso de interrupciones

Un programa que

1. Escribe en la pantalla un mensaje pidiendo datos

2. Los lee del teclado y los procesa

3. Escribe resultados en la pantalla

4. Vuelve a 1

Suponemos que el programa

Mientras se escriben los mensajes puede ir haciendo otra cosa

Mientras los datos se leen puede ir haciendo otra cosa

(7)

Comunicaciones programa–RS pantalla

Para escribir por la pantalla:

El programa

1. Introduce los caracteres en la zona de datos

(«de abajo arriba» es más fácil en Símplez+i4)

2. Inicia una palabra, o «variable global»,

XPAN

, con el valor 79

(valor inicial del índice para la RS)

3. Permite interrupciones de la pantalla

La RS

1. Va escribiendo los caracteres que hay en la zona de datos;

a medida que lo hace, va decrementando (

XPAN

)

2. Cuando ha terminado ((

XPAN

) = 0) «avisa» al programa

mediante otra variable global,

MSPAN

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 13

Comunicaciones programa–RS teclado

Para leer del teclado:

El programa

1. Inicia una palabra, o variable global,

XTEC

, con el valor 79

(valor inicial del índice para la RS)

2. Permite interrupciones del teclado

La RS

1. Va leyendo caracteres y almacenándolos en la zona de

datos («de abajo arriba»); a medida que lo hace, va

decrementando (

XTEC

)

2. Cuando ha terminado ((

XTEC

) = 0) «avisa» al programa

mediante otra variable global,

MSTEC

(8)

Variables globales y punteros

[ 0℄ 3014 BR /PRINC

[ 1℄ 0000 MSPAN RES 1 ; Mensaje de la pantalla

[ 2℄ 0000 MSTEC RES 1 ; Mensaje del te lado

[ 3℄ 0000 XPAN RES 1 ; Índi e para la RS de la pantalla

[ 4℄ 0000 XTEC RES 1 ; Índi e para la RS del te lado

[ 5℄ 7400 PZPAN DATA 3840 ; Puntero a la zona de la pantalla [ 6℄ 7520 PZTEC DATA 3920 ; Puntero a la zona del te lado

[ 7℄ 7774 PEPAN DATA 4092 ; Puntero al puerto de estado de pantalla [ 8℄ 7776 PETEC DATA 4094 ; Puntero al puerto de estado de te lado [ 9℄ 7775 PDPAN DATA 4093 ; Puntero al puerto de datos de pantalla [10℄ 7777 PDTEC DATA 4095 ; Puntero al puerto de datos de te lado [11℄ 0117 CTE79 DATA 79 ; Constante para ini iar índi es

[12℄ PRINC ...

;

; Ini ia ión y uso de las RS ;

[50℄ HALT

[51℄ 0000 AC RES 1 ; para guardar el a umulador

[52℄ 0000 X RES 1 ; para guardar el registro X

[53℄ 7662 PRSTEC DATA RSTEC ; puntero a la RS del te lado

[54℄ 7654 PBIFPAN DATA BIFPAN ; para bifur a ión en la RS de la pantalla [55℄ 7671 PBIFTEC DATA BIFTEC ; para bifur a ión en la RS del te lado [56℄ 7676 PFIN DATA FIN ; para salida a opera iones finales

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 15

Iniciación y uso de las RS

[ 0℄ 3014 BR /PRINC

...

[12℄ PRINC ... ; Entre otras osas, el programa llena

... ; la zona de datos de la pantalla

[20℄ 5000 LD .A,#0

[21℄ 0001 ST .A,/MSPAN ; Ini ia [1℄ y [2℄ (donde

[22℄ 0002 ST .A,/MSTEC ; las RS ponen sus mensajes)

[23℄ 1013 LD .A,/CTE79

[24℄ 0003 ST .A,/XPAN ; Ini ia los índi es para

[25℄ 0004 ST .A,/XTEC ; las zonas de datos

[26℄ 5003 LD .A,#3 ; Ini ia el puerto de estado

[27℄ 0107 ST .A,[/PEPAN℄ ; de la pantalla

[28℄ 5002 LD .A,#2 ; Ini ia el puerto de estado

[29℄ 0110 ST .A,[/PETEC℄ ; del te lado

[30℄ 7200 EI ; A partir de este momento la UCP

... atiende interrup iones

[40℄ 1002 ESPT LD .A,/MSTEC ; Ahora el programa ne esita

[41℄ 4050 BZ /ESPT ; los ara teres del te lado:

... ; espera a que la RS avise

...

[45℄ 1001 ESPP LD .A,/MSPAN ; Ahora quiere es ribir otra

[46℄ 4055 BZ /ESPP ; línea por la pantalla: espera

...

(9)

Consulta y servicio de interrupciones (1)

El programa que empieza en [4000] tiene cuatro partes:

1. Salvar el estado y averiguar la causa

2. Si pantalla, RS de la pantalla

3. Si teclado, RS del teclado

4. Restaurar el estado y volver

Variables locales y punteros (necesarios para bifurcaciones

locales, ya que las direcciones son mayores que 63):

[51℄ 0000 AC RES 1 ; para guardar el a umulador

[52℄ 0000 X RES 1 ; para guardar el registro X

[53℄ 7662 PRSTEC DATA RSTEC ; puntero a la RS del te lado

[54℄ 7654 PBIFPAN DATA BIFPAN ; para bifur a ión en la RS de la pantalla [55℄ 7671 PBIFTEC DATA BIFTEC ; para bifur a ión en la RS del te lado [56℄ 7676 PFIN DATA FIN ; para salida a opera iones finales

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 17

Consulta y servicio de interrupciones (2)

1. Salvar el estado y averiguar la causa:

[4000℄ 0063 ST .A,/AC ; Guarda (AC)

[4001℄ 0464 ST .X,/X ; Guarda (X)

[4002℄ 1110 LD .A,[/PETEC℄ ; Mira el te lado

[4003℄ 6003 SUB .A,#3

[4004℄ 4165 BZ [/PRSTEC℄ ; Si te lado, bifur a

2. RS de la pantalla:

[4005℄ 1403 LD .X,/XPAN ; Índi e para la pantalla

[4006℄ 4166 BZ [/PBIFPAN℄ ; ¾Último ará ter?

[4007℄ 1305 LD .A,[/PZPAN℄[.X℄ ; A ede a la zona

[4008℄ 0111 ST .A,[/PDPAN℄ ; es ribe el ará ter

[4009℄ 6401 SUB .X,#1 ; y de rementa el índi e

[4010℄ 0403 ST .X,/XPAN

[4011℄ 3170 BR [/PFIN℄ ; Va al final

[4012℄ 5001 BIFPAN LD .A,#1 ; Último ará ter; inhibe

[4013℄ 0107 ST .A,[/PEPAN℄ ; interrup iones,

[4014℄ 0001 ST .A,/MSPAN ; avisa al programa,

[4015℄ 1105 LD .A,[/PZPAN℄ ;

[4016℄ 0111 ST .A,[/PDPAN℄ ; es ribe el ará ter

(10)

Consulta y servicio de interrupciones (3)

3. RS del teclado:

[4018℄ 1404 RSTEC LD .X,/XTEC ; Si último ará ter,

[4019℄ 4167 BZ [/PBIFTEC℄ ; va a (PBIFTEC) = 4025

[4020℄ 1112 LD .A,[/PDTEC℄ ; Lleva el ará ter

[4021℄ 0306 ST .A,[/PZTEC℄[.X℄ ; a la zona de datos

[4022℄ 6401 SUB .X,#1 ; y de rementa el índi e

[4023℄ 0404 ST .X,/XTEC

[4024℄ 3170 BR [/PFIN℄

[4025℄ 5001 BIFTEC LD .A,#1 ; Último ará ter; inhibe

[4026℄ 0107 ST .A,[/PETEC℄ ; interrup iones,

[4027℄ 0002 ST .A,/MSTEC ; avisa al programa

[4028℄ 1110 LD .A,[/PDTEC℄ ; y lee el ará ter

[4029℄ 0106 ST .A,[/PZTEC℄ ;

4. Restaurar el estado y volver:

[4030℄ 1063 FIN LD .A,/AC ; Éstas son las opera iones

[4031℄ 1464 LD .X,/X ; finales: restaurar AC y X,

[4032℄ 7200 EI ; permitir interrup iones

[4033℄ 3177 BR [/63℄ ; y volver al programa

END

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 19

Concurrencia aparente

La ejecución del programa se ve interrumpida esporádicamente

tiempo

(~10 instrucciones)

RS de la pantalla

RS del teclado

1/30 seg.

5

La UCP parece estar haciendo tres cosas simultáneamente:

Ejecutar el programa

Leer del teclado

(11)

Nivel de micromáquina

Consideremos, de momento, «Símplez+i3» (Símplez+i4 sin interrupciones)

Partiendo de Microsímplez, tendremos que añadir:

En la ruta de datos:

Registro X.

Sumador de direcciones, o bien utilizar la misma UAL

(para direccionamiento indexado).

Un registro para introducir la dirección leída y transferirla al bus Ai

(para direccionamiento indirecto).

Caminos para transferir (

LD #

) o restar (

SUB #

) CD a AC o a X.

En el secuenciador:

Entradas adicionales: «R», «J», «I» (de RI).

Ciclo de indirección: (MP[CD])

RA, o (MP[CD])+(X)

RA y leer.

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 21

Microsímplez+i3: posible ruta de datos

SECUENCIADOR

R

sac

R

UAL

Z

tra2

sum

1

2

12

R

CP

ccp

incp

ecp

scp

bus Ai

CD

R

RA

eri

RI

era

bus A

bus D

CO

R

R J I

12

12

MPX

noz

1

0

bits 0−5

bits 6−11

12

bus Aii

R

AC

eac

X

RM

erm

scd

eba

res

erx

srx

R

(12)

Microsímplez+i3: fragmento del modelo procesal

I=1

I0

I1

II0

II1

O0

O1

LD #

LD

LD

I=0

Modelo procesal para

LD #

y

LD

:

(I0) (MP[RA])

RI; (CP)+1

CP;

Si CO es

LD #

entonces

(I1)

si R entonces (CD)

X;

(I1)

si no, (CD)

AC;

(I1)

(CP)

RA;

Si CO es

LD

entonces

si I entonces

(I1)

(CD)

RA;

(II0)

(MP[RA])

RM;

(II1)

si J entonces (RM)+(X)

RA;

(II1)

si no (RM)

RA;

si no I entonces

(II1)

si J entonces (CD)+(X)

RA;

(II1)

si no (CD)

RA;

(O0)

(MP[RA])

RM;

(O1)

si R entonces (RM)

X;

(O1)

si no, (RM)

AC;

(O1)

(CP)

RA;

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 23

Extensiones para Símplez+i4

Modelo procesal:

Nuevo ciclo de memoria para guardar CP

en las interrupciones.

I0-I1: ciclo de instrucción

O0-O1: ciclo de operando

II0-II1: ciclo de indirección

INT0-INT1: ciclo de interrupción

Ejercicio 10: analizar todas las situaciones y poner las

transiciones entre estados

Ruta de datos:

Añadir a la de Símplez+i3

Caminos para transferir D’63 al bus A y (CP) al bus D,

así como D’4000 al bus A.

(13)

Extensiones de la ruta de datos para las interrupciones

J

Q

_

Q

K

J

Q

_

Q

K

PIN

Secuenciador

CP

RA

BIN

IP

cbi

cpi

upi

12

12

bus D

bus Ai

sdrs

scpd

scp

ccp

ecp

incp

era

111110100000

000000111111

(D’4000)

(D’63)

ITECL

R

IPANT

1

INT

PIN: permiso de interrupciones. upi y cpi se generan al ejecutarse

EI

y

DI

.

IP obliga al secuenciador a entrar en ciclo de interrupción

En ciclo de interrupción:

cbi/era: preparan escritura (al final del ciclo anterior, si IP=1)

scpd/esc: escriben (CP) en MP[63]

sdrs/ecp/era: preparan lectura de MP[4000]

c

2009 DIT-ETSIT-UPM

Símplez+i4

transp. 25

Secuenciador: ideas para la implementación

Cableado: 8 estados

3 biestables

Microprogramado:

27 microórdenes

¿27 bits + los de DB en cada microinstrucción?

es posible codificar para reducir la longitud

Más condiciones de microbifurcación: R, I, J, IP

¿Tratarlas como en la

BZ

de Microsímplez?

muchos circuitos adicionales. Distintas soluciones.

La operación del cálculo de la dirección efectiva es común

para

ST

,

LD

,

ADD

,

BR

y

BZ

¿Se repite en los microprogramas de todas?

concepto de microsubprograma.

Referencias

Documento similar

Además esta cartera de complementos de formación propios del Programa de Doc- torado se abrirá y ofertará, siempre que la condiciones del proceso docente lo permitan y asegurando que

En las estructuras de datos dinámicas el tamaño y su forma es variable a lo largo de un programa, es decir, la memoria se reserva a tiempo de corrida del programa; este tipo

FAS - PROGRAMA DE FAMILIA DE ACOGIDA SIMPLE PAG - PROGRAMA DE ADOPCION GLOBAL PRI - PROGRAMA REPARACION ABANDONO PARA LA INTEGRACION DE NIÑOS EN FAMILIA ALTERNATIVA RPF

FAS - PROGRAMA DE FAMILIA DE ACOGIDA SIMPLE PAG - PROGRAMA DE ADOPCION GLOBAL PRI - PROGRAMA REPARACION ABANDONO PARA LA INTEGRACION DE NIÑOS EN FAMILIA ALTERNATIVA RPF

Modelo con todas las variables estacionarias, I(0), en el que se incluye, como una variable más del modelo, los errores del la ecuación cointegrada retrasada en un periodo,

La técnica DLT-2D se utilizó para reconstruir el plano de movimiento de los nadadores en dos dimensiones y se identificaron acciones de los nadadores (entrada de la mano

en el curso anterior) constituyendo la cobertura global de participación en el programa, es decir, realización de cualquiera de las actividades del PSBDI, que

En este sentido, la Comisión Provincial de Absentismo Escolar con representación de la Dirección Provincial de Educación, Ayuntamiento, Diputación, Gerencia de