El POWER1 es una CPU multichip desarrollada y fabricada por IBM que implementa la arquitectura del conjunto de instrucciones (ISA) POWER . Originalmente se conocía como CPU RISC System/6000 o, en su forma abreviada, CPU RS/6000 , antes de que la introducción de sucesores obligara a reemplazar el nombre original por uno que utilizara el mismo esquema de nomenclatura (POWER n ) que sus sucesores para diferenciarlo de los diseños más nuevos.
Historia
El POWER1 se presentó en 1990, junto con los servidores IBM RS/6000 POWERserver y las estaciones de trabajo POWERstation , que incorporaban el POWER1 con frecuencias de reloj de 20, 25 o 30 MHz . El POWER1 recibió dos actualizaciones: una en 1991, con la introducción del POWER1+, y otra en 1992, con la del POWER1++. Estas versiones mejoradas tenían frecuencias de reloj superiores a las del POWER1 original, gracias a la mejora de los procesos de fabricación de semiconductores . El POWER1+ tenía frecuencias ligeramente superiores a las del POWER1 original, de 25, 33 y 41 MHz, mientras que el POWER1++ llevó la microarquitectura a sus frecuencias más altas: 25, 33, 41,6, 45, 50 y 62,5 MHz. En septiembre de 1993, el POWER1 y sus variantes fueron reemplazados por el POWER2 (conocido brevemente como "RIOS2"), una evolución de la microarquitectura del POWER1.
Los derivados directos del POWER1 son el RISC Single Chip (RSC), una variante de un solo chip con funciones reducidas para sistemas RS/6000 de gama básica, y el RAD6000 , una variante del RSC resistente a la radiación para aplicaciones espaciales. Un derivado indirecto del POWER1 es el PowerPC 601 , una variante del RSC con funciones reducidas destinada a aplicaciones de consumo.
El POWER1 es notable porque representó varios hitos para IBM y la informática en general. Fue el primer procesador RISC de IBM diseñado para aplicaciones de gama alta (el ROMP se consideró un fracaso comercial y no se utilizó en estaciones de trabajo de gama alta), fue el primero en implementar la entonces nueva arquitectura del conjunto de instrucciones POWER y fue el primer procesador RISC exitoso de IBM. En cuanto a primicias informáticas, el POWER1 sería conocido por ser la primera CPU en implementar algún tipo de renombramiento de registros y ejecución fuera de orden , una técnica que mejora el rendimiento de los procesadores superescalares pero que anteriormente estaba reservada para las computadoras centrales .
El POWER1 fue también el origen de las exitosas familias de procesadores POWER , PowerPC y Power ISA que le siguieron, con cientos de implementaciones diferentes.
El compilador de código abierto GCC eliminó la compatibilidad con POWER1 (RIOS) y POWER2 (RIOS2) en la versión 4.5. [ 1 ]
Microarquitectura
El POWER1 es una CPU superscalar bidireccional de 32 bits . Contiene tres unidades de ejecución principales: una unidad de punto fijo (FXU), una unidad de bifurcación (BPU) y una unidad de punto flotante (FPU). Aunque el POWER1 es una CPU de 32 bits con una dirección física de 32 bits , su dirección virtual tiene una longitud de 52 bits. Se eligió un espacio de direcciones virtuales más amplio porque resultaba beneficioso para el rendimiento de las aplicaciones, permitiendo que cada una tuviera un amplio rango de direcciones de 4 GB .
El POWER1 es una CPU big-endian que utiliza una jerarquía de caché estilo Harvard con cachés de instrucciones y datos separadas. La caché de instrucciones, denominada "I-cache" por IBM, tiene un tamaño de 8 KB y es asociativa por conjuntos de dos vías con un tamaño de línea de 64 bytes. La I-cache se encuentra en el chip ICU. La caché de datos, denominada "D-cache" por IBM, tiene un tamaño de 32 KB para configuraciones RIOS.9 y de 64 KB para configuraciones RIOS-1. La D-cache es asociativa por conjuntos de cuatro vías con un tamaño de línea de 128 bytes. La D-cache emplea un esquema de almacenamiento diferido, donde los datos que se van a almacenar se escriben en la caché en lugar de en la memoria para reducir el número de escrituras destinadas a la memoria. El esquema de almacenamiento diferido se utiliza para evitar que la CPU monopolice el acceso a la memoria.
Aunque el POWER1 era un diseño de gama alta, no era capaz de realizar multiprocesamiento , lo que le suponía una desventaja, ya que la única forma de mejorar su rendimiento era aumentando la frecuencia de reloj de la CPU, algo difícil de lograr con un diseño multichip tan grande. IBM utilizó la agrupación en clústeres para superar esta desventaja en los sistemas POWER1, permitiéndoles funcionar como si fueran sistemas multiprocesamiento, un concepto que quedó demostrado por la popularidad del IBM RS/6000 SP basado en el POWER1. Dado que el POWER1 fue la base de los microprocesadores POWER2 y P2SC , la falta de multiprocesamiento se transmitió a estos procesadores POWER posteriores. El multiprocesamiento no se implementó hasta la introducción del POWER3 en 1998.
Descripción física



El POWER1 es una CPU multichip construida a partir de chips separados conectados entre sí mediante buses. El POWER1 consta de una unidad de caché de instrucciones (ICU), una unidad de punto fijo (FXU), una unidad de punto flotante (FPU), varias unidades de caché de datos (DCU), una unidad de control de almacenamiento (SCU) y una unidad de E/S . Gracias a su diseño modular, IBM pudo crear dos configuraciones simplemente variando el número de DCU: RIOS-1 y RIOS.9 . La configuración RIOS-1 tiene cuatro DCU, la cantidad prevista, y funcionaba a una frecuencia de hasta 40 MHz, mientras que la CPU RIOS.9 tenía dos DCU y funcionaba a frecuencias más bajas.
Los chips se montan en la placa de circuito impreso (PCB) del procesador , utilizando tecnología de orificios pasantes. Debido a la gran cantidad de chips con buses anchos , la PCB cuenta con ocho planos para el enrutamiento de cables: cuatro para alimentación y tierra, y cuatro para señales. Dos de los planos de señal se ubican a cada lado de la placa, mientras que los cuatro planos de alimentación y tierra se encuentran en el centro.
Los chips que componen el POWER1 se fabrican mediante un proceso CMOS de 1,0 μm con tres capas de interconexión. Se presentan en encapsulados CPGA ( Ceramic Pin Grid Array ) con capacidad para hasta 300 pines y una disipación máxima de calor de 4 W cada uno. El número total de transistores del POWER1, en su configuración RIOS-1, es de 6,9 millones, de los cuales 2,04 millones se utilizan para lógica y 4,86 millones para memoria. El área total de los chips es de 1284 mm² . El número total de pines de señal es de 1464.
Papas fritas
Unidad de caché de instrucciones (UCI)
La ICU contiene la caché de instrucciones, denominada "I-cache" por IBM, y la unidad de procesamiento de bifurcaciones (BPU). La BPU contiene el contador de programa , el registro de código de condición y un registro de bucle. La ICU contiene 0,75 millones de transistores , de los cuales 0,2 millones se utilizan para la lógica y 0,55 millones para la SRAM . El chip de la ICU mide aproximadamente 160 mm² (12,7 × 12,7 mm).
La BPU era capaz de enviar múltiples instrucciones a las colas de instrucciones de punto fijo y flotante mientras ejecutaba una instrucción de control de flujo del programa (hasta cuatro simultáneamente y fuera de orden). También admitía saltos especulativos mediante el uso de un bit de predicción en las instrucciones de salto, descartando los resultados antes de guardarlos si el salto no se ejecutaba. La instrucción alternativa se almacenaba en búfer y se descartaba si el salto se ejecutaba. En consecuencia, las llamadas a subrutinas y las interrupciones se gestionaban sin incurrir en penalizaciones por salto.
El registro de código de condición tiene ocho conjuntos de campos, los dos primeros reservados para instrucciones de punto fijo y flotante, y el séptimo para instrucciones vectoriales . El resto de los campos pueden ser utilizados por otras instrucciones. El registro de bucle es un contador para bucles de "decremento y salto al llegar a cero" sin penalización por salto, una característica similar a la que se encuentra en algunos DSP como el TMS320C30.
Unidad de punto fijo (UFF)
La FXU es responsable de decodificar y ejecutar todas las instrucciones de punto fijo y las instrucciones de carga y almacenamiento de punto flotante. Para la ejecución, la FXU contiene el archivo de registros de punto fijo de POWER1, una unidad aritmético-lógica (ALU) para instrucciones generales y una unidad dedicada de multiplicación y división de punto fijo. También contiene búferes de instrucciones que reciben instrucciones de punto fijo y flotante de la ICU, pasando las instrucciones de punto flotante a la FPU, y una D- TLB asociativa bidireccional de 128 entradas para la traducción de direcciones. La FXU contiene aproximadamente 0,5 millones de transistores, de los cuales 0,25 millones se utilizan para lógica y 0,25 millones para memoria, en un chip de aproximadamente 160 mm² .
Unidad de punto flotante (FPU)
La unidad de punto flotante del POWER1 ejecuta las instrucciones de punto flotante emitidas por la ICU. La FPU está segmentada y puede ejecutar instrucciones de precisión simple (32 bits) y doble (64 bits). Es capaz de realizar operaciones de multiplicación y suma , lo que contribuyó al alto rendimiento de punto flotante del POWER1. En la mayoría de los procesadores, una multiplicación y una suma, comunes en el código técnico y científico de punto flotante, no pueden ejecutarse en un solo ciclo, como sí ocurre en el POWER1. El uso de operaciones combinadas de multiplicación y suma también implica que los datos se redondean solo una vez, lo que mejora ligeramente la precisión del resultado.
El archivo de registros de punto flotante también se encuentra en el chip FPU. Contiene 32 registros de punto flotante de 64 bits, seis registros de cambio de nombre y dos registros que se utilizan para las instrucciones de división.
Unidad de caché de datos (DCU)
El POWER1 cuenta con una caché de datos de 64 KB implementada mediante cuatro unidades de caché de datos (DCU) idénticas, cada una con 16 KB de caché. La caché y los buses que conectan las DCU con los demás chips están protegidos con ECC. Las DCU también proporcionan la interfaz de memoria. Si hay dos DCU (configuración RIOS.9), el bus de memoria tiene un ancho de 64 bits, y si hay cuatro DCU (configuración RIOS-1), el bus de memoria tiene un ancho de 128 bits. La interfaz de memoria de las DCU ofrece tres funciones que mejoran la fiabilidad y disponibilidad de la memoria: limpieza de memoria , ECC y dirección de bits . Cada DCU contiene aproximadamente 1,125 millones de transistores, de los cuales 0,175 millones se utilizan para lógica y 0,95 millones para SRAM, en un chip de aproximadamente 130 mm² (11,3 × 11,3 mm).
Unidad de control de almacenamiento (UCA)
El POWER1 está controlado por el chip SCU. Todas las comunicaciones entre los chips ICU, FXU y DCU, así como con la memoria y los dispositivos de E/S, son gestionadas por el SCU. Si bien las DCU proporcionan los medios para realizar la limpieza de la memoria, es el SCU el que controla el proceso. El SCU contiene aproximadamente 0,23 millones de transistores, todos ellos lógicos, en un chip de aproximadamente 130 mm² .
Unidad de E/S
Las interfaces de E/S del POWER1 se implementan mediante la unidad de E/S, que contiene un controlador de canal de E/S (IOCC) y dos adaptadores de enlace serie (SLA). El IOCC implementa la interfaz Micro Channel y controla las transacciones de E/S y DMA entre los adaptadores Micro Channel y la memoria del sistema. Cada uno de los dos SLA implementa un enlace de fibra óptica serie , destinado a conectar sistemas RS/6000 entre sí. Los enlaces ópticos no eran compatibles en el momento del lanzamiento del RS/6000. La unidad de E/S contiene aproximadamente 0,5 millones de transistores, de los cuales 0,3 millones se utilizan para lógica y 0,2 millones para memoria, en un chip de aproximadamente 160 mm² .
Véase también
- Arquitecturas de conjuntos de instrucciones: Arquitectura de conjunto de instrucciones IBM POWER , PowerPC , Power ISA
- Procesadores: RISC Single Chip , RAD6000 , POWER2 , POWER3 , POWER4 , POWER5 , POWER6 , POWER7 , POWER8 , POWER9 , Power10
- Sistemas informáticos: RS/6000 , IBM RS/6000 SP
- Tecnología relacionada: PowerPC 601 , RS64
Referencias
- ↑ "Serie de lanzamientos de GCC 4.5: cambios, nuevas características y correcciones - Proyecto GNU - Fundación del Software Libre (FSF)" . gcc.gnu.org .
- Grandes microprocesadores del pasado y del presente (V 13.4.0)
- Montoye, RK; Hokenek, E.; Runyon, SL (enero de 1990). "Diseño de la unidad de ejecución de punto flotante del sistema RISC/6000 de IBM". IBM Journal of Research and Development . 34 (1): 59– 70. doi : 10.1147/rd.341.0059 .
- Oehler, RR; Groves, RD (enero de 1990). "Arquitectura del procesador IBM RISC System/6000". IBM Journal of Research and Development . 34 (1): 23– 36. doi : 10.1147/rd.341.0023 .
- Grohoski, GF (enero de 1990). "Organización de la máquina del procesador IBM RISC System/6000". IBM Journal of Research and Development . 34 (1): 37– 58. doi : 10.1147/rd.341.0037 .
- Bakoglu, HB; Grohoski, GF; Montoye, RK (enero de 1990). "El procesador IBM RISC System/6000: descripción general del hardware". IBM Journal of Research and Development . 34 (1): 12– 22. doi : 10.1147/rd.341.0012 .
Lecturas adicionales
- Weiss, Shlomo; Smith, James Edward (1994). POWER y PowerPC . Morgan Kaufmann. ISBN 1558602798.— Partes relevantes: Capítulo 3 (cómo se supone que debe implementarse la arquitectura POWER), Capítulos 4 y 5 (describen POWER1).
- Microprocesadores IBM
- microprocesadores superescalares
- microprocesadores de 32 bits