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í:

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

Contador (PC)0
Orden actual—
Registro A0
Pantalla—

Preparado. Carga un programa y pulsa Paso.

Lo que pasa en cada paso


Memoria (32 celdas)

Órdenes que entiende la CPU
OrdenCódigoQué hace
PON A n1Guarda el número n en A.
CARGA d2Copia en A el valor de la celda d.
SUMA d3Suma a A el valor de la celda d.
RESTA d4Resta a A el valor de la celda d.
GUARDA d5Copia A en la celda d.
SALTA d6La siguiente orden que se ejecuta es la de la celda d.
SALTA_SI_CERO d7Si A vale 0, salta a la celda d; si no, sigue.
MUESTRA8Escribe A en la pantalla.
FIN0Para 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

6. Para el aula

7. Retos

  1. Haz que funcione. Ejecuta el ejemplo 1 y comprueba que la pantalla muestra 8.
  2. Modifica algo. Haz que el ejemplo 2 multiplique 7 por 4.
  3. Escribe el tuyo. Programa que reste dos números y muestre la diferencia.
  4. Provoca un desbordamiento. Busca dos números que, sumados, pasen de 255, y explica qué muestra la pantalla.
  5. 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.