Chismes del Lince 97 · Cómo está hecho un ordenador
Un procesador, una memoria y un programa que tienes que escribir tú. Paso a paso, para ver qué pasa por debajo.
Los robots Macrothele funcionan, pero el Lince quiere entender por qué. En su taller hay una placa vieja con un procesador minúsculo y 32 celdas de memoria. La Gata Montesa la mira y dice: «Antes de pedirle nada a un ordenador, averigua qué hace con cada orden. Lo que parece magia es una lista muy larga de pasos muy simples».
1. Introducción
Cuando abres una aplicación, el ordenador no entiende lo que quieres. Solo ejecuta órdenes muy simples, una detrás de otra: leer un número, sumarlo, guardarlo, saltar a otra orden. Todo lo demás se construye encima de eso.
En este chisme vamos a construir una CPU y una memoria, las dos piezas que hacen trabajar a cualquier ordenador, y vamos a programarlas con un conjunto muy pequeño de órdenes.
2. Por qué este chisme
Muchos alumnos usan ordenadores todos los días sin saber qué hay dentro. Entender la CPU y la memoria explica por qué un programa tarda más cuando hay más datos, por qué un bucle mal hecho nunca termina y por qué los programas y los datos viven en el mismo sitio.
3. Cómo funciona
Un procesador (CPU) tiene tres piezas que nos interesan aquí:
- La memoria guarda los datos y las órdenes del programa. Cada celda tiene una dirección (0, 1, 2…) y guarda un número de 0 a 255, que es un byte.
- Los registros son pequeñas casillas dentro de la CPU, muy rápidas. Aquí usamos el registro
Acomo calculadora y el contador de programa (PC) para recordar qué orden viene después. - La unidad de control repite un ciclo para cada orden: buscar la orden en la memoria, decodificarla (saber qué es) y ejecutarla.
Lo importante: el programa vive en la memoria, junto a los datos. Por eso, si la memoria es pequeña, el programa debe ser corto. Y como la CPU lee una orden detrás de otra, cuanto más hace un programa, más tarda.
¿Y qué es la ley de Moore?
Gordon Moore observó en 1965 que el número de transistores en un chip se duplicaba aproximadamente cada año, y en 1975 lo corrigió a cada dos años. Durante décadas la tendencia se cumplió bastante bien. Es una observación empírica sobre la industria, no una ley física, y hoy se discute cuánto más puede mantenerse.
4. Simulador
Elige un ejemplo, pulsa Cargar en memoria y después avanza paso a paso. Las celdas con el color azul son la orden que se va a leer; las naranjas, las que se han usado en el último paso.
CPU
Preparado. Carga un programa y pulsa Paso.
Lo que pasa en cada paso
Memoria (32 celdas)
Órdenes que entiende la CPU
| Orden | Código | Qué hace |
|---|---|---|
PON A n | 1 | Guarda el número n en A. |
CARGA d | 2 | Copia en A el valor de la celda d. |
SUMA d | 3 | Suma a A el valor de la celda d. |
RESTA d | 4 | Resta a A el valor de la celda d. |
GUARDA d | 5 | Copia A en la celda d. |
SALTA d | 6 | La siguiente orden que se ejecuta es la de la celda d. |
SALTA_SI_CERO d | 7 | Si A vale 0, salta a la celda d; si no, sigue. |
MUESTRA | 8 | Escribe A en la pantalla. |
FIN | 0 | Para el programa. |
Cada orden ocupa dos celdas: una para el código y otra para su argumento. Las órdenes sin argumento usan 0. Las direcciones de los saltos deben ser pares (0, 2, 4…).
5. Qué estamos midiendo realmente
- Un paso no es un segundo. El simulador ejecuta una orden cada vez que pulsas. Un procesador real hace miles de millones de ciclos por segundo, pero el ciclo es el mismo: buscar, decodificar, ejecutar.
- El programa es un número más. Las órdenes están en la misma memoria que los datos. Si cambias una celda de programa por accidente, el programa hace otra cosa.
- Los errores son reales. A solo guarda 0-255. Si sumas más, el valor vuelve a empezar desde 0: se llama desbordamiento, y pasa en los ordenadores de verdad.
- Un bucle mal hecho no termina. El simulador para tras 500 pasos para que no se quede colgado.
6. Para el aula
- Predice qué muestra el ejemplo 1 antes de ejecutarlo. Después compruébalo paso a paso: ¿qué hace la CPU en cada orden?
- Cambia el valor de la celda 25 del ejemplo 1 a 9. ¿Qué pasa si el resultado supera 255?
- En el ejemplo 2, predice cuántas veces se hace la suma antes de ejecutar. Después cuenta los pasos de la CPU.
- Cambia el programa del ejemplo 2 para que multiplique 6 por 5. ¿Qué celdas tienes que cambiar?
- Escribe un programa que muestre 7 en la pantalla sin usar la orden PON A más de una vez.
7. Retos
- Haz que funcione. Ejecuta el ejemplo 1 y comprueba que la pantalla muestra 8.
- Modifica algo. Haz que el ejemplo 2 multiplique 7 por 4.
- Escribe el tuyo. Programa que reste dos números y muestre la diferencia.
- Provoca un desbordamiento. Busca dos números que, sumados, pasen de 255, y explica qué muestra la pantalla.
- Mide el coste. Compara cuántos pasos necesita el programa de 3 × 4 y el de 3 × 40. ¿Qué crece más?
Qué hemos aprendido
Un ordenador es una CPU que lee órdenes de la memoria, una a una, y las ejecuta con un ciclo muy simple. Los programas no son magia: son listas de órdenes que viven junto a los datos.
Los Macrothele ya tienen un procesador que el Lince entiende. Ahora sabe por qué un programa tarda lo que tarda y por qué un error pequeño puede hacer que todo falle.
Prototipo educativo: el procesador es imaginario y mucho más simple que uno real.