En informática, la memoria es un dispositivo que almacena datos digitales durante algún periodo de tiempo. La memoria proporciona una de las principales funciones de las computadoras.
La memoria es uno de los componentes fundamentales de la computadora. Aparece como componente esencial en cualquiera de las arquitecturas que se escojan para construir una computadora: arquitectura de Von Neumann y arquitectura Harvard. Según Von Neumann, la computadora cuenta con una memoria cuyo único propósito es almacenar tanto datos como instrucciones que la computadora esta usando, mientras que Harvard propone que la computadora necesita tanto una memoria para datos como otra para instrucciones.
La memoria se puede clasificar de manera general en dos tipos: memoria principal o interna, que se comunica directamente con el procesador y almacena temporalmente los datos y programas en uso (como la memoria RAM); y memoria secundaria o externa, para el almacenamiento masivo y permanente de datos (como los discos duros).
La clasificación de la memoria en un sistema informático es un campo conocido como jerarquía de memoria.
Jerarquía de memoria
miniaturadeimagen|Jerarquía de memorias del computador. La memoria de las computadoras contemporáneas representan la información usando bits. Texto, números, imágenes, sonido y casi cualquier otra forma de información puede ser transformada en una sucesión de bits.
A la clasificación de los dispositivos de memoria dentro de una computadora se le llama jerarquía de memoria. No existe ningún medio de almacenamiento de uso práctico universal y todas las formas de almacenamiento tienen sus desventajas, por ende, una computadora hace uso de varias formas de almacenamiento al mismo tiempo.
Dentro de la jerarquía de memoria, existen 3 reglas fundamentales que relacionan a las 3 características clave de una memoria: coste, capacidad y tiempo de acceso:
A menor tiempo de acceso, mayor coste por bit. A mayor capacidad, menor coste por bit. A mayor capacidad, mayor tiempo de acceso.
Memoria principal miniaturadeimagen|La memoria de acceso aleatorio es un tipo de memoria principal.
La memoria principal, está directamente conectada a la CPU de la computadora. Debe estar presente para que la CPU efectúe cualquier función. La memoria principal contiene los programas en ejecución y los datos con los que operan. Se puede transferir información muy rápidamente entre un registro de la CPU y localizaciones de la memoria principal (típicamente en menos de 100 ciclos de relojOperating System Concepts Essentials (Silberschatz, Galvin, Gagné, 2011), capítulo 1; ed. John Wiley & Sons; ISBN 978-0-470-88920-6.). En las computadoras modernas se usan memorias de acceso aleatorio basadas en electrónica del estado sólido, que está directamente conectada a la CPU a través de buses de direcciones, datos y control.
El almacenamiento tiene como requisito principal que cualquiera de sus localidades debe ser directamente direccionable, es decir, que todo dato almacenado en memoria pueda ser localizado por mediante su dirección de memoria. Es por esto que los registros del procesador no pueden considerarse memoria principal. Las referencias a estos se hacen por nombre, de forma directa, y no por dirección. Los registros representan el estado actual de la ejecución y los datos utilizados de manera inmediata, pero no pueden almacenar un programa completo, solo apuntar al lugar de ejecución actual.
La gran diferencia de velocidad entre el procesador y la memoria principal dio origen a la memoria caché. Esta es una memoria de muy alta velocidad, típicamente entre 10 y 100 veces más que la memoria principal, y se emplea para mejorar la eficiencia o rendimiento del CPU. Parte de la información de la memoria principal se duplica en la memoria caché. Comparada con los registros, la caché es ligeramente más lenta, pero de mayor capacidad. Sin embargo, es más rápida, aunque de mucha menor capacidad que la memoria principal.
Algunos autores presentan a la memoria caché como un nivel aparte en la jerarquía de memoria,¿Qué es la jerarquía de almacenamiento? Andrea Galdames, trad. de J. T. Barett. Fecha de consulta: 2013-09-17. sin embargo, al no ser memoria directamente direccionable (la memoria caché guarda estrictamente copias de la información disponible en la memoria principal), es común presentarla como parte funcional de la memoria principal.
Memoria secundaria miniaturadeimagen|Un disco duro es un tipo de memoria secundaria.
La memoria secundaria requiere que la computadora use sus canales de entrada/salida para acceder a la información y se utiliza para almacenamiento a largo plazo de información persistente. La memoria secundaria también se llama de «almacenamiento masivo». Un disco duro es un ejemplo de almacenamiento secundario.
Habitualmente, la memoria secundaria o de almacenamiento masivo tiene mayor capacidad que la memoria primaria, pero es mucho más lenta. En las computadoras modernas, los discos duros y las unidades de estado sólido suelen usarse como dispositivos de almacenamiento masivo.
El tiempo necesario para acceder a un byte de información dado, almacenado en una memoria principal como una unidad de estado sólido es de alrededor de 100 000 nanosegundos, mientras que en una memoria principal como una memoria RAM este tiempo puede ser de 100 nanosegundos. Esto ilustra cuán significativa es la diferencia entre la velocidad entre la memoria principal y la memoria secundaria.
La mayoría de los sistemas operativos usan la memoria secundaria como memoria virtual, esto es una técnica para incrementar artificialmente la cantidad aparente de memoria principal en la computadora. miniaturadeimagen|Un ejemplo de almacenamiento terciario: Una biblioteca de cintas, con cartuchos de cinta colocados en estantes,y un brazo robótico moviéndose.
Memoria terciaria
La memoria terciaria es un sistema que suele involucrar un robot industrial que gestiona un medio de almacenamiento masivo fuera de línea según lo solicite la computadora. La memoria terciaria se usa en el área del almacenamiento industrial, la computación científica, en grandes sistemas informáticos y en redes empresariales. Este tipo de memoria es algo que los usuarios de computadoras personales nunca van de primera mano.
Almacenamiento fuera de línea
El almacenamiento fuera de línea (off-line) es un sistema donde el medio de almacenamiento puede ser extraído fácilmente del dispositivo de almacenamiento. Estos medios de almacenamiento suelen usarse para transporte y archivo de datos. En computadoras modernas son de uso habitual para este propósito los disquetes, discos ópticos y las memorias flash, incluyendo las unidades USB. También hay discos duros USB que se pueden conectar rápidamente. Los dispositivos de almacenamiento fuera de línea usados en el pasado son cintas magnéticas en muchos tamaños y formatos diferentes, y las baterías extraíbles de discos Winchester.
Almacenamiento de red
El almacenamiento de red es cualquier tipo de almacenamiento de computadora que incluye el hecho de acceder a la información a través de una red informática. Discutiblemente, el almacenamiento de red permite centralizar el «control de información» en una organización y reducir la duplicidad de la información. El almacenamiento en red incluye: El almacenamiento asociado a red es una memoria secundaria o terciaria que reside en una computadora a la que otra de estas puede acceder a través de una red de área local, una red de área extensa, una red privada virtual o, en el caso de almacenamiento de archivos en línea, internet. Las redes de computadoras son computadoras que no contienen dispositivos de almacenamiento secundario. En su lugar, los documentos y otros datos son almacenados en un dispositivo de la red.
Características de las memorias
La división entre primario, secundario, terciario y fuera de línea, se basa en la jerarquía de memoria o distancia desde la CPU. Hay otras formas de caracterizar a los distintos tipos de memoria.
Volatilidad de la información
thumb|250px|Foto de memorias RAM tipo DDR instaladas en su socket. La memoria volátil requiere energía constante para mantener la información almacenada. La memoria volátil se suele usar solo en memorias primarias. La memoria RAM es una memoria volátil, ya que pierde información en la falta de energía eléctrica. La memoria no volátil retendrá la información almacenada incluso si no recibe corriente eléctrica constantemente, como es el caso de la memoria ROM. Se usa para almacenamientos a largo plazo y, por lo tanto, se usa en memorias secundarias, terciarias y fuera de línea. La memoria dinámica es una memoria volátil que además requiere que periódicamente se refresque la información almacenada, o leída y reescrita sin modificaciones.
Formatos de acceso a la información
Dependiendo de la habilidad para acceder a la información, se puede clasificar en: Acceso aleatorio, significa que se puede acceder a cualquier localización de la memoria en cualquier momento en el mismo intervalo de tiempo, normalmente pequeño. Normalmente la memoria principal cuenta con este tipo de acceso. Acceso secuencial, significa que para acceder a un dato almacenado en la memoria o escribir un nuevo dato, el sistema debe pasar por todos los datos almacenados que le precedan a la dirección de memoria a la que se desea llegar. El tiempo de acceso suele ser alto debido a que los sistemas de memoria con acceso secuencial guardan una enorme cantidad de datos (como las cintas magnéticas). Acceso directo, un método de acceso exclusivo de los medios de almacenamiento ópticos. La memoria en estos dispositivos está dividida por localidades, que a su vez están divididas en direcciones. Para guardar o leer un dato en la memoria, primero se debe escoger una localidad, y posteriormente elegir una dirección dentro de la localidad. El acceso a las localidades es de tipo aleatorio, es decir, de tiempo constante sin importar cual se elija, pero el acceso a las direcciones dentro de una localidad es de tipo secuencial.
Habilidad para cambiar la información
Las memorias de lectura/escritura o memorias cambiables permiten que la información se reescriba en cualquier momento. Una computadora sin algo de memoria de lectura/escritura como memoria principal sería inútil para muchas tareas. Las computadoras modernas también usan habitualmente memorias de lectura/escritura como memoria secundaria. La memoria de sólo lectura (Read-Only Memory, ROM) retiene la información almacenada en el momento de fabricarse y la memoria de escritura única lectura múltiple (Write Once Read Many, WORM) permite que la información se escriba una sola vez en algún momento tras la fabricación. También están las memorias inmutables, que se utilizan en memorias terciarias y fuera de línea. Un ejemplo son los CD-ROM. Las memorias de escritura lenta y lectura rápida son memorias de lectura/escritura que permite que la información se reescriba múltiples veces pero con una velocidad de escritura mucho menor que la de lectura. Un ejemplo son los CD-RW.
Direccionamiento de la información
En la memoria de localización direccionable, cada unidad de información accesible individualmente en la memoria se selecciona con su dirección de memoria numérica. En las computadoras modernas, la memoria de localización direccionable se suele limitar a memorias primarias, que se leen internamente por programas de computadora ya que la localización direccionable es muy eficiente, pero difícil de usar para los humanos.