Pentium Pro - Pentium Pro

Pentium Pro
Intel Pentium Pro logo.svg
Información general
Lanzado 1 de noviembre de 1995
Interrumpido Junio ​​de 1998
Fabricante (s) común (es)
Rendimiento
Max. Frecuencia de reloj de la CPU 150 MHz a 200 MHz
Velocidades FSB 60 MHz a 66 MHz
Arquitectura y clasificación
Min. tamaño de la característica 0,35 μm a 0,50 μm
Microarquitectura P6
Conjunto de instrucciones x86
Especificaciones físicas
Núcleos
Enchufe (s)
Historia
Sucesor Pentium II Xeon

El Pentium Pro es un microprocesador x86 de sexta generación desarrollado y fabricado por Intel y presentado el 1 de noviembre de 1995. Introdujo la microarquitectura P6 (a veces denominada i686) y originalmente tenía la intención de reemplazar al Pentium original en una amplia gama de aplicaciones. Mientras que el Pentium y el Pentium MMX tenían 3,1 y 4,5 millones de transistores , respectivamente, el Pentium Pro contenía 5,5 millones de transistores. Más tarde, se redujo a un papel más limitado como servidor y procesador de escritorio de alta gama y se usó en supercomputadoras como ASCI Red , la primera computadora en alcanzar la marca de rendimiento del billón de operaciones de punto flotante por segundo (tera FLOPS ). El Pentium Pro era capaz de configuraciones de procesador doble y cuádruple. Solo venía en un factor de forma, el Socket 8 rectangular relativamente grande . El Pentium Pro fue sucedido por el Pentium II Xeon en 1998.

Microarquitectura

Pentium Pro de 200 MHz con caché L2 de 512 KB en paquete PGA
Pentium Pro de 200 MHz con caché L2 de 1 MB en paquete PPGA .
Pentium Pro sin límite 256 KB
Pentium II Overdrive sin disipador de calor. El núcleo de Deschutes Flip-chip está a la izquierda. La caché de 512 KB está a la derecha.

El arquitecto principal de Pentium Pro fue Fred Pollack, que estaba especializado en superescalaridad y también había trabajado como ingeniero principal de Intel iAPX 432 .

Resumen

El Pentium Pro incorporó una nueva microarquitectura , diferente de la microarquitectura del Pentium P5 . Tiene una arquitectura de superpipelined desacoplada de 14 etapas que utiliza un grupo de instrucciones. El Pentium Pro ( P6 ) presentó muchos conceptos avanzados que no se encuentran en el Pentium, aunque no fue el primer o único procesador x86 en implementarlos (ver NexGen Nx586 o Cyrix 6x86 ). La tubería Pentium Pro tenía etapas de decodificación adicionales para traducir dinámicamente las instrucciones IA-32 en secuencias de microoperaciones almacenadas en búfer que luego podrían analizarse, reordenarse y renombrarse para detectar operaciones paralelizables que se pueden emitir a más de una unidad de ejecución a la vez. Por lo tanto, el Pentium Pro presentaba una ejecución fuera de orden , incluida la ejecución especulativa mediante el cambio de nombre de registros . También tenía un bus de direcciones de 36 bits más amplio , utilizable por Physical Address Extension (PAE), lo que le permitía acceder a hasta 64 GB de memoria.

El Pentium Pro tiene un niño de 8 KB de caché de instrucciones , de la que hasta 16 bytes son descabellada en cada ciclo y se envía a los decodificadores de instrucciones . Hay tres decodificadores de instrucciones. Los decodificadores son desiguales en capacidad: solo uno puede decodificar cualquier instrucción x86, mientras que los otros dos solo pueden decodificar instrucciones x86 simples. Esto restringe la capacidad del Pentium Pro para decodificar múltiples instrucciones simultáneamente, lo que limita la ejecución superescalar. Las instrucciones x86 se decodifican en microoperaciones de 118 bits (microoperaciones). Las microoperaciones tienen un conjunto de instrucciones reducido tipo computadora (RISC); es decir, codifican una operación, dos fuentes y un destino. El decodificador general puede generar hasta cuatro microoperaciones por ciclo, mientras que los decodificadores simples pueden generar una microoperación cada uno por ciclo. Por lo tanto, las instrucciones x86 que operan en la memoria (por ejemplo, agregar este registro a esta ubicación en la memoria) solo pueden ser procesadas por el decodificador general, ya que esta operación requiere un mínimo de tres microoperaciones. Asimismo, los decodificadores simples se limitan a instrucciones que pueden traducirse en un micro-op. Las instrucciones que requieren más microoperaciones que cuatro se traducen con la ayuda de un secuenciador, que genera las microoperaciones necesarias en varios ciclos de reloj. El Pentium Pro fue el primer procesador de la familia x86 en admitir microcódigo actualizable bajo el control de BIOS y / o sistema operativo (SO).

Los microoperativos salen del búfer de reorden (ROB) y entran en una estación de reserva (RS), donde esperan el envío a las unidades de ejecución. En cada ciclo de reloj, se pueden enviar hasta cinco microoperaciones a cinco unidades de ejecución. El Pentium Pro tiene un total de seis unidades de ejecución: dos unidades enteras, una unidad de punto flotante (FPU), una unidad de carga, una unidad de dirección de tienda y una unidad de datos de tienda. Una de las unidades enteras comparte los mismos puertos que la FPU y, por lo tanto, el Pentium Pro solo puede enviar una microoperación entera y una microoperativa de punto flotante, o dos microoperaciones enteras por ciclo, además de microoperaciones. operaciones para las otras tres unidades de ejecución. De las dos unidades enteras, solo la que comparte la ruta con la FPU en el puerto 0 tiene el complemento completo de funciones, como un cambiador de barril , un multiplicador, un divisor y soporte para instrucciones LEA. La segunda unidad entera, que está conectada al puerto 1, no tiene estas funciones y está limitada a operaciones simples como sumar, restar y calcular las direcciones de destino de las sucursales.

La FPU ejecuta operaciones de punto flotante. La suma y la multiplicación se canalizan y tienen una latencia de tres y cinco ciclos, respectivamente. La división y la raíz cuadrada no se canalizan y se ejecutan en unidades separadas que comparten los puertos de la FPU. La división y la raíz cuadrada tienen una latencia de 18-36 y 29-69 ciclos, respectivamente. El número más pequeño es para números de punto flotante de precisión simple (32 bits) y el más grande para números de precisión extendida (80 bits). La división y la raíz cuadrada pueden operar simultáneamente con sumas y multiplicaciones, evitando que se ejecuten solo cuando el resultado debe almacenarse en el ROB.

Después de que se lanzó el microprocesador, se descubrió un error en la unidad de punto flotante , comúnmente llamado "error Pentium Pro y Pentium II FPU" y por Intel como la "errata de banderas". El error ocurre en algunas circunstancias durante la conversión de punto flotante a entero cuando el número de punto flotante no encaja en el formato de entero más pequeño, lo que hace que la FPU se desvíe de su comportamiento documentado. El error se considera menor y se produce en circunstancias tan especiales que muy pocos programas de software, si es que hay alguno, se ven afectados.

Intel utilizó la microarquitectura Pentium Pro P6 de una forma u otra durante más de una década. La tubería escalaría desde su inicio inicial de 150 MHz, hasta 1.4 GHz con el Pentium III "Tualatin" . Los diversos rasgos del diseño continuarían después de eso en el núcleo derivado llamado " Banias " en Pentium M e Intel Core ( Yonah ), que a su vez evolucionaría hacia la microarquitectura Core ( procesador Core 2 ) en 2006 y en adelante.

Conjunto de instrucciones

El Pentium Pro (P6) introdujo nuevas instrucciones en la gama Intel; las instrucciones CMOVxx ('movimiento condicional') pueden mover un valor que es el contenido de un registro o la ubicación de la memoria a otro registro o no, de acuerdo con alguna condición lógica de predicado xx en el registro de banderas, siendo xx un código de predicado de banderas como se indica en la condición de instrucciones de salto condicional. Entonces, por ejemplo, CMOVNE mueve un valor especificado a un registro o no dependiendo de si la condición NE (no igual) es verdadera en el registro de banderas, es decir, bandera Z = 0. Esto permite la evaluación de operaciones if-then-else y, por ejemplo, los ? : operación en C. Estas instrucciones aumentan el rendimiento al permitir evitar costosas instrucciones de salto y bifurcación. En, por ejemplo, CMOVxx destreg1, source_operand2, el primer operando es el registro de destino, el segundo el registro de origen o la ubicación de memoria. Desafortunadamente, el segundo operando no puede ser un valor inmediato (constante en línea) y dicha constante tendría que colocarse primero en un registro. El código de predicado xx puede tomar el rango completo de valores permitido en las ramas condicionales.

Un segundo desarrollo fue la documentación de la instrucción ilegal UD2. Este código de operación está reservado y se garantiza que provocará una excepción de instrucción ilegal en el P6 y en todos los procesadores posteriores. Esto permite a los desarrolladores bloquear fácilmente el programa actual a prueba de futuro cuando el software detecta un error.

Rendimiento

A pesar de ser avanzada para el momento, la arquitectura de cambio de nombre de registros fuera de orden del Pentium Pro tenía problemas para ejecutar código de 16 bits y código mixto ( 8 bits con 16 bits (8/16), o 16 bits con 32 bits (16/32), ya que el uso de registros parciales causa un vaciado frecuente de la canalización. El uso específico de registros parciales era entonces una optimización del rendimiento común, ya que no incurría en ninguna penalización de rendimiento en los procesadores Intel anteriores a P6; además, los sistemas operativos dominantes en el momento de del Pentium Pro liberación eran de 16 bits de DOS , y se mezcla 16/32-bit de Windows 3.1 y Windows 95 (aunque este último requiere una de 32 bits 80386 CPU, gran parte de su código sigue siendo de 16 bits por razones de rendimiento, tales como USER.exe ). Esto, con el alto costo de los sistemas Pentium Pro, condujo a ventas tibias entre los compradores de PC en ese momento. Para utilizar completamente la microarquitectura P6 del Pentium Pro, se necesita un sistema operativo de 32 bits completo, como Windows NT , Linux , Unix u OS / 2. Los problemas de rendimiento en el código heredado fueron mitigados en parte más tarde por el ingenio de Intel h el Pentium II.

En comparación con los microprocesadores RISC, el Pentium Pro, cuando se presentó, superó ligeramente a los microprocesadores RISC más rápidos en rendimiento entero al ejecutar el punto de referencia SPECint95, pero el rendimiento de punto flotante fue significativamente menor, la mitad que el de algunos microprocesadores RISC. La ventaja de rendimiento entero del Pentium Pro desapareció rápidamente, primero superada por MIPS Technologies R10000 en enero de 1996, y luego por la variante EV56 de Digital Equipment Corporation del Alpha 21164 .

Los revisores notaron rápidamente las escrituras muy lentas en la memoria de video como el punto débil de la plataforma P6, con un rendimiento aquí tan bajo como el 10% de un sistema Pentium con reloj idéntico en puntos de referencia como VIDSPEED. Los métodos para evitar esto incluyeron configurar el dibujo VESA en la memoria del sistema en lugar de en la memoria de video en juegos como Quake , y más tarde surgieron utilidades como FASTVID, que podrían duplicar el rendimiento en ciertos juegos al habilitar las funciones de combinación de escritura de la CPU. Los registros de rango de tipo de memoria (MTRR) se configuran automáticamente por los controladores de video de Windows a partir de ~ 1997, y allí el subsistema de memoria / caché mejorado y el rendimiento de la FPU hicieron que superara al reloj por reloj del Pentium en los juegos 3D emergentes de mediados de hasta finales de la década de 1990, especialmente cuando se utiliza NT4. Sin embargo, su falta de implementación de MMX reduce el rendimiento en aplicaciones multimedia que hicieron uso de esas instrucciones.

Almacenamiento en caché

Probablemente, la adición más notable de Pentium Pro fue su caché L2 en el paquete , que oscilaba entre 256 KB en la introducción a 1 MB en 1997. En ese momento, la tecnología de fabricación no permitía de manera factible integrar una caché L2 grande en el núcleo del procesador. Intel, en cambio, colocó el (los) dado (s) L2 por separado en el paquete, lo que aún le permitía funcionar a la misma velocidad de reloj que el núcleo de la CPU. Además, a diferencia de la mayoría de los esquemas de caché basados ​​en placas base que compartían el bus del sistema principal con la CPU, la caché del Pentium Pro tenía su propio bus trasero (llamado bus dual independiente por Intel). Debido a esto, la CPU podría leer la memoria principal y la caché al mismo tiempo, reduciendo en gran medida un cuello de botella tradicional. La caché también era "sin bloqueo", lo que significa que el procesador podía emitir más de una solicitud de caché a la vez (hasta 4), reduciendo las penalizaciones por falta de caché. (Este es un ejemplo de MLP, paralelismo de nivel de memoria ). Estas propiedades se combinaron para producir una caché L2 que era inmensamente más rápida que las cachés basadas en placa base de los procesadores más antiguos. Este caché por sí solo le dio a la CPU una ventaja en el rendimiento de entrada / salida sobre las CPU x86 más antiguas . En configuraciones de multiprocesador, la caché integrada de Pentium Pro se disparó el rendimiento en comparación con las arquitecturas que tenían cada CPU compartiendo una caché central.

Sin embargo, esta caché L2 mucho más rápida tuvo algunas complicaciones. La disposición de "caché en el paquete" del Pentium Pro era única. El procesador y la caché estaban en troqueles separados en el mismo paquete y conectados estrechamente por un bus de velocidad completa. Los dos o tres troqueles tenían que unirse al principio del proceso de producción, antes de que fuera posible la prueba. Esto significó que una sola y pequeña falla en cualquiera de los troqueles hizo necesario desechar todo el ensamblaje, lo cual fue una de las razones del rendimiento de producción relativamente bajo y el alto costo del Pentium Pro. Todas las versiones del chip eran caras, particularmente aquellas con 1024 KB, ya que requería dos matrices de caché de 512 KB, así como la matriz de procesador.

Modelos disponibles

Las velocidades de reloj del Pentium Pro eran 150, 166, 180 o 200 MHz con un reloj de bus externo de 60 o 66 MHz . Algunos usuarios optaron por overclockear sus chips Pentium Pro, con la versión de 200 MHz a menudo a 233 MHz, la versión de 180 MHz a 200 MHz y la versión de 150 MHz a 166 MHz. El chip era popular en configuraciones de multiprocesamiento simétrico, siendo comunes las configuraciones de estaciones de trabajo y servidores SMP duales y cuádruples.

En el esquema "Familia / Modelo / Pasos" de Intel, el Pentium Pro es de la familia 6, modelo 1, y su código de producto Intel es 80521.

Reloj

(Megahercio)

Autobús

(Megahercio)

L2

Cache

(KB)

Max

TDP

(W)

150 60 256 29,2
166 66 512 35
180 60 256 31,7
200 66 35
512 37,9
1024 44

Fabricación

El proceso utilizado para fabricar la matriz del procesador Pentium Pro y su matriz de memoria caché separada cambió, lo que llevó a una combinación de procesos utilizados en el mismo paquete:

  • El prototipo del procesador Pentium Pro de 133 MHz se fabricó en un proceso BiCMOS de 0,6 μm.
  • La matriz del procesador Pentium Pro de 150 MHz se fabricó en un proceso BiCMOS de 0,50 μm .
  • La matriz del procesador Pentium Pro de 166, 180 y 200 MHz se fabricó en un proceso BiCMOS de 0,35 μm.
  • La matriz de caché L2 de 256 KB se fabricó en un proceso BiCMOS de 0,50 μm.
  • La matriz de caché L2 de 512 y 1024 KB se fabricó en un proceso BiCMOS de 0,35 μm.

embalaje

El Pentium Pro (hasta 512 KB de caché) está empaquetado en un módulo cerámico de múltiples chips (MCM). El MCM contiene dos cavidades en la parte inferior en las que residen el microprocesador y su compañero de memoria caché. Los troqueles están adheridos a un tapón de calor, cuya parte superior expuesta ayuda a que el calor de los troqueles se transfiera más directamente al aparato de enfriamiento, como un disipador de calor. Los troqueles se conectan al paquete mediante uniones de alambre convencionales. Las cavidades están tapadas con una placa de cerámica.

El Pentium Pro con 1 MB de caché utiliza un MCM de plástico. En lugar de dos cavidades, solo hay una, en la que residen las tres matrices, adheridas al paquete en lugar de un tapón de calor. Las cavidades se rellenan con epoxi.

El MCM tiene 387 pines, de los cuales aproximadamente la mitad están dispuestos en una matriz de cuadrícula de pines (PGA) y la mitad en una matriz de cuadrícula de pines intersticial (IPGA). El embalaje fue diseñado para Socket 8 .

Actualizar rutas

En 1998, se lanzó el procesador Pentium II Overdrive de 300/333 MHz para Socket 8. Con 512 KB de caché de velocidad completa, fue producido por Intel como una opción de actualización directa para los propietarios de sistemas Pentium Pro. Sin embargo, solo admitía multiprocesamiento bidireccional sin pegamento, no de cuatro vías o superior, lo que no lo convirtió en una actualización utilizable para sistemas de cuatro procesadores. Estos procesadores Pentium II Xeon especialmente empaquetados se utilizaron para actualizar ASCI Red , que se convirtió en la primera computadora en alcanzar la marca de rendimiento de teraFLOPS con el procesador Pentium Pro y luego la primera en superar los 2 teraFLOPS después de la actualización a procesadores Pentium II Xeon.

A medida que las placas base Slot 1 se volvieron frecuentes, varios fabricantes lanzaron adaptadores de slocket , como el Tyan M2020, Asus C-P6S1, Tekram P6SL1 y Abit KP6. Los slockets permitieron que los procesadores Pentium Pro se usaran con las placas base de la ranura 1. El conjunto de chips Intel 440FX admitía explícitamente los procesadores Pentium Pro y Pentium II, pero los conjuntos de chips Intel 440BX y la ranura 1 posterior no admitían explícitamente el Pentium Pro, por lo que los slockets del Socket 8 no tuvieron un uso generalizado. Los Slockets, en forma de adaptadores Socket 370 a Slot 1, vieron una renovada popularidad cuando Intel introdujo los procesadores Socket 370 Celeron y Pentium III .

Especificaciones principales

Pentium Pro

  • Caché L1 : 8, 8 KB (datos, instrucciones)
  • Caché L2 : 256, 512 KB (una matriz) o 1024 KB (dos matrices de 512 KB) en un módulo de varios chips sincronizados a la velocidad de la CPU
  • Zócalo: Zócalo 8
  • Bus frontal : 60 y 66 MHz
  • VCore: 3,1–3,3 V
  • Fabricación: 0,50 μm o 0,35 BiCMOS
  • Frecuencia de reloj: 150, 166, 180, 200 MHz (capaz de 233 MHz en algunas placas base)
  • Primera versión: noviembre de 1995

Pentium II Overdrive

  • Caché L1: 16, 16 KB (datos + instrucciones)
  • Caché L2: chip externo de 512 KB en el módulo de la CPU sincronizado a la velocidad de la CPU
  • Zócalo: Zócalo 8
  • Multiplicador: bloqueado en 5 ×
  • Bus frontal: 60 y 66 MHz
  • VCore: 3,1–3,3 V (tiene regulador de voltaje integrado)
  • Fabricación: 0,25 μm
  • Frecuencia de reloj: Basado en la generación de Deschutes Pentium II
  • Primer lanzamiento: 1997
  • Soporta tecnología MMX

Capacidades de bus y multiprocesador

El Pentium Pro usó señalización GTL + en su bus frontal. El Pentium Pro podría usarse solo en diseños de hasta cuatro vías. También se construyeron computadoras Pentium Pro de ocho vías, pero estas usaban múltiples buses.

El diseño del bus Pentium Pro fue influenciado por Futurebus , el bus Intel iAPX 432 y elementos del bus Intel i960 . Futurebus ha sido concebido como un bus avanzado para reemplazar el VMEbus utilizado con el Motorola 68000 desde finales de la década de 1970, pero se estancó en el comité de estandarización durante más de una década si se cuentan todos los giros y vueltas. La iniciativa iAPX 432 de Intel también fue un fracaso comercial, pero en el proceso aprendieron cómo construir un bus de transacciones divididas para soportar un sistema multiprocesador sin caché. El i960 había desarrollado aún más el bus iAPX 432 de transacción dividida para incluir un protocolo de coherencia de caché, terminando con un conjunto de características que recuerda mucho a las ambiciones originales de Futurebus.

El arquitecto principal del i960 fue el especialista en superescalaridad Fred Pollack, quien también fue el ingeniero principal del Intel iAPX 432 y el arquitecto principal del chip i686, el Pentium Pro. Sin duda, estaba íntimamente familiarizado con toda esta historia. El Pentium Pro fue diseñado para incluir el bus coherente de caché de transacciones divididas SMP de 4 vías como una característica obligatoria de cada chip producido. Esto también sirvió para denegar el acceso de la competencia al socket para producir procesadores clonados.

Si bien el Pentium Pro no tuvo éxito como una máquina para las masas, debido al pobre soporte de 16 bits para Windows 95, tuvo un gran éxito en el espacio del servidor de archivos debido a su avanzado diseño de bus integrado, introduciendo muchas características avanzadas que tenían anteriormente solo estaba disponible en el segmento de estaciones de trabajo costosas en el mercado de productos básicos.

Pentium Pro / competidores de sexta generación

Ver también

Referencias

enlaces externos