thumb|right|Cuatro microprocesadores Alpha 21164 de 300 MHz en una placa de procesamiento Cray T3E-600.

El Alpha 21164, también conocido por su nombre en código EV5, es un microprocesador desarrollado y fabricado por Digital Equipment Corporation que implementaba el conjunto de instrucciones Alpha (ISA, "instruction set architecture"). Fue lanzado en enero de 1995, sucediendo al Alpha 21064A como microprocesador insignia de Digital. Fue sucedido por el Alpha 21264 en 1998.

Historia

El primer Alpha 21164 fue producido en febrero de 1994, y los sistemas operativos OpenVMS, Digital UNIX y Windows NT arrancaron exitosamente en él. Las muestras se entregaron a fines de 1994 y en enero de 1995 se introdujo la versión de 266MHz. La versión de 300MHz fue introducida en marzo de 1995. El Alpha 21164 final, una versión de 333MHz, fue anunciado el 2 de octubre de 1995, disponible en cantidades de muestra. El 21164 fue reemplazado como microprocesador insignia de Digital por el Alpha 21164A en 1996 cuando la versión de 400MHz estuvo disponible en grandes cantidades.

Usuarios

Digital usó el Alpha 21164 operando a varias frecuencias de reloj en sus servidores AlphaServer y estaciones de trabajo AlphaStation. Digital también usó el Alpha 21164 en sus computadoras de una sola placa Alpha VME 5/352 y Alpha VME 5/480 y en las placas madre AlphaPC 164 y AlphaPC 164LX. Cray Research, copartícipe del Alpha, usaba el Alpha 21164 de 300MHz en su supercomputadora T3E-600. Otros fabricantes como DeskStation también fabricaron workstations usando el 21164.

Rendimiento

El 21164 continuó liderando las prestaciones del Alpha 21064A a 275MHz hasta la aparición del Intel Pentium Pro en noviembre de 1995, cuando la versión de 200MHz superó al 21164 de 300MHz en el conjunto de pruebas benchmark SPECint95. El 21164 se mantuvo como líder en el rendimiento de coma flotante. La introducción del 21164 de 333MHz el año siguiente superó al Pentium Pro, pero más tarde fue superado por el MIPS Technologies R10000 y por el Hewlett-Packard PA-8000 en el mismo año.Gwennap 1996

Descripción

El Alpha 21164 es un microprocesador superescalar de cuatro unidades de ejecución capaz de realizar un máximo de cuatro instrucciones por ciclo de reloj para las cuatro unidades de ejecución: dos enteross y dos de coma flotante. La unidad de enteros es de siete etapas, y la de coma flotante de diez etapas. El 21164 implementaba una dirección virtual de 43bit y una dirección física de 40bit. Por lo tanto podía direccionar 8TiB de memoria virtual y 1TiB de memoria física.

Unidad de enteros

La unidad de enteros consistía de dos líneas o unidades de ejecución y el banco de registros de enteros. Las dos unidades, la de suma y la de multiplicación no eran idénticas, cada una era responsable de ejecutar diferentes instrucciones, aunque ambas podían ejecutar las instrucciones comunes suma, carga, comparar y mover condicional. La unidad de multiplicación ejecutaba exclusivamente desplazamiento, almacenamiento y multiplicación (en un multiplicador no segmentado o sin etapas). La unidad de suma exclusivamente ejecutaba instrucciones de salto.

Excepto para saltos, las instrucciones de mover condicional y multiplicación, todas las otras instrucciones que comenzaban y finalizaban la ejecución durante la etapa (o segmento) cinco tenían un ciclo de latencia. Las instrucciones de mover condicional y multiplicación, eran ejecutadas en la etapa seis para poder ser enviadas a una instrucción de comparación cuyo resultado dependía de aquellas.

El banco de registro de enteros contenía cuarenta registros de 64bit, de los cuales treinta y dos eran específicos de la Arquitectura Alpha y ocho eran usados por el PALcode como una memoria de corto plazo. El banco de registros tenía cuatro puertos de lectura y dos de escritura divididos en partes iguales entre las dos unidades de enteros.Bowhill et al., "Circuit implementation of a 300-MHz 64-bit second-generation CMOS Alpha CPU", p. 124.

Unidad de coma flotante

La unidad de coma flotante consistía de dos unidades de ejecución de coma flotante y el banco de registros de coma flotante. Las unidades no eran idénticas, una ejecutaba todas las instrucciones de coma flotante excepto las de multiplicar, y la otra ejecutaba sólo las instrucciones de multiplicación. Un divisor no segmentado de coma flotante estaba conectado a la unidad de suma. Todas las instrucciones de coma flotante excepto las de dividir tenían una latencia de cuatro ciclos. Dividir tenía una latencia variable que dependía si la operación se realizaba con números de coma flotante de simple o doble precisión y a los números en sí mismos. Incluyendo la superposición, la división de simple precisión tiene una latencia de 15 a 31ciclos, mientras que la doble precisión tiene una latencia de 22 a 60ciclos.

Caché

El 21164 tiene tres niveles de caché, una integrada en el microprocesador, y otra externa opcional. Las cachés y las lógicas asociadas están formadas por 7,2millones de transistores.Bowhill et al., "Circuit implementation of a 300-MHz 64-bit second-generation CMOS Alpha CPU", p. 111.

La caché primaria está dividida en dos, la caché para instrucciones y la caché para datos, llamadas caché-I y caché-D respectivamente. Tienen un tamaño de 8KiB, mapeo directo, y una línea de caché de 32bytes. La caché-D es de doble puerto, para mejorar el rendimiento, y es implementada duplicando la caché. Utiliza políticas write-through y asignación en lectura.

La caché secundaria, conocida como caché-S, está integrada en el microprocesador y tiene una capacidad de 96KiB. Una caché integrada como la utilizada por el 21164 requiere más ancho de banda que la que puede proveer una caché secundaria externa, para poder se alimentada con suficientes datos e instrucciones.Gwennap, "Digital Leads the Pack with 21164", p. 1. La caché requiere dos ciclos para acceder debido a su gran superficie. Para mejorar el rendimiento, la caché está implementada en forma de conducto. Otro beneficio de una caché secundaria integrada es que puede ser fácilmente implementada como una caché de múltiples conductos, resultando en una caché asociativa de tres formas distintas, ofreciendo un flujo mejorado con respecto a las cachés de mapeo directo.Gwennap, "Digital Leads the Pack with 21164", pp. 1–2. La caché-S, debido la gran superficie física que requiere, fue implementada en dos mitades, las cuales rodean la I-box, E-box, F-box y la M-box. Se hizo para que la caché pueda devolver datos en dos ciclos.

La caché terciaria, conocida como caché-B, está implementada con SRAMs externas. La caché-B es opcional y algunos sistemas que usan el Alpha 21164 no tienen ninguna. La caché-B puede tener una capacidad de 1 a 64MiB, no se soportan capacidades menores debido a que son inútiles para la caché-S.Gwennap, "Digital Leads the Pack with 21164". Utiliza políticas write-through y asignación en lectura. La caché-B está controlada por una lógica de interface externa integrada en el microprocesador, al contrario que el 21064, el cual requiere un controlador de caché externo. La caché-B puede ser construida con SRAM sincrónica o asincrónica, y se accede por medio del bus del sistema.

Interfaz externa

La interfaz externa es un bus de sistema de 128bit. El bus de sistema opera a una frecuencia de reloj de 3 a 15veces más lenta que la frecuencia interna, o 20 a 100 MHz con una frecuencia interna de 300 MHz. La señal de reloj del bus de sistema es generada por el microprocesador.

Reloj

La frecuencia de reloj interna es generada dividiendo una señal de reloj externa por dos. Por lo tanto, el Alpha 21164 requiere un reloj externo con una frecuencia igual al doble de la frecuencia interna deseada, p.e., 600MHz para el Alpha 21164 de 300MHz.

Fabricación

EL Alpha 21164 contiene 9,3millones de transistores en una matriz de 16,5 por 18,1 mm (299 mm²), la cual está cerca del límite máximo del proceso de fabricación. La matriz está fabricada con tecnología CMOS de quinta generación de Digital, el CMOS-5, un proceso de 0,5 µm con cinco capas de interconexión de aluminio.Bowhill, et al., "Circuit implementation of a 300-MHz 64-bit second-generation CMOS Alpha CPU", pp. 100–101. El 21164 trabaja con 3,3V y disipa 46 W a 266MHz, 51 W a 300 MHz y 56 W a 333 MHz.

Encapsulado

El Alpha 21164 utiliza encapsulado cerámico IPGA de 499pines y mide 57,4 por 57,4 mm. El encapsulado posee un conductor de calor con dos postes que permiten acoplar el disipador de calor.

Derivados Alpha 21164 (EV56) thumb|right|Un microprocesador Alpha 21164 (EV56) 500 MHz El Alpha 21164 fue la base para un desarrollo posterior con el nombre en código EV56. Fue introducido como el Alpha 21164, pero originalmente fue conocido como el Alpha 21164A. Opera a una frecuencia de reloj de 366, 433, 500, 533, 600 y 666MHz.Alpha 21164 Microprocessor Data Sheet, August 1998, p. 113.Digital Semiconductor 21164 Alpha Microprocessor Product Brief, 31 March 1997, p. 2.

Historia

Fue descrito por primera vez en octubre de 1995 en el Microprocessor Forum. El 13 de noviembre de 1995, Digital anunció que las muestras podrían entregarse a fin de mes. La primera versión trabajaba a 366MHz, introducida en 1996. El 8 de julio de 1996 Digital anunció que estaba disponible una versión de 433MHz y una de 500MHz en septiembre de 1996. La versión de 433MHz tenía un precio de $1492 por unidad en cantidades de 1000. La versión de 600MHz fue introducida el 31 de marzo de 1997, disponible en grandes cantidades. Samsung Electronics firmó un contrato con Digital en junio de 1996 como segundo fabricante del Alpha 21164A y la compañía fue la única en fabricar el modelo de 666MHz. Las muestras de 366 a 500MHz fueron introducidas el 11 de noviembre de 1996, y disponible en grandes cantidades en 1997. El Alpha 21164A fue fabricado en las plantas de Hudson, Massachusetts de Digital y en la de Kihueng, Corea del Sur de Samsung.

Los usuarios del Alpha 21164A incluían a Cray Research, Digital, Network Appliance (ahora NetApp) y DeskStation. Cray Research usaba los Alpha 21164As de 450, 600 y 675MHz en los últimos modelos de su supercomputadora T3E. Digital usaba el Alpha 21164A de varias frecuencias de reloj es sus AlphaServers, AlphaStations, workstations Celebris XL y Digital Personal Workstations. NetApp usaba los Alpha 21164A de 400, 500 y 600MHz en sus sistemas de almacenamiento. DeskStation usaba el Alpha 21164A en sus workstations Raptor Reflex.

Descripción

El cambio más notable era la inclusión del Byte Word Extensions (BWX), una extensión a la Arquitectura Alpha diseñada para mejorar el acceso de bytes y palabras. Estas instrucciones eran ejecutadas en un conducto múltiple. El Alpha 21164A contenía 9,66millones de transistores en una matriz de 14,4 mm por 14,5 mm, para un área de 209 mm².Bouchard, "Design objectives of the 0.35 µm Alpha 21164 Microprocessor", p. 3, 5. Digital fabricó la matriz usando su proceso CMOS de sexta generación, el CMOS-6 de 0,35 µm con cuatro capas de interconexión. Samsung utilizaba su proceso de 0,35 µm con cuatro capas de 1996. El Alpha 21164A era alimentado con 3,3V, disipando 31W a 366MHz, 36W a 433MHz, 41W a 500MHz, 43,5W a 533MHz y 48,5W a 600MHz.

Alpha 21164PC (PCA56)

El Alpha 21164PC, también conocido como PCA56, es una versión de bajo costo del Alpha 21164A introducida el 17 de marzo de 1997. El microprocesador fue desarrollado en forma conjunta por Digital y Mitsubishi Electric Corporation, y ambas compañías lo fabricaron. Mitsubishi luego suspendió el acuerdo de desarrollo conjunto con Alpha para futuros procesadores Alpha a principios de 1998 y dejó de fabricar el Alpha 21164PC a mediados de 1998, saliendo del mercado de Alpha debido a las condiciones económicas del mercado de la compañía.Foremski, "Mitsubishi steps back from Alpha".Foremski, "Mitsubishi Electric stops Alpha microprocessor manufacture".