Dispositivos de memoria para sistemas digitales – DE Parte 21

En tutoriales anteriores, aprendimos que los circuitos secuenciales requieren elementos de memoria para retener estados anteriores de un sistema digital. Luego se introdujeron flip-flops y registros como componentes básicos de la memoria en un circuito secuencial. Los registros son suficientes para almacenar datos de tiempo de ejecución en pequeños microcontroladores y ASIC. Los sistemas informáticos complejos requieren memoria digital no sólo para almacenar información en tiempo de ejecución (tal como la almacenan los registros en un microcontrolador), sino también para almacenar programas y datos de forma permanente dentro del sistema digital. Por tanto, requieren memoria dedicada interna o externa.

Una memoria se define como un dispositivo que puede almacenar información binaria a la que se puede acceder cuando sea necesario para su procesamiento. Después del procesamiento, los resultados finales se pueden almacenar nuevamente en la memoria. Los sistemas digitales pueden ser de 8 bits, 16 bits, 32 bits, 64 bits, etc. Los sistemas de 8, 16, 32 y 64 bits almacenan datos como palabras de 8, 16, 32 y 64 bits, respectivamente. El tamaño de la memoria se expresa en bytes, kilobytes, megabytes, gigabytes, etc. Cualquier memoria se divide en bloques de construcción llamados células. Cada celda se identifica mediante una dirección única que varía de 0 al número de celdas menos uno. Dependiendo del tipo de sistema digital, es decir, de 8, 16, 32 o 64 bits, las celdas de la memoria pueden tener una longitud de 8, 16, 32 o 64 bits.

La memoria en un sistema digital se puede utilizar para almacenar programas y datos de forma permanente o para almacenar datos e instrucciones de un programa temporalmente durante el tiempo de ejecución de un programa o aplicación. La mayoría de los sistemas digitales requieren recursos de memoria para el almacenamiento temporal y permanente de datos y programas para ejecutar las aplicaciones previstas. En algunos sistemas digitales, la memoria puede usarse sólo para almacenar datos mientras se transfieren desde un dispositivo de entrada a un dispositivo de salida.

La categorización de la memoria digital generalmente se realiza en el contexto de sistemas informáticos de escritorio y servidores. Según la ubicación y el uso de las memorias (en sistemas de escritorio y de servidor), existen tres tipos de memorias:

1) Memoria caché

2) Memoria principal

3) Memoria secundaria

Memoria caché -

La memoria caché es una memoria semiconductora de alta velocidad integrada en el chip del procesador o interconectada al procesador a través de un bus independiente. La CPU o el procesador pueden acceder a los datos de la memoria caché más rápidamente en comparación con la memoria principal. La caché suele ser un grupo de registros semiconductores o una memoria estática de acceso aleatorio. En microcontroladores y microprocesadores pequeños, un grupo de unos pocos registros puede servir de forma similar a la memoria caché.

El caché se utiliza para almacenar datos e instrucciones que el procesador utiliza repetidamente al ejecutar un programa, o datos e instrucciones que el procesador puede necesitar a continuación. Dado que la memoria caché es una memoria de alta velocidad que está integrada o estrechamente interconectada con el procesador, es decir, más cerca del procesador, ayuda a aumentar la velocidad general de ejecución del programa.

La memoria caché es más rápida que la memoria principal y se puede acceder a ella en menos tiempo en comparación con la memoria principal de cualquier sistema digital. Dado que la memoria caché es muy cara y de tamaño limitado, sólo se utiliza para almacenar datos temporales e instrucciones de ejecución que deben ejecutarse inmediatamente en un corto período de tiempo.

La mayoría de los procesadores de escritorio y servidores tienen memoria caché multicapa o multinivel. Dependiendo de la proximidad y la accesibilidad, estos niveles se clasifican de la siguiente manera:

1) Caché L1 – El Caché de Nivel 1 o Primario es el caché más rápido y más cercano al procesador, siempre incorporado al chip del procesador.

2) Caché L2 : el caché de nivel 2 o secundario generalmente tiene un tamaño mayor que el caché L1. Está integrado en el chip del procesador o conectado al procesador mediante un bus de interconexión dedicado. Se utiliza cuando los datos en tiempo de ejecución consumen la caché L1.

3 )L3 Caché : el nivel 3 es una memoria caché que es más rápida que la RAM (memoria primaria), pero significativamente más lenta que la caché L2. Está diseñado para realizar un seguimiento de las memorias caché L1 y L2 cuando se ejecutan programas grandes. En los procesadores multinúcleo, cada núcleo suele tener caché L1 y L2 individual y comparte un caché L3 común. Hoy en día, la mayoría de los chips de procesador tienen caché L1, L2 y L3 integradas en el propio chip del procesador.

4) Cachés especializados : un sistema informático digital puede tener diferentes cachés especializados. Como puede haber capturas de disco para almacenar y acceder rápidamente a los datos de uso frecuente. Puede haber capturas especializadas para aplicaciones específicas como navegadores, enlace de direcciones de red, bases de datos, etc.

Imagem típica de memória cache externa

Figura 1: Imagen de caché externa típica

Memoria principal -

La memoria principal es una memoria externa que se utiliza para almacenar datos, programas o el sistema operativo que un sistema informático está ejecutando actualmente. También tiene una capacidad limitada, pero significativamente grande en comparación con las memorias caché. Al igual que las memorias caché suelen ser de unos pocos kilobytes o megabytes, mientras que la memoria principal suele estar en gigabytes. La memoria principal es nuevamente una memoria semiconductora, pero es más lenta en comparación con los registros. Es una memoria volátil y los datos almacenados/cargados en ella se pierden cuando se apaga la alimentación. La memoria principal, también llamada memoria primaria, se clasifica en RAM (Random Access Memory) y ROM (Read Only Memory).

Imagem típica de Memórias Primárias – RAM e ROM

Figura 2: Imagen típica de memorias primarias: RAM y ROM

Memoria secundaria -

La memoria secundaria es una memoria externa que se utiliza para el almacenamiento permanente de datos y programas. Son memorias ópticas (CD, DVD o Discos Blu-Ray) o memorias magnéticas (Discos Duros) que son memorias no volátiles y pueden retener los datos almacenados en ellas incluso cuando no están conectadas. Cualquier procesador accede a estas memorias mediante rutinas de entrada y salida. Los datos (archivos del sistema operativo, datos y programas) almacenados en estas memorias primero se leen y se cargan en la memoria primaria (RAM) y luego el procesador los lee desde la memoria primaria. Los discos ópticos pueden almacenar datos de hasta unos pocos gigabytes, mientras que hay disponibles discos magnéticos con capacidades de terabytes.

Imagem típica de memórias secundárias, como discos rígidos

Figura 3: Imagen típica de memorias secundarias como discos duros

Memorias semiconductoras, ópticas y magnéticas

Según su construcción, las memorias se pueden clasificar en semiconductoras, ópticas y magnéticas. Las memorias semiconductoras se construyen sobre obleas de silicio utilizando tecnologías LSI, VLSI o ULSI. Son similares a los circuitos integrados digitales que utilizan puertas lógicas en su construcción, excepto que están construidos explícitamente solo para almacenar datos. La memoria caché, las memorias Flash y las memorias primarias (RAM y ROM) son memorias semiconductoras.

Las memorias ópticas almacenan datos en un medio legible ópticamente. Los discos CD, DVD y Blu-Ray son ejemplos populares de memorias ópticas. Los datos se escriben y leen en memorias ópticas con la ayuda de unidades de disco óptico enfocando la luz láser en un disco óptico giratorio. Los discos compactos (CD) pueden almacenar datos de hasta 700 MB. Los DVD de una sola capa pueden almacenar 4,7 GB de datos, mientras que los DVD de doble capa pueden almacenar 8,5 GB de datos. Los HD DVD pueden almacenar 15 GB de datos en una sola capa y 30 GB en una doble capa. Los discos Blu-ray de una sola capa pueden almacenar 25 GB de datos, mientras que los discos Blu-ray de doble capa pueden almacenar 50 GB de datos. Los Blu-ray de cuatro capas pueden almacenar 128 GB de datos.

Las memorias magnéticas almacenan datos en un medio magnetizado. Los datos se almacenan y leen desde la memoria magnética utilizando el cabezal de lectura/escritura, donde los datos se almacenan permanentemente en el disco como patrones magnéticos. La memoria magnética más utilizada son los discos duros. Su capacidad puede variar desde gigabytes hasta terabytes. Otros ejemplos de memorias magnéticas son los disquetes, las tiras magnéticas y las cintas de grabación magnéticas (cintas de audio) que ya no están obsoletas.

Memoria volátil y no volátil

La memoria volátil es un tipo de memoria que pierde datos almacenados cuando se corta la alimentación al circuito de memoria. La memoria caché y la RAM son memorias volátiles. La memoria no volátil retiene los datos almacenados de forma permanente incluso después de que se apaga la fuente de alimentación. Las ROM, las memorias Flash y los dispositivos de memoria secundaria, ya sean ópticos o magnéticos, son todas memorias no volátiles.

Memorias estáticas y dinámicas (volátiles)

En las memorias volátiles como la RAM, el dispositivo de memoria retiene los datos hasta que haya energía disponible para el dispositivo de memoria. La memoria volátil también puede ser de tipo estático o dinámico. En la memoria estática volátil, los datos permanecen almacenados en la memoria hasta que haya energía disponible, sin necesidad de actualizar o reescribir los datos periódicamente. Los registros, la RAM estática y las tarjetas perforadas son memorias estáticas volátiles.

En la memoria dinámica volátil, los datos no permanecen almacenados permanentemente; en cambio, es necesario reescribirlos periódicamente a pesar del suministro continuo de energía. La memoria dinámica utiliza la capacitancia de un transistor como dispositivo de almacenamiento. Sólo se necesita un transistor para almacenar un bit de información. El condensador debe refrescarse periódicamente sin descargarse para evitar pérdida de información. La RAM dinámica y los registros circulantes que utilizan CCD (dispositivos acoplados de carga) son ejemplos de memorias volátiles dinámicas.

Memorias de acceso secuencial y acceso aleatorio

Los dispositivos de memoria también se pueden clasificar según el método de acceso. Según el método de acceso, los dispositivos de memoria se pueden clasificar en memorias de acceso secuencial y memorias de acceso aleatorio. En una memoria de acceso secuencial, se accede secuencialmente a una ubicación de memoria determinada, es decir, se accede a cualquier ubicación de memoria sólo después de secuenciar las ubicaciones de memoria anteriores. Por tanto, el tiempo de acceso a una memoria secuencial varía dependiendo de la ubicación a la que se acceda. La ROM y los dispositivos de almacenamiento secundario, como discos duros y discos ópticos, son memorias de acceso secuencial.

Por otro lado, en la memoria de acceso aleatorio, se puede acceder aleatoriamente a cualquier ubicación de la memoria y, por lo tanto, siempre hay el mismo tiempo de acceso para todas las ubicaciones de la memoria. La caché y la RAM (memoria de acceso aleatorio) son ejemplos de memorias de acceso aleatorio.

Memoria virtual -

La memoria virtual es una técnica de administración de memoria que permite la transferencia temporal de datos en tiempo de ejecución desde la RAM al almacenamiento secundario (disco duro) para compensar la escasez de memoria primaria (RAM) cuando se ejecutan programas grandes. De esta manera, el programador dispone de una memoria virtual extremadamente grande, a pesar del menor tamaño de la memoria física disponible. Esta técnica la implementa el sistema operativo donde el sistema operativo forma direcciones contiguas entre la RAM y la memoria virtual asignada en el disco duro para almacenar datos de tiempo de ejecución activos en la RAM y datos de tiempo de ejecución inactivos en el disco duro. En las siguientes situaciones, no es necesario que todo el programa esté completamente cargado en la memoria principal (RAM) y, por lo tanto, se puede utilizar la memoria virtual:

  • Las rutinas de manejo de errores escritas por el usuario se utilizan sólo cuando ocurre un error en los datos o el cálculo.
  • Ciertas opciones y características de un programa pueden usarse raramente.
  • A muchas tablas se les asigna una cantidad fija de espacio de direcciones, aunque en realidad sólo se utiliza una pequeña parte de la tabla.
  • La capacidad de ejecutar un programa que está sólo parcialmente en la memoria contrarrestaría muchos beneficios.
  • Se requeriría menos E/S para cargar o intercambiar cada programa de usuario en la memoria.
  • Un programa ya no estaría limitado por la cantidad de memoria física disponible.
  • Cada programa de usuario puede ocupar menos memoria física; Se podrían ejecutar más programas al mismo tiempo, con el correspondiente aumento en la utilización y el rendimiento de la CPU.

Los sistemas informáticos (microcontroladores, placas hijas y placas base) dependen principalmente de memorias semiconductoras (caché, RAM y ROM) para ejecutar programas. En el próximo tutorial, se analizarán en detalle la RAM y la ROM .

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.