Los 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 que continuaba operando en el área de la computación, pero hacia finales de la década de 1950, su equipo de 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 que han usado esta arquitectura todavía estaban en producción en 2010 como 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.
B5000
El primer miembro de la serie, el B5000, fue diseñado a principios de 1961 por un equipo de ingenieros 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".
Características únicas
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. Este 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
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
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 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(?)Burroughs 3rd Generation. 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 1984 Reimplementado en un diseño personalizado Motorola ECL MCA1, luego MCA2 gate arraysUnisys (1986-presente)) Micro A 1989 "Mainframe" de escritorio con un procesador en un simple chip SCAMPSCAMP picture at dave's Old computers processor. Clearpath HMP NX 4000 198? ?? Clearpath HMP NX 5000 199? ?? Clearpath HMP LX 5000 1998 Implementa grandes sistemas de Burroughs solo en emulación (procesadores Intel Xeon)Unisys Accelerates Mainframe Rebirth with New ClearPath Enterprise Servers, Aggressive New Pricing. - Business Wire - HighBeam Research Libra 100 2002? ?? Libra 200 200x? ?? Libra 300 200x? ?? Libra 400 200x? ?? Libra 500 2005? ej. Libra 595Libra 595 Libra 600 2006? ??
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, e Itanium 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 COBOL tambié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