@Wargreymon:
El Branch Prediction puede tener una parte pequeña de responsabilidad en eso, pero la razón principal de que unos micros rindan más que otros a igual frecuencia es que son capaces de ejecutar más instrucciónes en un ciclo de reloj. Si estoy en lo cierto, en un procesador de 3000mhz hay 3000 ciclos por segundo. El asunto es que la cantidad no es exacta, por ejemplo, teoricamente los Pentium 4 podía realizar un máximo de 2 operaciónes por ciclo, pero eso no significa que las pueda hacer siempre, solo en determinadas situaciones (y en el caso de los Pentium 4 con un pedazo pipeline de 28 etapas tardaba una barbaridad en ejecutar una instrucción, de ahí su escaso rendimiento comparado con los K8 a igual frecuencia).
Los K8 realizan 3 operaciónes por ciclo como máximo y tienen un pipeline de 13 etapas si no me equivoco. En los K10 es similar, antes hablabamos de cambios significativos entre Core 2 y Core i7 pero no hay duda de que entre el K8 y el K10 la diferencia si que es muy poca. Los Core 2 Duo pueden realizar hasta 4 operaciones por ciclo, en parte gracias a Macrofusion y si nehalem tiene más posibilidades de ejecutar 4 operaciones por ciclo que los Core 2 es por la mejora en macrofusion (pasa de 32 a 64 bits). Lo único que tienen los K10 que no tienen ni los Core 2 ni los i7 a nivel interno es capacidad de leer datos de 32bits directamente al hacer el fetch (al menos tengo entendido que los i7 no poseen esta caracteristica), lo cual también tiene su impacto a la hora de ejecutar las instrucciónes (un instrucción de 32 bits de largo un core 2 lee primero los primeros 16 bits y luego los otros 16 bits, mientras que un K10 lo hace de golpe).
En resumidas cuentas (P4, K8/10 y Core2/i7) :
P4-> 3000mhz * 2 operaciones por ciclo = 6000 millones de operaciones por ciclo
K8/K10-> 3000mhz * 3 operaciones por ciclo= 9000millones de operaciones por ciclo
Core 2/i7-> 3000mhz * 4 operaciones por ciclo= 12000millones de operaciones por ciclo
*A tener en cuenta que estamos hablando del maximo, no quiere decir que esas cifras se cumplan siempre, es un simple máximo teorico. Se supone que está es la principal razón de las diferencias de rendimiento de los diferentes micros a igual frecuencia.
me parece que el ciclo no corresponde con el periodo de la frecuencia. En pics por ejemplo tienes 1 ciclos máquina por cada 4 ciclos de reloj, y una instrucción ocupa un ciclo maquina, menos algunas operaciones de salto que tardan 2 ciclos maquina