Corrección de documento HTML sobre arquitectura de computadoras
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 15,28 KB
En un cierto programa, las instrucciones de punto flotante (PF) representan el 40% del total de instrucciones ejecutadas y tienen un CPI=8, mientras que las de enteros (ENT) representan el 60% restante y tienen un CPI=1. Ese mismo programa lo ejecutamos en otro computador en el que gracias a las mejoras de la arquitectura y la tecnología hemos conseguido reducir el CPI de las instrucciones de PF a 2 y el ciclo de reloj lo hemos reducido en un 25%. El CPI de las instrucciones de ENT no ha variado. Determina razonadamente el valor del Speedup obtenido.
TSM = Nºinstr x CPI x tc = Nºinstr x (0,4x8 + 0,6 x 1) x tc
TM = Nºinstr x CPI x tc = Nºinstr x (0,4x2 + 0,6 x 1) x (0,75 x tc)
S = TSM / TM = 3,8 / (1,4 x 0,75) = 3,62
Hemos estudiado que la reducción de la tensión de alimentación, VDD, de los procesadores tiene un importante efecto sobre el consumo de energía dinámica y la potencia dinámica. Si dado un procesador reducimos su VDD al 80%, explica razonadamente:
a) En qué porcentaje se reduce el consumo de energía dinámica.
Por la expresión Edinámica ∝ VDD2 * Cload
Sabemos que Edinámica es proporcional a VDD2. Si cambiamos la tensión de alimentación original, VDD, por (0,8*VDD), la energía dinámica consumida será proporcional a (0,8*VDD)2, es decir a 0,64*VDD2. Por lo tanto, esta energía consumida se reduce al 64% del valor original.
b) En qué porcentaje se reduce la potencia dinámica.
La reducción de VDD también tiene un impacto lineal sobre la frecuencia. Por tanto, si multiplico VDD por 0,8 tengo que multiplicar la frecuencia máxima por el mismo factor.
Por la expresión Potencia dinámica ∝ VDD2 * Cload* Frecuencia
Sabemos que la Potencia dinámica es proporcional a VDD2 y a la frecuencia. El efecto es que la Potencia dinámica queda multiplicada por (0,8)2 x 0,8 = 0,512. Es decir, se reduce al 51,2% del consumo original.
En la oblea de la derecha:
Coste wafer = (Die coste) x (Dies por wafer) x (Die yield (ver figura)) = 100 x 9 x (5/9) = 500 €
En la oblea de la izquierda:
Die coste = (Coste wafer) / (Dies por wafer x Die yield (ver figura)) = 500 / (4 x 1/4) = 500 €
Supongamos un programa, que incluye una única instrucción de salto que siempre se toma y que se ejecuta en un procesador dotado de un predictor de saltos de dos niveles (3,2). ¿A partir de qué número de ejecución del salto el predictor acertará en la predicción? El estado inicial del predictor es todo a cero. Explicar cómo se obtiene la respuesta.
En un computador vectorial, explica brevemente en qué consiste el encadenamiento de operaciones vectoriales. Para una secuencia de operaciones vectoriales de la forma
LV V1, R1
MULVV.D V3, V1, V2
ADDVV.D V5, V3, V4
dibuja el diagrama de tiempo que muestra su ejecución en forma encadenada y explica el significado de cada uno de los tramos o intervalos que aparecen en el mismo.
Consiste en conectar directamente la salida de una UF segmentada que está produciendo un resultado que se va a almacenar en un registro vectorial, a la entrada de otra UF que necesita ese resultado como operando. De esta forma, en el momento en que la primera UF produce el primer resultado, la segunda UF ya puede comenzar a operar.
Diagrama:
Donde: LL=Latencia de la unidad de Load; LM=Latencia (nº etapas) del multiplicador; LA=latencia (nº etapas) del sumador; Nelem=nº de elementos que se procesan (valor del VLR)
Supongamos un computador vectorial similar al VMIPS, cuya memoria está organizada en 16 bancos y cuyo tiempo de acceso a memoria es 6 ciclos de reloj. En esa memoria está almacenada por filas una matriz, A, de 40 filas por 50 columnas. Explica razonadamente si se producirán conflictos de acceso a memoria al cargar una columna de A en un registro vectorial mediante una instrucción de tipo LVWS.
Acceso sin conflicto si m.c.m (nº bancos, stride) / stride >= T acceso a memoria
m.c.m (16,50) = 400;
400/50 = 8 es mayor que 6. Por tanto, no se producirán conflictos de acceso a memoria.
La siguiente figura ilustra el estado, en un cierto instante, de una arquitectura con planificación dinámica de instrucciones y especulación. Indica sobre la figura qué cambios se producen al hacer la fase issue de la instrucción MULD F6, F0, F10. Usa el espacio blanco proporcionado para razonar brevemente los cambios.
La nueva instrucción se asigna al ROB4 y el puntero a la primera entrada libre del ROB se desplaza al ROB5. En ROB4, el campo destino toma el valor F6 (reg. destino del MULD) y el campo listo toma el valor N. En el banco de registros, al registro F6 se le pone la marca 4, para indicar que será esta entrada del ROB la que aportará el valor que se debe escribir en F6 en la fase commit. La segunda estación de reserva de la UF de mult/div aloja la nueva instrucción. En el campo destino se anota la marca 4, que es el nº de la entrada del ROB donde debe escribirse el resultado de la multiplicación. Para el primer operando, se accede al registro F0, que tiene la marca 1. En ROB1 se observa que el bit “listo” vale N, lo que indica que el valor se está calculando y, por tanto, ponemos ROB1 como marca del primer operando. Para el segundo operando, se accede al reg F10, que tiene la marca 2, y por un razonamiento análogo al anterior, ponemos ROB2 como marca del 2º operando en la ER.
Explica brevemente cuál es la función que desempeña el ROB en el algoritmo de Tomasulo con especulación.
Almacena resultados de instrucciones cuya ejecución ha finalizado, pero...
- Están a la espera de actualizar registros o memoria
- Son dependientes de un salto
Permite el paso de operandos entre instrucciones especuladas con dependencia LDE.
Fases que pueden ejecutarse fuera de orden: Ejecución, escritura
Fases que deben ejecutarse en orden: Issue, commit
Cuando hablamos del consumo de energía de los procesadores, explica brevemente qué entendemos por energía estática y energía dinámica. ¿Cuáles son las principales técnicas que se usan para reducir ambos tipos de energía?
Energía dinámica: Consumida para la conmutación de los transistores; y aplicamos las técnicas para reducir:
- Evitar conmutaciones innecesarias
- Transistores más pequeños, rápidos y de menor consumo, pero mayor cantidad en el chip.
Energía estática: Se consume, aunque los transistores no estén conmutando; y aplicamos las técnicas para reducir:
- Evitar leakage en módulos que no se están usando.
- Suprimir alimentación.
En una arquitectura con planificación dinámica mediante el algoritmo de Tomasulo sin especulación,
a) Explica cuál es la función que desempeña el campo de tag de los registros.
El tag se llama Qi, indica el número o identificador de la ER que está produciendo el valor que se va a almacenar en el registro. Si Qi = 0, no hay ninguna instrucción en la ER que vaya a generar y almacenar un nuevo valor en el registro.
b) Describe qué campos existen en un Store Buffer y cuál es su función.
- Vi: Valor que debe ser almacenado en memoria (si está calculado).
- Dir: Dirección de almacenamiento.
- Qi: Número de la ER que está produciendo el resultado. Si Qi = 0, valor calculado.
- Busy: 1 bit que indica si la entrada del SB está libre u ocupada.
¿Qué caracteriza la ley de Amdahl? En el contexto del rendimiento de computadores, define los conceptos de “Speedup” y “Eficiencia”.
Permite la evaluación del Speedup que se obtendrá al aplicar una cierta mejora, M, que permite ejecutar una fracción, F, del código x veces más rápido.
El Speedup es una técnica para acelerar una tarea mejorando el rendimiento del procesador.
La eficiencia es una comparación del grado del Speedup conseguido frente a un valor máximo X (la mejora inicial sobre F)
En una arquitectura con planificación dinámica de instrucciones y especulación mediante un ROB,
a) Explica brevemente lo que ocurre cuando una instrucción de tipo ADDD ejecuta la fase WRITE.
Cuando el ADDD ejecuta el WRITE, actualiza el campo valor del ROB con el resultado de la ejecución de la instrucción y pone campo Listo. Además, actualiza todos las ER que contenían la etiqueta del ROB.
b) ¿Qué se hace cuando una instrucción de salto llega a la cabecera del ROB?
- Si es instrucción de salto bien predicha:
- Eliminarla de ROB
- Si es instrucción de salto mal predicha:
- Borrar contenido del ROB, ER y Buffer de Load
- Borrar marcas (campo “número de ROB”) de todos los registros.
- Buscar instrucción correcta.
c) Si una instrucción genera una interrupción
1. Registrar la petición en el ROB
2. Si la instrucción llega a la cabecera del ROB (no especulada), entonces reconocer la interrupción.
3. Cualquier instrucción anterior habrá finalizado. Por tanto, ninguna instrucción anterior puede provocar una excepción
En un procesador con Planificación Dinámica mediante el algoritmo de Tomasulo sin especulación, explica brevemente qué son las Estaciones de Reserva, cuál es su función y qué información almacenan.
Son registros asociados a las unidades funcionales, contendrán la información necesaria para la ejecución de la instrucción.
La ER está a la espera de que los operandos que se necesitan para ejecutar la instrucción sean generados y una vez están listos, ejecuta la operación y libera el registro de la ER.
Supongamos una arquitectura que utiliza el algoritmo de Tomasulo sin especulación. En el momento en que se deposita un resultado sobre el CDB, explica brevemente:
a) Junto con el resultado ¿qué información aparece además sobre el CDB?
Aparece la marca de identificación (tag) de la estación de reserva o load buffer del que proviene el resultado.
b) ¿Cómo se determina cuáles son elementos de la arquitectura en los que se guarda el valor de dicho resultado?
El resultado que está sobre el CDB se guarda en todos los registros, campos de operando de las estaciones de reserva y campos de operando del store buffers cuya marca coincida con la marca que está en ese momento en el CDB.
Explica brevemente en qué consiste un predictor de dos bits (bimodal) y dibuja su diagrama de estados. ¿Cómo se hace la predicción de un salto?
Mezcla varios predictores y añade un mecanismo de selección del predictor
Elige, en cada caso, el predictor que haya dado mejores resultados hasta el momento
Para combinar dos predictores, P1 y P2, se utiliza una tabla de contadores saturados de dos bits indexada por la dirección de la instrucción de salto
Supongamos una arquitectura con planificación dinámica de instrucciones que utiliza el algoritmo de Tomasulo sin especulación
a) Explica razonadamente qué datos necesitarías para poder calcular la anchura mínima necesaria para el campo de TAG. ¿Y para poder calcular el tamaño de la ventana de instrucciones?
Ancho del TAG: tiene que ser suficiente para identificar a los elementos que depositan datos sobre el CDB más el caso de marca vacía. Necesito conocer el número total de ER, más el número de load buffers.
Ventana de instrucciones: Número de elementos capaces de alojar una instrucción pendiente de ejecución. Necesito los mismos datos que antes, más el número de store buffers.
b) Cuando una instrucción aritmética en punto flotante realiza su fase “write”, ¿qué debe suceder para que esta instrucción no actualice el valor de su registro destino? Acompaña la explicación con un pequeño ejemplo.
Que el tag del registro destino no contenga el identificador de la estación de reserva en donde se aloja la instrucción aritmética.
Dado un computador C, tal que el valor de SPEC FP2006 de C es 30, introducimos una mejora en su hardware de PF, de tal manera que tras la mejora ejecuta las operaciones en punto flotante en la mitad de tiempo. Explica razonadamente si se puede deducir que el valor de SPEC FP2006 del computador C mejorado será 60.
No se puede deducir que el valor de SPEC FP2006 del computador C mejorado será 60. Para poder afirmarlo, la media geométrica de las ratios tendría que ser el doble, lo que sería cierto si todos los programas patrón se ejecutaran en la mitad de tiempo. Sin embargo, aunque las operaciones en punto flotante se ejecuten en la mitad de tiempo, eso no significa que los programas patrón se ejecuten en la mitad de tiempo, dado que los programas patrón no pueden contener exclusivamente operaciones de punto flotante, sino que también contienen necesariamente operaciones enteras cuyo tiempo de ejecución no cambia.
En una arquitectura con planificación dinámica de instrucciones que implementa el algoritmo de Tomasulo con especulación, explica brevemente si pueden aparecer riesgos LDE, EDL y EDE a través de memoria y, en caso afirmativo, cómo se tratan.
Riesgos EDE y EDL: no pueden aparecer dado que la actualización de memoria se hace en orden.
- Esperar hasta que la instrucción ST se halle en la cabecera de ROB => Todos los LD y ST anteriores se han completado.
Riesgos LDE: Podrían producirse si un LD accede a la posición de memoria A, habiendo en el ROB un ST previo que almacena el resultado en A. Se evitan mediante el siguiente mecanismo:
- Un LD no ejecuta el acceso a memoria si hay un ST previo en el ROB con la misma dirección de memoria.
- Tampoco se ejecuta el LD si está pendiente el cálculo de la dirección efectiva de algún ST del ROB
En el algoritmo de Tomasulo con especulación, existe alguna situación en que dos instrucciones hacen la fase WRITE (escritura del resultado en el ROB) en el mismo ciclo de reloj. Explica en detalle cuál es esa situación. Para la explicación, se recomienda usar un ejemplo formado por un par de instrucciones concretas.
Esta situación se da cuando existe una dependencia LDE entre una instrucción aritmética o load y un store posterior que hace issue antes de que la instrucción de la que depende escriba su resultado en el ROB. Por ejemplo, si tenemos la secuencia:
ADDD F6, F4, F6
SD 0(R2), F6
es muy probable que la SD haga la fase issue antes de que ADDD haya escrito su resultado en el ROB. En ese caso, al lanzar el SD, se pone en su campo “valor” el nº de ROB donde está alojada la ADDD: llamémosle ROBx. Cuando la operación ADDD hace la fase write (y ROBx aparece sobre el CDB), se chequea si alguna entrada del ROB tiene en su campo valor el nº ROBx. Como esto es lo que ocurre con el campo valor de la SD, entonces el resultado que está sobre el CDB se copia en el ROB sobre el campo valor de la instrucción ADDD, pero también sobre el campo valor de la instrucción SD.