Escuela Politécnica Superior Universitat de les Illes Balears Ingenierı́a Técnica Industrial 6 de Septiembre de 2005 EXAMEN FINAL DE INFORMÁTICA INDUSTRIAL Convocatoria de Septiembre tiempo asignado: 3h 30’ 1 3P P1. El fragmento de código mostrado en el cuadro 1 corresponde al de una subrutina para un microcontrolador de la familia MCS-51. Se pide: a) ¿Qué función matemática (f (x)) crees que está intentando ser implementada?. b) Los registros DPL y DPH contienen el output de la subrutina. ¿Proporciona ésta siempre resultados correctos?. En cualquier caso, especifica el rango de valores de entrada para los cuales la función/subrutina se ejecuta de forma satisfactoria. c) Añadir las instrucciones PUSH/POP necesarias para salvaguardar/recuperar el contexto del proceso desde donde se produjo la llamada a la subrutina. Cuadro 1: Una subrutina en lenguaje ensamblador. SUBRUTINA: MOV 08h,00h MOV DPL,08h MOV DPH,#0 LBL1: MOV A,DPH MOV B,08h MUL AB ADD A,R1 MOV DPH,A DEC 08h MOV A,08h JZ LBL2 SJMP LBL1 LBL2: MOV A,DPL MOV B,08h MUL AB MOV DPL,A MOV R1,B 1 3P RET P2. Un dispositivo/función tipo mouse se ha conectado a un PC/host por medio de una conexión USB 1.0. Se pide: a) Especificar las tuberı́as y endpoints que como mı́nimo definirá el dispositivo acorde a su funcionalidad. Debéis indicar también el tipo de transferencia vinculada a cada tuberı́a/endpoint. b) ¿Qué tipo de información crees que la función enviará al host?. Pon un ejemplo de transferencia detallando la estructura/contenido lógico y secuencia de todos los paquetes tomando como referencia el cuadro 2 y sabiendo que el identificador del dispositivo es 122. Finalmente, para el primero de los paquetes, mostrar la secuencia de bits que viajará por el bus suponiendo un valor de CRC igual a 24. c) ¿Bajo qué circunstancias se generarı́a un paquete tipo NAK?, ¿y STALL?. d ) Fuera ya de este caso particular, ¿qué caracterı́stica única poseen las transferencias de control?. 1 3P P3. Disponemos de una jerarquı́a de memoria de dos niveles. Ésta consta de una memoria cache on-chip con separación de datos e instrucciones, y de una memoria principal de 64 b con capacidad de 256 MB. La memoria cache de 1 Cuadro 2: Listado breve de identificadores de paquetes junto con su correspondiente valor numérico. Tipo PID SETUP IN OUT DATA0 Valor 13 9 1 3 Tipo PID DATA1 ACK NAK STALL Valor 11 2 10 14 datos se caracteriza por una función de correspondencia directa, bloques de 4 palabras ası́ como por un espacio de almacenamiento de 512 B. La memoria cache de instrucciones, por su parte, teniendo una capacidad de 1 Kb utiliza un enfoque asociativo por conjuntos de 4 vı́as con bloques de 2 palabras y polı́tica de sustitución pseudo-LRU. Se pide: a) Esquematizar detalladamente la estructura de las caches. ¿Cómo determinan que un determinado dato/instrucción se encuentra o no en la cache?. b) Suponer que tanto las instrucciones como los datos necesarios para ejecutar un determinado programa se encuentran almacenados en memoria principal, concretamente entre las direcciones 0000000 H y 0000145 H (de 0000000 H − 000012FH datos y de 0000130 H − 0000145 H instrucciones). Cada instrucción requiere la lectura de 0, 1 o 2 datos. Por simplicidad, supondremos que todas las instrucciones pueden ser codificadas con 64 b. Indicar qué accesos son aciertos y cuáles son fallos, ası́ como el tipo de fallo, junto con el contenido parcial y final de ambas caches para el flujo de ejecución [0000131 H , 0000137 H , 0000138 H , 0000139 H , 000013FH , 0000140 H , 0000133 H , 0000134 H , 000013CH , 0000141 H , 0000145 H y 0000130 H ]. Debéis también especificar el estado de los bits vinculados al algoritmo de sustitución utilizado. c) Responder razonadamente a las siguientes cuestiones acerca de las caches tipo I+D: 1) ¿Qué operación (R/W), si alguna, crees que podrı́a ser prescindible para una y otra cache?. 2) ¿Puede un dato ser ubicado en la cache de instrucciones?, ¿y una instrucción en la cache de datos?. 3) ¿Está garantizada la coherencia entre ambas caches?. En caso negativo, describe una posible situación en donde dicha coherencia no se mantenga. Cuadro 3: Volcado parcial de memoria principal. Dirección 0000130 H 0000131 H 0000132 H 0000133 H 0000134 H 0000135 H 0000136 H 0000137 H 0000138 H 0000139 H 000013AH Instrucción I 0000000 H , 000004FH I I 0000005 H , 000002DH I 000000CH , 000004DH I 0000043 H , 0000044 H I I 0000007 H I 0000009 H ,000000AH I 0000011 H I 0000025 H I Dirección 000013BH 000013CH 000013DH 000013EH 000013FH 0000140 H 0000141 H 0000142 H 0000143 H 0000144 H 0000145 H 2 Instrucción I 0000002 H , 0000005 H I 0000004 H , 0000005 H I I 0000013 H I 0000026 H ,0000002 H I 0000007 H I I 00000F EH , 000003AH I 0000101 H I 000006BH , 000006CH I 000000EH , 0000018 H