La tecnología Hyper-Threading es una forma de tecnología SMT (Simultaneous Multithreading Technology) de tal manera que múltiples Threads de una aplicación Software pueden ser ejecutados simultáneamente en un único procesador.
Esto se consigue duplicando el Architectural State de cada procesador. De esta manera el procesador físico se muestra al sistema como dos procesadores lógicos, pudiendo así un procesador lógico dedicarse a ejecutar una operación de coma flotante mientras el segundo procesador lógico puede ejecutar operaciones de carga y suma.
En la familia de procesadores Intel Xeon con Hyper-Threading los recursos de ejecución estan compartidos por dos Architectural-States o dos procesadores lógicos, y la mayor parte de estos recursos se encuentran en el motor de ejecución rápida y en el subsistema de cache integrada.
A continuación pasaremos a describir con brevedad cada uno de los diferentes componentes del HT.
*Fetch & Deliver Engine, es el encargado de buscar las instrucciones desde cada uno de los procesadores lógicos alternando la búsqueda y enviar la instrucción al Rapid Execution engine. En el nivel de cache L1 se alternan cada una línea es asignada a un procesador lógico y la otra línea al segundo procesador lógico, esto es así mientras los dos procesadores necesiten acceder a la cache de ejecución, en caso contrario, si uno solo de los procesadores lógicos tiene que acceder a la cache de ejecución utilizara todo el ancho de banda.
*Rapid Ejecución Engine, es el encargado de extraer las instrucciones de las colas de instrucciones y enviarlas hacia las unidades de ejecución lo mas rápidamente posible, según las dependencias de otras instrucciones y la posibilidad de uso de las unidades de ejecución. Cabe la posibilidad de que se ejecuten instrucciones out-of-order. Para esto existe un scheduler, este no distingue entre instrucciones, su única función es hacer un índice de las colas de instrucciones.
*Integrated Cache Subsystem. Este sistema se encarga de ofrecer datos e instrucciones al core del procesador a una alta velocidad, La cache esta compartida por ambos procesadores lógicos, de tal manera que ambos pueden compartir los datos albergados en la misma, que esta diseñada para ofrecer un alto potencial de asociabilidad entre procesadores lógicos, minimizando la posibilidad de la existencia de conflictos entre estos a la hora de acceder a la cache
*Recorder and Retire Block, este bloque es el encargado de ordenar las instrucciones ejecutadas out-of-order en su correcta posición dentro del programa.
*Bus de sistema. El bus de sistema de 400Mhz esta diseñado para incrementar el throutput del multi-proceso y para mejorar el ancho de banda de acceso a memoria para el Hyper-Threading ofreciendo una ancho de banda total de 3.2GB/s.
Siento el rollo si alguno tiene mas interes me prepare un curso de esto para impartirlo a unos clientes y tengo un cojon de informacion..