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
Leer las respuestas