Vous êtes sur la page 1sur 14

Smplez: modelo estructural

bus A 9

bus C 15

UCP

UC

AC

CTEC MP

teclado

UAL

CPAN bus D 12

pantalla

c 2009 DIT-ETSIT-UPM

Smplez

transp. 1

Smplez: memoria principal Capacidad, organizacin y funcionamiento:


direcciones 0 1 2 12 bits palabra 0 palabra 1 palabra 2

bus C lec esc

511

palabra 511

bus A 9

100101110010

"celda" (palabra de 12 bits) direccionada

(lec)

(esc)

bus D 12

c 2009 DIT-ETSIT-UPM

Smplez

transp. 2

Smplez: unidad aritmtica

AC
pac sum tra2 dec1

Operaciones (notacin RT):

* pac: 0 AC * sum: (AC) + (bus D) AC * tra2: (bus D) AC * dec1: (AC) 1 AC

UAL
1 2

operando 1

operando 2
(del bus D)

c 2009 DIT-ETSIT-UPM

Smplez

transp. 3

Smplez: unidad de control Repite indenidamente: 1. Extrae (lee) una instruccin de la MP. 2. La interpreta: a) Descodica la instruccin. b) En su caso, extrae el operando (de la MP o de perifrico). c ) Ejecuta la instruccin. Incluye, en su caso, escribir en la MP o en perifrico. 3. Genera direccin de la siguiente (normalmente, ya en el paso 1).
c 2009 DIT-ETSIT-UPM Smplez transp. 4

lectura de instruccin

decodific.

ejecucin de instruccin

lectura de operando

Smplez: perifricos

Teclado y pantalla (trivializados) Caracteres codicados en ISO Latin 1 (ISO 88591) o Latin 9 (ISO 885915) Comunicacin a travs del acumulador Tiempos para las transferencias mucho mayores que los de la UAL y la MP Ocupan las direcciones 508 a 511 (robadas a la MP)

c 2009 DIT-ETSIT-UPM

Smplez

transp. 5

Smplez: modelo funcional (1) Representacin de informacin numrica (slo nmeros enteros no negativos): En binario, con 12 bits Rango: de 0 a 212 1 = 4095 Ejemplos: D4 = D10 = D1022 = D4095 = B000000000100 B000000001010 B001111111110 B111111111111 = = = = Q0004 Q0012 Q1776 Q7777 = = = = H004 H00A H3FE HFFF

c 2009 DIT-ETSIT-UPM

Smplez

transp. 6

Smplez: modelo funcional (2) Representacin de informacin textual (caracteres): Cdigo ISO Latin9 en los 8 bits menos signicativos de una palabra Ejemplos: a = B01100001 = B11100000 e = B10100100 = B00100000 = B00001101 = B00001010 = = = = = = Q141 Q340 Q244 Q040 Q015 Q012 = = = = = = H61 HE0 HA4 H20 H0D H0A = 97 = 224 = 164 = 32 = 13 = 10

c 2009 DIT-ETSIT-UPM

Smplez

transp. 7

Smplez: modelo funcional (3)

Formato de instrucciones:
11 CO 9 8 CD 0

CO : Cdigo de operacin (23 = 8) CD : Campo de direccin (29 = 512)

c 2009 DIT-ETSIT-UPM

Smplez

transp. 8

Smplez: modelo funcional (4) Repertorio de instrucciones: CO CO CO Signicado (RT) (bin) (oct) (nem) 000 0 (AC) MP[(CD)] 001 1 (MP[(CD)]) AC 010 2 (AC) + (MP[(CD)]) AC 011 3 siguiente instruccin en MP[(CD)] 100 4 si cero, siguiente instruccin en MP[(CD)] 101 5 0 AC 110 6 (AC) 1 AC 111 7 para

c 2009 DIT-ETSIT-UPM

Smplez

transp. 9

Suma de dos enteros


(programa)

0 1 2 3

Asignacin de direcciones: : D300 = Q454 : D301 = Q455 : D302 = Q456 Mapa de memoria:

Smplez

1454 2455 0456 7000

(operando 1) 300 (operando 2) 301 (resultado) 302

0007 0004 0013

511

c 2009 DIT-ETSIT-UPM

transp. 10

Progresin aritmtica (1)


Asignacin de direcciones (por ej.): : D46 = Q56 : D47 = Q57 : D48 = Q60 : D49 = Q61 : D50 = Q62 : D51 = Q63 (contador) Mapa de memoria:
c 2009 DIT-ETSIT-UPM Smplez

0 15

Programa

n = D9 r = D5

46 47 49 50 51

0011 0005 0002 ai suma contador

a0 = D2 48

511

Resultado: a0+a1+...+a9 = 2+7+...+47 = 245

transp. 11

Progresin aritmtica (2) Asignaciones iniciales (suponemos que en [52] hay 1):

0 15

Programa

n = D9 r = D5

46 47 49 50 51

0011 0005 0002 ai suma contador

Asignaciones dentro del bucle:


a0 = D2 48

511

Resultado: a0+a1+...+a9 = 2+7+...+47 = 245

Control del bucle: Comprobar si y seguir o no seguir. Pero slo tenemos una instruccin de bifurcacin, , y no hay instruccin para restar!
c 2009 DIT-ETSIT-UPM Smplez transp. 12

Progresin aritmtica (3) Solucin: contar hacia atrs hasta que


0 15

Programa

n = D9 r = D5

46 47 49 50 51

0011 0005 0002 ai suma contador

a0 = D2 48

511

Resultado: a0+a1+...+a9 = 2+7+...+47 = 245


transp. 13

c 2009 DIT-ETSIT-UPM

Smplez

Interpretacin de contenidos de la MP (1)

dir. MP cont. (binario) cont. (octal) cont. (hex.) [0] 101 000 000 000 Q5000 HA00 [1] 111 111 111 010 Q7772 HFFA ... ... ... ... [5] 010 000 000 001 Q2001 H401 ... ... ... ... Qu hay en estas palabras? (interpretacin) Depende . . .

c 2009 DIT-ETSIT-UPM

Smplez

transp. 14

Interpretacin de contenidos de la MP (2)

Dir.MP/cont.

Interpretacin como . . . instruccin nmero carcter [0] Q5000 D2560 [1] Q7772 D4090 [5] Q2001 D1025 [control]

Qu ocurre si la UC ejecuta [5]? Qu ocurre si empieza ejecutando [0]? En el nivel de mquina convencional no hay tipos (salvo en algunas mquinas)

c 2009 DIT-ETSIT-UPM

Smplez

transp. 15

Modicacin de instrucciones

1144

LD

/100

1145

LD

/101

15 16 17

1010 2001 0010

LD ST

/8 /8

ADD /1

15 16 17

1010 2001 0010

c 2009 DIT-ETSIT-UPM

Smplez

transp. 16

Intercambio (swapping) en la MP

0 30 Programa

100 Zona A 149


200 Zona B 249

Ejercicio: Traducir al lenguaje de Smplez, suponiendo que el compilador pone las constantes 50 y 1 en las direcciones [1] y [2] y reserva la direccin [3] para la variable y la [4] para .

511

c 2009 DIT-ETSIT-UPM

Smplez

transp. 17

Subprogramas

Implementacin de procedimientos y funciones (mtodos) en el nivel de mquina convencional.


Programa

Transmisin de los argumentos (paso de parmetros). En Smplez, nicamente por valor. A travs del AC, o de palabras de la MP (variables globales). Preservacin de la direccin de retorno. En Smplez, construyendo la instruccin de retorno, , antes de cada llamada.
c 2009 DIT-ETSIT-UPM Smplez

llamada

llamada

Subprograma

retorno

transp. 18

Subprograma para restar


Estas instrucciones implementan el subprograma, suponiendo que: El minuendo (mayor que el sustraendo) se pasa por el acumulador. El sustraendo (mayor que 0) se pasa por la direccin . Antes de llamarlo (con una instruccin ) se modica adecuadamente la ltima instruccin. Ejercicio: Escribir las instrucciones necesarias de un programa que a partir de la direccin requiere hacer la operacin , y a partir de , .
c 2009 DIT-ETSIT-UPM Smplez


transp. 19

Lenguaje ensamblador

transp. 20

Etiquetas, seudoinstrucciones, directivas...

Nivel de
mquina simblica

c 2009 DIT-ETSIT-UPM

Smplez

Comunicaciones con los perifricos Cada perifrico tiene un puerto de datos y un puerto de estado. Puerto estado de la pantalla datos de la pantalla estado del teclado datos del teclado Direccin 508 509 510 511

: lee el ltimo carcter tecleado. : lee el estado del teclado (1 = preparado para
enviar un carcter; 0 = no preparado).

: saca por pantalla el carcter del AC. : lee el estado de la pantalla (1 = preparada para
recibir un carcter; 0 = no preparada, ocupada con el anterior).
c 2009 DIT-ETSIT-UPM Smplez transp. 21

Espera activa (busy waiting)

Para escribir en la pantalla:

Para leer del teclado:


Smplez transp. 22

c 2009 DIT-ETSIT-UPM

Anlisis de tiempos en la espera activa Supongamos estos datos: Tiempo de ejecucin para las instrucciones , : 1 ciclo de MP = 200 ns. , , :2 y

Tiempo de ejecucin para las instrucciones , y ciclos de MP = 400 ns. Tiempo de escritura de un carcter en la pantalla: 1/30 s 33 106 ns.

Si inmediatamente despus de se inicia otro bucle de


espera para escritura, cuntas veces se ejecutan las dos instrucciones del bucle?

33 106/600 = 55.000 veces


c 2009 DIT-ETSIT-UPM Smplez transp. 23

Introduccin a otros mecanismos Interrupciones: iniciativa del perifrico interrumpe a la UCP para cada carcter la UCP ejecuta una RS para cada carcter Acceso directo a la memoria: el perifrico se comunica directamente con la MP slo interrumpe al nal de la transferencia de un bloque va robando ciclos a la UCP
c 2009 DIT-ETSIT-UPM

Espera activa:

seg/caracter

tiempo

Interrupciones:

tiempo de RS

Acceso directo a la memoria:

iniciacin

ciclo de MP

Smplez

transp. 24

terminacin

Smplez: conclusiones

Conveniencia de ms facilidades hardware instrucciones , / , lgicas


y de desplazamiento Capacidad de direccionamiento ridcula modo de direccionamiento indirecto.

Modicacin de instrucciones para recorrer la MP modo de direccionamiento indexado. Pocos y pobres tipos de datos facilidades hardware para empalmar palabras. Comunicacin con perifricos bloquea a la UCP interrupciones, ADM.
c 2009 DIT-ETSIT-UPM Smplez transp. 25

Programacin: conclusiones (1)

Programacin en el nivel de mquina convencional:


Propensa a errores y costosa en desarrollo Programas ligados a la mquina Aparicin del nivel de mquina simblica No utilizada, salvo casos especiales

Automodicacin de los programas:


Programas no reutilizables Propensin a errores Absolutamente prohibido en ingeniera del software Lenguajes de alto nivel no lo permiten Aprendizaje?
c 2009 DIT-ETSIT-UPM Smplez transp. 26

Programacin: conclusiones (2)

Comunicaciones con los perifricos:


Interrupciones y ADM permiten obtener mejor rendimiento de la mquina, pero programacin delicada y costosa Aparicin del nivel de mquina operativa

c 2009 DIT-ETSIT-UPM

Smplez

transp. 27

Vous aimerez peut-être aussi