P2 Flashcards
La unidad de control de un CPU monociclo
Combinacional (para cada entrada hay una salida). Para cada combinación de entradas hay una salida
Cuales son las 5 etapas del pipeline
- Fetch
- Decode
- Execute
- Memory
- Write Back
En el procesador multiciclo cada tipo de instrucción toma una cantidad
Distinta de ciclos
A diferencia de los monociclo y los segmentados, en los procesadores multiciclo se puede usar un solo dispositivo de memoria, ya que:
la lectura de instrucción y ejecución se realzian en ciclos distintos
El procesador segmentado utiliza ____ para preservar los datos en cada etapa
registros de segmentación
Un procesador multiciclo con CPI>1 puede tener mejor rendimiento que un monociclo CPI=1, ya que:
Sus ciclos son más cortos
En el procesador multiciclo, la velocidad de reloj se establece por:
la duración de la etapa más lenta
En el procesador monociclo, la velocidad de reloj se establece por:
lo que tarde en ejecutarse la instrucción más lenta
En el procesador segmentado, la velocidad de reloj se establece por:
Lo que tarde en ejecutarse la etapa más lenta
En un procesador segmentado cada instrucción:
Pasa por etapas diferentes según su actuación
La cantidad de ciclos necesarios para ejecutar n instrucciones es:
n+4
La diferencia en hardware entre el procesador monociclo y segmentado son:
Los registros de segmentación
Cuáles son las 3 dependencias de datos:
- RAW
- WAR
- WAW
¿Qué es un riesgo por dependencia de datos?
Acceso a datos cuyo valor depende de instrucciones anteriores
Siempre que hablamos de riesgos es específico a la arquitectura ¿Porqué?
Los riesgos son propios de cada arquitectura, por ejemplo, la monociclo no tiene riesgos
¿Cuál es el único tipo de dependencia de datos que representa un riesgo en la arquitetura segmentada?
RAW
¿Cuántos ciclos se necesita detener la ejecución de instrucciones para resolver una dependencia RAW sin usar redireccionamiento?
2, que sería MEM y WB de la instrucción que escribe
¿Qué instrucción escribe el desarrollador para agregar pausas y resolver dependencias RAW
NOP
es una instrucción que no modifica ningún registro ni memoria, sirve para que el desarrollador agregue pausas para resolver dependencias
¿Qué es el forwarding (redireccionamiento)?
Permite pasar la salida de un ciclo anterior (almacenada en un registro de segmentación) directamente a la entrada de otro, para no tener que agregar pausas para resolver dependencias de datos (RAW)
Unidad de gestión de riesgos
Tiene como propósito resolver los conflictos de dependencia de datos
En un procesador segmentado sin redireccionamiento ni unidades de detención, se deben gestionar los riesgos
Agregando instrucciones NOP
En un procesador segmentado, la unidad de riesgos ayuda a que:
El CPI de todos los programas se acerque a 1
La instrucción LDR
también introduce un riesgo de procesamiento de datos, pero el forwarding no es suficiente, se tiene que:
Detener la ejecución un ciclo, ya que el valor va a estar disponible hasta la etapa MEM de la instrucción. Esto se logra con stall
si el procesador tiene unidad de detención, sino, se necesita manejar por software usando NOP
Los riesgos de procesamiento de datos aritméticos se pueden solucionar:
Usando forwarding de los valores guardados en los registros de segmentación a la entrada de la ALU de la instrucción posterior
Los riesgos de procesamiento de datos NO aritméticos (LDR
) se pueden solucionar:
Haciendo stall
un ciclo y luego redireccionando del registro de segmentación MEM-WB a la entrada de la ALU de la siguiente instrucción
Los riesgos de control (saltos) se pueden solucionar haciendo:
stall
durante dos ciclos, ya que el resultado del salto está disponible en la etapa EXE. También se pueden ejecutar las instrucciones posteriores de forma especulativa y hacer flush en caso de que esté mal la especulación
¿La instrucción STR
genera algún riesgo por dependencia de datos?
No
¿Cuál es el único tipo de riesgo que podemos resolver sin parar (stall
)?
Los de procesamiento de datos aritméticos
¿Cuántos stall
produce la instrucción LDR
?
1
¿Cuántos stall
produce la instrucción de salto?
2
La especulación es:
Intentar predecir el camino que se va a tomar en un salto
Las dos instrucciones después de un salto las vamos a marcar como:
especulativas, si estamos bien, ganamos dos ciclos, sino, hay que hacer flush
Un bucle que especula que no se va a tomar el salto va a estar mal:
Todas las iteraciones menos la última
En el procesador supersegmetado, cada etapa:
Se divide en etapas más cortas
El procesador supersegmentado tiene más ____ y más ____ que el procesador segmentado
dependencias. CPI.
Los procesadores superescalares leen:
Una ventana de instrucciones cada ciclo
El ILP (Instruction Level Parallelism) es:
La cantidad de instrucciones que pueden ser ejecutadas a la vez en un procesador superescalar
En un procesador superescalar, las dependencias verdaderas (RAW) y las de control:
Reducen el ILP
Técnicas que utiliza el hardware en un procesador superescalar para evitar hacer tantas paradas
- Renombramiento de registros
- Ejecución fuera de órden
- Especulación
Los predictores de saltos dinámicos utilizan la ____ para determinar si un salto se va a tomar o no
Historia de la ejecución
Los predictores de saltos dinámicos mantienen una tabla de los últimos saltos tomados por el procesador, llamada:
Branch target buffer
Los predictores de salto dinámicos pueden alcanzar hasta ____ de aciertos
0.9
Al hacer una parada en un procesador superescalar, solo se detienen
Las instrucciones implicadas en el riesgo
Al reordenar las instrucciones, debemos mantener:
Las dependencias de datos
El desenrolle de bucles (loop unrolling):
Replica el cuerpo de un bucle para extraer más paralelismo (evita las penalizaciones por manejo de saltos
Pasos del loop unrolling
- Reordenar
- Desenrollar
IPC=
IPC=1/CPI
Un procesador con multithreading es capaz de:
Gestionar el estado de su arquitectura para que múltiples hilos se ejecuten a la vez
Para ejecutar 4 threads a la vez es necesario:
4 PCs y 4*16 registros
¿Cómo son los registros en las unidades vectoriales?
Son vectores de datos
Las unidades vectoriales tienen ____ de riesgos
ausencia; cada instrucción es una operación distinta
En las unidades vectoriales, un bucle completo se puede:
Transformar en una sola instrucción
Las principales caracterísiticas de un computador cuántico son:
Superposición y Entrelazamiento
Tipos de memoria por nivel en la pirámide de memoria:
- Registros CPU
- MC
- MP
- Almacenamiento
Principio de localidad:
Las referencias a memoria suelen agruparse en una pequeña porción del espacio de memoria
Localidad temporal
Es posible que las direcciones se vuelvan a referenciar en un futuro próximo
Localidad espacial
Es posible que se haga referencia a direcciones cercanas a las recién referenciadas
Concepto de inclusión
Los datos de un nivel se encuentran en un nivel superior
Concepto de coherencia
Los datos en todos los niveles corresponden
Tasa de aciertos
H=(Accesos ciertos)/(Accesos)
Tiempo de penalización
El tiempo de sustitución producto de un fallo
La función de la caché es:
Ser un intermediario entre el CPU y la memoria principal
Definición de política de ubicación y función de correspondencia:
Como corresponden los bloques de caché a los de la memoria principal
Definición de política de reemplazo:
Que bloque hay que reemplazar cuando se presenta un fallo
Definición de política de actualización:
Cuándo se actualiza la MP cuando hay una escritura
Definición de política de inserción:
Qué activa que se carge un bloque de MP a MC
Política de ubicación totalmente asociativa:
Un bloque en memoria principal puede residir en cualquier bloque de MC
¿Cómo se componen los bits de dirección en MC cuando se usa la política totalmente asociativa?
Etiqueta + Palabra
Política de ubicación de correspondencia directa
Los bloques en MP solo pueden ir a determinados bloques en MC
Fórmula para obtener el N° Bloque en MC
N° Bloque en MC= (N° Bloque en MP) MOD(Total bloques MC)
¿Cómo se componen los bits de dirección en MC cuando se usa la política de correspondencia directa?
Etiqueta + Bloque MC + Palabra
“La política de correspondencia directa es ____ compleja que la totalmente asociativa, pero, produce ____ fallos, “menos. más.”
“¿Porqué se dice que indexamos por columnas y no por filas?”,”Por el principio de localidad espacial
no queremos que los datos próximo en MP estén compitiendo por espacio en MC”
¿Cómo funciona la política de ubicación asociativa por conjuntos?
Un bloque de MP solo puede ir a un conjunto de MC, pero puede estar ubicado en cualquier bloque de ese conjunto
¿Cómo se componen los bits de dirección en MC cuando se usa la política asociativa por conjuntos?
Etiqueta + Conjunto MC + Palabra
¿Cuáles son las 3 políticas de reemplazo?
- Aleatorio
- FIFO
- LRU
¿Las políticas de reemplazo solo son aplicables a qué políticas de ubicación?
Totalmente asociativa y Asociativa por conjuntos
¿Cómo funciona LRU?
Cada bloque tiene un contador. Cada iteración se le suma 1 si no fue usado y se resetea a 0 si se usó. Los candidatos a ser reemplazados son los de contador más alto
¿Cuáles son las políticas de actualización?
- Escritura directa: se escribe directamente a MP aunque el bloque esté en caché
- Post-escritura: escribimos directamente en caché hasta que se tenga que reemplazar el bloque o termine la ejecución, entonces hacemos un volcado
Cómo se obtiene el T_CPU cuando hablamos de rendimiento de la caché
T_CPU= [Ciclos de ejecución CPU + Ciclos de bloqueo de memoria]*T_Ciclo
Cómo se obtienen los ciclos de bloqueo de memoria
N° de accesos * Tasa de fallos * Penalización por fallo