stringtranslate.com

DEC Alfa

Microprocesadores Alpha

Alpha (nombre original Alpha AXP ) es una arquitectura de conjunto de instrucciones (ISA ) de computadora con conjunto de instrucciones reducido ( RISC ) de 64 bits desarrollada por Digital Equipment Corporation (DEC). Alpha fue diseñada para reemplazar a las computadoras con conjunto de instrucciones complejo (CISC) VAX de 32 bits 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 una variedad de estaciones de trabajo y servidores de DEC, que finalmente formaron la base de casi toda su línea de productos de escala media y alta. Varios proveedores externos también produjeron sistemas Alpha, incluidas placas base con formato PC .

Los sistemas operativos que soportaban Alpha incluían 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 pre-lanzamiento de Windows 2000 RC2 ), [2] Linux ( Debian , SUSE , [3] Gentoo y Red Hat ), BSD UNIX ( NetBSD , OpenBSD y FreeBSD hasta 6.x), Plan 9 de Bell Labs y el núcleo L4Ka::Pistachio . Se llevó a cabo un puerto de Ultrix a Alpha durante el desarrollo inicial de la arquitectura Alpha, pero nunca fue lanzado como producto. [4]

La arquitectura Alpha se vendió, junto con la mayor parte de DEC, a Compaq en 1998. [5] Compaq, que ya era cliente de Intel x86, anunció que dejaría de fabricar Alpha en favor de la futura arquitectura Hewlett-Packard /Intel Itanium , y vendió toda la propiedad intelectual de Alpha a Intel en 2001, [6] matando así el producto. Hewlett-Packard compró Compaq en 2002, continuó con 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. [7]

Historia

PRISMA

Alpha surgió de un proyecto RISC anterior llamado Parallel Reduced Instruction Set Machine ( PRISM ), que a su vez era el producto de varios proyectos anteriores. PRISM estaba destinado a ser un diseño flexible, compatible con aplicaciones tipo Unix y el software VAX/VMS existente de Digital, después de una pequeña conversión. Un nuevo sistema operativo llamado MICA soportaría las interfaces ULTRIX y VAX/VMS en un núcleo común , lo que permitiría que el software para ambas plataformas se pudiera portar fácilmente a la arquitectura PRISM. [8]

El diseño de PRISM, que comenzó a desarrollarse en 1985, fue modificado continuamente durante su desarrollo en respuesta a los cambios en el mercado informático, lo que provocó grandes retrasos en su introducción. No fue hasta el verano de 1987 cuando 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ó el Sun-4 , su primera estación de trabajo que utilizaba su nuevo procesador SPARC . El Sun-4 funcionaba aproximadamente tres o cuatro veces más rápido que sus últimos diseños Sun-3 que utilizaban el Motorola 68020 y cualquier oferta Unix de DEC. Los planes cambiaron de nuevo; PRISM se realineó una vez más como una parte de 32 bits y se dirigió directamente al mercado Unix. Esto retrasó aún más el diseño. [9]

Tras observar que la fecha de entrega de PRISM se iba retrasando cada vez más 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. Tras la debida diligencia , seleccionaron el MIPS R2000 y construyeron una estación de trabajo funcional que ejecutaba Ultrix en un período de 90 días. [10] Esto desencadenó un acalorado debate dentro de la empresa, que llegó a un punto crítico en una reunión de gestión de 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, desapareció una de las dos funciones originales de PRISM. La decisión de hacer un VMS PRISM ya había terminado en ese momento, por lo que no quedaba ninguna función restante. PRISM se canceló en la reunión. [11]

VACUNA RISCy

Al terminar la reunión, Ken Olsen se acercó a Bob Supnik y le dijo que los chips RISC parecían ser una amenaza futura para su línea VAX. Le pidió a Supnik que considerara qué se podría hacer con VAX para mantenerlo competitivo con 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 VAX (ISA) 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 CPU . Finalmente, todavía existía la posibilidad de un procesador CISC mucho más rápido que ejecutara la ISA VAX completa. Desafortunadamente, todos estos enfoques introdujeron una 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 y un chip RISC como coprocesador utilizado para necesidades de alto rendimiento. Estos estudios sugirieron que el sistema se vería inevitablemente obstaculizado 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 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. Parecía que no había ninguna razón convincente por la que VMS no pudiera ser portado a un chip RISC siempre que se conservaran estos pequeños fragmentos del modelo. El trabajo posterior sobre este concepto sugirió que este era 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 de CMOS CVAX . Cuando la gerencia aceptó los hallazgos, decidieron darle al proyecto un nombre más neutral, eliminando "VAX", y finalmente decidiéndose por Alpha. [13] El nombre se inspiró en el uso de "Omega" como nombre en código de un modelo VAX 4000 basado en NVAX ; "Alpha" tenía la intención de significar el comienzo de una nueva línea (con referencia a Alpha y Omega ). [14] Poco después, se comenzó a trabajar en un puerto de VMS a la nueva arquitectura . [15]

Alfa

El nuevo diseño utiliza 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 conversión alguna. Los arquitectos principales del conjunto de instrucciones Alpha fueron Richard L. Sites y Richard T. Witek. [16] El código Epicode de PRISM se desarrolló en el código PALcode de Alpha , proporcionando una interfaz abstracta para las características específicas de la implementación de la plataforma y el procesador.

La principal contribución de Alpha a la industria de los microprocesadores, y la razón principal de su rendimiento, no es tanto la arquitectura sino más bien su implementación. [17] En ese momento (como lo es ahora), la industria de los microchips estaba dominada por herramientas de diseño y disposición automatizadas. Los diseñadores de chips de Digital continuaron con el sofisticado diseño de circuitos manuales para lidiar con la compleja arquitectura VAX. Los chips Alpha muestran 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 son posibles 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 los años 1990 se sustituyó "DECchip" por "Alpha". Los dos primeros dígitos, "21", significan el siglo XXI y los dos últimos, "64", 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 del medio corresponde a la generación de la arquitectura Alpha. Internamente, los procesadores Alpha también se identificaban con números EV , EV significa oficialmente "Extended VAX" pero tiene un significado humorístico alternativo de "Electric Vlasic ", en homenaje al experimento Electric Pickle en Western Research Lab. [19]

En mayo de 1997, DEC demandó a Intel por presunta infracción de sus patentes Alpha al diseñar los chips Pentium , Pentium Pro y Pentium II originales . [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 informática 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ó en manos de DEC, mientras que los edificios de oficinas asociados pasaron a manos de Intel como parte de la fábrica Hudson. [21]

Modelos mejorados

Las primeras generaciones de chips Alpha fueron unas de las más innovadoras de su tiempo.

Un informe persistente atribuido a personas de la DEC sugiere que la elección de la etiqueta AXP para el procesador fue hecha por el departamento legal de la DEC, que todavía estaba dolido por el fiasco de la marca VAX . [26] Después de una larga búsqueda, se descubrió que la etiqueta "AXP" estaba completamente libre de problemas. Dentro de la industria informática, comenzó una broma de que el acrónimo AXP significaba "Casi exactamente PRISM". [27]

Principios de diseño

La arquitectura Alpha se diseñó para ofrecer un alto rendimiento. Digital pretendía que la arquitectura admitiera un aumento de mil veces en el rendimiento a lo largo de veinticinco años. Para garantizarlo, se eliminaron todas las características arquitectónicas que impedían la emisión de múltiples instrucciones, la velocidad de reloj o el multiprocesamiento. Como resultado, Alpha no tiene:

Códigos de condición

El Alpha no tiene códigos de condición para instrucciones de números enteros [30] para eliminar un posible cuello de botella en el registro de estado de condición. Las instrucciones que resultan en un desbordamiento, como sumar 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 en el resultado con cualquiera de los operandos para ver si el resultado es menor que cualquiera de los operandos. Si la prueba fue 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 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 que eran opcionales, implementados solo si la implementación los requería. Por último, se definen registros para PALcode .

Los registros enteros se denotan por R0 a R31 y los registros de punto flotante se denotan por F0 a F31. Los registros R31 y F31 están cableados a cero y las escrituras en esos registros por instrucciones se ignoran. Digital consideró el uso de un archivo de registro combinado, pero se determinó que un archivo de registro dividido era mejor, ya que permite que las implementaciones de dos chips tengan un archivo de registro ubicado en cada chip y que las implementaciones solo de números enteros omitan el archivo de registro de punto flotante que contiene los registros de punto flotante. También se determinó que un archivo de registro dividido era más adecuado para la emisión de instrucciones múltiples debido al número reducido de puertos de lectura y escritura. También se consideró el número de registros por archivo de registro, siendo 32 y 64 los contendientes. Digital concluyó que 32 registros eran más adecuados ya que requerían menos espacio en la matriz , 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 con palabras largas, es decir, los dos bits más bajos 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 con bloqueo de carga y de almacenamiento condicional utilizan un indicador de bloqueo y un registro de dirección física bloqueado para la compatibilidad con multiprocesadores. El registro de control de punto flotante (FPCR) es un registro de 64 bits definido por la arquitectura destinada a ser utilizada por 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 octava como un dato de 128 bits .

La arquitectura Alpha definió originalmente seis tipos de datos:

Para mantener un nivel de compatibilidad con VAX , la arquitectura de 32 bits que precedió a Alpha, se incluyen otros dos tipos de datos de punto flotante:

VAX H-floating point (precisión cuádruple, 128 bits) no era compatible, [31] pero otra opción de punto flotante de 128 bits, X-floating point, está disponible en Alpha, pero no VAX. [32]
H y X han sido descritos como similares, pero no idénticos. La emulación de software para H-floating está disponible en DEC, al igual que un convertidor de nivel de código fuente llamado DECmigrate.

Memoria

Alpha tiene un espacio de direcciones virtuales lineal de 64 bits sin segmentación de memoria. Las implementaciones pueden implementar un espacio de direcciones virtuales más pequeño con un tamaño mínimo de 43 bits. Aunque los bits no utilizados no se implementaron en hardware como las TLB , la arquitectura requirió que las implementaciones verificaran si son cero para garantizar la compatibilidad del software con implementaciones con un espacio de direcciones virtuales más grande (o completo).

Formatos de instrucciones

La ISA Alpha tiene una longitud de instrucción fija de 32 bits y 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. A continuación hay 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. Los campos de registro tienen todos 5 bits de longitud, necesarios para direccionar 32 ubicaciones únicas, los 32 registros de enteros.

El formato literal entero se utiliza en instrucciones de números enteros que utilizan un literal como uno de los operandos. El formato es el mismo que el formato de operación de números enteros, excepto por el reemplazo del campo Rb de 5 bits y los 3 bits de espacio no utilizado con un campo literal de 8 bits que se extiende a cero a un operando de 64 bits.

El formato de operación de punto flotante se utiliza en instrucciones de punto flotante. Es similar al formato de operación de enteros, pero tiene un campo de función de 11 bits que es posible gracias al uso de los bits literales y no utilizados que están reservados en el formato de operación de enteros.

El formato de memoria se utiliza principalmente en instrucciones de carga y almacenamiento. Tiene 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 bifurcación 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 va a probar mediante una instrucción de bifurcación condicional y, si se cumple la condición, el contador de programa se actualiza sumando el contenido del campo de desplazamiento con el contador de programa. El campo de desplazamiento contiene un entero con signo y, si el valor del entero es positivo, si se realiza la bifurcación, el contador de programa se incrementa. Si el valor del entero es negativo, el contador de programa se decrementa si se realiza la bifurcación. Por lo tanto, el rango de una bifurcación es de ±1 Mi de instrucciones o ±4 MiB. La arquitectura Alpha se diseñó con un rango amplio como parte del objetivo de futuro de la arquitectura.

La instrucción utiliza el formato CALL_PAL CALL_PALpara llamar a subrutinas PALcode . El 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 entero que especifica una subrutina PAL.

Conjunto de instrucciones

Instrucciones de control

Las instrucciones de control consisten en saltos y ramificaciones condicionales e incondicionales. Las instrucciones de ramificación condicionales e incondicionales utilizan el formato de instrucción de ramificación, mientras que las instrucciones de salto utilizan el formato de instrucción de memoria.

Las ramificaciones 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 ramifican 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 palabras largas y la extensión de signo del desplazamiento de 21 bits y la suma a la dirección de la instrucción que sigue a la ramificación condicional.

Las bifurcaciones incondicionales actualizan el contador del programa con una nueva dirección calculada de la misma manera que las bifurcaciones condicionales. También guardan la dirección de la instrucción que sigue a la bifurcación incondicional en un registro. Existen dos instrucciones de este tipo y se diferencian únicamente en las sugerencias proporcionadas para el hardware de predicción de bifurcaciones.

Hay cuatro instrucciones de salto. Todas ellas realizan la misma operación: guardan la dirección de la instrucción que sigue al salto y proporcionan al contador del programa una nueva dirección desde un registro. Se diferencian en las sugerencias que proporcionan al hardware de predicción de saltos. El campo de desplazamiento no utilizado se utiliza para este propósito.

Aritmética de números enteros

Las instrucciones aritméticas de números enteros realizan sumas, multiplicaciones y restas en palabras largas y cuádruples, y comparaciones en 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, existen 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 para obtener la mitad más significativa, se proporciona la instrucción Unsigned Multiply Quadword High (UMULH). UMULH se utiliza para implementar algoritmos aritméticos y de 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. De manera predeterminada, las instrucciones de suma, multiplicación y resta, con excepción de UMULH y las versiones escaladas de suma y resta, no realizan trampas en caso de desbordamiento. Cuando se requiere dicha funcionalidad, se proporcionan versiones de estas instrucciones que realizan la detección de desbordamiento y realizan trampas 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 la condición especificada es verdadera o '0' si no lo es. Las condiciones son igualdad, desigualdad, menor o igual a y menor que. Con excepción de las instrucciones que especifican las dos condiciones anteriores, existen versiones que realizan comparaciones con y sin signo.

Las instrucciones aritméticas de números enteros utilizan los formatos de instrucciones de operación de números enteros.

Lógico y cambiante

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 literal. Las instrucciones de movimiento condicional prueban un registro como una palabra cuádruple con signo a cero y se mueven si la condición especificada es verdadera. Las condiciones especificadas son igualdad, desigualdad, menor o igual a, menor que, mayor o igual a 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 se da por un registro o literal. Las instrucciones lógicas y de desplazamiento utilizan los formatos de instrucción de operación de enteros.

Extensiones

Extensiones de palabras byte (BWX)

Los Alpha posteriores incluyen extensiones de byte-word, 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 implementarse, lo que mejora la densidad del código y el rendimiento de ciertas aplicaciones. BWX también facilita la emulación del código de máquina x86 y la escritura de controladores de dispositivos . [33]

Instrucciones de video en movimiento (MVI)

Motion Video Instructions (MVI) fue una extensión del conjunto de instrucciones de Alpha ISA que agregó instrucciones para operaciones de instrucción única, múltiples datos (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 otros conjuntos de instrucciones SIMD del mismo período, como MDMX de MIPS o Visual Instruction Set de SPARC , pero al igual que 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 había determinado que el Alpha 21164 ya era capaz de realizar la decodificación de DVD a través de software, por lo que no requería provisiones de hardware para el propósito, pero 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 ampliado la lógica de decodificación de instrucciones, reduciendo la frecuencia de reloj de una implementación.

MVI consta de 13 instrucciones:

Extensiones de punto flotante (FIX)

Las extensiones de punto flotante (FIX) son una extensión de la arquitectura Alpha. Introduce nueve instrucciones para la raíz cuadrada de punto flotante y para transferir datos hacia y desde los registros de números enteros y registros de punto flotante. El Alpha 21264 (EV6) es el primer microprocesador que implementa 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 aritméticas de números enteros. Se implementaron por primera vez en el Alpha 21264A (EV67).

Implementaciones

En el momento de su anuncio, Alpha fue anunciada como una arquitectura para los próximos 25 años. Si bien esto no sucedió, Alpha ha tenido una vida razonablemente larga. La primera versión, Alpha 21064 (también llamada EV4 ) se presentó en noviembre de 1992 y funcionaba a hasta 192 MHz; una ligera reducción de la matriz (el EV4S , reducido de 0,75 μm a 0,675 μm) funcionó a 200 MHz unos meses más tarde. El procesador de 64 bits era un diseño superescalar y supercanalizado , como otros diseños RISC, pero sin embargo los superó a todos y DEC lo promocionó como el procesador más rápido del mundo. La cuidadosa 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ó ejecutar la CPU a velocidades más altas, aunque la microarquitectura era bastante similar a otros chips RISC. En comparación, el Intel Pentium, menos costoso , funcionaba a 66 MHz cuando se lanzó la primavera siguiente.

El Alpha 21164 o EV5 estuvo disponible en 1995 en frecuencias de procesador de hasta 333 MHz. En julio de 1996 la línea fue aumentada a 500 MHz, en marzo de 1998 a 666 MHz. También en 1998 el Alpha 21264 ( EV6 ) fue lanzado a 450 MHz, alcanzando finalmente (en 2001 con el 21264C / EV68CB ) 1.25 GHz. En 2003, el Alpha 21364 o EV7 Marvel fue lanzado, esencialmente un núcleo EV68 con cuatro enlaces de comunicación entre procesadores de 1.6 GB/s [a] para un rendimiento mejorado del sistema multiprocesador , funcionando a 1 o 1.15 GHz.

En 1996, la producción de chips Alpha fue cedida bajo licencia a Samsung Electronics Company . Tras la compra de Digital por parte de Compaq, la mayoría de los productos Alpha fueron entregados 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 servicios de la línea de productos basados ​​en Alpha de API NetWorks.

El 25 de junio de 2001, Compaq anunció que Alpha sería eliminado gradualmente en 2004 a favor del Itanium de Intel , canceló el chip EV8 planeado y vendió toda la propiedad intelectual de Alpha a Intel . [6] Hewlett-Packard se fusionó con Compaq en 2002; HP anunció que el desarrollo de la serie Alpha continuaría durante algunos años más, incluido 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 se canceló.

Alpha también se implementa en Piranha , un prototipo de investigación desarrollado por los grupos de Investigación corporativa y Desarrollo de hardware continuo 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 informática en junio de 2000. [35]

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. [36] [37]

Historial del modelo

Extensiones ISA

Actuación

Para ilustrar el rendimiento comparativo de los sistemas basados ​​en Alpha, a continuación se enumeran algunos números de rendimiento de Standard Performance Evaluation Corporation (SPEC) (SPECint95, SPECfp95). Tenga en cuenta que los resultados de SPEC afirman informar el rendimiento medido de un sistema informático completo (CPU, bus, memoria, optimizador del compilador), no solo de la CPU. Tenga en cuenta también que el punto de referencia y la escala cambiaron de 1992 a 1995. Sin embargo, las cifras dan una impresión aproximada del rendimiento de la arquitectura Alpha (64 bits), en comparación con las ofertas contemporáneas basadas en HP (64 bits) e Intel (32 bits). Quizás la tendencia más obvia es que, si bien Intel siempre pudo acercarse razonablemente a Alpha en rendimiento de números enteros, en rendimiento de punto flotante la diferencia fue considerable. Por otro lado, HP ( PA-RISC ) también está razonablemente cerca de Alpha, pero estas CPU funcionan a velocidades de reloj (MHz) significativamente más bajas. Las tablas carecen de dos valores importantes: el consumo de energía y el precio de una 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 el 7000/10000 comparten una arquitectura con los modelos VAX correspondientes .

DEC también produjo una estación de trabajo Alpha con configuración de computadora personal (PC) y bus EISA ( Extended Industry Standard Architecture ), la DECpc AXP 150 (nombre en código Jensen , también llamada DEC 2000 AXP). Este es el primer sistema Alpha compatible con Windows NT . DEC produjo posteriormente versiones Alpha de sus líneas Celebris XL y Digital Personal Workstation PC, con procesadores 21164.

Digital también produjo computadoras de placa única basadas en el VMEbus para uso industrial y embebido. La primera generación incluye los AXPvme 64 y AXPvme 64LC basados ​​en 21068, y el AXPvme 160 basado en 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 la computadora portátil ALPHAbook 1 de Tadpole Technology.

En 1994, DEC lanzó una nueva gama de sistemas AlphaStation y AlphaServer . Estos utilizan procesadores 21064 o 21164 e introdujeron el bus PCI , los frame buffers compatibles con VGA y los teclados y ratones de estilo PS/2 . La serie AlphaServer 8000 reemplaza a la DEC 7000/10000 AXP y también utiliza buses XMI y FutureBus+.

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 familias DS (servidor departamental), ES (servidor empresarial) o GS (servidor global).

El chip 21364 final se utiliza en los modelos AlphaServer ES47, ES80 y GS1280 y en AlphaStation ES47.

DEC produjo varias placas base OEM , como la AXPpci 33 "NoName" basada en 21066 y 21068, que fue parte de una importante incursión de la empresa en el mercado OEM, [39] la AlphaPC 164 y AlphaPC 164LX basada en 21164, la AlphaPC 164SX y AlphaPC 164RX basada 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 a desarrollar hardware y software para la plataforma, DEC produjo placas de evaluación, como EB64+ y EB164 para los microprocesadores Alpha 21064A y 21164 respectivamente.

Los procesadores 21164 y 21264 fueron utilizados por NetApp en varios sistemas de almacenamiento conectados a red , mientras que los procesadores 21064 y 21164 fueron utilizados por Cray 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 Álamos. La máquina se construyó como un clúster HP AlphaServer SC45/GS. Tenía 4096 CPU Alpha (21264 EV-68, 1,25 GHz) y alcanzaba un Rmax de 7,727 TFLOPS . [40]

Notas

  1. ^ En el contexto de la transferencia de datos, 1 GB se utiliza para significar mil millones de bytes.
  2. ^ En el contexto de la memoria caché, 1 KB = 1024 bytes ; 1 MB = 1024 KB

Referencias

  1. ^ abcdef Paul V. Bolotoff (21 de abril de 2007). «Alpha: La historia en hechos y comentarios». Archivado desde el original el 3 de diciembre de 2013. Consultado el 22 de noviembre de 2008 .
  2. ^ Aaron Sakovich (2001). "¿Windows 2000?". The AlphaNT Source. Archivado desde el original el 8 de julio de 2008. Consultado el 1 de enero de 2007 .
  3. ^ "SUSE Linux 7.0 Alpha Edition". SUSE. 2000. Archivado desde el original el 8 de enero de 2014. Consultado el 8 de enero de 2014 .
  4. ^ George A. Darcy III; Ronald F. Brender; Stephen J. Morris; Michael V. Iles (1992). "Uso de simulación para desarrollar y portar software" (PDF) . Digital Technical Journal . 4 (4): 181–192.
  5. ^ "El fantasma de DEC Alpha es la razón por la que Windows es un desastre en la compresión de archivos". TheRegister.co.uk . 2 de noviembre de 2016. Archivado desde el original el 20 de septiembre de 2018 . Consultado el 20 de septiembre de 2018 .
  6. ^ ab Popovich, Ken (28 de junio de 2001). "Alpha resultó costosa para Compaq". ZDNet . Archivado desde el original el 3 de marzo de 2016. Consultado el 2 de marzo de 2016 .
  7. ^ "Transformación de su entorno AlphaServer". HP. Archivado desde el original el 8 de febrero de 2007. Consultado el 11 de enero de 2007 .
  8. ^ Catherine Richardson; Terry Morris; Rockie Morgan; Reid Brown; Donna Meikle (marzo de 1987). "MICA Software Business Plan" (PDF) . bitsavers.org . Archivado (PDF) del original el 2021-01-07 . Consultado el 2021-01-04 .
  9. ^ ab Supnik, Bob (24 de febrero de 2008). "MicroPrism". Proyecto de simulación de la historia de la computación . Archivado desde el original el 3 de abril de 2021. Consultado el 26 de abril de 2021 .
  10. ^ Bolotoff, Paul V (22 de abril de 2007). «Alpha: La historia en hechos y comentarios». Archivado desde el original el 29 de septiembre de 2019. Consultado el 9 de septiembre de 2019 .
  11. ^ Mark Smotherman. "Boceto de DEC PRISM". Archivado desde el original el 4 de abril de 2020. Consultado el 20 de septiembre de 2018. PRISM (máquina de conjunto de instrucciones reducidas en paralelo) ... primer borrador de la arquitectura PRISM en agosto de 1985; DEC cancela el proyecto en 1988 a favor de una basada en MIPS ...
  12. ^ ab Comerford, Richard (julio de 1992). "Cómo DEC desarrolló Alpha". IEEE Spectrum . 29 (7): 28. doi :10.1109/6.144508. Archivado desde el original el 20 de junio de 2018 . Consultado el 23 de octubre de 2021 .
  13. ^ Supnik, Bob (1992). "Prólogo". Revista técnica digital . 4 (4). Archivado desde el original el 2021-05-03 . Consultado el 2021-05-03 .
  14. ^ Supnik, Robert (2017-05-02). "Historia oral de Robert Supnik" (PDF) . computerhistory.org (Entrevista). Entrevista realizada por Gardner Hendrie. Computer History Museum . Consultado el 6 de abril de 2024 .
  15. ^ "Gestión de los saltos tecnológicos: un estudio del equipo de diseño Alpha de DEC" (PDF) . Abril de 1993. Archivado (PDF) desde el original el 7 de febrero de 2021. Consultado el 26 de abril de 2021 .
  16. ^ Richard L. Sites; Richard T. Witek (16 de mayo de 2014). Manual de referencia de la arquitectura Alpha AXP, segunda edición. Editorial digital. ISBN 978-1-4831-8403-6Archivado desde el original el 20 de septiembre de 2018. Consultado el 20 de septiembre de 2018 .
  17. ^ Warner, W. (22 de diciembre de 2004). «Grandes momentos en la historia de los microprocesadores». IBM . Archivado desde el original el 19 de enero de 2018. Consultado el 18 de enero de 2018 .
  18. ^ ab "cpu-collection.de – DEC Alpha AXP". Archivado desde el original el 20 de septiembre de 2018. Consultado el 20 de septiembre de 2018. Los primeros procesadores de la familia Alpha se denominaron DECchip 21064 series (el "21" significa siglo XXI) .
  19. ^ 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 desde el original ( PDF ) el 2008-05-12 . Consultado el 2007-10-04 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  20. ^ Bradley, Gale; DeTar, Jim (19 de mayo de 1997). "DEC y Cyrix demandan a Intel". Electronic News . Vol. 43, núm. 2168. págs. 1, 60. ISSN  1061-6624.
  21. ^ Baum, Allan (18 de julio de 2018). "Historia oral de Allen Baum" (PDF) (Entrevista). Entrevista realizada por David Brock. p. 60. Archivado (PDF) del original el 7 de febrero de 2021.
  22. ^ 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 . Consultado el 6 de abril de 2024 .
  23. ^ 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 núcleos 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, en chip y de gran tamaño 
  24. ^ Reseñas, CTI (2016). Organización de computadoras estructuradas. ISBN 978-1478426738. 21364 ... primer procesador de alto rendimiento que tiene un controlador de memoria en chip.
  25. ^ 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: 29.° Simposio internacional anual sobre arquitectura informática (ISCA '02) . 29.° Simposio internacional anual sobre arquitectura informática (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 desde el original el 4 de octubre de 2007. Consultado el 4 de octubre de 2007 .
  26. ^ "El vacío 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.
  27. ^ Chad Page (30 de abril de 1996). "El significado de AXP (era Re: ambigüedad ALPHA)". Lista de correo del kernel de Linux (Lista de correo) . Consultado el 29 de agosto de 2024 .
  28. ^ "El Alpha AXP, parte 8: acceso a la 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 el Alpha AXP es muy molesto
  29. ^ "Hoja de datos del microprocesador Alpha 21264" (PDF) . Archivado (PDF) del original el 2017-08-30 . Consultado el 2018-09-20 . Las instrucciones que componen la extensión BWX son...
  30. ^ "Instrucciones MIPS". DEC Alpha ... , sin código de condición entero.[ enlace muerto permanente ]
  31. ^ "Alpha Bits – Migración hacia el futuro". DEC Professional . Agosto de 1992. pág. 62. Los tipos de datos flotantes H no están disponibles en Alpha
  32. ^ "Migración de una aplicación de OpenVMS VAX a OpenVMS Alpha". 2.5.2 Tipos de datos.
  33. ^ 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. Código bibliográfico : 1996IJSSC..31.1687G. doi :10.1109/JSSC.1996.542313. S2CID  39280205.
  34. ^ Gwennap, Linley (18 de noviembre de 1996). "Digital, MIPS agrega extensiones multimedia". Informe sobre microprocesadores .
  35. ^ 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 .
  36. ^ Hung-Sheng Tsao (29 de octubre de 2011). «SW1600 y Alpha 21164». Blog de LaoTsao . Consultado el 29 de octubre de 2011 .
  37. ^ Dongarra, Jack (20 de junio de 2016). "Informe sobre el sistema Sunway TaihuLight" (PDF) . www.netlib.org . Consultado el 20 de junio de 2016 .
  38. ^ David Mosberger. «Resumen de la familia Alpha». Archivado desde el original el 20 de enero de 2009. Consultado el 9 de diciembre de 2009 .
  39. ^ Reinhardt Krause. "DEC lanza la placa Alpha". Electronic News, 4 de abril de 1994.
  40. ^ Los Alamos National Laboratories (2002). "El sistema ASCI Q: capacidad de 30 TeraOPS en el Laboratorio Nacional de Los Alamos" (PDF) . Archivado desde el original (PDF) el 2011-01-12 . Consultado el 2010-06-06 .

Enlaces externos