Peligros (hazards), registros de pipeline MIPS y sumadores binarios: solucionario
Clasificado en Informática
Escrito el en
español con un tamaño de 5,89 KB
Actualizado el
Resumen
Solucionario de preguntas sobre arquitectura de computadoras: el sumador completo y la función del generador de acarreo, los tres tipos de peligros (estructurales, de datos y de control) con ejemplos y soluciones, y el papel del compilador. Incluye también la función de los registros de pipeline en MIPS y sus etapas asociadas.
Puntos clave
- Un sumador completo de un bit suma A, B y el acarreo de entrada (Cin); la unidad generadora de acarreo produce los acarreos de salida.
- Los tres tipos de peligros en un pipeline son estructurales, de datos y de control o salto.
- Un peligro de datos aparece cuando una instrucción necesita el resultado de una anterior, como sub que depende de add.
- Los peligros de control se abordan con detención (stall), predicción simple o predicción con historial.
- El compilador reduce peligros mediante planificación o reordenamiento de instrucciones.
- Los registros de pipeline en MIPS son IF/ID, ID/EX, EX/MEM y MEM/WB, y transfieren datos entre etapas en cada ciclo de reloj.
Resumen generado con IA a partir del documento. Ponte a prueba
Solucionario de Conceptos Fundamentales en Arquitectura de Computadoras
1. Tabla de Verdad de un Sumador Completo de un Bit
Pregunta: Escriba la tabla de verdad de un sumador completo (con acarreo) de un bit.
Solución: La tabla de verdad se encuentra detallada en las diapositivas impresas del curso.
2. Función de la Unidad Generadora de Bits de Acarreo en un Sumador Binario
Pregunta: Para un sumador binario, ¿qué función cumple la unidad generadora de bits de acarreo?
Solución: La unidad generadora de bits de acarreo se encarga de producir los bits de acarreo de salida correspondientes a la suma binaria de los datos de entrada (por ejemplo, los bits A y B) y el bit de acarreo de entrada (Cin).
3. Tipos de Peligros (Hazards) en un Camino de Datos Encauzado (Pipeline)
Pregunta: En un camino de datos encauzado (pipeline), se pueden producir tres tipos de peligros (hazards). Mencione cuáles son, cuándo ocurren y dé un ejemplo de cada uno.
Solución: Los tres tipos de peligros son: Estructurales, de Datos y de Control (o Salto).
Peligros Estructurales
- Ocurrencia: Se producen cuando el hardware no soporta una combinación específica de instrucciones que intentan usar el mismo recurso simultáneamente.
- Ejemplo: En la analogía de la lavandería, se produce un peligro estructural si la lavadora y la secadora están en la misma máquina, impidiendo que dos prendas se procesen en paralelo en esas etapas.
Peligros de Datos
- Ocurrencia: Ocurren cuando una instrucción debe esperar el resultado de una instrucción anterior para poder ejecutarse correctamente.
- Ejemplo: Una operación de suma seguida de una resta que depende del resultado de esa suma.
En este caso, la instrucciónadd $s0, $t0, $t1 sub $t2, $s0, $t3subno puede ejecutarse hasta queaddhaya escrito su resultado en$s0.
Peligros de Control o Salto
- Ocurrencia: Se producen cuando el flujo de ejecución del programa no es el esperado, generalmente debido a instrucciones de bifurcación o salto. El pipeline no sabe qué instrucción buscar a continuación hasta que se resuelve el salto.
- Soluciones Comunes:
- Detención (Stall): Detener el pipeline cuando se realiza la fase de búsqueda (fetch) de una instrucción de salto hasta que se determine el destino.
- Predicción Simple: Intentar predecir el resultado del salto. Por ejemplo, asumir que nunca se toman los saltos y, si se toma, vaciar el pipeline y reiniciar.
- Predicción con Historial: Utilizar un predictor de saltos que mantenga un historial de los saltos tomados o no tomados para mejorar la precisión de la predicción.
4. Rol del Compilador en la Solución de Peligros (Hazards)
Pregunta: Explique cómo puede ayudar el compilador en la solución de los peligros (hazards).
Solución: El compilador puede disminuir significativamente la ocurrencia de peligros reordenando o adelantando instrucciones en el orden de ejecución. Esto se conoce como planificación de instrucciones o reordenamiento de código, donde se insertan instrucciones independientes entre las que tienen dependencias para evitar detenciones del pipeline.
5. Función y Nomenclatura de los Registros de Pipeline en MIPS
Pregunta: Explique qué función cumplen los registros de pipeline en un camino de datos encauzado, cuántos hay y cómo se llaman en MIPS.
Solución: Los registros de pipeline son elementos de almacenamiento intermedios que permiten descomponer la ejecución de cada instrucción en varias etapas. Su función principal es transferir los datos y el estado de una etapa a la siguiente, permitiendo que múltiples instrucciones se procesen simultáneamente en diferentes fases del pipeline.
Estos registros necesitan ser lo suficientemente anchos (grandes) como para albergar todos los bits necesarios para transferir información de una etapa a otra (por ejemplo, 64, 128 o 97 bits) durante un ciclo de reloj. Las instrucciones avanzan desde un registro de pipeline al siguiente en cada ciclo.
Etapas del Pipeline MIPS y sus Registros Asociados:
- IF/ID (Instruction Fetch / Instruction Decode): Registro entre la etapa de búsqueda de instrucción y la de decodificación.
- IF (Instruction Fetch): Carga la instrucción a ejecutar desde la memoria de instrucciones.
- ID (Instruction Decode y Register File Read): Decodifica la instrucción y lee los valores de los registros necesarios.
- ID/EX (Instruction Decode / Execute): Registro entre la etapa de decodificación y la de ejecución.
- EX (Execution o Address Calculation): Ejecuta la operación ALU o calcula la dirección de memoria.
- EX/MEM (Execute / Memory Access): Registro entre la etapa de ejecución y la de acceso a memoria.
- MEM (Data Memory Access): Realiza operaciones de lectura o escritura en la memoria de datos.
- MEM/WB (Memory Access / Write Back): Registro entre la etapa de acceso a memoria y la de escritura de resultados.
- WB (Write Back): Almacena el resultado final de la instrucción en un registro del procesador.
Preguntas frecuentes
¿Cuáles son los tres tipos de peligros en un pipeline?
Son los peligros estructurales, de datos y de control o salto. Los estructurales ocurren cuando dos instrucciones necesitan el mismo recurso, los de datos cuando una instrucción depende del resultado de otra, y los de control cuando el flujo de ejecución no es el esperado por un salto.
¿Cómo ayuda el compilador a solucionar los peligros?
El compilador reordena o adelanta instrucciones independientes para colocarlas entre las que tienen dependencias. Así se evitan detenciones del pipeline.
¿Cuántos registros de pipeline tiene MIPS y cómo se llaman?
MIPS usa cuatro registros de pipeline: IF/ID, ID/EX, EX/MEM y MEM/WB. Cada uno se sitúa entre dos etapas consecutivas.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.