[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Relativo al tema de i686



On Sat, 30 Nov 2002, Rafael Gawenda wrote:

> Eso depende, lo que no ha cambiado casi nada, es el set de
> instrucciones de IA32, que solo se ha incrementado en una
> instruccion (CPUID) y las extensiones MMX/MMX2, y 3DNOW (AMD).
> Dichas extensiones son para operaciones con más de un dato,
> diferenciándose ambas, en que la de Intel corta la FPU y las de
> AMD no. Pentium II es básicamente identico al Pentium MMX, y
Tal vez en cuanto a instrucciones, por que en cuanto a la cpu es uno de
los cambios mas drasticos en la arquitectura intel.

> creo recordar (no estoy muy seguro) que CPUID se introdujo en el
> Pentium III, así como las MMX2, pero que el Pentium IV no
Pentium III incorpora SSE y registros adicionales para esas instrucciones.

> incorpora ninguna instruccion adicional. 'Pero' más adelante te
> comento en dónde SI se pueden hacer optimizaciones...
P4 incorpora instrucciones SSE2.

> > En algún mensaje se ha dicho que la diferencia no es tan grande. ¿Esto
> > es realmente asi?. Puede ocurrir que el propio código fuente, o el
> > compilador, no aproveche los micros en cuestión, con lo que,
> > efectivamente, no se ganaría mucho recompilando.
>
> El compilador no sé hasta que punto puede reconocer y utilizar
> 'hábilmente' dichas extensiones, pero dicen que sí, que se ganan
> FPS si recompilas kernel, librerias principales, y los programas
> multimedia (incluyendo XWindow).
gcc no sabe nada de esas extensiones.

> Sin embargo, lo que sí ha cambiado es el diseño de los micros, y
> sobre todo, el funcionamiento de sus cachés, que era simple en
> el 386 y luego se comvirtio en doble (datos/código), con
> pipeline (prefetch), dual pipeline, etc... Esta es la parte en

El pipeline no tiene que ver con el cache, si no como realiza las
operaciones el procesador. La idea es que si tengo que hacer 5 operaciones
basicas para multiplicar dos numeros en vez de hacer las 5 en un ciclo
hago 1 por ciclo y puedo estar haciendo 5 multiplicaciones a la vez
terminando 1 por ciclo. El problema es que se necesitan operaciones
independientes para mantener el pipeline lleno.

El truco del p4 para tener esas altisimas frecuencias es tener un pipeline
muy profundo (20 etapas) y un predictor de ramas muy eficiente para
tratar de mantenerlo lleno.

> donde un compilador SI puede optimizar, ya que lo unico que
> tiene que hacer para aprovecharlo, es reordenar el código que
A partir del pentium pro los procesador intel cuentan con ejecucion fuera
de orden, las instrucciones en el pipeline se pueden ordenar distinto que
en el codigo.

> genera (recordemos que lo único que hace, es coger código fuente
> y convertirlo en código máquina, es decir, instrucciones propias
> de la arquitectura destino, en este caso IA32)

Un compilador basico solo traduce, un compilador optimizante modifica
sustancialmente el codigo con el fin de hacerlo mas eficiente.

Xavier



Reply to: