De Wikipedia, la enciclopedia libre
Ir a navegaciónSaltar a buscar
HP PA-8000

El PA-8000 (PCX-U), cuyo nombre en código es Onyx , es un microprocesador desarrollado y fabricado por Hewlett-Packard (HP) que implementó la arquitectura de conjunto de instrucciones PA-RISC 2.0 (ISA). [1] Era un diseño completamente nuevo sin circuitos derivados de microprocesadores PA-RISC anteriores. El PA-8000 se introdujo el 2 de noviembre de 1995 cuando comenzaron los envíos a los miembros de la Organización Precision RISC (PRO). [2] Fue utilizado exclusivamente por miembros de PRO y no se vendió en el mercado comercial. Todos los procesadores posteriores PA-8x00 (PA-8200 a PA-8900, descritos más adelante) se basan en el núcleo del procesador PA-8000 básico.

El PA-8000 fue utilizado por:

  • HP en sus estaciones de trabajo y servidores HP 9000
  • NEC en su servidor TX7 / P590
  • Stratus Computer en sus servidores tolerantes a fallas Continuum

Descripción

El PA-8000 es una de cuatro vías superescalar microprocesador que ejecuta las instrucciones fuera de orden y de manera especulativa . [1] [3] Estas características no se encontraron en implementaciones anteriores de PA-RISC, lo que convierte al PA-8000 en la primera CPU PA-RISC en romper la tradición de usar microarquitecturas simples e implementación de alta frecuencia de reloj para lograr rendimiento. [4]

Unidad de recuperación de instrucciones

El PA-8000 tiene un front-end de cuatro etapas. Durante las dos primeras etapas, la unidad de búsqueda de instrucciones (IFU) extrae cuatro instrucciones del caché de instrucciones. [4] La IFU contiene el contador de programa , la tabla de historial de sucursales (BHT), la caché de direcciones de destino de sucursales (BTAC) y un búfer de búsqueda de traducción de cuatro entradas (TLB). [1] [4] El TLB se utiliza para traducir direcciones virtuales a direcciones físicas para acceder a la caché de instrucciones. En el caso de un error de TLB, la traducción se solicita al TLB principal. [1]

Predicción de rama

El PA-8000 realiza predicciones de ramas utilizando métodos estáticos o dinámicos. [1] El método que utilizó el PA-8000 fue seleccionado por un bit en cada entrada de TLB. La predicción estática considera la mayoría de las ramas hacia atrás como tomadas y las hacia adelante como no tomadas. La predicción estática también predijo el resultado de las ramas examinando las sugerencias codificadas en las instrucciones mismas por el compilador. [1] [4]

La predicción dinámica utiliza el historial registrado de una rama para decidir si se toma o no. Un BHT de 256 entradas es donde se almacena esta información. Cada entrada BHT es un registro de desplazamiento de tres bits . El PA-8000 usó un algoritmo de voto mayoritario, se toma una rama si la mayoría de los tres bits están configurados y no se toma si están claros. [1] Una rama mal predicha provoca una penalización de cinco ciclos. [4] El BHT se actualiza cuando se conoce el resultado de la rama. Aunque el PA-8000 puede ejecutar dos instrucciones de bifurcación por ciclo, solo se registra uno de los resultados ya que el BHT no tiene puerto dual para simplificar su implementación. [3]

El PA-8000 tiene una burbuja de dos ciclos para las ramas predichas correctamente, ya que la dirección de destino de la rama debe calcularse antes de enviarse a la caché de instrucciones. [4] Para reducir la aparición de esta burbuja, el PA-8000 utiliza un BTAC totalmente asociativo de 32 entradas. El BTAC almacena en caché la dirección de destino de una sucursal. Cuando se encuentra la misma rama y se predice como tomada, la dirección se envía a la caché de instrucciones inmediatamente, lo que permite que la búsqueda comience sin demora. [1]

Para maximizar la eficacia del BTAC, solo se almacena en caché el destino de la rama de las ramas tomadas de forma prevista. Si se predice que una rama no se ha tomado, pero su dirección de destino se almacena en caché en el BTAC, su entrada se elimina. En el caso de que el BTAC esté lleno y sea necesario escribir una nueva entrada, la entrada que se reemplaza se selecciona mediante una política de reemplazo por turnos. [1]

Caché de instrucciones

La caché de instrucciones es externa y admite una capacidad de 256 KB a 4 MB. Las instrucciones se predescodifican antes de ingresar a la caché agregando cinco bits a cada instrucción. Estos bits reducen la cantidad de tiempo necesario para decodificar la instrucción más adelante en la canalización. La caché de instrucciones se asigna directamente para evitar la complejidad de las cachés asociativas de conjuntos y se accede a través de un bus de 148 bits. Las etiquetas de la caché también son externas. Está construido a partir de SRAM síncronos (SSRAM).

Decodificar y el búfer de reordenar instrucciones

Durante la tercera etapa, se decodifican las instrucciones. En la cuarta etapa, se colocan en el búfer de reorden de instrucciones (IRB). El propósito del IRB es el cambio de nombre del registro de implementos, la ejecución fuera de orden, la ejecución especulativa y proporcionar un lugar temporal para almacenar los resultados hasta que se retiren las instrucciones. El IRB determina qué instrucciones se emiten durante la etapa cinco.

El IRB consta de dos búferes, uno para instrucciones enteras y de punto flotante y el otro para instrucciones de carga y almacenamiento. Algunas instrucciones se colocan en ambos búferes. Estas instrucciones son instrucciones de bifurcación y ciertas instrucciones del sistema. Cada búfer tiene 28 entradas. Cada búfer puede aceptar hasta cuatro instrucciones por ciclo y puede emitir hasta dos por ciclo a sus unidades funcionales.

Ejecución

Todas las instrucciones comienzan a ejecutarse durante la etapa seis en las diez unidades funcionales. Las instrucciones de números enteros, excepto para multiplicar, se ejecutan en dos unidades lógicas aritméticas (ALU) y dos unidades de cambio / fusión. Todas las instrucciones ejecutadas en estas unidades tienen una latencia de ciclo único y sus resultados se escriben en el registro de destino en la etapa siete.

Las instrucciones de coma flotante y las instrucciones de multiplicación de enteros se ejecutan en dos unidades fusionadas de multiplicación y acumulación (FMAC) y dos unidades de división / raíz cuadrada. Las unidades FMAC están canalizadas y tienen una latencia de tres ciclos. La multiplicación se realiza durante la etapa seis, la adición en la etapa siete, el redondeo en la etapa ocho y la reescritura en la etapa nueve. No hay redondeo entre las etapas de multiplicar y acumular. Las unidades FMAC también ejecutan multiplican individual y añadir instrucciones, que también tienen una latencia de tres ciclos tanto de precisión simple y de doble precisiónvariantes. Las unidades de división / raíz cuadrada no están canalizadas y tienen una latencia de 17 ciclos. Se les puede enviar una instrucción por ciclo de reloj debido a las limitaciones del puerto de registro, pero pueden operar en paralelo entre sí y con las unidades FMAC.

Las instrucciones de almacenamiento y carga de enteros y de coma flotante se ejecutan mediante dos sumadores de direcciones dedicados.

Búfer de búsqueda de traducción

El búfer de búsqueda de traducción (TLB) contiene 96 entradas y es de doble puerto y completamente asociativo. Puede traducir dos direcciones virtuales por ciclo. Este TLB traduce direcciones tanto para instrucciones como para datos. Cuando falla el TLB de la IFU, este TLB proporciona la traducción. La traducción de cargas y almacenes tiene mayor prioridad que la de instrucciones. Cada entrada de TLB se puede asignar a una página con un tamaño entre 4 KB y 16 MB, en incrementos que son potencias de cuatro.

Caché de datos

El PA-8000 tiene una caché de datos con una capacidad de hasta 4 MB. La caché de datos tiene dos puertos, por lo que se pueden realizar dos lecturas o escrituras durante cada ciclo. Tiene un puerto dual implementando dos bancos de caché, por lo que no es realmente un puerto dual porque si dos lecturas o escrituras hacen referencia al mismo banco, surge un conflicto y solo se puede realizar una operación. Se accede a él mediante dos buses de 64 bits, uno para cada banco. Las etiquetas de caché son externas. Hay dos copias de las etiquetas de caché para permitir accesos independientes en cada banco. La caché de datos se asigna directamente por las mismas razones que la caché de instrucciones. Está construido a partir de SSRAM.

Autobús de pista

La interfaz externa es el bus de pista , una dirección de 64 bits y un bus multiplexado de datos. El PA-8000 utiliza una dirección física de 40 bits , por lo que puede direccionar 1 TB de memoria física .

Físico

El PA-8000 tiene 3,8 millones de transistores y mide 17,68 mm por 19,10 mm, [5] para un área de 337,69 mm 2 . Fue fabricado por HP en su proceso CMOS-14C, una contracción de puerta del 10% del proceso CMOS-14. [4] El proceso de CMOS-14C era una, de cinco niveles 0,5 m de interconexión de aluminio , de metal-óxido-semiconductor complementario de proceso (CMOS). El dado tiene 704 protuberancias de soldadura para señales y 1200 para alimentación o tierra. Está empaquetado en una matriz de rejilla de tierra de cerámica de alúmina con chip flip de 1,085 almohadillas (LGA). [6] El PA-8000 utiliza una fuente de alimentación de 3,3 V.

PA-8200

El PA-8200 (PCX-U +), cuyo nombre en código es Vulcan , fue un desarrollo posterior del PA-8000. Los primeros sistemas que utilizaron el PA-8200 estuvieron disponibles en junio de 1997. El PA-8200 operó de 200 a 240 MHz y compitió principalmente con el Alpha 21164 . Se realizaron mejoras en la predicción de ramas y el TLB. [3] [7]La predicción de rama se mejoró cuadruplicando el número de entradas BHT a 1.024, lo que requirió el uso de un algoritmo de dos bits para encajar sin rediseñar los circuitos circundantes; y mediante la implementación de una cola de escritura que permitió que el BHT registrara dos resultados de rama en lugar de uno. El número de entradas de TLB se aumentó de 96 a 120, lo que redujo las pérdidas de TLB. La frecuencia del reloj también se mejoró mediante un pequeño rediseño del circuito. El dado del PA-8200 era idéntico en tamaño al PA-8000 ya que las mejoras utilizaron áreas vacías del dado. Fue fabricado en el proceso CMOS-14C.

PA-8500

HP PA-8500

El PA-8500 (PCX-W), cuyo nombre en código es Barracuda , es un desarrollo posterior del PA-8200. Se eliminó a principios de 1998 y se introdujo a finales de 1998 dentro de los sistemas. Las versiones de producción operaron a frecuencias de 300 a 440 MHz, pero fueron diseñadas y han operado hasta 500 MHz. [8] Las mejoras más notables son las frecuencias operativas más altas y la integración en la matriz de los cachés primarios. [9] Las frecuencias operativas más altas y la integración de las memorias caché primarias en el mismo dado que el núcleo fue posible gracias a la migración a un proceso de 0,25 μm. El núcleo PA-8500 medía 10,8 mm por 11,4 mm (123,12 mm 2) en el nuevo proceso, menos de la mitad del área del PA-8200 de 0,5 μm. Esto puso a disposición un área que podría usarse para integrar las cachés.

El PA-8500 tiene una caché de instrucciones de 512 KB y una caché de datos de 1 MB. Otras mejoras a la microarquitectura incluyen un BHT más grande que contiene 2048 entradas, el doble de la capacidad de los PA-8200 y un TLB más grande que contiene 160 entradas. El PA-8500 utiliza una nueva versión del autobús Runway . La nueva versión opera a 125 MHz y transfiere datos tanto en los flancos ascendentes como descendentes de la señal del reloj (velocidad de datos doble o DDR) y produce 240 MT / so 2 GB / s de ancho de banda. Como el bus de la pista se utiliza para transferir direcciones y datos, el ancho de banda utilizable es el 80% del de 2 GB / s, o alrededor de 1,6 GB / s.

El PA-8500 contiene 140 millones de transistores y mide 21,3 mm por 22,0 mm (468,6 mm 2 ). [8] Fue fabricado por Intel Corporation en un proceso CMOS de 0,25 μm con cinco niveles de interconexión de aluminio. Utiliza una fuente de alimentación de 2,0 V. HP no fabricó el PA-8500 por sí mismo, ya que había dejado de actualizar sus fábricas para implementar un proceso más nuevo que CMOS-14C, que se utilizó para fabricar microprocesadores PA-RISC anteriores.

El PA-8500 se empaquetó en una matriz de cuadrícula terrestre (LGA) de 544 plataformas más pequeña, ya que la integración de las cachés primarias en el troquel resultó en la eliminación de los dos buses de 128 bits que se comunicaban con las cachés externas y sus E / S asociadas. almohadillas.

PA-8600

HP PA-8600

El PA-8600 (PCX-W +), cuyo nombre en código Landshark , es un desarrollo adicional del PA-8500 introducido en enero de 2000. El PA-8600 estaba previsto que se introdujera a mediados de 2000. [10] Era una versión modificada del PA-8500 para permitirle alcanzar frecuencias de reloj más altas de 480 a 550 MHz. Se mejoró la microarquitectura mediante el uso de una política de desalojo de uso casi mínimo reciente (LRU) para la memoria caché de instrucciones. Fue fabricado por Intel.

PA-8700

Un microprocesador HP PA-8700

El PA-8700 (PCX-W2), cuyo nombre en código Piranha , es un desarrollo posterior del PA-8600. Introducido en agosto de 2001, operaba de 625 a 750 MHz. Las mejoras fueron la implementación de la captación previa de datos, una política de reemplazo de cuasi-LRU para la caché de datos y un espacio de direcciones físicas de 44 bits más grande para abordar 16 TB de memoria física. [11] El PA-8700 también tiene cachés de instrucciones y datos más grandes, con una capacidad aumentada en un 50% a 0,75 MB y 1,5 MB, respectivamente. El PA-8700 fue fabricado por IBM Microelectronics [12] en un proceso CMOS de silicio sobre aislante (SOI) de 0,18 μm con siete niveles de interconexión de cobre y dieléctrico bajo en kappa .

PA-8700 +

El PA-8700 + fue un desarrollo adicional del PA-8700 introducido en los sistemas a mediados de 2002. Operó a 875 MHz. [12]

PA-8800

El PA-8800, cuyo nombre en código es Mako , es un desarrollo posterior del PA-8700. [13] Fue introducido en 2004 y fue utilizado por HP en su estación de trabajo C8000 y servidores HP 9000 Superdome . Estaba disponible en 0.8, 0.9 y 1.0 GHz. El PA-8800 era un diseño de doble núcleo que constaba de dos microprocesadores PA-8700 + modificados en una sola matriz. Cada núcleo tiene una caché de instrucciones de 768 KB y una caché de datos de 768 KB. Los cachés primarios son más pequeños que los del PA-8700 para permitir que ambos núcleos quepan en el mismo dado.

Las mejoras sobre el PA-8700 son una predicción de rama mejorada y la inclusión de una caché secundaria unificada externa de 32 MB. La caché secundaria tiene un ancho de banda de 10 GB / sy una latencia de 40 ciclos. Es asociativo de 4 vías, indexado físicamente y etiquetado físicamente con un tamaño de línea de 128 bytes. La asociatividad de conjuntos se eligió para reducir el número de pines de E / S. La caché L2 se implementa con el uso de cuatro chips SRAM mejorados (ESRAM) de sistemas de memoria mejorada de 72 Mbit (9 MB), que a pesar de su nombre, es una implementación de 1T-SRAM : memoria dinámica de acceso aleatorio (DRAM) con una interfaz similar a SRAM . El acceso a esta caché por cada núcleo es arbitrado por el controlador en la matriz y el 1 MB de etiquetas de caché secundaria también reside en la matriz como SRAM y está protegido por ECC. El PA-8800 usó el mismobus frontal como el microprocesador McKinley Itanium , que produce 6,4 GB / s de ancho de banda y es compatible con los conjuntos de chips Itanium de HP como el zx1 .

Constaba de 300 millones de transistores, de los cuales 25 millones eran para lógica, en una matriz de 23,6 mm por 15,5 mm (365,8 mm 2 ). [13] Fue fabricado por IBM en un proceso SOI de 0,13 μm con interconexiones de cobre y dieléctrico de bajo κ . El PA-8800 está empaquetado en una matriz de rejilla de bola de cerámica montada en una placa de circuito impreso (PCB) con los cuatro ESRAM, formando un módulo similar a los utilizados por los primeros microprocesadores Itanium.

PA-8900

El PA-8900, cuyo nombre en código es Shortfin , fue un derivado del PA-8800. Fue el último microprocesador PA-RISC que se desarrolló y se introdujo el 31 de mayo de 2005 cuando se pusieron a disposición los sistemas que utilizan el microprocesador. Se utilizó en los servidores HP 9000 y el C8000puesto de trabajo. Operó a 0.8, 0.9, 1.0 y 1.1 GHz. No es un encogimiento del PA-8800, como se rumoreaba anteriormente. La caché L2 se duplicó en capacidad a 64 MB, tiene una latencia más baja y una mejor detección y corrección de errores en las cachés. Utiliza el bus del sistema McKinley y era compatible con los conjuntos de chips Itanium 2, como el HP zx1. No hubo cambios en la microarquitectura, pero la unidad de punto flotante y los circuitos de caché en la matriz se rediseñaron para reducir el consumo de energía, y cada núcleo posteriormente disipó aproximadamente 35 W a 1.0 GHz.

Notas

  1. ^ a b c d e f g h i Hunt 1995
  2. ^ "HP anuncia lanzamiento de PA-8000 a socios PRO".
  3. ^ a b c Scott 1997
  4. ^ a b c d e f g Gwennap 1994
  5. ^ Gaddis 1996 , p. 1697
  6. ^ Kumar, "La CPU RISC HP PA-8000"
  7. ^ Gwennap 1996
  8. ↑ a b Barnes, 1999
  9. ^ Gwennap 1997
  10. ^ Wermer, "El procesador HP PA-8600 antes de enviarse de lo esperado".
  11. ^ Krewell 2000
  12. ^ a b ComputerWire 2002
  13. ↑ a b Johnson , 2001 , p. 1

Referencias

  • Barnes, Phillip (26 de febrero de 1999). "Una CPU RISC de 64 bits a 500 MHz con 1,5 Mbyte en caché de chip". Actas de la Conferencia Internacional de Circuitos de Estado Sólido .
  • ComputerWire (28 de junio de 2002). "HP preparando el PA-8800 de doble núcleo" . El registro .
  • Gaddis, N .; Lotz, J. (noviembre de 1996). "Un microprocesador CMOS RISC de cuatro problemas de 64 b". IEEE Journal of Solid-State Circuits 31 (11): págs. 1697-1702.
  • Gwennap, Linley (14 de noviembre de 1994). "PA-8000 combina complejidad y velocidad". Informe del microprocesador , volumen 8, número 15.
  • Gwennap, Linley (28 de octubre de 1996). "HP bombea a la familia PA-8x00". Informe del microprocesador , volumen 10, número 14.
  • Gwennap, Linley (17 de noviembre de 1997). "El caché de 1,5 M de PA-8500 mejora el rendimiento". Informe del microprocesador .
  • Hewlett-Packard Company (2 de noviembre de 1995). HP anuncia el lanzamiento de PA-8000 a sus socios PRO . ( Comunicado de prensa )
  • Hill, J. Michael y Lachman, Jonathan (2000). "Una caché de 900MHz 2.25MByte con CPU en chip - Ahora en SOI / Cu" . 2000 Conferencia Internacional de Circuitos de Estado Sólido .
  • Hunt, D. (1995). "Funciones de rendimiento avanzadas del PA-8000 de 64 bits". Actas de CompCon . págs. 123-128.
  • Johnson, David JC (16 de octubre de 2001). "Procesador Mako de HP". 2001 Foro de microprocesadores .
  • Krewell, Kevin (22 de mayo de 2000). "HP amplía PA-RISC con 8700". Informe del microprocesador .
  • Kumar, Ashok (19 de agosto de 1996). "La CPU RISC HP PA-8000" . Actas de Hot Chips VIII .
  • Lesartre, Greg; Hunt, Doug (1997). "PA-8500: la continua evolución de la familia PA-8000". Actas de CompCon .
  • Pountain, Dick (julio de 1995). "HP Speedy RISC". Byte .
  • Scott, Anne P. y col. (Agosto de 1997). "Procesadores PA-RISC superescalares de cuatro vías". Diario de Hewlett-Packard .
  • Tsai, Li C. (16 de febrero de 2001). "Un procesador PA-RISC de 1GHz". Congreso Internacional de Circuitos de Estado Sólido .
  • Wermer, Sandra (8 de marzo de 1999). "El procesador HP PA-8600 se enviará antes de lo esperado". HOISe .

Lectura adicional

  • Burch, C. (1997). "PA-8000: un caso de estudio en predicción de ramas estáticas y dinámicas". Actas de la Conferencia Internacional sobre Diseño de Computadoras . págs. 97-105.
  • Gaddis, NB y col. (1996). "Un búfer de reorden de instrucciones de 56 entradas". Recopilación de artículos técnicos de la ISSCC . págs. 212-213, 447.
  • Heikes, C .; Colon-Bonet, G. (1996). "Un coprocesador de punto flotante dual con una arquitectura FMAC". Recopilación de artículos técnicos de la ISSCC . págs. 354–355, 472.
  • Kumar, A. (marzo de 1997). "La CPU RISC HP PA-8000". IEEE Micro . págs. 27–32.
  • Lotz, J. y col. (1996). "Una CPU RISC de cuatro problemas fuera de servicio". Recopilación de artículos técnicos de la ISSCC . págs. 210-211, 446.
  • Naffzinger, S. (1996). "Un diseño de sumador de sub-nanosegundos 0,5 μm 64 b". Recopilación de artículos técnicos de la ISSCC . págs. 362–363.
  • Procesador PA-8000 PA-RISC OpenPA.net
  • Procesador PA-8200 PA-RISC OpenPA.net
  • Procesador PA-8500 PA-RISC OpenPA.net
  • PA-8600 Procesador PA-RISC OpenPA.net
  • PA-8700 Procesador PA-RISC OpenPA.net
  • PA-8800 Procesador PA-RISC OpenPA.net
  • Procesador PA-8900 PA-RISC OpenPA.net