Velocidad de acceso a registros vs a RAM

dv
02 de Agosto del 2011
Tengo entendido que la velocidad de acceso a registros es mucho más rápida que a RAM, pero he hecho dos programas que recorren un bucle, uno hace:
addl %ebx, 4(%esi)

Mientras que el otro hace:
addl %ebx, %esi

Supuse que el segundo tardaría menos, pero lo cierto es que tardan lo mismo, más o menos, algunas veces uno es más rápido y otras veces es el otro. ¿es esto normal? ¿lo estoy entendiendo mal?

Samuel Garcia
13 de Abril del 2016

Los registros siempre son más rápidos que la RAM porque están dentro del CPU.

Es como cambiar estados de bits, mientras que para la RAM hay que dirigir un controlador de hardware para la RAM, y si se corre bajo un sistema operativo formal, el tiempo que las otras tareas usan para correr y la fragmentación de la memoria hace que sea más lento.

 

Pero es necesario.

En el primer ejemplo se estaba sumando el valor una dirección de memoria a un registro, y en el segundo se estaba sumando el valor de un registro en otro.

En las dos instrucciones se usan registros para obtener datos de registro mismo o de un índice de memoria, pero son casos diferentes que siempre se necesitan, siempre que se necesite usar memoria RAM masivamente es inevitable usar todos los casos, lentos y rápidos.