stringtranslate.com

GE645

Configuración idealizada del GE-645

El ordenador mainframe GE 645 fue un desarrollo del GE 635 para su uso en el proyecto Multics . Este fue el primer ordenador que implementó un sistema de memoria protegida por hardware configurable. Fue diseñado para satisfacer los requisitos del Proyecto MAC de desarrollar una plataforma que albergara su sistema operativo de tiempo compartido de próxima generación propuesto ( Multics ) y para cumplir con los requisitos de una utilidad informática teórica . [1] El sistema fue la primera máquina multiprocesamiento verdaderamente simétrica en utilizar memoria virtual , también estuvo entre las primeras máquinas en implementar lo que ahora se conoce como un búfer de búsqueda de traducción , [2] [3] [4] cuya patente fundacional fue otorgada a John Couleur y Edward Glaser. [5]

General Electric anunció inicialmente públicamente el GE 645 en la Conferencia Conjunta de Computadoras de Otoño [1] [3] en noviembre de 1965. En una conferencia de prensa posterior en diciembre [6] [7] de ese año se anunció que estarían trabajando para lograr una "amplia disponibilidad comercial" [8] del sistema. Sin embargo, posteriormente lo retirarían de la comercialización activa a fines de 1966. [8] En total, al menos 6 sitios utilizaron sistemas GE 645 en el período de 1967 a 1975. [9]

Configuración del sistema

La configuración básica del sistema consistió en una combinación de 4 módulos básicos [4] [10] estos fueron:

US3525080 Patente que muestra GE-645

Los módulos controladores del sistema (SCM) actuaban efectivamente como el corazón del sistema. Se trataba de dispositivos pasivos que se conectaban a cada dispositivo activo (procesador, GIOC, EMU) y proporcionaban lo siguiente: [4] [11]

En comparación con el resto de la serie 600, el 645 no utilizaba los controladores de entrada/salida (IOC) estándar para E/S. Tampoco utilizaba el procesador frontal DATANET-30 para las comunicaciones. En su lugar, ambos conjuntos de funciones se combinaban en una unidad llamada GIOC (controlador de E/S generalizado) que proporcionaba canales dedicados tanto para E/S periféricas (disco/cinta) como para E/S de terminal. [4] [12] El GIOC actuaba como un dispositivo activo y se conectaba directamente a la memoria a través de enlaces dedicados a cada controlador de sistema que estuviera presente en una configuración específica.

La unidad de memoria extendida, aunque denominada tambor , era en realidad un gran disco duro de cabezal fijo con un cabezal por pista, [13] este era un producto OEM de Librascope . [13] [14] La EMU constaba de 4.096 pistas que proporcionaban 4 MW (megapalabras) de almacenamiento (equivalente a 16 MB). Cada pista tenía un cabezal de lectura/escritura dedicado, estos estaban organizados en grupos de 16 "conjuntos de pistas" que se utilizan para leer/escribir un sector. Un sector es la unidad predeterminada de asignación de datos en la EMU y está formado por 80 palabras, de las cuales 64 palabras son datos y las 16 restantes se utilizaban como banda de guarda. [4] La tasa de transferencia media entre la EMU y la memoria era de 470.000 palabras por segundo, todas las transferencias tenían un ancho de 72 bits (dos palabras), y se necesitaban 6,7 μs para transferir 4 palabras. [4] La unidad tenía una velocidad de rotación de 1.725 rpm, lo que garantizaba una latencia media de 17,4 milisegundos. [4]

Arquitectura

Modos de procesador

El GE-645 tiene dos modos de ejecución de instrucciones (Maestro y Esclavo) heredados del GE-635, sin embargo, también agrega otra dimensión al tener dos modos de direccionamiento de memoria (Absoluto y Anexión). Cuando el proceso se ejecuta en modo absoluto, el direccionamiento está limitado a 2 18 palabras de memoria y todas las instrucciones se ejecutan en modo Maestro. En comparación, el modo Anexión calcula la dirección utilizando "Palabras Anexadas" con un espacio de direcciones de 2 24 palabras y con la ejecución de instrucciones en modo Maestro o Esclavo. [15]

Modo esclavo

De manera predeterminada, este es el modo normal en el que el procesador debería ejecutarse en cualquier momento. Casi todas las instrucciones se ejecutarán en este modo, salvo un pequeño conjunto de instrucciones privilegiadas que no se pueden ejecutar en este modo. La ejecución de dichas instrucciones activará un error de procedimiento ilegal; además, está prohibida la capacidad de inhibir interrupciones (bit 28 de la palabra de instrucción). El formato de las direcciones de instrucción se realiza mediante el proceso de anexión.

Modo maestro

En este modo, el procesador puede ejecutar todas las instrucciones y puede inhibir las interrupciones mientras lo hace. Al igual que en el modo esclavo, la forma predeterminada de formación de direcciones es mediante el proceso de anexión.

Modo absoluto

En este modo se pueden ejecutar todas las instrucciones y se otorga acceso total a todas las funciones privilegiadas del hardware. Se pueden inhibir las interrupciones y la obtención de instrucciones se limita a una dirección absoluta de 218 bits (18 bits), lo que restringe al procesador a solo poder acceder a los 256 KW inferiores de la memoria física del núcleo. El procesador cambiará a este modo en caso de falla o interrupción y permanecerá en él hasta que ejecute la instrucción de transferencia cuya dirección de operando se haya obtenido mediante el proceso de anexión.

Modo de anexión

De manera predeterminada, este es el modo normal de direccionamiento de memoria; tanto el modo maestro como el esclavo normalmente funcionan en este modo. Se accede a las palabras y operandos indirectos a través del mecanismo de adición mediante el proceso de colocar un 1 en el bit 29 de la instrucción ejecutada. Por lo tanto, las direcciones efectivas se agregan a una dirección base o el desplazamiento se vincula a la dirección base.

Unidades funcionales

Unidades funcionales del procesador GE 645

El procesador 645 se dividió en cuatro unidades funcionales principales: [15]

Una de las diferencias clave con el GE 635 fue la adición de una "unidad de anexión" (APU) que se utilizó para implementar un modelo híbrido de "segmentación por páginas" de memoria virtual . La APU también se utilizó para implementar un almacenamiento de un solo nivel , que es una de las abstracciones fundamentales en torno a las cuales se basa Multics. El formato de instrucción también se amplió con el bit 29, que no se utilizaba anteriormente, que controla si la dirección del operando de una instrucción utilizaba un formato de 18 bits (bit 29 = 0) o uno que estuviera formado por una dirección de registro base de 3 bits con un desplazamiento de 15 bits (bit 29 = 1). [4] : 18, 22  [15]

El formato de instrucción con el bit 29 establecido en 1 es:

 1 1 2 2 2 2 3 3 0 2 3 7 8 6 7 8 9 0 5 +---+---------------+---------+-+-+-+------+ |BR | Y | OP |0|I|1| Etiqueta | +---+---------------+---------+-+-+-+------+

Registros de base de direcciones

El GE 645 tenía 8 registros de base de direcciones (abr), [17] que podían funcionar en modo "emparejado" o "no emparejado". [18] El Honeywell 6180 posterior los cambió a 8 registros de puntero. Cada abr tenía 24 bits de ancho y consistía en 18 bits para una dirección y 6 bits para funciones de control. [19]

Un bit del campo de funciones de control indica si un abr es "interno" o "externo". Si un abr es interno, otro subcampo de 3 bits del campo de funciones de control especifica otro abr con el que está emparejado este abr; ese otro abr es externo, con el abr externo conteniendo un número de segmento en el campo de dirección y el abr interno conteniendo un desplazamiento dentro del segmento especificado por el abr externo. [15] : 4–4  Si una instrucción o una palabra indirecta hace referencia a un abr externo, el campo de dirección en la instrucción o palabra indirecta se utiliza como un desplazamiento en el segmento especificado por el abr externo. Si hace referencia a un abr interno, el campo de dirección en la instrucción o palabra indirecta se añade al desplazamiento en el abr, y el valor resultante se utiliza como un desplazamiento en el segmento especificado por el abr externo con el que está emparejado el abr interno. [15] : 6–26 

Los registros tienen los siguientes formatos dependiendo de cómo se configure el bit 21. [19]

Formato como base “externa”, con el bit 21 activado:

 1 1 2 2 22 0 7 8 0 1 23 +-------------------+---+-+--+ |PDW|\\\|1|\\| +-------------------+---+-+--+

Formato como componente de la dirección "interna" efectiva con un puntero a una base "externa", con el bit 21 limpio:

 1 1 2 2 22 0 7 8 0 1 23 +-------------------+---+-+--+ |PY|PB|0|\\| +-------------------+---+-+--+ 


En Multics, se emparejaban un abr de número par y el siguiente abr de número impar. Al escribir en ensamblador (EPLBSA/ALM) [NB 1], la práctica estándar de Multics era etiquetar estos registros de la siguiente manera: [20]

El esquema de nombres se basa en lo siguiente: [21]

Los 8 registros de puntero del Honeywell 6180 y sus sucesores tenían la misma finalidad que los 4 registros base emparejados del GE-645, haciendo referencia a un desplazamiento dentro de un segmento.

Historia

CTSS se originó en el Centro de Computación del MIT utilizando un IBM 709 y se demostró por primera vez en noviembre de 1961, [22] posteriormente se actualizó a un 7090 en 1962, [23] y finalmente a un 7094 en 1963. [24] Esto requirió una modificación de estos sistemas estándar mediante la adición de una serie de RPQ que, entre otras cosas, agregaron dos bancos de memoria y cambio de banco entre modo de usuario y supervisor, es decir, los programas que se ejecutaban en el banco de memoria del núcleo A tenían acceso a instrucciones a las que los programas que se ejecutaban en el banco de memoria del núcleo B no tenían. [25]

El proyecto MAC comenzó formalmente con la firma del contrato con ARPA el 1 de julio de 1963. Para octubre de 1963 habían recibido un 7094 dedicado para ejecutar CTSS, que se denominó "Red Machine" debido a que tenía paneles laterales rojos. [24] Esto proporcionaría un entorno de tiempo compartido para el proyecto MAC y, posteriormente, se usaría ampliamente para el desarrollo de Multics. Durante este período, se llevó a cabo un trabajo exploratorio sobre cómo luciría un reemplazo para CTSS y qué tipo de hardware requeriría para ejecutarse. Se formó un comité compuesto por Fernando J. Corbató , Ted Glaser, Jack Dennis y Robert Graham con la responsabilidad de visitar a los fabricantes de computadoras para evaluar el nivel de interés en la industria para licitar por la plataforma de hardware. [26] [27] Se dejó en claro que el proyecto MAC estaba buscando un socio de desarrollo dadas las considerables modificaciones de hardware que se requerirían para cumplir con sus requisitos, que se especificaron como: [28]

  1. Programas de usuario que tienen protección de lectura/escritura.
  2. Que las instrucciones privilegiadas no serían accesibles para los programas del usuario final
  3. Al menos la capacidad de abordar 256KW de memoria directamente.
  4. Capacidad de multiprocesamiento nativa con todos los procesadores de nivel funcional equivalente
  5. Soporte eficaz para telecomunicaciones que pudiera manejar tanto líneas telefónicas convencionales como enlaces de datos de alta velocidad que pudieran ejecutar terminales de visualización gráfica como el terminal gráfico Kludge [29] desarrollado por el MIT .
  6. Unidades de almacenamiento masivo, incluido un tambor rápido que podría usarse como dispositivo de búsqueda.
  7. Soporte de hardware tanto para segmentación como para paginación con soporte para una memoria direccionable por contenido (CAM) a fin de reducir la sobrecarga de la memoria virtual.

Procedieron a visitar, entre otros, Burroughs , CDC , DEC , General Electric , IBM y Sperry Univac . De estos, GE e IBM mostraron el mayor interés. [26] En el verano de 1964 se recibieron propuestas de DEC, IBM y GE, después de las evaluaciones del Comité Técnico se tomó una decisión unánime de aceptar la propuesta de GE para el GE 645, que era un diseño basado en el GE 635 pero modificado para cumplir con los requisitos descritos anteriormente. [28]

Mientras se diseñaba y depuraba el hardware GE 645 en Phoenix, se puso en marcha un sistema en el que se podía utilizar un GE 635 para ejecutar un simulador conocido como 6.36, [30] de modo que el desarrollo y la verificación de Multics pudieran realizarse en paralelo. Este proceso implicaba la creación de una cinta en el sistema CTSS que se introduciría en GECOS en el sistema 635 en el MIT para que se ejecutara bajo el simulador 6.36; la salida resultante se llevaría de vuelta a través de la cinta a CTSS para su depuración/análisis. [31] Este entorno simulado fue reemplazado por el primer hardware 645 en 1967. El sistema operativo GECOS fue reemplazado completamente por Multics en 1969 con el supervisor Multics [3] separado por anillos de protección con "puertas" que permitían el acceso desde el modo de usuario. [32]

Una generación posterior, la 645F (F por follow-on) no se había completado cuando la división se vendió a Honeywell , y se la conoció como Honeywell 6180. El mecanismo de control de acceso original de la GE/Honeywell 645 se consideró inadecuado para el control de alta velocidad de las instrucciones de acceso y la reimplementación en la 6180 resolvió esos problemas. [33] La mayor parte de estas computadoras que ejecutaban tiempo compartido en Multics se instalaron en la NSA y sitios gubernamentales similares. Su uso estaba limitado por las medidas de seguridad extremas y tuvo un impacto limitado en los sistemas posteriores, aparte del anillo de protección. [34]

La protección de hardware introducida en este ordenador y modificada en el 6180 se implementó más tarde en el procesador Intel 286 como un anillo de protección de cuatro capas, pero se descubrió que cuatro anillos eran demasiado complicados de programar y demasiado lentos de operar. La arquitectura del anillo de protección se utiliza ahora sólo para proteger el modo kernel del código del modo usuario, tal como se hacía en el uso original del 645. [3]

Véase también

Lectura adicional

Notas

  1. ^ Ensamblador EPL BootStrap / Lenguaje ensamblador para Multics

Referencias

  1. ^ ab Corbató, FJ; Vyssotsky, VA (30 de noviembre de 1965). "Introducción y descripción general del sistema multics". Actas de la conferencia conjunta de informática de otoño del 30 de noviembre al 1 de diciembre de 1965, Parte I en XX - AFIPS '65 (otoño, parte I) . Association for Computing Machinery. págs. 185–196. doi :10.1145/1463891.1463912. ISBN 9781450378857.S2CID11197018  .​
  2. ^ John Couleur (invierno de 1995). "El núcleo de Black Canyon Computer Corporation" (PDF) . IEEE Annals of the History of Computing . 17 (4): 56–60. doi :10.1109/85.477436.
  3. ^ abcd Glaser, EL; Couleur, JF; Oliver, GA (30 de noviembre de 1965). "Diseño de sistema de una computadora para aplicaciones de tiempo compartido". Actas de la conferencia conjunta de computadoras de otoño del 30 de noviembre al 1 de diciembre de 1965, Parte I en XX - AFIPS '65 (Otoño, parte I) . Association for Computing Machinery. págs. 197–202. doi :10.1145/1463891.1463913. ISBN 9781450378857. Número de identificación del sujeto  15819355.
  4. ^ abcdefghij «Manual del sistema GE-645» (PDF) . General Electric. Enero de 1968. Consultado el 26 de septiembre de 2023 .
  5. ^ Patente estadounidense 3412382, COULEUR JOHN F & GLASER EDWARD L, "Sistema de procesamiento de datos de acceso compartido", asignada al Instituto Tecnológico de Massachusetts 
  6. ^ Smith, William D. (2 de diciembre de 1965). "A New Computer Developed at GE" The New York Times . Consultado el 20 de octubre de 2023 .
  7. ^ "Sistema de tiempo compartido GE-645". Revista de informática digital . 18 (2). Oficina de Investigación Naval - División de Ciencias Matemáticas: 5–6. 1966.
  8. ^ ab "EE. UU. vs. IBM_Exhibit 14971 - Narrativa histórica de los años 1960" (PDF) . págs. 434, 510 . Consultado el 21 de octubre de 2023 .
  9. ^ "Cronología del sitio Multics". multicians.org . Consultado el 21 de octubre de 2023 .
  10. ^ Kaisler (2020), op. cit., pág. 274
  11. ^ Kaisler (2020), op. cit., pág. 275
  12. ^ Ossanna, JF ; Mikus, LE; Dunten, SD (30 de noviembre de 1965). "Comunicaciones y conmutación de entrada/salida en un sistema de computación multiplex". Actas de la conferencia conjunta de computación de otoño del 30 de noviembre al 1 de diciembre de 1965, Parte I en XX - AFIPS '65 (Otoño, parte I) . Association for Computing Machinery. págs. 231–241. doi :10.1145/1463891.1463916. S2CID  15847853.
  13. ^ ab Van Vleck, Tom. "Low Bottle Pressure" (Presión baja de la botella). multicians.org . Consultado el 29 de octubre de 2023 .
  14. ^ "The Librazette Vol. 10 No. 9" (PDF) . Archivado desde el original (PDF) el 19 de mayo de 2022.
  15. ^ abcde "MANUAL DE REFERENCIA DEL PROCESADOR MODELO 645" (PDF) . Honeywell Information Systems Inc. Mayo de 1972 . Consultado el 26 de septiembre de 2023 .
  16. ^ Schroeder, Michael D. (1971). "Rendimiento de la memoria asociativa GE-645 mientras Multics está en funcionamiento". Actas del taller SIGOPS sobre evaluación del rendimiento del sistema . Association for Computing Machinery. págs. 227–245. doi :10.1145/800024.808361. ISBN 9781450373821.S2CID44850627  .​
  17. ^ Organick (1972), op. cit., pág. 18
  18. ^ Green, Paul. "Multics Virtual Memory - Tutorial and Reflections". multicians.org . Consultado el 20 de diciembre de 2023 .
  19. ^ ab Organick (1972), op. cit., pág. 19
  20. ^ Organick (1972), op. cit., pág. 20-21
  21. ^ Organick (1972), op. cit., pág. 22-23
  22. ^ Pugh (1991), op. cit., pág. 356
  23. ^ Corbató, Fernando J.; Merwin Daggett, Marjorie; Daley, Robert C. (3 de mayo de 1962). "Un sistema experimental de tiempo compartido". Actas de la conferencia conjunta de informática de primavera del 1 al 3 de mayo de 1962 (AIEE-IRE '62 (primavera)) . Association for Computing Machiner. págs. 335–344. doi : 10.1145/1460833.1460871 . ISBN . 9781450378758. Número de identificación del sujeto  234039583.
  24. ^ ab Van Vleck, Tom. "IBM 7094 y CTSS". www.multicians.org . Consultado el 30 de octubre de 2023 .
  25. ^ Crisman, PA, ed. (31 de diciembre de 1969). "The Compatible Time-Sharing System, A Programmer's Guide" (PDF) . The MIT Computation Center . Consultado el 10 de marzo de 2022 .
  26. ^ ab Dennis, Jack B. (Jack Bonnell); O'Neill, Judy E. (31 de octubre de 1989). "Entrevista de historia oral con Jack Bonnell Dennis". hdl :11299/107244 . Consultado el 31 de octubre de 2023 .
  27. ^ Corbató, FJ (14 de noviembre de 1990). «Entrevista de historia oral a Fernando J. Corbató». hdl : 11299/107230 . Consultado el 31 de octubre de 2023 .
  28. ^ ab Fano (1979), op. cit., pág. 348
  29. ^ "Colección: Registros de investigación del Laboratorio de Ciencias de la Computación del Instituto Tecnológico de Massachusetts | MIT ArchivesSpace". archivesspace.mit.edu .
  30. ^ "Los GE-635 en el Proyecto MAC y BTL". multicians.org . Consultado el 19 de octubre de 2023 .
  31. ^ "Informe de progreso del Proyecto MAC III, 1966-67" (PDF) . Archivado desde el original (PDF) el 4 de junio de 2016.
  32. ^ "Informe de progreso del Proyecto MAC V, 1966-68" (PDF) . Archivado desde el original (PDF) el 4 de junio de 2016.
  33. ^ Michael D. Schroeder y Jerome H. Saltzer. "Una arquitectura de hardware para implementar anillos de protección" . Consultado el 27 de septiembre de 2012 .
  34. ^ Donald A. MacKenzie (2001). Mecanización de la prueba: computación, riesgo y confianza . The MIT Press. ISBN 0-262-13393-8.

Enlaces externos