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