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 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]

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 caso de que falte una TLB, la traducción se solicita a la TLB principal. [1]

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 uno de los resultados se registra 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]


HP PA-8000
HP PA-8500
HP PA-8600
Un microprocesador HP PA-8700