En la prehistoria de la informática sólo unos pocos cientos de personas en todo el mundo tenían las aptitudes necesarias para ponerse a los mandos de los ordenadores de la época. Allá por los años 50 y 60, los computadores eran máquinas que ocupaban varias habitaciones e incluso necesitaban de múltiples operarios para funcionar correctamente. Apenas trabajaban para grandes universidades o ejércitos y eran completamente desconocidas en los hogares.
Es evidente que esto ha cambiado radicalmente con el paso de los años y ahora cualquiera tiene a su disposición un ordenador sencillo de utilizar. Pero antes no era así. Entonces, ¿cómo empezó a fraguarse la era de la Información?
Las máquinas que cambiaron el mundo
Tras la era industrial y aprovechando la segunda guerra mundial, los gobiernos más potentes se vieron en la necesidad de invertir el tiempo de sus mejores científicos en idear máquinas que pudiesen tratar información, ya sea procedente del enemigo y en ese caso descifrándola, o enviándola oculta a un aliado. Para ello necesitaban disponer de una estructura y organización que les permitiese procesar información que estuviese en un formato conocido, y además almacenar los resultados para poder estudiarlos a posteriori. Nació la arquitectura de Von Neumann
La arquitectura de Von Neumann fue ideada por John Von Neumann en la década de los 40 para un trabajo del gobierno americano, y hoy en día sigue vigente en la mayoría de los computadores modernos. Su misión es servir un esquema de funcionamiento genérico que permitiese a un ordenador ejecutar tareas sucesivamente, sin tener que modificar la estructura física del equipo. Según esta organización, el computador dispone de una lista de instrucciones que un procesador interno va descifrando y más tarde ejecutando. Una vez que ha finalizado esa ejecución se pasa al siguiente elemento de la lista, y se repite el proceso. Para ello se necesitan tres componentes básicos:
Una unidad de proceso que incluirá ALU y unidad de control.
Dispositivos de memoria para almacenar información, bien temporal o final.
Periféricos de entrada/salida para comunicarse con el usuario.
La arquitectura de Von Neumann fue utilizada por primera vez en el ENIAC o Electronic Numerical Integrator And Computer, que trabajó para el gobierno estadounidense entre los años 1946 y 1955. Sobre él hablaremos en el último apartado.
¿Y cómo trabajarían estos primeros computadores? Mediante el sistema binario. Se trata de un sistema de numeración con un funcionamiento similar al decimal al que estamos acostumbrados los seres humanos, pero utilizando únicamente el 0
y el 1
. A partir de estos dos números se construye toda la información, si bien es cierto que trabajar en binario es algo bastante poco habitual al existir otras herramientas mucho más avanzadas y fáciles de interpretar por el ser humano. Lo mejor del sistema binario es que es un sistema simple que permite construir circuitos electrónicos para realizar operaciones matemáticas de una forma sencilla a través de circuitos elementales.
El procesador dispone de una serie de circuitos electrónicos que son utilizados por los algoritmos, ideados por el ser humano para afrontar problemas. ¿Qué es, entonces, un algoritmo?
Paso 1: Poner la sartén en la vitrocerámica
Paso 2: Echar aceite
Paso 3: Calentar el aceite
Paso 4: Esperar a que esté caliente
Paso 5: Cascar el huevo
Paso 6: Verterlo con cuidado sobre el aceite caliente
Paso 7: Con la ayuda de una paleta, echar el aceite por encima del huevo
Paso 8: Comprobar que el huevo ya está cocinado y, en ese caso, sacarlo a un plato
Un algoritmo es una secuencia de órdenes o instrucciones que se dictan en un cierto orden. Es necesario que cada paso esté muy bien definido y que se siga un orden estricto para que la máquina sea capaz de ejecutarlo sin problemas. El ejemplo de arriba es un símil respecto de la vida real, el algoritmo de cómo elaborar un huevo frito con puntilla. A continuación os dejo con otro ejemplo:
Paso 1: coge el valor del registro A y llámalo N1.
Paso 2: coge el valor del registro B y llámalo N2.
Paso 3: suma N1 y N2 y almacena el resultado en el registro C.
Paso 4: almacena el valor del registro C en la posición de memoria etiquetada como M.
Con los cuatro pasos de este segundo ejemplo nos hemos aproximado mejor a la realidad de nuestros ordenadores: hemos sumado dos números (existentes en los registros A
y B
) y su resultado lo hemos almacenado en la posición de memoria M
. Podríamos incluso decir que hemos utilizado un pseudolenguaje ensamblador, y recuerdo que toda la información que maneja el ordenador está basada en 0
y 1
, incluyendo no sólo los valores numéricos de la propia suma si no también las direcciones en las que se almacena la información (en este caso, las direcciones de los registros A
, B
, C
y también la posición de memoria etiquetada como M
).
En definitiva, el procesador se encarga de recibir secuencias de órdenes y ejecutarlas. Estas órdenes serán mayoritariamente matemáticas (suma estos dos números y guarda el resultado en esta determinada posición de memoria) pero también de almacenamiento o interrupciones del sistema. Y precisamente estas órdenes simples y atómicas se denominan instucciones, que son las operaciones que un procesador es capaz de entender y ejecutar. Por ejemplo, suma dos números y almacena el resultado en esta memoria, o multiplica estos dos números, o algo mucho más simple como almacena este dato en esta posición de la memoria. Las instrucciones son operaciones muy simples pero con las que se construye todo, y un conjunto de estas instrucciones se denomina set de instrucciones o ISA (Instruction Set Architecture). Por ejemplo, x86 es la ISA de los procesadores Intel o AMD domésticos actuales, los cuales a su vez utilizan múltiples microarquitecturas, y ARM es la ISA de los procesadores de Samsung, Qualcomm, Apple, etc. En posteriores artículos entraremos más a fondo en los diferentes juegos de instrucciones así como en las arquitecturas más representativas del mercado actual.
¿Y qué es una microarquitectura?
Hablar de procesadores es una introducción esencial para continuar hablando de microarquitectura. ¿Qué es una microarquitectura?
Un microprocesador no es sólo un cerebro que procesa información (técnicamente la parte que realiza las operaciones se llama ALU, Arithmetic Logic Unit o unidad aritmético lógica), sino mucho más. Está compuesto de registros (pequeñas memorias donde se almacenan datos), buffers, cachés, unidades de proceso, ALU, y mucho más. Todo esto se fabrica utilizando componentes electrónicos ciertamente pequeños (las arquitecturas actuales de nuestros ordenadores utilizan transistores de 22 nanómetros, 0.000022 milímetros) y no siempre nos encontraremos con todos. Es necesaria una organización y estructuración de todos los componentes a la que se denomina microarquitectura.
La microarquitectura pretende organizar todos los componentes internos de un procesador. Lo que tenéis aquí arriba es un diagrama de bloques de lo que nos encontraremos dentro del procesador, en este caso concreto de un Intel Core 2 Duo. Por ejemplo, la zona amarilla es la encargada de realizar las operaciones y la verde de almacenar las siguientes instrucciones a ser ejecutadas. Como véis es algo bastante complejo, y eso que no es más que un esquema muy general.
Uno de los aspectos más interesantes es que un mismo juego de instrucciones (ISA) puede ser ejecutado sobre diferentes microarquitecturas, que es lo que da lugar a las grandes rivalidades que por ejemplo tienen Intel y AMD bajo x86, o Samsung, Apple y Qualcomm con ARM. Sobre el estado actual del mercado y las grandes guerras en lo referente a las arquitecturas hablaremos en posteriores artículos.
Los primeros procesadores
Los primeros procesadores no funcionaban con transistores si no con válvulas de vacío, y fue la Segunda Guerra Mundial la que propició que los gobiernos investigasen en máquinas que fuesen capaces de operar con información de forma muy rápida en comparación con la velocidad de cálculo humana. Uno de los primeros equipos era el ENIAC, el primero que siguió la arquitectura de Von Neumann y sobre el cual hay unos datos bastantes interesantes en su entrada de Wikipedia:
Contenía 17.488 tubos de vacío, 70.000 resistencias y 10.000 condensadores, entre otros muchos componentes.
Su peso total era de 27 toneladas, ocupando una superficie de 167 metros cuadrados.
Para hacerla funcionar era necesario operar 6000 interruptores... manualmente, claro.
Requería una potencia de 160 kiloVatios.
Permitía operar hasta 5.000 sumas y 357 multiplicaciones por segundo.
Empezó a operar en 1946 tras casi tres años de diseño, desarrollo y fabricación por parte de J. Mauchly y J. Presper Eckert en la Universidad de Pennsylvania. Cesó su labor el 2 de octubre de 1955.
Si bien esta primera generación de computadores se caracterizó por trabajar con válvulas de vacío, programarse en código máquina o, a lo sumo, ensamblador, la segunda generación de procesadores evolucionó de forma muy notable debido a la escasa fiabilidad y durabilidad de las primeras propias válvulas. Empezó la carrera de los transistores, el almacenamiento magnético (es decir, los primeros discos duros), los lenguajes de alto nivel y los primeros sistemas operativos monousuario. Por entonces IBM ya llevaba varios años dando guerra y puso en el mercado una de las máquinas más avanzadas y exclusivas de la historia en su contexto, el IBM 7090 que es considerado como el primer ordenador con CPU de transistores de la historia. Era seis veces más potente que su antecesor (el IBM 709) y costaba la mitad, así que era una inversión asegurada.
Esto es solamente el inicio de los tiempos, la prehistoria de los ordenadores. Y las cosas han cambiado mucho desde entonces. En la próxima entrada hablaremos de los diseños RISC y CISC, las repercusiones que han tenido en los dispositivos más modernos y también sus microarquitecturas más importantes, que con toda seguridad las estáis utilizando en este preciso instante.
Especial Arquitecturas y Procesadores: índice
I.- Así comenzó todo: el origen de los procesadores
Continuará...
En Xataka | Especial arquitecturas
Ver todos los comentarios en https://www.xataka.com
VER 21 Comentarios