Artículos y Reviews . MICROPROCESADORES . Pentium 4 3.06 GHz HT

Pentium 4 3.06 GHz HT

Empresa:
Intel Corp
Modelo:
3.06 GHz con Hyperthreading
Autor:
Eagle
Provisto por:
Varalli Trade
Fecha:
06-02-2003

Hyperthreading:

Los que deseen pasar directamente a las Pruebas, pueden saltear esta pequeña explicación, pero si no conocen nada sobre esta tecnología, les recomiendo lo lean.

La unidad básica de procesamiento en un programa que se ejecuta en cualquier sistema operativo es el "Thread", digamos que cargo un programa como el Kazaa o Winamp y me pongo a escuchar música, el programa básico consta de varios "segmentos" o "bloques" que se dividen para organizar el funcionamiento total del programa, estos múltiples bloques de división se denoniman "threads", digamos, para el caso del winamp, existe un thread encargado de manejar el sonido, otro de manejar el video, playlist, etc, y otro thread encargado de mostrar los plugins de video en pantalla, así, un programa que a simple vista parece ser unificado, esta dividido en múltiples subprogramas o "threads" que son enviados al procesador para su ejecución.

El procesador a su vez consta de "Pipelines" que son unidades de ejecución que procesan o bien cálculos aritméticos simples (ALU - Aritmetic Logic Unit), cálculos complejos de punto flotante (FPU - Floating Point Unit) o cargas y recuperaciones (LR - Load / Restore), la unidad de carga y recuperación funciona a modo de puntero para las demás y es a modo de comparación una "agenda" para que todas las unidades de procesamiento sepan lo que tienen que hacer en un momento dado.

En el procesador en cuestión, disponemos de mas de 7 Pipelines (sumando sus ALU, FPU ), esto provoca un serio problema.

Digamos que poseemos un Thread que utiliza calculos de Punto flotante solamente, junto con otro Thread que utiliza cálculos aritméticos simples solamente, debido a que el procesador NO permite trabajar con varios threads (más de uno) a la vez, el thread posterior debe esperar al anterior, o bien suspender el anterior, ejecutar el posterior y retomar la ejecución del anterior (vía Load/Restore) así, mientras el procesador ejecuta el thread, las unidades de cálculo de punto flotante funcionan mientras que las unidades de ejecución de cálculos aritméticos se encuentran inactivas! o viceversa, este ejemplo esta terriblemente simplificado, pero es una forma lo mas simple posible de explicar este fenómeno.

Es obvio que este no es un caso que ocurra siempre, pero ocurre con mucha frecuencia, claro esta que los threads no tienen porque tener cálculos de punto flotante solamente, o aritméticos solamente, y que muchas veces contienen un mix de ambos, pero de todas formas se hace difícil a imposible llenar todos los pipes de este procesador, principalmente porque el mismo procesador no se encuentra del todo perfeccionado (recordemos que se le quitaron partes originales del diseño para abaratar costos en el momento de su creación)

El Pentium 4, es un procesador SÚPER Escalar, con un pipeline MASIVO y serias falencias en la distribución de trabajo entre sus pipes, principalmente por algunas malas decisiones de Intel en su momento, debido a esto se ve incapaz de ejecutar todas las instrucciones en paralelo que necesita para llenar sus Pipelines y así la mayoría de sus unidades de ejecución se encuentran inactivas en general, por consiguiente, el rendimiento de toda la arquitectura interna del Pentium 4 se estima en apenas un 30% de su potencial.

Ahora, introducimos el Hyperthreading, o procesamiento de threads en paralelo. (esta es la forma que Intel escogió para arreglar las falencias del Pentium 4)

Con este nuevo recurso, el procesador muestra al sistema operativo 2 procesadores (cuando en verdad existe uno solo), así, la unidad de ejecución total se divide en 1 Procesador físico y 2 procesadores lógicos (que son los que ve el sistema operativo).

Ahora, planteemos el mismo esquema una vez mas, 2 threads con cálculos aritméticos y de punto flotante, listos para ejecución., el sistema operativo cree disponer de 2 procesadores, así que envía 1 thread a cada procesador, físicamente, estos 2 threads son recibidos por el Pentium 4 y sus datos enviados en "paralelo" a sus unidades de ejecución, así, los Pipelines se utilizan con mayor frecuencia, esta tecnología le permite (según Intel) mejorar el rendimiento de los Pipelines Internos del Pentium 4 de 30% a un 50% !.

Para ilustrar este ejemplo les dejo un gráfico sacado de Anandtech y que corresponde a Intel.

El único inconveniente en la utilización de Hyperthreading sería cuando 2 threads poseen información similar, ya que en este caso el procesador debe "duplicar" la información con la consecuente "perdida" de velocidad, pero, basado en la práctica y en todos los test realizados hasta el momento, esto ocurre rara vez y si ocurre la perdida de velocidad es de menos del 2%.

Para los que quieran una explicación mas avanzada al respecto, pueden consultar la página de Intel o alguna otra fuente que hable sobre el Hyperthreading.

Si me preguntan a mí, todo este asunto del Hyperthreading me parece un gran "fiasco", no por la tecnología en si, porque funciona bastante bien, sino porque ahora Intel esta convenciendo a los "developers" que optimicen su software para Hyperthreading, cuando en realidad esto es algo que tendría que hacer el procesador por si mismo, sin recurrir a estas artimañas, básicamente esto es así porque la parte mas importante del Pentium 4, la encargada de predecir el movimiento de instrucciones a través del procesador se encuentra incapacitada, a medio funcionar y es totalmente ineficiente, de esta forma el procesador no sabe como reaccionar ante una serie de comandos y se ve incapaz de trabajar eficientemente, esto es algo que por comparación el Athlon lo logra con excesiva ventaja, es por eso que el Pentium 4 necesita optimizaciones específicas de SSE2 y Hyperthreading para tomar ventaja mientras que el Athlon se ve beneficiado con cualquier optimización o no optimización que se haga, la arquitectura del Athlon es mucho más eficiente, por otra parte, esta es la razón por la cual clock por clock la arquitectura Athlon es superior.

Ahora, pasemos a analizar este procesador.


Comentarios (0) | RSS 2.0

Páginas: « Anterior | 1 2 3 4 5 6 7 8 9 10 | Siguiente »

login

encuesta

¿Que procesador tiene tu PC?

  • AMD
  • Intel
  • Otros

Ver resultados

Ver encuestas anteriores