por
pobrecito hablador
el Domingo, 06 Junio de 2004, 16:07h
(#310936)
No tienes en cuenta dos cosas: la velocidad de acceso a la memoria, y la pipeline.
La memoria no va tan rápida como el procesador. Éste leería una palabra en un sólo ciclo, teóricamente, pero la memoria puede necesitar dos o más (depende) para tener listo el dato en el bus correspondiente. Otro tanto pasa con la escritura. Para acelerar esto se usan las caches, con lo cual lo hace todo menos predecible con precisión.
La pipeline son los diferentes estados en que están las instrucciones. En un procesador moderno se termina de ejecutar una instrucción (o más, depende) por cada ciclo de reloj, pero una instrucción individual puede tardar varios ciclos, por lo que siempre hay varias instrucciones simultáneas en diferente fase de ejecución, cuando se produce una bifurcación de la ejecución, la pipeline hay que vaciarla y hasta que no está llena no vuelve a 'coger velocidad'. Para minimizar esto hay varias estrategias conocidas como predicción de salto.
Esto, si no contamos que, normalmente, no hay sólo un programa en ejecución, con lo que en ese caso tenemos que tener en cuenta la latencia de las interrupciones y la velocidad o facilidad en cambiar de contexto, etc.
Hay más consideraciones a tener en cuenta, como la eficiencia de las extensiones (mmx, se, 3dnow, altivec, etc.) y cómo se integran en el core del procesador. Pero no quiero extenderme más.
Como ves no es tán fácil como comparar lo megahercios, y mucho menos comparar la publicidad. Incluso un procesador objetivamente mejor que otro, según las especificaciones, puede tener menor rendimiento a causa de un diseño peor de la placa base o una mala elección de los componentes.
No señor(a)
(Puntos:0)La memoria no va tan rápida como el procesador. Éste leería una palabra en un sólo ciclo, teóricamente, pero la memoria puede necesitar dos o más (depende) para tener listo el dato en el bus correspondiente. Otro tanto pasa con la escritura. Para acelerar esto se usan las caches, con lo cual lo hace todo menos predecible con precisión.
La pipeline son los diferentes estados en que están las instrucciones. En un procesador moderno se termina de ejecutar una instrucción (o más, depende) por cada ciclo de reloj, pero una instrucción individual puede tardar varios ciclos, por lo que siempre hay varias instrucciones simultáneas en diferente fase de ejecución, cuando se produce una bifurcación de la ejecución, la pipeline hay que vaciarla y hasta que no está llena no vuelve a 'coger velocidad'. Para minimizar esto hay varias estrategias conocidas como predicción de salto.
Esto, si no contamos que, normalmente, no hay sólo un programa en ejecución, con lo que en ese caso tenemos que tener en cuenta la latencia de las interrupciones y la velocidad o facilidad en cambiar de contexto, etc.
Hay más consideraciones a tener en cuenta, como la eficiencia de las extensiones (mmx, se, 3dnow, altivec, etc.) y cómo se integran en el core del procesador. Pero no quiero extenderme más.
Como ves no es tán fácil como comparar lo megahercios, y mucho menos comparar la publicidad. Incluso un procesador objetivamente mejor que otro, según las especificaciones, puede tener menor rendimiento a causa de un diseño peor de la placa base o una mala elección de los componentes.