stringtranslate.com

Alfa 21064

El microprocesador 21064
El microprocesador 21064 montado en una tarjeta de visita

El Alpha 21064 es un microprocesador desarrollado y fabricado por Digital Equipment Corporation que implementó la arquitectura del conjunto de instrucciones (ISA) Alpha (presentada como Alpha AXP ). Se introdujo como DECchip 21064 antes de que se le cambiara el nombre en 1994. El 21064 también se conoce por su nombre en clave, EV4 . Se anunció en febrero de 1992 y estuvo disponible en volumen en septiembre de 1992. El 21064 fue la primera implementación comercial de Alpha ISA y el primer microprocesador de Digital que estuvo disponible comercialmente. Fue sucedido por un derivado, el Alpha 21064A en octubre de 1993. Esta última versión fue reemplazada por el Alpha 21164 en 1995.

Historia

El primer procesador Alpha fue un chip de prueba con nombre en código EV3 . Este chip de prueba se fabricó utilizando el proceso CMOS-3 de 1,0 micrómetros (μm) de Digital. El chip de prueba carecía de una unidad de punto flotante y sólo tenía  cachés de 1 KB . El chip de prueba se utilizó para confirmar el funcionamiento de las técnicas agresivas de diseño de circuitos . El chip de prueba, junto con simuladores y emuladores, también se utilizó para mostrar el firmware y los distintos sistemas operativos admitidos por la empresa.

El chip de producción, con nombre en código EV4 , se fabricó utilizando el proceso CMOS-4 de 0,75 μm de Digital. Dirk Meyer y Edward McLellan fueron los microarquitectos. Ed diseñó la lógica del problema mientras Dirk diseñó los otros bloques principales. Jim Montanaro dirigió la implementación del circuito. El EV3 se utilizó en la Unidad de demostración Alpha (ADU), un sistema multiprocesador utilizado por Digital para desarrollar software para la plataforma Alpha antes de la disponibilidad de las piezas del EV4. [1]

El 21064 se presentó en la 39ª Conferencia Internacional de Circuitos de Estado Sólido (ISSCC) a mediados de febrero de 1992. Se anunció el 25 de febrero de 1992 y se introdujo una muestra de 150 MHz el mismo día. Tenía un precio de 3.375 dólares en cantidades de 100, 1.650 dólares en cantidades entre 100 y 1.000 y 1.560 dólares para cantidades superiores a 1.000. Los envíos de volumen comenzaron en septiembre de 1992.

A principios de febrero de 1993, el precio de la versión de 150 MHz se redujo de 1.559 dólares a 1.096 dólares en cantidades superiores a 1.000.

El 25 de febrero de 1993, se introdujo un 200 MHz, con kits de muestra disponibles, con un precio de 3.495 dólares. En volumen, tenía un precio de 1.231 dólares por unidad en cantidades superiores a 10.000. Los pedidos por volumen se aceptaron en junio de 1993 y los envíos se realizaron en agosto de 1993. En respuesta, el precio de la versión de 150 MHz se redujo. El kit de muestra se redujo de 3.375 dólares a 1.690 dólares, a partir de abril de 1993; y en volumen, se redujo de 1.355 dólares por unidad a 853 dólares por unidad en cantidades superiores a 10.000, a partir de julio de 1993.

Con la introducción de Alpha 21066 y Alpha 21068 el 10 de septiembre de 1993, Digital ajustó la posición de los 21064 existentes e introdujo una versión de 166 MHz con un precio de 499 dólares por unidad en cantidades de 5.000. El precio de la versión de 150 MHz se redujo a 455 dólares por unidad en cantidades de 5.000.

El 6 de junio de 1994, el precio de la versión de 200 MHz se redujo en un 31% a 544 dólares para posicionarla frente al Pentium de 60 MHz; y la versión de 166 MHz en un 19% a 404 dólares por unidad en cantidades de 5.000, con efecto a partir del 3 de julio de 1994.

El Alpha 21064 se fabricó en las instalaciones de Digital en Hudson, Massachusetts y South Queensferry, Escocia .

Usuarios

El 21064 se usaba principalmente en computadoras de alta gama, como estaciones de trabajo y servidores . Usuarios incluidos:

Actuación

El 21064 fue el microprocesador de mayor rendimiento desde su introducción hasta 1993, después de que International Business Machines (IBM) introdujera el multichip POWER2 . Posteriormente se convirtió en el microprocesador de un solo chip de mayor rendimiento, posición que ocupó hasta que se introdujo el 21064A de 275 MHz en octubre de 1993. [2]

Descripción

El Alpha 21064 es un microprocesador superescalar supercanalizado de doble emisión que ejecuta instrucciones en orden . Es capaz de emitir hasta dos instrucciones en cada ciclo de reloj a cuatro unidades funcionales: una unidad entera , una unidad de punto flotante (FPU), una unidad de dirección y una unidad de rama. La canalización de números enteros tiene siete etapas de longitud y la canalización de punto flotante diez etapas. Las primeras cuatro etapas de ambas tuberías son idénticas y están implementadas por I-Box.

I-caja

La I-box es la unidad de control ; busca, decodifica, emite instrucciones y controla la canalización. [3] Durante la etapa uno, se obtienen dos instrucciones del I-cache. La predicción de rama se realiza mediante lógica en el I-box durante la etapa dos. Se utiliza predicción estática o predicción dinámica. La predicción estática examinó el bit de signo del campo de desplazamiento de una instrucción de rama y predijo la rama tomada si el bit de signo indicaba una rama hacia atrás (si el bit de signo contenía 1). La predicción dinámica examinó una entrada en la tabla de historial de sucursales de 2048 entradas por 1 bit. Si una entrada contenía 1, se predijo que la rama sería tomada. [4] Si se utilizó predicción dinámica, la predicción de rama tiene aproximadamente un 80% de precisión para la mayoría de los programas. [5] La penalización por error de predicción de rama es de cuatro ciclos. [6]

Estas instrucciones se decodifican durante la etapa tres. Luego, el I-box verifica si los recursos requeridos por las dos instrucciones están disponibles durante la cuarta etapa. En caso afirmativo, se emiten las instrucciones, siempre que puedan emparejarse. Las instrucciones que se podían emparejar estaban determinadas por la cantidad de puertos de lectura y escritura en el archivo de registro de enteros. [7] El 21064 podría emitir: una operación de número entero con una operación de punto flotante, cualquier instrucción de carga/almacenamiento con cualquier instrucción de operación, una operación de número entero con una rama de número entero o una operación de punto flotante con una rama de punto flotante. No se permitían dos combinaciones: una operación de punto flotante y un almacén de punto flotante, y una operación de punto flotante y un almacén de número entero. Si una de las dos instrucciones no se puede emitir juntas, las primeras cuatro etapas se detiene hasta que se emita la instrucción restante. Las primeras cuatro etapas también se detienen en caso de que no se puedan emitir instrucciones debido a la falta de disponibilidad de recursos, dependencias o condiciones similares.

El I-box contiene dos buffers de traducción (TLB) para traducir direcciones virtuales a direcciones físicas . Estos TLB se denominan buffers de traducción de instrucciones (ITB). La caché de ITB utilizó recientemente entradas de la tabla de páginas para el flujo de instrucciones. Se utiliza una ITB de ocho entradas para páginas de 8 KB y una ITB de cuatro entradas para páginas de 4 MB. Ambos ITB son completamente asociativos y utilizan un algoritmo de reemplazo no utilizado en último lugar. [8]

Ejecución

La ejecución comienza durante la etapa cinco para todas las instrucciones. Los archivos de registro se leen durante la cuarta etapa. Los oleoductos que comienzan en la etapa cinco no pueden detenerse.

unidad entera

La unidad de números enteros es responsable de ejecutar instrucciones de números enteros. Consta del archivo de registro de números enteros (IRF) y la E-box. El IRF contiene treinta y dos registros de 64 bits y tiene cuatro puertos de lectura y dos puertos de escritura que se dividen equitativamente entre la unidad de enteros y la unidad de rama. [9] La E-box contiene un sumador , una unidad lógica, un cambiador de barril y un multiplicador . A excepción de las instrucciones de multiplicación, desplazamiento y manipulación de bytes, la mayoría de las instrucciones de números enteros se completan al final de la etapa cinco y, por lo tanto, tienen una latencia de un ciclo. El cambiador de barril está canalizado, pero las instrucciones de cambio y manipulación de bytes no se completan al final de la etapa seis y, por lo tanto, tienen una latencia de dos ciclos. El multiplicador no fue canalizado para salvar el área; [5] por lo tanto, las instrucciones de multiplicación tienen una latencia variable de 19 a 23 ciclos dependiendo de los operandos. En la etapa siete, las instrucciones de números enteros escriben sus resultados en el IRF.

Unidad de dirección

La unidad de direcciones, también conocida como "A-box", ejecutaba instrucciones de carga y almacenamiento. Para permitir que la unidad de dirección y la unidad entera funcionen en paralelo, la unidad de dirección tiene su propio sumador de desplazamiento , que utiliza para calcular direcciones virtuales , en lugar de usar el sumador en la unidad entera. [10] Se utiliza un búfer de búsqueda de traducción (TLB) totalmente asociativo de 32 entradas para traducir direcciones virtuales en direcciones físicas . [10] Este TLB se conoce como búfer de traducción de datos (DTB). El 21064 implementó una dirección virtual de 43 bits y una dirección física de 34 bits, por lo que es capaz de direccionar 8 TB de memoria virtual y 16 GB de memoria física .

Las instrucciones de almacenamiento dan como resultado datos almacenados en un búfer de escritura de 4 entradas por 32 bytes. El búfer de escritura mejoró el rendimiento al reducir la cantidad de escrituras en el bus del sistema al fusionar datos de almacenes adyacentes y retrasar temporalmente los almacenes, lo que permitió atender las cargas más rápido ya que el bus del sistema no se utiliza con tanta frecuencia. [10]

unidad de punto flotante

La unidad de coma flotante consta del archivo de registro de coma flotante (FRF) y la caja F. [7] El FRF contiene treinta y dos registros de 64 bits y tiene tres puertos de lectura y dos puertos de escritura. La caja F contenía una tubería de punto flotante y una unidad divisoria sin tubería que retiraba un bit por ciclo.

El archivo de registro de punto flotante se lee y los datos se formatean en fracción, exponente y signo en la etapa cuatro. Si se ejecutan instrucciones de suma, el sumador calcula la diferencia de exponentes y se inicia un detector predictivo de uno o cero que utiliza operandos de entrada para normalizar el resultado. Si se ejecutan instrucciones de multiplicación, se genera un multiplicando de 3 X.

En las etapas cinco y seis, se realizan alineación o un cambio de normalización y cálculos de bits fijos para sumas y restas. Las instrucciones de multiplicación se multiplican en una matriz intercalada bidireccional canalizada que utiliza un algoritmo de Booth radix-8 . [5] [11] En la etapa ocho, la suma final se realiza en paralelo con el redondeo. Las instrucciones de punto flotante escriben sus resultados en el FRF en la etapa diez. [11]

Las instrucciones ejecutadas en el pipeline tienen una latencia de seis ciclos. [11] Las divisiones de precisión simple (32 bits) y de doble precisión (64 bits), que se ejecutan en la unidad de división no canalizada, tienen una latencia de 31 y 61 ciclos, respectivamente. [12]

cachés

El 21064 tiene dos cachés primarios integrados : un caché de datos de 8 KB (conocido como D-cache) que utiliza una política de escritura directa y un caché de instrucciones de 8 KB (conocido como I-cache). Ambas cachés están asignadas directamente para acceso de ciclo único y tienen un tamaño de línea de 32 bytes. Los cachés están construidos con celdas de memoria estática de acceso aleatorio (SRAM) de seis transistores que tienen un área de 98 μm 2 . Los cachés tienen 1.024 celdas de ancho por 66 celdas de alto, y las dos filas superiores se utilizan para redundancia.

Se admitía una caché secundaria externa opcional, conocida como caché B, con capacidades de 128 KB a 16 MB. El caché funcionaba entre un tercio y un decimosexto de la frecuencia del reloj interno, o entre 12,5 y 66,67 MHz a 200 MHz. [13] La caché B está asignada directamente y tiene un tamaño de línea de 128 bytes por defecto que podría configurarse para utilizar cantidades mayores. Se accede al caché B a través del bus del sistema.

Interfaz externa

La interfaz externa es un bus de datos de 128 bits que funciona entre la mitad y un octavo de la velocidad del reloj interno, o de 25 a 100 MHz a 200 MHz. El ancho del bus era configurable, los sistemas que utilizaban el 21064 podían tener una interfaz externa de 64 bits. La interfaz externa también constaba de un bus de direcciones de 34 bits .

Fabricación

Troquelador DEC Alpha 21064 (EV4S)

El 21064 contenía 1,68 millones de transistores. [14] El EV4 original fue fabricado por Digital en su proceso CMOS-4, que tiene un tamaño de característica de 0,75 μm y tres niveles de interconexión de aluminio . [14] El EV4 mide 13,9 mm por 16,8 mm, para un área de 233,52 mm 2 . El último EV4S se fabricó en CMOS-4S, una reducción óptica del 10% del CMOS-4 con un tamaño de característica de 0,675 μm. Esta versión medía 12,4 mm por 15,0 mm, para un área de 186 mm 2 . [15]

El 21064 utilizó una fuente de alimentación de 3,3 voltios (V). [14] El EV4 disipó un máximo de 30 W a 200 MHz. El EV4S disipa un máximo de 21,0 W a 150 MHz, 22,5 W a 166 MHz y 27,0 W a 200 MHz. [dieciséis]

Paquete

Un microprocesador 21064 empaquetado

El 21064 está empaquetado en una matriz de rejilla de pines (PGA) de cerámica y alúmina de 431 pines que mide 61,72 mm por 61,72 mm. [17] De los 431 pines, 291 eran para señales y 140 eran para alimentación y tierra. [14] [18] El disipador de calor está conectado directamente al paquete, asegurado mediante tuercas unidas a dos pernos que sobresalen del disipador de calor de tungsteno .

Derivados

Alfa 21064A

Troquelador DEC Alpha 21064A (EV45)

El Alpha 21064A , presentado como DECchip 21064A , con nombre en código EV45 , es un desarrollo posterior del Alpha 21064 presentado en octubre de 1993. Funcionaba a frecuencias de reloj de 200, 225, 233, 275 y 300 MHz. El modelo de 225 MHz fue reemplazado por el modelo de 233 MHz el 6 de julio de 1994, que en el momento de su introducción tenía un precio de 788 dólares EE.UU. en cantidades de 5.000, un 10% menos que el modelo de 225 MHz al que reemplazó. El mismo día, los precios de la banda de 275 MHz también se redujeron en un 25% a 1.083 dólares EE.UU. en cantidades de 5.000 unidades. El modelo de 300 MHz se anunció y se probó el 2 de octubre de 1995 y se envió en diciembre de 1995. También había un modelo, el 21064A-275-PC, que estaba restringido a ejecutar Windows NT o sistemas operativos que utilizan la administración de memoria de Windows NT. modelo.

El 21064A sucedió al 21064 original como microprocesador Alpha de alta gama. Posteriormente se utilizó más en sistemas de alta gama. Usuarios incluidos:

El 21064A tuvo una serie de mejoras de microarquitectura con respecto al 21064. Las cachés primarias se mejoraron de dos maneras: la capacidad de I-cache y D-cache se duplicó de 8 KB a 16 KB y se agregó protección de paridad a la etiqueta de caché y matrices de datos de caché. Las divisiones de punto flotante tienen una latencia más baja debido a un divisor mejorado que retira dos bits por ciclo en promedio. La predicción de rama se mejoró con 4.096 entradas más grandes mediante BHT de 2 bits.

El 21064A contiene 2,8 millones de transistores y mide 14,5 por 10,5 mm, para un área de 152,25 mm 2 . Fue fabricado por Digital en su proceso CMOS de quinta generación, CMOS-5, un proceso de 0,5 μm con cuatro niveles de interconexión de aluminio . [19]

Alfa 21066

El Alpha 21066 , presentado como DECchip 21066 , con nombre en código LCA4 ( Low Cost Alpha ), es una variante de bajo costo de Alpha 21064. Las muestras se introdujeron el 10 de septiembre de 1993, con envíos en volumen a principios de 1994. En el momento de la introducción , el Alpha 21066 de 166 MHz tenía un precio de 385 dólares estadounidenses en cantidades de 5.000 unidades. También existía un modelo de 100 MHz, destinado a sistemas integrados . El muestreo comenzó a finales de 1994, con envíos en volumen en el tercer trimestre de 1995. El Microprocessor Report reconoció al Alpha 21066 como el primer microprocesador con un controlador PCI integrado.

El Alpha 21066 estaba diseñado para su uso en aplicaciones de bajo costo, específicamente computadoras personales con Windows NT . Digital utilizó varios modelos de Alpha 21066 en sus clientes Multia , placas base de fabricante de equipos originales (OEM) AXPpci 33 y computadoras de placa única AXPvme . Fuera de Digital, los usuarios incluyeron Aspen Systems en su estación de trabajo Alpine, Carrera Computers en su estación de trabajo Pantera I, NekoTech usó un modelo de 166 MHz en su computadora personal Mach 1-166 y Parsys en sus supercomputadoras TransAlpha TA9000 Series.

Debido a la reducción del proceso, pudo incluir características que eran deseables en sistemas integrados sensibles a los costos . Estas características incluyen un caché B integrado y un controlador de memoria con soporte ECC , un acelerador de gráficos funcionalmente limitado que admite hasta 8 MB de VRAM para implementar un framebuffer , un controlador PCI y un generador de reloj de bucle de bloqueo de fase (PLL) para multiplicar. una señal de reloj externo de 33 MHz a la frecuencia de reloj interno deseada.

El controlador de memoria admitía de 64 KB a 2 MB de caché B y de 2 a 512 MB de memoria. La implementación de ECC fue capaz de detectar errores de 1, 2 y 4 bits y corregir errores de 1 bit. Para reducir costos, el Alpha 21066 tiene un bus de sistema de 64 bits, lo que redujo la cantidad de pines y, por lo tanto, el tamaño del paquete. El ancho reducido del bus del sistema también redujo el ancho de banda y, por tanto, el rendimiento en un 20%, lo que se consideró aceptable.

El 21066 contenía 1,75 millones de transistores y medía 17,0 por 12,3 mm, para un área de 209,1 mm 2 . Fue fabricado en CMOS-4S, un proceso de 0,675 μm con tres niveles de interconexión. El 21066 estaba empaquetado en un CPGA de 287 pines que medía 57,404 por 57,404 mm.

Alfa 21066A

DEC Alfa 21066A

El Alpha 21066A , cuyo nombre en código es LCA45 , es una variante de bajo costo del Alpha 21064A. Se anunció el 14 de noviembre de 1994 y el mismo día se introdujeron muestras de los modelos de 100 y 233 MHz. Ambos modelos se enviaron en marzo de 1995. Cuando se anunciaron, los modelos de 100 y 233 MHz tenían un precio de 175 y 360 dólares, respectivamente, en cantidades de 5.000. Posteriormente estuvo disponible un modelo de 266 MHz.

El 21066A fue adquirido en segundo lugar por Mitsubishi Electric como M36066A . Fue el primer microprocesador Alpha fabricado por la empresa. Las piezas de 100 y 233 MHz se anunciaron en noviembre de 1994. En el momento del anuncio, las muestras de ingeniería estaban fijadas para diciembre de 1994, las muestras comerciales en julio de 1995 y las cantidades en volumen en septiembre de 1995. La pieza de 233 MHz tenía un precio de 490 dólares en cantidades de 1.000 . [20]

Aunque se basó en el 21064A, el 21066A no tenía cachés de instrucciones y datos de 16 KB. Una característica específica del 21066A era la administración de energía: la frecuencia del reloj interno del microprocesador se podía ajustar mediante software.

Digital utilizó varios modelos de 21066A en sus productos que anteriormente habían utilizado el 21066. Fuera de Digital, Tadpole Technology utilizó un modelo de 233 MHz en su computadora portátil ALPHAbook 1 .

El 21066A contenía 1,8 millones de transistores en una matriz que medía 14,8 por 10,9 mm, para un área de 161,32 mm 2 . Fue fabricado en el proceso CMOS de quinta generación de Digital, CMOS-5, un proceso de 0,5 μm con tres niveles de interconexión. Mitsubishi Electric fabricó el M36066A en su propio proceso de metal de tres niveles de 0,5 μm.

Alfa 21068

El Alpha 21068 , presentado como DECchip 21068 , es una versión del 21066 posicionada para sistemas integrados. Era idéntico al 21066 pero tenía una frecuencia de reloj más baja para reducir la disipación de energía y el costo. Las muestras se introdujeron el 10 de septiembre de 1993 y los envíos en volumen se realizaron a principios de 1994. Funcionaba a 66 MHz y tenía una disipación de potencia máxima de 9 W. En el momento de su introducción, el 21068 tenía un precio de 221 dólares cada uno en cantidades de 5.000. El 6 de junio de 1994, Digital anunció que reduciría el precio en un 16% a 186 dólares EE.UU., a partir del 3 de julio de 1994.

Digital utilizó el Alpha 21068 en su placa base AXPpci 33 y en las computadoras de placa única AXPvme 64 y 64LC .

Alfa 21068A

El Alpha 21068A , presentado como DECchip 21068A , es una variante del Alpha 21066A para sistemas integrados. Funcionó a una frecuencia de reloj de 100 MHz.

Conjuntos de chips

Inicialmente, no existía un chipset estándar para 21064 y 21064A. Las computadoras de Digital utilizaban circuitos integrados de aplicaciones específicas (ASIC) personalizados para conectar el microprocesador con el sistema. Como esto elevaba los costos de desarrollo para terceros que deseaban desarrollar productos basados ​​en Alpha, Digital desarrolló un chipset estándar, el DECchip 21070 ( Apecs ), para fabricantes de equipos originales (OEM).

Había dos modelos del 21070, el DECchip 21071 y el DECchip 21072 . El 21071 estaba destinado a estaciones de trabajo, mientras que el 21072 estaba destinado a estaciones de trabajo de alta gama o servidores monoprocesador de gama baja. Los dos modelos se diferenciaban en las características del subsistema de memoria: el 21071 tiene un bus de memoria de 64 bits y admite de 8 MB a 2 GB de memoria protegida por paridad , mientras que el 21072 tiene un bus de memoria de 128 bits y admite de 16 MB a 4 GB de ECC . memoria protegida.

El conjunto de chips constaba de tres diseños de chip: el controlador de memoria y caché B de COMANCHE , el segmento de datos DECADE y el controlador PCI EPIC. Los chips DECADE implementaron las rutas de datos en segmentos de 32 bits y, por lo tanto, el 21071 tiene dos chips de este tipo, mientras que el 21072 tiene cuatro. El chip EPIC tiene una ruta de 32 bits hacia los chips DECADE.

El 21070 se introdujo el 10 de enero de 1994, [21] con muestras disponibles. Los envíos de volumen comenzaron a mediados de 1994. En cantidades de 5.000, el 21071 tenía un precio de 90 dólares y el 21072 de 120 dólares.

21070 usuarios incluyeron Carrera Computers para sus estaciones de trabajo Pantera y Digital en algunos modelos de sus AlphaStations y AlphaServers monoprocesador .

Ver también

Notas

  1. ^ 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) . Revista Técnica Digital . 4 (4).
  2. ^ Ryan 1994
  3. ^ Corporación de equipos digitales 1996, pag. 2-3–2-4
  4. ^ Corporación de equipos digitales 1996, pag. 2-5
  5. ^ abc McLellan 1993, pag. 42
  6. ^ Dobberpuhl 1992, pág. 37
  7. ^ ab Dobberpuhl 1992, pág. 36
  8. ^ Corporación de equipos digitales 1996, pag. 2-6
  9. ^ Dobberpuhl 1992, págs. 35-36
  10. ^ abc McLellan 1993, pag. 43
  11. ^ a b C Dobberpuhl 1992, pag. 38
  12. ^ Gwennap 1994
  13. ^ McLellan 1993, pág. 44
  14. ^ abcd Dobberpuhl 1992, pag. 35
  15. ^ Bhandarkar 1995, págs. 2-4
  16. ^ Corporación de equipos digitales 1996, pag. 8-3
  17. ^ Corporación de equipos digitales 1996, pag. 8-2
  18. ^ Bhandarkar 1995, pág. 2
  19. ^ Bhandarkar 1995, pág. 3
  20. ^ Krause 1994
  21. ^ Corporación de equipos digitales 1994

Referencias

Otras lecturas