El Alpha 21464 es un microprocesador inacabado que implementa la arquitectura de conjunto de instrucciones Alpha (ISA) desarrollada por Digital Equipment Corporation y más tarde por Compaq después de que esta adquiriera Digital. El microprocesador también era conocido como EV8 (nombre en código Araña ). Programado para su lanzamiento en 2004, fue cancelado el 25 de junio de 2001 cuando Compaq anunció que Alpha sería descontinuado en favor de Itanium en 2004. Cuando fue cancelado, el Alpha 21464 estaba en una etapa avanzada de desarrollo pero no había sido terminado . [1] [2]
Los orígenes del 21464 se remontan a mediados de los años 90, cuando el científico informático Joel Emer se inspiró en la investigación de Dean Tullsen sobre multiprocesamiento simultáneo (SMT) en la Universidad de Washington . Emer había investigado la tecnología a finales de los años 90 y comenzó a promocionarla una vez que estuvo convencido de su valor. Compaq anunció que el próximo microprocesador Alpha utilizaría SMT en octubre de 1999 en el Microprocessor Forum 1999. [3] En ese momento, se esperaba que los sistemas que utilizaran el Alpha 21464 se comercializaran en 2003. [3]
El microprocesador era un diseño superescalar de ocho elementos con ejecución fuera de orden , SMT de cuatro vías y una tubería profunda . Obtiene 16 instrucciones de una caché de instrucciones asociativas de conjuntos bidireccional de 64 KB . El predictor de saltos luego selecciona las instrucciones "buenas" y las ingresa en un búfer colapsable. (Esto permitió un ancho de banda de búsqueda de hasta 16 instrucciones por ciclo, dependiendo de la densidad de saltos tomada). El front-end tenía significativamente más etapas que la implementación Alpha anterior y, como resultado, el 21464 tenía una penalidad mínima significativa de predicción errónea de saltos de 14 ciclos. [1] El microprocesador utilizó un algoritmo avanzado de predicción de saltos para minimizar estas costosas penalizaciones.
La implementación de SMT requirió la replicación de ciertos recursos, como el contador de programa . En lugar de un contador de programa, había cuatro contadores de programa, uno para cada hilo. Sin embargo, muy poca lógica después de que el front-end necesitara ser expandida para el soporte de SMT. El archivo de registro contenía 512 entradas, pero su tamaño estaba determinado por el número máximo de instrucciones en vuelo, no por SMT. El acceso al archivo de registro requería tres etapas de canalización debido al tamaño físico del circuito. Se podían enviar hasta ocho instrucciones de cuatro hilos a ocho unidades de ejecución de números enteros y cuatro de punto flotante cada ciclo. El 21464 tenía un caché de datos de 64 KB (Dcache), organizado en ocho bancos para soportar el puerto dual. Esto estaba respaldado por un caché secundario unificado asociativo de conjuntos de seis vías de 3 MB en la matriz (Scache).
La unidad de ejecución de enteros hizo uso de una nueva estructura: la caché de registros. La caché de registros no estaba pensada para mitigar la latencia de tres ticks del archivo de registros (como afirman algunos informes), sino para reducir la complejidad de la gestión de omisión de operandos. La caché de registros contenía todos los resultados producidos por la ALU y las tuberías de carga para los N ciclos anteriores (N era algo así como 8). La estructura de la caché de registros era un reetiquetado arquitectónico de lo que los procesadores anteriores habían implementado como un multiplexor distribuido.
La interfaz del sistema era similar a la del Alpha 21364. Había controladores de memoria integrados que proporcionaban diez canales RDRAM . El multiprocesamiento se facilitaba mediante un enrutador que proporcionaba enlaces a otros 21464 y, arquitectónicamente, admitía un multiprocesamiento de 512 vías sin lógica de unión .
Se suponía que se implementaría en un proceso de metal-óxido-semiconductor complementario (CMOS) de 0,125 μm (a veces denominado 0,13 μm) con siete capas de interconexión de cobre , silicio sobre aislante parcialmente agotado (PD-SOI) y dieléctrico de baja K. Se estimó que el número de transistores sería de 250 millones y el tamaño de la matriz se estimaría en 420 mm 2 . [2] [4]
Tarantula era el nombre en clave de una extensión de la arquitectura Alpha que se estaba considerando y un derivado del Alpha 21464 que implementaba la extensión antes mencionada. Se canceló mientras aún estaba en desarrollo, antes de que se hubiera iniciado cualquier trabajo de implementación y antes de que se terminara el 21464. La extensión debía proporcionar a Alpha una capacidad de procesamiento vectorial. Especificaba treinta y dos registros vectoriales de 64 por 128 bits (8192 bits o 1 KB), aproximadamente 50 instrucciones vectoriales y un número no especificado de instrucciones para mover datos hacia y desde los registros vectoriales. Otros candidatos de seguimiento de EV8 incluían un diseño multinúcleo con dos núcleos EV8 y una frecuencia operativa de 4,0 GHz. [ cita requerida ]