La localidad de referencia se refiere a un fenómeno en el que un programa de computadora tiende a acceder al mismo conjunto de ubicaciones de memoria durante un período de tiempo particular. En otras palabras, la Localidad de referencia se refiere a la tendencia del programa de computadora a acceder a instrucciones cuyas direcciones están cerca unas de otras. La propiedad de localidad de referencia se muestra principalmente mediante bucles y llamadas a subrutinas en un programa.
- En caso de bucles en el control del programa, la unidad de procesamiento se refiere repetidamente al conjunto de instrucciones que constituyen el bucle.
- En el caso de llamadas a subrutinas, cada vez que se extrae el conjunto de instrucciones de la memoria.
- Las referencias a elementos de datos también se localizan, lo que significa que se hace referencia al mismo elemento de datos una y otra vez.
En la figura anterior, puede ver que la CPU desea leer o recuperar los datos o las instrucciones. Primero, accederá a la memoria caché ya que está cerca y proporciona un acceso muy rápido. Si se encuentran los datos o instrucciones requeridos, se recuperarán. Esta situación se conoce como acierto de caché. Pero si los datos o instrucciones requeridos no se encuentran en la memoria caché, esta situación se conoce como pérdida de caché. Ahora se buscará en la memoria principal el dato requerido o la instrucción que se estaba buscando y si se encuentra se pasará por una de las dos formas:
- La primera forma es que la CPU debe obtener los datos o instrucciones requeridos y usarlos y eso es todo, pero qué, cuando se requieren nuevamente los mismos datos o instrucciones. La CPU nuevamente tiene que acceder a la misma ubicación de memoria principal y ya sabemos que main la memoria es la más lenta de acceder.
- La segunda forma es almacenar los datos o instrucciones en la memoria caché para que, si se necesitan pronto nuevamente en un futuro cercano, se puedan obtener de una manera mucho más rápida.
Operación de Caché:
Se basa en el principio de localidad de referencia. Hay dos formas en que los datos o las instrucciones se obtienen de la memoria principal y se almacenan en la memoria caché. Estas dos formas son las siguientes:
- Localidad
temporal: la localidad temporal significa que los datos actuales o las instrucciones que se están recuperando pueden ser necesarios pronto. Entonces, debemos almacenar esos datos o instrucciones en la memoria caché para que podamos evitar buscar nuevamente en la memoria principal los mismos datos.Cuando la CPU accede a la ubicación actual de la memoria principal para leer los datos o instrucciones necesarios, también se almacena en la memoria caché, lo que se basa en el hecho de que es posible que se necesiten los mismos datos o instrucciones en un futuro próximo. Esto se conoce como localidad temporal. Si se hace referencia a algunos datos, existe una alta probabilidad de que se vuelva a hacer referencia en un futuro próximo.
- Localidad
espacial: la localidad espacial significa que es posible que se necesiten instrucciones o datos cerca de la ubicación de memoria actual que se está recuperando en un futuro próximo. Esto es ligeramente diferente de la localidad temporal. Aquí estamos hablando de ubicaciones de memoria casi ubicadas, mientras que en la localidad temporal estábamos hablando de la ubicación de memoria real que se estaba recuperando.
Rendimiento de la caché:
el rendimiento de la caché se mide en términos de índice de aciertos. Cuando la CPU se refiere a la memoria y encuentra los datos o las instrucciones dentro de la memoria caché , se conoce como acierto de caché. Si los datos o instrucciones deseados no se encuentran en la memoria caché y la CPU recurre a la memoria principal para encontrar esos datos o instrucciones, se conoce como pérdida de caché.
Hit + Miss = Total CPU Reference Hit Ratio(h) = Hit / (Hit+Miss)
El tiempo de acceso promedio de cualquier sistema de memoria consta de dos niveles: caché y memoria principal. Si Tc es el tiempo para acceder a la memoria caché y Tm es el tiempo para acceder a la memoria principal, entonces podemos escribir:
Tavg = Average time to access memory Tavg = h * Tc + (1-h)*(Tm + Tc)
Publicación traducida automáticamente
Artículo escrito por balwant_singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA