Fw: HT o no HT, he aquí el dilema

23/01/2004 - 01:24 por Diego Calleja García | Informe spam
El Thu, 22 Jan 2004 11:11:05 -0800 "SemiP" <anonymous@discussions.microsoft.com> escribió:


¿Que pasa cuando se ponen muchas etapas en el pipeline de un procesador?(Procesadores Intel)
Que si hay un error, pues se tienen que recargar todas las etapas y entonces se crean
tiempos muertos. La solucion Intel a ese problema es el Hyperthreading. Tapar los huecos.




(NOTA: El proposito de la respuesta no es responder al evidente intento
de flame/desinformación -me parece realmente triste que haya gente capaz
de sobreponer el dinero sobre algunos principios morales- sino tener una
(agradable) discusión técnica con cierta gente con la que se puede discutir
de las cosas por aquí. Tengo muchas dudas sobre este tema, y despues del
desinformado post original me veia "obligado" a comentar mas en detalle de que
va todo esto para ver si alguien me puede clarificar y corregir algunos aspectos
de toda esta historia. Esta es mi visión del asunto)

AMD no puede hacer la memoria mas rápida. Traer un dato de la memoria RAM que
no estén en los caches del procesador puede tardar el tiempo equivalente a 400
instrucciones o mas en un sistema moderno. Ese es uno de los principales
problemas de los ordenadores de hoy en dia, a pesar de ser "mas rapidos",
en realidad es que con el tiempo se han ido haciendo mas _lentos_ (para poner
un ejemplo, los Amiga podían llevar un dato a la cpu DOS veces en el mismo
ciclo de reloj, y por lo visto utilizaban el truco para manejar una peticion
tanto de los buses del sistema, pci, o lo que llevara aquello) como del
procesador en un solo ciclo de reloj. Para mas inri, mientras la frecuencia
a la que trabajan los procesadores se ha duplicado varias veces a lo largo
de los años, el tamaño de las caches no ha aumentado mucho...

El hypertreading, al menos como yo lo entiendo (que no es mucho)
es ponerse a hacer algo en ese laaargo espacio de tiempo en el que la CPU no
hace nada (en realidad no es asi, pero creo que es el resultado mas
beneficioso que se le puede sacar)

El hypertreading, que en realidad se llama SMT y creo que fue
inventado por Digital a finales de los años 70, no es una mala idea,
ni es un parche para nada, y de hecho otros fabricantes de cpus (Sun,
IBM) tienen planes para incorporar esto a sus micros. De hecho para el G5
he oido rumores que iban a incorporar SMT "real, no como el de Intel". Si el
SMT de Intel es bueno o no no lo se, eso depende de que partes del procesador
se duplican, cuales se comparten y como se comporten. AMD, frente al problema
de la latencia, ha hecho, en mi opinion dos cosas: una, el integrar el
controlador de memoria en el x86-64, que ha mejorado el rendimiento
considerablemente (y que es, en mi opinion, LA razon por la que
el opteron tiene tan buenos resultados en muchos benchmarks y no otra,
aunque no soluciona el problema porque el ritmo actual tiene a seguir
aumentando la latencia) y 2) los rumores de cpus multi-core (varias cpus
reales "enfrascadas" en una sola. Que no es ni de lejos lo mismo que el SMT.

En un ordenador SMP se tiene el mismo problema que en un procesador
normal: No se pueden mantener al núcleo de ejecución de instrucciones
del procesador al 100% continuamente, asique aunque con SMP se pueden
hacer "mas cosas a la vez", en realidad lo que se hace desde un punto
de vista global es "mantener al núcleo de ejecución desocupado a ratos
DOS veces". SMT lo que trata es de mantener la ocupación tanto
como sea posible. Es por ello por lo que afirmo, que el SMT NO es
un simple parche. Es una buena idea. Si el SMT de Intel es el mejor
del mundo no lo sé, pero estoy convencido de que es una buena idea,
y no tengo ninguna duda en que los principales fabricantes de CPUs
van a empezar a implementar SMT en sus procesadores...y tambien estoy
seguro de que las futuras versiones del HT de Intel serán mucho mas
completas que las actuales.

* Articulo muy bueno sobre el hypertreading:
http://arstechnica.com/paedia/h/hyp...ing-1.html

Preguntas similare

Leer las respuestas

#1 Rodolfo Parrado Gutiérrez
23/01/2004 - 02:06 | Informe spam
Si lastima que la persona no se dedica mas bien a mostrar pruebas tecnicas realizadas por el, que ha buscar en internet todo lo que le pueda echar tierra a su competidor...

Si uno pudiera tener la oprtunidad probaria las cosas y mostraria aca resultados

-
Rodolfo Parrado Gutiérrez
Bogotá - Colombia
-
Este mensaje se proporciona "como está" sin garantías de ninguna índole, y no otorga ningún derecho.
-
Asegúrese de buscar desde el enlace sobre lo que esta preguntando, ya que muchas veces la pregunta ya fue respondida más de una vez
http://groups.google.com/groups?hl=....public.es
-

"Diego Calleja García" escribió en el mensaje news:
El Thu, 22 Jan 2004 11:11:05 -0800 "SemiP" escribió:

¿Que pasa cuando se ponen muchas etapas en el pipeline de un procesador?(Procesadores Intel)
Que si hay un error, pues se tienen que recargar todas las etapas y entonces se crean
tiempos muertos. La solucion Intel a ese problema es el Hyperthreading. Tapar los huecos.




(NOTA: El proposito de la respuesta no es responder al evidente intento
de flame/desinformación -me parece realmente triste que haya gente capaz
de sobreponer el dinero sobre algunos principios morales- sino tener una
(agradable) discusión técnica con cierta gente con la que se puede discutir
de las cosas por aquí. Tengo muchas dudas sobre este tema, y despues del
desinformado post original me veia "obligado" a comentar mas en detalle de que
va todo esto para ver si alguien me puede clarificar y corregir algunos aspectos
de toda esta historia. Esta es mi visión del asunto)

AMD no puede hacer la memoria mas rápida. Traer un dato de la memoria RAM que
no estén en los caches del procesador puede tardar el tiempo equivalente a 400
instrucciones o mas en un sistema moderno. Ese es uno de los principales
problemas de los ordenadores de hoy en dia, a pesar de ser "mas rapidos",
en realidad es que con el tiempo se han ido haciendo mas _lentos_ (para poner
un ejemplo, los Amiga podían llevar un dato a la cpu DOS veces en el mismo
ciclo de reloj, y por lo visto utilizaban el truco para manejar una peticion
tanto de los buses del sistema, pci, o lo que llevara aquello) como del
procesador en un solo ciclo de reloj. Para mas inri, mientras la frecuencia
a la que trabajan los procesadores se ha duplicado varias veces a lo largo
de los años, el tamaño de las caches no ha aumentado mucho...

El hypertreading, al menos como yo lo entiendo (que no es mucho)
es ponerse a hacer algo en ese laaargo espacio de tiempo en el que la CPU no
hace nada (en realidad no es asi, pero creo que es el resultado mas
beneficioso que se le puede sacar)

El hypertreading, que en realidad se llama SMT y creo que fue
inventado por Digital a finales de los años 70, no es una mala idea,
ni es un parche para nada, y de hecho otros fabricantes de cpus (Sun,
IBM) tienen planes para incorporar esto a sus micros. De hecho para el G5
he oido rumores que iban a incorporar SMT "real, no como el de Intel". Si el
SMT de Intel es bueno o no no lo se, eso depende de que partes del procesador
se duplican, cuales se comparten y como se comporten. AMD, frente al problema
de la latencia, ha hecho, en mi opinion dos cosas: una, el integrar el
controlador de memoria en el x86-64, que ha mejorado el rendimiento
considerablemente (y que es, en mi opinion, LA razon por la que
el opteron tiene tan buenos resultados en muchos benchmarks y no otra,
aunque no soluciona el problema porque el ritmo actual tiene a seguir
aumentando la latencia) y 2) los rumores de cpus multi-core (varias cpus
reales "enfrascadas" en una sola. Que no es ni de lejos lo mismo que el SMT.

En un ordenador SMP se tiene el mismo problema que en un procesador
normal: No se pueden mantener al núcleo de ejecución de instrucciones
del procesador al 100% continuamente, asique aunque con SMP se pueden
hacer "mas cosas a la vez", en realidad lo que se hace desde un punto
de vista global es "mantener al núcleo de ejecución desocupado a ratos
DOS veces". SMT lo que trata es de mantener la ocupación tanto
como sea posible. Es por ello por lo que afirmo, que el SMT NO es
un simple parche. Es una buena idea. Si el SMT de Intel es el mejor
del mundo no lo sé, pero estoy convencido de que es una buena idea,
y no tengo ninguna duda en que los principales fabricantes de CPUs
van a empezar a implementar SMT en sus procesadores...y tambien estoy
seguro de que las futuras versiones del HT de Intel serán mucho mas
completas que las actuales.

* Articulo muy bueno sobre el hypertreading:
http://arstechnica.com/paedia/h/hyp...ing-1.html
Respuesta Responder a este mensaje
#2 SemiP
23/01/2004 - 02:17 | Informe spam
AMD no puede hacer la memoria mas rápida. Traer un dato de la memoria RAM que



Esto es cierto AMD no fabrica memorias.

no estén en los caches del procesador puede tardar el tiempo equivalente a 400
instrucciones o mas en un sistema moderno. Ese es uno de los principales
problemas de los ordenadores de hoy en dia, a pesar de ser "mas rapidos",
en realidad es que con el tiempo se han ido haciendo mas _lentos_ (para poner
un ejemplo, los Amiga podían llevar un dato a la cpu DOS veces en el mismo
ciclo de reloj, y por lo visto utilizaban el truco para manejar una peticion
tanto de los buses del sistema, pci, o lo que llevara aquello) como del
procesador en un solo ciclo de reloj. Para mas inri, mientras la frecuencia
a la que trabajan los procesadores se ha duplicado varias veces a lo largo
de los años, el tamaño de las caches no ha aumentado mucho...

El hypertreading, al menos como yo lo entiendo (que no es mucho)
es ponerse a hacer algo en ese laaargo espacio de tiempo en el que la CPU no
hace nada (en realidad no es asi, pero creo que es el resultado mas
beneficioso que se le puede sacar)



Ahi me estas dando la razon ya que de la memoria pasa al cache y del cache pasa a las pipelines
por lo tanto si se produce un fallo en las pipelines tienen que recargarse de nuevo y con el hyperthreading
lo que hace es mezclar threds en las pipelines para que falle menos.


El hypertreading, que en realidad se llama SMT y creo que fue
inventado por Digital a finales de los años 70, no es una mala idea,
ni es un parche para nada, y de hecho otros fabricantes de cpus (Sun,
IBM) tienen planes para incorporar esto a sus micros. De hecho para el G5
he oido rumores que iban a incorporar SMT "real, no como el de Intel". Si el
SMT de Intel es bueno o no no lo se, eso depende de que partes del procesador
se duplican, cuales se comparten y como se comporten. AMD, frente al problema
de la latencia, ha hecho, en mi opinion dos cosas: una, el integrar el
controlador de memoria en el x86-64, que ha mejorado el rendimiento
considerablemente (y que es, en mi opinion, LA razon por la que
el opteron tiene tan buenos resultados en muchos benchmarks y no otra,
aunque no soluciona el problema porque el ritmo actual tiene a seguir
aumentando la latencia) y 2) los rumores de cpus multi-core (varias cpus
reales "enfrascadas" en una sola. Que no es ni de lejos lo mismo que el SMT.



El controlador de memoria si que es una de las razones pero te olvidas de Hypertransport.
Un bus de 800 MHz(pronto 1GHz) de 32 bits(16 bits ida+16 bits vuelta) DDR que da 6,4 GB/s 3,2 por canal(pronto 8 GB/s 4 por canal).


En un ordenador SMP se tiene el mismo problema que en un procesador
normal: No se pueden mantener al núcleo de ejecución de instrucciones
del procesador al 100% continuamente, asique aunque con SMP se pueden
hacer "mas cosas a la vez", en realidad lo que se hace desde un punto
de vista global es "mantener al núcleo de ejecución desocupado a ratos
DOS veces". SMT lo que trata es de mantener la ocupación tanto
como sea posible. Es por ello por lo que afirmo, que el SMT NO es
un simple parche. Es una buena idea. Si el SMT de Intel es el mejor
del mundo no lo sé, pero estoy convencido de que es una buena idea,
y no tengo ninguna duda en que los principales fabricantes de CPUs
van a empezar a implementar SMT en sus procesadores...y tambien estoy
seguro de que las futuras versiones del HT de Intel serán mucho mas
completas que las actuales.



Con pocas etapas en los pipelines los tiempos muertos se minimizan.
Te recuerdo que el Opteron tiene 12.

* Articulo muy bueno sobre el hypertreading:
http://arstechnica.com/paedia/h/hyp...ing-1.html
Respuesta Responder a este mensaje
#3 Diego Calleja García
23/01/2004 - 09:39 | Informe spam
El Fri, 23 Jan 2004 02:17:58 +0100 "SemiP" escribió:

Ahi me estas dando la razon ya que de la memoria pasa al cache y del cache pasa a las pipelines
por lo tanto si se produce un fallo en las pipelines tienen que recargarse de nuevo y con el hyperthreading
lo que hace es mezclar threds en las pipelines para que falle menos.



Ciertamente, se trata de eso pero...

Un bus de 800 MHz(pronto 1GHz) de 32 bits(16 bits ida+16 bits vuelta) DDR que da 6,4 GB/s 3,2 por canal(pronto 8 GB/s 4 por canal).



El ancho de banda es indiferente. El problema real hoy en dia es la *latencia*.
Respuesta Responder a este mensaje
#4 Diego Calleja García
23/01/2004 - 12:19 | Informe spam
El Fri, 23 Jan 2004 11:18:23 +0100 "SemiP" escribió:

Pero con pocas etapas la latencia disminulle.



¿Y que efecto secundario tiene la longitud de las etapas que hace que influya
en el tiempo que pasa desde que la CPU pide un dato hasta que ese dato vuelve
a la CPU?
Respuesta Responder a este mensaje
#5 Diego Calleja García
23/01/2004 - 13:14 | Informe spam
El Fri, 23 Jan 2004 12:32:19 +0100 "SemiP" escribió:

Sin HT que si hay un fallo en el predictor de saltos se tienen que recargar todas las etapas.

Y eso genera un tiempo perdido.




Lo cual no afecta para nada a la latencia de acceso a la memoria. Simplemente influye
en cuantas veces te vas a tener que enfrentar a esa latencia.

Una de las cosas que se rumorean para el próximo micro de Intel es que podría tener
varios predictores de saltos para tener que evitar recargas innecesarias.

Por otra parte¿Hypertransport que pinta en todo esto? Por los documentos
que estoy leyendo (http://download.microsoft.com/downl..._TPA56.exe)
Hypertransport solamente conecta a CPUs entre si a CPUs con dispositivos. No
influye para nada en el acceso a la memoria principal...eso se hace a traves
del controlador de memoria integrado.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida