Placa base, firmware y memoria
Dónde se conecta todo, qué programa arranca la máquina antes que el sistema operativo, y cómo se organiza la memoria desde el registro más rápido hasta la dirección virtual que traduce la MMU.
La placa base y el chipset
La placa base es el soporte por el que se comunican entre sí todos los componentes del equipo: el microprocesador, la memoria, las tarjetas de expansión y el resto. Cumple dos funciones a la vez. Por un lado les lleva la corriente que cada uno necesita, con sus líneas eléctricas. Por otro les distribuye las señales de control, que son las que consiguen que el trasiego de datos entre unas piezas y otras resulte rápido y fiable.
Sobre la placa hay un conjunto de circuitería auxiliar que actúa de ayudante de la CPU: el chipset. Tradicionalmente se ha dividido en dos bloques según la velocidad de lo que gestiona.
| Bloque | De qué se ocupa |
|---|---|
| Puente norte (Northbridge) | De lo rápido: el acceso a la memoria y los buses de mayor velocidad. |
| Puente sur (Southbridge) | De lo lento: la entrada y salida y los periféricos. |
Conviene saber que ese esquema de dos puentes describe el pasado más que el presente. En los procesadores actuales las funciones del puente norte, empezando por el controlador de memoria, están integradas dentro de la propia CPU, y lo que queda como chipset en la placa hace sobre todo el trabajo que antes correspondía al puente sur.
Norte igual a rápido y memoria; sur igual a lento y entrada y salida.
Para el examen
Puente norte: memoria y buses rápidos
Puente sur: entrada/salida y periféricos
Hoy: el puente norte está integrado dentro de la CPU
BIOS y UEFI
Antes de que exista sistema operativo, alguien tiene que encender la máquina, comprobar el hardware y buscar de dónde arrancar. De eso se encarga el firmware de la placa, y hay dos generaciones: la BIOS clásica y la UEFI que la ha sustituido.
| BIOS | UEFI | |
|---|---|---|
| Nombre completo | Basic Input Output System | Unified Extensible Firmware Interface |
| Interfaz | Modo carácter | Modo gráfico |
| Particionamiento | MBR | GPT |
| Particiones admitidas | Hasta 4 | Más de 4 |
Los dos límites concretos de MBR ayudan a entender por qué se abandonó: solo admite cuatro particiones primarias y no puede direccionar discos de más de 2 TB. GPT levanta ambos techos, identifica cada partición con un identificador único y guarda una copia de seguridad de la tabla al final del disco, de modo que si se corrompe la del principio todavía se puede recuperar.
BIOS va con MBR y UEFI con GPT. Esa pareja es lo que se pregunta, no el número exacto de particiones.
Para el examen
BIOS con MBR: 4 particiones primarias y discos de hasta 2 TB
UEFI con GPT: muchas más particiones y tabla replicada al final del disco
Extra de UEFI: arranque seguro e interfaz gráfica
La jerarquía de memorias
No existe una memoria que sea a la vez rapidísima, enorme y barata, así que un ordenador monta varias y las ordena por velocidad. Cuanto más arriba en la jerarquía, más rápido se accede y menos capacidad hay; cuanto más abajo, al revés.
- Registros: dentro de la propia CPU, los más rápidos y los más escasos.
- Caché: memoria intermedia que guarda lo que se está usando.
- Memoria principal: la RAM del equipo.
- El resto: el almacenamiento secundario, mucho más lento y mucho más grande.
Ese último escalón es lo que separa la memoria interna o principal de la memoria externa o secundaria. La interna es la que la CPU direcciona directamente (ROM y RAM); la externa es la de los soportes de almacenamiento, como el disco duro, la unidad de estado sólido, el disco óptico o una memoria USB.
Registros, caché, memoria principal y almacenamiento. Es un orden de velocidad decreciente y de capacidad creciente.
Para el examen
Orden de la jerarquía: registros, caché, RAM y almacenamiento
Memoria interna: ROM y RAM
Memoria externa: disco duro, SSD, ópticos y USB
Tipos de memoria: de solo lectura y de acceso aleatorio
La memoria interna se divide en dos familias. La familia ROM agrupa las memorias no volátiles, que conservan su contenido sin alimentación. Se llaman de solo lectura porque en funcionamiento normal solo se leen, y sus variantes se diferencian precisamente en cómo se consigue reescribirlas.
| Tipo | Cómo se modifica |
|---|---|
| ROM | No se modifica: solo lectura. |
| PROM | Programable una sola vez tras su fabricación. |
| EPROM | Se borra exponiéndola a luz ultravioleta, y después se reprograma eléctricamente con un programador. |
| EEPROM | Se borra eléctricamente, sin sacarla ni exponerla a nada. |
La memoria de acceso aleatorio, en cambio, es volátil: pierde su contenido al apagar. Dentro de ella, la primera división es entre estática y dinámica, y de esa distinción cuelga todo lo demás.
| Tipo | Qué la caracteriza |
|---|---|
| SRAM (estática) | No necesita refresco de voltaje, y al ahorrarse esos ciclos de reloj resulta más rápida. |
| DRAM (dinámica) | Necesita refresco de voltaje periódico para conservar el contenido. |
| SDRAM | DRAM síncrona, es decir, acompasada al reloj del sistema. Es la habitual. |
| DDR SDRAM | Double Data Rate: transfiere tanto en el flanco de subida como en el de bajada del reloj, con lo que dobla la velocidad. Sus generaciones van de DDR1 a DDR5. |
| NVRAM | RAM no volátil: conserva el contenido porque está alimentada por una batería. |
| GDDR | Memoria pensada para la tarjeta gráfica. |
| LPDDR | Low Power: memoria para dispositivos móviles. |
Los módulos físicos también tienen nomenclatura propia. El encapsulado DIMM lleva contactos separados a ambos lados del módulo, y el SO-DIMM es su versión reducida, la que montan los ordenadores portátiles.
Nomenclatura de un modulo DDR-400 (PC-3200)
bus de 200 MHz
x 2 transferencias por ciclo (double data rate)
x 8 bytes por transferencia (64 bits)
= 3200 MB/s de capacidad maxima de transferencia
DDR-400 nombra la memoria; PC-3200 nombra el ancho de banda.La estática no se refresca y la dinámica sí. Todo lo que empieza por D (DRAM, SDRAM, DDR) va por la rama dinámica.
Para el examen
ROM, PROM, EPROM y EEPROM: solo lectura, grabable una vez, borrable con ultravioleta y borrable eléctricamente
SRAM: sin refresco y más rápida; se usa en caché
DRAM: necesita refresco periódico
DDR: transfiere en los dos flancos del reloj
DIMM y SO-DIMM: sobremesa y portátil
Latencias de la DRAM y políticas de la caché
Pedirle un dato a la memoria no es instantáneo: hay que situarse en la fila correcta, luego en la columna correcta, y antes abrir el banco donde está. Cada uno de esos pasos tarda, y a esos tiempos se les llama latencias. Lo que de verdad importa no es cada uno por separado, sino el total hasta obtener el dato.
| Latencia | Qué mide |
|---|---|
| RAS | El tiempo que tarda la memoria en situarse sobre una fila. |
| CAS | El tiempo que tarda en situarse sobre una columna o celda. |
| ACTIVE | El tiempo que tarda en activar (abrir) una fila dentro de un banco. |
| PRECHARGE | El tiempo que tarda en desactivar (cerrar) esa fila del banco. |
Para saber cuánto se espera en realidad hasta tener el dato disponible hay que sumar tres de esas latencias: ACTIVE, RAS y CAS. La caché existe justamente para no pagar ese precio una y otra vez, porque guarda cerca del procesador lo que se acaba de usar. Cuando el procesador escribe en la caché hay dos formas de mantener coherente la memoria principal.
| Política de actualización | Cuándo se escribe en memoria principal |
|---|---|
| Write through (escritura directa) | En el mismo momento: al modificar la caché se modifica también la memoria principal. |
| Write back (escritura diferida) | Más tarde: se escribe en memoria principal cuando ese bloque va a salir de la caché, y así no se pierde la información. |
Through es directa y ahora; back es diferida y al expulsar el bloque.
Para el examen
RAS y CAS: latencia de fila y latencia de columna
ACTIVE y PRECHARGE: abrir y cerrar el banco
Tiempo real de acceso: ACTIVE + RAS + CAS
Write through: escribe a la vez en caché y en memoria
Write back: espera a expulsar el bloque para escribir en memoria
Direcciones lógicas y físicas: la MMU y la TLB
Un programa no trabaja con direcciones reales de memoria. Trabaja con direcciones virtuales o lógicas, como si tuviera para él solo un espacio de memoria continuo y ordenado. Quien convierte esas direcciones en las direcciones físicas donde de verdad está el dato es la MMU, la unidad de gestión de memoria.
Esa traducción se apoya en una tabla de traducción, y consultarla en memoria cada vez sería lentísimo. Por eso la MMU dispone de la TLB, una pequeña memoria asociativa que guarda las traducciones usadas más recientemente: si la dirección buscada está ahí, la conversión es inmediata.
direccion virtual -> MMU (gestor de memoria) -> direccion fisica
|
TLB (traducciones recientes)La MMU traduce y la TLB acelera esa traducción guardando las últimas conversiones.
Para el examen
MMU: traduce direcciones virtuales a físicas
TLB: caché de las traducciones recientes
Cálculo de capacidad y formato de una dirección
Estas cuentas caen con frecuencia y son siempre las mismas dos ideas. Primera: la capacidad de una memoria es el número de posiciones multiplicado por lo que cabe en cada posición, que es una palabra. Segunda: con un bus de direcciones de n bits se pueden distinguir 2 elevado a n posiciones distintas.
Memoria de 2048 posiciones con palabras de 32 bits
Bus de direcciones: 2048 = 2^11 -> 11 bits
Capacidad: 2048 posiciones x 4 bytes = 8192 bytes = 8 KB
Caracteres de 8 bits que caben: 8192 / 1 = 8192En memoria virtual la cuenta es la misma partida en dos trozos. Una dirección virtual se compone de un número de página y un desplazamiento dentro de esa página. El desplazamiento necesita tantos bits como haga falta para recorrer una página entera, y lo que sobra hasta el ancho de la dirección es el número de página.
Computador de 32 bits, paginas de 4 KB, memoria principal de 1 GB
Pagina de 4 KB = 2^12 -> desplazamiento de 12 bits
Numero de pagina = 32 - 12 = 20 bits
Numero maximo de paginas = 2^20
Marcos de pagina = 2^30 / 2^12 = 2^18
Bloque transferido en un fallo de pagina = 4 KB (una pagina)Cuando el programa pide una página que no está cargada se produce un fallo de página, y lo que sube desde el disco a la memoria principal es una página entera. Quien detecta el fallo y lanza la excepción es la MMU; quien lo trata (localiza la página, elige qué marco liberar y actualiza la tabla) es el sistema operativo.
El bloque que se transfiere entre disco y memoria en un fallo de página es exactamente una página.
Para el examen
Posiciones con n bits de dirección: 2^n
Partes de una dirección virtual: número de página y desplazamiento
Fallo de página: sube UNA página; lo detecta la MMU y lo trata el sistema operativo