Resulta que un profesor universitario, John Naughton, ha lanzado un manifiesto para pedir que los niños aprendan «Computer Science» de verdad, hasta programación y todo, en la misma escuela. Los de The Guardian, le han seguido, y hasta hay algo de debate (via @Edans). Tiene buenos argumentos el señor, aunque no sé si lo comparto todo.
En cualquier caso, me sirve de excusa para escribir un post que tenía en la cabeza desde hace tiempo. Quería contar lo que de verdad he aprendido sobre esos trastos que están por todas partes y que, salvo para los técnicos, son más magia que otra cosa. Miramos maravillados la pantalla del último smartphone sin apenas entender todo lo que hay detrás, tal vez conociendo algunos nombres de cosas, pero no qué son, ni cómo se relacionan entre sí. Y creo que no tiene por qué ser tan complicado. Que hay ciertas cosas que pueden ser explicadas de manera asequible y que merece la pena hacerlo.
Así que en un par de posts voy a contar, desde un punto de vista divulgativo, muy generalista, y sin tener en cuenta -ni remotamente- todos los detalles (para lo cual, dicho sea de paso, tampoco estoy cualificado) cual es la esencia de los cacharros estos. Un recorrido desde el electrón, hasta internet, pasando por lo que tocas con las manos y ves con los ojos. Las cosas que, fundamentalmente, no han cambiado -sólo evolucionado- en los últimos 50 años y no tienen visos de hacerlo a medio plazo (aunque tal vez sí a largo). ¿Os interesa? ¿Os parece bien que me ponga el traje de técnico por un día? Pues lo voy a intentar.
1.- Empezando por lo más físico: Los circuitos
Habrá que empezar por la base. Hablando de átomos y esas cosas, ¿no? Bien, cualquiera con una base de física sabe que los átomos tienen electrones y, éstos, carga eléctrica. En los materiales «conductores» (como los metales) esos electrones están bastante sueltos y se mueven con mucha libertad. Esto hace que se les pueda poner en unas condiciones de campo eléctrico para que se muevan, netamente, en un sentido. Esto es un circuito. En general van de donde hay más voltaje y van bajando a donde hay menos. En algunos sitios, claro, hay que subirlos. Pero, para lo que me interesa explicar ahora, es algo así como un circuito de tuberías (el material) con una cierta cantidad de agua (la corriente eléctrica), fluyendo con más o menos fuerza según la altura de la caída (diferencia de potencial) y volviendo a subir por medio de bombas de agua (fuentes de energía).
Un circuito es algo así como un aquapark para electrones. Con bombas de agua, fuentes de alimentación, incluidas.
Bien pues, en algunos materiales, ocurre algo curioso. Solamente dejan pasar el agua cuando se dan unas ciertas condiciones. Por ejemplo, imaginad una válvula o compuerta en la tubería que sólo permite el paso a lo que va con una determinada fuerza, cuando cae desde la suficiente altura. De manera que el agua, la corriente eléctrica, fluye o no fluye. Con este tipo de materiales, puede construirse varios tipos de dispositivos con propiedades muy curiosas. Y, tal vez, el más interesante de ellos: el transistor.
El transistor tiene tres patas y, deja o no pasar la corriente entre dos de ellas en función del estado de una tercera. Eso es algo muy interesante, porque permite establecer el concepto de condición. ¡Y, atentos, que esto es muy gordo! El origen de la magia. Porque hace que cosas del mundo físico, material -donde están los átomos-, se comporte según las estrictas reglas de la lógica. Es decir, de una manera predecible, determinista, digital.
Pues bien, tomando unos cuantos de estos transistores y combinándolos con otros elementos se conforman unos circuitos llamados puertas lógicas.
2.- Donde corren los unos y los ceros: Las puertas lógicas y la información.
Así que ahora tenemos unos circuitos en los que hay, pongamos, dos entradas y una salida de agua. Configuradas para que, por ejemplo, si entra agua por la entrada A y no por la B, salga por la salida X. Pero que si no entra por ningún lado, o si entra por los dos a la vez, se «cierren las compuertas» y no salga nada. De esta manera, lo que tenemos en la salida depende de lo que haya en las dos entradas.
Pues bien, ese «entrar/salir agua» es que haya un determinado voltaje en un punto del circuito. Y que no entre ni salga agua es otro voltaje. Eso, en esencia, es un «1» o un «0» a nivel físico. Que haya un voltaje u otro. También se puede decir que es un bit, la unidad mínima de información, un elemento que en un momento dado puede tomar uno de dos valores. Si sólo pudiera tomar un valor, no estaría dando ninguna información, ¿verdad? Nos interesa mirar un bit en concreto porque puede ser un cero o puede ser un uno, por muy pequeña que sea la probabilidad de que tome un valor, debe de haber alguna. Por otra parte, mediante una combinación lo suficientemente larga de bits se puede codificar cualquier tipo de información.

Un bit es una unidad de información. Algo que puede tomar dos valores.
De manera que lo que nos interesa de las puertas lógicas es meter un montón de bits, una serie de condiciones, y ver qué sale por el otro lado. Su respuesta es la que tiene que ser, claro, siempre la misma. Y, por supuesto, suelen ser mucho más complejas de lo comentado. Pueden hacer una amplia gama de operaciones (sumas, restas, operaciones lógicas…) y, hoy en día, no tenemos sólo dos entradas y una salida. Se trabaja con entradas de varias «palabras«, así se llaman, que tienen 8, 16, 32, 64 bits y al menos una palabra de salida.
A los que jugaban a las viejas consolas, ¿os acordáis de todo aquello de cuántos bits tenía tal o cual consola? Pues a eso hacen referencia. A la cantidad de entradas que puede manejar simultáneamente el procesador.
3.- El que opera la información: El procesador
El elemento central, que podamos tocar con los dedos, de cualquier dispositivo informático es el procesador o CPU. Incluso los más sencillos, son circuitos extraordinariamente complejos, metidos dentro de un único chip (de ahí lo de «circuito integrado«) y que pueden contar hasta con miles de millones de transistores para hacer más operaciones lógicas, más rápido y con palabras más largas. Desde hace décadas se cumple la famosa Ley de Moore que dice que cada 18 meses se duplica el número de transistores de un procesador. Ya en 02004 se produjeron más transistores que granos de arroz en el mundo… imaginad ahora, a botepronto, será del orden de 128 veces más (2^7).
La gracia de los procesadores, no es sólo su potencia de cálculo, sino que es capaz de hacerlo de maneras diferentes según lo requiera la situación. Utiliza unas u otras de sus millones de puertas lógicas según se lo pidan. De manera que, cuando le toca sumar, suma. Cuando le toca restar, resta. Y cuando le toca aplicar un efecto de postprocesado de imagen a un vídeo en alta definición, le cuesta más, pero lo acaba haciendo. Al final, todo se puede descomponer en una serie de operaciones matemáticas y/o lógicas. Por este motivo se les suele llamar «autómatas universales«. Porque pueden ser programados para realizar cualquier tipo de operación.
Aquí entran naranjas, sale zumo. En una CPU entran datos y salen datos.
Pero hay que tener en cuenta que los procesadores sólo interpretan instrucciones y las ejecutan sobre unos datos de entrada. Para que esos datos lleguen, se almacenen o se muestren, es necesario otro tipo de componentes.
4.- Un procesador, por sí mismo, no hace nada: Componentes y periféricos
Así que al procesador hay que rodearlo de otros inventos para que pueda utilizarse para algo. Algunos son requisitos imprescindibles, otros no tanto. Y ahí es donde están todos esos cacharros que se pueden comprar en tiendas de informática. Por ejemplo:
- La famosa placa base, donde están los elementos «inseparablemente» unidos al procesador, o donde pueden enchufarse si hace falta. Esto se hace a través de puertos concretos que pueden de ser de entrada y/o salida (el de teclado o ratón, los USB, salidas de vídeo o audio…)
- Las memorias, que es donde se almacena la información. Que pueden ser volátiles y rápidas, como la RAM. O más lentas pero que siguen ahí aunque se vaya la luz, como las de los discos duros. O esas otras que no se pueden modificar una vez escritas como las ROM de los CD-ROM.
- Las tarjetas de audio o vídeo: que ayudan al procesador liberándolo de tareas y optimizando cierto tipo de cálculos, además de tener sus propias interfaces de salida.
- Tarjetas de red: que permiten comunicarse con otros sistemas (y que tienen otros procesadores …ya volveremos sobre este tema).
- Dispositivos de interfaz humana, que son aquellos con los que podemos forzar al ordenador a hacer cosas y nos devuelve algo que podamos entender las personas. Son los que «traducen» los impulsos eléctricos en imágenes, o las pulsaciones de teclado en chorros de bits. Los hay que sólo sirven para entrar datos, como por ejemplo el ratón. Otros son de salida, como un monitor clásico, que sólo enseña imágenes. Y algunos pueden hacer las dos cosas, como las pantallas táctiles.

El procesador es como el cerebro de una computadora. Y, al igual que el cerebro, sin otros órganos no vale de mucho.
Y con esto terminamos la parte del hardware. En la segunda entrega subiré el resto de niveles de abstracción.
2 comentarios en “Lo que sé de los trastos (I)”