Técnicas hardware para optimizar el uso de los registros en procesadores superescalares

  1. MONREAL ARNAL, TERESA
Dirigida por:
  1. Víctor Viñals Yufera Director/a
  2. Mateo Valero Cortés Codirector/a

Universidad de defensa: Universidad de Zaragoza

Fecha de defensa: 17 de junio de 2003

Tribunal:
  1. Ramón Beivide Palacio Presidente/a
  2. José Luis Briz Velasco Secretario/a
  3. Ana María Ripoll Aracil Vocal
  4. Juan Navarro Guerrero Vocal
  5. Clemente Rodríguez Lafuente Vocal

Tipo: Tesis

Teseo: 97105 DIALNET

Resumen

El Banco de Registros es considerado uno de los componentes más críticos que poseen los procesadores actuales. La tendencia actual de ejecutar más instrucciones en paralelo, hace que los procesadores se diseñen con un hardware que cada vez es más complejo. Para soportar la ejecucción paralela de este número creciente de instrucciones, deben incorporarse a la microarquitectura elementos más complejos en tamaño y/o control. En particular, va a ser crítico el tiempo de acceso y el consumo de energía de un Banco de Registros que posea un número elevado de registros y de puertos. Esta Tesis trata de la optimización del uso que se hace de los registros con el objetivo de reducir la complejidad del Banco de Registros. Una mejor utilización de los registros, se traduce en dos direcciones: en un aumento del rendimiento (IPC) manteniendo el mismo tamaño del Banco de Registros o en una reducción del tamaño del Banco de Registros y por lo tanto de su tiempo de acceso, sin pérdida de rendimiento. Para ello, nos centramos primero en el estudio de la asignación y la liberación de los registros en procesador convencional, detectando las ineficiencias de esta gestión convencional. En concreto, mostrandos cómo los registros se asignan a las instrucciones mucho más pronto se liberan mucho más tarde de lo que realmente es necesario. A continuación, presentamos un conjunto de técnicas hardware para mejorar la eficiencia en la asignación de los registros y que se basan en retrasar esa asignación hasta el final de la etapa de ejecución de las instrucciones. Después presentamos dos técnicas que permiten mejorar la eficiencia en la liberación de los registros y que se basan en adelantar esa liberación a la etapa de commit de las instrucciones que utilizan los registros por última vez. Finalmente, para la parte de la asignación y para la de liberación seleccionamos las dos mejores técnicas y las componemos juntas en una nueva. Com