Memorias

En un sistema informático la memoria es el elemento que permite almacenar y recuperar información. Se pueden realizar diferentes clasificaciones en función de diferentes criterios.

Criterios de clasificación de las memorias:

  • Persistente/Volátil: Según sea capaz de almacenar la información de manera persistente o bien se pierda al cortarse el suministro eléctrio o al transcurrir un tiempo sin ser refrescada.
  • Según su localización:
    • Memoria principal (o interna): Aquella que es directamente accesible por la CPU
    • Memoria secundaria (o periférica): Aquella que precisa de operaciones de entrada/salida para ser accedida por la CPU
  • Tecnología: estado sólido, electromagnética, magneto-óptica
  • Otros criterios: velocidad, coste, capacidad y densidad de almacenamiento y consumo.


Memorias persistentes/volátiles

Las memorias persistentes preservan su información a lo largo del tiempo sin necesidad de suministro eléctrico. En las memorias volátiles al cesar el suministro eléctrico (o cuando la información no es refrescada durante cierto tiempo) se pierde la información.

Algunos ejemplos de los dos tipos de memoria son:

memorias persistentes
memorias volátiles
Disco duro
Unidades de cinta
CD-ROM, CD-R, CD-RW
DVD-ROM, DVD-R, DVD-RW
ROM, PROM, EPROM, EEPROM
FLASH
MRAM
RAM (DRAM, SRAM, VRAM)

Según su localización

Como memoria principal se suele utilizar una combinación de memoria RAM y alguna tecnología persistente (normalmente algún tipo de memoria ROM). Mientras en la memoria RAM se cargan los programas que están en ejecución, así como los datos con los que trabajan, en la memoria ROM se guardan las instrucciones que permiten arrancar el ordenador al conectarlo. En el caso de los PCs a esta memoria se la llama BIOS (Basic Input Output System) de un modo más general, a la información contenida en esta memoria se la llama Firmware.

Como memoria secundaria se utilizan toda una variedad de dispositivos periféricos: Discos duros, lectores/grabadores de CDs, DVDs y unidades de cinta.

Tecnología utilizada

Electromagnética:
Los discos duros, discos flexibles y cintas utilizan un cabezal de escritura que guarda información en el soporte físico (platos o cintas) al polarizar dominios magnéticos. Estos soportes son sensibles a los campos magnéticos, de manera que si por ejemplo se acerca un imán a un disco flexible, se pierde su contenido.
dominios magnéticos.png
Magneto-óptica:
Los discos magneto-opticos (como el Minidisc) utilizan un cabezal magnético para leer y escribir la información, sin embargo, sólo es posible polarizar los dominios magnéticos del soporte físico cuando el material está a cierta temperatura, por eso antes de escribir un laser calienta el soporte físico.
Disco magneto óptico
Estado sólido:
Las memorias de estado sólido no cuentan con partes móviles ni por supuesto con válvulas de vacío (el significado original de electrónica de estado sólido fué el de electrónica basada en trasistores, sin válvulas de vacío).
simm
dimm
SIMMs.jpgDIMMs.jpg
Habitualmente los chips de memoria están agrupados en pequeños módulos de manera que resulta relativamente fácil substituir/ampliar la memoria del sistema informático.

Los módulos más habituales son:

Jerarquía de memorias

En el diseño del sistema informático, en lo que a la decisión de la memoria a utilizar, se ha de encontrar un compromiso entre su capacidad y su velocidad. Ocurre que en algunas situaciones se necesita una gran capacidad de almacenamiento (es el caso de la memoria secundaria) y en otros es conveniente una mayor velocidad (memoria principal, caché, etc..).

jerarquia_de_memorias.png


La memoria secundaria trata de proveer una gran capacidad de almacenamiento (sacrificando la velocidad), mientras que la memoria que almacena la información que se está procesando en un determinado momento ha de ser rápida aunque no cuente con una gran capacidad.

Desde el punto de vista de la ejecución de un programa, no todos los datos son accedidos con la misma frecuencia estadística. Datos próximos (e instrucciones próximas) tienen una mayor probabilidad de ser accedidos. Por esta razón las cachés, aunque no cuentan con una capacidad suficiente como para almacenar un proceso en ejecución, aumentan notablemente la velocidad del sistema informático.

Actualmente se suelen utilizar dos niveles de caché en los ordenadores domésticos. La caché de primer nivel está integrada en el interior del µP, la caché de segundo nivel normalmente está integrada en la placa base o bien en el circuito impreso que contiene a la CPU.

Algunos sistemas de ejemplo:

µP
Caché l1
caché l2
caché l3
Pentium IV
(Northwood)
8 KiB datos
12 KiB instrucciones
512KiB

PowerPC G5
(PowerPC 970)
32KiB datos
64KiB instrucciones
512KiB

Sun SPARC
(UltraSPARC IV+)
64KiB datos
64KiB instrucciones
2048KiB 32768KiB

Otros conceptos:

En los sistemas operativos modernos se utilizan técnicas de gestión de memoria que introducen:

Memoria virtual:
Se utiliza conjuntamente memoria principal y memoria secundaria para presentar un espacio de memoria homogéneo a los programas en ejecución. De este modo se puede demandar más memoria de la que físicamente (principal) tiene instalada la máquina. Evidentemente utilizar memoria virtual provoca una pérdida de rendimiento.
Buffers I/O:
Puesto que acceder a algunos dispositivos como unidades CD, Floppy, Cinta, y discos duros es mucho más lento que acceder a la memoria principal. El sistema operativo utiliza memoria principal para guardar en memoria principal los últimos datos que han sido accedidos (o los que considera que se van a utilizar próximamente) para intentar mejorar la velocidad de respuesta.


Para saber más: