La memoria , en informática , es un elemento de una computadora o de su subsistema y tiene la función de asegurar la persistencia de los datos y /o instrucciones del programa [1] . Existen diferentes tipos de memoria y su realización física da vida a los distintos soportes de almacenamiento existentes .
El almacenamiento de información en la memoria y su posterior recuperación son funciones fundamentales en los procesos de procesamiento de datos . La capacidad de los medios de almacenamiento electrónico para almacenar grandes cantidades de datos en un espacio pequeño y la velocidad con la que se puede recuperar la información es parte de las motivaciones clave para el desarrollo de la electrónica, lo que lleva, por ejemplo, al nacimiento de las bases de datos modernas . También es posible insertar y borrar programas de la misma memoria. Esto significa que, teóricamente, una computadora puede ejecutar infinitos programas durante su vida útil, lo que hace posible una máquina de Turing con una capacidad de memoria finita.
Una memoria puede ser considerada abstractamente como una secuencia finita de celdas en la que cada celda contiene una secuencia finita de bits , normalmente manejados en grupos de ocho llamados bytes . Por lo tanto, el espacio de la memoria física se puede imaginar como una secuencia de posiciones, cada una de las cuales contiene un byte. Cada posición se identifica mediante una dirección de memoria precisa , normalmente expresada como un número entero positivo. Hasta la fecha, entre las tecnologías que implementan este modelo abstracto, las más extendidas son la memoria electrónica , la memoria magnética y la memoria óptica .
La arquitectura de von Neumann , que representa el modelo informático simplificado, muestra cómo se utilizan las memorias. Una máquina de Von Neumann se divide en una parte destinada al procesamiento, llamada procesador , y una parte destinada al almacenamiento, llamada memoria central . La memoria central contiene tanto los datos sobre los que opera el procesador como los programas que proporcionan las instrucciones que debe ejecutar el procesador.
Más concretamente, las operaciones que la CPU puede realizar sobre la memoria de un ordenador son básicamente las siguientes:
Para hablar indistintamente de leer o escribir, se utiliza el término acceso . Por ejemplo, para indicar que una memoria es rápida tanto en lectura como en escritura, se dice que tiene un tiempo de acceso bajo . Si bien la operación de borrado de datos en memorias volátiles en realidad no existe, ya que podemos hablar más propiamente de sobreescritura de datos , el concepto de borrado es diferente para el caso de las memorias no volátiles donde, según la tecnología utilizada, cada ubicación puede requerir un secuencia de inicialización del sector más propiamente llamada cancelación. Las memorias EEPROM , por ejemplo, simplemente tienen largos tiempos para borrar un solo byte en comparación con la lectura y la escritura, mientras que en las memorias flash el borrado se realiza en bloques de páginas escribibles llamados sectores; lectura posterior de los bits después de una cancelación se observa que los datos tienen todos el mismo valor, normalmente el valor "1" binario y la escritura permite invertir el estado del bit a binario "0", pero no de "0" a "1", siendo necesario un nuevo ciclo de borrado y escritura. Los periféricos SSD contienen controladores sofisticados para optimizar los ciclos de escritura y hacer que la memoria parezca un disco duro , pero no sin complicaciones .
La memoria de la computadora se puede clasificar de acuerdo con varios criterios:
En la arquitectura de las computadoras se distinguen dos tipos de memoria: la memoria primaria , que trabaja en contacto más directo con el procesador , constituida básicamente por la memoria RAM , la memoria ROM , la memoria Cache , y la memoria secundaria cuyos principales representantes son los discos duros . .disk , pero también medios extraíbles como disquetes , CD , DVD , cintas magnéticas , memorias flash de todo tipo y más.
Las memorias informáticas pueden utilizar varias tecnologías que proporcionan un rendimiento y un coste muy variables. A menudo, para memorias rápidas pero de alto costo unitario se usa la expresión "memoria central" o "memoria primaria", mientras que para memorias de bajo costo unitario pero lentas se usa la expresión " memoria masiva " o "memoria secundaria".
Conectada a la placa base a través de conectores llamados sockets y a la CPU a través del BUS del sistema , la memoria primaria, también llamada memoria central o memoria principal, contiene datos e instrucciones tomados de la memoria masiva esperando que estos sean tomados y procesados por el microprocesador, trabajando así de manera estrechamente acoplada con ella y siendo por tanto comparable a una memoria de tránsito o de respaldo.
En la mayoría de los casos, se trata de RAM y memoria caché , y en las arquitecturas de procesadores modernas a menudo está integrado en la placa de la CPU o directamente en el propio chip del procesador . Es una parte importante de la computadora ya que su tamaño en términos de capacidad de almacenamiento depende de la cantidad máxima de datos que pueden ser extraídos y consecuentemente procesados por el procesador en condiciones de monotarea y multitarea , por lo que se considera a todos los efectos como un parámetro. rendimiento de la propia computadora. Si se agota la memoria primaria, muchos sistemas informáticos modernos pueden implementar el llamado mecanismo de memoria virtual como una extensión temporal de la memoria primaria.
Las tecnologías de semiconductores se utilizan normalmente para hacer una memoria principal (es decir , se utilizan circuitos integrados basados en silicio ).
Esta memoria está compuesta por celdas de memoria muy numerosas , dispositivos biestables, es decir, capaces de asumir dos estados estables alternativos a través de los cuales es posible almacenar la mínima cantidad de información (1 bit). Hay dos operaciones que se pueden realizar en este componente: leer (cargar) y escribir (almacenar). Dado que en la realidad cotidiana las opciones posibles en varios casos son muchas más de dos, un bit ya no es suficiente para representarlas y, por lo tanto, se decidió unir varias celdas de memoria en registros de memoria . Si con un solo bit es posible obtener solo dos estados diferentes, con dos celdas (2 bits) es posible representar 2 2 alternativas, con la asociación de 3 celdas (3 bits) 2 3 alternativas, y así sucesivamente. En particular, el tamaño de registro más común es de 8 bits. La unión de 8 bits en realidad forma 1 byte de memoria, el primer múltiplo del bit, que puede representar hasta 256 posibles combinaciones diferentes (2 8 ). En un registro de memoria las operaciones de lectura/escritura se realizan simultáneamente en todas las celdas que forman parte del registro. En memorias con registros de 1 byte, por lo tanto, se leen 8 celdas a la vez.
Cada registro de memoria se denota por una dirección .
La operación de lecturaEn la operación de lectura sobre la memoria principal, la CPU asume una posición maestra con respecto a la memoria que es la esclava . Los dos componentes están conectados entre sí por el bus del sistema .
El proceso consiste esencialmente en la siguiente secuencia de operaciones:
MAR, PC y MDR son registros especiales de la unidad central de la máquina.
La operación de escrituraLa escritura consiste principalmente en las siguientes operaciones:
La memoria central está organizada como una tabla de celdas, cada una de las cuales está denotada por una dirección (celdas que contienen una secuencia de bits ; cada bit puede representar la información 0 o 1 a través de un estado eléctrico diferente). Cada celda tiene un tamaño predeterminado y las direcciones de las celdas varían entre 0 y n, donde n es una potencia de 2.
Las operaciones que puede realizar la memoria son dos: leer (cargar) y escribir (almacenar).
Es necesario distinguir entre varios tipos de memorias primarias, según la función que desempeñan y sus peculiares características. Los más importantes se enumeran a continuación.
La fase de transferencia de la memoria del sistema a la memoria caché se lleva a cabo mediante un circuito especial llamado MMU (Memory Management Unit). La MMU también realiza la tarea de gestión de la memoria virtual.
Además, debe tenerse en cuenta que debido a la dispersión de la carga del condensador , de capacidad extremadamente pequeña, existe la necesidad de una actualización continua de la información. A esta tarea se dedica un canal del circuito DMA que a intervalos regulares (153 ms) debe necesariamente refrescar toda la memoria del sistema para evitar la pérdida irreparable de datos y por tanto el colapso del ordenador.
Memoria de videoSe utiliza una versión particular de las memorias dinámicas para la gestión de video. Estos dispositivos aprovechan la acción de refresco, anteriormente recordada, para gestionar la información que periódicamente debe enviarse al vídeo, evitando así pasar por la CPU que haría mucho más lenta la transferencia de datos.
La tecnología utilizada actualmente para la realización de memorias de vídeo es la GDDR (Graphics Double Data Rate).
Almacenamiento secundario o masivoLa memoria secundaria, también llamada memoria auxiliar o memoria masiva, es una unidad que se agrega a la memoria primaria (o central) de la computadora para aumentar su capacidad de almacenamiento. Consiste en una clase de dispositivos que no se colocan en contacto directo con el procesador . En consecuencia, los datos que contienen no se pierden una vez que se apaga el propio procesador.
Tipos de almacenamiento secundarioA continuación se muestran las diversas categorías de memorias secundarias:
Otro tipo de memorias secundarias, pero aún en desarrollo, son las memorias holográficas . Estas nuevas tecnologías de almacenamiento holográfico tendrán la ventaja de poder almacenar datos no en una superficie (como hacen los medios actuales) sino en un volumen: estas nuevas memorias se caracterizarán por tanto por una alta capacidad de almacenamiento y además por tiempos de acceso cortos. .
Entre las diversas ideas, la forma más prometedora de almacenar múltiples imágenes holográficas en el mismo medio es usar diferentes ángulos de divergencia entre los dos láseres. Cambiando el ángulo de incidencia del haz de lectura es posible leer diferentes páginas. Sin embargo, existen algunos problemas que dificultan la realización de estas nuevas memorias; los más importantes son:
El motivo principal que empuja a los investigadores a crear estas memorias es que el registro de datos en soportes magnéticos y ópticos chocará rápidamente con los límites físicos de los soportes y, por tanto, las memorias, que ahora son adecuadas, pueden no ser suficientes para futuras necesidades.
La memoria típica puede ser tanto de lectura como de escritura. Estos dispositivos se denominan memorias de lectura-escritura .
Sin embargo, también se utilizan memorias que se escriben sólo en la fase de inicialización y cuya escritura no es posible en un uso normal. Esta inicialización puede realizarse de forma incremental por el mismo equipo con el que se leen los datos escritos. Estos dispositivos se denominan memorias de una sola escritura o WORM (Write Once, Read Many).
Alternativamente, puede ser necesario escribir todos los datos con un dispositivo externo apropiado antes de que la memoria pueda usarse para lectura. Estos dispositivos se denominan memorias de solo lectura o ROM (Read-Only Memory).
Estos son los ejemplos más populares para cada uno de los tres tipos anteriores:
Según la capacidad de almacenar datos de forma permanente, existen dos tipos de memoria:
Los defectos en la volatilidad son los siguientes:
A pesar de sus deficiencias, las memorias volátiles se utilizan mucho, ya que tienen tiempos de acceso mucho más cortos que otras memorias.
Para las memorias de lectura-escritura, el tiempo de lectura suele ser cercano al tiempo de escritura, por lo que hablamos genéricamente de tiempo de acceso. Para los recuerdos que se pueden escribir una vez, la escritura puede ser mucho más lenta que la lectura; en este caso, dado que la memoria se leerá muchas veces, el tiempo de lectura se considera más significativo.
En general, el coste unitario (es decir, por byte) de las memorias aumenta a medida que aumenta la velocidad de lectura. Por tanto, la clasificación por velocidad de lectura coincide sustancialmente con la clasificación por coste unitario.
En base a este criterio, tenemos la siguiente jerarquía: