PRISM ( P an paralelo R relucida I NSTRUCCIÓN S et M achine) [1] era un 32-bit RISC conjunto de instrucciones arquitectura (ISA) desarrollado por Digital Equipment Corporation (DEC). Fue el resultado final de una serie de proyectos de investigación de DEC del período de 1982-1985, y el proyecto estuvo sujeto a requisitos y usos planificados en constante cambio que retrasaron su introducción. Este proceso finalmente decidió utilizar el diseño para una nueva línea de estaciones de trabajo Unix . La unidad aritmética lógica (ALU) del microPrismaLa versión había completado el diseño en abril de 1988 y se fabricaron muestras, pero el diseño de otros componentes como la unidad de punto flotante (FPU) y la unidad de gestión de memoria (MMU) aún no estaban completos en el verano cuando la dirección de DEC decidió cancelar el proyecto a favor. de sistemas basados en MIPS . [2]
Diseñador | Corporación de equipos digitales |
---|---|
Bits | 32 bits |
Introducido | 1988 (cancelado) |
Diseño | RISC |
Sucesor | DEC Alpha |
Registros | |
|
La cancelación de PRISM tuvo efectos significativos dentro de DEC. Muchos de los miembros del equipo dejaron la empresa durante el año siguiente, en particular Dave Cutler, que se trasladó a Microsoft y dirigió el desarrollo de Windows NT . Las estaciones de trabajo basadas en MIPS tuvieron un éxito moderado entre los usuarios existentes de Ultrix de DEC, pero tuvieron poco éxito compitiendo con empresas como Sun Microsystems . Mientras tanto, la línea VAX de vaca de efectivo de DEC se volvió cada vez menos eficiente a medida que los nuevos diseños de RISC superaron incluso al VAX 9000 de primera línea . A medida que la empresa exploraba el futuro del VAX, concluyeron que un procesador similar a PRISM con algunos cambios adicionales podría abordar todos estos mercados. Comenzando donde lo dejó PRISM, el programa DEC Alpha comenzó en 1989.
Historia
Fondo
Introducido en 1977, el VAX fue un gran éxito para DEC, consolidando su lugar como el segundo proveedor de computadoras del mundo detrás de IBM . El VAX se destacó por su rica arquitectura de conjunto de instrucciones (ISA), que se implementó en un microcódigo complejo . El sistema operativo VAX / VMS se superpuso a este ISA, lo que lo llevó a tener ciertos requisitos para el manejo de interrupciones y el modelo de memoria utilizado para la paginación de memoria . A principios de la década de 1980, los sistemas VAX se habían convertido en "el centro informático de muchas empresas impulsadas por la tecnología, que enviaban rayos de cables RS-232 a un borde de terminales VT-100 que mantenían en funcionamiento a los departamentos de ciencia e ingeniería". [3]
Esta feliz situación se vio alterada por la implacable mejora de la fabricación de semiconductores codificada por la Ley de Moore ; A principios de la década de 1980, había una serie de microprocesadores de un solo chip de 32 bits con un rendimiento similar al de las primeras máquinas VAX, pero que podían caber en un factor de forma de caja de pizza de escritorio . Compañías como Sun Microsystems introdujeron las estaciones de trabajo Unix basadas en la serie 68000 de Motorola que podían reemplazar una enorme máquina VAX multiusuario por una que brindaba aún más rendimiento pero era lo suficientemente económica como para comprarla todos los usuarios que la necesitaran. Mientras que los propios equipos de microprocesadores de DEC estaban introduciendo una serie de implementaciones de VAX a precios más bajos, la relación precio-rendimiento de sus sistemas continuó erosionándose. En la segunda mitad de la década de 1980, DEC se vio excluido del mercado técnico. [3]
RISC
Durante la década de 1970, IBM había estado llevando a cabo estudios sobre el rendimiento de sus sistemas informáticos y descubrió, para su sorpresa, que el 80% del tiempo de la computadora se dedicaba a realizar solo cinco operaciones. Los cientos de otras instrucciones en sus ISA, implementadas mediante microcódigo, casi no se utilizaron. La presencia del microcódigo introdujo un retraso cuando se decodificaron las instrucciones, por lo que incluso cuando uno llamaba directamente a una de esas cinco instrucciones, corría más lento de lo que podría hacerlo si no hubiera un microcódigo. Esto llevó al diseño IBM 801 , el primer procesador RISC moderno . [4]
Casi al mismo tiempo, en 1979, Dave Patterson fue enviado a un año sabático de la Universidad de California, Berkeley para ayudar al equipo de la costa oeste de DEC a mejorar el microcódigo VAX. A Patterson le sorprendió la complejidad del proceso de codificación y concluyó que era insostenible. Primero escribió un artículo sobre formas de mejorar la microcodificación, pero luego cambió de opinión y decidió que el problema era el microcódigo en sí. Pronto inició el proyecto Berkeley RISC . [5] La aparición de RISC desató un debate de larga duración dentro de la industria informática sobre sus méritos; cuando Patterson esbozó por primera vez sus argumentos a favor del concepto en 1980, DEC publicó una opinión disidente desdeñosa. [6]
A mediados de la década de 1980, prácticamente todas las empresas con un brazo de diseño de procesadores comenzaron a explorar el enfoque RISC. A pesar de cualquier desinterés oficial, DEC no fue una excepción. En el período de 1982 a 1985, se hicieron no menos de cuatro intentos para crear un chip RISC en diferentes divisiones de DEC. Titan del Western Research Laboratory (WRL) de DEC en Palo Alto, California, fue un diseño basado en ECL de alto rendimiento que comenzó en 1982, destinado a ejecutar Unix . SAFE ( Arquitectura optimizada para ejecución rápida ) fue un diseño de 64 bits que comenzó el mismo año, diseñado por Alan Kotok ( famoso por Spacewar! ) Y Dave Orbits y destinado a ejecutar VMS . HR-32 ( Hudson, RISC, 32 bits ) comenzó en 1984 por Rich Witek y Dan Dobberpuhl en la fábrica de Hudson, MA , destinado a ser utilizado como coprocesador en una máquina VAX . El mismo año, Dave Cutler inició el proyecto CASCADE en DECwest en Bellevue, Washington. [7]
PRISMA
Finalmente, se le pidió a Cutler que definiera un solo proyecto RISC en 1985, seleccionando a Rich Witek como arquitecto jefe. En agosto de 1985 se entregó el primer borrador de un diseño de alto nivel y se comenzó a trabajar en el diseño detallado. La especificación PRISM fue desarrollada durante un período de muchos meses por un equipo de cinco personas: Dave Cutler, Dave Orbits, Rich Witek, Dileep Bhandarkar y Wayne Cardoza. A lo largo de este período inicial, hubo cambios constantes en el diseño a medida que los debates dentro de la empresa discutían sobre si debería ser de 32 o 64 bits, dirigido a una carga de trabajo comercial o técnica, etc. Estos cambios constantes significaron que la especificación ISA final no se completó hasta septiembre de 1986. En ese momento, se tomó la decisión de producir dos versiones del concepto básico, DECwest trabajó en una implementación de ECL de "gama alta" conocida como Crystal , mientras que el Semiconductor El equipo de desarrollo avanzado trabajó en microPRISM , una versión CMOS . Este trabajo se realizó en un 98% entre 1985 y 1986 y fue respaldado en gran medida por simulaciones de Pete Benoit en un gran grupo VAXcluster . [7]
A mediados de 1987 se tomó la decisión de que ambos diseños fueran de 64 bits, aunque esto duró solo unas pocas semanas. En octubre de 1987, Sun presentó el Sun-4 . Impulsado por un SPARC de 16 MHz , una versión comercial del diseño RISC de Patterson, funcionó cuatro veces más rápido que su anterior Sun-3 de gama alta con un Motorola 68020 de 20 MHz . Con esta versión, DEC cambió una vez más el objetivo de PRISM, apuntándolo únicamente al espacio de la estación de trabajo. Esto dio como resultado que el microPRISM se volviera a calificar como un sistema de 32 bits mientras que el proyecto Crystal se canceló. Esto introdujo más retrasos, retrasando mucho el proyecto. [7]
A principios de 1988, el sistema aún no estaba completo; el diseño de la CPU estaba casi completo, pero la FPU y la MMU, ambas basadas en el actual chipset Rigel para VAX, todavía estaban en proceso de diseño. [7] El equipo decidió dejar de trabajar en esas partes del diseño y centrarse por completo en la CPU. El diseño se completó en marzo de 1988 y se grabó en abril. [7]
Cancelación
Durante el período de PRISM, DEC participó en un importante debate sobre la dirección futura de la empresa. A medida que se introdujeron las estaciones de trabajo más nuevas basadas en RISC, el beneficio de rendimiento del VAX se erosionó constantemente y la relación precio / rendimiento se socavó por completo. Diferentes grupos dentro de la empresa debatieron cuál era la mejor respuesta. Algunos abogaron por mover el VAX a la gama alta, abandonando la gama baja a los proveedores de estaciones de trabajo como Sun. Esto llevó al programa VAX 9000 , al que se hacía referencia internamente como el "asesino de IBM". Otros sugirieron ingresar al mercado de las estaciones de trabajo utilizando PRISM o un procesador de productos básicos. Otros sugirieron volver a implementar el VAX en un procesador RISC. [7]
Frustrado con el creciente número de pérdidas a máquinas competitivas más baratas y más rápidas, de forma independiente, un pequeño grupo de skunkworks en Palo Alto , fuera de Central Engineering, centrado en estaciones de trabajo y UNIX / Ultrix , consideró la idea de utilizar un procesador RISC estándar para construya una nueva familia de estaciones de trabajo. El grupo llevó a cabo la debida diligencia y finalmente eligió el MIPS R2000 . Este grupo adquirió una máquina de desarrollo y creó un prototipo de un puerto de Ultrix para el sistema. Desde las reuniones iniciales con MIPS hasta un prototipo de máquina, solo tomó 90 días. La producción completa de una versión DEC podría comenzar en enero de 1989, mientras que pasaría al menos otro año antes de que una máquina basada en PRISM estuviera lista. [7]
Cuando se planteó el asunto en la sede de DEC, la empresa se dividió sobre qué enfoque era mejor. Se le pidió a Bob Supnik que considerara el tema para una próxima revisión del proyecto. Concluyó que si bien el sistema PRISM parecía ser más rápido, el enfoque MIPS sería menos costoso y mucho antes de comercializarlo. En la enconada reunión de revisión del Comité Ejecutivo de la empresa en julio de 1988, la empresa decidió cancelar Prism y continuar con las estaciones de trabajo MIPS y los productos VAX de alta gama. La estación de trabajo surgió como DECstation 3100 . [7]
Para entonces, se habían devuelto muestras del microPRISM y se descubrió que funcionaban en su mayoría. También demostraron ser capaces de funcionar a velocidades de 50 a 80 MHz, en comparación con los 16 a 20 del R2000. Esto habría ofrecido una mejora significativa en el rendimiento con respecto a los sistemas MIPS.
Legado
En el momento de la reunión de julio de 1988, la empresa se había inclinado casi por completo a la posición de que el enfoque RISC era un juego de estación de trabajo. Pero el rendimiento de PRISM fue similar al de las últimas máquinas VAX y el concepto RISC tenía un margen considerable para crecer. Cuando terminó la reunión, Ken Olsen le pidió a Supnik que investigara las formas en que Digital podría mantener el rendimiento de los sistemas VAX / VMS competitivo con los sistemas Unix basados en RISC. [8]
Un grupo de ingenieros formó un equipo, conocido como "RISCy VAX" o "Extended VAX" (EVAX), grupo de trabajo para explorar este problema. [8] A finales del verano, el grupo había explorado tres conceptos, un subconjunto de VAX ISA con un núcleo similar a RISC, un VAX traducido que ejecutaba código VAX nativo y lo traducía sobre la marcha a código RISC y se almacenaba en un caché y VAX ultrapipelined, una implementación CISC de mucho mayor rendimiento. Todos estos enfoques tenían problemas que significaban que no serían competitivos con una máquina RISC simple. [9]
A continuación, el grupo consideró sistemas que combinaban una solución de un solo chip VAX existente y un chip RISC para las necesidades de rendimiento. Estos estudios sugirieron que el sistema inevitablemente quedaría paralizado por la parte de menor rendimiento y no ofrecería ninguna ventaja convincente. Fue en este punto que Nancy Kronenberg señaló que la gente ejecutaba VMS, no VAX, y que VMS solo tenía algunas dependencias de hardware basadas en su modelado de interrupciones y paginación de memoria. No parecía haber una razón convincente por la que VMS no pudiera ser portado a un chip RISC mientras se conservaran estos pequeños fragmentos del modelo. El trabajo adicional sobre este concepto sugirió que este era un enfoque viable. [9]
Supnik llevó el informe resultante al Grupo de Trabajo Estratégico en febrero de 1989. Se plantearon dos preguntas: ¿podría el diseño RISC resultante ser también un líder en rendimiento en el mercado Unix y la máquina debería ser un estándar abierto? Y con eso, se tomó la decisión de adoptar la arquitectura PRISM con las modificaciones apropiadas, convirtiéndose eventualmente en Alpha , y se inició el port de VMS a la nueva arquitectura . [10]
Cuando se cancelaron PRISM y MICA, Dave Cutler dejó Digital para Microsoft , donde fue puesto a cargo del desarrollo de lo que se conoció como Windows NT . La arquitectura de Cutler para NT se inspiró en gran medida en muchos aspectos de MICA. [11] [12] [13] Además de la implementación de múltiples API del sistema operativo sobre un kernel común ( Win32 , OS / 2 y POSIX en el caso de NT), MICA y NT compartieron la separación del kernel del ejecutivo , [14] el uso de un administrador de objetos como la abstracción para la interfaz con las estructuras de datos del sistema operativo, [15] y soporte para multiprocesamiento simétrico y multiproceso . [dieciséis]
Diseño
En términos de operaciones con números enteros , la arquitectura PRISM era similar a los diseños MIPS . De los 32 bits de las instrucciones , los 6 bits más altos y los 5 más bajos eran la instrucción, dejando los otros 21 bits de la palabra para codificar una constante o ubicaciones de registro . Se incluyeron sesenta y cuatro registros de 32 bits, a diferencia de los treinta y dos en el MIPS, pero el uso fue similar por lo demás. PRISM y MIPS carecen de las ventanas de registro que eran un sello distintivo del otro diseño importante de RISC, Berkeley RISC.
El diseño de PRISM se destacó por varios aspectos de su conjunto de instrucciones . En particular, PRISM incluyó Epicode ( código de instrucción de procesador extendido ), que definió una serie de instrucciones "especiales" destinadas a ofrecer al sistema operativo una ABI estable en múltiples implementaciones. Epicode recibió su propio conjunto de 22 registros de 32 bits para usar. Posteriormente, también se agregó un conjunto de instrucciones de procesamiento de vectores , respaldadas por dieciséis registros de vectores de 64 bits adicionales que podrían usarse de diversas maneras.
MICA
MICA era el nombre en clave del sistema operativo desarrollado para la arquitectura PRISM. El diseño de MICA fue impulsado por la necesidad de Digital de proporcionar una ruta de migración a PRISM para los clientes VAX / VMS de Digital , además de permitir que los sistemas PRISM compitan en el cada vez más importante mercado Unix. [17] [18] MICA intentó abordar estos requisitos implementando interfaces de usuario VMS y ULTRIX sobre un kernel común que pudiera soportar las llamadas al sistema (o "servicios del sistema" en el lenguaje VMS), bibliotecas y utilidades necesarias para ambos entornos. [dieciséis]
El objetivo original de MICA era que todas las aplicaciones tuvieran acceso completo e intercambiable a las interfaces VMS y ULTRIX, y que un usuario pudiera elegir iniciar sesión en un entorno ULTRIX o VMS y ejecutar cualquier aplicación MICA desde cualquier entorno. [14] Sin embargo, resultó imposible proporcionar compatibilidad completa con ULTRIX y VMS para la misma aplicación al mismo tiempo, y Digital descartó este plan a favor de tener un sistema operativo Unix separado basado en OSF / 1 (esto fue varios denominados PRISM ULTRIX u OZIX ). [19] Como resultado, MICA habría servido como una implementación portátil de un sistema operativo similar a VMS, con implementaciones compatibles de DCL , RMS , Files-11 , VAXclusters y VAX / VMS RTL y servicios del sistema. Se hicieron propuestas para restablecer la compatibilidad Unix en MICA por aplicación para que una aplicación MICA pudiera compilarse y vincularse con las interfaces VMS, o las interfaces ULTRIX, pero no ambas simultáneamente. [20]
Debido a problemas de programación, Digital planeó entregar ciertos sistemas PRISM con subconjuntos restringidos del sistema operativo MICA completo. Esto incluyó sistemas como Cheyenne y Glacier que estaban dedicados a ejecutar aplicaciones específicas y donde la interacción directa con el sistema operativo por parte de los clientes sería limitada. [21]
MICA iba a estar escrito casi en su totalidad en un lenguaje de programación de alto nivel llamado PILLAR . PILLAR evolucionó de EPascal (el dialecto específico de VAXELN de Pascal ) a través de un lenguaje interino llamado Lenguaje de Implementación de Sistemas (SIL). [22] [23] PILLAR se habría retroportado a VAX / VMS, lo que permitiría desarrollar aplicaciones que pudieran compilarse tanto para VAX / VMS como para MICA. Un conjunto común de bibliotecas en tiempo de ejecución de alto nivel denominado ARUS (Application Runtime Utility Services) habría facilitado aún más la portabilidad entre MICA, OSF / 1, VAX / VMS y ULTRIX. [24] Como parte del proyecto PRISM, se desarrolló un backend compilador de optimización común llamado GEM (este sobrevivió y se convirtió en el backend del compilador para los puertos Alpha e Itanium de VMS). [25] [26]
Además de PILLAR, Mica proporcionó soporte de primera clase para ANSI C con el fin de admitir aplicaciones Unix. [22] Un ensamblador llamado SPASM (Simplified PRISM Assembler) estaba destinado a la pequeña cantidad de código ensamblador necesario para el sistema operativo, y no se habría puesto a disposición de forma generalizada para disuadir a los clientes de desarrollar software no portátil. De manera similar, se desarrolló una implementación de BLISS solo para uso interno, con el fin de permitir que las aplicaciones VAX / VMS preexistentes se trasladen a MICA. MICA habría presentado puertos o reescrituras de muchos productos en capas VAX / VMS, incluidos Rdb , VAXset , DECwindows y la mayoría de los compiladores disponibles para VAX / VMS. [27]
Referencias
- ^ Mark Smotherman. "Croquis de DEC PRISM" .
PRISM (Máquina de conjuntos de instrucciones reducidos en paralelo) ... primer borrador de la arquitectura PRISM en agosto de 1985; DEC cancela el proyecto en 1988 a favor de un MIPS basado ...
- ^ "PRISM asesinado" (PDF) . bitsavers.org . 1988-06-17 . Consultado el 5 de enero de 2021 .
- ↑ a b Comerford , 1992 , p. 26.
- ^ Cocke, John; Markstein, Victoria (enero de 1990). "La evolución de la tecnología RISC en IBM" (PDF) . Revista de investigación y desarrollo de IBM . 34 (1): 4–11. doi : 10.1147 / rd.341.0004 .
- ^ Patterson, David (30 de mayo de 2018). "Historial de RISCy" . AM SIGARCH .
- ^ Clark, Douglas; Streck, William (septiembre de 1980). "Comentarios sobre" El caso de la computadora con conjunto de instrucciones reducido ", por Patterson y Ditzel" (PDF) . Archivado desde el original (PDF) el 18 de abril de 2019.
- ^ a b c d e f g h Supnik, 2008 .
- ^ a b "EV-4 (1992)" . 2008-02-24.
- ↑ a b Comerford , 1992 , p. 28.
- ^ "Gestión de saltos tecnológicos: un estudio del equipo de diseño Alpha de DEC" (PDF) . Abril de 1993.
- ^ Zachary, G. Pascal (2014). Showstopper !: La carrera vertiginosa para crear Windows NT y la próxima generación en Microsoft . Open Road Media. ISBN 978-1-4804-9484-8. Consultado el 4 de enero de 2021 .
- ^ Neil Rieck. "Dave Cutler, PRISM, Mica, Emerald, etc" . neilrieck.net . Consultado el 4 de enero de 2021 .
- ^ Mark Russinovich (30 de octubre de 1998). "Windows NT y VMS: el resto de la historia" . itprotoday.com . Consultado el 4 de enero de 2021 .
- ^ a b Catherine Richardson; Terry Morris; Rockie Morgan; Reid Brown; Donna Meikle (marzo de 1987). "Plan de Negocio de Software MICA" (PDF) . bitsavers.org . Consultado el 4 de enero de 2021 .
- ^ Lou Perazzoli (2 de diciembre de 1987). "Arquitectura de objetos de documento de diseño de trabajo de mica" (PDF) . bitsavers.org . Consultado el 4 de enero de 2021 .
- ^ a b "Descripción general de los sistemas PRISM" (PDF) . Noviembre de 1986 . Consultado el 4 de enero de 2021 .
- ^ Dave Cutler (30 de mayo de 1988). "Agenda DECwest / SDT" (PDF) . bitsavers.org .
- ^ WD Strecker (7 de diciembre de 1987). "Estrategia Unix" (PDF) . bitsavers.org . Consultado el 4 de enero de 2021 .
- ^ "Estrategia actual de PRISM OS" (PDF) . bitsavers.org . 1988-06-10 . Consultado el 4 de enero de 2021 .
- ^ Dave Cutler (10 de junio de 1988). "Feliz confusión" (PDF) . bitsavers.org . Consultado el 4 de enero de 2021 .
- ^ "Descripción del proyecto de producto de mica" (PDF) . bitsavers.org . Noviembre de 1987 . Consultado el 4 de enero de 2021 .
- ^ a b Don MacLaren (27 de agosto de 1987). "Proyecto del compilador DECwest, descripción y plan" (PDF) . bitsavers.org . Consultado el 4 de enero de 2021 .
- ^ "Especificación de lenguaje de pilar" (PDF) . bitsavers.org . Noviembre de 1988 . Consultado el 4 de enero de 2021 .
- ^ "Mica Working Design Document Application Run-Time Utility Services" (PDF) . bitsavers.org . 1988-03-24 . Consultado el 4 de enero de 2021 .
- ^ Leslie Klein (1 de julio de 1988). "Reunión de Woods del 30 de junio de 1988 - Resultados y elementos de acción" (PDF) . bitsavers.org . Consultado el 4 de enero de 2021 .
- ^ David S. Blickstein; Peter W. Craig; Caroline S. Davidson; R. Neil Fairnan, Jr .; Kent D. Glossop; Richard B. Grove; Steven O. Hobbs; William B. Noyce (1992). "El sistema compilador de optimización GEM" (PDF) . Revista Técnica Digital . 4 (4).
- ^ John Gilbert (17 de febrero de 1988). "Grupo de sistemas operativos PRISM de revisión trimestral de DECwest" (PDF) . bitsavers.org . Consultado el 4 de enero de 2021 .
Bibliografía
- Comerford, Richard (julio de 1992). "Cómo DEC desarrolló Abha" . Espectro IEEE . doi : 10.1109 / 6.144508 .
- Correo electrónico con Bob Supnik [se necesita una fuente mejor ]
- Supnik, Bob (24 de febrero de 2008). "MicroPrism" . El proyecto de simulación de la historia de la computadora .
- Documentos de prisma en bitsavers.org
Otras lecturas
- Bhandarkar, Dileep P. (1995). Implementaciones y Arquitectura Alpha . Prensa digital.
- Bhandarkar, D. y col. (1990. "Arquitectura orientada a problemas de alto rendimiento" . Proceedings of Compcon Spring '90 , pp. 153-160.
- Conrad, R. y col. (1989). "Un microprocesador de 50 MIPS (pico) 32/64 b" . Recopilación de artículos técnicos de la ISSCC , págs. 76–77.