El objetivo principal de la memoria es mantener la información por un período de tiempo, y ésta al igual que la memoria de las personas se divide en diferentes partes, sin embargo, no cuenta con la misma capacidad para olvidar o generar recuerdos de un modo mismo, pero al tratarse de acceder a un recuerdo o información relevante de forma instantáneamente hace una tarea similar en un tiempo óptimo, esto gracias a qué cuenta con la jerarquía de memoria la cual puede indagar en diferentes diseños para mantener un balance entre costo y rendimiento.
En arquitectura computacional existen dos tipos de memoria:
- Volátil,
este tipo de memoria (memoria principal) pierde todos los datos que tenia almacenados
al apagar el equipo.
- No-volátil,
esta (memoria auxiliar o externa) por su parte mantiene los datos guardados así
no tenga una fuente de poder conectada.
El funcionamiento de la jerarquía de memoria se da gracias
a el principio de localidad, en el cual los programas no acceden con igual probabilidad
a los datos, este principio maneja dos aspectos:
- Localidad
espacial: Al acceder a un dato_3 la probabilidad de acceder a uno de sus datos
vecinos es alta, mientras que a un dato alejado la probabilidad se reduce.
- Localidad temporal: Cuando un dato o instrucción es referenciada, la probabilidad de que esta vuelva a referenciarse tiempo después es alta, al igual que las referencias vecinas a este.
Estas referencias son almacenadas en la memoria caché para
que el procesador tengo un acceso más rápido a estas.
El uso de la jerarquía se ve representado de diferentes
formas en cada nivel, los registros de memoria se dan gracias al compilador, la
memoria cache es correlacionada con el hardware de la maquina y el almacenamiento
de los datos, memoria o discos, si nos referimos a memoria virtual se da por el
hardware y sistema operativo mientras los archivos los define el programador. En
la siguiente gráfica se representa de mejor manera la distribución.
En la gráfica anterior se puede apreciar los niveles de
jerarquía de memoria, entre los diferentes niveles se presentan constante
cambio de datos, los registros de la CPU tienen la capacidad de acceder
directamente a los dos siguientes niveles, mientras que los datos de la memoria
secundaria o datos de entrada como el teclado son almacenados primero en la memoria
RAM para que la velocidad de procesamiento sea mayor. A mayor jerarquía, menor
tiempo de acceso y mayor costo.
Los niveles principales de la piramide jerarquica se pueden distribuir en:
Los niveles principales de la piramide jerarquica se pueden distribuir en:
- Registros: Estas son celdas de memoria integradas a la CPU esta memoria contiene datos especificos como la unidad aritmética y lógica, son controlados directamente por el compilador
- Memoria Cache: Las memorias caches estan diseñadas para reducir el tiempo que tardan los datos en llegar a la CPU, almacenando los datos más frecuentes en la CPU para que esten disponibles al instante. Muchas CPUs de hoy en día cuentan con dos niveles de memoria cache, hoy en día se usa una memoria SRAM como memoria cache de nivel 2 síncronica diseñada para mantener la velocidad del reloj de la CPU mejorando la velocidad de rendimiento
- Memoria RAM: La memoria RAM o memoria principal es el espacio de trabajo en cual se manipula los datos y tareas a realizar mientras el comutador este encendido
- Dispositivos de almacenamiento
- Fuentes de entrada
Los programas se almacenan en la memoria secundaria (disco
duro), para que la memoria principal (RAM) pueda acceder a estos, el
rendimiento computacional va directamente ligado a la capacidad del sistema en
acceder a la información. Es mucho más veloz que el procesador use la
información de la RAM a que acceda directamente al disco duro, es decir a mayor
cantidad de RAM mayor velocidad de lectura y escritura sobre el procesador, sin
embargo, grandes cantidades de memoria representan un costo mayor.
Si se busca mejor un diseño del sistema para optimizar tiempo
de respuesta es necesario saber el proceso interno de cada memoria, su
velocidad de lectura y escritura. Las CPUs de hoy en día corren a una velocidad
de 1 gigahertz, pero para mantener una CPU con esta velocidad es demasiado costoso
por eso es necesario el uso de diseñadores computacionales, los cuales proponen
una solución al problema usando niveles de memoria.
La jerarquía de memoria brinda una solución de memoria virtual
ilimitada a equipos tomado en cuenta la localidad y costos de operación de
memoria. Ignorar la jerarquía de memoria al hacer diseños computacionales
implica perder velocidad de respuesta, dinero y tiempo. Mantener un balance
entre los diferentes niveles de memoria refleja un buen rendimiento
computacional y un precio accesible al mercado.
Tambien puedes ver el siguiento vídeo para más información:
Referencias:
- https://www.udg.co.cu/cmap/sistemas_operativos/administracion_memoria/memoria/jerarquia_memoria/jerarquia_memoria.html
- https://www.fing.edu.uy/inco/cursos/arqsis2/teorico/clase06-jerarquia.pdf
- https://www.explainthatstuff.com/how-computer-memory-works.html
- https://www.quora.com/How-does-Computer-Memory-work
- http://www.mindpride.net/root/Extras/how-stuff-works/how_computer_memory_works.htm
- https://computer.howstuffworks.com/ram.htm
- https://simple.wikipedia.org/wiki/Computer_memory
- https://www.dell.com/support/article/es-co/sln179266/de-qu%C3%A9-manera-la-memoria-de-acceso-aleatorio-ram-afecta-el-rendimiento?lang=es
- https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-39940-9_657
- https://www.elprocus.com/memory-hierarchy-in-computer-architecture/
- https://www.geeksforgeeks.org/memory-hierarchy-design-and-its-characteristics/
- http://www.atc.uniovi.es/telematica/2ac/Transparencias/T04-Principio-de-Localidad.pdf
Es interesante la relación que hay de la memoria humana con la memoria de un computador, nuestros cuerpos tienen muchas respuestas para el avance tecnológico, entender el funcionamiento de la jerarquía de memoria de un computador hace ver lo complejos que pueden ser nuestros cuerpos.
ResponderEliminarAsí es, el tener presente el papel fundamental de la memoria computacional y su importancia en este desarrollo tecnológico que avanza conforme lo hace la humanidad misma, es sorprendente y verdaderamente necesario. Un buen aporte, muy sustancioso y gratificante.
ResponderEliminarQue importante es tener presente la distribución de la memoria, gracias, muy buena explicación!
ResponderEliminar