Multihilo simultáneo

El multithreading simultáneo, acrónimo de SMT, es una técnica para mejorar la eficiencia global de las CPU superescalares con multithreading de hardware. El SMT permite múltiples hilos de ejecución independientes para aprovechar mejor los recursos que ofrecen las arquitecturas informáticas modernas.

El concepto de multithreading es similar al de multitarea, pero se implementa a nivel de hilo de ejecución en los procesadores superescalares modernos.

En el diseño de procesadores, hay dos formas de aumentar el paralelismo en el chip con menos requisitos de recursos:

  1. Técnica superescalar: que trata de aumentar el paralelismo a nivel de instrucción (ILP) ejecutando múltiples instrucciones al mismo tiempo (denominado: simultáneamente); despachando "simultáneamente" instrucciones (denominado: despacho de instrucciones) a múltiples unidades de ejecución redundantes construidas dentro del procesador.
  2. Técnica de multihilo a nivel de chip (CMT): utiliza el paralelismo a nivel de hilo (TLP) para ejecutar instrucciones de múltiples hilos dentro de un chip de procesador al mismo tiempo.

Hay muchas maneras de soportar más de un hilo dentro de un chip, a saber:

  1. Multithreading intercalado (IMT) : Emisión intercalada de múltiples instrucciones de diferentes hilos, también denominada multithreading temporal. Puede dividirse en multithreading de grano fino o multithreading de grano grueso en función de la frecuencia de las emisiones intercaladas. El multithreading de grano fino emite instrucciones para diferentes hilos después de cada ciclo, mientras que el multithreading de grano grueso sólo cambia para emitir instrucciones de otro hilo cuando el hilo que se está ejecutando en ese momento provoca algunos eventos de larga latencia (como un fallo de página, etc.). El multithreading de grano grueso es más común para un menor cambio de contexto entre hilos. Para los procesadores con un pipeline por núcleo, el multithreading intercalado es la única forma posible, porque sólo puede emitir hasta una instrucción por ciclo.
  2. Multihilo simultáneo (SMT): Emitir varias instrucciones de varios hilos en un ciclo. El procesador debe ser superescalar para hacerlo.
  3. Multiprocesamiento a nivel de chip (CMP o procesador multinúcleo): integra dos o más procesadores superescalares en un chip, cada uno de los cuales ejecuta hilos de forma independiente.
  4. Cualquier combinación de IMT/SMT/CMP

El factor clave para distinguirlos es observar cuántas instrucciones puede emitir el procesador en un ciclo y de cuántos hilos proceden las instrucciones.

Ejemplos de CPUs SMT modernas

  1. El Intel Pentium 4 fue el primer procesador moderno de sobremesa que implementó el multihilo simultáneo, a partir del modelo de 3,06 GHz lanzado en 2002, y desde entonces se introdujo en varios de sus procesadores. Intel denomina a esta funcionalidad Hyper-Threading Technology (HTT), y proporciona un motor básico de dos hilos SMT. Intel afirma que la velocidad mejora hasta un 30% en comparación con un Pentium 4 idéntico sin SMT.
  2. Los últimos diseños de la arquitectura MIPS incluyen un sistema SMT conocido como "MIPS MT".
  3. El IBM POWER5, anunciado en mayo de 2004, se presenta como un DCM de doble núcleo, o un MCM de cuatro u ocho núcleos, y cada núcleo incluye un motor SMT de dos hilos. La implementación de IBM es más sofisticada que las anteriores, ya que puede asignar una prioridad diferente a los distintos hilos, es más fina y el motor SMT puede activarse y desactivarse dinámicamente, para ejecutar mejor aquellas cargas de trabajo en las que un procesador SMT no aumentaría el rendimiento. Se trata de la segunda implementación de IBM del multithreading por hardware generalmente disponible.
  4. El Intel Atom, lanzado en 2008, es el primer producto de Intel que cuenta con SMT (comercializado como Hyper-threading) sin soporte de reordenación de instrucciones, ejecución especulativa o renombramiento de registros.

Páginas relacionadas

Preguntas y respuestas

P: ¿Qué es el multihilo simultáneo?


R: El multihilo simultáneo (SMT) es una técnica para mejorar la eficiencia general de las CPU superescalares con multihilo de hardware. Permite múltiples hilos de ejecución independientes para utilizar mejor los recursos que proporcionan las arquitecturas informáticas modernas.

P: ¿En qué se parece el SMT a la multitarea?


R: El multihilo es similar en concepto a la multitarea, pero se implementa a nivel de hilo de ejecución en los procesadores superescalares modernos, mientras que la multitarea se implementa a nivel de proceso.

P: ¿Cuáles son las dos formas de aumentar el paralelismo en chip?


R: Las dos formas de aumentar el paralelismo en chip son la técnica superescalar y la multitarea a nivel de chip (CMT).

P: ¿Cuáles son los distintos tipos de multihilo a nivel de chip?


R: Los distintos tipos de multihilo a nivel de chip incluyen el multihilo intercalado (IMT), el multihilo de grano fino, el multihilo de grano grueso y el multihilo simultáneo (SMT).

P: ¿Cómo se puede distinguir entre IMT/SMT/CMP?


R: El factor clave para distinguir entre IMT/SMT/CMP es observar cuántas instrucciones puede emitir el procesador en un ciclo y de cuántos hilos proceden las instrucciones.

P: ¿Qué tipo de procesador debe utilizarse para SMT?


R: Para SMT debe utilizarse un procesador superescalar.

P: ¿Qué tipo de procesador utiliza el multiprocesamiento a nivel de chip?


R: El multiprocesamiento a nivel de chip utiliza procesadores multinúcleo que integran dos o más procesadores superescalares en un chip, cada uno de los cuales ejecuta hilos de forma independiente.

AlegsaOnline.com - 2020 / 2023 - License CC3