Académique Documents
Professionnel Documents
Culture Documents
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
511
palabra 511
bus A 9
100101110010
(lec)
(esc)
bus D 12
c 2009 DIT-ETSIT-UPM
Smplez
transp. 2
AC
pac sum tra2 dec1
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
Formato de instrucciones:
11 CO 9 8 CD 0
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
(programa)
0 1 2 3
Asignacin de direcciones: : D300 = Q454 : D301 = Q455 : D302 = Q456 Mapa de memoria:
Smplez
511
c 2009 DIT-ETSIT-UPM
transp. 10
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
a0 = D2 48
511
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
a0 = D2 48
511
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
0 15
Programa
n = D9 r = D5
46 47 49 50 51
a0 = D2 48
511
transp. 13
c 2009 DIT-ETSIT-UPM
Smplez
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
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
LD ST
/8 /8
ADD /1
15 16 17
c 2009 DIT-ETSIT-UPM
Smplez
transp. 16
Intercambio (swapping) en la MP
0 30 Programa
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
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
transp. 19
Lenguaje ensamblador
transp. 20
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
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.
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
iniciacin
ciclo de MP
Smplez
transp. 24
terminacin
Smplez: conclusiones
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
c 2009 DIT-ETSIT-UPM
Smplez
transp. 27