p4 o p4ht

ach3chin0

Os cuento caballeros:

Evidentemente merece la pena que vuestro micro lleven integrada la circuiteria HT. En un ppio solo estaba destinada al 3.06 Ghz, hace cosa de unos pocos meses empezaron a integrarlo en los mVID 2.4, 2.6, 2.8, 3.0 y finalmente en el 3.2Ghz.

Para entender que es el HyperThread teneis que entender claramente las diferencias entre SuperThread, MultiThread e HyperThread. Creo que la importancia es tal que voy a explayarme con el tema.

*Reflexion acerca de la multitarea: Aunque nos de la sensacion de que nuestro procesador esta haciendo varias tareas o "polls" simultaneos, esto NO es asi.

Asi que mientras pensamos que todos nuestros programas estan siendo ejecutados simultaneamente. Cada uno de nuestros programas "piensan" que estan monopolizando nuestra CPU y DRAM. El programa por lo tanto "cree" que tiene acceso total al espacio de direccionamiento de memoria (esto es acceso total al mapa de nuestra DRAM) y que la CPU esta constantemente ejecutando este programa sin ningun tipo de interrupcion. Por supuesto es totalmente FALSO.

El programa en cuestion, esta compartiendo con todas los demas programas residentes y tiene que "esperar" su turno para poder ser ejecutado por la CPU (recordad el post de IRQŽs donde os explicaba todo este contexto) :)

Como podeis ver usamos el termino "programa" de forma muy general, para dar una vision mas concreta vamos a diferenciar entre "Process", "Context" y "Thread".
Para expresarnos con propiedad, lo que nosotros llamamos programa es mas apropiado llamarlo PROCESO. Asociado a cada proceso hay un CONTEXTO, este contexto es la informacion detallada que describe el estado de ejecucion del proceso (Registros de CPU, Flags, etc...).

Los Procesos estan constituidos por "THREADS", vemos nuestro primer acercamiento al termino HyperThread. Al igual que para explicar el Overclock antes entendimos el termino Clock y para entender lo que es una Peticion de Interrupcion IRQ entendimos que era una interrupcion, tenemos que entender que es un THREAD para entender el HyperThread.

Como deciamos antes, los Threads constituyen los procesos. En cada proceso al menos hay 1 Thread, este es el denominado "Thread principal de Ejecucion".
Los procesos pueden estar formados de varios threads y cada uno de ellos tener un contexto local amen del contexto general que comparten todos los threads que forman un proceso.

Daros cuenta que al no poder la CPU ejecutar mas que 1 solo proceso a la vez, este tiene que ser ejecutado y posteriormente "flushed" o eliminado para hacer sitio a otro proceso con un alto nivel de preferencia. Cuando decimos que estamos ejecutandolo, lo que hacemos es cargar ese CONTEXTO (Flags, etc...). El proceso de ir cargando Contextos e ir ahorrando espacio para el proceso posterior se denomina "Context Switch".
Esa switch de threads lleva consigo penalizaciones de dtdos ciclos de reloj. y por lo tanto restan capacidad de proceso de threads por parte de nuestro microprocesador. Para aliviar estos problemas podemos añadir otra CPU a nuestra plataforma, esto es el SMP (Multiproceso Paralelo Simultaneo). Es decir equipos DUALES, todos conocemos los XEONES, ATHLON MP, etc....

En los tipicos sistemas DUALES, el Sistema Operativo, asigna 2 procesos para ejecutar al mismo tiempo, cada uno ejecutado claramente por una CPU. El resultado es que tenemos mas tiempo de ejecucion para unos procesos concretos a ejecutar y un menor tiempo de espera en terminos de flush.

En sistemas duales, ambos contexts de los procesos se alojan en cada micro independientemente, codigo y datos se flushean y dejan espacio a un nuevo proceso. Vemos por tanto que las posibilidades de procesado se duplican.

La razon de que estos sistemas NO sean MUY eficientes se remonta a la arquitectura del Front End de la propia CPU (Esto lo explicaremos mas adelante, ahora con que entendais lo que hemos explicado YA ES suficiente :)

***Esta es la forma de proceso de los XEON, ATHLON MP, etc....

Un paso adelante del multiproceso paralelo en el SuperTHREAD...

*SuperThread: Las CPUŽs denominadas asi son aquellas que pueden ejecutar mas de 1 Thread al mismo tiempo. Es decir su FRONT-end puede alojar chunks de varios procesos simultaneamente, es por tanto un paso adelante o como dicen los britanicos "One Step Beyond in Threading-Performance".

Al igual que explique en su momento las diferencias entre ancho de banda teorico y ancho de banda real. En la arquitectura SuperThread hay menos slots libres del Front END, es decir, el procesado en terminos de ejecucion es mas efectivo. Vemos que el SuperThreading nos permite un gran avance en relacion con el Multiproceso Paralelo Simultaneo.

Ejemplos de arquitecturas SuperThread es la CMA super-escalar.

http://tab.computer.org/tcca/HPCA-4/tsai.pdf

INTERESANTISIMO articulo del Superthread, algo denso desde luego.

Vayamos ahora con el HyperThread...
*HyperThread: Tb llamado MultiThread simultaneo, considerado por la mayoria como una clara evolucion del Superthreading. Va mas alla de la limitacion de que los slots del FRONT-end provengan del mismo thread. Para tener una vision mas clara de la perspectiva tenemos que entender que en las CPU Hyperthreaded, estas desde la perspectiva del Sistema Operativo las divide en 2 procesadores logicos, los threads se pueden "asignar" al igual que explique en el Multiproceso Paralelo Simultaneo, cada context a 1 CPU logica.

La TREMENDA ventaja del HyperThread es que permite ese uso de los slots logicos del FRONT-end de una manera mas eficiente, haciendo que el nucleo de ejecucion trabaje de forma mas eficiente. Asi que entended que ese FRONT-end esta siendo utilizado de forma OPTIMA. La circuiteria HT de los micro de INTEL, segun reza su datasheet ocupa un 3% del tamaño de su die. Como hablamos en su momento del diseño de microprocesadores, NO era buena idea implementar el clock generator en la die ya que era mejor idea dejar espacio a futura circuiteria mas avanzada.

http://www.intel.com/technology/hyperthread/index.htm

Excelente articulo del tema

Por tanto, la circuiteria HT solo se percibe en el "mundo real" en conmutacion de tareas,NO he notado ninguna mejoria en el rendimiento de juegos.

Evidentemente merece la pena pillar un micro HT, ya que estan a disposicion nuestra a un precio MUY interesante. El 2.4c HT esta rondando los 230 euros.

Sandevil

Joee joeee sigueeeee kero maaaas..

A ver si lo he entendido:
P.e. con dos procesos en una sola cpu. la multitarea se hace asignando un tiempo de reloj al proceso A, cuando se le acaba, se hace un flush para eliminarlo, y se guarda el contexto actual de ese proceso; se sigue con el B de la misma manera y cuando vuelve al proceso A, carga el contexto y sigue donde lo dejo?

P.D.: Si montas una academia avisa que me apunto.

ach3chin0

Exacto Sandevil, todo esto a velocidades MUY altas, tanto que nos parece casi imperceptible esa conmutacion de tareas. Asi que esa conmuntacion de contextos se hace de la misma forma ;)

H

B

Interesante, yo tengo un P4 HT a 3,06 y no sabia nada de esto :)
Mmmm, este "empalme" de procesos ahora entiendo pk suponen una innovacion en el campo de los procesadores, ta mui currado xD

Sandevil

Ains.. siempre he sido de AMD.. pero ahora con el Tema del HT, me parece que tendre mas dificil la decision de compra de mi proximo micro y placa....

ZeroX_r00lz

Wena explicacion H (como todas las k das xD)
Anda si ta sande, como siempre aportando lo k sabe (es muxo xd)
Yo tambien me apunto a essas clases xD

Tema cerrado

Usuarios habituales