VAX
VAX (un acrónimo de Extensión de dirección virtual) es una serie de computadoras con una arquitectura de conjunto de instrucciones (ISA) de 32 bits y memoria virtual que se desarrolló y vendió por Digital Equipment Corporation (DEC) a finales del siglo XX. El VAX-11/780, presentado el 25 de octubre de 1977, fue el primero de una gama de computadoras populares e influyentes que implementaron el VAX ISA. La familia VAX fue un gran éxito para DEC: se introdujeron más de 100 modelos durante la vida útil del diseño, y los últimos miembros llegaron a principios de la década de 1990. El VAX fue reemplazado por el DEC Alpha, que incluía varias características de las máquinas VAX para facilitar la transferencia desde el VAX.
La VAX se diseñó como sucesora de la PDP-11 de 16 bits, una de las minicomputadoras más exitosas de la historia con aproximadamente 600 000 ejemplares vendidos. El sistema fue diseñado para ofrecer compatibilidad con versiones anteriores del PDP-11 mientras se amplía la memoria a una implementación completa de 32 bits y se agrega memoria virtual paginada bajo demanda. El nombre VAX hace referencia a su concepto de extensión de dirección virtual que permitía que los programas hicieran uso de esta nueva memoria disponible sin dejar de ser compatible con el código PDP-11 en modo de usuario sin modificar. El nombre "VAX-11", utilizado en los primeros modelos, se eligió para resaltar esta capacidad. El VAX ISA se considera un diseño de computadora con conjunto de instrucciones complejas (CISC).
Los modelos posteriores de la serie eliminaron la marca −11 porque la compatibilidad con PDP-11 ya no era una preocupación importante. La línea se expandió tanto a máquinas de gama alta como la VAX 9000 como a sistemas a escala de estación de trabajo como la serie VAXstation. La familia VAX finalmente contenía diez diseños distintos y más de 100 modelos individuales en total. Todos estos eran compatibles entre sí y normalmente ejecutaban el sistema operativo VAX/VMS.
VAX ha sido percibido como el CISC ISA por excelencia, con su gran cantidad de modos de direccionamiento e instrucciones de máquina fáciles de programar en lenguaje ensamblador, arquitectura de conjunto de instrucciones altamente ortogonal e instrucciones para operaciones complejas como inserción o eliminación de colas, formateo de números y evaluación de polinomios.
Nombre
El nombre "VAX" se originó como un acrónimo de Extensión de dirección virtual, tanto porque el VAX se consideraba una extensión de 32 bits del antiguo PDP-11 de 16 bits como porque fue (después de Prime Computer) uno de los primeros en adoptar memoria virtual para administrar este espacio de direcciones más grande.
Las primeras versiones del procesador VAX implementan un "modo de compatibilidad" que emula muchas de las instrucciones del PDP-11, dándole el 11 en VAX-11 para resaltar esta compatibilidad. Las versiones posteriores descargaron el modo de compatibilidad y algunas de las instrucciones CISC menos utilizadas para la emulación en el software del sistema operativo.
Conjunto de instrucciones
El conjunto de instrucciones VAX fue diseñado para ser potente y ortogonal. Cuando se introdujo, muchos programas estaban escritos en lenguaje ensamblador, por lo que tener un "programador amigable" conjunto de instrucciones era importante. Con el tiempo, a medida que se escribían más programas en lenguajes de programación de alto nivel, el conjunto de instrucciones se volvió menos visible y los únicos que se preocupaban mucho por él eran los escritores de compiladores.
Un aspecto inusual del conjunto de instrucciones VAX es la presencia de máscaras de registro al comienzo de cada subprograma. Estos son patrones de bits arbitrarios que especifican, cuando se pasa el control al subprograma, qué registros deben conservarse. Dado que las máscaras de registro son una forma de datos incrustados en el código ejecutable, pueden dificultar el análisis lineal del código de máquina. Esto puede complicar las técnicas de optimización que se aplican al código máquina.
Sistemas operativos
El sistema operativo VAX nativo es Digital's VAX/VMS (renombrado como OpenVMS en 1991 o principios de 1992 cuando fue portado a Alpha, modificado para cumplir con los estándares POSIX, y marcado como compatible con XPG4 por el consorcio X/Open). La arquitectura VAX y el sistema operativo VMS fueron "diseñados simultáneamente" aprovecharse al máximo unos de otros, como lo fue la implementación inicial de la instalación VAXcluster.
Durante la década de 1980, Digital desarrolló un hipervisor para la arquitectura VAX llamado VMM (Monitor de máquina virtual), también conocido como VAX Security Kernel, con el objetivo de permitir que varias instancias aisladas de VMS y ULTRIX se ejecuten en el mismo hardware. VMM estaba destinado a lograr el cumplimiento de TCSEC A1. A fines de la década de 1980, estaba operativo en el hardware de la serie VAX 8000, pero se abandonó antes de su lanzamiento a los clientes.
Otros sistemas operativos VAX han incluido varias versiones de Berkeley Software Distribution (BSD) UNIX hasta 4.3BSD, Ultrix-32, VAXELN y Xinu. Más recientemente, NetBSD y OpenBSD han soportado varios modelos VAX y se ha trabajado en la migración de Linux a la arquitectura VAX. OpenBSD suspendió el soporte para la arquitectura en septiembre de 2016.
Historia
El primer modelo VAX vendido fue el VAX-11/780, que se presentó el 25 de octubre de 1977 en la reunión anual de accionistas de Digital Equipment Corporation. Bill Strecker, estudiante de doctorado de C. Gordon Bell en la Universidad Carnegie Mellon, fue el responsable de la arquitectura. Posteriormente se crearon muchos modelos diferentes con diferentes precios, niveles de rendimiento y capacidades. Las superminicomputadoras VAX fueron muy populares a principios de la década de 1980.
Durante un tiempo, el VAX-11/780 se utilizó como estándar en las pruebas comparativas de CPU. Inicialmente se describió como una máquina de un MIPS, porque su rendimiento era equivalente a un IBM System/360 que se ejecutaba en un MIPS, y las implementaciones de System/360 habían sido previamente estándares de rendimiento de facto. El número real de instrucciones ejecutadas en 1 segundo fue de aproximadamente 500.000, lo que generó quejas de exageración de marketing. El resultado fue la definición de un "VAX MIPS," la velocidad de un VAX-11/780; una computadora que funcione a 27 VAX MIPS ejecutaría el mismo programa aproximadamente 27 veces más rápido que el VAX-11/780.
Dentro de la comunidad digital, el término VUP (unidad de rendimiento VAX) era el término más común, porque los MIPS no se comparan bien entre diferentes arquitecturas. El término relacionado cluster VUPs se utilizó informalmente para describir el rendimiento agregado de un VAXcluster. (El rendimiento del VAX-11/780 todavía sirve como métrica de referencia en BRL-CAD Benchmark, un conjunto de análisis de rendimiento incluido en la distribución del software de modelado sólido BRL-CAD). El VAX-11/780 incluía un estándar subordinado. solo una computadora LSI-11 que realizaba funciones de carga, arranque y diagnóstico de microcódigos para la computadora principal. Esto se eliminó de los modelos VAX posteriores. Por lo tanto, los usuarios emprendedores del VAX-11/780 podrían ejecutar tres sistemas operativos diferentes de Digital Equipment Corporation: VMS en el procesador VAX (desde los discos duros) y RSX-11S o RT-11 en el LSI-11 (desde el procesador único de densidad única). unidad de disquete).
El VAX pasó por muchas implementaciones diferentes. El VAX 11/780 original se implementó en TTL y llenó un gabinete de cuatro por cinco pies con una sola CPU. A lo largo de la década de 1980, la gama alta de la familia se mejoró continuamente utilizando componentes discretos cada vez más rápidos, una evolución que terminó con la introducción del VAX 9000 en octubre de 1989. Este diseño resultó demasiado complejo y costoso y finalmente se abandonó poco después. Introducción. Las implementaciones de CPU que consistían en múltiples chips de matriz de compuertas o macrocélulas de lógica acoplada a emisores (ECL) incluían las superminis VAX 8600 y 8800 y, finalmente, las máquinas de clase mainframe VAX 9000. Las implementaciones de CPU que consistían en múltiples chips MOSFET personalizados incluían las máquinas de clase 8100 y 8200. Las máquinas de gama baja VAX 11-730 y 725 se construyeron utilizando componentes de segmento de bits AMD Am2901 para la ALU.
La MicroVAX I representó una transición importante dentro de la familia VAX. En el momento de su diseño, aún no era posible implementar la arquitectura VAX completa como un solo chip VLSI (o incluso algunos chips VLSI como se hizo más tarde con la CPU V-11 del VAX 8200/8300). En cambio, MicroVAX I fue la primera implementación de VAX en trasladar algunas de las instrucciones VAX más complejas (como el decimal empaquetado y los códigos de operación relacionados) al software de emulación. Esta partición redujo sustancialmente la cantidad de microcódigo requerido y se denominó "MicroVAX" arquitectura. En el MicroVAX I, la ALU y los registros se implementaron como un solo chip de matriz de puerta, mientras que el resto del control de la máquina era lógica convencional.
Llegó una implementación VLSI (microprocesador) completa de la arquitectura MicroVAX con la CPU 78032 (o DC333) y la FPU 78132 (DC335) de MicroVAX II. El 78032 fue el primer microprocesador con una unidad de administración de memoria integrada. El MicroVAX II se basó en una sola placa de procesador de tamaño cuádruple que llevaba los chips del procesador y ejecutaba los sistemas operativos MicroVMS o Ultrix-32. La máquina presentaba 1 MB de memoria integrada y una interfaz de bus Q22 con transferencias DMA. El MicroVAX II fue sucedido por muchos otros modelos MicroVAX con un rendimiento y una memoria mucho mejores.
Otros procesadores VLSI VAX siguieron en la forma de las implementaciones V-11, CVAX, CVAX SOC ("System On Chip", un CVAX de un solo chip), Rigel, Mariah y NVAX. Los microprocesadores VAX extendieron la arquitectura a estaciones de trabajo económicas y más tarde también suplantaron a los modelos VAX de gama alta. Esta amplia gama de plataformas (del mainframe a la estación de trabajo) que usaban una arquitectura era única en la industria informática en ese momento. Se grabaron varios gráficos en la matriz del microprocesador CVAX. La frase CVAX... cuando te preocupas lo suficiente como para robar lo mejor se grabó en ruso entrecortado como un juego de palabras con el eslogan de Hallmark Cards, con la intención de enviar un mensaje a los ingenieros soviéticos que eran conocidos por robar Computadoras DEC para aplicaciones militares e ingeniería inversa en el diseño de sus chips. A fines de la década de 1980, los microprocesadores VAX habían crecido en potencia para ser competitivos con diseños discretos. Esto llevó al abandono de las series 8000 y 9000 y su reemplazo por modelos del VAX 6000 con tecnología Rigel, y más tarde por sistemas VAX 7000 con tecnología NVAX.
En las ofertas de productos de DEC, la arquitectura VAX finalmente fue reemplazada por la tecnología RISC. En 1989, DEC introdujo una gama de estaciones de trabajo y servidores que ejecutaban Ultrix, DECstation y DECsystem respectivamente, basados en procesadores que implementaban la arquitectura MIPS. En 1992, DEC introdujo su propia arquitectura de conjunto de instrucciones RISC, Alpha AXP (más tarde rebautizada como Alpha), y su propio microprocesador basado en Alpha, DECchip 21064, un diseño de 64 bits de alto rendimiento capaz de ejecutar OpenVMS.
En agosto de 2000, Compaq anunció que los modelos VAX restantes dejarían de fabricarse a finales de año, pero los sistemas antiguos siguen siendo de uso generalizado. Los emuladores VAX basados en software Stromasys CHARON-VAX y SIMH siguen estando disponibles. VMS ahora está desarrollado por VMS Software Incorporated, aunque solo para las plataformas Alpha, HPE Integrity y x86-64.
Arquitectura del procesador
Mapa de memoria virtual
La memoria virtual VAX se divide en cuatro secciones. Cada uno tiene un gigabyte (en el contexto del direccionamiento, 230 bytes) de tamaño:
Sección | Address Range |
---|---|
P0 | 0x00000000 – 0x3fffffff |
P1 | 0x40000000 – 0x7fffffff |
S0 | 0x80000000 – 0xbfffffff |
S1 | 0xc0000000 – 0xffffffff |
Para VMS, P0 se usó para el espacio de proceso del usuario, P1 para la pila de procesos, S0 para el sistema operativo y S1 se reservó.
Modos de privilegio
El VAX tiene cuatro modos de privilegio implementados por hardware:
No. | Modo | VMS use | Notas |
---|---|---|---|
0 | Kernel | OS kernel | Nivel de privilegios más alto |
1 | Executive | Sistema de archivos | |
2 | Supervisor | Shell (DCL) | |
3 | Usuario | Programas normales | Nivel de privilegios más bajo |
Palabra larga de estado del procesador
La palabra larga de estado del proceso contiene 32 bits:
CM | TP | MBZ | FD | ES | Cmod | productos básicos | MBZ | IPL | MBZ | DV | FU | IV | T | N | Z | V | C |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 27 | 26 | 25 | 23 | 21 | 20 | 15 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Bits | Significado |
---|---|
31 | Modo de compatibilidad PDP-11 |
30 | traza pendiente |
29:28 | MBZ (debe ser cero) |
27 | primera parte hecha (instrucción interrumpida) |
26 | interrumpir la pila |
25:24 | modo de privilegio actual |
23:22 | anterior modo de privilegio |
21 | MBZ (debe ser cero) |
20:16 | IPL (nivel de prioridad interrumpida) |
15:8 | MBZ (debe ser cero) |
7 | trampa de desbordamiento decimal |
6 | trampa de subida de punto flotante permite |
5 | integer overflow trap |
4 | rastro |
3 | negativo |
2 | cero |
1 | desbordamiento |
0 | transporte |
Sistemas basados en VAX
El primer sistema basado en VAX fue el VAX-11/780, miembro de la familia VAX-11. El VAX 8600 de gama alta reemplazó al VAX-11/780 en octubre de 1984 y se le unieron las minicomputadoras MicroVAX de nivel de entrada y las estaciones de trabajo VAXstation a mediados de la década de 1980. El MicroVAX fue reemplazado por el VAX 4000, el VAX 8000 fue reemplazado por el VAX 6000 a fines de la década de 1980 y se introdujo el VAX 9000 de clase central. A principios de la década de 1990, se introdujo el VAXft tolerante a fallas, al igual que el VAX 7000/10000 compatible con Alpha. Se vendió una variante de varios sistemas basados en VAX como VAXserver.
ACCESO SIMULTÁNEO A MÁQUINAS (SIMACS)
System Industries desarrolló la capacidad de otorgar a más de una CPU DEC, pero no al mismo tiempo, acceso de escritura a un disco compartido. Implementaron una mejora llamada SImultaneous Machine ACceSs (SIMACS), que permitió que su controlador de disco especial estableciera un indicador de semáforo para el acceso al disco, lo que permitía múltiples ESCRITURAS en los mismos archivos; el disco es compartido por múltiples sistemas DEC. SIMACS también existía en los sistemas PDP-11 RSTS.
Sistemas cancelados
Los sistemas cancelados incluyen el BVAX, un VAX de gama alta basado en lógica acoplada a emisor (ECL) y otros dos modelos VAX basados en ECL: Argonaut y Cuervo. Raven se canceló en 1990. También se canceló un VAX llamado Gemini, que era una alternativa en caso de que fallara el Scorpio basado en LSI. Nunca se envió.
Clones
Se produjeron varios clones de VAX, tanto autorizados como no autorizados. Ejemplos incluyen:
- Computadoras Systime Ltd of the United Kingdom produced clones of early VAX models such as the Systime 8750 (equivalent to the VAX 11/750).
- Norden Systems produjo la robusta serie MIL VAX de especificación militar.
- El Instituto Central de Investigación de Física de Hungría (KFKI) produjo una serie de clones de modelos VAX tempranos, el TPA-11/540, 560 y 580.
- El SM 52/12 de Checoslovaquia, desarrollado en VUVT Žilina (hoy Eslovaquia) y producido a partir de 1986 en ZVT Banská Bystrica (hoy Eslovaquia).
- El Robotron K 1840 (SM 1710) es un clon del VAX-11/780 y Robotron K 1820 (SM 1720) es una copia del MicroVAX II.
- El SM-1700 es un clon soviético del VAX-11/730, SM-1702 era un clon de MicroVAX II y SM-1705 era un clon de VAX-11/785. Estos sistemas operaban una variedad de sistemas operativos clonales - DEMOS (basados en BSD Unix), MOS VP (basado en VAX/VMS) o MOS VP RV (basado en VAXELN).
- El Supermini NCI-2780, también vendido como Taiji-2780, es un clon del VAX-11/780 desarrollado por el Instituto de Tecnología de Computación de China del Norte en Beijing.
Contenido relacionado
Protocolo de información de enrutamiento (RIP)
Penetrador de energía cinética
Teleférico