Materia: #organizacion_del_computador_II

Tags: Memoria, Teorema

Principio de localidad

En Ciencias de la Computación, se le conoce como principio de localidad a la tendencia del procesador a acceder al mismo conjunto de direcciones de memoria repetidas veces en un periodo corto de tiempo. Es decir, el uso reiterados de los mismos datos.

Un ejemplo de esto bastante cotidiano es al hacer un bucle en nuestro lenguaje de preferencia. En general, vamos a tener una variable que sirve de contador, que va a ser usada al principio (para la comparación) y al final (para el incremento o decremento) de cada iteración.

for (int i = 0; i < 10; i++) {
	printf('%d', i);
}
Programa en C que imprime los numeros del 0 al 9. Se puede ver como la variable i es utilizada en cada iteración del programa.

En general, como los accesos a memoria son muy costosos queremos intentar que minimizar los mismos. El principio de localidad no siempre es cierto, pero en terminos generales nos sirve para deducir una tendencia del programa.


Tipos de localidad

Existen dos tipos de localidad cuando nos referimos a este principio: la localidad temporal y la localidad espacial.

La localidad temporal hace referencia al hecho de que si una dirección de memoria fue escrita o leida en un punto particular del programa, entonces va a ser referenciada posteriormente en el futuro cercano. Por esto mismo, lo que hacemos es copiar los datos de la memoria principal a las memorias de acceso rapido, como la memoria cache.

Por otro lado, la localidad espacial consiste en que si una dirección de memoria fue accedida en un punto particular de la ejecución, entonces las direcciones de memoria cercanas a esa también van a ser accedidas. En este caso, seria util saber el tamaño del area alrededor de la dirección de memoria para tener acceso rapido a los datos necesarios, de modo que nadie quede afuera.