Alfa 21264 - Alpha 21264

Microarquitectura Alpha 21264.

El Alpha 21264 es un microprocesador RISC de Digital Equipment Corporation presentado en octubre de 1996. El 21264 implementó la arquitectura de conjunto de instrucciones Alpha (ISA).

Descripción

El Alpha 21264 o Alpha 7 para abreviar, es un microprocesador superescalar de cuatro problemas con ejecución fuera de orden y ejecución especulativa . Tiene una tasa de ejecución máxima de seis instrucciones por ciclo y podría soportar cuatro instrucciones por ciclo. Tiene una canalización de instrucciones de siete etapas .

Ejecución fuera de orden

En cualquier etapa dada, 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 mantienen en colas de instrucciones y se emiten cuando sus operandos están disponibles. La cola de enteros contenía 20 entradas y la cola de punto flotante 15. Cada cola podía emitir tantas instrucciones como canalizaciones hubiera.

Ebox

El Ebox ejecuta instrucciones de almacenamiento, carga y enteros. Tiene dos unidades enteras, dos unidades de almacenamiento de carga y dos archivos de registro de 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 había 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 sirvió a una unidad entera y una unidad de almacenamiento de carga, y el archivo de registro y sus dos unidades se denominan "grupo". Los dos grupos se denominaron U0 y U1. Este esquema se usó ya que redujo el número de puertos de escritura y lectura requeridos para servir operandos y recibir resultados, reduciendo así el tamaño físico del archivo de registro, permitiendo que el microprocesador opere 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 del rendimiento resultante de la sincronización se compensó de dos formas. En primer lugar, la frecuencia de reloj más alta que se puede lograr 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 emitiendo instrucciones que no dependieran de los datos almacenados en otro archivo de registro cuando fuera posible.

Los grupos son casi idénticos, excepto por dos diferencias: U1 tiene un multiplicador de canalización de siete ciclos, mientras que U0 tiene una canalización 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 lógicas y aritméticas simples. 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 divididos por igual entre U1 y U0.

Fbox

Fbox es responsable de ejecutar instrucciones de punto flotante . Consta de dos canalizaciones de punto flotante y un archivo de registro de punto flotante. Las canalizaciones no son idénticas, una ejecuta la mayoría de las instrucciones y la otra solo multiplica las instrucciones. La tubería sumadora tiene dos unidades sin tubería conectadas a ella, una unidad de división y una unidad de raíz cuadrada. 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 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é , un caché principal y un caché secundario. El caché de nivel tres (L3 o "víctima") del Alpha 21164 no se usó debido a problemas con el ancho de banda.

Cachés primarios

El caché principal se divide en cachés separados para instrucciones y datos (" arquitectura de Harvard modificada "), I-cache y D-cache, respectivamente. Ambas cachés tienen una capacidad de 64 KB. El D-cache tiene un puerto dual transfiriendo datos tanto en los flancos ascendentes como descendentes de la señal del reloj. Este método de puerto dual habilitó cualquier combinación de lecturas o escrituras en la caché en cada ciclo del procesador. También evitó la duplicación de la caché, por lo que hay dos, como en el Alpha 21164. La duplicación de la caché restringió la capacidad de la caché, ya que requirió 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 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 accedió a la 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 de reloj si se usa SSRAM de doble velocidad de datos . La caché B está mapeada directamente.

Predicción de rama

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 Laboratorio de Investigación Occidental de Digital (WRL) y fue descrito en un artículo de 1993. Este predictor se usó ya que el Alpha 21264 tiene una penalización mínima de predicción errónea 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 históricas, Local y Global, y la tabla utilizada para predecir el resultado de una rama está determinada por un predictor Choice.

El predictor local es una tabla de dos niveles que registra el historial de las ramas individuales. Consiste en una tabla de historial de ramas de 1.024 entradas por 10 bits. Se usó una tabla de dos niveles ya que la precisión de la predicción es similar a la de una tabla de un solo nivel más grande y requiere menos bits de almacenamiento. Tiene una tabla de predicción de rama de 1.024 entradas. Cada entrada es un contador de saturación de 3 bits. El valor del contador determina si se toma o no la rama actual.

El predictor global es una tabla de historial de sucursales de 4096 entradas de un solo nivel. 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 consistía en un bidireccional de 64 bits de doble velocidad de datos (DDR) de bus de datos y dos de 15 bits multiplexados en el tiempo unidireccionales de dirección y de control de los autobuses, uno para las señales procedentes de la alfa 21.264 y una para señales que se originan desde el sistema. Digital autorizó el bus a Advanced Micro Devices (AMD), y posteriormente se utilizó en sus microprocesadores Athlon , donde se lo 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 256TiB u 8TiB respectivamente), seleccionable 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 ).

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 en las tablas de historial de las ramas. La matriz medía 16,7 mm por 18,8 mm (313,96 mm²). Se fabricó en un proceso de semiconductor de óxido de metal complementario (CMOS) de 0,35 μm con seis niveles de interconexión.

embalaje

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

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

Derivados

Alpha 21264A

El Alpha 21264A , cuyo nombre en código EV67 fue un encogimiento del Alpha 21264 introducido a fines 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 extendió 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 de metal de 0,35 μm. La matriz tenía un área de 210 mm². El EV68 utilizó 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.

Alpha 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 de Samsung, con nombre en código EV68A .

El EV68A se fabricó en 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 usaba una fuente de alimentación de 1,7 V. Estaba disponible en volumen en 2001 en 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.

El EV68C se fabricó en un proceso CMOS de 0,18 μm con interconexiones de cobre. Se muestreó 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) totalmente agotado 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ó.

Alpha 21264C

El Alpha 21264C , cuyo nombre en código es 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 de bajo K dieléctrico . Estaba empaquetado en una matriz de rejilla terrestre de cerámica de chip abatible (CLGA) de 675 almohadillas que medían 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.

Alpha 21264D

El Alpha 21264D , con nombre en código EV68CD, es un derivado más rápido fabricado por IBM.

Alpha 21264E

El Alpha 21264E , cuyo nombre en código es 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 una caché secundaria integrada de 1,85 MB. Se iba a fabricar en un proceso CMOS de 0,18 micrómetros con interconexiones de cobre.

Conjuntos de chips

Los microdispositivos digitales y avanzados (AMD) desarrollaron conjuntos de chips para Alpha 21264.

21272/21274

El Digital 21272 , también conocido como Tsunami , y el 21274, también conocido como Typhoon , fueron el primer conjunto de chips para Alpha 21264. El conjunto de chips 21272 admitía multiprocesamiento de una o dos vías y hasta 8 GB de memoria, mientras que el 21274 admite multiprocesamiento de una, dos, tres o cuatro vías, hasta 64 GB de memoria y ambos admiten uno o dos buses PCI de 33 MHz de 64 bits . Tenían un bus de memoria de 128 a 512 bits que operaba a 83 MHz, produciendo un ancho de banda máximo de 5.312 MB / s. El conjunto de chips 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 conjunto de chips variaba, ya que estaba determinado por la configuración del conjunto de chips. El chip C es el chip de control que contiene el controlador de memoria. Se requería un chip C para cada microprocesador.

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

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 D-chips y el 21274 podría tener dos, cuatro u ocho D-chips.

Digital, Compaq y Hewlett Packard utilizaron ampliamente el 21272 y el 21274 en sus servidores Alpha de nivel de entrada a rango 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 conjuntos de chips 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 la licencia de AMD para el bus EV6 utilizado en Alpha de Digital, Athlon y Alpha 21264 eran compatibles en términos de protocolo de bus. El Irongate fue utilizado por Samsung en sus placas base UP1000 y UP1100. Samsung utilizó el Irongate-2 en su placa base UP1500.

Ver también

Notas

Referencias

  • Compaq Computer Corporation (julio de 1999). Manual de referencia del 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 del hardware del microprocesador 21264 / EV67 .
  • Compaq Computer Corporation (marzo de 2002). Manual de referencia del hardware del microprocesador 21264 / EV68A .
  • Gronowski, Paul E. et al. (1998). "Diseño de microprocesador de alto rendimiento". Revista IEEE de circuitos de estado sólido , volumen 33, número 5, págs. 676–686.
  • Gwennap, Linley (28 de octubre de 1996). "Digital 21264 establece un nuevo estándar". Informe del microprocesador , Volumen 10, Número 14. Recursos de microdiseño.
  • 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 servicio de 500 MHz". Actas de Compcon '97 . págs. 28–36.
  • Matson, M. y col. "Implementación del circuito de un microprocesador RISC superescalar de 600MHz". Actas de la Conferencia Internacional sobre Diseño de Computadoras: VLSI en Computadoras y Procesadores . págs. 104-110.

Otras lecturas