La Red de Conocimientos Pedagógicos - Aprendizaje de japonés - Tecnología de subprocesos múltiples síncronos de Microsoft

Tecnología de subprocesos múltiples síncronos de Microsoft

Tecnología Hyper-Threading basada en arquitectura NetBurst: OOOE SMT

Tecnología Hyper-Threading basada en arquitectura Itanium: IOE CMT

Tecnología Hyper-Threading basada en arquitectura Atom: IOE SMT

Hyper-threading basado en la arquitectura Nehalem: OOOE SMT SMT (multi-threading síncrono) es en realidad un nombre propio y el nombre de una tecnología que es adoptada no sólo por Nehalem sino también por muchos procesadores comerciales como Pentium 4. . La situación correcta debería ser que la tecnología HT de Nehalem sea la misma que la tecnología HT del Pentium 4, que pertenece a la tecnología SMT.

De hecho, muchos procesadores Intel utilizan tecnología hyper-threading, excepto Pentium 4 (arquitectura NetBurst) y Core i7 (arquitectura Nehalem), Itanium 2 (Mondecito) y Atom (Silverthorne), pero están equipados ¡Con tecnología HT no pertenece a SMT!

Antes de clasificar las diversas tecnologías de hiperprocesamiento HT de Intel, revisemos primero la clasificación de las tecnologías de subprocesamiento múltiple. Multi-threading Multi-threading es una tecnología que ejecuta múltiples subprocesos de trabajo simultáneamente en un solo núcleo de procesamiento. A diferencia de CMP (Chip Multi-Processing), la potencia de procesamiento del sistema se mejora al integrar múltiples núcleos de procesamiento. -tecnología central ahora. Todos los procesadores convencionales utilizan tecnología CMP.

Sin embargo, la tecnología CMP añade los circuitos correspondientes a gran escala y aumenta los costes. La tecnología MT (multithreading) no es así. Solo necesita agregar unas pocas líneas (generalmente alrededor de 2) para aumentar la potencia de procesamiento general del procesador y mejorar fácilmente el rendimiento de las aplicaciones relacionadas.

El multithreading se originó a partir de una idea llamada ILP (Instruction Level Parallelism), que se remonta a la década de 1990. Esta idea dio origen a un término llamado computación de rendimiento, que se utiliza para mejorar el rendimiento de la computación paralela, como las transacciones en línea. Las dos formas principales de calcular el rendimiento son el multiprocesamiento y el multiproceso.

Al principio, para desarrollar ILP, superescalar (múltiples ejecutores al mismo tiempo), ejecución fuera de orden (permitiendo que instrucciones sin dependencias de datos se ejecuten simultáneamente), predicción de rama dinámica, VLIW (Very Long Instrucción Word) y otras tecnologías (las tres primeras se pueden ver en la arquitectura clásica Pentium Pro y la última en Itanium Pro). Sin embargo, los superescalares aumentan en gran medida la complejidad del diseño. Al mismo tiempo, los datos entre instrucciones están relacionados con el control, el ILP desarrollable es limitado y otros factores dificultan que los procesadores superescalares clásicos mejoren aún más el rendimiento del procesador.

Y desde la perspectiva de las aplicaciones, aplicaciones como el procesamiento de transacciones en línea (OLTP), los sistemas de soporte de decisiones (DSS) y los servicios web se caracterizan por un rico paralelismo a nivel de subprocesos y la falta de ILP, lo que promueve la multi- Procesamiento y apariencia de subprocesos múltiples.

La idea de la tecnología de subprocesos múltiples es algo similar a los primeros sistemas informáticos de tiempo compartido. Cuando un procesador que ejecuta múltiples subprocesos se detiene debido a una pérdida de caché o una falla en la predicción de rama, puede cambiar a otro subproceso para su ejecución. Hay tres formas de subprocesos múltiples convencionales. La diferencia radica en los recursos compartidos entre los subprocesos y el mecanismo de cambio de subprocesos:

Entre ellos, CMT y FMT son tecnologías bajo una única unidad de ejecución. No es diferente en el nivel de instrucción. Verdadero "paralelo", mientras que SMT tiene múltiples unidades de ejecución y puede ejecutar múltiples instrucciones al mismo tiempo, por lo que las dos primeras a veces se clasifican como TMT (multiproceso temporal) para distinguirlas de SMT.

En primer lugar, se introduce el subproceso múltiple de grano grueso CMT porque es la tecnología de subprocesos múltiples más simple. Cuando un único subproceso de ejecución encuentra un retraso prolongado (como una pérdida de caché), cambia de subproceso hasta que se completa la operación que el subproceso original estaba esperando. El subproceso múltiple aproximado a veces se denomina subproceso múltiple en bloque para evitar el subproceso múltiple, o subproceso múltiple cooperativo para coordinar el subproceso múltiple.

Debido a que CMT es simple, muchos procesadores lo implementan y, además de los que se enumeran a continuación, muchos microcontroladores integrados también lo implementan:

1999 IBM RS64 III "Pulsar" (núcleo único/ dual thread)

2005 Fujitsu SPARC64 VI "Olympus-C-C" (doble núcleo/cuatro hilos)

2006 Intel Itanium 2 "Montecito" (doble núcleo/4 hilos)

2007 Intel Itanium 2 "Montvale" (doble núcleo/4 subprocesos)

Intel Itanium 2 es impresionante en FMT: los subprocesos más detallados pueden cambiar entre múltiples subprocesos en cualquier momento dentro de cada ciclo de reloj para lograr la máxima capacidad de salida; por supuesto, cambiar en cualquier momento también es costoso, lo que prolonga el tiempo de ejecución promedio de cada hilo de ejecución. El multiproceso de grano fino a veces se denomina multiproceso intercalado o multiproceso preventivo.

En comparación con CMT, FMT es más complejo, por lo que no hay tantos procesadores correspondientes, por ejemplo:

2005 sun ultrasparc t1 "Niagara" (8 núcleos/32 subprocesos)

p>

2007 Sun Ultrasparc T2 "Niagara 2" (8 núcleos/64 hilos)

De hecho, UltraSPARC T2 también utiliza otras tecnologías MT, lo que hace que su multihilo Capacidad dos veces mayor que la de T1. Eche un vistazo más de cerca a la imagen de arriba. ¿Qué tecnología MT utiliza T2 (tenga en cuenta que CMT en el primer párrafo se refiere a subprocesos múltiples de chip, no a subprocesos múltiples de grano grueso)?

Aunque el uso de la tecnología FMT en las CPU aún no ha comenzado en NV G40 y ATI R520, la tecnología FMT de subprocesos múltiples de grano fino ha comenzado a aplicarse en las GPU. Para ocultar la alta latencia de memoria causada por los errores de caché, las unidades de ejecución en la GPU cambian constantemente entre subprocesos de trabajo para aumentar la potencia de procesamiento general. Sin embargo, no sé cuántos subprocesos implementa el FMT del G40. Según los datos, debería rondar los 100.

Como se mencionó anteriormente, SMT es en realidad diferente de las otras dos tecnologías de subprocesos múltiples: estas dos tecnologías se denominan subprocesos múltiples temporales de TMT. El subproceso múltiple síncrono SMT tiene múltiples unidades de ejecución y puede ejecutar múltiples instrucciones al mismo tiempo, por lo que se llama "subproceso múltiple síncrono". SMT se originó a partir de explotar plenamente el potencial de los procesadores de arquitectura superescalar: superescalar significa que se pueden ejecutar múltiples instrucciones diferentes simultáneamente. Por lo tanto, SMT tiene la mayor flexibilidad y utilización de recursos, pero también es el más complejo de implementar (por supuesto, es pan comido en comparación con las estructuras de múltiples núcleos).

2002 Intel Pentium 4 Xeon "Prestonia" (un solo núcleo/doble hilo)

2007 Sun Ultrasparc T2 "Niagara 2" (8 núcleos/64 hilos)

2008 Intel Core i7 "Nehalem" (4 núcleos/8 hilos)

Aquí volvemos a ver UltraSPARC T2, porque utiliza tecnología FMT y SMT: porque UltraSPARC T2 tiene dos unidades de ejecución, una para cada hilo grupo, y los cuatro subprocesos ejecutados en el grupo de subprocesos son T1. Las GPU modernas también adoptan un diseño híbrido similar:

Diferentes procesadores de flujo pueden ejecutar diferentes subprocesos al mismo tiempo. Por supuesto, el mismo procesador de flujo también puede cambiar entre diferentes subprocesos. Después de presentar varias tecnologías MT de subprocesos múltiples, echemos un vistazo a la tecnología de hiperprocesamiento de Intel. Como se mencionó anteriormente, las CPU de Intel que utilizan tecnología Hyper-Threading incluyen Pentium 4 (arquitectura NetBurst), Core i7 (arquitectura Nehalem), Itanium 2 (Mondecito) y Atom (Silverthorne). Ya sabemos que los Pentium 4/Pentium 4 Xeon con tecnología Hyper-Threading (no todos los P4 tienen tecnología Hyper-Threading) usan arquitectura SMT, y el Core i7 es una versión mejorada.

Echemos un vistazo a Itanium 2: Itanium 2 Montecito utiliza un diseño de doble núcleo con dos subprocesos por núcleo; la tecnología de hiperprocesamiento de Itanium 2 Montecito utiliza la arquitectura CMT. Se puede ver que la tecnología de hiperprocesamiento de Itanium 2 es diferente de la de Pentium 4; SMT, en realidad es tecnología de subprocesos múltiples de grano grueso CMT. Esto se debe a que Itanium 2 es una arquitectura ordenada y la intención original de SMT es exprimir por completo la capacidad OOOE (ejecución fuera de orden), por lo que la arquitectura ordenada de Itanium 2 no utiliza SMT. Porque el costo de crear varios subprocesos es demasiado alto.

Entonces, ¿un procesador de arquitectura en orden no puede implementar SMT? No, Atom de Intel es un ejemplo típico: además de Atom, el monstruo Power6 de IBM (la frecuencia inicial es de 4,7 GHz) también utiliza tecnología SMT basada en arquitectura en orden (el SMT de Power5 se basa en fuera de orden): IBM Power 6 Procesador, doble núcleo, dos subprocesos por núcleo; Power6: SMT en orden, mientras que Power5 es SMT fuera de servicio.