En este momento estás viendo Memorias de un sistema informático.

Memorias de un sistema informático.

Memorias. Tipos y características.

Tal vez se piense en la memoria RAM y ROM cuando hablamos de memoria de un sistema informático.

La memoria RAM almacena de forma no persistente, datos e instrucciones, y los mantiene para que cualquier componente que los necesite pueda acceder a ellos sin tener que repetir ningún ciclo de trabajo. La ROM es persistente.

Cada vez importa más la cantidad de RAM instalada, ya que los programas, y entre ellos los sistemas operativos, cada vez requieren más recursos. Lo que más tiempo consume es tener que cargar datos desde el disco duro en la memoria RAM. Por ello, cuanta menos memoria, más intercambios tendremos que hacer y más tiempo tardará el proceso.

Por ejemplo, supongamos que solo tenemos 2 Gbytes de RAM en el sistema y 5 aplicaciones abiertas, y cada una consume 1 Gbyte de memoria entre datos y programas, esto supondrá que el sistema tendrá que realizar muchas operaciones redundantes por los ciclos de vaciado y rellenado de la RAM. En esta situación tendrá que acudir al disco en busca de los datos que necesite y que no se han podido cargar en RAM. Sin embargo, si el sistema tuviese 8 Gbytes, cargaría todo en la RAM y no serían necesarias estas operaciones.

Pero la RAM es solo una parte de la memoria que utiliza un sistema informático. Vamos a analizar este componente, que es más complicado de lo que creémos.

Veremos:

  • Introducción
  • Especificaciones físicas de la memoria.
    • Características principales
      • Latencias
  • Tipos de memorias.
    • Memorias volátiles
    • Memorias no volátiles
    • Módulos de memoria
  • Jerarquía de la memorias.
    • Registros y caché
    • Memoria principal
    • Memoria secundaria

Introducción

La memoria es un componente que se integra con la Unidad Central de Procesamiento y los dispositivos de entrada y salida para formar un sistema informático.

Es la parte del sistema informático que almacena la información para que pueda ser utilizada en el momento en que se la necesite por otros componentes. Esta información está constituida por:

  • Las instrucciones que integran los programas a utilizar.
  • Los datos, tanto iniciales (operandos) como finales (resultados) junto con los intermedios que se obtienen durante la ejecución de los programas. Puedes ver el ciclo de una instrucción en este post.

En consecuencia, podemos definir la memoria de un sistema informático como el componente físico que almacena la información, ya sea de forma temporal o permanente.

Estructura de la arquitectura Von Neumann

En el mercado hay una gran variedad de memorias que están construidas con diferentes tecnologías, lo que determinará su velocidad, capacidad y coste.

Podemos clasificar las memoria en función de su ubicación como:

  • Memoria interna: registros en la CPU, memoria principal y memoria Caché.
  • Memoria Secundaria o Externa: Discos duros, almacenamiento externo, en la nube, etc…

La estructura del sistema de la memoria, como veremos más adelante, esta concebida en múltiples niveles, para conseguir una alta capacidad de almacenamiento y un rápido acceso a los datos e instrucciones de la forma más barata posible.

Especificaciones físicas de la memoria

Kit de dos módulos de DDR3 1866 y CL 10. (8+8 Gb)

Características.

Las características de las memorias son las siguientes:

  • Duración de la información: Hace referencia al tiempo que cada celda de memoria puede retener la información almacenada.
  • Capacidad de almacenamiento: Hace referencia a la cantidad de información que puede almacenar un dispositivo de memoria. Depende del número de direcciones de memoria que posea y la longitud en Bits de cada una de ellas.
  • Ciclo de reloj o velocidad de bus: En las memorias SDRAM que son síncronas, las operaciones de lectura y escritura se realizan en función de los ciclos de reloj del microprocesador. Cuanto menor sean los ciclos, mayor frecuencia y mayor número de operaciones.
  • Velocidad efectiva: Los ciclos se dividen en flancos de subida y bajada, por lo que hay memorias que utilizan todo un ciclo para realizar una operación o realizan varias.
  • Operaciones por ciclo utilizando la subida y las bajadas de los flancos.
  • Ancho de banda: Número de palabras transferidas entre la Memoria Principal y la CPU en una unidad de tiempo. Normalmente se mide en MB/s.
  • Tiempo de Acceso (TA): Tiempo máximo que transcurre desde que se inicia la operación de Lectura/Escritura hasta que finaliza con la obtención o almacenamiento de la información.
  • Tiempo de Ciclo (TC): Tiempo que, como mínimo, debe haber entre los inicios de dos operaciones sucesivas sobre la misma memoria. Lo habitual en las memorias comerciales es que se cumpla la relación Tiempo-Ciclo > Tiempo-Acceso.
  • Unidad de transferencia: Para transferir la información, se puede realizar el acceso por palabra o por bloque.
  • Modo de acceso: Es el método que sigue la memoria para acceder a una determinada posición, los 4 métodos principales son:
    • Acceso aleatorio: Se puede acceder a cualquier posición de la memoria en cualquier orden, de tal forma que el TA es independiente de la posición a la que se accede.
    • Acceso secuencial: Se accede a la información secuencialmente el TA variará en función de la posición que ocupa la información.
    • Acceso directo: Para acceder a una información se determina el bloque al que pertenece y después la busca secuencialmente dentro del bloque. El TA también depende de la posición que ocupa la dirección.
    • Acceso asociativo: Son memorias de Acceso Aleatorio, pero realizan el acceso proporcionando el valor del campo etiqueta de la posición, ya que ésta consta de dos campos, Campo de Etiqueta y Campo de Dato. Se compara el valor dado con todas las Etiquetas y cuando se encuentra la que corresponde, se obtiene el Campo de Dato asociado. Las comparaciones de un valor con todos los campos de etiqueta se hacen en paralelo, con ello se consigue un Tiempo de Acceso muy reducido. A las memorias que tienen este tipo de acceso se las denomina Memorias CAM.

Sobre estas características analicemos un ejemplo real. Imaginemos que tenemos una memoria DDR4-2666. El 2666 nos indica millones de transferencias por segundo. Al ser una memoria DDR, realiza dos operaciones por ciclo y como es DDR4, la velocidad de funcionamiento interno es 1 cuarta parte la del bus externo. Por tanto, podemos extraer los siguientes datos:

  • Transferencias: 2666 MT/s
  • Reloj externo (Frecuencia del Bus): 2666 MT/s / 2 =1333 MHz
  • Reloj interno (Frecuencia del módulo): 1333 MHz / 4 = 333 MHz

Podríamos calcular entonces la velocidad de transferencia máxima y su denominación comercial:

  • Vel. de TX max. = 333 (frecuencia) x 8 (T x Hz) x 8 (ancho del bus) = 21333 MB / s
  • Designación: PC-21333

Latencias

Al analizar una memoria una de las características más destacadas es la latencia. La podemos definir como el tiempo transcurrido desde que es solicitado un dato hasta que es transferido el primer bit. Este dato es importante y puede ser determinante. Nos podemos encontrar que memorias rápidas con latencias elevadas son “más lentas” que otras de menor frecuencia.

Es frecuente caracterizar la memoria, además de por la velocidad en MHz, por la latencia. Se suelen dar cuatro valores (tCAS, tRCD, tRP y tRAS), agrupados de este modo: CL7-7-7-20. El valor más representativo para cuantificar la latencia es el primero (CL). Generalmente, se puede pensar que un módulo con menor CL será mejor que otro, aunque eso solo es cierto en parte, y para una misma velocidad.

Esta latencia se da en ciclos de reloj, pero la verdadera medida la vemos en nanosegundos (ns). Para calcular este valor se utiliza la fórmula:

  • 1/Frecuencia del Bus que nos dará el resultado en microsegundos, y solo nos quedará convertirlo en nanosegundos. Por ejemplo, una memoria con 1866 Mhz con frecuencia de reloj 933Mhz , obtendremos 0,00107 ms que equivalen a 10,7 ns.
  • O con esta otra fórmula, (CAS / Frecuencia (MHz)) x 1.000 = Latencia (ns). Por ejemplo, para 2.133 MHz, con una frecuencia de reloj real sin multiplicar por dos de 1.066 MHz, una latencia de CL9 ciclos de reloj se traduce en 8,4 ns. Para 1.333 MHz efectivos, con una frecuencia de 667 MHz una latencia de CL7 se traduce en 10,5 ns. Así pues, la latencia hay que ponderarla en su contexto y para cada frecuencia.

¿Como funciona?

Imaginemos una biblioteca con estanterías y en cada una de ellas encontramos estantes divididos en espacios.

Prestemos atención a la siguiente imagen:

Vemos diferentes tableros (Estanterías), cada uno de ellos dividido en filas (Estantes) y columnas (Espacios) que son las celdas donde se almacena un dato. Cuando hacemos referencias a la latencia CAS, lo hacemos al tiempo transcurrido hasta alcanzar una determinada celda. No obstante hay otras operaciones que producen más retardos.

Para llegar a una celda, primero tenemos que activar el tablero (librería) donde se encuentre la celda. Esto se realiza mediante el envío de una señal de activación que provoca una latencia llamada ACTIVE.

Después deberemos señalar la fila (estante), donde se encuentra el dato buscado. Para ello se manda una nueva señal que provoca otro retraso. Esta latencia se denomina RAS.

Seguidamente hay que señalar la columna o celda concreta que buscamos. Se envía una señal que indica esta dirección de memoria concreta. Esta se llama latencia CAS, que representan los ciclos de reloj necesarios para el envío de todas estas señales.

Finalmente tenemos una cuarta latencia, denominada PRECHARGE, para desactivación del tablero activo.

Si escogemos el ejemplo anterior DDR4 2666 (16-16-16-36) siendo estas cifras las latencias anteriores, hemos calculado que la frecuencia de bus es 1333 MHz. Un ciclo de reloj por lo tanto son aproximadamente 0,75 ns. (1/1333=0,0075ms = 0,75ns)

  • La latencia CAS (CL)= 0,75*16 = 12 ns.
  • El tiempo de acceso a la primera celda de la primera fila del primer tablero:
    • (0,75 ns * 16) + (0,75 * 16) + (0,75 * 16) + (0,75 * 36) = 63 ns.

Tipos de memorias

Memorias volátiles

Son conocidas como memorias RAM (Random Access Memory). Son volátiles, de lectura y escritura y de acceso aleatorio. Encontramos de dos tipos:

  • SRAM (Static RAM): Este tipo no necesita ser refrescada continuamente para mantener los datos, por eso es estática. Los chips son más grandes, consumen más y son más caros, por eso se utilizan principalmente como memoria caché.
  • DRAM (Dynamic RAM): Este tipo necesita ser refrescada continuamente para que mantengan los datos. Tras distintas generaciones (FPM, EDO, SDRAM…), las memorias DRAM han ido evolucionando. Veamos las más importantes actualmente:
    • DDR (2,3,4): Estas memorias pueden transferir datos por dos canales distintos simultaneamente en un ciclo de reloj. En posteriores versiones, han ido incrementando las velocidades o doblando las frecuencias de funcionamiento internas, llegando a velocidades de operación mucho más altas con una latencia total inferior. Con la versión DDR 4 se consigue el direccionamiento independiente de grupos de chips de memoria, lo que permite alcanzar tasas de transferencia superiores. Como ejemplo tenemos las memorias DDR4 de 288 pines con un ancho de bus de 64 bits (8 bytes).
    • GDDR: Son la memoria dedicada para tarjetas gráficas (GPU). Hay varias generaciones de esta memoria, actualmente la última es GDDR6. Estas están basadas en las memorias DDR. Permiten unas tasas de transferencia totales muy elevadas y es adecuada para escenarios dónde ésta es mucho más importante respecto a las latencias de acceso, como edición de video, juegos o «minería».

Memorias no volátiles

Estas memorias son las denominadas ROM (Read Only Memory) que son de sólo lectura y con modo de acceso aleatorio:

  • ROM con máscara: Son memorias permanentes, la información que almacena se graba en el proceso de fabricación.
  • PROM Puede grabar su contenido el propio usuario, siempre que disponga de un grabador de memorias.
  • EPROM: ROM Programable, que puede borrarse con una exposición de rayos ultravioletas y volver a grabar una información diferente.
  • EEPROM: ROM Programable y Borrable, se puede acceder individualmente a las posiciones de la memoria. Se borra eléctricamente en lugar de con rayos UV.
  • FLASH: Modalidad de la EEPROM más veloz, de mayor capacidad y de menor coste. Está más destinada a ordenadores portátiles.
  • NVRAM: Es un híbrido entre las memorias RAM y ROM, ya que tiene celdas de memoria combinadas SRAM+EEPROM. La parte RAM hace que sea una memoria de lectura/escritura y que precise de batería interna para asegurar la no volatilidad.

Módulos de memoria. El componente físico.

Un módulo de memoria es un circuito impreso rectangular con distintos chips de memoria soldados. Tenemos tres tipos de módulos:

  • SIMM (Single In-Line Memory Module)
  • DIMM (Double In-Line Memory Module)
  • RIMM (Rambus In-Line Memory Module)

Todos los módulos tienen una muesca en la zona de los conectores que permite que solo se pueda pinchar de un modo en concreto.

Los laptop utilizan otros módulos específicos, los SO-DIMM.

Módulos de SO-DIMM

Jerarquía de la memoria.

A la hora de diseñar el sistema de memoria los criterios que se siguen son:

  • Coste por bit almacenado.
  • Velocidad de acceso a la información.
  • Capacidad de almacenamiento.
  • Consumo de potencia.
  • Fiabilidad.

Evidentemente la mejor memoria para un procesador es la más rápida, con más capacidad, más barata, que consuma poco y sea fiable. Todo un reto conseguirla…

Para solucionar este problema, se estructura la memoria en niveles jerárquicos, ubicando la más rápida, más cerca del procesador, siendo más lenta conforme nos separamos de este. Se estructura en niveles de manera que en el primer nivel estará la memoria más rápida y de menor capacidad, y en los niveles siguientes irá aumentando la capacidad y disminuyendo la velocidad y precio. De esta forma, en el último nivel tendremos los dispositivos de almacenamiento más grandes, aunque más lentos y baratos, que nos permita el almacenamiento masivo de datos.

Disposición y características de las memorias

Para que el sistema informático tenga un rendimiento óptimo, tenemos que asistir al procesador con una memoria muy rápida y, que de este modo, se conecte solo a esta memoria de nivel 1. Pero estas memorias son de poca capacidad, por tanto, tendremos que predecir la información que se va a manejar para traerla desde un nivel inferior de memoria, con más capacidad pero más lenta, y predecir qué información no va a ser usada para vaciarla y dejar espacio libre.

Registros y caché

La memoria más cercana al procesador (nivel L1) son los registros (Banco de registros). Están en el nivel superior de la jerarquía de memorias. Se encuentran físicamente dentro del CPU, por lo que son pocos, pero de acceso muy rápido. Su longitud suele coincidir con la longitud de palabra del computador y aunque cabe muy poca información, son vitales porque contienen los datos que el procesador va a utilizar.

Además tenemos la memoria caché que está situada entre la Memoria Principal y el Banco de Registros (L2 y L3), que puede estar tanto dentro como fuera de la CPU y está integrada por memorias SRAM. Cuando el procesador no localiza la información que necesita en los registros internos L1, la busca en la L2 y sucesivamente va bajando en la jerarquía.

Memoria Principal

Cuando el procesador no encuentra la información que necesita en la memoria Caché, acude a la memoria principal (RAM). Esta memoria debe ser relativamente grande y veloz, pues contendrá instrucciones y datos que se van a utilizar próximamente.

Cuatro módulos de RAM y Chipset

Memoria Secundaria

Es el nivel más bajo de la jerarquía de memorias. Si el procesador no encuentra los datos que necesita en la Memoria Principal acudirá a esta memoria ya que aquí están todos los datos necesarios para la tarea.

Puede tener una capacidad enorme pero es unas 100.000 veces más lenta que la Memoria Principal. En este nivel encontramos los dispositivos ópticos CDROM, magnéticos HHD, de estado sólido SSD, memorias Flash o sistemas de almacenamiento remotos como NAS o servidores dedicados, que se caracterizan por una alta capacidad y un bajo coste.

Si tienes algún comentario que hacer, al pie del post tienes un formulario para hacerlo.


Y si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, o te quieres suscribir para recibir un correo-e cuando haya una nueva publicación, en la pagina de contacto, tienes otro formulario.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.