EC PEC2 Enunciado

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

PEC2

NOMBRE:
APELLIDOS:

Estructura de computadores
2024 s2

Estudios de informática, multimedia y comunicación


Presentación
La presente PEC2 contiene 3 preguntas y representa el 50% de la nota de la evaluación
continua.
Como podréis ver, los ejercicios son muy parecidos a los que habéis hecho durante estos
días, en los que además habéis podido dar las soluciones, comentarlas y plantear dudas
en el foro. Esta PEC es individual, evaluable y por tanto no puede comentarse.

Competencias
Las competencias específicas que persigue la PEC2 son:
• [13] Capacidad para identificar los elementos de la estructura y los principios de
funcionamiento de un ordenador.
• [14] Capacidad para analizar la arquitectura y organización de los sistemas y
aplicaciones informáticos en red.
• [15] Conocer las tecnologías de comunicaciones actuales y emergentes y saberlas
aplicar convenientemente para diseñar y desarrollar soluciones basadas en sistemas
y tecnologías de la información.

Objetivos
Los objetivos de la siguiente PEC son:
• Conocer la organización del sistema de memoria de un computador.
• Conocer el funcionamiento de la memoria cache, así como los algoritmos de
correspondencia y reemplazamiento.
• Conocer la organización del sistema de entrada/salida.
• Comprender las técnicas de entrada/salida (entrada/salida programada,
Interrupciones y DMA).

Enunciado
Responder cada pregunta o apartado en el recuadro correspondiente.

Recursos
Podéis consultar los recursos disponibles en el aula, pero no hacer uso del foro.

Criterios de valoración
La puntuación y los criterios de evaluación los encontraréis en cada pregunta.

Formato y fecha de entrega


La PEC2 se ha de entregar en el apartado de entrega de actividades en un documento
en formato pdf. Es necesario que rellenéis en el espacio reservado de la primera página
de la PEC vuestro NOMBRE Y APELLIDOS. La fecha límite de entrega es el 13/05/2024.

2
PEC2 · 2024-s2

Enunciado
Pregunta 1 (4 puntos)
Tenemos un sistema de memoria en el que todos los accesos se hacen a palabra (sin que
importe el tamaño de una palabra). El espacio de direcciones de memoria se descompone
en bloques de B= 8 palabras, lo que implica que cada bloque comienza en una dirección
múltiplo de B. La fórmula para calcular el identificador numérico del bloque es:
Bloque = dirección de memoria (dirección palabra) DIV B (tamaño del bloque en palabras)
El sistema dispone de una memoria cache de L= 4 líneas, donde cada línea tiene el tamaño
de un bloque. Estas líneas se identifican como líneas 0, 1, 2 y 3.

Apartado 1.1 (1,5 puntos) Memoria Cache de Acceso Directo


El sistema utiliza una política de asignación directa, de manera que cada bloque de la
memoria principal sólo se puede llevar a una línea determinada de la memoria cache. El
identificador del bloque determina la línea específica donde se puede guardar el bloque
utilizando la siguiente fórmula:
Línea = identificador de bloque MOD L (tamaño de la cache en líneas)
La ejecución de un programa genera la siguiente lista de lecturas a memoria:
60, 59, 18, 5, 13, 17, 11, 12, 13, 11, 18, 47, 43, 6, 26, 12, 37, 13, 43, 4
La siguiente tabla muestra el estado inicial de la cache, que contiene las primeras L×B
palabras de la memoria (organizadas en L bloques). Debéis completar la tabla para mostrar
la evolución de la cache durante la ejecución del programa, indicando únicamente los fallos
que se producen. Para cada fallo hay que llenar una columna indicando la dirección de la
palabra accedida, el nuevo bloque que se trae a la memoria cache y a qué línea, expresado
de la forma b:e (a1 – aB), donde b: número de bloque de memoria principal, e: etiqueta y
(a1 – aB) es el rango de las direcciones del bloque, donde a1 es la primera dirección del
bloque y aB es la última dirección del bloque.

Línea Estado Inicial Fallo: Fallo: Fallo: Fallo: Fallo: Fallo:


0 0:0 (0 - 7)
1 1:0 (8 - 15)
2 2:0 (16 - 23)
3 3:0 (24 - 31)

Apartado 1.2 (1,5 puntos) Memoria cache de acceso completamente asociativo


Ahora suponemos que en el mismo sistema se utiliza una política de emplazamiento
completamente asociativa, de manera que cualquier bloque de la memoria principal se
puede llevar a cualquier línea de la memoria cache. Si encontramos que la cache ya está
llena, se utiliza un algoritmo de reemplazamiento LRU, de manera que sacaremos de la
memoria cache aquel bloque que hace más tiempo que no se referencia.
Consideremos la misma lista de lecturas a memoria:
60, 59, 18, 5, 13, 17, 11, 12, 13, 11, 18, 47, 43, 6, 26, 12, 37, 13, 43, 4
De nuevo, debéis completar la tabla para mostrar la evolución de la cache durante la

3
ejecución del programa, indicando únicamente los fallos que se producen. Suponemos que
el orden en que se ha accedido por última vez a los bloques 0, 1, 2 y 3, que están en caché,
es 0, 1, 2 y 3: es decir, el bloque 3 es el que se ha accedido más recientemente y el bloque
0 es el que se ha accedido hace más tiempo. Para cada fallo hay que llenar una columna
indicando la dirección de la palabra accedida, el nuevo bloque que se trae a la memoria
cache y a qué línea, expresado de la forma b (a1 – aB), donde b: número de bloque, y (a1 –
aB) son las direcciones del bloque, donde a1 es la primera dirección del bloque y aB es la
última dirección del bloque.

Línea Estado Inicial Fallo: Fallo: Fallo: Fallo: Fallo: Fallo:


0 0 (0 - 7)
1 1 (8 - 15)
2 2 (16 - 23)
3 3 (24 - 31)

Apartado 1.3 (1 punto) Rendimiento de la Memoria cache


Suponemos que en un total de 30 accesos se producen 9 fallos en caché. Además, el
tiempo de acceso a la memoria cache, también denominado tiempo de acceso en caso de
acierto (ta), es 3 ns y el tiempo total de acceso en caso de fallo (tf) es 25 ns.

1.3.a) (0,4 puntos)


Calcula la tasa de aciertos (Ta).

1.3.b) (0,6 puntos)


Considerando la tasa de aciertos obtenida en la pregunta anterior, calcula el tiempo medio
de acceso a memoria (tm).

Criterios de valoración. Para los apartados 1.1 y 1.2 cada error en los fallos o aciertos de
la memoria cache o en la colocación de un bloque en la cache resta 0,5. Los dos apartados
finales están bien o están mal: no hay gradación.

4
PEC2 · 2024-s2

Pregunta 2 (5 puntos)
Se desea analizar el rendimiento de la comunicación de datos entre un dispositivo
conectado a un puerto USB y la memoria de un procesador. El sistema tiene las siguientes
características:
• Velocidad de transferencia del dispositivo de E/S (vtransf)= 1 MB/s= 1.000.000 Byte/s
• Tiempo de latencia promedio del dispositivo (tlatencia ) = 0
• Direcciones de los registros de datos y de estado del controlador de E/S: AF00h
y AF04h, respectivamente.
• El bit del registro de estado que indica que el controlador del puerto de E/S está
disponible es el bit 3 (cuarto bit menos significativo) que cuando vale 1 indica que
el puerto está disponible
• la frecuencia de reloj del procesador es 1 GHz, y el procesador puede ejecutar 1
instrucción cada 4 ciclos de reloj (tinstr = 4 × tciclo)
• Transferencia de escritura desde el puerto de E/S a la memoria
• Cada dato transferido son 4 Bytes
• Transferencia de Ndatos= 1.600.000 datos, es decir, 1.600.000 × 4 Bytes = 6,4
MBytes
• Dirección inicial de memoria donde residen los datos: 10000000h

Apartado 2.1 (2 puntos) E/S programada


2.1.a) (0,5 puntos)
El siguiente código realizado con el repertorio CISCA realiza la transferencia descrita antes
mediante la técnica de E/S programada. Debéis completar el siguiente código:

1. MOV R3, ___________


2. MOV R2, ___________
3. Bucle: IN R0, ___________
4. AND R0, ___________
5. _____ Bucle
6. MOV R0, [R2]
7. ADD R2, ___________
8. OUT ___________, R0
9. SUB R3, 1
10. JNE Bucle

2.1.b) (0,5 puntos)


¿Cuánto tiempo dura la transferencia ttransf_bloque? ¿Qué porcentaje de este tiempo dedica
la CPU a la transferencia?

2.1.c) (1 punto)
Si quisiéramos utilizar el mismo procesador y programa, pero con un dispositivo de E/S
más rápido, ¿Cuál es la máxima tasa o velocidad de transferencia del nuevo dispositivo
que se podría soportar sin que el dispositivo se tuviera que esperar?

5
Apartado 2.2 (2 puntos) E/S por Interrupciones
Suponer que el siguiente código CISCA es una rutina de servicio a las interrupciones (RSI)
para transferir a través del dispositivo de E/S anterior, el mismo número de datos que antes
(E/S programada), pero ahora mediante la técnica de E/S por interrupciones.
Suponer:
• Tiempo de programación y finalización de la transferencia de 1 microsegundo ( tprog
+ tfinal )
• El tiempo para atender la interrupción (trec_int), o tiempo adicional desde que la CPU
detecta la interrupción hasta que comienza a ejecutarse la primera instrucción de la
RSI es de 20 ciclos de reloj.
• Se utiliza una variable global que se representa con la etiqueta DIR, y que al
principio del programa contiene la dirección inicial de memoria donde residen los
datos a transferir.

2.2.a) (0,5 puntos)


Completar el código:
1. _________
2. PUSH R0
3. PUSH ______________
4. ________ R0, ___________
5. ________ R0, ___________
6. JE Error ; salta a un código no descrito de tratamiento de error:
; el dato no está disponible.
7. MOV __________, [DIR]
8. MOV R0, [R1]
9. OUT __________, R0
10. ADD R1, __________
11. MOV __________, R1
12. POP __________
13. POP __________
14. __________
15. IRET

2.2.b) (1 punto)
¿Cuál es el tiempo total que dedica la CPU a la tarea de Entrada/Salida, tcpu? ¿Qué
porcentaje representa el tiempo de transferencia del bloque ttransf_bloque respecto al tiempo
de transferencia del bloque por parte del periférico tbloque?

2.2.c) (0,5 puntos)


Si quisiéramos reducir la frecuencia de reloj del procesador para reducir su consumo
energético, ¿hasta qué frecuencia lo podríamos hacer sin reducir la velocidad de
transferencia con el dispositivo de E/S?

6
PEC2 · 2024-s2

Apartado 2.3 (1 punto) E/S por DMA


Supondremos que el controlador de E/S puede funcionar en modo DMA (Acceso Directo a
Memoria). La suma del tiempo de cesión del bus y del tiempo de recuperación del bus
es 20 ns (tcesión + trecup = 20 ns). El tiempo de la transferencia de un dato por el bus es 1
ns (tmem = 1 ns).

2.3.a) (0,5 puntos)


Consideremos que en la transferencia por DMA, los datos se envían entre el controlador
de DMA y la memoria, en modo ráfaga, y dispone de un buffer de un tamaño mbuffer = 1.600
Bytes. Calcular el tiempo total de ocupación del bus por parte del controlador de DMA para
llevar a cabo la transferencia que venimos analizando.

2.3.b) (0,5 puntos)


La CPU no puede hacer ninguna tarea durante todo el tiempo en que el bus está ocupado
por parte del controlador de DMA. ¿Cuál es el porcentaje de tiempo que tiene disponible la
CPU para ejecutar código efectivo de otros programas durante la transferencia?

Criterios de valoración. En los apartados 2.1.a y 2.2.a cada valor erróneo resta 0,25. El
resto de los apartados están bien o están mal: no hay gradación.

7
Pregunta 3 (1 punto)
Preguntas teóricas
3.a) (0,25 puntos)

Según el documento sobre el módulo 4 hay dos métodos fundamentales de acceso a las
memorias que son el acceso aleatorio y el asociativo. Explica cada uno de ellos y pon un
ejemplo concreto.

3.b) (0,25 puntos)


Según el documento sobre el módulo 4 hay dos factores básicos que logran que el
esquema de jerarquía de memoria funcione satisfactoriamente en un computador. Explica
cuáles son y por qué.

3.c) (0,25 puntos)


Según el documento sobre el módulo 5, indica qué dos razones no hacen factible conectar
directamente un periférico de Entrada/Salida al bus del sistema del computador.

3.d) (0,25 puntos)


Según el documento sobre el módulo 5, al gestionar múltiples dispositivos puede ser
necesario decidir a qué dispositivo atender primero. ¿Cómo se denomina la política que
toma esta decisión y qué dos políticas existen?

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy