Problemas de estructura y tecnología de computadores Hoja 5: Temas 9, 10 y 11 1) Disponemos de un computador con las siguientes líneas: ADDR (bus de direcciones de 16 bits), DAT (bus de datos de 8 bits), BUSRQ y BUSACK (solicitud y concesión de los buses), INT e INTACK (solicitud y reconocimiento de interrupción), MEMRQ, RD y WR (control de accesos a memoria). Dibujar el cronograma de dichas líeas a lo largo del siguiente proceso: ?? La CPU va a ejecutar la instrucción STORE A, $1234. El contenido de A es $77, la instrucción está situada en memoria a partir de la dirección $1000 y se codifica como $32 $34 $12. ?? Durante el segundo ciclo de memoria, un controlador de DMA solicita el bus para escribir el dato $AA en la posición $5678. ?? Este era el último dato a escribir por el controlador, de forma que a continuación se solicita una interrupción con vector $F0. 2) Diseñar un controlador de DMA que trabaje con el procesador MC68000 realizando las transferencias en modo ráfaga. Las líneas de arbitraje del bus son HALT y BA, y la forma en que opera el DMA una vez inicializado es la siguiente: ?? Pide la utilización del bus mediante HALT ?? La CPU le cede el bus en el ciclo siguiente y activa BA. ?? El DMA controla el bus realizando la transferencia del bloque ?? El DMA genera una petición de interrupción para indicar que el bloque ha sido completamente transferido Nota: no considerar el tiempo de inicialización de la DMA. 3) Un controlador de E/S controla un periférico capaz de hacer transferencias via DMA en un sistema de E/S localizada en memoria. El sistema dispone de una línea de R/W*. El controlador de E/S debe enviar datos hacia el bus en las siguientes situaciones: ?? Cuando la CPU realiza una operación de lectura en uno de sus registros internos (R/W* = 1) ?? Cuando el controlador de DMA ordena la ejecución de una transferencia periférico a memoria. (El controlador de DMA hará R/W=0 para escribir el dato en memoria). Se pide diseñar el circuito de control de las puertas tri-state que comunican el controlador de E/S con el bus de datos. 4) Un computador de 32 bits tiene dos canales selectores y un canal multiplexor. Cada canal selector soporta dos unidades de disco y dos unidades de cinta magnética. El canal multiplexor tiene dos impresoras, dos lectoras de tarjetas y diez terminales CRT conectados a él. Supongamos que las velocidades de transferencia de estos periféricos son las siguientes: ?? Disco: 800 Kb/s ?? Cinta: 200 Kb/s ?? Impresora: 6,6 Kb/s ?? Lectora: 1,2 Kb/s ?? CRT 1 Kb/s Estimar la máxima velocidad de E/S conjunta de este sistema 5) Un computador basado en un microprocesador 68000 tiene en su sistema de E/S un controlador de transmisión recepción serie con los registros DTR (Registro de transmisión de datos) RDR (registro de recepción de datos ) y TSR (registro de estado de transmisión) todos de 8 bits. El controlador funciona con un protocolo fijo de 1 bit de start, 2 bits de stop, 1 bit de paridad, 8 bits de datos y una velocidad de transmisión de 9600 baudios. La línea serie se conecta a una impresora controlada por otro microprocesador que tiene un controlador de transmisión serie compatible con el segundo. El protocolo de trabajo del sistema es el siguiente: ?? El computador envía un dato para imprimir a través del controlador de E/S y se queda esperando a recibir contestación de la impresora. ?? La impresora recibe un dato por CONTROLADOR su interfaz serie y comprueba que E/S SERIE ha llegado correctamente. Si es DIR $FFFF0051 RDR así envía un carácter especial OK DATOS MC68000 $FFFF0053 TDR al computador. Si ha habido algún $FFFF0055 TSR fallo envía un carácter REPEAT al computador. LINEA SERIE LINEA SERIE (<caracteres>) (<OK>,<REPEAT>) ?? El computador recibe el carácter OK o REPEAT. Si es OK continúa IMPRESORA enviando otro dato y si es REPEAT vuelve a enviar el mismo dato. Suponer que el bit 3 del registro de estado TSR es el que se pone a 1 cuando se ha recibido un dato y se resetea al leer RDR. Se pide: a) Calcular cuál es la velocidad punta de impresión en caracteres por segundo suponiendo el tiempo de ejecución de los programas despreciable frente al tiempo de transmisión de un “frame” por las líneas serie. b) Escribir un programa de E/S controlada por programa que permita enviar a imprimir <D0> caracteres situados a partir de la posición <A0>. Se supone que no puede haber errores de transmisión impresora-computador pero si al revés. 6) Una fuente de datos produce caracteres ASCII de 8 bits. Obtener la expresión de máxima velocidad efectiva de transmisión de datos en una línea de R baudios para las situaciones siguientes: a) Transmisión asíncrona con 1 bit de start, 1 bit de paridad y 1.5 bits de stop. b) Transmisión síncrona orientada a bits, con una trama formada por 48 bits de control y 128 bits de información. c) Igual que (b) pero con un campo de información de 1024 bits. d) Transmisión síncrona orientada a caracteres, con 9 caracteres de control por trama y 16 caracteres de información. e) Igual que (d), con 128 caracteres de información 7) Un microprocesador tiene conectado un ratón a través de un controlador (véase figura). Cuando el ratón se desplaza ? x, o ? y se produce una interrupción. Accediendo al registro R ($FF00) se puede saber si se ha producido un +? x (R[0]=1), un +? y (R[1]=1), un -? x (R[2]=1) o un -? y (R[3]=1). Al acceder a R, este se resetea. El software que ejecuta el microprocesador, almacena la posición (X,Y) del ratón en dos bytes (de direcciones P_X, P_Y), de tal forma que cuando se produce +? x, X se incrementa en 1, y cuando se produce -? x, X se decrementa (el comportamiento para Y es análogo). a) Describir muy brevemente la secuencia de acontecimientos que se producen cuando se mueve el ratón. b) Escribir la rutina de tratamiento de la interrupción, teniendo en cuenta que cuando los valores de X, Y alcanzan 255 ya no crecen más, y cuando alcanzan 0 ya no decrecen. Utilizar la sintaxis del ensamblador del 68000. BUS ? -procesador Registro (R) Controlador Ratón IRQ 8) Se dispone de un monitor gráfico con una resolución de 1024x800 pixels y con una frecuencia de refresco de 50Hz. Determinar el tamaño de la memoria de refresco y la velocidad mínima de la línea de conexión de datos para en los siguientes supuestos: a) Funcionamiento monocromo. b) Funcionamiento con 3 colores fijos. c) Funcionamiento con 16 tonos para cada uno de los 3 colores. d) Funcionamiento con 256 tonos para cada uno de los 3 colores. e) Funcionamiento con 256 tonos para cada uno de los tres colores, pero utilizando una memoria de paleta de 256 colores. 9) Suponer que el tiempo de retroceso horizontal de un CRT de barrido es el 10% del tiempo de avance, que la zona útil de avance es el 80% de la pantalla y que el retroceso vertical equivale al avance de 30 microlíneas. Si la pantalla es de 30 cm de ancho y emplea 350 microlíneas, calcular la velocidad lineal del haz al realizar el barrido. 10) Un disco winchester tiene 8 superficies. Cada superficie tiene 80 pistas de 128 sectores cada una. Por último cada sector tiene 512 bytes. Calcular la capacidad de dicho disco. 11) Si un disco Winchester gira a 3000 r.p.m. y tiene una estructura de 128 sectores por pista y 512 bytes por sector, ¿Cuál es la velocidad pico de transmisión del dispositivo a la CPU?. Suponiendo que se atiende al dispositivo por interrupciones cada vez que se transmite un byte, ¿Cuál es el número pico de interrupciones por segundo? 12) Se tiene un disco duro tipo “Winchester” con 16 superficies, cada una con 256 pistas de 128 sectores, siendo la capacidad de cada sector 512 bytes. Se pide: a) Calcular la capacidad del disco. b) Dar el formato del registro mediante el cual se identifica un sector dentro del disco. c) Si se desea una velocidad de transferencia pico de 1Mb/sg, ¿Cuál será la velocidad de rotación asociada?. d) Si las transferencias se realizan vía DMA, ¿Cuántas interrupciones se producen por unidad de tiempo, suponiendo la velocidad de rotación obtenida en el apartado anterior?. 13) Se tiene un sistema con un banco de diskettes que utilizan el formato software IBM 3740 y que giran a 360 revoluciones por minuto. La memoria del sistema tiene un tiempo de acceso de 500 ns y el procesador hace, por término medio, un acceso a la misma cada 700 ns. Además la conexión de los diskettes se hace por DMA. a) Determinar el número de diskettes que podrían funcionar simultáneamente aprovechando el ancho de banda máximo de la memoria b) Calcular el retardo porcentual que se introduce en el procesador cuando un diskette está operando c) Calcular el retardo porcentual que se introduce en el procesador cuando están funcionando el máximo número de diskettes posibles y cuando están funcionando la mitad de ese máximo. 14) Se tiene una unidad de disco duro de brazo móvil con las siguientes características: ?? 4 superficies ?? 256 pistas por superficie ?? sectores de 1024 bytes de información neta, que supone un 80% del total del sector. El restante 20% está formado por información de sincronización, direccionamiento, etc ?? velocidad de transferencias de 10240000 bits/s ?? la pista 1 tiene un radio de 5 cm y una densidad de grabación lineal de 6518,99 bits/cm ?? el tiempo de mover la cabeza de una pista a otra colindante es de 0,2 ms ?? después de mover la cabeza se necesita un tiempo de estabilización de 3 ms Se pide calcular: a) El número de sectores por pista y la capacidad neta del disco b) Si en el t = 0 las cabezas están en el cilindro 1 al comienzo del sector 5, y se da la orden de leer el sector 15 del cilindro 51 y superficie 3. ¿En qué instante se terminará de leer el mencionado sector? 15) Se tiene una unidad de disco duro de brazo móvil con las siguientes características: ?? Velocidad de rotación: 3000 rpm ?? Número de pistas: 500 ?? Número de sectores por pista: 40 (numeradas en orden del 1 al 40 según la dirección de giro) ?? Número de bytes por sector: 512 ?? Tiempo de avance pista a pista: 0,5 ms ?? Tiempo de estabilización: 5 ms ?? Radio de la pista p-ésima: 4 cm Se pide: a) ¿Cuál es la densidad de grabación suponiendo que la información útil representa el 80% de la información realmente almacenable? (calcular la densidad lineal en bytes/cm y la angular bytes/rad) b) ¿Cuál es la velocidad de transferencia en bytes/s? c) En el instante t = 0 ms la cabeza se encuentra en la pista 30, al comienzo del sector 25. ¿En qué momento se habrán satisfecho las siguientes peticiones?: t = 5 ms, pista 30, sector 30; t = 25 ms, pista 30, sector 10; t = 35 ms, pista 34, sector 6; t = 60 ms, pista 32, sector 30 16) En un sistema de 16 bit de tamaño de palabra se instala una unidad de disco duro que gira a 360 r.p.m. y que tiene 512 sectores (de 128 bits) por pista. Se intenta controla el dispositivo mediante técnicas de E/S por interrupciones. Teniendo en cuenta: ?? Que el tiempo de ejecución de una instrucción es de: 150+100·Numero_accesos_memoria ns ?? Que la rutina de tratamiento de interrupción más sencilla encontrada implica la ejecución de 15 instrucciones con una media de 1 accesos a memoria ?? Que salvar y restaurar el contexto (CP,SR) implica 1000 ns. Se pide estimar si es posible atender correctamente al periférico. ¿Qué solución propondría para poder usar el disco en el sistema de un modo eficaz?.