Alpha (originalmente Alpha AXP ) es una arquitectura de conjunto de instrucciones (ISA ) de 64 bits para computadoras con conjunto de instrucciones reducido (RISC ) desarrollada por Digital Equipment Corporation (DEC). Alpha fue diseñado para reemplazar a las computadoras VAX de 32 bits con conjunto de instrucciones complejo (CISC) y para ser un procesador RISC altamente competitivo para estaciones de trabajo Unix y mercados similares.
Alpha se implementó en una serie de microprocesadores desarrollados y fabricados originalmente por DEC. Estos microprocesadores se utilizaron principalmente en diversas estaciones de trabajo y servidores de DEC, que con el tiempo sirvieron de base para casi toda su gama de productos de gama media y alta. Varios proveedores externos también fabricaron sistemas Alpha, incluyendo placas base con formato de PC .
Los sistemas operativos que soportan Alpha incluyen OpenVMS (anteriormente llamado OpenVMS AXP), Tru64 UNIX (anteriormente llamado DEC OSF/1 AXP y Digital UNIX), Windows NT (descontinuado después de NT 4.0 ; y la versión preliminar de Windows 2000 RC2 ), [ 1 ] Linux ( Debian , SUSE , [ 2 ] Gentoo y Red Hat ), BSD UNIX ( NetBSD , OpenBSD y FreeBSD hasta 6.x), Plan 9 de Bell Labs y el kernel L4Ka::Pistachio . Se realizó una adaptación de Ultrix a Alpha durante el desarrollo inicial de la arquitectura Alpha, pero nunca se lanzó como producto. [ 3 ]
La arquitectura Alpha se vendió, junto con la mayor parte de DEC, a Compaq en 1998. [ 4 ] Compaq, que ya era cliente de Intel x86, anunció que eliminaría gradualmente Alpha en favor de la futura arquitectura Itanium de Hewlett-Packard /Intel , y vendió toda la propiedad intelectual de Alpha a Intel en 2001, [ 5 ] acabando efectivamente con el producto. Hewlett-Packard compró Compaq en 2002, continuó el desarrollo de la línea de productos existente hasta 2004 y vendió sistemas basados en Alpha, principalmente a la base de clientes existente, hasta abril de 2007. [ 6 ]
Historia
PRISMA
Durante la década de 1980, Digital Equipment Corporation (DEC) tuvo un gran éxito con sus computadoras VAX de 32 bits basadas en CISC que ejecutaban el sistema operativo VMS . Sin embargo, a mediados de la década de 1980, la compañía coincidió con el consenso de la industria de que la nueva tecnología RISC era mucho más eficiente que CISC. En respuesta, se iniciaron numerosos proyectos internos que competían entre sí, lo que provocó retrasos e incertidumbre. [ 7 ]
Alpha surgió de un proyecto RISC anterior llamado Parallel Reduced Instruction Set Machine ( PRISM ), que a su vez era producto de varios proyectos anteriores. PRISM se concibió como un diseño flexible, compatible con aplicaciones tipo Unix y con el software VAX/VMS existente de Digital, tras una pequeña conversión. Un nuevo sistema operativo llamado MICA admitiría las interfaces ULTRIX y VAX/VMS en un núcleo común , lo que permitiría portar fácilmente el software de ambas plataformas a la arquitectura PRISM. [ 8 ]
Iniciado en 1985, el diseño PRISM se modificó continuamente durante su desarrollo en respuesta a los cambios en el mercado informático, lo que provocó largas demoras en su lanzamiento. No fue hasta el verano de 1987 que se decidió que sería un diseño de 64 bits , uno de los primeros diseños de este tipo en formato de microprocesador . En octubre de 1987, Sun Microsystems presentó la Sun-4 , su primera estación de trabajo que utilizaba su nuevo procesador SPARC . Funcionaba entre tres y cuatro veces más rápido que sus diseños anteriores Sun-3 que utilizaban el Motorola 68020 , y tenía la misma ventaja sobre cualquiera de las ofertas Unix de DEC. Los planes cambiaron de nuevo; PRISM se reorientó una vez más como un componente de 32 bits y se dirigió directamente al mercado Unix. Esto retrasó aún más el diseño. [ 9 ]
Tras observar cómo la fecha de entrega de PRISM seguía posponiéndose y ante la posibilidad de más retrasos, un equipo de la oficina de Palo Alto decidió diseñar su propia estación de trabajo utilizando otro procesador RISC. Seleccionaron el MIPS R2000 y construyeron la primera DECstation con Ultrix en 90 días. [ 10 ] Esto desencadenó un acalorado debate dentro de la empresa, que culminó en una reunión de la dirección en julio de 1988. PRISM parecía ser más rápido que el R2000, pero las máquinas R2000 podrían estar en el mercado en enero de 1989, un año antes que PRISM. Cuando se aceptó esta propuesta, uno de los dos roles originales de PRISM desapareció. La decisión de crear un VMS PRISM ya se había tomado para entonces, por lo que no quedaba ningún rol. PRISM se canceló en la reunión. [ 11 ]
VACUNA RISCY
Al finalizar la reunión, Ken Olsen se acercó a Bob Supnik y le comentó que los chips RISC parecían representar una amenaza futura para su línea VAX. Le pidió a Supnik que considerara qué se podría hacer con VAX para mantener su competitividad frente a los futuros sistemas RISC. [ 9 ]
Esto llevó a la formación del equipo "RISCy VAX". Inicialmente consideraron tres conceptos. Uno era una versión reducida de la arquitectura del conjunto de instrucciones (ISA) de VAX que se ejecutaría en un sistema similar a RISC y dejaría las instrucciones VAX más complejas a las subrutinas del sistema. Otro concepto era un sistema RISC puro que traduciría el código VAX existente a su propia ISA sobre la marcha y lo almacenaría en una caché de la CPU . Finalmente, aún existía la posibilidad de un procesador CISC mucho más rápido que ejecutara la ISA VAX completa. Desafortunadamente, todos estos enfoques introducían sobrecarga y no serían competitivos con una máquina RISC pura que ejecutara código RISC nativo. [ 12 ]
El grupo consideró entonces sistemas híbridos que combinaban una de sus soluciones VAX de un solo chip existentes con un chip RISC como coprocesador para necesidades de alto rendimiento. Estos estudios sugirieron que el sistema se vería inevitablemente limitado por la parte de menor rendimiento y no ofrecería ninguna ventaja decisiva. Fue entonces cuando Nancy Kronenberg señaló que se utilizaba VMS, no VAX, y que VMS solo tenía unas pocas dependencias de hardware basadas en su modelado de interrupciones y paginación de memoria. No parecía haber ninguna razón de peso por la que VMS no pudiera portarse a un chip RISC siempre que se conservaran estos pequeños detalles del modelo. Un trabajo posterior sobre este concepto sugirió que se trataba de un enfoque viable. [ 12 ]
Supnik llevó el informe resultante al Grupo de Trabajo de Estrategia 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 debería la máquina ser un estándar abierto? Y con eso, se tomó la decisión de adoptar la arquitectura PRISM con las modificaciones apropiadas. Esto se convirtió en el concepto "EVAX", una continuación de la exitosa implementación CMOS CVAX . Cuando la gerencia aceptó los hallazgos, decidieron darle al proyecto un nombre más neutral, eliminando "VAX", y finalmente optando por Alpha. [ 13 ] El nombre se inspiró en el uso de "Omega" como nombre en clave de un modelo VAX 4000 basado en NVAX ; "Alpha" pretendía significar el comienzo de una nueva línea (en referencia a Alpha y Omega ). [ 14 ] Poco después, comenzó el trabajo en una adaptación de VMS a la nueva arquitectura . [ 15 ]
Alfa
Alpha fue diseñado para un alto rendimiento y la capacidad de ejecutar tanto VMS como Unix. La traducción binaria proporciona retrocompatibilidad con VAX VMS y aplicaciones Ultrix MIPS. [ 7 ] Implementa la mayoría de los conceptos básicos de PRISM, pero fue reajustado para permitir que VMS y los programas VMS se ejecuten a una velocidad razonable sin ninguna conversión. Los principales arquitectos del conjunto de instrucciones Alpha fueron Richard L. Sites y Richard T. Witek. [ 16 ] El Epicode de PRISM se desarrolló en el PALcode de Alpha , proporcionando una interfaz abstracta para características específicas de la plataforma y la implementación del procesador.
La principal contribución de Alpha a la industria de los microprocesadores, y la razón principal de su rendimiento, no reside tanto en su arquitectura como en su implementación. [ 17 ] En aquel entonces (al igual que ahora), la industria de los microchips estaba dominada por herramientas automatizadas de diseño y disposición de circuitos. Los diseñadores de chips de Digital continuaron desarrollando sofisticados diseños de circuitos manuales para lidiar con la compleja arquitectura VAX. Los chips Alpha demuestran que el diseño de circuitos manuales aplicado a una arquitectura más simple y limpia permite frecuencias de operación mucho más altas que las que se pueden lograr con los sistemas de diseño más automatizados. Estos chips provocaron un renacimiento del diseño de circuitos personalizados dentro de la comunidad de diseño de microprocesadores.
Originalmente, los procesadores Alpha se denominaban serie DECchip 21x64 , [ 18 ] y a mediados de la década de 1990 se sustituyó "DECchip" por "Alpha". Los dos primeros dígitos, "21", representan el siglo XXI, y los dos últimos, "64", representan 64 bits. [ 18 ] El Alpha se diseñó como de 64 bits desde el principio y no existe una versión de 32 bits. El dígito central corresponde a la generación de la arquitectura Alpha. Internamente, los procesadores Alpha también se identificaban mediante números EV , que oficialmente significaban "Extended VAX", pero que tenían un significado alternativo humorístico de "Electric Vlasic ", en homenaje al experimento Electric Pickle del Western Research Lab. [ 19 ] El número en las designaciones EV indicaba el proceso de semiconductores para el que se diseñó el chip. Por ejemplo, el procesador EV4 utilizaba el proceso CMOS-4 de DEC. [ 12 ]
En mayo de 1997, DEC demandó a Intel por presunta infracción de sus patentes Alpha en el diseño de los chips originales Pentium , Pentium Pro y Pentium II . [ 20 ] Como parte de un acuerdo, gran parte del negocio de diseño y fabricación de chips de DEC se vendió a Intel. Esto incluía la implementación StrongARM de DEC de la arquitectura de computadora ARM , que Intel comercializó como los procesadores XScale comúnmente utilizados en las Pocket PC . El núcleo de Digital Semiconductor, el grupo de microprocesadores Alpha, permaneció con DEC, mientras que los edificios de oficinas asociados pasaron a Intel como parte de la fábrica Hudson. [ 21 ]
Modelos mejorados
Las primeras generaciones de chips Alpha fueron algunas de las más innovadoras de su época.
- Un modelo de preproducción, denominado EV3 , se utilizó en un sistema prototipo llamado Unidad de Demostración Alpha (ADU). Las ADU se utilizaron para portar sistemas operativos a la arquitectura Alpha. Una diferencia clave entre el EV3 y los modelos posteriores fue la ausencia de una unidad de punto flotante. [ 22 ]
- La primera versión, la Alpha 21064 o EV4 , es el primer microprocesador CMOS cuya frecuencia de funcionamiento rivalizaba con la de los miniordenadores y ordenadores centrales ECL de mayor potencia .
- El segundo, el 21164 o EV5 , es el primer microprocesador que coloca una gran caché secundaria en el chip. [ 23 ]
- El tercero, el 21264 o EV6 , es el primer microprocesador que combina una alta frecuencia de funcionamiento con la microarquitectura de ejecución fuera de orden, más compleja .
- El 21364 o EV7 es el primer procesador de alto rendimiento que tiene un controlador de memoria en el chip . [ 24 ]
- El procesador 21464 o EV8 , que nunca llegó a producirse , habría sido el primero en incluir multihilo simultáneo , pero esta versión se canceló tras la venta de DEC a Compaq . El proyecto de investigación Tarantula , que probablemente se habría llamado EV9 , habría sido el primer procesador Alpha en incorporar una unidad de procesamiento vectorial . [ 25 ]
Un informe persistente atribuido a fuentes internas de DEC sugiere que la elección de la etiqueta AXP para el procesador fue realizada por el departamento legal de DEC, que aún estaba resentido por el fiasco de la marca registrada VAX . [ 26 ] Tras una larga búsqueda, se descubrió que la etiqueta "AXP" no estaba registrada. Dentro de la industria informática, surgió la broma de que el acrónimo AXP significaba "Almost eXactly PRISM" (Casi exactamente PRISM). [ 27 ]
Principios de diseño
La arquitectura Alpha fue concebida como un diseño de alto rendimiento. Digital pretendía que la arquitectura soportara un aumento de rendimiento de mil veces en veinticinco años. Para garantizarlo, se eliminó cualquier característica arquitectónica que impidiera la ejecución de múltiples instrucciones, la frecuencia de reloj o el multiprocesamiento. Como resultado, Alpha no tiene:
- Ranuras de retardo de rama
- Instrucciones suprimidas
- Instrucciones de carga o almacenamiento de bytes (añadidas posteriormente con las extensiones de palabras de bytes (BWX)) [ 28 ] [ 29 ]
Códigos de condición
El Alpha no tiene códigos de condición para las instrucciones enteras [ 30 ] para eliminar un posible cuello de botella en el registro de estado de condición. Las instrucciones que resultan en un desbordamiento, como la suma de dos números cuyo resultado no cabe en 64 bits, escriben los 32 o 64 bits menos significativos en el registro de destino. El acarreo se genera realizando una comparación sin signo del resultado con cualquiera de los operandos para ver si el resultado es menor que alguno de ellos. Si la prueba es verdadera, el valor uno se escribe en el bit menos significativo del registro de destino para indicar la condición.
Registros
La arquitectura define un conjunto de 32 registros de enteros y un conjunto de 32 registros de punto flotante, además de un contador de programa , dos registros de bloqueo y un registro de control de punto flotante (FPCR). También define registros opcionales, implementados solo si la implementación los requería. Por último, se definen los registros para el código PAL .
Los registros de enteros se denotan por R0 a R31 y los registros de punto flotante por F0 a F31. Los registros R31 y F31 están cableados a cero y las escrituras en ellos por parte de las instrucciones se ignoran. Digital consideró usar un archivo de registros combinado, pero se determinó que un archivo de registros dividido era mejor, ya que permite que las implementaciones de dos chips tengan un archivo de registros ubicado en cada chip y que las implementaciones solo de enteros omitan el archivo de registros de punto flotante que contiene los registros de punto flotante. También se determinó que un archivo de registros dividido era más adecuado para la emisión de múltiples instrucciones debido a la reducción en el número de puertos de lectura y escritura. También se consideró el número de registros por archivo de registros, siendo 32 y 64 los candidatos. Digital concluyó que 32 registros era más adecuado, ya que requería menos espacio en el chip , lo que mejora las frecuencias de reloj. Se consideró que este número de registros no era un problema importante con respecto al rendimiento y el crecimiento futuro, ya que treinta y dos registros podrían admitir al menos la emisión de instrucciones de ocho vías.
El contador de programa es un registro de 64 bits que contiene una dirección de byte virtual alineada a palabra larga; es decir, los dos bits menos significativos del contador de programa siempre son cero. El PC se incrementa en cuatro hasta la dirección de la siguiente instrucción cuando se decodifica una instrucción. Las instrucciones de carga bloqueada y de almacenamiento condicional utilizan un indicador de bloqueo y un registro de dirección física bloqueada para la compatibilidad con multiprocesadores. El registro de control de punto flotante (FPCR) es un registro de 64 bits definido por la arquitectura, diseñado para su uso en implementaciones Alpha con hardware de punto flotante compatible con IEEE 754 .
Tipos de datos
En la arquitectura Alpha, un byte se define como un dato de 8 bits (octeto), una palabra como un dato de 16 bits , una palabra larga como un dato de 32 bits , una palabra cuádruple como un dato de 64 bits y una palabra octavalente como un dato de 128 bits .
La arquitectura Alpha definió originalmente seis tipos de datos:
- Entero de cuatro palabras (64 bits)
- Entero de palabra larga (32 bits)
- Punto flotante IEEE T (doble precisión, 64 bits)
- Punto flotante IEEE S (precisión simple, 32 bits)
Para mantener un nivel de compatibilidad con la arquitectura VAX de 32 bits que precedió a la Alpha, se incluyen otros dos tipos de datos de punto flotante:
- VAX G de punto flotante (doble precisión, 64 bits)
- VAX F de punto flotante (precisión simple, 32 bits)
La coma flotante H de VAX (precisión cuádruple, 128 bits) no era compatible, [ 31 ] pero otra opción de coma flotante de 128 bits, la coma flotante X, está disponible en Alpha, pero no en VAX. [ 32 ] Se ha descrito que H y X son similares, pero no idénticas. DEC ofrece emulación por software para coma flotante H, así como un convertidor a nivel de código fuente llamado DECmigrate.
Memoria
El Alpha cuenta con un espacio de direcciones virtuales lineal de 64 bits sin segmentación de memoria. Las implementaciones pueden utilizar un espacio de direcciones virtuales más pequeño, con un tamaño mínimo de 43 bits. Si bien los bits no utilizados no se implementaron en hardware como las TLB , la arquitectura requería que las implementaciones verificaran si eran cero para garantizar la compatibilidad del software con implementaciones que utilizaran un espacio de direcciones virtuales mayor (o completo).
Formatos de instrucciones
La arquitectura Alpha ISA tiene una longitud de instrucción fija de 32 bits. Dispone de seis formatos de instrucción.
El formato de operación de enteros se utiliza en las instrucciones de enteros. Contiene un campo de código de operación de 6 bits, seguido del campo Ra, que especifica el registro que contiene el primer operando, y el campo Rb, que especifica el registro que contiene el segundo operando. A continuación, hay un campo de 3 bits que no se utiliza y está reservado. Un campo de 1 bit contiene un "0", que distingue este formato del formato literal de enteros. Le sigue un campo de función de 7 bits, que se utiliza junto con el código de operación para especificar una operación. El último campo es el campo Rc, que especifica el registro en el que se debe escribir el resultado de un cálculo. Todos los campos de registro tienen una longitud de 5 bits, necesaria para direccionar 32 ubicaciones únicas, los 32 registros de enteros.
El formato literal entero se utiliza en las instrucciones enteras que emplean un literal como uno de sus operandos. El formato es idéntico al del formato de operación entera, salvo por la sustitución del campo Rb de 5 bits y los 3 bits de espacio no utilizado por un campo literal de 8 bits, que se extiende a cero hasta formar un operando de 64 bits.
El formato de operación de punto flotante se utiliza en las instrucciones de punto flotante. Es similar al formato de operación de enteros, pero cuenta con un campo de función de 11 bits, posible gracias al uso de los bits literales y no utilizados que se reservan en el formato de operación de enteros.
El formato de memoria se utiliza principalmente para las instrucciones de carga y almacenamiento. Cuenta con un campo de código de operación de 6 bits, un campo Ra de 5 bits, un campo Rb de 5 bits y un campo de desplazamiento de 16 bits.
Las instrucciones de salto tienen un campo de código de operación de 6 bits, un campo Ra de 5 bits y un campo de desplazamiento de 21 bits. El campo Ra especifica un registro que se comprobará mediante una instrucción de salto condicional. Si se cumple la condición, el contador de programa se actualiza sumando el contenido del campo de desplazamiento al contador de programa. El campo de desplazamiento contiene un entero con signo; si el valor del entero es positivo, el contador de programa se incrementa si se ejecuta el salto. Si el valor del entero es negativo, el contador de programa se decrementa si se ejecuta el salto. Por lo tanto, el rango de un salto es de ±1 Mi instrucciones, o ±4 MiB. La arquitectura Alpha se diseñó con un amplio rango como parte de su visión de futuro.
La instrucción CALL_PAL utiliza el formato CALL_PAL CALL_PALpara llamar a las subrutinas PALcode . Este formato conserva el campo de código de operación, pero reemplaza los demás con un campo de función de 26 bits que contiene un número entero que especifica una subrutina PAL.
Conjunto de instrucciones
Instrucciones de control
Las instrucciones de control consisten en bifurcaciones condicionales e incondicionales, y saltos. Las instrucciones de bifurcación condicionales e incondicionales utilizan el formato de instrucción de bifurcación, mientras que las instrucciones de salto utilizan el formato de instrucción de memoria.
Las bifurcaciones condicionales comprueban si el bit menos significativo de un registro está activado o desactivado, o comparan un registro como una palabra cuádruple con signo con cero, y se bifurcan si la condición especificada es verdadera. Las condiciones disponibles para comparar un registro con cero son igualdad, desigualdad, menor que, menor o igual que, mayor o igual que y mayor que. La nueva dirección se calcula mediante la alineación de palabra larga y la extensión de signo del desplazamiento de 21 bits, sumándola a la dirección de la instrucción que sigue a la bifurcación condicional.
Las bifurcaciones incondicionales actualizan el contador de programa con una nueva dirección calculada de la misma manera que las bifurcaciones condicionales. Además, guardan la dirección de la instrucción que sigue a la bifurcación incondicional en un registro. Existen dos instrucciones de este tipo, que se diferencian únicamente en las indicaciones que proporcionan al hardware de predicción de bifurcaciones.
Existen cuatro instrucciones de salto. Todas realizan la misma operación: guardan la dirección de la instrucción siguiente al salto y proporcionan al contador de programa una nueva dirección desde un registro. Se diferencian en las indicaciones que envían al hardware de predicción de bifurcaciones. Para ello, se utiliza el campo de desplazamiento no utilizado.
Aritmética de números enteros
Las instrucciones de aritmética entera realizan suma, multiplicación y resta en palabras largas y palabras cuádruples; y comparación en palabras cuádruples. No hay instrucciones para la división, ya que los arquitectos consideraron que la implementación de la división en hardware era contraria a la simplicidad. Además de las instrucciones estándar de suma y resta, hay versiones escaladas . Estas versiones desplazan el segundo operando a la izquierda dos o tres bits antes de sumar o restar. Las instrucciones Multiply Longword y Multiply Quadword escriben los 32 o 64 bits menos significativos de un resultado de 64 o 128 bits en el registro de destino, respectivamente. Dado que es útil obtener la mitad más significativa, se proporciona la instrucción Unsigned Multiply Quadword High (UMULH). UMULH se utiliza para implementar algoritmos de aritmética y división de precisión múltiple. El concepto de una instrucción separada para la multiplicación que devuelve la mitad más significativa de un resultado se tomó de PRISM .
Las instrucciones que operan con palabras largas ignoran la mitad más significativa del registro y el resultado de 32 bits se extiende con signo antes de escribirse en el registro de destino. Por defecto, las instrucciones de suma, multiplicación y resta, con la excepción de UMULH y las versiones escaladas de suma y resta, no generan una excepción por desbordamiento. Cuando se requiere esta funcionalidad, se proporcionan versiones de estas instrucciones que detectan el desbordamiento y generan una excepción en caso de desbordamiento.
Las instrucciones de comparación comparan dos registros o un registro y un literal, y escriben '1' en el registro de destino si se cumple la condición especificada o '0' en caso contrario. Las condiciones son igualdad, desigualdad, menor o igual que y menor que. Con la excepción de las instrucciones que especifican las dos primeras condiciones, existen versiones que realizan comparaciones con y sin signo.
Las instrucciones de aritmética de enteros utilizan los formatos de instrucciones de operación de enteros.
Cambio lógico
Las instrucciones lógicas consisten en aquellas para realizar operaciones lógicas bit a bit y movimientos condicionales en los registros enteros. Las instrucciones lógicas bit a bit realizan AND , NAND , NOR , OR , XNOR y XOR entre dos registros o un registro y un literal. Las instrucciones de movimiento condicional prueban un registro como una palabra cuádruple con signo a cero y lo mueven si la condición especificada es verdadera. Las condiciones especificadas son igualdad, desigualdad, menor o igual que, menor que, mayor o igual que y mayor que. Las instrucciones de desplazamiento realizan desplazamientos aritméticos a la derecha y desplazamientos lógicos a la izquierda y a la derecha . La cantidad de desplazamiento viene dada por un registro o un literal. Las instrucciones lógicas y de desplazamiento utilizan los formatos de instrucción de operación de enteros.
Extensiones
Extensiones de bytes y palabras (BWX)
Las versiones posteriores de Alpha incluyen extensiones de palabra de byte (BWX), un conjunto de instrucciones para manipular tipos de datos de 8 y 16 bits. Estas instrucciones se introdujeron por primera vez en el microprocesador 21164A (EV56) y están presentes en todas las implementaciones posteriores. Estas instrucciones realizan operaciones que antes requerían múltiples instrucciones para su implementación, lo que mejora la densidad del código y el rendimiento de ciertas aplicaciones. BWX también facilita la emulación del código máquina x86 y la escritura de controladores de dispositivos . [ 33 ]
Instrucciones de vídeo en movimiento (MVI)
Las instrucciones de vídeo en movimiento (MVI) fueron una extensión del conjunto de instrucciones para la arquitectura Alpha ISA que añadió instrucciones para operaciones de instrucción única, datos múltiples (SIMD). [ 34 ] Las implementaciones de Alpha que implementan MVI, en orden cronológico, son Alpha 21164PC (PCA56 y PCA57), Alpha 21264 (EV6) y Alpha 21364 (EV7). A diferencia de la mayoría de los demás conjuntos de instrucciones SIMD del mismo período, como MDMX de MIPS o Visual Instruction Set de SPARC , pero como Multimedia Acceleration eXtensions de PA-RISC (MAX-1, MAX-2), MVI era un conjunto de instrucciones simple compuesto por unas pocas instrucciones que operan sobre tipos de datos enteros almacenados en registros enteros existentes.
La simplicidad de MVI se debe a dos razones. En primer lugar, Digital determinó que el Alpha 21164 ya era capaz de decodificar DVD mediante software, por lo que no requería hardware adicional, aunque era ineficiente en la codificación MPEG-2 . La segunda razón es la necesidad de mantener los tiempos de ciclo rápidos de las implementaciones. Agregar muchas instrucciones habría complicado y aumentado la lógica de decodificación, reduciendo la frecuencia de reloj de la implementación.
MVI consta de 13 instrucciones:
Extensiones de punto flotante (CORRECCIÓN)
Las extensiones de punto flotante (FIX) son una extensión de la arquitectura Alpha. Introducen nueve instrucciones para el cálculo de la raíz cuadrada en punto flotante y para la transferencia de datos entre los registros de enteros y de punto flotante. El Alpha 21264 (EV6) es el primer microprocesador en implementar estas instrucciones.
Extensiones de conteo (CIX)
Count Extensions (CIX) es una extensión de la arquitectura que introduce tres instrucciones para contar bits. Estas instrucciones se clasifican como instrucciones de aritmética de enteros. Se implementaron por primera vez en el Alpha 21264A (EV67).
Implementaciones
DEC convirtió a Alpha en su única arquitectura de computadora, de forma similar a lo que había hecho con VAX tras el gran éxito de ese diseño. [ 7 ] La tecnología era tan importante para la compañía que un analista de la industria declaró a Computerworld : "Si Alpha fracasa, DEC está muerta", [ 35 ] y PC Week describió a DEC como inmersa en "la que podría ser la lucha de su vida". [ 36 ] Alrededor de 30 aplicaciones estaban disponibles en el momento del lanzamiento de los primeros sistemas Alpha en noviembre de 1992; DEC anunció que se lanzarían 500 más en los nueve meses siguientes y 1500 más posteriormente. [ 37 ]
En el momento de su anuncio, Alpha fue aclamada como una arquitectura para los próximos 25 años. Si bien esto no se cumplió, Alpha ha tenido una vida útil razonablemente larga. La primera versión, el Alpha 21064 (también llamado EV4 ), se presentó en noviembre de 1992 con una frecuencia de hasta 192 MHz; una ligera reducción del tamaño del chip (el EV4S , reducido de 0,75 μm a 0,675 μm) alcanzó los 200 MHz unos meses después. El procesador de 64 bits tenía un diseño supersegmentado y superescalar , como otros diseños RISC, pero aun así los superó a todos y DEC lo promocionó como el procesador más rápido del mundo. La meticulosa atención al diseño de circuitos, un sello distintivo del equipo de diseño de Hudson, como un enorme circuito de reloj centralizado, les permitió hacer funcionar la CPU a velocidades más altas, a pesar de que la microarquitectura era bastante similar a la de otros chips RISC. En comparación, el procesador Intel Pentium, más económico , funcionaba a 66 MHz cuando se lanzó la primavera siguiente.
El Alpha 21164 o EV5 estuvo disponible en 1995 con frecuencias de procesador de hasta 333 MHz. En julio de 1996, la velocidad de la línea aumentó a 500 MHz, y en marzo de 1998 a 666 MHz. También en 1998 se lanzó el Alpha 21264 ( EV6 ) a 450 MHz, llegando finalmente (en 2001 con el 21264C / EV68CB ) a 1,25 GHz. En 2003, se lanzó el Alpha 21364 o EV7 Marvel , esencialmente un núcleo EV68 con cuatro enlaces de comunicación entre procesadores de 1,6 GB/s [ a ] para un mejor rendimiento del sistema multiprocesador , funcionando a 1 o 1,15 GHz.
En 1996, la producción de chips Alpha fue licenciada a Samsung Electronics Company . Tras la adquisición de Digital por Compaq , la mayoría de los productos Alpha fueron asignados a API NetWorks , Inc. (anteriormente Alpha Processor Inc.), una empresa privada financiada por Samsung y Compaq. En octubre de 2001, Microway se convirtió en el proveedor exclusivo de ventas y servicio de la línea de productos Alpha de API NetWorks.
El 25 de junio de 2001, Compaq anunció que Alpha sería descontinuado para 2004 en favor de Itanium de Intel , canceló el chip EV8 planeado y vendió toda la propiedad intelectual de Alpha a Intel . [ 5 ] Hewlett-Packard se fusionó con Compaq en 2002; HP anunció que el desarrollo de la serie Alpha continuaría por algunos años más, incluyendo el lanzamiento de una variante EV7 de 1,3 GHz llamada EV7z . Esta sería la iteración final de Alpha, ya que el EV79 de 0,13 μm también fue cancelado.
Alpha también se implementa en Piranha , un prototipo de investigación desarrollado por los grupos de Investigación Corporativa y Desarrollo de Hardware Nonstop de Compaq en el Laboratorio de Investigación Occidental y el Centro de Investigación de Sistemas. Piranha es un diseño multinúcleo para cargas de trabajo de procesamiento de transacciones que contiene ocho núcleos simples. Fue descrito en el 27.º Simposio Internacional Anual sobre Arquitectura de Computadoras en junio de 2000. [ 38 ]
Se afirma que las primeras revisiones de la arquitectura Sunway se basan en Alpha; sin embargo, desde el SW26010 , Sunway utiliza una nueva arquitectura de conjunto de instrucciones no relacionada con Alpha. [ 39 ] [ 40 ]
Historia del modelo
- extensiones ISA
- R – Soporte de hardware para redondeo a infinito y menos infinito. [ 42 ]
- B – BWX, la "Extensión de byte/palabra", que añade instrucciones para permitir operaciones de 8 y 16 bits desde memoria y E/S.
- M – MVI, instrucciones "multimedia"
- F – FIX, instrucciones para mover datos entre registros enteros y de punto flotante y para la raíz cuadrada
- C – CIX, instrucciones para contar y encontrar bits
- T – soporte para precarga con intención de modificación para mejorar el rendimiento del primer intento de adquirir un bloqueo
Actuación
Para ilustrar el rendimiento comparativo de los sistemas basados en Alpha, a continuación se muestran algunos datos de rendimiento de Standard Performance Evaluation Corporation (SPEC) (SPECint95, SPECfp95). Cabe destacar que los resultados de SPEC indican el rendimiento medido de todo el sistema informático (CPU, bus, memoria, optimizador del compilador), no solo de la CPU. Asimismo, es importante tener en cuenta que la escala y el método de evaluación cambiaron entre 1992 y 1995. Sin embargo, las cifras ofrecen una idea aproximada del rendimiento de la arquitectura Alpha (64 bits), en comparación con las ofertas contemporáneas de HP (64 bits) e Intel (32 bits). La tendencia más evidente es que, si bien Intel siempre se acercaba razonablemente al rendimiento de Alpha en operaciones con enteros, la diferencia en operaciones de coma flotante era considerable. Por otro lado, HP ( PA-RISC ) también se acerca bastante a Alpha, pero estas CPU funcionan a frecuencias de reloj (MHz) significativamente más bajas. Las tablas carecen de dos valores importantes: el consumo de energía y el precio de la CPU.
Sistemas basados en alfa
La primera generación de sistemas basados en DEC Alpha comprende las estaciones de trabajo y servidores de gama baja de la serie DEC 3000 AXP , los servidores de gama media de la serie DEC 4000 AXP y los servidores de gama alta de las series DEC 7000 AXP y 10000 AXP . Los sistemas DEC 3000 AXP utilizan el mismo bus TURBOchannel que los modelos DECstation anteriores basados en MIPS , mientras que el 4000 se basa en Futurebus + y los 7000/10000 comparten una arquitectura con los modelos VAX correspondientes .
DEC también produjo una estación de trabajo Alpha con configuración de PC y bus EISA ( Extended Industry Standard Architecture ), la DECpc AXP 150 (nombre en clave Jensen , también conocida como DEC 2000 AXP). Este fue el primer sistema Alpha compatible con Windows NT . Posteriormente, DEC produjo versiones Alpha de sus líneas de PC Celebris XL y Digital Personal Workstation , con procesadores 21164.
Digital también fabricó ordenadores de placa única basados en el bus VME para uso industrial y embebido. La primera generación incluye los modelos AXPvme 64 y AXPvme 64LC, basados en el procesador 21068, y el AXPvme 160, basado en el 21066. Estos se presentaron el 1 de marzo de 1994. Los modelos posteriores, como el AXPvme 100, el AXPvme 166 y el AXPvme 230, se basan en el procesador 21066A, mientras que el Alpha VME 4/224 y el Alpha VME 4/288 se basan en el procesador 21064A. Los últimos modelos, el Alpha VME 5/352 y el Alpha VME 5/480, se basan en el procesador 21164.
El chip 21066 se utiliza en la estación de trabajo compacta DEC Multia VX40/41/42 y en el ordenador portátil ALPHAbook 1 de Tadpole Technology.
En 1994, DEC lanzó una nueva gama de sistemas AlphaStation y AlphaServer . Estos sistemas utilizaban procesadores 21064 o 21164 e incorporaron el bus PCI , búferes de imagen compatibles con VGA y teclados y ratones tipo PS/2 . La serie AlphaServer 8000 sustituyó a la DEC 7000/10000 AXP y también utilizaba los buses XMI y FutureBus+.
La AlphaStation XP1000 es la primera estación de trabajo basada en el procesador 21264. Los modelos AlphaServer / Station posteriores , basados en el 21264, se clasifican en las familias DS (servidor departamental), ES (servidor empresarial) o GS (servidor global).
El chip final 21364 se utiliza en los modelos AlphaServer ES47, ES80 y GS1280, así como en la AlphaStation ES47.
DEC produjo varias placas base OEM , como la AXPpci 33 "NoName" basada en 21066 y 21068, que formó parte de una importante incursión de la compañía en el mercado OEM, [ 43 ] la AlphaPC 164 y AlphaPC 164LX basadas en 21164, la AlphaPC 164SX y AlphaPC 164RX basadas en 21164PC y la AlphaPC 264DP basada en 21264. Varios terceros, como Samsung y API, también produjeron placas base OEM, como la API UP1000 y UP2000.
Para ayudar a terceros en el desarrollo de hardware y software para la plataforma, DEC produjo placas de evaluación, como la EB64+ y la EB164 para los microprocesadores Alpha 21064A y 21164, respectivamente.
NetApp utilizó los procesadores 21164 y 21264 en diversos sistemas de almacenamiento conectados a la red , mientras que Cray utilizó los procesadores 21064 y 21164 en sus supercomputadoras masivamente paralelas T3D y T3E .
Supercomputadoras
La supercomputadora más rápida basada en procesadores Alpha fue la ASCI Q del Laboratorio Nacional de Los Alamos. La máquina fue construida como un clúster HP AlphaServer SC45/GS. Tenía 4096 CPU Alpha (21264 EV-68, 1,25 GHz) y alcanzó un R max de 7,727 TFLOPS . [ 44 ]
Notas
Referencias
- ↑ Aaron Sakovich (2001). "¿Windows 2000?" . The AlphaNT Source. Archivado del original el 8 de julio de 2008. Recuperado el 1 de enero de 2007 .
- ↑ "SUSE Linux 7.0 Alpha Edition" . SUSE. 2000. Archivado del original el 8 de enero de 2014. Consultado el 8 de enero de 2014 .
- ↑ George A. Darcy III; Ronald F. Brender; Stephen J. Morris; Michael V. Iles (1992). "Uso de la simulación para desarrollar y portar software" (PDF) . Digital Technical Journal . 4 (4): 181– 192.
- ↑ "El fantasma de DEC Alpha es la razón por la que Windows es pésimo en la compresión de archivos" . TheRegister.co.uk . 2 de noviembre de 2016. Archivado del original el 20 de septiembre de 2018. Consultado el 20 de septiembre de 2018 .
- 1 2 Popovich, Ken (28-06-2001). "Alpha resultó costoso para Compaq" . ZDNet . Archivado del original el 03-03-2016 . Recuperado el 02-03-2016 .
- ↑ "Transformando su entorno AlphaServer" . HP. Archivado del original el 8 de febrero de 2007. Consultado el 11 de enero de 2007 .
- 1 2 3 Bell, Gordon ; Strecker, WD Retrospectiva: ¿Qué hemos aprendido del PDP-11? - ¿Qué hemos aprendido de VAX y Alpha? (PDF) (Informe) . Recuperado el 26 de junio de 2025 .
- ↑ Catherine Richardson; Terry Morris; Rockie Morgan; Reid Brown; Donna Meikle (marzo de 1987). "Plan de negocios de MICA Software" (PDF) . bitsavers.org . Archivado (PDF) del original el 7 de enero de 2021. Consultado el 4 de enero de 2021 .
- 1 2 Supnik, Bob (24 de febrero de 2008). "MicroPrism" . The Computer History Simulation Project . Archivado del original el 3 de abril de 2021. Recuperado el 26 de abril de 2021 .
- ↑ Bolotoff, Paul V (22 de abril de 2007). "Alpha: La historia en hechos y comentarios" . Archivado del original el 29 de septiembre de 2019. Consultado el 9 de septiembre de 2019 .
- ↑ Mark Smotherman. "Boceto de DEC PRISM" . Archivado del original el 4 de abril de 2020. Consultado el 20 de septiembre de 2018. PRISM
(Máquina de conjunto de instrucciones paralelo reducido)... primer borrador de la arquitectura PRISM en agosto de 1985; DEC cancela el proyecto en 1988 a favor de una basada en MIPS...
- 1 2 3 Comerford, Richard (julio de 1992). "Cómo DEC desarrolló Alpha". IEEE Spectrum . 29 (7): 28. doi : 10.1109/6.144508 .
- ↑ Supnik, Bob (1992). "Prólogo" . Digital Technical Journal . 4 (4). Archivado del original el 3 de mayo de 2021. Recuperado el 3 de mayo de 2021 .
- ↑ Supnik, Robert (2 de mayo de 2017). "Historia oral de Robert Supnik" (PDF) . computerhistory.org (Entrevista). Entrevistado por Gardner Hendrie. Museo de Historia de la Computación . Consultado el 6 de abril de 2024 .
- ↑ "Gestión de saltos tecnológicos: un estudio del equipo de diseño Alpha de DEC" (PDF) . Abril de 1993. Archivado (PDF) del original el 7 de febrero de 2021. Consultado el 26 de abril de 2021 .
- ↑ Richard L. Sites; Richard T. Witek (16 de mayo de 2014). Manual de referencia de la arquitectura Alpha AXP – 2.ª edición . Digital Press. ISBN 978-1-4831-8403-6Archivado del original el 20/09/2018 . Consultado el 20/09/2018 .
- ↑ Warner, W. (22 de diciembre de 2004). "Grandes momentos en la historia de los microprocesadores" . IBM . Archivado del original el 19 de enero de 2018. Recuperado el 18 de enero de 2018 .
- 1 2 "cpu-collection.de – DEC Alpha AXP" . Archivado del original el 20/09/2018 . Consultado el 20/09/2018 .
Los primeros procesadores de la familia Alpha fueron designados como la serie DECchip 21064 (el "21" indica siglo XXI).
- ↑ Bill Hamburgen; Jeff Mogul; Brian Reid ; Alan Eustace ; Richard Swan; Mary Jo Doherty; Joel Bartlett (1989). "Nota técnica WRL TN-13: Caracterización de sistemas de iluminación orgánica" . Digital Equipment Corporation. Archivado del original ( PDF ) el 12 de mayo de 2008. Consultado el 4 de octubre de 2007 .
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Bradley, Gale; DeTar, Jim (19 de mayo de 1997). "DEC y Cyrix demandan a Intel" . Noticias electrónicas . Vol. 43, n.º 2168. págs. 1, 60. ISSN 1061-6624 .
- ↑ Baum, Allan (18 de julio de 2018). «Historia oral de Allen Baum» (PDF) (Entrevista). Entrevistado por David Brock. pág. 60. Archivado (PDF) del original el 7 de febrero de 2021.
- ↑ Charles P. Thacker; David G. Conroy; Lawrence C. Stewart (1992). "La unidad de demostración Alpha: un multiprocesador de alto rendimiento para el desarrollo de software y chips" (PDF) . Digital Technical Journal . 4 (4): 51. Recuperado el 6 de abril de 2024 .
- ↑ John H. Edmondson; Paul I. Rubinfeld; Peter J. Bannon; Bradley J. Benschneider; Debra Bernstein; Ruben W. Castelino; Elizabeth M. Cooper; Daniel E. Dever; Dale R. Donchin; Timothy C. Fischer; Anil K. Jain; Shekhar Mehta; Jeanne E. Meyer; Ronald P. Preston; Vidya Rajagopalan; Chandrasekhara Somanathan; Scott A. Taylor; Gilbert M. Wolrich (1995). "Organización interna del Alpha 21164, un microprocesador RISC CMOS de cuatro emisiones de 64 bits y 300 MHz". Digital Technical Journal . 7 (1): 119– 135. CiteSeerX 10.1.1.38.9551 .
caché de escritura diferida de segundo nivel, grande, en el chip
- ↑ Reseñas, CTI (2016). Organización estructurada de computadoras . ISBN 978-1478426738.
21364 ... primer procesador de alto rendimiento con controlador de memoria integrado.
- ↑ Roger Espasa; Federico Ardanaz; Julio Gago; Roger Gramunt; Isaac Hernandez; Toni Juan; Joel Emer ; Stephen Felix; Geoff Lowney; Matthew Mattina; Andre Seznec (2002). "Tarantula: Una extensión vectorial de la arquitectura Alpha" . En Danielle C. Martin (ed.). Actas del 29.º Simposio Internacional Anual sobre Arquitectura de Computadoras (ISCA '02) . 29.º Simposio Internacional Anual sobre Arquitectura de Computadoras (ISCA '02) . Joe Daigle/Studio Productions. Los Alamitos, California: IEEE Computer Society. págs. 281–292 . doi : 10.1109/ISCA.2002.1003586 . ISBN 0-7695-1605-XArchivado del original el 4 de octubre de 2007. Consultado el 4 de octubre de 2007 .
- ↑ "La aspiradora VAX" .
... legalmente, si DEC hubiera usado VAX en los EE. UU. antes de eso... "una persona razonable" no tiene dificultad en distinguir entre los dos usos.
- ↑ Chad Page (30 de abril de 1996). "El significado de AXP (era Re: Ambigüedad de ALPHA)" . Lista de correo del kernel de Linux (Lista de correo) . Recuperado el 29 de agosto de 2024 .
- ↑ "Alpha AXP, parte 8: Acceso a memoria, almacenamiento de bytes y palabras y datos no alineados" . 16 de agosto de 2017. Consultado el 18 de julio de 2022.
Lidiar con la memoria no alineada en la Alpha AXP es muy molesto
. - ↑ "Hoja de datos del microprocesador Alpha 21264" (PDF) . Archivado (PDF) del original el 30/08/2017 . Consultado el 20/09/2018 .
Las instrucciones que componen la extensión BWX son...
- ↑ "Instrucciones MIPS" .
DEC Alpha..., sin código de condición entero.
- ↑ "Alpha Bits – Migrando al futuro". DEC Professional . Agosto de 1992. pág. 62.
Los tipos de datos flotantes H no están disponibles en Alpha.
- ↑ "Migración de una aplicación de OpenVMS VAX a OpenVMS Alpha" . 2.5.2 Tipos de datos.
- ^ Gronowski, PE; Bowhill, WJ; Donchin, DR; Blake-Campos, RP; Carlson, fiscal del distrito; Equi, ER; Loughlin, BJ; Mehta, S.; Mueller, RO; Olesin, A.; Noorlag, DJW; Preston, RP (1996). "Un microprocesador RISC cuádruple de 433 MHz y 64 b". Revista IEEE de circuitos de estado sólido . 31 (11): 1687–1696 . Bibcode : 1996IJSSC..31.1687G . doi : 10.1109/JSSC.1996.542313 . S2CID 39280205 .
- ↑ Gwennap, Linley (18 de noviembre de 1996). "Digital, MIPS agrega extensiones multimedia". Microprocessor Report .
- ↑ Ballou, Melinda-Carol (1992-07-20). "VMS abierto para la iniciativa Alpha" . Computerworld . Vol. XXVI, n.º 29. pág. 16. Recuperado el 30-06-2025 .
- ↑ Fisher, Susan E. (1992-11-09). "Es hora del espectáculo para RISC; DEC presentará sus sistemas Alpha, mientras Sun y HP esperan entre bastidores" . PC Week . Vol. 9, n.º 45. Recuperado el 29 de septiembre de 2025 – vía Gale.
- ↑ Wilson, Jayne (16 de noviembre de 1992). "DEC presenta sus esperados sistemas Alpha de 64 bits" . InfoWorld . Vol. 14, n.º 46, pág. 33. Consultado el 30 de junio de 2025 .
- ↑ Luiz André Barroso; Kourosh Gharachorloo; Robert McNamara; Andreas Nowatzyk; Shaz Qadeer; Barton Sano; Scott Smith; Robert Stets; Ben Verghese (2000). Piranha: una arquitectura escalable basada en multiprocesamiento de un solo chip . 27.º Simposio Internacional Anual sobre Arquitectura de Computadoras. doi : 10.1145/339647.339696 .
- ↑ Hung-Sheng Tsao (29-10-2011). "SW1600 y Alpha 21164" . Blog de LaoTsao . Consultado el 29-10-2011 .
- ↑ Dongarra, Jack (2016-06-20). "Informe sobre el sistema de luces Sunway Taihu" (PDF) . www.netlib.org . Recuperado el 2016-06-20 .
- 1 2 3 4 5 Paul V. Bolotoff (21 de abril de 2007). "Alpha: La historia en hechos y comentarios" . Archivado del original el 3 de diciembre de 2013. Recuperado el 22 de noviembre de 2008 .
- ↑ David Mosberger. "Descripción general de Alpha Family" . Archivado del original el 20 de enero de 2009. Consultado el 9 de diciembre de 2009 .
- ↑ Reinhardt Krause. "DEC impulsa la placa Alpha". Electronic News, 4 de abril de 1994.
- ↑ Laboratorios Nacionales de Los Alamos (2002). "El sistema ASCI Q: capacidad de 30 TeraOPS en el Laboratorio Nacional de Los Alamos" (PDF) . Archivado del original (PDF) el 12 de enero de 2011. Consultado el 6 de junio de 2010 .
Enlaces externos
- Manual de Arquitectura Alpha, Versión 4
- Manual de Arquitectura Alpha, Versión 3
- Revista Técnica Digital, Volumen 4, Número 4, Edición Especial 1992 Arquitectura y Sistemas Alpha AXP Archivado el 23/01/2023 en Wayback Machine Esta edición contiene varios artículos de los arquitectos de Alpha
- Biblioteca de documentación técnica archivada. Este enlace incluye los manuales de referencia de hardware y las hojas de datos de los microprocesadores Alpha, los chipsets y las placas base OEM. Incluye el Manual de Arquitectura Alpha y varios manuales de programación.
- Una conversación con Dan Dobberpuhl (1 de octubre de 2003)
- Apuntes de clase del Dr. Bruce Hutton sobre Arquitectura de Computadoras
- Arquitectura alfa
- Corporación de Equipos Digitales
- computadoras de 64 bits
- Introducciones relacionadas con la informática en 1992