Articulo de referencia

Reenvío de operandos

El reenvío de operandos (o reenvío de datos , derivación de registros ) es una optimización en las CPU segmentadas para limitar los déficits de rendimiento que se producen debid...

El reenvío de operandos (o reenvío de datos , derivación de registros ) es una optimización en las CPU segmentadas para limitar los déficits de rendimiento que se producen debido a las paradas de la segmentación causadas por riesgos de datos . [ 1 ] [ 2 ] Un riesgo de datos puede provocar una parada de la segmentación cuando la operación actual tiene que esperar los resultados de una operación anterior que aún no ha terminado.

Es muy común que una instrucción requiera un valor calculado por la instrucción inmediatamente anterior. Escribir el resultado en el banco de registros y luego leerlo para la siguiente instrucción puede llevar varios ciclos de reloj. Para mejorar el rendimiento, se omite la escritura/lectura del banco de registros. El resultado de una instrucción se envía directamente a la etapa de ejecución de la siguiente.

Ejemplo

SUMA ABC #A=B+C SUB DCA #D=CA

Si estas dos instrucciones de pseudocódigo ensamblador se ejecutan en una tubería, después de obtener y decodificar la segunda instrucción, la tubería se detiene, esperando hasta que se escriba y lea el resultado de la suma.

En algunos casos, todos los bloqueos derivados de tales riesgos de datos de lectura después de la escritura pueden eliminarse por completo mediante el reenvío de operandos: [ 3 ] [ 4 ] [ 5 ]

Realización técnica

La unidad de control de la CPU debe implementar lógica para detectar dependencias donde el reenvío de operandos sea apropiado. Posteriormente, se puede utilizar un multiplexor para seleccionar el registro o flip-flop adecuado para leer el operando.

Véase también

Referencias

  1. "CMSC 411 Lección 19, Procesamiento en paralelo de datos" . Departamento de Ciencias de la Computación e Ingeniería Eléctrica de la Universidad de Maryland, Condado de Baltimore . Consultado el 22 de enero de 2020 .
  2. "Computación de alto rendimiento, Apuntes de la clase 11" . hpc.serc.iisc.ernet.in. Septiembre de 2000. Archivado del original el 27 de diciembre de 2013. Consultado el 8 de febrero de 2014 .
  3. Gurpur M. Prabhu. "Tutorial de arquitectura de computadoras". Secciones "Reenvío" y "Clasificación de riesgos de datos" .
  4. Dr. Orion Lawlor. "Pipelining, Pipeline Stalls, and Operand Forwarding" .
  5. Larry Snyder. "Revisión de oleoductos" .
  • Introducción a la segmentación de procesos