Antecedentes de Ibm

41
IBM 700/7000 Un mainframe IBM 704. Módulo de lógica de válvulas de uno de los primeros computadores IBM. La Serie IBM 700/7000 fue una serie de computadores de gran tamaño (Mainframe ) construida por IBM desde los años 1950 hasta inicios de los 1960s. La serie incluía varias arquitecturas de procesador incompatibles. Los 700s usaban lógica de tubos de vacío y se volvieron obsoletos con la introducción de los 7000s transistorizados . Los 7000s, en su momento, fueron reemplazados por el System/360 , el cual fue anunciado en 1964. Sin embargo el 360/65, el primer 360 completo capaz de reemplazar a los 7000s, no estuvo disponible hasta noviembre de 1965. Problemas iniciales con el OS/360 y el alto costo de convertir el software mantuvo en servicio a muchos computadores 7000s por varios años. Índice [ocultar ] 1 Arquitecturas 2 Primera Arquitectura (701) o 2.1 Formatos de Datos o 2.2 Formato de Instrucciones o 2.3 Registros o 2.4 Memoria

description

LA HISTORIA DE IBM NO PODRIA DESCONOCERSE SI SE QUIERE HABLAR DE LA COMPUTACION, AL TENER TANTA INFLUENCIA PARA EL CRECIMIENTO TECNOLOGICO

Transcript of Antecedentes de Ibm

IBM 700/7000

Un mainframe IBM 704.

Módulo de lógica de válvulas de uno de los primeros computadores IBM.

La Serie IBM 700/7000 fue una serie de computadores de gran tamaño (Mainframe) construida por IBM desde los años 1950 hasta inicios de los 1960s. La serie incluía varias arquitecturas de procesador incompatibles. Los 700s usaban lógica de tubos de vacío y se volvieron obsoletos con la introducción de los 7000s transistorizados. Los 7000s, en su momento, fueron reemplazados por el System/360, el cual fue anunciado en 1964. Sin embargo el 360/65, el primer 360 completo capaz de reemplazar a los 7000s, no estuvo disponible hasta noviembre de 1965. Problemas iniciales con el OS/360 y el alto costo de convertir el software mantuvo en servicio a muchos computadores 7000s por varios años.

Índice

  [ocultar] 

1 Arquitecturas

2 Primera Arquitectura (701)

o 2.1 Formatos de Datos

o 2.2 Formato de Instrucciones

o 2.3 Registros

o 2.4 Memoria

3 Arquitectura Científica (704/709/7090/7094)

o 3.1 Formatos de Datos

o 3.2 Formato de Instrucciones

o 3.3 Registros

o 3.4 Memoria

o 3.5 Entrada/Salida

o 3.6 Programa Ensamblador FORTRAN

4 Arquitectura Comercial (702/705/7080)

o 4.1 Formato de Datos

o 4.2 Formato de Instrucciones

o 4.3 Registros

o 4.4 Memoria

5 Arquitectura Serie 1400 (7010)

o 5.1 Formato de Datos

o 5.2 Formato de Instrucciones

o 5.3 Registros

o 5.4 Memoria

6 Arquitectura Decimal (7070/7072/7074)

o 6.1 Formato de Datos

o 6.2 Formato de Instrucciones

o 6.3 Registros

o 6.4 Memoria

7 Serie IBM 700, valvulares, 1950s

8 serie IBM 7000, transistorizados, 1960s

9 Referencias

10 Enlaces externos

Arquitecturas[editar]

La serie IBM 700/7000 tenía seis formas completamente diferentes de almacenar datos e instrucciones:

Primero (palabras de 36/18 bit): 701 (Computador de Defensa)

Científico (palabras de 36 bit): 704, 709, 7090, 7094, 7040, 7044

Comercial (cadenas de caracteres de largo variable): 702, 705, 7080

Serie 1400 (cadenas de caracteres de largo variable): 7010

Decimal (palabras de 10 dígitos): 7070, 7072, 7074

Supercomputdor (palabras de 64 bit): 7030 "Stretch" ("agrandada")

La clase 700 usaba válvulas termoiónicas, la clase 7000 estaba transistorizada. Todas las máquinas usaban (como muchos computadores de la época) memoria de núcleo magnético; excepto en los primeros modelos 701 y 702, los cuales usaban memoria CRT. Mientras que las arquitecturas eran diferentes, la máquinas compartían la misma clase de tecnología electrónica y generalmente usaban los mismos periféricos incluyendo las

unidades de cinta (IBM 727 y 729), lectores de tarjetas, perforadoras de tarjetas e impresoras. Los primeros periféricos adoptaron la tecnología de las máquina de contabilidad de IBM e incluso usaban los plugboards. Posteriormente los perfiféricos fueron adoptados por laSerie IBM 1400 de línea media.

Los primeros computadores se vendieron sin software. Cuando surgieron los sistemas operativos, con cuatro diferentes arquitecturas de mainframes más la arquitectura de línea media de la serie 1400, se convirtió en un importante problema para IBM, ya que significa por lo menos cuatro desarrollos de software diferentes.

El System/360 combinaba la mejores características de la arquitectura de las series 7000 y 1400 en un sólo diseño, sin embargo algunos modelos 360 tenían características opcionales que permitían emular las instrucciones del 1400 y 7000. Uno de los argumentos de venta del IBM System/370 fue la emulación de la serie 1400/7000 mejorada (permitía hacerlo bajo control del sistema operativo, en lugar de reiniciar el sistema y arrancar en modo emulación, como se hacía con el 360).

Primera Arquitectura (701)[editar]

Conocido como el Computador de Defensa durante el desarrollo en el IBM Poughkeepsie Laboratory, esta máquina se dio a conocer oficialmente el 7 de abril de 1953 como laMáquina de Procesamiento de Datos Electrónica IBM 701.

Formatos de Datos[editar]

Los números tenían una longitud de 36 o 18 bits, y sólo de coma fija. (Ver: ¿por qué palabras de 36 bits?)

Los números de coma fija eran almacenados en binario con formato de

signo/magnitud.

Formato de Instrucciones[editar]

Las instrucciones eran de 18 bits de largo, de direccionamiento simple.

Signo (1 bit) - Direccionamiento de operandos de palabra completa (-) o media palabra

(+)

Opcode (5 bits) - 32 instrucciones

Direccionamiento (12 bits) - 4096 direcciones de media palabra

Para expandir la memoria de 2048 a 4096 palabras, una 33ra instrucción se añadía para usar el bit más significativo del campo de dirección para seleccionar el banco (Esta instrucción fue creada probablemente usando la instrucción "No OP", la cual parece haber sido la única instrucción con bits no usados, y que originalmente ignoraba su campo de dirección. Sin embargo, la documentación sobre esta nueva instrucción no está disponible actualmente).

Registros[editar]

Los registros del procesador consisitian en :

AC - Acumulador de 38-bit

MQ - Coeficiente multiplicador de 36-bit

Memoria[editar]

2.048 o 4.096 palabras binarias de 36 bits, con caracteres de 6 bits

Arquitectura Científica (704/709/7090/7094)[editar]

IBM 7090 en el Proyecto Mercury de la NASA, 1962.

Formatos de Datos[editar]

Los números son de 36 bits, con coma fija y flotante.

Los números de coma fija son almacenados en binario en formato de signo/magnitud.

Los números de precisión simple coma flotante tenían signo, 8-bit exceso/128 bit de

exponente, y magnitud de 29 bits

Los números de doble precisión, introducidos en el 7094, tenían signo, 17-bit exceso-

65536 exponente, y una magnitud de 54

Los caracteres alfanuméricos tenían 6-bit en formato BCD

Formato de Instrucciones[editar]

El formato de instrucciones básico tenía 3 bit de prefijo, 15 bit de decremento, 3 bit de etiqueta("tag"), y 15 bit de direccionamiento. El campo de prefijo especificaba el tipo de instrucción. El campo de decremento a menudo contenía un operando inmediato que modificaba el resultado de la operación, o era usado para definir el tipo de instrucción. Los 3 bits de etiqueta especificaban tres (siete en el 7094) índices de registro, el contenido de cada uno era restado de la dirección para obtener la dirección efectiva. El campo de dirección contenía tanto una dirección como un operando inmediato.

Registros[editar]

Los registros del procesador consisitían en:

AC - Acumulador de 38-bit

MQ - Coeficiente multiplicador de 36-bit

XR - Índice de registro de 15-bit (tres o siete)

SI - Indicador de estado de 36-bit

Los registro del acumulador (y el coeficiente multiplicador) estaban en formato de signo/magnitud.

Los Índices de registros opaeraban usando el formato de Complemento a 2 y cuando se usaban para modificar una dirección de instrucción eran restados de la dirección en la instrucción. En máquinas con tres índices de registro, si la etiqueta ("tag") tenía un set de 2 o 3 bits (p.e. selección de múltiples registros) entonces sus valores eran juntados antes la

resta. El IBM 7094, con siete índices de registro tenía un modo "compatibilidad" para poder usar los programas de las primeras máquinas.

Los indicadores de estado permitían interactuar con el operador a través de un panel con interruptores y luces.

Memoria[editar]

704

4.096, 8.192 o 32.768; palabras binarias de 36 bit con caracteres de 6 bit

709, 7090, 7094, 7094 II

32.768; 36-bit palabras binarias de 36 bit con caracteres de 6 bit

Entrada/Salida[editar]

La serie 709/7090 usaba Canales Sincronizadores de Datos para la entrada/salida de alta velocidad, como cinta y discos. Los CSDs ejecutaban sus propios programas simples de la memoria del computador que controlaban la transferencia de datos entre la memoria y los dispositivos de E/S. La E/S de la perforadora de tarjetas y de la impresora de alta velocidad eran a menudo transferido a cintas magnéticas y manejada desde una IBM 1401 separada. Más adelante, los canales de datos fueron usados para conectar un 7094 y un 7044 para formar el IBM 7094/7044 Direct Coupled System (DCS) ("Sistema Directo Acoplado"). En esta configuración, el 7044 manejaba principalmente la E/S.

Programa Ensamblador FORTRAN[editar]

El Programa Ensamblador FORTRAN (FORTRAN Assembly Program, FAP) fue el macro ensamblador por defecto para el 709, 7090, y el 7094.

Su pseudo-operación BSS, usada para reservar memoria, es el origen del nombre común de la "sección BSS", que aún se usa en muchos lenguajes ensamblador hoy día para designar rangos de direcciones de memoria reservada del tipo que no tiene que ser grabada en la imagen ejecutable.

Arquitectura Comercial (702/705/7080)[editar]

El IBM 702 y el IBM 705 eran similares y el 705 podía correr muchos de los programas del 702 sin modificaciones, pero no eran totalmente compatibles.

El IBM 7080 fue la versión transitorizada del 705, con varias mejoras. Para compatibilidad hacia abajo, podía correr en modo 705 I, modo 705 II, modo 705 III o en modo 7080 completo.

Formato de Datos[editar]

Los datos eran representados por cadenas de longitud variables finalizadas con una marca de grabación.

Formato de Instrucciones[editar]

Cinco caracteres: un carácter de opcode y 4 caracteres de dirección - OAAAA

Registros[editar]

702

dos acumuladores (A & B) - 512 caracteres

705

un acumulador - 256 characters

14 unidades de almacenaje auxiliar - 16 caracteres

1 unidades de almacenaje auxiliar - 32 caracteres

7080

1 acumulador - 256 caracteres

30 unidades de almacenaje auxiliar - 512 characters

32 unidades de almacenaje de comunicación - 8 characters

Memoria[editar]

702

2.000 to 10.000 caracteres en tubos Williams (en incrementos de 2.000

caracteres)

Tasa de ciclo de caracteres - 23 microsegundos

705 (modelos I, II, o III)

20.000 o 40.000 o 80.000 caracteres de memoria de núcleo magnético

Tasa de ciclo de caracteres - 17 microsegundos o 9,8 microsegundos

7080

80.000 or 160.000 caracteres de memoria de núcleo magnético

Tasa de ciclo de caracteres - 2,18 microsegundos

La serie IBM 700/7000 fue una serie de sistemas informáticos a gran escala realizadas por

IBM a través de la década de 1950 y comienzos de 1960. La serie incluyó varias

arquitecturas de procesador diferentes, incompatibles. La lógica de tubo de vacío utilizado

700 y se hicieron obsoletos por la introducción de la 7000 transistores. El 7000, a su vez,

fueron finalmente reemplazado por System/360, que fue anunciada en 1964 - Sin

embargo, el 360/65, el primer 360 lo suficientemente potente como para reemplazar a

7000, no estarán disponibles hasta noviembre de 1965 - Los primeros problemas con

OS/360 y el alto costo del software de conversión mantiene muchos 7000s en servicio

durante años después.

Arquitecturas

La serie IBM 700/7000 tenía seis maneras completamente diferentes de almacenamiento

de datos y las instrucciones:

Primero: 701

Científico: 704, 709, 7090, 7094, 7040, 7044

Comercial: 702, 705, 7080

Serie 1400: 7010

Decimal: 7070, 7072, 7074

Supercomputadora: 7030 "Stretch"

La clase 700 utiliza tubos de vacío, la clase 7000 se transistorizado. Todas las máquinas

utilizan memoria de núcleo magnético, a excepción de los primeros modelos 701 y 702,

que utilizan memoria CRT.

Problemas de compatibilidad de software

Las primeras computadoras se venden sin software. Como sistemas operativos

comenzaron a emerger, que tiene cuatro arquitecturas centrales diferentes además de las

arquitecturas de la línea media 1400 se convirtió en un problema importante para IBM ya

que significaba se requieren al menos cuatro esfuerzos de programación diferentes.

El System/360 combina las mejores características de las arquitecturas de la serie 7000 y

1400 en un solo diseño. Sin embargo, algunos modelos 360 tenían características

opcionales que les permitían emular los juegos de instrucciones 1400 y 7000 en

microcódigo. Uno de los puntos de venta de la System/370, introducido a mediados de

1970, se ha mejorado la emulación 1400/7000 series, que podría hacerse bajo el control

del sistema operativo en lugar de apagar y reiniciar en modo de emulación como se

requiere en el 360s.

Periféricos

Mientras que las arquitecturas diferían, las máquinas en la misma clase compartida

tecnologías de la electrónica y, en general utilizan los mismos periféricos. Las unidades de

cinta eran formato 7-track, con la IBM 727 se utiliza en las máquinas de tubos de vacío y

729 en las máquinas de transistores. Tanto el tubo de vacío y la mayoría de los modelos

de transistores utilizan los mismos lectores de tarjetas, perforadoras de tarjetas e

impresoras de líneas que se introdujeron con el 701 - Estas unidades, el IBM 711, 721 y

716, se basan en la tecnología de máquinas de contabilidad de IBM y los paneles de

control de panel de conexiones, incluso incluidos . Eran relativamente lento y se convirtió

en común para las instalaciones de la serie 7000 para incluir un IBM 1401, con sus

periféricos mucho más rápido, hacer tarjetas de cinta y cinta para operaciones de línea de

impresora fuera de línea. Tres máquinas más tarde, el 7010, el 7040 y el 7044, aprobó los

periféricos de la serie IBM 1400 la línea media.

En primer lugar la arquitectura

Conocida como la Calculadora de Defensa, mientras que en el desarrollo en el Laboratorio

de IBM en Poughkeepsie, esta máquina fue presentado formalmente 07 de abril 1953

como el 701 de la máquina electrónica de procesamiento de datos de IBM.

Los formatos de datos

Los números eran o 36 bits o 18 bits, único punto fijo de largo.

Números de punto fijo se almacenaron en signo/magnitud formato binario.

Formato de instrucción

Las instrucciones eran 18 bits de longitud, la dirección única.

Sign - palabra entera o media palabra de dirección de operando

Código de operación - 32 instrucciones

Dirección - 4.096 direcciones de palabra Medio

Para ampliar la memoria 2048-4096 palabras, se añadió una instrucción 33a que utiliza el

bit más significativo de su campo de dirección para seleccionar el banco.

Registros

Registros del procesador consistieron en:

AC - 38 bits del acumulador

MQ - Multiplicador-cociente de 36 bits

Memoria

2048 o 4096 - palabras binarias de 36 bits con los caracteres de seis bits

Arquitectura Ciencia

Científica arquitectura de IBM de 36 bits se utiliza para una variedad de aplicaciones de

cálculo intensivo. Primeras máquinas eran el tubo de vacío 704 y 709, seguido por el

transistorizado 7090, 7094, 7094-II, y el costo más bajo 7040 y 7044 - El último modelo fue

el sistema acoplado directo que consiste de un 7,094 a un 7,044 vinculada que maneja de

entrada y las operaciones de salida.

Los formatos de datos

Los números eran 36 bits de longitud, tanto de punto fijo y punto flotante.

Números de punto fijo se almacenaron en signo/magnitud formato binario.

Números de punto flotante de precisión simple tenían un cartel magnitud de 8 bits

exponente exceso-128 y una magnitud de 29 bits

Números de doble precisión de punto flotante, introducido en el 7094, tuvieron un

signo magnitud, una de 17 bits exponente exceso-65536, y 54 bits de magnitud

Caracteres alfanuméricos eran BCD de 6 bits, llenas de seis a una palabra.

Formato de instrucción

El formato básico de instrucción era un prefijo de 3 bits, decremento de 15 bits, etiqueta de

3 bits, y la dirección de 15 bits. El campo Prefijo especifica la clase de instrucción. El

campo decremento menudo contenía un operando inmediato para modificar los resultados

de la operación, o se utiliza para definir el tipo de instrucción. Los tres bits de la etiqueta

especifica tres registros de índice, cuyo contenido se restará de la dirección para producir

una dirección eficaz. El campo de dirección o bien contenía una dirección o un operando

inmediato.

Registros

Registros del procesador consistieron en:

AC - 38 bits del acumulador

MQ - Multiplicador-cociente de 36 bits

XR - Registros de índice 15 bits

SI - Indicador Sentido 36 bits

El acumulador de registros operado en formato de magnitud firmado.

El índice registra operado utilizando el formato de complemento a dos, y cuando se utiliza

para modificar una dirección de la instrucción se restará de la dirección de la instrucción.

En las máquinas con tres registros de índice, si la etiqueta tenía 2 o 3 bits establecidos a

continuación, sus valores se ORed juntos antes de ser sustraído. El IBM 7094, con siete

registros de índice tenía un modo de "compatibilidad" para permitir que los programas de

las máquinas anteriores que utilizan este truco para seguir siendo utilizados.

Los indicadores de detección permite la interacción con el operador a través de

interruptores del panel y las luces.

Memoria

704

o 4096 o 8192 o 32768 - palabras binarias de 36 bits con los caracteres de

seis bits

709, 7090, 7094, 7094 II, 7040, 7044

o 32768 - palabras binarias de 36 bits con caracteres de seis bits

De entrada/salida

La serie 709/7090 utiliza Data Synchronizer Canales de entrada de alta velocidad/salida,

como una cinta y disco. Los DSCs ejecutan sus propios programas simples de la memoria

de la computadora que controla la transferencia de datos entre los dispositivos de E/S y la

memoria. Tarjeta perforada de E/S y la alta velocidad de impresión se realizaron con

frecuencia mediante la transferencia de cintas magnéticas para un off-line IBM 1401. Más

tarde, se utilizaron los canales de datos para conectar un 7,094 y un 7,044 para formar el

IBM 7094/7044 directo sistema acoplado. En esta configuración, el 7044, lo que podría

utilizar más rápidamente 1.400 periféricos serie, manejados principalmente I/O.

Programa conjunto de FORTRAN

El programa de la Asamblea FORTRAN fue un ensamblador para el 709, 7090 y 7094 bajo

el sistema operativo FMS improvisada de IBM. Un ensamblador antes era SCAT. Las

macros se añadieron a FAP por los Laboratorios Bell, y la final de 7090/7094 fue de

ensamblador IBMAP, bajo IBSYS.

Su pseudo-operación BSS, que sirve para reservar memoria, es el origen del nombre

común de la sección "BSS", que todavía se utiliza en muchos lenguajes ensambladores

hoy para designar reservados direccionamiento de la memoria varía del tipo no tienen que

ser guardados en la imagen ejecutable .

Arquitectura comercial

El IBM 702 y 705 IBM eran similares y el 705 podría ejecutar muchos programas 702 sin

modificaciones, pero no eran totalmente compatibles.

El IBM 7080 era una versión transistorizada del 705, con varias mejoras. Para la

compatibilidad con versiones anteriores se puede ejecutar en modo 705 I, el modo 705 II,

el modo 705 III, o el modo completo 7080.

Formato de los datos

Los datos se representan mediante una cadena de longitud variable de caracteres

terminada por una marca récord.

Formato de instrucción

Cinco personajes: un carácter de código de operación y 4 dirección personaje - OAAAA

Registros

702

o dos acumuladores - 512 caracteres

705

o un acumulador - 256 caracteres

o 14 unidades de almacenamiento auxiliar - 16 caracteres

o una unidad de almacenamiento auxiliar - 32 caracteres

7080

o un acumulador - 256 caracteres

o 30 unidades de almacenamiento auxiliar - 512 caracteres

o 32 unidades de almacenamiento de comunicación - 8 caracteres

Memoria

702

o 2.000 y 10.000 caracteres en Williams tubos

o Velocidad del ciclo del personaje - 23 microsegundos

705

o 20.000 o 40.000 o 80.000 caracteres de la memoria del núcleo

o Velocidad del ciclo del personaje - 17 microsegundos o 9,8 microsegundos

7080

o 80.000 o 160.000 caracteres de la memoria del núcleo

o Velocidad del ciclo del personaje - 2,18 microsegundos

Arquitectura de la serie 1400

La arquitectura 700/7000 comercial inspiró la exitosa serie IBM 1400 de los equipos de

negocios de tamaño medio. Por su parte, IBM introdujo más tarde una versión de

mainframe de IBM 1410 llamado el IBM 7010.

Formato de los datos

Los datos se representan mediante una cadena de longitud variable de caracteres

terminada por un Wordmark.

Formato de instrucción

De longitud variable: 1, 2, 6, 7, 11, o 12 caracteres.

Registros

Ninguna, todas las instrucciones operados en la memoria. Sin embargo, quince campos de

cinco caracteres en ubicaciones fijas en la memoria baja podrían ser tratados como

registros de índice, cuyos valores se podrían añadir a la dirección especificada en una

instrucción. Además, ciertos registros internos que, hoy en día ser invisibles, tales como

las direcciones de los caracteres que se está procesando, se expusieron al programador.

Memoria

100000 caracteres.

Arquitectura Decimal

El IBM 7070, IBM 7072 e IBM 7074 eran, palabra máquinas decimales de longitud fija.

Ellos utilizan una palabra de diez dígitos como el más pequeño y más IBM 650, pero no

eran conjunto de instrucciones compatible con el 650.

Formato de los datos

Longitud de palabra - 10 dígitos decimales más el signo

Codificación Digit - dos de cada cinco de código

Flotante - opcional. Exponente de dos dígitos.

Tres señales para cada palabra - Plus, Minus y Alpha

o Más y Menos indicaron 10 valores numéricos dígitos.

o Alfa indicó 5 caracteres de texto codificado por pares de dígitos. 61 = A, 91

= 1.

Formato de instrucción

Todas las instrucciones de una palabra

2 código de operación dígitos

Registro de índice 2 dígitos

2 campos de control de dígitos - le permite seleccionar conjuntos de dígitos,

desplazando hacia la izquierda o derecha

Dirección 4 dígitos

Registros

Todos los registros de una sola palabra, se podría también resolver como memoria

Acumuladores - 3

Registro del programa - 1

o Direccionable sólo desde la consola. Almacena la instrucción actual.

Contador de instrucciones - 1

o Direccionable sólo desde la consola.

Los registros de índice - 99

Memoria

5000-9990 palabras

15000-30000 palabras

6 microsegundos, 4 microsegundos - Tiempo de acceso

Agregue el tiempo - 72 microsegundos, 12 microsegundos, 10 microsegundos

Cronología

Un IBM 7074 fue utilizado por los EE.UU. Servicio de Impuestos Internos en 1962.

7700 El Sistema de Adquisición de Datos de IBM no era un miembro de la serie IBM 7000,

a pesar de su número y su fecha de anuncio de 2 de diciembre de 1963.

Rendimiento

Todas las máquinas de la serie 700 y 7000 son anteriores a las herramientas de medición

de rendimiento estándar, como la piedra de afilar, Dhrystone, LINPACK o Livermore

benchmarks bucles.

En la tabla de abajo, la Gibson y Knight informan de mediciones de velocidad, donde los

números más altos son mejores; Tridia la medición de los informes de tiempo, donde los

números más bajos son mejores.

IBM S/360

Consola del operador de unSystem/360 Model 65, con válvula de registro, lámparas y switches(mitad de

la fotografía), y arriba a la derecha, un interruptor de emergencia rojo.

El IBM S/360 fue el primer ordenador en usar microprogramación, y creó el concepto de arquitectura de familia. La familia del 360 consistió en 6 ordenadores que podían hacer uso del mismo software y los mismos periféricos. El sistema también hizo popular la computación remota, conterminales conectados a un servidor, por medio de una línea telefónica. Así mismo, es célebre por contar con el primer procesador en implementar el algoritmo de Tomasulo en su unidad de punto flotante.

El IBM 360 es uno de los primeros ordenadores comerciales que usó circuitos integrados, y podía realizar tanto análisis numéricos como administración o procesamiento de archivos. Se considera que la tercera generación de computadoras comenzó con su madre

Fue el primer computador en ser atacado con un virus en la historia de la informática; y ese primer virus que atacó a esta máquina IBM Serie 360 (y reconocido como tal), fue el Creeper, creado en 1972

Índice

  [ocultar] 

1 Introducción

2 Historia

o 2.1 Una familia de computadoras

o 2.2 Modelos

o 2.3 Compatibilidad hacia atrás

3 Referencias

4 Enlaces externos

Introducción[editar]

El IBM S/360 (S/360) es un sistema de computación de la familia mainframe que IBM anunció el 7 de abril de 1964. Fue la primera familia de ordenadores diseñados para cubrir las aplicaciones independientemente de su tamaño o ambiente (científico, comercial). En el diseño se hizo una clara distinción entre la arquitectura e implementación, permitiendo a IBM sacar una serie de modelos compatibles a precios diferentes. Los modelos S/360

anunciados en 1964 variaban en velocidad de 0,034 MIPS a 1,700 MIPS (50 veces la velocidad) y entre 8 KB y 8 MB de memoria principal, aunque este último fue inusual. El 360 fue un gran éxito en el mercado, permitía a los clientes comprar un sistema más pequeño sabiendo que siempre podrían migrar hacia un sistema de mayor capacidad. Muchos consideran el diseño de este sistema como uno de los más importantes en la historia, ya que ha influido en el diseño de los ordenadores de años posteriores. El arquitecto jefe del S/360 fue Gene Amdahl.

Historia[editar]

Una familia de computadoras[editar]

Rompiendo con el método de la industria, IBM creó una serie de ordenadores de pequeños a grandes y de alto a bajo rendimiento, todos ellos usando el mismo conjunto de comandos (con dos excepciones para los mercados específicos). Esto permitía a los clientes usar modelos más baratos y después ampliarlos a sistemas más potentes conforme se incrementaban sus necesidades sin pasar por el gasto excesivo de reescribir su software. IBM hizo el primer uso comercial de la tecnología de microcódigo para lograr esta compatibilidad, empleándola en todos sus modelos menos los modelos más potentes.

Esta flexibilidad hizo desmarcarse a IBM de la competencia (con la posible excepción de General Electric).

Modelos[editar]

IBM anunció inicialmente una familia de seis ordenadores y de cuarenta periféricos. IBM finalmente entregó catorce modelos, incluyendo los modelos one-off para la NASA. El modelo más barato era el S/360/20 con tan solo 4K de memoria principal, ocho registros de 16 bits en vez de los dieciséis registros de 32 bits del 360s original, y un conjunto de instrucciones que era un subconjunto del usado por el resto de la gama.

El anuncio inicial en 1964 incluía los modelos 30, 40, 50, 60, 62, y 70. Los primeros tres eran sistemas de gama baja-media, fueron lanzados con el objetivo de obtener el mercado de los IBM 1400 series. Los tres comenzaron a venderse a mediados de 1965. Los tres últimos, intentaban sustituir los ordenadores 7000 series, pero nunca se vendieron y fueron sustituidos por el 65 y el 75 cuyas primeras ventas fueron durante noviembre de 1965 y enero de 1966 respectivamente.

Más tarde se hizo un añadido de modelos más baratos que incluía el 20 (1966, pensado para pequeños negocios), 22(1971), y 25(1968). El modelo 22 fue un modelo 30 con limitaciones más bajas.

El modelo 44 (1966) fue una variante cuyo objetivo era el mercado científico de gama media que tenía un sistema de punto flotante pero un conjunto de instrucciones limitado.

Hubo una sucesión de máquinas de gama alta en la que se incluye la 67 (1966), 85 (1969), 91 (1967), 95 (1968), y 195 (1971). Los 195 fueron los intermedios entre la familia System/360 y su sucesora la System/370.

Aunque las implementaciones entre modelos fueron sustanciales (ejemplo presencia o no de microcodigo) la compatibilidad entre ellos fueron muy altas. Salvo en los casos específicamente documentados, los modelos fueron arquitectónicamente compatibles. Las nuevas características se podían añadir, sin violar las definiciones de la arquitectura: el 65 tuvo una versión de doble procesador (M65MP), el 85 introdujo memoria cache. Modelos 44, 75, 91, 95, y 195 se implementaron con lógica cableada, en lugar de microcódigo como todos los otros modelos.

Las primeras ventas del 360-67 fueron en agosto de 1966, fue el primer sistema de IBM en ofrecer la conversión dinámica de dirección (“DAT,” ahora comúnmente llamado MMU; El hardware de DAT reaparecería en la familia System/370 en 1972, aunque inicialmente no lo iba a estar). (Antes del 67, IBM había anunciado los modelos 64 y 66, versiones de DAT del 60 y el 62, pero fueron substituidos casi inmediatamente por el 67 a la vez que el 60 y

el 62 fueron substituidos el 65.) Al anunciar el 360-67 (agosto de 1965), IBM también anunció el TSS/360, un sistema operativo que permitía multitarea aunque más tarde este proyecto fue cancelado en 1971. En vez del TSS/360 el sistema operativo del 360-67 fue el CP/CMS, fue el sistema original de maquina virtual. El CP/CMS fue desarrollado en Centro científico de Cambridge de IBM, en cooperación con los investigadores del MIT. Poco a poco fue ganado gran aceptación, y condujo al desarrollo del IBM VM/CMS y al z/VM.

Todos los modelos System/360 fueron retirados del mercado a finales de 1977.

El IBM System/370 (también conocido como S/370) fue un modelo de los mainframes de

IBM anunciado el 30 de junio de 1970 como sucesor de la familia System/360. La serie

mantiene la retrocompatibilidad con el S/360, lo que facilita la migración a los clientes

además de mejorar el rendimiento.

Índice

  [ocultar] 

1 Nuevas características

o 1.1 Evolución

o 1.2 Ampliando el espacio de direcciones

o 1.3 31 bits vs 32 bits

2 Series y Modelos

3 Sustitución del S/370

4 Linux en el S/370

Nuevas características[editar]

Las nuevas características que difieren de la S/360 son:

Capacidad estándar de doble procesador.

Soporte total para la memoria virtual.

Aritmética de coma flotante para 128 bits.

Evolución[editar]

El System/370 recibió varias mejoras en su arquitectura durante sus más o menos 20 años

de vida. El primer y más importante cambio fue la introducción de la memoria virtual, que

estuvo por primera vez disponible en 1972 con el “IBM's "System/370 Advanced Function".

IBM había decidido inicialmente no incluir la memoria virtual en la familia S/370.

El anuncio del 2 de agosto de 1972 incluye:

Dirección de reubicación de hardware en todos los S/370s, salvo de los modelos

originales 155 y 165.

El nuevo S/370-158 y -168.

Cuatro nuevos sistemas operativos:

DOS / VS (DOS con almacenamiento virtual)

OS/VS1 (OS / MFT con almacenamiento)

OS/VS2 (OS / MVT con almacenamiento virtual) Release 1, denominada SVS

(Single Virtual Storage), y Release 2, denominada MVS (Multiple Virtual Storage)

VM/370 - la re-aplicación de CP / CMS.

Poco después de ese anuncio del 2 de agosto de 1972, se actualizó el DAT (dirección de

hardware) para el S/370-155 y S/370-165 pero sólo estaban disponibles para su compra

por parte de los clientes que ya poseían un modelo 155 o 165. Después de la

actualización, estos modelos se conocen como S/370-155-II y la S/370-165-II. Estas

actualizaciones son sorprendentemente caras ($200.000 y $400.000 respectivamente)[cita  requerida] y, desde hacía mucho tiempo, el retraso en la fecha de envío de los pedidos

después de haber sido ordenados por un cliente, provocaba que la mayoría de estos

optaran por arrendar sus sistemas a través de empresas. Esto condujo a la original serie

S/370-155 y S/370-165, modelos que se describen como anclas de barco. El proceso de

actualización, necesario para ejecutar OS/VS1 o OS/VS2, no era rentable para la mayoría

de los clientes por el tiempo que tardaba IBM en entregar e instalar, por lo que muchos

clientes estaban atascados con estas máquinas ejecutando MVT hasta que terminara el

arrendamiento.

Más tarde, los cambios en la arquitectura afectaron principalmente a la memoria –virtual y

física- para soportar mayores cargas de trabajo y fomentar que los clientes realizaran más

demandas. Al igual que con todos los mainframes de IBM de desarrollo, preservar la

compatibilidad con versiones anteriores era primordial.

En octubre de 1981, los procesadores 3033 y 3081 añadieron el “direccionamiento

ampliado”, que permitió el direccionamiento para el almacenamiento físico de 26-bit (24-bit

para cualquier otro tipo de almacenamiento). Esta capacidad apareció más tarde en otros

sistemas, como el 4381 y 3090.

La arquitectura S/370-XA, por primera vez disponible en los procesadores 3081 y 3083,

produjo una serie de mejoras:

La ampliación de espacio de direcciones de 24-bits a 31-bits.

facilitar la circulación de datos entre dos direcciones

un completo rediseño de la arquitectura de I/O.

La arquitectura ESA/370 incluyó también registros de 32 bits, modos de direccionamiento y

facilidades para trabajar con varios espacios de direcciones simultáneamente.

Ampliando el espacio de direcciones[editar]

Como se ha descrito anteriormente, el S/370 ha sido sometido a un cambio arquitectónico

importante: la ampliación de su espacio de direcciones de 24 a 31 bits.

La evolución del direccionamiento del S/370 fue siempre complicada por el conjunto base

de instrucciones del S/360 y su gran base instalada de código, que se basó en uno de 24

bits (dirección lógica).

La estrategia fue la de implementar la expansión de direcciones en 3 etapas:

1. En primer lugar a nivel físico (para permitir memoria por sistema).

2. Luego, a nivel de sistema operativo (para permitir que el software de sistema

acceda a múltiples espacios de direcciones y utilice espacios de direcciones más

grandes).

3. Por último, a nivel de la aplicación (para permitir nuevas solicitudes de acceso en

más grandes espacios de direcciones).

Desde que el núcleo S/360, conjunto de instrucciones dirigidas, es de 24 bits, para este

tercer paso sería necesaria una ruptura con el statu quo; existen aplicaciones en lenguaje

ensamblador, de hecho, que no se benefician, y los nuevos compiladores necesitarían

primero que las aplicaciones no-ensambladas fueran migradas primero.

Esta aplicación (que se repite en z / Arquitectura) abordaron la solución de los problemas

más urgentes en primer lugar: hacer frente a la memoria real que se necesita antes que

hacer frente a la memoria virtual.

31 bits vs 32 bits[editar]

La elección de IBM de 31 bits (frente a 32-bits) para hacer frente a S/370-XA afectan a

diversos factores. El S/360-67 ha incluido un modo con direccionamiento total de 32 bits,

pero esta función no se llevó adelante en la serie S/370, que comenzó con sólo 24 bits.

Cuando más tarde IBM S/370 amplió el espacio de direcciones en S/370-XA, varias

razones se citan para la elección de 31 bits: 1.El deseo de mantener el bit de mayor peso

como de “control o escape”.

2.La interacción entre los de 32-bit y direcciones de dos instrucciones (BXH y BXLE) que

tratan a sus argumentos como los números de firmado (y que según se dijo, era la razón

por la SAT utiliza 31-bits en abordar el S/360-67). 3.Entrada de clave inicial en S/360-67,

que se habían debatido las alternativas durante el periodo de diseño inicial del sistema, y

había recomendado 31 bits (en lugar de los 32-bits que fue elegido en última instancia).

Series y Modelos[editar]

La siguiente tabla resume los principales modelos de la serie S/370. En la columna central

se enumeran los principales asociados con la arquitectura de cada serie.

<td43xx

Año

FabricaciónArquitectura

Mercado

levelSerie Modelo

1970 System/370 (no DAT) high-end

System/370-xxx

-155, -165, -195

1970 System/370 (DAT)mid-

range-145 and -135

1972 System/370

high-end -158 and -168

entry -115 and -125

mid-

range-138 and -148

1977

System/370-compatible

high-end 303x 3031, 3032, 3033

1979 entry/mid4331, 4341,

4361

1980

high-end 308x 3081, 3083, 3084

1981

System/370-XA1983mid-

range4381 4381

1986 high-end 3090 -120 to -600

1986 System/370-compatible entry 937x 9370,...

1988

ESA/370

high-end ES/3090 ES/3090

1988mid-

rangeES/4381 -90, -91, -92

Sustitución del S/370[editar]

El System/370 fue sustituido por el System/390 en el decenio de 1990, y la arquitectura

también fue cambiado el nombre de ESA/370 a ESA/390. Es esencialmente un cambio de

nombre sólo por razones de comercialización, en lugar de grandes cambios

arquitectónicos. En 2000, el System/390 fue sustituido por el zSeries. Los mainframes

zSeries presentó el 64-bit z / Arquitectura, la más importante mejora de diseño desde los

31 bits. Todos han conservado la retrocompatibilidad con la arquitectura S/360 y conjunto

de instrucciones.

Linux en el S/370[editar]

En la colección de compiladores de GNU había uno para S/370, pero se convirtió en

obsoleto y finalmente se sustituirá por el del S/390. A pesar de que el S/370 y S/390 son

esencialmente los mismos (y han sido coherentes desde la introducción de la S/360), el

apoyo a los sistemas más antiguos se considera obsoleto. Actualmente está disponible

para máquinas de apoyo el conjunto de instrucciones de System/390 Generación 5 (G5), la

plataforma de hardware para la versión inicial de Linux/390.

serie B5000 de Burroughs

Fue una máquina única, muy adelantada a

su tiempo. Ha sido listada por el influyente arquitecto de computadores John

Mashey como una de las arquitecturas que más admira,El B5000 fue revolucionario

en su tiempo al ser la arquitectura y el conjunto de instrucciones diseñados

tomando en consideración las necesidades del software. Esto era un alejamiento del

diseño del sistema de computación de ese tiempo, donde un procesador y su

conjunto de instrucciones serían diseñados y después entregados a la gente del

software, y todavía es así. Es decir, las arquitecturas modernas como el x86 o el

PPC son esencialmente arquitecturas basadas en conjuntos de instrucciones

tradicionales en vez de diseños holísticos como los sistemas originales de

BurroughsDate 1961

Grandes sistemas de BurroughsLos grandes sistemas de Burroughs fueron los más grandes de tres series de computadores mainframes de Burroughs Corporation. Fundada en los años 1880, Burroughs era la más vieja entidad continuamente operando en el área de la computación, pero por finales de la década de 1950 su equipo computación todavía estaba limitado a las máquinas de contabilidad electromecánicas tales como la Sensimatic; las cuales no tenían nada para competir con sus rivales tradicionales como IBM y NCR que habían comenzado a producir computadores de mayor escala, o con la recientemente fundada UNIVAC. La primera máquina, el B5000, fue diseñada en 1961 y Burroughs buscaba resolver su tardía entrada en el mercado con la estrategia de un diseño completamente diferente basado en las más avanzadas ideas computacionales disponibles en ese tiempo. Los computadores usando esta arquitectura todavía estaban en producción en 2010 como con las máquinas ClearPath/MCP de Unisys. Ahora, Unisys usa los procesadores Intel Xeon, y corre en sus servidores los sistemas operativos MCP, Microsoft Windows y Linux.

Índice

  [ocultar] 

1 B5000

2 Características únicas

o 2.1 Diseño de sistema único

o 2.2 Soporte de lenguaje

3 Historia

4 ALGOL

o 4.1 ESPOL y NEWP

o 4.2 DCALGOL y el Message Control Systems (MCS)

o 4.3 DMALGOL y las bases de datos

5 Arquitectura de pila

o 5.1 Velocidad de la pila y desempeño

o 5.2 Cómo los programas se mapean en la arquitectura de la pila

o 5.3 Procedimientos

5.3.1 Tipo de invocación de ejecución

5.3.2 Procedimientos en línea

5.3.3 Llamadas asíncronas

o 5.4 Ventajas de la estructura de la pila

6 Arquitectura basada en etiquetas

7 Arquitectura basada en descriptores

8 Influencia del B5000

9 Referencias

10 Lectura adicional

11 Véase también

B5000[editar]

El primer miembro de la serie, el B5000, fue diseñado a principios de 1961 por un equipo bajo la dirección de Robert (Bob) Barton. Fue una máquina única, muy adelantada a su tiempo. Ha sido listada por el influyente arquitecto de computadores John Mashey como una de las arquitecturas que más admira. "Yo siempre pensé que era uno de los más innovadores ejemplos de diseño combinado de hardware/software que haya visto, y mucho más adelantado a su tiempo".1

Características únicas[editar]

Todo el código es automáticamente reentrante (La figura 4.5 de la Monografía ACM

muestra en pocas palabras el por qué): los programadores no tienen que hacer nada,

sino solo usar los dos simples primitivos mostrados, para tener cualquier código en

cualquier lenguaje de programación distribuido a través de los procesadores. Éste es

quizás el canónico pero no significa el único beneficio de estas importantes

características que distinguen a esta arquitectura:

Arquitectura data-driven tagged y basada en descriptor

El hardware fue diseñado para soportar los requerimientos del software

El hardware diseñado para soportar exclusivamente lenguajes de

programación de alto nivel

No hay lenguaje ensamblador o assembler; todo el software del sistema está

escrito en una variedad extendida de ALGOL

No hay registros accesibles al programador

Conjunto de instrucciones  simplificado

Arquitectura de Pila (para soportar lenguajes algorítmicos de alto nivel)

Soporte para sistema operativo de alto nivel (Master Control Program)

Soporte para multiprocesamiento maestro/esclavo

Soporte para otros lenguajes como COBOL

Manipulaciones poderosas de cadenas de caracteres

Arquitectura segura prohibiendo acceso no autorizado a datos o disrupciones de

operaciones

Temprana detección de error soportando el desarrollo y las pruebas (testing) de

software

La primera implementación comercial de la memoria virtual

Los sucesores todavía existen en las máquinas ClearPath/MCP de Unisys

Influenció muchas de las técnicas computacionales de hoy

En el texto siguiente, las designaciones de la máquina, B5000, Serie A, y ClearPath/MCP son usadas intercambiablemente aunque éstas combinan innecesariamente las características y conceptos de varias máquinas y deberán ser corregidas algún día para mantener claramente las distinciones entre el 5000, 5500, 6500 y secuencia, y la Serie A.

Diseño de sistema único[editar]

El B5000 fue revolucionario en su tiempo al ser la arquitectura y el conjunto de instrucciones diseñados tomando en consideración las necesidades del software. Esto era un alejamiento del diseño del sistema de computación de ese tiempo, donde un procesador y su conjunto de instrucciones serían diseñados y después entregados a la gente del software, y todavía es así. Es decir, las arquitecturas modernas como el x86 o el PPC son esencialmente arquitecturas basadas en conjuntos de instrucciones tradicionales en vez de diseños holísticos como los sistemas originales de Burroughs.

Soporte de lenguaje[editar]

El B5000 fue diseñado para soportar exclusivamente lenguajes de alto nivel. Esto ocurrió en un tiempo en que tales lenguajes comenzaban a ser prominentes con FORTRAN y luego COBOL. FORTRAN y COBOL eran considerados lenguajes débiles por algunos, comparado con técnicas modernas de software, así que fue adoptado un lenguaje nuevo que no había sido probado, ALGOL-60. El dialecto del ALGOL seleccionado para el B5000 fue el Elliott ALGOL, primero diseñado e implementado por C.A.R. Hoare en un Elliot 503. Éste era una extensión práctica del ALGOL con instrucciones de I/O (que el ALGOL había ignorado) y poderosas instrucciones de procesamiento de cadenas. La famosa conferencia de Turing de Hoare fue sobre este tema.

Así el B5000 fue basado en un lenguaje muy poderoso. La mayoría de los otros proveedores solamente podían soñar en implementar un compilador ALGOL y la mayor parte de la industria descartó el ALGOL pues no lo podían implementar. Sin embargo, un brillante joven estudiante llamado Donald Knuth había implementado previamente el ALGOL-58 en una máquina anterior de Burroughs durante tres meses de verano. Muchos descartaron el ALGOL, creyendo equivocadamente que los lenguajes de alto nivel no podían tener la misma potencia que el ensamblador, y así no se dieron cuenta del potencial del ALGOL como lenguaje de programación de sistemas, una opinión no revisada hasta el desarrollo del lenguaje de programación C.

El compilador del ALGOL de Burroughs era muy rápido - éste impresionó al científico holandés Edsger Dijkstra cuando sometió un programa para ser compilado en la planta de Pasadena del B5000. Su mazo de tarjetas fue compilado casi inmediatamente y él quiso inmediatamente varias máquinas para su universidad (Universidad Técnica de Eindhoven) de regreso en Europa. El compilador era rápido por varias razones, pero la razón primaria era que era un "compilador de un solo paso" (one-pass compiler). Los computadores tempranos no tenían suficiente memoria para almacenar el código fuente, así que los compiladores (e incluso los ensambladores) usualmente necesitaban leer el código fuente más de una vez. La sintaxis del ALGOL requiere que cada variable (u otro objeto) sea declarada antes de ser usada, así que es factible escribir un compilador ALGOL que lea los datos solamente una vez. Este concepto tiene implicaciones teóricas profundas, pero también permite la compilación muy rápida. Los grandes sistemas de Burroughs podían compilar tan rápidamente como leían el código fuente de las tarjetas perforadas, y tenían los lectores de tarjetas más rápidos en la industria.

El poderoso compilador COBOL de Burroughs era también un compilador de un paso e igualmente rápido. Un programa COBOL de 4000 tarjetas se compilaba tan rápidamente como las 1000 tarjetas por minuto en que los lectores podían leer el código. El programa estaba listo para usarse tan pronto como las tarjetas pasaran a través del lector.

Historia[editar]

El primero de los grandes sistemas de Burroughs fue el B5000. Diseñado en 1961, era un computador de segunda generación usando lógica de transistor discreto y memoria de núcleo magnético. Las máquinas sucesoras siguieron las tendencias de desarrollo de hardware para reimplementar la arquitectura en nueva lógica durante los próximos 25 años, con el B5500, B6500, B5700, B6700, B7700, B6800, B7800, y finalmente la Serie A de Burroughs. Después de que Burroughs se convirtió en parte de Unisys, Unisys continuó desarrollando nuevas máquinas basadas en el MCP CMOS ASIC. Estas máquinas iban desde el Libra 100 hasta el Libra 500, con el Libra 590 siendo anunciado en el año 2005. Posteriores Libras, incluyendo el 590, también incorporaron los procesadores Intel Xeon y pueden correr la arquitectura de grandes sistemas de Burroughs en emulación así como en los procesadores MCP CMOS. No está claro si Unisys continuará el desarrollo de nuevos MCP CMOS ASICs.

Burroughs (1961-1986)

B5000 1961 Sistema inicial, computador de 2.ª generación (transistor)

B5500 1964 Mejora de la velocidad 3x(?)2

B6500 1969 Computador de 3.ª generación (circuitos integrados), hasta 4 procesadores

B5700 1971 Nuevo nombre para el B5500

B6700 1971 Nuevo nombre/corrección de error para el B6500

B7700 1972 Procesador más rápido, caché para la pila, hasta 8 procesadores.

B6800 1977? Memoria de semiconductor, arquitectura NUMA

B7800 1977? Memoria de semiconductor, más rápido, hasta 16? procesadores

A Series 1984Reimplementado en un diseño personalizado Motorola ECL MCA1, luego MCA2 gate arrays

Unisys (1986-presente))

Micro A 1989"Mainframe" de escritorio con un procesador en un simple chip SCAMP3 processor.

Clearpath HMP NX 4000

198? ??

Clearpath HMP NX 5000

199? ??

Clearpath HMP LX 5000

1998Implementa grandes sistemas de Burroughs solo en emulación (procesadores Intel Xeon)4

Libra 100 2002? ??

Libra 200 200x? ??

Libra 300 200x? ??

Libra 400 200x? ??

Libra 500 2005? ej. Libra 5955

Libra 600 2006? ??

ALGOL[editar]

Artículo principal: ALGOL

Los grandes sistemas de Burroughs implementaron una arquitectura de pila derivada del ALGOL, a diferencia de arquitecturas lineares tales como las del PDP-11, Motorola M68k, eItanium y arquitecturas segmentadas como x86 y Texas Instruments. (Esto se refiere a la disposición de la memoria y cómo un programa la usa).

Mientras que el B5000 fue diseñado específicamente alrededor del ALGOL, esto fue solamente un punto de partida. Otros lenguajes orientados a los negocios como COBOLtambién eran bien soportados, más notablemente por los poderosos operadores de string que fueron incluidos para el desarrollo de compiladores rápidos.

El ALGOL usado en el B5000 es un subconjunto extendido del ALGOL. Incluye poderosas instrucciones de manipulación de string pero excluye ciertas construcciones del ALGOL, notablemente los parámetros formales no especificados. Un mecanismo DEFINE responde a un propósito similar a los #defines encontrados en C, pero está completamente integrado en el lenguaje en lugar de ser un preprocesador. El tipo de datos EVENT facilita la coordinación entre los procesos, y los bloques ON FAULT activan el manejo de fallas del programa.

El nivel de usuario del ALGOL no incluye muchas de las construcciones inseguras necesarias por el sistema operativo u otro software de sistema. Dos niveles de extensiones del lenguaje proporcionan las construcciones adicionales: ESPOL y NEWP para escribir el MCP y el software estrechamente relacionado, y DCALGOL y DMALGOL para proporcionar extensiones más específicas para las clases específicas de software de sistema.

ESPOL y NEWP[editar]

Originalmente, el sistema operativo MCP del B5000 fue escrito en una extensión ALGOL llamada Executive Systems Programming Oriented Language (ESPOL), (Lenguaje Orientado a la Programación de Sistemas Ejecutivos). A mediados de los años 1970 fue remplazado por un lenguaje llamado NEWP. Aunque NEWP probablemente solo significaba "New Programming language" (Nuevo Lenguaje de Programación), las leyendas rodean el nombre. Una historia común (quizás apócrifa) alrededor de Burroughs en ese entonces sugirió que el nombre viene de "No Executive Washroom Privileges" (No Privilegios al Servicio Ejecutivo). Otra historia es que aproximadamente en 1976, John McClintock de Burroughs (el ingeniero de software que desarrolló el NEWP) llamado el lenguaje "NEWP" después de que se le preguntó, otra vez, "¿ya tiene un nombre?": contestando "nyoooop" (no), él adoptó eso como un nombre. NEWP, era también un subconjunto de la extensión del ALGOL, pero fue más seguro que ESPOL, y eliminó algunas complejidades poco usadas del ALGOL. De hecho, todas las construcciones inseguras son rechazadas por el compilador NEWP a menos que haya un bloque específicamente marcado para permitir esas instrucciones. Estos bloques marcadores proporcionan un mecanismo de protección multi-nivel.

Los programas de NEWP que contienen construcciones inseguras son inicialmente no ejecutables. El administrador de seguridad de un sistema tienen la capacidad de "bendecir" tales programas y hacerlos ejecutables, pero los usuarios normales no pueden hacer esto. (Incluso los "usuarios privilegiados", quienes normalmente tienen privilegios de root, pueden no estar capacitados para hacer esto dependiendo de la configuración elegida por el sitio). Mientras NEWP puede ser usado para escribir programas generales y tiene un número de características diseñadas para los grandes proyectos de software, no soporta todo lo que hace ALGOL.

NEWP tiene un número de facilidades para permitir proyectos de software en grande, tales como el sistema operativo, incluyendo interfaces nombradas (funciones y datos), grupos de interfaces, módulos, y supermódulos. Los módulos agrupan datos y funciones juntos, permitiendo el fácil acceso a los datos como globales dentro del módulo. Las interfaces permiten a un módulo importar y exportar funciones y datos. Los supermódulos permiten que los módulos sean agrupados.

DCALGOL y el Message Control Systems (MCS)[editar]

El segundo de nivel intermedio de seguridad entre el código del sistema operativo (en NEWP) y los programas de usuario (en ALGOL) es para los programas middleware, que son escritos en Data Comms ALGOL (DCALGOL). Esto se utiliza para la recepción y despacho de mensajes, que remueve mensajes los queues de entrada y los coloca en los

queues para manejar otros procesos en el sistema. El middleware como COMS (introducido alrededor de 1984) recibe mensajes desde alrededor de la red y despacha estos mensajes a procesos de manejo específicos o a un Message Control System (MCS) (sistema de control de mensaje) como por ejemplo "Command AND Edit" (CANDE) (Comando y edita), el ambiente de desarrollo de programas.

Los MCS son elementos de software dignos de mención - ellos controlan las sesiones de usuario y proporcionan seguimiento del estado del usuario sin tener que correr procesos por usuario puesto que una sola pila de MCS puede ser compartido por muchos usuarios. El balance de carga también puede ser alcanzado a nivel del MCS. Por ejemplo diciendo que se quieren manejar 30 usuarios por pila, en este caso si se tienen 31 a 60 usuarios, se tendrán dos pilas, de 61 a 90 usuarios, tres pilas, etc. Esto da a las máquinas B5000 una gran ventaja de desempeño en un servidor puesto que no se necesita iniciar otro proceso de usuario y así crear una nueva pila cada vez que un usuario se conecta al sistema. Así que se pueden servir efectivamente los usuarios con los MCSs (independientemente de si requieren estado o no). Los MCSs también proporcionan la espina dorsal del procesamiento transaccional a gran escala.

El MCS hablaba con un coprocesador externo, el Terminal Control Processor (TCP) (procesador de control de terminal). Este era un minicomputador de 24 bits con una arquitectura de registro convencional y capacidad de hardware de entrada-salida para manejar miles de terminales remotos. El TCP y el B6500 se comunicaban por mensajes en memoria, esencialmente paquetes, en términos de hoy, y el MCS hacía el procesamiento de esos mensajes del lado del B6500. El TCP tenía un ensamblador, pero éste era el compilador ALGOL del B6500. Había una función del ALGOL para cada clase de instrucción del TCP, y si se llamara esa función entonces los correspondientes bits de instrucción TCP serían emitidos a la salida. Un programa TCP era un programa ALGOL que no abarcaba nada más que una lista larga de llamadas a estas funciones, una para cada declaración de lenguaje ensamblador. Esencialmente el ALGOL actuaba como el paso macro de un macro ensamblador. El primer paso era el compilador de ALGOL; el segundo paso corría el programa resultante (en el B6500) que entonces emitiría el binario para el TCP.

DMALGOL y las bases de datos[editar]

Otra variante del ALGOL es el Data Management ALGOL (DMALGOL) (ALGOL de gestión de datos). DMALGOL es ALGOL extendido para compilar el software de bases de datos DMSII  desde los archivos de descripción de base de datos creados por el compilador DASDL. Los diseñadores y los administradores de base de datos compilan descripciones de base de datos para generar el código DMALGOL adaptado para las tablas y los índices especificados. Los administradores nunca necesitan escribir ellos mismos en DMALGOL. Los programas a nivel de usuario normales obtienen el acceso a la base de datos al usar el código escrito en lenguajes de aplicación, principalmente ALGOL y COBOL, extendidos con instrucciones de base de datos y directivas de tratamiento transaccional. La característica más notable de DMALGOL son sus mecanismos de procesamiento para generar el código para manejar las tablas y los índices.

El procesamiento de DMALGOL incluye variables y bucles, y puede generar nombres basados en variables de tiempo de compilación. Esto permite la adaptación mucho más allá de lo que puede ser hecho por facilidades de procesamiento que carecen bucles.

El DMALGOL es usado para proporcionar las rutinas de acceso adaptadas para las bases de datos DMSII. Después de que una base de datos es definida usando el Data Access and Structure Definition Language (DASDL) (Lenguaje de Definición Estructurado y de Acceso de Datos), el esquema es traducido por el preprocesador en rutinas adaptadas de acceso DMALGOL y después compilado. Esto significa que, a diferencia de otras implementaciones de DBMS, a menudo no hay necesidad de código if/then/else específico de base de datos en tiempo de ejecución. En los años 1970, estas "adaptaciones" fueron usadas muy extensivamente para reducir el tamaño y el tiempo de ejecución del código. Fue usado mucho menos en años posteriores, en parte porque el ajuste fino de bajo nivel

para la memoria y la velocidad llegó a ser menos crítico, y en parte porque eliminando el preprocesamiento hace la codificación más simple y por lo tanto permitiendo optimizaciones más importantes.

En años posteriores, ya no siendo una preocupación el tamaño de código del compilador, la mayor parte de las construcciones de preprocesamiento fueron hechas disponibles en el nivel de usuario de ALGOL. Solamente las construcciones inseguras y el procesamiento directo del archivo de descripción de la base de datos permanecen restringidas a DMALGOL.

Roy Guck de Burroughs fue uno de los principales desarrolladores de DMSII.

Arquitectura de pila[editar]

En muchos de los primeros sistemas y lenguajes, a menudo se les decía a los programadores que no hicieran sus rutinas demasiado pequeñas porque las llamadas y retornos de procedimiento eran operaciones costosas, tenían que ser realizados un número de operaciones para mantener el pila. El B5000 fue diseñado como una máquina de pila - todos los datos del programa eran guardados en la pila a excepción de los arreglos (que incluyen strings y objetos). Esto significó que las operaciones de la pila fueron optimizadas para la eficacia. Como una máquina orientada a pila, no habían registros direccionables para el programador.

La multitarea también era muy eficiente en las máquinas B5000. Hay una instrucción específica para realizar cambios de proceso - MVST (mueve pila).6 Cada pila representa un proceso (una tarea o un hilo) y las tareas pueden resultar bloqueadas esperando peticiones de recursos (que incluye esperar a un procesador para correr en él si la tarea ha sido interrumpida debido a la multitarea preemptiva). Los programas de usuario no pueden realizar un MVST, y en el sistema operativo hay solamente una línea de código donde es hecho esto.

Así que un cambio de proceso procede algo similar a esto - un proceso pide un recurso que no está disponible inmediatamente, quizá una lectura de un registro de un archivo desde un bloque que no está actualmente en memoria, o el temporizador del sistema (timer) ha disparado una interrupción. Entonces se entra al código del sistema operativo y corre encima de la pila del usuario. Apaga los temporizadores del proceso del usuario. El proceso actual es puesto en la cola (queue) apropiada para el recurso pedido, o la cola esperando por el procesador si esto es un cambio de contexto preemtivo. El sistema operativo determina el primer proceso en la cola e invoca la instrucción move_stack, que hace al proceso en la cabeza de la cola activo.

Velocidad de la pila y desempeño[editar]

Algunos de los detractores de la arquitectura B5000 creyeron que la arquitectura de pila era inherentemente lenta comparada con las arquitecturas basadas en registros. El truco para la velocidad del sistema es guardar los datos tan cerca al procesador como sea posible. En la pila del B5000, esto fue hecho asignando las dos posiciones superiores de la pila a dos registros, A y B. La mayoría de las operaciones son realizadas en esas dos posiciones del tope de la pila. En máquinas más rápidas después del B5000, una mayor parte de la pila se podía mantener en registros o un cache cerca del procesador.

Así los diseñadores de los sistemas B5000 actuales pueden optimizar en cualquier cosa que sea la última técnica, y los programadores no tienen que ajustar su código para que corra más rápido - incluso no necesitan recompilar, protegiendo así la inversión en software. Se sabe que algunos programas han corrido por años sobre muchas mejoras del procesador. Tales mejoras en velocidad son limitadas en las máquinas basadas en registros.

Otro punto para la velocidad, según lo promovido por los diseñadores RISC, era que la velocidad de procesador es considerablemente más rápida si todo está en un solo chip. Esto era un punto válido en los años 1970, cuando las arquitecturas más complejas tales

como el B5000 requirieron demasiados transistores para caber en un solo chip. Sin embargo, éste no es el caso hoy en día, y cada máquina sucesora del B5000 ahora cabe en un solo chip, así como también las técnicas de soporte de desempeño tales como caches y tuberías de instrucción (instruction pipelines).

De hecho, la línea Series A de sucesores del B5000 incluyó el primer mainframe en un simple chip, el Micro-A de finales de los años 1980. Este chip de "mainframe" (llamado Single-Chip A-series Mainframe Processor (SCAMP))descansaba en una tarjeta de circuito impreso enchufable basada en Intel.

ILLIAC IV

UC del computador paralelo ILLIAC IV

El ILLIAC IV fue uno de los primeros supercomputadores de la historia. Uno de la serie de máquinas de investigación, los ILLIAC de laUniversidad de Illinois, el diseño del ILLIAC IV se caracterizó por un nivel bastante alto de paralelismo con hasta 256 procesadores, solía permitir a la máquina trabajar en grandes conjuntos de datos en lo que más tarde se conocería como procesamiento vectorial. Después de varios retrasos y rediseños, la computadora fue entregada al Ames Research Center de la NASA, en la afueras de San Francisco, en 1971. Después de las pruebas y de 4 años de uso por parte de la NASA, el ILLIAC IV fue conectado a la ARPANet para uso distribuido en noviembre de 1975, convirtiéndose en el primer supercomputador disponible en red, adelantándose al Cray-1 por casi 12 meses.

Índice

  [ocultar] 

1 Orígenes

2 Solomon

3 ILLIAC IV

4 Movimientos ILLIAC

5 Legado

6 Véase también

7 Referencias

8 Enlaces externos

Orígenes[editar]

Al principio de los 1960 el diseño de computadores se estaba acercando al punto del rendimiento decreciente. Por aquel entonces, el diseño de computadoras se centraba

en añadir tantas instrucciones como fuera posible a la CPU de la máquina, un concepto conocido como "ortogonalidad", la cual hacía los programas más pequeños y más eficientes en el uso de la memoria. También hacía a los propios computadores increíblemente complejos, y en una era donde muchos CPUs eran conectados a mano a partir de transistores individuales, el coste de añadir ortogonalidad era a menudo demasiado alto. Añadir operaciones podía potencialmente ralentizar la máquina; la velocidad máxima era definida por el ritmo de la señal en el hardware, la cual era a su vez una función del tamaño en conjunto de la máquina. El estado del arte de las técnicas de diseño de hardware de la época usabatransistores individuales para formar los circuitos lógicos, así que cualquier incremento en la lógica de procesamiento significaba una máquina más grande. La velocidad de las CPUparecían estar alcanzado un estancamiento.

Diversas soluciones a estos problemas fueron exploradas en la década de los sesenta. Una, entonces conocida como solapamiento pero hoy conocida como segmentación, permite a una única CPU trabajar en pequeñas partes de diversas instrucciones al mismo tiempo. Normalmente la CPU obtendría una instrucción de memoria, la "decodificaría", ejecutaría la instrucción y luego escribiría los resultados de vuelta a memoria. Mientras la máquina está trabajando en cualquier de las etapas, por ejemplo decodificación, las otras porciones de la CPU no están siendo usadas. La segmentación permite a la CPU empezar la etapa de carga y decodificación (por ejemplo) de la siguiente instrucción mientras todavía está trabajando en la última, escribiendo los resultados en memoria. La segmentación fue la principal característica del diseño innovador de Seymour Cray, el CDC 7600, el cual superaba a casi todas las demás máquinas sobre 10 veces cuando fue introducido.

Otra solución al problema fue la computación paralela, es decir, el construir computadores a partir de un número de CPU de propósito general. Los "ordenadores" como un todo tendrían que ser capaces de mantener a todas las CPU ocupadas, pidiéndole a cada una trabajar en una pequeña parte del problema y luego juntando el resultado al final en una sola "respuesta". No todas las tareas pueden ser manipuladas de esta forma, y extraer rendimiento a múltiples procesadores sigue siendo un problema incluso hoy en día, aunque el concepto tiene la ventaja de no tener límite teórico de velocidad – si necesitas más rendimiento, simplemente añade más CPU. Las CPU de propósito general eran muy caras, sin embargo, así que cualquier diseño "masivamente paralelo" sería o demasiado caro para ser rentable, o tendría que usar un diseño de CPU mucho más simple.

Solomon[editar]

Westinghouse exploró la última solución en un proyecto conocido como Solomon. Dado que las computadoras de alto rendimiento estaban siendo usadas principalmente para procesamiento matemático en ciencia y tecnología, decidieron centrar el diseño de su CPU en matemáticas únicamente. Ellos diseñaron un sistema en el cual el flujo de instrucciones era adquirido y decodificado por una sola CPU, la unidad de control o UC. La UC se unió a un fila de procesadores construidos para manejar matemáticas de coma flotante únicamente, los "elementos de procesamiento", o EP. Dado que mucha de la complejidad de la CPU de debe a la adquisición de instrucciones y el proceso de decodificación, los EP de Solomon terminaron siendo mucho más simples que la UC, muchos de ellos podían ser construidos sin aumentar los precios. Los diseños de losmicroprocesadores son bastante similares a esta distribución en términos generales, con un solo decodificador de instrucciones alimentando a un número de subunidades dedicadas a procesar ciertos tipos de datos. Donde Solomon difería de los diseños modernos era en el número de subunidades; una CPU moderna puede tener tres o cuatro unidades de enteros y un número similar para coma flotante, en Solomon habían 256 EP, todas dedicadas a coma flotante.

Solomon leería las instrucciones de memoria, las decodificaría, y luego las pasaría a los EP para procesarlas. Cada EP tenía su propia memoria para almacenar operandos y resultados, el módulo de memoria PE, o PEM. La UC podía acceder a toda la memoria vía

un bus de memoria dedicado, donde los EP podían sólo acceder a su propia PEM. Aunque habían problemas, conocidos como embarazosamente paralelos, que podían ser manejados por unidades totalmente independientes, estos problemas son generalmente raros. Para permitir que los resultados de un EP pudieran ser usados como entradas de otro, una red separada conectaba cada EP a su ocho más cercanos vecinos. Disposiciones similares eran comunes en las máquinas masivamente paralelas en la década de los 80.

A diferencia de los diseños modernos, los EP de Solomon solo podían ejecutar una instrucción cada vez, y todos EP tenían que ejecutar la misma instrucción. Eso significaba que el sistema solo era útil cuando trabajaba con conjuntos de datos que tenían anchos vectores que podían ser distribuidos por los EP. Este tipo de problemas eran comunes en el procesamiento científico, y son muy comunes hoy en día cuando se trabaja con datos multimedia. El concepto de aplicar una solo instrucción a un gran número de elementos de datos al mismo tiempo es ahora común en la mayoría de diseños de microprocesadores, lo que se conoce como SIMD, siglas en inglés de Single Instruction, Multiple Data, en español: Una Instrucción, Múltiples Datos. En Solomon, la UC cargaría normalmente los PEMs con datos, esparciendo las instrucciones entre los PEMs, y luego empezando a introducir las instrucciones a los EP, una cada ciclo de reloj.

Bajo un contrato con la rama de investigación del Rome Laboratory (RADC) de la Fuerza Aérea de los Estados Unidos, ellos habían construido un prototipo de placa de pruebas en 1964, pero el contrato con el RADC terminó y Westinghouse decidió no seguir por su cuenta.

ILLIAC IV[editar]

Cuando Solomon terminó, el investigador principal, Daniel Slotnick, consiguió el interés de Burroughs, quienes en aquel tiempo no eran capaces de aprovecharse del mercado de alto rendimiento científico. Sin embargo, el desarrollo de una máquina para una base de clientes desconocidos era arriesgado, y Slotnick consiguió que la Universidad de Illinoisfuese tanto su primer cliente como su socio de desarrollo. Como el rendimiento de la máquina era mucho más de lo que la universidad podía hacer uso de, se esperaba que el tiempo de la máquina pudiese ser alquilado a clientes comerciales. En 1964 la universidad firmó un contrato con DARPA para financiar el esfuerzo, el cual fue conocido como ILLIAC IV, siguiendo con la línea de un número de máquinas de investigación anteriormente desarrolladas allí. El desarrollo empezó en 1965, y un diseño preliminar fue completado en 1966.

En muchos sentidos la máquina fue tratada como un diseño experimental, así que incluía las más avanzadas características entonces disponibles. Los circuitos lógicos estaban basados en circuitos integrados (CI) de lógica de emisores acoplados o ECL, cuando muchas de las máquinas de la época todavía dependían de transistores individuales o CI de baja velocidad. Texas Instruments fue contratada para los CI basados en ECL. Cada EP fue dado 2048-palabras de 240 ns memorias de película fina (más tarde reemplazados pormemoria de semiconductor) para el almacenamiento de resultados. Burroughs también suministraba las unidades de disco especializadas, las cuales se caracterizaban por una cabeza estacionaria separada para cada pista y podía ofrecer velocidades hasta de 500 Mbit/s y almacenaba cerca de 80 MB por cada disco de 36". Ellos también suministraban el mainframe Burroughs B6500 que actuaba como controlador de front-end. Conectado al B6500 estaba un medio de almacenamiento de láser óptico, un sistema de una sola escritura que almacenaba hasta 1 Tbit en un disco de plástico cubierto por una fina capa de película metálica.

El ILLIAC fue un diseño 64-bit, en una era pre-ASCII donde las máquinas de 48-bits eran los más común y no existía una longitud de palabra "estándar". La CPU tenía sesenta y cuatro registros de 64-bits y otros cuatro acumuladores de 64-bit. Los EP tenían solo seis registros de 64-bits, cada uno con propósito especial. Uno de estos, RGR, era usado para comunicar datos a los EP vecinos, moviendo un "hop" por ciclo de reloj. Otro, RGD,

indicaba si el EP estaba activo en ese momento. Los EP tenían formatos de instrucciones para datos de 64, 32 y 8-bit, y podían ser colocados en modo de 32-bit que hacía que pareciese que habían 128 EP.

El objetivo del diseño buscaba una computadora con la habilidad de procesar un billón de operaciones de coma flotante por segundo, o en la terminología de hoy, 1 GFLOPS. Para realizar esto el diseño básico requeriría 256 EP corriendo a 13 MHz, dirigidos por cuatro CPUs. Originalmente ellos pretendían colocar todos los 256 EP en un único y granmainframe, pero el proyecto rápidamente empezó a ir por detrás de lo planificado. En vez de eso, una modificación fue hecha para dividir las ALUs en cuadrantes de 64 con una sola UC cada, colocados en armarios separados. Finalmente se hizo evidente que solo un cuadrante podría estar disponible en un tiempo realista, reduciendo la capacidad de 1 GFLOPS a cerca de 200 MFLOPS.

El trabajo en la universidad estaba principalmente centrado en encontrar formar eficientes de llenar los EP con datos. A no ser que el "problema" siendo alimentado a la computadora pudiera ser paralelizado de forma SIMD, el ILLIAC no sería más rápido que cualquier otro computador, y mucho más lento que los diseños de otras compañías comoControl Data, el cual se caracterizaba por velocidades de reloj mucho más altas. Con el objetivo de hacer esto tan fácil como fuera posible, varios nuevos [lenguaje de programación|lenguajes de programación] fueron creados; IVTRAN y TRANQUIL eran versiones paralelizadas de FORTRAN, y Glypnir era una conversión similar de ALGOL. Generalmente estos lenguajes proporcionaban soporte para carga de vectores de datos entre los EP para ser ejecutados en paralelo, e incluso algún soporte para el desenrollado de bucles en operaciones con vectores.

Movimientos ILLIAC[editar]

Cuando el computador era construido en los finales de los 1960, se encontró con hostilidades por los protestantes que sospechaban de la unión de la universidad con elDepartmento de Defensa (a través de ARPA), y sentían que la universidad se había vendido a una conspiración. Los protestantes alcanzaron el punto de ebullición el 9 de Mayo de 1970, en el día de la "Illiacción".1 Tres meses después del bombardeo de Sterling Hall el 24 de agosto en el edificio de matemáticas de la universidad de Wisconsin,2 la universidad de Illinois decidió retirarse del proyecto, y lo movió a una localización más segura. El trabajó lo adquirió la NASA, entonces con buen presupuesto en los años post-Apollo e interesada en casi cualquier cosa de "alta tecnología". Formaron la nueva división de computación avanzada, y movieron la maquina a Moffett Field, California, donde se encontraba el Ames Research Center.

El movimiento ralentizó el desarrollo, y la máquina no se completó hasta el 1972. Para entonces la estimación original de $8 millones el primer diseño en 1966 había aumentado a $31 millones, mientras que el rendimiento había disminuido aún más, de 1 GFLOPS a 250 MFLOPS o quizás 100 MFLOPS con picos de 150. La NASA también decidió reemplazar el B6500 con un PDP-10, de uso común en el AMES, pero esto requeriría del desarrollo de nuevo compiladores y programas de soporte. Cuando el ILLIAC fue finalmente encendido en 1972 se encontró meramente operable y fallando continuamente. Los esfuerzos para corregir la estabilidad permitieron ejecutar el primer programa completo en 1974, y su completa operación en 1975. Incluso la "completa operación" estaba algo limitada; la máquina operaba solo de lunes a viernes y tenía hasta 40 horas de mantenimiento planeado cada semana. La primera aplicación completa que corrió en la máquina fue en 1976, el mismo año que el Cray-1 fue lanzado con básicamente el mismo rendimiento.

No obstante, el ILLIAC fue usándose de manera incremental en los siguientes años, y el Ames le añadió su propia versión de FORTRAN, CFD. En problemas que podían se paralelizados la máquina era todavía la más rápida del mundo, mejorando el rendimiento del CDC 7600 de dos a seis veces, y es la generalmente acreditada máquina más rápida del mundo hasta 1981. Para la NASA, la máquina era "perfecta", dado que el rendimiento

se afinó para programas ejecutando la misma operación sobre conjuntos de datos, que es exactamente de lo que trata la mecánica de fluidos computacional. La máquina fue finalmente decomisionada en 1982,y la división de computación avanzada de la NASA terminó con ella.

Burroughs fue capaz de usar el diseño básico solo para un sistema comercial, el Parallel Element Processing Ensemble, o PEPE. PEPE fue diseñado para permitir seguimiento de alta precisión de 288 ICBMs misiles, cada uno asignado a un PE modificado. Burroughs construyó solo un sistema PEPE, aunque una continuación del diseño fue construida por losLaboratorios Bell.

La unidad de control del ILLIAC IV y el chasis de uno de los elementos de procesamiento se encuentran ahora en el Museo Histórico de Ordenadores en Mountain View, California.

Legado[editar]

Aunque el esfuerzo del ILLIAC terminó con resultados desalentadores, intentos de entender las razones del fracaso de la arquitectura del ILLIAC IV avanzaron la investigación en computación paralela. Durante los 1980s un número de compañías usaron la misma aproximación para construir incluso más máquinas paralelas, con compiladores que podían hacer un mejor uso del paralelismo. Las CM-1 y CM-2 de la corporación Thinking Machines Corporation son excelentes ejemplos del concepto "clásico" del ILLIAC IV, aunque ellos también incluyeron una mucho mejor conectividad entre sus PE con el objetivo de evitar los cuellos de botella que reducían el conjunto de problemas adecuados para el uso en el ILLIAC.

La mayoría de los supercomputadores de la época tomaron otra aproximación a la computación de altas prestaciones, usando un único procesador vectorial de muy alta velocidad. Similares al ILLIAC al menos en concepto, estos diseños de procesadores cargaban muchos elementos de datos en un solo procesador específico en vez de en un gran número de procesadores menos potentes. El ejemplo clásico de este diseño es el Cray-1, el cual tenía un rendimiento parecido al del ILLIAC, pero era capaz de proporcionar este rendimiento paralelo a una más amplia gama de problemas, no solo a aquellos que era altamentemente paralelos. Hubo más de una pequeña reacción en contra del diseño del ILLIAC como resultado, y durante un tiempo el mercado de supercomputadores miró los diseños masivamente paralelos con desdén, incluso cuando eran exitosos. Tal y como dijo el famosoSeymour Cray, "Si estuvieses arando un campo, qué preferirías usar? Dos fuertes bueyes o 1024 pollos?"

Pero el tiempo ha probado que la aproximación del ILLIAC es la mejor para casi toda la computación científica. Hoy, los supercomputadores son casi universalmente compuestos por ordenadores comunes, precisamente el concepto en el que el ILLIAC fue pionero. El progreso en la tecnología de compiladores explica mucho de esto, aunque la rápida, y quizás inesperada, continua mejora del diseño de microprocesadores hizo el diseño de vectores propios más lentos en casi todas las cargas de trabajo.