stringtranslate.com

Alfa 21264

Microarquitectura Alpha 21264.

El Alpha 21264 es un microprocesador RISC desarrollado por Digital Equipment Corporation lanzado el 19 de octubre de 1998. El 21264 implementó la arquitectura de conjunto de instrucciones Alpha (ISA).

Descripción

El Alpha 21264 es un microprocesador superescalar de cuatro números con ejecución fuera de orden y ejecución especulativa . Tiene una tasa máxima de ejecución de seis instrucciones por ciclo y podría sostener cuatro instrucciones por ciclo. Tiene un proceso de instrucción de siete etapas .

Ejecución fuera de orden

En cualquier etapa, el microprocesador podría tener hasta 80 instrucciones en varias etapas de ejecución, superando a cualquier otro microprocesador contemporáneo.

Las instrucciones decodificadas se guardan en colas de instrucciones y se emiten cuando sus operandos están disponibles. La cola de números enteros contenía 20 entradas y la cola de punto flotante 15. Cada cola podía emitir tantas instrucciones como canalizaciones.

caja electrónica

El Ebox ejecuta instrucciones de números enteros, carga y almacenamiento. Tiene dos unidades de números enteros, dos unidades de almacenamiento de carga y dos archivos de registro de números enteros . Cada archivo de registro de enteros contenía 80 entradas, de las cuales 32 son registros de arquitectura, 40 son registros de cambio de nombre y 8 son registros de sombra PAL. No hubo ninguna entrada para el registro R31 porque en la arquitectura Alpha, R31 está cableado a cero y es de solo lectura.

Cada archivo de registro sirve una unidad entera y una unidad de almacenamiento de carga, y el archivo de registro y sus dos unidades se denominan "clúster". Los dos grupos fueron designados U0 y U1. Este esquema se utilizó porque reducía la cantidad de puertos de escritura y lectura necesarios para servir operandos y recibir resultados, reduciendo así el tamaño físico del archivo de registro, permitiendo que el microprocesador funcione a frecuencias de reloj más altas. Por lo tanto, las escrituras en cualquiera de los archivos de registro deben sincronizarse, lo que requiere un ciclo de reloj para completarse, lo que afecta negativamente el rendimiento en un uno por ciento. La reducción de rendimiento resultante de la sincronización se compensó de dos maneras. En primer lugar, la mayor frecuencia de reloj alcanzable compensa la pérdida. En segundo lugar, la lógica responsable de la emisión de instrucciones evitó crear situaciones en las que el archivo de registro tuviera que sincronizarse mediante la emisión de instrucciones que no dependieran de los datos contenidos en otro archivo de registro, cuando fuera posible.

Los grupos son casi idénticos, excepto por dos diferencias: U1 tiene un multiplicador canalizado de siete ciclos, mientras que U0 tiene un canal de tres ciclos para ejecutar instrucciones de video en movimiento (MVI), una extensión de la arquitectura Alpha que define instrucciones de datos múltiples de instrucción única (SIMD). para multimedia.

Las unidades de almacenamiento de carga son unidades lógicas aritméticas 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 Alpha 21264 utilizó esta capacidad, emitiendo instrucciones a estas unidades cuando estaban disponibles para su uso (sin realizar aritmética de direcciones).

Por lo tanto, el Ebox tiene cuatro sumadores de 64 bits , cuatro unidades lógicas, dos desplazadores de barril , lógica de manipulación de bytes, dos conjuntos de lógica de rama condicional dividida equitativamente entre U1 y U0.

Fbox

El Fbox es responsable de ejecutar instrucciones de punto flotante . Consta de dos canalizaciones de punto flotante y un archivo de registro de punto flotante. Los pipelines no son idénticos, uno ejecuta la mayoría de instrucciones y el otro solo multiplica instrucciones. La tubería sumadora tiene dos unidades no canalizadas conectadas, una unidad divisoria y una unidad de raíz cuadrada. Las sumas, 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 registro de coma 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é , un caché primario y un caché secundario. El caché de nivel tres (L3 o "víctima") del Alpha 21164 no se utilizó debido a problemas con el ancho de banda.

Cachés primarios

El caché primario se divide en cachés separados para instrucciones y datos (" arquitectura Harvard modificada "), el I-cache y el D-cache, respectivamente. Ambas cachés tienen una capacidad de 64 KB. El D-cache tiene doble puerto al transferir datos en los flancos ascendente y descendente de la señal del reloj. Este método de puerto dual permitía cualquier combinación de lecturas o escrituras en la caché en cada ciclo del procesador. También evitó la duplicación del caché, por lo que hay dos, como en el Alpha 21164. Duplicar el caché restringió la capacidad del caché, ya que requería más transistores para proporcionar la misma cantidad de capacidad y, a su vez, aumentó el área requerida y la energía consumida. .

caché B

La caché secundaria, denominada caché B, es una caché externa con una capacidad de 1 a 16 MB. Está controlado por el microprocesador y se implementa mediante chips de memoria de acceso aleatorio estático síncrono (SSRAM) que funcionan 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 accedió al caché B con un bus dedicado de 128 bits que opera a la misma frecuencia de reloj que la SSRAM o al doble de la frecuencia del reloj si se usa SSRAM de doble velocidad de datos . La caché B está asignada directamente. [1]

Predicción de sucursales

La predicción de rama se realiza mediante un algoritmo de predicción de rama de torneo. El algoritmo fue desarrollado por Scott McFarling en el Western Research Laboratory (WRL) de Digital y fue descrito en un artículo de 1993. Este predictor se utilizó ya que Alpha 21264 tiene una penalización mínima por error de predicción de rama 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 error de predicción de rama es de 11 ciclos. El algoritmo mantiene dos tablas de historial, local y global, y la tabla utilizada para predecir el resultado de una rama está determinada por un predictor de elección.

El predictor local es una tabla de dos niveles que registra el historial de sucursales individuales. Consiste en una tabla de historial de sucursales de 1024 entradas por 10 bits. Se utilizó una tabla de dos niveles ya que la precisión de la predicción es similar a la de una tabla más grande de un solo nivel y requiere menos bits de almacenamiento. Tiene una tabla de predicción de ramas de 1.024 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 sucursales de un solo nivel y 4096 entradas. Cada entrada es un contador de saturación de 2 bits; el valor de este contador determina si la rama actual se toma o no.

El predictor de elección registra el historial de los predictores locales y globales para determinar qué predictor es el mejor para una rama en particular. Tiene una tabla de historial de sucursales de 4.096 entradas. Cada entrada es un contador de saturación de 2 bits. El valor del contador determina si se utiliza el predictor local o global.

Interfaz externa

La interfaz externa constaba de un bus de datos bidireccional de doble velocidad de datos (DDR) de 64 bits y dos buses de dirección y control unidireccionales multiplexados en el tiempo de 15 bits , uno para señales que se originan en Alpha 21264 y otro para señales que se originan en el sistema. Digital obtuvo la licencia del bus para Advanced Micro Devices (AMD) y posteriormente se utilizó en sus microprocesadores Athlon , donde se conocía como bus EV6.

Direccionamiento de memoria

La CPU Alpha 21264 admite direcciones virtuales de 48 o 43 bits (espacio de direcciones virtuales de 256 TiB u 8 TiB respectivamente), seleccionables bajo control IPR (usando el registro de control VA_CTL). Alpha 21264 admite una dirección física de 44 bits (hasta 16 TiB de memoria física). Este es un aumento con respecto a las CPU Alpha anteriores (virtual de 43 bits y física de 40 bits para Alpha 21164 , y virtual de 43 bits y física de 34 bits 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 estaba contenido en cachés y tablas de historial de sucursales. La matriz medía 16,7 mm por 18,8 mm (313,96 mm²). [3] Fue fabricado en un proceso semiconductor complementario de óxido de metal (CMOS) de 0,35 μm con seis niveles de interconexión.

embalaje

El Alpha 21264 estaba empaquetado en una matriz de rejilla de pines intersticiales de cerámica (IPGA) de 587 pines .

Alpha Processor, Inc. luego vendió el Alpha 21264 en un paquete Slot B que contenía el microprocesador montado en una placa de circuito impreso con el caché B y reguladores de voltaje. El diseño pretendía aprovechar el éxito de los microprocesadores basados ​​en ranuras de Intel y AMD. Slot B fue desarrollado originalmente para ser utilizado también por Athlon de AMD, de modo que API pudiera obtener materiales para Slot B a precios de productos básicos con el fin de reducir el costo de Alpha 21264 y ganar una participación de mercado más amplia. Esto nunca se materializó ya que AMD decidió utilizar la ranura A para sus Athlons basados ​​en ranuras.

Derivados

Alfa 21264A

Alfa 21264A

El Alpha 21264A , cuyo nombre en código EV67 era una versión reducida del Alpha 21264 introducido a finales de 1999. Había seis versiones: 600, 667, 700, 733, 750, 833 MHz. El EV67 fue el primer microprocesador Alpha en implementar la extensión de conteo (CIX), que amplió 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. La matriz tenía una superficie de 210 mm². El EV68 utilizó una fuente de alimentación de 2,0 V. Disipaba 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 adicional para frecuencias de reloj aumentadas. Había dos modelos, uno fabricado por IBM, con nombre en código EV68C , y otro por Samsung, con nombre en código EV68A .

El EV68A se fabricó mediante un proceso CMOS de 0,18 μm con interconexiones de aluminio . Tenía un tamaño de matriz de 125 mm², un tercio más pequeño que el Alpha 21264A, y utilizaba una fuente de alimentación de 1,7 V. Estuvo disponible en volumen en 2001 con frecuencias de reloj de 750, 833, 875 y 940 MHz. El EV68A disipó 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. Fue muestreado a principios de 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 en un proceso de silicio sobre aislante (SOI) completamente empobrecido de 0,18 μm con interconexiones de cobre que era capaz de alcanzar una frecuencia de reloj de 1,5 GHz. Esta versión nunca se materializó.

Alfa 21264C

El Alpha 21264C , cuyo nombre en código 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 bajo K. Estaba empaquetado en una matriz de rejilla terrestre cerámica (CLGA) de chip invertido de 675 almohadillas que medía 49,53 por 49,53 mm. El EV68CB utilizó 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 código EV68CD es un derivado más rápido fabricado por IBM.

Alfa 21264E

El Alpha 21264E , cuyo nombre en código EV68E , fue un derivado cancelado desarrollado por Samsung anunciado por primera vez el 10 de octubre de 2000 en el Microprocessor Forum 2000 cuya presentación estaba prevista para mediados de 2001. Las mejoras fueron una frecuencia operativa más alta de 1,25 GHz y la adición de un caché secundario integrado de 1,85 MB. Debía fabricarse mediante un proceso CMOS de 0,18 micrómetros con interconexiones de cobre.

Conjuntos de chips

Tanto Digital como 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 conjuntos de chips para Alpha 21264. El conjunto de chips 21272 admitía multiprocesamiento unidireccional o bidireccional 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 y 33 MHz. Tenían un bus de memoria de 128 a 512 bits que funcionaba a 83 MHz, produciendo 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 componían el chipset variaba según lo determinaba la configuración del chipset. El chip C es el chip de control que contiene el controlador de memoria. Se necesitaba un chip C por cada microprocesador.

El P-chip es el controlador PCI e implementa un bus PCI de 33 MHz. El 21272 podría tener uno o dos chips P.

El D-chip es el controlador DRAM, que implementa el acceso hacia/desde las CPU y hacia/desde el P-chip. El 21272 podría tener dos o cuatro chips D y el 21274 podría tener dos, cuatro u ocho chips D.

Los 21272 y 21274 fueron utilizados ampliamente por Digital, Compaq y Hewlett Packard en sus AlphaServers de nivel básico a medio y en todos los modelos de AlphaStation. También se utilizó en productos de terceros de Alpha Processor, Inc. (más tarde conocido 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, Irongate-2 , también conocido como AMD-761 . Estos conjuntos de chips se desarrollaron para sus microprocesadores Athlon, pero debido a que AMD otorgó la licencia del bus EV6 utilizado en Alpha de Digital, el Athlon y el Alpha 21264 eran compatibles en términos de protocolo de bus. Samsung utilizó el Irongate en sus placas base UP1000 y UP1100. Samsung utilizó el Irongate-2 en su placa base UP1500.

Ver también

Notas

  1. ^ La arquitectura del microprocesador Alpha 21264, p. 5.
  2. ^ "Hoja de datos del microprocesador Alpha 21264" (PDF) . Corporación informática Compaq . Consultado el 3 de junio de 2020 .
  3. ^ Gronowski, "Diseño de microprocesador de alto rendimiento", p. 676.
  4. ^ Compaq, "Manual de referencia del hardware del microprocesador 21264/EV68A".
  5. ^ Compaq, "Manual de referencia de hardware 21264/EV68CB y 21264/EV68DC".

Referencias

Otras lecturas