Casa / Internet / alta tecnología. Hyper threading, ¿qué es y por qué? CPU con soporte Hyper Threading

alta tecnología. Hyper threading, ¿qué es y por qué? CPU con soporte Hyper Threading

15.03.2013

La tecnología Hyper-Threading apareció en Procesadores Intel, da miedo decirlo, hace más de 10 años. Y de momento es un elemento importante de los procesadores Core. Sin embargo, la cuestión de la necesidad de HT en los juegos aún no se comprende por completo. Decidimos realizar una prueba para ver si los jugadores necesitan un Core i7 o si es mejor arreglárselas con un Core i5. Y también descubra cómo Core i3 es mejor que Pentium.


La tecnología Hyper-Threading, desarrollada por Intel y utilizada exclusivamente en los procesadores de la compañía, comenzando con el memorable Pentium 4, ahora es algo que se da por sentado. Está equipado con una cantidad significativa de procesadores de las generaciones actuales y anteriores. También se utilizará en un futuro próximo.

Y hay que admitir que la tecnología Hyper-Threading es útil y tiene un efecto positivo en el rendimiento, de lo contrario Intel no la usaría para posicionar sus procesadores dentro de la línea. Y no como un elemento menor, sino uno de los más importantes, si no el más importante. Para que quede claro de qué estamos hablando, hemos preparado una tabla que facilita la evaluación del principio de segmentación de los procesadores Intel.


Como puedes ver, hay muy pocas diferencias entre Pentium y Core i3, así como entre Core i5 y Core i7. De hecho, los modelos i3 e i7 difieren de los Pentium e i5 solo en el tamaño del caché de tercer nivel por núcleo (sin contar la frecuencia del reloj, por supuesto). El primer par es de 1,5 megabytes y el segundo de 2 megabytes. Esta diferencia no puede afectar radicalmente el rendimiento de los procesadores, ya que la diferencia en el tamaño de la memoria caché es muy pequeña. Es por eso que Core i3 y Core i7 recibieron soporte para la tecnología Hyper-Threading, que es el elemento principal que permite que estos procesadores tengan una ventaja de rendimiento sobre Pentium y Core i5, respectivamente.

Como resultado, un caché un poco más grande y la compatibilidad con Hyper-Threading le permitirán establecer precios significativamente más altos para los procesadores. Por ejemplo, los procesadores de la línea Pentium (alrededor de 10 mil tenge) son aproximadamente dos veces más baratos que Core i3 (alrededor de 20 mil tenge) y, a pesar de que físicamente, a nivel de hardware, son absolutamente iguales y, en consecuencia. , tienen el mismo costo . La diferencia de precio entre el Core i5 (alrededor de 30 mil tenge) y el Core i7 (alrededor de 50 mil tenge) también es muy grande, aunque menos del doble en los modelos más jóvenes.


¿Hasta qué punto se justifica tal aumento de precio? ¿Qué ganancia real proporciona Hyper-Threading? La respuesta se conoce desde hace mucho tiempo: el aumento puede ser diferente, todo depende de la aplicación y su optimización. Decidimos comprobar qué hace HT en los juegos, como una de las aplicaciones "domésticas" más exigentes. Además, esta prueba será una gran adición a nuestro material anterior sobre el impacto de la cantidad de núcleos del procesador en el rendimiento de los juegos.

Antes de pasar a las pruebas, recordemos (bueno, o descubramos) qué es la tecnología Hyper-Threading. Como dijo la propia Intel, presentar esta tecnología hace muchos años, no hay nada particularmente complicado al respecto. De hecho, todo lo que se necesita para introducir HT a nivel físico es agregar no un conjunto de registros y un controlador de interrupción, sino dos, a un núcleo físico. En los procesadores Pentium 4, estos elementos adicionales aumentó el número de transistores en sólo un cinco por ciento. En los núcleos de Ivy Bridge de hoy (así como en Sandy Bridge y el futuro Haswell), los elementos adicionales para incluso cuatro núcleos no aumentan el troquel ni siquiera en un 1 por ciento.


Los registros adicionales y un controlador de interrupciones, junto con el soporte de software, permiten que el sistema operativo no vea un núcleo físico, sino dos lógicos. Al mismo tiempo, el procesamiento de datos de dos flujos que envía el sistema continúa en el mismo núcleo, pero con algunas características. El procesador completo aún permanece a disposición de un subproceso, pero tan pronto como algunos bloques de CPU se liberan y están inactivos, se colocan inmediatamente a disposición del segundo subproceso. Gracias a esto, fue posible utilizar todas las unidades de procesamiento al mismo tiempo y, por lo tanto, aumentar su eficiencia. Según lo declarado por la propia Intel, la ganancia de rendimiento en condiciones ideales puede alcanzar hasta el 30 por ciento. Cierto, estas cifras son ciertas solo para el Pentium 4 con su muy larga tubería, los procesadores modernos se benefician menos de HT.

Pero las condiciones ideales para Hyper-Threading no siempre se dan. Y lo más importante, el peor resultado del trabajo de HT no es la falta de ganancia de rendimiento, sino su disminución. Es decir, bajo ciertas condiciones, el rendimiento de un procesador con HT caerá en relación con un procesador sin HT debido al hecho de que la sobrecarga de la división de subprocesos y la puesta en cola superará significativamente la ganancia del cálculo de subprocesos paralelos, lo cual es posible en este particular. caso. Y estos casos son mucho más comunes de lo que a Intel le gustaría. Además, muchos años de usar Hyper-Threading no mejoraron la situación. Esto es especialmente cierto para los juegos que son muy complejos y de ninguna manera poco convencionales en términos de cálculo de datos, aplicaciones.

Para descubrir el impacto de Hyper-Threading en el rendimiento de los juegos, nuevamente usamos nuestro procesador de prueba Core i7-2700K de larga data y simulamos cuatro procesadores a la vez al deshabilitar los núcleos y habilitar / deshabilitar HT. Convencionalmente, pueden llamarse Pentium (2 núcleos, HT desactivado), Core i3 (2 núcleos, HT activado), Core i5 (4 núcleos, HT desactivado) y Core i7 (4 núcleos, HT activado). ¿Por qué condicionalmente? En primer lugar, porque según algunas características no se corresponden con productos reales. En particular, deshabilitar los núcleos no conduce a una reducción correspondiente en el volumen de la memoria caché de tercer nivel: su volumen total es de 8 megabytes. Y además, todos nuestros procesadores “condicionales” funcionan a la misma frecuencia de 3,5 GHz, que aún no alcanzan todos los procesadores Intel.


Sin embargo, esto es incluso para mejor, porque gracias a la inmutabilidad de todos parámetros importantes podremos averiguar el impacto real de Hyper-Threading en el rendimiento de los juegos sin reservas. Y la diferencia porcentual de rendimiento entre nuestro Pentium “condicional” y Core i3 será cercana a la diferencia entre procesadores reales, siempre que las frecuencias sean iguales. Tampoco debería ser vergonzoso que estemos usando un procesador Sandy Bridge, ya que nuestras pruebas de eficiencia, sobre las cuales puede leer en el artículo "Desempeño básico: exploración de la eficiencia de ALU y FPU", mostraron que el impacto de Hyper-Threading en Las últimas generaciones de procesadores Core se mantienen sin cambios. Muy probablemente relevante material dado también estará disponible para los próximos procesadores Haswell.

Bueno, parece que se han discutido todas las preguntas sobre la metodología de prueba, así como las características del funcionamiento de la tecnología Hyper-Threading y, por lo tanto, es hora de pasar a lo más interesante: las pruebas.

De vuelta en la prueba, en la que estudiamos el efecto de la cantidad de núcleos del procesador en el rendimiento de los juegos, descubrimos que 3DMark 11 es bastante tranquilo con respecto al rendimiento de la CPU y funciona perfectamente incluso en un solo núcleo. Hyper-Threading tuvo la misma influencia "poderosa". Como puede ver, la prueba no nota en absoluto las diferencias entre el Pentium y el Core i7, por no hablar de los modelos intermedios.

Metro 2033

Pero Metro 2033 notó claramente la aparición de Hyper-Threading. ¡Y reaccionó negativamente! Sí, así es: habilitar HT en este juego tiene un impacto negativo en el rendimiento. Un pequeño impacto, por supuesto: 0,5 fotogramas por segundo con cuatro núcleos físicos y 0,7 con dos. Pero este hecho da todas las razones para decir que en Metro 2033 el Pentium es más rápido que el Core i3 y el Core i5 es mejor que el Core i7. Aquí está la confirmación del hecho de que Hyper-Threading no muestra su efectividad ni siempre ni en todas partes.

crisis 2

Este juego mostró resultados muy interesantes. En primer lugar, notamos que la influencia de Hyper-Threading es claramente visible en los procesadores de doble núcleo: el Core i3 superó al Pentium en casi un 9 por ciento, lo cual es bastante para este juego. ¿Victoria para HT e Intel? En realidad no, ya que el Core i7 no mostró ninguna mejora con respecto al Core i5 notablemente más económico. Pero hay una explicación razonable para esto: Crysis 2 no sabe cómo usar más de cuatro flujos de datos. Debido a esto, vemos un buen aumento en un doble núcleo con HT; después de todo, cuatro subprocesos, aunque sean lógicos, son mejores que dos. Por otro lado, no había dónde colocar hilos Core i7 adicionales, cuatro núcleos físicos eran suficientes allí. Entonces, según los resultados de esta prueba, podemos notar la influencia positiva de HT en el Core i3, que es notablemente mejor que el Pentium aquí. Pero entre los Core i5 de cuatro núcleos nuevamente parece una solución más razonable.

Campo de batalla 3

Aquí los resultados son muy extraños. Si en la prueba de la cantidad de núcleos, el campo de batalla era una muestra de un aumento microscópico pero lineal, entonces la inclusión de Hyper-Threading trajo el caos a los resultados. De hecho, podemos afirmar que el Core i3, con sus dos núcleos y HT, resultó ser el mejor de todos, por delante incluso del Core i5 y Core i7. Extraño, por supuesto, pero al mismo tiempo, el Core i5 y el Core i7 estaban nuevamente al mismo nivel. Lo que explica esto no está claro. Lo más probable es que la metodología de prueba en este juego desempeñó un papel aquí, lo que genera errores más grandes que los puntos de referencia estándar.

En la última prueba, F1 2011 se mostró como uno de los juegos muy críticos con la cantidad de núcleos, y en esta volvió a sorprender con el excelente impacto en el rendimiento de la tecnología Hyper-Threading. Y nuevamente, como en Crysis 2, la inclusión de HT demostró ser muy buena en los procesadores de doble núcleo. Mire la diferencia entre nuestro Core i3 condicional y Pentium: ¡es más del doble! Puedes ver claramente que al juego le faltan dos núcleos y, al mismo tiempo, su código está tan bien paralelizado que el efecto es sorprendente. Por otro lado, no puedes vencer a cuatro núcleos físicos: el Core i5 es notablemente más rápido que el Core i3. Pero el Core i7, nuevamente, como en juegos anteriores, no mostró nada sobresaliente en el contexto del Core i5. La razón es la misma: el juego no puede usar más de 4 subprocesos y la sobrecarga de HT reduce el rendimiento del Core i7 por debajo del nivel del Core i5.

Un viejo guerrero no necesita Hyper-Threading más de lo que un erizo necesita una camiseta: su influencia no es tan pronunciada como en F1 2011 o Crysis 2. Al mismo tiempo, aún notamos que habilitar HT en un dual-core el procesador trajo 1 cuadro adicional. Por supuesto, esto no es suficiente para decir que el Core i3 es mejor que el Pentium. Como mínimo, esta mejora claramente no se corresponde con la diferencia de precio de estos procesadores. Y ni siquiera vale la pena recordar la diferencia de precio entre el Core i5 y el Core i7, ya que el procesador sin soporte HT resultó ser más rápido nuevamente. Y notablemente más rápido, en un 7 por ciento. Nos guste o no, volvemos a afirmar el hecho de que cuatro subprocesos es el máximo para este juego y, por lo tanto, HyperThreading en este caso no ayuda al Core i7, pero interfiere.

Si revisó detenidamente el contenido de la configuración del BIOS, es posible que observe la opción de CPU allí. Hiper subprocesamiento tecnología. Y quizás se preguntaron qué es Hyper Threading (Super-threading o hyper-threading, el nombre oficial es Hyper Threading Technology, HTT), y por qué se necesita esta opción.

Hyper Threading es comparativamente nueva tecnología, desarrollado por Intel para procesadores de arquitectura Pentium. Como ha demostrado la práctica, el uso de la tecnología Hyper Threading ha permitido en muchos casos aumentar el rendimiento de la CPU en aproximadamente un 20-30%.

Aquí debe recordar cómo funciona generalmente la unidad central de procesamiento de una computadora. Tan pronto como enciende la computadora y ejecuta un programa en ella, la CPU comienza a leer las instrucciones contenidas en ella, escritas en el llamado código de máquina. Lee cada instrucción a su vez y las ejecuta una por una.

Sin embargo, muchos programas tienen varios procesos de software ejecutándose simultáneamente. Además, los sistemas operativos modernos permiten al usuario tener varios ejecutar programas. Y no solo permitir: de hecho, la situación en la que se ejecuta un solo proceso en el sistema operativo es completamente impensable hoy en día. Por lo tanto, los procesadores desarrollados con tecnologías más antiguas tenían un rendimiento deficiente en los casos en que era necesario procesar varios procesos simultáneos a la vez.

Por supuesto, para solucionar este problema, puede incluir varios procesadores en el sistema a la vez, o procesadores que utilicen varios núcleos físicos de computación. Pero tal mejora resulta costosa, técnicamente compleja y no siempre efectiva desde un punto de vista práctico.

Historial de desarrollo

Por lo tanto, se decidió crear una tecnología que permitiera procesar varios procesos en un núcleo físico. Al mismo tiempo, para los programas, el asunto se verá como si hubiera varios núcleos de procesador en el sistema a la vez.

La compatibilidad con la tecnología Hyper Threading apareció por primera vez en los procesadores en 2002. Se trataba de procesadores de la familia Pentium 4 y procesadores de servidor Xeon con velocidades de reloj superiores a 2 GHz. Inicialmente, la tecnología tenía el nombre en código Jackson, pero luego su nombre cambió a Hyper Threading, que es más comprensible para el público en general, que se puede traducir aproximadamente como "superthreading".

Al mismo tiempo, según Intel, la superficie de un chip de procesador compatible con Hyper Threading ha aumentado en comparación con el modelo anterior que no lo admite, en solo un 5 %, al tiempo que aumenta el rendimiento en un promedio de 20 %.

A pesar de que la tecnología en su conjunto ha demostrado ser buena, sin embargo, por varias razones, Intel decidió deshabilitar la tecnología Hyper Threading en los procesadores de la familia Core 2 que reemplazó a los Pentium 4. Hyper Threading, sin embargo, reapareció más tarde. en las arquitecturas de procesador de Sandy Bridge, Ivy Bridge y Haswell, siendo sustancialmente rediseñadas en ellas.

La esencia de la tecnología.

Comprender Hyper Threading es importante porque es uno de los funciones clave en procesadores Intel.

A pesar de todos los éxitos que han logrado los procesadores, tienen un inconveniente importante: solo pueden ejecutar una instrucción a la vez. Supongamos que tiene aplicaciones ejecutándose al mismo tiempo, como editor de texto, navegador y Skype. Desde el punto de vista del usuario, este entorno de software puede llamarse multitarea, sin embargo, desde el punto de vista del procesador, esto está lejos de ser el caso. El núcleo del procesador aún ejecutará una instrucción durante un cierto período de tiempo. En este caso, la tarea del procesador incluye la distribución de los recursos de tiempo del procesador entre aplicaciones individuales. Debido a que esta ejecución secuencial de instrucciones es extremadamente rápida, no lo nota. Y te parece que no hay demora.

Pero todavía hay un retraso. El retraso aparece debido a la forma en que el procesador recibe los datos de cada uno de los programas. Cada flujo de datos debe llegar en un momento determinado y ser procesado individualmente por el procesador. La tecnología Hyper Threading hace posible que cada núcleo de procesador programe el procesamiento de datos y asigne recursos simultáneamente para dos subprocesos.

Cabe señalar que en el núcleo de los procesadores modernos hay varias unidades de ejecución a la vez, cada una de las cuales está diseñada para realizar una operación específica en los datos. Al mismo tiempo, algunos de estos dispositivos ejecutivos pueden estar inactivos durante el procesamiento de datos de un subproceso.

Para comprender esta situación, podemos hacer una analogía con los trabajadores que trabajan en el taller de ensamblaje en el transportador y procesan diferentes tipos de piezas. Cada trabajador está equipado con una herramienta específica diseñada para realizar una tarea. Sin embargo, si las piezas llegan en la secuencia incorrecta, entonces hay retrasos, porque algunos de los trabajadores están esperando su turno para comenzar a trabajar. Hyper Threading se puede comparar con una cinta transportadora adicional que se colocó en el taller para que los trabajadores que antes estaban inactivos pudieran realizar sus tareas independientemente de los demás. El taller todavía está solo, pero las piezas se procesan de manera más rápida y eficiente, por lo que se reduce el tiempo de inactividad. Por lo tanto, Hyper Threading hizo posible incluir en el trabajo aquellos dispositivos ejecutivos del procesador que estaban inactivos mientras ejecutaban instrucciones de un hilo.

Tan pronto como encienda una computadora con un procesador de doble núcleo que admita Hyper Threading y abra el Administrador de tareas de Windows (Administrador de tareas) en la pestaña Rendimiento (Rendimiento), encontrará cuatro gráficos en él. Pero esto no significa que en realidad tenga 4 núcleos de procesador.

Esto se debe a que Windows cree que cada núcleo tiene dos procesadores lógicos. El término "procesador lógico" suena divertido, pero significa un procesador que no existe físicamente. Windows puede enviar flujos de datos a cada procesador lógico, pero solo un núcleo está haciendo el trabajo. Por lo tanto, un solo núcleo con tecnología Hyper Threading es significativamente diferente de los núcleos físicos separados.

La tecnología Hyper Threading requiere soporte del siguiente hardware y software:

  • UPC
  • conjunto de chips de la placa base
  • Sistema operativo

Beneficios de la tecnología

Ahora considere la siguiente pregunta: ¿cuánto aumenta el rendimiento de la computadora con la tecnología Hyper Threading? En tareas cotidianas como navegar por Internet y escribir, los beneficios de la tecnología no son tan evidentes. Sin embargo, tenga en cuenta que los procesadores actuales son tan potentes que las tareas diarias rara vez usan el procesador a su máxima capacidad. Además, mucho depende de cómo se escriba. software. Puede tener varios programas ejecutándose a la vez, sin embargo, al observar el gráfico de carga, verá que solo se utiliza un procesador lógico por núcleo. Esto se debe a que el software no admite la distribución de procesos entre núcleos.

Sin embargo, en tareas más complejas, Hyper Threading puede ser más útil. Aplicaciones tales como programas de modelado 3D, juegos 3D, programas de codificación/descodificación de música o video y muchas aplicaciones científicas están escritas para aprovechar al máximo los subprocesos múltiples. Por lo tanto, puede experimentar los beneficios del rendimiento de una computadora con hiperprocesos mientras juega juegos complejos, escucha música o mira películas. Esto puede aumentar el rendimiento hasta en un 30 %, aunque puede haber situaciones en las que Hyper Threading no proporcione ninguna ventaja. A veces, en el caso de que ambos subprocesos carguen todos los dispositivos ejecutivos del procesador con las mismas tareas, puede incluso haber alguna degradación del rendimiento.

Volviendo a la presencia en la configuración del BIOS de la opción correspondiente que le permite configurar los parámetros de Hyper Threading, en la mayoría de los casos se recomienda habilitar esta función. Sin embargo, siempre puedes apagarlo si resulta que la computadora está funcionando con errores o incluso tiene menos rendimiento de lo que esperabas.

Conclusión

Dado que el aumento máximo de rendimiento al usar Hyper Threading es del 30%, no se puede decir que la tecnología sea equivalente a duplicar la cantidad de núcleos del procesador. Sin embargo, Hyper Threading es una opción útil y usted, como propietario de una computadora, no interferirá con ella. Su ventaja se nota especialmente, por ejemplo, cuando editas archivos multimedia o usas tu computadora como estación de trabajo para programas profesionales como Photoshop o Maya.

Hubo un tiempo en que era necesario evaluar el rendimiento de la memoria en el contexto de la tecnología Hyper-threading. Llegamos a la conclusión de que su influencia no siempre es positiva. Cuando había una cantidad de tiempo libre, había un deseo de continuar la investigación y considerar los procesos en curso con una precisión de ciclos de máquina y bits, utilizando software de nuestro propio diseño.

Plataforma investigada

El objeto de los experimentos - portátil asus N750JK con procesador Intel Core i7-4700HQ. La velocidad del reloj es de 2,4 GHz, impulsada por el modo Intel Turbo Boost hasta 3,4 GHz. 16 gigas instalados memoria de acceso aleatorio DDR3-1600 (PC3-12800) funcionando en modo de doble canal. Sistema operativo - Microsoft Windows 8.1 64 bits.

Fig.1 Configuración de la plataforma estudiada.

El procesador de la plataforma en estudio contiene 4 núcleos, que cuando se habilita la tecnología Hyper-Threading, brinda soporte de hardware para 8 hilos o procesadores lógicos. El firmware de la plataforma pasa esta información al sistema operativo a través de la tabla ACPI MADT (tabla de descripción de APIC múltiple). Dado que la plataforma contiene solo un controlador de RAM, no existe una SRAT (tabla de afinidad de recursos del sistema) que declare la proximidad de los núcleos del procesador a los controladores de memoria. Obviamente, la computadora portátil en cuestión no es una plataforma NUMA, pero Sistema operativo, a los efectos de la unificación, lo considera como un sistema NUMA con un dominio, como lo indica la línea NUMA Nodes = 1. El hecho fundamental para nuestros experimentos es que el caché de datos de primer nivel tiene un tamaño de 32 kilobytes para cada uno de los cuatro núcleos. Dos procesadores lógicos que comparten el mismo núcleo comparten las cachés L1 y L2.

operación investigada

Investigaremos la dependencia de la velocidad de lectura del bloque de datos con su tamaño. Para ello, elegiremos el método más productivo, es decir, la lectura de operandos de 256 bits mediante la instrucción VMOVAPD AVX. En los gráficos, el eje X muestra el tamaño del bloque y el eje Y muestra la velocidad de lectura. En la vecindad del punto X, correspondiente al tamaño de la memoria caché L1, esperamos ver un punto de inflexión, ya que el rendimiento debería caer después de que el bloque que se está procesando salga de la memoria caché. En nuestra prueba, en el caso de subprocesos múltiples, cada uno de los 16 subprocesos iniciados funciona con un rango de direcciones separado. Para controlar la tecnología Hyper-Threading dentro de una aplicación, cada subproceso utiliza la función API SetThreadAffinityMask, que establece una máscara en la que cada procesador lógico corresponde a un bit. Un solo valor del bit permite el uso del procesador especificado por el subproceso especificado, un valor cero lo prohíbe. Para 8 procesadores lógicos de la plataforma estudiada, la máscara 11111111b permite usar todos los procesadores (Hyper-Threading habilitado), la máscara 01010101b permite usar un procesador lógico en cada núcleo (Hyper-Threading deshabilitado).

En los gráficos se utilizan las siguientes abreviaturas:

MBPS (Megabytes por Segundo)velocidad de lectura del bloque en megabytes por segundo;

CPI (relojes por instrucción)número de ciclos por instrucción;

TSC (contador de marca de tiempo)contador de ciclos del procesador.

Nota: Es posible que la velocidad del reloj del registro TSC no coincida con la velocidad del reloj del procesador cuando se ejecuta en modo Turbo Boost. Esto debe tenerse en cuenta a la hora de interpretar los resultados.

En el lado derecho de las gráficas se visualiza un volcado hexadecimal de las instrucciones que componen el cuerpo del ciclo de la operación objetivo realizada en cada uno de los hilos del programa, o los primeros 128 bytes de este código.

Experiencia número 1. un hilo



Figura 2 Leyendo en un hilo

La velocidad máxima es de 213563 megabytes por segundo. El punto de inflexión se produce en un tamaño de bloque de unos 32 kilobytes.

Experiencia número 2. 16 subprocesos en 4 procesadores, Hyper-Threading deshabilitado



Fig. 3 Lectura en dieciséis hilos. El número de procesadores lógicos utilizados es de cuatro.

Hyper-threading está deshabilitado. La velocidad máxima es de 797598 megabytes por segundo. El punto de inflexión se produce en un tamaño de bloque de unos 32 kilobytes. Como era de esperar, en comparación con la lectura en un hilo, la velocidad aumentó aproximadamente 4 veces, en términos de la cantidad de núcleos de trabajo.

Experiencia número 3. 16 subprocesos en 8 procesadores, Hyper-Threading habilitado



Figura 4 Lectura en dieciséis hilos. El número de procesadores lógicos utilizados es de ocho.

Hyper-threading habilitado. La velocidad máxima de 800722 megabytes por segundo, como resultado de la inclusión de Hyper-Threading, casi no aumentó. El gran inconveniente es que el punto de inflexión se produce en un tamaño de bloque de unos 16 kilobytes. La habilitación de Hyper-Threading aumentó ligeramente la velocidad máxima, pero la caída de la velocidad ahora ocurre a la mitad del tamaño del bloque, alrededor de 16 kilobytes, por lo que la velocidad promedio se redujo significativamente. Esto no es sorprendente, cada núcleo tiene su propio caché L1, mientras que los procesadores lógicos del mismo núcleo lo comparten.

recomendaciones

La operación investigada escala bastante bien en un procesador multinúcleo. Las razones son que cada uno de los núcleos contiene su propia memoria caché de primer y segundo nivel, el tamaño del bloque de destino es comparable al tamaño de la memoria caché y cada uno de los subprocesos funciona con su propio rango de direcciones. Con fines académicos, creamos tales condiciones en una prueba sintética, y nos dimos cuenta de que las aplicaciones reales suelen estar lejos de la optimización ideal. Pero la inclusión de Hyper-Threading, incluso en estas condiciones, tuvo un efecto negativo, con un ligero aumento en la velocidad máxima, hay una pérdida significativa en la velocidad de procesamiento de bloques, cuyo tamaño está en el rango de 16 a 32 kilobytes.

Hola amantes de la informática y el hardware.

¿Te gustaría tener un procesador de alto rendimiento en tu computadora que pueda realizar muchas tareas al mismo tiempo a la velocidad del rayo? ¿Quién se negaría, verdad? Entonces le sugiero que se familiarice con la tecnología de hiperprocesamiento: qué es y cómo funciona, aprenderá de este artículo.


Explicación del concepto

Hyper-threading se traduce del inglés como "hiperprecisión". La tecnología obtuvo un nombre tan grande por una razón. Después de todo, el sistema operativo necesita un procesador físico equipado con él para dos núcleos lógicos. En consecuencia, se procesan más comandos y el rendimiento no disminuye.

¿Cómo es esto posible? Debido al hecho de que el procesador:

  • Guarda información sobre varios subprocesos en ejecución a la vez;
  • Para cada procesador lógico, hay un conjunto de registros: bloques de memoria interna rápida, así como un bloque de interrupciones. Este último es responsable de la ejecución secuencial de solicitudes desde diferentes dispositivos.

¿Cómo se ve en la realidad? Supongamos ahora que el procesador físico procesa los comandos del primer procesador lógico. Pero en este último hubo algún tipo de falla y, por ejemplo, necesita esperar datos de la memoria. El físico no perderá tiempo e inmediatamente cambiará al segundo procesador lógico.

Acerca de la mejora del rendimiento

La eficiencia de un procesador físico, por regla general, no supera el 70%. ¿Por qué? A menudo, algunos bloques simplemente no son necesarios para realizar una tarea en particular. Por ejemplo, cuando la CPU realiza acciones computacionales triviales, el bloque de instrucciones y la extensión SIMD no están involucrados. Sucede que se produce un fallo en el módulo de predicción de bifurcaciones o al acceder a la caché.

En tales situaciones, Hyper-threading llena los "vacíos" con otras tareas. Por lo tanto, la efectividad de la tecnología radica en el hecho de que el trabajo útil no está inactivo y se entrega a los dispositivos inactivos.

Apariencia e implementación

Podemos suponer que Hyper-threading ya ha celebrado su 15º aniversario. Después de todo, se desarrolló sobre la base de la tecnología Super-Threading, que se lanzó en 2002 y comenzó a funcionar por primera vez en productos Xeon, luego, en el mismo año, se integró en Pentium 4. Los derechos de autor de estas tecnologías pertenecen a Intel.

HT se implementa en procesadores que se ejecutan en la microarquitectura NetBurst, que se caracteriza por altas velocidades de reloj. El soporte tecnológico está implementado en modelos de las familias Core vPro, M y Xeon. Sin embargo, en la serie Core 2 ("Duo", "Quad"), no está integrado. Una tecnología similar en principio de funcionamiento se implementa en los procesos Atom e Itanium.

¿Cómo habilitarlo? Debe tener no solo uno de los procesadores anteriores, sino también un sistema operativo que admita la tecnología y un BIOS que tenga la opción de activar y desactivar HT. Si no, actualice el BIOS.

Pros y contras de Hyperthreading

Ya podría sacar una conclusión sobre algunas de las ventajas de la tecnología a partir de la información anterior. Les agregaré algunas palabras más:

  • Funcionamiento estable de varios programas en paralelo;
  • Reducción del tiempo de respuesta al navegar por Internet o utilizar aplicaciones.

Como comprenderá, no fue sin una mosca en el ungüento. Es posible que no haya aumento de rendimiento por las siguientes razones:

  • No hay suficiente memoria caché. Por ejemplo, en los procesadores i7 de 4 núcleos, la memoria caché es de 8 MB, pero hay la misma cantidad de núcleos lógicos. Obtenemos solo 1 MB por núcleo, que no es suficiente para que la mayoría de los programas realicen tareas informáticas. Debido a esto, el rendimiento no solo se detiene, sino que incluso cae.

  • Dependencia de datos. Suponga que el primer subproceso requiere información inmediatamente del segundo, pero aún no está listo o está en cola para otro subproceso. También sucede que los datos cíclicos necesitan ciertos bloques para completar rápidamente una tarea, pero ya están ocupados con otro trabajo.
  • Sobrecarga del núcleo. Sucede que es posible que el kernel ya esté sobrecargado, pero a pesar de esto, el módulo de predicción aún le envía datos, como resultado de lo cual la computadora comienza a ralentizarse.

¿Dónde se necesita Hyper-threading?

La tecnología será útil cuando se utilicen programas intensivos en recursos: editores de audio, video y fotos, juegos, archivadores. Estos incluyen Photoshop, Maya, 3D's Max, Corel Draw, WinRar, etc.

Es importante que el software esté optimizado para Hyper-threading. De lo contrario, pueden producirse retrasos. El hecho es que los programas consideran que los núcleos lógicos son físicos, por lo que pueden enviar diferentes tareas a un mismo bloque.

Estoy deseando verte en mi blog.

Los usuarios que al menos una vez han estado configurando el BIOS probablemente ya hayan notado que hay un parámetro Intel Hyper Threading que es incomprensible para muchos. Muchos no saben qué es esta tecnología y con qué propósito se utiliza. Intentemos descubrir qué es Hyper Threading y cómo puede habilitar el uso de este soporte. También intentaremos averiguar qué ventajas le da a una computadora. esta configuración. En principio, no hay nada difícil de entender aquí.

Intel Hyper Threading: ¿qué es?
Si no profundiza en la jungla de la terminología informática, sino para decirlo en términos simples, esta tecnología se desarrolló para aumentar el flujo de comandos procesados ​​​​simultáneamente por el procesador central. Los chips de procesadores modernos, por regla general, utilizan solo el 70% de las capacidades informáticas disponibles. El resto queda, por así decirlo, en reserva. En cuanto al procesamiento del flujo de datos, en la mayoría de los casos solo se utiliza un hilo, a pesar de que el sistema utiliza un procesador multinúcleo.

Principios básicos de trabajo.
Para aumentar las capacidades del procesador central, se desarrolló tecnología especial hiperprocesamiento. Esta tecnología facilita la división de un flujo de comandos en dos. También es posible agregar una segunda transmisión a una existente. Solo una transmisión de este tipo es virtual y no funciona a nivel físico. Este enfoque le permite aumentar significativamente el rendimiento del procesador. Todo el sistema, en consecuencia, comienza a funcionar más rápido. El aumento en el rendimiento de la CPU puede fluctuar bastante. Esto se discutirá por separado. Sin embargo, los propios desarrolladores de la tecnología Hyper Threading afirman que no llega a ser un núcleo completo. En algunos casos, el uso de esta tecnología está plenamente justificado. Si conoce la esencia de los procesadores Hyper Threading, el resultado no tardará en llegar.

referencia histórica
Vamos a sumergirnos un poco en la historia de este desarrollo. El soporte para Hyper Threading apareció por primera vez solo en los procesadores Intel Pentium 4. Más tarde, la implementación de esta tecnología continuó en la serie Intel Core iX (X aquí significa serie de procesador). Cabe señalar que, por alguna razón, está ausente en la línea de chips de procesador Core 2. Es cierto que el aumento de la productividad fue bastante débil: en algún lugar en el nivel del 15-20%. Esto indicaba que el procesador no contaba con la potencia de procesamiento necesaria, y la tecnología creada estaba prácticamente adelantada a su tiempo. Hoy en día, el soporte para la tecnología Hyper Threading ya está disponible en casi todos los chips modernos. Para aumentar la potencia del procesador central, el proceso en sí utiliza solo el 5% de la superficie del cristal, dejando espacio para procesar comandos y datos.

Una cuestión de conflictos y performance
Todo esto ciertamente es bueno, pero en algunos casos, al procesar datos, puede haber una ralentización en el trabajo. Esto se debe principalmente al llamado módulo de predicción de sucursales y al tamaño de caché insuficiente cuando se recarga constantemente. Si hablamos del módulo principal, entonces, en este caso, la situación es tal que, en algunos casos, el primer hilo puede requerir datos del segundo, que pueden no estar procesados ​​en ese momento o estar en la cola de procesamiento. Además, no menos comunes son las situaciones en las que el núcleo de la CPU tiene una carga muy seria y, a pesar de esto, el módulo principal continúa enviándole datos. Algunos programas y aplicaciones, como los juegos en línea que consumen muchos recursos, pueden ralentizarse seriamente solo porque carecen de optimización para el uso de la tecnología Hyper Threading. ¿Qué pasa con los juegos? El sistema informático del usuario, por su parte, trata de optimizar los flujos de datos desde la aplicación al servidor. El problema es que el juego no sabe cómo distribuir flujos de datos de forma independiente, volcando todo en un montón. En general, es posible que simplemente no esté diseñado para esto. A veces, en los procesadores de doble núcleo, el aumento de rendimiento es significativamente mayor que en los de 4 núcleos. Simplemente no tienen el poder de procesamiento.

¿Cómo habilitar Hyper Threading en BIOS?
Ya hemos descubierto un poco sobre qué es la tecnología Hyper Threading y nos hemos familiarizado con la historia de su desarrollo. Nos hemos acercado a comprender qué es la tecnología Hyper Threading. ¿Cómo activar esta tecnología para su uso en el procesador? Aquí todo se hace de manera bastante simple. Debe utilizar el subsistema de gestión del BIOS. El subsistema se ingresa usando las teclas Del, F1, F2, F3, F8, F12, F2+Del, etc. Si está utilizando una computadora portátil Sony Vaio, entonces tienen una entrada específica cuando usan la tecla ASSIST dedicada. En la configuración del BIOS, si el procesador que está utilizando es compatible con la tecnología Hyper Threading, debe haber una línea de configuración especial. En la mayoría de los casos, se parece a la tecnología Hyper Threading y, a veces, se parece a la función. Dependiendo del desarrollador del subsistema y Versiones de BIOS, la configuración de este parámetro puede estar contenida en el menú principal o en la configuración avanzada. Para habilitar esta tecnología, debe ingresar al menú de opciones y establecer el valor en Habilitado. Después de eso, debe guardar los cambios realizados y reiniciar el sistema.

¿Por qué es útil Hyper Threading?
Para concluir, me gustaría hablar sobre los beneficios que brinda el uso de la tecnología Hyper Threading. ¿Para qué es todo esto? ¿Por qué es necesario aumentar la potencia del procesador a la hora de procesar información? Aquellos usuarios que trabajan con aplicaciones y programas que consumen muchos recursos no necesitan explicar nada. Muchas personas probablemente saben que los paquetes de software de diseño gráfico, matemático y requieren muchos recursos del sistema en el proceso de trabajo. Debido a esto, todo el sistema se carga tanto que comienza a ralentizarse terriblemente. Para evitar que esto suceda, se recomienda habilitar la compatibilidad con Hyper Threading.