Lección inaugural 2003 - Real Academia de Ingeniería

Anuncio
LOS COMPUTADORES,
ESOS LOCOS CACHARROS
ACADEMIA DE INGENIERÍA
LOS COMPUTADORES,
ESOS LOCOS CACHARROS
DISCURSO DEL ACADÉMICO
EXCMO. SR. D. MATEO VALERO CORTÉS
LEÍDO EN LA SESIÓN INAUGURAL DEL AÑO ACADÉMICO
EL DÍA 30 DE ENERO DE 2003
MADRID MMIII
Editado por la Academia de Ingeniería
© 2003, Academia de Ingeniería
© 2003 del texto, Mateo Valero Cor tés
ISBN: 84-95662-11-6
Depósito legal: M. 2.474-2003
Impreso en España
LECCIÓN INAUGURAL
DEL AÑO ACADÉMICO 2003
Excmos. Sres.
Señoras y señores
Queridos amigos,
Deseo expresar mi gratitud al Presidente de la Academia, por sugerir mi
nombre para dar esta lección inaugural de la Academia del año 2003, y a
mis compañeros académicos por haber aceptado dicha invitación. Realmente es un gran honor para mí el poder dirigirme a todos vosotros en el
principio de este nuevo año.
He decidido comentar algunos aspectos de los computadores. Estos “locos
cacharros” han sido las máquinas que más han evolucionado en tan poco
tiempo. Con apenas unos pocos más de cincuenta años de existencia, sus
características han cambiado a una velocidad increíble. El responsable directo de este cambio ha sido el transistor. Este dispositivo, inventado hace cincuenta y cinco años, ha sido el verdadero protagonista de la sociedad de la
información. Sin su descubrimiento, la informática y las comunicaciones no
habrían avanzado apenas. A partir de él, se hace posible la revolución de las
tecnologías de la Información y de las Comunicaciones que son las que más
influencia han tenido en el avance de la humanidad.
Muchos son los componentes de estas tecnologías. A resaltar las enormes
capacidades actuales para crear información digital, manipularla, almacenarla y enviarla desde cualquier parte del mundo a cualquier otra. Los últimos años han sido de crecimiento tan vertiginoso que nos parece que
no van a tener un final a corto plazo, que todo continuará así y que cada
día nos despertaremos con nuevas y agradables sorpresas. Parece que esto será cierto durante unos cuantos años más.
Los computadores son los componentes activos de esta magia. Mucha es la
información que se podría escribir acerca de sus orígenes, evolución y futuro.
En este trabajo, hemos intentando resaltar algunas características importantes de ellos. Lo hemos intentado escribir de manera informal, pero rigurosa.
Esperamos que la información os sea útil; éste ha sido el objetivo.
Muchas gracias de nuevo.
Barcelona 28 de diciembre del 2002
8
MATEO VALERO CORTÉS
Antecedentes
Muchas han sido las máquinas creadas por el hombre para ayudarle a realizar tareas de cálculo. Se han diferenciado, entre otras cosas, por el sistema de numeración que se empleaba, por la tecnología usada en su construcción, por el tipo de operaciones que eran capaces de realizar, así
como por su velocidad. Sólo el enumerarlas, nos llevaría muchísimo tiempo. Hay un acuerdo en decir que las primeras máquinas de este tipo fueron los ábacos y que las más modernas son los computadores digitales.
En este trabajo vamos a hacer una descripción de algunas de ellas, empezando por el ábaco. El mayor énfasis lo haremos al describir los computadores digitales.
Desde el ábaco hasta Charles Babbage
Es lógico pensar que antes de construir ningún artefacto que le ayudara a
realizar operaciones, el hombre intentara de alguna forma representar las
cantidades mediante símbolos. Dentro de ello, parece natural que se intentara usar algún sistema de numeración para codificar la información
numérica. Lo que puede extrañar un poco es que el sistema decimal no
fuera usado desde el principio de la humanidad. En la actualidad, el sistema
decimal es el más aceptado entre las personas. Sin embargo, los símbolos
para representar cada uno de los dígitos los trajeron los árabes, desde la
India, a Europa en el siglo XIII. En Babilonia es donde se identifican los primeros intentos serios para trabajar con números representados en sistemas de numeración que datan de hace casi 3.000 años. Empleaban un sistema de numeración con una base 60 así como dos subsistemas de bases
6 y 10. En algunas zonas de África se han descubierto representaciones
que usaban como bases los números primos. En Egipto, se emplearon sistemas de numeración con base 12 así como sistemas decimales con figuras especiales para representar las potencias de 10. De todos es conocido
el sistema de codificar de los romanos con las letras codificando los valores decimales de 1.5, 10.50, 100, 500 y 1000. Parece ser que hasta unos
pocos siglos atrás, la humanidad no hubiera tenido en cuenta que la madre naturaleza nos había dotado con diez dedos en las manos y que por
lo tanto, pareciera natural que el sistema de numeración debería ser el
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
9
decimal. Este error ancestral fue continuado con otro en sentido contrario: durante muchos años, se intentaron diseñar computadores que trabajaran con números representados con el sistema de numeración decimal,
cuando todos sabemos que hasta que no se usó el sistema binario, no
avanzó, significativamente, el diseño de los computadores
El ábaco constituye uno de los primeros dispositivos para ayudar a realizar
cálculos. Se empezó a usar en China hace más de 2500 años. Hay varios
tipos de ábacos y algunos de ellos, todavía se usan. Más que un dispositivo
para realizar cálculos, es un ingenio mecánico que nos ayuda a representar
la información y a contar. Los más usados, utilizaban un doble sistema de
numeración con bases 2 y 5 que le hacía útil para representar cantidades
en base 10. Las operaciones de cálculo se realizaban usando otro mecanismo, por ejemplo, la cabeza, y los resultados quedaban codificados en el
mismo ábaco.
Fotografía reciente donde se ve un
ábaco a la izquierda y, a la derecha,
una pascalina, que fue la máquina
construida por Pascal.
En el año 1967 se descubrieron unos dibujos atribuidos a Leonardo da
Vinci en el que se representan unos planos de máquinas con ruedas dentadas orientadas a realizar las operaciones básicas de la suma y de la resta
y que fueron realizados alrededor del año 1500. Basados en esos planos,
se han construido más recientemente, máquinas que han funcionado al
realizar dichas operaciones.
Importantes fueron los trabajos de John Napier en el año 1600, que le
permitieron realizar tablas para multiplicar y para tabular los logaritmos.
Un avance significativo en el diseño de “calculadoras mecánicas” lo dieron Wilhelm Schickards y Blaise Pascal. El primero, matemático y astrónomo alemán, diseñó una máquina que realizaba operaciones de suma,
resta, multiplicación y división. El diseño de dicha máquina fue descrito
en una serie de cartas que le escribió a su primo, el famoso astrónomo
10
MATEO VALERO CORTÉS
Johannes Kepler, y que han permitido recientemente, realizar réplicas
que han funcionado.
Blaise Pascal, matemático, teólogo y físico francés, se ha adjudicado el honor de
ser uno de los primeros que diseñaron calculadoras mecánicas, no sólo con el
objetivo de que funcionaran, sino con el de establecer un mercado lucrativo. Su
calculadora, construida en 1642, realizaba las operaciones básicas de la suma y
de la resta. Como detalles curiosos diremos que la resta la realizaba sumando
al minuendo el complementario del sustraendo, tal como hacen los computadores digitales actuales, y que se vendieron unas cincuenta copias.
En el año 1670, el barón alemán Gottfried Leibniz mejoró significativamente el diseño de las pascalinas, construyendo máquinas que sumaban,
restaban, multiplicaban, dividían y hacían raíces cuadradas mediante iteraciones de sumas elementales. Es de resaltar aquí que Leibnitz ya propuso
y predijo la necesidad de usar lógica binaria en lugar de las ruedas dentadas que utilizaban sus prototipos.Tanto los diseños de Pascal como los de
Leibniz, sentaron las bases de un tipo de máquinas que se fueron perfeccionando a lo largo de los años.
Mencionaremos aquí el hecho de que el francés Joseph-Marie Jacquard propusiera, a principios de los años 1800, controlar el trabajo de sus telares mediante el uso de tarjetas perforadas. Este control desde el exterior fue un gran
avance en el diseño de los primeros computadores. De hecho, el concepto
permaneció válido hasta que se construyeron, a principios de los cincuenta,
los primeros computadores que tenían una memoria interna con las instrucciones y los datos, es decir, los computadores con programa almacenado.
Dibujos de planos relativos a
calculadoras, atribuidos a Leonardo da
Vinci. Fotografía de los académicos Javier
Aracil y Mateo Valero con una copia de
una máquina de telares Jacquard.
El siguiente avance a resaltar vino dado por el excelente matemático inglés, Charles Babbage. En 1822, se propuso hacer una máquina orientada
a calcular tablas de logaritmos y funciones trigonométricas. Se denominó
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
11
Máquinas de Diferencias y nunca llegó a construirla, aunque los planos que
dejó, sirvieron para que se hiciera un prototipo ciento cincuenta años
después, que funcionó y que se conserva en el Museo de Ciencia de
Londres. Después de la máquina anterior, se puso a diseñar la máquina
denominada Máquina Analítica. Poseía conceptos que usan los computadores actuales tales como instrucciones de control del secuenciamiento y ejecución de bucles. Augusta Ada de Lovelace, hija de Lord
Byron, era una matemática que escribió un programa que hubiera permitido a la máquina, si ésta hubiera funcionado, el calcular la secuencia
de la serie de Bernoulli, Ada se considera la primera programadora de
la historia y en honor a ella, en 1979, se puso su nombre a un famoso
lenguaje de programación.
Los trabajos de Charles Babbage fueron un gran paso adelante en el diseño de máquinas calculadoras de propósito general. Sin embargo, ni los
conceptos ni la tecnología estaban preparados para dar el definitivo salto.
Como anécdota, diremos que Babbage consideró el mover las ruedas
dentadas con la ayuda de motores de vapor
Desde Babbage hasta los primeros computadores
Después de que Charles Babbage propusiera el diseño de sus dos máquinas, hay un gran número de dispositivos y de máquinas que son muy
importantes para el desarrollo posterior de los computadores actuales.
Fotografías de partes de la Difference Engine,
izquierda, y de la Analytical Engine, derecha.
Estas máquinas fueron construidas
recientemente, siguiendo los planos de
Charles Babbage.
En el año 1829, se realiza la primera patente sobre una máquina de escribir. Los diseños iniciales son mejorados y su comercialización empieza en el año 1867. Las primeras teleimpresoras aparecen en el año
1902. En el año 1857, Sir Charles Wheastone propone el uso de la cinta de papel, como medio de almacenar información. Una de las prime-
12
MATEO VALERO CORTÉS
ras aplicaciones fue la de codificar el código Morse, para mejorar las
velocidades de transmisión del telégrafo, inventado en el año 1837 por
Samuel Morse. Posteriormente, se usaron varios tipos de cintas para
codificar información que sería leída/escrita por los computadores. En
1890, y con el objetivo de reducir el tiempo necesario para realizar el
censo de los Estados Unidos, Herman Hollerith propone la adaptación
de las tarjetas perforadas de Jacquard, para codificar la información relativa a las personas y diseña una máquina capaz de leer dichas tarjetas
y de sacar estadísticas. Su máquina era un autómata eléctrico que poseía un gran número de contadores tipo reloj que acumulaban los resultados. Su máquina hacía clasificaciones de manera automática y fue
perfeccionada para realizar otro tipo de tareas estadísticas. En 1924, la
compañía creada por Hollerith se comenzó a denominar IBM, International Business Machines
Esta máquina tabuladora de Hollerith fue continuada por otras muchas
que fueron las precursoras de los primeros computadores. Describiremos, brevemente, algunas de las más importantes.
En el año 1937, el americano George Stibitz, de los laboratorios Bell, construyó una máquina con relés que fue perfeccionada más adelante y denominada Complex Number Calculator. Este investigador se hizó también famoso en 1940, por hacer una conexión telefónica que permitió a un
computador situado en Nueva York, recibir órdenes y escribir sus respuestas a través de una impresora situada en New Hampshire.
En el año 1939, el matemático y físico nor teamericano John Vincent
Atanasoff, construyó una máquina electrónica orientada a la solución
de ecuaciones complejas. Sus primeras ideas, de los años 1937-38, le
llevaron a construir gran par te de la máquina denominada ABC poco
antes del 1942. La máquina utilizó alrededor de 300 tubos de vacío
para la unidad aritmética que sólo realizaba sumas y restas. La unidad
de control y algunos circuitos de control de la memoria interna, también fueron construidos con alrededor de 300 válvulas adicionales.
Utilizó condensadores organizados en dos cilindros, para representar
ceros y unos hasta poder almacenar 32 números binarios de 50 bits
cada uno, que eran leídos al girar los cilindros. A este tipo de memorías se les llamó tambores magnéticos y fueron usados durante mu-
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
13
chos años. La entrada de información a la máquina y el almacenamiento de resultados intermedios, se hacía a través de tarjetas perforadas. Atanasoff y su ayudante Clifford Berry, aunque dejaron la máquina inacabada en 1942, han sido considerados como los primeros
que construyeron un computador de propósito específico, completamente digital. Su diseño tuvo una gran influencia en los computadores
posteriores.
Entre 1939 y 1944, Howard Aiken, de IBM, desarrolla un computador
que se denominó Harvard Mark I. Se le considera uno de los primeros
computadores digitales. El componente básico era el relé, contenía más
de 75.000 componentes, su longitud era de 15 metros, su altura más
de 2 metros y su peso superior a 5 toneladas. Poseía una unidad de
control que daba trabajo a varias de cálculo. Era, en cierta manera, un
primer computador paralelo. Las instrucciones las leía de una cinta de
papel perforada y los datos del problema se le introducían a través de
tarjetas perforadas. Podía manejar números de 23 dígitos decimales
que sumaba o restaba a la velocidad de tres por segundo, los multiplicaba en cuatro segundos y los dividía en diez segundos. Su experiencia
en el diseño y en la programación de dicha máquina lo convirtieron en
una persona muy pesimista acerca del futuro de estos ingenios. A él se
le atribuye esa famosa frase de que en 1947, seis de dichos computadores serían más que suficientes para llenar todas las necesidades de
Estados Unidos.
En Alemania y durante los años alrededor de la Segunda Guerra
Mundial, Konrad Suze desarrolló una serie de máquinas denominadas
Z1, Z3 y Z4. Por ejemplo, la Z3 se acabó en 1941, anterior a Mark I.
Dicha Z3 estaba diseñada con alrededor de 2.000 relés y utilizaba representaciones de números reales en coma flotante. Los programas
se introducían mediante cinta perforada. Podía memorizar hasta 64
números de 22 bits. La suma o resta las realizaba en menos de un segundo y las multiplicaciones y divisiones en 3 segundos. Pesaba mil kilos y consumía alrededor de 4.000 vatios. Konrad Suze se adelantó
varios años a la realidad del cálculo paralelo, proponiendo un primer
prototipo. También se le atribuye el mérito de ser uno de los primeros investigadores en proponer lenguajes de alto nivel para programar los computadores.
14
MATEO VALERO CORTÉS
Fotografías de la máquina de cifrado Enigma (izquierda)
y del computador Colossus (derecha)
Durante la segunda guerra mundial, al matemático Alan Turing y sus colegas, comenzaron en 1943 la construcción del computador Colossus,
orientado al descifrado del código secreto alemán producido por la máquina Enigma. Colossus fue un computador de propósito específico, que
contenía 1.800 tubos de vacío.
Orígenes de los computadores actuales
Podemos decir que los computadores actuales empiezan a ser posibles a
partir del uso conjunto de los siguientes hechos: El álgebra de Boole, la invención de los tubos catódicos, las aportaciones de Claude Shannon y todas las experiencias anteriores en el diseño de máquinas mecánicas, como
las descritas anteriormente, con especial énfasis en dispositivos como la
Máquina Analítica de Babbage.
George Boole, coetáneo de Charles Babbage, inventó el álgebra que lleva su
nombre entre los años 1847 y 1854. Dichas matemáticas nuevas permitían
representar y manipular expresiones lógicas usando las reglas derivadas de
su álgebra. Es impresionante el hecho de que Boole, sin tener estudios universitarios, fuera capaz de proponer las bases matemáticas necesarias para
los computadores actuales.También debemos de decir que toda esa álgebra
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
15
de Boole fue prácticamente olvidada durante muchos años: sólo algunos estudiantes de filosofía le supieron ver alguna aplicación teórica
Fotografías de Claude Shannon a la
izquierda y de Alan Turing a la
derecha. Ambos fueron
investigadores que hicieron grandes
contribuciones a la informática y a
las comunicaciones.
La tecnología de ruedas dentadas no era la más apropiada para poder construir computadores útiles. El cambio tecnológico se produce cuando, a partir
del diseño de las bombillas incandescentes (1878), el americano Thomas Alva
Edison descubre el efecto Edison (1883) que permitió al británico John Ambrose Fleming inventar el diodo en el año 1900. En el año 1906, el americano
Lee de Forest introduce un tercer electrodo en el diodo y nace el triodo, como dispositivo que permite amplificar señales, pero también conmutar entre
dos estados estables que podían representar los valores binarios de 0 y 1.
En el año 1938, el americano Claude Shannon escribió un artículo resumen
de su tesis de master en el MIT. En dicho artículo, Shannon demuestra que los
conceptos lógicos de verdadero y falso en el álgebra de Boole pueden ser representados con los dos estados de los triodos. Conecta el álgebra de Boole
con los circuitos lógicos de dos estados, demostrando que estos circuitos, debidamente interconectados, pueden implementar las expresiones lógicas del
álgebra de Boole. Éste es un gran paso de tal calibre que muchos coinciden
en señalar la tesina de Shannon, como la más importante del siglo XX.
“ENIAC”
Una máquina singular, que ha merecido una mención especial tanto a nivel
técnico como político, fue el ENIAC (Electronic Numerical Integrator And
Computer). Los principales diseñadores, Prosper Eckert y John Mauchly, su-
16
MATEO VALERO CORTÉS
pieron recoger e integrar todas las experiencias anteriores en el diseño de
máquinas y, con ello, dar un gran paso hacia delante en el diseño de los
computadores. En concreto, fueron muchas las conversaciones que mantuvieron con Atanasoff y Aiken acerca de los computadores Mark I y ABC.
Con esta máquina, y con todo lo relacionado con ella después de su construcción, puede decirse que empieza la era de los computadores actuales.
El objetivo de la máquina era calcular trayectorias de proyectiles. Por otro
lado, era idea de Mauchly, el utilizar al máximo, la electrónica de los tubos de
vacío en el diseño de la máquina. El computador empezó a diseñarse en
mayo de 1943 y se acabó en 1946, siendo financiado por el Ballistic Research Laboratory y por la Moore School de la Universidad de Pennsylvania
en Philadelphia. Su presupuesto inicial de 100.000 dólares creció hasta el casi medio millón de dólares. La máquina utilizaba 18.000 tubos de vacío de
16 tipos diferentes, 1.500 relés, 70.000 resistores y 10.000 condensadores.
Sus medidas eran de 30 metros de longitud, un metro de anchura y 2,5 metros de altura. Pesaba 30 toneladas y consumía 140 kilovatios. Un aspecto
fundamental en el diseño era el procurar que la máquina fuera globalmente
fiable, dada la poca fiabilidad de los componentes, especialmente las válvulas.
El tiempo medio de funcionamiento de las válvulas era de entre 9.000 y
10000 horas. Con el uso de diferentes técnicas, entre las que destaca el no
dejar que los filamentos se enfriaran del todo, se consiguió que el tiempo
medio entre fallos de los tubos fuera de dos días, siendo reemplazados en
15 minutos. La refrigeración de la máquina era por aire.
Fotografías del ENIAC.
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
17
El ENIAC era una máquina basada en una serie de unidades funcionales,
cuyo elemento fundamental era un acumulador, conectadas a través de
una serie de buses que les permitía intercambiar señales de control y datos. Cada acumulador podía recibir hasta 5 números de entrada y podía
enviar hasta 2 números a otras unidades de control. Los números decimales eran de hasta 10 dígitos, llevaban incorporados un bit de signo, y se
podían transmitir tanto sus valores como sus complementados. La transmisión de los dígitos era en serie y se enviaban tantos pulsos como era el
valor del dígito, a una velocidad de un impulso cada 10 microsegundos. La
multiplicación de dos números decimales de 10 dígitos cada uno, produciendo un resultado de 20 dígitos, se realizaba en 3 milisegundos. Su velocidad era más de 1000 veces superior a cualquiera de las máquinas electromecánicas construidas anteriormente. Durante sus años de
funcionamiento, ENIAC fue incorporando nuevas características, tales como tambores magnéticos para almacenar resultados intermedios, o una
memoria de ferrita que le permitía almacenar hasta 100 palabras de 10
dígitos cada una. ENIAC dejó de funcionar el 2 de octubre del 1955. Durante sus casi diez años de funcionamiento, fue capaz de realizar más operaciones y generar mas resultados que todas las máquinas anteriormente
construidas
Computadores con programa almacenado
Hoy nos parece muy lógico que el computador posea una memoria interna donde están las instrucciones y los datos de los programas. Tal como
hemos descrito hasta ahora, las máquinas primeras recibían las órdenes o
instrucciones a ejecutar desde el exterior, por medio de tarjetas o de cintas perforadas. Por otra parte, eran capaces de almacenar un número pequeño de valores intermedios. Desde mucho antes de empezarse a diseñar el ENIAC, los ingenieros de ésta y de otras máquinas tenían muy claro
las ventajas que reportaría el tener una memoria interna para instrucciones y datos. Si no se habían diseñado máquinas con esas características,
era básicamente, porque la tecnología no lo permitía de manera razonable. Por ejemplo, el uso de memorias de ferrita fue un gran avance tecnológico para el diseño de las memorias. Pues bien, para almacenar los 100
números decimales de 10 dígitos cada uno, la memoria de ferrita que se
añadió al ENIAC, ocupaba un espacio de 75 centímetros de largo, 60 de
18
MATEO VALERO CORTÉS
ancho y más de 2 metros de altura, siendo el tiempo de acceso de 16 microsegundos. La tecnología para memorizar información, avanzaba muy
lentamente. Mauchly tenía muy claro que la máquina siguiente al ENIAC incorporaría una memoria interna suficientemente grande como para permitir almacenar instrucciones y datos del programa. De hecho, el ENIAC
incorporó al final, algunas características que le permitieron almacenar
programas que contenían hasta 1.800 instrucciones, tamaño más que razonable para la época.
Dicho lo anterior, también hemos de decir aquí, que la controversia acerca
de quién fue el inventor de la idea de programa almacenado ha sido la más
grande y famosa en la historia de los computadores. Sin embargo, es mundialmente admitido el hecho de que la idea final, su discusión y posterior implementación en los computadores, se originó en la Moore School al tiempo que se comenzaba y diseñaba el ENIAC. La realidad es que es bastante
aceptado el hecho de asignar dicha invención al brillante matemático húngaro JohnVon Neumann, aunque él se encargo en repetidas ocasiones de desmentir dicha opinión. La Moore School era el centro universitario más avanzado en el tema de diseño de computadores. Por tal motivo, era un sitio
visitado por todas aquellas personas e instituciones interesadas en el tema.
John Von Neumann fué un visitante muy asiduo desde el año 1944. Su primer viaje tuvo como objetivo el conocer la estructura interna del ENIAC.
Posteriormente, su interés en las discusiones que se llevaban a cabo acerca
del futuro computador EDVAC, le decidieron a realizar estancias muy largas.
Fue su enorme capacidad de síntesis la que le llevó a escribir en Junio del
1945, el informe “First Draft of a Report on the EDVAC”. Dicho borrador
contenía claramente la descripción de la idea de programa almacenado. El
informe contenía el resultado de muchas horas de discusión de muchas
personas del grupo del ENIAC, pero sólo él figuraba como autor. Este hecho
hizo que hubiera grandes peleas en el grupo de diseño y originó posteriormente, que Eckert y Mauchly dejaran la Moore School.
Tal como hemos comentado, la Moore School organizó varias escuelas de
verano que atraían a investigadores con interés en el tema de los computadores. De todos ellos, el más comentado es el que se realizó en el año
1946 con el título de “Theory and Techniques for the Design of Electronics Digital Computers”. A dicho curso asistieron 28 investigadores de Europa y América. El curso había sido pensado para hablar del ENIAC, aun-
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
19
que la realidad es que se habló mucho más del futuro EDVAC. En dicho
curso quedó claro que ya se sabía diseñar unidades aritméticas y de control con tecnología totalmente electrónica y que uno de los retos más
grandes era el diseñar las memorias. Uno de los asistentes al curso de
1946 fue el Excelentísimo Maurice V. Wilkes, académico correspondiente
de nuestra Academia de Ingeniería.
Antes de seguir adelante, diremos que la relación entre Eckert y Mauchly
por una parte yVon Neumann por la otra, no era nada buena. Los primeros
se quejaban de que el segundo se quisiera llevar la gloria asociada al concepto de que los computadores tuvieran, los programas que ejecutan y sus
datos asociados, en la memoria interna del procesador. Dicha idea había sido desarrollada en el grupo de diseño del ENIAC, mucho antes de que
Von Neumann comenzara a visitar la Moore School. Por otra parte, Von
Neumann había sido el autor de los borradores que describían la máquina EDVAC, y allí se describía claramente que la máquina incorporaría el
concepto de programa almacenado. Por último, estaba el tema de las patentes asociadas al ENIAC y al futuro EDVAC. Eckert y Mauchly querían que
las patentes pertenecieran a los investigadores. La Moore School, que pertenecieran a la Universidad.Adicionalmente, los militares, que habían pagado
gran parte del dinero, querían que todo fuera secreto de forma que no dejaban publicar ni patentes ni artículos.Todo ello creó un ambiente muy difícil
e hizo que el grupo de elite de la Moore School se fragmentara en varios
subgrupos que empezaron nuevos proyectos de nuevas máquinas, existiendo una gran competencia entre ellos.Volveremos más adelante con este tema. Simplemente decir que esas guerras internas de los americanos, junto
con el pragmatismo de los ingleses que habían ido al curso de verano de la
Moore School, hicieron que los primeros computadores con programa almacenado se construyeran en Europa, tal como vamos a describir.
Primeros computadores con programa almacenado
en Inglaterra
Ya hemos mencionado brevemente, el computador Colossus, orientado a
descifrar los códigos secretos generados por la máquina alemana Enigma.
Después de la II Guerra Mundial, se forma un grupo de muy buenos investigadores en Manchester. Uno de dichos investigadores era Frederic C. Williams,
20
MATEO VALERO CORTÉS
que junto con su ayudante Tom Kilburn, había patentado al final del año 1946,
el uso del tubo de rayos catódicos, como dispositivo para crear la primera
memoria de acceso aleatorio. Al final del año 1948, hicieron una demostración donde se veía que su invento permitía almacenar varios miles de bits.
A dicho invento se le denominó memoria basada en el tubo de Williams.
Uno de los primeros computadores que hizo el grupo de Manchester fue
un pequeño computador, llamado The Baby cuyo objetivo era probar que
las ideas del tubo de Williams funcionaban bien. Este computador tenía el
programa almacenado en memoria interna, de forma que muchos le consideran como el primer computador que tenía esas características. La memoria tenía 32 palabras de 32 bits, almacenadas en un tubo de Williams.
Había otros dos tubos que servían como acumulador y para almacenar
la instrucción que se estaba ejecutando. Las unidades aritméticas trabajaban en serie. Aun así, la máquina demostró sus habilidades haciendo
una serie de pruebas o programas tales como dividir números grandes
o demostrar que algunos números muy grandes eran primos, para lo
cual, la máquina fue capaz de ejecutar más de 35 millones de instrucciones en 52 minutos . El prototipo fue mejorado y atrajo el interés de la
empresa Ferranti, que lo compró e hizo varias réplicas, denominadas
Mark I, que vendió a precios de alrededor de medio millón de euros.A nivel
de hardware, el computador tenía 4.000 tubos de vacío, 12.000 resistencias
y 2.500 condensadores. Este computador tenía una serie de nuevas ideas,
que han sido fundamentales y muy usadas en los computadores actuales.
Por ejemplo, una jerarquía de memoria en 2 niveles. Por una parte, un tambor magnético que almacenaba 16k palabras de 40 bits, que alimentaban a
un nivel más rápido de memoria basada en 8 tubos Williams que almacenaban hasta 256 palabras de 40 bits. Podía sumar 2 números en 1.26 ms y
multiplicarlos en 2,6 ms.Tenía hasta 64 instrucciones en su lenguaje máquina
y usaba el concepto de subrutina que almacenaba en el tambor y que podían ser llamadas a ser ejecutadas por el programa principal.
Maurice V. Wilkes y el EDSAC
Maurice V. Wilkes, académico correspondiente de nuestra Academia de
Ingeniería, volvió a su puesto de la Universidad de Cambridge al acabar la
Segunda Guerra Mundial, esta vez, como director del University Mathe-
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
21
matical Laboratory, en el que había entrado a trabajar en el año 1937.
Desde el principio, conoció todos los trabajos que se estaban realizando
en la Moore School. De hecho, fue su visita a la escuela de verano del año
1946 lo que le impulsó a diseñar una máquina electrónica con programa
almacenado. Quería que su máquina ejecutara programas enteros de cierta complejidad y que no fuera un simple demostrador, tal como eran todas las máquinas que funcionaban hasta ese momento. Para ello, decidió
construir una máquina pequeña, que, además, usara tecnología ya probada. La máquina se denominó EDSAC,“Electronic Delay Storage Automatic
Calculator” y su coste fue de alrededor de 1 millón de euros.
Fotografía de Maurice V. Wilkes,
izquierda agachado, con el EDSAC y
del computador Mark I de
Manchester
Lo primero que decidió fue el sistema de memoria. Optó por usar líneas
de retardos acústicos basados en tubos de mercurio. Esta tecnología estaba ya probada y de hecho, fue usada en computadores como el EDSAC,
EDVAC y UNIVAC I. La máquina tenía 16 tubos que le permitían, cada uno,
almacenar hasta 32 números de 17 bits (16 con el valor y uno con el signo). El primer prototipo estuvo funcionando en mayo del 1949, sólo un
año después del computador de Manchester, y la máquina estuvo activa
hasta el año 1956. Este diseño fue pionero en muchos aspectos. Por ejemplo, se implementó en hardware la posibilidad de que el programa pudiera
llamar a ejecutar a subrutinas. Además, se diseñaron cargadores automáticos de programas que fueron incluidos en la memoria interna. Así pues, el
código era reubicable. De hecho, Maurice tuvo mucho interés en que la
máquina fuera realmente de propósito general y útil para muchas aplicaciones. Es por ello, que desarrolló técnicas software complementarias a las
hardware y que son válidas y totalmente utilizables por los computadores
actuales. Finalmente diremos que el EDSAC era un computador tipo acumulador con 18 instrucciones en el lenguaje máquina que multiplicaba 2
22
MATEO VALERO CORTÉS
números en 4,5 ms. y que los dividía, mediante software, en 200 ms. Para
entrada y salida de datos, tenía un lector de cinta y una impresora que
usaban códigos de cinco agujeros.
América y sus computadores, después del ENIAC
Tal como hemos dejado indicado anteriormente, a partir de 1946, se establecen una serie de proyectos en América, con los objetivos de construir
computadores cada vez más potentes, que llevaran incorporada la idea de
programa almacenado. En la escuela de verano del 1946 de la Moore
School, ya habían quedado bastante claras las ideas para diseñar unidades
de control y aritmético lógicas. Se sabía cómo interconectarlas.También se
tenían diseñados dispositivos de entrada salida razonables. Quedaba por
mejorar el tema de la tecnología para construir memorias. De hecho, muchos de los grandes avances en esos años, estuvieron ligados a los avances
para construir sistemas de memorias de tamaño razonable, con acceso rápido a su información y fiables en su funcionamiento. Muchos fueron los
proyectos y máquinas desarrolladas durante esos años en EE.UU. Nosotros describiremos brevemente las máquinas asociadas a la Moore School
(EDVAC), la desarrollada por Eckert y Mauchly fuera ya de la Moore
School (UNIVAC) y la IAS, desarrollada por Von Neumann en el Institute
for Advanced Studies en Princeton.
La Moore School, a pesar de que Eckert, Mauchly y Von Neumann habían
dejado el centro, continuó con el desarrollo del EDVAC (Electronic Discrete Variable Arithmetic Computer). Tal como había sido descrita en el borrador de Von Neumann, la aritmética de la máquina iba a ser en serie, debido a la dificultad de realizar con los tubos de mercurio memorias de
acceso paralelo. Para la memoria central, se emplearon 128 tubos de mercurio que permitían grabar cada uno hasta 8 palabras de 44 bits, dando lugar a un total de 1024 palabras de 44 bits. El dispositivo permitía grabar
bits a una velocidad variable que dependía de la temperatura, y que era
de alrededor de 1 megahercio. A un nivel superior, se incorporó un tambor magnético que contenía 4.000 palabras de 44 bits. Se diseñó un cable
magnético de bronce que permitía almacenar hasta 20.000 palabras, una
cinta de papel fotoeléctrica que permitía una velocidad de lectura de
1.000 caracteres por segundo. Las instrucciones eran de 44 bits (4 bits pa-
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
23
ra el código de operación) con cuatro direcciones para las direcciones de
los dos operandos fuente, del destino del resultado y de la instrucción siguiente a ser ejecutada. Una suma se realizaba en 1 ms, la multiplicación y
la división en 3 ms y tenía las unidades aritméticas replicadas para comprobar el resultado de cada operación. La máquina contenía 3.500 tubos
de vacío y 27.000 dispositivos electrónicos adicionales. Ocupaba una superficie de 50 metros cuadrados y 2 metros de altura. La máquina empezó a funcionar en el año 1952 y estuvo funcionando hasta el 1962.
Jon Von Neumann y Goldstine empezaron en el IAS la construcción de
una máquina que se llamó IAS en honor del nombre del centro de investigación de Princeton. A pesar de que Von Neumann había dicho que la
máquina tendría una aritmética en serie, desde el principio se intentó diseñar una memoria que permitiera el acceso en paralelo, para así cambiar
las unidades aritméticas y aumentar significativamente la velocidad de proceso. Por todo ello, se realizaron muchas investigaciones alrededor de las
memorias. Se usaron el Selectron, después tambores magnéticos y por último tubos catódicos de Williams. El primer prototipo fue operacional en
1952 con una memoria de 4.000 palabras de 40 bits, y con ALUs funcionando a una frecuencia de 1 megahercio. El computador era asíncrono, de
forma que se tuvieron que desarrollar cuidadosamente los biestables que
muestreaban las señales que en paralelo, se intercambiaban las diferentes
partes del procesador. Después de su inauguración, se le dedicó a un cálculo asociado al diseño de la bomba de hidrógeno, en el que estuvo 60
días ininterrumpidos. A nivel interno, era una máquina tipo acumulador,
pero muy rápida ya que era capaz de sumar en 60 microsegundos y de
multiplicar y dividir en 180 microsegundos.Tenía 2.300 tubos y sus dimensiones eran de 1,80 de larga, 0,60 de ancha y 2,40 metros de altura.
Eckert y Mauchly empezaron una serie de diseños que llevaron a la máquina
que se denominó UNIVAC (UNIVersal Automatic Calculator). La memoria
estaba basada en tubos de mercurio que permitían almacenar hasta 1.000
palabras de 12 caracteres alfanuméricos de 11 bits cada uno que permitía un
tiempo de acceso máximo de 400 microsegundos. Internamente tenía cuatro acumuladores y unas unidades aritméticas que funcionaban a una velocidad de 2,25 MHz. Una suma se realizaba en 0,5 ms, una multiplicación en 2
ms y una división en 4 ms. Esta máquina fue pionera en el uso de cintas magnéticas para memoria secundaria, que permitían almacenar hasta 128 carac-
24
MATEO VALERO CORTÉS
teres por pulgada que podían ser leídos a una velocidad de 12.800 caracteres por segundo. De esta máquina se vendieron 46 copias.
Fotografía del IAS de Von Neumann,
a la izquierda y del AVIDAC, a la derecha, que fue un clon de la anterior,
construida en el Argonne National
Laboratory.
Es conocida la anécdota de que se usaron cuatro de ellas para ejecutar un
programa que debía de predecir en 1952 el ganador, el mismo día de las
votaciones a Presidente de Gobierno. Con los datos iniciales, la máquina
dio unos resultados muy abultados a favor de Eisenhower. Tan grandes
eran los márgenes, que no se atrevieron a publicarlos, aunque luego se
comprobó que la máquina no se había equivocado
A partir de la década de los cincuenta, los computadores empiezan a ser
máquinas que adquieren ciertos niveles de ventas. Univac empieza a comercializar el Univac I en el año 1951 y continua con los Univac 1100 y
1101 en los años 1953 y 1955. IBM también comienza a vender su IBM
701 en el año 1953 al que le siguen los modelos 702 en el año 1955 y el
704 en el año 1956. De algunos de esos sistemas, tal como el Univac I, se
vendieron 46 copias al precio de un millón de dólares cada una. Aparecen
otras empresas tales como Burroughs, Control Data y Digital. Los computadores empiezan a ser conocidos en ambientes de ayuda a la gestión y
empieza la revolución informática
Fotografía del Univac I a
la izquierda. Fue una de
las primeras máquinas
comerciales. Se vendieron
46 al precio de un millón
de dólares cada una. A la
derecha, el IBM 701. Fue
la primera máquina
comercial de IBM de la
que vendió 19 máquinas.
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
25
El transistor y los circuitos integrados
Hay un acuerdo unánime en describir al transistor como el dispositivo
que revolucionó las tecnologías de la información. Para muchos, es el invento más importante de los últimos años. El transistor es un dispositivo
que permite amplificar señales eléctricas. Puede realizar las mismas funciones que realizaban las válvulas, pero son mucho más pequeños, permiten
ser integrados en chips, consumen poca potencia y funcionan más rápido
que las válvulas.
Fotografía del primer transistor, a
la izquierda, y del primer circuito
integrado, a la derecha
El día 17 de noviembre de 1947, los laboratorios de la Bell anuncian el
descubrimiento de un dispositivo que permite crear el llamado efecto
transistor. Está formado por una barra de germanio a la que le han soldado dos conexiones de un material de fósforo y bronce. Dicho dispositivo
primitivo permite amplificar señales eléctricas. Los inventores fueron John
Bardeen,Walter Brattain y William Schocley que recibieron el premio Nobel de Física del año 1956 por este invento. Por cierto, el anuncio de este
dispositivo no mereció ni un triste anuncio técnico en los periódicos
Aunque Bell empezó a comercializarlos desde el año 1948, la verdad es
que no fueron muy utilizados al principio. La fabricación no era sencilla,
eran muy caros y poco fiables. En el año 1951, Bell perfecciona la técnica
de fabricación e introduce el transistor de unión, basado en un cristal de
germanio que se hace crecer y dopar con impurezas al mismo tiempo. Esta nueva técnica es un gran avance, de forma que Bell organiza una reunión para dar a conocer el invento y vender derechos de fabricación a las
empresas que lo deseen previo pago de 25.000 dólares. Empresas ya es-
26
MATEO VALERO CORTÉS
tablecidas como RCA y General Electric compran derechos de uso y fabricación así como nuevas empresas tales como Texas Instruments,TI. Esta
empresa perfeccionó el proceso de fabricación, patentó el transistor de
Silicio en el año 1955 y bajó los precios de los transistores a 2,50 dólares
por unidad, hecho que contribuyó enormemente a que reemplazaran a
las válvulas en los computadores. Como anécdota, diremos que en el año
1954, Regency Electronics saca al mercado el primer aparato de radio con
transistores al costo de 50 dólares. En 1960, se empiezan a fabricar los
primeros transistores de efecto de campo que les dan una nueva e importante dimensión y en el año 1963 se inventan los transistores CMOS.
Fotografía del TRADIC a la izquierda. Fue
el primer computador totalmente
transistorizado. Se puede ver como se
programaba la máquina desde el exterior. A
la derecha se ve el IBM 360. Fue anunciada
en el año 1964. Durante los dos primeros
años se vendieron más 25000 equipos que
de sobras sirvieron para recuperar los 5.000
millones de dólares que se emplearon para
su diseño. En esta máquina, IBM empleaba
circuitos integrados.
El transistor se usa enseguida en las telecomunicaciones y pasa muy rápido
a intentar sustituir a las válvulas en el diseño de los computadores. El primer computador totalmente transistorizado es realizado por la propia Bell.
Se le denominó TRADIC (TRAnsistorized Digital Computer), estaba construido con 800 transistores de contacto, y 10.000 rectificadores de germanio. Fue acabado en el año 1954, época en la que un transistor individual
costaba 20 dólares, frente al coste de un dólar por válvula. No sólo eso, sino que esta máquina era mucho más lenta que las de válvulas ya que sólo
calculaba un millón de operaciones lógicas por minuto. Ahora bien, su tamaño era insignificante menor, comparado con las máquinas de válvulas y
su consumo era inferior a 100 vatios, 20 veces menor que lo que consumía
un computador equivalente que fuera construido con válvulas
Al invento del transistor, le siguió el no menos importante de los circuitos
integrados. El tamaño de los transistores era mucho más pequeño que el
de las válvulas. Sin embargo, los condensadores y resistencias, tan necesarios en los circuitos como los transistores, ocupaban un tamaño muy con-
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
27
siderable. En el año 1958 y de manera independiente, dos investigadores
llegan a la conclusión de que casi todos los componentes que se necesitan en un circuito electrónico, pueden ser construidos con el mismo material y miniaturizados. Aparece el concepto de circuito integrado. Los inventores fueron Jack Kilby de Texas Instruments, que presenta los
primeros resultados el 12 de septiembre del 1957, y patenta la idea el 6
de febrero del 1958, y Robert Noyce, que trabajando en la recién creada
Fairchild, patenta una idea similar en enero del 1959. Ambas empresas
acordaron compartir la patente. Fue Jack Kilby, premio Nobel de Física por
su invento del circuito integrado, el que también introdujo la primera calculadora de mano en el año 1967, como un ejemplo de aplicación práctica de los circuitos integrados. Su peso era de 25 kilos y su coste de 2.500
dólares
En el año 1961, Fairchild diseña el primer circuito biestable integrado mediante el uso de lógica RTL y en 1967, la misma empresa crea
el primer producto en MOS, que era una unidad aritmética de 8 bits con
un acumulador de resultados.
La ley de Gordon Moore
Desde el primer circuito integrado del año 1958, la capacidad de miniaturización de los transistores ha ido creciendo a una velocidad que fue
aproximadamente predicha por Gordon Moore. A dicha tendencia, se le
Dos transparencias que muestran gráficamente algunas de las consecuencias de la ley de Moore.
ha llamado ley de Moore, aunque no es ninguna ley de la naturaleza, sólo
una tendencia en la integración de los circuitos. Gordon Moore, uno de
los creadores de la empresa Intel, escribió un artículo en la revista Electronics en el año 1965. A partir de los datos que tenía sobre el número de
28
MATEO VALERO CORTÉS
transistores que se habían integrado en los circuitos durante los últimos
tres años, vio que el número se había doblado cada año y que el número
máximo de transistores que poseían los circuitos de entonces era de cincuenta. Predijo que esa tendencia, de doblar cada año, continuaría durante
diez años más y que entonces, el número de transistores que tendrían los
circuitos sería de 65.000. La realidad es que desde 1965 y hasta nuestros
días, la integración ha crecido a un promedio de doblar el número de
transistores cada 18 meses aproximadamente.
El primer microprocesador
Tal como hemos comentado, los circuitos integrados pasaron a ser el
componente más usado en el diseño de computadores y de los circuitos
electrónicos en general. Uno de dichos dispositivos eran las calculadoras
de mano. En el año 1971, la recién creada empresa Intel recibió un encargo de la empresa japonesa BUSICOM, para realizar unos circuitos que
constituirían la base de su nueva calculadora. El ingeniero Ted Hoff de Intel
se percató de que todos aquellos transistores se podían integrar en un
solo circuito. El diseño no le gustó a Busicom, que fue indemnizada por Intel con 40.000 dólares para perder los derechos sobre la patente . Aparecía un circuito que contenía 2.300 transistores, que permitía realizar más
de 60.000 operaciones por segundo y que, por lo tanto, tenía una potencia superior a la del ENIAC. Aparecía el primer microprocesador, al que se
le denominó Intel 4004
Fotografías del Intel I-4004,
el primer microprocesador. A
la derecha, fotografía del
Pentium 4, uno de los
últimos microprocesadores
de Intel. Los separan 30 años
y muchas otras cosas
Como dato reciente, diremos que en el año 2000 y según fuentes de
DARPA, se construyeron casi 10.000 millones de microprocesadores. Sólo
el 2% de ellos, son de altas prestaciones. La mayoría se emplean en mecanismos de control y sistemas empotrados. Con los avances de las tecnolo-
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
29
gías de la Información y de las Telecomunicaciones, se espera que dentro
de 3 o 4 años, el número de procesadores que se fabricará será más de
diez veces superior al número de habitantes del planeta.
Memorias y procesadores
La forma de hacer las memorias ha influido enormemente en el diseño
de los procesadores. Inicialmente, la capacidad que teníamos para memorizar era muy pequeña en cantidad de información y los accesos a
esa información eran en serie, es decir, a reducida velocidad. Hasta la
aparición de los discos magnéticos y de las memorias de semiconductores, no se han tenido tecnologías adecuadas para la fabricación de las
memorias. Debido a esa dificultad, hemos visto que muchas veces, la
decisión más importante que tenían los arquitectos de computadores
al diseñar un nuevo computador, era la elección del sistema de memoria. En las líneas que siguen vamos a hacer una referencia a las memorías basadas en tubos de mercurio, al denominado tubo de Williams, a
las memorias de núcleo de ferrita, discos magnéticos y memorias de
semiconductores.
Las memorias basadas en tubos de mercurio se usaron, tal como hemos indicado anteriormente, en el diseño de procesadores tales como
los EDVAC, EDSAC y UNIVAC I. La idea básica era usar un tubo lleno de
mercurio como línea de retardo de impulsos sonoros. Para almacenar
bits, los impulsos eléctricos eran convertidos a impulsos sonoros que
eran introducidos en el tubo de mercurio. Dependiendo de la longitud
del tubo, los impulsos tardaban un tiempo u otro en llegar de un extremo al otro. Al llegar al extremo, podían ser leídos y debían ser reciclados. Dependiendo de la longitud del tubo y de la frecuencia de introducción de los impulsos, el tubo almacenaba más o menos bits. Había
grandes problemas como el hecho de que la velocidad de los impulsos
por el tubo dependía de la temperatura del mercurio. Como vemos el
acceso a la información era completamente secuencial, lo que reducía
bastante el ancho de banda real. Se idearon varias técnicas para aliviar
este problema, como la más trivial consistente en aumentar el número
de tubos y disminuir su capacidad, permitiendo un acceso aleatorio a
cualquier tubo.
30
MATEO VALERO CORTÉS
Fotografía a la izquierda de los tubos de
Williams, A la derecha, se ve el tambor
magnético del computador ERA 1101.
Los tambores podían almacenar hasta 4.000
palabras que podían ser accedidas a una
velocidad de 5 ms.
El denominado tubo de Williams fue un gran avance en los mecanismos
para almacenar información. Fred Williams, inglés, comenzó a pensar en la
idea de usar tubos de rayos catódicos para almacenar información a partir
de un viaje que hizo en el año 1946 a los Estados Unidos. La idea era almacenar señales analógicas para los radares y señales digitales para los
computadores. Una vez en Manchester, y después de haber logrado almacenar y recuperar un bit, se le unió Tom Kilburn el cual fue capaz en 1947
de grabar 2048 bits, en diferentes formatos, manteniendo la información
durante mucho tiempo. La idea era rellenar el tubo de rayos catódicos
con dos tipos de señales diferentes representando los dos valores de un
bit. Esa información era leída desde el exterior, normalmente usando otro
tipo de tubo y era realimentada de nuevo al tubo. Se había construido un
dispositivo que permitía acceder a la información en paralelo acercando
por primera vez las velocidades de las memorias a las de las unidades aritmético lógicas. Otras ventajas sobre los tubos de mercurio eran que el
mecanismo era insensible a las variaciones de temperatura y que además,
el diseño era mucho más barato.Tal como se ha dicho, el tubo de Williams
fue la excusa para diseñar The Baby. Posteriormente, se empleó en muchos diseños tales como en los computadores IBM 701 y 702. A partir del
año 1955, este dispositivo fue reemplazado por las memorias de ferrita.
Las memorias de núcleo magnético de ferrita fueron desarrolladas a final de
los años cuarenta. Reemplazaron a los tubos de vacío y convivieron con los
tubos de rayos catódicos de Williams. Su invención es atribuida a varios investigadores, entre los que se encuentran Presper Eckert, An Wang y Jay Forrester. Este último las empleó en el computador Whirlwind del MIT en el
año 1949. Uno de los primeros computadores comerciales que usaron este
tipo de memorias a principio de los años cincuenta fueron los de la casa Univac. En concreto, el Univac 1105 usaba planos de este tipo de memoria organizados en pilas. Cada plano albergaba 1.024 núcleos de ferrita que correspondían a 1.024 bits. Había hasta ocho planos por pila. Cada plano costaba
entonces alrededor de 6000 dólares
Las memorias de ferrita fueron re-
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
31
emplazadas de los computadores por las memorias de semiconductores a
principios de los años setenta. A título de anécdota diremos que el computador de guiado del Apolo XIII usaba este tipo de memoria.
El primer disco magnético apareció en el año 1956. Se denominaba IBM
305 RAMAC. Permitía almacenar 4 megabytes en 50 discos de 24 pulgadas de diámetro. Giraba a 1.200 revoluciones por minuto. La densidad lineal de grabación era de 100 bits por pista con una separación de 0,25
centímetros entre pistas. Así pues, la densidad de grabación era de 1.000
bits por pulgada al cuadrado. El tiempo de acceso promedio era de 100
ms. El coste de alquiler era de 35.000 dólares al año y en su diseño se emplearon válvulas. Desde su aparición, el disco ha ido mejorando a unas veA la izquierda está una fotografía acerca
de las memorias de ferrita, que fueron
usadas desde principio de los cincuenta
hasta que fueron sustituidas por las
memorias de semiconductores a primeros
de los setenta. A la derecha, fotografía del
primer disco magnético. Fue el IBM 305
RAMAC, comercializado en el año 1956.
locidades comparables e incluso superiores al avance en los semiconductores. Por otra parte, han aparecido muchos tipos de disco tales como los
discos flexibles o los discos ópticos. Hoy en día un sistema avanzado de
discos, como el IBM 120 GXP, permite almacenar en 3 discos internos de
3,5 pulgadas, hasta 120 gigabytes de información. Comparando con el primer disco de hace 45 años, la capacidad total se ha multiplicado por
500.000, la densidad de grabación por casi 30 millones de veces, la densidad lineal de grabación por 5.000, la densidad de pistas por casi 6.000 y la
velocidad de rotación por sólo 6 veces. Estos discos tienen una latencia de
acceso promedio de 4 milisegundos y se pueden leer y escribir datos a
una velocidad de 74 megabytes por segundo. Este avance espectacular
continuará durante los próximos años, esperándose el disco de 1 terabyte
para el año 2006
Los discos magnéticos descritos anteriormente, junto con las cintas magnéticas que no describiremos, han sido los dispositivos que se han usado
durante los últimos años para construir la denominada memoria secundaria del computador. Es una memoria cuyo contenido se ha de escribir o
32
MATEO VALERO CORTÉS
leer a/desde la memoria principal. El verdadero avance en el diseño de
dispositivos para construir la memoria principal de un computador se dio
con la aparición del transistor seguida de los circuitos integrados.Ya en el
año 1966, IBM introdujo en el mercado una memoria bipolar de 16 bits,
que continuó con otra de 64 bits en el año 1968. El año 1966, también se
inventa la memoria DRAM que permite implementar 1 bit de memoria
con el uso de un único transistor. A partir del año 1970, se introduce la
memoria DRAM de 1 kilobit y en el 1974, la de 4 kilobits. Esta última memoria se diseña con una tecnología de 8 micras, la celda de memoria ocupa 1280 micras al cuadrado, el chip es de 15 milímetros cuadrados y el
precio de cada memoria era de 18 dólares. A partir de esa época, la ley
de Moore se aplica al diseño de las memorias por lo que cada 3 años,
aproximadamente, sale al mercado una memoria que es cuatro veces más
densa que la anterior. Esto nos ha llevado a que en este año 2002, tengamos memorias de 256 megabits, diseñadas con una tecnología de 110 nanómetros y que ocupan una superficie inferior al centímetro cuadrado. Esta tendencia seguirá durante los próximos 15 años, como mínimo.
Algunos conceptos importantes en la arquitectura de los
computadores
Tal como hemos indicado, a partir de la década de los cincuenta, el computador empieza a ser muy utilizado. Aparecen muchas empresas constructoras de computadores y se empieza a desarrollar la tecnología del software,
tan necesaria para que estas máquinas pudieran ser programadas para ejecutar cualquier tipo de aplicación. Los avances de la microelectrónica desempeñan un papel favorable en el desarrollo de máquinas cada vez más
potentes. Cada fabricante intenta definir su propia arquitectura, es decir, el
conjunto de instrucciones que forman el lenguaje máquina. Esto, junto con
que no había acuerdo en el software a utilizar, hacía que los sistemas fueran
totalmente incompatibles por lo que los compradores, cuando compraban
sus primeras máquinas, estaban decidiendo una opción a largo plazo.
Los primeros computadores sólo tenían un número pequeño de instrucciones, debido a que el hardware era muy caro. Una creencia general en
los primeros fabricantes fue suponer que al poder disponer de más hardware, este se debía de aprovechar, entre otras cosas, para aumentar el nú-
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
33
mero y la complejidad de las instrucciones del lenguaje máquina. De esa
forma, se creía que los programas se ejecutarían más rápido.Y así fue durante muchos años. Ahora bien, el gran número y la complejidad de las
instrucciones hizo que el diseño de las unidades de control del procesador, se hicieran cada vez más complicadas. La teoría de diseño de autómatas era válida, pero la complejidad de los diseños aumentaba considerablemente con el número de instrucciones. Maurice Wilkes, propuso un
método alternativo para diseñar esas unidades de control. El método consistía en usar una memoria, para implementar gran parte del autómata de
control. El método se llamó microprogramación y fue desarrollado en el
año 1951.
El modelo Von Neumann descrito en el famoso borrador sobre el EDVAC,
proponía diseñar los computadores de forma que ejecutaran las instrucciones una detrás de otra. Era un funcionamiento totalmente secuencial
que implicaba facilidad del diseño y reducción del coste hardware, a costa
de reducir la velocidad de ejecución de los programas. La tecnología microelectrónica permitía usar cada vez más hardware y por lo tanto, se podía pensar en complicar los diseños para ganar velocidad. Había que cambiar el modelo Von Neumann de ejecución secuencial. Para ello, los
arquitectos de computadores se fijaron en el modelo de fabricación de
coches propuesto por Henry Ford en los primeros años del siglo anterior,
que consistía en la cadena de montaje de coches. En dicha cadena, existen
varios puntos o etapas de la cadena, donde hay varios coches en diferente estado de fabricación. En cada etapa se les añade algo de forma que los
coches van pasando por todas las etapas y al final, en la última etapa, se
acaban de fabricar y salen de la cadena. Los arquitectos de computadores
empezaron a crear en hardware el concepto equivalente. Para ellos, la fabricación de un coche era equivalente a ejecutar una instrucción del lenguaje máquina. El computador iba a consistir de una serie de etapas hardware por donde iban a pasar las instrucciones. En cada etapa, se iba a
ejecutar parte de la instrucción de forma que si el hardware tenía x etapas y si en cada etapa había una instrucción en estado de ejecución, el
computador podría estar ejecutando en total, x instrucciones al mismo
tiempo. Estos procesadores segmentados empezaron a fabricarse a partir
de principio de los sesenta. Hemos de decir que ésta es la técnica que se
emplea desde entonces para diseñar procesadores. Lo que ha variado es
el número de etapas y el número de instrucciones que puede haber en
34
MATEO VALERO CORTÉS
cada etapa. Al principio, el número de etapas era inferior a cinco y sólo se
podía entrar, como máximo una instrucción a ejecutar en cada ciclo. En la
actualidad, los procesadores más rápidos tales como el Power4 de IBM
tienen más de 20 etapas en el pipeline, pueden entrar hasta 8 instrucciones por ciclo y pueden estar ejecutando hasta 200 instrucciones al mismo
tiempo. Se denomina tiempo de ciclo del procesador a la velocidad a la
que se mueven las instrucciones entre las diferentes etapas del pipeline.
En la actualidad, hay procesadores como el Pentium4 que tienen unas frecuencias de reloj de 3 gigahercios, por lo que la velocidad de movimiento
entre etapas es de un tercio de nanosegundo aproximadamente.
La figura de la izquierda representa la cadena de montaje del Ford T, mientras que la de la derecha,
representa la estructura interna del pipeline del procesador Power4 de IBM. Se puede var la gran analogía
entre estos diseños.
Tal como hemos comentado anteriormente, los circuitos integrados han
permitido desde el año 1970, cuadruplicar la densidad de los circuitos cada tres años y por lo tanto el número de bits. Por otro lado, el tamaño de
las aplicaciones que ejecutaban los procesadores era cada vez mayor. Se
había inventado la multiprogramación, como técnica que permitía que varios programas pudieran estar compartiendo los recursos al mismo tiempo de forma que avanzaban conjuntamente sus ejecuciones.Todo ello hacía que la gestión de memoria se convirtiera en un gran problema. Para
resolver este tema, se propuso la técnica de memoria virtual como conjunto de técnicas software y hardware que permiten gestionar el espacio
de memoria principal de manera automática, haciendo que los programas
se puedan ejecutar en cualquier parte de la memoria física y haciendo
que la transferencia entre el disco y la memoria principal se haga de manera automática y bajo control del sistema operativo. Pues bien, de nuevo,
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
35
esta idea que ha sido fundamental para el desarrollo de los computadores
fue inventada en el año 1962 por el inglés Tom Kilburn, como parte de los
muchos avances que se ocasionaron en el desarrollo del computador
Atlas de la universidad de Manchester.
La memoria no sólo ocasionaba problemas de cómo gestionarla en el sentido de que pudiera ser asignara de manera inteligente y flexible a los diferentes programas. La memoria principal contiene las instrucciones y los datos de los programas. Hemos dicho que el procesador está construido
mediante una serie de etapas por donde pasan las instrucciones para ser
ejecutadas. Las primeras etapas leen las instrucciones y los datos operandos
y las últimas escriben los resultados en memoria. Hemos dicho que los procesadores actuales pueden entrar en el pipeline varias instrucciones en el
mismo ciclo y que por lo tanto, pueden estar ejecutando un gran número
de instrucciones al mismo tiempo, por lo que también es verdad que ello
lleva asociada la necesidad de leer y escribir en la memoria varias veces por
ciclo del procesador. Si esto no es posible, de nada serviría que las etapas
del procesador vayan a velocidades superiores al gigahercio, ya que éste debería estar esperando a que la memoria respondiera.
Desde los primeros tiempos, la memoria ha sido uno de los dos factores
que más ha limitado la velocidad real de los computadores. El otro, del
que hablaremos más adelante, han sido las instrucciones de control que
hay en los programas.Ya hemos comentado que el diseño de la memoria
era uno de los factores más importantes de los primeros computadores.
Por otra parte, los avances tecnológicos han complicado el problema durante los últimos 30 años, ya que el tiempo de acceso a las memorias se
ha mejorado solo un 7% anual. En cada momento, ha sido imposible diseñar una memoria grande y rápida que pudiera suministrar al procesador la
información que requiere en el mínimo tiempo posible. Ya hemos visto
que algunos de los primeros computadores tenían dos niveles de memoria. Uno era más rápido y estaba cerca del procesador y el otro, con mayor capacidad y más lento, estaba conectado al anterior. La comunicación
de información entre esos niveles era responsabilidad del programa. En el
año 1965, Maurice V. Wilkes da las primeras ideas para estructurar la memoria en una serie de niveles donde los niveles más bajos están cerca del
procesador, son rápidos, pero tienen poca información. Conforme se sube
de nivel, se tienen memorias con capacidades mayores pero con un ma-
36
MATEO VALERO CORTÉS
yor tiempo de acceso. Lo nuevo de la propuesta es que la gestión de la
transferencia de información entre niveles se podía hacer de manera automática. El hardware aprende cómo el programa se va ejecutando e intenta que en cada momento, el nivel más bajo y más rápido tenga la información que el procesador le va a solicitar en los próximos ciclos. Éste es el
concepto de la memoria caché, que ha sido y es fundamental para el desarrollo de los computadores. La diferencia de velocidad entre la memoria y
el procesador, siempre a favor de este último, hace que mucha de la investigación en arquitectura de computadores se centre en el desarrollo de técnicas que permitan a la memoria responder lo antes posible a las peticiones
del procesador. La memoria caché fue un primer paso. Sin embargo, se ha
dedicado y se continuará dedicando mucho esfuerzo al desarrollo de técnicas, denominadas de prebúsqueda, que intentan conocer o predecir las direcciones que va a lanzar a memoria el procesador, varios ciclos antes de
que ocurra. De esa forma, la jerarquía de memoria puede intentar traer
esos contenidos al nivel más rápido de la memoria para que el procesador
no tenga que esperar. Estas técnicas pueden ser gestionadas pòr el compilador, por el hardware o por ambos a la vez.
Tal como hemos dicho anteriormente, conforme el hardware era más barato, los fabricantes complicaban el contenido semántico o potencia de
las instrucciones del lenguaje máquina, dando lugar a los computadores
denominados CISC (Complex Instruction Set Computers). Esto tenía dos
efectos negativos además de que el hardware fuera más complejo. Por una
La figura de la izquierda es el procesador MIPS R2000 diseñado por John Hennessy. Fue el primer microprocesador tipo RISC en el mercado. También fue el primer microprocesador segmentado que podía ejecutar una instrucción por ciclo. Tenía 125.000 transistores y ejecutaba, en 1985, entre 5-8 millones de
instrucciones por segundo. En la figura de la derecha se representa el MIPS R-10000. Fue el primer microprocesador que ejecutaba fuera de orden hasta 4 instrucciones por ciclo. Tenía 6,8 millones de transistores y su frecuencia era de 200 MHz.
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
37
parte, se complicaba el realizar pipelines que se adaptaran bien a estas
complejidades ya que el tiempo de ejecución de cada una de las instrucciones podía ser muy diferente. Así pues, complicar la complejidad de las
instrucciones significaba complicar el diseño del pipeline y renunciar a aumentar el número de etapas y, lo que es lo mismo, la velocidad del procesador. Por otra parte, cada vez más se escribían los programas en un lenguaje de alto nivel. Esto hacía que los compiladores no fueran capaces de
utilizar estas instrucciones complejas de forma que para ellos, es como si
no existiesen. Todo ello hizo repensar la forma de definir el conjunto de
instrucciones de los procesadores y la forma de rentabilizar los avances
tecnológicos mediante el rediseño de los procesadores. Algunas empresas como IBM y Digital y algunas universidades como Berkeley y Stanford empezaron a marcar este cambio, a finales de los setenta y principio de los ochenta, mediante la propuesta de procesadores que se
denominaron RISC (Reduced Instruction Set Computers). Nuestro académico correspondiente John L. Hennessy desarrolló en Stanford uno
de los primeros microprocesadores RISC que se denominó MIPS y que
dio lugar luego a la empresa MIPS que fue comprada posteriormente
por Silicon Graphics. Además de la redefinición del lenguaje máquina tipo RISC, John hizo contribuciones muy importantes en el diseño y optimización del pipeline, así como en la generación de código por parte de
los compiladores para que el código generado hiciera uso eficiente del
hardware del procesador.
Las arquitecturas RISC dominaron la década de los ochenta. Durante este
tiempo, se aprovechó al máximo los avances tecnológicos del hardware. Uno
de los defectos de las arquitecturas RISC era que en su definición inicial, sólo
estaban pensadas para poder entrar una nueva instrucción al procesador en
cada ciclo. Este hecho limitaba la velocidad de ejecución. A finales de los
ochenta y principios de los noventa, se empiezan a diseñar procesadores que
se denominan superescalares. Son procesadores tipo RISC, pero que permiten entrar al pipeline, varias instrucciones por ciclo. Procesadores pioneros
de este tipo fueron los PA-RISC de Hewlett-Packard y los RS-6000 de IBM.
Con ellos comienza una década donde se intenta aumentar el número de
instrucciones que los procesadores son capaces de ejecutar por ciclo de
procesador. Como veremos más adelante, la limitación a este número, que es
inferior a 8, no la pone el procesador sino que la pone la jerarquía de memoria, ya comentada, y las instrucciones de salto.
38
MATEO VALERO CORTÉS
La segunda restricción fuerte a la velocidad del procesador la constituyen las instrucciones de salto condicional. En los programas más usados
en el mundo, existe una instrucción de salto condicional cada 6 o 7 instrucciones del programa. Eso quiere decir que hasta que no se ejecute una
instrucción de éstas no se puede saber cuál será la siguiente instrucción a
ejecutar. Este hecho es una restricción muy fuerte para un pipeline ya que
lo va a frenar. Pues bien, desde ya los primeros diseños de computadores,
se incorporaron al procesador, una serie de circuitos hardware que son capaces de aprender acerca de cómo se comportan los saltos. Después usan
este conocimiento para predecir cuál va a ser la decisión del salto en cuanto a si va a ser tomado o no. Este circuito, denominado predictor de saltos,
predice el camino que seguirá el programa de forma que el hardware continúa ejecutando instrucciones de manera especulativa por ese camino. En
procesadores como el ya nombrado Power4, pueden estar dentro del pipeline alrededor de 25 instrucciones de salto que han sido predichas. Lógicamente, cuando las instrucciones de salto se ejecutan, se sabe el resultado
real y se comprueba con el que se predijo. Si no coinciden, el procesador
ha de volver a reejecutar las instrucciones a partir de la instrucción de salto que falló. En la actualidad, los predictores de salto son capaces de predecir correctamente más del 96% de las veces. Cualquier mejora en la tasa
de aciertos en estos predictores, se traduce automáticamente en una mejora en la velocidad de ejecución de los programas.
Supercomputadores
Desde principios de los sesenta, la industria militar apoya la construcción de procesadores más potentes que los comerciales ejecutando aplicaciones numéricas y de ingeniería. Aparecen los primeros supercomputadores, llamados así por ser los computadores más rápidos en cada
momento. Durante muchos años, se diseñaron a partir de procesadores
específicos que usaban la tecnología más rápida del momento. Aparecen
los fabricantes tales como Control Data, Cray e IBM. Estas máquinas poseen una potencia entre 100 y 1.000 veces la de las máquinas convencionales. Poco a poco, son empleadas también por la industria. Aplicaciones
tales como el diseño de coches, aviones, predicción del tiempo o diseño
de nuevos productos farmacéuticos, se benefician enormemente de estos
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
39
supercomputadores. En el año 1976, Seymour Cray vende el primer computador Cray-1. Durante muchos años, los procesadores vectoriales de
Cray, IBM, CDC, Fujitsu, Hitachi y NEC son los más rápidos del mundo. Se
empiezan también a construir sistemas multiprocesadores basados en
esos procesadores específicos. Las instalaciones cuestan muchos millones de dólares debido a que los diseños son casi a medida y a que se
venden pocos.
A partir de los ochenta, se empiezan a comercializar microprocesadores
con una potencia considerable. Por otra parte, la ley de Moore permite
que cada vez los sistemas informáticos ocupen menos tamaño y sean
económicos. En algunos centros de investigación se empiezan a montar
sistemas multiprocesadores donde los procesadores son de los que se
emplean en los computadores personales. La idea es usar el paralelismo
para lograr que muchos procesadores baratos, trabajando conjuntamente,
resuelvan los problemas en un tiempo menor que el necesitado por pocos procesadores rápidos, pero muy caros. Poco a poco, el gap entre ambos tipos de sistemas se hace cada vez más pequeño. Los fabricantes de
procesadores vectoriales empiezan a reducir las ventas y casi desaparecen
del mercado. En el día de hoy, sólo los fabricantes Cray y NEC tienen supercomputadores basados en el diseño de procesadores vectoriales propios de ellos. La gran mayoría de supercomputadores se diseñan en la actualidad, a partir de procesadores convencionales. John L. Hennesy fué
pionero en el diseño de estos sistemas multiprocesadores que se han denominado con memoria compartida, tales como el Origin de SGI.
En la figura de la izquierda se ve un supercomputador Cray con su forma característica de sofa en la parte
inferior. A la derecha, el IBM ASCI Red, construido a base de 5808 procesadores convencionales
PowerPC de IBM
40
MATEO VALERO CORTÉS
Machine
Year
Tc MHz
Mflops/CPU
#CPU’s
Cray-1
1976
80
160
1
640 MB/s
Cray-2
1982
243
486
4 or 8
1.9 GB/s
Cray-C90
1992
243
970
16
Cray-T90
1994
450
1800
32
Cray-XMP 1982
Cray-YMP 1989
Cray-J90
Cray-SV1
Cray-X1
1995
1998
2002
105
167
100
500
800
210
334
200
2000
12.800
MemoryBW/CPU LoadLatency(ns)
2
8
2.5 GB/s
123
4 GB/s
100
12 GB/s
32
1.6 GB/s
32
6.4 GB/s
4.096
150
200
95
340
21 GB/s
70/116
38 GB/s
325
380
En esta tabla se refleja las características de las máquinas Cray, desde el Cray-1 del año 1976 hasta las máquinas actuales. La tercera columna indica el tiempo de ciclo de los procesadores en MHz La cuarta columna la velocidad de cada CPU, y la siguiente el número máximo de CPUs Las dos últimas dan información acerca del ancho de banda y la latencia con memoria.
Evolución de los microprocesadores
Tal como hemos indicado anteriormente, en el año 1971, Intel produce
el primer microprocesador, el Intel 4004. Era un dispositivo de 2.300
transistores que usaba números decimales representados en código
BCD que necesita 4 bits por dígito decimal.Todas las unidades aritméticas estaban orientadas a este tipo de representación y el procesador en
sí estaba diseñado para convertirse en la parte fundamental de una calculadora digital de mano.
Enseguida, el uso masivo de estos procesadores junto con los avances
tecnológicos, hace que los diseños se mejoren a una gran velocidad.
De la lógica inicial de 4 bits, se pasa a lógica de 8, 16, 32 y 64 bits, esta última hace muy pocos años. Conforme se incrementa la velocidad
de estos procesadores, se van dedicando a muchas otras funciones.
Su influencia en la sociedad se empieza a notar. Aparecen los primeros computadores personales hace veinte años. También aparece Internet. Su enorme mercado hace que la competencia industrial sea
muy grande. Los enormes beneficios de las empresas se dedican a
mejorar los productos.
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
Year/Month
Clock=1/tc.
Transistors
Micras
1971/11
1974/04
1978/06
1982/02
1989/04
1992/03
1993/03
1995/11
1998
2000/01
2000/09
2002/10
2002/11
108 KHz.
2 MHz.
10 MHz.
12 MHz.
25 MHz.
100 MHz.
60 MHz.
200 MHz.
450 MHz.
1000 MHz.
1400 MHz.
2500 MHz.
1000 MHz.
2300
6000
29000
0.13 m.
1.2 m.
1.6 m.
3.1 m.
5.5 m.
7.5 m.
28 m.
42 m.
42 m.
221 m.
10
6
3
1.50
1
0.8
0.8
0.35
0.25
0.18
0.18
0.13
0.18
14004
18080
18086
180286
1486DX
Intel DX2
Pentium
Pentium Pro
Pentium II
Pentium III
P4
P4
Itanium 2
41
Evolución de los microprocesadores de Intel.
En la tabla anterior se reflejan estos grandes cambios a través de algunos
de los procesadores de Intel. Como podemos ver, el número de transistores ha pasado a ser de 2.300 en el Intel 4004 a 42 millones en el Pentium 4
del año 2000. La frecuencia del reloj del procesador también ha pasado
de alrededor de 100 kHz a los 3 GHz de los Pentium actuales, es decir, se
ha multiplicado por casi 30.000. En cuanto al proceso tecnológico, la ley
de Moore ha permitido pasar de diseñar transistores con una tecnología
de 10 micras a los actuales de 130 nanos, con lo que la densidad de integración se ha multiplicado por más de 6.000.
Procesor
Clock Rate
Cache L/D/L2/L3
Issue Rate
Pipeline Stages
Out of Order
Rename Regs
BHT Entries
TLB Entries
Memory B/W
Package
IC Process
Die Size
Transistors
Est Die Cost
Power (Max)
Avaliability
Alpha 21264C
AMD Athlon
HP PA-870
IBM Power4
1,001 MHz
64K/64K
4 issue
7/9 stages
80 instr
48/41
4K x 9-bit
128/128
8 GB/s
CPGA-588
0,18µ 6M
115 mm2
15,4 million
$ 28*
95 W*
3Q01
1,800 MHz
64K/64K/256K
3 x 86 instr
9/11 stages
72 ROPs
36/36
4K x 2-bit
280/288
2,1 GB/s
PGA-462
0,13µ 6M
80 mm2
37,5 million
$ 16*
67 W(MTP)
2Q02
750 MHz
750K/1,5M
4 issue
7/9 stages
56 instr
56 total
2K x 2-bit
240 unified
1,54 GB/s
LGA-544
0,18µ 7M
304 mm2
130 million
$ 96*
75 W*
4Q01
1.300 MHz
64K/32K/1,5Mb
8 issue
12/17 stages
200 instr
48/40
3 x 16K x 1-bit
1,024 unified
12,8 GB/s
MCM
0,18µ 7M
400 mm2**
174 million**
$ 144**
135 W**
4Q01
Intel Itanium
Intel Itanium 2
800 MHz
1,000 MHz
16K/16K/96K 16K/16K/256K/3M
6 issue
8 issue
10 stages
8 stages
None
None
328 total
328 total
512 x 2-bit
512 x 2-bit
64I/32L1D/96L2D 64I/32L1D/96L2D
2,1 GB/s
6,4 GB/s
PAC-418
mPGA-700
0,18µ 6M
0,18µ 6M
300 mm2*
400 mm2*
25 million
221 million
$ 116*
$ 139*
130 W
130 W
2Q01
3Q02
Intel Xeon
MIPS R14000
Sun Ultra-III
2,530 MHz
12K/8K/512K
3 ROPs
22/24 stages
126 ROPs
128 total
4K x 2-bit
128I/64E
3,2 GB/s
PGA-423
0,13µ 6M
131 mm2
55 million
$ 23*
59 W(TDP)
2Q02
600 MHz
32K/32K
4 issue
6 stages
48 instr
32/32
2K x 2-bit
64 unified
539 MB/s
CPGA-527
0,25µ 4M
204 mm2
7,2 million
$ 76*
30 W*
1Q02
1,050 MHz
32K/64K
4 issue
14/15 stages
None
None
16K x 2-bit
128I/512D
8,4 GB/s
FC-LGA 1368
0,15µ 7M
210 mm2
29 million
$ 72*
75 W*
1Q02
Características de los microprocesadores más potentes del mundo en Octubre del 2002.
42
MATEO VALERO CORTÉS
En la actualidad existen una gran variedad de microprocesadores. Cada
unos pocos meses, salen tablas que describen las características más importantes y muestran las velocidades de los procesadores ejecutando una
serie de programas. En la tabla anterior se muestra la última actualización de
la tabla que corresponde a octubre del 2002. Pueden identificarse los procesadores, junto con sus velocidades. Indican la fotografía en un momento dado, ya que, por ejemplo, la velocidad de un mismo tipo de procesador puede
variar con una frecuencia mayor que la de la actualización de la tabla. Por
ejemplo, el Xeon, variante basada en el Pentium4 ya tiene relojes superiores
a 3 GHz, y el Power4 de IBM, ya tiene versiones que van a 2 GHz. En la segunda línea podemos ver los niveles de la jerarquía de memoria así como el
tamaño de cada uno de los niveles. Por ejemplo, el AMD Athlon, que es un
procesador compatible con los Intel, tiene un primer nivel de memoria cache
de 64 Kbytes para instrucciones y de 64 kbytes para datos, junto con un segundo nivel de caché integrada de instrucciones y de datos de 256 Kbytes.
Todos estos niveles de memoria se encuentran dentro del mismo chip con
el procesador. La línea de Memory B/W, indica la velocidad de transmisión de
información entre el último nivel de memoria caché y la memoria principal.
En el caso del Athlon, esa velocidad o ancho de banda es de 2,1 Gbytes/s. La
tercera línea indica el número de instrucciones que pueden entrar por ciclo
en el pipeline del procesador. El Power4 de IBM, con 8 instrucciones, es el
mayor. Podemos ver también el número de etapas del pipeline que van entre
6 y 24. En general, un mayor número de etapas permite un uso de un reloj
más rápido. Otras características importantes son el número de conexiones
que tienen los chips, que son más de 1.000 en algunos casos, la tecnología de
fabricación, donde la más avanzada en los procesadores de la tabla es la de
130 nanos, el tamaño del chip, que en los casos del IBM Power4 y del Intel
Itanium2 es de 4 centímetros cuadrados, y el número de transistores que sobrepasa los 220 millones en el Itanium2 de Intel . Por otra parte, y como
volveremos al tema, diremos que en algunos procesadores, la potencia disipada alcanza valores superiores a los 135 vatios .
Tecnología del futuro
Ya hemos hablado acerca de la ley de Moore que ha estado presente durante los últimos cuarenta años. ¿Qué pasará en el futuro?. Existe una asociación denominada SIA (Semiconductor Industry Association) que de
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
43
tanto en tanto hace unas previsiones acerca de las características de la
tecnología del CMOS en el futuro. Sus indicaciones siempre han sido conservadoras en el sentido de que siempre la realidad tecnológica ha ido
por delante de las previsiones. Como vemos, las predicciones indican que
para el año 2014, la tecnología que estará disponible para realizar procesadores y memorias será de 35 nanos, lo que llevaría consigo a aumentar
Year
1999
2002
2005
2008
2011
2014
Feature Size (nm)
Logic trans/cm2
Cost/trans (mc)
#pads/chip
Clock (Mhz)
Chip size (mm2)
Wririn levels
Power supply (V)
High-perf pow (W)
Batter pow (W)
180
6.2M
1.735
1867
1250
340
6-7
1.8
90
1.4
130
18M
0.580
2553
2100
430
7
1.5
130
2
100
39M
0.255
3492
3500
520
7-8
1.2
160
2.4
70
84M
0.110
4776
6000
620
8-9
0.9
170
2.8
50
180M
0.049
6532
10000
750
9
0.6
175
3.2
35
390M
0.022
8935
16900
900
10
0.5
183
3.7
Previsiones tecnológicas de la ISA.
la densidad actual de los transistores en el chip en más de 20 veces. El número de conexiones en los chips crecerá hasta casi llegar a las 10.000, con
lo que se aumentará la capacidad de conexión entre chips, y por lo tanto el
ancho de banda de las comunicaciones. Hay también unas predicciones indicando que la frecuencia del reloj del procesador podría ser de casi 17 GHz.
El tamaño de los chips crecerá hasta llegar a los 9 centímetros cuadrados y
a los transistores se les hará trabajar a un voltaje de 0,5 voltios. Por otra parte, los chips deberían ser capaces de disipar el calor producido por los casi
200 watios que necesitarán consumir. Así pues, la ley de Moore va a continuar durante los próximos años aunque con una tendencia en el crecimiento menor que la experimentada durante estos últimos.
No todo es la ley de Moore
Aunque parece ser que la tendencia marcada por la ley de Moore podrá
continuar durante unos cuantos años más, es posible que nos encontre-
44
MATEO VALERO CORTÉS
mos con algunos problemas adicionales que, si no los resolvemos, pueden
hacer inviables los desarrollos de los futuros procesadores. Uno de ellos
es el enorme coste de las factorías donde se fabrican estos circuitos avanzados. Hay otra especie de ley de Moore no escrita que indica que el coste
de estas factorías se multiplica cada tres años. Las más recientes han costado
más de 2.000 millones de euros y se predice que para tecnologías por debajo de los 100 nanos, el coste puede llegar a ser superior a 10.000 millones de
euros. A pesar de estos grandes costes, las ganancias pueden ser astronómicas si se logra vender una gran cantidad de estos chips. Como ejemplo
orientativo, los lingotes de los que se extraen las obleas suelen pesar unos
100 kilogramos y costar alrededor de 12.000 euros. De allí se pueden extraer alrededor de 600 obleas y de cada oblea unos 150 a 200 chips del más alto nivel de integración. En el caso de los microprocesadores, el precio en el
mercado de esos 100.000 microprocesadores puede ser de 30 millones de
euros que equivale a decir que el kilogramo de chip va a 300.000 euros o
que el metro cuadrado de chip va a 1,2 millones de euros.
Para llegar a esos niveles de integración de 35 nanos (menos del doble de
la anchura del ADN), necesitamos nuevas técnicas para grabar los componentes dentro de los circuitos. Actualmente se utilizan rayos láser. En el
futuro, será necesario desarrollar técnicas basadas en rayos X o en rayos
de electrones. Los rayos X tienen una longitud de onda menor que los
hace muy válidos, pero su alta energía puede dañar al silicio. Además, son
difíciles de enfocar y son muy penetrantes. Los rayos de electrones, también válidos para trabajar con estas separaciones tan pequeñas, tienen el
inconveniente de que son lentos ya que sólo permitirían grabar las pistas
de manera secuencial.Tal vez la solución estará en técnicas híbridas basadas en rayos X y rayos de electrones.
A partir de ese nivel tan extraordinario de integración, empezarán a ponerse de manifiesto una serie de fenómenos cuánticos que pueden imposibilitar el avance hacia la miniaturización.Tengamos en cuenta que la separación entre átomos de silicio es de alrededor de 0,5 nanómetros
equivalente a decir que en 0,035 micras pueden caber alineados solo 70
átomos de silicio. A esas distancias y menores, se espera que la mecánica
cuántica tome el testigo y permita el diseño de procesadores y memorias
con unas capacidades difíciles de imaginar hoy en día. Sin embargo, no se
espera que esto ocurra antes de 25 años.
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
45
Otro aspecto muy importante es que estamos construyendo circuitos realmente complejos. Cada vez es más difícil asegurar que el circuito va a funcionar correctamente. Esto se traduce en que el mayor porcentaje de ingenieros que fabrican el chip están dedicados a las tareas de comprobar el
correcto funcionamiento del procesador. Necesitamos mejores herramientas de diseño y mejores patrones de test. En caso contrario, puede ser que
tengamos un límite consecuencia de la complejidad de los circuitos.
Y por último, hablaremos del problema derivado de la potencia que consumen los circuitos con la consiguiente producción de calor y la necesidad de
disipar este calor para que los circuitos no se quemen. La potencia que necesita un procesador cuando está realizando sus funciones lógicas está relacionada de manera directamente proporcional al número de circuitos o
puertas lógicas que posee, junto a su nivel de actividad y a la frecuencia a la
que funciona, y de manera inversamente proporcional al cuadrado de la
tensión de alimentación de los transistores. Esto hace que el Pentium-4 consume 55 vatios cuando su frecuencia de reloj es de 1,5 gigahercios, mientras
que el mismo procesador a 3 gigahercios consumiría hasta el doble, es decir, 110 vatios, lo que constituye un valor muy alto de consumo.
Las 18.000 válvulas del sistema ENIAC consumían una potencia de 140 kilovatios, por lo que se necesitaba aire acondicionado para enfriar los circuitos. Los transistores consumen mucho menos, tanto menos cuanto
más pequeños, pero cada vez ponemos más por unidad de superficie, en
chips más grandes, y cada vez hacemos funcionar los procesadores a una
frecuencia más alta. Desde el ENIAC hasta ahora, la potencia necesaria
para efectuar una operación lógica ha disminuido por un factor aproximado a 10 elevado a 12 veces. El primer microprocesador, Intel-4004, del
año 1971, tenía 2.300 transistores, que estaban alimentados a 12 voltios, el
reloj era de 108 kilohercios y su consumo mucho menor de 1 vatio. En
cambio, el Pentium-4 actual tiene 42 millones de transistores alimentados
a 1,75 voltios, con un reloj de 2 gigahercios y un consumo superior a los
60 vatios, equivalente a casi 30 vatios por centímetro cuadrado.
Los chips se quemarían si no fuera porque se aplican técnicas sofisticadas
de control de la actividad interna, así como disipadores de calor y encapsulados muy complejos y caros. Hace unos años que la densidad de potencia consumida por un chip es superior a la de un plato caliente y nos
46
MATEO VALERO CORTÉS
vamos acercando a densidades muy parecidas a las que puede haber en
las barras generadoras de calor en las centrales nucleares. Por ejemplo, en
la central nuclear de Ascó, la densidad es de 64 vatios por cm2, mientras
en algunos microprocesadores actuales la densidad de potencia es ya superior a los 30 vatios por cm2. Realmente, éste es un problema claro y
una restricción más en el diseño de los procesadores de altas prestaciones del futuro. En la actualidad, existe una intensa investigación orientada a
proponer técnicas para reducir esa potencia consumida.
Nuevas y futuras arquitecturas
En estos momentos, parece claro que la ley de Moore va a continuar durante al menos 15 años. Esto va a hacer que la tecnología CMOS continuará siendo la usada prioritariamente para fabricar los microprocesadores y memorias durante estos años. Por otra parte, no parece que haya
una alternativa razonable para construir computadores de forma diferente a como se fabrican ahora. Eso no quiere decir que no haya temas de
investigación orientados a mejorar aún más estos dispositivos. En el apartado anterior hemos descrito algunos retos asociados a la tecnología y a
la complejidad de los procesadores. Hay otros asociados a cómo mejorar
las arquitecturas presentes para poder utilizar al máximo los recursos
hardware que, tal como hemos dicho, van a continuar siendo mejorados
ostensiblemente durante los próximos años.
La gran mayoría de los computadores actuales pertenecen al grupo de
procesadores superescalares tipo RISC, que además son capaces de ejecutar las instrucciones en un orden diferente al que han entrado en el pipeline del procesador. Por decirlo de una manera sencilla, una instrucción
que ha entrado al pipeline, puede ser que no pueda ser ejecutada porque
le falta algún operando que, a su vez, tiene que ser calculado por otra instrucción anterior de la que depende. En la tabla comparativa anterior, hay
una línea que pone “Out of Order”. Pues bien, podemos ver que el procesador de Sun (última columna) no posee esa particularidad, siendo un
procesador superescalar en orden. Hay otros dos, los Itanium, que no ejecutan las instrucciones fuera de orden, pero que pertenecen a otro tipo
de procesadores denominados VLIW y que describiremos posteriormente. En los procesadores que ejecutan las instrucciones fuera de orden, ta-
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
47
les como el IBM Power4 y el Intel Pentium4, el hardware es capaz de, dinámicamente, detectar qué instrucciones posteriores a las que tienen problemas no dependen de éstas y entonces, las ejecutan antes que las anteriores. Este mecanismo permite que el procesador no pare de ejecutar
instrucciones cuando alguna instrucción tiene problemas, por ejemplo, una
instrucción que lee un dato de memoria para ponerlo en un registro. La
desventaja es que el hardware necesario para implementar esta política de
ejecución fuera de orden, junto con otros mecanismos asociados para detectar y eliminar las dependencias no verdaderas entre instrucciones, es
realmente caro y complejo y parece poco escalable en el sentido de que
esta complejidad va en contra de las tecnologías futuras. Por otra parte,
aunque el hardware de los procesadores está preparado para poder iniciar la ejecución de hasta 8 instrucciones como en el IBM Power4, la realidad es un poco descorazonadora. El número de instrucciones promedio
que los procesadores realmente ejecutan depende del tipo de procesador y del tipo de aplicaciones. En general, cuando los procesadores ejecutan aplicaciones numéricas, el número de instrucciones promedio puede
estar alrededor de 2, pero cuando estos procesadores ejecutan aplicaciones de tipo bases de datos, este número cae hasta 1 instrucción ejecutada
cada 4 o 5 ciclos del procesador, es decir, la eficiencia de los procesadores
en este caso puede ser inferior al 5% de la máxima para la que el procesador se diseñó. La baja eficiencia de los procesadores es debido, tal como hemos comentado anteriormente, a los problemas de latencia de la
jerarquía de memoria y a las instrucciones de salto. Estos dos problemas
hacen que no sea muy rentable diseñar procesadores superescalares que
ejecutan las instrucciones fuera de orden, capaces de entrar más de 8 instrucciones al pipeline en cada ciclo.
Desde hace varios años, se viene investigando en técnicas alternativas a
los procesadores fuera de orden. La idea es que el compilador genere el
código máquina de forma que identifique qué instrucciones podrían ser
lanzadas a ejecutar en el mismo ciclo, ya que tienen todos sus datos disponibles y además, no existen dependencias entre estas instrucciones. A
estos procesadores se les denomina VLIW (Very Long Instruction Word) para reflejar esa idea de que varias instrucciones independientes forman una
macroinstrucción. Este tipo de procesamiento se materializó hace muchos
años para el diseño de procesadores multimedia y en general procesadores embedded (empotrados). Desde hace casi diez años, la idea fue acep-
48
MATEO VALERO CORTÉS
tada como válida por Hewlett-Packard e Intel, para también diseñar
procesadores de propósito general de muy altas prestaciones y que
compitieran con los más rápidos del mundo. Desde hace dos años, ambas compañías han introducido en el mercado la familia de procesadores Itanium, de los que hay dos de ellos reflejados en la tabla comparativa que hemos descrito anteriormente. Este tipo de procesadores son
hoy en día los más rápidos ejecutando aplicaciones numéricas, aunque
existe una gran controversia en el mundo de la arquitectura de computadores acerca del futuro de esta nueva filosofía de diseño de los
procesadores en los que el compilador y la arquitectura deben de colaborar muy estrechamente para lograr hacer pipelines más sencillos y
rápidos que, en definitiva, pueden llevar a procesadores más rápidos
que los actuales.
Tal como hemos dicho, los procesadores superescalares actuales fuera
de orden tienen un hardware interno que sería capaz de ejecutar entre
4 y 8 instrucciones por ciclo. Sin embargo, los problemas con la lentitud
de la memoria y la no perfecta predicción de las instrucciones de salto,
hace que su eficiencia sea mucho menor. Desde hace varios años, se está investigando en procesadores que puedan estar ejecutando al mismo
tiempo varios programas (Threads) de forma que se pueda utilizar el
hardware al máximo. Se les denomina procesadores Multithreaded. La investigación en la academia y empresa motivó a varias empresas a intentar llevar la idea al silicio. En estos momentos, ya podemos decir que el
reciente procesador comercial Xeon de Intel, es un procesador que
puede ejecutar 2 threads al mismo tiempo. No hay ninguna duda de que
las otras compañías también tienen versiones multithreaded de sus procesadores y que aparecerán en el mercado muy pronto. La tendencia
será aumentar el número de threads para utilizar al máximo el hardware,
hasta un límite en el cual, la competición por los recursos tales como la
jerarquía de memoria haga que aumentar los threads signifique disminuir
la velocidad global del procesador.
Un procesador multithreaded es capaz de ejecutar varios threads en paralelo. Si cada thread corresponde a un programa independiente, es como si tuviéramos un sistema multiprogramado clásico donde varios procesos o programas se ejecutan al mismo tiempo. Esa situación puede ser
muy frecuente hasta en sistemas como los computadores personales.
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
49
Sin embargo, existe una gran investigación actual orientada a encontrar
técnicas que permitan, a nivel de compilación, en tiempo de ejecución
del programa o en técnicas combinadas, generar esos threads a partir de
un único programa. No hay ninguna duda en decir que el reto es difícil,
pero que resultados positivos en esa línea redundarían, directamente, en
un aumento de la velocidad de ejecución de los programas. Hemos de
remarcar que esta última técnica es una de las que permiten aumentar,
de manera inteligente, el número de instrucciones pertenecientes a un
mismo programa, que se ejecutan por ciclo de procesador. Hay otros
campos muy activos para aumentar este número. Por ejemplo, desde
hace seis años se está investigando en técnicas que intentan descubrir,
dinámicamente, el resultado de las instrucciones antes de que se hayan
ejecutado. Aunque parece un poco magia, los programas tienen estructuras repetitivas donde el hardware puede aprender conforme se va ejecutando el programa. Esta repetitividad hizo posible que el concepto de
la memoria caché fuera muy útil, y que se pudiera pensar en predecir el
resultado de las instrucciones de salto.
A la izquierda se ve el edificio donde está el supercomputador más grande del mundo, el EARTH Simulator.
Ocupa una superficie de 50 por 70 metros. A la derecha, una foto de algunos de los componentes del
computador, que costa de más de 50.00 procesadores vectoriales.
Tal como dicen las predicciones de la ISA, dentro de diez años se podrán construir chips con miles de millones de transistores. Los actuales
ya tienen más de 200 millones de transistores. Un aprovechamiento natural de estos transistores es aumentar la complejidad del procesador y
poner mucha más memoria dentro del chip para reducir los efectos negativos de la jerarquía de memoria. Otro muy natural también, es usar
50
MATEO VALERO CORTÉS
este número extraordinario de transistores para implementar chips que
posean más de un procesador y por lo tanto, podamos usar técnicas software de paralelismo para hacer que estos procesadores trabajen en la
misma tarea. En la actualidad, IBM tiene en el mercado un chip que contiene dos procesadores Power4. Esta tendencia continuará de forma que en
lo sucesivo será normal tener chips con un número reducido pero razonable de procesadores.
Más allá de la ley de Moore
Los avances en la integración de transistores en un chip han permitido durante los últimos cuarenta años que su número se haya duplicado cada 18 meses. Estos avances tecnológicos han permitido a su vez,
al arquitecto de computadores, diseñar pipelines agresivos que han sido optimizados para que junto con la ayuda de los compiladores, se
haya duplicado también la velocidad de los procesadores en el mismo
intervalo de tiempo. Duplicar cada 18 meses, y hacerlo durante muchos años, ha llevado a situaciones tales como que cualquier procesador de nuestros ordenadores personales sea más potente que todos
los computadores que había en el mundo cuando el hombre llegó a
la Luna. Sin embargo, esta tendencia no puede durar muchos años
más tal como hemos indicado anteriormente. Se sabe que la ley de
Moore tiene su fecha de caducidad en un tiempo no muy lejano e inferior a 25 años. A par tir de ahí, la tecnología que ha dominado la fabricación de procesadores durante los últimos años habrá llegado a
su fín en cuanto a permitir integrar más y más transistores por unidad
de superficie. Nos dejará una historia de máquinas que han sido las
que más han evolucionado en menos tiempo y que a su vez, han tenido la mayor influencia en el avance de la humanidad. Cuando esto
A la izquierda, el chip de IBM,
donde se ven dos procesadores
idénticos IBM Power4, en la parte
superior de la memoria, junto con las
memorias caché de instrucciones y de
datos de los niveles 1 y 2 de la
jerarquía. A la derecha, una oblea de
silicio de donde se obtienen los chips
anteriores.
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
51
ocurra, los procesadores serán capaces de ejecutar las aplicaciones a
una velocidad increíble. Satisfarán con un solo procesador, la mayoría
de las necesidades de cálculo de la mayoría de los humanos. Este poder de miniaturización ha permitido fabricar computadores con los
que jamás se había soñado pocos años atrás. Durante los próximos
25 años, la tendencia continuará. Por otra par te, las velocidades para
las comunicaciones de cualquier tipo han seguido la misma tendencia.
La unión de ambas técnicas permitirá la existencia de computadores
minúsculos y potentísimos conectados a grandes velocidades. Cualquiera de los millones de objetos que pueblan el planeta, podrán ser
dotados de una capacidad de decisión y comunicación entre ellos que
cambiarán totalmente la manera en que vivimos. La persona humana
no escapará a este fenómeno. Nuestros cuerpos contendrán externamente un cier to número de procesadores que nos harán relacionarnos con el entorno próximo y lejano de manera muy distinta a la limitada capacidad actual.
Pero no sólo existe la posibilidad de tener sólo un procesador ejecutando los programas. Desde el comienzo de los computadores, se tenía claro que la tecnología permitiría algún día construir sistemas que
tuvieran varios procesadores de forma que se pudieran programar
para que todos ellos ejecutaran par tes de un mismo programa y por
lo tanto, se aumentara la velocidad de cálculo. A nivel práctico, hace
más de 30 años que se empezaron a construir este tipo de máquinas,
para resolver aplicaciones provenientes de aplicaciones militares y de
la ingeniería. Actualmente, existen máquinas que contienen más de
10.000 procesadores y se están diseñando otras, como el computador Blue Gene de IBM, que van a tener 1 millón de procesadores y
que va a superar la velocidad del Petaflop/s, es decir, más de 10 elevado a 15 operaciones sobre números reales codificados en 64 o 128
bits. La enorme potencia de este computador se dedicará a simular
cómo se pliegan las proteinas. Si somos capaces de que un millón de
procesadores trabajen 1 millón de veces más rápido que uno, podríamos decir que es como si la ley de Moore hubiera sido válida durante 30 años más. Para ello, hemos de pensar que 30 años es 20 veces
18 meses que es el tiempo que se necesita para duplicar la velocidad
de un procesador y que 2 elevado a 20 es 1 millón aproximadamente. Las técnicas de paralelismo se han servido de la ley de Moore pa-
52
MATEO VALERO CORTÉS
ra potenciarla aún más. El computador más rápido en la actualidad es
un sistema japonés que posee 5.120 procesadores vectoriales que
van cada uno, a una velocidad de 8 Gigaflops/s. En total, van a una velocidad punta de más de 40 Teraflops/s. Se dedica a ejecutar un modelo que simula la tierra, mar y aire a nivel global. Estos supercomputadores permiten ahora ejecutar en 5 segundos, programas que hace
20 años necesitaban un año entero. Como se ve, el paralelismo ha sido un factor amplificador de la ley de Moore.
Antes de acabar, queremos hacer alguna mención a trabajos de investigación orientados a mejorar las máquinas actuales mediante el uso
de tecnologías diferentes o a hacer algunos tipos de cálculo usando
otras técnicas de computación. Al primer grupo per tenecen trabajos
tales como los que proponen el uso de moléculas para implementar
la memoria de los procesadores. Anteriormente hemos comentado
que los discos actuales usan técnicas de grabación que permiten obtener densidades que en la actualidad están alrededor de 30 gigabits
por cada pulgada al cuadrado. Se espera que una mejora de estas técnicas permitan obtener densidades cercanas a los 100 gigabits por
pulgada al cuadrado, que es unas tres veces más que en la actualidad.
También se está trabajando en técnicas de holografía que permitan
aumentar esas densidades hasta llegar a entre 100 y 10.000 gigabits
por pulgada al cuadrado. Pues bien, en julio de 1999 apareció en
Science una publicación que demostraba que moléculas como la Rotaxane podían ser usadas para ser grabadas como las memorias de
sólo lectura. El trabajo había sido realizado por investigadores de
UCLA y de Hewlett-Packard. En la misma revista y en diciembre del
mismo año, investigadores de Rice y Yale habían mejorado el diseño
anterior y permitían que la molécula pudiera estar en dos estados diferentes, por lo que se puede implementar el concepto de memoria
de un bit de manera análoga a como se realiza ahora con la tecnología electrónica. Tengamos en cuenta que son trabajos preliminares y
que queda muchísimo para saber si será factible o no usar las moléculas para memorizar bits. Si eso se consigue, tendremos sistemas de
memorización que permitirían unas densidades de integración un millón de veces superiores a las actuales. También se está intentando
usar esta tecnología para fabricar puer tas lógicas, multiplicadores y
osciladores.
LOS COMPUTADORES, ESOS LOCOS C ACHARROS
53
A la izquierda, una representación de la
molécula Rotaxane. A la derecha, una
molécula de ADN.
A veces se habla de computadores que podrían hacerse usando el ADN.
Hay un gran número de investigaciones en este campo. La molécula de
ADN es estable, permite replicación y una serie de operaciones básicas que
la hacen apta para realizar algún tipo de computaciones. Existen técnicas para separar, cortar, unir, replicar y encadenar hebras de ADN. Con todas estas
propiedades, L. Adleman demostró en 1994 que se podía programar y resolver, usando ADN, el problema de optimización denominado el del viajante de comercio. En su enunciado más sencillo, se puede ver el problema como que dadas n ciudades y un coste para ir entre ellas, hay que encontrar el
camino que permite visitar todas ellas una vez con la condición de que el
coste sea mínimo. Éste es un problema que tiene una complejidad muy
grande conforme aumentamos el número de ciudades a visitar. Una programación y solución usando el ADN, permitió un paralelismo enorme y resolver el problema para casi cualquier número de ciudades. Indudablemente, la
investigación en este campo es muy importante y parece ser que se podrán
llegar a resolver algunos pocos problemas de manera más eficiente que
usando las técnicas de paralelismo de los computadores actuales. Nadie hoy
en día ve un futuro en el que estas técnicas sustituyan a las actuales.
Por último, hemos comentado al hablar del nivel de integración que al
reducir el número de átomos que se emplean para fabricar transistores, se llegará a un tamaño en el que la física cuántica tomará el relevo
para fabricar chips. Hay algunos investigadores que piensan que se podrá seguir fabricando transistores usando muy pocos átomos. Los estudios más optimistas recientes, indican que, como mínimo, se necesitarán
entre 5 y 10 átomos en una dimensión, para poder fabricar transistores. Esto equivaldría a una precisión de entre 2,5 y 5 nanómetros, todavía muy alejada del actual valor de 130. Parece ser que la única posibilidad futura de realizar computadores superrápidos, totalmente distintos
54
MATEO VALERO CORTÉS
a los actuales, está en el campo de la Mecánica Cuántica. Frente a los
actuales computadores que se basan en la lógica binaria, los futuros
computadores cuánticos se basarán en una lógica basada en la incertidumbre cuántica. De hecho, los dos estados que definen el bit cuántico, denominado qubit, son combinaciones del 1 y del 0 respectivamente. Los futuristas computadores cuánticos obtendrán sus
beneficios de propiedades cuánticas tales como incertidumbre, superposición y coherencia. En la actualidad, ya se conoce la enorme potencia de estos computadores para factorizar grandes números con el
objetivo de descifrar códigos, realizar comunicaciones con una seguridad total y para ejecutar algoritmos complejos de búsqueda. ¿Serán
realidad algún día? ¿Podrá sustituir a los actuales en todas las tareas
que hoy están haciendo?
Descargar