Articulo de referencia

PA-8000

Un microprocesador HP PA-8000 El PA-8000 (PCX-U), con nombre en clave Onyx , es un microprocesador desarrollado y fabricado por Hewlett-Packard (HP) que implementaba la arquitec...

Un microprocesador HP PA-8000

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

El PA-8000 fue utilizado por:

Descripción

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

Unidad de obtenció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) obtiene cuatro instrucciones de la caché de instrucciones. [ 5 ] La IFU contiene el contador de programa , la tabla de historial de bifurcaciones (BHT), la caché de direcciones de destino de bifurcación (BTAC) y un búfer de traducción anticipada (TLB) de cuatro entradas . [ 1 ] [ 5 ] El TLB se utiliza para traducir direcciones virtuales a direcciones físicas para acceder a la caché de instrucciones. En caso de fallo del TLB, se solicita la traducción al TLB principal. [ 1 ]

Predicción de ramificaciones

El PA-8000 realiza la predicción de bifurcaciones mediante métodos estáticos o dinámicos. [ 1 ] El método utilizado por el PA-8000 se seleccionaba mediante un bit en cada entrada de la TLB. La predicción estática considera la mayoría de las bifurcaciones hacia atrás como tomadas y las bifurcaciones hacia adelante como no tomadas. La predicción estática también predice el resultado de las bifurcaciones examinando las sugerencias codificadas en las propias instrucciones por el compilador. [ 1 ] [ 5 ]

La predicción dinámica utiliza el historial registrado de una bifurcación para decidir si se toma o no. Esta información se almacena en una tabla BHT de 256 entradas. Cada entrada de la BHT es un registro de desplazamiento de tres bits . El PA-8000 utilizaba un algoritmo de votación por mayoría: una bifurcación se toma si la mayoría de los tres bits están activados y no se toma si están desactivados. [ 1 ] Una bifurcación mal predicha provoca una penalización de cinco ciclos. [ 5 ] La BHT se actualiza cuando se conoce el resultado de la bifurcación. Aunque el PA-8000 puede ejecutar dos instrucciones de bifurcación por ciclo, solo se registra uno de los resultados, ya que la BHT no tiene doble puerto para simplificar su implementación. [ 4 ]

El PA-8000 tiene una burbuja de dos ciclos para las bifurcaciones predichas correctamente, ya que la dirección de destino de la bifurcación debe calcularse antes de enviarla a la caché de instrucciones. [ 5 ] Para reducir la aparición de esta burbuja, el PA-8000 utiliza una BTAC totalmente asociativa de 32 entradas. La BTAC almacena en caché la dirección de destino de una bifurcación. Cuando se encuentra la misma bifurcación y se predice que se tomará, 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 efectividad del BTAC, solo se almacena en caché el destino de las ramas que se predice que se tomarán. Si se predice que una rama no se tomará, pero su dirección de destino está almacenada en caché en el BTAC, su entrada se elimina. En 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 rotativa. [ 1 ]

caché de instrucciones

La caché de instrucciones es externa y admite una capacidad de 256  KB a 4  MB. Las instrucciones se predecodifican antes de entrar en la caché añadiendo cinco bits a cada una. Estos bits reducen el tiempo necesario para decodificar la instrucción posteriormente en la tubería. La caché de instrucciones utiliza mapeo directo para evitar la complejidad de las cachés asociativas por conjuntos y se accede a ella mediante un bus de 148 bits. Las etiquetas de la caché también son externas. Está construida con memorias SRAM síncronas (SSRAM).

Decodificar y el búfer de reordenamiento de instrucciones

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

El IRB consta de dos búferes: uno para instrucciones de enteros y coma flotante, y otro para instrucciones de carga y almacenamiento. Algunas instrucciones se almacenan en ambos búferes. Estas instrucciones son las de salto y ciertas instrucciones del sistema. Cada búfer tiene 28 entradas. Cada búfer puede recibir hasta cuatro instrucciones por ciclo y emitir hasta dos por ciclo a sus unidades funcionales.

Ejecución

Todas las instrucciones comienzan su ejecución durante la sexta etapa en las diez unidades funcionales. Las instrucciones de enteros, excepto la multiplicación, se ejecutan en dos unidades aritmético-lógicas (ALU) y dos unidades de desplazamiento/fusión. Todas las instrucciones ejecutadas en estas unidades tienen una latencia de un ciclo y sus resultados se escriben en el registro de destino en la séptima etapa.

Las instrucciones de punto flotante y las instrucciones de multiplicación de enteros se ejecutan en dos unidades de multiplicación-acumulación fusionadas (FMAC) y dos unidades de división/raíz cuadrada. Las unidades FMAC están segmentadas y tienen una latencia de tres ciclos. La multiplicación se realiza durante la etapa seis, la suma en la etapa siete, el redondeo en la etapa ocho y la escritura en la etapa nueve. No hay redondeo entre las etapas de multiplicación y acumulación. Las unidades FMAC también ejecutan instrucciones individuales de multiplicación y suma, que también tienen una latencia de tres ciclos tanto para las variantes de precisión simple como de doble precisión . Las unidades de división/raíz cuadrada no están segmentadas y tienen una latencia de 17 ciclos. Debido a las limitaciones de los puertos de registro, solo se puede emitir una instrucción a cada una de ellas por ciclo de reloj, pero pueden operar en paralelo entre sí y con las unidades FMAC.

Las instrucciones de carga y almacenamiento, tanto de números enteros como de números de coma flotante, son ejecutadas por dos sumadores de direcciones dedicados.

Búfer de búsqueda lateral de traducción

El búfer de traducción anticipada (TLB) contiene 96 entradas, es de doble puerto y totalmente asociativo. Puede traducir dos direcciones virtuales por ciclo. Este TLB traduce direcciones tanto para instrucciones como para datos. Cuando el TLB de la IFU falla, este TLB proporciona la traducción. Las traducciones para cargas y almacenamientos tienen mayor prioridad que las de las instrucciones. Cada entrada del TLB se puede asignar a una página con un tamaño de 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 es de doble puerto, por lo que se pueden realizar dos lecturas o escrituras durante cada ciclo. Su doble puerto se implementa mediante dos bancos de caché, por lo que no es realmente de doble puerto, ya que si dos lecturas o escrituras hacen referencia al mismo banco, surge un conflicto y solo se puede realizar una operación. Se accede a ella 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 es de mapeo directo por las mismas razones que la caché de instrucciones. Está construida con SSRAM.

Autobús de pista

La interfaz externa es el bus Runway , un bus multiplexado de datos y direcciones de 64 bits. 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

Un microprocesador HP PA-8000 (vista superior e inferior)

El PA-8000 tiene 3,8 millones de transistores y mide 17,68  mm por 19,10  mm, [ 6 ] para un área de 337,69  mm 2 . Fue fabricado por HP en su proceso CMOS-14C, una reducción de puerta del 10% del proceso CMOS-14. [ 5 ] El proceso CMOS-14C era un proceso de semiconductor de óxido metálico complementario (CMOS) de interconexión de aluminio  de cinco niveles de 0,5 μm . El chip 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 (LGA) flip chip de 1085 almohadillas . [ 7 ] El PA-8000 utiliza una fuente de alimentación de 3,3 V. 

PA-8200

Un microprocesador HP PA-8200

El PA-8200 (PCX-U+), con nombre en clave 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 operaba a 200 a 240  MHz y competía principalmente con el Alpha 21164. Se realizaron mejoras en la predicción de bifurcaciones y la TLB. [ 4 ] [ 8 ] La predicción de bifurcaciones se mejoró cuadruplicando el número de entradas BHT a 1024, lo que requirió el uso de un algoritmo de dos bits para que encajara 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 bifurcación en lugar de uno. El número de entradas TLB se incrementó de 96 a 120, lo que redujo los fallos de TLB. La frecuencia del reloj también se mejoró mediante un rediseño menor del circuito. El chip del PA-8200 tenía el mismo tamaño que el del PA-8000, ya que las mejoras aprovechaban las áreas vacías del chip. Se fabricó mediante el proceso CMOS-14C.

PA-8500

Un microprocesador HP PA-8500 (vista superior e inferior)

El PA-8500 (PCX-W), con nombre en clave Barracuda , es un desarrollo posterior del PA-8200. Su fabricación se realizó a principios de 1998 y se introdujo a finales de 1998 en sistemas. Las versiones de producción operaban a frecuencias de 300 a 440  MHz, pero fue diseñado para operar, y de hecho operó, hasta 500  MHz. [ 9 ] Las mejoras más notables son las frecuencias de operación más altas y la integración en el chip de las cachés primarias. [ 10 ] Las frecuencias de operación más altas y la integración de las cachés primarias en el mismo chip que el núcleo fueron posibles gracias a la migración a un  proceso de 0,25 μm. El núcleo del 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 liberó área que pudo utilizarse 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 en la microarquitectura incluyen una BHT más grande con 2048 entradas, el doble de la capacidad del PA-8200, y una TLB más grande con 160 entradas. El PA-8500 utiliza una nueva versión del bus Runway . Esta nueva versión opera a 125  MHz y transfiere datos en los flancos ascendente y descendente de la señal de reloj (velocidad de datos doble o DDR), lo que proporciona un ancho de banda de 240  MT/s o 2  GB/s. Dado que el bus Runway se utiliza para transferir direcciones y datos, el ancho de banda útil es el 80 % de los 2  GB/s, es decir, alrededor de 1,6  GB/s.

El PA-8500 contiene 140 millones de transistores y mide 21,3  mm x 22,0  mm (468,6  mm² ) . [ 9 ] 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, ya que había dejado de actualizar sus fábricas para implementar un proceso más reciente que el CMOS-14C, que se utilizó para fabricar los microprocesadores PA-RISC anteriores.

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

PA-8600

Un microprocesador HP PA-8600

El PA-8600 (PCX-W+), con nombre en clave Landshark , es un desarrollo posterior del PA-8500 presentado en enero de 2000. El PA-8600 estaba previsto para mediados de 2000. [ 11 ] Era una versión modificada del PA-8500 para permitirle alcanzar frecuencias de reloj más altas de 480 a 550  MHz. Mejoró la microarquitectura mediante el uso de una política de desalojo de la caché de instrucciones basada en el método de los menos usados ​​recientemente (LRU). Fue fabricado por Intel.

PA-8700

Un microprocesador HP PA-8700

El PA-8700 (PCX-W2), con nombre en clave Piranha , es un desarrollo posterior del PA-8600. Introducido en agosto de 2001, operaba a 625 a 750  MHz. Las mejoras fueron la implementación de la precarga de datos, una política de reemplazo cuasi-LRU para la caché de datos y un espacio de direcciones físicas de 44 bits más grande para direccionar 16  TB de memoria física. [ 12 ] 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 [ 13 ] en un proceso CMOS de silicio sobre aislante  (SOI) de 0,18 μm con siete niveles de interconexión de cobre y dieléctrico de baja κ .

PA-8700+

El PA-8700+ fue un desarrollo posterior del PA-8700 introducido en sistemas a mediados de 2002. Operaba a 875  MHz. [ 13 ]

PA-8800

Un microprocesador HP PA-8800
Módulo de CPU PA-8000 con cuatro memorias ESRAM.

El PA-8800, con nombre en clave Mako , es un desarrollo posterior del PA-8700. [ 14 ] Fue presentado en 2004 y fue utilizado por HP en su estación de trabajo C8000 y servidores HP 9000 Superdome . Estaba disponible a 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 un solo chip. Cada núcleo tiene una  caché de instrucciones de 768 KB y una  caché de datos de 768 KB. Las cachés primarias son más pequeñas que las del PA-8700 para permitir que ambos núcleos quepan en el mismo chip.

Las mejoras con respecto al PA-8700 incluyen una predicción de bifurcaciones optimizada y la incorporación de una  caché secundaria unificada externa de 32 MB. Esta caché secundaria ofrece un ancho de banda de 10  GB/s y una latencia de 40 ciclos. Es asociativa por conjuntos de 4 vías, indexada físicamente y etiquetada físicamente con un tamaño de línea de 128 bytes. La asociatividad por conjuntos se eligió para reducir el número de pines de E/S. La caché L2 se implementa mediante cuatro chips ESRAM (Enhanced Memory Systems Enhanced SRAM) de 72  Mbit (9 MB), que, a pesar de su nombre, es una implementación de 1T-SRAM ( memoria de acceso aleatorio dinámico [DRAM]) con una interfaz similar a la SRAM. El acceso a esta caché por cada núcleo está gestionado por el controlador integrado, y el MB de etiquetas de caché secundaria también reside en el chip como SRAM y está protegido por ECC. El PA-8800 utilizaba el mismo bus frontal que el microprocesador McKinley Itanium , que proporciona un ancho de banda de 6,4 GB/s, y es compatible con los chipsets Itanium de HP , como el zx1.   

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

PA-8900

Un microprocesador HP PA-8900
Módulo de CPU PA-8000 con cuatro memorias ESRAM.

El PA-8900, con nombre en clave Shortfin , era una variante del PA-8800. Fue el último microprocesador PA-RISC desarrollado y se presentó el 31 de mayo de 2005, cuando los sistemas que lo utilizaban estuvieron disponibles. Se empleó en los servidores HP 9000 y en la estación de trabajo C8000. Operaba a 0,8, 0,9, 1,0 y 1,1  GHz. No se trata de una reducción del tamaño del chip del PA-8800, como se rumoreó anteriormente. La caché L2 duplicó su capacidad a 64  MB, presentaba menor latencia y mejoraba la detección y corrección de errores en las cachés. Utilizaba el bus del sistema McKinley y era compatible con chipsets Itanium 2 como el HP zx1. No hubo cambios en la microarquitectura, pero la unidad de punto flotante y el circuito de caché en el chip se rediseñaron para reducir el consumo de energía, y cada núcleo disipaba posteriormente aproximadamente 35 W a 1,0  GHz.

Notas

  1. 1 2 3 4 5 6 7 8 9 Caza 1995
  2. "HP anuncia el lanzamiento del PA-8000 para socios PRO".
  3. Cooper, Kevin (22 de julio de 2008). "Actualización de rendimiento de MPE/iX 7.5 y HP e3000 PA-8700" (PDF) . HP . Consultado el 3 de julio de 2024 .
  4. 1 2 3 Scott 1997
  5. 1 2 3 4 5 6 7 Gwennap 1994
  6. Gaddis 1996 , pág. 1697
  7. Kumar, "La CPU RISC HP PA-8000"
  8. Gwennap 1996
  9. 1 2 Barnes 1999
  10. Gwennap 1997
  11. Wermer, "El procesador PA-8600 de HP se enviará antes de lo previsto".
  12. Krewell 2000
  13. 1 2 ComputerWire 2002
  14. 1 2 Johnson 2001 , pág. 1

Referencias

  • Barnes, Phillip (26 de febrero de 1999). "Una CPU RISC de 64 bits y 500 MHz con 1,5 Mbytes de caché en el chip". Actas de la Conferencia Internacional de Circuitos de Estado Sólido .
  • ComputerWire (28 de junio de 2002). "HP prepara el PA-8800 de doble núcleo" . The Register .
  • Gaddis, N.; Lotz, J. (noviembre de 1996). "Un microprocesador RISC CMOS de cuatro emisoras y 64 bits". 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". Microprocessor Report , volumen 8, número 15.
  • Gwennap, Linley (28 de octubre de 1996). "HP impulsa la familia PA-8x00". Microprocessor Report , volumen 10, número 14.
  • Gwennap, Linley (17 de noviembre de 1997). "La caché de 1,5 MB del PA-8500 mejora el rendimiento". Microprocessor Report .
  • Hewlett-Packard Company (2 de noviembre de 1995). HP anuncia el lanzamiento del PA-8000 para sus socios PRO . ( Comunicado de prensa )
  • Hill, J. Michael y Lachman, Jonathan (2000). "Una caché de 2,25 MByte a 900 MHz con CPU en chip: ahora en SOI/Cu" . Conferencia Internacional de Circuitos de Estado Sólido de 2000 .
  • Hunt, D. (1995). "Características de rendimiento avanzadas del PA-8000 de 64 bits". Actas de CompCon . págs. 123-128 .
  • Johnson, David JC (16 de octubre de 2001). "El procesador Mako de HP". Foro de microprocesadores de 2001 .
  • Krewell, Kevin (22 de mayo de 2000). "HP amplía PA-RISC con el 8700". Microprocessor Report .
  • 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). "El RISC rápido de HP". Byte .
  • Scott, Anne P. et al. (agosto de 1997). "Procesadores PA-RISC superescalares de cuatro vías". Hewlett-Packard Journal .
  • Tsai, Li C. (16 de febrero de 2001). "Un procesador PA-RISC de 1 GHz". Conferencia Internacional de Circuitos de Estado Sólido .
  • Wermer, Sandra (8 de marzo de 1999). "El procesador PA-8600 de HP se enviará antes de lo previsto". HOISe .

Lecturas adicionales

  • Burch, C. (1997). "PA-8000: un estudio de caso en predicción de bifurcaciones estáticas y dinámicas". Actas de la Conferencia Internacional sobre Diseño de Computadoras . págs.  97-105 .
  • Gaddis, NB et al. (1996). "Un búfer de reordenamiento de instrucciones de 56 entradas". ISSCC Digest of Technical Papers . pp.  212 213, 447.
  • Heikes, C.; Colon-Bonet, G. (1996). "Un coprocesador de punto flotante dual con una arquitectura FMAC". ISSCC Digest of Technical Papers . pp.  354 355, 472.
  • Kumar, A. (marzo de 1997). "La CPU RISC HP PA-8000". IEEE Micro . págs.  27-32 .
  • Lotz, J. et al. (1996). "Una CPU RISC de cuatro emisiones fuera de orden". ISSCC Digest of Technical Papers . pp.  210 211, 446.
  • Naffzinger, S. (1996). "Diseño de un sumador de 64 b de 0,5 μm y subnanosegundos". ISSCC Digest of Technical Papers . pp.  362 363.
  • Procesador PA-8000 PA-RISC OpenPA.net
  • Procesador PA-8200 PA-RISC OpenPA.net
  • Procesador PA-8500 PA-RISC OpenPA.net
  • Procesador PA-8600 PA-RISC OpenPA.net
  • Procesador PA-8700 PA-RISC OpenPA.net
  • Procesador PA-8800 PA-RISC OpenPA.net
  • Procesador PA-8900 PA-RISC OpenPA.net