~/si/ud01 $ cat 05-memoria-almacenamiento.md
- Sistemas Informáticos
- UD01
- lección 05/10
Dónde se guarda la información
Para ejecutar instrucciones, la CPU necesita leer datos y guardar resultados. Por eso el sistema combina memorias rápidas para trabajar en el momento y almacenamiento persistente para conservar información.
5.1. De la CPU al almacenamiento: una jerarquía
Section titled “5.1. De la CPU al almacenamiento: una jerarquía”En el bloque anterior se han estudiado los registros de la CPU. También almacenan información, pero no son lo mismo que la memoria RAM ni tienen la misma función.
Los registros son espacios de almacenamiento mínimos, situados dentro de la CPU. Tienen un nombre y la CPU los utiliza al ejecutar una instrucción: pueden contener un operando, una dirección, la instrucción actual o un resultado inmediato. La RAM, en cambio, es la memoria principal donde se mantienen cargados los programas y los datos con los que se está trabajando.
Un ordenador combina varios niveles para equilibrar velocidad, capacidad y coste. Cuanto más cerca está un nivel de la CPU, más rápido suele ser, pero también más pequeño.
| Nivel | Cuándo se utiliza | Qué guarda | Velocidad | Capacidad |
|---|---|---|---|---|
| Registros | En el instante en que la CPU ejecuta una instrucción | Operandos, direcciones, instrucciones y resultados inmediatos | Muy alta | Muy baja |
| Caché | Cuando la CPU necesita leer o escribir datos de memoria | Copias rápidas de datos e instrucciones de uso frecuente o cercanos | Alta | Baja/media |
| RAM | Mientras un programa está abierto o un dato está en uso | Programas, datos, variables y resultados de trabajo | Media | Media/alta |
| SSD/HDD | Antes de abrir un archivo o programa y al guardarlo | Datos persistentes | Baja comparada con la RAM | Alta |
Por ejemplo, al abrir el archivo practica.py ocurre, de forma simplificada, lo siguiente:
- El archivo está guardado en el SSD o HDD.
- Al abrirlo, el sistema carga el programa y los datos necesarios en la RAM.
- Cuando la CPU ejecuta una instrucción que necesita un dato, el hardware comprueba primero si existe una copia en la caché.
- Si el dato no está en caché, se obtiene de la RAM y puede dejarse una copia en caché para próximos accesos.
- El valor con el que va a operar la ALU se carga en un registro; el resultado inmediato también queda en un registro.
- Al guardar el archivo, sus cambios se escriben finalmente en el SSD o HDD.
5.2. RAM: memoria principal, direcciones, bits y palabras
Section titled “5.2. RAM: memoria principal, direcciones, bits y palabras”La RAM es la memoria principal de trabajo del sistema. En ella se cargan los programas y datos que se están utilizando en un momento determinado.
Sus características principales son:
- es de lectura y escritura;
- permite acceso directo a posiciones de memoria;
- es mucho más rápida que el almacenamiento secundario;
- es volátil, es decir, pierde su contenido al apagar o reiniciar el equipo.
Por ejemplo, cuando abres un navegador, el programa y parte de sus datos se cargan en RAM para que la CPU pueda acceder a ellos con rapidez. Si el equipo se apaga, esa información desaparece de la RAM, aunque los archivos guardados sigan estando en el disco.
La RAM se puede imaginar como un conjunto de posiciones numeradas. Cada posición tiene una dirección de memoria, que permite localizarla. La CPU no accede a la memoria “por nombre”, sino mediante direcciones.
En un ordenador, la información se representa mediante bits, es decir, valores binarios 0 y 1. Los bits suelen agruparse en unidades mayores. Una palabra de memoria es un conjunto de bits que el sistema puede leer o escribir como una unidad de trabajo, entendida aquí como el tamaño de dato que la CPU maneja de forma natural en sus registros y operaciones habituales. En ordenadores personales, portátiles y servidores actuales es habitual usar arquitecturas de 64 bits, por lo que una palabra suele tener 64 bits. En algunas arquitecturas y manuales técnicos, el término “palabra” puede tener un tamaño fijo distinto (por ejemplo, 16 bits en la nomenclatura clásica x86) y no coincidir siempre con el ancho de registro.
Aun así, continúan existiendo sistemas de 32 bits, sobre todo en equipos antiguos o dispositivos especializados. El diagrama usa palabras de 32 bits para que los grupos de bits puedan verse con claridad; el tamaño real depende de la arquitectura.
5.3. Memoria caché: acelerar el acceso a RAM
Section titled “5.3. Memoria caché: acelerar el acceso a RAM”La memoria caché es una memoria rápida que guarda copias de datos e instrucciones que la CPU utiliza con frecuencia. Su objetivo es reducir el tiempo de espera del procesador.
Suele organizarse en niveles:
- L1: muy rápida y pequeña, normalmente asociada a cada núcleo.
- L2: algo más grande, pero un poco más lenta.
- L3: mayor capacidad y compartida en muchos procesadores, aunque más lenta que L1 y L2.
La caché mejora el rendimiento porque evita que la CPU tenga que consultar la RAM constantemente.
Esto funciona gracias al principio de localidad. La localidad temporal indica que un dato o una instrucción usados hace poco probablemente volverán a usarse pronto. La localidad espacial indica que, al acceder a una posición de memoria, es probable que se necesiten posiciones cercanas. Por ejemplo, al recorrer una lista de valores, el sistema puede aprovechar que sus elementos suelen estar próximos en memoria.
5.4. Almacenamiento secundario: HDD, SSD y flash
Section titled “5.4. Almacenamiento secundario: HDD, SSD y flash”La memoria secundaria es el almacenamiento donde se conservan programas, documentos, imágenes, configuraciones y el propio sistema operativo aunque el equipo se apague. A diferencia de la RAM, no se usa normalmente como espacio directo de trabajo de la CPU, sino como lugar de almacenamiento persistente.
Los dispositivos más habituales de memoria secundaria son:
- HDD o disco duro magnético: utiliza platos magnéticos y partes mecánicas. Suele ofrecer mucha capacidad a bajo coste, pero es más lento.
- SSD o unidad de estado sólido: utiliza memoria flash. Es mucho más rápido que un HDD y no tiene partes mecánicas móviles.
- Memorias USB y tarjetas de memoria: también usan memoria flash y se emplean para transporte o almacenamiento externo de datos.
La memoria flash de un SSD no se desgasta por el simple hecho de conservar datos, pero sus celdas soportan un número limitado de ciclos de programación y borrado. Si el sistema escribiera siempre en la misma zona, esa parte del SSD se deterioraría antes que el resto.
Por eso el controlador del SSD decide en qué zonas físicas se guardan los datos y reparte las escrituras entre ellas. Esta técnica se denomina nivelación de desgaste o wear leveling. No elimina el desgaste, pero evita concentrarlo en unos pocos bloques y ayuda a aprovechar de forma más uniforme la vida útil de la unidad.
Cuando abres un programa, normalmente está guardado en la memoria secundaria. Para ejecutarlo, el sistema lo carga en RAM, donde la CPU puede trabajar con él con mucha más rapidez.
5.5. Firmware y memorias no volátiles
Section titled “5.5. Firmware y memorias no volátiles”No toda la memoria se borra al apagar el equipo. Las memorias no volátiles conservan su contenido sin alimentación eléctrica.
Algunos ejemplos importantes son:
- ROM: memoria de solo lectura, usada históricamente para almacenar firmware.
- EEPROM: memoria que puede reprogramarse eléctricamente.
- Flash: tipo de EEPROM ampliamente usado en memorias USB, SSD y firmware moderno.
- Firmware: programa básico integrado en el hardware, como BIOS o UEFI, que permite iniciar y comprobar el equipo.
En esta unidad nos interesa entender su función general. El detalle de chips, montaje o sustitución física se trabajará más adelante.
5.6. Ejercicios de aplicación
Section titled “5.6. Ejercicios de aplicación”Para trabajar este bloque, resuelve los ejercicios 1 a 5 con guía del docente y contraste colectivo. Los ejercicios 6 y 7 son de aplicación; los ejercicios 8 y 9 pueden realizarse de forma autónoma o como ampliación.
-
Clasifica memorias. Clasifica registros, caché, RAM, SSD, HDD, ROM y memoria USB como volátiles o no volátiles.
-
Respuesta breve. Explica la diferencia funcional entre memoria RAM y almacenamiento secundario.
-
Ordena la jerarquía. Ordena registros, caché, RAM y SSD/HDD de mayor a menor velocidad. Indica también cuál suele tener mayor capacidad.
-
Tipo test. Marca la opción correcta:
a) la RAM conserva los datos al apagar b) la caché es más lenta que un HDD c) un programa se carga normalmente en RAM para ejecutarse d) el firmware es un tipo de memoria volátil. Justifica.
-
Caso práctico. Al abrir un editor de vídeo, el programa tarda en iniciarse y después trabaja con muchos datos temporales. Explica qué papel cumplen almacenamiento secundario, RAM y caché en esta situación.
-
Firmware. Explica por qué BIOS o UEFI deben almacenarse en una memoria no volátil.
-
Ampliación: elige una mejora. Un equipo tarda en abrir programas, pero dispone de suficiente RAM. Compara el posible efecto de sustituir un HDD por un SSD con el de añadir más memoria RAM. Indica qué información necesitarías antes de decidir.
-
Ampliación: justifica una configuración. Propón una combinación razonable de almacenamiento y memoria para un aula de programación. Justifica la presencia de RAM, SSD y almacenamiento externo o de red sin citar marcas ni modelos comerciales.
-
Antes, durante y después. Una estudiante abre el archivo
practica.pyguardado en el SSD, modifica varias líneas sin guardar y, de repente, el equipo se apaga. Completa la tabla indicando dónde se encontraba la versión más reciente del documento en cada momento y qué ocurre con ella.Momento Dónde está la información relevante Qué ocurre si se apaga el equipo Antes de abrir el archivo Mientras se edita sin guardar Después del apagado inesperado