ICT 1900 fue una familia de computadoras mainframe lanzadas por International Computers and Tabulators (ICT) y luego por International Computers Limited (ICL) durante las décadas de 1960 y 1970. La serie 1900 se destacó por ser uno de los pocos competidores no estadounidenses del IBM System/360 , y disfrutó de un éxito significativo en los mercados europeos y de la Commonwealth británica .
A principios de 1963, ICT estaba enfrascada en negociaciones para comprar el negocio de computadoras de Ferranti . Para endulzar el trato, Ferranti le mostró a ICT la máquina Ferranti-Packard 6000 (FP6000), que había sido desarrollada por su subsidiaria canadiense Ferranti-Packard , según un diseño conocido como Harriac que había sido iniciado en Ferranti por Harry Johnson y desarrollado por Stanley Gill y John Iliffe. [1]
El FP6000 era un diseño avanzado, que incluía notablemente soporte de hardware para multiprogramación . ICT consideró utilizar el FP6000 como su procesador de tamaño mediano en el período 1965-1968, reemplazando al ICT 1302. Otro plan que se estaba considerando era licenciar una nueva gama de máquinas que estaba desarrollando RCA , probablemente compatibles con el esperado IBM 8000. [ 2]
La gama inicial de 1900 no sufrió los muchos años de planificación cuidadosa detrás del IBM 360.
-- Virgilio Pasquali [3]
El 7 de abril de 1964, IBM anunció la serie System/360 , una familia de máquinas compatibles que abarcaban prácticamente todas las necesidades de los clientes. Inmediatamente se hizo evidente que las TIC necesitarían una respuesta coherente. Había dos caminos disponibles: desarrollar una gama de máquinas basadas en el FP6000, utilizando la flexibilidad de su diseño para producir máquinas más pequeñas o más grandes, o cooperar con RCA, que estaba reorientando su desarrollo hacia una gama compatible con System/360 que se conocería como RCA Spectra 70 .
Un factor importante a tener en cuenta fue que el FP6000 ya estaba en funcionamiento, mientras que la gama RCA Spectra tardaría algunos años en estar disponible. Al final, se tomó la decisión de optar por una gama de máquinas basadas en el FP6000. La pieza central de la nueva gama fue el ICT 1904, una versión del FP6000 con la interfaz periférica estándar de ICT. Para las máquinas de gama alta, la unidad ICT West Gorton (anteriormente parte de Ferranti) desarrollaría un nuevo procesador más grande, el ICT 1906. Para satisfacer las necesidades de los clientes más pequeños, la unidad ICT Stevenage desarrolló máquinas más pequeñas, el ICT 1901 y el ICT 1902/3, basadas en los procesadores PF182 y PF183 que ya estaban en desarrollo.
El 29 de septiembre de 1964 se anunció la gama ICT 1900 en una presentación filmada, con guión de Antony Jay . La semana siguiente se mostraron dos sistemas en funcionamiento en la Business Equipment Exhibition, Olympia .
La primera venta comercial se realizó en 1964 a la Morgan Crucible Company , que comprendía un 1902 de 16K palabras con un lector de 80 columnas de 980 tarjetas/minuto, una perforadora de tarjetas, una impresora de 600 líneas/minuto y 4 unidades de cinta de 20kchar/s [nb 1] . Pronto se actualizó a una memoria de 32K palabras y una unidad de punto flotante para permitir algún trabajo científico. La misma empresa también había sido la primera en encargar el primer ordenador de ICT, el HEC4 (posteriormente ICT 1201), en 1955.
El primer sistema entregado fue el modelo 1904, para el Northampton College of Advanced Technology , en Londres, en enero de 1965.
La ICT 1900 era una máquina de direccionamiento de palabras que utilizaba una arquitectura de registro a memoria con ocho registros acumuladores , tres de los cuales podían utilizarse como registros modificadores ( índice ). La longitud de las palabras era de 24 bits , que podían utilizarse como cuatro caracteres de seis bits; se proporcionaban instrucciones para copiar caracteres individuales hacia y desde la memoria.
Los acumuladores eran direccionables como si fueran las primeras ocho palabras de la memoria, lo que daba el efecto de instrucciones de registro a registro sin necesidad de códigos de operación adicionales. Los registros de hardware eran una característica opcional y, si no estaban instalados, los acumuladores eran las primeras ocho palabras de la memoria. La gran cantidad de características opcionales en el diseño del FP6000 le dio a ICT una gran flexibilidad en cuanto a precios.
Una característica notable de la serie era el soporte de hardware (en todos los procesadores, excepto en los más pequeños) para ejecutar múltiples procesos: cada proceso se ejecutaba en un espacio de direcciones independiente, impuesto por registros de datos y límites . Ningún proceso de usuario podía acceder a la memoria de ningún otro proceso. Los modelos posteriores añadieron hardware de paginación , lo que permitió una verdadera memoria virtual con el sistema operativo GEORGE 4 .
En los modelos originales, el tamaño de la dirección era de 15 bits, lo que permitía hasta 32 000 palabras de memoria. Los modelos posteriores añadieron direccionamiento de 22 bits, lo que permitía una memoria máxima teórica de 4 000 palabras. Las instrucciones contenían un operando de 12 bits, fijo o desplazado respecto de un registro de índice. Las instrucciones de bifurcación tenían un desplazamiento de 15 bits, lo que permitía el acceso a toda la memoria del rango inicial. Cuando el tamaño de la dirección se incrementó a 22 bits, se añadieron bifurcaciones reemplazadas ( indirectas ) y relativas al conjunto de instrucciones para permitir el acceso a un espacio de direcciones más grande.
El mayor cambio entre el FP6000 original y la serie 1900 fue la inclusión de la interfaz estándar ICT para la conexión de periféricos. Esto permitió la conexión de cualquier periférico ICT a cualquier procesador de la serie, y los propietarios podían actualizar sus procesadores manteniendo los mismos periféricos o viceversa.
Todas las operaciones de E/S eran iniciadas por un proceso supervisor privilegiado, conocido como el ejecutivo . Los procesos de usuario se comunicaban con el ejecutivo mediante códigos adicionales , instrucciones que provocaban una trampa en el ejecutivo. El ejecutivo se comunicaba entonces con el periférico apropiado a través de la interfaz estándar, utilizando funciones que no estaban disponibles para los procesos de usuario. Las transferencias de datos posteriores se producían entonces a través de esta interfaz, de forma autónoma y sin más intervención del programa. La conclusión de las transferencias (o el error, si lo hubiera) se indicaba de forma similar al ejecutivo.
En los modelos más pequeños de la serie, también se implementaron algunas instrucciones costosas ( por ejemplo, de punto flotante ) como códigos adicionales. La combinación del ejecutivo y el hardware proporcionó la misma interfaz a los programas que se ejecutaban en cualquier modelo de la gama.
La unidad de punto flotante de hardware, si estaba instalada, funcionaba de manera autónoma. Después de iniciar una operación de punto flotante, se podían ejecutar instrucciones enteras en paralelo hasta que se necesitara el resultado de la operación de punto flotante.
El conjunto de instrucciones admitía los siguientes formatos de datos:
Dado que las TIC de 1900 utilizaban caracteres de seis bits, su uso estaba limitado en gran medida a un repertorio de 64 caracteres, con solo letras mayúsculas y sin caracteres de control .
Para poder manejar datos en cintas de papel o de equipos de comunicaciones, se podía utilizar un sistema de desplazamientos para representar los 128 caracteres completos del ASCII . El carácter n.° 74 (es decir, octal 74) se consideraba un desplazamiento alfa e indicaba que los caracteres subsiguientes debían considerarse mayúsculas, el n.° 75 era un desplazamiento beta e indicaba que los caracteres subsiguientes estaban en minúsculas, y el n.° 76 era el desplazamiento delta , que indicaba que el siguiente carácter era un carácter de control. De este modo, la cadena ASCII "Hola mundo" se codificaría como " αHβELLO αWβORLD
". El carácter n.° 77 era un carácter de relleno (ignorar), similar al carácter de borrado en el mundo de 7 bits.
En 1900 se utilizó una variante del ASCII-63 , conocida por las TIC como el conjunto de caracteres ECMA , con diferencias en cinco códigos de caracteres:
Tanto la serie 1900 como IBM System/360 proporcionaban soporte de hardware para multiprogramación. En el 1900, todas las direcciones de memoria de usuario se modificaban mediante un registro de datos (dirección base) y se comprobaban con un registro de límites ( base and bounds ), lo que impedía que un programa interfiriera con otro. El System/360 daba a cada proceso y a cada bloque de memoria de 2048 bytes una clave de cuatro bits, y si una clave de proceso no coincidía con la clave del bloque de memoria se producía una excepción. El sistema 1900 exigía que los programas ocuparan un área contigua de memoria, pero permitía que los procesos se reubicaran durante la ejecución, lo que simplificaba el trabajo del sistema operativo. El 1900 también permitía a cualquier proceso acceder directamente a las primeras 4096 palabras de su espacio de direcciones. (Tanto el 1900 como el 360 tenían un campo de operandos de 12 bits, pero en el 360 las direcciones eran direcciones físicas , de modo que un programa podía acceder directamente a los primeros 4096 bytes de memoria física ).
El System/360 tenía la ventaja de un mayor tamaño de palabra y de carácter; sus palabras de 32 bits eran lo suficientemente grandes para números de punto flotante (de baja precisión), mientras que el 1900 necesitaba al menos dos palabras. El byte de ocho bits del System/360 permitía la manipulación de caracteres en minúscula sin las complejas secuencias de desplazamiento del 1900. Sin embargo, en los primeros tiempos, el menor tamaño de palabra del 1900 se consideraba una ventaja de coste, ya que la memoria podía ser un 25% más barata para la misma cantidad de palabras.
La gama inicial de máquinas fue:
El tiempo de ejecución de una instrucción de adición ("agregar el contenido de la ubicación de almacenamiento x al registro y") varió desde 2,5 μs para un 1906 o 1907 con un almacenamiento central de 1,1 μs, hasta 34 μs para un 1901 con un almacenamiento central de 6 μs.
Todas las máquinas, excepto la 1901, se operaban desde un teletipo modelo 33 ASR modificado que se utilizaba para dar órdenes al ejecutivo . La 1901 se operaba desde conmutadores de consola, con una consola disponible como extra opcional.
Se disponía de una amplia gama de periféricos, entre ellos perforadoras y lectores de tarjetas de 80 columnas , perforadoras y lectores de cintas de papel de 8 pistas e impresoras de líneas de barril sólido. Los datos se podían almacenar en cintas magnéticas de media pulgada de bobina abierta o en casetes de cinta magnética de 8 pistas de una pulgada. El almacenamiento en disco magnético estuvo disponible en 1966. [8]
En 1968 ICT introdujo las máquinas de la serie E:
Las mejoras en los subsistemas de memoria de estas máquinas, reemplazando el núcleo de 1,8 μs por un núcleo de 0,75 μs, se introdujeron como la serie F. [9]
(ICT se fusionó con English Electric Computers para formar ICL el 9 de julio de 1968. Por lo tanto, aunque la serie E había sido diseñada por ICT, muchas, si no todas, se entregaron con insignias ICL).
En 1969 se entregó la serie 1900 A, [10] reemplazando las máquinas restantes de la serie inicial y las máquinas E/F. Las implementaciones originales de semiconductores discretos de germanio fueron reemplazadas por circuitos integrados TTL de la serie 7400 de Texas Instruments en la mayor parte de la gama y circuitos integrados ECL MECL 10K de Motorola en el nuevo 1906A (que se basaba en el 1906 original en lugar del procesador dual 1904 del 1906E/F). Hubo una propuesta para construir una versión multiprocesador del 1906A, el 1908A (conocido internamente como Proyecto 51), que permitiría a ICL competir con las grandes máquinas CDC e IBM en universidades y centros de investigación, pero finalmente se abandonó a favor de acelerar el trabajo en el New Range , que se estaba diseñando para reemplazar tanto a la serie 1900 como al ICL System 4. [ 11]
Con la serie A, una unidad de punto flotante de hardware se convirtió en una característica opcional de todas las máquinas, en lugar de tener un número de modelo diferente para las máquinas equipadas con punto flotante.
El modo de direccionamiento de 22 bits y el modo de rama extendida introducidos por el 1906 se extendieron al 1902A y al 1903A, pero no al 1901A, mucho más pequeño.
ICL introdujo una unidad de paginación en las máquinas de gama alta (1904A, 1906A) y una nueva versión del sistema operativo GEORGE , GEORGE 4, que era compatible con GEORGE 3 pero utilizaba memoria virtual paginada en lugar del simple sistema de datos/límites de las máquinas anteriores.
En abril de 1971, ICL anunció la serie S de máquinas, reemplazando el almacenamiento central de las máquinas anteriores con memoria de semiconductores en la mayor parte de la gama y una memoria de cable niquelado Plessey muy rápida para la gama más alta, la 1906S.
A medida que se iban introduciendo los modelos más grandes de la nueva gama, se decidió que los modelos inferiores de la gama 1900 ya no eran competitivos. Para renovar la gama, se lanzaron nuevos modelos. En cada caso, el modelo se basaba simplemente en el modelo inmediatamente superior de la gama anterior; por ejemplo, el 1903T se basaba en el 1904S.
Durante y después de la producción de la serie 1900, una serie de máquinas compatibles (o clónicas ) fueron producidas por licenciatarios de ICL , así como por competidores.
En 1969 IBM había presentado la máquina de nivel de entrada System/3 , que comenzó a reducir las ventas de los modelos ICL 1901 y 1902. Para recuperar el mercado, se inició un proyecto ICL conocido internamente como PF73, basado en una máquina microprogramada desarrollada por ICL Stevenage conocida como MICOS-1, que llegó al mercado en 1973 como ICL 2903 y 2904. A pesar de su numeración New Range , estas máquinas usaban el conjunto de instrucciones ICL 1900 y ejecutaban software 1900, aunque había un microprograma disponible que proporcionaba un conjunto de instrucciones IBM-360 para permitirles ejecutar software IBM. Los 2903/2904 se lanzaron con un compilador RPG para competir mejor con System/3 . [13] Fue un éxito comercial y se vendieron casi 3000 máquinas.
Basado en una CPU totalmente microprogramada, la Stanford EMMY comercializada por Palyn Associates, el ME29 se vendió como reemplazo del 2903 y 2904, aún ejecutando el código de pedido 1900.
Se estimó que un procesador EMMY que emulaba el código de pedido del IBM 360 tenía aproximadamente la velocidad de un IBM System/360 Modelo 50 , lo que implica que el ME29 era más rápido que el ICT 1904 original, acercándose a la velocidad del ICT 1906. [14]
En un esfuerzo por aumentar las ventas a los clientes de ICL y aprovechar las dificultades que estaba teniendo ICL para trasladar a los clientes del 1900 al New Range, IBM introdujo un paquete de microcódigo para el 370/145 que permitía la ejecución de programas de la serie 1900. [15] [16]
La serie Odra 1300 (Odra 1304, Odra 1305 y Odra 1325) fue una gama de 1900 máquinas compatibles construidas por Elwro en Wrocław , Polonia entre 1971 y 1978. Por acuerdo con ICL, las máquinas Odra ejecutaban software estándar de ICL (E6RM ejecutivo, George 3).
Las versiones "S3E" (microcodificadas) de segunda generación de los sistemas New Range más grandes (como el 2960/2966 de West Gorton y el posterior 2940/50 de Stevenage) podían ejecutar código de la serie 1900 bajo DME ( Direct Machine Environment ) como emulación, así como el conjunto de instrucciones New Range bajo el nuevo VME (Virtual Machine Environment). Más tarde se desarrolló el microcódigo CME (Concurrent Machine Environment) , que permitió que DME y VME coexistieran (y se ejecutaran) simultáneamente en la misma plataforma, de forma similar a la funcionalidad que ofrece el software de virtualización como VMware en la actualidad.
El FP6000 funcionaba bajo el control del operador Executive , un sistema operativo sencillo que permitía al operador utilizar la consola del sistema para cargar programas desde cintas magnéticas, tarjetas o cintas de papel, asignar periféricos a los programas y atribuir prioridades a los programas en ejecución. Executive realizaba todas las operaciones de E/S en nombre de los programas de usuario, lo que permitía la asignación de diferentes periféricos según fuera necesario.
A pesar de su simplicidad, el sistema ejecutivo era, para la época, bastante potente, ya que asignaba memoria a los programas según fuera necesario (en lugar de las particiones fijas que proporcionaba OS/360 ). Esto era posible porque el diseño del FP6000 contenía hardware para facilitar la multiprogramación , registros de datos y límites , que hacían que los programas fueran independientes de las direcciones (reubicables) e impedían que un programa accediera a la memoria asignada a otro.
Para permitir un uso más eficiente de los periféricos, así como ejecutar múltiples programas simultáneamente, el ejecutivo permitió un multi-hilo limitado dentro de los programas (cada programa podía dividirse en hasta cuatro subprogramas, compartiendo el mismo espacio de direcciones, que también eran compartidos en el tiempo; mientras un subprograma esperaba actividad periférica, otro podía continuar el procesamiento).
Una versión extendida del sistema operativo FP6000 se proporcionó con el ICT 1904/1905, y se escribieron nuevas versiones para el ICT 1906/7 y el ICT 1901/2/3. Una tarea importante de estas diferentes versiones era ocultar las diferencias de hardware entre las diferentes máquinas, proporcionando emulación de instrucciones faltantes como códigos adicionales . El concepto era que las aplicaciones, y más tarde los sistemas operativos, se escribían para ejecutarse en la combinación del hardware y el sistema operativo, y por lo tanto se ejecutarían en cualquier miembro de la serie, sin importar cuán diferente fuera el hardware subyacente.
Con la introducción de los sistemas de discos magnéticos, los sistemas ejecutivos se volvieron más complejos y se utilizaba la superposición para reducir el uso de memoria . Los sistemas ejecutivos basados en discos incluían funciones para simplificar las operaciones de disco y gestionar archivos (creación, cambio de nombre, eliminación, cambio de tamaño) en nombre de los programas de usuario. Los archivos se identificaban mediante nombres de 12 caracteres y un programa de usuario no necesitaba saber qué disco físico se estaba utilizando para un archivo.
En diciembre de 1964, ICT creó una rama de sistemas operativos para desarrollar un nuevo sistema operativo para 1906/7. La rama inicialmente contaba con personal que se liberó al finalizar el trabajo en el sistema operativo OMP para Ferranti Orion . El diseño inicial del nuevo sistema, llamado George en parte por George E. Felton , [nb 2] jefe de la División de Programación Básica, se basó en ideas de Orion y el sistema de spooling del ordenador Atlas . [17] La versión inicial, George 1 (para las máquinas ICT 1901, 1902 y 1903), era un sistema de procesamiento por lotes simple . Las descripciones de trabajo se leían desde tarjetas o cintas de papel , los periféricos y los archivos de cinta magnética se asignaban dinámicamente al trabajo, que luego se ejecutaba, produciendo una salida en la impresora de línea.
George II añadió el concepto de spooling . Los trabajos y los datos de entrada se leían desde tarjetas o cintas de papel a un espacio de entrada en el disco o la cinta. A continuación, se ejecutaban los trabajos, escribiendo la salida en archivos de spool del disco o la cinta, que luego se escribían en los periféricos de salida. Las etapas de entrada/procesamiento/salida se ejecutaban en paralelo, lo que aumentaba la utilización de la máquina. En máquinas más grandes, era posible ejecutar varios trabajos simultáneamente.
George 1 y 2 se ejecutaban como programas simples bajo el ejecutivo (con estatus de confianza que les permitía controlar los programas de usuario). George 3 era un sistema operativo completo en sí mismo, utilizaba un ejecutivo mucho más reducido, responsable únicamente de manejar el acceso de hardware de bajo nivel. George 3 implementó tanto el procesamiento por lotes como la programación en línea múltiple (MOP), es decir, el uso interactivo desde terminales.
George 4 se introdujo con la disponibilidad de hardware de paginación en las máquinas posteriores e implementó memoria virtual paginada en lugar del intercambio simple utilizado por George 3.
Las TIC proporcionaron inicialmente el lenguaje ensamblador PLAN (Programming LAnguage Nineteen hundred) y más tarde los "tres grandes" lenguajes de alto nivel: ALGOL 60 , COBOL y FORTRAN 66 .
Los compiladores se lanzaron en varias versiones, de creciente sofisticación. Inicialmente, se utilizaron cintas de papel y tarjetas para la entrada y salida; más tarde, cintas magnéticas y, finalmente, archivos de disco. Las primeras versiones de los compiladores se ejecutaban en un espacio muy limitado, comenzando alrededor de 4K palabras para PLAN y NICOL y tan solo 16K palabras para FORTRAN y ALGOL. Las versiones posteriores para los sistemas operativos George 3 y 4 se ampliaron a tamaños de hasta 48K palabras.
Otros idiomas disponibles incluyen:
Al igual que muchas máquinas contemporáneas, gran parte del software de aplicación se incluía con el sistema básico, incluidos los compiladores y los programas de utilidad. Otro software estaba disponible como opciones pagas de ICT u otras fuentes, incluidos paquetes tan exóticos como Storm Sewer Design and Analysis .
SCAN
– Sistema de control de stock (Acrónimo: Control y Análisis de Stock de Mil Novecientos )PERT
– Sistema de gestión de proyectos ( Acrónimo : Project Assessment and Review Technique )PROSPER
– Sistema de planificación financiera. El paquete 'Simulación de Utilidades, Planificación y Evaluación de Riesgos' amplió el trabajo previo contenido en PROP (Profit Rating of Projects).NIMMS
– Sistema de control de producción (Acrónimo : Nineteen- Hundred Integrated Modular Management System )PROMPT
– Sistema de control de producción (Acrónimo : Production Reviewing Organization and Monitoring of Performance Techniques )COMPAY
– Programa de nóminas de la empresaDATADRIVE
y DATAVIEW
– Sistema de entrada y consulta de datos en línea, capaz de gestionar un gran número de terminalesFIND
– Archivo Interrogatorio de mil novecientos datos (paquete de análisis de datos)Filetab
– Herramienta para generar informes basados en tablas de decisiones . Filetab fue comercializado por el Centro Nacional de Computación (NCC), creado por el Gobierno británico en Manchester. Inicialmente, era un generador de informes muy flexible y basado en parámetros, con versiones posteriores que permitían amplias capacidades de manejo de archivos. El producto se conoció primero como NITA (Tabulador Nineteen Hundred) y más tarde se conoció como TABN (Tabulador Nineteen Hundred). Se ejecutaba en las máquinas de la serie ICL 1900 y, más tarde, en las computadoras de las series 2900 y 3900. Las instrucciones TABN se interpretaban a partir de tarjetas perforadas en tiempo de ejecución o se podían compilar para producir un programa que se pudiera ejecutar de manera sencilla. Uno de los atractivos de escribir programas en Filetab era su corto tiempo de desarrollo.