
El Alpha 21264 , también conocido por su nombre en clave EV6 , es un microprocesador RISC desarrollado por Digital Equipment Corporation y lanzado el 19 de octubre de 1998. El 21264 implementó la arquitectura del conjunto de instrucciones (ISA) Alpha .
Descripción
El Alpha 21264 es un microprocesador superescalar de cuatro instrucciones con ejecución fuera de orden y ejecución especulativa . Tiene una velocidad máxima de ejecución de seis instrucciones por ciclo y puede mantener cuatro instrucciones por ciclo. Cuenta con una arquitectura de procesamiento de instrucciones de siete etapas .
Ejecución fuera de orden
En cualquier etapa dada, el microprocesador podía tener hasta 80 instrucciones en diversas fases de ejecución, superando a cualquier otro microprocesador contemporáneo.
Las instrucciones decodificadas se almacenan en colas de instrucciones y se emiten cuando sus operandos están disponibles. La cola de enteros contenía 20 entradas y la de punto flotante, 15. Cada cola podía emitir tantas instrucciones como tuberías existieran.
Caja electrónica
La Ebox ejecuta instrucciones de enteros, carga y almacenamiento. Cuenta con dos unidades de enteros, dos unidades de carga y almacenamiento, y dos bancos de registros de enteros . Cada banco de registros de enteros contiene 80 entradas, de las cuales 32 son registros arquitectónicos, 40 son registros de cambio de nombre y 8 son registros de sombra PAL. No había ninguna entrada para el registro R31 porque, en la arquitectura Alpha, R31 está cableado a cero y es de solo lectura.
Cada banco de registros servía a una unidad de enteros y a una unidad de carga/almacenamiento, y el banco de registros y sus dos unidades se denominaban "clúster". Los dos clústeres se designaron como U0 y U1. Este esquema se utilizó porque reducía el número de puertos de escritura y lectura necesarios para servir operandos y recibir resultados, reduciendo así el tamaño físico del banco de registros y permitiendo que el microprocesador operara a frecuencias de reloj más altas. Por lo tanto, las escrituras en cualquiera de los bancos de registros debían sincronizarse, lo que requería un ciclo de reloj para completarse, afectando negativamente al rendimiento en un uno por ciento. La reducción del rendimiento resultante de la sincronización se compensó de dos maneras. En primer lugar, la mayor frecuencia de reloj alcanzable compensó la pérdida. En segundo lugar, la lógica responsable de la emisión de instrucciones evitó crear situaciones en las que el banco de registros tuviera que sincronizarse emitiendo instrucciones que no dependieran de los datos almacenados en otros bancos de registros siempre que fuera posible.
Los clústeres son prácticamente idénticos, salvo por dos diferencias: U1 tiene un multiplicador segmentado de siete ciclos, mientras que U0 tiene una segmentación de tres ciclos para ejecutar instrucciones de vídeo en movimiento (MVI), una extensión de la arquitectura Alpha que define instrucciones de instrucción única y datos múltiples (SIMD) para multimedia.
Las unidades de carga y almacenamiento son unidades aritmético-lógicas simples que se utilizan para calcular direcciones virtuales para el acceso a la memoria. También son capaces de ejecutar instrucciones aritméticas y lógicas sencillas. La lógica de emisión de instrucciones del Alpha 21264 aprovechaba esta capacidad, emitiendo instrucciones a estas unidades cuando estaban disponibles (sin realizar cálculos aritméticos de direcciones).
Por lo tanto, la Ebox tiene cuatro sumadores de 64 bits , cuatro unidades lógicas, dos desplazadores de barril , lógica de manipulación de bytes y dos conjuntos de lógica de bifurcación condicional divididos equitativamente entre U1 y U0.
Fbox
La Fbox se encarga de ejecutar las instrucciones de punto flotante . Consta de dos tuberías de punto flotante y un archivo de registros de punto flotante. Las tuberías no son idénticas: una ejecuta la mayoría de las instrucciones y la otra solo las de multiplicación. La tubería del sumador tiene conectadas dos unidades no segmentadas: una de división y otra de raíz cuadrada. Las sumas, las multiplicaciones y la mayoría de las demás instrucciones tienen una latencia de 4 ciclos; una división de doble precisión tiene una latencia de 16 ciclos y una raíz cuadrada de doble precisión tiene una latencia de 33 ciclos. El archivo de registros de punto flotante contiene 72 entradas, de las cuales 32 son registros arquitectónicos y 40 son registros de cambio de nombre.
Cache
El Alpha 21264 tiene dos niveles de caché : una caché primaria y una caché secundaria. La caché de nivel tres (L3 o "víctima") del Alpha 21164 no se utilizó debido a problemas de ancho de banda.
Cachés primarias
La caché principal se divide en dos cachés separadas: una para instrucciones y otra para datos ( arquitectura Harvard modificada ), denominadas caché de instrucciones (I-cache) y otra para datos (D-cache). Ambas tienen una capacidad de 64 KB. La caché de datos utiliza un sistema de doble puerto, transfiriendo datos tanto en el flanco ascendente como en el descendente de la señal de reloj. Este método permite cualquier combinación de lecturas o escrituras en la caché en cada ciclo del procesador. Además, evita la duplicación de la caché, como en el caso del Alpha 21164. Duplicar la caché restringe su capacidad, ya que requiere más transistores para proporcionar la misma capacidad, lo que a su vez incrementa el área necesaria y el consumo de energía.
Caché B
La caché secundaria, denominada caché B, es una caché externa con una capacidad de 1 a 16 MB. Está controlada por el microprocesador y se implementa mediante chips de memoria de acceso aleatorio estática síncrona (SSRAM) que operan a dos tercios, la mitad, un tercio o un cuarto de la frecuencia del reloj interno, o de 133 a 333 MHz a 500 MHz. Se accedía a la caché B mediante un bus dedicado de 128 bits que operaba a la misma frecuencia de reloj que la SSRAM o al doble de la frecuencia de reloj si se utilizaba una SSRAM de doble velocidad de datos . La caché B es de mapeo directo. [ 1 ]
Predicción de ramificaciones
La predicción de bifurcaciones se realiza mediante un algoritmo de predicción de bifurcaciones por torneo. El algoritmo fue desarrollado por Scott McFarling en el Laboratorio de Investigación Occidental (WRL) de Digital y se describió en un artículo de 1993. Este predictor se utilizó porque el Alpha 21264 tiene una penalización mínima por predicción errónea de bifurcación de siete ciclos. Debido a la latencia de dos ciclos de la caché de instrucciones y las colas de instrucciones, la penalización promedio por predicción errónea de bifurcación es de 11 ciclos. El algoritmo mantiene dos tablas de historial, Local y Global, y la tabla utilizada para predecir el resultado de una bifurcación se determina mediante un predictor de elección.
El predictor local es una tabla de dos niveles que registra el historial de cada rama. Consta de una tabla de historial de ramas de 1024 entradas y 10 bits. Se utilizó una tabla de dos niveles porque la precisión de la predicción es similar a la de una tabla de un solo nivel más grande, pero requiere menos bits de almacenamiento. Tiene una tabla de predicción de ramas de 1024 entradas. Cada entrada es un contador de saturación de 3 bits. El valor del contador determina si la rama actual se toma o no.
El predictor global es una tabla de historial de bifurcaciones de un solo nivel con 4096 entradas. Cada entrada es un contador de saturación de 2 bits; el valor de este contador determina si la bifurcación actual se toma o no.
El predictor de elección registra el historial de los predictores locales y globales para determinar cuál es el más adecuado para una rama específica. Cuenta con una tabla de historial de ramas de 4096 entradas. Cada entrada es un contador de saturación de 2 bits. El valor del contador determina si se utiliza el predictor local o el global.
Interfaz externa
La interfaz externa constaba de un bus de datos bidireccional de 64 bits con doble velocidad de datos (DDR) y dos buses de control y direcciones unidireccionales de 15 bits con multiplexación temporal , uno para las señales provenientes del Alpha 21264 y otro para las provenientes del sistema. Digital otorgó la licencia del bus a Advanced Micro Devices (AMD), y posteriormente se utilizó en sus microprocesadores Athlon , donde se le conocía como bus EV6. Más tarde, el bus EV6 evolucionó a HyperTransport .
Direccionamiento de memoria
La CPU Alpha 21264 admite direcciones virtuales de 48 o 43 bits (espacio de direcciones virtuales de 256 TiB o 8 TiB respectivamente), seleccionables mediante el control IPR (utilizando el registro de control VA_CTL). Alpha 21264 admite una dirección física de 44 bits (hasta 16 TiB de memoria física). Esto supone un aumento con respecto a las CPU Alpha anteriores (43 bits virtuales y 40 bits físicos para Alpha 21164 , y 43 bits virtuales y 34 bits físicos para Alpha 21064 ). [ 2 ]
Fabricación
El Alpha 21264 contenía 15,2 millones de transistores. La lógica constaba de aproximadamente seis millones de transistores, y el resto se encontraba en las cachés y las tablas de historial de ramificación. El chip medía 16,7 mm x 18,8 mm (313,96 mm²). [ 3 ] Se fabricó mediante un proceso CMOS ( semiconductor complementario de óxido metálico ) de 0,35 μm con seis niveles de interconexión.
Embalaje
El Alpha 21264 se presentó encapsulado en una matriz de rejilla de pines intersticiales (IPGA) de cerámica de 587 pines .
Alpha Processor, Inc. vendió posteriormente el Alpha 21264 en un encapsulado Slot B que contenía el microprocesador montado en una placa de circuito impreso con la caché B y los reguladores de voltaje. El diseño pretendía aprovechar el éxito de los microprocesadores basados en ranuras de Intel y AMD. El Slot B se desarrolló originalmente para ser utilizado también por el Athlon de AMD, de modo que API pudiera obtener los materiales para el Slot B a precios de mercado y así reducir el coste del Alpha 21264 y obtener una mayor cuota de mercado. Esto nunca se materializó, ya que AMD optó por utilizar el Slot A para sus Athlon basados en ranuras.
Derivados
Alfa 21264A

El Alpha 21264A , con nombre en clave EV67, era una versión reducida del Alpha 21264, presentado a finales de 1999. Existían seis versiones: 600, 667, 700, 733, 750 y 833 MHz. El EV67 fue el primer microprocesador Alpha en implementar la extensión de conteo (CIX), que ampliaba el conjunto de instrucciones con instrucciones para realizar el conteo de población . Fue fabricado por Samsung Electronics en un proceso CMOS de 0,25 μm que tenía transistores de 0,25 μm pero capas metálicas de 0,35 μm. El chip tenía un área de 210 mm². El EV68 utilizaba una fuente de alimentación de 2,0 V. Disipó un máximo de 73 W a 600 MHz, 80 W a 667 MHz, 85 W a 700 MHz, 88 W a 733 MHz y 90 W a 750 MHz.
Alfa 21264B
El Alpha 21264B es un desarrollo posterior para frecuencias de reloj más altas. Hubo dos modelos, uno fabricado por IBM, con nombre en clave EV68C , y otro por Samsung, con nombre en clave EV68A .
El EV68A se fabricó mediante un proceso CMOS de 0,18 μm con interconexiones de aluminio . Tenía un tamaño de chip de 125 mm², un tercio menor que el Alpha 21264A, y utilizaba una fuente de alimentación de 1,7 V. Estuvo disponible en grandes cantidades en 2001 con frecuencias de reloj de 750, 833, 875 y 940 MHz. El EV68A disipaba un máximo de 60 W a 750 MHz, 67 W a 833 MHz, 70 W a 875 MHz y 75 W a 940 MHz. [ 4 ]
El EV68C se fabricó mediante un proceso CMOS de 0,18 μm con interconexiones de cobre. Se realizaron pruebas a principios del año 2000 y alcanzó una frecuencia de reloj máxima de 1,25 GHz.
En septiembre de 1998, Samsung anunció que fabricaría una variante del Alpha 21264B mediante un proceso de silicio sobre aislante (SOI) totalmente agotado de 0,18 μm con interconexiones de cobre , capaz de alcanzar una frecuencia de reloj de 1,5 GHz. Esta versión nunca llegó a materializarse.
Alfa 21264C
El Alpha 21264C , con nombre en clave EV68CB, era un derivado del Alpha 21264. Estaba disponible en frecuencias de reloj de 1,0, 1,25 y 1,33 GHz. El EV68CB contenía 15,5 millones de transistores y medía 120 mm². Fue fabricado por IBM en un proceso CMOS de 0,18 μm con siete niveles de interconexión de cobre y dieléctrico de baja constante dieléctrica (low-K) . Se encapsulaba en una matriz de rejilla de contactos cerámicos (CLGA) de 675 almohadillas con tecnología flip-chip, que medía 49,53 x 49,53 mm. El EV68CB utilizaba una fuente de alimentación de 1,7 V, disipando un máximo de 64 W a 1,0 GHz, 75 W a 1,25 GHz y 80 W a 1,33 GHz. [ 5 ]
Alfa 21264D
El Alpha 21264D , cuyo nombre en clave es EV68CD, es una variante más rápida fabricada por IBM.
Alfa 21264E
El Alpha 21264E , con nombre en clave EV68E , era un derivado cancelado desarrollado por Samsung y anunciado por primera vez el 10 de octubre de 2000 en el Microprocessor Forum 2000, con fecha de lanzamiento prevista para mediados de 2001. Las mejoras incluían una frecuencia de funcionamiento más alta de 1,25 GHz y la adición de una caché secundaria integrada de 1,85 MB. Su fabricación estaba prevista mediante un proceso CMOS de 0,18 micrómetros con interconexiones de cobre.
Conjuntos de chips
Digital y Advanced Micro Devices (AMD) desarrollaron conjuntos de chips para el Alpha 21264.
21272/21274
El Digital 21272 , también conocido como Tsunami , y el 21274, también conocido como Typhoon , fueron los primeros chipsets para el Alpha 21264. El chipset 21272 admitía multiprocesamiento de una o dos vías y hasta 8 GB de memoria, mientras que el 21274 admitía multiprocesamiento de una, dos, tres o cuatro vías, hasta 64 GB de memoria, y ambos admitían uno o dos buses PCI de 64 bits a 33 MHz . Tenían un bus de memoria de 128 a 512 bits que operaba a 83 MHz, lo que proporcionaba un ancho de banda máximo de 5312 MB/s. El chipset admitía SDRAM ECC registrada de 100 MHz.
El chipset constaba de tres dispositivos: un chip C, un chip D y un chip P. El número de dispositivos que lo componían variaba según su configuración. El chip C era el chip de control, que contenía el controlador de memoria. Se requería un chip C por cada microprocesador.
El chip P es el controlador PCI, que implementa un bus PCI de 33 MHz. El 21272 podía tener uno o dos chips P.
El chip D es el controlador de la memoria DRAM, que implementa el acceso a las CPU y al chip P. El modelo 21272 podía tener dos o cuatro chips D, mientras que el 21274 podía tener dos, cuatro u ocho.
Los chips 21272 y 21274 fueron ampliamente utilizados por Digital, Compaq y Hewlett Packard en sus servidores AlphaServer de gama básica a media, así como en todos los modelos de AlphaStation. También se emplearon en productos de terceros de Alpha Processor, Inc. (posteriormente conocida como API NetWorks), como su placa base UP2000+.
Puerta de hierro
AMD desarrolló dos chipsets compatibles con Alpha 21264: el Irongate , también conocido como AMD-751 , y su sucesor, el Irongate-2 , también conocido como AMD-761 . Estos chipsets se desarrollaron para sus microprocesadores Athlon, pero debido a que AMD obtuvo la licencia del bus EV6 utilizado en Alpha de Digital, Athlon y Alpha 21264 eran compatibles en términos de protocolo de bus. Samsung utilizó el Irongate en sus placas base UP1000 y UP1100, mientras que Samsung utilizó el Irongate-2 en su placa base UP1500.
Véase también
Notas
- ↑ Arquitectura del microprocesador Alpha 21264, pág. 5.
- ↑ "Hoja de datos del microprocesador Alpha 21264" (PDF) . Compaq Computer Corporation . Consultado el 3 de junio de 2020 .
- ↑ Gronowski, "Diseño de microprocesadores de alto rendimiento", pág. 676 .
- ↑ Compaq, "Manual de referencia de hardware del microprocesador 21264/EV68A" .
- ↑ Compaq, "Manual de referencia de hardware 21264/EV68CB y 21264/EV68DC" .
Referencias
- Compaq Computer Corporation (julio de 1999). Manual de referencia de hardware del microprocesador Alpha 21264 .
- Compaq Computer Corporation (junio de 2001). Manual de referencia de hardware 21264/EV68CB y 21264/EV68DC .
- Compaq Computer Corporation (marzo de 2002). Manual de referencia de hardware del microprocesador 21264/EV67 .
- Compaq Computer Corporation (marzo de 2002). Manual de referencia de hardware del microprocesador 21264/EV68A .
- Gronowski, Paul E. et al. (1998). "Diseño de microprocesadores de alto rendimiento". IEEE Journal of Solid-State Circuits , Volumen 33, Número 5, pp. 676 – 686.
- Gwennap, Linley (28 de octubre de 1996). "El Digital 21264 establece un nuevo estándar". Microprocessor Report , volumen 10, número 14. MicroDesign Resources.
- Kessler, RE; McLellan, EJ y Webb, DA (1998) "La arquitectura del microprocesador Alpha 21264". Actas de la Conferencia Internacional sobre Diseño de Computadoras: VLSI en Computadoras y Procesadores . págs. 90-95 .
- Kessler, RE (1999). "El microprocesador Alpha 21264". IEEE Micro , marzo - abril de 1999 , págs. 24-36 .
- Leibholz, Daniel y Razdan, Rahul (1997). "El Alpha 21264: un microprocesador de ejecución fuera de orden de 500 MHz". Actas de Compcon '97 . págs. 28-36 .
- Matson, M. et al. "Implementación de circuitos de un microprocesador RISC superescalar de 600 MHz". Actas de la Conferencia Internacional sobre Diseño de Computadoras: VLSI en Computadoras y Procesadores . págs. 104-110 .
Lecturas adicionales
- Benschneider, BJ et al. (2000). "Un microprocesador Alpha de 1 GHz" . ISSCC Digest of Technical Papers , pp. 86-87 .
- Clouser, J. et al. (julio de 1999). "Un procesador de punto flotante superescalar de 600 MHz" . IEEE Journal of Solid-State Circuits 34 (7): pp. 1026 – 1029.
- Fischer, T.; Leibholz, D. (1998). "Compromisos de diseño en circuitos de control de bloqueo para colas de instrucciones de 600 MHz" . ISSCC Digest of Technical Papers , pp. 232 – 234, 444.
- Gieseke, BA et al. (1997). "Un microprocesador RISC superescalar de 600 MHz con ejecución fuera de orden". ISSCC Digest of Technical Papers , pp. 176 – 177, 451.
- Gronowski, Paul E. et al. (mayo de 1998). "Diseño de microprocesadores de alto rendimiento". IEEE Journal of Solid-State Circuits 33 (5): pp. 676 – 686.
- Hokinson, R. et al. (2001). "Desafíos de diseño y migración para un microprocesador Alpha en un proceso de cobre de 0,18 μm" . ISSCC Digest of Technical Papers , pp. 320 – 321, 460.
- Microprocesadores DEC
- microprocesadores superescalares
- microprocesadores de 64 bits
- Introducciones relacionadas con la informática en 1998