Intel Core un rival digno para K8 y K9
-
¿Por que dices que la cache L2 no puede estar compartida entre los dos nucleos? Tiene mucho sentido, por una parte pierdes en rendimiento porque la latencia de la cache es mas alta (en el Conroe es mas alta que en el AMD64) pero por otra parte tienes una gran ventaja, en los programas no optimizados para multiprocesador estarías aprovechando toda la cache de 2º nivel, mientras que si fuese exclusiva para cada nucleo solo utilizarías la mitad (el nucleo q no hace ningún trabajo tendria su cache desaprovechada).
¿Que es lo que no entiendes? A ver si entre todos podemos mejorar la arquitectura y creamos nuestro propio micro "hardlimit" :rolleyes:
Es que entonces no existen fisicamente dos nucleos independientes sino un micro con dos caches L1 que acceden simultaneamente a una cache L2 de 4Mb que cuando esta llena hacede a la RAM.
Por eso digo que eso no es exactamente un procesador con dos nucleos sino más bien otra cosa que no se yo como llamar.
No se, me parece demasiado complejo y no tengo las ideas claras, haber si encuentro algo más porque no encuentro la logica, ya puestos podrian haber metido 3 o 4 cahes L1 y asi lo flipariamos en colores, al fin y al cabo las versiones de conroe más bajas solo tienen 2Mb.
Que follon y eso que el micro todavia no esta en el mercado. :risitas:
-
Pero es que si la L2 fuera global para los dos nucleoas; es decir no tuvieran L2 independiente uno del otro como dices sino una L2 de 4Mb para los dos cores, que pasaria si por ejemplo los dos cores hacen una peticion a cache que falla, esto provocaria que habria que traer dos lineas a cache de MP pero y si las dos corresponden a la misma linea de cache tenemos un gran problema pues cual de ellas es la que alojamos en cache.
El tener la L2 global, en mi opinion, tiene mas inconvenientes que ventajas (como por ejemplo lo que he comentado anteriormente). Otra cosa muy distinta es que dispongas de 2Mb de L2 por core y que cada nucleo pueda acceder a la L2 del otro pero solo para leer no para escribir. -
Pero es que si la L2 fuera global para los dos nucleoas; es decir no tuvieran L2 independiente uno del otro como dices sino una L2 de 4Mb para los dos cores, que pasaria si por ejemplo los dos cores hacen una peticion a cache que falla, esto provocaria que habria que traer dos lineas a cache de MP pero y si las dos corresponden a la misma linea de cache tenemos un gran problema pues cual de ellas es la que alojamos en cache.
El tener la L2 global, en mi opinion, tiene mas inconvenientes que ventajas (como por ejemplo lo que he comentado anteriormente). Otra cosa muy distinta es que dispongas de 2Mb de L2 por core y que cada nucleo pueda acceder a la L2 del otro pero solo para leer no para escribir.Tendriamos 2 nucleos independientes pero la cache no lo sería, el problema que surge al tener una cache de 2º nivel compartida es el mismo que surge al tener 2 nucleos independientes y una sola memoria común a los dos. Aunque si pienso un poquito me doy cuenta que los 256 bits de la cache L2 van a dar el mismo resultado que lo 128 bits que tiene el AMD64, porque si tenemos 2 buses de 128 bits independientes conseguiremos el mismo ancho de banda que con 1 solo de 256…
El ejemplo que has puesto de fallo surgiría muy pocas veces, la cache de segundo nivel tiene un acierto superior al 98% y por lo tanto que coincidan dos fallos de cache para los dos nucleos a la vez sería muy extraño y siempre se tiende a beneficiar al caso más común. Por otra parte, no veo problema en traerse dos paginas a cache desde memoria... no entiendo eso de que sea la misma linea de cache, si han fallado los dos las paginas de memoria no están en cache por lo tanto no están en ninguna linea o entrada.
-
Yo estoy hablando del hipotetico caso de que la cache L2 de 4Mb pueda ser utilizada por los dos cores en lugar de que cada core tenga 2 Mb. La probabilidad de fallo es pequeña y mas con ese tamaño, pero existe esa posibilidad y hay que abordarla de alguna manera; es un problema que hay que resolver pues si se produce ese caso lo que no puedes es decir "me reinicio" o algo por el estilo.
Que dos lineas de Mp vayan a la misma linea de cache dependera del tipo de L2 que se utilice; por ejemplo con una cache totalmente asociativa no existe ese problema pero no conozco nigun procesador que use este tipo de caches (suelen incrementar muchisomo el coste). Lo normal es que sea asociativa por conjuntos (en la imagen que ha puesto Espinetenbolas puedes apreciar que el conroe tiene conjuntos de 16 lineas donde estas si son totalmente asociativas).
Con respecto a lo que comentas de el tamaño de linas de cache, el tener lineas mas grandes o anchas tienes sus ventajas y sus inconvenientes. Por ejemplo al tener 256 bits te cojen mas palabras por linea (el doble) y por lo tanto tu indice de aciertos aumenta aun más. Por contra necesitas 2 accesos a MP para llenar la linea y eso es costoso en rendimieto (con los 128bits del AMD64 puedes llenar la linea con un solo acceso utilizando dual chanel y la penalizacion es menor). Pero bueno esto es como digo siempre: depende del progrma que estes ejecutando.
-
Los Conroe tiene un rendimiento acojonate, eso esta claro y no hay mas que ver que por ejemplo el recor en SuperPi esta en manos de uno de estos "bichos" y la diferencia con el primer AMD es de casi 10 seg; si si 10 seg. Sinceramente no se que modificaciones han echo en la arquitectura de estos procesador con respecto a los P4 para que tenga tanta repercusion, aunque me da la impresion de que sea causa de esos 4Mb de chache de nivel 2. Que tenga menos tamaño en la L1 da igual porque supongo que seguiran utilizando la cache de traza de los P4 y esta no se caracteriza por el tamaño en Kb sino por el numero de lineas decodificadas que sea capaz de almacenar (con esta cache de traza te ahorras el tener que volver a decodificar una instruccion que prodijo un acierto en cache, es más inteligente almacenarla decodificada y si aciertas no tienes que volver a decodificarla).
En cuanto al AS que supuestamente tiene AMD, supongo que al disminuir la tecnologia de integracion hasta los 65 nm les permitira incluir mas cosas en el chip y como primera opcion deberia pensar en aumentar el tamaño de la L2 por lo menos hasta los 2 Mb
Bueno lo del superpi ya habiamos dicho que no tiene mucho sentido comprar estos resultados entre arquitecturas distintas, pues la diferencia en superpi no es necesariamente la diferencia en rendimiento real. Es por eso que en este foro hay records de superpi separados para AMD e intel lo cual tiene mucho sentido. En cuanto al la diferencia en rendimiento del P4 al conroe ya barton lo ha explicado y en realidad la gran ganancia en rendimiento tiene NO se debe en gran parte al cache de 4MB. El Conroe no utiliza el cahce de traza del P4, de hecho conroe (afortunadamente) hereda muy poco o nada del P4.
Esta es la microarquitectura P6/PM
Esta es la micro arquitectura del conroe
Como se puede observar los esquemas son bastante similares. El conroe es un"overhauling" total de PM/P6, la evolucion mas grande se observa en el back end: un nucleo de ejecucion mas ancho, con capacdad de ejecutar mas instrucciones en paralelo, que ovbiamente resquiere una estacion de reseva (RS) mas grande (32 entradas). Las unidades de vector del conroe son mucho mas potentes (capaces de realizar operaciones SSE de 128 bits) y estan conectadas mediante 3 puertos distintos. Igualmente las ALUs escalares son mas potentes y tienen un puerto mas a su disposicion.Las unidades de Aceso a memoria son mejoradas. En P6 el rendimiento SSE sufre un cuello de botella debido a que estas funciones se agregaron a traves de los puertos 0 y 1, entonces las funciones escalares compiten con las vectoriales para la utilizacion de estos dos puertos no aprovechando adecuadamente los recursos. El conroe agrega un puerto adicional a estas unidades ademas de que se mejora el desempeño de los mismos ya que tres de ellos son dedicados exclusivamenta a operaciones aritmeticas y logicas.(netburst solo posee 4 puertos).
De nada vale tener un nucleo de ejecucion potente si no se mejora el front end para obtencion de las instrucciones por lo tanto se aumenta la logica de decoficacion, el buffer de reordenamiento (se aumento de 40 a 96 entradas). Las tecnicas que mejoran el desempeño del front end son. Micro ops y Macro ops fusion, Unidad de prediccion de ramas mas robusta y obviamente mejoras en el cache, no solo en tamaño sino tambien en eficiencia y velocidad.
En cuanto a las mejoras que AMD piensa hacer al nucleo (que ya las he posteado en otra rama) se encuentran la inclusion de un cache de tercer nivel, mejora del front ent (con esquema similar desambiguacion de memoria), Mejora de la potencia de calculo FP entre otras… La evolucion de K8 a K8L se puede ver de forma analoga a la Evolucion de P6/PM al conroe, si se observan detenidamente las mejoras parece ser similares, pero bueno habra que esperar por mas informacion por parte de AMD.
-
Pues creo que la cahce de traza es o fue una idea muy buena y no se porque habran decidido no incorporarla :vayatela: ; si te puedes ahorrar la decodificacion de las instrucciones que producen aciertos de cache bien venido sea.
El SuperPi no es mas que un benchmarks, no es que haya que fijarse solo en el para dictar sentencia de cual es mejor o peor; pero sinceramente me ha llamado mucho la atencion la enorme diferrencia que ha obtenido el conroe.
-
Pues creo que la cahce de traza es o fue una idea muy buena y no se porque habran decidido no incorporarla :vayatela: ; si te puedes ahorrar la decodificacion de las instrucciones que producen aciertos de cache bien venido sea.
El SuperPi no es mas que un benchmarks, no es que haya que fijarse solo en el para dictar sentencia de cual es mejor o peor; pero sinceramente me ha llamado mucho la atencion la enorme diferrencia que ha obtenido el conroe.
El trace cache fue algo necesario para el P4, en arquitecturas como P6 y conroe no tendria practicamente ningun efecto en relacione con las modificaciones que habria que hacer al nucleo. En P6 y conroe la RS o estacion de reserva cumple eficientemnete su labor, en netburst simplemnete colocar una RS no era suficiente debido al efecto de tener tantos pipelines (era uy dañino esperar la decodificacion de una instruccion a traves de tantas etapas) entonces intel debio diseñar algo como en trace cache.
http://arstechnica.com/articles/paedia/cpu/pentium-2.ars/2 -
Porque??? Seguirias ahorrandote la decodificacion de las instrucciones. En lugar de almacenar la instruccion "tal cual" en cache la almacenas decodificada y así no tienes que decodificar cada vez.
En las imagenes que has puesto sigue habiendo una etapa para pasar de codigo X86 a instrucciones maquina (decodificar la instruccion vamos) asiq ue no entiendo porque no se van ha beneficiar
-
Porque??? Seguirias ahorrandote la decodificacion de las instrucciones. En lugar de almacenar la instruccion "tal cual" en cache la almacenas decodificada y así no tienes que decodificar cada vez.
En las imagenes que has puesto sigue habiendo una etapa para pasar de codigo X86 a instrucciones maquina (decodificar la instruccion vamos) asiq ue no entiendo porque no se van ha beneficiar
Bueno empecemos por cual es el objetivo del trace cache?
El objetivo del trace cache es poder proporcionar al nucleo de ejecucion del P4 una sucesion suficientemente rapida de microoperaciones, sucesion que no seria suficientemente rapida con un esquema de estacion de reserva debido a lo que tardaria las microoperaciones decodificadas en llegar al nucleo de ejecucion en una CPU de tantas etapas.Igual la instruccion antes de ser almacenada si es decodificada y luego almacenada en trace cache, o sea que tecnicamente no te estas ahorrando ninguna decodificacion. La funcion del trace cache es almacenar las microoperaciones ya previamente decodificadas de tal manera que pasen directamente del trace cache al nucleo de ejecucion.
Microarquitectura netburst
Si observas la microarquitectura netburst ves que la etapa de decodificacion esta antes del trace cache , es decir, que todas las microinstrucciones almacenadas en el trace cache pasan por la etapa de decoficacion. Tecnicamente no se esta ahorrando ninguna decodificacion. Simplemente se esta haciendo decodificacion previa de varias microinstrucciones antes de que sea requerido ejecutarlas.La diferencia con P6 y conroe es que las instrucciones en P6 y conroe son tomadas directamente del cache L1 sin decodificar y decodificadas para ser almacenadas en la estacion de reserva, de esta manera el nucleo de ejecucion siempre tendra instrucciones para ejecutar en la estacion de reserva asi que no necesita cosas como trace cache. Por su parte el P4 decodifica las instrucciones con anterioridad y las guarda decoficadas en trace cache (pero si esta decodificando) entonces pasan directamente del cache al nucleo de ejecucion de forma suficientemente rapida, si se utilizara en el P4 el mismo esquema que P6 llegaria un momento en que la RS quedaria vacia debido a lo que tarda la decodificacion al pasar por tantas etapas no se podria proporcional instrucciones al nucleo de ejecucion en una sucecion suficientemente rapida, esto no pasa en P6 o conroe y por eso un esquema de trace cache no es necesario ni tendria un efecto adicional.
Asi que la RS siempre tiene instrucciones listas para despachar al nucleo de ejecucion, daria lo mismo si las tomara de un trace cache o de RS. Si intel ha decidido no utilizar el esquema de trace cache en conroe es porque sus ingenieros han considerado que no iba a ser necesario y despues de todo ellos saben mas que nosotros sobre su diseño.Bueno espero haberme hecho entender.
-
Si decodificar tienes que decodificar todas las instrucciones, pero utilizando la cache de traza lo que consigues es decodificar 1 sola vez la instruccion: cuando dio error y tuviste que traerla. Si por el contrario la instruccion pridujo un acierto la instruccion ya esta decodificada, mientras que con una cache normal aunque sea un acierto tienes que volver a decodificarla para poder meterla en el back end.
Siempre que buscas la instruccion la buscas en la cache de traza, si da error te la traes de MP decodificandola pero si produjo un acierto ya la tienes decodificada por lo que no tienes que volver a decodificarla.Yo tambien estoy de acuerdo en que los ingenieros de Intel tiene que saber más que nosotros :risitas: :risitas:
-
Si decodificar tienes que decodificar todas las instrucciones, pero utilizando la cache de traza lo que consigues es decodificar 1 sola vez la instruccion: cuando dio error y tuviste que traerla. Si por el contrario la instruccion pridujo un acierto la instruccion ya esta decodificada, mientras que con una cache normal aunque sea un acierto tienes que volver a decodificarla para poder meterla en el back end.
Siempre que buscas la instruccion la buscas en la cache de traza, si da error te la traes de MP decodificandola pero si produjo un acierto ya la tienes decodificada por lo que no tienes que volver a decodificarla.Si eso es cierto en ese caso te ahorrarias la decoficacion, solo que parecia que lo decias como si siempre te ahorraras la decodificacion, es posible que te ahorres en ciertas ocasiones algo de decodificacion, despues de todo el Trace cache es limitado y las instrucciones decodificadas no van a permanecer para siempre alli.
A lo que me refiero es que la RS en conroe cumple el mismo objetivo del trace cache en netbusrt, la RS es capaz de proporcionar instrucciones siempre en sucesion suficientemente rapida al nucleo de ejecucion, de esta manera no importa que tenga que volver a decodificar la instruccion porque como las pipelines son cortas la demora entre decodificacion de la instruccion y el momento en que las microoperaciones alcanzan la RS no es tan grande como en netburst y RS siempre tendra instrucciones para ejecutar, es por eso que trace cache no es necesario. Si las instrucciones viajaran directamente del la etapa de decodificacion al nucleo de ejecucion si habria un problema de flujo de instrucciones en P6 pero par eso esta RS igual que para el P4 esta trace cache en el que un esquema de RS no seria suficiente.
-
Pero la estacion de reserva de que unidad funcional??? Cada unidad tiene su propia estacion de reserva y teoricamente esta es "mas pequeña" que la cache y por consiguiente vas a tener que sobreescribirla por otra mas rapidamente que en el caso de la cahe por lo que seguramente la misma instruccion producira mayor numero de errrores.
Ahora que lo pienso, lo que quieres decir es que la instruccion se almacena sin decodificar en la cache pero lo que mete en la estacion de reserva es la microinstruccion, no???
-
Pero la estacion de reserva de que unidad funcional??? Cada unidad tiene su propia estacion de reserva y teoricamente esta es "mas pequeña" que la cache y por consiguiente vas a tener que sobreescribirla por otra mas rapidamente que en el caso de la cahe por lo que seguramente la misma instruccion producira mayor numero de errrores.
Si observas la arquitectura P6 y del conroe, entre el "front end" y "execution core" existe un buffer llamado RS o estacion de reserva , a esa me refiero. En cuanto a los errores no entiendo a que te refieres, si te refieres a errores por ramas, estos errores se producen muy rara vez en el conroe debido a su potente BPU con una efectividad del 97% , es decir que solo un 3% de los saltos causaria un error, no es significativo y mucho menos impacto tendria entonces ahorrarse en el mejor de los casos un 3% de decodificacion en un conroe, ademas de que una mala prediccion no afectaria de manera catastrofica al conroe, pues sus pipelines son cortas, bueno eso en el caso de misprediction.
El trace cache como tu dices es mucho mas grande que la RS puede gurdar hasta 12Kuops y la probabilidad de que la instruccion requerida en un programa estre en el trace cache es entre 75 y 95% en un programa promedio, si no la encuentra tendria que decodificarla en el acto y gastar hasta 30 ciclos de la CPU, el trace cache se hace necesario porque debido a todas las etapas del P4 la decodificacion de una instruccion dura entre 15 y 30 ciclos!!!!!!, en este caso el trace cache es vital y un buffer relativamente pequeño como una RS no seria suficiente. P6 y conroe no tienen este problema, ademas porque muchas instrucciones complejas son decodificadas por los fast decoders del conroe gracias la micro y macro op fusion, esto hace que RS siempre tenga instrucciones para ejecutar y que un trace cache no sea necesario.
Ahora que lo pienso, lo que quieres decir es que la instruccion se almacena sin decodificar en la cache pero lo que mete en la estacion de reserva es la microinstruccion, no???
Si, es lo que estoy diciendo.
-
Las placas base de los conroe seran btx ? o no se sabe?
-
Por curiosidad, eres el mismo barton de N3D? Si es asi, seas bienvenido (sino tambien )
si ( lo llevais claro :rolleyes: )
cinebench en 64 bits donde la arquitectura "Core2" "pincha" en 64 bits
-
una cosa. Los conroe habran resuelto el problema ese de una instruccion SSE por FPU, o algo asi era que el p4 no podia hacer?
Sinceramente… con tanto RS, traza y demas, acabo de perder 200 neuronas. Dios mio. Que los compre quien los entienda.
-
cinebench en 64 bits donde la arquitectura "Core2" "pincha" en 64 bits
No parece un fracaso estrepitoso en 64 bits ¿no? Aunque saque una diferencia ligeramente menor que el Opteron ese que sale ahi.
Sinceramente… con tanto RS, traza y demas, acabo de perder 200 neuronas. Dios mio. Que los compre quien los entienda.
Amen.
-
No parece un fracaso estrepitoso en 64 bits ¿no? Aunque saque una diferencia ligeramente menor que el Opteron ese que sale ahi.
Técnicamente esa Workstation Intel es un 47% más potente que la AMD y si comparamos solo el resultado del cinebench nos sale que la estación Intel es solo un 12,45% más potente en 64Bits mientras que en 32Bits el Intel es un 22,18% más potente.
Lo cual claramente indica que la arquitectura AMD se beneficia más de software optimizado para 64Bits mientras que la mejora de los Intel es mucho menor.
Así pues, y teniendo en cuenta la inminente llegada de Windows Vista, parece que AMD no tiene al conroe tan lejos, como muchos vaticinaban, al conroe. Eso si AMD para ser superior va a tener que incrementar los Mhz, o por lo menos esa es mi opinión.
-
Si AMD quiere ser superior definitivamente va a tener que mejorar mucho mas que los Mhz.
-
Bueno hoy a los señores de AMD les a dado por levantar las cartas, de echo lo que se había dicho o filtrado es poco o por lo menos poco preciso comparado con las ultimas noticias de AMD que parece que no solo no esta dispuesto a que Intel le quite lo que ha ganado sino que pretende seguir mejorando.
AMD Announces 4x4 Enthusiast Platform
Parece ser que el AM2 esta preparado para montar dos micros en la misma placa al más puro estilo server, yo personalmente me parece un poco despilfarro pero 4 cores para un equipo sobremesa es como en su dia cuando salio el SLI para tarjetas, lo mejor de todo es el hecho de que para rular estos monstruos no sera necesario recurrir a memoria registrada por lo que el incremento de precio no respecto a un pc monomicro no será desorbitado pese a estar hablando de una maquina que tendrá 4 cores.
AMD Promises 45nm Processors By Mid-2008
Otra buena noticia es que AMD va a acelerar el paso a los 45nm y por ello se ha comprometido a implementar este proceso a mediados de 2008, de echo en una noticia anterior se informaba de que para incrementar la producción se iban a invertir no se cuantos millones para crear la Fab38 (convirtiendo la actual fabrica 30) en Dresden de la mano de IBM, algo que este articulo confirma.
AMD Announces More K8L Details
Si amigos, se habían dicho y se habían especulado muchas cosas pero talvez nadie había llegado a imaginar que el K8L dispondría de una L3 al más puro estilo Conroe, me pregunto yo si les habrán copiado la idea. En principio son 2Mb de cache L3 para los 4 cores y luego cada core tiene la típica L1 de 64kb para las instrucciones y luego la L2 de 512kb para trabajar. Y claro para que leches nos sirve la dichosa L3, pues muy sencillo para no tener que alojar en la RAM determinadas instrucciones que matarían el rendimiento. Esto junto con la confirmación que el K8L estará nativamente preparado para la DDR3 son talvez las dos cosas más destacables.
Y que dice Intel de nuevo, pues nada destacable, en pricipio el Conroe de 3.2Ghz saldra para finales de año como estaba prebisto y los Quadcore (cuatro procesadores en una misma CPU) para el primer cuarto del 2007 como se esplica en la siguiente noticia.
Intel Confirms Two Upcoming Core 2 Extreme CPUs
PD: Ala otra vez a poner esta rama hiperactiva.