[HACK] Microprocessors, pipelines and clock speeds

David A. Pérez kamborio at gmail.com
Thu May 19 16:20:24 CEST 2005


> Un micro puede operar con la frecuencia de reloj máxima que le permita
> la etapa de sus segmentación que dure más tiempo requiera.
> 
> Creo que si p.e:
> 
> - Un micro segmentado en 5 etapas (el clasico MIPS)
> - Etapa que mas tiempo necesita (y que limita la frecuencia del reloj)
> p.e. la ALU (5 ns <-- es un ejemplo)

A ver si lo he entendido bien, que ultimamente me dicen que ando muy espeso...

En este caso la velocidad maxima a la que podria operar el micro son
200 MHz (1/5ns). Seria eso correcto?

> Si sub-segmentas la ALU en 3 sub-etapas de p.e. 2ns, 2ns y 1 ns mas los
> registros de cada etapa etc... yo creo que el micro puede soportar una
> frecuencia mayor teoricamente ya que se ha reducido el tiempo máximo que
> necesita la etapa critica. Eso si, el tema de registros entre etapas
> ,para almacenar valores intermedios, y su lógica igual puede influir.

Supongamos que las otras 4 etapas tardan 2ns, y ahora hemos conseguido
segmentar la ALU en otras 3 etapas. Tenemos 7 etapas, 6 de las cuales
son de 2ns y otra de 1ns. Tendriamos que la velocidad maxima serian
500 MHz (1/2ns). Lo cual no implica que las instrucciones se ejecuten
mas rapido porque a pesar de que el reloj va mas rapido, tenemos mas
etapas (no estoy teniendo en cuenta los registros entre etapas para
simplificar).

Si no me equivoco, lo ideal seria que todas las etapas duraran lo
mismo, asi que segumimos segmentando y las 6 etapas de 2ns las
convertimos en 12 etapas de 1ns, mas la otra que teniamos tenemos 13
etapas de 1ns. Velocidad? 1 Ghz (otra vez, teoricamente, soy
consciente de que no estamos teniendo en cuenta muchos otros
factores).

Segun tu ejemplo, partiamos de 5 etapas, la ALU necesitaba 5 ns, las
otras 2ns (mi ejemplo), total 5ns+(4x2ns) = 13ns. Ahora tenemos 13
etapas de 1ns, seguimos necesitando 13 ns para ejecutar la
instruccion. Y no estoy afirmando... pregunto, es correcto elo
planteamiento?

> Ademas, con esta nueva segmentación, puedes meter 2 instrucciones más en
> el pipeline para su ejecución en "paralelo".

Lo cual puede producir una perdida de rendimiento si el branch
prediction unit se equivoca no?

> 
> No se como está ahora los micros de intel IA32 pero creo recordar que
> habia del orden de 70 y pico etapas.

Los primeros Pentium 4 tienen 20 etapas, los ultimos 31.

"As a result Prescott's pipeline became 11 stages longer that makes
the total of 31."
http://www.digit-life.com/articles2/roundupmobo/intel-prescott.html

> Saludos
> Fer || Zho

Y aun no es el final... pero primero a ver si estoy correcto en lo dicho ;)

David A. Pérez




More information about the hacking mailing list